From 1029b215d2e893ed1f88be633e34adaba61862e3 Mon Sep 17 00:00:00 2001 From: berny6969 Date: Thu, 25 Sep 2014 21:20:11 +0200 Subject: [PATCH] Inicial --- AUTHORS | 3 + COPYING | 1 + ChangeLog | 2 + GlobalActions.py | 4 + LICENSE | 339 + LICENSE.GPLv2 | 340 + Makefile.am | 21 + NEWS | 2 + Navigation.py | 147 + NavigationInstance.py | 2 + README | 4 + RecordTimer.py | 1003 + ServiceReference.py | 59 + autogen.sh | 2 + configure.ac | 255 + data/Makefile.am | 31 + data/black.mvi | Bin 0 -> 20876 bytes data/countries/Makefile.am | 40 + data/countries/ad.png | Bin 0 -> 1038 bytes data/countries/ae.png | Bin 0 -> 1554 bytes data/countries/bg.png | Bin 0 -> 3819 bytes data/countries/br.png | Bin 0 -> 1295 bytes data/countries/cz.png | Bin 0 -> 951 bytes data/countries/de.png | Bin 0 -> 693 bytes data/countries/dk.png | Bin 0 -> 876 bytes data/countries/ee.png | Bin 0 -> 597 bytes data/countries/en.png | Bin 0 -> 2108 bytes data/countries/es.png | Bin 0 -> 1527 bytes data/countries/fi.png | Bin 0 -> 1406 bytes data/countries/fr.png | Bin 0 -> 907 bytes data/countries/fy_NL.png | Bin 0 -> 2685 bytes data/countries/gr.png | Bin 0 -> 1443 bytes data/countries/hr.png | Bin 0 -> 1463 bytes data/countries/hu.png | Bin 0 -> 861 bytes data/countries/il.png | Bin 0 -> 696 bytes data/countries/ir.png | Bin 0 -> 822 bytes data/countries/is.png | Bin 0 -> 509 bytes data/countries/it.png | Bin 0 -> 840 bytes data/countries/ku.png | Bin 0 -> 871 bytes data/countries/lt.png | Bin 0 -> 1022 bytes data/countries/lv.png | Bin 0 -> 483 bytes data/countries/missing.png | Bin 0 -> 2003 bytes data/countries/nl.png | Bin 0 -> 931 bytes data/countries/no.png | Bin 0 -> 1497 bytes data/countries/pl.png | Bin 0 -> 658 bytes data/countries/pt.png | Bin 0 -> 1561 bytes data/countries/ro.png | Bin 0 -> 861 bytes data/countries/ru.png | Bin 0 -> 934 bytes data/countries/se.png | Bin 0 -> 1247 bytes data/countries/si.png | Bin 0 -> 1476 bytes data/countries/sk.png | Bin 0 -> 1437 bytes data/countries/th.png | Bin 0 -> 360 bytes data/countries/tr.png | Bin 0 -> 1502 bytes data/countries/ua.png | Bin 0 -> 731 bytes data/countries/yu.png | Bin 0 -> 1575 bytes data/encoding.conf | 81 + data/extensions/Makefile.am | 7 + data/extensions/directory.png | Bin 0 -> 880 bytes data/extensions/movie.png | Bin 0 -> 965 bytes data/extensions/music.png | Bin 0 -> 822 bytes data/extensions/picture.png | Bin 0 -> 917 bytes data/fonts/DroidSans-Bold.ttf | Bin 0 -> 154792 bytes data/fonts/Makefile.am | 8 + data/fonts/ae_AlMateen.license | 2 + data/fonts/ae_AlMateen.ttf | Bin 0 -> 124844 bytes data/fonts/andale.ttf | Bin 0 -> 30672 bytes data/fonts/lcd.ttf | Bin 0 -> 72680 bytes data/fonts/md_khmurabi_10.ttf | Bin 0 -> 247668 bytes data/fonts/nmsbd.ttf | Bin 0 -> 358608 bytes data/fonts/tuxtxt.ttf | Bin 0 -> 49052 bytes data/freesat.t1 | 6081 ++++++ data/freesat.t2 | 9480 ++++++++ data/hw_info/Makefile.am | 5 + data/hw_info/hw_info.cfg | 8 + data/keymap.xml | 753 + data/keymaps/Makefile.am | 8 + data/keymaps/azerty.info | 2 + data/keymaps/azerty.kmap | Bin 0 -> 2078 bytes data/keymaps/de.info | 2 + data/keymaps/de.kmap | Bin 0 -> 2842 bytes data/keymaps/default.info | 2 + data/keymaps/default.kmap | Bin 0 -> 4385 bytes data/keymaps/dream-de.info | 2 + data/keymaps/dream-de.kmap | Bin 0 -> 2823 bytes data/keymaps/eng.info | 2 + data/keymaps/eng.kmap | Bin 0 -> 2823 bytes data/menu.xml | 86 + data/prev.png | Bin 0 -> 20163 bytes data/radio-hd.mvi | Bin 0 -> 146047 bytes data/radio-sd.mvi | Bin 0 -> 20876 bytes data/radio.mvi | Bin 0 -> 146047 bytes data/rc_models/Makefile.am | 8 + data/rc_models/dmm.png | Bin 0 -> 22953 bytes data/rc_models/dmm.xml | 43 + data/rc_models/dmmadv.png | Bin 0 -> 35083 bytes data/rc_models/dmmadv.xml | 47 + data/rc_models/et4x00.png | Bin 0 -> 51502 bytes data/rc_models/et4x00.xml | 46 + data/rc_models/et6x00.png | Bin 0 -> 21424 bytes data/rc_models/et6x00.xml | 46 + data/rc_models/et8000.png | Bin 0 -> 34695 bytes data/rc_models/et8000.xml | 62 + data/rc_models/et9500.png | Bin 0 -> 14401 bytes data/rc_models/et9500.xml | 46 + data/rc_models/et9x00.png | Bin 0 -> 11971 bytes data/rc_models/et9x00.xml | 46 + data/rc_models/gigablue.png | Bin 0 -> 30154 bytes data/rc_models/gigablue.xml | 49 + data/rc_models/rc_models.cfg | 45 + data/rc_models/vu.png | Bin 0 -> 16397 bytes data/rc_models/vu.xml | 46 + data/rc_models/vuduo2.png | Bin 0 -> 51380 bytes data/rc_models/vuduo2.xml | 47 + data/rc_models/vuultimo.png | Bin 0 -> 45140 bytes data/rc_models/vuultimo.xml | 46 + data/rc_models/xp1000.png | Bin 0 -> 35038 bytes data/rc_models/xp1000.xml | 46 + data/rcpositions.xml | 88 + data/setup.xml | 191 + data/skin.xml | 300 + data/skin_default.xml | 1255 ++ data/skin_default/LCDIcons/Makefile.am | 4 + data/skin_default/LCDIcons/rec.png | Bin 0 -> 169 bytes data/skin_default/Makefile.am | 77 + data/skin_default/anniversaryOpenPLi.png | Bin 0 -> 8053 bytes data/skin_default/arrowdown.png | Bin 0 -> 852 bytes data/skin_default/arrowup.png | Bin 0 -> 865 bytes data/skin_default/b_b.png | Bin 0 -> 332 bytes data/skin_default/b_bl.png | Bin 0 -> 1390 bytes data/skin_default/b_br.png | Bin 0 -> 1391 bytes data/skin_default/b_l.png | Bin 0 -> 228 bytes data/skin_default/b_r.png | Bin 0 -> 219 bytes data/skin_default/b_t.png | Bin 0 -> 721 bytes data/skin_default/b_tl.png | Bin 0 -> 1800 bytes data/skin_default/b_tr.png | Bin 0 -> 5213 bytes data/skin_default/bar_ber.png | Bin 0 -> 2014 bytes data/skin_default/bar_snr.png | Bin 0 -> 2073 bytes data/skin_default/border_epg.png | Bin 0 -> 1711 bytes data/skin_default/border_eventinfo.png | Bin 0 -> 436 bytes data/skin_default/border_info.png | Bin 0 -> 4188 bytes data/skin_default/border_menu.png | Bin 0 -> 3753 bytes data/skin_default/border_menu_300.png | Bin 0 -> 1314 bytes data/skin_default/border_menu_350.png | Bin 0 -> 2752 bytes data/skin_default/border_multiepg.png | Bin 0 -> 1027 bytes data/skin_default/bottombar.png | Bin 0 -> 3245 bytes data/skin_default/buttons/Makefile.am | 35 + data/skin_default/buttons/blue.png | Bin 0 -> 1325 bytes data/skin_default/buttons/blue_pressed.png | Bin 0 -> 4011 bytes data/skin_default/buttons/button_blue.png | Bin 0 -> 1130 bytes data/skin_default/buttons/button_blue_off.png | Bin 0 -> 1102 bytes data/skin_default/buttons/button_green.png | Bin 0 -> 1122 bytes .../skin_default/buttons/button_green_off.png | Bin 0 -> 1081 bytes data/skin_default/buttons/button_red.png | Bin 0 -> 1077 bytes data/skin_default/buttons/button_red_off.png | Bin 0 -> 1027 bytes data/skin_default/buttons/button_yellow.png | Bin 0 -> 1126 bytes .../buttons/button_yellow_off.png | Bin 0 -> 1022 bytes data/skin_default/buttons/green-big.png | Bin 0 -> 1463 bytes data/skin_default/buttons/green.png | Bin 0 -> 1113 bytes data/skin_default/buttons/key_0.png | Bin 0 -> 1277 bytes data/skin_default/buttons/key_1.png | Bin 0 -> 1245 bytes data/skin_default/buttons/key_2.png | Bin 0 -> 1278 bytes data/skin_default/buttons/key_3.png | Bin 0 -> 1294 bytes data/skin_default/buttons/key_4.png | Bin 0 -> 1274 bytes data/skin_default/buttons/key_5.png | Bin 0 -> 1287 bytes data/skin_default/buttons/key_6.png | Bin 0 -> 1290 bytes data/skin_default/buttons/key_7.png | Bin 0 -> 1256 bytes data/skin_default/buttons/key_8.png | Bin 0 -> 1300 bytes data/skin_default/buttons/key_9.png | Bin 0 -> 1294 bytes data/skin_default/buttons/key_blue.png | Bin 0 -> 1232 bytes data/skin_default/buttons/key_green.png | Bin 0 -> 1229 bytes data/skin_default/buttons/key_info.png | Bin 0 -> 1335 bytes data/skin_default/buttons/key_menu.png | Bin 0 -> 1363 bytes data/skin_default/buttons/key_red.png | Bin 0 -> 1226 bytes data/skin_default/buttons/key_text.png | Bin 0 -> 594 bytes data/skin_default/buttons/key_yellow.png | Bin 0 -> 1244 bytes data/skin_default/buttons/red-big.png | Bin 0 -> 1439 bytes data/skin_default/buttons/red.png | Bin 0 -> 1090 bytes data/skin_default/buttons/yellow.png | Bin 0 -> 1106 bytes .../celserviceeventprogressbar.png | Bin 0 -> 281 bytes data/skin_default/div-h.png | Bin 0 -> 126 bytes data/skin_default/div-v.png | Bin 0 -> 147 bytes data/skin_default/epg_more.png | Bin 0 -> 1111 bytes data/skin_default/epg_next.png | Bin 0 -> 1167 bytes data/skin_default/epg_now.png | Bin 0 -> 1095 bytes data/skin_default/expandable-plugins.png | Bin 0 -> 193 bytes data/skin_default/expanded-plugins.png | Bin 0 -> 190 bytes data/skin_default/icons/Makefile.am | 110 + data/skin_default/icons/ask.png | Bin 0 -> 1153 bytes data/skin_default/icons/az.png | Bin 0 -> 1150 bytes data/skin_default/icons/clock.png | Bin 0 -> 483 bytes data/skin_default/icons/dish.png | Bin 0 -> 8181 bytes data/skin_default/icons/dish_scan.png | Bin 0 -> 4496 bytes data/skin_default/icons/dmm_logo.png | Bin 0 -> 467 bytes data/skin_default/icons/epgclock.png | Bin 0 -> 337 bytes data/skin_default/icons/epgclock_add.png | Bin 0 -> 326 bytes data/skin_default/icons/epgclock_post.png | Bin 0 -> 377 bytes data/skin_default/icons/epgclock_pre.png | Bin 0 -> 377 bytes data/skin_default/icons/epgclock_prepost.png | Bin 0 -> 332 bytes data/skin_default/icons/faz.png | Bin 0 -> 1194 bytes data/skin_default/icons/folder.png | Bin 0 -> 533 bytes data/skin_default/icons/fza.png | Bin 0 -> 1162 bytes data/skin_default/icons/ico_dvb_c-fs8.png | Bin 0 -> 823 bytes data/skin_default/icons/ico_dvb_s-fs8.png | Bin 0 -> 850 bytes data/skin_default/icons/ico_dvb_t-fs8.png | Bin 0 -> 807 bytes data/skin_default/icons/ico_mp_forward.png | Bin 0 -> 186 bytes data/skin_default/icons/ico_mp_pause.png | Bin 0 -> 161 bytes data/skin_default/icons/ico_mp_play.png | Bin 0 -> 183 bytes data/skin_default/icons/ico_mp_rewind.png | Bin 0 -> 185 bytes data/skin_default/icons/ico_mp_stop.png | Bin 0 -> 174 bytes .../icons/ico_service_group-fs8.png | Bin 0 -> 525 bytes data/skin_default/icons/ico_stream-fs8.png | Bin 0 -> 1013 bytes data/skin_default/icons/icon_crypt.png | Bin 0 -> 260 bytes data/skin_default/icons/icon_dolby.png | Bin 0 -> 331 bytes data/skin_default/icons/icon_event.png | Bin 0 -> 240 bytes data/skin_default/icons/icon_format.png | Bin 0 -> 339 bytes data/skin_default/icons/icon_rec.png | Bin 0 -> 1768 bytes data/skin_default/icons/icon_rec_off.png | Bin 0 -> 572 bytes data/skin_default/icons/icon_txt.png | Bin 0 -> 279 bytes data/skin_default/icons/icon_view.png | Bin 0 -> 365 bytes data/skin_default/icons/icons_off.png | Bin 0 -> 1782 bytes data/skin_default/icons/input_error.png | Bin 0 -> 2983 bytes data/skin_default/icons/input_info.png | Bin 0 -> 2227 bytes .../icons/input_keyboard-configured.png | Bin 0 -> 2687 bytes data/skin_default/icons/input_keyboard.png | Bin 0 -> 2347 bytes .../icons/input_mouse-configured.png | Bin 0 -> 2683 bytes data/skin_default/icons/input_mouse.png | Bin 0 -> 2306 bytes data/skin_default/icons/input_question.png | Bin 0 -> 2962 bytes .../icons/input_rcnew-configured.png | Bin 0 -> 2775 bytes data/skin_default/icons/input_rcnew.png | Bin 0 -> 2492 bytes .../icons/input_rcold-configured.png | Bin 0 -> 2773 bytes data/skin_default/icons/input_rcold.png | Bin 0 -> 2561 bytes data/skin_default/icons/lock.png | Bin 0 -> 1051 bytes data/skin_default/icons/lockBouquet.png | Bin 0 -> 1176 bytes data/skin_default/icons/lock_error.png | Bin 0 -> 3006 bytes data/skin_default/icons/lock_off.png | Bin 0 -> 154 bytes data/skin_default/icons/lock_on.png | Bin 0 -> 397 bytes data/skin_default/icons/loop.png | Bin 0 -> 1095 bytes data/skin_default/icons/marker.png | Bin 0 -> 285 bytes data/skin_default/icons/movie_play.png | Bin 0 -> 828 bytes data/skin_default/icons/movie_play_rec.png | Bin 0 -> 885 bytes data/skin_default/icons/movielist.png | Bin 0 -> 1083 bytes data/skin_default/icons/mp_buttons.png | Bin 0 -> 717 bytes .../icons/network_wired-active.png | Bin 0 -> 2770 bytes .../icons/network_wired-inactive.png | Bin 0 -> 2743 bytes data/skin_default/icons/network_wired.png | Bin 0 -> 2419 bytes .../icons/network_wireless-active.png | Bin 0 -> 2657 bytes .../icons/network_wireless-inactive.png | Bin 0 -> 2711 bytes data/skin_default/icons/network_wireless.png | Bin 0 -> 2292 bytes data/skin_default/icons/newtop.png | Bin 0 -> 1170 bytes data/skin_default/icons/oldtop.png | Bin 0 -> 1208 bytes data/skin_default/icons/part_0_4.png | Bin 0 -> 1281 bytes data/skin_default/icons/part_1_4.png | Bin 0 -> 1302 bytes data/skin_default/icons/part_2_4.png | Bin 0 -> 1308 bytes data/skin_default/icons/part_3_4.png | Bin 0 -> 1317 bytes data/skin_default/icons/part_4_4.png | Bin 0 -> 1316 bytes data/skin_default/icons/part_new.png | Bin 0 -> 1291 bytes data/skin_default/icons/part_unwatched.png | Bin 0 -> 305 bytes data/skin_default/icons/pause.png | Bin 0 -> 879 bytes data/skin_default/icons/playlist.png | Bin 0 -> 1085 bytes data/skin_default/icons/playlistquit.png | Bin 0 -> 1093 bytes data/skin_default/icons/plilogo-fs8.png | Bin 0 -> 2748 bytes data/skin_default/icons/plugin.png | Bin 0 -> 1776 bytes data/skin_default/icons/quit.png | Bin 0 -> 1072 bytes data/skin_default/icons/rass_logo.png | Bin 0 -> 1095 bytes data/skin_default/icons/rass_page1.png | Bin 0 -> 184 bytes data/skin_default/icons/rass_page2.png | Bin 0 -> 199 bytes data/skin_default/icons/rass_page3.png | Bin 0 -> 216 bytes data/skin_default/icons/rass_page4.png | Bin 0 -> 224 bytes data/skin_default/icons/record.png | Bin 0 -> 361 bytes data/skin_default/icons/redx.png | Bin 0 -> 233 bytes data/skin_default/icons/rep.png | Bin 0 -> 912 bytes data/skin_default/icons/repeat_off.png | Bin 0 -> 1192 bytes data/skin_default/icons/repeat_on.png | Bin 0 -> 1275 bytes data/skin_default/icons/scan-c.png | Bin 0 -> 1440 bytes data/skin_default/icons/scan-s.png | Bin 0 -> 844 bytes data/skin_default/icons/scan-t.png | Bin 0 -> 1036 bytes data/skin_default/icons/selectioncross.png | Bin 0 -> 773 bytes data/skin_default/icons/shuffle.png | Bin 0 -> 1119 bytes data/skin_default/icons/timer_done.png | Bin 0 -> 1262 bytes data/skin_default/icons/timer_off.png | Bin 0 -> 1260 bytes data/skin_default/icons/timer_prep.png | Bin 0 -> 1318 bytes data/skin_default/icons/timer_rec.png | Bin 0 -> 1318 bytes data/skin_default/icons/timer_rep.png | Bin 0 -> 1253 bytes data/skin_default/icons/timer_wait.png | Bin 0 -> 1317 bytes data/skin_default/icons/timer_zap.png | Bin 0 -> 1317 bytes data/skin_default/icons/trashcan.png | Bin 0 -> 1303 bytes data/skin_default/icons/unlock.png | Bin 0 -> 965 bytes data/skin_default/icons/unlockBouquet.png | Bin 0 -> 1141 bytes data/skin_default/icons/za.png | Bin 0 -> 1117 bytes data/skin_default/icons/zapclock.png | Bin 0 -> 350 bytes data/skin_default/icons/zapclock_add.png | Bin 0 -> 325 bytes data/skin_default/icons/zapclock_post.png | Bin 0 -> 396 bytes data/skin_default/icons/zapclock_pre.png | Bin 0 -> 384 bytes data/skin_default/icons/zapclock_prepost.png | Bin 0 -> 325 bytes data/skin_default/icons/zaprecclock.png | Bin 0 -> 325 bytes data/skin_default/icons/zaprecclock_add.png | Bin 0 -> 333 bytes data/skin_default/icons/zaprecclock_post.png | Bin 0 -> 379 bytes data/skin_default/icons/zaprecclock_pre.png | Bin 0 -> 373 bytes .../icons/zaprecclock_prepost.png | Bin 0 -> 332 bytes data/skin_default/info-bg.png | Bin 0 -> 44945 bytes data/skin_default/info-bg_mp.png | Bin 0 -> 26942 bytes data/skin_default/mediaplayer_bg.png | Bin 0 -> 24653 bytes data/skin_default/menu/Makefile.am | 12 + data/skin_default/menu/dvd_player.png | Bin 0 -> 6829 bytes data/skin_default/menu/information.png | Bin 0 -> 7098 bytes data/skin_default/menu/media_player.png | Bin 0 -> 10067 bytes data/skin_default/menu/plugins.png | Bin 0 -> 9717 bytes data/skin_default/menu/scart.png | Bin 0 -> 7906 bytes data/skin_default/menu/setup.png | Bin 0 -> 9473 bytes data/skin_default/menu/shutdown.png | Bin 0 -> 7987 bytes data/skin_default/menu/subtitles.png | Bin 0 -> 8544 bytes data/skin_default/menu/timer.png | Bin 0 -> 10407 bytes data/skin_default/mute.png | Bin 0 -> 1016 bytes data/skin_default/nim_active.png | Bin 0 -> 262 bytes data/skin_default/no_coverArt.png | Bin 0 -> 9489 bytes data/skin_default/overscan.png | Bin 0 -> 30823 bytes data/skin_default/picon_default.png | Bin 0 -> 1250 bytes data/skin_default/position_arrow.png | Bin 0 -> 177 bytes data/skin_default/position_pointer.png | Bin 0 -> 601 bytes data/skin_default/progress_bg.png | Bin 0 -> 1444 bytes data/skin_default/progress_big.png | Bin 0 -> 228 bytes data/skin_default/progress_medium.png | Bin 0 -> 212 bytes data/skin_default/progress_small.png | Bin 0 -> 182 bytes data/skin_default/rc.png | Bin 0 -> 35083 bytes data/skin_default/rc0.png | 1 + data/skin_default/rc1.png | 1 + data/skin_default/rc2.png | 1 + data/skin_default/rcold.png | Bin 0 -> 22953 bytes data/skin_default/screws.png | Bin 0 -> 2163 bytes data/skin_default/screws_mp.png | Bin 0 -> 2478 bytes data/skin_default/sleeptimer.png | Bin 0 -> 8293 bytes data/skin_default/spinner/Makefile.am | 52 + data/skin_default/spinner/wait0.png | Bin 0 -> 9965 bytes data/skin_default/spinner/wait1.png | Bin 0 -> 9944 bytes data/skin_default/spinner/wait10.png | Bin 0 -> 9956 bytes data/skin_default/spinner/wait11.png | Bin 0 -> 10033 bytes data/skin_default/spinner/wait12.png | Bin 0 -> 10064 bytes data/skin_default/spinner/wait13.png | Bin 0 -> 10033 bytes data/skin_default/spinner/wait14.png | Bin 0 -> 10095 bytes data/skin_default/spinner/wait15.png | Bin 0 -> 10113 bytes data/skin_default/spinner/wait16.png | Bin 0 -> 10025 bytes data/skin_default/spinner/wait17.png | Bin 0 -> 9999 bytes data/skin_default/spinner/wait18.png | Bin 0 -> 10179 bytes data/skin_default/spinner/wait19.png | Bin 0 -> 10324 bytes data/skin_default/spinner/wait2.png | Bin 0 -> 9963 bytes data/skin_default/spinner/wait20.png | Bin 0 -> 10206 bytes data/skin_default/spinner/wait21.png | Bin 0 -> 10095 bytes data/skin_default/spinner/wait22.png | Bin 0 -> 10172 bytes data/skin_default/spinner/wait23.png | Bin 0 -> 10237 bytes data/skin_default/spinner/wait24.png | Bin 0 -> 10265 bytes data/skin_default/spinner/wait25.png | Bin 0 -> 10371 bytes data/skin_default/spinner/wait26.png | Bin 0 -> 10739 bytes data/skin_default/spinner/wait27.png | Bin 0 -> 11078 bytes data/skin_default/spinner/wait28.png | Bin 0 -> 11040 bytes data/skin_default/spinner/wait29.png | Bin 0 -> 10695 bytes data/skin_default/spinner/wait3.png | Bin 0 -> 9974 bytes data/skin_default/spinner/wait30.png | Bin 0 -> 10539 bytes data/skin_default/spinner/wait31.png | Bin 0 -> 10712 bytes data/skin_default/spinner/wait32.png | Bin 0 -> 10792 bytes data/skin_default/spinner/wait33.png | Bin 0 -> 10797 bytes data/skin_default/spinner/wait34.png | Bin 0 -> 10620 bytes data/skin_default/spinner/wait35.png | Bin 0 -> 10831 bytes data/skin_default/spinner/wait36.png | Bin 0 -> 10869 bytes data/skin_default/spinner/wait37.png | Bin 0 -> 10885 bytes data/skin_default/spinner/wait38.png | Bin 0 -> 10713 bytes data/skin_default/spinner/wait39.png | Bin 0 -> 10514 bytes data/skin_default/spinner/wait4.png | Bin 0 -> 10001 bytes data/skin_default/spinner/wait40.png | Bin 0 -> 10422 bytes data/skin_default/spinner/wait41.png | Bin 0 -> 10302 bytes data/skin_default/spinner/wait42.png | Bin 0 -> 10228 bytes data/skin_default/spinner/wait43.png | Bin 0 -> 10116 bytes data/skin_default/spinner/wait44.png | Bin 0 -> 9953 bytes data/skin_default/spinner/wait45.png | Bin 0 -> 9821 bytes data/skin_default/spinner/wait46.png | Bin 0 -> 9887 bytes data/skin_default/spinner/wait47.png | Bin 0 -> 9939 bytes data/skin_default/spinner/wait48.png | Bin 0 -> 9983 bytes data/skin_default/spinner/wait5.png | Bin 0 -> 10004 bytes data/skin_default/spinner/wait6.png | Bin 0 -> 10011 bytes data/skin_default/spinner/wait7.png | Bin 0 -> 9857 bytes data/skin_default/spinner/wait8.png | Bin 0 -> 9803 bytes data/skin_default/spinner/wait9.png | Bin 0 -> 9918 bytes data/skin_default/testscreen.png | Bin 0 -> 13796 bytes data/skin_default/timeline-now.png | Bin 0 -> 1018 bytes data/skin_default/timeline.png | Bin 0 -> 142 bytes data/skin_default/unhandled-key.png | Bin 0 -> 429 bytes data/skin_default/verticalline-plugins.png | Bin 0 -> 163 bytes data/skin_default/vkey_all.png | Bin 0 -> 789 bytes data/skin_default/vkey_backspace.png | Bin 0 -> 781 bytes data/skin_default/vkey_bg.png | Bin 0 -> 569 bytes data/skin_default/vkey_clr.png | Bin 0 -> 946 bytes data/skin_default/vkey_esc.png | Bin 0 -> 1318 bytes data/skin_default/vkey_icon.png | Bin 0 -> 2464 bytes data/skin_default/vkey_left.png | Bin 0 -> 817 bytes data/skin_default/vkey_ok.png | Bin 0 -> 988 bytes data/skin_default/vkey_right.png | Bin 0 -> 815 bytes data/skin_default/vkey_sel.png | Bin 0 -> 159 bytes data/skin_default/vkey_shift.png | Bin 0 -> 799 bytes data/skin_default/vkey_shift_sel.png | Bin 0 -> 821 bytes data/skin_default/vkey_space.png | Bin 0 -> 569 bytes data/skin_default/vkey_text.png | Bin 0 -> 212 bytes data/skin_default/volume.png | Bin 0 -> 2151 bytes data/skin_default/wizard.png | Bin 0 -> 161 bytes data/skin_display96.xml | 211 + data/skin_display_default.xml | 195 + data/skin_display_et10000.xml | 1 + data/skin_display_vuduo2.xml | 225 + data/skin_subtitles.xml | 11 + data/skin_text.xml | 100 + data/startwizard.xml | 230 + data/unicable.xml | 172 + doc/DEFAULTS | 116 + doc/FILEFORMAT | 66 + doc/PLUGINS | 161 + doc/RETURNCODES | 9 + doc/RULES | 128 + doc/SKINS | 147 + doc/SOURCES | 165 + doc/TPM | 27 + doxy.conf | 1761 ++ doxy/README | 7 + e2reactor.py | 205 + enigma2.bb | 44 + enigma2.pc.in | 10 + include/Makefile.am | 3 + include/connection.h | 16 + include/libsig_comp.h | 33 + keyids.py | 301 + keymapparser.py | 73 + lamedb | 18105 ++++++++++++++++ lib/Makefile.am | 34 + lib/actions/Makefile.inc | 20 + lib/actions/action.cpp | 243 + lib/actions/action.h | 95 + lib/actions/parseactions.py | 119 + lib/base/Makefile.inc | 60 + lib/base/benchmark.h | 30 + lib/base/buffer.cpp | 199 + lib/base/buffer.h | 40 + lib/base/cachedtssource.cpp | 55 + lib/base/cachedtssource.h | 26 + lib/base/cfile.cpp | 37 + lib/base/cfile.h | 29 + lib/base/connection.cpp | 5 + lib/base/console.cpp | 329 + lib/base/console.h | 56 + lib/base/ebase.cpp | 406 + lib/base/ebase.h | 312 + lib/base/eenv.cpp.in | 111 + lib/base/eenv.h | 16 + lib/base/eerror.cpp | 155 + lib/base/eerror.h | 144 + lib/base/elock.cpp | 103 + lib/base/elock.h | 186 + lib/base/encoding.cpp | 93 + lib/base/encoding.h | 22 + lib/base/eptrlist.h | 1268 ++ lib/base/estring.cpp | 744 + lib/base/estring.h | 31 + lib/base/etpm.cpp | 178 + lib/base/etpm.h | 48 + lib/base/filepush.cpp | 398 + lib/base/filepush.h | 96 + lib/base/freesatv2.cpp | 287 + lib/base/freesatv2.h | 20 + lib/base/httpstream.cpp | 346 + lib/base/httpstream.h | 43 + lib/base/i18n.h | 29 + lib/base/init.cpp | 68 + lib/base/init.h | 129 + lib/base/init_num.h | 25 + lib/base/ioprio.cpp | 96 + lib/base/ioprio.h | 14 + lib/base/itssource.h | 25 + lib/base/message.cpp | 33 + lib/base/message.h | 125 + lib/base/nconfig.cpp | 37 + lib/base/nconfig.h | 24 + lib/base/object.h | 82 + lib/base/rawfile.cpp | 177 + lib/base/rawfile.h | 39 + lib/base/ringbuffer.h | 110 + lib/base/smartptr.cpp | 2 + lib/base/smartptr.h | 190 + lib/base/thread.cpp | 135 + lib/base/thread.h | 70 + lib/base/wrappers.cpp | 261 + lib/base/wrappers.h | 11 + lib/components/Makefile.inc | 11 + lib/components/file_eraser.cpp | 146 + lib/components/file_eraser.h | 43 + lib/components/scan.cpp | 213 + lib/components/scan.h | 55 + lib/components/tuxtxtapp.cpp | 130 + lib/components/tuxtxtapp.h | 41 + lib/driver/Makefile.inc | 33 + lib/driver/avswitch.cpp | 278 + lib/driver/avswitch.h | 39 + lib/driver/etimezone.cpp | 7 + lib/driver/etimezone.h | 7 + lib/driver/hdmi_cec.cpp | 445 + lib/driver/hdmi_cec.h | 122 + lib/driver/input_fake.h | 84 + lib/driver/misc_options.cpp | 61 + lib/driver/misc_options.h | 21 + lib/driver/rc.cpp | 265 + lib/driver/rc.h | 254 + lib/driver/rcconsole.cpp | 114 + lib/driver/rcconsole.h | 46 + lib/driver/rcdbox.h | 61 + lib/driver/rcdreambox2.cpp | 241 + lib/driver/rcdreambox2.h | 41 + lib/driver/rcinput.cpp | 219 + lib/driver/rcinput.h | 18 + lib/driver/rcinput_swig.h | 6 + lib/driver/rcsdl.cpp | 392 + lib/driver/rcsdl.h | 37 + lib/driver/rfmod.cpp | 72 + lib/driver/rfmod.h | 28 + lib/dvb/Makefile.inc | 69 + lib/dvb/cablescan.cpp | 460 + lib/dvb/cablescan.h | 61 + lib/dvb/cahandler.cpp | 683 + lib/dvb/cahandler.h | 186 + lib/dvb/crc32.cpp | 164 + lib/dvb/crc32.h | 22 + lib/dvb/db.cpp | 2258 ++ lib/dvb/db.h | 138 + lib/dvb/decoder.cpp | 1299 ++ lib/dvb/decoder.h | 180 + lib/dvb/demux.cpp | 906 + lib/dvb/demux.h | 188 + lib/dvb/dvb.cpp | 2294 ++ lib/dvb/dvb.h | 352 + lib/dvb/dvbtime.cpp | 504 + lib/dvb/dvbtime.h | 90 + lib/dvb/eit.cpp | 65 + lib/dvb/eit.h | 30 + lib/dvb/encoder.cpp | 105 + lib/dvb/encoder.h | 27 + lib/dvb/epgcache.cpp | 4471 ++++ lib/dvb/epgcache.h | 455 + lib/dvb/esection.cpp | 158 + lib/dvb/esection.h | 254 + lib/dvb/fastscan.cpp | 733 + lib/dvb/fastscan.h | 259 + lib/dvb/frontend.cpp | 2425 +++ lib/dvb/frontend.h | 165 + lib/dvb/frontendparms.cpp | 681 + lib/dvb/frontendparms.h | 307 + lib/dvb/idemux.h | 62 + lib/dvb/idvb.h | 747 + lib/dvb/isection.h | 15 + lib/dvb/list.h | 12 + lib/dvb/lowlevel/Makefile.inc | 4 + lib/dvb/lowlevel/eit.h | 163 + lib/dvb/lowlevel/mhw.h | 115 + lib/dvb/metaparser.cpp | 216 + lib/dvb/metaparser.h | 22 + lib/dvb/pesparse.cpp | 67 + lib/dvb/pesparse.h | 21 + lib/dvb/pmt.cpp | 914 + lib/dvb/pmt.h | 173 + lib/dvb/pmtparse.cpp | 546 + lib/dvb/pmtparse.h | 124 + lib/dvb/pvrparse.cpp | 1200 + lib/dvb/pvrparse.h | 145 + lib/dvb/radiotext.cpp | 675 + lib/dvb/radiotext.h | 46 + lib/dvb/rotor_calc.cpp | 250 + lib/dvb/rotor_calc.h | 4 + lib/dvb/scan.cpp | 1424 ++ lib/dvb/scan.h | 120 + lib/dvb/sec.cpp | 1528 ++ lib/dvb/sec.h | 381 + lib/dvb/specs.h | 215 + lib/dvb/streamserver.cpp | 260 + lib/dvb/streamserver.h | 50 + lib/dvb/subtitle.cpp | 1285 ++ lib/dvb/subtitle.h | 141 + lib/dvb/teletext.cpp | 753 + lib/dvb/teletext.h | 73 + lib/dvb/tstools.cpp | 945 + lib/dvb/tstools.h | 114 + lib/dvb/volume.cpp | 217 + lib/dvb/volume.h | 46 + lib/dvb_ci/Makefile.inc | 22 + lib/dvb_ci/dvbci.cpp | 1347 ++ lib/dvb_ci/dvbci.h | 161 + lib/dvb_ci/dvbci_appmgr.cpp | 99 + lib/dvb_ci/dvbci_appmgr.h | 24 + lib/dvb_ci/dvbci_camgr.cpp | 73 + lib/dvb_ci/dvbci_camgr.h | 24 + lib/dvb_ci/dvbci_datetimemgr.cpp | 47 + lib/dvb_ci/dvbci_datetimemgr.h | 16 + lib/dvb_ci/dvbci_mmi.cpp | 130 + lib/dvb_ci/dvbci_mmi.h | 24 + lib/dvb_ci/dvbci_resmgr.cpp | 90 + lib/dvb_ci/dvbci_resmgr.h | 19 + lib/dvb_ci/dvbci_session.cpp | 325 + lib/dvb_ci/dvbci_session.h | 50 + lib/dvb_ci/dvbci_ui.cpp | 80 + lib/dvb_ci/dvbci_ui.h | 33 + lib/gdi/Makefile.inc | 51 + lib/gdi/accel.cpp | 334 + lib/gdi/accel.h | 54 + lib/gdi/bcm.cpp | 196 + lib/gdi/compositing.cpp | 9 + lib/gdi/compositing.h | 34 + lib/gdi/epng.cpp | 419 + lib/gdi/epng.h | 11 + lib/gdi/epoint.h | 159 + lib/gdi/erect.cpp | 206 + lib/gdi/erect.h | 233 + lib/gdi/esize.h | 165 + lib/gdi/fb.cpp | 266 + lib/gdi/fb.h | 58 + lib/gdi/font.cpp | 1280 ++ lib/gdi/font.h | 239 + lib/gdi/font_arabic.cpp | 266 + lib/gdi/gfbdc.cpp | 244 + lib/gdi/gfbdc.h | 38 + lib/gdi/gfont.cpp | 3 + lib/gdi/gfont.h | 41 + lib/gdi/glcddc.cpp | 62 + lib/gdi/glcddc.h | 22 + lib/gdi/gmaindc.cpp | 28 + lib/gdi/gmaindc.h | 33 + lib/gdi/gpixmap.cpp | 1029 + lib/gdi/gpixmap.h | 225 + lib/gdi/grc.cpp | 918 + lib/gdi/grc.h | 312 + lib/gdi/lcd.cpp | 303 + lib/gdi/lcd.h | 69 + lib/gdi/picexif.cpp | 631 + lib/gdi/picexif.h | 82 + lib/gdi/picload.cpp | 1233 ++ lib/gdi/picload.h | 113 + lib/gdi/region.cpp | 472 + lib/gdi/region.h | 107 + lib/gdi/sdl.cpp | 153 + lib/gdi/sdl.h | 39 + lib/gui/Makefile.inc | 44 + lib/gui/ebutton.cpp | 35 + lib/gui/ebutton.h | 18 + lib/gui/ecanvas.cpp | 89 + lib/gui/ecanvas.h | 20 + lib/gui/einput.cpp | 200 + lib/gui/einput.h | 81 + lib/gui/einputnumber.cpp | 207 + lib/gui/einputnumber.h | 35 + lib/gui/einputstring.cpp | 126 + lib/gui/einputstring.h | 31 + lib/gui/elabel.cpp | 243 + lib/gui/elabel.h | 60 + lib/gui/elistbox.cpp | 650 + lib/gui/elistbox.h | 187 + lib/gui/elistboxcontent.cpp | 1242 ++ lib/gui/elistboxcontent.h | 105 + lib/gui/epixmap.cpp | 130 + lib/gui/epixmap.h | 34 + lib/gui/epositiongauge.cpp | 233 + lib/gui/epositiongauge.h | 68 + lib/gui/eslider.cpp | 159 + lib/gui/eslider.h | 37 + lib/gui/esubtitle.cpp | 361 + lib/gui/esubtitle.h | 89 + lib/gui/evideo.cpp | 149 + lib/gui/evideo.h | 33 + lib/gui/ewidget.cpp | 417 + lib/gui/ewidget.h | 139 + lib/gui/ewidgetanimation.cpp | 55 + lib/gui/ewidgetanimation.h | 25 + lib/gui/ewidgetdesktop.cpp | 537 + lib/gui/ewidgetdesktop.h | 104 + lib/gui/ewindow.cpp | 116 + lib/gui/ewindow.h | 40 + lib/gui/ewindowstyle.cpp | 173 + lib/gui/ewindowstyle.h | 104 + lib/gui/ewindowstyleskinned.cpp | 280 + lib/gui/ewindowstyleskinned.h | 98 + lib/mmi/Makefile.inc | 8 + lib/mmi/mmi_ui.cpp | 314 + lib/mmi/mmi_ui.h | 57 + lib/nav/Makefile.inc | 10 + lib/nav/core.cpp | 172 + lib/nav/core.h | 48 + lib/nav/pcore.cpp | 65 + lib/nav/pcore.h | 34 + lib/network/Makefile.inc | 10 + lib/network/serversocket.cpp | 119 + lib/network/serversocket.h | 26 + lib/network/socket.cpp | 352 + lib/network/socket.h | 73 + lib/network/xmlrpc.cpp | 523 + lib/network/xmlrpc.h | 82 + lib/python/Components/AVSwitch.py | 189 + lib/python/Components/About.py | 46 + lib/python/Components/ActionMap.py | 94 + lib/python/Components/BlinkingPixmap.py | 11 + lib/python/Components/Button.py | 46 + lib/python/Components/ChoiceList.py | 31 + lib/python/Components/Clock.py | 38 + lib/python/Components/ConditionalWidget.py | 71 + lib/python/Components/ConfigList.py | 298 + lib/python/Components/Console.py | 66 + .../Components/Converter/ChannelNumbers.py | 60 + .../Components/Converter/ClockToText.py | 107 + lib/python/Components/Converter/Combine.py | 16 + .../Converter/ConditionalShowHide.py | 64 + .../Components/Converter/ConfigEntryTest.py | 51 + lib/python/Components/Converter/Converter.py | 12 + lib/python/Components/Converter/CryptoInfo.py | 33 + lib/python/Components/Converter/EventName.py | 99 + lib/python/Components/Converter/EventTime.py | 81 + .../Components/Converter/FrontendInfo.py | 119 + lib/python/Components/Converter/Makefile.am | 10 + .../Components/Converter/MenuEntryCompare.py | 26 + lib/python/Components/Converter/MovieInfo.py | 53 + .../Components/Converter/PliExtraInfo.py | 392 + lib/python/Components/Converter/Poll.py | 36 + .../Components/Converter/ProgressToText.py | 22 + lib/python/Components/Converter/RdsInfo.py | 47 + .../Components/Converter/RemainingToText.py | 68 + .../Components/Converter/SensorToText.py | 16 + .../Components/Converter/ServiceInfo.py | 188 + .../Components/Converter/ServiceName.py | 54 + .../Converter/ServiceOrbitalPosition.py | 65 + .../Components/Converter/ServicePosition.py | 151 + .../Components/Converter/ServiceTime.py | 38 + .../Components/Converter/StaticMultiList.py | 24 + lib/python/Components/Converter/StaticText.py | 7 + lib/python/Components/Converter/Streaming.py | 33 + lib/python/Components/Converter/StringList.py | 59 + .../Converter/StringListSelection.py | 24 + .../Converter/TemplatedMultiContent.py | 70 + lib/python/Components/Converter/TextCase.py | 27 + lib/python/Components/Converter/TunerInfo.py | 34 + .../Components/Converter/ValueBitTest.py | 13 + lib/python/Components/Converter/ValueRange.py | 16 + .../Components/Converter/ValueToPixmap.py | 40 + lib/python/Components/Converter/__init__.py | 0 lib/python/Components/Converter/genre.py | 170 + lib/python/Components/DiskInfo.py | 43 + lib/python/Components/Element.py | 110 + lib/python/Components/EpgList.py | 336 + lib/python/Components/FIFOList.py | 22 + lib/python/Components/FanControl.py | 117 + lib/python/Components/FileList.py | 433 + lib/python/Components/GUIComponent.py | 122 + lib/python/Components/GUISkin.py | 112 + lib/python/Components/HTMLComponent.py | 5 + lib/python/Components/HTMLSkin.py | 13 + lib/python/Components/Harddisk.py | 893 + lib/python/Components/HdmiCec.py | 312 + lib/python/Components/HelpMenuList.py | 91 + lib/python/Components/Input.py | 266 + lib/python/Components/InputDevice.py | 222 + lib/python/Components/InputHotplug.py | 38 + lib/python/Components/Ipkg.py | 184 + lib/python/Components/Keyboard.py | 45 + lib/python/Components/Label.py | 101 + lib/python/Components/Language.py | 115 + lib/python/Components/Lcd.py | 94 + lib/python/Components/Makefile.am | 24 + lib/python/Components/MediaPlayer.py | 117 + lib/python/Components/MenuList.py | 66 + lib/python/Components/MovieList.py | 778 + lib/python/Components/MultiContent.py | 21 + lib/python/Components/Netlink.py | 33 + lib/python/Components/Network.py | 702 + lib/python/Components/NimManager.py | 1647 ++ lib/python/Components/PackageInfo.py | 407 + lib/python/Components/ParentalControl.py | 298 + lib/python/Components/ParentalControlList.py | 45 + lib/python/Components/PerServiceDisplay.py | 91 + lib/python/Components/Pixmap.py | 119 + lib/python/Components/Playlist.py | 128 + lib/python/Components/PluginComponent.py | 159 + lib/python/Components/PluginList.py | 54 + lib/python/Components/ProgressBar.py | 28 + lib/python/Components/RFmod.py | 59 + lib/python/Components/RcModel.py | 46 + lib/python/Components/RecordingConfig.py | 16 + lib/python/Components/Renderer/Canvas.py | 60 + .../Components/Renderer/ChannelNumber.py | 26 + lib/python/Components/Renderer/FixedLabel.py | 6 + .../Components/Renderer/FrontpanelLed.py | 32 + lib/python/Components/Renderer/Label.py | 22 + lib/python/Components/Renderer/Listbox.py | 103 + lib/python/Components/Renderer/Makefile.am | 6 + lib/python/Components/Renderer/NextEpgInfo.py | 22 + lib/python/Components/Renderer/Picon.py | 126 + lib/python/Components/Renderer/Pig.py | 45 + lib/python/Components/Renderer/Pixmap.py | 19 + .../Components/Renderer/PositionGauge.py | 78 + lib/python/Components/Renderer/Progress.py | 37 + lib/python/Components/Renderer/Renderer.py | 13 + lib/python/Components/Renderer/VideoSize.py | 27 + lib/python/Components/Renderer/__init__.py | 0 lib/python/Components/ResourceManager.py | 23 + lib/python/Components/Scanner.py | 189 + lib/python/Components/ScrollLabel.py | 140 + lib/python/Components/SelectionList.py | 49 + lib/python/Components/Sensors.py | 72 + lib/python/Components/ServiceEventTracker.py | 122 + lib/python/Components/ServiceList.py | 338 + lib/python/Components/ServicePosition.py | 170 + lib/python/Components/ServiceScan.py | 197 + lib/python/Components/SetupDevices.py | 38 + lib/python/Components/Slider.py | 18 + lib/python/Components/Sources/Boolean.py | 48 + lib/python/Components/Sources/CanvasSource.py | 31 + lib/python/Components/Sources/Clock.py | 32 + lib/python/Components/Sources/Config.py | 19 + .../Components/Sources/CurrentService.py | 45 + lib/python/Components/Sources/Event.py | 19 + lib/python/Components/Sources/EventInfo.py | 42 + lib/python/Components/Sources/FrontendInfo.py | 67 + .../Components/Sources/FrontendStatus.py | 54 + lib/python/Components/Sources/List.py | 107 + lib/python/Components/Sources/Makefile.am | 7 + lib/python/Components/Sources/Progress.py | 23 + lib/python/Components/Sources/RdsDecoder.py | 33 + lib/python/Components/Sources/RecordState.py | 33 + lib/python/Components/Sources/Sensor.py | 31 + lib/python/Components/Sources/ServiceEvent.py | 31 + lib/python/Components/Sources/ServiceList.py | 44 + lib/python/Components/Sources/Source.py | 24 + lib/python/Components/Sources/StaticText.py | 24 + .../Components/Sources/StreamService.py | 47 + lib/python/Components/Sources/TunerInfo.py | 29 + lib/python/Components/Sources/__init__.py | 0 lib/python/Components/SystemInfo.py | 41 + lib/python/Components/Task.py | 539 + lib/python/Components/TimerList.py | 141 + lib/python/Components/TimerSanityCheck.py | 264 + lib/python/Components/Timezones.py | 52 + lib/python/Components/TuneTest.py | 241 + lib/python/Components/TunerInfo.py | 137 + lib/python/Components/UsageConfig.py | 530 + lib/python/Components/VariableText.py | 24 + lib/python/Components/VariableValue.py | 23 + lib/python/Components/VideoWindow.py | 15 + lib/python/Components/VolumeBar.py | 15 + lib/python/Components/VolumeControl.py | 83 + lib/python/Components/__init__.py | 0 lib/python/Components/components.py | 0 lib/python/Components/config.py | 1842 ++ lib/python/Components/opkg.py | 49 + lib/python/Makefile.am | 2 + lib/python/Makefile.inc | 44 + .../Extensions/CutListEditor/Makefile.am | 10 + .../Extensions/CutListEditor/__init__.py | 0 .../Extensions/CutListEditor/keymap.xml | 50 + .../Extensions/CutListEditor/meta/Makefile.am | 5 + .../CutListEditor/meta/cutlisteditor.jpg | Bin 0 -> 197954 bytes .../meta/plugin_cutlisteditor.xml | 16 + .../Extensions/CutListEditor/plugin.py | 13 + .../Plugins/Extensions/CutListEditor/ui.py | 401 + .../Plugins/Extensions/DVDBurn/DVDProject.py | 241 + .../Plugins/Extensions/DVDBurn/DVDTitle.py | 170 + .../Plugins/Extensions/DVDBurn/DVDToolbox.py | 213 + .../Extensions/DVDBurn/DreamboxDVD.ddvdp.xml | 14 + .../Plugins/Extensions/DVDBurn/Makefile.am | 27 + .../Plugins/Extensions/DVDBurn/Process.py | 990 + .../Extensions/DVDBurn/ProjectSettings.py | 251 + .../DVDBurn/Text_menu_boat.ddvdm.xml | 35 + .../DVDBurn/Thumbs_menu_clouds.ddvdm.xml | 35 + .../Plugins/Extensions/DVDBurn/TitleCutter.py | 88 + .../Plugins/Extensions/DVDBurn/TitleList.py | 384 + .../Extensions/DVDBurn/TitleProperties.py | 193 + .../Plugins/Extensions/DVDBurn/__init__.py | 0 .../Extensions/DVDBurn/dreamdvd_boat.jpg | Bin 0 -> 187417 bytes .../Extensions/DVDBurn/dreamdvd_clouds.jpg | Bin 0 -> 62697 bytes .../Plugins/Extensions/DVDBurn/dvdburn.png | Bin 0 -> 3869 bytes .../Plugins/Extensions/DVDBurn/keymap.xml | 19 + .../Extensions/DVDBurn/meta/Makefile.am | 5 + .../Extensions/DVDBurn/meta/dvdburn_de.jpg | Bin 0 -> 157332 bytes .../Extensions/DVDBurn/meta/dvdburn_en.jpg | Bin 0 -> 123854 bytes .../DVDBurn/meta/plugin_dvdburn.xml | 20 + .../Plugins/Extensions/DVDBurn/plugin.py | 17 + .../Plugins/Extensions/DVDBurn/silence.mp2 | Bin 0 -> 8340 bytes .../Plugins/Extensions/DVDBurn/vmgmblank.mpg | Bin 0 -> 24576 bytes .../Plugins/Extensions/DVDBurn/vmgmdream.mpg | Bin 0 -> 575488 bytes .../Plugins/Extensions/DVDPlayer/Makefile.am | 5 + .../Plugins/Extensions/DVDPlayer/__init__.py | 1 + .../Extensions/DVDPlayer/meta/Makefile.am | 5 + .../Extensions/DVDPlayer/meta/dvdplayer.jpg | Bin 0 -> 78625 bytes .../DVDPlayer/meta/plugin_dvdplayer.xml | 16 + .../Plugins/Extensions/DVDPlayer/plugin.py | 96 + .../Extensions/GraphMultiEPG/GraphMultiEpg.py | 1174 + .../GraphMultiEPG/GraphMultiEpgSetup.py | 67 + .../Extensions/GraphMultiEPG/Makefile.am | 11 + .../Extensions/GraphMultiEPG/__init__.py | 0 .../Extensions/GraphMultiEPG/meta/Makefile.am | 5 + .../GraphMultiEPG/meta/graphmultiepg_de.jpg | Bin 0 -> 141965 bytes .../GraphMultiEPG/meta/graphmultiepg_en.jpg | Bin 0 -> 141392 bytes .../meta/plugin_graphmultiepg.xml | 17 + .../Extensions/GraphMultiEPG/plugin.py | 162 + lib/python/Plugins/Extensions/Makefile.am | 10 + .../Extensions/MediaPlayer/Makefile.am | 6 + .../Extensions/MediaPlayer/__init__.py | 1 + .../Extensions/MediaPlayer/meta/Makefile.am | 5 + .../MediaPlayer/meta/mediaplayer_de.jpg | Bin 0 -> 131540 bytes .../MediaPlayer/meta/mediaplayer_en.jpg | Bin 0 -> 128207 bytes .../MediaPlayer/meta/plugin_mediaplayer.xml | 16 + .../Plugins/Extensions/MediaPlayer/plugin.py | 1128 + .../Extensions/MediaPlayer/settings.py | 140 + .../Extensions/MediaScanner/Makefile.am | 7 + .../Extensions/MediaScanner/__init__.py | 0 .../Extensions/MediaScanner/meta/Makefile.am | 5 + .../MediaScanner/meta/mediascanner_de.jpg | Bin 0 -> 87941 bytes .../MediaScanner/meta/mediascanner_en.jpg | Bin 0 -> 85763 bytes .../MediaScanner/meta/plugin_mediascanner.xml | 16 + .../Plugins/Extensions/MediaScanner/plugin.py | 91 + .../Plugins/Extensions/Modem/Makefile.am | 7 + .../Plugins/Extensions/Modem/__init__.py | 0 .../Plugins/Extensions/Modem/keymap.xml | 41 + lib/python/Plugins/Extensions/Modem/plugin.py | 283 + .../Extensions/PicturePlayer/Makefile.am | 11 + .../Extensions/PicturePlayer/__init__.py | 0 .../Extensions/PicturePlayer/data/Makefile.am | 2 + .../PicturePlayer/data/pic_frame.png | Bin 0 -> 141 bytes .../Extensions/PicturePlayer/meta/Makefile.am | 5 + .../PicturePlayer/meta/pictureplayer.jpg | Bin 0 -> 120134 bytes .../meta/plugin_pictureplayer.xml | 16 + .../PicturePlayer/pictureplayer.png | Bin 0 -> 3481 bytes .../Extensions/PicturePlayer/plugin.py | 47 + .../Plugins/Extensions/PicturePlayer/ui.py | 605 + .../Plugins/Extensions/SocketMMI/Makefile.am | 8 + .../Plugins/Extensions/SocketMMI/SocketMMI.py | 33 + .../Plugins/Extensions/SocketMMI/__init__.py | 1 + .../Extensions/SocketMMI/meta/Makefile.am | 3 + .../SocketMMI/meta/plugin_socketmmi.xml | 15 + .../Plugins/Extensions/SocketMMI/plugin.py | 28 + .../Extensions/SocketMMI/src/Makefile.am | 15 + .../Extensions/SocketMMI/src/socket_mmi.cpp | 479 + .../Extensions/SocketMMI/src/socket_mmi.h | 62 + .../Extensions/TuxboxPlugins/Makefile.am | 11 + .../Extensions/TuxboxPlugins/__init__.py | 0 .../Extensions/TuxboxPlugins/meta/Makefile.am | 3 + .../meta/plugin_tuxboxplugins.xml | 15 + .../Extensions/TuxboxPlugins/plugin.py | 43 + .../Extensions/TuxboxPlugins/pluginrunner.py | 37 + .../Extensions/TuxboxPlugins/tuxbox.png | Bin 0 -> 1745 bytes lib/python/Plugins/Extensions/__init__.py | 0 lib/python/Plugins/Makefile.am | 7 + lib/python/Plugins/PLi/Makefile.am | 4 + lib/python/Plugins/PLi/__init__.py | 0 lib/python/Plugins/Plugin.py | 123 + .../SystemPlugins/CableScan/Makefile.am | 6 + .../SystemPlugins/CableScan/__init__.py | 0 .../Plugins/SystemPlugins/CableScan/plugin.py | 199 + .../CommonInterfaceAssignment/Makefile.am | 8 + .../CommonInterfaceAssignment/__init__.py | 0 .../meta/Makefile.am | 5 + .../meta/ciassignment.jpg | Bin 0 -> 76859 bytes .../meta/plugin_commoninterfaceassignment.xml | 21 + .../CommonInterfaceAssignment/plugin.py | 645 + .../DefaultServicesScanner/Makefile.am | 8 + .../DefaultServicesScanner/__init__.py | 0 .../DefaultServicesScanner/meta/Makefile.am | 5 + .../meta/defaultservicescanner.jpg | Bin 0 -> 87248 bytes .../meta/plugin_defaultservicesscanner.xml | 20 + .../DefaultServicesScanner/plugin.py | 137 + .../SystemPlugins/DiseqcTester/Makefile.am | 7 + .../SystemPlugins/DiseqcTester/__init__.py | 0 .../DiseqcTester/meta/Makefile.am | 5 + .../DiseqcTester/meta/diseqctester_de.jpg | Bin 0 -> 83220 bytes .../DiseqcTester/meta/diseqctester_en.jpg | Bin 0 -> 78731 bytes .../DiseqcTester/meta/plugin_diseqctester.xml | 20 + .../SystemPlugins/DiseqcTester/plugin.py | 684 + .../SystemPlugins/FastScan/Makefile.am | 6 + .../SystemPlugins/FastScan/__init__.py | 0 .../Plugins/SystemPlugins/FastScan/plugin.py | 345 + .../FrontprocessorUpgrade/Makefile.am | 8 + .../FrontprocessorUpgrade/__init__.py | 0 .../FrontprocessorUpgrade/meta/Makefile.am | 3 + .../meta/plugin_frontprocessorupgrade.xml | 20 + .../FrontprocessorUpgrade/plugin.py | 87 + .../Plugins/SystemPlugins/HdmiCEC/Makefile.am | 5 + .../Plugins/SystemPlugins/HdmiCEC/__init__.py | 0 .../Plugins/SystemPlugins/HdmiCEC/plugin.py | 118 + .../Plugins/SystemPlugins/Hotplug/Makefile.am | 8 + .../Plugins/SystemPlugins/Hotplug/__init__.py | 0 .../SystemPlugins/Hotplug/meta/Makefile.am | 3 + .../Hotplug/meta/plugin_hotplug.xml | 18 + .../Plugins/SystemPlugins/Hotplug/plugin.py | 67 + lib/python/Plugins/SystemPlugins/Makefile.am | 18 + .../SystemPlugins/NFIFlash/Makefile.am | 9 + .../SystemPlugins/NFIFlash/__init__.py | 0 .../SystemPlugins/NFIFlash/downloader.py | 814 + .../Plugins/SystemPlugins/NFIFlash/flash.png | Bin 0 -> 3004 bytes .../Plugins/SystemPlugins/NFIFlash/flasher.py | 229 + .../SystemPlugins/NFIFlash/meta/Makefile.am | 5 + .../NFIFlash/meta/nfiflash_de.jpg | Bin 0 -> 168093 bytes .../NFIFlash/meta/nfiflash_en.jpg | Bin 0 -> 161749 bytes .../NFIFlash/meta/plugin_nfiflash.xml | 21 + .../Plugins/SystemPlugins/NFIFlash/plugin.py | 26 + .../SystemPlugins/NetworkWizard/Makefile.am | 11 + .../NetworkWizard/NetworkWizard.py | 378 + .../SystemPlugins/NetworkWizard/__init__.py | 0 .../NetworkWizard/meta/Makefile.am | 5 + .../NetworkWizard/meta/networkwizard_de.jpg | Bin 0 -> 153354 bytes .../NetworkWizard/meta/networkwizard_en.jpg | Bin 0 -> 145574 bytes .../meta/plugin_networkwizard.xml | 19 + .../NetworkWizard/networkwizard.xml | 218 + .../SystemPlugins/NetworkWizard/plugin.py | 24 + .../SystemPlugins/OSD3DSetup/Makefile.am | 5 + .../SystemPlugins/OSD3DSetup/__init__.py | 0 .../SystemPlugins/OSD3DSetup/plugin.py | 124 + .../OSDPositionSetup/Makefile.am | 5 + .../OSDPositionSetup/__init__.py | 0 .../SystemPlugins/OSDPositionSetup/plugin.py | 119 + .../SystemPlugins/PositionerSetup/Makefile.am | 9 + .../PositionerSetup/PositionerSetup.pdf | Bin 0 -> 27368 bytes .../SystemPlugins/PositionerSetup/__init__.py | 0 .../SystemPlugins/PositionerSetup/log.py | 53 + .../PositionerSetup/meta/Makefile.am | 5 + .../meta/plugin_positionersetup.xml | 20 + .../PositionerSetup/meta/positionersetup.jpg | Bin 0 -> 89388 bytes .../SystemPlugins/PositionerSetup/plugin.py | 1350 ++ .../PositionerSetup/rotor_calc.py | 102 + .../SatelliteEquipmentControl/Makefile.am | 7 + .../SatelliteEquipmentControl/__init__.py | 0 .../meta/Makefile.am | 5 + .../meta/plugin_satelliteequipmentcontrol.xml | 21 + .../meta/satcontrol.jpg | Bin 0 -> 182193 bytes .../SatelliteEquipmentControl/plugin.py | 77 + .../SystemPlugins/Satfinder/Makefile.am | 7 + .../SystemPlugins/Satfinder/__init__.py | 0 .../SystemPlugins/Satfinder/meta/Makefile.am | 5 + .../Satfinder/meta/plugin_satfinder.xml | 20 + .../Satfinder/meta/satfinder.jpg | Bin 0 -> 87698 bytes .../Plugins/SystemPlugins/Satfinder/plugin.py | 277 + .../SystemPlugins/SkinSelector/Makefile.am | 8 + .../SystemPlugins/SkinSelector/__init__.py | 0 .../SkinSelector/meta/Makefile.am | 5 + .../SkinSelector/meta/plugin_skinselector.xml | 21 + .../SkinSelector/meta/skinselector_de.jpg | Bin 0 -> 136439 bytes .../SkinSelector/meta/skinselector_en.jpg | Bin 0 -> 126685 bytes .../SystemPlugins/SkinSelector/noprev.png | Bin 0 -> 7959 bytes .../SystemPlugins/SkinSelector/plugin.py | 136 + .../SoftwareManager/BackupRestore.py | 332 + .../SoftwareManager/ImageWizard.py | 122 + .../SystemPlugins/SoftwareManager/Makefile.am | 21 + .../SoftwareManager/SoftwareTools.py | 279 + .../SystemPlugins/SoftwareManager/__init__.py | 0 .../SoftwareManager/imagewizard.xml | 102 + .../SystemPlugins/SoftwareManager/install.png | Bin 0 -> 2176 bytes .../SoftwareManager/installable.png | Bin 0 -> 1023 bytes .../SoftwareManager/installed.png | Bin 0 -> 2092 bytes .../SoftwareManager/meta/Makefile.am | 5 + .../meta/plugin_softwaremanager.xml | 21 + .../meta/softwaremanager_de.jpg | Bin 0 -> 95517 bytes .../meta/softwaremanager_en.jpg | Bin 0 -> 91769 bytes .../SystemPlugins/SoftwareManager/noprev.png | Bin 0 -> 1467 bytes .../SystemPlugins/SoftwareManager/plugin.py | 1935 ++ .../SystemPlugins/SoftwareManager/remove.png | Bin 0 -> 2238 bytes .../SystemPlugins/SoftwareManager/update.png | Bin 0 -> 3630 bytes .../SystemPlugins/SoftwareManager/upgrade.png | Bin 0 -> 2640 bytes .../SoftwareManager/upgradeable.png | Bin 0 -> 2092 bytes .../SystemPlugins/TempFanControl/Makefile.am | 7 + .../SystemPlugins/TempFanControl/__init__.py | 0 .../TempFanControl/meta/Makefile.am | 3 + .../meta/plugin_tempfancontrol.xml | 20 + .../SystemPlugins/TempFanControl/plugin.py | 171 + .../VideoClippingSetup/Makefile.am | 5 + .../VideoClippingSetup/__init__.py | 0 .../VideoClippingSetup/plugin.py | 129 + .../VideoEnhancement/Makefile.am | 8 + .../VideoEnhancement/VideoEnhancement.py | 273 + .../VideoEnhancement/__init__.py | 0 .../VideoEnhancement/meta/Makefile.am | 5 + .../meta/plugin_videoenhancement.xml | 24 + .../meta/videoenhancement_de.jpg | Bin 0 -> 117151 bytes .../meta/videoenhancement_en.jpg | Bin 0 -> 110365 bytes .../SystemPlugins/VideoEnhancement/plugin.py | 399 + .../SystemPlugins/VideoTune/Makefile.am | 7 + .../SystemPlugins/VideoTune/VideoFinetune.py | 348 + .../SystemPlugins/VideoTune/__init__.py | 0 .../SystemPlugins/VideoTune/meta/Makefile.am | 5 + .../VideoTune/meta/plugin_videotune.xml | 17 + .../VideoTune/meta/videotune.jpg | Bin 0 -> 116763 bytes .../Plugins/SystemPlugins/VideoTune/plugin.py | 14 + .../Plugins/SystemPlugins/Videomode/11DVI.png | Bin 0 -> 6865 bytes .../Plugins/SystemPlugins/Videomode/DVI.png | Bin 0 -> 4093 bytes .../Plugins/SystemPlugins/Videomode/HDMI.png | Bin 0 -> 4093 bytes .../SystemPlugins/Videomode/Makefile.am | 20 + .../Plugins/SystemPlugins/Videomode/Scart.png | Bin 0 -> 8621 bytes .../SystemPlugins/Videomode/VideoHardware.py | 340 + .../SystemPlugins/Videomode/VideoWizard.py | 191 + .../Plugins/SystemPlugins/Videomode/YPbPr.png | Bin 0 -> 9856 bytes .../SystemPlugins/Videomode/__init__.py | 0 .../SystemPlugins/Videomode/lcd_DVI.png | Bin 0 -> 261 bytes .../SystemPlugins/Videomode/lcd_HDMI.png | Bin 0 -> 231 bytes .../SystemPlugins/Videomode/lcd_Scart.png | Bin 0 -> 304 bytes .../SystemPlugins/Videomode/lcd_YPbPr.png | Bin 0 -> 289 bytes .../SystemPlugins/Videomode/meta/Makefile.am | 5 + .../Videomode/meta/plugin_videomode.xml | 19 + .../Videomode/meta/videomode_de.jpg | Bin 0 -> 103506 bytes .../Videomode/meta/videomode_en.jpg | Bin 0 -> 95799 bytes .../Plugins/SystemPlugins/Videomode/plugin.py | 239 + .../SystemPlugins/Videomode/videowizard.xml | 36 + .../SystemPlugins/WirelessLan/Makefile.am | 8 + .../Plugins/SystemPlugins/WirelessLan/Wlan.py | 370 + .../SystemPlugins/WirelessLan/__init__.py | 0 .../WirelessLan/meta/Makefile.am | 5 + .../WirelessLan/meta/plugin_wirelesslan.xml | 19 + .../WirelessLan/meta/wirelesslan_de.jpg | Bin 0 -> 94178 bytes .../WirelessLan/meta/wirelesslan_en.jpg | Bin 0 -> 90678 bytes .../SystemPlugins/WirelessLan/plugin.py | 403 + lib/python/Plugins/SystemPlugins/__init__.py | 0 lib/python/Plugins/__init__.py | 0 lib/python/Plugins/newplugin.py | 146 + lib/python/Screens/About.py | 192 + lib/python/Screens/AudioSelection.py | 473 + lib/python/Screens/AutoDiseqc.py | 298 + lib/python/Screens/ChannelSelection.py | 2087 ++ lib/python/Screens/ChoiceBox.py | 162 + lib/python/Screens/Ci.py | 395 + lib/python/Screens/ClockDisplay.py | 15 + lib/python/Screens/ConfigMenu.py | 37 + lib/python/Screens/Console.py | 78 + lib/python/Screens/CopyFiles.py | 86 + lib/python/Screens/DVD.py | 669 + lib/python/Screens/Dish.py | 228 + lib/python/Screens/EpgSelection.py | 465 + lib/python/Screens/EventView.py | 290 + lib/python/Screens/FactoryReset.py | 9 + lib/python/Screens/FixedMenu.py | 23 + lib/python/Screens/Globals.py | 7 + lib/python/Screens/HarddiskSetup.py | 83 + lib/python/Screens/HelpMenu.py | 61 + lib/python/Screens/InfoBar.py | 518 + lib/python/Screens/InfoBarGenerics.py | 3187 +++ lib/python/Screens/InputBox.py | 175 + lib/python/Screens/InputDeviceSetup.py | 381 + lib/python/Screens/InstallWizard.py | 216 + lib/python/Screens/Ipkg.py | 123 + lib/python/Screens/LanguageSelection.py | 99 + lib/python/Screens/LocationBox.py | 539 + lib/python/Screens/Makefile.am | 19 + lib/python/Screens/Menu.py | 249 + lib/python/Screens/MessageBox.py | 163 + lib/python/Screens/MinuteInput.py | 67 + lib/python/Screens/MovieSelection.py | 1906 ++ lib/python/Screens/Mute.py | 5 + lib/python/Screens/NetworkSetup.py | 1401 ++ .../Screens/NumericalTextInputHelpDialog.py | 18 + lib/python/Screens/PVRState.py | 12 + lib/python/Screens/ParentalControlSetup.py | 385 + lib/python/Screens/PiPSetup.py | 148 + lib/python/Screens/PictureInPicture.py | 216 + lib/python/Screens/PluginBrowser.py | 411 + lib/python/Screens/Rc.py | 94 + lib/python/Screens/RdsDisplay.py | 296 + lib/python/Screens/RecordPaths.py | 191 + lib/python/Screens/Satconfig.py | 730 + lib/python/Screens/ScanSetup.py | 1237 ++ lib/python/Screens/Scart.py | 53 + lib/python/Screens/Screen.py | 182 + lib/python/Screens/ScreenSaver.py | 57 + lib/python/Screens/ServiceInfo.py | 253 + lib/python/Screens/ServiceScan.py | 112 + lib/python/Screens/ServiceStopScreen.py | 45 + lib/python/Screens/SessionGlobals.py | 49 + lib/python/Screens/Setup.py | 148 + lib/python/Screens/SimpleSummary.py | 25 + lib/python/Screens/SleepTimerEdit.py | 137 + lib/python/Screens/SoftwareUpdate.py | 258 + lib/python/Screens/Standby.py | 248 + lib/python/Screens/StartWizard.py | 34 + lib/python/Screens/SubservicesQuickzap.py | 142 + lib/python/Screens/SubtitleDisplay.py | 6 + lib/python/Screens/TaskView.py | 150 + lib/python/Screens/TextBox.py | 26 + lib/python/Screens/TimeDateInput.py | 73 + lib/python/Screens/TimerEdit.py | 459 + lib/python/Screens/TimerEntry.py | 539 + lib/python/Screens/TimerSelection.py | 25 + lib/python/Screens/UnhandledKey.py | 7 + lib/python/Screens/VirtualKeyBoard.py | 418 + lib/python/Screens/Volume.py | 14 + lib/python/Screens/Wizard.py | 678 + lib/python/Screens/WizardLanguage.py | 31 + lib/python/Screens/__init__.py | 0 lib/python/Tools/ASCIItranslit.py | 271 + lib/python/Tools/Alternatives.py | 18 + lib/python/Tools/BoundFunction.py | 9 + lib/python/Tools/CList.py | 7 + lib/python/Tools/Directories.py | 370 + lib/python/Tools/Downloader.py | 53 + lib/python/Tools/Event.py | 23 + lib/python/Tools/FuzzyDate.py | 41 + lib/python/Tools/GetEcmInfo.py | 136 + lib/python/Tools/HardwareInfo.py | 95 + lib/python/Tools/ISO639.py | 436 + lib/python/Tools/Import.py | 6 + lib/python/Tools/KeyBindings.py | 157 + lib/python/Tools/LXMLTools.py | 26 + lib/python/Tools/LoadPixmap.py | 15 + lib/python/Tools/Makefile.am | 8 + lib/python/Tools/Notifications.py | 51 + lib/python/Tools/NumericalTextInput.py | 182 + lib/python/Tools/Profile.py | 51 + lib/python/Tools/RedirectOutput.py | 13 + lib/python/Tools/StbHardware.py | 76 + lib/python/Tools/Transponder.py | 172 + lib/python/Tools/Trashcan.py | 161 + lib/python/Tools/XMLTools.py | 26 + lib/python/Tools/__init__.py | 0 lib/python/connections.cpp | 40 + lib/python/connections.h | 102 + lib/python/enigma_py_patcher.py | 32 + lib/python/enigma_python.i | 422 + lib/python/python.cpp | 239 + lib/python/python.h | 427 + lib/python/python_base.i | 425 + lib/python/python_console.i | 385 + lib/python/python_dvb.i | 47 + lib/python/python_helpers.cpp | 169 + lib/python/python_helpers.h | 17 + lib/python/python_pcore.i | 13 + lib/python/python_pmt.i | 30 + lib/python/python_service.i | 410 + lib/python/pythonconfig.cpp | 42 + lib/python/pythonconfig.h | 20 + lib/python/swig.h | 26 + lib/service/Makefile.inc | 44 + lib/service/event.cpp | 350 + lib/service/event.h | 138 + lib/service/iservice.h | 1059 + lib/service/listboxservice.cpp | 979 + lib/service/listboxservice.h | 177 + lib/service/service.cpp | 356 + lib/service/service.h | 49 + lib/service/servicedvb.cpp | 3467 +++ lib/service/servicedvb.h | 323 + lib/service/servicedvbrecord.cpp | 621 + lib/service/servicedvbrecord.h | 78 + lib/service/servicedvbstream.cpp | 323 + lib/service/servicedvbstream.h | 53 + lib/service/servicedvd.cpp | 1045 + lib/service/servicedvd.h | 156 + lib/service/servicefs.cpp | 382 + lib/service/servicefs.h | 46 + lib/service/servicehdmi.cpp | 327 + lib/service/servicehdmi.h | 122 + lib/service/servicem2ts.cpp | 340 + lib/service/servicem2ts.h | 33 + lib/service/servicemp3.cpp | 2533 +++ lib/service/servicemp3.h | 339 + lib/service/servicexine.cpp | 395 + lib/service/servicexine.h | 118 + m4/ax_pkg_swig.m4 | 133 + m4/ax_pthread.m4 | 283 + m4/ax_python_devel.m4 | 325 + m4/ax_swig_enable_cxx.m4 | 53 + m4/ax_swig_python.m4 | 64 + m4/tuxbox.m4 | 36 + main/Makefile.am | 84 + main/bsod.cpp | 366 + main/bsod.h | 8 + main/enigma-dvbtest.cpp | 144 + main/enigma-gdi.cpp | 111 + main/enigma-gui.cpp | 106 + main/enigma-playlist.cpp | 158 + main/enigma-scan.cpp | 94 + main/enigma.cpp | 330 + main/version_info.cpp | 19 + main/version_info.h | 9 + main/xmlgenerator.cpp | 188 + main/xmlgenerator.h | 43 + mytest.py | 600 + po/Makefile.am | 45 + po/ar.po | 8944 ++++++++ po/bg.po | 7917 +++++++ po/ca.po | 9427 ++++++++ po/cs.po | 9625 ++++++++ po/da.po | 9829 +++++++++ po/de.po | 8530 ++++++++ po/el.po | 8083 +++++++ po/en.po | 8069 +++++++ po/es.po | 9873 +++++++++ po/et.po | 8056 +++++++ po/fa.po | 8291 +++++++ po/fi.po | 9985 +++++++++ po/fr.po | 8063 +++++++ po/fy.po | 9648 ++++++++ po/he.po | 8876 ++++++++ po/hr.po | 9455 ++++++++ po/hu.po | 8098 +++++++ po/is.po | 9473 ++++++++ po/it.po | 9417 ++++++++ po/ku.po | 8157 +++++++ po/lt.po | 8337 +++++++ po/lv.po | 8095 +++++++ po/nl.po | 8992 ++++++++ po/no.po | 9156 ++++++++ po/pl.po | 9804 +++++++++ po/pt.po | 9775 +++++++++ po/pt_BR.po | 8720 ++++++++ po/ro.po | 8251 +++++++ po/ru.po | 8111 +++++++ po/sk.po | 8351 +++++++ po/sl.po | 9590 ++++++++ po/sr.po | 9811 +++++++++ po/sv.po | 9456 ++++++++ po/th.po | 8298 +++++++ po/tr.po | 8041 +++++++ po/uk.po | 10629 +++++++++ po/xml2po.py | 67 + skin.py | 955 + stamp-h.in | 1 + tests/FakeNotifications.py | 2 + tests/README | 42 + tests/enigma.py | 364 + tests/events.py | 70 + tests/fake_time.py | 31 + tests/hdd/movie/dummy | 0 tests/test_timer.py | 96 + tests/test_timer_repeating.results | 36 + tests/test_timer_repeating_dst_skip.results | 34 + tests/test_timer_repeating_dst_start.results | 36 + tests/tests.py | 3 + timer.py | 268 + timers.xml | 5 + tools/Makefile.am | 7 + tools/convert_argb_png.c | 190 + tools/create_picon_e1_to_e2.py | 80 + tools/create_picon_links.py | 43 + tools/create_picon_providers.py | 71 + tools/create_picon_sats.py | 84 + tools/enigma2.sh.in | 71 + tools/genmetaindex.py | 50 + tools/host_tools/FormatConverter/README | 7 + .../host_tools/FormatConverter/datasource.py | 109 + tools/host_tools/FormatConverter/input.py | 23 + tools/host_tools/FormatConverter/lamedb.py | 80 + .../FormatConverter/lamedb2satxml.py | 21 + tools/host_tools/FormatConverter/main.py | 43 + tools/host_tools/FormatConverter/satxml.py | 86 + tools/libopen.c | 287 + tools/svg2skin.py | 93 + userbouquet.orf.tv | 15 + userbouquet.premiere.tv | 36 + userbouquet.srgssr.tv | 9 + 1348 files changed, 518915 insertions(+) create mode 100644 AUTHORS create mode 100644 COPYING create mode 100644 ChangeLog create mode 100644 GlobalActions.py create mode 100644 LICENSE create mode 100644 LICENSE.GPLv2 create mode 100644 Makefile.am create mode 100644 NEWS create mode 100644 Navigation.py create mode 100644 NavigationInstance.py create mode 100644 README create mode 100644 RecordTimer.py create mode 100644 ServiceReference.py create mode 100644 autogen.sh create mode 100644 configure.ac create mode 100644 data/Makefile.am create mode 100644 data/black.mvi create mode 100644 data/countries/Makefile.am create mode 100644 data/countries/ad.png create mode 100644 data/countries/ae.png create mode 100644 data/countries/bg.png create mode 100644 data/countries/br.png create mode 100644 data/countries/cz.png create mode 100644 data/countries/de.png create mode 100644 data/countries/dk.png create mode 100644 data/countries/ee.png create mode 100644 data/countries/en.png create mode 100644 data/countries/es.png create mode 100644 data/countries/fi.png create mode 100644 data/countries/fr.png create mode 100644 data/countries/fy_NL.png create mode 100644 data/countries/gr.png create mode 100644 data/countries/hr.png create mode 100644 data/countries/hu.png create mode 100644 data/countries/il.png create mode 100644 data/countries/ir.png create mode 100644 data/countries/is.png create mode 100644 data/countries/it.png create mode 100644 data/countries/ku.png create mode 100644 data/countries/lt.png create mode 100644 data/countries/lv.png create mode 100644 data/countries/missing.png create mode 100644 data/countries/nl.png create mode 100644 data/countries/no.png create mode 100644 data/countries/pl.png create mode 100644 data/countries/pt.png create mode 100644 data/countries/ro.png create mode 100644 data/countries/ru.png create mode 100644 data/countries/se.png create mode 100644 data/countries/si.png create mode 100644 data/countries/sk.png create mode 100644 data/countries/th.png create mode 100644 data/countries/tr.png create mode 100644 data/countries/ua.png create mode 100644 data/countries/yu.png create mode 100644 data/encoding.conf create mode 100644 data/extensions/Makefile.am create mode 100644 data/extensions/directory.png create mode 100644 data/extensions/movie.png create mode 100644 data/extensions/music.png create mode 100644 data/extensions/picture.png create mode 100644 data/fonts/DroidSans-Bold.ttf create mode 100644 data/fonts/Makefile.am create mode 100644 data/fonts/ae_AlMateen.license create mode 100644 data/fonts/ae_AlMateen.ttf create mode 100644 data/fonts/andale.ttf create mode 100644 data/fonts/lcd.ttf create mode 100644 data/fonts/md_khmurabi_10.ttf create mode 100644 data/fonts/nmsbd.ttf create mode 100644 data/fonts/tuxtxt.ttf create mode 100644 data/freesat.t1 create mode 100644 data/freesat.t2 create mode 100644 data/hw_info/Makefile.am create mode 100644 data/hw_info/hw_info.cfg create mode 100644 data/keymap.xml create mode 100644 data/keymaps/Makefile.am create mode 100644 data/keymaps/azerty.info create mode 100644 data/keymaps/azerty.kmap create mode 100644 data/keymaps/de.info create mode 100644 data/keymaps/de.kmap create mode 100644 data/keymaps/default.info create mode 100644 data/keymaps/default.kmap create mode 100644 data/keymaps/dream-de.info create mode 100644 data/keymaps/dream-de.kmap create mode 100644 data/keymaps/eng.info create mode 100644 data/keymaps/eng.kmap create mode 100644 data/menu.xml create mode 100644 data/prev.png create mode 100644 data/radio-hd.mvi create mode 100644 data/radio-sd.mvi create mode 100644 data/radio.mvi create mode 100644 data/rc_models/Makefile.am create mode 100644 data/rc_models/dmm.png create mode 100644 data/rc_models/dmm.xml create mode 100644 data/rc_models/dmmadv.png create mode 100644 data/rc_models/dmmadv.xml create mode 100644 data/rc_models/et4x00.png create mode 100644 data/rc_models/et4x00.xml create mode 100644 data/rc_models/et6x00.png create mode 100644 data/rc_models/et6x00.xml create mode 100644 data/rc_models/et8000.png create mode 100644 data/rc_models/et8000.xml create mode 100644 data/rc_models/et9500.png create mode 100644 data/rc_models/et9500.xml create mode 100644 data/rc_models/et9x00.png create mode 100644 data/rc_models/et9x00.xml create mode 100644 data/rc_models/gigablue.png create mode 100644 data/rc_models/gigablue.xml create mode 100644 data/rc_models/rc_models.cfg create mode 100644 data/rc_models/vu.png create mode 100644 data/rc_models/vu.xml create mode 100644 data/rc_models/vuduo2.png create mode 100644 data/rc_models/vuduo2.xml create mode 100644 data/rc_models/vuultimo.png create mode 100644 data/rc_models/vuultimo.xml create mode 100644 data/rc_models/xp1000.png create mode 100644 data/rc_models/xp1000.xml create mode 100644 data/rcpositions.xml create mode 100644 data/setup.xml create mode 100644 data/skin.xml create mode 100644 data/skin_default.xml create mode 100644 data/skin_default/LCDIcons/Makefile.am create mode 100644 data/skin_default/LCDIcons/rec.png create mode 100644 data/skin_default/Makefile.am create mode 100644 data/skin_default/anniversaryOpenPLi.png create mode 100644 data/skin_default/arrowdown.png create mode 100644 data/skin_default/arrowup.png create mode 100644 data/skin_default/b_b.png create mode 100644 data/skin_default/b_bl.png create mode 100644 data/skin_default/b_br.png create mode 100644 data/skin_default/b_l.png create mode 100644 data/skin_default/b_r.png create mode 100644 data/skin_default/b_t.png create mode 100644 data/skin_default/b_tl.png create mode 100644 data/skin_default/b_tr.png create mode 100644 data/skin_default/bar_ber.png create mode 100644 data/skin_default/bar_snr.png create mode 100644 data/skin_default/border_epg.png create mode 100644 data/skin_default/border_eventinfo.png create mode 100644 data/skin_default/border_info.png create mode 100644 data/skin_default/border_menu.png create mode 100644 data/skin_default/border_menu_300.png create mode 100644 data/skin_default/border_menu_350.png create mode 100644 data/skin_default/border_multiepg.png create mode 100644 data/skin_default/bottombar.png create mode 100644 data/skin_default/buttons/Makefile.am create mode 100644 data/skin_default/buttons/blue.png create mode 100644 data/skin_default/buttons/blue_pressed.png create mode 100644 data/skin_default/buttons/button_blue.png create mode 100644 data/skin_default/buttons/button_blue_off.png create mode 100644 data/skin_default/buttons/button_green.png create mode 100644 data/skin_default/buttons/button_green_off.png create mode 100644 data/skin_default/buttons/button_red.png create mode 100644 data/skin_default/buttons/button_red_off.png create mode 100644 data/skin_default/buttons/button_yellow.png create mode 100644 data/skin_default/buttons/button_yellow_off.png create mode 100644 data/skin_default/buttons/green-big.png create mode 100644 data/skin_default/buttons/green.png create mode 100644 data/skin_default/buttons/key_0.png create mode 100644 data/skin_default/buttons/key_1.png create mode 100644 data/skin_default/buttons/key_2.png create mode 100644 data/skin_default/buttons/key_3.png create mode 100644 data/skin_default/buttons/key_4.png create mode 100644 data/skin_default/buttons/key_5.png create mode 100644 data/skin_default/buttons/key_6.png create mode 100644 data/skin_default/buttons/key_7.png create mode 100644 data/skin_default/buttons/key_8.png create mode 100644 data/skin_default/buttons/key_9.png create mode 100644 data/skin_default/buttons/key_blue.png create mode 100644 data/skin_default/buttons/key_green.png create mode 100644 data/skin_default/buttons/key_info.png create mode 100644 data/skin_default/buttons/key_menu.png create mode 100644 data/skin_default/buttons/key_red.png create mode 100644 data/skin_default/buttons/key_text.png create mode 100644 data/skin_default/buttons/key_yellow.png create mode 100644 data/skin_default/buttons/red-big.png create mode 100644 data/skin_default/buttons/red.png create mode 100644 data/skin_default/buttons/yellow.png create mode 100644 data/skin_default/celserviceeventprogressbar.png create mode 100644 data/skin_default/div-h.png create mode 100644 data/skin_default/div-v.png create mode 100644 data/skin_default/epg_more.png create mode 100644 data/skin_default/epg_next.png create mode 100644 data/skin_default/epg_now.png create mode 100644 data/skin_default/expandable-plugins.png create mode 100644 data/skin_default/expanded-plugins.png create mode 100644 data/skin_default/icons/Makefile.am create mode 100644 data/skin_default/icons/ask.png create mode 100644 data/skin_default/icons/az.png create mode 100644 data/skin_default/icons/clock.png create mode 100644 data/skin_default/icons/dish.png create mode 100644 data/skin_default/icons/dish_scan.png create mode 100644 data/skin_default/icons/dmm_logo.png create mode 100644 data/skin_default/icons/epgclock.png create mode 100644 data/skin_default/icons/epgclock_add.png create mode 100644 data/skin_default/icons/epgclock_post.png create mode 100644 data/skin_default/icons/epgclock_pre.png create mode 100644 data/skin_default/icons/epgclock_prepost.png create mode 100644 data/skin_default/icons/faz.png create mode 100644 data/skin_default/icons/folder.png create mode 100644 data/skin_default/icons/fza.png create mode 100644 data/skin_default/icons/ico_dvb_c-fs8.png create mode 100644 data/skin_default/icons/ico_dvb_s-fs8.png create mode 100644 data/skin_default/icons/ico_dvb_t-fs8.png create mode 100644 data/skin_default/icons/ico_mp_forward.png create mode 100644 data/skin_default/icons/ico_mp_pause.png create mode 100644 data/skin_default/icons/ico_mp_play.png create mode 100644 data/skin_default/icons/ico_mp_rewind.png create mode 100644 data/skin_default/icons/ico_mp_stop.png create mode 100644 data/skin_default/icons/ico_service_group-fs8.png create mode 100644 data/skin_default/icons/ico_stream-fs8.png create mode 100644 data/skin_default/icons/icon_crypt.png create mode 100644 data/skin_default/icons/icon_dolby.png create mode 100644 data/skin_default/icons/icon_event.png create mode 100644 data/skin_default/icons/icon_format.png create mode 100644 data/skin_default/icons/icon_rec.png create mode 100644 data/skin_default/icons/icon_rec_off.png create mode 100644 data/skin_default/icons/icon_txt.png create mode 100644 data/skin_default/icons/icon_view.png create mode 100644 data/skin_default/icons/icons_off.png create mode 100644 data/skin_default/icons/input_error.png create mode 100644 data/skin_default/icons/input_info.png create mode 100644 data/skin_default/icons/input_keyboard-configured.png create mode 100644 data/skin_default/icons/input_keyboard.png create mode 100644 data/skin_default/icons/input_mouse-configured.png create mode 100644 data/skin_default/icons/input_mouse.png create mode 100644 data/skin_default/icons/input_question.png create mode 100644 data/skin_default/icons/input_rcnew-configured.png create mode 100644 data/skin_default/icons/input_rcnew.png create mode 100644 data/skin_default/icons/input_rcold-configured.png create mode 100644 data/skin_default/icons/input_rcold.png create mode 100644 data/skin_default/icons/lock.png create mode 100644 data/skin_default/icons/lockBouquet.png create mode 100644 data/skin_default/icons/lock_error.png create mode 100644 data/skin_default/icons/lock_off.png create mode 100644 data/skin_default/icons/lock_on.png create mode 100644 data/skin_default/icons/loop.png create mode 100644 data/skin_default/icons/marker.png create mode 100644 data/skin_default/icons/movie_play.png create mode 100644 data/skin_default/icons/movie_play_rec.png create mode 100644 data/skin_default/icons/movielist.png create mode 100644 data/skin_default/icons/mp_buttons.png create mode 100644 data/skin_default/icons/network_wired-active.png create mode 100644 data/skin_default/icons/network_wired-inactive.png create mode 100644 data/skin_default/icons/network_wired.png create mode 100644 data/skin_default/icons/network_wireless-active.png create mode 100644 data/skin_default/icons/network_wireless-inactive.png create mode 100644 data/skin_default/icons/network_wireless.png create mode 100644 data/skin_default/icons/newtop.png create mode 100644 data/skin_default/icons/oldtop.png create mode 100644 data/skin_default/icons/part_0_4.png create mode 100644 data/skin_default/icons/part_1_4.png create mode 100644 data/skin_default/icons/part_2_4.png create mode 100644 data/skin_default/icons/part_3_4.png create mode 100644 data/skin_default/icons/part_4_4.png create mode 100644 data/skin_default/icons/part_new.png create mode 100644 data/skin_default/icons/part_unwatched.png create mode 100644 data/skin_default/icons/pause.png create mode 100644 data/skin_default/icons/playlist.png create mode 100644 data/skin_default/icons/playlistquit.png create mode 100644 data/skin_default/icons/plilogo-fs8.png create mode 100644 data/skin_default/icons/plugin.png create mode 100644 data/skin_default/icons/quit.png create mode 100644 data/skin_default/icons/rass_logo.png create mode 100644 data/skin_default/icons/rass_page1.png create mode 100644 data/skin_default/icons/rass_page2.png create mode 100644 data/skin_default/icons/rass_page3.png create mode 100644 data/skin_default/icons/rass_page4.png create mode 100644 data/skin_default/icons/record.png create mode 100644 data/skin_default/icons/redx.png create mode 100644 data/skin_default/icons/rep.png create mode 100644 data/skin_default/icons/repeat_off.png create mode 100644 data/skin_default/icons/repeat_on.png create mode 100644 data/skin_default/icons/scan-c.png create mode 100644 data/skin_default/icons/scan-s.png create mode 100644 data/skin_default/icons/scan-t.png create mode 100644 data/skin_default/icons/selectioncross.png create mode 100644 data/skin_default/icons/shuffle.png create mode 100644 data/skin_default/icons/timer_done.png create mode 100644 data/skin_default/icons/timer_off.png create mode 100644 data/skin_default/icons/timer_prep.png create mode 100644 data/skin_default/icons/timer_rec.png create mode 100644 data/skin_default/icons/timer_rep.png create mode 100644 data/skin_default/icons/timer_wait.png create mode 100644 data/skin_default/icons/timer_zap.png create mode 100644 data/skin_default/icons/trashcan.png create mode 100644 data/skin_default/icons/unlock.png create mode 100644 data/skin_default/icons/unlockBouquet.png create mode 100644 data/skin_default/icons/za.png create mode 100644 data/skin_default/icons/zapclock.png create mode 100644 data/skin_default/icons/zapclock_add.png create mode 100644 data/skin_default/icons/zapclock_post.png create mode 100644 data/skin_default/icons/zapclock_pre.png create mode 100644 data/skin_default/icons/zapclock_prepost.png create mode 100644 data/skin_default/icons/zaprecclock.png create mode 100644 data/skin_default/icons/zaprecclock_add.png create mode 100644 data/skin_default/icons/zaprecclock_post.png create mode 100644 data/skin_default/icons/zaprecclock_pre.png create mode 100644 data/skin_default/icons/zaprecclock_prepost.png create mode 100644 data/skin_default/info-bg.png create mode 100644 data/skin_default/info-bg_mp.png create mode 100644 data/skin_default/mediaplayer_bg.png create mode 100644 data/skin_default/menu/Makefile.am create mode 100644 data/skin_default/menu/dvd_player.png create mode 100644 data/skin_default/menu/information.png create mode 100644 data/skin_default/menu/media_player.png create mode 100644 data/skin_default/menu/plugins.png create mode 100644 data/skin_default/menu/scart.png create mode 100644 data/skin_default/menu/setup.png create mode 100644 data/skin_default/menu/shutdown.png create mode 100644 data/skin_default/menu/subtitles.png create mode 100644 data/skin_default/menu/timer.png create mode 100644 data/skin_default/mute.png create mode 100644 data/skin_default/nim_active.png create mode 100644 data/skin_default/no_coverArt.png create mode 100644 data/skin_default/overscan.png create mode 100644 data/skin_default/picon_default.png create mode 100644 data/skin_default/position_arrow.png create mode 100644 data/skin_default/position_pointer.png create mode 100644 data/skin_default/progress_bg.png create mode 100644 data/skin_default/progress_big.png create mode 100644 data/skin_default/progress_medium.png create mode 100644 data/skin_default/progress_small.png create mode 100644 data/skin_default/rc.png create mode 100644 data/skin_default/rc0.png create mode 100644 data/skin_default/rc1.png create mode 100644 data/skin_default/rc2.png create mode 100644 data/skin_default/rcold.png create mode 100644 data/skin_default/screws.png create mode 100644 data/skin_default/screws_mp.png create mode 100644 data/skin_default/sleeptimer.png create mode 100644 data/skin_default/spinner/Makefile.am create mode 100644 data/skin_default/spinner/wait0.png create mode 100644 data/skin_default/spinner/wait1.png create mode 100644 data/skin_default/spinner/wait10.png create mode 100644 data/skin_default/spinner/wait11.png create mode 100644 data/skin_default/spinner/wait12.png create mode 100644 data/skin_default/spinner/wait13.png create mode 100644 data/skin_default/spinner/wait14.png create mode 100644 data/skin_default/spinner/wait15.png create mode 100644 data/skin_default/spinner/wait16.png create mode 100644 data/skin_default/spinner/wait17.png create mode 100644 data/skin_default/spinner/wait18.png create mode 100644 data/skin_default/spinner/wait19.png create mode 100644 data/skin_default/spinner/wait2.png create mode 100644 data/skin_default/spinner/wait20.png create mode 100644 data/skin_default/spinner/wait21.png create mode 100644 data/skin_default/spinner/wait22.png create mode 100644 data/skin_default/spinner/wait23.png create mode 100644 data/skin_default/spinner/wait24.png create mode 100644 data/skin_default/spinner/wait25.png create mode 100644 data/skin_default/spinner/wait26.png create mode 100644 data/skin_default/spinner/wait27.png create mode 100644 data/skin_default/spinner/wait28.png create mode 100644 data/skin_default/spinner/wait29.png create mode 100644 data/skin_default/spinner/wait3.png create mode 100644 data/skin_default/spinner/wait30.png create mode 100644 data/skin_default/spinner/wait31.png create mode 100644 data/skin_default/spinner/wait32.png create mode 100644 data/skin_default/spinner/wait33.png create mode 100644 data/skin_default/spinner/wait34.png create mode 100644 data/skin_default/spinner/wait35.png create mode 100644 data/skin_default/spinner/wait36.png create mode 100644 data/skin_default/spinner/wait37.png create mode 100644 data/skin_default/spinner/wait38.png create mode 100644 data/skin_default/spinner/wait39.png create mode 100644 data/skin_default/spinner/wait4.png create mode 100644 data/skin_default/spinner/wait40.png create mode 100644 data/skin_default/spinner/wait41.png create mode 100644 data/skin_default/spinner/wait42.png create mode 100644 data/skin_default/spinner/wait43.png create mode 100644 data/skin_default/spinner/wait44.png create mode 100644 data/skin_default/spinner/wait45.png create mode 100644 data/skin_default/spinner/wait46.png create mode 100644 data/skin_default/spinner/wait47.png create mode 100644 data/skin_default/spinner/wait48.png create mode 100644 data/skin_default/spinner/wait5.png create mode 100644 data/skin_default/spinner/wait6.png create mode 100644 data/skin_default/spinner/wait7.png create mode 100644 data/skin_default/spinner/wait8.png create mode 100644 data/skin_default/spinner/wait9.png create mode 100644 data/skin_default/testscreen.png create mode 100644 data/skin_default/timeline-now.png create mode 100644 data/skin_default/timeline.png create mode 100644 data/skin_default/unhandled-key.png create mode 100644 data/skin_default/verticalline-plugins.png create mode 100644 data/skin_default/vkey_all.png create mode 100644 data/skin_default/vkey_backspace.png create mode 100644 data/skin_default/vkey_bg.png create mode 100644 data/skin_default/vkey_clr.png create mode 100644 data/skin_default/vkey_esc.png create mode 100644 data/skin_default/vkey_icon.png create mode 100644 data/skin_default/vkey_left.png create mode 100644 data/skin_default/vkey_ok.png create mode 100644 data/skin_default/vkey_right.png create mode 100644 data/skin_default/vkey_sel.png create mode 100644 data/skin_default/vkey_shift.png create mode 100644 data/skin_default/vkey_shift_sel.png create mode 100644 data/skin_default/vkey_space.png create mode 100644 data/skin_default/vkey_text.png create mode 100644 data/skin_default/volume.png create mode 100644 data/skin_default/wizard.png create mode 100644 data/skin_display96.xml create mode 100644 data/skin_display_default.xml create mode 100644 data/skin_display_et10000.xml create mode 100644 data/skin_display_vuduo2.xml create mode 100644 data/skin_subtitles.xml create mode 100644 data/skin_text.xml create mode 100644 data/startwizard.xml create mode 100644 data/unicable.xml create mode 100644 doc/DEFAULTS create mode 100644 doc/FILEFORMAT create mode 100644 doc/PLUGINS create mode 100644 doc/RETURNCODES create mode 100644 doc/RULES create mode 100644 doc/SKINS create mode 100644 doc/SOURCES create mode 100644 doc/TPM create mode 100644 doxy.conf create mode 100644 doxy/README create mode 100644 e2reactor.py create mode 100644 enigma2.bb create mode 100644 enigma2.pc.in create mode 100644 include/Makefile.am create mode 100644 include/connection.h create mode 100644 include/libsig_comp.h create mode 100644 keyids.py create mode 100644 keymapparser.py create mode 100644 lamedb create mode 100644 lib/Makefile.am create mode 100644 lib/actions/Makefile.inc create mode 100644 lib/actions/action.cpp create mode 100644 lib/actions/action.h create mode 100644 lib/actions/parseactions.py create mode 100644 lib/base/Makefile.inc create mode 100644 lib/base/benchmark.h create mode 100644 lib/base/buffer.cpp create mode 100644 lib/base/buffer.h create mode 100644 lib/base/cachedtssource.cpp create mode 100644 lib/base/cachedtssource.h create mode 100644 lib/base/cfile.cpp create mode 100644 lib/base/cfile.h create mode 100644 lib/base/connection.cpp create mode 100644 lib/base/console.cpp create mode 100644 lib/base/console.h create mode 100644 lib/base/ebase.cpp create mode 100644 lib/base/ebase.h create mode 100644 lib/base/eenv.cpp.in create mode 100644 lib/base/eenv.h create mode 100644 lib/base/eerror.cpp create mode 100644 lib/base/eerror.h create mode 100644 lib/base/elock.cpp create mode 100644 lib/base/elock.h create mode 100644 lib/base/encoding.cpp create mode 100644 lib/base/encoding.h create mode 100644 lib/base/eptrlist.h create mode 100644 lib/base/estring.cpp create mode 100644 lib/base/estring.h create mode 100644 lib/base/etpm.cpp create mode 100644 lib/base/etpm.h create mode 100644 lib/base/filepush.cpp create mode 100644 lib/base/filepush.h create mode 100644 lib/base/freesatv2.cpp create mode 100644 lib/base/freesatv2.h create mode 100644 lib/base/httpstream.cpp create mode 100644 lib/base/httpstream.h create mode 100644 lib/base/i18n.h create mode 100644 lib/base/init.cpp create mode 100644 lib/base/init.h create mode 100644 lib/base/init_num.h create mode 100644 lib/base/ioprio.cpp create mode 100644 lib/base/ioprio.h create mode 100644 lib/base/itssource.h create mode 100644 lib/base/message.cpp create mode 100644 lib/base/message.h create mode 100644 lib/base/nconfig.cpp create mode 100644 lib/base/nconfig.h create mode 100644 lib/base/object.h create mode 100644 lib/base/rawfile.cpp create mode 100644 lib/base/rawfile.h create mode 100644 lib/base/ringbuffer.h create mode 100644 lib/base/smartptr.cpp create mode 100644 lib/base/smartptr.h create mode 100644 lib/base/thread.cpp create mode 100644 lib/base/thread.h create mode 100644 lib/base/wrappers.cpp create mode 100644 lib/base/wrappers.h create mode 100644 lib/components/Makefile.inc create mode 100644 lib/components/file_eraser.cpp create mode 100644 lib/components/file_eraser.h create mode 100644 lib/components/scan.cpp create mode 100644 lib/components/scan.h create mode 100644 lib/components/tuxtxtapp.cpp create mode 100644 lib/components/tuxtxtapp.h create mode 100644 lib/driver/Makefile.inc create mode 100644 lib/driver/avswitch.cpp create mode 100644 lib/driver/avswitch.h create mode 100644 lib/driver/etimezone.cpp create mode 100644 lib/driver/etimezone.h create mode 100644 lib/driver/hdmi_cec.cpp create mode 100644 lib/driver/hdmi_cec.h create mode 100644 lib/driver/input_fake.h create mode 100644 lib/driver/misc_options.cpp create mode 100644 lib/driver/misc_options.h create mode 100644 lib/driver/rc.cpp create mode 100644 lib/driver/rc.h create mode 100644 lib/driver/rcconsole.cpp create mode 100644 lib/driver/rcconsole.h create mode 100644 lib/driver/rcdbox.h create mode 100644 lib/driver/rcdreambox2.cpp create mode 100644 lib/driver/rcdreambox2.h create mode 100644 lib/driver/rcinput.cpp create mode 100644 lib/driver/rcinput.h create mode 100644 lib/driver/rcinput_swig.h create mode 100644 lib/driver/rcsdl.cpp create mode 100644 lib/driver/rcsdl.h create mode 100644 lib/driver/rfmod.cpp create mode 100644 lib/driver/rfmod.h create mode 100644 lib/dvb/Makefile.inc create mode 100644 lib/dvb/cablescan.cpp create mode 100644 lib/dvb/cablescan.h create mode 100644 lib/dvb/cahandler.cpp create mode 100644 lib/dvb/cahandler.h create mode 100644 lib/dvb/crc32.cpp create mode 100644 lib/dvb/crc32.h create mode 100644 lib/dvb/db.cpp create mode 100644 lib/dvb/db.h create mode 100644 lib/dvb/decoder.cpp create mode 100644 lib/dvb/decoder.h create mode 100644 lib/dvb/demux.cpp create mode 100644 lib/dvb/demux.h create mode 100644 lib/dvb/dvb.cpp create mode 100644 lib/dvb/dvb.h create mode 100644 lib/dvb/dvbtime.cpp create mode 100644 lib/dvb/dvbtime.h create mode 100644 lib/dvb/eit.cpp create mode 100644 lib/dvb/eit.h create mode 100644 lib/dvb/encoder.cpp create mode 100644 lib/dvb/encoder.h create mode 100644 lib/dvb/epgcache.cpp create mode 100644 lib/dvb/epgcache.h create mode 100644 lib/dvb/esection.cpp create mode 100644 lib/dvb/esection.h create mode 100644 lib/dvb/fastscan.cpp create mode 100644 lib/dvb/fastscan.h create mode 100644 lib/dvb/frontend.cpp create mode 100644 lib/dvb/frontend.h create mode 100644 lib/dvb/frontendparms.cpp create mode 100644 lib/dvb/frontendparms.h create mode 100644 lib/dvb/idemux.h create mode 100644 lib/dvb/idvb.h create mode 100644 lib/dvb/isection.h create mode 100644 lib/dvb/list.h create mode 100644 lib/dvb/lowlevel/Makefile.inc create mode 100644 lib/dvb/lowlevel/eit.h create mode 100644 lib/dvb/lowlevel/mhw.h create mode 100644 lib/dvb/metaparser.cpp create mode 100644 lib/dvb/metaparser.h create mode 100644 lib/dvb/pesparse.cpp create mode 100644 lib/dvb/pesparse.h create mode 100644 lib/dvb/pmt.cpp create mode 100644 lib/dvb/pmt.h create mode 100644 lib/dvb/pmtparse.cpp create mode 100644 lib/dvb/pmtparse.h create mode 100644 lib/dvb/pvrparse.cpp create mode 100644 lib/dvb/pvrparse.h create mode 100644 lib/dvb/radiotext.cpp create mode 100644 lib/dvb/radiotext.h create mode 100644 lib/dvb/rotor_calc.cpp create mode 100644 lib/dvb/rotor_calc.h create mode 100644 lib/dvb/scan.cpp create mode 100644 lib/dvb/scan.h create mode 100644 lib/dvb/sec.cpp create mode 100644 lib/dvb/sec.h create mode 100644 lib/dvb/specs.h create mode 100644 lib/dvb/streamserver.cpp create mode 100644 lib/dvb/streamserver.h create mode 100644 lib/dvb/subtitle.cpp create mode 100644 lib/dvb/subtitle.h create mode 100644 lib/dvb/teletext.cpp create mode 100644 lib/dvb/teletext.h create mode 100644 lib/dvb/tstools.cpp create mode 100644 lib/dvb/tstools.h create mode 100644 lib/dvb/volume.cpp create mode 100644 lib/dvb/volume.h create mode 100644 lib/dvb_ci/Makefile.inc create mode 100644 lib/dvb_ci/dvbci.cpp create mode 100644 lib/dvb_ci/dvbci.h create mode 100644 lib/dvb_ci/dvbci_appmgr.cpp create mode 100644 lib/dvb_ci/dvbci_appmgr.h create mode 100644 lib/dvb_ci/dvbci_camgr.cpp create mode 100644 lib/dvb_ci/dvbci_camgr.h create mode 100644 lib/dvb_ci/dvbci_datetimemgr.cpp create mode 100644 lib/dvb_ci/dvbci_datetimemgr.h create mode 100644 lib/dvb_ci/dvbci_mmi.cpp create mode 100644 lib/dvb_ci/dvbci_mmi.h create mode 100644 lib/dvb_ci/dvbci_resmgr.cpp create mode 100644 lib/dvb_ci/dvbci_resmgr.h create mode 100644 lib/dvb_ci/dvbci_session.cpp create mode 100644 lib/dvb_ci/dvbci_session.h create mode 100644 lib/dvb_ci/dvbci_ui.cpp create mode 100644 lib/dvb_ci/dvbci_ui.h create mode 100644 lib/gdi/Makefile.inc create mode 100644 lib/gdi/accel.cpp create mode 100644 lib/gdi/accel.h create mode 100644 lib/gdi/bcm.cpp create mode 100644 lib/gdi/compositing.cpp create mode 100644 lib/gdi/compositing.h create mode 100644 lib/gdi/epng.cpp create mode 100644 lib/gdi/epng.h create mode 100644 lib/gdi/epoint.h create mode 100644 lib/gdi/erect.cpp create mode 100644 lib/gdi/erect.h create mode 100644 lib/gdi/esize.h create mode 100644 lib/gdi/fb.cpp create mode 100644 lib/gdi/fb.h create mode 100644 lib/gdi/font.cpp create mode 100644 lib/gdi/font.h create mode 100644 lib/gdi/font_arabic.cpp create mode 100644 lib/gdi/gfbdc.cpp create mode 100644 lib/gdi/gfbdc.h create mode 100644 lib/gdi/gfont.cpp create mode 100644 lib/gdi/gfont.h create mode 100644 lib/gdi/glcddc.cpp create mode 100644 lib/gdi/glcddc.h create mode 100644 lib/gdi/gmaindc.cpp create mode 100644 lib/gdi/gmaindc.h create mode 100644 lib/gdi/gpixmap.cpp create mode 100644 lib/gdi/gpixmap.h create mode 100644 lib/gdi/grc.cpp create mode 100644 lib/gdi/grc.h create mode 100644 lib/gdi/lcd.cpp create mode 100644 lib/gdi/lcd.h create mode 100644 lib/gdi/picexif.cpp create mode 100644 lib/gdi/picexif.h create mode 100644 lib/gdi/picload.cpp create mode 100644 lib/gdi/picload.h create mode 100644 lib/gdi/region.cpp create mode 100644 lib/gdi/region.h create mode 100644 lib/gdi/sdl.cpp create mode 100644 lib/gdi/sdl.h create mode 100644 lib/gui/Makefile.inc create mode 100644 lib/gui/ebutton.cpp create mode 100644 lib/gui/ebutton.h create mode 100644 lib/gui/ecanvas.cpp create mode 100644 lib/gui/ecanvas.h create mode 100644 lib/gui/einput.cpp create mode 100644 lib/gui/einput.h create mode 100644 lib/gui/einputnumber.cpp create mode 100644 lib/gui/einputnumber.h create mode 100644 lib/gui/einputstring.cpp create mode 100644 lib/gui/einputstring.h create mode 100644 lib/gui/elabel.cpp create mode 100644 lib/gui/elabel.h create mode 100644 lib/gui/elistbox.cpp create mode 100644 lib/gui/elistbox.h create mode 100644 lib/gui/elistboxcontent.cpp create mode 100644 lib/gui/elistboxcontent.h create mode 100644 lib/gui/epixmap.cpp create mode 100644 lib/gui/epixmap.h create mode 100644 lib/gui/epositiongauge.cpp create mode 100644 lib/gui/epositiongauge.h create mode 100644 lib/gui/eslider.cpp create mode 100644 lib/gui/eslider.h create mode 100644 lib/gui/esubtitle.cpp create mode 100644 lib/gui/esubtitle.h create mode 100644 lib/gui/evideo.cpp create mode 100644 lib/gui/evideo.h create mode 100644 lib/gui/ewidget.cpp create mode 100644 lib/gui/ewidget.h create mode 100644 lib/gui/ewidgetanimation.cpp create mode 100644 lib/gui/ewidgetanimation.h create mode 100644 lib/gui/ewidgetdesktop.cpp create mode 100644 lib/gui/ewidgetdesktop.h create mode 100644 lib/gui/ewindow.cpp create mode 100644 lib/gui/ewindow.h create mode 100644 lib/gui/ewindowstyle.cpp create mode 100644 lib/gui/ewindowstyle.h create mode 100644 lib/gui/ewindowstyleskinned.cpp create mode 100644 lib/gui/ewindowstyleskinned.h create mode 100644 lib/mmi/Makefile.inc create mode 100644 lib/mmi/mmi_ui.cpp create mode 100644 lib/mmi/mmi_ui.h create mode 100644 lib/nav/Makefile.inc create mode 100644 lib/nav/core.cpp create mode 100644 lib/nav/core.h create mode 100644 lib/nav/pcore.cpp create mode 100644 lib/nav/pcore.h create mode 100644 lib/network/Makefile.inc create mode 100644 lib/network/serversocket.cpp create mode 100644 lib/network/serversocket.h create mode 100644 lib/network/socket.cpp create mode 100644 lib/network/socket.h create mode 100644 lib/network/xmlrpc.cpp create mode 100644 lib/network/xmlrpc.h create mode 100644 lib/python/Components/AVSwitch.py create mode 100644 lib/python/Components/About.py create mode 100644 lib/python/Components/ActionMap.py create mode 100644 lib/python/Components/BlinkingPixmap.py create mode 100644 lib/python/Components/Button.py create mode 100644 lib/python/Components/ChoiceList.py create mode 100644 lib/python/Components/Clock.py create mode 100644 lib/python/Components/ConditionalWidget.py create mode 100644 lib/python/Components/ConfigList.py create mode 100644 lib/python/Components/Console.py create mode 100644 lib/python/Components/Converter/ChannelNumbers.py create mode 100644 lib/python/Components/Converter/ClockToText.py create mode 100644 lib/python/Components/Converter/Combine.py create mode 100644 lib/python/Components/Converter/ConditionalShowHide.py create mode 100644 lib/python/Components/Converter/ConfigEntryTest.py create mode 100644 lib/python/Components/Converter/Converter.py create mode 100644 lib/python/Components/Converter/CryptoInfo.py create mode 100644 lib/python/Components/Converter/EventName.py create mode 100644 lib/python/Components/Converter/EventTime.py create mode 100644 lib/python/Components/Converter/FrontendInfo.py create mode 100644 lib/python/Components/Converter/Makefile.am create mode 100644 lib/python/Components/Converter/MenuEntryCompare.py create mode 100644 lib/python/Components/Converter/MovieInfo.py create mode 100644 lib/python/Components/Converter/PliExtraInfo.py create mode 100644 lib/python/Components/Converter/Poll.py create mode 100644 lib/python/Components/Converter/ProgressToText.py create mode 100644 lib/python/Components/Converter/RdsInfo.py create mode 100644 lib/python/Components/Converter/RemainingToText.py create mode 100644 lib/python/Components/Converter/SensorToText.py create mode 100644 lib/python/Components/Converter/ServiceInfo.py create mode 100644 lib/python/Components/Converter/ServiceName.py create mode 100644 lib/python/Components/Converter/ServiceOrbitalPosition.py create mode 100644 lib/python/Components/Converter/ServicePosition.py create mode 100644 lib/python/Components/Converter/ServiceTime.py create mode 100644 lib/python/Components/Converter/StaticMultiList.py create mode 100644 lib/python/Components/Converter/StaticText.py create mode 100644 lib/python/Components/Converter/Streaming.py create mode 100644 lib/python/Components/Converter/StringList.py create mode 100644 lib/python/Components/Converter/StringListSelection.py create mode 100644 lib/python/Components/Converter/TemplatedMultiContent.py create mode 100644 lib/python/Components/Converter/TextCase.py create mode 100644 lib/python/Components/Converter/TunerInfo.py create mode 100644 lib/python/Components/Converter/ValueBitTest.py create mode 100644 lib/python/Components/Converter/ValueRange.py create mode 100644 lib/python/Components/Converter/ValueToPixmap.py create mode 100644 lib/python/Components/Converter/__init__.py create mode 100644 lib/python/Components/Converter/genre.py create mode 100644 lib/python/Components/DiskInfo.py create mode 100644 lib/python/Components/Element.py create mode 100644 lib/python/Components/EpgList.py create mode 100644 lib/python/Components/FIFOList.py create mode 100644 lib/python/Components/FanControl.py create mode 100644 lib/python/Components/FileList.py create mode 100644 lib/python/Components/GUIComponent.py create mode 100644 lib/python/Components/GUISkin.py create mode 100644 lib/python/Components/HTMLComponent.py create mode 100644 lib/python/Components/HTMLSkin.py create mode 100644 lib/python/Components/Harddisk.py create mode 100644 lib/python/Components/HdmiCec.py create mode 100644 lib/python/Components/HelpMenuList.py create mode 100644 lib/python/Components/Input.py create mode 100644 lib/python/Components/InputDevice.py create mode 100644 lib/python/Components/InputHotplug.py create mode 100644 lib/python/Components/Ipkg.py create mode 100644 lib/python/Components/Keyboard.py create mode 100644 lib/python/Components/Label.py create mode 100644 lib/python/Components/Language.py create mode 100644 lib/python/Components/Lcd.py create mode 100644 lib/python/Components/Makefile.am create mode 100644 lib/python/Components/MediaPlayer.py create mode 100644 lib/python/Components/MenuList.py create mode 100644 lib/python/Components/MovieList.py create mode 100644 lib/python/Components/MultiContent.py create mode 100644 lib/python/Components/Netlink.py create mode 100644 lib/python/Components/Network.py create mode 100644 lib/python/Components/NimManager.py create mode 100644 lib/python/Components/PackageInfo.py create mode 100644 lib/python/Components/ParentalControl.py create mode 100644 lib/python/Components/ParentalControlList.py create mode 100644 lib/python/Components/PerServiceDisplay.py create mode 100644 lib/python/Components/Pixmap.py create mode 100644 lib/python/Components/Playlist.py create mode 100644 lib/python/Components/PluginComponent.py create mode 100644 lib/python/Components/PluginList.py create mode 100644 lib/python/Components/ProgressBar.py create mode 100644 lib/python/Components/RFmod.py create mode 100644 lib/python/Components/RcModel.py create mode 100644 lib/python/Components/RecordingConfig.py create mode 100644 lib/python/Components/Renderer/Canvas.py create mode 100644 lib/python/Components/Renderer/ChannelNumber.py create mode 100644 lib/python/Components/Renderer/FixedLabel.py create mode 100644 lib/python/Components/Renderer/FrontpanelLed.py create mode 100644 lib/python/Components/Renderer/Label.py create mode 100644 lib/python/Components/Renderer/Listbox.py create mode 100644 lib/python/Components/Renderer/Makefile.am create mode 100644 lib/python/Components/Renderer/NextEpgInfo.py create mode 100644 lib/python/Components/Renderer/Picon.py create mode 100644 lib/python/Components/Renderer/Pig.py create mode 100644 lib/python/Components/Renderer/Pixmap.py create mode 100644 lib/python/Components/Renderer/PositionGauge.py create mode 100644 lib/python/Components/Renderer/Progress.py create mode 100644 lib/python/Components/Renderer/Renderer.py create mode 100644 lib/python/Components/Renderer/VideoSize.py create mode 100644 lib/python/Components/Renderer/__init__.py create mode 100644 lib/python/Components/ResourceManager.py create mode 100644 lib/python/Components/Scanner.py create mode 100644 lib/python/Components/ScrollLabel.py create mode 100644 lib/python/Components/SelectionList.py create mode 100644 lib/python/Components/Sensors.py create mode 100644 lib/python/Components/ServiceEventTracker.py create mode 100644 lib/python/Components/ServiceList.py create mode 100644 lib/python/Components/ServicePosition.py create mode 100644 lib/python/Components/ServiceScan.py create mode 100644 lib/python/Components/SetupDevices.py create mode 100644 lib/python/Components/Slider.py create mode 100644 lib/python/Components/Sources/Boolean.py create mode 100644 lib/python/Components/Sources/CanvasSource.py create mode 100644 lib/python/Components/Sources/Clock.py create mode 100644 lib/python/Components/Sources/Config.py create mode 100644 lib/python/Components/Sources/CurrentService.py create mode 100644 lib/python/Components/Sources/Event.py create mode 100644 lib/python/Components/Sources/EventInfo.py create mode 100644 lib/python/Components/Sources/FrontendInfo.py create mode 100644 lib/python/Components/Sources/FrontendStatus.py create mode 100644 lib/python/Components/Sources/List.py create mode 100644 lib/python/Components/Sources/Makefile.am create mode 100644 lib/python/Components/Sources/Progress.py create mode 100644 lib/python/Components/Sources/RdsDecoder.py create mode 100644 lib/python/Components/Sources/RecordState.py create mode 100644 lib/python/Components/Sources/Sensor.py create mode 100644 lib/python/Components/Sources/ServiceEvent.py create mode 100644 lib/python/Components/Sources/ServiceList.py create mode 100644 lib/python/Components/Sources/Source.py create mode 100644 lib/python/Components/Sources/StaticText.py create mode 100644 lib/python/Components/Sources/StreamService.py create mode 100644 lib/python/Components/Sources/TunerInfo.py create mode 100644 lib/python/Components/Sources/__init__.py create mode 100644 lib/python/Components/SystemInfo.py create mode 100644 lib/python/Components/Task.py create mode 100644 lib/python/Components/TimerList.py create mode 100644 lib/python/Components/TimerSanityCheck.py create mode 100644 lib/python/Components/Timezones.py create mode 100644 lib/python/Components/TuneTest.py create mode 100644 lib/python/Components/TunerInfo.py create mode 100644 lib/python/Components/UsageConfig.py create mode 100644 lib/python/Components/VariableText.py create mode 100644 lib/python/Components/VariableValue.py create mode 100644 lib/python/Components/VideoWindow.py create mode 100644 lib/python/Components/VolumeBar.py create mode 100644 lib/python/Components/VolumeControl.py create mode 100644 lib/python/Components/__init__.py create mode 100644 lib/python/Components/components.py create mode 100644 lib/python/Components/config.py create mode 100644 lib/python/Components/opkg.py create mode 100644 lib/python/Makefile.am create mode 100644 lib/python/Makefile.inc create mode 100644 lib/python/Plugins/Extensions/CutListEditor/Makefile.am create mode 100644 lib/python/Plugins/Extensions/CutListEditor/__init__.py create mode 100644 lib/python/Plugins/Extensions/CutListEditor/keymap.xml create mode 100644 lib/python/Plugins/Extensions/CutListEditor/meta/Makefile.am create mode 100644 lib/python/Plugins/Extensions/CutListEditor/meta/cutlisteditor.jpg create mode 100644 lib/python/Plugins/Extensions/CutListEditor/meta/plugin_cutlisteditor.xml create mode 100644 lib/python/Plugins/Extensions/CutListEditor/plugin.py create mode 100644 lib/python/Plugins/Extensions/CutListEditor/ui.py create mode 100644 lib/python/Plugins/Extensions/DVDBurn/DVDProject.py create mode 100644 lib/python/Plugins/Extensions/DVDBurn/DVDTitle.py create mode 100644 lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py create mode 100644 lib/python/Plugins/Extensions/DVDBurn/DreamboxDVD.ddvdp.xml create mode 100644 lib/python/Plugins/Extensions/DVDBurn/Makefile.am create mode 100644 lib/python/Plugins/Extensions/DVDBurn/Process.py create mode 100644 lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py create mode 100644 lib/python/Plugins/Extensions/DVDBurn/Text_menu_boat.ddvdm.xml create mode 100644 lib/python/Plugins/Extensions/DVDBurn/Thumbs_menu_clouds.ddvdm.xml create mode 100644 lib/python/Plugins/Extensions/DVDBurn/TitleCutter.py create mode 100644 lib/python/Plugins/Extensions/DVDBurn/TitleList.py create mode 100644 lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py create mode 100644 lib/python/Plugins/Extensions/DVDBurn/__init__.py create mode 100644 lib/python/Plugins/Extensions/DVDBurn/dreamdvd_boat.jpg create mode 100644 lib/python/Plugins/Extensions/DVDBurn/dreamdvd_clouds.jpg create mode 100644 lib/python/Plugins/Extensions/DVDBurn/dvdburn.png create mode 100644 lib/python/Plugins/Extensions/DVDBurn/keymap.xml create mode 100644 lib/python/Plugins/Extensions/DVDBurn/meta/Makefile.am create mode 100644 lib/python/Plugins/Extensions/DVDBurn/meta/dvdburn_de.jpg create mode 100644 lib/python/Plugins/Extensions/DVDBurn/meta/dvdburn_en.jpg create mode 100644 lib/python/Plugins/Extensions/DVDBurn/meta/plugin_dvdburn.xml create mode 100644 lib/python/Plugins/Extensions/DVDBurn/plugin.py create mode 100644 lib/python/Plugins/Extensions/DVDBurn/silence.mp2 create mode 100644 lib/python/Plugins/Extensions/DVDBurn/vmgmblank.mpg create mode 100644 lib/python/Plugins/Extensions/DVDBurn/vmgmdream.mpg create mode 100644 lib/python/Plugins/Extensions/DVDPlayer/Makefile.am create mode 100644 lib/python/Plugins/Extensions/DVDPlayer/__init__.py create mode 100644 lib/python/Plugins/Extensions/DVDPlayer/meta/Makefile.am create mode 100644 lib/python/Plugins/Extensions/DVDPlayer/meta/dvdplayer.jpg create mode 100644 lib/python/Plugins/Extensions/DVDPlayer/meta/plugin_dvdplayer.xml create mode 100644 lib/python/Plugins/Extensions/DVDPlayer/plugin.py create mode 100644 lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpg.py create mode 100644 lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpgSetup.py create mode 100644 lib/python/Plugins/Extensions/GraphMultiEPG/Makefile.am create mode 100644 lib/python/Plugins/Extensions/GraphMultiEPG/__init__.py create mode 100644 lib/python/Plugins/Extensions/GraphMultiEPG/meta/Makefile.am create mode 100644 lib/python/Plugins/Extensions/GraphMultiEPG/meta/graphmultiepg_de.jpg create mode 100644 lib/python/Plugins/Extensions/GraphMultiEPG/meta/graphmultiepg_en.jpg create mode 100644 lib/python/Plugins/Extensions/GraphMultiEPG/meta/plugin_graphmultiepg.xml create mode 100644 lib/python/Plugins/Extensions/GraphMultiEPG/plugin.py create mode 100644 lib/python/Plugins/Extensions/Makefile.am create mode 100644 lib/python/Plugins/Extensions/MediaPlayer/Makefile.am create mode 100644 lib/python/Plugins/Extensions/MediaPlayer/__init__.py create mode 100644 lib/python/Plugins/Extensions/MediaPlayer/meta/Makefile.am create mode 100644 lib/python/Plugins/Extensions/MediaPlayer/meta/mediaplayer_de.jpg create mode 100644 lib/python/Plugins/Extensions/MediaPlayer/meta/mediaplayer_en.jpg create mode 100644 lib/python/Plugins/Extensions/MediaPlayer/meta/plugin_mediaplayer.xml create mode 100644 lib/python/Plugins/Extensions/MediaPlayer/plugin.py create mode 100644 lib/python/Plugins/Extensions/MediaPlayer/settings.py create mode 100644 lib/python/Plugins/Extensions/MediaScanner/Makefile.am create mode 100644 lib/python/Plugins/Extensions/MediaScanner/__init__.py create mode 100644 lib/python/Plugins/Extensions/MediaScanner/meta/Makefile.am create mode 100644 lib/python/Plugins/Extensions/MediaScanner/meta/mediascanner_de.jpg create mode 100644 lib/python/Plugins/Extensions/MediaScanner/meta/mediascanner_en.jpg create mode 100644 lib/python/Plugins/Extensions/MediaScanner/meta/plugin_mediascanner.xml create mode 100644 lib/python/Plugins/Extensions/MediaScanner/plugin.py create mode 100644 lib/python/Plugins/Extensions/Modem/Makefile.am create mode 100644 lib/python/Plugins/Extensions/Modem/__init__.py create mode 100644 lib/python/Plugins/Extensions/Modem/keymap.xml create mode 100644 lib/python/Plugins/Extensions/Modem/plugin.py create mode 100644 lib/python/Plugins/Extensions/PicturePlayer/Makefile.am create mode 100644 lib/python/Plugins/Extensions/PicturePlayer/__init__.py create mode 100644 lib/python/Plugins/Extensions/PicturePlayer/data/Makefile.am create mode 100644 lib/python/Plugins/Extensions/PicturePlayer/data/pic_frame.png create mode 100644 lib/python/Plugins/Extensions/PicturePlayer/meta/Makefile.am create mode 100644 lib/python/Plugins/Extensions/PicturePlayer/meta/pictureplayer.jpg create mode 100644 lib/python/Plugins/Extensions/PicturePlayer/meta/plugin_pictureplayer.xml create mode 100644 lib/python/Plugins/Extensions/PicturePlayer/pictureplayer.png create mode 100644 lib/python/Plugins/Extensions/PicturePlayer/plugin.py create mode 100644 lib/python/Plugins/Extensions/PicturePlayer/ui.py create mode 100644 lib/python/Plugins/Extensions/SocketMMI/Makefile.am create mode 100644 lib/python/Plugins/Extensions/SocketMMI/SocketMMI.py create mode 100644 lib/python/Plugins/Extensions/SocketMMI/__init__.py create mode 100644 lib/python/Plugins/Extensions/SocketMMI/meta/Makefile.am create mode 100644 lib/python/Plugins/Extensions/SocketMMI/meta/plugin_socketmmi.xml create mode 100644 lib/python/Plugins/Extensions/SocketMMI/plugin.py create mode 100644 lib/python/Plugins/Extensions/SocketMMI/src/Makefile.am create mode 100644 lib/python/Plugins/Extensions/SocketMMI/src/socket_mmi.cpp create mode 100644 lib/python/Plugins/Extensions/SocketMMI/src/socket_mmi.h create mode 100644 lib/python/Plugins/Extensions/TuxboxPlugins/Makefile.am create mode 100644 lib/python/Plugins/Extensions/TuxboxPlugins/__init__.py create mode 100644 lib/python/Plugins/Extensions/TuxboxPlugins/meta/Makefile.am create mode 100644 lib/python/Plugins/Extensions/TuxboxPlugins/meta/plugin_tuxboxplugins.xml create mode 100644 lib/python/Plugins/Extensions/TuxboxPlugins/plugin.py create mode 100644 lib/python/Plugins/Extensions/TuxboxPlugins/pluginrunner.py create mode 100644 lib/python/Plugins/Extensions/TuxboxPlugins/tuxbox.png create mode 100644 lib/python/Plugins/Extensions/__init__.py create mode 100644 lib/python/Plugins/Makefile.am create mode 100644 lib/python/Plugins/PLi/Makefile.am create mode 100644 lib/python/Plugins/PLi/__init__.py create mode 100644 lib/python/Plugins/Plugin.py create mode 100644 lib/python/Plugins/SystemPlugins/CableScan/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/CableScan/__init__.py create mode 100644 lib/python/Plugins/SystemPlugins/CableScan/plugin.py create mode 100644 lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/__init__.py create mode 100644 lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/meta/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/meta/ciassignment.jpg create mode 100644 lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/meta/plugin_commoninterfaceassignment.xml create mode 100644 lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py create mode 100644 lib/python/Plugins/SystemPlugins/DefaultServicesScanner/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/DefaultServicesScanner/__init__.py create mode 100644 lib/python/Plugins/SystemPlugins/DefaultServicesScanner/meta/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/DefaultServicesScanner/meta/defaultservicescanner.jpg create mode 100644 lib/python/Plugins/SystemPlugins/DefaultServicesScanner/meta/plugin_defaultservicesscanner.xml create mode 100644 lib/python/Plugins/SystemPlugins/DefaultServicesScanner/plugin.py create mode 100644 lib/python/Plugins/SystemPlugins/DiseqcTester/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/DiseqcTester/__init__.py create mode 100644 lib/python/Plugins/SystemPlugins/DiseqcTester/meta/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/DiseqcTester/meta/diseqctester_de.jpg create mode 100644 lib/python/Plugins/SystemPlugins/DiseqcTester/meta/diseqctester_en.jpg create mode 100644 lib/python/Plugins/SystemPlugins/DiseqcTester/meta/plugin_diseqctester.xml create mode 100644 lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py create mode 100644 lib/python/Plugins/SystemPlugins/FastScan/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/FastScan/__init__.py create mode 100644 lib/python/Plugins/SystemPlugins/FastScan/plugin.py create mode 100644 lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/__init__.py create mode 100644 lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/meta/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/meta/plugin_frontprocessorupgrade.xml create mode 100644 lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/plugin.py create mode 100644 lib/python/Plugins/SystemPlugins/HdmiCEC/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/HdmiCEC/__init__.py create mode 100644 lib/python/Plugins/SystemPlugins/HdmiCEC/plugin.py create mode 100644 lib/python/Plugins/SystemPlugins/Hotplug/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/Hotplug/__init__.py create mode 100644 lib/python/Plugins/SystemPlugins/Hotplug/meta/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/Hotplug/meta/plugin_hotplug.xml create mode 100644 lib/python/Plugins/SystemPlugins/Hotplug/plugin.py create mode 100644 lib/python/Plugins/SystemPlugins/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/NFIFlash/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/NFIFlash/__init__.py create mode 100644 lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py create mode 100644 lib/python/Plugins/SystemPlugins/NFIFlash/flash.png create mode 100644 lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py create mode 100644 lib/python/Plugins/SystemPlugins/NFIFlash/meta/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/NFIFlash/meta/nfiflash_de.jpg create mode 100644 lib/python/Plugins/SystemPlugins/NFIFlash/meta/nfiflash_en.jpg create mode 100644 lib/python/Plugins/SystemPlugins/NFIFlash/meta/plugin_nfiflash.xml create mode 100644 lib/python/Plugins/SystemPlugins/NFIFlash/plugin.py create mode 100644 lib/python/Plugins/SystemPlugins/NetworkWizard/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py create mode 100644 lib/python/Plugins/SystemPlugins/NetworkWizard/__init__.py create mode 100644 lib/python/Plugins/SystemPlugins/NetworkWizard/meta/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/NetworkWizard/meta/networkwizard_de.jpg create mode 100644 lib/python/Plugins/SystemPlugins/NetworkWizard/meta/networkwizard_en.jpg create mode 100644 lib/python/Plugins/SystemPlugins/NetworkWizard/meta/plugin_networkwizard.xml create mode 100644 lib/python/Plugins/SystemPlugins/NetworkWizard/networkwizard.xml create mode 100644 lib/python/Plugins/SystemPlugins/NetworkWizard/plugin.py create mode 100644 lib/python/Plugins/SystemPlugins/OSD3DSetup/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/OSD3DSetup/__init__.py create mode 100644 lib/python/Plugins/SystemPlugins/OSD3DSetup/plugin.py create mode 100644 lib/python/Plugins/SystemPlugins/OSDPositionSetup/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/OSDPositionSetup/__init__.py create mode 100644 lib/python/Plugins/SystemPlugins/OSDPositionSetup/plugin.py create mode 100644 lib/python/Plugins/SystemPlugins/PositionerSetup/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/PositionerSetup/PositionerSetup.pdf create mode 100644 lib/python/Plugins/SystemPlugins/PositionerSetup/__init__.py create mode 100644 lib/python/Plugins/SystemPlugins/PositionerSetup/log.py create mode 100644 lib/python/Plugins/SystemPlugins/PositionerSetup/meta/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/PositionerSetup/meta/plugin_positionersetup.xml create mode 100644 lib/python/Plugins/SystemPlugins/PositionerSetup/meta/positionersetup.jpg create mode 100644 lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py create mode 100644 lib/python/Plugins/SystemPlugins/PositionerSetup/rotor_calc.py create mode 100644 lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/__init__.py create mode 100644 lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/meta/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/meta/plugin_satelliteequipmentcontrol.xml create mode 100644 lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/meta/satcontrol.jpg create mode 100644 lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/plugin.py create mode 100644 lib/python/Plugins/SystemPlugins/Satfinder/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/Satfinder/__init__.py create mode 100644 lib/python/Plugins/SystemPlugins/Satfinder/meta/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/Satfinder/meta/plugin_satfinder.xml create mode 100644 lib/python/Plugins/SystemPlugins/Satfinder/meta/satfinder.jpg create mode 100644 lib/python/Plugins/SystemPlugins/Satfinder/plugin.py create mode 100644 lib/python/Plugins/SystemPlugins/SkinSelector/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/SkinSelector/__init__.py create mode 100644 lib/python/Plugins/SystemPlugins/SkinSelector/meta/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/SkinSelector/meta/plugin_skinselector.xml create mode 100644 lib/python/Plugins/SystemPlugins/SkinSelector/meta/skinselector_de.jpg create mode 100644 lib/python/Plugins/SystemPlugins/SkinSelector/meta/skinselector_en.jpg create mode 100644 lib/python/Plugins/SystemPlugins/SkinSelector/noprev.png create mode 100644 lib/python/Plugins/SystemPlugins/SkinSelector/plugin.py create mode 100644 lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py create mode 100644 lib/python/Plugins/SystemPlugins/SoftwareManager/ImageWizard.py create mode 100644 lib/python/Plugins/SystemPlugins/SoftwareManager/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/SoftwareManager/SoftwareTools.py create mode 100644 lib/python/Plugins/SystemPlugins/SoftwareManager/__init__.py create mode 100644 lib/python/Plugins/SystemPlugins/SoftwareManager/imagewizard.xml create mode 100644 lib/python/Plugins/SystemPlugins/SoftwareManager/install.png create mode 100644 lib/python/Plugins/SystemPlugins/SoftwareManager/installable.png create mode 100644 lib/python/Plugins/SystemPlugins/SoftwareManager/installed.png create mode 100644 lib/python/Plugins/SystemPlugins/SoftwareManager/meta/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/SoftwareManager/meta/plugin_softwaremanager.xml create mode 100644 lib/python/Plugins/SystemPlugins/SoftwareManager/meta/softwaremanager_de.jpg create mode 100644 lib/python/Plugins/SystemPlugins/SoftwareManager/meta/softwaremanager_en.jpg create mode 100644 lib/python/Plugins/SystemPlugins/SoftwareManager/noprev.png create mode 100644 lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py create mode 100644 lib/python/Plugins/SystemPlugins/SoftwareManager/remove.png create mode 100644 lib/python/Plugins/SystemPlugins/SoftwareManager/update.png create mode 100644 lib/python/Plugins/SystemPlugins/SoftwareManager/upgrade.png create mode 100644 lib/python/Plugins/SystemPlugins/SoftwareManager/upgradeable.png create mode 100644 lib/python/Plugins/SystemPlugins/TempFanControl/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/TempFanControl/__init__.py create mode 100644 lib/python/Plugins/SystemPlugins/TempFanControl/meta/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/TempFanControl/meta/plugin_tempfancontrol.xml create mode 100644 lib/python/Plugins/SystemPlugins/TempFanControl/plugin.py create mode 100644 lib/python/Plugins/SystemPlugins/VideoClippingSetup/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/VideoClippingSetup/__init__.py create mode 100644 lib/python/Plugins/SystemPlugins/VideoClippingSetup/plugin.py create mode 100644 lib/python/Plugins/SystemPlugins/VideoEnhancement/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/VideoEnhancement/VideoEnhancement.py create mode 100644 lib/python/Plugins/SystemPlugins/VideoEnhancement/__init__.py create mode 100644 lib/python/Plugins/SystemPlugins/VideoEnhancement/meta/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/VideoEnhancement/meta/plugin_videoenhancement.xml create mode 100644 lib/python/Plugins/SystemPlugins/VideoEnhancement/meta/videoenhancement_de.jpg create mode 100644 lib/python/Plugins/SystemPlugins/VideoEnhancement/meta/videoenhancement_en.jpg create mode 100644 lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py create mode 100644 lib/python/Plugins/SystemPlugins/VideoTune/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/VideoTune/VideoFinetune.py create mode 100644 lib/python/Plugins/SystemPlugins/VideoTune/__init__.py create mode 100644 lib/python/Plugins/SystemPlugins/VideoTune/meta/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/VideoTune/meta/plugin_videotune.xml create mode 100644 lib/python/Plugins/SystemPlugins/VideoTune/meta/videotune.jpg create mode 100644 lib/python/Plugins/SystemPlugins/VideoTune/plugin.py create mode 100644 lib/python/Plugins/SystemPlugins/Videomode/11DVI.png create mode 100644 lib/python/Plugins/SystemPlugins/Videomode/DVI.png create mode 100644 lib/python/Plugins/SystemPlugins/Videomode/HDMI.png create mode 100644 lib/python/Plugins/SystemPlugins/Videomode/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/Videomode/Scart.png create mode 100644 lib/python/Plugins/SystemPlugins/Videomode/VideoHardware.py create mode 100644 lib/python/Plugins/SystemPlugins/Videomode/VideoWizard.py create mode 100644 lib/python/Plugins/SystemPlugins/Videomode/YPbPr.png create mode 100644 lib/python/Plugins/SystemPlugins/Videomode/__init__.py create mode 100644 lib/python/Plugins/SystemPlugins/Videomode/lcd_DVI.png create mode 100644 lib/python/Plugins/SystemPlugins/Videomode/lcd_HDMI.png create mode 100644 lib/python/Plugins/SystemPlugins/Videomode/lcd_Scart.png create mode 100644 lib/python/Plugins/SystemPlugins/Videomode/lcd_YPbPr.png create mode 100644 lib/python/Plugins/SystemPlugins/Videomode/meta/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/Videomode/meta/plugin_videomode.xml create mode 100644 lib/python/Plugins/SystemPlugins/Videomode/meta/videomode_de.jpg create mode 100644 lib/python/Plugins/SystemPlugins/Videomode/meta/videomode_en.jpg create mode 100644 lib/python/Plugins/SystemPlugins/Videomode/plugin.py create mode 100644 lib/python/Plugins/SystemPlugins/Videomode/videowizard.xml create mode 100644 lib/python/Plugins/SystemPlugins/WirelessLan/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py create mode 100644 lib/python/Plugins/SystemPlugins/WirelessLan/__init__.py create mode 100644 lib/python/Plugins/SystemPlugins/WirelessLan/meta/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/WirelessLan/meta/plugin_wirelesslan.xml create mode 100644 lib/python/Plugins/SystemPlugins/WirelessLan/meta/wirelesslan_de.jpg create mode 100644 lib/python/Plugins/SystemPlugins/WirelessLan/meta/wirelesslan_en.jpg create mode 100644 lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py create mode 100644 lib/python/Plugins/SystemPlugins/__init__.py create mode 100644 lib/python/Plugins/__init__.py create mode 100644 lib/python/Plugins/newplugin.py create mode 100644 lib/python/Screens/About.py create mode 100644 lib/python/Screens/AudioSelection.py create mode 100644 lib/python/Screens/AutoDiseqc.py create mode 100644 lib/python/Screens/ChannelSelection.py create mode 100644 lib/python/Screens/ChoiceBox.py create mode 100644 lib/python/Screens/Ci.py create mode 100644 lib/python/Screens/ClockDisplay.py create mode 100644 lib/python/Screens/ConfigMenu.py create mode 100644 lib/python/Screens/Console.py create mode 100644 lib/python/Screens/CopyFiles.py create mode 100644 lib/python/Screens/DVD.py create mode 100644 lib/python/Screens/Dish.py create mode 100644 lib/python/Screens/EpgSelection.py create mode 100644 lib/python/Screens/EventView.py create mode 100644 lib/python/Screens/FactoryReset.py create mode 100644 lib/python/Screens/FixedMenu.py create mode 100644 lib/python/Screens/Globals.py create mode 100644 lib/python/Screens/HarddiskSetup.py create mode 100644 lib/python/Screens/HelpMenu.py create mode 100644 lib/python/Screens/InfoBar.py create mode 100644 lib/python/Screens/InfoBarGenerics.py create mode 100644 lib/python/Screens/InputBox.py create mode 100644 lib/python/Screens/InputDeviceSetup.py create mode 100644 lib/python/Screens/InstallWizard.py create mode 100644 lib/python/Screens/Ipkg.py create mode 100644 lib/python/Screens/LanguageSelection.py create mode 100644 lib/python/Screens/LocationBox.py create mode 100644 lib/python/Screens/Makefile.am create mode 100644 lib/python/Screens/Menu.py create mode 100644 lib/python/Screens/MessageBox.py create mode 100644 lib/python/Screens/MinuteInput.py create mode 100644 lib/python/Screens/MovieSelection.py create mode 100644 lib/python/Screens/Mute.py create mode 100644 lib/python/Screens/NetworkSetup.py create mode 100644 lib/python/Screens/NumericalTextInputHelpDialog.py create mode 100644 lib/python/Screens/PVRState.py create mode 100644 lib/python/Screens/ParentalControlSetup.py create mode 100644 lib/python/Screens/PiPSetup.py create mode 100644 lib/python/Screens/PictureInPicture.py create mode 100644 lib/python/Screens/PluginBrowser.py create mode 100644 lib/python/Screens/Rc.py create mode 100644 lib/python/Screens/RdsDisplay.py create mode 100644 lib/python/Screens/RecordPaths.py create mode 100644 lib/python/Screens/Satconfig.py create mode 100644 lib/python/Screens/ScanSetup.py create mode 100644 lib/python/Screens/Scart.py create mode 100644 lib/python/Screens/Screen.py create mode 100644 lib/python/Screens/ScreenSaver.py create mode 100644 lib/python/Screens/ServiceInfo.py create mode 100644 lib/python/Screens/ServiceScan.py create mode 100644 lib/python/Screens/ServiceStopScreen.py create mode 100644 lib/python/Screens/SessionGlobals.py create mode 100644 lib/python/Screens/Setup.py create mode 100644 lib/python/Screens/SimpleSummary.py create mode 100644 lib/python/Screens/SleepTimerEdit.py create mode 100644 lib/python/Screens/SoftwareUpdate.py create mode 100644 lib/python/Screens/Standby.py create mode 100644 lib/python/Screens/StartWizard.py create mode 100644 lib/python/Screens/SubservicesQuickzap.py create mode 100644 lib/python/Screens/SubtitleDisplay.py create mode 100644 lib/python/Screens/TaskView.py create mode 100644 lib/python/Screens/TextBox.py create mode 100644 lib/python/Screens/TimeDateInput.py create mode 100644 lib/python/Screens/TimerEdit.py create mode 100644 lib/python/Screens/TimerEntry.py create mode 100644 lib/python/Screens/TimerSelection.py create mode 100644 lib/python/Screens/UnhandledKey.py create mode 100644 lib/python/Screens/VirtualKeyBoard.py create mode 100644 lib/python/Screens/Volume.py create mode 100644 lib/python/Screens/Wizard.py create mode 100644 lib/python/Screens/WizardLanguage.py create mode 100644 lib/python/Screens/__init__.py create mode 100644 lib/python/Tools/ASCIItranslit.py create mode 100644 lib/python/Tools/Alternatives.py create mode 100644 lib/python/Tools/BoundFunction.py create mode 100644 lib/python/Tools/CList.py create mode 100644 lib/python/Tools/Directories.py create mode 100644 lib/python/Tools/Downloader.py create mode 100644 lib/python/Tools/Event.py create mode 100644 lib/python/Tools/FuzzyDate.py create mode 100644 lib/python/Tools/GetEcmInfo.py create mode 100644 lib/python/Tools/HardwareInfo.py create mode 100644 lib/python/Tools/ISO639.py create mode 100644 lib/python/Tools/Import.py create mode 100644 lib/python/Tools/KeyBindings.py create mode 100644 lib/python/Tools/LXMLTools.py create mode 100644 lib/python/Tools/LoadPixmap.py create mode 100644 lib/python/Tools/Makefile.am create mode 100644 lib/python/Tools/Notifications.py create mode 100644 lib/python/Tools/NumericalTextInput.py create mode 100644 lib/python/Tools/Profile.py create mode 100644 lib/python/Tools/RedirectOutput.py create mode 100644 lib/python/Tools/StbHardware.py create mode 100644 lib/python/Tools/Transponder.py create mode 100644 lib/python/Tools/Trashcan.py create mode 100644 lib/python/Tools/XMLTools.py create mode 100644 lib/python/Tools/__init__.py create mode 100644 lib/python/connections.cpp create mode 100644 lib/python/connections.h create mode 100644 lib/python/enigma_py_patcher.py create mode 100644 lib/python/enigma_python.i create mode 100644 lib/python/python.cpp create mode 100644 lib/python/python.h create mode 100644 lib/python/python_base.i create mode 100644 lib/python/python_console.i create mode 100644 lib/python/python_dvb.i create mode 100644 lib/python/python_helpers.cpp create mode 100644 lib/python/python_helpers.h create mode 100644 lib/python/python_pcore.i create mode 100644 lib/python/python_pmt.i create mode 100644 lib/python/python_service.i create mode 100644 lib/python/pythonconfig.cpp create mode 100644 lib/python/pythonconfig.h create mode 100644 lib/python/swig.h create mode 100644 lib/service/Makefile.inc create mode 100644 lib/service/event.cpp create mode 100644 lib/service/event.h create mode 100644 lib/service/iservice.h create mode 100644 lib/service/listboxservice.cpp create mode 100644 lib/service/listboxservice.h create mode 100644 lib/service/service.cpp create mode 100644 lib/service/service.h create mode 100644 lib/service/servicedvb.cpp create mode 100644 lib/service/servicedvb.h create mode 100644 lib/service/servicedvbrecord.cpp create mode 100644 lib/service/servicedvbrecord.h create mode 100644 lib/service/servicedvbstream.cpp create mode 100644 lib/service/servicedvbstream.h create mode 100644 lib/service/servicedvd.cpp create mode 100644 lib/service/servicedvd.h create mode 100644 lib/service/servicefs.cpp create mode 100644 lib/service/servicefs.h create mode 100644 lib/service/servicehdmi.cpp create mode 100644 lib/service/servicehdmi.h create mode 100644 lib/service/servicem2ts.cpp create mode 100644 lib/service/servicem2ts.h create mode 100644 lib/service/servicemp3.cpp create mode 100644 lib/service/servicemp3.h create mode 100644 lib/service/servicexine.cpp create mode 100644 lib/service/servicexine.h create mode 100644 m4/ax_pkg_swig.m4 create mode 100644 m4/ax_pthread.m4 create mode 100644 m4/ax_python_devel.m4 create mode 100644 m4/ax_swig_enable_cxx.m4 create mode 100644 m4/ax_swig_python.m4 create mode 100644 m4/tuxbox.m4 create mode 100644 main/Makefile.am create mode 100644 main/bsod.cpp create mode 100644 main/bsod.h create mode 100644 main/enigma-dvbtest.cpp create mode 100644 main/enigma-gdi.cpp create mode 100644 main/enigma-gui.cpp create mode 100644 main/enigma-playlist.cpp create mode 100644 main/enigma-scan.cpp create mode 100644 main/enigma.cpp create mode 100644 main/version_info.cpp create mode 100644 main/version_info.h create mode 100644 main/xmlgenerator.cpp create mode 100644 main/xmlgenerator.h create mode 100644 mytest.py create mode 100644 po/Makefile.am create mode 100644 po/ar.po create mode 100644 po/bg.po create mode 100644 po/ca.po create mode 100644 po/cs.po create mode 100644 po/da.po create mode 100644 po/de.po create mode 100644 po/el.po create mode 100644 po/en.po create mode 100644 po/es.po create mode 100644 po/et.po create mode 100644 po/fa.po create mode 100644 po/fi.po create mode 100644 po/fr.po create mode 100644 po/fy.po create mode 100644 po/he.po create mode 100644 po/hr.po create mode 100644 po/hu.po create mode 100644 po/is.po create mode 100644 po/it.po create mode 100644 po/ku.po create mode 100644 po/lt.po create mode 100644 po/lv.po create mode 100644 po/nl.po create mode 100644 po/no.po create mode 100644 po/pl.po create mode 100644 po/pt.po create mode 100644 po/pt_BR.po create mode 100644 po/ro.po create mode 100644 po/ru.po create mode 100644 po/sk.po create mode 100644 po/sl.po create mode 100644 po/sr.po create mode 100644 po/sv.po create mode 100644 po/th.po create mode 100644 po/tr.po create mode 100644 po/uk.po create mode 100644 po/xml2po.py create mode 100644 skin.py create mode 100644 stamp-h.in create mode 100644 tests/FakeNotifications.py create mode 100644 tests/README create mode 100644 tests/enigma.py create mode 100644 tests/events.py create mode 100644 tests/fake_time.py create mode 100644 tests/hdd/movie/dummy create mode 100644 tests/test_timer.py create mode 100644 tests/test_timer_repeating.results create mode 100644 tests/test_timer_repeating_dst_skip.results create mode 100644 tests/test_timer_repeating_dst_start.results create mode 100644 tests/tests.py create mode 100644 timer.py create mode 100644 timers.xml create mode 100644 tools/Makefile.am create mode 100644 tools/convert_argb_png.c create mode 100644 tools/create_picon_e1_to_e2.py create mode 100644 tools/create_picon_links.py create mode 100644 tools/create_picon_providers.py create mode 100644 tools/create_picon_sats.py create mode 100644 tools/enigma2.sh.in create mode 100644 tools/genmetaindex.py create mode 100644 tools/host_tools/FormatConverter/README create mode 100644 tools/host_tools/FormatConverter/datasource.py create mode 100644 tools/host_tools/FormatConverter/input.py create mode 100644 tools/host_tools/FormatConverter/lamedb.py create mode 100644 tools/host_tools/FormatConverter/lamedb2satxml.py create mode 100644 tools/host_tools/FormatConverter/main.py create mode 100644 tools/host_tools/FormatConverter/satxml.py create mode 100644 tools/libopen.c create mode 100644 tools/svg2skin.py create mode 100644 userbouquet.orf.tv create mode 100644 userbouquet.premiere.tv create mode 100644 userbouquet.srgssr.tv diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..5da1e46 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,3 @@ +The SF-team +Grupo formado en españa +www.soldiersatforum.com diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..322cb19 --- /dev/null +++ b/COPYING @@ -0,0 +1 @@ +See LICENSE. diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..533d6b9 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,2 @@ +sfteam version 2.0.0 +10.09.2014 \ No newline at end of file diff --git a/GlobalActions.py b/GlobalActions.py new file mode 100644 index 0000000..4c5d05d --- /dev/null +++ b/GlobalActions.py @@ -0,0 +1,4 @@ +from Components.ActionMap import ActionMap + +globalActionMap = ActionMap( ["GlobalActions"] ) +globalActionMap.execBegin() diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d511905 --- /dev/null +++ b/LICENSE @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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. + + 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. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/LICENSE.GPLv2 b/LICENSE.GPLv2 new file mode 100644 index 0000000..3912109 --- /dev/null +++ b/LICENSE.GPLv2 @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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. + + 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 St, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..c01394c --- /dev/null +++ b/Makefile.am @@ -0,0 +1,21 @@ +SUBDIRS = include lib main data po tools + +ACLOCAL_AMFLAGS = -I m4 + +installdir = $(pkglibdir)/python +install_PYTHON = \ + Navigation.py NavigationInstance.py RecordTimer.py ServiceReference.py \ + keyids.py keymapparser.py mytest.py skin.py timer.py GlobalActions.py \ + e2reactor.py + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = enigma2.pc + +metadir = $(datadir)/meta +meta_DATA = index-enigma2.xml +CLEANFILES = index-enigma2.xml + +EXTRA_DIST = lamedb + +index-enigma2.xml: $(top_srcdir)/tools/genmetaindex.py $(top_srcdir)/lib/python/Plugins/*/*/meta/plugin_*.xml + $(AM_V_GEN)$(PYTHON) $^ > $@ diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..79280d0 --- /dev/null +++ b/NEWS @@ -0,0 +1,2 @@ +SF_TEAM +www.soldiersatforum.com \ No newline at end of file diff --git a/Navigation.py b/Navigation.py new file mode 100644 index 0000000..cb57ffe --- /dev/null +++ b/Navigation.py @@ -0,0 +1,147 @@ +from enigma import eServiceCenter, eServiceReference, eTimer, pNavigation, getBestPlayableServiceReference, iPlayableService, eActionMap +from Components.ParentalControl import parentalControl +from Components.config import config, configfile +from Tools.BoundFunction import boundFunction +from Tools.StbHardware import setFPWakeuptime, getFPWakeuptime, getFPWasTimerWakeup +from Tools import Notifications +from time import time, localtime +import RecordTimer +import Screens.Standby +import NavigationInstance +import ServiceReference +from Screens.InfoBar import InfoBar +from sys import maxint + +# TODO: remove pNavgation, eNavigation and rewrite this stuff in python. +class Navigation: + def __init__(self): + if NavigationInstance.instance is not None: + raise NavigationInstance.instance + + NavigationInstance.instance = self + self.ServiceHandler = eServiceCenter.getInstance() + + import Navigation as Nav + Nav.navcore = self + + self.pnav = pNavigation() + self.pnav.m_event.get().append(self.dispatchEvent) + self.pnav.m_record_event.get().append(self.dispatchRecordEvent) + self.event = [ ] + self.record_event = [ ] + self.currentlyPlayingServiceReference = None + self.currentlyPlayingServiceOrGroup = None + self.currentlyPlayingService = None + self.RecordTimer = RecordTimer.RecordTimer() + self.__wasTimerWakeup = getFPWasTimerWakeup() + if self.__wasTimerWakeup: + RecordTimer.RecordTimerEntry.setWasInDeepStandby() + if config.misc.RestartUI.value: + config.misc.RestartUI.value = False + config.misc.RestartUI.save() + configfile.save() + elif config.usage.startup_to_standby.value or self.__wasTimerWakeup: + Notifications.AddNotification(Screens.Standby.Standby) + + def wasTimerWakeup(self): + return self.__wasTimerWakeup + + def dispatchEvent(self, i): + for x in self.event: + x(i) + if i == iPlayableService.evEnd: + self.currentlyPlayingServiceReference = None + self.currentlyPlayingServiceOrGroup = None + self.currentlyPlayingService = None + + def dispatchRecordEvent(self, rec_service, event): +# print "record_event", rec_service, event + for x in self.record_event: + x(rec_service, event) + + def playService(self, ref, checkParentalControl=True, forceRestart=False, adjust=True): + oldref = self.currentlyPlayingServiceOrGroup + if ref and oldref and ref == oldref and not forceRestart: + print "ignore request to play already running service(1)" + return 1 + print "playing", ref and ref.toString() + if ref is None: + self.stopService() + return 0 + from Components.ServiceEventTracker import InfoBarCount + InfoBarInstance = InfoBarCount == 1 and InfoBar.instance + if not checkParentalControl or parentalControl.isServicePlayable(ref, boundFunction(self.playService, checkParentalControl=False, forceRestart=forceRestart, adjust=adjust)): + if ref.flags & eServiceReference.isGroup: + oldref = self.currentlyPlayingServiceReference or eServiceReference() + playref = getBestPlayableServiceReference(ref, oldref) + print "playref", playref + if playref and oldref and playref == oldref and not forceRestart: + print "ignore request to play already running service(2)" + return 1 + if not playref or (checkParentalControl and not parentalControl.isServicePlayable(playref, boundFunction(self.playService, checkParentalControl = False))): + self.stopService() + return 0 + else: + playref = ref + if self.pnav: + self.pnav.stopService() + self.currentlyPlayingServiceReference = playref + self.currentlyPlayingServiceOrGroup = ref + if InfoBarInstance and InfoBarInstance.servicelist.servicelist.setCurrent(ref, adjust): + self.currentlyPlayingServiceOrGroup = InfoBarInstance.servicelist.servicelist.getCurrent() + if self.pnav.playService(playref): + print "Failed to start", playref + self.currentlyPlayingServiceReference = None + self.currentlyPlayingServiceOrGroup = None + return 0 + elif oldref and InfoBarInstance and InfoBarInstance.servicelist.servicelist.setCurrent(oldref, adjust): + self.currentlyPlayingServiceOrGroup = InfoBarInstance.servicelist.servicelist.getCurrent() + return 1 + + def getCurrentlyPlayingServiceReference(self): + return self.currentlyPlayingServiceReference + + def getCurrentlyPlayingServiceOrGroup(self): + return self.currentlyPlayingServiceOrGroup + + def recordService(self, ref, simulate=False): + service = None + if not simulate: print "recording service: %s" % (str(ref)) + if isinstance(ref, ServiceReference.ServiceReference): + ref = ref.ref + if ref: + if ref.flags & eServiceReference.isGroup: + ref = getBestPlayableServiceReference(ref, eServiceReference(), simulate) + service = ref and self.pnav and self.pnav.recordService(ref, simulate) + if service is None: + print "record returned non-zero" + return service + + def stopRecordService(self, service): + ret = self.pnav and self.pnav.stopRecordService(service) + return ret + + def getRecordings(self, simulate=False): + return self.pnav and self.pnav.getRecordings(simulate) + + def getCurrentService(self): + if not self.currentlyPlayingService: + self.currentlyPlayingService = self.pnav and self.pnav.getCurrentService() + return self.currentlyPlayingService + + def stopService(self): + if self.pnav: + self.pnav.stopService() + self.currentlyPlayingServiceReference = None + self.currentlyPlayingServiceOrGroup = None + + def pause(self, p): + return self.pnav and self.pnav.pause(p) + + def shutdown(self): + self.RecordTimer.shutdown() + self.ServiceHandler = None + self.pnav = None + + def stopUserServices(self): + self.stopService() diff --git a/NavigationInstance.py b/NavigationInstance.py new file mode 100644 index 0000000..d2cc8a9 --- /dev/null +++ b/NavigationInstance.py @@ -0,0 +1,2 @@ + +instance = None diff --git a/README b/README new file mode 100644 index 0000000..bd8556c --- /dev/null +++ b/README @@ -0,0 +1,4 @@ +SF_TEAM +Grupo Español De Investigacion + +www.soldiersatforum.com \ No newline at end of file diff --git a/RecordTimer.py b/RecordTimer.py new file mode 100644 index 0000000..4b89947 --- /dev/null +++ b/RecordTimer.py @@ -0,0 +1,1003 @@ +import os +from enigma import eEPGCache, getBestPlayableServiceReference, \ + eServiceReference, iRecordableService, quitMainloop, eActionMap, setPreferredTuner + +from Components.config import config +from Components.UsageConfig import defaultMoviePath +from Components.TimerSanityCheck import TimerSanityCheck + +from Screens.MessageBox import MessageBox +import Screens.Standby +from Tools import Directories, Notifications, ASCIItranslit, Trashcan +from Tools.XMLTools import stringToXML + +import timer +import xml.etree.cElementTree +import NavigationInstance +from ServiceReference import ServiceReference + +from time import localtime, strftime, ctime, time +from bisect import insort +from sys import maxint + +# ok, for descriptions etc we have: +# service reference (to get the service name) +# name (title) +# description (description) +# event data (ONLY for time adjustments etc.) + + +# parses an event, and gives out a (begin, end, name, duration, eit)-tuple. +# begin and end will be corrected +def parseEvent(ev, description = True): + if description: + name = ev.getEventName() + description = ev.getShortDescription() + if description == "": + description = ev.getExtendedDescription() + else: + name = "" + description = "" + begin = ev.getBeginTime() + end = begin + ev.getDuration() + eit = ev.getEventId() + begin -= config.recording.margin_before.value * 60 + end += config.recording.margin_after.value * 60 + return (begin, end, name, description, eit) + +class AFTEREVENT: + NONE = 0 + STANDBY = 1 + DEEPSTANDBY = 2 + AUTO = 3 + +def findSafeRecordPath(dirname): + if not dirname: + return None + from Components import Harddisk + dirname = os.path.realpath(dirname) + mountpoint = Harddisk.findMountPoint(dirname) + if mountpoint in ('/', '/media'): + print '[RecordTimer] media is not mounted:', dirname + return None + if not os.path.isdir(dirname): + try: + os.makedirs(dirname) + except Exception, ex: + print '[RecordTimer] Failed to create dir "%s":' % dirname, ex + return None + return dirname + +def checkForRecordings(): + if NavigationInstance.instance.getRecordings(): + return True + rec_time = NavigationInstance.instance.RecordTimer.getNextTimerTime(isWakeup=True) + return rec_time > 0 and (rec_time - time()) < 360 + +# please do not translate log messages +class RecordTimerEntry(timer.TimerEntry, object): +######### the following static methods and members are only in use when the box is in (soft) standby + wasInStandby = False + wasInDeepStandby = False + receiveRecordEvents = False + + @staticmethod + def keypress(key=None, flag=1): + if flag and (RecordTimerEntry.wasInStandby or RecordTimerEntry.wasInDeepStandby): + RecordTimerEntry.wasInStandby = False + RecordTimerEntry.wasInDeepStandby = False + eActionMap.getInstance().unbindAction('', RecordTimerEntry.keypress) + + @staticmethod + def setWasInDeepStandby(): + RecordTimerEntry.wasInDeepStandby = True + eActionMap.getInstance().bindAction('', -maxint - 1, RecordTimerEntry.keypress) + + @staticmethod + def setWasInStandby(): + if not RecordTimerEntry.wasInStandby: + if not RecordTimerEntry.wasInDeepStandby: + eActionMap.getInstance().bindAction('', -maxint - 1, RecordTimerEntry.keypress) + RecordTimerEntry.wasInDeepStandby = False + RecordTimerEntry.wasInStandby = True + + @staticmethod + def shutdown(): + quitMainloop(1) + + @staticmethod + def staticGotRecordEvent(recservice, event): + if event == iRecordableService.evEnd: + print "RecordTimer.staticGotRecordEvent(iRecordableService.evEnd)" + if not checkForRecordings(): + print "No recordings busy of sceduled within 6 minutes so shutdown" + RecordTimerEntry.shutdown() # immediate shutdown + elif event == iRecordableService.evStart: + print "RecordTimer.staticGotRecordEvent(iRecordableService.evStart)" + + @staticmethod + def stopTryQuitMainloop(): + print "RecordTimer.stopTryQuitMainloop" + NavigationInstance.instance.record_event.remove(RecordTimerEntry.staticGotRecordEvent) + RecordTimerEntry.receiveRecordEvents = False + + @staticmethod + def TryQuitMainloop(): + if not RecordTimerEntry.receiveRecordEvents and Screens.Standby.inStandby: + print "RecordTimer.TryQuitMainloop" + NavigationInstance.instance.record_event.append(RecordTimerEntry.staticGotRecordEvent) + RecordTimerEntry.receiveRecordEvents = True + # send fake event.. to check if another recordings are running or + # other timers start in a few seconds + RecordTimerEntry.staticGotRecordEvent(None, iRecordableService.evEnd) +################################################################# + + def __init__(self, serviceref, begin, end, name, description, eit, disabled = False, justplay = False, afterEvent = AFTEREVENT.AUTO, checkOldTimers = False, dirname = None, tags = None, descramble = True, record_ecm = False, always_zap = False, zap_wakeup = "always"): + timer.TimerEntry.__init__(self, int(begin), int(end)) + + if checkOldTimers == True: + if self.begin < time() - 1209600: + self.begin = int(time()) + + if self.end < self.begin: + self.end = self.begin + + assert isinstance(serviceref, ServiceReference) + + if serviceref and serviceref.isRecordable(): + self.service_ref = serviceref + else: + self.service_ref = ServiceReference(None) + self.eit = eit + self.dontSave = False + self.name = name + self.description = description + self.disabled = disabled + self.timer = None + self.__record_service = None + self.start_prepare = 0 + self.justplay = justplay + self.always_zap = always_zap + self.zap_wakeup = zap_wakeup + self.afterEvent = afterEvent + self.dirname = dirname + self.dirnameHadToFallback = False + self.autoincrease = False + self.autoincreasetime = 3600 * 24 # 1 day + self.tags = tags or [] + self.descramble = descramble + self.record_ecm = record_ecm + self.needChangePriorityFrontend = config.usage.recording_frontend_priority.value != "-2" and config.usage.recording_frontend_priority.value != config.usage.frontend_priority.value + self.change_frontend = False + self.log_entries = [] + self.resetState() + + def __repr__(self): + return "RecordTimerEntry(name=%s, begin=%s, serviceref=%s, justplay=%s)" % (self.name, ctime(self.begin), self.service_ref, self.justplay) + + def log(self, code, msg): + self.log_entries.append((int(time()), code, msg)) + print "[TIMER]", msg + + def calculateFilename(self): + service_name = self.service_ref.getServiceName() + begin_date = strftime("%Y%m%d %H%M", localtime(self.begin)) + + print "begin_date: ", begin_date + print "service_name: ", service_name + print "name:", self.name + print "description: ", self.description + + filename = begin_date + " - " + service_name + if self.name: + if config.recording.filename_composition.value == "short": + filename = strftime("%Y%m%d", localtime(self.begin)) + " - " + self.name + elif config.recording.filename_composition.value == "long": + filename += " - " + self.name + " - " + self.description + else: + filename += " - " + self.name # standard + + if config.recording.ascii_filenames.value: + filename = ASCIItranslit.legacyEncode(filename) + + + if not self.dirname: + dirname = findSafeRecordPath(defaultMoviePath()) + else: + dirname = findSafeRecordPath(self.dirname) + if dirname is None: + dirname = findSafeRecordPath(defaultMoviePath()) + self.dirnameHadToFallback = True + if not dirname: + return None + self.Filename = Directories.getRecordingFilename(filename, dirname) + self.log(0, "Filename calculated as: '%s'" % self.Filename) + return self.Filename + + def tryPrepare(self): + if self.justplay: + return True + else: + if not self.calculateFilename(): + self.do_backoff() + self.start_prepare = time() + self.backoff + return False + rec_ref = self.service_ref and self.service_ref.ref + if rec_ref and rec_ref.flags & eServiceReference.isGroup: + rec_ref = getBestPlayableServiceReference(rec_ref, eServiceReference()) + if not rec_ref: + self.log(1, "'get best playable service for group... record' failed") + return False + self.setRecordingPreferredTuner() + self.record_service = rec_ref and NavigationInstance.instance.recordService(rec_ref) + + if not self.record_service: + self.log(1, "'record service' failed") + self.setRecordingPreferredTuner(setdefault=True) + return False + + if self.repeated: + epgcache = eEPGCache.getInstance() + queryTime=self.begin+(self.end-self.begin)/2 + evt = epgcache.lookupEventTime(rec_ref, queryTime) + if evt: + self.description = evt.getShortDescription() + if self.description == "": + self.description = evt.getExtendedDescription() + event_id = evt.getEventId() + else: + event_id = -1 + else: + event_id = self.eit + if event_id is None: + event_id = -1 + + prep_res=self.record_service.prepare(self.Filename + ".ts", self.begin, self.end, event_id, self.name.replace("\n", ""), self.description.replace("\n", ""), ' '.join(self.tags), self.descramble, self.record_ecm) + if prep_res: + if prep_res == -255: + self.log(4, "failed to write meta information") + else: + self.log(2, "'prepare' failed: error %d" % prep_res) + + # we must calc nur start time before stopRecordService call because in Screens/Standby.py TryQuitMainloop tries to get + # the next start time in evEnd event handler... + self.do_backoff() + self.start_prepare = time() + self.backoff + + NavigationInstance.instance.stopRecordService(self.record_service) + self.record_service = None + self.setRecordingPreferredTuner(setdefault=True) + return False + return True + + def do_backoff(self): + if self.backoff == 0: + self.backoff = 5 + else: + self.backoff *= 2 + if self.backoff > 100: + self.backoff = 100 + self.log(10, "backoff: retry in %d seconds" % self.backoff) + + def activate(self): + next_state = self.state + 1 + self.log(5, "activating state %d" % next_state) + + if next_state == 1: + if self.always_zap: + if Screens.Standby.inStandby: + self.log(5, "wakeup and zap to recording service") + RecordTimerEntry.setWasInStandby() + #set service to zap after standby + Screens.Standby.inStandby.prev_running_service = self.service_ref.ref + Screens.Standby.inStandby.paused_service = None + #wakeup standby + Screens.Standby.inStandby.Power() + else: + if RecordTimerEntry.wasInDeepStandby: + RecordTimerEntry.setWasInStandby() + cur_zap_ref = NavigationInstance.instance.getCurrentlyPlayingServiceReference() + if cur_zap_ref and not cur_zap_ref.getPath():# we do not zap away if it is no live service + Notifications.AddNotification(MessageBox, _("In order to record a timer, the TV was switched to the recording service!\n"), type=MessageBox.TYPE_INFO, timeout=20) + self.setRecordingPreferredTuner() + self.failureCB(True) + self.log(5, "zap to recording service") + + if next_state == self.StatePrepared: + if self.tryPrepare(): + self.log(6, "prepare ok, waiting for begin") + # create file to "reserve" the filename + # because another recording at the same time on another service can try to record the same event + # i.e. cable / sat.. then the second recording needs an own extension... when we create the file + # here than calculateFilename is happy + if not self.justplay: + open(self.Filename + ".ts", "w").close() + # Give the Trashcan a chance to clean up + try: + Trashcan.instance.cleanIfIdle(self.Filename) + except Exception, e: + print "[TIMER] Failed to call Trashcan.instance.cleanIfIdle()" + print "[TIMER] Error:", e + # fine. it worked, resources are allocated. + self.next_activation = self.begin + self.backoff = 0 + return True + + self.log(7, "prepare failed") + if self.first_try_prepare: + self.first_try_prepare = False + cur_ref = NavigationInstance.instance.getCurrentlyPlayingServiceReference() + if cur_ref and not cur_ref.getPath(): + if Screens.Standby.inStandby: + self.setRecordingPreferredTuner() + self.failureCB(True) + elif not config.recording.asktozap.value: + self.log(8, "asking user to zap away") + Notifications.AddNotificationWithCallback(self.failureCB, MessageBox, _("A timer failed to record!\nDisable TV and try again?\n"), timeout=20, default=True) + else: # zap without asking + self.log(9, "zap without asking") + Notifications.AddNotification(MessageBox, _("In order to record a timer, the TV was switched to the recording service!\n"), type=MessageBox.TYPE_INFO, timeout=20) + self.setRecordingPreferredTuner() + self.failureCB(True) + elif cur_ref: + self.log(8, "currently running service is not a live service.. so stop it makes no sense") + else: + self.log(8, "currently no service running... so we dont need to stop it") + return False + + elif next_state == self.StateRunning: + # if this timer has been cancelled, just go to "end" state. + if self.cancelled: + return True + if self.justplay: + if Screens.Standby.inStandby: + if RecordTimerEntry.wasInDeepStandby and self.zap_wakeup in ("always", "from_deep_standby") or self.zap_wakeup in ("always", "from_standby"): + self.log(11, "wakeup and zap") + RecordTimerEntry.setWasInStandby() + #set service to zap after standby + Screens.Standby.inStandby.prev_running_service = self.service_ref.ref + Screens.Standby.inStandby.paused_service = None + #wakeup standby + Screens.Standby.inStandby.Power() + else: + if RecordTimerEntry.wasInDeepStandby: + RecordTimerEntry.setWasInStandby() + self.log(11, "zapping") + NavigationInstance.instance.playService(self.service_ref.ref) + return True + else: + self.log(11, "start recording") + + if RecordTimerEntry.wasInDeepStandby: + RecordTimerEntry.keypress() + if Screens.Standby.inStandby: #In case some plugin did put the receiver already in standby + config.misc.standbyCounter.value = 0 + else: + Notifications.AddNotification(Screens.Standby.Standby, StandbyCounterIncrease=False) + record_res = self.record_service.start() + self.setRecordingPreferredTuner(setdefault=True) + if record_res: + self.log(13, "start record returned %d" % record_res) + self.do_backoff() + # retry + self.begin = time() + self.backoff + return False + + # Tell the trashcan we started recording. The trashcan gets events, + # but cannot tell what the associated path is. + Trashcan.instance.markDirty(self.Filename) + + return True + + elif next_state == self.StateEnded: + old_end = self.end + if self.setAutoincreaseEnd(): + self.log(12, "autoincrase recording %d minute(s)" % int((self.end - old_end)/60)) + self.state -= 1 + return True + self.log(12, "stop recording") + if not self.justplay: + NavigationInstance.instance.stopRecordService(self.record_service) + self.record_service = None + if not checkForRecordings(): + if self.afterEvent == AFTEREVENT.DEEPSTANDBY or self.afterEvent == AFTEREVENT.AUTO and (Screens.Standby.inStandby or RecordTimerEntry.wasInStandby) and not config.misc.standbyCounter.value: + if not Screens.Standby.inTryQuitMainloop: + if Screens.Standby.inStandby: + RecordTimerEntry.TryQuitMainloop() + else: + Notifications.AddNotificationWithCallback(self.sendTryQuitMainloopNotification, MessageBox, _("A finished record timer wants to shut down\nyour receiver. Shutdown now?"), timeout=20, default=True) + elif self.afterEvent == AFTEREVENT.STANDBY or self.afterEvent == AFTEREVENT.AUTO and RecordTimerEntry.wasInStandby: + if not Screens.Standby.inStandby: + Notifications.AddNotificationWithCallback(self.sendStandbyNotification, MessageBox, _("A finished record timer wants to set your\nreceiver to standby. Do that now?"), timeout=20, default=True) + else: + RecordTimerEntry.keypress() + return True + + def setAutoincreaseEnd(self, entry = None): + if not self.autoincrease: + return False + if entry is None: + new_end = int(time()) + self.autoincreasetime + else: + new_end = entry.begin - 30 + + dummyentry = RecordTimerEntry(self.service_ref, self.begin, new_end, self.name, self.description, self.eit, disabled=True, justplay = self.justplay, afterEvent = self.afterEvent, dirname = self.dirname, tags = self.tags) + dummyentry.disabled = self.disabled + timersanitycheck = TimerSanityCheck(NavigationInstance.instance.RecordTimer.timer_list, dummyentry) + if not timersanitycheck.check(): + simulTimerList = timersanitycheck.getSimulTimerList() + if simulTimerList is not None and len(simulTimerList) > 1: + new_end = simulTimerList[1].begin + new_end -= 30 # 30 Sekunden Prepare-Zeit lassen + if new_end <= time(): + return False + self.end = new_end + return True + + def setRecordingPreferredTuner(self, setdefault=False): + if self.needChangePriorityFrontend: + elem = None + if not self.change_frontend and not setdefault: + elem = config.usage.recording_frontend_priority.value + self.change_frontend = True + elif self.change_frontend and setdefault: + elem = config.usage.frontend_priority.value + self.change_frontend = False + if elem is not None: + setPreferredTuner(int(elem)) + + def sendStandbyNotification(self, answer): + RecordTimerEntry.keypress() + if answer: + Notifications.AddNotification(Screens.Standby.Standby) + + def sendTryQuitMainloopNotification(self, answer): + RecordTimerEntry.keypress() + if answer: + Notifications.AddNotification(Screens.Standby.TryQuitMainloop, 1) + + def getNextActivation(self): + if self.state == self.StateEnded: + return self.end + + next_state = self.state + 1 + + return {self.StatePrepared: self.start_prepare, + self.StateRunning: self.begin, + self.StateEnded: self.end }[next_state] + + def failureCB(self, answer): + if answer == True: + self.log(13, "ok, zapped away") + #NavigationInstance.instance.stopUserServices() + NavigationInstance.instance.playService(self.service_ref.ref) + else: + self.log(14, "user didn't want to zap away, record will probably fail") + + def timeChanged(self): + old_prepare = self.start_prepare + self.start_prepare = self.begin - self.prepare_time + self.backoff = 0 + + if int(old_prepare) != int(self.start_prepare): + self.log(15, "record time changed, start prepare is now: %s" % ctime(self.start_prepare)) + + def gotRecordEvent(self, record, event): + # TODO: this is not working (never true), please fix. (comparing two swig wrapped ePtrs) + if self.__record_service.__deref__() != record.__deref__(): + return + self.log(16, "record event %d" % event) + if event == iRecordableService.evRecordWriteError: + print "WRITE ERROR on recording, disk full?" + # show notification. the 'id' will make sure that it will be + # displayed only once, even if more timers are failing at the + # same time. (which is very likely in case of disk fullness) + Notifications.AddPopup(text = _("Write error while recording. Disk full?\n"), type = MessageBox.TYPE_ERROR, timeout = 0, id = "DiskFullMessage") + # ok, the recording has been stopped. we need to properly note + # that in our state, with also keeping the possibility to re-try. + # TODO: this has to be done. + elif event == iRecordableService.evStart: + text = _("A record has been started:\n%s") % self.name + notify = config.usage.show_message_when_recording_starts.value and not Screens.Standby.inStandby + if self.dirnameHadToFallback: + text = '\n'.join((text, _("Please note that the previously selected media could not be accessed and therefore the default directory is being used instead."))) + notify = True + if notify: + Notifications.AddPopup(text = text, type = MessageBox.TYPE_INFO, timeout = 3) + elif event == iRecordableService.evRecordAborted: + NavigationInstance.instance.RecordTimer.removeEntry(self) + + # we have record_service as property to automatically subscribe to record service events + def setRecordService(self, service): + if self.__record_service is not None: + print "[remove callback]" + NavigationInstance.instance.record_event.remove(self.gotRecordEvent) + + self.__record_service = service + + if self.__record_service is not None: + print "[add callback]" + NavigationInstance.instance.record_event.append(self.gotRecordEvent) + + record_service = property(lambda self: self.__record_service, setRecordService) + +def createTimer(xml): + begin = int(xml.get("begin")) + end = int(xml.get("end")) + serviceref = ServiceReference(xml.get("serviceref").encode("utf-8")) + description = xml.get("description").encode("utf-8") + repeated = xml.get("repeated").encode("utf-8") + disabled = long(xml.get("disabled") or "0") + justplay = long(xml.get("justplay") or "0") + always_zap = long(xml.get("always_zap") or "0") + zap_wakeup = str(xml.get("zap_wakeup") or "always") + afterevent = str(xml.get("afterevent") or "nothing") + afterevent = { + "nothing": AFTEREVENT.NONE, + "standby": AFTEREVENT.STANDBY, + "deepstandby": AFTEREVENT.DEEPSTANDBY, + "auto": AFTEREVENT.AUTO + }[afterevent] + eit = xml.get("eit") + if eit and eit != "None": + eit = long(eit) + else: + eit = None + location = xml.get("location") + if location and location != "None": + location = location.encode("utf-8") + else: + location = None + tags = xml.get("tags") + if tags and tags != "None": + tags = tags.encode("utf-8").split(' ') + else: + tags = None + descramble = int(xml.get("descramble") or "1") + record_ecm = int(xml.get("record_ecm") or "0") + + name = xml.get("name").encode("utf-8") + #filename = xml.get("filename").encode("utf-8") + entry = RecordTimerEntry(serviceref, begin, end, name, description, eit, disabled, justplay, afterevent, dirname = location, tags = tags, descramble = descramble, record_ecm = record_ecm, always_zap = always_zap, zap_wakeup = zap_wakeup) + entry.repeated = int(repeated) + + for l in xml.findall("log"): + time = int(l.get("time")) + code = int(l.get("code")) + msg = l.text.strip().encode("utf-8") + entry.log_entries.append((time, code, msg)) + + return entry + +class RecordTimer(timer.Timer): + def __init__(self): + timer.Timer.__init__(self) + + self.Filename = Directories.resolveFilename(Directories.SCOPE_CONFIG, "timers.xml") + + try: + self.loadTimer() + except IOError: + print "unable to load timers from file!" + + def doActivate(self, w): + # when activating a timer which has already passed, + # simply abort the timer. don't run trough all the stages. + if w.shouldSkip(): + w.state = RecordTimerEntry.StateEnded + else: + # when active returns true, this means "accepted". + # otherwise, the current state is kept. + # the timer entry itself will fix up the delay then. + if w.activate(): + w.state += 1 + + self.timer_list.remove(w) + + # did this timer reached the last state? + if w.state < RecordTimerEntry.StateEnded: + # no, sort it into active list + insort(self.timer_list, w) + else: + # yes. Process repeated, and re-add. + if w.repeated: + w.processRepeated() + w.state = RecordTimerEntry.StateWaiting + w.first_try_prepare = True + self.addTimerEntry(w) + else: + # Remove old timers as set in config + self.cleanupDaily(config.recording.keep_timers.value) + insort(self.processed_timers, w) + self.stateChanged(w) + + def isRecording(self): + for timer in self.timer_list: + if timer.isRunning() and not timer.justplay: + return True + return False + + def loadTimer(self): + # TODO: PATH! + if not Directories.fileExists(self.Filename): + return + try: + doc = xml.etree.cElementTree.parse(self.Filename) + except SyntaxError: + from Tools.Notifications import AddPopup + from Screens.MessageBox import MessageBox + + AddPopup(_("The timer file (timers.xml) is corrupt and could not be loaded."), type = MessageBox.TYPE_ERROR, timeout = 0, id = "TimerLoadFailed") + + print "timers.xml failed to load!" + try: + import os + os.rename(self.Filename, self.Filename + "_old") + except (IOError, OSError): + print "renaming broken timer failed" + return + except IOError: + print "timers.xml not found!" + return + + root = doc.getroot() + + # put out a message when at least one timer overlaps + checkit = True + for timer in root.findall("timer"): + newTimer = createTimer(timer) + if (self.record(newTimer, True, dosave=False) is not None) and (checkit == True): + from Tools.Notifications import AddPopup + from Screens.MessageBox import MessageBox + AddPopup(_("Timer overlap in timers.xml detected!\nPlease recheck it!"), type = MessageBox.TYPE_ERROR, timeout = 0, id = "TimerLoadFailed") + checkit = False # at moment it is enough when the message is displayed one time + + def saveTimer(self): + #root_element = xml.etree.cElementTree.Element('timers') + #root_element.text = "\n" + + #for timer in self.timer_list + self.processed_timers: + # some timers (instant records) don't want to be saved. + # skip them + #if timer.dontSave: + #continue + #t = xml.etree.cElementTree.SubElement(root_element, 'timers') + #t.set("begin", str(int(timer.begin))) + #t.set("end", str(int(timer.end))) + #t.set("serviceref", str(timer.service_ref)) + #t.set("repeated", str(timer.repeated)) + #t.set("name", timer.name) + #t.set("description", timer.description) + #t.set("afterevent", str({ + # AFTEREVENT.NONE: "nothing", + # AFTEREVENT.STANDBY: "standby", + # AFTEREVENT.DEEPSTANDBY: "deepstandby", + # AFTEREVENT.AUTO: "auto"})) + #if timer.eit is not None: + # t.set("eit", str(timer.eit)) + #if timer.dirname is not None: + # t.set("location", str(timer.dirname)) + #t.set("disabled", str(int(timer.disabled))) + #t.set("justplay", str(int(timer.justplay))) + #t.text = "\n" + #t.tail = "\n" + + #for time, code, msg in timer.log_entries: + #l = xml.etree.cElementTree.SubElement(t, 'log') + #l.set("time", str(time)) + #l.set("code", str(code)) + #l.text = str(msg) + #l.tail = "\n" + + #doc = xml.etree.cElementTree.ElementTree(root_element) + #doc.write(self.Filename) + + list = [] + + list.append('\n') + list.append('\n') + + for timer in self.timer_list + self.processed_timers: + if timer.dontSave: + continue + + list.append('\n') + + if config.recording.debug.value: + for time, code, msg in timer.log_entries: + list.append('') + list.append(str(stringToXML(msg))) + list.append('\n') + + list.append('\n') + + list.append('\n') + + file = open(self.Filename + ".writing", "w") + for x in list: + file.write(x) + file.flush() + + import os + os.fsync(file.fileno()) + file.close() + os.rename(self.Filename + ".writing", self.Filename) + + def getNextZapTime(self, isWakeup=False): + now = time() + for timer in self.timer_list: + if not timer.justplay or timer.begin < now or isWakeup and timer.zap_wakeup in ("from_standby", "never"): + continue + return timer.begin + return -1 + + def getNextRecordingTime(self): + now = time() + for timer in self.timer_list: + next_act = timer.getNextActivation() + if timer.justplay or next_act < now: + continue + return next_act + return -1 + + def getNextTimerTime(self, isWakeup=False): + now = time() + for timer in self.timer_list: + next_act = timer.getNextActivation() + if next_act < now or isWakeup and timer.justplay and timer.zap_wakeup in ("from_standby", "never"): + continue + return next_act + return -1 + + def isNextRecordAfterEventActionAuto(self): + now = time() + t = None + for timer in self.timer_list: + if timer.justplay or timer.begin < now: + continue + if t is None or t.begin == timer.begin: + t = timer + if t.afterEvent == AFTEREVENT.AUTO: + return True + return False + + def record(self, entry, ignoreTSC=False, dosave=True): # wird von loadTimer mit dosave=False aufgerufen + timersanitycheck = TimerSanityCheck(self.timer_list,entry) + if not timersanitycheck.check(): + if ignoreTSC != True: + print "timer conflict detected!" + print timersanitycheck.getSimulTimerList() + return timersanitycheck.getSimulTimerList() + else: + print "ignore timer conflict" + elif timersanitycheck.doubleCheck(): + print "ignore double timer" + return None + entry.timeChanged() + print "[Timer] Record " + str(entry) + entry.Timer = self + self.addTimerEntry(entry) + if dosave: + self.saveTimer() + return None + + def isInTimer(self, eventid, begin, duration, service): + returnValue = None + type = 0 + time_match = 0 + bt = None + check_offset_time = not config.recording.margin_before.value and not config.recording.margin_after.value + end = begin + duration + refstr = ':'.join(service.split(':')[:11]) + for x in self.timer_list: + check = ':'.join(x.service_ref.ref.toString().split(':')[:11]) == refstr + if not check: + sref = x.service_ref.ref + parent_sid = sref.getUnsignedData(5) + parent_tsid = sref.getUnsignedData(6) + if parent_sid and parent_tsid: + # check for subservice + sid = sref.getUnsignedData(1) + tsid = sref.getUnsignedData(2) + sref.setUnsignedData(1, parent_sid) + sref.setUnsignedData(2, parent_tsid) + sref.setUnsignedData(5, 0) + sref.setUnsignedData(6, 0) + check = sref.toCompareString() == refstr + num = 0 + if check: + check = False + event = eEPGCache.getInstance().lookupEventId(sref, eventid) + num = event and event.getNumOfLinkageServices() or 0 + sref.setUnsignedData(1, sid) + sref.setUnsignedData(2, tsid) + sref.setUnsignedData(5, parent_sid) + sref.setUnsignedData(6, parent_tsid) + for cnt in range(num): + subservice = event.getLinkageService(sref, cnt) + if sref.toCompareString() == subservice.toCompareString(): + check = True + break + if check: + timer_end = x.end + timer_begin = x.begin + type_offset = 0 + if not x.repeated and check_offset_time: + if 0 < end - timer_end <= 59: + timer_end = end + elif 0 < timer_begin - begin <= 59: + timer_begin = begin + if x.justplay: + type_offset = 5 + if (timer_end - x.begin) <= 1: + timer_end += 60 + if x.always_zap: + type_offset = 10 + + if x.repeated != 0: + if bt is None: + bt = localtime(begin) + bday = bt.tm_wday + begin2 = 1440 + bt.tm_hour * 60 + bt.tm_min + end2 = begin2 + duration / 60 + xbt = localtime(x.begin) + xet = localtime(timer_end) + offset_day = False + checking_time = x.begin < begin or begin <= x.begin <= end + if xbt.tm_yday != xet.tm_yday: + oday = bday - 1 + if oday == -1: oday = 6 + offset_day = x.repeated & (1 << oday) + xbegin = 1440 + xbt.tm_hour * 60 + xbt.tm_min + xend = xbegin + ((timer_end - x.begin) / 60) + if xend < xbegin: + xend += 1440 + if x.repeated & (1 << bday) and checking_time: + if begin2 < xbegin <= end2: + if xend < end2: + # recording within event + time_match = (xend - xbegin) * 60 + type = type_offset + 3 + else: + # recording last part of event + time_match = (end2 - xbegin) * 60 + type = type_offset + 1 + elif xbegin <= begin2 <= xend: + if xend < end2: + # recording first part of event + time_match = (xend - begin2) * 60 + type = type_offset + 4 + else: + # recording whole event + time_match = (end2 - begin2) * 60 + type = type_offset + 2 + elif offset_day: + xbegin -= 1440 + xend -= 1440 + if begin2 < xbegin <= end2: + if xend < end2: + # recording within event + time_match = (xend - xbegin) * 60 + type = type_offset + 3 + else: + # recording last part of event + time_match = (end2 - xbegin) * 60 + type = type_offset + 1 + elif xbegin <= begin2 <= xend: + if xend < end2: + # recording first part of event + time_match = (xend - begin2) * 60 + type = type_offset + 4 + else: + # recording whole event + time_match = (end2 - begin2) * 60 + type = type_offset + 2 + elif offset_day and checking_time: + xbegin -= 1440 + xend -= 1440 + if begin2 < xbegin <= end2: + if xend < end2: + # recording within event + time_match = (xend - xbegin) * 60 + type = type_offset + 3 + else: + # recording last part of event + time_match = (end2 - xbegin) * 60 + type = type_offset + 1 + elif xbegin <= begin2 <= xend: + if xend < end2: + # recording first part of event + time_match = (xend - begin2) * 60 + type = type_offset + 4 + else: + # recording whole event + time_match = (end2 - begin2) * 60 + type = type_offset + 2 + else: + if begin < timer_begin <= end: + if timer_end < end: + # recording within event + time_match = timer_end - timer_begin + type = type_offset + 3 + else: + # recording last part of event + time_match = end - timer_begin + type = type_offset + 1 + elif timer_begin <= begin <= timer_end: + if timer_end < end: + # recording first part of event + time_match = timer_end - begin + type = type_offset + 4 + else: + # recording whole event + time_match = end - begin + type = type_offset + 2 + if time_match: + if type in (2,7,12): + # When full recording do not look further + returnValue = (time_match, [type]) + break + elif returnValue: + if type not in returnValue[1]: + returnValue[1].append(type) + else: + returnValue = (time_match, [type]) + + return returnValue + + def removeEntry(self, entry): + print "[Timer] Remove " + str(entry) + + # avoid re-enqueuing + entry.repeated = False + + # abort timer. + # this sets the end time to current time, so timer will be stopped. + entry.autoincrease = False + entry.abort() + + if entry.state != entry.StateEnded: + self.timeChanged(entry) + + print "state: ", entry.state + print "in processed: ", entry in self.processed_timers + print "in running: ", entry in self.timer_list + # autoincrease instanttimer if possible + if not entry.dontSave: + for x in self.timer_list: + if x.setAutoincreaseEnd(): + self.timeChanged(x) + # now the timer should be in the processed_timers list. remove it from there. + self.processed_timers.remove(entry) + self.saveTimer() + + def shutdown(self): + self.saveTimer() diff --git a/ServiceReference.py b/ServiceReference.py new file mode 100644 index 0000000..1625542 --- /dev/null +++ b/ServiceReference.py @@ -0,0 +1,59 @@ +from enigma import eServiceReference, eServiceCenter, getBestPlayableServiceReference +import NavigationInstance + +class ServiceReference(eServiceReference): + def __init__(self, ref, reftype = eServiceReference.idInvalid, flags = 0, path = ''): + if reftype != eServiceReference.idInvalid: + self.ref = eServiceReference(reftype, flags, path) + elif not isinstance(ref, eServiceReference): + self.ref = eServiceReference(ref or "") + else: + self.ref = ref + self.serviceHandler = eServiceCenter.getInstance() + + def __str__(self): + return self.ref.toString() + + def getServiceName(self): + info = self.info() + return info and info.getName(self.ref) or "" + + def info(self): + return self.serviceHandler.info(self.ref) + + def list(self): + return self.serviceHandler.list(self.ref) + + def getType(self): + return self.ref.type + + def getPath(self): + return self.ref.getPath() + + def getFlags(self): + return self.ref.flags + + def isRecordable(self): + ref = self.ref + return ref.flags & eServiceReference.isGroup or (ref.type == eServiceReference.idDVB or ref.type == eServiceReference.idDVB + 0x100 or ref.type == 0x2000) + +def getPlayingref(ref): + playingref = None + if NavigationInstance.instance: + playingref = NavigationInstance.instance.getCurrentlyPlayingServiceReference() + if not playingref: + playingref = eServiceReference() + return playingref + +def isPlayableForCur(ref): + info = eServiceCenter.getInstance().info(ref) + return not not (info and info.isPlayable(ref, getPlayingref(ref))) + +def resolveAlternate(ref): + nref = None + if ref.flags & eServiceReference.isGroup: + nref = getBestPlayableServiceReference(ref, getPlayingref(ref)) + if not nref: + nref = getBestPlayableServiceReference(ref, + eServiceReference(), True) + return nref diff --git a/autogen.sh b/autogen.sh new file mode 100644 index 0000000..68f4a17 --- /dev/null +++ b/autogen.sh @@ -0,0 +1,2 @@ +#!/bin/sh +autoreconf -i diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..f0ab1b8 --- /dev/null +++ b/configure.ac @@ -0,0 +1,255 @@ +AC_INIT([enigma2],[3.0.0],[enigma2-devel@lists.elitedvb.net]) +AM_INIT_AUTOMAKE([dist-bzip2 no-define tar-pax -Wno-portability]) +AC_CONFIG_HEADERS([enigma2_config.h]) + +# Silent rules are available since 1.11, but older versions +# are still in use. So don't use them unconditionally. +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + +AC_USE_SYSTEM_EXTENSIONS +AC_SYS_LARGEFILE + +AC_PROG_CC +AC_PROG_CXX +m4_ifdef([LT_INIT], [LT_INIT], [AC_PROG_LIBTOOL]) +AC_CONFIG_MACRO_DIR([m4]) +AC_OPENMP() + +AC_PATH_PROG(MSGFMT, msgfmt, AC_MSG_ERROR(Could not find msgfmt)) + +AM_PATH_PYTHON +AX_PYTHON_DEVEL +AX_PKG_SWIG +AX_SWIG_ENABLE_CXX +AX_SWIG_PYTHON +AX_PTHREAD + +TUXBOX_APPS_DVB + +AM_CONDITIONAL(HAVE_GIT_DIR, test -d "$srcdir/.git") +AM_CONDITIONAL(HAVE_FAKE_GIT_DIR, test -f "$srcdir/.git/last_commit_info") + +dnl versions of gstreamer and plugins-base +AC_ARG_WITH(gstversion, + AS_HELP_STRING([--with-gstversion],[use gstreamer version (major.minor)]), + [GST_MAJORMINOR=$withval],[GST_MAJORMINOR=0.10]) + +PKG_CHECK_MODULES(BASE, [freetype2 fribidi gstreamer-$GST_MAJORMINOR gstreamer-pbutils-$GST_MAJORMINOR libdvbsi++ libpng libxml-2.0 sigc++-1.2 libssl libcrypto]) +PKG_CHECK_MODULES(LIBDDVD, libdreamdvd, HAVE_LIBDDVD="yes", HAVE_LIBDDVD="no") +AM_CONDITIONAL(HAVE_LIBDDVD, test "$HAVE_LIBDDVD" = "yes") + +AC_CHECK_LIB([dl], [dlopen], [LIBDL_LIBS="-ldl"], [AC_MSG_ERROR([Could not find libdl])]) +AC_SUBST(LIBDL_LIBS) +AC_CHECK_LIB([jpeg], [jpeg_set_defaults], [LIBJPEG_LIBS="-ljpeg"], [AC_MSG_ERROR([Could not find libjpeg])]) +AC_SUBST(LIBJPEG_LIBS) +AC_CHECK_LIB([ungif], [DGifOpen], [LIBGIF_LIBS="-lungif"], [AC_CHECK_LIB([gif], [DGifOpen], [LIBGIF_LIBS="-lgif"], [AC_MSG_ERROR([Could not find libgif or libungif])])]) +AC_SUBST(LIBGIF_LIBS) + +AC_LANG_PUSH([C++]) +AC_CHECK_LIB([xmlccwrap], [exit], [LIBXMLCCWRAP_LIBS="-lxmlccwrap"], [AC_MSG_ERROR([Could not find libxmlccwrap])]) +AC_SUBST(LIBXMLCCWRAP_LIBS) +AC_LANG_POP + +AC_ARG_WITH(boxtype, + [ --with-boxtype=NAME box type [[none,dm7025,dm800...]]], + [BOXTYPE="$withval"],[BOXTYPE="dm800"]) +AC_SUBST(BOXTYPE) +AC_DEFINE_UNQUOTED(BOXTYPE,"$BOXTYPE",[box type]) + +AM_CONDITIONAL(DREAMBOX, test `echo "$BOXTYPE" | cut -b 1-2` == "dm") +AM_CONDITIONAL(HAVE_TEMPFANCONTROL, test "$BOXTYPE" == dm8000 -o "$BOXTYPE" == dm800se -o "$BOXTYPE" == dm500hd) +if test `echo "$BOXTYPE" | cut -b 1-2` == "dm"; then + AC_DEFINE(DREAMBOX, 1, [Dreambox hardware]) + AC_DEFINE(KEY_PLAY_ACTUALLY_IS_KEY_PLAYPAUSE, 1,[define when rc sends a KEY_PLAY event for its KEY_PLAYPAUSE key]) +fi +if test "$BOXTYPE" == "vusolo2" -o "$BOXTYPE" == "vuduo2"; then + AC_DEFINE(VUPLUS_RC_WORKAROUND, 1, [workaround for problem with vusolo2/vuduo2 event/rc driver]) +fi + +AC_ARG_WITH(textlcd, + AC_HELP_STRING([--with-textlcd], [use ascii based lcd, yes or no]), + [[withtextlcd=$withval]], + [[withtextlcd=no]] +) +if test x"$withtextlcd" != xno ; then + AC_DEFINE(HAVE_TEXTLCD, 1,[Define when using an ascii based lcd device]) +fi +AM_CONDITIONAL(HAVE_TEXTLCD, test x"$withtextlcd" != xno) + +AC_ARG_WITH(colorlcd, + AC_HELP_STRING([--with-colorlcd], [use 96x64 16bpp color display, yes or no]), + [[withcolorlcd=$withval]], + [[withcolorlcd=no]] +) +if test x"$withcolorlcd" != xno ; then + AC_DEFINE(HAVE_COLORLCD, 1,[Define when using a 96x64 color display device]) +fi +AM_CONDITIONAL(HAVE_COLORLCD, test x"$withcolorlcd" != xno) + + +AC_ARG_WITH(oldpvr, + AC_HELP_STRING([--with-oldpvr], [use /dev/misc/pvr instead of /dev/dvb/adapterX/dvrX, yes or no]), + [[witholdpvr=$withval]], + [[witholdpvr=no]] +) +if test x"$witholdpvr" != xno ; then + AC_DEFINE(HAVE_OLDPVR, 1,[Define when using /dev/misc/pvr]) +fi +AM_CONDITIONAL(HAVE_OLDPVR, test x"$witholdpvr" != xno) + +if test `echo "$BOXTYPE" | cut -b 1-2` == "vu"; then + AC_DEFINE(FORCE_NO_BLENDING_ACCELERATION, 1,[define when the framebuffer acceleration does not have alphablending support, though the autodetection might indicate that it does]) + AC_DEFINE(FORCE_NO_FILL_ACCELERATION, 1,[define when the framebuffer acceleration does not have fill support]) + AC_DEFINE(FORCE_ADVANCED_REMOTE, 1,[define to fixup the input device identification when the remote control is actually an 'advanced' remote (with play/forward/rewind keys)]) +fi + +AC_ARG_WITH(libsdl, + AS_HELP_STRING([--with-libsdl],[use libsdl, yes or no]), + [with_libsdl=$withval],[with_libsdl=no]) +if test "$with_libsdl" = "yes"; then + PKG_CHECK_MODULES(LIBSDL, sdl) +fi +AM_CONDITIONAL(HAVE_LIBSDL, test "$with_libsdl" = "yes") + +AC_ARG_WITH(libxine, + AS_HELP_STRING([--with-libxine],[use libxine, yes or no]), + [with_libxine=$withval],[with_libxine=no]) +if test "$with_libxine" = "yes"; then + PKG_CHECK_MODULES(LIBXINE, libxine) + AC_DEFINE([WITH_XINE],[1],[Define to 1 if you have libxine]) +fi +AM_CONDITIONAL(HAVE_LIBXINE, test "$with_libxine" = "yes") + +AC_ARG_WITH(debug, + AS_HELP_STRING([--without-debug],[disable debugging code]), + [with_debug="$withval"],[with_debug="yes"]) +if test "$with_debug" = "yes"; then + DEBUG_CFLAGS="-ggdb3" + AC_DEFINE([DEBUG],[1],[Define to 1 to enable debugging code]) +fi + +AC_ARG_WITH(memcheck, + AS_HELP_STRING([--with-memcheck],[enable memory leak checks]), + [with_memcheck="$withval"],[with_memcheck="no"]) +if test "$with_memcheck" = "yes"; then + AC_DEFINE([MEMLEAK_CHECK],[1],[Define to 1 to enable memory leak checks]) +fi + +AC_ARG_WITH(po, + AS_HELP_STRING([--with-po],[enable updating of po files]), + [with_po="$withval"],[with_po="no"]) +if test "$with_po" = "yes"; then + AC_PATH_PROG(MSGINIT, msginit) + AC_PATH_PROG(MSGMERGE, msgmerge) + AC_PATH_PROG(MSGUNIQ, msguniq) + AC_PATH_PROG(XGETTEXT, xgettext) + if test -z "$MSGINIT" -o -z "$MSGMERGE" -o -z "$MSGUNIQ" -o -z "$XGETTEXT"; then + AC_MSG_ERROR([Could not find required gettext tools]) + fi +fi +AM_CONDITIONAL(UPDATE_PO, test "$with_po" = "yes") + +ENIGMA2_CFLAGS="-fno-rtti -fno-exceptions" +AC_SUBST(ENIGMA2_CFLAGS) + +CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS" +CFLAGS="$CFLAGS $DEBUG_CFLAGS -Wall" +CXXFLAGS="$CXXFLAGS $DEBUG_CFLAGS -Wall $BASE_CFLAGS $ENIGMA2_CFLAGS $PTHREAD_CFLAGS $OPENMP_CFLAGS" + +AC_CONFIG_FILES([ +Makefile +data/Makefile +data/fonts/Makefile +data/countries/Makefile +data/extensions/Makefile +data/keymaps/Makefile +data/hw_info/Makefile +data/rc_models/Makefile +data/skin_default/Makefile +data/skin_default/menu/Makefile +data/skin_default/icons/Makefile +data/skin_default/buttons/Makefile +data/skin_default/spinner/Makefile +data/skin_default/LCDIcons/Makefile +include/Makefile +lib/Makefile +lib/base/eenv.cpp +lib/python/Makefile +lib/python/Components/Makefile +lib/python/Components/Converter/Makefile +lib/python/Components/Renderer/Makefile +lib/python/Components/Sources/Makefile +lib/python/Screens/Makefile +lib/python/Plugins/Makefile +lib/python/Plugins/SystemPlugins/CableScan/Makefile +lib/python/Plugins/SystemPlugins/FastScan/Makefile +lib/python/Plugins/SystemPlugins/OSDPositionSetup/Makefile +lib/python/Plugins/SystemPlugins/OSD3DSetup/Makefile +lib/python/Plugins/SystemPlugins/HdmiCEC/Makefile +lib/python/Plugins/SystemPlugins/VideoClippingSetup/Makefile +lib/python/Plugins/Extensions/CutListEditor/Makefile +lib/python/Plugins/Extensions/CutListEditor/meta/Makefile +lib/python/Plugins/Extensions/DVDBurn/Makefile +lib/python/Plugins/Extensions/DVDBurn/meta/Makefile +lib/python/Plugins/Extensions/DVDPlayer/Makefile +lib/python/Plugins/Extensions/DVDPlayer/meta/Makefile +lib/python/Plugins/Extensions/GraphMultiEPG/Makefile +lib/python/Plugins/Extensions/GraphMultiEPG/meta/Makefile +lib/python/Plugins/Extensions/Makefile +lib/python/Plugins/Extensions/MediaPlayer/Makefile +lib/python/Plugins/Extensions/MediaPlayer/meta/Makefile +lib/python/Plugins/Extensions/MediaScanner/Makefile +lib/python/Plugins/Extensions/MediaScanner/meta/Makefile +lib/python/Plugins/Extensions/Modem/Makefile +lib/python/Plugins/Extensions/PicturePlayer/Makefile +lib/python/Plugins/Extensions/PicturePlayer/meta/Makefile +lib/python/Plugins/Extensions/PicturePlayer/data/Makefile +lib/python/Plugins/Extensions/SocketMMI/Makefile +lib/python/Plugins/Extensions/SocketMMI/meta/Makefile +lib/python/Plugins/Extensions/SocketMMI/src/Makefile +lib/python/Plugins/Extensions/TuxboxPlugins/Makefile +lib/python/Plugins/Extensions/TuxboxPlugins/meta/Makefile +lib/python/Plugins/PLi/Makefile +lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/Makefile +lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/meta/Makefile +lib/python/Plugins/SystemPlugins/DefaultServicesScanner/Makefile +lib/python/Plugins/SystemPlugins/DefaultServicesScanner/meta/Makefile +lib/python/Plugins/SystemPlugins/DiseqcTester/Makefile +lib/python/Plugins/SystemPlugins/DiseqcTester/meta/Makefile +lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/Makefile +lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/meta/Makefile +lib/python/Plugins/SystemPlugins/Hotplug/Makefile +lib/python/Plugins/SystemPlugins/Hotplug/meta/Makefile +lib/python/Plugins/SystemPlugins/Makefile +lib/python/Plugins/SystemPlugins/TempFanControl/Makefile +lib/python/Plugins/SystemPlugins/TempFanControl/meta/Makefile +lib/python/Plugins/SystemPlugins/NetworkWizard/Makefile +lib/python/Plugins/SystemPlugins/NetworkWizard/meta/Makefile +lib/python/Plugins/SystemPlugins/NFIFlash/Makefile +lib/python/Plugins/SystemPlugins/NFIFlash/meta/Makefile +lib/python/Plugins/SystemPlugins/PositionerSetup/Makefile +lib/python/Plugins/SystemPlugins/PositionerSetup/meta/Makefile +lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/Makefile +lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/meta/Makefile +lib/python/Plugins/SystemPlugins/Satfinder/Makefile +lib/python/Plugins/SystemPlugins/Satfinder/meta/Makefile +lib/python/Plugins/SystemPlugins/SkinSelector/Makefile +lib/python/Plugins/SystemPlugins/SkinSelector/meta/Makefile +lib/python/Plugins/SystemPlugins/SoftwareManager/Makefile +lib/python/Plugins/SystemPlugins/SoftwareManager/meta/Makefile +lib/python/Plugins/SystemPlugins/VideoEnhancement/Makefile +lib/python/Plugins/SystemPlugins/VideoEnhancement/meta/Makefile +lib/python/Plugins/SystemPlugins/VideoTune/Makefile +lib/python/Plugins/SystemPlugins/VideoTune/meta/Makefile +lib/python/Plugins/SystemPlugins/Videomode/Makefile +lib/python/Plugins/SystemPlugins/Videomode/meta/Makefile +lib/python/Plugins/SystemPlugins/WirelessLan/Makefile +lib/python/Plugins/SystemPlugins/WirelessLan/meta/Makefile +lib/python/Tools/Makefile +po/Makefile +main/Makefile +tools/Makefile +tools/enigma2.sh +enigma2.pc +]) +AC_OUTPUT diff --git a/data/Makefile.am b/data/Makefile.am new file mode 100644 index 0000000..bc7bc61 --- /dev/null +++ b/data/Makefile.am @@ -0,0 +1,31 @@ +SUBDIRS = countries fonts extensions keymaps skin_default rc_models hw_info + +dist_pkgdata_DATA = \ + encoding.conf \ + keymap.xml \ + menu.xml \ + prev.png \ + radio.mvi \ + black.mvi \ + rcpositions.xml \ + setup.xml \ + skin_default.xml \ + skin_subtitles.xml \ + skin.xml \ + startwizard.xml \ + freesat.t1 \ + freesat.t2 \ + unicable.xml + +if HAVE_TEXTLCD +dist_pkgdata_DATA += skin_text.xml +else +if HAVE_COLORLCD +dist_pkgdata_DATA += skin_display96.xml +else +dist_pkgdata_DATA += skin_display.xml +endif +endif + +skin_display.xml: $(srcdir)/skin_display_default.xml + test -f $(srcdir)/skin_display_$(BOXTYPE).xml && cp $(srcdir)/skin_display_$(BOXTYPE).xml skin_display.xml || cp $(srcdir)/skin_display_default.xml skin_display.xml diff --git a/data/black.mvi b/data/black.mvi new file mode 100644 index 0000000000000000000000000000000000000000..8475412905c0c4469ca68df89a40b961785a80ec GIT binary patch literal 20876 zcmeI(u}Z^00Eh95Q!s=Wf=L=mIBp0wgo8#cl0j6kNh zbWj&ZU403`M{qRh=I$ile>nn~K9b*dLKu(b(ucRaEALjKD30PpDV3&4lISeU(lpnL z6@zwpzTK=Sis5jt*{I!QQkHM+-c8H0E!%M%+jU*X@fPz}+j(Ia20`Ha-EI^`osLpc z#&Pv~LKqL?`bs4AtU8_6Q+aYBkB`cO{aGc~&g(NRbG?~w=)t<~Z}oekdH-3MVy8KU zFkio#)3ClTdxy94d!@(oo0rj8eey^RJ_h~;C_q9aL_#D)LL@{&Bt$|aL_#D)LL@{& zBt$|aL_#D)LL@{&Bt$|aL_#D)LL@{&Bt$|aL_#D)LL@{&Bt$|aL_#D)LL@}OzmTxG v(!?l00SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZK!JZyz1j7RZoB{%T0s>?L0`~v}@Bjqw00id% z1k3;fsQ?4n0t5XtH_a<8fgK+GIz2=e7_JEqwQ6jFNKCCADVdIsr!_%?aB_$>KdGRi zYCcIjD==_cVzZZ~Q!!1Ij-gIYmd4Liw7XIJ{sPR-0(5l&{r>~-@&nr31N{F4=II2d zsssD~1^N30_W1?+{|5Q~2KoI4`1}UR%mw}b2k7bu?)4Jh;33@MC+qGp{r@)o|2+Ty z0R8;{|NjI1{R7$A1I)_<%*+F+ssf9Q0*Z{_1org=_Vxtt?*!)N1gNM3 zbaVpz`v&gr2LJyDy1EDa{R-UL3HJ94`SuOz<`}`h9{v3{!oVup+cEw9J@N58|NoQj z=m75N1?Jxl*V7fLq#M}OB;3&n>D?E%t`ft&Kikz}(#A2ds!#Rb6xPKU%E+_Y!z84W z9k{75tDZjf(gyL*2k_1c@6QYF%M9eh4Zouco`(s{st1N}1#w;k?aB?(vmy7_K7)Hw z{LTdS$pr7i1m?U1sEGsHv~c20ySb-THHk(popWT2Xk5aoqOqTujwl+ZG9PU?FqKnEgEcF^XI%Uj1Bna* z{1*hM4+HTQ1?Lq7$`b^03j_N}JEJryqi12rh=ZjM1lAJgs@j`r6vM#>P4z zXy~Y~1F}1CfTre_wsr=iFlXno0+K;xVHKsC^^BY|$N-@};rJSV3OOgxhpU;^L(8;S7@jw;gQ8J?d<<9P_hGr3VU8qY%}p35r>%E+$VJ3GtE zJExEgfO>(NrxX_ER<)20fO^{*3ada2l0if}5HM5$n?&RS0A_2P$1Cfh>Hq)$07*qo IM6N<$f{LKT*#H0l literal 0 HcmV?d00001 diff --git a/data/countries/ae.png b/data/countries/ae.png new file mode 100644 index 0000000000000000000000000000000000000000..cdd96ad2dc80c6cec08e5174481dbb16596ff889 GIT binary patch literal 1554 zcmWlYdsvfY7{=fC`*0lOkP@jJ)GSjXueuNeBG^b2*#Hf=paR7-MS)2uA{K~Fg;0Uf zR1}arL>E*LmgNu`k}{e&KoStfIbaA(4zo@6eee7B^~ZDHe?GtKe(on{TWFw-m7^5^ zz$R!*Kp5vAaQhMvRp%ItQE{sC;AZtvx;Y=XpF{JAl_9-P+bXt!id7jt!Kg>l%|$ z%=VF%D|2nR1QBNZ=B%!H_UUg(Dn*3F^Lp&=!Mdz$J(bm$`we3lC3t>Tb5+-;MumkY zmK|w4_pjYzA0MB!R#sL#n<4+Io0+7-=p+8YhaeP$Yl=3xzl_ z(HB4f&E|j^A5!y>$N2dn?+;Q_Q^&@}h5%62UO@ovgH(8U_>`_^3P1y9o?c65H*G@k z2@n81;CZfo({AAcOG{q+^}rVZV!K5L0kE>LTx4hM<>h6h&HCf@eO??8uA z1{#$t1m6QlB$6kJ90S2KV4;3m6B84&-N69^@TlR3K|syUOt!T?x(;D4q!9oX7Q7MJ zd96Hlpdz@xwSwgi2k9yR;{oW+lcJNSxHi3{DK3V2ib5EfD48#*GC;)(>C{74Ln*2P5f&vH$;fUZIpb;Sq zL(QPm0T6k{ z)%tPzv#?o{%?g8#Ic`<@QA4(qr{AsHnfHLb!>B>N{);^h(c(1YRJYHoGuBj(5pEbr zyEE;=n<>3fuU&gzU0l1gb7@8Zz1jHuW^e70)^Vkck}=i`Gamr^hNAGW1UC>6R3~PnJ8EkA0>{c{Xp~RUMxlpQ?N^)mwA-$-6VVj6Lm#%u&+k z9jtS$n(R=pM-FHbm)t%J54im8GmYN}($^Of_PqMh#d5bx;wz~m&qZM#19$$&U{s$* zj~13Ujf-{OyMl}Ml9OQ>*&&S^V^Xx24Qb!*)o&nr(bfrJqWAKh{9mp$=~wT6-}qJe zJ5jHESEhNd%TJj+$N!c(clb>9*umA6uWYZY2^DHue6?#--F4x6mtU@O9`+E4m|>N@ z*NusFhH~mHe*N?Aye601HKB^rZl~QJG!>S-W;$j2bJwz^Kg-scNjiS*{I2@=?(|>g z^vkNgIrCY%5)}Id2Hbkk`MXl7>_{3O`!nL+$A2Cx${pfIe#uM_(jkyuN^`1}H076m zn0{|YO9=ncSH`!V57fsF#&1^k*F_~oMg8+Q*mh}0@Tz_LqYI7{#i&X2{m7AmO7AzS o#0$EM2+3c#TRxW^v$DquOt%DPR-VcT=lTqSHiZUMeY8{ZAA^x3g8%>k literal 0 HcmV?d00001 diff --git a/data/countries/bg.png b/data/countries/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..4bd2f3f8afea5cb6b2a99c504d485e8fc373ec39 GIT binary patch literal 3819 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 literal 0 HcmV?d00001 diff --git a/data/countries/br.png b/data/countries/br.png new file mode 100644 index 0000000000000000000000000000000000000000..448c5cc40a7ac277d82be6e99b0f0d0c012a01ac GIT binary patch literal 1295 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 bw(C9t&%2fO{z3o300000NkvXXu0mjftbrek literal 0 HcmV?d00001 diff --git a/data/countries/dk.png b/data/countries/dk.png new file mode 100644 index 0000000000000000000000000000000000000000..bb4d049d306aac9350dc83b18140d03be70fbc8a GIT binary patch literal 876 zcmV-y1C#uTP)467Ck zsul~W77Lpc3YruOi4qBY5D0t_2yG4rYz_xs3*?v~+}zyG&d$Zf#l*zKs;a7418gkk^BO1;Gr~aDhMcf2;c>RIkE`_44F~_F|jgm;Hf+V43s@( z@PfPqxdJAJETK5@d}cUcP?-e=Dh$kcL8632QUL&;yzf%GVFbGX0000IqP)(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ-7f?)8MgRZ*|Nj900RR60009600RI300RI3005@>FDO8LQAvZmH&N_C*I(5W2 za=$iixHW9FGia_cWT!A;qAp#WE?t`|R*@@LkttJ)C{c$ePlXaBJw1EPI(5T1aJ)Bf zxi)OIHEOamW~(w}s4!rmE?k-{Sd$knO%^Ol6evRwA2ei=&~KgFZJEg z$;rjV#lphEy}iA>yu7xywzajjv9YnRu&}JGtg5Q2si~=`sHmr>r=+B$p`oFmprD_h zpPZbWeSLjTPftutOhrXSLPA15K0Y`&I5jmjF5wgx0002ENkl3tDag`DBow^BOhd8LfAi08FyTu;Niv~yUUaX8|?h}v!Ta5 z{$sqw3k*0WGT;E9m8zKb_y@T4YOV4Yx5;||HRr4Zu&k0d%w$$bU}femBdHqLmMrEj jLrl_(>!KzBoQUTetOz+Be(OE{00000NkvXXu0mjf)ut3s literal 0 HcmV?d00001 diff --git a/data/countries/en.png b/data/countries/en.png new file mode 100644 index 0000000000000000000000000000000000000000..5fd3f8bf3d837ed911ba18bd476d30d07ff114f8 GIT binary patch literal 2108 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 M07*qoM6N<$f{$DS6#xJL literal 0 HcmV?d00001 diff --git a/data/countries/fr.png b/data/countries/fr.png new file mode 100644 index 0000000000000000000000000000000000000000..2ce75a5c31957cb3f08ed6dcdd72ef5aadeda0a4 GIT binary patch literal 907 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 literal 0 HcmV?d00001 diff --git a/data/countries/gr.png b/data/countries/gr.png new file mode 100644 index 0000000000000000000000000000000000000000..9e831707ea2615b500b948958cbca94dc585a030 GIT binary patch literal 1443 zcmV;U1zh@xP)07w7;MgRas002V(06_o%J^%nc0024w0672vHUI!M001-q05SjoFaiUB4iAA2 z4}TC4hz}5e4i9t<4s8$-gbxsV3kzBa2}%+Zh!quz85xWvC6Xm2j43IUEiINYF_8UMMt7ZOQMmI$&iuAl$FYwo6NJc*|)gc z5f+F>OQTFsrcqX=ba=RPceZ6{pmut?YHg=mUXMRPV>vrok(9-xrqNDMVTOm7H9VR` zM{Q(ipG!`6H8)gKR)d9!y`G}ZqNUNJrqQOU({Xc+ud>#?zuU&h;9Om3$;;xz#@%jj ze9Fw?hlrPNaD1(!@t4Sqouc9UTDC=*0{RN)YjS>2P?re1yE9 zrOBF~!lkOuiH)mWV062`-Mzuw#mL}dV{6OJ-NVJy-QVrl+2G&d?aa;7&eG=4)8oCv z+``D=!^z>q%Hnl*fOU6&zQy0Mx6Y@n!qC;|?C$mE=D=7h&d$!Ns;Z2PjCFN&X@qFC0007BNkl8_ErxvObOU_>Vi4Pq@jH%(#tYs$3fq#rG#FA9v?A=H6fI4&;c>LV)Xxp^T&S%Y5XO*Jva=m;5ggUPPubP$t zfLku^&yjgW5>aN{eDTvZ@Hl>XdTH9C*|2bN?e{&@}E-18YwGnU7 zce;FFi>6FUhgSe)ZO7tdkz)XG(bJBUpUmgkl<*|r?&$>jo(TdVcQquU000dJG_S9r zS+izD#Aw-9in&f)3;=~Edx4kDDF9GaPx5&rE%kZehQ>`}YOXyooE?|zpH!L=!#*=M zlpP;rK{c5%IM+PeAZ?%1dhYt%At?dG;Pj>>t=SF;D@7nLxL?w*_y6*w- z&H3yTm(ys(%{&;n!)w*X!N5Po10^J8j|Ik`L^3)}F*jW&`U7KcB%`hq-z2v3%iLka z7QPV}dmrG(Vk^y6fpH>1wR8Wm&w1gVr3>BE9vI)H&~k_>i~;`&j3d&LV^l%25s?gx xV^Rn~;TQgcJ)f0PqN)3?O3? z^u~t1=`TRp6@==OpD7xCs_ z9`cilDZno;QD&uHa+>*RmeJ?ut>Y2le;MnIIM@ksu-DQ&7hn=#9N-Ip7C-~=5kLjd z4xj+|8=xNG7JvlcGC&bPK7bH##{ee)$OJe5kP481VHylm5eSGt7$*?47^W~Vkl^t` zW8*j~Rcd0gmqbb+5@XEF#AGs`NQ^c$<&B9 z$Yc_cNXX;yxm?uUjRptN$OsyrDy>$l(P&gEl|rGANF;ndUnReBUHAA8vKTAa z%*Gf>fOkIM)TWu!{Gw-JzI%)Bz7;8R7B+KaFR0QyPZtWMKI?>l>z>^FSlLLk7>-IG zI(L?9caNv+G$XFI?5qFs&d9{hk?i0WQ*ic9;^^HN;*&Eif$3$YW`hY$LkoPy;`_}y zPBqxy-_uhvI{#Kew^L>H<%`ma7ad)y?fo{%m6xlVgRiPZAsKyrAB-9NsG4&XH4_f= zZ-<_%dK!FrM`mO52EWj&=Vo`hy7>8vX5XD~42@rJA3ls_R5rVs7=`b3EnDk)?Yo;r zr<=d}+rx>}3o#om94wS1ZHbFpy=(i8hThkIoMsSSMYS5b`FD4lU}|-R<5)N5TxpWn zP(DtPx4Zf(qE&fVZh8yb0e`2j>p}9sl7P8Xe@jCi)%W+l?tLZiM@u)^2Hay19$Q8v zJxCdPr+UA7(bksN_0g+Lf0ao)lHcBs`}(8LSl_Yk$>M=I`f{^X4W&flQ!Coitd*Mv zM;q5&i}t3!-NwB~Xy0$J#xv6)Xn5H7%SqYp)ATG3r;hNa1yeD>SlVjtQ(6u=J2M|Q zrBK%-*|Ub_(xv_WX(R6%L~l4+=lF}?Y37^`n$?^fmR%9P^+G^4Jz8-0+ea5HoWAb7 z*FHsPRcZ3m;sELqbxCCY;ls|nXU{LX1yT!ZZ+N&nNmFgzc`y_G9)vZo9)->Wp z{Yws$X|y1sYnSycX55b0PlcYj`0*m~;%x?7+gGis-I^KEgOitk&<@2n5SEvm2=*$F z_|S{xf!R4+$}ENWyje-CG literal 0 HcmV?d00001 diff --git a/data/countries/hu.png b/data/countries/hu.png new file mode 100644 index 0000000000000000000000000000000000000000..ba2e0f9aef9b0851e99aa74e6298b76033610cf2 GIT binary patch literal 861 zcmV-j1ETziP)m4&yD=sKfB>!) z3FqnQ`|RuEJTCC^^7r}q>QP0J5(ss5b&Z>iVQOLSacA1x-13o$c@GBG8Vl(}H|8%O z_qw*+IxWh(y3QF3-tFGn8w;%!3B=jQ!x#zxG5`QR003bC07w7;OaK5d0034109^n8 zQUCxs002S&0BisNasU7}001-q;~Wg?NNu) z?aGGA+JcR?Co~sxY<2~P!&(|5UeQQi(Lf{Y8xFP)ztHxyy4@W*#>Rsk^`SNIXicec z;nk4dJ{jNRLfah4>njCFDxXMxMho7GiH(M(@#&8MO!Wr!GvMa#!eaSGJHNfUyryG1 z_8&*4Bzy)SF@Gp`4m!ErESAkfVXMt2ZsvT>0_fG$kbg0{t;tGL+0GZS-Qr@Fg nDKrEDQnAvcc|+q%Bz)or#ad|G&FH!#00000NkvXXu0mjf6@7!W literal 0 HcmV?d00001 diff --git a/data/countries/il.png b/data/countries/il.png new file mode 100644 index 0000000000000000000000000000000000000000..a8c7e52d739a957fb5ad3d6fca7e667d88f2714c GIT binary patch literal 696 zcmV;p0!RIcP)Px#1ZP1_K>z@;j|==^1poj5^H5AwMFncQ1#7zrY`Y6>ybEr;4{*H@aJ>_9z7%r4 z7j(ZEb-x*QzZrJGBz(doe8VY!#4CWrEP=!&Qq7qRG80drPXVu)@-NNZ>ZOBsn>F<*mSJecC6Wqx!;Yt-;urGlfL1Vzu}m{ z;+ewYn!@9p!{eRA$ueGyVmTy*6h94?Y`LU zz}fA=+3v>O@5hQ2|Nk{o8a6D(ylLW!v%1OTEN14u8T_OG zpD92FDcH$O3J1y*AZD01*+bKTAEyBJEnJQq>RQXC;@yf8+?J-#7_zlJ^_L8J z^cqv9j!)(~j<|!de1>HsP#wuCZJMGWPlb3_e}E;35IMjm*0JK|0;)H e%7pTg{J}3u(!j{Wb5mvj0000%rtP0eHxy;w_Y~ zp|prWqvF*Rbu(oynOkCGP-P0VQ;BP;Xp;zde1SEtBB)-OVxv-m5FiW?04ssjKm-s8 zL;*2?1XvG9fsH^MKyBCtYzN|j-GB;60#boAARWj6jsjW0F(4Pv;Q))K_Mm4>r>Ai_ z$35w}Y+A0Tn{F;IGkK3HO{JyC%F^nz$b;a9Ku{tGzZss-al7V8yX3{V?#;O6!zc}! zecOjo>FZwO`Qb8u*?DM z*DHeBS1suYUuKy>d<$gv2C}V-1FXSw`oiX0*6?kS!M5n-cCpaDewAGsVc!tduUOZ= zSwg17lc@=$de09{(vKslj_mY;Jl)WFU14Eik={vhX>nP}jq>vH2M-@s7%FOB*Ss~< z4Hf4PUn=-@{o-i#<3DxPO-)VBCR2S^V`t;5uCA``9w#l9mNr{kyRE&W|D%~S_qMf? zpS!JAYoFbT!{HeD_Vr(%b!>28Y;bUBczASl^v_=>qFRtV#@J_&Av;#aIYnL5)<6ig7Zyg~9jx9J*|4UQP;8t>-X??{iN+#}n_4sRl#-0i%Cib6iib!(2-KbFefg zelFAq*9yg_G>P3uW;Mhbp9L@BC&UKL%gl%iSUT43AWmpX^P6psE++_^}Lc> z=fV;M7LER#^7{u*()(V~gp%M?ETCUqm>eMw@*PNw1Sw)e@t(?Tw9vV6HsPEzMXCXtJ)V)mZ?57GWx9{>OV literal 0 HcmV?d00001 diff --git a/data/countries/is.png b/data/countries/is.png new file mode 100644 index 0000000000000000000000000000000000000000..dc7c1655fe01e682f40d2324676ab046daaafe6f GIT binary patch literal 509 zcmVoA00012{{~$D0Y$|CQtf%D{{U3-{uC5c zkpDY>{{TfBhaB=D=E6eKw2sPm9kf%#F8VPXM zrr(x~o3^s?K*qT4?TjfvpiP5(h0dExr>tLjX8oQAG(F2%^e#D&00000NkvXXu0mjfTin^~ literal 0 HcmV?d00001 diff --git a/data/countries/it.png b/data/countries/it.png new file mode 100644 index 0000000000000000000000000000000000000000..9583b58010dd2fe210fde80b8a71244a78d4ee68 GIT binary patch literal 840 zcmV-O1GoH%P)eu3quP99t9g$8z5UCBwi#hW-l{oGcjc`H*7aM zZaY44K0|dwMRrA0e^gwDTw{!5XOCxWlWcjLd4HjQg{6gwsELrSkbIAPp}C=Cb7W6j zPo1=#m#vqTtCc`WK(WQKw#l}$#5(9t_0(cGrcMbw}4gz!y0&ooiZ4Cl!3<75i z0$~dRUkd_W3j+2%DE3G+_-9x7h7A73o07nRdiuDr`^3Kd(adBE0%HpT z@}ioWXJTVQKl2R$>FLGA#lyqHo}QkZoSc1qeSCa;Wo2b#WMosX9FG710R>4!K~zYI z?bg3a#6S?o@yu^G*_?@74m9GQQv){FiEm*kzJY>;@8Jvh1o}o++6ZD5<;a1?T!`y! zY-iamEG_b>=L^%#;N*DsXlu%)r+4=badUgYU0$7?U*la)*QMf&S-FfdKNdr|M61KB zm~gYm6ZcvboarIokW?lauW<Gqiu0)TJDKO5p99^xS$;vxR`ajNP?W!-$pP&z;eEt_JSpmeN-bxom#3qWKm1@PI8 z8dx6$!9yxqaP#?|%#g)Z{*iO!t5*%}bB71fgwRn~j;uM7o|saKx#;P!?tcNJap9Xm St4d@50000@5Wa@ODp*4W*`OhAp(sd(87dk?ZC%mUC>q9w^FfdS${@ZXCPqVy5e-_c zSP_d4VpK#2jew1UwY0oiL`a4YpjtpF_@cB>i?oG1fBxYmcV8}-`|{12m#WV-z_}*mo44 zC6m1c8v}_0*uD%;0k%ccZ-CD?lY4|bcGUZmO^^R?z*l+X?7`MB`tYBvo*{G*dQc14 z;6twAh|_?T5MBs`)2Q_podfDGpsDe6B}B^rF98jeV&fbddxE_=_%x2bn8{j?4KuJi zW9eBqbQNf@7#raCBA``Ztpj>rfi0o*`6Ze5VW)^}I@HY~kBwX(@mUJ}%;@|Ta~RD_ zi4CZqO|~ZNN+R=Na`vKO9(}5HJ^~TLHgJNb9J!?s!^pS=G+c&F!8G29y}9@_o+kQe z^bzX(usbte4nq%sEG4LeKZ=187?XX-GdBM;kY^NMY$X=VXZ(50B6QRA1QE_-+V)t~ zvT1S^V3OG+ZWgZ+;23V&h8?U z;XUNU23~kqbDQUwaYUHNTc}W{w=MiDeFX__9}dVFHzBP+xsyzIHtmy$og|C_`g?kP+6L{#Owt8xwUZq?gY fb1k+pBdy8z4l0<;Fl2Xq`y7xaB#Kq5(~f-wT}|H? literal 0 HcmV?d00001 diff --git a/data/countries/lt.png b/data/countries/lt.png new file mode 100644 index 0000000000000000000000000000000000000000..e5a352de4469562daab3d3e17e4bb0baea2555b5 GIT binary patch literal 1022 zcmVV7^zMZ8<~*c2M9e-+^x`ZmCJa=L zRD2>VjKYK*h77beL_|IetTH_0)-23AOk^G;oGv`{<}8FJEF209w5lY;I!x^5G+Y`a zlqxjLLQFI=48*!5B!(0ef&_FTETozoq&7s{&Mdq-MC{@;L~=w_8YJ}QM5I1U^x`xu zDhzxkEUYp_ynwIL)*W5+733kf(O;%FQi1gQoPQ2PIW)xC5$DZ@;y zYqiqb_jcvtz@L%Hq-`?eE>7t5w&1Nf)RwQ+j&ECWvy)~zF~MJ}R|QzkcyD}d9LyHH zjx29Ix#5(1jXnoQ&ezsk_2N^380)N8&U98Aue_p-vozpVN3*jUW)GLZ510J@-FZ>h zzN$Ke2*>wO-s1W>$hLJ=g)@a|i(<==fP}4xp`dCXnfcIYL=YZAOP+k2 z(o#B=#1b<+Fyu_qtb)oCBkHwWAre9*BHmCO$@$-?=-`=?z{|jtjSp3z%!&|<<{|?x0 z@fX1N+xGIZEc>#Bfh!nfhdo-fw&9cxrZ2x1#rD1gaL*S7CsBCA2y$`679CRp6Z5o` zzyTPjnJTOt0E12gGs@)b(>3~{9hGoJr|m#? zTOReEdbF83w04+tf6|08)LyK39&+BYYPOs6SI!Y||4d>Q>haD(7zsLb{FwYq)r4gu zb0QfqpOB|mBD-PPO~9UN=By$+v__b3?^yQnNKuX(_8>c}c7rkVBpY^7S`E06AJ!&T z8-EfKg*~mw2)k_AY_5=bJ_iX`;hQ{a9C>Me{pVs`+}un?Z=dkZR?pVOX!c>XyVyxj s*7tw8c;4;ayk8eTX0SZvJ3IUK0FMXkomtT}kpKVy07*qoM6N<$f;i;P&j0`b literal 0 HcmV?d00001 diff --git a/data/countries/lv.png b/data/countries/lv.png new file mode 100644 index 0000000000000000000000000000000000000000..1e4a6fefb0dad4460410349f6c638d75c6b1a3e4 GIT binary patch literal 483 zcmV<90UZ8`P)S4$z4zYb|33)f2i{v)FlT?47uv%X8Fa@T zi>L;M*|h2;RTT_gp)r~J8Ji`ofX7(`Ua_9f;$@PdPt0VrbV9^`6E9}V`D8Re>otlo zupM`_%W=CF@pt2^eLJ5HX#3q}C9V?jPsce`!Hd6RuE74Q&v{Q%Q`IqV|w Z1s{ws9zeof6#f7J002ovPDHLkV1jNx#R&ia literal 0 HcmV?d00001 diff --git a/data/countries/missing.png b/data/countries/missing.png new file mode 100644 index 0000000000000000000000000000000000000000..2bdff009bc4958110b3380397b44e93f6afe8b17 GIT binary patch literal 2003 zcmWNSX*d)L8-|}OEtVEjlq08QiaPj`B__(6eIHR@wxp7EB3Vi)oTN?VU_u&1WGQ@T z5yx^;#Kep&!`R0(7>r0xeREy+`@Glv>%HDzPlCOznY4tw1ORCZa}!75))J2LYEfbO z1{g+~+6Br#}Fwp)9!^31|I~a7(o6-M8W1x@3 zY{dW_eXZzf#^-u8RiXMh20KZdJ~D4O;!7i3Y|&GL?mBe70lQVB>mPDYHPn=_P8vfW zNxhZmDF>qr@AJ`IL4H?69(#?xa`e4G?@KTXkrM}TF$~x3AE_s?3c-4gz7ka4MSni} z^S~1F3|+ZMrXcndctseJx=!`|FKN4NARR+?lv05Cw zM2sY0Bp%1Kuu%$=#bjO_Mz5hi8gp?Niw5%|8vOB>6JpK5y@c@y41|OCK%E-~ZYU-~ zzzGBA0)|3x&m3YR5LtoA^Oy+21O+30==Q~V9n4ik@cl6r2(BNv{^0sz!VePxc<+V^ zC(Jw|^L@cPg|9yNdIp@+81)9r9d63td4uPPuiluxqBeO9lmEq}8+h(uI%CQeQ%5mH z#-s}d9nfooMl(Fn0^c6fLYz>27#Ebmw*lW4d@Im2F?$3vrkF9qj0HxF;i-UG6U-W6 z)(|tssMA2)E(HA!!9mOkIfOZVWGf+MH|8}V(1t)4@DYJw2_Xd#yJKNuNH+h+=C8MjM4$Cdk0Za%O=eDXv$~xd=4{Cu^^*vqb?;4f ziq2fwM{2ZI-$$>l=d5Lt3BT45c8b;;-!hewZn&!-6n1e*_4-s=Z~T*ZxoF0GsPlYB zLz<_-imX*^90e16;#J&fc$h?+s8PQ@aZ570V|(V$Nnc*EOLVl)!h((7E5)w?QAX5& z7_qC_-!FkCGu!MIiCW2!HG5ve zww#dFbP!u18CxdXxe#RMYxiq$wDkT_N9~20xbJ6queLch56RtIBa=IIh`&_Pz?mry%y4cX?T^2d^-)NuR(s!S$*xZiuh0(y?n#MCH zngf(9EjP?1?j-4YKg-TKyE2{NI&Z_W?24aJn>z8Tm)1%%&q*t3Gk4KtQVQC1o!?lk z{o~)WW*+PZhI%hA?wkpIAuv=dZkr%FC5$b}6eym4Hbmiz*Ze&5y5&Z{Q%=<)XYfo- zp75-W^IPo;-X)>yszRz;@<*Pu8d>!1Cw|zHK_n!cs+AO5rL}k zPoF*qNm?Q8p`Tv~>nA7GpW9hnL(P;QCp21WcFEZoTX~pI4Sp=Lqxoy@PZ4a^SN)W& zld;*4Maq+i2xchcFlMH@-ffLK5_)7uW8?7#j_>oZW9hcGpUP*+9Zi<1NF%R2hU1yrM#;E(*ZH4VeORVqbMeKEbua?-++NTiUpP5sTEBBeY ziL=D}JD^j|CMWjv@tBR0-R-R{?gu31_jNpsDIcT3Y{wI#qxEH}pvM#t_jz)&^8V}+T%d>KE7^y zQI6@)c>Ojno7ZDId?Gn}@^2^Sw6|veGXJP&!FXEfA;z>B%LtP7)n&LC9OR~|o$QIw z3jMG$Az!n^Y^K_Y>Ry`nQYnxda=B?=r6t9gyjMruJ*(G@JXjDH|9#RwiJo?#$alY; zW6V=I?@sn9-FRFFjaS&UY7PCt=DPlH}9&I$hw|!cs^BSgMt09(KKqm z7yYO_eT6zaKTslCTen;<^Y3*Ys=Ly-@dwb+j@g(y20E55wID}kJWz@5Td$RUf>@N{9ow%p!>~L!ghv* MsjW$|k>|Dl1Df)l$^ZZW literal 0 HcmV?d00001 diff --git a/data/countries/nl.png b/data/countries/nl.png new file mode 100644 index 0000000000000000000000000000000000000000..ee2909da03db72a2c43c60cdf85473d7c4dadcd7 GIT binary patch literal 931 zcmV;U16=%xP)}zZ0}@yQ4L|}6J^~Co0t`9=3poM{Hv$VbHc6v5 zN~1harfz(^S!9@Hajai!qKucy0v2%t7Dt`f%+Ahqb#84!tpf8!Pf-W3Jc6$Qi-1h*0dmk$Ha6a{?@1855a+8YbS7z&^i2%i)Pc@GBU z91PhB*BT4f8Vl1J3(*=2&>9QQ84Jo83&R)+zZVL+7Yeu+ z3a%9itrZEF69|V92ZRs@ZVm>>84HmT2x$!l<|-TJFCgbKBQF=KQAO=#S?yFMd_=H}eo+}YXL&d$!v%*?8)s;H=_jEszmii&l0b#!!e zYR^070003VNklcMJh7H3rSDg)gO&Wo~5%6|Sm9Y3W~*Z6c}@R^z{uA|hhx11cgSIFr@fe^ujP z9H0bCRr_cJe;eaf5GJoVQfgh}X^#dcrT|8p5d|Chi002ovPDHLk FV1kO@e~kbD literal 0 HcmV?d00001 diff --git a/data/countries/no.png b/data/countries/no.png new file mode 100644 index 0000000000000000000000000000000000000000..3bde318ee6ca15f156f25e03cfd192e8cef195e4 GIT binary patch literal 1497 zcmV;~1t$85P)e4Qv1lV*m_X00~O~2Rr}< zE&&jA0SGn&4NnReat9Dh3>te38F~yDcLfSCA})pn#887&b7GE#K+#h!r0W-N@JPRCr3mbe27;6X$e07h??_ zd<+|O1`Rn49C;inggr@?Lr|JZR-I5>pi5SjK1X~fElx5yV^UqATxO?&XlZW4#m?#L^L%}NoSmNi|NrXj?DqHf?(gr!#l_PZ08|P9wHO1l z7z3>r1FIJUq!t5x5dvrq0+bX3W)1?{J}KNtG~Q4>;bm0lhA9SFA^3e+GBs~QT86$oJu2G}hZ*fJg5MKRqXwV^o09IQp7Oi2;jyf*j*8{Fwe-rx^vuWZ$HM5sz0=Ye_gy}0qdxs`Tv^vuZi*wy;)?$Hha&_{rUO%^78WR?Ck03>D=7h&d$!Ns;Z2PjAdnI-~n%{0007%NklWGaDPwYS0fb_Z>7+0jK?3WEW!p_Cuis9GE8dQez?38 z3Z5KdWQ+;}0==({=k}Lk1%*?(X7(~now&U0z*Z=DRL00?6cQ4m9{!c_?BkNH*g$JW zer^Fn=j8TP#SBnzaa|&#fuxlir{6cmXE)Oruz?BL(|cx(Y8z;6O*K_Tt1F@4&02)E zrynjZW40E%7?OiVUziZZx>oUA;n0z)iEbX;5%0>tS9 z<4xE%3MVjPPl%7f5^tdB4ki?D`*!X)a9}SK>^S%pp159q+OZcK*tu`l?rjWjFIC@v z@EQufJVd0)!=K;0#s)53zVhxpL+6yyLSZOs%bYT?y<;L2T-ub90;z<5rT{D9iP!+B zdYjFVm6e&9odX4z*QcgNI61lU2c)JRy;YZk4Rp`wDVW2M)770nqZtaWY)D986Bid3 z2uetJey15L$nDLWJ(r<-TJwUwJP0Vbx-C9F($3CKBrra{;zmOrHc&8o&fK{S({lS} z&6x)U*EatD&nzu1Eu;pd@21bg2IjZ4%%2MY(9ym&uA4dZ00000NkvXXu0mjfc5r&! literal 0 HcmV?d00001 diff --git a/data/countries/pl.png b/data/countries/pl.png new file mode 100644 index 0000000000000000000000000000000000000000..6b24f8bb23d4d701d675c98f84451e4ec0724a51 GIT binary patch literal 658 zcmV;D0&V??P)py%Yek69AGA0C)`mh!FyU5dwh_0#XVA+#Ceg8wAxG1koD=&Kd;17z4Q%1GyLj zw-*Dm7Xz{v1F9ASrxgRD6$79Y1A7nxc@F}14+3-#0&xxka1H`&4gzZq0%{HdXbl3% z8U(}{1ep^9loJD!69bMC1B(&^Weoyk4FX~f0$~gST?_(S3<6pU0$B?JR|^7F3j%r- z3d<)G-YXT^DizZy6u>1Cvm+6d9S-6~G~-G)<4ii_P(9^VMdn*dr=Fc<2>{s4%gVpL z`|F4L?=H}+( zrV87>=1Voadtq@#+JHQ1%NbJ34 zyL90Mj2$b)0u!RG7+TW*=L}Als*3kd&z5Y-m>MKlv`D9fl>a)9;|lI7_BkQNaY-i& zn&q&y4A7|(@rlhKCj@!dgO^T#c0>($z$c7Rstu8O_ASv4)B<&_I-6brN7#-6k zE7~Y6=Pfj}B`cyQEW@u>*2~P+7b&eCF0x%^?Be9q&(Niyrtk6cskOP@;^Vf$!?Cxw*4f#u zudny`_@S$+$<53LZxR4!3jlZp0B;2Wb_M`^0}Nsg0Eqwqh5!JC004pj0D%Aie*ge| z004Rb0C)fZb^ri%0040S0B!&PYybdi003wJ0Am0ET>t=A002(_07?J=LI40i0024w z05t#rGXMj70|Rse1b+kvd378*dIHb`&jX8!T7~JYOM3bsSKJ6;O05Ux_PRejZh8 zAYpVfnza~7RuE=(8G4K=Q(zG)FbQmTEsT_3rK^It%?^Hu8hd^vdwe{vtrnM;ENp8a zuB|npoEpTs8@RG5iiRqil{Als8H~k14#26?k4Bgkc_NEtAj+1Vfev|<{fStH79Dt1pb!dDfCNF4LMOXBB&RtokuoURGbYP6DXB0d$~G~aD=3X9C8<0)vT$y&hJ@BACgLnB-z+Oq z5D?)kEZ;3G-7GBADk{z?Daj}(#3v`GAt9n5Ad?*(jT{_^8yk5T7-|(2WfT-)6BAn! z5?2us+bk^BD=X0|D$FS<#waMVBqXXLBB&xFnjasF92|if8dVVyyCx=k85wpM7;F|6 zViXkNOH1QbRp@eZ?U0cB@9+Qr{|~{A6aWAM<4Ht8R7l5Th>vr1^YBCgZnXl>34!Z3 zKD@li;F^>Y@9KsEoEw;)5&~CWe7Jd=!96ZBCo>5JBz8!ABLtpYfBEJegO_VYZf-UT z$ZApgK?r<(@%j!YgSSUqR!%w!NNZO7P6#~t@aElp1|KiC`ks@$P7y)YHFN?L3j1oo(Bv&)K=}@ag^g zx1TAfbpdU_@rQkq;#yZYBlUnWkod&Ok?4iV|Izs$@H ze*KivJl4N{{X&IH#A%MHpVZsCVZ&K7GYbwusvrEF-xiw|$HtaPp zH8wWT+p}Ta!cDuUi?b7Fb8OR!&b~|1XH85jObm4;`95r$*uU@uaW*r$mQAoKc*>`3 zW@c*qOXCF7;e|c3mMX9jr`aWcL7^?z!KG*Q4UBZw&fa%m#rEE9LKldPXY0D|`rYfM z9M?W`R%*+%1FFh9W@ud^I&By9_jl|$$jo>39G~)sx!Z2e+0H^j#wcIi-@jk{nvnd# zopYx3&0iybiFnN}(IxXr^X-e5?Ap0(+0yANw9b>1pY1B=x0e;vYQ9`x0XueXPr zn+FPTtrfUN2;8{&mh%gPzn`zKe*g;buYLK75V&>cJcv!y27BQfb%00000 LNkvXXu0mjfz`~_K literal 0 HcmV?d00001 diff --git a/data/countries/ro.png b/data/countries/ro.png new file mode 100644 index 0000000000000000000000000000000000000000..d2234dcd9603b750ae914711dadc87a88c382ac0 GIT binary patch literal 861 zcmV-j1ETziP)RTC3Y5fMlb5JV0RI~*Kz8yj&O8*myLZ5SA27Z+d^6<87yOA8Aw92{~R8*dsK zYZ@AA85w688D zNJx)LN{~=clu=QYXJ?{qZKiQ?sCIU%h={h0jk%GLyO@~3wzkr`y43~wy33g!RS~!=4YEehmD~6zsnf z>Ae$tWC~sSU{oP^xfjlqJ=h_e>8z=D?&CFXH_G(pkBnVdeOm_oq#lS zLkR7O5$1&v-hdF>e-O874U<(1UN#5tpg;4lU-rR*PYMLf8w-^b2$U2EgAoUE4+d}# z25%1rUkwFb39?+(0Rl-xK~zYI?ae_>!ax+p@xE_nC~c923)EB+QaFMKaOD}? zasW@E3C4{l@jxaLOo$biOUvs4TT}RZB6E3z`1K2jA)4BsB9LLjykgWi{ zGuCj{Hr8=GeTa26#y;AV#e%C3-`Z8`cMc-$0>K~n*vCHhv5$TH@8g89Tnes=EV%&5 zDG@E^pt5)9w?NC3bj3((YS`WEIQX1eQ nhaK)XrA~aNkP=Q5^Emhg>=qLCi~!Y700000NkvXXu0mjfUvNi( literal 0 HcmV?d00001 diff --git a/data/countries/ru.png b/data/countries/ru.png new file mode 100644 index 0000000000000000000000000000000000000000..929dac300139fcf044dd69cbca625fae68fed122 GIT binary patch literal 934 zcmV;X16lluP)B#$-&O-J^8jAY06>iZXWIZ|(g0)80A$esV95YmzW`36 z07jJnLyrJNk2HYPI)v2#Y1IH`%>ZT00A|bpWXb?x!vJ8y0Aa!aRjdF~rT|i<8eO0o zU7rv*U>jYZG>G0bh1WEM)-;9II*Z>rh}b%b*c4iw3^ra3Ib#-Iq$w;eEHE-AC@Cl^ zD z913705L6%zpFA5`A`ep^4ow{mn>!nkHyL6j5nCe=RUi-BT{PBRG~8i2*kL+89~IFp z0Ld!=v?lFMd_=H}nu-`(Ba+S=OL z+1b(2(a+D%&d$!v%*@Hj$;QUU!^6YCz`(t|y|c5ku&}VIs;Zirnumvng@uKGe}8&< zdUbVmb8~ZMW@ck!V`5@rU|?WgUS3^YU0PaNSXfwBS65b6R#Q_`Pft%xO-)KlN<>6N zKtMn?Ha0OaF)b}ED=RB1Dk@K{Y83zg0S`$;K~zY`?bb0)!$1@S&_A=|7z{*6ffGOp z7vKgQf!lBd?m(T6A`&%JG)NQ_P(eTxAcU~xIQA|b{r(Px?caWBHKV_nk{~Si03@aF zh6wps47+08nd2a=RUiwGwFD8Q%r`j@1nI#P377o6VI}d@OV16nleR#gKQzVBg^Xij znT-dMXR?EbO)MO(TI@sCXc9iMvGmoLi~t;cHmqvG{v?(SF@~7!BF#)TeoHZBKGk1@L&^^RgBR^6rS=J1nG`43(0-S)Db+Ea{xcJlro&)j%Yct!q>2Dx4d zK;ih45TUJw`H^QugIh197`l2{X5$X!_M^~T4=KM@G2X}1A3`cgLOhgkS^xk507*qo IM6N<$g2ga`j{pDw literal 0 HcmV?d00001 diff --git a/data/countries/se.png b/data/countries/se.png new file mode 100644 index 0000000000000000000000000000000000000000..54ac176092ab484d232b042080e793cbb6db0346 GIT binary patch literal 1247 zcmV<51R(o~P)(*7IVvYDRZm<_NM1}vTX1WAh=h}(pQ=bhS1Tq%Lp)b`_ zWj!`vIy782F;^oWHys)-XJLdsIAuOKV{2xJH7;rl1zrjTLJbE`3kF3J3T_DnHyRRk z6b@Pt3rGzKISmOn34^|QlOA!o34hlI72rd#0Ne>G?3kWR_3q2wlfIT*kNkW!OM3+iL zkWfjKVOyk>kiodM)&~PT2?R_J2YL<%au5i41_Lk=33w3+brA`25D9M*3V0Fpm49?CAs;UWf zbq4?c55>g{Wn~8c{}A~25by5~?CcMoo(g?^2& z62rp}sHhE`oD6k!33PM`_VyI-?-T6o6Y1#_=H?RF*%8dl5Q>Tme0&OIWC-Qt9^Ty{ z*w-V<$|0ww8)|70R#gty)g;l+Bge%dhJ_aY|33ZwLH_ibYfxxpP-|vVR#HM-SVu=hH!&|JiG_8IiFsyW zPGVh4J2)+BWm02bRn{kzUH||A6LEv2*tke}hNPm}hMIB&C@a5k@)QW1yW{45-M9+xj(0)dM>Js!9LQ$(sl zG($v8Vx;7H?(s!WiZIG$T84D02Qr6^VfsG zd=^a%ylf8$ zEMxb!!41?4HEeAew5?4{fixUs+8$Z37X%hC2iW2U4w{+{wg7!G4MmSnX*~b{002ov JPDHLkV1mFf(`Wzy literal 0 HcmV?d00001 diff --git a/data/countries/si.png b/data/countries/si.png new file mode 100644 index 0000000000000000000000000000000000000000..bfde71fd00f0500ce26f82b0ef5db2133475a07b GIT binary patch literal 1476 zcmV;#1v~nQP)F~+Ql>5~D*$KP#3%=wCjj{G{s3UY4LM@~W6`7@0C8<~`}_O-{rUt1 zsB!~JT}E9L0FGZ?qF`WPg@uK%u&@OLq=$WwVq#)jUZ@lRl3H3?a|uWV1*obnK<U2zgTlr!0DOFW|Nr^N$Hy=*Forf_B`7I- z8UQOVF#iAlB?5sXBaU`j>0I1khL#iqOlpg^7`}p?v z_NgcdwJHFgI~g~I*EE9FvwA{WA`j>1=b)g@WB^89BohDtolZ`yN>FI=*3hr9)HMNf z{{H+iF_(FRw@yw@005={TEhTO#e;{w_x<|?2&#K~yCMdN`SJfS0B%YU zCn#$%WGyZ)!^6S;{rYuvbjU3LaB#YVpyvQp#|A*R*WBv>NyArHu@)Ae0|TqvgnzXg zFa7=d{QUZSe!ng*rvCo^LkDZVyV3w+${1at^ylJDO?OpQsssX}gD(_c0#~NC=jP_{ zh5|MX0GnfKrDSAhZ*r^#2Bz}9wA$L*QXUKe1FX9G(wmT zHpfa*0065<91qaY)CLHu`1ts9b8}!M5ZGZlj~@X4|Na19$-*!IpFA7ZT{O`x0HrAa zz`(#PFf#J;^7;Ass;a60WYIK*)+;M38(p6OVZzSN&HzM@08*toiP#W0U@|W(2neVE zXw}az003ag0BO}&SXlY*|BI>c0AyU z%wAqz%rgK0X3YQp|2|BeT>tEun1NCt)n zBqe4t$SjT6x$_yxpx*D)DkFx+r_h9V?j*`EzXK9R4DyCZ`sRdL6{rQ5sag4#L=dof zvZVfThN}k-L-`J?f>*SM$T)6rT(Q7%ah;7DKFxl_&_Tv(PmjfeotfoXoGB$p^uzF2E%e9+>F7nWsI z640CnvY9I-1@!sjvEx}_Jy!9Ty37m;x+H`u3fuqJHvwy&6pvuWlQx8gM#J4$+Lli zmvMmDGpBjZGh98v>wWeH5ZsJw$SSGdQd6^K%ZwS-ZovVnO*e1@?lY&)fixdIcJ?U< z>?&WMU@q9*9Z}sqC-)hX!n~VLaf6d+nxEe6nPro-W=%X0C+R9Rs6Qn|vvz}0--I=7 zViRQBWTn@YUM5NN&7vM-UH`_U0{^hub>XE?Nz(juSKRbT&&&l~pFLCVjJrvq=9`+y zRg)6T1zM(cYThJOGf;PNkJBXOs?<0Fda-GK`c!jQ#`FMH^{0dYOf&Pbvp11|X8V$P zHwl81tYFQ}>?|x-u3SWbdAvxRD>%SSR&eqZxj$>xebT|&wQGSHV-Lsn?RQBB?u!Bs z0yQ)4-F};7uzSDDwrrs0eS5b*d2$H{c!C4$-oInpL6~Mz!N}EYzb9W$?+(epgL9Fu z8H1gtv-AF2Bm>TSrVrB?qC5Cp7TqHmn5L&sdB6}I*b(UakaVzdvJe1cN?3D{4uK5-0000= literal 0 HcmV?d00001 diff --git a/data/countries/sk.png b/data/countries/sk.png new file mode 100644 index 0000000000000000000000000000000000000000..a68e6f1d5fa5d002215e0fe2335ead8e27ec9476 GIT binary patch literal 1437 zcmV;O1!DS%P)FG~TPo=%{wk-f~ ziNeP+0LjV8CMYSJCjbCo!isH(Q#DfG-{1Q4|JN-5I*8Z+LyrJXq5xyj8eN~8I~!Xg z5Q-iEXgy*oDk@DK4RaX)Vq#)?dV0~((c0SDKtMosb#nk!td$@D!^6YJFaTGE&l+8z zt1AG!w!_?EI!a1P`S1B%U0pha)uTKZVk8a#WYRQ<-Z3#T4LM@~XWPla&SF1c0A$L9 zpyU8y!&g^VJ|7hfHeQ;Vn!UZfq#gjPSrg3d`IXynv+1by}&vkWmU|?Wv6aY;c4Jaxrm^vee9ROJ(50N(+6k44C zUe5qVl>k7EG=U1m0CkAAv?l+EipDXVkHr@%G+ha1&p{&=Dltz|J#JqRtX0@#pMP zHe|~N9L|WGzYi+#&((S}XuKgk(2k+wqp`v(Nt+!<_SW0N6)w+>p~DR(_4)l~T%N>^ zr@I$4XenyC5iZt&lFI}dR5N7o*4@n!Cm}YM;it1CCn(SmB=7O}%?~8W5-959>{C-y zw-zf(EHEV!Y zu(J1Z0006=Nkl(s>E-SUq1TqKcQH1`j91V`sjsQ`1rz_OEoeC;6g|g#?Ii3aTFmg zkRfhdtrb;gA@1OzdxO&j;7f>hSb#a02ZU)8;tT2GPB%X?=`-S5wn%B3DS&7~^!W2E z;2%9gq9IdU{nTck`1tL+lr*^jNC=KkaP$Em$AowsLO?F=ed@2j$ynB0_u@Q`s16^#v#`(F1@>8g*UmR;uhPcnLqiH!sz+LIJJLE_hzgdXajT*i_ zy9k&n#io!gVQlxqBl&nn+fxm4iz#mua;1!EcyeB4#O*ycdv)F~5LBE7L7t?=Rc6jF zkGLUCruEPN4K#&T6Y{0?TDxiJYs5W${^Fsm1ZY^xtu;Vaif4(BpZp!mgj+_YVq7-= zbbPhdhT7+UP^(#QU+YCE_Q1uyiC?IlDOiTeq3YMB_GnW;?S6+{OP8Pl73bdE|DD?1 r_PZzUL94djxP9j00000NkvXXu0mjfz5|lc literal 0 HcmV?d00001 diff --git a/data/countries/th.png b/data/countries/th.png new file mode 100644 index 0000000000000000000000000000000000000000..5c3255614526372f3f01701a3e1df9e720288c35 GIT binary patch literal 360 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 Z0RU)>C?r1L*O&kR002ovPDHLkV1fi?5>x;H literal 0 HcmV?d00001 diff --git a/data/encoding.conf b/data/encoding.conf new file mode 100644 index 0000000..6d39e6d --- /dev/null +++ b/data/encoding.conf @@ -0,0 +1,81 @@ +#Fallback encoding when in dvb-text no encoding table is given +#Countycode ISO8859-X or ISO6937 +ara ISO8859-6 +tur ISO8859-9 +gre ISO8859-7 +ell ISO8859-7 +pol ISO8859-2 +rus ISO8859-5 +bul ISO8859-5 +tha ISO8859-11 +cze ISO6937 +ces ISO6937 +slo ISO6937 +slk ISO6937 +#Sorry for that.. in DVB Spec this is the default behavior +#when no other encoding is given in dvb-texts.. +#but this breaks too much providers yet.. +#so our default is ISO8859-1 without two char byte encoding +#So all transponders which needs this must be listed here +#TSID ONID +0x447 0x1 # Astra 19.2°E 12.304 H - UPC Direct +0x427 0x1 # Astra 19.2°E 10.920 H - UPC Direct +0x44b 0x1 # Astra 19.2°E 12.382 H - UPC Direct +0x4ff 0x1 # Astra 19.2°E 11.992 H - UPC Direct +0x407 0x1 # Astra 19.2°E 11.671 H - UPC Direct +0x436 0x1 # Astra 19.2°E 11.973 V - MTV Networks Europe +0x42a 0x1 # Astra 19.2°E 11.739 V - MTV Networks Europe +0xc23 0x3 # Astra 23.5°E 10.803 H - CS Link / SkyLink +0xc85 0x3 # Astra 23.5°E 11.797 H - CS Link / SkyLink +0xc89 0x3 # Astra 23.5°E 11.876 H - CS Link / SkyLink +0xc8f 0x3 # Astra 23.5°E 11.992 H - CS Link / SkyLink +0xc93 0x3 # Astra 23.5°E 12.070 H - CS Link / SkyLink +0xc95 0x3 # Astra 23.5°E 12.109 H - SkyLink +0xc9a 0x3 # Astra 23.5°E 12.207 V - SkyLink +0xbc6 0x3 # Astra 23.5°E 12.525 V - CS Link / SkyLink +0xbc7 0x3 # Astra 23.5°E 12.565 H - SkyLink +200 318 #Hotbird Eutelsat (Eurosport) +300 318 #Hotbird Eutelsat (Eurosport, Animal Pl.HD) +400 318 #Hotbird 13.0 Cyfra+ +700 318 #Hotbird 13.0 Cyfrowy Polsat +1000 318 #Hotbird 13.0 Grupa ITI +1100 318 #Hotbird 13.0 Cyfra+ +1500 318 #Hotbird 13.0 Cyfra+ +1600 318 #Hotbird 13.0 Cyfra+ +2800 318 #Hotbird 13.0 MTV Networks (Comedy Central) +7400 113 #Hotbird 13.0 Cyfrowy Polsat +7800 113 #Hotbird 13.0 Cyfrowy Polsat +7900 113 #Hotbird 13.0 Cyfrowy Polsat +8100 113 #Hotbird 13.0 Universal (Cyfra+) +8100 318 #Hotbird 13.0 Eutelsat (Universal) +11000 318 #Hotbird 13.0 Cyfra+ +11400 318 #Hotbird 13.0 Cyfra+ +11600 318 #Hotbird 13.0 BBC HD, ITI +11700 318 #Hotbird 13.0 Eurosport2 +11900 318 #Hotbird 13.0 Cyfra+ +12200 318 #Hotbird 13.0 Disney Channel Polska and other +12800 318 #Hotbird 13.0 Viacom ... MTV / VH1 Polska +13000 318 #Hotbird 13.0 BBC Polska and other +13100 318 #Hotbird 13.0 Crime and Investigation +13200 113 #Hotbird 13.0 Cyfrowy Polsat +15700 318 #Hotbird 13.0 Belgium Satellite Services - TV DISCO +#Fallback encoding table for single transponders +#ISO6937 also enables two byte char encoding +#TSID ONID ISO8859-X +20600 126 ISO8859-9 # Digital Platform 7°E +20700 126 ISO8859-9 # Digital Platform 7°E +20800 126 ISO8859-9 # Digital Platform 7°E +20900 126 ISO8859-9 # Digital Platform 7°E +21000 126 ISO8859-9 # Digital Platform 7°E +21100 126 ISO8859-9 # Digital Platform 7°E +41200 126 ISO8859-9 # Digital Platform 7°E +50100 126 ISO8859-9 # Digital Platform 7°E +50200 126 ISO8859-9 # Digital Platform 7°E +50300 126 ISO8859-9 # Digital Platform 7°E +50400 126 ISO8859-9 # Digital Platform 7°E +50500 126 ISO8859-9 # Digital Platform 7°E +50600 126 ISO8859-9 # Digital Platform 7°E +50700 126 ISO8859-9 # Digital Platform 7°E +50800 126 ISO8859-9 # Digital Platform 7°E +50900 126 ISO8859-9 # Digital Platform 7°E +51000 126 ISO8859-9 # Digital Platform 7°E diff --git a/data/extensions/Makefile.am b/data/extensions/Makefile.am new file mode 100644 index 0000000..c142de3 --- /dev/null +++ b/data/extensions/Makefile.am @@ -0,0 +1,7 @@ +installdir = $(pkgdatadir)/extensions + +dist_install_DATA = \ + directory.png \ + movie.png \ + music.png \ + picture.png diff --git a/data/extensions/directory.png b/data/extensions/directory.png new file mode 100644 index 0000000000000000000000000000000000000000..aad23c4cebed5b98950ab23cf5426e47cd94201b GIT binary patch literal 880 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc3?z4jzqJQaEa{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+AuIMHU#*DxUOgvy1icK_x04<8%%%v zI0Mux%*G(j#h@q4;H1kS$;ZIK$nfJw=a0`dKVFyoc%1v=$IKr;HvhPt_U%^ck0-f5 z-jw|KSaWBi`j@w*KYncacCYQnkKW8M!Gjx;zCNw}`K{&0k6GWo&AGPO>BqOJ?~eo< zC@_3@y6fAw&ZZ2hAKy1$JDmCUcI~y*8ei@fKED$7?R?nVQ$8P`O?!1U{@a%aZx6XY z-fs2m>cpp~Gwz)&`23>v$M-V}YXxUF=%$3oggA5lxRv_ga_{qVL9Y*3K0O=z_EOsK z-`y{6<$Zs;@yolt?;iC1{=M+)hq_a%JimS1xU*04*~N-o%iZ4GE&2F-{^ga*U#?}| z-EMVzhsE@KhE0=<-`|S;{iW{5kFM9JLT(*!y>lS=+?JHDS7UpmE#=<1^51XEzP)Jt{k#A7-LzZl4Hwi(ZJ#K!cdGR3 zTPg4ECf(lb`29*!w7bxcALp*EGDz`c$o66Q@vRLQ+B!l^B|xg7B*-uL|G)wU3s&!R zpj%#fx;TbNOif;KoJpd9W7DQh8#fnk-ozy7z#zQkEN97Ouf)`++a^zZ$iT_WdQ)f0 z=cQ9+Q0x z{q*tU>RfJKG69aVv4VAVb%F+64VLo^mpDXtcz8tIusgV*L-dia*+(w5WjShUwaXtQ zvH8tVSlrc_xi!9Gt(Lfo%>l+k0ZFlkPqOkVR$M4N%*sDyy6(L^z->i5?^PazgJi@{q|E+5d32G*pPW^i2;u*V$7E23LpE-X`t(@K6o%uzz zt2h4s{_S(bwC5TToztdHQCCwdub+^z`nPf1>gaXxOU!v!JbC~n%@}=vyZePh;{I+B2VrH4V`HQD&wfvZN^8fz5dv;#= z=omlq|Nn1_Ij0n}pQsg|HO{`T=i6MAlc*3fLsM5@E$*nkk-m|EPS}D!E$y`-YyR&% zc(i!qx6fbR7w`C4x9QuHhd14({O+05`{4dB8RA#W6%; zYVrzq#!m^87$Z-ZUOvhbY7k|@g67YY%-vdZTy^Xir1<&2zJ zof=X*Z%JSMwQBh(?qiWpA{tm$cZ+V#y>sWRQj^F{CZ5Q{ya#V>-xv08Mjx3_k_TH0Zi2??&fBJGon z=kMFPGRjPRzmuoo4Ntb9MMVx9bv#Ye?gd$|bP}AfVEL4}X%l-G_A}@k7xOG%HATrI zAkb^7^Og?7upM1<=bpad7b>Z;LPt9C`I+fysalf9)}_gu(BKhz(l>3|w9kQ?zMh)E z^Dy;cNb(96uC9|E-PbLvG?u=Y^=ta6u1^*n4NON|Vr(ML#W*`ebVOTPI!X(9%@SgL odMAmGv-PWomdKI;Vst0Mxeb{r~^~ literal 0 HcmV?d00001 diff --git a/data/extensions/music.png b/data/extensions/music.png new file mode 100644 index 0000000000000000000000000000000000000000..9e15fc22cd1602ef1526f53c1e2da060e8986edc GIT binary patch literal 822 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;YR|DNig)WpGT%PfAtr%uP&B4N6T+sVqF1YQw<5SRUXL;>yUz=+))Lz{J3#!gJ!) zF(xi1=Tdvy8e2s-McW#isOga^-b#utiX3w6GB%PW8>z=HScYx+E(G)>gCh! zZIf>)Y$zPl8)~0##iPvQ+v^)YEt*G(yLnrKh^Yvh6kGk~Iu>CTPC3rx1&O-h+8W{N zt~E}fQ$m6#1^Z6-3Yr`k+TkBRD~?-3_G71@0>F;BPNAOnoBTpFcz&TkhBmFn;z!d=&c;2 z)V!}TeSWfCja}OGRR12o3vbTb)!4?aj*RLJ3+VQ1JKUVTINg7iuWO5I$@;?FMOpe0 z`sP`t(@ss$h|#dFvKBKHRq|0{=4WQ+WtOy(;8o?ZNHI|gP&7?43GWMTKh*l<)8nkg z8IJXi23h)snFifQJDl1bJ=#5@rbq00x?}F8nQLyWvdl17aFvgk86G$>FkxZBl56u_ znp}VpG(Es;8IY?#~T^vI+&L^)p$S9#P;Q?pY!-PX>2iIuK zT70a*wdth0dHm^VqTR9+_1YL0%0;Nmc*+(0bFI*Z9a@Jrx!pU#*4?tp)VX)3uo$QC zG1N>hI*If0<*CIBfZL=*x89%~Q-LIV^wleaFXt zFMiHm_4MDoquuN=Ld=ynmL9&l_SDq7fBu{8__^u9x8)Zf6&(J2>~$A^+?Lr}Pffbh zVo|(l_J(~74)er2R?mFYQhe$qi{Hw!?Zwe`F-fP>&Rm+a@@W6^T^Dw~nlfw8B!^{I z?49SD*EPqS`IXS0HSgr}l)dS?lXY4y*L7~6tlX>M+iiT{?3^_x&vS(3`1o=eFd{yV7?sPGaVp9VeeH{Pv({ z!>+J(UTK>a`!BrEK5Lc9)NQ>7UO3IX;9Q{;yDqi!=vmthOOls38YRx!apDSJ5h${R zy?>eksj`wFzu^A^0e~^R5*Wpd=AJH&Arj%KXRe1Gau8^E7%8S~xJ9K&!Z75el5A$s zQt|5dd&}?L=X@~re#{%o|1%>syn{@nN_Xbj&U?A>xZ)Jmt+$q)OUZd9SQEo=-zc5G zU{U1p&P_Vqi!!D$tUEh(_2jhM_ww?-riotDI`Da4qM&4eYQnatwW0h6suK(@EW3P5 z(E9rB4{{7LAD^$C*7vyN#f6tVReR$Z7H&1wx^w0I&i3iN=@WQ2y%9R*(iFww^;_qX zwt-xFG0(y)pDtfN-;=15QPg5EW#ONd=eOJTUt9lTPIwe_t8Q^wIwD{L1{KkDo7H ze5ql0^@RDIyzTejn=83*Uwve5#aglX&J#US7;~q6V`%$uUw`svgCM@0vo``Gk-^i| K&t;ucLK6VreEaYK literal 0 HcmV?d00001 diff --git a/data/fonts/DroidSans-Bold.ttf b/data/fonts/DroidSans-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..6eea48613c828d01cb575e072a133e17a22d8499 GIT binary patch literal 154792 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 J)z+3X{|C#2DAE7` literal 0 HcmV?d00001 diff --git a/data/fonts/Makefile.am b/data/fonts/Makefile.am new file mode 100644 index 0000000..84cc6db --- /dev/null +++ b/data/fonts/Makefile.am @@ -0,0 +1,8 @@ +installdir = $(datadir)/fonts + +dist_install_DATA = \ + ae_AlMateen.ttf \ + andale.ttf \ + lcd.ttf \ + md_khmurabi_10.ttf \ + nmsbd.ttf diff --git a/data/fonts/ae_AlMateen.license b/data/fonts/ae_AlMateen.license new file mode 100644 index 0000000..024d0d5 --- /dev/null +++ b/data/fonts/ae_AlMateen.license @@ -0,0 +1,2 @@ +This font is merged from the http://www.arabeyes.org/ project, and licensed as "GPL", +into it were merged the "DroidSans-Bold" glyphs to render Thai characters as well. diff --git a/data/fonts/ae_AlMateen.ttf b/data/fonts/ae_AlMateen.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4ee65662389a2f4ca8b7e3dcaca4fc38057ca21b GIT binary patch literal 124844 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 literal 0 HcmV?d00001 diff --git a/data/fonts/andale.ttf b/data/fonts/andale.ttf new file mode 100644 index 0000000000000000000000000000000000000000..db308dfe2f029e84a6be4cf5458c6a7e295933f4 GIT binary patch literal 30672 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

CM~^-J#FJZ| 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 literal 0 HcmV?d00001 diff --git a/data/fonts/nmsbd.ttf b/data/fonts/nmsbd.ttf new file mode 100644 index 0000000000000000000000000000000000000000..73b27b330ed53778329cbe045999ad80f991560f GIT binary patch literal 358608 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

ZiwPzn5kQgA4- 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 z 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:0:ESCAPE: +>:1:ESCAPE: +?:1:STOP: +?:01: : +?:001:0x3a: +?:0000:ESCAPE: +?:0001:.: +@:0:ESCAPE: +@:1:H: +A:001:r: +A:010: : +A:100:l: +A:110:n: +A:0000:m: +A:0111:g: +A:1111:d: +A:00010:w: +A:01100:T: +A:01101:c: +A:10101:t: +A:10110:f: +A:10111:i: +A:11100:s: +A:000110:u: +A:000111:STOP: +A:101001:R: +A:111010:b: +A:1010001:v: +A:1110110:p: +A:10100000:S: +A:11101110:M: +A:101000011:P: +A:111011111:.: +A:10100001000:e: +A:10100001001:B: +A:10100001010:1: +A:11101111011:-: +A:101000010110:k: +A:101000010111:h: +A:111011110000:a: +A:111011110100:y: +A:111011110101:*: +A:1110111100010:x: +A:1110111100011:': +A:1110111100100:N: +A:1110111100110:2: +A:11101111001010:0x3a: +A:11101111001111:z: +A:111011110010110:L: +A:111011110010111:F: +A:111011110011100:D: +A:1110111100111010:ESCAPE: +A:1110111100111011:q: +B:00:C: +B:01:B: +B:101:r: +B:1001:i: +B:1100:o: +B:1101:u: +B:1110:a: +B:1111:e: +B:10001:l: +B:1000000:STOP: +B:1000010:y: +B:10000010:O: +B:10000110:3: +B:100000111:A: +B:100001110:S: +B:1000001101:0x3a: +B:10000011000:.: +B:10000011001:w: +B:10000111101:h: +B:10000111110:*: +B:10000111111: : +B:100001111001:R: +B:1000011110000:': +B:10000111100011:T: +B:100001111000100:ESCAPE: +B:100001111000101:4: +C:00:o: +C:01: : +C:100:l: +C:110:h: +C:1010:r: +C:1110:a: +C:10110:i: +C:10111:e: +C:111100:u: +C:111101:B: +C:1111100:y: +C:1111110:!: +C:11111011:.: +C:111110100:w: +C:111111100:STOP: +C:111111110:S: +C:111111111:T: +C:1111101011:2: +C:1111111011:I: +C:11111010100:4: +C:11111010101:*: +C:11111110101:D: +C:111111101000:U: +C:1111111010010:': +C:11111110100110:n: +C:111111101001110:z: +C:11111110100111100:O: +C:11111110100111101:E: +C:11111110100111110:A: +C:111111101001111110:ESCAPE: +C:111111101001111111:s: +D:01:o: +D:10:a: +D:000:r: +D:110:e: +D:111:i: +D:00100:t: +D:00111:u: +D:001011: : +D:0010101:J: +D:0011000:y: +D:0011010:STOP: +D:0011011:I: +D:00110011:0x3a: +D:001010001:*: +D:001010010:-: +D:001010011:&: +D:001100100:': +D:0010100000:A: +D:0010100001:h: +D:00110010101:N: +D:00110010110:V: +D:001100101110:D: +D:001100101111:w: +D:0011001010000:O: +D:0011001010001:E: +D:0011001010011:d: +D:00110010100100:ESCAPE: +D:00110010100101:T: +E:00:m: +E:011:v: +E:101:n: +E:111:a: +E:0100:E: +E:1000:STOP: +E:1101:x: +E:10011:d: +E:11001:l: +E:010100:4: +E:010101:y: +E:010110:u: +E:100100:r: +E:110000:i: +E:0101111:s: +E:1001010:F: +E:1100010:X: +E:10010110:R: +E:11000111: : +E:010111010:g: +E:100101111:0x3a: +E:110001100:T: +E:110001101:': +E:0101110001:c: +E:0101110011:q: +E:0101110110:e: +E:0101110111:C: +E:1001011100:p: +E:01011100000:-: +E:01011100101:Z: +E:10010111011:t: +E:010111000010:S: +E:010111000011:.: +E:100101110101:W: +E:0101110010000:!: +E:1001011101000:o: +E:01011100100010:f: +E:01011100100011:U: +E:01011100100100:N: +E:01011100100101:M: +E:01011100100110:L: +E:01011100100111:A: +E:10010111010011:D: +E:100101110100100:ESCAPE: +E:100101110100101:w: +F:00:i: +F:10:a: +F:011:r: +F:110:u: +F:111:o: +F:0100:e: +F:01011:l: +F:0101000:A: +F:0101010:O: +F:01010010: : +F:010100110:h: +F:010100111:t: +F:010101101:f: +F:010101111:L: +F:0101011001:STOP: +F:01010111000:j: +F:01010111001:I: +F:01010111010:.: +F:01010111011:1: +F:010101100000:M: +F:010101100010:*: +F:010101100011:K: +F:0101011000010:y: +F:01010110000111:H: +F:010101100001100:ESCAPE: +F:010101100001101:!: +G:10:r: +G:001:M: +G:010:a: +G:011:o: +G:110:i: +G:111:e: +G:00001:u: +G:00010:X: +G:000001:h: +G:000111:l: +G:0000001:y: +G:0001100:w: +G:00000000:0x3a: +G:00011011:C: +G:000000011:STOP: +G:000110100:-: +G:0001101010:P: +G:0001101011: : +G:00000001000:': +G:00000001010:A: +G:000000010010:U: +G:000000010110:T: +G:000000010111:4: +G:0000000100110:ESCAPE: +G:0000000100111:Y: +H:0:o: +H:100:a: +H:101:i: +H:110:e: +H:1110:u: +H:11110:R: +H:111110:A: +H:1111110:.: +H:111111101:y: +H:111111110:S: +H:1111111110:E: +H:1111111111:r: +H:11111110000:STOP: +H:11111110010:L: +H:11111110011:M: +H:111111100011:w: +H:1111111000101:D: +H:11111110001000:ESCAPE: +H:11111110001001:I: +I:0:T: +I:100:s: +I:101:n: +I:1101:t: +I:11001: : +I:11101:': +I:11111:r: +I:110000:I: +I:110001:STOP: +I:111001:m: +I:1110000:d: +I:1110001:N: +I:1111001:z: +I:1111010:.: +I:11110000:a: +I:11110001:Y: +I:111101100:S: +I:111101110:c: +I:11110110101:D: +I:11110110110:f: +I:11110111100:l: +I:11110111111:y: +I:111101101000:V: +I:111101101110:o: +I:111101111011:F: +I:1111011010010:,: +I:1111011010011:A: +I:1111011011110:O: +I:1111011110101:g: +I:1111011111000:C: +I:1111011111001:0x3a: +I:1111011111011:v: +I:11110110111110:p: +I:11110110111111:E: +I:11110111101000:B: +I:11110111110100:k: +I:11110111110101:b: +I:1111011110100100:ESCAPE: +I:1111011110100101:R: +I:1111011110100110:L: +I:1111011110100111:G: +J:00:a: +J:01:u: +J:11:e: +J:101:o: +J:1001:i: +J:10000: : +J:100010:K: +J:1000111:STOP: +J:100011001:s: +J:100011010:F: +J:1000110000:V: +J:1000110001:': +J:1000110111:f: +J:10001101101:G: +J:100011011000:ESCAPE: +J:100011011001:D: +K:01:i: +K:11:y: +K:001:e: +K:101: : +K:0000:a: +K:1000:o: +K:00010:STOP: +K:00011:r: +K:100101:t: +K:100110:n: +K:100111:S: +K:10010011:G: +K:100100000:-: +K:100100011:O: +K:100100100:h: +K:100100101:w: +K:1001000010:1: +K:1001000011:': +K:10010001011:u: +K:100100010000:T: +K:100100010001:N: +K:100100010010:0x3a: +K:100100010011:.: +K:100100010100:,: +K:1001000101010:ESCAPE: +K:1001000101011:l: +L:00:a: +L:10:o: +L:11:i: +L:010:e: +L:0111:u: +L:01101:K: +L:0110000:l: +L:0110010:A: +L:0110011: : +L:01100011:y: +L:0110001000:L: +L:0110001001:I: +L:01100010100:C: +L:01100010101:.: +L:01100010111:STOP: +L:011000101101:': +L:0110001011000:E: +L:01100010110010:ESCAPE: +L:01100010110011:Y: +M:01:a: +M:10:o: +M:000:e: +M:111:i: +M:0010:T: +M:1100:y: +M:1101:u: +M:00110:STOP: +M:001111:c: +M:00111001:r: +M:00111010:E: +M:001110111:F: +M:0011100001:Z: +M:0011100011: : +M:0011101100:1: +M:0011101101:I: +M:00111000001:h: +M:00111000100:C: +M:001110000001:Q: +M:001110001010:K: +M:0011100010110:P: +M:00111000000000:0x3a: +M:00111000000001:.: +M:00111000000010:': +M:00111000101110:M: +M:001110000000110:ESCAPE: +M:001110000000111:w: +M:001110001011110:S: +M:001110001011111:R: +N:1:e: +N:00:o: +N:011:i: +N:0101:a: +N:01001:u: +N:010000:C: +N:01000100:E: +N:01000110:F: +N:010001110:B: +N:010001111:H: +N:0100010110:Y: +N:01000101000:G: +N:01000101001:': +N:01000101011:I: +N:01000101110:A: +N:010001010100:M: +N:010001011110: : +N:010001011111:STOP: +N:0100010101010:T: +N:01000101010110:.: +N:010001010101110:ESCAPE: +N:010001010101111:Z: +O:000:': +O:010:f: +O:110:u: +O:111:n: +O:0010:M: +O:0011:l: +O:1001:m: +O:01101:r: +O:01110:d: +O:10000:p: +O:10100:h: +O:10110:STOP: +O:011001:S: +O:011110:z: +O:011111:b: +O:100011:v: +O:101010:w: +O:101011:U: +O:1011100:T: +O:1011101:O: +O:1011110:K: +O:01100001:C: +O:01100010:x: +O:01100011:.: +O:10001001:t: +O:10001011: : +O:10111110:s: +O:10111111:N: +O:011000001:g: +O:100010000:-: +O:100010101:a: +O:1000100010:i: +O:1000100011:e: +O:1000101001:o: +O:01100000000:A: +O:01100000001:j: +O:01100000010:c: +O:10001010000:2: +O:011000000111:R: +O:100010100010:P: +O:100010100011:0x3a: +O:0110000001100:E: +O:01100000011010:ESCAPE: +O:01100000011011:L: +P:01:r: +P:10:l: +P:000:e: +P:001:a: +P:111:o: +P:1101:i: +P:110000:D: +P:110001:u: +P:110011:h: +P:11001000: : +P:11001010:2: +P:110010010:H: +P:110010011:M: +P:110010110:S: +P:11001011100:0x3a: +P:11001011101:*: +P:110010111101:s: +P:1100101111001:I: +P:1100101111100:STOP: +P:1100101111101:G: +P:1100101111110:': +P:11001011111110:y: +P:110010111100000:Y: +P:110010111100001:L: +P:110010111100010:C: +P:110010111100011:ESCAPE: +P:110010111111110:O: +P:110010111111111:.: +Q:1:u: +Q:000:I: +Q:001:STOP: +Q:010:V: +Q:0111: : +Q:01101:C: +Q:011000:ESCAPE: +Q:011001:': +R:00:a: +R:01:o: +R:11:e: +R:100:i: +R:1011:u: +R:10101:E: +R:101000:D: +R:1010011:STOP: +R:10100101:h: +R:1010010000:I: +R:1010010010:y: +R:1010010011:n: +R:101001000110: : +R:1010010001000:': +R:1010010001011:S: +R:1010010001110:N: +R:10100100010010:B: +R:10100100010011:.: +R:10100100010100:&: +R:10100100011110:T: +R:10100100011111:1: +R:101001000101010:ESCAPE: +R:101001000101011:C: +S:001:o: +S:010:p: +S:011:u: +S:110:h: +S:111:t: +S:0001:a: +S:1001:e: +S:1011:c: +S:00000:n: +S:10001:i: +S:10101:k: +S:000011:w: +S:101000:m: +S:0000101:A: +S:1000010:l: +S:1010010:q: +S:1010011:M: +S:00001000:2: +S:00001001:P: +S:10000000:O: +S:10000010:I: +S:10000011: : +S:10000111:STOP: +S:100000010:y: +S:100001100:E: +S:1000000111:?: +S:1000011011:H: +S:10000001100:B: +S:10000110100:g: +S:100000011011:r: +S:100001101010:*: +S:1000011010110:3: +S:1000011010111:.: +S:10000001101000:5: +S:10000001101010:0x3a: +S:10000001101011:1: +S:100000011010010:C: +S:1000000110100110:ESCAPE: +S:1000000110100111:Y: +T:0:h: +T:101:o: +T:111:V: +T:1000:e: +T:1001:r: +T:11000:a: +T:11010:w: +T:110011:i: +T:1101101:O: +T:1101111:H: +T:11001001:y: +T:11001010:M: +T:11011000:.: +T:11011100:u: +T:11011101:W: +T:110010001:P: +T:110010110:0x3a: +T:110010111:4: +T:110110011:I: +T:1101100100: : +T:1101100101:STOP: +T:11001000010:X: +T:11001000011:s: +T:110010000000:T: +T:110010000001:S: +T:110010000010:B: +T:1100100000110:U: +T:11001000001110:A: +T:1100100000111100:C: +T:1100100000111101:*: +T:1100100000111111:N: +T:11001000001111100:ESCAPE: +T:11001000001111101:Y: +U:0:n: +U:10:p: +U:1101:K: +U:1111:l: +U:11000:R: +U:11100:S: +U:110011:E: +U:111011:s: +U:1100101:g: +U:1110101:T: +U:11001001: : +U:110010000:-: +U:110010001:r: +U:111010000:2: +U:111010001:m: +U:111010011:STOP: +U:1110100100:.: +U:11101001010:c: +U:111010010110:k: +U:11101001011100:ESCAPE: +U:11101001011101:z: +U:11101001011110:t: +U:11101001011111:B: +V:1: : +V:000:0x3a: +V:011:i: +V:0010:e: +V:0011:a: +V:0100:3: +V:010101:C: +V:010111:STOP: +V:0101000:': +V:0101001:4: +V:0101101:o: +V:01011001:I: +V:0101100000:s: +V:0101100001:D: +V:0101100010:.: +V:01011000110:8: +V:0101100011101:u: +V:0101100011110:r: +V:0101100011111:B: +V:01011000111000:ESCAPE: +V:01011000111001:E: +W:01:o: +W:11:e: +W:001:h: +W:100:a: +W:101:i: +W:00000:.: +W:00010:O: +W:00011:r: +W:000011:y: +W:0000100:u: +W:00001010:STOP: +W:000010111:A: +W:00001011001:Y: +W:00001011010:T: +W:00001011011: : +W:000010110000:I: +W:0000101100010:ESCAPE: +W:0000101100011:l: +X:00:STOP: +X:10: : +X:11:t: +X:010:T: +X:0111:c: +X:01101:m: +X:011001:U: +X:01100000:a: +X:01100001:X: +X:01100010:-: +X:011000110:x: +X:0110001111:9: +X:01100011100:ESCAPE: +X:01100011101:i: +Y:1:o: +Y:01:e: +Y:000:u: +Y:0011: : +Y:00100:v: +Y:001010:a: +Y:00101110:P: +Y:00101111:': +Y:001011000:n: +Y:001011011:r: +Y:0010110010:D: +Y:00101100110:w: +Y:00101100111:s: +Y:00101101000:R: +Y:00101101001:L: +Y:00101101010:STOP: +Y:001011010110:C: +Y:0010110101110:ESCAPE: +Y:0010110101111:N: +Z:1:o: +Z:00:a: +Z:010:i: +Z:01100:O: +Z:01101:u: +Z:01110:e: +Z:011110: : +Z:0111111:STOP: +Z:01111101:0x3a: +Z:011111000:ESCAPE: +Z:011111001:-: +[:0:ESCAPE: +[:1:ESCAPE: +\:0:ESCAPE: +\:1:x: +]:0:ESCAPE: +]:1:ESCAPE: +^:0:ESCAPE: +^:1:ESCAPE: +_:0:ESCAPE: +_:1:ESCAPE: +`:0:ESCAPE: +`:1:ESCAPE: +a:001:r: +a:011:t: +a:100:l: +a:110:n: +a:0001:m: +a:0100:c: +a:1010:s: +a:1110:y: +a:10110: : +a:10111:d: +a:11110:i: +a:11111:k: +a:000010:b: +a:000011:STOP: +a:010110:p: +a:010111:g: +a:0000000:e: +a:0000001:': +a:0000011:w: +a:0101001:u: +a:0101010:z: +a:0101011:v: +a:00000101:f: +a:01010001:h: +a:000001001:0x3a: +a:0000010000:!: +a:0101000000:o: +a:0101000001:x: +a:00000100010:-: +a:00000100011:a: +a:01010000101:.: +a:01010000110:N: +a:01010000111:,: +a:010100001000:q: +a:0101000010010:j: +a:01010000100111:?: +a:010100001001101:J: +a:0101000010011000:ESCAPE: +a:0101000010011001:U: +b:000:r: +b:001:o: +b:010:e: +b:011:a: +b:100:i: +b:1011:u: +b:1100:y: +b:1101:l: +b:1111: : +b:10101:s: +b:11100:b: +b:11101:STOP: +b:101000:h: +b:1010010:3: +b:10100111:': +b:1010011001:t: +b:1010011010:j: +b:10100110000:n: +b:10100110001:d: +b:10100110111:w: +b:101001101101:m: +b:1010011011001:.: +b:10100110110000:ESCAPE: +b:10100110110001:0x3a: +c:00:k: +c:010:o: +c:100:h: +c:110:t: +c:111:e: +c:0111:r: +c:10100: : +c:10110:i: +c:10111:a: +c:011000:l: +c:011001:y: +c:011010:s: +c:011011:STOP: +c:1010100:c: +c:1010111:u: +c:10101010:0x3a: +c:10101011:P: +c:101011001:D: +c:1010110100:G: +c:1010110110:b: +c:10101100000:L: +c:10101100001:K: +c:10101100011:A: +c:10101101010:q: +c:10101101110:.: +c:10101101111:C: +c:101011000100:n: +c:101011000101:': +c:1010110101100:B: +c:1010110101101:I: +c:10101101011101:f: +c:10101101011110:8: +c:101011010111000:M: +c:101011010111001:ESCAPE: +c:101011010111111:F: +c:1010110101111100:w: +c:1010110101111101:Q: +d:11: : +d:001:e: +d:100:STOP: +d:101:a: +d:0001:y: +d:0100:i: +d:0110:s: +d:00000:o: +d:01010:d: +d:000011:u: +d:010110:r: +d:010111:l: +d:011101:v: +d:011110:g: +d:0000100:': +d:0111111:.: +d:00001010:0x3a: +d:00001011:h: +d:01110000:c: +d:01110010:n: +d:01110011:w: +d:011100010:?: +d:011111000:!: +d:011111001:-: +d:011111010:f: +d:0111000111:m: +d:0111110110:,: +d:01111101110:t: +d:01111101111:b: +d:011100011001:): +d:011100011010:/: +d:011100011011:k: +d:0111000110001:p: +d:01110001100001:z: +d:011100011000000:ESCAPE: +d:011100011000001:4: +e:01: : +e:000:s: +e:101:r: +e:0010:t: +e:1001:n: +e:1100:STOP: +e:1110:a: +e:1111:w: +e:10000:l: +e:11011:e: +e:001110:m: +e:100010:c: +e:100011:d: +e:0011010:i: +e:0011011:p: +e:0011110:b: +e:1101000:v: +e:1101011:y: +e:00110000:g: +e:00110001:f: +e:00110010:x: +e:00111110:k: +e:00111111:0x3a: +e:11010011:o: +e:11010100:': +e:001100111:h: +e:110100101:.: +e:0011001100:P: +e:0011001101:B: +e:1101001000:,: +e:1101010100:V: +e:1101010101:z: +e:1101010111:j: +e:11010010010:4: +e:11010010011:?: +e:11010101101:u: +e:110101011001:-: +e:1101010110001:!: +e:11010101100001:q: +e:110101011000001:G: +e:1101010110000000:ESCAPE: +e:1101010110000001:S: +f:0: : +f:101:o: +f:1001:t: +f:1100:a: +f:1101:i: +f:1111:e: +f:10000:.: +f:11100:r: +f:11101:f: +f:100010:STOP: +f:10001101:y: +f:10001111:u: +f:100011000:': +f:100011101:l: +f:1000110011:n: +f:1000111000:g: +f:10001100100:c: +f:10001110010:-: +f:100011001010:,: +f:100011001011:s: +f:100011100111:0x3a: +f:1000111001101:k: +f:10001110011000:ESCAPE: +f:10001110011001:b: +g:00:h: +g:10: : +g:010:STOP: +g:011:e: +g:1100:i: +g:11100:0x3a: +g:11101:r: +g:11111:a: +g:110100:s: +g:110111:l: +g:111101:u: +g:1101011:b: +g:1101100:g: +g:1101101:o: +g:1111001:n: +g:11010100:2: +g:11110000:!: +g:111100011:d: +g:1101010100:.: +g:1101010101:,: +g:1101010110:': +g:1101010111:t: +g:1111000101:y: +g:11110001000:w: +g:111100010011:m: +g:11110001001011:?: +g:111100010010000:p: +g:111100010010001:f: +g:111100010010010:@: +g:111100010010011:-: +g:111100010010101:;: +g:1111000100101000:ESCAPE: +g:1111000100101001:z: +h:0:e: +h:101:o: +h:1001:i: +h:1100:a: +h:1110: : +h:1111:t: +h:11010:r: +h:11011:STOP: +h:100000:b: +h:100001:u: +h:10001000:w: +h:10001001:d: +h:10001010:n: +h:10001011:y: +h:10001100:!: +h:10001101:l: +h:10001111:.: +h:100011100:': +h:1000111010:s: +h:10001110110:m: +h:100011101111:0x3a: +h:10001110111000:f: +h:10001110111001:?: +h:10001110111010:c: +h:1000111011101100:v: +h:1000111011101101:q: +h:1000111011101110:g: +h:100011101110111100:h: +h:100011101110111101:ESCAPE: +h:100011101110111110:,: +h:100011101110111111:*: +i:01:n: +i:000:c: +i:1001:o: +i:1010:l: +i:1100:g: +i:1101:s: +i:1110:t: +i:1111:e: +i:00101:a: +i:00110:v: +i:10000:r: +i:10001:d: +i:10110:m: +i:001000:p: +i:001110: : +i:101111:f: +i:0011110:z: +i:0011111:STOP: +i:1011100:b: +i:1011101:k: +i:00100101:-: +i:00100110:x: +i:001001001:': +i:001001111:q: +i:0010011100:u: +i:0010011101:i: +i:00100100001:h: +i:00100100010:0x3a: +i:00100100011:w: +i:0010010000001:,: +i:0010010000010:y: +i:0010010000011:/: +i:00100100000000:.: +i:001001000000010:ESCAPE: +i:001001000000011:j: +j:0:y: +j:11:o: +j:101:e: +j:1001:a: +j:10001:u: +j:100001:i: +j:1000000:STOP: +j:10000010:ESCAPE: +j:10000011: : +k:00: : +k:10:e: +k:010:i: +k:110:STOP: +k:0110:y: +k:0111:s: +k:1111:f: +k:111001:a: +k:111010:l: +k:1110001:0x3a: +k:1110110:k: +k:11100000:': +k:11101111:.: +k:111000011:w: +k:111011100:o: +k:1110000101:h: +k:11100001000:b: +k:11100001001:,: +k:11101110111:n: +k:111011101010:?: +k:111011101100:m: +k:111011101101:!: +k:1110111010010:u: +k:1110111010011:c: +k:1110111010110:d: +k:1110111010111:t: +k:11101110100001:j: +k:11101110100010:-: +k:111011101000000:p: +k:111011101000001:/: +k:111011101000111:S: +k:1110111010001100:ESCAPE: +k:1110111010001101:r: +l:01:e: +l:000:l: +l:101:a: +l:0011:y: +l:1000:STOP: +l:1001:d: +l:1100:o: +l:1110:i: +l:1111: : +l:00100:u: +l:11010:s: +l:001010:t: +l:001011:m: +l:1101101:k: +l:11011000:f: +l:11011100:b: +l:11011110:': +l:11011111:c: +l:110110011:v: +l:110111010:0x3a: +l:1101100101:.: +l:1101110110:w: +l:11011001000:z: +l:11011101111:p: +l:110110010010:h: +l:110110010011:*: +l:1101110111000:g: +l:1101110111001:,: +l:11011101110100:r: +l:11011101110101:n: +l:11011101110111:-: +l:110111011101100:!: +l:1101110111011011:?: +l:11011101110110101:C: +l:110111011101101000:ESCAPE: +l:110111011101101001:j: +m:10:e: +m:001:m: +m:011: : +m:111:a: +m:0000:i: +m:0001:STOP: +m:0100:y: +m:1101:p: +m:01010:b: +m:11000:o: +m:110010:n: +m:110011:s: +m:0101100:l: +m:0101110:f: +m:01011010:0x3a: +m:01011110:4: +m:010110110:h: +m:010111110:w: +m:0101101111:': +m:0101111110:r: +m:0101111111:u: +m:01011011101:.: +m:010110111001:k: +m:0101101110000:ESCAPE: +m:0101101110001:d: +n:000:i: +n:100:g: +n:101: : +n:110:d: +n:0011:a: +n:0100:s: +n:0110:e: +n:1110:STOP: +n:1111:t: +n:01110:c: +n:01111:n: +n:001010:y: +n:010100:': +n:010101:k: +n:010111:o: +n:0010000:r: +n:0010011:f: +n:0010110:u: +n:0010111:j: +n:00100010:v: +n:00100100:-: +n:00100101:.: +n:01011000:l: +n:01011010:x: +n:01011011:0x3a: +n:001000111:,: +n:010110011:m: +n:0010001100:!: +n:00100011010:z: +n:01011001001:?: +n:01011001010:h: +n:01011001011:b: +n:001000110110:B: +n:001000110111:*: +n:010110010000:w: +n:0101100100011:q: +n:01011001000101:p: +n:010110010001000:;: +n:0101100100010010:/: +n:0101100100010011:ESCAPE: +o:00:r: +o:110:n: +o:0100:f: +o:0101: : +o:0110:w: +o:1000:o: +o:1011:u: +o:01111:t: +o:10010:c: +o:10100:p: +o:10101:d: +o:11100:m: +o:11110:l: +o:011100:a: +o:011101:b: +o:100110:y: +o:100111:STOP: +o:111010:s: +o:111011:k: +o:1111101:v: +o:1111110:g: +o:11111111:i: +o:111110001:h: +o:111110010:!: +o:111111100:e: +o:111111101:j: +o:1111100110:': +o:11111000001:?: +o:11111000010:0x3a: +o:11111001110:z: +o:11111001111:x: +o:111110000000:J: +o:111110000110:.: +o:111110000111:-: +o:11111000000100:4: +o:11111000000110:,: +o:11111000000111:G: +o:111110000001011:): +o:1111100000010100:S: +o:11111000000101010:D: +o:111110000001010110:ESCAPE: +o:111110000001010111:q: +p:00:e: +p:010:STOP: +p:100:i: +p:110:o: +p:0110:s: +p:1010: : +p:1110:p: +p:01110:l: +p:01111:r: +p:10110:h: +p:11110:a: +p:101110:t: +p:101111:': +p:1111100:d: +p:1111101:m: +p:1111110:y: +p:111111101:0x3a: +p:111111111:!: +p:1111111100:w: +p:1111111101:u: +p:11111110000:b: +p:11111110010:-: +p:11111110011:.: +p:111111100011:n: +p:1111111000101:k: +p:11111110001001:,: +p:111111100010000:ESCAPE: +p:111111100010001:c: +q:1:u: +q:01:STOP: +q:001:0x3a: +q:0000:ESCAPE: +q:0001:': +r:000: : +r:011:i: +r:101:e: +r:0011:y: +r:0100:d: +r:1000:s: +r:1001:t: +r:1100:a: +r:1101:STOP: +r:1111:o: +r:01011:n: +r:11101:l: +r:001001:k: +r:001010:r: +r:001011:m: +r:010101:u: +r:111001:g: +r:0010000:': +r:0101001:c: +r:1110001:0x3a: +r:00100010:f: +r:00100011:.: +r:01010001:b: +r:11100000:v: +r:010100000:,: +r:010100001:p: +r:111000010:w: +r:1110000111:j: +r:11100001100:-: +r:111000011010:h: +r:1110000110110:G: +r:11100001101110:q: +r:111000011011111:S: +r:1110000110111100:!: +r:111000011011110100:*: +r:111000011011110110:T: +r:1110000110111101010:ESCAPE: +r:1110000110111101011:E: +r:1110000110111101110:1: +r:1110000110111101111:/: +s:10: : +s:11:STOP: +s:011:t: +s:0000:s: +s:0010:i: +s:0011:h: +s:00011:;: +s:01010:e: +s:010001:o: +s:010011:c: +s:010110:0x3a: +s:0001000:.: +s:0001001:!: +s:0001011:y: +s:0100000:p: +s:0100100:a: +s:0101111:u: +s:00010100:,: +s:00010101:f: +s:01000011:': +s:01001011:n: +s:01011100:l: +s:01011101:r: +s:010000101:k: +s:010010100:d: +s:0100001001:m: +s:0100101011:b: +s:01000010000:?: +s:01000010001:w: +s:01001010100:g: +s:010010101010:q: +s:01001010101101:E: +s:01001010101110:-: +s:010010101011000:ESCAPE: +s:010010101011001:): +s:010010101011110:W: +s:010010101011111:1: +t:000:i: +t:011:STOP: +t:100: : +t:111:h: +t:0010:a: +t:0100:r: +t:1010:s: +t:1011:o: +t:1101:e: +t:00111:t: +t:01010:y: +t:11000:u: +t:010110:m: +t:110010:c: +t:110011:l: +t:0011000:': +t:0011010:0x3a: +t:00110010:w: +t:00110110:!: +t:01011100:.: +t:01011101:b: +t:01011110:E: +t:01011111:f: +t:001100110:?: +t:001101110:n: +t:0011001110:z: +t:0011011110:d: +t:00110011111:,: +t:00110111110:P: +t:001100111100:v: +t:001100111101:-: +t:001101111110:): +t:0011011111110:g: +t:00110111111110:ESCAPE: +t:001101111111110:S: +t:0011011111111111:4: +t:00110111111111100:k: +t:001101111111111010:j: +t:001101111111111011:p: +u:00:r: +u:100:s: +u:111:n: +u:0100:e: +u:0101:m: +u:1100:t: +u:01100:c: +u:01101:g: +u:01110:b: +u:10100:p: +u:10101:i: +u:10110:l: +u:11010:d: +u:11011:a: +u:011110:STOP: +u:101110:y: +u:0111110:z: +u:1011110: : +u:01111111:': +u:10111110:-: +u:011111100:k: +u:101111111:0x3a: +u:0111111010:f: +u:0111111011:,: +u:1011111100:w: +u:101111110100:v: +u:101111110101:x: +u:101111110111:o: +u:1011111101100:j: +u:10111111011010:u: +u:101111110110110:.: +u:1011111101101111:h: +u:10111111011011100:?: +u:10111111011011101:ESCAPE: +v:1:e: +v:01:i: +v:001:a: +v:0001:o: +v:00000: : +v:000011:STOP: +v:0000100:y: +v:00001011:s: +v:000010101:r: +v:0000101000:ESCAPE: +v:0000101001:.: +w:0:s: +w:100: : +w:110:STOP: +w:1011:i: +w:1110:o: +w:10100:a: +w:11110:n: +w:11111:e: +w:1010111:y: +w:10101000:m: +w:10101011:d: +w:10101101:l: +w:101010011:b: +w:101010100:k: +w:101010101:r: +w:1010100100:j: +w:1010110001:,: +w:1010110011:h: +w:10101001011:-: +w:10101100000:c: +w:10101100001:f: +w:10101100101:p: +w:101010010100:g: +w:101011001000:t: +w:1010100101010:.: +w:1010100101011:0x3a: +w:1010110010011:q: +w:10101100100101:': +w:101011001001001:?: +w:1010110010010000:ESCAPE: +w:1010110010010001:B: +x:00:p: +x:10: : +x:11:t: +x:0110:STOP: +x:01000:o: +x:01010:c: +x:01110:i: +x:01111:m: +x:010010:e: +x:010110:y: +x:0100110:u: +x:0100111:f: +x:0101111:,: +x:010111000:g: +x:010111001:a: +x:010111011:9: +x:0101110101:': +x:01011101001:x: +x:010111010000:ESCAPE: +x:010111010001:s: +y:0: : +y:11:STOP: +y:10001:o: +y:10010:s: +y:10100:a: +y:10110:l: +y:10111:0x3a: +y:100110:d: +y:1000001:n: +y:1000010:t: +y:1010100:': +y:1010101:b: +y:1010111:.: +y:10000000:i: +y:10000110:,: +y:10000111:p: +y:10011100:m: +y:10011110:c: +y:10101100:w: +y:10101101:e: +y:100000010:?: +y:100000011:f: +y:100111010:r: +y:100111011:g: +y:1001111100:z: +y:1001111110:-: +y:1001111111:T: +y:100111110100:2: +y:100111110110:!: +y:100111110111:k: +y:1001111101010:v: +y:10011111010110:y: +y:100111110101110:h: +y:1001111101011111:j: +y:10011111010111100:ESCAPE: +y:10011111010111101:): +z:00:z: +z:01:STOP: +z:101:i: +z:1000:y: +z:1001:e: +z:1100:w: +z:1101: : +z:1110:l: +z:11110:a: +z:111110:o: +z:11111100:m: +z:11111101:0x3a: +z:11111111:c: +z:111111100:,: +z:1111111011:b: +z:11111110100:u: +z:111111101011:!: +z:11111110101000:ESCAPE: +z:11111110101001:t: +z:11111110101010:h: +z:11111110101011:?: +{:0:ESCAPE: +{:1:ESCAPE: +|:0:ESCAPE: +|:1:ESCAPE: +}:0:ESCAPE: +}:1:ESCAPE: +~:0:ESCAPE: +~:1:ESCAPE: +0x7f:0:ESCAPE: +0x7f:1:ESCAPE: +START:00:T: +START:010:B: +START:1000:C: +START:1001:I: +START:1101:S: +START:01100:L: +START:01110:D: +START:01111:H: +START:10100:R: +START:10101:N: +START:10110:E: +START:11000:F: +START:11001:A: +START:11100:M: +START:11101:P: +START:11110:W: +START:011011:Q: +START:101111:G: +START:111110:J: +START:0110100:K: +START:1011101:U: +START:1111110:O: +START:01101010:6: +START:01101011:.: +START:10111000:V: +START:11111110:Y: +START:101110011:2: +START:111111111:X: +START:1011100100:Z: +START:1111111100:8: +START:10111001010:1: +START:10111001011:3: +START:111111110100:4: +START:111111110101:': +START:111111110111: : +START:11111111011000:5: +START:11111111011011:0: +START:111111110110011:m: +START:1111111101100100:c: +START:1111111101101000:9: +START:1111111101101010:a: +START:1111111101101011:d: +START:11111111011001010:s: +START:11111111011001011:p: +START:11111111011010010:(: +START:111111110110100110:t: +START:1111111101101001110:7: +START:11111111011010011110:ESCAPE: +START:11111111011010011111:l: +ESCAPE:0:ESCAPE: +ESCAPE:1:ESCAPE: +STOP:0:ESCAPE: +STOP:1:ESCAPE: +0x03:0:ESCAPE: +0x03:1:ESCAPE: +0x04:0:ESCAPE: +0x04:1:ESCAPE: +0x05:0:ESCAPE: +0x05:1:ESCAPE: +0x06:0:ESCAPE: +0x06:1:ESCAPE: +0x07:0:ESCAPE: +0x07:1:ESCAPE: +0x08:0:ESCAPE: +0x08:1:ESCAPE: +0x09:0:ESCAPE: +0x09:1:ESCAPE: +0x0a:0:ESCAPE: +0x0a:1:ESCAPE: +0x0b:0:ESCAPE: +0x0b:1:ESCAPE: +0x0c:0:ESCAPE: +0x0c:1:ESCAPE: +0x0d:0:ESCAPE: +0x0d:1:ESCAPE: +0x0e:0:ESCAPE: +0x0e:1:ESCAPE: +0x0f:0:ESCAPE: +0x0f:1:ESCAPE: +0x10:0:ESCAPE: +0x10:1:ESCAPE: +0x11:0:ESCAPE: +0x11:1:ESCAPE: +0x12:0:ESCAPE: +0x12:1:ESCAPE: +0x13:0:ESCAPE: +0x13:1:ESCAPE: +0x14:0:ESCAPE: +0x14:1:ESCAPE: +0x15:0:ESCAPE: +0x15:1:ESCAPE: +0x16:0:ESCAPE: +0x16:1:ESCAPE: +0x17:0:ESCAPE: +0x17:1:ESCAPE: +0x18:0:ESCAPE: +0x18:1:ESCAPE: +0x19:0:ESCAPE: +0x19:1:ESCAPE: +0x1a:0:ESCAPE: +0x1a:1:ESCAPE: +0x1b:0:ESCAPE: +0x1b:1:ESCAPE: +0x1c:0:ESCAPE: +0x1c:1:ESCAPE: +0x1d:0:ESCAPE: +0x1d:1:ESCAPE: +0x1e:0:ESCAPE: +0x1e:1:ESCAPE: +0x1f:0:ESCAPE: +0x1f:1:ESCAPE: + :0000:W: + :0011:M: + :0100:C: + :0101:B: + :0111:P: + :1001:T: + :1100:N: + :1111:S: + :00011:I: + :00100:G: + :01100:H: + :01101:D: + :10000:o: + :10001:A: + :10100:t: + :10110:a: + :10111:F: + :11010:L: + :11011:R: + :001011:U: + :101011:O: + :111001:J: + :111010:E: + :0001000:f: + :0001001:Q: + :0001011:V: + :0010100:STOP: + :0010101:w: + :1110000:2: + :1110001:K: + :1110110:Y: + :1110111:i: + :00010100:-: + :10101001:1: + :101010000:&: + :101010101:X: + :0001010101:r: + :1010100010:5: + :1010100011:Z: + :1010101001:9: + :1010101101:s: + :1010101110:4: + :1010101111:3: + :00010101000:7: + :00010101100:b: + :00010101110:y: + :10101010000:': + :10101011000:6: + :000101011010:v: + :000101011011:d: + :000101011110:(: + :101010100010: : + :101010100011:0: + :101010110010:n: + :101010110011:8: + :0001010100110:g: + :0001010111110:u: + :00010101001000:+: + :00010101001001:.: + :00010101001010:ESCAPE: + :00010101001011:l: + :00010101001111:m: + :00010101111110:p: + :000101010011100:\: + :000101010011101:/: + :000101011111111:e: + :0001010111111101:": + :00010101111111001:c: + :000101011111110000:k: + :000101011111110001:h: +!:1:STOP: +!:01: : +!:001:.: +!:0001:!: +!:00001:": +!:000000:ESCAPE: +!:000001:0x3a: +":0: : +":10:ESCAPE: +":11:I: +#:0:ESCAPE: +#:1:ESCAPE: +$:0:ESCAPE: +$:1:ESCAPE: +%:1: : +%:00:ESCAPE: +%:01:STOP: +&:1: : +&:01:B: +&:000:ESCAPE: +&:001:.: +':1:s: +':000:m: +':010:C: +':0010:t: +':0011: : +':01100:d: +':01110:v: +':011011:r: +':011111:A: +':0110101:n: +':01101000:G: +':01111001:l: +':011010011:D: +':011110000:B: +':011110001:e: +':011110101:i: +':011110110:6: +':0110100100:L: +':0111101001:STOP: +':0111101111:w: +':01101001010:O: +':01111010000:S: +':01111010001:E: +':01111011101:N: +':011110111001:R: +':0110100101100:a: +':0110100101101:M: +':0110100101110:K: +':0110100101111:F: +':0111101110000:0: +':01111011100010:ESCAPE: +':01111011100011:c: +(:1:c: +(:000:1: +(:0010:M: +(:0011:U: +(:0100:R: +(:0101:D: +(:0110:H: +(:01110:S: +(:011110:F: +(:0111110:G: +(:01111110:ESCAPE: +(:01111111:Y: +):1:STOP: +):00:ESCAPE: +):01: : +*:0:*: +*:101: : +*:1000:d: +*:1100:m: +*:1101:t: +*:1111:s: +*:10010:e: +*:11100:g: +*:11101:k: +*:100110:ESCAPE: +*:100111:y: ++:0:ESCAPE: ++:1: : +,:1: : +,:01:0: +,:000:ESCAPE: +,:001:.: +-:11: : +-:011:S: +-:100:G: +-:101:O: +-:0011:T: +-:0100:U: +-:00000:E: +-:00010:D: +-:000010:m: +-:000110:0: +-:000111:I: +-:001010:6: +-:010100:F: +-:010101:o: +-:0000110:L: +-:0000111:C: +-:0010001:A: +-:0010010:t: +-:0010011:Y: +-:0010111:2: +-:0101100:B: +-:0101101:.: +-:00100000:P: +-:00100001:Z: +-:01011100:8: +-:01011101:i: +-:01011110:d: +-:01011111:H: +-:001011001:N: +-:001011011:R: +-:0010110000:1: +-:0010110001:W: +-:00101101001:c: +-:00101101010:a: +-:00101101011:M: +-:001011010000:ESCAPE: +-:001011010001:Q: +.:1:.: +.:01:STOP: +.:0010: : +.:00000:I: +.:00001:T: +.:00010:C: +.:00110:p: +.:00111:0: +.:000111:H: +.:00011010:W: +.:000110001:S: +.:000110110:3: +.:000110111:B: +.:0001100000:1: +.:0001100001:M: +.:0001100110:c: +.:00011001000:t: +.:00011001001:R: +.:00011001010:F: +.:00011001110:E: +.:00011001111:A: +.:0001100101100:ESCAPE: +.:0001100101101:l: +.:0001100101110:d: +.:0001100101111:U: +/:00:1: +/:10:7: +/:010:4: +/:011:2: +/:110:3: +/:1110:5: +/:111100:6: +/:111110:C: +/:1111010:9: +/:1111011: : +/:1111110:8: +/:11111111:U: +/:1111111000:G: +/:1111111010:0: +/:11111110010:ESCAPE: +/:11111110011:W: +/:11111110110:V: +/:11111110111:S: +0:00:6: +0:01: : +0:11:0: +0:1001:p: +0:1010:STOP: +0:10000:1: +0:10001:a: +0:10111:7: +0:1011000:-: +0:1011010:s: +0:10110011:4: +0:10110110:t: +0:101101111:%: +0:1011001000:8: +0:1011001001:0x3a: +0:1011001010:5: +0:1011001011:2: +0:1011011100:/: +0:10110111011:U: +0:101101110101:,: +0:1011011101000:.: +0:10110111010010:ESCAPE: +0:10110111010011:l: +1:01:STOP: +1:000:.: +1:101:0: +1:111:1: +1:0010:2: +1:0011: : +1:1101:/: +1:10010:8: +1:11000:3: +1:100000:5: +1:100001:s: +1:100010:6: +1:100011:0x3a: +1:100110:': +1:110010:X: +1:110011:9: +1:1001111:4: +1:10011101:-: +1:100111001:7: +1:1001110000:): +1:10011100010:ESCAPE: +1:10011100011:,: +2:0:0: +2:11:4: +2:101:STOP: +2:1001: : +2:10000:0x3a: +2:1000101:5: +2:1000111:/: +2:10001000:.: +2:10001001:1: +2:10001100:W: +2:100011011:7: +2:10001101001:3: +2:10001101011:Z: +2:100011010000:n: +2:100011010001:6: +2:100011010101:': +2:1000110101000:ESCAPE: +2:1000110101001:s: +3:0: : +3:10:STOP: +3:1100:r: +3:1101:/: +3:1111:B: +3:11100:0: +3:1110100:0x3a: +3:1110110:-: +3:11101010:1: +3:11101011:8: +3:11101111:4: +3:1110111000:6: +3:1110111011:9: +3:11101110011:t: +3:11101110100:3: +3:111011100100:ESCAPE: +3:111011100101:e: +3:111011101010:7: +3:111011101011:5: +4:0:STOP: +4:11: : +4:1001:0x3a: +4:1011:/: +4:10001:8: +4:10101:.: +4:100000:9: +4:101000:0: +4:1010010:M: +4:10000101:I: +4:10000110:): +4:10100110:R: +4:10100111:-: +4:100001000:W: +4:100001110:P: +4:100001111:5: +4:1000010011:2: +4:10000100100:ESCAPE: +4:10000100101:': +5:0:STOP: +5:11: : +5:101:0: +5:1001:/: +5:100001:-: +5:100011:0x3a: +5:1000001:t: +5:1000100:3: +5:1000101:1: +5:10000000:ESCAPE: +5:10000001:a: +6:00:STOP: +6:01: : +6:10:0: +6:111:0x3a: +6:11001:.: +6:11011:i: +6:110000:-: +6:110101:a: +6:1100011:4: +6:1101000:8: +6:1101001:/: +6:11000100:6: +6:110001011:9: +6:1100010100:3: +6:11000101010:ESCAPE: +6:11000101011:t: +7:1:STOP: +7:01: : +7:000:0: +7:0011:.: +7:00101:/: +7:0010000:1: +7:0010010:5: +7:00100010:ESCAPE: +7:00100011:4: +7:00100110:3: +7:00100111:2: +8:1: : +8:00:0: +8:010:0x3a: +8:01101:STOP: +8:011000:t: +8:011001:p: +8:011101:8: +8:011110:.: +8:011111:6: +8:0111000:5: +8:01110010:9: +8:011100110:M: +8:0111001110:F: +8:01110011110:ESCAPE: +8:01110011111:c: +9:0:1: +9:11:STOP: +9:1000:9: +9:1010:.: +9:10011:0: +9:100100: : +9:100101:8: +9:101100:7: +9:101101:/: +9:101110:6: +9:1011111:0x3a: +9:10111101:4: +9:101111000:ESCAPE: +9:101111001:3: +0x3a:1: : +0x3a:00:0: +0x3a:011:.: +0x3a:0100:2: +0x3a:01010:1: +0x3a:010111:3: +0x3a:0101101:C: +0x3a:01011000:ESCAPE: +0x3a:01011001:T: +;:1: : +;:00:ESCAPE: +;:01:.: +<:0:ESCAPE: +<:1:ESCAPE: +=:0:ESCAPE: +=:1:ESCAPE: +>:0:ESCAPE: +>:1:ESCAPE: +?:1:STOP: +?:01: : +?:001:0x3a: +?:0000:ESCAPE: +?:0001:.: +@:0:ESCAPE: +@:1:H: +A:001:r: +A:010: : +A:100:l: +A:110:n: +A:0000:m: +A:0111:g: +A:1111:d: +A:00010:w: +A:01100:T: +A:01101:c: +A:10101:t: +A:10110:f: +A:10111:i: +A:11100:s: +A:000110:u: +A:000111:STOP: +A:101001:R: +A:111010:b: +A:1010001:v: +A:1110110:p: +A:10100000:S: +A:11101110:M: +A:101000011:P: +A:111011111:.: +A:10100001000:e: +A:10100001001:B: +A:10100001010:1: +A:11101111011:-: +A:101000010110:k: +A:101000010111:h: +A:111011110000:a: +A:111011110100:y: +A:111011110101:*: +A:1110111100010:x: +A:1110111100011:': +A:1110111100100:N: +A:1110111100110:2: +A:11101111001010:0x3a: +A:11101111001111:z: +A:111011110010110:L: +A:111011110010111:F: +A:111011110011100:D: +A:1110111100111010:ESCAPE: +A:1110111100111011:q: +B:00:C: +B:01:B: +B:101:r: +B:1001:i: +B:1100:o: +B:1101:u: +B:1110:a: +B:1111:e: +B:10001:l: +B:1000000:STOP: +B:1000010:y: +B:10000010:O: +B:10000110:3: +B:100000111:A: +B:100001110:S: +B:1000001101:0x3a: +B:10000011000:.: +B:10000011001:w: +B:10000111101:h: +B:10000111110:*: +B:10000111111: : +B:100001111001:R: +B:1000011110000:': +B:10000111100011:T: +B:100001111000100:ESCAPE: +B:100001111000101:4: +C:00:o: +C:01: : +C:100:l: +C:110:h: +C:1010:r: +C:1110:a: +C:10110:i: +C:10111:e: +C:111100:u: +C:111101:B: +C:1111100:y: +C:1111110:!: +C:11111011:.: +C:111110100:w: +C:111111100:STOP: +C:111111110:S: +C:111111111:T: +C:1111101011:2: +C:1111111011:I: +C:11111010100:4: +C:11111010101:*: +C:11111110101:D: +C:111111101000:U: +C:1111111010010:': +C:11111110100110:n: +C:111111101001110:z: +C:11111110100111100:O: +C:11111110100111101:E: +C:11111110100111110:A: +C:111111101001111110:ESCAPE: +C:111111101001111111:s: +D:01:o: +D:10:a: +D:000:r: +D:110:e: +D:111:i: +D:00100:t: +D:00111:u: +D:001011: : +D:0010101:J: +D:0011000:y: +D:0011010:STOP: +D:0011011:I: +D:00110011:0x3a: +D:001010001:*: +D:001010010:-: +D:001010011:&: +D:001100100:': +D:0010100000:A: +D:0010100001:h: +D:00110010101:N: +D:00110010110:V: +D:001100101110:D: +D:001100101111:w: +D:0011001010000:O: +D:0011001010001:E: +D:0011001010011:d: +D:00110010100100:ESCAPE: +D:00110010100101:T: +E:00:m: +E:011:v: +E:101:n: +E:111:a: +E:0100:E: +E:1000:STOP: +E:1101:x: +E:10011:d: +E:11001:l: +E:010100:4: +E:010101:y: +E:010110:u: +E:100100:r: +E:110000:i: +E:0101111:s: +E:1001010:F: +E:1100010:X: +E:10010110:R: +E:11000111: : +E:010111010:g: +E:100101111:0x3a: +E:110001100:T: +E:110001101:': +E:0101110001:c: +E:0101110011:q: +E:0101110110:e: +E:0101110111:C: +E:1001011100:p: +E:01011100000:-: +E:01011100101:Z: +E:10010111011:t: +E:010111000010:S: +E:010111000011:.: +E:100101110101:W: +E:0101110010000:!: +E:1001011101000:o: +E:01011100100010:f: +E:01011100100011:U: +E:01011100100100:N: +E:01011100100101:M: +E:01011100100110:L: +E:01011100100111:A: +E:10010111010011:D: +E:100101110100100:ESCAPE: +E:100101110100101:w: +F:00:i: +F:10:a: +F:011:r: +F:110:u: +F:111:o: +F:0100:e: +F:01011:l: +F:0101000:A: +F:0101010:O: +F:01010010: : +F:010100110:h: +F:010100111:t: +F:010101101:f: +F:010101111:L: +F:0101011001:STOP: +F:01010111000:j: +F:01010111001:I: +F:01010111010:.: +F:01010111011:1: +F:010101100000:M: +F:010101100010:*: +F:010101100011:K: +F:0101011000010:y: +F:01010110000111:H: +F:010101100001100:ESCAPE: +F:010101100001101:!: +G:10:r: +G:001:M: +G:010:a: +G:011:o: +G:110:i: +G:111:e: +G:00001:u: +G:00010:X: +G:000001:h: +G:000111:l: +G:0000001:y: +G:0001100:w: +G:00000000:0x3a: +G:00011011:C: +G:000000011:STOP: +G:000110100:-: +G:0001101010:P: +G:0001101011: : +G:00000001000:': +G:00000001010:A: +G:000000010010:U: +G:000000010110:T: +G:000000010111:4: +G:0000000100110:ESCAPE: +G:0000000100111:Y: +H:0:o: +H:100:a: +H:101:i: +H:110:e: +H:1110:u: +H:11110:R: +H:111110:A: +H:1111110:.: +H:111111101:y: +H:111111110:S: +H:1111111110:E: +H:1111111111:r: +H:11111110000:STOP: +H:11111110010:L: +H:11111110011:M: +H:111111100011:w: +H:1111111000101:D: +H:11111110001000:ESCAPE: +H:11111110001001:I: +I:0:T: +I:100:s: +I:101:n: +I:1101:t: +I:11001: : +I:11101:': +I:11111:r: +I:110000:I: +I:110001:STOP: +I:111001:m: +I:1110000:d: +I:1110001:N: +I:1111001:z: +I:1111010:.: +I:11110000:a: +I:11110001:Y: +I:111101100:S: +I:111101110:c: +I:11110110101:D: +I:11110110110:f: +I:11110111100:l: +I:11110111111:y: +I:111101101000:V: +I:111101101110:o: +I:111101111011:F: +I:1111011010010:,: +I:1111011010011:A: +I:1111011011110:O: +I:1111011110101:g: +I:1111011111000:C: +I:1111011111001:0x3a: +I:1111011111011:v: +I:11110110111110:p: +I:11110110111111:E: +I:11110111101000:B: +I:11110111110100:k: +I:11110111110101:b: +I:1111011110100100:ESCAPE: +I:1111011110100101:R: +I:1111011110100110:L: +I:1111011110100111:G: +J:00:a: +J:01:u: +J:11:e: +J:101:o: +J:1001:i: +J:10000: : +J:100010:K: +J:1000111:STOP: +J:100011001:s: +J:100011010:F: +J:1000110000:V: +J:1000110001:': +J:1000110111:f: +J:10001101101:G: +J:100011011000:ESCAPE: +J:100011011001:D: +K:01:i: +K:11:y: +K:001:e: +K:101: : +K:0000:a: +K:1000:o: +K:00010:STOP: +K:00011:r: +K:100101:t: +K:100110:n: +K:100111:S: +K:10010011:G: +K:100100000:-: +K:100100011:O: +K:100100100:h: +K:100100101:w: +K:1001000010:1: +K:1001000011:': +K:10010001011:u: +K:100100010000:T: +K:100100010001:N: +K:100100010010:0x3a: +K:100100010011:.: +K:100100010100:,: +K:1001000101010:ESCAPE: +K:1001000101011:l: +L:00:a: +L:10:o: +L:11:i: +L:010:e: +L:0111:u: +L:01101:K: +L:0110000:l: +L:0110010:A: +L:0110011: : +L:01100011:y: +L:0110001000:L: +L:0110001001:I: +L:01100010100:C: +L:01100010101:.: +L:01100010111:STOP: +L:011000101101:': +L:0110001011000:E: +L:01100010110010:ESCAPE: +L:01100010110011:Y: +M:01:a: +M:10:o: +M:000:e: +M:111:i: +M:0010:T: +M:1100:y: +M:1101:u: +M:00110:STOP: +M:001111:c: +M:00111001:r: +M:00111010:E: +M:001110111:F: +M:0011100001:Z: +M:0011100011: : +M:0011101100:1: +M:0011101101:I: +M:00111000001:h: +M:00111000100:C: +M:001110000001:Q: +M:001110001010:K: +M:0011100010110:P: +M:00111000000000:0x3a: +M:00111000000001:.: +M:00111000000010:': +M:00111000101110:M: +M:001110000000110:ESCAPE: +M:001110000000111:w: +M:001110001011110:S: +M:001110001011111:R: +N:1:e: +N:00:o: +N:011:i: +N:0101:a: +N:01001:u: +N:010000:C: +N:01000100:E: +N:01000110:F: +N:010001110:B: +N:010001111:H: +N:0100010110:Y: +N:01000101000:G: +N:01000101001:': +N:01000101011:I: +N:01000101110:A: +N:010001010100:M: +N:010001011110: : +N:010001011111:STOP: +N:0100010101010:T: +N:01000101010110:.: +N:010001010101110:ESCAPE: +N:010001010101111:Z: +O:000:': +O:010:f: +O:110:u: +O:111:n: +O:0010:M: +O:0011:l: +O:1001:m: +O:01101:r: +O:01110:d: +O:10000:p: +O:10100:h: +O:10110:STOP: +O:011001:S: +O:011110:z: +O:011111:b: +O:100011:v: +O:101010:w: +O:101011:U: +O:1011100:T: +O:1011101:O: +O:1011110:K: +O:01100001:C: +O:01100010:x: +O:01100011:.: +O:10001001:t: +O:10001011: : +O:10111110:s: +O:10111111:N: +O:011000001:g: +O:100010000:-: +O:100010101:a: +O:1000100010:i: +O:1000100011:e: +O:1000101001:o: +O:01100000000:A: +O:01100000001:j: +O:01100000010:c: +O:10001010000:2: +O:011000000111:R: +O:100010100010:P: +O:100010100011:0x3a: +O:0110000001100:E: +O:01100000011010:ESCAPE: +O:01100000011011:L: +P:01:r: +P:10:l: +P:000:e: +P:001:a: +P:111:o: +P:1101:i: +P:110000:D: +P:110001:u: +P:110011:h: +P:11001000: : +P:11001010:2: +P:110010010:H: +P:110010011:M: +P:110010110:S: +P:11001011100:0x3a: +P:11001011101:*: +P:110010111101:s: +P:1100101111001:I: +P:1100101111100:STOP: +P:1100101111101:G: +P:1100101111110:': +P:11001011111110:y: +P:110010111100000:Y: +P:110010111100001:L: +P:110010111100010:C: +P:110010111100011:ESCAPE: +P:110010111111110:O: +P:110010111111111:.: +Q:1:u: +Q:000:I: +Q:001:STOP: +Q:010:V: +Q:0111: : +Q:01101:C: +Q:011000:ESCAPE: +Q:011001:': +R:00:a: +R:01:o: +R:11:e: +R:100:i: +R:1011:u: +R:10101:E: +R:101000:D: +R:1010011:STOP: +R:10100101:h: +R:1010010000:I: +R:1010010010:y: +R:1010010011:n: +R:101001000110: : +R:1010010001000:': +R:1010010001011:S: +R:1010010001110:N: +R:10100100010010:B: +R:10100100010011:.: +R:10100100010100:&: +R:10100100011110:T: +R:10100100011111:1: +R:101001000101010:ESCAPE: +R:101001000101011:C: +S:001:o: +S:010:p: +S:011:u: +S:110:h: +S:111:t: +S:0001:a: +S:1001:e: +S:1011:c: +S:00000:n: +S:10001:i: +S:10101:k: +S:000011:w: +S:101000:m: +S:0000101:A: +S:1000010:l: +S:1010010:q: +S:1010011:M: +S:00001000:2: +S:00001001:P: +S:10000000:O: +S:10000010:I: +S:10000011: : +S:10000111:STOP: +S:100000010:y: +S:100001100:E: +S:1000000111:?: +S:1000011011:H: +S:10000001100:B: +S:10000110100:g: +S:100000011011:r: +S:100001101010:*: +S:1000011010110:3: +S:1000011010111:.: +S:10000001101000:5: +S:10000001101010:0x3a: +S:10000001101011:1: +S:100000011010010:C: +S:1000000110100110:ESCAPE: +S:1000000110100111:Y: +T:0:h: +T:101:o: +T:111:V: +T:1000:e: +T:1001:r: +T:11000:a: +T:11010:w: +T:110011:i: +T:1101101:O: +T:1101111:H: +T:11001001:y: +T:11001010:M: +T:11011000:.: +T:11011100:u: +T:11011101:W: +T:110010001:P: +T:110010110:0x3a: +T:110010111:4: +T:110110011:I: +T:1101100100: : +T:1101100101:STOP: +T:11001000010:X: +T:11001000011:s: +T:110010000000:T: +T:110010000001:S: +T:110010000010:B: +T:1100100000110:U: +T:11001000001110:A: +T:1100100000111100:C: +T:1100100000111101:*: +T:1100100000111111:N: +T:11001000001111100:ESCAPE: +T:11001000001111101:Y: +U:0:n: +U:10:p: +U:1101:K: +U:1111:l: +U:11000:R: +U:11100:S: +U:110011:E: +U:111011:s: +U:1100101:g: +U:1110101:T: +U:11001001: : +U:110010000:-: +U:110010001:r: +U:111010000:2: +U:111010001:m: +U:111010011:STOP: +U:1110100100:.: +U:11101001010:c: +U:111010010110:k: +U:11101001011100:ESCAPE: +U:11101001011101:z: +U:11101001011110:t: +U:11101001011111:B: +V:1: : +V:000:0x3a: +V:011:i: +V:0010:e: +V:0011:a: +V:0100:3: +V:010101:C: +V:010111:STOP: +V:0101000:': +V:0101001:4: +V:0101101:o: +V:01011001:I: +V:0101100000:s: +V:0101100001:D: +V:0101100010:.: +V:01011000110:8: +V:0101100011101:u: +V:0101100011110:r: +V:0101100011111:B: +V:01011000111000:ESCAPE: +V:01011000111001:E: +W:01:o: +W:11:e: +W:001:h: +W:100:a: +W:101:i: +W:00000:.: +W:00010:O: +W:00011:r: +W:000011:y: +W:0000100:u: +W:00001010:STOP: +W:000010111:A: +W:00001011001:Y: +W:00001011010:T: +W:00001011011: : +W:000010110000:I: +W:0000101100010:ESCAPE: +W:0000101100011:l: +X:00:STOP: +X:10: : +X:11:t: +X:010:T: +X:0111:c: +X:01101:m: +X:011001:U: +X:01100000:a: +X:01100001:X: +X:01100010:-: +X:011000110:x: +X:0110001111:9: +X:01100011100:ESCAPE: +X:01100011101:i: +Y:1:o: +Y:01:e: +Y:000:u: +Y:0011: : +Y:00100:v: +Y:001010:a: +Y:00101110:P: +Y:00101111:': +Y:001011000:n: +Y:001011011:r: +Y:0010110010:D: +Y:00101100110:w: +Y:00101100111:s: +Y:00101101000:R: +Y:00101101001:L: +Y:00101101010:STOP: +Y:001011010110:C: +Y:0010110101110:ESCAPE: +Y:0010110101111:N: +Z:1:o: +Z:00:a: +Z:010:i: +Z:01100:O: +Z:01101:u: +Z:01110:e: +Z:011110: : +Z:0111111:STOP: +Z:01111101:0x3a: +Z:011111000:ESCAPE: +Z:011111001:-: +[:0:ESCAPE: +[:1:ESCAPE: +\:0:ESCAPE: +\:1:x: +]:0:ESCAPE: +]:1:ESCAPE: +^:0:ESCAPE: +^:1:ESCAPE: +_:0:ESCAPE: +_:1:ESCAPE: +`:0:ESCAPE: +`:1:ESCAPE: +a:001:r: +a:011:t: +a:100:l: +a:110:n: +a:0001:m: +a:0100:c: +a:1010:s: +a:1110:y: +a:10110: : +a:10111:d: +a:11110:i: +a:11111:k: +a:000010:b: +a:000011:STOP: +a:010110:p: +a:010111:g: +a:0000000:e: +a:0000001:': +a:0000011:w: +a:0101001:u: +a:0101010:z: +a:0101011:v: +a:00000101:f: +a:01010001:h: +a:000001001:0x3a: +a:0000010000:!: +a:0101000000:o: +a:0101000001:x: +a:00000100010:-: +a:00000100011:a: +a:01010000101:.: +a:01010000110:N: +a:01010000111:,: +a:010100001000:q: +a:0101000010010:j: +a:01010000100111:?: +a:010100001001101:J: +a:0101000010011000:ESCAPE: +a:0101000010011001:U: +b:000:r: +b:001:o: +b:010:e: +b:011:a: +b:100:i: +b:1011:u: +b:1100:y: +b:1101:l: +b:1111: : +b:10101:s: +b:11100:b: +b:11101:STOP: +b:101000:h: +b:1010010:3: +b:10100111:': +b:1010011001:t: +b:1010011010:j: +b:10100110000:n: +b:10100110001:d: +b:10100110111:w: +b:101001101101:m: +b:1010011011001:.: +b:10100110110000:ESCAPE: +b:10100110110001:0x3a: +c:00:k: +c:010:o: +c:100:h: +c:110:t: +c:111:e: +c:0111:r: +c:10100: : +c:10110:i: +c:10111:a: +c:011000:l: +c:011001:y: +c:011010:s: +c:011011:STOP: +c:1010100:c: +c:1010111:u: +c:10101010:0x3a: +c:10101011:P: +c:101011001:D: +c:1010110100:G: +c:1010110110:b: +c:10101100000:L: +c:10101100001:K: +c:10101100011:A: +c:10101101010:q: +c:10101101110:.: +c:10101101111:C: +c:101011000100:n: +c:101011000101:': +c:1010110101100:B: +c:1010110101101:I: +c:10101101011101:f: +c:10101101011110:8: +c:101011010111000:M: +c:101011010111001:ESCAPE: +c:101011010111111:F: +c:1010110101111100:w: +c:1010110101111101:Q: +d:11: : +d:001:e: +d:100:STOP: +d:101:a: +d:0001:y: +d:0100:i: +d:0110:s: +d:00000:o: +d:01010:d: +d:000011:u: +d:010110:r: +d:010111:l: +d:011101:v: +d:011110:g: +d:0000100:': +d:0111111:.: +d:00001010:0x3a: +d:00001011:h: +d:01110000:c: +d:01110010:n: +d:01110011:w: +d:011100010:?: +d:011111000:!: +d:011111001:-: +d:011111010:f: +d:0111000111:m: +d:0111110110:,: +d:01111101110:t: +d:01111101111:b: +d:011100011001:): +d:011100011010:/: +d:011100011011:k: +d:0111000110001:p: +d:01110001100001:z: +d:011100011000000:ESCAPE: +d:011100011000001:4: +e:01: : +e:000:s: +e:101:r: +e:0010:t: +e:1001:n: +e:1100:STOP: +e:1110:a: +e:1111:w: +e:10000:l: +e:11011:e: +e:001110:m: +e:100010:c: +e:100011:d: +e:0011010:i: +e:0011011:p: +e:0011110:b: +e:1101000:v: +e:1101011:y: +e:00110000:g: +e:00110001:f: +e:00110010:x: +e:00111110:k: +e:00111111:0x3a: +e:11010011:o: +e:11010100:': +e:001100111:h: +e:110100101:.: +e:0011001100:P: +e:0011001101:B: +e:1101001000:,: +e:1101010100:V: +e:1101010101:z: +e:1101010111:j: +e:11010010010:4: +e:11010010011:?: +e:11010101101:u: +e:110101011001:-: +e:1101010110001:!: +e:11010101100001:q: +e:110101011000001:G: +e:1101010110000000:ESCAPE: +e:1101010110000001:S: +f:0: : +f:101:o: +f:1001:t: +f:1100:a: +f:1101:i: +f:1111:e: +f:10000:.: +f:11100:r: +f:11101:f: +f:100010:STOP: +f:10001101:y: +f:10001111:u: +f:100011000:': +f:100011101:l: +f:1000110011:n: +f:1000111000:g: +f:10001100100:c: +f:10001110010:-: +f:100011001010:,: +f:100011001011:s: +f:100011100111:0x3a: +f:1000111001101:k: +f:10001110011000:ESCAPE: +f:10001110011001:b: +g:00:h: +g:10: : +g:010:STOP: +g:011:e: +g:1100:i: +g:11100:0x3a: +g:11101:r: +g:11111:a: +g:110100:s: +g:110111:l: +g:111101:u: +g:1101011:b: +g:1101100:g: +g:1101101:o: +g:1111001:n: +g:11010100:2: +g:11110000:!: +g:111100011:d: +g:1101010100:.: +g:1101010101:,: +g:1101010110:': +g:1101010111:t: +g:1111000101:y: +g:11110001000:w: +g:111100010011:m: +g:11110001001011:?: +g:111100010010000:p: +g:111100010010001:f: +g:111100010010010:@: +g:111100010010011:-: +g:111100010010101:;: +g:1111000100101000:ESCAPE: +g:1111000100101001:z: +h:0:e: +h:101:o: +h:1001:i: +h:1100:a: +h:1110: : +h:1111:t: +h:11010:r: +h:11011:STOP: +h:100000:b: +h:100001:u: +h:10001000:w: +h:10001001:d: +h:10001010:n: +h:10001011:y: +h:10001100:!: +h:10001101:l: +h:10001111:.: +h:100011100:': +h:1000111010:s: +h:10001110110:m: +h:100011101111:0x3a: +h:10001110111000:f: +h:10001110111001:?: +h:10001110111010:c: +h:1000111011101100:v: +h:1000111011101101:q: +h:1000111011101110:g: +h:100011101110111100:h: +h:100011101110111101:ESCAPE: +h:100011101110111110:,: +h:100011101110111111:*: +i:01:n: +i:000:c: +i:1001:o: +i:1010:l: +i:1100:g: +i:1101:s: +i:1110:t: +i:1111:e: +i:00101:a: +i:00110:v: +i:10000:r: +i:10001:d: +i:10110:m: +i:001000:p: +i:001110: : +i:101111:f: +i:0011110:z: +i:0011111:STOP: +i:1011100:b: +i:1011101:k: +i:00100101:-: +i:00100110:x: +i:001001001:': +i:001001111:q: +i:0010011100:u: +i:0010011101:i: +i:00100100001:h: +i:00100100010:0x3a: +i:00100100011:w: +i:0010010000001:,: +i:0010010000010:y: +i:0010010000011:/: +i:00100100000000:.: +i:001001000000010:ESCAPE: +i:001001000000011:j: +j:0:y: +j:11:o: +j:101:e: +j:1001:a: +j:10001:u: +j:100001:i: +j:1000000:STOP: +j:10000010:ESCAPE: +j:10000011: : +k:00: : +k:10:e: +k:010:i: +k:110:STOP: +k:0110:y: +k:0111:s: +k:1111:f: +k:111001:a: +k:111010:l: +k:1110001:0x3a: +k:1110110:k: +k:11100000:': +k:11101111:.: +k:111000011:w: +k:111011100:o: +k:1110000101:h: +k:11100001000:b: +k:11100001001:,: +k:11101110111:n: +k:111011101010:?: +k:111011101100:m: +k:111011101101:!: +k:1110111010010:u: +k:1110111010011:c: +k:1110111010110:d: +k:1110111010111:t: +k:11101110100001:j: +k:11101110100010:-: +k:111011101000000:p: +k:111011101000001:/: +k:111011101000111:S: +k:1110111010001100:ESCAPE: +k:1110111010001101:r: +l:01:e: +l:000:l: +l:101:a: +l:0011:y: +l:1000:STOP: +l:1001:d: +l:1100:o: +l:1110:i: +l:1111: : +l:00100:u: +l:11010:s: +l:001010:t: +l:001011:m: +l:1101101:k: +l:11011000:f: +l:11011100:b: +l:11011110:': +l:11011111:c: +l:110110011:v: +l:110111010:0x3a: +l:1101100101:.: +l:1101110110:w: +l:11011001000:z: +l:11011101111:p: +l:110110010010:h: +l:110110010011:*: +l:1101110111000:g: +l:1101110111001:,: +l:11011101110100:r: +l:11011101110101:n: +l:11011101110111:-: +l:110111011101100:!: +l:1101110111011011:?: +l:11011101110110101:C: +l:110111011101101000:ESCAPE: +l:110111011101101001:j: +m:10:e: +m:001:m: +m:011: : +m:111:a: +m:0000:i: +m:0001:STOP: +m:0100:y: +m:1101:p: +m:01010:b: +m:11000:o: +m:110010:n: +m:110011:s: +m:0101100:l: +m:0101110:f: +m:01011010:0x3a: +m:01011110:4: +m:010110110:h: +m:010111110:w: +m:0101101111:': +m:0101111110:r: +m:0101111111:u: +m:01011011101:.: +m:010110111001:k: +m:0101101110000:ESCAPE: +m:0101101110001:d: +n:000:i: +n:100:g: +n:101: : +n:110:d: +n:0011:a: +n:0100:s: +n:0110:e: +n:1110:STOP: +n:1111:t: +n:01110:c: +n:01111:n: +n:001010:y: +n:010100:': +n:010101:k: +n:010111:o: +n:0010000:r: +n:0010011:f: +n:0010110:u: +n:0010111:j: +n:00100010:v: +n:00100100:-: +n:00100101:.: +n:01011000:l: +n:01011010:x: +n:01011011:0x3a: +n:001000111:,: +n:010110011:m: +n:0010001100:!: +n:00100011010:z: +n:01011001001:?: +n:01011001010:h: +n:01011001011:b: +n:001000110110:B: +n:001000110111:*: +n:010110010000:w: +n:0101100100011:q: +n:01011001000101:p: +n:010110010001000:;: +n:0101100100010010:/: +n:0101100100010011:ESCAPE: +o:00:r: +o:110:n: +o:0100:f: +o:0101: : +o:0110:w: +o:1000:o: +o:1011:u: +o:01111:t: +o:10010:c: +o:10100:p: +o:10101:d: +o:11100:m: +o:11110:l: +o:011100:a: +o:011101:b: +o:100110:y: +o:100111:STOP: +o:111010:s: +o:111011:k: +o:1111101:v: +o:1111110:g: +o:11111111:i: +o:111110001:h: +o:111110010:!: +o:111111100:e: +o:111111101:j: +o:1111100110:': +o:11111000001:?: +o:11111000010:0x3a: +o:11111001110:z: +o:11111001111:x: +o:111110000000:J: +o:111110000110:.: +o:111110000111:-: +o:11111000000100:4: +o:11111000000110:,: +o:11111000000111:G: +o:111110000001011:): +o:1111100000010100:S: +o:11111000000101010:D: +o:111110000001010110:ESCAPE: +o:111110000001010111:q: +p:00:e: +p:010:STOP: +p:100:i: +p:110:o: +p:0110:s: +p:1010: : +p:1110:p: +p:01110:l: +p:01111:r: +p:10110:h: +p:11110:a: +p:101110:t: +p:101111:': +p:1111100:d: +p:1111101:m: +p:1111110:y: +p:111111101:0x3a: +p:111111111:!: +p:1111111100:w: +p:1111111101:u: +p:11111110000:b: +p:11111110010:-: +p:11111110011:.: +p:111111100011:n: +p:1111111000101:k: +p:11111110001001:,: +p:111111100010000:ESCAPE: +p:111111100010001:c: +q:1:u: +q:01:STOP: +q:001:0x3a: +q:0000:ESCAPE: +q:0001:': +r:000: : +r:011:i: +r:101:e: +r:0011:y: +r:0100:d: +r:1000:s: +r:1001:t: +r:1100:a: +r:1101:STOP: +r:1111:o: +r:01011:n: +r:11101:l: +r:001001:k: +r:001010:r: +r:001011:m: +r:010101:u: +r:111001:g: +r:0010000:': +r:0101001:c: +r:1110001:0x3a: +r:00100010:f: +r:00100011:.: +r:01010001:b: +r:11100000:v: +r:010100000:,: +r:010100001:p: +r:111000010:w: +r:1110000111:j: +r:11100001100:-: +r:111000011010:h: +r:1110000110110:G: +r:11100001101110:q: +r:111000011011111:S: +r:1110000110111100:!: +r:111000011011110100:*: +r:111000011011110110:T: +r:1110000110111101010:ESCAPE: +r:1110000110111101011:E: +r:1110000110111101110:1: +r:1110000110111101111:/: +s:10: : +s:11:STOP: +s:011:t: +s:0000:s: +s:0010:i: +s:0011:h: +s:00011:;: +s:01010:e: +s:010001:o: +s:010011:c: +s:010110:0x3a: +s:0001000:.: +s:0001001:!: +s:0001011:y: +s:0100000:p: +s:0100100:a: +s:0101111:u: +s:00010100:,: +s:00010101:f: +s:01000011:': +s:01001011:n: +s:01011100:l: +s:01011101:r: +s:010000101:k: +s:010010100:d: +s:0100001001:m: +s:0100101011:b: +s:01000010000:?: +s:01000010001:w: +s:01001010100:g: +s:010010101010:q: +s:01001010101101:E: +s:01001010101110:-: +s:010010101011000:ESCAPE: +s:010010101011001:): +s:010010101011110:W: +s:010010101011111:1: +t:000:i: +t:011:STOP: +t:100: : +t:111:h: +t:0010:a: +t:0100:r: +t:1010:s: +t:1011:o: +t:1101:e: +t:00111:t: +t:01010:y: +t:11000:u: +t:010110:m: +t:110010:c: +t:110011:l: +t:0011000:': +t:0011010:0x3a: +t:00110010:w: +t:00110110:!: +t:01011100:.: +t:01011101:b: +t:01011110:E: +t:01011111:f: +t:001100110:?: +t:001101110:n: +t:0011001110:z: +t:0011011110:d: +t:00110011111:,: +t:00110111110:P: +t:001100111100:v: +t:001100111101:-: +t:001101111110:): +t:0011011111110:g: +t:00110111111110:ESCAPE: +t:001101111111110:S: +t:0011011111111111:4: +t:00110111111111100:k: +t:001101111111111010:j: +t:001101111111111011:p: +u:00:r: +u:100:s: +u:111:n: +u:0100:e: +u:0101:m: +u:1100:t: +u:01100:c: +u:01101:g: +u:01110:b: +u:10100:p: +u:10101:i: +u:10110:l: +u:11010:d: +u:11011:a: +u:011110:STOP: +u:101110:y: +u:0111110:z: +u:1011110: : +u:01111111:': +u:10111110:-: +u:011111100:k: +u:101111111:0x3a: +u:0111111010:f: +u:0111111011:,: +u:1011111100:w: +u:101111110100:v: +u:101111110101:x: +u:101111110111:o: +u:1011111101100:j: +u:10111111011010:u: +u:101111110110110:.: +u:1011111101101111:h: +u:10111111011011100:?: +u:10111111011011101:ESCAPE: +v:1:e: +v:01:i: +v:001:a: +v:0001:o: +v:00000: : +v:000011:STOP: +v:0000100:y: +v:00001011:s: +v:000010101:r: +v:0000101000:ESCAPE: +v:0000101001:.: +w:0:s: +w:100: : +w:110:STOP: +w:1011:i: +w:1110:o: +w:10100:a: +w:11110:n: +w:11111:e: +w:1010111:y: +w:10101000:m: +w:10101011:d: +w:10101101:l: +w:101010011:b: +w:101010100:k: +w:101010101:r: +w:1010100100:j: +w:1010110001:,: +w:1010110011:h: +w:10101001011:-: +w:10101100000:c: +w:10101100001:f: +w:10101100101:p: +w:101010010100:g: +w:101011001000:t: +w:1010100101010:.: +w:1010100101011:0x3a: +w:1010110010011:q: +w:10101100100101:': +w:101011001001001:?: +w:1010110010010000:ESCAPE: +w:1010110010010001:B: +x:00:p: +x:10: : +x:11:t: +x:0110:STOP: +x:01000:o: +x:01010:c: +x:01110:i: +x:01111:m: +x:010010:e: +x:010110:y: +x:0100110:u: +x:0100111:f: +x:0101111:,: +x:010111000:g: +x:010111001:a: +x:010111011:9: +x:0101110101:': +x:01011101001:x: +x:010111010000:ESCAPE: +x:010111010001:s: +y:0: : +y:11:STOP: +y:10001:o: +y:10010:s: +y:10100:a: +y:10110:l: +y:10111:0x3a: +y:100110:d: +y:1000001:n: +y:1000010:t: +y:1010100:': +y:1010101:b: +y:1010111:.: +y:10000000:i: +y:10000110:,: +y:10000111:p: +y:10011100:m: +y:10011110:c: +y:10101100:w: +y:10101101:e: +y:100000010:?: +y:100000011:f: +y:100111010:r: +y:100111011:g: +y:1001111100:z: +y:1001111110:-: +y:1001111111:T: +y:100111110100:2: +y:100111110110:!: +y:100111110111:k: +y:1001111101010:v: +y:10011111010110:y: +y:100111110101110:h: +y:1001111101011111:j: +y:10011111010111100:ESCAPE: +y:10011111010111101:): +z:00:z: +z:01:STOP: +z:101:i: +z:1000:y: +z:1001:e: +z:1100:w: +z:1101: : +z:1110:l: +z:11110:a: +z:111110:o: +z:11111100:m: +z:11111101:0x3a: +z:11111111:c: +z:111111100:,: +z:1111111011:b: +z:11111110100:u: +z:111111101011:!: +z:11111110101000:ESCAPE: +z:11111110101001:t: +z:11111110101010:h: +z:11111110101011:?: +{:0:ESCAPE: +{:1:ESCAPE: +|:0:ESCAPE: +|:1:ESCAPE: +}:0:ESCAPE: +}:1:ESCAPE: +~:0:ESCAPE: +~:1:ESCAPE: +0x7f:0:ESCAPE: +0x7f:1:ESCAPE: +START:00:T: +START:010:B: +START:1000:C: +START:1001:I: +START:1101:S: +START:01100:L: +START:01110:D: +START:01111:H: +START:10100:R: +START:10101:N: +START:10110:E: +START:11000:F: +START:11001:A: +START:11100:M: +START:11101:P: +START:11110:W: +START:011011:Q: +START:101111:G: +START:111110:J: +START:0110100:K: +START:1011101:U: +START:1111110:O: +START:01101010:6: +START:01101011:.: +START:10111000:V: +START:11111110:Y: +START:101110011:2: +START:111111111:X: +START:1011100100:Z: +START:1111111100:8: +START:10111001010:1: +START:10111001011:3: +START:111111110100:4: +START:111111110101:': +START:111111110111: : +START:11111111011000:5: +START:11111111011011:0: +START:111111110110011:m: +START:1111111101100100:c: +START:1111111101101000:9: +START:1111111101101010:a: +START:1111111101101011:d: +START:11111111011001010:s: +START:11111111011001011:p: +START:11111111011010010:(: +START:111111110110100110:t: +START:1111111101101001110:7: +START:11111111011010011110:ESCAPE: +START:11111111011010011111:l: +ESCAPE:0:ESCAPE: +ESCAPE:1:ESCAPE: +STOP:0:ESCAPE: +STOP:1:ESCAPE: +0x03:0:ESCAPE: +0x03:1:ESCAPE: +0x04:0:ESCAPE: +0x04:1:ESCAPE: +0x05:0:ESCAPE: +0x05:1:ESCAPE: +0x06:0:ESCAPE: +0x06:1:ESCAPE: +0x07:0:ESCAPE: +0x07:1:ESCAPE: +0x08:0:ESCAPE: +0x08:1:ESCAPE: +0x09:0:ESCAPE: +0x09:1:ESCAPE: +0x0a:0:ESCAPE: +0x0a:1:ESCAPE: +0x0b:0:ESCAPE: +0x0b:1:ESCAPE: +0x0c:0:ESCAPE: +0x0c:1:ESCAPE: +0x0d:0:ESCAPE: +0x0d:1:ESCAPE: +0x0e:0:ESCAPE: +0x0e:1:ESCAPE: +0x0f:0:ESCAPE: +0x0f:1:ESCAPE: +0x10:0:ESCAPE: +0x10:1:ESCAPE: +0x11:0:ESCAPE: +0x11:1:ESCAPE: +0x12:0:ESCAPE: +0x12:1:ESCAPE: +0x13:0:ESCAPE: +0x13:1:ESCAPE: +0x14:0:ESCAPE: +0x14:1:ESCAPE: +0x15:0:ESCAPE: +0x15:1:ESCAPE: +0x16:0:ESCAPE: +0x16:1:ESCAPE: +0x17:0:ESCAPE: +0x17:1:ESCAPE: +0x18:0:ESCAPE: +0x18:1:ESCAPE: +0x19:0:ESCAPE: +0x19:1:ESCAPE: +0x1a:0:ESCAPE: +0x1a:1:ESCAPE: +0x1b:0:ESCAPE: +0x1b:1:ESCAPE: +0x1c:0:ESCAPE: +0x1c:1:ESCAPE: +0x1d:0:ESCAPE: +0x1d:1:ESCAPE: +0x1e:0:ESCAPE: +0x1e:1:ESCAPE: +0x1f:0:ESCAPE: +0x1f:1:ESCAPE: + :0000:W: + :0011:M: + :0100:C: + :0101:B: + :0111:P: + :1001:T: + :1100:N: + :1111:S: + :00011:I: + :00100:G: + :01100:H: + :01101:D: + :10000:o: + :10001:A: + :10100:t: + :10110:a: + :10111:F: + :11010:L: + :11011:R: + :001011:U: + :101011:O: + :111001:J: + :111010:E: + :0001000:f: + :0001001:Q: + :0001011:V: + :0010100:STOP: + :0010101:w: + :1110000:2: + :1110001:K: + :1110110:Y: + :1110111:i: + :00010100:-: + :10101001:1: + :101010000:&: + :101010101:X: + :0001010101:r: + :1010100010:5: + :1010100011:Z: + :1010101001:9: + :1010101101:s: + :1010101110:4: + :1010101111:3: + :00010101000:7: + :00010101100:b: + :00010101110:y: + :10101010000:': + :10101011000:6: + :000101011010:v: + :000101011011:d: + :000101011110:(: + :101010100010: : + :101010100011:0: + :101010110010:n: + :101010110011:8: + :0001010100110:g: + :0001010111110:u: + :00010101001000:+: + :00010101001001:.: + :00010101001010:ESCAPE: + :00010101001011:l: + :00010101001111:m: + :00010101111110:p: + :000101010011100:\: + :000101010011101:/: + :000101011111111:e: + :0001010111111101:": + :00010101111111001:c: + :000101011111110000:k: + :000101011111110001:h: +!:1:STOP: +!:01: : +!:001:.: +!:0001:!: +!:00001:": +!:000000:ESCAPE: +!:000001:0x3a: +":0: : +":10:ESCAPE: +":11:I: +#:0:ESCAPE: +#:1:ESCAPE: +$:0:ESCAPE: +$:1:ESCAPE: +%:1: : +%:00:ESCAPE: +%:01:STOP: +&:1: : +&:01:B: +&:000:ESCAPE: +&:001:.: +':1:s: +':000:m: +':010:C: +':0010:t: +':0011: : +':01100:d: +':01110:v: +':011011:r: +':011111:A: +':0110101:n: +':01101000:G: +':01111001:l: +':011010011:D: +':011110000:B: +':011110001:e: +':011110101:i: +':011110110:6: +':0110100100:L: +':0111101001:STOP: +':0111101111:w: +':01101001010:O: +':01111010000:S: +':01111010001:E: +':01111011101:N: +':011110111001:R: +':0110100101100:a: +':0110100101101:M: +':0110100101110:K: +':0110100101111:F: +':0111101110000:0: +':01111011100010:ESCAPE: +':01111011100011:c: +(:1:c: +(:000:1: +(:0010:M: +(:0011:U: +(:0100:R: +(:0101:D: +(:0110:H: +(:01110:S: +(:011110:F: +(:0111110:G: +(:01111110:ESCAPE: +(:01111111:Y: +):1:STOP: +):00:ESCAPE: +):01: : +*:0:*: +*:101: : +*:1000:d: +*:1100:m: +*:1101:t: +*:1111:s: +*:10010:e: +*:11100:g: +*:11101:k: +*:100110:ESCAPE: +*:100111:y: ++:0:ESCAPE: ++:1: : +,:1: : +,:01:0: +,:000:ESCAPE: +,:001:.: +-:11: : +-:011:S: +-:100:G: +-:101:O: +-:0011:T: +-:0100:U: +-:00000:E: +-:00010:D: +-:000010:m: +-:000110:0: +-:000111:I: +-:001010:6: +-:010100:F: +-:010101:o: +-:0000110:L: +-:0000111:C: +-:0010001:A: +-:0010010:t: +-:0010011:Y: +-:0010111:2: +-:0101100:B: +-:0101101:.: +-:00100000:P: +-:00100001:Z: +-:01011100:8: +-:01011101:i: +-:01011110:d: +-:01011111:H: +-:001011001:N: +-:001011011:R: +-:0010110000:1: +-:0010110001:W: +-:00101101001:c: +-:00101101010:a: +-:00101101011:M: +-:001011010000:ESCAPE: +-:001011010001:Q: +.:1:.: +.:01:STOP: +.:0010: : +.:00000:I: +.:00001:T: +.:00010:C: +.:00110:p: +.:00111:0: +.:000111:H: +.:00011010:W: +.:000110001:S: +.:000110110:3: +.:000110111:B: +.:0001100000:1: +.:0001100001:M: +.:0001100110:c: +.:00011001000:t: +.:00011001001:R: +.:00011001010:F: +.:00011001110:E: +.:00011001111:A: +.:0001100101100:ESCAPE: +.:0001100101101:l: +.:0001100101110:d: +.:0001100101111:U: +/:00:1: +/:10:7: +/:010:4: +/:011:2: +/:110:3: +/:1110:5: +/:111100:6: +/:111110:C: +/:1111010:9: +/:1111011: : +/:1111110:8: +/:11111111:U: +/:1111111000:G: +/:1111111010:0: +/:11111110010:ESCAPE: +/:11111110011:W: +/:11111110110:V: +/:11111110111:S: +0:00:6: +0:01: : +0:11:0: +0:1001:p: +0:1010:STOP: +0:10000:1: +0:10001:a: +0:10111:7: +0:1011000:-: +0:1011010:s: +0:10110011:4: +0:10110110:t: +0:101101111:%: +0:1011001000:8: +0:1011001001:0x3a: +0:1011001010:5: +0:1011001011:2: +0:1011011100:/: +0:10110111011:U: +0:101101110101:,: +0:1011011101000:.: +0:10110111010010:ESCAPE: +0:10110111010011:l: +1:01:STOP: +1:000:.: +1:101:0: +1:111:1: +1:0010:2: +1:0011: : +1:1101:/: +1:10010:8: +1:11000:3: +1:100000:5: +1:100001:s: +1:100010:6: +1:100011:0x3a: +1:100110:': +1:110010:X: +1:110011:9: +1:1001111:4: +1:10011101:-: +1:100111001:7: +1:1001110000:): +1:10011100010:ESCAPE: +1:10011100011:,: +2:0:0: +2:11:4: +2:101:STOP: +2:1001: : +2:10000:0x3a: +2:1000101:5: +2:1000111:/: +2:10001000:.: +2:10001001:1: +2:10001100:W: +2:100011011:7: +2:10001101001:3: +2:10001101011:Z: +2:100011010000:n: +2:100011010001:6: +2:100011010101:': +2:1000110101000:ESCAPE: +2:1000110101001:s: +3:0: : +3:10:STOP: +3:1100:r: +3:1101:/: +3:1111:B: +3:11100:0: +3:1110100:0x3a: +3:1110110:-: +3:11101010:1: +3:11101011:8: +3:11101111:4: +3:1110111000:6: +3:1110111011:9: +3:11101110011:t: +3:11101110100:3: +3:111011100100:ESCAPE: +3:111011100101:e: +3:111011101010:7: +3:111011101011:5: +4:0:STOP: +4:11: : +4:1001:0x3a: +4:1011:/: +4:10001:8: +4:10101:.: +4:100000:9: +4:101000:0: +4:1010010:M: +4:10000101:I: +4:10000110:): +4:10100110:R: +4:10100111:-: +4:100001000:W: +4:100001110:P: +4:100001111:5: +4:1000010011:2: +4:10000100100:ESCAPE: +4:10000100101:': +5:0:STOP: +5:11: : +5:101:0: +5:1001:/: +5:100001:-: +5:100011:0x3a: +5:1000001:t: +5:1000100:3: +5:1000101:1: +5:10000000:ESCAPE: +5:10000001:a: +6:00:STOP: +6:01: : +6:10:0: +6:111:0x3a: +6:11001:.: +6:11011:i: +6:110000:-: +6:110101:a: +6:1100011:4: +6:1101000:8: +6:1101001:/: +6:11000100:6: +6:110001011:9: +6:1100010100:3: +6:11000101010:ESCAPE: +6:11000101011:t: +7:1:STOP: +7:01: : +7:000:0: +7:0011:.: +7:00101:/: +7:0010000:1: +7:0010010:5: +7:00100010:ESCAPE: +7:00100011:4: +7:00100110:3: +7:00100111:2: +8:1: : +8:00:0: +8:010:0x3a: +8:01101:STOP: +8:011000:t: +8:011001:p: +8:011101:8: +8:011110:.: +8:011111:6: +8:0111000:5: +8:01110010:9: +8:011100110:M: +8:0111001110:F: +8:01110011110:ESCAPE: +8:01110011111:c: +9:0:1: +9:11:STOP: +9:1000:9: +9:1010:.: +9:10011:0: +9:100100: : +9:100101:8: +9:101100:7: +9:101101:/: +9:101110:6: +9:1011111:0x3a: +9:10111101:4: +9:101111000:ESCAPE: +9:101111001:3: +0x3a:1: : +0x3a:00:0: +0x3a:011:.: +0x3a:0100:2: +0x3a:01010:1: +0x3a:010111:3: +0x3a:0101101:C: +0x3a:01011000:ESCAPE: +0x3a:01011001:T: +;:1: : +;:00:ESCAPE: +;:01:.: +<:0:ESCAPE: +<:1:ESCAPE: +=:0:ESCAPE: +=:1:ESCAPE: +>:0:ESCAPE: +>:1:ESCAPE: +?:1:STOP: +?:01: : +?:001:0x3a: +?:0000:ESCAPE: +?:0001:.: +@:0:ESCAPE: +@:1:H: +A:001:r: +A:010: : +A:100:l: +A:110:n: +A:0000:m: +A:0111:g: +A:1111:d: +A:00010:w: +A:01100:T: +A:01101:c: +A:10101:t: +A:10110:f: +A:10111:i: +A:11100:s: +A:000110:u: +A:000111:STOP: +A:101001:R: +A:111010:b: +A:1010001:v: +A:1110110:p: +A:10100000:S: +A:11101110:M: +A:101000011:P: +A:111011111:.: +A:10100001000:e: +A:10100001001:B: +A:10100001010:1: +A:11101111011:-: +A:101000010110:k: +A:101000010111:h: +A:111011110000:a: +A:111011110100:y: +A:111011110101:*: +A:1110111100010:x: +A:1110111100011:': +A:1110111100100:N: +A:1110111100110:2: +A:11101111001010:0x3a: +A:11101111001111:z: +A:111011110010110:L: +A:111011110010111:F: +A:111011110011100:D: +A:1110111100111010:ESCAPE: +A:1110111100111011:q: +B:00:C: +B:01:B: +B:101:r: +B:1001:i: +B:1100:o: +B:1101:u: +B:1110:a: +B:1111:e: +B:10001:l: +B:1000000:STOP: +B:1000010:y: +B:10000010:O: +B:10000110:3: +B:100000111:A: +B:100001110:S: +B:1000001101:0x3a: +B:10000011000:.: +B:10000011001:w: +B:10000111101:h: +B:10000111110:*: +B:10000111111: : +B:100001111001:R: +B:1000011110000:': +B:10000111100011:T: +B:100001111000100:ESCAPE: +B:100001111000101:4: +C:00:o: +C:01: : +C:100:l: +C:110:h: +C:1010:r: +C:1110:a: +C:10110:i: +C:10111:e: +C:111100:u: +C:111101:B: +C:1111100:y: +C:1111110:!: +C:11111011:.: +C:111110100:w: +C:111111100:STOP: +C:111111110:S: +C:111111111:T: +C:1111101011:2: +C:1111111011:I: +C:11111010100:4: +C:11111010101:*: +C:11111110101:D: +C:111111101000:U: +C:1111111010010:': +C:11111110100110:n: +C:111111101001110:z: +C:11111110100111100:O: +C:11111110100111101:E: +C:11111110100111110:A: +C:111111101001111110:ESCAPE: +C:111111101001111111:s: +D:01:o: +D:10:a: +D:000:r: +D:110:e: +D:111:i: +D:00100:t: +D:00111:u: +D:001011: : +D:0010101:J: +D:0011000:y: +D:0011010:STOP: +D:0011011:I: +D:00110011:0x3a: +D:001010001:*: +D:001010010:-: +D:001010011:&: +D:001100100:': +D:0010100000:A: +D:0010100001:h: +D:00110010101:N: +D:00110010110:V: +D:001100101110:D: +D:001100101111:w: +D:0011001010000:O: +D:0011001010001:E: +D:0011001010011:d: +D:00110010100100:ESCAPE: +D:00110010100101:T: +E:00:m: +E:011:v: +E:101:n: +E:111:a: +E:0100:E: +E:1000:STOP: +E:1101:x: +E:10011:d: +E:11001:l: +E:010100:4: +E:010101:y: +E:010110:u: +E:100100:r: +E:110000:i: +E:0101111:s: +E:1001010:F: +E:1100010:X: +E:10010110:R: +E:11000111: : +E:010111010:g: +E:100101111:0x3a: +E:110001100:T: +E:110001101:': +E:0101110001:c: +E:0101110011:q: +E:0101110110:e: +E:0101110111:C: +E:1001011100:p: +E:01011100000:-: +E:01011100101:Z: +E:10010111011:t: +E:010111000010:S: +E:010111000011:.: +E:100101110101:W: +E:0101110010000:!: +E:1001011101000:o: +E:01011100100010:f: +E:01011100100011:U: +E:01011100100100:N: +E:01011100100101:M: +E:01011100100110:L: +E:01011100100111:A: +E:10010111010011:D: +E:100101110100100:ESCAPE: +E:100101110100101:w: +F:00:i: +F:10:a: +F:011:r: +F:110:u: +F:111:o: +F:0100:e: +F:01011:l: +F:0101000:A: +F:0101010:O: +F:01010010: : +F:010100110:h: +F:010100111:t: +F:010101101:f: +F:010101111:L: +F:0101011001:STOP: +F:01010111000:j: +F:01010111001:I: +F:01010111010:.: +F:01010111011:1: +F:010101100000:M: +F:010101100010:*: +F:010101100011:K: +F:0101011000010:y: +F:01010110000111:H: +F:010101100001100:ESCAPE: +F:010101100001101:!: +G:10:r: +G:001:M: +G:010:a: +G:011:o: +G:110:i: +G:111:e: +G:00001:u: +G:00010:X: +G:000001:h: +G:000111:l: +G:0000001:y: +G:0001100:w: +G:00000000:0x3a: +G:00011011:C: +G:000000011:STOP: +G:000110100:-: +G:0001101010:P: +G:0001101011: : +G:00000001000:': +G:00000001010:A: +G:000000010010:U: +G:000000010110:T: +G:000000010111:4: +G:0000000100110:ESCAPE: +G:0000000100111:Y: +H:0:o: +H:100:a: +H:101:i: +H:110:e: +H:1110:u: +H:11110:R: +H:111110:A: +H:1111110:.: +H:111111101:y: +H:111111110:S: +H:1111111110:E: +H:1111111111:r: +H:11111110000:STOP: +H:11111110010:L: +H:11111110011:M: +H:111111100011:w: +H:1111111000101:D: +H:11111110001000:ESCAPE: +H:11111110001001:I: +I:0:T: +I:100:s: +I:101:n: +I:1101:t: +I:11001: : +I:11101:': +I:11111:r: +I:110000:I: +I:110001:STOP: +I:111001:m: +I:1110000:d: +I:1110001:N: +I:1111001:z: +I:1111010:.: +I:11110000:a: +I:11110001:Y: +I:111101100:S: +I:111101110:c: +I:11110110101:D: +I:11110110110:f: +I:11110111100:l: +I:11110111111:y: +I:111101101000:V: +I:111101101110:o: +I:111101111011:F: +I:1111011010010:,: +I:1111011010011:A: +I:1111011011110:O: +I:1111011110101:g: +I:1111011111000:C: +I:1111011111001:0x3a: +I:1111011111011:v: +I:11110110111110:p: +I:11110110111111:E: +I:11110111101000:B: +I:11110111110100:k: +I:11110111110101:b: +I:1111011110100100:ESCAPE: +I:1111011110100101:R: +I:1111011110100110:L: +I:1111011110100111:G: +J:00:a: +J:01:u: +J:11:e: +J:101:o: +J:1001:i: +J:10000: : +J:100010:K: +J:1000111:STOP: +J:100011001:s: +J:100011010:F: +J:1000110000:V: +J:1000110001:': +J:1000110111:f: +J:10001101101:G: +J:100011011000:ESCAPE: +J:100011011001:D: +K:01:i: +K:11:y: +K:001:e: +K:101: : +K:0000:a: +K:1000:o: +K:00010:STOP: +K:00011:r: +K:100101:t: +K:100110:n: +K:100111:S: +K:10010011:G: +K:100100000:-: +K:100100011:O: +K:100100100:h: +K:100100101:w: +K:1001000010:1: +K:1001000011:': +K:10010001011:u: +K:100100010000:T: +K:100100010001:N: +K:100100010010:0x3a: +K:100100010011:.: +K:100100010100:,: +K:1001000101010:ESCAPE: +K:1001000101011:l: +L:00:a: +L:10:o: +L:11:i: +L:010:e: +L:0111:u: +L:01101:K: +L:0110000:l: +L:0110010:A: +L:0110011: : +L:01100011:y: +L:0110001000:L: +L:0110001001:I: +L:01100010100:C: +L:01100010101:.: +L:01100010111:STOP: +L:011000101101:': +L:0110001011000:E: +L:01100010110010:ESCAPE: +L:01100010110011:Y: +M:01:a: +M:10:o: +M:000:e: +M:111:i: +M:0010:T: +M:1100:y: +M:1101:u: +M:00110:STOP: +M:001111:c: +M:00111001:r: +M:00111010:E: +M:001110111:F: +M:0011100001:Z: +M:0011100011: : +M:0011101100:1: +M:0011101101:I: +M:00111000001:h: +M:00111000100:C: +M:001110000001:Q: +M:001110001010:K: +M:0011100010110:P: +M:00111000000000:0x3a: +M:00111000000001:.: +M:00111000000010:': +M:00111000101110:M: +M:001110000000110:ESCAPE: +M:001110000000111:w: +M:001110001011110:S: +M:001110001011111:R: +N:1:e: +N:00:o: +N:011:i: +N:0101:a: +N:01001:u: +N:010000:C: +N:01000100:E: +N:01000110:F: +N:010001110:B: +N:010001111:H: +N:0100010110:Y: +N:01000101000:G: +N:01000101001:': +N:01000101011:I: +N:01000101110:A: +N:010001010100:M: +N:010001011110: : +N:010001011111:STOP: +N:0100010101010:T: +N:01000101010110:.: +N:010001010101110:ESCAPE: +N:010001010101111:Z: +O:000:': +O:010:f: +O:110:u: +O:111:n: +O:0010:M: +O:0011:l: +O:1001:m: +O:01101:r: +O:01110:d: +O:10000:p: +O:10100:h: +O:10110:STOP: +O:011001:S: +O:011110:z: +O:011111:b: +O:100011:v: +O:101010:w: +O:101011:U: +O:1011100:T: +O:1011101:O: +O:1011110:K: +O:01100001:C: +O:01100010:x: +O:01100011:.: +O:10001001:t: +O:10001011: : +O:10111110:s: +O:10111111:N: +O:011000001:g: +O:100010000:-: +O:100010101:a: +O:1000100010:i: +O:1000100011:e: +O:1000101001:o: +O:01100000000:A: +O:01100000001:j: +O:01100000010:c: +O:10001010000:2: +O:011000000111:R: +O:100010100010:P: +O:100010100011:0x3a: +O:0110000001100:E: +O:01100000011010:ESCAPE: +O:01100000011011:L: +P:01:r: +P:10:l: +P:000:e: +P:001:a: +P:111:o: +P:1101:i: +P:110000:D: +P:110001:u: +P:110011:h: +P:11001000: : +P:11001010:2: +P:110010010:H: +P:110010011:M: +P:110010110:S: +P:11001011100:0x3a: +P:11001011101:*: +P:110010111101:s: +P:1100101111001:I: +P:1100101111100:STOP: +P:1100101111101:G: +P:1100101111110:': +P:11001011111110:y: +P:110010111100000:Y: +P:110010111100001:L: +P:110010111100010:C: +P:110010111100011:ESCAPE: +P:110010111111110:O: +P:110010111111111:.: +Q:1:u: +Q:000:I: +Q:001:STOP: +Q:010:V: +Q:0111: : +Q:01101:C: +Q:011000:ESCAPE: +Q:011001:': +R:00:a: +R:01:o: +R:11:e: +R:100:i: +R:1011:u: +R:10101:E: +R:101000:D: +R:1010011:STOP: +R:10100101:h: +R:1010010000:I: +R:1010010010:y: +R:1010010011:n: +R:101001000110: : +R:1010010001000:': +R:1010010001011:S: +R:1010010001110:N: +R:10100100010010:B: +R:10100100010011:.: +R:10100100010100:&: +R:10100100011110:T: +R:10100100011111:1: +R:101001000101010:ESCAPE: +R:101001000101011:C: +S:001:o: +S:010:p: +S:011:u: +S:110:h: +S:111:t: +S:0001:a: +S:1001:e: +S:1011:c: +S:00000:n: +S:10001:i: +S:10101:k: +S:000011:w: +S:101000:m: +S:0000101:A: +S:1000010:l: +S:1010010:q: +S:1010011:M: +S:00001000:2: +S:00001001:P: +S:10000000:O: +S:10000010:I: +S:10000011: : +S:10000111:STOP: +S:100000010:y: +S:100001100:E: +S:1000000111:?: +S:1000011011:H: +S:10000001100:B: +S:10000110100:g: +S:100000011011:r: +S:100001101010:*: +S:1000011010110:3: +S:1000011010111:.: +S:10000001101000:5: +S:10000001101010:0x3a: +S:10000001101011:1: +S:100000011010010:C: +S:1000000110100110:ESCAPE: +S:1000000110100111:Y: +T:0:h: +T:101:o: +T:111:V: +T:1000:e: +T:1001:r: +T:11000:a: +T:11010:w: +T:110011:i: +T:1101101:O: +T:1101111:H: +T:11001001:y: +T:11001010:M: +T:11011000:.: +T:11011100:u: +T:11011101:W: +T:110010001:P: +T:110010110:0x3a: +T:110010111:4: +T:110110011:I: +T:1101100100: : +T:1101100101:STOP: +T:11001000010:X: +T:11001000011:s: +T:110010000000:T: +T:110010000001:S: +T:110010000010:B: +T:1100100000110:U: +T:11001000001110:A: +T:1100100000111100:C: +T:1100100000111101:*: +T:1100100000111111:N: +T:11001000001111100:ESCAPE: +T:11001000001111101:Y: +U:0:n: +U:10:p: +U:1101:K: +U:1111:l: +U:11000:R: +U:11100:S: +U:110011:E: +U:111011:s: +U:1100101:g: +U:1110101:T: +U:11001001: : +U:110010000:-: +U:110010001:r: +U:111010000:2: +U:111010001:m: +U:111010011:STOP: +U:1110100100:.: +U:11101001010:c: +U:111010010110:k: +U:11101001011100:ESCAPE: +U:11101001011101:z: +U:11101001011110:t: +U:11101001011111:B: +V:1: : +V:000:0x3a: +V:011:i: +V:0010:e: +V:0011:a: +V:0100:3: +V:010101:C: +V:010111:STOP: +V:0101000:': +V:0101001:4: +V:0101101:o: +V:01011001:I: +V:0101100000:s: +V:0101100001:D: +V:0101100010:.: +V:01011000110:8: +V:0101100011101:u: +V:0101100011110:r: +V:0101100011111:B: +V:01011000111000:ESCAPE: +V:01011000111001:E: +W:01:o: +W:11:e: +W:001:h: +W:100:a: +W:101:i: +W:00000:.: +W:00010:O: +W:00011:r: +W:000011:y: +W:0000100:u: +W:00001010:STOP: +W:000010111:A: +W:00001011001:Y: +W:00001011010:T: +W:00001011011: : +W:000010110000:I: +W:0000101100010:ESCAPE: +W:0000101100011:l: +X:00:STOP: +X:10: : +X:11:t: +X:010:T: +X:0111:c: +X:01101:m: +X:011001:U: +X:01100000:a: +X:01100001:X: +X:01100010:-: +X:011000110:x: +X:0110001111:9: +X:01100011100:ESCAPE: +X:01100011101:i: +Y:1:o: +Y:01:e: +Y:000:u: +Y:0011: : +Y:00100:v: +Y:001010:a: +Y:00101110:P: +Y:00101111:': +Y:001011000:n: +Y:001011011:r: +Y:0010110010:D: +Y:00101100110:w: +Y:00101100111:s: +Y:00101101000:R: +Y:00101101001:L: +Y:00101101010:STOP: +Y:001011010110:C: +Y:0010110101110:ESCAPE: +Y:0010110101111:N: +Z:1:o: +Z:00:a: +Z:010:i: +Z:01100:O: +Z:01101:u: +Z:01110:e: +Z:011110: : +Z:0111111:STOP: +Z:01111101:0x3a: +Z:011111000:ESCAPE: +Z:011111001:-: +[:0:ESCAPE: +[:1:ESCAPE: +\:0:ESCAPE: +\:1:x: +]:0:ESCAPE: +]:1:ESCAPE: +^:0:ESCAPE: +^:1:ESCAPE: +_:0:ESCAPE: +_:1:ESCAPE: +`:0:ESCAPE: +`:1:ESCAPE: +a:001:r: +a:011:t: +a:100:l: +a:110:n: +a:0001:m: +a:0100:c: +a:1010:s: +a:1110:y: +a:10110: : +a:10111:d: +a:11110:i: +a:11111:k: +a:000010:b: +a:000011:STOP: +a:010110:p: +a:010111:g: +a:0000000:e: +a:0000001:': +a:0000011:w: +a:0101001:u: +a:0101010:z: +a:0101011:v: +a:00000101:f: +a:01010001:h: +a:000001001:0x3a: +a:0000010000:!: +a:0101000000:o: +a:0101000001:x: +a:00000100010:-: +a:00000100011:a: +a:01010000101:.: +a:01010000110:N: +a:01010000111:,: +a:010100001000:q: +a:0101000010010:j: +a:01010000100111:?: +a:010100001001101:J: +a:0101000010011000:ESCAPE: +a:0101000010011001:U: +b:000:r: +b:001:o: +b:010:e: +b:011:a: +b:100:i: +b:1011:u: +b:1100:y: +b:1101:l: +b:1111: : +b:10101:s: +b:11100:b: +b:11101:STOP: +b:101000:h: +b:1010010:3: +b:10100111:': +b:1010011001:t: +b:1010011010:j: +b:10100110000:n: +b:10100110001:d: +b:10100110111:w: +b:101001101101:m: +b:1010011011001:.: +b:10100110110000:ESCAPE: +b:10100110110001:0x3a: +c:00:k: +c:010:o: +c:100:h: +c:110:t: +c:111:e: +c:0111:r: +c:10100: : +c:10110:i: +c:10111:a: +c:011000:l: +c:011001:y: +c:011010:s: +c:011011:STOP: +c:1010100:c: +c:1010111:u: +c:10101010:0x3a: +c:10101011:P: +c:101011001:D: +c:1010110100:G: +c:1010110110:b: +c:10101100000:L: +c:10101100001:K: +c:10101100011:A: +c:10101101010:q: +c:10101101110:.: +c:10101101111:C: +c:101011000100:n: +c:101011000101:': +c:1010110101100:B: +c:1010110101101:I: +c:10101101011101:f: +c:10101101011110:8: +c:101011010111000:M: +c:101011010111001:ESCAPE: +c:101011010111111:F: +c:1010110101111100:w: +c:1010110101111101:Q: +d:11: : +d:001:e: +d:100:STOP: +d:101:a: +d:0001:y: +d:0100:i: +d:0110:s: +d:00000:o: +d:01010:d: +d:000011:u: +d:010110:r: +d:010111:l: +d:011101:v: +d:011110:g: +d:0000100:': +d:0111111:.: +d:00001010:0x3a: +d:00001011:h: +d:01110000:c: +d:01110010:n: +d:01110011:w: +d:011100010:?: +d:011111000:!: +d:011111001:-: +d:011111010:f: +d:0111000111:m: +d:0111110110:,: +d:01111101110:t: +d:01111101111:b: +d:011100011001:): +d:011100011010:/: +d:011100011011:k: +d:0111000110001:p: +d:01110001100001:z: +d:011100011000000:ESCAPE: +d:011100011000001:4: +e:01: : +e:000:s: +e:101:r: +e:0010:t: +e:1001:n: +e:1100:STOP: +e:1110:a: +e:1111:w: +e:10000:l: +e:11011:e: +e:001110:m: +e:100010:c: +e:100011:d: +e:0011010:i: +e:0011011:p: +e:0011110:b: +e:1101000:v: +e:1101011:y: +e:00110000:g: +e:00110001:f: +e:00110010:x: +e:00111110:k: +e:00111111:0x3a: +e:11010011:o: +e:11010100:': +e:001100111:h: +e:110100101:.: +e:0011001100:P: +e:0011001101:B: +e:1101001000:,: +e:1101010100:V: +e:1101010101:z: +e:1101010111:j: +e:11010010010:4: +e:11010010011:?: +e:11010101101:u: +e:110101011001:-: +e:1101010110001:!: +e:11010101100001:q: +e:110101011000001:G: +e:1101010110000000:ESCAPE: +e:1101010110000001:S: +f:0: : +f:101:o: +f:1001:t: +f:1100:a: +f:1101:i: +f:1111:e: +f:10000:.: +f:11100:r: +f:11101:f: +f:100010:STOP: +f:10001101:y: +f:10001111:u: +f:100011000:': +f:100011101:l: +f:1000110011:n: +f:1000111000:g: +f:10001100100:c: +f:10001110010:-: +f:100011001010:,: +f:100011001011:s: +f:100011100111:0x3a: +f:1000111001101:k: +f:10001110011000:ESCAPE: +f:10001110011001:b: +g:00:h: +g:10: : +g:010:STOP: +g:011:e: +g:1100:i: +g:11100:0x3a: +g:11101:r: +g:11111:a: +g:110100:s: +g:110111:l: +g:111101:u: +g:1101011:b: +g:1101100:g: +g:1101101:o: +g:1111001:n: +g:11010100:2: +g:11110000:!: +g:111100011:d: +g:1101010100:.: +g:1101010101:,: +g:1101010110:': +g:1101010111:t: +g:1111000101:y: +g:11110001000:w: +g:111100010011:m: +g:11110001001011:?: +g:111100010010000:p: +g:111100010010001:f: +g:111100010010010:@: +g:111100010010011:-: +g:111100010010101:;: +g:1111000100101000:ESCAPE: +g:1111000100101001:z: +h:0:e: +h:101:o: +h:1001:i: +h:1100:a: +h:1110: : +h:1111:t: +h:11010:r: +h:11011:STOP: +h:100000:b: +h:100001:u: +h:10001000:w: +h:10001001:d: +h:10001010:n: +h:10001011:y: +h:10001100:!: +h:10001101:l: +h:10001111:.: +h:100011100:': +h:1000111010:s: +h:10001110110:m: +h:100011101111:0x3a: +h:10001110111000:f: +h:10001110111001:?: +h:10001110111010:c: +h:1000111011101100:v: +h:1000111011101101:q: +h:1000111011101110:g: +h:100011101110111100:h: +h:100011101110111101:ESCAPE: +h:100011101110111110:,: +h:100011101110111111:*: +i:01:n: +i:000:c: +i:1001:o: +i:1010:l: +i:1100:g: +i:1101:s: +i:1110:t: +i:1111:e: +i:00101:a: +i:00110:v: +i:10000:r: +i:10001:d: +i:10110:m: +i:001000:p: +i:001110: : +i:101111:f: +i:0011110:z: +i:0011111:STOP: +i:1011100:b: +i:1011101:k: +i:00100101:-: +i:00100110:x: +i:001001001:': +i:001001111:q: +i:0010011100:u: +i:0010011101:i: +i:00100100001:h: +i:00100100010:0x3a: +i:00100100011:w: +i:0010010000001:,: +i:0010010000010:y: +i:0010010000011:/: +i:00100100000000:.: +i:001001000000010:ESCAPE: +i:001001000000011:j: +j:0:y: +j:11:o: +j:101:e: +j:1001:a: +j:10001:u: +j:100001:i: +j:1000000:STOP: +j:10000010:ESCAPE: +j:10000011: : +k:00: : +k:10:e: +k:010:i: +k:110:STOP: +k:0110:y: +k:0111:s: +k:1111:f: +k:111001:a: +k:111010:l: +k:1110001:0x3a: +k:1110110:k: +k:11100000:': +k:11101111:.: +k:111000011:w: +k:111011100:o: +k:1110000101:h: +k:11100001000:b: +k:11100001001:,: +k:11101110111:n: +k:111011101010:?: +k:111011101100:m: +k:111011101101:!: +k:1110111010010:u: +k:1110111010011:c: +k:1110111010110:d: +k:1110111010111:t: +k:11101110100001:j: +k:11101110100010:-: +k:111011101000000:p: +k:111011101000001:/: +k:111011101000111:S: +k:1110111010001100:ESCAPE: +k:1110111010001101:r: +l:01:e: +l:000:l: +l:101:a: +l:0011:y: +l:1000:STOP: +l:1001:d: +l:1100:o: +l:1110:i: +l:1111: : +l:00100:u: +l:11010:s: +l:001010:t: +l:001011:m: +l:1101101:k: +l:11011000:f: +l:11011100:b: +l:11011110:': +l:11011111:c: +l:110110011:v: +l:110111010:0x3a: +l:1101100101:.: +l:1101110110:w: +l:11011001000:z: +l:11011101111:p: +l:110110010010:h: +l:110110010011:*: +l:1101110111000:g: +l:1101110111001:,: +l:11011101110100:r: +l:11011101110101:n: +l:11011101110111:-: +l:110111011101100:!: +l:1101110111011011:?: +l:11011101110110101:C: +l:110111011101101000:ESCAPE: +l:110111011101101001:j: +m:10:e: +m:001:m: +m:011: : +m:111:a: +m:0000:i: +m:0001:STOP: +m:0100:y: +m:1101:p: +m:01010:b: +m:11000:o: +m:110010:n: +m:110011:s: +m:0101100:l: +m:0101110:f: +m:01011010:0x3a: +m:01011110:4: +m:010110110:h: +m:010111110:w: +m:0101101111:': +m:0101111110:r: +m:0101111111:u: +m:01011011101:.: +m:010110111001:k: +m:0101101110000:ESCAPE: +m:0101101110001:d: +n:000:i: +n:100:g: +n:101: : +n:110:d: +n:0011:a: +n:0100:s: +n:0110:e: +n:1110:STOP: +n:1111:t: +n:01110:c: +n:01111:n: +n:001010:y: +n:010100:': +n:010101:k: +n:010111:o: +n:0010000:r: +n:0010011:f: +n:0010110:u: +n:0010111:j: +n:00100010:v: +n:00100100:-: +n:00100101:.: +n:01011000:l: +n:01011010:x: +n:01011011:0x3a: +n:001000111:,: +n:010110011:m: +n:0010001100:!: +n:00100011010:z: +n:01011001001:?: +n:01011001010:h: +n:01011001011:b: +n:001000110110:B: +n:001000110111:*: +n:010110010000:w: +n:0101100100011:q: +n:01011001000101:p: +n:010110010001000:;: +n:0101100100010010:/: +n:0101100100010011:ESCAPE: +o:00:r: +o:110:n: +o:0100:f: +o:0101: : +o:0110:w: +o:1000:o: +o:1011:u: +o:01111:t: +o:10010:c: +o:10100:p: +o:10101:d: +o:11100:m: +o:11110:l: +o:011100:a: +o:011101:b: +o:100110:y: +o:100111:STOP: +o:111010:s: +o:111011:k: +o:1111101:v: +o:1111110:g: +o:11111111:i: +o:111110001:h: +o:111110010:!: +o:111111100:e: +o:111111101:j: +o:1111100110:': +o:11111000001:?: +o:11111000010:0x3a: +o:11111001110:z: +o:11111001111:x: +o:111110000000:J: +o:111110000110:.: +o:111110000111:-: +o:11111000000100:4: +o:11111000000110:,: +o:11111000000111:G: +o:111110000001011:): +o:1111100000010100:S: +o:11111000000101010:D: +o:111110000001010110:ESCAPE: +o:111110000001010111:q: +p:00:e: +p:010:STOP: +p:100:i: +p:110:o: +p:0110:s: +p:1010: : +p:1110:p: +p:01110:l: +p:01111:r: +p:10110:h: +p:11110:a: +p:101110:t: +p:101111:': +p:1111100:d: +p:1111101:m: +p:1111110:y: +p:111111101:0x3a: +p:111111111:!: +p:1111111100:w: +p:1111111101:u: +p:11111110000:b: +p:11111110010:-: +p:11111110011:.: +p:111111100011:n: +p:1111111000101:k: +p:11111110001001:,: +p:111111100010000:ESCAPE: +p:111111100010001:c: +q:1:u: +q:01:STOP: +q:001:0x3a: +q:0000:ESCAPE: +q:0001:': +r:000: : +r:011:i: +r:101:e: +r:0011:y: +r:0100:d: +r:1000:s: +r:1001:t: +r:1100:a: +r:1101:STOP: +r:1111:o: +r:01011:n: +r:11101:l: +r:001001:k: +r:001010:r: +r:001011:m: +r:010101:u: +r:111001:g: +r:0010000:': +r:0101001:c: +r:1110001:0x3a: +r:00100010:f: +r:00100011:.: +r:01010001:b: +r:11100000:v: +r:010100000:,: +r:010100001:p: +r:111000010:w: +r:1110000111:j: +r:11100001100:-: +r:111000011010:h: +r:1110000110110:G: +r:11100001101110:q: +r:111000011011111:S: +r:1110000110111100:!: +r:111000011011110100:*: +r:111000011011110110:T: +r:1110000110111101010:ESCAPE: +r:1110000110111101011:E: +r:1110000110111101110:1: +r:1110000110111101111:/: +s:10: : +s:11:STOP: +s:011:t: +s:0000:s: +s:0010:i: +s:0011:h: +s:00011:;: +s:01010:e: +s:010001:o: +s:010011:c: +s:010110:0x3a: +s:0001000:.: +s:0001001:!: +s:0001011:y: +s:0100000:p: +s:0100100:a: +s:0101111:u: +s:00010100:,: +s:00010101:f: +s:01000011:': +s:01001011:n: +s:01011100:l: +s:01011101:r: +s:010000101:k: +s:010010100:d: +s:0100001001:m: +s:0100101011:b: +s:01000010000:?: +s:01000010001:w: +s:01001010100:g: +s:010010101010:q: +s:01001010101101:E: +s:01001010101110:-: +s:010010101011000:ESCAPE: +s:010010101011001:): +s:010010101011110:W: +s:010010101011111:1: +t:000:i: +t:011:STOP: +t:100: : +t:111:h: +t:0010:a: +t:0100:r: +t:1010:s: +t:1011:o: +t:1101:e: +t:00111:t: +t:01010:y: +t:11000:u: +t:010110:m: +t:110010:c: +t:110011:l: +t:0011000:': +t:0011010:0x3a: +t:00110010:w: +t:00110110:!: +t:01011100:.: +t:01011101:b: +t:01011110:E: +t:01011111:f: +t:001100110:?: +t:001101110:n: +t:0011001110:z: +t:0011011110:d: +t:00110011111:,: +t:00110111110:P: +t:001100111100:v: +t:001100111101:-: +t:001101111110:): +t:0011011111110:g: +t:00110111111110:ESCAPE: +t:001101111111110:S: +t:0011011111111111:4: +t:00110111111111100:k: +t:001101111111111010:j: +t:001101111111111011:p: +u:00:r: +u:100:s: +u:111:n: +u:0100:e: +u:0101:m: +u:1100:t: +u:01100:c: +u:01101:g: +u:01110:b: +u:10100:p: +u:10101:i: +u:10110:l: +u:11010:d: +u:11011:a: +u:011110:STOP: +u:101110:y: +u:0111110:z: +u:1011110: : +u:01111111:': +u:10111110:-: +u:011111100:k: +u:101111111:0x3a: +u:0111111010:f: +u:0111111011:,: +u:1011111100:w: +u:101111110100:v: +u:101111110101:x: +u:101111110111:o: +u:1011111101100:j: +u:10111111011010:u: +u:101111110110110:.: +u:1011111101101111:h: +u:10111111011011100:?: +u:10111111011011101:ESCAPE: +v:1:e: +v:01:i: +v:001:a: +v:0001:o: +v:00000: : +v:000011:STOP: +v:0000100:y: +v:00001011:s: +v:000010101:r: +v:0000101000:ESCAPE: +v:0000101001:.: +w:0:s: +w:100: : +w:110:STOP: +w:1011:i: +w:1110:o: +w:10100:a: +w:11110:n: +w:11111:e: +w:1010111:y: +w:10101000:m: +w:10101011:d: +w:10101101:l: +w:101010011:b: +w:101010100:k: +w:101010101:r: +w:1010100100:j: +w:1010110001:,: +w:1010110011:h: +w:10101001011:-: +w:10101100000:c: +w:10101100001:f: +w:10101100101:p: +w:101010010100:g: +w:101011001000:t: +w:1010100101010:.: +w:1010100101011:0x3a: +w:1010110010011:q: +w:10101100100101:': +w:101011001001001:?: +w:1010110010010000:ESCAPE: +w:1010110010010001:B: +x:00:p: +x:10: : +x:11:t: +x:0110:STOP: +x:01000:o: +x:01010:c: +x:01110:i: +x:01111:m: +x:010010:e: +x:010110:y: +x:0100110:u: +x:0100111:f: +x:0101111:,: +x:010111000:g: +x:010111001:a: +x:010111011:9: +x:0101110101:': +x:01011101001:x: +x:010111010000:ESCAPE: +x:010111010001:s: +y:0: : +y:11:STOP: +y:10001:o: +y:10010:s: +y:10100:a: +y:10110:l: +y:10111:0x3a: +y:100110:d: +y:1000001:n: +y:1000010:t: +y:1010100:': +y:1010101:b: +y:1010111:.: +y:10000000:i: +y:10000110:,: +y:10000111:p: +y:10011100:m: +y:10011110:c: +y:10101100:w: +y:10101101:e: +y:100000010:?: +y:100000011:f: +y:100111010:r: +y:100111011:g: +y:1001111100:z: +y:1001111110:-: +y:1001111111:T: +y:100111110100:2: +y:100111110110:!: +y:100111110111:k: +y:1001111101010:v: +y:10011111010110:y: +y:100111110101110:h: +y:1001111101011111:j: +y:10011111010111100:ESCAPE: +y:10011111010111101:): +z:00:z: +z:01:STOP: +z:101:i: +z:1000:y: +z:1001:e: +z:1100:w: +z:1101: : +z:1110:l: +z:11110:a: +z:111110:o: +z:11111100:m: +z:11111101:0x3a: +z:11111111:c: +z:111111100:,: +z:1111111011:b: +z:11111110100:u: +z:111111101011:!: +z:11111110101000:ESCAPE: +z:11111110101001:t: +z:11111110101010:h: +z:11111110101011:?: +{:0:ESCAPE: +{:1:ESCAPE: +|:0:ESCAPE: +|:1:ESCAPE: +}:0:ESCAPE: +}:1:ESCAPE: +~:0:ESCAPE: +~:1:ESCAPE: +0x7f:0:ESCAPE: +0x7f:1:ESCAPE: diff --git a/data/freesat.t2 b/data/freesat.t2 new file mode 100644 index 0000000..ea79ecc --- /dev/null +++ b/data/freesat.t2 @@ -0,0 +1,9480 @@ +START:010:A: +START:100:C: +START:111:T: +START:0001:J: +START:0011:D: +START:1010:S: +START:00000:H: +START:00100:I: +START:00101:R: +START:01101:F: +START:01110:.: +START:01111:W: +START:10111:M: +START:11000:B: +START:11001:P: +START:11011:N: +START:000010:O: +START:011001:[: +START:101101:L: +START:110101:E: +START:0000110:K: +START:1101000:Y: +START:1101001:G: +START:00001110:2: +START:01100000:p: +START:01100001:b: +START:01100010:U: +START:01100011:(: +START:10110000:1: +START:10110011:V: +START:000011110:Q: +START:101100010:3: +START:0000111110:9: +START:0000111111:8: +START:1011000110:6: +START:1011000111:5: +START:1011001000:Z: +START:1011001001:7: +START:1011001010:4: +START:101100101110:X: +START:101100101111: : +START:1011001011001:w: +START:1011001011010:': +START:1011001011011:": +START:10110010110000:t: +START:101100101100010:a: +START:1011001011000110:`: +START:10110010110001110:ESCAPE: +START:10110010110001111:m: +ESCAPE:0:ESCAPE: +ESCAPE:1:ESCAPE: +STOP:0:ESCAPE: +STOP:1:ESCAPE: +0x03:0:ESCAPE: +0x03:1:ESCAPE: +0x04:0:ESCAPE: +0x04:1:ESCAPE: +0x05:0:ESCAPE: +0x05:1:ESCAPE: +0x06:0:ESCAPE: +0x06:1:ESCAPE: +0x07:0:ESCAPE: +0x07:1:ESCAPE: +0x08:0:ESCAPE: +0x08:1:ESCAPE: +0x09:0:ESCAPE: +0x09:1:ESCAPE: +0x0a:0:ESCAPE: +0x0a:1:ESCAPE: +0x0b:0:ESCAPE: +0x0b:1:ESCAPE: +0x0c:0:ESCAPE: +0x0c:1:ESCAPE: +0x0d:0:ESCAPE: +0x0d:1:ESCAPE: +0x0e:0:ESCAPE: +0x0e:1:ESCAPE: +0x0f:0:ESCAPE: +0x0f:1:ESCAPE: +0x10:0:ESCAPE: +0x10:1:ESCAPE: +0x11:0:ESCAPE: +0x11:1:ESCAPE: +0x12:0:ESCAPE: +0x12:1:ESCAPE: +0x13:0:ESCAPE: +0x13:1:ESCAPE: +0x14:0:ESCAPE: +0x14:1:ESCAPE: +0x15:0:ESCAPE: +0x15:1:ESCAPE: +0x16:0:ESCAPE: +0x16:1:ESCAPE: +0x17:0:ESCAPE: +0x17:1:ESCAPE: +0x18:0:ESCAPE: +0x18:1:ESCAPE: +0x19:0:ESCAPE: +0x19:1:ESCAPE: +0x1a:0:ESCAPE: +0x1a:1:ESCAPE: +0x1b:0:ESCAPE: +0x1b:1:ESCAPE: +0x1c:0:ESCAPE: +0x1c:1:ESCAPE: +0x1d:0:ESCAPE: +0x1d:1:ESCAPE: +0x1e:0:ESCAPE: +0x1e:1:ESCAPE: +0x1f:0:ESCAPE: +0x1f:1:ESCAPE: + :010:a: + :100:t: + :0001:o: + :0010:s: + :00110:d: + :01100:[: + :01111:p: + :10101:b: + :11001:c: + :11010:h: + :11100:w: + :11101:i: + :11111:f: + :000000:A: + :000011:M: + :001111:e: + :011100:B: + :011101:C: + :101000:T: + :101101:S: + :101110:g: + :110000:r: + :110110:n: + :110111:l: + :111101:m: + :0000011:v: + :0000100:G: + :0000101:N: + :0011101:y: + :0110101:H: + :0110111:L: + :1010010:J: + :1010011:F: + :1011001:R: + :1011110:u: + :1100010:D: + :1100011:W: + :1111001:P: + :00000100:k: + :00000101:O: + :01101000:-: + :01101101:1: + :10110001:K: + :10111110:j: + :11110000:I: + :11110001:E: + :001110010:q: + :001110011:U: + :011010010:V: + :011011000:Y: + :011011001: : + :101100001:2: + :101111110:STOP: + :0011100000:3: + :0011100001:8: + :0011100010:6: + :0110100111:5: + :1011000000:(: + :1011111110:7: + :00111000110:0: + :01101001100:': + :01101001101:9: + :10110000010:Z: + :10111111110:4: + :10111111111:Q: + :001110001111:X: + :1011000001100:ESCAPE: + :1011000001101:.: + :1011000001110:&: + :00111000111000:\: + :00111000111010:@: + :00111000111011:`: + :10110000011110:": + :10110000011111:z: + :001110001110011:$: + :0011100011100100:+: + :00111000111001011:x: + :001110001110010101:]: + :0011100011100101000:/: + :0011100011100101001:?: +!:1: : +!:01:STOP: +!:001:.: +!:0000:0x3a: +!:00011:[: +!:0001001:": +!:0001010:/: +!:0001011:!: +!:00010000:): +!:000100010:': +!:0001000111:?: +!:00010001100:ESCAPE: +!:00010001101:]: +":11: : +":001:.: +":0000:p: +":0101:B: +":0111:T: +":1000:i: +":00010:f: +":00011:W: +":01000:S: +":01100:t: +":01101:C: +":10100:STOP: +":10111:,: +":010010:J: +":100100:m: +":101010:n: +":101011:I: +":0100110:E: +":0100111:D: +":1001010:w: +":1001011:g: +":1001100:b: +":1001101:L: +":1001110:-: +":1011000:c: +":1011001:H: +":10011110:P: +":10110100:r: +":10110111:K: +":100111111:l: +":101101010:Y: +":101101011:Q: +":101101100:G: +":101101101:A: +":1001111100:ESCAPE: +":1001111101:a: +#:0:ESCAPE: +#:1:ESCAPE: +$:0:1: +$:11:3: +$:100:4: +$:1011:2: +$:10101:7: +$:101001:5: +$:1010000:ESCAPE: +$:1010001:9: +%:1: : +%:00:ESCAPE: +%:01:,: +&:1: : +&:01:w: +&:001:B: +&:0000:E: +&:000100:2: +&:000110:A: +&:000111:R: +&:00010100:O: +&:00010101:4: +&:00010111:J: +&:000101100:ESCAPE: +&:000101101:P: +':1:s: +':001:t: +':010: : +':0000:l: +':01101:r: +':000100:n: +':000101:.: +':000110:C: +':011000:B: +':011101:A: +':0111000:d: +':0111100:v: +':00011100:S: +':00011111:p: +':01100101:D: +':01111011:i: +':01111100:c: +':01111101:m: +':01111111:,: +':000111010:f: +':000111011:g: +':011001000:F: +':011001001:h: +':011001101:H: +':011001110:N: +':011100101:R: +':011100110:STOP: +':011100111:T: +':011110101:G: +':011111101:L: +':0001111000:o: +':0001111001:K: +':0001111011:a: +':0110011001:u: +':0110011111:O: +':0111001001:I: +':0111101000:w: +':0111101001:b: +':0111111001:e: +':00011110101:?: +':01100110000:E: +':01100110001:7: +':01110010000:P: +':000111101001:W: +':011001111001:0x3a: +':011001111010:!: +':011100100011:J: +':011111100001:q: +':011111100011:M: +':0001111010001:V: +':0110011110001:9: +':0110011110111:y: +':0111001000100:8: +':0111001000101:5: +':0111111000000:6: +':0111111000101:k: +':00011110100000:2: +':00011110100001:0: +':01100111100001:Y: +':01100111101100:): +':01111110000010:j: +':01111110000011:Q: +':011001111000000:-: +':011001111000001:': +':011001111011011:z: +':011111100010000:X: +':011111100010001:U: +':011111100010010:4: +':011111100010011:3: +':0110011110110100:ESCAPE: +':0110011110110101:1: +(:01:1: +(:000:P: +(:101:t: +(:1000:2: +(:1101:5: +(:1110:N: +(:00111:T: +(:10010:p: +(:11111:c: +(:001001:a: +(:001010:S: +(:001100:R: +(:100111:e: +(:111100:J: +(:111101:A: +(:0010110:D: +(:0011011:K: +(:1001100:v: +(:1001101:s: +(:1100000:b: +(:1100010:G: +(:1100011:8: +(:1100100:M: +(:1100101:H: +(:1100110:C: +(:00100000:m: +(:00100010:o: +(:00100011:E: +(:00101110:W: +(:11000011:g: +(:11001110:L: +(:001000010:d: +(:001011111:U: +(:001101000:F: +(:001101010:f: +(:110000100:w: +(:110000101:B: +(:110011111:n: +(:0010000110:l: +(:0010000111:9: +(:0010111100:4: +(:0010111101:I: +(:0011010010:3: +(:0011010111:h: +(:1100111101:i: +(:00110100110:Z: +(:00110100111:V: +(:00110101100: : +(:11001111000:k: +(:001101011011:O: +(:110011110010:': +(:0011010110100:ESCAPE: +(:0011010110101:u: +(:1100111100110:X: +(:1100111100111:7: +):0: : +):11:.: +):101:STOP: +):1001:,: +):10000:0x3a: +):100011:;: +):1000101:!: +):10001001:(: +):1000100000:ESCAPE: +):1000100001:o: +):1000100010:?: +):1000100011:): +*:0:*: +*:100:s: +*:101: : +*:1100:m: +*:1110:t: +*:11010:g: +*:11011:k: +*:11111:d: +*:111101:y: +*:1111001:e: +*:11110000:i: +*:111100010:ESCAPE: +*:111100011:n: ++:1:n: ++:00:ESCAPE: ++:01: : +,:1: : +,:01:S: +,:001:0: +,:0001:A: +,:00000:5: +,:0000110:b: +,:0000111:3: +,:00001000:2: +,:00001001:": +,:00001011:1: +,:0000101000:Q: +,:0000101010:': +,:00001010111:4: +,:000010100100:T: +,:000010100101:B: +,:000010100110:7: +,:000010100111:6: +,:000010101100:STOP: +,:0000101011010:ESCAPE: +,:0000101011011:i: +-:00: : +-:0100:t: +-:0101:b: +-:0110:w: +-:0111:u: +-:1001:o: +-:1010:s: +-:1011:f: +-:10000:c: +-:11011:l: +-:11101:d: +-:100010:9: +-:110000:h: +-:110010:1: +-:110011:y: +-:110101:r: +-:111000:a: +-:111100:m: +-:111110:p: +-:1000110:S: +-:1101000:e: +-:1101001:i: +-:1111011:n: +-:10001110:C: +-:11000101:W: +-:11000111:g: +-:11100101:J: +-:11100110:D: +-:11110101:2: +-:11111100:7: +-:11111110:G: +-:11111111:O: +-:100011111:H: +-:110001000:A: +-:110001100:6: +-:110001101:B: +-:111001111:M: +-:111101000:E: +-:111101001:L: +-:111111010:U: +-:111111011:k: +-:1000111100:F: +-:1100010010:j: +-:1100010011:P: +-:1110010001:q: +-:1110010010:5: +-:1110010011:T: +-:1110011101:I: +-:10001111011:K: +-:11100100000:v: +-:11100100001:Z: +-:11100111001:N: +-:100011110101:R: +-:111001110001:Y: +-:1000111101001:0: +-:10001111010000:4: +-:10001111010001:z: +-:11100111000001:V: +-:11100111000010:3: +-:11100111000011:8: +-:111001110000001:Q: +-:1110011100000000:': +-:11100111000000010:ESCAPE: +-:11100111000000011:x: +.:1: : +.:01:STOP: +.:0011:.: +.:00010:i: +.:00100:0: +.:00101:c: +.:000001:u: +.:0000000:a: +.:0000001:[: +.:0001101:3: +.:00001000:4: +.:00001110:H: +.:00011000:S: +.:00011001:W: +.:00011100:o: +.:00011110:1: +.:000010100:5: +.:000010101:L: +.:000010111:p: +.:000011000:T: +.:000011001:A: +.:000011010:M: +.:000011110:C: +.:000011111:2: +.:000111011:D: +.:000111110:B: +.:0000100100:N: +.:0000100110:t: +.:0000100111:J: +.:0000101101:R: +.:0000110111:P: +.:0001110101:s: +.:0001111111:I: +.:00001011000:r: +.:00001101100:V: +.:00011101000:w: +.:00011101001:F: +.:00011111101:G: +.:000010010100:E: +.:000010010101:0x3a: +.:000010110010:h: +.:000011011010:,: +.:000111111000:': +.:0000100101101:b: +.:0000100101110:K: +.:0000100101111:Y: +.:0000101100111:O: +.:0000110110110:-: +.:0001111110010:f: +.:0001111110011:(: +.:00001011001100:": +.:00001101101110:y: +.:000010010110000:?: +.:000010010110001:m: +.:000010010110010:Q: +.:000011011011110:*: +.:000011011011111:&: +.:0000100101100110:U: +.:0000100101100111:;: +.:0000101100110100:8: +.:0000101100110101:6: +.:0000101100110111:k: +.:00001011001101100:d: +.:000010110011011010:ESCAPE: +.:000010110011011011:n: +/:01:c: +/:110:1: +/:111:e: +/:0000:5: +/:0010:8: +/:00010:T: +/:00011:f: +/:00110:B: +/:00111:2: +/:10001:3: +/:10010:7: +/:10100:6: +/:10110:a: +/:101111:4: +/:1000000:F: +/:1000010:s: +/:1000011:M: +/:1001100:H: +/:1001110:D: +/:1001111:A: +/:1010101:S: +/:10000011:m: +/:10011010:W: +/:10101000:G: +/:10101001:U: +/:10101100:d: +/:10101101:O: +/:10101110:N: +/:10111001:C: +/:10111011:P: +/:100110110:L: +/:101011110: : +/:101011111:I: +/:101110000:E: +/:101110001:R: +/:101110100:K: +/:101110101:t: +/:1000001001:J: +/:1000001011:9: +/:10000010000:v: +/:10000010001:p: +/:10000010100:h: +/:10011011101:o: +/:10011011110:Q: +/:10011011111:0: +/:100000101010:l: +/:100000101011:i: +/:100110111000:V: +/:1001101110011:y: +/:10011011100100:ESCAPE: +/:10011011100101:g: +0:0:0: +0:111: : +0:1001:a: +0:1011:p: +0:10001:s: +0:11000:.: +0:11001:8: +0:11011:,: +0:100000:4: +0:100001:t: +0:101001:5: +0:110100:6: +0:1010000:3: +0:1010001:7: +0:1010101:]: +0:1010110:-: +0:1010111:1: +0:10101000:): +0:10101001:/: +0:11010100:STOP: +0:11010101:9: +0:11010111:2: +0:110101100:%: +0:1101011010:0x3a: +0:110101101101:f: +0:110101101111:m: +0:1101011011100:y: +0:11010110110001:l: +0:11010110110010:;: +0:11010110110011:': +0:11010110111010:k: +0:11010110111011:!: +0:110101101100000:C: +0:1101011011000010:ESCAPE: +0:1101011011000011:J: +1:00:9: +1:100:1: +1:111:0: +1:0101: : +1:0111:2: +1:1011:.: +1:1100:5: +1:01000:6: +1:01001:8: +1:01101:/: +1:10100:]: +1:11010:3: +1:011001:7: +1:110110:4: +1:0110000:STOP: +1:0110001:-: +1:1010100:): +1:1010110:0x3a: +1:1010111:s: +1:1101110:,: +1:1101111:x: +1:10101010:': +1:101010110:X: +1:10101011110:t: +1:10101011111:R: +1:101010111011:;: +1:1010101110000:p: +1:1010101110001:m: +1:1010101110010:!: +1:1010101110101:&: +1:10101011100110:e: +1:101010111001110:b: +1:101010111001111:a: +1:101010111010000:D: +1:101010111010001:C: +1:101010111010010:%: +1:1010101110100110:ESCAPE: +1:1010101110100111:o: +2:11:0: +2:000: : +2:010:.: +2:100:5: +2:0011:/: +2:1011:,: +2:00100:]: +2:00101:p: +2:01101:1: +2:10101:4: +2:011000:6: +2:011001:2: +2:011100:0x3a: +2:011101:-: +2:011111:): +2:1010000:STOP: +2:1010010:8: +2:1010011:9: +2:01111000:D: +2:01111001:3: +2:01111010:t: +2:01111011:7: +2:10100010:n: +2:101000110:a: +2:1010001110:': +2:10100011111:;: +2:101000111100:s: +2:1010001111010:": +2:101000111101100:ESCAPE: +2:101000111101101:i: +2:101000111101110:W: +2:101000111101111:L: +3:00: : +3:10:0: +3:110:.: +3:1110:/: +3:01000:2: +3:01001:1: +3:01010:): +3:01100:0x3a: +3:01110:-: +3:11111:]: +3:010110:D: +3:011010:4: +3:011011:STOP: +3:011111:5: +3:111100:,: +3:0101110:7: +3:0101111:3: +3:0111101:6: +3:1111011:t: +3:01111001:B: +3:11110100:8: +3:111101010:9: +3:0111100001:;: +3:1111010110:r: +3:1111010111:s: +3:01111000000:n: +3:01111000101:b: +3:01111000110:': +3:01111000111:A: +3:011110000010:p: +3:011110000011:e: +3:0111100010000:a: +3:0111100010001:&: +3:0111100010010:%: +3:01111000100110:ESCAPE: +3:01111000100111:k: +4:01: : +4:000:4: +4:100:.: +4:110:0: +4:0010:/: +4:1010:5: +4:1011:-: +4:00110:1: +4:11101:]: +4:11110:,: +4:001110:2: +4:111001:8: +4:111110:): +4:0011110:0x3a: +4:0011111:': +4:1110000:t: +4:1110001:3: +4:1111111:STOP: +4:11111101:6: +4:1111110000:9: +4:1111110010:7: +4:11111100011:C: +4:11111100110:;: +4:111111000101:x: +4:1111110011101:m: +4:1111110011110:I: +4:11111100010000:f: +4:11111100010001:e: +4:11111100010010:b: +4:11111100010011:L: +4:11111100111000:%: +4:11111100111110:p: +4:11111100111111:c: +4:111111001110010:ESCAPE: +4:111111001110011:i: +5:00:0: +5:10: : +5:010:.: +5:0111:p: +5:1100:5: +5:01100:/: +5:11010:a: +5:11011:-: +5:11101:6: +5:011010:3: +5:111100:2: +5:111110:8: +5:111111:]: +5:0110110:0x3a: +5:1110000:): +5:1110001:s: +5:1110011:,: +5:1111010:7: +5:1111011:9: +5:01101110:4: +5:11100100:STOP: +5:11100101:t: +5:0110111110:c: +5:0110111111:1: +5:01101111001:;: +5:01101111011:m: +5:011011110000:e: +5:011011110001:': +5:011011110101:k: +5:0110111101001:l: +5:01101111010000:ESCAPE: +5:01101111010001:f: +6:00: : +6:10:.: +6:111:0: +6:0101:]: +6:01001:1: +6:01100:7: +6:01110:): +6:11000:,: +6:11001:0x3a: +6:11010:/: +6:010001:-: +6:011010:5: +6:011011:4: +6:011111:8: +6:110111:t: +6:0100000:6: +6:0111100:3: +6:0111101:2: +6:1101101:9: +6:01000010:STOP: +6:01000011:+: +6:11011000:': +6:1101100101:a: +6:1101100110:?: +6:11011001000:m: +6:11011001001:e: +6:11011001110:;: +6:1101100111100:f: +6:1101100111101:b: +6:1101100111110:M: +6:11011001111110:": +6:110110011111110:ESCAPE: +6:110110011111111:i: +7:11:.: +7:001: : +7:011:0: +7:101:-: +7:0000:8: +7:0100:7: +7:1001:]: +7:01010:/: +7:000101:6: +7:000110:2: +7:000111:1: +7:010111:t: +7:100000:9: +7:100010:): +7:100011:5: +7:0001001:3: +7:0101101:,: +7:1000010:a: +7:1000011:4: +7:00010000:STOP: +7:01011000:0x3a: +7:01011001:p: +7:0001000101:R: +7:0001000110:;: +7:00010001000:': +7:00010001111:m: +7:000100010011:f: +7:000100011100:A: +7:000100011101:?: +7:0001000100100:ESCAPE: +7:0001000100101:s: +8:01: : +8:000:4: +8:110:.: +8:0011:0: +8:1000:9: +8:1001:7: +8:1011:8: +8:1110:1: +8:00100:/: +8:10100:3: +8:11110:5: +8:101010:): +8:111110:6: +8:111111:]: +8:0010100:0x3a: +8:0010101:,: +8:1010111:t: +8:00101100:p: +8:00101101:-: +8:00101111:a: +8:10101100:c: +8:10101101:2: +8:001011101:STOP: +8:0010111001:;: +8:001011100000:l: +8:001011100001:': +8:0010111000100:f: +8:0010111000101:D: +8:0010111000110:A: +8:00101110001110:ESCAPE: +8:00101110001111:i: +9:000:5: +9:001:]: +9:111:9: +9:0101:0: +9:0110:.: +9:0111:-: +9:1000:4: +9:1001:8: +9:1011:6: +9:1100: : +9:1101:7: +9:01000:2: +9:10100:3: +9:010010:1: +9:010011:/: +9:101010:t: +9:1010111:): +9:10101100:0x3a: +9:101011010:,: +9:10101101100:p: +9:10101101101:;: +9:10101101111:STOP: +9:1010110111000:n: +9:1010110111001:m: +9:1010110111010:a: +9:10101101110111:e: +9:101011011101100:ESCAPE: +9:101011011101101:k: +0x3a:1: : +0x3a:01:0: +0x3a:001:3: +0x3a:00001:1: +0x3a:00010:T: +0x3a:00011:C: +0x3a:000001:4: +0x3a:0000000:ESCAPE: +0x3a:0000001:5: +;:0:ESCAPE: +;:1: : +<:0:ESCAPE: +<:1:ESCAPE: +=:0:ESCAPE: +=:1:ESCAPE: +>:0:ESCAPE: +>:1:ESCAPE: +?:1: : +?:01:STOP: +?:000:0x3a: +?:00100:!: +?:00110:[: +?:00111:.: +?:001010:;: +?:0010110:': +?:00101111:,: +?:001011101:/: +?:0010111000:ESCAPE: +?:0010111001:Q: +@:0:k: +@:10: : +@:111:T: +@:1101:b: +@:11000:ESCAPE: +@:11001:H: +A:01: : +A:110:D: +A:111:n: +A:0000:s: +A:0001:m: +A:0010:d: +A:1000:r: +A:1011:l: +A:00110:c: +A:10010:u: +A:10100:g: +A:001111:b: +A:100111:t: +A:101011:f: +A:1010100:w: +A:1010101:i: +A:10011001:v: +A:10011011:p: +A:001110010:h: +A:001110100:.: +A:001110111:B: +A:100110100:q: +A:0011100000:C: +A:0011100010:,: +A:0011100110:y: +A:0011101010:S: +A:0011101100:k: +A:0011101101:T: +A:1001100001:R: +A:1001100010:F: +A:1001100011:z: +A:1001101011:a: +A:00111000010:P: +A:00111000110:-: +A:00111010110:A: +A:00111010111:I: +A:10011000001:e: +A:10011010100:N: +A:10011010101:x: +A:001110000110:X: +A:001110000111:K: +A:001110001110:3: +A:001110001111:&: +A:001110011101:M: +A:001110011111:Y: +A:0011100111000:L: +A:0011100111001:W: +A:0011100111100:*: +A:1001100000000:o: +A:1001100000001:1: +A:1001100000010:': +A:1001100000011:0x3a: +A:00111001111010:j: +A:001110011110110:G: +A:0011100111101110:O: +A:00111001111011110:4: +A:001110011110111110:ESCAPE: +A:001110011110111111:E: +B:00:C: +B:010:a: +B:101:r: +B:110:e: +B:111:B: +B:0111:i: +B:1000:u: +B:1001:o: +B:01101:l: +B:01100000:T: +B:01100001:.: +B:01100011:y: +B:01100100:I: +B:01100110:h: +B:01100111: : +B:011000100:A: +B:0110001010:O: +B:01100010110:0x3a: +B:01100101000:&: +B:01100101001:3: +B:01100101010:j: +B:01100101011:M: +B:01100101110:D: +B:011000101111:W: +B:011001011000:*: +B:011001011010:,: +B:011001011011:1: +B:011001011110:ESCAPE: +B:011001011111:P: +B:0110001011100:E: +B:0110010110011:R: +B:01100010111011:w: +B:011000101110100:-: +B:011001011001001:U: +B:011001011001010:S: +B:011001011001011:F: +B:0110001011101010:X: +B:0110001011101011:V: +B:0110010110010000:Q: +B:0110010110010001:4: +C:00:h: +C:011:B: +C:100:a: +C:110:o: +C:0101:r: +C:1010:.: +C:1110: : +C:1111:l: +C:01000:': +C:10111:i: +C:010011:e: +C:101101:u: +C:0100101:y: +C:1011001:,: +C:01001001:I: +C:010010000:A: +C:1011000000:C: +C:1011000001:D: +C:1011000011:STOP: +C:1011000100:S: +C:1011000101:T: +C:1011000111:G: +C:01001000100:*: +C:01001000111:w: +C:10110001101:J: +C:010010001010:R: +C:010010001100:2: +C:010010001101:U: +C:101100001000:?: +C:101100001010:O: +C:101100001011:H: +C:101100011000:E: +C:0100100010110:z: +C:1011000010011:-: +C:1011000110011:s: +C:01001000101111:1: +C:10110000100101:!: +C:10110001100100:P: +C:010010001011101:n: +C:101100001001000:K: +C:101100001001001:7: +C:101100011001011:4: +C:0100100010111000:0x3a: +C:1011000110010100:F: +C:1011000110010101:): +C:01001000101110010:ESCAPE: +C:01001000101110011:b: +D:00:a: +D:01:,: +D:100:r: +D:101:o: +D:110:e: +D:1110:i: +D:111111:u: +D:1111001: : +D:1111011:': +D:11110000:.: +D:11110001:]: +D:11111010:y: +D:111101010:w: +D:111101011:W: +D:111110001:N: +D:111110010:C: +D:111110111:J: +D:1111010010:h: +D:1111100000:t: +D:1111100111:I: +D:1111101101:0x3a: +D:11110100001:M: +D:11110100010:&: +D:11110100011:V: +D:11111000010:-: +D:11111000011:G: +D:11111001100:O: +D:11111001101:A: +D:11111011001:S: +D:111101000000:F: +D:111101001100:*: +D:111101001101:s: +D:111101001111:d: +D:111110110000:v: +D:1111010011100:m: +D:1111010011101:j: +D:1111101100010:ESCAPE: +D:1111101100011:T: +D:11110100000110:9: +D:111101000001000:): +D:111101000001011:E: +D:111101000001110:8: +D:111101000001111:7: +D:1111010000010010:U: +D:1111010000010011:R: +D:1111010000010100:B: +D:1111010000010101:4: +E:000:p: +E:010:a: +E:011:n: +E:110:l: +E:1001:m: +E:1010:x: +E:1110:v: +E:1111:d: +E:00100:s: +E:00110:r: +E:00111:u: +E:10000:E: +E:10001: : +E:001010:.: +E:001011:i: +E:101101:0x3a: +E:1011000:y: +E:1011001:t: +E:1011100:g: +E:1011110:4: +E:101110110:w: +E:101111100:c: +E:101111110:b: +E:1011101010:R: +E:1011101011:F: +E:1011101111:C: +E:10111010001:k: +E:10111010010:f: +E:10111010011:o: +E:10111011100:U: +E:10111011101:L: +E:10111110101:e: +E:10111110110:N: +E:10111111100:h: +E:10111111101:I: +E:10111111111:D: +E:101111101000:M: +E:101111101111:': +E:101111111100:2: +E:101111111101:-: +E:1011101000011:q: +E:1011111010010:O: +E:1011111010011:A: +E:1011111011101:Z: +E:10111010000000:W: +E:10111010000001:S: +E:10111010000010:H: +E:10111010000011:9: +E:10111010000100:): +E:10111110111000:T: +E:10111110111001:,: +E:101110100001010:P: +E:1011101000010110:ESCAPE: +E:1011101000010111:z: +F:00:o: +F:10:r: +F:010:e: +F:110:i: +F:111:a: +F:0110:l: +F:01110:u: +F:0111100: : +F:0111101:O: +F:01111101:A: +F:01111111:B: +F:011111100:f: +F:0111110000:.: +F:0111110011:L: +F:01111100010:M: +F:01111100011:E: +F:01111100101:T: +F:01111110101:C: +F:01111110110:W: +F:011111001000:0x3a: +F:011111101000:U: +F:011111101001:': +F:011111101111:1: +F:0111110010010:y: +F:0111110010011:,: +F:01111110111000:-: +F:01111110111010:I: +F:011111101110011:h: +F:0111111011100100:*: +F:0111111011100101:K: +F:0111111011101100:F: +F:0111111011101101:ESCAPE: +F:01111110111011100:X: +F:01111110111011101:R: +F:01111110111011110:;: +F:01111110111011111:4: +G:00:r: +G:01:a: +G:101:o: +G:110:e: +G:1001:u: +G:1111:i: +G:10001:n: +G:11101:l: +G:100000:X: +G:1110000:y: +G:1110001: : +G:1110011:w: +G:10000101:4: +G:10000111:P: +G:11100101:h: +G:100001000:-: +G:100001100:C: +G:111001001:M: +G:1000011010:B: +G:1110010000:.: +G:1110010001:I: +G:10000100100:;: +G:10000100101:,: +G:10000100110:A: +G:10000100111:N: +G:10000110111:0x3a: +G:1000011011000:O: +G:1000011011001:L: +G:10000110110110:b: +G:100001101101000:K: +G:100001101101001:2: +G:100001101101010:1: +G:100001101101011:': +G:1000011011011100:ESCAPE: +G:1000011011011101:m: +G:1000011011011110:T: +G:1000011011011111:S: +H:00:e: +H:01:a: +H:10:o: +H:110:i: +H:1111:u: +H:11100:R: +H:1110100:P: +H:1110110:y: +H:11101011:I: +H:111011100:Q: +H:111011101:M: +H:111011110:A: +H:111011111: : +H:1110101000:S: +H:1110101001:.: +H:11101010101:G: +H:11101010110:): +H:111010101001:E: +H:1110101011100:O: +H:1110101011101:L: +H:11101010100000:1: +H:11101010100001:&: +H:11101010111100:H: +H:11101010111101:w: +H:11101010111110:v: +H:111010101000100:X: +H:111010101000101:W: +H:111010101000110:D: +H:111010101111110:s: +H:111010101111111:F: +H:1110101010001110:ESCAPE: +H:1110101010001111:r: +I:0:n: +I:110:t: +I:1001:s: +I:1111:r: +I:10000:T: +I:10101:a: +I:11100: : +I:100010:c: +I:101001:m: +I:101100:z: +I:101101:.: +I:101111:d: +I:111011:I: +I:1000111:': +I:1011101:l: +I:10100000:A: +I:10100001:v: +I:10111001:V: +I:11101001:f: +I:11101011:o: +I:100011001:C: +I:100011010:P: +I:101000100:w: +I:101000110:0x3a: +I:101110000:p: +I:111010000:R: +I:111010001:,: +I:111010101:Y: +I:1000110000:E: +I:1000110001:6: +I:1000110111:q: +I:1010001011:y: +I:1010001110:M: +I:1110101000:g: +I:1110101001:D: +I:10001101100:e: +I:10001101101:5: +I:10100010100:S: +I:10100010101:9: +I:10100011111:F: +I:10111000100:b: +I:10111000110:-: +I:10111000111:L: +I:101000111100:B: +I:101000111101:): +I:1011100010100:N: +I:1011100010101:Q: +I:1011100010110:k: +I:10111000101111:O: +I:101110001011101:?: +I:1011100010111000:ESCAPE: +I:1011100010111001:h: +J:00:e: +J:10:a: +J:11:o: +J:011:u: +J:0101:i: +J:01000: : +J:0100110:D: +J:0100111:.: +J:01001001:r: +J:010010110:s: +J:0100100000:M: +J:0100100010:J: +J:0100100011:,: +J:0100101000:B: +J:0100101001:-: +J:0100101010:V: +J:0100101110:K: +J:0100101111:T: +J:01001000010:C: +J:01001010110:n: +J:010010000110:!: +J:0100100001110:w: +J:0100100001111:R: +J:0100101011100:F: +J:0100101011110:7: +J:0100101011111:': +J:01001010111010:G: +J:010010101110110:ESCAPE: +J:010010101110111:L: +K:00:i: +K:01:a: +K:10:e: +K:1111:y: +K:11000:n: +K:11001:o: +K:11011:r: +K:11101: : +K:110100:': +K:111000:u: +K:1101011:.: +K:1110011:l: +K:11100101:h: +K:110101000:T: +K:110101011:G: +K:111001001:,: +K:1101010100:w: +K:11010100100:5: +K:11010100101:4: +K:11010100110:A: +K:11010101010:3: +K:11100100000:2: +K:11100100011:M: +K:110101001110:-: +K:110101010110:0x3a: +K:110101010111:!: +K:111001000010:): +K:111001000101:S: +K:1101010011110:V: +K:1110010000110:6: +K:1110010000111:1: +K:11010100111111:L: +K:11100100010000:I: +K:11100100010001:?: +K:110101001111100:ESCAPE: +K:110101001111101:v: +K:111001000100100:k: +K:111001000100101:Y: +K:111001000100110:N: +K:111001000100111:E: +L:00:i: +L:10:o: +L:011:]: +L:110:e: +L:111:a: +L:0100:u: +L:010100:l: +L:010101:A: +L:010111:y: +L:01011011: : +L:010110000:I: +L:010110001:R: +L:010110101:,: +L:0101100100:O: +L:0101100101:': +L:01011001101:.: +L:01011001110:C: +L:01011001111:Y: +L:01011010001:F: +L:01011010010:L: +L:010110011001:t: +L:010110100001:G: +L:010110100111:S: +L:0101100110001:h: +L:0101101000001:W: +L:0101101001100:J: +L:01011001100000:E: +L:01011010000001:": +L:01011010011011:STOP: +L:010110011000010:T: +L:010110011000011:P: +L:010110100000000:D: +L:010110100000001:7: +L:010110100110101:j: +L:0101101001101000:ESCAPE: +L:0101101001101001:U: +M:00:o: +M:11:a: +M:011:e: +M:101:i: +M:0101:c: +M:1001:u: +M:01001:y: +M:10001:r: +M:100000:S: +M:100001:P: +M:0100001: : +M:01000001:C: +M:01000110:F: +M:010000000:1: +M:010001000:h: +M:010001010:I: +M:010001110:T: +M:010001111:X: +M:0100000010:A: +M:0100010010:z: +M:01000100110:f: +M:01000101110:.: +M:010000001100:Z: +M:010000001101:K: +M:010000001110:B: +M:010001001111:s: +M:010001011000:R: +M:010001011001:W: +M:010001011010:O: +M:0100000011110:,: +M:0100000011111:': +M:0100010110111:D: +M:0100010111100:4: +M:0100010111110:E: +M:01000100111000:m: +M:01000100111001:J: +M:01000100111010:ESCAPE: +M:01000101111010:l: +M:01000101111011:-: +M:01000101111110:): +M:01000101111111:w: +M:010001001110110:t: +M:010001001110111:V: +M:010001011011000:Q: +M:010001011011001:N: +M:010001011011010:6: +M:010001011011011:2: +N:00:a: +N:10:o: +N:11:e: +N:011:i: +N:01010:u: +N:01011:E: +N:010010:A: +N:0100010:y: +N:0100110:g: +N:01000001:B: +N:01000010:I: +N:01000110:F: +N:01000111: : +N:010000000:): +N:010000001:': +N:010000111:Y: +N:010011100:L: +N:010011101:H: +N:0100001100:C: +N:0100111100:W: +N:0100111110:N: +N:0100111111:T: +N:010000110101:M: +N:010000110111:O: +N:010011110100:,: +N:010011110101:J: +N:010011110111:h: +N:0100001101000:D: +N:0100001101001:.: +N:0100111101100:X: +N:0100111101101:ESCAPE: +N:01000011011000:k: +N:01000011011001:Z: +N:01000011011010:Q: +N:01000011011011:G: +O:111:n: +O:0000:s: +O:0001:N: +O:0011:z: +O:0100:r: +O:1000:u: +O:1010:p: +O:1011:l: +O:1101:': +O:00101:U: +O:01011:h: +O:01110:f: +O:01111:w: +O:10010:.: +O:11000: : +O:001000:o: +O:001001:J: +O:010100:b: +O:010101:m: +O:011001:H: +O:011010:O: +O:011011:v: +O:100111:c: +O:110011:x: +O:1001101:d: +O:1100100:a: +O:01100001:t: +O:01100010:k: +O:10011000:g: +O:11001010:R: +O:011000000:K: +O:100110010:i: +O:110010111:V: +O:0110000011:2: +O:0110001101:S: +O:0110001110:B: +O:1001100110:W: +O:1001100111:-: +O:01100000100:,: +O:01100011000:j: +O:01100011001:L: +O:01100011111:I: +O:11001011001:A: +O:11001011011:C: +O:011000001010:0x3a: +O:011000111100:e: +O:110010110000:y: +O:110010110001:/: +O:110010110100:M: +O:0110000010110:!: +O:0110001111011:P: +O:1100101101011:F: +O:01100000101110:E: +O:01100000101111:D: +O:01100011110100:8: +O:01100011110101:4: +O:11001011010101:T: +O:110010110101000:ESCAPE: +O:110010110101001:q: +P:11:a: +P:000:i: +P:010:e: +P:011:l: +P:100:o: +P:101:r: +P:0010:h: +P:001111:u: +P:0011010:C: +P:0011100:.: +P:0011101: : +P:00110000:B: +P:00110010:D: +P:00110111:s: +P:001100011:O: +P:001100111:,: +P:0011000101:y: +P:0011001100:M: +P:0011011000:E: +P:0011011001:': +P:0011011011:3: +P:00110001001:T: +P:001100010000:L: +P:001100010001:G: +P:001100110100:*: +P:001100110110:A: +P:001100110111:S: +P:001101101000:w: +P:001101101001:F: +P:0011001101011:J: +P:0011011010100:f: +P:0011011010101:R: +P:0011011010111:t: +P:00110011010100:V: +P:00110110101100:Y: +P:00110110101101:I: +P:001100110101011:&: +P:0011001101010100:ESCAPE: +P:0011001101010101:): +Q:1:u: +Q:00:V: +Q:011: : +Q:0101:.: +Q:01000:a: +Q:0100100:w: +Q:0100110:E: +Q:0100111:C: +Q:01001011:&: +Q:010010101:': +Q:0100101000:T: +Q:01001010010:ESCAPE: +Q:01001010011:s: +R:01:a: +R:11:o: +R:100:i: +R:101:e: +R:0000:p: +R:0011:u: +R:00011:E: +R:00100:h: +R:000100: : +R:001010:y: +R:00010100:D: +R:00010110:.: +R:00101100:T: +R:00101110:S: +R:000101010:F: +R:001011010:B: +R:001011011:n: +R:001011111:A: +R:0001010110:w: +R:0001011100:N: +R:0001011101:&: +R:0001011110:V: +R:0001011111:H: +R:0010111101:': +R:00010101110:t: +R:00010101111:I: +R:001011110000:C: +R:001011110010:O: +R:00101111000100:,: +R:00101111000101:s: +R:00101111000110:U: +R:00101111000111:M: +R:00101111001100:-: +R:00101111001101:ESCAPE: +R:00101111001111:0x3a: +R:001011110011100:2: +R:001011110011101:R: +S:1:]: +S:0000:a: +S:0010:h: +S:0111:t: +S:00010:p: +S:00011:,: +S:00110:L: +S:01000:i: +S:01001:u: +S:01010:o: +S:01011:c: +S:01100:e: +S:001111:k: +S:0011100:w: +S:0110101: : +S:0110111:m: +S:00111010:q: +S:01101000:M: +S:01101001:n: +S:01101100:l: +S:001110110:P: +S:011011011:y: +S:0011101110:A: +S:01101101001:.: +S:001110111101:r: +S:001110111110:S: +S:001110111111:W: +S:011011010000:C: +S:011011010101:E: +S:011011010110:v: +S:0110110100011:ESCAPE: +S:0110110101000:I: +S:0110110101111:g: +S:00111011110000:*: +S:00111011110010:4: +S:00111011110011:1: +S:01101101000100:O: +S:01101101010010:STOP: +S:01101101011100:z: +S:011011010001011:B: +S:011011010111010:H: +S:011011010111011:T: +S:0011101111000100:G: +S:0011101111000110:}: +S:0011101111000111:D: +S:0110110100010100:-: +S:0110110101001100:3: +S:0110110101001101:2: +S:00111011110001010:': +S:00111011110001011:?: +S:01101101010011101:s: +S:01101101010011110:j: +S:01101101010011111:b: +S:011011010001010100:R: +S:011011010001010101:K: +S:011011010001010110:J: +S:011011010001010111:F: +S:011011010100111000:0x3a: +S:011011010100111001:): +T:0:h: +T:100:o: +T:1010:V: +T:1011:w: +T:1100:r: +T:1111:e: +T:11010:a: +T:11011:i: +T:11100:u: +T:1110100:H: +T:1110110:W: +T:11101010: : +T:11101011:y: +T:111011101:M: +T:111011111:x: +T:1110111000:S: +T:11101110010:A: +T:11101111001:s: +T:11101111011:J: +T:111011100111:X: +T:111011110000:.: +T:1110111001101:-: +T:1110111100011:L: +T:1110111101000:C: +T:1110111101011:c: +T:11101110011000:T: +T:11101110011001:U: +T:11101111000101:4: +T:11101111010010:O: +T:111011110001001:G: +T:111011110100110:E: +T:111011110100111:,: +T:111011110101010:': +T:1110111100010001:;: +T:1110111101010000:P: +T:1110111101010001:1: +T:1110111101010010:ESCAPE: +T:1110111101010111:D: +T:11101111000100000:0x3a: +T:11101111000100001:*: +T:11101111010100110:R: +T:11101111010100111:N: +T:11101111010101100:I: +T:11101111010101101:B: +U:00:K: +U:10:n: +U:011:S: +U:110:p: +U:1111:l: +U:01010:s: +U:01011:r: +U:11101:R: +U:010000:g: +U:111000: : +U:0100111:.: +U:1110010:m: +U:01000100:k: +U:01000101:t: +U:01000110:E: +U:01000111:-: +U:01001000:F: +U:01001100:2: +U:11100110:c: +U:11100111:N: +U:010010010:f: +U:010010011:8: +U:010010100:,: +U:010010111:Z: +U:0100101010:h: +U:0100110100:i: +U:0100110101:w: +U:0100110110:a: +U:01001010110:b: +U:01001010111:D: +U:01001101110:!: +U:010010110000:e: +U:010010110001:V: +U:010010110010:P: +U:010010110011:I: +U:010010110100:B: +U:010010110101:A: +U:010011011111:d: +U:0100101101100:H: +U:0100101101101:C: +U:0100101101110:0x3a: +U:0100101101111:): +U:0100110111101:z: +U:01001101111000:ESCAPE: +U:01001101111001:T: +V:01: : +V:11:i: +V:000:.: +V:001:a: +V:101:e: +V:10001:C: +V:10011:o: +V:1000001:F: +V:1000011:I: +V:10000001:1: +V:10000101:4: +V:10010000:r: +V:10010010:E: +V:10010011:s: +V:10010101:': +V:10010110:0x3a: +V:10010111:l: +V:100000001:/: +V:100001001:-: +V:100100010:D: +V:100100011:u: +V:100101001:,: +V:1000000000:6: +V:1000000001:2: +V:1000010000:5: +V:1001010000:;: +V:10010100010:ESCAPE: +V:100001000100:7: +V:100101000110:3: +V:1000010001010:9: +V:1000010001011:y: +V:1000010001100:P: +V:1000010001101:H: +V:1000010001110:A: +V:1000010001111:8: +V:1001010001111:W: +V:10010100011100:f: +V:10010100011101:B: +W:00:h: +W:10:i: +W:011:a: +W:110:o: +W:111:e: +W:0100:r: +W:01011:O: +W:0101001: : +W:0101010:y: +W:010100000:B: +W:010100001:.: +W:010101100:I: +W:010101110:W: +W:010101111:A: +W:0101000100:': +W:0101000101:M: +W:0101000111:T: +W:01010001100:2: +W:01010001101:0x3a: +W:01010110100:H: +W:01010110110:V: +W:010101101010:l: +W:010101101110:s: +W:010101101111:,: +W:0101011010111:u: +W:010101101011000:5: +W:010101101011001:): +W:010101101011011:E: +W:0101011010110100:ESCAPE: +W:0101011010110101:m: +X:1: : +X:000:a: +X:0010:z: +X:0011:m: +X:0111:t: +X:01001:U: +X:01010:-: +X:01011:e: +X:011000:u: +X:011001:I: +X:011011:,: +X:0100010:V: +X:0110100:5: +X:0110101:.: +X:01000000:S: +X:01000010:0x3a: +X:01000110:c: +X:01000111:i: +X:010000010:9: +X:010000011:': +X:010000111:X: +X:0100001100:): +X:01000011010:ESCAPE: +X:01000011011:y: +Y:1:o: +Y:00:e: +Y:010:u: +Y:01100:a: +Y:01110:v: +Y:01111: : +Y:0110100:n: +Y:01101010:r: +Y:01101101:O: +Y:01101111:i: +Y:011010111:N: +Y:011011000:L: +Y:011011001:s: +Y:011011101:m: +Y:0110101100:.: +Y:0110101101:M: +Y:0110111001:P: +Y:011011100001:R: +Y:011011100010:2: +Y:0110111000000:-: +Y:0110111000110:C: +Y:0110111000111:,: +Y:01101110000010:ESCAPE: +Y:01101110000011:d: +Z:01:a: +Z:10:e: +Z:11:o: +Z:0010:z: +Z:0011:i: +Z:00001:Z: +Z:00010: : +Z:00011:u: +Z:0000010:O: +Z:0000011:.: +Z:00000000:y: +Z:00000001:4: +Z:00000010:,: +Z:0000001100:f: +Z:0000001101:-: +Z:0000001110:STOP: +Z:00000011110:ESCAPE: +Z:00000011111:l: +[:1:S: +[:01:A: +[:0000:2: +[:0010:R: +[:0011:1: +[:000101:n: +[:000110:m: +[:0001111:l: +[:00010011:r: +[:00011101:b: +[:000100001:C: +[:000100010:f: +[:000100101:M: +[:000111001:c: +[:0001000001:STOP: +[:0001000111:K: +[:0001001000:H: +[:0001110001:T: +[:00010000000:J: +[:00010000001:B: +[:00010001101:Z: +[:00010010011:P: +[:00011100000:L: +[:000100011000:F: +[:000100100101:I: +[:000111000011:N: +[:0001000110010:s: +[:0001000110011:V: +[:0001001001000:U: +[:0001001001001:G: +[:0001110000101:D: +[:00011100001000:O: +[:000111000010010:ESCAPE: +[:000111000010011:W: +\:0:ESCAPE: +\:1:x: +]:1:STOP: +]:01: : +]:001:.: +]:0001:[: +]:00001:0x3a: +]:000001:,: +]:0000001:;: +]:00000000:ESCAPE: +]:00000001:]: +^:0:ESCAPE: +^:1:ESCAPE: +_:0:ESCAPE: +_:1:ESCAPE: +`:001:w: +`:011:H: +`:110:P: +`:111:F: +`:0101:n: +`:1011:D: +`:00001:s: +`:00010:A: +`:01001:t: +`:10000:g: +`:10011:c: +`:000000:W: +`:000001:r: +`:000110:e: +`:000111:C: +`:100011:l: +`:100100:h: +`:100101:G: +`:101001:B: +`:101010:T: +`:101011:S: +`:0100000:o: +`:0100001:d: +`:0100010:b: +`:0100011:R: +`:1000100:O: +`:1000101:L: +`:1010001:f: +`:10100000:J: +`:101000010:ESCAPE: +`:101000011:M: +a:01:n: +a:001:r: +a:101:t: +a:0000:m: +a:1001:s: +a:1110: : +a:1111:l: +a:00011:d: +a:10000:i: +a:11000:y: +a:11010:c: +a:000100:p: +a:100010:u: +a:100011:v: +a:110011:g: +a:110110:b: +a:110111:k: +a:0001010:w: +a:00010111:z: +a:11001000:.: +a:11001011:f: +a:000101100:,: +a:000101101:': +a:110010011:e: +a:110010101:h: +a:1100101001:x: +a:11001001000:a: +a:11001001001:-: +a:11001001011:j: +a:11001010000:0x3a: +a:11001010001:o: +a:110010010100:q: +a:11001001010100:!: +a:11001001010111:?: +a:1100100101010100:ESCAPE: +a:1100100101010110:;: +a:1100100101010111:): +a:1100100101011001:/: +a:1100100101011011:@: +a:11001001010101010:J: +a:11001001010101011:]: +a:11001001010110100:N: +a:11001001010110101:L: +a:110010010101100000:R: +a:110010010101100001:S: +a:110010010101100010:V: +a:11001001010110001100:[: +a:11001001010110001110:P: +a:11001001010110001111:STOP: +a:110010010101100011010:W: +a:110010010101100011011:1: +b:00:e: +b:010:u: +b:011:a: +b:100:y: +b:101:o: +b:1100:l: +b:1110:r: +b:1111:i: +b:110100:s: +b:110110: : +b:110111:b: +b:11010101:c: +b:110101000:j: +b:110101100:,: +b:110101101:.: +b:1101010011:': +b:1101011111:t: +b:11010100101:0x3a: +b:11010111000:w: +b:11010111001:d: +b:11010111010:h: +b:11010111011:&: +b:11010111101:-: +b:110101111000:m: +b:110101111001:n: +b:1101010010000:?: +b:1101010010010:v: +b:11010100100010:f: +b:11010100100111:p: +b:110101001000111:;: +b:110101001001101:D: +b:1101010010001100:/: +b:1101010010011001:@: +b:11010100100011010:X: +b:11010100100011011:": +b:11010100100110001:k: +b:110101001001100000:STOP: +b:1101010010011000010:ESCAPE: +b:1101010010011000011:!: +c:00:o: +c:011:a: +c:100:e: +c:110:h: +c:0100:i: +c:0101:l: +c:1011:k: +c:1111:t: +c:10100:u: +c:10101:r: +c:11100: : +c:1110100:y: +c:1110101:c: +c:11101101:s: +c:11101110:.: +c:111011111:,: +c:1110110001:G: +c:11101100001:n: +c:11101100110:D: +c:11101111000:K: +c:11101111011:C: +c:111011000000:0x3a: +c:111011001001:-: +c:111011001010:A: +c:111011001110:L: +c:111011001111:': +c:111011110010:d: +c:111011110100:q: +c:111011110101:I: +c:1110110010000:N: +c:1110110010001:z: +c:1110111100111:F: +c:11101100000101:w: +c:11101100000111:E: +c:11101100101100:?: +c:11101111001100:M: +c:11101111001101:S: +c:111011000001000:b: +c:111011000001001:ESCAPE: +c:111011000001100:!: +c:111011001011010:Q: +c:111011001011011:P: +c:111011001011100:;: +c:111011001011110:B: +c:1110110000011011:V: +c:1110110010111011:m: +c:1110110010111110:/: +c:11101100000110101:): +c:11101100101110100:U: +c:11101100101111110:W: +c:111011000001101000:p: +c:111011000001101001:H: +c:111011001011101010:STOP: +c:111011001011111110:R: +c:111011001011111111:T: +c:1110110010111010110:]: +c:1110110010111010111:[: +d:0: : +d:101:e: +d:1100:a: +d:1110:i: +d:10001:.: +d:10011:o: +d:11011:r: +d:11111:s: +d:100001:d: +d:100101:l: +d:110100:u: +d:111101:y: +d:1001001:-: +d:1101011:v: +d:1111000:g: +d:1111001:,: +d:10000000:h: +d:10000001:0x3a: +d:10000010:m: +d:10010000:w: +d:10010001:n: +d:11010101:': +d:100000111:f: +d:1101010001:?: +d:1101010010:b: +d:1101010011:c: +d:10000011000:!: +d:11010100000:p: +d:11010100001:t: +d:100000110010:STOP: +d:100000110011:): +d:100000110100:k: +d:100000110101:;: +d:100000110111:/: +d:10000011011010:": +d:10000011011011:j: +d:100000110110000:z: +d:100000110110011:q: +d:1000001101100011:@: +d:1000001101100100:ESCAPE: +d:10000011011000101:C: +d:10000011011001010:]: +d:100000110110001000:Z: +d:100000110110001001:[: +d:100000110110010110:T: +d:100000110110010111:`: +e:10: : +e:010:s: +e:110:r: +e:0000:d: +e:0011:a: +e:1111:n: +e:00010:c: +e:01100:e: +e:01101:w: +e:01111:t: +e:11100:l: +e:000110:x: +e:001000:v: +e:001001:i: +e:001010:y: +e:011100:m: +e:111010:.: +e:0001110:f: +e:0010111:b: +e:0111010:,: +e:1110110:p: +e:00011110:-: +e:00011111:h: +e:00101100:k: +e:01110110:': +e:11101110:g: +e:11101111:o: +e:001011011:0x3a: +e:0010110100:): +e:0010110101:q: +e:0111011101:?: +e:0111011110:u: +e:01110111000:z: +e:01110111110:!: +e:011101111110:STOP: +e:011101111111:j: +e:0111011100110:/: +e:01110111001001:4: +e:01110111001010:B: +e:01110111001110:]: +e:01110111001111:;: +e:011101110010000:": +e:0111011100100011:D: +e:0111011100101100:ESCAPE: +e:0111011100101110:@: +e:01110111001000100:T: +e:01110111001000101:C: +e:01110111001011011:[: +e:01110111001011111:L: +e:011101110010110100:V: +e:011101110010110101:G: +e:011101110010111100:1: +e:01110111001011110101:E: +e:011101110010111101000:2: +e:011101110010111101001:N: +e:011101110010111101100:F: +e:011101110010111101101:A: +e:0111011100101111011100:\: +e:0111011100101111011101:P: +e:0111011100101111011110:M: +e:0111011100101111011111:H: +f:00:o: +f:10: : +f:010:i: +f:110:r: +f:0111:a: +f:1110:e: +f:01100:t: +f:11110:u: +f:11111:f: +f:011011:l: +f:01101000:s: +f:01101001:y: +f:011010110:.: +f:0110101000:?: +f:0110101011:,: +f:0110101111:-: +f:01101010011:0x3a: +f:01101010100:': +f:01101010101:g: +f:011010100100:m: +f:011010111000:ESCAPE: +f:011010111010:b: +f:011010111011:n: +f:0110101001011:c: +f:0110101110010:!: +f:01101011100110:): +f:01101011100111:w: +f:011010100101001:p: +f:011010100101010:/: +f:0110101001010000:h: +f:0110101001010110:;: +f:01101010010100010:STOP: +f:01101010010100011:d: +f:01101010010101110:k: +f:01101010010101111:v: +g:11: : +g:000:a: +g:010:h: +g:101:e: +g:0011:u: +g:0110:r: +g:1000:i: +g:01110:l: +g:10010:s: +g:10011:o: +g:001001:,: +g:001010:n: +g:011110:g: +g:011111:.: +g:0010110:y: +g:00100001:': +g:00100010:-: +g:00100011:0x3a: +g:001000000:d: +g:001011101:b: +g:001011110:t: +g:001011111:w: +g:0010000010:?: +g:0010000011:m: +g:00101110001:!: +g:00101110011:f: +g:001011100001:;: +g:001011100101:STOP: +g:0010111000000:k: +g:0010111001000:p: +g:00101110000010:): +g:00101110000011:": +g:001011100100101:c: +g:001011100100111:/: +g:0010111001001000:ESCAPE: +g:0010111001001100:]: +g:0010111001001101:z: +g:00101110010010010:`: +g:001011100100100110:v: +g:001011100100100111:@: +h:0:e: +h:100:o: +h:101:i: +h:110: : +h:1111:a: +h:111001:r: +h:111011:t: +h:11100001:y: +h:11100011:l: +h:11101000:.: +h:11101001:n: +h:11101011:u: +h:111000000:d: +h:111000100:s: +h:111010100:,: +h:1110000011:w: +h:1110001010:': +h:1110001011:-: +h:11101010101:m: +h:11101010110:0x3a: +h:11101010111:b: +h:111000001001:c: +h:111000001011:?: +h:111010101000:!: +h:1110000010000:): +h:1110000010100:h: +h:1110000010101:k: +h:1110101010011:f: +h:11101010100101:g: +h:111000001000100:p: +h:111000001000101:;: +h:111000001000110:/: +h:111000001000111:STOP: +h:111010101001001:v: +h:1110101010010000:q: +h:11101010100100010:ESCAPE: +h:111010101001000110:": +h:11101010100100011100:z: +h:11101010100100011101:j: +h:11101010100100011110:]: +h:11101010100100011111:*: +i:10:n: +i:000:t: +i:010:s: +i:0011:l: +i:1100:o: +i:1101:c: +i:1111:e: +i:00100:a: +i:01100:m: +i:01101:d: +i:01110:v: +i:11100:g: +i:11101:r: +i:001010:p: +i:011110:f: +i:0010110:z: +i:0111110: : +i:00101111:b: +i:01111110:k: +i:001011100:-: +i:001011101:x: +i:0111111100:u: +i:0111111110:q: +i:01111111010:.: +i:01111111110:,: +i:011111110111:w: +i:011111111111:': +i:0111111101101:i: +i:0111111111101:j: +i:01111111011001:0x3a: +i:01111111111000:h: +i:011111110110000:/: +i:011111111110011:y: +i:0111111101100011:?: +i:0111111111100100:P: +i:01111111011000101:R: +i:01111111111001011:!: +i:011111111110010100:): +i:011111111110010101:S: +i:0111111101100010000:STOP: +i:0111111101100010001:C: +i:0111111101100010010:ESCAPE: +i:01111111011000100110:D: +i:01111111011000100111:;: +j:0:o: +j:11:u: +j:101:a: +j:1001:e: +j:10000:i: +j:100011:y: +j:1000101: : +j:10001001:.: +j:100010000:': +j:1000100011:t: +j:10001000100:n: +j:100010001011:s: +j:1000100010100:ESCAPE: +j:1000100010101:h: +k:10: : +k:11:e: +k:000:s: +k:011:i: +k:0010:.: +k:01001:y: +k:001100:': +k:001101:a: +k:001110:p: +k:001111:,: +k:010100:l: +k:010101:f: +k:010110:n: +k:0100000:/: +k:0100010:-: +k:0100011:o: +k:01011101:0x3a: +k:010000111:b: +k:010111000:w: +k:010111001:m: +k:010111100:h: +k:010111110:u: +k:010111111:k: +k:0100001000:r: +k:0100001001:ESCAPE: +k:0100001010:?: +k:0100001100:t: +k:0100001101:g: +k:0101111011:d: +k:01000010110:j: +k:010000101110:): +k:010111101000:;: +k:010111101001:c: +k:010111101010:S: +k:0100001011110:v: +k:0100001011111:R: +k:0101111010110:!: +k:01011110101110:@: +k:010111101011110:": +k:010111101011111:STOP: +l:010:a: +l:011:i: +l:100:l: +l:110:e: +l:111: : +l:0000:u: +l:0001:d: +l:0010:y: +l:1011:o: +l:10100:s: +l:001100:.: +l:001110:t: +l:0011010:v: +l:0011110:f: +l:1010100:m: +l:1010101:k: +l:1010110:p: +l:00110111:c: +l:00111110:-: +l:10101111:,: +l:001101101:0x3a: +l:001111111:b: +l:101011100:': +l:0011011000:r: +l:0011011001:h: +l:0011111100:n: +l:0011111101:g: +l:1010111011:w: +l:10101110100:?: +l:1010111010100:!: +l:1010111010110:z: +l:10101110101011:/: +l:101011101010100:;: +l:101011101011100:E: +l:101011101011101:*: +l:101011101011111:STOP: +l:1010111010101011:ESCAPE: +l:1010111010111100:): +l:10101110101010100:@: +l:10101110101010101:j: +l:10101110101111010:": +l:101011101011110110:[: +l:101011101011110111:]: +m:00:a: +m:01:e: +m:111: : +m:1001:p: +m:1011:o: +m:1100:i: +m:10000:.: +m:10001:s: +m:11010:u: +m:11011:m: +m:101001:y: +m:101011:b: +m:1010000:,: +m:1010100:/: +m:10100010:]: +m:101000110:0x3a: +m:101010100:': +m:1010001111:r: +m:1010101011:f: +m:1010101100:l: +m:1010101110:n: +m:10100011100:?: +m:10100011101:!: +m:10101010100:STOP: +m:10101010101:w: +m:10101011011:h: +m:10101011110:-: +m:101010111110:4: +m:1010101101010:t: +m:1010101101011:@: +m:1010101111110:;: +m:1010101111111:c: +m:10101011010000:): +m:10101011010001:ESCAPE: +m:10101011010011:d: +m:101010110100101:g: +m:10101011010010000:[: +m:10101011010010001:v: +m:10101011010010010:k: +m:10101011010010011:z: +n:01: : +n:001:t: +n:100:g: +n:111:d: +n:0000:s: +n:1010:a: +n:1101:e: +n:10110:c: +n:11000:i: +n:000111:.: +n:101111:n: +n:110011:o: +n:0001001:u: +n:0001011:v: +n:0001100:f: +n:1011100:k: +n:1011101:': +n:1100100:y: +n:1100101:,: +n:00010000:m: +n:00010100:l: +n:00010101:-: +n:000100011:w: +n:000110101:0x3a: +n:0001000101:z: +n:0001101000:h: +n:0001101100:b: +n:0001101101:j: +n:0001101110:r: +n:00010001000:p: +n:00011010011:x: +n:00011011111:?: +n:000100010011:;: +n:000110100101:): +n:000110111100:!: +n:000110111101:q: +n:0001000100100:/: +n:0001000100101:STOP: +n:0001101001000:ESCAPE: +n:00011010010010:B: +n:0001101001001100:]: +n:0001101001001101:": +n:0001101001001110:@: +n:0001101001001111:*: +o:001:u: +o:011: : +o:100:r: +o:111:n: +o:0000:l: +o:1100:m: +o:1101:f: +o:00010:v: +o:01000:s: +o:01001:p: +o:10100:t: +o:10101:o: +o:10111:w: +o:000110:k: +o:000111:i: +o:010100:g: +o:010111:c: +o:101101:d: +o:0101011:e: +o:0101100:y: +o:0101101:a: +o:1011001:b: +o:01010101:h: +o:10110000:.: +o:010101000:-: +o:010101001:,: +o:1011000101:': +o:1011000111:x: +o:10110001001:0x3a: +o:10110001101:z: +o:101100010001:?: +o:101100011001:j: +o:1011000100000:!: +o:1011000110001:q: +o:10110001000010:J: +o:10110001100000:/: +o:10110001100001:): +o:1011000100001101:;: +o:1011000100001110:G: +o:10110001000011000:": +o:10110001000011110:ESCAPE: +o:101100010000110010:]: +o:101100010000110011:@: +o:1011000100001111100:4: +o:1011000100001111101:STOP: +o:1011000100001111110:B: +o:10110001000011111110:O: +o:10110001000011111111:C: +p:001:l: +p:010: : +p:011:o: +p:101:r: +p:111:e: +p:0000:p: +p:1100:a: +p:1101:i: +p:00011:t: +p:10000:u: +p:10001:h: +p:10010:s: +p:000101:m: +p:0001001:d: +p:1001101:y: +p:1001110:.: +p:1001111:,: +p:00010000:-: +p:000100011:?: +p:100110001:0x3a: +p:1001100100:': +p:1001100101:]: +p:1001100110:+: +p:1001100111:b: +p:00010001001:f: +p:00010001010:k: +p:00010001011:!: +p:10011000001:c: +p:10011000010:n: +p:10011000011:w: +p:000100010000:STOP: +p:000100010001:;: +p:100110000001:/: +p:1001100000001:g: +p:10011000000001:): +p:100110000000001:": +p:1001100000000001:S: +p:10011000000000000:ESCAPE: +p:10011000000000001:B: +q:1:u: +q:000:,: +q:001:.: +q:011: : +q:01001:b: +q:01010:': +q:01011:i: +q:010001:a: +q:01000000:?: +q:01000001:0x3a: +q:01000011:): +q:010000100:ESCAPE: +q:010000101:w: +r:000:a: +r:001:o: +r:100:i: +r:110: : +r:111:e: +r:0100:s: +r:0101:t: +r:01110:d: +r:10100:n: +r:10101:y: +r:011010:u: +r:011011:m: +r:011111:k: +r:101101:l: +r:101110:.: +r:101111:r: +r:0110000:f: +r:0110010:,: +r:0110011:v: +r:1011000:c: +r:1011001:g: +r:01100011:': +r:01111000:-: +r:01111001:b: +r:01111011:p: +r:011000101:0x3a: +r:011110100:w: +r:0111101010:?: +r:0111101011:h: +r:01100010010:!: +r:011000100001:q: +r:011000100010:j: +r:011000100011:STOP: +r:011000100110:/: +r:0110001000001:;: +r:0110001001111:): +r:01100010011100:8: +r:01100010011101:z: +r:011000100000001:": +r:011000100000011:]: +r:0110001000000000:T: +r:0110001000000100:x: +r:0110001000000101:ESCAPE: +r:01100010000000011:Z: +r:011000100000000100:*: +r:0110001000000001010:D: +r:0110001000000001011:B: +s:0: : +s:101:t: +s:1000:.: +s:1110:e: +s:10011:,: +s:11000:o: +s:11001:s: +s:11110:h: +s:11111:i: +s:100101:c: +s:110100:u: +s:110110:p: +s:1101111:a: +s:10010001:n: +s:10010011:m: +s:11010100:y: +s:11010110:0x3a: +s:11011100:l: +s:11011101:k: +s:100100001:b: +s:100100100:f: +s:110101010:w: +s:110101111:': +s:1001000000:!: +s:1001000001:g: +s:1001001010:r: +s:1101010110:?: +s:1101010111:-: +s:1101011101:q: +s:11010111001:d: +s:100100101100:/: +s:100100101101:): +s:100100101111:STOP: +s:110101110000:]: +s:110101110001:;: +s:1001001011101:v: +s:100100101110001:": +s:100100101110011:z: +s:1001001011100000:j: +s:1001001011100001:ESCAPE: +s:1001001011100100:[: +s:10010010111001011:@: +s:100100101110010101:T: +s:1001001011100101000:x: +s:1001001011100101001:`: +t:10:h: +t:000:i: +t:010:o: +t:011:e: +t:111: : +t:0010:a: +t:00110:u: +t:11001:r: +t:11011:s: +t:001111:.: +t:110001:t: +t:110100:y: +t:0011101:c: +t:1100001:l: +t:00111001:-: +t:11000000:v: +t:11000001:m: +t:11010101:w: +t:11010110:,: +t:11010111:': +t:001110000:n: +t:0011100011:?: +t:1101010001:b: +t:1101010010:0x3a: +t:00111000100:!: +t:11010100000:z: +t:11010100110:d: +t:11010100111:f: +t:110101000010:x: +t:0011100010100:g: +t:0011100010101:;: +t:1101010000110:p: +t:00111000101100:P: +t:00111000101101:STOP: +t:00111000101111:): +t:11010100001110:/: +t:11010100001111:k: +t:0011100010111000:@: +t:0011100010111010:E: +t:00111000101110011:]: +t:00111000101110111:": +t:001110001011100100:F: +t:001110001011101100:ESCAPE: +t:0011100010111001010:j: +t:0011100010111011010:1: +t:0011100010111011011:[: +t:00111000101110010110:\: +t:001110001011100101110:K: +t:001110001011100101111:C: +u:011:t: +u:101:n: +u:110:s: +u:111:r: +u:0001:d: +u:0010:e: +u:0101:l: +u:1000:p: +u:00000:b: +u:00001: : +u:00110:i: +u:01000:a: +u:01001:g: +u:10010:c: +u:10011:m: +u:0011100:y: +u:00111010:z: +u:00111100:': +u:00111110:f: +u:00111111:k: +u:001111010:,: +u:0011101101:-: +u:0011101110:o: +u:0011110110:.: +u:0011110111:x: +u:00111011000:w: +u:00111011110:0x3a: +u:001110110010:q: +u:001110111110:h: +u:001110111111:v: +u:0011101100110:j: +u:001110110011100:u: +u:001110110011101:?: +u:0011101100111110:/: +u:0011101100111111:!: +u:00111011001111001:ESCAPE: +u:001110110011110000:\: +u:001110110011110001:STOP: +u:001110110011110100:;: +u:001110110011110110:J: +u:001110110011110111:): +u:0011101100111101010:T: +u:0011101100111101011:]: +v:1:e: +v:01:i: +v:000:a: +v:0011:o: +v:00101:.: +v:001001: : +v:00100001:': +v:00100011:y: +v:001000000:u: +v:001000100:s: +v:0010001010:r: +v:00100000100:-: +v:00100000110:,: +v:00100010110:n: +v:001000001010:g: +v:001000001011:v: +v:001000001111:l: +v:001000101110:@: +v:001000101111:0x3a: +v:0010000011101:k: +v:00100000111000:b: +v:001000001110010:t: +v:0010000011100110:d: +v:00100000111001110:/: +v:001000001110011110:ESCAPE: +v:001000001110011111:1: +w:00:i: +w:011:e: +w:100: : +w:101:s: +w:110:h: +w:0101:a: +w:1111:o: +w:01000:.: +w:01001:w: +w:11100:n: +w:1110110:r: +w:11101010:,: +w:11101011:l: +w:11101111:y: +w:111010010:c: +w:111011101:b: +w:1110100010:0x3a: +w:1110100110:m: +w:1110100111:': +w:1110111000:d: +w:11101000000:f: +w:11101000001:]: +w:11101000010:!: +w:11101000111:k: +w:11101110010:-: +w:111010000111:g: +w:111010001100:?: +w:111010001101:t: +w:111011100111:p: +w:1110100001100:STOP: +w:1110100001101:u: +w:1110111001101:): +w:11101110011001:j: +w:111011100110001:q: +w:1110111001100000:/: +w:11101110011000010:;: +w:111011100110000111:[: +w:1110111001100001100:ESCAPE: +w:1110111001100001101:B: +x:01:p: +x:11:t: +x:101: : +x:0000:i: +x:0010:a: +x:1000:c: +x:00010:u: +x:00111:e: +x:10011:-: +x:000110:f: +x:001101:o: +x:100100:.: +x:0001110:,: +x:0001111:m: +x:0011001:y: +x:00110001:9: +x:10010101:': +x:10010110:q: +x:001100000:s: +x:100101000:0x3a: +x:100101110:h: +x:0011000011:?: +x:1001010010:l: +x:1001011110:w: +x:00110000100:A: +x:10010100110:x: +x:10010100111:b: +x:10010111111:): +x:001100001011:/: +x:0011000010100:4: +x:0011000010101:!: +x:1001011111000:g: +x:1001011111001:STOP: +x:1001011111011:;: +x:100101111101001:v: +x:100101111101010:F: +x:100101111101011:E: +x:1001011111010000:ESCAPE: +x:1001011111010001:C: +y:1: : +y:000:o: +y:0011:s: +y:0101:.: +y:01001:,: +y:01100:e: +y:01110:': +y:001001:a: +y:001010:i: +y:001011:d: +y:010001:n: +y:011011:0x3a: +y:011111:l: +y:0010000:w: +y:0110100:t: +y:0110101:m: +y:0111101:-: +y:00100011:b: +y:01000000:?: +y:01000001:r: +y:01000010:p: +y:01000011:f: +y:01111001:c: +y:0010001001:;: +y:0010001010:J: +y:0111100000:h: +y:0111100001:!: +y:0111100011:g: +y:00100010000:): +y:00100010111:/: +y:01111000101:]: +y:001000100011:k: +y:001000101100:ESCAPE: +y:001000101101:u: +y:011110001001:STOP: +y:0010001000100:z: +y:0111100010001:": +y:00100010001011:j: +y:01111000100001:2: +y:001000100010100:y: +y:001000100010101:x: +y:0111100010000000:v: +y:0111100010000001:T: +y:0111100010000010:E: +y:0111100010000011:P: +z:10:e: +z:001:a: +z:011:z: +z:110: : +z:111:i: +z:0001:l: +z:0100:y: +z:01010:o: +z:000000:c: +z:000010:,: +z:000011:.: +z:010110:w: +z:0000010:': +z:00000110:0x3a: +z:00000111:t: +z:01011101:m: +z:010111000:k: +z:010111100:-: +z:010111101:u: +z:010111111:b: +z:01011100100:s: +z:01011100101:/: +z:01011100111:d: +z:01011111001:p: +z:01011111011:?: +z:010111001100:h: +z:010111110000:@: +z:010111110100:): +z:0101110011010:!: +z:0101111100011:v: +z:0101111101010:g: +z:01011100110110:f: +z:01011100110111:r: +z:01011111000100:q: +z:01011111000101:n: +z:01011111010110:ESCAPE: +z:01011111010111:]: +{:0:ESCAPE: +{:1:ESCAPE: +|:0:ESCAPE: +|:1:ESCAPE: +}:0:ESCAPE: +}:1:STOP: +~:0:ESCAPE: +~:1:ESCAPE: +0x7f:0:ESCAPE: +0x7f:1:ESCAPE: +START:010:A: +START:100:C: +START:111:T: +START:0001:J: +START:0011:D: +START:1010:S: +START:00000:H: +START:00100:I: +START:00101:R: +START:01101:F: +START:01110:.: +START:01111:W: +START:10111:M: +START:11000:B: +START:11001:P: +START:11011:N: +START:000010:O: +START:011001:[: +START:101101:L: +START:110101:E: +START:0000110:K: +START:1101000:Y: +START:1101001:G: +START:00001110:2: +START:01100000:p: +START:01100001:b: +START:01100010:U: +START:01100011:(: +START:10110000:1: +START:10110011:V: +START:000011110:Q: +START:101100010:3: +START:0000111110:9: +START:0000111111:8: +START:1011000110:6: +START:1011000111:5: +START:1011001000:Z: +START:1011001001:7: +START:1011001010:4: +START:101100101110:X: +START:101100101111: : +START:1011001011001:w: +START:1011001011010:': +START:1011001011011:": +START:10110010110000:t: +START:101100101100010:a: +START:1011001011000110:`: +START:10110010110001110:ESCAPE: +START:10110010110001111:m: +ESCAPE:0:ESCAPE: +ESCAPE:1:ESCAPE: +STOP:0:ESCAPE: +STOP:1:ESCAPE: +0x03:0:ESCAPE: +0x03:1:ESCAPE: +0x04:0:ESCAPE: +0x04:1:ESCAPE: +0x05:0:ESCAPE: +0x05:1:ESCAPE: +0x06:0:ESCAPE: +0x06:1:ESCAPE: +0x07:0:ESCAPE: +0x07:1:ESCAPE: +0x08:0:ESCAPE: +0x08:1:ESCAPE: +0x09:0:ESCAPE: +0x09:1:ESCAPE: +0x0a:0:ESCAPE: +0x0a:1:ESCAPE: +0x0b:0:ESCAPE: +0x0b:1:ESCAPE: +0x0c:0:ESCAPE: +0x0c:1:ESCAPE: +0x0d:0:ESCAPE: +0x0d:1:ESCAPE: +0x0e:0:ESCAPE: +0x0e:1:ESCAPE: +0x0f:0:ESCAPE: +0x0f:1:ESCAPE: +0x10:0:ESCAPE: +0x10:1:ESCAPE: +0x11:0:ESCAPE: +0x11:1:ESCAPE: +0x12:0:ESCAPE: +0x12:1:ESCAPE: +0x13:0:ESCAPE: +0x13:1:ESCAPE: +0x14:0:ESCAPE: +0x14:1:ESCAPE: +0x15:0:ESCAPE: +0x15:1:ESCAPE: +0x16:0:ESCAPE: +0x16:1:ESCAPE: +0x17:0:ESCAPE: +0x17:1:ESCAPE: +0x18:0:ESCAPE: +0x18:1:ESCAPE: +0x19:0:ESCAPE: +0x19:1:ESCAPE: +0x1a:0:ESCAPE: +0x1a:1:ESCAPE: +0x1b:0:ESCAPE: +0x1b:1:ESCAPE: +0x1c:0:ESCAPE: +0x1c:1:ESCAPE: +0x1d:0:ESCAPE: +0x1d:1:ESCAPE: +0x1e:0:ESCAPE: +0x1e:1:ESCAPE: +0x1f:0:ESCAPE: +0x1f:1:ESCAPE: + :010:a: + :100:t: + :0001:o: + :0010:s: + :00110:d: + :01100:[: + :01111:p: + :10101:b: + :11001:c: + :11010:h: + :11100:w: + :11101:i: + :11111:f: + :000000:A: + :000011:M: + :001111:e: + :011100:B: + :011101:C: + :101000:T: + :101101:S: + :101110:g: + :110000:r: + :110110:n: + :110111:l: + :111101:m: + :0000011:v: + :0000100:G: + :0000101:N: + :0011101:y: + :0110101:H: + :0110111:L: + :1010010:J: + :1010011:F: + :1011001:R: + :1011110:u: + :1100010:D: + :1100011:W: + :1111001:P: + :00000100:k: + :00000101:O: + :01101000:-: + :01101101:1: + :10110001:K: + :10111110:j: + :11110000:I: + :11110001:E: + :001110010:q: + :001110011:U: + :011010010:V: + :011011000:Y: + :011011001: : + :101100001:2: + :101111110:STOP: + :0011100000:3: + :0011100001:8: + :0011100010:6: + :0110100111:5: + :1011000000:(: + :1011111110:7: + :00111000110:0: + :01101001100:': + :01101001101:9: + :10110000010:Z: + :10111111110:4: + :10111111111:Q: + :001110001111:X: + :1011000001100:ESCAPE: + :1011000001101:.: + :1011000001110:&: + :00111000111000:\: + :00111000111010:@: + :00111000111011:`: + :10110000011110:": + :10110000011111:z: + :001110001110011:$: + :0011100011100100:+: + :00111000111001011:x: + :001110001110010101:]: + :0011100011100101000:/: + :0011100011100101001:?: +!:1: : +!:01:STOP: +!:001:.: +!:0000:0x3a: +!:00011:[: +!:0001001:": +!:0001010:/: +!:0001011:!: +!:00010000:): +!:000100010:': +!:0001000111:?: +!:00010001100:ESCAPE: +!:00010001101:]: +":11: : +":001:.: +":0000:p: +":0101:B: +":0111:T: +":1000:i: +":00010:f: +":00011:W: +":01000:S: +":01100:t: +":01101:C: +":10100:STOP: +":10111:,: +":010010:J: +":100100:m: +":101010:n: +":101011:I: +":0100110:E: +":0100111:D: +":1001010:w: +":1001011:g: +":1001100:b: +":1001101:L: +":1001110:-: +":1011000:c: +":1011001:H: +":10011110:P: +":10110100:r: +":10110111:K: +":100111111:l: +":101101010:Y: +":101101011:Q: +":101101100:G: +":101101101:A: +":1001111100:ESCAPE: +":1001111101:a: +#:0:ESCAPE: +#:1:ESCAPE: +$:0:1: +$:11:3: +$:100:4: +$:1011:2: +$:10101:7: +$:101001:5: +$:1010000:ESCAPE: +$:1010001:9: +%:1: : +%:00:ESCAPE: +%:01:,: +&:1: : +&:01:w: +&:001:B: +&:0000:E: +&:000100:2: +&:000110:A: +&:000111:R: +&:00010100:O: +&:00010101:4: +&:00010111:J: +&:000101100:ESCAPE: +&:000101101:P: +':1:s: +':001:t: +':010: : +':0000:l: +':01101:r: +':000100:n: +':000101:.: +':000110:C: +':011000:B: +':011101:A: +':0111000:d: +':0111100:v: +':00011100:S: +':00011111:p: +':01100101:D: +':01111011:i: +':01111100:c: +':01111101:m: +':01111111:,: +':000111010:f: +':000111011:g: +':011001000:F: +':011001001:h: +':011001101:H: +':011001110:N: +':011100101:R: +':011100110:STOP: +':011100111:T: +':011110101:G: +':011111101:L: +':0001111000:o: +':0001111001:K: +':0001111011:a: +':0110011001:u: +':0110011111:O: +':0111001001:I: +':0111101000:w: +':0111101001:b: +':0111111001:e: +':00011110101:?: +':01100110000:E: +':01100110001:7: +':01110010000:P: +':000111101001:W: +':011001111001:0x3a: +':011001111010:!: +':011100100011:J: +':011111100001:q: +':011111100011:M: +':0001111010001:V: +':0110011110001:9: +':0110011110111:y: +':0111001000100:8: +':0111001000101:5: +':0111111000000:6: +':0111111000101:k: +':00011110100000:2: +':00011110100001:0: +':01100111100001:Y: +':01100111101100:): +':01111110000010:j: +':01111110000011:Q: +':011001111000000:-: +':011001111000001:': +':011001111011011:z: +':011111100010000:X: +':011111100010001:U: +':011111100010010:4: +':011111100010011:3: +':0110011110110100:ESCAPE: +':0110011110110101:1: +(:01:1: +(:000:P: +(:101:t: +(:1000:2: +(:1101:5: +(:1110:N: +(:00111:T: +(:10010:p: +(:11111:c: +(:001001:a: +(:001010:S: +(:001100:R: +(:100111:e: +(:111100:J: +(:111101:A: +(:0010110:D: +(:0011011:K: +(:1001100:v: +(:1001101:s: +(:1100000:b: +(:1100010:G: +(:1100011:8: +(:1100100:M: +(:1100101:H: +(:1100110:C: +(:00100000:m: +(:00100010:o: +(:00100011:E: +(:00101110:W: +(:11000011:g: +(:11001110:L: +(:001000010:d: +(:001011111:U: +(:001101000:F: +(:001101010:f: +(:110000100:w: +(:110000101:B: +(:110011111:n: +(:0010000110:l: +(:0010000111:9: +(:0010111100:4: +(:0010111101:I: +(:0011010010:3: +(:0011010111:h: +(:1100111101:i: +(:00110100110:Z: +(:00110100111:V: +(:00110101100: : +(:11001111000:k: +(:001101011011:O: +(:110011110010:': +(:0011010110100:ESCAPE: +(:0011010110101:u: +(:1100111100110:X: +(:1100111100111:7: +):0: : +):11:.: +):101:STOP: +):1001:,: +):10000:0x3a: +):100011:;: +):1000101:!: +):10001001:(: +):1000100000:ESCAPE: +):1000100001:o: +):1000100010:?: +):1000100011:): +*:0:*: +*:100:s: +*:101: : +*:1100:m: +*:1110:t: +*:11010:g: +*:11011:k: +*:11111:d: +*:111101:y: +*:1111001:e: +*:11110000:i: +*:111100010:ESCAPE: +*:111100011:n: ++:1:n: ++:00:ESCAPE: ++:01: : +,:1: : +,:01:S: +,:001:0: +,:0001:A: +,:00000:5: +,:0000110:b: +,:0000111:3: +,:00001000:2: +,:00001001:": +,:00001011:1: +,:0000101000:Q: +,:0000101010:': +,:00001010111:4: +,:000010100100:T: +,:000010100101:B: +,:000010100110:7: +,:000010100111:6: +,:000010101100:STOP: +,:0000101011010:ESCAPE: +,:0000101011011:i: +-:00: : +-:0100:t: +-:0101:b: +-:0110:w: +-:0111:u: +-:1001:o: +-:1010:s: +-:1011:f: +-:10000:c: +-:11011:l: +-:11101:d: +-:100010:9: +-:110000:h: +-:110010:1: +-:110011:y: +-:110101:r: +-:111000:a: +-:111100:m: +-:111110:p: +-:1000110:S: +-:1101000:e: +-:1101001:i: +-:1111011:n: +-:10001110:C: +-:11000101:W: +-:11000111:g: +-:11100101:J: +-:11100110:D: +-:11110101:2: +-:11111100:7: +-:11111110:G: +-:11111111:O: +-:100011111:H: +-:110001000:A: +-:110001100:6: +-:110001101:B: +-:111001111:M: +-:111101000:E: +-:111101001:L: +-:111111010:U: +-:111111011:k: +-:1000111100:F: +-:1100010010:j: +-:1100010011:P: +-:1110010001:q: +-:1110010010:5: +-:1110010011:T: +-:1110011101:I: +-:10001111011:K: +-:11100100000:v: +-:11100100001:Z: +-:11100111001:N: +-:100011110101:R: +-:111001110001:Y: +-:1000111101001:0: +-:10001111010000:4: +-:10001111010001:z: +-:11100111000001:V: +-:11100111000010:3: +-:11100111000011:8: +-:111001110000001:Q: +-:1110011100000000:': +-:11100111000000010:ESCAPE: +-:11100111000000011:x: +.:1: : +.:01:STOP: +.:0011:.: +.:00010:i: +.:00100:0: +.:00101:c: +.:000001:u: +.:0000000:a: +.:0000001:[: +.:0001101:3: +.:00001000:4: +.:00001110:H: +.:00011000:S: +.:00011001:W: +.:00011100:o: +.:00011110:1: +.:000010100:5: +.:000010101:L: +.:000010111:p: +.:000011000:T: +.:000011001:A: +.:000011010:M: +.:000011110:C: +.:000011111:2: +.:000111011:D: +.:000111110:B: +.:0000100100:N: +.:0000100110:t: +.:0000100111:J: +.:0000101101:R: +.:0000110111:P: +.:0001110101:s: +.:0001111111:I: +.:00001011000:r: +.:00001101100:V: +.:00011101000:w: +.:00011101001:F: +.:00011111101:G: +.:000010010100:E: +.:000010010101:0x3a: +.:000010110010:h: +.:000011011010:,: +.:000111111000:': +.:0000100101101:b: +.:0000100101110:K: +.:0000100101111:Y: +.:0000101100111:O: +.:0000110110110:-: +.:0001111110010:f: +.:0001111110011:(: +.:00001011001100:": +.:00001101101110:y: +.:000010010110000:?: +.:000010010110001:m: +.:000010010110010:Q: +.:000011011011110:*: +.:000011011011111:&: +.:0000100101100110:U: +.:0000100101100111:;: +.:0000101100110100:8: +.:0000101100110101:6: +.:0000101100110111:k: +.:00001011001101100:d: +.:000010110011011010:ESCAPE: +.:000010110011011011:n: +/:01:c: +/:110:1: +/:111:e: +/:0000:5: +/:0010:8: +/:00010:T: +/:00011:f: +/:00110:B: +/:00111:2: +/:10001:3: +/:10010:7: +/:10100:6: +/:10110:a: +/:101111:4: +/:1000000:F: +/:1000010:s: +/:1000011:M: +/:1001100:H: +/:1001110:D: +/:1001111:A: +/:1010101:S: +/:10000011:m: +/:10011010:W: +/:10101000:G: +/:10101001:U: +/:10101100:d: +/:10101101:O: +/:10101110:N: +/:10111001:C: +/:10111011:P: +/:100110110:L: +/:101011110: : +/:101011111:I: +/:101110000:E: +/:101110001:R: +/:101110100:K: +/:101110101:t: +/:1000001001:J: +/:1000001011:9: +/:10000010000:v: +/:10000010001:p: +/:10000010100:h: +/:10011011101:o: +/:10011011110:Q: +/:10011011111:0: +/:100000101010:l: +/:100000101011:i: +/:100110111000:V: +/:1001101110011:y: +/:10011011100100:ESCAPE: +/:10011011100101:g: +0:0:0: +0:111: : +0:1001:a: +0:1011:p: +0:10001:s: +0:11000:.: +0:11001:8: +0:11011:,: +0:100000:4: +0:100001:t: +0:101001:5: +0:110100:6: +0:1010000:3: +0:1010001:7: +0:1010101:]: +0:1010110:-: +0:1010111:1: +0:10101000:): +0:10101001:/: +0:11010100:STOP: +0:11010101:9: +0:11010111:2: +0:110101100:%: +0:1101011010:0x3a: +0:110101101101:f: +0:110101101111:m: +0:1101011011100:y: +0:11010110110001:l: +0:11010110110010:;: +0:11010110110011:': +0:11010110111010:k: +0:11010110111011:!: +0:110101101100000:C: +0:1101011011000010:ESCAPE: +0:1101011011000011:J: +1:00:9: +1:100:1: +1:111:0: +1:0101: : +1:0111:2: +1:1011:.: +1:1100:5: +1:01000:6: +1:01001:8: +1:01101:/: +1:10100:]: +1:11010:3: +1:011001:7: +1:110110:4: +1:0110000:STOP: +1:0110001:-: +1:1010100:): +1:1010110:0x3a: +1:1010111:s: +1:1101110:,: +1:1101111:x: +1:10101010:': +1:101010110:X: +1:10101011110:t: +1:10101011111:R: +1:101010111011:;: +1:1010101110000:p: +1:1010101110001:m: +1:1010101110010:!: +1:1010101110101:&: +1:10101011100110:e: +1:101010111001110:b: +1:101010111001111:a: +1:101010111010000:D: +1:101010111010001:C: +1:101010111010010:%: +1:1010101110100110:ESCAPE: +1:1010101110100111:o: +2:11:0: +2:000: : +2:010:.: +2:100:5: +2:0011:/: +2:1011:,: +2:00100:]: +2:00101:p: +2:01101:1: +2:10101:4: +2:011000:6: +2:011001:2: +2:011100:0x3a: +2:011101:-: +2:011111:): +2:1010000:STOP: +2:1010010:8: +2:1010011:9: +2:01111000:D: +2:01111001:3: +2:01111010:t: +2:01111011:7: +2:10100010:n: +2:101000110:a: +2:1010001110:': +2:10100011111:;: +2:101000111100:s: +2:1010001111010:": +2:101000111101100:ESCAPE: +2:101000111101101:i: +2:101000111101110:W: +2:101000111101111:L: +3:00: : +3:10:0: +3:110:.: +3:1110:/: +3:01000:2: +3:01001:1: +3:01010:): +3:01100:0x3a: +3:01110:-: +3:11111:]: +3:010110:D: +3:011010:4: +3:011011:STOP: +3:011111:5: +3:111100:,: +3:0101110:7: +3:0101111:3: +3:0111101:6: +3:1111011:t: +3:01111001:B: +3:11110100:8: +3:111101010:9: +3:0111100001:;: +3:1111010110:r: +3:1111010111:s: +3:01111000000:n: +3:01111000101:b: +3:01111000110:': +3:01111000111:A: +3:011110000010:p: +3:011110000011:e: +3:0111100010000:a: +3:0111100010001:&: +3:0111100010010:%: +3:01111000100110:ESCAPE: +3:01111000100111:k: +4:01: : +4:000:4: +4:100:.: +4:110:0: +4:0010:/: +4:1010:5: +4:1011:-: +4:00110:1: +4:11101:]: +4:11110:,: +4:001110:2: +4:111001:8: +4:111110:): +4:0011110:0x3a: +4:0011111:': +4:1110000:t: +4:1110001:3: +4:1111111:STOP: +4:11111101:6: +4:1111110000:9: +4:1111110010:7: +4:11111100011:C: +4:11111100110:;: +4:111111000101:x: +4:1111110011101:m: +4:1111110011110:I: +4:11111100010000:f: +4:11111100010001:e: +4:11111100010010:b: +4:11111100010011:L: +4:11111100111000:%: +4:11111100111110:p: +4:11111100111111:c: +4:111111001110010:ESCAPE: +4:111111001110011:i: +5:00:0: +5:10: : +5:010:.: +5:0111:p: +5:1100:5: +5:01100:/: +5:11010:a: +5:11011:-: +5:11101:6: +5:011010:3: +5:111100:2: +5:111110:8: +5:111111:]: +5:0110110:0x3a: +5:1110000:): +5:1110001:s: +5:1110011:,: +5:1111010:7: +5:1111011:9: +5:01101110:4: +5:11100100:STOP: +5:11100101:t: +5:0110111110:c: +5:0110111111:1: +5:01101111001:;: +5:01101111011:m: +5:011011110000:e: +5:011011110001:': +5:011011110101:k: +5:0110111101001:l: +5:01101111010000:ESCAPE: +5:01101111010001:f: +6:00: : +6:10:.: +6:111:0: +6:0101:]: +6:01001:1: +6:01100:7: +6:01110:): +6:11000:,: +6:11001:0x3a: +6:11010:/: +6:010001:-: +6:011010:5: +6:011011:4: +6:011111:8: +6:110111:t: +6:0100000:6: +6:0111100:3: +6:0111101:2: +6:1101101:9: +6:01000010:STOP: +6:01000011:+: +6:11011000:': +6:1101100101:a: +6:1101100110:?: +6:11011001000:m: +6:11011001001:e: +6:11011001110:;: +6:1101100111100:f: +6:1101100111101:b: +6:1101100111110:M: +6:11011001111110:": +6:110110011111110:ESCAPE: +6:110110011111111:i: +7:11:.: +7:001: : +7:011:0: +7:101:-: +7:0000:8: +7:0100:7: +7:1001:]: +7:01010:/: +7:000101:6: +7:000110:2: +7:000111:1: +7:010111:t: +7:100000:9: +7:100010:): +7:100011:5: +7:0001001:3: +7:0101101:,: +7:1000010:a: +7:1000011:4: +7:00010000:STOP: +7:01011000:0x3a: +7:01011001:p: +7:0001000101:R: +7:0001000110:;: +7:00010001000:': +7:00010001111:m: +7:000100010011:f: +7:000100011100:A: +7:000100011101:?: +7:0001000100100:ESCAPE: +7:0001000100101:s: +8:01: : +8:000:4: +8:110:.: +8:0011:0: +8:1000:9: +8:1001:7: +8:1011:8: +8:1110:1: +8:00100:/: +8:10100:3: +8:11110:5: +8:101010:): +8:111110:6: +8:111111:]: +8:0010100:0x3a: +8:0010101:,: +8:1010111:t: +8:00101100:p: +8:00101101:-: +8:00101111:a: +8:10101100:c: +8:10101101:2: +8:001011101:STOP: +8:0010111001:;: +8:001011100000:l: +8:001011100001:': +8:0010111000100:f: +8:0010111000101:D: +8:0010111000110:A: +8:00101110001110:ESCAPE: +8:00101110001111:i: +9:000:5: +9:001:]: +9:111:9: +9:0101:0: +9:0110:.: +9:0111:-: +9:1000:4: +9:1001:8: +9:1011:6: +9:1100: : +9:1101:7: +9:01000:2: +9:10100:3: +9:010010:1: +9:010011:/: +9:101010:t: +9:1010111:): +9:10101100:0x3a: +9:101011010:,: +9:10101101100:p: +9:10101101101:;: +9:10101101111:STOP: +9:1010110111000:n: +9:1010110111001:m: +9:1010110111010:a: +9:10101101110111:e: +9:101011011101100:ESCAPE: +9:101011011101101:k: +0x3a:1: : +0x3a:01:0: +0x3a:001:3: +0x3a:00001:1: +0x3a:00010:T: +0x3a:00011:C: +0x3a:000001:4: +0x3a:0000000:ESCAPE: +0x3a:0000001:5: +;:0:ESCAPE: +;:1: : +<:0:ESCAPE: +<:1:ESCAPE: +=:0:ESCAPE: +=:1:ESCAPE: +>:0:ESCAPE: +>:1:ESCAPE: +?:1: : +?:01:STOP: +?:000:0x3a: +?:00100:!: +?:00110:[: +?:00111:.: +?:001010:;: +?:0010110:': +?:00101111:,: +?:001011101:/: +?:0010111000:ESCAPE: +?:0010111001:Q: +@:0:k: +@:10: : +@:111:T: +@:1101:b: +@:11000:ESCAPE: +@:11001:H: +A:01: : +A:110:D: +A:111:n: +A:0000:s: +A:0001:m: +A:0010:d: +A:1000:r: +A:1011:l: +A:00110:c: +A:10010:u: +A:10100:g: +A:001111:b: +A:100111:t: +A:101011:f: +A:1010100:w: +A:1010101:i: +A:10011001:v: +A:10011011:p: +A:001110010:h: +A:001110100:.: +A:001110111:B: +A:100110100:q: +A:0011100000:C: +A:0011100010:,: +A:0011100110:y: +A:0011101010:S: +A:0011101100:k: +A:0011101101:T: +A:1001100001:R: +A:1001100010:F: +A:1001100011:z: +A:1001101011:a: +A:00111000010:P: +A:00111000110:-: +A:00111010110:A: +A:00111010111:I: +A:10011000001:e: +A:10011010100:N: +A:10011010101:x: +A:001110000110:X: +A:001110000111:K: +A:001110001110:3: +A:001110001111:&: +A:001110011101:M: +A:001110011111:Y: +A:0011100111000:L: +A:0011100111001:W: +A:0011100111100:*: +A:1001100000000:o: +A:1001100000001:1: +A:1001100000010:': +A:1001100000011:0x3a: +A:00111001111010:j: +A:001110011110110:G: +A:0011100111101110:O: +A:00111001111011110:4: +A:001110011110111110:ESCAPE: +A:001110011110111111:E: +B:00:C: +B:010:a: +B:101:r: +B:110:e: +B:111:B: +B:0111:i: +B:1000:u: +B:1001:o: +B:01101:l: +B:01100000:T: +B:01100001:.: +B:01100011:y: +B:01100100:I: +B:01100110:h: +B:01100111: : +B:011000100:A: +B:0110001010:O: +B:01100010110:0x3a: +B:01100101000:&: +B:01100101001:3: +B:01100101010:j: +B:01100101011:M: +B:01100101110:D: +B:011000101111:W: +B:011001011000:*: +B:011001011010:,: +B:011001011011:1: +B:011001011110:ESCAPE: +B:011001011111:P: +B:0110001011100:E: +B:0110010110011:R: +B:01100010111011:w: +B:011000101110100:-: +B:011001011001001:U: +B:011001011001010:S: +B:011001011001011:F: +B:0110001011101010:X: +B:0110001011101011:V: +B:0110010110010000:Q: +B:0110010110010001:4: +C:00:h: +C:011:B: +C:100:a: +C:110:o: +C:0101:r: +C:1010:.: +C:1110: : +C:1111:l: +C:01000:': +C:10111:i: +C:010011:e: +C:101101:u: +C:0100101:y: +C:1011001:,: +C:01001001:I: +C:010010000:A: +C:1011000000:C: +C:1011000001:D: +C:1011000011:STOP: +C:1011000100:S: +C:1011000101:T: +C:1011000111:G: +C:01001000100:*: +C:01001000111:w: +C:10110001101:J: +C:010010001010:R: +C:010010001100:2: +C:010010001101:U: +C:101100001000:?: +C:101100001010:O: +C:101100001011:H: +C:101100011000:E: +C:0100100010110:z: +C:1011000010011:-: +C:1011000110011:s: +C:01001000101111:1: +C:10110000100101:!: +C:10110001100100:P: +C:010010001011101:n: +C:101100001001000:K: +C:101100001001001:7: +C:101100011001011:4: +C:0100100010111000:0x3a: +C:1011000110010100:F: +C:1011000110010101:): +C:01001000101110010:ESCAPE: +C:01001000101110011:b: +D:00:a: +D:01:,: +D:100:r: +D:101:o: +D:110:e: +D:1110:i: +D:111111:u: +D:1111001: : +D:1111011:': +D:11110000:.: +D:11110001:]: +D:11111010:y: +D:111101010:w: +D:111101011:W: +D:111110001:N: +D:111110010:C: +D:111110111:J: +D:1111010010:h: +D:1111100000:t: +D:1111100111:I: +D:1111101101:0x3a: +D:11110100001:M: +D:11110100010:&: +D:11110100011:V: +D:11111000010:-: +D:11111000011:G: +D:11111001100:O: +D:11111001101:A: +D:11111011001:S: +D:111101000000:F: +D:111101001100:*: +D:111101001101:s: +D:111101001111:d: +D:111110110000:v: +D:1111010011100:m: +D:1111010011101:j: +D:1111101100010:ESCAPE: +D:1111101100011:T: +D:11110100000110:9: +D:111101000001000:): +D:111101000001011:E: +D:111101000001110:8: +D:111101000001111:7: +D:1111010000010010:U: +D:1111010000010011:R: +D:1111010000010100:B: +D:1111010000010101:4: +E:000:p: +E:010:a: +E:011:n: +E:110:l: +E:1001:m: +E:1010:x: +E:1110:v: +E:1111:d: +E:00100:s: +E:00110:r: +E:00111:u: +E:10000:E: +E:10001: : +E:001010:.: +E:001011:i: +E:101101:0x3a: +E:1011000:y: +E:1011001:t: +E:1011100:g: +E:1011110:4: +E:101110110:w: +E:101111100:c: +E:101111110:b: +E:1011101010:R: +E:1011101011:F: +E:1011101111:C: +E:10111010001:k: +E:10111010010:f: +E:10111010011:o: +E:10111011100:U: +E:10111011101:L: +E:10111110101:e: +E:10111110110:N: +E:10111111100:h: +E:10111111101:I: +E:10111111111:D: +E:101111101000:M: +E:101111101111:': +E:101111111100:2: +E:101111111101:-: +E:1011101000011:q: +E:1011111010010:O: +E:1011111010011:A: +E:1011111011101:Z: +E:10111010000000:W: +E:10111010000001:S: +E:10111010000010:H: +E:10111010000011:9: +E:10111010000100:): +E:10111110111000:T: +E:10111110111001:,: +E:101110100001010:P: +E:1011101000010110:ESCAPE: +E:1011101000010111:z: +F:00:o: +F:10:r: +F:010:e: +F:110:i: +F:111:a: +F:0110:l: +F:01110:u: +F:0111100: : +F:0111101:O: +F:01111101:A: +F:01111111:B: +F:011111100:f: +F:0111110000:.: +F:0111110011:L: +F:01111100010:M: +F:01111100011:E: +F:01111100101:T: +F:01111110101:C: +F:01111110110:W: +F:011111001000:0x3a: +F:011111101000:U: +F:011111101001:': +F:011111101111:1: +F:0111110010010:y: +F:0111110010011:,: +F:01111110111000:-: +F:01111110111010:I: +F:011111101110011:h: +F:0111111011100100:*: +F:0111111011100101:K: +F:0111111011101100:F: +F:0111111011101101:ESCAPE: +F:01111110111011100:X: +F:01111110111011101:R: +F:01111110111011110:;: +F:01111110111011111:4: +G:00:r: +G:01:a: +G:101:o: +G:110:e: +G:1001:u: +G:1111:i: +G:10001:n: +G:11101:l: +G:100000:X: +G:1110000:y: +G:1110001: : +G:1110011:w: +G:10000101:4: +G:10000111:P: +G:11100101:h: +G:100001000:-: +G:100001100:C: +G:111001001:M: +G:1000011010:B: +G:1110010000:.: +G:1110010001:I: +G:10000100100:;: +G:10000100101:,: +G:10000100110:A: +G:10000100111:N: +G:10000110111:0x3a: +G:1000011011000:O: +G:1000011011001:L: +G:10000110110110:b: +G:100001101101000:K: +G:100001101101001:2: +G:100001101101010:1: +G:100001101101011:': +G:1000011011011100:ESCAPE: +G:1000011011011101:m: +G:1000011011011110:T: +G:1000011011011111:S: +H:00:e: +H:01:a: +H:10:o: +H:110:i: +H:1111:u: +H:11100:R: +H:1110100:P: +H:1110110:y: +H:11101011:I: +H:111011100:Q: +H:111011101:M: +H:111011110:A: +H:111011111: : +H:1110101000:S: +H:1110101001:.: +H:11101010101:G: +H:11101010110:): +H:111010101001:E: +H:1110101011100:O: +H:1110101011101:L: +H:11101010100000:1: +H:11101010100001:&: +H:11101010111100:H: +H:11101010111101:w: +H:11101010111110:v: +H:111010101000100:X: +H:111010101000101:W: +H:111010101000110:D: +H:111010101111110:s: +H:111010101111111:F: +H:1110101010001110:ESCAPE: +H:1110101010001111:r: +I:0:n: +I:110:t: +I:1001:s: +I:1111:r: +I:10000:T: +I:10101:a: +I:11100: : +I:100010:c: +I:101001:m: +I:101100:z: +I:101101:.: +I:101111:d: +I:111011:I: +I:1000111:': +I:1011101:l: +I:10100000:A: +I:10100001:v: +I:10111001:V: +I:11101001:f: +I:11101011:o: +I:100011001:C: +I:100011010:P: +I:101000100:w: +I:101000110:0x3a: +I:101110000:p: +I:111010000:R: +I:111010001:,: +I:111010101:Y: +I:1000110000:E: +I:1000110001:6: +I:1000110111:q: +I:1010001011:y: +I:1010001110:M: +I:1110101000:g: +I:1110101001:D: +I:10001101100:e: +I:10001101101:5: +I:10100010100:S: +I:10100010101:9: +I:10100011111:F: +I:10111000100:b: +I:10111000110:-: +I:10111000111:L: +I:101000111100:B: +I:101000111101:): +I:1011100010100:N: +I:1011100010101:Q: +I:1011100010110:k: +I:10111000101111:O: +I:101110001011101:?: +I:1011100010111000:ESCAPE: +I:1011100010111001:h: +J:00:e: +J:10:a: +J:11:o: +J:011:u: +J:0101:i: +J:01000: : +J:0100110:D: +J:0100111:.: +J:01001001:r: +J:010010110:s: +J:0100100000:M: +J:0100100010:J: +J:0100100011:,: +J:0100101000:B: +J:0100101001:-: +J:0100101010:V: +J:0100101110:K: +J:0100101111:T: +J:01001000010:C: +J:01001010110:n: +J:010010000110:!: +J:0100100001110:w: +J:0100100001111:R: +J:0100101011100:F: +J:0100101011110:7: +J:0100101011111:': +J:01001010111010:G: +J:010010101110110:ESCAPE: +J:010010101110111:L: +K:00:i: +K:01:a: +K:10:e: +K:1111:y: +K:11000:n: +K:11001:o: +K:11011:r: +K:11101: : +K:110100:': +K:111000:u: +K:1101011:.: +K:1110011:l: +K:11100101:h: +K:110101000:T: +K:110101011:G: +K:111001001:,: +K:1101010100:w: +K:11010100100:5: +K:11010100101:4: +K:11010100110:A: +K:11010101010:3: +K:11100100000:2: +K:11100100011:M: +K:110101001110:-: +K:110101010110:0x3a: +K:110101010111:!: +K:111001000010:): +K:111001000101:S: +K:1101010011110:V: +K:1110010000110:6: +K:1110010000111:1: +K:11010100111111:L: +K:11100100010000:I: +K:11100100010001:?: +K:110101001111100:ESCAPE: +K:110101001111101:v: +K:111001000100100:k: +K:111001000100101:Y: +K:111001000100110:N: +K:111001000100111:E: +L:00:i: +L:10:o: +L:011:]: +L:110:e: +L:111:a: +L:0100:u: +L:010100:l: +L:010101:A: +L:010111:y: +L:01011011: : +L:010110000:I: +L:010110001:R: +L:010110101:,: +L:0101100100:O: +L:0101100101:': +L:01011001101:.: +L:01011001110:C: +L:01011001111:Y: +L:01011010001:F: +L:01011010010:L: +L:010110011001:t: +L:010110100001:G: +L:010110100111:S: +L:0101100110001:h: +L:0101101000001:W: +L:0101101001100:J: +L:01011001100000:E: +L:01011010000001:": +L:01011010011011:STOP: +L:010110011000010:T: +L:010110011000011:P: +L:010110100000000:D: +L:010110100000001:7: +L:010110100110101:j: +L:0101101001101000:ESCAPE: +L:0101101001101001:U: +M:00:o: +M:11:a: +M:011:e: +M:101:i: +M:0101:c: +M:1001:u: +M:01001:y: +M:10001:r: +M:100000:S: +M:100001:P: +M:0100001: : +M:01000001:C: +M:01000110:F: +M:010000000:1: +M:010001000:h: +M:010001010:I: +M:010001110:T: +M:010001111:X: +M:0100000010:A: +M:0100010010:z: +M:01000100110:f: +M:01000101110:.: +M:010000001100:Z: +M:010000001101:K: +M:010000001110:B: +M:010001001111:s: +M:010001011000:R: +M:010001011001:W: +M:010001011010:O: +M:0100000011110:,: +M:0100000011111:': +M:0100010110111:D: +M:0100010111100:4: +M:0100010111110:E: +M:01000100111000:m: +M:01000100111001:J: +M:01000100111010:ESCAPE: +M:01000101111010:l: +M:01000101111011:-: +M:01000101111110:): +M:01000101111111:w: +M:010001001110110:t: +M:010001001110111:V: +M:010001011011000:Q: +M:010001011011001:N: +M:010001011011010:6: +M:010001011011011:2: +N:00:a: +N:10:o: +N:11:e: +N:011:i: +N:01010:u: +N:01011:E: +N:010010:A: +N:0100010:y: +N:0100110:g: +N:01000001:B: +N:01000010:I: +N:01000110:F: +N:01000111: : +N:010000000:): +N:010000001:': +N:010000111:Y: +N:010011100:L: +N:010011101:H: +N:0100001100:C: +N:0100111100:W: +N:0100111110:N: +N:0100111111:T: +N:010000110101:M: +N:010000110111:O: +N:010011110100:,: +N:010011110101:J: +N:010011110111:h: +N:0100001101000:D: +N:0100001101001:.: +N:0100111101100:X: +N:0100111101101:ESCAPE: +N:01000011011000:k: +N:01000011011001:Z: +N:01000011011010:Q: +N:01000011011011:G: +O:111:n: +O:0000:s: +O:0001:N: +O:0011:z: +O:0100:r: +O:1000:u: +O:1010:p: +O:1011:l: +O:1101:': +O:00101:U: +O:01011:h: +O:01110:f: +O:01111:w: +O:10010:.: +O:11000: : +O:001000:o: +O:001001:J: +O:010100:b: +O:010101:m: +O:011001:H: +O:011010:O: +O:011011:v: +O:100111:c: +O:110011:x: +O:1001101:d: +O:1100100:a: +O:01100001:t: +O:01100010:k: +O:10011000:g: +O:11001010:R: +O:011000000:K: +O:100110010:i: +O:110010111:V: +O:0110000011:2: +O:0110001101:S: +O:0110001110:B: +O:1001100110:W: +O:1001100111:-: +O:01100000100:,: +O:01100011000:j: +O:01100011001:L: +O:01100011111:I: +O:11001011001:A: +O:11001011011:C: +O:011000001010:0x3a: +O:011000111100:e: +O:110010110000:y: +O:110010110001:/: +O:110010110100:M: +O:0110000010110:!: +O:0110001111011:P: +O:1100101101011:F: +O:01100000101110:E: +O:01100000101111:D: +O:01100011110100:8: +O:01100011110101:4: +O:11001011010101:T: +O:110010110101000:ESCAPE: +O:110010110101001:q: +P:11:a: +P:000:i: +P:010:e: +P:011:l: +P:100:o: +P:101:r: +P:0010:h: +P:001111:u: +P:0011010:C: +P:0011100:.: +P:0011101: : +P:00110000:B: +P:00110010:D: +P:00110111:s: +P:001100011:O: +P:001100111:,: +P:0011000101:y: +P:0011001100:M: +P:0011011000:E: +P:0011011001:': +P:0011011011:3: +P:00110001001:T: +P:001100010000:L: +P:001100010001:G: +P:001100110100:*: +P:001100110110:A: +P:001100110111:S: +P:001101101000:w: +P:001101101001:F: +P:0011001101011:J: +P:0011011010100:f: +P:0011011010101:R: +P:0011011010111:t: +P:00110011010100:V: +P:00110110101100:Y: +P:00110110101101:I: +P:001100110101011:&: +P:0011001101010100:ESCAPE: +P:0011001101010101:): +Q:1:u: +Q:00:V: +Q:011: : +Q:0101:.: +Q:01000:a: +Q:0100100:w: +Q:0100110:E: +Q:0100111:C: +Q:01001011:&: +Q:010010101:': +Q:0100101000:T: +Q:01001010010:ESCAPE: +Q:01001010011:s: +R:01:a: +R:11:o: +R:100:i: +R:101:e: +R:0000:p: +R:0011:u: +R:00011:E: +R:00100:h: +R:000100: : +R:001010:y: +R:00010100:D: +R:00010110:.: +R:00101100:T: +R:00101110:S: +R:000101010:F: +R:001011010:B: +R:001011011:n: +R:001011111:A: +R:0001010110:w: +R:0001011100:N: +R:0001011101:&: +R:0001011110:V: +R:0001011111:H: +R:0010111101:': +R:00010101110:t: +R:00010101111:I: +R:001011110000:C: +R:001011110010:O: +R:00101111000100:,: +R:00101111000101:s: +R:00101111000110:U: +R:00101111000111:M: +R:00101111001100:-: +R:00101111001101:ESCAPE: +R:00101111001111:0x3a: +R:001011110011100:2: +R:001011110011101:R: +S:1:]: +S:0000:a: +S:0010:h: +S:0111:t: +S:00010:p: +S:00011:,: +S:00110:L: +S:01000:i: +S:01001:u: +S:01010:o: +S:01011:c: +S:01100:e: +S:001111:k: +S:0011100:w: +S:0110101: : +S:0110111:m: +S:00111010:q: +S:01101000:M: +S:01101001:n: +S:01101100:l: +S:001110110:P: +S:011011011:y: +S:0011101110:A: +S:01101101001:.: +S:001110111101:r: +S:001110111110:S: +S:001110111111:W: +S:011011010000:C: +S:011011010101:E: +S:011011010110:v: +S:0110110100011:ESCAPE: +S:0110110101000:I: +S:0110110101111:g: +S:00111011110000:*: +S:00111011110010:4: +S:00111011110011:1: +S:01101101000100:O: +S:01101101010010:STOP: +S:01101101011100:z: +S:011011010001011:B: +S:011011010111010:H: +S:011011010111011:T: +S:0011101111000100:G: +S:0011101111000110:}: +S:0011101111000111:D: +S:0110110100010100:-: +S:0110110101001100:3: +S:0110110101001101:2: +S:00111011110001010:': +S:00111011110001011:?: +S:01101101010011101:s: +S:01101101010011110:j: +S:01101101010011111:b: +S:011011010001010100:R: +S:011011010001010101:K: +S:011011010001010110:J: +S:011011010001010111:F: +S:011011010100111000:0x3a: +S:011011010100111001:): +T:0:h: +T:100:o: +T:1010:V: +T:1011:w: +T:1100:r: +T:1111:e: +T:11010:a: +T:11011:i: +T:11100:u: +T:1110100:H: +T:1110110:W: +T:11101010: : +T:11101011:y: +T:111011101:M: +T:111011111:x: +T:1110111000:S: +T:11101110010:A: +T:11101111001:s: +T:11101111011:J: +T:111011100111:X: +T:111011110000:.: +T:1110111001101:-: +T:1110111100011:L: +T:1110111101000:C: +T:1110111101011:c: +T:11101110011000:T: +T:11101110011001:U: +T:11101111000101:4: +T:11101111010010:O: +T:111011110001001:G: +T:111011110100110:E: +T:111011110100111:,: +T:111011110101010:': +T:1110111100010001:;: +T:1110111101010000:P: +T:1110111101010001:1: +T:1110111101010010:ESCAPE: +T:1110111101010111:D: +T:11101111000100000:0x3a: +T:11101111000100001:*: +T:11101111010100110:R: +T:11101111010100111:N: +T:11101111010101100:I: +T:11101111010101101:B: +U:00:K: +U:10:n: +U:011:S: +U:110:p: +U:1111:l: +U:01010:s: +U:01011:r: +U:11101:R: +U:010000:g: +U:111000: : +U:0100111:.: +U:1110010:m: +U:01000100:k: +U:01000101:t: +U:01000110:E: +U:01000111:-: +U:01001000:F: +U:01001100:2: +U:11100110:c: +U:11100111:N: +U:010010010:f: +U:010010011:8: +U:010010100:,: +U:010010111:Z: +U:0100101010:h: +U:0100110100:i: +U:0100110101:w: +U:0100110110:a: +U:01001010110:b: +U:01001010111:D: +U:01001101110:!: +U:010010110000:e: +U:010010110001:V: +U:010010110010:P: +U:010010110011:I: +U:010010110100:B: +U:010010110101:A: +U:010011011111:d: +U:0100101101100:H: +U:0100101101101:C: +U:0100101101110:0x3a: +U:0100101101111:): +U:0100110111101:z: +U:01001101111000:ESCAPE: +U:01001101111001:T: +V:01: : +V:11:i: +V:000:.: +V:001:a: +V:101:e: +V:10001:C: +V:10011:o: +V:1000001:F: +V:1000011:I: +V:10000001:1: +V:10000101:4: +V:10010000:r: +V:10010010:E: +V:10010011:s: +V:10010101:': +V:10010110:0x3a: +V:10010111:l: +V:100000001:/: +V:100001001:-: +V:100100010:D: +V:100100011:u: +V:100101001:,: +V:1000000000:6: +V:1000000001:2: +V:1000010000:5: +V:1001010000:;: +V:10010100010:ESCAPE: +V:100001000100:7: +V:100101000110:3: +V:1000010001010:9: +V:1000010001011:y: +V:1000010001100:P: +V:1000010001101:H: +V:1000010001110:A: +V:1000010001111:8: +V:1001010001111:W: +V:10010100011100:f: +V:10010100011101:B: +W:00:h: +W:10:i: +W:011:a: +W:110:o: +W:111:e: +W:0100:r: +W:01011:O: +W:0101001: : +W:0101010:y: +W:010100000:B: +W:010100001:.: +W:010101100:I: +W:010101110:W: +W:010101111:A: +W:0101000100:': +W:0101000101:M: +W:0101000111:T: +W:01010001100:2: +W:01010001101:0x3a: +W:01010110100:H: +W:01010110110:V: +W:010101101010:l: +W:010101101110:s: +W:010101101111:,: +W:0101011010111:u: +W:010101101011000:5: +W:010101101011001:): +W:010101101011011:E: +W:0101011010110100:ESCAPE: +W:0101011010110101:m: +X:1: : +X:000:a: +X:0010:z: +X:0011:m: +X:0111:t: +X:01001:U: +X:01010:-: +X:01011:e: +X:011000:u: +X:011001:I: +X:011011:,: +X:0100010:V: +X:0110100:5: +X:0110101:.: +X:01000000:S: +X:01000010:0x3a: +X:01000110:c: +X:01000111:i: +X:010000010:9: +X:010000011:': +X:010000111:X: +X:0100001100:): +X:01000011010:ESCAPE: +X:01000011011:y: +Y:1:o: +Y:00:e: +Y:010:u: +Y:01100:a: +Y:01110:v: +Y:01111: : +Y:0110100:n: +Y:01101010:r: +Y:01101101:O: +Y:01101111:i: +Y:011010111:N: +Y:011011000:L: +Y:011011001:s: +Y:011011101:m: +Y:0110101100:.: +Y:0110101101:M: +Y:0110111001:P: +Y:011011100001:R: +Y:011011100010:2: +Y:0110111000000:-: +Y:0110111000110:C: +Y:0110111000111:,: +Y:01101110000010:ESCAPE: +Y:01101110000011:d: +Z:01:a: +Z:10:e: +Z:11:o: +Z:0010:z: +Z:0011:i: +Z:00001:Z: +Z:00010: : +Z:00011:u: +Z:0000010:O: +Z:0000011:.: +Z:00000000:y: +Z:00000001:4: +Z:00000010:,: +Z:0000001100:f: +Z:0000001101:-: +Z:0000001110:STOP: +Z:00000011110:ESCAPE: +Z:00000011111:l: +[:1:S: +[:01:A: +[:0000:2: +[:0010:R: +[:0011:1: +[:000101:n: +[:000110:m: +[:0001111:l: +[:00010011:r: +[:00011101:b: +[:000100001:C: +[:000100010:f: +[:000100101:M: +[:000111001:c: +[:0001000001:STOP: +[:0001000111:K: +[:0001001000:H: +[:0001110001:T: +[:00010000000:J: +[:00010000001:B: +[:00010001101:Z: +[:00010010011:P: +[:00011100000:L: +[:000100011000:F: +[:000100100101:I: +[:000111000011:N: +[:0001000110010:s: +[:0001000110011:V: +[:0001001001000:U: +[:0001001001001:G: +[:0001110000101:D: +[:00011100001000:O: +[:000111000010010:ESCAPE: +[:000111000010011:W: +\:0:ESCAPE: +\:1:x: +]:1:STOP: +]:01: : +]:001:.: +]:0001:[: +]:00001:0x3a: +]:000001:,: +]:0000001:;: +]:00000000:ESCAPE: +]:00000001:]: +^:0:ESCAPE: +^:1:ESCAPE: +_:0:ESCAPE: +_:1:ESCAPE: +`:001:w: +`:011:H: +`:110:P: +`:111:F: +`:0101:n: +`:1011:D: +`:00001:s: +`:00010:A: +`:01001:t: +`:10000:g: +`:10011:c: +`:000000:W: +`:000001:r: +`:000110:e: +`:000111:C: +`:100011:l: +`:100100:h: +`:100101:G: +`:101001:B: +`:101010:T: +`:101011:S: +`:0100000:o: +`:0100001:d: +`:0100010:b: +`:0100011:R: +`:1000100:O: +`:1000101:L: +`:1010001:f: +`:10100000:J: +`:101000010:ESCAPE: +`:101000011:M: +a:01:n: +a:001:r: +a:101:t: +a:0000:m: +a:1001:s: +a:1110: : +a:1111:l: +a:00011:d: +a:10000:i: +a:11000:y: +a:11010:c: +a:000100:p: +a:100010:u: +a:100011:v: +a:110011:g: +a:110110:b: +a:110111:k: +a:0001010:w: +a:00010111:z: +a:11001000:.: +a:11001011:f: +a:000101100:,: +a:000101101:': +a:110010011:e: +a:110010101:h: +a:1100101001:x: +a:11001001000:a: +a:11001001001:-: +a:11001001011:j: +a:11001010000:0x3a: +a:11001010001:o: +a:110010010100:q: +a:11001001010100:!: +a:11001001010111:?: +a:1100100101010100:ESCAPE: +a:1100100101010110:;: +a:1100100101010111:): +a:1100100101011001:/: +a:1100100101011011:@: +a:11001001010101010:J: +a:11001001010101011:]: +a:11001001010110100:N: +a:11001001010110101:L: +a:110010010101100000:R: +a:110010010101100001:S: +a:110010010101100010:V: +a:11001001010110001100:[: +a:11001001010110001110:P: +a:11001001010110001111:STOP: +a:110010010101100011010:W: +a:110010010101100011011:1: +b:00:e: +b:010:u: +b:011:a: +b:100:y: +b:101:o: +b:1100:l: +b:1110:r: +b:1111:i: +b:110100:s: +b:110110: : +b:110111:b: +b:11010101:c: +b:110101000:j: +b:110101100:,: +b:110101101:.: +b:1101010011:': +b:1101011111:t: +b:11010100101:0x3a: +b:11010111000:w: +b:11010111001:d: +b:11010111010:h: +b:11010111011:&: +b:11010111101:-: +b:110101111000:m: +b:110101111001:n: +b:1101010010000:?: +b:1101010010010:v: +b:11010100100010:f: +b:11010100100111:p: +b:110101001000111:;: +b:110101001001101:D: +b:1101010010001100:/: +b:1101010010011001:@: +b:11010100100011010:X: +b:11010100100011011:": +b:11010100100110001:k: +b:110101001001100000:STOP: +b:1101010010011000010:ESCAPE: +b:1101010010011000011:!: +c:00:o: +c:011:a: +c:100:e: +c:110:h: +c:0100:i: +c:0101:l: +c:1011:k: +c:1111:t: +c:10100:u: +c:10101:r: +c:11100: : +c:1110100:y: +c:1110101:c: +c:11101101:s: +c:11101110:.: +c:111011111:,: +c:1110110001:G: +c:11101100001:n: +c:11101100110:D: +c:11101111000:K: +c:11101111011:C: +c:111011000000:0x3a: +c:111011001001:-: +c:111011001010:A: +c:111011001110:L: +c:111011001111:': +c:111011110010:d: +c:111011110100:q: +c:111011110101:I: +c:1110110010000:N: +c:1110110010001:z: +c:1110111100111:F: +c:11101100000101:w: +c:11101100000111:E: +c:11101100101100:?: +c:11101111001100:M: +c:11101111001101:S: +c:111011000001000:b: +c:111011000001001:ESCAPE: +c:111011000001100:!: +c:111011001011010:Q: +c:111011001011011:P: +c:111011001011100:;: +c:111011001011110:B: +c:1110110000011011:V: +c:1110110010111011:m: +c:1110110010111110:/: +c:11101100000110101:): +c:11101100101110100:U: +c:11101100101111110:W: +c:111011000001101000:p: +c:111011000001101001:H: +c:111011001011101010:STOP: +c:111011001011111110:R: +c:111011001011111111:T: +c:1110110010111010110:]: +c:1110110010111010111:[: +d:0: : +d:101:e: +d:1100:a: +d:1110:i: +d:10001:.: +d:10011:o: +d:11011:r: +d:11111:s: +d:100001:d: +d:100101:l: +d:110100:u: +d:111101:y: +d:1001001:-: +d:1101011:v: +d:1111000:g: +d:1111001:,: +d:10000000:h: +d:10000001:0x3a: +d:10000010:m: +d:10010000:w: +d:10010001:n: +d:11010101:': +d:100000111:f: +d:1101010001:?: +d:1101010010:b: +d:1101010011:c: +d:10000011000:!: +d:11010100000:p: +d:11010100001:t: +d:100000110010:STOP: +d:100000110011:): +d:100000110100:k: +d:100000110101:;: +d:100000110111:/: +d:10000011011010:": +d:10000011011011:j: +d:100000110110000:z: +d:100000110110011:q: +d:1000001101100011:@: +d:1000001101100100:ESCAPE: +d:10000011011000101:C: +d:10000011011001010:]: +d:100000110110001000:Z: +d:100000110110001001:[: +d:100000110110010110:T: +d:100000110110010111:`: +e:10: : +e:010:s: +e:110:r: +e:0000:d: +e:0011:a: +e:1111:n: +e:00010:c: +e:01100:e: +e:01101:w: +e:01111:t: +e:11100:l: +e:000110:x: +e:001000:v: +e:001001:i: +e:001010:y: +e:011100:m: +e:111010:.: +e:0001110:f: +e:0010111:b: +e:0111010:,: +e:1110110:p: +e:00011110:-: +e:00011111:h: +e:00101100:k: +e:01110110:': +e:11101110:g: +e:11101111:o: +e:001011011:0x3a: +e:0010110100:): +e:0010110101:q: +e:0111011101:?: +e:0111011110:u: +e:01110111000:z: +e:01110111110:!: +e:011101111110:STOP: +e:011101111111:j: +e:0111011100110:/: +e:01110111001001:4: +e:01110111001010:B: +e:01110111001110:]: +e:01110111001111:;: +e:011101110010000:": +e:0111011100100011:D: +e:0111011100101100:ESCAPE: +e:0111011100101110:@: +e:01110111001000100:T: +e:01110111001000101:C: +e:01110111001011011:[: +e:01110111001011111:L: +e:011101110010110100:V: +e:011101110010110101:G: +e:011101110010111100:1: +e:01110111001011110101:E: +e:011101110010111101000:2: +e:011101110010111101001:N: +e:011101110010111101100:F: +e:011101110010111101101:A: +e:0111011100101111011100:\: +e:0111011100101111011101:P: +e:0111011100101111011110:M: +e:0111011100101111011111:H: +f:00:o: +f:10: : +f:010:i: +f:110:r: +f:0111:a: +f:1110:e: +f:01100:t: +f:11110:u: +f:11111:f: +f:011011:l: +f:01101000:s: +f:01101001:y: +f:011010110:.: +f:0110101000:?: +f:0110101011:,: +f:0110101111:-: +f:01101010011:0x3a: +f:01101010100:': +f:01101010101:g: +f:011010100100:m: +f:011010111000:ESCAPE: +f:011010111010:b: +f:011010111011:n: +f:0110101001011:c: +f:0110101110010:!: +f:01101011100110:): +f:01101011100111:w: +f:011010100101001:p: +f:011010100101010:/: +f:0110101001010000:h: +f:0110101001010110:;: +f:01101010010100010:STOP: +f:01101010010100011:d: +f:01101010010101110:k: +f:01101010010101111:v: +g:11: : +g:000:a: +g:010:h: +g:101:e: +g:0011:u: +g:0110:r: +g:1000:i: +g:01110:l: +g:10010:s: +g:10011:o: +g:001001:,: +g:001010:n: +g:011110:g: +g:011111:.: +g:0010110:y: +g:00100001:': +g:00100010:-: +g:00100011:0x3a: +g:001000000:d: +g:001011101:b: +g:001011110:t: +g:001011111:w: +g:0010000010:?: +g:0010000011:m: +g:00101110001:!: +g:00101110011:f: +g:001011100001:;: +g:001011100101:STOP: +g:0010111000000:k: +g:0010111001000:p: +g:00101110000010:): +g:00101110000011:": +g:001011100100101:c: +g:001011100100111:/: +g:0010111001001000:ESCAPE: +g:0010111001001100:]: +g:0010111001001101:z: +g:00101110010010010:`: +g:001011100100100110:v: +g:001011100100100111:@: +h:0:e: +h:100:o: +h:101:i: +h:110: : +h:1111:a: +h:111001:r: +h:111011:t: +h:11100001:y: +h:11100011:l: +h:11101000:.: +h:11101001:n: +h:11101011:u: +h:111000000:d: +h:111000100:s: +h:111010100:,: +h:1110000011:w: +h:1110001010:': +h:1110001011:-: +h:11101010101:m: +h:11101010110:0x3a: +h:11101010111:b: +h:111000001001:c: +h:111000001011:?: +h:111010101000:!: +h:1110000010000:): +h:1110000010100:h: +h:1110000010101:k: +h:1110101010011:f: +h:11101010100101:g: +h:111000001000100:p: +h:111000001000101:;: +h:111000001000110:/: +h:111000001000111:STOP: +h:111010101001001:v: +h:1110101010010000:q: +h:11101010100100010:ESCAPE: +h:111010101001000110:": +h:11101010100100011100:z: +h:11101010100100011101:j: +h:11101010100100011110:]: +h:11101010100100011111:*: +i:10:n: +i:000:t: +i:010:s: +i:0011:l: +i:1100:o: +i:1101:c: +i:1111:e: +i:00100:a: +i:01100:m: +i:01101:d: +i:01110:v: +i:11100:g: +i:11101:r: +i:001010:p: +i:011110:f: +i:0010110:z: +i:0111110: : +i:00101111:b: +i:01111110:k: +i:001011100:-: +i:001011101:x: +i:0111111100:u: +i:0111111110:q: +i:01111111010:.: +i:01111111110:,: +i:011111110111:w: +i:011111111111:': +i:0111111101101:i: +i:0111111111101:j: +i:01111111011001:0x3a: +i:01111111111000:h: +i:011111110110000:/: +i:011111111110011:y: +i:0111111101100011:?: +i:0111111111100100:P: +i:01111111011000101:R: +i:01111111111001011:!: +i:011111111110010100:): +i:011111111110010101:S: +i:0111111101100010000:STOP: +i:0111111101100010001:C: +i:0111111101100010010:ESCAPE: +i:01111111011000100110:D: +i:01111111011000100111:;: +j:0:o: +j:11:u: +j:101:a: +j:1001:e: +j:10000:i: +j:100011:y: +j:1000101: : +j:10001001:.: +j:100010000:': +j:1000100011:t: +j:10001000100:n: +j:100010001011:s: +j:1000100010100:ESCAPE: +j:1000100010101:h: +k:10: : +k:11:e: +k:000:s: +k:011:i: +k:0010:.: +k:01001:y: +k:001100:': +k:001101:a: +k:001110:p: +k:001111:,: +k:010100:l: +k:010101:f: +k:010110:n: +k:0100000:/: +k:0100010:-: +k:0100011:o: +k:01011101:0x3a: +k:010000111:b: +k:010111000:w: +k:010111001:m: +k:010111100:h: +k:010111110:u: +k:010111111:k: +k:0100001000:r: +k:0100001001:ESCAPE: +k:0100001010:?: +k:0100001100:t: +k:0100001101:g: +k:0101111011:d: +k:01000010110:j: +k:010000101110:): +k:010111101000:;: +k:010111101001:c: +k:010111101010:S: +k:0100001011110:v: +k:0100001011111:R: +k:0101111010110:!: +k:01011110101110:@: +k:010111101011110:": +k:010111101011111:STOP: +l:010:a: +l:011:i: +l:100:l: +l:110:e: +l:111: : +l:0000:u: +l:0001:d: +l:0010:y: +l:1011:o: +l:10100:s: +l:001100:.: +l:001110:t: +l:0011010:v: +l:0011110:f: +l:1010100:m: +l:1010101:k: +l:1010110:p: +l:00110111:c: +l:00111110:-: +l:10101111:,: +l:001101101:0x3a: +l:001111111:b: +l:101011100:': +l:0011011000:r: +l:0011011001:h: +l:0011111100:n: +l:0011111101:g: +l:1010111011:w: +l:10101110100:?: +l:1010111010100:!: +l:1010111010110:z: +l:10101110101011:/: +l:101011101010100:;: +l:101011101011100:E: +l:101011101011101:*: +l:101011101011111:STOP: +l:1010111010101011:ESCAPE: +l:1010111010111100:): +l:10101110101010100:@: +l:10101110101010101:j: +l:10101110101111010:": +l:101011101011110110:[: +l:101011101011110111:]: +m:00:a: +m:01:e: +m:111: : +m:1001:p: +m:1011:o: +m:1100:i: +m:10000:.: +m:10001:s: +m:11010:u: +m:11011:m: +m:101001:y: +m:101011:b: +m:1010000:,: +m:1010100:/: +m:10100010:]: +m:101000110:0x3a: +m:101010100:': +m:1010001111:r: +m:1010101011:f: +m:1010101100:l: +m:1010101110:n: +m:10100011100:?: +m:10100011101:!: +m:10101010100:STOP: +m:10101010101:w: +m:10101011011:h: +m:10101011110:-: +m:101010111110:4: +m:1010101101010:t: +m:1010101101011:@: +m:1010101111110:;: +m:1010101111111:c: +m:10101011010000:): +m:10101011010001:ESCAPE: +m:10101011010011:d: +m:101010110100101:g: +m:10101011010010000:[: +m:10101011010010001:v: +m:10101011010010010:k: +m:10101011010010011:z: +n:01: : +n:001:t: +n:100:g: +n:111:d: +n:0000:s: +n:1010:a: +n:1101:e: +n:10110:c: +n:11000:i: +n:000111:.: +n:101111:n: +n:110011:o: +n:0001001:u: +n:0001011:v: +n:0001100:f: +n:1011100:k: +n:1011101:': +n:1100100:y: +n:1100101:,: +n:00010000:m: +n:00010100:l: +n:00010101:-: +n:000100011:w: +n:000110101:0x3a: +n:0001000101:z: +n:0001101000:h: +n:0001101100:b: +n:0001101101:j: +n:0001101110:r: +n:00010001000:p: +n:00011010011:x: +n:00011011111:?: +n:000100010011:;: +n:000110100101:): +n:000110111100:!: +n:000110111101:q: +n:0001000100100:/: +n:0001000100101:STOP: +n:0001101001000:ESCAPE: +n:00011010010010:B: +n:0001101001001100:]: +n:0001101001001101:": +n:0001101001001110:@: +n:0001101001001111:*: +o:001:u: +o:011: : +o:100:r: +o:111:n: +o:0000:l: +o:1100:m: +o:1101:f: +o:00010:v: +o:01000:s: +o:01001:p: +o:10100:t: +o:10101:o: +o:10111:w: +o:000110:k: +o:000111:i: +o:010100:g: +o:010111:c: +o:101101:d: +o:0101011:e: +o:0101100:y: +o:0101101:a: +o:1011001:b: +o:01010101:h: +o:10110000:.: +o:010101000:-: +o:010101001:,: +o:1011000101:': +o:1011000111:x: +o:10110001001:0x3a: +o:10110001101:z: +o:101100010001:?: +o:101100011001:j: +o:1011000100000:!: +o:1011000110001:q: +o:10110001000010:J: +o:10110001100000:/: +o:10110001100001:): +o:1011000100001101:;: +o:1011000100001110:G: +o:10110001000011000:": +o:10110001000011110:ESCAPE: +o:101100010000110010:]: +o:101100010000110011:@: +o:1011000100001111100:4: +o:1011000100001111101:STOP: +o:1011000100001111110:B: +o:10110001000011111110:O: +o:10110001000011111111:C: +p:001:l: +p:010: : +p:011:o: +p:101:r: +p:111:e: +p:0000:p: +p:1100:a: +p:1101:i: +p:00011:t: +p:10000:u: +p:10001:h: +p:10010:s: +p:000101:m: +p:0001001:d: +p:1001101:y: +p:1001110:.: +p:1001111:,: +p:00010000:-: +p:000100011:?: +p:100110001:0x3a: +p:1001100100:': +p:1001100101:]: +p:1001100110:+: +p:1001100111:b: +p:00010001001:f: +p:00010001010:k: +p:00010001011:!: +p:10011000001:c: +p:10011000010:n: +p:10011000011:w: +p:000100010000:STOP: +p:000100010001:;: +p:100110000001:/: +p:1001100000001:g: +p:10011000000001:): +p:100110000000001:": +p:1001100000000001:S: +p:10011000000000000:ESCAPE: +p:10011000000000001:B: +q:1:u: +q:000:,: +q:001:.: +q:011: : +q:01001:b: +q:01010:': +q:01011:i: +q:010001:a: +q:01000000:?: +q:01000001:0x3a: +q:01000011:): +q:010000100:ESCAPE: +q:010000101:w: +r:000:a: +r:001:o: +r:100:i: +r:110: : +r:111:e: +r:0100:s: +r:0101:t: +r:01110:d: +r:10100:n: +r:10101:y: +r:011010:u: +r:011011:m: +r:011111:k: +r:101101:l: +r:101110:.: +r:101111:r: +r:0110000:f: +r:0110010:,: +r:0110011:v: +r:1011000:c: +r:1011001:g: +r:01100011:': +r:01111000:-: +r:01111001:b: +r:01111011:p: +r:011000101:0x3a: +r:011110100:w: +r:0111101010:?: +r:0111101011:h: +r:01100010010:!: +r:011000100001:q: +r:011000100010:j: +r:011000100011:STOP: +r:011000100110:/: +r:0110001000001:;: +r:0110001001111:): +r:01100010011100:8: +r:01100010011101:z: +r:011000100000001:": +r:011000100000011:]: +r:0110001000000000:T: +r:0110001000000100:x: +r:0110001000000101:ESCAPE: +r:01100010000000011:Z: +r:011000100000000100:*: +r:0110001000000001010:D: +r:0110001000000001011:B: +s:0: : +s:101:t: +s:1000:.: +s:1110:e: +s:10011:,: +s:11000:o: +s:11001:s: +s:11110:h: +s:11111:i: +s:100101:c: +s:110100:u: +s:110110:p: +s:1101111:a: +s:10010001:n: +s:10010011:m: +s:11010100:y: +s:11010110:0x3a: +s:11011100:l: +s:11011101:k: +s:100100001:b: +s:100100100:f: +s:110101010:w: +s:110101111:': +s:1001000000:!: +s:1001000001:g: +s:1001001010:r: +s:1101010110:?: +s:1101010111:-: +s:1101011101:q: +s:11010111001:d: +s:100100101100:/: +s:100100101101:): +s:100100101111:STOP: +s:110101110000:]: +s:110101110001:;: +s:1001001011101:v: +s:100100101110001:": +s:100100101110011:z: +s:1001001011100000:j: +s:1001001011100001:ESCAPE: +s:1001001011100100:[: +s:10010010111001011:@: +s:100100101110010101:T: +s:1001001011100101000:x: +s:1001001011100101001:`: +t:10:h: +t:000:i: +t:010:o: +t:011:e: +t:111: : +t:0010:a: +t:00110:u: +t:11001:r: +t:11011:s: +t:001111:.: +t:110001:t: +t:110100:y: +t:0011101:c: +t:1100001:l: +t:00111001:-: +t:11000000:v: +t:11000001:m: +t:11010101:w: +t:11010110:,: +t:11010111:': +t:001110000:n: +t:0011100011:?: +t:1101010001:b: +t:1101010010:0x3a: +t:00111000100:!: +t:11010100000:z: +t:11010100110:d: +t:11010100111:f: +t:110101000010:x: +t:0011100010100:g: +t:0011100010101:;: +t:1101010000110:p: +t:00111000101100:P: +t:00111000101101:STOP: +t:00111000101111:): +t:11010100001110:/: +t:11010100001111:k: +t:0011100010111000:@: +t:0011100010111010:E: +t:00111000101110011:]: +t:00111000101110111:": +t:001110001011100100:F: +t:001110001011101100:ESCAPE: +t:0011100010111001010:j: +t:0011100010111011010:1: +t:0011100010111011011:[: +t:00111000101110010110:\: +t:001110001011100101110:K: +t:001110001011100101111:C: +u:011:t: +u:101:n: +u:110:s: +u:111:r: +u:0001:d: +u:0010:e: +u:0101:l: +u:1000:p: +u:00000:b: +u:00001: : +u:00110:i: +u:01000:a: +u:01001:g: +u:10010:c: +u:10011:m: +u:0011100:y: +u:00111010:z: +u:00111100:': +u:00111110:f: +u:00111111:k: +u:001111010:,: +u:0011101101:-: +u:0011101110:o: +u:0011110110:.: +u:0011110111:x: +u:00111011000:w: +u:00111011110:0x3a: +u:001110110010:q: +u:001110111110:h: +u:001110111111:v: +u:0011101100110:j: +u:001110110011100:u: +u:001110110011101:?: +u:0011101100111110:/: +u:0011101100111111:!: +u:00111011001111001:ESCAPE: +u:001110110011110000:\: +u:001110110011110001:STOP: +u:001110110011110100:;: +u:001110110011110110:J: +u:001110110011110111:): +u:0011101100111101010:T: +u:0011101100111101011:]: +v:1:e: +v:01:i: +v:000:a: +v:0011:o: +v:00101:.: +v:001001: : +v:00100001:': +v:00100011:y: +v:001000000:u: +v:001000100:s: +v:0010001010:r: +v:00100000100:-: +v:00100000110:,: +v:00100010110:n: +v:001000001010:g: +v:001000001011:v: +v:001000001111:l: +v:001000101110:@: +v:001000101111:0x3a: +v:0010000011101:k: +v:00100000111000:b: +v:001000001110010:t: +v:0010000011100110:d: +v:00100000111001110:/: +v:001000001110011110:ESCAPE: +v:001000001110011111:1: +w:00:i: +w:011:e: +w:100: : +w:101:s: +w:110:h: +w:0101:a: +w:1111:o: +w:01000:.: +w:01001:w: +w:11100:n: +w:1110110:r: +w:11101010:,: +w:11101011:l: +w:11101111:y: +w:111010010:c: +w:111011101:b: +w:1110100010:0x3a: +w:1110100110:m: +w:1110100111:': +w:1110111000:d: +w:11101000000:f: +w:11101000001:]: +w:11101000010:!: +w:11101000111:k: +w:11101110010:-: +w:111010000111:g: +w:111010001100:?: +w:111010001101:t: +w:111011100111:p: +w:1110100001100:STOP: +w:1110100001101:u: +w:1110111001101:): +w:11101110011001:j: +w:111011100110001:q: +w:1110111001100000:/: +w:11101110011000010:;: +w:111011100110000111:[: +w:1110111001100001100:ESCAPE: +w:1110111001100001101:B: +x:01:p: +x:11:t: +x:101: : +x:0000:i: +x:0010:a: +x:1000:c: +x:00010:u: +x:00111:e: +x:10011:-: +x:000110:f: +x:001101:o: +x:100100:.: +x:0001110:,: +x:0001111:m: +x:0011001:y: +x:00110001:9: +x:10010101:': +x:10010110:q: +x:001100000:s: +x:100101000:0x3a: +x:100101110:h: +x:0011000011:?: +x:1001010010:l: +x:1001011110:w: +x:00110000100:A: +x:10010100110:x: +x:10010100111:b: +x:10010111111:): +x:001100001011:/: +x:0011000010100:4: +x:0011000010101:!: +x:1001011111000:g: +x:1001011111001:STOP: +x:1001011111011:;: +x:100101111101001:v: +x:100101111101010:F: +x:100101111101011:E: +x:1001011111010000:ESCAPE: +x:1001011111010001:C: +y:1: : +y:000:o: +y:0011:s: +y:0101:.: +y:01001:,: +y:01100:e: +y:01110:': +y:001001:a: +y:001010:i: +y:001011:d: +y:010001:n: +y:011011:0x3a: +y:011111:l: +y:0010000:w: +y:0110100:t: +y:0110101:m: +y:0111101:-: +y:00100011:b: +y:01000000:?: +y:01000001:r: +y:01000010:p: +y:01000011:f: +y:01111001:c: +y:0010001001:;: +y:0010001010:J: +y:0111100000:h: +y:0111100001:!: +y:0111100011:g: +y:00100010000:): +y:00100010111:/: +y:01111000101:]: +y:001000100011:k: +y:001000101100:ESCAPE: +y:001000101101:u: +y:011110001001:STOP: +y:0010001000100:z: +y:0111100010001:": +y:00100010001011:j: +y:01111000100001:2: +y:001000100010100:y: +y:001000100010101:x: +y:0111100010000000:v: +y:0111100010000001:T: +y:0111100010000010:E: +y:0111100010000011:P: +z:10:e: +z:001:a: +z:011:z: +z:110: : +z:111:i: +z:0001:l: +z:0100:y: +z:01010:o: +z:000000:c: +z:000010:,: +z:000011:.: +z:010110:w: +z:0000010:': +z:00000110:0x3a: +z:00000111:t: +z:01011101:m: +z:010111000:k: +z:010111100:-: +z:010111101:u: +z:010111111:b: +z:01011100100:s: +z:01011100101:/: +z:01011100111:d: +z:01011111001:p: +z:01011111011:?: +z:010111001100:h: +z:010111110000:@: +z:010111110100:): +z:0101110011010:!: +z:0101111100011:v: +z:0101111101010:g: +z:01011100110110:f: +z:01011100110111:r: +z:01011111000100:q: +z:01011111000101:n: +z:01011111010110:ESCAPE: +z:01011111010111:]: +{:0:ESCAPE: +{:1:ESCAPE: +|:0:ESCAPE: +|:1:ESCAPE: +}:0:ESCAPE: +}:1:STOP: +~:0:ESCAPE: +~:1:ESCAPE: +0x7f:0:ESCAPE: +0x7f:1:ESCAPE: +START:010:A: +START:100:C: +START:111:T: +START:0001:J: +START:0011:D: +START:1010:S: +START:00000:H: +START:00100:I: +START:00101:R: +START:01101:F: +START:01110:.: +START:01111:W: +START:10111:M: +START:11000:B: +START:11001:P: +START:11011:N: +START:000010:O: +START:011001:[: +START:101101:L: +START:110101:E: +START:0000110:K: +START:1101000:Y: +START:1101001:G: +START:00001110:2: +START:01100000:p: +START:01100001:b: +START:01100010:U: +START:01100011:(: +START:10110000:1: +START:10110011:V: +START:000011110:Q: +START:101100010:3: +START:0000111110:9: +START:0000111111:8: +START:1011000110:6: +START:1011000111:5: +START:1011001000:Z: +START:1011001001:7: +START:1011001010:4: +START:101100101110:X: +START:101100101111: : +START:1011001011001:w: +START:1011001011010:': +START:1011001011011:": +START:10110010110000:t: +START:101100101100010:a: +START:1011001011000110:`: +START:10110010110001110:ESCAPE: +START:10110010110001111:m: +ESCAPE:0:ESCAPE: +ESCAPE:1:ESCAPE: +STOP:0:ESCAPE: +STOP:1:ESCAPE: +0x03:0:ESCAPE: +0x03:1:ESCAPE: +0x04:0:ESCAPE: +0x04:1:ESCAPE: +0x05:0:ESCAPE: +0x05:1:ESCAPE: +0x06:0:ESCAPE: +0x06:1:ESCAPE: +0x07:0:ESCAPE: +0x07:1:ESCAPE: +0x08:0:ESCAPE: +0x08:1:ESCAPE: +0x09:0:ESCAPE: +0x09:1:ESCAPE: +0x0a:0:ESCAPE: +0x0a:1:ESCAPE: +0x0b:0:ESCAPE: +0x0b:1:ESCAPE: +0x0c:0:ESCAPE: +0x0c:1:ESCAPE: +0x0d:0:ESCAPE: +0x0d:1:ESCAPE: +0x0e:0:ESCAPE: +0x0e:1:ESCAPE: +0x0f:0:ESCAPE: +0x0f:1:ESCAPE: +0x10:0:ESCAPE: +0x10:1:ESCAPE: +0x11:0:ESCAPE: +0x11:1:ESCAPE: +0x12:0:ESCAPE: +0x12:1:ESCAPE: +0x13:0:ESCAPE: +0x13:1:ESCAPE: +0x14:0:ESCAPE: +0x14:1:ESCAPE: +0x15:0:ESCAPE: +0x15:1:ESCAPE: +0x16:0:ESCAPE: +0x16:1:ESCAPE: +0x17:0:ESCAPE: +0x17:1:ESCAPE: +0x18:0:ESCAPE: +0x18:1:ESCAPE: +0x19:0:ESCAPE: +0x19:1:ESCAPE: +0x1a:0:ESCAPE: +0x1a:1:ESCAPE: +0x1b:0:ESCAPE: +0x1b:1:ESCAPE: +0x1c:0:ESCAPE: +0x1c:1:ESCAPE: +0x1d:0:ESCAPE: +0x1d:1:ESCAPE: +0x1e:0:ESCAPE: +0x1e:1:ESCAPE: +0x1f:0:ESCAPE: +0x1f:1:ESCAPE: + :010:a: + :100:t: + :0001:o: + :0010:s: + :00110:d: + :01100:[: + :01111:p: + :10101:b: + :11001:c: + :11010:h: + :11100:w: + :11101:i: + :11111:f: + :000000:A: + :000011:M: + :001111:e: + :011100:B: + :011101:C: + :101000:T: + :101101:S: + :101110:g: + :110000:r: + :110110:n: + :110111:l: + :111101:m: + :0000011:v: + :0000100:G: + :0000101:N: + :0011101:y: + :0110101:H: + :0110111:L: + :1010010:J: + :1010011:F: + :1011001:R: + :1011110:u: + :1100010:D: + :1100011:W: + :1111001:P: + :00000100:k: + :00000101:O: + :01101000:-: + :01101101:1: + :10110001:K: + :10111110:j: + :11110000:I: + :11110001:E: + :001110010:q: + :001110011:U: + :011010010:V: + :011011000:Y: + :011011001: : + :101100001:2: + :101111110:STOP: + :0011100000:3: + :0011100001:8: + :0011100010:6: + :0110100111:5: + :1011000000:(: + :1011111110:7: + :00111000110:0: + :01101001100:': + :01101001101:9: + :10110000010:Z: + :10111111110:4: + :10111111111:Q: + :001110001111:X: + :1011000001100:ESCAPE: + :1011000001101:.: + :1011000001110:&: + :00111000111000:\: + :00111000111010:@: + :00111000111011:`: + :10110000011110:": + :10110000011111:z: + :001110001110011:$: + :0011100011100100:+: + :00111000111001011:x: + :001110001110010101:]: + :0011100011100101000:/: + :0011100011100101001:?: +!:1: : +!:01:STOP: +!:001:.: +!:0000:0x3a: +!:00011:[: +!:0001001:": +!:0001010:/: +!:0001011:!: +!:00010000:): +!:000100010:': +!:0001000111:?: +!:00010001100:ESCAPE: +!:00010001101:]: +":11: : +":001:.: +":0000:p: +":0101:B: +":0111:T: +":1000:i: +":00010:f: +":00011:W: +":01000:S: +":01100:t: +":01101:C: +":10100:STOP: +":10111:,: +":010010:J: +":100100:m: +":101010:n: +":101011:I: +":0100110:E: +":0100111:D: +":1001010:w: +":1001011:g: +":1001100:b: +":1001101:L: +":1001110:-: +":1011000:c: +":1011001:H: +":10011110:P: +":10110100:r: +":10110111:K: +":100111111:l: +":101101010:Y: +":101101011:Q: +":101101100:G: +":101101101:A: +":1001111100:ESCAPE: +":1001111101:a: +#:0:ESCAPE: +#:1:ESCAPE: +$:0:1: +$:11:3: +$:100:4: +$:1011:2: +$:10101:7: +$:101001:5: +$:1010000:ESCAPE: +$:1010001:9: +%:1: : +%:00:ESCAPE: +%:01:,: +&:1: : +&:01:w: +&:001:B: +&:0000:E: +&:000100:2: +&:000110:A: +&:000111:R: +&:00010100:O: +&:00010101:4: +&:00010111:J: +&:000101100:ESCAPE: +&:000101101:P: +':1:s: +':001:t: +':010: : +':0000:l: +':01101:r: +':000100:n: +':000101:.: +':000110:C: +':011000:B: +':011101:A: +':0111000:d: +':0111100:v: +':00011100:S: +':00011111:p: +':01100101:D: +':01111011:i: +':01111100:c: +':01111101:m: +':01111111:,: +':000111010:f: +':000111011:g: +':011001000:F: +':011001001:h: +':011001101:H: +':011001110:N: +':011100101:R: +':011100110:STOP: +':011100111:T: +':011110101:G: +':011111101:L: +':0001111000:o: +':0001111001:K: +':0001111011:a: +':0110011001:u: +':0110011111:O: +':0111001001:I: +':0111101000:w: +':0111101001:b: +':0111111001:e: +':00011110101:?: +':01100110000:E: +':01100110001:7: +':01110010000:P: +':000111101001:W: +':011001111001:0x3a: +':011001111010:!: +':011100100011:J: +':011111100001:q: +':011111100011:M: +':0001111010001:V: +':0110011110001:9: +':0110011110111:y: +':0111001000100:8: +':0111001000101:5: +':0111111000000:6: +':0111111000101:k: +':00011110100000:2: +':00011110100001:0: +':01100111100001:Y: +':01100111101100:): +':01111110000010:j: +':01111110000011:Q: +':011001111000000:-: +':011001111000001:': +':011001111011011:z: +':011111100010000:X: +':011111100010001:U: +':011111100010010:4: +':011111100010011:3: +':0110011110110100:ESCAPE: +':0110011110110101:1: +(:01:1: +(:000:P: +(:101:t: +(:1000:2: +(:1101:5: +(:1110:N: +(:00111:T: +(:10010:p: +(:11111:c: +(:001001:a: +(:001010:S: +(:001100:R: +(:100111:e: +(:111100:J: +(:111101:A: +(:0010110:D: +(:0011011:K: +(:1001100:v: +(:1001101:s: +(:1100000:b: +(:1100010:G: +(:1100011:8: +(:1100100:M: +(:1100101:H: +(:1100110:C: +(:00100000:m: +(:00100010:o: +(:00100011:E: +(:00101110:W: +(:11000011:g: +(:11001110:L: +(:001000010:d: +(:001011111:U: +(:001101000:F: +(:001101010:f: +(:110000100:w: +(:110000101:B: +(:110011111:n: +(:0010000110:l: +(:0010000111:9: +(:0010111100:4: +(:0010111101:I: +(:0011010010:3: +(:0011010111:h: +(:1100111101:i: +(:00110100110:Z: +(:00110100111:V: +(:00110101100: : +(:11001111000:k: +(:001101011011:O: +(:110011110010:': +(:0011010110100:ESCAPE: +(:0011010110101:u: +(:1100111100110:X: +(:1100111100111:7: +):0: : +):11:.: +):101:STOP: +):1001:,: +):10000:0x3a: +):100011:;: +):1000101:!: +):10001001:(: +):1000100000:ESCAPE: +):1000100001:o: +):1000100010:?: +):1000100011:): +*:0:*: +*:100:s: +*:101: : +*:1100:m: +*:1110:t: +*:11010:g: +*:11011:k: +*:11111:d: +*:111101:y: +*:1111001:e: +*:11110000:i: +*:111100010:ESCAPE: +*:111100011:n: ++:1:n: ++:00:ESCAPE: ++:01: : +,:1: : +,:01:S: +,:001:0: +,:0001:A: +,:00000:5: +,:0000110:b: +,:0000111:3: +,:00001000:2: +,:00001001:": +,:00001011:1: +,:0000101000:Q: +,:0000101010:': +,:00001010111:4: +,:000010100100:T: +,:000010100101:B: +,:000010100110:7: +,:000010100111:6: +,:000010101100:STOP: +,:0000101011010:ESCAPE: +,:0000101011011:i: +-:00: : +-:0100:t: +-:0101:b: +-:0110:w: +-:0111:u: +-:1001:o: +-:1010:s: +-:1011:f: +-:10000:c: +-:11011:l: +-:11101:d: +-:100010:9: +-:110000:h: +-:110010:1: +-:110011:y: +-:110101:r: +-:111000:a: +-:111100:m: +-:111110:p: +-:1000110:S: +-:1101000:e: +-:1101001:i: +-:1111011:n: +-:10001110:C: +-:11000101:W: +-:11000111:g: +-:11100101:J: +-:11100110:D: +-:11110101:2: +-:11111100:7: +-:11111110:G: +-:11111111:O: +-:100011111:H: +-:110001000:A: +-:110001100:6: +-:110001101:B: +-:111001111:M: +-:111101000:E: +-:111101001:L: +-:111111010:U: +-:111111011:k: +-:1000111100:F: +-:1100010010:j: +-:1100010011:P: +-:1110010001:q: +-:1110010010:5: +-:1110010011:T: +-:1110011101:I: +-:10001111011:K: +-:11100100000:v: +-:11100100001:Z: +-:11100111001:N: +-:100011110101:R: +-:111001110001:Y: +-:1000111101001:0: +-:10001111010000:4: +-:10001111010001:z: +-:11100111000001:V: +-:11100111000010:3: +-:11100111000011:8: +-:111001110000001:Q: +-:1110011100000000:': +-:11100111000000010:ESCAPE: +-:11100111000000011:x: +.:1: : +.:01:STOP: +.:0011:.: +.:00010:i: +.:00100:0: +.:00101:c: +.:000001:u: +.:0000000:a: +.:0000001:[: +.:0001101:3: +.:00001000:4: +.:00001110:H: +.:00011000:S: +.:00011001:W: +.:00011100:o: +.:00011110:1: +.:000010100:5: +.:000010101:L: +.:000010111:p: +.:000011000:T: +.:000011001:A: +.:000011010:M: +.:000011110:C: +.:000011111:2: +.:000111011:D: +.:000111110:B: +.:0000100100:N: +.:0000100110:t: +.:0000100111:J: +.:0000101101:R: +.:0000110111:P: +.:0001110101:s: +.:0001111111:I: +.:00001011000:r: +.:00001101100:V: +.:00011101000:w: +.:00011101001:F: +.:00011111101:G: +.:000010010100:E: +.:000010010101:0x3a: +.:000010110010:h: +.:000011011010:,: +.:000111111000:': +.:0000100101101:b: +.:0000100101110:K: +.:0000100101111:Y: +.:0000101100111:O: +.:0000110110110:-: +.:0001111110010:f: +.:0001111110011:(: +.:00001011001100:": +.:00001101101110:y: +.:000010010110000:?: +.:000010010110001:m: +.:000010010110010:Q: +.:000011011011110:*: +.:000011011011111:&: +.:0000100101100110:U: +.:0000100101100111:;: +.:0000101100110100:8: +.:0000101100110101:6: +.:0000101100110111:k: +.:00001011001101100:d: +.:000010110011011010:ESCAPE: +.:000010110011011011:n: +/:01:c: +/:110:1: +/:111:e: +/:0000:5: +/:0010:8: +/:00010:T: +/:00011:f: +/:00110:B: +/:00111:2: +/:10001:3: +/:10010:7: +/:10100:6: +/:10110:a: +/:101111:4: +/:1000000:F: +/:1000010:s: +/:1000011:M: +/:1001100:H: +/:1001110:D: +/:1001111:A: +/:1010101:S: +/:10000011:m: +/:10011010:W: +/:10101000:G: +/:10101001:U: +/:10101100:d: +/:10101101:O: +/:10101110:N: +/:10111001:C: +/:10111011:P: +/:100110110:L: +/:101011110: : +/:101011111:I: +/:101110000:E: +/:101110001:R: +/:101110100:K: +/:101110101:t: +/:1000001001:J: +/:1000001011:9: +/:10000010000:v: +/:10000010001:p: +/:10000010100:h: +/:10011011101:o: +/:10011011110:Q: +/:10011011111:0: +/:100000101010:l: +/:100000101011:i: +/:100110111000:V: +/:1001101110011:y: +/:10011011100100:ESCAPE: +/:10011011100101:g: +0:0:0: +0:111: : +0:1001:a: +0:1011:p: +0:10001:s: +0:11000:.: +0:11001:8: +0:11011:,: +0:100000:4: +0:100001:t: +0:101001:5: +0:110100:6: +0:1010000:3: +0:1010001:7: +0:1010101:]: +0:1010110:-: +0:1010111:1: +0:10101000:): +0:10101001:/: +0:11010100:STOP: +0:11010101:9: +0:11010111:2: +0:110101100:%: +0:1101011010:0x3a: +0:110101101101:f: +0:110101101111:m: +0:1101011011100:y: +0:11010110110001:l: +0:11010110110010:;: +0:11010110110011:': +0:11010110111010:k: +0:11010110111011:!: +0:110101101100000:C: +0:1101011011000010:ESCAPE: +0:1101011011000011:J: +1:00:9: +1:100:1: +1:111:0: +1:0101: : +1:0111:2: +1:1011:.: +1:1100:5: +1:01000:6: +1:01001:8: +1:01101:/: +1:10100:]: +1:11010:3: +1:011001:7: +1:110110:4: +1:0110000:STOP: +1:0110001:-: +1:1010100:): +1:1010110:0x3a: +1:1010111:s: +1:1101110:,: +1:1101111:x: +1:10101010:': +1:101010110:X: +1:10101011110:t: +1:10101011111:R: +1:101010111011:;: +1:1010101110000:p: +1:1010101110001:m: +1:1010101110010:!: +1:1010101110101:&: +1:10101011100110:e: +1:101010111001110:b: +1:101010111001111:a: +1:101010111010000:D: +1:101010111010001:C: +1:101010111010010:%: +1:1010101110100110:ESCAPE: +1:1010101110100111:o: +2:11:0: +2:000: : +2:010:.: +2:100:5: +2:0011:/: +2:1011:,: +2:00100:]: +2:00101:p: +2:01101:1: +2:10101:4: +2:011000:6: +2:011001:2: +2:011100:0x3a: +2:011101:-: +2:011111:): +2:1010000:STOP: +2:1010010:8: +2:1010011:9: +2:01111000:D: +2:01111001:3: +2:01111010:t: +2:01111011:7: +2:10100010:n: +2:101000110:a: +2:1010001110:': +2:10100011111:;: +2:101000111100:s: +2:1010001111010:": +2:101000111101100:ESCAPE: +2:101000111101101:i: +2:101000111101110:W: +2:101000111101111:L: +3:00: : +3:10:0: +3:110:.: +3:1110:/: +3:01000:2: +3:01001:1: +3:01010:): +3:01100:0x3a: +3:01110:-: +3:11111:]: +3:010110:D: +3:011010:4: +3:011011:STOP: +3:011111:5: +3:111100:,: +3:0101110:7: +3:0101111:3: +3:0111101:6: +3:1111011:t: +3:01111001:B: +3:11110100:8: +3:111101010:9: +3:0111100001:;: +3:1111010110:r: +3:1111010111:s: +3:01111000000:n: +3:01111000101:b: +3:01111000110:': +3:01111000111:A: +3:011110000010:p: +3:011110000011:e: +3:0111100010000:a: +3:0111100010001:&: +3:0111100010010:%: +3:01111000100110:ESCAPE: +3:01111000100111:k: +4:01: : +4:000:4: +4:100:.: +4:110:0: +4:0010:/: +4:1010:5: +4:1011:-: +4:00110:1: +4:11101:]: +4:11110:,: +4:001110:2: +4:111001:8: +4:111110:): +4:0011110:0x3a: +4:0011111:': +4:1110000:t: +4:1110001:3: +4:1111111:STOP: +4:11111101:6: +4:1111110000:9: +4:1111110010:7: +4:11111100011:C: +4:11111100110:;: +4:111111000101:x: +4:1111110011101:m: +4:1111110011110:I: +4:11111100010000:f: +4:11111100010001:e: +4:11111100010010:b: +4:11111100010011:L: +4:11111100111000:%: +4:11111100111110:p: +4:11111100111111:c: +4:111111001110010:ESCAPE: +4:111111001110011:i: +5:00:0: +5:10: : +5:010:.: +5:0111:p: +5:1100:5: +5:01100:/: +5:11010:a: +5:11011:-: +5:11101:6: +5:011010:3: +5:111100:2: +5:111110:8: +5:111111:]: +5:0110110:0x3a: +5:1110000:): +5:1110001:s: +5:1110011:,: +5:1111010:7: +5:1111011:9: +5:01101110:4: +5:11100100:STOP: +5:11100101:t: +5:0110111110:c: +5:0110111111:1: +5:01101111001:;: +5:01101111011:m: +5:011011110000:e: +5:011011110001:': +5:011011110101:k: +5:0110111101001:l: +5:01101111010000:ESCAPE: +5:01101111010001:f: +6:00: : +6:10:.: +6:111:0: +6:0101:]: +6:01001:1: +6:01100:7: +6:01110:): +6:11000:,: +6:11001:0x3a: +6:11010:/: +6:010001:-: +6:011010:5: +6:011011:4: +6:011111:8: +6:110111:t: +6:0100000:6: +6:0111100:3: +6:0111101:2: +6:1101101:9: +6:01000010:STOP: +6:01000011:+: +6:11011000:': +6:1101100101:a: +6:1101100110:?: +6:11011001000:m: +6:11011001001:e: +6:11011001110:;: +6:1101100111100:f: +6:1101100111101:b: +6:1101100111110:M: +6:11011001111110:": +6:110110011111110:ESCAPE: +6:110110011111111:i: +7:11:.: +7:001: : +7:011:0: +7:101:-: +7:0000:8: +7:0100:7: +7:1001:]: +7:01010:/: +7:000101:6: +7:000110:2: +7:000111:1: +7:010111:t: +7:100000:9: +7:100010:): +7:100011:5: +7:0001001:3: +7:0101101:,: +7:1000010:a: +7:1000011:4: +7:00010000:STOP: +7:01011000:0x3a: +7:01011001:p: +7:0001000101:R: +7:0001000110:;: +7:00010001000:': +7:00010001111:m: +7:000100010011:f: +7:000100011100:A: +7:000100011101:?: +7:0001000100100:ESCAPE: +7:0001000100101:s: +8:01: : +8:000:4: +8:110:.: +8:0011:0: +8:1000:9: +8:1001:7: +8:1011:8: +8:1110:1: +8:00100:/: +8:10100:3: +8:11110:5: +8:101010:): +8:111110:6: +8:111111:]: +8:0010100:0x3a: +8:0010101:,: +8:1010111:t: +8:00101100:p: +8:00101101:-: +8:00101111:a: +8:10101100:c: +8:10101101:2: +8:001011101:STOP: +8:0010111001:;: +8:001011100000:l: +8:001011100001:': +8:0010111000100:f: +8:0010111000101:D: +8:0010111000110:A: +8:00101110001110:ESCAPE: +8:00101110001111:i: +9:000:5: +9:001:]: +9:111:9: +9:0101:0: +9:0110:.: +9:0111:-: +9:1000:4: +9:1001:8: +9:1011:6: +9:1100: : +9:1101:7: +9:01000:2: +9:10100:3: +9:010010:1: +9:010011:/: +9:101010:t: +9:1010111:): +9:10101100:0x3a: +9:101011010:,: +9:10101101100:p: +9:10101101101:;: +9:10101101111:STOP: +9:1010110111000:n: +9:1010110111001:m: +9:1010110111010:a: +9:10101101110111:e: +9:101011011101100:ESCAPE: +9:101011011101101:k: +0x3a:1: : +0x3a:01:0: +0x3a:001:3: +0x3a:00001:1: +0x3a:00010:T: +0x3a:00011:C: +0x3a:000001:4: +0x3a:0000000:ESCAPE: +0x3a:0000001:5: +;:0:ESCAPE: +;:1: : +<:0:ESCAPE: +<:1:ESCAPE: +=:0:ESCAPE: +=:1:ESCAPE: +>:0:ESCAPE: +>:1:ESCAPE: +?:1: : +?:01:STOP: +?:000:0x3a: +?:00100:!: +?:00110:[: +?:00111:.: +?:001010:;: +?:0010110:': +?:00101111:,: +?:001011101:/: +?:0010111000:ESCAPE: +?:0010111001:Q: +@:0:k: +@:10: : +@:111:T: +@:1101:b: +@:11000:ESCAPE: +@:11001:H: +A:01: : +A:110:D: +A:111:n: +A:0000:s: +A:0001:m: +A:0010:d: +A:1000:r: +A:1011:l: +A:00110:c: +A:10010:u: +A:10100:g: +A:001111:b: +A:100111:t: +A:101011:f: +A:1010100:w: +A:1010101:i: +A:10011001:v: +A:10011011:p: +A:001110010:h: +A:001110100:.: +A:001110111:B: +A:100110100:q: +A:0011100000:C: +A:0011100010:,: +A:0011100110:y: +A:0011101010:S: +A:0011101100:k: +A:0011101101:T: +A:1001100001:R: +A:1001100010:F: +A:1001100011:z: +A:1001101011:a: +A:00111000010:P: +A:00111000110:-: +A:00111010110:A: +A:00111010111:I: +A:10011000001:e: +A:10011010100:N: +A:10011010101:x: +A:001110000110:X: +A:001110000111:K: +A:001110001110:3: +A:001110001111:&: +A:001110011101:M: +A:001110011111:Y: +A:0011100111000:L: +A:0011100111001:W: +A:0011100111100:*: +A:1001100000000:o: +A:1001100000001:1: +A:1001100000010:': +A:1001100000011:0x3a: +A:00111001111010:j: +A:001110011110110:G: +A:0011100111101110:O: +A:00111001111011110:4: +A:001110011110111110:ESCAPE: +A:001110011110111111:E: +B:00:C: +B:010:a: +B:101:r: +B:110:e: +B:111:B: +B:0111:i: +B:1000:u: +B:1001:o: +B:01101:l: +B:01100000:T: +B:01100001:.: +B:01100011:y: +B:01100100:I: +B:01100110:h: +B:01100111: : +B:011000100:A: +B:0110001010:O: +B:01100010110:0x3a: +B:01100101000:&: +B:01100101001:3: +B:01100101010:j: +B:01100101011:M: +B:01100101110:D: +B:011000101111:W: +B:011001011000:*: +B:011001011010:,: +B:011001011011:1: +B:011001011110:ESCAPE: +B:011001011111:P: +B:0110001011100:E: +B:0110010110011:R: +B:01100010111011:w: +B:011000101110100:-: +B:011001011001001:U: +B:011001011001010:S: +B:011001011001011:F: +B:0110001011101010:X: +B:0110001011101011:V: +B:0110010110010000:Q: +B:0110010110010001:4: +C:00:h: +C:011:B: +C:100:a: +C:110:o: +C:0101:r: +C:1010:.: +C:1110: : +C:1111:l: +C:01000:': +C:10111:i: +C:010011:e: +C:101101:u: +C:0100101:y: +C:1011001:,: +C:01001001:I: +C:010010000:A: +C:1011000000:C: +C:1011000001:D: +C:1011000011:STOP: +C:1011000100:S: +C:1011000101:T: +C:1011000111:G: +C:01001000100:*: +C:01001000111:w: +C:10110001101:J: +C:010010001010:R: +C:010010001100:2: +C:010010001101:U: +C:101100001000:?: +C:101100001010:O: +C:101100001011:H: +C:101100011000:E: +C:0100100010110:z: +C:1011000010011:-: +C:1011000110011:s: +C:01001000101111:1: +C:10110000100101:!: +C:10110001100100:P: +C:010010001011101:n: +C:101100001001000:K: +C:101100001001001:7: +C:101100011001011:4: +C:0100100010111000:0x3a: +C:1011000110010100:F: +C:1011000110010101:): +C:01001000101110010:ESCAPE: +C:01001000101110011:b: +D:00:a: +D:01:,: +D:100:r: +D:101:o: +D:110:e: +D:1110:i: +D:111111:u: +D:1111001: : +D:1111011:': +D:11110000:.: +D:11110001:]: +D:11111010:y: +D:111101010:w: +D:111101011:W: +D:111110001:N: +D:111110010:C: +D:111110111:J: +D:1111010010:h: +D:1111100000:t: +D:1111100111:I: +D:1111101101:0x3a: +D:11110100001:M: +D:11110100010:&: +D:11110100011:V: +D:11111000010:-: +D:11111000011:G: +D:11111001100:O: +D:11111001101:A: +D:11111011001:S: +D:111101000000:F: +D:111101001100:*: +D:111101001101:s: +D:111101001111:d: +D:111110110000:v: +D:1111010011100:m: +D:1111010011101:j: +D:1111101100010:ESCAPE: +D:1111101100011:T: +D:11110100000110:9: +D:111101000001000:): +D:111101000001011:E: +D:111101000001110:8: +D:111101000001111:7: +D:1111010000010010:U: +D:1111010000010011:R: +D:1111010000010100:B: +D:1111010000010101:4: +E:000:p: +E:010:a: +E:011:n: +E:110:l: +E:1001:m: +E:1010:x: +E:1110:v: +E:1111:d: +E:00100:s: +E:00110:r: +E:00111:u: +E:10000:E: +E:10001: : +E:001010:.: +E:001011:i: +E:101101:0x3a: +E:1011000:y: +E:1011001:t: +E:1011100:g: +E:1011110:4: +E:101110110:w: +E:101111100:c: +E:101111110:b: +E:1011101010:R: +E:1011101011:F: +E:1011101111:C: +E:10111010001:k: +E:10111010010:f: +E:10111010011:o: +E:10111011100:U: +E:10111011101:L: +E:10111110101:e: +E:10111110110:N: +E:10111111100:h: +E:10111111101:I: +E:10111111111:D: +E:101111101000:M: +E:101111101111:': +E:101111111100:2: +E:101111111101:-: +E:1011101000011:q: +E:1011111010010:O: +E:1011111010011:A: +E:1011111011101:Z: +E:10111010000000:W: +E:10111010000001:S: +E:10111010000010:H: +E:10111010000011:9: +E:10111010000100:): +E:10111110111000:T: +E:10111110111001:,: +E:101110100001010:P: +E:1011101000010110:ESCAPE: +E:1011101000010111:z: +F:00:o: +F:10:r: +F:010:e: +F:110:i: +F:111:a: +F:0110:l: +F:01110:u: +F:0111100: : +F:0111101:O: +F:01111101:A: +F:01111111:B: +F:011111100:f: +F:0111110000:.: +F:0111110011:L: +F:01111100010:M: +F:01111100011:E: +F:01111100101:T: +F:01111110101:C: +F:01111110110:W: +F:011111001000:0x3a: +F:011111101000:U: +F:011111101001:': +F:011111101111:1: +F:0111110010010:y: +F:0111110010011:,: +F:01111110111000:-: +F:01111110111010:I: +F:011111101110011:h: +F:0111111011100100:*: +F:0111111011100101:K: +F:0111111011101100:F: +F:0111111011101101:ESCAPE: +F:01111110111011100:X: +F:01111110111011101:R: +F:01111110111011110:;: +F:01111110111011111:4: +G:00:r: +G:01:a: +G:101:o: +G:110:e: +G:1001:u: +G:1111:i: +G:10001:n: +G:11101:l: +G:100000:X: +G:1110000:y: +G:1110001: : +G:1110011:w: +G:10000101:4: +G:10000111:P: +G:11100101:h: +G:100001000:-: +G:100001100:C: +G:111001001:M: +G:1000011010:B: +G:1110010000:.: +G:1110010001:I: +G:10000100100:;: +G:10000100101:,: +G:10000100110:A: +G:10000100111:N: +G:10000110111:0x3a: +G:1000011011000:O: +G:1000011011001:L: +G:10000110110110:b: +G:100001101101000:K: +G:100001101101001:2: +G:100001101101010:1: +G:100001101101011:': +G:1000011011011100:ESCAPE: +G:1000011011011101:m: +G:1000011011011110:T: +G:1000011011011111:S: +H:00:e: +H:01:a: +H:10:o: +H:110:i: +H:1111:u: +H:11100:R: +H:1110100:P: +H:1110110:y: +H:11101011:I: +H:111011100:Q: +H:111011101:M: +H:111011110:A: +H:111011111: : +H:1110101000:S: +H:1110101001:.: +H:11101010101:G: +H:11101010110:): +H:111010101001:E: +H:1110101011100:O: +H:1110101011101:L: +H:11101010100000:1: +H:11101010100001:&: +H:11101010111100:H: +H:11101010111101:w: +H:11101010111110:v: +H:111010101000100:X: +H:111010101000101:W: +H:111010101000110:D: +H:111010101111110:s: +H:111010101111111:F: +H:1110101010001110:ESCAPE: +H:1110101010001111:r: +I:0:n: +I:110:t: +I:1001:s: +I:1111:r: +I:10000:T: +I:10101:a: +I:11100: : +I:100010:c: +I:101001:m: +I:101100:z: +I:101101:.: +I:101111:d: +I:111011:I: +I:1000111:': +I:1011101:l: +I:10100000:A: +I:10100001:v: +I:10111001:V: +I:11101001:f: +I:11101011:o: +I:100011001:C: +I:100011010:P: +I:101000100:w: +I:101000110:0x3a: +I:101110000:p: +I:111010000:R: +I:111010001:,: +I:111010101:Y: +I:1000110000:E: +I:1000110001:6: +I:1000110111:q: +I:1010001011:y: +I:1010001110:M: +I:1110101000:g: +I:1110101001:D: +I:10001101100:e: +I:10001101101:5: +I:10100010100:S: +I:10100010101:9: +I:10100011111:F: +I:10111000100:b: +I:10111000110:-: +I:10111000111:L: +I:101000111100:B: +I:101000111101:): +I:1011100010100:N: +I:1011100010101:Q: +I:1011100010110:k: +I:10111000101111:O: +I:101110001011101:?: +I:1011100010111000:ESCAPE: +I:1011100010111001:h: +J:00:e: +J:10:a: +J:11:o: +J:011:u: +J:0101:i: +J:01000: : +J:0100110:D: +J:0100111:.: +J:01001001:r: +J:010010110:s: +J:0100100000:M: +J:0100100010:J: +J:0100100011:,: +J:0100101000:B: +J:0100101001:-: +J:0100101010:V: +J:0100101110:K: +J:0100101111:T: +J:01001000010:C: +J:01001010110:n: +J:010010000110:!: +J:0100100001110:w: +J:0100100001111:R: +J:0100101011100:F: +J:0100101011110:7: +J:0100101011111:': +J:01001010111010:G: +J:010010101110110:ESCAPE: +J:010010101110111:L: +K:00:i: +K:01:a: +K:10:e: +K:1111:y: +K:11000:n: +K:11001:o: +K:11011:r: +K:11101: : +K:110100:': +K:111000:u: +K:1101011:.: +K:1110011:l: +K:11100101:h: +K:110101000:T: +K:110101011:G: +K:111001001:,: +K:1101010100:w: +K:11010100100:5: +K:11010100101:4: +K:11010100110:A: +K:11010101010:3: +K:11100100000:2: +K:11100100011:M: +K:110101001110:-: +K:110101010110:0x3a: +K:110101010111:!: +K:111001000010:): +K:111001000101:S: +K:1101010011110:V: +K:1110010000110:6: +K:1110010000111:1: +K:11010100111111:L: +K:11100100010000:I: +K:11100100010001:?: +K:110101001111100:ESCAPE: +K:110101001111101:v: +K:111001000100100:k: +K:111001000100101:Y: +K:111001000100110:N: +K:111001000100111:E: +L:00:i: +L:10:o: +L:011:]: +L:110:e: +L:111:a: +L:0100:u: +L:010100:l: +L:010101:A: +L:010111:y: +L:01011011: : +L:010110000:I: +L:010110001:R: +L:010110101:,: +L:0101100100:O: +L:0101100101:': +L:01011001101:.: +L:01011001110:C: +L:01011001111:Y: +L:01011010001:F: +L:01011010010:L: +L:010110011001:t: +L:010110100001:G: +L:010110100111:S: +L:0101100110001:h: +L:0101101000001:W: +L:0101101001100:J: +L:01011001100000:E: +L:01011010000001:": +L:01011010011011:STOP: +L:010110011000010:T: +L:010110011000011:P: +L:010110100000000:D: +L:010110100000001:7: +L:010110100110101:j: +L:0101101001101000:ESCAPE: +L:0101101001101001:U: +M:00:o: +M:11:a: +M:011:e: +M:101:i: +M:0101:c: +M:1001:u: +M:01001:y: +M:10001:r: +M:100000:S: +M:100001:P: +M:0100001: : +M:01000001:C: +M:01000110:F: +M:010000000:1: +M:010001000:h: +M:010001010:I: +M:010001110:T: +M:010001111:X: +M:0100000010:A: +M:0100010010:z: +M:01000100110:f: +M:01000101110:.: +M:010000001100:Z: +M:010000001101:K: +M:010000001110:B: +M:010001001111:s: +M:010001011000:R: +M:010001011001:W: +M:010001011010:O: +M:0100000011110:,: +M:0100000011111:': +M:0100010110111:D: +M:0100010111100:4: +M:0100010111110:E: +M:01000100111000:m: +M:01000100111001:J: +M:01000100111010:ESCAPE: +M:01000101111010:l: +M:01000101111011:-: +M:01000101111110:): +M:01000101111111:w: +M:010001001110110:t: +M:010001001110111:V: +M:010001011011000:Q: +M:010001011011001:N: +M:010001011011010:6: +M:010001011011011:2: +N:00:a: +N:10:o: +N:11:e: +N:011:i: +N:01010:u: +N:01011:E: +N:010010:A: +N:0100010:y: +N:0100110:g: +N:01000001:B: +N:01000010:I: +N:01000110:F: +N:01000111: : +N:010000000:): +N:010000001:': +N:010000111:Y: +N:010011100:L: +N:010011101:H: +N:0100001100:C: +N:0100111100:W: +N:0100111110:N: +N:0100111111:T: +N:010000110101:M: +N:010000110111:O: +N:010011110100:,: +N:010011110101:J: +N:010011110111:h: +N:0100001101000:D: +N:0100001101001:.: +N:0100111101100:X: +N:0100111101101:ESCAPE: +N:01000011011000:k: +N:01000011011001:Z: +N:01000011011010:Q: +N:01000011011011:G: +O:111:n: +O:0000:s: +O:0001:N: +O:0011:z: +O:0100:r: +O:1000:u: +O:1010:p: +O:1011:l: +O:1101:': +O:00101:U: +O:01011:h: +O:01110:f: +O:01111:w: +O:10010:.: +O:11000: : +O:001000:o: +O:001001:J: +O:010100:b: +O:010101:m: +O:011001:H: +O:011010:O: +O:011011:v: +O:100111:c: +O:110011:x: +O:1001101:d: +O:1100100:a: +O:01100001:t: +O:01100010:k: +O:10011000:g: +O:11001010:R: +O:011000000:K: +O:100110010:i: +O:110010111:V: +O:0110000011:2: +O:0110001101:S: +O:0110001110:B: +O:1001100110:W: +O:1001100111:-: +O:01100000100:,: +O:01100011000:j: +O:01100011001:L: +O:01100011111:I: +O:11001011001:A: +O:11001011011:C: +O:011000001010:0x3a: +O:011000111100:e: +O:110010110000:y: +O:110010110001:/: +O:110010110100:M: +O:0110000010110:!: +O:0110001111011:P: +O:1100101101011:F: +O:01100000101110:E: +O:01100000101111:D: +O:01100011110100:8: +O:01100011110101:4: +O:11001011010101:T: +O:110010110101000:ESCAPE: +O:110010110101001:q: +P:11:a: +P:000:i: +P:010:e: +P:011:l: +P:100:o: +P:101:r: +P:0010:h: +P:001111:u: +P:0011010:C: +P:0011100:.: +P:0011101: : +P:00110000:B: +P:00110010:D: +P:00110111:s: +P:001100011:O: +P:001100111:,: +P:0011000101:y: +P:0011001100:M: +P:0011011000:E: +P:0011011001:': +P:0011011011:3: +P:00110001001:T: +P:001100010000:L: +P:001100010001:G: +P:001100110100:*: +P:001100110110:A: +P:001100110111:S: +P:001101101000:w: +P:001101101001:F: +P:0011001101011:J: +P:0011011010100:f: +P:0011011010101:R: +P:0011011010111:t: +P:00110011010100:V: +P:00110110101100:Y: +P:00110110101101:I: +P:001100110101011:&: +P:0011001101010100:ESCAPE: +P:0011001101010101:): +Q:1:u: +Q:00:V: +Q:011: : +Q:0101:.: +Q:01000:a: +Q:0100100:w: +Q:0100110:E: +Q:0100111:C: +Q:01001011:&: +Q:010010101:': +Q:0100101000:T: +Q:01001010010:ESCAPE: +Q:01001010011:s: +R:01:a: +R:11:o: +R:100:i: +R:101:e: +R:0000:p: +R:0011:u: +R:00011:E: +R:00100:h: +R:000100: : +R:001010:y: +R:00010100:D: +R:00010110:.: +R:00101100:T: +R:00101110:S: +R:000101010:F: +R:001011010:B: +R:001011011:n: +R:001011111:A: +R:0001010110:w: +R:0001011100:N: +R:0001011101:&: +R:0001011110:V: +R:0001011111:H: +R:0010111101:': +R:00010101110:t: +R:00010101111:I: +R:001011110000:C: +R:001011110010:O: +R:00101111000100:,: +R:00101111000101:s: +R:00101111000110:U: +R:00101111000111:M: +R:00101111001100:-: +R:00101111001101:ESCAPE: +R:00101111001111:0x3a: +R:001011110011100:2: +R:001011110011101:R: +S:1:]: +S:0000:a: +S:0010:h: +S:0111:t: +S:00010:p: +S:00011:,: +S:00110:L: +S:01000:i: +S:01001:u: +S:01010:o: +S:01011:c: +S:01100:e: +S:001111:k: +S:0011100:w: +S:0110101: : +S:0110111:m: +S:00111010:q: +S:01101000:M: +S:01101001:n: +S:01101100:l: +S:001110110:P: +S:011011011:y: +S:0011101110:A: +S:01101101001:.: +S:001110111101:r: +S:001110111110:S: +S:001110111111:W: +S:011011010000:C: +S:011011010101:E: +S:011011010110:v: +S:0110110100011:ESCAPE: +S:0110110101000:I: +S:0110110101111:g: +S:00111011110000:*: +S:00111011110010:4: +S:00111011110011:1: +S:01101101000100:O: +S:01101101010010:STOP: +S:01101101011100:z: +S:011011010001011:B: +S:011011010111010:H: +S:011011010111011:T: +S:0011101111000100:G: +S:0011101111000110:}: +S:0011101111000111:D: +S:0110110100010100:-: +S:0110110101001100:3: +S:0110110101001101:2: +S:00111011110001010:': +S:00111011110001011:?: +S:01101101010011101:s: +S:01101101010011110:j: +S:01101101010011111:b: +S:011011010001010100:R: +S:011011010001010101:K: +S:011011010001010110:J: +S:011011010001010111:F: +S:011011010100111000:0x3a: +S:011011010100111001:): +T:0:h: +T:100:o: +T:1010:V: +T:1011:w: +T:1100:r: +T:1111:e: +T:11010:a: +T:11011:i: +T:11100:u: +T:1110100:H: +T:1110110:W: +T:11101010: : +T:11101011:y: +T:111011101:M: +T:111011111:x: +T:1110111000:S: +T:11101110010:A: +T:11101111001:s: +T:11101111011:J: +T:111011100111:X: +T:111011110000:.: +T:1110111001101:-: +T:1110111100011:L: +T:1110111101000:C: +T:1110111101011:c: +T:11101110011000:T: +T:11101110011001:U: +T:11101111000101:4: +T:11101111010010:O: +T:111011110001001:G: +T:111011110100110:E: +T:111011110100111:,: +T:111011110101010:': +T:1110111100010001:;: +T:1110111101010000:P: +T:1110111101010001:1: +T:1110111101010010:ESCAPE: +T:1110111101010111:D: +T:11101111000100000:0x3a: +T:11101111000100001:*: +T:11101111010100110:R: +T:11101111010100111:N: +T:11101111010101100:I: +T:11101111010101101:B: +U:00:K: +U:10:n: +U:011:S: +U:110:p: +U:1111:l: +U:01010:s: +U:01011:r: +U:11101:R: +U:010000:g: +U:111000: : +U:0100111:.: +U:1110010:m: +U:01000100:k: +U:01000101:t: +U:01000110:E: +U:01000111:-: +U:01001000:F: +U:01001100:2: +U:11100110:c: +U:11100111:N: +U:010010010:f: +U:010010011:8: +U:010010100:,: +U:010010111:Z: +U:0100101010:h: +U:0100110100:i: +U:0100110101:w: +U:0100110110:a: +U:01001010110:b: +U:01001010111:D: +U:01001101110:!: +U:010010110000:e: +U:010010110001:V: +U:010010110010:P: +U:010010110011:I: +U:010010110100:B: +U:010010110101:A: +U:010011011111:d: +U:0100101101100:H: +U:0100101101101:C: +U:0100101101110:0x3a: +U:0100101101111:): +U:0100110111101:z: +U:01001101111000:ESCAPE: +U:01001101111001:T: +V:01: : +V:11:i: +V:000:.: +V:001:a: +V:101:e: +V:10001:C: +V:10011:o: +V:1000001:F: +V:1000011:I: +V:10000001:1: +V:10000101:4: +V:10010000:r: +V:10010010:E: +V:10010011:s: +V:10010101:': +V:10010110:0x3a: +V:10010111:l: +V:100000001:/: +V:100001001:-: +V:100100010:D: +V:100100011:u: +V:100101001:,: +V:1000000000:6: +V:1000000001:2: +V:1000010000:5: +V:1001010000:;: +V:10010100010:ESCAPE: +V:100001000100:7: +V:100101000110:3: +V:1000010001010:9: +V:1000010001011:y: +V:1000010001100:P: +V:1000010001101:H: +V:1000010001110:A: +V:1000010001111:8: +V:1001010001111:W: +V:10010100011100:f: +V:10010100011101:B: +W:00:h: +W:10:i: +W:011:a: +W:110:o: +W:111:e: +W:0100:r: +W:01011:O: +W:0101001: : +W:0101010:y: +W:010100000:B: +W:010100001:.: +W:010101100:I: +W:010101110:W: +W:010101111:A: +W:0101000100:': +W:0101000101:M: +W:0101000111:T: +W:01010001100:2: +W:01010001101:0x3a: +W:01010110100:H: +W:01010110110:V: +W:010101101010:l: +W:010101101110:s: +W:010101101111:,: +W:0101011010111:u: +W:010101101011000:5: +W:010101101011001:): +W:010101101011011:E: +W:0101011010110100:ESCAPE: +W:0101011010110101:m: +X:1: : +X:000:a: +X:0010:z: +X:0011:m: +X:0111:t: +X:01001:U: +X:01010:-: +X:01011:e: +X:011000:u: +X:011001:I: +X:011011:,: +X:0100010:V: +X:0110100:5: +X:0110101:.: +X:01000000:S: +X:01000010:0x3a: +X:01000110:c: +X:01000111:i: +X:010000010:9: +X:010000011:': +X:010000111:X: +X:0100001100:): +X:01000011010:ESCAPE: +X:01000011011:y: +Y:1:o: +Y:00:e: +Y:010:u: +Y:01100:a: +Y:01110:v: +Y:01111: : +Y:0110100:n: +Y:01101010:r: +Y:01101101:O: +Y:01101111:i: +Y:011010111:N: +Y:011011000:L: +Y:011011001:s: +Y:011011101:m: +Y:0110101100:.: +Y:0110101101:M: +Y:0110111001:P: +Y:011011100001:R: +Y:011011100010:2: +Y:0110111000000:-: +Y:0110111000110:C: +Y:0110111000111:,: +Y:01101110000010:ESCAPE: +Y:01101110000011:d: +Z:01:a: +Z:10:e: +Z:11:o: +Z:0010:z: +Z:0011:i: +Z:00001:Z: +Z:00010: : +Z:00011:u: +Z:0000010:O: +Z:0000011:.: +Z:00000000:y: +Z:00000001:4: +Z:00000010:,: +Z:0000001100:f: +Z:0000001101:-: +Z:0000001110:STOP: +Z:00000011110:ESCAPE: +Z:00000011111:l: +[:1:S: +[:01:A: +[:0000:2: +[:0010:R: +[:0011:1: +[:000101:n: +[:000110:m: +[:0001111:l: +[:00010011:r: +[:00011101:b: +[:000100001:C: +[:000100010:f: +[:000100101:M: +[:000111001:c: +[:0001000001:STOP: +[:0001000111:K: +[:0001001000:H: +[:0001110001:T: +[:00010000000:J: +[:00010000001:B: +[:00010001101:Z: +[:00010010011:P: +[:00011100000:L: +[:000100011000:F: +[:000100100101:I: +[:000111000011:N: +[:0001000110010:s: +[:0001000110011:V: +[:0001001001000:U: +[:0001001001001:G: +[:0001110000101:D: +[:00011100001000:O: +[:000111000010010:ESCAPE: +[:000111000010011:W: +\:0:ESCAPE: +\:1:x: +]:1:STOP: +]:01: : +]:001:.: +]:0001:[: +]:00001:0x3a: +]:000001:,: +]:0000001:;: +]:00000000:ESCAPE: +]:00000001:]: +^:0:ESCAPE: +^:1:ESCAPE: +_:0:ESCAPE: +_:1:ESCAPE: +`:001:w: +`:011:H: +`:110:P: +`:111:F: +`:0101:n: +`:1011:D: +`:00001:s: +`:00010:A: +`:01001:t: +`:10000:g: +`:10011:c: +`:000000:W: +`:000001:r: +`:000110:e: +`:000111:C: +`:100011:l: +`:100100:h: +`:100101:G: +`:101001:B: +`:101010:T: +`:101011:S: +`:0100000:o: +`:0100001:d: +`:0100010:b: +`:0100011:R: +`:1000100:O: +`:1000101:L: +`:1010001:f: +`:10100000:J: +`:101000010:ESCAPE: +`:101000011:M: +a:01:n: +a:001:r: +a:101:t: +a:0000:m: +a:1001:s: +a:1110: : +a:1111:l: +a:00011:d: +a:10000:i: +a:11000:y: +a:11010:c: +a:000100:p: +a:100010:u: +a:100011:v: +a:110011:g: +a:110110:b: +a:110111:k: +a:0001010:w: +a:00010111:z: +a:11001000:.: +a:11001011:f: +a:000101100:,: +a:000101101:': +a:110010011:e: +a:110010101:h: +a:1100101001:x: +a:11001001000:a: +a:11001001001:-: +a:11001001011:j: +a:11001010000:0x3a: +a:11001010001:o: +a:110010010100:q: +a:11001001010100:!: +a:11001001010111:?: +a:1100100101010100:ESCAPE: +a:1100100101010110:;: +a:1100100101010111:): +a:1100100101011001:/: +a:1100100101011011:@: +a:11001001010101010:J: +a:11001001010101011:]: +a:11001001010110100:N: +a:11001001010110101:L: +a:110010010101100000:R: +a:110010010101100001:S: +a:110010010101100010:V: +a:11001001010110001100:[: +a:11001001010110001110:P: +a:11001001010110001111:STOP: +a:110010010101100011010:W: +a:110010010101100011011:1: +b:00:e: +b:010:u: +b:011:a: +b:100:y: +b:101:o: +b:1100:l: +b:1110:r: +b:1111:i: +b:110100:s: +b:110110: : +b:110111:b: +b:11010101:c: +b:110101000:j: +b:110101100:,: +b:110101101:.: +b:1101010011:': +b:1101011111:t: +b:11010100101:0x3a: +b:11010111000:w: +b:11010111001:d: +b:11010111010:h: +b:11010111011:&: +b:11010111101:-: +b:110101111000:m: +b:110101111001:n: +b:1101010010000:?: +b:1101010010010:v: +b:11010100100010:f: +b:11010100100111:p: +b:110101001000111:;: +b:110101001001101:D: +b:1101010010001100:/: +b:1101010010011001:@: +b:11010100100011010:X: +b:11010100100011011:": +b:11010100100110001:k: +b:110101001001100000:STOP: +b:1101010010011000010:ESCAPE: +b:1101010010011000011:!: +c:00:o: +c:011:a: +c:100:e: +c:110:h: +c:0100:i: +c:0101:l: +c:1011:k: +c:1111:t: +c:10100:u: +c:10101:r: +c:11100: : +c:1110100:y: +c:1110101:c: +c:11101101:s: +c:11101110:.: +c:111011111:,: +c:1110110001:G: +c:11101100001:n: +c:11101100110:D: +c:11101111000:K: +c:11101111011:C: +c:111011000000:0x3a: +c:111011001001:-: +c:111011001010:A: +c:111011001110:L: +c:111011001111:': +c:111011110010:d: +c:111011110100:q: +c:111011110101:I: +c:1110110010000:N: +c:1110110010001:z: +c:1110111100111:F: +c:11101100000101:w: +c:11101100000111:E: +c:11101100101100:?: +c:11101111001100:M: +c:11101111001101:S: +c:111011000001000:b: +c:111011000001001:ESCAPE: +c:111011000001100:!: +c:111011001011010:Q: +c:111011001011011:P: +c:111011001011100:;: +c:111011001011110:B: +c:1110110000011011:V: +c:1110110010111011:m: +c:1110110010111110:/: +c:11101100000110101:): +c:11101100101110100:U: +c:11101100101111110:W: +c:111011000001101000:p: +c:111011000001101001:H: +c:111011001011101010:STOP: +c:111011001011111110:R: +c:111011001011111111:T: +c:1110110010111010110:]: +c:1110110010111010111:[: +d:0: : +d:101:e: +d:1100:a: +d:1110:i: +d:10001:.: +d:10011:o: +d:11011:r: +d:11111:s: +d:100001:d: +d:100101:l: +d:110100:u: +d:111101:y: +d:1001001:-: +d:1101011:v: +d:1111000:g: +d:1111001:,: +d:10000000:h: +d:10000001:0x3a: +d:10000010:m: +d:10010000:w: +d:10010001:n: +d:11010101:': +d:100000111:f: +d:1101010001:?: +d:1101010010:b: +d:1101010011:c: +d:10000011000:!: +d:11010100000:p: +d:11010100001:t: +d:100000110010:STOP: +d:100000110011:): +d:100000110100:k: +d:100000110101:;: +d:100000110111:/: +d:10000011011010:": +d:10000011011011:j: +d:100000110110000:z: +d:100000110110011:q: +d:1000001101100011:@: +d:1000001101100100:ESCAPE: +d:10000011011000101:C: +d:10000011011001010:]: +d:100000110110001000:Z: +d:100000110110001001:[: +d:100000110110010110:T: +d:100000110110010111:`: +e:10: : +e:010:s: +e:110:r: +e:0000:d: +e:0011:a: +e:1111:n: +e:00010:c: +e:01100:e: +e:01101:w: +e:01111:t: +e:11100:l: +e:000110:x: +e:001000:v: +e:001001:i: +e:001010:y: +e:011100:m: +e:111010:.: +e:0001110:f: +e:0010111:b: +e:0111010:,: +e:1110110:p: +e:00011110:-: +e:00011111:h: +e:00101100:k: +e:01110110:': +e:11101110:g: +e:11101111:o: +e:001011011:0x3a: +e:0010110100:): +e:0010110101:q: +e:0111011101:?: +e:0111011110:u: +e:01110111000:z: +e:01110111110:!: +e:011101111110:STOP: +e:011101111111:j: +e:0111011100110:/: +e:01110111001001:4: +e:01110111001010:B: +e:01110111001110:]: +e:01110111001111:;: +e:011101110010000:": +e:0111011100100011:D: +e:0111011100101100:ESCAPE: +e:0111011100101110:@: +e:01110111001000100:T: +e:01110111001000101:C: +e:01110111001011011:[: +e:01110111001011111:L: +e:011101110010110100:V: +e:011101110010110101:G: +e:011101110010111100:1: +e:01110111001011110101:E: +e:011101110010111101000:2: +e:011101110010111101001:N: +e:011101110010111101100:F: +e:011101110010111101101:A: +e:0111011100101111011100:\: +e:0111011100101111011101:P: +e:0111011100101111011110:M: +e:0111011100101111011111:H: +f:00:o: +f:10: : +f:010:i: +f:110:r: +f:0111:a: +f:1110:e: +f:01100:t: +f:11110:u: +f:11111:f: +f:011011:l: +f:01101000:s: +f:01101001:y: +f:011010110:.: +f:0110101000:?: +f:0110101011:,: +f:0110101111:-: +f:01101010011:0x3a: +f:01101010100:': +f:01101010101:g: +f:011010100100:m: +f:011010111000:ESCAPE: +f:011010111010:b: +f:011010111011:n: +f:0110101001011:c: +f:0110101110010:!: +f:01101011100110:): +f:01101011100111:w: +f:011010100101001:p: +f:011010100101010:/: +f:0110101001010000:h: +f:0110101001010110:;: +f:01101010010100010:STOP: +f:01101010010100011:d: +f:01101010010101110:k: +f:01101010010101111:v: +g:11: : +g:000:a: +g:010:h: +g:101:e: +g:0011:u: +g:0110:r: +g:1000:i: +g:01110:l: +g:10010:s: +g:10011:o: +g:001001:,: +g:001010:n: +g:011110:g: +g:011111:.: +g:0010110:y: +g:00100001:': +g:00100010:-: +g:00100011:0x3a: +g:001000000:d: +g:001011101:b: +g:001011110:t: +g:001011111:w: +g:0010000010:?: +g:0010000011:m: +g:00101110001:!: +g:00101110011:f: +g:001011100001:;: +g:001011100101:STOP: +g:0010111000000:k: +g:0010111001000:p: +g:00101110000010:): +g:00101110000011:": +g:001011100100101:c: +g:001011100100111:/: +g:0010111001001000:ESCAPE: +g:0010111001001100:]: +g:0010111001001101:z: +g:00101110010010010:`: +g:001011100100100110:v: +g:001011100100100111:@: +h:0:e: +h:100:o: +h:101:i: +h:110: : +h:1111:a: +h:111001:r: +h:111011:t: +h:11100001:y: +h:11100011:l: +h:11101000:.: +h:11101001:n: +h:11101011:u: +h:111000000:d: +h:111000100:s: +h:111010100:,: +h:1110000011:w: +h:1110001010:': +h:1110001011:-: +h:11101010101:m: +h:11101010110:0x3a: +h:11101010111:b: +h:111000001001:c: +h:111000001011:?: +h:111010101000:!: +h:1110000010000:): +h:1110000010100:h: +h:1110000010101:k: +h:1110101010011:f: +h:11101010100101:g: +h:111000001000100:p: +h:111000001000101:;: +h:111000001000110:/: +h:111000001000111:STOP: +h:111010101001001:v: +h:1110101010010000:q: +h:11101010100100010:ESCAPE: +h:111010101001000110:": +h:11101010100100011100:z: +h:11101010100100011101:j: +h:11101010100100011110:]: +h:11101010100100011111:*: +i:10:n: +i:000:t: +i:010:s: +i:0011:l: +i:1100:o: +i:1101:c: +i:1111:e: +i:00100:a: +i:01100:m: +i:01101:d: +i:01110:v: +i:11100:g: +i:11101:r: +i:001010:p: +i:011110:f: +i:0010110:z: +i:0111110: : +i:00101111:b: +i:01111110:k: +i:001011100:-: +i:001011101:x: +i:0111111100:u: +i:0111111110:q: +i:01111111010:.: +i:01111111110:,: +i:011111110111:w: +i:011111111111:': +i:0111111101101:i: +i:0111111111101:j: +i:01111111011001:0x3a: +i:01111111111000:h: +i:011111110110000:/: +i:011111111110011:y: +i:0111111101100011:?: +i:0111111111100100:P: +i:01111111011000101:R: +i:01111111111001011:!: +i:011111111110010100:): +i:011111111110010101:S: +i:0111111101100010000:STOP: +i:0111111101100010001:C: +i:0111111101100010010:ESCAPE: +i:01111111011000100110:D: +i:01111111011000100111:;: +j:0:o: +j:11:u: +j:101:a: +j:1001:e: +j:10000:i: +j:100011:y: +j:1000101: : +j:10001001:.: +j:100010000:': +j:1000100011:t: +j:10001000100:n: +j:100010001011:s: +j:1000100010100:ESCAPE: +j:1000100010101:h: +k:10: : +k:11:e: +k:000:s: +k:011:i: +k:0010:.: +k:01001:y: +k:001100:': +k:001101:a: +k:001110:p: +k:001111:,: +k:010100:l: +k:010101:f: +k:010110:n: +k:0100000:/: +k:0100010:-: +k:0100011:o: +k:01011101:0x3a: +k:010000111:b: +k:010111000:w: +k:010111001:m: +k:010111100:h: +k:010111110:u: +k:010111111:k: +k:0100001000:r: +k:0100001001:ESCAPE: +k:0100001010:?: +k:0100001100:t: +k:0100001101:g: +k:0101111011:d: +k:01000010110:j: +k:010000101110:): +k:010111101000:;: +k:010111101001:c: +k:010111101010:S: +k:0100001011110:v: +k:0100001011111:R: +k:0101111010110:!: +k:01011110101110:@: +k:010111101011110:": +k:010111101011111:STOP: +l:010:a: +l:011:i: +l:100:l: +l:110:e: +l:111: : +l:0000:u: +l:0001:d: +l:0010:y: +l:1011:o: +l:10100:s: +l:001100:.: +l:001110:t: +l:0011010:v: +l:0011110:f: +l:1010100:m: +l:1010101:k: +l:1010110:p: +l:00110111:c: +l:00111110:-: +l:10101111:,: +l:001101101:0x3a: +l:001111111:b: +l:101011100:': +l:0011011000:r: +l:0011011001:h: +l:0011111100:n: +l:0011111101:g: +l:1010111011:w: +l:10101110100:?: +l:1010111010100:!: +l:1010111010110:z: +l:10101110101011:/: +l:101011101010100:;: +l:101011101011100:E: +l:101011101011101:*: +l:101011101011111:STOP: +l:1010111010101011:ESCAPE: +l:1010111010111100:): +l:10101110101010100:@: +l:10101110101010101:j: +l:10101110101111010:": +l:101011101011110110:[: +l:101011101011110111:]: +m:00:a: +m:01:e: +m:111: : +m:1001:p: +m:1011:o: +m:1100:i: +m:10000:.: +m:10001:s: +m:11010:u: +m:11011:m: +m:101001:y: +m:101011:b: +m:1010000:,: +m:1010100:/: +m:10100010:]: +m:101000110:0x3a: +m:101010100:': +m:1010001111:r: +m:1010101011:f: +m:1010101100:l: +m:1010101110:n: +m:10100011100:?: +m:10100011101:!: +m:10101010100:STOP: +m:10101010101:w: +m:10101011011:h: +m:10101011110:-: +m:101010111110:4: +m:1010101101010:t: +m:1010101101011:@: +m:1010101111110:;: +m:1010101111111:c: +m:10101011010000:): +m:10101011010001:ESCAPE: +m:10101011010011:d: +m:101010110100101:g: +m:10101011010010000:[: +m:10101011010010001:v: +m:10101011010010010:k: +m:10101011010010011:z: +n:01: : +n:001:t: +n:100:g: +n:111:d: +n:0000:s: +n:1010:a: +n:1101:e: +n:10110:c: +n:11000:i: +n:000111:.: +n:101111:n: +n:110011:o: +n:0001001:u: +n:0001011:v: +n:0001100:f: +n:1011100:k: +n:1011101:': +n:1100100:y: +n:1100101:,: +n:00010000:m: +n:00010100:l: +n:00010101:-: +n:000100011:w: +n:000110101:0x3a: +n:0001000101:z: +n:0001101000:h: +n:0001101100:b: +n:0001101101:j: +n:0001101110:r: +n:00010001000:p: +n:00011010011:x: +n:00011011111:?: +n:000100010011:;: +n:000110100101:): +n:000110111100:!: +n:000110111101:q: +n:0001000100100:/: +n:0001000100101:STOP: +n:0001101001000:ESCAPE: +n:00011010010010:B: +n:0001101001001100:]: +n:0001101001001101:": +n:0001101001001110:@: +n:0001101001001111:*: +o:001:u: +o:011: : +o:100:r: +o:111:n: +o:0000:l: +o:1100:m: +o:1101:f: +o:00010:v: +o:01000:s: +o:01001:p: +o:10100:t: +o:10101:o: +o:10111:w: +o:000110:k: +o:000111:i: +o:010100:g: +o:010111:c: +o:101101:d: +o:0101011:e: +o:0101100:y: +o:0101101:a: +o:1011001:b: +o:01010101:h: +o:10110000:.: +o:010101000:-: +o:010101001:,: +o:1011000101:': +o:1011000111:x: +o:10110001001:0x3a: +o:10110001101:z: +o:101100010001:?: +o:101100011001:j: +o:1011000100000:!: +o:1011000110001:q: +o:10110001000010:J: +o:10110001100000:/: +o:10110001100001:): +o:1011000100001101:;: +o:1011000100001110:G: +o:10110001000011000:": +o:10110001000011110:ESCAPE: +o:101100010000110010:]: +o:101100010000110011:@: +o:1011000100001111100:4: +o:1011000100001111101:STOP: +o:1011000100001111110:B: +o:10110001000011111110:O: +o:10110001000011111111:C: +p:001:l: +p:010: : +p:011:o: +p:101:r: +p:111:e: +p:0000:p: +p:1100:a: +p:1101:i: +p:00011:t: +p:10000:u: +p:10001:h: +p:10010:s: +p:000101:m: +p:0001001:d: +p:1001101:y: +p:1001110:.: +p:1001111:,: +p:00010000:-: +p:000100011:?: +p:100110001:0x3a: +p:1001100100:': +p:1001100101:]: +p:1001100110:+: +p:1001100111:b: +p:00010001001:f: +p:00010001010:k: +p:00010001011:!: +p:10011000001:c: +p:10011000010:n: +p:10011000011:w: +p:000100010000:STOP: +p:000100010001:;: +p:100110000001:/: +p:1001100000001:g: +p:10011000000001:): +p:100110000000001:": +p:1001100000000001:S: +p:10011000000000000:ESCAPE: +p:10011000000000001:B: +q:1:u: +q:000:,: +q:001:.: +q:011: : +q:01001:b: +q:01010:': +q:01011:i: +q:010001:a: +q:01000000:?: +q:01000001:0x3a: +q:01000011:): +q:010000100:ESCAPE: +q:010000101:w: +r:000:a: +r:001:o: +r:100:i: +r:110: : +r:111:e: +r:0100:s: +r:0101:t: +r:01110:d: +r:10100:n: +r:10101:y: +r:011010:u: +r:011011:m: +r:011111:k: +r:101101:l: +r:101110:.: +r:101111:r: +r:0110000:f: +r:0110010:,: +r:0110011:v: +r:1011000:c: +r:1011001:g: +r:01100011:': +r:01111000:-: +r:01111001:b: +r:01111011:p: +r:011000101:0x3a: +r:011110100:w: +r:0111101010:?: +r:0111101011:h: +r:01100010010:!: +r:011000100001:q: +r:011000100010:j: +r:011000100011:STOP: +r:011000100110:/: +r:0110001000001:;: +r:0110001001111:): +r:01100010011100:8: +r:01100010011101:z: +r:011000100000001:": +r:011000100000011:]: +r:0110001000000000:T: +r:0110001000000100:x: +r:0110001000000101:ESCAPE: +r:01100010000000011:Z: +r:011000100000000100:*: +r:0110001000000001010:D: +r:0110001000000001011:B: +s:0: : +s:101:t: +s:1000:.: +s:1110:e: +s:10011:,: +s:11000:o: +s:11001:s: +s:11110:h: +s:11111:i: +s:100101:c: +s:110100:u: +s:110110:p: +s:1101111:a: +s:10010001:n: +s:10010011:m: +s:11010100:y: +s:11010110:0x3a: +s:11011100:l: +s:11011101:k: +s:100100001:b: +s:100100100:f: +s:110101010:w: +s:110101111:': +s:1001000000:!: +s:1001000001:g: +s:1001001010:r: +s:1101010110:?: +s:1101010111:-: +s:1101011101:q: +s:11010111001:d: +s:100100101100:/: +s:100100101101:): +s:100100101111:STOP: +s:110101110000:]: +s:110101110001:;: +s:1001001011101:v: +s:100100101110001:": +s:100100101110011:z: +s:1001001011100000:j: +s:1001001011100001:ESCAPE: +s:1001001011100100:[: +s:10010010111001011:@: +s:100100101110010101:T: +s:1001001011100101000:x: +s:1001001011100101001:`: +t:10:h: +t:000:i: +t:010:o: +t:011:e: +t:111: : +t:0010:a: +t:00110:u: +t:11001:r: +t:11011:s: +t:001111:.: +t:110001:t: +t:110100:y: +t:0011101:c: +t:1100001:l: +t:00111001:-: +t:11000000:v: +t:11000001:m: +t:11010101:w: +t:11010110:,: +t:11010111:': +t:001110000:n: +t:0011100011:?: +t:1101010001:b: +t:1101010010:0x3a: +t:00111000100:!: +t:11010100000:z: +t:11010100110:d: +t:11010100111:f: +t:110101000010:x: +t:0011100010100:g: +t:0011100010101:;: +t:1101010000110:p: +t:00111000101100:P: +t:00111000101101:STOP: +t:00111000101111:): +t:11010100001110:/: +t:11010100001111:k: +t:0011100010111000:@: +t:0011100010111010:E: +t:00111000101110011:]: +t:00111000101110111:": +t:001110001011100100:F: +t:001110001011101100:ESCAPE: +t:0011100010111001010:j: +t:0011100010111011010:1: +t:0011100010111011011:[: +t:00111000101110010110:\: +t:001110001011100101110:K: +t:001110001011100101111:C: +u:011:t: +u:101:n: +u:110:s: +u:111:r: +u:0001:d: +u:0010:e: +u:0101:l: +u:1000:p: +u:00000:b: +u:00001: : +u:00110:i: +u:01000:a: +u:01001:g: +u:10010:c: +u:10011:m: +u:0011100:y: +u:00111010:z: +u:00111100:': +u:00111110:f: +u:00111111:k: +u:001111010:,: +u:0011101101:-: +u:0011101110:o: +u:0011110110:.: +u:0011110111:x: +u:00111011000:w: +u:00111011110:0x3a: +u:001110110010:q: +u:001110111110:h: +u:001110111111:v: +u:0011101100110:j: +u:001110110011100:u: +u:001110110011101:?: +u:0011101100111110:/: +u:0011101100111111:!: +u:00111011001111001:ESCAPE: +u:001110110011110000:\: +u:001110110011110001:STOP: +u:001110110011110100:;: +u:001110110011110110:J: +u:001110110011110111:): +u:0011101100111101010:T: +u:0011101100111101011:]: +v:1:e: +v:01:i: +v:000:a: +v:0011:o: +v:00101:.: +v:001001: : +v:00100001:': +v:00100011:y: +v:001000000:u: +v:001000100:s: +v:0010001010:r: +v:00100000100:-: +v:00100000110:,: +v:00100010110:n: +v:001000001010:g: +v:001000001011:v: +v:001000001111:l: +v:001000101110:@: +v:001000101111:0x3a: +v:0010000011101:k: +v:00100000111000:b: +v:001000001110010:t: +v:0010000011100110:d: +v:00100000111001110:/: +v:001000001110011110:ESCAPE: +v:001000001110011111:1: +w:00:i: +w:011:e: +w:100: : +w:101:s: +w:110:h: +w:0101:a: +w:1111:o: +w:01000:.: +w:01001:w: +w:11100:n: +w:1110110:r: +w:11101010:,: +w:11101011:l: +w:11101111:y: +w:111010010:c: +w:111011101:b: +w:1110100010:0x3a: +w:1110100110:m: +w:1110100111:': +w:1110111000:d: +w:11101000000:f: +w:11101000001:]: +w:11101000010:!: +w:11101000111:k: +w:11101110010:-: +w:111010000111:g: +w:111010001100:?: +w:111010001101:t: +w:111011100111:p: +w:1110100001100:STOP: +w:1110100001101:u: +w:1110111001101:): +w:11101110011001:j: +w:111011100110001:q: +w:1110111001100000:/: +w:11101110011000010:;: +w:111011100110000111:[: +w:1110111001100001100:ESCAPE: +w:1110111001100001101:B: +x:01:p: +x:11:t: +x:101: : +x:0000:i: +x:0010:a: +x:1000:c: +x:00010:u: +x:00111:e: +x:10011:-: +x:000110:f: +x:001101:o: +x:100100:.: +x:0001110:,: +x:0001111:m: +x:0011001:y: +x:00110001:9: +x:10010101:': +x:10010110:q: +x:001100000:s: +x:100101000:0x3a: +x:100101110:h: +x:0011000011:?: +x:1001010010:l: +x:1001011110:w: +x:00110000100:A: +x:10010100110:x: +x:10010100111:b: +x:10010111111:): +x:001100001011:/: +x:0011000010100:4: +x:0011000010101:!: +x:1001011111000:g: +x:1001011111001:STOP: +x:1001011111011:;: +x:100101111101001:v: +x:100101111101010:F: +x:100101111101011:E: +x:1001011111010000:ESCAPE: +x:1001011111010001:C: +y:1: : +y:000:o: +y:0011:s: +y:0101:.: +y:01001:,: +y:01100:e: +y:01110:': +y:001001:a: +y:001010:i: +y:001011:d: +y:010001:n: +y:011011:0x3a: +y:011111:l: +y:0010000:w: +y:0110100:t: +y:0110101:m: +y:0111101:-: +y:00100011:b: +y:01000000:?: +y:01000001:r: +y:01000010:p: +y:01000011:f: +y:01111001:c: +y:0010001001:;: +y:0010001010:J: +y:0111100000:h: +y:0111100001:!: +y:0111100011:g: +y:00100010000:): +y:00100010111:/: +y:01111000101:]: +y:001000100011:k: +y:001000101100:ESCAPE: +y:001000101101:u: +y:011110001001:STOP: +y:0010001000100:z: +y:0111100010001:": +y:00100010001011:j: +y:01111000100001:2: +y:001000100010100:y: +y:001000100010101:x: +y:0111100010000000:v: +y:0111100010000001:T: +y:0111100010000010:E: +y:0111100010000011:P: +z:10:e: +z:001:a: +z:011:z: +z:110: : +z:111:i: +z:0001:l: +z:0100:y: +z:01010:o: +z:000000:c: +z:000010:,: +z:000011:.: +z:010110:w: +z:0000010:': +z:00000110:0x3a: +z:00000111:t: +z:01011101:m: +z:010111000:k: +z:010111100:-: +z:010111101:u: +z:010111111:b: +z:01011100100:s: +z:01011100101:/: +z:01011100111:d: +z:01011111001:p: +z:01011111011:?: +z:010111001100:h: +z:010111110000:@: +z:010111110100:): +z:0101110011010:!: +z:0101111100011:v: +z:0101111101010:g: +z:01011100110110:f: +z:01011100110111:r: +z:01011111000100:q: +z:01011111000101:n: +z:01011111010110:ESCAPE: +z:01011111010111:]: +{:0:ESCAPE: +{:1:ESCAPE: +|:0:ESCAPE: +|:1:ESCAPE: +}:0:ESCAPE: +}:1:STOP: +~:0:ESCAPE: +~:1:ESCAPE: +0x7f:0:ESCAPE: +0x7f:1:ESCAPE: diff --git a/data/hw_info/Makefile.am b/data/hw_info/Makefile.am new file mode 100644 index 0000000..60daec4 --- /dev/null +++ b/data/hw_info/Makefile.am @@ -0,0 +1,5 @@ +installdir = $(pkgdatadir)/hw_info + +dist_install_DATA = \ + hw_info.cfg + diff --git a/data/hw_info/hw_info.cfg b/data/hw_info/hw_info.cfg new file mode 100644 index 0000000..a863aa5 --- /dev/null +++ b/data/hw_info/hw_info.cfg @@ -0,0 +1,8 @@ +# This config file determines the order of files in /proc/stb/info to +# scan for receiver model names. For boxes with a stripped model name +# the second column can be used define a prefix (e.g. Vu+ boxen) +# Lines starting with a # or only containing whitespace are skipped + +boxtype +vumodel vu +azmodel diff --git a/data/keymap.xml b/data/keymap.xml new file mode 100644 index 0000000..4f200e5 --- /dev/null +++ b/data/keymap.xml @@ -0,0 +1,753 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/keymaps/Makefile.am b/data/keymaps/Makefile.am new file mode 100644 index 0000000..0bd92a9 --- /dev/null +++ b/data/keymaps/Makefile.am @@ -0,0 +1,8 @@ +keymapsdir = $(datadir)/keymaps +keymaps_DATA = \ + *.info \ + *.kmap + +*.info: + +*.kmap: diff --git a/data/keymaps/azerty.info b/data/keymaps/azerty.info new file mode 100644 index 0000000..eb82327 --- /dev/null +++ b/data/keymaps/azerty.info @@ -0,0 +1,2 @@ +kmap=azerty.kmap +name=azerty keyboard \ No newline at end of file diff --git a/data/keymaps/azerty.kmap b/data/keymaps/azerty.kmap new file mode 100644 index 0000000000000000000000000000000000000000..bdfbdb1a7cfae688f4bbc8efe8009f8e26b6e412 GIT binary patch literal 2078 zcmd^>M^_X<6ov1r>gs+qZ-8M45=5ea3Yc@wIp^#kBO($cDVTnY3%4G_|8b}8dh5=b zZbxJsR5>z@AVzIvy72eZ>dnNcEwt8g{CUGslksvhn561JcNop>F74x8~Q z{1~o4H(tUbBQuhfF`1BQnUnz;kx@}z8%U|(k&H{9+>?H}FAro;9?Fn>4c~?cK7^0u ziQJVb>6KyW!gg%KP9R8X9W)_OZp%rLCXWpH6cCdoR#pX?wbi0MZM3fwnzYhdL#MQ_ zpmrcZLU6s=QmR!@qM>wPR3&M@hR9d`5`te#Ra9N@c0<89r&Eu$Scmo4fQ{IM&Desi zSc5m=?TCM`T$6)xPA_Q@&PjUKGVs-O6iR6?axMky+%G*!?tYIOV#<+uF1&_vAz1cm&f^85+)cl=P# zum`Qk?ZvI=`4rDxdn4)>^Zz<-&g=jC(CGws@U#E1TQ9!zLplG86n1mJ=a0W=?%G2B zh5H}rMXYm`8>2Zw9SqW_L@lb^c_>2)^=OFr%TWOjJ_0Zj5F}9&>jY3sPy>x>Cs{hH z9mT)f2Gv5X)JDsxojRzKR?tdX<^1>lzz@|$-9`Ohip9tO!ufM6a_4`M{EPN~u0QeU zU-(}<{$u?N&v2H|`AOC#$KN+o>CHpo1pBTyX4Gi};WoEKt6Vp9|?w6pae`BoE45XP&zGc#YOLK4C*fcI!edrIPIfB z%Fz!p^g-riOg_qIS&%O>Au}>7{nSmYR4^=`WK`bBxV)8jGAZxnIlZ8lL_wD3<(s^g zuQDRjG9^9KN4<7Fp>@zifpRHVtU1OW`y4RXFqBb&hBjJsOnchbam`w3tx2b}uSlJu zI17`#S{q5Nf-+5t15Z`5_G_7a<<~IzbzH^OB~Le$+`BmS)J!durB-UAcG^oF)Jdo5 zEDeSF@5*DjB=_WjJd=lVO>WB_8KkaI|2erY7v-{Ck*jiDZpeTv(h@COojH0cPvn9; zlJjy)ZpukIL9c$&pWrf1a*ESj&Ka)YM&4ufTPd6BKSNF2T%w>M|352kzSquI8_OS-f5fOXN|l?8 zsW3GrX;LO_YK@qLDKl}C=l^~6RBP|o*`ld3|Al`Ti|Qj{yOnaPA&)XtNxP`Z_Ct!& z;ghcZnJOqozLg7#lTgC0G*F}EOsbA*NmI2Ak)*O>?6CgrvTEThw{jb|bB;T>le@Uv z@{eu7pHvU`M)KcHJFow>Tt;1OSAQ5IQvaSp{gaC351Z}H>p$vzrS-r4{{J;$rgd zEMf`ER%Z@R@dOv}2hx1 z?$jT_-}-;3|5yHn^Ev-t$G`zptLE5buxaC)7v8cDt0L1|Bk~#4c3Xen=r5 zJ{kHyDiDK@06-jqM7YvuIa~inEi|g3khHzBPXC7Wzp?)n`+vjwN3{QM-TwnK!=n?^ R<4vPueUtX@aNqbs{9nejk*5Fv literal 0 HcmV?d00001 diff --git a/data/keymaps/default.info b/data/keymaps/default.info new file mode 100644 index 0000000..124baea --- /dev/null +++ b/data/keymaps/default.info @@ -0,0 +1,2 @@ +kmap=default.kmap +name=Default (US) \ No newline at end of file diff --git a/data/keymaps/default.kmap b/data/keymaps/default.kmap new file mode 100644 index 0000000000000000000000000000000000000000..8bcf143e0859111b04e61b7d14291375789a1dd7 GIT binary patch literal 4385 zcmeI0iC5D~6vpqJ=_Frz+tRWlARr(v>^o27;lAO%uTPLgL>711^j~+9wy&=x6!gH+ zcQiRkGtyy`SGZuK-)&R1)I+`0NBuNFgEU0LG(z3fK_}@edGtm; z$&9>}_p&MH31!em}L;MB~&$Dm0pOV{hR?f=>xhR+AicH8~bcnuK&JB7b z59Ey8lhblduF5El(ck~!_s5jr5`Row%4K|z8!W#?Dat=ajoef~P{=PT%O6#{Tc4LphPN6e^Otz(LbY$ODbRgY`w2PDObfz+$2niNt%=?HD#vUR2V25 zQbqYUsM1uKOkbH8DCGZs{qy@PEQRUs-{Z&sR{b-rEn~j^+4?Mh;ZyuF>`|OQtkoXz zQ!Uj|JsqS58}8qQ#k8`+%J9vn@xP*-{%v6o&uPt=9alBLQOHf(@9>;C;6--uHdqV#i?P4P)aKV`Ka-sZ`}QmE{fc z47o~GZt@Jd%0*fui9#Su2)>J^q?w+XbEd!k&-q6qW1~~!!xJKc*)RTo9|N>t6E)tCBO-|HKFtj~2q|3<%&$mp=X();>AAL=80qGS40 z|I$A(7y+F+rSJ5fzSR+ZrsEjEdaR3J(~-q$6X8z0>Q)lsBq@ zHf6;cYb|W0NrssYN=npV?q(|@V>4)t#5k!CrRN1V2 zH8(bY9QfPOf$y;fUFgOJ^r8=Yu@84+{tJ3dkLX3ctT*+Fp3rl8UVq2hnE!xY(!+XG zkLhtesi*X`{-(cTDDd~_4ZW_1^r{}zvw8-5up8gZ;r}6?Ri#u(R;r~&+GJJWw@dI3 z$!cjYC791|w8(E#|BgSG4?p6k!fJfLE!@UOd|ept*GYU=s(-kDro8@fuIVUb%;}GB z^ZMhL+<6B5eSHu(=+8SY?J};?Rk^IIb~Ucn)%jXueAZX{8sFe6e5J4Qjb44)XMC!l z|Fo-j4f%N$e|=MAeBDa)kLMh^Al|nX^A`8Wq5%%os6{jC;8BUH_*$rc2x^c(5)p_L z6zP0ajvq~EghhQgtU#uCKCXX+`frmC>69+%mLBPqK3OaMLI1?(^$!mmkafkG<@fXT zUw-|U=9@qIa{O48umA9buykcM8Z5=XFlxp8GYfMfxCC1B=f51k31yPgKjd9Dze(r( zuiW-|{t#CZRnGs|!cE-FE!@g&+|C``$z9wS`t@giqUQ@va+ELmn(z6BkNKPv;aWd4 zk>N03@jf5$As_Jx$M`h=w9pQnoZ>s)<6DmK8OJ%m^|}7f@#p&A!HI#hF5#R@y2#PR z{_i7CAN=1Zyz{~TeRwT+>kIzRL6>r6{htN@H`UT;s!Vnn{y!7=+u0GA*077++`wM; zaWD7rZp?py*LZ{%d6_qPg(rB9=fl0R|MLJZ@i33_7?1NLPx16De-Cf)IuG$G5ArO} za1VF0;Qu-PQdJ70CF`F<3*++o7x@>y|4Jju=s&Oi`GL21n;%*5f9@}*f5;mAZ*l#@ z3YF-epT&Q#|GfWmx|Ak2S}}jz9|U9nUznd+Hqfz}wQOcx=!Z(q`agv=OfboaWQxi; l{?8^h(z2e06)f?8hW=lq{ulMXV*f8y|MT@X>81Yv`~zCTk&^%b literal 0 HcmV?d00001 diff --git a/data/keymaps/eng.info b/data/keymaps/eng.info new file mode 100644 index 0000000..a262ef9 --- /dev/null +++ b/data/keymaps/eng.info @@ -0,0 +1,2 @@ +kmap=eng.kmap +name=Dreambox Keyboard English diff --git a/data/keymaps/eng.kmap b/data/keymaps/eng.kmap new file mode 100644 index 0000000000000000000000000000000000000000..15a722f164e16e74b016786d85e82a94ecdda36f GIT binary patch literal 2823 zcmd^>`F9jW6ov1rn(DqaZ}v5-D4>7>vM&-41qIwt7C{M00$~e*Kp>C=n17wBo{R)= z5;-1zN>^8%Is_7JdpLqExRwIrx~R|ey3XsQ z-q#sy$4-2i!WL4Ck4>7bxe+Tlagsz{gAPw4OZt^T4vV+_ae^$PyLkv&&Q%2JW4)TD0e0d;l$WBvFIdi+Lv{3ie3_~R?*G6YOd}Yt{L<6ypDn QLBIXq@B3#8YyJPc0_5grSpWb4 literal 0 HcmV?d00001 diff --git a/data/menu.xml b/data/menu.xml new file mode 100644 index 0000000..0cffe2c --- /dev/null +++ b/data/menu.xml @@ -0,0 +1,86 @@ +

+ + + + self.session.scart.VCRSbChanged(3) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +from Screens.FactoryReset import FactoryReset +def msgClosed(ret): + if ret: + from os import system, _exit + system("rm -R /etc/enigma2") + _exit(0) +self.session.openWithCallback(msgClosed, FactoryReset) + + + + + + + + + 2 + 3 + 1 + 1 + + diff --git a/data/prev.png b/data/prev.png new file mode 100644 index 0000000000000000000000000000000000000000..6a91cb54de9e0383f7eabcd50a50d88d2be79a63 GIT binary patch literal 20163 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 literal 0 HcmV?d00001 diff --git a/data/radio-hd.mvi b/data/radio-hd.mvi new file mode 100644 index 0000000000000000000000000000000000000000..6c6f6aa325fe5a6d3db4023a0df6b40712e92519 GIT binary patch literal 146047 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

a_=>x*IYkNx>e#JiwYv z?6_?qgTbwt^F0pHC*2KOWtdpAbnykEU{1RJC($0!C%rS-a|{#S+5d6_H`>v#AR3z;wE_t^l8uR354!}T-Bz@|{66hA)Shy%E`9nG#{{=hjJPu@2)ciSA z4by)lKHe^Hm-G!y_PRYVm)?18w6WkaoZ@92Q_Q{5Fqp#dVJ}$B9ffre59*a_y#}O@ zAGYM5#-$IE$l>$XfD)o#SQbZ7$4>!e&uWIJHNj=!enyK{jQ*Oql?%1#?gKUQ#~oR+ zK=i%z@fz&~8!zS;Z(Jt^42ku}g1`m$D{jM9-g)6HFM!L#ic6f!h8baSc1xmH% zd-=7DO;qj`a7G6RubX;2=~V9{;IJy4rjM}X2s;wLq%yWkyEL@2tp-WT$JjX|X#BgF zm~;$`7>I4HxhXjuv-#d<;~2@4VA)W_O9!MI9Be@ip&GugVnSV2Xt!P)dBlL@GHYyC zbL|TEzJl&)AA~<_UXxy*95!Aif4L zECElr;Uh$;-cKm~;Dj7L+r+7fbpb`}vC=*C&q_ozAIY|B;=nSIm}JX3^7yfq`X#7n zS}5%(ebnB%UqmSzK%XM1Ma&{b5-J!jhtYxw3Rr|X^Vty8J@qDFC`o0WG_Qv@2|y6q z6FOYzq%GQ5>Q1)|Mu6X(+U5%BBk16Abdy?->Jh6WtI}lCz~k#k z!Y`G!uCEtr^Wlr&d2jJtfs|x60?K(+%XQ+&^`=lSf#MRp7*Jhq@^Q1J7d&U-J{0f= zAhA=H0^N}VMVvqLWhp+*D+}z#a9(_d zFTe+9HoC>#7XwVUP?{?G!1Wu97|+x1Y!j99BBZ`9sS`w&nkdSMja6T54XkoUi9LS{ zgndoq00~+QzW9~yCSIU`%$o#7IGlxG4J@cUEu&Sc8^x>3{i*3zS98W2E*M;rhtWSL zo*TrDQ}|Lhp%D1_vWxV`7N-q@z4ZA3cFJEeiL!z;w9d_Nm!Gg%ZIrC*P(Fo27UaRb zE2UMZ-d7BNF-}bUpFU#GnM}6GmF`~62zOaqf;+szn~5BZykPG&(IQ%FS@}?_=K=|& z3fUqTT*ny@XuZgCe%QX;HSi*cHWupW)Qry+ zmVAE3o+1>VoE<{VEx*f`dC@;DgBCCY%Xlg!&yC{xLh*x}iN>YD-25rlVv-l8Ug^qNTq;@Azo~6b(&1`dI&|m zMfM0xuufUu?N4&(r1~!2YQm%pr>w*zD@k~(WvY`|rS>LRnb6gPqgA7oB3_a~a=gV+ zbUrx8^e;B!-xP^;tIk|FoWsusq$01ng|B}e53KAx?X{kdXSHZHJ@DF5AHNg3AfP*G zF#HjpEGj>%^EK#&HpON^=8vxxnmzk2iM70ea3_8v+we5C>dtqL^9DwWW&;Xzd(SPg zWi7e+QB9MCcB)a~L)-Cg>H~c#!alI-_>;uum2$;&xRE?>s;%WTu7gbXZ_jMwgIHol9s<&Rws`X_Te=Aa#F^(FPI*jrnRo6PzKAbn78LGHKe*XX=oYnW zPip+X`Q*O?JV$RKY#i}$#btxu_EKwg-~EbER|{-aSQ$UvBs|?Y)af!m5%7I)K@jsU zL{`51^@OZ+Og=RkWGa~G%|Es`I{f+f3Ph3HpXWt9 zt1c@F*((xujWNl|3_SkLny&~L`+&c2!rO6=s?v(J8iZ=%et%JQIpb*K0DIwu?M%;m zeN7n6_0&UQ%c(r{F0W*=wvO}U?{kjasBIdGM45|%GHpj>JBAB(7|AEwwhvFKK4=$1 zFpw&fxOQsg&DD>t(%x|!OYe{gF*5%jvfer@s;J!?-V=07_W;t3N+>acG)Ol{cY|~d zC?S$k(xC_{AUQ}#DV+jJ44nquJ>T|u&NepPK8*l()q&!G^kR zIauEV=etF-)2mFcwg#N$5Zdj(;L+jPy$o(XO`RkU=a zhTBhb>%==|1l5RHZ)OEQ^P6AXI#suQc~!9dviK)ja^m(sQxJ7K^c@>qpyBf{!=(q| zl~b4c;AxX{Ybc@b0n9Su@abyKpXv+0T_nsk&Zz#{IllV!sI#M!5!|7vGs7 zENF2|ApBV5#_?Me*&?Xwy!~iUz7=(HjzHl7WX~sxsjvNLJ_duzt`HdzSo4${v(`P6 zF*3z}n6CWJjPxb19s11N*0jCk$ri@{ZR7!n{!hWPWb(O6{qC-Td7MF1d1-~)HU|Z$ zuqs`794`p+o(e$wH=E>eMtU>dKEN|SFR*Zgef&KH=mO?ow|6I?O#D?(nqCRS9JLpi zYh-gWSoBKt^?k8y#A4-=33%u_>VDEI17Tt91C9E`* zm*Jrq({qJ~Jp)4@dun(^w2D;0Zl7ca@EN=9_H}2F|4{UpW{d0tP?QnBfHlg9BNRaq z;XD$wrQ>d*dT~VignN+1j{7Q}Vy-H4QkN*dhD^rlWIc+G8Ni1~+@MGwN`UZ)9H4Sg zGJKiA>w5I(OuvjW>l$8T_{&v^-H_$kl)0=Ds7@K>X}UBIY4< z;rri?bIsPV9!0Pvyh4_FD#m>8S8ZvkpRTuMXp&Mn!feywWD_TV(QZ*X0FsfnEg|Lv z^LvMt`@sf=W8~OPxE+cj)C8T#l~al%t_!ewj?6;nY442_bJ1B_yB81teMolH3CE3; zxayRKp!h+7GSAz-!AlC)A`c-&nphDnz>2W*E`;$dc?SYIrU_VzK%&qfD|m?p>Um9x z!sP)EE;vh3FsmF$Q6Uyd{f|H}6G?XT5bylqf9vG?S7%}r9W4}}1mqz^MO*`h1np;w zc5u1xaMlg@;vsww7bvGhQnXqr0M-BQkttf(39~u4+!1gWK86nm(Mq=)&)3L1+{lp{ zl*mWGG$j&&0z^E=+OLZuFCxZpU5aZKWiea72(0jPi&C*UEGh3950}_b(+JdSE>s+( zgA4T#0IU|@)po$E08fE^AQ%V$b&C$|30sU)fPoipMZHRxgHvWq0gfm(d_@7kndvzf zRtgaL-GRbElAu_1i%wrq@9cEvyg3`r^uEm;&ssXWaC_r7K?h8$Fwz5fhG}c+qh@Z> z8*h|NU&vgP!G!r4jVJ7R3eK!;Y8>@b{v_G=+%6()_CkacjtTqyEFH~}-CehWp*A9#{h@JKv5H=2B1b(ue;mfYg_PRFo7w9O(T zh}`xhRSlh{9XS!LfpZ`35jH(fck)pkfb{-V($ACvA;`1h?6? z6B`V?>z#2$8UwE>vEYW?Znc2Xar1Cu8(IeeePq=Vlw2Ng$M<;n?YWz3+Pr`qfaa808idRA(Eq+PpN_&`-fud_+&HIolYZvZB8hQq{;M8 z`}B6TKz@`9uh;!}?qP-gG`_FXPEsvYfcpKQ&fBCxDW1D8hRUHI#cTHge%h~sRyf9Tn3!|L>_ znXhFiIOwf%2StXNHXG^*xiqM7+q`{?nq4zUP7H3hj@y8UftW}FDCk1;P`BLvX2Z^# ziouOaH^FZ@Z?;MlX)n0esNbkVx?873qrt1&+- zLob}7*FZ^A{RhismdD?F!__O*0QzPkcn1#X8pr^9nKhUf2jRHddfV5xg*ez@kvlqF zt*?t0@3*JNtpl|a=O=**OD1={r0@;BUO{Ab0Z@e3i2NVnYy`;uKW&`igvn}@|YFIgM8}iPUz9h#%@ogK&!65 z^PTXK%c!|H_zL~J8o>L)UC?B`Fx0EHxYh%I!7%a4rcAsqGg~$JzS2j5o7L!1V~!9Z z5cEFxobp2{&%0t;YinNKy$c=Ul^OJ1(2jZjh1GFU`2@)8^&1B|*l8BlTaoQA}VuJ#eB~aS){Sv*eN&HQE9b9bz zdu5g~uh{+!Hyz!NRFoJ8mGMXc{&Y93UX^QBg2Cc5+5vV-S2t8NR#|)e83k^P1S7fe zv}~4c@#?tg{EUYe#Gv?Y0slUDm_xfCbe1&<;oeCcjUdEnobA{t;Jfe$+9N>Vy+n54 zFFVM;vG`G98G~%h_WRmjE01RJH*<^r+1p(h!t#eMIiK+^fAT{5^UlolpXN<<_C#s+ zkv!=ojP5W@=8ZsNZ~s1~Ao9*YR{G)cPZC+f0g$FNcLH*Ce9nndZpj_+W?#yxd+6G^ z7fDhHPxV2YnL&^N>D#^H9KXume#sd@9=G@mvikz2BUInjYr=F|@9e=gY5|??MV40b z(2Kr1huwlF$X^iY47=R5pJw4nC9F=D0f9!ci7-YUe_ba6YQYR!YiePe`8W!6R`z4A zt;{urKQW3*nK=gOF?iz4oVEI_cKT>Ik`>)h5^d>TANFHtq238TZH&VZbXGjd_j7bO zO3J$y*HPABuJ0Ws5=TJn_II@F`z5JCqGv*;_Xh<) z9_j8}6ZAaKVnw09y6B4QCPvrJH5#pdXpNr=Gn+_xR%v07Uh|5r*_xBJj#4;*t5@1-jG@Cb4}fSkfj?; z&F=x}?fJ!ty0?)#`7rs1mMr<4nw-6aSr!QQ-p=E#4n3&VrQe>J2i~vk*fBh3SUMeG z3J`g3Cwxzh%x8un&diu^H*|RD8SFBtc`b5tY5u7oAlDTaHGLJp#VqgWERw zK0cDPG)SFVA-9~^pYwaSR5y!os z8O2hrIw^t`R3(?@UbiE5MF+MR)luq2!8kvei>lVDz$8?7b8k0aL8*sRz?RQF`RTx? zYIxfB(JSee{7EE-8xQu$zi?SD$Zz4d82eaN*;SDoY&1!AlTI5C`^PfLnBBj(Qb}`Y zzT6P-`j>s$p_Vtd2G3T2zSDv z=GTL)Ibks|!+Z_KKSLgWn>JRHC~LuyZQ6OJw$l_~f2CVUn6s+(gEbQ!ny^CKW^=!D zuFa-}XSTQr_6N~j5%N&0Dg>oCKRTSX|8`b?im5b7iQZX9kcbI(G8JnJN=e4+4(X1n z5-~d~{~Wun`Ww9KJ(Wlyn`or1-#$$zfIWY6Fy<)Xh?hyp?s^bU5C0=8r7P zT(lTEc6+t#c%Hbm^syBG2qk%T{}V3`4{?Wbv&Y|xWYwq^8r>G%Hxu7bmRUTp0kk6! zGEc=j@b~M?!P~JLaT6HBD5}2M{JKY;(q?#Gf8E!uaPV=p$okx)%YS;Ed>R8f{3M?* z_*WZ}KiY76Q>V1yERw6BG?{3)(ULbeP48o3k8&v(By>&0Hy7?Sn^;I8`DOmBbnWAV zt^+FiDzX$I#h&71hh(stLRv(@S;f>1rFnDgy!ESJk7N?ILl(xI+PaY$R<$Z z&VcXMQs*k{u}5ZmCHKbZcU%4fs7{c2G;o+tde=H|##Y0XZafT<(z69px(~fLtOm9t z4{|eU?;Z)JQB+dbHGzT+gLxSet+Le58WlP(#ys1*F z9iWR9aW}DNH)?SyWa7ho`qLp&m>cm}Ijx*M_>0hU>$=-|?{s7vW?s`SGpOaP;QSwb^J?G#9W*P>8|RJ{AHo5&@)wp3ReFR{&TYQv-R#J<*y z%~3obQ^@%BWMZnIcBV&L0bBhDP}tl!cjxh|Ok(MrxOcVmJ%iFZ?H*5F1h)a@ML8pik-s@*5H4w!w&%F#_K3IOY z$v8CpSu{Cc@i6m2f>+;0t0Q|NOj`^bh)>JoN+_{vR zf3cc$o=Oz*IYKHqTz)89P_l&!FGUvvbfQT<)>-w{R#2DpfuFQ}H#F zVcC|>qpxucounP3lE~)MzyjS!OKqvHUWC1F&XM}iSK(6uCVRpmUk&k|-|^Vej#9WM zZA0^;pNGVFFa4gG3JV=hy?)P}^EP1D!QcC%7#ZRW>p1Cc3M6rh`KT~sCr~b$2wXQT z5hr?tcXV!}IVitp^2p!qnd0l(b_=>IKbHB_*ZL(4g*(i_@y3Fzmc#2^t}6lgiFkC+ zqn=u4JFf0Bg)aJRdwl4O&)9hOy|Mkb;#;1TQNoSTGb)KbYn?B22xvKUH%0y`1$mVs zf3tJl1|f%ZFhq&qdGAi&1|rUGq3D-hU~}^%Smz7?>m%Tuhd?eW`bIvyi&<%Oh-PoC zh&^%fh7!1i1#$INZkek~z%!7lG*{#;d4I`Ax24!Xq=r>oS(0@dcD8B*hA6c`65@|-ct!5r~s_+^dK{ zVTI6Ygt9yW5#qT=E=LSmyh=I?-UFt|flspE4jxp|1$2@p0H?Kr<1Q!zoEN^!Vm;?{ zi12bK61Ru|MRZd*hP!B4-Dv(6@5(XjK3_}T=?Ud4bv~KV++3J_;y4`80u1_KB5(v8 zg#!?GFkyqJ5JpJ6_U~}5M$$7XV0SS|Y`b;!op-MUo7`gCeYA#zeFz8|AWB6>UI>4g zazqf<-TZD|*2i#5uU4jULfyI;#AQ(8>|=Nlo}ND3?1g%-Z~6-RC!X*91xbNn;e)jp zp>BFok3uV)h^2=RZM-!f?jxg?lH)+?Qy`!u=xqB8*9xa<#XHm6F4JC7s9=$bT-FXK zS3!iHlS7bD0Jj5w?p$iM8V}6L0i5|GywrQr-DSBC7gMXJ0gkB0Of}3INGS_<98v8%ehT;0&o$MRj=z| zPab?=79TL$0+9G%NMWw`gunRPZLUG4Q}C=vZWdRBu20JdPyP@tX|*%?IDmR?UxVa# z9x#qU0X+Z#zMun!z}FpRz!Z3{)q!IddI>Py_ip)dlHb1e#9Nm+`_+?k-O|_Vm2wDz zmK8wuQklYn5HlFJMEw$wqRls_{s3{L(9!kCt}mN&m+io@c`$~%MCK{y;T&{-^S8`% zfF3{aGd4g4VtJ25v8f=4Xho(Kfx^`*LS6vK3ltKjjZ;L_n9bVsfchG6;#h*bhK+g$ z{`HYgJX-z3QLrE&N6al3x6|^+SE_OjP8N$LfCDb21=0W6_uA43aQtJ-AmlOvSrU)eVQGLp}qvhdo_~MagO%!W$6xnn%lzST*NB|ONz&u~$<`NP*x@m>N?Lgr!5uk1Xvb2Y- ze%li_t*LT_R)lvS@9lV4u|@P1MuZiXe#(3CPQAwLI}}g^*AS3{la0X1dI2>c0rIN| zeuMQq9rd{I0>vbeBlshh-)6ycKL=)J>Lhilm>eTEJ%bWv*T#K>#J&Awb>1zD=hLsk z?m06EYOO>L?a|9`Tt5I_`^3hE+z)yab!GXOd9KmsV zi`ai^R6pbwIu$S&ih_8>qS%2);GaU-*YhdI$KQodKp4jA_6_xyxskthl^mgjRNEUH zGNM1`6x;?96Gxt3`JUd+obPqr@K}544C)-n|6p%affi4Pr`%7u&iiq-&tf&Wo-_fllmeu2#?|H=U7mj=B$uF{)GndF0e~BPZB~l{+#!i5| z4MhOlLdl$pUI(b;qj-8{)~xUfpGbxiR3YSYPTMi8sxyn8^_Xg-d&7q!$YTT&-hNIM z_lR=p2r>=p6p2$FO)m2pD7a9f)hJgx;%$TihEV_=0i0|Y;H6On>;ToBO&zUM4)4Ro zkY?carSy}h952xr^k*ZTkxbK95>LrtCLNJya~7Xwfma}~a44JFW2;{} zB3s_dQwt)^hLYN$+Lq&>)kCgM%aW zPR=6u(J?sn`nPwWNC=`DPny<=4aEa3=(yFsx$~&pJ;i9EN{pg;1Eoij|J`#pRWJW9 zBM$<$hk%rUxo=4XRHVIq4AS?-w;3ccB1k(JTG*m+j<=s{Ihva1hJJgQ_Ox`$JKLi% zUNTevNU9z%OjAp>v9PFn>YmB~+#=Y5R2R!FVtw8T$v-&f ze__{1)WBOu$vH$%-8?mrxMwF-s7AjclhN#iL-HInK6@A$E?82VhFh0L{V`f;vxth9 ztp#KpEr|$;qa^Wx{q$^;{y5;i{e2wJ7oG78mRmFSOh8hwUXs*h`{3=J)Cx&byU5{4 z(dOC|TR%a0N(3o6>?b-L*po`LLxuRFG*DrjjgKB$N4l3}BhhM12^X(b>}wz0Hv9&) zyDgzc*&EYnBKna_3%7d31nG+)<$h+1?C8S`Xz9jCXp>S$H*{8PiltGJpaDt?TI z9p5bPkor(OoW~~~8#z2tpGRDHvsmfvSi;BHQIQv@9AF8G)WrH8Dw^%bJ-~JCml$<)t(Y4z}EpM zln3q=W#3e;{PIFzwMv0IfEbs25j)_71A=}=8k^2j$YHc|>Z2`2&2;?F4&jOm^ZmvL2g#68wWAcp?b&i6Ls(6`ng?Z z`lrQD>~%?q4zW|vD%1Nh7(#19iJDn#eKTkM#~kq|!Sb8=QI`QYtXi9P@7YT*It?L* zNCpb*{GmHzv+z=6uiqM|kXpa8cRFpF8ydwZ$|BD_wYolIK-9mzJJ#yowLIsWTxad` z&f#6p6a*h6(OwtXzXBu>*JqmX1!m994;yA{WbOaf3)8dUe00EeH9FXxoB$zPVTz>K ztIgB+8Xq2iAybPe! ztcT9mJva$Q5lRB@jPTqXr5S}HaK7y^%!9nV`UJ(x8Pe#_FB*RzK={&{5VHvV+8~}> zV3a6ix{qyy<6uWBGzF?GbGA9xS0p*&FSQO3a{hd?`r`O9j$*d6c2B_4+}s!i-oqSM z(uh7?&v3Y&t^tE<2@vPaqO7Mt*e+GI0`}t<*M>g^kl{4*vxHSEZ0Dm4PKohPZ*A~; zJzLZz9-UqVCIwCGt~NWwZA^kHdW{0T>4%IT$$?%>#KHH2Ac`u2Fr*^zCg@IqoOaEf zJAwutkC6{=N<^vR!Ay4{baVQ#8q0^PDHN-^{%7u)%OK;Vo{7mq4CliWhph}ThNle@ z)|={Tj*Ph(6xt~`60@&Thielv^`klKXc&nGq$Ne0o49Kz*IrniJDP)mu+7#H2Q<3T zc2NVoL2VvF_HOh~c=SQjOV^W^93EcR4gM%r-((#oXHx_6+|0M3?yO`0`Qg_Kg)Q)_ z4%CHEzgPciA!f0Iyh!qIclzg#NZ|40H_RcO!r>P0c3BUD@{-|z$*6>Vud`TqPNG3Ts8$Ex zkD?#}NnRcHiUz<6#&X@K;!&!E9^dVO9uwG1RxVXf1s!2m=`hnd-6b}fv?JF?5G4M!mUZlG5XJ$ zxctso>GAYdfB>GJ zazo8vkL90RS-S1F(=oKVW96wt7Vd2!N9;bp`N{b96lRKyod~0j!ZW!IM-Xl3Iftn= z8L=h?8WUsKtgI(vY0_yJw0n+Mz~g?X@MR?3GWCt6u~=-F1!bgG5!Fuicx3d6joiF8%huN%-}3h#aViC9ZY9d`>h_zYcFOr9;6ffe zrguIiZ~yz8RN(%IwygLx>tpBj(8_c^2J^`Ka~DCEm&^Iar6Yw%FB1B#&G)}RO$gS(mtFdzqkJN9NARa*0E&PG2-~sALO^!nVA4zQsr?;R=D|`U zs;3cDGmHZAW8xhziN@%O6XYqCy?WP?wVCQL1;&;v&)!k_i|HEcR@?PxgMrW9xu9?_ zQ7)~W{a>yfhaFYgfIF64J1X@R4epVGAyq^`;O&>`GDb{FTNaC-3?Xrrlc57Z1e>y> zxJHPbC{dbBAf_qcbIibx_UF?p{>DDBly`3Hyxy(@8(`O2WYhZ-|gO+3}y&HYrBs)4`knEXS@ z1x3P*uMo1E6ZtgJ06jSqTEFBkqeaz3IQ#Mbl1Vox-f)m9s=XVe7wI89=#sJ7QzdRL zrHb=C(Q|*7{YBmpFMxA9{5j7XLGC#i%}ofkoYX6m7}t}prnNjhTBe`U`3j%%h~@v9 zZ35(6+mhR#JXMLc`DT=AG5*;slI$j6e;e&_*fqV0WI42UH(`0OrM!|t5^X^x9C&bx z-`Sts!b^6zKuf6W;GOB@lK0Qq$ZzdR@0S@Yvxd9RYpB zMC}3;XKSWyrYBj)xzVkG3|oDnvzmqMcbKGNKaU6Y@HcJ# z>4|UV?J$l_lk7!8h}-jB+hO06mIM>TkWp=DGlguc%p7QWvuK*L^DQ8yAS=t9Y|zH_ z!%ZQ-V`Ov^zIIgnKBL(~%Gb&xDp>VsldR;R)KT_5O+SRUNOmj8CzSfjw)520FZUL| z`tH(n@hf8%9hIE>Uon+xyj3@h$EV37yaNw!?R@OE>$o%Wu~Kt4R#-yJYVcEbqH?=_ zg5uvs0U1o1U~W$bp+#GmG0Tpfxc&D7{~w><3V)-Ixc)>G9bNxt_@zF(Hf>|s+-T!y zmW-h6@xe_wDTe6|mUjQW^1cUSO!O(wh*@O@lK_N^!x`<^>b zdW-meusp_*JgTA;(N$^RSw;m@ctt+D95yato*LJzqYbU`DNp|Rjvv)or5i9x{%qZs zn%l?BOoB!9177XALst}Na~qxD8DPG@cv)B&JF&jHq;&X183VzGI*0F5J?kM45py~% zm}$U_HTr%%v_5ZrkmcdQq+i-uTY*1UXIh3sQsiZXx~weMJ50e#KBpM`iCSI7G%keO zcgO?J?0`AGjSOkDgc5?WI%edN7vvvLQF<%% zW7F5u{lWqVv!t-{#;5-G|ISwWp3!W!l9Xv-tdGGQ)%Dxo=bNIw_ile0>ldv!rB(TMOO(di-cj~M`SZ&T_!uN;~W`+gBs2jP9Ot>i6eLU3}PQiXci#O{<(CTp^f zdh*{qpo~rKWt!h;_d9+1&nJO7zOtU_b=q#Gq6g_-28mTX2d(NzvcE3B_m@cOEy=2{ zJ1v#l4!CFbWyx-NuA%tIJ+;Rau`OACH8v05tSZXp!*sOqdXaBk=t6E==o6sji#hG^ z_uO_o&6{>Y%Ul~K?1u-K)nw@9*~>KDkj$B?c9psu%NT zHXg4$UM+=tUX`>q)SN$I&Dq@OYLpN?ubL|cB>Qia`vnOq16^ltv^LDnpzin-3 zc!ZP$Lo^iaLiR^PN`?OB`)h_HFZ4m^EjzESl3U4aEzVZgr=2`l4<>2_ryDe2&f=6& zuJ^(1H&botfRUW+di*dt0nTS1lRs)M*~#4(yb~B4cgW9c^NDYxYn|!Mx~gHM!fdsy zHpAU7%%v-xO=uHkOQr3T<+&FD<_EtdKzg!r8>>R;zo&Zl%HrL?TO=H=u{(~B^$4#wV zp6?0n(7aGmf%w~(@@lTfr%46;U%+q03nb6xi9fZ*8od13-Hwy4pGUu^8>NmAgQ}Ua z@<%OP$?3bRbXy`%b9^8k%yzCsNnBDqs(}NF z06XA?kKIzd^&_ef$@w&d`|21%1&Q9(JQr|`Zu|%b3;%D4Z{!eiAO+IFfvurZHzeGM z629?f>Bq`IMPNh=xd+px^@)GL6lMp=UqrBDo2b;uk#I0~hlfnQS7(L+F0eyyR2C}8A;jSG%a~*T{}i|SSNxlfU?4{he*5W9pXn1tYE(S1a-#7onAU%akKIwc1x_`VfEo#UuU)E^G1Zpr`nYz?iGl{g=UG|L<@i|L?E+ z7n#9{s;Wbmr7CLwcYad1L=2BRQ20oA$N!8G3a|l`zwAjn#1Q$(0N6gE0P^!~d%v{DI?t z>i5g94Wa_)UlN@E-X1)O|CGNCJk@58_}>uv-_>*MwMxW>Il2`n|4#$^!;I7aYP<#9 zM zePOTH;UAiQnIf?T;!ek#zqy!GHSoyB*)xNX;`4+-UzED#xJ`7uVM_5P&igAOh&YDlFSu z9^-F7g>U@w&{K<*piSg%uxICZ4jK#&JS&_IG86+K#D0Af1(2z%oUgB83!)(jqTk)g zLO##Zuk&x4sd=)D*%YCwBW6g zYDW6ZYw&7X57ocxz$5ugYF55cl|H5WhLg93i{C@jBh&P!Znm@L3sE#zqXF;7(tDHd zKBA!R}2jlr`wkRG%q!kxx8V8w+wZa2=r<%)7fsivU6g@y0aX17b=D+N*MIrvfT%E>2 z{a+!1BI+n7NDA1D^grl6>h<&IE|uVs+Qys9W12d!cRNx^sRUi5fYts7z%KFP!v21q zITFG%owooAwdAc5cuYOq3|d{Yr19NsLS|vVC^7_ZV4yGUK}!sAt%r9CSuur97Q+s3 zxr^j64Ird7n6V0t^NHevxcjUQQ-1B))Dx>CJ+bj*x6MTB!mJJMsv#{iMx|-CYZo}= z8Nn@x#;PLkKg;b6NlLlnxvxolZBw0JrN?}YA+kh)x+&t`x|#3^@5hQ?g&HD?MF7Xa za_bHILEL=9J0P^y1~=t2DzqS}9*Uo^YOCfR2$VHG=sMq#zjEWTHQghW@}DH~i;tzW z#sJC`b$aWZ2B51l&@>8UW7S6jIR;ZGuqT`jpj87JSW@LXP3Jy5Q+MJ((a+%BT|pU* z-qKItKS|fxrN{vKX4)Yn`Mh6*pYP0_Q8C*i@ryb>W3-k` zkQC(hAouc$Qh{LXbu_;tkUhE--ACW~t$)KD!dzQ4J@N;Ls1kuPW}HEoM2;ak`!PM~ z3t33Q^P#pZJ7Ro~w#g|50?P~QWFXOcIl7V2ioSPLwYH1eV-hHxAE&@o2Ti)v_?_4K zG~RZ*c(^bvnv-Mar&1u9T;Gc%1zL$_*!kWV2S1|&(D)Ed;qf16I#mJ-V;!n!+TGHiw{qD?IT z-=;V~!n**o71u}qsRzy_XK5Syoc1=m>>0{++|!~r^S%+)H$5Y0jz;p)%ofpm<7&TQ zN(K?kFV#B>>q#nyBx}`)f03Ad`Nf~t2q>1@?pceoIR!*Jte{M<#Nbo^;LD|K)rZx# zs^@P?VmoY`9bBvzGA62D ze2X#xyGvGZa{Q@t?ppmE33HhKZNRv2<|tK*!)C<$=X3M`4tj@5eGS>1IRs&*lk1`Z z$tgG8GE132xYHF;C>Mm=hDF~2W&eR@=C?uH!rM?|>i5200%5Tvvf>qK`L7m8K0vj{khd*Ay z+iX@?LZQ}6dbVIP%fqKgL%vFH^qH;RZpB0+EPU+3b? z-^hOy&(T*p@_u`~-id#tK9H%=G0O~{tt>EK&mf?oC5p>5HgQ*Q9c1k}Oy^*a%n^Z? zX-xdqA=G^%&O3mMDcTtO%d)*bc?%$JA4zziEbWdT&om=&$3C6C-#(r9xl1(q>B)BO z>Y-0ZHs3%$qXrp;CA5rY_LNvIrT<(Jvb$Z&W+mq;Q>F&R{QN8BfAEL=57a2(e$qrG zgi^1z=^S(#hy!tVB~-IDcMUdqlRqN6{^taj!*-ae2KRJ(kJ z1Ans5MZ$M4f9NxXm3`#i@+8*q!@VoFa8GHFb}9oA=3p}*4T~$M6D^-vyP9je75z14 zkjTZklp2Y#MpFS{ZpD&+9rre$-Fxtr)#1UlCcdHrd_(Oc)iHF)ESih&?< zfB}3fLK?>2UxGw#6uFu_BoYp){_0k4nWfeHi63T{O}FdALP~4K;ONLmkSdyRe>|7y zK`p58A8lW$QEZ=bZAQYVG`k}aJIioXWa~}_L2TX(@Dy)@e9&&b2F@mu(A-ce9;ZLP z7WMt+d(WQQ4)7EWM;DpdJ3c)O1v8Q$Exq{7Os%^uO~Yxw??Zm98`n+JSk#hv>^%~V z_uF&7H_ip{XG6h#mPtX6?$r|~gA7McYdlag77-$L+jd2bR73__dF?+tpou0neD|<& zis4?evMe4DKjY9*{Vb-z-3zV%ZsrZY5;}9HLgu5>WC#g{J_qfOW^{0tu%}*;m53#MW)F$T6KqX^+ zHB9xS`Q12S0Dul=%{KZ8oMo7GUQ>J_3aRyET5Vd*3$62YB9#z$lihwZx*6L%yW?wq zDs?KP=abAO{ZaVO>bg3SdjvFG@zB!?8GG5*LQLJ!_|;#PW|PuddO44;sAuFieh2mM zhYzqN_UIU8ExVLkNJe+(A>E&o(F!p!g^U)#RIeCqCUxRPvcqh|qpllPROaSm(z7tR zz1dnOXUSSp4i$U`CT2VZca2{Jy)Y7ggm&0*8y>WBtNdLHm=%m`0XQGSRPMfTCu%iZ zL$F~}i(Qdqad>p_pcDg5AgiC$rSDBwg|4YyhhnK%*uze7eNINgXozG(^UX@5_*d3m zq28wRme-e0wqKu`qiGRTqSbQzO}!h>&4+W-`341wH7Aj0Y&=`Cm+?-Vtz?86GX{EM;ZXBHOH`;+!8kxk=mC>JWVT7N&ZF#(?P0g z$MMXecZ9NNT$()N!fpdCNRn{h4+9tw_yJ-HFtwwuUXp>L^Fw+E?_AdBYMJiZ_tfq1HSGqZU2HOs zS_}`9jwj6Vb*-o0wf7i9$phBRC^PxRqqTy|xOgBK@}yz__MBU4!I$y16$0x7>55@1 z8RF)9{hVA8(0dHzZ48Q>)fc}Hm6vhqncwAdQE7kU0i< zi>jQlyD@~GiC^eE5OD3NhLmzbhI6}GrS~%Bdc-?O`toLl*=TgxTcRfSef zmiy^`^pQ#{sB@oko092w+!a^H>!>LkF!K+73fNB_+=pu8cxpAMb4_`elD}7bb=y;R zz`C}tl*KPz(j`*U$hA>W<-<#Xav8$fS7s+iFHod))5${!4@XJv#YSb{nJ*t3Kfd#& zrl8y_l}Ah9Lw0*b1qU`aJY<8KJ%)#)>6_46f*{Xr)Fat$nJMD!j{f9a#AN|Upq98_+oitNG-~r zyRdY%89PXp{!u`kz@X0m?^x@Ui++uLvKL(RN@g^gmVez(NH@2_3Nj6OADjN19Iq$m z?GK{D$EdoM)!EFU zh6Epr0bMyQCkgakD_lnl#*`*b;)TObTJ#e88sG8=asH6pM%?4;}X*#HUz&L&@u=O#f_gmU|OJMBNxqPF2hkh3`MUylj_n#+*A zgOE>fHORx{jJv?4?CADj(_9=fPw?Hlrq7Gt8E)VNn~AG=y)CbvqSbC%`qjJES_HBL zdCt{5k+8UbY-kP24t;2~CJ-~6e*$b^|279O_9g5#<0H7)vJ%XA!Dma2Pw!s@R&jq5 zLVI+hX|mK1(F|CS7bMJ^9@t z<-77#TsL7xMbipai)jA^E0a#1%)N)vV|8#Je$~xNBk-1=(Q;xg$(c#(%h^dpU*qvl zU2Y@hg{|)N{J}F5PP&IpOdm3uSxMPZoVSE6_9tJ>a)n{@UHj(uf-QyAf^$;_&pw+p zydP<@Br+GG&orZkDeJ{_#fWWYH+A#g{ouO(s<`aY8*4-P_l}1904++EcCfv0DuDC# z)pJsdR^_c3@Wt?qZ}83ddo#jHD~RWw3d{=c>h{nk$6lxRLRZ*@@4ObDd`Pu~gR`M7 zrV$HBFC_uL6t0^^ec}oc1UGPi_3#I2OF*h8Rpu~SKY5wFud-`%8W=#`jtCv7HIITj zUJ#W|)QNVL`Fu#XF-S~)?7tyg(3j!Py(U@z!e>CNSpTWvFPhWUlTm>N8wYan0;UFs zLELU3vhsNV2h6y(YkjVP7ACEagj5CGePASHZ1Bupsu>Y^(Y|w|vUng7B)Wek{jBG> zQ~D!2%9LL-jmGHPU`&+>r>EM!oxJeSIUsq)J7d0!f~P~SPNF<-?PpBJUDoXQl@4K2 z)m}Abg}Zw}1ZH@Sdr^0XzNdpy{+GY4_!Gz1DnHE{s5|jhm1BPffmNxy6OauXP@bFrl@Sv=gp9@3>ubK`9 z4QYOW$)2!7EZ|+mas2u!;{PM*EW@H`A1*$-bc1xKNP|dAEL{>0B`LKa2ur8bf*?qD zOGu}5ODWx;bV^HybiCvL{RVr%)K1)U?sI;JAoXs}ytypnDgD1ow-pGz&-rkdla2~x zKQNF2xYS<&UrYvZOsQGG-vT2RhTBPoq`CGk0Xk8}_^={nbvhZvBkk6oY%P@F$1B>p zc^~~qtVyo(EE8sNnYvgQB_%2Lq(+30rO8kq=MeOFKOza{Isq!~9yKIe&B%=>f z@t3GApc4E9bngL@myJ+9=miag7o3HYc#S<*M&0yp12_Skw{wIdNWkwA5CO`eV=OR~ z6{h!W%t$KsvMoEehvjZ0l??;LV}1u^>2iCa@t_{&n*XLQb1jxg>L`rbh)7+@G+id1 zTUi5!mE|Pu+(0}y8@ySqmv4j>0b^f18Pvse+(P0$EI%G&(6}h>vG%nF;BWOwZVgun zK8;|r8KUMxso|@_K;p~eFyW-t(kFP;npoIZNg8l#MhNNMFjB7k7a%p_OkMJ{aXFw9 zM~vA;j(kFp+Y=yDS8I*8${{o6Ifw!S(nwl>jL5N(#aw~M)J75P@Bt(?bn%5cGJRER z9R}l%Ke=$e)~}v6{7=5XfT>(nErNs0m*)j}N!t)#&G&*&2)Q!G^kjBLty1CN(eKi~ zr#FnJ&L$XP@W03$bal;K$`J(tYX)iR_E=GKC<_XD)_9|??*C%`3RPR$VEH82S7`ud z``Jgpj}we46Z>8D2VE^(-H44!YbMis4QGj|bJCYyMOmW%*xHe3DSNGgz%yY7l``pr z@j+J;6?ny`kqYh>PJd)h$QeTr%4#~q4BhPi(QLlBTeruIcl`{=W3ZSKk_vPpu{v(X z)%fBUra_I1h5C8~l|dGj5Ts5}fw#PXec+rpV7HAMh0g@F6TR@g_qF5K-@?tYgs@ux zlLfVk3J}l#M(+4YvN1e|Bvx7gGJ?8t{|vx28WHK1c|vU{*alKbxQ`c}GUnMV$k~)3 zaQ>XwJVnwDs#GZdr8WTpI9~zIwB^%1y#XC8?Z zUqe90<79R12ST9!8b;um4}_dLz=)=J`pL9)tLcT_s|tBNO^hD}>qh^koQMtWiL{Y< zEhMYLbPM#2L>M2JJB*ac zrXph5WHwb1u)tI)IeT>hf(sS@Y@?FU7=hr)Hv7jKa<@p1N-&QZ34@Rg$|Pxb)x)rY ze4kvMTGk1jo`i_d{rIPKS*;RpjiGSq3tS0lrY-@pkByEjTzBG7 zjye%kOY^_gbce@)?bn#DAG1(H2&H^Vxr=IvV@QqRNVBcdeCJjrBwDl+l8ZWr0p757 z^r9s7zQG8Hxp5}lhh*yVbC|f+%UrJtPj?yKWUXROk}5<}2!d6>jmXq7a2&n#K3`n$ zpYG6-Dp2-;L*>^W?9By+|I(d|Wmb(9Uh8wyC$gV~q?3kFE6|{3j+DkYv?X|03CA{{mUv4cJSyAT2Gg)jb8l^wi4 zI*E3Zw}9xF*cKg1YS7mwY}9iy@Hz$`z3YSOi}S@Stx&uR>?Y5 z@>H_R-m+$-viLGzD$1bKL|lyl7+S@xF?d^SM)$+UTTQ+xRl%Qu1u4Gm8zP;Z!g0Ns zrB%VTsOt)k6d4ZS@fc4_fsc0w4N88t)e?%DXBK!Z@XWL_n$RVimzwVDbF|2E8{qY{Vhd`I)J@4V=B_ucWU!N$wDDi}V+Mv99GRfF{$cW6vOz3e>uwvhR-;ceqr1nEeQ#O7Qv z$2bkxoB8D$ac8>=*F3OyE){Um4Q4zz=j&+L4}3F&@Cs(Dcwf?{F-j+Feh?OqvPxb9 z$HR(H&68ElGlIXtOyB#>N&gm_D5?EE5j7E44a?bD(A+&?up72@rZ6?N?JI7o^WM23 zFzZpXjLF;ORXv79;%tpTl$ViuPgUWe&sW;5mS9S*s?yqN-7GReuX$%Wh2^E96q!lDZvUryYiuM;Y+l<^HG{`y59G2Xe*A?4KaKfI$7lB*RfX#fhGyUXP^CMyTHYje zU2aINOOWWPPmVQC<=vdE7*d1XaJ_&M?9Qu57VPFGAE6kh zstjpND0)`n15(Mr&RX7Ht48LJW;3^{W(SpE12JYs@Azk;jOH2D>%`>(j#gM#83Pl* zSoU4Sh$I!@qXeeB4JV#N95NUG^w~1p)~?W;V{Ay|H?cp-v&FH}aMWO9PN0uPGg*F? z4*dSzekz4I!$#d_+>mm|j@+xZ$(a!FINi@q;3k z9*Z-s=?8%+&rdg1bTudpyJ~us=3PdW78XkJ`mmP--cVjO!?>w&)g7Kvj^I~B@z~eO za2Z&I;+Ouyv7Ib6HNs+yYEy-ugrq1;PrqV%{qEyY-9jd|>0rj>&t}+<$&bGi7q6xw z)9*%RCI4l;$y_G)wAFY@@UZEg*HUaCgdN|^bAJAJN;Y7ZU4v%u684z!gF3#+GRw#{ z`z+lMwEwDGL&Q9nEq8Wwi;T47i)oV=2>C4P$HsA3!w(}hB(+}SgvER7@X}`|qQ>0E z3z5|+0EWE$gOv5cu2GQg^z(SR2%BFZ^J3u2G1`T#pVtI$ zQOh0wP^9Aw5sD+CbEgu5jgfE`SL)cqc|Mz%gLnTD!y_ixxXp1B^_#wi^O7!^^y z@Ql@LnitYJc|&verzLcJu2-i*UtM zZ$}~|F8EW;pwQF!(!{I^=67?Aa9c|DeUN-NCk(d^ski@GZzqx9(LFmrTG~A~Q1P}# zv@vjhyN1{x7t|#aGQeV0q0k0+@2s8C!3@;jYsb`KfP2~G`}MH@#>dHmJgQ{8cSVF5 zL=%eTT&>hc00|&M+GlbheYCw@?f>xbU?EXK$hhb%=AjDbmudGolQRR6q=~-S92d zIr+5+HBJI%a^25~s~rNEiU zX!6D4HK?^Gxl5-a#`sNfKQ4`z$LZ0jm9Ts;`gKk;L4G^_)&F?)Zr!cskF{!Xt+2<& zfX%`?g=wJdASlFxD~K!RY&JVyYV`CF=u>`XEM`*A4VEC`#&bIuVSc}a$EzwTFCQWPtTE?6q?JmuYQdV%YG|bvNVfLB$ND`H?)Bl(VhLWe=Cfg zj)uPHL*G#QJg{!=*ZN{7VB)TM?7mnYc<*SET5Tjl2?UMN8?!aA0` zYP}EcF-d29PsS;ns{Ia?(%ht6`4M#?)LA|X-{zCSK(g|)U|d_*nmIBhF(X73YnDmg z&UEe$0Ghf;z_=-MPaM`Gi!(gn=saBU`jR;(PRg`|_U_>M?8bVuh==HCpwQu-9V(yz zuss06fSw|AoLR>e%459n)Q-aExPT_GmGtDz^5|onKZpTV+I?5iw4S*?!0e1sC&qtG zzHGVjjCZQAeLs2LU;;m$C3ZtnX>9kH`OTs5dpDjL=chGrwp&||1;i51yiP-78-Rp( zE_{tSMyYIaz4ne?UpVNacf#;>+N>N7_O}MjYL022vE5<;byk@WH}C3(4 zHwX0&QMpA6s(A=8rSWaiMWt$mkUb_J|QpZM-P>zg8&+U;Sml7aVH)Hq7|R8#QeP( zD;gkCrcvq$_`32L1|EhQr)S``F6N==9-VNKy4XNiI?1BpqWtV-U2*sWID_-X%a7h> zz5;Fz6> zU5v6Uwxjvg(Q^l~T@|@5cqX`~R@Y}zKRVo64gm;|ppyoQu^WW3flUG?o{uz$`(px) zO!gIK!oa>=pI&+4#O+KE#l!J!YmP0^X1?5wWNXZa->@;;p}#CK+qBHJHXiU;eg;IH z-`jI$A1$Cv-Z_53Yxi#cvIXOCK^Bpl#xOv=8wAjSP9i>l2^HYE4M36;Nql{IsCc=I zxx!-P@9!va)Zq(`)ct98Sziq`!U<*?j$!DXFqC6x4mu1+YL&o$3Hutn7I?pP2(?DY z6NN2mVl`cZ5xmQzP@nfRZJ=;jlw3&U9#{=!ct?~Hay~H(RUA~hCZagZ*iWwn<20WQNQDA687etc&UrdL(a50gX`GCm<*de+R z)6W(L=ixc&|G=| zzkMmLzwN|S-o1|&dnn;-%yC_WaGSbizxM|w2iP%=gqZuw3s%&9H>|?Sb>eU2 zL+xKGg&-J(b*%~n!-!D~-r)lDLh^3)Eua#ce> zgdtiSSM#k{ak1>Ouj0qY3l&2l(s+??(1n#4A7|+*e#xe}w)lY1EY~N6L}xV-$W024oYO73dpjg5S5E{!8Mo&=NS5&VedOXj%O5zYsO6-QL#seP#TwE5t zKkxHaSpzmE?-BWNBkN`1n(~MkR0b-5nAXg!Y!=4!SOw{4ef))GKVQctX#Q4c2!e`+ z9qT&)(66Fgr{RZa#1CRsmZ_GnIURH7y{0zAG~JfE0nNnbq9IyqE5d6WB;oelD)!Ud zYOp!h;X+iQZ*`FJBtjuTtP{hdhl>dIl(A>ha@X02KV7xZtC~&O94|#G-1U7OA<_wW z^@q6mi`W;zpLaPVo_*fYRYXYQQPrF3)UQonA3dQ$fXKYuk?jsT>gl1p_-uT_E(C)w z7LcB?h+`OnQMVrQEVdvc9o`9d76-3oGb4Pyg{q&?cgw4kfX!!vZat>?xT_TtHdj9ql12iN5zhlB_?vA zi0f1GNzHSh0jUGA`QlQ{__*?$MKq!DKRIU^6MITWXvoP5+4m2h7MrgM9^z9-OHu12 zoGvapWgyX+axfwpsi|#Rer;}`DtnlWNe$HuZ4Y(5c}Q3=5{Bk*bv;t5oACCwqkJie z>%~AX&P+dO1mQV*KfYnr$*)pHvIi9o445z#(S^xA zenM6B9L-(DSl|q?C~R<*Mn&iQbbJeE1tG~V`WLL<0l&|ByA(K#Pz{^~nQdGEij#f$ zn_r!J+}A#j5$%;W43DBt9MO;Z*Sbx}(1(_)CW?mdp-(wt7n(2wHWUEY z+<5;Nk9~Tw1FIM}5Q~$ge^Kd0o>mt}t(tBSv=ze;44l1#xVMLbz#yOT_UxMkhANcp z+v9sNO>E}4-`_!mrHHUzD6^nDI9d9AgJZ7kWu{MdD6ud-&wpXbx`~!>WXL0H3WI?v zgC)WRDRObN|HOtdps6T=&_rz6k7T|H8%IK{zlhzjS_kBTSwtxMFW1 z79}QAYipK!{`Md~88hH-&(eN#%htN6M6O4^F3wZJ4AY5Oz_YVbG5?uVX5VH2toW?CG%!iOS`2X~}0=P=uiz zHQx7QG2rA7tS@3o?WGhE|CrUS?tZ733bDI#2%rxt{{Ar$1KC{p;Bc?hf$#am-~Q{9 zyD#^d1^p1jXw*(8&C0NRe^SZiFyME8MNF$v*m8a+peqJw_Y7s8RMiPT8Nx{_gRV>J zva>c8fyu4M6{#VHV{A0=M3IXpc|}x+qz|VgG#a?NgeymV{^c|oO3qZ=wXc-fiT*`i zT!uS#;Y^bL=%ng8_@VGAdAJQe+Uvv30!xTEK<6ii_2&<%z~}L{ZLqjnwO=hpl03|a zKZrCh%~%&DV{ugm7~5__IT%n(XiYo2kQae|wQJG1df}TerneJDbMWq|fSFb#4wm`3 z7wFEYHsml@7P?!Fmb=yW{rDH#D@D#LfR+xCW&FbD81nX~Vu#lEg6N$$_9G$POW2jZ z1QC_0LTbf7Yz~ZRWGG}DzijN?pPkF0I-v)+uI#K;5q7d4uXrkfpmxj9Mf3 zL2zK1U5^@GXs=57qawzPLgz z)k&x{^n@$`V)p){of!H4Vu#W3&SNf;hO`6}dn%H{;S0@&_w+#_bAZp`W7OzvY+k!n zN}v~Cd9~=k*VJM5stssZ5*u7M*5+b=_wf2+`*CW&fHEV~+9zUG7n~-Nuan(8ty&(u zW8TY1d!ZE5x4t@*zU^RKs(WVu(hzBNN~@`67{2^sI8QDRcVqjq$NK~j2mDSIYQ|UW z4^I`=L2Ry4I{h#z3|*>KwwlLMqIhX7w#*>`71ytxv;dC{>h$_CCqyM zL<6_!1CFvbxlyO)%~c? z18iu&bxS;M@G2eWebTJMW{(5rmX6XMn2v9|v{dC?)Mv1WY~MrF4e%=GHfz#z7uZ{V zI@L3NH@DPmm}I}czuJCaztFjJf0e38Z050wmH|g)z#xAemHVf;tJTt~%@Mk^LXd>h zcM>z=vB{QZ#qsfT%@Bv3&FXOwwc@un9nBEgRoL%nM~7$qD1lPObr{ji;%|^t=TOz_ z+ir7M$isJZ5BnHB4~5njyTqvTNiwZqIb>&OcBxVF_A z72K_vtiecWj#=q7XbD+Ru_m4c(kF#SLP!OoAK$*d-ME8cV_x0T4kO>)^<80&Yi;NIw0)o(CbH$o1#~gQzlYmNx1ekT6haA z<3;wgUEKcs%QyU+T!IWnJ#Z z+z`1lDvynLNURtK&SJuFxqf?!KXc~6^A|FQB!q%;)$$L#cXY|ca^9PCrgmNt@!&;8Ehu7P4 zyB3MAiA;|8pmt@$HLF=jr&{h4<2_>cJC0|tMKGpOX`KTwy2AvgTvdZ z%iHyav8oI+wEQtU1~j_!%G1^NPPf()HDWnesx**R`XbGUzog@}wr|uI7wp$=APN}m zRx_fPC*1Rb%m#;CK!27T^Bjqoc+C3|K%yTV_nXf{%_?ONKyt0@{1qn;fDdenZI)6q zQKCNt85J5jujQFbH^}64ayP7*VbfPVXFw?%oq4SK@gsmE?oo~*yy?~J4&=Q(Eox+y zulbLN)O)3dIWkrFfUVZ#M2Q~VXZf6Se*BW#X-?Js_1xh~(*~c?M%Ubg(Vy zm7pDh59tU{N!=^}-Rx2NVn8cO@ z)4PgzeJ!un3>RBPMdpD`bfm|o$yic9U}SO5$>|#HNsWi%Y(##5-Vw}EhI^)VpWztJ5A z%ZOAOAH*k(QN?&NwZ>)xW8eXuVs9#Vpy&KA;`e;JsOQhuQZB6B(||rt{^iXNS>;){ zw9FgualS=YhGw-uEfS}}Omy{x6JDe5i0@l%Ju<@aqq(M>!1IX9?vrX{wp|KuR8@Ki zt)H)vfdfof6${aXX(n*bwFio98uhCLgvFWd@6`L_sW{AGqBGn+=7U6rVzSl_0|bjh z%^CkDa?algCJ`KmPnr~XO?>D@SJj+&iIfN(_E%-7s5@3 zTcei>l^k;24Nt_6#x*;(XSC#yq@P|0yq;k(z$CW{KJsL!eS$~aV`5)b7|=+*_jhe3 zieE~(`$81#a~VOwmOeCdE^gIEw^k??F*ACqJ4?zzUUinU78puzR7s{yf$}1Kl5_i5 zAMMSZ^L0n$%>^?i@9H=X+4d-7P>)R0M6wj?^cY#^L`ZM3k?i+ucJus(^Elz`qjsrW zWo>RUMbFoMH7XFhRW!1mqq(0SHqziGCCv2YV@1EF!}SAyqa6{fDwWv_5wAYkZaKbd z`uoW$Y;F@F1zmdVyYG)lHcnM%9<7l&;yM$6j={A>!3Hzg`gf2N5s3rMb1kA*$**5` zrs3R`v)RbH$$UaED5<^y9y_WD!x>Cp`|PQ-tG|CWcRgqqKjM0JM($*5J{;8lXd|v) zI+Hl-R!!v-Z(vpPy_}wUoc&6k+4KHt>qk!)RWs(JkOoK*O~55R<4q9)=O=kJmMZPr zTHjxK`biq#jI2j5UP|Ftjf@P1lZ-ZXm}Y$Fj!Kk66qnGmb!GQGRou#Fk`<*3+dpp(N;@?ah7v zibL~*PlpdFLxALEWPqtqiW%fm$Ux)}Y#D!g8bSyk@!@wU(L)~~4edYVDidPo*W8CK z(&Hy~D4fWQ#xkaUqd=?0y1uowiXb@|?tV~8^r|+ThaJxu3ICwapa!&s$a3hOlb_1* z-Ofh6B|bYZ^{Upb#3)%{=I$ijjGBIvvt_Gef0ARQ&%1q)_v5err|VnvPkV;P)wPzY zzyGUsrq-vkS)U!WfvHOQZ>SXA{wPW1gL)*vB-e?0aZ5bWyV~4Tu~|f z7R0WW?l;U7M*1u<=Xm5(L;+H;317WRj$pk&ZvaiSx@A)@x;^s#HV#GpuOSX|9E#ju z!zS#SFV#m31g_>Ig-Rq7l(&~R=$F5&_y4y98dwCE9%?_z;_Q-qRcAw;0sRgNxWu3b zB`|s*uII~Om6X~9ZJS+EG0ZAR9&}c7su86kAn!5bik8D8pRQSD=cN7Lf4_N7nRfec zh2hgd_x(tTCmhv%h4nZ+;^30s#;41K)_;!c4{X1;Q}5q^tvKt38WJa!WpX(faJqBw zu~&dwBh!WRAXfhJnh89c%1*c*Ct<5{RF9%=_5PAIpwYY<8|#>q zJ+dgnxVtAI3fQZ#>cRVD*cx86)%(X;8p72?gQC~`C}o4Wa@kvRp~z(Ra8vHCDP%j` z^IdT>YTTJIs9&&>Op(codbR?7w6Y5U)8A9`?@JU1U2S;Opx}3@6lILh!f84-HV+lP z$DWpk2Q+{`ginVW#n#mbMkFY1_3p%W?Z+Dzq1NBWJ&c2=?5|V#8)@)QB8|C9ql(*N zz{R*Jg?T?sgj$Jn2;Rp%#(G-R*=RG=NG*UF{qYLX+^()>6~s$5+0CdeIT|#6`6?gV zOQ!pr6N{2p?T=FZs1c+_G$6s)tPRbMkSIvk>0? z(%G@jJtDJiS$7GEojG&e7IyjfAytVDjoaJTAAW?FqsBdUeUaDe1vH&q8r7uDlbPMv zBlB4&PURnfbEVSni!m2Nx0m3`P#`4FTZ$>^xv(517zHZ86&+)AFs0tb1t6i>&brO3 zXeb$#ohT>Q>W=)#U&(W!Wwy+BkKvH9rV1-&@F)cIhcBL9;%uQK$@5b$Wc@HlUa*%5p0JFRNk8pW!}PF1%-5EKJUPVp;Mo7#HJD{ zb(pPWzgyhs-2-LKFGG%WpsCsntonKoKx%A&=FO;jPB5!n4vM?1#K!`Jfp4Gy zO^^*Sk`fwl|8GhE^jf&4D&T~2tOn>hI_Csq=LDgzrh|S*SoWh?#$(ia9bv~DL;%uB z&?Nv-bELxX{-@qDGJc~n$Uz}i=2(%^fZV>z35L9Ixw%8WZvWW9qnXF7ZKMW5O@MOZ zfS;3HY>+V2kBo?{P@zP^j(*^ZIN+}e4LBnsEe>TJF0CjHBEJFXppJKduJnsXTs8}0 zORZNjGEa!WjHl*?!|l~rs?22o?Koy9SN`uD0=z$hzD9>!idax3@#aad4i^T)pLWVk zifm7i#PX`Su5Et(e0x1VY36oT^or+fTs>SFDsOxTiNrR?_`J1+**WSvMV;xc7%ELB zqa@F;PSKQmr$OnlO8WzTKEBr}_UQVdl6Yn#MG*asWi!YH-D~_+Kr1H96GdBrNEmeF zKnIi9z(60)`j_T4&Ad;0HRc1Goa^w!!Z|5?rZGZn`PNhe#lDwAW>XDm`u64jl-FeU z0etKL^Qw~gzJ4!!t_2qR0a(puO3z2I_Hqd;%|k7R37jwf&q)2?MqIk#uX?Sqic z`!?exnGR2Kd;tlm;Td!XJQmjOK8fBpR;oLh8lL>@GTLIf{rlnn=-ZRbHa zA3ZrivF#SuKp~rHdK)|;vLqcV%~G6Iq)yTChRm1&MxPJsw%~IaW!_xv;}rF-}~vzoK}L!Ht&kROlj1NOi6G0PfJ2CKaQGL z%X@g9GzC6SQXjT>ml(D6W38+^#ODuG39{X`E~9+j<6e|NV_cPQH~rX_c|&%L!)v5~ zOzb>>kc~u*T)dG#U&q!$%0ZFU(6$z6}GKr=d9A!fn*+HBe@z3gG;9=tNi8KcnT zDm=Z1s1i}^AmM`|$TWUK6(3q*&sN5<6o}#Wnf+|0H2uWl4chENc-T zVzByX4=%!)*d{UI^Y?_tV-!N@l!sARGKKBN=N1`9`F z0DuoN1Kh;l8~!V_pGS%62%|3=ULbl6|3Ecr136pIW`G}gy~tpMJ>}?I8%%V^FX#Ui z*D7ZNx!pPr%%|A&=(b@3p0aij$c36Tz^(iV(VDNJ@Wiw#N%9X?;#bBM$-0OtFe4&= z{yA~2jn+lKHM<^J1Wl9t-0jm%Ag#L<`r z(;re75;X?KcVIIQSWjjCT{oF-q;_hRoO)^$(0@AC^MNZqK?tM!crOD73=8M!Y<2K> z?w{}!f3j>^Lgl??69X-7#UA$U9;`H*9~F9&?Q5dTNUaj{Rna@cNAkcx_&hU=voR|_ zkBdASe~VaWl%$o-gH9;N=k@=V-xSZDI3 z#Vh(E31=&N=A8k*K1#GoD{@M2!Ao>BCqx!_JMhs+4BLSZ`PpT)@M z729S}ZJrEfXsw+-tN2)-zgMa>!(PWvQA=vguOY;0${lkPKb(9yod`Ru5O~Aj{99cF zcl^UUmD%_qt}6Zkt7NSbU7f;Gz<#0XYhmXvR0gbPe|*3@OAnBp$I@T4lxma~WtIOw zr*D(Oe-^Ghnskx{GcT2cmt=AlWEkCR<;=9TIjEM~_X%(NL{S*NIr(?e&<+(=&G$$Z*!5OLXQTQg2LgE?#Xg*l37bSh$7>rKeK34Rz#w3+`8D4k%n?0gp`c+8tMif>H%z{aU!9X!lR|1~`hT_cSrcG|cUa>}TBRFB3y%{zA%*}3w$Y+* z2!T@hw|+L`DX2*!ZUEJL@89HPPeUSSjqQ)OW_njs96NN(jm3vEBV>@yVTCS670E$t zP!;>P6h%fm;!e|fx%sv=+oH|6WU5@a?R>Vcs>?4%vzB*aNZUG#_h9U7IdYHHD=l8< z_IY~x6!B%uh!D&fs6JG2Kg${O%s6)+9 z*qJ-s)=1?dJj$g1YG;i>$^l8)@8`uA?DBfE7an?1xd(Wy#B-Db6^eBY+tm_*`(R5s zNaf*^h_LZ_tAZ#a(~D9|u%AfgvmR_1*5`XmVP9=!G5Xwyo6_(_qtsVA$czTPIO3S|<8AHgyi{Nww)pOR5!ZkfZHh5NY& z%JPn_nliWHz&J6C2H20=0G>OB>fP3(^0uH7lA?}d054g!oM!A;ye)ZEUm+5t3?{ko0E!xr_@7=l2$8# z!r>!?SQ#&_R7m$5K&;sL>ao@>sVTp(3>aDxf9;_ByEvA+l7b6(vx|{Ms{_2H=G3v@ z^RS`tY5XC!`BbozcmyOG=?<-lPe_Bvoz7%%hHBEBm!8nPw{jI#`q&N=)AX;G61j(3 zELQ>7YH#uEWX9+M;G79sPqq@)Fkkx0=D`c>^GmCe=aJ9)c31(XmKagD+`jK1a%lQb z>=Fo+(HhTvz?-c5yvbWW#<}jmbd~2y;P7>?NycaWUW?L~i1{C5C>}{a!+SasI4exUz{Y_7y=ZuHu2bPb{1205aQswFxtFvpgWn6 z8jyQkOp>f~ObuO~o(NysewixsY!KuU>6k#sKHDOqU$n$}5<-db#z?~3@!pI*+Zt2W z3I6%rN8M8d5cnz#RZGSgufVaNh$z8u>co5{EUqGMJNrBZjFn}@4^mMnSx=}q`T`lL zfIwS0GVZZ}JXgo|&o7zzMnLN>jNH~6P}IzQAiQXm%}x(g^2G@=#-SPclDP5;LtF}m z9=D|rmAL<}Bd4$~eb$B0l>f#M`Tg-=a^89X#>l^Q6FFY?=ew)s)@3KQQ#PhPJxopt zy7x8&_*L7G3FIzxVJEL*RzYD+e4Fp=%iNAzz%^?0L&ZWMBk@HVNzjsMv>#mf?~X+y zd8535N%6kU#_pE-i+j+e)eS-GKq@RqMfZ}-u zX*Km5Eq~(E5QC5%%$z^3sD$X|+-dHLN!6RkiFhM)DeI=@qtBab28rM`gWcp>H%25v zSu?OT<0g>7mu*)C0wR94R;Ar`K2u2f)pC#n*X)!4iif%zGu4g5WtL`1Y_{`oO48Eaw zu>xFvC;<4yf=na)yIe#JB`s^aTCUa{Sot}R_$GFKE9;S8xnaxq#X3P%I~` z;|xl$0~qAu{d~IWC@;wU4FYAC+dnUVK$F z#RbdmTMR1BM;e?^NYA7oUXMK74z`_V77HpMNyxJR!C4alpGlg%?>(ZC~+!2 z3cRy%xF0-pb-7Xz=}_@LDT^xfmviI~arQ_!wtyskkYWs;_pu1keHSHAxIe%%U{4RP z=SCziqd9_9s*S482!eW=kgf4QnwuPr66Nby_ggk{s=D0xA%D0)x-M>1o~(sHljW z_)q)wF@+<8I;}nc1isbbYL{(ux8_U+?k(v^)Zeniyg8$;DsAAx5j-2}Y zG5*#ocr}_x_R^5*C`)Rg3&c08-E-FV-`fna!26fVdFZ=Bg3oHtzpQ-vfb})C@`DCa z9d?$3V2@$%6Mcm>m?F%E{hLfIhRx@{0|7AxDu;$&JwW5>dNj)O9tl-#T8&a2aodsP z=Mr@lnLLdio33E^Q-zEVq?TAo)FsGENpnH4F2@+KSJ;iPI*R=t7G4D zMN7dlMM`AN?W4d7*fOiIX+7(P4;jyDyVn`_4RaBAwG@NBLXjDf6T#+`;3Ia}W>8z{ z7ez&zB_%WFcaDX`UO}rm>(PdZe5*)HT)kmyiFkp?7Y@Bzb4&t}vxqzeqWpJJ+{uv? zFCz8k1>UWb+3)=)!2XfHm$2~Z+xmuH6ap)AW>qklKxwHo#L1?uYu^v93EL`4r(u}A ztUDEqqk|uEH@U+@UZ}*y^GB(DBrJT!Ct6T`F%1rlhE!}t%P)Q2OuK8>*r*0pO$nkmSimhW^PW{Bvt@C0sPmnvcL7-uqRahVFpRv`SoGTM_ zaH0|R`rmI_>Ag|IC?5|YL+%oJ^9%aIBKXvmfysNn%qtMKcCMXU`yI(U)9Eu3Q4abv zOFq{QQS2#(_vNib&D(3O!e>TbYIfE9r%k{ttHTHi_e24+-(V1Vt0oK@s|J9==(rld zhXWE8seixs@#_sDZ-ZizKy5GpOlbk2lM8j_&IYu{X=<`Qt|7e{>&LMHZq#v9K_oba zVk16n!GwLmWU#@?Q37m~7=l3EG%6?LVFxTPg6Oj%IU1YBWl)c$QTWtA60VFiDsjL` zo4aWoG7(tCI41@urmu%lPysbSiUATB9KIrRe2U5Xc$5nKm{j#0VgH)ji2(|&Iiye< zC~+6afTXg8dE2f|?+f{YLmQ*X36PEAss+`A8tMO-9(nwDeWPs(rV_VALWhC}u>vkz zXHjv6;km!+K+{SASfvD1B5?;g(*ftND8H(_T!iIJ%kFbn17?z*uH~ShkBzNo{=|Oa zs;sA_Yv)2e`cel~_vEMZP%TG&+c=8i9Re>LVzp|98CUt#K3hu&8TzRCW)KTTzCGDV z>U~7*YXx>}VOUa|F+LW$of5swa#v?1q#gYR)3IoHUKc+T74g07J&e_}^&3OVwhL0R zZ#_1s(h?3E&zYWuyli(P1{kkTqX*>G=Tc-uG*i5MxODedFl znFc}!-wKg$oOGR+bX^`SGaIfT=(6+Ci6J1mbkD#?x{OVK`GZhUr&5jL#Nn5*P_=6Zia{1jPTppNe%@v*su^ zn=iE3mIZU62T4e2yhOXX&|xoj@!~9jA4>sisuTS@E#C<~b|?{liZPxiQ=h$9_Bm zb!JhFj(O>=8}Rl!Iyj7#$Jt^adL=l1A zQOD@|Zm65DYB>MJ?#1taH(c9aQQe?h0N9WZAE?%9SO~^Na3Qbkg&ba`_(g)tw*faMzoozr~I z(agWwCd&S=fMYFUt{=Ltj6rOW&X0vVGdUu!<)HOU9jpBd~c7)(1%A)_#{cpslY z&xLsBKqm4W9jDzZU_Z7G+FEBR*i@1=;!e@Tg+ht0J-vF4%eDm9cNg2X63Nn2IKeu1 zi6dk*c71ZR108k4XmFUaY83H)e8p`EeBA#W4;LMUL;4s28Pl)WF5ZK^eAAvhhNcbi z!@~nwPftq&#a1rF5?KowrB-csY>(DgL)aG|vHw?EZxM z6!1?69uJwnp}oLAxaDUGch1tcXg%qewFu~1n-8Bi3Ood)9*#A3EKrw)6hB`3{tctJ zH)LD78N(Jm=DDO!Uab8LLuPeV60!(#Xq=HrW}3J#wQC-=pB9?L?H8;pubsgw{8 zwViX~@0}T0lUtTis(P|z|5qZ5oY^WkXB2?r*o*R4Yc$d1NZn}(kpzTK=jpm zbZrfDFqYw^$WbeatSUtODRZ@e9?2dpPIe{~hutr5uH8o%n1v?3KLKy$Mmi}ori%0| zD;U4bQVXbGV70i?t?}~f)Y}@D2WHBWe7*@9s;xY+0ERV+bRii|%swj^t&0fhtF2V_ zg!1*uUmnteYB?CcyTKF34~&Rkb#Mg=F6iM+0&P7({#VbIJ+#sAuai(hr8zTYJ;v+Geh$noViX(89vcA3=W&Y9 z)Q7Y6166xR?9muVh?4ySK}v$4DaX5^#JgIvdw@FR7Z#b9^~|=TzsCx;n`}u&{9g0j zXVda(rCQjrc&ddZYeAN&Zl19RJN~`~t?$A+^InZ@n#&EIw2X$N_K4!Z#9Haw^BWKF zRJ(O3lwH=E-aT_}4x@y6yS2F{v!8`dlsB1V)=A>xDNh43-naKR-s^8jS6!b45FLz! zzEfrb4T%;32MKpW!vS+u@lZH{_#3ShLjo6ZixqqWF~H3~xW-eQ_6oR)mmui@&f?tf?y1H#^c7hWcqI2vlOZjLN(XMrhs!UTCAcEV~%31Zm4_aHgqa z8|iqta~lC?X28+rC@GiRw+~DwCqJ*!Ksi));G(0}n@n`)v|k^h>$gQ-2?#SQQCRcv zG-~lrmR_L=$)u!Qi5ADxK0KV{<5=nkH8q=|-NEm`8EZMu`@HSX$1>(U$?o6RP!;QA zE&b`ehtdx}zUbHV>&$Nuwv*lB{R9)8`Qe$WHA;QC(w@<*Pw&0wv%5}S ziKq>uP-V@YqI21673e6^8uR5c@QeLRXwr);-2@|=Lo~Q!jEOJmB5GyDtpbMf~e9D3Ig_aPf_}N$urJ!J2 z*RufPh8^TI+7)0Cv{TG)saJr-VEQba^Sirx*GKVW!zvt#oC29k%R zrXQdE0|;(GGHx&Nr?9J1ZIFEds0r4?Se`7;6)T_yOmUoWQ#W}X~^Q--6i{!jY@ z@A5;nMOwBVqr%$hu>y7$5BtS$0v7L@LGg9$uW^A!`WzA!bhK%)u&MWz@VH8VNhJSC z;JK@eLY~ob5rF=vWhx`(nN_f@k@E(G3Hrv-%OgAsVY_%!g&37wu~E~i_SEE8T*Ssx z3W1LvpcNqzT4gug7Jii3E|6s|xGJWhnfAS=Y|kZ6M>U^g>dq5EU=LaDNd4#e_b9?G zEyq^d{mI|U5f5})7KyW=PacD3W02_u&8)JdgG~3KYLQ^KI)jX^<0=Q(=~@O4jnZ4HsITkBjr>sOOobzVOW5v@EBt#PA?j`$u<>Xfh5uWf17g zEUHN&i2wnd2|L{cDB9J!-$#T4zm^+Gj&JMY?epdSS5FhVHth##LzRlz z)mKtncr=UhIm!;s$1+(SoZcTO*#8_dn2E8+bJsuAU@(wGl|TCrk2+&=miUPrWf^@u z*rSs+Qp6aHR2esjJ=n8=X2XGysb-8!Su{!157j3Ykd1;<=41w@+f=FV&Fh+X>h6aD zrCeK0^zpr$__^~uvsLf4Cck$MMA8-g`6z`R+r+{g(i+^J0^BZM-gtBBTQfW7ke`3< zdsqn};w}+>-)Z==>iD0G@a*g()Q++de{v@JueM-2qLZWV^ zM`ze&Tussuu2#UH%B`$5bbMj-15M;`89h!wB#-$O_8W4vJg({qCpbw*kqQyj8}ONg zlM$gq(i|tlNM=xzhL^%2uiT0&Zjd7bKkYc6=_h3jeO>@gwmk{3_4aq)B?xo#n4>2K zQig(A`N%_#e|Q%Ap+5$nD0-lh56TU|uXqCRlb8g#G-8Le<=M)kWUk-uUD{I&== z^MS)>ZrZVyn=#ON9!Aa6^cR?l_?q3;yHw2;?e7O)Si2`+>@$Xv#eAX>E=fQx_C4v3 zpkE^$H>6@>m`bzD(~Cr2$yqXf@xz(*w6FqWj;nnm?2uC%QJs83tTi?fc(wtK1{cX; z;X>9E0q&vgP+J~+sFI+#;b*Oy2oBshn~#K3F*f`hrz`zsN zOrM5VMtXgl&jvVX7Js7hU!u$xB}1$rjw((|y)}wk?Q(!)+1$TNIUWD*8On~;;T*%z z7;(+Mh5Ah5jLN^PjcC85obYYRa!f;G&=wFpE_Uo{^D~SgL$TZYIaB&SvgX7&Qysnp zcpQgukQvt-Fov|#Ed}cnxYkJ#HcdYVNIHZtAQ+b%Y=8hHhwZT`(7cH)-W6%j=zACj zu%p=H!TyU`)r4B8J*JOsJR+!Quw;)USc-v;+I>QV#N&1jWO6?N0VM}}H=H;tQiNeX zD8SSHKnOqtK}Amr2RyLaj+ew&A|5!O3qWD0Iq49#y4oOA!gN%^HwnZY_y7+JK>MGW zIbjZ9uVipUPy<-tU`TiB+6>gaa1w`EplYFk{TPx^Az=P*_s@DrChF(~Ad9+u!~V&5 z+uqaQSP)=F9m4}LI?HG5VfJX1%iYr14Q2o%2MZxW2-rD(`6%eehS0$W3em$uhf%<} zS^G}x+2sj7Fk3zYxC8V_5-$OoG)?~CU+W$0k5oQia^>d^>gEv`e1`IN6B_OHuOZuY zq_6YHxc8hs40>L)Fp!p=EzxojW+}D1XBjYE`@z4 zBmIOYVYF5^S(LzKd|AJP*X0HG;y)E2`|b5Se)3Ne*ot%o_%l91;8Pbx0KR8;>o(Lj z+4^@}Ab~>3wb;uMwKYiQ1y%z_VH7!c6DvoC*mj)jhYZ6)C8^;G@3bx38GnHW{&yy~ zFk%3UOp#~&+1H-U(9=k#2Co5>@1XYu3Xh%~&S891_u}s{j|a)zoBa4!+u864&IJVZ zLJ<iryC1>aN69ZVSGZ;DuC3N)VI z7xUCB+Us|~hz%z*E|eRG<8(^!m%CcF$f|YWjT<3?M~h-5Cki;vQrKni!SKgQyxJv1 z3H)mG@S0lGJZ$5f%J2%6|KHvND@JGAB7)jej~YVqNRRrlmjv+m%bn#yW=s!QxEVuP z?8#}QTR^r9Vi|_MguvK%?zf8%Ua6i6OWopsj@^Eoda#_lb;J;xB}Hw#2}7gRzzkGzjGn`%|g|+B2Z>25M{u)%n8X07o)B`}>BCGck zMfO`O9g+_$)DNTBqvoo1&}hv34fzzi88q=QYJZnKsj91)0~(f5)&J5!B-`mdj~z)d zEpY0dy>Rg0fNYF-u*PPG{Vmo~s+|Q09uWAy3MkD{UH4kQe&b+#oL^`AWACu?2C+ptsHGTXIZeP0tq zo2o*gxJ;CJ^fO|tT^ruV&f~2=iFD2UDABn>W;wK~6j9@= zOj;+*$pvUBGWb&XPsimCF;G9CLzcHPFY-MUHu&ns*0;P;8-w3j~O`mCOmpD zrT?rDQgR*K`6IFNt~X$i^SwU~=fWVR#M0jk&MAYp1Fxn2rI70l=x|_&@Ynq?4)WCy zWPmoyMT3RU1Y|#;K70t3|H3TaFAW=205fpN*ZQ}sqhHnU%8~~-;GuBgS+Dzji$B%u zzW$>dT9cR=AF#>$OSs!1MtlhHza(Un=vMIFOY{8^2$gc4_Uvg_eC#!}QHa4s$>24? z!*w+%k!@3Y{LQKG-1IrUh)o8#*qLd7%F$Th6Ap0+Ek~uqLI>;(nFeDF4TjF94YMuD z!gi~w>cYDDmrKwtJiea+Q=nS70ZMY9d@hK8chL`qUk~`g2vN_#TnCJH;?ywVX*#2Z z()7V(#RkA9cK{H z`{u`gB5j|4<%e=M$>*pU+%|vv0W(kg_G658g6@1&1ZF$N&mH63Q-Jy`aZG=xEkPd8 z(&~}5>h`Z)n^zLJiJe$)H=C!0;UVaVLgoyv7}vH(Pr5i55$4?a!711= zwTW3P=uI-;MDWwjrpFHhiv2)fcQ+^pA7xxp#e0g@jPhaLnt1;<lw z(<0U~iXXOmar#3=K9F6;d*cI=V;EiT`eshP7i^0D0WWyhxS$q4(V-VKnm>#eLVKGp z+1HRfiA7a+AJ&;8AIxk*@WI%;D$?*d-#wht#k76idAE?&Q+?@)z3agbRj3nO)ehr% zKA7h2e4o*Q&0X`Zgxl?^7aT1GMh!TYbAdQM)4+!060JCN0^|)7tfwT@MhYSdUy+9Ak5C9O&kV-;1@eZ7U{F zwWIwI8qa7Tx~>X08RRo?pE9(;wv5dq`6l`%T2m3w#`}#Ap)4W009J|ibcn9Dy1~uv zuG)Fg#)tV19teVWJVYBs^ud!$-3>#qi&6M=;G#Q1(3|)E8tqH)JJM>I^#|Hlraxs|isK@016*U6O)i%sh?c^ST>olggPGT!93F@* zV5Ry^sdJnnGM20E54a`$nj}C3FrZ9>W+wSHA8_pT=es~Xif#!tJ`MikBh}mfQ9jR| zS3dh0mfQUKSY>%WcalL(H5g4JCw#t&2+gbS=@8jn)j)zC0`RDKi}ZmJ`7btJ;TCf> z6Si&kX>)vviGrx7M(OPLii#2yGU(?Jj5Q8_t8)?R`3(*W`bMvEOImCP572)E7?Mqe zex%J|iQbsW!70%?$QW>Siv?tB%oSpu`*#Ay9D#*iri-E{;bX-4rjFU+5Gjwf_d3ti zXXqnV7G~8V)+ngC5k~VBxQXHv3^SV1i$Glzm}SaFCIV>ig7~--mZ{%G>iM~?WxuI@ zNr09*$G8-@4ljP_QJRaSz573wvJ?tn1@FrmYAuPe#B0|Oen4s*!;(09DYpe2I3My1 zC&=Qz@E5MOl0_ouPBqq0fBTQ0R6S_oYC9cUD}U0Th{;?*3p2S(frurG3S~eSyoaSu z<6ncr(*r?f50M4_-H{v?gu+o^w+iO+b>V+47Qz{my0fY>7cX0oaB5Sm^`GhwrwEw* zp5p{3?g|V20vKi}%rO_;dFtj|CZ{te=8)KYg!$iUlWh*m8`G4IIwRAJrw@D=%uL+& z{13&JDskFA=ay%u>luU875p(+ojHRtAiA&+P$qkpLY`C>QQD9@oGvmV5^(+)EW|j; z<~tjq`BW3dMRy>mB#yWAA~Yowc~)uJU^?PruP`**04hsu&Mm3s=Oqd8>V8KMNg`4p zgl2sl#IlFHT7kjQV9}!NWTi)Iy8)|y+(!n3CWH?EPdQ4$ht`8Qr~3XTl? zL3r8_KY_6AI+!mhVIZen^v-`3p7Y|HLZd&Z&kb?3&-?1~>|f@mI*h7~ag?>)wz zmOFh$I+3S{3wW`a+>af#3loD9Iv;?xsmtohW0a6_iavMg zhM^I#2RDm8%ll~-N5Uwj2N{~5WH2u`fu7R`@bn^M>*mWYf@-klO*5vs3>Xm{%mDW! z93R9E%re?f~|hik*QrAgKlqmXs+S^^UPpy!_tWF z$~B5;z;$**PIr%{YVp-P6BSFm{|&C#Gr>(THxzK-v!^-BK}&^OgLfsWTk26|QhyCf z5Yws#QFyAruExL|Na?w8!@cvJLs3Q{bnyk@bC+LqkiZ6N!grf~V-^+kG%--M>k?rD z&U|7EcOYB9>tP7>5+}RR4Z4W#>dT5RDcS>X6!Jf(?HXEQsf5BO0?e3}-CaHdif7zc z?aGhy3?8tXSH>RXv&_m<1tRt)uKI%5q)GNXL6>#TX-@ zTE#t!DZ#0C>3QB2PTbgIBO=M4YHK6x#cLvv$+1q{(k>oW-iXbbg3$fR^y=~XFJG1t zP!9@IhK&|^v+5Y1wn(5Gf2*8oOzEk6`n0Jyz{}~$w4QK-g{SZGpqF0q&$9phZ9eF~ zN9(kwvQQ!3y>CJJV5nbgZKgzsS zSturtb+0H8&5-3EYR#zT#7|LmS_0D@9(ez`N26>ggu)g6!#j?FLeE|gzvn;CG#j=J zdq!29SHN;f$~qVOjCd?fHH-CW$a<<{d;39BUZjD%^Kdx|A?hpN+-B)M6i)dCECzJ? z|5XA_#c00aIHGo01Z>OP4Qo1YG}wo;KHFqr=?QkG_hG`w;=Ef$V?82FbvQ78)Y8p5 zsFjqG_|=oby|;PAt_3HtJNGQ*MGOO3Q~q1dk~okFg^l1lZMm;CP1V=Cd8DlV>MNe7 z1F3=f2JC(?OsD1(b+*1uBO;>W8LKm!c=LTfZV4E758)N zA__-PxPdB$GAO727Jp0`P_g&H({&$IbvBs#qv8q*&x$t2e#&xf=V1ROu^dRR>hpGF zHU;|1{edS|{i6t?b{YcdfwIUa=}tigm=?G^BmgeTJnlQ7U%`WnNa&#Kz2HBr`-Uma z0XUmZve$Le`p#5P4!Lwsd(lF<-FVkwAsPxthF`r^|%jZx}8VC;X7hG@F(sz``( zJq2ZU_PVv)A|Ds8#)YF5EG6wt%ei3+iYg(y1TrFG6Mu~VwhQb{;_#{bMd5(3V!h*3 znaL9+eOJ*(e#WD+}&|rkJ{Dq zRs>pFRTDF6U$#FcaQ7Yb0)fXSVt{y}r!`o?l_3SNEfU~8-o2$1uyNKZz4)jTaFu_b zfk=L=987ZEacPf|DlD-}6|dm=;VnafK0rLn?3$fbyPCstrnF+bs@-Ydv8ggwGj-O} zh7i2A#tH21*zRazbRc9Y?4neJleNTujsxMDMJ7erg!Pn!Mzv~zP-)j^UF7P4^!NjQ zqkrCnBjHbU-d<(74#7T3a*j1dfTxL9tnD~@e+B0yiT&t;q~&;o2<6E`VCMNNFRe|U@kP*8UF$0E6D`sx6Y31r3IBUfd zW{;sH8WeK-4Wf3+3X|rLJLqqlM{zZu5fVKf@5)-q>TYfI zB&1Bu>K#~7zqs>mHm7;LLX04E!7YlRoLM)vQ*pHe?9vEPy(t9va=LnOW6UyTcp&5p z4HY&#BHACdVm}}^ziw{x;wH09Bcd?U-NqO*6gV3VdQ?elQc(N#v|^YI4zpxjzMcsxmO-yilnLat=X(w8+0-c@q`Td*E||R{D597*$Kk0p zOPz~NGy*z7NOt4EtzXB_@X?u>ly#4}hg{iap9r=;WgPZHHMx04=>!FD^K740%ODI3 zr9dHQhKEGG^d9?B?pi8 z2ix{G?3p~*>_m+X&>A>Qk6;eu24Q*xTzc*wJ;1`Z$9_`rX}O43;f_!RWEcj=Lff$~Q&Q!AAy^bE>* zT8l3lgD|B`&K#xzH6#YD`k#!ils(0NRLgcMhCxayPgMk~B~f{HT*C_B;5&*?0VJS_ z%hjtVl|61q4bB!5>k#pbUFRgPP+f4bX!1fC{`{Q#F)${G>Xxcv%{Dfor;FMeD2lw0 z8&KcwvS~FC${@3e5LV=Lhi(0hvC;zHYj)39@o90)%;Xa%pGrsf7&|Jx!&v6mIJPmf zdP_nviT^#Y7z4^KiwBS=`PTNoEbAPojD!`bePW(Gvz`~=e5XhW&r=@IkraWyCrh8g zdzE1{UOk2T1@83ZcdVmjrIDVKLB)Vba_+0iSj(unDPhV=iwmvBJ?yE9(x=plv2X{& zr?Gzw^ct(CUafoU;lV9IMP{Z;A)XCqg!5dU_mtz5o^UmrNdDAb=>)Rc@H>3ymCFhZ zG6{)H8CG=?LW1?r?wH`5_H1og>D+>K&%a_Sm#D)QyZgQZ>g_c`KtCDOKS?(+qcer zPbUn$3UBGcD7wZ_5NcrHEeA;E0c(wAmhp_ebHY|G1gLmK2e81J3s8HU0+kaJzz#{s zULOIANM;xz`f@31J0^RlHt~Paq}(KV&oPNs7$Ej+h$~1t`{NAT8<`1U^jyX$gtE6Ew|GQ*9`%8Brs;MM%#r50kh{~Rw55D5R-%{h+=nd0Co|H zkfVd{r|8t%lTlN1G)gr&aiT@?6OZCQ0Yr}xt9uJi6wZFhpx3`^Lk~tCyZpHAB{2&C`Mwe% z;a8r+NzQ`$E2=swPCIDNmOyX4gGAi@WwXZz2m=Z$=-+(TmC-lX?jCNq2GL;3qEgM2 zs4tLeDod;ZZ}FuRIbR@(=fnX^2QP3z3qP_t0;z$ow}a5JM_B$cp%lP9n-(N5nwB(e zvbPo$6cN)FJ|=A2mIS>7TCzElvZ-W*LG{Ka1kPUK&12%F{WNPlj2`^u@|qKCP4=B{ zq{p>4ovWD5FhdUaX4nAvh~b3vSF=Ow9%vb4rRlSpTPK|vuYfNfRRGyt`(wctVA}?U zl`A_yHw!GlIb|9^a%5`tt=Koaq^Ez~P-oyj=H%wtBSk;GfLoB9oSqVvA1j7`ZxCOb zd-{})*1EC+CNlRn2mLNefPeUq{a6Zvvpbl8tv?!EiNA6-GCLz89-3VnFy*tm_B9oN z7l&(%^YkhN$=q)O*>QZu$gQ$7-fhZ@7)WQ7evMv_#e6TD>20LTvG}PBORq3p#};(S zhWHjW=Ijptz1UOd>f011z>i3#mK6flE6G+#hW`wH`k0jMRPNG+P>IHOWEKXsp#Mys z)yWEp{D&s>f2n&VhOAH|3|Jinz(z?RdFS`uKVPf?v9%~%RP&oXvpsw{6i*j%?9e+M zTi8~2tlATuAnF|S(Z5nvp(Kx(6y>T+f%(%l8^2Y9OgX(A_TIBPi|c}2)MYVU_>=H7AiVY6tSX75yb=(@2Q92IP7 zh@Z1bny1xp+H3wU3vNvmUhuTX8=2wYY5UWX$r`2vh)N-NIW0as`sHKho@R7rWMr__@#EW) zCEl-R=ROm@&d61@w*6fo>hcWq-mW9tXEUmK5nL(VrPB^X65DdFu0-WaUN^L}`f<8d zmVYcgkV?We;~6`L%il1!W@P&A&HqAgl^G09gcJU=A|HrAcBeb+=W zs+bz~IGN8npnTs%FUsM_%27i6i<-x|9-sbU{zQTqYZr{Ix6c?=f5#~MgMR6uRJ{k- zrpg+aaFrpQKgLazzQ#lqK+n3(Y($a0Kg0HQ!(fO4sx*X8%LaSgsWQRtKxSX1!9ak?2GJ%S-(3j2T-x2F=yD3c_o2s#fr{4+2-3 z2!!UTV@a~->(SUDPlu~9XzQXWihV;*TfS8KYV)elmrbNj9w=QsD7EUbZF}bP9BBj6 zO?Y;|SBq)hxFDGp=j>ih7M@5~`=#bBl|h_}6RU2H4hDG*l${T^q142JD5QB)(Q-IA zl7QkeNMUea$w-@)ML!vJ1bq0ptD#;d>*f>T<1VDl8}G-qDRgVBDcI}U2!^nJahqCN zh1KbzAeff5uqUv$HChqtyzS| z=E94dJ&ukDH@Gh)QqJK_BvNj7*mGHV4tAK+P0_-9E%za8^UgD}^IP7DkFeYvT?64K z9mlnK%~(KkcJw(A@o2!cm(6n~`Eyyo!s~v=t88ST)T4G4o{|*14<<#NjG!7mv+xc* z{*vrzBb33zn@ZqRefolA2)sJl$@aIwcKGE2=VJSRq%GwP_`u9b36A}SIF|k5Aul=| zA&K0&%K#8`Fxrh*65(3=T6&Q&=(VbfdACXIV9)RUHl{^3^o;)W2O5zF=g!j5^Dm}- zrm=p%3o_B?!cW*@&fl#e2&fuuuH(RD1q2)%lMIv1*$LgQp^V2D6^+-mLO_E?%we_^lhNQHYNaBZc4A zE`l$9kt>F5Xb6ILm6xsqGuD|SX~zOjLw$OUwszvChq9Pd2Piz*rdoz)w0bi^cVc^y23A5diObjA%t*`yW-Yv;-c69s@gOx_gmx z&r<+hM+gYx=K=cYvNlwP2`HsU&zdx}bKUoPn^XY1gvA99<00kTSQC{zz7 z1{}FTJ0-t`iQb-9&$fSf{Or`NKYeWDi#NE+ElwTj!yYHTji1s~e%tGD6@;H^S@V7} zN?At8gZ|CiZv%_ve5{|x>V@MKHEW#cM-YO&M5wJlRDWJ>A2hqRRC=Mr2bLVvVu2c+ z`d1qzWvMvlj_YS!Z-qW&X{3%3&@DZ#??AH?Q8DB#MT22Hzh$X7Eg~O1Y4rI(Xr=&K zlW&xn6+;&L{Lw!9hhnXUub!V8F8qf?OZYr{3b@*$lNwZy%JMLhK|LG)z4!Ij?(z zPP%r+twG;}j@C!ReGe{Lj`5wIW`vII*`RCAgBK*_;|0l&pr*seya)Qln#Qo9VN$lm zhz^ZZGOI15J_SCUkg#oZ_wptmuO$$tty4zDaB-^{*b4*Y5!)prm+AC0vo!B4UQ4v& z8#aiSNVD1vx5#r6a9ZkG(1|xO7*nQHy>N)Ab)!qJ-h#kqR`RVnH76Kj9A|p!jnzw8 zMXhpPI`>8hyGdbN5kT^!KE*oZmdz6IJT>U-CGAs-P-Go2O<+MbRuhgfF$EO)oka8Il5X8Y9WH} zO`Wr%*Rj_%+%`P@59e@sG2Gz?wc#?eN*1rP7;i-xr(2FUK+gYs zyYj6ORD_#{OXR2K%hn&EGm3OP=_?P{fE#Ijm|NTxXce(l3Nc5*ap6JjT zb-&ln-FzM!*11le#8vZsZDd82hXZh4u>WIkObb3sqN=M$MA%5PP;%ACx%6qM^4x1Y z&b&RDbi&_%`?dm&R9srm8Q*P&s@a@781V>d%geCmd0*~yrRNb5&`s&_8_QFRUsW2z zuzE!@Zxs2FwJo7Tol}`woE6y!D$&48t32zW6Q&yQ^e z=QuPr=tua~W|r}x*M5`ld`H#&lU4c2!WT>!Vcz`Y7VxCbTwtuw-ASJ0cRBe_>5K*^ zcMC>9{Bm5h1O%*9<>ED>l}S`z!pqz~&9-b}#}59d-mHpqRZ0hZFzT|K6e|zsVa0Q( zsRq$yJ$tB3H#ed=JcMmC*m=eyJX2wlHCR@2SEB4#`=+h2JJF!-;iIansNCPB+vfNSibOMNEr%5+7ptb8J4qYIBS7U#Vha(M63U)`c&QC>Wz8ii zzU6|TCeTx4MdqyOIVlT=Z#tAiARdaCgbU}d&(9r=Yqh%tsS z`J4llznu-CjHXKh;EV3b`eDk>1C;Hr9-42!4m$(%j`4Jv!+^33EfRq>LEO#*9D|8$ zV7vnfwNgk_Z*mTb`wz@^N+1xc?XL#7UA1KZ=gPpTyxl*cC~O9_m+({n7haGN0>D7CNs*_YJTGk`2nRR3fGrDTz3NR;$-kD@U5L!H^HHX6BIT6_qlYbA z2^k%(i3|be&vC97&nfnVVtC>kkYAu5Ibf{{83drtrPpdVVoDU{NX*~Bs2ZAEoA=lp9{PA;VO zVsS0bi<)bc-XR>gTa7l=a8%PBoZgqI1YboP+)zpe%g!l+dns;M_2>v;u_`;vt!J_lxKTtg$SQ}qEE4^ie2{YE# z*N8z=+D)G4q9Xh00o3JF_U0!1;p+M2@=2WVCHkHefg0`P@1%cEq`dpIGA|BmH8Dl4 zOXT3Z$P}RD*&K_+i<`vOX0bj!4IYvi$TF>j<$Fq|fNLho8Fh{%%Bi)nommfE&ZY(s zEVCT4@8_ug3loqcPx=9Q**gDcP^z|TP_b9#qe=v7=6onFGy;$%0*j;D>?IzA1?pE9 z%uA2RISoIwIO2QcfwPkEX0eL>Q4cNk~^TkSP(vQP36!F$O(6@?K2Y7Oz-!tNCb@^m^d+x$W#;5Fa7rnq==j;VspJ5ae>esPzRN zAe}>Q%hAcFB-xlcXiQ)zU~i?dO|f^+9O%i*E4Y%K)mUElDna^ImZmk0MPvdb0LmPp z5>njWOCDPG*kbLmoAae<%>e=Y`k_7+UQmA3w*>~1IEVoGu3Sq6zdC#9K@NU!zB-x& zORN5i=wXWE-5Lpi{tMHQp3LWV&yKe%_hrhhpoJx|)sx3G@j49c`05}#lmCPE$q2vL z&sCzU+G@Ap{F>Ze&f&5?;CA=^mI{is9BdC=j=_Ir*pAi|?yCTd|7-(4ym#$B+1@Hoe?W0Rk(qy2B#oF29cU;BMS* zUOh^x&s41ziHX2>l(JGxHm=YncwQmQse2ODyT9#w)JuC>Q*38)dPrwlMe5R@m(Mpo zPC9CygAH&o;RJnPnLj+nSh({X>F4|$A0Tz#^7l!S_ClCx_+9LWekc?ZZV0z268*E} z1+m$QJ*p9YlzOC7JZcOY46{sUUN{GrkY%Z}b@zLZS&7_t`IwYb=a}Zp4@?N@FTy18 z9|4=oszT6>b-OKvcztj)lyz;cun~Sc_~vhWUligOAgpLGF@BRsz2}9%eGF@->5Tp$ zM${7+v_r!Gr%f7_0h%1a{vX=FpNyRbp{YSWi%GC!+_0BP<$fobDjT_p59t}?ac*I- zFf!$PKQ^`4&IqavzHvYYp(3{){4y|l3AsZ5pgM4Zi~5q`11q`1x6A|J$5WIv5A8aA zWh%G^DSSa0EhXiZp)Cbd!^e;Jx3=EZlcyUBtVZ4xJ|T{1`9z8 zAUjLun_y=s&V5v~IU~wxJB}Ve_hM+HgXkbeH!3QbQ+L-nHOEDi)pBRcGRh%0dY$w z#pp0Unm@zJVCmGqENUcNu&pRsOcF948GcHy;@J*Qkb)K+L+#WKkrFC%Yv+Z$%S6yA@GQ)xpm;3 ztSd-P+}#JccY1jQSa8E=0uJZ(&SqNs(!NDC@4DuocWxD#;DE|F@1WW#559%XgZP|p z>8loe4#YY^X4wEWLWUSvE>U^EO>9RC$Zj>JfjJIAr>3Lpn*_cxK09b}&;6-sQu&-K zT0VF<4yQ0q8LAZMjdqr%WD3&g0)Lewl;^9KkD))^(5JNCFT)r1A!Fz4A)u`KJ_uL+ zlk`@`3Cl=&I$ETtd_FF3Eg*9UJUdw0u;Lib4#rHalsgUmLZdhrfBiQ(8o{#tnO3;M zD=&^Wo^(7JrMM3=C^DMdE#<|He%9pVhl~JO%z{&WNQEc$G56krUAz<`uoZIOaY0DT7~N{N>m9Lc7Okp zzWTosXctjl(5G&SgS3HN92TNS`^K!FKe`5Q1 zy)d9Iax{R@I_1D1{=cfeJRa)p|NqRw49W~r!ez3Ty)a}Ok`@(}3R79TDa(usUE9ov zs0`W&g+i$t*S;1bSt4taeMYhrQvhiiEbrISY#6_V z`Kjq*eVKiebc7XdquM`aO`kqqdlKbU>D>pK9p|Nz&N2E#78dr(j|CM42Aw$?@C)pK zhk(%ueZs@srYjX{t!hfiRvB$CdYpaohfmW841SNIZWlCTJ|ibH6Kn!}33dfeU5U3hAPpl%2GzU61fDw(8`K z8z6(prc`Yw`=5%Gqhikjmu}+KCw2QT_m%|Hcj(URl-=2O!QbNB9GtJWyj%-=}(UaJI0j6_>hn6<=7M(w+V&s zw+VXjv{5bZrCV(==5bp-_Y#xx{4Efr>&w$k6L32M_3ii^=iJb=8O{blsvND$FH(7a z>gni-Jm2Haqirv#2zLwDBc6~E-BcHup3|e7&2QOq;#i#V4s)x( z3U6BE6HOztV*NRSdrYzrEK`^8D#W)3VR`?3cXsQzLn%~@g$?ExGR)_PiD`)> z){)y@^@qB0qt1zuN@k;e*6lh)Qu{EFE_C|K?SbfrdOmT@7xI3)LC5sAa4U1E5ak?H z%U97jTYGLx2blZ%HeA9?-tV9JypRoWV=ejB@OEjglyxtRa9*4k^>N!tKc-ard4&(T zZ`o9zcccQhKQ%tHc>8F+Twq7+g=VOghV?Iu(o$~OTY2WU5Pa>no*{|Pi z!qazt>TM}h5(^$V5M3NUB1e|6J3JgKcqqQEt?&K}k7Yd1S?$g=6=q=0zV< zg|R(gYFe*H;l`CcYe5G5$~ue*+g1zk!h?C;dslepBjF}e`aPYi7dF0HIw9R-(wi#0 zzoO5e)$^atO9Ly?Ixt{oRC4O%AwBL7CCmYJnE96xVX3XI@lf;(kkZ{yn4jLg-FfpH zx?$GXd>zg73Ht7xIFHO{Z)oHlBX@b)hC_d{L`%1OhAFk(ZJYo^`lEq}=i zyXMNb#YODZGaq+Q@6OjZ1=pFbfJ#!vdz%Bd)dFErol?JmY5<}^*BT4 z&dvqCd~~6Ct=@UPPc;d#i5dKsPTLE@SzC3woMzu~0=0)oPmg(MS)JC<0UVrH{!jky zhExr=YGNrYXNWubMcP{SQ_LyWW(NJhrpqt#AHf|?u_6j&S`6w23km+dK ztY?j4%_`>@KPXGHL(~)LLJF3Hx{0Y|A+L>5*4E~4%)1!DFr|ko_d3jV zw%@Y!jqGwiuIrkkc>STLU3)&kN|L-G&BKbRYV0!W`FPE5)KynK$-F0#`gFXjit8O- z&{}lJ)%Swe_QUYHQ=-1#;luvJf7T{R+TAXjc^c)RD%pN1pTYf@kw0z{*OF0$As)~z zn=T4==rk(IcPRq;-u)n>Y(S>-68ZGxY~dic&UE9r5j-|2J4-fIEQ*M0{@EJ?-csy2 zu-I$hl~=||ajieQr;CQ@&ad~u^dH1W!?}SM0*UJH=q{bpXAxF^ovn-O;MH(zQf?01 zVr{2rYR9N&OeJt@Ia&kpgz(kFUjl{6=S|cMyp=Bdwr)7*Jt*^W)R$=V9SNqXwCbn{2&qGgrp)E0J^1Cxcp4|7Jzls zCP8OZKCqR(L4cLCnspkvg=bxeZkbaSwFOQed+0k`FHte7 zNN{kb^Sx2hK@dZZ#>(o0SY~xmD?&Bg56hli?lQtgvk-B_QI7Cxikz0E{l}7B7U#vF z)7scqr_;;@7OZDo+44xfQYGQxqmsRCfl0!<=K@Pfd;R{VNwkjaw&R0-wCS9~tNCU+ z2&wT@#!nU&dk3jJS8~b|ff}acMZk6#jB`2M&oIglp1AcFhymPIy77t#+X>yse1L>W zJenUniNC*koVJNweHf%e_gcD;yE0ILPA0)ocoPz+{z{Oed4&13uKg$NPZVWW&!Lya}36R*;mnvNO z#ar>%hNcaa!NlX6fa#M>qN`(%&fmyaWB5vO35>~9K3S6GN;6u(4UG#23JV^;bnvu) zVw~lRFKdQ&t9s4J3-knLF`Jea7k8gfe)rgG$$;ZBoQm4BDU4}*tNGmYKkw5bx(-mv zLNQf9JebclZ47l5EujDD(0yU)4kV@$hy|ykt;dJD$QNdK-|72vODn>TN?EI^3WG(qJHu+$J_4Nr<8EeGDtIJ|VCbvE?UH zbH-;vu~2T&52)C6iC{nHAZ@dj4u;|}M;?8noSCdJu4_MABQ%j)eTy{1fPvZ%JnFNIOuSdf? ztm%h3*4>VMI0pfM(I_LEAFPMQ?yUlXELqatm1q-mp}=^ojGAWvw^iUEyBemfDA`i4 z1WvR`nLn*mi=CAIanExfag0Qo(;^`&=jwBh#3E?2NK$+^HSgW?cpse7+wJ*COkpSx zUwzEEwzL!!2oV$0YnUn4SCC}hSsRp=U zj3%mP&p7oCD{7BQ6gGPHBuLKtUDs*4UD@3FgzV7(Jl@V(2n_Z5A5_pm@n*lWO!81jT~lYjyRrOT8)T<)suF{`o~cDrpvw zQ25_1yzVLWO-mH74C|%cjZP^De)Xg1Cj62nJsltMVT=!ZCpjxZq;hX4CNC6hp_}X) zeMN^ff*#uwpZRCV^%m>RY))jPH7p$XORXr~1O~O4*M3MN z5CX=agB@z{c<4rOs!giz<*PEcka}BO-rf#dvYV~##h}N`-N$Jue1F1yKuEmX_MWAt z+!LZ_4w^Wf@!CS^DbIGVFMd5ckdi?fvpz8V?jVY3=V>J$%)uL9!GpJmR(YDH1tsnk z-Z&BuULj_ZKlec%pXy3~o*RmucJ6hV{1&XCp5sa!K9{v`{*#n9JOT8vfSFuP#1aJn zw!pZGcn{{P>qnrzu!Jh;%;jvndMY940pfhCNM-38zWi)z+>^fjaYrZ4`wSLUlh$S(>Jl zgwxKkT;7b8)c{TwVvSLB;XW1nnUPad+rB`b_^=LPjp{Zy0^iZMh#;gEPZP+ScXqK^ zFq%)FJKcXL?uweuV48=cJ7RVyS-^2VAUh<~dSxXAoUnW|Oeqh=yaQW;e?NB-jf)3b zau+ZUVG{&9@c57BP!a-qe=9K~>YE!KWL0SorwSrd#eWVdNED8oDg#kZvdzD0@dAhg z4Ad|XiiBEd7U?CC=Cx2rf;^m}gwDHK4O2LjyV-s7$f)PA#z>>srLeabbJu!RBb^}U z8a@F;N=UiUw4DZh)d#(mWlF_AUzm*wd=H4^2I$ zss(ad7q1C@m^i7bap^j7zEf{NFOYt04Hp&5)=*z!cPOO>Y|EOnAC)*wI%nP@-_gNF=J)I!$+gT6fsgGUtgUd$wK1V$8S+v@d zb`FiZ2X%@h>*-I&3^r)wHCXl{{0<~-s&1xPXB{>w-y^le6)CuR zG`Q>#Lh8M4mrjz~jyGNgCoMABSJAlp|29u5BEYrCzmS_hN*elI-^8veH9Iq`g+6JO z_zn3ARsnyUVb@`~EQ*!Y0rbf86c$1%Txe_ZrAzvA=~^8Qhql7m16mp`VqlMXs9NNc zN-h%KUdfn(QD|O*jd@4g3i_Xb>M=({marKCum$e9zddX$^&JWWS3zsN1Fv2XifN+D z$@!NzrlLLxevcomep#l2ktk?m=Vx|aD!AcyU5)bV)t}5c4r!i>Ue|!&=C^p0(+C8# z>+3h+xvHdOS8ZZ*&ft(C-I7p_Rp#3q%-s;ykr0&5@X9AR%JN?RG*HV>kOA z8##WXT(R`t(3l%E#{;n6!YA1Yc}kFL)3l)~jFDka{UYe=LN%17@&)t)IcP_sD z<>N!HA>n9TGO(}|Z-d@~!s1=cx|FTv+9&IMbf$OfIg#dL*X5cMQtp)UQ`bh*c7sC8PvmC5Ri$&CK8tVZD+E%M3PztvYT zh|@LsEMywJ=j%Z>1&wfQm|0};Kl-A!$aL9PW!!l!TwiyXv!otyVr&gEP-?(>i%FM49g}0 zb2Z>guiC1?XTiX`GdqQmQLwyRZnQg%hS;6}7ZXqy52CPa&fu9`G%gh!p2V^TS=l`` zmpGk`i`*{oq>EiM7%T*~0tc!BZSbfJQpMMhtgyBKZKo^nw)Ex#*%F(QfRC~0fLnw! z()CzbbC?zJx+GAhW)E7vwbh?>DQz$+GFjX6N;8#;Ijg>tF{^pz#_N`nR z&v~DZxw|PrrQ^Y+v}0IVOOOhM`TV{7qDW)rY|JXF1R+dd9XzZ&B`r<;;6QO6U=-&u?qf{@AXL4?rKqfbtIn);^83Xr?W zwpiIC>sXLQOK&lMTsv5bQUV8HXsU8PvDXas4TuLJiSvfp@b&fIb{#+_Qp^feMKy(7O#R83s)nx&E!IP1vX<8U&VVf~Bj zWnpFv1dkQaiHkv@T1Yj@&<64ZhcUzXU(05wah60N)L(hFLu6v zwPw+jU(oE!=xJ1YH_%;K<3MH}m`Yp+z6mC6lFSt>n;RV{i{v4`deVP) zk=hj!z(;ZCC!uBI>Jjt!{ot`HP1>F9`hRca;KJ8g)UjZHA%ovd zZzfJPv=?_(p{7`}zom&Jgy{d4W;FNzLQ1{#SR*Nom|PcOjU?ST>VHQySOWiz)2h*OeK}rFbik z=Uy{((o)N)tq5(v0Cuf;b~8h2MZU0fcZeDH+wFznx#{Dy?HT!<3ps=k+AkrW+UO>C5iM6hBdp;7S~)?P%|5qC5}9j0KmWDf7{tPNZeoV!&LL;Ci3V9EdSE zYfu^Ip;z3&KuuTlA&E+?M`AyMDfoC7!XNkEYQ3WQY(LYkVwm> zYY6&WZ>x9=G1W7Wrq-!jk&cypHVa<`BZl@6YvniACF9;}Nv)TExwrSupK;Eb(faRM zmw#^`)#lc*aaA?Mv`^l_%W>?6zZEHehhn}imq5DjJ8ekIn#CmMs&Ei)s z-vsn79%MJDo;pZ*32$7Jix(Y8AcRD$DdNFsv2sZ^6>B$;Aok_>*RvNKV!o6e4>k|o zGSJG;N`y(>(_;vTTW7Jdbig6W)3T|vvn0mC>JbELhP7!Kjin|eh zbWj&ZU403`M{qRh=I$ile>nn~K9b*dLKu(b(ucRaEALjKD30PpDV3&4lISeU(lpnL z6@zwpzTK=Sis5jt*{I!QQkHM+-c8H0E!%M%+jU*X@fPz}+j(Ia20`Ha-EI^`osLpc z#&Pv~LKqL?`bs4AtU8_6Q+aYBkB`cO{aGc~&g(NRbG?~w=)t<~Z}oekdH-3MVy8KU zFkio#)3ClTdxy94d!@(oo0rj8eey^RJ_h~;C_q9aL_#D)LL@{&Bt$|aL_#D)LL@{& zBt$|aL_#D)LL@{&Bt$|aL_#D)LL@{&Bt$|aL_#D)LL@{&Bt$|aL_#D)LL@}OzmTxG v(!?l00SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZK!JZyz{YIX0KWAdS?XyfRyTy^k0)O z;R~eW;o;}u7X)9z!lL4mQc{xQ;^LCv>-zQUN=kCqrNGzq>vD2(3Q8&}N=gcH3JOX} zDr#yfDz|Rkxp(g&06@ww+yx*2_=1%4LLiU}B+MA_x)PuO;NUv|zW==!akj7h=LUrF z(42=v5aNu1lVp(dP~Q0HO#NaihOZT)z`&QbaVN661|WMj=T4CjI4D}3# z^p<@#z!gO#r-Pu=TmV{GZz?@%j|~hxpl7iScQt+IxC+~D?K_X3n{9j^QH7z;j!qfU zIP`t0rv^9)IQnJK`qzq9EY<~tL?$1?d7uCf1l^1^^1D+T5nWJ#!JLC*NIzO9Jn3YK z!t#){R8C9oVVK<)pX69~zMv~E*a$jp-36|%^3>~XG2HvO3gJHUILBJp@QrO zcDi(9H>@=yOK|lwR|!W@b_RwFW-ab};;j&ewPE!|$5($qHu3_J zQOf-k+&`diB$IoAv~w^xEc)heb~HMGjUt0OstR^;XCveFnM8liX*2~eKmnNT#?s%w zui_CDzz_vsc}rXmI{lRo`=Btux$7X!J)VRB+>G+_nXK&1TVMWKW7b zgcTB5d8mCOrbp-pmVQk{^#VjnRxtWTO#sX3Ud3((oNNXTmG}rV`+c}~HIfceMhA>6 znUb&^y*T2ui5FBas#-3tH>xrlOfQm<9#~S{a)f-4)eUmEwIc>u^m?Cq4oIBNhr2x- z+_gqk)BQ`ltluo5krI^N4<`rUP~8kZ|F6?n_}_x%C4uxCer>(ICHF&`PXybDrV9Ieh|VzVpSdA-hC}_! zU}n2VVb(Cf8wSW7k;opN`H=OUA&Bz5xv7(Undy935nW4%l2;46$c98$+;&7Ks}^F4W_J&hS7+#z`a&&(zz9x-_Zo zi}C|BiC6hwcGwIT_}NlluwDqi_GNpg+dXN;Bt-E^%I{#AcRw4I!s8ZQPuI~a7z`~O zL!N$j=0F|r9~)Biy5^5yj}FI3KMer5zX3F7(ScWpXX+I_FcT)(V&88i_XSAkpbCKA zQ-y&anN%)awb1Z|nGr z$5MW&G!}BsjPDi*&n@N&KHY7S>A;$-aBa&UTsY#f@rATFyz5fXNObVmg#j2Cpn9Y$ zOTu!9QD%YP+3hX0F?!Ht5N^l=6Xb!M9g;{8F*g{dg}qq$@O&jKPq}M6Cu^#)Kd_%Q z3bfMu4EL+=M@&>2(@+d0^nC z&GH}hFc^As42Ai>>usBh<}gUPho4x}kqFX3&OyMLjD-F`fx3SK=o-06WQhQ{CYKrd zwHP$6vLAN*6~_vl(Ez6;3!D=5K!6vc0z(r3Kk%`TXvMs5iFzB=Q1H(?8UMA}EOKtv zO4U)5wFSKjD*j&-vZH`7Qvk32jH&}16;TcwI2wI5TJ|>vPEiDhNs>2)pTcQd%3wek z47dsSQcTYQ$6CHA$p0JCLZ@;699%ygiRk|^@@+AK3yQRu--`af9l|)Z<(=k_|Bnu# z^FP1@{6{s;Vt$K`XFhVA9n&;h8V$g+_NPrgwNj? z2E2g*xBhJ1v*6YZ?lc*282mr>^@>g(dpv^%XfbyG)tdilF`!`ytmit;y_IJ_?EkNB zCF>uX<#U00ExgW{CabIL?~H%!XT^V2__y~+z+M`S3gNNxH~PB^s-1y84;(?u-w{y! z%OQdzxbG*XXv2Tb7WAp3Jg_@FAVmA?1ZR!Fk*fl9{-AF%r){a|II_Ysz}uXn8omSq zw@CgIFuVrmmyQC!{D;+Ii7ZdsBXd%sl9LY)cwlmW@K4}h{L@1Lp`rl%Pcy>)B~D%} zbvsvzOu9PX-xLM}!2p#rJ@vC22k{{E;ekUpf5Xgn&R(M&axsK9_B1vs;^ zB*4WN1u)&c!!QR3z^)3M^Gl*=SpU6VuO3`p$u&krCj$8sL)~eJLc`3C$EQaE0JZ?& z97QsO@g%gaJOgtcz>v0RgF3aC;^z#xMk^LrO#86`}r2GzlOBJ0H5hxDwimR-zw`SCVC-7IhelxUwCr!D1icsWX9uG+e1i}^w zhVMJbB>+P;|K-mj#5|~OAz1cH6SN383!A;!>$k`C&Wh3XW>7A(rFS$dsn-{P9 zr*m>7a*ZItK*BgMqXv6~VP?QExSR^YoYO9klZbSGc;YT%6b&2;>Pn>swN@FVKF>HcDEvJG_&enyYGwkq>)9jKfM-06 zaMl#c3^EJe28})4=jyO&B2WLlvpz{kxZ@EC9qjjD*!haL?w_?eUa(2O%-Y$QXS?>L zw3^-a3sKIOrk^mv?9X@bU!SbC!VF&cLc`>^j)FJ*1t&Lx-V2rM@H>bD;OWl z!A!DH-nlzMo#{}&pD3z8RLdo0fu_9({-BQuJ{|w5KLXpNAQ3j0hj0M1GA!g5)KElP z#2o!WBsJQ$A9~8kNdpG;X+G`H8NXhke(z+P=8rGcv{f zel0*YG)3Vpzmi4OlAnZB$g1{EVnR-5clz}pdy{hvH&%Jw^1Mx5y9mX@RR;!~ zw*lIB4$m8@NnP5+GT(J@qhu0tC&x|lvBQN<_|5M}3S`<7ex}bq2tiP$p5$s12|MRI z#+9(mm=!!DMcqnQ-lHPYB=gD#m1tsE^Z0Am>OlaR7IV z1i|3g-KSensa?Ry?&{gWZY-?>;kI>W6qRPoWli4Onq<-^>zfrvRNbQGidZ#Tvn;C| z%wi?t0_?`_xIHQY(i^f-`)-@VMl??hA5UovQG-)cHKabO{3vn01j}_z?$bebT&)*}G){^&pi^t&KnL57>-ajaEd@u&n-n&qd6q`To1^+(A$g5|S!YQj~ zQ{9KVuXdGN4_3QA?C*24vs$mIFf+L0ER=7FbrPy= znyh={M(pr@zDlhgjYm0`*{OyU5(^*uX?rGx!7+js2l ze%St)y{%#*Q&T0RExah{Fvt2O?|Rg>D-tRe&mw@~mafJ2w#ug8#kk**bXU-%JnujB zedqa-q4hU=v0pNP@hleDu`UuvCE-tqcU)O~(2WQu1E$X-frDCd6=t0Lw%J*Yc5RW1f1<5=; z;|kqP40EW29m9sqQ~AxtRRoto_cGg}3Wht7Y2)B z(~G`$HrcoL9ZMezFOe!CUt)#6F-wK^{t_WF>e1iWKIycN`p%>9@SIGuN1<;Ff25Qq zfApP;P`0yE9hYM{6D^4ZlKu*l?rB<4DaY3ZtD-{nH-sS#Z&Bv7zY4!xxE!A7*)rlW z=J3o~Xh$+A*UF1~Y*;_vCC(q#8X$x}ZucFrL-9UD_SB|Pna zT(GJm+sophDqXE+SxSizwRh3pAuVH`RCQF(b5Q7Jp9`}S6|2rN$cPs%Z6m6wjfOep z#RnP|SovmJIKqM}47F5++qybiWjh&|`|lt>2|@X)eqzJ>h(Lok1;zDu8kjE~Bl9;3m50Nv*ypLY%>}BbRt6{I!J4;< zS!O5AJkwUbmw=svI&VAW#aRldjec&E?PM+_&G!h(L+X0|5lULdP&h)g+9)uvokK@n zE@GIB@US4XBBVgg`jH-W<37cPZNy8*hSYkv)uXa~gm6h88SzrnI5o9XQGD8Ifq@l2 zI#R&cC(ps-WZbvdAm)Q_gvWXNjm*N4eY-zh4oB7Bu6_k}gJUR!UY}f0ekPjE zhq0cE!hz5b!RMPc?pg?5K5eyPpCc5?BUbhbKq0KtB5_t-75eche_HzH>ljq0l+C|s zK__&T%_Bc`>lhYj5Pi$$t6%*6G_hL;nG0e_#Qpjw!h>;6xuWux#q0~N1)w}ab3AJ} z;RunE?;&r|eeM=I@sEhyZmv;FKHqwST(QCV2uH*v+3xvVv7z-4(R}*6s=(n4>~fg7 zSTgJMb)+h4fVuyk6{ttnIJHwGI2dpN?aJ-Msx8Nog z-BHmZO}2MFMGxw64$lrM3p8Q z5`2X9kzr`|(YkU%*Iuea+s>*?{75|_$w#NW61!Y5ZsH*QE`Ds;pnOJ&7Da1om0OB< zGhV4&`Kmmm!Wr|(97u}}H%}@ZJg14Q4l0b7(3?-Zl256t*zNk_k+cS_n zIex_OFtWXf7l`*?x(qyAi^M>gK>!0~TyUm)H7kFw!l>NbReWY29yb+hKWh17<(4cooj z>Nuh}T#$#vj)VxDJI60O5*oBcttxx^dM5d-LQ@Pc2w4s0rykji`4~Li8}TKY%db5v z+_CB7uMkBZgjMm_g{`@k;BeO7*uZV^T|lLg+H1sB9;epXkSt3(A$0*i&J7P4T>Pzx% zj*{MMzao2fLAcFIfX$lLLw?i`bnyjZvz5QQdwB7c8EU?PJ{ z?n+dX)X5KSOUK!BM?%*EqDQEYs|PWHSU-152!{WL$bAb<{&SH_0njWmjX^EPXEdnR zIcC0)ar##+5reP4Ag>;}$O>@bJkS+JW<{hgrkwWuZ&%X887V{LynmP3d3DsQibCwd zQtY;>X@Km9cTef38zS?g zb2I~UnFl0@41J6!-J&ICuamjK&M&0y=3ZKqxs~0rpF-Rw9HQ&fTlbNs@fe8ems`rk zdzKs}ZVtJnQ3B)>^Kw8uoKWcY$qN1^uFM-1^Tw&+IpCl01*^Jcs`B{Pg*50pjh;A} z3$o`;Y?xxX!;<+f^0bv|E z2DWRftif2*p3CGoaXEm)&VNnj!bmn&N2vN#@6N{vBPO{`E;5<)B$FH0EQ-}+scbLU z<)W2#c)bW$Jhk0pQ{xnZbIArxKdgv3C|tiyR=0Gm$8?97#~HJAO|B_EH{4FWgI_~r z>G+rJhpGXKoH@D5k{~0bwpeDXY>HMzvElx#L99aa+9%gUA;f%i+ekzsbbMQ!9YO&) zh;oeu{7WV;O3+*rX+k-0R&QRl+-G9BR(9{g3e|mjo9LaiVwAhmoUGlSIBggX zmfP+n+(M^L7Ltxn(ijvlBbCK+*%zseTeRF;;=c`xHLe7ejvL$GX^*EA1Ih z^J_Z#sU?3A#ri)ha1cdD5C$h}Ot&MdEYAIYiw-9sx#OHhx@Eg?T;1%mzLD>J^Sxe- z9v>8!hfY&ZhV(k^ca;$>euIUDBBCC4Gio@KyEVD#eKUT>HxJ1jzY+CIO_8llwuz{R zyCFO|pr{+q)!DnH;-IGJ)v->o=D<2lzSx@E4Hi_4Rz=YPgu%t(nrSf=L!99>`MlwA zf6`=M{0(7-w$io(GhRe7al3GW7_MRjHl$q$F4}k6?9kUuXZA6&@|8#$oUdsR_474+ z@g!LG8?jKu!Ry7bu`j4>EINdM)QwKA+L;}kZVd-LCQG+&{Kjz+5%iG<>7vT`Dnk3b z;dpcMPoI2U52wW%T~BVKU%ofuZ>UJu_<>L;X0+|VZ-uRSp~7n-CtbK1)b-`gD(mqy z^M-G}Zag$p|aAvdWB<}cJijNPrm2Lygi{nIYhRZSRT?<;j9G_ZXWyP zs~cyrQHW+_ z^m`u=$&ie#(x77nGU8Xlgkp`03*_s~YR$!}n}+`sCZf#gHGxLb0h9y*s4& zs!u1cqDV`9XwdNjRuHja=0@WZoDNvHY4}?2)iQWcV2IzotmL|p{k;QpGFZdi+pv4QE!B1wzv!ti;lQ3b zsbPB8=I&D$)XZFtDbio`tI$U`1oIT94IYUW?(Vht%3nA)YBEflwwZ#RqYD`#~u zB_w)YU$vXrTfs@El@+q-+eabQ#$m;U?8?H}TILBW)~n!$PBVKww!!6&NZDBYmQn9? zaOqFf`@LsK%dLf_UxcZYCoXnlaqpN%YjakZh-kN$r!)@v&$t%WF zD9p|SQ~}qa04xJa0$e^@^%d(xu0NwNg94O)KQ>PS%$Z5hr{zj?4Y*?x^ociQ?$wtJ zNEu)MJ>c1vT=XA$1;)738VCr;(E*doB&sm-os-NDi~LeP&jKj7``_MWm$={7NZ(<4 zkT%uZ7(~$r0~DQCoOuEytaXHADASOe+=5j3!|aQB4%uUXx;2(m$b)?`jZ7)vI`9ia zM#jKCwREG0(SNTNu(TJb4-24xOkIh*clJ7~$feDCvIN*;?8z;uq-(%OQd5|Co?V?` zHd`DRkGvK;Ejru3`{`P3s_tKE|nwLdk0$rpFPpDK4tuvU{KOD(>Qc9b5Z82I98kn{oys?N`no>H4K${=Ji~~j@-<%be!Hbz9+-J z3HRxR?cFPjwx{^mMk(M-J^MxW=GLaGnFK(OBSla1Y;YqB8xE7$**K<49jgnxL((0* z7f^dklgapZ@l4KCKeQdgy%KKpmC?z<<^dTG>j#||`5K5y(*e;`mr(X8>QW98aeMT) zpsxIED;wY1*-;iD0!$Xs58Xi52luI1{}P&c1+1oWh z)l^~tim<~OA*W3<0vJKkhv(jcfwa012^YN?gUu7hiUr0>O4FU1cdqAk{GCFKud6UQ z*!}`US3|4=E++De7iLFb3-b+7PY3YgRA@!Qh;4(wMJFSfPK`?)r13~aEPa)KpWH<^ z#1j)kLs+-n#W`{*@(da}l3dL}23n9`;u;PeId60eBsV6hmu5OXA z^l|BtS%KF^eCA;s+o=r2{OQR&=d>vWGH#|7EdhE zu=HKE)H*-@yjNxL{S(Mk2=|2`9_@WTfX>j+kA#T_1OZb$QIAiN-V{ha+ zIdbULAC~>q<>_JSa_Qf{eNx|)awygu$fZk6@!PfcKwKqWoBqJrVWC)g)*A0UPs{#p zpkMH#Lw1>5&MIGS<%cW6#yX1M^~1|*2m0SHHd|*hi#i<0hJe6CK-@d*>osePl~9V> zoJ;1RAw&2Rvh5+i+AC@M>Ah+x_aY12g`PsBk*Z7-$B(~1e3Ia@(BqsUOuO=yJc5)-O;~2f(QogH4ZEE0o1Z%JyXDG9S7v$E3Y~pD ze28j;eKjS97>geqfMDyRVN}B?;4|Re&n3To7XBlaM6BDgv8^J0tg7CHMYjH$Sv2U2 z&ACYPoi-!Y&MXgqv{C7SwCcKSXuRJfw^rMvXYZ7H{e!~y#IRK7d*cwU(+~Qiz#jIi zSk8rMX@XUbt!m8WJJEOU_s0)=>bnykTd&_w9_Q8GQ53?&FTX|<-NpGBX%GXo99}fz zKW$WxP?}hl1j}~si>1$D*L=Q|H;5SF_&n=>d_Jx`ofz`2S%XAs5}y+JZ1`?a+WMtUeAfvu* zuC5oq8{}ygXIX;&9yJ`msg~Ryg_Goq{a%9ZqaUYVeNG#178e(0C|^(8YfsSk@{mU`4XNbqunCDQNoRy+PHNiAEEHK zHXsBrq!g-7#c>wAb+i)k&2%J}I0`I5uUhO#id)`mPBt=ZPF|oc_;U+ok7tTW zo~IVV)F5*wH8^8iZ5N1vI7#M76`Ulx_a} zLbm)ZX}S@bMXo-Y-(^xc?igT z^qV+^mcIo#8ya--*u6k}j+l{;;h%xlwOFs^ED?%h;@+13;XEAJz94hE+VbN(712o*v0bsaS$qp2(LHCB zkW?s?6FU-Ik#N_hylj=P%LaK{-6>osy8KZ8k+F2SvyZ*5UGH6MJ8$jMm-x63HxqRn zcXRMTxUr8m=3qZH4Ps-|woT*jn`s@V^xa*EXatK<3fGuRSeTUc{tOqsbyuS9U_RluFn{jns>RCKk7w~M^5-VH;gjT?7%gFD{I zy{1XC@9~?@Hfy2r4Q_Kl@6{B<|41-TU9rhF_xw~le^cNJQmB~I;o&L;hDrHn> znK$_)kPfN@oW4r$bMKHN32MCh0e-i_Q9%X;lh~Y~r+K-h?KxwwkSHOLmPk8lfZ~`T zb?P>OIz6(H0`lbbgg&={d~DS&Fp|0_Dk7ge!43$5K*Ol}8zH34)S?I<%;^MXEUGIE z31+=Pi6|Fr+MG{1-5~1E6MizjHuoO)OB*5KKJg*&0QUUPsA)#R|JLFZ^4I7s(0rVuB>r8H@zz>$?~8 z^sObor$&v+b8<%8@~VF8&r{~PX(EG;XA)26swehaab zHrtWVT^`kxIkFue<2kKJ&7Sx`8cX!8HSLmidmSIzP!5wgl*0pULO=0Z*2I`;yinOw zMcWCt-6iff?%B=Xou_cMud(S~yfcF$GxV(Mb(CvO`>GPH5Z2TDFO(!w4 z@1;XwFTBuU0Iwu0Ys3Pl*?GRaeOHfKJANC(m>Hq}aV%L<<}RM$d&Y|lt?3%H#Nb>U z?*rS5Qe^55=ZX;4WiRkgS9g;^^5zpG&#my0!;Pc;FH8)=kv6euOF`=mL89rFHEK+~ zU*gA_KDfVFf=o=wjY0>!5uo@OX?U0b>a|;#!xF9ci|O8>d%;`}gYS;Z@_s~gV2}KL5o<0U+_dw$LkX;v2f2iVTTtLJL+_da@FL>!NCnmY)Azt11Y-wSemZ-v~k_Bd~T z+i>dbyW)ho91-E^6uuJQShlH%xg4;~aD2t03WBWUICd)ZUB_*qWZ~&FVu5lOT9u&Z zaHUhVAW^n)UnpVT%Inl1VQTby8Sa2vgg#cw3v>kgPmB-;mUc*qIyi2__n^e5xIng* zSnvX0ywR`4)>$u6XD(24$%r)0X!SDjlF_YvkE4RRQr!J|y^{A{$UM;uoarb?Uq~9= z%fjb&OL(y2jF1bS`Vi1tezaN3k&f3O*5OQ-*9X>P;-zE5cWQ(}JlmF(a!l{q?%l8V z5|CW4Aar+&*@W*9t>-|W)!hv;D18ehd;0G37Gw87mIicfbro7k%~+63*{Krrk+6}~ zDoOOQSOeW=Iy2|^q`0vcD;T;b<0Vi-3sQT<@4%ygI?#KYl&vRRy(nM*#3jU~I<;hf zwigWj?XZ_RP(L`AUtixN@ur%g$(Rcn59@q zoRK`}@i{AWs|TyQL2o`a>N+WI@N$SZt<=qTqswN!I_1wCJeI9F+lO(l0ycd(-;Y-X zzs}=f$6iIik@v@azVLSA9jSrvQs1cwXYyJ3Oa9MU)~A?+O|R*#Cx{lwAO@m$5^JcC zRmmkzoyGXyoyJ0}ln4I`Hfy&-B~ z@(Rs0dCPoJbjn_YQ-mm27kJ#&XTGJj7vKY)32pYj<9h0RD5*p%Q8l4@}T8@$H zhmd-+Y>vYj7VDmWXAlN%Q*{Kq-7S6Jyq5OC$~P?-L!nGOjdEGNnYfW@u12&!z8f+MO+xEj3e%P9h{F#7>$BefHL7`bv#X%$7FRci+v)p1+P8q(-M_ zOF!2~4!^_&(*x?6B*K>ZfR=kTH9!Lh|WM4-N zw^qdeDQW*HVT-UkC5YOEyoDrvRB(lfjeN?&%_Jf10z_n-fpP4=$1Dbvc z-MEnL9vaV1Puo~%DmvBDHfrU-tDWOs$b&_8vuY9%&EB0GpbnxgX z%6Y!|o!+dw@XjtUw=3?_jXRTcFG{$TT2&>OxrCRY1rxP3-OvNqX5OgUaSn6f8@n%? z<^wH{MzymvzsG8O?kssMU5Wy#%jE@OCsV;ZYTuOJh|bz{dk_NUNX*0x^=W;BRIR=1 z9_*gm6^#g@s7VN^k{*kA;r`h%!}jjg{D93%@k&d4+1wag)2E8|kG9_JgcKLD>Z87^ zUP}F*;(5=XX55uil%4A20)7%Myo7klsoy)&m&^pXeyz!Krm-1#rI7`Ps_d%06D0X! z*4-sa4qRY&g!!K|#a}4=Xo{hHzUul;Bw>(KmG2Cl+9OHSzKbYdMuE}%QXO1u%@}h_ zLhxM(XFXykn?&N2+4{1G2N#9eg4irw(RVK0wd?0@3SNXooODDp8dQ~vhyLu(JW6cN zaJ<|pmVf?a7_p8@RiXT>kl#8UyG2<7m(=s_EB9bxE5o)!lk;?dM}t+LFJ7Ka);WP( zU*UdfbkGm|B2^z`>bpUJaFmhL{YsU(Gp?D{0x};Q^j_fci>p~X^o{qCePVcWYU*~> z6z8J!B)@pb5-c+5-V4yp+4+Dh?!9B5utqIFk6LW%c0fw-BHeSxk~I+#a~7Uro%*MM zpl|tv62pys0UE9IK?6NQ4u{=ad?9xkZEeNMl=jn~hMbOrHk9sl)L%K9TgC=`w;tp3 zu`ySz!g%$bP;H%HfT2?>kdSny;%*`H$&JTl@Hg8b*`2Sm&qBWp&{_d*148dIY}2G$ zMO4xCd!Z||+6yYig4qweWQ?5pTE&Ij6AM1hr~&Wz-E%)FxWvz8uEZX4ab^B`8b7RM z7c5i1@#9j;{wu=-N-X(cV#bP?Xo+v_y?Q$dV) z8-0<77r3t5^J$dffHM>jjIG8+EkW?FC+zL8UNVn6Z~lCo`TeBILhH>)c9~l80~HKc z_XsnG$%fG#R%j9j;ipt$2H#Em?KmL+nplz3z`j|T61k%N(_pnW)o@#zZ-()2E1Wh~ ziG!Whc@Kr*Oq$5zO}l92L@@>1(2_3k>6U=Tw?INj27d^Ws3>rEQ6U?4}wX z9=~*yzbaQAelL06Q{P}Z%%df?@orE_b}2fZAKNfZn4}je%%3zRFD+!MM>ouu`{d(4 zYgTl1zg!0#Y6Q{@;&+;r>S!v;payNL~Q61RL@m=iZ#Xseh(xdoERR;&T z@`6{Tg@mAZHXJ2lnOZEpy5&hBq2&+zpHY;f-2dwSn`x0r!=ro;MJlUFY8$qE-*iu| zb=;b8(MFKu+vK^USTGnLVb&MK+DJ}wXhForSd5EBqvFB|umWp_2eQ`2ZTE$Tx^M?s zmQt^`okru{rmZxKpKA@U51T*M^hd zMAKF;rVVDxw(JY#Gt$=tBBU)5*X(fzfp^c_Fz9;*6+CSzZ~)6q2q|iz8WNneMU5LB>PXzx^ob`X*?yV|}+ zzc0L6ODpuU3pEkj*?A9Z2C;Bm{(d5QbBnLJ4*hEsW0zV98*lA~a&s{-o1|%v6T2~t!Ai#@f9uw< za#u7LF9y+r|J7WV3NYFSgZ^(l_B~D^j`9c*Q8fA05L5#;wM|3`O^#ATofNGbfeO$V zyW)>5C0bK$*cS=k)*CAOk-{J%0#hU!%IznLU-2V|Cq)Y~rv}DuB21xRbuV^*i+g{v zKc>JvRUf^f*9K;8goBjV=LG?$3J11K=QehcgYbQT(-YtYoF&dqzjfj+?O&s%VXr92 z`IVLFBdqZYBXI$^1o*sC$kf>GZ6sX#O&x_Jz?Py-JG!w|Xj0#;h!|U@9HIBJXS#8sSaGKyJ-aGaPCwGZ@N3VMDz-Q%GsmZg>%WEc= zA3B=$P3J*>vfX;0FLLtwU@hW;y<)*v(RO2<&P7k{5L{8jw?LTUvmv9@-@SV)#z%|^ zM!p{-l7jQbi&Gtoa`wVzL;1p(SB#C!Ax9Y659N62@rRwY$ywDe?0LTd0Wa4tLZr2-P8?z|6~s z*VCE#0(gMm+PPq~Z4uD>qqTukQ4GS>xc?(V9vdQp;uYNRH&!1{G#dP;bqIX zzAJZqOS!4tj3wT(Y!6(3De_;%b>cQ|KnOiIteAsdv$bP{m@Cgspos)rneI%wC7S zd+_*`MU%*q7H7i_Is( zD=GnhenBC+PYfFQl@KRQo?EZ^qt6M|SgKN=H16fZukXVo_MJMw6O??z*I<4uVwDoe z))c!9f`~3rWkWEs4lbIv(w8Bc#P*0{r}1(nqc%t|;ds2|6uvhAzPFwlCpmcEI(2x; z%r)*qi&FYhG>q&KRW94(8X<6v%hOtXj-T>t9^dFjafFl~hk$o`M}16srORBAM!ksJ z*PPO{9K6N842-wOcfQ&oAPouQi=_^iLGXf<6(}!Hif?_3|MWXoy0AD~10khcy?1yO zhm9X7v7OYl+^aEGPS$s?dwGn!Ija0Bey6_d1xlek{$fQ!JSR3c`1&*bbNb1hcp9YD zxbiFMTIC@d=1CeuSAF`p!kyOGZt&n-C?PtrY0Sa*hmBO2Q-Wwp>`+%lFSEhZ*4RnY zF-0LT-~%ZmDKF%wF>Nyk*5HzXKalOwnD+2mPJYos9`Z@HZ1>;Ge9lX^ljUkTj8PUEk%<*}d4_h~TdpC^(YCc5NL2gRL&=v1pKw9E+5!v2r(e1b% z;i&u;%_1FQ@rUjA>^73GH3^oSukg&I0x6IX*|7MO4~`264lwJY*0*Rb2j8tTihGNu z6_rPQwdgAGQ9^Tz%7Z$pu_+sYJPoaAT`a!Jq8sdVk(ws_{bNGm*!pLdgSa<7;Q5Wy z3|V9FNzIFn?~sSgHsjkb?Jc&>$av0g0ot2#^Zg!y)^`u?u?2t8uca#NWjQDu1Y9sA z_xb5{9z@@_ckkyZVj76E>)$ih*L$Oz=BsxHkiPsQa_dLoPL4*7qp@kPys(MI77F)sy%YHF0761#XGiHbMxsK$J#N-_x4j@mwD*L`lAkmJ zFHc%x8E*VuC4S)f7CCR3z;0BbyrBS7?%;y?1!|!Hb~!ruW5~{@BJ`Y5iHe%V=rh;C zOlfFx)c6>?nFT@SUGvyLzRO%pK~Gv#?Im2c^?0XY*+SWqmE=ak_=YdGWp#`_Ktc?hf>3#fE&`nziq%xXs{>2p>LwXC}WAWxb z&z9VtWDaBd7y24PK^4&f>+_kt8X+>DIfj6rIoL|1x1BS`Q2)Y@n@JcBNbePyM5b!Z zaMi0{o5rU;Wv;up$(8dW6iLwj2{2#S_EPX3P$2|oih&!2K*{jJGFc6 z#QqW;(4CGJbIzCy_U(8eX@J6FuR$NiTE{Ee`c{tZ4mO>=)%QlvBV5#% zhk0jD7=xUMhJddKViSEsA&w(bW5B`nM^KPsruH&p&(YTQEw@W}4uNTo{hZ$sJfRhm z0n+H0EydJFx2`%Eio6A$-VWsMVKt@LOf8v|vi5klGt#SI{Oj^yz71mw)9*_;hS_eo zJ)YZai$C4OiPV!SPg~+zW$)ZPKDe~m5}(X>k|O$u##9Z=Xf(?Kpc&JJfbQwyI7N%YB;K%%eL zER?HM6<0Oqb>}wUskGSb-P0G9o;B8=Hx=cjiSnM^N|C*hDzeTG8-DOVs`)5Bx;&>q`HIFG26BEHlwwsmhU1 zoCJq%E3Vt$v?}#&jgWXNl`8~KQQ#J_zlmp^vWK59BN>ThJz;VDHk6upB|64{D<3Ha zVnPOqNDO5ti`*!NVJG{>1$oAx{CupeF6pM_6|Qlmk&9z75z1GztFXHA*Tk{ zV#09FBDo5Nk0a=aQDfe5UgDkl^jqUk-;R%HSx;$$Coc?Vc191hJCa1JqrF{dSRQ^T zIDW8Z!}z45;9Y-b%CFT;L=)*#TS1s**@4jS=d7Je~9N9a1Pn|8eSqt-1C4XiXaVsLR{$ zdd}aA=Jjwoz%9FG-A}$JRMYykl4}ZcH>z>3z3Ui5tU39_L2LUxehU0A6=zhFDve#y zMn3nYt2y$AKg-0`PJlkk>3LTN;r&~VDRG0;)xr<)PeMwSGZqHZyPx{c=L{ls294jN zOu0sCm6PoYJ!mbGEq<=MHIFX&fWF)T@jZWhy~0>;uOz-RP~SDaPs`3nS?rZIcF^b( z>JrXsw4`XF+^Eo|z+!Dxrq?#RNJA2fkPI)kDNklqe`1J=Gt3vYefz%{d+%tt;k2*+*L5Ma;lwhKFX7nf_GNL76649bXh#+dz(R(kW_hAq{h?WpRa<=DL z?{BTM*7?2b{4;j>GR7LSKl{3``?`~&)=bmQoWmu%#hp1~QHqgHnkE?@rpZz+1Li9} zRd&JBMIyNB!f|`$cQG_8PiDrdBdezL-#=NkNUe8`t;rke>v_=A&?i{-v{9{pp5ag*czd}Yd>(iUq1CXLiQPovn*JoBYo&k ztYS&-aoHq=T}AhQ@adK*{pF@|4qkoEt=z1a5RllBJX#`q45|<+Vq7KJyIlPsXAH+$ zO*fe}y+9}soXdh;gYOs7WElm0Tp!suc-@6pSoqn6+aqMr&Aie6BMnRdQyE*1hFphkFKFu^4#VCvRio#A$ zifTWk-P#k6?g_VsX0tBS;pc3KEXWB!aNy7*;=V*UA7m-dT!4xU&2>w%J@Y3}pvlY&Dq-q=>VSyHCfGDs!u57F0re ziMT}9Nt!dZh5c+MKaV80C$D135Day~NN)CH*57f`U9aj4JU$ppkklBJ+pwUO1K-+c z|09SI-w|r1$c_5LHN}7ed``T!MHruznmpw)Tl$6(qbyTw{Qc%;PY<0RtF#&_cWe`X zpH$08M34Us`^2uydLNo^(|t?Q#!;es;#KF_GlfCmO}oeVFqH_y0CJ(j-s;v7hXL=e z!pwOmHGd~qM7-uv48r^)hkn^u>cboqy{ANC|6#g*CaJV5TsBXt@vU%C5d5o-+ZMRz z-T2mQqEWGW`%$j!SZX`IeSiHD1{&1gy7?*4IZR`gpGj42`g#WXRI_uAtEcVP6Rw}j z-J(M!Di)5c_eVp^lpE>k++-DNJeTN@e>lf=+#_qE)zj}rLoeu%^_;WV5#>e;P-Qsh z!Uycn_F?3zBWt3D1wVnzK!*gyh+HVRz)!JqWPMgWUHlw+U;ZAwr?6Dz%>*|=s28U! zwsY!;kwa0c%DNNT+219Mjm+^I?r;jj`JF=p$=F3v#48WRsXSX?YNuYRm!6I?Vo69C z!1(-Ei;7zM-cs~o)(a9K4PrxP^Isz=dA2}xY#3NT$kc zBPx4*xR7TYJ?#kM%=JYHH;Dj)Sf0hlzv<;}ICi-BzkQ zzQqsi2|$0yZR7Liznr^9H^y&n*ayB)&KzP6@)_&jb0zcH{k+mEI4N~NHvx-oK^rE5LRxN1#QDQ4lg%pF)dV;&^gphD?W z&t^yKG@G%Ah`x_D{=2l5ZcH?{i(jL}roDWCC6muy+dk-y$k3Nm-b;nw3(fn$PpgC1PajKJ4|$L$@J5WqM775X z<~-O9lWLB9sUJK_ukuk@HD6d7#-+L002BMBLaj0!8B{|{H{h#c7EkWLl{{4xdHOYg z4KPmM7^=S}ZM*yvC2KR)XyJKVWJxb1ud&wYFBN3a%*rehI)UwLv}`5L4oC!r4_Eye znO^_moG0oWq7}|VM>+3oUrpfk(2SU>wZ|9cv{U#vqEQFpZg`#XhpOA;#<$$G|4?HL zLQY@bWRDI~8sPulaOj+z?X5T95N?s0x!}2O@#{zLgTx27OIwHun}=xcu!%CRL`R1o zo;N~j3rRePZvIt`%ZJ>S6t)-LpZ5M>COzCe=)} zL)9Z5!3NxN%cd4&^9r%yX*uY1dRN7IcRBGKS$7wYIfS*Yn*oYss<5xYz}+R7_n;)Q z4Ai~stm%@wqNWQRE{NjML~7K@7AD&pt-C=Lm0fZnmjb}7)#3sonuv7@TDO5 zBVOFd7-%h<2D{{pLI}&3*GTv_#^}48X4f+AQnlVutT(v)yvw^ZoS$YSP9AbDT#J^w z_1HZUYamiHy#5)~{TKV-h>o-s`*P7hE+cYmvz_!79R2}(LgDuxHK)OH@I7Raz;x^Sc~xmJKRJTcngdEB0Z1% zZhCjuT{^o8kLd2Vm?w_8(#7&{&D&EZHU;LU97P7U`ghu@UPb(k8_k7NN&xiu`2T3wQ0U~!8eH&MnRz$kLmQZ@2QK=LUqDu;~+Wv>ixtI z>TD=0_KD-hc@Xz}mTfWme|o4N_wfX^B{lC8Prn2Uq*7?&1qO#Pu9kNrYssGB7)y7aGxHE zJbazFzHsMJL-cO$=L{zkyzXt9xFr$!cp&740<_wOz9|dkIKJ5ycF zxj0E$`NbP;oK%B@X}071!o`5IhA;YR$~-{cF8H?OGbF!i4q7=48=DKI_*$X&CKdCC zhwK)^KExnFf%y6{$@B9=&)Y!53NgwCC|V(Q7x$wT$KH4zTtyOZANmp!d=bX|Pbm$! zwTQm|Z&>gMP1P(3Edz`-Tk+=Z`7zuEE#O}zW$_bW`Y!?u!8mjT^bcjxG5K%_=gkrmP+OqDvgQ6;Oan#5M(8B_G{{UZ(@5}!200Row}#xZa%r!YeTrg z*Ay$!Ebv{*NoshQbG9=*5xy8``@z_io=ktMy*vGt4$601)-ZH1tUr9sb4b}|KnST> z7_E8iOE@@R_|Aim(VdUXFQEos)ju@x4dIBDPlP*n-_zt;u-QE|Rc9wzT}hlK>3N&@ z$%K9Jrq1PcA4QXxmyj-l@5#pLM??EBZ|33mYhu*XUUT9pF)1mdIw&t?j)Ck}U+0na z8DHm?s6MQ6qp{+b#SZtDsA2UqI`_z_gT)TV>|VT!uTx7D_(^lZgjBq@M;8Idb z_z*5!1RYLts0Ep*J9wd|L|?+h(IJ6{6KcZ={d|aQRX`4TgyZ}5kXZ^S8wDgz@!RqG6(TNw_$=GwSkU%T+8sM<-scFB?i zFx+H-aQ!08S$?VocuxL4A)u`7ZB^cA{iqD|+0J5HoW(8qmTG0uKReyR3wyT{?rqJl ze2jNhVnB1O5@GcD=bTdb2a?uTeBbc%`DR2!{keY9V(l5=FVU%^dVIVD{L=_vKe9Kbdt5`*(Bd!#?Y z$JIn>*Ud#x^qIj^LP1V6s>8`uyc zrF25|yRJyz%0T^CgNYAu<$qOsc`YdKE7|GlEosG`)xhzjdZA!vj`qK;^vy#oH=ERo z>+0SATthRiX52e$UxUY;jO}^^1hueD4-4x&e$;Haz zFPaMLwk8J?2cvD?UF~manUYfuLSK)$Hce5BoDH0P@pvofss9lmh{Go-B{n3lq)z3H zsD1{B(|D=UUMyBxD|oS$N_EZ4`~N6WbJb=)c>1Gy@06(^YMT0O>XhQ4qLYTT{OQVA zhMuN%V!$vD%TK>t`${dYAG2%zzPO0K^y{dc#XrbdG)s$&zxwVVUZ9-$H9{tRT$TFo zE61cQVt$Vv)06hs@en1E$#3Hdt&@3bD~>~+b}gK9&w^`(6!(akH;Dv9IUWURFZaBc zK)mwxNsnyXzS@sV2=45?sI!DU-FW->Fl66s;WmZ!0pdf#-JrgDX=ZVwp%_hFL`?>o z`@pFFm8lKG#mfuUJFYv!4vRW3uASBRj}Y%G*ABN*TZ>U>L=I3#lhk-I{9B@Tnh1Vo z0nx#x$yL7Kz9_P$D^Azk7KHlP$?f09x^PbGx+s>5vRcS_r?E`yUJ7PmyFs$_$U3DJ zm)1X%7KkypyUkNM$=WHc;<=os^zM`;di3tEie)hKaA&ur;5*DO7ow}fEfU>@!K?y* zFsx+uQ>7gg$0}=^;P~05E3*=lOj_mAwkw_-%Vt+@-o4`zEM@_=JMtk%e%eM>#TF@f z^dcDNs(w1Lb~#7Z*k3I&h1)6STjcn24Nk7;f%o)7^6u)he4GwL@{Z!KtG#0#Iz0yM zlZv`!+TODGjyCX8epW1u^)WShiSUQzIpy(PO)clBPKtMDTf#*mE2d=H!jO`4u6k8@ zb;&awv>RioTt=?B(o^2~h~C4rQXN#iu^Yk2$^w5Bi99M}FMCVY)g z&)Q!vSjL$l><6Wq19)+d1mx8dy9?H!DF}ys&~3nXQvkXvTo|G`&T%u5a4lL|>C%N? zGvNm22?#f)frK?jFnVMF?)v2&HRihgs@l>^GlF7->t*xUr`-ias%0Ohf3ym@#Uj|CPfOD*c3~blsJ~BM%a}jIQVE|-C5Y6$x_9G#j{XRs=>AdS`0>{T=QiI zZ7zoGjg2qg49aW@L+8*}UmWYFJd;Qyr}yhR>&CaKp&P@tN@G{~frT8Pd+edyF3)NT zgc7U$4GLZC2fT6E$VmiZ5V+lYug`j!XX-QN=J<_2yr@TmK*=aO7nu%b;Mnhm_uFTb zlpak!2mC09kel6G@8BmA!(c|nObb}QvV4>1C!PG-To_nyq#J*MWS_lQr`#NzBOaX9 zsdCN60Ry3zfU+fFEn7xP0{up%rAsmY&8G%e_zbJ(PjI~Q~mFav#9O4i_@xCpHJqV<>@FDEW_}e@Q20J zZfA!gbyhzfI5vbkD7T27#Hti=)E=$3M}MwpXLk8h;$26APyDLk8T|`GQQi=2rW~cV z9r932Gs0SPS2^jpx9|PaMTR&1_dW3a4$m|nyx9)1Q_}qWhI3(K!VQ};&iVs%?%FC= z#PN_;c(hI!=KXA16q>n*AFITq)H>>haG>cVfklDD<=T8B{Md6@V6P;&BFa*FR=B4o z>KY)nt{cLlxwubZ{o{Iwah=*1>N#jiu-^qI;D71^>7e)Y=43!Cyqzrj^m^U)?Ux68 zM7CW~UFBt*3-gtCKi*1|l7Tjah-4^>a~95XN|=HkM;*t$EQXZi-?1f=>LqSpd|d?P z_`8!)tJyd>9ZKd>4j}2CNFzMuoZa-nW^u{^3Z{M4|B(aGOLVAv-GjtYX`FLh1T}jn zAhjCM!)TmqM$M#)22sA&0pH?NIQI#c8CI55j$^>f*e`mQOlIO{Vv@dajn(_3*4uh(}3>Xs( z6PUkZcmHdKZgNGM= z+t-!!l=H&hY99HfqNd@wECa-Si2=ZY1$Nj!FwTt=a5;IG8QS`HagT>I(`^?K__=55 zkZy$P58svE`L*77zr8x{YL?wr;;rA;7K6w0?`jXZP^6^YV(j=j0a^Fp zvQ;u{zW5Qx4fE|uZ>2x|R6q2HCc*vu(*UM^gjgl#BJ-e(=3TS&3CUf+2-Xc4r*i(x z^i3?4qQ&$FAdde1@J`kakoj;HtPd0WAs{=yaZ?A@{%qWCan9baIq$yz;hj$B{(}->Y%OEAh84cOD&6y}q4VxP^JhHY8EijPWK2cX z60+W;r`=i`+27c^?aX=bC|rvp5Q6ifgf+~*Lh}fH= zJY;j>eO}px-;g;{?_z&52%Yb>RbNFB?Zp)zm);gRKfv8zqr<8+JW7@BePz7mh(R15 zFMATUwgXn~v1KSN-nIQYakFmP=#~r_-_Py_%hX}6y`cN4@>So2{LUQ^9R$m;J@yBf z5jYax%{%S?dOJq9S?zSG%Xcfdp-YT_jGTOJ^`1ka-sFZ#EaE}?@6yN!RR|*emor?)X?H3>!svBv#Tu?3DRDI^iUU7{AUrPE7OO}Xu7jl_K8XVK*8XeC zQhVC`bI*iiq*>+tdnX;8tu|722bp%w1CqKAF z*392Z%Ox{Y{^}M8iZbs9h)Ou(s=`Wg9*WgwOMev8h@D#r+W3Yw`}ac(vLR8<FfzmbEo=rbbmrMOKu%I^oq)mXU>sE3v8F1WhmsNNqGh z0pEQkYwEEhNF2}PA41(+SyLY5tOC&rs5)c7#qG&9w42xTn z&rED9&6R#wqyTpFjrp>JPp^q$H}Xyd{bjMzNJdd!oV|ckhj$DwicMCY%5F5Gcm`Q! zD)uglL&`#vhSj!`RWdeTvcsdDsa+cQChf2w0b~mSLpr)1LN5WH`1tf}Fxun?K%>W> z<5dB0+N0N7i5&Qg)L(ziN&$QxTGT|th95)RAo!=evcQR}K;4HC;=pfU4_-68er{~C z4)k~bjAw|8BZR}~&j>sMXs#0CXv{AUg=oN7c$VV+BFm-?F93Zv!3fZHVTjPC%4I%e z_Nq`VKw4KDH5o@#)HrvwF>NQD?y-`1eXLoJcg;zS`Kdcn5p(1(Id2B$Nd-Jep!ZDm z78S}5dgX7etIsM||9FCHR`D}c2M2G3VI4Ea)&Y#ZmheU3-zt<>B%b{XH+w9}t<#UU zNLook65lD)Iki$bx(H74_v69eMJ5ML<}s_pRJVk9%4c@-wb;F{lyMa$=n$gUZidrN zBcJCJv9&Khwgt>vy)~~v`Nc_vC>!VTYAmYm5Kj9_zqN8ruYXO99NEo|G>XD5%H!Xt zqs0@P`lUO|3wQsvV*b64#*(W$5Z}v7B?7XGcf#ayqEC4JSCXhHJfACp@&A9V>Kyhy zqBZ|DOpCu(XJa#_cI-anc!T+|5id((eb(fIyJ+Ejecq;+?r3i7>b{ng*yrm*A?l?I(mvlwIErU-Au!O<-y={2?W_VM=qt1~cfj*`DwMAn!; zFFRIWIia4t<`9qJc_tx}$uEw$(~KY8 ztd3AQW_gtX%`IvJrU%H&My<8$#B+T0Oe~3p^^zLDPi}=|SB{EG?GE5>vTAD{Q=!R% z6O-qEy?IWbtvl7=252}6$SpDM0lp4lBZh)#DFsFtO}o0PR7u-5j4XhX3ZGG8E|s$8 z_UiR4odZ7AHt0bvjU`6 z0N)_+G9st$%O9~m4-yO~R1(xuru2|#MhK3!V0ZO$k=|UZ*DN4tvpz#E4jyQM5pkEk zpkRIBLh*wBC)no-MhJUe)NCxN1BQw%uowRyC(GcP|3f)6jHfj%Aesd4PylWM=bvuu zl|k&$th&3O7wB&Sh`~>avzDs#e?@kBCOp}N4=-w8)CCQYQh<#|Cp$)KK*6KbH`hXH zGXuhX#Qib(ziA+68RQm)S?Y(=Bk0~LBV=+=)J#uorqfq|2>8Ednq)-v8TEWZ!$R4~~cbSyYg`_ZK|j+LzUP3@L) z*apu0!JRPn7@1IcH3bATFJMn?k3Tip=SC1``M7(opWYuD@mtk=;$?KG78>f`DLF6Q zqYdU+mDg*Ry!+K`)J8$VZFQbIQ+oARny7xA_n3s%Z*FQ1@4EKF+l{8GuXhdq21YiJ zCs?0Ncto=~d);weS8<@j-K!ZBFNx5PyI#r|_cLR@AY(tc+R$UQ;=sIGZ6&C)uSf8a zQFi0qRV;$>F_-ijIs-ttyt;SffBRFkZ(m%W;q(?vseSYd!`7l}8F>OSY-oWla%8Na zx~l0r59rG6^?Py18Ap`S9{!{+fUVNg+TXpD(vRI)4vAZabr(Z+WEF%hdbDxzBL&ss z>^>h6nOlnUmM<+US+4Q=WkqfM>QjQTt{KRe3Q=A1PsciEG z9=|!0{Ly%wiBXQ9mJWZKb#s!0eQ4gfbd_v=$RZB`3{-i5*65kHB4q3Yr%lKnj49D9 zKyt0`)C=gZap!^Hh&$M~&3FH(Q~vV#6RWn2E7ZUW>DnzZv=H!;H#UF9Ap9o>Hh9K5 zd=f+jvES2Izg6E~r4(A!>?jLsPBxY>hpkUQq_Ow!jWOp)kG&t0(Ui22(Q#Mjg^z9 zav8zKrg+G@vX+}61Es{nwQz|ZvfZY!v(VAc4j4WfO@fTt+?O%w;*|hK>MIk5Aa-PEVoM3s04kd~0iBE3> z?RGEmb(ao25ApI<#YPLGN4e0R=>JmE$19-lA|PDt3b#s}ysTga73d|)ojr&Lp-Wk~ zUb9NEcnU8366|F`XgC!Pm{*xD53>-hYT%WR$S$6SzvwA= z8k*~`p1@E0fhRm&$0+FO>16+ zer1Ef^c3@t-#sa(1rJ|bI}a-6Vh5ybd&@Zs<_D3O>W8gs$rV0 z0!`1`%!sF3%$`Rokk|j2RMJ8ZIZ3WwKFS=8Fn4=g8R0_5!|qm_eys7& z{!Jgp%4EyiR0jS7QREUC{N)$0j3}J(QKh>Ak%WYx$tdQsc%PR+_67ef0cB(A4{w$( zd=OjlNrLsnza?UbYh@r08{DZRDNYthR6+xivhj0`cQHc0CEaLs%xqUIdZt=d4Vw(r zfk$gjr%V#Cdw`WsWikoheUCsO#}@&%sJg<7R`1vH0iuT$?>Z?#3Au62&WzpY?)*MP zbG;@($6>}vslZrj>j{;*j#*)$t*Pp}>UYl~UPuxhCFS>q-TJCVe3(H2yP}AtRn%gf zx?45CbNsB~31xcXjd+%)0-nhUYpafBvJ5SoA7ErY{M02LL=5C;P9hg#Uj8v%^Fto% zfH~dq!%sRA`^gzWUuKthfj~&BAUN|3&R;DM^CMNSOn?KwoJ>x{rGhCEC|1%N7d? zJ&PUMQedg7W`7pu^*L$=6o4QdVCz^DeaZ4AD1oXIItnO>C8tfrmG7=WIvhwONiSul za7eD9DKKOR%bk6y$fb@5UE}xA;9A?Oia{+I;_je~|w@>r0a#Qn#mxwM8 zizr%+Lv1Ejb%uN#ewY1o5Avm28S~? zHT!0Yw=Ij$vvBW^0(?T?`T{IXgGaurB`x`Fa`P{r=>n}^0N%iN{xc8RRmwv9IafI8QnIzyA!0ePrW`d^O@cduDnd>CPO! zTJo`#Uj1iLf*WKtIU8@9trfjbCTo$4@em2i< zUE|Jh$nE3#z+%8R?P_*C`IGYT?H@yQ$vXC2fkTR^(gK3}*RPk>(L#8&qRb7rh2if@ z2>-@Z(h6&8EE`HEq0uE_3zmntyc=q(s75%;Sshwr?KG^1JV{)z0nqx+;qJ$Xpm->+ z7eqXx_%rBEcInduY(($21EzNxFcWBXCR^;Bc^qxdGv?OIZ0~x9wM8!@x()SSU>W{=^Qscf89o{xz{7h!ObmfceN+KTE>ixJog1&~N=2;4b z(%9f+-}lfP#nNWU5CIZ1>sTko1bn5^YaxQ7%u)JTSI*%#gg6_G{jR5AOTLE4%$fS> zH%Mw&fGaeDkEUC`*fdR81DW41Dtzd|+HXE-8ROv29TgzK1p488Z9*hew;qW=xmE+5 zJeh18eSJ96y>Q;n63BPn>UO5%yF!^BJ@hh}hKjbHi=Du`(TAq@t6JCpSYJIq3b?MB za*`Os+n|%BDdZNl*LWzZN%vHbV9ZZCaZ3% zLUkXqAd|atTstOwtS*X><~SQZP)h!)EFiRbauX$thHeI-dM4}*tStjtV= zit}O61^18zc#a)XQH{B;pPk!FfZWIH(jPyTkI4F7^M9vX{`RVS0*&ZHn4cmRiyhb9R zwicNmiOEsn38po~p4bF~$0HZh=A73OjK!PEluKLx%z7!8hV9B8kFgM5BFutKRKzyQ z29JLTR!3Lgn<_ho!^?LxC7q4TCFd43MTSPxp`#WL8KujLHQ}$@D>>U<7UNBmVn}{E zQ#;JMw8bd&*RV>tbTDB%STJmI(5|Z9{=orOWVwS=Yz_l}RSd6?EDj8#%B94oSd z-lFpq5UF^WuAexG)cjBLkDByY8klOO5b zIHk~ht2$r@aL%ChYz4Gwhx8t*MkIOsrm+5Q%S%bI!1mj8orwD^=qi|^tr^N(t*k9F z0=bQ*VTdD_2M0r(x5;1Nh+E0TjUQE?-=Ua4^jM7sgCqhEUpXWjgjp&P>0v0`GS&Eb zd9ku+eRc8VTRV);e~#(eX~vt@EE(p4qdEK7wA$-IUwR+g%vFrsKJdU_-pXEERFNYa z77L`ZUm^7ag!0iSj}>XPZ)R;8-0L|z_d|HSjA946=&8z&$N4*{4gF=f2} zzzI!)Xq|Z2dLAUXCEBK0`Mg5Q80-y%mi$6`(G-br^8jtYF(7CZeyv4XH6rT7hWB~Z zZ!jDKU}4unrjP+3N{}1^tgKq@mN2@LCC2Bw!XhXE&0!nTG+v057StZI;LBn8$G|I54e{t&;aw&Cr(cy{x4Ax zxj<61JigFTw)%Rv3Ib*SXBy1sHDbIZPrNN}LpJ<@RP2|@1P;FRisS`{?mTk2xGcp2 zK~QjV;{x|TgJ|`+J1b?Dk>jDeUjq9Jd$5GZq*y5k?VQ>a1gUFW$4yKMRG!F12)e(K zOA4mbwy$TuUY6uWjt{^h9%$P^p}|5OKQVK5wP4LlA_pW7BNRk&(@uzt(BA4Zy%e-VP8%{n~P&|XQOJ1&EwjI z@3OV*#S67WhiIAT%fIxrAs;{L*-%<^^o_4+S_cR59KQhAW0)?~Y#=AK5S~&reW;tc zA*N=AaC;%qWHnPYhhe#g!NRWYJ)`xAf8?mx+w=!%l(v zpZAcsUzuv-`ZaZ;VK?uMO?OR@t5{nAg6`>5h@N~5mxP@3bhB~0-fgJ+bd*2PM&|eG zX4NeYH_zufd!kR&PtU9@_eFQB>axfY8pvyl^oznn+wbItp0lo_Zpx4L0|5aWr_z~k zvRF3MY9zpXyKlmZ+*YS+U$v#RUv)P%sF8A9cx5W&&yevHj50iuR2e>UcpF+OhmZhuLEdr|8sDwV64slb~J^_+7<_#x2 z(40lSjFjS&PY+N0j@bB1lN_+Akt2L2e7>EVq-qk>71sgr!R+3MYid~+y=8QU>Tc`nGHgKn0-o~!l_gY5z0kb+LafYF7SF%vs^Z8Zk+2pnpfdZs*{ZJ5z zs^#XKvsR`h-Zw2dwy&y$rddN?zSRCN@0~PgLOt;AOdD?~qhP#TGT$)dUd7WzYi>$c zQDnZG_;S%}U{SHo7%7=-=>Am2M(v+y0B5*UGX{3iOuPOp@s0cZlJ>v3;KNWu+o|2i z8t=`U?$vEIiaC!C%F4QHA3GD{e+}Gq>{&Ye>9jmzx{Z&8%AwI#`SorG*!%7Ek8dNtfi>47EkUi^!a4 zR-hf47||G z=kC($BUhED0Wu0)xNMSB__X^~V3GYq#j! zuzaWx&5~tYAi}W^{_Qf!%RLBg3L3_-j}r-QeYtWVisj1LJN?E?+QvqMe}U3O#SG*k zNAWsM4=C7|gs1wX3{EU|(4@Ch*wC(mlTmC1I5H?~Xkf(YfuMM%05VW3tL;*Etej)pZADzcj-0o!OCpsBT?k~LVsP|E!;vT3ybc|Ic#X*gFy~K!xZ@u*+U(8!O~?Q`yN71Y8*q`#Hpq#QG02L9$F*lX4jHV+U1xvU3G} zt!Us;Pj4fMA<1@--TeRn^Y2DOck!Dal2@LuJ_>Aa?PGs3jMm@r*a?mKcsDrp$q7g? zA`{{Fu|i}BXBpDN`&uW+w2c=Gq(U0eHOfkpXwIxlc1ypdllY88Y zRha<{Pwf5P)qm5V!(`gs5l(rT*umq^tHI=lYNe{ZO0l@x7n?;v60pwQyq8j=&eN@( zU2bmG$!nxI2orCz`U(7mEUIu#^`jMilbgGg$|xm^Z1jvV8@GpfAA5(#$XrillF+7h z(Pa82#UYb#`-|aOHOlQ(G14MoG(W~Ns>Q}RbIXU*pI2*PKi3f)r-vp7!&K0jK&TBd zS+q0}_aA^0tloVQM6)RYHoa>$s{m`ZKod;iCIr`owjpYT13mzFG9qdhSOQUlfyjm` zOcv4$qybJ>*QMx6o+5MolMh-3Gw3vkn zx(Y(8lp7!I&wxTSj0{&ri$?j`8Zs#F9C@jn(Vz}F3w z7VGUgC4zMGT}OhG4uR*j@cge9 z0&!U?$uoJ4^H zi4b`Z5Q4t`gyH3B_DSODs#F`O;+`Fv9 zZfRLQmpDohO^G-&G*PQ7=Q6&q;5`0Oa&q?Q?wouOLqQLsDzj)p<EVkSm4EDi#b4@eM}I$h`Qb+M_#WhhNL-{Q@0-dGv5%eMVjFfr=G1d>zyp>(I#5?G zobT*i)HrUK+qiR|5O_x#^d0{Vw=yXid{TQc@8#Om$6pcZSB$>O`L6!MV1T?lvB%ww zHOe#-?!+&%$7nN6!O=|~PsEwhzLcDAH?)KSd%o9y1={eq;Mzb{a_%|ueio$&-;#r7 z&-n7~LtbImr!~)&YrhIvybqd5udX*wYCn7ri%u0?NN)*01_~u2`Fy)JAwQd_<75J; zhUWdji3`&#Hjf>qIR@~r+Slt0-~&Fm<$V?E)``3|n!>p*SCzs8iaSrC_^(gszKQ2A zRI*GBiCCR}9b(AMh>3SHQn~fzyY&h*5BQ35W_c4@cTQtO`e_=cUzJAOr;{7i4ZkV> z+(XieS6yDBbJ`BJ(KXfcwqT5@8 zknrvus=kYmG&Uw=@c}hOy7%gzEhM2e{*A!ThXIC5R6fOEyG)?h zww)3Cup_nSR1li;CwESZL`w6E?1Qgo#9%16gfE?R#fG7%_2W57uQ-6ZLaefdxvE#T+AfN)Cj`MOXL>OjjaQE11o%1 zVVhyeZW`&-24)?me9vyWmWsSJ7y9#nO0Kv5fx4Jb9U^UMU%C2#@@KN)lu5~CQ!UqY z!{N-DT-#4+B!&1#YPF35lh@OcQ-37r-M#KYY0j&E&^yd2V2|79dJzuZC?}S29k5XO zi)&~?0UL-=#rYKZ_u?={P?ip3#Rdy$d#w&5pKiI-913uRpXO6varRD!xiWh*8RaBo zl}oET6qOuXXC~Q)b?F}ki>(W>ZmX_*H1__Iwjgk>ps4NoqNQS`IK=sFmCSv+UU#Ch z^=Q06SUM#xhxKesJBxGYvy_-tG7m76Np>_q)^BIlKFbA338}TIY zWgV}WM`EwZr65GWp!rf6Oh32~i+G!n!T)Bh9b?+ok zaS<>H*1b5Xlw~wmJ{s(W%3I9UEc%ahN1zoh7)uXLoY;bUmj}U@zFImYw`prOIK)n_nQ?H7S%flnnCi*lWXsvmpXWdE~hQ{3s#6 zTFQ@qYDOv$j!7Sq6Q@Q??!C(%bk(ajqQOGT^0YXoT=m`#Jnh-xw0fLeHee@TRvz;2 z_sc?xEQT#4b)?%zrmlF9?M!Oc(6o2&o$t_+sQeM-&*f%HRhQZf&FHB7dYBHBX}_dh8Qx%j;SS3`Sa`@)w`1@2+`LahRE zGuPe=l!@dxyH@lX!v3k21W^wA5*pkzo+f{bza|n*_K^tDsEej=`m@3CMG7xM+8aV0 z8~PaV*JK{b6=#?+jTKz#Cp9X%Q$rDFGM`;ne%6VZ}W z^ZY8oBG!q4=i;B~oM!;%2v-={*ZJ__L-}WnqQ-itrdHLzeWXlgIOh5@x_qYi*xclB zdnY~9nppnN{58O(TKEzo3C0Nnt6=NA3?=PsSm%;rZCyxZfsM&`Z!vKCl4RVN50>e! z0w@<&_);0k5T`Syk3CHKv_6Gae6FOHm^4Y?-CpY#w8~qOoR)w zaj8=Eve?7L4rf7V94BaJQ+L(%6e7XJ61mN7EF)-$X^Oz*sx%M;1ut3z`-O~y2FR{d zEIvMLm7K9*MS0PHcD8hxbTzk2FiZ{wF%Vb>t^V+W@0V6LP$zT&TLBH)WivqgT<`ya ze*Y^M-kU(R`a~pyT*$z97zg8d5e*IjAD2n3zzby&mE3r6LoqH49MV2)c5`9A!M5oC zA?vNfnhG4Y;WI!|N*X5JFr-UqLFp0%2GY$&j0SO_gp`Q%kdT&;9IbS>bmu5R1VK>L z@A!Lu&v(7=_5Q=y0j`TP#&(}Oaa>ITnz5_=W^aN&sBUBWs5>ZXx|VX)ZtUKys2nDKZGGmz~8I3$D*tRh>w*mKl{%Nz}e z%tVavEB*~Z#;*y7R3xGbsUJP3S^yh!7zPc=BUn2 z#Rc87Tw4mh4L5Td#naR6a*TRc@Z;~ON_ILqDd`418DC&&b$<_ns2g7jusO7>R?foI zH){oQK3kF=$yhysexz1>678Jxai>%0mh+ntYmvd4=|Y)oxfUE6ey9Iq;qNo#Zc=vA z!ev${j%%WGT=U7Y%ZICRTiM(ar8RY$oxCWZM{yPz57iX`-OtHnSDmaU5&-NO z;bJ{rDe<#!k#b5Vrp8uuk)|CPYvq`Sh3?%ywC@DbT5iQD3)JI9)^g3v;MS=DZcUl8{RfAp`zk0A^r_}CKGk#_ABhxP65I+N zbY)wz{7v3=(kMHuJirNX=D7GxMM-za{UadvP%<^%SNNzmU^$fG-tCtS!bXd)C4qxg zwj^;M2THVTgJft{jXS(=cU*sGI@lZ5`1W_$4BbhVfu=WR*z1Y8ni!6L*SN?++RQ57 zu!YjY_S;9X>c??3S1Yitrw3!68?XiD&MWUvKIW@eIK&f_>L1wJeaBc>? z?6fnI(zM0xH7PE~qZ5b)#xa&>>zrs_7k>hA2bAaPl%H3NJOHQfSLDOId`^NR>S3LY z9ibWN|2(m64l8@@uUfolY0eLUb6{O6Y894H!#6TaPT#f{^xv6(-hBfTnA=ebi)>@74TR z;7}+C|IR15=6qsmQ{xSvp~`)QaI)(;6yDmWX8iqudwYv-EY?H0W%lLK^h-uj2myv4 z2AmoVf8#%T5xD*u()pN>SmKTe*DrdXS~$^*5F?z(Xn?s@R(KMk4Js3cHdm6tAQw{k zd$@n&qbVY?R|Rf1M@1H*4)QWWHaGOstRdYGy)kz9QKyP}m7`rz{W;|~Klk^(w1|P< zt$navD!MhP#W9<@{sNeon+(5Zbs8UyVK8qLzLp96Fc6Xrxm~!BvL)-O!TdS`#S!fHDznH*o*H6-dHpBX8p zKXoy7+0yMoFzehdfv*o?6GdcN(HD)kuq609=up)yv-Jzm_SSyQV6hCVmc=$qnxrBu z;USl>TtO@YQNtLl7@JMMS^*|2hC4mRT;>;T5&QABh+O6oSZd5nYAdlWg{k?$l(+^0 zREsmj7(GmhBt${A8D(3bmL;WO($vK|MLSGtTU5uaVb)dM?a5>(zHK*Fy%3M;Of#i6 zpK)5rWPCXIx>$oTha4*zUkzha#=eL1FNsEq4|ItR$#9I6NHPvY{wS>oML&(0*S>3TnqHAfX6XARVOF`zej!jPiQTNY#Jnpiv<|7wKV|yEH0M=~n zxX`mz=yY509!ke8h{C;ZIQgHjUGm?K;OWgJ5iL)`l<9v>KYk$NI*l7n!d=RLa^#i) z_jd+g)U^@G6oX!5K_j&w1X!20OEass@D{i@y)csQvXJ?_2r;XAbZ1~{H>M-4wtERc ztNxYQ;Aws53#QtwMoH!^Y^G@Vhz`aLD}AXx9VS>qjY`n=p^2hYpLV0Ib>|JNnDCYw z6}CFqJPa}p5obe>BBR1(x@7p8)ft3u)|xzzmQnKRAM_wsSC7t~GZur9#`fvH+sUB* zkd%M)vx86}cH!p|BO3PQ5uSA4se|opeola^R`h2GX%aO+y};z2J*)BK2gEq68e(k+ z1eJC`^#9$gYVRLSfIhog(O)5?AbskuAvH!~^YZI4Uh!`mys#c+E)Sbi5oN-!zLBN= z@&e}1l$y*23~UkGVL4rSoM@q1De8fJag`~}Tbhhva-?LYuS)Dt#u%GHQH1Gvs14*B z<72A)Scf~Rdy7O;Xt~PVB=N;c69mj+`4`uzL(VO3kFKmFsMM&H0LJAMW5iy1XYDjt zr~ga%{O{6yYHrq|1~g^UGrfk*km{LFiuC4fS{o>~x7&g!B8@7>& zX0WQFzSujR3*H2os0=&2yx28%e_>_xy4^Ocv^3cx~ z?z#=-L!3P~4W1XcYMY7{J8}Me7B>IqGR0}RTCnSt$fN4Z!G^$~qnX+(r!OSU&C&zZ z9`N{O9g?x60^)#B&tP!q82gB}DxkznnY=XeJg!uUx*_1l+9xravi zKGm~A8f7Zr60{{mxJj?escHit=%l9EdAX_rP)FhcjLXMxasp+}@sfKiM$P-*gKn(x zG`)?&ou)Uo#E!vtm2?THxNiZTG1z0ooWnMxL@acN-CM2owR?VD8AC$4e8PFBC0I)} zabuknfD+TCMe{}wQv=X|vsv(6hObo)sQWtFgq+vdo?h?f3JXOQw6#!wiAn1BJ$*Lu zlG6-~{@!on3*a!lS*#|d(4Hv8ZQ>Q$XN6_{ZAis``6=y+5{?%^0BTDu6tMDp> z=FhoPdzIg=wc^{+YS4n0h|~)cIub5fF6FnpKKl5?J*)1?^y#i!K*3z_#V46}vW1l3 z&&xx^ifE=MAFS{-fivg3zQAF20pgZO?AzCkE>G*E9Y_4Z>5$5LbVw<|`SV4Rgo7-7 z&h2(h*SP~A$W7Dm+mj*^Y9NT4*9GP40DL$&ym2!P&5Aa!4%f%goaQm@E6MRBGc|Bw zGOgvf#;j%yAP=U2pIajhh(a>cv)Mn~8RsdBPX0@slz+m!5;@810>6qoee94(p+a*G zArY2I6TItTHTp;&`={3f4}P}FRNj31mF159THms>B@yibB);>fyW5w$%hJ_Q6j?fswertqT6u z!K{c}{0hcM)U?SlsCT^|uG( zJnw(=59mVA4rDl>e6<1mO2hsSfARYXJ*w>0DN0CfW$_KKdaCd^J8ca1Dd`sQLks&Z zrE*FaX%W}G6t@b4ND?MOql zy2(qM8_6?aJ1@TEZ-wGSG8S{Aexy^1n3JUo7q5pI@ZRJ{p?Ea|5ibx$ho{XzVHiY>H;8 z3O2KDQ##<9mJjF*M_NMY!^NYGyEYK$1EcWTs76(NzQKCX5>XhZ=I$7_e0WyE&eXv< zKE!TYYZ5QRNHE&@X!!{@`LK4&o(`IN+IfMzc3tnDM~R0p5r$BjTXkcIMKIi?@{sRd z5pl}9q9Q42MguaI`LE-p%y>&SMYt+iJW)PATuFjPx9=)2mOnUln={NOaNa`9E6B!# zA6H~*7I+hLFkOy$PBDo|k{Og6(pPu9;Bs$;IZ zQ2@7_Ym>blE{gztcL z-g@|bG85hiPsmZci6w<_7=clBG*h9LT8gA+fi40Hl8&`?P1ufuO8Yp+N^k-5Q^evJ znFo}9*4rdipxzsCwEl11nvZ^DbJ5*xb7?6O9K;62@=I9J5r~e1%!^EiJH0b|>kk?> z5c{SH+Hp=@3r2^g(%*}T#GA7o*}kz$89?2us1RMOap`;yomzb4%0*AElZez{oJ=*u z@Goh+PNwbRGS)%tJ|`Z+MT&wv>lcoZBv_$96pM?o5bKkzH}*uziYb#bR7nRn{Em$WGow49TQO5h! zYQ+vRR=krznw#w;+;_oA7IOtd;qXqx%hiP2%zof7MgFA6HU0826L@MnLhv}xqE0^$ z+Twf@oYm{wif1~HzW;nbdjj|Q39H-#Q^u7aZZuALdyK)Vec?(b=BD6~#n-O+E&FwB z0R896z}5H)A>;TlyFNtCNJ?=A{S<9CT|KDiL+1p=v&SU&b$0?$k4|t)T3{gO5x5k( z9_WQD+8CVxkDg}sjVBj`{zw69t6T1+R6gJsIr*159-@cbuiTBvdjUCZtPb9?yUL?; z1pk6Qp%bJ{vws5Z$a<7(ju!s#ttn&MAU}WSBf5TU4L4z>1nmPqY$#f4doFs3Oi9ma z;gwopRVShrl$lp$18^25&Fib4M>7l~)jTa7)+qaU$S^J`y=4fRujO#jOZX24zU219POhC8orLGB+p*4lm592G2Y_GOO~-o1U&l=0Dk&? z$H*NLQ#8qo6PnaqihQwj?#BcO&lI3AMwq&T{Bi{R+{n$bR=E;t?R^6(7jfz)h_L8=pEk+5!@)f$lXlT}wS6as@7QR(SWl=mRLg|511k@ZpkMCUF@A(I;kH zXg(w&@5Y(}P&tza2^a^2{A&Z~3Ht;X&?AehR5z45!E<@L1>8{Dux<0ltpZkO6QnB^ z0Db6pyhc;#!L1I+I3%;-V<6tMlcWcL-tq_#ebm;%v?fw`Y#+;{ueD-B2p6tRr#G{N z3CooOj`o>%`P~7c8ofbxKY;#}t6hb$34$;pRuaKFS9)S=wtK6twG%aKlBMT3zzA3;_-66UtdQ-@@ zLySqP@jgCzVi?^Av<*4djF7Gn=cUj#Ay=o2Ya=4h{uhGLL1! z)rvbk=N`0v8iahbmj2Y5{XLrJDZ_B?7m($=^jEh0F?g%uqoHT!jic{(v+)4o4$x$y z%O;B^cyrbAOCWAXT48l_(kkx-@cZ=ouJyDdkads;pD+V~^J(BaSLA@_<`HJqb#BiWAbfzPDTw~>T< zpF+Oqb19;CJ(GzvL5^^=_Iv0QQp$3MGaXi!rrW*Uk4O2kcM~W!jsh&( zFG9G5iSGSE-wwL=3E5**-V3}@)Ct7>jjEDR$jeyyRrM_J!NJW^cAdR!KE%CzLL%I} za*efHv{4v#6isvqAUVE=IX?+fZ^wW6b^szHr(2|wS&Nfa90`6FC}nB{8RP2j+JDsZ zPR?k*$eQ0V5kYV0@ZiTwNBL`jZK+M03eVfAa5qk9!>hb)Cp``EQtV?N9>djnSa2|d z)Iu-L&{J8=HbP4$=+{j&w?)Qkj0tcHOy&^>r`*nJa>>4L%`LC^ht7qXEMaGz6%1Q`obMu!rq43+tS2|f%An^^UM z%P!`)Uo!2gVI$|4>+EaKI_+0JeY7LG$<%TiXEu9?bRrq7<{4_bF3H7HtD+~ss`$Td zT9qpx!#V27{P+p|MRuRDra@kEpmZ(c==0WE-W9d(NJ|=zG|esH8UA-mN_PV<#eV7E z$te5;$(k8U>z6>dAu>xQbO1>5dxodp{v zB>^diM?8I_?`dx|V#?Ixl85m7_u~>Lpn?EexuYXfwGG+XJzoXZ4 zH{J;2x%ql(EJn|Q*oF*|S%WWR*d3$Lf-ru!^FAutAu1lD6exmG z9BM_TqH&H5B)WANhQOU+Z7`ZV<}>9}Ji+SP4ClN1kfo!AQAH~;R5eT;WM|a}*T;nT zJ_Th_lflIoozx3>_*>|}P(wC9nP(Lz0KKp*D4w<)Eh2|1!9V%pHCv4&q0ZHs$7e{F zf6KgG;cIC!b6`({UaMK*M=Ls75?dnEji{}8r*C4kA(i0TL>j9mh*J4h2TFqn^&eWt z1v40s1@q3!d^3IEmPTtcv}(Hu`132doCPu-K}KaI^k%<+&$2=OR)HOBs=h_~MVpYP zlB(031JiabOBoCWe?#`bNzL7~CidQP4|!JR>5qVU5&t2nwy<#0^bDzI>S72S6K+8; zd^w*Yrd2rvWOX3_UVPEvL-D3-$=}2lMn)xg+?yg|%OYXB3a1%UPTrJkgyB=SwHt`G zvwKn@hHghre5Q=YMETT`*X}6)@OU3bR3-J$Ud5>Wz)^p;oivrfRqa%Yb=gbyD;`aN zO$dUnxMh`}^zymKr}&~*b@cP|xmwL*>RRch89$7Q!UMw$(kLhq0^W54S$G#edHKXR zZ`Qsux3%$ehq5l*&|aDz!XKR$G(P&C@U(Vk%!mB?UGeT7f0=j}?{i@7GC*h6cD%n#K zAC6Z_Phqa?p|vl}ip1}cI_3Sen;xA_b?k|z%)e(~3(r3=9fGQ*;Iio_170YB*d$1N%Zja>+Y z#l?X;e7&X@vRGNTBT8DlVi_zhQP(J7%KmIoi#<=P@3CjBiJHdUG-0wBw{05mk!Wz{ zl30@7!q2Ex&8+hn>SA|vl#915bho4JGc`3u@JWww5mFU7TW~oL>Ll00UbxxOE=_rtd^TkFTI^=^*GXiCA{GbD~&;ihIpo3uYD(3F1 zq>i2Ba%Plcvgfw9=U=IMjfom(R9i60Y!M1>(g*`B2fZT=A0n3ad{c8HmU4Sckz}q@ zmpcMr?q6tr({6`0e2qR=+A3xlv17UD4{j4us@Epg!w6HBo`}ZZKc`D7YeuK{wN`1pOnEO3Dpb@gj7p?ky}npJ@~6i zEJ_xCYqvKU@WCz`^QJPoKJ|R_)zfSlO?2@~S)d(M-s=K9Z#CE=M!zX*b%UkanX^*jckW&zLL@wY<1j#=-D&R+dxg1P^$MX@NgzGl&60E7lK z-AvDZypj{p)wmEU|U2 zDu*#azO#3hs|X*(;Ab&4T2gqtIRW`qyYX&aXO?m$@@OS;r!W@!FlKX&!|`tW+^9Mw z@GNvt$Yl1B`Ll6<;Y%l&^q z8Q3$!_#aTl=>{s4|HBy4&|IAdvPbmc0njjS9+7)M>@yiQ(iV6@&L7r1XR!F_cO?3; zgcNlf!G=S+>-T#G0d>c@5MsO+P5QYL8q=BgmK!vi)>OJx0Qzbw&=qQ{X|hg`eq?!@ zcby4LKdv#oQ6Bwt&z~zOG|gfa2)|{#PW{EWzQx0c2avP8SXtmzxkuFd#;>{m7E5-< z@*?ta+ybSgxnl0zfJI633X+YqX8Rgm6$0;<+7onjMsTf_WaJBl9sxB&4#9s+ZQ`h} zkGD}KM$IA9QN1tIFV#a8!w43MmC2jpNE_`pt@;~2=gR23s&65Fb__UP{&gx`j>Hm#p;IP*J_3> zRiI?c`E3r#wheLrS$sl_Ce~%(saob`wxFA`nk`tmWgpf&4gB5sjexL`f)7q)7BTv! zxZnwvV(5{le%I4KA{`ZUt?rl6oJS?wl*tCHjd9(IVV3-s&x@7X9?avv&@(|fQux8h zQZBw1qaVvuxdG?Dc*Z)^T}C^;J>N#YyaE9iSJf;aRByTC5?%+cQEO|M+|2BnV!C{KN%PuPdvSE6NoZg%n zYZ$p~lflrOwgA;#mm%kx?{_e!iSyk@zjsSb<;xV` z;IlpoBkVODImCSPTY4}S33p$yxj{=Lo#qVrqe4dNDE?-}euqVblmsR~9uF!xYp!Kp`)(XB#dMnBpj$=)T@CDOP}-}AEOfb&e z!;5B(CFB9ZYZYdecZL*cE#<3>p6e%o=?R!y3wEi>Yjf4RSxK_uCbkYKpgHk@WN*=% z>q1-Ap@IMAKE>=@mJ1sCc?X{uKl;P&B%F``sA^6?8-<~tx%Qx}1_e-?AcS+{Js~Yp zPlw#h+Kyo!0U@(}wpuvR0!-V%Ez(*p;3Yl^VR5afjH&-+_9ZcxNjc=zLyyuY^i0*4 zi;^1;#;H#>O*{jbJypi*e_3wxA}AKaZ_P$AUin-?Bg<_&E~Yqw8m?lP&v^&03h$cF zPaPOO;(xIk537%TT-AyP29i>ZXKD_#QI-XU>pGuewQV*RQ;KhsK|-E#CoeCPOBkF- zdA_TtlodWzv!^5Zn!HA8?o95E`vCb$yv!s`w6I|qJH7SNLHhjPd8>J(rK_<#U~U6& zFYJ_$?mp!~+UNTW$u<=k#vj9CjUTJe{xl*Qz7t(85$Ew_4dZX4KG~oo4;HGb;?@bA zb%&rI#ooAVZiU=<_ydHHnv);=Kip{JTtAAOieO0xK?hyzqA!~!?E7u}ot#*45O~;A zu{Mh0iM4Y02QQ8pEiW_uVyzy2Dx~eUISx6wxbT9*ClTZSNVwjFP?^aMOvDo9jk<3p zX`ouarUs^b;5O^nFfuz3%Kh-Bd)td;C3D^=`3L)!VQ)vHLH3jBUU3QiYCnDN=<7lA zwMAb3Is;D-NB&k2;(p#wDW!101iZis+r#J z)22{%v_#@iK-wu%96DByrEuVt5P!p*foyqQE>{7*`NuBY29rJ&xEg9uMmNdB9m^muX#T<>*FkadgUDC*u20SOqQICs=FtJ6wAR5eR}j^@fNz-(CTMmux2vsl7Tx?kL=;9-|&uP1-Q{&do^7tuuwDj2^Aa^ zM+q+YOF@-;)`qDUDKlKQKb}gnu0o{GD(z<)EQYllSpsHeJcWkbu1XhOP%r`Wfxhw} zYr{9m7%R}nH>RQQ$#o$932vG)b4WaRwEMIsbw@hZnABLdAGQN-ZUhWT4}rBsDK5bS zYqYWNYHFSx`N+I02XK|=OxsA$^26GPYh+*D58Y`z<(Hlq3l<36lA>M<3PKb)$Ys&a z*r2q1rN|63%4&_i^NzSL!t(@QHo(gjv(uWL(D0GW= zsPEF!T>Wb61n9wqz@9@25i5Xuts${NO7m-qmA@sBNA-7M<#ip#K9JnkL@_lql1_$4 z9=L4-DGTe|%OkpU9Pn>!-vmqYqCvFRZwJNX5m5eB===ONS247Gndy>1>1wN%dsU+m z&8IFbNQ&{nCq_`=8=xz|rF%1MgJCI;R#0hfvR9i%~X z%4BjTgExz>icV`Pz9Ke5_ImE5hge65?S`GL&(qjsGK=ADm&6nz)Pe%(J2I8{rpRlIh;oF;hoGe+-NSzO1z)az+q z!6E`ph)D?zX$I?WxV*Jr41fYHYXZKM?*1^zQ9;m{dg~gX-pQtT=XSf11w;d_cb!Ko zqGv;z08U3ekSSjNx*PsfPV3IAK+c`GE8dtIxrO{rG)=U|?V@}ma}0nRp!yLsq%X0VlA+sXnq(|n?22u}md+b77Z zD0qJjnM7WQGrW>^v;ha$epBB1{qXpfAOq>raE)bDMF#i2inaJ z@FcOmm&9vVH+gAUy@tUmmfHZqwsRbs+V4XiU6X?qy$`rKWE`(Ax?j1cZU%f!pg*cc z6&LO%$5)RgmE1cBj<)HW4TGoPIsHZl+`B@t|KHTv z(uHi#P=jcL`+xhp6Q_Ca9hS<6VP3WYCTIQI^_trrwJ@E?aAsf1QcF*ju}O+mHWjYF zzCV0u@khh=Rm)L`Y|>RL7cMj_T=QHBc=`7^mgsZ;;>cbPzV6kxkf(LQ$N5tqLEoOg zQFqjsZ2+EB?fFOlvsra!6-|<3f$e_Ev`oCEXX)vmAP2rf`^6i+gZLYtU7v6a!taEr zJAD@^R9(G#hG$1>6dxvZOkfU|Hpmlb+uYu>tR>iKc52>PAP?v9fN2%5=(EVteK?rf z(W~=cMSyAXWSXNp<77cw7Y%rg>L1Vg)CFAXxX(IB_Vt7_+?-%0Eoq0;K3*bW{O*n3 zY`y9=8er{8Wc7k-O4`b=l-yT-!nLQaPg1U`>z2xUBYLd-C&rq}1E_9lUa?$8EvJP` zHLrNkAMNJP(p0|x<9)Ns)!^oQx&cv+qty5i#J!QoI90f0BS;HO9yrX7tP6)cElY32 z;RfUf^`WXT_(V(|kw|L?H=227u1DvNa)?&Ts)H$-wdJgH;KgBU=v7RHE(>c4m`iCi z0bsi_f<`;fPdl!(st-aC;a~FoSkCJJSdhBWPHc@ZWn{->O-m?$t4Bw|v>?Zy*G-BY zk$=)YiNenLvctcZ%DHJA7J@xCEEu~5z5K@ly3Nwk)wP(0by^W50W-l6RH_;L|6(2> zf>Tyb`KCMMl4^6W%^%hA#efEN=$4neI&z2Qz!CWKkwuyMH>VVZYf)yE7IyXY2 z+{US&jcraS7=}S+BuExJvol&UfdX4vn6tUFgTZJmA7O%X}XLhCV86UY|Lc ztgt|PGCj!9y{|>LC(`5LDoh?*Z7R=MV3+T5*q`&*R*&fwG)i||SJ$7%Z}A87y($P% zH|gC}UT#3lh2?J@igSGtPh4KKN+lz!#omNf(!KsF%n9c(ntEw~^(*VlAwTr?_^sK> zlP@mhY#^HbLeFcnWS5jgYhZIGsV|5#Ir^1n@$Lsej?EZ|p2A*gb!kgme#DRJ#^h`+ zJ*fS-($DTbM46wpt}GgNs45l24NuSjF2Nmq2SQw!cBy1oIWW? zTqQid^OgXOk0<%#r;sL%V|r)vHT_)7m*?F#mbxxBMBV%;yk&fbVLj-V>T z{F9>;*#l||FH76XN%->S;vD_*F8!>mLhPa!XmF$-+g!^1=ZmbZEFpofZh~OacD-qA z^AP5?j{VVGP;T!%atUW%^s;EI>8;!LK!Plxqs1kxJrT^4zaANbl~`o2HcFx#QBcQ* zve5%S`)Fwo*93WEiC(tZ|ph4BDZ|=f<3NSkUSDawMtPxt@lFs<>j?DUwTI z)GrS=Q!Y#4t_K#=Ny?ay>IzixN;ykZBqFn*GjEuu>>sOT&Sn_L-QA}O*tvuo|cp0ulTp2zpF41&?HBLL6fJ%L)=#zxHh9Us?v+9cymduv=p+@FM<&2y?fNo| zJ;O&eh@?V^q$ntyD+&VEQO+H>^7r;mdvd9+35#F59oJP|6rs(U+h>Bo;oZM+6!J>p--*u)9$a2^Q82rGN?IhtO$d9F|DP0PI;Nshrkv z0}BEzbTkSx7XB42gFQFN_Ez{=5%zZfbku3Ej~PE|5+5Tbmfuj+cZS~hqyknX6?@#Ws0c&bHDQ7$XcO)YGzatS~6OG4zn`r20u8tM)0GJopMPtMBY!4#&2NlJM z-j%t_6~nKXK6XAodqT0{fAW${_;JoPPpU|g)L&6erX@S&>zA(5ra!E3piUY=eA_3+ z?;$Z@-2d~_gLF&wxQL@jJjNSizi~yLgn~=Tf`VzWXO{O<@RUgdY9)SMoGM1M_)#Fe zd!lybSXwL~7Csw$h794*6D-&~Q}DGxy?z+~*s{HF#F;_df@kmU09xcJaWf^D(=Xde z6F3WmjG5^T&6K@!PUHBD2x5!iuZZ(N6E*i6tTeIuzPXnda;TItc~`i!gczVczbw@O z-2n5h)qo-LNe+IB&A&a`M7dAlx8ilzLaygxf}_#8V)t^Xa*SVi)P96R=K@|_e+sx? zVm=4mda)CJWq3+NIzh5?wt?tAv#7F`_B$)ki&(zj9?}-bxB?j%;SC**85L6}^9yBD z7W@Qv=y>qAt;~8^E;QFMEqWI5dUWm9>lY^sHsxO%mLGcExM$IFhdtm6K@&Jcw!{%3 znSdp4(Q5?+YtvmLBrzRB)t&(N?C^9Q>T0DPFjCpN!{Dk6hIx8V=|oMh;Ku0jlXm-e3Bqdc%&Fk0KFF{^_#Y_s^gVh5S0#k)_YNxr?97o$aGRgvZX z;wlbL-j4C_51;OeSa(oZbJPwID)|g26(LAUm#1&ae7PjJ^ZoMaO#(3J^C^hWGU zJmk!sEk(q(!L{$cfOL<2{;RC*3mVFJA=sbPixBvSsKLkLZ^bs$fEz z5o=i;UY9HUbqkF(0RpwPl-f795pC<;SHzU(9;Y5S%kVmXwZIPUnx&+(DCzD+cFLtq z3+2lXX`OZQ4M7`9#BGZf&O7|1!@?tY)>Oz4w5fEyhk=pn7DQNIx#tC;$KUY=+x?TAb444;lH}aVsFtRNV@@`-6>jAVDrs^yR$E|z6MrN2(JVx^;8uN{QmM)q7DBKFBkDO{u zNeg%}U_2tcd_6*9J->>t2#8FvJojgR*%=*{+-(UJ7$#) zKi^>Vse1k`X)!IHKS(d)Uzs<-n0Sfm9Bl>TlZKUnzeGVQ{j@p*o*#eq)Ix zSwm&lkIzr3d^-1=@)wWNM=;MTQ*A6{>=)52<(JP5+4Oe-A7ApRqS9p*THw!W;6RbU z4Q{^8HktW<6^(rgq={;Z3$UZrbN-|;%t zk67F2EN7ygbu4WgUb&o1-Mbh|m%$CzATj?``#mXEOnu>iFij3by`B-gz-rCySE67k?%s12DZY%Xi4k8`% z9z`~cR}W_oF#b*(+3C0K7Fj0&g>$NR4>!KG_P~ce#U~+Nm9&38&B4}8qmC_0dix6- zTuph=r#)u#C)E_pW7WBXj`3;lM(X7mEcSiVrq;(HTLl4K9kTAhFMhl?Txf~ZW!qU0erC?t6iF%%5wQ%d&QBB8#*jt+%=yeB`x1AanExu6wpL^^ zlACcBk!-okKHUm?eax%9Z{|KMe5Z%qKH&WI*EgOKQK>9yIc@YmNdQ6v|37^c76~Kk zSZDfpiS=4t&(M?wN3vMe6DJ?j5l)OqD`$%7`@z0QImqyGRV8_CDm5R zz-?uKRaAP`r>MEg@Y@d2hs_+u3e&lWamZQ7Pgv$m^9ucVr^k6YsK=iCqc2A{m@e(G z**u^H(c>5y0Lra>|M<4OX0X7B0+h7fVW14#e$6FA9vy|mpPvQk${%8bEDYc`4qIG$ zI*Il5gOMc1N5HLq|mYZuFC2*O%X0+8=(D>3E z&z95%1?KM4G#H0TokH#lH0ih{+LJm)N*OI`Cd3*)(s7QIa_DP;JE2@qCTdxITF{Y; z7-L@==30A8@LQcGNs;B$<-AhUdEm^1gu^0qkknc3J+G;do-~&T*x=+~SB*RJGA5D| zE!J^3Es&8Z8wpN$ITC0ZowDeg+TJb^3u|7M-1vt!>DLTYO}*6{`J!xfLFBln@UiLL zLJtp8w%C^Zf9?-NEcEgqMT>23)GO5QVSjOwfvD5F$J{Iiw6cQ6*9F>mbs4CdC>pD8 z`jPr$Q*i_)g@gZsQ<&T}|&pcS5 zIf76;Mj&Svy7u5jd^VR2l~FCJy&38$#d~pIV^lBg00)ND-lu<_P#g(ppp3W+xxp}xgcDcG(3VVA#v(-uKs3D<~gyt$9xGwYiO*A#`s#O($4cb6Xwhk3=t2{iM;1n|Dv>9wMLkg>&+P18^ovJiL#J(g zYS&T5;iGQ_vPGmNPC)8113ZXQGwbW2aLd=R1<~$E#$pcGlv70{0bUWXaN4`+B1@r_ zk0_jZrTFcgK+su{k)YXuGQ)r2Hs&ISRcO&nFdVfNdoNe>k8xC|a3e_w5-a7EMpQ&K zW@IWC|0X65!~P!vG2#CR#5o;aVE2u(+IjW=cHe-zrlSAZH3jQ!{_D)62PZl}bl94Q zCbAS}YXpevU-qi4PbtEcl%xNmYM>Uno>V`P=Zn)y0SLMuuYTt%#&S^+WRg_B4XypW zw6I9bUev)3IqMQeN8F%-c(vhFJ5aKhf6naEe}3tSY<&J&olF={kUy?3BdUW`;^Fc9 zF%@XS(0E}^)%gG@Ytzo9es*9U1xRJG~q(Sft}Q82w!J=8qI*@e_qVHXk|vkbMS?U}tXf-S>xO zTtYBU&RzxPyM^kEr&G(^eR?0lyBV+y>8!gepzQ4j1_N8mzy0|gkW7)t)w*%IpphkH z=L4ITk2VYcVI}rq9(dOLo337*rl9Srni|b4V3#Z0{rzCObRjpz+UoV`pg|>FN5-+i z6<9F+R+(Sb4Q-G=UE%I%{VMc?-TLXW7x%MSqwi)t576oOtKCjIo}nP>^W*$hP{l1C zFv4pFae6-{rSrSgmr`TjTlwbBkNpD~o@C}b=gRyroe8J`$#m(HMowCdFUmY<0i_XB zmGDhz)zHDqx>E^`=E}*gKX++KY>4$GjiZTT^MBEt0i zrcA<+MX`WqXLyLM?!M*TgR9LVCQ7jNb>hL_nGUGyKz?o7s^;LS29A~lxT!LIa2pt7 zaa9;F^iv)*ZOl99All5i!+(DmJjGakYNaERtf#UzeXC*cZ}BIg0@gqaFs~m29-y^f^SwX@7IC)Cv6HTe&sp-mMeDI0EQvUg^+H%uuf_^ViYaIy(SQ{2`YbNI98n`r->b5;>cQF@t7Nwo~d~@2|kf) zu4NG^4VHMpMUF9dC5wA!sX_)F3nbj&iHo-dS}9WA9V8}{Hv*6D#Ck+m_=cv9P=f47 zb(4-Q_S?6>C6^!P(qq}5QlC7RzOpdDjTY11kbb)lYU43tLE=U?A)R8oJmFWQEROCs z;K#q3wgK875+^TKgzg;mE+omg|4VRx+K#EC~=rT)f1R2IVAN*Ag2VV;3W|;z~ z(@8wd5ez%Ht#GctK^avsY?>**ePNuGat#W60#ybYz=LD16Guhk6}2?}ZCE`oR@Ttu zcOM2k&4ZK=#>h`o3`sVya3FSmr^F47kW1l+XxZxXugElx zQkO=S4U3h$eX9?2jjD`Gb&wJ6rbIbwCFaFjCjvV}UAA+xQnlJf6Qz|SbO6Pw+5G~C z`qDr(-yg;?c*`Co5J-tfEE zcU(`dGMgYm_!Gc@h(oz>WqO&X5R~dio^N%l7F!Z_EN7WL3Mh=)8-zt>hsM!&_mOK% z9rB}(W)$z{sRLGMdwu0wPD{6yIo+%;8^#Cqg_1vHe~LAY(yCrh&dQh}L+Vh>YkR7v zDOy$&rD@er6mpfRImRz*wo3TlXToSJ3z(}LJFdQqKYiai7MAayraztfox@CtWVt8B zZ`jUqo{cPAtm0x|^F!&kgfCL}>3@o2CeNaC&JqQ`L>;-=e&atBRy0hbXR>$dn-awI zuEsIyrL<}>^oYbp|Knv*NB8bV#vU~eyY};1ysq`& zLkaUcM)Hh?pR}=%%B2$~Kwcjqpfp?NdBP<%>sS@GOzS?CIM$-G7Yn51 zD-S#WMrYWnS^f$?oyU+d`J_~fNU?r?Nm|zv5`5p-mLQB-!t zw1k#kzwBtIZEa=&;X@gY>KFI&1REz&(*^`T6`;@F{Ph*oHZ;Grh1*H-OGf{HbiH+4 zlX3s{z0n=gj4l}^IYK}LLFq?JCWwTNZlt@rrBe|p>5}e7Qc46xy-%+Dcipe& zxnIxo=Q*}9&TX8Z@9}*f$I)rj$9P6JYT2)pEZ+1+aU1l`MB;~1WWJ7Dw@&}DJJK=w z{sqrFG`U$MKo0HSKfe9;Po7*%wSxlZ<*(tmHamhk6+nOk=YedTt}0W#2N;hV zKlZH1Ivv5XP25h)WU}EipAom*2q%%NJ8+@4O{KesUyC?e;*7Rs0-y>5moj@yW{f-= z5BU9s5*plCmQRSI|Iqfid~5z?4otzwF<^H-s_IAMdh;(K6%hO5M8^^^a+MTB%0kyMgYeVyGEE;aeq)I zPJh*|y;4RwlA>fHZAP!q1UsWJquOYk2uTJMtIaaaREU^J1J#8F&}!)l>1@ZCSu__k zEe%jtXQdE|K=%UR!6ve+a$AYD`Zk?4Ok~&ezF?_sgc%}FJ+zrFS6Q$$_f;#3Wqx_M z7cdRI2wGa@4IY8EEer26vMfdlLJkN7=_6HkE+_QwCjrNuwSn{DD1{OZMvGbACfD~z zaLESuUN-f|hQ$Z7P=5aaf-eh@X!g8dyJ~-K*M=iHdIFU#0%&-sHng(j*Cy6Hfx_%o zq!oKu!#?CN{MitD8wZgcg+AjK(jQN#2iOGL6eDe^?+!0}sb`3wZQYU1A=Leir)y92 z9v|xzWajWnS5WIiOr$?{7xjh~=5bbj=n#7pV= zJ84wIIU>e-)I>y;^ge956&Qbk0P!%1Cw;)quS1I}FwRPB_vhi0#*fyL!S8DBJ}F|c zR{yto4p2_PnE%~8SIY$Wq$w!=ApYx<{y+QZfKNK_f2c<~s+$~MHf+de5V=D%4uxRn z8bjQ{Yije8UhwhT=Z^iSH&)<(T7C6=HH3fdmE{vhI3EpeskUpULzV*Rg{;`XCnLJE zAZpLEwIpSOw~GQ3(ayQm1ZMqb z8KLZ)VzyyG38Hc@rz8Ck@A3FFOXcR3*`U*Iv1Ap)gIw@0M_;EyfrjH+QL~$doZ|d0 zDJ>+Me#3pQl(>=T{^t9Vt_&hem;Ox871!QvmOs%Na_x>xBtW9oI~t2Te1pz)IlF1C#F=e51sZTfl=2aS3%=GMV~#y=V2 z-#0$^QwS)ZJ#*fr9Ot2=RpLym5zh~xps|=IaYhpzI;AVkn^;c!6Ai*u-5%ytHx%odW9=>i;YVXXj3h>L&=V6LS!co*;1K$vhW`bK|QO!!w7Y(F|yi(*mB&FO>QENH_S^Q`*omcu9Vof(DK z&QCuS1@u8PJo70(Y-Q*ClM~QS<@qWxeU7O8&{(85ZoJZ`J8D-r?JNX8TH)gG z<@m72_-8J(E3=ygEmn1+-Js*k{Jp`#<1!CPaZQj^)40-M z&zrNineWuWz3i3c&teOk3gdjT+oph|1YEdY>|#A zg?r4}7Z0<;0Mn8Br*g78vh+n7ujpjMweP-O8-rP81{LIK{p~qQN^(4_YcptH7}ZW2 zkH4aUP~@gsCL`FhH{CN(7VsNDmP52*4>f%AryqWNDM2@|7d>Zclq5-0mNBpR?u=xIkP4TPH|*H!^<+@*U}W`R8lc zE}fzspQKj$hx8gS-NS&Lzv9=PLwdnOyWetCqM03y9e4lejU9WftH=)`Q_s|9=qq_O zjP^a*Qb#(I)%5bWDqoK~f>75w_DJQCQof16!&gRfW;b}H8QLTIG~ygp#PRK=JB@%b z`^5j;YwH`=+kK}Dy=d?O9VfaBpfD3a_{Z-fga#cAjLci|pN|E9oGKc^j>qsr{annU z;YNB)%Qs|mumR-6s57cJa3%IM6b*Fyo+`Sm#~G6V`F^R3g*PlIZl zOD>W=F#n!PuA8d#fMVUt+lbjZBt5YYRkilA%b)nj09Brdp#P+?xo3@YS+>_JNf@*m zaEgWZbR9RlhdW5fpfZ!#Fvv7a)l0J$Sr7G6Nn8qi!#8d$`MITwR$?!$wx7|yJ+Hga}9A8E$nI4z-0nL*;yy(-6O)F4|H42jeLb|o9A?(D6&)B>5y}~WL zJ~2^#$T#Tvr2*cY9{Bw27*Gt$hp4Q`#H&eCOyE4Uv!3y{gT>LnjzF>EHy1;2;!}Kq zQ&y|~qwa-1#kV4M%&>vBOsAZ3?&jJz0a4jW!a>{`b%ZxW;N#wUn4eU_w6BUP4D?qA zwtC{pY`z?B_D(Im<`Ef2%`irV)H$2yC?$BHkkfG#hm8O{mShaPYgqJHotC4F=or2w zJTb;$UiX&|C=M3e_`r^Z$jg`_qb?#$&-AHC-yc)3VsHuXO9Ua>E>nQPw%FKha$xwL zm`z#7gAgW0MOSmrSE4(oOd&(H&i&6h@7H(EwSBHQdp~$nY^A9YBO$fo>89lo@>MA} zZi2-?g<+HZ4QCa@!OAB4qjcUU#rSslQ-Y+t?Q`a!0^ls30A*eb13Jj=$+qjh0c;-6 z+{c&Yo3f5w%|E1S85^W_-x+>>#O5Q+ zdKOz<^)rC%>!|or(^gld45^Z_ZL7^RUuJI9Pw|a1PpgB$qifWWLJIwKs|!B$SiOfN zI?YL}u+bk3tqc+M6`^!N28_g&Xh197HQJz6N~qnZ zoX;8Di;rJa^dI#`*EqYCXoOE)FTRBPNU1P$I@}Qh+0e#)exGaWnV3WYJG9c0R+Ot1 zpcm5_hH2ygck~V6e5^UXpIXj&zZp=bpXh4fNQwSb+IH-Zx#B1)vfGG63b0Oe#W$jqHm(TcP&dAT~NEb$@| zVMaapS;IvLGB<%XoYc&WjE;rI*!80Ra!B|Y0E4gwv{cP`pn85YqvdWwwxFK;&*63q zJOMb9)@l=IM_+qUE3^>sQ{4vXM!DwR|14nQO2)!qMYG$$X#v;+186-Us??&n$eb92 z?;4(`mMBV!(ng7FLjXs~^wlgipd;6&P2aWe=(#u%VP~{5jiHS+9Piq74nkDQ((aA` zZIiHiO2b(-#z~|cC?rH9G*N*7Xpj&7{{Rh^E*69V<2EMj&?*p*EdvWMZvU56MXoM*S0mxmv9UE|JBSDCR0Aa0&3M_u}>aAvsN&FQ~8TPs&DD`t5 z*HM}y=f9(ZEXF%IxNR`}8EPq#%k+r!gZ4h7c|sBk9<>ZFAziyDtj5wIE}Pzet%Yt~ zEtl7S@z`>Tm~Q*v8>?yJFB%;WA^-3b<-ABxYqLfd(<0btQfk{MkX`OJzDfW;*Yee? zI8D|Jpi%*dgctN$`G^q9j;VP4rA*U#Y~(dGD~2@x>3PMct?;m=<^^e*5d z)7aLD!X5sdD)yG;mNqkLA(WbBp`+-}dX&|Uctrmxj~;?oHhVZaM2~n%{a4i_NPx3_ zveKsQX6%d&RAQDshB-g09q^aPv_<=X$^Z8HU0_ujF2I&qULch-m;y5+p_a(CS7g(vf{*rdbEYYKX z!no#r|HP90S(5&cEY^s@ef=5lKhF03qllwe-e-leZEIxr&zxYiP!fNI%OaxsDO;C< zh#P7yWs*)m>qpgp04y_EV#`{q7*#d!`8ZyrGmDJkUu5BNG7Cqb0{B$2Qd@{-hgRjt zE%5I{H*SpJcb9Bn=^<78T|_ot@@iWW5|IAnkFwl6mfV2$Rxo+$h%}iNuwdaUp@S61 zj{Pkt=_^(uE&B_bQ2y7~#bg@yC+>1+T2o~g+{Lt3x&LUh(d^W-Ou&74Aji~S>ZgFH zq@x1++g$zxQ1!04+bMwuZI0lMCQyc`6#igCVhc?5kH+Sl+4=8s(?>eO@rFK}31L9q z5{CdWvf8ycN&lu%X)Mb?=@jxu^V3&y=Bk-^i5@u+tbWnsPgpJ0Ix8c2FUp;>*hThC zML3csm*lQj&qGH-v@Esqm)Nzur&5xsOXv^4E(MrMx0!e)j5_f^v1ucMafzfl8vKi8 z?E&8dKOBZJ+tf5oB_;{SmtaQPtL>i{{O*-jUAsZ(EPl6LgnjpT|H&%_vImJ1!nxZP z15738U#+6Su_%uLe&zPyhk`{AD>sg}+q|PZ2LmFWoR3A4ct0r)yMl0fkwc7)2Gg(9 zOe8}LJ;{=g5>thlyj5&J(~F~rD(#VEJVzmF?hdK!?zuw_sN2u~g4`ZKH~LC3n#Lo) zeW=gOj%8a$@~DwK6HH+8helwc_+!E7Thdeg%m-8MAH66ac&XzKFok+RQsi|*3XR$Q zZ;aR1BzNKc?7rGi59KljxNsGy(E^{8>`lQ|a||qBS=A_SU=Hm7F}n>&U-3BUVqzXC zcKKu!x|uXu8_;J-IeP44b2mnJ9_kT~#rrMG}ySH4Y zc0Uo#1=$+`LeW%%UU5tZ^DeGhY629Z}{pNHubcQ2XTAU2dOY5!1~eUxP5 z#IQaLxcKqHanzH4vO|##JiJ}Yk&GDfNYzt{a(!_0$-?LbtKX{CONdtE#{rWGZq8S< z=n|JC{H$g2+zO+2J*oYY2yB667Q=k&Lii<-CVCy-FHeOROdDf_Pa5X~J&bs6a@Njo!317o5TPTcs0fpoePJeLx^Z54=)= z7aL=N3scVa6+*HK>#S19Br3cnj)w@|8g+vsRFyDa{l=<0c8?VE{RWJ-Z|9j9oK<<9 zVlvZlJyHc(_LgslRcmWmoYZC!1>*mcqRgMAp5=rN!xZR?s_wAo#yZ19^}AiytoSBS!y4N8b$0`2CVYa-TPyyf3 z6Y(vDJ7^~%*?Lq3RM+^UK2kD(=-s5^R8bX7=q zOl|FCLT62&MohH6&qnw)H$N4X>0&Lm-xkZz7H4|En-NpeaI!wJC)8Fd}0@czf&g(!|z_#P=~-I zI;YNm*L^16wem>xN>e&W*UDAzv`Dv7$?MT% zZ*+w7FHet6OrweH{cN~kwD%ZSj~lbm?Lh=mX1#H_VR*}xoI1OO9P`E+0v+Uy0>wyK zSqjYk)AMq4EQo7@uv(cRwt0joZN!DFn1xa2KytD!zJ}s`(}@SEgBNz|6p1CT7 z!)zCYARJU9=}e&=?sHkxMYz*h^In^1p7_VEpqC3#Xk9PM{^X~9eEsi3i;T2@^>}#L zNOO9;Bhuv+pv7RIWf1^-*q#4KxJ>RkWizxN5PYR-3HHkR*FrlM=SJU>#ck$DrfLsH z;HfvUSC6|9E0`N^J=7DKhJ!5h{fRkqJ=#M%;wzPMiEHit)Vsx`sc79qGH^rPX8}!r z@ab&(H(a`hyyf@3U#iNk5MeaCE^Q^6Hfy-^-F3uMAuWN6-<>R5>`C}7*$uJRYy;xe z2+2|CD4Sk;kurl!`2O^8&CbLDcKo~HYw=ndgmQEiDMGRSQPyZDF@8})5s8gqWpMS$eko~K z;1{vWo|(!bS4)CuZ-gK17fdrt)h}0ghK+4kNi31=c}6>cmOxV>Vj0qjhfI>ieWI-; ztgsi(^4%9vLvr?$P^im~-4DOsVQ=6F+--dR_zT=TOn7WmG?@njeRH_j7 zP-%y28K91!iA2ucWdoalaGr~6bR1$-Lp>u^@|=3ExaARebb-j(TB8P9ITTZpGVgh9 zv;>VY0?6kY>Nz-BP$s?p^8}T+vKhsUrdn!!G%%nFC-qknS)av)!ySl#b%nA1^9Tks z!*AN9XTaln06<05r+-4x#X~rnlMCALTC=st7fn=^rcYJKKFYYl#Ek%W=cy#1R_x_& zO+oXC-FivM6T1-cW28*v$_MJ6@P+ed1H0K!K$)M~=X^lf;HJ+R2?*$tg@I|FcSrod z5wQ7?Qy_W<;ZJiLHeG>CZ7p~w+?^Go7Y+TFZo@tHo_22feAC~m_g|`*Ax?PFLbyOE zSdn1IX|dIAA(35wq@F|zI#T5+u;5AesGU&AqF&5aEKx6bcfhdW0s8#?6VHk5>2X;|R?u=&7$QZw7 z6xaX}O%c@-8bAUQ8~d;M|0Xc~AG7}(U!MOzMLcLCVex-B4+g3mZI3{ZkSqllKOIX0 z2Ly8~MS)_Tag+o;{ky?@2-fXSTTj6LO3JjL7W!F9sBzl2nehm40#+OqCAlt`Vz-0Yb zT=YJUyY~Zp=G0tvex-?3wcT8Z-N~bRo($nZxzm`+a_n+>i$vvKRl?cDTj>Vk;Gbtd zh;*=>&>5zQRP|ol-El!L)U~3&gmd)jeR{q!T}}ilp}6;UFY-})^yetY zCJmnjj`0bCK|x?)aSyvRXEYNdJ?qK#+wTDD8F+6zWs?NdJaQ}RNXGoan3>b)DEt28 zFY52!Z7NW(uklWvmQx#oN8-kF?Gcu=vGnal-=UopzT6z7kKrX&nw4kjXr?{dOF;?r zE=!?z>y6(904vmwygyb`k`^B7be!w{7~INBV(IhKmY%@!N1xzrQg~LjyR=BT;qTiA z6!#u|8v^7yMzHw@)3_b+V$TF~7s5|(F+}(&r^+B77zTcwXH8sQOx%9hu;i^%O8v!?FI5|)ks1{^~^ z*PX|8NOms1DU zMa2UL*l|xl%DG9S{U@yypVqc=^>FF*!)1fGK{;5ifB!By-JsO)Kn{>gxW27l0MnfD zZ?Z?$<2}jHZ)jw^TrMUBRQJmPmzouGuU8ZlD=A-uG9lL0eNdBs929+VJhoVf-JI?CGGL3l_}P*qNZ@#| z7I_N^I7JG#HYl3%eqaj`mS8kZOJ?J}r6^d$YFoBxZFcIsX9 zpHj0Mxe2j{tB;^cI$XwW_>Ba?Ol^D1dQ-=uY?5GLb0buRT znxvK1g(yQUK8&+kXk$tlqSDN+{=Mk0D2w@tjK(~6#&i4?k7O)Q#=o|&UISqAVnof? z!TQkNd`;Wgerm%rW`!kx7w!`woZaQ8?J?v8#iXT@4)YYBMh}H?T+?cT22)Z!XjlDI zFicCsMTFafoa*0eqtI3%2;w+*IuLbfkrshsIT-K%sr{-OuJMy~PqoV<- z+$n5k>@6w)p$i^OUJ{G^3yaahKHgJMB`oyYem)U0+ud7~a`Bl2T+IHs2e0K_)%~A| zMzQ6BUmVE@JJ=?huf@=vCLdmjlD)wsX8j?dzc%k`oq6=Yyu%}8yRc%YKG`m*V0~7r zVLWTJmQzqC+<4HC%es}_(4p+w7s+^Lbm1!WdHA)e?780Sc@aTA;gwdtjtr{hlrMm* za{xQsy@N`l2sRo%LmU&yGk~|lv|6LFv2U*A{_}p0fMyu!DAcq{FfYP)N2ARAonO~c zZDld}AdN|`1MS(^Pb}$LQW{C=I?Zu0jPr)HaoI0^rQ$BEo$%H;i4;a$?nuL>Ps{XV|@yM||-vYZw zPPdNnyVGm`H!|-elM+loW62m4VR$iwC#VVDtg6<4R@poWIIZof z5Ux$Ryl~L20al&~)s@%tEOJ9eDbw2l(aP5NZ32z9OWdu;`ClfAt8IP`&a4#4Xd#*% zgyee2-gl3H0C$OT%Xb=jsxg#!J*5>e`gKP3(44Vf_Rj(2@J)64Fh*68v}a3~ zG2cCb8}ld#zVvk+SH1sh87>pE$AoYmg`$mqoA-A~0mheQDf%8&wQV-Kj2m>od&SHR zbrr9;&CSpVYSB~cnp!-sp;0W&ht`GEt#@$O!W6n#g}298(cXomuV8{g40X`Y(}-FZ z!{~kyHa|QCuxtM8@bR_xFRcyQ4h5b@ETR$#mFH+l0m4B8nEtIDA|0*}wd*P?b?@zY z?iffb;JMeJ3n}UW(P>UhN1nch?dvSrQ8%KM(Lqnu%zK~P)Qo`W#7cHI?37sD1lqVaxDA$M)(vOZP z{|T=eYER6avATgS)`L{huUX6dE%8>;!SuEX<9Lh-F*t7a>hw$Kz^;(9{pQjF5LC-) zjb^#m;Orqe2`mtZnU?=DTt^>Ts=`;k0$~i}8@ZwFGn2?m8M)korR<)EQ7>li40>NB z4ck6)yU0Y2H4(YK)zckW=0?5M7^|2u30L`f8ttRd-_vdSC9=PPV)cYmE56Px23O4Y zk^N6M8b-JIR_Um;oyx_b)j8^+-Qgax!uyra>y0kkLSZOi$Y&W}_-G8w?_ny>Y3O}w z**}u;)t@db>*G_)3tz=6OZrCIx@#&0rAd{PHeTw#l1?5~2Xyq0f(_rwR>q)}FIC<% znCTk|)~-u;cyK-^a?S#lp^^EL7eIE-!u4i{alyU_O3Gf$$0OP(3HOf8XNXWlvd zp6Nd)a+w_t%nXxo0BSNyB#bv?8G zQPV<|UZ4Wxg>W>3^|P-wPF=nZ{5-+|Kn=(2LLa~Znb0c&NgjHcs%nT04Pe7!IG&N; zi5M9ltYREpDvD(DMG~nnaPo-uN9sHKy2b}X6U0McfU|l?IJ#6A(9PGSQ9wu34TBb9%xL<0u{)!U zGMWq!=b!WgQ#`P|QX3@#V!Ld+KP$7Z+O|jSAifpcQ#=AJshxNmCWFL`qO_i8}_YJafovKp4#ibKH71- zBNeMZ!2}fFz?@~=n3hMwvV^OztxRw~Smfc7V^YBJC#0Z+G0E=PJAlOovwJx{0KSZ5 z;EgxybR5uFp7g*(O!e2iml8bX8*BR_Kxo3Uou3Sgb|#F|!gBZ{H=a|I19vo3*%!#e zr}ai$6@TrgkPvqyBMO>F#G+)lK^4_Zxv=@hGGTf^-PN=H=h;`e2VsD+CLRb z63(%lg}p!~?RKZO5c`olknuZM*wXZ*r!RDI*-%E{y0jd#zWJ%C;!~_-8jdR%|ui$hjkhV+e7p+CjN6HyP?GNI#Zb8 z=itRK;d!RjG(4Z3^%M}g;~ggcUk8yVBbKtj?hKgtFLS|Opla6SzZg(L@Np%(>;U;e!pIgZb(vcYtdL)<(80oA7GWi+|w;(`^X>y` zEqrQYS(Bi<0+XduNCte`6_Xsl9UX$0keD#Mgckr;jZ(DMJnCEF!##?M6X2j*pO=12 z9)fG2+10wjuR7J?sM(A!i({}|TNgA`S6?OCsT2NuPvMEKXtu7(i{_X(*SxEn=coLR z+!*#IZ!ohS3Q*u+E&Lo8>G`TEfYKUUJyn}^D+CIkH~S$g0fCj(NXF>U41gsV(d9P) zm#tf!K8g?4-0{E9pF{D!?Ln4Q+F7JufPfUJ^tmWbr<4@oAN`-eKgMJRZwpH*(9?Q& z+-vJL;*(|&WzZfBMJ$$LhPo~gCoPRh_>)=Vs-Bq1h7Z>DKqD^Io6-=HxBR#k1Q1-nNJ zyaH^wGeB9E<91QYRYnVIVV`}KIb25Y{&!b?g#gH7NyslQgIaLvBKn9YJ}v2Pt;-s9$iAz%I2ps!?7IIgF;&Z7MU&9 z2`a)mnPp)~`I_k$gXdjsWa`8rpDTLPMhgCZA0Axt?*=k5Ax~UD5&w zO|WIHRQ)$*w1fhErc!8*eiqyU#gHuFtxdBItA(9=L%~yQtENJ!>K;#SS(RNRP zy;CX5Pv?qT4slE%9JCgf?}ellVpyHvtn}I3al__ab+3<*y(#z^A^Td~VLoxyhG(f- zZ*%bH9#tEE_+w-36Gjs!sL?L!PMvg|ZTh`^_{A}dYHA^CJ8}zyD@NyDuY%&58(E@2 zqzodMW*54LXy%JME8xc1_JAUsXS@esi2l@TbCmudtL6EEh1b?W0;( z-|yCJ#LeDC4w-vNf#H(7+;^43;>D81@|Ph&UsfafLP?Z{3h`<&Vo0Io0->`;u^RH_ zJgPU}I6>^M7-H-{1@$O}=}3P#Z;pMR`JSVMBzb%Zb+vWQ3{pE!;-g+zOJ3RSP(0TQ z8=|^bRf*ScY+yeXRm2w(D)~xE;e}iz3 z4P)xgR@QRin6!Y9VL+{&LrB9^q(X(P9e49)!+2WZ6f)j@Nh$xOkFxn=z*axDFymGm zF$8BGV>!?vx7XPnWRy|6NeLclR<{)Zy)|hF*csfEXHn04gv{3zm6$v{0?X-tCIAOe zgDpPgl86_YMhW;W*V?6W^YvhC$0YPZafZM@Am3IBgo8$OBY2LYM1i=B_Sy3bsX5~C zVhX*IM^vNJ`QJrrU{cZM>F?9M9$yHmTW|Bi8k~a=Ih@-9DN9|xAjW=)y2Dejd__iJ z=;e>wSTNVbmfa=dr+{Bu9Z{PHqJGFQLWy^NoY3>X0Tlpl9b$j<^H z#}(PYX88E-#nM7Ip7QRFrYAIYF$ zG!U^!J9iDa09?uZks4^jnXzU8PLn>76;nb z0CQ#=pKuJjMpdQb`qjorZLuTXyh>`AshB zCl2b$JTU7i0~)0gS94^}Nj-}%3koDogUC@)vhTqEqMifIbeAM#&~imjtU@3)W@f@? z`f>FvHU`{agdNz0j}dZVb7R7nFm46^e)=c`{M(tG)#~$cxv*pxku4t?wnm>7Xdy)( z->1=osVu&Q(!qx76sZN@>>=V7DHeUPamtl6Sxkm(*V1NxhiG30EmY=)8-s3Q-{4=@ z57>n@%1WIFLJC1c?PywX=`nc{)VJ7f#acDkwy_wyB6|u3Eo7EKq z2{aF=7662Ey>0GUvrgqkaMyREXH4@tA_~p3f8iAQpQ~z0xcTaMM5(Z__#aPL!JUhK z!;P5=P3~`GP?vV40QU`~$0|lD+()|Q&tS+v7Q*OzgkhA#Ek+p;>Hsv&Ry?AexJly766jaUP?a#Cfx4Ec83mJWllNPDnJ!wMH zHK4CRf3KC%?E1S@qw8TNYuDD%FhoV0jo4=m-`~;~uJ9V2HTG?gG=8Sk3q3xs*)tm! z&+Mxa^7T)(*DlGe$%}%NXGBFGUX5e)9zDTG23M zswO0!|CW<*1Qib28NJ%!JPdCQ$jljADc1rO4w#{LSwZ(RV}q91aK>)jc;0>y)-v@J zl9uudD|`KrRi(K`7_0hlOA!(1y-FDLjKyzgKThValz7)HgetR^;@{f)HxnXOH45ap zTL!DOMV69++Xx`^^WXgYj3AI|uJql^ZOM%uesH?EBhC1sh2Wo-c-_yB1N?URz{k?p zr(Tep=hKi;lj=VYo?WsbZIdx+J|I7SI!o`9m9%@n{AdFYzgG@htf7JmNd1Bc^X{Mi z5dXf5>SCyAMvNyp<+%^A$;+@e04Z!=Ubn8vTzMrwCWRqZvu^g(!&6w0Q<}vjM z=x5AL5Or)x*Rzei3dHwi>p?1r-Rl+8uH6MflUFAVKyz8E6!+Wu-WusFL&o$bMlMlF zn_kK^2BKqxHv;ule5AvCU6&Cq=#HyV{#!_F@_fHf!E;|Dvi~+GS}Ul(k^)eutM88m zzz=+C!Z6xe?}EtwOjW+FX$Cz46)$25IpCh>0j;ZEn8Yiuo~4>SkP-JQukPgl8y%a;)>xspE zZ+~KcH?qfUpc@7to(*C;b3ya5tB{sLfn$frv&m_Q`B(q)Ro6})veO^%NL>3VsDkwT zwel}6B0IfbDzN0(xVJ_v)ekWg+B9yW3P$n;XVRI+?7yuuJs+r`H$IQ6JARj4q^gWo z^!&-4l?3L=2BiAykSUaS)+7g5ZI$dBc=wC^&+ws-TXX}K%K0c_Q z8yyW2XoK+#8DcG!9R@zJSWz%IfxUOZes|dke+Xty(TSopvF^!i=68!d{vJtjsNiuPhlsQpYtHeIqypBi z;j`mlI;Vm-Y0@Rt53B*cgw>V6t^Rl|2G|1mz8v0#{@a~sk83qLIc*nQ{vYX4d8sohL%bx#jg6CV>`sW$#-1TISQ<<5j40>gnu+o6T3`tBY(LA#`c zp+)oh-{xD6H(wOEJ%MXz(Zo}b=m>G$d*W*GDp@QxHd2z9y#W)_#@*qg)?e~chCDwS z&YY}d-O&)(@Vm?;j?F6N$EyMr(^CQ4?cfVnyUe>tJtIRxf?}PtZlg~znKRxMx^9>z z%ldJF%0@zA`RhadF$?L@u6ct$W+l5d%y!9!Rm(_Wl$EJqq(XrnhrWU*!$`?$e3jamPqs0;i=FD;~2!~t_Qak>Dh zPoR$M(jL#hs9^(yc9aw@#*FgKE|K2GYqPUE-^y$74+^(-9zO zB4RXw!YvI1t&yH2`V)D>@L|R?+Vc;m-$YzFE%tAUpU9XuaO%D=u_H}U7pPD23==kT4~B!51@f!c z7P39;+|=7zSq1s6-B5Zd5`tD`+9yJAvM&et54D<{qvMurBz>7BW4FP(oyHDA4|#D= z71q`y8;Hxp2jK@WpF&TS4~D6cf1^UWaau0g91<(`2QFxj2qYRvoJ@w|!_B#q3{b0X z0n4qBJH!cE+h*;Nlbj%S`SEy88ZUEE;fDQ@f;;$Mp2?-U95w zVk7orqg>z*dN|X*WyY~;cxy}Fk{EGspGKV^KdbrNz*fXEISY(Ll%U6&v(ovAw7XwAT>!suczY&BV) z=^jK&B8D_E8MAeCLE7+3K$DY^!tIN-FFu#5p>iGpn2G8rnwt-1P_o~>l($>9`$-LG zGNCT{AoyWV;yx@x|GAn|b&;#MtxLJ4A@o0w6>Tsw)mMhL3(K|7GmWZQ&CebJiu101 zdaNB{UlT}%C!w#;T4;GJ(K>{t%4oniH__EE?&jr;{NfVt`%mbg~x%0Py1M>x?!)8_#4d zWG%Mnj+%@*jp~j@j5;)j0TpPCyJcxWICIXlA!z;oV%FLICtq3f<{Pl&coXvf7~l{7 zTdr$$`QIs>iRy+gkU(&q4gB@9FzL^0{;Bhy7YAV1#_IKmH08nlix01yF;|hDYFN;L z=$P+16pyVa6n^E~II;!wUK@1E>=zQYKJ_zRCBb_AgPs1LjpO>gJ$Yk71;W+oyTrU* z9?;Fl51OyI9zW-Oahut`-NF^Z{?Ot&p3`#C??d?0*1}?n!|(NpWS?m)9f?{; zXZwMYr$G0oeIUt;Bk`LrvM;Y#m(l+jlo~$N_$lj9vCB>G`n~MHi#c-Gttb|5CXt(BZ|Y z7PXsS?D_WTZ=>ht#r>^VsNhSAaPD>d6DHxW(xeSJ`eTW@WjK${Uf!d$qNf}_R&-q- zJ@?6eL_OVD&Uj5=xzmMfl?DoAL6Wk)@yn%l*se-yMy8A0;pxhRlk}=^fP9KhRIfyO0+4E zx^#HOMC{>MET8SX(3X6cqgOVI3@3w3c)v@3%nSOtV-JKGzwedI(BS}at0wsx6TCfT zGp@xjJ&YrM2wYLp5r={T89OF=Huf(&|8dC1z0Ecm*8{!xVBD4u9x!)tsrP@v$k-Nq zn+e@(4@2pO4Ap<%Pedm|zV?qFcpU_ldh;FaVk#r`e_k4q6mKI@n-Ls8xWPuPxvA9K z5BPTVqhRcXaL847>xm=Rzum~zpD|C4vD;+#^it?Dmhu%JQoHNDkxU>cXX_Fv{)xx+ zUVH(2OCOyGD*5$p`b5j>$;nyG4q38Ah&&b9}_ z2%-Lqc>>F=+26lxft3cyef>S!&>1tH!k4`Y*cQtN40f=JH}9s+lD57m0k|~E@IKh_ zZP1&r3XrSIilXX86k1(BTeV$Es3^u|<6(NMtZk(nwzfR8I<)Ti>0m8~{LYsF_g{W~ zQimJx0_=F^X%?^u-l*HUSn2C^f@E| zeM6r|DGDOEC5PxhWF4Nu+)Lb}p0b%iPnnHO)T|on$f=SzMJE*hWr%KM=iw~+^V*Xj zMKfn;*Q@xnRzocN19`EWQ{>RZD!WHD3m(BHFk`7h;vCB21|9?Uf^nlsfl2|AGS8&E zc{3>&BqkK>3Lrv%eX^hMUqro?r4nu`-W9Y1e}-h$3Ov~zlL^D@6@$m9xJ@O=W74NQ zZZZ|^%@Y=gLA$l{iO^NvmDYDf1>3xM$SFXl&OQiPEm`=Q)B(V=Nkw^9-(Gr3*UKli zPii+x>{;ag=8-0Tb^qvbeWFBa^w{q&NTT85P;lPo_$+k}5(^97 zkrZ^?reqWe`|>jXphmC8vbTc1y0^ootmdU?XOh+tj)JTod8c4ygxs2#qsFi;aOK;_ z*p>dg=lv_%wF79)R#P?F-?^al0x9=Z+$tQ>T#8*-Td5{UJ`kLQe?4Zkq>*V3tB|Jt zGSvuGt1iTz>9Ar54t2|T6{#244Y37Ai;30%>zLFiyY{1imaIXZbuuU8M}p7tn;-?R znmQ@;W;TfA%RMJr%^@}(fR`eST#7BF`pLioMpGv=IOV2$B4(K{Z+S`Jjs9S*Pj9}F zVN9&5B@o-O04V1K$?fK*O}DBldVYhl=V4jvaYwRj&7YS89}aWNLz1b?%bXHQ{LYPd1yQ$WCJA7TG!L2~d1EYMe%$&a0%n1Ic#k^i`X2?tDZ7QZwe z{x7c1IxMO$?)GP9=428kgB1Zj~*Is~M2}x-IK?Nj-6o!y)>F$sQC8X~0 z_rCYJ&vXA9m_2*;Idf*t-ut`OXT29~uUnW7eUYkK$glIAS8aCHD&D^MsL?v{W8UCM zm;A1vORw=0Y?WcSV@NKU3zdS4i876*@5Sh2DVMt2_Lw4`5Bj6Uj@OShA6}Z?`nk&t zTo&68q#R(!>jSr6D8}DZVx%@p4D?7eP!hi|WQ3jIX5muxPX8$)4O$Cb+ZHK5m_EaK zt9VGRb~t0iwprY7;i6zvID6f0N@XLO3o`WXOqr9q-l(3CC2|ihm(y z8teMBd+gLyw{_O_R;Op&%@xwm2HD#m6jfH~TVV3zO~YIGZ2OP(f-k?$s^?HCL!tV3 zseE>U$%{nqcI%@Pk|Gwf)JNKuYO*dOJ$-sTQe(>|S0a=97}D04u#~LYUxD#p3Mm(Av==BVDw@Xm)}nf&End7p04z9 zbi<2%HB;yPllT2a;*||c?~vM*fukybozCwyG>)H>GqtD>K{_`rURfW&O>_K|f+>oJ z%GIKaZka8AFp7KTEL=HIU80-ZuXu<~O>`>AR{o97YRpVC2oBB}5R z-)2|V#gdPxAy95cGpY31$N^3XO@W>Nah=`IK0ph*Uc-E;2hw!kQt~tB8C8t^%*HsK2Z!CUzJ|YQqqH9 zNCoB5KGx@+>ze~G-jt%_d?A~7t*xZ|pupzk2X4?cytC@Uyw{BirD)ZZv?3C*HKJ#X zm7#-md@+d!65pEbIv)N0)AAZk3w;iv0p2o#i?UXYI`*FLG|OAA4S|%TCw6<-w|xe2 zSvICab2j|RASFo8mQE*=vZ$9ii z^SuSfe&oLr80?k2x_z@1?dji=4_qWTqjW8$0O#C$HHJZ_=Q~Z57>|p%mz=rs-Y^ah z&0-GLHennTi*lwM%g|ez+7BgSx*RO#V@`Sg6Xqi#3UBYtkgb%k?$>AQf7)!Bc4#@k@lJ4paC=l4AbiqPhKHeG?>m(&3Dz`J3fUkVDruyf5)A zOFJQOMWtyrd}}h6ZrL8N*>A8J;cp78JffTL;n_36--oO9f=85kNHA(q)id`E`^0S%v4`gfLP1qM zqPEeu><1-A-yV5_Mc(?x{-?q5eN1Nd8!v$WM#vHyqXRBOdPvmJSar`$V7P9uq$n+g-IRJzyU zOs~8XS78nNOs77RDW~tmcZBHao$J<(0A5Z3G7;^xw^(cDKW|q3vD$tqlbn-88IR-! z;)Tl3e^Dn&>))}6G`ndRfTi--Ad_=ep9o$wG<2M@=7J@!D@3+uce1 zdo$TKKG|VP2<5HHnt5-3p>2t1z@Ng#954pCdc;ila({w~Txzz&q@8tpAmSBt6B z#rw^6Jf{8kHUoDND=hZ~Wa_go(Y}g(Z%+VG?27m=3JWysuKu@4=WT=~%RP7kW_#>i zjf2#$+zH`Id-hX+w0ok`y=Ib|)!m9AYuLX&wv1r|MrR{{ba4DMk3yv0R@gZ*tfzMolTeMSKVQ^^aT^;E`|n6>@5D{fEdE`60^Bm2bxiCi7fX`aaMWEfn z;adD@{+qifZ2{YRcYd&6dCv4|pqFp zHt9HL-{%;{REzH#4+}l%45v=hF@+{$NamlP$=IT4o?PFY4&00+hZBOmN+W$uxwM;V zO!>QNY}_7wlIvD?cCpwF{%?HEv$C`Qjd?lOgl)lKXMlk=ysjk*MOob$i2?t1)(T!) z2^ZUGTA0IEDa5ip*JlGZ>A2!t^+ORmSG0rf*1Vj8oCGd%gp~gW96qjavw%}2EeX%9xw z0ey6T^F0xK$zlGR+xz7Zyz*!mj%xXrEL`ULv`|ccAsY#Tf?WJk$TXwGW76yUdjT83 zr>B=SECxKT!Ii0bT?h7-9wqR~1iaUH5nvzpxoUCw1lh{q_*O7C{E#Yguml$a8Rk{| zjUVAp5#o5*E|%ca;8CIodvB@%Ne@N{eOiBa`1)rN?rA?jQgj*T?Iv#V|oYQI5JJpAGmgCw;;4 zHyaW}3#tR4e2<>=>Y*h9CqDwK!16T)fZ1;O8X|{Lly=M%bBDq#r3(A$$4BG6A6^W6 z^JA;~{s)ao7bS;QkNSzik^};l2n)764sTRoaxJu2y?kF<@!OIAkXgF$&76Ko?=&Bab+j?5@3m|+p0IQJ zTYnaSDOexrq!0Vc@-rp_2weYc8FOz*Myi#MojgcOGpcZ(`~8Z_C}7%MVJ$6I{ktj- zN7I2n(NHC%(=UPw&F3RT_-@hSha@vJU|yVF^)i)RXsR}YXPJmZjxeO}3c`9Xv~f1^ z#x9-f!4Z#+#q!rf`4#=_v07+!;3L%g`)XCfGDUkxTd=bKsco17%8SE9jOf0DTgfGS z=ogyoIr&HfFoq(-#lP|5JN3zjCJ%KUI7Ms0LKj}3oo%+9Fz;?9mPgGQ@PT?}zyot!O*OX*wYR!ecvvTzxx8ZQ%uM7gW9p;1b5}~bmI5G?G zZEDU#SzPh;2WT4+uYmfwIR2kzV&%FhPP&6fEES4`-|id(>E z<}BPGZ^?Y9-&O-j+o_NFfzI@?Zz~=_q=Vr!Y|rakl1;>3=$pRVy(j%-blE#7I(rrb zM?A0dqq=4+f#lIh{$A%|xvJt=>GCKr?ywK7jtRW2nE? zqE?-)xx7ABs?{Ic;wqcp{%1qUjC*G}LHx)T!05#oPA)V+c7jlp{T*FLH~R`=zsz^~ zI#iakbIS;vpdvI*1`Cko|^(bm-KCG%m}PTnqMbx zTY}^Va$&no9O+q(Zo2vXkB!9;>1nmcponv0U&on0boJzYH0crt6QPB$UknqWTu`D+ zY9uwBt-t7DVK*F18~u33i#5qFr5d%Um|WoPFm6&_*z_#KPcV?kDe@dxIn>~Bx0R1P z-Wr+1IppVqGMag1^Kp50p2p}-d}`2d6G-rmq__|#s0to-U+mD3$g+G&hzN0$D{Esp zHKc|Yg9eGNMa5X=-$E*j^lf<$R-Om0+#Q`gz|{+e zO8ok-INa6qftQWJit08ij#+Ote7LnThJUXI*RxS$|M{`c5!%!1Zela?BYA8OG_ezw z&}kpENY>^UXc9-xZ_PohwY#sfmPrU|GTFX&I6Uly$0&5CEYivmMw!Du@3p99TVh+H zjf$N-qmJ)|bXvi((nk0?O34Jze`W(UEepEiotr-4$FjWqdU^$^U-~|PTDg$q{j_-T z#JRxn;P1Z;fr4F*3k*z!pWaeGYEJj20~)lCONBaC{i8Rd^Jr+f>Gc0_HV~1S1oAZ= znBHPT4xfooG+y|Fj(c>}5ul0|<=IOa?zj?Z*#{}{? z9v^Y05yeJwz{KR1g~PFK%bjr;OlzDqN@$xzGjO4dTM z^2SZUJILll@4#S=A1uQ3`t?oWi&tBnoWR)U?%F3y%f8|yvKRmA%DWRz1zx!LcC0W8 zf5Jj6m#L8{x8Q+IrOe^My5XPYweXkfYVC1B&+@?V)u&qM7>JVY{E)A!`a4~VKYQLVx>PZi_lwqyh}96SdRc4tiM;sE?Z3k7ZEn@*Pm0eL zuSTjH&%6|D`)pssM5%@;slT&}bN?mEs?<5F_n5*@*s>A)HqeKVj?RQRR#D`*crDP_ z`BCh*#lJqetb&V@qz&?5-~LET$waDyn#zP$WR#Ngq-`ZXg_(1q#~OM&HDt%XV% z%9NKsq~ZOOmuybaCVed@NoqRSTDhBNNkSMCsBfJQ%QgvkIvABnz%nHXA>_-0eG26u=X^{F`9p;)YZ9)TI#`73Vk4WiWGq-$gkG}#61byn*O@le==wEu@c=obOYAqT<`z(WHb5klLc3P{l{iF zcC7QLpyi3l z-}|xK96lKqVCl{tcEG&{Q+G79(&Hwel8>M0c({!P-TV>Bi!=gjwy@(637Uq9aSum| zr6d!^?o)0q2mj_TccxE0yg>nSZxaO9;D!k|oy@mA{oiPui&GVNbf&TDn_G@|F_*?Q zr4cW?I(DDyGHF=;o#ayVSJ>IwixG)i?3?DaEfJub4)u(WbTpl@bp&Vl6#ZRQwAF#N zy(E1rx+>Gu2Kzn^@oGx;CVG6I>gdOc91H*LW|$y_l|DX|%!<|DUK@?1(RJ+>bzybEb@u+WA6=vLxyT7D?9J0CmB%?cl(!WsDa8p- zEeXbzv%>XjsI6(*-|JdM3iIHNxC+KoTf>oag7H*JX)etMV}*G0aaD+^j4msrZ9FRm zHFB)T)|$FVaxY(K_(2(n*~Ue{~JK6kV)bwu^Qb1I27AaV>)Xg-kMuI=KU^p5$l5+A77^4Q z1HeXMpaB~9-Gs1td3%O`C@lusE0O#NOfn*1SPffF5U^2w5aD(w7Lgx)m!h95<72s6 zArcjT$jJ=ZVG8%>K#YRi=bk~(_tT<9Acy~k2@{nI#MBGoB{dGivOvp=u1HMgVq`lR zglAEXMR{uMG4AbZD^nCOJKIjlxM`{1Qs;>cOMqW|zOq`94vUyue1`s3grB-GfgzaNF;@@?24szKLYC7u z@d#VYJ>T(DA)~E)g*U#xS<|GpNM~AeChUlnE|~l}|Ae%-fTQQROG%z9bK$e`uMUVP z;E)Mizg%}0*xhk`Wm+DaqNH+u<|^|{YHfxri{o8dh3d<2*@Do4;QbV=BG%~{(K1WwI zV3^qguNNuT% zNnD0*komjdYIH(WLkxQL=wU840z>mF6YKo}kcO5}%wr16WjKbEe2|eN-yM&?MTb94 zoP}Q+r@(xXT@LKDTN}!Qt!c$DgVbNMNQ52+Ji4{v1KE|@SmkPARw42l)9qb`2F_TD zeS7&xzl&&lsK)^3D2cIIB$Us=p>RE*ddb%mEXUUHbxGgUeviq)oJ;x|{BD~!1|h<}9=It#si|pS;scFDr#F-6wQY zwjX|7XsG~Fa-JuVHc}4Ha?E{ykW8`rD%bA>D#$glg?#@ z0Pl%kqjY&);)?`xn8x$P^WyyaDH{zY znH|-5l|UT*3bo0%&q0*1(w~eqd|tJCdT>=f3AMP}*~yAfG$QTbW2miicC}G;ukp_^ zN1CO|$OZ0qS=Gk-VC5)KvDUHkz>bEGR+{rNfS}%3^gE5fdyifa^xJDAcgtZhUs)Rt zuiY9(o($umXhst)w!t z@8?y$aM_Ga?~*y4-2K=+2Mwubc^-$_pZq)nX2WRSTP{dCGb?%g(-qOn&Coc%jbfPY z&+ln{(Ky9D+L&YyOeT1T*DW;BJLfE~2Cip5yrr2<5oG_QY61F9{u2rU#&i4&msQuw zON!ifv~pav5;|1J>w0L;tIh`mG^CNQ5=*Df0D>${69(?HsaHf4A1=C1QFIYvcTWXE z)STZIFc(9R?yvt{9T09SY7`Z{A-an7HmB)J?v#Iw(N1r(dvM0|3Mh@{fw2GTaOvT!-tH;rr!N=<0ApHIAuqam7I9lP0*iA((IqWC$nLFScc%i+qG z!(Wu_N9Z5!Fy$FtBpl0G5>rnVx0(;RfADzs#4M-G3x(S$fN##}N8bByx;@ z@QpwoUnrFN`QgsW{iv44j3wzV$kuysLGIv?1#+NW2%?uw)Tn6^EJJc(JG6x+6(aFr zlFzcHJry>VYzZh6B^jj5u7sj`XFKK!TxjvCq%jN^JIc4+q$Tl8=2SFM3inM0Dnb)+ z-%HF&QXxll3%LPd?p3MtB<(RQ1_dD1Af(I(vVN68pK@C;eUZtIr-)P;$}R?h!d6}I zU5P?t{$b?tO{9)*^7JN*tYpUMJy?XrnP4^LizPwyIt8MeEQ0dFV!i{m1Qhn~GQ4J+ zT&jM4JJU>m!;tl?yzJWY-byTgPgKK1?$qn7WhZ(yjz?#(>W>H9KNpiiT)+H?Y$Cqaet<^l zCv2XeGwUU9B#r#MGodpB-F$DisPkBD$2|9ZcT!@08t<&ZOv+el9AEj{Ae&D~k>Dh? z+aR7*0K=}H>Y+p={L?y*FpuiP$azemZtF}#$43o%Hf246FNYcw>=j*S6d`P&nEyFu9KR{*p%ltbkEF|>GvW}u4-&02RJ)y(~OkF_*&*;hkP)D+*dzkU1tVrZVlBwb>?!VyKh%EjY%8?XY| zCGH|HLmDL{kk3?Ub2?;^{;&??2KWFyV2~K0{);uO2x1RIVBU54fe}#i+a(KO&$jf^ zJ&WC5VgaQ<%?5E>TNNYzPc-293gl>E;CI5B>3XPH(<|q#rj0pb?MfoxGFB9ig4+bY zR`7h66(M}*RQ&DyqK0qn@u%zw*#`=5oC$DX8t0>O*T-_VW@vyQ8ejnk032w9WBcmA zM{&9$uyB3+00MyUH=sDI&A22{v5pl{6EnDyVdLH^F>JD?l4hjm$y?ozE+z-#zXBYA z*GfGX)*2>on>kZ z$mn>Rc~cUa5gR;PAX628+{+VnzE?+W@4=OO$2CY`tL9=ED5g54GI_K@P!Jj)8Y3D= zhp8|Nn){999G60FEHErF+Kw7v$LL*}4X{znWoY0M`gKTXXwF-pAGOA_#2YJQBnu)_pRfNi;r*L z1oL>~RzhZ}UUN7j*&0>WqW$2;)#L*;23$SeH(D^pi{Fq+=&9HO=y_)DoxJAq)!gBo_@A96sq@!dJwSQ%0^ja+?akNM_^c(*06-L zZ6DwEIvc4KT8HJYCcU~9$qA$as&hY2{SA6=p5vE)LZS=1!p`C;T}<5cQX5?J^A z*pSBA;*v9EF@lXG0Ke&X@gF^_Is&^V)N2C@S$sEYu=72#2u;^7l^Ee=A4Kq9iB5b} z=P09_k;YTn|AjDEWD+lquFj^!ankG161~4>2gOv;H$Y#LhZJWOz=Z&(4x?rzO8;OKzSL% z!V$EhisGVG2r|f!(^l!CH=d}7#JB%EXNVO`jG;sV;CvM7&RDMx+Bji_pwUdG9*xKf zZIl&_aRO}=6Ci=QUDt0nL7vEt*Y6l(nYm*zbztW!LSTQGH~?`Vku+>ENu)y!j)=Ke z0Ula{>q$o3%OmQ?fFODVApghmcO?ZBujd_(%!o=7g(T@J`54V!EUu7sciF6xhTZsQ8JJBEN-(y-I| zhrQVO7*@=UJ5+LzsQ5)h6igE^%gu*s{8d9nh@+7fn$RO~8Uc@l%8=|3`Z1a_W;-Ym zn(W#>R{fVrM}R-dMlq2%>@;j6IX#i+z71f^pb6`p^b|$Cf)1~jQZ@GcmV@1i|1*04 zL8_;S1hb_nT5gDfpX(?(8RRUtaQ|q21-MRs(U<>HT3OnZN@Jj1!$S_Ii3O_~v8FLJ zvQo_k8ZZP6V-Sp7f3f5!T~8ENT~wG6K~ZlNWfo8vSAPx$T&Rv=C+63Kk`a{G+q4VC z6He`TP;@|w%x-@+5wa|Cv98x5kmrOd@Ui%U?v}a zo(_uoUOyUR$v! zh{LFo)H7M{+LY&@CfL_l3r%hM5IjhZOpEs(g=l`v9Sef~4c1qH0lRJcS12clyAx;A zZem1`fi{C#7XF7coE|oxjtl{BU^~2+ZN*~YG2?4X?@?S!$R8s9tM>|xJ#QC1hQL(r zOe)BIzfSim>9XwNSkYqBM*9*Q}KOw52su{WH`a(GHU`3mJ zWTCnf`w$3O9t!OMJvOwjUj`kefULR@_%@TcLGFSB8RQ=IwTjzlg#P+Z5}&Y~m#=C6 z(`sX9Co(5=pux#I@N#tUh#*llc^9<6odeg-hyrE$2U0G_3F%dSC z{i4sXE`B0gS;(^)1?0hljPw4c7?r4?OJVoJq!JB- zjh@&g0pMo4@Y`U(0P=jqSliPwJ*1Je$2SF*U>$uOqq_aEvT*>#`C+KCHalGLCrR4U zU@uS`cZ_*SE!fU5osd)c7x1XhVmv5(kdcvW`|Yr4FXd1$PTkyK z#zFUoe=e!mVb#Qtkp{*6tA9s;MD0f?bXZK)XR`G3VoMK(23UQ^F&u5z5>Z)3i7fa zq5&ObGU=J^90FgZ(9`;@~%=+rlbH!JO}|AL4@Mj!p@GMh5kMI%|6B#NT@D z5xRIF8E_PQ^WUTZ3&i@NZ(MTb|-3ETpGx|{%ZRmNMJj;rBeKAQKtUEGUE;F zTgsp3I-5)4!PC5-Rt=?83u44np2;4}H}4*MFNq(z(K35Ws?p=Z^lKuh(C=SglH_A% z{@ETV^_7FAyAHHTlVYb$P^P*0kH3PrNE(=|*p93FA3}++u49E%NtmgCgR=!a@ON!{ zSs)D;+?bjBhH)2E_j9xI2_AmremEvMjMa483Vk?Cf`u~sd9#@Nsdc^f1r$b{ZQcSo zF1bf*Q`G!}Y!r<;{^}=#{ES9RG4JGeUrZ{e1t+6IOU}tZihawh#IH~~2KuX2>A#MfiYY4-YIyn3*=Xz5 z@7si-^!PnqHH?-xv3$tAqsn)^5$8G5*I(Q!v)uEnB$-2SqbB7@WV&~{ru0qsc(H{X zZD{}ExmGZ~pU+Futo2g}`BAcxafQ2L%9C7*mR8SZE_)*o^ZODuv>wxVC0|xvZ;u|m ziq*)eVsEXZm5(`cNdCffr1;2hd1j=;JmkQn0zvi#h3yQgXEHzDiPu&V^BF$GO{sOu zJKmdRjFIJ>m6!#c=U&7UcxM@O^j9HIW$80r9Pj*Oa>k&SG0VKHM@B6diAxBNqZFwm zxz|8;3iLTyM+bVU0j2HR>bNT2Vk5Nz52_I9yHL+#&W?)q7iN=V&*Xp0n2_Iy8O~@5P9oD(jP7({c$5XhPnDwsK5~;#&O`cO=1OE59xl*P)vp0Kp{@^W^ zrZLpv)CYTGMdg0NQReA2@gn0Gl8*^{yWBlp{c?HeHN*Bd8r^%H?yoHBHU)3{DNQ8Z za-Cz;IcCh&adjeadAdF=3~VP1a80>t^lWW*EvR!3h2t#^M?5*1c8jdAUSj0CQ8Cu* z8Qo1fx;-fORz?U-Z&t^s9BnR!g{dOQ*u&tTTZduNwv|rn#m+5{r+$`I{z>_Y%blwB zq}-4Jvvxn@Dhp85k^%Q`d|+8Kd>1qEeWcrVyCLJV#~i@36$QYFEaxyWlCATFtVhjz zJ~>B#0?o?kRC)c~QpuB{5|hg{%#VYiF{FOy(|$|WIQ#LZSAS8s7Wl2pTI-%{sz_{) zps`f7Bl_)fZ9Z7W*G=2va0$N5w~T+OjMV1t=~XuT{U1mkBr!=Hg+Y1 z5J1>oC{GiM-Ywl&6=z~y#MM57Qo)W^RDYUf36RUNd)X!0D{=;QRj%bfl_+PC3Jo>G z9!YX>Z}p04(JC3#xM^8?sS(iUQ3v`MQ? zSpLoT5;uj-I;UP5?rQ7g7GfIwCceO0ShixR&a*=c+z+}M$R~Gfc-oYr6C(o^hm=w| z3T~!&Xr0ZC6phOcLt=41;ZkOs5wTinhGiY_U3ER!UH+JHv(Msr0`-r4+QGLjdb?Sx zbg-hqzEWtCM0BUF{?5T7KRpj%@zi#T{qr-=1ZPs$-z)+ z&=irYQ0X#`e%gAwHAtrHP3ZBE{L!iLi3-;872Rxj)_tcwO@WK_#!$*iM_HxA$@j08 zFyLY?bP)*F3CUCVT{9gjx7R=sXm!PElC&^GIkS4n3 zGx|&^uW;Nuf%VUPuO8h!`?X11Lo2hI#am-JApCM`01y14I~N=2*`}ucVEiTWY9bi& zRZYFxWF^46bSXkc{LLBruedWZz8fgztxr8L%$HK(zl}Xn$uu+Z!e6w_O^7o&D4I&# zV%USJECVBeC;qEn8KICNgfCv^?ulkl&kOcad-Oc9H$m^Up0mr4XHD%VT}FC#yWULZ z;>l#Di|{xjUv_Sn&MZ0*aATy}(ZsmER~r=Kd5JAjqrPSuKd<)Tx(|^lPN7XbwgerSs2kek&3nPKo7ksvdFaz2)d>*(6)4=Gu*%uU5cZ?x=Te^O(#`43 zl|0IjHS2D*zQ9m&KUbPFS1ELjA1g}EQby-dWwODG1lcET?vT2@uUElC4UwUc)L-^V!cf-8tV9!x*&o$Gc z=upUYi#+@6lg&#i$eCzUJ0pYcobUaj6Xaf)SNSZq@8{@Sq1Q`*jo7( zkQlLcS&V{Rv2PawK@GDg2?VTRGCFUqM^Hwu_+v+Mzdx!l%aavB7+TTOtnAVM@<={U zj#DR0r1UfYfx1hwx|5;e25^R+gjItnmFMSb-g*lvD^7GWva)|;SeNHZmuIYuehPCf zX{3B7HCZPpIbS2@*Ejs(B;%IA3Rg~)=1uViwuo!5M>}6ps{MId6j84gU*UrJb&z!Y zpHF0#ki*8^gQH}k!2B0|mXPaeqChp%oQf@^Gj6Fn8SK2}Q+IGtFdf{47o@U@+0~P7 zButymBROn`kQui(lC*=M=no!j!qv zpHq5vzRVVAVQ9a8M}Mg3Cx1oA&04RMUb?MHf68+(QboQx$#LuNwbv?90}%SpD&hg((gScOBIz4u>2XR@f|1NUog;`K1I%Q@ z6 zqRr$*HZfKI1PAqTFNBm{e$sEG@vpV-#P9qdXe-eEipM5pEPRNSQ&-patHhhZGGXUR zOVQLU?Stwm;#eMa`!BN+kr;7g-PyBl6;Ofsh)W!?-gj!0%=?{L@&iU^RszO5ePACQi|k@8iCAJKAj;j1m?L4R29r>DC< zE^q&Hele}yIL*KKHvVrCJ(O@_Ilq~SEo>CFf3ePo=8kqY?XIH(rr1os-| zXuToDcP0+o2zqTb5U#jvMtMtqh{fm&3@u`f$2I|%&pWi0Izl@9IF@C)ngZxqlb9NF z>bnAcy?Ne=yDLd7Smz|J*$gJjmBzPI9`dZuo*U|eS_gBV&SyQl>QH$#H+35z;Oq}; zqpdps+v_$-KUTsp0zx$+A`|;Q@X145XZ;eY>hQ|Ij)0 zP%;mLz}2G7Ml-i@=XskiW|M0X(*108!dbHZq{ABHdWH$21aW&C(u!>W(IbK%k@0^YLHbY(xrSugAP5b;krq51VvtB+RO= zT=|mH=Wws~3PP~^)CZS}7aA=C;6R|RBXE9A936X3d3?>{y7E2a@@DiGy)s51yW7xI zMam)(X6PKS0ZAf?Jzb3jcqw?qTt|NJ^(gNX7&R29Ex!aj0d;R8S<2;atE2&y!_{FD z1EL+#twFH^$v^-6d<*h9KA12n@6s;GoFJgNfzz11KG7H`@lRoXQh${yBF^#G3tYEP zyl*}$a59*Lp-FrXK@(_3BjQ9`K0rIh1|-l%G2DW&0Hh-D^4E3-r|vR^<@?U&X?)zr z1*MCc`AngCmKaRf2>Ot=wvfe)dw*U?PeWsRi6_TnIus85z`}Eq=VpEcDFcpT#6*uN zSD^FL(l68YvZiFpEBm#R$9w3O@|KtPm4PpQJyOwL3GG2$ne1oLSvH)ukJ?g3<zh!ia5EeraAn(lA2bpG@vJU|E@FYmd86w` zm&$(|hY4$N+k{;TK1;w!j8zU-H#FCmd%c^Ii7TFPZhj9i!o_hr^8tlCV!Sn#E>cUGYu5;R|G(I8x?z?uDZ_~>9t}$ z(eMqa=tq-~{G~rlqx;wTOE>A4Q8bLne+Qrgm7mrRCaJ{>9{Q}zLRLjmtWs&O!Xos|r*1|ll?l+Ks`X^

\n')
+		authorxml.append('      jump vmgm menu entry title;\n')
+		authorxml.append('     
\n') + authorxml.append(' \n') + authorxml.append(' \n') + authorxml.append(' \n') + for audiotrack in title.properties.audiotracks: + active = audiotrack.active.getValue() + if active: + format = audiotrack.format.getValue() + language = audiotrack.language.getValue() + audio_tag = ' \n') + authorxml.append(' \n') + authorxml.append(' \n') + f = open(job.workspace+"/dvdauthor.xml", "w") + for x in authorxml: + f.write(x) + f.close() + +def getISOfilename(isopath, volName): + from Tools.Directories import fileExists + i = 0 + filename = isopath+'/'+volName+".iso" + while fileExists(filename): + i = i+1 + filename = isopath+'/'+volName + str(i).zfill(3) + ".iso" + return filename + +class DVDJob(Job): + def __init__(self, project, menupreview=False): + Job.__init__(self, "DVDBurn Job") + self.project = project + from time import strftime + from Tools.Directories import SCOPE_HDD, resolveFilename, createDir + new_workspace = resolveFilename(SCOPE_HDD) + "tmp/" + strftime("%Y%m%d%H%M%S") + createDir(new_workspace, True) + self.workspace = new_workspace + self.project.workspace = self.workspace + self.menupreview = menupreview + self.conduct() + + def conduct(self): + CheckDiskspaceTask(self) + if self.project.settings.authormode.getValue().startswith("menu") or self.menupreview: + Menus(self) + if self.project.settings.titlesetmode.getValue() == "multi": + CreateAuthoringXML_multiset(self) + else: + CreateAuthoringXML_singleset(self) + + DVDAuthorTask(self) + + nr_titles = len(self.project.titles) + + if self.menupreview: + PreviewTask(self, self.workspace + "/dvd/VIDEO_TS/") + else: + hasProjectX = os.path.exists('/usr/bin/projectx') + print "[DVDJob] hasProjectX=", hasProjectX + for self.i in range(nr_titles): + self.title = self.project.titles[self.i] + link_name = self.workspace + "/source_title_%d.ts" % (self.i+1) + title_filename = self.workspace + "/dvd_title_%d.mpg" % (self.i+1) + LinkTS(self, self.title.inputfile, link_name) + if not hasProjectX: + ReplexTask(self, outputfile=title_filename, inputfile=link_name).end = self.estimateddvdsize + else: + demux = DemuxTask(self, link_name) + self.mplextask = MplexTask(self, outputfile=title_filename, demux_task=demux) + self.mplextask.end = self.estimateddvdsize + RemoveESFiles(self, demux) + WaitForResidentTasks(self) + PreviewTask(self, self.workspace + "/dvd/VIDEO_TS/") + output = self.project.settings.output.getValue() + volName = self.project.settings.name.getValue() + if output == "dvd": + self.name = _("Burn DVD") + tool = "growisofs" + burnargs = [ "-Z", "/dev/" + harddiskmanager.getCD(), "-dvd-compat" ] + if self.project.size/(1024*1024) > self.project.MAX_SL: + burnargs += [ "-use-the-force-luke=4gms", "-speed=1", "-R" ] + elif output == "iso": + self.name = _("Create DVD-ISO") + tool = "genisoimage" + isopathfile = getISOfilename(self.project.settings.isopath.getValue(), volName) + burnargs = [ "-o", isopathfile ] + burnargs += [ "-dvd-video", "-publisher", "Dreambox", "-V", volName, self.workspace + "/dvd" ] + BurnTask(self, burnargs, tool) + RemoveDVDFolder(self) + +class DVDdataJob(Job): + def __init__(self, project): + Job.__init__(self, "Data DVD Burn") + self.project = project + from time import strftime + from Tools.Directories import SCOPE_HDD, resolveFilename, createDir + new_workspace = resolveFilename(SCOPE_HDD) + "tmp/" + strftime("%Y%m%d%H%M%S") + "/dvd/" + createDir(new_workspace, True) + self.workspace = new_workspace + self.project.workspace = self.workspace + self.conduct() + + def conduct(self): + if self.project.settings.output.getValue() == "iso": + CheckDiskspaceTask(self) + nr_titles = len(self.project.titles) + for self.i in range(nr_titles): + title = self.project.titles[self.i] + filename = title.inputfile.rstrip("/").rsplit("/",1)[1] + link_name = self.workspace + filename + LinkTS(self, title.inputfile, link_name) + CopyMeta(self, title.inputfile) + + output = self.project.settings.output.getValue() + volName = self.project.settings.name.getValue() + tool = "growisofs" + if output == "dvd": + self.name = _("Burn DVD") + burnargs = [ "-Z", "/dev/" + harddiskmanager.getCD(), "-dvd-compat" ] + if self.project.size/(1024*1024) > self.project.MAX_SL: + burnargs += [ "-use-the-force-luke=4gms", "-speed=1", "-R" ] + elif output == "iso": + tool = "genisoimage" + self.name = _("Create DVD-ISO") + isopathfile = getISOfilename(self.project.settings.isopath.getValue(), volName) + burnargs = [ "-o", isopathfile ] + if self.project.settings.dataformat.getValue() == "iso9660_1": + burnargs += ["-iso-level", "1" ] + elif self.project.settings.dataformat.getValue() == "iso9660_4": + burnargs += ["-iso-level", "4", "-allow-limited-size" ] + elif self.project.settings.dataformat.getValue() == "udf": + burnargs += ["-udf", "-allow-limited-size" ] + burnargs += [ "-publisher", "Dreambox", "-V", volName, "-follow-links", self.workspace ] + BurnTask(self, burnargs, tool) + RemoveDVDFolder(self) + +class DVDisoJob(Job): + def __init__(self, project, imagepath): + Job.__init__(self, _("Burn DVD")) + self.project = project + self.menupreview = False + from Tools.Directories import getSize + if imagepath.endswith(".iso"): + PreviewTask(self, imagepath) + burnargs = [ "-Z", "/dev/" + harddiskmanager.getCD() + '='+imagepath, "-dvd-compat" ] + if getSize(imagepath)/(1024*1024) > self.project.MAX_SL: + burnargs += [ "-use-the-force-luke=4gms", "-speed=1", "-R" ] + else: + PreviewTask(self, imagepath + "/VIDEO_TS/") + volName = self.project.settings.name.getValue() + burnargs = [ "-Z", "/dev/" + harddiskmanager.getCD(), "-dvd-compat" ] + if getSize(imagepath)/(1024*1024) > self.project.MAX_SL: + burnargs += [ "-use-the-force-luke=4gms", "-speed=1", "-R" ] + burnargs += [ "-dvd-video", "-publisher", "Dreambox", "-V", volName, imagepath ] + tool = "growisofs" + BurnTask(self, burnargs, tool) diff --git a/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py b/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py new file mode 100644 index 0000000..110e471 --- /dev/null +++ b/lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py @@ -0,0 +1,251 @@ +from Screens.Screen import Screen +from Screens.ChoiceBox import ChoiceBox +from Screens.InputBox import InputBox +from Screens.MessageBox import MessageBox +from Screens.HelpMenu import HelpableScreen +from Components.ActionMap import HelpableActionMap, ActionMap +from Components.Sources.List import List +from Components.Sources.StaticText import StaticText +from Components.Sources.Progress import Progress +from Components.FileList import FileList +from Tools.Directories import fileExists, resolveFilename, SCOPE_PLUGINS, SCOPE_FONTS, SCOPE_HDD +from Components.config import config, getConfigListEntry +from Components.ConfigList import ConfigListScreen + +class FileBrowser(Screen, HelpableScreen): + + def __init__(self, session, scope, configRef): + Screen.__init__(self, session) + # for the skin: first try FileBrowser_DVDBurn, then FileBrowser, this allows individual skinning + self.skinName = ["FileBrowser_DVDBurn", "FileBrowser" ] + + HelpableScreen.__init__(self) + self.scope = scope + pattern = "" + self.configRef = configRef + currDir = "/" + if self.scope == "project": + currDir = self.getDir() + pattern = "(?i)^.*\.(ddvdp\.xml)" + elif self.scope == "menutemplate": + currDir = self.getDir() + pattern = "(?i)^.*\.(ddvdm\.xml)" + if self.scope == "menubg": + currDir = self.getDir(configRef.getValue()) + pattern = "(?i)^.*\.(jpeg|jpg|jpe|png|bmp)" + elif self.scope == "menuaudio": + currDir = self.getDir(configRef.getValue()) + pattern = "(?i)^.*\.(mp2|m2a|ac3)" + elif self.scope == "vmgm": + currDir = self.getDir(configRef.getValue()) + pattern = "(?i)^.*\.(mpg|mpeg)" + elif self.scope == "font_face": + currDir = self.getDir(configRef.getValue(), resolveFilename(SCOPE_FONTS)) + pattern = "(?i)^.*\.(ttf)" + elif self.scope == "isopath": + currDir = configRef.getValue() + elif self.scope == "image": + currDir = resolveFilename(SCOPE_HDD) + pattern = "(?i)^.*\.(iso)" + + self.filelist = FileList(currDir, matchingPattern=pattern) + self["filelist"] = self.filelist + + self["FilelistActions"] = ActionMap(["SetupActions"], + { + "save": self.ok, + "ok": self.ok, + "cancel": self.exit + }) + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("OK")) + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + self.setTitle(_("DVD file browser")) + + def getDir(self, currentVal=None, defaultDir=None): + if currentVal: + return (currentVal.rstrip("/").rsplit("/",1))[0] + return defaultDir or (resolveFilename(SCOPE_PLUGINS)+"Extensions/DVDBurn/") + + def ok(self): + if self.filelist.canDescent(): + self.filelist.descent() + if self.scope == "image": + path = self["filelist"].getCurrentDirectory() or "" + if fileExists(path+"VIDEO_TS"): + self.close(path,self.scope,self.configRef) + else: + ret = self["filelist"].getCurrentDirectory() + '/' + self["filelist"].getFilename() + self.close(ret,self.scope,self.configRef) + + def exit(self): + if self.scope == "isopath": + self.close(self["filelist"].getCurrentDirectory(),self.scope,self.configRef) + self.close(None,False,None) + +class ProjectSettings(Screen,ConfigListScreen): + skin = """ + + + + + + + + + + + + + """ + + def __init__(self, session, project = None): + Screen.__init__(self, session) + self.project = project + + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("OK")) + self["key_yellow"] = StaticText(_("Load")) + if config.usage.setup_level.index >= 2: # expert+ + self["key_blue"] = StaticText(_("Save")) + else: + self["key_blue"] = StaticText() + + if config.usage.setup_level.index >= 2: # expert+ + infotext = _("Available format variables") + ":\n$i=" + _("Track") + ", $t=" + _("Title") + ", $d=" + _("Description") + ", $l=" + _("length") + ", $c=" + _("chapters") + ",\n" + _("Record") + " $T=" + _("Begin time") + ", $Y=" + _("Year") + ", $M=" + _("month") + ", $D=" + _("day") + ",\n$A=" + _("audio tracks") + ", $C=" + _("Channel") + ", $f=" + _("filename") + else: + infotext = "" + self["info"] = StaticText(infotext) + + self.keydict = {} + self.settings = project.settings + ConfigListScreen.__init__(self, []) + self.initConfigList() + + self["setupActions"] = ActionMap(["SetupActions", "ColorActions"], + { + "green": self.exit, + "red": self.cancel, + "blue": self.saveProject, + "yellow": self.loadProject, + "cancel": self.cancel, + "ok": self.ok, + }, -2) + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + self.setTitle(_("Collection settings")) + + def changedConfigList(self): + key = self.keydict[self["config"].getCurrent()[1]] + if key == "authormode" or key == "output": + self.initConfigList() + + def initConfigList(self): + authormode = self.settings.authormode.getValue() + output = self.settings.output.getValue() + self.list = [] + self.list.append(getConfigListEntry(_("Collection name"), self.settings.name)) + self.list.append(getConfigListEntry(_("Authoring mode"), self.settings.authormode)) + self.list.append(getConfigListEntry(_("Output"), self.settings.output)) + if output == "iso": + self.list.append(getConfigListEntry(_("ISO path"), self.settings.isopath)) + if authormode.startswith("menu"): + self.list.append(getConfigListEntry(_("Menu")+' '+_("template file"), self.settings.menutemplate)) + if config.usage.setup_level.index >= 2: # expert+ + self.list.append(getConfigListEntry(_("Menu")+' '+_("Title"), self.project.menutemplate.settings.titleformat)) + self.list.append(getConfigListEntry(_("Menu")+' '+_("Subtitles"), self.project.menutemplate.settings.subtitleformat)) + self.list.append(getConfigListEntry(_("Menu")+' '+_("background image"), self.project.menutemplate.settings.menubg)) + self.list.append(getConfigListEntry(_("Menu")+' '+_("Language selection"), self.project.menutemplate.settings.menulang)) + #self.list.append(getConfigListEntry(_("Menu")+' '+_("headline")+' '+_("color"), self.settings.color_headline)) + #self.list.append(getConfigListEntry(_("Menu")+' '+_("text")+' '+_("color"), self.settings.color_button)) + #self.list.append(getConfigListEntry(_("Menu")+' '+_("highlighted button")+' '+_("color"), self.settings.color_highlight)) + #self.list.append(getConfigListEntry(_("Menu")+' '+_("font face"), self.settings.font_face)) + #self.list.append(getConfigListEntry(_("Font size")+' ('+_("headline")+', '+_("Title")+', '+_("Subtitles")+')', self.settings.font_size)) + #self.list.append(getConfigListEntry(_("Menu")+' '+_("spaces (top, between rows, left)"), self.settings.space)) + #self.list.append(getConfigListEntry(_("Menu")+' '+_("Audio"), self.settings.menuaudio)) + if config.usage.setup_level.index >= 2: # expert+ + if authormode != "data_ts": + self.list.append(getConfigListEntry(_("Titleset mode"), self.settings.titlesetmode)) + if self.settings.titlesetmode.getValue() == "single" or authormode == "just_linked": + self.list.append(getConfigListEntry(_("VMGM (intro trailer)"), self.settings.vmgm)) + else: + self.list.append(getConfigListEntry(_("DVD data format"), self.settings.dataformat)) + + self["config"].setList(self.list) + self.keydict = {} + for key, val in self.settings.dict().iteritems(): + self.keydict[val] = key + for key, val in self.project.menutemplate.settings.dict().iteritems(): + self.keydict[val] = key + + def keyLeft(self): + ConfigListScreen.keyLeft(self) + key = self.keydict[self["config"].getCurrent()[1]] + if key == "authormode" or key == "output" or key=="titlesetmode": + self.initConfigList() + + def keyRight(self): + ConfigListScreen.keyRight(self) + key = self.keydict[self["config"].getCurrent()[1]] + if key == "authormode" or key == "output" or key=="titlesetmode": + self.initConfigList() + + def exit(self): + self.applySettings() + self.close(True) + + def applySettings(self): + for x in self["config"].list: + x[1].save() + + def ok(self): + key = self.keydict[self["config"].getCurrent()[1]] + from DVDProject import ConfigFilename + if type(self["config"].getCurrent()[1]) == ConfigFilename: + self.session.openWithCallback(self.FileBrowserClosed, FileBrowser, key, self["config"].getCurrent()[1]) + + def cancel(self): + self.close(False) + + def loadProject(self): + self.session.openWithCallback(self.FileBrowserClosed, FileBrowser, "project", self.settings) + + def saveProject(self): + if config.usage.setup_level.index >= 2: # expert+ + self.applySettings() + ret = self.project.saveProject(resolveFilename(SCOPE_PLUGINS)+"Extensions/DVDBurn/") + if ret.startswith: + text = _("Save")+' '+_('OK')+':\n'+ret + self.session.open(MessageBox,text,type = MessageBox.TYPE_INFO) + else: + text = _("Save")+' '+_('Error') + self.session.open(MessageBox,text,type = MessageBox.TYPE_ERROR) + + def FileBrowserClosed(self, path, scope, configRef): + if scope == "menutemplate": + if self.project.menutemplate.loadTemplate(path): + print "[ProjectSettings] menu template loaded" + configRef.setValue(path) + self.initConfigList() + else: + self.session.open(MessageBox,self.project.error,MessageBox.TYPE_ERROR) + elif scope == "project": + self.path = path + print "len(self.titles)", len(self.project.titles) + if len(self.project.titles): + self.session.openWithCallback(self.askLoadCB, MessageBox,text = _("Your current collection will get lost!") + "\n" + _("Do you want to restore your settings?"), type = MessageBox.TYPE_YESNO) + else: + self.askLoadCB(True) + elif scope: + configRef.setValue(path) + self.initConfigList() + + def askLoadCB(self, answer): + if answer is not None and answer: + if self.project.loadProject(self.path): + self.initConfigList() + else: + self.session.open(MessageBox,self.project.error,MessageBox.TYPE_ERROR) \ No newline at end of file diff --git a/lib/python/Plugins/Extensions/DVDBurn/Text_menu_boat.ddvdm.xml b/lib/python/Plugins/Extensions/DVDBurn/Text_menu_boat.ddvdm.xml new file mode 100644 index 0000000..bf6356a --- /dev/null +++ b/lib/python/Plugins/Extensions/DVDBurn/Text_menu_boat.ddvdm.xml @@ -0,0 +1,35 @@ + + + + diff --git a/lib/python/Plugins/Extensions/DVDBurn/Thumbs_menu_clouds.ddvdm.xml b/lib/python/Plugins/Extensions/DVDBurn/Thumbs_menu_clouds.ddvdm.xml new file mode 100644 index 0000000..074f203 --- /dev/null +++ b/lib/python/Plugins/Extensions/DVDBurn/Thumbs_menu_clouds.ddvdm.xml @@ -0,0 +1,35 @@ + + + + diff --git a/lib/python/Plugins/Extensions/DVDBurn/TitleCutter.py b/lib/python/Plugins/Extensions/DVDBurn/TitleCutter.py new file mode 100644 index 0000000..abaa9c1 --- /dev/null +++ b/lib/python/Plugins/Extensions/DVDBurn/TitleCutter.py @@ -0,0 +1,88 @@ +from Plugins.Extensions.CutListEditor.ui import CutListEditor +from Components.ServiceEventTracker import ServiceEventTracker +from enigma import iPlayableService, iServiceInformation +from Tools.Directories import fileExists + +class TitleCutter(CutListEditor): + def __init__(self, session, t): + CutListEditor.__init__(self, session, t.source) + self.skin = CutListEditor.skin + self.session = session + self.t = t + self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + { + iPlayableService.evUpdatedInfo: self.getPMTInfo, + iPlayableService.evCuesheetChanged: self.refillList + }) + self.onExecBegin.remove(self.showTutorial) + + def getPMTInfo(self): + service = self.session.nav.getCurrentService() + audio = service and service.audioTracks() + n = audio and audio.getNumberOfTracks() or 0 + if n > 0: + from DVDTitle import ConfigFixedText + from TitleProperties import languageChoices + from Components.config import config, ConfigSubsection, ConfigSubList, ConfigSelection, ConfigYesNo + self.t.properties.audiotracks = ConfigSubList() + for x in range(n): + i = audio.getTrackInfo(x) + DVB_lang = i.getLanguage() + description = i.getDescription() + pid = str(i.getPID()) + if description == "MPEG": + description = "MP2" + print "[audiotrack] pid:", pid, "description:", description, "language:", DVB_lang, "count:", x, "active:", (x < 8) + self.t.properties.audiotracks.append(ConfigSubsection()) + self.t.properties.audiotracks[-1].active = ConfigYesNo(default = (x < 8)) + self.t.properties.audiotracks[-1].format = ConfigFixedText(description) + self.t.properties.audiotracks[-1].language = ConfigSelection(choices = languageChoices.choices, default=languageChoices.getLanguage(DVB_lang)) + self.t.properties.audiotracks[-1].pid = ConfigFixedText(pid) + self.t.properties.audiotracks[-1].DVB_lang = ConfigFixedText(DVB_lang) + sAspect = service.info().getInfo(iServiceInformation.sAspect) + if sAspect in ( 1, 2, 5, 6, 9, 0xA, 0xD, 0xE ): + aspect = "4:3" + else: + aspect = "16:9" + self.t.properties.aspect.setValue(aspect) + self.t.VideoType = service.info().getInfo(iServiceInformation.sVideoType) + + def checkAndGrabThumb(self): + if not fileExists(self.t.inputfile.rsplit('.',1)[0] + ".png"): + CutListEditor.grabFrame(self) + + def exit(self): + if self.t.VideoType == -1: + self.getPMTInfo() + self.checkAndGrabThumb() + self.session.nav.stopService() + self.close(self.cut_list[:]) + +class CutlistReader(TitleCutter): + skin = """ + + + + + + + {"template": [ + MultiContentEntryText(text = 1), + MultiContentEntryText(text = 2) + ], + "fonts": [gFont("Regular", 18)], + "itemHeight": 20 + } + + + + """ + + def __init__(self, session, t): + TitleCutter.__init__(self, session, t) + self.skin = CutlistReader.skin + + def getPMTInfo(self): + TitleCutter.getPMTInfo(self) + TitleCutter.checkAndGrabThumb(self) + self.close(self.cut_list[:]) diff --git a/lib/python/Plugins/Extensions/DVDBurn/TitleList.py b/lib/python/Plugins/Extensions/DVDBurn/TitleList.py new file mode 100644 index 0000000..608f3a2 --- /dev/null +++ b/lib/python/Plugins/Extensions/DVDBurn/TitleList.py @@ -0,0 +1,384 @@ +import DVDProject, TitleList, TitleCutter, TitleProperties, ProjectSettings, DVDToolbox, Process +from Screens.Screen import Screen +from Screens.ChoiceBox import ChoiceBox +from Screens.InputBox import InputBox +from Screens.MessageBox import MessageBox +from Screens.HelpMenu import HelpableScreen +from Screens.TaskView import JobView +from Components.Task import job_manager +from Components.ActionMap import HelpableActionMap, ActionMap +from Components.Sources.List import List +from Components.Sources.StaticText import StaticText +from Components.Sources.Progress import Progress +from Components.MultiContent import MultiContentEntryText +from Components.Label import MultiColorLabel +from enigma import gFont, RT_HALIGN_LEFT, RT_HALIGN_RIGHT +from Tools.Directories import resolveFilename, SCOPE_PLUGINS + +class TitleList(Screen, HelpableScreen): + skin = """ + + + + + + + + + + + + + + {"template": [ + MultiContentEntryText(pos = (0, 0), size = (360, 20), font = 0, flags = RT_HALIGN_LEFT, text = 1), # index 1 Title, + MultiContentEntryText(pos = (0, 20), size = (360, 17), font = 1, flags = RT_HALIGN_LEFT, text = 2), # index 2 description, + MultiContentEntryText(pos = (366, 6), size = (152, 20), font = 1, flags = RT_HALIGN_RIGHT, text = 3), # index 3 channel, + MultiContentEntryText(pos = (366, 20), size = (102, 17), font = 1, flags = RT_HALIGN_RIGHT, text = 4), # index 4 begin time, + MultiContentEntryText(pos = (470, 20), size = (48, 20), font = 1, flags = RT_HALIGN_RIGHT, text = 5), # index 5 duration, + ], + "fonts": [gFont("Regular", 20), gFont("Regular", 14)], + "itemHeight": 37 + } + + + + + + + + + + + + """ + + def __init__(self, session, project = None): + Screen.__init__(self, session) + HelpableScreen.__init__(self) + + self["titleactions"] = HelpableActionMap(self, "DVDTitleList", + { + "addTitle": (self.addTitle, _("Add a new title"), _("Add title")), + "titleProperties": (self.titleProperties, _("Properties of current title"), _("Title properties")), + "removeCurrentTitle": (self.removeCurrentTitle, _("Remove currently selected title"), _("Remove title")), + "settings": (self.settings, _("Collection settings"), _("Settings")), + "burnProject": (self.askBurnProject, _("Burn DVD"), _("Burn DVD")), + }) + + self["MovieSelectionActions"] = HelpableActionMap(self, "MovieSelectionActions", + { + "contextMenu": (self.showMenu, _("menu")), + }) + + self["actions"] = ActionMap(["OkCancelActions"], + { + "cancel": self.leave + }) + + self["key_red"] = StaticText() + self["key_green"] = StaticText(_("Add title")) + self["key_yellow"] = StaticText() + self["key_blue"] = StaticText(_("Settings")) + + self["title_label"] = StaticText() + self["error_label"] = StaticText() + self["space_label_single"] = StaticText() + self["space_label_dual"] = StaticText() + self["hint"] = StaticText(_("Advanced options")) + self["medium_label"] = MultiColorLabel() + self["space_bar_single"] = Progress() + self["space_bar_dual"] = Progress() + + self["titles"] = List([]) + self.previous_size = 0 + if project is not None: + self.project = project + else: + self.newProject() + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + self.setTitle(_("DVD titlelist")) + + def checkBackgroundJobs(self): + for job in job_manager.getPendingJobs(): + print "type(job):", type(job) + print "Process.DVDJob:", Process.DVDJob + if type(job) == Process.DVDJob: + self.backgroundJob = job + return + self.backgroundJob = None + + def showMenu(self): + menu = [] + self.checkBackgroundJobs() + if self.backgroundJob: + j = self.backgroundJob + menu.append(("%s: %s (%d%%)" % (j.getStatustext(), j.name, int(100*j.progress/float(j.end))), self.showBackgroundJob)) + menu.append((_("DVD media toolbox"), self.toolbox)) + if self.project.settings.output.getValue() == "dvd": + if len(self["titles"].list): + menu.append((_("Burn DVD"), self.burnProject)) + elif self.project.settings.output.getValue() == "iso": + menu.append((_("Create DVD-ISO"), self.burnProject)) + menu.append((_("Burn existing image to DVD"), self.selectImage)) + if len(self["titles"].list): + menu.append((_("Preview menu"), self.previewMenu)) + menu.append((_("Edit chapters of current title"), self.editTitle)) + menu.append((_("Reset and renumerate title names"), self.resetTitles)) + menu.append((_("Exit"), self.leave)) + self.session.openWithCallback(self.menuCallback, ChoiceBox, title="", list=menu) + + def menuCallback(self, choice): + if choice: + choice[1]() + + def showBackgroundJob(self): + job_manager.in_background = False + self.session.openWithCallback(self.JobViewCB, JobView, self.backgroundJob) + self.backgroundJob = None + + def titleProperties(self): + if self.getCurrentTitle(): + self.session.openWithCallback(self.updateTitleList, TitleProperties.TitleProperties, self, self.project, self["titles"].getIndex()) + + def selectImage(self): + self.session.openWithCallback(self.burnISO, ProjectSettings.FileBrowser, "image", self.project.settings) + + def newProject(self): + self.project = DVDProject.DVDProject() + if self.loadTemplate(): + self.project.session = self.session + self.settingsCB() + + def addTitle(self): + from Screens.MovieSelection import MovieSelection + from Components.ActionMap import HelpableActionMap + class DVDMovieSelection(MovieSelection): + skin = """ + + + + + + + + + + + ShortDescription + + + Duration + AsLength + + + RecordServiceName + + + ExtendedDescription + + + """ + def __init__(self, session): + MovieSelection.__init__(self, session) + self["key_red"] = StaticText(_("Close")) + self["key_green"] = StaticText(_("Add")) + self["key_yellow"] = StaticText(_("Edit title")) + self["ColorActions"] = HelpableActionMap(self, "ColorActions", + { + "red": (self.close, _("Close title selection")), + "green": (self.insertWithoutEdit, ("insert without cutlist editor")), + "yellow": (self.movieSelected, _("Add a new title")) + }) + def updateTags(self): + pass + def doContext(self): + print "context menu forbidden inside DVDBurn to prevent calling multiple instances" + def updateButtons(self): + # the original will hide red/green, and crash... + pass + def insertWithoutEdit(self): + current = self.getCurrent() + if current is not None: + current.edit = False + self.close(current) + def movieSelected(self): + current = self.getCurrent() + if current is not None: + current.edit = True + self.close(current) + self.session.openWithCallback(self.selectedSource, DVDMovieSelection) + + def selectedSource(self, source = None): + if source is None: + return None + if not source.getPath().endswith(".ts"): + self.session.open(MessageBox,text = _("You can only burn receiver recordings!"), type = MessageBox.TYPE_ERROR) + return None + t = self.project.addService(source) + try: + editor = source.edit + except AttributeError: + editor = True + self.editTitle(t, editor) + + def removeCurrentTitle(self): + title = self.getCurrentTitle() + self.removeTitle(title) + + def removeTitle(self, title): + if title is not None: + self.project.titles.remove(title) + self.updateTitleList() + + def toolbox(self): + self.session.open(DVDToolbox.DVDToolbox) + + def settings(self): + self.session.openWithCallback(self.settingsCB, ProjectSettings.ProjectSettings, self.project) + + def settingsCB(self, update=True): + if not update: + return + self.updateTitleList() + + def loadTemplate(self): + filename = resolveFilename(SCOPE_PLUGINS)+"Extensions/DVDBurn/DreamboxDVD.ddvdp.xml" + if self.project.load(filename): + self["error_label"].setText("") + return True + else: + self["error_label"].setText(self.project.error) + return False + + def askBurnProject(self): + if len(self["titles"].list): + self.session.openWithCallback(self.burnProject,MessageBox,text = _("Do you want to burn this collection to DVD medium?"), type = MessageBox.TYPE_YESNO) + + def burnProject(self, answer=True): + if not answer: + return + if self.project.settings.authormode.getValue() == "data_ts": + job = Process.DVDdataJob(self.project) + job_manager.AddJob(job) + job_manager.in_background = False + self.session.openWithCallback(self.JobViewCB, JobView, job) + else: + job = Process.DVDJob(self.project) + job_manager.AddJob(job) + job_manager.in_background = False + self.session.openWithCallback(self.JobViewCB, JobView, job) + + def burnISO(self, path, scope, configRef): + if path: + job = Process.DVDisoJob(self.project, path) + job_manager.AddJob(job) + job_manager.in_background = False + self.session.openWithCallback(self.JobViewCB, JobView, job) + + def JobViewCB(self, in_background): + job_manager.in_background = in_background + + def previewMenu(self): + job = Process.DVDJob(self.project, menupreview=True) + job_manager.in_background = False + job_manager.AddJob(job) + + def updateTitleList(self): + list = [ ] + for title in self.project.titles: + list.append((title, title.properties.menutitle.getValue(), title.properties.menusubtitle.getValue(), title.DVBchannel, title.formatDVDmenuText("$D.$M.$Y, $T", 0), title.formatDVDmenuText("$l", 0))) + self["titles"].list = list + self.updateSize() + if len(list): + self["key_red"].text = _("Remove title") + self["key_yellow"].text = _("Title properties") + self["title_label"].text = _("Table of contents for collection") + " \"" + self.project.settings.name.getValue() + "\":" + else: + self["key_red"].text = "" + self["key_yellow"].text = "" + self["title_label"].text = _("Please add titles to the compilation.") + + def updateSize(self): + size = self.project.size/(1024*1024) + MAX_DL = self.project.MAX_DL-100 + MAX_SL = self.project.MAX_SL-100 + print "updateSize:", size, "MAX_DL:", MAX_DL, "MAX_SL:", MAX_SL + if size > MAX_DL: + percent = 100 * size / float(MAX_DL) + self["space_label_dual"].text = "%d MB (%.2f%%)" % (size, percent) + self["space_bar_dual"].value = int(percent) + self["space_bar_single"].value = 100 + self["space_label_single"].text = "" + self["medium_label"].setText(_("Exceeds dual layer medium!")) + self["medium_label"].setForegroundColorNum(2) + if self.previous_size < MAX_DL: + self.session.open(MessageBox,text = _("Exceeds dual layer medium!"), type = MessageBox.TYPE_ERROR) + elif size > MAX_SL: + percent = 100 * size / float(MAX_DL) + self["space_label_dual"].text = "%d MB (%.2f%%)" % (size, percent) + self["space_bar_dual"].value = int(percent) + self["space_bar_single"].value = 100 + self["space_label_single"].text = "" + self["medium_label"].setText(_("Required medium type:") + " " + _("DUAL LAYER DVD") + ", %d MB " % (MAX_DL - size) + _("free")) + self["medium_label"].setForegroundColorNum(1) + if self.previous_size < MAX_SL: + self.session.open(MessageBox, text = _("Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!"), timeout = 10, type = MessageBox.TYPE_INFO) + elif size < MAX_SL: + percent = 100 * size / float(MAX_SL) + self["space_label_single"].text = "%d MB (%.2f%%)" % (size, percent) + self["space_bar_single"].value = int(percent) + self["space_bar_dual"].value = 0 + self["space_label_dual"].text = "" + self["medium_label"].setText(_("Required medium type:") + " " + _("SINGLE LAYER DVD") + ", %d MB " % (MAX_SL - size) + _("free")) + self["medium_label"].setForegroundColorNum(0) + self.previous_size = size + + def getCurrentTitle(self): + t = self["titles"].getCurrent() + return t and t[0] + + def editTitle(self, title = None, editor = True): + t = title or self.getCurrentTitle() + if t is not None: + self.current_edit_title = t + if editor: + self.session.openWithCallback(self.titleEditDone, TitleCutter.TitleCutter, t) + else: + self.session.openWithCallback(self.titleEditDone, TitleCutter.CutlistReader, t) + + def titleEditDone(self, cutlist): + t = self.current_edit_title + t.titleEditDone(cutlist) + if t.VideoType != 0: + self.session.openWithCallback(self.DVDformatCB,MessageBox,text = _("The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?"), type = MessageBox.TYPE_YESNO) + else: + self.updateTitleList() + + def resetTitles(self): + count = 0 + for title in self.project.titles: + count += 1 + title.initDVDmenuText(count) + self.updateTitleList() + + def DVDformatCB(self, answer): + t = self.current_edit_title + if answer == True: + self.project.settings.authormode.setValue("data_ts") + self.updateTitleList() + else: + self.removeTitle(t) + + def leave(self, close = False): + if not len(self["titles"].list) or close: + self.close() + else: + self.session.openWithCallback(self.exitCB, MessageBox,text = _("Your current collection will get lost!") + "\n" + _("Do you really want to exit?"), type = MessageBox.TYPE_YESNO) + + def exitCB(self, answer): + print "exitCB", answer + if answer is not None and answer: + self.close() diff --git a/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py b/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py new file mode 100644 index 0000000..20bf6d5 --- /dev/null +++ b/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py @@ -0,0 +1,193 @@ +from Screens.Screen import Screen +from Screens.ChoiceBox import ChoiceBox +from Screens.InputBox import InputBox +from Screens.MessageBox import MessageBox +from Screens.HelpMenu import HelpableScreen +from Components.ActionMap import HelpableActionMap, ActionMap +from Components.Sources.List import List +from Components.Sources.StaticText import StaticText +from Components.Sources.Progress import Progress +from Components.FileList import FileList +from Components.Pixmap import Pixmap +from enigma import ePicLoad +from Tools.Directories import fileExists, resolveFilename, SCOPE_PLUGINS, SCOPE_FONTS, SCOPE_HDD +from Components.config import config, getConfigListEntry, ConfigInteger, ConfigSubsection, ConfigSelection +from Components.ConfigList import ConfigListScreen +from Components.AVSwitch import AVSwitch +import DVDTitle + +class TitleProperties(Screen,ConfigListScreen): + skin = """ + + + + + + + + + + + + + """ + + def __init__(self, session, parent, project, title_idx): + Screen.__init__(self, session) + self.parent = parent + self.project = project + self.title_idx = title_idx + + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("OK")) + self["key_yellow"] = StaticText(_("Edit title")) + self["key_blue"] = StaticText() + self["serviceinfo"] = StaticText() + + self["thumbnail"] = Pixmap() + self.picload = ePicLoad() + self.picload.PictureData.get().append(self.paintThumbPixmapCB) + + self.properties = project.titles[title_idx].properties + ConfigListScreen.__init__(self, []) + self.properties.crop = DVDTitle.ConfigFixedText("crop") + self.properties.autochapter.addNotifier(self.initConfigList) + self.properties.aspect.addNotifier(self.initConfigList) + for audiotrack in self.properties.audiotracks: + audiotrack.active.addNotifier(self.initConfigList) + + self["setupActions"] = ActionMap(["SetupActions", "ColorActions"], + { + "green": self.exit, + "red": self.cancel, + "yellow": self.editTitle, + "cancel": self.cancel, + "ok": self.ok, + }, -2) + + self.onShown.append(self.update) + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + self.setTitle(_("Properties of current title")) + + def initConfigList(self, element=None): + try: + self.properties.position = ConfigInteger(default = self.title_idx+1, limits = (1, len(self.project.titles))) + title = self.project.titles[self.title_idx] + self.list = [] + self.list.append(getConfigListEntry("DVD " + _("Track"), self.properties.position)) + self.list.append(getConfigListEntry("DVD " + _("Title"), self.properties.menutitle)) + self.list.append(getConfigListEntry("DVD " + _("Description"), self.properties.menusubtitle)) + if config.usage.setup_level.index >= 2: # expert+ + for audiotrack in self.properties.audiotracks: + DVB_aud = audiotrack.DVB_lang.getValue() or audiotrack.pid.getValue() + self.list.append(getConfigListEntry(_("Burn audio track (%s)") % DVB_aud, audiotrack.active)) + if audiotrack.active.getValue(): + self.list.append(getConfigListEntry(_("Audio track (%s) format") % DVB_aud, audiotrack.format)) + self.list.append(getConfigListEntry(_("Audio track (%s) language") % DVB_aud, audiotrack.language)) + + self.list.append(getConfigListEntry("DVD " + _("Aspect ratio"), self.properties.aspect)) + if self.properties.aspect.getValue() == "16:9": + self.list.append(getConfigListEntry("DVD " + "widescreen", self.properties.widescreen)) + else: + self.list.append(getConfigListEntry("DVD " + "widescreen", self.properties.crop)) + if len(title.chaptermarks) == 0: + self.list.append(getConfigListEntry(_("Auto chapter split every ? minutes (0=never)"), self.properties.autochapter)) + infotext = "DVB " + _("Title") + ': ' + title.DVBname + "\n" + _("Description") + ': ' + title.DVBdescr + "\n" + _("Channel") + ': ' + title.DVBchannel + '\n' + _("Start time") + title.formatDVDmenuText(": $D.$M.$Y, $T\n", self.title_idx+1) + chaptermarks = title.getChapterMarks(template="$h:$m:$s") + chapters_count = len(chaptermarks) + if chapters_count >= 1: + infotext += str(chapters_count+1) + ' ' + _("chapters") + ': ' + infotext += ' / '.join(chaptermarks) + self["serviceinfo"].setText(infotext) + self["config"].setList(self.list) + except AttributeError: + pass + + def editTitle(self): + self.parent.editTitle() + + def update(self): + print "[onShown]" + self.initConfigList() + self.loadThumb() + + def loadThumb(self): + thumbfile = self.project.titles[self.title_idx].inputfile.rsplit('.',1)[0] + ".png" + sc = AVSwitch().getFramebufferScale() + self.picload.setPara((self["thumbnail"].instance.size().width(), self["thumbnail"].instance.size().height(), sc[0], sc[1], False, 1, "#00000000")) + self.picload.startDecode(thumbfile) + + def paintThumbPixmapCB(self, picInfo=None): + ptr = self.picload.getData() + if ptr != None: + self["thumbnail"].instance.setPixmap(ptr.__deref__()) + + def changedConfigList(self): + self.initConfigList() + + def exit(self): + self.applySettings() + self.close() + + def applySettings(self): + for x in self["config"].list: + x[1].save() + current_pos = self.title_idx+1 + new_pos = self.properties.position.getValue() + if new_pos != current_pos: + print "title got repositioned from ", current_pos, "to", new_pos + swaptitle = self.project.titles.pop(current_pos-1) + self.project.titles.insert(new_pos-1, swaptitle) + + def ok(self): + #key = self.keydict[self["config"].getCurrent()[1]] + #if key in self.project.filekeys: + #self.session.openWithCallback(self.FileBrowserClosed, FileBrowser, key, self.settings) + pass + + def cancel(self): + self.close() + +from Tools.ISO639 import LanguageCodes +class LanguageChoices(): + def __init__(self): + from Components.Language import language as syslanguage + syslang = syslanguage.getLanguage()[:2] + self.langdict = { } + self.choices = [] + for key, val in LanguageCodes.iteritems(): + if len(key) == 2: + self.langdict[key] = val[0] + for key, val in self.langdict.iteritems(): + if key not in (syslang, 'en'): + self.langdict[key] = val + self.choices.append((key, val)) + self.choices.sort() + self.choices.insert(0,("nolang", ("unspecified"))) + self.choices.insert(1,(syslang, self.langdict[syslang])) + if syslang != "en": + self.choices.insert(2,("en", self.langdict["en"])) + + def getLanguage(self, DVB_lang): + DVB_lang = DVB_lang.lower() + for word in ("stereo", "audio", "description", "2ch", "dolby digital"): + DVB_lang = DVB_lang.replace(word,"").strip() + for key, val in LanguageCodes.iteritems(): + if DVB_lang.find(key.lower()) == 0: + if len(key) == 2: + return key + else: + DVB_lang = (LanguageCodes[key])[0] + elif DVB_lang.find(val[0].lower()) > -1: + if len(key) == 2: + return key + else: + DVB_lang = (LanguageCodes[key])[0] + for key, val in self.langdict.iteritems(): + if val == DVB_lang: + return key + return "nolang" + +languageChoices = LanguageChoices() diff --git a/lib/python/Plugins/Extensions/DVDBurn/__init__.py b/lib/python/Plugins/Extensions/DVDBurn/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/Extensions/DVDBurn/dreamdvd_boat.jpg b/lib/python/Plugins/Extensions/DVDBurn/dreamdvd_boat.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a5256e28c5f87b619e45997140371973f61c2312 GIT binary patch literal 187417 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

lx40RbFE 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

mJu_}Hg9yIX6yCyKolLezx zjrnvHAIA_-1#(Q`k=Ntwq;9A2#U%H#EiX|vtn9L|G9w8qMh2?G;tU8qK@}SuxJzcD z0)3!)gY*sK-KDzE^@z+|0piN8L1Kh#4%=;$6CF@PCHmF1x0UbO*8c$Ox{kK%4b;Lg ztqrV3yksFcaw>i&B82?1*qL&c;e_G`Ax|-|isA3%wSfBaJcYUP0f^WGzSK22m6IP7 zZO4J$nS0;KrLBwHq=h|09P`N-DH9;#tx^h-q=WQjnBppnT*GZH1SC)BIJ0*6ou zLH0HT{h{$~*0s%Mq6A8u%m-#S586>e0Ag5eP@sFC9Hu)LBCVF`dX&=Xv*=RX6tR@c zaUG|3l~8d|M&Plj6zX=%C6Ji0q&AbNK9PRnX5%V`0wx6vsz9V{L7=EK_9GY`DA7c* zk-BO1=`_ZQ`V@O@K1+b4+%mHg=g856k}>vLAVn8_`4Tq+wrlcKfpT%ilzh{B zXZ|Gf6^tkr4J$y38?dUY8J_mwh}nk{0FF5M8vAt2Lko`XSS9o}oOE3y%cD%vV~WPc z*`~GABSoTmL8N6Rci5pD3K!6RWaZeJC;q8U3$%s5Ug|txHOZIrku%a`CU)eG% zPebjAXo$07QzE*aFq1duA{IZd|%DLh2f@f)%v11N45;l`B%Lg1-w=pS8cX3Cj5< zFaV_T%^VtIEyRy^4aXxCMDYR2RSO>B9G<;$vt=nJfi<)`oq}B7No5MkC3~d+xDkL) z5w_uaeb_)=jLXbgo}Y87U)|al^tB6E)_7bMU_v5c{zruHG57(do9b;Og?;!55-vFRNU}1a9M+g480Vw>uAiY}iU( z7&hU3W`p0C%cDuPjtOpT^yig=ePxRBttv`}rz%hi4;<8-hGdWla^Z}DMdmuYY6+}0 zjqArcvWe|3VgBw|U6=<#dlIBmu>>61V3c@v*tmIOM7>;)wzhCyYfy;qVz;}sw7Zv0 zmP1wg;zYvSR)^vad5-m6x28uw9dc!-;WD;imL-<|09lq;H8~86K<^V! z%NeT^zuF}32=UE+Jv{LqBh}5zo;gJZGpFC(tTU*u?_@52*$%&m8MTm!0-bD028tI< z)^BuOVBEoL_3Mj|^mMTxvrMuc5+Z?9QyVbYWg58t>>lSMO)8P|Le1t|nB}_C!kA>R znp;`7JX?Zj<76Xb146F~&hu?%_`ibbyQ{)(Czpbp%MFcWdNRKavp zXXy)7`o;9btWbat#ZV}~cRm<-A(MG;O|#Q1Zal@W(AtwuDr(nK6ScHnD1U9c^yyl} zZdDSRuA{5pKB=hEHoQkjKqHJ1BL!IEPRgK?O?vjr2FN5<>AOItDOsWq%yTkuTBCl^ z9CtlC<)8q=pCyxA+G&v6Ops4Bnu@fR?HUH+p(+b>0FzGt04$V48Eln8(&{(0k)G1k zg1g5!2vqisdWz+i2Sy}YA!{4$J$-w7#Ym{k*64mBI`=#DrU_2ECJ{x)cYhp3ZlDh4 zpehgur%pqq4Ka`$!U^333WsHA*_V1w1uH{M>9+paAw!zV)dW$qNR086Qc9sHX)a_`bIb{P07>L3Y0&uOtz}%&tE;^+uOPjGKUx*|Z>3fY3}Dxim8#JW{{SlE zD1+5O**CtowYO_q*sbKGZX&r>H7y*6jVn`LE>!*bE*c?>PV5aetJ@zk`HIfNOP5pn zvu&Ap?UuK0e^`pkhv zf5=~_Ejcgg3`nG;*y%b%mUA_t%$AgUrhZa0w5vkQT(wG)q@KHbWF?P%)5UuQ9cxvV z*5gapQUeTHbd7Cz{Rh=985M~gD2x&QK;&nPa|3mZs8Le$mzMPC;t7g6%-{QQ5u~^;8)FGzN@EUFKpU$B2{`p<}CC>vmTY1<~Nu zl1QbB*Ww7)sPZ7>c#4!RNdszAd}kfGHrd#E&#Xtxq*@=5Tx^<_kf z*w>_wMj-a$2YjrJ(j-F$^5&f_=D%@cY7hkhnWPHg5+f(3TA~Doa+8zVGorCld2b+M1%6m_MBQ6v#4`tR6**HNFbFp1k#76%PW#WVwZwBAhv%=MANJiMJjg? znPGlJ^ek0P2ewf&LYSSIE{l56=(m=OA2*UYo;C;?k8+XQscQ7us0|MP06dlx!Yxk8 z<)4#H@hb7#L=q5ISdvhbkKlf2Sc1o6xARxqGKH}5DAN_X)6SKu`V&UhuwL5D9lJ`d zidB?@$CmpL4pou|n=nCBv$?vS-A$|$PU;teM;pu(je#HnYDwwPVmUJgk#@SHM|pE| ztLgGt$R$;t_}a}HBPy*>s2o>d2_1LKBkAVCd$YYWSkSNGNZwTwq*Yx)C*%=_a*P85 z+=^v`Bu6$r9FSgQ)& z!yBlANg2p8+{mQ@5=8|zso%fdn6fr)v~qv{()lcHZBz*z%p$c}3b)!lJ5rdiw4!@x zQ=6o!s-efMYAVBV#B~+vz5q8(rVVaPHt%ln&aMDrtSCwCMK#+bc2q*yT-nC*pHOqC zKzR-{8y)H?^x_H%j45?GByzN|nCPd{ZbT0C1kn8Pqt$qk(&=*CMQt=wG@L0=$z9ac znu7q9Kx)6&#{mn(mr0}C`r!~6BjiG|w-QLHrFvJ}1tW=l%uMkl4Fsr29;B*)l##G! z9Z5SHieY7T$L=7vhC6aKKM*7zxrSIII<-m^pDIOg!e}4TmcJ1Lt$&$v!xkW`CB)EH1M3@jdgVb~+p8o)L5K}=Ojlfm8Qh*W;Nr;dM)|WN7l&$29kUF(M1%ari#5SnQ zaL$Vik>W}tu^*-$-Z^1dwifLqpeZDQyHmsxdQ<4l#yNUi6CK&z@S4*}Yi7BE;wD;2 zrzDFZc}pl&4xozESFXmRzGKEhaL7?1a6Z`rAFmTE13O0t~mGG?#Yo&GAZrOs_6lOYfnmcgi79^ zx7%q$sezF>BN5=GM(EUgmKNz!0qqO43LpGCuX^@fr@T zT(=%k9g!V5$-hM4O{q(0mNr)+ULmCQ0bqST@s~ejmLODg8+FV0``meBqd|7Fb#0~D z+*qxuGD%qCkspI|QT^iW@hBkI#<`Ej#NI~;W8+SeEjRR)%3p=}*u0Kh% z(>#eND-71*P+OD~AGRNv9cfIJQQeOfnnj_A!8P6d#JtJyEht(|f~coq{&mdFE}Z3+ z^bHz}!UDRaC4RSb?!Vm~`H{F3?4xeA&D>!^k4IH0Uniz{M_f%OSkj<&O59HzGfGWD ztfVg9;2+_U%ZSb;IAy|9{{YPGLTkI}qlKyU6%mTos>%Z~9S2jD>9L5%eyp<2<+I9k zZBqK~{Jx`fZe@xlNSUeduOieGpxv00;z=ib%Zy_lLYk*Cd6b&^_Gs@F(TdVqg1*OU z<<(-EB1kV!{JYluFFWXv$^iW#9M;2uprMJJ2JQBv8I7vIJThBw&ZZMBPf)kA)isSZ zc*gd(w+Klc0CwZ}Wmw=$0j5(vqL9xt_IG-At7mn>drO6uDbW3rtPhB&BVsYgc%eim z8R3^UH>}=Caja?@*|7SAn#&DItj$lR*FZ|ttv2MwpGFNXKx19ax#LBW{$6Xcew=+S zaIb5xSlsFITgXqQ?C}zc+(3)j9nxZF60FuHmYqsf-(`nA_pX<=T?%!=tyKd{Rt!VW!$KgadFU8l_Y*Si<42Y z+nbXN1nyEXs0L(ed^F++-jSO9{c{3yCCm{42^F=?)n!sr6g$f1i(cV;NXP3k^g9g_+-rVhc1Y$Fir$=VF1k@sdZHfW z?tAUF4djA%LEdV2-eXb_}*ow3|7dCXUprTcu)o z0j*rr5#vxg55S>`vN2+nNZ8}L=!4hhvN>xz(psdE72anT) zWWA9nj%AQXqS?h%5PGV_fc-k2zXb&b-7;g%uE9fG=oat=nkZ(Btpx&|`SmoZ`gX~g z9`-SfmZj2TlG)W{`n;3{8P>F?ext8mnAtp-$N-VIm2PGdG&+LF#0|(LLk`3#C#k1Q zmmGqKf|^;yE}IiA%%WK-`?cPKr3(Hz8zm+*QG)i(<(N1I+3eCou_Ssd_1F#{bbkTO1b)?kzOjKkZIhF{rhBXF(jooR<<{@okGrK)2@hRNo|!q zNon3t-)&EW4xRAT@?L<2y5XX0Um*(Op_R4Nh6&|a*~-jCqg!6BW#HWs)W6KwWVC!Y8qY5pC^_x z6vVqfsT+b3>Nc%5G#e4&Oc5Szhzx5;w7J(jr?2R9OeEGc_--^w%LDN>ykF?^1JZ83?ez^NQtg#hzFWis(FJ%7ayYZYb{6% zUIu+)J1c_>7Xbvxb0;8VB}1uVSK>xH(AN@22r@gMW3jS3%v#;PyXB2HRk2^JKon}1 zsw6BUhSj}0h2%G>XDB>HP7XdOrV!nVdFpF@A5yq|K6n+bVYPdkS3kR%qPddb`fPc6 zMEU}t3N>g)Ly(c6q6X5B%iT`bN*-d@7S4Nso{TU~9U}^skyQGH*c!2Izz3#LfPp?D z$iUBQVj4!JaF)8o^ir%XsZJI-Tpn-fN$LR`7TB2@yL8xNA|)bev&*?3HSN1gEE;kN zkjPs81|XTF1d>4SLVlY3vNT!ln#HX}X{X0;WdvG`mj%@&H28}#8%DLMH5A+1!z_UV zn*$QVZ*OM0l_I!4l6sNHJwYu<_M?jKSMlqW&Oo+?H+gQ+#|s$vEdHrkHVR0PgGv)h zRCUaJkrirpX1-X3;keWE>+49&kVq!Dl(1!Gg;}FsK@AkNi@yCjWbuO_8s)HhY^iIi zY7yz)T$+Ec%n7^H5>jL02hD>jw^lXZWd!ujAY?U+GIF6~7!{^uSFDbd!-xhG zb>&?kU5jhUCXP#Z#BF&A^pzRt-k=Jkm8qdq+oycT;0?k=4bpjZDYU64vASq3ezOZL zjoP=O0peaaVm=d4Hm<~v5s;inNIXMjX$_6caKi^FEaZuAE+9l>BvM4YTjDg>vjf+! z&n9bXVr*>x0RPkZk8!4l2yawH3Uhg#So}S}0MG@eT5py#@n0qvs@m!IQbQh>dvA6N zmAHjJm4FI-JN3vI?ty&E(0sL_+8ZlbS}hb!XHXO z7>|@!DX|2n!U+fcTH*(Cl3SBZwU?P_*oOn+jPWZae$YPqe7fM2ciB8iE#t#tV}klM zx?@y=;1DJ0@Yj0(0JV@k$s4g~ZLKe6k+>EKB!U1)pjP`;>ACm91*VD~_eqC?5eh2- zM0a#r_21&^F)^hCu=y=0h(#q~B}1h?A7f6G%F8}#_ScuT&B=jvM(k+9n{~+vAhL@c zX5Q!bQX9-d@G+BGGYzUe`+Mclg|%@Io7&&o#YTH{GDxbkPE|>8HUWbI zD@qEAWrsKLgR>EgeO*yk_m;O&Fk~{#$r>5rJQY-R2fI>$05%_4RMZw3U((pe$`B~WxaKyej#n{zhG39V2aq(J0B3%j6cTCM-z%>6!Mcn-qRsVp zw_WtFOZ*RslkgADWixIa$-)`959&BY2S0;_A>esSM zV`db{D$Gv=R#phfusnC|mK=>>6ydy)=KF~xYr9B~r4aQlq_|fBP*4C+l6DjTWoBMX z4aJGac7#>@vs+;SX9D22SAqvZ9BQ^j!^LqWtTVyAPxX}x{ES&IT~%OiJr zgUgKphU(7c?h-55-AaD&Bqk{xNen=uhBYUyM|hpt#(e^xl>Sw7UTrjlS!f5mzOIR{&G_hO>0aBD6oPjvG9af-yp-37VI~)=+8>AZ6uXm_k%Xxb3CF`0p$g~I- zw%crbWzoe7-DNpm$bCZA`rk}VLiHHMbn0M~RDd{MbiYlO zF$=gX%*bk^uEX25XP$03l_4Ki5lUtyOGa9q%|$?_S>cj?3`EZqUqJcjX^`s|UXv;P zBW#z_0!0Vb3l*h3m#%BH;zSU8+w%Y=W1Hsb@BXKL!ZskYGOG%Kxu$GJ!N(leI$X;b zeyt}$cKPmnaPfkQXCIYTTC~1;^0c#Q^B7~3>+3tA5ttDihYd;)#0AVfPFR=_3w9WK zfv0P>v)cKGQ-(<%?Jeani@CqNxL9ccnTVxKg$X2gJ7l!mVgsr(0CEz(;_K_Ew--ek zc1DVE3i@lrgTRF!2qK_Rczfi;05ljG*uJcz%>HSzz0u>aCmA3TReZBpah(>i=*_rsQqU=dKZT!S_{<#AZR_mH=ccp8Z#IZtc$n_)9UcYE^JJ4W0mEyEhU+6wk;}xPut!rbKr3!pjur}k7KkmmL%yEnf z=2L7f^&9P9SZj@9;isASh?$SVD%9e=hTXD9eoM)gS-~B;x&eV?=`zL~C#2DD;|8~AF4Tw;3K{mZ5nfs_d$@*%S&2_3KQOeMfM>lAcMaO&EBLfsGf6kOLj* zN_X6f<-!pR4ARuQzM6lANgh5t;u{2JAc6%zr76?y!R}&hT_(RtJt?I9&mV$LYf-t_ z(C$8rc)XPjsA<~3b-abdoXV+4U5G1D)HQpPj~Wr$ee1yUnG{g44|~ z-iVss-_23W2BT#)1KaABEhLDtuRzakSXZNQ6sV?E%1otIv(Iegk4^ILp8TYUrs~(s z7cpDWxRkTHn%#jx?dnl|&3XfoCxFOzqBkwsH|Am`y_c0Vttwe9FD2LQS4b>^M2<+g z66Hud$_503->zR7aK_MX?6WNg%W38NThxN$^8Rc21<4Ot& zZIQVRaZCm5UY|eK{FzD-7WqVP0p} z8vZRJ+BiU#O%4l7nZ#8MAbITF?Z@r4CVn*UUg|Qb$N@o+6!SZ8Ue`vul_!zp)UO)S z2!k;MAW+Q0ylPm1<4|&wA|lv1GYvmSc%MwOhA4f1N9#8;G)u`<>am7$2?ds|zqZw- z1~FrBfi3K>K|(CD^>O7c)y!ZE__6qvb{fD++}m(t!2uIvcz&1(hdV>98X-}^k#2Rj37bSqJ@6gx71h)*v=nY2d z_FI3dvLCA2vpfy8KYj^n9yQpG=PDy*A(H8Ogx6LYd5y%g{aI}#^p&a=nzeGOeh^)G z6GQs|?@?wwxiB1_vE}J(G`W`LW=Z9RS}AUA-pb(7}6{8?1;-mltee(F8_Nw2W z%Kl?FSEo{z^-LbEhpf7DR4UB_0y&ekj$>Y(2ftjqA-+g}q@VJM$^QTlSx-rQDWK&2 z&-aV)n$*{hVqgcv=2MxGTwDEPPSdR*dP}c)lI|G*tvv`X?j~}3kfITpQve;9aU*8a z8f&Y_A&6ewU7_Z@wuw?kj;!54ps3ra#18b`ueCE(F5i2 zEqAU$cH?BmAY>%2M$5_3zDqgD?-h|Ze)8~Ll zg&-DPWv|-YFlS(rF5*Smhw;mX;i^%#O>Z@!R++$+ODnYTH>D_L=v!ipJVPnVM1u+; zeAZ7SFv}jIv)S8Bmj{>bp3B8a6z zEo)vx3InmIuj?6E$U$u3iDWjn6TssKeOkz@- zmW_gdSkU*W>0bH;Rf3=3Zy* zky1wVq3nI~;gI(<5E(s(o35>_mf4gN5|mB1sqNEncO+LV1RiZh9nAB~-ea0iPCZsJ z3eI^6lhsjlW`jeAQJAz(eJib%zZ&|nM^%R*YDqH8 z#0}j3&1q6eCW9;*fHncE!6$N*-QHQ*G}dkxpDGN{VgPnG>9KD;z|f zm~@wyE+n^#N=EHc{C{|PALbjMzbc-z4o$Gqo~o9bJ=Mb!c*dxlxk|xU5(o?jQ@wK& zHmb(XUOXfs<&w(87}<=^BGovZgH(JZ15;hV&3`v23Qu$$JnOeDZ>e4#4$?IfNBftS zSqLF`M+9UwN|JsiP(UD^@*{Iek!Mpsll-UZwUi&DrfRI0b4V`rX+sUdnh5Qb)1vSG zQOOa*$w2RU&Z*~1-9;v_(qlF@61VStI+v7J{n;m0>UTK`k3Ou3Kv-$6gcepWBeI#> zay%Z43krRB)3*S1-}`dGN~O{n6?CSjf(CL!1T#QkDD{LxU}^^jz)mcENL)! z_xCKcZo6-m(Hk%&7%a-m`c6WtdjwAkh6GSGIZz+9_D25zI$##0p_2CU&hZ{Z4;f)2 z@Z?fQp(LLIE46ZBAne3UhC?}?@U`Ze?p08F_Nv>cZT`vW*AOWiOR8UOKcuM)futlb zg=8a=k_j&xGMdUxsVG#n`pSsz7VTI8UfhUI zB-7&PO)?V#nZVhk>c?1da;^ydK z00Act4JV4lJoj9-V3F!EM{_oy?jKLENZ9g>60aFi(WFZA_S?49}M9SxMU8>lqh zS40tCNj;vcZ+x*D(L|6*4^Q~Yu&a^S)OFh_fZd$go$s1-`$?7Du|O({k-V(z+woOF z-=_U@Cx?fdNalo_&bP9#O&80zGd}?4Te7y%g#-ga?OKu0Q?3yxj%q;fYy4fRK^Hr{ z3M)ltAzJ3{I7x6erv#Mr`fJ+_j)8{>?_k>Qp{n0E*RAw{X?LW|m$2L$p1zEYGN%`f z8N+gA8*N_-gHBO=gM3AEVp3}Nx0;`rFKzy*X5L`^3wDz zNM;(1*1vh_M?apSw6$;%)(@*&nI5DtR|TJawhT^N8{ybB$9>ob_Q3+M0y{50I!)qG-c5h5iad~tDM4pn6 zW8k!)4NjyTy5W!nvm~+o4or9L*#yv^Cj~?A7V_9;qYz06msdbY@_0;vq~h}qDVU@7U)E6{9kN(s7Q*Yly$tl*ZbB+Syt-~mFc%CsQV zkDlHcSlOEG65?A3$hBsUX;=4=I_<=EBcTWSV-yp!*0fz?L%4AssLYpz%0YDU(Nuog zLgbDqQ&O$e_2rjDUp9ji(LRpiTU3tr{x`q!{{XAar2sX}y}XO*I>?*)i@<;gp$D}$ z%PN#|Vn3EBl6i~Fme%)5p<#k}T>k*O1acHD#L~3n39UNi5FljPoX*L=mTzvg33QPH zyPY=1;%RPIaSXTDEJ^G3xJE$gJ|kSRQ}t6{3pvy48Mcd`rN-8?NGkMcB|EttO=H~V zM0eSS%67U>*K8mucQZ{GQwS~lu{1=0c+;RG_2efWEtE@Vk;u($<{d^hU(uEt`rM!@ z+eaJ{u$ToK7Cw}Ss(ZM~WiA=pl0cAu|JC`ub*9{DcH%z{T$3&ONv&{n-NMiv&#P?u206HbUJ8gb{uP?FU&Ui~sPVR-jZwYPg> zzgR%5#-W;my=nCflwSU8@A_sw2KUE1`_sbHSAhs;pKQ* zK{e|!B%0M~ciFjYGMPt-vId2uUS!asisC7)P(c%?rs@er^(sg;9w3498BFn*wnlf& zg-K^}tt?d_$I>YUdjMDwP;2dwF)fyt$qmF?$!r)gsAcLvI5$Pw3P{7%fOVxu0)HCf zQ$a6fDnR(7U?{Ajhv+ziO3JjoX429T6SSVAZst;54R#`)`9364bp_~%dbUz}u%YB( z4a;NWUu--@sKkVIhN5*j;^E}YNRjKMd193F$J@FyASIV>M5&`N5iq`2exTvIRmq`hA;w4aW$on5Y8qc zhd9YpG-?Av1#-U-%bPP08hhs{{)=i)Dt`5s(_QPhuIK2;NF;8Fx6(B$l#*+QG25St zS62}ri`j zq1XZ72qS!fNV3kXtnIC?BZ7BTkjLr>octB=F4R!l^utIgrOuwdnHP`#gByt=iYhUA zDoS!?r?3DXo17pqQ`GeCcCpN<7>KB%09(}9s6kzZ-FDw65zz%5Z3%`bA-U6|jxeOC zPD~5_%LPuriuK&(;t?CQ*|b8!w?pduL^lk~Pf_p!TD%*VZr=Dw>JWBMts24`TYEdD znn={Lx2B;e!+Hihw%;t_?;(hhR=GND$cySxkcm%$r3H%vPOLjuVc#Rx#_6zjO(3^@ zF;P|{>OaQB^aw$v2-wi?w|scFULF-MtxWeN=1A@#aqzJmN)NJkC#`zqh!l%i9lX-| z#w$?G04bU}5Vt^g9H zDim}le{XC+J;;)Gb8Ky`{b>0~B9KSN_Jwy8_rytxUlq*sRdCjztGSs@+aI&b$G*c2 z1vZpx;irz>(sc&SKS)IxecI+#bMjIjKm+--FsA@LRL|I~#-de_`zjkibT1JgcIF)0{oe#s|nA035lYB+R zDblZJ5OLIQCAhp>r*Jq&2r`i`KN^+V!F1YeI!s_3tLo>{eI~| zWei1lB#Z#$Hw1;-CmDA&N;J$Zw0moAERL#ABKI?~l1fn2hCK$`)2>-W^I)QEp|rQu zFC>0W*3EFSvX`M%V2Vd=xYnnxJRvsmyNxnUKg~Kei5O;zYow0R*cM?EO%3Wbb|>OT zUzloUyC@KlZU)7(TkRU^+gV*#P`_Ag^y^ndTXO2gH(+R8i1>q0&{S=i<~&pfCb-I& z=C7{nF~&`{gK>D?kdo5k>AgspIH*4j2_~S>?eoB72FA-M#21fCVdi~o@@du^I8`B4 zX5yhj^H33b&_8^q#3cG#0gQR1Gr}xpD^5>i8E0X>>p%rhV&r`D6D9FeF}fz|HoZSw ziQZi_I$Oa!jYstaV6_z2V^Vx8lGv?o$*ganxJ8Fgy=^uqt1Vo9Dv>Klz&SL3B= z)1k{FW0H1FE#;F|mRL>vnti>$#T>99k<4WTZjMO?f;AL0ApQAfJ0A8DW0Kw7T|LN> z=1Zw1`0ehTJ2>=tHs^E4;Wen(cwm*@>5nbbm^GNa38i56w}IHbtbmxxN+`;Lq>9v& z?@Hj}wn67AR#k;6Sxb&pJD-bf$6!IqXJss&3xqLSLR}1q3n45E{7Ac!0Pk9FwLbDT z7OBL#ty0~igZ&*OV%DdPc+-=rfZVukUY&jN!!5Q&Cl(hp4-9se%4Av%Hs+}!mRhf- z%|;cdDk?=gVT_9t9;pgycN#~T<-XA*YX+G}^vdy3&1&n!)Kayk{c;mLCdV|@y%Wg# zliKMsJ%Yw=r+BR6R|J5T$kIykaiRNC5D!vH_~fw26Kzr!Y3ZI{nPtevky50xd80{0RPtUI>7{?C=5a{H|k3f;o@o6GDI!Ix=Su} z`vK}*h|!E;q)60pb~|wZigm3%n&BAfAjqjo<|yKj+enEuIJz2ude*z1gQnQ-s?(2H zdS>Cu6x~N&)F7!K97rGfK_?6Y!jJn+(La@h7nf2 zr~oMgxgZYNDzMjm%w_#gtVGJr(Z+pivG%#~Bt`%m^i$IyHfJHV(&p5jR9K?7op%7c zl2)g^95WjC+iaPfYnxqlOCf1(lq*~txT9d^-HSO_B+vpyb_Zcf90F~eHWOHl)ZU<$ z+BA$3VsW!5J%AvAzfJN$SYcc}Rpis{ZtYsuR1wE2nA8RMlYh0;8q`!ACmoAp#Y`4k zD1;X_x1mJ#>Q~ldMpXxC2l~Q?D>1OhO4uCG$<5LMCB%NE5_46Iitn+h6v_$Sn}7&A ztvR?frV$$&1`)9%$G#d*7U^R{B9a&o8GhMai18!%$^E(c18lbRD)6X_r-TX zsFpI`o3w1EyAn4Z6vovX4xx7ht0xti;~!1swv*yF*79|Dp69W zzSOVKaG6q(Xv?d$yR}g4=JFOklMVT+Q1Nd601Iv@ra(N-aULWt-7LQopW#a8E z8M#pbU{y&JsO!sr49on_7c)&m0j;-3>K<=_t*z~?oLfeWJ{E}$I&SPmPxRX(;=wNqg5dXI5<5IH5!HAN?S znk7m5@}fxHl#5GsqS*@a^`r!zNC53o@wHnT>QXH&xbwZd2aSv|K;=poRSzKqpW0wg zUmQM^i(`}P+ODZ50M6osqeyB6I@6{^kP=6Fly+A)QJJ0nMM(n4#L+-)w(Zx)BPlJj z?IX+2EGp4kGfB;n8J3Dlf>a8f#^ZjN5ya25{{Suvd0~c6j%h)WEs$5@UhKnUUB>uo z(ZtQHwDphSE5s^|!79pWx|TF1yYv|<0c;*=v^Iqzoo!)NCY+-zN#q99?_Zu6i$@i5 z3PVrRLt6cB(zeuOEgWkbag55OasYx5b?z(p<%1V>u#C;8H`-!pwu?Q(hmivYWHeOx zcLJwwlsH5_3T99icQ!KI$7w8Y6F2u$a{zosyj)NKwHsx=8LgOcrYmt~Z&m}R%?#-L zeL^`NBe?>f3GvAA0oQc#mPod$VhE*oHRVCy{PxFysE{EAb)>-}dTOa&AO@vCp#)N$ z@YQl-K!samxL6{Hv$26n7X(thzR;}?O}?CoAoNk`*(tuUmJ4EGQoO*V2&3&99l$CF z#nzuZoJvn6`aBmNud6H#5s+{^San_ePSrbCBxE@;7CEBlmPnbRlhXteVlBC^&)>cv zEQ(I|vNOi0pi3buP(CGY-8VTh7^Xj_Be-Rc)O4GJAr2_4=s+|kwdT zylrv71XATl2AoJL5AyY<76e*TsX&I_3!?+eA35Ni6pFHXY@jQSps%;xkR~kR7({+# zv4%K(HkVVpWL|bwXe1&|1DC5H{n~CTLe-~Xk_Nf#5@M2HYCdDtH5*B$gxc_qQ*Wl5 znSfF7P!SIU%i;&^_<{#agr&vwvWNqkYh!(V43j0!tkJ{8Sv2yT(Lx&h91QxUYBh;Ond%~p$l8cOnBMFo(1lNv|G94_Fot$o1$xs~FHKnETX^$|#mHMKCo z5Ri|nqM0Lls{j-evHsj*Hd`U%jqBOz#v+l&_1J#AmjL{08>*dy04hTODtqN-TrI*N zmzHW~E?S(D25(c0RAKQ{B9JM!Mm5X{*Ar+e+A*<>rH1&UBua}CDJ2Qy0gw@2*J%a#TF@OU#2;H|}KwbPj^8JS;0d|e7!3E3)CN{rW4w{q9b^^U}1D`aKSskjS_07eto#1nF%#j8Fv3ZRg0pUT)yP8*gl(#56w@LiLaST_t zmbMZW`lD8ST$r;ic-RWg|dNSj;s zpV76vVQXs?jUwDf5N7A;aTWNNYS2`jfUXZEDf|}V=zvtq9!Yh`vb&W<9A|#4d}$ z9Es~j@wKGnG?A2G$iES&+MxFzPDVnKspZwWhDalh=6fHl5A;izn4noh9wMfraZQhg zLlwn|dM=ITYuzS$eLCsly0wY;L?#}S6g#iR2>_B!DzxdDkv7vP^<^4|n5^ye9d6=2 zOLG^l(M2E|Gi)nE;?=K)S^%p=0k@jkT1TjPX8v%0(xO2<%(SSA2&+V2b5@Z31F0E> zjwWQ1+bPkf|JU(_>`8KfuvpO><2-=m4#X4N@yx>;aO{MF;%Ht{iwu)T1hh$M#DEkM zd+c@@07x{-feG)bt6;F(SvsIlrdI}v7jnRTqxWT`Ba#Uh>ji@{y0R$|?puNB$oHum zW5OwIj(YLOD;s7qdRHEi1Rf-FSrpcU)B-ykpw+fS8FNP8YHBQHREQ+x2;x*cxkz@P z@u2JNl93f#u%Z-ft)jQ!(i6%>CTYtWaszNF)7$9DL|C-W?GYfiN8rI?3IT!wKz9f1 zg#)cSjE4oC*zr*0qOo(H6D)46xrz{+g8h-Z?N*_#OhhA&(c;;dI+M*n6k)Nb*aO=v zj94AHAn#do^043$xuD@k2w=IfUn|o^**4SKc%0;N4 z3r>KIy|WzdOLQZ`nXSBLHHx%FEEpo6iBDAV0=q%4M{$s@NUyIFfqT?gs%Bqjb7U2avF#JS#`=r(egW3r(S# zA4P+6DI)F&s67Wy3{-BJL#f|Fs9deeR;rT@MAE0PU&jv0X*IXiY-EPFt~?sF{m zYsMBm16GtZ>?lqdO2ZiL%I+@tBcyk3v$~TaBMw5n3j@us!5-yVajW+CqqVa}Ik7IB9-GpDf1cPtGGcPp%VyDHE&lYA801z-WuPLo+yS>vnDXcL zGK~9z)zfs?)0~&6%qT*RZ?}zh7z-{-$@uO9haf z>U;(xW+XG+Kg)7EM;s~Yi3g_AQlU8m@dM&1fmyDf<&8eVI2TZrN`b;q)IlI%0)RW5 zl@i3WeLqjWE&Js9mAcVwq$iV=?Xl@mOq64~3n#RW%S=-Zu}P-6enp@C*hNVkylAH_ zF=8vZGiy?^Aa?}Hfxsu?1ny7E#0-dyvLt|~7@6d)Ol=t`SgBsSZPuf%{fd|^NRh7eRB%JUAV8(|Ad^$SdiKj|&<9qV(~pvta;$#J5C9{!Fjz_5d=k1aj80t- zR$u`iFn2x`84!2qv_M1Z4vY#39cV=zPs2iLY44J?9&2sh;>jzpBXt!FK6RkOK%g2b zex!Pfj!;yuz$Ar+$EgGzyWlhwl2m54hR7CsS@{+LUKI6ubR;hQHpq#0mPc+%c6P^8 zaLdUpxff-WQbr^Ef<6)W;&X{^RY=o$ytaRZDteTK} zdo_eZWdJG%q@NHZ9sWAjgKwQOSjEPRREZ@gxz#P?)s$(HoqFwLl_P@4E1%vd+1{ZP zucm9sfv3wE4j-tph_K!Ek*Vt_(rb4X`c|HcQE6_;cXS7O%*nwjI)Pev<5HI)Nd!lp z>0R!FM_rGU|+rK(e^Kzq_?} zvb1%Q$4zT_IV6h^t;umIb#;+}1H>RBVlo~c%!JL-S*NX~jlHg&t7*2f!F3zYW2_hf zq;AEyO;PX^2d_$euwx?F5x+K9XQNo%%E^18*%)LC7>q|sG79n`XbnlI_NH4_Q7JFf z{J%VF999T))F{!IV|Q33Rs?Y|h9Fc{tT*}OjCR`A5(AqO)-?&+%aO}*aVsl5yWQ!x zaK*TabQ5|q#uSaQ2?9rN{YV+1ey>LEn-nYS+FT z0>vU`ibLk8t>V()hIZ$u1(hu3T5u7BJmn#2@gzWs_~o1iH)V*G?D9`FK_riBZ*6fU z)yy86ksET3C2#~$O8Zdk1qWQm$$Tx)ka?}-G6?1uEW$x7-lCoA;eg-iOv9640Hw)m zcJP$+T~_D@hCnO2^`Yzt$wuncboyQM&1rJh{;MUlOdK~ZVHJ5-b3zSAzE12amA$>f zPtM-mqnZw6a3l&fRDwJ5uUtZ_UEMUvEOFTVT0p8+PzWK=0q~Jc@@PtAjfAn*R^=%r zYg&R&QcX{O_$6z^n@dqC3B?&BSoUJ#qrFW!)du{kPar4%S4n}7vQ8{cI|Y64wi_-YoG9;BBFOmRQM z>NTPL?1qF=tfeSB43V}ZuGe@;d86y{mcOyOS&tF%-`qR}ub zq<$vWB4}4|J`-Bjy)X+2zJa)G?u-z<%u~wkCm;lz2@FVG&t1Lx<$xY+WB}ME)`Hz! zapXjbKzWdYOnY~!s0X>rVnOEAVr?56K(TULh(!w+{xu_rrGCpFZuw^8lO6k%KS*h@ zaP=mN+^bftA_|kxPJt;FNjR2SNFXu-Y7Gxid-ueIBy!JdZ8ApnWs!qS+!kd8=Yc(|&Nc$Sb-gmoW093ZH*OPvnf+j`Lzk!U!%-+q+#z(EXzn8ntS z8e6o&H;zUXRO|QPA($x>Sj?&nfHFNf5x>(-jzXDQ4r_NHqoqwjSMCTu$09;)3ni;B z1}ji$QajTFB_nIexT=tUYq{UU0usA~me%k{k~)9B-3=LiswspPM|9NcH&;Y`a(}LX zpmLZ8dJdl%_`dUo&=b8g%+cxga#^j31*a1=!ntM?6jdC$3~VEZnmqZcAF9Z<7Y9zd zX%a+p7c^x7gDFwsO>6CiV_+#Soi(d}P2<%eW=hgQWVK+zm0`7Z>0AT?$|Qt5-f`7# z+5K%vT~6E$qTZq7YiStN zG@rghL)WPzw}u->1FihqGQB1dNGZ`~E7PY`IM`$1CeZn`KLuFb2kkJG95E-aQTnkQ zDKIrizti^eHy3v;N-1I~;nW1RoQ`aRYH<~6RE_C_bp`0! zf06DaWSCi*m1xWua8(0w(ATy~ypUuWrLUCkmfhlK^jNVmG#>>D_*8BP>~Qc~4mw9( z`FW?)u5F;RvAfieIn#yYVWJY0_*uyeY0IrBd@^Gic!6Ez{Wo5<5=*Y%#d|d3GaalD z2%(3FAgUL4X6?DAOi|jHNS03uvUb%e7P1~(?P0Q+rU43MJ0+PM!jt4u(8-Pge z2T@vgrdPpynOO;GTNxRd6mnof@h8)(j_XaZa1c^t2vU1>bYT?jZ(4vE0{{go+mS)@ zsLOX@VOl%;cwf+xA4ISoox+;cKtHwAZHI-4RcWo^_|UGzC~)Ko)P5uqX_Amw?v`I( z!EYkY(KXH6vPW$cY<*XlpMo*HD0ke_old}vgk?;)N=0*bC5-PB)=~L`%vaF|mD&9` zE#av=R##K$#yS8h%xc6OZYOffgz`w@(=}~kD;v3W*=!nUeHdZ3jygwbO+_S`S;I9H zlC-D-y)ryxk4iXVHfr0-x*fIKNq6gA-di(%{&{4$FC2sSZNf)o1$dAs2Y+mcjE^$N z&uXw%Ha5c`B-bQ}D1RKATr3h=zk1f)=Zw!x44LzjDj0HCR_X2X9qEQ^% zafsf|zc5>QD^H%rFHTr3EMwE+KtJ8#EymR!@9snTWO45T#;Q!J>c-wnIBnytztz=S zPq?ooh@$#w@bzHJvjf#h9q{9bF$_-3PfOHWNxpk^m{{3rAG(SMUSi7j-Ag^Pv(yx1 zt0!tNxWgH6mPBy`<5Abjda7NnXNh@!=@*JKRa2KOi94Ef%%em!#BTCSuQA`trt3N; ztz{am_p3A##u*GwmU@q$Fvvv&$Nq zfU$}>2e;a$?75l)o^8ssFKSJLjK1jWT=j^-f{s33cf zw7(ENiOEu?aNRYnC5q*unPX80qQ*8?tpR#cq*j}K_z9qb$aMSBr`iHGiA0df?&aN$X~b-Rb;QjeGp!oj zY8F;k6U5)>7ONhg6}b)R@$87@5rl3Upr~&2?_I{!%-x(Z$*alNUuzx5&`PF1J7^*s2&}*$qVFHWS;)&=@zi0D{;v~ zdWNd1KV;IBKTbwUDd#cY$ev)iB%80RyG)TN-R5{wA;+aEHu-OufbQk<8#1d~TbZO2 z+_ITxQR+fZ!jbX@h%4E;`}<|E_pz}_+C?+QuH0ib!*Cbj*mm*yd@|wzapY4Z^cp@X z5#(sWc#?j|r(bMj02IfFfRN8+Wg_~*$}+@NxyBjWgAmjd@ue_I92=xb4%Se5(a8*I z5;_8rg#;2w0l2Mb4%Dsy852P?^iinZih;q1mCqU)(N5K^MRM3jxvEC1nvk)7tHlIJ zLFTT?P^)u|>f)XRjk{9`iY*U!rOhmyxj2d3@I-C}d3PjlL)>If6EI?yNvFYXVnu}s zED*|!d(`!%b{~EKRF34T=S_$)SV5tX^E`l3EAcHzBmvuXbTS3kS`{2iPM74~e3d7wc8LBLWuJ9X){9%<-`TUg(!9sVIf)84+=DTzYM zYS5a<52oK{VcWoBkX8PqvND7WIt~ZMl_Z>Orqr6sMPtcHP(FJMQEOV?!A~M9PZ8mb zQrhFDhpA<*;-Z^_?}Eyrt#nn9{{X#cKpeR+sG#k(HkQ9cUBu2FCMZ9y0lHC$sW3+mNx_ye1+< zkT3v{dY(iYbjFJDC#mEc;$XYCn!-&#(+ne&$SxK|CuX8DpM03cc`%kh%e1d8=@I(z zTwXHD)DLceg5!E|H3U$aj~uhWJy;xqnX=efS~MP>mOV)$j6AXuwd~uSg$)l-21sJ= zW8yMKv0Hdr=sL%0+xq;E008~Hzy`hW$GEC%Xb08N<79B)kU^;{Q%}5mVq%*LH}-MK z6tOSIdvd&D2w4H#Fn&O7LI+Lhg23vL5>m^#=Cq9xD`Ja4ByWn9-lvso*10GMmJ_g+ zTIvigqcbc|3lUW@)OZhkxPeR{NIShANfro~>guQ&c>n>T?t5?Tl$h?{#{{IHd8%Dj zF;}VFmmAPir(8S@R!T6fyyMkK3NTV+S^(7t#-purJQ577AtV0ygA*zPSh*Eo4}Ryh zaMcZvF3}R10AxrMqj%-R_1d&kkpZ7BiAmKK-tb1s!hmcm%Cu?@;)b1Ylp(KUh`33S z=nwAzY6>0ppu<`G&r>;&sJy1#Ltp(f?aTi~@l7I#k8=Z{-+b6&) zW*l4cU32wP9VMg4zugcjc0D#7@Bq6d`eMqn&ao_)Fi3d3bp6s5_)if*yLZW0E5dp= zZ56%E^!lSlRx5cP(@u;jkxGyjSwi&qm~j;71%GJeMwtr;ty0yRCyj}CWM7N`00>P8 z1n;>&b|6v#Jy%&-G{{uMq{7UER+Lgn27mxIpy}5D96Xj?>3*weBFPQJML;ZIlpy3t zebm%Y)G!-U2_$ns0f~8n)#b3%nl=65w0}-VZai47-!8_dC1RT+6qiyLwyA4>rNj-| z0Fl2E5@cYk*3%u*wF6S@lT5K-T`1)X*2^#M?J0`!x( zB1yI&Jgeqgh&js;)BRU69wog;X+APs?b5wJUOSVr@qm)+dKJ!-5;f+g^2s?IEsanu zcCNqxE8Juc`Rdj`# z*s_^#twJTsBQ04&p0ywXM*T));}khDB@J=r9Y5Dd?O~D`W z?fzpE%XUB{+B6Q4UR{}9Ib?Yw5}kuaL0Lm}99p~AAsxz}G@kQPlTdjsr5vSDvB)}9 zsNjB+#{`N|qRE~Hks0G{h>5-uM^M7JP-LXWS=D$kGDIuXR0Taj`Q%95N-8UhiDQl{ zuTe`Q5baaWyN29&?rD+=rKreQ2Y6ST#;9c65Xx!^9t2cmNKnXh{{S#r!=zhT%8{9E z&Q^T`*C*2q^2jh^Lk0jz+kZQCe9Dk%{UFAo8di3X&=BlA=)m0RPhR z65Ky2U_@wKxe&?}F!)FucO!n|GHf`JP`PIlM()m&MneJ-O#_b1S9<>dnaKb`-;&Ql zdD)1%lHD8rupk?U#l!J;>lz zP|FDBilCycej<0+?L%6M9G2bfRo<}@V=}XRFe5UVNUH+JYN#7fVE~iKmeke6Eh8;l z#w0~Cn%2EoPzsSxgLCMDiP4(Q4r6Hv7VqKv*huv;SrzO@@_vgt~oT%-}t zI0BKVViX2$H2AAg?Oc>tNR)HJ@qnlT&G4EKC<>84#F4}RP7-_35DKNpX&IgvVzen3 zR!EeECt>?+Pipn{#1$a|@Ib{>kn$c(Sb_%BH1Hk2RwmYvOJ^Yjl;(ty@sYIv=%jSt z5P~a`!KXkM>q?%QiYW{UY7eu&)3y~6K}}(8EHc8@u}o)Pagr6;itX_eze7#3GL4kP z5SK%wS);~HtZ}Tn`hfxB-N_W|wJ;dOvfQn`(&3Hck)vr#lD6`!WYw0GBXB4xYu|B@ zFa;Ju6zK7?s49|Z8B3+GWip>ffg}b5Yy%F9{(W-38)hbv-RUtDWkm{4!r@0s z_4~WzI4QC-?qHK?(pt(>fmm3QLEeWVS%YYZ<1vqhb%+p1R~25JyWt2s6bMPCW5xx! zQAT$hg(ybCz58TJNeT23M>t*wh>!xnR=+HjG2%>R)6_>RkSGOLVk$>%@DPw~Mh`Dt zEAyZCP62d3Xb`}BziV%x;-x!}%J;HycZimrjFliAwxJvEUf8j=QEBBUZSB6XIvc40 zAVv024UXf)3Vry13fnQZ(%`s;B$5C_l#V6z%O6mlMQQ<{pxog&nAt~N`ApmTVkFUn`ucCPGQ=mz8aWqTO7$WSNAJ+bm+M%YMB`@Y@~(%8*SX?6i9o zkbk0zrxMj#0K=!wo;fj&xub|Cljtzqd{H{WDe-`{-`M1crUJ-fx87a6w1bQ+vqoxo zfKZ+L4u>p^`_N&w?0(YD<zaL6QU zn8{FUumj>8sazZ~3Jh1Em04AovoWAz2`hMU*v!axjoifGpsv&yhsTP(9g8H)i* zw|W}wT&se^Xq5yN__4Q$wZdG-ZmY&ujakbBUWx&3oyH>1BF5G1&AX@&iDVE)thVHY zHEvtDrrR%ZTz4BC(o6#C5)sy>Cg{ILig~7^pPckG*MH;RPpj6~)b~yhy;tjz#X?IrA$8oJ&K+PFLBTpGn)%ZznKy~o033Fvcs~M@eF~ zifIX2SM4els*$$-J#x8B2H3#Wq<4O1xzuNd*4E1E%h8e}CB@uaUAf2z5ymzhI+OHd z4p^RBvk|Uo<)(~pBo~^Drc^8$A&}4)8;?PzCMWZ=G695lt0ZQgLvCETb4`|W+*%DuRK4p?SJz<~? z12ugKl!3G-jd@q?Ar-0HY`zk{Z8L{*BKqnJ$&7GV>P@A&GG56Iq_UnxxzId?IEMC8 zJUnt!oGO80B0|2ItZ8~or%RAt+iC2pCY5nLywP!LR#<4tOL6-^itX1Sib6cfWGyqh z^DdJb+-f#Au+Mh_d{(IS|>t- zR{#dsznk>U-^#<>KM8$`lI#zlvBjHnV}+ zdxv=7w-Gg18L7lnR;GUanV1H+9$c)Gg zB@xX==S;Sm{YAyk)~+WHC)ZJjCUl@sv;YO601x6ZBKf1IHE5-p#?1X@)Lf)!@hRKX zLW7}Nm1@uuMjU6FCTgjT>M_p-p0mv;k~@H{#2wYDNC)WYmCDF0;;UsU+SX?$A>2pDA7*vF?RuwX^ zR;@{@Fd&0Z3_uA*%Xn_#tWtW77z*C1RFzRgp#r@HI^<5rWY*9B)A9w#NT&<4lk=$A@J(L39#I%&#KQ z5(5rZ+M%}uP#yNBCv=KMqKK{0OpG0AM@o=M0)S8oliXKq23_fmfYp*Pl2`!+(U@EW zQWUWyuEDn4SFSuHAj@QQb}Xss2@p3;>q3C<(AV$DF^ILCRw<=3JZ$nX^hG`&gTDJ@d4zxxtF1P71~lU> z#E8^n1wo}nX}tihLash*Tk=RF(XRv&M|W-*MJEtq8?ujxAB(@s1?^0>y^vC9%q5J+ zZ^V#Cra>H5ziV^U_owm5+c7Tmp7YC4%PTBkAe|J%!3Wz4IU_Fg>EqLUfdI1NqQ>rg zqa3iTu%j|aYM_d22_}S^4xO^D5_vWW+Q-svbks3i*_B=ZDU2!GuPP3`aPW?*KvdDR zl)AdTcqn25Cgi;lm{ozG?nX!*kt<~}Xp%20HnkE;!{d-I!c?-lgHuK6(!1as(Zm9I zapn8Air?zCOL053WGpsXHrrF6-*0T0D}7m&hK7wQeRU8#MAL|1gmI`GM?>FZh#kws z$XiT>#DaAVEOFI0D7+bsPebF^w%G8o@fB_DF6F#gZQ2NJS!9wx!Rpcy3{nmyb`{)y zs$`=OyhV`1^`(DJkR=sbMpfdjO#^WiJNQ%|o)Z-kwQK8`EZ~-Q6@ob0N##|kj3}rk zyA$4?702G1C=D=a`kkGgp!UC1v$|t4G>b+y#E_2RN&9?(74CQGl8pP~N!~!rsyB$dRWTFLgYBD2|oOe8xI2Vk8@qh&nW7m3a4o-kZUxky8<%?;2(`7kwW`N{C54uVIesV zf!81;OJJZA%Wqalilo8g;Ht4VP}}ZLiQ5MWKsMBdXc#MWX68r+yg}(qLEU621r5!- za=gYSD=lM~g*EWpWQ=c-V_aQ0}J~k~yy=uJ&h+CyGS$SS?T! z&>n_|-wlKmU8SrsTl#Yp^c{UeakHsrH9Uik=cn+-QM5#*&ljO}DYlK3e`OFS5S@Df zc0Tw824xgk$!T6Yhfvkx=sqLVQM_>*8w*yJ-$Q>qC9Ncr)I}&m@Coy8b*HOGlHvX7wQ z%b8c5!v%j+i!C}7f&nYBs3?)t$3@uk+|Zn?NcXl%f(C6i?%~4Q zs>WmlhHa{9DhccQvRqWhnoo74^VD>!Yn#zSB(gM7QMi~;4j`IT)=K=cQkmhVA~nx+ z`aL&FjwkfuX@adK`oSTYM{TLsB}9d^EOvTZK@|2jivf(61Sb+0crws#4_vRo0HkC+ zQ$0R@eA|;qvGQbzlu$A1H^N{$mx(3SZ}iKF;fg*tlESYuEwArgm<|f0#(oo4J@%$V zzyrBvCFGQ!FkZc+B z2bx5kZdxBij!w#v$3hfWaYAw@ARO(oIQC##jZ} zN34^5reF!B6=)Wwxl9qVV;&cuc}q%%PV?=(hOSwx?XIMXS6*=>%BvuWk*XL5aI`h( za+z}%vodd!>QC^+v``y)>`+B?>S48j03s@W34L{=a$4-w*!0WH8aT)_ucuz!=~9g| zR6klQO4w?X5WiSK(m4ne5-91g<~IVh8D#(%^+9V?dr1?D#dU7cwTy#_B4EJAI*zrW z+o3hvA;S~Ruo4)qtEfe&jXf{ojvFhfO3iGgc|_3@>PIAupoTm^9Df`Ft7OmxhiDfA z^wz2_>||SOfFQP<#=&VF6>9w|SF2a9SHtS2W?O8X-C9}AaUryxFsQ*|wUcz9U*1T- zbt9k^H2IU3N&q#P5;?FPe%jYh*DWTrS4gE038q@c1!Uin_Nu9``PLZ#rtDTZu*TFH z_g#}wfCwdN<2K<>0Ie8MNT59m*QQmmOn^@=C7$XVM7pqwS>Q5wJ}nIQie$xE$pR5QdMqhSh4CV4`Mptv|TeR7Kscua7y-KPq525 zE=Nu(rl(?d1auiQxLZ<&d)YagUN6d4lIG$-s8(v4gqEYKY-{3j0EBE*uCK4krK(vJ zw5bae0B_4}xf-6`et9B$k|SHKS*@a}{rcQWI9wZ~F0_5vgG17SrxFDvT05?yIZ`k= zExShF5})#`Lqkg41!zwFat0|9E98OYp;J|nk2zS>p{O;b z200!m9;sA64xh;zg+YwmX&FkC7BbmrYD?n<)pyWpN>INOs3cMoS z+{pXM_M_$S(~rW(;iWnajuB`jb;Pzq_x}K8t?Lna8l-}1KO zA`vCEoWkMDeU_007CKZ`wB@%-46asrH*oNeHfHfOk1604saNU%+wD`>_z%A%1-0%s zRP@pivLmdaoDW-X5-NJuoiLD|I}}ipz>>%6NI0x*Cln-*9)t=fQ(gM}@*9QPwm^az z{TZQTBC;!~U=@~!s3&Tjk4%`6C;?DMAQt7Mta5=NO^5+ltw|dKKm>2!e0aB|D`ZP} zMYI`iAaU0j-+u}6(Fx4U` z+gq4px{AW;c%J%YGD8CzF^C=|g-0E{2Z-^m5Oz}?(GW(`G)pW=Z!@%s3iDG{Uc5kK zQ@u&2d}0qZMBCX$I9oINA?nh(R-iAw^$crVN$*IdM6x0%4EF157pdtvCZ}`78{w$} zv^(@3_}cST`j}9nC<&CmGNa;90I75I4-ca&JkkXy$zm4lA#hcPsF3mi1z@DtsUb+E zX|c&x$_DlnZnVfmoM0ZMz+NislnqV5 zlS&$7M%K&(HP4n+V+$UhlE}$kO+&>gQ@E`uQ;`8AguMAu_V#F!>ej;FO@)a1)0g_h zwI`1O8AXjjpsRAPhfEWNr;3yKys>WpR*D-=4%M1S6meil0P+E7Y83Q6@r*@ov9v_G z6|&ungjWF+hqY2@NM#|uEsY5Kju8~ys>i2A6G-W9f-qwzfFLuTNI(RFC@4jD>5}Bf zh`Remd89-2>zM6jN9Su4&j~6(2pQw}z7tvyMnrCQXJ8{^uv1jzVz*{kpsjaw=oq&B zSNP<(NMJ}UNo}&U@pE|6vc&wpGNa<4QC0@E`QWxdQYeVlHCr?Yks`Qb$yF7O#g@Mo z{vaHg9atYFb73nr;Qt9Z|T|GByvk3S7j?O zJgc}oQ~}4K>9!+cq*mywYgCdW>B!uQg(zq^)2SeBQpaA=de)j=@|95K--hV)0GIND@t|34Jp|H z9jwX7^7Kh1L$yHLsn}sMNCvGiNUoj~Q0|C}N|R7m*7CUQfAB8DL; zL)_MzZ?-&?(M3QMmXRS-a2AF}ZdIn+c>J*{>E`C8`33aNUZ9Si2d)kj8$yfkL8EBy zq@+TOC>S0`r@bjml^_)6+gXa@-C~hLF<=yi-?eueoUVAcu-h5;s!L@J#7>B(E0zkZHLlo%}M`$duAZfNPuA#xe`h$s9TU8A*k=!yFsT@1;DnKOm?oBkr9Dz!|$1Fpr8~bEr&O53|@|f0W-;n78Z?!k#=ilEOEO=7itVzyE zEsz323y60BlTC#{r(8iLCvB4tuBvhpvY-Ggq5jJX&{mYLSxjz{yQ}LPTY0Wvbhf#g zb%xFbhu4xw;~`2$oRn3MGg1695{*jIC2u&?5119^d)VIJOqO9J`fZGXWs#Tw<)j3G zw&hiTC%NconZ81sVnT+KX=!|qb8BL4be3~)Ats)&4&H!fJ8?x`WE1f*soNq2o_3ka zO*Nz~<_&T?^@0mcQ|j+wG^5~mNVqg%!ve0X2^;U!cfw=3M2df->6R%S@z!o(nmcFo zn)-H7jtB#bmo#Szpaa*#e2g)1lf)2YLhD^t??@&)AFb+|9T}7~Y`%(tx1{p?ZlaW- z-@>?)EL^t?qDDdL*{hvi*H^LhjO}k6_2DeBsezd7#JZ^pcc)N6+!}$GLm;0cyIi3t zow+e2zSNsgZ>nk|QkF0S*2V8cm8$LV@_%Fepx`k)*3un!O&3-Xo?pFUd6IS`YEqv0kHJj%fk@i^=1be59kh|$AVr8O)d;5|%G4nJo&NyL zVrh^8CD)W{8f3F8dQ-EcuO!EhB>;`~?aS%M;LH$!({&rvvIvVE#oe$USGz_I+&1L9 zAB*HiOo-T`tfyL5y=ke=@mmZ;F6Fda zKx9N>tXY^HgCB9ztud4jGzs~p_a0ZZc+9@EsH&ThAYOui)QVvc+SkNmk;`>vWz+1g z55(X_89*d(X~dt0kfEqKSp+lLFuJkStu5k#W{KlxX}yP+bopa>R#Q7nodYky zv9C^%p#Z0);TWuBYZmp2os$0mc2J~0rE5wuU zT6<)8dNMMgo8IUX+r=YA3=e7mUq(gvfIX@^4e>|JCw*8e&@AG}6Z;^STh% zF2+efp{*G8`F^~}+&K0~**ZRtqZ6nS#`R)USD>j=PKU19E*`7`6~sidB8b*8%{lGN z^`(AzIi!ubBsXbv^2Ge)i_rMGhKx{^A*)K)==?CouXGKOcTyGM6LOA1>&(al5~S_K z?X`S+WT-KSC8l?pSr#zDSYs~FPF%Sf*XQ6y5Vb*Mv#e})kT8>zN~D9h;??&c<$-`C zsEHAf%Mz0Zr^X&aoPis)O?rdjiz1VOJnpg2A$v|-VFhY;>Z7K^?Hc77XL|E*RIF$}nYRWr!<)E=w zw*jGqqxw+Dykd#X6qXer*Kxn&gxU`1OPL{gJvpH(9MgZKC#O^KtvNaFqyP>Akkqz{ zW>{ltEJ}c|uR5QED4^&lH~MRXbJiw z8Sy4jMv0=ON-XUk4pDV_o=h2uHQaO^Pl*{mA$AyWsI9zGNj=o4B8ov)nAEp9R-~tN z6*Z}-`f=Z?0H!NaqxD6Wc0cBNm7C<{dZli#qxEtzo_lWQ7uIs#i? z!92;Y*j`5+qT1QF31vgYl^|7LgX7%OupZef;oX#X=JsDEYZv;ihx$`mux%>n$>~dM zUDYL32ApAXS~`mCcgUQPGN7g#TR4hw>LNo3nmdI68dK8-yBdldkdQkyh3_jfH|`N# zR74yKhS(4W<$&wgB~+UoR?nu}Pbs)keF-WjcB(h0)B?%9K4zX7QHkcr5E6MT1)SFM zS=-6R;#EU3yKz7bDe=1v`_ylUJ?KvDq?TExOZe#GIz-eQBmi{;){JS>r|QWX=&I!- zNuh>yNXSynPE~bJvJ@8L4RhNoSncaN~o#a>}h~m40lDFV@A1Q3*1Sy(~1(r{59NsRKg&WCt9tr z=BXjLEf?<)kQ$3lJvS7mjvDhvK1jJZM&X)8^y5;>e#?7`n%8cg7yt<%(y$CR;3JKf zjK~FQL8{V#?_TDZB?XBwQk9X3V8E3DmKgzJ05ob)9~?JAlf+iq-c2v99MOX;Db3kO z6&2io9F4_AcgR=?1QMdqmvUnd>ICKLD5Dl_%9SL4pM03e#Ki{<&CjPKmePH72{DLU z;VZWNdQ!C@O63)k&6sopnFr01@+F1tC7E#cFur#GA zKKzFf45@laC81~o9wFJ5NdaKW)HK^|i%@)y9xzc1e1USk%LMC0qWi$*ClqP zdtb*{KB%0fZX~hXay==;*KvlU)sF0j#Lpz^_vScKNY~P`l7+r6h%+98*b%l@VDx4g z6p0)$N9sfr8qlF15o*_$Vmgt&*;zZJ1f6f8HxWYx(1GJ(N;2`-?MjBB-+tL40)lL& zGqn8ubLstEPU#|4j^u&}JvQl%*2_6osODc@>m_ z$bjfahf3ih)h@fc6Gt?6kH#rTcZpepfy$ITY7HtXaR!nLbLx}GL@K<^+BlBg`0vKQ z7f@(+743wO5P6{1^g^cU=+mnbkP=!|Ly)6T^*o6iVL1q8Lf=z)e)Sy_PSmJ1iC`Y2WdMFP zuP#+!+xH)KTaN0>kCUFvmRn;$KyQJzA?QdIso$vErep@QvQ2+)BxPC%)?fzaM*WTI zKc~wH}Z$Ix)kfMQ& zE7bC)*-X5fvBvqShJ#U(2aXlDw6s@*v(`RFL<5qkp#T9*{Bpi1o{fez$-P(0w$thI z$84!2F~-I=ii}4twd`neTs9cSRCjpu`Fc$@b&-g*F&3@FXdXUYD#3^=;a-_h6xawy zuAS-1Wsw$V0;@YED6Bd)I*J~>urj+=H=50iLJ;Cqata%V6|Fjl=tqWFG8(1^Be@ZO zs9qR3PA=p0`0?Zy(pEiql{*pIzlPZH*hm39((Rr?Z{N_iON9azZX_Zh_<3<6tmK}b zJQ3WnDS#HYhT)`=DHbk6m1-G>UZipTSz#lS6S^EF%yNmXpc1K48IX=-_B-s|I&{d` z46kZmX{XC|Tb8+jsa_?6Fv;kPpSlEoi2YgqWTML`=DKYkfT zx~M9#rR?GTDJ4}O5EHisA&11i{X66&3F^F5iB!B~hB0E1ga?ntYH88O!hCW=Wh9=i zYn@)PJa$pdBC+Nb*ekC<3eXO_?Tn;QKs{go*7Mos(N~Em+sZm|U_3YNnKA^p@t}m3 zCsQW{5~F{2+wAQ@LGO?zlYPlgq!L$2As&oKtYRmb0=+@&TmVwhBXqT^hoLBs-XK0EM}}b%l}@ zWi0$tg($1BYTnk=mD9dW0wniORjJ?0({WMp25OzF%2V_VbibEAo;xs!9|R zd2T?bLPp-$H#@LB$e6ARI=GkW$`q__NgT~VQoAWN@$L6wK{mS%YyA`Zx`dKfJS37W zooPqnwAs1}lfE2a)fAK5p(;gpac?ASrYJZ`9o;G!k@@lmuNsdYzbrd+M-fDNaVx`W zoS9sOH$bHjY)frIDN)c+@8OY&C?c23X9UqlYdeW!R6J91U(;Yf;0UNvI%M}Jb_m6_ zw&IsGh)pyuQgE~ZPTWODVZYBS%Me+`bb50tdPoe2B4!iu{{VL|Dj$KZC=YI%<6AQ( zKzSjrthEzmaN2S8=T!@16rqAOXa!7a>^A#N#L!|U7=doFYt^`3b6c6@i`Bl8-*^%D zl6aXvcn8tB-`gk0XajUyw+}0h1~!38M)0_)9Et0&3=Z1>cga{;1Zp}?99u#`WnhuB z75h6Y3Ijk6)b21C`Jgy)mepqlJ7WP6b2Vfx2gU_xMGi)*b+iojhFPJ%fxSkJTtuxM z3Q1B34_ep655EB=Hae87-HAy?Eb=>@2H|f4hZmf1fgKueYw=A`3egi94;HVpl5~LDGZSo?mcuM1O z1b0#i9w3}SSc>tG4aHcHY7XOL*9jJ#(_ThUuBekCDvH5C@g;#YAZ#)QyOBex1ukTs zbsmz(GM+15L1yAN;@|+(1bsVVDDzciy^rf{5g{2v6^4d2bJPvH0BCkOA>^KX+J;_f z9mk~5m*w#C6i`?zSDiMXsG#YBQ5{e=Ty2$km6XUHgw*^ae-8fuJckUKdP*h>Urr*X z-7VxS$C@ICB%0KbvFl7E1W-bYc8}C6RiOBdTAb_lXr`;Tq?@5yWR*o|=Nn%3}QZ@LfLwp2} zm39XRD=H&qK_0Df6mds02~+kN>R1wMLEKbr{kc96QDrlWRaq`QA4Q{*h5a_B%SufRXoNv4^;wss{H6uI)<4f;4H?@aGatQZUsuXO4oXBcEc%4_)35h9Y4r0 zc}a|M>)O7jrOO*|vbjh{q-qcMu^=@Sr76>U)Nfc#GtO^xEhpGMHsUWX1 zc?x#}F50cE-K)Z}GtVTkh>MWu{Q1_K?0XLkYSzY;Ke>?A2K$f&dX2I& zi7bTcn{#MzT-+Iw{Kv=P5EUP?C_!QGh%%1FfdWN3R)rvrD~pK0YN41AYHP6EQ?bXN zFrG;)@LXER2vw5KRt#j1uMW+(f2S+j`A@t*_fkU{P; zB$)GO!U$nnjCzgz#QGfaOK)+hM=Uo9X&3LpRDcwdMN*^y)fM7TQ<9cY6T!16yS$bg z6oM}=6^1of?WS4cW<#(PO4QeG_;`R8)8T+r28(@uBcA5p(cvd3#LlZLkSYPCMFzr$ zB2OPe%mA3#!EYL>UCA0s6wo250BodusX{vCfRnf0zJ9z9G4-x8z^gwdx<#EP}h-V?YI>mA=?K;g%KUZF`JrAWtc2)8iCWq1#Fvr6{{Xz0LPWCA2_Q<)HAQGi0-cZFmKfAl?HVpMrBaaG zTHG-NCCL&w>(IcU5PH;x>xr2G1V%wleK%6LRg&{xYeC2Rn@Cn8$-5q6LU6>Bk&C8K~H53A!`s5@eIH(1%+%%ga}mVgi(iftW~R}rj;b?fxt zvKees17oP^;yIcYk_K|Aa}pEFkRgj2ZPTIpFo`cFL1}4q0D?_4Nj;QH%hHv2fE%Dr zM3Ot#CJnHZf!P+2X;;? z?tT^|5LCBgush_q0|H8B)?BLA>+noL^#COCtp$3JJTc)~Bch z0sMOi;4}>P@Q(t}0e}DiK#x}S1t6*CdCwgS@O)3Jp<@8>0vVWC*#Q8Zn*e}*3;^(C z3jjFX`F9x*2VeyLS7>*}ON_LOg^7`oiG`J!nT45|m7SH1R#@3DU%vd`b@eJI=hds% z`1ts)UH`v@j){qhm4%g?ot>MH^9m>5|9$ZP_s75808VClUHVA|I!*vRCmjPP-M_tn zE&zam?!Q7);C~ApJp&NH$aLv{YX3j=GzDo-7&!p+^z?KLKn7aB|GuU}G?dS7big|lKX=4e|Un_A=Q7B6b;mF<`b z&GN}SSCWHkjiHG0Q%8BW>};irlryXAIA$m7KM{?UzC<^`lj_-4 z5j-_JIXO)17IS11y{&itwqtpSDu;`DGww2aL7@64#0Kp&yx5q2)&4`vwc}gZFk#Bt zDaYE8)av!ODxtRT3fJJQT+OL`@dJzBJCB2WNucZ-w}ejwShG)qTPOnEs3du2yPO0N z#>_T5L0trSo&M>iRI}0rfW1dacG2bL=6I<)mA@O1?Aw~dex{_#=m~NT0wcXShI;7y z(x)i$V{S{B8eX;#>w^)kUR#~2O$^)B!4frGS< zp}jRzb7Fjw#I!RZL(A*s1atVle*c|&_*1V1FanH`IJ)o%cpb7eMix-|s`J2N-ubNF zMWbGS$N^k7x6?8^(6KQ)R^4W?&kV`bR~+dgB~3RnTt*-{iugtNDIIjl$w)jY9{bi| z1R0dq;5amM$vN^*)7E;bbCI`~Ur{F6myKvT1K2m`QU1Wc7b7?;>Sej*FuYxtF*`oH&L90QpAM-rPJ7M9HTvBeA%?Pv+meB!HFW9u%Ue@qIV(Asr&n|@ckoZi zI3^O>Tb#Cb&wreBp6{$ok=kn%IuM*zWWp>iqgk^2)IJms05-~tg~{2Fi1adOZ*l<| zvKzWEd4BN$weK|_9E4pVu(n~q7PA3{V=tOuxoV6&fcjV-Ckv$kKsi#_hBGcF7Dl++ z*hTD5#MxOx2C{++Y*izd3*Ld23#Q|sxxPLUd6bd%90XJzP$npy-CbmSSsuh$1#Q}% zPHniQ>@z$9ul1@d56^RA)5x27FIVm)Rs^@1cefgU5yHr00NkX@#v?FTq5@|S@}t4q+X73LCqI_3)46j@bl78mvU1al|<>qr)!hqos^Yb0P^b^CLF+wgR6LbJRC+d`8e`c#3?N~Jtk!gM7ty0*ykatQp>1nJy2S*c3R)gJ$FOxA=x_lM5 zQId#EF|Xn~-W_XcKke!09ycs?y5$w9^4NQ7Bt!6iOUdOlimFx%>HIZzCjVOtQI@$S z?o6e03AWl(=RQ4LNhF=O6)fWd`c5?_v7eN}?tW6)x9W0Xnokr49K2_=>aCY@M~j<* zdw_ONI(XP7&CMIGJyv@IV%rSwciAEE^qt%*K%Ia3Jz6B>+#yjIe%~|76?qv(GqzaG z^f8@ZSdOebKLiC}9=jf+5PjP2m-#G;SN7z!TV2rv{gW#^dc#7z8usFQ==~x(I`;)8 z06hbquBWbPdBU|y+b93{Vn?_cqT;88bi&rc&Kpd?qEC(V<^eDGm78+iR^y^jQO=eA zu}f%iVz!W>ZD2mOqY`6OF;kEjbpl%_j1N=l5!o9F0Mh;8$-9NHIwN9<;Uh|oF{w|Q zpC_A6kaNT8Ue(0IsFfK0ABC^;T8riLk7{r2JUrf&0!j(8sk8O;6hQ=oQLG$w&0z*) z6?6f@$K2dEYzITNcobD806p}uD!9kUqmPKAbcCtz zYO<~m#zvxI8F#NgU+Ih6r~6;zvqz^?r_T#^x=}CcL4rI0hJ+MzbhN{)vT}7>7}^yk z-Dyj;N*QT@LEcKm~fPwM?;m$+-K0^O&(2T?Lx zb_o#f*^%mGc$oR44_kAop~9Q>dR5T#1>6iF&d(0dtk3;~Zfgz~t#y`z9(h$k$JH2* zrW@WdGA6F&SgC&N8A*)d(F;l|L(Gm*MuXRJN|R)LzcmLd&`o&>`o-+y4?z0_g4s=@ z(kXVuuNtiyyr>N;1>z88eI*NGtS$WT7#7M?7AK9pWTVR&+sQXJQy|M{mM??>->rNS z&VS$ht-o5TSK9J+yq=5+*K5A9pPyWIpv^EJQ5oRY-aTQwn(V|~2p{qpn?)Tng0BjT zEk`Iu!85d&EZob&p}RynrV1D;jKt2d1do6C?79!(LJVD<+* zYa9!#bOYHv)f&Q%#I31Mo?G`vm=r(KRnaG zRVHpY!m5l6;TkvMOOmrAu4nq*D-uhFD5QOz+p0zpYhlE^dY7>6SC?ag*CICafnd6* z%N+p{-%@isaMv*b?M9-r_Yo5v8E!r9?yA=5?58KawSobQ8^y*I@z>u1pLs++g#jS4jO z=8h*`SSf~$TfG|VIEGcfsIXH1&&Z*HSFeqkdqVH=^w;7L^75rkEdn6NII2&!R?yG$ zcaAbE^)EoOFU+|Ha+H9a>yq2iqtB|X_y{GeVs$X-YcFTyu z=o6jS=e7l)*9o_Z<|`nT>em*$BelBk_BUk7BrpTXvxg_Jwc4St$p^Pc(@&(hXM|7E zql%s~mrj=PW@pSYxN9N&+Fys(U7rg@3*4#+YqQ`pi+_S?^VhFZNIS3!#Gbr%57%F! zVOBr)Pr;{yW@h_G@GwvKf_#X(n!IseWthElt5N|13Js#TJUV*=+H;kWmk`UGHP`yG z*DIN2eJgTK%oZtgjhsJ8xeY=M&|xRt1_V2v`_fTbSCRT(BsG zj~*tJs5{Y5%NLlI*P_p|t9YdhDUGwFCiiA!>h=VJ4>k`%J|TPhm_~TemcmD*oHDN;f^GP81D!5*&c+nCo3zKCtkgH=emZ-i2l9pk0xqd^^(Mb7= z_qwuQFEA>f?{HPG z*PrAeWj1Ea7FW6$NdEq6d{d4RUwp^PQm|$0Z~SxbwbN+9Q#;A>r=YFsUTcPTT0-|* z{Cr{HIN%{8Z-61CHTwx4cBP2WK0y{Tq*jDiVpIZEOG%_xGbm5!*2+YvW}dH7s%4lK z4Pm*@JCBhIqFjtgd2dwe+NWROD_k^GDIv$6v-t8eF;Y&D>hL*I=Rt$`Op5nk9_yzM zS5(*3nL<2xIKKTl?pqKSvGtagm*SX4n%f5083&E-pPMz^)43BA6`s4#9p6mKm|lPm zCkud_%$Sh)wg{S^_BN2m?(xl1edX*SrsZ>3#p>Q_oC0M(ql>7T&nBK6H2T47-f=8T zC*nlgy7}8hOprib@Ou_!oLETvPWaARbX3!{wvN-r*g-6}>rIZ8gi^F7U9H;ISjYKC zrJN{p;-m>8?rxV&@Bk0#xGhiu!>8Zd{4_8mN#WrD$e~vXdhaWktpHc}75A}k110EDGW5ZvK1SH`4ztna z@fd7HIRIRZF&G){N=zB?_04y0T0JOyGng{68!}H>*r`-Ozrp{}ahe4&01B;MscrfB z<=7lWZaSFj+*}^eIYu0fch@KV z+>B_H2cWOm8)tFx9Q^rY^?;D=AWE6SaHHdu;6BoAvW%)p#G%k2a z`>AvTyIk0wjDoiJEep|khFH~B5}}1+Hsr`d%4^AqP$+&lRnVQ)Ja-&1GINvb2DJT+ z3Puq4%*mu8Ss&PWKPCUU)WOuc~U20Pwy^&NFX8hUyWtuS`6DLg`{_m-?e= z?kAPP2#F_Kkrc+MBA(+np%auRw(7g8$Fy}bm46)n)^WUL0~1mocHDBGC>(~9c_t0X zx+!XVIUt4Ao1Be{$X+Eh#9ipzQF#Ya=DyV%;-4yB(lnQT-D71hK)dsCgiVwuo63 z^~w99k3Om|uya=*sHS?mx*oeP&dAAG>bc!eJE|f!yYlmDf?w2W+=1p*4x}_ZJy=`6 zcop2k=9b_{T-)+^BCl8;aKKgNEyyw4#n%Vx5t7emvH1A=;?A`Sa(b{@-W7x^SDD99 ztw5Baypr=mB9M0KZJPa!Ww)v+Qsh@W^L7R@?7Banuir;IjI)Ya6q;x9-CEkXa>Bdo(N7eH7MFMQM zAU(-$Xn&=7b+_g^u4$L+9R{}XS-0T=^x>+NtdmnXt;TsH13O2}cS5|%_cYFkWPfoR zJL%NzgZ@+ZgPqDdx7s9}i6gELWXC8olKFEf-)a!YC9ED59Wb&ctJlgzyG${x94B8{ zEF)XO)%;a)-h(Xf`Bd2Ny!6R&yJnsr8^_&Rqvl$3xCI;7^9NY(@=H?tT=TuuH^s+a zuzN`>1A&je{Nth=*6*^WIzdU*Fie}Sz_x{XQl=eLBHVYTVMPVCuzIyebAZWdvT!bG z&CF{VRu4x^gT}4$#yXxkDypv;qZT>HQk3cdTzC->vnu2Q7QD}czwg$kVLIIiUl5Tg zXclNw$g9&j?WK&h3vHW@JdYads7t%81pbzs})%HdYoGnR~f{9*H31ij-E>}nuCIsfy{m$ zpQ5#|2z3St+440;>}*A=S2n#a)Ulx4uaK~3^9?MbhY{L0ymd%@TXQ4W$Vc%ZteC@j zYK0TWe!N1tTGGD#OKqL7={iYjfZyVriZ}lcdD~BcAyaUpyfcZrmBT+jo|JeVnzfWf z$>0#k1XrVKKZ8h1eIhYj)bk9Ci8^qUKVAk!MfX~K4Boy_ABmK$Zn?t0%jXDd3%mB0 zaK6StT|)DAv<6RG_#^*&!o;y6gQ#6n^9KguZ>tjR;*|R8{NVZ=6YayDW+tt4$D&dg zF@MjnKGh+Gixk(I=Vy*CKC##}Y$Y)I{5?`R9s|MMmxZ!%qs`@I@G`Qf5lxkQ5_i-B z9{G+-P!t_1~>zQh2QW`?nk$Pn}Su&@N5!uwaB|A+zvB$Q9hC8N94 zw`3+&72nshzV+We!^u<0{t!cnqql~QsrqFhZFaCJT&ieC9icgvvt&CtV4mogS8Jc* zHSds38nZP?sE7M`uMBmBeBODpJ{59LIzRYrHWQ-AnNDsKQ{K|I_agX&2EcerVK|xi zS+kAu{k5)};Nb&pBMqUjla*Gf(13dsClHd<-XJ?;c&74|#hYCoOH95CTX+Uiso618 zoSsqTNz6$gKH&#T(+x=3hf7c@5~1fa!y~Hqvs@F2(gSQBynq)8!grp3kBV&bqo@^W zOi5u?EM?fY`bltKj6ID%u$l+#!-gOQ0@sZ3yzDhaH&NU<3E2slVMeN%QE2UsCB(pd z*sda2x(8^sTmFKFDZ`fM(p5T)6s3YU$~Z7ow-si%KSylVk5i_uUHl%6weu?vmtk|h z11oR;k-P+l!>bqN@J+3Q({Vi5P2K^in+7)pQ;ni!Xb!N*=@v1-N#(2Rm@Ta?1MYg++kmjNOn`2*b5NUPrfD=?)eiibScCvhOj z;SgMJ`bFZYhOlo%QTPO8_&E8$005=ZzA3MTXgIr?YTI61qI$9(+;%Lv^wsW4Np#?NLlLi3q^a!sdflcl3J2{ zk*_+P0YsK**y~$wIP}{=S&scDsgCh(C$)-t>6cbAwvhfpzeXaB=j2o=Q&`O*MUK45 zla0dxxkiT5dF8s0?gR0+;nQS`Psp+24Q$!1h`=E(ikgt>Hoe1?5xw2!0Kh$b^fdDz_fM;b4M8)gtbB@N^)6vu4F`I_oM zbZr#HEnx`6H6sB@duo6xgGfEGA}SmU4`-?nG>ykneV_5bP`jQ{C^~$@jk%rcO`jg3 zH+d&dtgc7NKt|-Ps>W6+Uogo2c{@nFZ^66_JQ@;j-^aoVTk*+EY`Ye@D{3bXwo=8~ z02l=MU8Jh3nDp*}xo7EQ3idV}DzX=QJw(3EcVtqcffQCJfFmAu&2I2(FN$MPPPwJN zfe9%=?!yMmXXB(L?1&Xxk@R!Q<+aYHt375f=xu#?o?B%5`sW`{UoQ6%W$DVnGd?j} zGc&pt*T|%Rd6nBQ8=2f!;p4AtzkefSL$FS*(-W@BOp+(#+TGs??~ z{M_rUX=I8=#&*)DFqGIY%}%FYw!K*-S++e5fo!?A_!I)9nW@r6_q$kn14c0Jgk230 z3YKz_VpYqNAZ2j}vRz;Ge1ZR0@XSQiO9*LPyU7nB?5bYeEYAipce4vAv4eQEkSS+^ zQ?jv7rsw&6d@VYS)qO}wIQrN5LKa1S;;lCe8j4zds!GM_^zUCj9%Q%*%$;LXad0PO zkChhLHQE`(F|hNJmV&jL{Xy+}VW^^4KSs%yIU&g_RTihb0S8uQua)WwPv7&j7*kJ+ z-1{mn(OoWgV}c3#y4t!Y>ks*yE0X-iD6iEZx^9e50EKex+}iR!Bla}_yhS|5BHtu< zO--`yaxkkj)-8Eaf;ZsF70SmbF~Cjd1X*)g@3q^!XY~YD@->GdJ;~DuPucPn;1Ql9f7{h;U8VCp|_K zR8B&c6(`$hj91?cIqw8jpy^YjYpgPTXgRZx?A^8aQgbxzWQNbJj-b}vz!l0h<#Ccd z!=J}|;quK@V{a{4ssNEvx-B3PZhck*`)d8ceQS#kS+lEMJfN`q!{4k7gyaLqyu}=O zhzP>LPILvO;tBIJh`IAFa23^NwTbSkXG~z1FDeKK!#vDEZbzC%4@?j`BdMU?M~16NLo-A zdfWoWrwkk8K@Qh!n~j{Hu&1itt_||%MeWdA&7h7ux{r2(V!#N5L&)-o`-u54Q`#SJ z|0t3Kbw9w%qdo?wR(e!tbKN2iky>w{*v;HtXWI`xXZSH0RoiHJ7#G_7vO(SoAa2IeVdk( zXQusefR2%VzLI!DFlRM(E|!x`CS@zirajZjzVDI;by+A?%yKgKMVzrn?3G)L`N`ZG z?3{jqLw9yc{m)O|ok~O}zi-zJ!Nj1rJ_~UqiKH8&)qlyZ7JnJO5yHHGX!=DH>g->t zn432csa~g^xwx|Uz@SMe6Dgw~Bg4YJwf--ljK~9;JxlX1zQ;aS(RYqC7)nkg+quaRj(F z=M+;pHX6q{^;iX^)^pSKOBq>6OD%BDef*05h?LMyV(OWLELED+hr>;X`qMDihTmUR zne+9ir0OY$CDNfD5Z>2|H?lXxMXO8!IdqeHK`E7#1Pj@ObK*e@4T)uxm zFBl)EXU?;!RUJ{6Bk{16-{jKCY@BY1K!N$c0H+5lpRAknn$!1xSNv7eylJu3(rIb@ zBIct`o?pQIV8OyL^SyIHG~w2soI>uNCF|hfpzY#pxDNHYaaG#4@9+4>T_=3`3wq&Y zAYMyb&m=Mr(KBH)XzsQ@pCRwBjZNFlTjWl-5rl7hYx=DdX1F_PiLa%gtvyNr-gAr= zXxj_+8~hvw{^R(j)`$Wto$D`;o`!29;MB$;N#kZ9vpyuoQpSB=<0i5wKGct@S1)fr z#`MC&@bXewM8GW#67us^l1tQ^a|g#f!NQtu>YL|k=_)rMS{a(RCgYt%%~i3xs%w_k zVBR->@I}uBQ=XNSfxwel?(p8^ZRHb<%#>b&X+-Z0$p2yoc>r(S;{LL4bGh+J{KgcThv#I~N)>2MIrwgvzdpD#Wti&?+7I=j+ zpq?R^UVBUu+92)}ml1^pkw|@%OYrVs9<`BT1!m{))8ltQksf%ZExZ%*5l=7udy4&E zfL>70%*{4Yj%KD;*4#|uH(CBkuGVkGJQ5Dupj-tPps_&Sra;pB&I(`jqYjceC8 zV%u6R$1!lvnR#UANA^&S;%qC=D1z0ztBSL3CXh1;%v_^>6piEKj}vP<^Co+{p%xc^ zfrRa@g_Ld@W*e=r9)9S)*z#Fy#TAG@cVz~3b3slImS*uuY9iqxnY>uk2%j)F=jA#R zwt4#q)g}>CV)hV}HzAY%Dd@XtDHQB|>82-T?FXbk_vb^`jHbjSkysdt%22(p8yABw z(>LVMBa=O~#9m$#<4r)bdsX(XhYF`)1NwZd(eC%*4WYY*L+Um$0?ol8#d;ydX!#*A zHEiJ3;Y44T5<);=-mXKI^ZQKN+?A^uZV#G1wYOJ`9TS@u*31wiD37+{aD85gA~vPn zsrO&Hp<&~TbiT~oKQd=!EF~c$OA6bZ7P)jQGai2&h;`YiKDo;Kx5^Z(;2D=-A z(ax6T{pvHK8T;H!NHDTDt(*adnCrd;Zjx}@Zx@*UmEnG#l2PZCd1TrW0||v zckS?1_{vs}ydlpzSF@D8d`Uk-lS#VUkzkhI$DUr%$%Rs85tJcseNRbsQZI)nC|_8$ z_r)(T8}<8N);uKSc#}_`LGKtybS;^Pz?79=W$B`-=R&W^dV7;HOR=v~gY!X|I8!xV zM&z8DrV#E0Vq(`uHTYv0{!bN~;6(|w-35fNEawnYOqL$Ol=-eJ=819I(zZOATqDMY zH0iU;IIQ;oq^Q_!MvaHC2_FNGib7%zk&KsUCTn0 zqtCGb)w$JYB-q|hF@M-lC`p7i-y%;*&|BCjk&W$~Ev>2yBoqo2U%FCbPAo505*t&t z89;nIiFZmV%xsz~;DVa<=5NGL<{=gWfjauO{d)D5H8+p*n z#=-}6Z5 z!!3zX!QI`xB#$1??9HdHMq&Azkl;_02>nfyTT9M9ZP~M7-%sX$eEB(#+hwMTYV_G z)g``7t!JS#&d`7$T($zHU=F|gk*{Z%zdq`=!|>Kg*S1IVJyx>-(=VBunIA<%9vrhC z2L&jtkwt2UK?Y^RbsInb1?2SRSiVh$itoJpOra)#CU&mzE9O@QJ4aBPlX#?&Fn3=yrt|D}x?}h2+##tOb8yP| z?S*T{ZydAEHDqZ{+`Y_DX{uNgl-$+c9)TIXH%)UZ*0=ZJ!eCw(4nI{@T@n|6Ql$P< zF?*@>W+aT=y_8E0ByZ6Fm!ND|$1xPqKOptlQm$@bVCccX@0D;~j~jFEDe?68X^{j} zvjA;vXk4oUx>NAasrII`lXIZb!QeOp(bF!bsxULJR`-&1og~W;j)~F=RI;YhQK3r; z^=e7kZpzDz8c^#Up$JHy8Ed25+k*?4AYp6KO_`7dt+bDL8Xn617vMIP-=VuuAznmP ze}-T!Ayy|-K8RMLIcz~V5J*M8MJ!|bw%wUW$>k*)l;|`^U%6g^UN^Omt#%kqnG9Yb ze^*FQ=>DSnT6}SHr|SBjJ5xI?YbY8Rxgzw#0&()ZM03?(Q+1t#%S?V0~zE%_t^Ea+rCHmWSoSH=f;aTxHv&!GrTzy z`j=7Er73OmO654!BoMe%1&D>3iy!LKpj-^sL@PFVmlQO$c}r&y6lFT;tZbLSXkgH1 zdsK2%`uCmBjxT4Hvfo8P#WSfWD_e1VcVl9r{le{|klA~@U(hDC>eg~GiYBFXABh$| zlQkL+CVQrDij{2a^*4-s;^Ooe$jqNiv)al01R56NM2iR9{ACH!?jm2}-IP>P(6(zGa7Xn_)XL&w zvw*l`>`UHc@yzCnS7%$?H}pkjXVYl6SSG6Ysh|Hm#j%}?sdP$u$x_C%c4J>IKGY2L zEfo)}QRppmM|1hXwCtZD*ucAs7Ih_2Xs5w`YeNE@N^Sh)uu7Y7y%2#L^E16+LyZ); z`fLIX*u}_X*dsOBGQyF_S~9PQjTNX6@;c=>LYyQymfoRP!Z|r+$sS5=Z{rIe%}R9@ zEVaZ2gQkBZ-f>kIrdDq@>2ye5_a0F-xgY#%_ zr1UDeJrFTj92R39ANbHq&|GI~Y-~)>>7fbME|>bj$lYpt)KY17i4=G$+2?LlEArH) z)n?ZO0T}?VXYbZvT7^U^@_GG32R_WHfetLlcUt;qkYsYHd!1cAPPE$nmq~!Q>9Xb; z)Gy`=d!pMhekSK{Htu9`4@34aDW(INE*bol-Y|3h#`=H&(*;A`>Q@u2GA70~lso5} zk0f5Ts(G`8^y~EW(h%#Qb8P#jcP5pUh|T8ok_`c&dDgRfam=c`#tEy(0z&cpAu8?* z9?g;i9@ND{%lluVuF7gvWfm-w#y2^Wb_vlQ9C{zQ;8dw4pnC%g(Y?nglT6Wwo%bL_ zNA&r?j71!{WS73nCUYd4W_F1+iGSovaPHwjA5a`TK(yqbl}9`;=wG5Mo$>y{p@TuGL9!o-n*qmc8ONe4%~@ygkv*@0 z%(8I>!y)526GC}qpna52lqa%qT>QSOZnckJrqJibJNM(JHhJTw7CjuWCGN0?Mc?W? zen^bT=B?Grcjn8q3>`_V%kGz?AL#U_E0eeD64nlfG7FSkcRpze=G@+Bzq9qM z9~Zm}C5ynKAr8iO7Ae!W$$wigy-|iovS)pq&Kg(dqU_|eu z0Q(v*Hc1W4!dkkRFkCCvcFTA`Y^kPMf9{!AU<9Ht4$W7Q=l7a7Rak-z2P#z(FA%WL zrk&$($zFU zoy?%hC1h!7if%tkSwwA8h~->5|D?IFjxG{HGIkAk+4&EWJiVB^4Ggi&jd7}a^}Lx) zx5Oh1Vs4fyR!8vGEh|sL9SaY;ejlGc=Spj*-m6^Jt|J@~JVQX0w|tsmQdi8#LYAI$WuAVr z8M1@>NgThDtl34ujRbI8dDw%~l8nI^=2^oVsL#cJxZq9D-U0#9#XRx<{DwucriZbQ zA(yquf+2^G!wqym%%Ga5P{Ncrfx2=*+xcRz4z2aS_y#4Zs(Pm#<%2*V-i@sH0|QLu za#|G$jg1pjF{W?d#TN-E{Lf#bH!L*E0^sWOkC^s`-Kk*8n-1b=4re7MMkc-HQn5K-Qm?)wpq ztA^{7<5mhsK+ZX!hrM12Jq1slx{lAL41X(@?&;~P!S95?giN1?)szmgb7m*;T3WK3 zf_S#YXVXeKYfScaeiH6FCuS@<3gK`mi<#~6OG8wRIpX|n`-ol|L1rLVPyNlIN6A<9 z^9gQPa=dJyllWbaxs}hh2?~`eS^V-qbDMdWfEJ64RbtRL?v#%7NrTIg%x`&T7TXQR zY}nc_aQOM@T~5#w;>;C+^Es%M_|(*y)fs*pd+{Jtf&vj>S)Yna4L&TPL_lwdb|$pT z#dy%dFzlwgv3w8REt7R{=|9v&Iq{oKp_KdEbxtHAs0+}v7`@e z-B;HFImGp9RE=p&yJSPvlS3gP0D;PgGjZn2UE-3|7bJkQ(y^`(mG5LHbb<21HPx$m zDsMECIg@Ee_u#w3YC@FfIvi@43^kYHiqN|0VrwRwEM{9nb(Nhxbgh*>)G`oVzi}r( zk3Y*Yt(P_*O~%Y@s5L>Gv|=|u(@^}TRA;z%+8jlpmjHRNB$P1uCco+W3MoJm8gcsr z=Z~BKhqNUD8K^ia4}_I)qsH7KZ?`PxHM<>K!uxBv0s^Agr>K$x0mHYTP&Gra9pcKS zyZF=%gXUZAub~n`aT(Kc8LfukUZfv-n~h^)8A5H%gK`lL9K>D=h#LhvUFq*l{+=ry z(`&wWA^)j&eWg)z2pqY%xVW;ivPdw&Z=&XVQGf8;6z7n?CTP4SqL*M5ZpiHs5i~Yr zIGfLvNo^JokR40dG`X<8%3ju3lVm9Nu@C9LoE1B##V5wX+cy~R3#CDiTeqOb-JXPG z-i$ASHw_06Oir(6#0Em!`7|>IMV3dLX#c0Dey)LK~>qJ<2 z*f%Ci@ySy3`%FBMgD*wj(hVwi}JI+{9$Ydw6PI zEj1kKkr2Z7g<-Q7${}1Chj^L+2138{YFuC2hTPekyMH1W?z6eMM*bI|FB2qy|LqX;FJOrG z<;jG^Uj>e)5R8hMN`GXct%ER+4$sJfb4BrJn1M?zTIecgX$kn%+fQY)M@RUM&>A(e zpF?W$)pM%Ym)}S&L%l&tKFKws)S7pKw{O7fbDv)--l3YJBQ4X1vWNfSN(>u_F8wiZ z_;_>iPjX}Z*jTb>v2hejz|rxQjwFXosw*4S*4DMc3>w26$X6C|R4jVbtlwdJG+nV; zN!FY_79ce?eCnuX!C|s&i3tV!PVBKtoVD>&#&`#&XR6TEE zG|WdlZqZ7{4;I;NS}Ypq_cWO(Z#5o_rY~lNh7Qv3HbDk^!%tztSs!96#>kxc#^~z> zV%nzFj>}iohvM331|`4bFR~V+nZH+zUCyZY&|$s1TeAdBfUd=$_k%Fg23)u8?2V;s zB7ctY^ciPC7XK%`LH}QR<8(DW@@>pN&M#p46&$J;n8VOe`%*+7O?q99^|mUR?eUpW<7l7-?{&694miKz0rj=SPAB`0Z=J zXy#b$Wg%SC-}--D2XfF@wJr(#5nbQ~-*0Go{t(Dv(n0t-)37#wcFn;3G@ZU|*v|<122ZjEm&8D94*gBl1 zq!jn$YwvlQQ8uflpBu+qAEh<=Ets`yU8b}2ko=wV=PBomc-GI@{%()Q!?gY}QBs>6 ze^Uv@L!H|1B|-%Fe!=L6hd^_wMz2*96~A8khQHvcWke z+;Ks(%l2RI?T&(TMPjx8r?DRJp^Vg8S*fs?R(s`wKx3iSFVggc$Kg^lgqZBC!>X&ln{R9~AH*vCH`k9SS)ci6 zBmCyjyCEe!u48q(Uu6#XSmX%E_CfE)Qxhs}FQachPxk;ubM6n+4@rGP?>=_}K4zdz z#iKCm3YrdU)|dbHU7SA+Ie$+4?}0$iberBR@qexM|M^WvN2|x-rSGg?{>S3xw`)Xm zw}(zaHpchwUNA@$GiA&^s@F=B5?NylwY-@VtW6C?#p5iX^FIZlHzA1rGWsuyYYdk< zO&@ZHvbWU<7?SdG-KOVRj6_Pl)vtcIRzu8s+nQohpLR6_^Wr<4^pmQYp{Xlpg` zvT!AH>L#bdE$?~LjBPEG9BHcl@B5h!>$9JB4CgS?yFB~ZL6>b7x#I-rAKAv+JS$ltAa&sORrwzzyp_lKmnkPKaSyzW+Y;3;W9@u{P%@cAWVdr!h(wjCZ|R~2e{ zEXwm;@c0&;1drkoSC{ziQyuBrGD|Km+uZBSoQN|jvj~ZZ(=;j z%qfBmeyx}~_e04?)fY{lWfbome)+|5Xa3J+ZN9#bSI)|Oep??&DII(;aun%>VcuP$ zD)_P+&7E^z&$zkt=S}ia<%eHa{bNF8;Hb{A!JFPMbx$(e<}=Q-c0@C1{nlfz9oYRT zdY9=x+sbYtTX(~_Qg^Zv&tI?h3|D%oI!4n^J58U{_`{l-{|lGS9;O)yL1-+roe5*w zxu5vLKMC9(z=e8?< zF+GGZLTnVjiwu~2czwv?$M4&_9%0XNWcYKId=C3{-JKxi1WDg zrh;D{rDpTlg^dq7oSPfx&}%EBo;z#l8Omm*Z}1j62J4ek?yB=I&axs#>&9}37?Zm> zuQ*B<5oEg<;>>hbE-Dt3R*OLg{@*TH)b&~?1dE!c9d%kg8`Q>Z374=}&+V0`CBLea zkoUiI`GF$tXh3nv*>tDVs!OyXAIg;Ry{&>lSgO6ps=bG0U?%r&XMZX~m10fY4Ly2> z1kRehazuu|>7;1C3>Q!RF-wD8S|bQ(S266Cl4K(oM{jwjg_-4>fcO0z3E|`rx0sYW zYzb^8rKIr1P1C}9acyr1hKLBcTCp=c-=s+WG?#BFq8oEv;Zi$U%rLn;@e8YQ$)N5d z?vkg2p{#Z$SE9UidwCf$o__d?|HD$l|3lQf$20x@|Kk$cn2b3uG3GE~h7cm#%-Im7 z$YIVQluB|4Gn?}<$7oKS6qBS9Hs@10R8AF>Q>9mPc*(i%^YwY(Zol7uX3ssZ>v6c> zACK$wxJKKkXBJQQwlX0H%r^qdkloZ3lX(k?j_It;eV=$k@Bu_Ww3$>zt9v3Dts(jO zwuSeTj~(Yf=wJCkccH7WR1yoLS}2G^6IXv#*si*~J`4?uL)dGEy)ed_&m%2LH4Mmx zvxE!JtD%Mcotn&!Bc4gv#~%$7O+wrEh{~U`Z)k3kL{K4gNp&rHfjfl5vz{%EKua}cmT<@YddLs=~4INx-D(<5jGMX@45<)Qg zBr2557|)-{^2C71Z#0!sJgK#o{bIF*F_%ehb&Tqx*v==hBfkeu%Z-g>;xDaGQ>kPq z?yf>8&xVp)Shs^{bhUZFV@>j_s?knFBEHEtow4n9GS6gySgr6`!&Z> zl)}6|+WFJ>S78m=PY{|SQn2hjcQr}=MEVk5L4}O7u|a!thc`d)4$Mto<;fbaQ=&Zte5xg!e0vH$r2QlBikKDD3k8O={T*RRM2IKhuB%xuA-p1A?A&7inCVt z)7kbLH-D`(Fg6NH8H{D?YDPHk_eq;N7l|{O-u?_N9qBUj`GD$~Xc7*5kblC-?;+r8rbf8{;;5v0R!bFK<%fwPm9?9WoGcmD&ksDRnqT{HQ{g5 zXrSn%D3Jx@_g10}XZ(4kV3n8j@6|NNESoKNmv+?6wTK z8&)Gcnp|=9pr@PM+cTKV&A+3~{YjoT3) zt$WK&pSHvi;wOg)=+1i14TC}R0)eZ;XS<(rN^@CVaA`maQg67gNIgLoaPErtQdI<%`nM@L}ovQ zv$M64hE~J(o=@D#t_69ummg+ms252Q?@Vp0#>-$DMrd=_8OQWDJds|(J#MUU{jj|1 zgl65!E8Z0n*w0t`_A+|f@RWF`rr@TRgla`zycM-^gx3D7@q%3s9LB$f_L`DCE3t`x zEYL2Qkk*>L_6=deK=ZQk=LLk6^006!t#1^I%A(U-!phCiD`=;ajE*L@&p^1 z=-A)q(J;23DWLgWo*?zIFB*dku8`=hvrSNNw=q)uX2g<$QLCg&B*M?j=qrQly!r~#zX}QZW7fQI<$p+Cn=fVmLnVm@knhY%wn*Vujlzy4G z;KgInVG0k-HqsW$ukc&X{{f%l8&lbWv~g`=#ny9QpJ4nhG$@SldbuxT+(n~INOo)d zvxBaZ=G@lNg(B2q7a?~sMpDG3#7+O~yHdI2S@P@$(I{Dd1G#5uq)Q-Ma5_E$i8(Xa zj)utfD>L=WC*B?%z8Sn1dkJ67*I<*#D(=M!ndd%#ZAuFGE)V0zyUB!DOeQS>2 zpjnUXE0U*5YGwa0z#)>^9s&-buEzlS4Ley5Q*| z?tdvQMcd^@n~%C`bPu7IN|mKQtO- z{584iS+1>_ns_cOSSKjQn~fhz8y6k-o!?eTJxFMWzo$10GWE}=_K->XS?+|9C@t`6 z-~B#giy>G>CXk1oVCH1)N^fl0FuHSjZs;2$E=ZQ(i8ytB&&wM(F#Iz(skq9=#N5UG z{Fvs~IfQ;Um#je+Mng*j!Ly^-`@VC+R9HC3U9@m2EIS>d;lRAJ615EnojevjYZunB z3-uppPdnb@5P7z+*A51K{Zz>NDAe4~DPW4NJ+F-dM|u}aBam`w!FL;!HC$07BPtr!OKh(KlbkIaan|YDUr0q zLy#7s)H|$vIP*+ImfH?u5lUr42oP9C0wjRomgnOt{4AYffbge3T-_I{PfV*;P|p|b z@pIV(@8WV;`vp7=$fmE!7ng60iaW#kkf`B@l6nLzOT{M1ReDUEFL4sOWj#h$Ce*bz z2d~)EF%?tkhJC*@RqLi zjPLTJyWV~;^SK*ZXcjp7`S_cR)A@pDq3y&5rP;Af)vqan+KbS{y)VettlaqZ-KQ{Bq;QgXC zA7|F}dppNZ;Ke(@7vv`>tIyJ659Q0qv=O+O6fNvB&S`boO1@9PB==V+Oi~v zMp zLmF|BIt`OQcb{q1R&@$&KC-LiU_Qcu%Vdu0d7m@Eoxt|}Vu*gZzLyG{9;SJ#;hSyj9Q04pvV8`zYPGo=n&LR83qGc7|H-gTW$42R z>(q6>tQ9xSA-T)dhd$bO+C1er{)KLT36*W z`*NFmbPWk6xK<0l|9l1GcsKcZWR0$BoPYI(sA`gUcS}Q5KeV9t?GL?-X8WvceT6AG z;%2gsj$&qZ1;oWMu@uul(|a^Bxzj8a@@a(p|9QAt>;J4o6#~hVJ{WrZ!2!r+{v8GV^H-$Q)x8ibq!LP77FHy{s!zXQv`m+2w$;!NixrcSTgM8&brwu1= z$X%34CmAMYq|Ogs>HgkL<>(`f!P$3VQc#5=J%Ee=1Cjy_Y)ir=8YH=`z13bb}|OCbB;%0>36l4o5o}=#nm^_`k}L zM?9@flMH82Nd=NrHHz(+ru`WUdCEOrbLOY%V5T$nrw5}M@<#r)I3&7Biyd!~Dxa{W zmAz@`Ut77X0=-r4#|K;ERAqOO6B&2R9Q^Y$`nsZyZW?MONKK!H z1XX@}xRFFTD{WvFv*}aWf}z_pYa^a#Xg8z;6 z;(p5iy7Rf^!<6_-m!;Wt+5TZQ<(tYUe9&H+6%!pgAJC;3Cp{4bzfP|WJ@$PY&1H&z zdrT^WBy$n*d`hZb6~+n+6zo_L)Ka7b%l}E2PqeB>jEEd3KT%-4A-vxV z4}sBl-Dq3)-xY3X$|Y^;6mCgxNLNq1Ah(UI%?`k&Vdr|a94_sPJH3DVOTbccojdC2 za#<%l-THoE({)|_ibAZWb*4qfCvvu_3TFgzFYRuREKW2j-q^aikWI1a$DHogMppSD z*4FFCYD~g@zPYR4O16E_ZI!KFqL}B|PQ5YAvAnl@uL1OgZ^XWpXG+voig@P5oHUH{ zC0v#yaspDFygcDOc2O0xdjVcb8tta^_L;9p*XC*-1s^M66JTTDaM zdOy9-dNMkQi59w_FPb&cfuP6{kT6L3;deszWsx|NKzFxNrJ`2fkgQ1IysoL?WPC4$ z)nPt@Bz*-jgdkTlCn$L<@kCya1cY@BzlD9xb;<6H*}K11QD%;+&7<1oaeukOx0_YQ zXtI^uI@c+vrQy3HcJ2e9)=s)cuj}vu_a#Vrz`#o5N$0zK+vtXbv)lxIZO?ReVVcd5 zXxPmo!Sn#w=GNFtj^;YuC2JfK@>E(*@0k zxK3FS(l(-~`(lu2VQ-#KW>`)hjsZibzk&P0CF{T}pXUp*!dMC`IM{O={@(jxNEZxo zo`YE4fT!!2v!W&aeEv;a%$O*0gJCxz76FaxJ;KH5n#py!hbJphU-?H?1)cf6rd<%1 zkA6zEINt@=)$Sok&fPnCMuYu`etx-M{rO0g_;nMKGt%}MstSWs`U;BBBhKQ$#qDnk zzwp9qYa#>6K-I-+u~P2+pHeSMu70fy4)3_pQz~dH%s6+%rsz;u@hsD`H>^Wpg`#l7 z_#Ez0v+dl5Cy8||KY$XGb%pYl$~x{c+f`TbR2I>MA1ZW(UlPj;PUx%Bv!!~!@%DTe z(IEHa>p#3H({HKr4zi>(CCa|%<(uQhg|0KyFvoL*NIsX5F;Z};9B8Z%ty6-}E|Ke{ zkhk0EQ8aM$o1nIz#o87*~50|d@tx=oBd_oHN{5(p<}Q%L^t z28JkboSz$P!d!G@I%NweSLm(=TZ+k(9RLw6ICmZj|=%w2QB23%C>1I(>Vf zg?rE|@Z-Yg=_^wgQ@{V^+SnHq9ODXX1re;-c;HAGDQgtk{$aR?f|PimX-Oq29LKAr z+_DpFAqTjpT}^)jhK6ssL$gYV-2R*L6QQGR=ByiA505iF$zdAoh?aYMeE!3hac)kP z|M+0=1(0JWpNB&%e1-BZ(rU43k1~BImK{8sL9;FH7e&OxG@W!7tq8c@PvE2E&d$WZ z)M2V(O;qn}qWEM6t|89Lyzjn-(vEDNq>>L=rSyFJP+PX1B&8^(ZgQD`&T7R5#M!?U zAgI<4{r29FSrbA?YDY^QO+Y7Xs)u?D9jofsKK$|I#4~IE0J+ty#ZGd|)uk;M(njED-e?sncS|2!{V|*6Y7x3OUT&K4vzEJWy#=Uc+ z>ynP|M|bkiouq7ZGBa4jRiS=-;(MCx{ekDK<< zJ}(W@A*M4h7P+DeV47C&kdJe^uGebcxDYo;56{2=yt;|0H1Pgct6YNG-?@c_@nB4r zP0ktJ7JZp_8v#;Hj864#Kpj$9s4$4_IZNG^x1&gbceIx7+<(h^1TXMP)-0{D#&!9R zsFd_=SZzxFX*@zkq*`9bKlzV3jL*R}Axc_++pPN*?6Typj{HE)?W=s3z-B3pO2(qT%lQ%3c$nEWihH-B0=6F{fm~jnUuHb=R`(Q1BRQu8|BhyymX{I>B0i{%ZU-gV` z-*rn==s-W=zeuGvZz=h{+>w)wz8242;ad^>P)5zbXe})t!meW&)tve!AN(E?ykaxL zGcf%tt=hN?{1`cJN`K6L96esN;w&||Iy`h?igL0+Xt-mdK;;}u;(k=eeOQ!mOXHc* zrHQrIGQY~XQS?t5VDTj;-o|#q+BD13OmXm8q$wgEpJeG<&OI@d2H%-?N(=2}(z_pv z8t{A;Z`MKXh)H1XZ#Cm4x=M%Fbf^eZ^;EMYJ@?MLUMtR6M*5fy1)u1K5D$dla0DDO z>mva!5{o}OTX#c1ky_9s-`$;Bf9#gX@h$&HBCkc%a2iLR3j18o=)#6JDPybYg&p3` zm5bUnnOJ2;OiH5nBK(pTp9ywD*7P~fb5urF14@!QflgY2oTopSpm<+AWxsX&%Q`FA zHpD1w1LK#x5p5Q(>7870W<%}y!<68dBW8FSX!xgkHtROL?asR{P>b+<-)p&KVFmN> zH|$d=%H_={*^y%Ki!UN!!>=5(gAi{)aJRcD3cjXePQgtL{kV|TJf%Q`*%Z$J9n%UZ z2}*|6(v`@S^Ypk@ix|n&9m%VdeT^V*9@e>x4sqx5W6tRIQk`A!CC~72-b<2Uzxf52 zg1<@c+`CUEB|;bhF3IhF+1}O9)uq|YBMo&pS7w63WY$aB&Fd}(gXv@C^wh^)a8()U zjWk%Ar4GhItwYGKa)yx)PRG^;QZ0xozYYhIU}Z^JCxXlzBYJ))j-l!8eeW7D-iLwR zIs(7_d)l{%k;%Q&A>qwP{-?$xIi`<3Q}%P}oyZL9eJ^uJ9IpH8ZBmQc@$T~tMowNC z7ShItH+}53PK}^kOO-_O`i)|T3z}1h$LXBktvd1gXqtiCmM}~Gbh>*wg*@KydBw+Y zZl5QL(v+t1RUiV~*xgsKCHx~P6np*!PkrZvhy0WpawWrTnMfC^l^!@^WnP_qlVmD- zjoCQEZJ_H19(e-E`cQ&qq*yaT%CQ#1rlZ6aN87sPEmMw#2e(gj#|?*QM*eW}FPh_^ zB{?R{<5n53vcT5B5nly)Ce59^9u=>@ptU-{_$9gPN>QI;im} zQER6#3%ds;QKBms&J+X5FOA2cFn?S|FW@Jh7+!g#y~4jfI>Ak?CuJALCdf2Jd5E4m z=yu%E_GwTcoHe7Hpf|0wZA_C|>}j<1|QQ^^+HhND~_CcGG_1*^T0o)&p9 z+(>8-yjXUheM4ySAoF?wy;8P%W&-$brFiqU;};p;`|kxf4nPgiHO*$PL?{J}D^ zNvmur()pf6(pSgZVy}}D1$Iy&V7oLKT+P}|Gwv>@ny)-d9mA!eqQRpHk#CD;m*KX8 z%=IIU-P6H8s()chZb^UNFdr^HRy^|L_BYe`+ei1y@p$q-UA)M1nkomhU$aT{OW>D1 zg4K+--tUHP(lL5`BZiWRI-2-FwIc0ZUK=qj0~g~%uNtb`dvrn#l|P6UDYf!c{aX&f zJcxWB+c`benidmykQ9)8zkFm`;@&>v(Z_wP>l?vlu#0BGDX6)NNZD z*#1rZ+SISUFjtlJ61e{ODFe|*7+xaSQ$5?Nj!!82g!j3LcaRWWsFTWy2SzS`E?t7; zqy%A^1xOz!yliOgi8whzOzLu=nGoW9Gvk$BYy3E%D4+MU(7B&Gg?A!}*ME3S7R7Gf zI0tH2b@e$#Obo=L5ST0IgCtFn$s-vS3P*cs?%ACnYh!KsD`J6gk z+#vdopjC(eD~M0Gy!I?A0xK&*^WPv9Gwa!*Qp&1~dY3|$qBsoj@MH-z;rUQjd~$ zcn}Z>LcaBJ!Ry6KJoF9=zALVq%4Dob{qD?#HK`ffQ0S?~WTp3EZv}2BPR#U;G;|=M zNJKpN9Y2L_fz|O+?T>zru6UcR8zFgfV%g^{xd0-I*b{8k;(n@mqsiB1~yi7zwLJJWp&#o)HbIboKz%MvBsANxt4nRuiq3Y$57aCN{++!Cn)W|q!HoYirb%0_RqKgbU>qbOC8gkFXz#q4FXeIn_taG|EoFXqRWy$8o^Ke(>g6L=Ny(uKlee5p8Nf$zHp z4oG<)&b8r!h9d?dF(vX?ccq#nffZenc5vvSo@un7a@1ZCb5nb`{MsBUFK|cv7vj6G zNaKQ=r1CG$$=6Y^YZWnMd)qJzY63_aUw-5eXBKyK%Zh+}q8ZpKo|VK%Mw75SBU#Gr zG0)+c;Sv3b3C579@Al4-ryqqE*z6=5T#doz%?t6WsxDfS-iK(wPzZsozPB9F zXaDE8EG{hk;fA-hz=&EV;WX`Z>b&Mj5ZiwLXkO>XDqTdVc}26@uCZ5Y&?XLNuHxmW ze5E_z%EUKAi&oslklG`Ejtz9%@RrEU48g9Q_D`w56Nh4iw6gjVgd%_wYPm8RcdTnr%Gq-=Tw(d&Wv%SCgpffgTTRKh#liO@nSg=9Z#5a z@BTH7^BR6)bHyjNiDvPF#j{W79M!y~-k$mr=0MZ1CA=&WnWn#$+!u~OUKLY#Bo&hr zMlvJ>9q;b_CFu5k`EpR?F&VJ_S68OmKF_=RB`(f^Ema$&uM%|MWm?L%*}bnPG0$D1 zy*fl9WY2ueIWrAqBF)=Sd3wKud8CzBP(DGz&l&@C43A^g${y_ir7`EnTsAe{-aX$s z=zMnBQ27$*wy20rfP!VGHggF=MA&C4`4jFI5WxFId@h@YAdhf9B@b-u8N%3(S7dhAC4+!t_Xh47e+D5YH3qGesk zNK%?nct+WUi&kB7W+EbF%MA^rrCKUkc;|@ZVnc)DJ}C`r!DB};T~>MTX|+8NJC#5E z2pNsu$}u(5y`!-Mwm!@c%AGs;Qp~~Sjjpk~U*)^LRf4K;DMna>S!rnsOugID^ z3gVi|rD-WT7kCx#;`fTIXC*gKLfN!siB1!&X8zL14Y!*gq{m*a=13Bf3>79fMV|Hj z=~C*_zEkiZb})iQG;1zPf7PYw^bEfcN|&CJsPYi?EJI6*yot+QPT^A9jZKdaYk$>f z;zd{fyvq;vwoARDaQO43_^0po^P<#ybKs^s>2EXiO2yA!`0T$6Q|c@$ktzvDj%$qD z?YgSz*7&MV$n2fVSp2QvBIAkniI5md>wCP_l*^Q0l(dt{qfHg+lr*1K2@4dA=p2acJU^fdOP?y=iT)z5ogvQm%;|c{U){UPPCLCiE zLqbyHcD@a`YwWrOJ4%3qh5IL7SQ3aM@~C}N$BUcB?T%lMlC2ffQtL>5gPjTo-G9=f zj71=(OX>*g`bxDAX$;SX8*0Ys$I}kQPZb1*=>4J<#joBkDT=G}sZF#e0Mi8iw+|Nc@>-D?n= zE-TeGdiJjXT?dH2>s>yA(NnLj<_xLQ_w>DQ7Q??kCb(U&LI@~|5s!O zxE#j>F-J@77QA|L%gbmfg)PxO!qZj&!a{+?dh9LiHJ+p;klZ*Kp--0m=B5FC758mC zVGrG2a0d&CONm69UhQ;TkL#>)cd*_PB9qrt_UIrxWsu^03tVCi6?c*ia@VOwMSA0* zE#~FmPJ}*A0%0^Z>n2yQ6~x4ZS$EU&Di)z-kbu%$a z-wJYh*;bCLMvtsKhD_p(=zLUSd&>jPM1}8Pt|L|+hFid973DRTiGIPf1SoAGt|%@E zgcXDk1@?5CO&JYT>|ZXh*M@71a!iNXw0O)rZaHoTmx$QEL3Y#7a?=VBp`l1E;=gWNBm~^8H`eeDzZ89e`QKgmN9c4Y=(~kw&0YX40)haUrdjdl$lV;3SUtzO2PLv-pOTfsp zr4n-{67w|XmLuS?JZMlgr{%%kkq$S<^z~<|j@#I9@HgIhDi&HM#4)AFjezXV7Q?7S zehpN#D|$ANmEb)a?Jl}iy?Eft<^diHVs4?8WCb|9?WJ-f;7$(EK3dv66o$JwBiKxF$+u4zGL z$0fR%oEk)ch;pX%zg(goT{CR#EuhPCCjo~?fEU1XjO{6pIY$om01NBRWSa0bw}N4X zfLajxiFjoN@D{=(r^ecIY(>j3VlwLar!d8nCg3!H9OlI*@_T(iJ zM1!jrxA+}7zFXY$bSro3f!VGKY#E{SnXvU-rSDwWj82PVL5hcBM`TN2q>^Jn5-M6u zrNssSf$7y=JC&uBhF2=B|7oWc5g9-hWED{Dq!&OAr|iyo((Sj(F<~u^9CS85j*5`T z$#cWBYLeOIC$?lE(IB~eg#N_^1pVqW0*IO>8Vjvdp_*_3Z!%kilH~zma+)6`up=d? zSP&wQ*vDvv!#TNVh!ysh0CPKH51ps1S(>Iezn#eG8dOH^9lELv%kKgR00RjkA0yGS z$i^_3Y$+K5W&?M-tiC@nyXDRc08)g_$p$Y1LgfH%zix#vR*uIU@F;7NSF7h}d2RXB zSlg?nXsHE4zb?RId%e~0)iS+)fG8cb)|5QpTMyFKTe&%ZxjF$`J2d3EqZZ=gtpE>H znVBcAk~yVBX~*^G?^b$Sp4s~3Iar}7TD%Vx*_K82;O+25MYaa9pwU`+Eyicrk-q39 z*t$D9o_{_x#UW3nYoP_r*AFy`PW0vUI_AZSdan{W*jqCvh5$OvYvtQATa8P?qpUmx zSOvWjtb#7i%xa;j$q80ot7r?H(=xg?Vj>dhcz^`tax6%U%Z>!F9)7ACWxa*6-UieF z_zb{R|FNBWsKgeSwyLkdpW+U@(LFFS8i^HR#ah@&2o`LsU%TZFC9m4_4v!`Au2wJH znnC=J(}BJzqN2-JVXI_icJxd2BniOurvUg$0tgqgW&;?-hP^7MK*`bwqiIQUzs>v9 zPJqL(NAue5Ld(-*6&FC*NOv!N0LPkSK&o{s%`YO0FiJln&x{_cLKFsf%oVJod1(Lj zwme~LX5jyzhYcGCFX_iZupQ~j$p5x&8hII^lYrkB6gwWsZ<(QP0lEi-g_7BItiN1> zs7SI(@}M%!&I`QllHx#diJ2fzwdEl(_$$nE5Y} zSvcT#h*RG(S$Dz$#1u!~lihCAa0Toku@u}!f$fnIMiOeVU~nw_n>lOM2XQKnP1ld3 zKod|_CSbO87aE<)D&Qy%9XRi;C+`93xZCfzPS~nm_xLuAUPX&m!#QmUQ1V|cxrs^Z z13oA=j#)limxNwlf~CmAiVmy_wqF*p7Pg3MPSxnOY`&zqzg+#J>sHEp&Ryu-zg&ja zdnZ|VWu3}6cKOy0U}JgM+B1)>qAlgE>jMWN2e7|f(6)RNF#teYL3>Gis*bDHZ0l`* zj{mn7_w$^_uX)5dbT#we^#gi(#A!Szx(2`@djD zUW`@Mb=(3X`N3^B4Y|&}-(7M1dBMSM2bHFqC2Qp|qz!K$m zI@jBhtPj)xFelwlo!TgQ)hdNEDSx>TqSfp=T_7X?(l~C9=CuHDM!&ulhd z^GViT5D;Gcd6}okvZ8G%TR?n9uNRcymA_e(f!wf>9{iZK7FliD9u*rK)DL6^SNFb0 zT9eTo`lVPwaOBB;$ue~+kdOhH8}RntmP6}HfP>%>eE*Ss0UO*eSHMx$D+0E$+sO)s zgFAr$Dh<%dJ=t034j#D8=y9Pn;H;4b59(H|PD^UL>U?Wxp`C|7 ziU(iv_W9)C7P)f05(2wSEA+S4vw*L- zBS3bc0wqhpKm?$2V0;4%l+?ij8~`D!rL1rhRmqk|Rt{|g00Oo&%e%@G!c7vY_p$&` zbg^K78OuU}t(n}BNNlVt+j7z5NhJbA{$GRz@67`b z0{Ih2k$sB1SKA8o2Kc!B9bouqAhF}v06pq34kVz#&{9bnP{s{HAl1>En42)3gqQ+IeXuu{lQ(UCQ`E! zDFy3x{&yi_V&S}li?D4lv>KXyN=X?x%Uadpgl=hC;IONuSg1uQpy|0Zp!b4k2^Os1 znwb^t(K%SO-crXNU6144YiuEk5@i8K|Nrk~h2Fey`{v})hQykR0>ijveocSH^r=Yq zNOEE%dgWnPapewB5@uHkn6vrIRYm@F)q<^3b4Q+EdDm76v^{0n!>X?+)NZVSpc-y& zEaC&#x&CsgIq$!#NSKz*4*~s%wr!~4ayx9w$obl(j6oq^r~a52TFCLYT7Itnm&`#$j)qulPUyyXwQY0z#1wu_>YR zlU70j`9t@o2d=^3!Y@F#&7*c6ggP=Rx}FS#9+#5&665|WIpIEaARH}K;PqSj$hFc% z>pO?Ezi3#^ql5Os5s=R*E{7h@bnvF0CAs@#8~)|0JE`<}{JCu-RS4PkJEC}@Y0BmN z+@GL_kD$Ozf_GPrnr#9%*XjHBGr6#rs0v>ca^CZdTKu>eMyp>uwNg2%r|=@<)m8XL z`yFe=DH{saFD~Qn zsCr-4v(9ecQ8d$1IUEs-T{CQ@4vt#%k~Uw#h*$ z-n>-ZJxrFD-@6s{T@o*AkL6Uws-2PCN3|bB#OsjjivT2sz@_iGF0s z$ILP8j&s|cz6(ZwxoVEqbI~<_xn6w^rtIxWk5-J=+Y9*3)n(oJX>{@Z_6K76oogYv z%v%DZzPd{pMf{i+-$f~TPt<&%$&V{H3v?ffR?bvSOV;r8yGdQ9dR@&~!deUroK?@d z958Pja^vKM*awdnGaS)zjqx6AY^Jt3!8Cp zwDXFOVn>~{c?LZ#*cHPR^kqx_l<>XyKHxO9Qd61_A;O}f8g^Guw=j**fEcUaE#i(jh`*+h&b4DQI!b(#y!adCH*0Cn*$BeSf8 zA}-Nh*V1t=CWCiBTd^nkLQRbTri@$F>~4F~S$Iv0tNo7Hef7=o?*5ixkH1`tn}501 z1_}=pn)ss){4c5%zOy-+7<&3{h(woP03DJnNy?e3+G(KSIy(?o{+J}-w8Vqa+)?{H!; z;_)=X%693ceyWe{GH+h~(;`;Td;PieOH*!ORf{0W8fs_0nv8@^`f;uWy`j8!SOYjKWzgdv)6KJ^dCZo z%X_=o?XRMIK|wK(wf^PHD|w;b(lFAdf3M@By2@?--;QPpg^#X#YTQ|+E^2?y3RS$; z`!2vz40rQJVZ32%iQg5WFYE1Q`o9VVZYj;@iT8EYxg7H<%|4BDQM)O6N4E95AVCPY z2TqXZ%EHG267!Hr)|Zq!OSptm1qo@B1d_<%cSbXG$|8VGwBXoiC@}-qeqNEjGaSxM6;kB!Xni2rHmY z2Qtq2G&KEiI5D=p@!;T4g#Zs`cK?z5?cUb0fP^A1NlRb7Ip6Qs;Nj*(OT}F2dh25@ z5>Xjk#c#sx-@18BepMAuyC^WW(Mrm?wz!kAbN$p{PD5|`ZsT9B)9;>489tmj;W6U} zTo*T0NX<($$0qA5p#l?2>lOd0e>@wpQ1VU9y`~BM1ADjThu~K(W}u8>Ra0sF4oa3p zIi*)V_OO6XoPtNI{dcp1e&63~ZmOsO<;7vN;`0bZUXInoz zht{wBefq3ek2}Hq|IV31uk_Yb*k4a_dD`Aazo9jEa(S@WlK(6X z18y8SpoSy+10Uxl*v3a|qii&x(%8?@9#5;U_F^Ftn-uBUd#OTBjM%XBI5tr88z3eH7Eu#z+;vFYiYaI0j7^5!AwoTEWB}sWvVa zG-pwGQ~E{kR&^oD=i%YT+coM7wHZ%ut~t5+SKe|J9_vG8*N3VM+>i;nnj`s&=2VVz zNLx?Ox`?*nE5gBElPj&JzZ_?FLGD=gPndY4y>W&lX?DkmnD+TRhZq4jR*Dy}zZEdr|9=mmhGK2X)i)?Op{!Y2riX z4CJxV$!XN(PpJp}qn7iQ&xc*f51pdO$T!{HJ#jc%mWl7v-@rGY%qoeTm zEG5hYoq&HXzquYk$zKVAfRBo0p9pm)Kba4ef2W0^NYIg&3cnK4oz`@$RXw}YE*%Hf zfj>)b8nir~Buqy}n3Ud7tms#nDsSKmU&a9k;*$i6UKSdj_ghm6#(19e*hEcx@I4yG zPlgUZ_PXJc1}~S?HK_mPpza#+aCZk$*sIejpwqWBDw@Bk(y#n{Joih55H3&h==57? z#+&1vs}`8dBe&&|XQM=uJwF*rKX(1g_0Z1Cj43tcdUnHK=NBzsvN@5FvlF>r9(i*< zk>r7skExxK?Z53J{D?Z4d_l4IFIRo`MVx^lFXMOU%J*C5eNL)`>C<^VE8^w{WSXxG zAxF65{r{urI^2@b-|xL;rY5;fF*OzUURcf>P82j}j-22?Q7cEKsb3WbD(*eQJyUR% z=H8W?)-A%XQGFWEeMBJO>mB(u&o zVW9`AIX&40`PhQ7)yhQ8>VZcLh1AFKNI%0hH&1YgG#!A7lJ42m=6Eo{+S7RqnlOd(55 zDQcKBL~2Fmp-m&W^EmT>$K>`)2O>Ym!sqn#v7Y+cl}B`|ZEmcN^71Iv zwX9a)MA_Y;L}s381B>*-KiKE9+Fk|3kd3rqcjt41`g{vzx$<<$8){!Hz^UU%Lb5M@ z!6Q+8O2}0)GMEqQwrck4Y}RGy09eL_usO#na;Ysn0Nxuh)7guhAh@H?9EFs(-{_{c*EA-NF_S09!tzm4vIVM3QYeMf+?Pw^2tPH%;qj$W zP3}Rb`q$m(e3xKc8V|a~FWUEMUZ7t4NF1`cQ~NKBQ^YGp^ad3c1L}?F^T|M{rnens z71!U4URHm8Q?E*Ewi2@@_$pRR+GiF@B4G5!kKA0?laJeD5x(!|Gi3ILnnHzs3GI$z_m@8 zu1+UnbBSN-rg3WOrfWP#f%F3}uaIzF<_ngzy`Uvj5gPe`?HFeLW;U|S;XSG1P;G@F z7ZfTk_pvsU?c){mpyBbG4O_79peQ^9q3jD>t>YZ%^6l8|HjiWT%!rvSu+8K-*Yye^yD=tQPHK5kHf*Id z`Ti57JD#cM!FSO$TBO0h6Vlhs1cj(*7LEANbVBSKhcVrwYfjprH*q&_oe1p_%Q{G` ztDTNC8gl16vWae6|5}v?#<=keZG+wcxw$H&TSs|Ag8%!=4|G{Pr%;#jSTj~KfIyq$ zALo4&HDI8p`CV-hmNq01XpGHwi=RmWq9RD0(jhPp1S*PXwNZA}2GP%=XDCmOY*Pb% z8C%&pJO}#2)k%1ZwW2b%_++Iu30KOv9dB2~Ory_pHwvX3KBl&T!Fk`hb^FkoZYg7X zl(_ux4=!eRwj1?MEepTsOGsy-gIXO{_Gx&dFtZciU`Lt4lp+Yxt|ng7DGoFB_Ryw% z=8Zw#NxHN#4@2&w+1w|F|F-$he8p_;?RjrcP6wa(P8ruz^XE%Na6`PCN~dWE=ba?` zs`TZkI8MhZ^x~n+C&`O5G#hn#?SFrn$>sUW`I#IEQZz+eh8Go^3MY*S&*HcqhF0{6 zPyp;}^1XL0y5iEI@4NORFX~^QOE1R?Ryo03#su!yhF^kspj5M-ZfSik&%rNJj?cjk zkWf_?{=(QdVlVRO|MwU22PSp3MK-aKyqQ1Yw?lu}{*BW5oB>&Mly<1Dkf8W8+;$Ug z0ziELO|7R3QD1KcL6Q$WJhSs{XHb@r>06TLgab$2%Y5@xRTVKQS}`F#QtSf3F+kz` zyHGb1h(jAs94>e{-28qVo_z7TxR&6lG20i#o5Qp4lW>3U$tYNYiM| z{b5(I>&{%KXk5luo$y_#6C+jwNV9X@e))CMQrHN)YW%Xj)`r)m?O1x_zrV(YvmA@x zA8^Hp`MG3T%zpy?0~@2pn%>v?9y)-JsY2QnG!Mxw(+8eCKgH$yw)X^DpYlFnOQDWE zM9V|$Oz3f<HAw!^av_=(Cy>i~bf8PdAicaiW?Rjc}2x=&^4PCwy2kazD-Rqcv70gZ|Z(92WqJlTrrY=~FV; zuYn<(q{Wh+2SsCSsaL(bD%(^l9Nlav>zSU_shONg4eehp5@>n3;Rb1a`*5A@CV%&CX(!Is0XoELW3rh>kj!if4IejN$Rf3Fi9=-T$B;TQ5m!weti z@B|`~AEo%5kiIA=SnMFBP$e6}#XJ_eZn1phos_v3>P#7w*PE;Up6s%ldoU47kh75v z;wRJ5>i%QE{PP%%N)NH^TbmZ5*Loa}G9w7i)Z|yGmD1s?^YZSwI_J#Gf3mHdQ5&L2 zR3Ic9CAT(B|JXZ7cMf-_6g5^G_@To%ucTev6pa>$SrT@f{nh0c?Jtp%7vH7(wN45% zV>;>PmHJdrv{NFN{w5T#AJ}~!C((GC5&TTwvsQO3eyk+uWl$cabFK{)0vSgUzYp>j zb?~ipAzZD&^87aIkj;lu=E*_Fl_-I3$T$r zCiim}%)~<6m}zP)CZ=cO{*U=0}br8iR*^)=N=+mxVI`Zu0TaHjOWl*gahFZ0fzo^1K#W_X?ie zH<@<_9OSp_dz8PKAjO3= zf;azY%xm{vefhM8AXIc)_FsABJ#zy$$) zxmR~V&!YX`%`@d}%=y{@?RLhQ8G5Ig_X)I(1O!(`#a)2|yZi@Su@;(2HTc*2!p^DM zt_fY0<3l3W7IJdPg7dbgq5(?DJ%ge~6Ci&u-rsh_0<1-IiuDlg^pD@Mdin&7>gVmH z9NWK?s@lCHBidVhxrB!>oK-}%*d8HE5W#wutBK01v{3XIFh-bF5CD%~JfTtQ8z&SwR$(DT7hpP{q1wvChaSP>r{1>IF?h{cvTOCE&h0P{;a5GIVg`15p^ca=GfFOt z-Aj2Z-lCPk?J(HXN9BHDVrnd70sJk9|52Oq!WM&iHJzh~S7_bm)6uE|>;r_Qi*ldz z%7}|xCkN}$R>-gy@JpJ5);vJc=0#uNt4X~??KaL1He#yW2(525@XV@b!|G9mEjPA4 zr~Jz~6%utkhT6L8Va-0%&3vp&AA2utSUj9sfVcVIPkla#9E);|82)I?6QZWv%7zo|f^bXgZQzVpTA90-O{gQ^t${gk>>8g&hgcnm_s4276d0hi8Z zt~EeCWN;#|NHcoqgBsIUbWkZ1oK2s5YcZ(odPfzo9%Ibyz!_a7F?82{igw1<&j5IP zR* zb%l~;dAm`iKkJgqI-Ju8^YYnl<;1+&wEC0Po^JNKbSRKqxo06X+ccDUCT`+ySIHSg zN%zcS|5rEFUpaz)zifpeI|<5rK=3)kc-Smi{7&63t-qEhb%)D>!eHn&8svw`5(O-| zd-RVb3Sjltr$B{`-^6g3Nl zErIL_&=Zl$g%cS#_{pl?UC*M-%i4Q#JyGqlln$2UCnolVr~8o8MgQtfoB+5d`h3#& z3R;7Zf}duXD${rdqeC(HZa-PSsS!x2X|S+*6J5^P?$cr;bKeXr=Eom)nfiz^3CA=Y zWlUE+GIi@uSpqE&(yE?hw$%wki)TPpUb7FyZ^r)jmpRNzz-#(xm(GLu)ImC$sJ4Um zCUljbX46hHJFxd2SUt*P#OAK;fI#ercI)Qi=m{rV3{4&pB}pR#&|EU7K#yMnUK$Je zCChq$(I#-qFG&N?_(e|*4^j5lx|#gejTrcEXHGRqy82*fwxca^9vjnDTj$Qu0-Q~b z`*Bp(FF)v!9T))W$>|Hq%!TZl6l&S+-d|oZDytlj^vqu1x{?%Uq}Fa^GbqX687(79A=Aes-M-dQBE}nO^6L%OvverN=zZ-d(yXt9rq9 zJ58i74(GHye~ni7>I2bS!af-lBdSi6jW%9VN3uv*RZNY-!(H;>`8~Tnw_>u;qB;bs zXD;sGY&+#Il*qrUol63-;_R2$;JnQx0nWesQ4Sbf*kG zW7_B=MlN<_;5&DDDf_kid zj>XX-U6nJ;6BrL0Q=07xXi?#&p^-Np3iN(ga|wNK1|JFFVmTud$%iBi-AuP-wH~>p z_3}N5lKZtHlO95r`#v4oou|fP791$cxA(%=fWqa?x1~VLYyR1|z12%5GOykyp(uJt z&vat<*U;XP1hy^kA$#VkwR7S`FVFVuGV#o$k7-!f#JYFUbc8sda?1|+o~9PgTike% zxT;(9jd1Z^tiTh7sK>EC)r}chdUUU3lNZ>Tg0KJJkM@W&f(yVAjYg>5dU(e4#6KTh zP61xG3OYjteH}@qDdmw>S<$!Kv0|=%4pj{MB_U8I>c^H4M;$?J>LSc}{FkN{VsHK+ zQVLsmldmQ(!sVv2Se)s4h6?d`LE&DOw_ia}+%|^zllCz7$G6Ga1aj{$!Q8%o@gV-w z%+R{!&Vo>!fI;T5*dr7CO)%j#((Y9JSV~Dt0r3?;g;|w}YQLMogS%7+MqvQUlr+kb zrxABsU>eeNO-aanxlh;k`QStU&DYMkxQqbrWEEr*1b&G>YvUjH2hY!@Z|PV^YWR6- zrj{TWd~#;cpn7VeLNyQiVatf`yQs#DOC}`+7g7Cug$GNsMa0*x}p zgV$-z@5$N#S;sO7=v!J)RzZxJXRWBL0aMY0DJqxBdMK16=GSN23C5|<*|YtN0y{K^ zJKZ90+Bo|@x`y^G$rpir%w=id0zdf zuu&!E*WCqLM6-dB7SX~FUFpf8KzBX~-b~lm0dU#kQ$UCq_32QKQt|b(i}`|#K0m>N zBZew^;Ur+#NI&^R-Vk>C7u;$Eya7x(iZk+N={vKI zDFv~B8E?=_huNLAE}h2Ot%8^bl;UNSZ}yGG@2?$9@!nMPp^_7I5o(cc(wMOW&8zH} zD}PyVmb=LD9NgbZH(MTxMztq&-wp7@DcA=U9qrWdG!c{*^M;?ieW^$NZqE_yMmm(2 z`Z#{LtOVWDb)T?fYLppJ3jFnM<+IX{uB9(2vdMY`Esgns+JKz$iEn%|%VA?Y z2TnVtgU-8s4Ck+Qk#g+V3nkT$8t8SWe{o{!~S=C0DAC$Fy2dxH7 zz@eKcCueyxT;nWV>5UcYg{7Z{oxZ|af}kf<+{r)ZRG63%VqrABsXRD?&xLhajIeuc z$6d0wZ^@yDTD$1$ac%E9h@_wO$a8bzzI#wo31uE1#N^g712(LMgsk3?4$wpDe&2s{RajSIj3z@%J z%YPNNc#YdIp4Rw4$0mF&v$va$tZ<}QI$+wLrg`kstevt>OF6Ddh#|!2Vk4%Tl+EN{ zraY8-%RB>1lWu<{)f7O5R~lsts_5I9cz<8B&o|0$&#WMz{MpqfP59vd)uWLsBB)++ zo%Y(r?iTEPaaK#iWE+RaQyj0|#?C1}Q`dPTrb`!e^y?a}!*ES~8Xkc#ux#^L4jb=EoofdSDH`R6(k$*95Ol(i z#W}S}JLdcRj{v3GYbp9j3tPpW?ZyFS=$#%_51iqcUaA@Z|O^C z^X55;I?L;`tH)B?xsBH!h~R}_S0udGkN4$rhV8ly??7YVq!gZW(2 zj@60Uq!lvPU81jZohFKIt&@Ms-Zh)nt1w_1@}96^5&!{2?^mlc6skzO9lFc}JowXh%Dz zwdSDW85UgLMk%ezxU)83eqA~BOF#97ZD(HCJ213q%o)E`p3rlDPVyz|f)cE}wxsR+ zn^L4?u`w>p)+f(aE3{TjmFRf{ao&tfwSdfPKP|=1m&wW0!e{wxS(7QX)l?4LHO(ZZ zJ2(>L_D)UlhE-KT?&7aa#fIPBiQ)@})-|Y8-#qdVc$R~@JP|m0Btwao4&dE>wQSie zgpJh%G+RK!>%8XWY>em3TUa3rz4&e8`S?1Il^RHJ{c0+Md;>0M&R&A_>`kFGI_3s{ zJW(MwYvt`0hIp1KoRA8v=Ed_7L`ebA9u|{&FeG+0KfD5;Qk7q2w|mPO{wG5~YSN*NEtKD} zPstLg3HmOpG%q`Ar+vczY}tQR1#lE%hOKt}S;Wwb+&;f(ZDIyTHWJdlnmX4Oj25`g zX}UWd#PFuBok;5WeV{z5XDLuy2w{$cFD$c?9p2u@ZJIqRXxUGcuePp&<`vjyUfnt` z35m}9vA&;QuR@K=h(weir@ZC1C)mo};38uOvUVrZjpgG&aml*BgBlxcF+cXPkKm6* zsunr*L(HG40daS(% zM#C&@r*hqcKW&BQG|qq;|j9 z)tlJ*)3UwZUPWpyt^0@#-k|=?6jZyRjTy#%+Rv$QI_9Qfq5n7+$w*F%I;6!867|uTo)?~&5Ic0q?xCM z<8O$J+MS9NE{W>8`n1BlojHzWbbZTUZ?LM`Mw;^7S3W%hYQ7+t@0Ik3U30p z1hTtt2rATX)4Wz{(9Dek%~En&@&}1r&lk82s8%t?)wEW|4fq3sx{g_=My~0Ll+C?C zKJVLe{(}wSG2m}8o}rqMkIxMSns%vEwT2`q{9*Rxj*qDA>$Rv=Qiq9EpAlBg?+eY$ z@&4TMPxAfU%$AJtIKl)iK*jv9m9aV$>y;X_()2L)`@YsX~uRWW7 zFUkU@Z~2G=n&2YuQDWF_?fx;spQfoSnJBMZ~)}&_}AYT3ZxSWNNA{YT4{T+AVEgj3mv!icHfyQNTHx zDeH}<2;W=QnAPpyK_<|y5FV}DMm^$x^t8{c$hv(Lo+9Un_uZ4>-=8iC-7D@?i`I2NOTO^(-~ayd5LA^6JXM8q`$_>k6hHgS zFf_F$W|+nwB5dfjy@I1Bg$q9lT>TRE zRlRwV38ea0JmxZtW4%x$to$^Kvnz087$UyJS``6`>{^2}9P{N&-Qt2XLHO}p##`Of zY!z&C4K>R>G7x6T3sTj$maPeL>UG}PH{E{de+JW-MpDZiwauh^6xn%8$Vg$6t?`(BOF%3z+AJHRccR} zeKB*IJKc-8+izy89%MzttRz(=(QVk~ScZwQ@gJ1c<}B4?i-C99%`5MnA22vC9wcSu7jHdf@@w-DgcHl+ z4(xJ^z;yXSgQbeu{hxIE_97ZOLOP(>Yw|Z;FRGPgt{((SNyu?1rVy5FC;>YF7Bha! z#^qYz!XR)nCDyP>5tK`M1a%i`@B}cGCUaf^% zDdQbK*EJ6sbVI{8T2Jd?A@z^BhbK2IB-x%rTz@m=g%b!R9(qiZVyKqfU4#HbVFLaV z0M(<1!cRrsOZS<-O3QBJYZqnwBO@E}^|3wS;K1?_AqIC!hu^Nd@@!RZR$x^^8#NG= zkw1698bb@DhaX-yUiaF;!p03JQnJKZgC2*K{^R zgV*bDz26y7x=7FHS(b^gv5fX+I0F+9MK3%F)``U25+T@v~@JFL{YCEwISIP1>GDT~eD{_HI9N|_zjxA-k#F*Pgh z_)a8w{U|IBH|V3gFgz*i&`-hl0hj5it8#rQckU6h^G{+`pLZ4*j&wg#T8H3aCtBY| z@`gW???nUk6A-}1TqX#&++P~Iix2t(Gf$hfTRj`79HW#CXUxSb=< zgsK_3B6?d+k3NLI5L)jm8VA;5WRqI1A9`h7c(iHSD}9`Hx3gX``JPJ}=uMqOaXPKe z6%G)0sW>XFK}ClO$iheR<&mM}#e9|+sLJz~6}Yu+4<;kYwnAY}^(+paUesa^nIPYrL9p+xTUxek6(eCNE%C0`GM(9^;R7gKsuXxrT22!H133!9_=-S z@oqoc?-o=zEnRIYM_g&%96=kI! z$4rQwI|vN@Wa@qof%g!jyLi)s6A-J}3(KQxwEzCv|C>RfelXp?c33jre7~GS4o32y?x}VsR-iN{tKk0$Norr@1)9AV-pmPxoJ4GGK0T{Ls6rD%T zU4r)(eFwi+Cf|Yn$!#~FTeU}8^fQo)>vyZsT|2NCetRRPRHSW&@kDI{&9N|m>7$3N zOt!M4`nLM)bRwLI)^7Yme01lp(q=34j)CBpDj>3hC21Xg8MHd4L1P3hjeGLGN0^O= zwqwu8bqwi1V@%x)LnrJCl~3mf!8?o-JYK)Zk|`^^Ql#%ZE}H|sIpsj@b8 zVlicGR~IM_jGyY;8naV8&90tYM}&SD;-GI_js3;9ef#O+qdeMV8>KR=dFrYTgWhQ(Q+crtLhnFaJ+ESR_rygr!k|)O@eYqF}g;Fs;is-O^H?>M&QGv8d6hNn)9^Pj0&)t;q*rXJ7JiTIg zp+i+nM9R=n%xiMG;B~;2b&EW2s=J!C$F>=K4}l%z9<#L3CZtgF`jR3-uRC6syrf!YH5B&LdyK;w{zQqiN zjCSD!`4Y7{t)KX+ozVKw6T9ZIJ&Zd*Om9ywW&hz?HHf>MZ%1fVad4ge0DK1gC8T3J z5cYvfLhD*VS?!Z$xe5pk}ylYW5}H;gG~0XKO!LG812 z&>2UTdyr$E=3#cU(k8{Y@@+oTFUs?mK;JvTxZI)$`#XBD!Ww*gIYasZkoDJv&6cT| zM+**$_0hVYvQOnLe;{*Vy#vIvZFpqz7c@Cp`8B^`k`N9QADu`UAUMK#vah+0hBI-& z=(HD_F`jqN;X4Lc%iZ#BFJ6o1D(DpZG&S2d9{Qmj#_6VTZClAJ)zC6&&-!t7!BO^3 z0^V1^r5yO@HeUGEvA|2+waM14$2@O?!YuKdG@DNPf<-Q>{Y_CaVl8uzXy$$H{@@Wu zT}p!J*@EoN-t*?VKEL<0vQKM?+ke=?57)c7e{878JQtFY7eB>0_@f#&fFIzcDqBAM zjIWr!XY;9273v{o_ve`@tWEYG+Z!F0rg3)8M2ziz=DP|vXmrYfcMG&D2j5xw3lIwkdmd=+Wm0IC7rS8PN3QTE!5(WTQIS(1Z0&2%9W=of|u)oEbI0ue{;Vi zBXYw7fW7VKWt-tEPIvcKq3;GO_46BRgzihq?w@AfJDUV|O|4caKYq+FAb|@Gf;v(D z1?-_3tCamyjaA-q!%vcIK;(0!!p`-}RJ2W8P7ChUlg%|rBmSkbnC7U5HIVqF-v&Lv zUl(3e$~XsOfg*`mw|MS>LaQ|7g_3bfN}`u&hAqCIsAR8S`vE8HHBFWK0_RSk+*Y(m zThN_g-8E)_9a*a;c&Iewh9n<4(_S+Ia-`|>`b0}Bx_~>B&xZVFW>u?B@?1>E;~dOS z>fIV1w5!c&hE?&lHO&00BCEU1(R!Huch6+T$H`i29B{&tFUZM&FI7iT43woL+;?vc ze6RRK+gnDZ6gYf7;X6oqlqt#ZS~!p9Saselk0b7 z8W%5u70MEGJB0Ot8NaivCLnJbYY5gAgUy|s)0wOQwD0oHM6dbRz60=HeZdrUbKS#J z?C?5~Wo>sC7~R~S#wC!p^)htI6i9Zo>5r?wfpNyutbG|;05~BPB4=0BS#!Qu(C&=K zxt|<lFP|DuHI-jBI90>c z^)O`H#WKz=9J&l!(nGVG6Qe;#viS2^Mqq7d`*;0J+q7Y!5(aF~Usavx&@t6_Ea)ur zQwF6Y0(RfvWPY(jKD<+0?MhVv8Q5lFoz_Y81A(|?Kmn+h{+mPB=c|(4yUTjbLphSB zcck^tGp|gI;nt2Ng5M!C`xqg+`1alu22z-C;cB2H>lUmH25GM)cgbI0;&fJ1b>Q6J zLA;`j^!RiUb>W7BGbvhD=yFeVkbzPu{aj44B-7%0FymIoSNZ&Gv%{r(;IfP3HTiUBMEI-l+%KZ|z@%RlXfMrREGH=1JAu0}fBdqpKjq|O)g8^~-r;n}W?YPj z3t)hS3fk4O-ciQm_6F=dHI-Vs`-v4h6JjQidRk$luhIz3dP%62q5E9X4VDGl!7JO6 z_f}rd_Pvee9UNVGs3H5D9>fwK)9^P065E|v`L#hCV==-~H38_LeOyekmF8D*NB5w} ztx%&p==AUf<8uE9EPm$C`Kg$!mTxZz4laa^&p7as43yiA?zh@Mg4dNDrXn48AOdn^ z%DgCkNRl8VIWFcmzeDqgO9Yd_#oP^lG#?~A9m2&Jh>6QH-9tG%`HJ)3Tw~!s#y`uU zoLVp5ajgVYr!-vOM1HS4A=N%Kxp`JWjvQsu&hqCl(AD}h;FoQ@G+D;CiL~M#C)FwU zjS}wcN_KQN6ZETmK=@9LB^BZ%{Wet|E$`!c7<3fVjGdv?c=%3as5sT5ZI{LnwEyI7 zCf537Wl!e@xPX3iNNFjRgmwsh?tP}~e?)A*sLYvoMt(peoAiZtx=F8(mM4(P-+N8D z;IV%MeXx7b&ANsQ%LwP)C`}cBcsAyZU52)uCx7)YAc=FC<#Hu<5Vn*#4OlQ{>&W30d+hHDhDSL z`IdR7%^T8fpY}p3f^K07m@?73mE$vVP}dfkje88I&M`x&0NRMSXq2h3AoMxbfK$De z?Vv^)5gh3isneHaPOaotJk2CU-qg*I75W26^So$)Xa##e={q!MJlM5HbtXwVjVS9x zHU{UZ7fN@vG5ycWrU#qdu>cQjOk3TTN4qw6sn~-G;Bi^43348t$lwsWZc3rdMH+TJ zLC(>Fi0L_y!nEp*iyca&q09pR`>ReCXayk+pYx5dc*;j*cNG;^ia$l!e z_Ff6jB+gC6iE_-*97_41A)ruyk&Qz(SDLx$im_|Chenq>#@+WY;{5oOCh##p36}H=qvgD58r>QRhTt34X|EcR^bP{3ph45{ zlF_w);gQNtxxYOU64814nYh~LLbM&U^V6t%NrGZ@biRa9aV6*tC3oI4GJcw^$xCi3 zxY=%;mJ|#gW?SC_-jCHfA5X(WI}^XXGg{=0Xp&zivSG-+eM*37Wxk%CV)G{J-dmHx zgC26H^_7@9&uo7wGH-RPu-t1?n5_+Hiz{+FP36fZ4{b2?swg>63~s{EqwZ@{R$4x2 zN^d>}_?Y!WoTz)523S=QLG{POjm=B_EJ^I5bL?H?xsNiDA~eEFW3e z^%IKLF81VQG6dw!dUce8{KvatF`K`|D(uFX7NN{iChVBiyxvhXnTHOMJnzzdEcoAF z>{7yrPQNHeR`1-`437Q&HR#ra|U~58x_q0IGJEtO-z7NPbo`WhhN_ik& z(hHTUa};LJzfHvTz3Hzt%4=8U4qp*%&+45eHN(M}m#dbUojuAszl<8D1o`8nt830( z6(_k##$_44|L?C0Y4wvH4ZSW8ZAc{zp2Hc{(&Hhd$-a4-wHri=4{k zH8v(+%d;V3k>*Nc>BWlzQ7oBi1ukb)5{Jt=_$@``k75StIFgl?ZxAy%Hmv4YW19d3 zTB3hdSO|2r_u8h1sK#-ZPYNh0Fe%&0@DC>fvXI#>8|j|wZs?$%$hc#ECv55|pqIKK zWGRXs(Fuh(@aX}hgbL^;`%Jlp`01l(Smz`$YJrgvS8ML6ZN`_ISsynJ15oM#(~bUD z050ab{Y-0|9sXHH`F>DTp2klI-$j%OUVD6`D+4aRZ3!^@#PrmPg@iv6r#wN-#&Hc+ z(VZ**$whtBm~%ThfrxBGcA?^P+)aG@bI#p)v}ifxMzVfs0C_dJy%3Oj=meFAKIlF* zRn+Z}SbSG~Y>@ zpM}Ryf7|Vj){o5ABOE#8gyMwuY{1n$_D#`9ou;ok@a(6Q+)kcExe;9Y;d#wmR9#4) zd1E8{xI@OB4}Y#$Rf*?wkYh z>tqX;D*;lzdd07P!-hC;iG2llU9?NIrtv!~|I)|VFxK2039>Klg2k#IYl@WH_Nf@Q zJ<=9KKm!WgM~VtW{XG`}?Gj4@bLym_iVGi1eY5{9ndhnfRcqbOTs{%AF8}43vmvv0 zwumbUPMd99xa(|Fy+kRy2|5_3bSVt8Io)fbP+Fl_jI?rpXSm!N~b;t-loMf`feifryL6> z+*_@Sm`BVR_7DhL`~VG`lK!k59nf+0#jCT)UjA@D$0ifMe7s(`%&N2)dg?+2C+7YC z7)+&Bz50K+(y{gBqaKI|{L!QDa;lw60@pW23m?)R&knziVY#mXzmcGg+ca8g>3yL- z@n|3B4JP(>6jzB1_b{j)Kuq7 zp0e30?AXrN;uLi@TUoE1oDQvSX=&CgX)I$MA`w$=>Ev4*on=7n_DsVK4)Lm04Cj(W zPQD$4cIcQJnLb*EddT&Od<` zALa7z`j`t=q~gY%=)UI9<1JN7>Y_>segQd2Wp%&IQbG$Ux@?WL0M7c&GX=(5mbxdr40vY4%*mh!`dN9#Z|G#la(n(aXOx>=LBk+X(a+qW(ep zq1_t~cb{9*X0%;~TgO(=qGB)u za5a{)1T`UOu|=1ucCGtK*qQh#l>zQl$6?Km_*>_7pA+J0Rpen@0r=r4y4R)i9=k6Q z0k++`m~caN^C!6>zK*+FQjasmy=iw}47(=}s^c$|P!Mh&Yi1GmP5iGq8~(vNZo5mIMvnf?Kny4RXOo6{O@k?w2l?V)Dm6oqMw{U_#gh;PGGx75* zXQm@(D3inmf`U*p%9@koPL4W8#Kq$qN1jwt!+5R_2*_AtfoPAT zKV0nV@Ykkq!q3T7bS4rPlNuvP1!bhFOn)8u4?Vwt_qWsw!Je9#p{E?n-IC@&xZ!a6 zgJVC?K9>#9&sA=64!tQNd>hf#l=x7KiLCm~{aH%b>ooI?O3@?92TWWb9jVu2oxY5Z z#a#~`&;^W7uz`+hkZ!Z_kR&@N52OTzTJS8=x%$TiN2ofZMaGnlpAENB?LPY07B_F~kMda$nbJ@~2ue z7zRrDhMKV6o6>(cS=Oo}YuWF2?hdn4&^8eabD}sSE^9Koq46u26Vb+&@}PiWV(R^* zKtQB{_Rrx}vN{#IrAJW3vhzlyQ=wG<&4QQk84`*wE9 z$&8f;p*ZES^5$qt*SEW5%aqThQ{%A$%A~xb?;!t_O>q^Yx~&g&q>u0IbMzzV)5TXw zKiVW_mNuzRm{L$=uzA{Sy3m7THYL!=Zp<2K0xm`9|L!O%a9?Igr8dh1BJcP{+B%|I|9ArUpFyzR($f zB4O}JgCbZOsNL%R+jKwz!X!)Q88{e>w4-bt6?qteqC7d}zW)LM1_XvenR7}4ahjr) z#uvqax6g&|f~V2T;zrAIUi=Ba(Cs4(hbaT=KNX8Q{=RFN&+*5S|9lu*wD&oi{FvN9 z*!1hY_1|ANrbg#Shj_qAu6nX?&iv35-dhz+E3+rt^!x(j|Cv;>E|*^gW8H(uR2deYEk?v9!3iF9W$hq{HBR2>?3Vo-lgPM z6Le-IdsEVE?HDd=f<(b{b1hZ+gC}eA&T74We<@c<<)j;rwZ1t{+#!Fbx=VOj?586 z4x&A*TaxYkB_S&3`aYPS+7=GGTNl0?u$MgXTY*Rwj%}kx=e8Fww4XQ-tzth(BHLdO z$h#FtO1X^yJc`Uc(j(TF>JrV64K6m)x;qwgwRno?OLOcWn2-<%`y-Vfy=ii@&GR`| zdH)xhc?v<;+Ncqd4=RTN#)oC5Ya}Ma_&G|FOaZn7g6`Ed4CxNJb;6J7?T=5|H}}Hl ztuvfh-zMXMzt_BFWJtOm`I)@+vVb8#bM5D|r~m!cZ9EaWW92FNPIU`GP<*dUe4EpQ z>`gH9;ziBMwHsb86L8h5G3!kesSvmDyc2m%p~dI{?{3$cbd==1Qriz1PVeo+2?e&h z$NUBv@8mS)@Y=ZK_|89W{`=a(5Fa8|}UBvNdiG z)iR4=Hd(9C3&!T+@9{Ts2!F19w7X5p+|GOyLGQklol?wyfP0k3G(%6=abh#@Kg_h? zL!FS}3DsTtxM!-)Lx#>l_2kb>AJENV4P?FLIw5zMwWV1;)}5JB|FEH4i#rgT(eYIU zz`hk2aPF)8uFnq{sXOIBfl#z76nrW*MfkVqI9Uey4m6n$JLWjZ*_$gS+ocf#WH-G@ zr{~NYs>{wZq0fE3ng3r;=N^~j`N#dukU$|3R1hjb5%7=-;i1EH95hr?!B$qx18C{A z)Mm{Vs|kpplAxq!cED4|S(r83%oOpEcF+z}TPrYgZgan(HGi~fzvt?CUayBgc=5;0 z4flOt*Z1)GUf1`%6bp~p7ykE>-@fl2drn<+dY$s=`>eMyCj^H$nazaPLlfWrYR=al z!sIX?$S?Vjb5~tWc$gjV<0|?|`FVD#bt-a*PuRKg^Z2nJdgqGQzGkjJ6i|6Wvh|TC zdsCai!9&@al{O#W7J0{=`8Ds)!!72ko1>nHcM7~~(L>@LkCsMgRdo`=(h}w2XiVi> z&z9cW$M;R%Wpf&ou6>wZHlI)d)s*>ptmN(KJTJK`ThlIG5wPoe0D5#jr+mAAK!t_- z!@r8BZSO0S?~ltz4=Ya{)wr3e&b^wb{p1gyRcpJQis|b&9(kRUn)Bd)AMMHJE#5M& zVo>tAkShm9)`tE@<7~~`9QrqsdwQP#d1>;M^0&&GtLNH77uS8=wtQdmeBGw`KR^QN z`|Q7+6v^r*wM&_XTmK#>eJ7e)Nv(dT`cm6Izv&zFpQp2Txpk15i%xeWgkATwc2_^j zofrRvnQ9dK$+8UFY7&#T#4+n02r^}&ZW7g6VLI&);yFEDARB~Cx^roClCo;7J5e*`Li{F+1l1H(LxhzCYJf5{Iy8t@H$dy8r4eZWo!HS2Bs zag6A!;cO1`xp?m+{y#86wDec(Mj>i?5y|P~Z_So9rk;$|&SorEI(Id3_H}HoizmAc% zHB7m^K>sq+{v@l5v!vYcg=hS-*^`lzV6mrn$G=Z-?`sloHA4m#*ZI9H8vOh0@X)z$ zEb;YIDII?;FI*q`_3D0f@Yp3++(@WnomjMW@Y30DNXdcMOmDL{ABTm!@WV?Quhmcl zfeor1-)*wR?H6TTkD}Iw?ln|%AD##MLFZ(m&b(6@4h2aY^Oxln-{Jdxf=sNN{~~95 z-6y2MA9Ic8+RqI})ffkLyZ@~981TNtyL4}fn!e}r<0#*4XK@#@xV^8ILeBq%JTiXe z;r9>M5C0cJ>01kW@zHyt+hf0@P&3JSB>d((n^lQo|i z!1wo7#Cv6RQl~RBEm_K8|-N>K&PTex<8n{H^ z4*zoVvNY*A#-YfL^Lz2SN=IX)$${{ zsET~p0bkqe@OGG5J$)2H>;Vy$HN1U3|4x# zm@+QUaeom!M7p0fOg6mJ)#MDT>e8TlFaE ze*5q*6>b5GUzpZTq9?>0^3Z(rxwiF$5(0K|x z#WBPC@6R1r0nEB=$M=&Lz8c^5kH>AJX2Ub?0i!K_2`!2mR|MjDC zj@a`(eEpBl_g$UG@1wR4J?a^bpkAJW8{30Zhgy?2ABqIiJY%I>`|oHeRs1kzaA)?{ z{DgVxfz~CH_hzs@^?>K2f82PWW)T|M{F)UU9cET9!Nz~8LTnd&zT|h}n~j1T=Zt`V z*7U#AT{+PG2LC1$}H{Qk|K6$+%>;cJHzjaseF32x#Yx-z;p)UUQcH7)m_^lfJf9DgHKk~oy zm*K{>mF^wSSDpUkU!_|24g7KJd$5r8jq=s4v7ssNnKPtzXTzMv=j`r>{QR*t;XzNI z{-EijvD_Q~`^e-%>)h*y4|=gOM0OYY_J}vLbiTb~xUsZV_UB-Y;o`L@_7jeM3xC{m zF>p=aqg@X$TNOh;#;?BfWA1CB`uU+%MgI=)z3rUQEBwy7*PuNA26motCO7o%#a+*;N8s}D}N{nlJm-Tm-w=HZp>pZ#C^I@OKq`8O+V zmFYZwm1Vf0sDA$DsUdgyu4K;E&o!lQhdTq#a?dI>8*BbPJh%@sHE&=0dU{jYoKaZx z6PMZd?%KbL)Sl7J+CMUOc%*%twJ`SN`m@h4@S4u+KDDj5P~)De1I6>o+FvKjN>A&C zC)ypZ{md9%yjhg!zPU2CT6taaneOYA=5OFXeD!2y+sp7|vEqokZo_^b<8Sk}Q-Jq( zi^u4#>$UyLd)oVGpiK3<{K$;P3ZT_13p$Aqm6DTx!$YWoVtBO{)~A026P$xK_G7(fJUT8QP^( z7Jt3{UuCSU<<`W%ng@qGAUWbofo+3@t-2q@JASbH+$i~bJt?5~ac%zXfbq#cQr0Os ze>iQqwW8+J=Ud{dBu&35Z<20iG+n6oezJE`*ZFv7`3;?7qU7i6?a=3mlk(Mv)4Nsw z!tPw3WR`w)>?K$NcKxH;i~sv*+9y1V+|vWS+pNz#m!8_%5(T_3#ljpzv)^#rZjZkn%X4 zt?r(ydC~Br>V)r_4r-RI{(duJ>mINSzu=)+=&#jh&(B^slKt&d&&zXXR^h7Nulo4s z^Jk75NjcTYe|5ZMmZ=3dkKwB?o>zuif5aVp9eyg}frmrYO+xzprO5J{*UA^=u$imp z23^(qgFv*scA{+M!(N z{)ru*IK4!E`bXy3E3e=Fy*urQ&yN=Ytp0}wOJSIApgRrA4gTBxFJ^^(eiGT1NXVx? zQ)4#2-pW@q2LIr$YK>iRC5 zie2b)xPIQ}?J9rvFRo$tjO8h9n6|t3O5gn)erulBmiPHv_8#QMz)pWcY~-nmGNt@F6(+5?KyQYF3@{_*1c(!`wS75);Z2FS^ z&6cBLZSp^P-{uE&{N-LAW!d-H@#=#|CT+~q+o)W(_|*kvU(KQFpGYiO`|V*hugi|u z%$na2y|J6h79+l^K2Y=bSIe)%J$xgd{Nw5Or0qS@H$ATY+AX#qt|`r-Ayxgr{uXb} z^&edCT7CE$Xt)S#Tk+59s4IIk)f?ZJSMQ!Z7P9BhZrzk^({4NNx$||y@0ynXwoIP1 z|MxQ--yyf}?GJ~`vK9|T?4fKQ`_C2cwM!en=$mIg#9V7rpkA#EUWyX^O%7dq^~gKd z!kzZ;#pK+?{3rInQEb8lJ2WkF$G+>F!K)3u8Iqum0vnCrrR)GHP020ve)|1~L zfDBp`sQP-@j3K&PFHO?^%!xUKwAIF(+cTc#W)=s*raOqjdMV>LEPFrgv37N|>6L_Q zwFi4BGcUCUfIf4!NqhC(8}Q8BieV{2WU~uWPzu7}X~^mdV|oN5j}yskDag*kcp{+; z2eCNIN@u*G+u0Zss!^+0l;8#%FbEvcOq=5V>TI%gxglBt-Q<1|X>N+HYebg2!`BK}UTB8c$U77zL#` zvF*A~bM{*7#|+!J6Gafo#@;Kw)~7a414;@iJCisz4*OKdvJsG7Y-AzVJc#jwu?uRf z-a(!)Ql%^h32o!GMP+oN)etOXpMrLpjCD9tT_6z&^-WU7;@DWfP3}_uvjX>q&(EMU z^nfDeg;6rWi_CIajZJ~8Rs2?)h~&m^ovpLcE2ZImkYG2yMB;M%j+d{peln+$&lYEa zhtW>jXplo8Y}YybC;CC5#{kFmcz|E@h>C*&SPDS95bF0JBm_?`21}FpNxdo%j5lo? zDHKwiP_5SYTcu_7x(3;`7l-C-rzwPROl`2~ zO{-rV-N;aD7LUhZ7Eqjh^!A;EQhNi=!U@JDkR1DQe-GfkXuzzM;t9?r2gUC`kj1!w zuhFd;!Y?TuE#i*N^wCVIL~ZTC`;obN1L=^R3c;1M~9upiOcdo+{1Cun5UN#dBYgKkvX z-C$>}FjkpKW_5)<0ZlQ&%5VHBYnOpTM4=Lov% zK? z+_&{ii629cC&l7}i{{SB)%2bh{m2VQfnp zuXA`ATwgImDlRnABX=`S!7cUm9m2yJuc z#zwp+S@1|d85d8qvt4ZlteHh3p(F|TNH`Cz^6|l^5-S7^)(8^Zq%Ntbh{&*g+Js6| zrVYtxfi^o`eXs@4NubKI-fr%gGRPH{AVxKiV8k&yDg&y-Wy`oWS%Koka1rj*;6*HU z1orhVz0&E*0Y{#%Bv}sExvPruA{pGXu>6XC(mE0h%u1d}h_nmn<$?~)tCB?MFlPmK zWMkDbPn0#q!00OC7Z-cWt+z+a03L(u6#;sQY!*|iR0HyqJ!C2( zQC1li#Od9;b<|`nnS5Xt%1b=#;n1$qgLQIR*OeXwPl5nwEg3RhPSs#&cF`>y%kV-u zvfiJKQDTN*L2LT~7zyhz69h%OG_c)Kg0p~j6`;OrwUy*Ts4!82-zIBGOJeM?fyus3L-@`hUjQx=hT%y(=Nl0I1;c3e)^MMg#eBjL9uaz${+|P znAw~~n}RA8UHOVQW_BS;F(bX+6;1F$9K;7EP(AJjAs;a}Le;ZV#cZ5%-Cv{&mB<*X zdD`W6A(Vk)XD#FbkmI`~@9C=Ecb7ew%q%MJfa87DJHFhY92`l_i}c{4(O91h z8^GL?SxP+qe8Znuw;iUK~KCqS(^$K110s zkL?#Th})aAkI4_UeJW>Vrr`3Lv#f2AVHr4&a;;}*X56m^{g>0D{FoRrnOF_$%9pv^ zE**djj!^$E(x_p%XBRWECT3u)a#mS{ak1 z$|mM2?1EafriD`f;B&P%DM4t}fQX|Nuv7I}{{A$3qH=_xRz(B*XiHX)M>i%T#HX-* zLBv`zM*<(W?qWH)F$|sFB)B*`*DUo)a3y8(!ZIv$?7+4vG`ZTjI9o;J`Qp)$6mfY# z3F$aXfy*W{FurJ%;`kZkGL{XPda^mB-n>t4nL_UJF6xyc^$E!VHh4wJ^#P;)Qbrwq z{HU_|s#sx2dV?InXhzr6ra2%&MmFrHtDh zxiZ3QmAaHOd~skzpAIm)PF*S0ll^|Riuql~^ESf;;XYfpaq396`>FwW#K9NQ{q))< z#krYD5&mI~ao}(CSD-&L_N^gU?j2^gZajszUaN zr#N%vQ96??!21nAXKKm1(rLh;WeL-zIWP-1Bz;n=y<8a)!C)DbcI{prf_d6eD}%`C z;SOTy_4L)|r>h1~)q%q_mS&;Hsl=5`@~+-!KOr2+@?6@Gnd>VhPHGjtF*sghbs{1~ z+wFPu)u&@wpEhx4q=+;3ynBZP1e`f3I%rQplSK-}SFSq@>%DzfSp+A$6E`ZvG67M;)cw&jd8}9U(k;?2l*ub% z;bA*mYt&eODZpt#(3QOp5Jq@^$l7R|vMFm?-wYyQsRse$7jxOa!ouScOUS5k8MvnxsewL+va?*YR*BBOhisP&m>+|?5dWTKPBDG^wst_G; zlA{*ZNfnFqLOpHg636NQC=&#TW;5N`QCB)Dq4m&${DWOf+aOFO8bb(JWlbs_0RYgH zuB-(ZaW5weBW@yC4It1%0y|60L1l~SiqmWQ7B09(gr$0iq&Ymt3vDM#;J1+q3cRmY z&0YlDS!7koLL}AHZ`~3QT!MpQ9j$R;VPqQ174-m(gwmdREgP;<*i*9TH`Z9I0H>=w z!Oy*-KA|8*&`IYGcqvsicdBGh!im+Oiw`c#R4_;j6D;qO9=m;~Df`^HGfjgppgUC| z_f#~3es)=Oh(b4U%sS+iOSYi`YvgHIX zZ*@n9-5VjghloN2-ZeLY*&gYXhBf&`TilwEJ@AThp$4X~!X$@bmqc4taRlVZi_{ci zUN@@QdohU@MkWgY&UIF!uWV8(R=+{EDOm;;4`erNmlNifP7Fkogh1<;aX8pM8eOMd z$#e6tBTp&qQlf@---L8oW{qyzQp>TqfUcZ4=je(7*9dwLY2)d&6?ZLr+z~vMp0sfX zQ9+_G2&nbebp-fxcC{gfXreb*B{2gyO#`j|Bx7rsc|>sSMZ|qK5&RimTr#~4UK~X+ zQ&gd&sDaz;ww%<;#rg(|U7d3!-0CqfrUKrJ9Pm-e*!Y!?pKmy;ag^i$BTD#QOwxl)d<8%O+?$1MRy-Hr)-2 zFqKdXhK%dRl&BEH@phB z(YjNSFrHS{RFKi0i*Yu`_qJMYc*2+ou4e`eh61gEhFy01xawu4G6vxZ`(awStfWc@ zA+r_-&4VK&gR3<~O#D%{0ghl2`z>UqKp+0O`n|gTXLOzc!lI89!V5ytg}WA+A#W;K z&xmr1E+T-8rjY9&D(-WOHlXto=5zKL4^6$IzvVv6>+-zptQ}B~R!OYJjt(Pz@@8dx zbYFI?LC`tBd%o*sMifM;l0MRzAAbqwby?RHcMh2Bt0Y|I04Txj&j z+K=?PijYsAZt?Eoi}P}f1<$|TzBiCz|1Ysd5+l0Qc;;?li6QC9%1Z_74D$+3vMLX= z#{FjHc%FK>WiyN;g0~~RgJA06W@G)N@lt8__oeqT7z;cJj-NDD4vX;}z~IJ;(ay@q zBwk*e0;Sz^OnrS@e~){?=JLS*&k;pQnUv)-^)duSz<5KU&X)D#ab~3grx=_)?Awoe z_q+iGB0 z1XTUYH^P6p>ghKk6GmstlXf!M#fWuY%eYoz9k#T+K*c31y_Q=61>D~1Cym!no>q`z26`{c;S1|_nIsZCaU81de_3$67{FJ5 zjicUOXnf`o^Tv%k{R(a-&_+`8orpKeg|@uBEGwKbc0y+`L}tL4Y$Ol~?gcAI8C<)9 z%IqeoL}4UEicJUy(St2l*_D4!tpN$9TQ@Vb4=Rf*gDO7+-67f83d_WFvs73IxS{b% z^N6sbTu?qjA(mPhb>MaxE;|Wxjk4d8te9x~qT4rfokaMg}fWz45*jtX;i|BEj#_0baozv>9r;v~Z zM@oPK^Ad#4@uM7o-DIO=7@U3kUfa8jDCP`L%Er_uI?N1NO8c#c-CqEWsG?RW)Tm@2 zvGCR)cPkpB@IrlR;@|>Q83ZgU=Gbi&eNmA((!I@3CDebRDW(LWlz_yuWat?|}B*51;0kS4aftu`>U<3KRAz{Ax#Ko0@1JFwCpwv-n86NqMXSh z1c!ofVuY5?cUF;UW&x_Z&rqXcdEZB60}OX?xrnuhC0OLCA&u>5q8U}^M{+c)#_N{3 zasc%rFSS9W?JQ3B$Cl- zeJ|@`uRS$m9lr;zu9SADn)M>L9z=ex4wjleIjD@p!T<=|!dCA)#Q;-(+O5?xITaTs zpc^&LijlA|0T2vr6?UlimL~Dx5dVd|CP|h}0?_d=mN&R%o6Zc{;qp$Xduw?-Rt+%>{js%yamcNf)% z8HOV#AhI)*1b4N*Ni4DSI8=s@VuAzKloQ;hVR`z)#8zvSk_8iS*Fw%6SF!%G*GC4! zL}?!Zq&7teaw1!k)ToyRW!r%yPLBlXkw{ooOCdRz^`?l=+w*B6o3@r)#Bail+3}^Q z3}e};V7J7EG$Nl5gsmoNDk*}QfTsEtpY6wnWXrH9IpR0_4l6zTxyFr2F19lC{JcDA z#fJlh-k};v5K#hJy$+Qp?a#tkUI7 zY6@ITYp_$KbKfy@JwMd}al}I3LAdW0TU9Qss^2sso<_s~kJFx14`|FCS1HALd!5a0 z{QE8yCab}*FB%mLV;w%&TL3f)Kr9#9DM5H^&Fy_%0KsiF#)Jc!dNj0)C%Uk3$i`2! zI~^D7ir}Ql>iXdNRe^?#xeqbpzoov zx8#$$`UXB|BOdhX49Q@O3K_Y9AB%Ae#|QdJ%z`ylBHj7EkX?5BGt-~uaULZYN; z&;-me6K1$x=F%W@g?Kpg#5RHrxE&xPjVT6J3YxQUpnAgxs<)t6#y+tib_MA2IC>MZ zI4#tKGtubD76rzyxDSC@6c)4Lg`3P)Cp)Vk4I+e-b+%j13BLF;dXMY66a_TtX#&Izc~pbSEuHSkm05T^GM=4bm10IK=kr13 z=&NYjq?tvBqokxJ06|7uqkX)s?PxOkWmRckL>556Vd#AZ15_1y7mEfBg|u3B7J)Hr zdC1<<86#NEnT3BTWYHs5!YQHC_Ta|o!Z5VL-6Q2`oK4;(NOl`Biilc`B(2_%;jEAbZI{sA(}dn-?e;_1%a zxIzXgmV_N4wi-K`;j%F`{!3&6*jQtS&}6fnc+|bZO(Yem2etlnrruWq=b@fEX2Kb? z`%ad~08=r&f4U`_i;SI?MO<3o#$;z`3bNYcU;gR#FMFBjgN9*R-Vs{~ zGc1T7j~p_leMbgWIxwiP)!8z(_+8}LlAf(jWZynF!7fy4!KpRCSb_2M>ccS#Vi&96 zF_RK%?RbPHj_IIE5*`QSE#!wHfOOlM1rqRb{O-iQ_+Mdcgo5NaJpqRoyAPMIi5=up z!ht2^+LC=RgjXMoCODr&KB+bP4bV#c4*E%1^aaOWtr)3BokA(Rsim`pD+5!px(-_& zYwS4^^`%wJBJG=Sm~HA3)gNTQB4I3*$fz-fTn>?8WSHIw2KaloJe6tXKpP{G=|VUn z0kLUWTuNWC&z74l7ALfut&U%tdsLo21`epn}>6wSC+-;3D)u_~u z{YfO7LhOrTk=XzzzVC`ftBX)9;$K87y5uZX0wT2V(@VAgr}DxRzg|0K#`_`bW!~mNKHg`#bJ%V=Px`8fQ4g8#? zb>>`B?^7(?{E`cbkCjo-=fm3Z1KU-NuIy)ia!0?oRIf@0%7x24o zF--HFXz~3}v@%T*<#dGwN%Or!RNC_n;>p0z#KZ{e%wvfSpfU;M>uE4plx*i3FSpj2 zyfg}e0rQ1rckN*2+`}l%nN)&iNW)gE7t`Q(M4|l!ZJYv)T4k=+$qZ8GIqCA=jKBL} zEU3D#)=VOwnmmOT9NsT$j*@YXV{&FEi0f&xR8bp{{5<|cFIAiP9 z%vcTMv=e9DAJhG!0By74jcXRfjFru>QB~yvW0|fvl}cv#bI@w`wEBP_dOkMDt+}WP z1XNy7A4WN4eX84L1T9_FNHtq4ccQr@sP;|B0M@BoQlH7Eq++lr1>V~Ashu3cO-SNK KoBIAY^?v~P9--_2 literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/Extensions/DVDBurn/dvdburn.png b/lib/python/Plugins/Extensions/DVDBurn/dvdburn.png new file mode 100644 index 0000000000000000000000000000000000000000..7e7adeadc82e97f6391ba5b0f4eec16eea0d259e GIT binary patch literal 3869 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 literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/Extensions/DVDBurn/keymap.xml b/lib/python/Plugins/Extensions/DVDBurn/keymap.xml new file mode 100644 index 0000000..e8bc104 --- /dev/null +++ b/lib/python/Plugins/Extensions/DVDBurn/keymap.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/lib/python/Plugins/Extensions/DVDBurn/meta/Makefile.am b/lib/python/Plugins/Extensions/DVDBurn/meta/Makefile.am new file mode 100644 index 0000000..1a823b7 --- /dev/null +++ b/lib/python/Plugins/Extensions/DVDBurn/meta/Makefile.am @@ -0,0 +1,5 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_dvdburn.xml + +EXTRA_DIST = dvdburn_de.jpg dvdburn_en.jpg diff --git a/lib/python/Plugins/Extensions/DVDBurn/meta/dvdburn_de.jpg b/lib/python/Plugins/Extensions/DVDBurn/meta/dvdburn_de.jpg new file mode 100644 index 0000000000000000000000000000000000000000..447297120e692983a9d806d12470367eddcebda0 GIT binary patch literal 157332 zcmeFa2UHW!_Bg(Pil~5C5J3R}J1z7c=^!F19R#FME+EnsgxCS; zU1?FINSB0SLP-9TVEw$$d++C>;~Lr;5FI@o zqy_#U%E#Sx>i*6S5TvUM9f2TdBg9Cz4PpQ}I`9Y4aYE~9c?hzh=(~&?ZtS1RdP^{a4uzVPnsG$_e3(Ksq5jcvbZ! zc#WOi?GS!QNK8~zRt^S}6O-VDiOGqI%fTc73W(t@-CDmC3IyGy|Bj!&?JmQQ{4r`p zaBQGs_(tP~U-_Wp{>ca3fnWImGWkX?oiP0m+#E4$=%~`7N@VSq@~bSVFsdwPpe;0> ztWO?%f^ixnKo`=V%oyCdDCXLovd57ur;jktu@rFK=u{jvIAKF-@B zCE4$nTt1){XJDuPBEws1SBK%SJ+Ac1%TAw9c#VVcnODmaUUiKuWR<_}9$hqY@V%Cp zUGb)8Y)M+v*wHU6DW|focYK)*qNfMcuA|Y!xM95{jf8!$ZR-F9o_yQai(QP_L8ajN znf5Q@0yZDLF2$^49s>D>WMBGYi*CHH(va ztL;O2tI}LbZ3;t~K6i&6TlMTqho{=~Jf8>-5{{^S?SeklZ&>IuKnKD39%P`#h&<{T z^k)i`dFHLjUB3M)YL*?bo;U*TMhpGN-5%H-`(Bb2?srh2lqV~fPjc()TtxaYmq5tX z>ilJSH$>lS@kRc;Yep34(I}hKz%%H;0l3z)=57Q9Vw^QK#faQYg?yf^w>(JFsy&h*j>1sbM6TGAvE^ z^@)HPFyiVgx&3^%Zl6ZmdvCYZ=GvS#vPzAWGV!@3eC9~WQcus^qWZ%DhEcS7Pe_o} zYV?=1t;+;tS=iSS3RL5~Wgec1+9iZJQxy@Bwj`LH7`BaDs^tZj!{Fk|?K;^)uSg1{ zUkbZ?Cnh4s(6zs|S2KICpFyW^iy#6|&4CQy^)_%2h5! ztFa!B2@^Z5pn8R%FmjywZd0hf_*v9OWZmkj+S&P!xOJ$VA{FxMhsJN1*6?h-V>ypU zud?67=D%y%)}J%ZLp*E-EWj#Pf9hOEQ|KNO7Z$#T4M1vAme|bcR9}Aa`@z=8rOHi} zk*x)Azelx?{JMJ6G$$0RrN~78=Qfk@Psa|7wd zvwH8v*R>s6suFc9s(tIE`B!;x?4!YqQzt{cdn8i&tF`->yhG9uW78BUa+Ncy>+_`l z!dP!tF2~YsDRxnff)(8pgBb;+rJ7uwEw#}s9HM)MV+Lk?{e`(s`)0X`7{$s^A9d%t8vo}{NRh}kV z>E3*0e-o%TD}PloLg?M<;Uv*LjY9Vp63e+6bx24`-mcN) z2(m_GJh*>pr3cx^u`DX1AQ4kjTHa1*8sMDCi#>UhpX(#N^vYdzPVXIAn_U;CL~dN~ zj5=|+5b?m@gg}8zJYizz-4^z z=&i{?)2i^kp2trJ%y*@atYVr2$>Cu`O^1T6`rl^mvd@VaH!!tm5qf7%@8}6{Fh1(! zzUwpt`BP;pNpa&7nRr{nC>Q3z;E?R4ONu3vjgmxj%U4n;l}Y$lQw)K8Rluvozajoc zhdFvO+a{Y)Cwgo+Gxm6f95CAW%vkOHa7z1!;w|1%JX`Aa%95S)^GXVOO>l4JO7qiP zgo-4iw=f5#*sV&Vlp0qn;S1>2kT{Zv&-UBBh@=Mb1+?wPu&n~iv zds1OYbToe|S5t1+tCRPhG)`vJl-}I_{LNF_syicLeNzm}6Xh}HdY>z5ZzfTo-lJrd zd*!uE$Fvv*H&|}YjI|rh&#&2rkM1s>We?x;Vz{5_qP#^#CC}g!?0w~xop&E^UtjuI zSwOk(>_^Mhg29=gQ7P+dkLCIO?sq6^*h?s!m`|QZ3EM>-OffwglN^6U) z!WR9wxR_dsau>Hd_HoZ-1WgCW1yt1gwbd-FVA4t#((iwk8)XkRBIZQ5r}^b45)rKa zZEi@NqG0tl3Usn?u83##=q{!uxriZBSnNC_$F@~2?mI%r>qYO)eO(vc&uKR7PD$V_ z!QEc!Y3&|;=qbD;ZQmpBlA@R03#McWGsF=P|!P07&w+H`oD`4%}kc4I$`UPeW^)IO7XzDOOMZF=b=R}+tIW<14UebH)t zLV<|7BJV1};_Wy%JUA$icbbNYfRrm5f=nt-faJ?hEioL}Q{Rs=tW>)#s*1cC3qWsboI3 zm{Q;S{G1yibS0s}N8wGUr9#(aKC`W~zW!~_&G*tv^A~GsGk_*|?$epxuQark+ zx05WVDY=g`)$JfU-v-9*J^JKawAq^YnqMp1(Z*g~1gmcWqouQ7YAqYqSu# z+E-Ci@nkV1Zj~pWbk)+c$?-`1`BuGEy6T972ViyK+r{tMxuL##?`=$5{LpUu&^|k{ z=cBcc&ohTQ#^RQR;Og@(U>DXcsF$yZ6k#tYaP@t!KI{@?$r3uf95Oxu*PJ6QYQL+I zk(rrv6N=@MuzGysTGGb;S#p)9#zsz`bL*ToC=Q9jaoSI1r?fS}>ea^aB*i9)_0j%K zwZh_LkqHL`&x66>;z`>;@Z5Q=ZlAoZYi4kpf+I7@Kwh_!%(dCld#ET3_1J^1!^T{G|{3 zETd+K!%|2jwoxZ6W%cVSn#cfsDt6TAZOpF-x$iSC>RG?{bu8<181cqpsMle(0(bGE z*d|{s7M{^0#Vao>+Ru4#?OE-&>?tMmRG@Rn+q<+0c2Da}gRZst)ka8qCnh>^&$$Iz zJ(=V|pec}iG@znaC`yp0T4a>W=}Lj}SB-N<+9RCumPSe%k1{`^tH=&q+O`~tX{JCE z5{nCZ1#}gD z7{Up2`{WNt)7>i!X`Rz%gAMPH!%#Xud@282zHv}C(`_E?UeW!;qmBonQoZJQ@P5K2 zb+=ryduPB#`dzD=bnq_eRgtgqM#8&=KD&Aduq6*~98o{fB~&f+?BSc6h=M0Vcay4$ z>}Qd5Qt*ZJw5e6eo>j$i3UqDJ@E)$Nv2IB;B>rhzcXa3LBERW9l|7!9(@qz^s`QC= z?B|?QB~-2)s#`K8bw{sCkBR1FPdk_1w@)NiZeTZ?X$k9@Q^B^$6L(4(8h?eKX^c5( zPe1t((IZ&1Bv(~pRq_GcBfJ||Oq^TgKZ+{lzEj&;1{P&0#h0U7} zccAa~hJ>v623mbIaLQrp!A^LeNISY<23q?r-D!18VtkSyy+DDQ+9!IJixEa`nIz zmrtT>g;5;^5_^Ln2X(8?P@vmIqwS8}or=5I+VFjfy0v-bBW1CJ@jTsqy&=)$CzJ0U z_#B_I?+y%BYPrqYVIPI8F?UE84wZ2ujr@32d z41p-JT|E-4w_y1oBhkaH4onK?&C?PLHW(3yxYl-CFN#NalOZA2-XTm3Z!Vxhs=cY-x zUmMblPJRM z8#5II+q=*|P2?e--h2cSa3)4q6!tgADjG>vu_;j?Wg^BG>jKv#4If)o>5{9v{AvU9 zmMM93bzk?%f~MyY*IN6_4fXe$y6r2HI;FZShPCIWj#*U-q=zBH*b8PeIaNa**@zya zd+1WW{J5erBzMdefp1w>Lf?%{@VMq%J!$QKk`_9xO7ahrrv&H(8 zDYAaHUH!x?Mde8EiU*bM)|ZKz#N@9OsEdd&&An6>X)!?rdrpRBllWCr3UqO$z~nGr zSYSv21$wsHBWRg15z^YUVB4|c7INFO(m|shJ#sHA4y^B3Fdp+LP-_5FDM2sBf;Bk+ zL+Sb`DjianY|k9ykeNXY!`${SvXR;P#bxCM^wpV zU5?)IGO_7PM?5kXPD&N`nl#VZDss86vWw(k7EG{U6T>*^uqQfyw2Q6NjlQyM0BhB6 z%gN0>n4Ug4^Mo8xh{`9kl6dlJ_+#3bAM$7S9SP!W>%6sR34?Sk>6>0K!;ZcGEQZk| zRJ(y)wnntQC(G<$g3q{BfUk(=Tfd3Th1_8F9eCt2qmsB}P`w`rbq(`S)!U-pwo9e`8sJ zs5DbZei50pYTZ+_Ra2#`#D&H?4)-6VdF)gjSe9d~o+e-3OOzrPPnynApquMc_Of;qC$B2? z&3Gy$6k!5f8%?-5-$=bFeFt``Cf6BDnAW*p&PBbIMa?gvx_7J#0a8CSN`dO$Qy_y= z+gnB>wFP32p8-ky_j`YBJFul%ra&JbpzuQ~zhAkMO#^ne5yH|a-S{KO!t7|}dk-D( z)-2l#Ts!e;WUqrW2T^yy=wAo+whvOZUwF}9JbHpJP#W&cv#>LG2{mDW`JOY>6$oxv zHeMI>PYP@PS~xu^P?OPCpuKl`9^82w#OISeF>Hi0%LfO~vQ5t{?v;x&p+I4!J~Vd@1}Bn1%Db9v0qdO*3$%-XR_a&o+(&UeC~O8B0(jK@{jqH+5+h`1L{xCHOS_ z^M#kqlpfq~&A#<%p#LazDef6>^5}lWULE3{E^?`(kLCvpb=6(_oBf|Y-DYVyHocJI zcqsvW3OU&%qu2U+qE$V5hMp)oo)ctac+DXB`Do8FuT-m^1=gl!}KLH%-Rb zrF~>??tfl;@0#hg-qm%OF(bXq#<0_`k%9vzrbgx?q7~Ij*Y+WO<@zYlWY4ciyD;O? zW)!GVDTe|TSKOQB!SdMn^RMK5@eAt`>^(JoZBY=eeRFZoa8u$-n@++ztlpwIMx8W{ zM@>vDu19n|4KFTytEjnip}n%p$8gki;mzcy&e!slnw`YWTx9>nB2wujYK7~(=2V!e z$G$kN}c;GmL|`6`C5Fe^3Dg3NDpf*Jb3OQ+ttX# z!X?yp$(#o)Is4Cm_0$x#%rD-!0Pdvtl1Rgi;Nj(N^b&ZeQJ=F?ygHgbP#q$KeJ^;8 zr@}xzn?v1qswjsX-9Nj!5O&;oKgQ*pM-Q{_-xlj$b6cjQ5e<4aQ9!Xq_L|75R1PjM+p*&%g@z%q%jMyVbJ~yO66Ra6+s0 zMwBc)vk!{$o-)HT`O}pmE-VVksA%i1+fRFrzm=B$l2FSSX1g#UTtkotaL4@Z!SI<{{I^Av|4A85 z7F5)Lw>9q8QJrGnsa=zuC=J2@Tr6wXRNAREsBWb-xo@OFsL}#3`eSS7H_3AYC`5Bn zt+nQ)UNY!_WKAN}ONjm$INLyGGh_$ZLslU51*Z+<19?I25Db)1d;9D03yj*D{@A~$ z@T2G(nbd1{A6HlKLuGk`4Z_FW4yk8z-WFVaLwv^8o7y$iY#;;R>vKi8J5ux1Z9uv@+u9?ITu&fDA>D8Ntf!R$@HTKV(k`^se!~8Pw;|AJnQP-zp*Q3F}HM6ykH$v0i-QLUE+ujZUAcFu8`)`#u ztyQK%s3qENj=bRK|C)aWA1_w}brS>7)i>c%h5tK57wKsK8)SpEtG9u*<8Lq)TYJ#X z-rrjrsb!#h!UlnGr6Sz;9sFBmCMSefpt7s8<9A81t}(Cm9SmAB+Sxl;`?z|8ER(Oj zm-pXPH~J3#z4~SwM^%I?!s{2|vaR7)(fm;Wnm{KJ?o?Sbc_TdZe7uqNzZ%XaS71p0 z0NrAP@CF9;5Ae-E#ZG^%P8-FCs2xFDz)27PLd&m>H#S=S``D$rxYrDNJ*^eBKEzQ7 z5~>jIf-@9kKR^%_1#lvB02lBdr|}=B@z~NIr|}=B@gJx0AE)sjr|}=B@gJx0AE)sj zr|}=B@gJx0AEz;RF!{%6{Kskh$7%e>Y5d1&{Kskh$7%e>Y5d1&{Kskhf9Nz`^K0w_ z4hje|1SjxqKoBdW3>=0C;4-v_c%f5}6Ucjm6G_W?fEwHXO$}a171D>OAMCC9Ia%+5 zEJU}(&Dz~r`;5k!?{H;zHL45m133TDl}P;r5mMIB|JB0-X?SV7|E=TiR|h1u7R~8r zy_HFdibcaq6MTv1V{=T2dbM@{#DDKX{Ems{s?<)y??5 z#}lgVztBzf51m2K9HeXhUC@{cW4%Yivd7KA%NgXT&eLDyu;$&P`IgrFyNonHFVGR? z8FN?}`sn~1-)hX_nqR0L9h`+Hd1y4ZX3+Smi%rXt^5HHMGZ z*-nwqSW;J1*F)9b$yqDV%U(b5q=9Xqi><63A6$u7!C%hb&BM*!+nU$k&D9+#=dZ{| zLoNsMRImsiFRhBViy|NG(?(ts-BY}(2rqkH31Kl|F(F$~DREv&aba;uF)1+#L0<3` zr;LcGw1~K<5KKl6e8>rt;r({-f&RSg9OTZZX?*JqTq*K>W6RIaPuNdf7~$n80+W@M z6%iE^5fc*vHH44>?%vk^LheZZ?-C|G^^anjI=(jo!qwIN z`v%`N=jQgK3#7NYFJR+e=^06Nmx`PL?~40)+1ji70y6o(cZT#nWB*g0zft$Sv)`M8 z>OUHLJ3IW7w$zf}n6d{S5C1)t)RG@nJ>*oq?5(|lhZlI6zgy4G_f>xR^q0!Ox7zk< z!0E2YNBtI92nG`plP~~Z1dEHyNyr=(g~^GEu2t1V*f~1{{A1N`pAG+36&SIdwYT-Z zt!!s2=Ya5Xvjz%qcC&W07dh`?@5smdL$7i)r!?ppkS9(fLswT$+a2j`?QUzYt)|Ea zco24Wwv$tlkdTsq$*8HzsDT6qQ&AIBQvnb)Rauz0nz-!uwrU7lAF7#sZ)*qIii?UV zE5jsJRi*xQ+qIV!tX=bi$Oq%&r2$Q-mgVZR29yR`5ET`HQPXeb zrvIk=XR)EXGmxa%w{|B%Kfd;A&W`p-DpXQRP)t%9oHF2)6$CSfpqR7-H~~yXLQqm% z6r3=S2XGm2K`~h=L2*%-pg2qhoU($FV&D`P12BL`S`?h1t~B*p5|o2eTtZw-URqf~ z5(ZOKQBjtLiHj?XNr|f{i^|Gsh^op+NJz*6Jy6Y6?v%5?y{n0uGf)MRCJVs!uSKT6 z6iG@;eJi3FgFcvXfi*};N{UN9{L_$VVl$HWkK^`y)QXm>>aUeKq3hIMYmYT|dnjoe2B@V<$ zO{u+z1MyN*&=#b$wm`TNFbPmfO#!taU4ux|@-oy^7SIV&S{+$Qke3#t!li*CKnm0) z0h0wdsVTLstPHiStPHh|tPHh|tSqgLER2??Vw0s|la;0RC`-dBOQl3i6ecAIR4NF} zKu}6hT2Mw%RuG5=1`~vd3Btq$VG@Es#h?;QS`gTS7^n-Z1Q-dhA4yh>yy5{=eL}z zGcRpUmb1298xpqE8O`2~?;F_pZ-)QBAHr)W{haK;H;vgkS-U&hgI$rx|AY(i{{a`& zxEB9y75@iZ*#29k{~I+^E#aqK{Bv>H*?WPx{l}R2)wX`nz)Q2T|D_K9y_Nmj75HCR z+5drlM5uezwOK{vuM^JNwc45tHK=2ewvChf+tKr1usg7)le7D8?JU;%U3)e1zqzxZ zP7E|=f7zga2Z3EbHT&a+L+Sf%!Jpqh68Iy5KN9#Ofj<)XBZ2=PN#N%rOM7>)BliOj zB!7vZb__fkU5lVb|Knf)Ifiv01rfj2QIGW-*3*s+8yFckGBR#pV%oF`L|Xg(pkrWQ zSif#P(}oR9%$t}tF|$%5sIh`LY~c9zvt{k-_jW(7Xc5%tkI}a=(1DO+KO?A_fe32% z0hx@y22g|6t!JR$KnHz`pay9Dwe3NzQ=_Qa`&>;}i=_5X0;$PpnK=1hPtJW@|L*hG!?N0@&H*=4 z@}4xjpCBBOJ8pJ9Fg*1^)!V*F;#$NthV?+48`f=PU~r>FKcfbHQ(k`>P`ttOVvN|m z;x9X%w}0eU*?GpsYhGMHLiG}Rtp5J{wk0nZksXr5YL|Bz#DVy79J>!lsdFB*^EQ;m zWt6@=bhz^q{z`mi+3zH4{1W}`*Whoz(flt+{yj(=2?W4+_}U`8dZ+J^X~TE<#l|-O zuU=YF+Njh%h&kkEcp$W=j9{N^UAK>2OhO3GZQ9k>E|S=C+C_N&c)u4nuYR^GCN|sl zmGEu-!Z-V0oc!!xc9f8I#i-=%YCGM*FC6^uV-=^Pia5qp50#J#@wNBwO_OQ@#L#`8 zULnZkVjtgiD$X1%D`v@iLDnQYJlaxgSaoEO^$-ObD?r6Ke$9rzO%7_UucSanr1A3P zES;jS-^;MeBDja#c$_c=O5h^gp+IM{dPzG_cq4dyDG7XYdF109oNtbB8k2%uJYs=* zt_h;j*pec^7xqt338KsB7(Y@jwrP%-AdL9{;;N(;lhx6~Nd#lo0KzWR+elIi2pD%} zio6L<$mba`U0!V@<%K;ZMPNoX$d0J4JP`3^Jr4*PffJ-aJ1}n_11hV@28c1g)#FK4 zU%)4t&ES(>zSemiQvTmJTOp5<4POq0sAF*%C~@$4t3eg`6g--IzK+0-3bz_Pp*TKb z@lW{9{x9)Of&QOl{C`DWn7@ka?EhF?{~KmPK8#B6_-x2q{x{=fwR z=>NyEpL53C?{fxb`j;6B`+bI*TS+45v!dRCPuRcDUjI;L{x8aY&J38}X2fg|4CK)d zz5mA&{g=A%AVrdz=SJnf^+=m%)4PCNb_ihNP{|&gx}z?yC9_|%P99{$Nq}LF9#x>~ zP#b{~xzL*fArvsdn;z{qd85@o!ouXMP^VJwdySu@%Ry0<~da_$MBrkhlAh-7MaPyn}>(O>wbdP1f6kiczOV6f1i?R0fdBUO~ z79UVMfgi0K?ZzY(6iT=`^bC)@+1?&CG^%!P)2YNO-n+45>H9d>fAXvo$Z8P4xfc=w z?)TqsF6c9>Z#0j%!HbSTptE9LE5M?qO!wVN*BV5&oSNFDlS9~L6y+wy%aT7PTH-mT zF>kKnZy4t5R#R&Dpu174^Tw!3a223`wvl&1*z!IJ}V>;m)Jk8_L8(YiQ-e(`}% zq66ox$&LfPpWPfOkg!w@h|)rVDtQ?6$$85~>^x(^Evu{r-tgoq0zq%}@rAv5#GIk0 zCaAP!=`~al02KwAdH!J%h5pt+P6-5uN!n!zB5G2g{^-jf;)}sbFCa^445K;)CwP|6 z5qMS~f0aWo>ecu^qCn!a9_@=U#iZB0t#45?FF%||b%PbU2XvG2mu~8wgJ2R5f~Q`G z5zt6Y%^nnPcnXVyuXuiu{K3jx8?lvq)-8w(7JGNr-x-O*B=^x6(O?FQV2M1QZ!FUKhW~>c0rS661z6-S8k4HkBsr1?X!2U?Mv2zVUJMLu8nRLU z(B?<~YhqEOiN$4sCQ7cq5#@MDSdS*z!0iGErvtD(`$aCOdy7%nWU!IwgfD&kMaOG` zu~-v~(odsE1sVpE+M8a?2x{rWKQwR)Oy|Zd4U1B>vbgOfsr3n_jaY|hvOrCsf#84I z&`2@ql8=Rrs(!{MW_@VIdahy~2yeDwD6zv*eJapA+1u zvq7yAmE7pj+J{Vxc+I9V?C=&)_>y3uN4&dYLblz7R~q#um3EEXwQ7zQV;Ep(pqA=V zn_kX+4J7A^PN=mxb;2rzY#q;1b_>L`Nw|zlMK4;_pu{5xXfI&>NmV58ZDc#bE&oTi z*eKApI$R*NoL?Wz172m8D%Izi;F3?9!fL0$2LBU5QIA+Ogh{3%7Z1aAXlqcQv>_)h z-w&uU2YB4tP$Ap~vWm$goIbih`iMWq{gIK>^bIXf3bo}{blkGgak581CZ{`OMa+vH z0eZs((r7|D;!vhnJ3i@-L}lfl^@yrPXDv)zRWJ;Wpv<%d{$zzj*vpb zg8*?8#38c#q;K&)%c z6jV5&nk4#yG#E6(d}g7EwB=OJ$J> zDN=&ei*tjIW+RAUNm4a8$g-@_0~V# zPj<(xA`IHS0pWKnZ8P8N2B9{Vl_Pi96Pjdljrht1mSppK?ASW*Jei*Mek9(cP)Sh8 zQLczq>kwRcr=^$wX3J~md9D5@O7df+dUR0`qkXD_mjK3g5nf--B?7|e)JN*$I?0~W z4XD)EfS2{08pY!xqAuwUahkW!S4y>&UJZ9U^G-A_#_P2ICFjZ$y^(4+b6$%<2Xa|X zo-J0>klgATP%GK>^hN;zjWa%lpG(3VzEG5DK7~o!7GR}O)v>r&<&$N_(>q7m!`xhW zU7Q8mZm}EPs@JoqY${IHC?ypWHb^K6m78Y)YscYc6s*&Tv#77f6elAe!5q(wLK z2)B;Gm7IOeh!&R4H`WQso1Qg)xmoUPnUkq9cbdMlC+BCkVr*hPDG%#eDJ2h7+;WKQ z<)WlfimxfGjo#CjeM34$!fIb@Zb67$ZTp9HHH)?Br*P5XiFBDPn(BE_{gmeokJTC_ zC(ZzldDMBw5e(s#NHbb7zz^5j%xUywWJdlZslW1RQp2suzJ`*jbQkGEZiQ z;esm4>igeI@KZoI~b-rr$MqWS=2*|B;j??T&dDiWQJ!g(j2;>Rm-a~mmd`{k;{C*Kz zeSm%A!(gsr=V06L>nj~tLIV$>PEU~FQV&n!Nk%8N-fbMyYi5_zj5e1_v!9()<#7!MMRU5Rmb8zrA(r2-DJ%)d-N8sz|&F6H}A_O zxYNC6+S>cVuy_~lL|MtMM#oEJ1F~5_Cm!8gK|X<#ylrfjnb>J%X)$!7qQ}?Q_fveO zwEm-g{Kq3dYaa;Ro@C#;$ENWtEG3n--~yPqWfrYRqY1AO`_ET!8r>M@X^xf%ape(q z=0@VOvxsKQ#wXMJrY3uqN;P?}pF2S|@8-v#wR?(^_t!*aX4!15e)8#*Dcxj$_#m^d zEcW=W>a%5?kv?T%cq_7JV=E?(s6JFY#tI8iwa`6yMwh=S5Rp{=c&?}{|NV}VmqF*} zU-IqE^}ojOgg$J4nBktBb0G>baZF)i93rD(qdCbK$@0CHt(x5nJi?{{A+ILomXk@X zd9SmaD-uaBHpB)nzy#lf^1)`Eq#H(>U=h4%$mEbW&0(EHHvH!t z-F;l}@?6aLPK?w;A0CAXV$kQl`vHs%iQE^u%8%+ar1#8eb$xJ&(6`@LsV@+#5%t{k z)CHk=|CqvSLk{s1qnKM|c-%P7xT#7nMIucP77$c#=@ij|N`eo6wZ^;GcxJwH;&i`z zx=`}y`%ha-2G*;b*}tf4Wb@3kPgaut^y7CKZ5G)apXbh2)y9#^fJ*#3B=rdOR>A~Z z{B~SULwkUH6Fi=nUOp;-OD_(}bE+EbzH)1Q_owPqldNr(Jv+omu+AG$SA|XM84dZH zk@GC)%rAJbC_Z~I(eQ}^#bNLfsXYmVC&1W0qa=i$R*y$F!kdFF@w%xNtVR|Z&9j9P zD|rsZk5jwqv~6Oy>19rrtH`G63pE!!_4-)6Z|EgAx<|yrIK&go^il+?w^p%!*tB%Z zo|#$6RY$zJF>Wkw^r$)3khhbs3o-3h)~ItXQlK&>**3uNb_p+{JdEYhTN?paK4ubI z+zEbe-ay>fry2OoWKSd>iR*3XtGiu3+Ad;^dtlZujuxJfyX{w15t?-WkyMWBgLT#q z)}J0=$@!Sqc(0&N_Eg0a=TVM+Nw7H^--uF>Xz)oB>EJ%qB^k-nc$!cG7kWQsy(m8; z`Epl~j`qGN4cIA0v3199?R>Xzz1LQeRnE@4WUuDY3#$b4ar9Awt!b>4M2N{}OlqQ8 zTSZyfqh8@6H``K&WUqAglGpV*L<`5FqL_%nBsQfgEQzb0sC0i>O3G;7a_Bwt zLEUhznxKg5SvNRtaHYP;Oub#nUeGAQcubZY+Z(5MYIy2Gx-|hTIx^*imjus|NWT`d zj?YP|Z+n(H13DX1jk1$cYeSRr&HcIx4e8%-#8k;&>>^3>O$Rmw?0*3-e`pqk$^#MLCC+nwUN2GcL02{Bo-kz3X7k@zt;X z?aywSrzPh;>&@O= zH4?|2DI7^mYk)Vs#RX|-Gu3qp_(2w?!rgYc1@5?-FoDPJ*xI}>qw?wjPGK1YCPgr? zo4WbfcWd3t=?s5bivQHePIe$Y?iwq-ve&%PwW>BrEc7hLA$!BA(*3@BwRYdge_h8l zwYTnhWBcgVJKUPK^R`2_c;Uz~L?i2Amq*S$rw3beRGAm@cAO*5hZdQMSmdQ?+3yy8 zV`8mw1;0q5Ah_djIPy_0lrA8sZ+bjgp|ZAVDiy&`vRl`Y}^(->AmM#;A4vD;#H zKB<*F4#+3y;otP)cQy1yC)<{W4_O>(6YzaB zxy`)E|139u*GHag>3t<2ZuJV{o+j>89bB zowf_L4%F#>t}~ldiK|JN=^c~0IF30Opsi49KRS1GvZ8|9xJy{*l)Cc+3oXN(0MGSsE*2hW$11+YkMxN{u+cBllYmX*-=IeKhT$mT|=u3F2 zGZCxC>38(j*(ms~{D~D~!SqzM5pt5imb)GSiaZTyd@?4!%Cc~rt5tNuDp~AvUtPK+ zR)Y1Q=7FSqC$rJ?JU^jVQdLnY`4YwNs`9V;mfGqY6$bVy3e@ii3{jleeV@7a(}F^D zBN~5;C!TX0gxwu89+?|M#Q0!^L(Bs*S|i8j_N$MW3USV9K1K|#9?K$V4e@BLXEuAd zV0pztNa59$`>q#tZFzZLMLz6^l*f1CN>xY?fMg0t6}Y09a=jzY*gNpM!=&mCz66oN zg|FTzDI;=MoA3g+M~g%TGeTcQhH^Bn8p5s~_5<-S>7;2p7!b)xc z`gjof*yr9Q<6gYg&Xk0vsY8O-Axr*Yh19#7GqU*3)SlV#!nAiKx5Y5%SLWp9I5CmY3~$sNa2kN5I#F?0(mMmo+@! zHoJ{BCt7H3UCy=yamsJMBvp1}u3T20U`#*} z3<(w^A`PvAgiI{iFy#Ep@l~a%=4eO0^HTGwo?L=B)5i;0D3e2K*Y95)ZH{_>tn;{j zOp-|_B7)=9#s#T#vLC9&j^Ki4&`R%Yti-0uh2nQ5PnXxA8qLVn%!zT?@6B5GzVDPM z&So`;Hj{+u?K9=SdsiM3{oHhN5qDBobL(oJ<9HZpbk`_+OmoyR`9hZUXptnLx`lIf zFrFxqLRzXaShh3?AIR6m((B&+>@YbtkaNZQW%g|cCVAG%MOeB?a<_sDxFx`w zzddnbA@BQ9=-&^+Y>}GOU*( zR3uWk=p^WKn*HIV+icYGd?A)@O>U+j-&b5V_ z=qH@cQrNa#o+t8f)4Gfo(yX5N7&X zCzZ9BC$w<&QGjh?-=5QFLQ;1JB_hf}j4A-V1kf`zO$;eVIqy^(}D0@qWeT6X7$Wj^~mxJ$(%6 zjxpDs3{-LCZ;N~y!Ir%7l^+t%Bn%!t%PJD|bICy=?jbe-{q?DL>Jmx)_YZ>SvPX*w z+{&g3&EFbTcy4wvb)BB;(}5k1ROKw)h@Hl*`zYu9)$_XiWlZYVVljaz>&YcF{x&)h zM!@58nvJ_fc6eST(KQA5l1 zT05S&b6uJUUe&jlgQ)Stq^ktK5i7!L)X_=e0gO*Dfor@F*+f2{`j*S++E}N4dDq=* z^8EX|Tsw|h?z84qKGtPhZl9(jdtA+jVOCB24WE))W;(d9x}AoLDktb7Mir&idkQa1 zjKW(Ab?`b3yGn(MI}co1(SKa4CAofEiebC(rup!@j~KhMG)$Rc+iR~$gc!Uqy%-tL zFHa%^JZ<2AB}pk<9ls;3T0?qUjAtEF%w!LYj+fkP)_x%;L(SG?j=wbgy<$)~`bM9} zQ|%FWd~bxBwa^sefPRn|%a z$y+)$J7BI0v2 zqU-YM(}xo*wtcu%Y{1U29H09#TK7;(E8n5w^mDeBzO8ULd|aYTuNk$EFs|1wf)aC8 zXduMcu8+Dmx_Q;CT_Gz&!-j3B@V3#!)S%Ea#*fJ&+X7feVbAZ&j4>5Hjf>NN%@Y`u z4@RRS*>s90rI&pE61)k0cp@+?MuPR|!}7ZpCa;5-TjKV=Jj+xTk&@FncP{zF&J(ZX zNal!`s8}1xO8A@A-8vE{Fg(Z+5kft-2`dod8e*?Eh5_?5|LYOm%?mz-@rilNHD!HQ zn=vB#r=C=n(hnVW7-0~!V&35+*;J#%A0?q%W}ke!fbj~w_TJT!rL0q0Ij;LQ)oU-m z*p#2A#G}D}le@;RI-h8CXPrC1I7{Xb;@fX|bjANoFEHtkkr`Jq zb{SXBz9NO4RnYo)sJyGNnaL{QScB(2lk+ni+_&jMKP!`y-6D@fi#Ba&qYnoE3t)>> zept$^#+xCjyV;8`U7a4}q|A2ZMQv=m+{PSTp{0E@j)T9%q=(c z5h3z@o~LU;VJTbXg+nKWimp798YmYq*){qOT6i8bXysTvE$E3+IcUG{-x%{cb3^|S!yxK&kd0l>R zk!xt_OXp)^6C7`(u+3_#Uq%+X3HknY&RMIo1I}&wZJqXAg#LrvxA!?87m`0^cj1V% zc~Q808~jYooZGHd0nmY@-Q!L3bv4*CwG=4PDXe7-xN*47eTe;f`5Vk1HF1E4kk7g< z>DAs@V!|@16g+>Xk!A8_=R9LjZB|f?+kNm)%#u-K1^%19#?1M36=6nG_u(I3LA`nR ztxhln68r-GdBX`RrRy&!56$HP_few)d?AjJ)P4Dq&M?bz@bMM0>32+^lGbwdq;Ws^ zzZPmrep{oz_H#3dP)-1O+JexMx|*9;g0q)J+UI6ABe zn5ijRY2MW|paTEo>MxMPOC=LEn$APiz6@UL3N88v)N9NIcTR$7ltwo+Q58+0}n-5NgJoRil73eHbkYCZi<@#&Q zb8+$9_H>I!u{7GjZZNgv?E2_$eLDPPXH9&l(Nqzl);09J;9q1#(>%~KjlovdH3rWC z2ER$~<4-+&mx~i-f{zpR>Jd-`Kajc=iY9b`=yGVrKWNln;JfsGMNX3*)jVn=t^*~1 zR}B{Tvr?=ARi!_Xhh5U9*#=GTXrgQw`TX-|#Y&G1b&3irI7atzxi z;WO5V0aRhw)v)U~!W!a2nR?4iS}%5ihf+W!M;x6m1stke6<%PU=si=(NIn?Ly|m#t z_QU5S$KHjVIYx2`HBuDF@ruXY`bwUJvf*bu5}!9VA2&XAg*9im!Sz+_?Yfccri`rO zpVtSm<@PU4t(f@Vuk${IQ)6(zvs^tR1<$;D0Q1FU{_0oZ=myxUkDvZO>fSr9sbm1anVGd`X3ebmuJ2ky5q+79fDN3x_tRDBmSaAzM$NM< za|%~T*UjQc_0wMhy*{=xsfpLte{s8NPf>qKmpx8944N0mYIPoW1jz9Ps5nu(z-zL4 zl+ATTX?=!eqf!%EBeT6miOQOZIq~uQYA$!9F}Cf#2|MRhI(R%(&Xw2UsyBbp&F@gN z71pUXh#~LnfnRh!Rx0okKqymxkN3Y%n}z=x{+IRi^&hB4!NXs4QUA1{`cvoOV-?_n z>b+O_MVi{e2+1ey*7WJtH0xXUUR&@BXnY%YQ?N+oh`fk>uu2*eAuW*#8{f)^9Bb$u z8j2K6TjtsMN+%!ZIN;o3TnpX!?glbIJ2rbA_hET7n|-)?H1$m5ok$8}x&N*n^DjCs z8Qjk!d!VAKvB9?_x51X<&Bh_itv?V{K}KpB$S3%~xD>r72=+ixRyBHl#4l{GY@h8H z-6?R*5&omFE$!7NZrNcK4oGKY)84CephH3Z#IVD64;_gAQ85VumK@&xU6TEuOTL!+ z$CB;1PafcEc@|5hqa}lPGzN?9rR~KNOXv zF^ADi-O%4oY<3(lFQJF}#&Kj9Mb!h-;K+aYP6>nUEUmx~qn}^Ec3J#lUWs>~TJnM3 zwh)N5xe&>`^z(%3=cGYvoS&~8R4nZr9+Dfrun!kqr4J}Mj{HWb`sPR@)Jtfh#WL?3 zyRd79BR;(03tE&+>|51)eV#|0j}g7%LtcHxIAowo9`2(CjDcQf+>dT_zk58`4ew!Y z+D)aP!RjDLtu#Y}Z#oWGmY|@h(ZnMEBy@LWJk9JqZXUjEOAGhO`aM+Oa}17X)&-8? z2%Ido|9hMoVBiG6l7|}c|K?5qy2vlO|5_Q048A~jSAmVV{$nE=-vi~e_2Vk1 zsrc#j{!|3D>=vkVqkFc$s|cXEh*2{3B=x{fxCEUy|3#+*N$i-~!TxK_t^elVXp!i~ zbvVI}=8aQZ!jV6opoYVjqKV}@!7IRfT(AEhLUaEi^bM5BpJGrKP!WST;tNKA1vkj} zFaQ1X1I4K|D(lT?=_H`{;Bo;PPY)rBp!1=azY^_lA8oyZ3LiuhpUwR4iI0Hg@2^9M zQ4&OjH;W(RYqE~SSG4n*XSGUHWyDF}`yPtgo;0g`B*pjah%R(9FPwH9x|HVmBO5wC z??IvkfEUW@uI#ah?OvcIqraq3FBl^h8V3e(%Xn7mX;8(#WK%DU{P76=_eUwzi|=Rp zTm}aJcy##pzf#Nz)SUox#DSR&sQoZ-tzw2gt4;&fHhpIHDnQHc5CqiRQ;A?X|D60^ zbi;9w-IE{%j&bv<$qx7|@Aosz-=z4nGXDcJaAAJ>yRr*HX1L6myaM!a>L364MVEa$ z*Pe!+9R0H(FYPllAG)YRI}OTOYARK6(~afasmY%agFicAV`ku8KU9N#(5IC1@YxwR z^)8XOn!KBWS9tYv{9ZSnc2E{pWpQjfT`I_RFQL5ec%Z zy4P2W{tzXuoRbiXJ2EOFrIvj7ZS_i~*Q0|A;-OolECFedPuIxZAubp1utc0ZPn-_@$Q>o6ue?&=IUn zw&*JZ1a{17DE!r1d3oEhBo{gJOQLV;Z7caJyB7aJK1M~%cmU14wuSCO zNYT7iOK#Upn^O3*k{A;|S2lm{Nh&@f+;t;>t_3&tO{>7Ni_Oa;y|!~$!7`&fiZk!* zsVMT(q>Hb=TA8dOg^;f81df<0uPd_~b=SK!9-b_e4}YXsekrzQ1>M>Th|j|4{C9oO z0!rE+xXen-OA0bXO1>Jf%;ICV-A^b>R`8)?dk@Z#(bS7Pyc6=pZedHo7xNZ9rml)d zHAYr;^<-U;5Pm0i^_kGp===>&@!9KO&cma>=z<}QC(g@-<363D?LqyNwA-v`Ot77? z{qk9Bp3QZ9R;N&3&#}>Jd0!XEH9))DZ^fGwE$eJEe&&8mEE}Hz)mw8@O6}*0;Tz(T z&p@C3E_k}!_V%s{xaKUE7bG4n+1tWF(^^PDFR(+^mQdCdSYp#mKCsipMk{9sopvaz z%^d!LwU6P}E*8p^H-&;F_m(xaj^0k>A>0Z6(lbN1O8`XBNQmSbB)mkKNKbLTySj?Fh(SuIs*n|>_ zJ^2uKQy-Jwrz)>y8s^k2!@q;^NAW*DwspL0r1C?^s7o7SO#Zufq4QL6u)o%SCZM}^ zZQGjE=CU#rt}g|!ytD?Qs>n?q)C_m`0;|GuEOYB_FE%sLwQX%V^-QVPJF}OmUJ3B z$WuNl@#vDC<{dMh+tQRtDkmo7QsR2!6$*qp7fr+^Qg=vVytUMMuC#YqLQ4U;4K?L% zL@SqPE~$2-!+Ni6I3^N8C4=o-UJrz(MyyCp6=bPo%I6gDzI<|mLnTh7kxXnQ5EAI5 z(YA*vwezy+Adl8Z3_k^4Q0b%KTT8N!7~jFH4j4!k+jSk5?qK>P`bpM4ryAXjZ~za?wSW2T0xB&A%7_zyvk#HyC9KKXfOl1;Z6 zOPQc~)*4VFD8XR~rPXy!S6|3D3O zjLYd6aGj2gJkNN2rXWx$=7uz3&bF)e{e{vjuTPpi{jv063AV+rMVE!@+3mmlWOx+x z^;#=YehqnGK4Ouji|kr#AMm`_pY~FUYvI&6j?Oc#pE}5+_)*lY(V#JCdQJsJAgRb= zY$@}Og4KK<+D*2gch#2V>kwMecU^qZczhCd{}&x2aL^A%*crh%?pbz$rB!e2kp(O~>L?Zn7ypZF3DIjrLEo zty(E%Ah}&q%F|zkg;w>u-o$b(TC}! zFVBPL8^w*J>F@JL4Lo`;Eb_P;K^ z2t8LQb){k`YHF(xe8R!47a2domfmqGS3g?z4=9V zH;Hx@S9&|GF3TR>%jt|VBBQE-5MXYBVD2ad?anwgc(<|!!!jf)t^2UXfc>gq?9n(i zjtDi>In(oMlD1>BHze?)1`t#q=ju~J(F+ll)3XGTwcW=yD_cgZw)JT=M;AB-nu4Q5 zwdjoeq7!NAAe|wYklB00m)MeaKW^^3IWK68*l&fr{6Tb_kGfoV$e@$XSuw3L+5Q8) z)+Sfe%D0t30k+cKRm)^bJGV3UBPA8lLs$BiOID`$qkCx{kHIVHagx$-X__rkRv(-| z55v0LAZbn5tpf$8+#&1!VD6D+-L@opM_W&Q=GWKgugV|=&G_uDe6$E({@I``%N0g{ zV>XKvr5&*g8&KL0tDkGRMG?!iqk^uMbjccO8MTAlm*oC_`T!)JNFCfWD64IZSF^e) zwYcJiOb$g)t5@0EM|{~R?D$~!{o(f*&i&0=-|?7_)NHImgki>)r%VkgFLTy4tD_0O z=){oPWYFhe+cOh~awz*UNHb;#4T_fz|4^c3+OwD0xLTW0as@|u22Ex{F5tx-TlB~^d3ngr z>E)U-Yk^{s@GG?z{+?GJb`opeoT;BQo|KL=EohTD3JEM(J&D&2f#=B)z0>X3xH6f7 zQHo0YU0jZ%(u{acy+QIB(CJD>liaYRky>w{+V`FH*KsZ1oaU{LA(CGs6j!BrAh8%q zIrQOZe8TtGpPiq%`P;O1EGk!(^w~Q5tX?B;;E(b~J(X5DLyh6r zAbBfnqD9^i$Y#m~h6FEY6!OvA-CoV(fo>(bZASv7(Q~|L%lx7@pD*q`L;!9{G31JS_Z*MXl{wylBGZ~#0#TFz;I+FKy2_Kd?b&;n=~G~YbMDmp1>gT$!~ zqcFy;ZMh^?*S5rUwp(|?_%B}C>>IaHqdY z`EK|0PG^hnYttS#lBR1;gI4Ln*`JxB2u=X|MSQ4^)tM*H-(}SIVZ<=I+w!6?tdn zN(imwx4#KZntW{Xd={6<^(flni;vv-A&X>bftWIs(R<-*Umh=b{s673lUeoS+onZX z-lX&`R=ilwp4JP_BKa5ny)K;HPsh)Y z*`6qLY$>V`_Oh)0AUj5D*Mjr5;P>3cP^>Cz2G^-YKpIz;x5%W{u~zL8^@paGb!KNG zM_);^M^?(#@LuyXjxi{g3;sN2t5P2rKI)6@0o}mJupS6ybw-xv3e4$J1c_bbLaxVw z`}n}*S&I2rweyzCejmuz%%KbeS7D(cGdHRNgzJ8;cs_g@WmRmu$rQvp-EDZZEmNnD zg6&In>&O5NQukOb!e4BQm2(x7+iEb9d zdd38wE%d}UB9S@1_e~lx(~8f^4-YdGPMRL)d9q;frp?Rmf@h}4H^1oNHI{x!GX!A^ zK_&JUteU0p8|itZddA;)a_DB|a3s3-0T4zxy@SW4?X`phjR3fh zP$Kp)@j0^dJMpvedd+nS9p^o3``ttmONG~r^$>jTFW%KRep=D{vEwy!s9iYsP-}FQ zQO&o5I~g7RsS;xxpH)(E)Uj|wa9oo>7LD*abu4>|X0!~aL=~goIi1&fFybH3+UT+(Jg|K&oj154ovSu^wqXX(&UK?)6L!whb1cIo%famVWPj4sY40UE+NUJ+{o^~_g% zf7)I)p)&&I@u2j@N#S^qwYt=nTJn#~fB~Fr(+8!4{4P=&{2I@q7TPN{xQ(Li=7aFr ztTp{I(UuE&St#&kZhM4N&ulK!MOWjs?mk9q3w&dFxZz`?a5uOv6f z{>cfEW%3)8fxawbSQb9y(!gBwbMZ|16C5wUj>RsFI=i13@*mH10+@hAAkYo0X9iK3L-9tl-CahgHN$=`WN+Hh36 zZC0L7;}DbJgJT|P7p;Q6elqwzkz|sFvPSvi;=!c^xx6A)mfW(O=#AA+um(m}MJHR69`g#M9t<9DnT2%rBSJiosk6<vml!vFGoyhLoui!Pyi+NZaBQTB<8`ccl~e~AfTp672s;e2GpdL#se< z%n#|fv`aBzt*>9bj#B-P7NZ6~$m>CG;5Og4>_Y$O6F5-`x*Q8ckE{<=?5~D8Rd5+V zd0zRI(h1MMgp5E+c| zXN9+ng!E4?=`8cUi}cy&IB4wG4!Y3z?zt1R>A_VCQXnzMglUM^9<#w@bzb^T{A!{8 zA>cJ4)cKoYOPkwtVZ&3Slep7Y-`u=P2iQ>OHS{wQ=9)BLiSx8utX{O12EIICt79u?8vQMVDtH2-nty^pr?gpUZJcxZ^OnTN*1(s-8MzM0gb=T=D z=MTTW(_Rq;bp-uKAhS;oniiJywT5Ho6}JJ8Q0V?4Ocik7?bYyyo#5~a3fjc%B-dL8 zA%58-A2^`t(U138?IeAf_>yBVO34ZAv6HK#CrICk+agh0gn-gn4K*a|k9zYmfbF5L zhw{wB)#;hhBa$&sGi^Thv0*r``pq1zE{mFvE@ziGIn)uHFL>^`Tkf%&Zy*;e^c~Wc zbNSyL^_B3YBwdhTnucnxV?lQnaC@t7w{50y;Z{Cvu|asof^4Fcv8nOj&tru9GylS0 zE_DAyG@k;OWY%q09EpSWe!cp)M>dbN+um_Nf^B8d_`Efum;B^W*f@!Twt1*XI1n<= z5j(DsjR#lqK~}`9C$&_J#25o7Dx2)R|NsA^`@8A9u$Syi5CO^6vpTc3!g1U?aX;$Y zTv<3zL3k5k$K}%!ZtaAgJ5w)9k)8H}B(_pJsn32!EqEbFh^9F}2ig||= zUVwDl&>o>~J=XC4 z)e;9E0) zXjyz2eoLi{ilr7%F+(^3Uj%sW>=jc$;_-gQ(*e<43T{aWn-iQjtKyt&4Vimt-5_oM+L6~ek=-~`{?f|X_V%`zpqB^liMfX*csry0w`Xv zN4ojGTsUiH7p`^w*i@_!mo2!^fbnFax8b` zvUzFR!F~`d@-P-KmyaK0@Lw1d9dxz>BQYilWmMeEBbc6?XA#T(T0xK{`_nvc&~%m{ z=?XI>IH|fO%ag=M_A4qFTQrxd&?qTQPEDY_ZXO`lo^IpC%)^Ylu9+KDqX23_C3T%j7-$L)#Nvr7XEId4gcbD-)lV#ECN*ph zrH?yp_jd9(WTrp7?JqB)Zu^?!CVZ}#<5K9tor0`1Xo89bc|9$thzRfA$11FtkEYDK zTvG~LfQo6oMMm}R-i>XGJWYOfzi#2ac)if)`sd^2AJe<}x@*>CE<3dGa`P}8d_P5k z0_~7K_%&o>7nj;7HAFfo1uedo+R-Hw9$e6O>|o#=_OSIWZ~h7e7LLSu!)lHqgHY#< z3P1B0^q*2RJ1-b^hJD-;uG0I?0?kguS?-RH;b&=ANL7K9_w`imWLpuX<$Hmgu+}DMDHuB*X z;8FK%XLH??Y&BIw4KDaGU4~XeawV~RmzF=BPHDx zW&27_GvboY4Dv5y%a2mi-^(4>WDfkgZ+!qngCk`#zkUT6q_9jwdUWrZQme=&L{#Q;#$2Itk9aC*#>Mq(gR{2~+v~MtOoQzgP z_exnIg~)LTf|a%^<@1XaU*fv3m1B~B&A7&}iRsXMei2vp1=b2{bF+6BWemGcI+;HA zsJ__37B8I6?hO^q;@VF6_Oj!1^Or?RB%J2iLBXq1s}O`K4f32pHTnEl2g>&q*UXT% z*2{B~czb?XgVrm&5!iF82I@1y)DcP1bN zxtE!c#_TXT>n=O@v%lz4-v5}t@7Pmb@hQm!^(474f=S(DxZ7i8?#lAlv3>SR#~xTg z;?ZadgywmI;?gyf=|xjVy4wY5J7kJ z;EhhXi;b`~UyV(?*46oMQN-7u!Co#0z=(jXEo?WDT8)D%1A$s>+eL4*JRR82N)av` zUcQ#;`@-=+E5=yRec^4jAkY-VV^S{FN*+?bMo{xwknuR&ZZMh2Q}Kr^zUnZsKbCL(#}tSi5m&-NYg!m2K21_nNruT2Zn z6YnIzLr<^9QAxZEisN5V_XJtbx^MJJBW*!DJ9!Ix4TZpNmbrIU#p#?+(H{OwZue-VvQRSEZYeamYdZQg=f|0U z_-h@_Rxlvws{aWTW*E9W2LeaD@Vz-8B4hDq_9W+?#r5B zdWRlvU!bYuwmK-66-PgX{a49bE`T99+Rj;9o}kMx7JJ}HZP(iZg}ls~h*&R`PPWY? zJLQOX>mYa~hOXqdk^JpR>6LWaVb~6)&>vgEOVgep1L!_8XuS2&Zs>w}h{DAe{xIG; z!*=fNqLQZ3@iXM-D_I+_a0b0ex(8!EV=cAwrAWoa|51Xve~iTae?fx&Mp^wk5+o$H zlYt&V@5U0ipm|>(?PXcgOi(r`)!KRcN3X6Z9$SuR#0AAbSa%%W>vnBn!ZJdypKh3r6k` zKX=61CW>P7$aXDRdvX@tYyEtciHEJmOp=czwHgZM2%dVW@)j}Y*RAkI;)r#O(DyEt z0o?D%9MG4`_d4x}ZDez^S9IDw@IN3u07+d59d%8p%k;cgnT|Q|zJ>wwkr!4U|5T z<#rO=n9J_Nkj>ymbFCW|_cssjvKD#y;eEdHU%q_z`Rg~Mg?*RX?jT5%Bx+|rJI%9w zh8$!L1`fQsLhViJjST(-ElfMn&#cRIVoMojF>HN*b9dw5-702RqkV3v74BC3IOo&1 z75{DJ9Wd%P7Mkz{iReaYP{+_Uz+RO?_Se+k)tY{LSK`!Ez0Q_denbn zHE17;vPYSND{41*IUC=IIj+#Ku z4M30tNwx7%Q6&=1iEiRC&lk`V$S8R}P2)K&%8T?=7m<>_!nIn1;=5aqPD5VNPY??H@bi*;vZ%uu4U645DH@e1q2_NPGXJ3zbBBz3qi6{|E@^ig_qrNqo~?84yY*L;^t z=1g9eT}H^4yPcEYFll@nop+x~TQF=!-siocwzY2x8Ze;i0lmN}0u>Iz1InbcCnzTj z$bKO}h+rmKNX(TqD6+nO5sadqvn`45zG@W5mQ-WHo78&ue$RJ&o50BvFT&x`(V=Z) ztO(m^npY#4ZH1yuK~N-($?$abViLSZLa}z9~ zLuy_*@@D3$f^a%h)Wm6#1+(av-3?8O6j=(sTg8hkwt$GQQq;8OPWXG&NbnW{3NN1$Vbdw^J2nA)&bIo^~E{5aLwyDN@7;B zEXsoVjQWmRI%y}S7=7mp=^Z0ZQ4i#hA=|$01J1{J z5QX~z0a1QZz+ULo@VtYhUWx7EoAwrBs&zZdez@_jjajij%i(b7<*Uvzvp ziKb=}R+d2QgO1buk@)Tahs3S3GMqNT)I2wVG^dMkQ*S3UYbA5|uCx?O1Xy+{#%alI zj$OGv5r#@D8u}2P6L=jMqGV&hy-M~JqKR{&s zlG_8c+Q%pcA3ptay8O`^SKE0J@A|r9MIPyN%`9PSrcZzd=@yVpoaye90bax9oB}Wf z^L;8vZBTns+h6ghzMC*z#zTbCP9(fLmE&mq^yN{nix+!J^qAwg86HeT7T~{k#t+?F z7867F{@#qOUC^;0;G47u$r$X;!dUB5!s2}0Gz{v>t&k!?T|r4VoE2O*BtO)i+jIVY z`Qka+s`k}|WUqd`hb9&=s9Sip#WuPVV&h3b7|m-1FG~xKH?#7li1jMSWC8F6h@caf zEhTt3Vy~y6Bc(+7KQPLo{u_VyO}gtF$Eh|9=}+`HxXRe_>Jy{Ap4-({6(p7{Buj zB?gVD0a?oNq{eUpFGWNNTWZ~7P?aHx$G^?EyI_zh9X;Z7-ui0xqa3f3ECm>wW$70B zMKU(BUQVh-*j2o5k983$6GQ}Ffd;YMP%T?h3{=>#TRE_&C17~-;JTSgr7$>Eta(gV z&tGEGOb>O}dws~h*z-KKzvEJR6LAuUVUGO?Fl-)=1j`45+H-~k!JnDw<%D#;*y-H% zn4A*%H1$DD)J^0v#--Ro#rl0Y1HJ0i-6#CcH}F<3VNWu?NFnLvK8!^>K`4>vwA6KC z$tbBbDc329%d}>|eQU#Z&z#`<$|vo(kZ+-CUW!WDPqokCa_0KXahOUDhY!euh~pT0 z4wx=Qmiir+=~@C^;Cf5W$G%0zTT{0O-12J%aN1wne>(fS1p36Zhx5wUXj>R`f1`4h zi@Oe8){)*&@>9V8j+*9;J~rtd$D@!h@Q*oMsrTrj@-t(>RC2A1K&O~Ivag3rl{|{6 zYPPT>=OtDzq?A4wam|92%LauSS6b&ro~wU%!|~R9)oxKD4E~yFRw-Q0vEr^e?^_rV z%%j-X2a|Hn^yn{9s!jt^=&pB)UgoS|2mJEluDAgE^)V<%8>g)_^C^$ zO=c~}O{I^lDBIQ8qg*#FyX*YC_q&>g(@K&;OR zYW#2oU7u9n1>zvVkigc;sDOgMa@tg&L5=J1V%+TzquwO7f(~XJ1FIw2Td;J&m?8=` z{KkT&fPrtkK?pY0-jA#QRfcHIAz=P50r%L6QI; zR5WNTAKiOfg9yhrn{)>xQRhXX69q4xjhCwAWGlOVs7IWBKqC9;g*Sp%VicK!;yE8Zz8d)2n}}EI}S2D1dB`F|`8g48v17R#vOlOj4tkxz@L}>Uc_cExi^OP`+DP(CTC~y!j6aly3t)Qd>&aK3GfDBq-I_`O^-TN zK_xUCTq_=jPtT|!@~oW5=9v4hczvBl2lGsxQC%(P`E&6%bRy%=tBmLm+de<}`tZ#% zSf?1!MSzkE?oivv{>eX@<}=MHq-F%kbPIdMrQ_!4Dx#$M&SomS#pX<(_gW68^P;d)qBHM9wITwQo(cDu=4@dZ0afn43Wc0+L%d7KT1 z1QwHpYKitwpo)VyHvw#`@Wz|~h9Ae%SOMOP5yGH}*aJ7)boIU6S5V%oX zJGdJI?rE|pH8wBm`!8qJTbF0R6z&Wpc(**5fN@7a2;5)>fip|z(bt1;1~bbOv?i{j zF7e{ymw&%T$23T*q^qOcnW~d*tr3dM``~S0I8@|HdGDi#)_2>ZJlwG=>}6{Ao=T2yf2A3 zruuf%Y$mtlYI$<^(d+= zWOeRmNdgqzI%?S$yAYk0C#J>fVS`#C{jZ-WoK7V^WD-bUa;|u6z`dsBpAOCx5OCt@ z!1z)SfN#!HrK+7$+4MwvIG-CEhCX++l_TbYxu-LEOS7-ipC?QA z?px}gab%w2{=doOIYwrkeEgpWgn^O1n{R!AdaFY7k2`7V3rZs*rDUb;H?$FAfVSCnk z3VPOn1X}R_v;x!q9=irE!B+p3}XTo=FYf`^77$a*G#o96nq{;#m92*1O>A*vYgN$;*~Mnd*-jgemkq7b%l#(Q>;e}_?XrAoBbh%)aZjGb6F4OkxT1~m(2Z25c$pm+Qr9*N_k(% zVPS7sn0cWE%j$MU4~49rmMUjQ^S{h!mCR1R+UaVxT?>920#V|~Hi5jouS$ldN@evz zC4tkkVzS7$SAB?8gCZqtpFWL~OnF?2iv&^<6x!sUZd|AD=omkLe#`wTmo6Z6Go-b= zAt;9w-33zyB)dmdTqq)WrAY|eg~l0t@d1xk^32DQrR~^hJ-&!5Fzvxa$JyIj2dRjZ z{^8q(*;DRJgPmuTH@96Ffln~P%Bn-p9`DMu`al6WD+5P_JNpOZ*SVI=k4(3-?>?+S zmJIa>Xbs4H!pg)9KGCT~ejqfT6btwtAIm<`bUm~e^P)kOXBE_;?tEbTT z98+o|#WhoJB&hiq;HEyi46)Qk+PQA<;vLv;8ssZE_B_FU#kyj{ zj;mZffFNQCGksV*NWa3$wjw==GZOg1{G8)i9wMUfacxbl^S}ytu5KT7elU%`Itl^;7A!s-cnb-8O zpf}3Bv?MC+ptI^h(<>?W`#n~o?~oE6Ut>z26_be0RbN6y3#se#6dV-Y%Lp1rD07oxU{qSQ1%$bBI~iLI$;s% z;}#A#gtTPy0y&uyHAGc0A5tRk>+p&#upQ8=V=V2JKTVGzKuL^19%~AKBSquayWt{c zizC)XWKgH7gCEYBk7TY5fQgl@s^@L6aRg2f%~5DC3p)JH^!dCab<=b1eCB-oHp^gc z0-1^HNpKHWAI)Qd@-j95>5U%Qb28?)zTERZVxYXJEM~t{C(aR;!Z@%W-7_Nu zc=vI^$P76sW;n%CLd%AZ*XI1_ELP8|lE>`momV|P-q9n8~_C&Ph}U=Dlcz=O5rPu5~NQpH;CE6F_gH9 zR7a{So3?{#Z={g?+8#UCk7;|_9~oSlk$Mvld7?BS;vrLvny;HMYo%ttnZhO4nBF%m z8oS957@Gclclfoh?By`oWxqZf-v|6#?mDrJbt&+iBX^J9E877xt9EZ4YF(vw_#m-J zq5m=M_S?sFG;3oBT*f0nTd6Il2XvDJGe$3ZT{-BXLGpI6|42B_0}01gGKk-)QS|<2 zsZstl>g`X85cV%qqx_8`g!_*W^*PYbl#YH6B0RjQ!a*4?U`1OHV%CBn(fT={QH;{3 zxzO~N;VA*q>*<5Nslg*@B#kdz(@RqQ`R`;4oIC~?j`fWn@vIr{vD^!a%i`cW-m7=^ z&K0i9X9BFUs3ZiVGIG?Qh1yaN!L)diGehRf=cmMaWE; zJ0V8=m{+}{C>^}m8|9Gp$alz}E2E_YX+rbb!8b6H7}J_Ykzh7I!kZPpJ*(2^d8R<) zy>Nrd5bd+=X9%|!tx7gc_{SEsY-W3$pUNJ^-`1f!KkpXd`#>{JLA)6RUg4eoH8jK* zv=sV^4^|#vH=|7Tkst}wtXyYrM}5bJyh$yDbVc&R1Z^iiaULl(4c(U|688pRwx)n__Tx%zRn4<8DHlh+ zDC3AjXYcf^j{e|C8HjUVA8g$or@1&|XRBmM8r1naH2(^6oRhT$Ld@A3M#WRmB$W)b z$oN!ITF+iyOTn@7=>G77c^8komHqC~*FK%!`+uI-DpM1+f}gu^J$kX=4ax<)QNan4 zaxNS%hIiArO%bgpS;_Xa_z$^L$KEYtB(-h4k`Rd8rTAEc%>{~}0LP>JNhcjFOUSdG zi5z=f$3)jOI9LVB63E!<1S!(oVdzRh0 zCSOR@Jf#0RS)+0Rl5bQkp|FTg510T=?d+odp#B_y0v-^lZ!4&6brf0B#ZeL>$u7jG ze&EgERwLeVl`m@c>cw%=ME`Tv!THd2;~5wJ?04U!t69q5H_ov(zirw8*Aq9y0;m1H z3D>P8J=UyDFaenZouBqn-XQoyGbmeAB@1vvcg->?y#+( zU8bM{I2mx8flBwKh@xfTozqqb5tN%VIt7{}W9>2Odsb9e271G)WNR-MV~pi0_&9r$ z+xC>`yU%r*^6Ej79hNNa+-zh9b&gj46yx^KK#M4KiP90%w7!7t#fmTPaT3=`7GOPY z+C5xGl!PP%y}_ct(rUUPdw*Z93FJYwbNyUI!4Q$ky~HK(^kfP2`>gOk zC%%5*dc*D~i7#`4<|n;Codc-h6#FN%hX|1s{S|nkiu>M|D70ARYOupnli}r((&Mu? zmOj?bJh%b`;5(R&uL6|{QNlqIGr^gaKqJ_>2nV1NTzn+Vt!UOWPBY0Mp`xOOl9UD^ zD3tWZ(jw03il)6`)wVFHKY27!wAt~^dcuP*yWWjoz1;C7bI~IBfhrJQ5W_=yqCpf~ z&6#FLR!NzM5!O{`I?Lu_$w~(@m68R?zM2dfZf;HmP6Iq02$3GofVk_G7;y%ro7|%! z!rvYos(W>|v3_kT-01S<^K{aEvzOq>=mjyQ4D4qhtQ6fH6%GUaBg531Mkx=tE4sQqUWS7MDYwFK#zA|-T>kqP2j8!w9pn1!5qoq(b zlRyZWV%SKQCCQ`^6@#^J^*8nTXD@Hp(hLWA2Hn$24hp?F)7ON;VCht?3RnlD%}q=E^^w%mGK@F3IRH|!+vfU*x-^m+|QQC%=Z zu2;>4%V^lb_XWCKC;L?%XDkyrba>Q$FkXh1a@C9s?s;^6f@xi^3AY{0H=wONdK_hPT#J{mtXGT>l^5 z-ZP-dZp{M4-atfAqy{M>(xi6+O7Fc_>Ai^%N`j3dLg=9fq<4`fH6l_&uhJEg&_NOq zf+615@60K4&Nnl6%Dq4MlbyWmz29Bev(|b7&*>~Yi&l_ryFC$h+wi71{9B=%sq1~2 zFyY?ppBPtxoZn~*OrjEX7se+Ff55v*=9*jyq2`{w?slkMhm*~}kkJ3W_n{beZGTlx zfd$@oB95P>=7AbPfVGyrI9E-%b9*@4IVeHo24@@6vgeD)|%m0W9bz|njvSV zmKqi<8V_VvR-G9Kxh6Ekh0TL0^s}B0%$?z6S=Cfa&EOh%w>zjauzjU3BLUygJkK^& z$J3<0Z531SQb_sbIT5Orgu!^FC$p{&Ojcb)ajfM20YSv+_lRxM~)Xd)FW4i!;Z7zQ=dgvzzN**WAvL{V(|^zbO6>2`K*!DbjyJ zK=~al!Qf8L0w-4Bl$E794qIhIaZejHq>C_n>i`CU$^>whW0Uv3Hy<1nTV8e9R9LykSg~S^@$$Y0lvjtq?7JY!OmYs7fDBGmt3M9Jv&(|BK=( zz58SK>!)N)eq1qKD^R2BE7u`@MhYVb1tg%xo3OM+4gBD0vfVg8JK@~+*L!FkHA;ErqN}I}=^Y|3?e_|iP?Vfq12S}G zc-%7p4VDA(YOPuc4=kG2PHgj4lZe1)#uoG*g@U4kgSj~p7;iP^SM=x1boA17dmXRd z&!1n>xc%nH+j$m0$lSgeAI`-==@mw>xz|pO@|n&II=|vN^5XfH^^&#T z*hGP*gI%Cjs|+yS4$`+wOH$s547!x~a1Or!q}N#_+u0EPHD7~;*4|q$&WqJNjZaNA zF-jVB>D5h>DJTz zSu!K=OKhU3uy*@_=|4=OY)$@Ly6`6f)xX@oYGFf?mMX5q6QXbcUzmind$v#neC7#3kQHEXLwEEqu&LKutPcYq%W?ERPUC5ArWXP&g;AM0BH^K@VQYE(c3})PVK}1%m zl@i?t@r)sS4+B~`kVPSpK>f#Snneb{AsEM1{XQkph+zMN-@-jH@+5G$h7!H*{r{wK2GGPtO!E zBMazY3@DUi-_7*A#d3R(#StrQVz!L=#`I$8iR3ODX^0TX-aTa{^||D#{MBneisphG zZ(JaNF0gy|otd|02KJNyS8O3(3KD_$r_S(P@T?0@lByeR33Z!SC}H+-cd>7;Y)f{O z$zorJ>hb46In5HE@^Iv2!p(yt_-baP4Me^R=-pFf2vb^JV7Ri>7n1#GDiERL;$+c~ zp{wR}Dm%(NsZIC>jU1=AvaAN7Sq+ouRPkJay|Dx$42sM<3g65YutzRMn#{g$<*eAU zHv9i~?f)Y??w_i&{!8Do-ba!O;axja8nC`HAaGPYtCI^o30qG>ki!75Nwj}7-CiBWo8Y>QP4{$&Tb^XO|1Qg% zEp4HlYFKPNDIzH{5>|k$GoW|d`LSwacVS-$Z9^P@Ok0yaPStz&GheZe84fl{**X{7 zT@3T&d_y)IUw&7g?zPokE%FY%ew;X$SkfJyc>W;v{6}Br=$~fLz>umJTed(?API?x zr8HeAv{N8)`-we3(ZhlGAxY*zyO=E3X=|H{Q+53G?~zy zecs{IS@}zh{4xcURcuHlVkX(Is?!(`{8Ld>DvDjE7$YD<_Hi{>1L)qUG$|`Asj|d; zu~{vYZ+~Wf&MXrlZ`rd1ZNc$Af#y20$%`>1mFKNf+`yzlmH> zZ!_{1;<=tUI_4yyPRGdh^{S0+F>reBM>l~I^YNB0@2=b=Odnw&kyG9llP7e?0vpiC zt1=Q~0`mT}n?Yz}$H^)vNhf;k8zj|w;?DrFM>QJ%OsD?$(zFQ}`+)}44FUq+VlwG< zYg}_&23+?db6x$4VAULD_av|)3HT#s_O1`pEZS7Go0Db;JRNdP&M^NnqOq28 zNC>kZh2twl6&Eby-j|UZ(-KPqnCO|cfUwxt`qBZUC(tn1kUJpHmxGb!M_WH2DXk61 zQ}1}SK97lsuiE{*to6+Id?OpAo5 z#&Z-cI;e(zo9*q3+V`p6rxdctaHhg|%o<2>JKIaf^nBJ8uFTzCLCE_)=+DmVQ|VBeP0$6HA?f8_H1HHmD};;ys>#eWP-=e z?v7RDPC}t8b1cjmo8o&W>FccTR2qDp`U5IwnAnRPxCjGubP}XZ9GV;Q#a${nVLeGy zg;B$1zI$=fsLF0NO{g(%)b{%x#c?LtCvc!y-IQzxwSv6vm$ldUaBTxH!YEUKT3kYe_Ql*i+@vcsq1qaC;gY9tu$ z5DRgPK6Pp9VqVt8ThEp5g^`3AUmT`x6(*6cN5a;jKrD2~0cyu=Kh$iK%vVLpuH9~N z&-mdU+*tRNlUJ7elITJnJGalFbo8cGE+FR< zZrNK?0#kT&`SOeDBDW9uPb6FB({N#iaWRGyGFYN;dB@rAC5`clE3G*NuMclL`k=$Y zhSauSzVKP@kpHn@3`XaBPN_e((s@{Q>YdA8nEp(qg1um(tC0dzv)BEw+QO|gpAB}) zY&us>jZ=2%Gcql|8CAD_GpZ238C6`j^aOVEcEEW6LtXecLmip)4>yFQ|20MZpXG&r zVQKuit@6KMhrdIFJWT+e0Dy;@FpU~OU^ow~^A00mKwiiN>4%A~v1k(laV1lHe56WX zHIRLJhz_Q0RtT@#bq#aVV>uf99)(Fzx%^-^Ex5_y`e}}57~Upx)0MZ5Cabk#aI!B7 zKjwLb?1wTZv`&K(nvvKwJa#xCw6UzdyS3S>s8&i!=b%kg(`00+xxTQrR4z@fAZ0U! z+3<5N`$jtqe%D^(>ZN`Q6Rso(5Kp(>9R$cD46C^I1Y&x=P6Z?o9oX(Mi4w>kufN1X zCDsv@?Kt@r7vH5|=uLUX& z;%<2xB46@|&G2T-$Ftt{GJT|WX+gv85a9YG!wBKvG@DFhG7Z#YhPaD{nlTKBiv#+f zoDwsy08_r~gVrG7R!}$ z+*J%bIQ7FS)Z)8qp2Q3OW$)!94ZTqrlqo}O)u8t2o zAft$ckdk4_QDVQV#Xf&b(JW7xwM(&XS+5~lM{khU9eT zS0j}ctwv!St-HWt)ke$?DjGw#7=~E6gx@ zP{#_doMV*use|us&6^Fr`>KVj2mC=Q^yf}TI-N}^I56{j=yS$agGx+7U8t=efdePP zc%Gn$-2%X^Q3i5%5x+awZbwjVDI^{a1a3TrczN>j@>6BED$Ja{HSD7YigLb_wk3a~ zC(&7EgpZ7`3_DkfIAciR zlWI+c2Nd-=S&W$8;=!2qSF`FS26n;?BsJAf?plfxPBi#LB!b+1_{lbviBKr8y33M{ z*Fg#GK7`_UnfyZ6W)>lhcz)c3-amyISYC<2PMq%8coCfO~aPiOVCV1Mxbc zrH6#Lrl88}7Aj(~fk7g39A=kgG(K@NC|fISoVv`NMDM)vJ;(5q>DLEeR=qt*i+FKN zFlT^98kN#lfoSGYzp>zMa}fV>8z+YF|njWD_YW2>fkhlrd7 zQQh`)kSucuSIc_{2geQ0*ioNfKL62d2{}*N9L%r!uQ1IlqF+CNw=?h~J>JQ7ZDVvl zA?}-BADTF=#F(;IWcM^;7V=n8t3QQZrIpT(M|bsWCoTkFSjmIUyFtMrJQ) ztkyqNdDxdAC}IY5YVC+G5Tyb!0K^6pB`p*vRT0e(2Lq2&+sZ_4sTi8UQB+k4Kbq3ANAGeKuq+}fknA{l>(kTr95##kO#*uP2IJFOEw zz-u7mzyen(@1kGN|8`J}FBSgo_e(Msw>9$9H$8Y--rI_FL zDaCD26KIe%*^&qwV9}T)MPgxt0(XdU$4ka7c<)R;Tq@u}HYFCpGY8=-j4;LQr*%)b z360P+7?q44wLDkAdvuh1KQ?u)1r}CINRQzJN|=kll@N-=$(|typqs&|ckxDp1taUh zT9F7dq_UQr1ZQm0h6grY`oY~-=LXXOgSFEM$&YC^=GN_gdfeQtiuxyv~_*PWW0 z>O4I_u2qNhC=#YIfyk{VT1;+B@nqxocm!gb(`<1`_kA5*)NpW-wk1|${brj`u7}~7 zBq@b^+TsU{KT!stL5(;e=5xY>>}0<=?XlLRGO`sAaFCcII+j9&jR|KL?UC~70WP_8 z0(z7VkAfpqx0Aj`saixWZF?tc$U7*kh@BJbv7}&s>E-zvVnOx`w7?%G?1S!Zz*2J* z34=?Cl>t{kXru%Yp?>_MFxPxTb5}&He|Js23@_Zx6?-IDf)-k{m)tX>8y<|1b;!HQ z64t*6P$RR72r5ZiBt$_UrkW2@tbm6niY}plE?hCyKr~E=0GUc{3i(sND~WjA){<{e z(EF?#JH*s{M|wVn^=FCx%G7P+`Bz~L-vKi0gZ0C9%g9HO{Zh)=B}$dnZex(5FPZ`c zjm=7m;}*#g;BtAxI$MGJNyd`#f(iUQ>wP_`^7e*@zd`)u`Xs!?BT^!u1mTd0tym*l z)=k_{A#lzBAE+voy6GinnyfI-%1_J38>L^gz9YZVV9!i18LG`bzO{y-GQE8y5i%hP zsKokhq=}LEI4mnyEY0%?zf5Bwx;U}pVRH( z5b<4Esl`ag+$fh}65V?&2F|{*meII+4uH;OqJi|Pt~Ob6`b~IX15By=MNxT$`F{U) z1tw90THiToLcj@h_y%p_S*osX?seyyn#|oVu}atFaXqV~fr%;oO}JDK?XOCPicgE1e1QqY^#t$7XjDj1uUQgyh+AJqa=; zeh)^YRC}+7v?lTC#nZ5w7|PWXYltv_i`&~knj@8vs>eKA;kj;4r^z~`<|+1M(@T7O z?5~_MZWlW-Rq4*ZJh*-Sj_JEfN6PCGL7aSt3vX&wx>nA30ry1%U<8&;tdd5@QDUJe zq8EnmrjW^n#I_3I2TSgG-RDt%FWrlEXoS z{`J!>U&OOuGW@N?)f+gtAmj|1jzKFjC9_{n2T!YKsZ`)1rglcjmGd?4VsW|0&N#dD zJE7~QObrZP7cV}C%*g(%*U;-?XOl8%aeJ&sc5tg9>smoI$#J!wmv@KsAX8Sh$0(~~ zjJf;z^HVDOC+v)=U}}D=^#-%A@Eh>{w4mY_uhthsfrexgypb|5d@*V=c|b1DhE|b6 z(no^z3tNu^0U;`yp!F5qJ14AnM1mDx(}z2)r`V5O)QRic!8Z(KB;E5FVJ3TL*79}# zSI3|s6i+E|Y~$)pSwHp~YB@vRVvd`6H49!Q97;-ock_3{I*8Fg&+>1ml_>G%>rC-& zIW^Z!*ag1!z5mJ7C*Y^ze$h|o9M>*HRUbdystLyM`UWU%HX!nFY<@}YN-A4rf5E|y zD`HbDrg6(`N@ZJzv>b^ONDF}VdrA#`au*qe-7lQ3l$i;X(UX}P>2(ZZ%#2?v@ch1` zW9e%p(Nuhc+eW+}8cbTlMkQ3e8Tv+E^+?EvzZWe)uLPN7!sgr2zCCJee_sp#_& z1IMkl`nRbSZx))X>pHyDHZxJVU{c255jcS=fO8Xh6!0pkPhi{-w@*My%u&9v#i1$A z%lGo1vIaOwCuOP{DqVOpDCv-p3>U$>=r1n1798o*x-ucp-6Ye?iM^v{C3%xZ3C9rl z5Gunw^^N3U;rggXMb9->)TK*;M;Y7~Iz{d82ni8FJf!rP1S8Fh}NP>f~0 z?!?5IwhPgpJ7Y4T+&(GP=vcqaewHBo?eVZg(iCrY zuX+Gr85iP^5)h#sm(HpRFR#R_57|up^;-|wmuFEj5=yr!@>W?aO`0b7`B!{cU#2+9 zn!X<~z-F=xAdcjH>RarJ{Id;me~%uDui5(D*?9;uC(GYOc+P+bukE)Y=>JO%-hbPY z3bY9(sp8xn!8gdlB~&90$Wy@gy6vw-iC%*Tpb zx4v6wc{3SU_4l{8)ZUKl>PV(ZYaZoijAo77?NQ-Te9Wn6RlF3BO39!D*d&6$CS-u4 z=5qbf?Ag|Xe9{|=EY}vO6#1DA)}H9f@|*uqfHchDVAGc>mWj(3j7!sGJ^=?=$+7yU zxwPSyjmcN?9}-AXrV@Fahw2rdn*twiHmsz*8M8K=J zWspVgQgWpj_+TXuK`S(YSc%?hTaf?a&*o z?_sp-;uW9W;^o4J(|q!Z1Jc~FlJKM$QW0>6;U%?%VY3}Q0YBSOV&kd}kLj8eG}_m- zXoK#S`9XV{$eKgqPSBQT-BE!_WZ;49!>qDbvB6=6Ll3FPE_|&WE`n2lKdW;Q?8!cn zDx}nLnPS`x;x{by0JB@qz%f69_>35Ewqaz^;>2C|`B>1`m`%SypPF70r}1mCE5ncS?Sb}cZv~pmlUS&PdcQhQzU%4 zG*>mSUlSGej+*AocJYu2GWqyv{wkFTey%Tga;Js(b}8M2tbt!mAm=W|b|btw-gT9V z6>kLFowyu{Sl+)z4>9oQrSFYOjx3JY9V{|EmGA~Kx4uj4)#;}O_{d8@6sjiytAnn5 zG|(KEvI-W0zz8?2n#Xr}iwTZ9*#{TC!q=m_Dyp30MkuZ*SFBNg_Gi?{F>{ud)~)7; zxhIu;68uCfUJHBth`3n<)gU$k24QjFG=>W)`(QwQ1L-lCc%m~%Ekx8&ZG9$^*&^t6 zXddFyNGF626n(8}v3Z3p%$7Mp%Ko{T9e4LY)V#TH_YE2Z&#KM2B|_X&;I@BUolIIU zg0$dc)Td=4u_3a+hXftMl9g*7sy2E#h}7hndoIQJN=vkn`>CrtW{t}!ou!gzpIt9y z(F1vsXo|mnV}~EGgIsQ)bSnBCIWSu*A1QV+j%D+CI&^Ef0&&bh*gBsKBhAJ$rL7|q?+?= z6A;SI3SbwX5pBxIPLOf@v@&V3Z3-sRT0?a7%y<9f{Jguzq# z3z9bsqKhZccU{eLl{@+epFj9~&+Hs4X|0BoOF&?jFvS2vg7hMnY^)Nt>JH~7ySb4~ z#|1nKMy#cSio>KnQ^DHNg==4OQjuhZbr=E-WXeGG{RZdzsPBrESRPS4-2YbJg!0)Q#hVFjkZ+;wmM@aMU^!Psu3>sAPxtC&L z57u%VQt!wFQ*D`yJ=BtnvPdw8GdO`Z!J0pC+(S#rnLZ z-ZWG?1Y^gdk+~s|1QsT3<}Lu4omi~j<7JVl2dcRlKP}spAzn_Yf!^xkkV|)rxEmZ7 zE?=#)Pe>Q9U6s~#ZhfVemnxr+(>kvxDMC&IuTt=~<~tMV9G$TXk{$=;7NzV2t4>HY#D?)rzOx{TF>K&k(unwsH37x$J+?>E{ z8-Dtc$^|thnnTJ6wGqF%U@yrS3@DaGd3p=jTZh1st_&NuMq7KrJc~C1Ddi1cV?P;1 zAC>CM)}B_**RhE7(ZIn5W!Y@*K*|kAR$mS^&>?IL;!DrvUJbje8+YR$Y`RtackL=n5SHe;BaLg+#i_VAu;JtUSHu%Z)sW;Q(cSvnDM=!>{ z5#Q=DfA^WhsENPfaAf2At}MgRtZuYlL6%X_jq}YlsTu(evL~dcHwV^A8XRA3m?X`W zbX0VfSi7wqUXpg7YP^Mb-^-qOS4haRg&QkB!9i1#s>$Z_6$6-}*rj!cS_S?z11AHc z2PG(j!07NoZCstzTgF0TacCPUBAvkmpZSXJXn=;X30OaK($Lh2$Lw*?jA`OiX$)84 zo8qoTfZ-fhByW=4<~9fD1P0_hfCN$ws5CiCeAP1y>@L*B6`U6Q##(Pw>(ytIYx55S z=<`)~E@tnrKOEk`KZVA<4cCA2kVZzPw`jCnh&?8y5SF$?Kv)M8lu@iBPnLMsSuBBj z`-8|Fz?^4awQjC0cvBnYo_#kg^y7vX%e_y}FPxbwXzYsPqkJsBYP6$lWf?t}^3FyO zAZI~-4zlP?lJd&db1Z^HK~ftmVdF9#ESXw1%9HgLmU3mY;d+e2+l=Vmu%>5@cRW<;~W11!#jt1-D9cBRA@dShQ? z>yEo7Jk0$n?mzT7d$6rQbyZ>kX3y=;b-ytiGET5C1Cm?dSc+>xD5Gb_TU)Id(6ptNlTRR3!Wt>;LQTb47SHOt%d~x|O(GjN>I*o0Ek~eS!-7vMI zDDw@A^g^}7nMb^rb$!e@Zr&L(qPiuKD39ZQZ(iC<5zI%}C1FrGU?G`74EzBEfre^H zdB-2n2Y5>NiUr@dAo}5dY}mSAw4%fYEHYP6Ul zm=mRLX{kKUtoJ6!-2n;Ax-29K$iaD^4*zk=x2qK|P(`C@EC3D9`slka-t%7PC?fGS~3wmV|n4ybFSVfbzr~!FG zOJlA(V4}2?19Vv+qBR{SFu-SF)qwBG$R|V~sy4(CCK+j{#yFAsIJMObB^SO~u<^bA zP$6N_z#=2&TN1s!mun2a1VAX|xf1Ga29U(Q;Q`Q~1t9oXfD|j?vw{OtMDuat`0mVn z&Z3m^jWHQd|B&)IU@z9Utgz$cOs3_{6=08KNtNiRa-EQ`$}L5xys_>Og|cyrj8FM)A^pCA6_i+jqXxtaI3}>dxnoc zGfb!L1W2oRms#J}p!9OHKkHG9MHp|{-x4fPbe`n3H~5@x7(w(V334VK43m9fgtxnW zJWe8E4+W|ec!n$1vOX0K_%T#??<(l}2_i2wg55?`v8wFreW&8Sr&LUpjxvmq(6&vX2diQ z2hRe3ZWNv$l*sT_vK42neRn#=NjlO0?uF;HV_pW0>s`p~CrDPP8id{YMEW56iq=Tw zS&eH38#?Q8de_7KWEvy~oQ2S7A7yXdd&EM+4F=Ev!O%k-XpmY2m`GCv?wOhEFkg>) z9$I@xMZK|br(K=mxO?Fn{#Z#)mpK=(Ae~~&W<%f)s7C!|7BTo(1ON8V_evMotdqIg zJ$?!^ozJBi{J2e-^j&rBO5M@cTfR$)WzC z*tglo>48}7S9ECsmB!-+IRYiFV%|@dA8Nca;(A>*DeZg(c~)ULxWeqsi$T(0iKUBv zpQlT?*K-R`9o4iKdK?Zr*q2h%}neO($7esZY}dzDMLZbJR*_B&uyT z4J0&jw5bf|DAeI`32)uRYFpF*QbvYkiP`1znD!pubb4PO#ak8rwHl!*L`aF-?C-b? zr;W;^(JyD?Pf80)W>kE5ng+O;GcW0U4o->PZm7&#Xp75dC~quMH49&>PK?`glf2i~ zXh@nK6L>Pr3rSUlmg8bC?}$u^ymN72Qumi_VEh)&TAQsZ4CJ--hB#~E>v08$BpWC) z&caIe4rBE5>N{NFOXo6g$LF088v?LmpX_uh_#T*W%y1`pH9t0a?Ya_Or&7xMrITy%LzCQKZb)yB@$fbav z^XQ7Zx028|+1Hn0#(w*%!XX%oN|t$n0rR^y2!AnMf|MwOblbCUnH(_s(PoEV@c7hM zk~R3Ewk{&$S}co)1_3?5R|3%{fBYV8n=$=d`E>aip_~_=(m!mmY3E9L&Ad@QqZ8-f z6tw#L9M1Rq94>IwDNfSneQWa{5B9tNdn2-c7Tx|g?Tu2vfAe<59Vev!pAGgLqV>h9 z*1kLoZOKQn``q`(Qw$q^dRlf({i5&}@PC?REq}}a*ym}D@d}6zs{0m|x*F)Fp4MA^ zY50=j371_KznS`-4PPoGz|0@g+O*c54&Ad4#FUs1D|renysfi6_43$_L9AH6;_3~nc+I%&hcg}H%9`npau<-3dExVYJM}Ve zzK7J}w;Zm=5EVway7*cf3&e9S|5^jv1q4Ezb&>p&!Qqjim!@&uRV4&y`B!_^l*+#rWQ#Kj|Ubed;GfH9Wxz?gtY) zrIaSq=1D%TS3-FW@8lLu^iok@#L;J47MS6xv0yPII%Y{2^1?E1U8LnprNcWFAyLP4 zy)#W`ws!n^Y6g@`sJU*`6*-2_b^A9!5Wh$L^*@qPJU|0>S@6I68UMi+Mg1dN^nY(? z{EvFFNa`0~%U;2C89a$*s*yI;g@Wq_^_a$K;atfXfz%T=((<&UVh)vE`#W%iPJKsE_ zxR%kg8qsv^Lt`!8yz&9F!L5D~Pqf7@U^zgj=p@ z6^yQA5NE6-tKi!%j30BDtaS&Up)MDR?4p_aWTVXr1=XB64lx5LUiC!4!09D86})>R z1!@i6z!Tq-hJVVFLYe=i9FEN=R|{m2olkP1a#v5l6+l>LmQ?kN;u8oBI*jhY15myR zVh{}QyIer<7bqRTRtdmrc~IXY@jWNYHKbP9B$i+^0IQ?!=`aQfx&OfT_<92eSNpSj z4_u1ieR5{T#>|)Bjg?)!^7 zk6$&D!;AF{xGAHb7P9JrqzJb?n;edN5l zEA2YEpj1qTkgZL-LTH}Lb~- zQikW4>*CfR__%l;j-^Cy*uWFt0MunPgVg=u)OzHz_{NjvzkehDk8e1&+mPl-WB3B`r(_dgzkh?*LGbM^ z?|bKt%T(u@bBreRyo|Y;k(ZjOyPY7LQY3>98$cz$hvQ-1TXueKfdt`JR0cRjNal^% zOlvguvBnL3H7Ol~M6%W&6#-np{9vU}Id#tvzmMlh1Ek_RO0=LmL=!+xP2{GvE|M6@UGNhT0o09$!9Zjy-n@$BeGdY@biShBd|TL2#q z7%yy*3xrlVv9=NY>tulao-B=jpDh128DN6s5isanvE?MXB9dT_uWLRH0MsAJCMD-n z@=k7Szreq1*~3B)NTX%nm7p@|=MaG9+xhIXsk5-v)p!rjLfX_TK*ac|h}}+k5ryCA zn`e*o!21JNU2=lh@u1SE;9a0rAbb)~E6{z|BKrd%AOhf*8%X~oQX%3580>-7Tx3gF zzYd8t6o}9V0iFCuInc@6z=6(y6q>!+_wSzp!u&C~Q2l1GiC+{Tu3$V2+e0b<=JADo zmndk?;_lpAP zo_}b5-@mO-(wo2)4Z)6w|Mm6%bN#}Ad4~dBok@_22W~#zeMzd{X_k=#$jb) zy}zqp1Or_Nb6ju4sbFbjQL7LC(!M{+`^dULITTi--%TyJF?PESE=JbhxNdm=Es?$d z;^&-j9#>JYvNm(dbEgO`@)iEkJ{o8Gg1a?^P(N2Dv zdRP@gmL2rnu5iwyged}}T3ECcS0AZ_zpr)ED53QkmLY;U>Vzi6eoI)`7|rGWN#<26 z7vYTVbaiVd2h`!+SlzaPR+L$vcY!Oz)7T3)1AV%wgl4C>?1#6Ld6iCy7@g6n96zF$ zkQ%S;NOla5$CzqA76<=J2D<+@OoV@QzWJ-jQBJ#)Ya#}H`+wkb3Wz#Q9+$?!9YmRJ z)ZeqQAH?+1UYckPIG~MlyPSAm{N^Wi2Wr8?YPzdrrF}r7cTk-EWLsK&d}pVQK2I=O zWwN5mj&JdeHTD+;v#pIo~97YXU=~o|9 zvIptBbuXX!mL}C^t$F)H_=UY)f01Jsr@l{Wrws6ieJl>7X+lE^){0K60kC1YkX4w# zXV;u~?=gfeLL=g}B>&}}>uk#NN-8=xGA!d?F{L+dSQVVDP-c`Bw*j^!KY%AbivPL6 zVvNU5W#g>;1o&LZwqplY?0VyDldHBhGYg9|gS=v6g3_1F{656;q9Wtlm69V|4t}Oh zHez-&t6DpWF<3jyiQJqiskpAaoj?locJ-!u$qYSenOPZp_ zOFc}uU!oG;x!n`^_j;sxyb&TzAOOkkLPw327A%DzRmbYB*!3qWc-14tO>W()?ej@E zXWP}UdzxDFC5(stp$sWDbVgnBtvJ}9f>cW?mSkky+DR@u8^aYJk_3X`Bem=Q7e(*0EOwPPN&IuEoF|hR3gi>ORGJy}C z#9I%(zplT@u#gq}BSyN1QmFO1{Bxd&1OAj1w>dtiBGNr&dyf)?+PosD~Tl>*n zJ~5%QZ^a$Yq&`)^WJ7lG-T*Y4T1%`#4`qN5BH0>!=C6v)Jb8-O%E5>{ z5NRBa1$Jf;ftaMWc5{;xbKq!hK!gi<%sgI4!#ydyg|ImOXJ|1$V zF${kP{MYtdW^bGPZvVggIne&{LfB-{K*)*p|7D%9g=cQI<@3@rgGhWZ?Dz9S`hDHy;$HGLi>0vsqKM(mJFyca5bxS+_dZ zwV~dHgen|(v3=`(IJvHq$OIa=MCyJ-QhEZ)V{_BMS}`R|WXpX4Q0P|J9iT7dMbpI?85ngbD^bqBO@d0Q%kY-9lsxY zIY1JeWhkoCU(ErDm^Bpz-FJ20^-XBQwanUe!o`??{pr% zVm{f=y#GfhfnQbhLQUeD>qt7syXP7~nTNHfj1tvM6V#2{xU*n&wz0+s`*GIz{p=|3 z^9!r{a?rsmA7H=!T!&iy_)oCozltIL1MJx0H+FpCe+n!B9@V6R*$XFi0F;RN+P88X z*~(@KZvu915=OJ=p2%CN7(Ja2PSciQcRI&n(H*4m3bhJwQr%-x<-UdUL=|0Q*;30( znr&mr+$o*US@t8|$JtYHOb?P#+%@2Sc~IlpNqK4KWyy zdqTnx;$mT#SjK+y$%cm6u=b=7(XEW^&p$NxV-;fr24X6W20K?NDhDL zAdQwJ9RcQAsCH6T6Ja$uw9_ttmG_{Oft;M7mh-sxk3X zAIn}$I0pF+!(ZZGO?RcLDR%cr8j)DKR)J6|s2@Z~fn|URiHA$+P~|BUe-U2u*c$$J zoy8XLe)e=b_Pk0Z$&1jgOEkNw+3$v@2){giKPq{T(w4F1rv-%;hdX+-r!}rqF#9`})W%sae_N)| z3|TU8Av@tOlkH){A7wfrrNqZSLKcJv%phBF>DN{ox9KHB3O>X?{yY zm;Vh`#Q6sT-LZwuZ zim`S$&^-wMBA>A8lx;K6Bbi}pmU5nGc9otiYKYX7Mx9VlTQ6;3_-t2Ws6Dz|qCmr616@_T@tw zb;b?QguB^AR_5wc!tN$F0Yq84VT3GE|=VZQGr$w}#o(M`zPbKgP1(7fy)_uhG@f zzo0q$+{H$m^4X}sfyL$VHsdZp&iS}**Qmzad(y)=&^V*H(e=hqHci*-Ne`A1E;KM2+%%66WruzE)*w>B9JS0GP6Tq?-775P zFfNlcKPWwG@2+};xypUN79slLXj?AAR%-l0U;rYclqqIPuXXmbAI={_tSm9 zLDpPj&Na)Jqy7h-&)3W2;!AE6pL}X~ZpiS-`S4QxaY_B|PaHlJ?`y z9)@5HBz@Dp~M7-PI_Sd7+kST5o%=gAU{q-0R$XT4~RN+Fo`x)G}@5u{OWr zC~BX5-vDGTRo*OCwO==DeUY8sLLQ3pE>`w6$pv8S%_4+WbOL2ozl3K7TP=!5V_eyT zpU=6&CjDd)l{J^Kjm>&LQ}L2~hcSh@)Ya+7AddvtRGg0d&s4Ihg)ET$sAo`?zu7eL zHAH+)>2&6t{8->Nzz+aW%8GKhv-DLk%4xR$REsP@wmU_Rd*41mbd$q}rAB4ae*g0% zwtvdD|EbGQ`#%(U*oF2(@LhoN7#t7`S@6Rt*(<*fE0s_As5uvwWkc(?_8;>mOiTK&SzsJ321Jg>n+Z5aW<6#4!K+xhugB`O5uJx67t{WfDdij2`X_^>w z;s3y#Yi0u5!%#eXd*_;+{lulI7Z29jE1Pdh2j-iLA=+d7JjiZWh$dF+Ec!~5VrJ2F zyqz??tsbHchTCTs)Hi`*8P8BVfF;17+^E4Mi9Pc@*|e%_=;7?Lf1kod%`yYV5=`YTONf=<2KPaq&{MC{2&sxB{m{iASaGooQ8;T)kaeB_n;2a1uG4(J=(WJAdB zF-Y*y1BYcV1WA9Wyhk|3^`O5|zq#r|x-yyy-FiONu?;1Zz%C!i{D*P&z4y)e$Nt*@4}P8>c9f*a z)VSyh*jo-(EdOsC(%mWqSDg@VQ8B{ylY@kj`0Zcv+1De2#E)F^Bd|Z->@erVJ)tk9 z^VJuCHH!eJBJMYZ-(eL#6x1aSKd_6nJSLhgq})!GIQwLJWUeoEodi{`JN+*j1m_ zt=rbFAJvs64gL^)5~#4W|8ddhbDB$532_QW1-a_ecyy;@T7`koLbu1bpVQZX2MKGX?_^WM=gW-zx2KkP41$Y;!t6cIXSOijY}6;zQtHr0xIP zG`ND%VSgi_?f#!A$RYnL5?Ozd_%ql4>pm%o&M>Nf{*@p9<3znrK`ZmW0``Lu@ELEa z81~KQg3G|I6P8a-YUrlFKh}0X=xfijUcV;K!t(~Oj^nFX8GSegS+;xA)(tmpdfTJB z!Dc^J5+zrbK8b3J^ed7~lmod!p}pUIU&cxD{-y|%{dy{@7VHD4^~1itPfik^L3r?Q zep9sMQ5+K{!8l7`&+zMh^OJyF&`@DBRwCn{P1CSc7&8hv-969`a0Xml3F!wHIXFNWZr>Nk5Wgr+ zpa4wO&RP_?cTwn`;H&xs8|Jgk9B-&T42s=&?wIABPXEBC7=-8c6bi)Hc=M^xLV{aA z4yV2|*T2v?^|)Ji<3I>M2t?n~$2b7&OaXiSPI zhpbaI<1)PZRp|ot{ekFnrk7vIdYQ-yg0CJ>xpz2YC%U>nN%&iI6o_!oEGo-^mB9}0vR+wgJu67!5vh9G zHPRw^ayXVOoN(vJb+4neFN+AoKB8RNfbx@>LP)USwhkq3RNh(7J~>zmjd+96en+X0b^LTk=bxds{io2bPx>Rv zSl9p%K1Z-6sm`y!g!e)I$EUg0fY=Hm$x#(CQxlF&3|1m@ zF8}zBK<9$+H-vvvD8B|g!Kd2W5WHvx7|lTpCu%_cJkI==$3S2I@EFlq4MmEAu{_q~ z=zHX%U+`%J)?NfUsE(&QNrQ#}Wd~C2peUU_(k-RG=1iMN_19A%N~QFW;dzUh%IC;p z_k7Mv@`5VwvV1W{c~hH5rcma~cNPyz21xlk?M5#g(8a@ich6ozDcpAI03pG;&+1-Z zWPknn9pyxWyNTTAu5Mpp=XI##fJQ?hZFhb++L(Rk&s~qtbA5OhM+Dk{ z4h^gp-F7&Mp^KyntROTMv%ZfvP{ISAyM%LuAHOM7bbeFloFtKdrT#^7HY!|}hO@`p${F&&C}L8-9UKRB4H^mLahADKbWQX)e{?`lrO)-8X_nTtD z|IdJ+sQuNy^;H4=RtNk7Tl=w3xXFXqBEXO7AcS%lF^34j#>v|rRS|B%38klCeZ4pbK))tx7P~=Kwk=i3j%cU)>!1{O`xn_dhlGmx1bsldDSge^WRd0doYb@xXEq z5P-3^4qZ(nUC|~zBg)annRpkH83Pxmj@O^b+7X@{o ztC{6YE?gVtFw&@1oGu@^n!v{19!@t6y^A`WlxJgMF6 zE8#g0(PrQCB|U!lW8`)J9!>Bxd+&_Hra02_%{bzKdDnU;SsT*c_zpVC8-1ZwFH@@; zZK^}FIrGaMvY{fk@dJ(n#EUXuz=i?P6Ttf-x<(GQUTV8ecJrA67)`ktf(W=2GJ$ne z)ZMpahK~pY>469}^UyCady5f zBok-E4^`qs2Ult`u{g2=^wv?=W9Tq2vv~~1ReydpB@}{=Yybi7EeP=T02DS?28h^lmXs2zLelLE zZ3zW85_BEJ*{u~cr@hmj$KH61hfQdiJT;#AnBbZR#(?OEJJR6K+9z)Y13;UwCh3kb z0(#$1hzRf!t#a6@tpZR>=hcYg9OM9jQ(dyy2ShEPTd2}{Hf9m|pDJJecV6kg8?(QO z{XI;sTW?l1Z0(ay1Wi_Ok-^?(rP zQ>SW?cMH!h=XOyae#h=h&RR21^wnv}Q5sDhxjuj_IAs1R@u_eyg6 zQE>}~p1*KLp-fLiT-U!bqYYVwEFP_NoQta#hg~+?6j@qOmoe>Oq)zy15vim*zA2>}X1E*u&l*G+$u z`PnCTDP4sLr*c;6*Rr}dG@NQiUPSsM){ij__4v2zce3{RmK~R#Vb}BWzi;|irI{Y3 z%B0m@<5TB<4KD5sdE0U7nx3h3sawudYX{{}Z_CjxbJfX4VbDS+ZUuNPU?NYREp|3M> z1g!FSOMPt5WR0>%kTRq~Gp1X%PDd)|7em)Y$*Yg@FL0TZ+*OeMj;0GUo!kOZ8%)YG zlz$8qHqtqHQJMF%$3kf(swKSZrWaip@BiD!J;v}HC>jI>wkmi_ewh>WG2rW=JSH8G z-vIYp+ng=26E^t}Tqh3?QAyhJ4M(%Kqrrk(^jq?t*mwACr8uhdOXkjs7>y%~0yYW4 z)CUov;^mtchreNxPE8*nBND7bcLxY}$QK?AB&n8$$>uW0^p%HdEN{xVkmPaUsC^WM zSOpt|4FDMqdS*e;VgIK&>wJjuCHraicLX^ljg}TiMlLl>fLCMzZB1{{_o}mJt4DkU z;hQu zOv>4HvK7#*?e4pEhAD++hxNs;WPC4MUzRwr891Ga(%Kj>8qj3KJx|0&IsI1qEYqG& zdS*otLRf(pShTUOrm>{l?ID}Yf!-j+ z<5w>p8E~xMVv()Y4inOvldA?o+{Z?9H@$c@ok5L&|v?|4@)zzu@3YGJ^w zI|ABBO9isu0Bj->y;sGepY+TyB0bo#X=>kv!ECWta-lxaw587h8z{bewyuU%q2P?4 zO|y(llrY2A)fkv^Mf!qEMgR*+|^JLF!+TB!kGq|BDb^%fLw-X;V$qBW3kVLww>3A~4* zh59)8H^tLN?x_a~99Ir_-z?KpDa!LsQsTj!PAaSTL;M5z?;G6_$s!b7!ig_i?O06~5m$2y@|A0+L}rTxHULm5rtlux>~>l<>;Dn{yLXw)c-Oz9MJL{<=j=4a$OYH9t5=lYyzWrM=v@QDSvh`IIXU|R(q7Euqi`PDX6faq4grEQ_b3U>#fi6 zFdXXwezZkbg@#hP5)-1TV|T8vx}tl2`mO_PR&rt;F6ZZu8O_xj+x>z4RXO*5KUwrX zN6x+wzW|4e%0hb1C1vJk!)&6-CrU;SR9~S7saMQpzHKR0z+S!@zMjPLI?-2wtDj|g zZn&)kpoc+&CG1RZm6lo9cWAx^WPLG^)VxL4NAm@(vie$rqn8g$PqT*F$_qK0@Z4^F z58YtFQAXj&Cj}cK>pqy#){*RNmSmB&>nWA)S` zeRFWT^xVh!!%`$L$hFE)Vr$f>-Zw8TYuuBOQ5~#LYK6=9lNdrgr z+aGoZ!+@F*-1!mBQ?#u_c_(OMt)a9qH|JIUMb@?!FKr;2EL$DdZRvzw z5@;L77nH3zGM%&qCi!g|)lOUX6-u1n?S8c6{P#K%~ z-DCsDAX|^t=EmpS9c|O_;kY#>3Ot)@CcM;lE4Wh%=HH_()dZu5>29v7u@$KTloS7~3L5WA$EXdT7=W}asXrIf?X+I9<%w*GN*-kmR zzHUG7BoCYl?acNd0V(VDnTsY=^DR|7H;0q(SIBOvhd%3w1Y#>brMTx49z6Wop@QaD zme?e{hTQv4H4J`j-V+7ATgC4mS^d(ujGhY~5*}tiFLB|oPoS2IcC1+*-^(mwgs}Ph z?VPyc9wOss@z;kNsX(CexogF_*FJRZ0Me_uaKNHU44J^6M0S%HhO9t%auhE)akWM3 zPTst(R})6272z=8x)SO;aN~P|ZuSiEh6j4W`^P}cV*;C;?sd@pv!K_%UYzx3k~m_0 z3~MILRM`_;8u9Ze7~AHwKV907rU`+19wwS|+VTF!OrGOUY+~~bQcT05)}!pYUO&{G zV{mr}u)UbX?6ww~$7tLWLnykc^-f|r@4HkJx~n8rQC(bhGT?jAK3XX0=oC5tgcgk7 z5%3wkMM#-0FE#H{PL(mFku6fHr#3gSR;HkDSC|)LY|rW}4-3DQoj&>?BROL8PVLaX z?i{TPQ79u{VJ`z6YaRGVcuB#?QkFYJ#eCIVb(rg*@GpWznrP> zHr*#RvrmbQ>_FuQ?N>z~bHTTTXeBp^>I`4+zU{W|QfwLqG}H*uUg?pmzAEcp&2r1O zoitW>`g})iRHP^5q5qt1=3%UoMO#}-W8C8I&JN4fpDJmQ9z$nMzJ?$KWq$PSJbQ?q zh%qU&%3{V|vsMv)d-mgX_apb}ea+U#U$moSy5EkLItcZT3XE1bqadhg@rGH+T9gG&BuVyEO<1gZmou|6Mf?I{J7{NNoL zqp-3tm@w>U->s)Wu<8rt#jTNa53a z#krc$6_E!6(cKaB%(j#4=CTIlfu|jwK{6q#K?uz1i+~?);d7iH=$Hyu89f` zrO>lBn1&^2b&{XifTcQc6+!Wz1YMMu(wskTyyzP0(ySmFVzmtEm4sDdvjh31-pe@{ ziCbjljRh;2F^;S-uF(&CrT&s!(0{#tktyk^`K+w@OPY<{0NIIAMCxZh?qUD5)Q-BA zsM(0Z#@3b1v^d}CXQ&j>yJ9r7Zoy+4MYGbgo1smikJV&9Jz-Pq3%U)~$m;Foen#{H z_-cBT3}^%_-TUZpl?2koRX57XXP@37pVeR83A!hT#Gw+r(9g zb#U&{u>Qc((<#8UDk@6iS{}`{$G&8BJA4k;d^;TDU1K)N7HNEoTK=Y(9Bx`BfXl=? zmEX4;MJwWK{V;AgXNP`3^2-m7<4@m+B|xAR9*n~bHRO6@d&rTt>&wV}e(|ag_&ZO> z*4m?uCSTOVt@nzDF&<7Zy1z7jM?mT6ccWW!e6W5KA#vs^4^uQaVvW>2*03EG486=o z2%pDB0Qd_vl;3k3CO@|c)PYYlgAFbZv2YK_2TzF&GnjmzQ~i{3)x3w_qyObg!E@Nl zDf?Pj-=NY_`72-OB4b9_L~1wNW8W^WmryJRt7OdRInLY=zuV<_?DT+~Kym!?* zf#d8W)C-B*dw343vx+GT1ZM?Lq>8l_ ze@ZIewf@TU>JRw@?_trp3-1zAw@76J1wRj{%{_ju-FNYiOQty;W|NfswCF znA)YTO|3M>@WfH8u=TGr_ihJOl}kQ;<~ocMN8|pzx|GGco=(jih<3UVpa@j4JB&~9nk~ya) zcN@~ArtnLKfmKgm5;y0fQT8f*z2Vf4E_M1Y~RQ`%?dmW;ALsmn%CfQBO|`?pGdgOreyRq$D#l9U=Em0iz7dgJkJXYa_)$BrGJ!GklW(D`3H=*6w zbb?G74W(f^F(taYuyA-+7%NX4D|`Dp<;(mcp)K_Iy zBfi}=fb{(J=}JE!5A3REH;j&-WE=C+!iVfLEGMseCa{&YP3%Djhem?E*$wFi|5?!VT z+(+p5KTm@H=djLy4~h9FDG6NiPy4tf7Ql(%iOQ4YLMzok<> zcFivMY2&-yBI!`W3g)kTkw0#VnCpJ*va%Sl+7gqpO1AF3xPqM6tVS|s1NylpFqx2O zLn4w`{LOQ8bo3zrWDLQ@vzkrTg9n9V^Bf(Er*_zd2ts;|nR*cm$$7%?x<@P{kG4_w z*p#1enBB{dOfPt$WE)8~BOBpEhM;MP?2cgE%(_HITNNETtfCMPQJ>fqWLegkInr1z zBbku=&QM(=A2boo6_D7ih-_=t5AgS*U7FN3>=Ul_hs&8@%uT4!E6FAfJXl?ue zct{vOZ}nX8@QQQrh~y!QqIZp!g21i4Y19x)p8sSo#oePKT2{GW7rJY@hj=Odu@|d9 zB9G)RVZ*BJDYHw)5R!p-42%~aphZA8)Ow(M3FIQ0qiW$#Y*(@(3i!6})A~7U)mmqI z{AdeEgG60jE!`m?aP!y@>?jr}I$8l!BkmFxaNrDtglEN-p^j(cTJM`<>w--8c#4b; zD@odw{QT=Y$q(!$^BlxfXyHcid*T;pgO4S|v#2R5Z6g0zFqUz;vIY1Rd>+~&0C%BZd-lwi&LucDtT;lh!RPakxIDgekeac+tGg%^qu(rNh=}x13Z;=qwHT#VQ3WnbhFG zTqkl!F~!Qd^>TPMj(`CpI$&#=ocIJC_v$0gWO$oD@i{>ZBaTG3L5DejomXt7rf&ZL zng!jmp9XJAuaO;l2PY6cWM?3bs083uh1)QE)g3;-M1LFKNG{H?CMQ*b*V~*bWQdUU zWkRMGjPSGxFc}~G-$7;?ZXT>aR>d#l;8=iPkb~=RpxnR_vf=b@ojoxLwY>o{j-#p| zS96tc7~wvq-uS2-cW-z({ss{ID?NHyQNn0yXkxQXEy+k*a2yPX4|2qbaz`egWG>vr zq9YoYeZ`4gF$+VM>(AO+>&vrzJzKXo_Bfj8-;7eTsp$Fcxz9S}U6qU#qmeDtzSQUd zN&({%<{)V{I4x2~^~D6b)E~Ie501Y^eOqWc&xl=ro>t+tQF>QxDQ)jJ#bUM_Q`^gL zX{K8xS`P$UASytRm=IJ(bX$&YSpHSx6lF>wT&=A=Y}+u*F~Zr4G5Nc>#U{ek@#Bk} zH;1{#2F4SSo2jdliYDh3mcDCKhf+t(Wx$9i=;?4VbclhZB*Bt*NMxqrp2UOIQuL;7 z#-5Lm_{A<;Ft?E;Ydb)oBcGpr{CbP>Fnrf9ci)F&Q>HrdtZ9Nz9{4@`k>N%3vo{H4FF^!cs~SUkFWo2lx&+*T+3+*hWo>u*v%9Q9(z|iGG(|uYs4Td%as{J1>KDs>BMuU8Zl> z{{%05BgjE&zfSkc^UJH4V$FvtcjGo68(jrQY41WYVqUQiakmF@q2sb|3%?5`{+L>8 z1Ylh&%L5xd93QB=iUQyuwWC6N(~9f{6g(&XdWq7T%Kf}4Mz!GBwn{CsH12DPVY#6EX zw%CiOlv;Dx)5sp|X3jizM!BkEu7{Ce-n+!2_PWINP3q}eBUsg-5phHHW+_h9uWm$C zDL58IaW=4l1 zLAj0(lr7oWmZL9v@GnF_3!0<;M~oD7UNlKTSI8c>hnQ|v;hjGzp#^wXAxLc`5`k=& zXB4!(;$!dqo(cQnf}yVIdq_C7R~Q#pv+Da2iCSN*HInWs8TSB*Ot`s8Dq|;m&<$TB zn{0y9GSgD)76GpK2s`hmt$<5fcF-AiF7}LTxN6Q>SlbOhtGQuJ)424(k$dH*(LE#7 zNbs=zNZnRw|Fty6xcR~T9Cta@xyW#`2lvqHZ6@!}9s1)W3khsISyz>Ex>B+}`aWcw z-=A;@w%u7FE;LpCnfPkf;WdU6StSynksvFV;I&z+?RvOvruvxSdud~8`dLhw?94j> z7b)?4JjWfvzbP&(gm63Tl8aeS@f!G|0KCPY%k)_79pA9h;LJb(O-h$YkK~y|HH);@ zHS8jZ(nhkl8%0qstn&gP)I}lu?zHa@!{ESDq+#yJIpSI^V49x^qZqGNg^yofCdH*b z)-&tkEG;tcp?*)v`^@HG=H;~kUIMxAE&v=LTT``9iTo*Uf=1wxi$0Ht?PGxLy zGggC|wh3ZE<*?sJ)Ap41P1NJmhNPYg$j9^Dic*pvwpVMAU<}RL0 z7MqB%W@QQ036)_0gl$5rExnX`KJCqlvYTOb1G>YNm(#7}ZP}RHqA-BU`P@R3dM+JDvvnz1? ztPaF%Tv$S}J;AU7{}4S77TDM};f^BAO>x97p^Z!RMcr#YE7f~TohwUEm3plE=G@Y> z*X;S~r)+T#C_6G(y=iJq)d+UQiT08Uk)L zWM7;msPK#>#?A{X9bvn&bocTxFYvJ=&;3fYqOrwV5-Jlw5%EC*ZNrXl_3v=~E*13| zFH_eC*RQQy20g11KKR39A5A}HyK&)5raT$$a1p_wB7aqgkppz!a@oNT2=bN6E8QeR zvEjL%RqUG$!gvL*hqvBxm6k45pymoil=#zb8+m96uwMgdJ)bUd;6aA=y;hBgm=Co= z{m2t%V*Y`e3L$n_IY6Y?WBKQ^uKV6a!1h&nZmgyw;+gkb$&OSwb>1tG)zghCy;;-=biI=TQK&%Z8|~4>OCfE?#Hy zRqy1MRbJGG)p?x&96K#$^aA}}leclhR)2I zmtsvM5dHxe1it?Wfxt48RXV2lUt+~`JZxDTOI00Nde$r@?L$)=h`ZB*yf;*M>*lhk zhjv{Sk*U5<(+9b!)mFLv+zgJL>-8<+itLP3W2>^Q={FGYV2>=_Nio$K9SaA4(GJU| zXY~zgMw*$~yLs=e>AQD}kBEslpu{F;de&YiE-tMiwCZl4%|`d1iyU!VK*V%;a8{! zQi4$=y&y0~_1+%KHP7^z$BxfK+KBr&?>xtKN15dZazm`IGpC^sDAk&uOsh1kFz^WT zds6TRDvKA1d}`TsF-FCpt?yqnn(Ph%rCe0fh+&AA&k67GZpSaL!ydBO9JL$XnXSjv z2R&KaN*x>2O5}eXfl`~wKcjQ@>YL?y^RO!Y(y4=!I?WTOY4Y1HP_^4;UR-$*sR{|k z_sbjv;lnXkmURZUu1GhFfobZl%*_vsqG#&l^b$pV}?kKS>7j0kQ^gyhMSh zCfV{bJo~_0Lt?J}^pWy(y&Rp2zXV}n^mh}^+~rR?B0*}K1J!vYh-fHAy#-f6l=n$Q>JY!; z1mOT@6NAi|nwpJ@*A|Ji=S=FUUQ3q~DOib)lGwe^_d!rK;qEUc2+ih@r8p_q z^-KpSF8wzJoT;G}Me=r)zU^ml-&bedOh~%8G3|doTA0rz&Va^4vA!7 z()qwrfk~7}6~tx?sEj+_%fi|W+d6D*>xr$GA1RieAD z)MacC@TVjm7|{S~bP&QFY;KB=B;w2QA=pX*Jppc{_rXS*sY-sMJ@4FCFTV5%{p!Yu z{wtl=`(p+x6rM`u?Yea4mdg%Fp0|CJb5dY1zLC?s+c2Dty%bB3H~t320Gm}>whA2p z#8vtQjMUgKnYShB256|%*EKgyOc=b9NU%R{yxKlorqv&QwZE-4AgxB!#9ftR%{}7W zpuy)=7RLgefxGv$6@i^vMqI^C?W3pj3jCT(Ey(&CK1=3U<_c>Yp~=HV^(PjJ+Z_Dd zf(%6WFsoAztKnHw%>tfyaC>}m<2I`$`g(j7cT~;`jV3|om~rVke&5<#AX?JEkhZC>A6~|VL2^Jz{w3=(iC}>? z%sOmHj?Z{350_d_5WnxVWA)jOlbJ13kt#ApO;PIdwTF<8t6}*M={YF;qzL}GR4QM% z+t1)<@e}B(yMRYE5~yRHV)?obw~HaJ@tHdUepb)m7hkuHI@&dwD?Sw_JVP?^rX1Z@ zg5+F;pD%WQs@Ozeb@H&i`Xff`Cr$_mhso{*Dir0kG!R>`FjPs#A;|~{6yaMyWPvlU z887sS8v0k@%s$j-e`L)FKd$N~WoF00s5`l=UrVYsi96IPSzRBRJ!vl=WqnSBjRU7k zOiUY(Jgvg_!;rhS1FV(}QTr-b*R&(+-=b9&;n(J{MhZ9k%>)i3gJ`4=sS-yL2gh{2^1_eNAv2~54dHd)hSyQ~Mq10(Q zOCm{|vb=>&&R-ZSCSIh6JyKZ6^p>hojb&SWKKBM+hEn&+}DqLu#f#h7D7P%QAQgGwEB+SKo=pY029!UHMpCo0>P|%wo{T z>C`j%Tnem~FQsjBfv*q|gCZ}$hJ8AG(}r7eFlqY&{ASPU9DSWX zj2|)Xd7ie0MJ?XFpedrl7=7EY(i*ix=J^>?AJ{(p{it4$O~TK+8sKaSw&f0Udj(|5 zT!tffzde-mF{n^C#{CHei4VE8T6Ui_d+X%44xao};7_k$+%*KL{!BK4^z8FUL()Uw`nU-| zj={H6fSv?ESsN+Ad z1fjX~o1zEm_W#vuq&@-=u3H!Eh_{nD9Ns4y9fP+2-g!7sQmPX0q`wJqkK&;=#EjmK#JvOSkWLT}zgaFwpJ2hMD4S?JM1X^d$0)erwYKtNg#k^J++ zKm7mdKQ;ItfB4r|IQ|Qo|Jv!_8~pW#3BU6$Tl0fb)WPRh*8St*R_Xo~ue2T=v1)SX znp~o6-v^`@2sYjxv;$pbr~6Cjxm_3B9I&JXFi z-ywh_0|WYoFOfQS|4s4x-y@e+0m!BQ4P5Wvy>cD9v=BOsR=^#1hEsZg+T~upwrEinr1j~wrQeJQTvd`VQV@oHkEz+ z4Z@?F%0D%?uMqE$k`(RSo3`%pEtO_}?l&^iM-VG;Md1lRfuk_bk~Zvqrp`gj*jD|%_$*WUqgAUyOKxst#FD58J-xCD$ z5;yUsRmOI#&&FrxbsU=}Ok36SC)g541|9KinFrRMs&*CgQ8@!2_RVVr?bhym?u*h# zeVtL8zM~2og5-H!z!GaNSsXD?AY27m!0Cx(%@ zixT4TvmQCX7YrJK$$KEeygB}&$axUe{Krb5U1u>c&CD+w7WzUvfW2}5^*L(Mpn9viQ zm4^}KvXhT;m6ASS_tPss(Uv=+cMZ3n(ASk1gbl80STVa_$|2b(W*aJA&HN_3>eIRU zn5li{-D3;3v;p$#fbCcT*}Te*l2_k~*3(;@XPe(wLYqwP(R(Nf$Wy5HoQid$Vl6^r z+*=ASjD%OrDp|V)&FZniucd7}n!G^#6lw0(hW&yP?c*XZ@| zX2ary&^fKX6aWjwbcwEF!Cr6k_`VlQ$8v`+(}Qi+wNz{2)~!C`Cnc!+~|run^liGs>8Gu4RO(>${rE;qM-#lXSOeNURAyX>4R@Y~1pttCEFvDx9yep&aY``1{E%NI z(DTeNy-U=Fm2a-3*3(PsKh;dL;Lpw$&HXR}+DMlG_47V_(J5(j__{yFgrv3{Zruq;&hDUEESc3;Sy z8<}R+p1xQfkiT{P$@I@2r~{CUMpBROzGTQuzOJZjZrb#c{e@7<(Nhcl>bU2pxq`A; z81|1e9DZO+>FT$YVacM%TCWXuhB;TI@gqsT`+Acf?nX`8Eb%++=&SYdl|A~t!9*^- znCDfrA)Q*{Sjb&kzGyN#>UJ~#GSP^RNu*m`rkO=V<+(ww-Bs>*RO#*1Hl*8&mO=o8 zuVjMd*5k?5>ZX8Ks>xqIaTyO@9S>m;TkHeXH_%;^Fl@V6nUR`-SHiz7$GZ+My{yF^ z&9bUb)#Y3_!*0);$3C~%)?L(aV5`2G!EnAdzTNJb&bN>{THmu5aOa5`G1u?ruG3rR zIkw~>EQFLM>&3?l?CT9`>vDh0^@fH8yk(LoEK@k&PJyKUvhMf!DtF>1Rx=#ukhlB1 zpNC;{v~EKtPCJ$FPPkdLqw7BAeX0mY9B-gYy#Xoz0doS2(L0M#HR5Mt>I_u$5GLst zh8)h-#X{1EF@%?&f|a;Fd*DpJq8^#vL`TbljUAY@;2A4*ZMQ|Tg1jFJW|hvRf9n%V`EtWV>FDlF zN_LuO9FJJ^qw-TY4+UtIt5X9ts+f<8J!0*smLG*sH__ys?#|Jfj z;l`<`l0pbEeyT6R!g6y(EQlWG2OfD~p<04O?fT29*cIo}h}9vhJva=1Q!Gm>zMw@i z-gt50cDsl?zr!y3jmWZqGUx~o*PhI@?32s^cV}jclVD|stRv`nx1Ty}m_JL5*tPKHP0FK{93jy}4ky~W1VAn;m zq2C=G%=}ihY>48u6w|l$iv>~s5nT~)6j1iV z6A^vqOTJRE>|2i!^YDyb02{`4(~St|WBZW75G;g<=1Qx;YmCY(->M!h+?*Q{IFhW_ zlIDxwb_jBhX_N1-kl@JnNaBf8JFEWoJV;3V`&zFJl}_npaP9hm^EoV3k(f>_ARbSF zh1<%Dwu7A~!4Cn?$)GE;cd8<<)zPq~{n}Pz!&e*r80QEDUe|;Bl@NX`Qu0zJv$*4s z(-gCCD2Lkl#Vgo#LhT3vf?6sEMA!Oq=*T?>5Do@SGj#=&tqg$|HDkol4|W5E_-O6+ z=CRxQW+@$wuZ#2^ec_3@>{fO6lH_Npi}2pHlsH^%(mkqIKbw?&ruRqT_+I!uyBg?- zbuc8@1YfIFjk655#ssMPMai=rsl z5CNr2FDe}gNDZR&4$_-SuaPE%k|;_Mq(kTgq)G2hN-Xryt5OA01Ozmp1wx*^p6A`~ z`M&pS=iPgM*SXGho%197Ta&rwnrqGb9{0G%U{wnPJ@yyBA|ss^T#Mv+IfcSs>YNkC zwgTz3WG9-GhuP)R#e3h`vLw_Z_UAgH=OVs7>Q^bQYff((t7Aa(c#vfTIKfDoFsV17 z8Mwg1;5Ss1Qb7`sQQm8=BJB<^BeRxW$wPp(FH34*S1`$Sh`lVkG?&iC)WlqCmHEdi zzs7lM3*PgrDQ8nt(N)(nF3>!@44SBAP8(G+kx@{2Np2y(Cge8)<0X>TA-M1d1KpOy z#59zgmyA64UbArQ&V0XNtQdG!S6^d7D88d zBJ8V-1M#Iw_^T1%rOY=avf$*>IxAT)-SH*RIBTLZsl!`kS7)a8i+Ui3I)~B|=5J_` zTJaaui2RB8hcT%=TDAUX3gkriBIpT#zpw?7ny9G;k#VyR9IqyKRe1)@b7M!V#SoQB z_D@6ExcGzETAGurY_tX+ru-uG4f5yauh#9HG)L0*Z$3$HA=H{_FYv$vUKkoSvd>>pR%8gP8OJrzCG>!@^bD28Krrfk$h9y+t}JK2(Iy%*JTjelAK3;xRR5vN5}=|O>N4m=uhtZhKOTPb#0-6%@1RR8D&akeN-cjRbfI#w%NZg zYCTK+GM2JF!PY0V7596wCxDyOV|Z`z2QrJ|Ozh7iSCg!;V?d01*AUZj8Z^vgFnhTC zxYeJ-%7()YBU3HHe~HR-oKaXTz=w}#Alch@l3hrn{1s5Wh24j~qWDgY%+sd=nD9-B z;f&)$#Lv#b8#_sY$DPlX(Mr1X@~XH;3#o%J#tZzSQyv=6v~H+J716#{?fACJma^V) z<3GwjE8qZ?QoD)%#0{vQ41P-O-=`0L*v{?0fg}z5L3Nk|FhMh=j-$Lz9&8-l%Qh@0 zoNqlDp*?;jb3{qP8*WN;d!z88P1V$ch-|~uKyDe5=Wsm|>(i1XAE ziv12QlU^!_gDhXY|M}{Nl|ikc5%Zm}K;M`nX%Y%AO)jJ9x)LJV?J*S=564N2DqD=G zSjVzHji4-yNsUmrwX0LMrqUL)dECuL`1$II_rQXDa(LrEs2oQOYUEl)GUlH@`G6;5 zg0OkJY+!YsD(wl3B9j?U)QWHAElQE!s5~_w6wiv zNyrd>)8kn?f7_sflauc_{0C6PlmKkIZ&RK@CB|U(lb~8fckgggVHNZXn#-Y$A)fC< zduFo#EqkokLWqgAuD9p}Uvb=~&d8v)V?u_uk|`r-C=)l`_iUAABpC)&7)BqF=z-7W zARG}Qj;es3JZvL()e|++%K={uT{nt7@xt7ChZ{&tTd*y1er;)oQQ;Zn<+aM{ON~fP z`Qc=ZEu_wmT!r@vWJA~m*OXoNSh8l^<^)XRDCmM^- z2N1x$QXQsaLkXc+!2F>OR>aZrVv4;7gL}3F)@%N1UXgn?OL}*SzlZl;Iq!50TAxFw z2Kw%}$|~?%YDP+qxm)Hgn`a7hPsWrW51>Y7_8eD zQ`s{~M&mgoM(9ijP#G#VGo3#g(mu4K2sMrGS3DZfVd8o_jW%`~$?ZqE5mh&Wq}cg; zyUfziRyQ{?Ho1v8DmGoj??n4bXPkuGMhG`PuOHc&TDVz$Mqdui$?xUQ zLta0b7-EQ7$O1pPfUbBusA6^yF~9>nzY=ov4B$jth+mPhBJIo?q76skvXmzzL&GUC zQGrCGDW$23`!METBLUUtW>+k%`*M47YC$KeH^q&q8Ekr}ch6?g8QkU3-{yn4Ec=7W zSn(8qHzN(RyF4Zh25dyYCIr!Zn>)xNuXG%K+pN%{>3n`uB*!ax?aj@dR?appi8iGb5{Y!P3|dKa z1tOIU3B0$zIeDL03dGdyVV}w@H)iKmQXO%(!g@hn**5lepy@Hu3$de)XYTJTc>Z>8 z`1MkOlV`4n;n;R#Qz{}D0)tD!AISaHmXD1_!?RGxWv^-S2=0`hVh+h-G9tL&*NqfNzow#o(nj1hP*eBw+W!(?#jQ|LBF5PEaw5``& zA}er2?O^xeG=jUzD9%?#&*{mi5bc!trgN%>E1$lP<^WaQOrIoG0CzE^&)FGxl^~dS zUA?*Lz*>2jD@k`)#U1$aB;-{BJIu~I$4VhO^(SO?29I#B<%c40Hm@(~MkSf$=LX+H zq&$wLdf{A8XmnKBp-ZIsA=`29&Mc85RJ0oU!sHb$`!7cLpW2Kz87GT>Qp9pI9sF2%Yw%Vb9wG zB^hN3yqr7x<;#SV)5NQQvKbO<7mck2k}%*;ei<&DW{h~1ICMB~Uylu!o-;!Tj|+7p zw6L)|gb~%$tvhF~gxu`(16>>JXHz|^P9&Dbt7u&qlHPJC`N?GlJcMj=Q!9COdSN8r zVs@XN)Su@HoV>c^#%Xd(_~m$)b#21lHA-A(x?b{^{luz;=*Kl@qhy3~rj!N9%850* z_!ADtibSsUsiRX~!3-jb&`-3`B_G$3H)oUT1*|KKXOs6yjdI;31oA zsnr_P^78D1Aa-7R2gfUQPJK^(U$|X^jG|0vg7tJ0%j*v)O+|lF4I&A>0FNgl6|7V? z3DUni$fcWVP(Rr;&?VAk7SP3_!LFRDZ4oP%mm&kb^~pnD+992vmI`M{aSHAX=K@ZR zd#Aw8=#apoum@cQq{iWH?^h%9rKr$a=&Rw7=Xu3jjid^ZoO{)4b<;l0H4yI~GBVmX z1i5l<>>XV1pMDO_eaZQv*8llUx3~I4R1Wnx3eVq(WWmhlV7A62DULvGdt63B>PG{V ze~{q*3+g#+velZpRDydy74?1MO^@`g7Qcyi7v@EqHk{Xdz3x|!>Fjv2XXXaBsn{7G zw~{f3sSuQ)PiGzz^wWNqCShHd4D^?zJIKwTJ}HFvAw|V0PEEz74mH|8vd$j!zD~fF zI2SOm%l}So_V4b-Ib=su-N4#0EtyjMh?+zR9Eyw)M^!=_iA-pU1$m;Wxq;kHjEWR+ zSd$R5`fA%BAX;63*x--4{5ewCvh-%o+M**#{=&mcbwM|;d#pM6{D>Yw5tCQ4j^%K8 zJZ&aiQmG-(Eg;^$|3L&p<*x)%=~Ppw;zdlR>d(k*OHP96Z)$6?;J4M{{BhhDaqAw^ zZ&T}tVsPW8u1Tc~ZwO8dVx6NsS<=!y1u`osP35;YywxG`o#z&!I@QZr&3dC{_Bh2*+~)+n;w*Mf(pb2DS{K z3auCZsrIk36;OivXUkUqRu=!ik`nrR-Rf^rLZ!H)A@nKU`nfA07RNc^cx;zox)~lv z0+UWjj#!BSIGFN);tFKviKFb?`JFTFIICuQ36F#0N8>rSs?Be;>z~7)pkWWEp1Eg+ z#LH@9*mzV6XNIOWpImWa_c>Glqu&f+d!+{YP{U~4wZ0#0O+K#*6Bcpo}F(|Y5!G1j}VUcHKxi%!zoIer8j%@!0xsM;>Eb_A8?kecr@4lqPeicL$7 zx^tivX=oIkra@DjUAvq`?fEq3dM?|sk8JU>hc(w_teihfYdz~(9<|*M?#-kd9n44v z;}yjAP-uESsOE6D9#NwNR|_PV;)7V^?G-n!XVaaicXkT`o;T9wo1>5d()yr=f=g(g zYUPc$C-<_x%FxSbTHm`B-!BLrq$iEQMPVi+P4y`WuxRtP!>|IULad#QH8lG>)YTqA z2D#44gsujZe35dIypHiOv{i^d*D!R{a?*u?Vuq9kuiAeem^!a8Y_o)#r*6J zBlM?tu0!!)zE1@nj+)H=D|sA9bhxIQMhnC^UirQ+kay7+I67LrBVg=EXR8^E<-fTQneN@MrERDHs? z48HM~Bo7D&sb%&*qPfeCvtJ;+0iN<80G25M35DjO4aL?Y+k*ngh5t~|nVPgyTYgYF zSR}UDJiYjot734!oMW$`VQc)Gtrj3 zSJ^JtXj`O#@si#FV7`rf%h}Exz{a-=g|7j;$=`bnmdjL%%KEA9mR*!k_KZ$`EpV|U zIpKS={xj$CEQ3#9H6tZwUS8sdi8%dbd^AG1F$JIk&{W`XBiIv%9I}A+%oYoFmQ3K^lV?lF+81xx>?9du<*uU7s%dlU?yTc?&vUz^V}5QV-|Dkr z^7`$$c14@x1;JYc@Y&X!YC@8F#6X>ia1r>ZBq{FE97sMA!{d4Ry?wa*(-+rI2Mu0# zd1jzB`9-5B^{s;y>}@@&7E{ODyKn>-6iymM3Inf(7U>SqZQeiDZBOLJ$*g4ATaa71 zJez?zR@Vkd zFgsT>35(UGW8V1;?JOce3w~IiBC_tax71Jbr0lqRO+L2Cc$dmk?YZ9N&)@ju*2fi- z^)1Ym-T?ZScb|U$@4`!J0lb9l=rEJ*7S210oHiqP{U<)9f4PJG&EwSi#(mN2G|HBA zqj&z}Y5Zv<_Mh9KR-~;g0#+2*H&Y!q3A!&nK@DHk(x5GaZfllSQf1rXk z0!aVgsG!3q|1lNx->Ucj-Olw7s{bX&?mxMpPPlzIKSdV?fw^oPX18MJu*fW>-z6J! zU=!4|jJ}HJKw;bWh7j@JT{YH}FZe>c#c}DqiNczmW%|4`GA9m(a~(~Wz@gV+O<`HjIWu~kX-(hS z<=Zg-E*l8(hr%NjoVUfR74}#wMTio~VOtn9Tw;mTF%(jZ@DBU-^aBzh4pOudOEqeE zTx@H@LOrc^Q(rS?Xcci+fI4s_w| zWfjGel%WgZ`8L1F6~v+tHbIGL>b^SLxI7Kp5Mq#5TM9;A=}#!*tVmSR?>9`cU(9#T zq7$*Y(R=d&{aKM0FQBCZn6GEluT#;gDn32WgZNchZ~lggQJ-otb>T(`3IXSXE08yY zis;keca&yuR!xCT-qvDZz5JjSmS18sg;{1E`Awn?f+6L!QUs6s_2YQC2Zkwdtria4 zm=LLBAY^#ij)+2l3~z0X^9{--R?ZK)KVzVvL;PN7sql+MX$=GG-u~GL#H${U`Py;g zQp$ZLJ|-DPHE}+x>fxBd&4)da$?|6g_318r{eJHD^|DA)lo)^;s`$>ytcXGlA9fLi zGxy)Hi-|m#Ds%D@({NS&0sex{dSRrK{}sktlL5n-bjU@U?F8 zp$Y(W{A(uU*q=yqLCxjG<9CMc{>D%L-ne?ehQ0CSq@S}-{QPPx7D$RFfDX^t2J0;RtI4(eZE|&gU5Waqu6zn~i~sN67t24~SM;BY()&*@%0FKG z*P=-L`$cj1hehc$_j#Z*yF)&sMm$VfLhDfgw4AZ%FCOJPOZ+!tzXlfrPC`!}$O_#r@24o4dyT5U4?o z0%G9b+JJ9I05{>e7p|-14=N6z*C`ykd;pl@koxyj+(*L~QU6C``~T8n!S$Cb>8S?r zW%8ZrOnnFZe;Qc$CU<5?bj}`1M4f~z62sz?eX6VWo0Gp!AsDXAIX%4Aepc0B%NmkB zVyo9I#ZXx^mfAFtB&oC0*)35ZK<*+q;PII#{8^=<3YBu)3aK9gg8Gl3RtLymf_&+7 zFx_=c*`cp09Bi~olAUA0h7*rppOrJY%c{4UU?Q8upCKO3;d};R`RQ1nh)36Ijya^l zlUIoG;H(r_7|hipn~ea$CSryW>~tCFwUxr|I96UkHKAVXz9-XPU{-YEo*JxG7AT>{$f zD-ou*U)#CiZgNZg@{J$VQgk}b$5m5r*DqwRZBCSaVN)|j>`xrug^)Z+p`=29v~mUD zYw8iX5;0J)Q0Hp-kK_9@HGA9E-yYiuS@LBc8iraqBudk(u0>{m!d&=;;n(fzWB7yz zx}TE)B5SS%@bkqw0!suH@3M-|W=GWo%?B zpADV&xO1n7U%XX<;X8*0>U>XsQUB*F3AhzHiUq|0KGXw@7d;LaYO36ulj*1hjg;DZ z*7Fyex+{c#X`aC|pGjw*XAb|!!}-l+Jvt{~+UyL&~+-Uh^ zDZh~||1RKvb*N-G1SZD8)7aEQC;szMWr8~Wk8hMmx)Xi=4p?L}sjL~Ma zUbr*#F`40h8?8isB~OAKCAD=Jq^V0S8tTt+T6G^TfZ_v-qlAUXQ^fw1Ff=JL2=6eG z7c`(^GP$R3ZNojz9O6O1BkyGW<#+iT{=XAA5GVaZlBs@LYNJ!=NE>Omc;n2 zMTb^{3U0{1D$3$wC4x)P)2ceAhxFsbI73nolGOhmEE84+0FlJP(sJr zGMQg{D@*B}$kK1eo3a1`pnqs{VH|Y}#iR5mCjd*j2($xckaTfyC1~xKO7Lu05v~iY zH(RrZt!^m_a%HLHgcWG>T2g7P?G2|~x;rJTL=r^!zI{(c|25|OYu`Q-n!!`iL?FEK zWg#>Y4*wKM+G&jvS%Lw<8(5D}Q%!nOJ_x;+@>w}RSLWAZ|7Fo28qgW-WIC#vzB2xs zPS{m0TMPI(iU}2lHl*UHi|Nmzffn$C8Oo6~z6`?*W*jt-6yHROd196q?@aA#J4EsU zs4YLhB`tG|<{2OV6m5k!Q2tB%N_(`m>a||d-<-ILYFNofBCf$~NLv8+f-pNNAE)bTb8NKD8xx@w4`; zyM%-b=E5Nf24x|;kI~61w!c+CZqQ=f2{PSE&L<17_wW+A=(AGq|Fjt84x1?Fss_ zV($~+MZ0RGXo@eA;HXLzCIcaFHKt2#7l`U}gX+e20i+BdJHJ=s-`}2JBe1mZvz17{ zr(%;&qp6T$&rL}XJIs)MpnFw57CX2nLB`Oh!0|Ubfve=@{mWpkP*^zE)DSo|8+7o> z2Slg#MeRejRn7A3iYcnDIddavK_k*!wbKbR{Q3R$^^FGSC<%i@iMZ$QSg~O9X_cGY z$^g-b7@e<91kla7l&}Jd<*ZUX$rJ|{w1>_vk1p7?%)Og+oHDyo_v1s8VBTta>DyT& z!ON!Vm`*>G;;mI-ACcOiu3mN?zrfW>N)L+SI|&~0wxRfi0-E~(0+7y~w(Li)Z0si5 zH8MmLS8^7>;v;Vn91#0sqNH`g3K3{f89F{Ff>(0<*l!GnvAd7dCETly=o;IZ zl`^{S=OVB=h0VuC)bqV{`>s;*58$d%VSzU%hx?)0&*MpkbVJtL2ZR%a0LMd zG|dGEPLRNB_%~5=2l8k7>ARlu+=iceCQl6$dHJ$L+E@)FFEh>JxU7mgv8D`rf|7M#HkqmItbZ)vxdgjx#Wg9#au`{BHqCHe znKmq~as6$ZUSyi)6)YEztV{P3ay;P7zK=>-YEq0hCyvgG&Tr@EIbKQ8^@h+gCkwr& z&er5pe0lKTN)cDb^|sbRCjG`q13u;8$huI7AnEgdSla>2a(ZWO^s)%l=!*{lmTXDS zre9|SeJ#AkUuy6F(H`iy1PdWAg?f*rcmO*MndQ4BhMglYfB0~0)%|W>z9Dss`;o>4 z;_DI}n#UJ!4h+CNS?F1=RhBwr42FR|ux}Bz#%2{-QVW)$auzMK`|EdpWIsX-3wKDS zG{l%5#NOcTR9t1xbzJXcl zyh`pRI>Ai60XON&h0CP9c5?=Bb)dV?A;Uttcy72c8)t=^d;M^@xnmTks{J}9UWsjh49dZNlp~6>hLn5_x{ggy!r`V@d{nqJ{d_~Vvh)E5rO?#o)h7L|@ zn@ZY1z?-2p@3J3FOs0lKXW{^F6F~0q6f@Wzu6J+c@|z0)TBNo4k}FmR{U)<>FviyxO&OQ&fNFxqu&3BOU`*g2w5gW&eEchg4PW=evsCtvTyb0_t(T`B`*SG_95uXtZ%hSU2xw~f{x<3$g_KB$ z9)(!}F9deEE3|CTAJB!9mKPWgK)aQMM)JRUa6PUcDx`_4Xg&%WT%T3*OM~Z(MCr?{ zvLf+*+9l*Ba?dM=RzlUX)@&hBY^h^u-p$aRZxMa&apNF6!|yvU0gk<+X-t1&j4Aio zFk8@v`{CGaxZbQ`28fRNU~KrTR-uAGQr(ArAv3qB$ue<0&TF^r2wyR860a#rO7hJ3 z?9-VNOo#LB$xSn1M4XMjE_!|xiBnXjp})QSwaL%$Cg!YDyA|6@#gsxd_Wbn@gPY1{WjF`&i6FX&vH5m#qkfS$hjBcRaYBPK%1&vtLNdz6Gf{|6!ER zujB=Y=aG4yFCzHJ#dkSEgQ<`2d22DWpP(RtKH*mMO4?r}5 z9lG%$#*lXp1an{3VBJoQk}ie0zQnfPZy(Ow^c`SNTF6NhWqQLbUw|iY=WU1e(x&-@ z6;*!07plcdc`JNxKrn?@0vkgTXbp_ub775i7h zLqn1)DbBmrl4Oq`IG*NmnqCbBaLJTO_4c+{K?(kz*J1a~v}HD4c=)pZ_PuoRmvHYF zn-Yb?w6Hm>*%Wek*=D-4`$H4ha&p0_HCUyddF6W8$6Djm{%kgh*Gp3Q@@j37HaF4i zOR@iVfV%_t;TuZbX>cXcbJ*ecERluWw*vGNN@w|rP2m2j(I5Unb^B^E!SE<%xV!(@ zafdFvXdk^ya3BG;P&snk2cxh4G~b*1pXPfV%fP|N0tBdk`Q&zF{5wmS|Dyfy?~XA4 zVs9?CJ)MYyA0?0c3AAI6k*Y9r_^1vg0HzCtn-f~G{W-i7GIT*k?4^~Zw(i#U#VJcw z+85ID)MmfO3V2YRqpQ@xS_QNba*`T%!G-x^26|85xrIhJ1N8xUI}*@AMM}gXN8%EP zZx<8$Q^mx+!Ybc~KQLr&VLtR#x?9qnFBX}7{Dz-~k3GLjbs(OLm-^CI;$rb8;rB)R z^~Eo6aj+sv26Y>>?KzCf==MgUkCB-(a}LJmyJo6?K-o?A;}qYQw5BBV)ZU`7lV#A- z?yE^>c$38@2yQys^Vu!q8xlXg%~|VUI!GteREb0%$q+S%MxL07jD9;KU~p4o7qUu86_s9 zq_K93Y?@)5%2Un^BH58fNI4{l@=a?1OvuI)W@Z~b_m!XW(seC0FH)scDpxQ1KM-cr zHW|=4C^Zzn;CzEOpr6@&T_x3g@6QMM68Nzl!-rsQsYE`{TELcFXS&HybhA|fmZwx_ zx!K1b%ETsSsk<3+@wXNm0(p_mXyOS~EZ)vgV`bEN_vEZPDI6F=ne>}vfwk&P1r(M& zx2e%4N|QF0#j=gfIg4inL)mtCQ#>_7QuMCA&O2TmEbdLQ;6?Sm13UWEMH2=BDs4dv{)FiNhx0J|sxd#zW-u4-q>}3EE_BnukTP*^=dGzo!ZJO_*69 z2o!kToCZE2DCsaf$x1Fuh#+2-eVZ5+=ZoFF`|zM;&ewjU_0iq?q87$FQBB{<2Ow&9 zo;iKFIFq2A;NG7c(wYj#i^K7JD2YA#TO>!Ia+(q15{=OeA~dJYTP~hj+1qRqUebrWR2UTUOL7t<8}iitwGm#v5aIw3UFsQeJ|D#pr`aJ~*TSoKgrNZ9aM& z-&b2ZFTmWuJ1w3&2wJK`upC!a^>uC^aiu9^+>T&ZGOFNg_b~+k zET?=JHWW-60ff%9Wf-pv4;IG%GU^ z4F{K>5@`zYZ^UJee5zcVrgv(^d3-F&l}rcNou29VX_TL1Fii-sg_hjD{HCVs(*S!n zrxb%qAv_ch`4frLh6O_^OX{LeQi}QS zM7(n5ae36#hN0qrGT4_;CZNr;11-w{6A^G?lEsHc&sJ2XwA~gxrX3|wGVL<8hesGn z*tVs3YKnP5@3vuFz+JW57>&3K8?&T*cZJTftPR^};nAdy1tn=4tpmb>v~tr#y+!;w zPmu`SCzCU@{nA?X`YakN`ae*_Ob2AQ)oj>S4bTUO2m$TlKqK*oc}ec^{i`EiX7)fb;bS0lV2b>9mOmv>$R+Kgs zqO-}ZKLA_XX3I-fu=qVrUDo=j3EtR6kr&hPEa8O3VBQPAUegDEgxJNK`kc=e9<3H*9ct|Et3Bv-}8J#JS-dH7w zkPC}OfI`h8MnriF>FAoPn|y8hIU*js>+k(kbXMAU%JHop)z^ANkw8h0!Nzhu@K*kL zO4X7U29cQ|wYckZTyEs9>`T)a%z zWR(s@6DoO=(sz_zF@OO)Ba4ybI?}DvJzF^436Ok2wRvG%*o8Pnh^EObvm4&sDdpCB zzRdHtehF+0?se3HBsWV?+jZpu_N*O=r(VSlS;#CvyK#Y7(}>@dU+NF6@zi_y?&THp z*_K}g372gwF2UXecMC;efie%{RTIm0D8$W(Q}&q&wNV6y!!K;82aw>O9ryv#wJ%R#*?(d zbI6Os>}`(J`5(8(Ppe)L;)qj(F9Xc>njfZR;zQ_y&~w?j*^A7{51`&MAunNc9)~QK zyb*#ttZVU5WYgY&M*y2&>cEmQ=K1czb8BxGrN{pBKmEDub%(f#NiZ`4rJTf}Jh_D| zf{V+Dg&Gh+#SDd3H6Wg~rSES?D|zf6B>Ms@Wtcv5Uaw15nh zUt04bO{-$E0}ZX&#fQ|7^9L0zl<{Ox#Vdlf@bUT2 zcQk`ste?AD)rj+Ck9`La6(Ei05JPM!Nu)L zP;A`hDH+gbYl@+z872U@{9UYh=;EXEPk*x*x7~P5XXQrZy1UVC@$Hv!MbAB&eU1~z zND6$skHomN$Nm0OP1z4_^sW?1hojKh(+hWKn*Hr3UaJ~^k@K;duJ4j8b%t#%Nl}oY zg+PnEA2iWO{8bk;FA$~=Ede;z-A-MEX!1I)5Vw2RN=ae#rT=>?n69U(UI{+cK4!s# zE5%Rz^HMSft0Q6|h-A$#P~(jErQh7?zdkI4lGWa31L=!}d;wRQ$Ot$phm`BuLqp zvIixe$sXRt?yCsaf_O_C)NMqe!G0GHIl|?ExsU2W zb@j+sW@V5~k$?9itjNwpu zj*k!1&}LT>@W%ARg~19a@y^H+s7iQ9|1cvIh$*+1i>mY?oN}{=zV>Ge3y()WUp7~r zff%TmFm$}|3+cM5*PsM?M781I@-yJWfaBSnpQ+Q_txi|CbL}5YlN$@&+4s63K_sAVgJ2xQXN^DbIiY#3)23T4VP*=z^{QP(iM8)UOwm8DuK3G(VE8l|~?eFqKf zKAnOHz~CeYv?<^aaJgyjd?%1YR{8*WHacxv319+vKOU_1P_ZFIWz~EZ zV%JD79TpFCi{)FGw@forml3x%FR!G!`tW%GS^lAsKteI$uz0Je?<$5WLu<4SEG91y5pF87WW@<0P|_`z`8Sxo^cCV|;cMfp!(OBKi{CHA;myIcv7zfv{M zDWn)qeuW53VkmT-7DO$Lfad_rP%y0QJ+yHkJH2+JGLKdR5K(n$br(-9v67+c`@#2W z6V=(CahT@roDO{XB1Rb)!?tx63TYhaA^lnK_`5v!Zmzi0VWg?qeJ*a#!xA)6C1lL8is&IQB4Lc{l z-*4==%LZkElQHisKr|I5GSh)gy9og6^E+Ysz~UmytXS?s$X#2T&$|Npnu|32*$A5S zp?+8NM@f*=%EHjX)ekC?nI9@nuGawJa#&nBaJCH{Bifm}DoGY-F59k&pF67!b(21f zIKpeK7Ix2tzS#}K9s8#j1!mLF_20j@mgcCMLa%sZS2=7vFbScmKYnu>c0U=&!Q~l9 zp@MzMZr;s%lK|gC9E9RuS=MxQzp|xFo{(XYvQby)?SJc1apAi@Aiq4VsK_JNI!)*B z(4>^3lZJ7$D~~3bZDm4N%in@Z02S=XYDj z`u(g3o3^zSHe7Sjhis9Ex1aPMc}Y(dCMOtq;Iz4$t2|W^(&F!^!1ehLfZGwqUUnFk zKvz2>ZKlKOF|)HfJ~n$A>1BG29xaof-*|gE85yzAXh0MBfBVwjzL^KU>U;f4Ww}!P zzL&z$QL<~$q-fo=m39yw#osEtUU22%DrwCd_O^DY^5`&8?pNfz7J zmj@N^@+z}3Wy-kR4Lx}1I&;0|U#4Dn?23TR#k+V${W~e2e?{*5s|~Z_2vEZ{+>hSs zb;z-Q3XtepGf_C%6N_z^LB>Z3Y zB0%qb`v2^`2ap8ZG13YK)C@rz4q4o3`F`XdL<>A~GRYLPD+rBRL1(8OBa-12cWv#| zAp+v>J~qA>c~)*f^ZHTJU2fU;UwB?S_UI+j^|q}~utWM_Kh-)Abx*)KczBiA^xWsDo`j)&)zjV+J4Jc*pIa!gs92!x7 zuQjcBq>uK(^z)5gx?BBUUF_P@CL+Ge)W^B!yFF^EJNI;xrB<*+b1FXa%)Uh)3eVcK zi_S^B{Q&PUN+KyiXT_kFi1r{?Z6!aET=pQWQUEj$O4iiPNX>93SOBNabg znMrC-ozggWQ8yQ|Ml!iqh7igV!@3o5cPATX8BG@7rBXd1N`HByTNJV81m$f-xUEwN zS`&E|-Prro5KdVJ1KrR!#!j)zR*pe?lMgkV#e*(gILEX-cRteZ)3cE~Vx3jL&bq3; z)j2cWR$`uiG(U-L>VWG;7VmCFJYMI>e-e^ba8$mWX&#%}FYxdpAE007tYO0XYW#(| ze(2-ovUx6jAkUJV1C2P2S%Y&?QhP`=6fR1REQS6-HD+qRaTxMqsu~1B_`pC8S_^RDVc{)jAh^5<)h)N+RHQr>$k7ncY-dTIF7`1EJ z7=K8ZadA4bnz`~ahSoPJ_voqf;zid4P7{XR+q-xcYgo!T%ct4d3*Rm7 zj+isNS2bALK>P+}R{lXX-m~SfFR}rM6DG^;^}h+W`-AEMQ#E|L8lXu`K3tjN5?l>B zy<*S|P&iuvi7;&@xL$BZj`do_r-62G}d4~wb@+0K;EsCa#~EM0jj1IV7O=Y7T2|zo*Pyq*lJpqsgN1mm|-M*z!wx7-bcs9ZLszBOdM^-2(Vk zU`42eIk|^SngzPKNMJ$+5i*=_2yh=2-3cf<7M)o}34?&f91|#zQ{U!{9i1speRJ73 z+9u&C1IG~0ap%_!zlTGbPs9^z!pdM^SSd;;eH2tA{>1XQdENb>q$Hb`#%9CD2+rdQr(_v7Qc*TSE= z2DnS0m%l_&tr98$lemAhEmBo*{C%0k1n+?tT$Mf@Zp3T}OO;6TD!>&v(QA zP9&7Q0rxzEHL4=i{Bt+@#8zL!Kujs9>yVUv!T`_!KXlgv4xfp*mUI#u4lYj8rTB4> z9lW79j_s#-!-n>pq047!v|OfRVtN{Ar6trlBjqLgEx1=64l}VYEPt>v=i~FRK(!wv z)Z>t7OB7z5TnWdC*`Tw_vW0z&D_S(R;Z|?kd(19L`^bQ zn2dp>1*{BnOP1`9We3KEiuqf9kevVI{qAd{QnCaCr#q+l4`ZqyxAhi=>K-fcm(6dT zOYr&m`d}+ zaUxM|TxIVpLn^4RI=H4^ZF(~D`T_6Rmm5Kw3qdMYzRqhex=u*m9aqV@ldHrG3_bZf z!4g`8o(~+uB;xf)R&XFhdF8y7;bXzs62x`O(qwCk)a-K?=ya(MpbSbq{o?wG6^c@y z?*q7#<8fB+EGiUqNXF}zVGMJ^+OfN&fw+~Cb6t(IySp-5Ry#_iNedSdqdTXsIUl@f zCqF8@u~=jFsfAxs?;dP+N@{BrByz%4i!+pVzYBBP%#h=98J7^wp*%wyH??<9`gqS7 zWRrH~rLE67t5zA_8b9-}glfo=#g2$=L6@gEncJ@YyK~bq|{= z+?qw--2d=}harSXG31Fw;%5!IM;Fou*ccUCP(df0s@jy+!*q^%l~=q zbIv$-oO_-#?wjjCg*RbmXYIM>n)5q9-|hRDj35WZ7>dLU+S&m%{jebhi2))G4mwrS zVaX)K2&VWe{F%qYyJ(-O#0f7#`gNnD>U3*SkEIcJ@7?#)I#h{NtbCv<^t+`Fzs*C~ z`#Y^G4t*!sGYoZF8xHZPp+*#k2`G7YizbV`R_Ah3jM<@^Q_IS`jBlpdHBR;)`#JsD zzVkAiPKPGmGd;_F87uY2O@W%0c#muWS_J9@@?;e;{%j~-1ahKC;2m1tO^AC}d2Mn} zviExPCiNM07vFmGNLBA>3ulusQEsRwSNBq1GeKyHlm}F_K@{@xR

@gNFtHFzk_%fUgyMmn=K7TYAF;K3{R!_K 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 KDf}PfcHmzluBsRS literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/Extensions/DVDBurn/meta/dvdburn_en.jpg b/lib/python/Plugins/Extensions/DVDBurn/meta/dvdburn_en.jpg new file mode 100644 index 0000000000000000000000000000000000000000..509816d03fd8e7d5272baec10e3eccda3f9f3dbe GIT binary patch literal 123854 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 qm6{{iR=i*M|1LFKFyoH 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 + + + + + + Dream Multimedia + DVDBurn + enigma2-plugin-extensions-dvdburn + Burn your recordings to DVD + With DVDBurn you can make compilations of records from your receivers hard drive.\n + Optionally you can add customizable menus. You can record the compilation to a standard-compliant DVD that can be played on conventinal DVD players.\n + HDTV recordings can only be burned in proprietary format. + + + + + + + diff --git a/lib/python/Plugins/Extensions/DVDBurn/plugin.py b/lib/python/Plugins/Extensions/DVDBurn/plugin.py new file mode 100644 index 0000000..ca15597 --- /dev/null +++ b/lib/python/Plugins/Extensions/DVDBurn/plugin.py @@ -0,0 +1,17 @@ +from Plugins.Plugin import PluginDescriptor + +def main(session, **kwargs): + import TitleList + import DVDProject + #project = DVDProject.DVDProject() + #project.addService(service) + return session.open(TitleList.TitleList) + +def main_add(session, service, **kwargs): + dvdburn = main(session, **kwargs) + dvdburn.selectedSource(service) + +def Plugins(**kwargs): + descr = _("Burn to DVD") + return [PluginDescriptor(name="DVD Burn", description=descr, where = PluginDescriptor.WHERE_MOVIELIST, needsRestart = True, fnc=main_add, icon="dvdburn.png"), + PluginDescriptor(name="DVD Burn", description=descr, where = PluginDescriptor.WHERE_PLUGINMENU, needsRestart = True, fnc=main, icon="dvdburn.png") ] diff --git a/lib/python/Plugins/Extensions/DVDBurn/silence.mp2 b/lib/python/Plugins/Extensions/DVDBurn/silence.mp2 new file mode 100644 index 0000000000000000000000000000000000000000..e8a817f84f7cd9a9b558d5314ae62ee11349716b GIT binary patch literal 8340 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 literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/Extensions/DVDBurn/vmgmblank.mpg b/lib/python/Plugins/Extensions/DVDBurn/vmgmblank.mpg new file mode 100644 index 0000000000000000000000000000000000000000..8e661682255f0454a29f0f91268725392754a5cc GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/Extensions/DVDBurn/vmgmdream.mpg b/lib/python/Plugins/Extensions/DVDBurn/vmgmdream.mpg new file mode 100644 index 0000000000000000000000000000000000000000..4797986f6065b8541b4b08ddccd9364a0aab4042 GIT binary patch literal 575488 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

6{z8vl*O1v){YGy= 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�s~zCFNzA)=^%7;Cz|mA!k?Aj#KP{dVu}K!Ql>_~ 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

Bu`*`)O$fl1gvq3g3n?=S2sjYr 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

cs94!*=o#FGOf+HX_mu z>Bm59whMAg2{5QA830JG`v_|{D=*`yF@f4R`|=^GK6?9iuqPbZ0CVbbfcPYDHpBMn zg706eH3n`F%PR^zh+ZIUndJb?T~7p4ko(s+@HzuL0M_%uK@HdWcENIaN(5}ti?|(^D93abSyXA zFX$N_j#VZGl=$B$^_}T**!Lixm=i0He=obbl^U2ecWXg`LbHYo>4!T?u2?^v(`~I& zaKDvEsZ!UmeQvwVzaV`9DHsX1*@8`%U*cSq+!opc#N1CkITY zV(=MOy=%0}^VVSJq9t8xS2Xa~5zl>>oL0nyXb98?ZmjlEuX81K7jy{-Ns_*H{su~Q z%9R7;S37*X!8NiZE6veu?6(KTo+e9+ca1rJrzN30!V|BQ*JTqDU>ftkg~E{8hTvy2A!t&D^nf`(&eP zQYA{>MpoiAr%?vQ`w_jmyu(SAanL)hlagei;a|G*)c%O-U-16j3AYreq`W2`)^93& zRV!VcsEf7GdpG(r$mNm%p!Ae3BiDKKJ~!BavG0Dn>1&;wGr^)&wl3P6=iW~6Xgq@< znL)3GWnOZ>CiP;`!`CS)?(6zPCVLB<_hcp|@)of8=$-!5cARi)SbP7CU+>N=h9p{l z^8p?l6)CQ9myFcbDk_|L(24(uUQAJ1$QS7#pa~9QXg2XQAk#*;wP2H;O+gF2`#fn1 zJ$5Ggo<3gnIk76TjJmurCvHpn1jkotAXB)CvVyuj2K7?EgeQZP&~Hf5jcUv1&8&6b zhPA}$Uw#wnW{Y}=ET_BD{kgu3KWO2>r#!-cIp(nOGIL~e?oRCoMaGkMIg7e-9I@%& zOfbf@$e7XK=N_Wh`#Nh+Oyl4Xlw`cuJ4M;Nc{pr#Qrdf{u5Y}4($}DonzLQzgbt&J zuk%7;Id?C)t~kqXtG$=i_9w`IgsV0v`}xo}?L3tzn52Gxk=hdGUKZNgZ|Gs0`oXH6 zZIz;SB@@jAWY&fJ$hfXpQA^o<-q&hGJiTX}wct$4vq4q@ES^07zw$rxe*;A~HU@M} zXzV`OeBxr>;Zjz1H*czEYVAr~?Ycs@N94*AT&q+bx}@!$jy+1DZUYI)1!FDCZifX1 zUhjI-74=i4U8eH4uL6GCDK+rV7h&%eqmN7Ibq&h%m#79$^@2-E?%*@_#RoQ5G&apV z3@hHXw!C3#VxngU5h5iuv$L#gt(@Nus4@!q-z1ML%F$o!t-|`4X{}lpbiY;en;)k> zWb}1U1fA$nWj`3 z)qnb73)|MyC;nq&$kT(ipB^VBg>PZ&;;QPuSV z!b6y)==x+d9n(;vg{(-=4@-lGzZnx5 zVWfe9LQcb!RY8fUNHc zH{%m~54Vn`3=jD;9BYp)-I>wrw3HovEPQu{f8mW!2DX$@vdDO1-HaM&y5fgz<19}s z$|dcl15Fb;d^xod=fe$f;ANa!s@FE z>0N~f%2c|&S#d){KK_R5R8HHn4U=aT9K6dXicDXI6%4X_n5+y31NU|BUNnaNVd>Ve z2`Jxca)XP(zvi9zok863^f1%bTA$+Qi)P;kIIn$z{_SEN73-^*Q1G^mVV&hCqOxhE z0_$yo-Q*-~@z@aGo_=UcK@4qmtt~}HOS`PSxquYD`p@vyI-e738U6pBQkGI|XIu8x z=GY>h8B6%%7L$jPUqQBq^Xez*)!?X?A@$M=hu6Q`zl=53_WjtMZG%#^OV-}gd%`7~umT4s~Y{!K&s#ukE3W`MqLc%xnLW)mHSyRmC)f2u8lD`SKv;$|YwuoaL>(!3k3)%njI=lsAkEYA1rZx(jbnMwLSQQw&BR3W3H!EegLHVxgqWEE%GOVZv=zpzqlOiPbuEy%b_5^!YLep_mN znbc^>7+ZQ*i+-*DQ&*yeuz`Ff`;pI2iS%1uS|JBG&zu_#-Pj2LzoH|_LROo$* z^v!9fldnTpF^|g5ipKhhFW8lHmAs3Ul-19lHY8qfaKVzz5N(m)pz-T9#Ga&!V@N?_ zv6`J&669KAf<^i^hEP^6f0>H!rn^b^PD@rS<^F8ly-6ixZ`Al0ku^0~=bgti_@j*? zg-G8=&DUEJr2+=~=8kRMcqXO#o!Kq2^Tr;DmtG(|f<)xf04WKlE{qoz@!yTN&ICLt z`m(1!XG>RMeypHIN%rToiATJ*bNqwknoHaj#J{zyY$0x-fhBSreI=GwM z{VLAsr#NONRMmd4XOX*6;so(>b9<&r|A~Corl*%xXQNxEOP=apJMix4!vlKl%KaaF z87@9r3Ys-*De3ntSBKuOcjSp~=a*DJLNj{P#@t>D@j|PQTb1%O(({V9=iO7%RLI!7 z=h2Ews{OJxl$(r(zE5$gBgfI7-_N{_+nRWQxYmTy`^Hz?HlgLFR@3NVjE-IPF!46i7;90O+7@7# ziroq}i_cok>IebPvpQ{wYuw8J$OW^(mZpkU_3U z6Sh%g%c06}!s+*@*#fqUCSvcdA44g@%pBHvskkOUcks0Hu8-R?H>}F-(%67alfe!a zm=$jv5f46}{<(E9Y`l=2)TG9&wf-|ann~+XjK#XV`n}BEg|l4$SJ$xQA@lmv`X4Ep z>+JjH`}ey^7p$Km|C%LJgQtd4gZ-R#pVY%iJw8!R?|MRud2x1uJ%Yl={n5&ch!N{c zj3l!^G8~L2J_oJduQ)@trnC1aWM%GIxoJ7blr!b zCHI7}mShjQ&b4ewgK+TQ!#&i^LhxA4<3viY`>heK+6!)Lw5kD0Yo7UwVSF)UOx zf0B{t-C*Er>DyRvSvy9H+*H&RSZ&*kaXcjR2ILjK`9d)D&ZBey6Fc-4pW#~iMjjuAIsJNu_%U2!IN2MFa$g7ugRZ>=GEN)d* zjq_ow!PhArJr^a7;fuDQg>3>_Py2H3(jtn^)Pi)L*t9+|>}H0`l}ytvF8WKRFIlR~ zM?+|?E+2(Fle#-zQa1mQ!M0VFEK9Fg|2Mna;3b^hyIit&j`IkU(VFez)Lu%2l;=2E zmgAA$yJVv_g?+y#C<{HAP^xRYTuF;w&5dvS17t?EOLn@%=$rONO{dn^`J$(lY#G+S zOdKQ_je7QON&9dIWqT3D#^k1}=_$pqR)5W!i2|pX@`ky-r_nJ3dD0K!l;!Vg=BvE( z`KZA!q2}l1&K~PF^<~msbfzW}W|?&xuU%JOP#Nr6df0f-edn#Ft9zE^OZOSfJUs-W zs}%aAn^Vljx71ZfIq8#!w#Cx*a!6Z`4sShVpvIl>eN#X#ey0CtP||^tTSx6=zQkLd za|08bxA`+u*I^AC#iQaKh&5?f?O5bj?6s6sep+4@QIIag5ED5b!-GhURiX>=&m``D zdL?H)YtrdCP^#Gw;VmX z>rIDXRr96r_e$*WswKN77V?k8_hks%k~R0or}OP?lg$0IUxvQqbX3?QOQISW6GY~I@qfih%|uH!Jx%UDwr=ckl3Rw@ zgl&jZwQf1;`D%SP%tW+ekLj>3rFZUzx{k_CJwXdlnsV#fo{hAYQu34UPNzzs=f{o}9j~ zIB3#1%t7|ooJMG^Jr4f>RIlTy!2P2ND^jl$limXqmN$n|L=%5;)yH?CNMI`(f;;*%=bahg9e#qopM zq7S$O%i4JZH7NQ`O4sWBa`g?i^{y*L)?|?|5_VSyp*!{ozyDTlM+I(QJ#wEu$BhvhNVf&1ma_ zyW0*qVdUjI=WQg*;0eEI(lvxSmnKxa;^i`TO3~zX4?W6?qBU3;xg-(#s_Nt0d)1rr zIsfJV>;E(Vm*bF%Z&y8_+vG0EBJtsQTjsl!cU(!=kF~h2-kNbzB6BCp=nsNlrA6OZ&&6gB7rm!+=_;ixlBbo{0&nd0R-l(3Z(S1!dX*s$#a&orRf8t{;cO#Xs z+hg}zzW)^PD3}|Uq)=0+&+plO6#6fW85C~z-TfxG=dv_}J_a+Uq>koNaM=95dnv}KRM+jnqCYKrXC6zyvb(A)IW{dEPSibL~xdsDd0WW z#ev<|J71S3t$G&y)Sowyaj18b<$8lgy62bc#eThq`?im*m*o(9_;YubbQgjG4odPA z_Jr%asvT4021780?j=8LrM(`x9O76jjO4E_?O^$6Mr_R)PHgbZ3w5D~4CYp1r|up~ zwBY($PMY4Yy>>A(DaueoM+EzBVm7I4x!SzIRHt4$R8c@836ut(A;aKOD8jPP%tx-2zyxPkvCpZo0W4MtpG5{f=675s49Va<~!AF2xe7 zyR1H^4^4!f-=3kFs4yK~sQ<>#j(z-2-W%QlHjGr|F|RQeCUL7&w_krkr!U;iS(@Ps zO6t0Y2X&Ec+CA+hVX`H}zm~l*dAyH}tD{J_#D6x6&->CCPL9=i0-xHNffyyH?B%!b zi)5FHPiljPhiDl(PeLT-Qr8Sk>ySZKuu_{sMx5o~giv+*rg?#`ft^N(&uy8sHbfWq zN?-26{iHcX#cFoihY?#c_h0+LCt`S{d^8vp`Ng5>>{F9pmR_>zG|$tOkgPUE?dQ{()82#Zf~oCv_NU&3L8-_w z4e!y`SKOy-B0GGZ8rL7YKGRS29qZb>wig!Jkcw(h;fTo988CN>+ zW0!5wvJ){Cc%qk+%|ONmZJVO3M@-|d`t<1fCj2@!o|^06!CjUe_a@W# z{tMBCRV9n~Yiv7D|9I+ByZaNfy8igJ&DzI(qD*ar#HQ`4CRr1G2gSyD=1odVrs98F z$370B_H4EACoLDtTGBt<5A&=ivg%v!r_jEGCX^SA(uMTosO_V2X?o`ku2&)xm+W}h z28R-v^QAt>Vc$oq*p1vgI;DRrk19N$T5_)7-PM~tUHGb?iV%8gh_<#{uBne3?+wvA zU?k}ZiXUNq>%`bhuOa*O^nc6qrt8`|?9GTie03nV-gl_}&;z_urq`Lhy)gP^N$Vb6 zi(IQDT2MlhN!q=3PHmNq3-^+1)T6=0k#&zXpC7m1L+7bqJi5O&nZbDb$TXNW`lhDu zWz(p@yG4ab9;kclnlT~P%K1LOj!;!w`F?_%J5(naS6|YUYs#pgFUuRgU&Y{l1Xx=f zl%>;fM_xlKw^>O!uX;%9B_ERKNpv{ad4d9`^!}!7yKPnTWG?;9M!FhwH4je}^fbX) zQ}I3A0DWqF;-}CUoHpR6;2^Oj&MxA|yME02Sj&%oJHqNtmTdGADny;X{owqs=2_aq ztqe?G!9-XJiq5%c-hca*Blk~5eV9@-N9&)ruACfuG8H$;scyP@_$a$DoSJ(6^Mj9{ zW2Lf^zSi)eM|xSk8v5U+zK9`e=Gl_(ky(JXLGZPTJ>i3e=Ifot9PVzXCSni2%_zP9 zWaZh9HOZFW9ea@YWTNUqm7Q9T}pe*8cagA^^4TDCLLC0#5+I1TB^NW!-)Io;Z)^y)2D`#bNbhwlj_-7 z5F<-VX-;!vgHnh+7kdrhM;Nu2>9q}>89#%_d1%5d#a&h!ojIYaUuzX;T-s8zdG(s> z8CMDlE4=g^isRd#Fs>`RNgTdQnEqndBR!}mp=w_}ADJ8AP+f7pt6+`y74c6lwcpm` zdu_C~g*l#4j?IThIEfx-($79vjb@-!QGJKrRp6H66hq0?el4XjubJL#Fp!W8mmFjH z0-!O>CR(?v>8Y&Rs6S&Vth79v7+=ANbblN3UB-a@;oGe`J&Hb9cgg%zP{p4erom6x zmlW(Mlf5@jAKuX0_vDEGH7fSo?b_be3{L#o)bz*Yn`1J5ovQLl=)QkN zFHW3_YRzgHf12Kz#opFZyXkq;O}*CFjF>-cUJIKA*Mt3(CF~G5OUKIkW}$pRd;4 zv?gyw>VU7OB=Mk$(&O?D_L6^#S=;PLHNlow1b=TPd3NG8_#(uoD7o$0*|F?nY9jp| zZMb*0>6grbljW@ef9_e__cWYwBU*hEn56&m%dWU0GD;zYiqdA_8T zm>j%XBI(yV)m^CXolAGAEn4#Co-;mjH*SVor8lVBGq{0q%RTea;~#>n#R0Qv^y~ch zTMVqSCH?U&&?Ne5aw3LN*^qm`4^j59Stsemed3<3rE0GiPY(?iox78%R;EOWYHcx7 z%1$3}vW=Sikr9(w-Q#`WhRP2*-4FeGs~7)q|Br?~2|4s)tgWr2`ZPUfHTzBbxpJ+L zJ%-_5DDSwmEPMA>HJ_XB3L3s`C?qCUp3jL@OwA>{4c&N5eH}z=bT9ANCmZv&Ssb46 zs}26wo7Sg2_uTryg=RFf=Nf&=cI6xXI+;ox1_cX_j`9Q`N5uF4oav_*9A*ec|+TA|1LNK3HE z`Q{Vb-mVD~^dy@3%tv(%gf;$dtKp~iAj&pb0ppov)pwL+^l&QB7NOxpdNTUxr0dR?`WNC&RgGV)Kyx zG*0F?WH72%{9!hBZQ-{$nx?1TA@8vw6_V_>XyS9?CDW#?Upl@l@BY?Bzph?+qq&8PQS*`V^S$5`eTvNs3+y^u^8s zH`CL)UzACGB^`S!oF3`cpNp!m9wkk>e_`D`H03^RScJgYOwCg94)iZdG(jE1t*qnA z?hct3F_O&pMryfJi$r7o6z9+#cims zjOh?jC#6-v9>F47w_s6<5;xoDwPCsdJnJOQ~L7_8Yp53izzOOxI(NQyZ z!<`Qnx964_G|saQ<ds*M9?x~5OfTEh^NPD;6V^^yU4!sM0{-#@UDXqDE zXs}RsmwBd3ghPY(62D%wZ|{(-OY1l)jC|A^K#ZD0i z?fV-dGCWc3-Yn;IFRekjkRg^by(`U+);HPS_vEa!Y~bi~>|H7;2ush<+L(HJsFLar z!%~(Wfii8cPn&6retg=?Nx4nE!z-AZ6nJ#KnM)-%IX1)X zLq=}kJm?u{3m5M(PV`hY*C}sMO73=RsjSMsxJF@QwPl__w%V1!HLzwHoq`8Oc7b>_ zSKr$FsM5!|*XJKunbihdK<{E2v(g?u^4XF~kuGgJl=RNFBTRqUF|OjzxbXO~N-U~> zc3o4Bu$QJ;aVe~6cHN>-X|GClUll1ktL|w(U62yntI`wF@9o17&K?R#+0e8AS5mjP zqviI8bZxI@sf1YcH83t_6khPruQXScm{$C3YoQQvOaN1}RXqWMv1N_`O_UEj%p?0!bhqW-?u!!R_4O1e! zOZg&ft?B8oi6cIw?^iQ;NCY$06b^>(De=opKJS(4I)6c%!Woq}{rZp=VIAEH%42nF zo4-g_>C>5quO3g81leF+vA!g?{?AN~{bS99b4siF#j7a#*sK-q=5Vf}GobA~Kn2t6 zcZp*Sc?)}i>)g;^LQR^8HVh|?iK2dLh+57c z`Pya+o`EvH12t<SLvmyr-YHp$&3a#H*vgz~AQxi)<^MbXGyiv< z%da`cRGQV`tSE=BJgE`--O(%;i+8MrW@J5F<7jI775we@El&?_HpdU?D{#p-lr1T? zIn`AUT(Fi!_tVm~n0=X3p1zxr%%`eNT{>yEg}q5|?3!Ds8XpQ4F11Rd5!+8NjnXy~ z23j3|p4xYO&k>b|o^MPZwyWxB-LJ=23oo|@ds}L*@_OeXfc&A3;4Bdq^GG$h{^&Z@ zpZyQdWZ$@hI4)#iq;QPoCy-qZF~+_KaTnnvPra8-3i7sWFDHff;r%2Tlf5oiDa#_8 zuEwL3wHc+<$S{doh;_ZNAwg_wwXP<>ng26Hf_shGD29|tbfSNxq>xw^*+>1)cw_80 z5|dSP%&e9)zC5p2vgWCQGCc0a*Y>hbTx~pxJqg0bOnwk2A4Np5udn`J%kTW?vDUlu857}! z*HwGZ7$4AA5J|CtK&#`&`Zdi_wR>}`WUrr+u?K$S>2i^Nxx4S;9Xziaz9vmMhlW;b z_IjTPV?iS$-TP)4?r4cot+7%%c2-1NXJewqg~KP>6?D;Roi&4qCaSWb^Ap3QST{{d z^3xKTo~4*7T%K=uU%2>;*1q`X>Fwoug*!D_UFWw7$0kWxj`R!h*9*p-R@*o1@U`k- zX-HhOS{1a|R=IwIoRxZ7FG%L~XMGZ?vqolWH(Rd4X0h%Ic76AcSCVB|x*@rD6*d>B zmuXA&*s_DSN?20XV~t0|KhuuP!Pi)NB*;t~qGTFo_5xbLx3a(|T~VS~z6PH@JH|A# zy&kZ|aP(q+LVa~~`qENW`)P-^3g;u9iK1UpB91QM9R$@GyA4EF!AShB{8I*?+xc5I5_Xp$M^9ySOa{O-Pst=xc-QMA~iKG_Mxv) z@tLT3r_X(!Ev#=mA=q9^Vw&e4mn^E}UO1fhg#j~6S`GLt>3!gRA{qvAU0qM|pIKODw%-*7k{tPhl~6_0xzUQK99@3ybgfVBwUQ438LY zVD9po(_5b17(`UJodnOA(PcnP)jU_}UH7hGcllYtg+y=)GqYMUXQ{BCdw%MgqGD$T z$0Z^gJ+IKEtUDULSWNi_Z-$eiv2me7+OTM4C7WBSbcxe~>?nGJDffF>l*cV(kr8h- zZ!yv(nK=t$+-qPGO<|CU-=>_vfHpKWl-rI@W`fT>P&HYWEf}+xsY{I{D^Dx#E7_zP zWTVN{cMCPs*r>0#G-C2YQsi3gjj<8rUpVT&$3#=`h*AMvviDk9SjYnuk7`K&9H5}> zrar%1+d)YX!x7pV+e z8dq^)Kqz?@yH&0yyNpg<_hs7T|ddOC>i=A-G5ks=UI*Pm~&6Rk%qkOHnPWbBigYEjKS z)*ALuj2g?#<6M_``Qr~g!tida&M3tK^)e@ZecE&Fsqt4MC;c1Qr5UbU0wVyuw)J#AMFwv(Hp*)n*Md4TacRFm8qm`>DS}K*YHHiS~ik! zWy>kL>ueBdrF#lIvy@@tDF=5Ldc^m!$E0E;D63g&IcjZYM`;)Qyo%0|dT3~ij9_wv zG-b-6l8Xq-hA7m6V*B~D+mc9S{D`T))_1F^4qtX>&Iu*OgxG|;B6(_NoTc8NvKl*+ zZe^T27sV#s=j;gfNK4N(Pi-aKemFksW*}L~E)Z`;*5l@QP1`!6Z3FR=(@uIl)GMi-|+o{0w5?Y zkw%}SJ%Su7rtRY=nv}H}^LG%>6+N;2Vy40?v0L8-{*-5s7kY;kkQUlU>B_qa-m`6U z{j<~tvA-!yV-gS5HSkw8sQylQ#?ahc&WS|LIib+EIQx3GcdD0(F4c}%Gd+@|OQWr( z-Rgh+bz_wppAKU4crQ)OT=~bAkH-c&%TFF7c_km;K(nn-y1=}t+jm|T!?r4zN^;&o zBsyf^Kbu|2rJ7Uu-pEn3zHw|&bxltj4bL@wQB40WB_b!P@3o6%jyubbPZBSqTR#w!78^2`q4y-UZQ+ewW&Gnbu}L<#Kz6u<4uXpr{s z>WDU4d846I;dQ>66cbanuw%kib4eaDtUbP7*e@WTptMmY2R*hff1pa*bB?}9((h4@ zlBZS>v)-Dd_cIehCIi|8%`zk_Dlyq%?`(XJBaJGTAjl?pVICV#YR79aU9tiOU<*ee?8F1d6h~`K$D8^>4-mZ z1(y|6h24ULr&15fZ%1Xcbk#x00z_SpCoyzQu(ltGS1^B~NG`V1;H-)Ev4FEQKIsY$ zk~T?y+?{%c@W)$0L8GkCqyb+u0!ck$9;+b^<14kuxnF zyK%yd6_1KQI;Uo7^2jFLO$rJP9=r3g$@nJYA4yS$oRhtF6Q3+qwwTjimei%AeG(%r z5v@mR+R53)l)}9B5f$?YvY3rD0yXXt5Oa+y@zH^@+M-)2K5V4E37K?Y4euGa>K`Px zuv4l$O0a&F4=tsf=+Qj;`%R~Ov9#K z(zPOa9*;a75#XXt;TcbM;+}fNw9AeGZCOB>VN!^eDDIXxu!d^qB2YPMNTcMZAZ;QQoCtI*Xw;oW8Z6iYpzQ z`)6#_dvJ3R`~!|fIehq*sf+Ys%PraH^7&sw8%rX(pDZb&_7wf;`Z;bTkuX{~I-2|M z7jjja20U{`aQH}k*GgQQJmz` z!G@w+QWtnkcR38YQaJECMG6lDSCkxGzZvzuU(=ci7cmMaacYvjW1qQZ^tq1GbgS_1 zQ6nCFlcHHNg{P3hMRhn5?IGH*{cs6_;|-SQygSb>!cvG!gcV zQtljRykJsK7w4AGaWO74iC->P-^r7W8cjc&FNtV`^H2U7KKC5P(szvSExUFkZY=5l zxO(^aCaUy*{LC%MBx#dQZ)vIRw4Fc-p#&&ew9rW@B}u`ifEct&3Iz+xE)_2nM0*kf zw%BS2u~t_hKoQu*H6SY9w$oA(5VZoUcv%S-p(r0LShXU}{GMU=`}<>GFaHooo0)TY zp7;Cxyw7tks?W$fw@dJxO#UAXrIvZL_&n-Mg2eIq4@7+eQrYfA9B+6g&-geSPUI=m zmvQeD03X*7uMRd|gPu;Dwrg0ceopS1ahz&xMMa-r)uvW4x>CN38`+4uN-Sy`pdD-* zocBP{kpnrv-Dbh9C&^fk=1-D48*Y2cn>oM3=glFuEo$w0s6M0XcYY-i%cQo9_Z>hh z22@@O*MN&(GwG85AmRTBo>j^Jz5jFmPtJo6c17>`D$;|5lm%rI@oKNNcS!{bJpV1Y zlgD3;d&eNtIFz}(k2rMt97?b<>#>eY-=qw|%Q;Q)*WT}If}?+OJf2sgz92TIVqJ<# z%FFnF{|@&$t+C7Uy1r<5-sjI$bic9m z`qk+eo>Y~8gXlosImo=}+lAF=t?taQcQ2}Q7v27+UriRxCUUCw&yh!vh53~Asvbvy zx4xx=!3WV~-*57zt{GA(w5U6n0Unb1tKzXDviDw;v2B~Uit9OcjOfpv5pKL4rvQUc zL$}byjSI*qQ6b9mFXurM5{=SlayOfDiUiO0*rSDK~I#{Vh zYTnoHWPoY;BVhBauy}diGBaIED7{io4$Z`MsTIUYYv9$?v~i0a5xM+tC{n4kS&@`{aUh zc)m&g{e_x${y09UKsj~(=aH1Ip?>Q|^_^L0QA;-Qi2vz$1l2N8^@sRUgGPMmq;0A^ ze5J3%)HOshBT*(1nd(1uSZ}855?UAVSeIqlr1t+7#{&la&(u%ynd2Yf#BJB5wK1`^ z<a>R}jq;?(~d?US!ot1r}XVB>WL>{f5(lmT!A6uL_*ieOTPkZFFey{qN zL`pwv9rD7KbL7i2I;2MV#-qGML_a1Uhi(#a#!GFuce=liz_Dcc7gS8eCV#M1s#AU4 z-HMho()-8}H4M;#f7Q3%SrZ?*i2UWxl(%7%h04k;tyiDX0{zttVk4KG>Io7~L}y}+>|wu`*fO0s#?t=Ts@xK_u)RjI@)5M;*<@vshl#rX3(k_2ik3nO}J$ zXt8hSm5Nn=`gIkt)Eh<*4TQ>qMM&AKF`5vxSOtxu_tN3{C$sG^AZDaHxxo0C+<#lw zukm$69g_0gX#gJR8K!7d}>AsoF~1|`=tDP_iyq~ zi?yFMNvemETkdnl$_CWE)tH*Im%&@mst5N<3(y_Nj>?4+e=^3RZC{bu|VdSVBBYP{e)DJVctdJA! z@uXYypH!J_DOlfpUR2rW@=JuNvyChd=Tcho=Px_qiMISZ^31MF=C_sq-#YbjtaZ=5 zkNtdg#nwj$=8SyrwZwm&e!b|+tCxR2Q_HMY-u~Lfwa@YPjMwf)W+INUAw6W0iW){&1Rf&0jKU5D)FO|UVnM< zziFUPjif#JH*6lnr%z((px_M+>Q&$-np$P{V;J5=7p2=^g6M^@8ZUz$(4jQK3CDJS~q4a-jp!RK@DN9Ufn(R|^;QWsQCitPDoC=Ib_$_b8gVMH`Dpsj1d!3?Xh6wQ-;)jkKOQS_WM|qo zPmV!uE{5*^Cfd)fHY>5=Q+SW2Ip`p>Xa?4wt|P9gAvhkMAnn_bbVORs(4or06n)Nc zF@&8zQr~!siBTfzDMHJy+-;68KHpxEA)UBicV9Jn6!N*T;?P3?F1pIXlz0bLd29>C zM_{)7{X_!3&qYTmZxS&QPi20JZ;8L!f)1i-_=ac70l-}j*WEs+!mh&d371FddtIB0&N2p!as3*z`JZ+z98_ohzldx5yz z4Mw3FJ~0j2@6(}XDh3fDJER}6;qZdvv_z%EIQ^m?aUe~+Qlv|BFTY#)Ttx<26Uln# z84Y2ov>ePp8ssUePs}HNlrJg67hyW^9i8m6H{j=qBaQ6JXQy=p%^TY1aA!Rm8Qf7O z&2xy!cFXn+8vp{wQ`npvow`LITem-xu--Usu}b(dlgJ(B^X$U4t$~3+YS&|@N8=l974i?o!*o%q8hZ%ew#zKlUp&p=EKsZq6ROK*~S4|=(@`Ig-oKmZ<6 z_L1y=F20^v)Y0uzXWw3wB5I-#Q{ECL_j+f^C+3`c%5h3Og1kxOiujqnMPiN-G5sAW zSd%Vkb4y(>V*p2u=rUIA`3~C5-Z*khNjdKt z)FQe0!60mz>kr)f*?U(W`+M2DFWdt5fBYx8yzuvbDwySgl|L^2Z0n;<|M8-;HKb`H=e)vnc+8P-l7DAY|H^<0k zC;hVPA=81@vfJzhR-M>^>dr<4)6um@O%7q|8Q;Pk_8;Y+E~10UUB6|E*b|$Uz}ntE z5&+ZxOUSm^X1FsAXO-Ef$z|V$y9t(DwCMle6UB+JJVGykgTi^SeV*@8)Mh;uh|J4m zzK0*iKR2Y(FTL-ywl}dv_nh%xHPgS+O~XgXMU9E5d%|r^KN!-yQtG}7VPWamVAAj2 znhA?=JtGaJK@)Uf#s5I!3-S&R`qTF&R#Z{Bk(ulcfvo(!wb95g2>>W#2JoFOlsO9R z1@OE`RQojf4{xqoV-eN8j|2&=YTIusUTgp6=@8tJpg)W+bY5*;>osh}73)V0Xx{qk zFH^bb0nYP}Bx#M){s8^zOTW&Sro!f)LDupP8c%+8vLgKFvVMfUSR@UEc-1@NAYj>p;F zq!4$+k;vZ*62WTIvZO4ns2%_)Fm7RETG#I4w9=uFx=b`Lt?)Mz;Tc4KSxO`%9oQxs z$BXUAOU*glYA-CFm-Q-Svl-G9Grt#Rt|s<}{M*k^ag~I7r4IB&7t!k-k5Y6wH;_#< zRC!J_n{$*MIIPa5aKaa92O?^lrvMwB-Td0nTc%A76L2E6!<$wLJ>Jb(bnsH*OYwDZ zk)ypz4$_~QTxHJk{d3<)B&62w(WAjE-^v|;N+rf?3^^a#yMNbLaQj9%x)w}6ib~d! zWgi#b);%qYA>e;=soN2d2{iPfB*QN z2Uk71Y3tNWgNc*=T{7#jRd+0YZ2Z+io+HQ#}ZIjnD$ydif6vWiNkMV7f*MT`IbW&l z^lp~-!ozOMwU~$k_gK0AI4P!fF12z^gF0ZDi%>KNAo$548%SgCTf3eugjcM2u`7LCKd;!HooKrd-r{ zr#%XDnN1X!Pq=$r6=qDpXj`(bH^9NCMe zIr&Dj5E(~$h%jJTW&;kgp)zq^$X)9OAq{S2rSX_ds<)@RR9<>>1kB@Ffplb`MChUTxf=u(?MDK&h7R-VRqT0+rs(9F&`y!Mv6~!Wj8C9{*Yj=4%9LPInx^YF@`X4qvt4&5Yn;L|F{-QxFqx3( z-mjZL>obvJiKTXtaZ@KOhkhdE2r@;YQyJVaf*c@dyt}^7-v?nl(*bY zqCYt_s;PezHnH>QkgeS*N?Bpk2(nR$Quu;Y!WsR*eVd8(Fl_T&8Uc0cHz?tc>~Uuc z2fI5lF}>6uCBpPZ)EXki@J`mEmp*{KPV69^bhI2fQYF1QA2IdH)k%^P1&l#rw**r~ zu4#h%T(p@^!c$g;LQZe7uLeocM0<{0u{)O!!3ZVz?uDS2C!~x=4zG9$Ip#u)Al*Wx z0Ko8;rf+Xdp`Qt0^L?r|m)1OI$cBuAuq#7l zPOs;7cxki$OIcv~TCwI}vOEY^qKRhDDL6~tnTN9UW~A2%t>&~!tLju7R+*FN=j=R8 zyva;7!)mQ}pi}iHj%qTMbp$Ii3GWWtmhwWoN}K}%2;PGlgYH>V5Ue>f$9Xvy2gg`E zX$kOfACn^Nk~UK%*{9s)CinMg<`psGWZw)~RITT|$wH@@@m&ZVOYq$f;UXF7IjpD4 z;YytZ$LBjEFsugw$Qf`Mp*fu*52Cue#a?tx*bS{F*#J)#?X-vnr&y!kFlPw1ufqRN z{LlG63pUZ-Ml~S>!@MDcj#`Rd1g;&1JxVGQhumbekU%{?3yM7^UpRTC@eY(aC3XZA zqnZgox2@?&YlBN>yjcR)Z}54?RW(k=NlHn@iXJp3flyiQI)T~2IRnM)N@l*b%S7#-hdh5w+TXSk2`e^cA^{Fe3TT&?homGEiE&Kda z-#2n>p*;9^OT~&9yh&od48RwqprB6Alnx8q3d~{G7;y{ig99j`OdLu#he`YmgD5k^ zL{3FK+=;pN8toZ~0@yWw8cPQPfe2aldOuiJ2@6E!L?n9k6_Wq*y9SHavfQWSO4kq7cc<#w|bu(=_p>+92~7^IE^X~;r; z7!EzOYXHEJFGqGd$QX&ipHRqbBrh~)h?=k`vC@pS6=ABG>ly^0T`BkZeWT!$=7_G{ zL+=bl=Apa|?WC9mzf4Fgrr#bUKZ}RNl?3Np+)nOy*QXVBI{-E~P)aL#g#0knQXZLl zA$l6sYcUP{SRi|&EayH^4Shu8gvH^=#~FP6Ok!ApUS>bo4Z_E!e_lmbJA_c~C^hod_#&hCI+t=2h3*#mSJxqsN+5U2zvFuJPAs zAx+{2&S_$#4z>bmr?Iu2r_)8v6br#8I$>Lx(=uR;u=WJ$E-@DEcSu&-yK9K$=o@;! z)QC&e&sfNMKne6ZWG3e4GQJ7!M5K%=)`l54!0NOMcsg>JL=Bm{&NMYu)&;bZgYrqtibmt*)@t745_eI z?4EwIk8Qfa$~WLnOrU`d$swPH_>lxVaW;o0nea$k#O6v+cJoSVGg_JD!(+;H6dgSc zI1bejCWnioPXx1wW&i+NyBEkJY$Z$0Yz90K>6?Z;N}!Sl!*s|+^##on~}0=;cLt|rgKeGQu6!r62mlnr>5w(BNr;#PGoWL1;YPTDQxB95!J zM+!#H8L~F@=O7FNY-mLxDqt7(wPYG`Ar7=z^kmMk^tQaCl0^Y?e%b7zXa_t-a_L~u zDNV_=sR<-likPCf&P&^n*S7=Bb7j^fAexr0lc*9Jh67kM(nmEW+cMTN8srYZUt5g} z5r^lI0uJlMPheprorGIV`wN2y1I{`>PO!wz3VIQmy=Fxe{%2-sL5}c^Ul_qtglL- z!EbirR(Vzy1SXWhIVqJ0@y-DC&?jWY8p+o8UxLP|f(OhTE$b z_qsWhU}U<-$d%?4;O@!Fh`5~Og`hwMxKMRn)Jg?kYNES9AOj7h4TZgBDj{qm-4o{5 z1`Fi@x;(&p&B(NLv2`;=&8u9?-+NOc@hLK#*3Ac|xvQH!5W=)&6<(DB>2KihZ zf)wHDo9gh5lST8b!i-HQ+7}3?xYHAM4b&=8?-(ILa!llj*+_*an~4FdJDvP6&7<8y zG_auCMIa|Ws+DgLqwQdk>wr+@m@Y%j8^vh+yu6KhnR$jd4!|E&b4Izd){$;wLm?Hv z2(I$y^6(?w3FJ6`;(>(nX}Io$3JA7lz9YvnN~1IFG?u8;G1n z^E~i1)`g@KdU<8<Dv@39u2LF&FHmUi`|~9F?0BnQhx{GZzOy%-)?6?UC2}GT?p(7 z#p<12&@7ffawR3;#-oY(!fx1lYO}AW45F_@IF?#egK>S%O&4lC;9KcP6p!S}-@?#P z*b1vi$^T#c&-uS1^&StPX*`o`P8W5!+yNH503UXz0mXwGSA#|($?J&#o?S5v*Z2u^ zYbM51tGy4xvQMM#z-9p;lt|yFsK;;am7Rjjg^_0BNnb3cM}3wJLNwr{$1|f zU#7yb?U4r&pF~{fTna?X6CFpX<2cq%^#w7`O7Sbq@E-Yu)66&4r&)B%nwTIZcsbud zkOhM8cP|HKqy-m-R&-E(Dcm}56=2b3F;NUclu96u+Si9iz?#HEBCifzuLK?S7MftCju-q= zH&Ei7n?XVSv6zEWxMMyC>UN_Ry4i#@*tXwsDy(wagQEay?#% zXfoOYJuPU6B5Bf>ayRP(4g-0pg6d0c+XcP%V?;m?8zcxn=a&v>7u+CNJ8}ez)a%@s z+mP&qp(GrTQUyRIAr83L_B}V#y9UuR2jHO5%CC-5xB^+|28zg3q1Rwof_l(Aywrs0 zQ>4Gkozc5dk+ka;07`_S4Qf{s9JIpi&xCqhlw!ukiw)RW1$V>{((7{PtC>!>ffTQ+ z0D(opQ^hv@@g%#PInQ2LM8+!Rub&Fcxd^@ENiT77AVVHPwN)>kzch901Es$~IZSPt z4*rL;U-domU80vx0y6>9R|Af1N1z2^?b2I5p;m~70@0sFV~X&I+8|h>EG-_JBGwB0y$oVv1FUJJG-E5X5 zs2x~>MrH$X&YcdV=@<%v#^Lwmps)gTAVXxL=A@?U0C~!02f}RW@6-aBUuJYmQ>$x( z1)v}hh!O*^jU?EnMv%|C;u=w_V9(HU4)zFvw9+7~A}Z9NX<;=^ag!V!i!yi@3K?Nd zgVOVQ93RLf3gF#FL#!Y`HuuG{IWgB1%tBw^VmQDb!-jweNNfV@j8WzI;wxJpn_9N| z$hp7L$vxlyygKQc|Jh3!C)H1X-*vO^+D*3UFRL@^7Q7rE`AU|lbV!}cm-uF)ZV0hm zAkRVC*&%O#CezuViB-W70c5*hj&W$tQ=cZr=nfbDT5JrKpu+AEuQvSlS#)} z6jRX348qz4YzjaYwd%N|YhVcw7FOJ33Hn{g6~J0v+2D=oLTGllGi0=F-)Px?=#~fu zpvg<`5qvQm5W-Akk$fHW!(b4103;Xfe0`4;s`Qluuij=sxV~pY2)+3qsqN!TLW7QP zf&dyO5b6|y0lJ-*_F45H@Gm9?i2G(6X{;n--GZAoy53AQOstB*a)g|=8qH+&&bojZ z33|AYphcXyP!$P7j83V6RgcEAXuaU~I~iZYcz_Tb%Fmp{BxD8&$DeO~wF{C)q|uDl zCUp($k31lsb0iDfEKW->jGWLIl(w)qsAvli<LngHiQ=L}73>PJx>JP8RN zIXB@OD53h4A2P_q1eXf!t+m>Aqm=~8wp&8RN^@#e>}`l>fIowPu>psvq<4{>JX*jy z#nl?~hIDd497I>7HwJ^7u%HL+z!iJr`)rKcup1@h|!|sK4W$H{*B5& zhV1#W{SH~oGlyaiARFK$0^r#VmsJO-WE*-;-r3Idxf7o81<_?irQ}4t;Tgi6%o0{e zB*>Z>%%*P%Ib4rZ1YyqT&M89;o`hI6{4!*7pb2iQdFH?Q|C|3g|EFNAn5IW;+G+*Ypua z2kL=6KtgitH0aChz(}W`9D)cu4u|VwBa4`Nvab*uX{thD>g75j7RKcaey3qPHl>q` zSTvJ

JRrN?!!c{;v`lyWJhCMW4;cUc$~uy3)XE$=IJabo~9w5L_n^MK@L3mjm!q zqp8}S@E3NGPV_d;s2%(&Ho|=R^O5tfLOFZVqQ|+bA?qV%i5Y$7>V@ZviR&8if#09o z`&4yDr1g3I%F5hlf7g*T%N-w*ZI z1T^yM^p89PF=E>nf4RUsw>;}jakS%lnf@cJ*A#to77)UYulzF=FdNiJD=YTJC^35r z{ZYx}g)dLp@V0m{W7bsImENjF6-Mv=CzzL)i}(GJP`skwP<8xl!h5!n#)#o?t==-kI{(^#idP^5^~? z#6;Qg)4<$CyAR)Ydf|y(-?kV1eD><;mDj8bjZ+TRoA@sRHNZbXJc4yhi)4RF*C0ts zDxUJ7rH^|Cl*<_6&Ju$TB>N4o2Wydl(sws-iT`X9Z$k-Uqp|iaa=^zMr%B}{eW|T? zjV;T)o4mu_XPr2)bC8?6y)Iqv4}q|Ro!#myZB5pI8l&N_B|ynbW- zz)WPz0&NDj*+7BQSU@mRU!}ME?K%FPt3X8;?(`c42gLw|fSqq=XnyBFTsu)zhwxho=((ghoA1c}ehzG|=F}syW zGUpNmDyFOcz_CP;hjP~;&}PLO{A^^KfyTE8+{fkwT_!-x6hH(A30y&B@IivlAZ9vX zU#@g^)0?m(1=4!Obc=eM#q1MMEP7%&WMK+($# z1SY3h}7Ir!B@Y+iV#?%_h?Qc;cnqQ$Di(@F*0>2U2}SonF=p z5s-@*px*FTxj`YakueStLg@Rj_K<~=j3Lwk@qOXe?oNbX2HK+jg6b0{nekw>aBiZ+ zP#%KjgItjsL6i9IM-gVutI##%(TR{75ElssI_n)`nq~Vj5In``7|fv#2o5edKMAi1 zGgxU2!+iBa+91VyLAUb%24eI!-mD-wv%i>V6R_y8u%KHJGl9%GP`YnGD5CL_t=(QE z%`5J4Xn=+RF8E9aCXlx=0g#D!5cTpr8v?)`!y2Ps`k)k8yZ@3*@61Qw%c9%pU%7s%JhMRvY`qfTLai?~n`QlT1g*2)H2 z$wT50OWi^uyTx=jWI~G&bZ0n~-9d|v&w=8eV?n+K6%GnPke+%(S3|blTS6RRpeb|z z3775KI@F*%5@E5(1HHi3!Dj=(fbp)~R2AEfYQ>pRP0ws6i(X_zz^notq)cdnX%Za? z2H9tn0tdqvyHB0~@H7|1CvYX99matkBW@Veb>1Y8Zij?}KfNFknzHNj2IL_dpqA#1~% zsF-#-r0E)(h1H8uEKHa*uisQ;!DU>qkQ98^cDR`qw*_T*Z^Z*U-`GBXdddg@#5CTk zj!XeaYi+tbt%75{9z$-v(a8DdFAi-y1$SiLU`uaQ0xz?+S9@znw;x^%2*!W-f9!wG z|5-pYLY-vUQExG*tvo<^d^eP#^C1R{f|b|N?<*)0SIZ}`i|T>oUs<@t3+W!t#(xMR zWPuquY+;Y0GDs?zco*3lBt%w~U|niaN)zq#tqzt@fIuhIx8*)KP0ZSXh6*T!f9K)5 z6m*~j|1_8uYq%QZqvzSN5F$*dPuD)FJ}+gyb$Mp$f_$xlisJNgzjGs`wW0uvE?+(34&;1}Lm9LL%aCPK%|! zS8r8x4KGFT$`fQ7xnL674q+W-(!@Y&f`4y48 zEs1bE9<6kZ*nrE7YS8I$OLa{%0YhSO#D945u8dL0YwAM z555LAB^YjXISJGz2hG@&NR*?FNGjg_XQlKg^x^?^5Qez`!ja;zXhD>5WJju`XE{+7 zN%EHt-wHMD1ew|WCmGIrZj(045xA_KYxMmPtw#A$%^L>cOq}@K(*FF@cd?BPG-yX1 zwaH0m3jrDJm^Q-KK>V#YLp|Q2vwR=(UETJ|TxI2;0w^0&a1`< j{Q{*v%WfJbC( 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%0D=lPDu`N0vA!+ZCJoL3q=XGQ!l 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%0A_oMzuRqQSgs2X>d- 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 literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/Extensions/DVDPlayer/Makefile.am b/lib/python/Plugins/Extensions/DVDPlayer/Makefile.am new file mode 100644 index 0000000..b98642b --- /dev/null +++ b/lib/python/Plugins/Extensions/DVDPlayer/Makefile.am @@ -0,0 +1,5 @@ +installdir = $(pkglibdir)/python/Plugins/Extensions/DVDPlayer + +install_PYTHON = \ + __init__.py \ + plugin.py \ No newline at end of file diff --git a/lib/python/Plugins/Extensions/DVDPlayer/__init__.py b/lib/python/Plugins/Extensions/DVDPlayer/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/lib/python/Plugins/Extensions/DVDPlayer/__init__.py @@ -0,0 +1 @@ + diff --git a/lib/python/Plugins/Extensions/DVDPlayer/meta/Makefile.am b/lib/python/Plugins/Extensions/DVDPlayer/meta/Makefile.am new file mode 100644 index 0000000..aa22b99 --- /dev/null +++ b/lib/python/Plugins/Extensions/DVDPlayer/meta/Makefile.am @@ -0,0 +1,5 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_dvdplayer.xml + +EXTRA_DIST = dvdplayer.jpg \ No newline at end of file diff --git a/lib/python/Plugins/Extensions/DVDPlayer/meta/dvdplayer.jpg b/lib/python/Plugins/Extensions/DVDPlayer/meta/dvdplayer.jpg new file mode 100644 index 0000000000000000000000000000000000000000..92d8b8a755312de9051e9c43d0f7accc7793c02e GIT binary patch literal 78625 zcmeFYc{tSX`!_s&R9Z=;lx6yaR6>${nO2feDLa#p5VEghipow1Wt&P2Wyw0$nPeFf zgTXL^!C(x=7{(a0KJ&fr`?&Apc>a2x=YEdkdH(o~pIWte4VfJyaeNd z8NiXd#-_%AUAq8)UBVxLfB?8D{Oy15^Ph+O?>#~IZNV>q#J+#7{WB=C>nz|OiCrQR zy9Av8pm3af{`<25|KqdkACcXA_KNP?f8e0-hWaCbe|Cw8{IgqR&z{}8g?B@Q{|D@r z*mLw>_3L|&J#Y~{>wo;p>+~=Cv2WhKi;GW4%*gzZm7VkP zQ|{NIZ^b3>(z5S0wRQCkh{mSo-yNM@-RPd)Kf~CO(J|ck1b%joG{3M&UZO11H#Qkt z%x%^V`#-pL0Yv`il>K*L|0i4$LR|ms-Yv3Q^gpSxx;Do}}Sw;GPp#3*w|JQ)U{69kWKY{%(TzJ4CkzK;Y z6OjOb00IDreg5mK1OIjX*Btzp4g7y*1E4BPRt$!JAX5OiO=F4(03F4gTTq7bkN|MR zP5@|s2wiI9|AMlDP|wr&ZzBW%3kZ2I8bvba+yYPY!K5v2iYrDWL*+4_s%0;@P8j$cADdtOw`DB@cNv-wxx-j!68$+(EURqBid&YWx_Ee>aCJjxB`F zk3rJrA<8^;BoVkx+_V5$l3`w7c%NJObdKvKkjzZ%N?M1ZH;{T7A^@nVu|R3*Q9m$n z3g4R+NthM@uBx$OMfnHfgtNWE+$)^zBF;@HLnRXU=d%#a71Rv;KWLy&(ztrSy7S%s zIKH}HY8#Iy1{y|^AKHf5?Z-U5PV0VYqaedv4NOk#Xc~RvSmcjeoPVh?aWP@F`}PIN;sI>u};mUs*p!xc%9qGyk+D9vSFOUu299= zOgOVW8~S+!?aEwez8h-YgUmf%bL1e`pZ87|BQgg@PbNo@neIUHlGg{~`g0rZ@mz5f z9nCzgiH=B^KrR#jpyONQ%w#eQ$jYR<{sxH$+0|Da zUA{8jwfk0atf}X@ALUN|{MTQ{a}phrYGXepg!G~V!G<5{{ZV^?E45{}UFtXzmJUu0 z1T$ZThwrRd8zjnl%;0ud?z!7;-IG$~L3>g! zq;!_S@j@4~zjZ5gUcB@|P za`j(JiE5g08}7^aWfd@`gt5xo&RZJYLfsDCf-Mg`uJ{7>+u^AgFjwHkYyz09%$F^q zSMlReu_%@{>#YDVFxD&p?1i?U69ArD%7PDT8`Ej+=PUbB_P|n3kbeUAjeh!7`n!Tq1L~!DukmBXeBud05P}uL(a1F6G^j4 zLO%nFfFI)c{mi|HG5)!>CXNjorCH2+aHubhv@w$j>}Wxs>NP86DO2$;G~RAKWIN!WDc4PI-zECAuP?rN9i|GYBMbkzc@W7b&lVsgV1_& ziQ?b7rUCu7@KY;1yehxXAb>P!)gAf5*m_jJmi{SB1iV|iI zEd>A{VxNz5v$D{&VC$qbJf?S3xRDyNcGXsKlYx?fJJ8<+Xp4wp69Hhi4zI#p0C-G7 zy;5V)Pj*QH6QFMnD08fv)*0zH&X@(e%Z~rGu#Dc<&aQePR{u6~=FZmry$!0GWLU#RM0Q>r#rQ0%-6=s6_;;DF-70uMY)>{3er z%_M{C&~LSb!;CUviTW)<(WtB+QQ$_71&ExMx$Yz!tjL71aGH0!@ZeE5#S4m~Zmm11tvy+bSmUEPA1t z$FTgTiVHlV=5`yE20aE`p9kX6LPLH9V}V#@LX(It&gAb4<=Fl9S4uMid?8iEBQMCI zEZ>MSs;H5Ci4Fn4sG1)j0HjrOk&V519XS{QKn{1zbD9~_a0vokV0Le!N~wgzuCSfC zlaF6HH@Ry<9`gN``L_jtvL+=ir&EaN7OIckvVow#K&{`z;D?Pn<+NFnI(%*fynBy@ zm|owyvphS3eR^h#$Wk~-m7ks9W6HuvGsC?ry9EHLwPSpC+DxzP4~|_E3p`7;#;itP ze#82tBNtNaBbnSGZy0pY=ddnX$Kn;!fEi)(mO&M<(6dM?aiHKm1%Mper&o3n6Dn_Q z-$Zc{81RDv)SLn9wE%Em7PROfu0{*zR#oCj{8Be!uP_p~ZwLVLELfe;PtNhjv|~ho zNyr0d8aai&aJqYl0DwZwY*M)zgY46z!T>4FAA>QBqJ+`?ckCQO0MNzr$K;0=lX^B+ zE52TKtIFARZ+iz3V!r?j3jm$K-X{j;g{_S_i^3V)hArl zPB}Tu%{nCP1r5!B)=O%(Wq95DT7iXi;@l%?Otfv(HXYo)53AGJ4C~&Pw~;yXJ9V5h z<<0ppWS}YfuHqg7=8D24g=bqgT=$~}nWb*qq+hg~>{C~u%aj1w&jK#gdXgPuSJ~y> z5k*QtOBo2m-gH}!Gllsx^!`w2r#Jm1AL^d#CjjjKAOP%uC?(CxLc9MS4%&DMT95i4 zOK&&>Vriq9{j7vysMmAwQ32ptJZc!($AguI6_JkHr>tIF(2>^x6!iy}}C19-Sdh`jMwU9{0A_|fA7UZ^W6JK$)Q5#P| z90^x@?wBRpI+8WvyL)1J@nNiv`g}6aGx~l?ip)7;I@43$?q8A)`lHK#GD@7g};D-JQG0K`0M!3D3(fEfAC+GZDe;pS9`mE`& zt~5118yu4irBAm;;I`F(9lT>*Mnr3M;Q zyVmw?${D-_m8d^_6hAp#vM|23V;K2UbMy@zmNItol*1{o3c09U zCV+Kav1nA+-af*Ya|-%>!eqlHI%{D{30u4ciV*$o#_}d9A3WAJM%+a=IA7LJRl8lPD=RM+WMH zI-qH&)*%OM)O%Gpu~xaK6QkIaRd~Hy1DLH9{Ht9)AJOleY~bhM%6j1!+;j{IX^bs6vFcC96AXW(~3abtu`&L*f`j z3pNuJQ(?tFjN~;kQk)OVt<0sZmSZO!AZ4om(h*&YbqBG1;R>u%GGD>WTbEGOVIs6$ zxXUz5!(@&+Mmh2_HT<{bEoHgjE8^R+Q3oCaV^8yG2G_sAQ!dR^4{=R2yhAp3mYyc| zCXnLoY%D)R&yYzPU3`xR1h@^e=Kps34RZI8l3fX3V z!V><5X>1-evu^Tp^fhrwV~KBSj(%iSbd4XnSYf69r>PFb*`pkUEX0;HZ%00Ne>?lP zp$dI~c(Fgo**TP}3f=1uZQmmRyg2nCi}jjg@DJ#1s|o#uI%QBiX5ORlQ}60wM@!Zj z6Y57|q|ggjqdc~AY2CuD{xkQO7k}=B%2irJ66)M06x77|C)|LnF#6005i8Sn{ld zydzVX&BZS8!K1`1)Z26+Z#clK>YRQgTo=$Y2c17_oX6xOII{AIy*J#2b7Fj+@Qa#l`m$kzotg+{EP436<;BFU-7dv*K6$6;~?*NWGl zUa3d!xGP0M2?9Vt^NzGjBS^6nW}tp@qtg^hMU7Q`;dXLQ2oZ#!USLv@dRQYM%Y-Dl z3WIx}ZbKFYdW6n_q@$kJ4d)tO8Fv~u4bhmfs0xuK>AM_sTgG(Md2ia_UkXET0d(C; zx7&&YTRpD_p(UVzXfS-W)0@o@2ITQfI(eIvJP)R9|_AVeCZ(uG3OjMMkrf zMZ1LqR$WgOxAKpd&KgyTmr`0KN9GBvQ5x1KTHoN$%dkTp)g2e}b4<$~1%}o+SK=(E zEf?#?1ppme=uCea>%!#D1Rci|lR{6k3OLurP?i&6qvNQVzg4V@yNi_RMCJh?E$Tk+ zi|7U~=P>je@6F$RQs7Rx%VO%7C>a6Z9?tR^dN44xkcEjhLXj}b%ChmzV_G2`oBmI`X74EVoP z00H1e7qp~5PfpLD?OI~gsLO?Tn>^nZQWd@}$O%5;I%<_^O8M?&2&#e=SA+gW^3RkD zr?~_=6vcZ5U8nGez`O$^&`wF%`XdZm4fa!`EgnL~`j`rLWrg%FXp;9`F<$Xo5C4cY? zOFxTm?iT`92F;Yg7+}y7AXg7sXCnk$52Ww$;7V%zN5&A!IB}NDM4^mfUBzI2eFgff z^nV8-K2iA2|HAWM>+}D2dyD4}n-F*`HSuy-C@g$p=;3}_1DI~C4*2@%t^_L|Bu zXggh+V?psl^jW-(Jjs0z)!7N(AuMv!ocOpTg3PuqlMkd&u%bE-y{ISIy-pfvH6@nE z3I$yeu1lAOM#3DocftoCaXT_M)e=>zSR=4dp1;p48M!<}Y$1QDMrY1$T2@HlSwT~# zA!|8X(X{Ngw$$G#_h~lcwoztku+1+zW}IFBrbSKfDcN{9^Nr=1)_ z<{^2YY?F4BB?EYink~1t0I_Z_J_aZIDg$c|I0-bp4hU z+WnIAnNg~)`GJlHNAE;rXv#Y4z+==n9=l@=_j=PKneTXITc8tOdMVVg>cG&_{%~f$ zME2sdqz-ZH-=VCLgXT98gk#(&Cwx0LLEHNXb262Q}VY4#57aYXNDhL z=-%e3cI*7q=*JA6Q!xh5BlFTUH6vE>{*3B8q)hGjfg4;C8L*~(&)wNQ9?IFV4k#^9az;JMEo)%bf0M>uWy_No9NzNB3A{CZuR zs$u)t`ui%bo9c_Z>-Ju?)BqVB@l|jugpa<$sw_0*-ua^PB6Pmr#?$Hkd(U zhCuDsbqb)hZdd^zDDH@pu;nXyv(U2I*2_9K?eezH&Yp;Gc!&^h>BwO?FQ7g__(;QI zDjG`u=+~<4A*^4asdd^$8{GpSW0^z19$}dv!OlVGNb8DIM*JI(!JB>a#O_!aVz%C^M?6j6F9^HtwOq>J;7p(JM=k z-Z>4(`W#Dz@VaQZruXhX!(16C zx@#zId_GF3Zb_{;oj(y__`W&DPyaz0(6deAPnCbZ>uS6eMrww?BttUPV~TtI1tgAl z;Y7lt3Il)LW*G9@bTF}ZEbBh`dc-du#w~p862H!WyFU(s01?BRbTEPAHB0yT2bcwr z6(@Z)GU8E2LvB<$^#xMbJGzE?qAG;#K*z65Lm|g)hEKU=WxEOhDv5W7f%ke-=7VWC zSzXP+rQz`10B@rb!7U}M$0u`) z>Z9UoC#O7CAN2gA-hPU3spy5HtMnh&&uHJKD5Zd>qrt*Nf4aO97BT(EyR@Ce8ZC+6 zLjMs56ndl9m16Q8@RMG~>dfR>m%WAs0ijydU$1n3A2n8g{m39(A;k~Aq~0lyUEKXQ zZ`=Ie<-jwy9*jeO_bR zDmb(hX73!X`$z0n#p%o*&_-{7XoENA%ZE#kZE_x#!0(zmhrDqh7%%ieIT4%)LQU{v zP-;NpQsn|9(}M7vHcwWcTyk7TC|0!zo_rc&W6fOQiQTJYbsQ8!uQielH7zB1_ zNad>q%quiid%=>+xHCT!H~@+>5&&*GaCL`Q*LIJYDZ;@SDzQ~h@8-wG4n|}Sx*}pN zZBe9w;oYL}{Dp|%8Dq!}4GouDlYV<~)YSFjjRRT>caOs*YpheW70O!_U|9nvKivf% zGxuz@;)B{gIyxS#ZyEuSw?6x}r70H6eG_Zj>%TP9*?JmOrjQjE9vTkzh(=6s@sZX=rJjSP@+9TE5XWGa{~C>GuA=za&- zY}WCQuK}dUTgCuG^Qh0cp#=BMn7Tl@sP<#w1t9WgJUTUk1ozrT9bK`;S1@pDG8w{h z&9X|3=)|ucbl#?)VPlGD^qq6n^D)+#oC7A*>bxrF6$)QwSK7ON&yFiyn|F^q3c_Dd ztmRABhK7K}eVQX!w=aS_eU)#++am2e`yw4~Ln2ie8!NI$BPS1DSd4CSf3AV!NAw<{ zQS-%`bn!_YWiJv`NEa``g6>?`J++)Sf&0?E;QVn*60ef}0akY=Idr4@mpa-X_c}eF zy{J$uT{%I&UYD{=?<+$0(H-?j9CW zUcj!h-cV@;{3FuIhrWc38_rH*&0fLKxPGN#9uv{9X70R=GN!3i!MkC{TOYerg=M>V zmy|TQe0D5QqS^%XiJdzG{Tg5SL}SO+Aj`Pn*FrN6I>W(;fQ9dN?^w@1Rj<3r)W^|b z@$b=-;e%$+ei{YnXoSi@@SFV_9XU3cZJpV*&pdB!{+oPEf%k3FVL`rRQr%#-8oLUf zK+XD~6E*dH%GZH#^VGV?;qXz)gTTDe z_CNVn_D&ZbeYim2PgAxdC4W5ZaA{IDn;6-6=tqmmp!!6$fvyQ_>M93q*FhaaaI@0> z7tLQ%zSX^TwSD^h;fa(62aJLOIsy^;AU)>2Bfhio`6;Vq<--#LBw}*D#Lm{rYS?zw z)j<{46qTpRK8cf%>0)|*z-7^EVj@R0TGsL--oAl^Z>@p~!`Nb$&=xe)@9>PZL(H#* z!A#o-iARfUt0c2YQ~kylJ1)V|JdjfNV!Q7kUr_T(~Ehc z&rmwW-C^@J$8C2dAGva13w^H&`ioAaOa2+Z-K*ag8OihK8tyO#bXLkuu46BWp9z&m z3LN) z)hdoVe+cUpk#9=B+5H>CvE`=BO@-;o1U>kET>e$`cGOmR5$8cv#E8*$XWCKiFG9YG zas*-QK+a(^N5fC?tt;lV^qOn`gj?rc9Ns`OwpOra=PJtB+U&NQx9F14^?g6KJcFEu z9Ux>T{0H~m`hrkvzDM61=h?0>xr`4o$lv@_e8c4CQuzG#rgvHz@UTxcnR|16pNP(e zf%oi=r7k0clB&mkgB@%XQGFGtY|AdN!R)j7-XrC>X9SkUnuG_X=76ymN{2g z&95@2e`}=5rlQp5pQieD80v{N_DA*m9jR@`_wC71S^%Hm=zCi}sz?0cS#)L0fXIwy zFVf+)+)*S|NPPM%my@h`W&FdGR!}GK0HzS;HsS(2X^1X}#=8hBJ#xD$@xU0ctm4WS zua~4YOhV9#%Rm^9`3?Cwc-1g`hifTASCzk=*mr)l?eEp;$+qbn$Qsh#sA@I2t>Wbh z#+pWX#u)XfOd@j-ew?RKQqA>~)5_R#GWkueGMdDTpL_|O>N!PA=5pvanKSEMe|ufl zIrmWxjhmYt#rP@BwJ=_%eNJHo2GqDagz_4kj}Kklq@VNKIcWZE+=CCVOEyA8?6o{xUqkub;IJmzc9 zpy)dVJV>I}hD1y`F%V9ELp<0!=*F5VN1@qXPv{xG-aAvoi^7Ut7yVsXWNF9T1z$}= z>BksCc@m*JGa#D8ia?uX6M&4>!PLf?#7)>yhnpnMgFA0T#|9BZ7nboVdq^$UJF6QIJN+7FAQ zZ$A9>sO#zT*_U=B>bfO1Z^tys`r|tn{HC@qH+~A}pWU+Qzy+2R)SCq-lvy4w5v%F& z3zqr~Ik9HJ3mV#ieSps*QhYQ2)(*8^|DLu(E$)acH7#t?7E3u}Xc5&8vvQ7`Rh!W6 zw*PyJ74tkw{zop5MU${K?dqe9=nEmE&J@#v+KBoxo zStvKwxDsmgNoDo^42fqev)Q9ylM&WHoGZ+FIfe+y^-VdWJLT<#y)hq>=o;`e^D`!U zK>RvRlDuf=@M{pBT>RMea`5u`hgDg>Up^`kb~L%6O|r~HlSZ92K_Tp()sDF(+|Iu>{-W!O8eZPu26(z<37v1)m zrP_3y$o(e29bx%qO4HCqT*0M+*r@@83>O+l91_p2R}-6DKG;m|M4lfJ=ZVm^Oy9u- zfM{xRNP)jl{6-pm%PhnzX1ygA__^%9zg>rT`-1Af{O^8)#uZ`urc2Ju?6!Tuwzb@L z6fwv1C(I-W{OE{tTQyi8t7Y~Z6+chaf|C}xL`x+IF>qYdFLfiV$ns-YXnVyMr++~c z__)NQ%j`KEzmd`$Wc^}Cm;@ZthtsIecA6E_Ekcutk0{0@yHqdgE8hYiSn|dtT%{dK zIv;##U7U$u){(qoJ3v0+`4ft@{J=o#?*fDXUy0^EojBR3RgDSQmXVNnZw%GV)uc|v zlXyiiHHp-}bQnz|_)>O$YeDmEwI-S`r7)v?XsH5Wk(NDWKw5F1DyYo-aT89s?fJro zTJhORM*Z#Us8SU9jr&Nm18`@1_jR25c7;|WqA7=J%yxScmTmWGkX*$kt0#+ni%rjW zJ=+MX>E+FHg=MmYiaT!aJf<^E$gaF_G3k}}?>7Cn_(R+)*T1t@n{R+3`Ba3nKPO`p z5x6X|q6_)Mj{w7$IQpRo(c3M;wwpMy2q?PaGyf8=_n536*+4E_>P4XE{qD2aTjvZQ z9Tr<4dvf{@#g)9?_-nws625|7=`g)vsYm2OG0|E*SQGprL z|3Me}x+RkTaBW`$pG0q;GMcE@@EVlh6}Y&o)#Zq1qMcoy7sbaq%0@AgkP zkNKJF>qjRoV7Bb>&yko&NMS>bkW{awPD>BHB>0e1L-?yIG8M$S$TVN*jO}uLu~s!g z&Q&F?3V+u`04T~*$ENC%t0X)7&KknU$^J(Sc;Cet-hahS zSkp8kk4S^or9E>{uBovGGuu30a4)b;01(Oz#g)%|%gEYbWL~%WOI4`0@ z4DUrh2{61|B)jRPSHOfmzn#*A9?w2MzC}A?0r~j}5SW?FB89cI?=Ri4TGqRF8pmbd zrH7-o`InhZm{S~!z*PU-RX>C4=Msc1ZKt!#3N4vVH9cXw(^%ZXKCGw`rMKUE>$?*t z*x80tRRy2=Tc%n;G_y0YjC;&Kk+HIlj=alH-Y^sW=yvWXicVWRfAexL5Jl`X$bTtH zeyEJ^@GU(v@voFah{uLQ`tUPXdH>k$0g(NyP}a94rV-l%rF1dOPHi;2zAjWAi>i#U z37(l~)eq-=Hn@4|vapHg{qtcyA>iyO(g4S&PG8h=%VFf@6%9;PT-n=-R#(a5;iZBW zS|y%vhiDaB`NLezcg&IoT?|}t`A%5Ax3My8`3x2@Fh{)IfN+K;?wn1X@puIaQlEVM zVThsJQX3w)r@n0{v-e7${%y`0(kA=a9qzzh*L@CW@;xML4==)kUNp2#=P@NVgyh;( z@n=i72^*Z}qx~rsa|&Hy+p>%JC;PW_IJZbGOM9Y2*dVpDveg-{C>NJZ{1L%lfBR$? z>Eg<=rB{>W$XLhapNTD+lkkkXKPQbc zbY<^Qop;Si_i9Q{_}#mtg4Q~+dd3bIy6?2J(3AV}GjYk=e0BOjUU@u&XSn7bbCaK6 zA!4i`EMfl;`vvktp5&^qtY#bXN=3?-@0&;|CGF43R@Iks%xcH%Zdz%dw;_;<4&iIs zpOlr(Q2ol$c0Wp2{#5O$9cr`R^x4tzjFi^|QKiPOkmQZPw*4WVaIN?m)u75Efs%cL?ZSP6IaO`AX zDwhh68(}|l6tjx!LWq;45yt=DMPE)v*p&t?T=cCR_kL;u8--(_> zG^$V#^^0qxws3bnju6tgdZIUEnpT;+OzY|23!Ci&sULc9*Pq`UFon6@lyO}ENSz5B zOo!!0In7zkIh5|{3_UUE04-snyWDZ#)gAs|_?bNK z_>)ow&~FZ1OGR1axL3~{LD`z=k|0l_Md_2#|T{ttUm9> z_J9Kjl<@239KYT*Fb!2z z>x}ryx_P~Aglk!Psm$|CqOR{MX?RPzsqx(Tpz%sM?aVI|(mA~xco|E-vzd>gn>aL% z20zfVb4X)I|6?Cmvf;m|YrCM7FJ5;-Mi`WEVR2o0u+EiDqk4ExcD4A~?r!P6Zw+;E zaD46sg-_>3^l9%`yTz8bFmIuvdEFU}F=K1PqbBT-&-UjpRr+W0lY25IK`-`K%ng`4 zG_C5d9<9zdaZWv^TI}=y?(y()oHn8+tve&D%KbaC!7!e4NKDeY?4ivNVXC3GxH%M3 zKT2~CEM%FkBOcK!7Mc|hU)wd9y%`s#NGtrN2e_V{GzeV2v}%M1U>V~&?A4g6g-M6( zVlQd;2@QQ`quujc)+VeihqrC?Jo+N+b*sd;u$!i7_lB=>p5J@JYhJyT6sW`tNI#qA zKhInL9IBMe(aJ22H=TYpLrRumLl#b<;V;shp#d{%M>-Z#ETRSwn|~x8)@Qchr@(!_ zalMP-@P^TTwE5AjRmKt#B8zRY#yJp&f~c^_d9?Y2b5rk58p@H5DULADD!)cQCDhhE z+tgPEV~K_E;Zj>lAMdv%TonFUzEE#ISjNWR-Cb(F+jQ%fd?qVWE^yFQl5^tVo(Dc5 zd2Qum2%AVhAGYV%81&qCpKS`!95sU{7VwOSXX1sJzu`v9^^j|0 z(_^(msyMH0WDepJInrbT3dZuY8<-p*j)b)DPDz$G@4&C!?qro*R=g?%<;hxI#tREft z!f#hoK-P85BdA&dpgy|ypn48R8${oZc^y@hyf!sXr|`Wvcc&r9eKcXwGG{9!nzHH% zRfr}{UPYxb*}#J{EBPKU>dEyw*}dWaEQA?a=*(}SPi;nHGo2uH6y)LIvnPObI`2!l z!8QK@;wts*HC@so01^Q^g-o@q+aW*)Q$cgi4&$yG9)VMowlfu8REwV_Ylxt7IBHK?0 z`zbwa>kJ|wsgZ%PsS)#YwU|!gF{0y+h{fQgNe|x9;QUtEts&?5bySgZ7?tRv+{OyHH1PCcI+*mv@?w6C;`P z*^IR^%ssME>nO(ywn^vlVe23fMGL*iwie_V4 zG4HsQ*xw_yf5C0n-~qNtJ526szt<8ztT6lqE!Km70e8AE?xzR`Rs)`#JXRVc?9>u3 zj0-ow^;n;-nV8;b&?|(M-|m@|k9_eub@=;FLp_nn(5h?oLUk+D8Y?{X%p)O^&rZLy-aiVj;%cvbZ<7yj_u1v5#EEcJXx_R%qXV^er-Z`Fsz zIssrFoKPG&ty=eG?^ue`-{~?#_SSN^1!6{Wa5Q^)cx51#f8%nJ$H@pA@Xmh9HT)xCx?YFZn^_vyuS=jesZyigbV?)9XF%R_*a1uFl1-LX7pJ2;);(_A&@FyI@ zwB#4TKf<5YSY_)!#crE~KC@l(xxD|3Yg=+xjrZ@WsADBy=bPa(35N!1c^@bz6V9sV z@xwpSoOk~OQtftb-44y#`hi%zaizryHhJ5eRVZ*L9!2y5lXi*nmvd%h*#SobIWm%YFSCPN+JL z;z-{G3>OmqAgM-wmr_oxtd2VL$TqspG%#2pqa*y#&pvVXI9~f%68y@=3xtX2=!NQ$ z(?M*N`q7*$k(^AK(mno|A2p>*VFS|n{yi+E?Ab?6ZY$l8C!`0aQI&a6RiW@$HEJBJ z=xaSa)`04pFzQ3nYEb<-M!QG8aNYp75y7(1gu^K_vkI$jmpBrg_`xiDW?gsSu>{IPSCOSsL} z8q03TCs28YktEgNu)f@}2s>dZwZX5*h8pTN@|Y{$p9f=jN*i8DyoPrAT&epDGfP2( z$|&}m(4GVOc97@^KWOj{^jVRING0g*wwbVv@I<(o4z%aUOF zoTuv(h0QPDoh>qeR*IIjZ_#o$dC4g9h_Kdv5?YHV(2BQer@jTRp;YRrRa2oAZEFME zJ#DFuW1OR(QS^7AzZ<1}TaQehsI50z)IuN#YdYQkqp9Ta@a$FO8sSv$3y(*fb zaQjsY8Tf z`<^B2Lw$UmnR1~n$(QYFCezk30B~+Y1mZHyyvvu<1J-R*VQA?>aS=fF{Odwd-8CJg zNAZHk5YfjvV}nY-`YPV`yS}JCYm~;KLE62BDeMtoac64hKmPRZYW;VLstIZDZC z1+qN~btq1Qof}b-ML<(@aVs|!_@lB8?Dx*Wb2NlOi1dbj`4?BY_jY+Xxx@{SVF(Jb zNfi|_Y`gduKN4cP=#0msOLpATK%ufH5yL6nin5z2??bjmX+hO!3g7l^8`m^Dh`rBBlYHP&` zl9;zzg;_0xHRtdT=43Ze#@Gyop_MT`rL8OeXHEL&_*AzWU!Rx+{9Q{SEN-w#Uu5*i zo!ugwHYK}}r%FlvMmTE7Ba_2tStoml8b7wdelcbLvI#eA@{ek~$e7V5ba5~w0KCbA&OG2Zp9#u9 zG(np6@swanGYyev=(_=Np2Ja3pBjG67)@Cd6`l>(#=Yy-Ph2w44F5hU9qD6%|9!A8 zTHe7E+;?W%z12HZhl=o3&+Jx?X+n$!M?Olrl`)|vuEl=K-Mhlk7LjT9-Ju_kBQ1rPQ$_NPPY8t_R&3Z-UN{Q!Sxh3!s`J4!D3<9J)}LR&Qb$ z;igSVAJAKD@XIs9f=K)|WiWf`4)-S<^fvlS_QNl4N~WZ4q!^{>o7|SG@ri&VvJ-edds-|IcHlYxaznnTI` z>y2ji#it7&{Mc_uYRhZOsM%o*HM+n-F>e-#+4&2j4vz|&qeT(Rg%^je#(A_L-4IIi z<8)fQu#dyMpxVQ8%|6`FzgxLG%H>=cNx8+laVz1fdjluC0kdF_(&a7RMI6<3^uHL& z(CqfAsO;X$WFJ+i;H)J=&rFPJrs3UyE zuqoG?^=_DGOpvusTkM}0AMeKlVrps?q_7}+zh^gi_PuSxY>S^Aq4Fo4~Tj5!DjLG_&(2!}FD`9zE^d6tw zKSZng%)3KtY220-jqBl(o!hSP@$&sS{9O8LI%F-KWEnp#-#EI}=qK!sJSQSqK4)kU z*cI~!xA)Q!ahfyOr5%j}9fG>`P0XH7Et825k9!JKExzjP=4C3vJD`X>d1OP+Qi^1F zc@M;AmKFy-%-z2~?l)e4`E)sGnQIcNx%?Kx-Lbv5>LToWUKyV`bcnU`HgG_tpw=r* z`IjfZLu=_Kd?KS*1p+oJ34ZwZN-Lb@RiX&R7E`ZUW2Zh;Z8l)c#Z#kCMGu^=n9++% zP<0);irH~_`gdpr_YtEthPA(HOYM0Yu#b|+3B5KrJIv_wx!Aq$b6vfN%VT9_a%(c+ z#vQcs>13eSlKk*##-f|MQvN^X5Pg}#PZYF#rqfhv#`UG}8CVXYMA~4xeG5|&{iP%S zLe7E}^HcD}^it$#M6kRY72*{bY*x~|GRivj&RcJg84&P8e8HI!;xGX=t7vXx;Lf2< zl`8$yab@fyt>n~*L-RqT!PTp{ftUKhm>HA4G>eEsF&e3=6P~WD*O(15Z>@5JG z(YGj8>{uxZL`6kKKm??Q=nn-EAyz=DiWsS(w~$0d!9o!bP=rK9Ktu>V^e8P9AwYlt zAp{5zS_pxVkm@`C`^FvPjW^!6cR!pjXPmuH+hxtQ=9;T}KR|){R--wB@GPY?4Ehxp zr>IZg>0x4f80to#8+@wEm9xdL2eRa_t~F|WHGhtr**A3g7z3WWWa;BxwPd1tJ}8O& zWblmI<{Fmzj}GkDHg#;SaVE16dF6B!Byf*e65U}$f-fV}_=FGROzDbSSL% z)Z0;uc0?!3e0zK5*{!PwW&VF28^k%Cx$7P9z0iOY8Aq2{e+D`kEc(co#3e$euccox z{__0pley{H4m4y9*}V5CL1!l%e>La6W%#+ORxI!JSF6LnA3vf7#IY1X^^RQ}NPnKy9eeTc)jbLG6(?{dl|6 zzbfSL)^PcJv$vjrfI>r*FY@tm(BBTXPZd z?ih60je_UYQ?rSe`x%@=eQA<&eg9TEW`sIEV*?LXO zH|btCB;m{f_}8f*Oy+}Gm(!)z@-Jnf0>54vd!yg0_bp`Mbx?}3T~*Xo$BT8D$rZ`I zaNo$``ATvyn*x7mDX^zWK@fEcA!tkwr}#N3VCGNNFqWHL(xybD(R4N?vO|>^$161T zeKivvB-{NVb>9S_NhcnI86&EhZTaTSC*QXTZ;$ZRB#NV)E_CiH3;vyz*6XpUE8;TI*%ZX^VGA%JIJPgA4eJS)f~alCiY9 zFoHIghjXljh()ezWWys8C$+lOLy#>5Y>&0)OS@?&Td=D3|(V# z)h6sdE!R$7q0|s#58q5SG{(kMgzM$j_N72Ltes6Tjh$xE?IP}N6d^(6dq@&^9y$V zn2L*<6T}^sK%%QAjlu@b52wi+v56qR1<|>+xXKnEX-#z)?HZB*OtM}m z1$)sz1svd}yI#O^<+#NRde?8Aq&H_oSQV(_; z>Y_t<$DpQKbI;YB^@MHF$jT)X>)i(T8W}8|GE@p_lsz-_9UDK{4bu3O>~3{ii{Nl4+g)lt(#m`u8UlmIo2+fe(KS z;rEKGa7Q=_zqt)A8NqLYqowz0bv;@L|F@T?HgOpxq?u2omqUNSm;)K#2*Y057FjHB z?5x)(m)}vtVCUBqFJ-!y+_zFvvCvp`hRe`bdk6E6lxQ;ZFC~a4X{z`Ab9EZhzVc&dlEGkVHyt}P6f8%IT zIAbdQHK`2tETBy`ssGm^cfHZc@iH=m_V~6MvFaQyVMD9b_PlM7Yj5_*>rE$CU+*&t zPJ^C4%4BPlzETJOUR(4gMcv732}92ef1Fm?oc{8L%s4aX6EapdU)kSEaJb4#&o^9s zq+M&w4&a;Yid^bMjCJCiwBlV(_N@F^TcAC%Hahvt;i|ts&;N?1PwdgCN)8ac8KIGt zm>A2Jy$d=nb3LBf&?+maFrxN8jlp}?a^e9jTJ&48!Ep0oZvFKhaf8qIMIfPS=33xK z^`)&Ro&{d8*tU?;h65X0DMF3s^|AOBhM2nHharrB+TS+dYl@WjO53LXxbP@q-ETy zxkXt|4HX9Tb7s9y-ZM)S;vfH$$zb;i+_1w93qmQD%O!lBN6U#V&)4*gb-3J2S-l>k z_gfJ3A`TIdGQ=o0&fvd>OdKF{Krt22y#RmodMSuc;~iQ8Uo1w{EJ* z!tyX#DodY@7@bum))6GJ%oH|?%TQu!(I=0bS@aq2(X4nXCtO$n2kwnEgw$8m1#DLf zMTJ+*>$rG(tgNz%gd_8;P`Gt=qL3<-)})#0=g0O1i^|FHKFw>=8LC5xyfCYpacZW` zxx1iUdL&MD8$+q=E4qCK~tn-9-@--Q`i(@EpG#wX3>BFeLpj*GB)>jmb#<45$PyYO2_&k*}??u%YVCwtI zMT%y9`qqW=R0wB9|A>q62CA7CX_x!FLmZ>83JjmbeENEI%F*rqd=OUfW^8oiR9fgW z3%|!7sY&a~ar=5QB)8N1FFdKw@d|dbv$H8=5HxYwvqE@};OBCxhlhN-{B)INfE=-%7IQ(mv$a~cl z7a8-38oguGJgjHehSPIxOl-PSvoZRewpx`_p@DPFJBjmQJ6sq#FAq(ljySjbg4`xv z`w<&Fg_O5?gk4UrD@;5mON{_+zKXstwH0bgK=R0sL_^|zU6TKHGc%2MC5QYI=Q(-T zfq+Wwcfbrx4~PQ7ZzfBNwet73vcl=sW7;`|t9=rKv8B#|b9E60afK)Pe=WV5vW4_e zu2&j|evruQpIf!k1+DLVPW&pT>JTFNi%5aj6 z7#$DR3no;~&dKi_Hoa1uIQnN|ouzuMMlR)ML|Th+!v32PbFDWVFXA|$$&k^Kb(Hy+ z*+6tbpYJ#H`nB&wF}I<%GSx{rD2JvDlT{QnphaGvu_Ynu@y$=AxR{qe^${o89X$ws z#h`GGV!z!EyWIcu)JRz}AK(Ny!FU)qwaf6Q=E(55%27%` zzqC&g-MN*7OQR<)OE>Qss~0Y4o(z)a+g|=Xbd7;qp2FVXDiUo`-xBT?cx4~TSsY~3 zkRZSG5n(L`hIjOAD5BNV!3Y-`+b^Bzqvx>f|J~pC70>kjr*Zc$5-2z|AFgFDYJTvZZfz-vAWmPRk9O`ND zJ?It^2v*#MGz63x3aN(ze3Z-h_ohp#V zPwVyRHuqat3NQ&8DvUJWU24v^#ssbIjbLC7M#}k_Ro50rV#(q&BFHe1Lx>g*xWhz{ zbvBtgigNF_&szkoYFB^SUXB1zJD~g}Zm7mjsTZK!#b<5aNCtpgS+3tH_`dP&=`a7M z4!P+CN0Ne7!o(+-v?N{ zd-V{k?T-hB$KjC!?y*_AOb{ICgpa1JcOy=2&FYW6SpKNmc0mlzl%NUQJlT67ux-Kr} zR%MYce@uG$<~hl39`OVp3=XrUyfJ=~2MczWm4dZT+}Rq?oj-GBNd3eHuRD2`9_?&4l8Rf~_D^PfMC!&}6_OjW6p+B!hO{gD#*Ns& z;fiys3!MNW|88A=k2CcVe-j^~o0uZa0KH#bRen-apvYw%xqiN~BI1WRRuE-%B3&vi zDTn;=OQAGXm@A!TR;NBJ zdWtz3y~uMtmZoai1>eP2=9=7*98u=P6RCy_==B!}4fOGUGIwhRjm7+H_DWp4j0X_o z>YeM4bfnK87PLkB`+QM(4uqS0_ncE!jV5DuKk=-IukWI**i2}8wHyO%>QeHP87`)kJ-GC3f$srC`|_Eh&g%@0cvkub`m)$3t2Pz<(#k^KtqnerP(6|8V~?@)@Rs>|-ck;ib`gd*bA>=# z>*re)%M~3iz0HVEVbxa6T-IkIHXO{E1d=7lSKk^HqX$FOqLkh5NjX7LW=U?+L;Xyd322Btp&Ga5n(uyrSVz zSEW$iQTiX=j%Y6^5a`hI1F z`eLslWFbLKeW4;2k3)T8j5bcp4%lZp;}9c3@hrcjWT&Ex$gisxSz(10c(y-FAhygv7H@}#*NW;oZqA`;12Zq`E9^oA-keeMlsnB`{e@d@ zM|!Ip_|}|C4nvI0ciOOpkgZ?g=i5SL4T+{g#?fFEv~qBP_619R*1>?dVkSj7;UmNu zWbSrmNPJzzENah$nz#lNF^=%R^t(VoRj<6dY!z0WHANiTs5d3DxC_HBt!%Zppuw-= z%gCXqJ-vR)?kUFd_RhYFt7JT@@)%~%M1y2&d{;eg{CJr4Q!m~~9@ z?EX+G>pibkhNy(#Y^80z_XH}OVJnhQb{;2^61Ews$mutYiETI+V-ByG-ue0N$-=Jq z-5nUq&CZsm0x*jK(Opr4@Rs|h;4kuTI~d-}x9bS}W7zNOS(B3P@e@B^ABQ{MRa_Y! z1udgm-H9tIuc@2Ra>?q0=G0;h7F3l>%ByQ$+`x@o60~i4z*OEC_87$0Mt#Jo4RSqw z(9>VjA>6-~nE-btEdd!B{73f0gGl`Ay36uEq)+e6gwUSl4L!6q%T%3O+gj!8ID<(2 z+YM3&g&Y9F`Wtbm01CuW8bEwFTYyL#S;&a=1hGwA=$1vVCDzotQg|a|D!i!B9i~GZ z$$|d&D3r80Q`}*@)jxouRv0+)a&YL>nHz?!GH()#wjWC`LWmfKxJPy52C_8U2R6Ei zoYblD0E1xQWRJ?3^#}7R{#0#0&3rF&G=TEx3)tUKxF^UB^0sptdd2oB2*-QP?dO>t@^LSB@!ijE!bCnFU7M+K+p_N7d@IvSSiK4V{#(C$<_cV$$rV!M z5EJGzamVNRRv+aEo&#^69=@;ptB#Rj9GT>jhw6;I= zx?mgTVx54hpmcG{Y-0XW=Wg%5$VlY2|D}8K1h49l7KoI%giOls^UmQ%z1|c!c-FKG z)_rG)%vKzLJ}TaiolAM(E(t(ku^xL$CT;FlKIK&o%GMcw_r92&FmxL)Kdh#H#AIs6 zT0Y11c&he8i-aw=(Xb76IhIH>nxzphw4Ro3of*{e@b>6j{XO=Xf`UBUxk6M;=l~mz zs5MjJu;{#g>|Q{7R?A{8>+6kGd1ZY9hS_fX~X3&v=4EsPlb%3w_6lXzqh|0HGoxfc?ySUVA&Ly^na@ z8W)~10x>Y*lH_cH!oUd;$NX|D@O>4!Byp{GNy4_-aNdO)qnRgbZFkFiuUBea=Q+9B z4A**x`I`22y^8^D{U?KX8#p+~3l>r>9~YuvGq@g(UH^A06lsDj=ZTT8GL_&LFXHVj z3G{24I&qmRh_xxZ!KCGamNBEM7pG&&ifE(gg38*f7j>fhZ9KpoSL#+p@9uLF^Kn&m zI?MQ`!-poS%E}rBV$R=j`jE~gCOv(SXb7%wPe5Lc{6faDJKlY2Y*IBXu)dqn35^}u zeX+v?X|{*3(n`}MxeV|=xox&S1o6CI!$SA$nz!9C2;k#DKZUW*6#P$)&i(AX<%WCN zrPHC*8u*&Ex2D{O29UH%Rle8vFGj2XXu_=T@z(CXBh`Yo83#Yr(STM{_AMejKML%T zy&h&=QM{ZOQ%=|o^~J7#cA!#`^+JGP<$-_oAt4~f#LB28I8;^H!$|d}5-GhTDzTN` zd0y_;ORlWU+quOkJzHB#TbV}}!k6roVbnYd==)<+NOZ@yug{vuO@)-RL0M$zdTN$c z4w9~GZ|~`_%u&o(|BQ$vW8U&mUBTDIZ?z=%Sd_a77j|ncEkVoOXrv$3L!)WQrZ1p- z%m2!`UV=L_;(|lXR9?$f$wqA>x_;^gKykO6(j0YYwq%$1i>mIbRUBfqU5Q2Bl)Q~- z1$xoNAxk9S7%K<}hw$nxWSOdR6 zEKf@@+NrtYxbAcwrSr}jdyVnKX!9=nTkhGrl4aDMcWA2wwJurllmiV_j6d(zz&yj= zbdm`L2&M~2-K6*-?%+F#(^(M=BHRlBl=o+krM9N<)jIL_(P7!X=qAnJC#qw)mFc6| z$gtW9Hl6UTgw*t1pq@%2zo>xthqJfnfa>F1`Hv$Ey{Q!5zKA)4KNvmdg z22nr$$lAoto|q6v_?rw-lMuuJbGJ0#w4rW|1b3nNTe=VpiFU1KF3GnX|Nll~ z|KII5h=2TIU-0fCsDzdq*)TC%4SL9fe2 zZfdtVn`=aV`=i4=VNVQOefSR4W>iOj6c7IhVWuk4))!O*Vn71J-UBNIVgWSt9-)G5`Nse*w%z{^?NwXb!Ed zDC_5c>1bw9v(q}ojw4?a1^E$W%#ly>{3mnyOpIRH^Tc(5R%x*kTVa#TE+#mH^gLu+ z$e+p09QC({DGeDTSt*{D>WUW|ZoX&8ZnoW{JJ(&7%JwLE~E2p38^s1{?s6LPZQ(BCz``^5$iB`F0P zo4Qi&41}C6)7}JR?o>bI?ZTEyXSXK`o3<6;Rn-&b7Z!uAhQdgfWq=jDc2qNnB<7QB zFI<3o*Mz-Y()L*jrp9Z2X~Rel9N78emz9Wfz9wG&a&lmA$9Jyzi!Gg>G`~VMubm-x z>NL9pDL?0~96!g9Bs@zP<*d}}(S7aH1qHl?G83&@fKrLhFw)d*lutYSXW(Rih(e)v=ipgD~>I=lxG+&lNPcu8ts*}<`N5v_c?c7gfIq$XC~4q`9oWc=E2A^ zf@ze9HAk=k2wJMMi@Xw~E8$h&uqVt9$S_JV`%pO`PXaxmJSdw>(X20I%wL2sil_(uH5O%Y7t^8Z#ZJbE#o|kSFUZW!$LCo}i^DrC{r)SNOB(X=gzPVRIGy9(y4~$qN!wIP!YFt1cwhvn z9e=p9Y05W63YLyPB8I`STf#!XI+-a%#|&cg0T4q))-c6X;-<8a>Axq4f61(G^6&_J z)w_e*Ix;r^U+~lZK_*4gB7Vs;NKJC0 zGjbA*13;10lU}qkV+#cn5QB-tQ`bR#q(6fcDP27vX-oSpOV54>-|O{ntYkDf#X4(beEL+?A;GLm%hd&gUc#yO;*& zyk6w?!oS%8r3OrQkuEgd8d&X*^t8EJ>*6wY`)xV=FXck-DclmB;jp-vIlY|v>l*KQil$%psBRly!N|(dYuU8Pe5K|!1Ea$GqJB~HkXGhXgC`l)+9AVX#A6T zMc=It-P*!~mwCyD-EzD?>-GJgOi=>)F2F^b2sDoPoMi-|XmyfovUUN468!NWJR45R@5x!KR?k)2levt$2P9eMAYDuBY8Dfo&V0Oo z)qu3M&+o!5KLeV<_UoF37IUmqjlv`q6#i|08jy6@G;+>+7E!U~pmVZM!xvRhA_BsQ+Xl=jZu1eZnLIQ-SBPj`-gBuB`%W zL6+S+*9%NH-F_K#kg~8VU1}Xn?5oE%VRzS^ndq^MDc|X$kx)u)_-;J)c>Xpm^k^`* z+n7=VG%;lUQcL*$Gg%H`&grH|$XTM@ThG0B2Vbz-mkilm4@RtY2e<{KEkAKd#|7rT0WVq|Rno*6eA7 zY@WD8{*#QVrE)?{bbYE`u&MsbF1c$EunQfLT8MTuXK{RfWQ1j43&{0F~F=(EtOpw&pKL{tE zRxBByEw*fv91Ju;!20S#Qd{X;c&u8y6MY&bwbZW6`!+b@MgwAZl0iYHZ%o{!3Cqja zh7J6=9+(d-KI0(r42drFwVx#wyel53Xn z0x}u0M3@Q^Oa93yznwGdl;cD0*olGlwFbgY<@5NEPiy+rHDg*f&_r8JHC!N}Q@GgF z6|)v?e)j)JSG+EiD>0uFB9Ri(+^kMehnt<4xQ+~(i>AOYEUM-KF@+smJ5}p%g0lUD z4`T%a>@pvOr5x}v%LeTC9c9znfn$QBkucMMfieo5MCladt{fO3=tvI{PSiC3kVXjY zm;k+({!hc~|2y6B-cOAO|0iUZ{=fQwq*^YkzVl#!@3iit!kP`T6~eG1HLZYCc*qC` zDNDS8TEySr7DQs-igmJG9X&^Iuk{eSE&jcM!6| zg4pG0ao1Kfb09D6{sVq9n~bRf%}^-E#@yDmAY#I5i3kyQ#A@JsU46aDg5NxlvocG{ zU-Oll+|pg|9+A6Fg_bWbLRR+me75X6j9|NI-+AiF3ZgJGv|iNAJqlNQdtYW>XWN5W z5oBTF)~7-=YwD`o5nMBSMD_NThF7_xXbNPb_it2Smnynj*FmcGj+e^ms@v=ADOG#z zgiYcm#tJK*eMri5{@Eml0bf>&<~CP#T2FAm5at-(i%%&C6wyPU&Rfi{opyr?UdKA= zlRK9PFgUKx4KdmIbTMa{5~~??RoS$|Pk%@+K1-)bF`W<1eV!^Cd6DEgQ6%!2WW zF#91$bwf$=EC&;>L6lQ8WzXt7@2fMnS$1Pp`~pfW%wl$N8Y)I@@}f?JwQg(Ep@sWV zRAh{Nmcd)XGQyf5R8M`m_0LaTj}zt+4Vp0WYc759l)ErChJsg;{x0bIT7VU#X20}5OVKm3+iEu%&Xu%6-N~C0^GtaL zhsD16*5B4+j2@G_YJOD)I+drb6M3%RN=r4anRNP{eAmYy?_c1dBvlovKILo$%jh`4 z*v6NuvyPHC{7swk1`F?_+OZY!qkoptox+0>)u0?)%o0&O(-fs1D~nxPU75l1PI*(b zThSBxHooiL><~(~aA9o}{7)u67Fb{3+RvdHZUZ0M#;9bu>!+l0LQ}8v+)g7bA|gwt z^3ZPoYWB>PDk4h5h;6Dpc?4QHvQT^^L^O7FEhmlx11%JWXuLD|VI0J4j6V9DdSsAZ zOk{1DJfY)dp>kGEFkP_TVY2M66E|lZ&k^p4RvitKhb-IDkDPx#GZ^etJ#G}gRJ3-{ zVI6QXpZ}fq1tH01SvJ^e;3Rhd#e-R!Pr%eq*8{XSU`4eW-en*jMgjP^!40?$iLaPK zDPZG1dD^?Gk~KF#l{}5hqDh|%J+*)C;yg>DDV9)7uyZ5Wg7AVX@?}n)lkp&%DuC?j zveVVvG*>^mkKfcLuO%X7nZmxfpz6yaX`$9Ch zWeW?qRRwAB13kXbdm#@1QWU}c<(bb67tnRkoa12L51}N*sy`2qFF*Br+#eaK{7ffa zp3?}t`O$iV=5*xcl{&K{UzD@P-Ip2QKr4NrcCNHlbxS!A1gq`x;*V)B)*hpZDuaMJ zc_KpWS0`yFWYyTPiLIHU-tgIfJa%R*c51bQ0_4cg=H%!kX)42V5uqi;kmKFn(cLreA<+g^R8V1 z>#!fhTkz$S$%K3W=4U|OYOP`kx$WMVe=;j$M^GQln1mC)5*U7&>o13CSt2aV&sYNf zDvCiIPYgL*2Dlae`k;~U6Vbhn+tA!?&>s@BRMte)*{>Q%Z_w*_z*q}ABpF-x^eliE z;Tr1P7N`I+hP|+2wSy6Wk8u#|qKR0uoN>((X@{4xrTB zHLdhGugc1XqJo7kTw48Y!OrV|SehpMpUknHg^y+<9ZfT|C#3QE>qOL$;neuP*-*%i zI*mu@-tu=27a-G_>6PDAtDB!JkSlE?7QJWD>y~6`1WFN-$BrN>aVK&AWFDxCR})vv z06!da69t=-^JnDTok!e6MBk7{54%w{!H4$*nJ;)QU zy5-8QivTe&TWzg((?IdBX7?T~G!N|)xool~G&Qq??q0qfhnH#^2UW0o8);@%w#+n6 z#b@X4{j14Y6&3sp-vufRQBc-y83QB~sY$n}6TX_!r#Qb%_2Z)ApHtG1&bQFb&R!!tt_g0w{cxOjCiPGnRAIVW}7(>&%2o8N^);Q3=nxr4L7_i1jz@A~?e23U1oYJgD z{e!0sDXv8tc)lq?#k7>SI-ku9rmxV${%3eo$6zOU8zl55hy)F{CH6C}4XGRMrYhO< zx@{p^a<(WA(VBOyBtBd9BSRpPYr8vk7fl1A?%3GrgZWp5aHVJqUS%E<03%LIeoH? ziA-lmJ4_V#1bgW^S?d5*=_%1fJp=F^@|1QhkJlb9>HF_6?)Yi<$WX! zED+(a&IbGz>uDwmn-?_13>ISFH*-51I}ofRmAt)t)XU4%nzzk`;TrmF*G z3!-k!1FHVPd(TKZNGMPvcfz)fFHT&y^GUaYM+YzXZ95T>s3@!KZw^{bbX?I^h(fOi zOl*8uGiW3IV(iJgIa=NYh#}rEyQV54`8>~9<$S7idS>71etH7EApYP|PQknK7rZsn z|4a3;sZUTXXAf9jtrTi_B3bx+)|2pb_O${jhbrdGUH7=$j~`D!A`dchP{HeT9=oiE zFeN*lo>h{1c+5ATt|+5xKXC()sLXwdo#$j9tJp)^*k z(bBMA?7NI^kz902+%x)m4WY0S62D_2MSZ6ka3xNpdgGH z2Kx$ydr5p4Fck9c&*am|;x5nI(Si1*p^S(liqo`Jc@l8zfhx` z)eu*5^`QO34Ob7|{6BTbb{LGD(A7y<z(Ie7Q(t4wsn_ zWZ$&K@LD6fR+a7=p4b3}yvuV&78vv-Z0O zrXY6e6iJHIN{mbq?a&sC2Lba^S855aHTaPuZAL*t>tJd=AI)O1H{Q==8p^kFBfjEE&?nt?T)~EJvzH9H zgF23}q?TqRNvr~BmWd7Hi7n071SKPwV3_*HboIFDT9o2q#2l%r5K`)%lg-C1Q=ym| z3E#J)P&Ebr3mYzo@LpxPcR(go-*aXFW8ztf6hp^N8!q?#5L|LKY}{-3doenp4i=Ya zj&+a{eG-!{vpNCN&M->|a)n7d;7f^Jgmo-@6%+YSro;otZ3Ed*)+6cd+<8&0He8M= z%F)(_XoJ(e34k~6B|N_=K-vjg1_1x6aOTf4-L=lWEGRQrLI&g1AdF05j301`7R;1) zkl|=)gu#?x2}O9#m#zi>+N|d1FfurDk(&OK%M#4(+^1UMW?RWZNv7(Z79*HE;0_q| zO-d5_KbeOtA@;Hzp%gG4ltToOsMJ}=1J?9;hy}?A;^x*~GMFm`o;}wlk#B2Ok9Z)h z7?6C{Dn^^|U6HI+lp~Cl0zjHXpjt1If?k02Ob|+|m9-&2ZS5>9nSj3tDZL{CEY~PN zEf>U8@3BWnupsfOA-4%7TNKV*Wmeem6aiZ+#eFtlO(ZEsJJLLm`Mg;%p&f1Ic+Ww* zoS-@(-hnCMl=#3EX4fdu6} zVu6UALP5jG!*0T74sgwLeuQW1?vva9$=F5DXN%90cn*vyS7eMO*lQ<1ur- z2D_c1MDn9LFoT*Lax2xv{VT@WSq@qD0-EsDAC||*rP9w|!PVhhf(`&a# zPK0Jk1wiRK-VFL2nxq5#kwhR&Z7u|!r!n!E#2)x`jw_I9F&HwA9CK7a(g9D@u7*iW ztCSHYJs=%KpzE>g3iXh7$m;*BK%3FFxlGb+hF+4ySJ zECoIqko5muJFO)mEJ&4*Epq1o#Gnh@7rUHaR{~&xKfr8#jwQzd3LgzH$%VuS1(1l^=v1u%?rx>Og01OeLq(!qOSH8CgX8WB-2 z_tgD+0{G^t=))~FwN+K5;k0YIiRH}G z;2{!}$4qTZe-!1+DTH1}v-=AaXK9a#xQYF!3UXk*m;2tV;};k;)TJm)nmM(BsIoB-&ge)I((Y!r3lsUtC^H8 zn4sK$$jtuMtpao`Mkn=GIbluUgp;+%_N)m^_ccl_FRlE!fQTr()e?1Q{d2y%?45?+ zqHNacGg;|oadr~Lu$_3kVHby;AoJeJ%(SI_|8>S+bqW8&frRg{>6vn~(_#yJxVVk| ziCTXB!3A!6hu|~n&tGPG2Y8d%~l;;0ZR7@@v@r4Fw%##flJ(wAOGH zm15&CHrA^>;efXAM;xZX5wIhBE*I21NjmXm%gZ>}mgr|jOhwtzpzaOhkL~kjF-nkC zb`tmfV@AUz(+8{lOf{o+ao59w8BlAU$=t8WF??c95w3cYhQb0#VnPKebE){9dj~Na<^ADA-5}e~R!=^Hm$Uku9e>@JP*hfd+cQv4< zIwAFkc_Px0g@Yr`0}&Wu<-k&MD7VaQWdZsjmv>2Jf#oQ7++RDM;KJF(ML zch`xq>xp|m9f8zZ;WgZ+H&a-@9+$&1xope~LAgO?Jpe9tnLr#t1d`F-4k}%Q&Xyw6 zKUG`dpV!TxA7LkT-Aa1C#$WS+fy>xLzmMQr&@Jp7eA_WsBfAUt4h|?0XhEL4Bj9b7 zj^3rzLHdT~(j4QGxRVOETGSPDx(cAn6w8HC0$^Y*s&{WWc<3qWNRkFYuL6l2u9>)DV1M-ncH0FswlQyB z4*>x@y_C*D=Kt>ImUIDS4pjf-fl{p`84&`rtUbVTw~1*8$u*{|2ntdC5WHn`;^8QN zik=%ajG@qIqkTz|5AoKHK`Adon@BOBl7_+wh+Me&csk33lRZw4@%;r`FA<#;TXR}y zYs^@b%KC*>*XjW=9F>884RRYi7Hj=thGLn>AnXJRj9x>Je;ostR8!23L|FsyVo-c* zISO@*V;RGxgQCs@XZ%s^0L$NW)1(P|%X<3lW!RgUWzt)*x@e16jYYL*c6hDDV3d9o zFQ{(W+t@DK^JEP;J9Ygjr|7a1=%dHSb6W6^j0=C=1_FYMjh>t$l==?a-nn(lc`&Nr z6Fq&>xdx%z9?+lPi@QJJ+1q?#_HNo)xsfP?^4p=)Gxh@o;?L5)gpbBDCP5hRiY_Z5 z_NVZ0ib!utTo;f4F&hv+MmM3*e{S05Dk(PX-EWYC;+E3i|K ze?gtSxHlZfD+R7dkJ{QFQd?-z**F4aofIjdi0Do5I#|T_!h-ow%uX|~&J# zLnE4f_5S8EHab^%Yt$<;&Mw2H4quQ9i3@bj+hnf;tw4{rq{*Ydp_|%J)`)7B&q0;(8YSlQ~6Mqe(K63aTGf=`8nRar*LS z5nv3~pxIby1?qH^EbxSB;(L&C&~NxNtP&R}>V|8gm!F_uWY*D>xLtD!#_%|9;%k%= zPz_y-#JNV`G%n)`-%K7Qn{qE~$LJ+$tokGk-mG_*eOvKdGW$>F|Kjb- zqoMBqzFk*EvW4t16;atLS+dPlk`R*?vQ8ygCM0AqX08Zjy&_!Mrjkas$sWc`j3uP8 z4<^QpvX7aujA54R`Tp+vdH%S6_aFCj&U4Q5hjVb8IbWae`~7*p-mlktVbW1-DCC>l zh`=K`gnAcP_ykntS$J6DOk)D@!1qzSd}JQ9uPU3P1TcQ%fB1v;Gp&2WR_(QBl4ttguS--+INL^msRsr>t~+=A!YTdC^QdnxQEZg3 zl06j2+h4T|&e3j-Lg)LupWbp1)~>JgwX`ZUV&Cu+oql1qZ5 z27ns9-0+N*9pO8At|#={^=JSf!DIPLyWu-qd|imY3x(#B1x)psilGd2ZC;AK9UP6C zl?Ub+B8AhA8UTMJ@Z<-qmk625)VZ5;%^4Se-#ShCUV^yv_nQ6fzZowZ#rz^{wA+oe zQh$3@!ibl;Eb-dI%*H(api_&&i}{)5LG7hWNw6`Vq?qhRA8B?S;Kyz z%vS6zs^2z2XvbuXj!l#_U5&D8oFnjbfkD~@hk#`!3ynVjGTskm7@m)Rh?>#hMhMP> z$1_d9Oc_)W*coL_NVIkbQW_Ks3^4@vdhSpjnAzU*D|)mdZhC*{ktzV`Nme`N~AmVN=}Vcj?_Hu9vlrf{x

zOxNeUIRuYQcm=WYbCZD=8O}))i<#)kG0|Hm59pv;QCCmgD$s+ z+s+FWPE*A~t(60?JeZJ5Rj~ACr`{gh1dG7MWxko74z^2{>^Y}`c&cQbG8F4m3@j#yG@ydf~ z^5Kui0ofhW`tiC(^cfqyXNA!S1M4yF8Qufo1oGez->ur7cVn4a|CBA78V#Ez3*OeeJIK0h-?7SJl$6rIgRQA?<{Q?ehK0%px!Vq;+RiSp{^8JSLR1x@th`J0 z9jO4O$h-CRy5nCpC)#`OsXU1r`ZA|;*lnYW?a0Xzdv_eth#)1+E)nyar~#7SR;CATCo z`RhfH=n9udrN*Y5DpQA{R}mp59<%V+GvD3_F$W@bwexCnJR+!&hV#eCP4g)Ceo2^N zQBvTUw6E(9=X+RJz9qa7YK;1v=?VQRLws7u=2x({IbJ|4eP!ImNo2t|ADWUKxG&46 zygm3}E`|n`iA$hSyZTeB?opgs3r|BDgLdDtq8PGRiq|AHsQ5Rub0dqKx@8}!g49^P z(f(#-_i{pya1h0EA!%?4*FLefSE~`A4_p`K5e*A2h3^|r6mn>_Pz%6pT{wDLvhqSy=~rg@U5U_jXrF{ zq{ZX)4gG1RLb+pgAyBmtojeY#B6^=6)7Lldx->A)@Gl+1s~L{Sq#zAHv3~uP>p85| zBUy90JB)wK)cN(IImm;L;S$-gjPty6avz-cpKXoZ!0Y*|o2T6YWWuxD)|-MlV4yZ6 zt%iSqE5o}doIt4xErU#0J(Zrz=BBH8GQ`k$4UJ|cr#EooTvV#1K2MG0J8O8rr$B9S z^Y3Frp_aDv=sU83u8-}bF{R`|YCZLfVLCx95;{Soi2;Oj5LCkkz{bx}b*7AcY{(qY z{-1=G5I!s?~lP^_y#y*hfb=*AX-f-~6dB536fmPRaHPOKnDsJr5dlo>RxvLNnKpGT@&5TUhtO^=rHeX!MVWZ(Moi4e^c)WId$ zq`(mMqaAgE58!}_KTTGEJ8o30SWPI-V3}p?7cy7xd8XZuKaD!TpF1_1@_EVSTdtwX zYg)}IZp^E*S9`L`um1`$%CgrQeMcF2ZCv6&wNLr3>3HzdW?6RuzV>!Xl>HRxr558s z{&x15m7J@9HDoC{E9f*^z*xXH|Jscpd4;EJwi$Kcq2j92kI$Nd_|ab(FG=SW_`Cp6 zJ(zK!V%e3`f=vgSTQo=JQ2PqtLIsS?iCULF-x1OX=GQHc4`SNneP;O zH>FFaUvKEsk+?Y;Dix}MR6&5*(hYCF<{1_FcS{8CU!DrS#)z)r9a9qtI{Vm&s3t`6OhzVavku-Wa!B>CS6* zkXI(=3-LVwwX)gc;^{KsD0|GRA}w-1#M!(qyhqIXwWf|Tv@SD!Q)bF-7TW>JKq`+! zrYl|G_RfODxuh$@h)cor@%jPNt{8t#`R$-&$Iq?xvHcRLTond0RI(XAMN-Z}0mPhc%le+6`JPJ~L@$DCWbk1i0AYnOUw@0^Y>>s7`M zUj1EpPI*eq8t|_dpj>k|G*_a%aYlTQ?3kD{|7xuz;@*(r(N{YUhc5jL_D%na(V^%J z5`W6sU5(fV_~Hh^9^!eAzO!)J>YMF(m$cA#!+qC-w#S-7n1kHH5Z#r(Gb9GHHkKzKictb`$>kA1Be5Ne*IW;G-F@?}+oAsV-cX`OEB`H~f;1U-$Zp_>24_ zvRfeoGw_4tYK*O{3O+QB@QPzSm>*~WIi~aOHSUQR1#`aJV*5uM3TKpNLLQ$ztuRd7cE8XR8&jGb!(-50ziEIwc* z3*~kJ0@!409ZmV1xhp$A4W3s4y7q+c_>+@cL8whxyMIJP?RHmoIR3+24MN#=&ko0I zx%u?@1^xzkT_9~SHWU2iIooB^uLI-oB9h|JGqGJe&Qmrt`FPt9-y{D)m40I>je021oRP?w zd40$&H@_i$fthtP7n*Eo4`8%KZfX>r^g^jvQt;OL1l-est<#OogdU7^lyHirMW(+m z*5wwl`@8=Uk+nnxVgh5ZtJ`cbmyyk0ek=f6<(z2fdM@e4=aJ35wZq1`=@)O~soF-fA6}2BlYtnYS4%we6xY@pxkoR@M%H>*SfEGF^1Zk>6U5m%?aMMyZdv^k5@zPr zW-oJw06gPtdH#GReFx>64(;%m&!aQI?O+wWHawx*JmXJHw<;=$Z$Pax?J6>$db4lh z6+Hj0*H^nqZh*)vjc)|ya>mh9s^8K3D*cAP@8jAC)hX<7@OlJQB?HiVx@=h4O@b+F z$O`vXHgL{sT;ii%5kWcL=m)Oij4WVzj;#1QD|;w5CrJFWo`zo^R*qI2&Z%!ab>M<5 z6ly((JVEy=IM-Lx_6*5P19a#i6d#@4`%c{9V^SiNOKKeR3Fk;-MIJ%9HcWPg5b z*4q8vTRX2cSc@HK_oT8au4v@pI&-fDiWm#9Mg~tsWVivL&nLIq1^Gzb_zO#gcUV?& zuq_IwOn|q%I-}1fb;wLIZ`88BAtjmzap&owQ^(pP3=a*+q(2}>@<7T6eXc(ZDjVoQ zcqWr>DHTYI3x%*3GA(bw=x8afe0MH(Rt+rz$96yQ(H=zT>};{JfjBvrDTy2e*Fid& zvivx1LlwM^rjv?u!XivYn8x5F4TB+I0>2&^slm-8iiRpI=AuM}2i2XsA_m;9*I%i` z!R}v&Bfgv2{B=GAiia{+%=Cqs*`hdTrqh$_#(1D>&c_EW~jM?coW4nNkYCz5K{ZrbAP4a8Ai!z!#xOJ zo9$tNF(tp&SD8hr0s9i`br@o-5n2_wLq-faf>HwqP!)qrie*O#K^5LMb4^6REs7O~ zDs{&BzH`%R5H1$R&Z5k2Keg1sc>Yi$$sjC;aJnC09`2Ik<#23Pbd=;qyXoVmml3dpqFZU_d-Bx;`M^}EvScZ zU5fBz91PvxbKY#OhB>HV-9#)@xRs45rhU#cA2680ScdpH#1jnqio6sGVrR^&NNV7& z5qSTdio1_C74p^u@fmD~wc(8N@tvxWmt4n6zyjN19$?;kwPOH6l?8!HujDCSbg2e$ zwH7*xyq4+`vTB#2p!EireUuYF+k=Ja#NW!Z$<@OszsyO9P~5E&uot{^fFeo(3>$!6 z#g8I<=L|(DTu07rR!XCUyt+h)Q%JR+GSYllzH?|8{D51mZr-PCa z7XVSvXUI4eDhmHTyiFr_VnJ{er=nL-vVRXRyj}A1B3^ZDLfZatruso^^c*yWP|sYo zVLQ_Odr)cC=6LQ7+tHD1=@~uiS>)j<<@rT*Ur|yv4VAoWnp~f*)1Dtv!wRJfYu<7d zyE#->_P(a%`|SFEMDB5OD)~3qmce`A#R0)_Yr5UHdTSr7>!DA7nTNN=n)wFK|6LBh zoYTgvyxC(O6WD*eZ~7Ok>ilDzMd!WIu(7~$b!7EN_bS8k^mo~@Gn}m_I}pxWZUP;W zLXgsrWM)8F`N(l8);7_jQWZl?cO-7lXtGSZ+8)Ca=(?_Bga?M=OJcK`&#A<1ahU(C zzy`|o#KK29TwT+A$&oMy#Jg<_mrS?g%R?@(lvV+c1klPhRTMC~!Y3$I9Mt#iha%qj zz<)$Og%ZJ_K)eK7=ecG^bOiPVRfB(?&M+Yo0ebV2l-A67b{}6G9`D)fJ4==3Hg&E~ zaed~NnhCQ-R2AHp4dEC_*^*@#Q~WbxR>_a_C&Feul9t zalCu9bMkJ`T)6bH^uwn@Okh%~5#<+_SE*-P$Gk!ADVRL+uU*^{?OlHG`dcU|xC zoV-}wRu8rtp~w2DAP?B?nJFExTeObs1+M*+wR)>F)drQo^ddF>;nA&hUeK(fhz@ovGvoJWGELQ(GZg)Sf6 zLHr)L1`USP4V6Sy0^UlgO5o31u<{FMoz_QSL75%2obZLgYk z`SvX*(mYe*TkgZZYxS}XWsCGK``J@|bUr{hnjbJQFaiuYSEG;;tCzi(owlw z6v=yDY1GIf-njvl7;0Ig7*ko`XfRBMlI+M;GEJ~N%36T1FrConNVA%RE+b8D(SsqR z8ehA02;o)+*po62hFJ`o4vLyGO)-Xw2O-tCZnRk4Y3BD@NHv#xPfUScL zAVra5;Ddl8Ino*$vFvVYH=zN@e27%3<;Gns(dovO&uq}2*7_^iULaYIMlA0P+|dS* zgAC~=g9fg{r1o8a?7(=lvCke>xtEY5J^#b*kxv2fjK)0~*#b^a{4%2Mihjx8@=~IVpx)~Ts6o%P8yjcpz#@x1c=;&eu1D0oY#4r0n()M_ zdaRh-Si9ITjebdJfUYul=KS;A-`GvvJ`#c=f3aAlFx8el-zgq-0)Zh}v? zU0rLkBl;FOGPb|K-VguTkO5W%&;E@+$8Ji%L1}1J;V@K%iO{U3^!w7Cz>aKihtXN? zb=uw=lecX@3I{^17@cf>Hqi3${Epn)1B*9*^Fh!3Bf{0mOOGU}Bkb8q3D)NPTZ8gl z`J`u&RzXwLPOubC6VqQ6KovtC;+r<+>z`Vf#da~S0-4zXDiBKI*9g&bm+#UgrfrG( zxH=DtFe9<-dFAL6`y?z8HhRhjQtMEtS){l->* ztfW{Cemo`l^42bi8_^olUv38^WuLbB@?csIV?c&+rhE~70CfkH&=LhiFZT8|u1aX> zGC*wtYun``L2^J<)d;PpvyAU(0F^YiF8rUB+(bScVP+_}0J7*Cp7XZ|80q*}B_C=MYJB#pzAS-ueQ@kGa zVrcTm(zdlpDsdYSg~ZRXTLbevvM(I4@F4O`0dE`<Jazgh3)ZoTL3=>f>)1{9DG z)@xwcrgTLDTecDxYrLJdz>S;@mH1Fl0#4EsN=z)poE*lf(^3_qacAJSrWik49RtO3 zHV6zb?*RV_uylbkXWD6HI7jFNOK>y0x2;ui><2}(RP=A$*oy_w5u{pxwcMv{VvA2H z3r*kRpTQ=dYum?^uKM`qGcIL`-!WVd<4kTE9ViAp66n?O9%rD^Gu#+;i@rw5=2<~t zub@I*XJEuky5nsAhb$-CX@ZPY8gY1_CUV8Kef&#TgPr8GnA3Dm4)Id)iZY?7y zC-_4qd)m=;NhP!B7bdXaNJFCF@&avvgYE=BYbriE60%m!7o%HA&`sXH1-2hw9FOq6 z&LqaH?)tor-TerB_N?F)Kb&W5$Ge1iDm=<rJBKd%Dix#`+61#YoAt7hpdnCZ5voWijR|V7g*bL(FV3PNZsj808*XhmLfdt zQ##i30trC+_(FgTp&53e_n_L(BVd4|AF`oi_wfG^RBw5Q(+KI7M?Wr+cNJKl1wbqb zj;=IzufF6KSQhBk60w{3vZg89312@NqQ7Pka&t+ksW7nP~NbjObQHda1Irq8E{^$35m6MLVi4M%5lQ|;e*&IhfF;evcJDbj_!XUtc zQhp>mmiD0HBNbsfvIUWX6S}BULeqd^?b_k3L~hi_#U2`CK93zvH~yYYn>M0}zO*8w z936^816bYP<9HRRsAH0;I9r>>)1sdW8~EtfyFz1q>b!dxN(adX zAms<0zL$3_xZ+3j)^u8mml%eqvT$}3EyUSci)*$g!?~@bm{_)9_d)awu?xwW||3$C<^u4Pn?yG1FzoEoqa#a0_@)1K4quqa&ENS`ca-(}%RsK-d<;RaZ&EbGh`=EXF-O}jeaJO!r zS+`Hu`=9IISh54*Ixl+e8Hs6+aO#iRR!p6tu6R`iMic~kQ!kGQ(@EXfXR;@IIu2_!7mY?Ak=C?3xP4|J7^SZvKC(rU4zxaA&pw`8L7R5v&4CyS^m{GE z>9N64AK{K&(0bFZ^eAG>tK30P>ykLw$HkbWA{55Qqk|Ow-YekaFE0;qDb6)P3Mv5h zSVT~YKYFnTd};+OUgArN1cv`R?gh5meoS74@oX-}0}v(VJw_!EEbb}LkRn#`l-pMx+nF>pC1}aP1Tys}v^c-}Cv>^4&*=PSK(`r@x(bbJ@?I9iEh;1zpC-@%Jnhi3tUFK~?bP|GS61*A z9JDxZfBE`PZ{%RH#Vg}J|NfU%HMP`}pH7~=TIVGTG_E~FPug`l(K8hga6uYQHjd7e zEokOL*-V;qa@kb-8~*LFwF07IFddbYx6xi+mDvrE;958b`|#Rl6jS>D;O3!_REpv? zF2!@i()MFGmF3KQ3O;P9%Nn`NwPj`ZR0XmCsi3Jd^dP*ht5`d285lH$^QLDitymvn zt5>I%1vG(VHo2R1m9QH>C|75sn{*}5^l)Blbu-D+Ivpr=gw+Rp&if!A(UIUc&rdpn zB$w}0iZn|cmY93QJQ(OFVxt0?IS-24;8chw&?^&Ua_Nt8kq`6Vaq7d2Yx|_(DIo*> z``ooZv14Y!vK;v2tLt~KpZ9ZjHoo3@p&E8GC@cnAe9A4wE%a6_KJTFrruCTx>dF*d z_V6iJ>hw{?XRSE1we!w3shZTh^$v{6UTP`MDeH+0E8!-$TkEl!QuP$c*RM24fx0zh z*`|ri($6qMS@_*^18RmenLm-1!YK{#u=Q`qzFb+Z>FjorrH(-&TZvOUf;+yC+98wB zVwgl1l7;{xLT#`sw}=+{93>aL);{u{C451bvhM%l;_J;0qAc&>9g1t`JrcHSNO8C3 zdW|a}%KSgLQ58WRZ$O97fhVJG4C4>|3lTm*yRf=&WT=Ys+t~8uVncT4%wd)QlZ0@h zLwG5};xTx=T_~zF|%nN_zV!v}^pFYMiZv8n>J`d+> zD>xSHOC*jYny(H0%ElO68QXr(_`3Q71#kBJAWT+3-&?sWs5)@y5jU5N&q}vz7qLf8#bCj=9w%`>9>&H za3wew1vL?Erry^#Cb(g9MBGB9xpOHMv{QxM^4b=E4LW&k! z9yX)O?c625Ffe8&f~4j%Ju{s~#FOSa`#8gbcVi6v_KVL+`0(7h+HZAw-_G)%&g%MY z)<_s)%$n(C5OIfRr>=)%Eb+HW6;y&S*DXIbo1n8_UBfuaRggP}t5W76ugBAtLlrl( zAvg0w#yve9!3Dsf8%oXuQCT-a#o!AbwWH7uMbsyBH(|dQ_q&wlO%3T0TzELUf)hgC zgo;nEsP=JDSDMJiR)$yD8cm^ZO2-DKryG(=PsA3$Y)!z;XJBBNqk9c1XyMDM!p$v` zcguvOZ{|lnN?cozj0#k{lWNGYo%@XVSRz}QztC}|&ms6%hRGkO`(r0u$L>G7@@8*p z#PL7>I_l3q-NR5DM2`BL2Z+rV%nr+q!aFFUb}@G;;|v<7yMZV%?f$vrPb9fgE*SOwO?-r1_aMPaXo2@qVGNj+`8Zu1QLT>E+3K&_KuT4DV_h5VP^pZ$kiEIQsKug|$& z{9554yp;5fw%P)OR z**~({`0&Bk?j4(WzxMAYda&Xvnn#3z!uEee>K3{{B1jTJ1SduVADjeKj5cm43)A5v z&syQOUW(s_j;+?motT{JFPjeV(HUWkz39|@fDTbSQ-As8I?6_Kgb;8=K~5d@g>9#N z>|83*eE5_!{EuSO-|VbJKqPP*>sNqTWk{iUn$iNP`Ls;UKaP4wiC*J7VR-Tb- zOdBM*Yot`=@r|ybv}qHJsW5hEa^{2v_<1stb~&wrO0qrQi7P*6nFKO$y;j%hi*uqMO{qB;MeWZwI~ zQ8M{%|EXk32xWFtHtznLNIHTKN7e1}<_J6OfC@X`1diI;ULiI8hYqVW@jvRYo2XDa zVbQJtsQmaF%0i90706WF00u*(fVpSEWGJcb|LuTEcqo8Gy=Y0n@H>FKQTPrw5$Ayx z>;**H_LssIVchFYW+8P|i03kekHW?tM^}-i1#!C@jNQYLUi>Z&cuGx}6uKWpGc5Z@ zWFypW68!JFGKGu%PZe2-586_gCoYcy4dVaj^{$dI2!MC<-`eg$Z6st=WDkTOnJY{( zI`ls*$nbx%phY3I3pJQ&vhkx`{AN8-Uo;ZsIQyv(Lw*WeF zfk!Teg>R#vNE{EDtnLOr6PNjKx-kdxZ~qWSs4ILH-2~YIFu9n(Hu}?U19*3T32;`L zf=E8kXo-5BFe!**Q~9%VSpau2K zkPBYc{ck$8^Ui>fw88|OYC%lhO(*{c(5*(rT2ud}gMa%^9o&zVCzLk_M0-;pQ~rb; z0&Sk<0`4Z>3Y1x(zHMy^PPhwC0?XR}_b~xE(0@Os0DfpaH$fZCVeVTd_l+kA&i3hg zUI=?^M*q?aJ9_oRGTUn%f|&co+>ad5uwap2=p*#$ya%zdXzp&?C@%f%oQ<-MP&=3E zmutMO9|kLa6HcmJDOMGHFz)wk$nFxV)f5rtCME*57gs3Tp*rcxmo3&;b~ZP@q8^|? zKE#jiD@ysdreNT8#nH9Oa}!&-*ln%GQLHQkf={mb`4lQ%jH-m=dLOuJt66tc89G<( zzfoszb!;@JXhvXd_wgAf4-huta1W-F`jv)}`VxH8h;tjHxjyqSH|iEh`{Rc_KdMU} z&NX>`TDH0GuVsX$w=WVJAA%P+6fhI>a8s}VUZ}Q3909Ieo%Dxw);V)dPQZSF4aCzj z$3PG#)GQ&m>f6crjef=ROW*C4aBeL0+**@VX=Bmc@!_}iJkp0B-V;7QHh{UzYj4Rz zKx*2U{&X=m?iA^BR+1bSf4Fdl(<%)@Vw_QI5Q_sftfW{uVK^cQfZC2)?SQuu3 z9KI&QD3H8Ae%*FVQ`8QLYo4!js@>gVinF ztQw4r`9N4t|FOGr6~)B%6dxHxN+3dpjKK|EbFnWNfay@Kzi#kEVgK44$OrL$`tPwq zdIJ45;Xogs4Ss$GkL#U`)6pQTtV`HTyxXB2* zv@BD_XxZLI&QYuF%zh<%)x`Q*Dm|(EW6nTX;}P=KBO*bIowkil;M?-7`95rgz90Q_ z)BetKf&>yUA9%9zZqo_WFtY!Uo37f=IH2!6?5}l+4R6JCR_0uCV&&RuJ?XIaCj<5i z+y(vlrsG%LBdo z1NY(=-=9D&F^Lrjx)umJgfOfOa`Omo#M~QkKaufMzw_$#)wwfw?AOyGZfwZeS(!cw zhnXk>-6vRmH|yFHJ>&(Qbuo1|v|tLDPtVT0GWuccDBC|LEDX5Z0=*t)Eje{2gPLEz zV?PSKx3Jdw^6NtWW~e;k6n6s~m)*BwW}szrZk6Qk-FbkK7JhdHzC( zaRVaV0c#_!^^%7SkZ0JS5X7pD-wkb#DG(<@K*Rat4=0fzLY6v%13={ zZjIlA4mG(2N|Lc5T^$4|S?=M)!s_S*X+iOZ(5isv(-{hMYpQ$=>G|`tH4Z_Vqb3w< zai1DI)u{3J3)dPhK*>R`-f66F_ykn<iwQ*Lv=FT34l_qxc=o(7Wbb#MLmF z+t|k^PmqwLU*TRRN(NbiHEmD9#||~hP6Kl>ZsYD8M0(kk3acNhpFFZQcdb#A^4CvP zHW%Qt9|lr4c0xxpw_Z?$Q?VeVbd1{qK)npHHHMDXHL!ClVE4f()Z3@OM(YU7_kVD7 z1zb$y%+VFH@uC|@3TffG+)N7 zeKA(GX#sR=Pd4f9cZ>Cyh)wHvcs&+@XqbkS?X6|o&eX@EI&MUVRmwb^>wL11AhdqN zi6?V17tEd0ZY5H-u5UU1bfm2V(BI|=)xQYO>FigCX!!svDoa3>v# zfo{KCCy-F<&g9+L|2Kft@ZV#!;s0Lfofz&I`hENfSxKT&C&+@$IGSdn8cj^QxsTO=V3X| zuUh=o*~j@PA}S-sw$&qmDuD=p=U%^^r%k#fc;h=%iR1D5Q+dsbBUjlurM0gC?*4ek zB}K4Nf0~xVb3*2wlWraN1Z@vf&voC}%^Zt{{hTaZAR(HdoJvLG6P{wOYy9z7`U=sH z1=8AWsuQ<|(r;nJx>OPN0Z4MrL}Y$iI{2ca8Y3ut7Z^;dH+-_kTl1LK z%q`$!bQplJN7d}}ci;-XCeL<`H1>Q%~LSGpA=R8QS#$8~05`B)f zUBSe z9~@dK#K$cB{KA`1-lo1li!qI3SI~#xr__{<(=VE6939rlzjB1^=xNnd3xDRJ_6j{?kf= z%HbX{OY=@&e4R4++Vy9OzbnJ~v))e?B*JEs~8tMGs;^%QH29^wSSYzb%!1nzH}d3z6O)p`s^{+CDLHY%uH>ZJ z70!|2XnP@9z|RKUv$`CincCrg$EbXByy<%Ksj(hE75kufgyW@^gn9)>b8gHHSgrR+ zoDvM{_O8`hzk&Of-FU>7oNUWfhkU`l$af*#UFQ<7_qY^FqYhBmdNuqTPG^Tv```=h z8b(d7aiGp99~HLZTiWxrYOVTUn@c!Cu!U1J!=R)t=@O1DTJ&z|^bCbEO+swR0Lqjk>riM&SG_T zh9T;Q9E1vUy|XJJ#d#mUJJujF;l& z9-{EKVZNc(u?u(UQu3V8u}$ouFW)*#re_voIGOLDxgz>gge02do5$Bp)G9Wq{oY-y zC=Ho!0Ev|IedOsEEjcj<$Vn?TArB=yh5H8i-JB}w>!icy9thnDZLn)As)7aj$2nse z=J^3Yb7pLCWUxYgQ*n!Kt1#?CdS!2*LIaQo@q^*RsIS*D_i#IA$k$0`iXY#du3Pz% zVShS&Fzp4}C-ZEb*fjLGrPM-@Af&pbS zJ-Jgt*MjG(k%?Wpd~;~aF*Q&jI5^~Q35pu!#KO(d%8)sta)|m>CC?CsR=iUO-j1!4 z#P<%^23`?DoSsxWW|q(UV>lG&_&%uhPqPthgaoY0m8z*M93R^B+5n2AGWObf|A}Zj zZ66v^X%8;a@CY$XXiid_e`u<_lV{;9w&%!f1UA%&_E6D}b2mBIy~U-WanitZQula7 zLuhH~Kyo)Q8meFfwuEeYGPOHHUMEAoTcD(7CQ68btne>+XFh#Fy9;vsTL?%3o2{K$ zv8ale7TrJm?rwH(kLn%1O@a;EEqN2W4<1g8iAt&WhS=hu62k8qCWDiA@wNHiXIwML zbkJle>`YXY_E^(1(n7F|_(jI9>@OW2bejT*`Zs}ANe~Z!He77zMz+tX*~(CX^vUX$ zJ3hNG;d)gAj$B~}Auj^j=}k!6%FXqqSeXAdI^SAn5NBJl=+WtcisuLFcfa-L+}6x% z7oK?blKic2NlrdH^OeD6vyf+-}u8Oh<- z`^Jm>%G}w}elcksPl%qcj{G$PT{N70^X>knKf8q31ESy0tUvuS$DdD%HwimBqa2OU zt9^%DO8wyLCR=E9_?I&~F|M!tcQ4T~pxr$u8-SC*gjxdaB4u=DqAw~6x)+DVat5F~ zTN3;R3J>3QZsZ$Rtep&%$NgsbfajfZni-LJEJtVI><+p)sto%YNN1`MG zgh!wZUaR9rvM1MmPTj80B=^DKQFGMuO_!tLFH93t{eMjL7(8HW)XY`g?+T+kNpwy9 z0+z-NaB>1m5NFvwFQuMszqE&0Eqy8`b-IyNU(`j`IOdUar!4$&mujY;kYuRGwA4*A zd4W0vp3nSW?XuUOI{be6>Qz>gU|U`@v%Q=!T50!bx10ovgN8uLM=6lqOlloIKT3yZ zALmaI_@MJ^$s`(Y%Xtdwicq1UpJ|w~CkB7AMgJBaWL@m@BS!>ZKVQYaThYpf|OL;r_W8#RaNF>#TkxK#s~P= z=xAChSc4DL5j;!TADMn;D^ww_?&>)0)9Cl=qpai?m?o2$;9ak!b>(Wmh9c*$wGVS* z9J-XehVV*1mQR+o&qBm*lQRGIq?2(GZ-l-J$b?SeJxBvw${GN` zoGT7_oFj)XE`8uKi5`c?>!6cA0=Gl=?wT}Uyn5%Syq%=g-`_kN{qk9k?@L6U3tOyH z`O$F}sB?7X8(KYN^!~<|(C3=!k7J8t-DYpWyNi_LeBf6dOShPnyvSF+iaL`5+q==I zpUznY`PZ8o!Z;!PA2Umwh}ze#<7O`|_cNSfw*Es_CS=Ez3McBO0ka*tf9u4vmZo^z z@w;Ui;6?+!DeZ5)SdL=5-9sT0do^X}@|Wd2GG38o@RwF&c4y3dja zzC5HrAL{Lfa<0{8GIAZQa{EW~7{ogpNF%mkhNY+E-w+YRl@>&nCNwiD`{N$7&OLPb zH$A+<*>#{GRF)sktq^;@DUQX1G6jfr^Vs#}1vH9Bg^VdR2D(1vhl72_h!SZ@%Rj6xFZS zefMN6+}7jZJqw)7muFc3H10uu;2ZBtf5D3)1`I}=#~b1tujdAC zSy}T zqLoKP{Mjps=O9u+b=}7hGUxZU`nPX%{;j~f4^NOy>OGr=KG|P$`3T^N?%UqfEursu85h+!%6EKEK~)SjRJbL25=qjKN#^)%<4 zeE~DP>=I0sZjkvsDCSo6OIoU9oG3{8_5IKTy%CzDjH-746%?mmpSH1lZP`*?_jY5} z8qkFeZVCHt89Im03sy?AJa91y0MT~zlikXP0arns+f(!n&I_2!+yXQBg|%?qxr~BJ zcW#0c*S*YhnWJyyF=I0a`K{)YCwhys-Z4d_EI-NG%Idw7HT22UrdYR;TSQ}~%$&@m z2?@ch4aUsT`XRpid)N%99%#?L+fXB%8pY}Bsm2F+ByJ_XJ7t)J7^};?HtHYnA>FeO zhgHbHrhi4%{>ph^hOqr)EjV0Y%mJ@{-bz8YZ7D-Mg3Fp9Gdc7r*KCp`%}#+)YSt$` z?h;y1GWj02TF^lLIOp>_DoL=e4zWDW zw%!lC1$Qk%y-A5=Sa#-Cn(+KBXZP^tkQ`qFKf zuY1z((=4#tCs9P>i`zFS;eOh8*qEBO8!RYg=?L$|NLS3AtbC!o6m`GnqouF)&>Q|y zE|Gr4gK~4Yo|&Zhb1im~8G%-qG5Xv3yHrMIsdsNc`B61bp54t%6)jC`qk2|kotFnz zSpDGkmA0J2nes{5lqgB8eu^7q#&HlG2&ulq{AE&%Yt`a6I`Fomb`3dkDJQHY5XSK{ z=MwFn)yJPcyI(dTOVp_F=LYrgZ$6!G+1r1TTt3AJU`4=IG(Fr=8bgNY;dyoHNrJC* z&TskWU2iDVG7@_Vzps`#OXOug>Q{OsUR`%@7m4A+II9G)!y0bSzKs6L@lZCSVNOLw z{CM@h+WYdjrmk)O)S=YcN*$;ZlGX`_N@NseIBhLbMTn?Kl_6F{R0KpsnZj|Xq9~+} z0aT(OMns4MlMFcpl!yT$MvZ_FAV7o=0%T6kIlPS>Z11(d_q@IDe(rrg{>bN(Plmns zS$plZzH8i`R_WoB10UpSCkEFFb`BCOeOFzZ>yaKlW|i9$Oq zf;2a5-Z*|-oc8_d&H3!a8%L4*8_&;;P4iUYa0(>Aibi?8aT6un0S(bW&@2{!H>0(6 z&UdrWIvkNcp81=jX#JZB&&NAlqIA-fgM{FNpZ=L^%Dtz1kYEL~^m{+}%buwbi+;bn z6~CJ@b9;LIGaSe&it5$)H!J)DNla>4a%bHjq2SBklce1VE7LOiGq+#uS`Y7pqA6$p z`1ONdzGn8^Sai`7T#q$#U<=-Y@-%fr{{+J&xH#?LF0%Hq1Kn%5KJ0yz>Ym@N!2TFg z2vNZBH?d3PP8x`&KRh`3%w)AeCtOLJOX@YOem%nP*7op(9`phz#<#;gvldh_y*s*Bnzuy^!EHZ`u@VX4pWsrCBT z%|s9$-Z{#5HRUBSd5|#ex79Iwx?wArh=21z$XI5?Jv>hNme1W0Fb9poO|!Jm5r zm%m&Ei&?1OlKY85b)<)ug07GmlE8yMY$R)ccmToy9YUp?|7wu%Y_$wOC}3H|lwk13 zw5}LiQv#8XZf~}=wO4dC_Om(<<0e)5jeGHz7(=VXlG(Fig+JhULx1chh*2CD1IIa! zqNxlyJ_G3;04q4w)C!_t?UB<#Hr3)J76UED*-^yqYk-npN(3p6zOl$rj)MKyo@hOM zKe!JBga+&razTWAwI>hv0nF@Rs9Xp5>TTeS82xi|}r#<`sM+S%{5vzE*3)r)Qvy z*1US`3z6v*ae<#!l~LBBQ=kjA8ABT%``iaAfC6wTye;H75u3UmuBe9t&EU33JtP<4 z<`>$WL-Zv#_VgE2RFyqBA92xmy;p>{*BPI1RaEJcXo(Q`4?XS*bq17}A!ZnV&d_1mJ~U8!`5h*L`=^(H+g)k1f}qZcMsnbffd#ykU=B+}XW&~>Hy~G{ zHc&=i%S8fA?oW?sX_51pA(co9NSij5`t$W+fQJRDZJJYqgt~Lir~_SfM~s^?fP2{i z7ENW(2KHX@qjY@M{x~}5Lew4vc4!M59+2s@zYvY(yImWp!>1FUXm-01Af~3SWcTh! z(5qKOsWCtu&ZzEmVfO%WBznu3Z$Wwj7|evL9||^3fnUw90P;YOLno==wraSP@oy3acHj{k-JOo)9{lwKwnrSj}G9Kj3iN519OIV*2slotf`v8cq3VnfRbYIZMIf(Hbs@jMLgE zqh6_h_|6MDbMxitZ^}i)?pddo_SKFv;7z!;Y>BnzZa)Vf>#1KK^F`mM#cjvJ4eM*W z@y}Hb6Yit$YYwp@snG|&pB)X_GLCt^oH(1){_ynXPp8yEla(Qwg$$`>o89r?5U6#f zH_z;wC&V9O?bgk=?+vG^jynZN^fej0sivpx$Ib7bb~OCl`t%ATZL4qd6SqXO2~9qx zCSGPmruzeep1k^LtL;f6N>I|mnoTcHuhQ?-2A|#_WBL2(mi8OcQqAneOMem(xwTV` z$E6p{SP?_=?Z>ZB@r;gOq%4;B(33TY9{)@1V zBr5l?1#uLRq(fZu{Va`bA+9c$P0J6%)tvLJvIYK2agt`;)zhI-oJmd68Q3#~Bn+W9 zKFKXxg+qkFkJA~QUagZ+qp>PFw8yYs#XD`-==cG;oRJy@*d=dn z{K|H}9CM*@?1>nlh!0)CpRY47qPnQ|>Pe`a2zdO!`^!dj>31BJ@YXoKl5z4X3f(3> zT%Zr0Q(3o`B3Cb{^l)n?8_dZToPXF>`Lt$XoyvBn$0RH7oUA=h1kXx!5`GY^+q6}E zXqS~snAOVmgu)RoxjVzk+Ltc~_)Ixl-V>pug1DMW!qNWZs444qg{`VUHtiNHYu3pJ zCZ&4YFZ_t}uoQfbU*j3Q|5iWd?9iXuZo(BWpg_kVCE^I=?S)+$nhvh?4wdoySuYpI zei0E$&+(ocLTRS@PqrF1fkCQrIa0$$DSZf{4TZz8ZUmbd^3#%&i~Oz zDPx1a4A`B^K3CatZ|&8?68QdxmPfgt1|F`)^W0WOdm1|~uqd0IhEO9&JND(e7X*>~ zxp+?J`JuxI?zn3%efETIt*CEqs9(f;#n_<&X15q!c2XR<7N$a!S0&0R9Pg6>dwOwj zG^C6?XY74AfQPPtk9$)gkp*1)zWKpK5D0C#CCuwBh;1Mr4M74TgIZVb^j&yDwNpb2 z&Dc1Rak{!dnxaxKJ0`*=Z2a)R=$hYHYzu8RYe7BZdD$qpfCyCM_ORv zaMIqdePhcC#?z@D;2I8jWI9~79@;sBR9%^=hu&vkVM}_t`af>=g%ejoyW;##UX0;P zl?d#RJ{7TngC7QQY)H8a9uHd9SVW);M}x$YxFWbbdmKYP@&qnZgDi&jJXh=V*2K?n z=k5$60bkGukkR#7dqM}IHy21!l6pD8QM>I-qCOJ58#MB0B2KplO)vXhx69UzjlUqz z>x!h-sQE;ti#-tC7VH!~xlgNwd~AyUGMoTNYCNj~SOpLJy+HEcFGzX+0PAmorEjyt zYea4mH-wPz?Z}WeIn|XN%VSsIQ|WCh$SkyZW#z)%fXc|u;tmp1LLp3OQSgCpHkJJu zcXpC!8IZOWn+%E;CGP$q*!HIuPmqe^_TGa*!dN@dS)om-Zw*o_dl+VLcjvYyc8*{_ zZ-#=Oqeg@S_>YJGPMv{qdnkEy%z#Y*P|_j>Agx!AuKtYI7>end_js5WX-JXgKp%4O zSpjiE#WJAA>?w52PQC#I^sX`f7Ni&bHIVKB{eP&MhvDqMtt~hVXa7y%?C_ZxJ~P86 z;5(Us7V~n5dNROZ*fdyr8+hIP`t^f^WR{$EjVy&u3=$N;{g%(cKc{hI_%@{0F&Q@p zW@I4)R_+HLvWjh>DfFetbR|XVeGk+KY$Jm1eid9EuaBD877t=0xi~OV>X>*VQF9a` zf+TBDCZpSm^EC)Ck{SA4aN86#7IgFrL`7X^unlcg;7NQb8zg+3gphRMorm?FX0Uu} z94IHbH6WLxM8CqcLip_qgWf*Z->>#E{*22&E58Swt#;X$prA10MejS40eTi}D#Uz% zb@dgv>qLR(u&TTNqtiPb4f}2wmj(Do=XlR}@C_NZevo&i%qMYc%JcA#r{8tH zm3t%pVNKsL;^&Tq(pS`I!E+>k{}J4#yV_#^q2&TPAO;@9CJQ=AWi}I&TxXrLR4o$@DLx(k?z&`7B#mxGr;nUDH=` zV0MO+tOX%oe=>G!!IVlWJ2e%HGD)(P#F(~v_8W;W%y#WKiS~{!?A`sqp)|^5nR_}q zA4^kCHUpuD5b3^Mjp_BV)zFmScF|HU<71~O4&>0X+CBTJB#_MX9vYrsG%yQ0jqIXc z41)R|QcSoe89(ESW$|*RgM*d^Bdm%3n)$yhuBbI`s zsLvsLKds5*ZsJrj+F&Rx72>-ZRflB^%4h~foVxL@_GrMVezz@HPn->c9oSMdkQKN} zw17(Hjf(zCR17*F>Eqcq$DA%mo92-L398H^U5%LkR@*&kJ5kDcYULc#4B zH*$#+h-D24O{wRl+1fL47s~c^21@NbrnKy=^DYmfG_EN;**&Gb+&pE#GY?BcJwava zC-@^`{=N%Ln)Zk7lsg8}iJ{lwmgSl;>9*pFhQ7%>kF>@Z*FHRX?zs%SikM&W=@W5n zn0{&uH86Q#soc!)=r?h!zH>`QiBqF*l~~?SBCFz;zQ4CW2qi6gaDC$d#`0&!4-)Kl z$#_^g{ke-|O0`8@jCGoRAH3f;+h;~jcFS$izNhxfBO|foYtAI-A@{Xx%m6*VLNg_m5O{!KGdG1Y)YTzxWX&)A!&-?!(ju(MFm zkq->ci&PdGedk>B@_T*trkVQ2doQEgYs29a0j!>6eb7btSrVum=9e8xx2n?6EkMA~ z!}8>$yn<(-x$NQ-{uv*hz2s`fxUcpZQ{Fk{!&OfzzdxtW`;OfpA(dmz`O6+Hj0Z}) zK&V=a&2~D`Vcu$O))7szwBlYf zL;1x6EzD%lhngM(SR{XUNI=nL-v^K^>z)vwZXQcfNNNmJIo<#=SsDUo z%l92(vBr@T>a=^1&;U;cz8c^d3ZkLQi8LWv17Dg(PSom;HRGV;9w|>_1 zIX3(yK5MShCqOLKp>Gnbn=Na3md5%GuFn#l{TL_xq-P>1)bo$%Sm|Is+w2woB6wjf zlIOVC7{obD@kZmJpo+OhUu#a&p4SKDFC*^isn^g%))&Ldp{;(*?;)r(3Md6_Y}mwN(%8_*C1i-a|7`U{Sa<0~Av)8$EYzm$HEvvjKj9*;?8X2dX&vGbyBQCRz}~)<889Ze zNhbkPfzqV=<{Av(c!8F~C;dGfKQ@ej5*es+oaS$Yk)@M?f2JjL$N>>cp$El|z(E2~pEtx6=r$qMuncjC_2WsLlTFn^ zTo=-R&D}ZIhY4z`IlyhBjrGYRbpY)&x&keQGqT=3$)sqf23TVpgLDb$9gS;;$N!s6 z7^crZ%0C*WbadbHRT@!C*WTjB!bRbwpH)R)7Vg?OZPC|$`WFLtzvKnX1KH9+XGUI> z9TQn=d9AV^rU?&Pf67-jnNb(@usbR$_7%Cd_QJWnUnXugKeYPJc+SX9YrTOxInXbn z5V@Vl_U-d78Ht^SE+xl1%!+eE0i1vgi2MN8ebrM3~V~*X36* zCTYv=T!+Jqd`gWKi+?SPDQb^dl6GO{QOoOI+DPIopKsRLhu*DOSXE^^rAta#9ucmH z-XILU-t}CXY7)rZ?glkSjvRNX%6_lJ=PCPxzO79$vs#Z~m+OLN;;Y;oj#~%CENtD5 zJdFtWlA@DlG?LM0kV!H+dY^y&TvIcA(mZf{SqWUvpzsUbIi;TRnLD3`J5I_3;nxnf zP*AH4izsj*YgC0n>mKh|QvtE2<{HXQTUOdiJgz*omVUK=M}tBAR~+4jyW)+mjR&vs zMtp7Pjh03$a~kYi9fi2V7f-khZP+IbR0ExLiGxF-s_S^*%k{TCaqD14P-L+73w2Zw z5D&8wWqA-f`Qv?!WQru#hBS^Bu}{)a+Iz(SRpjLbEzBg~Z8f5&4*jZwN|}$t)$uQ2 z&dK@ypaH?D>;nAw`mDVm66~3do&t{By+fiy$qaH~-?%VHC|om0_>36>%a&jYxblKi zNDZXbdkzvt(7@-DaVeP9kVKNWHN25t?k!P<57*XhT9A*!XGKF+1&Ww86l>Rk!GYOB zqI3n47!azW<2a<@$5cV=L4ukOCs@QgWUEy)Tu1|<=>fEOC*=_X9~-9ynNlvES{kMn zv#KMp?ef_;u&;!!xYeV1suQ_DeA)uj4Iy#!Gf+VImO_}$Qslu&;5V^RD2MT!W!`qjaJXWNr=_XTA_qoF!)Q5{@gcuzi_En#a1Pn7`-QBRC;GpSM_dP|<4e`l<5jdt9qZeI6KkqWQ@BSZo zF{iE~j=Bhyzl0YOz)&_m^p|n_o3I{m<5(73CfoAiytE(x+Y7^2PI|H&&(6m`6zV>) zo-wKIrQ`dp_++m3yVUQ%U9Pbm9UblLju(0PQ;}!V!!+&oc0)8K^|DTNqnAb$ZXm0l zvg9K!Y}l|B)@aAQ^jmn;0dAaCfGBI}aca=74H4I0RNa*J%UIx2j?>D8?rXVYof19d zg9Q63sCtpp#sThK909>Z$7*52a_x`qPLoc6WgqxYdCiI6cH*)p4^@mtu4mex1BxU) z*w$Ek1U3#DX}u|)-w+uK^?l@Uv>6A{L_?JLSz5OC_#XHPWt+jM`N5YQTa0|aZJrf3 z#qmHE5#60<0-~!R@zX?@OUf=7B+LeiK{4Pz$$jI6Bmcz9-~U^l_^WfdepGImJP|x` z{YJFKZ{kZ^t<$b;Qy zX0C%BsZqsdO-1YyM66YBsBxn_4+ciVwMD-L2Y%KwC274 zpx3C>fCAurexCjd0qmlq@WbeWdvpewkLD^oB{2?Xi#bfsj@V07S*hA@duBd~*$r1- z$#{eo#oB-*N_rb5kG6x#MRkF&^9yj^R~-Bgdj9v;%6?9XjE|4uadkMt_1}e^jll;A z?NV>e5R_JSk=P|8#4716w4UfR`H z|EAL7P!P%S5*1=L^R(yU=Qje|o=0qh%=s6mzj-^dNQUjew+ERSG6CyD)lnyNgs_~W zp;hk{j{{ONb_Qfl(->U&X;p|Tg^U%T&-4=Eip@HhAxAmas}6VJFi&oh4oLIcPb>O~ zpaT`1kFjDMk9WE83Y1LkW!J8(F5q__B%~nJ=&o_U&6ecI5Q8)c^KMI^jyknW!!p_}t570HHbCRXPP$mO(4JUz&-fV<=IFn)}c}D zYsRTXz)aM|o|a|!By{O${a1gZ`~|2O>>C4AUA2{hMz|k47YXrbh&>a%4H{1_^XtI7 zZuaQmO>oLsDJw{*fq4{tH2c)A4D`q&;cqu;373XP!=m&-!U=%sZLKz{aPat6R?R7F zhCW1_r53#T`)~YbxrH>;04)`T^BV1`6HYq4ZkQ$)(p1F(v^4jCMjaomv*)_POHc%6 zP~qfF#=ma;Vk*Sb;(kxJ?HXbs=Z@DLL`#cW8w93@#LR1x`KMp=aN3!uojO>Gbh3oL zI;USbfBssq`{Ni%9CYO4*5Wq@>$5*_{HumPIe(*l_P>5S8vwyJ&>3!Q245C{K6)_8 z{j0D3#Ugb?yN)4e^h3$%rcXgjT2MHN*36kSkt+rQ!llBJD)Xn_pYq z&P(V(G?4CvWQ*!aoz!Lf0OXj7j9=_v&_3@c1@Xs>w8Rk7FM|tb4uI~;l4wcwRv?}k z17z{agRh{^U7U>HGRHkfCZ81?fss3@JN7S8Ur4-|IzM-VZ!PhWj>>!@?7#xU=sds? z^p^$CdtVBhL#lz5ejMdxyPWEV%-6VkMLXBS6h3~w@a8hg4ur16BAW_=;1wthq?S>X z>TB)4tYL%wGeyWlA|*Bow_U2QOnX6fmf(}_ZI#Nn%#hwjrVCEE;b7$hse}|W6+hZB zq7OXV{5@2dr!|$Q#V;)ZGOdcrrG^wNLRw29?tswi+7Ric3=t{Uy{6+A(ubXjqzVPf zQf23A!>_a-4pC_S_Vf$fU!I}AhYq??+X2~iigN5VfqNM1hBl{jV2HWqs23?q2O9C| zd=y!vEPC5E8-4yi-sZFJPNVVv@p3#NnV$9Jxx{&U_Je%+0RA-+#8K-;~%t7qMieI0%}70d;k8TKqi1f5MCT{zCO`gp9M{ zD#zT0c_X4d7lBf=2(nImP9Z5N*jz7pDq5ORn4i+Plw$u8LlJ|JuM?ug%+fDcI;?~? zopqh5IK`<;f+>EwfGm%4id-e%;02}D>Wf*fAC=M>!8qlpZkM{LX}QzJ>ev$+(tv0{ z`A94?F1uX{x#L#ROPYobR_Yn4U;ruoI4yp`$L0T+@%fJ!tbh4G2Ei%-bl`)!P^@n4 z>-U3%1G+GbzvjtnkswETnKfZtqy>4%t6zsxDk+`NFCg2c_+>1piE;~-C1$zgIUtrY zSr0tRjav|c0aV0l&MpaI*z4JsCe!J{2AS5QHH~iY7+-Pv@~fg=grx~r|7L+1;lALS zFbMs02~HaefQ(+X2_TeN&geJ5UpP7en1JQr+U!{DJfeLls0S^z>kF_^{z8r2L}2v9 zox^S)#X%Xh=3@xo1Yh@fm(l9*^ld`LcsktD1E#VtP*qOXE(A8B)gVE;1HZD~bIAXB z{~O@u{7$H|C!qpaeIU>z3By0510$H(0Vt=>O_cYTkXM(~kfjprHNMoz%V z`Zn6sy>2J?E(70`?3!Yv(5fG$K!khYny=8F)_WHKJ8?#Tn5 zz7>}Mel~*3K=Sr$U;q!{b8DAFmO)U1MK5DOJ&{kxuRulBQ0{ejPB3Ge2}L2VqVfXu zNcZ@6!Q|G^AMyR?$p4z%(UvgDopOU=JIURNF#H;(!T$*!@N57Exs;-r$HS&fmI535 zSav_KvXfRptqn+@J43ga)CkHr#(RlC_U7VqHOgvJZ1nd?AC-i=)KEK9AF)t9aQGf@ zK}!V9G44)OFvK{}^X1SbN`LSB~9q%LI^MWvym_BL}<$6?t$=I;7Z4$w%;+1spQ|J;=|C z11URYE8tf@Awe+e6q3k5%iaIDyw;u@AYxO*(2PR3HB|9~N$>WwXQ^Rhfa~D95R~XL zNH{I0L_{w@|>#m0`QY# zRRZAj*q{O7t?D^M?{fI@hUuX0_X!A-0(zMYQ*W4hZ$D|nyf=JuhvnX|))>|r!#ekW zj?ad*#<12H)*An8tuY^NZGijSS-Qo + + + + + Dream Multimedia + DVDPlayer + enigma2-plugin-extensions-dvdplayer + DVDPlayer plays your DVDs on your receiver + DVDPlayer plays your DVDs on your receiver.\nWith the DVDPlayer you can play your DVDs on your receiver from a DVD or even from an iso file or video_ts folder on your harddisc or network. + + + + + + diff --git a/lib/python/Plugins/Extensions/DVDPlayer/plugin.py b/lib/python/Plugins/Extensions/DVDPlayer/plugin.py new file mode 100644 index 0000000..e9d53dc --- /dev/null +++ b/lib/python/Plugins/Extensions/DVDPlayer/plugin.py @@ -0,0 +1,96 @@ +import os +from Components.config import config +from Tools.Directories import pathExists, fileExists +from Plugins.Plugin import PluginDescriptor +from Components.Harddisk import harddiskmanager + +detected_DVD = None + +def main(session, **kwargs): + from Screens import DVD + session.open(DVD.DVDPlayer) + +def play(session, **kwargs): + from Screens import DVD + session.open(DVD.DVDPlayer, dvd_device=harddiskmanager.getAutofsMountpoint(harddiskmanager.getCD())) + +def DVDPlayer(*args, **kwargs): + # for backward compatibility with plugins that do "from DVDPlayer.plugin import DVDPlayer" + from Screens import DVD + return DVD.DVDPlayer(*args, **kwargs) + +def DVDOverlay(*args, **kwargs): + # for backward compatibility with plugins that do "from DVDPlayer.plugin import DVDOverlay" + from Screens import DVD + return DVD.DVDOverlay(*args, **kwargs) + +def filescan_open(list, session, **kwargs): + from Screens import DVD + if len(list) == 1 and list[0].mimetype == "video/x-dvd": + splitted = list[0].path.split('/') + print "splitted", splitted + if len(splitted) > 2: + if splitted[1] == 'autofs': + session.open(DVD.DVDPlayer, dvd_device="/dev/%s" %(splitted[2])) + return + else: + print "splitted[0]", splitted[1] + else: + dvd_filelist = [] + for x in list: + if x.mimetype == "video/x-dvd-iso": + dvd_filelist.append(x.path) + if x.mimetype == "video/x-dvd": + dvd_filelist.append(x.path.rsplit('/',1)[0]) + session.open(DVD.DVDPlayer, dvd_filelist=dvd_filelist) + +def filescan(**kwargs): + from Components.Scanner import Scanner, ScanPath + + # Overwrite checkFile to only detect local + class LocalScanner(Scanner): + def checkFile(self, file): + return fileExists(file.path) + + return [ + LocalScanner(mimetypes = ["video/x-dvd","video/x-dvd-iso"], + paths_to_scan = + [ + ScanPath(path = "video_ts", with_subdirs = False), + ScanPath(path = "VIDEO_TS", with_subdirs = False), + ScanPath(path = "", with_subdirs = False), + ], + name = "DVD", + description = _("Play DVD"), + openfnc = filescan_open, + )] + +def onPartitionChange(action, partition): + print "[@] onPartitionChange", action, partition + if partition != harddiskmanager.getCD(): + global detected_DVD + if action == 'remove': + print "[@] DVD removed" + detected_DVD = False + elif action == 'add': + print "[@] DVD Inserted" + detected_DVD = None + +def menu(menuid, **kwargs): + if menuid == "mainmenu": + global detected_DVD + if detected_DVD is None: + cd = harddiskmanager.getCD() + if cd and os.path.exists(os.path.join(harddiskmanager.getAutofsMountpoint(harddiskmanager.getCD()), "VIDEO_TS")): + detected_DVD = True + else: + detected_DVD = False + if onPartitionChange not in harddiskmanager.on_partition_list_change: + harddiskmanager.on_partition_list_change.append(onPartitionChange) + if detected_DVD: + return [(_("DVD player"), play, "dvd_player", 46)] + return [] + +def Plugins(**kwargs): + return [PluginDescriptor(where = PluginDescriptor.WHERE_FILESCAN, needsRestart = False, fnc = filescan), + PluginDescriptor(name = "DVDPlayer", description = "Play DVDs", where = PluginDescriptor.WHERE_MENU, needsRestart = False, fnc = menu)] diff --git a/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpg.py b/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpg.py new file mode 100644 index 0000000..19fdf27 --- /dev/null +++ b/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpg.py @@ -0,0 +1,1174 @@ +from skin import parseColor, parseFont, parseSize +from Components.config import config, ConfigClock, ConfigInteger, ConfigSubsection, ConfigYesNo, ConfigSelection, ConfigSelectionNumber +from Components.Pixmap import Pixmap +from Components.Button import Button +from Components.ActionMap import HelpableActionMap +from Components.HTMLComponent import HTMLComponent +from Components.GUIComponent import GUIComponent +from Components.EpgList import Rect +from Components.Sources.Event import Event +from Components.MultiContent import MultiContentEntryText, MultiContentEntryPixmapAlphaTest +from Components.TimerList import TimerList +from Components.Renderer.Picon import getPiconName +from Components.Sources.ServiceEvent import ServiceEvent +from Screens.Screen import Screen +from Screens.HelpMenu import HelpableScreen +from Screens.EventView import EventViewEPGSelect +from Screens.TimeDateInput import TimeDateInput +from Screens.TimerEntry import TimerEntry +from Screens.EpgSelection import EPGSelection +from Screens.TimerEdit import TimerSanityConflict, TimerEditList +from Screens.MessageBox import MessageBox +from Screens.ChoiceBox import ChoiceBox +from Tools.Directories import resolveFilename, SCOPE_CURRENT_SKIN +from RecordTimer import RecordTimerEntry, parseEvent, AFTEREVENT +from ServiceReference import ServiceReference, isPlayableForCur +from Tools.LoadPixmap import LoadPixmap +from Tools.Alternatives import CompareWithAlternatives +from Tools import Notifications +from enigma import eEPGCache, eListbox, gFont, eListboxPythonMultiContent, RT_HALIGN_LEFT, RT_HALIGN_RIGHT, RT_HALIGN_CENTER,\ + RT_VALIGN_CENTER, RT_WRAP, BT_SCALE, BT_KEEP_ASPECT_RATIO, eSize, eRect, eTimer, getBestPlayableServiceReference, loadPNG +from GraphMultiEpgSetup import GraphMultiEpgSetup +from time import localtime, time, strftime +from Components.PluginComponent import plugins +from Plugins.Plugin import PluginDescriptor +from Tools.BoundFunction import boundFunction + +MAX_TIMELINES = 6 + +config.misc.graph_mepg = ConfigSubsection() +config.misc.graph_mepg.prev_time = ConfigClock(default = time()) +config.misc.graph_mepg.prev_time_period = ConfigInteger(default = 120, limits = (60, 300)) +config.misc.graph_mepg.ev_fontsize = ConfigSelectionNumber(default = 0, stepwidth = 1, min = -8, max = 8, wraparound = True) +config.misc.graph_mepg.items_per_page = ConfigSelectionNumber(min = 3, max = 40, stepwidth = 1, default = 6, wraparound = True) +config.misc.graph_mepg.items_per_page_listscreen = ConfigSelectionNumber(min = 3, max = 60, stepwidth = 1, default = 12, wraparound = True) +config.misc.graph_mepg.default_mode = ConfigYesNo(default = False) +config.misc.graph_mepg.overjump = ConfigYesNo(default = True) +config.misc.graph_mepg.center_timeline = ConfigYesNo(default = False) +config.misc.graph_mepg.servicetitle_mode = ConfigSelection(default = "picon+servicename", choices = [ + ("servicename", _("Service name")), + ("picon", _("Picon")), + ("picon+servicename", _("Picon and service name")) ]) +config.misc.graph_mepg.roundTo = ConfigSelection(default = "900", choices = [("900", _("%d minutes") % 15), ("1800", _("%d minutes") % 30), ("3600", _("%d minutes") % 60)]) +config.misc.graph_mepg.OKButton = ConfigSelection(default = "info", choices = [("info", _("Show detailed event info")), ("zap", _("Zap to selected channel"))]) +possibleAlignmentChoices = [ + ( str(RT_HALIGN_LEFT | RT_VALIGN_CENTER ) , _("left")), + ( str(RT_HALIGN_CENTER | RT_VALIGN_CENTER ) , _("centered")), + ( str(RT_HALIGN_RIGHT | RT_VALIGN_CENTER ) , _("right")), + ( str(RT_HALIGN_LEFT | RT_VALIGN_CENTER | RT_WRAP) , _("left, wrapped")), + ( str(RT_HALIGN_CENTER | RT_VALIGN_CENTER | RT_WRAP) , _("centered, wrapped")), + ( str(RT_HALIGN_RIGHT | RT_VALIGN_CENTER | RT_WRAP) , _("right, wrapped"))] +config.misc.graph_mepg.event_alignment = ConfigSelection(default = possibleAlignmentChoices[0][0], choices = possibleAlignmentChoices) +config.misc.graph_mepg.servicename_alignment = ConfigSelection(default = possibleAlignmentChoices[0][0], choices = possibleAlignmentChoices) +config.misc.graph_mepg.extension_menu = ConfigYesNo(default = False) + +listscreen = config.misc.graph_mepg.default_mode.value + +class EPGList(HTMLComponent, GUIComponent): + def __init__(self, selChangedCB = None, timer = None, time_epoch = 120, overjump_empty = True): + GUIComponent.__init__(self) + self.cur_event = None + self.cur_service = None + self.offs = 0 + self.timer = timer + self.last_time = time() + self.onSelChanged = [ ] + if selChangedCB is not None: + self.onSelChanged.append(selChangedCB) + self.l = eListboxPythonMultiContent() + self.l.setBuildFunc(self.buildEntry) + self.setOverjump_Empty(overjump_empty) + self.epgcache = eEPGCache.getInstance() + self.clocks = [ LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, 'skin_default/icons/epgclock_add.png')), + LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, 'skin_default/icons/epgclock_pre.png')), + LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, 'skin_default/icons/epgclock.png')), + LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, 'skin_default/icons/epgclock_prepost.png')), + LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, 'skin_default/icons/epgclock_post.png')), + LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, 'skin_default/icons/zapclock_add.png')), + LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, 'skin_default/icons/zapclock_pre.png')), + LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, 'skin_default/icons/zapclock.png')), + LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, 'skin_default/icons/zapclock_prepost.png')), + LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, 'skin_default/icons/zapclock_post.png')), + LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, 'skin_default/icons/zaprecclock_add.png')), + LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, 'skin_default/icons/zaprecclock_pre.png')), + LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, 'skin_default/icons/zaprecclock.png')), + LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, 'skin_default/icons/zaprecclock_prepost.png')), + LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, 'skin_default/icons/zaprecclock_post.png')) ] + self.time_base = None + self.time_epoch = time_epoch + self.list = None + self.select_rect = None + self.event_rect = None + self.service_rect = None + self.picon_size = None + self.currentlyPlaying = None + self.showPicon = False + self.showServiceTitle = True + self.nowEvPix = None + self.othEvPix = None + self.selEvPix = None + self.recEvPix = None + self.curSerPix = None + + self.foreColor = 0xffffff + self.foreColorSelected = 0xffc000 + self.borderColor = 0x464445 + self.backColor = 0x595959 + self.backColorSelected = 0x808080 + self.foreColorService = 0xffffff + self.foreColorServiceSelected = 0xffffff + self.backColorService = 0x000000 + self.backColorServiceSelected = 0x508050 + self.borderColorService = 0x000000 + self.foreColorNow = 0xffffff + self.backColorNow = 0x505080 + self.foreColorRec = 0xffffff + self.backColorRec = 0x805050 + self.serviceFont = gFont("Regular", 20) + self.entryFontName = "Regular" + self.entryFontSize = 18 + + self.listHeight = None + self.listWidth = None + self.serviceBorderWidth = 1 + self.serviceNamePadding = 0 + self.eventBorderWidth = 1 + self.eventNamePadding = 0 + + def applySkin(self, desktop, screen): + if self.skinAttributes is not None: + attribs = [ ] + for (attrib, value) in self.skinAttributes: + if attrib == "EntryForegroundColor": + self.foreColor = parseColor(value).argb() + elif attrib == "EntryForegroundColorSelected": + self.foreColorSelected = parseColor(value).argb() + elif attrib == "EntryBackgroundColor": + self.backColor = parseColor(value).argb() + elif attrib == "EntryBackgroundColorSelected": + self.backColorSelected = parseColor(value).argb() + elif attrib == "EntryBorderColor": + self.borderColor = parseColor(value).argb() + elif attrib == "EntryFont": + font = parseFont(value, ((1,1),(1,1)) ) + self.entryFontName = font.family + self.entryFontSize = font.pointSize + elif attrib == "ServiceForegroundColor" or attrib == "ServiceNameForegroundColor": + self.foreColorService = parseColor(value).argb() + elif attrib == "ServiceForegroundColorSelected": + self.foreColorServiceSelected = parseColor(value).argb() + elif attrib == "ServiceBackgroundColor" or attrib == "ServiceNameBackgroundColor": + self.backColorService = parseColor(value).argb() + elif attrib == "ServiceBackgroundColorSelected": + self.backColorServiceSelected = parseColor(value).argb() + elif attrib == "ServiceBackgroundColorRecording" or attrib == "ServiceNameBackgroundColor": + self.backColorRec = parseColor(value).argb() + elif attrib == "ServiceForegroundColorRecording": + self.foreColorRec = parseColor(value).argb() + elif attrib == "ServiceBorderColor": + self.borderColorService = parseColor(value).argb() + elif attrib == "ServiceFont": + self.serviceFont = parseFont(value, ((1,1),(1,1)) ) + elif attrib == "EntryBackgroundColorNow": + self.backColorNow = parseColor(value).argb() + elif attrib == "EntryForegroundColorNow": + self.foreColorNow = parseColor(value).argb() + elif attrib == "ServiceBorderWidth": + self.serviceBorderWidth = int(value) + elif attrib == "ServiceNamePadding": + self.serviceNamePadding = int(value) + elif attrib == "EventBorderWidth": + self.eventBorderWidth = int(value) + elif attrib == "EventNamePadding": + self.eventNamePadding = int(value) + else: + attribs.append((attrib,value)) + self.skinAttributes = attribs + self.l.setFont(0, self.serviceFont) + self.setEventFontsize() + rc = GUIComponent.applySkin(self, desktop, screen) + # now we know our size and can safely set items per page + self.listHeight = self.instance.size().height() + self.listWidth = self.instance.size().width() + self.setItemsPerPage() + return rc + + def isSelectable(self, service, service_name, events, picon): + return (events and len(events) and True) or False + + def setShowServiceMode(self, value): + self.showServiceTitle = "servicename" in value + self.showPicon = "picon" in value + self.recalcEntrySize() + self.selEntry(0) #Select entry again so that the clipping region gets updated if needed + + def setOverjump_Empty(self, overjump_empty): + if overjump_empty: + self.l.setSelectableFunc(self.isSelectable) + else: + self.l.setSelectableFunc(None) + + def setEpoch(self, epoch): + self.offs = 0 + self.time_epoch = epoch + self.fillMultiEPG(None) # refill + + def setCurrentlyPlaying(self, serviceref): + self.currentlyPlaying = serviceref + + def getEventFromId(self, service, eventid): + event = None + if self.epgcache is not None and eventid is not None: + event = self.epgcache.lookupEventId(service.ref, eventid) + return event + + def getIndexFromService(self, serviceref): + if serviceref is not None: + for x in range(len(self.list)): + if CompareWithAlternatives(self.list[x][0], serviceref.toString()): + return x + return None + + def moveToService(self, serviceref): + newIdx = self.getIndexFromService(serviceref) + if newIdx is None: + newIdx = 0 + self.setCurrentIndex(newIdx) + + def setCurrentIndex(self, index): + if self.instance is not None: + self.instance.moveSelectionTo(index) + + def moveTo(self, dir): + if self.instance is not None: + self.instance.moveSelection(dir) + + def getCurrent(self): + if self.cur_service is None: + return (None, None) + old_service = self.cur_service #(service, service_name, events, picon) + events = self.cur_service[2] + refstr = self.cur_service[0] + if self.cur_event is None or not events or not len(events): + return (None, ServiceReference(refstr)) + event = events[self.cur_event] #(event_id, event_title, begin_time, duration) + eventid = event[0] + service = ServiceReference(refstr) + event = self.getEventFromId(service, eventid) # get full event info + return (event, service) + + def connectSelectionChanged(func): + if not self.onSelChanged.count(func): + self.onSelChanged.append(func) + + def disconnectSelectionChanged(func): + self.onSelChanged.remove(func) + + def serviceChanged(self): + cur_sel = self.l.getCurrentSelection() + if cur_sel: + self.findBestEvent() + + def findBestEvent(self): + old_service = self.cur_service #(service, service_name, events, picon) + cur_service = self.cur_service = self.l.getCurrentSelection() + time_base = self.getTimeBase() + now = time() + if old_service and self.cur_event is not None: + events = old_service[2] + cur_event = events[self.cur_event] #(event_id, event_title, begin_time, duration) + if self.last_time < cur_event[2] or cur_event[2]+cur_event[3] < self.last_time: + self.last_time = cur_event[2] + if now > self.last_time: + self.last_time = now + if cur_service: + self.cur_event = None + events = cur_service[2] + if events and len(events): + self.cur_event = idx = 0 + for event in events: #iterate all events + if event[2] <= self.last_time and event[2]+event[3] > self.last_time: + self.cur_event = idx + break + idx += 1 + self.selEntry(0) + + def selectionChanged(self): + for x in self.onSelChanged: + if x is not None: + x() + + GUI_WIDGET = eListbox + + def setItemsPerPage(self): + global listscreen + if self.listHeight > 0: + if listscreen: + itemHeight = self.listHeight / config.misc.graph_mepg.items_per_page_listscreen.getValue() + else: + itemHeight = self.listHeight / config.misc.graph_mepg.items_per_page.getValue() + else: + itemHeight = 54 # some default (270/5) + if listscreen: + self.instance.resize(eSize(self.listWidth, itemHeight * config.misc.graph_mepg.items_per_page_listscreen.getValue())) + else: + self.instance.resize(eSize(self.listWidth, itemHeight * config.misc.graph_mepg.items_per_page.getValue())) + self.l.setItemHeight(itemHeight) + + self.nowEvPix = loadPNG(resolveFilename(SCOPE_CURRENT_SKIN, 'epg/CurrentEvent.png')) + self.othEvPix = loadPNG(resolveFilename(SCOPE_CURRENT_SKIN, 'epg/OtherEvent.png')) + self.selEvPix = loadPNG(resolveFilename(SCOPE_CURRENT_SKIN, 'epg/SelectedEvent.png')) + self.recEvPix = loadPNG(resolveFilename(SCOPE_CURRENT_SKIN, 'epg/RecordingEvent.png')) + self.curSerPix = loadPNG(resolveFilename(SCOPE_CURRENT_SKIN, 'epg/CurrentService.png')) + + def setEventFontsize(self): + self.l.setFont(1, gFont(self.entryFontName, self.entryFontSize + config.misc.graph_mepg.ev_fontsize.getValue())) + + def postWidgetCreate(self, instance): + instance.setWrapAround(True) + instance.selectionChanged.get().append(self.serviceChanged) + instance.setContent(self.l) + self.l.setSelectionClip(eRect(0, 0, 0, 0), False) + + def preWidgetRemove(self, instance): + instance.selectionChanged.get().remove(self.serviceChanged) + instance.setContent(None) + + def recalcEntrySize(self): + esize = self.l.getItemSize() + width = esize.width() + height = esize.height() + if self.showServiceTitle: + w = width / 10 * 2; + else: # if self.showPicon: # this must be set if showServiceTitle is None + w = 2 * height - 2 * self.serviceBorderWidth # FIXME: could do better... + self.service_rect = Rect(0, 0, w, height) + self.event_rect = Rect(w, 0, width - w, height) + piconHeight = height - 2 * self.serviceBorderWidth + piconWidth = 2 * piconHeight # FIXME: could do better... + if piconWidth > w - 2 * self.serviceBorderWidth: + piconWidth = w - 2 * self.serviceBorderWidth + self.picon_size = eSize(piconWidth, piconHeight) + + def calcEntryPosAndWidthHelper(self, stime, duration, start, end, width): + xpos = (stime - start) * width / (end - start) + ewidth = (stime + duration - start) * width / (end - start) + ewidth -= xpos; + if xpos < 0: + ewidth += xpos; + xpos = 0; + if (xpos + ewidth) > width: + ewidth = width - xpos + return xpos, ewidth + + def calcEntryPosAndWidth(self, event_rect, time_base, time_epoch, ev_start, ev_duration): + xpos, width = self.calcEntryPosAndWidthHelper(ev_start, ev_duration, time_base, time_base + time_epoch * 60, event_rect.width()) + return xpos + event_rect.left(), width + + def buildEntry(self, service, service_name, events, picon): + r1 = self.service_rect + r2 = self.event_rect + selected = self.cur_service[0] == service + + # Picon and Service name + if CompareWithAlternatives(service, self.currentlyPlaying and self.currentlyPlaying.toString()): + serviceForeColor = self.foreColorServiceSelected + serviceBackColor = self.backColorServiceSelected + bgpng = self.curSerPix or self.nowEvPix + currentservice = True + else: + serviceForeColor = self.foreColorService + serviceBackColor = self.backColorService + bgpng = self.othEvPix + currentservice = False + + res = [ None ] + if bgpng is not None: # bacground for service rect + res.append(MultiContentEntryPixmapAlphaTest( + pos = (r1.x + self.serviceBorderWidth, r1.y + self.serviceBorderWidth), + size = (r1.w - 2 * self.serviceBorderWidth, r1.h - 2 * self.serviceBorderWidth), + png = bgpng, + flags = BT_SCALE)) + else: + res.append(MultiContentEntryText( + pos = (r1.x, r1.y), + size = (r1.w, r1.h), + font = 0, flags = RT_HALIGN_LEFT | RT_VALIGN_CENTER, + text = "", + color = serviceForeColor, color_sel = serviceForeColor, + backcolor = serviceBackColor, backcolor_sel = serviceBackColor)) + + displayPicon = None + if self.showPicon: + if picon is None: # go find picon and cache its location + picon = getPiconName(service) + curIdx = self.l.getCurrentSelectionIndex() + self.list[curIdx] = (service, service_name, events, picon) + piconWidth = self.picon_size.width() + piconHeight = self.picon_size.height() + if picon != "": + displayPicon = loadPNG(picon) + if displayPicon is not None: + res.append(MultiContentEntryPixmapAlphaTest( + pos = (r1.x + self.serviceBorderWidth, r1.y + self.serviceBorderWidth), + size = (piconWidth, piconHeight), + png = displayPicon, + backcolor = None, backcolor_sel = None, flags = BT_SCALE | BT_KEEP_ASPECT_RATIO)) + elif not self.showServiceTitle: + # no picon so show servicename anyway in picon space + namefont = 1 + namefontflag = int(config.misc.graph_mepg.servicename_alignment.value) + namewidth = piconWidth + piconWidth = 0 + else: + piconWidth = 0 + + if self.showServiceTitle: # we have more space so reset parms + namefont = 0 + namefontflag = int(config.misc.graph_mepg.servicename_alignment.value) + namewidth = r1.w - piconWidth + + if self.showServiceTitle or displayPicon is None: + res.append(MultiContentEntryText( + pos = (r1.x + piconWidth + self.serviceBorderWidth + self.serviceNamePadding, + r1.y + self.serviceBorderWidth), + size = (namewidth - 2 * (self.serviceBorderWidth + self.serviceNamePadding), + r1.h - 2 * self.serviceBorderWidth), + font = namefont, flags = namefontflag, + text = service_name, + color = serviceForeColor, color_sel = serviceForeColor, + backcolor = None, backcolor_sel = None)) + + # Events for service + backColorSel = self.backColorSelected + if events: + start = self.time_base + self.offs * self.time_epoch * 60 + end = start + self.time_epoch * 60 + left = r2.x + top = r2.y + width = r2.w + height = r2.h + + now = time() + for ev in events: #(event_id, event_title, begin_time, duration) + stime = ev[2] + duration = ev[3] + xpos, ewidth = self.calcEntryPosAndWidthHelper(stime, duration, start, end, width) + rec = self.timer.isInTimer(ev[0], stime, duration, service) + + # event box background + foreColorSelected = foreColor = self.foreColor + if stime <= now and now < stime + duration: + backColor = self.backColorNow + if isPlayableForCur(ServiceReference(service).ref): + foreColor = self.foreColorNow + foreColorSelected = self.foreColorSelected + else: + backColor = self.backColor + + if selected and self.select_rect.x == xpos + left and self.selEvPix: + bgpng = self.selEvPix + backColorSel = None + elif rec is not None and rec[1][-1] in (2, 12): + bgpng = self.recEvPix + foreColor = self.foreColorRec + backColor = self.backColorRec + elif stime <= now and now < stime + duration: + bgpng = self.nowEvPix + elif currentservice: + bgpng = self.curSerPix or self.othEvPix + backColor = self.backColorServiceSelected + else: + bgpng = self.othEvPix + + if bgpng is not None: + res.append(MultiContentEntryPixmapAlphaTest( + pos = (left + xpos + self.eventBorderWidth, top + self.eventBorderWidth), + size = (ewidth - 2 * self.eventBorderWidth, height - 2 * self.eventBorderWidth), + png = bgpng, + flags = BT_SCALE)) + else: + res.append(MultiContentEntryText( + pos = (left + xpos, top), size = (ewidth, height), + font = 1, flags = int(config.misc.graph_mepg.event_alignment.value), + text = "", color = None, color_sel = None, + backcolor = backColor, backcolor_sel = backColorSel)) + + # event text + evX = left + xpos + self.eventBorderWidth + self.eventNamePadding + evY = top + self.eventBorderWidth + evW = ewidth - 2 * (self.eventBorderWidth + self.eventNamePadding) + evH = height - 2 * self.eventBorderWidth + if evW > 0: + res.append(MultiContentEntryText( + pos = (evX, evY), + size = (evW, evH), + font = 1, + flags = int(config.misc.graph_mepg.event_alignment.value), + text = ev[1], + color = foreColor, + color_sel = foreColorSelected)) + # recording icons + if rec is not None: + for i in range(len(rec[1])): + if ewidth < (i + 1) * 22: + break + res.append(MultiContentEntryPixmapAlphaTest( + pos = (left + xpos + ewidth - (i + 1) * 22, top + height - 22), size = (21, 21), + png = self.clocks[rec[1][len(rec[1]) - 1 - i]])) + + else: + if selected and self.selEvPix: + res.append(MultiContentEntryPixmapAlphaTest( + pos = (r2.x + self.eventBorderWidth, r2.y + self.eventBorderWidth), + size = (r2.w - 2 * self.eventBorderWidth, r2.h - 2 * self.eventBorderWidth), + png = self.selEvPix, + flags = BT_SCALE)) + return res + + def selEntry(self, dir, visible = True): + cur_service = self.cur_service #(service, service_name, events, picon) + self.recalcEntrySize() + valid_event = self.cur_event is not None + if cur_service: + update = True + entries = cur_service[2] + if dir == 0: #current + update = False + elif dir == +1: #next + if valid_event and self.cur_event + 1 < len(entries): + self.cur_event += 1 + else: + self.offs += 1 + self.fillMultiEPG(None) # refill + return True + elif dir == -1: #prev + if valid_event and self.cur_event - 1 >= 0: + self.cur_event -= 1 + elif self.offs > 0: + self.offs -= 1 + self.fillMultiEPG(None) # refill + return True + elif dir == +2: #next page + self.offs += 1 + self.fillMultiEPG(None) # refill + return True + elif dir == -2: #prev + if self.offs > 0: + self.offs -= 1 + self.fillMultiEPG(None) # refill + return True + elif dir == +3: #next day + self.offs += 60 * 24 / self.time_epoch + self.fillMultiEPG(None) # refill + return True + elif dir == -3: #prev day + self.offs -= 60 * 24 / self.time_epoch + if self.offs < 0: + self.offs = 0; + self.fillMultiEPG(None) # refill + return True + if cur_service and valid_event: + entry = entries[self.cur_event] #(event_id, event_title, begin_time, duration) + time_base = self.time_base + self.offs*self.time_epoch * 60 + xpos, width = self.calcEntryPosAndWidth(self.event_rect, time_base, self.time_epoch, entry[2], entry[3]) + self.select_rect = Rect(xpos ,0, width, self.event_rect.height) + self.l.setSelectionClip(eRect(xpos, 0, width, self.event_rect.h), visible and update) + else: + self.select_rect = self.event_rect + self.l.setSelectionClip(eRect(self.event_rect.x, self.event_rect.y, self.event_rect.w, self.event_rect.h), False) + self.selectionChanged() + return False + + def fillMultiEPG(self, services, stime = None): + if stime is not None: + self.time_base = int(stime) + if services is None: + time_base = self.time_base + self.offs * self.time_epoch * 60 + test = [ (service[0], 0, time_base, self.time_epoch) for service in self.list ] + serviceList = self.list + piconIdx = 3 + else: + self.cur_event = None + self.cur_service = None + test = [ (service.ref.toString(), 0, self.time_base, self.time_epoch) for service in services ] + serviceList = services + piconIdx = 0 + + test.insert(0, 'XRnITBD') #return record, service ref, service name, event id, event title, begin time, duration + epg_data = [] if self.epgcache is None else self.epgcache.lookupEvent(test) + self.list = [ ] + tmp_list = None + service = "" + sname = "" + + serviceIdx = 0 + for x in epg_data: + if service != x[0]: + if tmp_list is not None: + picon = None if piconIdx == 0 else serviceList[serviceIdx][piconIdx] + self.list.append((service, sname, tmp_list[0][0] is not None and tmp_list or None, picon)) + serviceIdx += 1 + service = x[0] + sname = x[1] + tmp_list = [ ] + tmp_list.append((x[2], x[3], x[4], x[5])) #(event_id, event_title, begin_time, duration) + if tmp_list and len(tmp_list): + picon = None if piconIdx == 0 else serviceList[serviceIdx][piconIdx] + self.list.append((service, sname, tmp_list[0][0] is not None and tmp_list or None, picon)) + serviceIdx += 1 + + self.l.setList(self.list) + self.findBestEvent() + + def getEventRect(self): + rc = self.event_rect + return Rect( rc.left() + (self.instance and self.instance.position().x() or 0), rc.top(), rc.width(), rc.height() ) + + def getServiceRect(self): + rc = self.service_rect + return Rect( rc.left() + (self.instance and self.instance.position().x() or 0), rc.top(), rc.width(), rc.height() ) + + def getTimeEpoch(self): + return self.time_epoch + + def getTimeBase(self): + return self.time_base + (self.offs * self.time_epoch * 60) + + def resetOffset(self): + self.offs = 0 + +class TimelineText(HTMLComponent, GUIComponent): + def __init__(self): + GUIComponent.__init__(self) + self.l = eListboxPythonMultiContent() + self.l.setSelectionClip(eRect(0, 0, 0, 0)) + self.l.setItemHeight(25); + self.foreColor = 0xffc000 + self.backColor = 0x000000 + self.time_base = 0 + self.time_epoch = 0 + self.font = gFont("Regular", 20) + + GUI_WIDGET = eListbox + + def applySkin(self, desktop, screen): + if self.skinAttributes is not None: + attribs = [ ] + for (attrib, value) in self.skinAttributes: + if attrib == "foregroundColor": + self.foreColor = parseColor(value).argb() + elif attrib == "backgroundColor": + self.backColor = parseColor(value).argb() + elif attrib == "font": + self.font = parseFont(value, ((1, 1), (1, 1)) ) + else: + attribs.append((attrib,value)) + self.skinAttributes = attribs + self.l.setFont(0, self.font) + return GUIComponent.applySkin(self, desktop, screen) + + def postWidgetCreate(self, instance): + instance.setContent(self.l) + + def setDateFormat(self, value): + if "servicename" in value: + self.datefmt = _("%A %d %B") + elif "picon" in value: + self.datefmt = _("%d-%m") + + def setEntries(self, l, timeline_now, time_lines, force): + event_rect = l.getEventRect() + time_epoch = l.getTimeEpoch() + time_base = l.getTimeBase() + + if event_rect is None or time_epoch is None or time_base is None: + return + + eventLeft = event_rect.left() + res = [ None ] + + # Note: event_rect and service_rect are relative to the timeline_text position + # while the time lines are relative to the GraphEPG screen position! + if self.time_base != time_base or self.time_epoch != time_epoch or force: + service_rect = l.getServiceRect() + itemHeight = self.l.getItemSize().height() + time_steps = 60 if time_epoch > 180 else 30 + num_lines = time_epoch / time_steps + timeStepsCalc = time_steps * 60 + incWidth = event_rect.width() / num_lines + if int(config.misc.graph_mepg.center_timeline.value): + tlMove = incWidth / 2 + tlFlags = RT_HALIGN_CENTER | RT_VALIGN_CENTER + else: + tlMove = 0 + tlFlags = RT_HALIGN_LEFT | RT_VALIGN_CENTER + + res.append( MultiContentEntryText( + pos = (0, 0), + size = (service_rect.width(), itemHeight), + font = 0, flags = RT_HALIGN_LEFT | RT_VALIGN_CENTER, + text = strftime(self.datefmt, localtime(time_base)), + color = self.foreColor, color_sel = self.foreColor, + backcolor = self.backColor, backcolor_sel = self.backColor) ) + + xpos = 0 # eventLeft + for x in range(0, num_lines): + res.append( MultiContentEntryText( + pos = (service_rect.width() + xpos-tlMove, 0), + size = (incWidth, itemHeight), + font = 0, flags = tlFlags, + text = strftime("%H:%M", localtime( time_base + x*timeStepsCalc )), + color = self.foreColor, color_sel = self.foreColor, + backcolor = self.backColor, backcolor_sel = self.backColor) ) + line = time_lines[x] + old_pos = line.position + line.setPosition(xpos + eventLeft, old_pos[1]) + line.visible = True + xpos += incWidth + for x in range(num_lines, MAX_TIMELINES): + time_lines[x].visible = False + self.l.setList([res]) + self.time_base = time_base + self.time_epoch = time_epoch + + now = time() + if now >= time_base and now < (time_base + time_epoch * 60): + xpos = int((((now - time_base) * event_rect.width()) / (time_epoch * 60)) - (timeline_now.instance.size().width() / 2)) + old_pos = timeline_now.position + new_pos = (xpos + eventLeft, old_pos[1]) + if old_pos != new_pos: + timeline_now.setPosition(new_pos[0], new_pos[1]) + timeline_now.visible = True + else: + timeline_now.visible = False + +class GraphMultiEPG(Screen, HelpableScreen): + EMPTY = 0 + ADD_TIMER = 1 + REMOVE_TIMER = 2 + + ZAP = 1 + + def __init__(self, session, services, zapFunc=None, bouquetChangeCB=None, bouquetname=""): + Screen.__init__(self, session) + self.bouquetChangeCB = bouquetChangeCB + now = time() - config.epg.histminutes.getValue() * 60 + self.ask_time = now - now % int(config.misc.graph_mepg.roundTo.getValue()) + self["key_red"] = Button("") + self["key_green"] = Button("") + + global listscreen + if listscreen: + self["key_yellow"] = Button(_("Normal mode")) + self.skinName="GraphMultiEPGList" + else: + self["key_yellow"] = Button(_("List mode")) + + self["key_blue"] = Button(_("Goto")) + + self.key_green_choice = self.EMPTY + self.key_red_choice = self.EMPTY + self["timeline_text"] = TimelineText() + self["Service"] = ServiceEvent() + self["Event"] = Event() + self.time_lines = [ ] + for x in range(0, MAX_TIMELINES): + pm = Pixmap() + self.time_lines.append(pm) + self["timeline%d"%(x)] = pm + self["timeline_now"] = Pixmap() + self.services = services + self.zapFunc = zapFunc + if bouquetname != "": + Screen.setTitle(self, bouquetname) + + self["list"] = EPGList( selChangedCB = self.onSelectionChanged, + timer = self.session.nav.RecordTimer, + time_epoch = config.misc.graph_mepg.prev_time_period.value, + overjump_empty = config.misc.graph_mepg.overjump.value) + + HelpableScreen.__init__(self) + self["okactions"] = HelpableActionMap(self, "OkCancelActions", + { + "cancel": (self.closeScreen, _("Exit EPG")), + "ok": (self.eventSelected, _("Zap to selected channel, or show detailed event info (depends on configuration)")) + }, -1) + self["okactions"].csel = self + self["epgactions"] = HelpableActionMap(self, "EPGSelectActions", + { + "timerAdd": (self.timerAdd, _("Add/remove change timer for current event")), + "info": (self.infoKeyPressed, _("Show detailed event info")), + "red": (self.zapTo, _("Zap to selected channel")), + "yellow": (self.swapMode, _("Switch between normal mode and list mode")), + "blue": (self.enterDateTime, _("Goto specific date/time")), + "menu": (self.furtherOptions, _("Further Options")), + "nextBouquet": (self.nextBouquet, _("Show bouquet selection menu")), + "prevBouquet": (self.prevBouquet, _("Show bouquet selection menu")), + "nextService": (self.nextPressed, _("Goto next page of events")), + "prevService": (self.prevPressed, _("Goto previous page of events")), + "preview": (self.preview, _("Preview selected channel")), + "nextDay": (self.nextDay, _("Goto next day of events")), + "prevDay": (self.prevDay, _("Goto previous day of events")) + }, -1) + self["epgactions"].csel = self + + self["inputactions"] = HelpableActionMap(self, "InputActions", + { + "left": (self.leftPressed, _("Go to previous event")), + "right": (self.rightPressed, _("Go to next event")), + "1": (self.key1, _("Set time window to 1 hour")), + "2": (self.key2, _("Set time window to 2 hours")), + "3": (self.key3, _("Set time window to 3 hours")), + "4": (self.key4, _("Set time window to 4 hours")), + "5": (self.key5, _("Set time window to 5 hours")), + "6": (self.key6, _("Set time window to 6 hours")), + "7": (self.prevPage, _("Go to previous page of service")), + "9": (self.nextPage, _("Go to next page of service")), + "8": (self.toTop, _("Go to first service")), + "0": (self.toEnd, _("Go to last service")) + }, -1) + self["inputactions"].csel = self + + self.updateTimelineTimer = eTimer() + self.updateTimelineTimer.callback.append(self.moveTimeLines) + self.updateTimelineTimer.start(60 * 1000) + self.onLayoutFinish.append(self.onCreate) + self.previousref = self.session.nav.getCurrentlyPlayingServiceOrGroup() + + def prevPage(self): + self["list"].moveTo(eListbox.pageUp) + + def nextPage(self): + self["list"].moveTo(eListbox.pageDown) + + def toTop(self): + self["list"].moveTo(eListbox.moveTop) + + def toEnd(self): + self["list"].moveTo(eListbox.moveEnd) + + def prevPressed(self): + self.updEvent(-2) + + def nextPressed(self): + self.updEvent(+2) + + def leftPressed(self): + self.updEvent(-1) + + def rightPressed(self): + self.updEvent(+1) + + def prevDay(self): + self.updEvent(-3) + + def nextDay(self): + self.updEvent(+3) + + def updEvent(self, dir, visible = True): + ret = self["list"].selEntry(dir, visible) + if ret: + self.moveTimeLines(True) + + def updEpoch(self, mins): + self["list"].setEpoch(mins) + config.misc.graph_mepg.prev_time_period.value = mins + self.moveTimeLines() + + def key1(self): + self.updEpoch(60) + + def key2(self): + self.updEpoch(120) + + def key3(self): + self.updEpoch(180) + + def key4(self): + self.updEpoch(240) + + def key5(self): + self.updEpoch(300) + + def key6(self): + self.updEpoch(360) + + def nextBouquet(self): + if self.bouquetChangeCB: + self.bouquetChangeCB(1, self) + + def prevBouquet(self): + if self.bouquetChangeCB: + self.bouquetChangeCB(-1, self) + + def enterDateTime(self): + t = localtime(time()) + config.misc.graph_mepg.prev_time.value = [t.tm_hour, t.tm_min] + self.session.openWithCallback(self.onDateTimeInputClosed, TimeDateInput, config.misc.graph_mepg.prev_time) + + def onDateTimeInputClosed(self, ret): + if len(ret) > 1: + if ret[0]: + now = time() - config.epg.histminutes.getValue() * 60 + self.ask_time = ret[1] if ret[1] >= now else now + self.ask_time = self.ask_time - self.ask_time % int(config.misc.graph_mepg.roundTo.getValue()) + l = self["list"] + l.resetOffset() + l.fillMultiEPG(None, self.ask_time) + self.moveTimeLines(True) + + def showSetup(self): + self.session.openWithCallback(self.onSetupClose, GraphMultiEpgSetup) + + def onSetupClose(self, ignore = -1): + l = self["list"] + l.setItemsPerPage() + l.setEventFontsize() + l.setEpoch(config.misc.graph_mepg.prev_time_period.value) + l.setOverjump_Empty(config.misc.graph_mepg.overjump.value) + l.setShowServiceMode(config.misc.graph_mepg.servicetitle_mode.value) + now = time() - config.epg.histminutes.getValue() * 60 + self.ask_time = now - now % int(config.misc.graph_mepg.roundTo.getValue()) + self["timeline_text"].setDateFormat(config.misc.graph_mepg.servicetitle_mode.value) + l.fillMultiEPG(None, self.ask_time) + self.moveTimeLines(True) + + def closeScreen(self): + self.zapFunc(None, zapback = True) + config.misc.graph_mepg.save() + self.close(False) + + def furtherOptions(self): + menu = [] + text = _("Select action") + event = self["list"].getCurrent()[0] + if event: + menu = [(p.name, boundFunction(self.runPlugin, p)) for p in plugins.getPlugins(where = PluginDescriptor.WHERE_EVENTINFO) \ + if 'selectedevent' in p.__call__.func_code.co_varnames] + if menu: + text += _(": %s") % event.getEventName() + menu.append((_("Timer Overview"), self.openTimerOverview)) + menu.append((_("Setup menu"), self.showSetup)) + if len(menu) == 1: + menu and menu[0][1]() + elif len(menu) > 1: + def boxAction(choice): + if choice: + choice[1]() + self.session.openWithCallback(boxAction, ChoiceBox, title=text, list=menu) + + def runPlugin(self, plugin): + event = self["list"].getCurrent() + plugin(session=self.session, selectedevent=event) + + def openTimerOverview(self): + self.session.open(TimerEditList) + + def infoKeyPressed(self): + cur = self["list"].getCurrent() + event = cur[0] + service = cur[1] + if event is not None: + self.session.open(EventViewEPGSelect, event, service, self.eventViewCallback, self.openSingleServiceEPG, self.openMultiServiceEPG, self.openSimilarList) + + def openSimilarList(self, eventid, refstr): + self.session.open(EPGSelection, refstr, None, eventid) + + def openSingleServiceEPG(self): + ref = self["list"].getCurrent()[1].ref.toString() + if ref: + self.session.open(EPGSelection, ref) + + def openMultiServiceEPG(self): + if self.services: + self.session.openWithCallback(self.doRefresh, EPGSelection, self.services, self.zapFunc, None, self.bouquetChangeCB) + + def setServices(self, services): + self.services = services + self.onCreate() + + def doRefresh(self, answer): + serviceref = self.session.nav.getCurrentlyPlayingServiceOrGroup() + l = self["list"] + l.moveToService(serviceref) + l.setCurrentlyPlaying(serviceref) + self.moveTimeLines() + + def onCreate(self): + serviceref = self.session.nav.getCurrentlyPlayingServiceOrGroup() + l = self["list"] + l.setShowServiceMode(config.misc.graph_mepg.servicetitle_mode.value) + self["timeline_text"].setDateFormat(config.misc.graph_mepg.servicetitle_mode.value) + l.fillMultiEPG(self.services, self.ask_time) + l.moveToService(serviceref) + l.setCurrentlyPlaying(serviceref) + self.moveTimeLines() + + def eventViewCallback(self, setEvent, setService, val): + l = self["list"] + old = l.getCurrent() + self.updEvent(val, False) + cur = l.getCurrent() + if cur[0] is None and cur[1].ref != old[1].ref: + self.eventViewCallback(setEvent, setService, val) + else: + setService(cur[1]) + setEvent(cur[0]) + + def preview(self): + ref = self["list"].getCurrent()[1] + if ref: + self.zapFunc(ref.ref, preview = True) + self["list"].setCurrentlyPlaying(ref.ref) + self["list"].l.invalidate() + + def zapTo(self): + if self.zapFunc and self.key_red_choice == self.ZAP: + ref = self["list"].getCurrent()[1] + if ref: + from Components.ServiceEventTracker import InfoBarCount + preview = InfoBarCount > 1 + self.zapFunc(ref.ref, preview) + if self.previousref and self.previousref == ref.ref and not preview: + config.misc.graph_mepg.save() + self.close(True) + self.previousref = ref.ref + self["list"].setCurrentlyPlaying(ref.ref) + self["list"].l.invalidate() + + def swapMode(self): + global listscreen + listscreen = not listscreen + self.close(None) + + def eventSelected(self): + if config.misc.graph_mepg.OKButton.value == "info": + self.infoKeyPressed() + else: + self.zapTo() + + def removeTimer(self, timer): + timer.afterEvent = AFTEREVENT.NONE + self.session.nav.RecordTimer.removeEntry(timer) + self["key_green"].setText(_("Add timer")) + self.key_green_choice = self.ADD_TIMER + + def disableTimer(self, timer): + timer.disable() + self.session.nav.RecordTimer.timeChanged(timer) + self["key_green"].setText(_("Add timer")) + self.key_green_choice = self.ADD_TIMER + + def timerAdd(self): + cur = self["list"].getCurrent() + event = cur[0] + if event is None: + return + eventid = event.getEventId() + serviceref = cur[1] + refstr = ':'.join(serviceref.ref.toString().split(':')[:11]) + for timer in self.session.nav.RecordTimer.timer_list: + if timer.eit == eventid and ':'.join(timer.service_ref.ref.toString().split(':')[:11]) == refstr: + menu = [(_("Delete timer"), "delete"),(_("Edit timer"), "edit")] + buttons = ["red", "green"] + if not timer.isRunning(): + menu.append((_("Disable timer"), "disable")) + buttons.append("yellow") + menu.append((_("Timer Overview"), "timereditlist")) + def timerAction(choice): + if choice is not None: + if choice[1] == "delete": + self.removeTimer(timer) + elif choice[1] == "edit": + self.session.open(TimerEntry, timer) + elif choice[1] == "disable": + self.disableTimer(timer) + elif choice[1] == "timereditlist": + self.session.open(TimerEditList) + self.session.openWithCallback(timerAction, ChoiceBox, title=_("Select action for timer %s:") % event.getEventName(), list=menu, keys=buttons) + break + else: + newEntry = RecordTimerEntry(serviceref, checkOldTimers = True, *parseEvent(event)) + self.session.openWithCallback(self.finishedTimerAdd, TimerEntry, newEntry) + + def finishedTimerAdd(self, answer): + print "finished add" + if answer[0]: + entry = answer[1] + simulTimerList = self.session.nav.RecordTimer.record(entry) + if simulTimerList is not None: + for x in simulTimerList: + if x.setAutoincreaseEnd(entry): + self.session.nav.RecordTimer.timeChanged(x) + simulTimerList = self.session.nav.RecordTimer.record(entry) + if simulTimerList is not None: + if not entry.repeated and not config.recording.margin_before.value and not config.recording.margin_after.value and len(simulTimerList) > 1: + change_time = False + conflict_begin = simulTimerList[1].begin + conflict_end = simulTimerList[1].end + if conflict_begin == entry.end: + entry.end -= 30 + change_time = True + elif entry.begin == conflict_end: + entry.begin += 30 + change_time = True + if change_time: + simulTimerList = self.session.nav.RecordTimer.record(entry) + if simulTimerList is not None: + self.session.openWithCallback(self.finishSanityCorrection, TimerSanityConflict, simulTimerList) + self["key_green"].setText(_("Change timer")) + self.key_green_choice = self.REMOVE_TIMER + else: + self["key_green"].setText(_("Add timer")) + self.key_green_choice = self.ADD_TIMER + print "Timeredit aborted" + + def finishSanityCorrection(self, answer): + self.finishedTimerAdd(answer) + + def onSelectionChanged(self): + cur = self["list"].getCurrent() + event = cur[0] + self["Event"].newEvent(event) + + if cur[1] is None or cur[1].getServiceName() == "": + if self.key_green_choice != self.EMPTY: + self["key_green"].setText("") + self.key_green_choice = self.EMPTY + if self.key_red_choice != self.EMPTY: + self["key_red"].setText("") + self.key_red_choice = self.EMPTY + return + + servicerefref = cur[1].ref + self["Service"].newService(servicerefref) + + if self.key_red_choice != self.ZAP: + self["key_red"].setText(_("Zap")) + self.key_red_choice = self.ZAP + + if not event: + if self.key_green_choice != self.EMPTY: + self["key_green"].setText("") + self.key_green_choice = self.EMPTY + return + + eventid = event.getEventId() + refstr = ':'.join(servicerefref.toString().split(':')[:11]) + isRecordEvent = False + for timer in self.session.nav.RecordTimer.timer_list: + if timer.eit == eventid and ':'.join(timer.service_ref.ref.toString().split(':')[:11]) == refstr: + isRecordEvent = True + break + if isRecordEvent and self.key_green_choice != self.REMOVE_TIMER: + self["key_green"].setText(_("Change timer")) + self.key_green_choice = self.REMOVE_TIMER + elif not isRecordEvent and self.key_green_choice != self.ADD_TIMER: + self["key_green"].setText(_("Add timer")) + self.key_green_choice = self.ADD_TIMER + + def moveTimeLines(self, force=False): + self.updateTimelineTimer.start((60 - (int(time()) % 60)) * 1000) #keep syncronised + self["timeline_text"].setEntries(self["list"], self["timeline_now"], self.time_lines, force) + self["list"].l.invalidate() # not needed when the zPosition in the skin is correct! ????? diff --git a/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpgSetup.py b/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpgSetup.py new file mode 100644 index 0000000..779ea55 --- /dev/null +++ b/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpgSetup.py @@ -0,0 +1,67 @@ +from Screens.Screen import Screen +from Screens.MessageBox import MessageBox +from Screens.Console import Console +from Components.ActionMap import ActionMap, NumberActionMap +from Components.Pixmap import Pixmap +from Components.Label import Label +from Components.MenuList import MenuList +from Components.PluginComponent import plugins +from Components.config import config, ConfigSubsection, ConfigInteger, ConfigSelection, ConfigText, ConfigEnableDisable, KEY_LEFT, KEY_RIGHT, KEY_0, getConfigListEntry, ConfigNumber +from Components.ConfigList import ConfigList, ConfigListScreen + +from Tools.Directories import * + +class GraphMultiEpgSetup(Screen, ConfigListScreen): + skin = """ + + + + + + + + + """ + + def __init__(self, session, args = None): + Screen.__init__(self, session) + self.setTitle(_("GraphMultiEpg Settings")) + + self["oktext"] = Label(_("OK")) + self["canceltext"] = Label(_("Cancel")) + + self["actions"] = ActionMap(["SetupActions", "MenuActions"], + { + "ok": self.keySave, + "save": self.keySave, + "cancel": self.keyCancel, + "menu": self.closeRecursive, + }, -1) + + self.onChangedEntry = [ ] + self.session = session + self.list = [] + ConfigListScreen.__init__(self, self.list, session = self.session) + self.createSetup() + + def createSetup(self): + print "Creating Graph Epg Setup" + self.list = [ ] + self.list.append(getConfigListEntry(_("Event font size (relative to skin size)"), config.misc.graph_mepg.ev_fontsize)) + self.list.append(getConfigListEntry(_("Time scale"), config.misc.graph_mepg.prev_time_period)) + self.list.append(getConfigListEntry(_("Items per page "), config.misc.graph_mepg.items_per_page)) + self.list.append(getConfigListEntry(_("Items per page for list screen"), config.misc.graph_mepg.items_per_page_listscreen)) + self.list.append(getConfigListEntry(_("Start with list screen"), config.misc.graph_mepg.default_mode)) + self.list.append(getConfigListEntry(_("Skip empty services"), config.misc.graph_mepg.overjump)) + self.list.append(getConfigListEntry(_("Service title mode"), config.misc.graph_mepg.servicetitle_mode)) + self.list.append(getConfigListEntry(_("Round start time on"), config.misc.graph_mepg.roundTo)) + self.list.append(getConfigListEntry(_("Function of OK button"), config.misc.graph_mepg.OKButton)) + self.list.append(getConfigListEntry(_("Alignment of service names"), config.misc.graph_mepg.servicename_alignment)) + self.list.append(getConfigListEntry(_("Alignment of events"), config.misc.graph_mepg.event_alignment)) + self.list.append(getConfigListEntry(_("Center time-labels and remove date"), config.misc.graph_mepg.center_timeline)) + self.list.append(getConfigListEntry(_("Show in extensions menu"), config.misc.graph_mepg.extension_menu)) + + config.misc.graph_mepg.extension_menu.addNotifier(plugins.reloadPlugins) + + self["config"].list = self.list + self["config"].l.setList(self.list) diff --git a/lib/python/Plugins/Extensions/GraphMultiEPG/Makefile.am b/lib/python/Plugins/Extensions/GraphMultiEPG/Makefile.am new file mode 100644 index 0000000..24ec8ec --- /dev/null +++ b/lib/python/Plugins/Extensions/GraphMultiEPG/Makefile.am @@ -0,0 +1,11 @@ +installdir = $(pkglibdir)/python/Plugins/Extensions/GraphMultiEPG + +SUBDIRS = meta + +install_PYTHON = \ + __init__.py \ + plugin.py \ + GraphMultiEpg.py \ + GraphMultiEpgSetup.py + + diff --git a/lib/python/Plugins/Extensions/GraphMultiEPG/__init__.py b/lib/python/Plugins/Extensions/GraphMultiEPG/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/Extensions/GraphMultiEPG/meta/Makefile.am b/lib/python/Plugins/Extensions/GraphMultiEPG/meta/Makefile.am new file mode 100644 index 0000000..a11d35d --- /dev/null +++ b/lib/python/Plugins/Extensions/GraphMultiEPG/meta/Makefile.am @@ -0,0 +1,5 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_graphmultiepg.xml + +EXTRA_DIST = graphmultiepg_de.jpg graphmultiepg_en.jpg diff --git a/lib/python/Plugins/Extensions/GraphMultiEPG/meta/graphmultiepg_de.jpg b/lib/python/Plugins/Extensions/GraphMultiEPG/meta/graphmultiepg_de.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b68d095a916dcd316ee8cd764cce2f47ed4337ff GIT binary patch literal 141965 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 uWO0{yf=#$m@S?(qM2_~9t#e`SfnEbAW<+<-g) literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/Extensions/GraphMultiEPG/meta/graphmultiepg_en.jpg b/lib/python/Plugins/Extensions/GraphMultiEPG/meta/graphmultiepg_en.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6953f27c4bcc9cda02d0f8265f9053852aa0ed66 GIT binary patch literal 141392 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�ZiXBMw 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 literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/Extensions/GraphMultiEPG/meta/plugin_graphmultiepg.xml b/lib/python/Plugins/Extensions/GraphMultiEPG/meta/plugin_graphmultiepg.xml new file mode 100644 index 0000000..d3a2edf --- /dev/null +++ b/lib/python/Plugins/Extensions/GraphMultiEPG/meta/plugin_graphmultiepg.xml @@ -0,0 +1,17 @@ + + + + + + + Dream Multimedia + GraphMultiEPG + enigma2-plugin-extensions-graphmultiepg + GraphMultiEPG shows a graphical timeline EPG + GraphMultiEPG shows a graphical timeline EPG.\nShows a nice overview of all running und upcoming tv shows. + + + + + + diff --git a/lib/python/Plugins/Extensions/GraphMultiEPG/plugin.py b/lib/python/Plugins/Extensions/GraphMultiEPG/plugin.py new file mode 100644 index 0000000..0b33c4a --- /dev/null +++ b/lib/python/Plugins/Extensions/GraphMultiEPG/plugin.py @@ -0,0 +1,162 @@ +from Plugins.Plugin import PluginDescriptor +from GraphMultiEpg import GraphMultiEPG +from Screens.ChannelSelection import BouquetSelector +from enigma import eServiceCenter, eServiceReference +from ServiceReference import ServiceReference +from Screens.Screen import Screen +from Components.ActionMap import ActionMap +from Components.MenuList import MenuList +from Components.config import config + +Session = None +Servicelist = None +bouquetSel = None +epg_bouquet = None +epg = None + +class SelectBouquet(Screen): + skin = """ + + """ + + def __init__(self, session, bouquets, curbouquet, direction, enableWrapAround=True): + Screen.__init__(self, session) + + self["actions"] = ActionMap(["OkCancelActions", "EPGSelectActions"], + { + "ok": self.okbuttonClick, + "cancel": self.cancelClick, + "nextBouquet": self.up, + "prevBouquet": self.down + }) + entrys = [ (x[0], x[1]) for x in bouquets ] + self["menu"] = MenuList(entrys, enableWrapAround) + idx = 0 + for x in bouquets: + if x[1] == curbouquet: + break + idx += 1 + self.idx = idx + self.dir = direction + self.onShow.append(self.__onShow) + + def __onShow(self): + self["menu"].moveToIndex(self.idx) + if self.dir == -1: + self.down() + else: + self.up() + + def getCurrent(self): + cur = self["menu"].getCurrent() + return cur and cur[1] + + def okbuttonClick(self): + self.close(self.getCurrent()) + + def up(self): + self["menu"].up() + + def down(self): + self["menu"].down() + + def cancelClick(self): + self.close(None) + +def zapToService(service, preview = False, zapback = False): + if Servicelist.startServiceRef is None: + Servicelist.startServiceRef = Session.nav.getCurrentlyPlayingServiceReference() + if not service is None: + if not preview and not zapback: + if Servicelist.getRoot() != epg_bouquet: + Servicelist.clearPath() + if Servicelist.bouquet_root != epg_bouquet: + Servicelist.enterPath(Servicelist.bouquet_root) + Servicelist.enterPath(epg_bouquet) + Servicelist.setCurrentSelection(service) + if not zapback or preview: + Servicelist.zap(not preview, preview) + if (Servicelist.dopipzap or zapback) and not preview: + Servicelist.zapBack() + if not preview: + Servicelist.startServiceRef = None + Servicelist.startRoot = None + +def getBouquetServices(bouquet): + services = [ ] + Servicelist = eServiceCenter.getInstance().list(bouquet) + if not Servicelist is None: + while True: + service = Servicelist.getNext() + if not service.valid(): #check if end of list + break + if service.flags & (eServiceReference.isDirectory | eServiceReference.isMarker): #ignore non playable services + continue + services.append(ServiceReference(service)) + return services + +def cleanup(): + global Session + Session = None + global Servicelist + Servicelist = None + global bouquets + bouquets = None + global epg_bouquet + epg_bouquet = None + global epg + epg = None + +def closed(ret=False): + cleanup() + +def onSelectBouquetClose(bouquet): + if not bouquet is None: + services = getBouquetServices(bouquet) + if len(services): + global epg_bouquet + epg_bouquet = bouquet + epg.setServices(services) + epg.setTitle(ServiceReference(epg_bouquet).getServiceName()) + +def changeBouquetCB(direction, epgcall): + global epg + epg = epgcall + Session.openWithCallback(onSelectBouquetClose, SelectBouquet, bouquets, epg_bouquet, direction) + +def main(session, servicelist = None, **kwargs): + global Session + Session = session + global Servicelist + Servicelist = servicelist + global bouquets + bouquets = Servicelist and Servicelist.getBouquetList() + global epg_bouquet + epg_bouquet = Servicelist and Servicelist.getRoot() + runGraphMultiEpg() + +def runGraphMultiEpg(): + global Servicelist + global bouquets + global epg_bouquet + if epg_bouquet is not None: + if len(bouquets) > 1 : + cb = changeBouquetCB + else: + cb = None + services = getBouquetServices(epg_bouquet) + Session.openWithCallback(reopen, GraphMultiEPG, services, zapToService, cb, ServiceReference(epg_bouquet).getServiceName()) + +def reopen(answer): + if answer is None: + runGraphMultiEpg() + else: + closed(answer) + +def Plugins(**kwargs): + name = _("Graphical Multi EPG") + descr = _("A graphical EPG for all services of an specific bouquet") + list = [(PluginDescriptor(name=name, description=descr, where = PluginDescriptor.WHERE_EVENTINFO, needsRestart = False, fnc=main))] + if config.misc.graph_mepg.extension_menu.value: + list.append(PluginDescriptor(name=name, description=descr, where = PluginDescriptor.WHERE_EXTENSIONSMENU, needsRestart = False, fnc=main)) + return list diff --git a/lib/python/Plugins/Extensions/Makefile.am b/lib/python/Plugins/Extensions/Makefile.am new file mode 100644 index 0000000..7a3a9be --- /dev/null +++ b/lib/python/Plugins/Extensions/Makefile.am @@ -0,0 +1,10 @@ +installdir = $(pkglibdir)/python/Plugins/Extensions + +SUBDIRS = TuxboxPlugins CutListEditor PicturePlayer MediaScanner MediaPlayer GraphMultiEPG SocketMMI DVDBurn Modem + +if HAVE_LIBDDVD +SUBDIRS += DVDPlayer +endif + +install_PYTHON = \ + __init__.py diff --git a/lib/python/Plugins/Extensions/MediaPlayer/Makefile.am b/lib/python/Plugins/Extensions/MediaPlayer/Makefile.am new file mode 100644 index 0000000..b99b29e --- /dev/null +++ b/lib/python/Plugins/Extensions/MediaPlayer/Makefile.am @@ -0,0 +1,6 @@ +installdir = $(pkglibdir)/python/Plugins/Extensions/MediaPlayer + +SUBDIRS = meta + +install_PYTHON = \ + __init__.py plugin.py settings.py diff --git a/lib/python/Plugins/Extensions/MediaPlayer/__init__.py b/lib/python/Plugins/Extensions/MediaPlayer/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/lib/python/Plugins/Extensions/MediaPlayer/__init__.py @@ -0,0 +1 @@ + diff --git a/lib/python/Plugins/Extensions/MediaPlayer/meta/Makefile.am b/lib/python/Plugins/Extensions/MediaPlayer/meta/Makefile.am new file mode 100644 index 0000000..e17f0bf --- /dev/null +++ b/lib/python/Plugins/Extensions/MediaPlayer/meta/Makefile.am @@ -0,0 +1,5 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_mediaplayer.xml + +EXTRA_DIST = mediaplayer_de.jpg mediaplayer_en.jpg diff --git a/lib/python/Plugins/Extensions/MediaPlayer/meta/mediaplayer_de.jpg b/lib/python/Plugins/Extensions/MediaPlayer/meta/mediaplayer_de.jpg new file mode 100644 index 0000000000000000000000000000000000000000..41a67c24e9d4284a2fe1cad5556d34e71a41542f GIT binary patch literal 131540 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 literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/Extensions/MediaPlayer/meta/mediaplayer_en.jpg b/lib/python/Plugins/Extensions/MediaPlayer/meta/mediaplayer_en.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6bfbbc5e9ae2d691e337ad7d1b7120bb2ffe2b2e GIT binary patch literal 128207 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 YJlBr-6R7Yu76W$nwf62me6=nA0Sl42qW}N^ literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/Extensions/MediaPlayer/meta/plugin_mediaplayer.xml b/lib/python/Plugins/Extensions/MediaPlayer/meta/plugin_mediaplayer.xml new file mode 100644 index 0000000..ffbb8e8 --- /dev/null +++ b/lib/python/Plugins/Extensions/MediaPlayer/meta/plugin_mediaplayer.xml @@ -0,0 +1,16 @@ + + + + + + Dream Multimedia + MediaPlayer + enigma2-plugin-extensions-mediaplayer + Plays your favorite music and videos + Mediaplayer plays your favorite music and videos.\nPlay all your favorite music and video files, organize them in playlists, view cover and album information. + + + + + + diff --git a/lib/python/Plugins/Extensions/MediaPlayer/plugin.py b/lib/python/Plugins/Extensions/MediaPlayer/plugin.py new file mode 100644 index 0000000..34fc4df --- /dev/null +++ b/lib/python/Plugins/Extensions/MediaPlayer/plugin.py @@ -0,0 +1,1128 @@ +import os +from time import strftime +from enigma import iPlayableService, eTimer, eServiceCenter, iServiceInformation, ePicLoad +from ServiceReference import ServiceReference +from Screens.Screen import Screen +from Screens.HelpMenu import HelpableScreen +from Screens.MessageBox import MessageBox +from Screens.InputBox import InputBox +from Screens.ChoiceBox import ChoiceBox +from Screens.InfoBar import InfoBar +from Screens.InfoBarGenerics import InfoBarSeek, InfoBarScreenSaver, InfoBarAudioSelection, InfoBarCueSheetSupport, InfoBarNotifications, InfoBarSubtitleSupport +from Components.ActionMap import NumberActionMap, HelpableActionMap +from Components.Label import Label +from Components.Pixmap import Pixmap,MultiPixmap +from Components.FileList import FileList +from Components.MediaPlayer import PlayList +from Components.MovieList import AUDIO_EXTENSIONS +from Components.ServicePosition import ServicePositionGauge +from Components.ServiceEventTracker import ServiceEventTracker, InfoBarBase +from Components.Playlist import PlaylistIOInternal, PlaylistIOM3U, PlaylistIOPLS +from Components.AVSwitch import AVSwitch +from Components.Harddisk import harddiskmanager +from Components.config import config +from Tools.Directories import fileExists, pathExists, resolveFilename, SCOPE_CONFIG, SCOPE_PLAYLIST, SCOPE_CURRENT_SKIN +from Tools.BoundFunction import boundFunction +from settings import MediaPlayerSettings +import random + +class MyPlayList(PlayList): + def __init__(self): + PlayList.__init__(self) + + def PlayListShuffle(self): + random.shuffle(self.list) + self.l.setList(self.list) + self.currPlaying = -1 + self.oldCurrPlaying = -1 + +class MediaPixmap(Pixmap): + def __init__(self): + Pixmap.__init__(self) + self.coverArtFileName = "" + self.picload = ePicLoad() + self.picload.PictureData.get().append(self.paintCoverArtPixmapCB) + self.coverFileNames = ["folder.png", "folder.jpg"] + + def applySkin(self, desktop, screen): + from Tools.LoadPixmap import LoadPixmap + noCoverFile = None + if self.skinAttributes is not None: + for (attrib, value) in self.skinAttributes: + if attrib == "pixmap": + noCoverFile = value + break + if noCoverFile is None: + noCoverFile = resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/no_coverArt.png") + self.noCoverPixmap = LoadPixmap(noCoverFile) + return Pixmap.applySkin(self, desktop, screen) + + def onShow(self): + Pixmap.onShow(self) + sc = AVSwitch().getFramebufferScale() + #0=Width 1=Height 2=Aspect 3=use_cache 4=resize_type 5=Background(#AARRGGBB) + self.picload.setPara((self.instance.size().width(), self.instance.size().height(), sc[0], sc[1], False, 1, "#00000000")) + + def paintCoverArtPixmapCB(self, picInfo=None): + ptr = self.picload.getData() + if ptr != None: + self.instance.setPixmap(ptr.__deref__()) + + def updateCoverArt(self, path): + while not path.endswith("/"): + path = path[:-1] + new_coverArtFileName = None + for filename in self.coverFileNames: + if fileExists(path + filename): + new_coverArtFileName = path + filename + if self.coverArtFileName != new_coverArtFileName: + self.coverArtFileName = new_coverArtFileName + if new_coverArtFileName: + self.picload.startDecode(self.coverArtFileName) + else: + self.showDefaultCover() + + def showDefaultCover(self): + self.instance.setPixmap(self.noCoverPixmap) + + def embeddedCoverArt(self): + print "[embeddedCoverArt] found" + self.coverArtFileName = "/tmp/.id3coverart" + self.picload.startDecode(self.coverArtFileName) + +class MediaPlayerInfoBar(Screen): + + def __init__(self, session): + Screen.__init__(self, session) + self.skinName = "MoviePlayer" + +class MediaPlayer(Screen, InfoBarBase, InfoBarScreenSaver, InfoBarSeek, InfoBarAudioSelection, InfoBarCueSheetSupport, InfoBarNotifications, InfoBarSubtitleSupport, HelpableScreen): + ALLOW_SUSPEND = True + ENABLE_RESUME_SUPPORT = True + + def __init__(self, session, args = None): + Screen.__init__(self, session) + InfoBarAudioSelection.__init__(self) + InfoBarCueSheetSupport.__init__(self, actionmap = "MediaPlayerCueSheetActions") + InfoBarNotifications.__init__(self) + InfoBarBase.__init__(self) + InfoBarScreenSaver.__init__(self) + InfoBarSubtitleSupport.__init__(self) + HelpableScreen.__init__(self) + self.summary = None + self.oldService = self.session.nav.getCurrentlyPlayingServiceReference() + self.session.nav.stopService() + + self.playlistparsers = {} + self.addPlaylistParser(PlaylistIOM3U, "m3u") + self.addPlaylistParser(PlaylistIOPLS, "pls") + self.addPlaylistParser(PlaylistIOInternal, "e2pls") + + # 'None' is magic to start at the list of mountpoints + defaultDir = config.mediaplayer.defaultDir.getValue() + self.filelist = FileList(defaultDir, matchingPattern = "(?i)^.*\.(mp2|mp3|ogg|ts|mts|m2ts|wav|wave|m3u|pls|e2pls|mpg|vob|avi|divx|m4v|mkv|mp4|m4a|dat|flac|flv|mov|dts|3gp|3g2|asf|wmv|wma)", useServiceRef = True, additionalExtensions = "4098:m3u 4098:e2pls 4098:pls") + self["filelist"] = self.filelist + + self.playlist = MyPlayList() + self.is_closing = False + self.delname = "" + self.playlistname = "" + self["playlist"] = self.playlist + + self["PositionGauge"] = ServicePositionGauge(self.session.nav) + + self["currenttext"] = Label("") + + self["artisttext"] = Label(_("Artist")+':') + self["artist"] = Label("") + self["titletext"] = Label(_("Title")+':') + self["title"] = Label("") + self["albumtext"] = Label(_("Album")+':') + self["album"] = Label("") + self["yeartext"] = Label(_("Year")+':') + self["year"] = Label("") + self["genretext"] = Label(_("Genre")+':') + self["genre"] = Label("") + self["coverArt"] = MediaPixmap() + self["repeat"] = MultiPixmap() + + self.seek_target = None + + try: + from Plugins.SystemPlugins.Hotplug.plugin import hotplugNotifier + hotplugNotifier.append(self.hotplugCB) + except Exception, ex: + print "[MediaPlayer] No hotplug support", ex + + class MoviePlayerActionMap(NumberActionMap): + def __init__(self, player, contexts = [ ], actions = { }, prio=0): + NumberActionMap.__init__(self, contexts, actions, prio) + self.player = player + + def action(self, contexts, action): + self.player.show() + return NumberActionMap.action(self, contexts, action) + + self["OkCancelActions"] = HelpableActionMap(self, "OkCancelActions", + { + "ok": (self.ok, _("Add file to playlist")), + "cancel": (self.exit, _("Exit mediaplayer")), + }, -2) + + self["MediaPlayerActions"] = HelpableActionMap(self, "MediaPlayerActions", + { + "play": (self.xplayEntry, _("Play entry")), + "pause": (self.pauseEntry, _("Pause")), + "stop": (self.stopEntry, _("Stop entry")), + "previous": (self.previousMarkOrEntry, _("Play from previous mark or playlist entry")), + "next": (self.nextMarkOrEntry, _("Play from next mark or playlist entry")), + "menu": (self.showMenu, _("Menu")), + "skipListbegin": (self.skip_listbegin, _("Jump to beginning of list")), + "skipListend": (self.skip_listend, _("Jump to end of list")), + "prevBouquet": (self.switchLists, _("Switch between filelist/playlist")), + "nextBouquet": (self.switchLists, _("Switch between filelist/playlist")), + "delete": (self.deletePlaylistEntry, _("Delete playlist entry")), + "shift_stop": (self.clear_playlist, _("Clear playlist")), + "shift_record": (self.playlist.PlayListShuffle, _("Shuffle playlist")), + "subtitles": (self.subtitleSelection, _("Subtitle selection")), + }, -2) + + self["InfobarEPGActions"] = HelpableActionMap(self, "InfobarEPGActions", + { + "showEventInfo": (self.showEventInformation, _("show event details")), + }) + + self["actions"] = MoviePlayerActionMap(self, ["DirectionActions"], + { + "right": self.rightDown, + "rightRepeated": self.doNothing, + "rightUp": self.rightUp, + "left": self.leftDown, + "leftRepeated": self.doNothing, + "leftUp": self.leftUp, + + "up": self.up, + "upRepeated": self.up, + "upUp": self.doNothing, + "down": self.down, + "downRepeated": self.down, + "downUp": self.doNothing, + }, -2) + + InfoBarSeek.__init__(self, actionmap = "MediaPlayerSeekActions") + + self.mediaPlayerInfoBar = self.session.instantiateDialog(MediaPlayerInfoBar) + + self.onClose.append(self.delMPTimer) + self.onClose.append(self.__onClose) + self.onShow.append(self.timerHideMediaPlayerInfoBar) + + self.righttimer = False + self.rightKeyTimer = eTimer() + self.rightKeyTimer.callback.append(self.rightTimerFire) + + self.lefttimer = False + self.leftKeyTimer = eTimer() + self.leftKeyTimer.callback.append(self.leftTimerFire) + + self.hideMediaPlayerInfoBar = eTimer() + self.hideMediaPlayerInfoBar.callback.append(self.timerHideMediaPlayerInfoBar) + + self.currList = "filelist" + self.isAudioCD = False + self.ext = None + self.AudioCD_albuminfo = {} + self.cdAudioTrackFiles = [] + self.onShown.append(self.applySettings) + + self.playlistIOInternal = PlaylistIOInternal() + list = self.playlistIOInternal.open(resolveFilename(SCOPE_CONFIG, "playlist.e2pls")) + if list: + for x in list: + self.playlist.addFile(x.ref) + self.playlist.updateList() + + self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + { + iPlayableService.evUpdatedInfo: self.__evUpdatedInfo, + iPlayableService.evUser+10: self.__evAudioDecodeError, + iPlayableService.evUser+11: self.__evVideoDecodeError, + iPlayableService.evUser+12: self.__evPluginError, + iPlayableService.evUser+13: self["coverArt"].embeddedCoverArt + }) + + def hideAndInfoBar(self): + self.hide() + self.mediaPlayerInfoBar.show() + if config.mediaplayer.alwaysHideInfoBar.value or self.ext not in AUDIO_EXTENSIONS and not self.isAudioCD: + self.hideMediaPlayerInfoBar.start(5000, True) + + def timerHideMediaPlayerInfoBar(self): + self.hideMediaPlayerInfoBar.stop() + self.mediaPlayerInfoBar.hide() + + def doNothing(self): + pass + + def createSummary(self): + return MediaPlayerLCDScreen + + def exit(self): + if self.mediaPlayerInfoBar.shown: + self.timerHideMediaPlayerInfoBar() + else: + self.session.openWithCallback(self.exitCallback, MessageBox, _("Exit media player?"), simple = not self.shown) + + def exitCallback(self, answer): + if answer: + self.playlistIOInternal.clear() + for x in self.playlist.list: + self.playlistIOInternal.addService(ServiceReference(x[0])) + if self.savePlaylistOnExit: + try: + self.playlistIOInternal.save(resolveFilename(SCOPE_CONFIG, "playlist.e2pls")) + except IOError: + print "couldn't save playlist.e2pls" + if config.mediaplayer.saveDirOnExit.getValue(): + config.mediaplayer.defaultDir.setValue(self.filelist.getCurrentDirectory()) + config.mediaplayer.defaultDir.save() + try: + from Plugins.SystemPlugins.Hotplug.plugin import hotplugNotifier + hotplugNotifier.remove(self.hotplugCB) + except: + pass + del self["coverArt"].picload + self.close() + + def checkSkipShowHideLock(self): + self.updatedSeekState() + + def doEofInternal(self, playing): + if playing: + self.nextEntry() + else: + self.show() + + def __onClose(self): + self.mediaPlayerInfoBar.doClose() + self.session.nav.playService(self.oldService) + + def __evUpdatedInfo(self): + currPlay = self.session.nav.getCurrentService() + sTagTrackNumber = currPlay.info().getInfo(iServiceInformation.sTagTrackNumber) + sTagTrackCount = currPlay.info().getInfo(iServiceInformation.sTagTrackCount) + sTagTitle = currPlay.info().getInfoString(iServiceInformation.sTagTitle) + print "[__evUpdatedInfo] title %d of %d (%s)" % (sTagTrackNumber, sTagTrackCount, sTagTitle) + self.readTitleInformation() + + def __evAudioDecodeError(self): + currPlay = self.session.nav.getCurrentService() + sTagAudioCodec = currPlay.info().getInfoString(iServiceInformation.sTagAudioCodec) + print "[__evAudioDecodeError] audio-codec %s can't be decoded by hardware" % (sTagAudioCodec) + self.session.open(MessageBox, _("This receiver cannot decode %s streams!") % sTagAudioCodec, type = MessageBox.TYPE_INFO,timeout = 20 ) + + def __evVideoDecodeError(self): + currPlay = self.session.nav.getCurrentService() + sTagVideoCodec = currPlay.info().getInfoString(iServiceInformation.sTagVideoCodec) + print "[__evVideoDecodeError] video-codec %s can't be decoded by hardware" % (sTagVideoCodec) + self.session.open(MessageBox, _("This receiver cannot decode %s streams!") % sTagVideoCodec, type = MessageBox.TYPE_INFO,timeout = 20 ) + + def __evPluginError(self): + currPlay = self.session.nav.getCurrentService() + message = currPlay.info().getInfoString(iServiceInformation.sUser+12) + print "[__evPluginError]" , message + self.session.open(MessageBox, message, type = MessageBox.TYPE_INFO,timeout = 20 ) + + def delMPTimer(self): + del self.rightKeyTimer + del self.leftKeyTimer + + def readTitleInformation(self): + currPlay = self.session.nav.getCurrentService() + if currPlay is not None: + sTitle = currPlay.info().getInfoString(iServiceInformation.sTagTitle) + sAlbum = currPlay.info().getInfoString(iServiceInformation.sTagAlbum) + sGenre = currPlay.info().getInfoString(iServiceInformation.sTagGenre) + sArtist = currPlay.info().getInfoString(iServiceInformation.sTagArtist) + sYear = currPlay.info().getInfoString(iServiceInformation.sTagDate) + + if sTitle == "": + if not self.isAudioCD: + sTitle = currPlay.info().getName().split('/')[-1] + else: + sTitle = self.playlist.getServiceRefList()[self.playlist.getCurrentIndex()].getName() + + if self.AudioCD_albuminfo: + if sAlbum == "" and "title" in self.AudioCD_albuminfo: + sAlbum = self.AudioCD_albuminfo["title"] + if sGenre == "" and "genre" in self.AudioCD_albuminfo: + sGenre = self.AudioCD_albuminfo["genre"] + if sArtist == "" and "artist" in self.AudioCD_albuminfo: + sArtist = self.AudioCD_albuminfo["artist"] + if "year" in self.AudioCD_albuminfo: + sYear = self.AudioCD_albuminfo["year"] + + self.updateMusicInformation( sArtist, sTitle, sAlbum, sYear, sGenre, clear = True ) + else: + self.updateMusicInformation() + + def updateMusicInformation(self, artist = "", title = "", album = "", year = "", genre = "", clear = False): + self.updateSingleMusicInformation("artist", artist, clear) + self.updateSingleMusicInformation("title", title, clear) + self.updateSingleMusicInformation("album", album, clear) + self.updateSingleMusicInformation("year", year, clear) + self.updateSingleMusicInformation("genre", genre, clear) + + def updateSingleMusicInformation(self, name, info, clear): + if info != "" or clear: + if self[name].getText() != info: + self[name].setText(info) + + def leftDown(self): + self.lefttimer = True + self.leftKeyTimer.start(1000) + + def rightDown(self): + self.righttimer = True + self.rightKeyTimer.start(1000) + + def leftUp(self): + if self.lefttimer: + self.leftKeyTimer.stop() + self.lefttimer = False + self[self.currList].pageUp() + self.updateCurrentInfo() + + def rightUp(self): + if self.righttimer: + self.rightKeyTimer.stop() + self.righttimer = False + self[self.currList].pageDown() + self.updateCurrentInfo() + + def leftTimerFire(self): + self.leftKeyTimer.stop() + self.lefttimer = False + self.switchToFileList() + + def rightTimerFire(self): + self.rightKeyTimer.stop() + self.righttimer = False + self.switchToPlayList() + + def switchLists(self): + if self.currList == "filelist": + self.switchToPlayList() + return + self.switchToFileList() + + def switchToFileList(self): + self.currList = "filelist" + self.filelist.selectionEnabled(1) + self.playlist.selectionEnabled(0) + self.updateCurrentInfo() + + def switchToPlayList(self): + if len(self.playlist) != 0: + self.currList = "playlist" + self.filelist.selectionEnabled(0) + self.playlist.selectionEnabled(1) + self.updateCurrentInfo() + + def up(self): + self[self.currList].up() + self.updateCurrentInfo() + + def down(self): + self[self.currList].down() + self.updateCurrentInfo() + + def showAfterSeek(self): + if not self.shown: + self.hideAndInfoBar() + + def showAfterCuesheetOperation(self): + self.show() + + def hideAfterResume(self): + self.hideAndInfoBar() + + def getIdentifier(self, ref): + if self.isAudioCD: + return ref.getName() + else: + text = ref.getPath() + return text.split('/')[-1] + + # FIXME: maybe this code can be optimized + def updateCurrentInfo(self): + text = "" + if self.currList == "filelist": + idx = self.filelist.getSelectionIndex() + r = self.filelist.list[idx] + text = r[1][7] + if r[0][1] == True: + if len(text) < 2: + text += " " + if text[:2] != "..": + text = "/" + text + self.summaries.setText(text,1) + + idx += 1 + if idx < len(self.filelist.list): + r = self.filelist.list[idx] + text = r[1][7] + if r[0][1] == True: + text = "/" + text + self.summaries.setText(text,3) + else: + self.summaries.setText(" ",3) + + idx += 1 + if idx < len(self.filelist.list): + r = self.filelist.list[idx] + text = r[1][7] + if r[0][1] == True: + text = "/" + text + self.summaries.setText(text,4) + else: + self.summaries.setText(" ",4) + + text = "" + if not self.filelist.canDescent(): + r = self.filelist.getServiceRef() + if r is None: + return + text = r.getPath() + self["currenttext"].setText(os.path.basename(text)) + + if self.currList == "playlist": + t = self.playlist.getSelection() + if t is None: + return + #display current selected entry on LCD + text = self.getIdentifier(t) + self.summaries.setText(text,1) + self["currenttext"].setText(text) + idx = self.playlist.getSelectionIndex() + idx += 1 + if idx < len(self.playlist): + currref = self.playlist.getServiceRefList()[idx] + text = self.getIdentifier(currref) + self.summaries.setText(text,3) + else: + self.summaries.setText(" ",3) + + idx += 1 + if idx < len(self.playlist): + currref = self.playlist.getServiceRefList()[idx] + text = self.getIdentifier(currref) + self.summaries.setText(text,4) + else: + self.summaries.setText(" ",4) + + def ok(self): + if self.currList == "filelist": + if self.filelist.canDescent(): + self.filelist.descent() + self.updateCurrentInfo() + else: + self.copyFile() + + if self.currList == "playlist": + if self.playlist.getCurrentIndex() == self.playlist.getSelectionIndex() and not self.playlist.isStopped(): + if self.shown: + self.hideAndInfoBar() + elif self.mediaPlayerInfoBar.shown: + self.mediaPlayerInfoBar.hide() + self.hideMediaPlayerInfoBar.stop() + if self.ext in AUDIO_EXTENSIONS or self.isAudioCD: + self.show() + else: + self.mediaPlayerInfoBar.show() + else: + self.changeEntry(self.playlist.getSelectionIndex()) + + def showMenu(self): + menu = [] + if len(self.cdAudioTrackFiles): + menu.insert(0,(_("Play audio-CD..."), "audiocd")) + if self.currList == "filelist": + if self.filelist.canDescent(): + menu.append((_("Add directory to playlist"), "copydir")) + else: + menu.append((_("Add files to playlist"), "copyfiles")) + menu.append((_("Switch to playlist"), "playlist")) + if config.usage.setup_level.index >= 1: # intermediate+ + menu.append((_("Delete file"), "deletefile")) + else: + menu.append((_("Switch to filelist"), "filelist")) + menu.append((_("Clear playlist"), "clear")) + menu.append((_("Delete entry"), "deleteentry")) + if config.usage.setup_level.index >= 1: # intermediate+ + menu.append((_("Shuffle playlist"), "shuffle")) + menu.append((_("Hide player"), "hide")); + menu.append((_("Load playlist"), "loadplaylist")); + if config.usage.setup_level.index >= 1: # intermediate+ + menu.append((_("Save playlist"), "saveplaylist")); + menu.append((_("Delete saved playlist"), "deleteplaylist")); + menu.append((_("Edit settings"), "settings")) + self.timerHideMediaPlayerInfoBar() + self.session.openWithCallback(self.menuCallback, ChoiceBox, title="", list=menu) + + def menuCallback(self, choice): + self.show() + if choice is None: + return + + if choice[1] == "copydir": + self.copyDirectory(self.filelist.getSelection()[0]) + elif choice[1] == "copyfiles": + self.copyDirectory(os.path.dirname(self.filelist.getSelection()[0].getPath()) + "/", recursive = False) + elif choice[1] == "playlist": + self.switchToPlayList() + elif choice[1] == "filelist": + self.switchToFileList() + elif choice[1] == "deleteentry": + if self.playlist.getSelectionIndex() == self.playlist.getCurrentIndex(): + self.stopEntry() + self.deleteEntry() + elif choice[1] == "clear": + self.clear_playlist() + elif choice[1] == "hide": + self.hideAndInfoBar() + elif choice[1] == "saveplaylist": + self.save_playlist() + elif choice[1] == "loadplaylist": + self.load_playlist() + elif choice[1] == "deleteplaylist": + self.delete_saved_playlist() + elif choice[1] == "shuffle": + self.playlist.PlayListShuffle() + elif choice[1] == "deletefile": + self.deleteFile() + elif choice[1] == "settings": + self.session.openWithCallback(self.applySettings, MediaPlayerSettings, self) + elif choice[1] == "audiocd": + self.playAudioCD() + + def playAudioCD(self): + from enigma import eServiceReference + if len(self.cdAudioTrackFiles): + self.playlist.clear() + self.savePlaylistOnExit = False + self.isAudioCD = True + for file in self.cdAudioTrackFiles: + ref = eServiceReference(4097, 0, file) + self.playlist.addFile(ref) + try: + from Plugins.Extensions.CDInfo.plugin import Query + cdinfo = Query(self) + cdinfo.scan() + except ImportError: + pass # we can live without CDInfo + self.changeEntry(0) + self.switchToPlayList() + + def applySettings(self): + self.savePlaylistOnExit = config.mediaplayer.savePlaylistOnExit.getValue() + if config.mediaplayer.repeat.getValue() == True: + self["repeat"].setPixmapNum(1) + else: + self["repeat"].setPixmapNum(0) + + def showEventInformation(self): + from Screens.EventView import EventViewSimple + from ServiceReference import ServiceReference + evt = self[self.currList].getCurrentEvent() + if evt: + self.session.open(EventViewSimple, evt, ServiceReference(self.getCurrent())) + + # also works on filelist (?) + def getCurrent(self): + return self["playlist"].getCurrent() + + def deletePlaylistEntry(self): + if self.currList == "playlist": + if self.playlist.getSelectionIndex() == self.playlist.getCurrentIndex(): + self.stopEntry() + self.deleteEntry() + + def skip_listbegin(self): + if self.currList == "filelist": + self.filelist.moveToIndex(0) + else: + self.playlist.moveToIndex(0) + self.updateCurrentInfo() + + def skip_listend(self): + if self.currList == "filelist": + idx = len(self.filelist.list) + self.filelist.moveToIndex(idx - 1) + else: + self.playlist.moveToIndex(len(self.playlist)-1) + self.updateCurrentInfo() + + def save_playlist(self): + self.session.openWithCallback(self.save_playlist2,InputBox, title=_("Please enter filename (empty = use current date)"),windowTitle = _("Save playlist"), text=self.playlistname) + + def save_playlist2(self, name): + if name is not None: + name = name.strip() + if name == "": + name = strftime("%y%m%d_%H%M%S") + self.playlistname = name + name += ".e2pls" + self.playlistIOInternal.clear() + for x in self.playlist.list: + self.playlistIOInternal.addService(ServiceReference(x[0])) + self.playlistIOInternal.save(resolveFilename(SCOPE_PLAYLIST) + name) + + def load_playlist(self): + listpath = [] + playlistdir = resolveFilename(SCOPE_PLAYLIST) + try: + for i in os.listdir(playlistdir): + listpath.append((i,playlistdir + i)) + except IOError,e: + print "Error while scanning subdirs ",e + if config.mediaplayer.sortPlaylists.value: + listpath.sort() + self.session.openWithCallback(self.PlaylistSelected, ChoiceBox, title=_("Please select a playlist..."), list = listpath) + + def PlaylistSelected(self,path): + if path is not None: + self.playlistname = path[0].rsplit('.',1)[-2] + self.clear_playlist() + extension = path[0].rsplit('.',1)[-1] + if self.playlistparsers.has_key(extension): + playlist = self.playlistparsers[extension]() + list = playlist.open(path[1]) + for x in list: + self.playlist.addFile(x.ref) + self.playlist.updateList() + + def delete_saved_playlist(self): + listpath = [] + playlistdir = resolveFilename(SCOPE_PLAYLIST) + try: + for i in os.listdir(playlistdir): + listpath.append((i,playlistdir + i)) + except IOError,e: + print "Error while scanning subdirs ",e + if config.mediaplayer.sortPlaylists.value: + listpath.sort() + self.session.openWithCallback(self.DeletePlaylistSelected, ChoiceBox, title=_("Please select a playlist to delete..."), list = listpath) + + def DeletePlaylistSelected(self,path): + if path is not None: + self.delname = path[1] + self.session.openWithCallback(self.deleteConfirmed, MessageBox, _("Do you really want to delete %s?") % (path[1])) + + def deleteConfirmed(self, confirmed): + if confirmed: + try: + os.remove(self.delname) + except OSError,e: + print "delete failed:", e + self.session.open(MessageBox, _("Delete failed!"), MessageBox.TYPE_ERROR) + + def clear_playlist(self): + self.isAudioCD = False + self.stopEntry() + self.playlist.clear() + self.switchToFileList() + + def copyDirectory(self, directory, recursive = True): + print "copyDirectory", directory + if directory == '/': + print "refusing to operate on /" + return + filelist = FileList(directory, useServiceRef = True, showMountpoints = False, isTop = True) + + for x in filelist.getFileList(): + if x[0][1] == True: #isDir + if recursive: + if x[0][0] != directory: + self.copyDirectory(x[0][0]) + elif filelist.getServiceRef() and filelist.getServiceRef().type == 4097: + self.playlist.addFile(x[0][0]) + self.playlist.updateList() + + def deleteFile(self): + if self.currList == "filelist": + self.service = self.filelist.getServiceRef() + else: + self.service = self.playlist.getSelection() + if self.service is None: + return + if self.service.type != 4098 and self.session.nav.getCurrentlyPlayingServiceReference() is not None: + if self.service == self.session.nav.getCurrentlyPlayingServiceReference(): + self.stopEntry() + + serviceHandler = eServiceCenter.getInstance() + offline = serviceHandler.offlineOperations(self.service) + info = serviceHandler.info(self.service) + name = info and info.getName(self.service) + result = False + if offline is not None: + # simulate first + if not offline.deleteFromDisk(1): + result = True + if result == True: + self.session.openWithCallback(self.deleteConfirmed_offline, MessageBox, _("Do you really want to delete %s?") % (name)) + else: + self.session.openWithCallback(self.close, MessageBox, _("You cannot delete this!"), MessageBox.TYPE_ERROR) + + def deleteConfirmed_offline(self, confirmed): + if confirmed: + serviceHandler = eServiceCenter.getInstance() + offline = serviceHandler.offlineOperations(self.service) + result = False + if offline is not None: + # really delete! + if not offline.deleteFromDisk(0): + result = True + if result == False: + self.session.open(MessageBox, _("Delete failed!"), MessageBox.TYPE_ERROR) + else: + self.removeListEntry() + + def removeListEntry(self): + currdir = self.filelist.getCurrentDirectory() + self.filelist.changeDir(currdir) + deleteend = False + while not deleteend: + index = 0 + deleteend = True + if len(self.playlist) > 0: + for x in self.playlist.list: + if self.service == x[0]: + self.playlist.deleteFile(index) + deleteend = False + break + index += 1 + self.playlist.updateList() + if self.currList == "playlist": + if len(self.playlist) == 0: + self.switchToFileList() + + def copyFile(self): + if self.filelist.getServiceRef().type == 4098: # playlist + ServiceRef = self.filelist.getServiceRef() + extension = ServiceRef.getPath()[ServiceRef.getPath().rfind('.') + 1:] + if self.playlistparsers.has_key(extension): + playlist = self.playlistparsers[extension]() + list = playlist.open(ServiceRef.getPath()) + for x in list: + self.playlist.addFile(x.ref) + self.playlist.updateList() + else: + self.playlist.addFile(self.filelist.getServiceRef()) + self.playlist.updateList() + if len(self.playlist) == 1: + self.changeEntry(0) + + def addPlaylistParser(self, parser, extension): + self.playlistparsers[extension] = parser + + def nextEntry(self): + next = self.playlist.getCurrentIndex() + 1 + if next < len(self.playlist): + self.changeEntry(next) + elif ( len(self.playlist) > 0 ) and ( config.mediaplayer.repeat.getValue() == True ): + self.stopEntry() + self.changeEntry(0) + elif ( len(self.playlist) > 0 ): + self.stopEntry() + + def nextMarkOrEntry(self): + if not self.jumpPreviousNextMark(lambda x: x): + next = self.playlist.getCurrentIndex() + 1 + if next < len(self.playlist): + self.changeEntry(next) + else: + self.doSeek(-1) + + def previousMarkOrEntry(self): + if not self.jumpPreviousNextMark(lambda x: -x-5*90000, start=True): + next = self.playlist.getCurrentIndex() - 1 + if next >= 0: + self.changeEntry(next) + + def deleteEntry(self): + self.playlist.deleteFile(self.playlist.getSelectionIndex()) + self.playlist.updateList() + if len(self.playlist) == 0: + self.switchToFileList() + + def changeEntry(self, index): + self.playlist.setCurrentPlaying(index) + self.playEntry() + + def playServiceRefEntry(self, serviceref): + serviceRefList = self.playlist.getServiceRefList() + for count in range(len(serviceRefList)): + if serviceRefList[count] == serviceref: + self.changeEntry(count) + break + + def xplayEntry(self): + if self.currList == "playlist": + self.playEntry() + else: + self.stopEntry() + self.playlist.clear() + self.isAudioCD = False + sel = self.filelist.getSelection() + if sel: + if sel[1]: # can descent + # add directory to playlist + self.copyDirectory(sel[0]) + else: + # add files to playlist + self.copyDirectory(os.path.dirname(sel[0].getPath()) + "/", recursive = False) + if len(self.playlist) > 0: + self.changeEntry(0) + + def playEntry(self): + if len(self.playlist.getServiceRefList()): + needsInfoUpdate = False + currref = self.playlist.getServiceRefList()[self.playlist.getCurrentIndex()] + if self.session.nav.getCurrentlyPlayingServiceReference() is None or currref != self.session.nav.getCurrentlyPlayingServiceReference() or self.playlist.isStopped(): + self.session.nav.playService(self.playlist.getServiceRefList()[self.playlist.getCurrentIndex()]) + info = eServiceCenter.getInstance().info(currref) + description = info and info.getInfoString(currref, iServiceInformation.sDescription) or "" + self["title"].setText(description) + # display just playing musik on LCD + idx = self.playlist.getCurrentIndex() + currref = self.playlist.getServiceRefList()[idx] + text = self.getIdentifier(currref) + self.ext = os.path.splitext(text)[1].lower() + text = ">"+text + # FIXME: the information if the service contains video (and we should hide our window) should com from the service instead + if self.ext not in AUDIO_EXTENSIONS and not self.isAudioCD: + self.hideAndInfoBar() + else: + needsInfoUpdate = True + self.summaries.setText(text,1) + + # get the next two entries + idx += 1 + if idx < len(self.playlist): + currref = self.playlist.getServiceRefList()[idx] + text = self.getIdentifier(currref) + self.summaries.setText(text,3) + else: + self.summaries.setText(" ",3) + + idx += 1 + if idx < len(self.playlist): + currref = self.playlist.getServiceRefList()[idx] + text = self.getIdentifier(currref) + self.summaries.setText(text,4) + else: + self.summaries.setText(" ",4) + else: + idx = self.playlist.getCurrentIndex() + currref = self.playlist.getServiceRefList()[idx] + text = currref.getPath() + ext = os.path.splitext(text)[1].lower() + if self.ext not in AUDIO_EXTENSIONS and not self.isAudioCD: + self.hideAndInfoBar() + else: + needsInfoUpdate = True + + self.unPauseService() + if needsInfoUpdate == True: + path = self.playlist.getServiceRefList()[self.playlist.getCurrentIndex()].getPath() + self["coverArt"].updateCoverArt(path) + else: + self["coverArt"].showDefaultCover() + self.readTitleInformation() + + def updatedSeekState(self): + if self.seekstate == self.SEEK_STATE_PAUSE: + self.playlist.pauseFile() + elif self.seekstate == self.SEEK_STATE_PLAY: + self.playlist.playFile() + elif self.isStateForward(self.seekstate): + self.playlist.forwardFile() + elif self.isStateBackward(self.seekstate): + self.playlist.rewindFile() + + def pauseEntry(self): + self.pauseService() + if self.seekstate == self.SEEK_STATE_PAUSE: + self.show() + else: + self.hideAndInfoBar() + + def stopEntry(self): + self.playlist.stopFile() + self.session.nav.playService(None) + self.updateMusicInformation(clear=True) + self.show() + + def unPauseService(self): + self.setSeekState(self.SEEK_STATE_PLAY) + + def subtitleSelection(self): + from Screens.AudioSelection import SubtitleSelection + self.session.open(SubtitleSelection, self) + + def hotplugCB(self, dev, media_state): + if dev == harddiskmanager.getCD(): + if media_state == "1": + from Components.Scanner import scanDevice + devpath = harddiskmanager.getAutofsMountpoint(harddiskmanager.getCD()) + self.cdAudioTrackFiles = [] + res = scanDevice(devpath) + list = [ (r.description, r, res[r], self.session) for r in res ] + if list: + (desc, scanner, files, session) = list[0] + for file in files: + if file.mimetype == "audio/x-cda": + self.cdAudioTrackFiles.append(file.path) + else: + self.cdAudioTrackFiles = [] + if self.isAudioCD: + self.clear_playlist() + +class MediaPlayerLCDScreen(Screen): + skin = ( + """ + + + + """, + """ + + + + """) + + def __init__(self, session, parent): + Screen.__init__(self, session) + self["text1"] = Label("Media player") + self["text3"] = Label("") + self["text4"] = Label("") + + def setText(self, text, line): + if len(text) > 10: + if text[-4:] == ".mp3": + text = text[:-4] + textleer = " " + text = text + textleer*10 + if line == 1: + self["text1"].setText(text) + elif line == 3: + self["text3"].setText(text) + elif line == 4: + self["text4"].setText(text) + +def mainCheckTimeshiftCallback(session, answer): + if answer: + session.open(MediaPlayer) + +def main(session, **kwargs): + InfoBar.instance.checkTimeshiftRunning(boundFunction(mainCheckTimeshiftCallback, session)) + +def menu(menuid, **kwargs): + if menuid == "mainmenu" and config.mediaplayer.onMainMenu.getValue(): + return [(_("Media player"), main, "media_player", 45)] + return [] + +def filescan_open(list, session, **kwargs): + from enigma import eServiceReference + + mp = session.open(MediaPlayer) + mp.playlist.clear() + mp.savePlaylistOnExit = False + + for file in list: + if file.mimetype == "video/MP2T": + stype = 1 + else: + stype = 4097 + ref = eServiceReference(stype, 0, file.path) + mp.playlist.addFile(ref) + + mp.changeEntry(0) + mp.switchToPlayList() + +def audioCD_open(list, session, **kwargs): + from enigma import eServiceReference + + mp = session.open(MediaPlayer) + mp.cdAudioTrackFiles = [f.path for f in list] + mp.playAudioCD() + +def movielist_open(list, session, **kwargs): + if not list: + # sanity + return + from enigma import eServiceReference + from Screens.InfoBar import InfoBar + f = list[0] + if f.mimetype == "video/MP2T": + stype = 1 + else: + stype = 4097 + if InfoBar.instance: + path = os.path.split(f.path)[0] + if not path.endswith('/'): + path += '/' + config.movielist.last_videodir.value = path + InfoBar.instance.showMovies(eServiceReference(stype, 0, f.path)) + +def filescan(**kwargs): + from Components.Scanner import Scanner, ScanPath + return [ + Scanner(mimetypes = ["video/mpeg", "video/MP2T", "video/x-msvideo", "video/mkv"], + paths_to_scan = + [ + ScanPath(path = "", with_subdirs = False), + ScanPath(path = "PRIVATE/AVCHD/BDMV/STREAM", with_subdirs = False), + ], + name = "Movie", + description = _("Watch movies..."), + openfnc = movielist_open, + ), + Scanner(mimetypes = ["video/x-vcd"], + paths_to_scan = + [ + ScanPath(path = "mpegav", with_subdirs = False), + ScanPath(path = "MPEGAV", with_subdirs = False), + ], + name = "Video CD", + description = _("View video CD..."), + openfnc = filescan_open, + ), + Scanner(mimetypes = ["audio/mpeg", "audio/x-wav", "application/ogg", "audio/x-flac"], + paths_to_scan = + [ + ScanPath(path = "", with_subdirs = False), + ], + name = "Music", + description = _("Play music..."), + openfnc = filescan_open, + ), + Scanner(mimetypes = ["audio/x-cda"], + paths_to_scan = + [ + ScanPath(path = "", with_subdirs = False), + ], + name = "Audio-CD", + description = _("Play audio-CD..."), + openfnc = audioCD_open, + ), + ] + +from Plugins.Plugin import PluginDescriptor +def Plugins(**kwargs): + return [ + PluginDescriptor(name = _("Media player"), description = _("Play back media files"), where = PluginDescriptor.WHERE_PLUGINMENU, needsRestart = False, fnc = main), + PluginDescriptor(name = _("Media player"), where = PluginDescriptor.WHERE_FILESCAN, needsRestart = False, fnc = filescan), + PluginDescriptor(name = _("Media player"), description = _("Play back media files"), where = PluginDescriptor.WHERE_MENU, needsRestart = False, fnc = menu) + ] diff --git a/lib/python/Plugins/Extensions/MediaPlayer/settings.py b/lib/python/Plugins/Extensions/MediaPlayer/settings.py new file mode 100644 index 0000000..0728dc0 --- /dev/null +++ b/lib/python/Plugins/Extensions/MediaPlayer/settings.py @@ -0,0 +1,140 @@ +from Screens.Screen import Screen +from Screens.HelpMenu import HelpableScreen +from Components.FileList import FileList +from Components.Sources.StaticText import StaticText +from Components.MediaPlayer import PlayList +from Components.config import config, getConfigListEntry, ConfigSubsection, configfile, ConfigText, ConfigYesNo, ConfigDirectory +from Components.ConfigList import ConfigListScreen +from Components.ActionMap import ActionMap + +config.mediaplayer = ConfigSubsection() +config.mediaplayer.repeat = ConfigYesNo(default=False) +config.mediaplayer.savePlaylistOnExit = ConfigYesNo(default=True) +config.mediaplayer.saveDirOnExit = ConfigYesNo(default=False) +config.mediaplayer.defaultDir = ConfigDirectory() +config.mediaplayer.useAlternateUserAgent = ConfigYesNo(default=False) +config.mediaplayer.alternateUserAgent = ConfigText(default="") +config.mediaplayer.sortPlaylists = ConfigYesNo(default=False) +config.mediaplayer.alwaysHideInfoBar = ConfigYesNo(default=True) +config.mediaplayer.onMainMenu = ConfigYesNo(default=False) + +class DirectoryBrowser(Screen, HelpableScreen): + + def __init__(self, session, currDir): + Screen.__init__(self, session) + # for the skin: first try MediaPlayerDirectoryBrowser, then FileBrowser, this allows individual skinning + self.skinName = ["MediaPlayerDirectoryBrowser", "FileBrowser" ] + + HelpableScreen.__init__(self) + + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("Use")) + + self.filelist = FileList(currDir, matchingPattern="") + self["filelist"] = self.filelist + + self["FilelistActions"] = ActionMap(["SetupActions", "ColorActions"], + { + "green": self.use, + "red": self.exit, + "ok": self.ok, + "cancel": self.exit + }) + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + self.setTitle(_("Directory browser")) + + def ok(self): + if self.filelist.canDescent(): + self.filelist.descent() + + def use(self): + if self["filelist"].getCurrentDirectory() is not None: + if self.filelist.canDescent() and self["filelist"].getFilename() and len(self["filelist"].getFilename()) > len(self["filelist"].getCurrentDirectory()): + self.filelist.descent() + self.close(self["filelist"].getCurrentDirectory()) + else: + self.close(self["filelist"].getFilename()) + + def exit(self): + self.close(False) + +class MediaPlayerSettings(Screen,ConfigListScreen): + + def __init__(self, session, parent): + Screen.__init__(self, session) + # for the skin: first try MediaPlayerSettings, then Setup, this allows individual skinning + self.skinName = ["MediaPlayerSettings", "Setup" ] + self.setup_title = _("Edit settings") + self.onChangedEntry = [ ] + + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("Save")) + + ConfigListScreen.__init__(self, [], session = session, on_change = self.changedEntry) + self.parent = parent + self.initConfigList() + config.mediaplayer.saveDirOnExit.addNotifier(self.initConfigList) + + self["setupActions"] = ActionMap(["SetupActions", "ColorActions"], + { + "green": self.save, + "red": self.cancel, + "cancel": self.cancel, + "ok": self.ok, + }, -2) + + def layoutFinished(self): + self.setTitle(self.setup_title) + + def initConfigList(self, element=None): + print "[initConfigList]", element + try: + self.list = [] + self.list.append(getConfigListEntry(_("repeat playlist"), config.mediaplayer.repeat)) + self.list.append(getConfigListEntry(_("save playlist on exit"), config.mediaplayer.savePlaylistOnExit)) + self.list.append(getConfigListEntry(_("save last directory on exit"), config.mediaplayer.saveDirOnExit)) + if not config.mediaplayer.saveDirOnExit.getValue(): + self.list.append(getConfigListEntry(_("start directory"), config.mediaplayer.defaultDir)) + self.list.append(getConfigListEntry(_("sorting of playlists"), config.mediaplayer.sortPlaylists)) + self.list.append(getConfigListEntry(_("Always hide infobar"), config.mediaplayer.alwaysHideInfoBar)) + self.list.append(getConfigListEntry(_("show mediaplayer on mainmenu"), config.mediaplayer.onMainMenu)) + self["config"].setList(self.list) + except KeyError: + print "keyError" + + def changedConfigList(self): + self.initConfigList() + + def ok(self): + if self["config"].getCurrent()[1] == config.mediaplayer.defaultDir: + self.session.openWithCallback(self.DirectoryBrowserClosed, DirectoryBrowser, self.parent.filelist.getCurrentDirectory()) + + def DirectoryBrowserClosed(self, path): + print "PathBrowserClosed:" + str(path) + if path != False: + config.mediaplayer.defaultDir.setValue(path) + + def save(self): + for x in self["config"].list: + x[1].save() + self.close() + + def cancel(self): + self.close() + + # for summary: + def changedEntry(self): + for x in self.onChangedEntry: + x() + + def getCurrentEntry(self): + return self["config"].getCurrent()[0] + + def getCurrentValue(self): + return str(self["config"].getCurrent()[1].getText()) + + def createSummary(self): + from Screens.Setup import SetupSummary + return SetupSummary diff --git a/lib/python/Plugins/Extensions/MediaScanner/Makefile.am b/lib/python/Plugins/Extensions/MediaScanner/Makefile.am new file mode 100644 index 0000000..2e98fe3 --- /dev/null +++ b/lib/python/Plugins/Extensions/MediaScanner/Makefile.am @@ -0,0 +1,7 @@ +installdir = $(pkglibdir)/python/Plugins/Extensions/MediaScanner + +SUBDIRS = meta + +install_PYTHON = \ + __init__.py \ + plugin.py diff --git a/lib/python/Plugins/Extensions/MediaScanner/__init__.py b/lib/python/Plugins/Extensions/MediaScanner/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/Extensions/MediaScanner/meta/Makefile.am b/lib/python/Plugins/Extensions/MediaScanner/meta/Makefile.am new file mode 100644 index 0000000..c4ab27d --- /dev/null +++ b/lib/python/Plugins/Extensions/MediaScanner/meta/Makefile.am @@ -0,0 +1,5 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_mediascanner.xml + +EXTRA_DIST = mediascanner_de.jpg mediascanner_en.jpg diff --git a/lib/python/Plugins/Extensions/MediaScanner/meta/mediascanner_de.jpg b/lib/python/Plugins/Extensions/MediaScanner/meta/mediascanner_de.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e6a191cd6593091aef99a1430b88cf38eb2bf560 GIT binary patch literal 87941 zcmeFa2Ut_f)&{%*0Sk(#2r2?1R(kJ5rHg=w^b#TT7OH@h*in&=R3R!&KtQF5l-TJY zO_~ywCJ3SlEg|Kf1hCxex#!&P{@?ff_xaD}*^}98)~tDF&6?S>*Phu>d#UfCjYlHsJ>2V0MW7zRM?#i%# znTHYZNI)Qjc);nyAW4sJ0r9AC7iiUT-YoF@8d^&_3qkufuKXUhN7^~?A9qIjA$^^Z zUi@lC()^|_p7zK9Ur171TtQJnLQzthUqVVzT24_?7KnhDZZRyCOQk~4Eyfl3jIVDo zeUBfaF@l4IfoT~d%g^;-;Qdh#hP^-61L$NKFM}xKci9^gm&DPuMbpUAFZE|#(r7eY zPC;z+I>FWSAV%sJXaoHUvOi19NgaSLLTsy7uU@m7ZOs}sj&*C-ad5J;v9WVdEhYv5 zh>?SViGzXq4pe(B^#ubApk!vC9{@1zU;>7+ikXFV^_sQofI0k{$N(`itt4)Q7*;Vb zF|J}{W@TB;%)}-I5;>Sw?b;;4eAv)-vw-(GNtP|Kw;vqYEy#J|shyOx&-r#W);)1X zUq5_9_{wa(^YFr6_4t$a8qYHQWVt$wKRVz_EAv+E?j$Vl{fdL%}loSw~}nV1PxoFMaIx++i$GLeFQ`Zu+9 z5%_LI*ifN@UbeE?_MQiP>}>b?r_MH|wi$lOZyGSxdpALaF3t&|GIzRl@)1SC9(K&a zQr+$oWf(^>_ogdvozW|*;_bUOIp1eAS=5&6VR@jU&x!o7tWX;DPOwFoBf0_?Nk#=59Z@&OnV>NynRQu|rF7kB$^S%kqH09B2WSzZbL1!aXa{@$YT4RXWdm?qhHOgW z>&5M39{rz1XKQK;ZKCn0tdiFzuo&Y&X|hv*H{U=2MNg;VtiLy`-zkLuX~F{n9taZ<;o57dful(9zcj_md<#f{Y0pHx&h@v z&M?K(MvanSiXaS)Q6Zm^thl3@4%BwKi7Pc1H7UyJd3gA~!|+czi;AyPl2My9zXLO= zvVmz*A=0(V4xFYa*U<{ZJ*9_cZypL(jzl_j&XM;Ndzv`zejrxw5^VJ;yV+NNY{xpa zhw!SIG|@R^G3B=9$J-2VwTfreEH5uaJ>J|&Y?Jl&3757|m8qga0_e#g)cp2A1fc@I zh|wAsrF^+Pn`)5PG2m9Qh~A=5hZrwD;o;e@qU%yj;#)A7K^m46k?kC0?FTw7`tORA zy{RnYc-&Lg?2jxOfE`=J1W;;7B`-(j3c_37*VZMq^-WQs@^@4yR(CQ8J1X|(j zvp4NVd(2BQ5EzO}y2GSW#=|A%dwjVERQ3hCzo_rCb|>zDg_WhFyHQRfec?Bv5uSG= z2W;x3&&x^7_I6GePR&bfJUmf)UQv0z7Z3X)gP9w^;0}aFOHqaffZ}NtD@Tp-$`N;j z%~7EOjHj6{;lr%BiPsL;(o>?e=K0rEJi zRT()WOP-?4BnUPC6az2|1$$!JV9+@bR?$&6l-3ICiyPb1O3)2=6SPd)qbmSB4 zM^&DGHi@|Zsq)r2Pko~&%4erb(v2iT;&4>x@ih`kIfM#*u^(D8s}8zZ$$g$MCSSX* zYxZ%!Z5mNh928Nr5=#aepzN!`$0v=y=+4JP7bI~AH1M&Y#_chqBb_Yu3zwtG+wWCKmd^*` z*^rb3b>#7TF14R1nXs8Vs$EK3g5$nyk0w5dX>2Jf@$lF*7PH!!FJoF~4u(L%+&Fo@ zB!zLhhi2`Z4)tPKrC3vy8*I7wIjpEyO*-J-+)kc%_cm>a;%mM4kOoPwoxEsfqEM$*Ny%%D9PC1(}STY63h;QUO# z5ZmJY3oCogGO9$2=4?h4<}MhK9eX}oBHm6+`kuBX%o$G_f4$#|G#K|=#|+PG2%BHS zI}kj9<#fQ9%=c+{G}{l?W$AfB=ZEyCvkAp+H!ynYybmH#5nC(rhqaEN#t)#)h5A3B zbe>jN&&qXPUS~Z{EVs6-AVyY}Rs;+A^L@*gCL^Sq{c3NjoppP9>v?KV`LzD4@Ws9f zlT!As4cQY4H-f1Z0YU}?iE;$E9*h!8>~*RhWoc2w0FoQK21_V!<|K3&Zg>()-iMc~ z>KiA^?lzu{?g)-hG}UJdwx~Pl;_c!F|2!4aSBo{ADh``RowsX8F4Rn9Kg|_L#98UA zlF96xuX1}wNh9%L2wmwEF=D0-x8#A-WA2CwX;u!hTY%i6%b5_>?lU(ZD-J3NKWutz zvoq^;zw4=Dx9xNC)%Ip>sJmlji=w>~?iHN{Gx-6b_Mt6|gDIWqWf}2nvKHN#TRnu4 zd1ZyjyHqFuf29w0(&vHA8+gnUtJkB66 zy$xozLDyzL(GwE0z1Q1+<-VNTLC2;5N@Ul=oHL?McsG%eB5x7Tr;E3eP#po4ZeX0Q zqe5>J!ElShxuAZ!a6V_r-#9O-sEeR@!YIQPB+x12b$^O$#th~8ixJq@Q6V<_u%jmT ziRCy{wj7<$Jk$=OoAt3Wq zV8pmHcP1i*d^=7kKZj56hMeb{X8AZPn>ppmG%A#jZ8lgm5POALbj6VO=FTI=3E``m z3>cohoJv0}t3Pe^rSP@LgW_4@Wfj}jcWRc#58qK*Dtg~_*Ysk0`Y7=;uzTm;Y2{EZ zIEJ~WxouOro5Q>(cWOhX^So7)>=}3 z{e1E84^*d%jkYUxw0>T^h{yw0nG_1Vw&}fUW<>TH7{RWCF(H+2(wL@})0Vs&jLTjQMtZ)z z^t25>vcS$lOA^=9X*6#MFP(GSuh&d?`t=%m2m%IrF5vm09c$@c6k3d43ezkt3d$98 zbOb5xAO!vza4;-WZl|Pvr%2N279d>Vk)cyWeo*MOS^(D&rE^*HynqV$ zXaSvfJ1xd!1cD`v&@LgyL*RT3BJ7YopFsFYfGc_>P6EfDJJQn$ zT+@$Z4vv05Umx*9dMsTt9-=XvaB^Nwr&o~0*WCr-;A`T3%oijw{8A1xJq?gIfs>Vf zp`-qjY*r^9q`%iMBo?HPi<66|gQvd-$it>#M3Zhnr-AGBw*G!dEeB5rA6q{Mdq99r z26;IwGp}7@rcr1qIv!5^;OBq4{!IQp?k6?OPJ*JAl}l6puM|CBCx>4sEVk}`CvBa6 zp>04ofP4;temcI|C-simA(8GhfvZ=@zc8UqAB*J%4@HXK~7eC2S;0f zcRvtabK1ej?>FowE976<*V#F#A>ENaKPi`EN&XS7?+G9aq>uEZ>3WSH(#yc#&)4B+ z!&&PN4C$Y!Y<5ULU{L==Uk94l`5)Qo{cAt1Aczf|jIgit_)@>)pvPDGFwNh+WY8@1 zTr_@Y<3kY8lz0oAXF>Em1kpqQk1{v#2mkFs{@a5*I`_8+`EL*MuU_xJJ;;B1kpK1| z|LsBk+k^bK2l;Og^4}ihzdgu*dyxP3Aph+_{y*^`)4dnFfRh4(jKK-~8#E{4VcJ0OTJ!^ znMPy3O_##s;ppQ6Vl)TpPkLDL@X=dn$=AzD_xXZ0qJG#i;_T<=r6?xm=__hWTURNH zKzfJ;+Iopeh>D9r%CJB$TZEf~AHSUg@NcRJOjlt9_+9K(1WaZ0#Pz(?9GqRW&-geP zozXvuIOB#;uor--@+$`_26}jTIQZG}2YR@B`YHyh2+)Nqf;f#VCcsZ;@pDrVps#i0 zH`6=LuZHw-;FlJa6qOV~h|5ax%Seez$wtfy;7L3-wB5w`uqjmN@2fd2khT7`?)y&L0($QFO_lttBHS) zl9uwF)k{&$$HCSQczJ=RdBu8uyu12oEikPD%iIp?!11mkKwBIvA|W9nDSZ+w5tah$ zgXM+9B^1TQmss_X_AZV=|IE6)j`$Z=V8r&eezt$gY>!ZMMEZExf(CH$uyt|}bMi=rXV4uE~T)NR~?D)r4k-@`~OS^twj}q2vE2!tq-XP zNC@!LiDop*a`#^%%7Io87Z;PDh0E#Yf0F(q+1S$sXi{=HpFSw(w1c{flY=jfDkCc_ zDI*6?d2lKSgONj6QcfD2fF>_3EF&cjP6-ePba^RZNd;M9DRBv5DG7OSDhSI+f>TNo z(108{ac}}&Ioh=hNC&5sw3MWhoVu*^5j9D9O-&7PNi|T0!Vx)Xb@3yI#brP<$Z87k z)67-zxJ#geyP3KRXbNAtE3y$KnvvoCkSa}NdYy|LRu+OK)tjO7^E2GyEn=jJQFTmEv;jk0vt^axy75hWfNKe}PxgWT_Y<+CO z-QB^*S4F_l2kF88W5nb4L-N~td4ad0^r1oQw5R>@bmRL-DDZ~``P!cTQOIwVbNJ83 zxBo5WEVmfK+1As^0nCcT{*zi9`44JA+vxH?ZsLEV7KlG>^gn54nkD?Oi$7MEy@L-J z+rRgTpKa?q27bDg{l8S;pIh0V-huyxmHjWYj~H!^x-_bY{o{bMbgjOmLrq#=q)+1% zf7^Thg57~Roud8!XlAig?$Yvz|KZGnHZagD`_lw{g#>2(wCMK-4%L;%g1>+N*1+Ey z_*(;iYv6AU{H=liA8Fu+%hJIU%*X?PL-MCB)rWvT znCS-#3oGktR#uiZYu2s>Td#jT7?_xtm{&2cVPRRbe(jpI>)B~rs@cKDY;Y|9uq|Ev zn(zA+eM>dtA;#BC3}6rPk1f>}U`zEK0F(9S9o5h(W+p}!255OpHNg6F>aPpp7y&e} zrJ9A62?UJ342(=1s~~2ur~0rV%Vt}!r+SNI>}^)gr7g`Lq_*0974$j(ZI7C?QQVz} z2;XNi>igm|OJuoD+WS54__%uSg*9urw_Qxo(99||=``NI9XEuhZL4e*4L^yPam8#?k#v=YWM%uOE~rQe-+yH|0=W{|5a!^|Eth;{a2yw{;xv& z=D!MU&u`Hh9&i)B$!HkSdF@)9TmM;i&NapU$Q3 zi?tBhD}CopjRYytKycxKskJD9@`4S^ug_O+k3$SSuQ8q3o7dlHgfk*bkS-ethS}}> zLSB4nle;%2ZdE^!;`J^M@@Zkuuve&ck&Cp}Y&nIjcC3+tpw zgEyG76 zBd!?Sb2$j%0={H}%3=T0BH*A1S|#@U1Q_!l0sg<1=J0PQ z^Zy##Uv23BwpKvB-$6HXUBZ=sD$p6IkgyLGdLlPdM}UdNEqtZfxe>)|1T+nDJe)?O zEcFpo6A$L=da^ib-^hwh8xZW0C=8e!zF|`BKgoMaLMN?s2-wIq_yWr>hMr4$&;$$} z+sTRxgD;!#NzmsG&;Z&}44PIt2^v=?Mq)x8<7*&KAcKNI>48nbbplp+|PwtYNVn6t$i(f{nHG1NIZPF$Qsb`yGEXf&GIyBitcO zJ?wZ`TDxiU<4c(Q`T9BoBh2c}c2r1~pUk8*_^O@hn$&I|*0;Fy!ot~wQ%@=-X{CTk2imf{=*bLQxdKf+7s~HWAiQNZA z9*vTNO+3BbNk&j1V~OqWoQO$_`zhI^3^W028?Z2s_odw1&PUpe>OO{2xkrUS13K_^ zVd6WfkkX_G3S>u3z+Y3L_if~pb@=|aS+O}ovMxadhOd1#{cU=5nylNukF*W!+fIi4 zls{o9f3zyaGnNYNr(9O`L`~#y6uv>_(eS|=U8qp{+*T@7hfYJ!o_ak_c|aGT^aDb| zQ_}SPGKvc6E%;^-OE?u;1th>SmL(Ww{RzTje65S?qR}+`Htn!~fUie`-;19f9j8J$ zC^bGg*sKvp5%{RZ61s->lz?9A??oHTMw3rICw$jk4*OW>CF~HkrHy#s8TD0*l7EUc zS3=e$C!kJHj97u_9-!C&N;a9D!bXMuL9?`KRgr=TRY2KuSE&%o&(&H{OdSBOO@$JE zU|Uh#ssA}N1A}Faf=`y@q133*1yF6iHaA!orcY~DY(yNTG%2bYN}?qPtN&B7G!+6W zMYLhkaw#cfwh+)R-N!VmEGgNPMpzzd--VwnYA5Uskj*~kkDh=}W)hQd$*}Y}E}A*f ztdR;m5k?@RB5Q^=K0__HDTQ6V#$Mq%mS zJISwYz0?EPe{HWn?xM=H4uGk{q+w>ooY7yMDESD&)Jpfyp>==vpn1GsG(qbJuGqZYT4NTElw#W!*G?16 z_`rC!tZ!S=U=>-5oN!#aA2~+8#Km=!3MuT(%^hiBF2KxBz^r;<3Pnpp?iPwEU3{ii zG8Iy`^v4xl3^|~P>UKvdEpu>^%F~kgdQBry`1Z#^25K<;JJ>`yFc$itwF2+aXKcpV z*8~GK)+cZGkxgE>$zXxn?nF0@qtJ7lp9{l6V12l#%cxHuVZ`DqZ`?4T>uaFIvMH!u z3q|bM<5}G0h^fV47+wj>*YcU3%FB{OphC84uoQ4h=$r~N(qO9V<`bL$!rtnsR!(Q6q8d$2%o=2gcLbN6V-Xt@zp{5gL0d37_}%;xaCxK8;Ec$LjEB zz_*jY4Mpo54S=E0-7pk@7j_eGa!f)90oA^F3J4&Cw#oR-4t%pYm`Pd znmlNMOq)rYa^*WfSghxJPu4n#)O;5Fu;j3C_u71W=UqefsRwux(EV>6J(Eg@6ugF` z*Qf@}v)t@o8@*-EOB-XN5nL+FILINnZf{&-T-VpYu(h3t<7L~*GvZh?i!bLOVgo-C zSlW*DbacPgb=%E(wSL-~P(8mR9%9CL1Bb>zsD>kh9tYuDI;GhLh? z=kS#l(Sc8M+{kyH?8?24$tJE#?@iHZ*+u5-;Nx@Rp84|6zC8@}_ns;ET~z#_j&5-y znd@Xk%b;uL&eDPaV)o_yua;4ULYy2Ir8!lEGLrg|k$OyIj(OHgJ;V2Kln0B02lAbJ zHn|n7C7?}a_ogK3j8>;=EoitJ$Y2lNRMCs64>ZCw7mI!#Jd8Vz-*y{9sK{rrvt zqI-=Ok{Mn1C{35Y^NI8u3+ISQq>Pez5NZ3bUvA#rghVkX1Q6d1_a|cR^2eXRJVFR& zr{#b2%aTsvqKU+pu&hER~cp z0w;h^N+wtoFSN}>lO|IGQeF`CZx9uk(d5Q=q2^)5vr$(33zli;tL!uLAH`c?bT{YT zVa5jX~g}oym@>AZ|Whd7mtk)hg;PrdlYZF&m+?P@KnhGe~oWC*i{36!D~u z%y*w$(9s&-21_0;7R(`!j2z zropIuf1oZrOAx>+UW1&uo(_1+K8S)$5nx%Ajf$ombP=8INLfQ?zfSC?1u;K%#0Ileh2TSqU&$mekyxa3t>6=5*ViyW+h2F7&C9^uVw(Vdb zd&KO}3$Ev;T)qc*vqCgf+jo2zvSF7#VIyR6UC1Um@U?dV*?H}zEMz4d6%v?q!S7j* zSzuJp2~C5rJEgF?9TxU6L8%&0b%coCn%hRlwnl9k#oClrG8TV3QK~fmjQeZOnt&Y~ zu1!K!bA!la*}UrHzjx6S~Y3Saz@ogd>JJ>$WNj9#ARW z6yJEZVp>^$BaAG@W-D=MpywySPdwyhE+L}vx?O7h;L*co4JKoahmUYG54g@Z zRf#t#%iD(PHQ+q{s3LDIX zzqM+8kv<^^yA$?xK}|k9|2OYIsK0lN!;7$Sm(lU5+rG9>$x@+=H5u7`@Q*Q+yNemD zaEb)%GhYpEwCuDUUaxrPXP;MSm6FX8vlR&58}Jqn+p;OOMqVq{8#Vc1F_@^_$tTd^ zisP+aR0xq;+kuXdf1depa=}aU#6&Eyc!-E&90-IL#s(GO<{Q!YFKzYK26!>tbBf8U zOR$^%JKW%+l(eeXH9N{{@$0g&Z``|wJvlOSbF?f+J>&cI%JUsu zZPS5rq@l95;ptHfX=H3fB|HhX$6YyT*fJevQvN0+Jl|C+D5qoY%X*=ckGOnfbGb-% z4DvTjuFEe(!SjYLZ?n2L)$zFWBS)g)k?_gT4HQe#eH?07j5G>EgD-FHSH3-(u3OKS zai%qW#LYuZKT5i+EW)^BS6OM4o9&iw{m(i#ow}y3rEi!jRF2R*p>RsHh%(x_ao29s z2F@`|gIEIqj!7E5@=C*Vx6A>Dn5 z>8!@&zr1~yeT&7VY6;cbY)_{gQ*ko0@6$TWw@L_H_CKv)jxtAs1JS8y!1_ho^GswucZ1=UnoFGJ;3$#gKK6;V9`Y`%Pv&hK&<- zGWQUe8UnqWy0lwE_;KTl77|*QWwlg`tEtpAHOtRMF;qk%`ZF%64Z|e~p4JAXU1I}TGN#B6U2ZA#S z-OLwjV@10C1|}dph}s(zppI$JMCDJ(LPIr&Ax)uwNw9O;7l`1V?rqHMyXcU z33z1U6b?ZHHFkSmZ3-YdnOE2l^$w5m%QK3qB^Q` z)yRG(QO~W~=MM5@s7;VsE#2j<_6*d@#_X64Z57f7fo$ot>DwXaoEmt_t1i|v7-bJ> zY{3`rvfMMZW1O^LhlN`=;idNVwehU(XlFUkIB=TU7auloSJpPwJ`$PhxHI2v z=<=HzCfi~!Xm~%lJ5VnBV%6Z_1o>#*BNIctsD;C2`gXNpapJ6%<5qFio%H$Bqwk!=-#U`V4#B>NN9L$q{L87Z+;eibyYI ziw$07eJJM<NLS9cPg&m<&S)w(DTNQyQY9u2N_ zN4|LLwFG;4nx>GW3Y(m2Vc#;)CN9l`b`^kGPI4kmPQ+BCt#(ds( z0d0qk7}w^n47G&6nblf|<6w>~@ZV*u62y$^NknV9ibV)V`-irEW*I;TKBWuCTqRLfdT~w&l8PP-xRW) zWg$oDndF?nEMbx*;_giirjoK^LKB)$j}|9XG}xSZ0}~Ic94&6bbim(F8O`X&^MTul z?vwHg%;TsQyQJ=`M=0NRL>u46a*s=B?&Wt6!hgy&lssJXoE<}2B)#n-Wsgk@V1tT# zaK)qH$$Rmp8Ks!JW@0^MZV^{Rvnpp3-|BK5@W}M!kmMgaR4TZQZR4g*OkOWWV>yEb zL}AJydbdRt&G)o$iFS4YZ)!vt*o7V@#q@o7A%A-=L2=!mO4 z53k%ZDu5H3_z3luFr@(sLXB`?7rwAKF}{(*tz-PLRWWg!sK)yW=iyT4x5Vcuu?h8O zxOTf=?XVLlKt_o1nx2jes-pO);d|OLbV^B8_<&K(f+E6^Ht^u=?MvJ>wlN056>wnt zTdPZ_xYuN%uCOc~;z{uPdhyZOch?^_9=Y1LnGgi-SPF!Bg3(B&^6g=mmH@fvrm*Ub&C0AwS-<(M4(;y7m*K_wu0cC zEC{X*JgT@XOc3?^+N!%v-^ZHs@b+&StM=1pIoH%gbh4HxVcJ1KfLZ;`n8a}|NRtq_G#>* zxW!kCZv{tLdzp6FFrV!9T)+RMY26N?XB-VE-?}8xcd`wP&ypxH0SnftQsqM=^8Ks) z;cFc2)>=uK-dfcY!Y?5zX(a(wUtEl*gg!hO&VFwJ(};QY=;HBpbw#qG@Ahj1+n=@5 z);Ln3ln^j~dw2QKUFS45`)IuwSs&K!sFEMzB}yL|*S2f4=O-j*Sk_f^=t;KNLldC5wDny(>FX;X)-F zHzRxf^){AK9vz=EVx$pviZ*61>btI@#LQ!|BkKe~9h(XJ)Qf|MpxS{5`t#VwxZQe5XZbua732_!O ztF}n#T#!}Wc&uWc%Rg;Pb9oe)4UVHlfb(f22lWIq(^MS-2fj|z3-N>^veZZ$F0M%GV-lh%P(+)IKM6i_L1RWof#s0p8r+Sq+Fb+2C1T!OjJnn*o> ze;TDQerSO?Cb~O1GJ@tZgR_d^t%-;x^sJ%_>gy)dvK(a|O!IF53BCUZK<7~7KM7Lp z2}{9Ell3i3I|M1o3%wZh+!lZ+71Y3bdQ4?MpTkcDuM@-X{I?25V2%a(QgZdgXkUHK zQI!<~?zRwsbJ3dU)P$K;aDi*DsK@Ao1H}!n2Vic_+zMf=*P2+?L-BA61&EOM*@Kfzj^$3V6=1K2%6*>L*2DRuoDTga$eki2?1|}j1q6m zTwT$eDu7c3G#5;0JIdPkqf}sTKkV}_l$!jLmH!2!GXKe_pobj92lW0zGf!HxFIfqr z!HR8afyVlc@|TTg#rVaRd)t|E0k%5cc=OK+}b)=n}h{8;IlU|8| zH*F!pm=>epVj+d%g=swl0ypY1t+i^O#YT(aw-PgqU~X+hhmfQ7s3EHmD_HB|+OH0v zXV+LZV9UnH!V4LjKo8~>D|j`rrhhaCUsgVe&|?%3Muu4S-cH(jT^82RPU9vBL1G zudnK28nahbjEdY@h%PvW8Zx?o=SEH}uDxzfg;M4&+D%|?><1>=SXa(JRd%oIGo^^H zg;ucH!ZsSSlT?cwCEwo0TSbu1MKuSWo2G=T zz7uK>cqRjq=QDAAR48p;UpCM9QJbzCFg*;E*e(Tou^Sp+A7`droMk*Q?Qqf_$6ubhNm> zjuDewo09E3=gaOIdK0A*fte<2lQK}FtQJ0_$K5o8v zLn{p?$i0?g|D=oJX0C;t^$H8-LJgwnl0S^1>f1Z@5X`7iFi4+$*PYsy}=aP%Zj)b61LKZ;zrSb+Sy8asdKCJ=1d{X z$@Q!%36}93J5R}h#nMI*w>(nNq8>R^_iWMl{6bmpnN;9zu!|}zC;z!b5N<|PS@fii)*>#+abuI!W zN6USm-5s5iKGDHw^)2`4hp{(oMjH!6O+*ef@Cx-6H&Y?P3uH5_3EtFBDD)Ub?+J4X zv(X4F-yWSxx_WP?O-E~h|J7ArUOzo#?|-!Tpaer+z47zHC><}HP?FAmt%zjpY0MZm ziR?>=&j~Z3Sh?AlkiOwJsRI{J$F%t?Z~gWp zdbe1Cn9|)!LE9AL3*u|tl5Vzd-nh@_jfD1##&WiG!fvMz5{Fu`_)AnMm7-3%1|HIO z$*7n%oe7WgPnXi{e)HFCp79Thk8oLk`yJ~F_J(@wv5-m*) zSqT!~W&)BiV_<3}LjsS{@?<1*{#?x&}0^xcWl@L5*ZO(xybYLd1}!c#UewdotgJ+6^j2&$!ic5Hrwuz z!-O*g)$#PM$)%vg zXZYlTSn&o;gSzJMR@nQ{fSIg*iveJ%52IH>+==%lvXddb{X)sTvtJV~>c5~U-Mso~ zRKQ*?w@%^ahwok9&aX8*;uxtUWD1b4yhrU>c2)AxXL~b7;mvd z<&VFCTcp?#Uyjsmow*&6q`(_~?Yy%~?9E4Z2EOujS33Jh?+6T(O}P0C+CPvGD#7If zlYeim*``lsy%iMy`EgXq>?8L*#MWr!tRJyiA~g77vGK>(t@}e&zCD4 zZTLKi_U<+mj~W2+Tn27TXqSDDSMuu9bOd`y{(+rXWlS^GV@qA5FXbu(H96nq3ZtstWtCBx> zxcdEK;D2v8OI;ey9yDLtMFjVG`JSR6SQB_lfND#3Ypd0yLO0?^lwi$fFx?=rnecLZ$Bj7n#Sp8&^yJYrqiwpz9Gf+xW;Ld1U!2xY!9i-o3MUZg|&5@FC8O1Toq~~CT^vpistdn$va)(E0%?OHUne-VlGda zvfLnUo6qQUB||Go|NZrg1_oX{{C;EIM26uO(C?B^__W8^*y>0^z=**C7sct}(8MZl z@62)8IW7sSK0@4RU))J$0)wxp^wzFHKHK`yOPf>^nKe0)|*MD zfw>df1J$YnhHqSPNJ`dyd`@=m&UN}7q3e~yGB6!Eaxl|b%lUrPxT-7?{id*u+D)W9cMF%Z$8hW& z-h7r*xAVJ)0~B2v&7LO78Q;B*klfv{=&N##u!s|*cvs*y1>f~Z!lzNZ#|+Ec*S`$i zRXDEblvp$~&a>gp!N$?F*B+_d8Eo+lBy4BNZ!XgK94 z$h$Yp>}?Pq&dmZ>erc3jh6){2ne8sa#DJJ2p~7;P^`5TD>X%t(M!VJSp1!(k4+GCJ z=W*@p1e{f!ewE}`uV;4*o(I&SW3h?Y8)0gsD4?Be(zg;4rW2+_dQL!$E*6UhajD}y z(ZX*UvMpO&uimwG@y+tg&a86DHs5V(xaN?ZGG0zqXSjjKsbf9XCTcI6*JXuc>jbLN zhl0+2s`UdBPl0o*8@4G_s^KwT8b-Ccl$blxe+cKIx$_A4*DP`ZN^T_wh=pT!JF9ODT zJ+b7?0p24!K8MHaUbO{lRN{0m>8!aZBy|Z{b}Xhzlx;5|C3M1DD|&yCl?*OO3mCyc z(lse z*^eydX$QWIGW3VP?T+5~^^`UiRWl=dX&6->tq5AfiV}iql^z8D)sC>?d1In$47@(A2H944zDVX zAA%F=+e9fALAew!G)@jb)P%Z`VMQv#n^cZ|u3-!esqpmp7^=GOjjiz`N5|l+2XbD# zGB-!Zp4qrPB|SG`=x(BkD5MuqS&cza$tF4Du<*gH)$T zbp$k_67+$m`GezcJlM4T7KL&%WJdVUCTG5Xx-H|#_S@W_Uv4}+%X@gc2m!~_gr!1b z+hvgT7()Ftp}AN^Co4>gAf-*Z-;NUXoKh|vF)!VzZ27jq<(}EMZcpLsdpRH9@U#v( zh%?}wfJ&;uGLE+-zwY~xp+PFcO~UbC#M;nGZj>XPMs11#8HI(Ve6rYa zuSko*Ze%saL)fGzuI_V|o#vy+8)j=$wtTUabc#v0VxH3aBEs>CB~=|iFdf=G7A+j6 z<&46o@+HD!%CYz;c#`BNSW1RgWpz)PWBYBLQ?dp3tPal#1)jG&Lb{i%vp>4q-=3#S z{nqFAj$S-BtuU79@=u&Lei$1Y26k`(H--x^0!9lSEN{klhtv?XMyB_GHBiy0)Cyi5 zTtKpP{jg$scj4vi>^|lG$jLUr9uZ0S(W6yfaB!P0Yfe`+U--5P%ZY7x)e^<2_{_!W?FVPZ|@KCJx-Px3AOv$yEivGD@I4Atok!ga|!V(&sBBg zeb=?PZE5`+7atH?Hq3J!ag;n05Gph(2Atuqq6y&DtU)VyVuLpoH`e UpF(~UzX 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 Rm;b5M{ + + + + + Dream Multimedia + MediaScanner + enigma2-plugin-extensions-mediascanner + Scan devices for playable media files + MediaScanner scans devices for playable media files and displays a menu with possible actions like viewing pictures or playing movies. + + + + + + diff --git a/lib/python/Plugins/Extensions/MediaScanner/plugin.py b/lib/python/Plugins/Extensions/MediaScanner/plugin.py new file mode 100644 index 0000000..bd8b8cc --- /dev/null +++ b/lib/python/Plugins/Extensions/MediaScanner/plugin.py @@ -0,0 +1,91 @@ +from Plugins.Plugin import PluginDescriptor +from Components.Scanner import scanDevice +from Screens.InfoBar import InfoBar +import os + +def execute(option): + print "execute", option + if option is None: + return + + (_, scanner, files, session) = option + scanner.open(files, session) + +def mountpoint_choosen(option): + if option is None: + return + + from Screens.ChoiceBox import ChoiceBox + + print "scanning", option + (description, mountpoint, session) = option + res = scanDevice(mountpoint) + + list = [ (r.description, r, res[r], session) for r in res ] + + if not list: + from Screens.MessageBox import MessageBox + if os.access(mountpoint, os.F_OK|os.R_OK): + session.open(MessageBox, _("No displayable files on this medium found!"), MessageBox.TYPE_ERROR, simple = True, timeout = 5) + else: + print "ignore", mountpoint, "because its not accessible" + return + + session.openWithCallback(execute, ChoiceBox, + title = _("The following files were found..."), + list = list) + +def scan(session): + from Screens.ChoiceBox import ChoiceBox + parts = [ (r.tabbedDescription(), r.mountpoint, session) for r in harddiskmanager.getMountedPartitions(onlyhotplug = False) if os.access(r.mountpoint, os.F_OK|os.R_OK) ] + parts.append( (_("Memory") + "\t/tmp", "/tmp", session) ) + session.openWithCallback(mountpoint_choosen, ChoiceBox, title = _("Please select medium to be scanned"), list = parts) + +def main(session, **kwargs): + scan(session) + +def menuEntry(*args): + mountpoint_choosen(args) + +from Components.Harddisk import harddiskmanager + +def menuHook(menuid): + if menuid != "mainmenu": + return [ ] + from Tools.BoundFunction import boundFunction + return [(("%s (files)") % r.description, boundFunction(menuEntry, r.description, r.mountpoint), "hotplug_%s" % r.mountpoint, None) for r in harddiskmanager.getMountedPartitions(onlyhotplug = True)] + +global_session = None + +def partitionListChanged(action, device): + if InfoBar.instance: + if InfoBar.instance.execing: + if action == 'add' and device.is_hotplug: + print "mountpoint", device.mountpoint + print "description", device.description + print "force_mounted", device.force_mounted + mountpoint_choosen((device.description, device.mountpoint, global_session)) + else: + print "main infobar is not execing... so we ignore hotplug event!" + else: + print "hotplug event.. but no infobar" + +def sessionstart(reason, session): + global global_session + global_session = session + +def autostart(reason, **kwargs): + global global_session + if reason == 0: + harddiskmanager.on_partition_list_change.append(partitionListChanged) + elif reason == 1: + harddiskmanager.on_partition_list_change.remove(partitionListChanged) + global_session = None + +def Plugins(**kwargs): + return [ + PluginDescriptor(name=_("Media scanner"), description=_("Scan files..."), where = PluginDescriptor.WHERE_PLUGINMENU, needsRestart = True, fnc=main), +# PluginDescriptor(where = PluginDescriptor.WHERE_MENU, fnc=menuHook), + PluginDescriptor(where = PluginDescriptor.WHERE_SESSIONSTART, needsRestart = True, fnc = sessionstart), + PluginDescriptor(where = PluginDescriptor.WHERE_AUTOSTART, needsRestart = True, fnc = autostart) + ] diff --git a/lib/python/Plugins/Extensions/Modem/Makefile.am b/lib/python/Plugins/Extensions/Modem/Makefile.am new file mode 100644 index 0000000..91bf3a9 --- /dev/null +++ b/lib/python/Plugins/Extensions/Modem/Makefile.am @@ -0,0 +1,7 @@ +installdir = $(pkglibdir)/python/Plugins/Extensions/Modem + +install_PYTHON = \ + __init__.py \ + plugin.py + +dist_install_DATA = keymap.xml \ No newline at end of file diff --git a/lib/python/Plugins/Extensions/Modem/__init__.py b/lib/python/Plugins/Extensions/Modem/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/Extensions/Modem/keymap.xml b/lib/python/Plugins/Extensions/Modem/keymap.xml new file mode 100644 index 0000000..1f1bdfc --- /dev/null +++ b/lib/python/Plugins/Extensions/Modem/keymap.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/python/Plugins/Extensions/Modem/plugin.py b/lib/python/Plugins/Extensions/Modem/plugin.py new file mode 100644 index 0000000..0b397c1 --- /dev/null +++ b/lib/python/Plugins/Extensions/Modem/plugin.py @@ -0,0 +1,283 @@ +def getDefaultGateway(): + f = open("/proc/net/route", "r") + if f: + for line in f.readlines(): + tokens = line.split('\t') + if tokens[1] == '00000000': #dest 0.0.0.0 + return int(tokens[2], 16) + return None + +def getTelephone(): + f = open("/etc/ppp/options", "r") + if f: + for line in f.readlines(): + if line.find('connect') == 0: + line = line[line.find(' ')+1:] + line = line[line.find(' ')+1:] + line = line[:line.find('"')] + return line + return "" + +def setOptions(tel, user): + f = open("/etc/ppp/options", "r+") + if f: + lines = f.readlines() + f.seek(0) + for line in lines: + if line.find('connect') == 0: + p = line.find(' ') + p = line.find(' ', p+1) + line = line[:p+1] + f.write(line+tel+'"\n') + elif line.find('user') == 0: + f.write('user '+user+'\n') + else: + f.write(line) + +def getSecretString(): + f = open("/etc/ppp/pap-secrets", "r") + if f: + for line in f.readlines(): + if line[0] == '#' or line.find('*') == -1: + continue + for ch in (' ', '\t', '\n', '"'): + line = line.replace(ch, '') + return line + return None + +def setSecretString(secret): + f = open("/etc/ppp/pap-secrets", 'r+') + if f: + lines = f.readlines() + f.seek(0) + for line in lines: + if line[0] == '#' or line.find('*') == -1: + f.write(line) + continue + f.write(secret+'\n') + +from Screens.Screen import Screen +from Plugins.Plugin import PluginDescriptor +from enigma import eConsoleAppContainer, eTimer +from Components.Label import Label +from Components.Button import Button +from Components.ConfigList import ConfigList +from Components.config import ConfigText, ConfigPassword, KEY_LEFT, KEY_RIGHT, KEY_0, KEY_DELETE, KEY_BACKSPACE +from Components.ActionMap import NumberActionMap, ActionMap +from os import system + +NONE = 0 +CONNECT = 1 +ABORT = 2 +DISCONNECT = 3 + +gateway = None + +def pppdClosed(ret): + global gateway + print "modem disconnected", ret + if gateway: + #FIXMEEE... hardcoded for little endian!! + system("route add default gw %d.%d.%d.%d" %(gateway&0xFF, (gateway>>8)&0xFF, (gateway>>16)&0xFF, (gateway>>24)&0xFF)) + +connected = False +conn = eConsoleAppContainer() +conn.appClosed.append(pppdClosed) + +class ModemSetup(Screen): + skin = """ + + + + + + + + """ + + def nothing(self): + print "nothing!" + + def __init__(self, session, args = None): + global connected + global conn + self.skin = ModemSetup.skin + secret = getSecretString() + user = secret[:secret.find('*')] + password = secret[secret.find('*')+1:] + self.username = ConfigText(user, fixed_size=False) + self.password = ConfigPassword(password, fixed_size=False) + self.phone = ConfigText(getTelephone(), fixed_size=False) + self.phone.setUseableChars(u"0123456789") + lst = [ (_("Username"), self.username), + (_("Password"), self.password), + (_("Phone number"), self.phone) ] + self["list"] = ConfigList(lst) + self["key_green"] = Button("") + self["key_red"] = Button("") + self["state"] = Label("") + self["actions"] = NumberActionMap(["ModemActions"], + { + "cancel": self.close, + "left": self.keyLeft, + "right": self.keyRight, + "connect": self.connect, + "disconnect": self.disconnect, + "deleteForward": self.deleteForward, + "deleteBackward": self.deleteBackward, + "0": self.keyNumber, + "1": self.keyNumber, + "2": self.keyNumber, + "3": self.keyNumber, + "4": self.keyNumber, + "5": self.keyNumber, + "6": self.keyNumber, + "7": self.keyNumber, + "8": self.keyNumber, + "9": self.keyNumber + }, -1) + + self["ListActions"] = ActionMap(["ListboxDisableActions"], + { + "moveUp": self.nothing, + "moveDown": self.nothing, + "moveTop": self.nothing, + "moveEnd": self.nothing, + "pageUp": self.nothing, + "pageDown": self.nothing + }, -1) + + self.stateTimer = eTimer() + self.stateTimer.callback.append(self.stateLoop) + + conn.appClosed.append(self.pppdClosed) + conn.dataAvail.append(self.dataAvail) + + Screen.__init__(self, session) + self.onClose.append(self.__closed) + self.onLayoutFinish.append(self.__layoutFinished) + + def __layoutFinished(self): + global conn + if conn.running(): + self["state"].setText(_("Connected!")); + self.green_function = NONE + self.red_function = DISCONNECT + else: + self.green_function = CONNECT + self.red_function = NONE + self.updateGui() + + def __closed(self): + global connected + conn.appClosed.remove(self.pppdClosed) + conn.dataAvail.remove(self.dataAvail) + if not connected: + conn.sendCtrlC() + setOptions(self.phone.getText(), self.username.getText()) + setSecretString(self.username.getText() + ' * ' + self.password.getText()) + + def stateLoop(self): + txt = self["state"].getText() + txt += '.' + self["state"].setText(txt) + + def connect(self): + if self.green_function == CONNECT: + global gateway + gateway = getDefaultGateway() + self["state"].setText(_("Dialing:")) + system("route del default") + system("modprobe ppp_async"); + self.stateTimer.start(1000,False) + setOptions(self.phone.getText(), self.username.getText()) + setSecretString(self.username.getText() + ' * ' + self.password.getText()) + ret = conn.execute("pppd", "pppd", "-d", "-detach") + if ret: + print "execute pppd failed!" + self.pppdClosed(ret) + pppdClosed(ret) + self.green_function = NONE + self.red_function = ABORT + self.updateGui() + + def disconnect(self): + conn.sendCtrlC() + self.red_function = NONE + self.updateGui() + + def keyLeft(self): + if self.green_function == CONNECT: + self["list"].handleKey(KEY_LEFT) + + def keyRight(self): + if self.green_function == CONNECT: + self["list"].handleKey(KEY_RIGHT) + + def keyNumber(self, number): + if self.green_function == CONNECT: + self["list"].handleKey(KEY_0 + number) + + def deleteForward(self): + if self.green_function == CONNECT: + self["list"].handleKey(KEY_DELETE) + + def deleteBackward(self): + if self.green_function == CONNECT: + self["list"].handleKey(KEY_BACKSPACE) + + def pppdClosed(self, retval): + global connected + self.stateTimer.stop() + self.red_function = NONE + self.green_function = CONNECT + self["state"].setText("") + self.updateGui() + connected = False + + def dataAvail(self, text): + if text.find("Serial connection established") != -1: + tmp = self["state"].getText() + tmp += "OK\nLogin:" + self["state"].setText(tmp) + if text.find("PAP authentication succeeded") != -1: + tmp = self["state"].getText() + tmp += "OK\n"; + self["state"].setText(tmp) + self.stateTimer.stop() + if text.find("ip-up finished") != -1: + global connected + tmp = self["state"].getText() + tmp += "Connected :)\n" + self["state"].setText(tmp) + self.red_function = DISCONNECT + connected=True + if text.find("Connect script failed") != -1: + tmp = self["state"].getText() + tmp += "FAILED\n" + self["state"].setText(tmp) + self.stateTimer.stop() + self.red_function = NONE + self.green_function = CONNECT + self.updateGui() + + def updateGui(self): + if self.red_function == NONE: + self["key_red"].setText("") + elif self.red_function == DISCONNECT: + self["key_red"].setText(_("Disconnect")) + elif self.red_function == ABORT: + self["key_red"].setText(_("Abort")) + if self.green_function == NONE: + self["key_green"].setText("") + elif self.green_function == CONNECT: + self["key_green"].setText(_("Connect")) + focus_enabled = self.green_function == CONNECT + self["list"].instance.setSelectionEnable(focus_enabled) + self["ListActions"].setEnabled(not focus_enabled) + +def main(session, **kwargs): + session.open(ModemSetup) + +def Plugins(**kwargs): + return PluginDescriptor(name="Modem", description="plugin to connect to internet via builtin modem", where = PluginDescriptor.WHERE_PLUGINMENU, needsRestart = False, fnc=main) diff --git a/lib/python/Plugins/Extensions/PicturePlayer/Makefile.am b/lib/python/Plugins/Extensions/PicturePlayer/Makefile.am new file mode 100644 index 0000000..481d0cc --- /dev/null +++ b/lib/python/Plugins/Extensions/PicturePlayer/Makefile.am @@ -0,0 +1,11 @@ +SUBDIRS = data meta + +installdir = $(pkglibdir)/python/Plugins/Extensions/PicturePlayer + +install_PYTHON = \ + __init__.py \ + plugin.py \ + ui.py \ + pictureplayer.png + + diff --git a/lib/python/Plugins/Extensions/PicturePlayer/__init__.py b/lib/python/Plugins/Extensions/PicturePlayer/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/Extensions/PicturePlayer/data/Makefile.am b/lib/python/Plugins/Extensions/PicturePlayer/data/Makefile.am new file mode 100644 index 0000000..3e2b362 --- /dev/null +++ b/lib/python/Plugins/Extensions/PicturePlayer/data/Makefile.am @@ -0,0 +1,2 @@ +dist_pkgdata_DATA = \ + pic_frame.png diff --git a/lib/python/Plugins/Extensions/PicturePlayer/data/pic_frame.png b/lib/python/Plugins/Extensions/PicturePlayer/data/pic_frame.png new file mode 100644 index 0000000000000000000000000000000000000000..a9db9612285fab030197a7de09f5e3ab52e5e876 GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^`+)caBQuc9Ie3x@NU;U@gt-3y|357)t?ymV0-y+E zNswPKgTu2MX+Vytr;B4qg!|hYj=T&C0!I#rHq_g4C^Ir|=bBM>+_Ct%pVpfmU7$J` dsB5%3FJ)7m`TOY2^9O1{qMojPF6*2UngG!jDvAIA literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/Extensions/PicturePlayer/meta/Makefile.am b/lib/python/Plugins/Extensions/PicturePlayer/meta/Makefile.am new file mode 100644 index 0000000..e501fb6 --- /dev/null +++ b/lib/python/Plugins/Extensions/PicturePlayer/meta/Makefile.am @@ -0,0 +1,5 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_pictureplayer.xml + +EXTRA_DIST = pictureplayer.jpg \ No newline at end of file diff --git a/lib/python/Plugins/Extensions/PicturePlayer/meta/pictureplayer.jpg b/lib/python/Plugins/Extensions/PicturePlayer/meta/pictureplayer.jpg new file mode 100644 index 0000000000000000000000000000000000000000..631d80e13ee3812d3d0a994a4f6814e7f03c2af9 GIT binary patch literal 120134 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 rPpd(z^CJ&DH}_y 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 + + + + + Dream Multimedia + PicturePlayer + enigma2-plugin-extensions-pictureplayer + Display your photos on the TV + The PicturePlayer displays your photos on the TV.\nYou can view them as thumbnails or slideshow. + + + + + + diff --git a/lib/python/Plugins/Extensions/PicturePlayer/pictureplayer.png b/lib/python/Plugins/Extensions/PicturePlayer/pictureplayer.png new file mode 100644 index 0000000000000000000000000000000000000000..02febaa54ecc7489156c89f3f1cd3c098a286a8e GIT binary patch literal 3481 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 KRjZZXMEnnl+(E7Y literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/Extensions/PicturePlayer/plugin.py b/lib/python/Plugins/Extensions/PicturePlayer/plugin.py new file mode 100644 index 0000000..86e7aaf --- /dev/null +++ b/lib/python/Plugins/Extensions/PicturePlayer/plugin.py @@ -0,0 +1,47 @@ +from Plugins.Plugin import PluginDescriptor + +#------------------------------------------------------------------------------------------ + +def Pic_Thumb(*args, **kwa): + import ui + return ui.Pic_Thumb(*args, **kwa) + +def picshow(*args, **kwa): + import ui + return ui.picshow(*args, **kwa) + +def main(session, **kwargs): + from ui import picshow + session.open(picshow) + +def filescan_open(list, session, **kwargs): + # Recreate List as expected by PicView + filelist = [((file.path, False), None) for file in list] + from ui import Pic_Full_View + session.open(Pic_Full_View, filelist, 0, file.path) + +def filescan(**kwargs): + from Components.Scanner import Scanner, ScanPath + import os + + # Overwrite checkFile to only detect local + class LocalScanner(Scanner): + def checkFile(self, file): + return os.path.exists(file.path) + + return \ + LocalScanner(mimetypes = ["image/jpeg", "image/png", "image/gif", "image/bmp"], + paths_to_scan = + [ + ScanPath(path = "DCIM", with_subdirs = True), + ScanPath(path = "", with_subdirs = False), + ], + name = "Pictures", + description = _("View photos..."), + openfnc = filescan_open, + ) + +def Plugins(**kwargs): + return \ + [PluginDescriptor(name=_("Picture player"), description=_("fileformats (BMP, PNG, JPG, GIF)"), icon="pictureplayer.png", where = PluginDescriptor.WHERE_PLUGINMENU, needsRestart = False, fnc=main), + PluginDescriptor(name=_("Picture player"), where = PluginDescriptor.WHERE_FILESCAN, needsRestart = False, fnc = filescan)] diff --git a/lib/python/Plugins/Extensions/PicturePlayer/ui.py b/lib/python/Plugins/Extensions/PicturePlayer/ui.py new file mode 100644 index 0000000..bbc0f44 --- /dev/null +++ b/lib/python/Plugins/Extensions/PicturePlayer/ui.py @@ -0,0 +1,605 @@ +from enigma import ePicLoad, eTimer, getDesktop, gMainDC, eSize + +from Screens.Screen import Screen +from Tools.Directories import resolveFilename, pathExists, SCOPE_MEDIA + +from Components.Pixmap import Pixmap, MovingPixmap +from Components.ActionMap import ActionMap, NumberActionMap +from Components.Sources.StaticText import StaticText +from Components.FileList import FileList +from Components.AVSwitch import AVSwitch +from Components.Sources.List import List +from Components.ConfigList import ConfigList, ConfigListScreen + +from Components.config import config, ConfigSubsection, ConfigInteger, ConfigSelection, ConfigText, ConfigYesNo, KEY_LEFT, KEY_RIGHT, KEY_0, getConfigListEntry + +def getScale(): + return AVSwitch().getFramebufferScale() + +config.pic = ConfigSubsection() +config.pic.framesize = ConfigInteger(default=30, limits=(5, 99)) +config.pic.slidetime = ConfigInteger(default=10, limits=(1, 60)) +config.pic.resize = ConfigSelection(default="1", choices = [("0", _("simple")), ("1", _("better"))]) +config.pic.cache = ConfigYesNo(default=True) +config.pic.lastDir = ConfigText(default=resolveFilename(SCOPE_MEDIA)) +config.pic.infoline = ConfigYesNo(default=True) +config.pic.loop = ConfigYesNo(default=True) +config.pic.bgcolor = ConfigSelection(default="#00000000", choices = [("#00000000", _("black")),("#009eb9ff", _("blue")),("#00ff5a51", _("red")), ("#00ffe875", _("yellow")), ("#0038FF48", _("green"))]) +config.pic.textcolor = ConfigSelection(default="#0038FF48", choices = [("#00000000", _("black")),("#009eb9ff", _("blue")),("#00ff5a51", _("red")), ("#00ffe875", _("yellow")), ("#0038FF48", _("green"))]) +config.pic.fullview_resolution = ConfigSelection(default = None, choices = [(None, _("Same resolution as skin")), ("(720, 576)","720x576"), ("(1280, 720)", "1280x720"), ("(1920, 1080)", "1920x1080")]) + +class picshow(Screen): + skin = """ + + + + + + + + + + + """ + + def __init__(self, session): + Screen.__init__(self, session) + + self["actions"] = ActionMap(["OkCancelActions", "ColorActions", "DirectionActions", "MenuActions"], + { + "cancel": self.KeyExit, + "red": self.KeyExit, + "green": self.KeyGreen, + "yellow": self.KeyYellow, + "menu": self.KeyMenu, + "ok": self.KeyOk + }, -1) + + self["key_red"] = StaticText(_("Close")) + self["key_green"] = StaticText(_("Thumbnails")) + self["key_yellow"] = StaticText("") + self["label"] = StaticText("") + self["thn"] = Pixmap() + + currDir = config.pic.lastDir.value + if not pathExists(currDir): + currDir = "/" + + self.filelist = FileList(currDir, matchingPattern = "(?i)^.*\.(jpeg|jpg|jpe|png|bmp|gif)") + self["filelist"] = self.filelist + self["filelist"].onSelectionChanged.append(self.selectionChanged) + + self.ThumbTimer = eTimer() + self.ThumbTimer.callback.append(self.showThumb) + + self.picload = ePicLoad() + self.picload.PictureData.get().append(self.showPic) + + self.onLayoutFinish.append(self.setConf) + + def showPic(self, picInfo=""): + ptr = self.picload.getData() + if ptr != None: + self["thn"].instance.setPixmap(ptr.__deref__()) + self["thn"].show() + + text = picInfo.split('\n',1) + self["label"].setText(text[1]) + self["key_yellow"].setText(_("Exif")) + + def showThumb(self): + if not self.filelist.canDescent(): + if self.filelist.getCurrentDirectory() and self.filelist.getFilename(): + if self.picload.getThumbnail(self.filelist.getCurrentDirectory() + self.filelist.getFilename()) == 1: + self.ThumbTimer.start(500, True) + + def selectionChanged(self): + if not self.filelist.canDescent(): + self.ThumbTimer.start(500, True) + else: + self["label"].setText("") + self["thn"].hide() + self["key_yellow"].setText("") + + def KeyGreen(self): + #if not self.filelist.canDescent(): + self.session.openWithCallback(self.callbackView, Pic_Thumb, self.filelist.getFileList(), self.filelist.getSelectionIndex(), self.filelist.getCurrentDirectory()) + + def KeyYellow(self): + if not self.filelist.canDescent(): + self.session.open(Pic_Exif, self.picload.getInfo(self.filelist.getCurrentDirectory() + self.filelist.getFilename())) + + def KeyMenu(self): + self.session.openWithCallback(self.setConf ,Pic_Setup) + + def KeyOk(self): + if self.filelist.canDescent(): + self.filelist.descent() + else: + self.session.openWithCallback(self.callbackView, Pic_Full_View, self.filelist.getFileList(), self.filelist.getSelectionIndex(), self.filelist.getCurrentDirectory()) + + def setConf(self, retval=None): + self.setTitle(_("Picture player")) + sc = getScale() + #0=Width 1=Height 2=Aspect 3=use_cache 4=resize_type 5=Background(#AARRGGBB) + self.picload.setPara((self["thn"].instance.size().width(), self["thn"].instance.size().height(), sc[0], sc[1], config.pic.cache.value, int(config.pic.resize.value), "#00000000")) + + def callbackView(self, val=0): + if val > 0: + self.filelist.moveToIndex(val) + + def KeyExit(self): + del self.picload + + if self.filelist.getCurrentDirectory() is None: + config.pic.lastDir.value = "/" + else: + config.pic.lastDir.value = self.filelist.getCurrentDirectory() + + config.pic.save() + self.close() + +#------------------------------------------------------------------------------------------ + +class Pic_Setup(Screen, ConfigListScreen): + + def __init__(self, session): + Screen.__init__(self, session) + # for the skin: first try MediaPlayerSettings, then Setup, this allows individual skinning + self.skinName = ["PicturePlayerSetup", "Setup"] + self.setup_title = _("Settings") + self.onChangedEntry = [] + self.session = session + ConfigListScreen.__init__(self, [], session = session, on_change = self.changedEntry) + self["actions"] = ActionMap(["SetupActions", "MenuActions"], + { + "cancel": self.keyCancel, + "save": self.keySave, + "ok": self.keySave, + "menu": self.closeRecursive, + }, -2) + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("OK")) + self.createSetup() + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + self.setTitle(self.setup_title) + + def createSetup(self): + setup_list = [ + getConfigListEntry(_("Slide show interval (sec.)"), config.pic.slidetime), + getConfigListEntry(_("Scaling mode"), config.pic.resize), + getConfigListEntry(_("Cache thumbnails"), config.pic.cache), + getConfigListEntry(_("Show info line"), config.pic.infoline), + getConfigListEntry(_("Frame size in full view"), config.pic.framesize), + getConfigListEntry(_("Slide picture in loop"), config.pic.loop), + getConfigListEntry(_("Background color"), config.pic.bgcolor), + getConfigListEntry(_("Text color"), config.pic.textcolor), + getConfigListEntry(_("Fulview resulution"), config.pic.fullview_resolution), + ] + self["config"].list = setup_list + self["config"].l.setList(setup_list) + + def keyLeft(self): + ConfigListScreen.keyLeft(self) + + def keyRight(self): + ConfigListScreen.keyRight(self) + + # for summary: + def changedEntry(self): + for x in self.onChangedEntry: + x() + + def getCurrentEntry(self): + return self["config"].getCurrent()[0] + + def getCurrentValue(self): + return str(self["config"].getCurrent()[1].getText()) + + def createSummary(self): + from Screens.Setup import SetupSummary + return SetupSummary + +#--------------------------------------------------------------------------- + +class Pic_Exif(Screen): + skin = """ + + + + + + { + "template": [ MultiContentEntryText(pos = (5, 5), size = (250, 30), flags = RT_HALIGN_LEFT, text = 0), MultiContentEntryText(pos = (260, 5), size = (290, 30), flags = RT_HALIGN_LEFT, text = 1)], + "fonts": [gFont("Regular", 20)], + "itemHeight": 30 + } + + + """ + + def __init__(self, session, exiflist): + Screen.__init__(self, session) + + self["actions"] = ActionMap(["SetupActions", "ColorActions"], + { + "cancel": self.close + }, -1) + + self["key_red"] = StaticText(_("Close")) + + exifdesc = [_("filename")+':', "EXIF-Version:", "Make:", "Camera:", "Date/Time:", "Width / Height:", "Flash used:", "Orientation:", "User Comments:", "Metering Mode:", "Exposure Program:", "Light Source:", "CompressedBitsPerPixel:", "ISO Speed Rating:", "X-Resolution:", "Y-Resolution:", "Resolution Unit:", "Brightness:", "Exposure Time:", "Exposure Bias:", "Distance:", "CCD-Width:", "ApertureFNumber:"] + list = [] + + for x in range(len(exiflist)): + if x>0: + list.append((exifdesc[x], exiflist[x])) + else: + name = exiflist[x].split('/')[-1] + list.append((exifdesc[x], name)) + self["menu"] = List(list) + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + self.setTitle(_("Info")) + +#---------------------------------------------------------------------------------------- + +T_INDEX = 0 +T_FRAME_POS = 1 +T_PAGE = 2 +T_NAME = 3 +T_FULL = 4 + +class Pic_Thumb(Screen): + def __init__(self, session, piclist, lastindex, path): + + self.textcolor = config.pic.textcolor.value + self.color = config.pic.bgcolor.value + textsize = 20 + self.spaceX = 35 + self.picX = 190 + self.spaceY = 30 + self.picY = 200 + + size_w = getDesktop(0).size().width() + size_h = getDesktop(0).size().height() + self.thumbsX = size_w / (self.spaceX + self.picX) # thumbnails in X + self.thumbsY = size_h / (self.spaceY + self.picY) # thumbnails in Y + self.thumbsC = self.thumbsX * self.thumbsY # all thumbnails + + self.positionlist = [] + skincontent = "" + + posX = -1 + for x in range(self.thumbsC): + posY = x / self.thumbsX + posX += 1 + if posX >= self.thumbsX: + posX = 0 + + absX = self.spaceX + (posX*(self.spaceX + self.picX)) + absY = self.spaceY + (posY*(self.spaceY + self.picY)) + self.positionlist.append((absX, absY)) + skincontent += "" + skincontent += "" + + # Screen, backgroundlabel and MovingPixmap + self.skin = " \ + " + skincontent + "" + + Screen.__init__(self, session) + + self["actions"] = ActionMap(["OkCancelActions", "ColorActions", "DirectionActions", "MovieSelectionActions"], + { + "cancel": self.Exit, + "ok": self.KeyOk, + "left": self.key_left, + "right": self.key_right, + "up": self.key_up, + "down": self.key_down, + "showEventInfo": self.StartExif, + }, -1) + + self["frame"] = MovingPixmap() + for x in range(self.thumbsC): + self["label"+str(x)] = StaticText() + self["thumb"+str(x)] = Pixmap() + + self.Thumbnaillist = [] + self.filelist = [] + self.currPage = -1 + self.dirlistcount = 0 + self.path = path + + index = 0 + framePos = 0 + Page = 0 + for x in piclist: + if x[0][1] == False: + self.filelist.append((index, framePos, Page, x[0][0], path + x[0][0])) + index += 1 + framePos += 1 + if framePos > (self.thumbsC -1): + framePos = 0 + Page += 1 + else: + self.dirlistcount += 1 + + self.maxentry = len(self.filelist)-1 + self.index = lastindex - self.dirlistcount + if self.index < 0: + self.index = 0 + + self.picload = ePicLoad() + self.picload.PictureData.get().append(self.showPic) + + self.onLayoutFinish.append(self.setPicloadConf) + + self.ThumbTimer = eTimer() + self.ThumbTimer.callback.append(self.showPic) + + def setPicloadConf(self): + sc = getScale() + self.picload.setPara([self["thumb0"].instance.size().width(), self["thumb0"].instance.size().height(), sc[0], sc[1], config.pic.cache.value, int(config.pic.resize.value), self.color]) + self.paintFrame() + + def paintFrame(self): + #print "index=" + str(self.index) + if self.maxentry < self.index or self.index < 0: + return + + pos = self.positionlist[self.filelist[self.index][T_FRAME_POS]] + self["frame"].moveTo( pos[0], pos[1], 1) + self["frame"].startMoving() + + if self.currPage != self.filelist[self.index][T_PAGE]: + self.currPage = self.filelist[self.index][T_PAGE] + self.newPage() + + def newPage(self): + self.Thumbnaillist = [] + #clear Labels and Thumbnail + for x in range(self.thumbsC): + self["label"+str(x)].setText("") + self["thumb"+str(x)].hide() + #paint Labels and fill Thumbnail-List + for x in self.filelist: + if x[T_PAGE] == self.currPage: + self["label"+str(x[T_FRAME_POS])].setText("(" + str(x[T_INDEX]+1) + ") " + x[T_NAME]) + self.Thumbnaillist.append([0, x[T_FRAME_POS], x[T_FULL]]) + + #paint Thumbnail start + self.showPic() + + def showPic(self, picInfo=""): + for x in range(len(self.Thumbnaillist)): + if self.Thumbnaillist[x][0] == 0: + if self.picload.getThumbnail(self.Thumbnaillist[x][2]) == 1: #zu tun probier noch mal + self.ThumbTimer.start(500, True) + else: + self.Thumbnaillist[x][0] = 1 + break + elif self.Thumbnaillist[x][0] == 1: + self.Thumbnaillist[x][0] = 2 + ptr = self.picload.getData() + if ptr != None: + self["thumb" + str(self.Thumbnaillist[x][1])].instance.setPixmap(ptr.__deref__()) + self["thumb" + str(self.Thumbnaillist[x][1])].show() + + def key_left(self): + self.index -= 1 + if self.index < 0: + self.index = self.maxentry + self.paintFrame() + + def key_right(self): + self.index += 1 + if self.index > self.maxentry: + self.index = 0 + self.paintFrame() + + def key_up(self): + self.index -= self.thumbsX + if self.index < 0: + self.index =self.maxentry + self.paintFrame() + + def key_down(self): + self.index += self.thumbsX + if self.index > self.maxentry: + self.index = 0 + self.paintFrame() + + def StartExif(self): + if self.maxentry < 0: + return + self.session.open(Pic_Exif, self.picload.getInfo(self.filelist[self.index][T_FULL])) + + def KeyOk(self): + if self.maxentry < 0: + return + self.old_index = self.index + self.session.openWithCallback(self.callbackView, Pic_Full_View, self.filelist, self.index, self.path) + + def callbackView(self, val=0): + self.index = val + if self.old_index != self.index: + self.paintFrame() + def Exit(self): + del self.picload + self.close(self.index + self.dirlistcount) + +#--------------------------------------------------------------------------- + +class Pic_Full_View(Screen): + def __init__(self, session, filelist, index, path): + + self.textcolor = config.pic.textcolor.value + self.bgcolor = config.pic.bgcolor.value + space = config.pic.framesize.value + + self.size_w = size_w = getDesktop(0).size().width() + self.size_h = size_h = getDesktop(0).size().height() + + if config.pic.fullview_resolution.value and (size_w, size_h) != eval(config.pic.fullview_resolution.value): + (size_w, size_h) = eval(config.pic.fullview_resolution.value) + gMainDC.getInstance().setResolution(size_w, size_h) + getDesktop(0).resize(eSize(size_w, size_h)) + + self.skin = " \ + \ + \ + \ + " + + Screen.__init__(self, session) + + self["actions"] = ActionMap(["OkCancelActions", "ColorActions", "DirectionActions", "MovieSelectionActions"], + { + "cancel": self.Exit, + "green": self.PlayPause, + "yellow": self.PlayPause, + "blue": self.nextPic, + "red": self.prevPic, + "left": self.prevPic, + "right": self.nextPic, + "showEventInfo": self.StartExif, + }, -1) + + self["point"] = Pixmap() + self["pic"] = Pixmap() + self["play_icon"] = Pixmap() + self["file"] = StaticText(_("please wait, loading picture...")) + + self.old_index = 0 + self.filelist = [] + self.lastindex = index + self.currPic = [] + self.shownow = True + self.dirlistcount = 0 + + for x in filelist: + if len(filelist[0]) == 3: #orig. filelist + if x[0][1] == False: + self.filelist.append(path + x[0][0]) + else: + self.dirlistcount += 1 + elif len(filelist[0]) == 2: #scanlist + if x[0][1] == False: + self.filelist.append(x[0][0]) + else: + self.dirlistcount += 1 + else: # thumbnaillist + self.filelist.append(x[T_FULL]) + + self.maxentry = len(self.filelist)-1 + self.index = index - self.dirlistcount + if self.index < 0: + self.index = 0 + + self.picload = ePicLoad() + self.picload.PictureData.get().append(self.finish_decode) + + self.slideTimer = eTimer() + self.slideTimer.callback.append(self.slidePic) + + if self.maxentry >= 0: + self.onLayoutFinish.append(self.setPicloadConf) + + def setPicloadConf(self): + sc = getScale() + self.picload.setPara([self["pic"].instance.size().width(), self["pic"].instance.size().height(), sc[0], sc[1], 0, int(config.pic.resize.value), self.bgcolor]) + + self["play_icon"].hide() + if config.pic.infoline.value == False: + self["file"].setText("") + self.start_decode() + + def ShowPicture(self): + if self.shownow and len(self.currPic): + self.shownow = False + if config.pic.infoline.value: + self["file"].setText(self.currPic[0]) + else: + self["file"].setText("") + self.lastindex = self.currPic[1] + self["pic"].instance.setPixmap(self.currPic[2].__deref__()) + self.currPic = [] + + self.next() + self.start_decode() + + def finish_decode(self, picInfo=""): + self["point"].hide() + ptr = self.picload.getData() + if ptr != None: + text = "" + try: + text = picInfo.split('\n',1) + text = "(" + str(self.index+1) + "/" + str(self.maxentry+1) + ") " + text[0].split('/')[-1] + except: + pass + self.currPic = [] + self.currPic.append(text) + self.currPic.append(self.index) + self.currPic.append(ptr) + self.ShowPicture() + + def start_decode(self): + self.picload.startDecode(self.filelist[self.index]) + self["point"].show() + + def next(self): + self.index += 1 + if self.index > self.maxentry: + self.index = 0 + + def prev(self): + self.index -= 1 + if self.index < 0: + self.index = self.maxentry + + def slidePic(self): + print "slide to next Picture index=" + str(self.lastindex) + if config.pic.loop.value==False and self.lastindex == self.maxentry: + self.PlayPause() + self.shownow = True + self.ShowPicture() + + def PlayPause(self): + if self.slideTimer.isActive(): + self.slideTimer.stop() + self["play_icon"].hide() + else: + self.slideTimer.start(config.pic.slidetime.value*1000) + self["play_icon"].show() + self.nextPic() + + def prevPic(self): + self.currPic = [] + self.index = self.lastindex + self.prev() + self.start_decode() + self.shownow = True + + def nextPic(self): + self.shownow = True + self.ShowPicture() + + def StartExif(self): + if self.maxentry < 0: + return + self.session.open(Pic_Exif, self.picload.getInfo(self.filelist[self.lastindex])) + + def Exit(self): + del self.picload + + if config.pic.fullview_resolution.value and (self.size_w, self.size_h) != eval(config.pic.fullview_resolution.value): + gMainDC.getInstance().setResolution(self.size_w, self.size_h) + getDesktop(0).resize(eSize(self.size_w, self.size_h)) + + self.close(self.lastindex + self.dirlistcount) + diff --git a/lib/python/Plugins/Extensions/SocketMMI/Makefile.am b/lib/python/Plugins/Extensions/SocketMMI/Makefile.am new file mode 100644 index 0000000..7263738 --- /dev/null +++ b/lib/python/Plugins/Extensions/SocketMMI/Makefile.am @@ -0,0 +1,8 @@ +SUBDIRS = src meta + +installdir = $(pkglibdir)/python/Plugins/Extensions/SocketMMI + +install_PYTHON = \ + __init__.py \ + plugin.py \ + SocketMMI.py diff --git a/lib/python/Plugins/Extensions/SocketMMI/SocketMMI.py b/lib/python/Plugins/Extensions/SocketMMI/SocketMMI.py new file mode 100644 index 0000000..65142e3 --- /dev/null +++ b/lib/python/Plugins/Extensions/SocketMMI/SocketMMI.py @@ -0,0 +1,33 @@ +from Screens.Ci import MMIDialog +import socketmmi + +class SocketMMIMessageHandler: + def __init__(self): + self.session = None + self.dlgs = { } + socketmmi.getSocketStateChangedCallbackList().append(self.socketStateChanged) + + def setSession(self, session): + self.session = session + + def connected(self): + return socketmmi.getState(0) + + def getName(self): + return socketmmi.getName(0) + + def startMMI(self): + slot = 0 + self.dlgs[slot] = self.session.openWithCallback(self.dlgClosed, MMIDialog, slot, 2, socketmmi, _("wait for mmi...")) + + def socketStateChanged(self, slot): + if slot in self.dlgs: + self.dlgs[slot].ciStateChanged() + elif socketmmi.availableMMI(slot) == 1: + if self.session: + self.dlgs[slot] = self.session.openWithCallback(self.dlgClosed, MMIDialog, slot, 3, socketmmi, _("wait for mmi...")) + + def dlgClosed(self, slot): + if slot in self.dlgs: + del self.dlgs[slot] + diff --git a/lib/python/Plugins/Extensions/SocketMMI/__init__.py b/lib/python/Plugins/Extensions/SocketMMI/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/lib/python/Plugins/Extensions/SocketMMI/__init__.py @@ -0,0 +1 @@ + diff --git a/lib/python/Plugins/Extensions/SocketMMI/meta/Makefile.am b/lib/python/Plugins/Extensions/SocketMMI/meta/Makefile.am new file mode 100644 index 0000000..67388bc --- /dev/null +++ b/lib/python/Plugins/Extensions/SocketMMI/meta/Makefile.am @@ -0,0 +1,3 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_socketmmi.xml diff --git a/lib/python/Plugins/Extensions/SocketMMI/meta/plugin_socketmmi.xml b/lib/python/Plugins/Extensions/SocketMMI/meta/plugin_socketmmi.xml new file mode 100644 index 0000000..3eaf8fc --- /dev/null +++ b/lib/python/Plugins/Extensions/SocketMMI/meta/plugin_socketmmi.xml @@ -0,0 +1,15 @@ + + + + + + Dream Multimedia + SocketMMI + enigma2-plugin-extensions-socketmmi + Frontend for /tmp/mmi.socket + Python frontend for /tmp/mmi.socket. + + + + + diff --git a/lib/python/Plugins/Extensions/SocketMMI/plugin.py b/lib/python/Plugins/Extensions/SocketMMI/plugin.py new file mode 100644 index 0000000..568cde2 --- /dev/null +++ b/lib/python/Plugins/Extensions/SocketMMI/plugin.py @@ -0,0 +1,28 @@ +from Plugins.Plugin import PluginDescriptor +from SocketMMI import SocketMMIMessageHandler + +socketHandler = None + +def main(session, **kwargs): + socketHandler.startMMI() + +def menu(menuid, **kwargs): + if menuid == "setup" and socketHandler and socketHandler.connected(): + return [(socketHandler.getName(), main, "socket_mmi", 0)] + return [ ] + +def sessionstart(reason, session): + socketHandler.setSession(session) + +def autostart(reason, **kwargs): + global socketHandler + if reason == 1: + socketHandler = None + else: + socketHandler = SocketMMIMessageHandler() + +def Plugins(**kwargs): + return [ PluginDescriptor(name = "SocketMMI", description = _("Python frontend for /tmp/mmi.socket"), where = PluginDescriptor.WHERE_MENU, needsRestart = True, fnc = menu), + PluginDescriptor(where = PluginDescriptor.WHERE_SESSIONSTART, needsRestart = True, fnc = sessionstart), + PluginDescriptor(where = PluginDescriptor.WHERE_AUTOSTART, needsRestart = True, fnc = autostart) ] + diff --git a/lib/python/Plugins/Extensions/SocketMMI/src/Makefile.am b/lib/python/Plugins/Extensions/SocketMMI/src/Makefile.am new file mode 100644 index 0000000..5ce7d03 --- /dev/null +++ b/lib/python/Plugins/Extensions/SocketMMI/src/Makefile.am @@ -0,0 +1,15 @@ +AM_CPPFLAGS = \ + -I$(top_srcdir) \ + -I$(top_srcdir)/include \ + -include Python.h \ + -include $(top_builddir)/enigma2_config.h + +plugindir = $(pkglibdir)/python/Plugins/Extensions/SocketMMI + +plugin_LTLIBRARIES = socketmmi.la + +socketmmi_la_SOURCES = \ + socket_mmi.cpp \ + socket_mmi.h + +socketmmi_la_LDFLAGS = -avoid-version -module diff --git a/lib/python/Plugins/Extensions/SocketMMI/src/socket_mmi.cpp b/lib/python/Plugins/Extensions/SocketMMI/src/socket_mmi.cpp new file mode 100644 index 0000000..9a69de3 --- /dev/null +++ b/lib/python/Plugins/Extensions/SocketMMI/src/socket_mmi.cpp @@ -0,0 +1,479 @@ +#include "socket_mmi.h" + +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#define MAX_LENGTH_BYTES 4 +#define MIN_LENGTH_BYTES 1 +//#define MMIDEBUG + +eSocket_UI *eSocket_UI::instance; + +eSocket_UI::eSocket_UI() + :eMMI_UI(1) +{ + ASSERT(!instance); + instance = this; + CONNECT(handler.mmi_progress, eMMI_UI::processMMIData); +} + +eSocket_UI *eSocket_UI::getInstance() +{ + return instance; +} + +void eSocket_UI::setInit(int) +{ + //NYI +} + +void eSocket_UI::setReset(int) +{ + //NYI +} + +int eSocket_UI::startMMI(int) +{ + unsigned char buf[]={0x9F,0x80,0x22,0x00}; // ENTER MMI + if (handler.send_to_mmisock( buf, 4 )) + { + eDebug("eSocket_UI::startMMI failed"); + return -1; + } + return 0; +} + +int eSocket_UI::stopMMI(int) +{ + unsigned char buf[]={0x9F,0x88,0x00,0x00}; // CLOSE MMI + if (handler.send_to_mmisock( buf, 4 )) + { + eDebug("eSocket_UI::stopMMI failed"); + return -1; + } + return 0; +} + +int eSocket_UI::answerMenu(int, int answer) +{ + unsigned char data[]={0x9f,0x88,0x0B,0x01,0x00}; + data[4] = answer & 0xff; + if (handler.send_to_mmisock( data, 5 )) + { + eDebug("eSocket_UI::answerMenu failed"); + return -1; + } + return 0; +} + +int eSocket_UI::answerEnq(int, char *answer) +{ + unsigned int len = strlen(answer); + unsigned char data[4+len+MAX_LENGTH_BYTES]; + data[0] = 0x9f; + data[1] = 0x88; + data[2] = 0x08; + int LengthBytes=eDVBCISession::buildLengthField(data+3, len+1); + data[3+LengthBytes] = 0x01; + memcpy(data+4+LengthBytes, answer, len); + if (handler.send_to_mmisock( data, len+4+LengthBytes )) + { + eDebug("eSocket_UI::answerEnq failed"); + return -1; + } + return 0; +} + +int eSocket_UI::cancelEnq(int) +{ + unsigned char data[]={0x9f,0x88,0x08,0x01,0x00}; + if (handler.send_to_mmisock( data, 5 )) + { + eDebug("eSocket_UI::cancelEnq failed"); + return -1; + } + return 0; +} + +int eSocket_UI::getState(int) +{ + return handler.connected() ? 2 : 0; +} + +int eSocket_UI::getMMIState(int) +{ + return handler.connected(); +} + +//FIXME: correct "run/startlevel" +eAutoInitP0 init_socketui(eAutoInitNumbers::rc, "Socket MMI"); + +int eSocketMMIHandler::send_to_mmisock( void* buf, size_t len) +{ + ssize_t ret = write(connfd, buf, len); + if ( ret < 0 ) + eDebug("[eSocketMMIHandler] write (%m)"); + else if ( (size_t)ret != len ) + eDebug("[eSocketMMIHandler] only %zd bytes sent.. %zu bytes should be sent", ret, len ); + else + return 0; + return ret; +} + +eSocketMMIHandler::eSocketMMIHandler() + :buffer(512), connfd(-1), sockname("/tmp/mmi.socket"), name(0) +{ + memset(&servaddr, 0, sizeof(struct sockaddr_un)); + servaddr.sun_family = AF_UNIX; + unlink(sockname); + strcpy(servaddr.sun_path, sockname); + clilen = sizeof(servaddr.sun_family) + strlen(servaddr.sun_path); + if ((listenfd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) + { + eDebug("[eSocketMMIHandler] socket (%m)"); + return; + } + + int val = 1; + if (setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &val, sizeof(val)) == -1) + eDebug("[eSocketMMIHandler] SO_REUSEADDR (%m)"); + else if ((val = fcntl(listenfd, F_GETFL)) == -1) + eDebug("[eSocketMMIHandler] F_GETFL (%m)"); + else if (fcntl(listenfd, F_SETFL, val | O_NONBLOCK) == -1) + eDebug("[eSocketMMIHandler] F_SETFL (%m)"); + else if (bind(listenfd, (struct sockaddr *) &servaddr, clilen) == -1) + eDebug("[eSocketMMIHandler] bind (%m)"); + else if (listen(listenfd, 0) == -1) + eDebug("[eSocketMMIHandler] listen (%m)"); + else { + listensn = eSocketNotifier::create( eApp, listenfd, POLLIN ); + listensn->start(); + CONNECT( listensn->activated, eSocketMMIHandler::listenDataAvail ); + eDebug("[eSocketMMIHandler] created successfully"); + return; + } + + close(listenfd); + listenfd = -1; +} + +#define CMD_SET_NAME "\x01\x02\x03\x04" + +void eSocketMMIHandler::listenDataAvail(int what) +{ + if (what & POLLIN) { + if ( connsn ) { + eDebug("[eSocketMMIHandler] connsn != NULL"); + return; + } + connfd = accept(listenfd, (struct sockaddr *) &servaddr, (socklen_t *) &clilen); + if (connfd == -1) { + eDebug("[eSocketMMIHandler] accept (%m)"); + return; + } + + int val; + if ((val = fcntl(connfd, F_GETFL)) == -1) + eDebug("[eSocketMMIHandler] F_GETFL (%m)"); + else if (fcntl(connfd, F_SETFL, val | O_NONBLOCK) == -1) + eDebug("[eSocketMMIHandler] F_SETFL (%m)"); + else { + connsn = eSocketNotifier::create( eApp, connfd, POLLIN|POLLHUP|POLLERR ); + CONNECT( connsn->activated, eSocketMMIHandler::connDataAvail ); + return; + } + + close(connfd); + connfd = -1; + } +} + +void eSocketMMIHandler::connDataAvail(int what) +{ + if (what & (POLLIN | POLLPRI | POLLRDNORM | POLLRDBAND)) { + char msgbuffer[4096]; + ssize_t length = read(connfd, msgbuffer, sizeof(msgbuffer)); + + if (length == -1) { + if (errno != EAGAIN && errno != EINTR && errno != EBUSY) { + eDebug("[eSocketMMIHandler] read (%m)"); + what |= POLLERR; + } + } else if (length == 0){ + what |= POLLHUP; + } else if ((!name) && (length > 4) && (!memcmp(msgbuffer, CMD_SET_NAME, 4))) { + length -= 4; + delete [] name; + name = new char[length + 1]; + memcpy(name, &msgbuffer[4], length); + name[length] = '\0'; + eDebug("MMI NAME %s", name); + } else { + int len = length; + unsigned char *data = (unsigned char*)msgbuffer; + int clear = 1; + // If a new message starts, then the previous message + // should already have been processed. Otherwise the + // previous message was incomplete and should therefore + // be deleted. + if ((len >= 1) && (data[0] != 0x9f)) + clear = 0; + if ((len >= 2) && (data[1] != 0x88)) + clear = 0; + if (clear) + { + buffer.clear(); +#ifdef MMIDEBUG + eDebug("clear buffer"); +#endif + } +#ifdef MMIDEBUG + eDebug("Put to buffer:"); + for (int i=0; i < len; ++i) + eDebugNoNewLine("%02x ", data[i]); + eDebug("\n--------"); +#endif + buffer.write( data, len ); + + while ( buffer.size() >= (3 + MIN_LENGTH_BYTES) ) + { + unsigned char tmp[3+MAX_LENGTH_BYTES]; + buffer.peek(tmp, 3+MIN_LENGTH_BYTES); + if (tmp[0] != 0x9f || tmp[1] != 0x88) + { + buffer.skip(1); +#ifdef MMIDEBUG + eDebug("skip %02x", tmp[0]); +#endif + continue; + } + if (tmp[3] & 0x80) { + int peekLength = (tmp[3] & 0x7f) + 4; + if (buffer.size() < peekLength) + continue; + buffer.peek(tmp, peekLength); + } + int size=0; + int LengthBytes=eDVBCISession::parseLengthField(tmp+3, size); + int messageLength = 3+LengthBytes+size; + if ( buffer.size() >= messageLength ) + { + unsigned char dest[messageLength]; + buffer.read(dest, messageLength); +#ifdef MMIDEBUG + eDebug("dump mmi:"); + for (int i=0; i < messageLength; ++i) + eDebugNoNewLine("%02x ", dest[i]); + eDebug("\n--------"); +#endif + /*emit*/ mmi_progress(0, dest, (const void*)(dest+3+LengthBytes), messageLength-3-LengthBytes); + } + } + } + } + + if (what & (POLLERR | POLLHUP)) { + eDebug("pollhup/pollerr"); + closeConn(); + /*emit*/ mmi_progress(0, (const unsigned char*)"\x9f\x88\x00", "\x00", 1); + } +} + +void eSocketMMIHandler::closeConn() +{ + if ( connfd != -1 ) + { + close(connfd); + connfd=-1; + } + connsn=0; + if ( name ) + { + delete [] name; + name=0; + } +} + +eSocketMMIHandler::~eSocketMMIHandler() +{ + closeConn(); + unlink(sockname); +} + +extern "C" { + +static PyObject * +socketmmi_get_socket_state_changed_cb_list(PyObject *self) +{ + return eSocket_UI::getInstance()->socketStateChanged.get(); +} + +static PyObject * +socketmmi_set_init(PyObject *self, PyObject *args) +{ + int slot; + if (PyTuple_Size(args) != 1 || !PyArg_ParseTuple(args, "i", &slot)) + return NULL; + eSocket_UI::getInstance()->setInit(slot); + Py_RETURN_NONE; +} + +static PyObject * +socketmmi_set_reset(PyObject *self, PyObject *args) +{ + int slot; + if (PyTuple_Size(args) != 1 || !PyArg_ParseTuple(args, "i", &slot)) + return NULL; + eSocket_UI::getInstance()->setReset(slot); + Py_RETURN_NONE; +} + +static PyObject * +socketmmi_available_mmi(PyObject *self, PyObject *args) +{ + int slot; + if (PyTuple_Size(args) != 1 || !PyArg_ParseTuple(args, "i", &slot)) + return NULL; + return PyInt_FromLong(eSocket_UI::getInstance()->availableMMI(slot)); +} + +static PyObject * +socketmmi_get_mmi_screen(PyObject *self, PyObject *args) +{ + int slot; + if (PyTuple_Size(args) != 1 || !PyArg_ParseTuple(args, "i", &slot)) + return NULL; + return eSocket_UI::getInstance()->getMMIScreen(slot); +} + +static PyObject * +socketmmi_start_mmi(PyObject *self, PyObject *args) +{ + int slot; + if (PyTuple_Size(args) != 1 || !PyArg_ParseTuple(args, "i", &slot)) + return NULL; + return PyInt_FromLong(eSocket_UI::getInstance()->startMMI(slot)); +} + +static PyObject * +socketmmi_stop_mmi(PyObject *self, PyObject *args) +{ + int slot; + if (PyTuple_Size(args) != 1 || !PyArg_ParseTuple(args, "i", &slot)) + return NULL; + return PyInt_FromLong(eSocket_UI::getInstance()->stopMMI(slot)); +} + +static PyObject * +socketmmi_answer_menu(PyObject *self, PyObject *args) +{ + int slot, answer; + if (PyTuple_Size(args) != 2 || !PyArg_ParseTuple(args, "ii", &slot, &answer)) + return NULL; + return PyInt_FromLong(eSocket_UI::getInstance()->answerMenu(slot, answer)); +} + +static PyObject * +socketmmi_answer_enq(PyObject *self, PyObject *args) +{ + int slot; + char *answer; + if (PyTuple_Size(args) != 2 || !PyArg_ParseTuple(args, "is", &slot, &answer)) + return NULL; + return PyInt_FromLong(eSocket_UI::getInstance()->answerEnq(slot, answer)); +} + +static PyObject * +socketmmi_cancel_enq(PyObject *self, PyObject *args) +{ + int slot; + if (PyTuple_Size(args) != 1 || !PyArg_ParseTuple(args, "i", &slot)) + return NULL; + return PyInt_FromLong(eSocket_UI::getInstance()->cancelEnq(slot)); +} + +static PyObject * +socketmmi_get_state(PyObject *self, PyObject *args) +{ + int slot; + if (PyTuple_Size(args) != 1 || !PyArg_ParseTuple(args, "i", &slot)) + return NULL; + return PyInt_FromLong(eSocket_UI::getInstance()->getState(slot)); +} + +static PyObject * +socketmmi_get_mmi_state(PyObject *self, PyObject *args) +{ + int slot; + if (PyTuple_Size(args) != 1 || !PyArg_ParseTuple(args, "i", &slot)) + return NULL; + return PyInt_FromLong(eSocket_UI::getInstance()->getMMIState(slot)); +} + +static PyObject * +socketmmi_get_name(PyObject *self, PyObject *args) +{ + int slot; + if (PyTuple_Size(args) != 1 || !PyArg_ParseTuple(args, "i", &slot)) + return NULL; + return PyString_FromString(eSocket_UI::getInstance()->getName(slot)); +} + +static PyMethodDef module_methods[] = { + {"getSocketStateChangedCallbackList", (PyCFunction)socketmmi_get_socket_state_changed_cb_list, METH_NOARGS, + "get socket state change callback list" + }, + {"setInit", (PyCFunction)socketmmi_set_init, METH_VARARGS, + "set init" + }, + {"setReset", (PyCFunction)socketmmi_set_reset, METH_VARARGS, + "set reset" + }, + {"availableMMI", (PyCFunction)socketmmi_available_mmi, METH_VARARGS, + "available mmi" + }, + {"getMMIScreen", (PyCFunction)socketmmi_get_mmi_screen, METH_VARARGS, + "get mmi screen" + }, + {"startMMI", (PyCFunction)socketmmi_start_mmi, METH_VARARGS, + "start mmi" + }, + {"stopMMI", (PyCFunction)socketmmi_stop_mmi, METH_VARARGS, + "start mmi" + }, + {"answerMenu", (PyCFunction)socketmmi_answer_menu, METH_VARARGS, + "answer menu" + }, + {"answerEnq", (PyCFunction)socketmmi_answer_enq, METH_VARARGS, + "answer enq" + }, + {"cancelEnq", (PyCFunction)socketmmi_cancel_enq, METH_VARARGS, + "cancel enq" + }, + {"getState", (PyCFunction)socketmmi_get_state, METH_VARARGS, + "get state of socket" + }, + {"getMMIState", (PyCFunction)socketmmi_get_mmi_state, METH_VARARGS, + "get state of mmi" + }, + {"getName", (PyCFunction)socketmmi_get_name, METH_VARARGS, + "get name of socket user" + }, + {NULL, NULL, 0, NULL} /* Sentinel */ +}; + +PyMODINIT_FUNC +initsocketmmi(void) +{ + Py_InitModule3("socketmmi", module_methods, + "Module that implements mmi via unix domain socket."); +} +}; diff --git a/lib/python/Plugins/Extensions/SocketMMI/src/socket_mmi.h b/lib/python/Plugins/Extensions/SocketMMI/src/socket_mmi.h new file mode 100644 index 0000000..063e1d5 --- /dev/null +++ b/lib/python/Plugins/Extensions/SocketMMI/src/socket_mmi.h @@ -0,0 +1,62 @@ +#ifndef __socket_mmi_h +#define __socket_mmi_h + +#include +#include +#include + +#ifndef SWIG +#include +#include +#include +#include +#include +class eSocketMMIHandler: public Object +{ + eIOBuffer buffer; + int listenfd, connfd, clilen; + struct sockaddr_un servaddr; + ePtr listensn, connsn; + void listenDataAvail(int what); + void connDataAvail(int what); + void closeConn(); + const char *sockname; + char *name; +public: + const char *getName() const { return name; } + Signal4 mmi_progress; + int send_to_mmisock( void *, size_t ); + bool connected() { return !!connsn; } + eSocketMMIHandler(); + ~eSocketMMIHandler(); +}; +#endif + +class eSocket_UI: public eMMI_UI +{ + eSocketMMIHandler handler; + static eSocket_UI *instance; +#ifdef SWIG + eSocket_UI(); + ~eSocket_UI(); +#endif + void stateChanged(int val) { socketStateChanged(val); } +public: + PSignal1 socketStateChanged; +#ifndef SWIG + eSocket_UI(); +#endif + static eSocket_UI *getInstance(); + void setInit(int slot); + void setReset(int slot); + int startMMI(int slot); + int stopMMI(int slot); + int answerMenu(int slot, int answer); + int answerEnq(int slot, char *val); + int cancelEnq(int slot); + int getState(int slot); + int getMMIState(int slot); + const char *getName(int) const { return handler.getName() ? handler.getName() : "MMI Socket"; } +}; + +#endif diff --git a/lib/python/Plugins/Extensions/TuxboxPlugins/Makefile.am b/lib/python/Plugins/Extensions/TuxboxPlugins/Makefile.am new file mode 100644 index 0000000..d87702f --- /dev/null +++ b/lib/python/Plugins/Extensions/TuxboxPlugins/Makefile.am @@ -0,0 +1,11 @@ +installdir = $(pkglibdir)/python/Plugins/Extensions/TuxboxPlugins + +SUBDIRS = meta + +install_PYTHON = \ + __init__.py \ + plugin.py \ + pluginrunner.py \ + tuxbox.png + + diff --git a/lib/python/Plugins/Extensions/TuxboxPlugins/__init__.py b/lib/python/Plugins/Extensions/TuxboxPlugins/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/Extensions/TuxboxPlugins/meta/Makefile.am b/lib/python/Plugins/Extensions/TuxboxPlugins/meta/Makefile.am new file mode 100644 index 0000000..1ab8aee --- /dev/null +++ b/lib/python/Plugins/Extensions/TuxboxPlugins/meta/Makefile.am @@ -0,0 +1,3 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_tuxboxplugins.xml diff --git a/lib/python/Plugins/Extensions/TuxboxPlugins/meta/plugin_tuxboxplugins.xml b/lib/python/Plugins/Extensions/TuxboxPlugins/meta/plugin_tuxboxplugins.xml new file mode 100644 index 0000000..7ca1082 --- /dev/null +++ b/lib/python/Plugins/Extensions/TuxboxPlugins/meta/plugin_tuxboxplugins.xml @@ -0,0 +1,15 @@ + + + + + + Dream Multimedia + TuxboxPlugins + TuxboxPlugins + Execute TuxboxPlugins + Allows the execution of TuxboxPlugins. + + + + + diff --git a/lib/python/Plugins/Extensions/TuxboxPlugins/plugin.py b/lib/python/Plugins/Extensions/TuxboxPlugins/plugin.py new file mode 100644 index 0000000..91dd992 --- /dev/null +++ b/lib/python/Plugins/Extensions/TuxboxPlugins/plugin.py @@ -0,0 +1,43 @@ +# must be fixed for the new plugin interface +from Tools.BoundFunction import boundFunction +from Tools.Directories import pathExists +from Plugins.Plugin import PluginDescriptor +from pluginrunner import PluginRunner + +from os import listdir + +TUXBOX_PLUGINS_PATH = "/usr/lib/tuxbox/plugins/" + +def getPlugins(): + pluginlist = [] + + if pathExists(TUXBOX_PLUGINS_PATH): + dir = listdir(TUXBOX_PLUGINS_PATH) + + for x in dir: + if x[-3:] == "cfg": + params = getPluginParams(x) + pluginlist.append(PluginDescriptor(name=params["name"], description=params["desc"], where = PluginDescriptor.WHERE_PLUGINMENU, icon="tuxbox.png", needsRestart = True, fnc=boundFunction(main, plugin=x))) + + return pluginlist + +def getPluginParams(file): + params = {} + try: + file = open(TUXBOX_PLUGINS_PATH + file, "r") + for x in file.readlines(): + split = x.split("=") + params[split[0]] = split[1] + file.close() + except IOError: + print "no tuxbox plugins found" + + return params + +def main(session, plugin, **kwargs): + print "Running plugin " + plugin[:-4] + ".so with config file", plugin + print getPluginParams(plugin) + session.open(PluginRunner, plugin[:-4].split(".so")[0]) + +def Plugins(**kwargs): + return getPlugins() diff --git a/lib/python/Plugins/Extensions/TuxboxPlugins/pluginrunner.py b/lib/python/Plugins/Extensions/TuxboxPlugins/pluginrunner.py new file mode 100644 index 0000000..829fc6a --- /dev/null +++ b/lib/python/Plugins/Extensions/TuxboxPlugins/pluginrunner.py @@ -0,0 +1,37 @@ +from enigma import eDBoxLCD, eRCInput, fbClass, eConsoleAppContainer +from Screens.Screen import Screen +from Screens.MessageBox import MessageBox + +class PluginRunner(Screen): + skin = """ + + """ + def __init__(self, session, pluginname, args = None): + self.skin = PluginRunner.skin + Screen.__init__(self, session) + self.container = eConsoleAppContainer() + self.container.appClosed.append(self.finishedExecution) + self.runPlugin(pluginname) + + def runPlugin(self, pluginname): + eDBoxLCD.getInstance().lock() + eRCInput.getInstance().lock() + fbClass.getInstance().lock() + print "executing:", ("pluginlauncher -x %s" % pluginname) + if self.container.execute("pluginlauncher -x %s" % pluginname): + self.finishedExecution(None) + + def finishedExecution(self, retval = 1): + print "PluginRunner retval:", retval + fbClass.getInstance().unlock() + eRCInput.getInstance().unlock() + eDBoxLCD.getInstance().unlock() + + if retval is None or retval != 1: + self.session.openWithCallback( + self.finishedExecution, + MessageBox, + _("Error executing plugin") % (param) + ) + else: + self.close() diff --git a/lib/python/Plugins/Extensions/TuxboxPlugins/tuxbox.png b/lib/python/Plugins/Extensions/TuxboxPlugins/tuxbox.png new file mode 100644 index 0000000000000000000000000000000000000000..3c2feeec4ee4c285f8f2f0f9c621aea8f4626f23 GIT binary patch literal 1745 zcmV;?1}^!DP)pVOm{cWL#umQ*T67XL37u zUtVTyXk%i9VjGfS09|NwSZj4=XJun(YFuk^VrynWeqUf~cWP*Cgl8>#X+vaeb7O9A zU2l47Y-wn0Z$N@)a&KZ_bAEeqPGxj@p=}0Hg=cJZd}?)pa&&QJc!O+rcxrinr*Z&+ zbY5_Ge|&aib9Z`be2AWQA)0&-dU$+peuH^?c#nKNYk`JxeTsN}e{O+{a)F0nWl`JqR*HC)0Pg(p8%@prW7Dq8g^5pxdGk%cn5ZtN@>&6_rz{0=5zQe%8#lXMr&J^>}0K>+@%3}4@AkWFj&CJ8i%g@fx&DGD&&C=D;)6m@4)z;hH+T7XT;@{xq==SKr z>Fen2@9XXI_3-lV^Y!xi^z!!j_4@hm`TY3%{rdU;|Nj5{ql>$i00001bW%=J06^y0 zW&i*H32;bRa{vGf6951U69E94oEQKA00(qQO+^RR0SgZ>Fc1;CK>z>)S4l)cR5;6h z(@SVvRTu~G|2gNr=AL}v z77osA;eO+WP6=i4bN4d|PAN?kl`Er3l`zgZqbxqOOowJBbKq-+A*&;e$XrQz7k@hH z;`->E7vFu$9Dn`|f}cm4Sb5Powa}FYg282Fa1#9W#k87y?mJIvBXi^gSCgnT4RT{- z4sKoZ8~s$#E&Vbw=eLR3S}pt3$-Ot7nGs)T#cy|(mfBL@;*5_lh3P1?oyeDdk@Lci zIWSe=z^(_sVz{YPJ000ehF z`d)N{K5>6NVBZA*@^QJ2V~@q)#^9>t5Zx+Q&!zSsp3$1!NjRkh0A(SB5pxhz;bPcUmn-i906QXewzRy~OtejLcdpuA_Y~rGXLHl!>Nj=k$5*Zb5a@X94l$IvModct{Y*_Ng0^R z<10lZ2$amJN>Nx|wxMHD${ + + + + """ + + def __init__(self, session, scanTuner, scanNetwork, scanFrequency, scanSymbolRate, scanModulation, keepNumbers, hdList): + Screen.__init__(self, session) + self.scanTuner = scanTuner + self.scanNetwork = scanNetwork + self.scanFrequency = scanFrequency + self.scanSymbolRate = scanSymbolRate + self.scanModulation = scanModulation + self.keepNumbers = keepNumbers + self.hdList = hdList + + self["frontend"] = Pixmap() + self["scan_progress"] = ProgressBar() + self["scan_state"] = Label(_("scan state")) + + self.prevservice = self.session.nav.getCurrentlyPlayingServiceReference() + self.session.nav.stopService() + + self["actions"] = ActionMap(["OkCancelActions"], + { + "ok": self.ok, + "cancel": self.cancel + }) + + self.onFirstExecBegin.append(self.doServiceScan) + + def doServiceScan(self): + self["scan"] = CableScan(self["scan_state"], self["scan_progress"], self.scanTuner, self.scanNetwork, self.scanFrequency, self.scanSymbolRate, self.scanModulation, self.keepNumbers, self.hdList) + + def restoreService(self): + if self.prevservice: + self.session.nav.playService(self.prevservice) + + def ok(self): + if self["scan"].isDone(): + self.restoreService() + self.close() + + def cancel(self): + self.restoreService() + self.close() + +config.plugins.CableScan = ConfigSubsection() +config.plugins.CableScan.keepnumbering = ConfigYesNo(default = False) +config.plugins.CableScan.hdlist = ConfigYesNo(default = False) +config.plugins.CableScan.frequency = ConfigInteger(default = 323, limits = (1, 999)) +config.plugins.CableScan.symbolrate = ConfigInteger(default = 6875, limits = (1, 9999)) +config.plugins.CableScan.networkid = ConfigInteger(default = 0, limits = (0, 99999)) +config.plugins.CableScan.modulation = ConfigSelection( + choices = + [(str(eDVBFrontendParametersCable.Modulation_QAM16), "QAM16"), + (str(eDVBFrontendParametersCable.Modulation_QAM32), "QAM32"), + (str(eDVBFrontendParametersCable.Modulation_QAM64), "QAM64"), + (str(eDVBFrontendParametersCable.Modulation_QAM128), "QAM128"), + (str(eDVBFrontendParametersCable.Modulation_QAM256), "QAM256")], + default = str(eDVBFrontendParametersCable.Modulation_QAM64)) + +class CableScanScreen(ConfigListScreen, Screen): + skin = """ + + + + """ + + def __init__(self, session): + Screen.__init__(self, session) + + self["actions"] = ActionMap(["SetupActions", "MenuActions"], + { + "ok": self.keyGo, + "cancel": self.keyCancel, + "menu": self.closeRecursive, + }, -2) + + nimlist = nimmanager.getNimListOfType("DVB-C") + nim_list = [] + for x in nimlist: + nim_list.append((nimmanager.nim_slots[x].slot, nimmanager.nim_slots[x].friendly_full_description)) + + self.scan_nims = ConfigSelection(choices = nim_list) + + self.list = [] + self.list.append(getConfigListEntry(_("Tuner"), self.scan_nims)) + + self.list.append(getConfigListEntry(_('Frequency'), config.plugins.CableScan.frequency)) + self.list.append(getConfigListEntry(_('Symbol rate'), config.plugins.CableScan.symbolrate)) + self.list.append(getConfigListEntry(_('Modulation'), config.plugins.CableScan.modulation)) + self.list.append(getConfigListEntry(_('Network ID'), config.plugins.CableScan.networkid)) + self.list.append(getConfigListEntry(_("Use official channel numbering"), config.plugins.CableScan.keepnumbering)) + self.list.append(getConfigListEntry(_("HD list"), config.plugins.CableScan.hdlist)) + + ConfigListScreen.__init__(self, self.list) + self["config"].list = self.list + self["config"].l.setList(self.list) + + self.finished_cb = None + + self["introduction"] = Label(_("Configure your network settings, and press OK to start the scan")) + + def keyGo(self): + config.plugins.CableScan.save() + self.startScan() + + def startScan(self): + self.session.open(CableScanStatus, scanTuner = int(self.scan_nims.value), scanNetwork = config.plugins.CableScan.networkid.value, scanFrequency = config.plugins.CableScan.frequency.value * 1000, scanSymbolRate = config.plugins.CableScan.symbolrate.value * 1000, scanModulation = int(config.plugins.CableScan.modulation.value), keepNumbers = config.plugins.CableScan.keepnumbering.value, hdList = config.plugins.CableScan.hdlist.value) + + def keyCancel(self): + self.close() + +def CableScanMain(session, **kwargs): + nims = nimmanager.getNimListOfType("DVB-C") + + nimList = [] + for x in nims: + nimList.append(x) + + if len(nimList) == 0: + session.open(MessageBox, _("No cable tuner found!"), MessageBox.TYPE_ERROR) + else: + if session.nav.RecordTimer.isRecording(): + session.open(MessageBox, _("A recording is currently running. Please stop the recording before trying to scan."), MessageBox.TYPE_ERROR) + else: + session.open(CableScanScreen) + +def CableScanStart(menuid, **kwargs): + if menuid == "scan": + return [(_("Cable Scan"), CableScanMain, "cablescan", None)] + else: + return [] + +def Plugins(**kwargs): + if (nimmanager.hasNimType("DVB-C")): + return PluginDescriptor(name=_("Cable Scan"), description="Scan cable provider channels", where = PluginDescriptor.WHERE_MENU, fnc=CableScanStart) + else: + return [] diff --git a/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/Makefile.am b/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/Makefile.am new file mode 100644 index 0000000..943d360 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/Makefile.am @@ -0,0 +1,8 @@ +installdir = $(pkglibdir)/python/Plugins/SystemPlugins/CommonInterfaceAssignment + +SUBDIRS = meta + +install_PYTHON = \ + __init__.py \ + plugin.py + diff --git a/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/__init__.py b/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/meta/Makefile.am new file mode 100644 index 0000000..e0ce313 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/meta/Makefile.am @@ -0,0 +1,5 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_commoninterfaceassignment.xml + +EXTRA_DIST = ciassignment.jpg diff --git a/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/meta/ciassignment.jpg b/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/meta/ciassignment.jpg new file mode 100644 index 0000000000000000000000000000000000000000..75771f98688d24ff29b0666ce658c070a26544e8 GIT binary patch literal 76859 zcmeFa2_TeT_c;EbNJLST3ZYb%F?PaKNRouI#$*fGw~%EjNu?5EY*E=NNoCJ6l_IowjmM5? zAAuMc8K9%!A4Kincv#cV@f-x{>O%V=2wDfRFmORkAjbgyK@5D*T6!LWtQofd$e(A} zyNbgIaNrO~p&j7#WRRxkH-r40Fh^+3YTY#O+XSsAU4kIdjo*I{*}7TV37&Lt^LF!c zaB~+_H+7BR;Rel*H8Gp3R$-dGYOorE~(SCH)`T1{#XbQNM>w{9KlI(Al8_DyW-**0zAWM}8xvXz^A z3pe-HP3-hz^=IYcZ&QX1Y-}4iHf-eJ*tnU4gJUx-;n=)VWz&D80qPrQ(>mx9^ni&$ z2x8pCz_f{h+6TJ5p8B2v0k~YtKtBM(w1WvK%9^#zEbCa;vjKJZ9moJNGJOYbgc#N^ zFfp!ST+70|ZY>kL3;=FoTC=DJh3pZm7}w;3(mC$aNr@ty;k~i zhKc_5$37Z@p}xx6>2J72WLt(K8jd?w=3MPAYQJ z$vv@N=Vc~SnrhKxq5Mx!9tx*%Mqj9pPc1AuYk|na-z1AUg zQ~OR8WG-W5C~ziN<}B&FfQ$cP`~|uG+ZorY-FHv;^gOdsz1>|!g*v$A!%%O}*cT4q z_eowkPlb+P3FcJj?y;X)tu8=l(obbc=RpGIQz5CH3Jr1n%*_X))&?YVszr_N$(ePb zLUI`5nv5U0vJ`>0mbj3{wAZXzH_9QzXvByt$__)^{2eIrT5zv`_Os=DDx)3hXPN?Boq8tS z@cQ$d-T@W4m1zY_&*fz<+T=Vh=r~*Lw1cnn%6ZAx<$5m*Wx8K(_TTm9{FDxo)q|~z z+JsMkJ)m`TOyl^68U70!U&PKpv&m5%J0FB!_GpD%u1p|&bZe(zlT@frGhF@?feIBz zr%|D&edh~fOf8eQX!=!y^B&~RLD4+v3BXD zPkEw+qmP@1Jaf-iLyOqcv*v|duU%2(&UuteZA@&e3Q7)* z0dy(c#2lSge#Eg+m<@-P$ag1-w2ewPo&0F-&_8_C zc8EjVU0r*(=`k7UDqfYq7IKLKWylmSbtURpUh#9UC8l2d8Js;MZm0I15;?I=E_PIC zz#qHljlz}i?9WLV;XjnZTN7AI{RGs2tc=h>RAZ=++Lo(@-BqS7%Bn6>xI~lY0A7py zOwvHc@B(@PHTmd6q63i%^;So8dQ}u8IVGTC%zLnIFej9fW~YBP*Egqb!FV|p2VsvT zfyA=#7j>g4mSBk6eFC24>`?6SvYfWM9E))hmqQjOiun>yahZ`#!LNIw&+a_6ZbLRD zPpzLxS=14t){@rXyu7rNXX zr3c2z@=B9WdQho|md?<5wPH@U3FFwVA{8$D&a(D1KvMxoZNKgtgfruj`8`z1*4H8q88OQ zS=Hn1XR4++ooegCh1)nfNPDmsy>8E4uGBMmWm}S{YI-#x{ zJ`#Pda?e~pox{Q3Fc-;91l-?lKJf~ZPKjLWZQMUsmtb*3%P6Q7Gj`SiBA$9DgLJE?=bmgc}!qCZ~w0z9SFm_=N zhHwV`qmE%z6qwQy(Wu@8Dpc=@BzR6OMPwND(=F{ij%P$5qzFs)Um%v~HYT1dLK z^S0#e=N%5cQAyu0B)tPvh$DiuVEw^d=}2%6Hx=^Lq6ECO+22L68rr_K+;9X*ZN{gU zqK1;ASzOTp*Y6^9W(z16+O8CWhJ|M_<5((`vOW?08QDjLUWfCzq~fTMm*@jk^Ks(K z55-Eh%2i4k?aUtnRBshF*_Aw7Hpa~AQfx?~xt~l5d~OkJ$`158aR`-tJ2w#(q`GWg z7~GhiZ=iibrIuBVp-8#WkdKWDjml6VA@oG@6G{pt1cBe5aP(pEvi(yOxRE?)B;7<7 zT+CcTEwNLfk53&%GH^c-_XT&2r+{gRUjIp2RAS0c%=BLx$cQ@T`YYi1nqr$j47f?h)FO(HeL`vosXtMH*l!_PgE%Ro5|AxRGdF^ zCF~v%O>F^IJVg{pr$RZ`bGyU@+`*(KNV+7IORLv?YK|w zz2)C|Oh1CXOhaoHr9;{s5TdIfSL7-Gy-jn@a8!dEMf*aKOd8n|!;@(Xk14SW08bMa z`j@mqNGZc&qL0W%3>8jizA!g$n^5aeZ6RWHTwG2^RKl4^y$iyDsMP*R1vMP(Gf8AR zV6{25@6xdNGKxH%7REPwU(}zuH2Ec!JKtN=v6^us)>ENsAuHpMponuu$j%Cr1-2bK z=FtkHh6OnRL3*Ff5V^tGOSc6Inc_?HhYZgiP>*Xoo!E~_vx|6niwa#aXJOsq*=reD z4O@~r`$f{|d)r6z?tCGwL(J`V(7(|naHm#s{7B*ks|H)8s@C4VITt(o7N`BZ0a*L7 z>{+$Y^96Pm^5K0(d(2;T^ELOV>zLtq!cQ5_enW4^r)MbN7O;L_nd?0mzN-$pT-MWH@0$r8&84XJFiMQhgb8vCNrhZE$@_D;PAsH%O3YVzj*+w2$YNAz;vp4E zH&`~}T{5OZJ?d2G*t7Rh07tB6XKm*EGuUh+6)K=YbNi9!-%+9CRA||a3K^{62zQ77 zD-^Nri15cUaOiT-B|m2>)LI>s%S#zDr&v*;=2{7nvaSoPfSK`MN~?F&sXr`#r}8z0 zyyI1~P9OSgjE(WigPaPNw%48yoVODyh zWFo9@)A;TIV)lH!Htb^XdVnx$JGb6>tcv5o6z;?Oa=H29d8cMveYa+$*V{vfar~@; zxCE`VxPe|qdq?M|V{ZHXnu$QaW~HYfVW8In{s!8yp8oDm%h9PY&C#-eF6`Vn0C5H> z@DhN7VYTF8e8P_sX?nRCNWbIA(Mu$Lme6~(2(BT>9e4u%@?aXJf&UUj{qMl&vRFrJ z8>00U_$U|;uAHlK;|HY>-M6tKM?TsmlP*YB`a`>f7!QK831rwI8^{r|g1o>#N5~#> zgZp|Q@~B+?B;4u%hQhIcIUi*y*}*i=CX3lc#sA+uyidKtLh zVCCcOre)`9=V|3_XA26TQ~vIDtH|qDkZC0}h_;KpAo%&e-G3$@Pv=vbCZ_SsmOwFCKDs zwEr$C&Xvv|{ay@eve??4v+{AK=@{z;J5TSwKsWkc{5v|EwY|EVvzzBH!ripe{$Z^j z08j-w;pR${HLJIqyPl7?m))<5v)&mf(%+S`Tf2D!h5Ea4HZa5ve~V7H!o4&?z=D7} zBc|#36^q+M&oivdNNZ@`(G`Vepx2^%7&&QmX+nGe&PyQs1%hZz0RQ7w;641~Z~WtL z9GU;)Z~WE`_7Z~WtL{Nr!@bpi2@ zzwzJZZ=}C7?*gyJ5Of-x;H?_GB}0cGTgVNv2CgbW=p^I-^4{R|qUYQJ2KT?f5QNkr zLr9j^;L1Duif@dC?jr*mMK5~QPeJE;oM_Y(=4=$;f*ck{Fpl$Dg0l$NlO zl9v&blaZ8>la`m36&D0srxamQ3NRTd2{_m{C9Mos6kI)o06kCJbIJx9M^>qUD^;P@ zZu$E9O8Ux3x_R2e;7UqLFez!6w6p}kknr+%^|tbpaP<=Y-hzgmmyM^RySJm8t01jK zE8w~FRuuxgu5`l1{YSHZDXs5_wl+WT+<|k7PTbZ8X6J0@V(04Z1tbfn34q?H`}dt< zKdSuJ^bat7IKEc`!qwIN>k8jT&c)>i2`_KW3!oeSY@EGljwYCaotK-Br;VNF1;D28 zcVga-=YERwH|A)N-}tfvo9_Oa5DoGJ)m>TL)6U8pxVM0d?Yjc}bhiJpWsb(fDz=>l z@Hnap(e}_uz~K^7il@L%I=GCojDnaHTv3dxbHya@*zh?YwBEa`NKRath#71gDZXFn)1q1zB){GDTT&IT5|@((r;Icx1MMhCffL{=(5~eG9Go(;GSUZ*$V*Ep$sLl0 zA5nrIQaGfkpmbPXNlsQuQvrTNN?KlBNRXzk$|oKD?3_(B9Kld{(PaU;{VT}y7m%ES z{3?j942EFR1lk}kCnqDfTK;=SW#kp*WyNKsl;ox8Dd>U%TzVyyrkAXwGN4=zzJenw zPOGIrPeFGj*=1`M+r{P(^^xax2B{-qo_o0Q;Eijv=m%k91N*APy=y! zaRqTjaV2pe8aP}WE-en15r@l)gCPb;a0PLo57Gb^XbDgfpg(dzm4GGyr2)EdKuJSg zMqWW$Ltar@R^c#QN?ub#N&zl&SY1g<h22#?a1VHRtRo zNS{`ft!!3I!iF}Z+1U!M7CZiz%zvdxUk5v2c;6?wznHyN(7fEvdHY&<+8we7*80z9 zQ5fJFM!Tb}bO83ZeWSyEx%+)b2e(vO_Q%~^?fX6V&+i`z{E@&P3H*`39|`=C!2gdV z@Y5e)=L(zvzTj>Dmzbb~G)DtHCW!IJ!31(lYd{KOSk};vwajbj2QxDZ%Q_YoW>(hq z>p|?$?*{`D6Vuu?Ygw6@SvRa_UB7{o78Aq?B8$MW`oq3*^?SV^SM-=5#)FJaObj51 z=4VWh8Hfpb1lVNxH6#dHvzCdGnE_gj2?D(S3jKYJo)NGHVuF}im_Wkl#lXn4X$`a% z1O*+^XXds7K|!0PBOkJCS&7N%m*KIV7V*3?vs+!(FzV4O8?SeA8lusux$?ZHY`rU* z2iENgVO_s<+tquTN7C|)T2Alf!w(W@aY1%Ip)o75LH{5$Nb#tNgWvVI$3-7IM;G@g zX`4Fw--v%wT-`NB+^>Ah?EJ->2~S_wbdN8s#1Jv91>$60vyO?$g&xmC3u8L8Rv&Q8 z>~T3#`r*sz&2K;T3m@KMVC^|0BOtPmXG`r&-80J({DWg6PAAuJ0by>}H%qo$*#GTx zXVyz&>;Jc2BB@RPtGNC2zlz)D|5e_a&O(K?X=4U$qM=Sc4l^eu54QlZ#=m@gcNYWx(k zPQC08&L8>w(T)E(yD$LurGyzWM;%8+4}ZqQg#};^pGV@W6-eQ3V-fhkk`BVgDc@0D z9g6855b^0khSRK-V!d;c%=!dXD}u#KU^0F&P8iWPk)l~RTSZi}_)5I)TQa)`MEZzF zqdpc;;;4{lZ5ayAu@HQ<6*C;=M&!Y^2n-Q@b4GT3o@z=!lV0h9*r%Q)o1gYi<4^nl zi~LPcLRwM7Q7Gc(PE>R{c0RZ@*jfys@p*ka>%pCid^V)}AQrBw9tGbb+A?yhS<`kw zj9ir5s7i%wb|vv2L!Cl#FQ8mGKl0BmKJ>mIUGrAo;>IXrMC$x2VRe~Ba+dg;4eiwq zpS(DZsi4lwn{CSXl=(FMK5-~Asww_j=Z{AaB(?R|DZV~1bl9m;(f?YlM&1t1)~Ax^ zs8G;*279-Mr$(?Zr+0L*pOLum;B43?+^2bLJZj%;JxlF{$$~5EQm7k1huN_4Pf?Y@)#dcSn804!HZ6u&}KXcbi^JSp!U%h*Hlh zYGp>-**V#5O&G`f>^LpocjL+QSh1=?-L1QK_C~EWj9}FfxpdYr_^gw!m`Ji7{+pqB z+f{aj7?I>ZcaWQuGei&zAK zb*H6s8onZ0F->5L@54^uhr(twniymNcJB)*;_R8Bh#a2<7hvaWo)$ zcBL--Csa?5H1#5%qDlgRfKN~$&LjjeXDHCT#yQx$K3RvTBG9nRhN;3N zrp%pfqC#IH$fw>CC+wHd%X=y5E38*F(x9+W)U-Y2sm)JdataY^%tVg68m#ozJ&Vg3-w?WiZHR}tgLnzIz&P78_}sV|3=+AZ1`47~$g{TF>Tr0HuRMTOK00xg+WRYKsqDZqxNSM-&ivMSRnK%H4|`QK$q z=UhMyKwB}Zsv7YVdJzTeC}(C0n3>L!0BIX-yl!9kVMsL6{{hZ`CH)0w-!18Xjw;)}b1z{Hn1TV@nzExd79r!u*M6c*+z;~&xqnVh%@3wy?aG3`FF?Ic%8mhr2 z!d2@I@DET|>;0AZFDj;3_=4jk5F$FXp>9A6m3RF);eNR=C=$II0+83c*-?Y7nts^ueOYm$e^HTb6U)0 zVlmBr5$PYPP<$Lp;W-u32RDq(!AM;i@2NI~Fq{gukLY#KrvK{$ve#MCNFnWpWk_^U zAW+_g^IMZo>Z{lysBpU(Z*k6fTlIDcn_Bo*Ns)+FdhHMZ?4`$q(6mxpp`AaB5 z6Cdj8ta1d=FM^U~#aHi3yW6DVmykGe=qV>e3j6+Y{ia4tyD+fu#oOmfXp~R7J8I34 zLv5T=lE>ytA3lm8eoL7%7pVVAlR=ke;074r>l#Wn*jKBBXsD@QxSZz;V#13kPDt8> zzHeF<)40s$G=gdvaTTuV=9MUzYw`gIovR39#2{J=;kr(Q&&S;Hu~*tg)p9qIy#|Td zC^~y@nyC=t+uo}f5+y20CFMZ^Fs)-(QJs~D#Ez8?F7nYjU~&f4aF{>&cvA#<=UX7t ztq7WQX}9CeD+m}Q#dC8L=k8Ja$VVU~Q@yx{VyQYq`b_Vp@d_ES5MZ|&oAih7bEcy{ z7qLW;N&|M#hl$qE7J6saTezcCC7yFxsN-vO+9Whhqk8o7j;!H3X=G}W5@i?JHa;L} zLenR7%g$20`Q7HV!PaEg|Asw|oMW&tCT5>nicdQ=bHJ%La`?X_tpz3L|4VpN(P zU6U*I0LLop(Vgz3KRbeO8G~Bl=QxnI z(Filb{SQg#g>JXWE$ve$l6p>LqWM^%Jy+ok5nUfW?9fHZCwkEA!ZSg>#N1)|=7)Kg z192mXA5DWlP_jg7_8kM^gJ0(qi!@a}vtRq{KLiu9B;K~OB{XEGPY?ADB-@;j+kz-# zDX_M_ESwmllB~D4O_ZQomF$BOvmjO&w3p^QDssA>Q54yJPHg$5knB~XjMT>uX6pGf z_Z%;-V=amhb;_(-XT_DHPj=I2Q7e1$xzk}u_141Dom3SgGs}2KZf)6?(7Xkzlo-}=MtjilubHF5wH;&s#^(La{V8k?XP>8H#mBi z_u`G4i`;Rk$U9S+sBallHMMBt=rL53<;6C{Zqf{Ks4&4LA{GIg%fnO39$9L8@MOvST+k%@#WVFmz-IRZ*o2M5ln%vGPEC-&Bl`gs)DxX^VILL2=(BHI8- z@3Il$P(1c@AV%ykYYx9j;peED!1*o6iSu7pVqp_=lOhe}GV0(w9VNO>#(E&Up zc%C~tI5L`eM?RTr@NqS%YP%&}(l)nq*l1)syZ07?7HEjmtB60@0OZMWUo5{<1yuo6 zzrz08saJtiQtCWFot<>@)3KPN7$6)!8aq6dpENNmh?(CJe{uoF`CAp^^a@p}ZaUQu z81@ypQfzK#hE|+B?^;Eo+>);f#h$s>nw2D&Ex}6=3q1CoGylY($nN9EU2M^*Z^Mco zgAen>t0~*ODV7{Qd(2afY2xgl7US#B$Fj9I!gR;fuP3O;8dwUS%vv8Ze?sTB-zDLozs(dbn zI-Bk;<*qdxkG5!-6|Q30t-I^x$lj_%XXOP%2kU+Xe|wzP@VD~w_a|OuFU8!CYt)Wrc^Vd(J$zn2+rn}>?3PLQiE|MOVS=1Ogov6(@iP?rV5Eir^C`mi zI=B;`_vhPlDIL2VmI6h1+=C?=PsG3Y#Qpfa$O*EUoX50u97FDwe0*(1j<%ayZs1cB z+=Myoxidd3Oh;xYxi((;`Z6}&AE)R1i{qgEx0&CG;(??Xf=8#3EvTU{4T)V5Q|Xf& z;f1J@h!67$xVj{+jxHx;jLfSxy#IZ*;QaBM!R z+WCD zB~1``Nh7Ecg;-KN&&v#o^?A$l?LK-E=kNB`+lVWl$&oE66!Qx`ev+&o!{o{2e*Z$v z%+RHGti#KOdyfu1tpAp55OV4j_#zN^TxmGj?c~e+)hw6Pcyog#?klVBxP?~0aDF`H zMTAgo^;?y;IE9nCPWL{BJh{w|@^U^jtv8rekHTRo>McG~^c@9~;*bt`j@%-%^+8uoc=N98YGKeNk*WB%np{Ai|7jA9+hM zAe?S5CdLox)u+^RR!_mlExjysJ|;A^UsdMFmg%*8dqBE!`sudak;W05c9x#ceyM*u zOz@gZC~NSg9>r}oQ@hOZ5hqA-(fC}v)*dZhA(RBe7)IMPG!V`|Zg_ zX$Lhs6VYqCqqLQ@-tK;+4Ba#y@Jvdwjeha90K4X(`c;l+Hu%D7fmlpTGJY7qCWo>QqedAi?o~}`}G4q%> zY~tZkF{8Qv8q4@Y)6%&`=iZ7}y}8TcVWH$2XH6azaYh-i)s`P772_3RP&hf%fqv2p z{L~0%JW3KF?b9epM0|W*cBRju+wwj~D%Zsd-H2Pk3An z4kyC)bvq#k#I`eVJVqOsIl>ED`;OkJW<)abbZuO^X=`0CY>*q}QL!xqyHMcg9;?2- zi=bPIMWbSogb>7CY@)9~G`|j^BPk~k=WioNDa#a#Z?$xKR2adMF46r=en9r7y~Eot z!{*KU@zMjykMv(}52`=7Zs11tLQt5(P|lDDh7hIZNV<)zhVB3G&>w?;OZxi6$hBa$jfU{1*5mlwC8PB4AH-P@E9>5k+j#N%`31TJckSuy@=a~s1UId zAwlsZeujzn5ck#g?NlQL(arJ z2puLL(poHd_+0*`%ie2GKXATOe7wJ2Jk79G_S;tD^^BJ#v-PF2FB&?Z-m;}y04uty z3%xFC-I2@ed1<#|<}(9TjyqcH+HrWPu5AV@B9bO1V!Y{v!*j*xo(z>!c}YDMSVpFX zXDqIn>-MG%92iO8`Gi!l;huX|kll_uwx=kcGEsr@`tKgUstLO%bLqg71N=nEJv$hr z!cP0mC!g*mKRTp}$>86^!lzj8=#JTV@W98sp2gXob>i!GNuZkz%=X=V`8g(o3U!6< ze>tvjVQB4+R?g6CvvRTvZ<4p`IhQsa+H!HzK^BWrcZ-+(8OAOnyY>o{GMBWrR8;Xl zPFs>N-EFX=BTg{e$!s1w;-2bTYk4Hft#+!;4ME(km=TfnuyyvsvT#e()inkeVRE`9 z&uvCgUa==f&nNY1O?ey%((FEM<%cJ}vK@Uid~iC0_^L`Q@$#;*fGW}uw*b-bb>xBQ zvpr-ce&8hAj4lokBU!6041M;`>ixN&fZFlf{n(9uKVFU?h9ZfIG8yys%VPl{k0!8_ zgHx~^3?jHbb17_&{hQoSOGCh$M%WJAj{Kv5y9mp&m;;_*A9CnwI9EA z4zs>@sgzFRkko zQnKSd`zQy21D{Y-_2I0$%}oFgwgkq>g~rcjHwQRjUuAkst2ZS1o~(9LK4japU4wH+ z!v>*or};~Q!R7)Cq0T{H2X(@4E(EZU29daI47zlRm^z}T8thKY#23~h;wTvp1yW=! zz$Xfu8=k1NG^)IQetkY#WV~6o261Rp^x$b*&U~|5yc^dzbD)t<;{N-MbX5@)PhN^= zNNsblDMgRSgzq3IfM*o~W_Te;*+Y?16&qW4n#ZHS z!w*h}96x?5Z7)9><#g`&;MH}B!db%>G89iILhTV!J%Ja;pNMnIqSz2~^>oGR_^rv? zGZ5_(!se$;D9`4zUGMR@-_hRc7WRDNOln4@^)7SHfRl}ql45;f=TShtUN;V-(I`Rvkm*2y04xgcc-U6H)>O% zhrlcC_G@Ucn_(@rhR>lCE8Ftg$Y?T0&#o`BN<`1tULnvYNj|=uOqNJ zU~R@j+4)!6?AIiDUo`SPmY)e-pL+B0=|>Y+%>0fCi8%An)Mc{DyRp8p&SE>hwhkHn z+BZ%uo9Ho8c1X?wRf{>5hk9mF+5Y@hkX^si)rYxPKZ&qS&-P^r-(u_n{Q7TN3VPT`(!pf3v5k@Y>!&4>xv0*MZMlv;V%_=--E5 z%9+WwrT;|F<*RF&U+mNEWg=v3=Dj$b*&U-*7JQ56IqwA=xjS#?bf*@pGuHgcgWYA9 zz>V2xr}kRK%J<7nR(aETa#}lu1%lZu*A5!p<9xN&Bmaw$uECcC&y$?D;jiv&zKHEz z`$Xk(y617@;Jc1$t+%(a6cU&FUu*g}Xd}LzIWWbc z%NR*^Faeev1 zi?>TSZ^Z8_65$WQU0SdCN-QAm`K3LP$CNojda|Vq#dNbj`z3_F_O_Z$+7%9aSrT<= z!{U7A$)K|7jTO-!5ehCnCkO(ODm`m<-^!Lp2kg)1y`eO1~fe{PHWee2oMzqpB&|9TUvpYHx_N{Rh6ku%lbGVvgO(ro17v?1S7o(FF8 z@m}{@>sa3(ZR#79y}O4C&U3+DAR`div0-vN6?_pMYT=9s2P-c2Uu-E(nBzn*N~Wp| zWi9aXtEs`j;#MGgO1jfgCBBZA2r+y}`TG7ZFO_;v&ucKMkJn<**qlbjq=)PR#7vL2Iy%Wc(KRfr8`k z3*-}Kx-1rH0KXG+e}40#DJo&AMePjmW4Gu~p-a(AHUJ;hssCk|#-~5vQx`^I)EkSq z9Zm#G7f2QuVds+lPj&*Gk&Vmi7q_9}=Sya*& zp$vB|m&Giyu5d#RJewZjhts^*oMa~BjzK`R+=~q9;B?C=` z7({2QDnEedsTZk#+cSafykI$^{9mvH7C&(5Df6&ZMcFSkL}y9O5{zW6_JeW99|SVr z)si}X72OJf2r!a>)n7#VlkkDR9~ru4$xP6sF;7UQYu0K99#=#YQ)oIJK*^NYbHARZ zi}bNv(XGE9OPX%k`~%(kXB?r%y_y@Bc~_g?vegqs<0l1%Y8_5%@{#?nx`zFBf2q1! zA!s_E|3IgIF|k#hR$A5R0RP5cbo!K4HC?9zS9JQsNEGV$N`*ji%wO5?UYbq9S8ek5 zvCsKeEd5mL6%s(LX?E6##*BM5J1GB0^^0zUv?<~5$=~^VYoKZUvYB!f+OaTcHn$L8 zMA>?aHlRS_-~-wdr}#2s|49gS~C}l@2roz|ccJM8{=hTx`}ra1NZTbJe~AY#qo6OC+W^ z7@OzRP_l{P=ljIW{V^j+h&UQ7^<5*WF;6IJ3ZH&(n0VV^zou4O24d#<3N$A)1=Q5M zjl@5OG6{TLp$v%8mJ475RR}>55amIj>p^X?Jvqc9X=u{NOHKDf(|Q&JaD@#hkE(@5)1in!%v54o;jq@OVrarU7uCtjaKP{|13Z zNmN|8QZTZ1wx2X904CswVX%QiVN&-Y!Fb5#CKalwV$*#SpmbRdOY|Vk^HU+r+`dmE z6t~`+da}Vt5<~0XGNSL91(!3-UDiesNG4D=#ONtAzA>NGMfA>Oe z93_4Jz0->YGHq3LcOntvIZNs#B^L}-G-MnOxqHY_32Sp~W`=A+3844?F0Bb13Vf(N z9)S*a#YeV~igR>)vqn1#mXhFXj@Cvxo^Kz2gF00`Zy(9p+<&lZv6#<7(%EZGmCJG* zF3Qd^Uq@+YG546;0F>b(`)c5>WG+m!Re*38Nd%AX#7l_B=d@OyC8}PbDy>QP8|4Df zzphRGwljPQc&Kft(4IBm&1gLa?{2U2t#P4wfkm?i(^vHwc{Ugol&CkSH@>aQNm->m zC9%KOZQ;=Z*_H}j#~}nBmna48+8!(S^L_gVp&u@Bi<>R~u5JBKnNCrmJLgiVkW?<} zJ%`OWur{?8x4z`8r_2`m%15qxNFg!<{>!i9yDuQ?_;2V)vkG-V&}w4s*^R(JGNk$gcu~JpWhAv*#k5<^udB5zVfP+G9(} zDH$oOS+8;~4*Prhc}U}q&s5ww7408=1bn;SKim?(FlKSUlFanD&k>s`>rctgv?Lpy z3;!zbHG?$T=0~_asrB?F~OU zd#6&s1E#MHs`jZLNs+7O^r`;qCHi*7vMYH!vJbce#6K z?!%6^`ef^z_>>p0ZBEtPsQ6~BPK%3vdh)b@~0?Bb2Z#T{=b`c=Ue%alwR z{5B<@NfK`@7LAOdxR4r1Rd^~ij6^?c$JQsGZ8g`ugFVT0IQEss&gcB2`&F*L5OKxp zvq72tqRzFo_iQdl4()LEs~Zwhx;I6r!0Q1IX9NXRMtV)CHR(M+A6wATbYA&PRIQDV zn~#88R3Gjp>pG(i+dXdw%bwl8_qaE)(!qn-bUMkPe;;N9LmI>-ft|a7@x(*86q)lE zCFY}vZIABz))Xw+c5wBY_pk+sCG%#<?(4fDRrc~}f2SB~ z@ncGME<(G$qOolbK^kJAXxHmd&TgM$ubya}Q3{B=V7&Mq8C^UQ;rU}?KvI8;qxkPy zl{9AmDEhM<0TD|o&TxF?q>PS}(@|B>`!o<^6*V4E+`RRR_L(i}!cr&SpX4@-PAWPi z(y~tDW6MGXegPkVkFKW#62gWAQV=4*D^Xg!Cv13oz*h{+-}rbNtn_WVYEz-f@N0rk z+x;Zh$=q0t@Ov?9;&%vhH`vxjZQ90wQ7y*>L~PzI%qUhnU+RXp(IDMHDShns<8 zo)nSpKiCjE)9u8ANm4Ux<3Y+{bvB=lK1kSGn6S6qR765xO~Un2#$Cvpq$<&EBHzS< z3KnJiw=N2?$OO2R@Q^Y|7}7IR7R`Nlrv)L4*gcCB^T*a&+8lc5pH-iXY$YuWZQ#`_ zxz;?={?5E;lZI`2<1Uf<9Z7cA^N($osgK@sh@boYh6QHDhwOoe4`0ubt!cy`I2=at zGNgDke?^iWkT5M&ND?JGtLi%0P*och9E)#wJ#V(9ulluxJf(e;vvK>CLtAe>Slnij zBy(1&aX54Ql~|@k>scn13lH3KRPXYiA{CQf;zjRaaEid;CPYfdV@I?S5E2+!Inc7d z%ty2GWb{RObjG148dpxYoD{d-+dLNcNo(tu!R>-W9Y}_TJ^4@Up7r8B1$}|Z z;F(6To@hg49cm3bjhKRI8lI|6?sN8?*$gMtHvd??jDJ{R*CuC=OeX&|( zN$wnHwunP0`Sei8%^{h=FV(j^EOF_+G8OQ>$J;!E{ZI`Xu%pUuq+#Eow#K-jo2p9r z=81m%XK9Pd??%`d%G(qSGr5!c*5&cLsI@7O6?S> zk&rX=s%i*R*C594WYYi!ABb-p4hPCEF^CiDl{k*Tu?_ARp8cdo74LHJ66In zSWbdf_Y$;0@KLt?0lFfUs~l-FoHOGln&MA+ehR9XA&?{a&ttm1HbT)y!B{n}rnsvmv0J9E@@Ay#qD)Z^xj zhtt|5-~&>UBNB)KBPckrss57rU>i36S&?Rzy*<%Mk2LhWMl;zHfRxe@XG|Yn(5viqOVzUcg<1fMWZB)5S{0Q|W#rM33M7?ogWVg!MO zkXnz5Q9Dnng+0;4k-2qq+hlW}Hmbf~kRE@%y{jQwtdtbpbbEc^`Dd5stJ=njQa5d# zVQBt3;o5Ru(N;T#yFKUI#T3#|1ZmhUb`L3=6h|r}y(F~(N(w4Oq7P1!FquxQdg^Fk z;?+8lQC5`CYWH~8V{Mq;)-FETJFZCnB^7V3URBnA=>qVtX4G>}gr5`EH(?P1Qn1ix(%` z>XnZlVchb9ASu{p%PmvZSS&_*0%UiWG)cOf*Xlh5R!{2Ku;PvhdF5sE=+W-a-LfAJ zZ;Smrzim)^{nIDjC*MP?54MSSJNx^_VG`iyrLC8A1LLry=ZJa%q6rpX03xZB3rWu+ zo(0*HEWV~>d-acbA@3+rhoRdcT0&9VO!%&>>)q%j@geAd7Z}oq;MDXV7RBpU;r8V2 z36&_$kEt;WpTC~NmHp)U+A;d-=pE|~9GfI1cam{)#iFL@uxs-REYTLhF2QFlgH0VV z(a}zWl+)!gPYa42hd*XZ2xTwd*xV>l=brt(GU^4R_O>If0_&Tnn0EyFlo*E#^Kb7$ z-2>x{ks?J5f!82^mRhy5JZdLNRoBE&N)Db~U42y-?uMDv_RN4z*n5;P{DafV1_=tG7C1Tc64*HQj6ZK-*Y56 z=0lQH&9^N34g6Z?);gKR?vZL43~gE}&hW=6ufY$^fhRoN0Sr$3QERrG9ciGN!& zqSd?p4Z-{W@ErsNTWF=v=#>BbjQ;yh?SHzo^7n7{Z8^)Ig1~|eFGWa(Hl?3QIj&E1 z(pmL){M-B<|KPg`|4?2C7-ldP{E4S+S|n}SOWXTapCI52QDOjpv&_qY3dJ##)ujWx zNGB{u%E2tNm9`%B>DTqBf3e9i<;Nz+((*SX%CdaQcuK3x%XV-7Y=lC^1B_fvt)q}<)jU|&{C6?cCy zDRq_vei4!oc7PpN+~P!mw0SG2QDdpO0SwWe&I(5{muf0Qx0V=azJFfLe7g1c_^qB( zldaLQ2^tL-xP?`kU#B15d0Fy6GLQ;5eI7}g5R0%wT%g&{v1*an}&9}9%BnqhA zq{A_Ez=@Q7Xd)!8Y64EciUBUV_ErT&S`JGY>RMJ#Y;|s^&H^&&)G+pq)C3Bpcgm4( z|Gg#Y4jrCA@foBk0e=dh@38PMuP7u-hcDsJnGbL``#L2#^qV{hP3{p;k1A-o!oqS$ z*4FIvrbuTwOW;vF-ABdd19tl5Z>yT0JF>(2KD-keMP-5sf6v2bG8p!@F4tcd^5S|2YozMa&5-@5^eMxPi zF`)EfcXV1(#?+uTfqLM~mNJ}Bl}?7e(*k=mPSDamGDJq*h{2T#7FNbXDR@%pQ>>KS zbjtBySuN^|uDrCnof5OzxM~-p$6dbBMF|RLd-Vw?c#Y4yEvywBJWknmvd4)h@I2cb zc4w5aqI|~=a(bv7Kx%g31mBM*Xs+7QpEo1-2c(TS3T>6VRg~?_8n7iPNyhK<>v0|1 z0}WS?6@Ix^_V%!Pwg0W*4R!mV?SUVL1IMO(w)pG#l}u>%J6e|oz%J-k%&hB?O=+&D zo!DEjC?tbU&I~uEvWlz!rV^;_KjRan$F(o>KNLZ#rvsB@Aa~E+y{n^`9cR; z=7zE?o1I#0H^ooJnYL(w%)u_OlEzvqWylQRV#b5_Oy5Il0N9u|h~ToGJvb=|8POWX zK{wtbNWiX+8ds30O&SA3W_*-MX>`6P18#(eyw>6`+gzv)(+RP?r|2DRin$l(?{&3J z^JVEF&8#~elZ^*cpFEJKt$6Qgnz3Pz^Y1`mc`$9Gx4_Ti=*Eg5NsMxhjCX+fRG3lS5oC#?uLUYyAdkc}kl9(V0SkjS*Ru;P`Fuy8?&l-Zq zH3en0M-|Kzo*(o}YdK}T3V+ajz;#xGo=!$<-oQ2T}?M=~pN7PuAb>^GRqM$*oo6$am+<`N)+mI)0@h;Snh`Q(23|I(fJ5F}%B5@b>Vt$`Pla4w@o;}>)A+D~&1!xoJ)LGT zU1I{i&Ip<|!WyoBVN`{>+U1Fq1-xjIDNy-&wCB!hx)nPw)4=5zH#L67a9z0xm`~#| zmW(Dh>6H^Ov|(&XaT2oQ6;cFw!tb>UVIFAOu%g(tN)K{rm3eHak~D&@=r;6?8)zO; zsX9OQAf+ptQAhEmI324SrW-p#sBj%P{6rxad;G&|BuTixeF1!rV64akdWd3j&AZ~{ zD0ZZ&Il1QC*Zz#DE#spMXOyS3;Pg!q+BY(|Vrq-6)v`s02U0|-tz~dTL$x6jVWPfc z`2`kug%kq@N#uNr6?wj;0)Zmh7w^+#Q=#Uj0C~uh@P$;5(kH_X-gl1%s_S1py3d{C z5S!`PQ-OiO11MH&ZFujCw=JqWIbmr2G=!t_BosFfw4#7|tQgIK=3oXq=PL^HYa`&L zwA0K-0nKq)uZ<(6D{CIQ7pBntTdFnSM@8jwc?8^AUMxVNqFY9=i1qb2u^#bPO)FHX zfe%Q^)5Pn2MbH)opvj&(1b8M506gtGOaYl$Pz8H^p^qudH@JjPL6WM5G4u2sc=~Sae?j=#z&}P*7#J>I(ALLV8 z-|X2LdMDpBuvj&VTaWh|KqW6>teOa3GQozUU)RD4iD;(r_uHk#h{W9YZ?!(P# zKcK1O#9~sl1r+E28}}L^9N)nwC>)o&20@R~gcS90yz9D)B(S)lGf2A9y_H^_6Pe?$ z&sYBBq+mgL*aN0U!(&@Q^p%lsD~#1w?|ztD(}MxE*fS0wr)yjU?N!YC*=It zR?%^J@4Rd|4Co(uL#R~8bt6hDHlnIH4;v0UfA31CWJ#aLfLyzENI0A71hjjrndAcj z1K7pR2kEVqu6sYVI@llQD7K2?*DFh2XNH7&fOsiPh^B&Ucb&pgLPx!z5>8H&bG9pr z-F&@sOS0LfzQOzk3?2owyn$VPQw{RFjrciqG*#pJWcVH%i^lttu!}DnS;OwvQ7f^^ zpVZDVUHB!J^Ea;AKlk3t*r!L60ax=)+a}!s8B{iHigvF29CY4t(S;M)sEMbE@y}lG z=yJbFS@H*qoxT;putm~DnI=ENlYh+$|4Pg4AII^2lh4ii86&iE{QWigcf^C|9We{7 zJxC&>%j%t0f7puJLT_^y(w8Y2zKwRy0PH^;1~IioM8rM7WY2(bAOpxhM1SEQMhs!b z-B!+g$X|Gf<#%smC;Sr7V>iEM4E%#J^6zH9zZc>C{e}LMBVXAGx<#yQYP4&hp3g(p zMiA=rK(d)7@UIm3h!DUw>_5W9e*skZF1o--0mP_g*)yHG-~Ancc8Ca7v&q%@g^KXY zYx$E8`A=0;{Qcty#f|GEyTDdJ%0*q=XMTmYnqe=563PLRQbd5;ErI0$pN2hOY zu=D#-=|87$u* zrR2ZFHgJPf9*M81JYT6){liqAO6NQgWFK@j#Qp7BP$8!4;DD3q7xQh5Anx zb@GGNd|aaXhR6~M7?d0EUlUg=UaPJ`b4*M7@h)yaq218?y#t2TZdK)SXJg#cZjCjb z)~ISuMm~_M&xiXi<|X7K?)2O!n(vO4+oUt;&PQa6t1QLItmbF$t%5f!vOc}1X!ew^ zZp&nYQZR2huk05k(2tl%4hkyKojOLgBZ9%MUt#7{$vNm`-eXC;r0I;inTosX4d-w2 zQl42pRivGup51?5eTo9%1w>l$(TUgJR)tNDoYr<}rCC>)%JXPH%!=W?Y82&t`eD|y zLh%FOw*y;n>7u)bOZHv56O+`ov@uUzpQl7#r#8t|67jeW1$c7v0<&Bv;7h=s@pmzQ zae9wv$Mxj}ZpfSSdVEG7ie>K0s+kx)me3h(JQOJvq`AIv1ia;=Tf$hepkgqC4{@c6F1Ls)#7CDi?7=EUW-Sv33y|Q$PS$TH%HERho_io z6!uahQUFvdlZofjr1uNOn=cxV#QO6_?r3$KJ$!cWt1CT+1ASGc&a=iRJ&)YxhnGaS zATGg4WZCu=+Ii~hZarwf;PVh7(_KZ$;@+Iz#XKRx5hAKC_!Z~f98kE|mbJ5u{bX7B zP27<(n*w-Kom8d$IgtMS}}V?T4p3 zvR@@P_Rz52Da{gnE=xmaMXVMRZ(R-TlIfAO;yCJ{t90$&8Qd1p-l*$pM_Qq3F*a>C z{<#+YchLZ($San}>K%|<=?gzQN}##<(~i=2!Q+I|^-lP&6Q1`3$a#Deh?8PKlYRy zp44#`p$JgOP;wkD+#aD@T2o10iS%f@yxz*9H$v|jVwx{)ZamQNaaP7!y%1u)a=E8-5OtT+UAknwz@-I= z`wT<3RHA^UIdO_I8Ky!mO`sMNC0LkZs|E-g&<@1;PLK66XJO~-e3f^OsA`_)kR zZZHbElB6s*AZC4VOzu4Xrq$yEjdi>yA5$)Z0#Q6gCy^vc2#HO&7#y7ew*euOC{X3T zj~_nxmGe)#2+ro)B$*G#rFOf_U1O~Gx92_hu!Z4HaroN46o|8dzK8FbdRV=IOfrB7KtxF06m9~`_ap&Y$k=WI(h zW^~DUS2H9`;WKDdN?ixP+k?6Ccpox*93fb?h0zDU8r7(+?s=gqyk9*yATF2ZB~*uc zKqy>%hDW`AP+9W{S$VsdtM?+s`9Py!SEH$OfAbiY@&q3R2~E5Rj-*eE=9A&^yMfsxSO9zpNQ-HvoTAB=nIDCP-w>kw@`==t%Z zeYaI3E4P~j6kBZy)+B~tC?Pc<(>8v#np_h>m|ew+2vtSVTtSNj&zm+Wc^H%(6g{^O z(<^B&By53ya(DXtPVwa(RtD!g^rFuB%B?TY8(pmzT$J(ijX_SPCkpv(0QBI|#Anq4 zhe7wVSu0q)c`z+Z!ou_=8d_4JWzKITI%qZ&F@3yJ*m+iig$t<<=X_3pFGO26oXvOd zs*HJ$Il^D;hOk7opBe=yU_caqk6KVkEpQf~y0RyWO}%h(_qTX+b2%clzNqWA=GrHT zu>Cyf6Rh58&c&Ae2M-a}&2KzyvS9_UYOBQ_1Ps{@LAGCm*HVI-2T7APg}_m;o`$g7 zrI_%epa;My*-~Fn@00DQ z7J=vXywRqQ7~R(|Z@*!dtSe+;R@mxVXYN}WJzX#na!`haA3xd-;m4i;nXGw8l8oF6 z0V_g-)n>zgSRvP#`@umV*SM-ANUIlS@Zv5s`yD*6{gnPiB+I$<1ANx1<3BtuB;wxh z7eXOMJ}g{oa1UdLv6I>`5k7bViAs=wBtRnC0QpG~@N`SgD(J3l(oF{A(Tfj-Zj52y z8WS0FeQ3Eo;Uo3aYwgynQ8GrT$1&(cvF=apALy|`!H;!2Zf4bJJV=y_0N{Wt03MjL z;9YulfVP*s0Tw6bNa6(@@rgcFYtHd2-u)HJ>D$;&kl#00M;)_@I&T^J)PD3d>cLJK z94~)F65-Rp)Aw8_t!9KrHy9=j2@D(i7^p;8G=|)GfwHf35*aBW4-B4!yn`DzH$_E$naT z#>QC<%}>|#|Dcb)|EYJWbPCiv5g~|B$AyCDF<9PtYG(4Z6QM(}*41Gb_|Ap>aQ;O9 zql5qpHiP-r$5*s$CGoRRa+!z99m1RvGD(>lU)1$0S9Kv9M}P1KxYqR zX0(A6Hgr2j)Sznm%mYQFxjZJWF15=Ez}FgM{c?y|O*+1EsqNV#;EO4WK{l#GYNkg3S+@qvU8u z-$AnaEX8Zb^$)I1&vB5`Abik-!!&mZfM1D&0w%Y}S(|kA9e|(U+_@H9N_{u5Qnp30urnGN${8-cPMH^GnuIRW z!_OV+EOM#6@6f+rEb6*jOyt2y!m-996I<934ihw8gb`>cY3{N#cLvbx#Yi!p>p~dV zvm4cPO88%Ha5kv7E+>Bw)ACn9UvC!rRBC!&e#`QP=9Z2-+Zy5}Rwvl2V7?+hi1%E? zrTTXqrgo7(BlIy+h}+){#{3PZ_+93n>SyL&?%$Yu3=qQ}ux#Zw7{j#z*u+7E4k=b1_X`?{ z-29re@SPymiDjn#3iGAJ)U=VdYZ=p&M)zy}H|AL1w$bkjQ6Eu1-SX;yVus8$ra~iL zHVg>6y(E&@q~K4cAUXSbjIy`%!QBsO>uaj1=`W3MG;q| zzVAVbx`<%URORn$!=gPi=WoZRj2suOQIF!(Id-FFb(eaxV-HM7@R z{BU(+`5cTA^!cS3AWSKZ#11fmI)gkX*AM6s^IKo8J+(k~N({;CX`RcV3`5<8vy-ah zr^PBen&o%DO>f9*;<)Z_5%*a1AnE{{a82KwRC3^j7+rZsS|f<$wX1_)27skY3%(hJ z!{a#G%wZJw4h-7D1Ew$oi}y*3){~t5@=>#gh6e%3jL9cNQu>=g zyVNp4?F9Wx@FxKms(UuFrD?6P4_QB2zSgh6j%L}wK)W~a={l?m`{lfvZyk95J~w*x z<@iMPXh9yb-2vII0}pR(XR)XRvOO~$68*Z4D^a8pgfVIU7EZfDZdpG*7WI~|z@t1= z{MEssvB}1}u4(63MYB-CrkK7#&lq(nIIydAS-O7^-1_Nh7SMD@6OV-vhqZv5;Ju%q z;NCY%QDSC0wl!xr=i?_W+(6l@PJezP5@^K(%^fmu9a6KxHR@2$yj;2e^*-R@tB;P-EO{%mcSoBh$O=)%DtuCdkEb}9xbX)Cr8l$yQB7Gvn+MgEC z5XV6Y2ZIwRwVtwz*d74f@#Y|M#9qf}_xpADy4Yply&Tri(!2!HeNjd`u6HHZxtXj6X7`o z(jARxwoanTJM)QJ>O#)-J!cg6Ro(2c+k481*HZS@Oz^?WS44LNxN$@^z8>pOA8&FL zb6vn^zmGyVA^Z?G5Z}h(t z)$7>J>9PA)cJK(p32VWH{!TRaT{JhtRtt?dGR1^C)H_ejc6Yq)B9tIx@Ns+q9i*c0 zEHtQDzklo|g7Dh3&swSXyh+Q*3sN z>q*4H3lwAG(^rRN_v=tIKuD;GilQ7P#X$tB8fnKUJCo8iQbu7LI_)b7@rBB=_0yxT z7|HCT@L+PWaRCz(MH%&*S_* zSTOGvIa2V#I!fyF9<|FUw;e8t8H=iMX43Bt)Uc9f3lgWk18;^vDvA1u#RuU4UtVcr ztk8?OF429oIw9UIQeY;?^yIVq&2?d|>8B3~D7hUgdiQB#Yt41?3_p5CDw3fc+jbDR zg5<^4mvWG^LBldF@+m+0hTbfDel9G>2WB)jL!)#ropl3seeeu-_A8uQLTr_D_;k~v z#mA7uPgD&8Oo`BDXYp2~0kx3gmCT+?aukDF9zEv4VdyBut@XFNQMDlhFA zad)Sswa?urT?fv5E*|^L;l2lc2@sG1QwrK3nkQ9kDk2QnIvE#f@f=O*QW8wj5E_#{ ze4Zk=+e&w;GWxOKjvo${Unw$573TR&|1D&xDq!WD`?%KuLgGcrKBxBdV9(7}ZPLMQ zfS8>6BP`e$ABQ~;JE;%$?&bC1++YBv`f~BzS1GNEW|#?@{SPPCydLn4!*D@ zYlmncnw8t?V8Kexk__*KN5f}0S|P2Fvj|6^)`+r#DModVUhl8TUo$mWtFF$^UNXHk zcWt9B=Vo1%WdPHdqREw>aJN>Yy%9KUH%cESZhOQmvtVpUFaFq?xs3n%g!o8%|6G@8*4Lf!52U)%faG z*>BZDd`%YmPN(XZy4YV*Ehb=ERZpjW|34Qi{bl&S`JBITU$2$mBn`^FW)~-`T#I0-2~BBf5DHghJ_sV#Mw;20CkdseU1EoQsx=zK zLiZxr7D-U8`_`X6q8dj5msTWt)Rw%GD2c%>qzyZ96rA3Q2uW;s<5)_9kQoO`7^Ro>hO}jPPaae| zEg+M<<;8q>p#4QN?Le`{ld)WeCS+(lwb*$dDY_~-*Pao*_Yi%q<{M(4wB_loRh`dH z+^u9iMych>h%>f)x^oPT(10J;pn~cbVl50O}UcVnon2 zc(_ep){qqGU(^^r>sl)&xQjoON)Zl~ zd(9NSG$3)9DNnM#J5L*vs=1a}hU%Wso;A6)FjimdoBTS#{Q4q;2u%$hVL?rzz=$(d zq0_P3??{Yr3E4*ZPCmB3JVP*foV}f%r%=6WCFJ~TrHE)ivLNtU5H{OSBG4#AhZN_) z4yAZU3kka{atJuCjRc2rlUJYxW#x~#cX9LH3X8Ot9wuI-DD8Yi>|}KdeQ|7h`=Q-Q zY-)irN*n zVIUi_0y)2Jg{K1+PV?$PlK9n#0ff}FV8A=gaZotloftPXtN#4pv_VOrifD|#{t5LT z^h5VAr2$#BISmrYY-^=Mh|~ewuGSeH&BYb!Arz0JE6ouBr`>{AHq+cII<1`*WX&10 zx<)_qn#=-6hfOj{E2;yLN>aX8EMLp)x5w`>Pfujuk72cyUHOQ|#j%Pl6t?Ti4|#uB z>=2)gEeV)pXl65U3O>=@#v+nflM3gLSxW1>S{&shuggw9XK`%Oiht)NBOx9H5 z`YYB5x?y$d^+_GuGk3Tj7Nt|}sr43f;9#vA(6)2S*^~4Rv)z2G+-t#80`QUj?B=~6 zi?kB7TD`rb(FSf+V%3%AGvp$_xA*E}`7%CA$=cMi+U13YRzDbKu?ekJW1+0$)$P3z z*D1yMQN`ICmjI;J#&&}V%Hd`Ot2;#}=~SE6Zje9>fQJ5BQc_Vw?SB(%=dXz+fO%Bn_>=|j+sPo0@ zRsFSXhXEh96H5nKh|Wr*J0fN^1mCC%@H!XlJsR13%qRL_l%HF2v9tGDe6`&D0=2tx z`u>hsQ%W2Kt^Wc96eZ-QvmE+jJtM1$&sslCOKbaEcW0d**4lwnyl!pGx0hNiIa{ns zO6sg@Jfi5~lex#5_c}$e*>&Wf=h2w|iJ?AqfD|V{*`s6qI#?laX@!|tENDXL*OanH zKT^tKKU2z}IQ;6A>GH^< zg#lDn+2ERmMPLEZ&-jlTa%q>8DZBIK$#t}#)6Zlx%e*&vuk!x=&e3NM(%)O*=BF^` zUvtm2zi`i5zngpZUDTkz=boMD^Dd3`Y&DGaAMTS5B`@BX1EX~vP5rWp11gG~Zx?aO zhSGQhSOFDpOdY1!Q772JtgFmn24Y&igTI{M!JF zaNbbV8{c>@a8LeLh|B&O2!ngfzCBSQhiDuez8y%?5#*^VFrg}F+P_^Rbv*0TZ49vK*1V@LHn-y*N|3!Al_?G9ODbX-EBQAbTJ(ApC%d5QG|B+yXJ zKymDEV}wvpcuI^RGB)uRxi9j>3%?leBqxN0Z``ezOKXNqXq`R6GjUv7V&IYc%+gFg zL^myPyGG2w1wB z1Xk*3q_2r@(mlu5i_G)&98wTCd^tYoa+Mv%_@wo*33hJ3=@2$vyC?0J$F{Y+TOn~w zV&bTG0C(_7+mSd-hZCk9+9L0>I2}yPK8#E=H@2W&c}#(p#cFWvy>#0+Yu~oh6rIbj zbHu~$KiFHD_s+KK;RT%&uU8c=ZPKv-I9l3>9WCM`gjm&D%9uctq@XvnD>^p#hmmc! z2D`BhHEy8dQmOGKT?%L>^N*W&ulBdYmZWAOix^ihRX5?J^LN8IJK!f^GRU4GFsz_YA~-n!_i=B{6cAEd6f13EnDtZ9@xEC#s8C# zXz;K7ho30vCf`p<|C-DBoluH6h6|82pw?3IBjtjU_~l`3gSlxD>EWj{`G&I(giUwq zp-;%)=I0ByJSZlAOlhZEQtx`LI}iXS7%6}^cvbBHTnLh%k;RfukB%0UfHXm+f3lTk z-1BknW8zA8h_Y)Ar_{p^L4&}{O}O=Nwg97i`7xVB?pwlZ@1}ecrkfu#(@hY%P%vpQ z+tbcOy8;FHz+oqV3E*aD#q^p;_>zoYwRrew9@;x=YDG${mjgMSZ>?+ z^n~zo!U+)ux##z&!4znyTrD6CV2K?7s3+5+ElqBux$V;E8traH7=VpIv|3s2#~#5R zH?xm0zqmb|{NzAlD0|lPiegKm=fQY4RhiU!4p0A~iTC%ZrtdVw~`#0`@#mYg+-T5VcaDk6zxWo0p~;cbF>T9uUrwzjAN}67Wl=QNB*wqBR*mWEFdNW69}QYD+YlvG80eg+1{zzo~Y%23z5N| zl}q2B>;j4ixts+Y_gSo&>lr-I?DwRXsHiFX;Y3Bk)r9TgO$U`_^@Dfl4D4}Oz(w1! zcB8l(syay`(g6OFxoLZ%Qy*AZ$h|w_a$kO)B>nAsH=moL!!qa0;yF1_o_X3@UQiXs z^evsnKZA?@6ZYcoLeW?>u_Cw{f)83{{28hF)51L8mEHdas;XOVrFBdH-O+a--S`(0 z!QbMpe`n0~yVTzAmT~wRz5lt?ckWB6umA6q`U?G6>MQMBTtEM_h(nB5%)UCFmp`dm z{+qVZ@5ldtT-URjmV85iHmA1|CG(HxJH7_*e_FAhyL+JrzAb$5@+aYoDEzz%X$|BN z9&Gnv#T7*_-oIhe^S@~Af4#B)MWmbW0#N@xdjD;H=noP&|I%aoM>|Y96f%+O0*b2~ zUMjJhmMMd;)qr^KH>&UVe^XlJYYgc--N64hR_yy~?Y;{j`eOONR4Ax^F1B-un0_oP z=f9L}Ipr?g z<#$(F=>PgseOGn$*Iw9vhQ$Z($S(q9Ki!eBA^BMl5+{VL;|QbB;WKQZH;`a6oc?bT zdB66-{=#};XLFJ7-G7qc{J+1sp3`7&XQX;0H^%=$CHi+cVE>_}{<~bT5wPabpH_ic z)s0_Puo;|OvkbwR{41`yUwiL=GKl!y$Qy%x6|6eUhV{Yz1(L+q4%n}5#xMOOzRr5W zXowB4p9I4U^Uqn&q2FXZ|Hpn3zj2iQRTt^+M&92edjDO{*MDS4^tJ2t7YzP4n{WKv zcG2&B&>sbn-xm^n9~f4$!c^1#S;Or|q!lz@34elW@h45t_gKO|Fkc{W2vWRYuf9aw zpS=mNkK~{8Ccex2`VYMzzxKfX*y8`KgV4_wztYj)ayemyfhz3&=_lP0s~>eozGrj% zQ~vgk!bc`DRZq8+W5E$qRqz>}{)ghB?{dRF%P9ELUj9lq{{Ozy`dtyxcR67Hkyqr` zKG=V+$X~S{`WG~E_*TAX;1}8N-@EVsI;!;#x%z)(!w!>IBQi|;k)wYVIs7hH?El%@ zl7YNJJI4rSzJHAz!hVZ|eOuh@Yj5mVx8!YfL$}FQt8&h!mVE_rm)ySrWyCB7_-@i&aUDmyeQK=6KdS;68hZ8V8(d(Q-(J>R zsl!#G^WIY;Ldc#4hfO+lL+p|o`zddcy}l!V8+Lv}xACz#?!SZncTNAhrT%-O{%cVF zS@v|1jTVtKWTGvPiOpRScsemXpyuRxT;6D#YPh8Cd5z)aH+xZMQq+>HVx;!h|1RG0 zrDhleTz;w<{@h?7GPuk4NMnXbkf9$~<6c{Z09j4dNyGiHC&#(4l-Ehs9lo!)d$#sbz^>M$EPW`qE z`CS3=x1yDDD^0jVO3ZT&Uc&n8OUbVm+ZjsyQ`=CYjkn*T%!B8K)n2batv2c2yQKEm zk7e|$J=Vi&ht-yE>)kVd6((F1y>AP{hf;hjY!R9dUiP4}8^_bGB24jCWXq+?K{qE;qokCry+W-uSX zPdtPHr2Ii1^2trQ4`gJ0B~_k-48f!RHU`L?Z7%#E0;p}$*+tNV@MBY(bYV0qvQq)O zp||k_Ic`YP##}?TK-T3j3pc*?30U&=b$S|DwEbn4-m5;4NhFrzS5FeTNf%-F4n{`N zI{2xk*xF98UUOp=tc3ALuBERZ1A&-)YMjC^k1;}HM*$r3jT?u-ec20n*GS_-P7W+H zQIj|63Y$0S80SANBAYhp5RfShjFw4jfGh}r>XRKWump~cMCfWM@S-1++ywancV-VsX=HRw^%qx`WCHG41Ay3%+O-U2%-cKRd^B~;DFF4BF z=i9J(ZuqIfBIJ)tT}%C}70JPSp1k7`$1sF?9BIb!x8HJLn(-@$R6IHV1Cjs==)NCX z1AC3ABqaa%9!^qeV3|x+$ay|5WQ=}o(en#=>&v-7HKcIk5u3{q@&tX`}M$t&$G+6Bv z%%T6#;OOgS)BA7B)hskMW6y9u3&Utldm1enC8H0PY2EbZ@Mmfh8;?45tVwr|%4Ek8 zKTD44@FbH+`uVu_mbVB;TR;udIDTB>-TijzU5ngIX{w*-@_P(L$7A6G8^mZMeW@Ia zZX8*TyjlV7I&W#}56Ctdkx4db3Zi?hpS-$W(^VOmOryE19s#T4Txp8kNNKPwB~k=c zIVU`pu}O!GqwRnY2e9w;Xbz3Q zE^R8lh*nIkQ2<-+{r}`MifeT@>5yMm@$4oY=QK8M8PoUU0=HD$zIyS=E4H4j`IWu* zH!!c%Qgl~;di*pG?)ZQ`blpUOcmqFBn1w;jG<@eFuCLT;&Uk)St1+1S+{S{Ru<~OU zi<6*BA@#H0`4{^#fY2q3rU(34y8DlP9y5RJ^Y}}NK&E|Iy<}=^B)&5QtH2{?S`2Bh zn@8Z5&0w};wESto!67v@x;yL3p78zHTzI6A*FwM$$LyI=mADP@d1zx?8u~9 z&~D6PpT_Pjweag%Otvp^e>eRR&16e#I6i);{gkjt1|MfU+PLori+ZSMF()~<2p5vFi*9xIFSWb+sq;?CYPx1sPr4Jep>ly?yKxb3<(M_(OHWJos_>Ziv3iJ+tuo`5s zx<}b+RZH_)YOh%=)hF9#KAT}Wr&FF{Za0X5Z(3j|th!E^>nhrJ?U0R!M}s*Wj*kuKg@yaJJSf z#K)GgnyGihS};S}aBbd0q5BRsE^ZB*qHwF@Izrf=9)PnRh9h;8A<%E#x~v zCbUEV>_pSn3*$<+JqnwqX;<{zaQ+}M%Un!9TY7NF*z`gd zP9X8|!`p=%SI^Wjv#@sWj$vVKku|1bd#UBVYtpSOY##$M9!9xjI5Lt=q0{ADu+0A2{zbRG^q4|g}H?yBFUOP}@u(b|NuC3yvCE&7M!$}Z3p6q@u2S``UMx)LE`aF}}kSZ`H9 zGLR{p+Fd;5VcMpf7BaYpPsqvP#&fN(W~G8BiF9PyZBbXd<0GC}-@1_RQ)8iB;mm~# z7mXP^R6PUiCki~LnSgy)gS~3Z$)lqTah20*L8cJ%9~gy5gD5=HQnVi*Dg57dqSu@k_CnAzZ9Us{~*J>y#4Zn71 zUN!W2B9B#hYp^g{Kl@SC$%QS%U8BmX+B#=h!jc!197fGR9a35U6C=f1!D=*_PbQ}l zNLkDfj{>sDr@KRj&g7h9p3LONJkF6wl)_ibPHW(AJlu50GLC z*=(bU3qG*R{=%f0E`cU9GH>6rtOf4C^3pls`nII5X?IOSA+<--Nza zmD<UxT=t_>vMCHms;+O={G;|MtZ5Lu*YyN zTpbF|j8c9fdGM{HCmg!#&g2Gt4>MC89=SQ$HyZIoJFfVuT7Rp55uZar%TR z|08QzsiDrYIZs;q^un^o(xA2>YOnPk#D|GIo;M1aFbMx)CI=mpJAt=WH7GUcku@Xd z{?Mh$lk+y!Z(VZ6yZO{5PuZ44NtQ-k(KsZdb#ixWNY1uPp^8(g?modg^P$`1LNh{q z?{(Y=Xb;S1)VO(JenGLBAkb741U;jb4rRZC=*$f%TM!#)wdJxp*shjV-@L`%TV71> z!^m~6#*@zTs9C2F?DoJe(j-zZPcGHhzQoxx9eTauzLL|@3#GCMu zXm;0rKWv&#*VG^^+P0$fW&hwn>YcQryAGpgXF7A9$nV^~D`R-MmG)}cU4Jk({??;U zW8oXVni+=|7q(R!HVpei9V~0Ns*);Qm%ER4S7DGj8lH?1sl$%p?=A?7Bo_sc>@6){ zTZgJ1%L>m`@_M&w8=;ZX>o`&WSZY@^2YmmPrL*rHRZ;aijV>T+sPt;cn{+mX2)+0wC8=v2H%|lZ3hIg3M?N11v{b%au6w!} z&L+c1%gXo0tqup*<0_|F44#B+InF*ITDBa zHb$35Z0ox^SPUdubl-i1P482Grtl~0*nv|po2#I6Ch}w%v)a1x;b0jvx1mX2QHRd5 zX(E(@)SLp*zW2?7MNK5SJ7ZY04|Qg59OO~B85M_B>oVQzWN0(A)yS`+#s!p%ZFPlf zzc+nKQJ$7|NqeUc{4o#mtcY{=wR-8b#}@WdJq7aE zx74?k)|d;lJ>7NW;+@G_2;mZZmMTpHVT5h7*s=ZC@%+wGShCN;CY{d)L@f{RlxO;7 z-U?slT^rP0-{}&CJxQG>NmNHP(=__!2H4}b^l+$x^S)2lbMI7X@Tx%q*(b55YdVD| z$`2H@xom|MMrl*4L3?XL!4n~&NO9`YGyApR0cv@i&dYnazF3>y5n{H#uSaNy^YwyL zt2tvXCaw!&r!+GdnmuFj4ianTI(tt%adS1x3HgB?qwP}XHGMIO`J&OVoD!}D%@RyV z!&o`?dzW^rx!5@!nT@8AUe|%OPJKa}Aw^hN?PSYc_0S%%gbHi<*yRWgXI0xX@1LIj z|JwWVc&NMf|0#8=yP_myn?z_MA;~grNMb^fbt=gc$-WHcE)@zx)Yv6SDk)2{&Rwz& z#xCnvXR;161~X>H?~FEmzt8e}y`KB~dY(U?fBa+4`CQlazRq>dxz4pzMANKX45w`O zhXdzK9g1EBd^%DH_BjXh{k`}kWq3VI(mvTWx5a68UN6M9UBmH$4!>JNODqfeZZ#$Q zGd~WgRxmSm2_t=K!L`yp;UKBtC`@l(RDV{JADKC1T{z-W6N*w+Z;)pezv`w>`%0rE z#^NpCVPvz?1EVe4A31EP(D_pm9HSrN=WaLzq*i3Mvn@6cqBqSD9oV*Tu5 z*y^|hDS}13%HtGw{TkPgs(2AN_t*57!MF-k7S+6FaWjw zo_qaX%F3-QK8w1I?_&i_e8RRfHObAmtn1Gqayk+8R}y13QjJzz%_ruE9STCRuh1lz zZzU%5t(T7O1=Bwh9eh%NTfae~XWX3AK?cT5r~AIDNMn1^6OJ`UQ`#qA+vFBK+HkEZ z+T>kcVa)Rgvr7Y??ylJ^{<8eR#3Jne-OJqVj#zl~C#3a(urAA@n?5`3s_=<_^pA`& zip%6*D2rWo*>^34`iD0nnSCXvU3t^N`G$73UB|Q1dz5vwbx#X!RgJ5J)Qi+OxPEz> zBcK$u{XXA@s}9l!Ke~yrOc|=`@6>P92j>l?g`W&lm#j9!v|&$>da7WgJ<5aw_Jjw? zcFoKoy7RT+%zTz#Ekc$shKf^RUvHJOEx;sLj~?X2mDVN$T+;B@HrRp|1U{QDLgdgy|$#E^OgV9|0?jq@9`W@D&OqV&r& zx~~775o}Ad@6|E3P+qsHr-+`uIiJ)m9ade8k?M5X=8{mTF4RavQPH8|4BuQ` zbc3L{Jr;Qlr%GzcV_lvb?Audhm1*BHzO^k56xbhL2&M{s5S2mpF`V#}%^FcJYt}D3 znVH4~1-VLmIyx^rTHV3vx7~2q%C{V6%_&Fr2L(QBVz%Ny>|BUoWm zpVMg4&KFRKvTQT%4V7Pl2p%GQaRpv|QKcy9j(S49?RK%}pHN)k@>@}Zv~Jc~SU;ZG z5-$6|BFi`Zx{|X=kJ$^xoO`86oYIKM@3ZrDY#emp?0gZ_A)Wn>2sU8e6vZw=n0V@l zZl8u`>s~R?O@Y#_9@G^TkcMFr<`q1;J}j0me4#mOF7}^o&_bFny2nbi$Cd$)bRxWk zTvAR?@N`J?eKC%UZ!5qkTZHdaTc72eP22tHn(*kHw`o+pSjmH6nYRAZFW&Nx9TLNE z?duln#n=qSayeZ-!Znbo}&0f&1**?`S z=9p;WqZs}xB64=)?;^G;oUcIH8?V246y5)!@}{RzlZ_DJ#qFzoc*9%io$> zoNH&2e68}vn+Q4IWSd~Qt0m%6cU5f|YYFl#*h5(g^%D0kpr@*~QMyT3l|Nxg@lTuB z?t#vga!(QPhImS&D*v;z!`(_p@Z@x|Z$u*$iz#JDj99?x0z6C71#+PeQ0g#}cwcQJ zjF=J|U)f^ZJWDKCJtBVo{nm2V>w2%pCeNy#3cK)n5o|2COMMpS(4F{%*2`7#9=jIn zl=1enQ;foi3M>h#T)Li_NiQ8C;KYPMd1Zxe-zl@a00Ca5`VlLGMVx}9&Lws4nLM}C zZ&eQ2f4;Lohu#lS{&M)Rov7=OnzKI)3Ac^i=pG^Kn)I#=n)eJbG^yP|&7hVWwK(Tt z<>_c}Nb1U}V2lcv#82xR!x_0+`zx4p@9D#Id&? zlq}z|mK-3yiDLjrEDNfhHI+0Xn8d92eqqUWwhxTBpEXvn)moP)JMC`Ko2$N734g4r zfkarIM-qPv-raio!n434@K9X*a-xpXcKX6WD0wd{JUQi+Mp|uIU`{)Xq~ebmPFnQ< zzBka?%-R=r^6Eas-KaF{S5?`30VqRXJ8pd9vKJP(8&}R%13CmmER`8I!$XTPnHU?6r2yllV|jlrV}^|7lD24wK_z zh>7VyCG*)dxig!Ecm@{=y(jUr%JxGk(g{K>@d|^3BdwD(UvHU|2W3t=%uh^KO%{T$bX-OacuAKhe-GtAu~d7i0a z$$aNDG1~6*5m6F1kUdaD8s0nUYsVaMNtScUciHLSM~a>$$oXc#o9%=vW0UPt>bhb! z<5V(TT%PyVJ0)HT4@*B9?{cT;#mvb4uI5~!*y$*w6*YsqK<3k>tvsvcDrVeY^isSR z=&-R~C^H;JHEXU+1e@e3}I_Q5<7rzju*5?gOYrh+0Xa9-PSgulm+V* zpi>K&0+N0UOAymp?k3g)V6!xrAnlAagHj38=*U3dq3v(4)3OV&yF6IdymEBGI&<%M zGALE_iJ}spx2WOPqV=Y^yCe6WQtP0nB0={?XpJP_o|!#~@FOWUb1LHg0ZF$m`b5#@ zb;@bbumv>3^yXyh)>p~2*%{B$JIJziRtE@r;01tQoxP84WZJX@QB=M^9?Oix9ULt% zGS_;M*D?3bd+UuYC36EC{mmS?l|46%$?;z9$D>WVgj~fpQl`VaxJ!})Q=ZZ^EF)TQ zXt|AiTw#7iv6RPV_H7ugB}l4uF|)BPwKe^18I}J?S%#~xz~eVoC*1i>Qp`$@f5AJ* zhTBFKyLw!85D9h9X%mh0?0w{EG#EKE(I`5&#w()tX!l@Cdd#lWhLeseVy_wVZ^!S$ z>w33RFw_PdRnaQJu+=DFHL^E@d9+?kN6OLgj+U18jlPN$E@|DiiM9THn7oP*G;$qPg*cZ>)X>zIZqaRI zCZ+dU?&^DaY2@Xumi9THNGZ6-hos@zR>NbC9?#WHBV_Cs^`Ezm!eqI56ziN^T;=?C zPzCFS)MUi>^(pt1X|(mtlJO}@Ie~r%hcbsYPmL4RMH*9)UFe4upU79*^&Qq=^l1Dp z2HKwS`n3Y;nN~48#a+ogt*Cu^x~lAcq0g!93Ya5clU z*fg0jC%F^->q$^G-*|#4^Jbe(`@QGw`{nXV;irqXV zJ>sPsnkRL{$qgNoK!!_CN|()EP79{|~MGoAlQ~cCiI9s@LFV_LCCcOCv zvFiqn5%yP>AZsJL)D^&rJhz?6d9YcmJfV6fufUs9;kzsU z%iZ2l#k?@7lg2Y{+F$5dDfYxakqFb^dG{p%H< zde2&HnummD?u87isMphS>k8Nh;PlG~`gYJagb1a0r*tk_1`k7tS3Z)cQ0nR-G%unq z{#D{$bN7;%W~@O#=R}MTaxY{G{oR#8KG1gIrFkQb1Zu^S(vU~&@dFIwRJMHZ==t2j zy}7E3)VCG;6F;%{rVp_O2n2aP(^(6tK5r^JD1eAo@_j_2jMp%*(c8$dBg`byUNPfp z7v9!mSE6x6t*58An&`}C-IPR~Q&yyL*tU2^f>{t_5GZO}?)F;lY`8PIv*@7UaTP+TsdrhQB>g5)4W&SbvIA|i%q_mm ziNDLFUoJ3VTeYT`v}pDC72ci9A}2Rjr1Kt8Qxc%Y16GlhkCWrEV7e2`QTsCbYDoG`O zYs-mzYT`nPUVpY>xSymyRzzv|w{r^jC6hsqNe9eG2{tLv4Lk}Zl9{F8HZdXY#Qf}R zQNy@Z4Ci)C>kD=OVwMqS#y7R z2=4kG@fT7}>gTN-ih0a7Y8Pm5QK*z$>h_WZdK}%8Sa0t2zS%#U7$9ldwqxCEyo)W8 zpYmMPQTL>z6V1A#B3d(ATK)2f#GB6n8CMWIL*8HT2`JJQPV2M7Fm+FI9crI14%d}3 z%$q_hMl1FN+LvdV)$UUorw8WmlXsTXIS{WPxpTL*WC#)0qTZbwkbgHg*IxqKR~}jB zy%%&K|D1nw_Xe~ah$RUF?AkSBFp{X1@v4O^8Z zL{0fXiNq|fn#~U{hnHIOt=Bm1dU1`$la4W@fpCD*z=xQ)3vZC`y&tRkF1BpZ2?23* zqX<&CJ0+V+X1nrQC4dI5W-lEB%*EGXu+yzY96%t20|FQ#-y$ zJdqTGB5h)qsHd#`J3OeH#|I1VEH;=#_j`s}xz z9##1nbf-XZ1+m~Qm}5v>p!0>>w>MtdQ{*0Ku>=X{X1q3uEC>e#&cF*~wnd^VYPC{1K#SBm(g<%;N! zq8C4xic~{qn!$BFER@l$IGfm`&O#UizK^1Y6I-#wRoJt2$vsPut(d}KTU3}9T`k#u zUhYT9!KHsG3F~iU$ULp=8?J<8cWxiH%D#1hW*l}$Wbse=w!oV4O9{C*8h#r*wz!@< zmc0I{-%SVv^oteDj7SwwHc}h*5z$V?Huo(|%TRe(`^o6l>`R37(wTllo!V?cnfeBL zaNwi)s+*_-WX_M|iDC>3g7{iyIaUuj^d~mfd(_3>NAT|t)jSNw@XO^Jc(tU$oVWX- z4m@*0O0LOqd|SD*KIJ_oX)ZTUp?{*JrP^@^4?73qCN^@9^cE)By}!w&RKzDz`F8>C z&kx`;_&swOYwi}gNjjYO-^um5b*RunzM#GKrgrK~!^J_lEuZ3KVoyQb=;X-hF6K7) z%oesQ`gYj{>?a+1r6%73SXNu0B%uYp{$l1yRHDs*{4Mfd`kT9Dt2?N&;o>@xYqj=O zKK%T9a?rkt^hajvPMYl&TCb)K)0q5%I2Cw$tntH>F%vx*#z_^TuT5&_uF!3p98MUE zI9qoPK&OqG@KhhlmeEKh)C)-z@=IX#NNBli(EFY2Lkxj#>!D*ff6DGr@uHRxX65d= zaRYjUhi*Q6MxK5`lD@3~6^g1AVrw}Q1`(9IuqX@f1q?G4J#5m;-UVWDZT_WSbc3i~ z5b~?Qyw{EWgdN$4l6uD+r=Dk(y(FR!IzGzrdsh^Z>FepT|947+LvL%-A3Gn#cnelng*rr!%p*7J zGZ)xb_N&cCqcmZ08w^-d1U&j*`+@ZL848v^Q9arF^p*@Nua>u|dm69aUI$k~CuFv5 zcH_JIi+QO3+veeru)%flz--{-{ofT0%5$)lJDEv%B_!rYJ=Z13U)$-FQ$mpI1S>A+ z#l)oM%f-(#{-+j0yu~oxjHx;-4t|T7CO?1l#d^!%SHt>sX6vA{s*gbg!4kw)zI_Ti z-0#&7t}*O#DDy>2Ef`?0S9j4;X#q&wRPwjBTHoh1{p7(83W;<1OdE=N{o zGZW>25sX342`xbe#m039H3wJH4 zSaT31{&5mdKeYt8gl0?hCz|M&C%U&0s2Rb-`^BaLZSz0kQH487^J z@);TOuI9PyydzVs*>%H1*KYI3$|p3EmKAA6kM85GHk&oSNJ9-0#E%!I-nJc33kVxCZMpUY^^HL4QGgb7pbr+)2-&L06Ibisie!wLGR`+!J9N02_3YX$ zb@d_S?qGS^?j7egADdF#YW280tJ0N-=7;M^PDvEQGix$1;)*&03^O;jExpZ4_#>L3 zln=tERqIkNA~!EVBERN#bfcc=FK1k^(}$=qJlC^4>})7FX`Z`*s=-dcXuO;xk`5Lh zcqHKD0?<@ITU;GHjOK@6oXi8$0YHEGomVg?uAU9z@tdf4mNkYQwI4PX0i(Dq^0H2F zGBE%RCzDc_Qv*QIeV#uRxWxe8Pxau8G&D1TT@IQEeI*UmBx8@_aM*Hs31U|FYeEGli{QW1aZ+~v?_~EBYfL34VZFO)jJx0to^m*J0mCd+ilt9b^hAAA=Y_N0}suHx~hH8tv@t-edZQ*>QHHi zCUmep+WPa87ppV$LjI8SXmh$=C?FCL%&jJNCg&8_hq>Uy4?4|xu+-LyXYo&7M+?rGe$;fV$HGyZ2)EIVvptNojc(}ToI zS+Ct*doYe#>F*v?u2B)}x|d)2@F}uJ>H*IVS%!C=v+i%A8hV(t(3v$wJTAtRxlm%# zhI9F$B_;F5#o6h6yz%24+Ahj^(Q>f16t!fs88YKNP%&N^}T@Tu1 zgWe;E>7SPSKk_~{mK5zWx-Jt;G!ykp85BiG%pY6}LZNK&ir47rNXPZ!iQcR0*>khT zv@0KOj$l~#&C1?mJE84pbTt&yT$zqlO%1)N%&Jd6HECYRJXkIy{3@S)?ZTtQ!9|cf zNjF7duynscaOg2XP)&5o(Tsvc{+T66J}L)XbszfDfh!#ITAsem7PQf_8K`1eusJGS%>~wZ@G5b7WWS(tZjUCp;? zOv6x_U+49v2f&$0QK;&d^7NNb9vJwiaV4x3+bM{uE#Y+O#B~TV?*VsR{2L!|8UsDZ zE=T;Fm&~?)j~zY_=0yiXX)benzYi^59@;6$4CM@cJ3YkCVpsT7F))ieL1G*VL!cu; z+<4R>z$$bdibE`HF8ezx;61W-;yzo;3{`(Y{eSTSz6p5Yd^6-Wstx-&TWARa4x?AB zK!O&PvIsn!3eHaVu_IP&1Zo6Kd$JQuyYP*d5*wBtD+=V|VR676 z3B-^9#IWuY?0?KlrZ7_IY8;9=;Ao0+zMJtwhQDHS@hh{UKW8Q|OI=qA_!sE|RCDC% zTmLz#n&1S+5q}A4@;g7CKrw)fe}!iSOW?!bklnKGSCt@fRN`NTZcE5AbU*ch2BUa! zwD8qWErkC)cs_j9;ln?bVuk*H74b@F$;;4QK~SXs3AFwa%euA%=~`A|po!z)hzDf6 zymG#wvqBZIUsaI$&z1hw z;QhVzcxgHq7~yT;?f|0qmhB5r!ffX2Z|3JKGAry0=d<524bfR?ptC_!n7;zFu&b|Gdo|A zS+Of{KKcXF&73{%hy1JqfqnifP!sx!+E23&{9ZEO6#MI*!2eybf5k<7*{-Mku6n@gPg^))XzE%`XG_S)0zH%Mz;?Bwrx`f& zHE6rKLq$I3D}`#EW+@T6m02&l(v%K!BdXjJI!lu;$tkwX^wD!wGyH#)lSM53QZHl{ zflH}}tFq7aUF+yOQ<9s9sbidE@L)I5?mSC(@qE^kqcoS(O*o;x?}1S3f!*)BQ+K>5 z_tY@bw=gPelgZ0{mtvS~aX;ajEMIf0u3~OMx-;Zd>RF3{Q*DM?+s>^zv!i+Ue(C(l z$?){H!!z4F4b-(Pc*f^0+@n1cs*BJ&eQVIQ*$yhLDlcF);dA_PX^EIzI&>mJb6;`O z2XT_fczOGnF}rSP5LfCW+4H8SN2MzcU(fk>%SQpf92!j+tL|^+{p{9&>yg>Gs+#42 zAGfWY>>u@%U4mS7ow4mJ*)ru?R-$n|9X5fdRaId8rgaL>fSJq^nV**@K29*PE=w~d z1%1N!*~*n{V zsBD^h=1#TY{D1mR@~hGS?QA?$z-sjIdrN~-X;;efe{S44hV(gNbsE;02&m0ogG_YE z=C#O#FDkOWQD_V%YPW+OTAp`vK^rFfc^kcdW>;VQhC83eIU+g?MyB1~v!VM#^OzyK znnSthPtF>ENIGt5;5OBl2V{O@OkKk6r98s$C6&YU55|@UN}RRsY{$ox1AWwWSI8O+{W9?Tt+{EBq8L;ThjN`2oB@f@`q6IX z?l%aI-x!0hGaJKov^p|pfN*~@#u>QooM1svdTSah?i)fsBn|8MO5%v3`;FeKUqwwD z*brdm#|TFx^YX0_bui%b@PC!)-=##vc*^7l)555jdz&vrY6FFAJudk~Jflj&Hu{CX zYrbQK$oVnmG0|f(X=Fo6YE|gQAzfxARUmkTSAj067p$A# + + + + + + + Dream Multimedia + CommonInterfaceAssignment + enigma2-plugin-systemplugins-commoninterfaceassignment + Assigning providers/services/caids to a CI module + With the CommonInterfaceAssignment plugin it is possible to use different + CI modules in your receiver and assign dedicated providers/services or caids to each of them.\n + This allows watching a scrambled service while recording another one. + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py b/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py new file mode 100644 index 0000000..b89056c --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py @@ -0,0 +1,645 @@ +from Screens.Screen import Screen +from Screens.ChannelSelection import * +from Components.ActionMap import HelpableActionMap, ActionMap, NumberActionMap +from Components.Sources.List import List +from Components.Sources.StaticText import StaticText +from Components.config import ConfigNothing +from Components.ConfigList import ConfigList +from Components.Label import Label +from Components.SelectionList import SelectionList +from Components.MenuList import MenuList +from ServiceReference import ServiceReference +from Plugins.Plugin import PluginDescriptor +from xml.etree.cElementTree import parse as ci_parse +from Tools.XMLTools import elementsWithTag, mergeText, stringToXML +from enigma import eDVBCI_UI, eDVBCIInterfaces, eEnv + +from os import system, path as os_path + +class CIselectMainMenu(Screen): + skin = """ + + + + + + + """ + + def __init__(self, session, args = 0): + + Screen.__init__(self, session) + + self["key_red"] = StaticText(_("Close")) + self["key_green"] = StaticText(_("Edit")) + + self["actions"] = ActionMap(["ColorActions","SetupActions"], + { + "green": self.greenPressed, + "red": self.close, + "ok": self.greenPressed, + "cancel": self.close + }, -1) + + NUM_CI=eDVBCIInterfaces.getInstance().getNumOfSlots() + + print "[CI_Wizzard] FOUND %d CI Slots " % NUM_CI + + self.dlg = None + self.state = { } + self.list = [ ] + if NUM_CI > 0: + for slot in range(NUM_CI): + state = eDVBCI_UI.getInstance().getState(slot) + if state == 0: + appname = _("Slot %d") %(slot+1) + " - " + _("no module found") + elif state == 1: + appname = _("Slot %d") %(slot+1) + " - " + _("init modules") + elif state == 2: + appname = _("Slot %d") %(slot+1) + " - " + eDVBCI_UI.getInstance().getAppName(slot) + self.list.append( (appname, ConfigNothing(), 0, slot) ) + else: + self.list.append( (_("no CI slots found") , ConfigNothing(), 1, -1) ) + + menuList = ConfigList(self.list) + menuList.list = self.list + menuList.l.setList(self.list) + self["CiList"] = menuList + self.onShown.append(self.setWindowTitle) + + def setWindowTitle(self): + self.setTitle(_("CI assignment")) + + def greenPressed(self): + cur = self["CiList"].getCurrent() + if cur and len(cur) > 2: + action = cur[2] + slot = cur[3] + if action == 1: + print "[CI_Wizzard] there is no CI Slot in your receiver" + else: + print "[CI_Wizzard] selected CI Slot : %d" % slot + if config.usage.setup_level.index > 1: # advanced + self.session.open(CIconfigMenu, slot) + else: + self.session.open(easyCIconfigMenu, slot) + + """def yellowPressed(self): # unused + NUM_CI=eDVBCIInterfaces.getInstance().getNumOfSlots() + print "[CI_Check] FOUND %d CI Slots " % NUM_CI + if NUM_CI > 0: + for ci in range(NUM_CI): + print eDVBCIInterfaces.getInstance().getDescrambleRules(ci)""" + + +class CIconfigMenu(Screen): + skin = """ + + + + + + + + + + + + + + + + """ + + def __init__(self, session, ci_slot="9"): + + Screen.__init__(self, session) + self.ci_slot=ci_slot + self.filename = eEnv.resolve("${sysconfdir}/enigma2/ci") + str(self.ci_slot) + ".xml" + + self["key_red"] = StaticText(_("Delete")) + self["key_green"] = StaticText(_("Add service")) + self["key_yellow"] = StaticText(_("Add provider")) + self["key_blue"] = StaticText(_("Select CAId")) + self["CAidList_desc"] = StaticText(_("Assigned CAIds:")) + self["CAidList"] = StaticText() + self["ServiceList_desc"] = StaticText(_("Assigned services/provider:")) + self["ServiceList_info"] = StaticText() + + self["actions"] = ActionMap(["ColorActions","SetupActions"], + { + "green": self.greenPressed, + "red": self.redPressed, + "yellow": self.yellowPressed, + "blue": self.bluePressed, + "cancel": self.cancel + }, -1) + + print "[CI_Wizzard_Config] Configuring CI Slots : %d " % self.ci_slot + + i=0 + self.caidlist=[] + print eDVBCIInterfaces.getInstance().readCICaIds(self.ci_slot) + for caid in eDVBCIInterfaces.getInstance().readCICaIds(self.ci_slot): + i+=1 + self.caidlist.append((str(hex(int(caid))),str(caid),i)) + + print "[CI_Wizzard_Config_CI%d] read following CAIds from CI: %s" %(self.ci_slot, self.caidlist) + + self.selectedcaid = [] + self.servicelist = [] + self.caids = "" + + serviceList = ConfigList(self.servicelist) + serviceList.list = self.servicelist + serviceList.l.setList(self.servicelist) + self["ServiceList"] = serviceList + + self.loadXML() + # if config mode !=advanced autoselect any caid + if config.usage.setup_level.index <= 1: # advanced + self.selectedcaid=self.caidlist + self.finishedCAidSelection(self.selectedcaid) + self.onShown.append(self.setWindowTitle) + + def setWindowTitle(self): + self.setTitle(_("CI assignment")) + + def redPressed(self): + self.delete() + + def greenPressed(self): + self.session.openWithCallback( self.finishedChannelSelection, myChannelSelection, None) + + def yellowPressed(self): + self.session.openWithCallback( self.finishedProviderSelection, myProviderSelection, None) + + def bluePressed(self): + self.session.openWithCallback(self.finishedCAidSelection, CAidSelect, self.caidlist, self.selectedcaid) + + def cancel(self): + self.saveXML() + activate_all(self) + self.close() + + def setServiceListInfo(self): + if len(self.servicelist): + self["ServiceList_info"].setText("") + else: + self["ServiceList_info"].setText(_("No services/providers selected")) + + def delete(self): + cur = self["ServiceList"].getCurrent() + if cur and len(cur) > 2: + self.servicelist.remove(cur) + self["ServiceList"].l.setList(self.servicelist) + self.setServiceListInfo() + + def finishedChannelSelection(self, *args): + if len(args): + ref=args[0] + service_ref = ServiceReference(ref) + service_name = service_ref.getServiceName() + if find_in_list(self.servicelist, service_name, 0)==False: + split_ref=service_ref.ref.toString().split(":") + if split_ref[0] == "1":#== dvb service und nicht muell von None + self.servicelist.append( (service_name , ConfigNothing(), 0, service_ref.ref.toString()) ) + self["ServiceList"].l.setList(self.servicelist) + self.setServiceListInfo() + + def finishedProviderSelection(self, *args): + if len(args)>1: # bei nix selected kommt nur 1 arg zurueck (==None) + name=args[0] + dvbnamespace=args[1] + if find_in_list(self.servicelist, name, 0)==False: + self.servicelist.append( (name , ConfigNothing(), 1, dvbnamespace) ) + self["ServiceList"].l.setList(self.servicelist) + self.setServiceListInfo() + + def finishedCAidSelection(self, *args): + if len(args): + self.selectedcaid=args[0] + self.caids="" + if len(self.selectedcaid): + for item in self.selectedcaid: + if len(self.caids): + self.caids+= ", " + item[0] + else: + self.caids=item[0] + else: + self.selectedcaid=[] + self.caids=_("no CAId selected") + else: + self.selectedcaid=[] + self.caids=_("no CAId selected") + self["CAidList"].setText(self.caids) + + def saveXML(self): + try: + fp = file(self.filename, 'w') + fp.write("\n") + fp.write("\n") + fp.write("\t\n") + fp.write("\t\t%s\n" % self.ci_slot) + for item in self.selectedcaid: + if len(self.selectedcaid): + fp.write("\t\t\n" % item[0]) + for item in self.servicelist: + if len(self.servicelist): + if item[2]==1: + fp.write("\t\t\n" % (item[0], item[3])) + else: + fp.write("\t\t\n" % (item[0], item[3])) + fp.write("\t\n") + fp.write("\n") + fp.close() + except: + print "[CI_Config_CI%d] xml not written" %self.ci_slot + os.unlink(self.filename) + + def loadXML(self): + if not os_path.exists(self.filename): + return + + def getValue(definitions, default): + ret = "" + Len = len(definitions) + return Len > 0 and definitions[Len-1].text or default + + try: + tree = ci_parse(self.filename).getroot() + self.read_services=[] + self.read_providers=[] + self.usingcaid=[] + self.ci_config=[] + for slot in tree.findall("slot"): + read_slot = getValue(slot.findall("id"), False).encode("UTF-8") + print "ci " + read_slot + + i=0 + for caid in slot.findall("caid"): + read_caid = caid.get("id").encode("UTF-8") + self.selectedcaid.append((str(read_caid),str(read_caid),i)) + self.usingcaid.append(long(read_caid,16)) + i+=1 + + for service in slot.findall("service"): + read_service_name = service.get("name").encode("UTF-8") + read_service_ref = service.get("ref").encode("UTF-8") + self.read_services.append (read_service_ref) + + for provider in slot.findall("provider"): + read_provider_name = provider.get("name").encode("UTF-8") + read_provider_dvbname = provider.get("dvbnamespace").encode("UTF-8") + self.read_providers.append((read_provider_name,read_provider_dvbname)) + + self.ci_config.append((int(read_slot), (self.read_services, self.read_providers, self.usingcaid))) + except: + print "[CI_Config_CI%d] error parsing xml..." %self.ci_slot + + for item in self.read_services: + if len(item): + self.finishedChannelSelection(item) + + for item in self.read_providers: + if len(item): + self.finishedProviderSelection(item[0],item[1]) + + print self.ci_config + self.finishedCAidSelection(self.selectedcaid) + self["ServiceList"].l.setList(self.servicelist) + self.setServiceListInfo() + + +class easyCIconfigMenu(CIconfigMenu): + skin = """ + + + + + + + + + + + """ + + def __init__(self, session, ci_slot="9"): + + ci=ci_slot + CIconfigMenu.__init__(self, session, ci_slot) + + self["actions"] = ActionMap(["ColorActions","SetupActions"], + { + "green": self.greenPressed, + "red": self.redPressed, + "yellow": self.yellowPressed, + "cancel": self.cancel + }) + + +class CAidSelect(Screen): + skin = """ + + + + + + + + + """ + + def __init__(self, session, list, selected_caids): + + Screen.__init__(self, session) + + self.list = SelectionList() + self["list"] = self.list + + for listindex in range(len(list)): + if find_in_list(selected_caids,list[listindex][0],0): + self.list.addSelection(list[listindex][0], list[listindex][1], listindex, True) + else: + self.list.addSelection(list[listindex][0], list[listindex][1], listindex, False) + + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("Save")) + self["introduction"] = StaticText(_("Press OK to select/deselect a CAId.")) + + self["actions"] = ActionMap(["ColorActions","SetupActions"], + { + "ok": self.list.toggleSelection, + "cancel": self.cancel, + "green": self.greenPressed, + "red": self.cancel + }, -1) + self.onShown.append(self.setWindowTitle) + + def setWindowTitle(self): + self.setTitle(_("select CAId's")) + + def greenPressed(self): + list = self.list.getSelectionsList() + print list + self.close(list) + + def cancel(self): + self.close() + +class myProviderSelection(ChannelSelectionBase): + skin = """ + + + + + + + + + + """ + + def __init__(self, session, title): + ChannelSelectionBase.__init__(self, session) + self.onShown.append(self.__onExecCallback) + + self["actions"] = ActionMap(["OkCancelActions", "ChannelSelectBaseActions"], + { + "showFavourites": self.doNothing, + "showAllServices": self.cancel, + "showProviders": self.doNothing, + "showSatellites": self.doNothing, + "cancel": self.cancel, + "ok": self.channelSelected + }) + self["key_red"] = StaticText(_("Close")) + self["key_green"] = StaticText() + self["key_yellow"] = StaticText() + self["key_blue"] = StaticText() + self["introduction"] = StaticText(_("Press OK to select a provider.")) + + def doNothing(self): + pass + + def __onExecCallback(self): + self.showSatellites() + self.setTitle(_("Select provider to add...")) + + def channelSelected(self): # just return selected service + ref = self.getCurrentSelection() + splited_ref=ref.toString().split(":") + if ref.flags == 7 and splited_ref[6] != "0": + self.dvbnamespace=splited_ref[6] + self.enterPath(ref) + else: + self.close(ref.getName(), self.dvbnamespace) + + def showSatellites(self): + if not self.pathChangeDisabled: + refstr = '%s FROM SATELLITES ORDER BY satellitePosition'%(self.service_types) + if not self.preEnterPath(refstr): + ref = eServiceReference(refstr) + justSet=False + prev = None + + if self.isBasePathEqual(ref): + if self.isPrevPathEqual(ref): + justSet=True + prev = self.pathUp(justSet) + else: + currentRoot = self.getRoot() + if currentRoot is None or currentRoot != ref: + justSet=True + self.clearPath() + self.enterPath(ref, True) + if justSet: + serviceHandler = eServiceCenter.getInstance() + servicelist = serviceHandler.list(ref) + if not servicelist is None: + while True: + service = servicelist.getNext() + if not service.valid(): #check if end of list + break + unsigned_orbpos = service.getUnsignedData(4) >> 16 + orbpos = service.getData(4) >> 16 + if orbpos < 0: + orbpos += 3600 + if service.getPath().find("FROM PROVIDER") != -1: + service_type = _("Providers") + try: + # why we need this cast? + service_name = str(nimmanager.getSatDescription(orbpos)) + except: + if unsigned_orbpos == 0xFFFF: #Cable + service_name = _("Cable") + elif unsigned_orbpos == 0xEEEE: #Terrestrial + service_name = _("Terrestrial") + else: + if orbpos > 1800: # west + orbpos = 3600 - orbpos + h = _("W") + else: + h = _("E") + service_name = ("%d.%d" + h) % (orbpos / 10, orbpos % 10) + service.setName("%s - %s" % (service_name, service_type)) + self.servicelist.addService(service) + self.servicelist.finishFill() + if prev is not None: + self.setCurrentSelection(prev) + + def cancel(self): + self.close(None) + +class myChannelSelection(ChannelSelectionBase): + skin = """ + + + + + + + + + + + + """ + + def __init__(self, session, title): + ChannelSelectionBase.__init__(self, session) + self.onShown.append(self.__onExecCallback) + + self["actions"] = ActionMap(["OkCancelActions", "TvRadioActions", "ChannelSelectBaseActions"], + { + "showProviders": self.doNothing, + "showSatellites": self.showAllServices, + "showAllServices": self.cancel, + "cancel": self.cancel, + "ok": self.channelSelected, + "keyRadio": self.setModeRadio, + "keyTV": self.setModeTv + }) + + self["key_red"] = StaticText(_("Close")) + self["key_green"] = StaticText(_("All")) + self["key_yellow"] = StaticText() + self["key_blue"] = StaticText(_("Favourites")) + self["introduction"] = StaticText(_("Press OK to select a provider.")) + + def __onExecCallback(self): + self.setModeTv() + self.setTitle(_("Select service to add...")) + + def doNothing(self): + pass + + def channelSelected(self): # just return selected service + ref = self.getCurrentSelection() + if (ref.flags & 7) == 7: + self.enterPath(ref) + elif not (ref.flags & eServiceReference.isMarker): + ref = self.getCurrentSelection() + self.close(ref) + + def setModeTv(self): + self.setTvMode() + self.showFavourites() + + def setModeRadio(self): + self.setRadioMode() + self.showFavourites() + + def cancel(self): + self.close(None) + +def activate_all(session): + NUM_CI=eDVBCIInterfaces.getInstance().getNumOfSlots() + print "[CI_Activate] FOUND %d CI Slots " % NUM_CI + if NUM_CI > 0: + ci_config=[] + def getValue(definitions, default): + # Initialize Output + ret = "" + # How many definitions are present + Len = len(definitions) + return Len > 0 and definitions[Len-1].text or default + + for ci in range(NUM_CI): + filename = eEnv.resolve("${sysconfdir}/enigma2/ci") + str(ci) + ".xml" + + if not os_path.exists(filename): + print "[CI_Activate_Config_CI%d] no config file found" %ci + + try: + tree = ci_parse(filename).getroot() + read_services=[] + read_providers=[] + usingcaid=[] + for slot in tree.findall("slot"): + read_slot = getValue(slot.findall("id"), False).encode("UTF-8") + + for caid in slot.findall("caid"): + read_caid = caid.get("id").encode("UTF-8") + usingcaid.append(long(read_caid,16)) + + for service in slot.findall("service"): + read_service_ref = service.get("ref").encode("UTF-8") + read_services.append (read_service_ref) + + for provider in slot.findall("provider"): + read_provider_name = provider.get("name").encode("UTF-8") + read_provider_dvbname = provider.get("dvbnamespace").encode("UTF-8") + read_providers.append((read_provider_name,long(read_provider_dvbname,16))) + + ci_config.append((int(read_slot), (read_services, read_providers, usingcaid))) + except: + print "[CI_Activate_Config_CI%d] error parsing xml..." %ci + + for item in ci_config: + print "[CI_Activate] activate CI%d with following settings:" %item[0] + print item[0] + print item[1] + try: + eDVBCIInterfaces.getInstance().setDescrambleRules(item[0],item[1]) + except: + print "[CI_Activate_Config_CI%d] error setting DescrambleRules..." %item[0] + +def find_in_list(list, search, listpos=0): + for item in list: + if item[listpos]==search: + return True + return False + +global_session = None + +def sessionstart(reason, session): + global global_session + global_session = session + +def autostart(reason, **kwargs): + global global_session + if reason == 0: + print "[CI_Assignment] activating ci configs:" + activate_all(global_session) + elif reason == 1: + global_session = None + +def main(session, **kwargs): + session.open(CIselectMainMenu) + +def menu(menuid, **kwargs): + if menuid == "setup" and eDVBCIInterfaces.getInstance().getNumOfSlots(): + return [(_("Common Interface assignment"), main, "ci_assign", 11)] + return [ ] + +def Plugins(**kwargs): + if config.usage.setup_level.index > 1: + return [PluginDescriptor( where = PluginDescriptor.WHERE_SESSIONSTART, needsRestart = False, fnc = sessionstart ), + PluginDescriptor( where = PluginDescriptor.WHERE_AUTOSTART, needsRestart = False, fnc = autostart ), + PluginDescriptor( name = _("Common Interface assignment"), description = _("a gui to assign services/providers/caids to common interface modules"), where = PluginDescriptor.WHERE_MENU, needsRestart = False, fnc = menu )] + else: + return [PluginDescriptor( where = PluginDescriptor.WHERE_SESSIONSTART, needsRestart = False, fnc = sessionstart ), + PluginDescriptor( where = PluginDescriptor.WHERE_AUTOSTART, needsRestart = False, fnc = autostart ), + PluginDescriptor( name = _("Common Interface assignment"), description = _("a gui to assign services/providers to common interface modules"), where = PluginDescriptor.WHERE_MENU, needsRestart = False, fnc = menu )] diff --git a/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/Makefile.am b/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/Makefile.am new file mode 100644 index 0000000..ebb1ca7 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/Makefile.am @@ -0,0 +1,8 @@ +installdir = $(pkglibdir)/python/Plugins/SystemPlugins/DefaultServicesScanner + +SUBDIRS = meta + +install_PYTHON = \ + __init__.py \ + plugin.py + diff --git a/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/__init__.py b/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/meta/Makefile.am new file mode 100644 index 0000000..5e2d194 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/meta/Makefile.am @@ -0,0 +1,5 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_defaultservicesscanner.xml + +EXTRA_DIST = defaultservicescanner.jpg diff --git a/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/meta/defaultservicescanner.jpg b/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/meta/defaultservicescanner.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f4d0a1e2017472f7ad72c9f197afc28c10bcb8fe GIT binary patch literal 87248 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%0DCB4*LX>&h=Q7Tb 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 literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/meta/plugin_defaultservicesscanner.xml b/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/meta/plugin_defaultservicesscanner.xml new file mode 100644 index 0000000..74b7886 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/meta/plugin_defaultservicesscanner.xml @@ -0,0 +1,20 @@ + + + + + + + Dream Multimedia + DefaultServicesScanner + enigma2-plugin-systemplugins-defaultservicesscanner + Scans default lamedbs sorted by satellite + With the DefaultServicesScanner plugin you can scan default lamedbs sorted by satellite with a connected dish positioner. + + + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/plugin.py b/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/plugin.py new file mode 100644 index 0000000..a27cc12 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/plugin.py @@ -0,0 +1,137 @@ +#from Components.ActionMap import ActionMap, NumberActionMap +#from Components.Input import Input +#from Components.Ipkg import IpkgComponent +#from Components.Label import Label +#from Components.MenuList import MenuList +#from Components.Slider import Slider +from Components.NimManager import nimmanager +from Plugins.Plugin import PluginDescriptor +from Screens.ScanSetup import ScanSetup +from Screens.ServiceScan import ServiceScan +from Screens.MessageBox import MessageBox +from Tools.Directories import resolveFilename, SCOPE_CONFIG, copyfile +#from Screens.Screen import Screen +from os import unlink +from enigma import eTimer, eDVBDB + +class DefaultServiceScan(ServiceScan): + skin = """ + + + TYPE + 0,0 + + + + TYPE + 1,1 + + + + TYPE + 2,2 + + + + + + + + + """ + + def __init__(self, session, scanList): + try: + unlink(resolveFilename(SCOPE_CONFIG) + "/lamedb"); + except OSError: + pass + db = eDVBDB.getInstance() + db.reloadServicelist() + ServiceScan.__init__(self, session, scanList) + self.timer = eTimer() + self.timer.callback.append(self.ok) + self.timer.start(1000) + +class DefaultServicesScannerPlugin(ScanSetup): + skin = """ + + + + """ + + def __init__(self, session, args = None): + ScanSetup.__init__(self, session) + # backup lamedb + confdir = resolveFilename(SCOPE_CONFIG) + copyfile(confdir + "/lamedb", confdir + "/lamedb.backup") + self.scan_type.value = "multisat" + self.createSetup() + self.scanIndex = 0 + self.selectSat(0) + self.onFirstExecBegin.append(self.runScan) + + def selectSat(self, index): + for satindex in range(len(self.multiscanlist)): + if satindex != index: + self.multiscanlist[satindex][1].value = False + else: + self.multiscanlist[satindex][1].value = True + + def runScan(self): + print "runScan" + self.keyGo() + + def startScan(self, tlist, flags, feid, networkid = 0): + print "startScan" + if len(tlist): + # flags |= eComponentScan.scanSearchBAT + self.session.openWithCallback(self.scanFinished, DefaultServiceScan, [{"transponders": tlist, "feid": feid, "flags": flags, "networkid": networkid}]) + else: + self.session.openWithCallback(self.scanFinished, MessageBox, _("Nothing to scan!\nPlease setup your tuner settings before you start a service scan."), MessageBox.TYPE_ERROR) + + def scanFinished(self, value = None): + print "finished" + print "self.scanIndex:", self.scanIndex + db = eDVBDB.getInstance() + print "self.multiscanlist:", self.multiscanlist + if len(self.multiscanlist) - 1 >= self.scanIndex and len(self.multiscanlist[self.scanIndex]) > 0: + satint = self.multiscanlist[self.scanIndex][0] + print "scanned sat:", satint + db.saveServicelist("/tmp/lamedb." + str(satint)) + file = open("/tmp/sat" + str(satint) + ".info", "w") + xml = """ + + + + + + + + %s + %s + + + + + + +""" % (satint, "OpenPli", nimmanager.getSatDescription(satint), satint) + file.write(xml) + file.close() + + self.scanIndex += 1 + if self.scanIndex + 1 >= len(self.multiscanlist): + print "no more sats to scan" + confdir = resolveFilename(SCOPE_CONFIG) + copyfile(confdir + "/lamedb.backup", confdir + "/lamedb") + db.reloadServicelist() + self.close() + else: + self.selectSat(self.scanIndex) + self.keyGo() + +def DefaultServicesScannerMain(session, **kwargs): + session.open(DefaultServicesScannerPlugin) + +def Plugins(**kwargs): + return PluginDescriptor(name="Default Services Scanner", description=_("Scans default lamedbs sorted by satellite with a connected dish positioner"), where = PluginDescriptor.WHERE_PLUGINMENU, needsRestart = False, fnc=DefaultServicesScannerMain) diff --git a/lib/python/Plugins/SystemPlugins/DiseqcTester/Makefile.am b/lib/python/Plugins/SystemPlugins/DiseqcTester/Makefile.am new file mode 100644 index 0000000..18f4c1f --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/DiseqcTester/Makefile.am @@ -0,0 +1,7 @@ +installdir = $(pkglibdir)/python/Plugins/SystemPlugins/DiseqcTester + +SUBDIRS = meta + +install_PYTHON = \ + __init__.py \ + plugin.py \ No newline at end of file diff --git a/lib/python/Plugins/SystemPlugins/DiseqcTester/__init__.py b/lib/python/Plugins/SystemPlugins/DiseqcTester/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/SystemPlugins/DiseqcTester/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/DiseqcTester/meta/Makefile.am new file mode 100644 index 0000000..92a5473 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/DiseqcTester/meta/Makefile.am @@ -0,0 +1,5 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_diseqctester.xml + +EXTRA_DIST = diseqctester_de.jpg diseqctester_en.jpg diff --git a/lib/python/Plugins/SystemPlugins/DiseqcTester/meta/diseqctester_de.jpg b/lib/python/Plugins/SystemPlugins/DiseqcTester/meta/diseqctester_de.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5a6e153208ae68f0590a424ebf274289b455cb08 GIT binary patch literal 83220 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Μ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 literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/SystemPlugins/DiseqcTester/meta/diseqctester_en.jpg b/lib/python/Plugins/SystemPlugins/DiseqcTester/meta/diseqctester_en.jpg new file mode 100644 index 0000000000000000000000000000000000000000..43dad76c23c7616b83fe8c4f93d30f1cc5c952d9 GIT binary patch literal 78731 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 Ag8%>k literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/SystemPlugins/DiseqcTester/meta/plugin_diseqctester.xml b/lib/python/Plugins/SystemPlugins/DiseqcTester/meta/plugin_diseqctester.xml new file mode 100644 index 0000000..567618b --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/DiseqcTester/meta/plugin_diseqctester.xml @@ -0,0 +1,20 @@ + + + + + + + Dream Multimedia + DiseqcTester + enigma2-plugin-systemplugins-diseqctester + Test your DiSEqC equipment + With the DiseqcTester plugin you can test your satellite equipment for DiSEqC compatibility and errors. + + + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py b/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py new file mode 100644 index 0000000..f4bb672 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py @@ -0,0 +1,684 @@ +from Screens.Satconfig import NimSelection +from Screens.Screen import Screen +from Screens.TextBox import TextBox +from Screens.MessageBox import MessageBox + +from Plugins.Plugin import PluginDescriptor + +from Components.ActionMap import ActionMap, NumberActionMap +from Components.NimManager import nimmanager +from Components.ResourceManager import resourcemanager +from Components.Sources.FrontendStatus import FrontendStatus +from Components.TuneTest import TuneTest +from Components.Sources.List import List +from Components.Sources.Progress import Progress +from Components.Sources.StaticText import StaticText +from Components.ConfigList import ConfigListScreen +from Components.config import getConfigListEntry, ConfigSelection, ConfigYesNo +from Components.Harddisk import harddiskmanager + +import random + +# always use: +# setResultType(type) +# setResultParameter(parameter) +# getTextualResult() +class ResultParser: + def __init__(self): + pass + + TYPE_BYORBPOS = 0 + TYPE_BYINDEX = 1 + TYPE_ALL = 2 + def setResultType(self, type): + self.type = type + + def setResultParameter(self, parameter): + if self.type == self.TYPE_BYORBPOS: + self.orbpos = parameter + elif self.type == self.TYPE_BYINDEX: + self.index = parameter + + def getTextualResultForIndex(self, index, logfulltransponders = False): + text = "" + text += "%s:\n" % self.getTextualIndexRepresentation(index) + + failed, successful = self.results[index]["failed"], self.results[index]["successful"] + countfailed = len(failed) + countsuccessful = len(successful) + countall = countfailed + countsuccessful + percentfailed = round(countfailed / float(countall + 0.0001) * 100) + percentsuccessful = round(countsuccessful / float(countall + 0.0001) * 100) + text += "Tested %d transponders\n%d (%d %%) transponders succeeded\n%d (%d %%) transponders failed\n" % (countall, countsuccessful, percentsuccessful, countfailed, percentfailed) + reasons = {} + completelist = [] + if countfailed > 0: + for transponder in failed: + completelist.append({"transponder": transponder[0], "fedata": transponder[-1]}) + reasons[transponder[2]] = reasons.get(transponder[2], []) + reasons[transponder[2]].append(transponder) + if transponder[2] == "pids_failed": + print transponder[2], "-", transponder[3] + + text += "The %d unsuccessful tuning attempts failed for the following reasons:\n" % countfailed + + for reason in reasons.keys(): + text += "%s: %d transponders failed\n" % (reason, len(reasons[reason])) + + for reason in reasons.keys(): + text += "\n" + text += "%s previous planes:\n" % reason + for transponder in reasons[reason]: + if transponder[1] is not None: + text += self.getTextualIndexRepresentation(self.getIndexForTransponder(transponder[1])) + else: + text += "No transponder tuned" + text += " ==> " + self.getTextualIndexRepresentation(self.getIndexForTransponder(transponder[0])) + text += "\n" + if logfulltransponders: + text += str(transponder[1]) + text += " ==> " + text += str(transponder[0]) + text += "\n" + if reason == "pids_failed": + text += "(tsid, onid): " + text += str(transponder[3]['real']) + text += "(read from sat) != " + text += str(transponder[3]['expected']) + text += "(read from file)" + text += "\n" + text += "\n" + if countsuccessful > 0: + text += "\n" + text += "Successfully tuned transponders' previous planes:\n" + for transponder in successful: + completelist.append({"transponder": transponder[0], "fedata": transponder[-1]}) + if transponder[1] is not None: + text += self.getTextualIndexRepresentation(self.getIndexForTransponder(transponder[1])) + else: + text += "No transponder tuned" + text += " ==> " + self.getTextualIndexRepresentation(self.getIndexForTransponder(transponder[0])) + text += "\n" + + text += "------------------------------------------------\n" + text += "complete transponderlist:\n" + for entry in completelist: + text += str(entry["transponder"]) + " -- " + str(entry["fedata"]) + "\n" + return text + + def getTextualResult(self): + text = "" + if self.type == self.TYPE_BYINDEX: + text += self.getTextualResultForIndex(self.index) + elif self.type == self.TYPE_BYORBPOS: + for index in self.results.keys(): + if index[2] == self.orbpos: + text += self.getTextualResultForIndex(index) + text += "\n-----------------------------------------------------\n" + elif self.type == self.TYPE_ALL: + orderedResults = {} + for index in self.results.keys(): + orbpos = index[2] + orderedResults[orbpos] = orderedResults.get(orbpos, []) + orderedResults[orbpos].append(index) + ordered_orbpos = orderedResults.keys() + ordered_orbpos.sort() + for orbpos in ordered_orbpos: + text += "\n*****************************************\n" + text += "Orbital position %s:" % str(orbpos) + text += "\n*****************************************\n" + for index in orderedResults[orbpos]: + text += self.getTextualResultForIndex(index, logfulltransponders = True) + text += "\n-----------------------------------------------------\n" + + + return text + +class DiseqcTester(Screen, TuneTest, ResultParser): + skin = """ + + + + + {"template": [ + MultiContentEntryText(pos = (10, 0), size = (330, 25), flags = RT_HALIGN_LEFT, text = 1), # index 1 is the index name, + MultiContentEntryText(pos = (330, 0), size = (150, 25), flags = RT_HALIGN_RIGHT, text = 2) # index 2 is the status, + ], + "fonts": [gFont("Regular", 20)], + "itemHeight": 25 + } + + + + + + + + + + + + + + + + + + + + + """ + + TEST_TYPE_QUICK = 0 + TEST_TYPE_RANDOM = 1 + TEST_TYPE_COMPLETE = 2 + def __init__(self, session, feid, test_type = TEST_TYPE_QUICK, loopsfailed = 3, loopssuccessful = 1, log = False): + Screen.__init__(self, session) + self.feid = feid + self.test_type = test_type + self.loopsfailed = loopsfailed + self.loopssuccessful = loopssuccessful + self.log = log + + self["actions"] = NumberActionMap(["SetupActions"], + { + "ok": self.select, + "cancel": self.keyCancel, + }, -2) + + TuneTest.__init__(self, feid, stopOnSuccess = self.loopssuccessful, stopOnError = self.loopsfailed) + #self["Frontend"] = FrontendStatus(frontend_source = lambda : self.frontend, update_interval = 100) + self["overall_progress"] = Progress() + self["sub_progress"] = Progress() + + self["failed_counter"] = StaticText("0") + self["succeeded_counter"] = StaticText("0") + self["witherrors_counter"] = StaticText("0") + self["untestable_counter"] = StaticText("0") + + self.list = [] + self["progress_list"] = List(self.list) + self["progress_list"].onSelectionChanged.append(self.selectionChanged) + + self["CmdText"] = StaticText(_("Please wait while scanning is in progress...")) + + self.indexlist = {} + self.readTransponderList() + + self.running = False + + self.results = {} + self.resultsstatus = {} + + self.onLayoutFinish.append(self.go) + + def getProgressListComponent(self, index, status): + return (index, self.getTextualIndexRepresentation(index), status) + + def clearProgressList(self): + self.list = [] + self["progress_list"].list = self.list + + def addProgressListItem(self, index): + if index in self.indexlist: + for entry in self.list: + if entry[0] == index: + self.changeProgressListStatus(index, "working") + return + self.list.append(self.getProgressListComponent(index, _("working"))) + self["progress_list"].list = self.list + self["progress_list"].setIndex(len(self.list) - 1) + + def changeProgressListStatus(self, index, status): + self.newlist = [] + count = 0 + indexpos = 0 + for entry in self.list: + if entry[0] == index: + self.newlist.append(self.getProgressListComponent(index, status)) + indexpos = count + else: + self.newlist.append(entry) + count += 1 + self.list = self.newlist + self["progress_list"].list = self.list + self["progress_list"].setIndex(indexpos) + + def readTransponderList(self): + for sat in nimmanager.getSatListForNim(self.feid): + for transponder in nimmanager.getTransponders(sat[0]): + #print transponder + mytransponder = (transponder[1] / 1000, transponder[2] / 1000, transponder[3], transponder[4], transponder[7], sat[0], transponder[5], transponder[6], transponder[8], transponder[9], transponder[10], transponder[11]) + self.analyseTransponder(mytransponder) + + def getIndexForTransponder(self, transponder): + + if transponder[0] < 11700: + band = 1 # low + else: + band = 0 # high + + polarisation = transponder[2] + + sat = transponder[5] + + index = (band, polarisation, sat) + return index + + # sort the transponder into self.transponderlist + def analyseTransponder(self, transponder): + index = self.getIndexForTransponder(transponder) + if index not in self.indexlist: + self.indexlist[index] = [] + self.indexlist[index].append(transponder) + #print "self.indexlist:", self.indexlist + + # returns a string for the user representing a human readable output for index + def getTextualIndexRepresentation(self, index): + print "getTextualIndexRepresentation:", index + text = "" + + text += nimmanager.getSatDescription(index[2]) + ", " + + if index[0] == 1: + text += "Low Band, " + else: + text += "High Band, " + + if index[1] == 0: + text += "H" + else: + text += "V" + return text + + def fillTransponderList(self): + self.clearTransponder() + print "----------- fillTransponderList" + print "index:", self.currentlyTestedIndex + keys = self.indexlist.keys() + if self.getContinueScanning(): + print "index:", self.getTextualIndexRepresentation(self.currentlyTestedIndex) + for transponder in self.indexlist[self.currentlyTestedIndex]: + self.addTransponder(transponder) + print "transponderList:", self.transponderlist + return True + else: + return False + + def progressCallback(self, progress): + if progress[0] != self["sub_progress"].getRange(): + self["sub_progress"].setRange(progress[0]) + self["sub_progress"].setValue(progress[1]) + + # logic for scanning order of transponders + # on go getFirstIndex is called + def getFirstIndex(self): + # TODO use other function to scan more randomly + if self.test_type == self.TEST_TYPE_QUICK: + self.myindex = 0 + keys = self.indexlist.keys() + keys.sort(key = lambda a: a[2]) # sort by orbpos + self["overall_progress"].setRange(len(keys)) + self["overall_progress"].setValue(self.myindex) + return keys[0] + elif self.test_type == self.TEST_TYPE_RANDOM: + self.randomkeys = self.indexlist.keys() + random.shuffle(self.randomkeys) + self.myindex = 0 + self["overall_progress"].setRange(len(self.randomkeys)) + self["overall_progress"].setValue(self.myindex) + return self.randomkeys[0] + elif self.test_type == self.TEST_TYPE_COMPLETE: + keys = self.indexlist.keys() + print "keys:", keys + successorindex = {} + for index in keys: + successorindex[index] = [] + for otherindex in keys: + if otherindex != index: + successorindex[index].append(otherindex) + random.shuffle(successorindex[index]) + self.keylist = [] + stop = False + currindex = None + while not stop: + if currindex is None or len(successorindex[currindex]) == 0: + oldindex = currindex + for index in successorindex.keys(): + if len(successorindex[index]) > 0: + currindex = index + self.keylist.append(currindex) + break + if currindex == oldindex: + stop = True + else: + currindex = successorindex[currindex].pop() + self.keylist.append(currindex) + print "self.keylist:", self.keylist + self.myindex = 0 + self["overall_progress"].setRange(len(self.keylist)) + self["overall_progress"].setValue(self.myindex) + return self.keylist[0] + + + # after each index is finished, getNextIndex is called to get the next index to scan + def getNextIndex(self): + # TODO use other function to scan more randomly + if self.test_type == self.TEST_TYPE_QUICK: + self.myindex += 1 + keys = self.indexlist.keys() + keys.sort(key = lambda a: a[2]) # sort by orbpos + + self["overall_progress"].setValue(self.myindex) + if self.myindex < len(keys): + return keys[self.myindex] + else: + return None + elif self.test_type == self.TEST_TYPE_RANDOM: + self.myindex += 1 + keys = self.randomkeys + + self["overall_progress"].setValue(self.myindex) + if self.myindex < len(keys): + return keys[self.myindex] + else: + return None + elif self.test_type == self.TEST_TYPE_COMPLETE: + self.myindex += 1 + keys = self.keylist + + self["overall_progress"].setValue(self.myindex) + if self.myindex < len(keys): + return keys[self.myindex] + else: + return None + + # after each index is finished and the next index is returned by getNextIndex + # the algorithm checks, if we should continue scanning + def getContinueScanning(self): + if self.test_type == self.TEST_TYPE_QUICK or self.test_type == self.TEST_TYPE_RANDOM: + return (self.myindex < len(self.indexlist.keys())) + elif self.test_type == self.TEST_TYPE_COMPLETE: + return (self.myindex < len(self.keylist)) + + def addResult(self, index, status, failedTune, successfullyTune): + self.results[index] = self.results.get(index, {"failed": [], "successful": [], "status": None, "internalstatus": None}) + self.resultsstatus[status] = self.resultsstatus.get(status, []) + + oldstatus = self.results[index]["internalstatus"] + if oldstatus is None: + self.results[index]["status"] = status + elif oldstatus == "successful": + if status == "failed": + self.results[index]["status"] = "with_errors" + elif status == "successful": + self.results[index]["status"] = oldstatus + elif status == "with_errors": + self.results[index]["status"] = "with_errors" + elif status == "not_tested": + self.results[index]["status"] = oldstatus + elif oldstatus == "failed": + if status == "failed": + self.results[index]["status"] = oldstatus + elif status == "successful": + self.results[index]["status"] = "with_errors" + elif status == "with_errors": + self.results[index]["status"] = "with_errors" + elif status == "not_tested": + self.results[index]["status"] = oldstatus + elif oldstatus == "with_errors": + if status == "failed": + self.results[index]["status"] = oldstatus + elif status == "successful": + self.results[index]["status"] = oldstatus + elif status == "with_errors": + self.results[index]["status"] = oldstatus + elif status == "not_tested": + self.results[index]["status"] = oldstatus + elif oldstatus == "not_tested": + self.results[index]["status"] = status + + if self.results[index]["status"] != "working": + self.results[index]["internalstatus"] = self.results[index]["status"] + self.results[index]["failed"] = failedTune + self.results[index]["failed"] + self.results[index]["successful"] = successfullyTune + self.results[index]["successful"] + + self.resultsstatus[status].append(index) + + def finishedChecking(self): + print "finishedChecking" + TuneTest.finishedChecking(self) + + if not self.results.has_key(self.currentlyTestedIndex): + self.results[self.currentlyTestedIndex] = {"failed": [], "successful": [], "status": None, "internalstatus": None} + + if len(self.failedTune) > 0 and len(self.successfullyTune) > 0: + self.changeProgressListStatus(self.currentlyTestedIndex, "with errors") + self["witherrors_counter"].setText(str(int(self["witherrors_counter"].getText()) + 1)) + self.addResult(self.currentlyTestedIndex, "with_errors", self.failedTune, self.successfullyTune) + elif len(self.failedTune) == 0 and len(self.successfullyTune) == 0: + self.changeProgressListStatus(self.currentlyTestedIndex, "not tested") + self["untestable_counter"].setText(str(int(self["untestable_counter"].getText()) + 1)) + self.addResult(self.currentlyTestedIndex, "untestable", self.failedTune, self.successfullyTune) + elif len(self.failedTune) > 0: + self.changeProgressListStatus(self.currentlyTestedIndex, "failed") + #self["failed_counter"].setText(str(int(self["failed_counter"].getText()) + len(self.failedTune))) + self["failed_counter"].setText(str(int(self["failed_counter"].getText()) + 1)) + self.addResult(self.currentlyTestedIndex, "failed", self.failedTune, self.successfullyTune) + else: + self.changeProgressListStatus(self.currentlyTestedIndex, "successful") + #self["succeeded_counter"].setText(str(int(self["succeeded_counter"].getText()) + len(self.successfullyTune))) + self["succeeded_counter"].setText(str(int(self["succeeded_counter"].getText()) + 1)) + self.addResult(self.currentlyTestedIndex, "successful", self.failedTune, self.successfullyTune) + + + #self["failed_counter"].setText(str(int(self["failed_counter"].getText()) + len(self.failedTune))) + #self["succeeded_counter"].setText(str(int(self["succeeded_counter"].getText()) + len(self.successfullyTune))) + #if len(self.failedTune) == 0 and len(self.successfullyTune) == 0: + #self["untestable_counter"].setText(str(int(self["untestable_counter"].getText()) + 1)) + + self.currentlyTestedIndex = self.getNextIndex() + self.addProgressListItem(self.currentlyTestedIndex) + + if self.fillTransponderList(): + self.run() + else: + self.running = False + self["progress_list"].setIndex(0) + print "results:", self.results + print "resultsstatus:", self.resultsstatus + if self.log: + file = open("/media/hdd/diseqctester.log", "w") + self.setResultType(ResultParser.TYPE_ALL) + file.write(self.getTextualResult()) + file.close() + self.session.open(MessageBox, text=_("The results have been written to %s.") % "/media/hdd/diseqctester.log", type = MessageBox.TYPE_INFO) + + def go(self): + self.running = True + self["failed_counter"].setText("0") + self["succeeded_counter"].setText("0") + self["untestable_counter"].setText("0") + self.currentlyTestedIndex = self.getFirstIndex() + + self.clearProgressList() + self.addProgressListItem(self.currentlyTestedIndex) + + if self.fillTransponderList(): + self.run() + + def keyCancel(self): + self.close() + + def select(self): + print "selectedIndex:", self["progress_list"].getCurrent()[0] + if not self.running: + index = self["progress_list"].getCurrent()[0] + #self.setResultType(ResultParser.TYPE_BYORBPOS) + #self.setResultParameter(index[2]) + self.setResultType(ResultParser.TYPE_BYINDEX) + self.setResultParameter(index) + #self.setResultType(ResultParser.TYPE_ALL) + self.session.open(TextBox, self.getTextualResult()) + + def selectionChanged(self): + print "selection changed" + if len(self.list) > 0 and not self.running: + self["CmdText"].setText(_("Press OK to get further details for %s") % str(self["progress_list"].getCurrent()[1])) + +class DiseqcTesterTestTypeSelection(Screen, ConfigListScreen): + + def __init__(self, session, feid): + Screen.__init__(self, session) + # for the skin: first try MediaPlayerSettings, then Setup, this allows individual skinning + self.skinName = ["DiseqcTesterTestTypeSelection", "Setup" ] + self.setup_title = _("DiSEqC-tester settings") + self.onChangedEntry = [ ] + self.feid = feid + + self.list = [] + ConfigListScreen.__init__(self, self.list, session = self.session, on_change = self.changedEntry) + + self["actions"] = ActionMap(["SetupActions", "MenuActions"], + { + "cancel": self.keyCancel, + "save": self.keyOK, + "ok": self.keyOK, + "menu": self.closeRecursive, + }, -2) + + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("OK")) + + self.createSetup() + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + self.setTitle(self.setup_title) + + def createSetup(self): + self.testtype = ConfigSelection(choices={"quick": _("Quick"), "random": _("Random"), "complete": _("Complete")}, default = "quick") + self.testtypeEntry = getConfigListEntry(_("Test type"), self.testtype) + self.list.append(self.testtypeEntry) + + self.loopsfailed = ConfigSelection(choices={"-1": "Every known", "1": "1", "2": "2", "3": "3", "4": "4", "5": "5", "6": "6", "7": "7", "8": "8"}, default = "3") + self.loopsfailedEntry = getConfigListEntry(_("Stop testing plane after # failed transponders"), self.loopsfailed) + self.list.append(self.loopsfailedEntry) + + self.loopssuccessful = ConfigSelection(choices={"-1": "Every known", "1": "1", "2": "2", "3": "3", "4": "4", "5": "5", "6": "6", "7": "7", "8": "8"}, default = "1") + self.loopssuccessfulEntry = getConfigListEntry(_("Stop testing plane after # successful transponders"), self.loopssuccessful) + self.list.append(self.loopssuccessfulEntry) + + self.log = ConfigYesNo(False) + if harddiskmanager.HDDCount() > 0: + self.logEntry = getConfigListEntry(_("Log results to harddisk"), self.log) + self.list.append(self.logEntry) + + self["config"].list = self.list + self["config"].l.setList(self.list) + + def keyOK(self): + print self.testtype.getValue() + testtype = DiseqcTester.TEST_TYPE_QUICK + if self.testtype.getValue() == "quick": + testtype = DiseqcTester.TEST_TYPE_QUICK + elif self.testtype.getValue() == "random": + testtype = DiseqcTester.TEST_TYPE_RANDOM + elif self.testtype.getValue() == "complete": + testtype = DiseqcTester.TEST_TYPE_COMPLETE + self.session.open(DiseqcTester, feid = self.feid, test_type = testtype, loopsfailed = int(self.loopsfailed.value), loopssuccessful = int(self.loopssuccessful.value), log = self.log.value) + + def keyCancel(self): + self.close() + + # for summary: + def changedEntry(self): + for x in self.onChangedEntry: + x() + + def getCurrentEntry(self): + return self["config"].getCurrent()[0] + + def getCurrentValue(self): + return str(self["config"].getCurrent()[1].getText()) + + def createSummary(self): + from Screens.Setup import SetupSummary + return SetupSummary + +class DiseqcTesterNimSelection(NimSelection): + skin = """ + + + + {"template": [ + MultiContentEntryText(pos = (10, 5), size = (360, 30), flags = RT_HALIGN_LEFT, text = 1), # index 1 is the nim name, + MultiContentEntryText(pos = (50, 30), size = (320, 30), font = 1, flags = RT_HALIGN_LEFT, text = 2), # index 2 is a description of the nim settings, + ], + "fonts": [gFont("Regular", 20), gFont("Regular", 15)], + "itemHeight": 70 + } + + + """ + + def __init__(self, session, args = None): + NimSelection.__init__(self, session) + + def setResultClass(self): + #self.resultclass = DiseqcTester + self.resultclass = DiseqcTesterTestTypeSelection + + def showNim(self, nim): + nimConfig = nimmanager.getNimConfig(nim.slot) + if nim.isCompatible("DVB-S"): + if nimConfig.configMode.value in ("loopthrough", "equal", "satposdepends", "nothing"): + return False + if nimConfig.configMode.value == "simple": + if nimConfig.diseqcMode.value == "positioner": + return True + return True + return False + +def DiseqcTesterMain(session, **kwargs): + session.open(DiseqcTesterNimSelection) + +def autostart(reason, **kwargs): + resourcemanager.addResource("DiseqcTester", DiseqcTesterMain) + +def Plugins(**kwargs): + return [ PluginDescriptor(name="DiSEqC Tester", description=_("Test DiSEqC settings"), where = PluginDescriptor.WHERE_PLUGINMENU, needsRestart = False, fnc=DiseqcTesterMain), + PluginDescriptor(where = PluginDescriptor.WHERE_AUTOSTART, needsRestart = False, fnc = autostart)] diff --git a/lib/python/Plugins/SystemPlugins/FastScan/Makefile.am b/lib/python/Plugins/SystemPlugins/FastScan/Makefile.am new file mode 100644 index 0000000..bc63d3b --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/FastScan/Makefile.am @@ -0,0 +1,6 @@ +installdir = $(pkglibdir)/python/Plugins/SystemPlugins/FastScan + +install_PYTHON = \ + __init__.py \ + plugin.py + diff --git a/lib/python/Plugins/SystemPlugins/FastScan/__init__.py b/lib/python/Plugins/SystemPlugins/FastScan/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/SystemPlugins/FastScan/plugin.py b/lib/python/Plugins/SystemPlugins/FastScan/plugin.py new file mode 100644 index 0000000..3155989 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/FastScan/plugin.py @@ -0,0 +1,345 @@ +# -*- coding: utf-8 -*- +from os import path as os_path, walk as os_walk, unlink as os_unlink + +from Plugins.Plugin import PluginDescriptor + +from Screens.Screen import Screen +from Screens.MessageBox import MessageBox +from Components.config import config, ConfigSelection, ConfigYesNo, getConfigListEntry, ConfigSubsection, ConfigText +from Components.ConfigList import ConfigListScreen +from Components.NimManager import nimmanager +from Components.Label import Label +from Components.Pixmap import Pixmap +from Components.ProgressBar import ProgressBar +from Components.ServiceList import refreshServiceList +from Components.ActionMap import ActionMap + +from enigma import eFastScan, eDVBFrontendParametersSatellite, eTimer + +config.misc.fastscan = ConfigSubsection() +config.misc.fastscan.last_configuration = ConfigText(default = "()") +config.misc.fastscan.auto = ConfigYesNo(default = True) + +class FastScanStatus(Screen): + skin = """ + + + + + """ + + def __init__(self, session, scanTuner=0, transponderParameters=None, scanPid=900, keepNumbers=False, keepSettings=False, providerName='Favorites'): + Screen.__init__(self, session) + self.scanPid = scanPid + self.scanTuner = scanTuner + self.transponderParameters = transponderParameters + self.keepNumbers = keepNumbers + self.keepSettings = keepSettings + self.providerName = providerName + self.isDone = False + + self.onClose.append(self.__onClose) + + self["frontend"] = Pixmap() + self["scan_progress"] = ProgressBar() + self["scan_state"] = Label(_("scan state")) + + if self.session.pipshown: + from Screens.InfoBar import InfoBar + InfoBar.instance and hasattr(InfoBar.instance, "showPiP") and InfoBar.instance.showPiP() + + self.prevservice = self.session.nav.getCurrentlyPlayingServiceReference() + self.session.nav.stopService() + + self["actions"] = ActionMap(["OkCancelActions"], + { + "ok": self.ok, + "cancel": self.cancel + }) + + self.onFirstExecBegin.append(self.doServiceScan) + + def __onClose(self): + self.scan.scanCompleted.get().remove(self.scanCompleted) + self.scan.scanProgress.get().remove(self.scanProgress) + del self.scan + + def doServiceScan(self): + self["scan_state"].setText(_('Scanning %s...') % (self.providerName)) + self["scan_progress"].setValue(0) + self.scan = eFastScan(self.scanPid, self.providerName, self.transponderParameters, self.keepNumbers, self.keepSettings) + self.scan.scanCompleted.get().append(self.scanCompleted) + self.scan.scanProgress.get().append(self.scanProgress) + fstfile = None + fntfile = None + for root, dirs, files in os_walk('/tmp/'): + for f in files: + if f.endswith('.bin'): + if '_FST' in f: + fstfile = os_path.join(root, f) + elif '_FNT' in f: + fntfile = os_path.join(root, f) + if fstfile and fntfile: + self.scan.startFile(fntfile, fstfile) + os_unlink(fstfile) + os_unlink(fntfile) + else: + self.scan.start(self.scanTuner) + + def scanProgress(self, progress): + self["scan_progress"].setValue(progress) + + def scanCompleted(self, result): + self.isDone = True + if result < 0: + self["scan_state"].setText(_('Scanning failed!')) + else: + self["scan_state"].setText(ngettext('List version %d, found %d channel', 'List version %d, found %d channels', result) % (self.scan.getVersion(), result)) + + def restoreService(self): + if self.prevservice: + self.session.nav.playService(self.prevservice) + + def ok(self): + if self.isDone: + self.cancel() + + def cancel(self): + if self.isDone: + refreshServiceList() + self.restoreService() + self.close() + +class FastScanScreen(ConfigListScreen, Screen): + skin = """ + + + + """ + + providers = [ + ('Canal Digitaal', (1, 900, True)), + ('TV Vlaanderen', (1, 910, True)), + ('TéléSAT', (0, 920, True)), + ('HD Austria', (0, 950, False)), + ('Skylink Czech Republic', (1, 30, False)), + ('Skylink Slovak Republic', (1, 31, False)), + ('AustriaSat Magyarország Eutelsat 9E', (2, 951, False)), + ('AustriaSat Magyarország Astra 3', (1, 951, False)), + ('TéléSAT Astra3', (1, 920, True)), + ('HD Austria Astra3', (1, 950, False)), + ('Canal Digitaal Astra 1', (0, 900, True)), + ('TV Vlaanderen Astra 1', (0, 910, True))] + + transponders = ((12515000, 22000000, eDVBFrontendParametersSatellite.FEC_5_6, 192, + eDVBFrontendParametersSatellite.Polarisation_Horizontal, eDVBFrontendParametersSatellite.Inversion_Unknown, + eDVBFrontendParametersSatellite.System_DVB_S, eDVBFrontendParametersSatellite.Modulation_QPSK, + eDVBFrontendParametersSatellite.RollOff_alpha_0_35, eDVBFrontendParametersSatellite.Pilot_Off), + (12070000, 27500000, eDVBFrontendParametersSatellite.FEC_3_4, 235, + eDVBFrontendParametersSatellite.Polarisation_Horizontal, eDVBFrontendParametersSatellite.Inversion_Unknown, + eDVBFrontendParametersSatellite.System_DVB_S, eDVBFrontendParametersSatellite.Modulation_QPSK, + eDVBFrontendParametersSatellite.RollOff_alpha_0_35, eDVBFrontendParametersSatellite.Pilot_Off), + (12074000, 27500000, eDVBFrontendParametersSatellite.FEC_3_4, 90, + eDVBFrontendParametersSatellite.Polarisation_Vertical, eDVBFrontendParametersSatellite.Inversion_Unknown, + eDVBFrontendParametersSatellite.System_DVB_S2, eDVBFrontendParametersSatellite.Modulation_8PSK, + eDVBFrontendParametersSatellite.RollOff_alpha_0_35, eDVBFrontendParametersSatellite.Pilot_On)) + + def __init__(self, session, nimList): + Screen.__init__(self, session) + + self["actions"] = ActionMap(["SetupActions", "MenuActions"], + { + "ok": self.keyGo, + "save": self.keySave, + "cancel": self.keyCancel, + "menu": self.closeRecursive, + }, -2) + + providerList = list(x[0] for x in self.providers) + + lastConfiguration = eval(config.misc.fastscan.last_configuration.value) + if not lastConfiguration or not tuple(x for x in self.providers if x[0] == lastConfiguration[1]): + lastConfiguration = (nimList[0][0], providerList[0], True, True, False) + + self.scan_nims = ConfigSelection(default = lastConfiguration[0], choices = nimList) + self.scan_provider = ConfigSelection(default = lastConfiguration[1], choices = providerList) + self.scan_hd = ConfigYesNo(default = lastConfiguration[2]) + self.scan_keepnumbering = ConfigYesNo(default = lastConfiguration[3]) + self.scan_keepsettings = ConfigYesNo(default = lastConfiguration[4]) + + self.list = [] + self.tunerEntry = getConfigListEntry(_("Tuner"), self.scan_nims) + self.list.append(self.tunerEntry) + + self.scanProvider = getConfigListEntry(_("Provider"), self.scan_provider) + self.list.append(self.scanProvider) + + self.scanHD = getConfigListEntry(_("HD list"), self.scan_hd) + self.list.append(self.scanHD) + + self.list.append(getConfigListEntry(_("Use fastscan channel numbering"), self.scan_keepnumbering)) + self.list.append(getConfigListEntry(_("Use fastscan channel names"), self.scan_keepsettings)) + self.list.append(getConfigListEntry(_("Enable auto fast scan"), config.misc.fastscan.auto)) + + ConfigListScreen.__init__(self, self.list) + self["config"].list = self.list + self["config"].l.setList(self.list) + + self.finished_cb = None + + self["introduction"] = Label(_("Select your provider, and press OK to start the scan")) + + def saveConfiguration(self): + config.misc.fastscan.last_configuration.value = `(self.scan_nims.value, self.scan_provider.value, self.scan_hd.value, self.scan_keepnumbering.value, self.scan_keepsettings.value)` + config.misc.fastscan.save() + + def keySave(self): + self.saveConfiguration() + self.close() + + def keyGo(self): + self.saveConfiguration() + self.startScan() + + def getTransponderParameters(self, number): + transponderParameters = eDVBFrontendParametersSatellite() + transponderParameters.frequency = self.transponders[number][0] + transponderParameters.symbol_rate = self.transponders[number][1] + transponderParameters.fec = self.transponders[number][2] + transponderParameters.orbital_position = self.transponders[number][3] + transponderParameters.polarisation = self.transponders[number][4] + transponderParameters.inversion = self.transponders[number][5] + transponderParameters.system = self.transponders[number][6] + transponderParameters.modulation = self.transponders[number][7] + transponderParameters.rolloff = self.transponders[number][8] + transponderParameters.pilot = self.transponders[number][9] + return transponderParameters + + def startScan(self): + parameters = tuple(x[1] for x in self.providers if x[0] == self.scan_provider.value)[0] + pid = parameters[1] + if self.scan_hd.value and parameters[2]: + pid += 1 + if self.scan_nims.value: + self.session.open(FastScanStatus, scanTuner = int(self.scan_nims.value), + transponderParameters = self.getTransponderParameters(parameters[0]), + scanPid = pid, keepNumbers = self.scan_keepnumbering.value, keepSettings = self.scan_keepsettings.value, + providerName = self.scan_provider.getText()) + + def keyCancel(self): + self.close() + +class FastScanAutoScreen(FastScanScreen): + + def __init__(self, session, lastConfiguration): + print "[AutoFastScan] start" + Screen.__init__(self, session) + self.skinName="Standby" + + self["actions"] = ActionMap( [ "StandbyActions" ], + { + "power": self.Power, + "discrete_on": self.Power + }, -1) + + self.onClose.append(self.__onClose) + + parameters = tuple(x[1] for x in self.providers if x[0] == lastConfiguration[1]) + if parameters: + parameters = parameters[0] + pid = parameters[1] + if lastConfiguration[2] and parameters[2]: + pid += 1 + self.scan = eFastScan(pid, lastConfiguration[1], self.getTransponderParameters(parameters[0]), lastConfiguration[3], lastConfiguration[4]) + self.scan.scanCompleted.get().append(self.scanCompleted) + self.scan.start(int(lastConfiguration[0])) + else: + self.scan = None + self.close(True) + + def __onClose(self): + if self.scan: + self.scan.scanCompleted.get().remove(self.scanCompleted) + del self.scan + + def scanCompleted(self, result): + print "[AutoFastScan] completed result = ", result + refreshServiceList() + self.close(result>0) + + def Power(self): + from Screens.Standby import inStandby + inStandby.Power() + print "[AutoFastScan] aborted due to power button pressed" + self.close(True) + + def createSummary(self): + from Screens.Standby import StandbySummary + return StandbySummary + +def FastScanMain(session, **kwargs): + if session.nav.RecordTimer.isRecording(): + session.open(MessageBox, _("A recording is currently running. Please stop the recording before trying to scan."), MessageBox.TYPE_ERROR) + else: + nimList = [] + # collect all nims which are *not* set to "nothing" + for n in nimmanager.nim_slots: + if not n.isCompatible("DVB-S"): + continue + if n.config_mode == "nothing": + continue + if n.config_mode in ("loopthrough", "satposdepends"): + root_id = nimmanager.sec.getRoot(n.slot_id, int(n.config.connectedTo.value)) + if n.type == nimmanager.nim_slots[root_id].type: # check if connected from a DVB-S to DVB-S2 Nim or vice versa + continue + nimList.append((str(n.slot), n.friendly_full_description)) + if nimList: + session.open(FastScanScreen, nimList) + else: + session.open(MessageBox, _("No suitable sat tuner found!"), MessageBox.TYPE_ERROR) + +Session = None +FastScanAutoStartTimer = eTimer() + +def restartScanAutoStartTimer(reply=False): + if not reply: + print "[AutoFastScan] Scan was not succesfully retry in one hour" + FastScanAutoStartTimer.startLongTimer(3600) + else: + FastScanAutoStartTimer.startLongTimer(86400) + +def FastScanAuto(): + lastConfiguration = eval(config.misc.fastscan.last_configuration.value) + if not lastConfiguration or Session.nav.RecordTimer.isRecording(): + restartScanAutoStartTimer() + else: + Session.openWithCallback(restartScanAutoStartTimer, FastScanAutoScreen, lastConfiguration) + +FastScanAutoStartTimer.callback.append(FastScanAuto) + +def leaveStandby(): + FastScanAutoStartTimer.stop() + +def standbyCountChanged(value): + if config.misc.fastscan.auto.value: + from Screens.Standby import inStandby + inStandby.onClose.append(leaveStandby) + FastScanAutoStartTimer.startLongTimer(90) + +def startSession(session, **kwargs): + global Session + Session = session + config.misc.standbyCounter.addNotifier(standbyCountChanged, initial_call=False) + +def FastScanStart(menuid, **kwargs): + if menuid == "scan": + return [(_("Fast Scan"), FastScanMain, "fastscan", None)] + else: + return [] + +def Plugins(**kwargs): + if (nimmanager.hasNimType("DVB-S")): + return [PluginDescriptor(name=_("Fast Scan"), description="Scan Dutch/Belgian sat provider", where = PluginDescriptor.WHERE_MENU, fnc=FastScanStart), + PluginDescriptor(where=[PluginDescriptor.WHERE_SESSIONSTART], fnc=startSession)] + else: + return [] diff --git a/lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/Makefile.am b/lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/Makefile.am new file mode 100644 index 0000000..78b2843 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/Makefile.am @@ -0,0 +1,8 @@ +installdir = $(pkglibdir)/python/Plugins/SystemPlugins/FrontprocessorUpgrade + +SUBDIRS = meta + +install_PYTHON = \ + __init__.py \ + plugin.py + diff --git a/lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/__init__.py b/lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/meta/Makefile.am new file mode 100644 index 0000000..5ab313a --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/meta/Makefile.am @@ -0,0 +1,3 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_frontprocessorupgrade.xml diff --git a/lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/meta/plugin_frontprocessorupgrade.xml b/lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/meta/plugin_frontprocessorupgrade.xml new file mode 100644 index 0000000..7b6fdca --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/meta/plugin_frontprocessorupgrade.xml @@ -0,0 +1,20 @@ + + + + + + + Dream Multimedia + FrontprocessorUpgrade + enigma2-plugin-systemplugins-frontprocessorupgrade + internal + Internal firmware updater + This system tool is internally used to program the hardware with firmware updates. + + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/plugin.py b/lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/plugin.py new file mode 100644 index 0000000..eec53e3 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/plugin.py @@ -0,0 +1,87 @@ +from Screens.Screen import Screen +from Components.ActionMap import ActionMap +from Components.Label import Label +from Plugins.Plugin import PluginDescriptor + +def getUpgradeVersion(): + import os + try: + r = os.popen("fpupgrade --version").read() + except IOError: + return None + if r[:16] != "FP update tool v": + return None + else: + return int(r[16:17]) + +class FPUpgrade(Screen): + skin = """ + + + + + + + """ + def __init__(self, session): + self.skin = FPUpgrade.skin + Screen.__init__(self, session) + + from Tools.StbHardware import getFPVersion + version = str(getFPVersion() or "N/A") + newversion = str(getUpgradeVersion() or "N/A") + + self["text"] = Label(_("Your frontprocessor firmware must be upgraded.\nPress OK to start upgrade.")) + self["oldversion_label"] = Label(_("Current version:")) + self["newversion_label"] = Label(_("New version:")) + + self["oldversion"] = Label(version) + self["newversion"] = Label(newversion) + + self["actions"] = ActionMap(["OkCancelActions"], + { + "ok": self.ok, + "cancel": self.close, + }) + + def ok(self): + self.close(4) + +class SystemMessage(Screen): + skin = """ + + + + """ + def __init__(self, session, message): + from Components.Sources.StaticText import StaticText + + Screen.__init__(self, session) + + self["text"] = StaticText(message) + + self["actions"] = ActionMap(["OkCancelActions"], + { + "cancel": self.ok, + }) + + def ok(self): + self.close() + +def Plugins(**kwargs): + from Tools.StbHardware import getFPVersion + from Screens.MessageBox import MessageBox + + version = getFPVersion() + newversion = getUpgradeVersion() or 0 + list = [] + if version is not None and version < newversion: + list.append(PluginDescriptor(name="FP Upgrade", where = PluginDescriptor.WHERE_WIZARD, needsRestart = True, fnc=(8, FPUpgrade))) + + try: + msg = open("/proc/stb/message").read() + list.append(PluginDescriptor(name="System Message Check", where = PluginDescriptor.WHERE_WIZARD, needsRestart = True, fnc=(9, SystemMessage, msg))) + except: + pass + + return list diff --git a/lib/python/Plugins/SystemPlugins/HdmiCEC/Makefile.am b/lib/python/Plugins/SystemPlugins/HdmiCEC/Makefile.am new file mode 100644 index 0000000..81e44ce --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/HdmiCEC/Makefile.am @@ -0,0 +1,5 @@ +installdir = $(pkglibdir)/python/Plugins/SystemPlugins/HdmiCEC + +install_PYTHON = \ + __init__.py \ + plugin.py diff --git a/lib/python/Plugins/SystemPlugins/HdmiCEC/__init__.py b/lib/python/Plugins/SystemPlugins/HdmiCEC/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/SystemPlugins/HdmiCEC/plugin.py b/lib/python/Plugins/SystemPlugins/HdmiCEC/plugin.py new file mode 100644 index 0000000..e5996cb --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/HdmiCEC/plugin.py @@ -0,0 +1,118 @@ +from Screens.Screen import Screen +from Components.ConfigList import ConfigListScreen +from Components.config import config, getConfigListEntry +from Components.Sources.StaticText import StaticText + +class HdmiCECSetupScreen(Screen, ConfigListScreen): + skin = """ + + + + + + + + + + + + + """ + + def __init__(self, session): + self.skin = HdmiCECSetupScreen.skin + Screen.__init__(self, session) + + from Components.ActionMap import ActionMap + from Components.Button import Button + + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("OK")) + self["key_yellow"] = StaticText(_("Set fixed")) + self["key_blue"] = StaticText(_("Clear fixed")) + self["current_address"] = StaticText() + self["fixed_address"] = StaticText() + + self["actions"] = ActionMap(["SetupActions", "ColorActions", "MenuActions"], + { + "ok": self.keyGo, + "save": self.keyGo, + "cancel": self.keyCancel, + "green": self.keyGo, + "red": self.keyCancel, + "yellow": self.setFixedAddress, + "blue": self.clearFixedAddress, + "menu": self.closeRecursive, + }, -2) + + self.list = [] + ConfigListScreen.__init__(self, self.list, session = self.session) + + self.list.append(getConfigListEntry(_("Enabled"), config.hdmicec.enabled)) + self.list.append(getConfigListEntry(_("Put TV in standby"), config.hdmicec.control_tv_standby)) + self.list.append(getConfigListEntry(_("Wakeup TV from standby"), config.hdmicec.control_tv_wakeup)) + self.list.append(getConfigListEntry(_("Regard deep standby as standby"), config.hdmicec.handle_deepstandby_events)) + self.list.append(getConfigListEntry(_("Switch TV to correct input"), config.hdmicec.report_active_source)) + self.list.append(getConfigListEntry(_("Use TV remote control"), config.hdmicec.report_active_menu)) + self.list.append(getConfigListEntry(_("Handle standby from TV"), config.hdmicec.handle_tv_standby)) + self.list.append(getConfigListEntry(_("Handle wakeup from TV"), config.hdmicec.handle_tv_wakeup)) + self.list.append(getConfigListEntry(_("Wakeup signal from TV"), config.hdmicec.tv_wakeup_detection)) + self.list.append(getConfigListEntry(_("Forward volume keys"), config.hdmicec.volume_forwarding)) + self.list.append(getConfigListEntry(_("Put receiver in standby"), config.hdmicec.control_receiver_standby)) + self.list.append(getConfigListEntry(_("Wakeup receiver from standby"), config.hdmicec.control_receiver_wakeup)) + self.list.append(getConfigListEntry(_("Minimum send interval"), config.hdmicec.minimum_send_interval)) + self["config"].list = self.list + self["config"].l.setList(self.list) + + self.updateAddress() + + def keyLeft(self): + ConfigListScreen.keyLeft(self) + + def keyRight(self): + ConfigListScreen.keyRight(self) + + def keyGo(self): + for x in self["config"].list: + x[1].save() + self.close() + + def keyCancel(self): + for x in self["config"].list: + x[1].cancel() + self.close() + + def setFixedAddress(self): + import Components.HdmiCec + Components.HdmiCec.hdmi_cec.setFixedPhysicalAddress(Components.HdmiCec.hdmi_cec.getPhysicalAddress()) + self.updateAddress() + + def clearFixedAddress(self): + import Components.HdmiCec + Components.HdmiCec.hdmi_cec.setFixedPhysicalAddress("0.0.0.0") + self.updateAddress() + + def updateAddress(self): + import Components.HdmiCec + self["current_address"].setText(_("Current CEC address") + ": " + Components.HdmiCec.hdmi_cec.getPhysicalAddress()) + if config.hdmicec.fixed_physical_address.value == "0.0.0.0": + fixedaddresslabel = "" + else: + fixedaddresslabel = _("Using fixed address") + ": " + config.hdmicec.fixed_physical_address.value + self["fixed_address"].setText(fixedaddresslabel) + +def main(session, **kwargs): + session.open(HdmiCECSetupScreen) + +def startSetup(menuid): + if menuid == "system": + return [(_("HDMI-CEC setup"), main, "hdmi_cec_setup", 0)] + return [] + +def Plugins(**kwargs): + from os import path + if path.exists("/dev/hdmi_cec") or path.exists("/dev/misc/hdmi_cec0"): + import Components.HdmiCec + from Plugins.Plugin import PluginDescriptor + return [PluginDescriptor(where = PluginDescriptor.WHERE_MENU, fnc = startSetup)] + return [] diff --git a/lib/python/Plugins/SystemPlugins/Hotplug/Makefile.am b/lib/python/Plugins/SystemPlugins/Hotplug/Makefile.am new file mode 100644 index 0000000..ab47ec5 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/Hotplug/Makefile.am @@ -0,0 +1,8 @@ +installdir = $(pkglibdir)/python/Plugins/SystemPlugins/Hotplug + +SUBDIRS = meta + +install_PYTHON = \ + __init__.py \ + plugin.py + diff --git a/lib/python/Plugins/SystemPlugins/Hotplug/__init__.py b/lib/python/Plugins/SystemPlugins/Hotplug/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/SystemPlugins/Hotplug/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/Hotplug/meta/Makefile.am new file mode 100644 index 0000000..cf5608b --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/Hotplug/meta/Makefile.am @@ -0,0 +1,3 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_hotplug.xml diff --git a/lib/python/Plugins/SystemPlugins/Hotplug/meta/plugin_hotplug.xml b/lib/python/Plugins/SystemPlugins/Hotplug/meta/plugin_hotplug.xml new file mode 100644 index 0000000..610dfee --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/Hotplug/meta/plugin_hotplug.xml @@ -0,0 +1,18 @@ + + + + + + Dream Multimedia + Hotplug + enigma2-plugin-systemplugins-hotplug + Hotplugging for removeable devices + The Hotplug plugin notifies your system of newly added or removed devices. + + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/Hotplug/plugin.py b/lib/python/Plugins/SystemPlugins/Hotplug/plugin.py new file mode 100644 index 0000000..97ba058 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/Hotplug/plugin.py @@ -0,0 +1,67 @@ +from Plugins.Plugin import PluginDescriptor +from Components.Harddisk import harddiskmanager +from twisted.internet.protocol import Protocol, Factory + +hotplugNotifier = [] + +def processHotplugData(self, v): + print "hotplug:", v + action = v.get("ACTION") + device = v.get("DEVPATH") + physdevpath = v.get("PHYSDEVPATH") + media_state = v.get("X_E2_MEDIA_STATUS") + + dev = device.split('/')[-1] + + if action == "add": + error, blacklisted, removable, is_cdrom, partitions, medium_found = harddiskmanager.addHotplugPartition(dev, physdevpath) + elif action == "remove": + harddiskmanager.removeHotplugPartition(dev) + elif media_state is not None: + if media_state == '1': + harddiskmanager.removeHotplugPartition(dev) + harddiskmanager.addHotplugPartition(dev, physdevpath) + elif media_state == '0': + harddiskmanager.removeHotplugPartition(dev) + + for callback in hotplugNotifier: + try: + callback(dev, action or media_state) + except AttributeError: + hotplugNotifier.remove(callback) + +class Hotplug(Protocol): + def connectionMade(self): + print "HOTPLUG connection!" + self.received = "" + + def dataReceived(self, data): + print "hotplug:", data + self.received += data + print "complete", self.received + + def connectionLost(self, reason): + print "HOTPLUG connection lost!" + data = self.received.split('\0')[:-1] + v = {} + for x in data: + i = x.find('=') + var, val = x[:i], x[i+1:] + v[var] = val + processHotplugData(self, v) + +def autostart(reason, **kwargs): + if reason == 0: + print "starting hotplug handler" + from twisted.internet import reactor + import os + try: + os.remove("/tmp/hotplug.socket") + except OSError: + pass + factory = Factory() + factory.protocol = Hotplug + reactor.listenUNIX("/tmp/hotplug.socket", factory) + +def Plugins(**kwargs): + return PluginDescriptor(name = "Hotplug", description = "listens to hotplug events", where = PluginDescriptor.WHERE_AUTOSTART, needsRestart = True, fnc = autostart) diff --git a/lib/python/Plugins/SystemPlugins/Makefile.am b/lib/python/Plugins/SystemPlugins/Makefile.am new file mode 100644 index 0000000..888a480 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/Makefile.am @@ -0,0 +1,18 @@ +installdir = $(pkglibdir)/python/Plugins/SystemPlugins + +SUBDIRS = SoftwareManager PositionerSetup Satfinder \ + SkinSelector SatelliteEquipmentControl Videomode VideoTune Hotplug \ + DefaultServicesScanner DiseqcTester CommonInterfaceAssignment \ + CableScan FastScan OSDPositionSetup OSD3DSetup HdmiCEC VideoClippingSetup \ + VideoEnhancement WirelessLan NetworkWizard + +if HAVE_TEMPFANCONTROL +SUBDIRS += TempFanControl +endif + +if DREAMBOX +SUBDIRS += FrontprocessorUpgrade NFIFlash +endif + +install_PYTHON = \ + __init__.py diff --git a/lib/python/Plugins/SystemPlugins/NFIFlash/Makefile.am b/lib/python/Plugins/SystemPlugins/NFIFlash/Makefile.am new file mode 100644 index 0000000..aa2c56a --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/NFIFlash/Makefile.am @@ -0,0 +1,9 @@ +installdir = $(pkglibdir)/python/Plugins/SystemPlugins/NFIFlash + +SUBDIRS = meta + +install_PYTHON = __init__.py plugin.py downloader.py flasher.py + +#install_SCRIPTS = mywritenand dm8000_writenand + +dist_install_DATA = flash.png diff --git a/lib/python/Plugins/SystemPlugins/NFIFlash/__init__.py b/lib/python/Plugins/SystemPlugins/NFIFlash/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py b/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py new file mode 100644 index 0000000..74b65b0 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/NFIFlash/downloader.py @@ -0,0 +1,814 @@ +# -*- coding: utf-8 -*- +from Plugins.SystemPlugins.Hotplug.plugin import hotplugNotifier +from Screens.Screen import Screen +from Screens.MessageBox import MessageBox +from Screens.ChoiceBox import ChoiceBox +from Screens.HelpMenu import HelpableScreen +from Screens.TaskView import JobView +from Components.About import about +from Components.ActionMap import ActionMap +from Components.Sources.StaticText import StaticText +from Components.Sources.List import List +from Components.Label import Label +from Components.FileList import FileList +from Components.MenuList import MenuList +from Components.MultiContent import MultiContentEntryText +from Components.ScrollLabel import ScrollLabel +from Components.Harddisk import harddiskmanager +from Components.Task import Task, Job, job_manager, Condition +from Tools.Directories import fileExists, isMount, resolveFilename, SCOPE_HDD, SCOPE_MEDIA +from Tools.HardwareInfo import HardwareInfo +from Tools.Downloader import downloadWithProgress +from enigma import eConsoleAppContainer, gFont, RT_HALIGN_LEFT, RT_HALIGN_CENTER, RT_VALIGN_CENTER, RT_WRAP, eTimer +from os import system, path, access, stat, remove, W_OK, R_OK +from twisted.web import client +from twisted.internet import reactor, defer +from twisted.python import failure +import re + +class ImageDownloadJob(Job): + def __init__(self, url, filename, device=None, mountpoint="/"): + Job.__init__(self, _("Download .NFI-files for USB-flasher")) + if device: + if isMount(mountpoint): + UmountTask(self, mountpoint) + MountTask(self, device, mountpoint) + ImageDownloadTask(self, url, mountpoint+filename) + ImageDownloadTask(self, url[:-4]+".nfo", mountpoint+filename[:-4]+".nfo") + #if device: + #UmountTask(self, mountpoint) + + def retry(self): + self.tasks[0].args += self.tasks[0].retryargs + Job.retry(self) + +class MountTask(Task): + def __init__(self, job, device, mountpoint): + Task.__init__(self, job, ("mount")) + self.setTool("mount") + options = "rw,sync" + self.mountpoint = mountpoint + self.args += [ device, mountpoint, "-o"+options ] + self.weighting = 1 + + def processOutput(self, data): + print "[MountTask] output:", data + +class UmountTask(Task): + def __init__(self, job, mountpoint): + Task.__init__(self, job, ("mount")) + self.setTool("umount") + self.args += [mountpoint] + self.weighting = 1 + +class DownloaderPostcondition(Condition): + def check(self, task): + return task.returncode == 0 + + def getErrorMessage(self, task): + return self.error_message + +class ImageDownloadTask(Task): + def __init__(self, job, url, path): + Task.__init__(self, job, _("Downloading")) + self.postconditions.append(DownloaderPostcondition()) + self.job = job + self.url = url + self.path = path + self.error_message = "" + self.last_recvbytes = 0 + self.error_message = None + self.download = None + self.aborted = False + + def run(self, callback): + self.callback = callback + self.download = downloadWithProgress(self.url,self.path) + self.download.addProgress(self.download_progress) + self.download.start().addCallback(self.download_finished).addErrback(self.download_failed) + print "[ImageDownloadTask] downloading", self.url, "to", self.path + + def abort(self): + print "[ImageDownloadTask] aborting", self.url + if self.download: + self.download.stop() + self.aborted = True + + def download_progress(self, recvbytes, totalbytes): + #print "[update_progress] recvbytes=%d, totalbytes=%d" % (recvbytes, totalbytes) + if ( recvbytes - self.last_recvbytes ) > 10000: # anti-flicker + self.progress = int(100*(float(recvbytes)/float(totalbytes))) + self.name = _("Downloading") + ' ' + "%d of %d kBytes" % (recvbytes/1024, totalbytes/1024) + self.last_recvbytes = recvbytes + + def download_failed(self, failure_instance=None, error_message=""): + self.error_message = error_message + if error_message == "" and failure_instance is not None: + self.error_message = failure_instance.getErrorMessage() + Task.processFinished(self, 1) + + def download_finished(self, string=""): + if self.aborted: + self.finish(aborted = True) + else: + Task.processFinished(self, 0) + +class StickWizardJob(Job): + def __init__(self, path): + Job.__init__(self, _("USB stick wizard")) + self.path = path + self.device = path + while self.device[-1:] == "/" or self.device[-1:].isdigit(): + self.device = self.device[:-1] + + box = HardwareInfo().get_device_name() + url = "http://www.dreamboxupdate.com/download/opendreambox/dreambox-nfiflasher-%s.tar.bz2" % box + self.downloadfilename = "/tmp/dreambox-nfiflasher-%s.tar.bz2" % box + self.imagefilename = "/tmp/nfiflash_%s.img" % box + #UmountTask(self, device) + PartitionTask(self) + ImageDownloadTask(self, url, self.downloadfilename) + UnpackTask(self) + CopyTask(self) + +class PartitionTaskPostcondition(Condition): + def check(self, task): + return task.returncode == 0 + + def getErrorMessage(self, task): + return { + task.ERROR_BLKRRPART: ("Device or resource busy"), + task.ERROR_UNKNOWN: (task.errormsg) + }[task.error] + +class PartitionTask(Task): + ERROR_UNKNOWN, ERROR_BLKRRPART = range(2) + def __init__(self, job): + Task.__init__(self, job, ("partitioning")) + self.postconditions.append(PartitionTaskPostcondition()) + self.job = job + self.setTool("sfdisk") + self.args += [self.job.device] + self.weighting = 10 + self.initial_input = "0 - 0x6 *\n;\n;\n;\ny" + self.errormsg = "" + + def run(self, callback): + Task.run(self, callback) + + def processOutput(self, data): + print "[PartitionTask] output:", data + if data.startswith("BLKRRPART:"): + self.error = self.ERROR_BLKRRPART + else: + self.error = self.ERROR_UNKNOWN + self.errormsg = data + +class UnpackTask(Task): + def __init__(self, job): + Task.__init__(self, job, ("Unpacking USB flasher image...")) + self.job = job + self.setTool("tar") + self.args += ["-xjvf", self.job.downloadfilename] + self.weighting = 80 + self.end = 80 + self.delayTimer = eTimer() + self.delayTimer.callback.append(self.progress_increment) + + def run(self, callback): + Task.run(self, callback) + self.delayTimer.start(950, False) + + def progress_increment(self): + self.progress += 1 + + def processOutput(self, data): + print "[UnpackTask] output: \'%s\'" % data + self.job.imagefilename = data + + def afterRun(self): + self.delayTimer.callback.remove(self.progress_increment) + +class CopyTask(Task): + def __init__(self, job): + Task.__init__(self, job, ("Copying USB flasher boot image to stick...")) + self.job = job + self.setTool("dd") + self.args += ["if=%s" % self.job.imagefilename, "of=%s1" % self.job.device] + self.weighting = 20 + self.end = 20 + self.delayTimer = eTimer() + self.delayTimer.callback.append(self.progress_increment) + + def run(self, callback): + Task.run(self, callback) + self.delayTimer.start(100, False) + + def progress_increment(self): + self.progress += 1 + + def processOutput(self, data): + print "[CopyTask] output:", data + + def afterRun(self): + self.delayTimer.callback.remove(self.progress_increment) + +class NFOViewer(Screen): + skin = """ + + + """ + + def __init__(self, session, nfo): + Screen.__init__(self, session) + self["changelog"] = ScrollLabel(nfo) + + self["ViewerActions"] = ActionMap(["SetupActions", "ColorActions", "DirectionActions"], + { + "green": self.exit, + "red": self.exit, + "ok": self.exit, + "cancel": self.exit, + "down": self.pageDown, + "up": self.pageUp + }) + def pageUp(self): + self["changelog"].pageUp() + + def pageDown(self): + self["changelog"].pageDown() + + def exit(self): + self.close(False) + +class feedDownloader: + def __init__(self, feed_base, box, OE_vers): + print "[feedDownloader::init] feed_base=%s, box=%s" % (feed_base, box) + self.feed_base = feed_base + self.OE_vers = OE_vers + self.box = box + + def getList(self, callback, errback): + self.urlbase = "%s/%s/%s/images/" % (self.feed_base, self.OE_vers, self.box) + print "[getList]", self.urlbase + self.callback = callback + self.errback = errback + client.getPage(self.urlbase).addCallback(self.feed_finished).addErrback(self.feed_failed) + + def feed_failed(self, failure_instance): + print "[feed_failed]", str(failure_instance) + self.errback(failure_instance.getErrorMessage()) + + def feed_finished(self, feedhtml): + print "[feed_finished]" + fileresultmask = re.compile(".*?)[\'\"]>(?P.*?.nfi)", re.DOTALL) + searchresults = fileresultmask.finditer(feedhtml) + fileresultlist = [] + if searchresults: + for x in searchresults: + url = x.group("url") + if url[0:7] != "http://": + url = self.urlbase + x.group("url") + name = x.group("name") + entry = (name, url) + fileresultlist.append(entry) + self.callback(fileresultlist, self.OE_vers) + +class DeviceBrowser(Screen, HelpableScreen): + skin = """ + + + + + + + + """ + + def __init__(self, session, startdir, message="", showDirectories = True, showFiles = True, showMountpoints = True, matchingPattern = "", useServiceRef = False, inhibitDirs = False, inhibitMounts = False, isTop = False, enableWrapAround = False, additionalExtensions = None): + Screen.__init__(self, session) + + HelpableScreen.__init__(self) + + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText() + self["message"] = StaticText(message) + + self.filelist = FileList(startdir, showDirectories = showDirectories, showFiles = showFiles, showMountpoints = showMountpoints, matchingPattern = matchingPattern, useServiceRef = useServiceRef, inhibitDirs = inhibitDirs, inhibitMounts = inhibitMounts, isTop = isTop, enableWrapAround = enableWrapAround, additionalExtensions = additionalExtensions) + self["filelist"] = self.filelist + + self["FilelistActions"] = ActionMap(["SetupActions", "ColorActions"], + { + "green": self.use, + "red": self.exit, + "ok": self.ok, + "cancel": self.exit + }) + + hotplugNotifier.append(self.hotplugCB) + self.onShown.append(self.updateButton) + self.onClose.append(self.removeHotplug) + + def hotplugCB(self, dev, action): + print "[hotplugCB]", dev, action + self.updateButton() + + def updateButton(self): + + if self["filelist"].getFilename() or self["filelist"].getCurrentDirectory(): + self["key_green"].text = _("Use") + else: + self["key_green"].text = "" + + def removeHotplug(self): + print "[removeHotplug]" + hotplugNotifier.remove(self.hotplugCB) + + def ok(self): + if self.filelist.canDescent(): + if self["filelist"].showMountpoints == True and self["filelist"].showDirectories == False: + self.use() + else: + self.filelist.descent() + + def use(self): + print "[use]", self["filelist"].getCurrentDirectory(), self["filelist"].getFilename() + if self["filelist"].getCurrentDirectory() is not None: + if self.filelist.canDescent() and self["filelist"].getFilename() and len(self["filelist"].getFilename()) > len(self["filelist"].getCurrentDirectory()): + self.filelist.descent() + self.close(self["filelist"].getCurrentDirectory()) + elif self["filelist"].getFilename(): + self.close(self["filelist"].getFilename()) + + def exit(self): + self.close(False) + +(ALLIMAGES, RELEASE, EXPERIMENTAL, STICK_WIZARD, START) = range(5) + +class NFIDownload(Screen): + skin = """ + + + + + + + + + + + + + {"templates": + {"default": (25, [ + MultiContentEntryText(pos = (2, 2), size = (330, 24), flags = RT_HALIGN_LEFT, text = 1), # index 0 is the MenuText, + ], True, "showOnDemand") + }, + "fonts": [gFont("Regular", 22)], + "itemHeight": 25 + } + + + + + {"templates": + {"default": (300, [ + MultiContentEntryText(pos = (2, 2), size = (240, 300), flags = RT_HALIGN_CENTER|RT_VALIGN_CENTER|RT_WRAP, text = 2), # index 2 is the Description, + ], False, "showNever") + }, + "fonts": [gFont("Regular", 22)], + "itemHeight": 300 + } + + + + """ + + def __init__(self, session, destdir=None): + Screen.__init__(self, session) + #self.skin_path = plugin_path + #self.menu = args + + self.box = HardwareInfo().get_device_name() + self.feed_base = "http://www.dreamboxupdate.com/opendreambox" #/1.5/%s/images/" % self.box + self.usbmountpoint = resolveFilename(SCOPE_MEDIA)+"usb/" + + self.menulist = [] + + self["menu"] = List(self.menulist) + self["key_red"] = StaticText(_("Close")) + self["key_green"] = StaticText() + self["key_yellow"] = StaticText() + self["key_blue"] = StaticText() + + self["status"] = StaticText(_("Please wait... Loading list...")) + + self["shortcuts"] = ActionMap(["OkCancelActions", "ColorActions", "ShortcutActions", "DirectionActions"], + { + "ok": self.keyOk, + "green": self.keyOk, + "red": self.keyRed, + "blue": self.keyBlue, + "up": self.keyUp, + "upRepeated": self.keyUp, + "downRepeated": self.keyDown, + "down": self.keyDown, + "cancel": self.close, + }, -1) + self.onShown.append(self.go) + self.feedlists = [[],[],[]] + self.branch = START + self.container = eConsoleAppContainer() + self.container.dataAvail.append(self.tool_avail) + self.taskstring = "" + self.image_idx = 0 + self.nfofilename = "" + self.nfo = "" + self.target_dir = None + + def tool_avail(self, string): + print "[tool_avail]" + string + self.taskstring += string + + def go(self): + self.onShown.remove(self.go) + self.umountCallback = self.getMD5 + self.umount() + + def getMD5(self): + url = "http://www.dreamboxupdate.com/download/opendreambox/dreambox-nfiflasher-%s-md5sums" % self.box + client.getPage(url).addCallback(self.md5sums_finished).addErrback(self.feed_failed) + + def md5sums_finished(self, data): + print "[md5sums_finished]", data + self.stickimage_md5 = data + self.checkUSBStick() + + def keyRed(self): + if self.branch == START: + self.close() + else: + self.branch = START + self["menu"].setList(self.menulist) + #elif self.branch == ALLIMAGES or self.branch == STICK_WIZARD: + + def keyBlue(self): + if self.nfo != "": + self.session.open(NFOViewer, self.nfo) + + def keyOk(self): + print "[keyOk]", self["menu"].getCurrent() + current = self["menu"].getCurrent() + if current: + if self.branch == START: + currentEntry = current[0] + if currentEntry == RELEASE: + self.image_idx = 0 + self.branch = RELEASE + self.askDestination() + elif currentEntry == EXPERIMENTAL: + self.image_idx = 0 + self.branch = EXPERIMENTAL + self.askDestination() + elif currentEntry == ALLIMAGES: + self.branch = ALLIMAGES + self.listImages() + elif currentEntry == STICK_WIZARD: + self.askStartWizard() + elif self.branch == ALLIMAGES: + self.image_idx = self["menu"].getIndex() + self.askDestination() + self.updateButtons() + + def keyUp(self): + self["menu"].selectPrevious() + self.updateButtons() + + def keyDown(self): + self["menu"].selectNext() + self.updateButtons() + + def updateButtons(self): + current = self["menu"].getCurrent() + if current: + if self.branch == START: + self["key_red"].text = _("Close") + currentEntry = current[0] + if currentEntry in (RELEASE, EXPERIMENTAL): + self.nfo_download(currentEntry, 0) + self["key_green"].text = _("Download") + else: + self.nfofilename = "" + self.nfo = "" + self["key_blue"].text = "" + self["key_green"].text = _("continue") + + elif self.branch == ALLIMAGES: + self["key_red"].text = _("Back") + self["key_green"].text = _("Download") + self.nfo_download(ALLIMAGES, self["menu"].getIndex()) + + def listImages(self): + print "[listImages]" + imagelist = [] + mask = re.compile("%s/(?P1\.\d)/%s/images/(?P.*?)-%s_(?P.*?).nfi" % (self.feed_base, self.box, self.box), re.DOTALL) + for name, url in self.feedlists[ALLIMAGES]: + result = mask.match(url) + if result: + if result.group("version").startswith("20"): + version = ( result.group("version")[:4]+'-'+result.group("version")[4:6]+'-'+result.group("version")[6:8] ) + else: + version = result.group("version") + description = "\nOpendreambox %s\n%s image\n%s\n" % (result.group("OE_vers"), result.group("branch"), version) + imagelist.append((url, name, _("Download %s from server" ) % description, None)) + self["menu"].setList(imagelist) + + def getUSBPartitions(self): + allpartitions = [ (r.description, r.mountpoint) for r in harddiskmanager.getMountedPartitions(onlyhotplug = True)] + print "[getUSBPartitions]", allpartitions + usbpartition = [] + for x in allpartitions: + print x, x[1] == '/', x[0].find("USB"), access(x[1], R_OK) + if x[1] != '/' and x[0].find("USB") > -1: # and access(x[1], R_OK) is True: + usbpartition.append(x) + return usbpartition + + def askDestination(self): + usbpartition = self.getUSBPartitions() + if len(usbpartition) == 1: + self.target_dir = usbpartition[0][1] + self.ackDestinationDevice(device_description=usbpartition[0][0]) + else: + self.openDeviceBrowser() + + def openDeviceBrowser(self): + self.session.openWithCallback(self.DeviceBrowserClosed, DeviceBrowser, None, showDirectories=True, showMountpoints=True, inhibitMounts=["/autofs/sr0/"]) + + def DeviceBrowserClosed(self, path): + print "[DeviceBrowserClosed]", str(path) + self.target_dir = path + if path: + self.ackDestinationDevice() + else: + self.keyRed() + + def ackDestinationDevice(self, device_description=None): + if device_description == None: + dev = self.target_dir + else: + dev = device_description + message = _("Do you want to download the image to %s ?") % (dev) + choices = [(_("Yes"), self.ackedDestination), (_("List of storage devices"),self.openDeviceBrowser), (_("Cancel"),self.keyRed)] + self.session.openWithCallback(self.ackDestination_query, ChoiceBox, title=message, list=choices) + + def ackDestination_query(self, choice): + print "[ackDestination_query]", choice + if isinstance(choice, tuple): + choice[1]() + else: + self.keyRed() + + def ackedDestination(self): + print "[ackedDestination]", self.branch, self.target_dir + self.container.setCWD(resolveFilename(SCOPE_MEDIA)+"usb/") + if self.target_dir[:8] == "/autofs/": + self.target_dir = "/dev/" + self.target_dir[8:-1] + + if self.branch == STICK_WIZARD: + job = StickWizardJob(self.target_dir) + job.afterEvent = "close" + job_manager.AddJob(job) + job_manager.failed_jobs = [] + self.session.openWithCallback(self.StickWizardCB, JobView, job, afterEventChangeable = False) + + elif self.branch != STICK_WIZARD: + url = self.feedlists[self.branch][self.image_idx][1] + filename = self.feedlists[self.branch][self.image_idx][0] + print "[getImage] start downloading %s to %s" % (url, filename) + if self.target_dir.startswith("/dev/"): + job = ImageDownloadJob(url, filename, self.target_dir, self.usbmountpoint) + else: + job = ImageDownloadJob(url, filename, None, self.target_dir) + job.afterEvent = "close" + job_manager.AddJob(job) + job_manager.failed_jobs = [] + self.session.openWithCallback(self.ImageDownloadCB, JobView, job, afterEventChangeable = False) + + def StickWizardCB(self, ret=None): + print "[StickWizardCB]", ret +# print job_manager.active_jobs, job_manager.failed_jobs, job_manager.job_classes, job_manager.in_background, job_manager.active_job + if len(job_manager.failed_jobs) == 0: + self.session.open(MessageBox, _("The USB stick was prepared to be bootable.\nNow you can download an NFI image file!"), type = MessageBox.TYPE_INFO) + if len(self.feedlists[ALLIMAGES]) == 0: + self.getFeed() + else: + self.setMenu() + else: + self.umountCallback = self.checkUSBStick + self.umount() + + def ImageDownloadCB(self, ret): + print "[ImageDownloadCB]", ret +# print job_manager.active_jobs, job_manager.failed_jobs, job_manager.job_classes, job_manager.in_background, job_manager.active_job + if len(job_manager.failed_jobs) == 0: + self.session.openWithCallback(self.askBackupCB, MessageBox, _("The wizard can backup your current settings. Do you want to do a backup now?"), MessageBox.TYPE_YESNO) + else: + self.umountCallback = self.keyRed + self.umount() + + def askBackupCB(self, ret): + if ret: + from Plugins.SystemPlugins.SoftwareManager.BackupRestore import BackupScreen + + class USBBackupScreen(BackupScreen): + def __init__(self, session, usbmountpoint): + BackupScreen.__init__(self, session, runBackup = True) + self.backuppath = usbmountpoint + self.fullbackupfilename = self.backuppath + "/" + self.backupfile + + self.session.openWithCallback(self.showHint, USBBackupScreen, self.usbmountpoint) + else: + self.showHint() + + def showHint(self, ret=None): + self.session.open(MessageBox, _("To update your receiver firmware, please follow these steps:\n1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n3) Wait for bootup and follow instructions of the wizard."), type = MessageBox.TYPE_INFO) + self.umountCallback = self.keyRed + self.umount() + + def getFeed(self): + self.feedDownloader15 = feedDownloader(self.feed_base, self.box, OE_vers="1.5") + self.feedDownloader16 = feedDownloader(self.feed_base, self.box, OE_vers="1.6") + self.feedlists = [[],[],[]] + self.feedDownloader15.getList(self.gotFeed, self.feed_failed) + self.feedDownloader16.getList(self.gotFeed, self.feed_failed) + + def feed_failed(self, message=""): + self["status"].text = _("Could not connect to receiver .NFI image feed server:") + "\n" + str(message) + "\n" + _("Please check your network settings!") + + def gotFeed(self, feedlist, OE_vers): + print "[gotFeed]", OE_vers + releaselist = [] + experimentallist = [] + + for name, url in feedlist: + if name.find("release") > -1: + releaselist.append((name, url)) + if name.find("experimental") > -1: + experimentallist.append((name, url)) + self.feedlists[ALLIMAGES].append((name, url)) + + if OE_vers == "1.6": + self.feedlists[RELEASE] = releaselist + self.feedlists[RELEASE] + self.feedlists[EXPERIMENTAL] = experimentallist + self.feedlists[RELEASE] + elif OE_vers == "1.5": + self.feedlists[RELEASE] = self.feedlists[RELEASE] + releaselist + self.feedlists[EXPERIMENTAL] = self.feedlists[EXPERIMENTAL] + experimentallist + + self.setMenu() + + def checkUSBStick(self): + self.target_dir = None + allpartitions = [ (r.description, r.mountpoint) for r in harddiskmanager.getMountedPartitions(onlyhotplug = True)] + print "[checkUSBStick] found partitions:", allpartitions + usbpartition = [] + for x in allpartitions: + print x, x[1] == '/', x[0].find("USB"), access(x[1], R_OK) + if x[1] != '/' and x[0].find("USB") > -1: # and access(x[1], R_OK) is True: + usbpartition.append(x) + + print usbpartition + if len(usbpartition) == 1: + self.target_dir = usbpartition[0][1] + self.md5_passback = self.getFeed + self.md5_failback = self.askStartWizard + self.md5verify(self.stickimage_md5, self.target_dir) + elif usbpartition == []: + print "[NFIFlash] needs to create usb flasher stick first!" + self.askStartWizard() + else: + self.askStartWizard() + + def askStartWizard(self): + self.branch = STICK_WIZARD + message = _("""This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection. +First, a USB stick needs to be prepared so that it becomes bootable. +In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick. +If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!""") + self.session.openWithCallback(self.wizardDeviceBrowserClosed, DeviceBrowser, None, message, showDirectories=True, showMountpoints=True, inhibitMounts=["/","/autofs/sr0/","/autofs/sda1/","/media/hdd/","/media/net/",self.usbmountpoint,"/media/dvd/"]) + + def wizardDeviceBrowserClosed(self, path): + print "[wizardDeviceBrowserClosed]", path + self.target_dir = path + if path: + self.md5_passback = self.getFeed + self.md5_failback = self.wizardQuery + self.md5verify(self.stickimage_md5, self.target_dir) + else: + self.close() + + def wizardQuery(self): + print "[wizardQuery]" + description = self.target_dir + for name, dev in self.getUSBPartitions(): + if dev == self.target_dir: + description = name + message = _("You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased.") + "\n" + message += _("The following device was found:\n\n%s\n\nDo you want to write the USB flasher to this stick?") % description + choices = [(_("Yes"), self.ackedDestination), (_("List of storage devices"),self.askStartWizard), (_("Cancel"),self.close)] + self.session.openWithCallback(self.ackDestination_query, ChoiceBox, title=message, list=choices) + + def setMenu(self): + self.menulist = [] + try: + latest_release = "Release %s (Opendreambox 1.5)" % self.feedlists[RELEASE][0][0][-9:-4] + self.menulist.append((RELEASE, _("Get latest release image"), _("Download %s from server" ) % latest_release, None)) + except IndexError: + pass + + try: + dat = self.feedlists[EXPERIMENTAL][0][0][-12:-4] + latest_experimental = "Experimental %s-%s-%s (Opendreambox 1.6)" % (dat[:4], dat[4:6], dat[6:]) + self.menulist.append((EXPERIMENTAL, _("Get latest experimental image"), _("Download %s from server") % latest_experimental, None)) + except IndexError: + pass + + self.menulist.append((ALLIMAGES, _("Select an image to be downloaded"), _("Select desired image from feed list" ), None)) + self.menulist.append((STICK_WIZARD, _("USB stick wizard"), _("Prepare another USB stick for image flashing" ), None)) + self["menu"].setList(self.menulist) + self["status"].text = _("Currently installed image") + ": %s" % (about.getImageVersionString()) + self.branch = START + self.updateButtons() + + def nfo_download(self, branch, idx): + nfourl = (self.feedlists[branch][idx][1])[:-4]+".nfo" + self.nfofilename = (self.feedlists[branch][idx][0])[:-4]+".nfo" + print "[check_for_NFO]", nfourl + client.getPage(nfourl).addCallback(self.nfo_finished).addErrback(self.nfo_failed) + + def nfo_failed(self, failure_instance): + print "[nfo_failed] " + str(failure_instance) + self["key_blue"].text = "" + self.nfofilename = "" + self.nfo = "" + + def nfo_finished(self,nfodata=""): + print "[nfo_finished] " + str(nfodata) + self["key_blue"].text = _("Changelog") + self.nfo = nfodata + + def md5verify(self, md5, path): + cmd = "md5sum -c -s" + print "[verify_md5]", md5, path, cmd + self.container.setCWD(path) + self.container.appClosed.append(self.md5finished) + self.container.execute(cmd) + self.container.write(md5) + self.container.dataSent.append(self.md5ready) + + def md5ready(self, retval): + self.container.sendEOF() + + def md5finished(self, retval): + print "[md5finished]", str(retval) + self.container.appClosed.remove(self.md5finished) + self.container.dataSent.remove(self.md5ready) + if retval==0: + print "check passed! calling", repr(self.md5_passback) + self.md5_passback() + else: + print "check failed! calling", repr(self.md5_failback) + self.md5_failback() + + def umount(self): + cmd = "umount " + self.usbmountpoint + print "[umount]", cmd + self.container.setCWD('/') + self.container.appClosed.append(self.umountFinished) + self.container.execute(cmd) + + def umountFinished(self, retval): + print "[umountFinished]", str(retval) + self.container.appClosed.remove(self.umountFinished) + self.umountCallback() + +def main(session, **kwargs): + session.open(NFIDownload,resolveFilename(SCOPE_HDD)) + +def filescan_open(list, session, **kwargs): + dev = "/dev/" + (list[0].path).rsplit('/',1)[0][7:] + print "mounting device " + dev + " to /media/usb..." + usbmountpoint = resolveFilename(SCOPE_MEDIA)+"usb/" + system("mount %s %s -o rw,sync" % (dev, usbmountpoint)) + session.open(NFIDownload,usbmountpoint) + +def filescan(**kwargs): + from Components.Scanner import Scanner, ScanPath + return \ + Scanner(mimetypes = ["application/x-dream-image"], + paths_to_scan = + [ + ScanPath(path = "", with_subdirs = False), + ], + name = "NFI", + description = (_("Download .NFI-files for USB-flasher")+"..."), + openfnc = filescan_open, ) diff --git a/lib/python/Plugins/SystemPlugins/NFIFlash/flash.png b/lib/python/Plugins/SystemPlugins/NFIFlash/flash.png new file mode 100644 index 0000000000000000000000000000000000000000..83c2d324367fb766b109c47c227573805a0d8322 GIT binary patch literal 3004 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 literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py b/lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py new file mode 100644 index 0000000..8fcb79e --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/NFIFlash/flasher.py @@ -0,0 +1,229 @@ +from Screens.Screen import Screen +from Screens.MessageBox import MessageBox +from Screens.ChoiceBox import ChoiceBox +from Screens.Standby import TryQuitMainloop +from Screens.Console import Console +from Components.ActionMap import ActionMap +from Components.Sources.StaticText import StaticText +from Components.Sources.Progress import Progress +from Components.Sources.Boolean import Boolean +from Components.Label import Label +from Components.FileList import FileList +from Components.Task import Task, Job, job_manager, Condition +from Screens.TaskView import JobView +from Tools.Directories import fileExists +from Tools.HardwareInfo import HardwareInfo +from os import system +from enigma import eConsoleAppContainer, quitMainloop, eEnv +from Components.About import about + +class md5Postcondition(Condition): + def check(self, task): + print "md5Postcondition::check", task.returncode + return task.returncode == 0 + + def getErrorMessage(self, task): + if task.returncode == 1: + return _("The md5sum validation failed, the file may be corrupted!") + return "md5 error" + +class md5verify(Task): + def __init__(self, job, path, md5): + Task.__init__(self, job, "md5sum") + self.postconditions.append(md5Postcondition()) + self.weighting = 5 + self.cwd = path + self.setTool("md5sum") + self.args += ["-c", "-s"] + self.initial_input = md5 + + def writeInput(self, input): + self.container.dataSent.append(self.md5ready) + print "[writeInput]", input + Task.writeInput(self, input) + + def md5ready(self, retval): + self.container.sendEOF() + + def processOutput(self, data): + print "[md5sum]", + +class writeNAND(Task): + def __init__(self, job, param, box): + Task.__init__(self,job, ("Writing image file to NAND Flash")) + self.setTool(eEnv.resolve("${libdir}/enigma2/python/Plugins/SystemPlugins/NFIFlash/writenfi-mipsel-2.6.18-r1")) + if box == "dm7025": + self.end = 256 + elif box[:5] == "dm800": + self.end = 512 + self.args += param + self.weighting = 95 + + def processOutput(self, data): + print "[writeNand] " + data + if data == "." or data.endswith(" ."): + self.progress += 1 + elif data.find("*** done!") > 0: + print "data.found done" + self.setProgress(self.end) + else: + self.output_line = data + +class NFIFlash(Screen): + skin = """ + + + + + + + + + + + + + + """ + + def __init__(self, session, destdir=None): + Screen.__init__(self, session) + + self.box = HardwareInfo().get_device_name() + self.usbmountpoint = "/mnt/usb/" + + self["key_red"] = StaticText() + self["key_green"] = StaticText() + self["key_yellow"] = StaticText() + self["key_blue"] = StaticText() + self.filelist = FileList(self.usbmountpoint, matchingPattern = "^.*\.(nfi|NFI)", showDirectories = False, showMountpoints = False) + self["filelist"] = self.filelist + self["infolabel"] = StaticText() + + self["status"] = StaticText(_("Please select an NFI file and press green key to flash!") + '\n' + _("currently installed image: %s") % (about.getImageVersionString())) + self.job = None + + self["shortcuts"] = ActionMap(["OkCancelActions", "ColorActions", "ShortcutActions", "DirectionActions"], + { + "ok": self.keyOk, + "green": self.keyOk, + "up": self.keyUp, + "upRepeated": self.keyUp, + "downRepeated": self.keyDown, + "down": self.keyDown, + "left": self.keyLeft, + "yellow": self.reboot, + "right": self.keyRight + }, -1) + self.md5sum = "" + self.onShown.append(self.autostart) + + def autostart(self): + self.onShown.remove(self.autostart) + self.check_for_NFO() + print "[[layoutFinished]]", len(self["filelist"].getFileList()) + if len(self["filelist"].getFileList()) == 1: + print "==1" + self.keyOk() + + def keyUp(self): + self["filelist"].up() + self.check_for_NFO() + + def keyDown(self): + self["filelist"].down() + self.check_for_NFO() + + def keyRight(self): + self["filelist"].pageDown() + self.check_for_NFO() + + def keyLeft(self): + self["filelist"].pageUp() + self.check_for_NFO() + + def keyOk(self): + if self.job is None or self.job.status is not self.job.IN_PROGRESS: + if self["filelist"].canDescent(): # isDir + self["filelist"].descent() + self.check_for_NFO() + elif self["filelist"].getFilename(): + self.session.openWithCallback(self.queryCB, MessageBox, _("Shall the USB stick wizard proceed and program the image file %s into flash memory?" % self.nfifile.rsplit('/',1)[-1]), MessageBox.TYPE_YESNO) + + def check_for_NFO(self, nfifile=None): + print "check_for_NFO", self["filelist"].getFilename(), self["filelist"].getCurrentDirectory() + self["infolabel"].text = "" + self["key_green"].text = "" + + if nfifile is None: + if self["filelist"].getFilename() is None: + return + if self["filelist"].getCurrentDirectory() is not None: + self.nfifile = self["filelist"].getCurrentDirectory()+self["filelist"].getFilename() + else: + self.nfifile = nfifile + + if self.nfifile.upper().endswith(".NFI"): + self["key_green"].text = _("Flash") + nfofilename = self.nfifile[0:-3]+"nfo" + print nfofilename, fileExists(nfofilename) + if fileExists(nfofilename): + nfocontent = open(nfofilename, "r").read() + print "nfocontent:", nfocontent + self["infolabel"].text = nfocontent + pos = nfocontent.find("MD5:") + if pos > 0: + self.md5sum = nfocontent[pos+5:pos+5+32] + " " + self.nfifile + else: + self.md5sum = "" + else: + self["infolabel"].text = _("No details for this image file") + (self["filelist"].getFilename() or "") + self.md5sum = "" + + def queryCB(self, answer): + if answer == True: + self.createJob() + + def createJob(self): + self.job = Job("Image flashing job") + self.job.afterEvent = "close" + cwd = self["filelist"].getCurrentDirectory() + md5verify(self.job, cwd, self.md5sum) + writeNAND(self.job, [self.nfifile], self.box) + self["key_blue"].text = "" + self["key_yellow"].text = "" + self["key_green"].text = "" + job_manager.AddJob(self.job) + self.session.openWithCallback(self.flashed, JobView, self.job, cancelable = False, backgroundable = False, afterEventChangeable = False) + + def flashed(self, bg): + print "[flashed]" + if self.job.status == self.job.FINISHED: + self["status"].text = _("NFI image flashing completed. Press Yellow to Reboot!") + filename = self.usbmountpoint+'enigma2settingsbackup.tar.gz' + if fileExists(filename): + import os.path, time + date = time.ctime(os.path.getmtime(filename)) + self.session.openWithCallback(self.askRestoreCB, MessageBox, _("The wizard found a configuration backup. Do you want to restore your old settings from %s?") % date, MessageBox.TYPE_YESNO) + else: + self.unlockRebootButton() + else: + self["status"].text = _("Flashing failed") + + def askRestoreCB(self, ret): + if ret: + from Plugins.SystemPlugins.SoftwareManager.BackupRestore import getBackupFilename + restorecmd = ["tar -xzvf " + self.usbmountpoint + getBackupFilename() + " -C /"] + self.session.openWithCallback(self.unlockRebootButton, Console, title = _("Restore is running..."), cmdlist = restorecmd, closeOnSuccess = True) + else: + self.unlockRebootButton() + + def unlockRebootButton(self, retval = None): + if self.job.status == self.job.FINISHED: + self["key_yellow"].text = _("Reboot") + + def reboot(self, ret=None): + if self.job.status == self.job.FINISHED: + self["status"].text = ("rebooting...") + from os import system + system(eEnv.resolve("${libdir}/enigma2/python/Plugins/SystemPlugins/NFIFlash/kill_e2_reboot.sh")) diff --git a/lib/python/Plugins/SystemPlugins/NFIFlash/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/NFIFlash/meta/Makefile.am new file mode 100644 index 0000000..598c071 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/NFIFlash/meta/Makefile.am @@ -0,0 +1,5 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_nfiflash.xml + +EXTRA_DIST = nfiflash_de.jpg nfiflash_en.jpg diff --git a/lib/python/Plugins/SystemPlugins/NFIFlash/meta/nfiflash_de.jpg b/lib/python/Plugins/SystemPlugins/NFIFlash/meta/nfiflash_de.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fec93f4bfc94dcc3753b88d54248ac9ca60ac438 GIT binary patch literal 168093 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

  • tFeaRx(KS~cVmb-Nh=2BS`=R4_Wo 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

    Ako5ES-4Po;xsGmi3(j1K`byXW%<`(A^u!IfT9 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

    *In*?h_cuR(6VjzGYAS|R2@VQ< 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 ME_96W>3ZA#FO#`>2mk;8 literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/SystemPlugins/NFIFlash/meta/plugin_nfiflash.xml b/lib/python/Plugins/SystemPlugins/NFIFlash/meta/plugin_nfiflash.xml new file mode 100644 index 0000000..f93f5c5 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/NFIFlash/meta/plugin_nfiflash.xml @@ -0,0 +1,21 @@ + + + + + + + Dream Multimedia + NFIFlash + enigma2-plugin-systemplugins-nfiflash + Restore your Dreambox with a USB stick + With the NFIFlash plugin it is possible to prepare a USB stick with an Dreambox image.\n + It is then possible to flash your Dreambox with the image on that stick. + + + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/NFIFlash/plugin.py b/lib/python/Plugins/SystemPlugins/NFIFlash/plugin.py new file mode 100644 index 0000000..2171bb5 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/NFIFlash/plugin.py @@ -0,0 +1,26 @@ +from Plugins.Plugin import PluginDescriptor +from Tools.HardwareInfo import HardwareInfo +from Tools.Directories import fileExists +from downloader import NFIDownload, filescan +from flasher import NFIFlash + +def NFIFlasherMain(session, tmp = None, **kwargs): + session.open(NFIDownload, "/home/root" ) + +def NFICallFnc(tmp = None): + return NFIFlasherMain + +def Plugins(**kwargs): + # currently only available for DM8000 + if HardwareInfo().get_device_name() != "dm8000": + return [PluginDescriptor()] + #return [PluginDescriptor(where = PluginDescriptor.WHERE_WIZARD, fnc = (9,NFIFlash))] + # it's not possible to rewrite the flash memory with a system currently booted from it + return [PluginDescriptor(name=_("NFI image flashing"), + description=_("Download .NFI-files for USB-flasher"), + icon = "flash.png", + where = PluginDescriptor.WHERE_SOFTWAREMANAGER, + needsRestart = False, + fnc={"SoftwareSupported": NFICallFnc, "menuEntryName": lambda x: _("NFI image flashing"), + "menuEntryDescription": lambda x: _("Download .NFI-files for USB-flasher")}), + PluginDescriptor(name="nfi", where = PluginDescriptor.WHERE_FILESCAN, needsRestart = False, fnc = filescan)] diff --git a/lib/python/Plugins/SystemPlugins/NetworkWizard/Makefile.am b/lib/python/Plugins/SystemPlugins/NetworkWizard/Makefile.am new file mode 100644 index 0000000..b40f8ab --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/NetworkWizard/Makefile.am @@ -0,0 +1,11 @@ +installdir = $(pkglibdir)/python/Plugins/SystemPlugins/NetworkWizard + +SUBDIRS = meta + +install_PYTHON = \ + __init__.py \ + NetworkWizard.py \ + plugin.py + +dist_install_DATA = \ + networkwizard.xml \ No newline at end of file diff --git a/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py b/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py new file mode 100644 index 0000000..9d2a75d --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/NetworkWizard/NetworkWizard.py @@ -0,0 +1,378 @@ +from Screens.Wizard import wizardManager, WizardSummary +from Screens.WizardLanguage import WizardLanguage +from Screens.Rc import Rc +from Screens.MessageBox import MessageBox +from Components.Pixmap import Pixmap, MovingPixmap, MultiPixmap +from Components.Sources.Boolean import Boolean +from Components.Network import iNetwork +from Tools.Directories import resolveFilename, SCOPE_PLUGINS, SCOPE_SKIN_IMAGE +from enigma import eTimer +from os import system + +class NetworkWizard(WizardLanguage, Rc): + skin = """ + + + + + + + + + + + + + + + + + + + """ + def __init__(self, session, interface = None): + self.xmlfile = resolveFilename(SCOPE_PLUGINS, "SystemPlugins/NetworkWizard/networkwizard.xml") + WizardLanguage.__init__(self, session, showSteps = False, showStepSlider = False) + Rc.__init__(self) + self.session = session + self["wizard"] = Pixmap() + self["HelpWindow"] = Pixmap() + self["HelpWindow"].hide() + self["VKeyIcon"] = Boolean(False) + + self.InstalledInterfaceCount = None + self.Adapterlist = None + self.InterfaceState = None + self.isInterfaceUp = None + self.WlanPluginInstalled = False + self.ap = None + self.w = None + if interface is not None: + self.selectedInterface = interface + else: + self.selectedInterface = None + self.NextStep = None + self.resetRef = None + self.checkRef = None + self.AdapterRef = None + self.APList = None + self.newAPlist = None + self.oldlist = None + + self.originalInterfaceState = {} + self.originalInterfaceStateChanged = False + self.Text = None + self.rescanTimer = eTimer() + self.rescanTimer.callback.append(self.rescanTimerFired) + self.getInstalledInterfaceCount() + self.isWlanPluginInstalled() + + def exitWizardQuestion(self, ret = False): + if (ret): + self.markDone() + self.close() + + def markDone(self): + self.stopScan() + del self.rescanTimer + self.checkOldInterfaceState() + pass + + def back(self): + self.stopScan() + self.ap = None + WizardLanguage.back(self) + + def stopScan(self): + self.rescanTimer.stop() + if self.w is not None: + from Plugins.SystemPlugins.WirelessLan.Wlan import iWlan + iWlan.stopGetNetworkList() + self.w = None + + def getInstalledInterfaceCount(self): + self.originalInterfaceState = {} + self.Adapterlist = iNetwork.getAdapterList() + self.InstalledInterfaceCount = len(self.Adapterlist) + if self.Adapterlist is not None: + if self.InstalledInterfaceCount == 1 and self.selectedInterface is None: + self.selectedInterface = self.Adapterlist[0] + for interface in iNetwork.getAdapterList(): + self.originalInterfaceState[interface] = {} + self.originalInterfaceState[interface]["up"] = iNetwork.getAdapterAttribute(interface, 'up') + + def selectInterface(self): + self.InterfaceState = None + if self.selectedInterface is None: + if self.InstalledInterfaceCount <= 1: + if not iNetwork.isWirelessInterface(self.selectedInterface): + self.NextStep = 'nwconfig' + else: + self.NextStep = 'asknetworktype' + self.checkInterface(self.selectedInterface) + else: + self.NextStep = 'selectinterface' + self.currStep = self.getStepWithID(self.NextStep) + self.afterAsyncCode() + else: + if not iNetwork.isWirelessInterface(self.selectedInterface): + self.NextStep = 'nwconfig' + else: + self.NextStep = 'asknetworktype' + self.checkInterface(self.selectedInterface) + + def checkOldInterfaceState(self): + # disable up interface if it was originally down and config is unchanged. + if self.originalInterfaceStateChanged is False: + for interface in self.originalInterfaceState.keys(): + if interface == self.selectedInterface: + if self.originalInterfaceState[interface]["up"] is False: + if iNetwork.checkforInterface(interface) is True: + system("ifconfig " + interface + " down") + + def listInterfaces(self): + self.checkOldInterfaceState() + list = [(iNetwork.getFriendlyAdapterName(x),x) for x in iNetwork.getAdapterList()] + list.append((_("Exit network wizard"), "end")) + return list + + def InterfaceSelectionMade(self, index): + self.selectedInterface = index + self.InterfaceSelect(index) + + def InterfaceSelect(self, index): + if index == 'end': + self.NextStep = 'end' + elif index == 'eth0': + self.NextStep = 'nwconfig' + else: + self.NextStep = 'asknetworktype' + + def InterfaceSelectionMoved(self): + self.InterfaceSelect(self.selection) + + def checkInterface(self,iface): + self.stopScan() + if self.Adapterlist is None: + self.Adapterlist = iNetwork.getAdapterList() + if self.NextStep is not 'end': + if len(self.Adapterlist) == 0: + #Reset Network to defaults if network broken + iNetwork.resetNetworkConfig('lan', self.resetNetworkConfigCB) + self.resetRef = self.session.openWithCallback(self.resetNetworkConfigFinished, MessageBox, _("Please wait while we prepare your network interfaces..."), type = MessageBox.TYPE_INFO, enable_input = False) + if iface in iNetwork.getInstalledAdapters(): + if iface in iNetwork.configuredNetworkAdapters and len(iNetwork.configuredNetworkAdapters) == 1: + if iNetwork.getAdapterAttribute(iface, 'up') is True: + self.isInterfaceUp = True + else: + self.isInterfaceUp = False + self.currStep = self.getStepWithID(self.NextStep) + self.afterAsyncCode() + else: + self.isInterfaceUp = iNetwork.checkforInterface(iface) + self.currStep = self.getStepWithID(self.NextStep) + self.afterAsyncCode() + else: + self.resetNetworkConfigFinished(False) + + def resetNetworkConfigFinished(self,data): + if data is True: + self.currStep = self.getStepWithID(self.NextStep) + self.afterAsyncCode() + else: + self.currStep = self.getStepWithID(self.NextStep) + self.afterAsyncCode() + + def resetNetworkConfigCB(self,callback,iface): + if callback is not None: + if callback is True: + iNetwork.getInterfaces(self.getInterfacesFinished) + + def getInterfacesFinished(self, data): + if data is True: + if iNetwork.getAdapterAttribute(self.selectedInterface, 'up') is True: + self.isInterfaceUp = True + else: + self.isInterfaceUp = False + self.resetRef.close(True) + else: + print "we should never come here!" + + def AdapterSetupEnd(self, iface): + self.originalInterfaceStateChanged = True + if iNetwork.getAdapterAttribute(iface, "dhcp") is True: + iNetwork.checkNetworkState(self.AdapterSetupEndFinished) + self.AdapterRef = self.session.openWithCallback(self.AdapterSetupEndCB, MessageBox, _("Please wait while we test your network..."), type = MessageBox.TYPE_INFO, enable_input = False) + else: + self.currStep = self.getStepWithID("confdns") + self.afterAsyncCode() + + def AdapterSetupEndCB(self,data): + if data is True: + if iNetwork.isWirelessInterface(self.selectedInterface): + if self.WlanPluginInstalled == True: + from Plugins.SystemPlugins.WirelessLan.Wlan import iStatus + iStatus.getDataForInterface(self.selectedInterface,self.checkWlanStateCB) + else: + self.currStep = self.getStepWithID("checklanstatusend") + self.afterAsyncCode() + else: + self.currStep = self.getStepWithID("checklanstatusend") + self.afterAsyncCode() + + def AdapterSetupEndFinished(self,data): + if data <= 2: + self.InterfaceState = True + else: + self.InterfaceState = False + self.AdapterRef.close(True) + + def checkWlanStateCB(self,data,status): + if data is not None: + if data is True: + if status is not None: + text1 = _("Your receiver is now ready to be used.\n\nYour internet connection is working.\n\n") + text2 = _('Accesspoint:') + "\t" + str(status[self.selectedInterface]["accesspoint"]) + "\n" + text3 = _('SSID:') + "\t" + str(status[self.selectedInterface]["essid"]) + "\n" + text4 = _('Link quality:') + "\t" + str(status[self.selectedInterface]["quality"])+ "\n" + text5 = _('Signal strength:') + "\t" + str(status[self.selectedInterface]["signal"]) + "\n" + text6 = _('Bitrate:') + "\t" + str(status[self.selectedInterface]["bitrate"]) + "\n" + text7 = _('Encryption:') + " " + str(status[self.selectedInterface]["encryption"]) + "\n" + text8 = _("Please press OK to continue.") + infotext = text1 + text2 + text3 + text4 + text5 + text7 +"\n" + text8 + self.currStep = self.getStepWithID("checkWlanstatusend") + self.Text = infotext + if str(status[self.selectedInterface]["accesspoint"]) == "Not-Associated": + self.InterfaceState = False + self.afterAsyncCode() + + def checkNetwork(self): + iNetwork.checkNetworkState(self.checkNetworkStateCB) + self.checkRef = self.session.openWithCallback(self.checkNetworkCB, MessageBox, _("Please wait while we test your network..."), type = MessageBox.TYPE_INFO, enable_input = False) + + def checkNetworkCB(self,data): + if data is True: + if iNetwork.isWirelessInterface(self.selectedInterface): + if self.WlanPluginInstalled == True: + from Plugins.SystemPlugins.WirelessLan.Wlan import iStatus + iStatus.getDataForInterface(self.selectedInterface,self.checkWlanStateCB) + else: + self.currStep = self.getStepWithID("checklanstatusend") + self.afterAsyncCode() + else: + self.currStep = self.getStepWithID("checklanstatusend") + self.afterAsyncCode() + + def checkNetworkStateCB(self,data): + if data <= 2: + self.InterfaceState = True + else: + self.InterfaceState = False + self.checkRef.close(True) + + def rescanTimerFired(self): + self.rescanTimer.stop() + self.updateAPList() + + def updateAPList(self): + self.oldlist = self.APList + self.newAPlist = [] + newList = [] + newListIndex = None + currentListEntry = None + newList = self.listAccessPoints() + + for oldentry in self.oldlist: + if oldentry not in newList: + newList.append(oldentry) + + for newentry in newList: + self.newAPlist.append(newentry) + + if len(self.newAPlist): + if (self.wizard[self.currStep].has_key("dynamiclist")): + currentListEntry = self["list"].getCurrent() + if currentListEntry is not None: + idx = 0 + for entry in self.newAPlist: + if entry == currentListEntry: + newListIndex = idx + idx +=1 + self.wizard[self.currStep]["evaluatedlist"] = self.newAPlist + self['list'].setList(self.newAPlist) + if newListIndex is not None: + self["list"].setIndex(newListIndex) + self["list"].updateList(self.newAPlist) + + def listAccessPoints(self): + self.APList = [] + if self.WlanPluginInstalled is False: + self.APList.append( ( _("No networks found"), None ) ) + else: + from Plugins.SystemPlugins.WirelessLan.Wlan import iWlan + iWlan.setInterface(self.selectedInterface) + self.w = iWlan.getInterface() + aps = iWlan.getNetworkList() + if aps is not None: + print "[NetworkWizard.py] got Accespoints!" + tmplist = [] + complist = [] + for ap in aps: + a = aps[ap] + if a['active']: + tmplist.append( (a['bssid'], a['essid']) ) + complist.append( (a['bssid'], a['essid']) ) + + for entry in tmplist: + if entry[1] == "": + for compentry in complist: + if compentry[0] == entry[0]: + complist.remove(compentry) + for entry in complist: + self.APList.append( (entry[1], entry[1]) ) + if not len(aps): + self.APList.append( ( _("No networks found"), None ) ) + + self.rescanTimer.start(4000) + return self.APList + + + def AccessPointsSelectionMoved(self): + self.ap = self.selection + self.NextStep = 'wlanconfig' + + def checkWlanSelection(self): + self.stopScan() + self.currStep = self.getStepWithID(self.NextStep) + + def isWlanPluginInstalled(self): + try: + from Plugins.SystemPlugins.WirelessLan.Wlan import iWlan + except ImportError: + self.WlanPluginInstalled = False + else: + self.WlanPluginInstalled = True + + def listChoices(self): + self.stopScan() + list = [] + if self.WlanPluginInstalled == True: + list.append((_("Configure your wireless LAN again"), "scanwlan")) + list.append((_("Configure your internal LAN"), "nwconfig")) + list.append((_("Exit network wizard"), "end")) + return list + + def ChoicesSelectionMade(self, index): + self.ChoicesSelect(index) + + def ChoicesSelect(self, index): + if index == 'end': + self.NextStep = 'end' + elif index == 'nwconfig': + self.selectedInterface = "eth0" + self.NextStep = 'nwconfig' + else: + self.NextStep = 'asknetworktype' + + def ChoicesSelectionMoved(self): + pass diff --git a/lib/python/Plugins/SystemPlugins/NetworkWizard/__init__.py b/lib/python/Plugins/SystemPlugins/NetworkWizard/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/SystemPlugins/NetworkWizard/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/NetworkWizard/meta/Makefile.am new file mode 100644 index 0000000..db985bf --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/NetworkWizard/meta/Makefile.am @@ -0,0 +1,5 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_networkwizard.xml + +EXTRA_DIST = networkwizard_en.jpg networkwizard_de.jpg diff --git a/lib/python/Plugins/SystemPlugins/NetworkWizard/meta/networkwizard_de.jpg b/lib/python/Plugins/SystemPlugins/NetworkWizard/meta/networkwizard_de.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3999a413fb6ac9c3a894d67e81d95aad36d3612a GIT binary patch literal 153354 zcmeFYXH-*d8zzbs1(6O4LS6+#K)^x~2*g(e1cXTML_|swF(M!lL-I1`gf84xfQ@~@4e>}J+lAm{?7;Yo#ERry6=GK zzP%nk2>3e>{nxem{?FIG{Ra*nI?R9MsDL1NL!$`a{(T1y>_2$m(4m6|!Mnr3|MMLb zJtTJe;@^kGZM^u;1WH_b`Xc{`!nN8iN!t;Y;^jLJBaRA4NuM|=qjXmJoQkTJwvO%< zJ$>WrCZ=XL%q{Hf9UPsUU0l8I`uO_!BT+%YA&)|_kHaFPqGMv8#l@$ly-d%@eDyl( zZ9!pCaY<=ed0l-&V^j0Hmey`cPj6rUe?AP1Qpd(=6O&WZ4Cef|?+c4d%PZ`kzc#lx zzkxs7|Jt>W@4$cCvj1w>|IIE@(60Rl4<0zk|F2#9_J@Mk0nvkpPG3AM_O}hcSD^Tr zOHYqTTzipU+jUgovMo#U&chJ_DMc-Y68m4%{)=V*eTGH+4_Wr#4Ew+An&vxpU?2GK z4v6x>_;`OWy^ZJ9z+QL9pL?_a|G)k}um@@!V@~uQU&I5h!RQ{}9RzSTcHLy>B8n*9 zj$k5YF8AnHcWuOZLfC!H3=ccwQ6uOKs!3jCR7;bu_YL+kMJ74r?W+7m)*fHayE}Dk z`FtknnxTIG^}owMsCRs)6%9V?yVX5Lxz?Uz)a)3Hw5GQ?oHngGU7j|5YHVpN5Mw&t z&_Xp9bQ3>zeW^&Z!Zr!@g50@0(5NaM6`EV_SX`L#;R_e@mRv{#)JnLbnhd8k2kEsO zn2)AB7Y>x@_G>1zR=*dP{lJ#>WciY%Ua;@%;?6=375cxxO26kxhf8k7wy+~nts0Fw zE#+=i#A5Y^O2_qu1=u|daCUJ`cSoCx+->PR3P8FLEIUlH?jB#g=GqqPS8tYZ3SJBw z#6a{^$L#SP<6QtK40_MTv*xUlbp+EuIEE*^#}_3&SLvz<6AV$)+qCrGTG|W{pO@V2 zYcZHyzJT=fIeuoaR;y;*-=gsbGvBr7O1XP|;<-Dew-;4wa|+fbntE)%x3x3Byv?l) zldLhvw1A;5Pr!V~i0cGYvj?7FByoC{8v;PWdvaa%KSp{;DTIJhCgVD7 zTRtI>IV_3Ne^d~_+`-5ptQeE`Na~HUh8B8TPg00@WkT1vJw89eAzs%WAIqLT9c#%Z z_9di1cs&r-E%-A;T}pS7!Y#J+)9)<8Gb1?wKCk?~IyUQ3JzE&w1cabTs97zd36NX; z)pNy2mdzivsi$pebp{L73qWF?_>_t;p>>5z)WlUir(BufJ-#5toQehQpRJ(*OP$TJ z6;j)OtE{bw{U_+iwaV`@?hRg!g?oHq*)|1F^Iv@$m?l@;QE6x$&XO(o^ZRYbWhSBv zkw`rB0|)bAConX7hNFJxo&P+?hD8S$DFMR0Mh9EinlV4_VoB}B3;=3ZgtT4Nm+L8I zcU2%i1bLl*wk$`v^jse!!}|znsHR{JEEB~$&+vv}r`iv&X54l(Il4WXGF&D0@91{n zirsgmb-a&k-xkJ>(BVD4_2|#8yJ@#F*AI;ulOGJ%RE(gq9m=#F8qLd}H<~uvf8FJ@ zmVV81s;zij?PI$+8X~P&ZDp9V`P**k`(12+>A@10TH7&2HGuUT~jCD*0hBL;oH6 z87=Hl+IX$rwpq=75$OqCP5-%yeX=s~JAA#-2=}%lwi{MI+`q^7O#a}Q(K$eH4$}vb z#a$YOIuv829e@M|BnGd=R(`5AEQ@yPl%oa{_)+p2BMp{x;VEo|;}{OXP!qaLnb41N z?bzLjhZ>;Ke&@Gmv*m^n!fSy$p6xbOV(R=*3 zB`tk^a9D7bwvfbA3cOXVBrT)un%g2%qEj?9G&tzL^W{rjV>RBz%@;>E3E75GHspbX zz8ai182Tchh$@^(E3FEui=GpLP+UKi%)1dqU9GemX;1m1?^Tve_|iyK>OcN^H#%Q~ zUh<9bFMR5$?6B0S$~_K@vy@%yS&RL`k$Zd+cp)Ixrk*!K-Gs!Gg}E-QU#^|h-_Lko z{fdCL8zUQ4mA{`8Q4#!+j|It!0%SBiPiwc(u#oxvNKk*CjoZLQvew(yhAfW{oDe-F zBlDl8?sdfTEegsFK58!JocoKJHVB(pJcZm;m0PtcFFgjkD?FV{>FJbXkusCp|7Oe# zPwnwBd#l>=0R=fNMKe13dleCzux-dTo= z4!)z2c=Wf%*jA;)J-(UsqLquTokWcHlduAt*1R7pXi4ca<|XkiFs=Dym5(*!OAm$x zsb%rZQ#fzcI!c#)o=0@)n75t>uuanTw9dIW8IR7o6_04Iw$9CQkP&dW=$zoST%Igh273-e!=mWIyc3?lX|AA8 zP%$B322I=klrx>nDf5x*iw|~;SeXsKIgHh~4{NNt(}8GgtWpn%l5(_7NDKTa6iN{3 zJdKTI>ORA4kx)FIrHkgqeXRf)=2lfD4(1&^a^4kB6zfH!A(=?D&!Mkhq#Wx}X|ANL zpC3XMQ{}}v+hQKLSsR!d2qCYr)HvR*7Ck(P%`V7R=y$YfRSL`Dwx1!J4BzjvX>D%V`Q!OOY!=C37d{e)1a;ojY zVzfG#9YJm)0J;g*K{9j?7pnt@iKo6&poMxvkN` z`NbBWn=|{)tIMnkc{mg~CWT6C`kk}PD5#_T%-64RY|KgDY+1ScC+gD2dx6^i?IzOJ zMfwePHk=o!3lVKruG;z5m;sIHNgjFtk3iSLcQ2AT-oVd=W88m?v_z zswv>t^@HXM!MbVM72bo1#9ySftA#B5ndgc48%gnI!Vv!iq=uI(C---`;v>CJ4ZNr< zyI1w%dZhy5TN}f#AC^QupxM{~pCk5Z#uNA(HN}<@lb#A=MpC%H*%->|hKPTR&pUmc z=1_(@;s()SG;yUKtWM}30+EZVAHHquE7#o5y$1}j+9+fZ=xNq4bFpV57B3FezO9bo zsQ`%gorY|uD4YRXlTzVLLZaW`u8u%q707K&VuJ$}XUTdx_X&rNB#z`~ZckZedxX8D+s z{wtqX;iy6%3HGHPM(v4v=To1Ad!C5vb0TX!s@-Ma4EFd^!7A-=0bweWH$vF{0cI!r zJ-(?5CT4As<;{VEY2*{vakmnu96nF@hsOuLXYfAfon>QU8g}Jy#@d|PVlHO)^#TwY zs1vQk%RO9Qyo?a%k8Dgr+-%E3%dVg8=1lKc(awJ(ns@MINnmoAF8{Q{FfBvw+~j?B zY|VThAZ^20X>5`Vm$dC2I9hX0p!>f{jG@J zjej5_?RG(h?pOtPAcVQccMw~($hrHu!J`uqTksht%Jzi_0%uMXM9}E2W5K#?E!wZ< zIFqeCz7+&$8gP#Y+!qGUL%2{PPfC|-AkLE{_R`nLfGZud#}}=z$9DwIJsXDLs=@(V z&?)F_tKBx9L@Za4%*rHmckJo2jx0|c0#xns)u{pc?2_J%1c;ax`~VisRPF({ zH_wo@ND(@OQ)f}HvP+V1mdspn#$t?=tZWEt@o57o$gZ=7l@Zaj?VG)SS>~V&KJPSj z?T!>f{V(Tjx-6bbY#{cK4#8Wr|i~cv-@iPyConiK;;2h?XBr7um(vU_H z6Cpdh{MKlbKLJ*`QD?tmpS`K7gddyep>}sWS891cTVq^o(Z@GTPu#OdQ>35T{=KqrQnugPwk?Q6|@3npK=Bw~$b({wb{tB^3$*Lqdbox+uGzLSQ}E z<69Hn(FQ`9@c0JEQ&0WfOrtZvYCqzbR+8;JoRyixbqkr>m?qtsz^aN{}{EMneukWl3-*{0I&* zj(fr+88a}^IFk?^a$rz3fMM*;l60ds4N(j8y`Jat!tE?a)iK4{Jz3m3>)}e2df+sQ z+*q>iP=&K)(fidgoY%W=8dH++LL+`GdX&)x6!~PQ0tzD0uEv-t4cU2;dw@a^(cqfv zCTJN-EzrR=Bf>Q;$Jg)q#)50wUj0ysQVYz*i*rVMhK2;=h{veeV$)Dw1%s+I@BKpL)3*VE_CjF`l+hg_^pHm*RjQa1Mql;U=%D6Y# z!)uG6Ta<$l=nr;rj__;?5@V#n3gt?Pb7EP)Be}+Nf9Ti8aY`lF$a%tA^PDAxkuW2E zs4p@c%^*GG4V#TMw5VemT(V|&EZ;S@H#FsG!gq^cXv{R6a*@zgyUf@~>@*lD*{#qd z`|fN^8{DFX%(SV)=gnr$lkXbHSx}gAyY>Bn%y5VUJP{`HqtQ^-9-VaQmmT|HR%Hfx zTBpfL2SglxHWFV><`G6YeaNeHFTs#*!??FErk*bsqQ?^!B?7wZ})|=eGT~Z`t^MasD{-S=Hq} z>X=eb=X~^)JIMZ(NsEiODh3K{WBi~2u5l)X9i*e-9*w@E4ITa7I}|{vkb8zoo@;=x z+{R+4JyHlr?AmXZ_$@#;fR&|rh{7)8!m98?ohQbPv{qn;&#*^@4@2UdW-qk?PN7Ba zKu(JA5Hs8up4oe7(=FE_Ws$&@*yss6NN1UKz$q|Myucn`mraPlAR>h)KW=mo_Xs=> zuj%+99ilW;dp?_lfj6?vB9v-sfwDpzp_2tRl{;`CC6qBlKZ?7V_T^)9(CP?Q`NpUQ z6voY2g~)a40OlH+ zhEuNn;DzUuho4`f%zit3IYn<6RVDeThJ+W#lSM}>qWc*0(K+&Gito;imHoWpd!p=) zcx90_qWw+b+Z@U7YfJCONVF9%Q$oQ7zo9C+p@VrQ$|Hp(j^`b(aTe8$0vv-Djby;w)%J;Oh1? zVvkRZ*i3(~8UK?vPG{Y!PRJ7hG}%(~bHWtj%o9!;%dvxPMxhHs;eo7#_uE;x2Q;m9 zweGBm$IXUDWuw{&kE*D_SNmA7r#p)=sGUzZrs zX=5jBn|||r%fq#^2Sn2Kx*XEa`=05*T?=g1Hn*+JxB9e^CI9Pto!+mTKa!CGpDW(Hz^NNs z=pA)U%euC)Mnj7qGjM9dy3sUxaQ7PT=iR3Iy1M!%a}ABEA61IUf@pt*ROG^oGjVcL zVD)E7t^t9(9Se3kEh)5O$&n}y^$f_*wr!ob-8=@}SNQeZ*zGaIjS-A!aFU&g&UR8q z^9*Ue!9Ef)pivab`^{n5~!RmfJ)4aF79x!7TFEhMyReA`6(f-~&wVV|!t=nuWX!-a@vB=d0 zHSF13POog;t~3KON#Ufh(~INErf|@AqYb%eTi&M~%(KP-X|uLbM}vjh)-i3e;1?8s zUz1FDftmWCIT$WKHcL0XIN6XLU^dk3LM9K#kXh!$gZ?r`vBf}r@9Wyn_tZDPs!?X; zYx>d(mYW#uNtZ2kg^&T>J}AXhgC}ktD(Y`cFLp=#Re^8^;2e?N9Ik5ZAyyHsfz79j znvPV>IB;-nlu3Ocn^Wey^3Z&NtltZ~PR@IEs#!4BE$9wvyw|+?iG5k6;+?HX^BoiE zlggh8Tkso#j338!upjYf>PLPumZ_BfwNA$cwuZ$DvhhFDf#~$!Uj$-x6k+Zq;lvg~ z1YQDU_j$_JeYT~UHnaI7f)QfaR?CX5ysu&-S}9^v+$%2vzCEp?uNSjk1PV2%p*Rz^ zbeCOq)(r1RV>K#mMHJiY%AR<}rJ}SPSorK>z|ntyc1n|+g`sVKKO#VP-@4I2Q_O#+ zPgFta&Eaohb%gM3<*t+{p4@dS2xB8^y}jn(L-PVx&rjK50q;7K7ao{Zzs~uUGhrFR z6z0eJ!s@@S%FBIDz4$ah=|}EuC%KH7k4de^_-fPo_^OFLf&F3=3y5ifD8;uq4}g2x z1`iuHWRhQ2m^5{)I+$1VeIb?nxHb0!QZT?PT(wZ|M2)Ww87w31IPou2-8}PBJVwz# zHUJjG2ak*?j4O?4WA=k#uSAV~2&gW5W`9C*5&nXtvDMWZ8E-2Y&Dp+f#Rb1NiH5 zM}2WRi`dJPNxyerJ!v9Zn<$39r=c{aRWZ5sSL;GPv&}0IjV|#-id-MysC!kd)VoiA zK|S}+N`A2$VZv@>w3k3;f?3)cW%9_gT%E* z@WI3_P8k!gS)lcXWD{EL`k5#*-fXl*T~y}Fw-e95zqnhUkT6iUYVPuGj>XC>f2q=E z6NZr@qCMzfD*4S7mD#!axr)^A0k7&mtBO!wo6d}b)o#fNJ^J!~;>TaeDE_bq4yn|$2dxbW(?WR$!I<+UI^pjtg^-&hw+}hlF zRG(bxRg9E>6Th&P5`#F-y;`MReE_htLGBY)?~5*O>>5UFrZ>C&6W;UB&P0)M5;jv9 z?Q2^hf8S4F^TK#bgT<$yw=1Pf9h3I)*6S`!bfQ}n7T>t>kNr31+alA(F!!c_uh+B< zvol%;9;Bf@ETxkN+j_|?IDOiZ;@XXL^^0xLl<5whY&;r5JPyRnn2!d0d+eJWaLJB+ zSo0tXUOIgw!-Yn-${S+lDK~bs^e`c>+Ra&QOuxwB1egex%$P{#s=Zl}CQmiV(Bq&A zOd;VLon!b<6T~S_SVmdN^pyMT?hEGEJo#!1zunL@iX|yXb!x2|I5^n}bZBH9C zBrU)-u4+^&QS(Gq@9231_-OpYZ+3uxwi`&#va9Qzd*EDJ<$=_H=bCE4{bc*F$8G_? zp5xzZ`iY&s$*whmd>_|fz5D1X*S73n*JGFP`|;yD1*VTIvsN7Lew%K1n@0YVF@l)z zTTcMp+l~c$y1p>3ffMy9SzhQC(!I%6rs$nvjXh#d(La=5?)5iT(S!E2@PQq z1Xscmw~ZU5f=qU^i@zf21N2^EjOSl~$$Up>m(gDhV`uckzt8x$Cg+zVX<<_+-JF#P z3$|o#duUj6>kKMzx+PUM+;lg16{rqQ$j%^BtL9TS&qv1poc$}^;!22{aD0(4^1ROJ zzb)*4yezkQsjO`)^0MIM*K2_fttjcmJXw84CEommL)Eeq#Xc_FSb1IrnKySY~1$8(d0 zKzt{$In?p_Ri${E&7!%AeL#!p!52eLE7I>%A~@uuT5(Vt=9E_LykKd5XT}e^;t#?R z>xXi`sQY=5o{#?hBoJBp#e}IgXgRs&yE~gJHjKG5v7Iu=Mo4;HaoTsv%Hme{(Wtj{EtPAYv_@^sLPoM|PvBYD=(>6frRRc6)~*;F;=vr5*QS@`Ww(%CLjx_zs+9969KyA5vj;X4-jXX1Z_I{T%-otnpx0Y+^OeU|!asVuHnD zeL)s2r}^Fp_}<)+rS5x!COh+PeyoQuHC$F2CmNtGb~$(i8Q3M=zm+2RzzEr0Q}K$e zuGgtN>~-qC4#|aDrmv-@edYGNz9i~%hyL@I73CHJ+7kZfcFr40?Odskd(hI0(z_2I z1j9V|fNJdXPxfh-Q&SY#whpIdIyVCZR14BL$Z`ea8{#hVqpS_Au0I^lli zZz(69Tm<9ZO{CJ-l5Jx=*peP=*yD?(^J}4BkrZNW*ay);&^ErzwTzuN%~7?t7`X2( zuM+>6y(4CH3k|4)9o=QDfhk+L4|8(GZpvKunN|g@cQ!?%BNNNE>0R@q zOW~>OPK)*~mQcH%lMJNNN85^Zh*dAUSfQK zRZ6YgqDugMzpSYtkD+Rem*nQQk%n9alNwsES2ec8jfyi13VBjG%-EG59lk|v6hd2b zdYQ)W}lB!X-1Q!u|ya4SgN}$>C(r#uRygYE#S0Y8x153zAiIqw97_b z%@HSDy#EM$uuA%er!sr<6xe<-?FY)Z*MT4=Lc|R_>^j2L-A4c~vie`X!sSB!n8j^{v;0YuYEH^tnSan^`jNY*N<}~4X zl5L&KB+2}o{V}jg2^DGNWRt#BK4qn%zJpG@q_{ ztQ4;4IJ&XWP&-kX>T>>W2Cr|&+Fxv8(R>td#x`3Yuj0CrCpHl=+tNu!m(a6HEKWM( z$R>Or*kF4q@P?>bNp{Ax^Jf}6)153v)J-_i_kP>C&l)D$c%sCL+A%7ru$nzSFU=`C zCgN$k9dl#)!2IYW2u+H$2Qp?b{6Hv!_d5JANtm*6pejG0(!&LP{5i3D$7*w~pqKkPWdF8D+3VLiDIq0Z*<|aWLiBnV!rmL|LfP zjsaJH7h9DfCb!?&=8pkCvFw?a zaC+FQl;~Jirc>S|g_jxC-bENM^8Ui2=lR!uRRa?}dHk%DXZW*RSvEN?1TOEsJj-8~ z>B6Q{FcR3P{!r$Ua1<$Yg{Q%)ex|+Agnc`(LDAXH>nL1loh6m5$msh&Y6^Rc$Ko7z zt8hZFq~JY184!0Jj)n5GrOiKwXdYgjMkH+>_M<^B5+3_h5N=~rtlC;x^!Q4I$wY94 zmD7!;`ti!sO=CsmC#4$DKX38J23Ls=nPcwhe)@qg%le`!t|b;0I2Oy@DLJOuTqM1I zdMg>FncjCR&41fdtmL`Fr&3Css%=T;d811Ywm;Tixm`YwWR$}X7(<|$f=NS+h@Lwj z@Auee@-Z{Dv_;80$Ub(2YRm|*yDonLFl25#BOVK}^e}TCEv74 zCtX7CEkhE7+C>=)?Jd+zgAU(g)2p6m$2O|7e)ojxd$o?vJyAEBv3f@g`1Wf(5}O%C zf!>Ml-4Q^ze6z9Pa9?nm68&s1x^rj0q3jclPK=eN=Dfp3=v}}3g{gON#r{9@uje!1 z`m+<$mg?I>@G?D%4t?!K-tgLJg=dURhx2sNJsp|C@7IVc6Hz!P46}ki_cYpa(D%kh zz{%!kvsZ6EG&wtd$yj4z(#2u?#YpD&V_&bA2=WNSwrWJyL<|Y17jWtNY`_pz;VV2T zKhY~Hu#ZfUctXFA_x1C=a!_^My-6Yk>^xm~4x^9xU*X`aq?8n#Boiix=#uLR%gcV) zG z{wGyaly1eeblD1!882~rl)QLtq(2&J41Hh~bO5=X(GjFh>KNvbHZ#aeB?jU1yl?_h zlIsR8__$MUS;mK$(&#p1Fq~~M5!|-NCwx=m{(4_Ffxyf?`yTNs;Ok!7Rzk2888s9;?1h{EUyO+^yF`jNgir*zt1mhm8 zO1|(7rfasu1%2^c-%9rBcuf>Y*Xcv zRsYmTx@)=n*cf7(2Qm&3Hway)K=S!NP-FI)RgUGD5+WKeLS#NFQ7`G)m`1y*D-4r)xc(&gJc>HGCpD0wN1&f=GDPWRiu*Iw0Ke^C0 zo<+Mi8{)v8NYUt2z}EG5Z9gh_99rm!%0LL?i#(4jgVyb3 zUJU6NcwPaQ6u6S<*r9K)xacPQaW2l(PGf^|2_O zvBW5=x?46z86X{@7TAWQ+E@JS3$R@%(4$&BsNmq!-hN;bqV-8}4Kj(__~yW~#QOms zCrz4b^HvV*SF?Piq0riKgQ2FeT-^Lc>YM`;kalWvGqkg5yfJ<5O-D=ei7B6JHAjj6 z>Hg^IK|0=NtZ=zb()W>a;I?!(M3kr4TS6C-OQX2@^u!sKTVcFIu@hodw6-jD+X0iO zStkO<*H3z3bst~<>TB?>o#F(hzmOrvpL={xG_96zsgEolz4}^N`?q>;534^ADrM`| z_UB>5sIFq~w3z8*p7^2jWR)SqLO+$!3a6tM>8cIIS!tfM_Q03(b{X1d z${F*I(&v4PAQZ=ww~IU-ejRJ|{JA?0HL*yyyD$0x#NW#Y?7w{-*Z<`hge*B~>KSN) zT#?Z!DT+qVn8oX=R_H^Wq`pt;iOOdCW$nA@{FNK|*DKS5(fcpeeykpwQkfKEt6dzI$HVxF(lh(lWLpz@+~J2S+X=v6*%{{?u1hjc7CqE4-(@k&k|0+ zD{_^AOx8{}QL@32t=zpKj-7v>caBAj?NkIp)U~pIPjC;A(9;ev+4FLe_d<3Bwi@Bb zzpUt}AxTKxvw_D8e1APA5j@BTj1H#&Dj?j{#ye`jD7)v&_N?8}2BYlN`Q6t%_5buH zW+C1Wiy;u$!9H05seo293IuS_xiIrW#v*h6s^i)N=y_OdEw-uO+QV>5aQK)x z^Q-g?tFX~7?EsbP`&tE|Lgg!APpsJqgWhNTdSQ`}6Zk_w%y2hC7B9}V1PquRW+sj7 zvqT0l9)A#Ics4}nz@zOSyzYKP{Rqyj2q}|JOL!b!gnH!IS|~N_9T-}Im@zgO@_X;FnWFS6iEPA!;`_ly`A`%X|3FT&>l%nzq{sk^6i_LhvSwDe z$aNWhkA`hMe_8cF5vqG<9mEn^v1A{&BSB!pB7lF=viY+nG&gJ7Y*l)kX0rS zH1+9L7cEb1=FWx93qqxK4)f;?!zKqB6{l~-oE!-ZK>B{k%i7~pcg-GF#@MZ}|@8M729E%2m(KXXmW>$ zzeJozH?5#Df;%&SJ%3*<9JU_I47@gQAy z=%hif(K!~!M>VZv@S29^;R2P3sMAiXqZP+A>t2#Rt=Jdo#z|EgTPJ2`{kQ%7TJXx!r{q)|L;PGx0ztv5s@kd}6l3Wt zrWNk(bf?nt!nL*B(fg{-jvs0#aay$w3g&jvstzTRuGtj=4uN9beGdzX+8ym4I-{s{ zmxjXmKQ1gPL%A1|B(I3z$H@UcY(Zv!!Zgk8JFA)kKLn)p;}y{-?#7&~mNo`)?D7>~ zn#%pZ;@zI2ypqlH%^r;Y<;_HN!{h0PxHo2x1HG(4rgS$!npEjD#6ZO11wnZ;^hVQV zbFB-rIyDbX5*q`KwcrsM5)B%;KUyy)mw(j(d^ z#o7uUx7et%2%BnLvZdH%oRK(ZDY6P`P!pHR6GUUnm!NX?E9BcX1Fcol4?TYdCpV^D zd+fxCmKnb&o^;fSBqNY?!|S_DdvbIbs;<`#l@*dpxU*E`-vQC%4uca6%Ixep-Dj2U zr`dxHNY6&3(fP3kH;fo^RvM_D)070&e3Br}h0$!3)1V^iMxcnorEM@8hLrhlcjg9^ z{~e%|_NF2dyejok_uvO0cNu6;Lolb8Y% z!|US5iK6`dxi>wZ~_GAEmQQQX<9i1M~*?y5x@H5=hk}Vr7Qcie%AwMl9WRHcJ%}bCey)Sbx*` zZo=p^SD1E>D>wHj&Fr(5hq4n}iI+)oM#=0JXZuJtKWm^1enm}-qtauU_gWuxsg9?T z5{hC=zv??U$RJ!RRId>HzlT~mmPwx|^XSzG%XuD{mSZOD&49WUnYTKl(%-yXp@yKs zU2{+q9F&fO;Y-CLWmy%p4DOe;+Mh4LV-}sM+&g>%2@y7uzzX((^F9P7WLpFk6*^gVvGloRe^{V0$0GaAbXzDuq53o2G1cj}01VV=Y%rS5+oWz-KrkfnGK z>uxYj`!C8skuCT?WEm|m+A4s`KnfwArw6Jz0p>86J&xheAX|%HtWPfOxi!p4upDR1Q$EWho?hDwD&ON@>3pi9Y zeYpV>Df62vZpRb+>a}wXAou0*1KJR-R46BYygjHIcLjukm?@A!uQxdCZf3};un=(B zY@*Ra{BMFdcEW`kOh4@38q-lWvy`R8BOh+AAob;zxK9tAEDpER{D_>Jk4>C#8<6P-7xoq`9DBz zkk>A!I|-x)oa+ig1OZ-e$z_IaydzI`&Ux~t5v-e-LsH3X#aHP`^YbqQ|sOJ)7HfsZ`%;wz42VZF~wcE_y%^Jn*Go%qE@QR}!e}2&+R&+78 z5nM4Rj@@n{Y_9MU{yn6&xp#Q_z#yPpi3@=>lEL7nuS?mrv}SPSd@%r z| z|2F!Vq3UF!HvHZ?);?K5&@sOFWr==HxqyX}^Wa|}@BDduu4PdAn4CVULsx&i+&14+ z{)6Xe@zNb6EkxEPN-yV&YdtSit>ORWqqk|cV@c?eGCF3pqlO3NH%@D51%$4@@u$$R zx|ab}*q!(E=KlAk_!G)~!m&*e+w<-~EDPpR&kB7yZ3VeH5}b?Z$=vpA^eRPjvI1T@ z&Yq#-G(#%#+-+JGAM<0YgQzrPWc=)+m|R)`_(&A@T;X}xq#Nf85Xc}o^$|qK-o)vG_juvY>vevk6w6Fq zb(jblJ~Fu+7T(}rIc)fK?Bba+-`o4Ne|8XV5rhbH1(2rLe_(SRMk>HffHR!GPuMv(9XdNA$jeSSXPeG+0>UZnRXu(;+zIi zV>$Ur)e#kN>9u9o;0NQi7L}@f*2i zV%|8hu{l~37LaSq5dlszJ%qau$M7;-Ll%Ezr!xKv;RMwCF(c*3isxz8_o@_zkf1$F zDI=djGV5*C9v^GP#Ds(^?+Cla|FRq33{ay?PsI8Bga9f|T(N>~a-9=}FxAh=0W3*4 zENfzIapyWVX1+^5Hkynk#)J}u@i6W|c2NOJ4ActZY*@6o{7It{sgfdpPZiqcRD-a< zOvgel<3rWvb+&wF#Zp+~9v|-VS}XQHbB0AXm_FyI-*ZnEoifhfB9;%BYgP26bevP` zwb*R=>hPby;j{h5g6I8|^lsUN=oL6>*uJR<_qgLN?Ym@A-FDKz2r+x59RCMMG9kFp z_mStK=rx(^Zuvk-7oz@m4+c1wzL>a4jMC}UV-eTA*_Iq!17Ndr5@*J?T0wGH*wC(R z-Q;$D20d;%X;UVqz-%f?vk&3bgVg2Oegt=^x%n}v?4~aVL?gntK zdfkPc#wli@aR^|LiHXgFv8uZ*VKI2s1ouX2dpMikHSL(dnm1=lM>kZY99b1bLXK?? zpIn_)VVlL{FkbTMZve9OC{8ZC0?m_a9=(tv?vvVnr}ln%4};a&<)yk4>Lh6?>UO*% z%_7j@baW+2`y};cfTPwBU3fv%=4GCY*7sOa9A{YEaT9#c`>zKSOo6sku`QB6Y-xTK5<7DSA#hK=h zGy2OFc^L~grd8dCIxw(*jc!?a(zcQ9=5I_+9oz29X@-nz#=+(y=`3pkI6d0z7fram zA&;lh8}FB}{lIXn9EVrJe`+N}LzP+G6J{*wC{XW9lwQfa%)Q43^#Pv3Cs3{n`K(2z zAQnH^Wpte7(B^^-3D8FG>TKB5v=G~NGw}zwX8|j)s<{g0kvjY*Fa^_ls>QJchF_N^ zpaM(ml*d`J_xLE9g2?TOgsl;lTOYmda9)$q0T%t4cDB$NAp#Tr45#GHzz7XiukxF- zc7MmMZCUwR&dBMk$R?xO9U{`9P*z}t3#~e1C;b8t|1eJ+5{LCe2umLVNoIy^j<>|0 zmF|&+1lw?lcNnR1rx;cHGFAJ)b&K4v%ZV4Aq0m5qq{k{(MiUwOK`#p@)b(cF>#Ws) zk+pH2A$PovRAvmQw zmwSNo3Y_<~#gEe)A_-mB%_!o`F?Kef`TppRT5}Safq=xV&K+j48VK=fWyJmSeWrm- zztK#Jo>yga96whE zBxlb_vd3ee;pJz0%iT~P^VG&GF&c}k^xmT9_3Y#2P&HOFS0Z+9crANJpGWmP3kdHh zV(HA#Ug2Y0<)+v!vKU^0YeH*RDsu*i%!SPJpRqJyzA3C-SEr=a7!(=^%!ZL>*q8VTq{uNaMa|( zSYUaJU6Ea8Mw44yepHN3Nxi+Q`8DBbjmHiPWil_riTyGS9xD1HsTKnEU#H8CVZQtXq(2Z)Sf#IaZpm59Y6iiOsylRc{2HC)mTX>p}01(U(0w zpD94OCrl{0qzreJ9lqG>;n!_+YPnJ#MNi35 zoVX99S2(8C>PKuoS9=UdR z#G)ZQb!7Hoe9Gkx@@v?BaKdm1gn-B*Py}oE-;U^6o;U!1TO9{x`hxeJ``Jzj?FK9= zh2%{_B~){-(zvj~6&Xxqup4$I6X;0i3jna`65arGF*{E9 zF(YZ}9-lX4>UX#2<&jDw0o;ug1|q@;hJDfxtIzC*C(54!Q;E{tWN^SEI#WKn#NP%v zD>bf#_AtKQkT=sK4~rOCUvD=Pa}IOjN{dq6Ld|a`>?n3w6(rDh}i;PTNZ=CUm*ee|Q3W2J8g&)*?2D@D2fZMk)5 zuJX}f_+J(91J8OL%T5`B+Q0fTi^6;*+oJP**rU|qx!q4L)EtZk0qK-_u>qyh|3|pm znx)wVOQcJHE$M-O^%p$Re+Ld2u&8ZSAdN|khYEuIDi$106N2i~^l7E7;NXG~hO%v) zUkvD)1n5%mXU3fD*>az<@7xO(LakW`Y_=``wd2G)Y6r%{U2t9~B9%uAGked^j^gcO zJxZF}B`^s+!;;G!QB>AK?i}LSip>AP*PDk!z5ai|ozqT8Le@Evl(iFMXHE(sCbE=m zPD!?ygiIMTm1XR6DoYVlF%8C;#E^Bem(tjU!iax7NdxF0(@ojbL2WuO-=r-5{Ni6%H8EG%@ z`p*s-e~t$M2++n#2qvts@8jo;gw?cP3{EX5 zu}2n^1{ww_-**}~7lF$2V|Ka7i;e?7KKInx-CJ?XWPzEupTx+^2jIqb=n)4s(c3-L zDc;5nUY6n-OmlJxZ6rct*K<-iCb|c&!tkZyaL75+&07jjN_yjU0 z+=1uWO{kpyxF%+ixPRfde8#tV;*7+vNwtJdW?DW;N_bRo3?&{!Nwglq9wD{2?&djU z)>_ijU{XTar#6gGU>}nZItD&p5Qb5ck$tv&@PJ?E#{Yw z_A<6#IQ$tA?rPw;)H|m4^U5&l`=%YtX*odOr`yg=K`vTHcOk`;x4hOC`)XL>%#+<1Nt^&x>C+fS>h0H8&7AN6ssZA z0+i}s^y5@8rG}|+ncWKo(ur~Ev?oGO?(mE8$q=vT1x3CO?eS(oDL%N7_Tndht6X}D zH0(n1tz0UbL%j&}a&$szwfvFZ=)39V8#kzB_4q4erg{ZwS=d4qLWi?Fg8Cuzs9V)% zJs0JdeEG$A~as7rmG>*%O!LJK!xNa!jC@YD(H_?^QW zBKIMum$n`*v4@9rXX(5K5 zZ>~l-svS!2mDL&^sCWD35_s4sXJ`6%nX|v@m_}92z5+DVbe0$KoXXugGvOOD`s_ys zf_o1#avPcKdZ67!OjX|B=oj}=c(!I}{bnE(O2KTs5aGW1wT2$%^O;{r4il>;Se&O~ zi2O31=ZN?z*)YRP-vOEG7Z#w#l_8+9F7(hFRpik*V0Yk(i#Ud|3;ZtJ#n_mCPToH6 zwB-=SgT#^?jtLmy^OG;mj1DI7_<`bW~<#b5Hd z!^&h)Yd*y{)M$dWy}O9!yJ&La@9O53Ut1_0A5Z_gC2fwlJD{i2&g-9-MGl%(8B!2B_4Oo=WkFB|tg?TRroTjlf<4`kiC zcH$R(gcqP)Mz3McoamTga-W-D6dGOaIv&?%eZYJ@EC|ncOz+FqCJ#FC`G?dOOY#PyM zrH!-=T3Smpe&fcCqgMCcCd41*s94$+%w73;DeWQWHp1nqai8g#yOt3~$d@nbGB26w z(f(#6?|kO4E$Ufj;1ktLbnn?In!p|-_uAWSVzKxbkC<#wD7D{Pd;q$`ZqRbysylg@ z@+|cEsiy_yg@sHa_S&}=KvJxC*J~TMSaZ7_Ay)UI>s21`opAa}ox#H=Zpz)(y z*^79%S~t(rV-Rgn^j5`a^mgM~>s0VU?v>AoA8XoVugCSgf z!j~#&Qjv6vsXy+U@ow@}MCIHggRfc_+r(LPl*DxYH$cf+DGL)pd8K0f8TjP9#>Y`L zZwheq&_<&=4}k@_6X$p5Ude;lq0}#qnwXD~j+&a7!K@2zRHxc~*U9ekmr4sWa?OvD z4?Xtvc3N=KrxkokubuTNaymEnrF{3fd|kJEy`hY+5spVM%zyGh#*7kv_PY5SW*JN3 zB``f*#fr7VW4;XTbXx4^-zP6PpSx7h(n_rG5A9zJzdZCA{%pD@vOYX4GScN$&Z*#s zl!u>2@E$|u618lv!a0h&Z29gBRUxiAZZ|^VnA+vR@QO3ytL3}hA20M>|M2+h?(T)} zy;9vy3$@Eb-Y!+|LA88o`~RbImM&~-l^d~&=0s?>7Z~{-CRe)XnG6OPFNE*CI}!hO z?p1tveEHykh?TE-4%t)g70Kx{`w%#0q)b|X5s%ez0rw}Q+2%t}#0S%pqcA)9zK|!o zj;GEjGwgtE0X|uJ792)k%B&;yFUn0V`P9{;*+jyosn2FArRmk^-^1`UIJK#+siC?# zpUu1t7>;#fQmb-ek66=LfR_)$sbtUkrhIqQOguff8tHwW=v+T!5F>EBI2_C%I%Iex zx@WlMS^M;@)PC~~4RUTFPRQ`Pp+p{$kB3eOEHMvGa;FG0^l?EaV(-6O*a|KEh2G9| z)weuq=L9V6Yhky7cVlIvJ(Y?Hu#9jx(GRzjvKZhD!Yu_?9JPE?nBpkT`&E)M@A-*) ze}_2>j;BN8nZ)nP%|;zc zb>Znrnh!Z#`Rd}nvU+D3Li>j*MM*^HZd-XR_jAGeM*Ds*+jjr2t#H2Ka*aS6>mVZA=+BdOv?|Z@3wk=Gu7B669ft21 zX0rEkzsOxBxU}%(`?8B-x-2~u)0(h zXj#<^JED=~sVR6;i9=mu-o&Ao&7)T%4e{hxbeO@`H(^&^v^BF#X+8(8%3nBpuJ`!D zNbEtRycZe0SPyuFg{j0t20t=TRNNGX-6AGcikGY8>{zruvH39peKr#X~%eJ2rY8!IX8$-d7$HPZK0(p1qe3R0GdX=muBQD4OisL^^b)?! zfq8j)Vk^Hw1W4jAR?^upm_!v8h^JtfedzHeTY=>=ca^|qW)@40MvzCaZWJisgTRGn z|8&OLCEOvxq^F~xV*=&$%NQU|`pvGF>iPPX{Fl6>>D^TuEtXCLF%8XXXf|@EQ{_zZu$0hwkZP5)=q2o=8pNM^9|J?71StJkrS`Gu%}LZfM=QlxBM*G zY2jaC74_)w5W~eH+%FNHNmV9I*$3T4Di+7R%ALD+(L14GuWwuU-ifC>-sqR4YzV`9& zq)x0Cx&FK5OuR^E=JP^6>td`vH6XO!-Ylyx`E4qYYFtX~i{!ltw4HR|o4`_kxN5%R zp0DiK!_C3b?Vs<(MWBU*U{z?K{5P=h21@6>@JF&It-+nI98=K?7-1-Zs*_QabA#L!3=hBk${B>$v>xY;b)Y9rPmj=S%#d7aSF{iT z)v(v(1H#nxLFPm%zzc+KQlE>uA94I8km}H&zReLhO9tiZAD(w>wTP2o>CP2Z1mKLl z`y1)Y($U?7PZT|B)64N+U z^E{NqrCa$@7K=4%hA#K(F=&TpPv*Oe$FhCRxSf}Oo~j6>q$X+VvDrtw&s8o|Fpj+w z6&UZ!@e88|E0JA(IC+#DCh3|!Etrc+kv7&osz+Ud&%YYt7k@aAW?1P|6XxVWvP_KL z3{=iOT6Gy$DxP9;-O=NlU@l%Bh!B{FKd2x655N#Q=XcuZ){Nmau>qncd^jsrY&0B; zmkzafZ1cyUP)6o8*fT<}QQX$0ywPHf>VAfrQD@_3(vV00PQugT2>@+(DklYK4&a)h zKCq=~M7cN(@a|q=US>i^iqmFfCM3pYD6hee5Q-EH$yRgb8F=&5#U{`ule_>qb~-7>!~=IXF3^Jqs$ z9#@z*IF;nL=*u&o5Ywi)o~-fdZqf_9P~MauFep^wfhO+XEp;GVV!s?mamAlo;yr9- zIfH42v4Nrirw6^|>T=YJO0Xw~^;1YC?W-Uo!lP#Ji2tzpu&YlDIWNu04IR-0rohUIasq$IDjiQo~u@qs+n@b;)x&QaE zk&sccaz)Iap4BlwD@=03pd&#WDqf?8GOkDMRxEoruf*11BQ`-S7l60aj|~ zD%S8BHXibvWyus7m~D`DEQ+|H%Xdp=Y((^NAW!;%eGju)_2 zw7{m&5IqnY{a1TN!D{@+LeY~+wL6I1cn-3&2*JSvbS@pia7e|-0jDI%a`w!N+(<;X_Pix-WI;_Iy!^7T&riAnpQ`tiMuhH-HE<6|}N<&st5o+tWF za8z^6hBB{Kc$|%tE5EWodQbFIJ^cf=*jG;LYUkN(t24)t1yvd(hFi3Uhu>For`7$R z1|R=Dfq04p4GZ_0VFwYqRo{-D9O7f43p^ut=t7CO*9-M>vx`L_?O$ouoM9?K`6nA7 z%ItJ%BV#Oi%}SR;PgB;X@B^M!Kr()V25`wYUq)hOq!$aeZxrVSCP=@sI?1Pk*P14N z7oa72+a$KAPYG2r>4l|27d48+B1#jcXMk1DKu;rULddB+rv^ z9cVqcs4y)X$)IU>{}aO86D#ojY}tW>@vacm%i~H<>`YyaFfc^NfQD!a$hN;8&SQk@zXWhCH%Vy=X$2PMnSA4EVi$f+X&d+tsJ#02mz&N=|WFcwMM^8ARRvuz5 zhEI4mw&+B;i7y2B*8DF*R)NL$>=*wpLKYSGUkPG$cA?D5K~mD;5~C&%>+{9Wc1!0YKW z;(AG3Pc&$T*P(Yu(Tl8cN>%jfdsi+LfS#TK^295AsmpBHbzc=%YphCNW z=1}%$+js32Uq(ka3qBCz%0j$-eqUS)EcbCQ@cI9Uv$)6F_R!%C5j zCIFeF*mx=gq0p?4fAT2|r&>RNGYYjBXd-x85YpiKw+3HB(e6T!*m?H?U^b;efV0eG z$Bg&NNgm3cM@hB%joTvziYW0t?hn`g4fFwj@b-mr(HzB&K0|>flBb<2)PD9Uf#k!x zQWRU3P~WMH&n36TTh~ui&ED<()+M&Uy`Scm;M9a$An<9VwhR6gUIZa$f|+_AN%+U~ z?_yo>6WgFPuJ;wfOiQ#_7D*H!t^ISzu)lTPoxmRh0qwBu*kxaiqJ_vm%k>AyAHC7(#V6ho^!8P+>-8L3NWh=znfTHr$rtWF$@#XTNyT1(?(mj6fZ`1vHeEwX6mMI=%QweyT+m(b%I#uj^c_0Y%?8&& z;ST>bTpysId>0yYfzz%U(4UMNF3&dLHADsAWO-qu*lz_$a~4U936a4|j(AlA9k5fR6@p zr|w|U2OEd=BT{IP8Y&h@m+&(rloE5M5U_Wjq8@9QVw@5xG+$_7hZ zQ{9`Jlfz`=Hseknkxota2F&LwRtrg3jV-KK$`*$ z?6nu7Cs$jygQTbBW{~266x|me?BKHanb65uD8kD6d06AxosD-iXWQBqmv|R0A?eAh z`bM5Ye()X(`MKPR1+i9tvl}(^#gvE+7QBqP9ps1B^X;o4B{pkPk^|g{<8;p09Uur; zUE{BdDsV@H7svkH5`vV&$obX*s+YA-XwU?u&4SACdv=1F(D_-I_z)MB%o%3rTXxkK z_!k#F3*pC&s%r|3o;4ObaMS zlIZBYGjzPMTc1z%%WfPP!&M#;dx+F;vEyjEdE;+C#M;g|HjOtUCbTg7u8vvU)eG zk8UeCOrC|wg{$jvN8T&uc^Bl}V?T)FB;d^P`@~?coxtr8+JS{XE`E#Wy7tL+AmnJk z>$gMnq}h>&>JlFri9t)WaqHc=tJPKFAqz4iKV_o{sf@zB{Na;5J!_gg2z*p+%GT+9 z7wMI^GRwm$jukkof%6w%q4nBba~ABGaOGDP!#{a)1@5oiyUup#IxX1lua3RMsU)xV zdKX;JgMc#a&(7{jo!%_!xh{8-)`1hRW_2!BjKyWqj}EsF-ha?UY>^MCEfLxMuTqbT zdzrHMnHtnflyE=t6nE#!_HgdG8PjC}2brvH$Ze&vQG{by_u*!{$`DlThx~|mcFVpY zPRnM}n(_Hn8zYSWw}ufbbjh@yiL$_f;>2%^xkWK&BO%?*Wy70-<6sXuGJ{cBux

    O|H8qvYpp|%rbx&OOG4P<#sCr4F4jkDbWnxwy=hM6NmNj$)D zPQB!!vzq10Ai5)WF0l+s@!#n+vSDrb^C6vLvt0~IVRNgR5dZ&`LUm9Ix6jo6uN11; z{8tKFp)?*9N0@c_uN2-^2c-~5SJ{Ek0D`?o{3ZdELKE=T;v_*S#Mfh&{KB|mH{0CZ z9>2QGE{4ur8>T34c+9FA9QWk5ZoofKHVRgMWRb5h(uv1Mi*FWqQ7@eQ=!z+L*tl^} z$M{o_p1s2UDD@SGH=OyiUP*M7X-D((A{$W^bB4;4I1E_}q;c=2xkwTLFK44HloSzK zwW0rb_54(^%_k`EER+l8w5(PYped9K`8Cx*h7>(oxhu3RLMryctTo!bVQ3>2!Pa2% z&ZGrD!`Q!bU@)2l`|yyyj8N{0c<4C3&4tFiyfy)9*0Y^#icrH1qk~t){02lBslrRx zt$-cv5X=3va#S4aQ1T=dHBI<7bI` z?VoTBvb&KZ)kih0mUH1lFoEvo5#uqdXOwmH>{E;LVGk_=-bq>+yXPErO*S`cKO12= zh5bG(`Xsu~oT1rl7ZGjLaD)GDfeGbj==(8iVu>_?o6xTTi~wR?=v&*=KG;?(Dekl{ zbO+WcqZ$&Ru25{+$SZE33jZ2$7o+x0)Dx_91J$}q*gt6udpu#3$f5tkoGC-qnl9%G zF5m_>L89DpHRu>Qg!Xu5`Y$VWO=yMtqi4c2k!Gxhm_76r)!C{ECD4H7{nvWqTo&i; z<%E+y`M%)4B+!3(Hk(!>Tn}jn{<2IqO3uoK+v5jh8dPpK zDjoD2#%sTW&S_X^_XKkTCIJ%Y<1b+Uss$ldzG!Gs^b89z6>xuU|J&J-VmEV;AZJUk#$f=LAB%`SYVST{Yv(uKQr+e)4dG$a^e z=Z~o+i#poPz>tYz3K`?vc^wniQRnU-F4o9*7!Dj*pKJ@fHTsKv?U9Sc%MaH!R#-Z< z!D+ESLq15va5E&e41B`!)T`8ux$A?jMV>bHU%eaEVTFQVTdFew84fDv~|yz8C7=RX{Xxku>Q2#xW+@$Yh{ zyYRa(CC&rQx`_7ArX7toO#-8^e3O7fqpQNuK+ZesFlT(C&5_gkwajhd3i@#I?U!MH zYK@j0&Rx^bF>?7C);PGq~D+LRJL4f2( zvBvbjThJm3$cY6{p$5SQpDtxsv zQyQiHu5+I>IQ<}~}oE02}}=F9d=Qzq$=n{%F%*YhWc zP1PbhkOUzaEYMjZ$ua?LW?1`QF;)lei0y|&B;0=N5lCe_D;cLs-UO+pGpKQIfLCmd zjh{~E+3^Cx6J+dO@q*K9R~%d$xXG++`g88GX?>hUY%y6?*{xK4;Tnv0l-5oRXTNA%AJUo3&*2cJ`ars8Pz{$e7Yr zNiEvFUkET!RD#3wb{IhLSQ9Kepj`$si5#&77e{C7$FcJ}*CfsdbUa`3q1?v0l!f?o zeVS5lZFJOoHfD_43mnhI2dnE^&o6JFmme8BXMEPNKE23?mBXZ%GZZG*i8Nlq2R!B7 z2iWZ*0BZ+>k#J{+34nkoZ7gMscRTJVlorb^?2HZtfr`N$ApUkrreCO3Ip64z6_dk7 zv?EgTapo@?xZNc|6~gnpIR=`8R5VT1x@ioP=>T)M(SEO2?;mW_U07vqz zobs_>Mfl2#MPX6cTs7rvzihV%dzZ*3vw3o+-G49GW@+1>rRbe1x2O#rE;6LK@ed?B zmF8Q?pFi^B$XnemcykW(Ir=u93uGpDmA@@N6`1@dFJ)xYz%G%1K=$qU$ulpx`H9W3 zVD*I1LNNE`*etB0PlDw*h&7s_XEs`|Wi-p`g#HRnsnu8Ph$ss+EvQeWc_Uj#h5A*H z*SF5bkwj0?13=s&wzSHCy5!n=3^$IFZH3{6SX^h6=us?ce435CTh(d+G5O&7gC`SA za23mxRc$j*CJP@blQ}T$6VgcDBv^%4eFD`(teYUyK0!%cF{Y`U9#M7)?=l65npi>f zh{--8$`c>L4I{Yys2Ugn55|+ho;DKqgZL;!7u^%MV}7iR75`rIU(IAQ+mXwXM99fX z5j?Bi-zMmcY3Q^bjukw^QfKi&2~CQN`1U@wM;-Q-D#Gob^}XLjCv<|VYx>DfvETN% z#5ze2WKzuSot%r0frG=$u6L(jP4g&mm~8Go_pEH}sk=wH6Zy1zQkh%qWxDo(ZUZa& zy}oXvGP0Hu?8WpB{C`j$P7U9tgbznT+E?n?q_i=Vve-)8AD{x!*)sb>ZkKlXa=%#rUPvG925+a(wS(0Ui zEDviuGTgc!lYXOtr+$y^%MOfx)@wW)6_pS{!Rmq}++Kt%A_APeC)up!7H-J}E{Y(; z^DM>t02(ZX;;5HYh1$r}g7q_e{hxlX0w2Dpt^(YKa4Nnwq*ZP>A_nvX82s5Ev5w16 z8U*^K52hw>61!Q+>Kc#~uaNWY^|a#Dd}Drw4XD(-wRYnEFdLPI)@Cjk^io^Zz|A4t zl=}E5{)+`Sh~@qv^*(vTXq)`#vIS-Tb^h@a`cp-L*9Lv1?JPKe8DNZSy z$Yw^9RCsiF{MGN1e!icmzJ2?Ns;|4>>*{QHO2DbcU&;o{J-Z@D%*<=)e?Z|-a5 zIyJ7QdN9JJ@5`q5IT6XZ-Zx6Wudl1~?(rd{UUC65%z&a$H>RkUxrE+UlXD_JYJbGR zQ)=UP*$&t3a5wO6aIA47tS!{w%n7NtLw}si#J*^=%KmK?5ik4Y!RtO;R_qe0_hk;{ zsO$CXIfXgo!(Wd&xvsiLuGCFN)J;Y%i|=O!9_R)md7%7(u0uJOa&z3h91m6A_j0y- z`ZJzGk`2dMjTyjOZm_?Gs&(Z)ykb%i@$}MwkIyOB;Zs}C39Xmc8bcqIUK;ti1}e@D zQR#E=0&fGAnIqr&D6V1>17o8zT91S^dXez)r6^2+wMy5tl#LQ5u&sZ|!tX`6vcjV( zp)J%l^Nyq({!6Q?iuoLCJ!s`qtU4TnlAW6WHCHIGIJR*;m}P)aAU-&+}cFLmLUO^FuL)a`U&6pVvQG zsNakUKdX?)j;4XA{BoCAG($nu$>zij@t$Sb2|p<5A3Mm{PhvKkK(Ts zBC`Va@OCb<+4$|4E3DTOuoQG`C_@n8!|D#$%hS$$N@~wjCT0nvW{o%*EtjTek>l^g zyKi!vym^~#q#Z&>u0uCoeI6#iEH=SRo`Le&e*zn*{fG^0fvFmUx{caRZ#KGNWldd( zQ>+dF0kHfBBfrHD&>%xM=$6|$Xz2YGEsCpu1q$48pnjfPOa3n$M0=KWJ3yDa3Uu@Y z8wH+2G9WXYNx!!RV}Sc#`E(`4|$`sfKCO3YEg&IOpX~ z4juG|S3YSJ;9rZSAv}2G5Bsse5f#=kGo7*llf^ju^ZM3OBI)p>jHH2eIt=T@jqCPD zwcYTszcYK2Ap@P#vqH^$FR=LsK+n1eX$-L|K=uCjr87-05}nDt1uY2Oop}Y zX)$m$ui4!XU7{jOKW(cS&AKZmpWIztill@o=M_cz zOrII4GOS&S3yBE4B91~_CP9ZND?Pjic7wIBi6#&34Fb1Ap!nB-q1BNonFMV|V8F2s z;_mps5?p8bWVrCYrLXN471}5)=8M$|?YY4OM$tLP;VZ+~b8+M);A1bx`!aXh?8ErZ zOoNXnjWy?H#=*vwx5*J&nD@;Y)`1?w2CH!WaKDk@^dkog-A7}6oBC{5p4Q(530`|l z^7!C>67+!;a&F7Wj|AV1X*%*j*6J^6Q)`iaWYt8~RIofR&<~Z&l*AnrIzB*JJmi`t zTG?@Ohmwl_8rB+!p%y}VQ_;Eg*{hhqyS{nudAz0%uPZNm|J(#M&5t=#G0l*EDsaMv ziweaGLI<8H;0*Q%HF+QiVXyEcujlSsmC%SM$63q3!pgzX-xKWz)wQ3-Isn-Q{BH6rk3^)T)aDAIfd9*;V3k}~Pz6K-PxC7?MA!nml&g1Tz%I56+C@OEK}UF&~z&{q1B&hFv$>($b5v&m=cBZTn7}_a0S5&?!+rFL(z!{Rh$9V zluOJKZw&!;jRs}R~*GO zv%}LOU$6e=xbSBX(vSOgY^c-X?9ghg%Srcvs#=7htC2tM&JutY@Q^OJ(juN8Sv%Ca z-+puYrT*6yR$CFurOrk@Z`7BS*2wJgeFXPM^o-*6jWXUG=3S}AvCw59*E*s~os1u` z3*--W8KR!X5c4@ z$>iD^LPwB9eE8b7`nx!dar=qZdx~i>RARNA#)65(w?ta=(eeal$LMz}iUY`KsWnvS zzQS!bGI_v8$zrZ=Sefp~XHUz9`bcMq_L0d``LXgFNrU5`C#&xty?CiqmY7@p&%le` z=167p{kgG0hhS;U82}h_ok17+-&zrXUMP4Rj#Qpn7&`C&Y1|nus(YkRZk;t(=k3u@ z`=W`rGu7(kP4dFNCGj8mu7k8MbptWhigp9W5tu3?&ZRUb^>>+&z`XM|<~O zE8TPdIPS2h+4wiQP;%rA@%{Y|Ypb`fYc$k0IwIBTd(`c(JGe%nuDRax?abq9^lX!@ zbhB^P=}wpTkZv~Esco)gZVvy!Tu~t#)N}FO{Ghnwp_e#TKT_^;6rx{itD_3{Az9a6XzXAi~QxlT{^or!opor%_3qS1G?*j4B+i5M$6MdgrHF#D7 zi{9UD`}DsKo9w#~!u#|&>6Nq8;oi6VCwzR~fWqbtuF4z3JkB^uGYCE!1cmhV_Vvb; z+vm)!P?$%|4G-gOz72c9%-=6KgCb|G#$c|NgDJh#V)f&xj3qcJ#~*=lG98INRS=Wl~b0yJDjCig$xhHm^*pdXNx$ zgyi-BS|5)%fGkKD)jv@=1rY*-1UONY^W3Mg+B96o`U|ng3hrYYq^JCpJ<=o zfs(1+AhPbaTif(X-i)Q${`#eFEBUZiGwKp&>gQ?|!|_XX&3T(Q6S;iSPl_t1PBde-Sd>aRRI!PguYI$(2{ZLfn(eU!xt0pS~a4GGIbvHw5k@S5a5HZ)kVF~gMJzKIJgBUqm z)v_KoWgogH@%LMJe=a~{Opg82y{O=Kd}C@a^q>ke=2pZg4FAm}m)uUZ&N<#*WBZFt zJ+tZdR;x{L>M1#?Z_hur@2)TD*S@#Mg52w-KiN~(Y^=whAF(|<30>|zoWtc-1{#kK z5@-QZ7r%Ki%&B(9?9|5(a(u{rigL?8Tus}*`DqrkKi^liRW75$S;oGQx>2A%LX)uB zzzmigDc8Ok?Uv*o5%1BmF+btce5+J9<@@M#K+3+rT}pqC9kk!WOY+h?pRt&cHZg80tI~T>&rj(q$bBFZ1o<&8dii9h?DWLlyIE-a76h+yluMz8&pNLc|aXIliN5^4?5i2dh2wOkJy@) zXO}w}U#p=X9?Fu?ovf%GF?V9<`CRKfOFMB|Sg6I>efd?v$8-<*P~Z;oiad9tqx~7p z$M|N@kzO+L^L03U`I{~3Rk?jdJs)6ZoL6#eR;Cq#q8Q(T=ma6-aNUUZq2&qhyErw+ z%9HxtCDx^mvHGKhbWD*}`ryp#_NnmzmC#3nYwtkySr;I8E>0w#48&88B)DQOhs+E| zHv9kXi@NZMTsd^p>sJcB%m*2*8i&;QTsq_*aLnVok+D>?9nUrK+4RC_9CBx8mgZl) zb>-ZmZ~VZI^C|C~9$o$uc@YgRB`OeAw6T{2j@z3f$o^sf1e8W+crxZAs>Zr}vR3b= z|5&)iOwt(9zaL%`VVt+)oo`FAc0;k*rJOd(g30Ew3p#CamKU0D>}{U3VF}^xHeDkW zclc2d>yuMqTYCRXSd^=YSHYJD_lwNU%6kp4b#B+iw-e|1(XMjmJiaOJnjgw=tmjTe zIp;l_%Q+Ylue#f_K>XL(ooYEQNM>A7JeiyZTrPeJbP zj#_4uKkJWod3Vl@C;OdxOtJDj9gXCKJ-9~M-e(YRn-oe`>TkSug0e_Se7<7pFOSrZQY_Q8#o zt*8O`X@lC&fp(+Dlhh(h&%q6q@C-HEZce=OtHbpLrzfFt`VbL#@4OKq#O>lf0CzB# zTgZ^nOiRyg#3h-DXwc{~;@Y!NXSr+HT0BCkjRpqULy~PhxG-S~pwUT=epLn)V~`Ne zxxoyNr(n>4Ul}_zxMH082TzUhxn*VbDf`>2J+3x+zncXFU`;Nnp7}(18y3DZs|3^f z(o=WnrPqz7RzmfIz-y4s!?%~r8^ULb)g_L7Yo0RPeWBdo9zQ0`zqQV5SWL$rn_#>$lXh;bKDXE>LeHTF@`=d&Hg4dR_sVX2yoM4S^UKHAL6|T$Q9kH z`*UnM1Q5Omb-)V!1~@B$JZYA78{pe`hIa>ja&k8K|7gc$K`f6x%j!_mW;1UXjr)DF$k!Z46(wr?i$AF3-ua!_)eK5pZrcOo?ihytyN(ujgw_`svjFz8Wv#A zyTM>16vG0P#;okvG-N^riqv{oy zQLd>eT*-;yXFMBxU^rRVe$)-Oac0x-ez#6Uf3Ze!w0)5i#v+QLXK%C{Wte5RT~SNf zqgpm@E=Sw_JJaaCI8(eG*98N&TT=zwaqY~#`c{Cl+y(?&ohT4F;-lSdn1!ALd2Qw2Ley55|P8$Y%2MNgIL`cVG0O=OWZE$tH&wg%k z=~TloWn|S@i?pn4Rp;Z$$W5kACn2~#%t?U0tdK$M1+NJq*?LrnhN`*UYwR7>p*+L( zse=z*2f(<`+VJ`gTT2;hpR8u(5$pC*o*}7GHdNQa9p@ zVj3IN@md9Bke6^c+r+q{^75?mcX~R-Tk@8x)Igqkl0RI_Oh;$EyrOpQt31-|?YVcp z9c4W--n(^j#N|76WJ?ISRxTAs4a2A-*i{3gSd_j~cF}1q!!ZPOn39ga3}DvHnK7Y) zBtH=<0gq86x(ATeo#GFOmxPX=ttwa@F1o!>)6qqxqgVz^lXp0d^z~`gMbsqDtRH89 z>2MgZGJTF2o83v+5E*v;8fCCsc6Pq_e12+v;?ymi%!-o0NZg02V}d+4@$RDn7fc}k z76=d1!upHK@e%aj#c#yct)k*)m<#|(WRk6XXIWW@Jq-U_YqsGx|EL7o(GawA@)CEhJ%^`@3kQ&`6E!EVmmSY z7BRaP4NN{7{Z^JT$vADy2{aD&8NzoL9~g?Eg)A`Tg?5&H5b-q6Gp+UIK#=ma`uf(o z;YduqSVEsS*~NUpdX4%h;SXc4CUQ&o(GcS%uY|pp-3+HdJD(P^=bJQOo!K5mq#E{7k!267PUhO^M4DGxM_#x<(69 zepfp6;#JQ4hmy>%dY1s$ANql=QF!ky(zMNatHgndYgD(HD7VTyx%eWOaA=zN#%Y+=A#O z)tGksZ{>q}dRGG9_7@OCOENE$CLF-=@)Et$#{pj#tGwd%bQH>@;dkIe`+i4e<7-|G zhz+pkUko-oN05OSJG+Rd@mZ`6HMxw`3M3H{kQ{rPNfh9+T`h}{ytyHy=b|zV?(Af$%^Rzbf=>Z*m~FQM>hcZm9O@5ld0%gF zYTn1_2WhzooG#%auz@dw_fW}Z>jXxTpCEc7mcz#I-h%*t?9Ca{L1&+4SBo2%IJE_@i(y!>}ZUnhhB^*lcZ+QkCUXo$w(cz^riZE zNoH@gK_+iQYtI>OEJe>BBMDxtdtYOT@ z^tn&`85gvbzHyKj$d?e2n13@B@om1$NW3!kAcW-YeA~UyfD6K~|v=YH-6)I)MmoJFPNq(fljX@dYMAtnNbVyF77KVO5`*oi5rVdIC;a z3aoZ)MPHzaW5KF}JL8Ev=Ej1wOnG4{WJ zRb(gF{y53~K3}ZHopE-|EO1e!DKUy~b-TmWkT~1kNj6D7FY6q#vy?IkZ zQrr0j_+}>8<=-tIsWUr)bXf~^``;}QzM`$--EF|>zmtClssZ=Ne8kjAnm==-EZ(|O&NIA#PMIL4)xL38)Anr~jBPpRp5G}$#<pgnC?=NvyX7hr=l-&xz*$AI z=S4(7#6D}+A%V}dQ=&)nFx@a-Fb(OAtq>}4ldzrmNc`TDT#_FTluwu>^q>u~%SO>< z=CiK@q&P#|jiI#J=y6TRPZt8Dx%KJmGJ7AUkY@GIolOyc>pr)%FHE6Pi?&L>$rj1E z^wWf4KMmrn0>Zt_%AF2WnAcwWalWDbc($RG&iOsYWv`s`7a6L`kAqx|MftT!bBnGr zW8}iiypEvSDK-1^w;BTJiYb|2$SIw+&rM~OE1Vx)x~K#sn!S`-esrd%*?VywVkRG^ z(5ed2#gY#M7lra5TP2|sUE~CNzrY= ze?-q{FPF@sK5D+6=Duv*E_8%Wuv<_a#b(U@7?vamM!NC6d*`x#<`DGU(U0`-z?*f{>F&{JWwC8+DA)Olu9u zbGirANpwIKvk1+>>}l07g!DQc@Hq>l zq&FcVQX^zgkO(0erT0+;6ojYalBk4lOqsJi_nf=dUH9+b zA1=@(YlZLI``zz;-lqsGaAf|a(%+$NTv|U#u03{|Vhv5tllo?1tn>jAL&nD>!iHbN zyXO7Qq=3d~BsT`U_YJ`1dvK>y@kTYcn-{I4o8xah{x}y=eDvF%!E&PsS|zGPMK#T2 zWnWi4nT+iDb)nKGOQU%8n7~S?243t+y)c@G>?36YqRxR>Y*swtFn3dEX4e}! z*?Td%>Uj(I6TuSFI{AgLh5LfLNqfExP>nL8;M;;&hg;r_@i%#DcHrRqAfEJtWl`rz zfxnn9s{$Qxi`hN{1#?iTux%H+fI)CrGdN%HaojK(^8e+%sO4Vs>*SJBWB(8D<>r+j zp8WJL-pl9G!>YE_d%s+5Z#5D|VbVkvhxk5l4`dP#21ao3_BmoDCciTsAA=MgLUKuf zyv7j&(st?@J~E>N_8t}rzGt$jAUF0LU<)F@0sBWAep832z)d_geEG!i-36~eMxiyL z-*s@((cD{>-Q0e8>`qP-NR2f6T-j5h<}-n#Ol|Z#nUl87_ZL#3+$?A%RRTXmw9bQp?jU^w zAl_eJpPJ}307k$i%v%IG9L;Vb_IW%jESECGbEDA$C8yv9Ntm$5FXtQ1cuc}A*#Sh) ziFQX(q^J#fiJDC9gbCHRah|gvQuLzBGE-yHl(% z+3Ub_HA zq0-s~SP2YbR|iir59DQ=&?%~*>}HD(baa=j;7?7Pt@-JhD;rL|mDc?3*fzEyGM0{f z@J)T$bJ0y97`3l@v5j-DH!9*)J#RzLN#e-67|`%|RQFrmuvQ;SKXk|0o&2U|(f3^V z;QmUzcX7ufUT=MRH%QrDLTX4!$L9iSU^s(k$ z2R!2{M8rUG2A+6U4VD{ysYaC_O?x4)?`P9s`w}HH+K}&m5kTUFYShOciG4`wWmM*z zzNk~IDO7@@c&NcZE6A4h;cMtP#^$QzD^44G?|JRl7nK>p=t(!c%z&5zJtsH&tUbnx_SG^YB7cd`i90=##L^ z^cGoLCHO|9wSMK2}*mux-PV;a5`dbG*+mE2G?uSX^EgSKODWN4R(IKoD^$y7j z5*`3DT`k|SAC=GUc(;$Png6#%DY7~I=T+*5AJ2`V%vL<}rlypqe;(&qqzhn#kvULG zlW}Ihsvc4N4@?e^25v8s^XW8f7Q&3T*l!{;V%F^q=(B<&Ul1pN?O;WO#m~@e4l^sB zF+EUc5 zp$mA-X9UEv&(Ob{b79LZc$HA(rg(r{*ta$o{J>z4Ro zjq*C;u%Z{!1^++u?ta9a@CwT6zw8m|ahIIZ@0oUKO8<$rx2$1p?19;{j>jADn4Bjc z>n9fss>WHg&pzr11FMFec1H);H6vTgRUdF%a;{l=tzfJ8Z33(xy1dlD;Ki%|*8$Y0d z@tH88Xh4={#wjO(&JfivmUP}abLts4$IYycrg`b~I97PjAH*OzW4J>XzP7lfalQpFcf^O-y2PCnak zk0Y-j8HAJE)!Z6~$|cwEpXqeMR`5x|F^Jwv#bR?wTvr>p7qHf~=|O5fa!)Mj|I+a@ z#)U@X_>&b&)SW+iFihz$MI?pQ|4T9JU$=Q%!%6x@F`H)CSRd{luNV^&`2e}QRRx;d z7Ttbu_4#dFsKwRgCyUDQ=tg^Xnf<)(ngh4rB%8Rq0q(BeVYzKU)hn-iBt6c+pf$d7 zsrzQL_X-YS4mD)aMvgY&LoQgrWcN%JcU*l? zBZ&M?o9K=q`<_2vY^XBhZuzR#^RoxXG18X~x4~TuZ%-u$QZ#*|>>ZBOmJj9_jJLYg zI80v4{Y3aI3QC<4H*q6yIPx>y?XP?h#mL?;NS1ywWkQC!T?cO@3Gq1B|qX))F1D)BpO#f3D=b7*4I=oRh;s#%YFnxEmAOx1AGuq zsi|M;|FqmG^rt;P5B%l~@f5X<2klY6Jlz0((}3-vctQm>2{)SzIh`*6Nq1CEa| zzope})S5`_+C?&~e4R=;Zhq`~@&b9S>*1{9dHWwpym)qJKT1NV4Jus(LK*KODg?V^ zEEtH5T)AiFOVL6ccXlZEM^lM=mCG6I4-uL88U48T=tKuR&4h7X&6 zDMW>Ef_P~DG2YNX8G62$ZW>d6#w3RtCfXLj9jw8!U}>M7&CP5K*d_x#JL7y0^5DTP zVh8cT|7Q}AiROMqtuc4tl>mg79t8SB89=m>6X?|W1>(K8=mJ2bM*gq!-8}J7< zp#b#+|LJconNJcPBys<`!DMJ26qvlHOjm)%LSUato$n^LGgHBVhGo?8LC2Sx1h`~( z*7%L$qT)PrH#$qKesyk>#u6J)vmNLitC=37(67In9L%s`pX{%wiyd&ussL^1!-2m!ny^ zel2dBPd+CcWvg!;uxq{Qq7dF+=9!vY=aT$S?Zvt|FZU9k^GJ7uao2tK!Qf-B+HV|u+qxYM+7*z~Y3}vx`Y*)^3(SnQpF{?hA11nm2cgPhDJ0MR zMFP;@%N2M-YoJ-07m*Nq#M8jEa`hDNOg~Zq8HQ4W&~&7{k>)u4r%Zq1SaFHvP4cMl zq)8e+iX4fM>3A1L;Z2fK+Y?E$Htmg_ji6S)MRGl`3>ZId+3p`DV-E#ulF7rYCh2g+pOfq9Z2@wpc@nuzLM=UV zIHQx_PRV~#YW(XQQJCRB0!rC4d`}*~lGSvRvW1IX4d(6c10We;D>x{m2?x?`9BJeiX>X$c*DTU`qCyK)S z>#Qad~3F;wQ z{Fd5U1sHd%GvXH61w+?^2_Qdmm(ZF!M~;AH!%bsiu8kJVe^;-H$;EjMxYN(SeEQ8v&U!gbKTl?V ztNJ-n#hp}LH~Apkv%$)x>bh$B_s`FI_l8M1<}95rSEXPAEouGP4e51RG?BdwEVN?8 z)x9vHU0d(;_|=3ilX~KOF-bzKF8+XS21<;4{<%)beI6!Dm_%qoQ7k6o8b6Hp3b&iq zoj$0i#G31TqB}rLFIVPGFfh3CX&0XNd$=si*|MJ-nfc^nAPx-cltLMEY<40|B#B3X z2XapQlBq~JLU;j_M(h+GfqWMT{iL?|6!CV#Y(jB5LLGO;F_~SMmMt*B!$prj^Canl zHKa@0ceYM0yDlH_J6~Am^>ASAvz9r)zP9!EXJ}B)uKa_{8F^pKe*<+1wu|4DD~p~G zcFh0-8eVZ)8;Bk;0f(8U&q@jTRb?{TNOLJ;GrId}j9?Xg826K_QA^r?m zIZmW>w!6#n`kxnk0+J%Q)8gGH1()y!J))jCnLT8hg9)fF53M^hH`X&ZyNhx;4$%ZP z3_-7%M=6e}70MR99^y;05{C`W@meE(9xgWoJ?+w!wO%8ZM4>VITu+kIp6MfR>w=pV zzOA~EZRyjre$PtzW?Ze=RUyhO!R=9MCEQbaMJcmR=T7Lq(GhpY`rcLK(X0zS3RTB* ztvWX@nEO3jMH+TbG-LvsS>NcVKiFlH`IF2{O%2gqF#r;NrOeGYG25GHqz|q9L~dRM z04e%T8G@LlZFDerHQ{n-nuj4G7mMPNR^3^|-Qg6esbBdp%YicE?aW=v3`!+i!+AvQBtA920^5H)!7gOU3X zHjvCbGo=^C119L$9Aw1Ee%!9H8P;IML%#@$8aJ{sEt{>#YpgF<>zRT_R4pgy+^$;= zv*Whsk#xV`oCicZlR<1c`YCE~1Sl9XfgOn@S^~)bUB-Zdj7nE+%w^Yz^&%*TMmJ1S z68^6~)dzAJvAx5YANfD}RQmTb#9#VUR2YA5r~u;!1m+Q}}$# z7-cvJ8;^~NzwY`^Gk2)prM_r?o~~(4dcnX%K}zJsmXZ_rMQ4XZR0vusqk8ErFQ>tx z^q%M2Ki&IY=|2e6X@nV*eGTDH4UR4uut6Zb`6xfm3v`=qs?f4wiK+RRSKcGg!_3)C;ceMX8Ml`Q z(HWZCCVHjW0b#7dsZ7ocdVgdT$Nw%b0eTdt<{w}UaqdLmeaen-*kWSbvY@Ki_5v71%n)D7i&F!E?l_GQ|`9PnlxbhHz?@GG%l`r zntiq?o)@v)UdH%U_M{-SjSzC)#^xA5iQkLGKw(js=W8H>Tt3)eO&-%q< z@=1#!;!(+T=D*a$uZ=A&%ZYFsr$8H9C($E6{t)H-IQ1AW z#r>FQp;mMF+0re~s5PSrg7ltyLz;yfo;NICJU<$Nl z#4xB&aQa35;g}WXR?2=5yhqx*emFDBNwbt!zJeM>NJZYEAL?~KMaJ8AmrJ?c!Bqrh z^>vG$wFO9;f|%QAQN2*AO4l^96D|D+R`Q67~{Cfr5g7oLRmD!gdN-Bg#x%5-WRPPA$#9L2FPfTh4OwXFww_5C=NO z@KN(CFDDe!Mh1TFD2UU)^-^xjSw3USx9w13U0-f-H~tY$Eq5Sn+xs&IRKEPlBr7DC z>|Al(7w>zFb26-;{KU%6p??Prp72KUd!<23ty-K*(1K_*&28MYyk?6UHc@G%1e+df zAcOF@H5=XT?Du)>tzLBW;XKBa;ytIhYlpq~ONYk}Sq>K?JAmzf@mnZ~dxl>DkuQ4V z6GqYr61dVnRf$!5ZR0lLK733uODCIcgb2|L>8NAPh`gP;GwO>vTeSv#wtc}QN&2L# zGxF|>z6%m;XGjm>3ErqmpBwQz868VTY4P?!R(YXTR+^WmzGglAM({cua?0(DOr{BS z{vlc#f8-2^FhmN@;}18Ftj7`e|(Q{RV)b*PZwD9y!Z zU74=0M7G>I4zeGe7pR;JyqpMHz?%%6+Nc3cHu_4$WsM)~;pc)&#@6b?ik#GDZYVtN zYI*LI*b{M^Rj#~X_xo?_=a(r8t&FH%!%pK0wT<0V&u051%JnLqrN<~A)|c3G^gdj)H&5$s{pNMS+w_9&05%iAeiT_K603|y z@u+F=ZLE8ZQT038+0R3VY+Fd~lxvElC+}Y-ni*ANRPQps{0zN)vD3P|@~Ri3e~Qf- zv)J-wF>B}jPhf9+(k`2nKe^xGjrn!l=T`2oVH3P@j&*8hgNik`;4UKjY6fh`5?pboLsW4{hbnpt??#wfZ;+evgDn>P#A4R-a);{2k~sJLu)_bf10s+G5Gj z+IK+gtf#SuXh_D%`QeBEl=|_S`d|vUbef`U&eyIfJer$>ci}eP4BnrAJjy;`Ds~nj zFHzZT`%tFoEAzx+&B(^)ny?uVZeJg(f$ZrPhCR7cH|qv!?N0sueqDFCc8R`%K*XM=nxo z{UN?7WTD(nUJF_G~1Oe4ZHDa^4#Xc+sAJj6js{76KFM$vOaddqyVd{W%urD9zdWAg;LlDvQY{ddf8Mq=$r0l( zZR#xW9G+~vO+M2x_i9ij^yBGUBR7(?dllbZSoZebQV!rsw^VU_K; zcI_9oG&dLQ)ixR0H4eAGVO~_a^+M(C_FG%b^e#=B%_2m`=E_*3XmZzhqgG3gCh=`K zEK_Idikt18#}3+CzG~t3y*3Nm`O4*kme)3`!$F023z5fOz-=;Xvg+t63zq7FOoN(4 z{k({UuB3!_K6rJxIxpAf%0Wz{Kk8W3r}GqJQXM@jOsd%*7iG+oS@`lNA$LB_z0L0+ zzrI3KQ)W=~qs^9Tu1?hiTyy_i8CYM-4$|wdRIz{C3x=Dj&&Fflg=AS|SrtdCi;8BW z&fUCw*gy1s^kQLub*N7Kd*z}vyiDcmC%9>E?(BzK|3r#akRdleWu_DxNY}qB#9c0q z?O>UFx_$WX8;?~k-^P#1=|iTp>zgHOgH1_T!@1wBOmjy|7d%dBYQjwoPgUMCUH66m z{YI;hQ#@=e3`&e)|I_O&j}9%F`#j~J_(xf}RYOC?S?7DV|0aB8E8LFWHIT6uW14aI zgrCT-Z7JkliAtWnMGgActqMDU=EN5VEqTzU+q%rIku%(4C+a^htt)%j8%DgAwe!)J zwv+#}#?j58sov3J`TT|6k8h8~mH>oP^7!)wMM_)ORGjB-BKf^PbBSp`xogg_Y$I z9*0|c?3(olc7`9%S5C0Z{1_(x2|Jx(NR#W3 zbCzf9#Ol}forXc3rH-9VHNfc?Y>RY)(iA+2U0OBz10{iT8k{bv+{pQUN`sVA&*Ev! zmbTiw9?@=~q+hjtTc+kW^IBm+TyA)_AVxS1>Z32-_1OfV_^hY+-7PBjPBD(^^=H-H z&}12_4h1CHN&5}XDMy#HN zkduMuW;YP&3(c!+tDl$G)mfBsr1x&3Tf>6YKKfq3p&X{(J~@zB9okyhV7}dh@~!k= zbb9q`;Dwj=pb1mQ?0L}Z>3QD=&4pvp}C!_iVz+vH-&`v(XU04WZ;seVK8Py|l7xj#?;ZTl;3Us6}IZ zCZJAXxSJB%nil1_J8`GyAJq4hD@xavcl_?9c=uj!#>376)6Tn{h^YQS)w5o6{)xFV z5>WY?@OS>TmiCUuZ?^K+I-s?~NH|7$R<$q|rCs5Pws2S5QtxB=BR}gSHhKQ7Mg>hB znUl|-Zhrmr-Qx<^5s5;U`iW(BSAi?8)+a6{PqluM80J@{bEjhG`Mbb2X`Z4|H_%mh zVZ^fkdq@GU=Izzk%3bdnytW9|YWrKGdVoeI~92P<}n-G**6uMOqshfQf( zbhG0X_J(eQ^ut*`9}R{MM^|d7@9>iF*}AiOWdqBzp*te)c1O2TpP2 z6i+hW&?vU9qj;!DH9g~E7eY45-et1w1l%UBX~_bi-AR<6DP8k>aj#MF)dnl`p}2yg zj$^V&{Y`u4aFYG77UF6ymfPc=?Akd+(Lf8gb3-d1Ln#<1>5i^Mw)5%b$qlA#q~F`( zouf@m---3u)+fqsby0_yj!(x{uehiV1zT05KfUoap!j9ITa!xA$|b$?3w5b=?lOKy zYjhED`V;?cx%#h%hNZ4orT$aCn{YFe^A{`d0R5A1o;4i82AM?J<@zyu=`Ihg@mD~3mzsozl@X;MsUi! z`zSl1D1jQ}{o?0z-j7`5X%LfxKS<;tGY|)%?64XLP5Ws$r_CiizwGUv{`+{_mxJ%5 zc$$@UxYtgjhCiv0VfrdYVDqJ1c9eRB_<`8h!Q9y+E2Df+@fEKd==xfYTfTuW7nZ7Bj;kW8C`C& z{1%t+J}ZW7smHop!>;bKV*mLAbH2%uw18cc6KIKt2){urfo3GEHGPPwCY~g=#;={J z$5|wWv4}J!D5+8Wktl8SnHQGQmain#nIfo%dnc6VOAZDkI`Iy)L+85ZZa!Wj81S;t z;ZMW6^GY8&)vv(J#N*Vhu~-@L6u|^i5m*Y z|J7^S6sd?X0alYXhm;W?>M*KlHT96iwA~n7@ZXl-0--S1GVSiJXZQcx(tw`PeL<3f zdvl1;LFQTvXXHaV4GFjule`M?E*XJU1Zkgm*V6f=67S4*Y&svQuy%PG?!XB+i5iPl zD?_;guW?IOc?EeE%6G`8&nb?J59!|OwU57+Shcf(Pzjxpp(%k{J`OOu=&ByX5oDVg zvX!{{8L^v8lY!2R4Dwhi#1N*WOx7Kt0vfh$p2d?e-++*?bke{8E+($4Erq8Us{+8x z4P)&FyA;f;axGaygl}%)*~un{n(0TStfRZ!YSNNv(_{zl-sZcHyO!K*%;i6?{ZOzX z6h^+yiFAEf_u0y7(BsR5TdwNAfm*5@AOTQ9y3c^sk8Z{%XoNm ze(v=8%dO8elx%;g%9aS4+^+>SD-3a0wO@p_ar)!;0g)w?rrJokAxu!!QbJUY``of> z>e`!Te?MQwDf8hs-|Y7s>&>erKFx>pm>EB$sPp*=z_|F3Pysx>$IJ0WRG84F7QYh$ z6E6uyu_p{J{TasAP-Yhvn-oZu&9T z<@S>cIO4nvWTB5rlLc?Xd5y}t*pWxkBK}2`uYiunxkmBxA>Z|C=xBg(+Vqwdj10F< ztawYW!{F*qOr)#cv6uRto%VP z$;yLz+<~gu=)Cjud&6$!qDQ$tH}u=}p1sX#(zB)0zuDCnWb>~k=jhj*{@Bpg`L9_@-27FKWQU1Wv;3P@O2q%x*1Dz-Kw}v@~;|>%BU?uYoLZ^^9$ocVqC@0F~@kn6a z?R^9gZiuVtyq~|M9WAXw&8*dc9UZ}z^bM||*ULZQ_l@Va7wjC!-&;=1Cf~ml;A^ks zqOfA+_JXbLE%Q2!^&z;@C7B;F$)BvDUU%Azd$Rh8)6@(vkcRKjaLai*scUyP#9QUG z*~<4zrtdFu+*%gfO+p+oK2$=E=f5|~s5$xSgg3CZCK_z}5^}%zFc_?t*fT)kOIplPZ@k!x{@ z;6_GW?Wq#Bgx%|_fQhTtHhy&f}*+ym#X%)Par$}sthVn;bJWsGkcoxhQ zgZY+V4PM5<24GUiDAI?ojBy$x>@UJD5PZf310OXZ@a5&YiC^1~|3FLGa)^vgR*!BD zT$?p}i0!1*!wW11spjiB566U2QJkKd%iQUVXmcaPkS+Z^IW?|GMrv5KO-rx$a#9J| zU&>pdQcZNJ(vk3TF!Di&uA^hG-msp#FGZPV==hk2E2?y<%TZML-hH>(?CDx}2VXWt z)W8}!(iEX&=Xr=xD&Et3Y<@%;H$zuN--4^LQ2TM6gC%nh&C1k3R_MES=R~?HrP}Ex zs5d(bG4Zv`D1Ud&$8vZr*n&Ye!G-Ki=4$yoTefdJU8-wFq`miRt2h*%XW7O*yR z5k`?z4P@l33~QLu#9e0>_l?L1jk)B(b%po1MbK&FQY>cihF}0FLG2%gaYFMsuzkWK z+^;oQqC{s(FjO3TgeTqWr_Oldz#?+psj^?>h<%zHNMQ2`8GzbnJF#v=KthQgkSq`2 z{$WW1GY0+wcRDY+{W)TquDP?Qe~4Xmnc1k^qCi!9^Cg>uXAlSE1g-`5M=> zL-rMz@{Lf0~yA z<33pNJJy-+#$BgjW&A#Zz(viTptz(kVihB@BT#lMF67-|a6`MI%ado=rc7-b-Oy-b zzJm!h0(grYO_IO^e?(N)ww@t287J(F1SEZ#WW<3L>K-#uylV?LETcE1S{MQ~U&5bZ z8*QCq+n8PekT`J*6k_H-?85lW`9okd&A(7o;Wi=hRu>3GL7Fr&r0D~R56btg5+MNs z+ib@>m?O|NxR zG<2FbTlTrRGUEJ7LS7jPP9I4t!svS}agIIBg-h%?UKi*>(Q!=EIC9mxP~Wbi(A(vK z&c9l(HE-xJd=aYZASR;L1$W`_?765&@vFN@c^cM}GsV_qm;JYLkGy@tzPm7N?9*1f z*d$a;7E5JwH^oxZJl*+rASEzS!Hu)MS66r=thLYWESMU^1X+)n=0wN^Z&GK|nbRiQ z02$DL>(s{ALdEPl$kcE2tJYXUV`UWDv-xiqv$P)4cYoF<@Qia4`f+oo2V_#wt=>cH zndRG>F_q7GowW62k}N!orDo9_;kFUo>%bb>8|i1>y624kt9^s>L@zKZ zL;;n+doVovV@PRaTQ>q`#iL?5UJhxiSQpTLlSnD;(x@TA;i=w( zy6Iva=js*0vAmUjOOpJRADh4lw`OLz&IgYeGY1wC{1I9ckuSMw%G2U_)AQeh7?j)d z08c+G>L7;oU{Ep<<-b7&0tdi*6=Jy~Y;2#CzzBvK#cM0&{=JYMpnjdPm>eWGXNXmMv*IvZ9q(peo zgJQ1sO{Ky;Dl=$DPMnrsaD%t&*T!jSde68Y>SuqKJmSFOK6{{{90v+el~C}PWs-H-CvQd>8re`B!NHBB3rJV z;ac)v_O_Ow6zCjcGU(}PR$q~r8zJLj7_NB0&k%Uq$MIzTz&*J$%^pSLZEt`UZ>;iE-m8zYcG{_1QUWWw=YyD=Ydl3(ynm;|^|^`e`-LEKG1 zkZF*~N9aQKENVt$>~kg1g5ER-id>MI310viQs0SzC6X9gR+0mN4N9B(uIj(L}JaHeSD&E;j^kIm3dEU&Zn9e zUE=xp-ECF~@oTFIiFtEqJXMYLiKT})=W%p0f_^%}Kfi|ZJ)pIu~3uS zbuS^N(!t|R;0}ix&-U1=JD+JIvMyJzCI6WdU@wearncw~GBd!d5?et;exT?c5<}I* z$+4((AYpbJ`D2o>3+kl96onFx!wEVQSK3h0_?U5mCN5H7&+Vk!!0eq7<3ru>^Y0lE zV6EHDjWN_bZ%U3)x#vibb{HMRqI9mQaj>_JNBRx*X>4Qdy{Vf)IF4fu00o(It<(Gr z378tt8SFhQq%;>{Y>t--%sO|#yW3eBwY>KJ%Z|6Xl)=|Yj`?z3=oYe^? zD%419x+;0~U%@3mp*EK+R0!k006b5@AE3WB11c9MFNlv1s1c8&mEg|T31-4WV{zWR zvs_ZTaqsU%ngzSXJg1DomFA6H0upIVC4?%lfaBi=NkPQjKbm$4kyBvSB-dxa)`K5o z`@nT8m%V`cLYRP{M^pi?nY)(od*%9rBKPBDN98LBEty+2-n-oyy`BzB zU4&OX4{D|h_3zeRJ?*hfw%nV8+#7^wEq?oCW%?0X$)!kV?;V^;*!$dc#%2Qv^ z@<{x3ZgeRpDHb|O??&DdOXH=vsD7*(G|ko>N-X3t0rv|xO`lV6)*mH&m`6!6peDMM zaVyIortDyu3D{DLwv&&zLW0T!R)()3_(MF(RO___aQ!|)AFMSxnWsfpMZRFFi(gXr z2~iw$S^|N54Z}hyVZMXP(Kyktf!!Z*^q-=VN%8GOF1fD&BCMa!Vsn1C=q?HW<~!81 z5<%n*msbkTF^PT0iSr$EyG3_5^7BlE7a=StqOqb!y;@u)8u7Ock_NGVhzq;r&A$z8 zW9Q3)Pz~da@u+6*_%C|>)&UAIDp+P+z))%&(K!pO)`Lr6PAIOth1<0WbNMZ z;8ak9+VBql@0X1}Gl-WvplDJ%YW3}ZTU2)3BkXHhli-F>^mC(vl9Yv(=!`iv z#0k~z3p+ZKOvSP{Ym=Ubd8IbsM~@uw@!tG&2do5#5uwsIdPM;nFfnh%I&*IzTYX`! z$kvbDQjmgSvnZto+`o>aa&-A=zE4nE$o;6lyufX`ll2cDmv1$2@u0tSI^QhPn3sr2cxq-7&A2SMoR+wdYC`_rTtVWg;{nCI>hUm;z}z z;J9IFszU=K*~LVz4=kUe+YDjmdsKvHIJx$=W7Ke&45o{kb-Mf)@Ai^@!H*d0SiQN?{ z1XloR_()2*(kL7Y4icF`YFglKo&ilM9ggOKB!s+P6;=|#DI<_QXCsH^X(m@KS=WtV z)eHKIEU&dat$20wwr~1Ili;lI#&e)AQ(xis%!jQh@L=wfK=YD{mZR)Pai>|uSsOFy zP#7yei!riVTm@CI@_NX)Q2snbn4$k94WZS;KTF458TX>}bdQ<++gO#18V~B^!Js3? zply>Voq(SLUkC`q^afChsy^juHdlYtU6WRK=2Cs36Owt2%=yMlfpKScY?Mg0)A1V|4wW4Yye=b^Ma&;FQm~>n6WRILWv?sc@IH^Q`qA(Du?- zPRKKs|J3fNpnvjNqUFCE0-z1+)4m9K3#>sIMQDj%2Fd{Szm3pS)Itp%KEol>nGz8Q z7%Izw1+1u8%+(F{>+Jk(&@~pBmUMC;K{wTC1D##6*8YZ~OX2+i^3lH>rPLQ6ox8A% zPG^+guL&<#os}7mE5{i zavgwv5;sImYq33Q0SJcw`mOE<9sED-v3pAL+65=@2d3f@7xT0|F%2j$>hp;v@`0Ce zN%1k)OyT1v+qnFw+<}S8WO}uyXL#tnZXZ&FuJ4f41CKs|_0vCd4&9ABZT3Lh;B?_a zeS=bY$h`|T*7xd73z1>|#{CntZ?IVE0YrTYDK&tk9H>HxK3p4$%TN1jZFNfc!?-z0jFw&fI%S)WTOK zy?-bu<^b7r$1euVMX-((VPdIcx&yY{2b!AW#hgA!Ihxa)&4DMNZOtT4yROP z-Wm9Qv03?wxn8i=>Uw$&ZlcbtVFwD!l^5%=1K*X!=i{-uS)QgT1g=BtU}%Z#*}T+4YT9i8*@Ye8s9Ufp9r`o6(l z&*<*BPkwnY>*U%QXKvc<`aoab-r7;^$v4MdjBU+YxT!#cNd0pajA~JqmHjI_}_7kRdv%mB@v+3Lier)Le-ZuOegsMzR%Q6pV zh0Hu#YI_mM+E+aI8eNLy#&l-jPqIzGrK@@MC%F%skKRSFe2?Esa)8p=Fox-QQR!EL zuF!{zxF7S-2V`GRv#$`tz<^|*(Q2>1MH7~14U_N8>OH|-?RdCEhOV8qzFv4O=#c<& zIZ%`NHgch9x3XKFu3B2otVdnV#fMK;9Pc&^J5qYHO0K4aIbOY*!!*gv`e%vtt@g&P zfmdHU|qC7iomth%n&y4EQE8|g}=d>(sH;dadRuFd-A&sj%6?o90e$8VC)5%27L zv>eZr?Zp}_ZDJ~z%VLQvrdwi!*WillyK(yd!1w-h$9L*>J?-G_0CZQ3e7;eA{Ld@X zvX2A6BG;P!aT}b1N1lq`w?A+3yc&ftSf1VkZ_&bbKIuT8lW6WT+ezo~xnkFl!qzh+$W3CdDX_Nh2~ckj*M^M4Vx?D}_wpDKC)H{}VOxwA7+_5gD) zLPv<8P$wx$_&}~9-%EU)Yg}1-N`lf9emnAd2_Utjcj8Ls#$HX+#XEUAq-rQ}K-Ooe zxCtA^mX@J)f6axY1Q9<7$!rZ>kI8y7OsT(r=?x=tN0#E=OsqyZ$?U1&?(I*X96R0d za{u77EUVwnvfY|jq3=To?Y6(qc@~!q4_!^%yQs0UV3hD$yvvu{?bY4``GQ$y>6jtS zK8!<5A<2HF?1C0uQw(%TwZNe_KdcT4bLuTR?&UE`F#=y>a49O2?N^*d#8MT` zPN^!bDzMjfh))MQ0o5K%RjlwutdaZn_d8%BupKS@V-kP+FQ+q);rEd7@bi-Q2s0KX zVX1H_u;#t{t=o_w4-GH%t{trcNwNtg9G6K$l4DM!QlP^0*9L})`TABId3A*hHT8S1 zTa?xNA{O$bU6{@jSBTds(ztOqz`t*OL9m>PeQ6ej9w=9TIuYk=?D;`E?=kP*`o-A( zRf8Dy^ov^#9JJq}D!d1r)8xpUroj<;Ts)oHLCq6tN6n8&V^oP5KZqdjL7#a6cRT<@ z0_SZyJ?AmA+Y6oj*;-59f76mGXPl}4!>wpDqh*;OJ5_mWj6KaSbsn#8%SF6)8js?% zJsn?r)Y{sSA*-%9#RI;zUD|mQ=XW0q3og1IdiZadbb`!l)<_nq4L!unB<;Tha&58+ zzX|=oGv5iS>evOa*I>U zvU`m5HKKY?ZPu+=N0V9D{maFE$GSSk*G%M>SNJudQC{J4tNUgQZO?0y)=k zr)plx7#%X9lQe)7%qDoS+^m2T_5zz(fZq#of7<4yH!gqwBE>ODLo2j7!`@mOXY%4% z|4y_S@U}V+q~x3bD;>G$u(}TyU-7#_hq)?2fZ-{{;0WI$RI1X&4(;*RdiW z6Dy0yz4HaS0Oz(BoWiShC-+fh0cFzN0m6Vzvs}HaGeC`_l)hnrscuB0$74Sn9yb?x z_woEpG8%*q3$y4MT>RO|AJ5j6&QVKWZGvhT@vy=vdZGD!xe4eT;p79Ls3kqJig zuxX*peF2O$>)Jjd^Tls`roC=O6>-1T=6}(39zacP;kWmS6$GR=Au3I}1w;YERRjct zNDG~)NR1E`kO(nRl-{n=6oe?fg@_W68X*J(L^^1Yk|3fKNdUtULhjr5|7PC2c{6Xu zj5Elfo}BEx&-&K-txEs!x2P}Y?+%<^$vyu3vcJjPz3;7R+c|)e*FlUY$WQ|iFmp6Z zG_h3@n&wbv$PbspV{G05KolH2bO@lJ;F2G$0>i(~gGy=svA}$VIw*IRDCtHMjpzA- z*&Y6Q;S^eizlS{@T}#sYwSFuI~j7;0TtE=a&^5g(#u98l#wR8;yZ!my_&A zbZa4`t2g&lgt5U}ldOT)SevQ{HCW#G+AN(Q3Bo+^{q^q#ab8bamJ5d~gl- zVjs~M$?>=9eQ48CH^H?`?6eRheY5ew4Lm*S(UcPH$lL@)Fpx$>$8iSg0oBJA@m|!( zg8@?Z#7>eBqGtFSMTKFf4+96T_KP_kkx|CI=u*RkurPHkskw%KUhiP*B{w$1-b5@r zvkh6qHjV7|jcG+(C<$=>S03ocO1H{G4}C%IfIz-9yV$V32{b&Qqx zee3dQPQUXzDiOhcKlJa8mq$XmNtbj_o1g;f6MZBfiNbQ_yKB1qZJDlD?-aSrr7isg z3-KZ+B%5P24Yni_Uzx%4f|}4bb#SHy0gQV?&AVsrpRK;uYGfE&i_DqR-#$ks1?&D+ zi2`!N*oyW|lq=_Saj9z{!z+6sc;fdwZxe61{!;XtC|`(B0#ESa7+rF^n&#L#9QH>l z`zY%RFN&FGe>CmQ2eskgU(y#0wXgKazjMn&{Rt*7QTamVSHnoBSf}4A$R;-B7`x9xksy$ARy(Z(5v$b{8VBek9 z2|LuasL8cZMsGH%8+X3+X76r~=iXSD?}zk8ry8k}l5guc{$yu&RBJ!-Pc1maY#)XW z79<|q@&CTaHTYBf!PDR=Tr?WDn?3n`pf-#hn^}S_=oBdLVFXi3p8NX9JP!U%y4-dT zpYYAIi#$d5d%ZALUJ8(jh``&GpSwAuQs4Z}Dxq>_Pd59VmLQoFwA{24Ps+gtA}j5V zJ8KPO_zJ##$&`P0ugN;ab_%PS^X*O}@J^ z^2A0(yi4D<&h>_s&&@p(DmN7s&^t>H{6*U-a{T-umwJoRHze!o`celeeJko6Yj^d+ z$bkH`>bPflIrno2p;Rx?zXw7Nzh=)(y*hCBkClNl^9hnGe$@fsHpEu#N45q>j20u0n&(Hz%=v^v>JoeDjrI?_S$3VWi38 zRO91PS?gtbsU#!u@>Z&Bxm|0p`59B+_|9ugRlPsh779GzijYiNOJ*SttK|xP1YfUy`{xhs8dHsE!FIj*eAcTa*6lsWnWr`D9LTRV42hDU=|dk$7@p z(Cy=ui{CWNRMt#1GOryDkn%|ii+NJ}+r}lXGheCUA+O%Zt};0M(2ba<42F1c(OsHJ z(C}AHnLwX_jyoY4@l4>_+QmHX*lKP#!z1oq|LMQYqM#U)0^qk|qs zJ@f;v%Jv;C?&%HoDL2`?nDZ;GG(mZU?~!NeGN>JvVj!-e-qb=(v#q~q$nsrJgS25C zUdA18UG_L_Qj{*ed>f3+_CN)jw#L?DMQGboUE^aPzAN56gYj0lA1QqBM?Kfx%j0}# z@ZR`OePfLkf8&KAui3q97hsqagz~M_PV*&3dBQBW>*h9DR{9`WA9`2Wqg>VUN!CQ~ zr6OO6-G4v%aQeeK6{F*=2n1({&H`QF%hdtyXKb)H1B-W*`$k9-(jk+V4M2|?5*5`DAukY z%~e<{z22uXim{I53#M+5oxabSc2(T>iFua>YilS`OVzx0_sF&5ScZtMltxdc<~#TB zv%Xsm){lRdJBAcrh9Bt_azK1pv)sf3k--_ON6*=KObx(D1?K2*i;EyDz9@}_PEv52 z50)}`2iHPeiy&YmgAJ;mCA^$A3oZYY;ETS^y`-xv?XhTYxcHTLAiU-k?$j9T`XcAT zTF2>}ljlh76BFdP@TB|lzgXzc<{zG(na^@txt{u0Xer}Dw&R5XFZW)(HS?{b;NjdH zuY+&*)}?R^qpNDEk~nqfdGX(HBc9^;OZJjHhK>^a;ci!?-+#b{)jKVUW>6oIk$TdL z(wlhF%ZYf#JTfNSR-r>WKF5sT<^_IUAMEY-hfGv-PTWJ&t3)}&RGtK&A0Pm3r2>bq z9cWf$vxK9rP-1EPgL-ld-Z>7ulB3$}QcT~jWbHTc0uf;etb%hbWys{5UXo6=?(gB> za2Tgv<{H*TAmaw^oFnW&>4`p#E(tTSY{$Zc;^f{_&3>@`scx}HlYbb=arFce%M)m4 zI$brzXra~=Uo(k6>hXv6wtt?|?wUV4b|0~84M){_@p`mucHTqCW$*JF&o0~P?fxxj z;N#`;;nuSy9h1{)CvSJUU>|2{!Y72^f)(WkbOA_3gqeI`%(LQ{A`zksQwAJUnrR$C zL|>o~N@WETx@vfCaFvmD>auaL&U(}t5?&Ff!J#HzYaI!h8Tv(fI)T`_p>&vdd58l0 zMq^@t@gxNXsCCqXI0>kQV>ZKWA?&(a&zNqXhJo%lE;%Y#=+eN%OXl>F&{L#ST z09KBFioBa(nQq7S_!a@gx~M_Ga&{=E^pObx4elZ$Yy3m3VL%^oAix69c$pG?{x=8 zN!oU_89F-J49sl%R${7u_cC97!A8#`YeuWq|J^ZkT=wfCpeBAg(=oTGnAA~j0$1#G zHBpqWDL!=C!$LR1%WXKrU$fjss^2@j!b}XAo|M*c{p3SA7drQerAYFo^uxt*@M zPS(Ocv-RNZI>>Xtq#FIZqZ5(XINw>{@Vc3h4CWpH4^EKGU$Gus#u*n+8g>XxdK07# zKIJmEv~&d9Lo1)(T#vHxIyqVRrap1kwl_zQcM!oHU}HK_pQ$s3iOs03a{-`nIRqw( za~bC=x^~YJ6@rZX9~6Pk(=KzUbk<9Vm0weUJ2|RNGQh6i4^dRG$z?7P#cCBTJEXJY zbG}BZe=+E7!3cp*-%e@}L6$!>PI!ZfA7#WdDAxZ`2A06iz8~(?(Zn@bCV_*qwc=h3M zuYf?RpozJF2R6-xO^R=A8N4o^Q2(yAVYrpaM)3~r&y#);!=yE6PfyG>y;4PXqvgUwI`vnV z`lVla=flKMjA91^%*S~tkA)uGC(kkG?6*yk27_9}XPc$V&$q6kQ)a)90YvdM1L2BE zQJu*QOR0!}O2gh0jh)VVh`FVH2Y_x%X{hWrAardC^nTOW%}k_a#2ve^xMI8 zTbquY{7n32MvgEk>j`WBdfIr44}bsM4B<;9f1mJHIMmOA#Q|eSe+p4XA28bu-{%n9 z`Wc`+dY(273QT#YMp{+y-T8to^*}RuGj5U8>8_TvH{mE4q}ifr5~gvw%j8myr%cZA zH{+`BMjEuff3XlR5y^v9jFA&MW;7gPVV~F9&pt{KluZq&ywiB{d!nsfn8Yo+{8Hxw zZ}sVp^iSk54SU*^&e3vB{&^GXyAW>7Q(<@3Xb&&&4?#YhD3<7hT1AJb_~zUMiXyDN z^~g}|)=&Sq4M(d`j8?DAudi=zqXtEJGRFM<{8m$Nj4214>NoXE8e2xZGi<*Gjtut- zJ0d;6AUN88jma(l{Mg@M zzhQs3ow!4}?4;wP`J800{*TK7UGUQYYaMKIpGlB~N@;lG*CYO8+Boz}Y#efs=iys9 zd2c#!RL8`!)N2AQ%}D8DgqUpoz=(gxz%eJ0Yp4i+j?XMWucoEBF#Jk6{j>h`{uKGF zBuVb(=~o;dmSuA5(doeBUiVA`<1ROGV&7IFu1R%$S>{2@Hxg7=kE}^G7foym0p{wy zFMzpveLKfQ50n>*eKs35lXdMz>g1lZqPwyF6`Ef+j z*!=rQ#QvW---Z@*zCK+TbH6OJYE>1Ky0M!g^w#i4#4_+9?ZW-XDknbT>p;ta92nOR zcw*#0HR2(-7}Q&h?X2&P_aPHbEy?rf6xIA0x0r18}n-wor=v3oB=G1o$H%B%)T9@_eK-QY@i*}ZBj zLCK)|=)Lk{0HivkdA!mhz4A=wA)ty#`hLpR_U+bZ<>a(z*Bj;qy>`9nRB3c8)5{~{ zC$g;kf&Fuzi%YSMG|67DTd2u*@*Ka zI4zKxNrqO~=`{I{w}?tG!B3;F#KU(Egj@YOx*DQ35=Ib&;;e^Pit}NUwyJ&2WNlQ_ zoo@R5BoH3jzkdsj^VlZ0>fq@)hL4){m@9xovGaPmJ=DS?%3w>*=`k@6O$-evG2BNi zk|Vti>0UfK_Jp-<>@sA45OVvmsaDLgMOahsTifm#>%GL;wQ0FHRRi9|RkrEUDENKP zb|cRp5S4)=+P||uDTlDEFk_3DnO{b+k!#GA&VUuZ+yYA6^hW<~?+Km(^aWjLKC2^P z{;1;#&YoRDVI~l1*>}f>p=zN%SvU04uR*S}r*I`1>~(SseXQ&H$p!c)kxVOVS;muC z>E;OshsW1U(RMm(J(=^iceXk|Uw(V4{D3)vn{1#hb>P1Dy{${CCMt(Gl2_C1PTol@ zJ*(PN;eHA?X1R8Xy)v8DNq!91Y~@V16Ov()co}Hg$s==w=L=#Idy`D0SR{}tH*`t5 z&w>dDG5pAP>m#&7bj|7CqVIKQU0DSWDTF{2<2cW)7UJSfacEOTZSe&ySjt{jX=)lh z_smLI?(!b4F(Q6?Vw(NTqj)N=0*LrSW>rVO1{$Ss^NvLsH^txB)`vX6g*&!g)2fOy z0moEDL>KDKe7mSTaCd*p*M=0f;J6@&890Ms2+b-z2>TI^HlE%IiSos^9eN_D!@mwU zdME<-rP8Ysb4|l|9sR3TN>*DS#MO3$il#D#7P&10I0+1U<$bHkb|SKUf;CM`OY&A5 zZHBQ(W*tV!rsDF`?fK%3wd_v~GaIAy>GtgiyBuKS;cKxYVy@-?yW?UrK`cd@wdFiq zpXK}1AfZy*Zg<6rm_xRfOVc_=6r}u#7fXMB^t^TQuye{-*{?rrBRlt}5gTbwo0TAG zIMaqb7k+CDZPGG)!h4bW)W~%E^6o%Yzg%dx4Mo8$Te3k;LT>`DxYyi&v&O(pG3 zR9fXuPEGy#NpU>)QG4+6ih`7BApQ%1Z9@RiM0Lo99XC6jV&VoQ`S~`}ln65`HrNQh zEV5j9+Wi8h@kPUW;ZYcosYUXuAJXI5CdZkG5iu$-1hLBg5AcJI_jw=_iEnTtPySGdnxVeO}HBg}!h? zXDx~g=;vBf%0L|N$*f*{J>#;BH-d3(7?2^V79~EL-{wXU;Kpu8t#I);I!5F4A4REw zvO$N(qnbfZv)y*qVh*K39#6$7OohN+>CD=iN0rWHQUYr4DsyB z!)7avhck5?e++sAtdO#;N3s4MP&#QLJEAeRvfdloPGEIHa0aABxY9c%1zUaFR|}i@>4(umTb1|l zp#{~&n$8Z+fx~5)OBEMR**rhf(__Wpgy=N}pOZUY?vNXjXEhu$ek-G3TFW8jt9wgP zMz&wNdr=hTv1uTIVa(h}ZVu$g0MOgs&gosa^U#xfLf}u6IigN|H0E90xivU z4YLSYH1Ug(S5{mx$jm^w9odX5N;$#rM`K7{5wOz*w-A>iy@|f16Zh_By*7h|azwe= z+l72Rtj|R@f}X|@n8kDeZ5!)LnxN&2fxptD3va;gier45Bb|!ReQgWrJ7DgkitZ?@;ObK&wkik>$iiQi8`eFiOH1E1I3QDMt!^f8DW>*s!r+1R?9c2WU%!=O83x|cf1w?kmz|Y}A+3F8LtzP|maLR*gV-1OWGpvDs zX-zGhu;U`j#>tWyXy?Qc5D5|Ol|Mz&5yg1F@cdnRT1$t%%u6VjnLD6HkLMbYQgemQJs`%?7 zi&4)aa4&i9&d!>CFelt5u+2<&|6sVpw2JA*1?W^2vHfFk=0*wC)dGv4KPMQh1X{$C zzoHVZOrkd!ncdMRv+C%)Bv7b%G*%uS;GpsGtQ^IX;<6u`y1B(arS~z?5^yM1 zUnnhqA3H0z{tCx3K|jgu>Qj^#xu1}lZ}fT_U_H>Nzi?_#PI+pD%K2*CMvd;K1j#q(fUtuv0BS*(5IB9 zr7?ZXL`3I4-PsX>KQ-FkQ_G+}<|?~1jT#7(s@i=ZaWgHE#PetGrOBVJIY8iS75~J` zaDJr)8(C+;kBtS}>-ljoV$@|46Zv%3V*3?--{O$PCwE#W^{ri#YVs>PTv>?85zbb7 z_LxVfScuwvM9(K~-Mda2cRU7u3Ua(ms11t9_V)UjTvA@rEOSfuS>38p=fj95(&&de zznrf%CoUwW*3`Bmguy|L7FY{gCWtM%97U7N0r_dsW-+v!;qh_fCgTNC%+;$W`V&LQ z(xZV9pgZ4~-*@xXD(P3rjz83PSUtBKB&GpXXJZ-79=C%oPic)V;S8C2Dezq!gZ>o! zK6L((kza+c2Wt_MUl$mLaX1flsTW6>H}K`h7=!zqCA!zP%+oD^%C7Mp57*JV+_J5W zba4*z4GTYzT6FTw>)mdy;&QGB&+m%fcbG+e0kUU^4!vDLDB)%=whQgH`79!ysGu(g zfQU`Z$-3|3AowcmV;%iz(K)McS9YUmoXNS{w{Mq2>2ya+#kjcjsHi;m@86FdokTT( zN2hg^I21awLCX{Bl&P0bO9&$i2HtfiEi<0|s`iUMSkoOUAwKXanD<2cK*agO0cpnq z1adeVor@{Toi)6pklRd(8Ed8UtbUZ9Sdh0|&FB*E1QWzH~Hfg}Tq|7Go-%xeOAx$8y?rl<7IXlj9RzEOOj+b{z#>wNQ5_`|T)*YtT!k;lsg0q=j2}td9uH2p-1CRt5VF?Z3&>Xe#8N;sW zxX8GrHBLK!3QZLLInLOwPvXn+Y$&w>v&}6){8JJ(H8U!wJPnAMieaHdAQ$>+D-{<* zqobcazj#k>(z_D*@_hvpp4f`**i!X){Vy?;H~ogsi@r?tDv^V6Iv3wewB7bG3H5j= zhzP$OeCSF)M#A$lF&Y%+jwgdnBpD^wx)Ub|UA9c*pTeS9`44B8-Dhc!QIk0R0qx+G z`z<&v%zIwu$c3;quPF@#sh>u!)Knns3#NQKFRLwiv0wV__V42%X4z6UA5 z7HdeK5*Z1(D=L}x7ld+QZ?vPtzj#=kel@eWvditK1j8dhlo?gY7WEu&mBUZSa8E6` zr*%z7x9)#*OWlqwv$V`Y9W2RIX}D37-3dy@2DO!rXe8@w^3Ji-J$HW%%k{~Coq*a2 z6BFVar>>n{F(U6q*}5zIrFZ1e6ad_T4Jko3tQBz_-f580Qcw;$TDiM~YoWv~*1I;b7I zq}}XQOuKC&6z+4s7$VT+5fl3BAf8kTFTASTI@W{>fj{6Y*Z(B0qW|=RdJPmP4~5ks zmVUAcTx@fC=aeyI!$CQ6h>1A+mqcU!!4)A}<|N_#P_1GFvM%;WFbSI&e7(yV4$IRi z_R_lyDlUYyq+U~y{J0l=ibW^BUQ&H`>8RD5z)q{IHK^QC8EvX0{DeBst(fef`Y zjvh-bomuJV!|c=Rg6j;|3aRCzOWqD@hl8cinu5;FO=?Pdgz=FSlbdg9%(ocr7SgtgPRM(oY;@94QO`Q*NI6NeAlwre^h2 zO*#KguE>3MP@qxs#kEvC(lJ`~_3ISAiif-Q{#$Azb30ERN-ZGjd)2knzVV@XeJ+;t8?Qyu6&>+;M%cgs)hoADK>y}sl93QY=3}$XkUZ47N zxvJQG*0vt|E%B%WQY`6R)~!Py1bW5q87rqyV;tTl4SmY}es?-Ycbu~QonbY#6$WHU zhmgERI}JURSwfp3#{P}>Jtc#87u3=}vMVm#J@7bZ+_51Icbm_-`}isHfXP^Vb6JmD z5g5+e?wmKn9P|p*T+RKf0wLA>=EBU^iKN$V*Bk0BkVsG5N1C>wezb)~s9^8xJKw3^ zK$*t}-n@1etJ1lDC%#l;HRihd`Do_s2L;KP8+W=iAvvqX+!9K>FPq<^up(zsKKR$Z)a!D`cB z*-m+$RE4DXqfavwJ(bkzCEi95RZ5b-27>NhhHjO>JoVBM1tEMq;dEiHZNAT8g z58?Rv?*_F!9IH8_Hi17 z(rBB%>j!I+8*+1ku5DI+)+L?ZJJETkylBp0)M>$qYIrh(+;mRajiZ=VJ`*hcwfB(A zSk7gn`1@5$m3oB1Sent~MEsQJg}$Po6JL`%#vI%0*33id?^>B=I!t`Mx9M98cb)V( z*Ac8qOEwFC6NUZu>^}FD>Y7DLbY*k(`J1Z2+3fEq+NqDP?_Ga!{MpCOYJYk0+qY;4 z8M6bWu{6dBw5Zk4T(MlkC$SAhtJM;mrP#de*LeU@H+|~NcGWzy8>vz5QfyruG(d7+ z4IIzuFtBg4I2mZLuWrC)odX00)DA+39(06COZ)8OxLww|7vD{gqXH{7L){a~RNYvH zu_{6Ieg{;}oV0X@YFKVZ2YCpk+_E(BAZ`w#6J49s-U_Q3Z+4chnMo1Dgc&O;dkuwG z@UJcYF63HoR}(@^Kc{oAah&Jsm+G0Q6x8d|E|}~@&_*4Mf?Dbau{GiwY64#+P)3hA zGPNWM8;B^6Kwu7ZwmVxa~mq$e7_K^-I`_tpXLr4W!YzOmR zrDI{A`yux2G)gg2O6A80sn^;*&6rUn|K0P8#ZlQvD8~I{mV#I`Ij&=Ms2n*`!Zgr` zGRl~@)1(-Aj$Z%9YV8=FBa9+CsERmoK-e<}f_ANvCP%ajw$B46#zri4Z#lSr!9_sN ztK4uW*<&qCH1%`R%tkCuY8G*D3cIjjoz^}CtwxdLmeyAedU>Ey{5|Rhy--e1u3|o{ zfUff8@-0IguwqBAmK1)s}+!Wo3Glg2zTCSDh^qaEjrnTd7@S|8g zj|L8bJb7keb?&o?gq_Hppp;9@JnK928Gro9 zYJ=MmczUbQb~@o|+UG95(0Mk&4P29Wd>26uuFebE&Td8&U=_?EUyhA!utJB?{kV2L z2Fe@)XA{c~{4t=HL?ECPjxjxwnD|QvXU+zS%5%;WwigYu7@PGNsW$O1QufCW!)mEZ z+axf;-&0R#t}p~uqE9?s2tNyv(0-Q`^0@-Cf~y;K=>I+y*lt78!BPbWz5^h%&p?T_e2E6F$w zrd#s~e{y|ltt>akZkSyDz)Cxb>cjKVz8w_lC)b&*QzJa{q3z6vk@{q zqeD;mYw)w+|8Gb25q(5pd&3@q=ampJsn&rK*v8=Dg>AQG`enisqO)n8N-(H=W+hhX z%qTSg6;C**?avXZoDu35Cp`w`k3Sku*GRgx4C<#Tx-K%Rkgc$&+`-jxATzswei$&4 zx}G+%w;jOcfFio<%-hE80^ErT-U;?}I|fomEKRe>2SFQ>XiT$Z@uD{jER7uX4!G?0 zD-*+4I3-T$!zB~@YHXo(ZfCwMl=}*@xf1bN7>+nlT+5-kZG(LLOra^;HVsm{QBSQaZ9{!g?|{9|eozYC z<`Cb*WDHXL&vRDdYlRhPK&6nWgyv_`qSsUOu8iZ4W1IEb(ZT-hjEKiNx>dTE=4%xJ zjIMZ|DLK$(GZbIT|6*Df*M|6<&KKDQW@poBks01fPy`1M2FS%YSt{ovH^L|-jn?PW zL8y(Ro67uXRT-TbUM7dj>i6c7cbhSjwiZ3yOy4YYkr_kGPG=<^pLFv>s(e~e4$Hz22v@{d1+zIuBb+&_K3Q5ve%_G zyZgk6ksnOu#8-Pwa0_#~wNpw}$D%IRrC8%KZ!CVwoiFW`)fCJqYAJTp#AF@hX9DjS zNM!?#*v6J5{xkd_d%lwj9iiuqFH0~}T$pLGe1OO^BKZBg0~956P0QkRSm*TI+59vX zApw4b-L<@**&;Nvkzyixjg=Bgmv@@dXLof>inhBymbo36t)x5_?r~qhVGYIb0Ye8O zrHUC1a7QX<3IZ?@YWxU7Ad6v%hq~ zl!5$-;aRX2Ck%aSZ$wt;{JZ0+<}zFfX9xf!p`G%UwEh^Sot)B+6&Mt^Wws^oep=K- zry4ulDL>D(%Z{oJB7RYlV^5|QlY&rR8g+Ba7B=HPSCwulWtUDZ$iTgdtJW-kIx?#a zM6BP^`+8C?`$lG}+QppdzJBu049ry9Ct$Ex-QMobix=s3);Y<_^Zlk|w@(?zU(Zz@ z(2)8J7ewXOGDj zfkMGexO+RFzaMuTbhJAM;!mo zs?)U;kyBh2A`$h5w8X%)+rT8unM5gI7;Vj+=@%50Tx>nTE{*YH)AL)Wj0Ue$o3h(- z<`(|lp~Y8WPscYauyhFRN_qnZWI^a{d*fIolPZZtb>w()<5+saP?A|I(PnI2m~e6Q zFlD6nKH74G6cV=VVlxsXRopht-U3XUct}%p;yYeictj zcPO-ou{4x9V?mKW?)X?e#J69@Z&uwgKB(`y^JPUDhpJOSCy3`0DUeoJdCKimhg$$C{Z1E+F&$gA-gj5nveR3ZbGI@7 zNbQ>%-u8Ar0V5hs6tC@v&aAKysipy<4;bnRrU9rgD`sqJTNI>Iu$}u7`dx)p=VAe{ zLjE(_bYClAfPr}y8P;8eEm_9tRP-|;o*N4z(OnJEY;!idE{=q6AwV}nH=^FTWE|;j8XL*+Sb2zx?gwyC(Rfn}mCl=1xJ)@#m)Fxk~c475XMT$G+ zweu~Lg+ret|6Fqq*DlmJ+oVx(H<}OplYy`laH9DQT3QW-xH}=mLLl1ulW;fL{>y>0 zqGDJobI4>0#)QPkSMmP=y-&CpR$iz)) ze2i>;5n`Ixs5M+mjV8!Z`eRyEpt%B^GL%<^lVpcb_Qvv1oJTfnnM8_cOsf<}YJ{=7 zrS2gM5igx{c}im7cV%vx6xMs6ev6|Er8Ng59w25Z0Iw<4>1uk^?$G-xKCP~i{#~}p zYvD}$=9zD&_n)IPpCPL2cM>l4^?J2sV0_zPRfoQ@~+jPKnq`*}BK zJ1c>;t!_C|UF$)zu^e4r40aF-)b?*3`mJ!O6huFsvDV~&J!U#+hRw;fTXSBh6wB!@ zSk;c__^T8ivueMcp(+z-Vby8H4J;b|ecoKsS^WQ~GA^%pCm}OnDMTe$K7tE_wIPm! z=@j;d7l44K?+jTS+UO`nPy)ujLjm4W!v z?5vk#oBaCQvzUFflE4iIY`TTV*V6b`cAn{E3yE5k%EE<{wK>Tst*3W0a+1SFYqP4x z^tJ3v1`3h4n>+_g&suO?o;KQgYq?Y>xx8BQm0E_e!RWTulBWyWPZwc`w5P!t~-N7RNyW<~q9daB*PgVvgRFi;MMl9Z7rS-}dH`JO1C7%jN+>n*v@bZD*j8BKuvl z(MvWe_8NOJ$Zxj0Gz?eJMY zN4K!T`k^n;D*q?jExJ2AJiv3$b+?Ah*Ysyky8TpYc$FQS=}xQeR$J-$*BtEMjD^iU zN>*GB@2MC;+N$^6&9$%p30G{_y+^TVfy{RAYidz;a4olW=SGCR{52fJ(0@VRI^pL2 zJ*EIlv=}ux%kqL*b425Q_X?5p+y^Lq@L}X2<^D;oOnnO=ub<>ABx!9ayi;U0)HX$X z++*EMb)A$gA0)|eOxP=^b8tiRU47WJrklde;SM}BI4KYs`?L+wDEf(gJ0K7WWSA@h=P9JsiXCN zo{!+fO1I1VzowGbTqd$$HG7w~S)&;^*HK&qXTmc;y=jy}Nb^3<5$#A3;RMgz`}JFy zO~o>5oXu7GXizwla6=1#g)zyK96%PUk8@3r{7~@;rpoZ?3VJOg@)dzm#DE}yLc_(`DdcDhY`+(_eU>x=A+cl+?(`4J-9 z3fv6Uj(h3UiFs}@h+6!yn;;2T!uLW}iX$q)SfUGr0BIHv#_W-YRP1L(l7e~<{Kqyh zGhWAhp>pkp`r_KiagBGA2&eiCz|k1f9^|b$^6OWo!^V}?QI*6~YQ<%{P|G?NX9`+J zJ_wh6^*SSrf(OA8(k^g|v(g@zNO4NL7}Vvzfa-LabIAL^0JyQVf^|*7 zR7J2E5g|Dou!%_kWoNEGK}^X+qwRgZl>sHt>!y z=NkXrLHwA=Mx{`9;zj?frA6(<-C&D6nr#soT1fK^zEbw4>ZiJ9_@U{H2~L&{#h{c6WU2X%#m+3xp*{Pay$8ZM}C1X zi%(l~kZ(&CPg4(oMshQHoqN}VYRtNhT&o(u$I45$02Y`8@7%z8uriYKY;SkICb)fr zp(Lw7iJ6V%$t_Qu_TW9~RymGR6Y%QZO)BXWQI76)f@m`+3GCdfluJ(hK~8?5hO@%l z-ER2#dteEy;ut1>r2+2c@9i?aIuz-cL=_D%R5}2i_lXjP-;j|Z3a+C>7EZMt>#^Fk z5qkcpw3W{j#SDHSn!vVO`69SQ%l1Az&KJg-vb>h=xpLL|zyf(6&e1Z?tb2C~ zJ3osg&$dJ?`?>h+E?m%cKdBtoYg8E7Bxeh$(xvDNAIVN)bZV zvCpj%L#U9!m?``2j!?whvhUf;HZhhYgpjd}nW<#UOfg+GWA5kdd5_=mzJI*Wa~w?_ zjK<7$o!5DNzTfX>0j73|B<~Kf!eua%Cj)1VHPs(;*aUVY3zmf6hD+JN8%2!KKP$Cw?9{@hEv0 z_v@c-;Yu%ucIoIp2h&2ajdyk-_Ei_1JCJ&6_3%0QF!*b;fz8975Q^TG*4%aR%joJC zhLg;RAGdvS=<=)hMNkEBX<3t9oE-LAUjn7%MY`SIpeopF}^qviHdO6RAhS_saa6zBFTA>Sugna?5-x z&KKDbdg^-S`}w*fRD!R`(W=q-vnYq;aQXC$?-R2>4{WE__d|~!_TO?Beq!4@?cj7k zJZ|LfqkEO2Nj=vBvn|vw=neIDxf{zKsd%iQZ;N~DCx}m>l^F=ej4}8>%&%Ur_)wIP z{d}hYa}RJ6%evl-K6@6V;aWE|_=LTnvQwwM5Z0HMX(hjSV(NA?wsz((#QLvW&Wf#Z zL*MhoGUv~iVIQDclP?aKKOMvrEzD`_7ku{!cbf30lterIBOj)cee# z=Wp*PU^MD#2UJe|*Lo-0tu9YjTBm9}%bc(Z1Z^s+{cmxhY&3aB&tj~cQN z1u_$qyc%7KarV-zk8=sHzr8WV&L>YKnj)cI+>|L1sF0()+e>$LW4L|b8}o8f7)+P0 z4s(B*qa5NklbttPA{Kw%Qbjh{Uuk#3Y&QIjX5g8DvB28ncgdoF#2e~+Gl8QY?yZ|Y zZ1SZuldmX!@1=Cb>%C_J4(;BHlvT5cSEqIg{g&XFB)`$(e{#sgj%}e;YI|Wo@0sB% z8b7NuKl%PMB`K1R-80&VhPBUd_Ls-OSJloqpb!RrcfNEKJ1U>E3w+D|=`G<~&S&c6 zKJ7vf)$y0QOA!2&X|#pc>gpV)r%C!w&(2+In_->FRA!`K%D431E1~!@dA9g+QXnPE zENk=ylf9knb~m*0YulrO#Jv$u(&(_3A*G1w{l4eJ<QBa=yK`PI+UI(!z_vD{^{Qa;i(=U>qu1&aYh9leO!2Rl_*tKJPihY)*Qh(?>N~1@ z==_y$%Z=%ibR@Kt+TBULp&#O9ZEN1%Jnt@?b+66Pul=MxNX_=t?VOR70FPc$7xkl-6(q<~;vE#`9Q_lC-mG0+2J}y}PzGz5?as_dmbVPc z=pl%6&4A{%7Rq2|^|1!;I9OFvpfy^2h8NAv`(0Q!utzfTj;Jl0_pIa{tY)L=8C(&6 znoknwEM_1Z2G@m_YL)0Spq=4sGuy__oHjn|Z)^lA`RS+3EoU2g5Cw%Er}h*oP8tS< zGS0Hjf)4yKoPy>~TTh-sOUt*XwO!p6|LwXl={;pEo}|e&^)^#0PGCREHl)Obqe=sB zt6^w&tBw`8wwHQ_c(in2bZ(8V$4Hy)MxCxj&%V_fRvAx|Bpy~66O9cfuWwhI>NsvS zc37{#OM&SnJf_g_Ps@L4p8BzPDXectJ%j+~{y_^5an4L+a?SN{#U{zN1a1^3>f=aw z>B7*V1J}kwwUdo(Or~xmotO%V?2xwjC>2@pWEG3%3I2eDmXwWmaV2-2e*rHN4_i+?k;P;3k&GAf@)h| zp983Sn=43*Tob&-_=12`5L~e)T0K_;2yHhw2DsfMrcK|7FguTl?1#kzHv-^tpL-4T zWTUq>V}YUt$hpet84q!e6<8I{6;>@kq;gq(#wS>1`SpMRQ?yhoJ8apIYd<+!s)}i~ z^COypDd@h9o&0XS75KjH6Zk1{IMW`!8y5)KEJecju!8`6tOszeE^t-;cM15VZ3){jVTgF?{Z^vfuaDz&zhej69sIpk zXGXMAo%D~Pee|nJ!w1TaI=rF;liwCs{j|-ljP$n)HX3rI{eC&5l8r%?n`ykg1DVsq zX;!_dMujRm=Y+4-RaW^|Cx=F5uPPHS5_&X9HxUo0ji_EEr17%{N%1j<;_A6J&~D~j zKY(YG4C-!QG|colkc|bU@czO%&v1>Zd84Rq^<;)K^JhOSaq(EpV4)oAYz9MMimCqY z4p*q{rT3ejOKHiF?61HN-uT_jv%XO(bXIO zXLN-cdr-KK^^+?yI>W92F5j0{sRu|)&kOg12ykt{)+In$z<;e!@X))%3E zIAu403MsO4A16;cZY0FM@=+d7KsIGn`B-<`yPms!yz#$X)m|r`Rz1FZCbL#&d*ws# zgrm|yisRRI^_j;($J!@8EoU@&sx!_0EO&nVG|(w>MYPzVJ5TVZxDl+{`kt`|z=AD} za|A4V7M$D)moN-x0=rdDA|qhWK=cf)vl8%&Fqqg`AP$h8tvj(V#S_Ff7v#X8A`pi zVHUYPY`pB0_VAEl=;41UIpt+5m1XETd>dE$zg;mgBp(D&6!cu+83CVj-ClI6E~%kB zg|{2G8?tBm)10!F#^S9QLHqqlO@(bf3`Bx%L_(|vUfu-~Hy!7mW1z*k=xIZv;3A0R z(Ea`siP5UDw}|zht^_OmX5W%Zt%%?C%F$yp zH=nQB7Y=<~?lqIGv@SU_CTJ#P*R9H5ns6^$QhRMqG-1F#@}<|Rsk2ew)H!nG+3>S~ z$-Y+;Oj+azJpf{3{@XRnp&|Pb8DWGbn{^###_MhsFl}`SD8)w7%Lm3Jxwb5)ht*I6 zUV|7uWpx*S`DZArrL&5D#}A5SAJ|Wp|$Z>C96=YcydX;}A4BfQFF* zmsv*3gYu9KokQHswPPkEwbc3#=#M5b2yw8rgA%W0fE@ra>UneY8+%2<3|4YDO< z18u<)%Z{WCD+hvtA_ydF>8^8F1h#MMPCmg01}1&xc!gm)Ty%DgBn09%7f3D3z;I?& zpOm0oU=2Tl!5>IiB1Gd={gJ!3hy87YoWHuJKc#y__F}4h_mJO@1^5u?f)^1&U+YAm zoOGXHPsw5Yu69SZ2njUxZktUvI{7Ueup#_ z?FKFEifLA;mut3}8&8;VaXc?u@BJrx*NZlD?USip`RHO2pd~Cl14Zr_qzH00&|pwu z&s?LUHv$+43UUzMoUrc55~h8NVW^T~+v~|zd&qXY=?G*z&anz4z3IcF4W;PN!5sw8)6L&uWY zzjgZvVq8JUk|T}Nhjc2ifdgw`R}})+$ZYxRJnM2gF?msLrc;zrizLhJnrx}xk1eAZ zslI&=;u{B-7VbDN%I6Knk(x>RB+&bYRF>B_Iga3WIU=tU=CWwZF~-`yR6f$JP3RVQ z+8SrXKpuwRz>T8{bju5Oig7-y$UZ7F8KV#HLkoeZnvF$CmS}c*+)h1xL107w6UvE_ z!1j(dsT|uNG%In%)|OBkjx1dszc7=^h)>{L27Giln1GAnbXs-_I}xEpkd!@Cz|jXc zU-Z)0K{sEX#yCz1+3$uph%uI!HkJd%-UG&`n#XZb;bC>Pb#a3I&+e`*DmJD>r^AqO z?!^-JYb|~?uLiXr&*Phh42SpVzr1Q#EK+1YYsc&=gFnrQ*B3{Rx&=>P-C)RUQ1YrU(i{_G z-g#VlKKXBD)w9~SLaC0r=C6MAZGj~n?Zg{&-FyuP7<1zx$CCFR*^<_^yq*Eh#Bpeu zsj@sE7E%5HwAPyFX3?N2Z9p^4->IeVAo~`Nz1M+DaPLEAm_Rc~^Xc=H2K5F}Sj`?X4ac1;hLD3t=S^x81LRW}gd{4{ zacq`4Kzu>qit4gGC%6)<=hQ*a*7b3{9|YV!w@K^2u?{^A)(^e=VZQoCMTKdhSjnmP=~kv# z*T*Zzsaoa;rJYW~--wTJ_O*ni!4%mJaGuj~>J1&x=VGi0h=K%sPs^pUgi@T% z4DYb3Uq@#EW9$J^%1~>m3(5AKF}&I?SUL%t3F~qu^`*nXtT=|;u}ieQ?D`kU1@_1mfb_3w@~K2Hdfq;Blrv> z=M3mOq&`Gqo>E#UH5J)5mWC5%)F%=SZvi{DEONK`Qo6GH2AS-_CPjuJKokn9N-Y~p1;dRDe`1jO9q(JzCHsG>W z)Y-(MK>-!`F@2weZZT~6AX-$7K$DTwsE=Z7ieR53lJSa@f_3%P7iiLo%ROvVPMaq@ z!7*p?i_vL-gv*qa`{dmGNh#`oXma^|kEE*DKFC6jYW=wEPSh zYP1mfllEtzdR!8-82YPe@ur5S8=D*g|}@VqwZFKp9Q z>KB3!Hn$gkl;D*CTWdA`n_r%zSXsW{w#nbo+4WJP|32>zerE9oks^ln1i)??y8^zh z!obB_(0{ppZO>S*W|G)5te{@P$8H<(kG}Ww9NUt#YYDX6zM#DTB#nHi^?_5q8G@)x zY1!}L8l4xaut-Oi=*GtO*cVbPF!v@Mvgh&Xa_;f^JⓈG(avIdgBJiNofOChW#LA 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�w|;Mak7?>^8EFhm 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

    qgm$= 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%0A#0Z=%yI><^-- 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Ɨ^5^Hb3a+=1 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≶Z=bAGbzRYkHIMI*pTTT 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 + + + + + + Dream Multimedia + NetworkWizard + enigma2-plugin-systemplugins-networkwizard + Step by step network configuration + With the network wizard you can easily configure your network step by step. + + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/NetworkWizard/networkwizard.xml b/lib/python/Plugins/SystemPlugins/NetworkWizard/networkwizard.xml new file mode 100644 index 0000000..01e1fd8 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/NetworkWizard/networkwizard.xml @@ -0,0 +1,218 @@ + + + + + +self.clearSelectedKeys() +self.selectKey("OK") + + +self.selectInterface() + + + + + + + + +self.clearSelectedKeys() +self.selectKey("OK") +self.selectKey("UP") +self.selectKey("DOWN") + + +self.checkInterface(self.selectedInterface) + + + + + + + +self.clearSelectedKeys() +self.selectKey("OK") +self.selectKey("UP") +self.selectKey("DOWN") +self.selectKey("LEFT") +self.selectKey("RIGHT") + + +self.AdapterSetupEnd(self.selectedInterface) + + + + + + + +self.clearSelectedKeys() +self.selectKey("OK") + + +self.checkNetwork() + + + + +self.condition = (self.InterfaceState == True ) + + + + +self.clearSelectedKeys() +self.selectKey("OK") + + +currStep = self.numSteps +self.wizard[currStep]["nextstep"] = None +self.markDone() +self.close() + + + + +self.condition = (self.InterfaceState == False ) + + + + +self.clearSelectedKeys() +self.selectKey("OK") +self.selectKey("UP") +self.selectKey("DOWN") + + + + + + + + + +self.condition = (self.isInterfaceUp == True and self.WlanPluginInstalled == True) + + + + +self.clearSelectedKeys() +self.selectKey("OK") +self.selectKey("UP") +self.selectKey("DOWN") + + + + + + + + + + +self.condition = (self.isInterfaceUp == True and self.WlanPluginInstalled == True) + + + + + +self.clearSelectedKeys() +self.selectKey("OK") +self.selectKey("UP") +self.selectKey("DOWN") +self.selectKey("LEFT") +self.selectKey("RIGHT") + + +self.checkWlanSelection() + + + + +self.condition = (self.isInterfaceUp == False and self.WlanPluginInstalled == True) + + + + + +self.clearSelectedKeys() +self.selectKey("OK") +self.selectKey("UP") +self.selectKey("DOWN") + + + + +self.condition = (self.isInterfaceUp == True and self.WlanPluginInstalled == False) + + + + + + +self.clearSelectedKeys() +self.selectKey("OK") +self.selectKey("UP") +self.selectKey("DOWN") + + + + + + + +self.clearSelectedKeys() +self.selectKey("OK") +self.selectKey("UP") +self.selectKey("DOWN") +self.selectKey("LEFT") +self.selectKey("RIGHT") + + +self.AdapterSetupEnd(self.selectedInterface) + + + + +self.condition = (self.InterfaceState == True ) + + + + +self.clearSelectedKeys() +self.selectKey("OK") +self["text"].setText(self.Text) + + +currStep = self.numSteps +self.wizard[currStep]["nextstep"] = None +self.markDone() +self.close() + + + + +self.condition = (self.InterfaceState == False ) + + + + +self.clearSelectedKeys() +self.selectKey("OK") +self.selectKey("UP") +self.selectKey("DOWN") + + + + + + + + + + +self.clearSelectedKeys() +self.selectKey("OK") + + + + diff --git a/lib/python/Plugins/SystemPlugins/NetworkWizard/plugin.py b/lib/python/Plugins/SystemPlugins/NetworkWizard/plugin.py new file mode 100644 index 0000000..0fcc74e --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/NetworkWizard/plugin.py @@ -0,0 +1,24 @@ +from Screens.Screen import Screen +from Plugins.Plugin import PluginDescriptor +from Components.config import getConfigListEntry, config, ConfigBoolean + +config.misc.firstrun = ConfigBoolean(default = True) + +def NetworkWizardMain(session, **kwargs): + session.open(NetworkWizard) + +def startSetup(menuid): + if menuid != "system": + return [ ] + + return [(_("Network wizard"), NetworkWizardMain, "nw_wizard", 40)] + +def NetworkWizard(*args, **kwargs): + from NetworkWizard import NetworkWizard + return NetworkWizard(*args, **kwargs) + +def Plugins(**kwargs): + list = [] + if config.misc.firstrun.value: + list.append(PluginDescriptor(name=_("Network wizard"), where = PluginDescriptor.WHERE_WIZARD, needsRestart = False, fnc=(25, NetworkWizard))) + return list diff --git a/lib/python/Plugins/SystemPlugins/OSD3DSetup/Makefile.am b/lib/python/Plugins/SystemPlugins/OSD3DSetup/Makefile.am new file mode 100644 index 0000000..d1ecd72 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/OSD3DSetup/Makefile.am @@ -0,0 +1,5 @@ +installdir = $(pkglibdir)/python/Plugins/SystemPlugins/OSD3DSetup + +install_PYTHON = \ + __init__.py \ + plugin.py diff --git a/lib/python/Plugins/SystemPlugins/OSD3DSetup/__init__.py b/lib/python/Plugins/SystemPlugins/OSD3DSetup/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/SystemPlugins/OSD3DSetup/plugin.py b/lib/python/Plugins/SystemPlugins/OSD3DSetup/plugin.py new file mode 100644 index 0000000..fe99b0d --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/OSD3DSetup/plugin.py @@ -0,0 +1,124 @@ +from Screens.Screen import Screen +from Components.ConfigList import ConfigListScreen +from Components.config import config, ConfigSubsection, ConfigInteger, ConfigSelection, ConfigSlider, getConfigListEntry + +modelist = {"off": _("Off"), "auto": _("Auto"), "sidebyside": _("Side by side"), "topandbottom": _("Top and bottom")} + +config.plugins.OSD3DSetup = ConfigSubsection() +config.plugins.OSD3DSetup.mode = ConfigSelection(choices = modelist, default = "auto") +config.plugins.OSD3DSetup.znorm = ConfigInteger(default = 0) + +PROC_ET_3DMODE = "/proc/stb/fb/3dmode" +PROC_ET_ZNORM = "/proc/stb/fb/znorm" + +PROC_DM_3DMODE = "/proc/stb/fb/primary/3d" +PROC_DM_ZNORM = "/proc/stb/fb/primary/zoffset" + +class OSD3DSetupScreen(Screen, ConfigListScreen): + skin = """ + + + + + + + """ + + def __init__(self, session): + self.skin = OSD3DSetupScreen.skin + Screen.__init__(self, session) + + from Components.ActionMap import ActionMap + from Components.Button import Button + + self["ok"] = Button(_("OK")) + self["cancel"] = Button(_("Cancel")) + + self["actions"] = ActionMap(["SetupActions", "ColorActions", "MenuActions"], + { + "ok": self.keyGo, + "save": self.keyGo, + "cancel": self.keyCancel, + "green": self.keyGo, + "red": self.keyCancel, + "menu": self.closeRecursive, + }, -2) + + self.list = [] + ConfigListScreen.__init__(self, self.list, session = self.session) + + mode = config.plugins.OSD3DSetup.mode.value + znorm = config.plugins.OSD3DSetup.znorm.value + + self.mode = ConfigSelection(choices = modelist, default = mode) + self.znorm = ConfigSlider(default = znorm + 50, increment = 1, limits = (0, 100)) + self.list.append(getConfigListEntry(_("3d mode"), self.mode)) + self.list.append(getConfigListEntry(_("Depth"), self.znorm)) + self["config"].list = self.list + self["config"].l.setList(self.list) + + def keyLeft(self): + ConfigListScreen.keyLeft(self) + self.setPreviewSettings() + + def keyRight(self): + ConfigListScreen.keyRight(self) + self.setPreviewSettings() + + def setPreviewSettings(self): + applySettings(self.mode.value, int(self.znorm.value) - 50) + + def keyGo(self): + config.plugins.OSD3DSetup.mode.value = self.mode.value + config.plugins.OSD3DSetup.znorm.value = int(self.znorm.value) - 50 + config.plugins.OSD3DSetup.save() + self.close() + + def keyCancel(self): + setConfiguredSettings() + self.close() + +def applySettings(mode, znorm): + path_mode = "" + path_znorm = "" + from os import path + if path.exists(PROC_ET_3DMODE): + path_mode = PROC_ET_3DMODE + path_znorm = PROC_ET_ZNORM + elif path.exists(PROC_DM_3DMODE): + path_mode = PROC_DM_3DMODE + path_znorm = PROC_DM_ZNORM + if mode == 'sidebyside': + mode = 'sbs' + elif mode == 'topandbottom': + mode = 'tab' + else: + mode = 'off' + else: + return + try: + file = open(path_mode, "w") + file.write(mode) + file.close() + file = open(path_znorm, "w") + file.write('%d' % znorm) + file.close() + except: + return + +def setConfiguredSettings(): + applySettings(config.plugins.OSD3DSetup.mode.value, int(config.plugins.OSD3DSetup.znorm.value)) + +def main(session, **kwargs): + session.open(OSD3DSetupScreen) + +def startup(reason, **kwargs): + setConfiguredSettings() + +def Plugins(**kwargs): + from os import path + if path.exists(PROC_ET_3DMODE) or path.exists(PROC_DM_3DMODE): + from Plugins.Plugin import PluginDescriptor + return [PluginDescriptor(name = "OSD 3D setup", description = _("Adjust 3D settings"), where = PluginDescriptor.WHERE_PLUGINMENU, fnc = main), + PluginDescriptor(name = "OSD 3D setup", description = "", where = PluginDescriptor.WHERE_SESSIONSTART, fnc = startup)] + return [] diff --git a/lib/python/Plugins/SystemPlugins/OSDPositionSetup/Makefile.am b/lib/python/Plugins/SystemPlugins/OSDPositionSetup/Makefile.am new file mode 100644 index 0000000..2b505b2 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/OSDPositionSetup/Makefile.am @@ -0,0 +1,5 @@ +installdir = $(pkglibdir)/python/Plugins/SystemPlugins/OSDPositionSetup + +install_PYTHON = \ + __init__.py \ + plugin.py diff --git a/lib/python/Plugins/SystemPlugins/OSDPositionSetup/__init__.py b/lib/python/Plugins/SystemPlugins/OSDPositionSetup/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/SystemPlugins/OSDPositionSetup/plugin.py b/lib/python/Plugins/SystemPlugins/OSDPositionSetup/plugin.py new file mode 100644 index 0000000..96a427c --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/OSDPositionSetup/plugin.py @@ -0,0 +1,119 @@ +from Screens.Screen import Screen +from Components.ConfigList import ConfigListScreen +from Components.config import config, ConfigSubsection, ConfigInteger, ConfigSlider, getConfigListEntry + +config.plugins.OSDPositionSetup = ConfigSubsection() +config.plugins.OSDPositionSetup.dst_left = ConfigInteger(default = 0) +config.plugins.OSDPositionSetup.dst_width = ConfigInteger(default = 720) +config.plugins.OSDPositionSetup.dst_top = ConfigInteger(default = 0) +config.plugins.OSDPositionSetup.dst_height = ConfigInteger(default = 576) + +class OSDScreenPosition(Screen, ConfigListScreen): + skin = """ + + + + + + + """ + + def __init__(self, session): + self.skin = OSDScreenPosition.skin + Screen.__init__(self, session) + + from Components.ActionMap import ActionMap + from Components.Button import Button + + self["ok"] = Button(_("OK")) + self["cancel"] = Button(_("Cancel")) + + self["actions"] = ActionMap(["SetupActions", "ColorActions", "MenuActions"], + { + "ok": self.keyGo, + "save": self.keyGo, + "cancel": self.keyCancel, + "green": self.keyGo, + "red": self.keyCancel, + "menu": self.closeRecursive, + }, -2) + + self.list = [] + ConfigListScreen.__init__(self, self.list, session = self.session) + + left = config.plugins.OSDPositionSetup.dst_left.value + width = config.plugins.OSDPositionSetup.dst_width.value + top = config.plugins.OSDPositionSetup.dst_top.value + height = config.plugins.OSDPositionSetup.dst_height.value + + self.dst_left = ConfigSlider(default = left, increment = 1, limits = (0, 720)) + self.dst_width = ConfigSlider(default = width, increment = 1, limits = (0, 720)) + self.dst_top = ConfigSlider(default = top, increment = 1, limits = (0, 576)) + self.dst_height = ConfigSlider(default = height, increment = 1, limits = (0, 576)) + self.list.append(getConfigListEntry(_("left"), self.dst_left)) + self.list.append(getConfigListEntry(_("width"), self.dst_width)) + self.list.append(getConfigListEntry(_("top"), self.dst_top)) + self.list.append(getConfigListEntry(_("height"), self.dst_height)) + self["config"].list = self.list + self["config"].l.setList(self.list) + + def keyLeft(self): + ConfigListScreen.keyLeft(self) + self.setPreviewPosition() + + def keyRight(self): + ConfigListScreen.keyRight(self) + self.setPreviewPosition() + + def setPreviewPosition(self): + setPosition(int(self.dst_left.value), int(self.dst_width.value), int(self.dst_top.value), int(self.dst_height.value)) + + def keyGo(self): + config.plugins.OSDPositionSetup.dst_left.value = self.dst_left.value + config.plugins.OSDPositionSetup.dst_width.value = self.dst_width.value + config.plugins.OSDPositionSetup.dst_top.value = self.dst_top.value + config.plugins.OSDPositionSetup.dst_height.value = self.dst_height.value + config.plugins.OSDPositionSetup.save() + self.close() + + def keyCancel(self): + setConfiguredPosition() + self.close() + +def setPosition(dst_left, dst_width, dst_top, dst_height): + if dst_left + dst_width > 720: + dst_width = 720 - dst_left + if dst_top + dst_height > 576: + dst_height = 576 - dst_top + try: + file = open("/proc/stb/fb/dst_left", "w") + file.write('%X' % dst_left) + file.close() + file = open("/proc/stb/fb/dst_width", "w") + file.write('%X' % dst_width) + file.close() + file = open("/proc/stb/fb/dst_top", "w") + file.write('%X' % dst_top) + file.close() + file = open("/proc/stb/fb/dst_height", "w") + file.write('%X' % dst_height) + file.close() + except: + return + +def setConfiguredPosition(): + setPosition(int(config.plugins.OSDPositionSetup.dst_left.value), int(config.plugins.OSDPositionSetup.dst_width.value), int(config.plugins.OSDPositionSetup.dst_top.value), int(config.plugins.OSDPositionSetup.dst_height.value)) + +def main(session, **kwargs): + session.open(OSDScreenPosition) + +def startup(reason, **kwargs): + setConfiguredPosition() + +def Plugins(**kwargs): + from os import path + if path.exists("/proc/stb/fb/dst_left"): + from Plugins.Plugin import PluginDescriptor + return [PluginDescriptor(name = "OSD position setup", description = "Compensate for overscan", where = PluginDescriptor.WHERE_PLUGINMENU, fnc = main), + PluginDescriptor(name = "OSD position setup", description = "", where = PluginDescriptor.WHERE_SESSIONSTART, fnc = startup)] + return [] diff --git a/lib/python/Plugins/SystemPlugins/PositionerSetup/Makefile.am b/lib/python/Plugins/SystemPlugins/PositionerSetup/Makefile.am new file mode 100644 index 0000000..0d67b32 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/PositionerSetup/Makefile.am @@ -0,0 +1,9 @@ +installdir = $(pkglibdir)/python/Plugins/SystemPlugins/PositionerSetup + +SUBDIRS = meta + +install_PYTHON = \ + __init__.py \ + plugin.py log.py rotor_calc.py + + diff --git a/lib/python/Plugins/SystemPlugins/PositionerSetup/PositionerSetup.pdf b/lib/python/Plugins/SystemPlugins/PositionerSetup/PositionerSetup.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7d815ee8e7ecc61428641c3c3671694e88707d2f GIT binary patch literal 27368 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ⅈX#?2CAbwW3|cicGCbO}EB?PyF-X63}5lqE<5#jL5gE-@gYEk!&j z4L?TWpCx?uD?YC2_pVDop*IfnLYs+(31LwluQ0vBD7uDLLlI9x8M9%hsw6Q4E)&_6 z`Cz9vjz&OBLT4EoB1G7n(y6*dzCM<*5K16kL83UCllhp_xNJH&R@7Lbwn#kh4S$#+ z4C=g;>nFES>Y-**jtS}m;S7_>w)(8K&CFq>1RRPphp5Vp zNh1aYpV4{QSfVsDjkVGF9#D`)yKFYs?AZJKy_p(8)saM;je1!bb(%lhq4s>dG^0=x z7<3)6*c@(!YC?j2J7{Wh^>2Bi!6T}5#pF;@lLaPjm8A1i#qHP?^ZX=GsQ?NiCF(z* z57TzosjLs}LmN^}tF+E&Y;GOYTP^``1x)+PlYjk}h>K9^;pfA$Ov;T@>n4WF_cUok zNQz|&;oA0IW8y7A5*Dqp7pW7?j4SK~oR45v+zBc=AX?O3l3YdxkVKXl7wYRNoEYUX zrIPLHAx+aWVG&Z&|x3kZ~U$c9-kS=ur>i$PuEV zqy7f8qCz7?Mj{0F4|L+a^~bT}K}7}clQZKIsH!QGqbKx>2G03MvBN!vhzj0W`|u)% zhZIc`AY<+t`I~Vw)AJ&R-q+oosuQCMV+4}3VnZW{C`j2chsx&W`j4(Qo0+*8ZN^C3 zYd=1?G1H@C!wIv!6$Slq;usGrgsBq7;BM7m9ASkJ6?O9^$BhsR^jDCen!|t>6D1Kn z*z4oxMuvL$#&1VF#e?E(&Z7b)@}DiuL4Xhi9q3cn2qSjfq8K2+2oBuSXQtmjsjJ)N z7l;2nBG1hJn@n;LHx8Y^5t49E{kGp;o4-9D8g_ITzl7@@ZdnrN*MgkJ1v9Yp-X1k-b%UtTq-iBJr+X&68ZE6m@yFIP)dr*q zTehg|$C4}NDmcxWWG%1snsl)e>OZU_5MzPog_L`nngCF{0(nI~&K?p)R&W_>A1>bQMNbPVE_G~0-YdPdPIoFr|E zU26i-3a8t1)#KBucMeR^ZaIdTb$i*mkTrFfaWbZYAX(&{78_h0lP^<5s-8L>bcp8Ci!F@DGt-ken42KtQsKBH8vpi7g3A)b&V zl28TJ_v3EGm`hgDwf<|$xF<+croIfaYt=7DvYT+FpOMUbNnp@rF5%bOsUF?MaLo1m zjqp2dA=6!!SPtC&6cVQn`2c@*9<;egW4HnrucU*VXm74KW@yn^ah&S#r7tNWV{tb) z3)iSQdwJvAYvn`T^v)hp(+@AByFudwZ;3WC$CV}W0c>77=!$gY<(O4mc2ry^tOV6b zE)kc6XYj=eviX=|@ENgbyh~I(D_OrR>)RM@0`(-K@AQ3#C6?w z@~*2Tg?}=NczEC#^AUf%#kNb_*sNxen8@2(d8Jb&&F|pv@Y7NI;C+oq=Qbaj!{;7< zyzls&twmRM377M}xGV>Ss_5^qE?UA9^$e$L?jY#uY58aY039Wfoflc` zNzj#Qpo)lAWfG%d5>IY?Ou|e$R#}+h4()MzVDQ3N6Vl*9AyaTi-OOyqCf~L+wbdiH z*h%uS$D&HmVwf8VDHF*Dld?BO`H`VmLi2{rilZvF6iKm%$Rt%mwVRIw4ZJRRV*Ve! zIif7;q`Ps|T!tX0`HaGj#Snl1 z>&s?yVK9YLKy9W2XB7W~QNwfQ5~?S92k(=7DRW`I}DY%5a%=w)iFn3 z0IHT$gT#&I>J>6Y6uw1W+5GB-h~?IA$O;eHwd);6o0$30CB_twfi#%~nc6s`Zx{+A z{$vB+uhp?i^TO_RA4tVg+x>I&GW*>yEYeT}&sDQ)5U>pCNbt4A8%!5f_Svat5 zcf+@?ax!Lhx;hvZf@}fbD~LV|E@C=4Qu42=c_QZTTx! z5+wpg3hIL_7{rx#Ei~3(=^o;wobO88-W#Pnua4fu zKUxU2G^qSLJa)v{MHPCY8PI*RTGXxM?Vz@eJJB*f{!!ACzoNPgmPyMk-I#{ieqX+j zlf_i=nN@NR-!eO<@|k?Oc{b6qvwt;kwl(cqFuqYE`{Hy$YnEg~GW}+dY(u)xsKvXG zWgCc*U;5c?8mBwb5HO)YHPNPL;iMJ2UI{+SJqM-o0mmSA(p3ORA8z(!iu*><)@<|9 zm}=SgnrbOe7|K1J7`vTO>U6wzEk`DxzDdxj-sGn8;iEDl{A2gso>Ug*!SPYpsH^IU zkc2L+qF&wc$Msv0)cM^fq^HIiX`Ab|CBtg*?07|_B#!lA?Ky2VK;@&rJ{!$g3e{Y7y32G z@8{G%r=_oFreA^iuGFu8YgQHUR#IboVW%QZ)zdHeu=32>7QR z^joBtZ)U)8rdlzF3u2}^0B@?F59&3~50AS+`^(?YG7u1pT56TVfh-V%`&-(8G!c0X7IJeiS;nSYGn_JDx ztXGJ~sUiE~N!E>D&9B#c>d7mFQa!}m-`%*J5WZpc@X)XM@CfI(Xfk&C6rXK=kit7P zdoUopbh|Uj{a+xwFKeVvjy$((q_30SRp+M5{oYl#XP#V3ayR~-Tzg6&*MDwHK(4zj zlRR4BUA^l?x-3z=>cPJUAzh(g!6@JU`f(-qUbQ%vwZODi!SF`E^YOwov`kktfY=Oe zwmak6Y+ZC64Z}YrN9-l@-b{gftM|&V_n70_T>5?e8vX|Ig6;ZJ$J(3)S~=){;?xew z)mZ^vY3^qM`DgAHz-l^c<+>!h2;;_8b`Zu(#`}aKOC?K>upq{cJ ze8{yOP_#(&H2Nie0b8Z0>3Q@ewcR(KSE99ecbZat=MTr=UgG?+erZu<$JEA5mP=N! zjFtp6`eF#$l=w@aV@C8W2nist!0mp6gJ%|kyTJQY}S+1lzM#4*Z@DJ|<{Igs?Zb&u*9De>H)+Vx`I z`!u@61@^5)^#Je00`_Tvzu`PVe$vU<qK#I=#@I8C(luBEB+!+0y@Xxe4k(aQ ze}z*!y--n&RIA#%0hYN0i$nFk6pi26gfWdgyS-W245L24wZ!7-=h}~vvFo(x)$X?d zmKna9O{vc!3V5Pq7wM%0rULH-C+P(IQl-98R(l+{Z$@=?Cu?l#Wh~TMhLDQ$E%Q@- z>}+0?cgg~4f&A8nEy8PkdyL_?ky?J%S z{D8w4=WhESWYT~2&wr&+7AAU*|B^}B{#zzhcDDo2iQ3vY2?HFB9L(*UZ2xha{L_>* zum;cx3H*Ce2?Hz)RGpO!Y#e25ZET_cb)%R%;*{7@7X5B4l7E4lp-0 zbNY{g&~!>p0Bcoz_J79wTmK&i41f{;Utw1f`X8D0|5JL||9cAmX_#STWca_>WprY@ zYzFav|Mko^oRG2y>1d`FapfEn@j)g-@H4m)3P)=k4%*?h+$UCqjtx#jFquoaURM}> zPb#=z7(gFoqO}Kv(C;FPtFXN8-sg>9n`9)SHt!@yI*J)tVHWKSYBAc{c|6+pLKf+* z5<#Z#KH8s&yjV)+uoD63%dPtk$X~eE9<59lgE(DvFJoI8@O}MXXb2WX)OJ*~A6tnp zVrgVbF^x3MY+6(a-h8(OU<*35l8s3ujLt2`a7(zFVxATtHpi)D#xINdzuoXZzp{}R zWRsr216i!Y{s-ha{(FV~3uHPaXG5od5m$C_2K+}>(7+M!?=t@%u{L*bbP_T%aQGKP zX@mca8KCLZ%#EGQ9JN^K8S($Ub^c$p{(BeU|GUW)q3M)uRcy@vH7?=*3)%k1+Tk%8ggPX7ar|E1S6GP1C+{;zudRws;`(nu3Mr{(ju2Ve7cvatr@`n^y+jnUfb zFurXh9!LUyq)a4^5r);n@Gxtvn9?SMAjlY$HHCZj-{X@)4hav!UosL4s4xF`e0;1C z-&49}(}T0)n@{96?e0t7Jf&i9(rMDf=CdERK6Y+8c3c6LGn45omL|)U8V$>nRx;5y zn4}PlBJ6~=tGw*bu3QjYPy~F0V3k-dau6mNM?k}LzXh|1jIdf#hIc-R2sU$|6kxDg zws;+mC)(AZ=8XQlHOmYH3MGpeF$i+n2=xZY{Cbssc3~-IN=;_9&gq=O_xWHho-uky z+Yn`gt@bdw^CdGLdPv=_^S*7ayD5{s|GTLide$4=cQrs29D~#MNGQlmH7rU-8WPGZ zCH~Sy?Q7-bb}83|U{3!9+iZ(y;OBd3)LR-}L@@$G*(6%AfE7vFU{<$&313ptdv%BU z9{%aS+Zl^YOG`l$Av{4vX{7Q{alq1a_#=k52fU9jVZgwUz;NU~5aOBLs=@xT9W`?q zzSi^Evj#0g>z2wbBO3=fN+;pVTM$(^YElnFu;SY->k=F{(Tgzsc6jAhO}|-d@q$M=i`^pD9H;1_lE6`Qs(1VoAHfFVbMPl ziipz&|4!;2iAy+fCL+zz24=;O>G@j!>?rqSw$d?VPwJs9X3fiOygj#+b+l z68J+FZ#Ov>wGX7kuDQAT>g-x`tBtbh{y0O`iCQn&%GT0aW4%+@Mv_{0v9&g@+eYB( zvs@h@;%+WsuMRy0^A2-~I%mar?yMQ5Npgz~uDFe9AqB}ebOx)3ElEnH&dD6=*LMMQ zCJiKD&9-k0Vh&DYM^qe{N|e)^=$Lx1BK;dQVl+Sep5Kx@*1d`ZnH{dH!h`;sU&_oH zpQ&KbR&n2}E}q_y5PcBQe>p&g#vis2v?{H6D+9i{SSxlLs>{aQ?5wsrKQnXojG=r) zy_lKV1w;}lSJ=$_q8};IEV6PP7R?3+d%RHfsj=BDu&)W_Xo9g=J|bQunUa{Pya=O7 zkg+z6B?}umlRSsl?Z-T>Qces`C@-&1%ad^vKbdE=376Xq-zdyvT#zQMo{JV$e3v{O@Vq=}M%=KV)v-&0$JmU+ftjGimM(?9ousDsHAaHd} z&^AC?O;%=(_(aG=TD6N$;PQ&#}!nb{t7cre<)iSG4%A~ofdhiV7)F+vnxtoAg#c)^?YW9Z!L(QBXX-fT>Ps6+Ikw`ofpG@| zRXO-b=Xb}WxuXDP1DV_qkG7^zazgys;5hjQLNAj=12`WM<5mzr{(2|*ET}GHNYvD5 zBDiLV*1a3GH>iSt*uwlFHVcXrVOEiZt(`UfOBs1dD$b}{Bnfk5*;pGjZDcx-0rD6* z{_q3{>4Sgvteu&)nG!xxiHG_Qx+gO2Nm|}5H=n8wTVb^kYJC_OgC}iYYMOb3M~$gX zv5thE3@Kk+mlZ9SojlUHx_9g!gd-?KtG9Ys148N*tO3%x&J@Z~>14Xx-`#B$GUHZPXWN+x!gS>q zm#54^{*>a3mF!shnv)}-Y82>1Msm=4VLuY|B3WrOWUreEMgk>C+8Ut5$KVBi9#_Ij3ZpZA;3uA-(Rj=WjzKh3k)JgDak0BU)G<Ano^J(BX#X0GeHop-sE9Cq;Z8fSAERh{Q4-|*o>x=F9Ay&W(2 zHg)u7U%rp>KETqSq8^t1lu0X;xkvOC4G>pO#ggxXeH&f-ZN9pkZhp zI;DMeB!3^)DEyV`aPhO;`70d14sz1IU~n+#SY>`a9c<_Cyo!X-gR;r5CDPtv zR(p8QP7eW`PxbA%^3|lN^~t-#-u~q8_keuxiFU|xTzc>eB9)7Qhw~Kd_qDAk%X1h! zt2Oy4?-u>N;ApCkEtHGNqPzg{kztXrZs9N`(9aaYs-+;@k?IxcXsbVR)=6c;!+L)A zLC-WVSl23ugmhif%%icPs?ztEv#BCg1m>t4Pw%czi)9FS2%vb)Av3{r!EeC_dk6!} zldVdA`zUaMJg^G}xn=Z`K_&em1KR9#hR}-ONDOixiN5P{VS0~{^bXU$eKqs1pk=XZ zMCV@=2{Zn>30+FB8-lEM1*sw^!~MP_1~frz&dxe?I$#f41K~y_QvI1kHfY zQ_mL~dSYeRHHs9$lIUaOpf)k1IL?fZKA$j+80Ev!&!63wlFEO}wI}Sk*Kef2HjH%M zcG~p;Bc-le0AlDgv^L@*5#54-VkG@7B=pqqM!n@1ApLnyjhwYsiW8K)>DM67c-fa+ zn`0>TZ)9}FjJ$ha1dw)GYHr-{T(KXfUvw@HG`=IG;w4BbbuwWJ7)TPWMfwhxpv`h? zDCKJAFC|!sli$jrbNNxqqwoIECOs}4eBP58NnEGm#=jT(m{X$sNh!7p8vm?i&COfc zq3c$qnO4_^vx?pYdPcb1Y-0+~$zm^O=TW!7=G(7fXhTwQa4OcLz!-Wnc4i4>k|v|V z3jhIT&+Dy*o}!{vKoj6rzjDeQADf}nR2y4bMrlaRZ@$nD9msP7Te}=Lw<*<)&2Z-c zOhez!^kWkeyUsS3_8_6R8MC+^)<9S zpF@cbS=%s|>2A6_Wi+0LuDqjH!@-@|rd&BIRA)PKJTxoXHxwIf9maG5qw<7JRch<1 zhYRjS&yTaTzbBGfYABV;nl{ZI?d}FgcC2En>e4k^7SSnwu~g;3xn5bH>nSTYmiCmH z=Z?)hYC%6~VNI*>S+q*D?elVRTY+|6#YS;<4e6HC*r6q&a4Ys&h9~%RZR^R76ELXw zRDLRQs7*t-oZS<{0MrT@F@g`fWbNXW*(;$7H}fr$hSKoL(5E?AyYjhKC@%01IF-&u zFFA&nIF1`vK!&yPfQ$@&yF+yrn0NM+wsGv))3mjf7_O)VkL&R**uT67UkW`{SZv*j zNHIh8G}3mM9vBJ~C@p1l$rgOB*=~Q&K^9$PuWmubj4W@q84hJx8XDVlmGJfPuEf`j z&flL0EnZ!aQ&C4m8?#$k z5;^;GmKtT%2$tz;u*ts&;;7B3mad?!Q~njFR9D(ml#Yl9%uhwMc%*qh@Sx3w?9%10 z9!xu&KAZ$a77HDUBm0`m+OJ6qr8EIiSWQUjj$dzuIa2sTt0D`OMJqOKB~JjO@<>La z^RY7YZlh~fnR=tQv&n~T-d1#zoGgBH9=4o3Ll-W>-F2t36}OzN<*7-OYrejzP|Oz5 ze{(}it+S-lRk*39+*#^c#=VGGkDK7Oc`mdVZXq4kPb9muLEnEfs) zqamfChM_jhX{)`SObjr@&~fU9ML#ThA3ogER;Dd4mDD8Q z+^0VCU%?qzj)7}eBVN~VlO8)$fX&-Ntm4gG*OA)aVw<<`r61tbZ`~Pk440`LV^dS@ zdzo0%t$V3h>9w!A&4sDB%+915_h4I!d!rfh0Q*9TznTZv*rNmFg2JIb|{@vYbsXEI7- zFb120+UA0;LpGT<+M2mn6{KK>p*CuAr7YXSbMjY`}R58*wX@Nun~ zYQI%>q<=FXT9p4-e79SI(N~+%nZO-VQ$Nz$Q93B_V*z9OV)lF(uXZH*b`Duu>#?=l zeal&PeF{NL#pE%3oX5B)_3CV&S51w{CH_vra-Ji+MserUgF&<8t1J?%Dqz)~xMQ)a zJ08HKTx7TCXUXga+ooyL7Mw}!R1lN`X`R22+S{6+D0-AW!zyY_6nHgkRsS?#Knceg z+B1ws7!Wa0g)$Ih$3A|fbz5;>6PanC}1tEAzFuRL1`ufd4ecIy*>@1Lw%~8iOp8v1ErY>R1xs}72~j!C1)o`g|eOCcLxSbf}iAf z3?>ehdCQ?Z_}K!MDcAdg7|Tzm?b2n(xR$1#lS@+x6 zsv|vnLovx-UK_!JH>O;dehEdkd&JMJx3tAvJxNBT;^>Xsmx z#R7Fp$!wolg2X>0Ov#X(Drt-uzyXYjXp2_?sfh3dS0-Yj<*$s2cCJJ+4Gu3uufA%I zEaB`dGL2q?>Kp4hc)&zEL}&`ZFmAGt{n~hE^Cya8$iS}syL@B!Qx1EnKZCQQa9O9D|7Mr}E+D&j z_G<0=gR7mVs!9fa0(9+IXlpAd0?V=r!Fc6z4YWDaQei=#25QyTj(*v~Nz|t=-qL(% z&rZ*ooxBa>sxzU~^wI2Wi;ix+gzF!>H$1#K?t*+41pHmho$|y0ug70S6!1q9@mMfW z0ZNF9fU?~n{24`uSWDP?m9;iw_xmyYNN@r8;y|T7BLQ9%6YH7{{N-0Sy52Z|| z9@UvcY!9c#S;QWTPYMWl+R35txf5kQQ+B3=SgyAQU#_1Bz0Y&gACK_{H?y^Sr>+H! z9Nlg!vpUFaFW+S2pMw~@pPCuhWnLAE)Q9kxz`r!?ywSJRg%^`QT-L!F5RzMHv z$BDcoRer4cgx=fgA&68?R8+s+BvOyOJ$nA5CHDRKjMU~*Z0|_qtpu(*=7sal41si` zzs;?Sm+yf2k~ABs!OjYo6>H;Xt`dGFzmPF#WIU6pM&`FG;)d56mylHCWDpkDPhxc4 zmsU6~mhWKA4ttoG+zzz1EaNn_F@-p1Q&4QUz zT7_;O%(ir+tmBS8_io2BIWlef5~sRxtBb-mEK&IZi$^g;N{hQ zBkq&C-qPaUeZ(+FmFB~jy}jnJtRW#xMarTzSu1VAOn(+L z35L$(W0QvHZJb&3Q&-sk@v`PkT$x;A$At4~uIO0{gv5C>F!}ID;)Z7P$mfFn#?h~s zm%ZzKbh@rcTRzNThgroHn>JNs&6Ds|PlNQ32cb#84q4BD@$2vwbD7fVne?IkklV;( z^)yG$?z*@*;f2iFsQ0yTQC4o&rF_G22z_yQ7!#aS~=)3xlExUalLhU$l@ zSEz8P7+1~|#S5S!7|wR~?at&z4oH`mG9w?ng2_VAf%Qh;9}(0SlScz_e@=zXQe;$q zk7X0~b)o<>MNyWen7D5{a0EEMQd5$voHEjpCK<+1Nem3ckl?}e8Jp>aQu@8U@Wgu2 zf>o|||2}~O#tT3Yx|RHejsuPirvPRH_$4Nosd#>STWmaneeIa1Cip1+D?g7n*c?Ft z;>{q`$bLC$EVlO6;g_rd)>++eaf0PNiJ(kL*gQJy0RB?SL}-~H_z=cCm^>+hD0FCj z2hKq>^r)aKY^dIrYL{xDb82>9P)+5z2i^cmTaw<^A zW9jYQFx`_m;iMvUjrbFJ?+b*=Qu z*K=P-bbOQdA+6bOBvV@5^fpLSy&uFF+4bL(H7CKa=uB*ZO~VH~)@g?DB<8WUbQ&NoV%K(a>g2<6m8PwS<-n~f+7{X=cnf41g$ zPdn(%|LW;)^XK}v8G=QbAy=z8hK}fp;!Ej^5t<0Oh2vjKJVwWn{B z;rL9|rP`O{-IGN`g@HYFu@xu-Ea_~r8~01jLg)zsvUUmX1F%K^<~+x2&IZ1ycdHT% z0nguKWqs}v@F12oHQVn2u8D@4$o{mEop0-vp07s*^u1=UPxtn#@jut_#n083B?D@> z`8fmZ321cd;I?_4ucHI^nkkV!4FVnFQgG=anB@!=>r?M9Pm9%J7Z9suLybQHIkx!U zem&!KM%uAo=0E7^{9gQF(iG3J;f`OeB?nN3N#0N>6 zKtlRT-H7>DPuHQ5n06}F&(_c&>wL6nNtr%CUi1q(ZVc!AO)V4({f`}j> zN|BCK=`|#wN*4sA_YR>GN|4?WL21%E2#E9|y(1zmN-xq8DWQZSEz-gd-h1Ek-uwRl z8Dl4Bue0{tYuAj7lR39B&q&d(wr2DX6Q&7Utht9{5*g)hqY|a0c``Uebv!DN8fkBk z=o2Qg{@`i~_&U{MMC@sN!`9B2y0H`-O8#W6+~VV#!x#FJUvdpoB;{DPPR)%kMXb>- zU%5mJKkxU4j*IMAKdpv2t;AGr7wP-VN|u=(x#aOsEzDJ6*z-lU-3Z|?4yH5f_Ejg2 z%>|mgyXijOPum7wUwj@Tdg{17Qr>2IznG#H7ck@7iNxm#y&#C^aMPn(plK18*Or*F z0bAs95Fp3sM>JK5sgR`}CZk&1y4c0pCGQCDD{9AT(^p97`WGAY$u%ZT+)3azzjyRXW2$@xg1-y1H3qGi}G{5y&xCb5F^3cU;`h_E`|k zj7aH_`Qy2hqxpNhi}UZkQlEE9JJmCgbAE%;f#)dRN9b}y$y&ep$Q-Yn`Ww3=sDO)wuUUF=^RZM0WWIii*Gd=d7(E=}x4+dNaXw*_Aai>&T9#?<-Yz4#I5n6)cj56(rr};S z2S#oZINq>7e(*NFfx_FT#VhY4?!=wp#sj!^2k}Zb2l`q_w3pxG*?V|Q(MD*=3B+ym zHAQfcDJt~vbs`2^U7h$99(5VTx|EF5D4)!kSifiQ@rLr#nrU)-?u|<}*xer}Z)qYG zeLmy8s(?_BcRhc6s2QUeaA?2GBdh>}?MtjZZ*&`shy=4Vufw+oR^32rggQVTpKIT9 z_O;P&uAgN#+_Kh8>nQ?`1E4cmqMunEiLZS%jg##Qt&W&XmAB;K)4Zo^#hEAf<;bY- z1$Qw~<8`guiJw;=!3*Jbp?U$0nebIRWg4EL#HT5y4|Q)QuDFADM;bb4vBDIEqaRT6 z7kpHWRb?yNf0>+^^^p1+JRsJMFwaLdNIjd9U`ouo2E2QUSk?MrkysO;Y%CtanLF*W zWo9WgA7bxdWqAJ0rh=xK*dl1(@JCZdp=s&#F|lZ=@LS)=rP01zfVqjou#u~sP{%h; z0*-3R+4Gs15Vga_#aY-|_S=O`VNM?h;(cZ&F4ol*4{vmUkrcLprA7f(FwDg~W{i{~ z#Yf(g0EMSj#GK^DlEgWd)XTxEwO?TQ;NDgZF+u9u2^*ekA~IPk=GJ_wH(Yt3@ovVm zol-V&_=EeJa7mdYE_8EF0qhjy8IVKo&9lStJ@q@Bez8<0`3;k;qRZak)ImZtVT)<2 z|GZ?yFi=--IdUZrEnZINykBt?-PSJTzXn%ykTd3F(?qQjo6 z2%Xic3dbIMcq{HTO`h9BT9FsHoThvn4nz(ycA#h{>B?gjJg5Moyc+ub4g$(9t3Juz zTypTb2w>v0Dp5C~*|NQn|(QlNaL=g*zz2)0fMBJm;<%!gx6Av%@+p#H z8iSX;HWL2II1RJc$-c$}b4d8#e)|*MNZ#6i5#Q)aH_wgQ90>mso7S{cZ44Rj;=g#O z8!Yd34}deVeK^CVlq3TsqUA(X4rH%5CHr!_7u?_~V0U@tqqtuw04^3`@j5`kTv&J&Jkc>T}p z8AqXUvDAk}m0j$0OzqCE&Q?v^`-Q~tx*KGrwNn-|yiQ={xcm)$d2e(alv(rjA;P(B4vt@owyC0L-s(i|g=|J`5|R~aP$~cz z?60SD5ZX+>AwPgG)TYoK#WM5ivobV<1xAPn(ZLGTDJ6_vHrT1nwoI zBMybb@!cGbwTVqeyx=Mcn?=>Yf}eZe9lpFOuZTJ7Ehi*j`=HQWqw9azRK8`KNPD^F z@8%T1-Vw0dcvGT*P6r7Oz!PVhZgZ%f77efVMbU(u>~V-~$X$w^^>PNf=kj8kO1!@K zCQ^tSAv)W0LFqK^J=eyY-|4d?H$Ia+w-fbXgX0Ygh+O98YizajY=v>zHXGcTNZcifaL^r$#hbI!~0|}6Q|(`O0o9o497_K zsLI_VCH0qR<^Hd6FE`c-=TXq5qJXub$Z>heQRwyWBfu`XQ zFjqZ^m(@OTn|hbOA8?Dc!2hl>Q}p9RrM+MrL_y?Tf5p>m*Y2^*zraimOHt;^5yumnrr$?#CUF2bs!7+w%1#C^-!u0R%mC6gp2?1C%v!1aca zmPdh+9fg8XUZlNor2iXKa2*`Do&SkqPy3`10wrQcRX zzzVKIYZ~EiIJCa-uCW^!xeB$qcr1;>**%3j)?yO!MDwu&kIvbe51cbE=e!QjHV(c! z>^%coAa>nU{SGXlTunteRK|8j`1i@?C z83y7k2WwypsX*h}^7rtKeu?xKnhMqQ{Q|nrg%LxsRo4skjx(lgBn*rpVp`#zrs_?EvF9 zm`N}^X~+{h!~GDvLN$VHiY80OhrR;U>%k$7^?tMI$726;CXRM=L+|qDagkd|QPwPeAG_Jk1~Pbc zx@B~4G^G>2gtx2Qk(gokayK{Jt^E>tbC1h8k8vsDWGivl*=HEQjR)wok4b4hx)GX^JFxYj zBQB+enzK%R&>WB2o-lKEWOLm^ZE(pgm~LL*f5~d8{UcMDQS%)G{1*I;ZfTG%o-v+; zwpab@6ap!ZGWNG=(hs#JzsNeolfDWImad5Fb?YSn-&oLV-~$`u-5w%pW1qM|rVUss zSz@;HO`@LLN%j9AVUIw1BypFs;PTxc$2K6+!uCT8E1=(zw%~mxTC%u+hgD}`i^6mR zDx3()w;F^#eaF5?2Gxi!&BTK}<(Tv+dLN1%94GBcoQR=%*B-rbHcr`60j-#}PCfOl z^jj$}KiYrlWnW_x&|eB_++Vhw&MkcH4C?!+*$3qHlY%a6h9#M-*LS&zzKv3|d=4o| z(RQCAAQ_S#awA5)qBda+$I{PlnO_S0`S4vS~wm0tY4hHDFAI zp}I>#W$EB%z5e{t#~Xw()!koEj{*%q+{`c2^!htKE0Q%6V*b`RY0zmeRP<(yfy!rs zqs5^7?wfmpqpfBL@6O2R+xNMO)KAzZ-lWdD0$l7{=7}h_&1~=sO4$0Pr)kQSvt^c^ z%nnWSE+txdV=4Cgj%X%!v6DOXV~KKo3kIf->InM&z&f6mrty4A|klCotimklJA>xgQ#@Elxei6Wm{h{K3efj=SG#kZA5Wz=>>ErOF zn~TA~oVNW?&9h1)k!#@rHzkW9Fw{^Az;XTC4$}Di9cRnb&m(KyVU_jL#>b^bYTtwG zeQUB7tY6F?sxj5#)yiJWFc>it(bQ0p@EXRGKQ;&-Q4(4Y2eA86NWRiRoa=iyPJ6u-l@cebEuQi%GaaX_qycBM-!8ru z&bB1Co=++ucfKNhKQ0$NJzpUKH{W`rGh0$nm##x-Y-|(DNP$I;}rPdTAj;wwxQT~ z!X#f(g_MGFER>JOL-67x$qhG!z{APM1{!NG-*lXJsF|h+Kk5&9i&S{8HCSG@N}L%& zFJ=lp300^Ggrh4FcAW<-^EXE`Vu^J20TUATP|0^mC-=YW92Tn7B;N8;C-sh$$fQ-u0*bgJtcDyGN=@m5i&siYCQ z>lmdgo0;{pjvKA;=2@u6<$9tms_$>|a<$i{#&;vg$4a^daE`jFGG#`{^pPxtz*<7ZldP7Mano+WGz$G0~9&OctXouQz5b9_JQj9<>yAL5!Hd?m<}GSqjw z__)%{LY8#oaD2Sj>gkl!8-IaX4u1Tmf~nbR;QPLw<>LGXI^U4`wnuE7QQZyU+}p2K zLdx!q69FdNs7jM4PqjC4-@-R*$qi@A9Lktl@SQ)iL^D z&IEgR?!@6`P3flLHKoyo#HEm6st+KuwcFUuq_Ce&wS!9g^1;=j3zD$yX{vw&2v{M`*VgehYJL?#uY>po38Hp zmUP}V!Dx0J>2eHik{^HO&-it7(_>_H%|viDN>+YC%8}j-n|-8e`<8x}gAl8<8~*b& zD_v4DX?_T#Jp+1eyMTJ z#d>*4ihG^pMdh?-`^7f08`x1&yRBV8C~>zrg5cF^gXRu9>ISfI4hcayvb#nimA0GC zm*SABO=HkOD$#9F$a$a#L?ZfT;J``}XKmVn}G$vK;9a?o|nm}6*u z@a+X^n$XzjfX>P`qTMcPp3XYWnX|zUB_M#jyBi9>v3y_V-h8cuXWCC6nzHqHx11A~ zoi)LF%1`07#HDofEWXq40Jag6$G3SZK(}moIBq_;ps=y702_ZbooL%ET%E7l+QrCB zQgs2~rMSpC?1fH~!=ks93svaT?*%+NC`T-hMWmszGi#5h}KR$;GzS7pR>lnsR}cqe};YU+N+5PqsF)& z*zm9)a}#a_+SSyx#00Sk;a|Q7fjBS^>P@VUqbGZ`mcrpgn@N#^fljx3B*k&z^XH|M zu&%_Glp{sU^{l7&WeRvC4uEC3t&&fup9>%6>$FC_lb?NmFMEpCq5n zDQD1|MI<8vLX96IOuCwl2m^}#~_Hr!^K&s4*S%2Jw*UgFXhgf zrE2dkncA|&QzLo_@^MDQv!m|EBvn1`*Y1fnevP2?!oN2Lck(_`V$rp{p0%TRjc+tj zsuYmgnaH@V41Rpix8a?Eeql*c11|TE^B)Nouo}yQO})bp+BqpFs;T!XwI?4OSDOuE zb)HifJxdHMt%3%;AEeLcH9ooTxX?{_Fz_R_B_#5eLH^nY)3v~J&AQIKK)@OI$_U=c zgIxsbp1A&lUU$|z$_8FKIwTw#Y46ra$=qoQSWUQ7BMh_zITODY-MR#n@8wyr2gDlJ zao-8N$*=WwB0Fs}^1GblTNbNZd1vGeIJE9xdmM?yYDlsRTB;qsO_O*Dw^%~SUM)+MIsiZpmpDU9!jrj8S)WHa;pbn`8gyw(QmRxizE0t$sV>BAOMh|zR*%o zdiwR5RP#tR>X@-xRVFWkxzFfb-pIS&{aN2RW6HT-MHBtws1dr^@3|r}>OjGKI1@`? zYrortXG7W(rP_%)w+Z>5*?GD>M>u7kERROLm_^|hcsc`+#GXYhPSSW zo)+ebeJT6Ey*0T}tn8NhRKXDl-T4tTpyOw=ocC;O+M>#yowI~(TEev1^1)ZpBg6A* z#f=?D$-L}PZzD`Ybv{EnVEDDr z8zl-@E|$#9=NC6x(j{3x)88H{(`*LX0P@U(=08(Ls|`>ry@FiNF4t98!;O+$IO*d( z&f%~(TzIg3acVW6BpFB+wKzR>Tosrlm&lkoXLMk!blHVx6!$|fzY8%^$Iheqr^c5UorMM!2^f|xwSU9FQb zN7G)clHltSyL627sm`f2-%HM>2?jwwks-^$MUUHkA4R;fsf3~Xk9C%iFJ@CNfLb9hYgG$PA4h?zfXso~}_`=COz zEw=ZoOYU2O@g=x-yIV6ztP6+Y1=64J_EwUOsigAULx+8HlW)~STi*_?H9ywAeJcR< z5ONFrnpZQ#)RV{g7@MmjB!?kdul>3!wCDB2NTfOG63U#Kihn+8QTK;0{uZO20&O6W zQi`hZPJQMQLjcq9&DEEQ3CmS?2FFNt^i95ZFmdTRsXL8`k3nc2D8nG}#)ceXilSZq7r<;1$EZ!Zs zDveul(IbYf787C*A`ZI!j2Kw=wInJSt>gQ9Csv5uSn0ps5fxflHn0fE*mo7L&)wau z%+~%$`+`LdO-`;ih_bm~28@I6Kr(|loael!Os%%8Qq)L&THw(OGWx|adm z`H-y(O`mIbx*=@aizDopqQO+Z=2KA@z4M`SI=PFTSot>b&HE>}-bxCHJy)Tork@vR zHLrGa_p@{yS}V`61p8!oIz|~Ybrr2_oh)*yB*&{~hBhR)R;M{KXY?`OdaY3%oM^76 zQnFV`WSM1^dfPmeIW$5&<~_vfriHde)WzwH@a;JL~*<7<{7fDpQ7ST+4*{(ZOYq(*@%o5;37|bC3`Ib?W%Q+#QiiyB=;^k6v zCz^uYM$pPPcRN`%va#vq|{w`J=r9pcfhZ9{y)j z5l&yaB&O4w>gT3%E_t`s_JvLFIGl6l+?zS{d^E6tc@kw4l=Ags80TIO8Jh({!PU{G zwi_sl)7YC1y}zNaFl&XVO9kI7x;JHBTIxQg%@1H^^J0shd_kB0?z z1LK}Vf#CsXhWs5ThG=K?%ScYsxiiL;0NgJ_KXY=6dq-nOx?)35TrZd3_ckfe7avNF znydt_+rGT~IPydxiGsi(mWta6+w?`7so!3tJ2Jc2muRs|Wm~c}r@iXz3sfYI;~;h? z;?%QN;e5wSszGG%S!tvGs$5(0(b8!BVGxr3(cAU~jzDMMv_ipK>FT>yl0qwvPf}Egj;M zX!*0*?cIh_+?gfCb7$Y&ZDnel-gX8!>4%)AL`j z4on1F%H*a92(D+o=wfTuQOKt)oT$m7rBo^5#YS0wES=UgnaEI|&v-E3<}c264GrB! z-=t$0Xpd1o+RRp-X{cusd`^-k_l}S8R28InF!S=I;wlirK-Im@;}^fqgHxW-ho$Jw zlOfAyW)Y&S{3vmiUH$p%mk+T8@i?*d+~#r2iIb_dtMnW#^33KhZ|D^1sQ(YT^DpM` z71Ny`APC_54^N!`x04nALxcV=OZgYY{1?|<`VX$VvYiFQ&D`D28LA0!v$Ot->@M^> z*&U-8iXpr631ax_d;rY;`+p_7gTNS~^nc0j{KCJJ-7)3A%EI|9d=y z5CHr?Skk}qqKy*X5Ci?DFZkbEoaP!%CIxtY^-vv6 z6_;<5xm69dOZ-8PBi_!^Kw zcph5NF~)U~H92NFOy6>v@0^TYrA|eYorj^x#BQMD^+9+SH^fO!5e71s*KJ5o2?kjX zhklq!2aZskQtTzxT{cTzzy?N5#|v{qtv#(Svd|$Y#!^Y2@9Vsv6w6Cm8k!53)%+&$ zO@&LE-OnQ(cW4Kn;q$+1R0!-@bVuF!zP<$+OY5yA&cF1fN7%_LNp@h}PeA%101(I^ zjG3?k06qpF=KAX1l}%7k@ahx)Du0#!%rgK5Fj@}3VO{zD<#Y9Uh4WkfZ{;z(|6k>Q z)rG;i!u*AYv0ue-mH#VU;bP*&2MGTW^OgO|=gR-8J^z*~__a~|O|O9e*AXngi%#(W zrY|gykq*8Z1&mmM0K=8m!rxcyU%DHZ6?-MG!0@Xm242n0*-{hYZpe!{1BO=%;^l7q zw+j9-tZL>q5MDKNw=1!XKPuCJz?`4CSwdh87@>`;+EpM{cIHw9mEsjrsf8*hFmok z0>d<4)(+<4XznfRY^i1Ej?p2xYVcKmW0WkQHV+|CZf#BWzxDrbvLe4qh{?;z%k%LG z3G(p?gD?rR;|t4S5)hLx^Aw1&3rb<|q@KCkI=lVledUR{`^!@Z<0XK(24j*m##07! zb`M5mSCyE)lf@h&^iWnrfRA5*Pe4FWK#(8A59Z|KXXE2zWB+YTyfA%; z&&R+I#>XK2`CsE5&oM^Kv)2T z8O6WZFoE*_3l9XkT9kkH1A#Cr`5!hgpTNJ$f-#Nzm!A*_Gd=%?Cm;mAnt}hc3H{3t zz%TeOKfu*a@{h8@810*X+d%(}SwL9u-?0b-FuT)#@Z8~8B bYW=|6&E4F8O&bAWAP94?6^q>log, "Some text" +# because the log unit looks enough like a file! + +import sys +from cStringIO import StringIO +import threading + +logfile = None +# Need to make our operations thread-safe. +mutex = None + +size = None + +def open(buffersize = 16384): + global logfile, mutex, size + if logfile is None: + logfile = StringIO() + mutex = threading.Lock() + size = buffersize + +def write(data): + global logfile, mutex + mutex.acquire() + try: + if logfile.tell() > size: + # Do a sort of 16k round robin + logfile.reset() + logfile.write(data) + finally: + mutex.release() + sys.stdout.write(data) + +def getvalue(): + global logfile, mutex + mutex.acquire() + try: + pos = logfile.tell() + head = logfile.read() + logfile.reset() + tail = logfile.read(pos) + finally: + mutex.release() + return head + tail + +def close(): + global logfile + if logfile: + logfile.close() + logfile = None diff --git a/lib/python/Plugins/SystemPlugins/PositionerSetup/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/PositionerSetup/meta/Makefile.am new file mode 100644 index 0000000..a6b296c --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/PositionerSetup/meta/Makefile.am @@ -0,0 +1,5 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_positionersetup.xml + +EXTRA_DIST = positionersetup.jpg diff --git a/lib/python/Plugins/SystemPlugins/PositionerSetup/meta/plugin_positionersetup.xml b/lib/python/Plugins/SystemPlugins/PositionerSetup/meta/plugin_positionersetup.xml new file mode 100644 index 0000000..5e1db7b --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/PositionerSetup/meta/plugin_positionersetup.xml @@ -0,0 +1,20 @@ + + + + + + + Dream Multimedia + PositionerSetup + enigma2-plugin-systemplugins-positionersetup + PositionerSetup helps you installing a motorized dish + With the PositionerSetup plugin it is easy to install and configure a motorized dish. + + + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/PositionerSetup/meta/positionersetup.jpg b/lib/python/Plugins/SystemPlugins/PositionerSetup/meta/positionersetup.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7f8d8d224a4a1b75c631a5b03980105ea090df46 GIT binary patch literal 89388 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 Dv10QbjDRA_)m+2ZETYtHbMCH~l zSMX45KXx4U9(wjmnJt0Gp01w`!ml(GrxSUu5_iG5E^UasQt7TWa5Z|IAkh9u@PW_% zce@26I$Ak1*)F-3cZi%4nsjA+po3Up-LDUWrn`8&;`9yP9(Acp8_u|GoXf{n8>`3C zYn;dzd4a@XCM4k$F#`0_i`SC9i7+C{9$7-~sgtWPo8@uGnl;7Us;c%lUwOg0vemIS zl(fs}T_%ps_2}_-m|U4Qp8x)uu6Jn{uj-7o4UQfeN)1A5(jVlD(VbCFWrHQfE22pf zh`}^UeWZH)ma(NAuF?`X)S=!-yD`q2SUzN9`IV$4&p;uHJy z6Ma;;zMm>aIcS+$>`J+1uYtI64s~s>&XQb?hR4f0Hz=J)kH!wMi@Md8WmHK7Wl zyd}HpGe1O2m61K0onvk>iwzUS)<{u}T9S9n$@r8&ZNasii$cRaQQfwUdC+NU2eY?TVnO_(JjPn{(rq*EadZFO?c- z8SP5k(M6E;@X*nlQY2%ZYNpI!712FxC`ZVpebSEcp*L`X#M=#*M2g#?m3Rf_aoK14 zhbNGPm6v{JSUy%c7>T{x?sVC*l&9_}X5ScK`gV~sqoa;YCSoc2j43oFii{@jiAF0| zC3y!~bifli>U<{RW@Rk9y>2HLXH1%ht&`tAvmxb1+?-I0gf$6~Vdm|&Ne?NUw*8$) z*kNHJ+^T>nTB%9BV+B3WDhXEUzU)|0K|6s;h!v~LyTf_X^(yfK@pl(R}evx4xQ-M zmoFEpxQjVbRrJ<_b5eoZQtOt;==1i&eGz8I;5^rWj2XYY3_^0?*Er~N;++`Qj!^5-Krc+ohb8sKsEBolfzYaftTNFh1>|^>sRQyGr zdY3$;=H+47Xm(Q-iGW{lGqZqSnCJ38hb|g3+t6#+|3)t1D$5b`hvDx!O566CT<&7- zNIGG4bb-h~IE9q*A-2I6Z= z7g%0e)gC8RRm+zs7B*CU9nck8+jSk-8JW;St}v!)1k$tCC?{VEQRz9AmXqn^T|Vpo zEc^xS)Qm))=zc-HZ#u!-^xvCrZ!?KBU0=MjXy#;pmTxeR`3tL&0)>bb5=+~}iw3+x zuAt?FHmajxZRA60%L$nL@#4C?Mtf+)WcxcY<(?D@Wxa{`ZjQ9ir2 zvAp4Xc)nAQY8z!Op)&q9h}q2OuO;z`=c)jNH!-c*|cz^ezJREDUG~uIrt0kn}Ac#;HbQTRPeCR zR27-_N#x+Nm5K3?x2ezPfQbDrp$jbyYbWG8i$>&!OSn}EW4E(iQJC8;pJE`>+KdWP z`rz0gDed(7|Kv$GWFpU;TH!p*uKpDn+Z#C`+pTFnSh;md^G(f=Pmno9R9sTGGBl^A zwl?jfhuT4{1IqPpjEr{1I!a4NZ|}S$e7ijmB1y_KO`*b@H2rjM-(FB~wmC^;XK4!> zH1Mwui?*v(O3b%6OG_Ouh-=Av_fU!yskL8Xc;D&pn`&+nKPnCNb?-acyO@6P~s`;GvjFLRJX~m^Z{^xX|WlB92cixPt z4<360rOC8yV`G4hLTV_ZFbZ!zF~5t|ra&#n@lfVu<{Q3ihG1LS*_-Xlu;+oNHuEp0MfkZBkm$N{yEy>I}%P_Ou(J_!T|U^u$=zPNFIRAg46e#zff^Nx5)@L z-k+J7JG)w4?dxk|?EkDM`d)Ds@{CEc*7Q*&_mewv6|UUx5KBLHN9KkKlD27HroqFP zs^0FshC2(Zg}xR*ZggD&Z!*^!nHUSdutHGQ&nFZ?0X<_%L$WmzRiZ3-toj$NLa z`RaE+K6S8O>HfGpb%Skp{*Wf{kBeM9)RhqO`#JpIbR{=K{C!dbI_b&ei0;*Sq@WmSXWH0(uEx zD`Fy?9*2k{#$RkBMPXnoP!O=kwUPVCn^^sz9FMfIbHt3u_c@K6XNbq_VOiijeElP$ zVcRYFs3R|>bZ+-WcrQv!^M#kU3c9+Lx(7-^cZz1xuQ5PHms-PkO7|rbQ^0bAD{eLe z*~8Q&cEQi;+WVYVwNj;V7LzgadNJjS0}JHC+YV@uBE$WtW(@NmH4}J!_Mx8Ny5QC9mX;N+5=-2+5+%i{ zgPMne_!qJ8_kmzQN=Y2N!9gOJ6ydp<-bQ$UOSHD8dnZpkdt0?Dyv_?qyxreieo*ZA zLtF6Ua|uG&=>Ii)kkD{D?;spIdZKnZF z1A#6j;GM|^MwB|;G-DbGmd^64lc{X#c48NT%(Y557>5f&bvnmyR0iV#%jLBa|npInPn%bzg+Q%9quzmsxc3Gjtm*!Dn6Y_+Amr+pmGLAtSN%R&4et+l=UOpG_`P0o9Jp%y3 zPJ^or!@ib&(#^B77(1=E#G@ix&ne#hJgLOq{n;q@_V(j?HclCV?0n}-g@tdPk$xWI zOMyn(!RQh$jtA%|qy~c*E(Vr=g2ID=_GMbkV=?e}-=iuYPgGwFPC1(~-1W4+M?5Rs zyr84Y_>!f}Loea8g@R>j{!{g;Q`0sB@9fft1&o$h&okO+#Avu8sJRYQ0g%3)(1{jf z>N4*@`rRHgW4BNS<@W@xjTDiRhj%Z33zJr0b0@tKsjPb6O<;4?)O%ZB2 zm)R|_7c5&Ga`EiW_e;2@v;ed6Lf)$jpIg|s7mVi~EN{*_8cN;h6Z60q@LPt=`4Jdo zI0k%3SO>JP5c#>o{C(Bqocy0LjpZUDnrnzuRndJs7!YHE-3Xl2r4|EK5>w zjvV(mPq5G`E5VWcHTw19A+EeB#qVd^*Vb^#fh$lFQ;D`1{mW_d{ALFV1Xq^XHoYw+ za)j_QDzn&F)Um0eXxzU%$k}Zf6*z-C7RwcA;ktC^i{QlPM{&YOw%5Y&63(b$%1(c7mEN($LAU77|Y8G6gF#Z<20B=ZJ8x znDy^|T72*aZhKZ?{_gOs!W|VN=P&OJr|#TY#H0TCBxfJ@Bpr$YhX;&LE3rYf5IW9-xHkMRxHlE>6J(BHaU^x~bCspq!37bK6FrMs}3$50|2h4|=O z5m8Te&!H+j#V>J8JcSjX0)1!dO?QL|A#ypP$xVO^_p%@UvlHsCv2l;67W%4Q6 z4GAsffkgz*Li(qV_c}Z6?ivn!5iNhQ-%RYtOU1pT zB}%y`J)YF_(MlO4U#f5{T#C^LRg?AQnln(hkv*rv&@wIw8+!2{$P(0G%9j+4N*7zF zvyVgS(rCELqZ`sGUSE39GoFBZi_ z?NttV!p6vBtT09y(SubgCba4vjI~kyaE4Zuw^s4@h3{AG!tE_w+H;>JDOGcbbRgyS z=66sAnlI#s<#1N$v(+TuP4@>#U@F)SfgJ%9&|QQg>D@dwgNnsHx&B{M9=pc07HroD zLp)=<64@*qb_LhyZs2i!DcH#0H4<){6YSonD7l0b#2m}xt2)`UCuOJ{4y~o&`C&GoC zSh^dN0r__q6}7Zx!-q>3PxF{1<_i6YlVGl?i@# zNgVY~EKiB9SaNI2?+Cwjo%L}5beVz^hZgB|tX)K?-HmX_rekg6^aLg`lkPZBvJ$qX zv8Gr1=v75%@skt-0i9Nge8l!$2YPKi-!=2@RwTBqRJ8DkrJ4yLSO)m$6*A(U=o4bl@_DuhP|yt8+iE4(akKxM)5~X z#Z~D}>8U*rG=FQ_9D)eY7uj`?k~VAxP{ORlyXsKMcdIKZBCUmjZo1eVJCdXrtMrn5 zMcq+P?QjZ@i|ZA}yC*LD!|J88?lh6TC>HRykk;jsDUNQd4h0DQ}KYkqFto>s5 zyUkI3qgXYsH6f-0ct|AU8$AT%>rhzJxyWL#auT34-J$EO( z@KorIV8bpM(OX=$uXEZs6StMEWtfL{Ub*`HI9v`#75vEpgDV$#Z%NYO^xgEXF>8$E zu-J0huI%`{M3I}K?`;mUwSP5z*pvP6Y>3yB!x)ZVtLix?ZOfC1KC1)(Uj449E}R4t z0U7p8+HA=Iazf{X;;ib`Uwz8zLDw$%Ud~2cNB&sE#Mo6OogU&L7lWY$*pXK4=NZVd zbf;_E1n_ZPo|I}F$`ajUz(k`AkawvaI1DbyJOsn2@a$LY4?1O0`6wqpdaP=kU8T(a zZd;#-u~5@66ot_a6RXJ*V^}QBdDZ750MzR^|@K#>lut*Pdyod+58k}Sp=WZ|GI&= z`!{2qGv0@>H=v&^OwUcGVUPgx4!8kAOFYvDL0ISY@RxY^ug|spcaj5V29}Wm4Cxl> zdKF~-PC!XShpud?zOQnrXDu-sb*~84x{VCd9sLsCuRYDJ<~dpUN|s`m&RNtoP{U~# z`&7NLx*M3rFee);~O^nUl0QV>+oXwO>Jy?-eme zgNwl~D}<|IX5rP7`MZEPTR#!VVK<|J_jI?L@GK9C26EcjMUi=;=@xq-3e&d`geVx- zc2W3#zw}PLAO1k;$H$dtbHN);y3Bg=!6fY zHX~okft%w~t#R78x9u2)@kNqBZjH0?%Ckc0TjJdugSBlchALe~+iw~ORKIOXFk^kF zF1UJf+nD0M63I8r9L>v#Xx1^f1!>>ignhQbj$< z>NBJbvQWTupktSq@T&Fq;BvKr)XBK^D5#wkj=BZuY#IzUG?Ed0h|EPFBwxY`voYI@ zs6E%%AitEX?f%}0bNy2Bb#0@MQuY?Wy+EJq-BE^t0c?|-9sGqZ>X#r?-$ zF}Ryow3!MQV44u;m}a$yhs}$s<&8x>^K>dKvKKzGN)NJ`4m~>aD6v*9u?!!q5mi&m zxm+uK_*@w8ZgEl+)K=P4+U2G&KdDATlZOlQp~B7{8@fD3y3KAw^%8lzRkz=dmIE>( z`%k}j=8=2dK`@MDJ1T6mXmbcgl{liX-`bY(kU^ngC>$8buoPwOJd91`qOxZo9|-E^ zHfWMJKRewU)3OV9zpoc*7al`Kb$Q$kdP2>8@q4c;A9D)TMwbrThvwS8;CP^=R>SR# zJ34G8(|nRGCIcxIe6ow3?G4iSPe429*OeAGfMGmEQSi0iq%2Cz@VL;{$ZoTTc64p{ zloY?7XfN=DfBy z{7>gf3Th^(Uhcz5plT@uJh~4%eO-9DDT;Rxcg><|C~7gQ(KLJIt^u*`!E|3uTDif< zo$#xnpC(-W1CPieuZ3S4_Zs){rSLMo0w5uTY!bJE1|IP=>N4xgW!^$&!Vpe(W(}Cc zmk3matjSkb=!|D4o%pJzGuXS`-Ddb}2Ono=2MwO@=}4Q7I`(WEf zft5!gm}bsgBMF~ss)x^}6ZC_p`-Ln&pPF6Raxco(4#RxhzjCY@V;07i&!svQ?r)i- z{?T+DX42JUN@tCeThPbzxb(Tf>M5sr5NfyjO20Zv@OkcFnfbyc{l-pZf3*7LJ<@!9 zd^X?=-gTsF(X@U`{)+!HK@J?A{ef2qjt?#m?mtEZiP(izM5*v(?$Q6Z7192KGct{a z%pjScEX91#BT%LRoS!+Dtm<((cezpZ$sDU2xb;-rIyf2`U*3ZMyfg?~bA$R6Vsqkj zDj0)Ss@Koz`h9c)WQH2$kW&gGb)^>plsS%$Af+!HkG9K$y|2Hgn= z`5CU@&Q}5H!xC@-{gs-vCS$>6`9pGMu^*m=!cpM*LtDa|rJDUKNRRbe_nh%^gK5V2 zy3)eh&cm#oZD9#NSpr%>^?Vet|3JUAcL}8fo(6b(zdcRU1)T+NLuBH#m@!)i3OCX* zGlU6$RZMmprUjq&U>f7h(8udWr4#*}`rT1?VcgZ5Ve|TYC{vUvw1erngHC69hIHam z#@Z+e#gG$4Qf>lTqH*Ro1iBhc4=(b@i{yRjou1)oQF33TM|!yki`a@amtM z>UfWLVVpp2SM*q-Ph#be%^=#);LykF-p(J3uwTe~AFwEd;!t zjl|L8XbQ9uriZ>YwwuS9k<@ET(}<%cE)>gIq?t3B$`;Dcrxn}@2VdJ%=o$8>rW>$s z>&VO=&}@EL9+ADF(lO}F%54+A$lGRo8A^FAOg_Pwrh+$1-DgX;!==OFXcY!E8v$kP zyU*ofwLQpSwMT0x_x`o?tT!JOxKm*RH$=}lPGQ0@tp(v|Bk2xa))P;9G*><^u!=CX zA$kWq7O>>8(W>S&=~1LAkw&}DO2e7PQuQow@=%=NfSl~G+{tyzdW(G}f^T2Q)!OZS zQOW1bzT5w~o=3ahR$zTGdC0J3OmUVY8g$tFZ1vT8zw&>9u*iX~c(DhG{m-wA6JWNYAVm+U3n%JZ7A3 zqgh{3)hKi)-Q~8mB1P7i5AnKV^-)ZM%q`!ogWml7N(yDwvwT}sc8PdQqsZ|>UBmr;P4blFrL;0Mja{`Z}WnwR_>PGBm4Hn=g?Dm{ApgS6)gN$ z>9FyhUO~=B_}ovB8zKEZeFaOkenP=Pc)(=Pr0-u<;g<;_E$G>h^L@lG>LRD!#JI_R zGWyUWvxicko7i>Ve?XF(-(#4)nMzpna8TMec@t&XMD3ZhZR%TrOSz0;FqQBht&j4Y z6-+MjCNxzDEzZm<**jEMZVbNDR>(ZLZ%&akNb*&RJ8~(*wNmS`>;8T6+J8^w**G#% z%7~{B+IgXmrBEw?V4k~r2Q5Xzqb4QCFg}!c!hw2 z!nSjybS-++>?pCT)%0sPuv6WNk^tu+nDGq9c!y;M;h}AmfNApQujDinO}bInE6UjNN$;wY zWg1FCqI|P3VmbG`0 zu~Blyd&0z}7WS?0)|^{h-%Qa9=8-#$sFLfezjumvJH zrycD?Jd7Fmm8UpYU-kjB-~j3I?0o^Josobt9$^|gVZ6YTDV8H3a~onA%5Q$I_JTj^ zBTlBm`Jc^P=zIrKkh$nq5gdthG7Pghj^^zp-(k+7S^GD6|4OmRLH(8Y#=j#~^Lq-A z|Ba%u0nYRwFg*|Spy?4!0d&^%z=#~jx{~68*`tmo92?&h*gqFn(k(12GCo_5)wr(~ zY?DymH&!VSkIy;zT{yEL*em#XfGxQAQ>{_uy^NMD9wHxIGL|8#576lIP=A?Mh+kV2AA)v}r0H8?WhAFF4zH(gCR<7Skx&9?oY z&VXt4)J8f-5};K3LYZX1yz0cBfu7K&mvMvQuwwFTWuc1Natn4aYfCWNdf(Y)8?ifC zVJ%68?ObdOX0tJ$rD!iBIu&DO?rJ70&8t{@8Uo=%5|{HO0(;t zjJmRuf^Lze%1}#D^uCWdY@&NE*^#o3&;(7yI*1%#pC zx?V$SkQ;@aQd44}&p$sV1}+#^+q!ho(6evK)4w%HaPhORW%1W%fzkToXfYgpiMZuT?9peOz%88~kSY2`Sn^|_Xmpj=TZ|@N_dvCz z@9e+NC;Ww`enaC+!8m94A|7`RiRj3@N^?sqVm$9+UK(l`%1qf(yCP(E`Atov-~Qvq z=d+(2!R_*6$vhwt%pSi+XINmOEEHLkYf&O>kPj$+2v9BL50}ot;M1?uDY;N}en&oX z&6IAO=H;V8Yv48ExSueR@FvJu5&tw~VCwa#X0tjQ{?*eN&mFNI^LD4^U1X!6ZnzZW zLP$4fw9v351c@34`Xi#I&Iud`ULl>QuRlig<4nwi)9#h_O`2vt$_%aTGcbF`dNG7{ z=HtiC_cx39uUzu9A%gUh9zRw}S$#&iCu+%vW@PmGM9C3O59d-R_TcqhC~Oxk+q`LQ zdAhzb^u)Fg8n<-?6c;TMPII=LxlC%4$o;s}M4k=02|m>>DjZCAq1>QT_>1;oL0L>6 z$IL7A>#ezmK32=GPED?UPK#6X+Ar{vQ$Sc32&ou{N$5;H!BtH8uWu)WWOLsl;9r#UYj4 z`ux0w^O4>1hc2{;uraPfUa61IEbD=~hbj!Cf-80<7j=6E*f!(hVWU}0`_E>hP@yi} zDxzhp^6jvbFK-5a@Z9K0A>9rR^=QRAmoJH$&Ut4laX1%W4ATCv_w-F%B7z>rOM4TD zEdp9C&o*g@4&H1g2;|C|FB$n83Z_*XjURn^XGYNGaRVzV@as(WTlUr~@58j;^GS$i zkp`Dq^J9=;hR2Yu->G_owixSEDh}pu3^i#t4M}E!D;W{y^H;xYZ(BJz>}VErf#u5h zi-*UK6dXI4%&B9kb{AP5T<-BabbJq{8-l2(UFac969iV4Ajx!uVkT|8UP0CR7F&mH zV~2H3UkB{;!wfvKl-1cgHCN*7VxgC=%DeNyA!{X>X=O|TG7hv^*q|_LI_pfa^5rd+ zya{Lct7Sjc!d$Z;XM4=t@B>Clf3Sq5fKK{(mi!#6y+0muWx0;&#)3ojH`y=|Ee*aV zfrc$`b)Y-kL|r)QjKka@*6fmaQktQ9ypSp4hh3^(~>OJUs z@lJSq)RY@O@8!qKOpbdHzy*{t0gT;T#56`?%rKf@eBdX`xwCb3w9>@D#(OGN&EpeW zCPN8ihnkwu4*9Sj1?P|SWb35!H*lT1d-Sv*LB0feP@8gc57^OE7+k5L`xS)MsqBNr zle!%U92spr%pltEb1|PSYnEVsjBk$9w)K5C+Fx|CelQU@OlV^dd`Bj%lqbBkH8CVC z>GO^JY5!3q+w}ny+@p+eN*1%$rg2nB)Mq(ItGU-@VPv$?0)n(E{FU~@nL^t?Gh;$5Aag(MwH}+&e^-M1tdSN#rjmM0!_GlS#9{IU*gCFTXcA8_@XW+Z{N;>81 zR9$sLO`Y_nC}TO&1qB zcSB8WsMx-|;mL4>ebi8On!#1-slwt*1<@L90{cS4xD$S(F(#jW(OAt4Mle0$KUwbX zpbP(G+23fx?5sFJQ-mjjlwU5ck+=-b4jo`@n@4z);Oj>7ysJi0BzMrnk))LSHdJ?^ zKn|EHmqL(&>btlw$$`yz8|W;#1?%rF^P^jw!<<_dVZpx~L-QI^>{t#x#DCrU0VefH zPDew7Ae-=%MN1&M0LwP8Zu_a+0wDfJiSgl$62DM$K*g6BZY$27>&2h4Pv!t0fr`A@4UMSWap$_XgEo8;fSmq1_*}Dcef=(@8`@`|1Rmw*CkQ?Y5NK#2>FpN^nu_}ds*w^3XuPvRkbbhQMokDaZd^xL|eP2UDd@Ie&(g&G+yiSAJzWg^i% zlE@GmFQLh9C^8?4Bd^1nNpQtcLGz}RSr?8Er=IxQ?f-=5e#QHYyN)4OY|8htJk^u^ zw9+TjHqO**tj)edSb7?q9%XIZ7uW(#fIF2Bdaa7{a-mqMUFn0L53DEWi%%W3YRfQx zFEm-~p;FcRVpqbL`mJqNFM2Pm91B<3ouMJs!h=COc~*U5d0DPoY%;Dt1)>%v! zo-JL%n;vDjxWt$Sv1^I7@l59_D3HII?tTEryn}Cf5Xc3%NJ%` zSNUr7oGY6C98M44-~gQ*#du#TR+)Kw%o#_I^*2rp&2rMs>B=-2T&Nsn>z~rK+o&os zwEl6s0~XPJ?v_B=|JB}=heN%-eWy*O$mxWT`4y$Ios_jQ_Hm*Vl{HgILekjR`Lt$2suke)W8kFN`WfZ^gBV zN7K}v0!?Z#j?-eRv(>9IBLiBX3iTi&+`2;__3@rKRH znrr=b2R?jFnc2Fvae+6{89mFEp@yApszrK(b}6f-JKkHSxB}h|;;h?93|o~c7HKie zq$IFRfcK)7N?CBi(|hU zWo)@oDn5=IsgH;_I=1t5?5m;x6Ro5eR@TlLROdiR@ZgeVf`VD6(Td=zwAD+y5~{8i z1sU??)_kQfsvqy=`U8C(TewzQH8$?|HIV47Ox3x`B`EepTja#K7R1x#wr!$>#9`H! zHX@1M1&IO};#R>_=#bhhsL|7)zPP<`CbIw87#%BIl=?-k09x12_gy@mc8 z)TqP{4K(c0*Px0YCr-1}*!F!;>)b|_M3EYd^Bh^Wiw5?b7&`zlP#DH#Z4FS%{qO~y zM14d>XIXSutGh{vx@eYCFQj7w8V#$r#}UVzczbJ`&t@EKI--70(G<5P zU%NQGDf=rwhyLbg0MxO4qZ#lY`&BJ2y_WbFiqQT^Fr$@$5@gu!XLx#3B`WgKQ!J~d zSb&l=X=v-^!`j`jnh0FIcwB!TWJD&qXHM#21eWE-5-bI@k44dc-;?c>=^(IXRXiWf zn-&fH7O4X+OrDVOhdMVw?M5!iV<2nfv3oZ|u3icgcS79%{q{b`$Y0%FjxIWGA8Ij4L}!vRpK9PE7$+R;hRq5FW=Ibyk3no0)&E>qIp zV?~o%uXj8aTZbhq0BPr)hG0>uZ-8Y{Ooy&=5FjSaS>^U9QGs?@h*=_!GPk9 z%O6}wm81xwi48p$YfMk257yXE$|DIDY4yVDd2jk2det6H%5&pBVILxl^T{}RDmdxD z?zcrs1w2>9THT1y-IRz7Kb;->52fc1$h#*+(PAl0wUmsC2wjk4u^X?6K5yxI%b4aw zH6Lzo$9LsOS?P@89@VT*rHAbDe%8z5nl{DakYILC`!=V9wgVc=bA(@rXMhAf>X5V3 z?c)FqKun-p@UElyHi1b5!&7(Id{QhASxbt#`ny+%xvs065AJq~k z_x$Gyb$8$ft?kO?T_@5nV%k_ec}#|~rJ8K+Cew$8*7caye(cl|rs^?lLkN|~yDvZm z%W?DxkcAS6ziVr0s!y~Ru|CvkkXvW7TqGtlKU?FyzoZ~)_u*r#;yby8y*17#$PsRx z8qty@t3E2=EIc@h1xYnfm1YqDo7{66cLkAzt!HRc%|rH`tjR5iH?ov$+7ZL!f0%>M z>6TEsMpU5VQMRO!3snVN-oHf+{=|KnW@{Q#H{Qnk_&Ozn-exmy#X#9m1sSMVI^PJ1 zrmtXn9SL68&;i4Ym@Yz8S(gWbTuIg&ww8148D&%#4IMHxs*og!h(gVTMMb^$kia+VGWYMvQV+sr)3ij+o9_EaW69f;;*%nM=8v zN7;_Qi@iniS;Sq)I-|sJ{buzx`HvpKR2u?@Rsp&s2s6wX%tb3Y^QwOSiol@u( z6zkT5@$r2bTz)(c15~}Xt`L76z1`pSVtK(G9wV&UW<^!&BEpch{z%~M3cs;RO=hie zIK`jJ(e{Cag#vhC?HPgKe(wI>yknf6XASLm^qh=6nSuJaPfxzRZq+CCg0;^FPp8GO zZ`!2aZKl(5H>f`5$Wv)qQ$_o96o`6P@nQDUa;ObGm7w^=wg(r2i{KTbe0OAZnCG|appE4X2Mu8r#eCEc!ms9g0!7g!Yt)~kEcTma=Snf{v8-Sbl3ZH3>~i7 zi=1y$`GCu_mMpIT0a)aNv?!9s6w5u3P2FM@9-Rg!AwHP+zJTXo^C;@J{gZPqb5no4 z%m@uMfQQ%R;iC#>4d>c8v#fNNQWT3rU4Loks33o-!?L(Bkhe~;U02M^ zU-(A973J=cEigDh1QIH@c>-1J1L<^9Rk{thfyjOdwRfxOhuQ+LG}94*)lN?sEg#gqY~HQ!Lr$aC?7#0K9%UrpxvP__)KpyFKnK z8uak^wY-N4hzERi)3r>^?u3`4d=*A2x?|k7ak49Sip2nGk*ih-bqx9;%rylJV$_~uxxEo|b!=YZ zn&KsVbo|RLdH?ThRqyP-cfV%Fe>MT# zbkVrNu3>T9u^K9feYTI$pH3j?MZnrO8n;cxFeVgQhEH9c{E#;gxEJfxKbw*WYNWr> z&|&%&y&Wiyt{_`R4oJ~pP3-k+EsU43F^BybhSG8vQ0sCOFQJ? zGh|&%Xr4@r!tYFQZ+$}2xOgCVBDOJc^KtUYlb?<{=iDFe3;VdMZ29oyqqpW8;Kifd zSAflHTNI1NYvX$NhT!j6GzL329?0k0R@37R&1*-B=jk3Z!0KlG`28nUxUid9z!_p1w+u{DOoPP6osNTqdwq035C&mKlpILg(7>8r{|`4|e?l5X;6 zParX2>w$Gk4cDh(wW#YKTe;ff`eV9CWdwY|%9ea19s(y@O z!qCSM9ZoHi5qx{?P5Twt*2@{I6|QRCu(Mc`837ADhay9_4j{LVNv@=j+RaMstY}eg z7uN`cJ1whZj1KFLoa<)|L5_-@FFAnh#q=Ob+BgU_Qyo(H>zBXZXLP)I;uvqt*nH;p z`jdu$t~hNw=lnN##);1MF@{MdzU>5-{x)E+6-?bJK41#wPy{&9WAOwMJr4zy#!7%G z1?+G#saNkdb6x~Ur@HGz^8mNDWC_|vkh~;i+FUYeG$bSF5cyLsJ^p*BFVngO7A zd{%Q2U(?R@X;yzhEdT{X87W>YKo*DF>M%fgL_fB^^-=?Or-Ohcd1%mNTHkDb%04`QJy zC&GaxFM-l-&nRsH7C?DQ&>XgB{l^zuU8ER}Y1eaX-pccUl@n*3$9Jv#Pi(QMnS<#* zN*HgaJqth}l6Gp=?aXLqfoowN`bDK178$V#8VN0l)_7*LHt!pBLAmHGuxA{{FLS_N ztQUc4rxUrrJG%kzoG|M-zVDr9z1>$0(Yp}F^!k{|*x3(4Kc14q^r1|jGozPl$SkmD9LKIXds?KJ12bM7vB)!z&3pCldFI7_ zE*>HPFbw-C!{xX7kH$&gWo__-^ZVaWB#D9V&dch_#6C?@IVpsz9GymscaYOX7}=*7 zVobZ!;QVoe7z)1ENYI>){VX`~#y1NTSPj1~mG_HDe4?ncKj-N=F;a7erh{OoF~;{v zPCyII>nv~JLC!>Mw`Lkg<;QJoTc5g|FWzS*CA6(@#p$(IGZ#9O?^ESW#UV- zqs4T>%fl*NKbK)c90O@M4V)6OIsZj!U3`CPV~Bc0y^&j&xo4mXuh&W$K6{}}`j?`g z|Mr}$*YIRC#IcsVmw>XfHd|(Bv}T8+<8XX@q1xJOq_yhLZ|!{kaP65@!TljY!)~UQ zWE{WsDP0Wb$)fDZkZpMuH?;gTqLfhb!=WW*ewxKtS6StUdAVD}qhP&N3Zgm0YX_@j zh~Dva(UYN!%<<#_lhtFp!os|I_Ts|$-3^=)R~wND#5zm*pmX5B;gy9g4&8e(LHuB4 zP2r}MeV@7=b^^$$m>U;zO(c(u@Zt{$2<6l&UCw;qs@2+7!r?1EeA!dU%~}4`A^3YH>5&UqD*=oT zBC^h8W!j|8au$6zN;y=b@fh&3aRO__eXPut|_CZBG$c$-nieNfSF(2Q!KQgm*3E zjLCQ|XTScXOMHD=GmLdNvmG>Wow$RH08Gy_#$4IF_S)#6eReREB0Hm^FOr^^rSK`( zC~j8Nxm#^wC6LErsRb>X^P;{CRw7m(=gznuRTnuKz@%Jup0jYKu2;B)@P&DO)}3X{ zS-JY8Nq(eWCt!M>vFU~XkD+Pn_+Mejw^B4!QlkoSL_KSxq{|Z)InkJ*0t*LiKk0Z= z%edrc=XU&JW>_zY^xZPH@3iBnY|w?DLTRm3jtc0W?u9^_r+ua_A$|SR3+eI-SkuS` zqlUDXL~DM>Y?~*<1|BYz&pGR|%-w3V#sMLNv kqWPmz`}HW|k4o*=qjo*0KnD(%m4rY literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py b/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py new file mode 100644 index 0000000..f3efecb --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py @@ -0,0 +1,1350 @@ +from enigma import eTimer, eDVBSatelliteEquipmentControl, eDVBResourceManager, \ + eDVBDiseqcCommand, eDVBFrontendParametersSatellite, eDVBFrontendParameters,\ + iDVBFrontend + +from Screens.Screen import Screen +from Screens.MessageBox import MessageBox +from Plugins.Plugin import PluginDescriptor + +from Components.Label import Label +from Components.Button import Button +from Components.ConfigList import ConfigList +from Components.ConfigList import ConfigListScreen +from Components.TunerInfo import TunerInfo +from Components.ActionMap import NumberActionMap, ActionMap +from Components.NimManager import nimmanager +from Components.MenuList import MenuList +from Components.ScrollLabel import ScrollLabel +from Components.config import config, ConfigSatlist, ConfigNothing, ConfigSelection, \ + ConfigSubsection, ConfigInteger, ConfigFloat, KEY_LEFT, KEY_RIGHT, KEY_0, getConfigListEntry +from Components.TuneTest import Tuner +from Tools.Transponder import ConvertToHumanReadable + +from time import sleep +from operator import mul as mul +from random import SystemRandom as SystemRandom +from threading import Thread as Thread +from threading import Event as Event + +import log +import rotor_calc + +class PositionerSetup(Screen): + + @staticmethod + def satposition2metric(position): + if position > 1800: + position = 3600 - position + orientation = "west" + else: + orientation = "east" + return (position, orientation) + + @staticmethod + def orbital2metric(position, orientation): + if orientation == "west": + position = 360 - position + if orientation == "south": + position = - position + return position + + @staticmethod + def longitude2orbital(position): + if position >= 180: + return 360 - position, "west" + else: + return position, "east" + + @staticmethod + def latitude2orbital(position): + if position >= 0: + return position, "north" + else: + return -position, "south" + + UPDATE_INTERVAL = 50 # milliseconds + STATUS_MSG_TIMEOUT = 2 # seconds + LOG_SIZE = 16 * 1024 # log buffer size + + def __init__(self, session, feid): + self.session = session + Screen.__init__(self, session) + self.feid = feid + self.oldref = None + log.open(self.LOG_SIZE) + if config.Nims[self.feid].configMode.value == 'advanced': + self.advanced = True + self.advancedconfig = config.Nims[self.feid].advanced + self.advancedsats = self.advancedconfig.sat + self.availablesats = map(lambda x: x[0], nimmanager.getRotorSatListForNim(self.feid)) + else: + self.advanced = False + + cur = { } + if not self.openFrontend(): + self.oldref = session.nav.getCurrentlyPlayingServiceReference() + service = session.nav.getCurrentService() + feInfo = service and service.frontendInfo() + if feInfo: + cur = feInfo.getTransponderData(True) + del feInfo + del service + session.nav.stopService() # try to disable foreground service + if not self.openFrontend(): + if session.pipshown: # try to disable pip + service = self.session.pip.pipservice + feInfo = service and service.frontendInfo() + if feInfo: + cur = feInfo.getTransponderData(True) + del feInfo + del service + from Screens.InfoBar import InfoBar + InfoBar.instance and hasattr(InfoBar.instance, "showPiP") and InfoBar.instance.showPiP() + if not self.openFrontend(): + self.frontend = None # in normal case this should not happen + if hasattr(self, 'raw_channel'): + del self.raw_channel + + self.frontendStatus = { } + self.diseqc = Diseqc(self.frontend) + # True means we dont like that the normal sec stuff sends commands to the rotor! + self.tuner = Tuner(self.frontend, ignore_rotor = True) + + tp = ( cur.get("frequency", 0) / 1000, + cur.get("symbol_rate", 0) / 1000, + cur.get("polarization", eDVBFrontendParametersSatellite.Polarisation_Horizontal), + cur.get("fec_inner", eDVBFrontendParametersSatellite.FEC_Auto), + cur.get("inversion", eDVBFrontendParametersSatellite.Inversion_Unknown), + cur.get("orbital_position", 0), + cur.get("system", eDVBFrontendParametersSatellite.System_DVB_S), + cur.get("modulation", eDVBFrontendParametersSatellite.Modulation_QPSK), + cur.get("rolloff", eDVBFrontendParametersSatellite.RollOff_alpha_0_35), + cur.get("pilot", eDVBFrontendParametersSatellite.Pilot_Unknown)) + + self.tuner.tune(tp) + self.isMoving = False + self.stopOnLock = False + + self.red = Button("") + self["key_red"] = self.red + self.green = Button("") + self["key_green"] = self.green + self.yellow = Button("") + self["key_yellow"] = self.yellow + self.blue = Button("") + self["key_blue"] = self.blue + + self.list = [] + self["list"] = ConfigList(self.list) + + self["snr_db"] = TunerInfo(TunerInfo.SNR_DB, statusDict = self.frontendStatus) + self["snr_percentage"] = TunerInfo(TunerInfo.SNR_PERCENTAGE, statusDict = self.frontendStatus) + self["ber_value"] = TunerInfo(TunerInfo.BER_VALUE, statusDict = self.frontendStatus) + self["snr_bar"] = TunerInfo(TunerInfo.SNR_BAR, statusDict = self.frontendStatus) + self["ber_bar"] = TunerInfo(TunerInfo.BER_BAR, statusDict = self.frontendStatus) + self["lock_state"] = TunerInfo(TunerInfo.LOCK_STATE, statusDict = self.frontendStatus) + + self["frequency_value"] = Label("") + self["symbolrate_value"] = Label("") + self["fec_value"] = Label("") + self["polarisation"] = Label("") + self["status_bar"] = Label("") + self.statusMsgTimeoutTicks = 0 + self.statusMsgBlinking = False + self.statusMsgBlinkCount = 0 + self.statusMsgBlinkRate = 500 / self.UPDATE_INTERVAL # milliseconds + self.tuningChangedTo(tp) + + self["actions"] = NumberActionMap(["DirectionActions", "OkCancelActions", "ColorActions", "TimerEditActions", "InputActions"], + { + "ok": self.keyOK, + "cancel": self.keyCancel, + "up": self.keyUp, + "down": self.keyDown, + "left": self.keyLeft, + "right": self.keyRight, + "red": self.redKey, + "green": self.greenKey, + "yellow": self.yellowKey, + "blue": self.blueKey, + "log": self.showLog, + "1": self.keyNumberGlobal, + "2": self.keyNumberGlobal, + "3": self.keyNumberGlobal, + "4": self.keyNumberGlobal, + "5": self.keyNumberGlobal, + "6": self.keyNumberGlobal, + "7": self.keyNumberGlobal, + "8": self.keyNumberGlobal, + "9": self.keyNumberGlobal, + "0": self.keyNumberGlobal + }, -1) + + self.updateColors("tune") + + self.statusTimer = eTimer() + self.statusTimer.callback.append(self.updateStatus) + self.collectingStatistics = False + self.statusTimer.start(self.UPDATE_INTERVAL, True) + self.dataAvailable = Event() + self.onClose.append(self.__onClose) + + self.createConfig() + self.createSetup() + + def __onClose(self): + self.statusTimer.stop() + log.close(); + self.session.nav.playService(self.oldref) + + def restartPrevService(self, yesno): + if yesno: + if self.frontend: + self.frontend = None + del self.raw_channel + else: + self.oldref=None + self.close(None) + + def keyCancel(self): + if self.oldref: + self.session.openWithCallback(self.restartPrevService, MessageBox, _("Zap back to service before positioner setup?"), MessageBox.TYPE_YESNO) + else: + self.restartPrevService(False) + + def openFrontend(self): + res_mgr = eDVBResourceManager.getInstance() + if res_mgr: + self.raw_channel = res_mgr.allocateRawChannel(self.feid) + if self.raw_channel: + self.frontend = self.raw_channel.getFrontend() + if self.frontend: + return True + else: + print "getFrontend failed" + else: + print "getRawChannel failed" + else: + print "getResourceManager instance failed" + return False + + def setLNB(self, lnb): + try: + self.sitelon = lnb.longitude.float + self.longitudeOrientation = lnb.longitudeOrientation.value + self.sitelat = lnb.latitude.float + self.latitudeOrientation = lnb.latitudeOrientation.value + self.tuningstepsize = lnb.tuningstepsize.float + self.rotorPositions = lnb.rotorPositions.value + self.turningspeedH = lnb.turningspeedH.float + self.turningspeedV = lnb.turningspeedV.float + except: # some reasonable defaults from NimManager + self.sitelon = 5.1 + self.longitudeOrientation = 'east' + self.sitelat = 50.767 + self.latitudeOrientation = 'north' + self.tuningstepsize = 0.36 + self.rotorPositions = 99 + self.turningspeedH = 2.3 + self.turningspeedV = 1.7 + self.sitelat = PositionerSetup.orbital2metric(self.sitelat, self.latitudeOrientation) + self.sitelon = PositionerSetup.orbital2metric(self.sitelon, self.longitudeOrientation) + + def getLNBfromConfig(self, orb_pos): + lnb = None + if orb_pos in self.availablesats: + lnbnum = int(self.advancedsats[orb_pos].lnb.value) + if not lnbnum: + for allsats in range(3601, 3607): + lnbnum = int(self.advancedsats[allsats].lnb.value) + if lnbnum: + break + if lnbnum: + self.printMsg(_("Using LNB %d") % lnbnum) + lnb = self.advancedconfig.lnb[lnbnum] + if not lnb: + self.logMsg(_("Warning: no LNB; using factory defaults."), timeout = 4) + return lnb + + def createConfig(self): + rotorposition = 1 + orb_pos = 0 + self.printMsg(_("Using tuner %s") % chr(0x41 + self.feid)) + if not self.advanced: + self.printMsg(_("Configuration mode: %s") % _("simple")) + nim = config.Nims[self.feid] + self.sitelon = nim.longitude.float + self.longitudeOrientation = nim.longitudeOrientation.value + self.sitelat = nim.latitude.float + self.latitudeOrientation = nim.latitudeOrientation.value + self.sitelat = PositionerSetup.orbital2metric(self.sitelat, self.latitudeOrientation) + self.sitelon = PositionerSetup.orbital2metric(self.sitelon, self.longitudeOrientation) + self.tuningstepsize = nim.tuningstepsize.float + self.rotorPositions = nim.rotorPositions.value + self.turningspeedH = nim.turningspeedH.float + self.turningspeedV = nim.turningspeedV.float + else: # it is advanced + self.printMsg(_("Configuration mode: %s") % _("advanced")) + fe_data = { } + self.frontend.getFrontendData(fe_data) + self.frontend.getTransponderData(fe_data, True) + orb_pos = fe_data.get("orbital_position", None) + if orb_pos in self.availablesats: + rotorposition = int(self.advancedsats[orb_pos].rotorposition.value) + self.setLNB(self.getLNBfromConfig(orb_pos)) + self.positioner_tune = ConfigNothing() + self.positioner_move = ConfigNothing() + self.positioner_finemove = ConfigNothing() + self.positioner_limits = ConfigNothing() + self.positioner_storage = ConfigInteger(default = rotorposition, limits = (1, self.rotorPositions)) + self.allocatedIndices = [] + m = PositionerSetup.satposition2metric(orb_pos) + self.orbitalposition = ConfigFloat(default = [int(m[0] / 10), m[0] % 10], limits = [(0,180),(0,9)]) + self.orientation = ConfigSelection([("east", _("East")), ("west", _("West"))], m[1]) + + def createSetup(self): + self.list.append((_("Tune and focus"), self.positioner_tune, "tune")) + self.list.append((_("Movement"), self.positioner_move, "move")) + self.list.append((_("Fine movement"), self.positioner_finemove, "finemove")) + self.list.append((_("Set limits"), self.positioner_limits, "limits")) + self.list.append((_("Memory index"), self.positioner_storage, "storage")) + self.list.append((_("Goto"), self.orbitalposition, "goto")) + self.list.append((" ", self.orientation, "goto")) + self["list"].l.setList(self.list) + + def keyOK(self): + pass + + def getCurrentConfigPath(self): + return self["list"].getCurrent()[2] + + def keyUp(self): + if not self.isMoving: + self["list"].instance.moveSelection(self["list"].instance.moveUp) + self.updateColors(self.getCurrentConfigPath()) + + def keyDown(self): + if not self.isMoving: + self["list"].instance.moveSelection(self["list"].instance.moveDown) + self.updateColors(self.getCurrentConfigPath()) + + def keyNumberGlobal(self, number): + self["list"].handleKey(KEY_0 + number) + + def keyLeft(self): + self["list"].handleKey(KEY_LEFT) + + def keyRight(self): + self["list"].handleKey(KEY_RIGHT) + + def updateColors(self, entry): + if entry == "tune": + self.red.setText(_("Tune")) + self.green.setText(_("Auto focus")) + self.yellow.setText(_("Calibrate")) + self.blue.setText(_("Calculate")) + elif entry == "move": + if self.isMoving: + self.red.setText(_("Stop")) + self.green.setText(_("Stop")) + self.yellow.setText(_("Stop")) + self.blue.setText(_("Stop")) + else: + self.red.setText(_("Move west")) + self.green.setText(_("Search west")) + self.yellow.setText(_("Search east")) + self.blue.setText(_("Move east")) + elif entry == "finemove": + self.red.setText("") + self.green.setText(_("Step west")) + self.yellow.setText(_("Step east")) + self.blue.setText("") + elif entry == "limits": + self.red.setText(_("Limits off")) + self.green.setText(_("Limit west")) + self.yellow.setText(_("Limit east")) + self.blue.setText(_("Limits on")) + elif entry == "storage": + self.red.setText("") + self.green.setText(_("Store position")) + self.yellow.setText(_("Goto position")) + if self.advanced: + self.blue.setText(_("Allocate")) + else: + self.blue.setText("") + elif entry == "goto": + self.red.setText("") + self.green.setText(_("Goto 0")) + self.yellow.setText(_("Goto X")) + self.blue.setText("") + else: + self.red.setText("") + self.green.setText("") + self.yellow.setText("") + self.blue.setText("") + + def printMsg(self, msg): + print msg + print>>log, msg + + def stopMoving(self): + self.printMsg(_("Stop")) + self.diseqccommand("stop") + self.isMoving = False + self.stopOnLock = False + self.statusMsg(_("Stopped"), timeout = self.STATUS_MSG_TIMEOUT) + + def redKey(self): + entry = self.getCurrentConfigPath() + if entry == "move": + if self.isMoving: + self.stopMoving() + else: + self.printMsg(_("Move west")) + self.diseqccommand("moveWest", 0) + self.isMoving = True + self.statusMsg(_("Moving west ..."), blinking = True) + self.updateColors("move") + elif entry == "limits": + self.printMsg(_("Limits off")) + self.diseqccommand("limitOff") + self.statusMsg(_("Limits cancelled"), timeout = self.STATUS_MSG_TIMEOUT) + elif entry == "tune": + fe_data = { } + self.frontend.getFrontendData(fe_data) + self.frontend.getTransponderData(fe_data, True) + feparm = self.tuner.lastparm.getDVBS() + fe_data["orbital_position"] = feparm.orbital_position + self.statusTimer.stop() + self.session.openWithCallback(self.tune, TunerScreen, self.feid, fe_data) + + def greenKey(self): + entry = self.getCurrentConfigPath() + if entry == "tune": + # Auto focus + self.printMsg(_("Auto focus")) + print>>log, (_("Site latitude") + " : %5.1f %s") % PositionerSetup.latitude2orbital(self.sitelat) + print>>log, (_("Site longitude") + " : %5.1f %s") % PositionerSetup.longitude2orbital(self.sitelon) + Thread(target = self.autofocus).start() + elif entry == "move": + if self.isMoving: + self.stopMoving() + else: + self.printMsg(_("Search west")) + self.isMoving = True + self.stopOnLock = True + self.diseqccommand("moveWest", 0) + self.statusMsg(_("Searching west ..."), blinking = True) + self.updateColors("move") + elif entry == "finemove": + self.printMsg(_("Step west")) + self.diseqccommand("moveWest", 0xFF) # one step + self.statusMsg(_("Stepped west"), timeout = self.STATUS_MSG_TIMEOUT) + elif entry == "storage": + self.printMsg(_("Store at index")) + index = int(self.positioner_storage.value) + self.diseqccommand("store", index) + self.statusMsg((_("Position stored at index") + " %2d") % index, timeout = self.STATUS_MSG_TIMEOUT) + elif entry == "limits": + self.printMsg(_("Limit west")) + self.diseqccommand("limitWest") + self.statusMsg(_("West limit set"), timeout = self.STATUS_MSG_TIMEOUT) + elif entry == "goto": + self.printMsg(_("Goto 0")) + self.diseqccommand("moveTo", 0) + self.statusMsg(_("Moved to position 0"), timeout = self.STATUS_MSG_TIMEOUT) + + def yellowKey(self): + entry = self.getCurrentConfigPath() + if entry == "move": + if self.isMoving: + self.stopMoving() + else: + self.printMsg(_("Move east")) + self.isMoving = True + self.stopOnLock = True + self.diseqccommand("moveEast", 0) + self.statusMsg(_("Searching east ..."), blinking = True) + self.updateColors("move") + elif entry == "finemove": + self.printMsg(_("Step east")) + self.diseqccommand("moveEast", 0xFF) # one step + self.statusMsg(_("Stepped east"), timeout = self.STATUS_MSG_TIMEOUT) + elif entry == "storage": + self.printMsg(_("Goto index position")) + index = int(self.positioner_storage.value) + self.diseqccommand("moveTo", index) + self.statusMsg((_("Moved to position at index") + " %2d") % index, timeout = self.STATUS_MSG_TIMEOUT) + elif entry == "limits": + self.printMsg(_("Limit east")) + self.diseqccommand("limitEast") + self.statusMsg(_("East limit set"), timeout = self.STATUS_MSG_TIMEOUT) + elif entry == "goto": + self.printMsg(_("Move to position X")) + satlon = self.orbitalposition.float + position = ("%5.1f %s") % (satlon, self.orientation.value) + print>>log, (_("Satellite longitude:") + " %s") % position + satlon = PositionerSetup.orbital2metric(satlon, self.orientation.value) + self.statusMsg((_("Moving to position") + " %s") % position, timeout = self.STATUS_MSG_TIMEOUT) + self.gotoX(satlon) + elif entry == "tune": + # Start USALS calibration + self.printMsg(_("USALS calibration")) + print>>log, (_("Site latitude") + " : %5.1f %s") % PositionerSetup.latitude2orbital(self.sitelat) + print>>log, (_("Site longitude") + " : %5.1f %s") % PositionerSetup.longitude2orbital(self.sitelon) + Thread(target = self.gotoXcalibration).start() + + def blueKey(self): + entry = self.getCurrentConfigPath() + if entry == "move": + if self.isMoving: + self.stopMoving() + else: + self.printMsg(_("Move east")) + self.diseqccommand("moveEast", 0) + self.isMoving = True + self.statusMsg(_("Moving east ..."), blinking = True) + self.updateColors("move") + elif entry == "limits": + self.printMsg(_("Limits on")) + self.diseqccommand("limitOn") + self.statusMsg(_("Limits enabled"), timeout = self.STATUS_MSG_TIMEOUT) + elif entry == "tune": + # Start (re-)calculate + self.session.openWithCallback(self.recalcConfirmed, MessageBox, _("This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\nAre you sure?"), MessageBox.TYPE_YESNO, default = False, timeout = 10) + elif entry == "storage": + if self.advanced: + self.printMsg(_("Allocate unused memory index")) + while(True): + if not len(self.allocatedIndices): + for sat in self.availablesats: + current_index = int(self.advancedsats[sat].rotorposition.value) + if current_index not in self.allocatedIndices: + self.allocatedIndices.append(current_index) + if len(self.allocatedIndices) == self.rotorPositions: + self.statusMsg(_("No free index available"), timeout = self.STATUS_MSG_TIMEOUT) + break + index = 1 + if len(self.allocatedIndices): + for i in sorted(self.allocatedIndices): + if i != index: + break + index += 1 + if index <= self.rotorPositions: + self.positioner_storage.value = index + self["list"].invalidateCurrent() + self.allocatedIndices.append(index) + self.statusMsg((_("Index allocated:") + " %2d") % index, timeout = self.STATUS_MSG_TIMEOUT) + break + else: + self.allocatedIndices = [] + + def recalcConfirmed(self, yesno): + if yesno: + self.printMsg(_("Calculate all positions")) + print>>log, (_("Site latitude") + " : %5.1f %s") % PositionerSetup.latitude2orbital(self.sitelat) + print>>log, (_("Site longitude") + " : %5.1f %s") % PositionerSetup.longitude2orbital(self.sitelon) + lon = self.sitelon + if lon >= 180: + lon -= 360 + if lon < -30: # americas, make unsigned binary west positive polarity + lon = -lon + lon = int(round(lon)) & 0xFF + lat = int(round(self.sitelat)) & 0xFF + index = int(self.positioner_storage.value) & 0xFF + self.diseqccommand("calc", (((index << 8) | lon) << 8) | lat) + self.statusMsg(_("Calculation complete"), timeout = self.STATUS_MSG_TIMEOUT) + + def showLog(self): + self.session.open(PositionerSetupLog) + + def diseqccommand(self, cmd, param = 0): + print>>log, "Diseqc(%s, %X)" % (cmd, param) + self.diseqc.command(cmd, param) + self.tuner.retune() + + def tune(self, transponder): + # re-start the update timer + self.statusTimer.start(self.UPDATE_INTERVAL, True) + if transponder is not None: + self.tuner.tune(transponder) + self.tuningChangedTo(transponder) + feparm = self.tuner.lastparm.getDVBS() + orb_pos = feparm.orbital_position + m = PositionerSetup.satposition2metric(orb_pos) + self.orbitalposition.value = [int(m[0] / 10), m[0] % 10] + self.orientation.value = m[1] + if self.advanced: + if orb_pos in self.availablesats: + rotorposition = int(self.advancedsats[orb_pos].rotorposition.value) + self.positioner_storage.value = rotorposition + self.allocatedIndices = [] + self.setLNB(self.getLNBfromConfig(orb_pos)) + + def isLocked(self): + return self.frontendStatus.get("tuner_locked", 0) == 1 + + def statusMsg(self, msg, blinking = False, timeout = 0): # timeout in seconds + self.statusMsgBlinking = blinking + if not blinking: + self["status_bar"].visible = True + self["status_bar"].setText(msg) + self.statusMsgTimeoutTicks = (timeout * 1000 + self.UPDATE_INTERVAL / 2) / self.UPDATE_INTERVAL + + def updateStatus(self): + self.statusTimer.start(self.UPDATE_INTERVAL, True) + if self.frontend: + self.frontend.getFrontendStatus(self.frontendStatus) + self["snr_db"].update() + self["snr_percentage"].update() + self["ber_value"].update() + self["snr_bar"].update() + self["ber_bar"].update() + self["lock_state"].update() + if self.statusMsgBlinking: + self.statusMsgBlinkCount += 1 + if self.statusMsgBlinkCount == self.statusMsgBlinkRate: + self.statusMsgBlinkCount = 0 + self["status_bar"].visible = not self["status_bar"].visible + if self.statusMsgTimeoutTicks > 0: + self.statusMsgTimeoutTicks -= 1 + if self.statusMsgTimeoutTicks == 0: + self["status_bar"].setText("") + self.statusMsgBlinking = False + self["status_bar"].visible = True + if self.isLocked() and self.isMoving and self.stopOnLock: + self.stopMoving() + self.updateColors(self.getCurrentConfigPath()) + if self.collectingStatistics: + self.low_rate_adapter_count += 1 + if self.low_rate_adapter_count == self.MAX_LOW_RATE_ADAPTER_COUNT: + self.low_rate_adapter_count = 0 + self.snr_percentage += self["snr_percentage"].getValue(TunerInfo.SNR) + self.lock_count += self["lock_state"].getValue(TunerInfo.LOCK) + self.stat_count += 1 + if self.stat_count == self.max_count: + self.collectingStatistics = False + count = float(self.stat_count) + self.lock_count /= count + self.snr_percentage *= 100.0 / 0x10000 / count + self.dataAvailable.set() + + def tuningChangedTo(self, tp): + + def setLowRateAdapterCount(symbolrate): + # change the measurement time and update interval in case of low symbol rate, + # since more time is needed for the front end in that case. + # It is an heuristic determination without any pretence. For symbol rates + # of 5000 the interval is multiplied by 3 until 15000 which is seen + # as a high symbol rate. Linear interpolation elsewhere. + return max(int(round((3 - 1) * (symbolrate - 15000) / (5000 - 15000) + 1)), 1) + + self.symbolrate = tp[1] + self.polarisation = tp[2] + self.MAX_LOW_RATE_ADAPTER_COUNT = setLowRateAdapterCount(self.symbolrate) + transponderdata = ConvertToHumanReadable(self.tuner.getTransponderData(), "DVB-S") + frequency = transponderdata.get("frequency") + if frequency: + frequency_text = str(frequency / 1000) + else: + frequency_text = "" + self["frequency_value"].setText(frequency_text) + symbolrate = transponderdata.get("symbol_rate") + if symbolrate: + symbolrate_text = str(symbolrate / 1000) + else: + symbolrate_text = "" + self["symbolrate_value"].setText(symbolrate_text) + fec_inner = transponderdata.get("fec_inner") + if fec_inner: + fec_text = str(fec_inner) + else: + fec_text = "" + self["fec_value"].setText(fec_text) + polarisation = transponderdata.get("polarization") + if polarisation: + polarisation_text = str(polarisation) + else: + polarisation_text = "" + self["polarisation"].setText(polarisation_text) + + @staticmethod + def rotorCmd2Step(rotorCmd, stepsize): + return round(float(rotorCmd & 0xFFF) / 0x10 / stepsize) * (1 - ((rotorCmd & 0x1000) >> 11)) + + @staticmethod + def gotoXcalc(satlon, sitelat, sitelon): + def azimuth2Rotorcode(angle): + gotoXtable = (0x00, 0x02, 0x03, 0x05, 0x06, 0x08, 0x0A, 0x0B, 0x0D, 0x0E) + a = int(round(abs(angle) * 10.0)) + return ((a / 10) << 4) + gotoXtable[a % 10] + + satHourAngle = rotor_calc.calcSatHourangle(satlon, sitelat, sitelon) + if sitelat >= 0: # Northern Hemisphere + rotorCmd = azimuth2Rotorcode(180 - satHourAngle) + if satHourAngle <= 180: # the east + rotorCmd |= 0xE000 + else: # west + rotorCmd |= 0xD000 + else: # Southern Hemisphere + if satHourAngle <= 180: # the east + rotorCmd = azimuth2Rotorcode(satHourAngle) | 0xD000 + else: # west + rotorCmd = azimuth2Rotorcode(360 - satHourAngle) | 0xE000 + return rotorCmd + + def gotoX(self, satlon): + rotorCmd = PositionerSetup.gotoXcalc(satlon, self.sitelat, self.sitelon) + self.diseqccommand("gotoX", rotorCmd) + x = PositionerSetup.rotorCmd2Step(rotorCmd, self.tuningstepsize) + print>>log, (_("Rotor step position:") + " %4d") % x + return x + + def getTurningspeed(self): + if self.polarisation == eDVBFrontendParametersSatellite.Polarisation_Horizontal: + turningspeed = self.turningspeedH + else: + turningspeed = self.turningspeedV + return max(turningspeed, 0.1) + + TURNING_START_STOP_DELAY = 1.600 # seconds + MAX_SEARCH_ANGLE = 12.0 # degrees + MAX_FOCUS_ANGLE = 6.0 # degrees + LOCK_LIMIT = 0.1 # ratio + MEASURING_TIME = 2.500 # seconds + + def measure(self, time = MEASURING_TIME): # time in seconds + self.snr_percentage = 0.0 + self.lock_count = 0.0 + self.stat_count = 0 + self.low_rate_adapter_count = 0 + self.max_count = max(int((time * 1000 + self.UPDATE_INTERVAL / 2)/ self.UPDATE_INTERVAL), 1) + self.collectingStatistics = True + self.dataAvailable.clear() + self.dataAvailable.wait() + + def logMsg(self, msg, timeout = 0): + self.statusMsg(msg, timeout = timeout) + self.printMsg(msg) + + def sync(self): + self.lock_count = 0.0 + n = 0 + while self.lock_count < (1 - self.LOCK_LIMIT) and n < 5: + self.measure(time = 0.500) + n += 1 + if self.lock_count < (1 - self.LOCK_LIMIT): + return False + return True + + randomGenerator = None + def randomBool(self): + if self.randomGenerator is None: + self.randomGenerator = SystemRandom() + return self.randomGenerator.random() >= 0.5 + + def gotoXcalibration(self): + + def move(x): + z = self.gotoX(x + satlon) + time = int(abs(x - prev_pos) / turningspeed + 2 * self.TURNING_START_STOP_DELAY) + sleep(time * self.MAX_LOW_RATE_ADAPTER_COUNT) + return z + + def reportlevels(pos, level, lock): + print>>log, (_("Signal quality") + " %5.1f" + chr(176) + " : %6.2f") % (pos, level) + print>>log, (_("Lock ratio") + " %5.1f" + chr(176) + " : %6.2f") % (pos, lock) + + def optimise(readings): + xi = readings.keys() + yi = map(lambda (x, y) : x, readings.values()) + x0 = sum(map(mul, xi, yi)) / sum(yi) + xm = xi[yi.index(max(yi))] + return (x0, xm) + + def toGeopos(x): + if x < 0: + return _("W") + else: + return _("E") + + def toGeoposEx(x): + if x < 0: + return _("west") + else: + return _("east") + + self.logMsg(_("GotoX calibration")) + satlon = self.orbitalposition.float + print>>log, (_("Satellite longitude:") + " %5.1f" + chr(176) + " %s") % (satlon, self.orientation.value) + satlon = PositionerSetup.orbital2metric(satlon, self.orientation.value) + prev_pos = 0.0 # previous relative position w.r.t. satlon + turningspeed = self.getTurningspeed() + + x = 0.0 # relative position w.r.t. satlon + dir = 1 + if self.randomBool(): + dir = -dir + while abs(x) < self.MAX_SEARCH_ANGLE: + if self.sync(): + break + x += (1.0 * dir) # one degree east/west + self.statusMsg((_("Searching") + " " + toGeoposEx(dir) + " %2d" + chr(176)) % abs(x), blinking = True) + move(x) + prev_pos = x + else: + x = 0.0 + dir = -dir + while abs(x) < self.MAX_SEARCH_ANGLE: + x += (1.0 * dir) # one degree east/west + self.statusMsg((_("Searching") + " " + toGeoposEx(dir) + " %2d" + chr(176)) % abs(x), blinking = True) + move(x) + prev_pos = x + if self.sync(): + break + else: + msg = _("Cannot find any signal ..., aborting !") + self.printMsg(msg) + self.statusMsg("") + self.session.open(MessageBox, msg, MessageBox.TYPE_ERROR, timeout = 5) + return + x = round(x / self.tuningstepsize) * self.tuningstepsize + move(x) + prev_pos = x + measurements = {} + self.measure() + print>>log, (_("Initial signal quality") + " %5.1f" + chr(176) + ": %6.2f") % (x, self.snr_percentage) + print>>log, (_("Initial lock ratio") + " %5.1f" + chr(176) + ": %6.2f") % (x, self.lock_count) + measurements[x] = (self.snr_percentage, self.lock_count) + + start_pos = x + x = 0.0 + dir = 1 + if self.randomBool(): + dir = -dir + while x < self.MAX_FOCUS_ANGLE: + x += self.tuningstepsize * dir # one step east/west + self.statusMsg((_("Moving") + " " + toGeoposEx(dir) + " %5.1f" + chr(176)) % abs(x + start_pos), blinking = True) + move(x + start_pos) + prev_pos = x + start_pos + self.measure() + measurements[x + start_pos] = (self.snr_percentage, self.lock_count) + reportlevels(x + start_pos, self.snr_percentage, self.lock_count) + if self.lock_count < self.LOCK_LIMIT: + break + else: + msg = _("Cannot determine") + " " + toGeoposEx(dir) + " " + _("limit ..., aborting !") + self.printMsg(msg) + self.statusMsg("") + self.session.open(MessageBox, msg, MessageBox.TYPE_ERROR, timeout = 5) + return + x = 0.0 + dir = -dir + self.statusMsg((_("Moving") + " " + toGeoposEx(dir) + " %5.1f" + chr(176)) % abs(start_pos), blinking = True) + move(start_pos) + prev_pos = start_pos + if not self.sync(): + msg = _("Sync failure moving back to origin !") + self.printMsg(msg) + self.statusMsg("") + self.session.open(MessageBox, msg, MessageBox.TYPE_ERROR, timeout = 5) + return + while abs(x) < self.MAX_FOCUS_ANGLE: + x += self.tuningstepsize * dir # one step west/east + self.statusMsg((_("Moving") + " " + toGeoposEx(dir) + " %5.1f" + chr(176)) % abs(x + start_pos), blinking = True) + move(x + start_pos) + prev_pos = x + start_pos + self.measure() + measurements[x + start_pos] = (self.snr_percentage, self.lock_count) + reportlevels(x + start_pos, self.snr_percentage, self.lock_count) + if self.lock_count < self.LOCK_LIMIT: + break + else: + msg = _("Cannot determine") + " " + toGeoposEx(dir) + " " + _("limit ..., aborting !") + self.printMsg(msg) + self.statusMsg("") + self.session.open(MessageBox, msg, MessageBox.TYPE_ERROR, timeout = 5) + return + (x0, xm) = optimise(measurements) + x = move(x0) + if satlon > 180: + satlon -= 360 + x0 += satlon + xm += satlon + print>>log, (_("Weighted position") + " : %5.1f" + chr(176) + " %s") % (abs(x0), toGeopos(x0)) + print>>log, (_("Strongest position") + " : %5.1f" + chr(176) + " %s") % (abs(xm), toGeopos(xm)) + self.logMsg((_("Final position at") + " %5.1f" + chr(176) + " %s / %d; " + _("offset is") + " %4.1f" + chr(176)) % (abs(x0), toGeopos(x0), x, x0 - satlon), timeout = 10) + + def autofocus(self): + + def move(x): + if x > 0: + self.diseqccommand("moveEast", (-x) & 0xFF) + elif x < 0: + self.diseqccommand("moveWest", x & 0xFF) + if x != 0: + time = int(abs(x) * self.tuningstepsize / turningspeed + 2 * self.TURNING_START_STOP_DELAY) + sleep(time * self.MAX_LOW_RATE_ADAPTER_COUNT) + + def reportlevels(pos, level, lock): + print>>log, (_("Signal quality") + " [%2d] : %6.2f") % (pos, level) + print>>log, (_("Lock ratio") + " [%2d] : %6.2f") % (pos, lock) + + def optimise(readings): + xi = readings.keys() + yi = map(lambda (x, y) : x, readings.values()) + x0 = int(round(sum(map(mul, xi, yi)) / sum(yi))) + xm = xi[yi.index(max(yi))] + return (x0, xm) + + def toGeoposEx(x): + if x < 0: + return _("west") + else: + return _("east") + + self.logMsg(_("Auto focus commencing ...")) + turningspeed = self.getTurningspeed() + measurements = {} + maxsteps = max(min(round(self.MAX_FOCUS_ANGLE / self.tuningstepsize), 0x1F), 3) + self.measure() + print>>log, (_("Initial signal quality:") + " %6.2f") % self.snr_percentage + print>>log, (_("Initial lock ratio") + " : %6.2f") % self.lock_count + if self.lock_count < 1 - self.LOCK_LIMIT: + msg = _("There is no signal to lock on !") + self.printMsg(msg) + self.statusMsg("") + self.session.open(MessageBox, msg, MessageBox.TYPE_ERROR, timeout = 5) + return + print>>log, _("Signal OK, proceeding") + x = 0 + dir = 1 + if self.randomBool(): + dir = -dir + measurements[x] = (self.snr_percentage, self.lock_count) + nsteps = 0 + while nsteps < maxsteps: + x += dir + self.statusMsg((_("Moving") + " " + toGeoposEx(dir) + " %2d") % abs(x), blinking = True) + move(dir) # one step + self.measure() + measurements[x] = (self.snr_percentage, self.lock_count) + reportlevels(x, self.snr_percentage, self.lock_count) + if self.lock_count < self.LOCK_LIMIT: + break + nsteps += 1 + else: + msg = _("Cannot determine") + " " + toGeoposEx(dir) + " " + _("limit ..., aborting !") + self.printMsg(msg) + self.statusMsg("") + self.session.open(MessageBox, msg, MessageBox.TYPE_ERROR, timeout = 5) + return + dir = -dir + self.statusMsg(_("Moving") + " " + toGeoposEx(dir) + " 0", blinking = True) + move(-x) + if not self.sync(): + msg = _("Sync failure moving back to origin !") + self.printMsg(msg) + self.statusMsg("") + self.session.open(MessageBox, msg, MessageBox.TYPE_ERROR, timeout = 5) + return + x = 0 + nsteps = 0 + while nsteps < maxsteps: + x += dir + self.statusMsg((_("Moving") + " " + toGeoposEx(dir) + " %2d") % abs(x), blinking = True) + move(dir) # one step + self.measure() + measurements[x] = (self.snr_percentage, self.lock_count) + reportlevels(x, self.snr_percentage, self.lock_count) + if self.lock_count < self.LOCK_LIMIT: + break + nsteps += 1 + else: + msg = _("Cannot determine") + " " + toGeoposEx(dir) + " " + _("limit ..., aborting !") + self.printMsg(msg) + self.statusMsg("") + self.session.open(MessageBox, msg, MessageBox.TYPE_ERROR, timeout = 5) + return + (x0, xm) = optimise(measurements) + print>>log, (_("Weighted position") + " : %2d") % x0 + print>>log, (_("Strongest position") + " : %2d") % xm + self.logMsg((_("Final position at index") + " %2d (%5.1f" + chr(176) + ")") % (x0, x0 * self.tuningstepsize), timeout = 6) + move(x0 - x) + +class Diseqc: + def __init__(self, frontend): + self.frontend = frontend + + def command(self, what, param = 0): + if self.frontend: + cmd = eDVBDiseqcCommand() + if what == "moveWest": + string = 'E03169' + ("%02X" % param) + elif what == "moveEast": + string = 'E03168' + ("%02X" % param) + elif what == "moveTo": + string = 'E0316B' + ("%02X" % param) + elif what == "store": + string = 'E0316A' + ("%02X" % param) + elif what == "gotoX": + string = 'E0316E' + ("%04X" % param) + elif what == "calc": + string = 'E0316F' + ("%06X" % param) + elif what == "limitOn": + string = 'E0316A00' + elif what == "limitOff": + string = 'E03163' + elif what == "limitEast": + string = 'E03166' + elif what == "limitWest": + string = 'E03167' + else: + string = 'E03160' #positioner stop + + print "diseqc command:", + print string + cmd.setCommandString(string) + self.frontend.setTone(iDVBFrontend.toneOff) + sleep(0.015) # wait 15msec after disable tone + self.frontend.sendDiseqc(cmd) + if string == 'E03160': #positioner stop + sleep(0.050) + self.frontend.sendDiseqc(cmd) # send 2nd time + +class PositionerSetupLog(Screen): + skin = """ + + + + + + + + + + + + + + Default + + +""" + def __init__(self, session): + self.session = session + Screen.__init__(self, session) + self["key_red"] = Button(_("Clear")) + self["key_green"] = Button() + self["key_yellow"] = Button() + self["key_blue"] = Button(_("Save")) + self["list"] = ScrollLabel(log.getvalue()) + self["actions"] = ActionMap(["DirectionActions", "OkCancelActions", "ColorActions"], + { + "red": self.clear, + "green": self.cancel, + "yellow": self.cancel, + "save": self.save, + "blue": self.save, + "cancel": self.cancel, + "ok": self.cancel, + "left": self["list"].pageUp, + "right": self["list"].pageDown, + "up": self["list"].pageUp, + "down": self["list"].pageDown, + "pageUp": self["list"].pageUp, + "pageDown": self["list"].pageDown + }, -2) + + def save(self): + try: + f = open('/tmp/positionersetup.log', 'w') + f.write(log.getvalue()) + f.close() + except Exception, e: + self["list"].setText(_("Failed to write /tmp/positionersetup.log: ") + str(e)) + self.close(True) + + def cancel(self): + self.close(False) + + def clear(self): + log.logfile.reset() + log.logfile.truncate() + self.close(False) + +class TunerScreen(ConfigListScreen, Screen): + skin = """ + + + + """ + + def __init__(self, session, feid, fe_data): + self.feid = feid + self.fe_data = fe_data + Screen.__init__(self, session) + ConfigListScreen.__init__(self, None) + self.createConfig(fe_data) + self.initialSetup() + self.createSetup() + self.tuning.sat.addNotifier(self.tuningSatChanged) + self.tuning.type.addNotifier(self.tuningTypeChanged) + self.scan_sat.system.addNotifier(self.systemChanged) + + self["actions"] = NumberActionMap(["SetupActions"], + { + "ok": self.keyGo, + "cancel": self.keyCancel, + }, -2) + + def createConfig(self, frontendData): + satlist = nimmanager.getRotorSatListForNim(self.feid) + orb_pos = self.fe_data.get("orbital_position", None) + orb_pos_str = str(orb_pos) + self.tuning = ConfigSubsection() + self.tuning.type = ConfigSelection( + default = "manual_transponder", + choices = { "manual_transponder" : _("Manual transponder"), + "predefined_transponder" : _("Predefined transponder") } ) + self.tuning.sat = ConfigSatlist(list = satlist) + if orb_pos is not None: + for sat in satlist: + if sat[0] == orb_pos and self.tuning.sat.value != orb_pos_str: + self.tuning.sat.value = orb_pos_str + self.updateTransponders() + + defaultSat = { + "orbpos": 192, + "system": eDVBFrontendParametersSatellite.System_DVB_S, + "frequency": 11836, + "inversion": eDVBFrontendParametersSatellite.Inversion_Unknown, + "symbolrate": 27500, + "polarization": eDVBFrontendParametersSatellite.Polarisation_Horizontal, + "fec": eDVBFrontendParametersSatellite.FEC_Auto, + "fec_s2": eDVBFrontendParametersSatellite.FEC_9_10, + "modulation": eDVBFrontendParametersSatellite.Modulation_QPSK } + if frontendData is not None: + ttype = frontendData.get("tuner_type", "UNKNOWN") + defaultSat["system"] = frontendData.get("system", eDVBFrontendParametersSatellite.System_DVB_S) + defaultSat["frequency"] = frontendData.get("frequency", 0) / 1000 + defaultSat["inversion"] = frontendData.get("inversion", eDVBFrontendParametersSatellite.Inversion_Unknown) + defaultSat["symbolrate"] = frontendData.get("symbol_rate", 0) / 1000 + defaultSat["polarization"] = frontendData.get("polarization", eDVBFrontendParametersSatellite.Polarisation_Horizontal) + if defaultSat["system"] == eDVBFrontendParametersSatellite.System_DVB_S2: + defaultSat["fec_s2"] = frontendData.get("fec_inner", eDVBFrontendParametersSatellite.FEC_Auto) + defaultSat["rolloff"] = frontendData.get("rolloff", eDVBFrontendParametersSatellite.RollOff_alpha_0_35) + defaultSat["pilot"] = frontendData.get("pilot", eDVBFrontendParametersSatellite.Pilot_Unknown) + else: + defaultSat["fec"] = frontendData.get("fec_inner", eDVBFrontendParametersSatellite.FEC_Auto) + defaultSat["modulation"] = frontendData.get("modulation", eDVBFrontendParametersSatellite.Modulation_QPSK) + defaultSat["orbpos"] = frontendData.get("orbital_position", 0) + + self.scan_sat = ConfigSubsection() + self.scan_sat.system = ConfigSelection(default = defaultSat["system"], choices = [ + (eDVBFrontendParametersSatellite.System_DVB_S, _("DVB-S")), + (eDVBFrontendParametersSatellite.System_DVB_S2, _("DVB-S2"))]) + self.scan_sat.frequency = ConfigInteger(default = defaultSat["frequency"], limits = (1, 99999)) + self.scan_sat.inversion = ConfigSelection(default = defaultSat["inversion"], choices = [ + (eDVBFrontendParametersSatellite.Inversion_Off, _("Off")), + (eDVBFrontendParametersSatellite.Inversion_On, _("On")), + (eDVBFrontendParametersSatellite.Inversion_Unknown, _("Auto"))]) + self.scan_sat.symbolrate = ConfigInteger(default = defaultSat["symbolrate"], limits = (1, 99999)) + self.scan_sat.polarization = ConfigSelection(default = defaultSat["polarization"], choices = [ + (eDVBFrontendParametersSatellite.Polarisation_Horizontal, _("horizontal")), + (eDVBFrontendParametersSatellite.Polarisation_Vertical, _("vertical")), + (eDVBFrontendParametersSatellite.Polarisation_CircularLeft, _("circular left")), + (eDVBFrontendParametersSatellite.Polarisation_CircularRight, _("circular right"))]) + self.scan_sat.fec = ConfigSelection(default = defaultSat["fec"], choices = [ + (eDVBFrontendParametersSatellite.FEC_Auto, _("Auto")), + (eDVBFrontendParametersSatellite.FEC_1_2, "1/2"), + (eDVBFrontendParametersSatellite.FEC_2_3, "2/3"), + (eDVBFrontendParametersSatellite.FEC_3_4, "3/4"), + (eDVBFrontendParametersSatellite.FEC_5_6, "5/6"), + (eDVBFrontendParametersSatellite.FEC_7_8, "7/8"), + (eDVBFrontendParametersSatellite.FEC_None, _("None"))]) + self.scan_sat.fec_s2 = ConfigSelection(default = defaultSat["fec_s2"], choices = [ + (eDVBFrontendParametersSatellite.FEC_1_2, "1/2"), + (eDVBFrontendParametersSatellite.FEC_2_3, "2/3"), + (eDVBFrontendParametersSatellite.FEC_3_4, "3/4"), + (eDVBFrontendParametersSatellite.FEC_3_5, "3/5"), + (eDVBFrontendParametersSatellite.FEC_4_5, "4/5"), + (eDVBFrontendParametersSatellite.FEC_5_6, "5/6"), + (eDVBFrontendParametersSatellite.FEC_7_8, "7/8"), + (eDVBFrontendParametersSatellite.FEC_8_9, "8/9"), + (eDVBFrontendParametersSatellite.FEC_9_10, "9/10")]) + self.scan_sat.modulation = ConfigSelection(default = defaultSat["modulation"], choices = [ + (eDVBFrontendParametersSatellite.Modulation_QPSK, "QPSK"), + (eDVBFrontendParametersSatellite.Modulation_8PSK, "8PSK")]) + self.scan_sat.rolloff = ConfigSelection(default = defaultSat.get("rolloff", eDVBFrontendParametersSatellite.RollOff_alpha_0_35), choices = [ + (eDVBFrontendParametersSatellite.RollOff_alpha_0_35, "0.35"), + (eDVBFrontendParametersSatellite.RollOff_alpha_0_25, "0.25"), + (eDVBFrontendParametersSatellite.RollOff_alpha_0_20, "0.20"), + (eDVBFrontendParametersSatellite.RollOff_auto, _("Auto"))]) + self.scan_sat.pilot = ConfigSelection(default = defaultSat.get("pilot", eDVBFrontendParametersSatellite.Pilot_Unknown), choices = [ + (eDVBFrontendParametersSatellite.Pilot_Off, _("Off")), + (eDVBFrontendParametersSatellite.Pilot_On, _("On")), + (eDVBFrontendParametersSatellite.Pilot_Unknown, _("Auto"))]) + + def initialSetup(self): + currtp = self.transponderToString([None, self.scan_sat.frequency.value, self.scan_sat.symbolrate.value, self.scan_sat.polarization.value]) + if currtp in self.tuning.transponder.choices: + self.tuning.type.value = "predefined_transponder" + else: + self.tuning.type.value = "manual_transponder" + + def createSetup(self): + self.list = [] + self.list.append(getConfigListEntry(_('Tune'), self.tuning.type)) + self.list.append(getConfigListEntry(_('Satellite'), self.tuning.sat)) + nim = nimmanager.nim_slots[self.feid] + + if self.tuning.type.value == "manual_transponder": + if nim.isCompatible("DVB-S2"): + self.list.append(getConfigListEntry(_('System'), self.scan_sat.system)) + else: + # downgrade to dvb-s, in case a -s2 config was active + self.scan_sat.system.value = eDVBFrontendParametersSatellite.System_DVB_S + self.list.append(getConfigListEntry(_('Frequency'), self.scan_sat.frequency)) + self.list.append(getConfigListEntry(_("Polarisation"), self.scan_sat.polarization)) + self.list.append(getConfigListEntry(_('Symbol rate'), self.scan_sat.symbolrate)) + if self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S: + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec)) + self.list.append(getConfigListEntry(_('Inversion'), self.scan_sat.inversion)) + elif self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S2: + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2)) + self.list.append(getConfigListEntry(_('Inversion'), self.scan_sat.inversion)) + self.modulationEntry = getConfigListEntry(_('Modulation'), self.scan_sat.modulation) + self.list.append(self.modulationEntry) + self.list.append(getConfigListEntry(_('Roll-off'), self.scan_sat.rolloff)) + self.list.append(getConfigListEntry(_('Pilot'), self.scan_sat.pilot)) + else: # "predefined_transponder" + self.list.append(getConfigListEntry(_("Transponder"), self.tuning.transponder)) + currtp = self.transponderToString([None, self.scan_sat.frequency.value, self.scan_sat.symbolrate.value, self.scan_sat.polarization.value]) + self.tuning.transponder.setValue(currtp) + self["config"].list = self.list + self["config"].l.setList(self.list) + + def tuningSatChanged(self, *parm): + self.updateTransponders() + self.createSetup() + + def tuningTypeChanged(self, *parm): + self.createSetup() + + def systemChanged(self, *parm): + self.createSetup() + + def transponderToString(self, tr, scale = 1): + if tr[3] == 0: + pol = "H" + elif tr[3] == 1: + pol = "V" + elif tr[3] == 2: + pol = "CL" + elif tr[3] == 3: + pol = "CR" + else: + pol = "??" + return str(tr[1] / scale) + "," + pol + "," + str(tr[2] / scale) + + def updateTransponders(self): + if len(self.tuning.sat.choices): + transponderlist = nimmanager.getTransponders(int(self.tuning.sat.value)) + tps = [] + for transponder in transponderlist: + tps.append(self.transponderToString(transponder, scale = 1000)) + self.tuning.transponder = ConfigSelection(choices = tps) + + def keyLeft(self): + ConfigListScreen.keyLeft(self) + + def keyRight(self): + ConfigListScreen.keyRight(self) + + def keyGo(self): + returnvalue = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0) + satpos = int(self.tuning.sat.value) + if self.tuning.type.value == "manual_transponder": + if self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S2: + fec = self.scan_sat.fec_s2.value + else: + fec = self.scan_sat.fec.value + returnvalue = ( + self.scan_sat.frequency.value, + self.scan_sat.symbolrate.value, + self.scan_sat.polarization.value, + fec, + self.scan_sat.inversion.value, + satpos, + self.scan_sat.system.value, + self.scan_sat.modulation.value, + self.scan_sat.rolloff.value, + self.scan_sat.pilot.value) + elif self.tuning.type.value == "predefined_transponder": + transponder = nimmanager.getTransponders(satpos)[self.tuning.transponder.index] + returnvalue = (transponder[1] / 1000, transponder[2] / 1000, + transponder[3], transponder[4], 2, satpos, transponder[5], transponder[6], transponder[8], transponder[9]) + self.close(returnvalue) + + def keyCancel(self): + self.close(None) + +class RotorNimSelection(Screen): + skin = """ + + + """ + + def __init__(self, session): + Screen.__init__(self, session) + + nimlist = nimmanager.getNimListOfType("DVB-S") + nimMenuList = [] + for x in nimlist: + if len(nimmanager.getRotorSatListForNim(x)) != 0: + nimMenuList.append((nimmanager.nim_slots[x].friendly_full_description, x)) + + self["nimlist"] = MenuList(nimMenuList) + + self["actions"] = ActionMap(["OkCancelActions"], + { + "ok": self.okbuttonClick , + "cancel": self.close + }, -1) + + def okbuttonClick(self): + selection = self["nimlist"].getCurrent() + self.session.open(PositionerSetup, selection[1]) + +def PositionerMain(session, **kwargs): + nimList = nimmanager.getNimListOfType("DVB-S") + if len(nimList) == 0: + session.open(MessageBox, _("No positioner capable frontend found."), MessageBox.TYPE_ERROR) + else: + if session.nav.RecordTimer.isRecording(): + session.open(MessageBox, _("A recording is currently running. Please stop the recording before trying to configure the positioner."), MessageBox.TYPE_ERROR) + else: + usableNims = [] + for x in nimList: + configured_rotor_sats = nimmanager.getRotorSatListForNim(x) + if len(configured_rotor_sats) != 0: + usableNims.append(x) + if len(usableNims) == 1: + session.open(PositionerSetup, usableNims[0]) + elif len(usableNims) > 1: + session.open(RotorNimSelection) + else: + session.open(MessageBox, _("No tuner is configured for use with a diseqc positioner!"), MessageBox.TYPE_ERROR) + +def PositionerSetupStart(menuid, **kwargs): + if menuid == "scan": + return [(_("Positioner setup"), PositionerMain, "positioner_setup", None)] + else: + return [] + +def Plugins(**kwargs): + if (nimmanager.hasNimType("DVB-S")): + return PluginDescriptor(name=_("Positioner setup"), description = _("Setup your positioner"), where = PluginDescriptor.WHERE_MENU, needsRestart = False, fnc = PositionerSetupStart) + else: + return [] diff --git a/lib/python/Plugins/SystemPlugins/PositionerSetup/rotor_calc.py b/lib/python/Plugins/SystemPlugins/PositionerSetup/rotor_calc.py new file mode 100644 index 0000000..74923a5 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/PositionerSetup/rotor_calc.py @@ -0,0 +1,102 @@ +import math + +f = 1.00 / 298.257 # Earth flattning factor +r_sat = 42164.57 # Distance from earth centre to satellite +r_eq = 6378.14 # Earth radius + +def calcElevation(SatLon, SiteLat, SiteLon, Height_over_ocean = 0): + a0 = 0.58804392 + a1 = -0.17941557 + a2 = 0.29906946E-1 + a3 = -0.25187400E-2 + a4 = 0.82622101E-4 + + sinRadSiteLat = math.sin(math.radians(SiteLat)) + cosRadSiteLat = math.cos(math.radians(SiteLat)) + + Rstation = r_eq / (math.sqrt( 1.00 - f * (2.00 - f) * sinRadSiteLat **2)) + + Ra = (Rstation + Height_over_ocean) * cosRadSiteLat + Rz = Rstation * (1.00 - f) * (1.00 - f) * sinRadSiteLat + + alfa_rx = r_sat * math.cos(math.radians(SatLon - SiteLon)) - Ra + alfa_ry = r_sat * math.sin(math.radians(SatLon - SiteLon)) + alfa_rz = -Rz + + alfa_r_north = -alfa_rx * sinRadSiteLat + alfa_rz * cosRadSiteLat + alfa_r_zenith = alfa_rx * cosRadSiteLat + alfa_rz * sinRadSiteLat + + den = alfa_r_north **2 + alfa_ry **2 + if den > 0: + El_geometric = math.degrees(math.atan(alfa_r_zenith / math.sqrt(den))) + else: + El_geometric = 90 + + x = math.fabs(El_geometric + 0.589) + refraction = math.fabs(a0 + (a1 + (a2 + (a3 + a4 * x) * x) * x) * x) + + if El_geometric > 10.2: + El_observed = El_geometric + 0.01617 * (math.cos(math.radians(math.fabs(El_geometric)))/math.sin(math.radians(math.fabs(El_geometric))) ) + else: + El_observed = El_geometric + refraction + + if alfa_r_zenith < -3000: + El_observed = -99 + + return El_observed + +def calcAzimuth(SatLon, SiteLat, SiteLon, Height_over_ocean = 0): + + def rev(number): + return number - math.floor(number / 360.0) * 360 + + sinRadSiteLat = math.sin(math.radians(SiteLat)) + cosRadSiteLat = math.cos(math.radians(SiteLat)) + + Rstation = r_eq / (math.sqrt(1 - f * (2 - f) * sinRadSiteLat **2)) + Ra = (Rstation + Height_over_ocean) * cosRadSiteLat + Rz = Rstation * (1 - f) ** 2 * sinRadSiteLat + + alfa_rx = r_sat * math.cos(math.radians(SatLon - SiteLon)) - Ra + alfa_ry = r_sat * math.sin(math.radians(SatLon - SiteLon)) + alfa_rz = -Rz + + alfa_r_north = -alfa_rx * sinRadSiteLat + alfa_rz * cosRadSiteLat + + if alfa_r_north < 0: + Azimuth = 180 + math.degrees(math.atan(alfa_ry / alfa_r_north)) + elif alfa_r_north > 0: + Azimuth = rev(360 + math.degrees(math.atan(alfa_ry / alfa_r_north))) + else: + Azimuth = 0 + return Azimuth + +def calcDeclination(SiteLat, Azimuth, Elevation): + return math.degrees(math.asin(math.sin(math.radians(Elevation)) * \ + math.sin(math.radians(SiteLat)) + \ + math.cos(math.radians(Elevation)) * \ + math.cos(math.radians(SiteLat)) + \ + math.cos(math.radians(Azimuth)) \ + )) + +def calcSatHourangle(SatLon, SiteLat, SiteLon): + Azimuth = calcAzimuth(SatLon, SiteLat, SiteLon ) + Elevation = calcElevation(SatLon, SiteLat, SiteLon) + + a = - math.cos(math.radians(Elevation)) * math.sin(math.radians(Azimuth)) + b = math.sin(math.radians(Elevation)) * math.cos(math.radians(SiteLat)) - \ + math.cos(math.radians(Elevation)) * math.sin(math.radians(SiteLat)) * \ + math.cos(math.radians(Azimuth)) + + # Works for all azimuths (northern & southern hemisphere) + returnvalue = 180 + math.degrees(math.atan(a / b)) + + if Azimuth > 270: + returnvalue += 180 + if returnvalue > 360: + returnvalue = 720 - returnvalue + + if Azimuth < 90: + returnvalue = 180 - returnvalue + + return returnvalue diff --git a/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/Makefile.am b/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/Makefile.am new file mode 100644 index 0000000..e6b9a05 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/Makefile.am @@ -0,0 +1,7 @@ +installdir = $(pkglibdir)/python/Plugins/SystemPlugins/SatelliteEquipmentControl + +SUBDIRS = meta + +install_PYTHON = \ + __init__.py \ + plugin.py diff --git a/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/__init__.py b/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/meta/Makefile.am new file mode 100644 index 0000000..5dfb239 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/meta/Makefile.am @@ -0,0 +1,5 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_satelliteequipmentcontrol.xml + +EXTRA_DIST = satcontrol.jpg diff --git a/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/meta/plugin_satelliteequipmentcontrol.xml b/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/meta/plugin_satelliteequipmentcontrol.xml new file mode 100644 index 0000000..904f9a2 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/meta/plugin_satelliteequipmentcontrol.xml @@ -0,0 +1,21 @@ + + + + + + + Dream Multimedia + SatelliteEquipmentControl + SatelliteEquipmentControl + enigma2-plugin-systemplugins-satelliteequipmentcontrol + SatelliteEquipmentControl allows you to fine-tune DiSEqC-settings + With the SatelliteEquipmentControl plugin it is possible to fine-tune DiSEqC-settings. + + + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/meta/satcontrol.jpg b/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/meta/satcontrol.jpg new file mode 100644 index 0000000000000000000000000000000000000000..703650e299b12c29c50f2015a5d7b3bfc50f2af9 GIT binary patch literal 182193 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

    Y^_f-LrL22dFxqVQ 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

    =&QhLMl30fMm? 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 T-T1fqhJX9B|B{dBuRZ?{qZxXi literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/plugin.py b/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/plugin.py new file mode 100644 index 0000000..8362c49 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/plugin.py @@ -0,0 +1,77 @@ +from Screens.Screen import Screen +from Screens.MessageBox import MessageBox +from Plugins.Plugin import PluginDescriptor + +from Components.ConfigList import ConfigListScreen +from Components.ActionMap import ActionMap +from Components.config import config +from Components.NimManager import nimmanager as nimmgr + +class SecParameterSetup(Screen, ConfigListScreen): + skin = """ + + + """ + def __init__(self, session): + self.skin = SecParameterSetup.skin + + self["actions"] = ActionMap(["SetupActions", "MenuActions"], + { + "ok": self.keySave, + "cancel": self.keyCancel, + "menu": self.closeRecursive, + }, -2) + + Screen.__init__(self, session) + list = [ + ("Delay after diseqc reset command", config.sec.delay_after_diseqc_reset_cmd), + ("Delay after diseqc peripherial poweron command", config.sec.delay_after_diseqc_peripherial_poweron_cmd), + ("Delay after continuous tone disable before diseqc", config.sec.delay_after_continuous_tone_disable_before_diseqc), + ("Delay after final continuous tone change", config.sec.delay_after_final_continuous_tone_change), + ("Delay after last voltage change", config.sec.delay_after_final_voltage_change), + ("Delay between diseqc commands", config.sec.delay_between_diseqc_repeats), + ("Delay after last diseqc command", config.sec.delay_after_last_diseqc_command), + ("Delay after toneburst", config.sec.delay_after_toneburst), + ("Delay after change voltage before switch command", config.sec.delay_after_change_voltage_before_switch_command), + ("Delay after enable voltage before switch command", config.sec.delay_after_enable_voltage_before_switch_command), + ("Delay between switch and motor command", config.sec.delay_between_switch_and_motor_command), + ("Delay after set voltage before measure motor power", config.sec.delay_after_voltage_change_before_measure_idle_inputpower), + ("Delay after enable voltage before motor command", config.sec.delay_after_enable_voltage_before_motor_command), + ("Delay after motor stop command", config.sec.delay_after_motor_stop_command), + ("Delay after voltage change before motor command", config.sec.delay_after_voltage_change_before_motor_command), + ("Delay before sequence repeat", config.sec.delay_before_sequence_repeat), + ("Motor running timeout", config.sec.motor_running_timeout), + ("Motor command retries", config.sec.motor_command_retries) ] + ConfigListScreen.__init__(self, list) + +session = None + +def confirmed(answer): + global session + if answer: + session.open(SecParameterSetup) + +def SecSetupMain(Session, **kwargs): + global session + session = Session + session.openWithCallback(confirmed, MessageBox, _("Please do not change any values unless you know what you are doing!"), MessageBox.TYPE_INFO) + +def SecSetupStart(menuid): + show = False + + # other menu than "scan"? + if menuid != "scan": + return [ ] + + # only show if DVB-S frontends are available + for slot in nimmgr.nim_slots: + if slot.isCompatible("DVB-S"): + return [(_("Satellite equipment setup"), SecSetupMain, "satellite_equipment_setup", None)] + + return [ ] + +def Plugins(**kwargs): + if (nimmgr.hasNimType("DVB-S")): + return PluginDescriptor(name=_("Satellite equipment setup"), description=_("Setup your satellite equipment"), where = PluginDescriptor.WHERE_MENU, needsRestart = False, fnc=SecSetupStart) + else: + return [] diff --git a/lib/python/Plugins/SystemPlugins/Satfinder/Makefile.am b/lib/python/Plugins/SystemPlugins/Satfinder/Makefile.am new file mode 100644 index 0000000..6ef8f96 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/Satfinder/Makefile.am @@ -0,0 +1,7 @@ +installdir = $(pkglibdir)/python/Plugins/SystemPlugins/Satfinder + +SUBDIRS = meta + +install_PYTHON = \ + __init__.py \ + plugin.py diff --git a/lib/python/Plugins/SystemPlugins/Satfinder/__init__.py b/lib/python/Plugins/SystemPlugins/Satfinder/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/SystemPlugins/Satfinder/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/Satfinder/meta/Makefile.am new file mode 100644 index 0000000..23499a4 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/Satfinder/meta/Makefile.am @@ -0,0 +1,5 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_satfinder.xml + +EXTRA_DIST = satfinder.jpg diff --git a/lib/python/Plugins/SystemPlugins/Satfinder/meta/plugin_satfinder.xml b/lib/python/Plugins/SystemPlugins/Satfinder/meta/plugin_satfinder.xml new file mode 100644 index 0000000..fe0c901 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/Satfinder/meta/plugin_satfinder.xml @@ -0,0 +1,20 @@ + + + + + + + Dream Multimedia + Satfinder + enigma2-plugin-systemplugins-satfinder + Satfinder helps you to align your dish + The Satfinder plugin helps you to align your dish.\n + It shows you informations about signal rate and errors. + + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/Satfinder/meta/satfinder.jpg b/lib/python/Plugins/SystemPlugins/Satfinder/meta/satfinder.jpg new file mode 100644 index 0000000000000000000000000000000000000000..44f0981148a0460de5e372436431255d13e04994 GIT binary patch literal 87698 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ශ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 self.preDefTransponders.index: + transponder = tps[self.preDefTransponders.index] + returnvalue = (transponder[1] / 1000, transponder[2] / 1000, + transponder[3], transponder[4], 2, satpos, transponder[5], transponder[6], transponder[8], transponder[9]) + self.tune(returnvalue) + + def createConfig(self, foo): + self.preDefTransponders = None + self.tuning_type = ConfigSelection(choices = [("manual_transponder", _("User defined transponder")), ("predefined_transponder", _("Predefined transponder"))]) + self.orbital_position = 192 + if self.frontendData and self.frontendData.has_key('orbital_position'): + self.orbital_position = self.frontendData['orbital_position'] + ScanSetup.createConfig(self, self.frontendData) + + for x in (self.tuning_type, self.scan_sat.frequency, + self.scan_sat.inversion, self.scan_sat.symbolrate, + self.scan_sat.polarization, self.scan_sat.fec, self.scan_sat.pilot, + self.scan_sat.fec_s2, self.scan_sat.fec, self.scan_sat.modulation, + self.scan_sat.rolloff, self.scan_sat.system): + x.addNotifier(self.retune, initial_call = False) + + satfinder_nim_list = [] + for n in nimmanager.nim_slots: + if not n.isCompatible("DVB-S"): + continue + if n.config_mode in ("loopthrough", "satposdepends", "nothing"): + continue + if n.config_mode == "advanced" and len(nimmanager.getSatListForNim(n.slot)) < 1: + continue + satfinder_nim_list.append((str(n.slot), n.friendly_full_description)) + self.satfinder_scan_nims = ConfigSelection(choices = satfinder_nim_list) + self.feid = int(self.satfinder_scan_nims.value) + + self.satList = [] + self.scan_satselection = [] + for slot in nimmanager.nim_slots: + if slot.isCompatible("DVB-S"): + self.satList.append(nimmanager.getSatListForNim(slot.slot)) + self.scan_satselection.append(getConfigSatlist(self.orbital_position, self.satList[slot.slot])) + else: + self.satList.append(None) + + def getSelectedSatIndex(self, v): + index = 0 + none_cnt = 0 + for n in self.satList: + if self.satList[index] == None: + none_cnt = none_cnt + 1 + if index == int(v): + return (index-none_cnt) + index = index + 1 + return -1 + + def updatePreDefTransponders(self): + ScanSetup.predefinedTranspondersList(self, self.tuning_sat.orbital_position) + if self.preDefTransponders: + self.preDefTransponders.addNotifier(self.retune, initial_call=False) + + def keyGoScan(self): + self.frontend = None + del self.raw_channel + tlist = [] + self.addSatTransponder(tlist, + self.transponder[0], # frequency + self.transponder[1], # sr + self.transponder[2], # pol + self.transponder[3], # fec + self.transponder[4], # inversion + self.tuning_sat.orbital_position, + self.transponder[6], # system + self.transponder[7], # modulation + self.transponder[8], # rolloff + self.transponder[9] # pilot + ) + self.startScan(tlist, self.feid) + + def startScan(self, tlist, feid): + flags = 0 + networkid = 0 + self.session.openWithCallback(self.startScanCallback, ServiceScan, [{"transponders": tlist, "feid": feid, "flags": flags, "networkid": networkid}]) + + def startScanCallback(self, answer): + if answer: + self.doCloseRecursive() + + def keyCancel(self): + if self.session.postScanService and self.frontend: + self.frontend = None + del self.raw_channel + self.close(False) + + def doCloseRecursive(self): + if self.session.postScanService and self.frontend: + self.frontend = None + del self.raw_channel + self.close(True) + + def tune(self, transponder): + if self.initcomplete: + if transponder is not None: + self.tuner.tune(transponder) + self.transponder = transponder + +def SatfinderMain(session, close=None, **kwargs): + nims = nimmanager.getNimListOfType("DVB-S") + + nimList = [] + for x in nims: + if nimmanager.getNimConfig(x).configMode.value in ("loopthrough", "satposdepends", "nothing"): + continue + if nimmanager.getNimConfig(x).configMode.value == "advanced" and len(nimmanager.getSatListForNim(x)) < 1: + continue + nimList.append(x) + + if len(nimList) == 0: + session.open(MessageBox, _("No satellites configured. Plese check your tuner setup."), MessageBox.TYPE_ERROR) + else: + if session.nav.RecordTimer.isRecording(): + session.open(MessageBox, _("A recording is currently running. Please stop the recording before trying to start the satfinder."), MessageBox.TYPE_ERROR) + else: + session.openWithCallback(close, Satfinder) + +def SatfinderStart(menuid, **kwargs): + if menuid == "scan": + return [(_("Satfinder"), SatfinderMain, "satfinder", None)] + else: + return [] + +def Plugins(**kwargs): + if (nimmanager.hasNimType("DVB-S")): + return PluginDescriptor(name=_("Satfinder"), description=_("Helps setting up your dish"), where = PluginDescriptor.WHERE_MENU, needsRestart = False, fnc=SatfinderStart) + else: + return [] diff --git a/lib/python/Plugins/SystemPlugins/SkinSelector/Makefile.am b/lib/python/Plugins/SystemPlugins/SkinSelector/Makefile.am new file mode 100644 index 0000000..cfb1005 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/SkinSelector/Makefile.am @@ -0,0 +1,8 @@ +installdir = $(pkglibdir)/python/Plugins/SystemPlugins/SkinSelector + +SUBDIRS = meta + +install_PYTHON = \ + __init__.py \ + plugin.py \ + noprev.png diff --git a/lib/python/Plugins/SystemPlugins/SkinSelector/__init__.py b/lib/python/Plugins/SystemPlugins/SkinSelector/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/SystemPlugins/SkinSelector/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/SkinSelector/meta/Makefile.am new file mode 100644 index 0000000..992f4b0 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/SkinSelector/meta/Makefile.am @@ -0,0 +1,5 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_skinselector.xml + +EXTRA_DIST = skinselector_de.jpg skinselector_en.jpg diff --git a/lib/python/Plugins/SystemPlugins/SkinSelector/meta/plugin_skinselector.xml b/lib/python/Plugins/SystemPlugins/SkinSelector/meta/plugin_skinselector.xml new file mode 100644 index 0000000..6d021f0 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/SkinSelector/meta/plugin_skinselector.xml @@ -0,0 +1,21 @@ + + + + + + + Dream Multimedia + SkinSelector + enigma2-plugin-systemplugins-skinselector + SkinSelector shows a menu with selectable skins + The SkinSelector shows a menu with selectable skins.\n + It's now easy to change the look and feel of your receiver. + + + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/SkinSelector/meta/skinselector_de.jpg b/lib/python/Plugins/SystemPlugins/SkinSelector/meta/skinselector_de.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3b40708a123e6b17e50e1089f8311d7b17fe94e9 GIT binary patch literal 136439 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 H`|ke%MN|l+ literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/SystemPlugins/SkinSelector/meta/skinselector_en.jpg b/lib/python/Plugins/SystemPlugins/SkinSelector/meta/skinselector_en.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b9f0bd3ee89469af71ba0083efb1f534cfbf6746 GIT binary patch literal 126685 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 literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/SystemPlugins/SkinSelector/noprev.png b/lib/python/Plugins/SystemPlugins/SkinSelector/noprev.png new file mode 100644 index 0000000000000000000000000000000000000000..13299417bd7905b60c198b914a51b0ee732c2167 GIT binary patch literal 7959 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 literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/SystemPlugins/SkinSelector/plugin.py b/lib/python/Plugins/SystemPlugins/SkinSelector/plugin.py new file mode 100644 index 0000000..f320699 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/SkinSelector/plugin.py @@ -0,0 +1,136 @@ +# -*- coding: iso-8859-1 -*- +# (c) 2006 Stephan Reichholf +# This Software is Free, use it where you want, when you want for whatever you want and modify it if you want but don't remove my copyright! +from Screens.Screen import Screen +from Screens.Standby import TryQuitMainloop +from Screens.MessageBox import MessageBox +from Components.ActionMap import NumberActionMap +from Components.Pixmap import Pixmap +from Components.Sources.StaticText import StaticText +from Components.MenuList import MenuList +from Plugins.Plugin import PluginDescriptor +from Components.config import config +from Tools.Directories import resolveFilename, SCOPE_PLUGINS +from enigma import eEnv +import os + +SKINXML = "skin.xml" +DEFAULTSKIN = "" + +class SkinSelector(Screen): + # for i18n: + # _("Choose your Skin") + skinlist = [] + root = os.path.join(eEnv.resolve("${datadir}"),"enigma2") + + def __init__(self, session, args = None): + + Screen.__init__(self, session) + + self.skinlist = [] + self.previewPath = "" + if os.path.exists(os.path.join(self.root, SKINXML)): + self.skinlist.append(DEFAULTSKIN) + for root, dirs, files in os.walk(self.root, followlinks=True): + for subdir in dirs: + dir = os.path.join(root,subdir) + if os.path.exists(os.path.join(dir,SKINXML)): + self.skinlist.append(subdir) + dirs = [] + + self["key_red"] = StaticText(_("Close")) + self["introduction"] = StaticText(_("Press OK to activate the selected skin.")) + self.skinlist.sort() + self["SkinList"] = MenuList(self.skinlist) + self["Preview"] = Pixmap() + + self["actions"] = NumberActionMap(["WizardActions", "InputActions", "EPGSelectActions"], + { + "ok": self.ok, + "back": self.close, + "red": self.close, + "up": self.up, + "down": self.down, + "left": self.left, + "right": self.right, + "info": self.info, + }, -1) + + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + tmp = config.skin.primary_skin.value.find("/"+SKINXML) + if tmp != -1: + tmp = config.skin.primary_skin.value[:tmp] + idx = 0 + for skin in self.skinlist: + if skin == tmp: + break + idx += 1 + if idx < len(self.skinlist): + self["SkinList"].moveToIndex(idx) + self.loadPreview() + + def up(self): + self["SkinList"].up() + self.loadPreview() + + def down(self): + self["SkinList"].down() + self.loadPreview() + + def left(self): + self["SkinList"].pageUp() + self.loadPreview() + + def right(self): + self["SkinList"].pageDown() + self.loadPreview() + + def info(self): + aboutbox = self.session.open(MessageBox,_("Enigma2 skin selector"), MessageBox.TYPE_INFO) + aboutbox.setTitle(_("About...")) + + def ok(self): + if self["SkinList"].getCurrent() == DEFAULTSKIN: + skinfile = "." + else: + skinfile = self["SkinList"].getCurrent() + skinfile = os.path.join(skinfile, SKINXML) + + print "Skinselector: Selected Skin: "+self.root+skinfile + config.skin.primary_skin.value = skinfile + config.skin.primary_skin.save() + restartbox = self.session.openWithCallback(self.restartGUI,MessageBox,_("GUI needs a restart to apply a new skin\nDo you want to restart the GUI now?"), MessageBox.TYPE_YESNO) + restartbox.setTitle(_("Restart GUI now?")) + + def loadPreview(self): + if self["SkinList"].getCurrent() == DEFAULTSKIN: + pngpath = "." + else: + pngpath = self["SkinList"].getCurrent() + pngpath = os.path.join(os.path.join(self.root, pngpath), "prev.png") + + if not os.path.exists(pngpath): + pngpath = resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SkinSelector/noprev.png") + + if self.previewPath != pngpath: + self.previewPath = pngpath + + self["Preview"].instance.setPixmapFromFile(self.previewPath) + + def restartGUI(self, answer): + if answer is True: + self.session.open(TryQuitMainloop, 3) + +def SkinSelMain(session, **kwargs): + session.open(SkinSelector) + +def SkinSelSetup(menuid, **kwargs): + if menuid == "system": + return [(_("Skin"), SkinSelMain, "skin_selector", None)] + else: + return [] + +def Plugins(**kwargs): + return PluginDescriptor(name="Skinselector", description="Select Your Skin", where = PluginDescriptor.WHERE_MENU, needsRestart = False, fnc=SkinSelSetup) diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py b/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py new file mode 100644 index 0000000..c9b8ea0 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/SoftwareManager/BackupRestore.py @@ -0,0 +1,332 @@ +from Screens.Screen import Screen +from Screens.MessageBox import MessageBox +from Screens.Console import Console +from Components.ActionMap import ActionMap, NumberActionMap +from Components.Pixmap import Pixmap +from Components.Label import Label +from Components.Sources.StaticText import StaticText +from Components.MenuList import MenuList +from Components.config import getConfigListEntry, configfile, ConfigSelection, ConfigSubsection, ConfigText, ConfigLocations +from Components.config import config +from Components.ConfigList import ConfigList,ConfigListScreen +from Components.FileList import MultiFileSelectList +from Plugins.Plugin import PluginDescriptor +from enigma import eTimer, eEnv +from Tools.Directories import * +from os import popen, path, makedirs, listdir, access, stat, rename, remove, W_OK, R_OK +from time import gmtime, strftime, localtime +from datetime import date + +config.plugins.configurationbackup = ConfigSubsection() +config.plugins.configurationbackup.backuplocation = ConfigText(default = '/media/hdd/', visible_width = 50, fixed_size = False) +config.plugins.configurationbackup.backupdirs = ConfigLocations(default=[eEnv.resolve('${sysconfdir}/enigma2/'), '/etc/network/interfaces', '/etc/wpa_supplicant.conf', '/etc/wpa_supplicant.ath0.conf', '/etc/wpa_supplicant.wlan0.conf', '/etc/resolv.conf', '/etc/default_gw', '/etc/hostname']) + +def getBackupPath(): + backuppath = config.plugins.configurationbackup.backuplocation.value + if backuppath.endswith('/'): + return backuppath + 'backup' + else: + return backuppath + '/backup' + +def getBackupFilename(): + return "enigma2settingsbackup.tar.gz" + + +class BackupScreen(Screen, ConfigListScreen): + skin = """ + + + """ + + def __init__(self, session, runBackup = False): + Screen.__init__(self, session) + self.session = session + self.runBackup = runBackup + self["actions"] = ActionMap(["WizardActions", "DirectionActions"], + { + "ok": self.close, + "back": self.close, + "cancel": self.close, + }, -1) + self.finished_cb = None + self.backuppath = getBackupPath() + self.backupfile = getBackupFilename() + self.fullbackupfilename = self.backuppath + "/" + self.backupfile + self.list = [] + ConfigListScreen.__init__(self, self.list) + self.onLayoutFinish.append(self.layoutFinished) + if self.runBackup: + self.onShown.append(self.doBackup) + + def layoutFinished(self): + self.setWindowTitle() + + def setWindowTitle(self): + self.setTitle(_("Backup is running...")) + + def doBackup(self): + configfile.save() + try: + if (path.exists(self.backuppath) == False): + makedirs(self.backuppath) + self.backupdirs = ' '.join( config.plugins.configurationbackup.backupdirs.value ) + if path.exists(self.fullbackupfilename): + dt = str(date.fromtimestamp(stat(self.fullbackupfilename).st_ctime)) + self.newfilename = self.backuppath + "/" + dt + '-' + self.backupfile + if path.exists(self.newfilename): + remove(self.newfilename) + rename(self.fullbackupfilename,self.newfilename) + if self.finished_cb: + self.session.openWithCallback(self.finished_cb, Console, title = _("Backup is running..."), cmdlist = ["tar -czvf " + self.fullbackupfilename + " " + self.backupdirs],finishedCallback = self.backupFinishedCB,closeOnSuccess = True) + else: + self.session.open(Console, title = _("Backup is running..."), cmdlist = ["tar -czvf " + self.fullbackupfilename + " " + self.backupdirs],finishedCallback = self.backupFinishedCB, closeOnSuccess = True) + except OSError: + if self.finished_cb: + self.session.openWithCallback(self.finished_cb, MessageBox, _("Sorry, your backup destination is not writeable.\nPlease select a different one."), MessageBox.TYPE_INFO, timeout = 10 ) + else: + self.session.openWithCallback(self.backupErrorCB,MessageBox, _("Sorry, your backup destination is not writeable.\nPlease select a different one."), MessageBox.TYPE_INFO, timeout = 10 ) + + def backupFinishedCB(self,retval = None): + self.close(True) + + def backupErrorCB(self,retval = None): + self.close(False) + + def runAsync(self, finished_cb): + self.finished_cb = finished_cb + self.doBackup() + + +class BackupSelection(Screen): + skin = """ + + + + + + + + + """ + + def __init__(self, session): + Screen.__init__(self, session) + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("Save")) + self["key_yellow"] = StaticText() + + self.selectedFiles = config.plugins.configurationbackup.backupdirs.value + defaultDir = '/' + inhibitDirs = ["/bin", "/boot", "/dev", "/autofs", "/lib", "/proc", "/sbin", "/sys", "/hdd", "/tmp", "/mnt", "/media"] + self.filelist = MultiFileSelectList(self.selectedFiles, defaultDir, inhibitDirs = inhibitDirs ) + self["checkList"] = self.filelist + + self["actions"] = ActionMap(["DirectionActions", "OkCancelActions", "ShortcutActions"], + { + "cancel": self.exit, + "red": self.exit, + "yellow": self.changeSelectionState, + "green": self.saveSelection, + "ok": self.okClicked, + "left": self.left, + "right": self.right, + "down": self.down, + "up": self.up + }, -1) + if not self.selectionChanged in self["checkList"].onSelectionChanged: + self["checkList"].onSelectionChanged.append(self.selectionChanged) + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + idx = 0 + self["checkList"].moveToIndex(idx) + self.setWindowTitle() + self.selectionChanged() + + def setWindowTitle(self): + self.setTitle(_("Select files/folders to backup")) + + def selectionChanged(self): + current = self["checkList"].getCurrent()[0] + if current[2] is True: + self["key_yellow"].setText(_("Deselect")) + else: + self["key_yellow"].setText(_("Select")) + + def up(self): + self["checkList"].up() + + def down(self): + self["checkList"].down() + + def left(self): + self["checkList"].pageUp() + + def right(self): + self["checkList"].pageDown() + + def changeSelectionState(self): + self["checkList"].changeSelectionState() + self.selectedFiles = self["checkList"].getSelectedList() + + def saveSelection(self): + self.selectedFiles = self["checkList"].getSelectedList() + config.plugins.configurationbackup.backupdirs.value = self.selectedFiles + config.plugins.configurationbackup.backupdirs.save() + config.plugins.configurationbackup.save() + config.save() + self.close(None) + + def exit(self): + self.close(None) + + def okClicked(self): + if self.filelist.canDescent(): + self.filelist.descent() + + +class RestoreMenu(Screen): + skin = """ + + + + + + + + + """ + + def __init__(self, session, plugin_path): + Screen.__init__(self, session) + self.skin_path = plugin_path + + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("Restore")) + self["key_yellow"] = StaticText(_("Delete")) + + self.sel = [] + self.val = [] + self.entry = False + self.exe = False + + self.path = "" + + self["actions"] = NumberActionMap(["SetupActions"], + { + "ok": self.KeyOk, + "cancel": self.keyCancel + }, -1) + + self["shortcuts"] = ActionMap(["ShortcutActions"], + { + "red": self.keyCancel, + "green": self.KeyOk, + "yellow": self.deleteFile, + }) + self.flist = [] + self["filelist"] = MenuList(self.flist) + self.fill_list() + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + self.setWindowTitle() + + def setWindowTitle(self): + self.setTitle(_("Restore backups")) + + + def fill_list(self): + self.flist = [] + self.path = getBackupPath() + if (path.exists(self.path) == False): + makedirs(self.path) + for file in listdir(self.path): + if (file.endswith(".tar.gz")): + self.flist.append((file)) + self.entry = True + self.flist.sort(reverse=True) + self["filelist"].l.setList(self.flist) + + def KeyOk(self): + if (self.exe == False) and (self.entry == True): + self.sel = self["filelist"].getCurrent() + if self.sel: + self.val = self.path + "/" + self.sel + self.session.openWithCallback(self.startRestore, MessageBox, _("Are you sure you want to restore\nthe following backup:\n%s\nYour receiver will restart after the backup has been restored!") % (self.sel)) + + def keyCancel(self): + self.close() + + def startRestore(self, ret = False): + if (ret == True): + self.exe = True + self.session.open(Console, title = _("Restoring..."), cmdlist = ["tar -xzvf " + self.path + "/" + self.sel + " -C /", "killall -9 enigma2"]) + + def deleteFile(self): + if (self.exe == False) and (self.entry == True): + self.sel = self["filelist"].getCurrent() + if self.sel: + self.val = self.path + "/" + self.sel + self.session.openWithCallback(self.startDelete, MessageBox, _("Are you sure you want to delete\nthe following backup:\n") + self.sel) + + def startDelete(self, ret = False): + if (ret == True): + self.exe = True + print "removing:",self.val + if (path.exists(self.val) == True): + remove(self.val) + self.exe = False + self.fill_list() + +class RestoreScreen(Screen, ConfigListScreen): + skin = """ + + + """ + + def __init__(self, session, runRestore = False): + Screen.__init__(self, session) + self.session = session + self.runRestore = runRestore + self["actions"] = ActionMap(["WizardActions", "DirectionActions"], + { + "ok": self.close, + "back": self.close, + "cancel": self.close, + }, -1) + self.finished_cb = None + self.backuppath = getBackupPath() + self.backupfile = getBackupFilename() + self.fullbackupfilename = self.backuppath + "/" + self.backupfile + self.list = [] + ConfigListScreen.__init__(self, self.list) + self.onLayoutFinish.append(self.layoutFinished) + if self.runRestore: + self.onShown.append(self.doRestore) + + def layoutFinished(self): + self.setWindowTitle() + + def setWindowTitle(self): + self.setTitle(_("Restoring...")) + + def doRestore(self): + if path.exists("/proc/stb/vmpeg/0/dst_width"): + restorecmdlist = ["tar -xzvf " + self.fullbackupfilename + " -C /", "echo 0 > /proc/stb/vmpeg/0/dst_height", "echo 0 > /proc/stb/vmpeg/0/dst_left", "echo 0 > /proc/stb/vmpeg/0/dst_top", "echo 0 > /proc/stb/vmpeg/0/dst_width", "killall -9 enigma2"] + else: + restorecmdlist = ["tar -xzvf " + self.fullbackupfilename + " -C /", "killall -9 enigma2"] + if self.finished_cb: + self.session.openWithCallback(self.finished_cb, Console, title = _("Restoring..."), cmdlist = restorecmdlist) + else: + self.session.open(Console, title = _("Restoring..."), cmdlist = restorecmdlist) + + def backupFinishedCB(self,retval = None): + self.close(True) + + def backupErrorCB(self,retval = None): + self.close(False) + + def runAsync(self, finished_cb): + self.finished_cb = finished_cb + self.doRestore() diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/ImageWizard.py b/lib/python/Plugins/SystemPlugins/SoftwareManager/ImageWizard.py new file mode 100644 index 0000000..877401b --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/SoftwareManager/ImageWizard.py @@ -0,0 +1,122 @@ +from Screens.Wizard import WizardSummary +from Screens.WizardLanguage import WizardLanguage +from Screens.Wizard import wizardManager +from Screens.Rc import Rc +from Components.Label import Label +from Components.MenuList import MenuList +from Components.PluginComponent import plugins +from Plugins.Plugin import PluginDescriptor +from Tools.Directories import fileExists, resolveFilename, SCOPE_PLUGINS, SCOPE_SKIN_IMAGE +from Components.Pixmap import Pixmap, MovingPixmap, MultiPixmap +from os import popen, path, makedirs, listdir, access, stat, rename, remove, W_OK, R_OK +from enigma import eEnv + +from Components.config import config, getConfigListEntry, ConfigSubsection, ConfigText, ConfigLocations, ConfigBoolean +from Components.Harddisk import harddiskmanager + +config.misc.firstrun = ConfigBoolean(default = True) +config.plugins.configurationbackup = ConfigSubsection() +config.plugins.configurationbackup.backuplocation = ConfigText(default = '/media/hdd/', visible_width = 50, fixed_size = False) +config.plugins.configurationbackup.backupdirs = ConfigLocations(default=[eEnv.resolve('${sysconfdir}/enigma2/'), '/etc/network/interfaces', '/etc/wpa_supplicant.conf', '/etc/wpa_supplicant.ath0.conf', '/etc/wpa_supplicant.wlan0.conf', '/etc/resolv.conf', '/etc/default_gw', '/etc/hostname']) + + +backupfile = "enigma2settingsbackup.tar.gz" + +def checkConfigBackup(): + parts = [ (r.description, r.mountpoint) for r in harddiskmanager.getMountedPartitions(onlyhotplug = False)] + for x in parts: + if x[1] == '/': + parts.remove(x) + if len(parts): + for x in parts: + if x[1].endswith('/'): + fullbackupfile = x[1] + 'backup/' + backupfile + if fileExists(fullbackupfile): + config.plugins.configurationbackup.backuplocation.value = str(x[1]) + config.plugins.configurationbackup.backuplocation.save() + config.plugins.configurationbackup.save() + return x + else: + fullbackupfile = x[1] + '/backup/' + backupfile + if fileExists(fullbackupfile): + config.plugins.configurationbackup.backuplocation.value = str(x[1]) + config.plugins.configurationbackup.backuplocation.save() + config.plugins.configurationbackup.save() + return x + return None + +def checkBackupFile(): + backuplocation = config.plugins.configurationbackup.backuplocation.value + if backuplocation.endswith('/'): + fullbackupfile = backuplocation + 'backup/' + backupfile + if fileExists(fullbackupfile): + return True + else: + return False + else: + fullbackupfile = backuplocation + '/backup/' + backupfile + if fileExists(fullbackupfile): + return True + else: + return False + +if checkConfigBackup() is None: + backupAvailable = 0 +else: + backupAvailable = 1 + +class ImageWizard(WizardLanguage, Rc): + skin = """ + + + + + + + + + + + + + + + """ + def __init__(self, session): + self.xmlfile = resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/imagewizard.xml") + WizardLanguage.__init__(self, session, showSteps = False, showStepSlider = False) + Rc.__init__(self) + self.session = session + self["wizard"] = Pixmap() + self.selectedDevice = None + + def markDone(self): + pass + + def listDevices(self): + list = [ (r.description, r.mountpoint) for r in harddiskmanager.getMountedPartitions(onlyhotplug = False)] + for x in list: + result = access(x[1], W_OK) and access(x[1], R_OK) + if result is False or x[1] == '/': + list.remove(x) + for x in list: + if x[1].startswith('/autofs/'): + list.remove(x) + return list + + def deviceSelectionMade(self, index): + self.deviceSelect(index) + + def deviceSelectionMoved(self): + self.deviceSelect(self.selection) + + def deviceSelect(self, device): + self.selectedDevice = device + config.plugins.configurationbackup.backuplocation.value = self.selectedDevice + config.plugins.configurationbackup.backuplocation.save() + config.plugins.configurationbackup.save() + + +if config.misc.firstrun.value: + wizardManager.registerWizard(ImageWizard, backupAvailable, priority = 10) + diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/Makefile.am b/lib/python/Plugins/SystemPlugins/SoftwareManager/Makefile.am new file mode 100644 index 0000000..2267b81 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/SoftwareManager/Makefile.am @@ -0,0 +1,21 @@ +installdir = $(pkglibdir)/python/Plugins/SystemPlugins/SoftwareManager + +SUBDIRS = meta + +install_PYTHON = \ + __init__.py \ + plugin.py \ + BackupRestore.py \ + ImageWizard.py \ + SoftwareTools.py + +dist_install_DATA = \ + imagewizard.xml \ + installable.png \ + installed.png \ + install.png \ + noprev.png \ + remove.png \ + update.png \ + upgradeable.png \ + upgrade.png diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/SoftwareTools.py b/lib/python/Plugins/SystemPlugins/SoftwareManager/SoftwareTools.py new file mode 100644 index 0000000..821bcfe --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/SoftwareManager/SoftwareTools.py @@ -0,0 +1,279 @@ +# -*- coding: iso-8859-1 -*- +from enigma import eConsoleAppContainer +from Components.Console import Console +from Components.About import about +from Components.PackageInfo import PackageInfoHandler +from Components.Language import language +from Components.Sources.List import List +from Components.Ipkg import IpkgComponent +from Components.Network import iNetwork +from Tools.Directories import pathExists, fileExists, resolveFilename, SCOPE_METADIR +from Tools.HardwareInfo import HardwareInfo +from time import time + + +class SoftwareTools(PackageInfoHandler): + lastDownloadDate = None + NetworkConnectionAvailable = None + list_updating = False + available_updates = 0 + available_updatelist = [] + available_packetlist = [] + installed_packetlist = {} + + + def __init__(self): + aboutInfo = about.getImageVersionString() + if aboutInfo.startswith("dev-"): + self.ImageVersion = 'Experimental' + else: + self.ImageVersion = 'Stable' + self.language = language.getLanguage()[:2] # getLanguage returns e.g. "fi_FI" for "language_country" + PackageInfoHandler.__init__(self, self.statusCallback, blocking = False, neededTag = 'ALL_TAGS', neededFlag = self.ImageVersion) + self.directory = resolveFilename(SCOPE_METADIR) + self.list = List([]) + self.NotifierCallback = None + self.Console = Console() + self.UpdateConsole = Console() + self.cmdList = [] + self.unwanted_extensions = ('-dbg', '-dev', '-doc', '-staticdev', '-src') + self.ipkg = IpkgComponent() + self.ipkg.addCallback(self.ipkgCallback) + + def statusCallback(self, status, progress): + pass + + def startSoftwareTools(self, callback = None): + if callback is not None: + self.NotifierCallback = callback + iNetwork.checkNetworkState(self.checkNetworkCB) + + def checkNetworkCB(self,data): + if data is not None: + if data <= 2: + self.NetworkConnectionAvailable = True + self.getUpdates() + else: + self.NetworkConnectionAvailable = False + self.getUpdates() + + def getUpdates(self, callback = None): + if self.lastDownloadDate is None: + if self.NetworkConnectionAvailable == True: + self.lastDownloadDate = time() + if self.list_updating is False and callback is None: + self.list_updating = True + self.ipkg.startCmd(IpkgComponent.CMD_UPDATE) + elif self.list_updating is False and callback is not None: + self.list_updating = True + self.NotifierCallback = callback + self.ipkg.startCmd(IpkgComponent.CMD_UPDATE) + elif self.list_updating is True and callback is not None: + self.NotifierCallback = callback + else: + self.list_updating = False + if callback is not None: + callback(False) + elif self.NotifierCallback is not None: + self.NotifierCallback(False) + else: + if self.NetworkConnectionAvailable == True: + self.lastDownloadDate = time() + if self.list_updating is False and callback is None: + self.list_updating = True + self.ipkg.startCmd(IpkgComponent.CMD_UPDATE) + elif self.list_updating is False and callback is not None: + self.list_updating = True + self.NotifierCallback = callback + self.ipkg.startCmd(IpkgComponent.CMD_UPDATE) + elif self.list_updating is True and callback is not None: + self.NotifierCallback = callback + else: + if self.list_updating and callback is not None: + self.NotifierCallback = callback + self.startIpkgListAvailable() + else: + self.list_updating = False + if callback is not None: + callback(False) + elif self.NotifierCallback is not None: + self.NotifierCallback(False) + + def ipkgCallback(self, event, param): + if event == IpkgComponent.EVENT_ERROR: + self.list_updating = False + if self.NotifierCallback is not None: + self.NotifierCallback(False) + elif event == IpkgComponent.EVENT_DONE: + if self.list_updating: + self.startIpkgListAvailable() + pass + + def startIpkgListAvailable(self, callback = None): + if callback is not None: + self.list_updating = True + if self.list_updating: + if not self.UpdateConsole: + self.UpdateConsole = Console() + cmd = self.ipkg.ipkg + " list" + self.UpdateConsole.ePopen(cmd, self.IpkgListAvailableCB, callback) + + def IpkgListAvailableCB(self, result, retval, extra_args = None): + (callback) = extra_args + if result: + if self.list_updating: + self.available_packetlist = [] + for x in result.splitlines(): + tokens = x.split(' - ') + name = tokens[0].strip() + if not any(name.endswith(x) for x in self.unwanted_extensions): + l = len(tokens) + version = l > 1 and tokens[1].strip() or "" + descr = l > 2 and tokens[2].strip() or "" + self.available_packetlist.append([name, version, descr]) + if callback is None: + self.startInstallMetaPackage() + else: + if self.UpdateConsole: + if len(self.UpdateConsole.appContainers) == 0: + callback(True) + else: + self.list_updating = False + if self.UpdateConsole: + if len(self.UpdateConsole.appContainers) == 0: + if callback is not None: + callback(False) + + def startInstallMetaPackage(self, callback = None): + if callback is not None: + self.list_updating = True + if self.list_updating: + if self.NetworkConnectionAvailable == True: + if not self.UpdateConsole: + self.UpdateConsole = Console() + cmd = self.ipkg.ipkg + " install enigma2-meta enigma2-plugins-meta enigma2-skins-meta" + self.UpdateConsole.ePopen(cmd, self.InstallMetaPackageCB, callback) + else: + self.InstallMetaPackageCB(True) + + def InstallMetaPackageCB(self, result, retval = None, extra_args = None): + (callback) = extra_args + if result: + self.fillPackagesIndexList() + if callback is None: + self.startIpkgListInstalled() + else: + if self.UpdateConsole: + if len(self.UpdateConsole.appContainers) == 0: + callback(True) + else: + self.list_updating = False + if self.UpdateConsole: + if len(self.UpdateConsole.appContainers) == 0: + if callback is not None: + callback(False) + + def startIpkgListInstalled(self, callback = None): + if callback is not None: + self.list_updating = True + if self.list_updating: + if not self.UpdateConsole: + self.UpdateConsole = Console() + cmd = self.ipkg.ipkg + " list_installed" + self.UpdateConsole.ePopen(cmd, self.IpkgListInstalledCB, callback) + + def IpkgListInstalledCB(self, result, retval, extra_args = None): + (callback) = extra_args + if result: + self.installed_packetlist = {} + for x in result.splitlines(): + tokens = x.split(' - ') + name = tokens[0].strip() + if not any(name.endswith(x) for x in self.unwanted_extensions): + l = len(tokens) + version = l > 1 and tokens[1].strip() or "" + self.installed_packetlist[name] = version + for package in self.packagesIndexlist[:]: + if not self.verifyPrerequisites(package[0]["prerequisites"]): + self.packagesIndexlist.remove(package) + for package in self.packagesIndexlist[:]: + attributes = package[0]["attributes"] + if attributes.has_key("packagetype"): + if attributes["packagetype"] == "internal": + self.packagesIndexlist.remove(package) + if callback is None: + self.countUpdates() + else: + if self.UpdateConsole: + if len(self.UpdateConsole.appContainers) == 0: + callback(True) + else: + self.list_updating = False + if self.UpdateConsole: + if len(self.UpdateConsole.appContainers) == 0: + if callback is not None: + callback(False) + + def countUpdates(self, callback = None): + self.available_updates = 0 + self.available_updatelist = [] + for package in self.packagesIndexlist[:]: + attributes = package[0]["attributes"] + packagename = attributes["packagename"] + for x in self.available_packetlist: + if x[0] == packagename: + if self.installed_packetlist.has_key(packagename): + if self.installed_packetlist[packagename] != x[1]: + self.available_updates +=1 + self.available_updatelist.append([packagename]) + + self.list_updating = False + if self.UpdateConsole: + if len(self.UpdateConsole.appContainers) == 0: + if callback is not None: + callback(True) + callback = None + elif self.NotifierCallback is not None: + self.NotifierCallback(True) + self.NotifierCallback = None + + def startIpkgUpdate(self, callback = None): + if not self.Console: + self.Console = Console() + cmd = self.ipkg.ipkg + " update" + self.Console.ePopen(cmd, self.IpkgUpdateCB, callback) + + def IpkgUpdateCB(self, result, retval, extra_args = None): + (callback) = extra_args + if result: + if self.Console: + if len(self.Console.appContainers) == 0: + if callback is not None: + callback(True) + callback = None + + def cleanupSoftwareTools(self): + self.list_updating = False + if self.NotifierCallback is not None: + self.NotifierCallback = None + self.ipkg.stop() + if self.Console is not None: + if len(self.Console.appContainers): + for name in self.Console.appContainers.keys(): + self.Console.kill(name) + if self.UpdateConsole is not None: + if len(self.UpdateConsole.appContainers): + for name in self.UpdateConsole.appContainers.keys(): + self.UpdateConsole.kill(name) + + def verifyPrerequisites(self, prerequisites): + if prerequisites.has_key("hardware"): + hardware_found = False + for hardware in prerequisites["hardware"]: + if hardware == HardwareInfo().device_name: + hardware_found = True + if not hardware_found: + return False + return True + +iSoftwareTools = SoftwareTools() diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/__init__.py b/lib/python/Plugins/SystemPlugins/SoftwareManager/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/imagewizard.xml b/lib/python/Plugins/SystemPlugins/SoftwareManager/imagewizard.xml new file mode 100644 index 0000000..6f25769 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/SoftwareManager/imagewizard.xml @@ -0,0 +1,102 @@ + + + +from Plugins.SystemPlugins.SoftwareManager.ImageWizard import checkConfigBackup +self.backuppath = checkConfigBackup() +self.condition = (self.backuppath is not None and config.misc.firstrun.value) + + + + + + + +self.clearSelectedKeys() +self.selectKey("OK") + + + + + + + + + + + + + + + + + + + + + + + + + + + + +self.currStep = self.getStepWithID('backupresult') +self.afterAsyncCode() + + + + + +from Plugins.SystemPlugins.SoftwareManager.ImageWizard import checkBackupFile +self.backuppath = checkBackupFile() +self.condition = (self.backuppath is True) + + + + + + +from Plugins.SystemPlugins.SoftwareManager.ImageWizard import checkBackupFile +self.backuppath = checkBackupFile() +self.condition = (self.backuppath is False) + + + + + + + + + + + + + + + + + + + + + + + + + + + +from enigma import quitMainloop +quitMainloop(1) + + + + + + +self.condition = self.isLastWizard + + + + diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/install.png b/lib/python/Plugins/SystemPlugins/SoftwareManager/install.png new file mode 100644 index 0000000000000000000000000000000000000000..1287c35a683e69a7b5cb5d0f197dd339aac7ab84 GIT binary patch literal 2176 zcmd^B`#aMOAO6~$;-TbhNOD{`B@{Yf+E7b#NbMqGB)l^l+sw=~M5&iOn94lr5k>JR zYKvvoT28aZT9l~eP|gae-pAwlJKoQAeeV1ET-SZwKit>-!>2G93D?pv(EtEID*ypQ zZL;&fs}A18=yzLMH_4dbA3+Gg#uJD!X&AsK4tow`5s(s-fI(qm;>fsej5h#)f#74I z{+r^Bjg7kcySQukg64bz<2!LUIrSJBZ%a2s{pLrr< zj!sHReE@OOoDck`14wKGGF~bXUMNvsg9rj}N*g$-O_?ZEBMQ`U9F1#JdTHEkIZ|B` zPnX_jLKm7B3|i**>?#_xsr<6%Qm<{H7+NfGx+ZlkmAO}pcvZ?^)uYF5%OmfPCU6xr z!6&AC?(yQfV(r%=SqLWbmDAdlGrCmL`6}t1szkmzk++5POq1O88>wB3{7gIji59s- zhxBxNX1i_{PcN%OpUN|!b{J%L8q&IqYQ9<)_uG|7omgW3myH7Nm z>gwvs%F6Qc^3u}M!otGr?Ci|U%=Gm1M3Iu}A&Q2bW*WTXF<#IV3&f~|ATU%ROT3VW$ zo12=N8XFrM8XD^B>+9<3YHMq6-@aW_Q^RJntE#H5U%$>`u_`Jm%F4=0OG`^iO0HhL zT3lRQR8&-0SXfX{ke8R2o106g)3dX)sZ=V3LLrmML?V$uAmH(M91e%YVw01Tlai7W z6BFa(R$*hW|D{KIaAiC;{DJC!r7mr-T@CFg4$w;>`!J3ZEpgorsG7n z*p!m_3VU>(ABghC-*MI|d@8C|*ISIDt9Z?--emeV)5c$%JBMPAt+N>Oo;_*QEA*d= z>(5P-Xb<-B2%q1gC%meYRh63-`{zW~6577H1;vOTn^kY)=Eh?k_=WM>e?`AnM_i>M zX756i>eryQ-}?C`w+esoA!l2y_XAE@BoKgnFvx0S{v;f{F_f=GgmhnT7O73AKp5b9BpjBn_AcHhO}kK4Z^KXj>e-u>%A=$%-r`4bfecpsOTl%y8? za}S4waU&zXS+wZad%6-WiZ^%!dQa#&;_Pv+=I;-3n^b$;>;5=Lut0^)dfuHrY>XeU`Cpl?t<$6iYVMDaJ&^Ix-`cc~!aul^d7lxd683~K?dJ)P$3to&!t71krvK5$>nPp;zJ?4iH?jK?lmmRhMGwv`-Am9>GQ zGj|nzd^7IDy~mIQLYLKxF6r%szNlMp_n>nvEGt)!xm$-tCfsIFYrO+dp0@bEYRZ*& zc{`NhhP-NTrTpO-M4#GiT~?Z^mb4P-aKsmi(NU-EyBY``;Gx)4_O*Hei#5xEn$r<0 zy0J=$h#$jahH3@~2AE#TUe-GnJKAQ@&&D4 zlNK{JgKOSwZQ%Er5oVO<8pHkvcJkZC_%kpKBpChvh*EsIaq~+60{oG%2fop{{{WpL Bo*4iD literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/installable.png b/lib/python/Plugins/SystemPlugins/SoftwareManager/installable.png new file mode 100644 index 0000000000000000000000000000000000000000..09baa812ce69737a3374d1ddce66788a8a3c67e8 GIT binary patch literal 1023 zcmVD#FAup7 z{xdk*V3qyS58DJ+KH1^w{^>0KY@y?|{(FLN6S2{9Mp36}^_BArZ(kVM8XV5-ERkL! zl>5@e;bQ8A@5fILj&1=)4$`F#*Ax!rQTC#w z#B0krr*56D2aa3V@b;JhL7phb7+O+s8W1b-*L&~ot_xa493L#S1BhYdMYx#QFifm1 zC%yd3BNwx^APWgLmpe6q8taf~QxXhKN9Te4`6*c^!4n9X#dt)ZR0c-CU?#$@_5qe@ zET=QoU@ry`NELA)F%hPON@1WhM-7%9F`2AMFcr{Jft8LZRxuM?2rig{TuLF#Pv5k3 z4ZvJV#Y+oa`B?RF-wz`eMGV04=Jd5Hz(Ev+rd^Qei$rpN_@hyY!Y~LZ z4I|0`IsI676}aA4aYGYmZVT?OKDGaHztH*1#fS!BM1hrTH>!swLD4cOkwP#+zQN#k z81a5s`mzuN0@{tOW7S~xK+eY4)U3fkjTy=2~9Rat*I*wjXP*9a3B6nYcs+a6JIs2tuSj937^yr2P2K1G@&*GxfpyXHQHv z-Ytbv0svHRQn>!&T>nG8vBAx1X6)q4(@W(_$eAdf7zjOf_0Qp!o?B0EUS#9rSG#8l zPR?pX2*?eBZCv`*~jP*XwzHdtT2w$;r`1=HRaf0RWIe*jgd? z+30^OCAN>4Y3cfXQYFJtWS1acaws+!4?ul_aQI^gBGwO&#AAKJZujCZ0e~3b3Efi7zBu(B}ty&H{O=MKt5!CR}r41hRj#Bdvwe( zRnMDo$c!v=Ib04(k++Oiw2o1-iPLn;JmryR9Q^ij9NW+<>w+K6^)Xx7E?&hUQ5~78 zM`}4wtZhhYjYDwHEgqq4CYu58Ey8*V<=v+oip; zOMUB{%XG;f_HX_3Wv-+!J zZol)>VK?e1rkaZ_`H(s!)PX>+)5bksuu-KfborFmi*X;ud|<# zjPK=5^LJ3m#f*g=L~M4}{O+HflbNH7i(B7=D;j#2*Gz8(KI~_DKPzbyg7AA`)w7fB zOS6>LD*6o56z`h;;dMx5y7gUD$z=7+=4|s)(+K}V$SY#{U=k|zT5uh@d5PwgeT6=i zoACD&`az*7v6X{rb9iYPy12Ng`6SF=VKn3ACKpaoh_PE@7cV=*{#iBi9Vk= z&sadPcQQWh7U!{)YnIQqEZpSmmHe|;zOvWF7qZwtVwb@x9$4QmaNvOHD`4}q(0>^$ z=7H3~-4hF7>^j)C3HI{9%vBJ*4&D)fDf`JsPUw#TfCxZFI=bwi|IY)s2qd-kd!Yeg z1$DLUUdgs6sJSU7FrOxNZ>&$$a5|;kd8n8s-Lj!lE2{(kawhO-WlwNLsw3*O=utp$rjNgQi+Xn)U1^G@u7);l{$Ne~fN`!K|1)5D4zp+fiLMs5*QZvyT6qnxu!f&8mqCSoIJvBM9?a7;L?ubg68BCXS%##A*L-#bq$?P6w7WV_%PKUz5a0wDeRr=*0Cj==^oMz(O>7 zWy)K$b|laYkk@{&^gjO=z)I<*Z`(YeP$%9~NS$+6k%eMJ5)y$nSEvWx?j#^uz>|r! zm7P&Q0V5LJfb?pEn<#OkEvo-N>U2>hNeUW)X+_kAnVcA z{pHQ!C$U!|o%07&6lsCd{Fo4Rt|s}KrNN;4B{30WahL=32LHhpHepn$QxaSTRZto; z))Jnaes}fls#yzX2&v$wp4EVcm5(ze)l;83uE+&Kiq+;29y?nsf7Lc%)YLnDy{72* zmy<-9&!2bcxaF*w1Xn~rUV_LOeF>OCq1JHeVpELaDY5uEp4;p7rY?QuFcLPkogNjY z^-g_a%_nGFAqE*9Lh;PWZVOJ}$PgHcD>vcZR6e8-$F;T7_JJE0gb$vKoc-DlWcJiOv literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/SoftwareManager/meta/Makefile.am new file mode 100644 index 0000000..bf064c2 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/SoftwareManager/meta/Makefile.am @@ -0,0 +1,5 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_softwaremanager.xml + +EXTRA_DIST = softwaremanager_en.jpg softwaremanager_de.jpg diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/meta/plugin_softwaremanager.xml b/lib/python/Plugins/SystemPlugins/SoftwareManager/meta/plugin_softwaremanager.xml new file mode 100644 index 0000000..5561f4c --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/SoftwareManager/meta/plugin_softwaremanager.xml @@ -0,0 +1,21 @@ + + + + + + + Dream Multimedia + SoftwareManager + enigma2-plugin-systemplugins-softwaremanager + Software manager manages your receiver software + The software manager manages your receiver's software.\n + It's easy to update your receiver's software, install or remove plugins or even backup and restore your system settings. + + + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/meta/softwaremanager_de.jpg b/lib/python/Plugins/SystemPlugins/SoftwareManager/meta/softwaremanager_de.jpg new file mode 100644 index 0000000000000000000000000000000000000000..54e6419691606cf3a96a6d1a43cf6b85f9575c98 GIT binary patch literal 95517 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

    M?EHm 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

    rHS{?l4S3NIUhgT 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 literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/meta/softwaremanager_en.jpg b/lib/python/Plugins/SystemPlugins/SoftwareManager/meta/softwaremanager_en.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0832f0ac8c67922d440f87be026dbe7b2bc3c62e GIT binary patch literal 91769 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 WUwF4)NjLw6cl(uW?q7JfAO0VK!o?l{ literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/SystemPlugins/Videomode/plugin.py b/lib/python/Plugins/SystemPlugins/Videomode/plugin.py new file mode 100644 index 0000000..c16a1c1 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/Videomode/plugin.py @@ -0,0 +1,239 @@ +from Screens.Screen import Screen +from Plugins.Plugin import PluginDescriptor +from Components.SystemInfo import SystemInfo +from Components.ConfigList import ConfigListScreen +from Components.config import getConfigListEntry, config, ConfigBoolean, ConfigNothing, ConfigSlider +from Components.Label import Label +from Components.Sources.StaticText import StaticText + +from VideoHardware import video_hw + +config.misc.videowizardenabled = ConfigBoolean(default = True) + +class VideoSetup(Screen, ConfigListScreen): + + def __init__(self, session, hw): + Screen.__init__(self, session) + # for the skin: first try VideoSetup, then Setup, this allows individual skinning + self.skinName = ["VideoSetup", "Setup" ] + self.setup_title = _("A/V settings") + self.hw = hw + self.onChangedEntry = [ ] + + # handle hotplug by re-creating setup + self.onShow.append(self.startHotplug) + self.onHide.append(self.stopHotplug) + + self.list = [ ] + ConfigListScreen.__init__(self, self.list, session = session, on_change = self.changedEntry) + + from Components.ActionMap import ActionMap + self["actions"] = ActionMap(["SetupActions", "MenuActions"], + { + "cancel": self.keyCancel, + "save": self.apply, + "menu": self.closeRecursive, + }, -2) + + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("OK")) + self["description"] = Label("") + + self.createSetup() + self.grabLastGoodMode() + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + self.setTitle(self.setup_title) + + def startHotplug(self): + self.hw.on_hotplug.append(self.createSetup) + + def stopHotplug(self): + self.hw.on_hotplug.remove(self.createSetup) + + def createSetup(self): + level = config.usage.setup_level.index + + self.list = [ + getConfigListEntry(_("Video output"), config.av.videoport, _("Configures which video output connector will be used.")) + ] + + # if we have modes for this port: + if config.av.videoport.value in config.av.videomode: + # add mode- and rate-selection: + self.list.append(getConfigListEntry(pgettext("Video output mode", "Mode"), config.av.videomode[config.av.videoport.value], _("Configure the video output mode (or resolution)."))) + if config.av.videomode[config.av.videoport.value].value == 'PC': + self.list.append(getConfigListEntry(_("Resolution"), config.av.videorate[config.av.videomode[config.av.videoport.value].value], _("Configure the screen resolution in PC output mode."))) + else: + self.list.append(getConfigListEntry(_("Refresh rate"), config.av.videorate[config.av.videomode[config.av.videoport.value].value], _("Configure the refresh rate of the screen."))) + + port = config.av.videoport.value + if port not in config.av.videomode: + mode = None + else: + mode = config.av.videomode[port].value + + # some modes (720p, 1080i) are always widescreen. Don't let the user select something here, "auto" is not what he wants. + force_wide = self.hw.isWidescreenMode(port, mode) + + if not force_wide: + self.list.append(getConfigListEntry(_("Aspect ratio"), config.av.aspect, _("Configure the aspect ratio of the screen."))) + + if force_wide or config.av.aspect.value in ("16_9", "16_10"): + self.list.extend(( + getConfigListEntry(_("Display 4:3 content as"), config.av.policy_43, _("When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture.")), + getConfigListEntry(_("Display >16:9 content as"), config.av.policy_169, _("When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture.")) + )) + elif config.av.aspect.value == "4_3": + self.list.append(getConfigListEntry(_("Display 16:9 content as"), config.av.policy_169, _("When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture."))) + +# if config.av.videoport.value == "DVI": +# self.list.append(getConfigListEntry(_("Allow Unsupported Modes"), config.av.edid_override)) + if config.av.videoport.value == "Scart": + self.list.append(getConfigListEntry(_("Color format"), config.av.colorformat, _("Configure which color format should be used on the SCART output."))) + if level >= 1: + self.list.append(getConfigListEntry(_("WSS on 4:3"), config.av.wss, _("When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen."))) + if SystemInfo["ScartSwitch"]: + self.list.append(getConfigListEntry(_("Auto scart switching"), config.av.vcrswitch, _("When enabled, your receiver will detect activity on the VCR SCART input."))) + + if level >= 1: + if SystemInfo["CanDownmixAC3"]: + self.list.append(getConfigListEntry(_("AC3/DTS downmix"), config.av.downmix_ac3, _("Configure whether multi channel sound tracks should be downmixed to stereo."))) + self.list.extend(( + getConfigListEntry(_("General AC3 delay"), config.av.generalAC3delay, _("Configure the general audio delay of Dolby Digital sound tracks.")), + getConfigListEntry(_("General PCM delay"), config.av.generalPCMdelay, _("Configure the general audio delay of stereo sound tracks.")) + )) + + if SystemInfo["CanChangeOsdAlpha"]: + self.list.append(getConfigListEntry(_("OSD transparency"), config.av.osd_alpha, _("Configure the transparency of the OSD."))) + + if not isinstance(config.av.scaler_sharpness, ConfigNothing): + self.list.append(getConfigListEntry(_("Scaler sharpness"), config.av.scaler_sharpness, _("Configure the sharpness of the video scaling."))) + + self["config"].list = self.list + self["config"].l.setList(self.list) + + def keyLeft(self): + ConfigListScreen.keyLeft(self) + self.createSetup() + + def keyRight(self): + ConfigListScreen.keyRight(self) + self.createSetup() + + def confirm(self, confirmed): + if not confirmed: + config.av.videoport.value = self.last_good[0] + config.av.videomode[self.last_good[0]].value = self.last_good[1] + config.av.videorate[self.last_good[1]].value = self.last_good[2] + self.hw.setMode(*self.last_good) + else: + self.keySave() + + def grabLastGoodMode(self): + port = config.av.videoport.value + mode = config.av.videomode[port].value + rate = config.av.videorate[mode].value + self.last_good = (port, mode, rate) + + def apply(self): + port = config.av.videoport.value + mode = config.av.videomode[port].value + rate = config.av.videorate[mode].value + if (port, mode, rate) != self.last_good: + self.hw.setMode(port, mode, rate) + from Screens.MessageBox import MessageBox + self.session.openWithCallback(self.confirm, MessageBox, _("Is this video mode ok?"), MessageBox.TYPE_YESNO, timeout = 20, default = False) + else: + self.keySave() + + # for summary: + def changedEntry(self): + for x in self.onChangedEntry: + x() + + def getCurrentEntry(self): + return self["config"].getCurrent()[0] + + def getCurrentValue(self): + return str(self["config"].getCurrent()[1].getText()) + + def getCurrentDescription(self): + return self["config"].getCurrent() and len(self["config"].getCurrent()) > 2 and self["config"].getCurrent()[2] or "" + + def createSummary(self): + from Screens.Setup import SetupSummary + return SetupSummary + +class VideomodeHotplug: + def __init__(self, hw): + self.hw = hw + + def start(self): + self.hw.on_hotplug.append(self.hotplug) + + def stop(self): + self.hw.on_hotplug.remove(self.hotplug) + + def hotplug(self, what): + print "hotplug detected on port '%s'" % (what) + port = config.av.videoport.value + mode = config.av.videomode[port].value + rate = config.av.videorate[mode].value + + if not self.hw.isModeAvailable(port, mode, rate): + print "mode %s/%s/%s went away!" % (port, mode, rate) + modelist = self.hw.getModeList(port) + if not len(modelist): + print "sorry, no other mode is available (unplug?). Doing nothing." + return + mode = modelist[0][0] + rate = modelist[0][1] + print "setting %s/%s/%s" % (port, mode, rate) + self.hw.setMode(port, mode, rate) + +hotplug = None + +def startHotplug(): + global hotplug, video_hw + hotplug = VideomodeHotplug(video_hw) + hotplug.start() + +def stopHotplug(): + global hotplug + hotplug.stop() + + +def autostart(reason, session = None, **kwargs): + if session is not None: + global my_global_session + my_global_session = session + return + + if reason == 0: + startHotplug() + elif reason == 1: + stopHotplug() + +def videoSetupMain(session, **kwargs): + session.open(VideoSetup, video_hw) + +def startSetup(menuid): + if menuid != "system": + return [ ] + + return [(_("A/V settings"), videoSetupMain, "av_setup", 40)] + +def VideoWizard(*args, **kwargs): + from VideoWizard import VideoWizard + return VideoWizard(*args, **kwargs) + +def Plugins(**kwargs): + list = [ +# PluginDescriptor(where = [PluginDescriptor.WHERE_SESSIONSTART, PluginDescriptor.WHERE_AUTOSTART], fnc = autostart), + PluginDescriptor(name=_("Video setup"), description=_("Advanced video setup"), where = PluginDescriptor.WHERE_MENU, needsRestart = False, fnc=startSetup) + ] + if config.misc.videowizardenabled.value: + list.append(PluginDescriptor(name=_("Video wizard"), where = PluginDescriptor.WHERE_WIZARD, needsRestart = False, fnc=(0, VideoWizard))) + return list diff --git a/lib/python/Plugins/SystemPlugins/Videomode/videowizard.xml b/lib/python/Plugins/SystemPlugins/Videomode/videowizard.xml new file mode 100644 index 0000000..bc2c3f8 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/Videomode/videowizard.xml @@ -0,0 +1,36 @@ + + + + + + +self["portpic"].show() +self.clearSelectedKeys() +self.selectKey("OK") + + + + + + + +self.clearSelectedKeys() +self.selectKey("UP") +self.selectKey("DOWN") +self["portpic"].hide() + + + + +self.condition = (self.port != "DVI" or self.mode == "PC") + + + + + +self.clearSelectedKeys() +self.selectKey("UP") +self.selectKey("DOWN") + + + diff --git a/lib/python/Plugins/SystemPlugins/WirelessLan/Makefile.am b/lib/python/Plugins/SystemPlugins/WirelessLan/Makefile.am new file mode 100644 index 0000000..e929d05 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/WirelessLan/Makefile.am @@ -0,0 +1,8 @@ +installdir = $(pkglibdir)/python/Plugins/SystemPlugins/WirelessLan + +SUBDIRS = meta + +install_PYTHON = \ + __init__.py \ + plugin.py \ + Wlan.py diff --git a/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py b/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py new file mode 100644 index 0000000..fc91e95 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/WirelessLan/Wlan.py @@ -0,0 +1,370 @@ +from Components.config import config, ConfigYesNo, NoSave, ConfigSubsection, ConfigText, ConfigSelection, ConfigPassword +from Components.Console import Console +from Components.Network import iNetwork + +from os import system, path as os_path +from string import maketrans, strip +import sys +import types +from re import compile as re_compile, search as re_search, escape as re_escape +from pythonwifi.iwlibs import getNICnames, Wireless, Iwfreq, getWNICnames +from pythonwifi import flags as wififlags + +list = [] +list.append("Unencrypted") +list.append("WEP") +list.append("WPA") +list.append("WPA/WPA2") +list.append("WPA2") + +weplist = [] +weplist.append("ASCII") +weplist.append("HEX") + +config.plugins.wlan = ConfigSubsection() +config.plugins.wlan.essid = NoSave(ConfigText(default = "", fixed_size = False)) +config.plugins.wlan.hiddenessid = NoSave(ConfigYesNo(default = False)) +config.plugins.wlan.encryption = NoSave(ConfigSelection(list, default = "WPA2")) +config.plugins.wlan.wepkeytype = NoSave(ConfigSelection(weplist, default = "ASCII")) +config.plugins.wlan.psk = NoSave(ConfigPassword(default = "", fixed_size = False)) + + +def getWlanConfigName(iface): + return '/etc/wpa_supplicant.' + iface + '.conf' + +class Wlan: + def __init__(self, iface = None): + self.iface = iface + self.oldInterfaceState = None + + a = ''; b = '' + for i in range(0, 255): + a = a + chr(i) + if i < 32 or i > 127: + b = b + ' ' + else: + b = b + chr(i) + + self.asciitrans = maketrans(a, b) + + def asciify(self, str): + return str.translate(self.asciitrans) + + def getWirelessInterfaces(self): + return getWNICnames() + + def setInterface(self, iface = None): + self.iface = iface + + def getInterface(self): + return self.iface + + def getNetworkList(self): + if self.oldInterfaceState is None: + self.oldInterfaceState = iNetwork.getAdapterAttribute(self.iface, "up") + if self.oldInterfaceState is False: + if iNetwork.getAdapterAttribute(self.iface, "up") is False: + iNetwork.setAdapterAttribute(self.iface, "up", True) + system("ifconfig "+self.iface+" up") + + ifobj = Wireless(self.iface) # a Wireless NIC Object + + try: + scanresults = ifobj.scan() + except: + scanresults = None + print "[Wlan.py] No wireless networks could be found" + aps = {} + if scanresults is not None: + (num_channels, frequencies) = ifobj.getChannelInfo() + index = 1 + for result in scanresults: + bssid = result.bssid + + if result.encode.flags & wififlags.IW_ENCODE_DISABLED > 0: + encryption = False + elif result.encode.flags & wififlags.IW_ENCODE_NOKEY > 0: + encryption = True + else: + encryption = None + + signal = str(result.quality.siglevel-0x100) + " dBm" + quality = "%s/%s" % (result.quality.quality,ifobj.getQualityMax().quality) + + extra = [] + for element in result.custom: + element = element.encode() + extra.append( strip(self.asciify(element)) ) + for element in extra: + if 'SignalStrength' in element: + signal = element[element.index('SignalStrength')+15:element.index(',L')] + if 'LinkQuality' in element: + quality = element[element.index('LinkQuality')+12:len(element)] + + aps[bssid] = { + 'active' : True, + 'bssid': result.bssid, + 'channel': frequencies.index(ifobj._formatFrequency(result.frequency.getFrequency())) + 1, + 'encrypted': encryption, + 'essid': strip(self.asciify(result.essid)), + 'iface': self.iface, + 'maxrate' : ifobj._formatBitrate(result.rate[-1][-1]), + 'noise' : '',#result.quality.nlevel-0x100, + 'quality' : str(quality), + 'signal' : str(signal), + 'custom' : extra, + } + + index = index + 1 + return aps + + def stopGetNetworkList(self): + if self.oldInterfaceState is not None: + if self.oldInterfaceState is False: + iNetwork.setAdapterAttribute(self.iface, "up", False) + system("ifconfig "+self.iface+" down") + self.oldInterfaceState = None + self.iface = None + +iWlan = Wlan() + +class wpaSupplicant: + def __init__(self): + pass + + def writeConfig(self, iface): + essid = config.plugins.wlan.essid.value + hiddenessid = config.plugins.wlan.hiddenessid.value + encryption = config.plugins.wlan.encryption.value + wepkeytype = config.plugins.wlan.wepkeytype.value + psk = config.plugins.wlan.psk.value + fp = file(getWlanConfigName(iface), 'w') + fp.write('#WPA Supplicant Configuration by enigma2\n') + fp.write('ctrl_interface=/var/run/wpa_supplicant\n') + fp.write('eapol_version=1\n') + fp.write('fast_reauth=1\n') + fp.write('ap_scan=1\n') + fp.write('network={\n') + fp.write('\tssid="'+essid+'"\n') + if hiddenessid: + fp.write('\tscan_ssid=1\n') + else: + fp.write('\tscan_ssid=0\n') + if encryption in ('WPA', 'WPA2', 'WPA/WPA2'): + fp.write('\tkey_mgmt=WPA-PSK\n') + if encryption == 'WPA': + fp.write('\tproto=WPA\n') + fp.write('\tpairwise=TKIP\n') + fp.write('\tgroup=TKIP\n') + elif encryption == 'WPA2': + fp.write('\tproto=RSN\n') + fp.write('\tpairwise=CCMP\n') + fp.write('\tgroup=CCMP\n') + else: + fp.write('\tproto=WPA RSN\n') + fp.write('\tpairwise=CCMP TKIP\n') + fp.write('\tgroup=CCMP TKIP\n') + fp.write('\tpsk="'+psk+'"\n') + elif encryption == 'WEP': + fp.write('\tkey_mgmt=NONE\n') + if wepkeytype == 'ASCII': + fp.write('\twep_key0="'+psk+'"\n') + else: + fp.write('\twep_key0='+psk+'\n') + else: + fp.write('\tkey_mgmt=NONE\n') + fp.write('}') + fp.write('\n') + fp.close() + #system('cat ' + getWlanConfigName(iface)) + + def loadConfig(self,iface): + configfile = getWlanConfigName(iface) + if not os_path.exists(configfile): + configfile = '/etc/wpa_supplicant.conf' + try: + #parse the wpasupplicant configfile + print "[Wlan.py] parsing configfile: ",configfile + fp = file(configfile, 'r') + supplicant = fp.readlines() + fp.close() + essid = None + encryption = "Unencrypted" + + for s in supplicant: + split = s.strip().split('=',1) + if split[0] == 'scan_ssid': + if split[1] == '1': + config.plugins.wlan.hiddenessid.value = True + else: + config.plugins.wlan.hiddenessid.value = False + + elif split[0] == 'ssid': + essid = split[1][1:-1] + config.plugins.wlan.essid.value = essid + + elif split[0] == 'proto': + if split[1] == 'WPA' : + mode = 'WPA' + if split[1] == 'RSN': + mode = 'WPA2' + if split[1] in ('WPA RSN', 'WPA WPA2'): + mode = 'WPA/WPA2' + encryption = mode + + elif split[0] == 'wep_key0': + encryption = 'WEP' + if split[1].startswith('"') and split[1].endswith('"'): + config.plugins.wlan.wepkeytype.value = 'ASCII' + config.plugins.wlan.psk.value = split[1][1:-1] + else: + config.plugins.wlan.wepkeytype.value = 'HEX' + config.plugins.wlan.psk.value = split[1] + + elif split[0] == 'psk': + config.plugins.wlan.psk.value = split[1][1:-1] + else: + pass + + config.plugins.wlan.encryption.value = encryption + + wsconfig = { + 'hiddenessid': config.plugins.wlan.hiddenessid.value, + 'ssid': config.plugins.wlan.essid.value, + 'encryption': config.plugins.wlan.encryption.value, + 'wepkeytype': config.plugins.wlan.wepkeytype.value, + 'key': config.plugins.wlan.psk.value, + } + + for (key, item) in wsconfig.items(): + if item is "None" or item is "": + if key == 'hiddenessid': + wsconfig['hiddenessid'] = False + if key == 'ssid': + wsconfig['ssid'] = "" + if key == 'encryption': + wsconfig['encryption'] = "WPA2" + if key == 'wepkeytype': + wsconfig['wepkeytype'] = "ASCII" + if key == 'key': + wsconfig['key'] = "" + except: + print "[Wlan.py] Error parsing ",configfile + wsconfig = { + 'hiddenessid': False, + 'ssid': "", + 'encryption': "WPA2", + 'wepkeytype': "ASCII", + 'key': "", + } + #print "[Wlan.py] WS-CONFIG-->",wsconfig + return wsconfig + + +class Status: + def __init__(self): + self.wlaniface = {} + self.backupwlaniface = {} + self.statusCallback = None + self.WlanConsole = Console() + + def stopWlanConsole(self): + if self.WlanConsole is not None: + print "[iStatus] killing self.WlanConsole" + self.WlanConsole.killAll() + self.WlanConsole = None + + def getDataForInterface(self, iface, callback = None): + self.WlanConsole = Console() + cmd = "iwconfig " + iface + if callback is not None: + self.statusCallback = callback + self.WlanConsole.ePopen(cmd, self.iwconfigFinished, iface) + + def iwconfigFinished(self, result, retval, extra_args): + iface = extra_args + data = { 'essid': False, 'frequency': False, 'accesspoint': False, 'bitrate': False, 'encryption': False, 'quality': False, 'signal': False } + for line in result.splitlines(): + line = line.strip() + if "ESSID" in line: + if "off/any" in line: + ssid = "off" + else: + if "Nickname" in line: + ssid=(line[line.index('ESSID')+7:line.index('" Nickname')]) + else: + ssid=(line[line.index('ESSID')+7:len(line)-1]) + if ssid is not None: + data['essid'] = ssid + if "Frequency" in line: + frequency = line[line.index('Frequency')+10 :line.index(' GHz')] + if frequency is not None: + data['frequency'] = frequency + if "Access Point" in line: + if "Sensitivity" in line: + ap=line[line.index('Access Point')+14:line.index(' Sensitivity')] + else: + ap=line[line.index('Access Point')+14:len(line)] + if ap is not None: + data['accesspoint'] = ap + if "Bit Rate" in line: + if "kb" in line: + br = line[line.index('Bit Rate')+9 :line.index(' kb/s')] + else: + br = line[line.index('Bit Rate')+9 :line.index(' Mb/s')] + if br is not None: + data['bitrate'] = br + if "Encryption key" in line: + if ":off" in line: + enc = "off" + elif "Security" in line: + enc = line[line.index('Encryption key')+15 :line.index(' Security')] + if enc is not None: + enc = "on" + else: + enc = line[line.index('Encryption key')+15 :len(line)] + if enc is not None: + enc = "on" + if enc is not None: + data['encryption'] = enc + if 'Quality' in line: + if "/100" in line: + qual = line[line.index('Quality')+8:line.index(' Signal')] + else: + qual = line[line.index('Quality')+8:line.index('Sig')] + if qual is not None: + data['quality'] = qual + if 'Signal level' in line: + if "dBm" in line: + signal = line[line.index('Signal level')+13 :line.index(' dBm')] + " dBm" + elif "/100" in line: + if "Noise" in line: + signal = line[line.index('Signal level')+13:line.index(' Noise')] + else: + signal = line[line.index('Signal level')+13:len(line)] + else: + if "Noise" in line: + signal = line[line.index('Signal level')+13:line.index(' Noise')] + else: + signal = line[line.index('Signal level')+13:len(line)] + if signal is not None: + data['signal'] = signal + + self.wlaniface[iface] = data + self.backupwlaniface = self.wlaniface + + if self.WlanConsole is not None: + if len(self.WlanConsole.appContainers) == 0: + print "[Wlan.py] self.wlaniface after loading:", self.wlaniface + if self.statusCallback is not None: + self.statusCallback(True,self.wlaniface) + self.statusCallback = None + + def getAdapterAttribute(self, iface, attribute): + self.iface = iface + if self.wlaniface.has_key(self.iface): + if self.wlaniface[self.iface].has_key(attribute): + return self.wlaniface[self.iface][attribute] + return None + +iStatus = Status() diff --git a/lib/python/Plugins/SystemPlugins/WirelessLan/__init__.py b/lib/python/Plugins/SystemPlugins/WirelessLan/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/SystemPlugins/WirelessLan/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/WirelessLan/meta/Makefile.am new file mode 100644 index 0000000..692d91a --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/WirelessLan/meta/Makefile.am @@ -0,0 +1,5 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_wirelesslan.xml + +EXTRA_DIST = wirelesslan_de.jpg wirelesslan_en.jpg diff --git a/lib/python/Plugins/SystemPlugins/WirelessLan/meta/plugin_wirelesslan.xml b/lib/python/Plugins/SystemPlugins/WirelessLan/meta/plugin_wirelesslan.xml new file mode 100644 index 0000000..6d43263 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/WirelessLan/meta/plugin_wirelesslan.xml @@ -0,0 +1,19 @@ + + + + + + + Dream Multimedia + WirelessLan + enigma2-plugin-systemplugins-wirelesslan + Configure your WLAN network interface + The wireless lan plugin helps you configuring your WLAN network interface. + + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/WirelessLan/meta/wirelesslan_de.jpg b/lib/python/Plugins/SystemPlugins/WirelessLan/meta/wirelesslan_de.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3869541810dbaa538f5331a249b4ff49e04b53b3 GIT binary patch literal 94178 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 d-$05aiJv^>g@cYS3@iZ&=#6Nb92>m;dv_|@FW zy7`wQ@f|ILJn%OVbkX`trDw#obJ+?z%%5@G`o=V)mMDW=d<4nD^vK(pkuME=n5D9i z;xCc7FaWR$=2}ku^?wk5|DWjNH@L7}vwu;}g|pIR5sSfU*X$w5FBha^yMW+Z~hONJ|-Nt9EYYPe`|BLTQ{N)G9JGZcF z^j|;dK6@~01++ln5$kf;!Cd;zo%YwV2mf|)NXOj!m(l$F>g~|gA^D<)pitDwzkCn& zZ{L&t%lPV`ddc6%=d1U}yMn$~X$i%#aK;=fPj=g@0g^9rukQQnE&SesyfuS}}{Pd}+YP3s4<2WS3yiSVmkJN?%QN@wLEwmpAMP?goa|FqoZTDV?9 zqSSv{%%@H9sgQAULk1lSf#NQ%1Jg`l>Nrelfq1u!c>75*7NJX{#TsiY3f}M~yohN3 z7_8zNt@N!i?KUk}O4LpAi1pnjjOg05N zT&R(J3WEbfFdYe7(qYE%%@~@nahG5 zvK{2^W-tZRS6jVS&^V!ke-f_VK5U&b9BFN`+v9z`fGj{usqK z<@aX>zqvlb*^5`=w9o40Q8@3ud&Yih)wamIH2vT+)hp_PQL33XtLfpOd;ugy17fU9 znXj3jqUbm4>wu92D&kUO+=ZL(t)`ouH#uYV_@o8T2kNA~d2y)bq*C{SZG(mTcelB) zayQ*Y6p(@fqSJ3d)lC=XaGzQv#RX|L?3HHHg{xm~ZTq0uuzA>BeSN*+Y*kg&yS)b; zU+#W6l(xO=c8GygU!9VZ!rYMpxLP;;M7$rY%V#POAjB~vbIE9@LU7Q0a83I1;{5v; zs_T4-%a8nSO1{70u*>y={^dPyI^hSB1S2v9&$2B-GBJ>Z2HX8%U>jN;)b3Dfvd-vH zPR@vzR-8oN!=0&#n6f}kk6$wXlpCg5=p0Y^*1}L^du0(QnBN{6bDH8<$vSxALqJ)Q z>-oReyZ?hS{vRA3{&dn2Wmx+?449^B0q-UdaVGc6;4XSMcOERfn1R;{&t9WFq_%~W zYWaL}N|Cr1PT9H59Afka(N`{j+a!h)1I3U8WEmUNH|y#d#`&PTuL2n{-+w)Inc%Hs zm)k?qlhkw%xn1tq91&DnJnuB#<5$Fv~x)Zq=2M1JqPnOvtC+B6co```d$NJar zWB4a5j=y>P;71SaU7W#?+l-NfBgKyU<{1dRk0tA!IC%R~eQ82Z8kCf<+)OkXfn++g zHlxYQ;@yy_02Vi8hE=r!`PRgSbAb6L8*eNokcuDE?+Yc|s?=sfr6u??Wk;PXK64Y zRhYIerJdY)psN^<0St0h{a+`0vR$23%Fz^Z6jDa?X%##ol#(F+T zY$Y<9uu!QZ3|_>s0PCNgi7pOAE?ESkw1;=-`J`ysu!L!j6U-j3od^}}AZ!#mgLrWb zAr5->@-~H2U}{jIse_S_0bwqh;NY4~TlD(0;gsq*$U>#w7AJet*tbb!)t#dBFv&Of zye7}FQ?agZ+2ry)UU=tSB2ez|3^jLvAROAJWDdYeH1)Zh<>=jU1yT(QP?tqMpGy!y& zcTgXW%C=-e+?(qm&WXA-4~x6q0FvdTOqGD z@LPYU~6$f3jNGd8$HrS;E4#HTcv=9S#C~bUP3&xgnl2&p^0?v z6-cf`RB?4hOrU5|q|?d9sXQlKmSw~f9-3>y8e(4b668L=d3VUx>8qG<`-SMbmcH(1 zzSbU_#Oql3fLuDFhYYr$dU~u`9{vncSCa*^pAq${ba9(^K3ZV>i-1h?(uSw#tbblj z%;Zg-aJQMb!t7Pv38N^r=4K@h{E{c*x~UxOxB=4#ZU6=NdyI@XSRpL^I1}0=Ri6{U z%cR~WpM>v-Pequp1v_3xy=-%B4l%4w;}=_;CVyCfP#7=GkuLS6?YKRLmf2!eoEzK#v{*TdzBrDz#A)LW@Q=kGjkqL z8w~{mvmNEl#RENi9GYRaY#H; zBv!#RR@e7t>7i$xo$hnVynaDp#+R3&CXmf)eIlavYt!p$XqMaI9$tJ5lpU}`8XdKT ztk)^`8Np?=9<=T$f=W|GKInA2E@bGAwiunepma`l`M^QD*DDTv9qk8&<5~88d?aXe z$q)`Pi(=A{)K`g@#M9I=9l(&hc3ttP&r8N-dz9HErC)X0i#oc#GRqX&=Ck>thBf4;}BhdD^7~f%s$kVx2+9ojob7gl0OjV z`@q|HC)TO)JZ_$mYUZHhc|_5-L0{8)dOPEu-v}1$h$f+w9H#NaHwYjMV>Ch(sw|L} zuJRKdQYcbg*O^jqdhT+1EV3rYnqqy9cJN44Zs+W8scM+hbFH!7vhF*_?zY_*;r|#9;;tz=74fw4+J{`)l5f;o*fNLwfGb4s*G)Vk}%C1~d z$Glmi?TBn^j|{Jo^@i3PWwi&kYPT)w(7hSQOuwky;8}NCzLnQ<86oKTWbqFch<}L0 z5Qpv0)QW#$A(cFTc`BD$;-du!hI=@#N6Su|FPiCp-W6e@6kFWa$bHHV8T6C-zgt}!U!|y;(!j?f#Ai~#u3A}VbN!sa7ZAI`;gV5RfhN^xsqrHYI zF`Z|xBhOLH<4pE2j6{NsYBx<5K6nyUxzmLY;R9Jww_p%%#qtO;U_eP;s$RbWi4T2& z3~lLPv0u=Vl}95^Z^?;-P;xvhwvgP#Z5^u+Jed>uLg(ApVPD=O73bc-jstTgjXiEd zF~9AfP$o96XV8gB*t2TT%2T0(b5vPjBxs&9jX^uYEduwDrtui-20(qer5;lt`@OVE zRpw#P;+Ddq;r8BsT=zr`IU>TN8l-+iiUJZk7Mfjm?cK&xhkO8sQ|3`J2zjPGJ zO>r!FDDdvD%NzB8ygf}pIWW!}>SvWtiSAA@=U&&K>g&t6uGQ@xpbZaa)<5Gsawg}6 z_Ps|OCpGR2$^nm7A6QS3jva%X;Uh#kOcC3A7})_+->#Xv16XXj zFH|7cQ&vh_eU30lu5tTcOBa`g-s?JV86^3*$~T{%C3b&v^rjYGR4l0ZTr{}|%5J2p zR=_r_Ft%3_gJE3*17nH@QSCUlU!Ysp0Q0%y7u>oaQ z%_Twed-0EP_j?U8SN2u#wDWts)X#7afN~g>d~gYrr^CQ@By@kGn5SU8-^peJr#LD~ z>Go9G+o)M8y5Gun-&x$$51x>B_XLo1J;oiKmrvXW1usN>#)5*f2_r7tGYV)sH^Oe^L>PA_oS8T|7wcG!DYanPIpG0`zlKM7tQ5r7o1XXe`-9RlSZ*2 zd^uol9kjQNXSW2NUCG|}S=6=fC}7nI+ezs0RX~%GXE6bOCf!eI3E2zjR?!UFC&q~X zmt}aJpWEg`!>`>@k-nMPzBkU?$CZB3woRIY^JlMCv-*xF&ar>P=+dY|{~{~+J6q!) zneqR{jN;GVeTRVd_`EbrqW7`i*}hr-TLJuFgIv6XZQ;8tfZVFvtwi`GUOg}*u;%>H+_Hv0EmAwHs|L7$#!AOV)pWCd6S z<@;rjwnG+(g!!jc#md#5+m{716)+_Yi>t(gCoCP0a_?5=AuJ!{{u(2Q^7Zf%(o?tw z{0v_c@4&`n#6z22ueM(_5M;n??2{#m1}syNXBXku7~UgkPUn&!=$^K3JrD0(Hr61$ z?;(yatfyQ52*8_9ldUIIc?yEKxs_wQzWn14^+lJcffjMW#@9uW)8jYu`4 z0`>@^fPqHMu_qYMO%aL6XzWMG!{DiVoc3f7JtG4ZV+?hY^)u=kqo-w#KtjBuO6uC= zbnWsg4R-v|PsO;AfyMLQ7s&G29ya%fB(nG0JhrVs7OWOOuhEzqPGNs_HElbJCJpY% zTNoqLiImdlqJ@pI(ztgZKzi~t5ASypiS~4X7oz#!_ndy7(BB_c{$40ZBX%gc?fzFT zIrJB4jSjfhFq01EQY}3hKUwZU-7Jm12Y`rd3{lD@2BBa$_0f*=eX)CDEZ^s?3*?q4 z8E#qU{&vx%yXH!}DmUxSUVoY|dI(;NgZ^(DSwNrve0XSAZ&-(v1S zWF*#YY!`HHPpu9DqJjN`T^M&}A)u5*)mu?)&33%pg0Tn|uzaAr(Qn>>GTS-tegyY+ z-^uGSct_F7F2K>l_s!SHApiT*=<*afhnbIXc}nsTP>>@P* z>x4I6(l=*kr@Q*9Q@2w`r|-tRO*Yw08-5sZE0SCBiJ1A!?pIMomB9yp3}*ylUJcqG zvtPC3XiuRLjkZ7KO}4<$xO zfk!^JFrwrl(;Pj|@pOL`JMbCqeOuwjYn?W&LSg31D#oj6I+7ZI!8QyQ2gGqCNy!8Z zDiN9&kJ`9gA}g4jy>qAiLS|&pq2oiHi${Xxn|q=T&2e>ZVwsfDc<4bXHsn)yh;+e# zTu_geaSk$_T&6b4qL@t#=P8rXlB(Jgx^HF5f?ch<^at}UTfab+m_|i>n9!M#1+kfq zt&|h1KU0@A1Fotlv(IdnWsr#^*-o-Bvoktk)kZORw@j^a%gqoNiiB4 zy;|Eue9`rdP_oYb7^h+YKVus{G;0d=*a7X-MxHc9c+S0)yFC0n~tg3=x zsF5vI9g95GdC;jdqQCwUi*)FlN9uM^oW#r(j)5=XY{BXvJ`G%Axu-Bv05)vzrG+;b z2hfOt?rjQSCNn%hpU$#*PhI6i@1+8|gRJ7gZzB?Km62z)#N!)c>&st>-Ee7rm#PxY zaeQ<5VtVqa%vSA5G$%8inHHqU@L^K8w&rg2%>e#jkS;TUVM$ID33fWnA?L)KpIvBK zJkU1FBjr+()Y74v6?-=Vzz!nVij`$)EEpo4z>l!xhW30% z-Ml3$!=Zq>0`Li~xY%s&cIIGy(Qc3zC0tqjvv9T7 zw$}A;$of8i@*9L`9B>M1P3#Hq-2jkGD3ZkM*%UZpt}0oiuV~f3(UxW^WAC5dt`f*a zYCd}_=>4Eh>lTwoCx;@EX#2pJ0MGXC~z{cM9Nx6(T-yQ)|9xRsUlE*bX-7&IE3~O=Km}L@Pbw_M(>SEs?PS6W+C`4i%U&${ z@or3-JtG~TYrJvQk^gdN*F6b0rVEdo*4a79Eu$qe*aaCE{>~=sgh++~F}wuobOw_^ zMPFoDfR5w6df=Iy`GK(;=uC%gef+4MQ=&27eVf?Zh6l2>rF(e31nR%9Os>=B*9>mk zB*N+P_i{s1BW}-D69$6oneQ3P#8kw2<}`Ih(ocp1G=TxHl@Q6>^n`VybaUZ6>+z7w z@^_c-`*R&mZ&=V$mUbhHuUwIAi@3LN>shz&Eu>-7@!7pzzN1t;MS2>V{S-2#{PQ9l z$&el<(1J@qcfsO%xtbyG6M?zPiDR3_!~6P`qj!IDasGNdS9RYyT)Nz2G2lq-*!N^P z2d2HIrKjNt^r((j+Av3$)yz^x2;C*P!k<2=1?Usu5Bd~gl8cw`;_g&_8(4T6x}IbD z()rDs-*m-KpQe(;1RTD~$2&HxtO+f!b4S?tP(DI&154+r{GCk*OzDIhF}P?t%#P89 zrJ~6FFd5XmGSu_S1x-m-5rPWeNtd1)c8Z_DRf_teaSw-iT9UM1a$IpD<)0AJvM`|{ zvwmk&M$o@lJz)}<`Or(x{?_)YZ8zqQ+% z36Bl>dDkd1q)H?z^&pYXp@39! zuk05~Fy8)t<#Uy+(uDN$*A^2FUo~%e?2mntV2YG*l#9xj!lZqx(cZ7>Io7z+%@-|+ zF>kj93F<@|VFVqJT`+ErG5L%MYCx_Arq&ExQ=Be9MWrm5U$A)U$*`p^M2FsX)ui1D zRQtY3-CiF4(H33gPIAQ-(o~(yAt<8<+qoj@hlemLAdF=aexI>I-5*E8cF3MzVmSd4 z@7XM-FIzQ2-ES-J#%^qU&3Y!;dwrj|^N0g*Q!b`Rrdfu&%Yf?|1p&lBSBNYEIUGQ5 z!h+Qkv>K=lTpnS~k;c+SLj9@Zlt8%|y;rq^Xp%l}MzL^Y;&3bSxP-Zge&K5I2~EFg zrAV!ePgzHUs1_Nrw&oFkIuUIDdcP=8o~n*uR5wFF1RukA1;9)Lgq|`#4XrSN6YK8O zos(zM`FgzSugTTyp5Jz!3*RMR&@|$(4(8Z3pRz#YrIkjX)>O%n4PS#B3}Wf0)!HEf zg6cjn1QdJcw9#ZZh?V*}v`$n4=k7*EaAGV5Ki#TN(R`(M@IkWpJqrADk;LAJ=Hfla z6S-W4AWMj6%gFo8HVBL>hBPR%f=Pvb9KBPf%r3k+lM$p36_u2^bmO!eLy&k9gMDzN zsfMSnCQ5ZyULoL%N*{dV7Y?g zKomstg`Kr<7-6|qqhuT}-$?V8e7!82|Ez98l^hHNC4k`Iuu}V8FbZ@I_A%6)3|Z!D%q3z)96gV4oAk6DU!@n_H@e9)M zT(A%itn98}iX*BjfrW&2`3k6|XD*1$!aPP{tQ}Z)h5|4&o?UiuPx zlSOj*)r=AXq=DOYnIOEmlchD{g;K+$1GbIZNTvgY*pKHVzJ(XLm3@Zzlsava!8yq6d%Cjs`gOT#9X^%m_qDm!cyhD0<#o4+Rd+9)Cj4C|oXp8t_NoS6q z6A#oboC99&(SGo1pvi{+M5>uin@0rs!cRluIgCC=4}?TZo~YUp#HD~n$_`8$+FGA~ z=>LXQUtto}l5v??+L>9VANLhItyk%Vis{9nMc>67b6vhWK~~bCjVU=Luy7Y!4_Z(3 ztq|Z;^aYI0Jml)NISoK16kr<1tOGwl8U)oZpc%QV-nhnblUI6(g|59((^y|_$G;;X zpc|R^%=DS#D>u7T`j3_;r-)^8pDrfF)kOvpARs7}$iT<1aj0Re{PH_7R#lAPXvhcF zg-Y&bXQVxow1d*|)vk(#yW=VQ4;GO{T zJgpAA1f-icRo6Gj5Np?@iCSz09GJ4PmM_8g+ zU`{=CBYlHwGg3HgY{O~q^L4)a8q0^d6GA<-TYuzV4-~ywMA|4A4pZhMDwRUlk@eyu zf*lCx{G~$%ubf#)uhJJB;kdA{Io4M@s1WEn_UX#r;YN=B#nD}cr|oC#td4dzUZ3E- zq@ekTd#ifWZ~AH4{ncZ)1;`l*7o(wybw|%(Am4~t03c}ys@G*=x>~A>G(ujj+3uYH z9HF{^i<3Mc!8@0)VHcLjWvT<9eutIrpPs};#C~Nx$uh3 zK%336lRhhsQP+4@cl`)-k!8|MsPJ$)haAg^WdWU`q|N*gK)wb3USl=0xdDjEFUl>= zEG{PbJ*jub{TRogt!`fUvAgoLWyKMDTkDTfc)`UTWmglrkXS4C-4DypFeq%V#T3g5 zqUNa7*F$bLO%Rhf)g`6p+W@)XqQ0Z7^3CN-Zsv|-l_xs7O1jLdxC{1#)|`t#woES( zLJl8!+H~w_Q~1{SnR@0=MjAd2dJ|_GLMYfSFNR41R-LcQPIn-CzB{^jdZ8?5Q#sT}a_Y0$E&)o%U8zgATC~ncghcWdkBO)z z9lSRj_I<0OwdnY>(8$r`!=wx#0d73l&<Gu`ss?nJ2q07l9)Nl!{is$T@^|T zPW=juI9LiXW(-L;!9y>1ov+7;vFKD{yrh$H3&%2W_dF7b=Fg%XJjXvKzU%(CiD!56 zWpG-yZuo<08%?*|7ayG!kytg6UVyxmUQw2j?l+vAG6B7Jc)c)Yl)c}np41J8Nx`FT36o_(y#g>gnRM#)?-+|*OX zXu5QzrF^%c-;eOWxK#d?MPSMw(w=@bEu-T9|$Gw@zw%`>9jI!Ky#>Lf42% z2)f*Qpd2L2fTqPyihwf9ee(w633M{dI|~2gUfS4J_s&!|Z^E);EV3>nP|q01 z&&?m(u2+AjEqWO_XW#~c>k+(~txmz(Pl7bwd6ovp;f$>VYRM;T%i zJ(gvT@tK0~5fhd>2IVj&Y2gS<_JQC1PzGF|+?LMip}Od=OH7z=%Pu9EzJRO@Q_rKq z^DOb~p(-62c`T*jXvAJI-tD4qf#*S}w5bXdVjhC+z3KLK%vwvO_8x3J?=;n=^toW! zqP7jZ?lRfEC{#ZziQ~7hhqG0O5KoUfg+^CsvhkzrmOboB=afRqQeL0Gfi2t3=2^w*KXtW*>By*N>h#RKi@ncElZd!Yx+Yb*YQ%7)eg{M_gvY zaq+9b_{Li&k+O^Bs;)oCP#n{660~R7B{Y<|Q-7Ke-vi$(z!-Xo*80fz!EUqfMN-bO z7WcUgM4}`NvL4IK-mu=#`Vtp?OZY6>+T2G0dB^6sBz|li28A-xB#aD;Pu`?z$79bq z6J?#%CIhVt{GuL~F7j5zU;5lFel2UE=GudSgj9D)^p9=tn}#oq!nGd0xorro#EJSc z3GM^K;P|XF*)8qw{!9~4Hio@I_~j=o_XsF9J8k9MkM<%hbM>U(u1z!_UmSB;vv^#c zta19QM2w;S+=H8aVW$$e(^Ptn@#QVUt;0-u)H7HfXfkT;5@d1{$7yhlE4jBuCf6=! zq5_E)i2F36mw)9s-zDj!HC48p=+}2BSVH>Fw)E>awK9c&I?_X>B!(kRzT` z10g|>Idt&t*jjnW=uIhH9Bs00{19TeB`ZW6M&F$1Ii+c)0ztbxwbgSG!kN2IM&t(E zYc!D!KffenAa|yD`@T3WgFZ@)PH9N+rcD0=sHP=ZMom=(?S)`?cevL!Er%g|_U& zns2d0@Q}R$?H3&`;yoyML?2JUU-T3;O@7(uJY~m?%r>` z_t`&q@ZmLY&Y5%0%$%9u{Dxv&OVMiZIbGVCm|J|eJK8p|c|iJ-c#h=Y`}Z+7Ry*6D zWf+m=a&jP=6msgFU|lpQ121_(xyi0ZX(WN55uUuqDnc7BMs7adXp`dxW-+&4j22;K{SGhtq!SExX8uxYBQ+jsP=`TBABgqt3mY&_bi zmZ&qSG+(IBKjj8ZQqQfg383R6{q=_0dOXF-ndU=`7Gwh7&qx)GWSZDk^Th zV(WR%hts}L{)KYdW{UuYmnw-*@@nv^A~x?!kDR<^kM8Xza>Q(dv+`>&aq^+CA~fB~>Joo@3S9~HbMZFoYyi%e-et!_ib zM%tN{hIc)rza^&EsfDI-rz7C0>5j* zAIt&ib-V;!A7G{8@xUI&X^Xoh+fWL7hq}z)b$JaBG#hx!_i{yV3m4`Mn!Fr;EtRkF z%Fy0dO?zyh$LH$+67zwFk*u!*Pl8ZS=%PhfJ3<*No9y>`Dg-aFL)@6og z2g3BmGD1YPa&$dvu0DCTf1`fTmTS}Rr@_{`)2;ZZqr$-5fB~KXFA8WvO2A=|-B1!I z<)vV4EuyBo-mavCUo1FDmG@!$y&yD4qVcPiYKd^B3rXqo)h?qsN^F-FtW6{DTDTkW zMQmEQ8ZLYz~8CVw`^M&rC$lcKoA81Gw>d0W-%(C1!yIRtpPVxj|A5(fpN zAqU$m+fzO!MWhb$p0boo(f8<>%i>Gdn!an{H(&c|cGS5ICUP_!O_kVv~Ay*Xy}%9vJAx#3o9|Fe7mEBummP zpgoAF1Zs}xc%F!D6O_Dos)RK+!Ao!ewpG97i$GzNJ zntte^E$99k4zUU&&*aSIej0f-*uClSAWzCpk|nrZN|p=`A*%7bDkS_7LQeheK4a>d z`!0tb$6sf*JEWCh86>IwgS^W2M?&WePv6wHZoJ{-h;{A0H1lJ?5B(2iMyYE8;Gv4# zR0stw_Lfi-Efj5(|ywhu3qo zLwYM_Umk{= zoAQd8V&Zc_1;X;iPFSd2=Cr=_=w6Z>zZ9RV^6TyOdgcs_SCrH#{pt4;-QU|tPVN?c z?pp6sJx51T#Di1O2pVI8D54oNh?4S&c=B`!Ig{-dPFPy2uvKqKW3TB_lUxp3Y<;a6 z%MaVseb4a4j6W{k6?@fI9hIUNA!2EZnXa}I zdj|0Sodzdj@TUgm9%rrFXWz`xmVB4ejS!C=ioF%36IFD+b^VD~m2}Ytb0CH47Vu6a zUKjvkT^(w43+*_mp4F(KygI?XYB{y6hWho^mX^|8#B%H1(E}$QV(quQ%u~udT}W4& zlmE`}X-CrB<2@!*o9fUsJZ}g(fci+S6}04;X{@$mtO_QTZa)RL6~k3clUk?4M=$bU zXi3lrP|_U^XpNM=jxZV?YVAFUwrFYzi@2FEFQz6W)c;*_Ey$raTrgP1b0HG@Jg9;s z{`6Rk07h1{msg#NCn>b&i!d9pws&n*Nolj2=nvyk;jg=TU3wko1j9gBiZEeUpk_!D zaOU{zq-qoIniXW*PEx(*pnj+n1GSM|sV5h>^P&nu1l96i%cPL_4zL<{3o5sm(I)J+ z>8!$q=*8V&x*)n?e=093;AMzW^vyRVdM3PB(u6>TCjBT!yhDMo4t4Zo2qOFM z01-NW1c>fX-^5ENx^nSK`T{7=IpG>I`wqEqt~jIg3i-b4D0qK~|tjbF#xxniZ; zFOZvMTFKr8ge=%rm%XQc!d}L7nfj0oTWrzNn-7>3ua^E47W%&qIQk5Ja|Uy3&Dwa| z*%UCmm$&IGzk*S*UkgTEu{dP~f&2sy8TBS1r^V{U3p=gR!gbgFJZ}3>?yju!zjjdh zrE_p8T>e#^ga4BLDgSS9LoM(M1gu|C6B_Z2NMjVl1uA#pPn%009tp-+VLVJcp#Weu z_&ea|)xhbvI3k7|Aom!_;TAg=%compl4wewzyrS;Q?{%(kbR@b!6UGJ@x68$fNV>D z3py0gX#gc^1uV!7Le#9u&*A0yPpNtTAiTUHHSY>LV_6oMWmzD%3MAA)UrfaXY%B)#`W)D5&1?` z#-9gXuIOs4a7?}ky!?iwasE%iP*?ObR+h#rKBj023#$V@?-BCo@!eIQU#9gU)J5fMy^R0I&iINh#xKhAb7%acQ5D1VcZhcNX%Ljr!acq_|I@qR zGs*%ij9(k?>RGWF`Swqg1GKK>as48WPi;vca@obe3?BHv5SVK{lj{?c`i-2C*-MS{ zFF?`!|Jagzt&8!k>&`z1;a}0oSXp-h`a=ja2%;>3|6=F*Ml8v1TyfBb>I)?e$3Qsd z4@w%oI-UU>(BCzp+BJDB_&?xPeWocsx#ucD46V!7-uob-9iLg+~R*Qo-LRQCM-)E|UT{)Y3ce{`t{l zjRnq6+~^Nqdvp6aIDDXJ>I1`|YrS|;YJT%KaicHj-z4%C}M&6)mv(s>dQ4r+X`eO@pn zrcMiOYKJ&RAxBI!kJr=Psr;1DF1fhfC8dX59M5(-zir(Ra`XpLwqZH%lTK%;{GE)ZK&NB)#V{tn6^t_ z^;pS|jeGAq3h68Q9Mryc7bSN-Xsu=HCW%nJ8=-lrGlI}dekH|L*Ubn(OP81ge!QCt z?G6qb$ZDyTP_th+*|~flOY*n6`#?uY>Gb{kt5%-mpbaG?$~wLU8owvCNnMe@MVTZ68DBW!liB( z0;|+5=R|L%*`mbNX4^-Mnd0~vFD(yY`G>m99hW$Rix zZCp}ACD2|)C|K-%YH@!q{E^z~!^J9`MLgoVRW_N6JWqyNDh>_%TVu8X-SNf>#OMI0)7rf(#A^FXaz1;hKcAw-0l<4 zy2$L?Pg?R+i~^_`CZY@j$Fzao;67$n#Qr6hI(;s=bA`>UXQD6L@jiL-_@?3d+Jnma zZvs_YH#n!B*^qxB)IeCAO=KV%nK{g2YoNam=>8z_B=<=(o(garwDYy6wb9Ud$YB^)KP88Dp^&THUiYFS>Zm1B9)_y>{7wkV zzG|-Bw>EIMrgY&dQMT`_L`sU+O2n}rOO~M*U#1$Y4rhgr^*y^F}nW=jCF^;xJ)|u~x7K5H3RHIF50%`XWqJ$3t5=_l{YPJqqn( zj~5U7p}ESEm4d@)F)gb3dAns-TZB8;^XJ9%kjA-p$x8%iU_2}E)=G=c7&WD8JjQQVKIQ@3Wu8)dr7LQI>+j|f3>FUJlPG6^-0 zHd|UVr41bqFLyC~DQWQ{!N(Bk8M9k+u%bv#uvierHGN>G&TvsA(3kwX=sk`hI8!mosf zstsiuwr#8^vLU|M& zidq#h4nvJVQWNC7sT0Y8*`xSK;|o;o*|S!yF1BcS0P?YNIi{io6`XgKJr2P7(h4;Jc`pt z*T&Hp?O7KuQF7HM6Mg4VIhTL#$rs1&D-&8%nUqJ<4$Cq2BQMk@3;j4q-wOyl2Y@27 z8$vWX)XH)rL9#^vrY)Gn*m*rK>a%%`SLy9dh!ZOnvMv(&VQ}V9MC(G$@ndR!dXjd8 zeQ!D?rjte=nIr`4eRG^TX9y78>ELDNEd%gt_!^w{8bjtlN{BvtQXt3&Spxp{pL{Zs9abZ3u*V|(&MeVIwbd@^awzk4&d*A zAhx8MMC7)59FLF02obA4FeI%z*U_YJ3_c*`3E3ZPDPU zagHKp!n5oB&DU2apFw5Ufa9|d$q6>`z5=tKIx(*$3tfk zSzQlIu>k|xP3lpdkzW+^F0+WE>`%Zis(G6^wc38X|qX zI4)koP(qn2{OGxDClX#6X{yV=8m_uT9T+}{t>9!vvNN?$4W&YQkS|G^2sIM<>1QB8 z3Z@zvN|J zezAl3s4K_bQ#w6Xk~LR|JJZ6@G@_CmZvD1J-> zzZEX2=rJ;q6^p|N%`67*k=BAIp9(?tm6Z*i&&=#r8ycBEz4fN#ir1kt(In;hf*JIX z%dSg^O#g&Uiu>f!XUgor(0V9GhVr7}@*%`w9}To`wYwd8505sL7zu~mFTZc?p`C9% z5*Oc7*>mR_#_&c|7~g3A`ezw6ugw#$ZW|f2b$ZFQYeoa;xwUvcq@Y(LBN;b5HLMif zPb~|E7)gp9b}~_yY#qFv-y8S%iu`!u>ggA)e0=+q4o9)_j>`w}c z{groBA6l~s_l)bi;Mk`(8aKU_xNkr7Hq!a!g^ZvJa>w9sxCqXG{o!EhMr+)yt^iOg zAy&`{SCIKFsf1Gt*(gib&80POMpTv+cb2y{6qPDgn0pkwg7y~9KMS(uX z^iw{kebk}tbZ1~MY7HsOI4Bta$dR%7dAESC52p@`?ey?cvCS~hD|d4Fo}w3cB;WZE zUj=?Xt;qfE2Ekj*50Ht}*wkVxFlvnI@%f=O^Gyl7nkQ z-KKMd@>ZbSVymM`o;3US`$F$1_8Rj8z8Q6JNCC2c5f3%ad|+UNY^iym-x~4QgLavS ztRMJY#npbG<(QocCu+34KKWWTMVmQ(=N7J;V(8mx3pd~J2s@l0j#$44+A1k^6(vdC zf`e?KH{g|f$iQ%4hm$B65)Md@ucX@+RNa+nJhWXuc`lr+c5?}Is^%&T*4n#}OO9W= z#`fgXwU-MycAlf(D|R$*i95S>q0b1^M%WF1V3^)H6a)7QB#cp)Hbbt+^8Sj6f~i#> z7_`T{S=>T*ONw|Q)wFZHbo-~57=2yNz5Vw{=D);KUNJ}a6?un0hLz4v!2{_qX%c`u zC2C2HQr5hbkdpBnsEZ_rAHM85*OVSqx!+qN$5dFiN7>J4D56#6Oq(CW{w?QhXiAdn zf*YjuP%w`V1@fys60w*VKYW-jr z-$xfaY94*!R;{tg8Y$u02LrX+$8bN+F|@_-NMcV)ph_ZrKQF4!`&d-}{fb5P+gi_0 z=f@hEjGLv`_nU9ezPA$!1LJ{oO=6S1sdFP!O^88^@EG9q8NnHhBhD^yyYqLXj5}gm zX-gV1Px!5kIq#u%NN{lWlylABwdh+g0p%!k=UU|^495f@qQQ$Ic?ufqiM%5oiShV| zkcJ%hyRv?D;q{UtV(~28->C(n%DK$59||9I*(q?dmN)PRN1SW1#LQ8%_awIO8-T z;4r9V0+&c)5K@A+-a*?NeXk4OrMk~QQ-v#hPm{Qc4!C6Y%4b^4oTc4#$oLM?Za0{R z2=0$D~3`xqo$=kq}g5~|VeFx?r^z^XL7ZvHz#E_A^ta~CE_V4{#Q z2lx%*8JwZh=fz(aZ2Hl0z&zsZ8GU$lLBUg(Ycfa7dI*|{7h;$+PXYoE44D%%qKgq0 z!yz%gn92_fX>hUAZJ$8Em42jUp`tgbBX8VWe>?_}H9h!TCkkyRFXmxVr{q6Ap%J6? zwq~rwVVQ#o0!4wsz(;_vby6YsuE~%{IMFwESqV{GrQ#bpgpTmpW{_zDmrKqkDZf3= z$2z&=#<-~2skJouOHWg;gs-`lIfQ^}O@!#i^h-V$eXOkMS`XUbe5gLdb~{9*w48}; zw05${HmY}>F>~b9FOk1+Y+umLwCp{sSF2OES8{rWW)iZ5;-W5k?8P4eSN@W8vP10> zAEk&wphzEulPMO-cNTI00|}@*&2e$8EWxPsmhY%$5#?4;83?Z8nC4v@eJU=I^vb*S zX4h4T_mwi7L^|`0=_Nl+7{BbT;drt;c;hAo6+3RTJ*Ayzn3;{5c0sXEiK`9$Y|cg2Ug zj!RBg8j8%BgbR(GFnh7@l`O3)2T2x*Z=pN$Rw0sR@sVB3!N4i5wUe7t0~M{60UXwE zyL(1Em>GI(INFt>6}J0URcP$b$SS-bB*pg1sgIoF&OWZ()~+ck#6B>*HyK4JVdwq%MwS@!y!BNV5Qcez#|H;zwV&xls1X8Q;<1&T zX047E(|rB!?^)l*G#DqG1p<$JEz<#ccy)j5iNlm_qfhJ8urnEJwu+CMY3WgNwR5{T ztjEquDE32(3Lkm7BQsYYc{flKt8cl-!s)w1?9mbQ)0l?Sx{x#le+u}EEpT=VUJ7%N z+=@SGEw#BX)#-huhE=l zE<*Xf2r){YErCk3T#Zo|!JIZxvGFB%s3;rlQoB$T$&pVj^K&|%1L-vG1ikL{$2bMq zxS#lM#A&>}AHJ(ru|_AJiTg^8^zmInk6No~$+G12i&(c~|E96^;ix%HK$aG42 z*CshQr<>-~UuMuv?XCj%nuR@iBz!oYA1Q_8q+uH-1Syr|ab%2CR9~jk-CkV=^r7tq zry2zI>93)69u&#S_8-`C@u3x#C6c?`YZhPfF4M=bWijnEviq-kZp**C(A`aSGF+6v#uLG zohhqnDNMS9_L>2wqc{&n2aF0wDZ6Gb@!x813sihDipf6=ZX#rf`!gsmA4LeE0mlHQ zzV!d4arwSH@z@kxp%PmY@I`i3nW%|C&Kd>mO zs8&%ZxwJ;zEu1$MuTrT6b1Godl9~kHd0ox)0UNjhX@!UfVVkH~zH~^Mx@}79$;0zI zY%4jv%^#@m={_)DCe9!!aFr#ns`lu`8;#f5P4gxmAJ-Qj2nlN+r^!$$b9CoE!0+4z z;z&#WnM2Z>^_SffEfsGOG_ANr>EY{I{W0;BoOh{(iK;gQ2|I@U1E-}AGc%K#0%J9E z+2)BAdF**tR4b-+IxD?^sgY!(vw|TSz(B@{HlSg`k~>|SG4?HpCRgI_dLy$uL`I!G z5Sj~*JffD^G>o4v;UB$+Pe;d7Hx<>UzlV`^@I|dzusU7hce&E>)&`n0mRA2z9 zVX&newS*KU!?g>}RG^Wz_IZd`3DC2hgZD&n1?kWRxG|oDI|2rw+XHz{KS0}^UFdqK z!L?;qhtHgYaBY0=FQgcsq)dNKX=yR;z0`sk++>m|vIitz@&A+L>sMpTKUOJ0$d5o# z0Qf51;~x{T=fB5%T^aRjF7CU4^Pe-w4ovoWJH91?x=ao}%XKKQOR;6h&x6DtndiSA*4l zmC9dJC7J_c9TGZVj~`x(n)kI_rU7RLG~n+so`}mnQkD^A zH$K7RVZKzqHnNj+9)8#c<9B=93mYd^F!)a@mX*pEZQYc^1t!u$`L5v}jVbW$=fTxfma$xOyimD+3sTlM;y{0m z{XC-^c|tX<39fM1ndd?>a$CP@Z^NbT=+M->%CLtxJcqL*R=Y-Y*hC$11L0xZ_f$yb zkYK;rgKckm(ol>0E7uR-EI!bpAssf0ZBHF9g7b+0gVwmDRYkXC8K2!j*Wq=9u9-~^W68)k0&$iJ&eiCrB69FX_>T{AfB&HG8K!p6 z+|oWnfOwO^9LD0`@j-@3<-T&u5=0bpicD+=;XR@cYa( z+#vUX;XxkB*_|{t_Qm-6Ll`{@&%8O&?LH@g!z<&12duqjne%68f=}>*Pc~?Ge zQ!5>jJj1!ae+?%38oqR{S6=NR5Aw$|^||`!Uh%Z`u5>;M$CLlwB`|vS258UE4)n_F z{BM+$&x$Iqbj1VmxYXruUVtLcFCOY5?{h0@WBuFKdh<#a-h8jwh2QkZ5z^n>97>B9 z9@g9=)3^`Vq}c9J_VdrQZ3PdG$5dXd#53Lxpw6) z)UE!K{HAwyTy6zhE5r!xyTy2pRnIxx9EEggDw$YEx)4la zu?SYC<)%J%v#wa89+BhPzbbb!j$efuIM} zxj0%S$s)6MOY6X{FjQDKH+yR>yVB&6nm|LjfZ5cAr|x6|?hve5C?dt2JL&-)=62U7E!Rzm(-Q=osyNNsp^3L zOecA<%etJ7MlPMHMK-NPRruV+aFpYxsb>&?Cem%n;T)3ei-VE^mVPvcb;gt^q5$5G z5F^sW*j>`+#Kl13z!F%6`40?tHsOMnlG`Jh2g3QNQE^_1=2Kx?0IRv7gh$Dn~ne>Aj*I9DeY`o(KhGY~V6b2<{Cs>e73o#J$p5?E-4FsJ@E%NjPX$P6z z;Je>_^1VhM7>;X_r7$jLCXhd7A@Ao2VLwX37WHvL2AzncXILod#_Tmr(2~keA_RH# z<7de!%`F;82@`tOApHjKJRL+tKQ0a!Okx(5=&3G&Y2*dskNsKvYH;wD_AiPZpO-kRIK;8&MY=~)E4c4p^H>B%Mm$L^u#@KVpI-L<3 z`oJ)wg`gdam^R4-T&mzpv%tFIq}_`iAgC`I;fCLR=Re!&pY8O|cKSy<{U6p&9m~e< z`Ddnu4_u5Aany+yhxiNT4QBPsJg`x^B&DuR>FK=-aa$?~t#rAI?x$b?D4^dC=QLJW zACY-tqQBIwhSVL06>M5a;C!N0r4@l;wcy`!xGC8x`#d?p$P{&iZf;$s+CsCH zoGh3S7-p+|)~i2ZNA~ozJyUp1*^DIW^lHlKkm@y*=7|zL(8%Wvsgq*itFnoQa0GjS zE&6vJ(ih_x=9w-v7D(cdwggPiD`WS+m-#J$vn$4dn~v8?@=DmaY~= zM^6XofIo=Rw>eYO&;B9=>FYxWAqZLrvCwUX7(k8={6TbF5ECsAK~{9Tf8-tL_OI2U z2X!PMkV4$x^q`ZZ<+p--#0`6hajorR@cS8BPrM94LYuz-s#&{Q+3=mPbMSfi2oS3c-?fAT@M?^iy6OxEb76Q%!wo6~(29aUOXiLCxoew8J)j4I11 zXakKW3w3>no-z$>q+LPQm#Hl&U!iNzhIQ-Kv98;|%DRD*Z9N<3HjWJ&IJWKFvSr(r zEju|k(2ljA)r-HTbnI+w>>JrPZQQtN>&A^6w^EahTUVQK{#OuC-awq|pv%xh20DI- zo|BG&laA5@*j`WhKnDj@GSSfvKrr=S0EWWI#LTjebv+v}hu?v85Iw_p;3kNUk&c0$ zk)DZ#c^wnO1}OmKWMJI0S%OK;&~gjE`xQy%t@l#%jtB^DJNed1O4{RUlRC@ZD5KfF zIfSRo_D3&6_Gv_)vetZ;<|VtM*|^^Zn}6+ni}wIdODN{?^;fYUS_kLT3o6@&7EWLE z360Ar{MbIcD5q^=>w6Te0;LPu zz(DJh6M{q7$5E#PF7nln?_9n%wL@9@ULCLHCgID9NovxpDqPhflP+Pm0!atodZ#4M z1g20RgyY4f(xYF;U7fw3;pz47^?edgaL&!74Q)bN(nNCSy61%^~s>bm5odo6jaTXumj z4O)IK3A|SDo*Ylsg|9M>46vqIA3ZhZE|%eYKYJtWM$<1ka2 zfA*AH{#d?mdI1Ic)*GJ(X9~=l^ZyW=lXbIOG&T4Tt4P*o*48SOSmRw=byV2JnBS;i zD4((EX$zj@^Y187xI@D^xCwlyPHee7a{xa;`c{Y(EDHkJfR|HGK##q0Dt>5;Y-hvcGWtkK_5ysD`1L0+}ZGurAM{ACH5ge;e?N*=So?Gg~XM!pMI zPmJC9dZ}I1CZ$7HupE~&T)-M8%RM!p1+v1Pqk3uW}fq~|gXo4;|>U2-NI4t%~yfy_p0lrdYM7Q41! zFXhM#=I1<6J%xDW-8}WEl89*4v*U&3?b0wE`C=t^0qc0V zZlugv71N0;O%1htoB5{0dpnd+jf)cF**9{&z)E@hoqCGzdiTsn_TS)8Ksb~KYix;5 zr9h9qrj54;&6{{SKbHMi@J;;=3w!UumWs#T?d5HE>n9n@n3dna+B}|VpO}bgtx3Mz zzw`5FpHiGwn=9FaNCgiSsP<=1bu%t_WUrAS$LWXIHmr9XJHTt5r*h-iyK7Aum zxnw6Sh$HKIy`AR=R-tP#9fWEMBzh6~5eem=j&C=>drFa|mYI^C4&p~h{hc?eVSE&b z()1q(PiN5S@l!2LBJT5pTxEh&MyYE~t#H@- zZ3TBS50oB!7Wlw(x6j88V%t&x=357R!4aO-)Fjy%rlo4U&HDAs)B1+uiqAD)x3wAf z#=_Ea=ka1`yQg4%Dz`~0MiVk}g8@9eFR|mAbvZRD)jgvp#yd?Pm_A#eKOh$q^teoI>AqDa}=^3v}-l@$<_n=o}~CUH{dH+sp@J z+PZM4bYFO+?bu7Fg&+;R;1|2I^5R}jEtXG<+N563_MWVL)>7&?WmCM+To*ur-U35D z-$sGVJv_MjF0#WOUwn5ClE5bir8MdhcT68d;-bmpz=xs;;hdaZaf!S$#;CTh@tOt9 zT~%hDF2PGTq`G>-JI~9!QfMHl^oAjIol{Wr0a;nLI&)`>DbRV*s+^k6n^lq>G7a06 ze4cYS2Bjy%-<6IPYz^}9OB^d6tP5x4a7^SJqd*682^QZRH0&R)SDZF|sjQVn&%tEd zv(P;8>}An~<|exvukUuCJf9PsZD-041(#TO8{~8=J{aGmUlI`FQlA9Fq^rkGHb>;=)2l9ECu9XkfV#!BpH;!Xn%*Y2=8I} zU$hB6NKDKaVZ>X8D=|dZUQ|@{hWzwUu4m`8?X<*+2^DXW@#9XNteJv1g}2RufdVd= z6|DDkVWEfWOJr>#Y7X^AxGjAlntZ;F0^K3gU3{9T>Q90E3RAJ#pWu|{|2PoKo94)Q z_l1VM(7}f!d3jEF3VvaLIiBlqE-AD|1WE?6*{>XzIo;xla~NOzbf@7yKxOr(>YKBOCT_3#dXLyYvRL$%|MRhXLY1O0vApxRfUldGw$&{Gldq)h(Jm`dcBj#6b^2cvhJk$4bwwy2P9?ve?c4aEP4spfJUNo=p zOHb)yKE5o_Y$g!is0A}2H2E~$?EiM5D9B@j%7AB(fy;1ne=ea z5Caj$%U+#N$f=zqje-+7spZk1OA7aHx3)HXnUwsx-4$_VH%24BC9r#@*~oPfu1gLV zj=0e}H|JCrq#rCIy5S{Z64Ax2slnk`Zm?pcy{v+IeD)jNJ5!B1hq&^#Oq-U?kl?J$ z@u>Y?s0Bo}oV$GL+o*ocST}Yj%yeD_ru`tnf*>-6tgk2-ce*H-Rq9i_lTgde<ra0N6w<6iI>gHf_Il+^>+{5v7$Z+xY{v_SNb4x1W-QxqTHi5l8 z4KBk^Undk<4t9q5(RZ1*mq~v@Ill5;ynB=7fepVjj1zz4T$&c_ESL&4E;oML?$G?p z-N5)fN|^$cnTq2D24R$z|73W#&8Nxv=mWZ z3KTB|AAnyz`!vTO1=%Z-aOobFgVOdJYbF7E>(icD_09=DeY2!7%ADi-N@+9`AtN8% zErO~Q@Y#x_ptL36$%`B)Q1k7ch$#n^gg3KC zS+2%4tt=qF79hto3L`Pk$UV=f69h!blSQY2`RC8?U$j2aUS=BAt@x}}VM(PTZI@x7 zsXnU4(Rtwz#^6a~OG`x$>J))wEwg-gIWUZEVk3RFb0TuM2th)RWdT(A>d!Z93+vj+ zQzmZy=JU+_m6RNe5#HV_PbZx&jJt#vDoonhd6FC0vqcvUk@h2( z;fCY~DM^oniyb5n^YcrdlNXGf#nc8|aIy>SZNJRVG|6>*8o2h;f!9w=nr$Z;PfTyy z-nT=JkL85=L>Sl1Lqa)u@iqD}1qvhahf|=_gn|v*E8@7gC3+?briAaHM{`GfGe&|V z+d9E5>zhO9ibmxW<4yQ;sauX|_?cb=59wOb*&^4Ro)VslQhx2GMFKh*pLKS6n|hvC zHX*aav81M=u48@pmG&DiOtuAP=LdGz-fOT$t~iW#?|g%IBwcQKu4C{`?@2dql$|%a z#)Hb<=z4ix*2A+WyWqjOD?YiT{XbRhjSlCz@5?soatMXF7Qq` z*fH+v?QpXta^@Z4Y14iQ|7oS>6TbNZPX{sP&-1<}dAA;3Vt-TF09POHwmV$(i)(Ql*sKCy;_r6gcSCN>US(ew0Yk%FluHdmR~CiOA0q8duBU8iL$Fxal7chEXc` zA3>D=J209o)=_aoR9-f@GB+>Lo;f7@VI$W+P++ zxj+_>FJupSfV>kpJ;9$7WC_Y?_(A&nK@GmG9aJ3jhu1EC{QOekN7)*&)N2=SCnxYj zja4#Rxq7=;dm30dAi&jHyORhn32;SKJ#-4hBb{7bY^izbam?nT*RR({yj-1Eujvm{ z;U{hF*5EYum_42B5jLKuosM||Al+~MFwtP3cr!RzXcxK~zu;!E^>Foe`>lxC)x+M_ z-o?hn+ZnXkplL+KZa^yo*X)+wUas0UE;b&PUN+XC06OLGX0uj#{c2@u2^FI2Y|96J z{&(}w;O*gbO7qMq(AAo7slxxgMBmfa=C=}NODC^WmbSl@ZA93Bb~b)qx}G|x^p9D& zx;jx2uKQm6TV+-|SC0TSCwtrPlHyopUgvu;Xvt!2bJ5b<$qQszeQZ3u{-OHm@5R4Y zXS1?ZcXe|0_(iy!tN4#-{{Vm{&~aB6s;pVPT-^-3y*zDxHJtTMz>xk{y1~lT3mDYj z%GrR5?fzPwHWK$!JAyWVlO8@x%dd_)PFkLB)hjVl!|cY-kWpTPE?!1nOspTPE?!1kZO_MgD^pTPDnp^QI)?LUF-KY{H(f$cwm z?LUESDF07jn->566WIO}*!~mP{_h92SK~H&KmZ1UjKK+FHxR@DsX^9|D`W-2qI}Q^ z$PVPa!0AcLxq%v6{zDBuNF6eQq^Ss3dsvOave2TjpbtvlrXzM?1iN`-%oEni<>QC}%hR}Wh;2?YfOF>y&TNl6hx?fb&lA5DHk{R2!>$M;4+xcd74+~B+BoSlDk;pwI61K9X? zdiJD-GsRBYc)EIfAZ#>!0GR^cJM*%?_*0y}5l4mmMwbm(L;TMjQ6WF7x+$uA*jRdj zASwvtem8)huXTP|0ZgS~t+tH@h-<6xQKRilak1?b$8It*0!CHVPhg=eV7 z;pDwqCe02P2nnhF}~QsR;tU=@$Fmbj#ryqvrgRS#5iRXkzuXXA86 z!yc%@lO_wm_OGC`zkp=qWY<76V=w|v6Ig?+jEt1bTKVscO3BL0N()PiE69q|Qow?o zgyd=}Nh?`Rr9ioi#A+RBVQMQmS_;?&tbh`bf)Z(Y8F5+)SOs~&C`f^5S=A_c@tO+j0b(%J&yN=rxsC^ZGtf^@Y+j+U3FrV4;gkkaZX z$bh_@B(+=)C<3HFUD6T?04Fu2wpEa)wpEa))=`kB)=^NP)lrb3<*C>dXxJ1Ks68ss za4JwKkrbDZ6$UC524)~ED=a50FRUO8L?a;~EFmc@Atfv!Eeuo)DoMx*1ACAJb%B)t zBLVg!156260x%k23rbY2%gO<@%S%ej9gz^1)zlD|laM;1t{|?VC9ft=y&=$itfG#+ zC-77LYquC98~3%GlRY2Jttwg~R)++F>d|bh`PYi=|69X<6{WA84H$So9Npi&*J?FS z*Na}hmL4{0wqUgWdoL;ms1~E%(N-A{`zvoW*e`d#@72LAm74u=H&^|B&;9fJM*@E& z@J9lFB=AQ9eA;+W%#X<6&x`fwskw{>Q-patw?h1zYkMsRt7? z6YXGTW?@;!!otkTx_&*_3i@fHbhh zk(q@7B=nwi^bDMg5EIzrsAkB##S-js+$wo5m1W!N7Q;TN?N+mb9#`k~s!JP1J$i}o zd?%wJ6rGkYyW^C#*Zb!Fb^AhC*YDhQEk;x8@vGA<#{0Rj132n7M;q_!v8!7h|HV#6 zd7U$Mem4`I6o2|Mx_m%E_pH7Dt;DR?)tzJbgNjGbIRxBJdRkJ`HBMOF63M^>#L3LK zj)B3Mwmp%$D^rch5KzqQe&wEIYToSDw@rNlN4A}`@|cqnlvcmGJ<4eBBgD&hES}9W z{Td-VPDO(apgVW%lhx!Bvi35T!=~lG-+!QG0Cz3s@vGlS*7{|8=C8Xmf1~-|ko@~D zN+Jd7%KUAoQZ;H2@FXL%-8|EFGBP(J^UqPFRO6t&I&qo{59A4P5J->5xh)tSG| z*sAX1?NkTdSq3Qzw3j57_pB1@qQ~0rBDVX$EFZ_f)pNTdtESEj-x_>%PR9om90U7$ z11nT6wEwi3=p6aOM$jk+Hi-9qLHrQdhCJe6n|}X;-!-t;N2siJti%z%^h(6+AfvuJ!hPjUYG640+XZKN{ zd(I>YvO#8S*?2JX7dO0RlMhtJAOx7%#ufnUEP2g|(md@`> zr$EBd$WMjjgkQ%vdMN7uoAe=5Wng$~6j`$nHaO->3d7%guBbV>@5Rvr?N5BF@QP*> z$ac!2PE&urbD*a!#&<8WXiMjy_sUk=TZ8Ef+H-K<#X%&0V5eW|t9;)J4<&N1h7jG@ zH{8DeP&DeJ&iN`4tGnxCY1aJ`@4*8g&Fb*s~oDeh^;Wa+8vT1vhcx6Ofd8AzEUGMNn(JG zhKFNHhKF(sOnf}ROly=@T=uYhgg%ItK=j322vRZ(pLp4^05xtgnMR1lAA>cluvrXX>Kh3!?2xm-=8YwYi}@ryQVjAW*}#A} z^P&_q24BuNNxngWn33Zd@RW9B7V>4}xJ5PCnDtN|2hygnRP@$L(5W*D%LfmDad!554;bG|cH za{(YXBdZX*!De(SWm_nalsMV()}V6CxXS_=hIniN^> z+TyQW>k?C_VxcznC8tkukT+1Ewqr<@=Rm>~$OhILSz}L=Y8478XF!r7?8LvOa;{bM zz4HU#JNH1(z4=_VB1;9sm3|;V$GlzB8fbW$orBDZ9?yU^I>KA279lnWw!p3F97Bko zhcAPviLrR_55fLG|Ig&1V^-OVR3*Eh2)6SQI8Un0aQ)Oe2T&Vk&7u&bdvKf-$H)(* z`vIlXv;rT0OVybi>D1ew7DE$_<>fNaB3AJ#6IuMh| zPcQt%yA^;@PBkawnmPR<8gZo3r091KQ~uM#plQBy&4Hn-Fv*w&(H|z^N^^dXsjia( z0pA&f2cK{`Ielx@cfuMbkYE^UQr#Ew%lS(rd>IEZtwe~pi#mvzi_RgdkuPt<4^W|} zku~p#U#X;NsBZN@4qw!9Sip?KCm%)D+B;6HtjFNbpp#YL?+JYPe5wPw-$8ZDx5=jZ z)Se6B5^&k%j4P=tmuOzO-j_;P?$9etG*#Bd)RUkZn## zrR-JzwT;V}is6aOOrzE|ivy$9$dADLKm7v#QGr-U!{FY5R-sG9ri5~ojbX@vmRzd@ zreO&dBc$sA6Ba2mi8ghQI_!(~)M*xvsr z|H;>}WLQ1;!VDF|C3Y(Q+xnikHgaRkyg(m0dMC+q0G~~3p7xg3e1B{!9FDTV246*v zj>A^=SK+`HKB%`X3kE%^@Sl+oWRFelDaSrXl6b(EKWuiw<#JX9v~`(_%3v>=I4E+6 z%=Y;S`=N#6Knm1URR~XB)u1wsgeSYn9(*XUH(&Kt?=)R=NO@H;=w^o2OYImEwYarn z3aQ$ZmNbDK(P`xqIhz_vZrTYcY%zII((y7nI`rAux_;30)@4Q41%nq^_7$$pxdl&@ zGe>5?XJkSacnr&TvrgC4Gv-HaGikNkGw>dTUx4DW!$pN15khyJrF()ztkq*2+E6L#kP?fO^t?ugbpjg24@xT#NI7~oodPv>^RMYQ_UXNmlBSy_ZN~#4cY;UB*7&?*by}8Z_b(_5(YS3FwB;7KI`08CFgG=GoI%2w# zJntTH{*mNv@ko(!;&yk;gm3itxdj5N%*{&?hP8$@$5Lkbt8Vp zwlqb_n}2*~-R-B%R~@$#33-^0r#v7*e3MB>sgJZT4JN-?3fF27Tda*NO;Q2HS}euV&+e??qSU74(Uc1cY$h z&VG6pk1g=w?gf3Is?wHatM#*S6iBDK9}_BDws*7(6*bs`6uDH6k0vW)!B+v6Lrw&8 z%(ACsjpO5LL(b>6i+RoH1e_>pdkRZ@5+zchk`>{Y7zSTA`?Ue7Q%$TADdgUp+bm}B z%B^cQz986^tnc55O|F5*@_OO6r$6o;v$(IQ&|a3$oGgt!ujV2$Iqlag+&=phzPoj+ zmivjXldNeQA6rW@ESuV1e#6i^=h`gkS7_m^ychG>dd_L}my8I{Wp$hnqd*clvSn1p ztdJYj%r|2I^QN;OJFb;dc|e;KEsonQ%n48wjdC1_HhgbpC&f5SCUEIi>`L7zzQy#P{L=&Cq`Wgy?wqN)-s3oZ>l<}?>Bm}3miO*yk~ z=d27*cldFptX|ZPiMJo=<+rs@d-Lh?Fe%=vP~|gcJZUa)`pzMXd;<2ooqQX)kV%!x z^)(OqzOqhVk9a{lmq0DC)>|DHNIG zJjb)rx2{h+y<4Buoo@Q>Rd=9ep)%9vlKV}YST{b3F*JN3Gxy%f&$z?zWx~O_hvHiY zH8+0n9UHhUe>5iU^HGNML&Sk9;>WEXM}-PXE_>c;WbAzy(v@(M{fP)^euMhy+uD0s zf_pSsoQ%{Yi`quMM&C8DanW!&L@GYOePF6EP5I749aDsH>b_Sz%JyoZUoKZWKT2|m z;;HJ)W@j;YzbWgLtmad};8Wd6GX`4*4C2_*H<;i!u+uG#6~?X7hax!5o+_89%xwz{ zjOEtetkW4$cL?2c-ud|cL0%WFWQj_?0M$#x*w5aPbv<%*i@^xu8yqicSnQz0ZBwzF zqiScWPmk279ofnB)nSN~V3Wixsrs<-6`#cMe%S-&=|j50-ovlr>jMffnOX~~1qabx zbHm8f*4(Pu-4s`F?2kU+S!+)E>(hJ3-|q{Pupx=eA)9*>dh2{BPzplDLY?$xDfmXCw?!{3aB#|D zvT``tMP>R-%SaI>iCEP>gy4;Jt#`I8m{PCdJ9A`(`v!lQ zMrmup$NZdUta1J9lDc%7(fz7VwLi2PSI7*xoWHAl*we9U*Li~@q&=u(#8<>`;D!L^ z822v|@8TkdcEriBxeqDvIIJ}0Yf5(!^84FthHqW2{gku=ggk^O(8$JDk@!z~@LDkuvaA16eT7{R>=du_OJ~z# zpPx4eJ~3&{-}rkEt#4Wuy zp0fd~(jxUPnww!WhayMBh9ilC@IjUYG+$X3-hN1|=7HP^)icEEW@)@M>0ITctzMvG z_7TFX;vEusC3obZk9T$+Wp%oiuIzs2!*kR=!#lPDn-%!b`(MpeC&CZG1-*F0u$k2X zCJ)NS)}M1IL?u_8Zrf}i-CJ{yVPD9w@l`*ovx3nvmo}dhc(^V-SV-*FM_r}$)1908 zI2p1m(YOc-go{YgEg*sk*8R9>oNY~j&pr5Hd6a`9?4D?F{;-*7gUZoEVPA5>Uy1O1 z%-mL9W;lDRLSg&iT^ij-JD;@HUR7pZ&Yjfa7PvX*Y#;-$yaCTA0b)khW)pA0#xTZ;DQurkJzQDAqrH75%bqRf~;x8SFwr7jiT-oOj@0T zRMZWzZTFcwMIWAGbyt#}5s3OPSEnB&-=~>}@2R4a0zLUOlr0wv{XCH4vMS?eL z#W%jI7?ubhxHW<9#SGs70jxvBISQnZ{t($9sg1WBg7N!vRh@s?x{&Rt_QFibsI}YQ z-C6XgLfW2k?%%7@iWum_@2`i z&!zeKPla+_c0k5s9uRnw)5Zc^laPma`;=cJ z2Qjs|;$xEbI||im&P)V+u=lq06TSM}%Kw<*-QK4QCML|s-W_hQ>M4<|+QrCFy!0{| zelYkLK8a&L`FyZN@KHR6ew)n9A>~HACH}z>$+kAw^L3Q`kZnl;PN;2o;mC9AXfCc; zt9>Ve*Ckr-H~@>lc(mFWGW4yOYvRQokx$_{un`jmxXhvWc;!5NYNme;1yaMYBqL>r z*~nb~i)2&B(qx|(Eem1Bj*j;Hoa@4v;oKfD{rAkKFKawenQk4Cp_>+*EOsLs&XCO< zEPxj8m$ctQ4hD%~379j5Atp^kbn3X|cz|nL<_Mdfqw<{Ee(j`Psw}tU?;d$_Tp=;N zwu-Kt6t3W&P#dfIyf7I%fvqLGIbwIr3}%gk8i6dQ{G48v5r%&R6rz z50)5*Vp?>DeZmb`_V-5J`JimndQ?u`_4TJzZbO-h8BZJs)v*kwWC4q6d5qU3=GmtE zs~Xha8wo@2J%>!QUn;pDaHq@T-3yHq+M6`bChZ@6egeyM_U$9Z=OIkJ6sX|knLYg- z24Aoijn@HFfykP#@Op!Nqg>3HBgooDxwEp#`@-;!!!TigBjej_pH2>FwDXsqbsD;$ zAYC@i`9&-v)qhia-<)5u;C`5RTl9PWw=Y#@z@7Ad3=SS`O7=9x9{OaC#9G7^%pCNO zuQ_S2c%7V<@!mTCi@&-!-QIKz$Fg1|$C=;m=o34Vm+oQalU;|)PalOS+FLJuoN^dhS#bEE;1kF3Z|#`U9jV403_pMvy!Q^tzk>{ z^!3&b@vr;kTwJEk@ipXrI(k23Q^Nh|P7H6JNq|6UYIyaVrP26LjdccsW2)xF_r&(3 zncBN#MAfs-w@-Tf;p!;8(B@vp-Sz{qr_Yvi?n&5qG~$d=3wwyJq@RFD=)&*=4ecip zftO&nRC62UPETa@<~Huumm6QX?`+?j`?`{vd~DJWKr2(P*FdKqe24!H^h>Mu_~+TZ zucpHD($&Q97FxT{oj!XmcIbrS;N2rxF%^wyvk1ONNyf&RT$#0-o`eWLK5i zlVLm9jl|iD)C!r>{ie?#{mME@4^%VgNN67jHOznIJ$hg&bSnJN<2_m}c|1=YuWe0u zw(g?V>DvQW7+lhJThTkadIvu~bpC+hm%%HihLuJ}Cl3ZJzPEdLlh9nu6wz}lWB2~P z^?`Z?Fz0OJKZR=DG@}a_wrDEki!cpBEi?S5w#2q$I(%~KT_f(74g`*7o z@7*M3yjHPC?1c}Wtq;v4o?i*Obz|kr3MS(0;7sao3w!=?3C-k=AvpPHDI9+}jI4iW zA&6s%p@#rdX$9Xh4VsAnUn0L$%{r#rO%{+z#J^4mjtOOpZ}TR(ogup zPo1sZG*5wQVGS1bV%6nZ6Q_vzxY(uG9I-Z| z6IVI87mMf)y=k;}i+a1~Xv*HZv03Q{J<1XgcTZh^8LG~3Aw$)kh$nu-6{RS@#zzk4 zD)mkTyJD{oftV?n$KISGvF#2!8`Up#wcg6qm|mwXQRDnM)F$~oS2=Ip+$}h?@4QKg zZw9hKKiGd1lUQLz>~Fa=wScTc%G!^m`-jw7qtt{9ZALrcR3i0W9;841(qu8?cdTSTXfH0 zUGz<;`1mQv#4@V(>aO5ayHKNznqmIAI3XNcBd@c8s{gb4l9arWb&qeG8i?yE?XAo= zMQ3re-MPd_FSmSGYwLk-$m2xS&X1QnZzb-lZ7Bm$X9Y8GZW}=#)E$hJCfhkA#mD9F zi<^IWe7dmt{5wr9rQ~Egs}yg`eBp?*IOL)$IjrC)Nl>Y5F_=P>COgq7cI^?=1H8sCwltAT-~)tDVq<880)KUd)%e)x)b3U~J93Ms!M6?8 zTrObJeOR@9r`0x2-8gkA>nySf*^O))e9U2~WMl}HELxWR#6g_RS-m-e?WU-}>A^>) zflr37*CfpeU(42Cm-Q@ugU9-~3GPtlx5vvs99V$`--u5eO2^(9W=Y9aZh5Hv93`%4 z8_1sLg`OX}rg;3t^P1byiqF+ZGAw;+YC7)?*6n8Ssy%S`(V57hj$!x%@bTla7W)x{ z+9_vZ`LOBEjH?*KGZ%_^AH3T+q!l`>VCAMpdMqu?e~lr!IzoX-FM8*(4_}5+YIqDj z*L4UenI9(CEfxot^4`%#oXglLl7KO<=GPPah~SLlpW?!CDuyzI(U)2u-}yzR*x;sJ z#PuBr{1X0khQHn?Rn3<;i?ksNFijDEKb$LIk38|h^~rcUuF-p24Su|Y!6%N)sNk_9IHkG@tK!$VskX`oE%>-L{ujl%^UIGy z+s|B&I($!Am+{isZTcqhT^OMa?$`XZ_emz+dpXZReH=3&2b1mnEtQi;a_a&~uC+Q= zQubE6^^A+f?>3QarYx^d%fAezKka&xdF3#7E^jigl>62O|8xnBJfsxao9uvpf1Fs@ zTreZst?!6ebLPn%D(!mfjBroa-fSv(@lcq2YT^T?`^siL_qRQ9h&t96y6Gj0s*}y# zPmsYrgAodZ2hSpnn0lD7Q1qn*d?Yd(Z*xq`dB3{7T@mwUF8K5E=i=p6+vzUHCil}- zd}i4bsUNwk_%?jIQT>72d*!i9#GxhPU~X*LGnS}%c)jzL9M`Eux|qd6azU+F9O^=qDRmx9v;tu%8A2;;EB9e zWjNau?-jHpK9qQ{d))U9o12=3hVlBFw-paUX)kIm>FCs>cO9>f!5I;|iIwe0;j&V^ zLY9BX1T3ESR4dH*v-0Z&Jq<#6ceuxtQ2WVk#R19H;k-xCJM`o3?X;|_GL5-^ttxcU zpbWfuQDDV4jTpd3VM*XccZ$m(jsnGI3%vMzsUE?UlPpvI%EN%~rpO&}0eTl3_G*K@ zR^i598O4uC^f6c^+QfuMm(0||@Sj{8Pz_=F@Z-cGa74Oa?%i1z=>U&-f0!@$FBjMV^y2Kt{WJ2(T2SW3^ zI)YO(-4&6dNE2C-%G=f8_A-&K%i?DKZR zraOLzJ8hCQI+fBuY{Fth-M^&)ognG|z8z;UEE`MUXjnQq*5wt~6_LVsyW?|G<&=K5 z%6`Lx{LHbKeg|~?jdkHpTZdzNrp@uI<1k%usDWsS^h0?p*X zjpv^psOZVtu+D;@**)iDM{t2ReianF%Dp%7rgbsG{PGrzAj9USsJ@#_gEDhM#1+fO zva0#uf#x6u+F+WlB!Y*wC^?iUPgCj?KuHZq#?Ky+nR z309u#9XL_sX51OW#c6ot(7YwxhR|ND(o^9#nnJfmFFCf*>FD=KeR!AsiRUdWl#lOa z>F(F-POzW5|7@AJc-;jb|EdwQL}#|z3R@jL{h|7E0#dEHY>puxgGe>|>&%Y7(R)G? zHNP7oy5$r3Msh(@DUPZ9E#of4@e9-H%&9EhoQZRCe0{ai6ClhF9>&s2K;(NDe6X`V zgEj%XkwIQmoh5oT3I(zMH6Zy9>w;IOV70$Y!32Iz!NQbr5+TNM#?m(SI;!(uWw`Q> z``kZ67wPY6^x3MpU6INJr^sbMABX& z3AVMU1%)xxtQbkM548il7jOGENOnXY^Y=hulkAbR93+XkJS2Q_|EvcH31BjmUsE8X zjCcw}Cp2I6u@Xd4U*v|w<0D8CLyd$7(&%MYc!sL17tzLG!c2=Qm^o$D9;HB6q6wCB zFQ_YS4t!^;6w?rJVv%hRd8ab1h4Syz>;6u?zb83UUyMv|Fc!H=j|Gbu?q|P}zx12* zqu-UsjYmFJ`e)0+02N_{y?U?U_f7T`c(>R2BJ$6_xpkduc-YLkco?>zwx_F1#F}0 zN^0sCoBCBN|F1LrugwY%%$X`{rT^Y2s{4P8<9`^uPu|DlQPlDNPZrJdV|;1K z#U6yG1UP2j5A=h&gan-HI_|h1NM7j{KnLoaOM_J*PZ~@A3>=?9#u^ zR?&P*+WUH9W5JdMRPE)%U^aBi9{k&d;UWW>1w#Sm9HV#^KOPAb=aXDLwP;cGh17gXHBm#8EkdFnucVlIQJ zo21BC;k#x;2PqP9tBvOUuy}Ox;x+4lnZf>Pq(ndC0{G83D3{pL(mt-|DtnjGu$}1S zCH|H=STq8GPh@BE7i%4v`Z_s?mb(E~rXld>G4(6)98%?SzTZPGK2V#Jonkvv}#b@34m`UGb?7(!=Jm%xRpcigW6 zZ+naHrnV&;z;VGN9MZvBbhBjZ!`E)p7h*#`-zK3h37LkWXDq5O!rm{5Q6N~b-dC(4 zJ|ZfWM>R{zOSKk#9;tEzJwwvN3sdfRYy>mSuU^JYHxg)B9G$?4Z?3avc)Ce;PT=Y=D>b z^amEbL$!b66{feU7Z#ED_u$Gu?4kKfaK-tz;L1%fd4TthAqNgnpj$ci3uX67Vj59w z_AYws#xyhe15KoRvb(;_b26JInz1iEEgxMf*M3Q^8CMDvOuIAtaa*NGxVxE?&F0|f zYF_DEjZ<{_^O@|5?AB`Y|&z_-2!{D zkqBl8~VZxTUkxjWP2B7gcaF9auck z`w#ecv7o2mljwnG;1!G$1*)+i9Rfo?g2W16nF}6>B*?(Py1f5IaF~Tw$@-%&U&Hc? zb1X6!tGI{G?s=m$iF%>=Zi-`>)4^?^|7~(*JkF0%wIwR*&LoD{=C1z{@+o$~TU$19 zKx{@X*Ctgb`(;$S`l}9BMc(o4jQnEtt&(JK2$=(_8QFYogo&85yRjeuz4SNE3y+T#5N>8QmVjwnfWJ}30}iD2%U%driZ~h zSm3uKbKs+s$R`vCxYUST?9J&FB*Nm~0nu;b(b!frRv7%FB4pEN8bLOIAd4Z+o<%ZP zhVmQyC&8=mD&!S0C%2n8B=_Mc@O;mEaj zI9yQAyD}#%ui^bntU{)1lKmaqN(;Xxx@E?zmc@!veZ&xmH0F@x} zd@xzJ-Fd;Z_^qXl@V>7J>kYPgV8!?kLvoxIlTu1*U_msysMA%2*=0krFDL4Y#8<7f zFT}gy1E^io4^>-)8eUHtaQ$_|@~Pimc9`8dRrLvGdkp+{HqPM3H7jDHVMse+;*kRq z;I1xeUr^2y8Xsjj^vrL#F!~-{xfQh7|9V)pBdImgcRV-}JWL3xO^zW==c^x>j&{E} zSim!O|4Q@(g3GFe;|}sTo6c1*L{WfoS2#m;m$~xZ+%5w3Zx&AG6Tqdz)*^l+J z9SPn282y$D3^5UER(cZapFU-i0x6rsde&NrBWDE#c>XWy-aD$Pt!p1e#a>WU1Oy^o zr9^rs3JM|uD$+}oUPO8cEmjZ_A~g_7q>D7^ov1V+^eQz{lF&;+OGx6~o^#&!JD%@+ z<=o$Ij63chj4;^jtg_dhYtH9+=3Ll_yaB5|D+LeK8(0bzHE+AY16VG36G}ve*6}yw3`2dWp0?SdSp-E_>?ZhNfI8GV=K|6EaM?za-fYr}(og@3z zm*NjYZF7cdz800zt%{DChp+*lp=EcUNzs%H6{fK1CkLpHnK9aJkgEuMhna8P9^5-k z(v0Kx6ZE~17#_jjK9T1&nSAF?(Gu3d|IH^at!iE1+N?xVE@Ad*#r?rAa$ogsZ&t%w z>?xS6oxIVBath$VzEh3<*qfdJK5{bPX{wYLr8h}16ubY4YDy4EwlR!dIlpX|eVso{ zfwYaUC??c9>yTEFUb*E#u7(NMa^~0ebZK6QsXh7O!yY?3UW03P7xsGirHMwLLP(B< za*;aJ_O=BC1IA7sNLISsXkJx3M9U=x_i+u>7}UN z15b#so$VW~^HCix)QN1%*3LuGa{LKnuH|IRjs-kMCRsNr46_EHO+punPGi0-{+xtU z&NNX>8-jIRi6;KrC)*FEFW8?~PD7_`8MpnAuSx)MoO0*E*yXxS_jluCuv=R+$9Tor zPnu_&drhD(cwad(o&0(bR_JJ|+H9OvEqpYurff=B1%a~zT-}*Q3m%|jvRAJDo z+CSR(S6j+?J-Iigt*)z8lZ0S8{=6kugsr$a`}~U zvC|!UEnr8rCM>_g$1B`vZVW^WdUqfQlq&xM<4;%lmL-QEM38rZ+_eGa*6hV#DA^}5 zvuC0E9W=N&q4`dug18*9Ap}e%qT_9}wWHXqLvq@K%v_Q3t78>bi-IcRj#fx{lzsSx zwo|-=qQ5;OJ2~P}Ie4f(r-U&T-{Z)r#%SY6fzotUpL!T-|gGQbwDVW z9%F!LZRfeYdhT!0+B`r%|0`TeSNe023+RvkoR)9&j}3c_sn~e@+~@NVHo~nRyQQ{j zE-Yx)ZbGiZKcRUM_E;(|v;IJXNr00J-uSFl(NY}@nRp-c8obdGiPF-d$ zdeZO^JZYh~v%lQaaYR~jwX4Dpyu;flu&X$;5q1Kcuy5H96RiyFFbaDLD68Ey;CR*g zbV_5p59$R2Hjq^pqdmo{@|cydo+?0J-+AJ5K{DJj819f81BEfV#Q>R+KCc*`_K|JPV!?El^>$svo*ROdV^TA3 z^t2A8ymau9i;u@CeMY+R^u|58BwHOe`xRb5cUkQtCtYuM*u=JcjlHOk$n-<4&!u}a z-@G#iPQ^VVIMH*kCtBWow3%sZzc;lnbZ|((2&_A~fn<0b7$Y6MPXmNX@VMy;s4UFY z#7s#A+RnH>TvwE3-eRZi9HF{g*k`6^%Gb&3n`oK)`Kmx(#3Q%vb7y?{ejFO4G8htE{PgdGz(_s4%jRd{oDEvM#*a7miQ&2U-xurIvC(wiCF?-*)N6s}W zS2wu=*5v!XSx{Xy#x@K$1J6$;0xl7d+3pC$h-k8|^y?siUyv6eh-hJyIr~kkUX5E){25|Z&F6Q|PV~Af622*T*QzkYK_wb$OJ6lxq!3D zaZ8nAIc{N`FsJk5rdE;+?xjTSz7Am*-U$r~WJiJ7Q-k2;9Q z(WbZJD8sI^LFdTAU8>f@v;E*HoZ%!u@$M12eEZ$qjdAZhF@i6guS9XqOc&db5dJzY z2j40${(L<;jvofNV$3_1wtxuTMJ#6v`g9h#bDz__A(N4C=FLYwuT>@TUFKh;4?I0) zk`WJ_TyLRg5UH#%gW@{-xzQ{&XG_R50{51dVGGQ+Gl=#9ad{Ddg^~*>3gVWvf4~9N51t}O~_&N^VZ3UTx>cu?ywBqWoRE46eBEfrJRLa>!(rPL9 zoGE$kX|MqDz78NZpEL#DUe97O4%bqUFWsYX=cpTA* zoPPUEUv%)0I&UMF&%uqntP1Dr5_m;FtLeR%*ERcgCZOHHzWq>!TR5qOzTu)MB4%x( z!zUZr7xDN}&Vc67)E>mqu!zJ>8yq@UyfL+Rz^0))5+F>kCoFiZ``ni$QU!LDXgcrU z7@MDffx-gJ)Lgj@Pm-(h-jb+XWAE#SPeZ_PtTy~>B_pA)zZs$`<8m1QlsE%r^*IDB ztj^h9#IC&(-!uMn{LQjT7--6Vf;xc&9;shYTPSU&B0~lpCvzt3+4KC{E$=`(+m#%R zKoYg*G5gU|7y{!}L-!I8F&|L5%tt@8>B2Hl3o4?$ezaFG>Ct+C25}R#@yQ zhT0FN+n?j(x!ZH8KD%@VX6-2bO0Xe!TM!V|%j0uL$6+GmAq#&%Tj)||<}(lx-6DPi zGq`zLE~A4P+{B|?QDjj%0Qn9NJtK{pf@Hq&?QVdd(-}p!Mpmy>iHQGEH0kfP*d z_j8sjgdmDlU}Z+IAFSvqDdj~xRW%2nIfzox)T=A0FHRB9h*+LF*V}wCMDNZ`P1eKT z&pb)?3|d-Ax{eSfa{CnKGiL91;`Mu<|>)i9gz^V13uhU4hih&a^v*xyVTs}5b_2u*w z@&qZ)r}YzILScf&lRR1i_D?MN(qAI@yfGqV>6@D=J06^jc&nEb# zsJZiWm5d)un1p~eppFY(ayzKag6gXQzQ{~P3mJdOd=))7=!Pq;BvQDci3#E zdcMLK(dfqDGsnr%5#5nQj-MfP4kByauT8(}#9E_UDHqs(_%yvT4G zuo=>352BTez%haSlqC3jipMlqjnpD9y38|u`A)0y*2f#t9~zerdYrHK6!Nd@M;yzl ztWwkwE}clqY?rcX*5~%i4E}QSfhn5kiY`ZB;o#uA3#t#Pt@zbA*V%y$5SVV*t8z5g z6hEn#pDE(D>0GVDqoyjJBqpL@_dp_Mo||jVLHgsMwjuBC$PvlXdL{)Z%LPRh4h&He z(2((i+C$r1D5ZHRhdysw`Hcky^yTnCGJ`;cUaN~nVl={I9v-p!&%+42-7B{1fnbY? zb!~Lb;*vEw9!ieEBx7PK2)F zB6mt;5(PobE0S;=eUw_Boy=QaTFKh;J}Rv=gxQzrEyriR>`>28*$knF`f?=4rODQw zEw48lJ3Crq$%x%_OBt#GJZaMoa-h!%UbZ*iMEzhggLl%wEsTMrVd6I9$woN0(GzHRHtg7X-Szbn zvmmdF`{MOK^|%Y|>k!eataN&?);o2^Cxv)^f{)REzpwmggp__iK|B2Xu8HZTw0NmD z9)*)3h6mlQwOo<7@S=q^jMw-OO4fz{yHIxHnT2>#Bzb#7ur^LSRN9>^;- zz=1E`;PKS>^U3PO7!$OppREYbccR_$ab06KT|mNvQ3p!BrH8{RrJVzBpQ!t?H+b#zI zQZYgxJi!o+Dj+Z1a;%TJ9!=598Epsy&=_0e>e9$bW<5Z6hFn2V?|FVqj?bdK*f@bpB0rJ{9wL z-<$_^95e2gBUU4JOhzH2S#yE-aT3@G{oL<2)YOM;V%N9<0;lUb!)Bq8G~mQzPyIxD zw*kRh{9sBO5uRJk3o`55J;?$^4DvB{Q~Xv3KM20>6h9Bq85Yk|F@&v+H-s0240o^H zJq!e(mneDX2;4uI2>Co-HDzQ%E|=Sa|3sZ^PeIe2<}-)6Dtfv_>{-#cfL!GjYISUYt;=dx^Ylp z1}p=O(=;0GODKu3NQ#F@>j2udEt0!C1j%{c*V0*WJW@(p!v<=yZ{6rPvLd#qW$TVv@eru9{b1m{3&9it*T;_x7YL7XcS>DbvhQjSH7FZcrmuqoPf4h;X zOPz7VxN38KJNOCp2U7`jnuw#~G)$dezYB!T!lbhnmX#14hnVtK6LK`}6)<=a6cQ*} z9Uv_MJ#&JlJO;Zpm%5a0_wGEk0CgJJU3;w?f^(>IjyZNJ>k@@FB`)K@U#H9mji_uDLnAFq& z8YX0AtXTF&jzADqQN(Km}ePj|$U! zM5P>y?Np25GNYQrO0*YP+9}wpzph)7f;Osjw$L=JdVMq}n$2N6=lrYL8%#~H)9Fv{ z+;Iuj8$~T~hB-;h=0_9!tTCTn@3Q%u>%V$>p2gn)MyVt?1H6=@rF!ik9eUXTsRPTJ zw|sGQUYB5JzZowfa=%-sW7c))()CTn+MdJ!oq@ zvBHinduD9gXN48NbQE&tU_3@SaC?@nd2g_;o=}Swp z*8Skwkco_^LJ`wZ)|C?e`=V?2UEf|fU?M)WeAvnQg90SrXs%nUGncSaq2+Ds%%%$u z4rWqf&mxJg$s6m$hxUb32&p&-x{jpEmm&^*1S zTW2~ms#=-kOxvLQ)n|+WH!A!0h;K0p^d_pYw5nwQa8jLBYJ1p5#W2eC!0O}{|5*$ zgZ8vvXDbA}^V&v9>JMrt@GsPm%>O_Q{Y}l0|K6X%NWdrOAu|x#MDM zoRsuSiWjGuD3iXQ-PDTVA$S|akC6cHaozRZ z1?`aFvnv3vBuocj+dLOK5RhKlZQW?4ANUthC(O{@{^Q=&d>~~w_y^O{XU22*7zSY9 zTLJ7&*q8AXkZjS-oEIUpXv{7^dcDK_M#BO=S`2__Uj2>4t^NHfz=d7I{MKt=;r;ol zFhy??k`0-Yqu0_AG#H5F3!nRKM3q7Iw3uzgJc4@s-;6SpqJ-H1_7i~h9fSWIFMWpk z;J^Cjzw`>ow3`6B_&XyxO6{fyuY&qP|C%by|GM3VQij&AQw64_;Hb=iSO&f6g8QRa z*8iR=Btv)gkBRK9vQj;HZCwcS$(9PYasOfz9cW$iYWI4wiZAVKDWSFTIm=5h(fu$z zGXEew?(NB#a)KVh^WqLI`i*J(~Y+AD7cj zE5*6%ThcmnKh) zwzAL4T!bDTA3kgOsfkBDsd}kluB`YrhHLM03yhNi|t z88NN&7y!}{LNK0T=Am?R{bl5DU$Th7`-A@OAD|odjD7}|p}0!1v}a@i=xrwOXlwwJ z&<4cF?}~ocn$bCaFqHw`2O$2bWf-LaAUc3i%`3x4WFaJAJFo9F` zKwCNp8VW)^^82vhe~b#~(BJp?&m9W=2OR=-i9dDduM_mMLxlhH4*hRuDDgkd(BF0F zKW6ATLkC3P5C19M!_0NlbAC$lz(DY?f`m5zo11^j+$OfLPQ98C#{OJQhH6dSu$-D0jb^a&30OgAwi z`^7pY^DFh-neXO1?-Qw&dw>68f!4hF%O|3wW4=lUN1z+RR3yU~CkqHc50u9;To00y z;9z9!idK0yr9}mTWsAa5kfb7W(&n4Ka6eaX`Es+HsfLE`oONBVjXy{*arS_YmGT6d z9KSyDP+9*;340MO7l%bqk&t;3nUQBZ&RdAZ;B^`1@BzRj(DOxaLU~Sxiv#bM62%>; zdACYenS>7p`l*fh{&6FGeg(L3<_p_@zOTXp2(^4kL`D{l8c_GMaNyd@Y0+*iAlfxT zSoVJ(EQ7RzB%DnRhQS{e4B1BOJL{6UT4;h{iDu!K^wo=*?UXm!)5JMA#d;f~)jo~f z`@zI;zdCPN3Uxxq1l#sMDj2A5#t#-2AG?|1(XpcTL|Lna^NqgDX=hOdK2b#V3wV19 z4FCpneHp2%kcA2xw~(a&v!TrVdnh|=FH2S_`WPf=6Zp#h2_oI7^@SMn*A^R;c^}m> z?yuro>Dri$Z5W`xE1o)P`*sdaju;h2F}GqN@imx)hWx8lboQDQ++P0!8y52$coRwM z)=kbwFN9UKZfwu`MwMZ!mt?>f^>U!5l}D3A5?9kuvRMvubBQQ6|QhHMtxm?Ch+V znC>UDPQ5DqDtV6o8sGr*pckMN>%cKUJjOX>9qjq91!iqZq|M|YX&={b5cIGq`q(}_ zsG5r2MqCDjr|xy9m2Cd3~yaZp=EYTI!tKQctDW3+1gq>&0T8G zK)!o>ha;)&W(!|CpCJD=4#0GGDZ=3Gq~?Q(aPe|I@ou-Qf+@f_YMDwsy%lGYsdlyK zQKabGui`=@x>AwN;((3fSC0BH(fBZnqB?W0p-RwYsldJg<#=4=#`W0ZZ$2EC+?q@t zo{xH$4GyI^ZM7uco71UK|&*4r$Yxzx&N}n zA634P`3GzK|9oMr0}BK9%QGxO95Va=db$4pqE}d8y(13k#M-4$&d*vv?-ciy;V#Qe zX5^0FaD3>5L}6AFdp8(#F9vz%>y<+`j=8cSLp0$F!Rga`3gj zwPaB223o>=d|~LympzGu3h~%e`;0O;0|;zlJ__w0o-WoRRRq3+^V&ASl-6!+iriJw z5N2-v98kM&CZ>R{znHw^IW@mF zTDOSZa%`~PSzixSoTzO?9y||3Wxv|+uT#fme>c#-w($SPs{P+xCQvy5k#fF4s!YuH zq94I7$a*?PnQNcR6)2C&PCRO8=-JDZ<@lB_@wuxa>EK8|WQG}==B3#q52H*pyvL0pu7d54#F+fhP(cYV}becPxCwfPA?iW521Vk(;bR< z;bZ!@elP)mtknX%23cKta64)n1MHkcei{(~R*&Ox%8rK6*dY|Y6)D*BJ#}-V^N7m5 zQ~twpA{QJ}`#cKf^Sv$2j&Qm*#9Tw@Tm+p%w{9o}JvLuYu~rI%XwN`8T@?V6sSXRr z4jDp|3{iLtl5fB|wQW=7fQmT3|HqE^Y&K<2O8s2~&&5w?C%IJi&Gc&+g`?{jNTc`I z)VuVlu_-DCCJsV8Yg12(L=Zt8kdBn|q*lG*J_WB=GG{fTqHVz^-*&n?yc(;woN6`1(d@ONU;_#Y=@^#qooJ;e__??;9 z_aG6vs2(|#;l64{%kA4hON}{isk)PVO8M07i@rskiM}qW*`<09%yCvrQ;VI`RWGDs zUS_@P_RS13{kUlg$Co{|2R~F2kh7e@P}spXz$31KBw?CSEJ?Tbm@RM;ni?lSXHYw^{zV|^VOhUx z6il0nkIH3O-0%e_7c>-8d6bUIV5*d9&3rmvMlup0D<+F;oJUe}%>gB1r0KL|kP5u7 zR#`IH>p>%$2HQ_LNJLQDj|Y$sbhVPt-x>^!L5)t8I~PE&hu=CG7xqT%Sh&k0i;lGW zMa^r`j^*w{R(-7;@{FR_(y(&YugsJ{i25w36D(>1!;rT-d5maz#fUqh#)D0q23cu$ z4_9y8ExIN9wOHVbVbO@e**PhfthTB7rV=lDfQL8gjkS;`R}kC?Ag~#3Lx=3kddi_) zu3*PWSbgYVIq7YfrPg6)#!`KUr{q#F@4?;#`wGQZ#;cfb00bqtsu8elwCtx8tUC#V zlW$>3ShBE*oB%%{c8YPo z6&xxBb?z^RQkvlM#=%Yw801h*&hUncU2pjw;zI}P*GC;LRtjmu4I1Pp;?xeSiaR)! zE4$B(zLkHo@M?b7vB4sV_pREN3f#6%pA7v<1>?JuUF*^^D5bQALT}SmtnZjf*mKEw zD=!ZmCK9aA9CNxjXlkHq=je%*mVe_!TW%V7$e#1%_;8%^up}qQ7pBedAd_3W8f<$5 z^U`3}?NSS)`1UbVepBcRpm|6bS)-+jin}N65)efzS9$OITBWC#cev=;O@H3U zXSP9Is?O$vsOeBXQ!<>17)qOKJ6v?$J!2k%Y;f(*f4L*$xN1Kjwtqs&?ai0>vJ3f6 z*Upq`XUmuMM-h3q&A4?lng%rZWA!FC^(bEf8~mI3^zG&}K;p%+tKIQ!Uh=|qK~mQc z_g`3+cea1!v@c7}^LOSpivJRlv>N`dIXjjmyn7O^9#eo#mCUzy4V}L;P!5+`#F4{Q zeK3FleD=|d+Xv~4#}tlf+WLwva&jwbR2t~%Li6KIFJF>)9i^rv@y7bYzJuTqjP$L0 z@d?R*%*Ztc4{8T>CtMq(3tsZqyhWE?^crn^EhG_1EMSBVP5Rc81p!5o5sDA!&0C~iHQDFgumr_& zQlL_9?^26u8uY^+mOQSyM3mSIv(sC79~#+HZqhJ-fTE<`Mw-}4+zmua2df3cVEae` zZNZPUq{Y-$$>$BvfpeU`Odb}K&*We5>APufVxaQCWG5$hZ8#CtKh4H0b5W-w$`B<{f) zMgq}@UszosKf+G$a472rr>+19peEo<$U2#J6Tq}t9DZoyPi8#VYc!4BED*7|Z|gNP$y zKyyvZNmT*0Rf&}G&mu?iZ(TetJ3lOAk(kkpV(ze{<43kaio`EHJq=~r z!FEGZFaSQ8sHoErN`y)UqxzP``>2z{3xFVPbU@{Hg@QbrDsoY>0B5zqITXZuTkaTqIb1 zTG#f;RdwWa>jQa0>46OKY>)3qrtN*(wW6be{(hQo+(EEojSP>kX90ucLn~ncP~{K~ zZwq$0_|L){F#0K&*{!!ME5R+_z1o$eXb)ChQZndGKAA!>M93AGCJAx12TtUL3)&4U zzs$@kh>Rhe*AjJo-4b=S%+ZB;JpIzi??NZa4jo#(k$DQ$=x6DGHF0Y6;e7JsPLaOcbVbI&@W{%7E z?}T7CO!G4!FJnB{RvIEq>t&^0*tCA+VNe&68QSM)v%okUfC8)#UUvfMQalp7E~9YP zSFYl!(!J!I$eUsG*b81`ya4ldaG({ePR)%+Zc{xG@994A@Gg@D*-1^39Nu*{Bt|k} zBagjkGj$*Ep1&QtN=OMZ39@(EW};<{xGM;YW+5EVCr-6+051h?guucN>{X|XVL9!i zp>y@V+MB@{@cA2ZIg7Bk?=jn+nXjCpuT1EfMv#)LGLV+mya2b>RB4SB_2<2~q)F3n z!w5l${21lB5efni7h6C*AxB2#Lp7cA=ZQLHh`!ReXWed=Lx&QtU(`<3NV@Z;eaPX8 zb&Kt(>j8j}Cn9UuKJ^;wqrii60hP$Q@>y4Yco%ehepIl&FjcvEw%S!px=Jn6XA~&D z8OM8LM8V9gEcu44wNB|?n50dg>(}5)N%kp(K_zrxXNGKs1tmzqyKcZ* z>GSJ!=MMP&dZ|&hI-*};_A{j$N8ZJ>-^3qLc1{R-eau=C=0Y`}9Ll)(v>V>Dd$65t z(h)dFocgFDlx#YKJ$GP~bg!iISk(J4AqUE7xj~e16mILA(N^i**cOvxpEhta zog>z)krIbNMl;`Ok-f^r>5e$maXh>$Me`1+1!?aKV@dKBaqG8emQ)vMn!7G1*i_2A z^TNg8v4yJWLWxc6$91dm4GN`hoR=Lxh5fj=!=gp|OsWKw>nZr-mfNI7GN|LH#yO3O znF|tP9KJVcX>=-oe59=Qf&3SX(A9HpiW~AZu!WA+FiwP}4rMC)q%v#i3fK_1=Q4?q zVlPZ!A%x^VxrTRU$sM_ML+zkuRqb1&3{m%Y%szJQO4hu}SGeKUF(byGBopT-X4lA> zrNJ%^@B~F#ax$f)-*PZ>^2yQJ>iAS9rmNf`k4hfWd!GQJTM}dK_I5)B(8?r_o2oNO zY&jO0(;ljKHxujBWyM*Xs^M`g;4mjxJJe&(Ob?-`xXRBqa02PH?!K>o_jC~jD;vwu zWazR;55P84zv2$hZ$`p1SmrMe!&f`Z>*vjj0E(#r&CUoxjUvfg6oDwDu9pKg-gt34;I- zxM*e+N(VIKX zrRl$0Rg(tNGN2$ro>>qItr7;PftsyKz;!$d6qKxokn{8^2fQql-}Tl_h$R~~n@q=c z3g~cVK3w+8@VF}LB%@)J|H7-<%KcFQrh-!1*RfFi)ppz$IKD;o3aND#s83NufkB7| zMZGSW+I%cUS?6gAX0~(p3533qV3`CY;w-1`HjGqa3tG7{&eYVrceHcgd7iPv zLTRxu>j;L^3TRzrwDE?zVcP3chW&;^DJxv9a~<0QRmr6#pIe0Wp-(ICop7pEJJ}r1 z!_&uT_whfhEv|43tv6Fm8m7$*&x&mmc`9XA(gbRJqouVBybCl`GE?vEJF4yBq!4$Z z^v>EnmV57(HmSWi5iIX(=xlF^N+g!Yz|sh(k$RLdX?he6iViayr`QXzY)T}f;~x7o zbJ(K?O7Wu3iwXkKCQe$`2^Q$|Sp19)v44%L{&D_QKVu3@tI?;#datg3c7*ZWn#XD0 znG1@+c{W(?l|;|86B#x6uS>p6^~AavJb56?7s{M2aIu6{LUt1;$AD2{I#YoMm~3fA z!o+%|SP?`pS6IXypMBBMFg~AbH(#%LyqO{P1b1a^&N?#C*Bgsn_V8H1%de3RCN+D? zH2ne){fk?gWubg!q1-OR?OLk?^$yN)9F_`i4FohPfPO^+$XBkF+O49Qr}i*58n($S zj9X?!l&3L_3nM*F@aFESnjpw_@pkA;HcV+Q@|VH?<9y|x%-V5qCeSQyy@rrv*86Rq z2LQ$8s|zhC)@0rOj*3%_G62g}kTI~7UUjUeYzR3NqakqUYqRzR<^u;(S`6g0|K5j zUp_Au3KrMJ0;W73#=aeQRD4qW)Fpp2Z_y}zOTO3dop?$91%J#4PBup zMuC+lp0Ss>x6TeDO_bkGMZ;!6l=h-dIF`;fh8^-X^-YjYIyA&Bi8Fnsg&Gwcv5qvh zeWvz7c2DAa*)vSXLV~f)vFjcXgsgFZy3obpYb*5I`eX=DjPNws>8LYE3O8mpw-rrY zn?rdC9d$L{o31(AcXM{{)!EtO^S6>K_0n3O`$g>jVA@}FH$T-S(DvxCC5Ud4%8$s}GViD|JklFFI}Opu%o)ZGK@tK{K3dbnfGh z@eBW&2}9^P-k2T?82-}&0v@keU0NngM6H)r>z(C*F{TzY)9c5P$2Y^n#Gy$yd|6S_ znMW>;qLo_)d~Bp{cc26@EDm~Sm=Ef;dWu#9FFlSnnaaTzev?$59GNNBA?s_~KXJV> zvYcnZqiRd_im%+xb_LJiSIw>9oDTocl)&K+uo9^9q;usxScO?uz2dZ7j$|kIUdc1> z?mSid@E$mH{>+%{-Nr+WPgt~z6m0BU0~#XBfp+?7_{#qMFLK{mj=$OoPE2jN<_RUv zoS8okC&sCiS_bf+I~!>+#;BC{$u=eL1m}d$p_42f`yp3`$&mZnV0l(Y%zWFA*sq2zCC>3<*EIO z3`@1CTD2n?5s^uOp|dP9!4?jq!BOG}!Vjjx;OP3A5Z^k);!v)maQb>zROH1t%bNpE zLm7|0bf-m{KeHiu6g%M~5Af%;c*-;fiOlLz+Hsv|UI(8^i;AlLz|Yyn*FQRj6_~Y2 z$M?KXZ;5V{KGB|Gd&2bj!>df3OZ3EWfublHta=An;S!AOeo1&l#B7D0z z(ZhvSdK&GMGN;VOZrqzpmJt7Blq+LBo{asR6T&`lLw=;RTe|ReE=0L*3ArKan|gIabW89v83N z_>L0)Mc%G~w3XqUJ95J}n(e@U7=y za9Q{Ql!T=7L4Pof1Utc_9@2=`v;s)$))iMEQL4)@*g5!tgHft^9a6i;E9I8#bNx`w z%4p%Lm(85Q(Xbr1eAx$?_wRE))39;em14UDm4t9Fo7Acc-2{yP1U2Cta6XA98h%M! zJd+fk#a@hgKn)2G02Mh(y-%;cl_#>NQovT=4(rv92#pvX`1{Ab&kd9zTDG`E5IF{p zf+W^lPlXOX&X=}eU3h+{zs$jMe>KxHHluixOp&`=>ibnbw|h;bAP!Fx01tbArE0Cv zT}|Xn8wUkYOe#Q#MeW^}O(~jK)H$S3|FRuws<6nVaB|v2*kh?r+Q|LVg}XP-1YQUv zDW-Nt!q!=nIVlfA4}lOdDuBj&mNp77-SBqkMpzKwX;2Wf2o@q6V8+c;aEO>0(eav` z|2?jf_lw%$KWQ}nb}xj0J2g_4k3rYjNvS`%n5~~&OzS`6V*Y80_p84OG&SD?ivSSH zw%g{y$2eW7uPQ&YRjXp!KK^@8&rgRcQM!USA>!Qx`eRpc2BRXpM{64|C@W(bA zUm`z=Nv1v9Yi>|$AAUJ+BphGxxY^?NWs9d4e^S~!GU89I4mhMKwj6G>zs?!~h#2nb>JfR=1$# zRHC&*J1i|L^e7F2jzvjG)+1eTFYbB^Tb@FJV1=$MKt;rRZ~k>!C)RZr|g0!en)x z7vCphQQSDxPn+Yc7tQWUYkWUCAFprDW*qNa9e>90h{(q~U6<8jbX$3m!l9@6dy_BN z^PU=9^#zgN@Hm|_jf}~p?0!|XCCj43nN#)p%1gyRkVZqK)GGR}ahyoL$@?npe80^4 zvOM|1(@6q1bM-#^bplxr9Bky=;EeuS!DBY)WnpbXp21~hKi$7T_tfKb7t$QCw!O>b zH<*d=5r6VlJJ)?BF~x+D=$YEHHdMWs%}!@*>Laqj%R1L| z*d*}48fprQ_G%yx&4r!U-b`qJGW(hqcr*Lq%#fNL za6V#fjEd-Yet5Iva0+l-6K*zQ-+l7gmQsB8l~Ia6;k=%Vse}Kk+Uh>L6uNxh7C%>T zqGaG1=GEl}^#e5=wvFu+SP3>WUOv%_t8cZvs0|_)>~@U+qvd*Ms|Dt9mrjo1u+knn zn`sIW4^F9H6y83@!dI_ZFZf|dQ`bsxc#B^rE8fk|Uv3uH29l%9d`*2!YwBC^8q+!0 z=04Go!M#)}*woVg&7$L@sN2nawUeqs7Tx{NRV(DPFZc?&JK9DcP=9Ns>Oqn%m_@7= z%{zw!;-ltCi(;~D(xztAj;RwDT_7phz3NObnIalq0cXl;%rX^GI3j?&$*?OZ+ zQ+SfM*`?)28vyF+sFUY3Y!tyK0)8K*$!wYIVQ6A9_w;>sNdA@C4qjdmQB;ECSwKRF z`M@tqwg3zg&MV^*&<-#s1w;Z%6fG?ama_;?`%dO55JJ0y2Oe{d`iq#ARI-`UL>)Ms zZ}rPi%4c}gPp~>~R99`--C?b%jDwY8aZ`F%pmU%cX@q2udfyKwPt&vA!_t&`<7nu3 zce8>!vAJU8DR(LO0F-U7f#HlzDD#_ugcb84pf{{bca|=<(XjaAp6y!rmf;K9)`S$c zF=(H)7Mq5woGag_)s{5vS6KIgt9)fLdy`EvqIdL!Iuf#uG~`>0IqL>ir%h1M9f~aR z`2ry#t5+6eYiwhOk6~G{zL&p5@ZRt_!qI&5p5wP!$yxSk8-J-6@?ZB%TKBBbiV55S zSR<19&yb}2e1YVanU7sqc3E7S&zqWzv!XAa-RJaSm$2dB6Hv^b`h3}D@*1sX2relu zQxCxoR~*fEpgtN+X$bcg$n|`$$s}|$|I76`QbYrrZGn^QvFkFNPea0H&8|!-XzfEu zc9Tk>RkWG`h&0%>Y~nQ55Q)Ci-+w3CVWnIoYDno~M#we6Ll@$0_l3LOaJs$_`dT8Q zdt#7ZH&9iojgS~SQ@i(H(cYi-zm81|ztbp7tTKXVh7H$}E`kKd&{>$l{N|d}%Tq2n zn}Zn!mb!zMqJ!Ly{g+x3^aRp|WVR}>r{3_3M`Ma3=Q(v4wRw*IJaGqy%605kj&jS6 zMd#$IG=-nhYWsS(E#XKs(`vk~)!yz4UrtI&D|}d_imk?PPB>$0-d=k@C%3KWy%Sa~ zT;MFCF3k4s{cJXHrqfUJ#+Uf1srQ!0BMu^d6;G(7#1&Y~)d&uubAluKiG$@XMg~>X zf|RVd;%lO0?dDeo;^pZm!<+{ixEO~Fh9IfdTWoX{pYOa}Nr+g1BV7~(bFswMh`4JIWWJABh zG(o4(AILF_a5HMou)^BLj(?zRks^tXa(zqtv>vFMU&sHswf8(Fh~iolY>itm9Mu_0 z%KSE05wdGeK2Yi*CcS%c&omG0bum{$&m9oYleY^p5?@5gml~g$=(fRA>kvi3maxc0 ztm?y?sE}6XXz@x;B#q@rdy((R`HkI;z39m)vLfJ z_XGf8u|RlVAr09)<^DECzRve6)BgTLtH-X>+hVt%z2}5~N=NHy|4cgiPm@r7;S+vK z>J5q8YNhQ0D1>QaJ9?{S=m*onVKQ_SI!)RMn!+yqU|OA7-wod+VjCXxVZK1((5Ndq zP?=zR97VY89O+)s!n|o-P_W@+4CbbMxz8S>RvF;TtB#p@mOioWR*BE8L(q4{ECOS& zT0Js|xSB{q=6-7qa;1dlnk};3VZ5mvuquuuI9g6S(~SmRAH7w6$k-zM0RIxcKVCtd z%j5X_ReFS9$hAxDTwAoqQ`w9Dn!wp}sgDEe9c{CNEwI^U3q0`ng$pR<8t#^qqZ4g{ zOd6861TJbC&Fb9Iik^N`=FUp3EJ8169*+EAu(1pW50O?WUtP|bka;pF`qq>n?s~wj z6|Z-6&Su;jahz@5JE@C3(=%S)ctQ>=F_FdZTE3p2Bk6Ve4RfSUrfN|y)-^_>LdcE} zq`OHCoaCo?W-f5D5Pjcns2H+*SU`bOy=u8{4M#(A++A{;&*XMVwvU_K{1DAzorp>d z`yQK7#oP4xG}pUxa{@K4Dfxlx#7^xlNZh0@=^%chb^be0mt*v1X~}R#MV$Rf3%Zq3 zu8?EShxmLaEh`_X96ar5u+}1Z&Jap|V=o`ZA~?@5dj$! z2vE-o+61_Krz`M2scWff$szAGTDwKvCQHkb4lNHBXg43_7dzAYL~MN@Qjd)*x{*ET zU^r$MR^BLNtSOqc`Twx@-BC@g`Px{qpxEe5DT2~_F%S`?h=2&vAp$B*KtP005)}pM zQbUh`G-=YL2t-AC2^~cQDM=_IlF&AU_`S}#b7q_~XJ))Jcis7B-9KE*wRG?7{qFbu z_2+pu{BY&5;?%pDiHZqFC-b&WZ_OradIh&bJ@RqvO;4)X!_`TT1`P@Bs z6Fet%9=KQ_a51-~C*CUXz4fl2AB6%fQ@Z4NlF(^VG$T{TWb5>i-FYyAU6z%F_3Uis zv$M7NFRJURDv1$7)5@&zO^#efMx)wM4999|ysmaX8KD+k#CAQhG)%CQvA*Pj zd&roY+SCTmMVgx>(#?q6LY+b-xdO~PF0`%l4RJKjnH`eLg$s36+M}0>VMR{JlPFC8tWTOF%Cw%aK@9fqX{kY&6 zWpNFbLUV8IVw}cxEOxue(qD^G8}twH^nTk@Sv|ymG=@+Fqo_QLp+--C`0#O`@NUpW2IZIW>Kcv>zFG>>Qn2?NeY^Pi33eyw@T$5 z7s>cknGXCZM8rN;QP-O?P{|@Oow48z`{Y51!ns~i(-ZrxhNYx5*m582aEDoJ1{$lt zBs%;KH?EcEi&dl{DBi88YlEM9O}fWisF?Dhx*GTV^T&+kxm{|Gq#$!IZ#Q~)Rrpf| z>Ud2E_lY0_9<4K*Mb*(FnVNI3#PK9UfWCK!b_kM=H2_!66m`b2!0kX{IP&g?l$j{u za(mjNtH-R5trzG~$up^zY%uYhVD#+AVw5;1%-U}a_0R&*wWVWDrBN`1+_d6JH_-K$ zbW&Q2;q5W*5&Id_YvA#+K8lU z!EK1d@4BtHXkV8R%SH%IJixr!B`+}`&|I01P=f`9pH?@h{-ig72$_w2INcO0Njp*1 zcp5(QO321Ty29$f4#+IsxomQAFbN72Mn1Gh3$W$G5)GmCSi= z;0u;K37fET4*l0njEwVR5TH6ZNgefR;{~A)s5`bM{p|+B*Yt$#W zNf2nnhtbFYn?@upyRD7mXfzxcWGY|xw9oyz?(QC7CtRQnWM}gtO4maVs@n}hh{W9Dx^%Mp<Kh z?7WmdQcgY)mh?UHx@&iWLR(tWz+yZq-7>APY}>v=)!yTuC`c0VEQLN9F67^YM5;s( zZ~_)!EMrma{*LT9ZbZ7nWqB=`kZ2cK4(AY#t7R>`LC*p&+|a`YavNB*Z;h8`!8w_ItpK1id5CA~#UVyYANC~b`n)eb z8h)ydQmC6VTN{NzD=fgu?ebpRJ3BKa1p4J3_H@Xw+f%w>C`IOdLN{6?E)wLwT~Qzs z_GmLY43^E>nbwpmsav24f(4TTJXFP;mXG-0u<;Zdn_wP3bjd>JP(xD1qo)Zwy&{sO z<(cEnFEwfJs{WJ#AwGViOIwF$#CK5Ob)=fk*~h1=4FVp`Kaofs5_8CZqO_7iHWA z`huNoKvn@x5|DYc;^QKNLh8s*v?|1iJ9$UOnH|3_N679$l7rEH^{En?DSDut( z>AFvss~&X-*hmkS=f%Xm&@LqD!@>>{tC(C6zE?rfrLN|*LNM>$_i25(AASWSuS zp`q2)a58)0ElClMN1TpHzP+JRk&2939G(unsShr=pP{ntq9qYN%F{e>lmo_%nq~D3 z|02d3t6$-Vj5;y<92sEO@p1^uCDm|>i_@=mvncg}M&8;2;v^H4&y#LW zA!h?u%zKiYhh3&>7oN9&g$!KQPD4E(zR~=m;cmD;C+c)x3Zn$Q?YnqNBDHO$AOpM z=t{eKLLMclEm8dBl90s^n&u%)0Y@>UHGyS|h39n2;ptL~+qDUYaT1R;y&KJ(H zFb`pDg-QL2W3c0VuL{3Jre+^yW=wKIyI+j8=_uQPtr(kA63%o5S`b2J+xjrn9xV?n;(Mf7Lm}R@6l~?8Jmw)MIpS8EgK3#!Qb+7rBB33h zXR%B7#Rrn~0Z!Ay@4v&5`nxdApBYw@qGBmxVFWj6gcJM9;(!RTU!W=!p{MOEth@i= z)RCH*2SahKZ~NI)9s`Ha^c@#y$g-tmjUMF09POip@q33J?5KRZakrDC0z?)hu z4lss^xY<4mEpO`W(O>=#{MY{zb?7_`x_$BwSiLY>nmBwe2&U=)u*fU`Id>7UJPV>J zBgx7AzrD^}>@OaH!RLPOkH2U4mN^VZa7O`1W79V}Jq&h5llyq`U%5``4?l?Cx`6K!*?6wSN-{7arT`OJOdp-){npPk>aqi4C(MQ;z0 z?x^m%RI0`+ofF`?Br+J2>Zcr8?2?>AU3)Qei@e>%r)^ap&6UnS{^3 zcYJZd^ojer-PO0(Fg$F;cw`i1vo+nGauCRdZu$P9A@I@3yVT-6LPS`0v`Z$8)hF$K zkO!TJ?wQnd))r26P4$aO?d_l%^uzaIvp?kgAO3;<%0cp_axO@;9QcOk_j94JwDT_>V(Kl+1AxB$3mfuZ7yjWu{dghvkLJkk?cv{;tcQQ& z-2Y<4err_z(RcpE68txguXqaRoWVLWq1?_PrJ#p?EAtAsTZ;&o{+QER3bO8q6h{hMStKh!DzsH3n$ zt+x^`Id2ZfROo2phP>uK1f0<>jZ7ug)JEF`$rkN0d$%n^Ssh5o%&= zjews6BN-$?9O*=51Yh^Y$Kk9AAKL9 zkoBCxlRcuN9meDnGd_w|1J;;y0!}(W&7H=!TZlug;y`x25lVq{VN0rc^`lytJ7LN# zgLWx{5q2iqJ)YOf7}P3q$m;K}*yx9)b2e$`8axfRnLPUrg(kMA(*Jo^muUkOuob`r zf`TSw55kF4kQy=S46?kl!M>-iDF>OprrN(dTJ~|7=|ul$SK9;!!HNV;UY(q2W}|0! z>5nemD6l9_-+Nc_j52qmV#f8Q^e{*|Zx-Y{(bi_vN7Ofwqzkn*l%aS6T&h0y^o8fv zAzpv_uT<7eKI!pI2x28hNZfVaUC@Ba^RQg3=5?!c+J+O#r z7k%@=+i5243AGDN%`au^*7mzAudI~wR#sL%+qu{2!S)9OX&c-0f(=A^YUG?{rWo>6 zV4bAHaY&wa@38<%Nh~!Y8}H_v5A|F0FN-S8%{;%axWbXRV2ivU{QSJ*HrLa-N;@96 zsq9JO4$t7`rJDmFH>kr6YVqTNnt|%7W~*F-9kxq885<`m`_b)60#jA^m?dKTgOtUa z>`?Xmn{m^h-;!nN9$E%)=eC4IADecnpzS^U(!Vsx_0(^&q(3XK{FN5XU-?&lvK`XK zf1IE}c{U1g>t%`ZYqxw0hXtGbJr!xX zx^G8@a;l`|o;*Jn*|Tk@hS2M9-*`fj<|Rq|DOgtHYB0wu=^zPsSlDMBe~^hOltXA6 z$O5W?3Lr1A=?-V3907N3SEl(KGqaLFS9sr;Q|+VY(VU}}haNw<`n8MaS**dptqDUR zr)hiE3rwJbAA{F9yjM@Ewm7~k4Fou}TPEt{06Ynt%_#hWU?+e+^2CmrqZO?oj%9(t zr<9pHtB);5^<`hDn;wt9SfLf4Es`T|o1V>F=Sw+p#O|Cmx-{KtPei0JU&m@Gpp?;v z8oBr=CGEbtLm|+6J9^?toQ)Sc2jU*?*oe%syD19A2OA9^=N)M_*}KZ6voG(`+j}wi zB8BYb4Zp=@Lrx`y>BzqETAa?_Z*&KM4(S6ODq@3P?;9O6x*ghLqzP>l!k?lw(LpMu zEAXPFl>i=-wREf)tl_kYKjtvC>vl;`;{zZ0bt1G$VN@fdF|dh(nFdt~o>~}n%4`d< zte*zguypuFXSE_a72~$dk>hB)oNXUA31{I}yTKM8dO1$@@r3d)+BqslGW^-e7W7G$ z*sGsU|FFF-!hW6kY`tUO%S`+EiO-)!9RGI81*y|Hf{m#gCSVmEa%6^J*#&0K<~ks4 zW-&gR{Z;@|O}w9VI#vB1{j=s9C&#OXaacIz9)gm{?)p%WbfrS&0)>$Mq%xv1N$mFQ z=Q$nNt$F4;7s9=3H-rRj2CAMuec_;SKrb=_JnjZGPY={W^U$FMY!UQN zqs->eppY2V;Ez57$!k`*Xd3m2iHVj#jx&zRgOOPdM-+_@ypK+(+rfPu6LxLZPrcoe zZ5L0=E%z0rZLCYL7S<^N(vT_LJDPUIC5Ow?>sFUb!}?zJwmHq8-n*~%rY5s+q`&?77^#qVG}tgh za|v5`(A3g2w4Zj%8P8r4M=c_OOima_Vg*E6aySK7SNJG`DAI8(**KN$u*-s&V7!fm zI!|5n{q7RUcaNX#yW#vv;6%&msG7Guop*igJl1gM(9-_dBzPAddW-1lvZHzUkvrNO zEUCTZ$cM#q8|*VtTp!+Zi8aozdh$>DmXcriz6GuryC%~~haWoGymO70gz`VKd zB=I9oK(TGB2A8{yL+bZ-CO@1_-yL*G@s_ulQT(;-Pd*%A_}a;7?~1!WEPB)9RR}0q zap6JxDV3cXr+*6FE$@V*JhnEbR+LiTQD-Qy;SeYw%Sqb&gQnZA?8TX{yvZwlLZKa; z%d{K$x5Q7DdfiPT7j;#Ms3AVlL)3K^#g(td@(X+G1@*Ciuc`ZYjdAUW=95w8Y?XT z^{7Tz44F2r5yZ@GwzIFb$UB2nFY~XbVQZ zn>Q}qAx|eP`moJ`-^ul%c?KUFgW18uB2w!CvmM(~f@M%}Pdu6=2{slOW>kWc;P4Y@ zQ7^@7!P*p-SP>3$hY&ON=4PO&*YGleGa$j|s+aLrjC1{|gc)+GxucdRgRD=TuDad$ z2KEYa2o1GHbs*#%$1%9aa7rl3a0qw2B2QGb63IUxQ=qt_H74VH&*j)iMAcKfX}goe zy$q4rZIiE3VW?wMO)*~L?pp_qnoWVw`_v*&u6H-E{wVVo;7filWWS?kP*@0pmIZ&=m< zVf%w-?-kCotvD}S%z3K>=k~la_X8jHkFn^V2V{R^Trqh@X)K#i+N~i5p~6JWgfB zr-YqEkrQ>kR9zmlX%I45TUXgDV7T+LLUbGNIsKE<7O^Hf$cB7DhSh5(voAeyimd4; z_F)2Okr#PDy`1I|Xg~%5UaC&7Ob3VCX*_V}P$4pK-rA!+L1*5%11{&ZUtl)5oz*Tz zCg|hSi2GWfKMne@GnAiv%yWn`RaD<~Yasg7?ooMM{R)K$`f~iEQ^_* zUgLSZaifYj-nPZ%|1uYfm)+bHy56sT^ej#PG&hZm=ZV+`Vod4s*>m=Yx1{v2~^75XpY zR{L3m>30N(d_ycv8W`T)H95l`fSA+_l7wQtAXO-LI;u0pf^|iWpsOq9x?Hopk2pA( zQG1t}f$8ae%`3KyN7OF$OHyo?uG)=t9MnH(YlRcLkR;(P1tu+km^IlQd@XZ8{DaHbT51`A1XR^5=%epce|{vdc{tB z`|%fglIM@b$ipKd_A0`BJm#bsVvf;Qm!{wJkz`eWukv*b-TG0!l^x8z2y6DkWlCHt z@F&I`HwJuHORlpe`!RvW>KLor5m^Sr9A#%*-pr%S1n6yS4nQ!GOc*9U^GCGFl4Bk>@2uI?PMR)Jl zZ{<$FA5W^_sLi3O`i3e)Y2hYck z@`d7%M;Z;BV+ja3y|J_>k&^_sUh5mXcoW9HvIRf8!lloCU+BGg-O(U}ul7CbfyO58a*RoWuIwg&3*G{GO>|z9XtY zvs=%zb(pU9*+adv!rL$gd5Onw-TQLt>sOn53RONu|9=ixj zN<0A*ZJ;%r&}FTlBh#c7r0l&bmB4UGURY($cAOG|P2$0zzQ5jK@CQQr&zc3#M~$OLy*E!aD8 z>L$>R^3$VcQ-TU08`6UBxCXVBQsev)ZZcr6sECALtV)jm(jZ+DD>a=FucP(heB1jbK0}VS5h@$HTAP|WU z2!h(#^jXswJwIW)dAdtF1i&(-Q8OuwF?E|HTqk3PetU_uBYWkSN@ADurJ;L1vci4^ zQ`wq%M`hf7jc1;wOt)$CG#tpB}i}FXB zbovtGvu4w+qsYWJ;kU z6#ZwEHjyy!j};95Y~u5WeD5D9MLdH8AD@$Eh4VTHSeNboBwhNK{M7$#>CzuqC4ZdG zZvfNz=t<|~2sc5vPH!Z^>HE_!dw(Bbd_}G3!;$Dgi7M5;x`*0H^TX&36b>6lj&#m) zF3RSw2(=}Sh0O5A?bwW}ymVT=%d)~#3CoiEIoFQMNCVqAzv%)srD$6I?0Wo-aO@{< zCGjVIuLgiA86V*p!;H~vK&?Rs)IcPp&~G`Exb)X+)>!m&X{#z*tTLNeNRcd2{DfAD|rfozLMWG!zvmA2&YgFznAck^^n$#>&?-gWF=d~a`P+4JLpYB2-J&8DANB;DSNsyE);xR~B%?JU_f~s;N0M(U`Cdn3e=z!8Z|-Y027fD`7yb*=QBbpZ`=T;H zZ!J-FgKmc+hl@RA1&Pzx67)O$aKhu~xwCe^oD*#nOCR1ocSVxG zn4I5um(@4h4{@5}o{{rl{Sh`tw%)TsbGn2&85NCFn6A73f%4^m5^b%M#aA$kHs(ypMng}Fl~QY)flK!?1Q^c6Asql#5N)5pP(+GyA^19=ys5| zr@jcJL{WD4x1-#t`4qV%g3h9BQ(&_2=p@@cPmSgbewptBCT$shbZpBQo_e6i%}pbJ4XX;uJ(=w%1X)O+oBgH zC&$}+UZifM4v!l}KS?&(P8_rezZk(Pdq==xV*A6$f{LKMUk9-PsE7Ry2OXBI7+X?^ zIBA-WDarz62Vjt9w3`r-QD7d8sZ}P7-E()&wVZqGJd)XTpgASC*+yunBY@%cTXLji zM4FT5Nw&^U0(;)6coTN|iN1^Nb3;kmmlSIV)`{ha+=MG$V zk;2QE@Lsyqayla-aNnVUwmF6%>Bg?eeN!xLYhXHJI1Vh7Y+dd&kXhpP&xUk}*pq-R zbAeDVj-WP>Z;qJ^7gbglk$fsrX6>upMPFL9-#`W^MAyq=LXR^I%?eDkuBRMc+Du(g z_dly3Pd~9%ipAqP#M|(o>Dzt6@dfv}7yWf@Bz=C`ttJ8woaWf%!j@t$L<00~MwlVFQz9H5C<*J#6SsL%8SE1IbH7C8}Wwv}PZVK3xe8I?d0D<_Phq zQ6iF^RMdK8QX(w$E9;V*-K3r5N3{HaF5=@i=4P29mme%4wgpxYB!%`QlQ!7y_}kh^ zi^XqPXF=avL4Z#i3)&x`dV^2fPvL0YV8%fic}Q=HzBw6}C@ZQo0svv<5Qkge4^KU9?4N$cJJpQp(pbCyc&XWbuqPN4+YMR>jO1qtMjWu5{8qLVd+VlR-RXBnA$(;-Dt9I8AN#vc5C)nkTugCD%ziXWshq zfPYOMbca}2Xg;MEvy!fSZr9aq2}j>NkPsBe8SIc8lTlu6G02HLQBk;=ztnxB+V#z! z>N%VHA#DOqY!*ui1?f~&x@|vT3~1JcBPj6oa;i=-%GbP+iI}w_>fzvm%1{!Danq2x zY<+DBp)R@`NGuD&nm0{G7rwq_kWgM*Yp|@OCIf$>A`7VE7(1~N&=d&I$j;}eX#>j~ zqBeE$S$O$4G0`us0)5$aeV0e<#OW=L!c_S@J^8aXi@n&gBpX@J9^?}y6JCZ&gg1Mf ztaipHvlxPtFFA06`mrAtm`S@aGm;za#nZ74=8nfHw!{&OGdk!~+%}8E3UT3r?QupV zoPbEXqC20Zg2JQm+HZ8a$7k?dJM3_)l0|Mb_kQv!5O&aaz$RcRk4NYM(>qi|3=tCH%i?}Mma|mHD-4A%#PcKAr#X~7~|GrsL@I%_-L3)bFGbB{-#Lw8GmoLBKy(oBMr_^B-ild>VZ zW&6Sr>u6c3@!`3$u9b=vWi=^nPRm0|!)tf*JM>DBmrB{^$A)Bvc(un&R;97vM09f@ zy|w$k(a9IpML}yBG+WeFn)b=;Jn%(m;}`16Vz~G&Ry*X@M3PN>o+k58_P%yMore|>FyA9G!`mAqZ4oiw3js8p{yKmLQkX5G+0$H+Zdw#KqHzIXQ5xw< zHZ<&Wb&EA6uQX?HoVKzS^7Bbv<@bs_Wq0a?3idR4zsN?7mX^kueSrK$jZ?|tK0|g* zeZg`aJteFijv2xxg8Rqa9CLg@zEL!dSDBMTCjgO+RbN;MkY`t^@pAKIke4Hfem?T% zBh#Rj!_=n>hm+Wm_#h5b`5Tb8-$IrQpU2pvXIx-zXq*y`a-~-G_=7K#fK%|Vdg_e8 z@FWgNL7s@AlFtjomp#@q#{!L?*Cxoty#I7(eMCxSyLotPoKl^KWHn_^zaH-uvGa>? z%3~FC>i3edIkg5ubD!7mhgCrjAret1X8@F_(2~WsXT%6S74IE}nAx32oBPbWWH|Xf zDy|#)*l2K3P;AKBcZS2loc$3JnBGrvytzQ++6QPOVSf9bjjLF?5S_N6n|*JX1>3W8lX zw~qCvXh=4%SA8kzTep`xxc4{t-xl|G0-Z$+S`i0oW~A+Pu{jNC(^hB-s5xNPG59+p zM)L9)c!oGPad_T_|3wU`KXS)0f5O&CRb$l~FOLCE!!BO&;9xgDFb8oxNQm4ZUMfu1 zq)v(xp4PTZn|!CJKeLR5(<}i6EAMbCcYu|=_P|vw+3|wwGlOom^EEh^2 zy)BT~wXHGMLV{nx>0E)I-2wi+A(PMDGWU1#P(sZaiNRFDa0*Tk&PSzO56DvUE}R>4 zc^SYvuLsCjD+gUgi*LsT8H*xUE;JtVXf{@48`%Dg?OxFHsm2z`Rf?IT#>F}bc&Y4n zl3%PJ525k=ZaToWw{EWhM%LXEuTrt(DBvmW zI@qgX0aTPvD?n<(4s-cs)cnaaQ}#UDL^Ihj@iB_~)$l?CPG#NOv(7?6pV|E{Mc0^d zpQpevxKqHJ!$}}SkVeaReTeE37ekpts003vV|so5nCW^wLZvB^)#b})|8jfbQL_&n zoH~4zJD(Pts`5K)Zlv!~zx95ty0?k5pT9l0CJOL%@gz-v?frl9qEwzNt22e$$~E)Hk-Wn9eo+ICSo~UD1wY&&mDMI0e{=n3`of$Z#_8Xh#7T^)>YY zIWol?@?)HCA>9asCb5ahWe!Sru+BF(bOAe-qK6M}Y zAeet=6%%zPss0$lH#$y9k1O!X^9t3!SS*CaR-~SFSKNsv@2^`W_##g=azHSc^C+BY z@Yzx(cKI!1*ZbShSz@B-vjN5vcBNpTF*@7?YxyV%eVaa8PxP{<9h+9`eW86>z;s+u zI1;X|O7Gd}tsF?+K^APsrt+C#x_D9~QPx}Mh+}x2K9SoT;9JbIP%MooQM&!1?a#C6 z9JP;2W^j?y^fFBgfOiExDF7&w08g{_EDca2r;xt@ z!lhnWg^G?3t)dHyH|?s?QhPF@6;+ZBycL`)YI}-wW-El1Gpdw%wCp__V6y5rnrg1q z>=BMXy?GgT5~YjMfdIbA6Hz?`m-4Tl-r~^&U-jP0-p^>|MJf)KoRE>JnUQJsdRL+I zN~KPSfKIF%|Fh_Wt_wz^csVWNh@5jgEkUAbuia?RVu=dD?KDbj22hu+jZ;9kg)*K% zt$|*apt}{{L+1GQTH`9GHFnVfnp^exs`}b8d(JH(F71fKyJmNt9^SG~C4GH+=P0gJ z@{L4NY)wQ!$wBZeI5H+~nGpt{s<~|_>q>G^6d=2GA>cdd$!T|m?Lp+e)L#DD6<5xq zuzwfFK_j|-+fZTr+567)YZTL6XdZ&#(v~K+`N5A>x|4p$3@SxWCOt^|R>I z@4W~)9Oy;xtSA40jLH$I%mI7>#gAqrPoj^5%YLJ49G}Di@IB+&wiR67#y2|a{x3Jt zV^JDY!Hk8Tw9i9vBbBVRsVZ{P`wO;QYW>HKy`7s~G#8{2hw8IYmuc#>D_zro8K()< zuK}h|zV_X~mi$m*g#}bnbi3uj2>i)2t7BSRv$OdV12<%rw;M_~pd(k;=e6!eco+gG z2}$C%g@t%`nsDcMOfouU8QbLscj8Gj4|rNjSWRDLS&KLkI5!1^h#asA;#0QYa>0?{W1Zr zBX7>^9IR*Tog3bE`Iy6mz4d{%`g5b~QZnkctm`k0#}?(h!x%==CZKBR3zvS*K8kpS(8tFADzUJ!(k9aRSMXItbZTlMFB2Fcm5LCiQjFL2G znkBH)qUK0ACD#&jrTzuAv5pd%TaaCxQCQf4yiM4H|qwDMaKrAk z2!?xZOWxIlbX=f`)#&BIT@(V{Z8=7>27qOS+FC%_(@+hzyh}>g=RSO%gszjg{DlRn zTNX|u6^C2fi`vaAS@U*;RGkdhe>*;361<{+I!h`@*d3mu+tY4x^TIiW44<% z2SlPZ+`}C%)RJ@1kO8PM+{*_1gO)UFi0=wDvEQFifHFqjcauO$cSaSC&z3%2lMnG0 z9(!lLjcdBqNJQ%5TMZ_m;0X4@5kAGFy;lZ9zpR%x6&$)75;2^-zXMB&S26Cd1G9&U zT=L)~o&@7ik8vcvN{awD1X+1JQA|{zyslzEaNyHa-uscaWQ{5ohEa6~t$q7%j)qrw z-BZAvZKabwMlq;5?apM+dFKo5pqWhdJFQ3qoiRdgKjCwe| zVAq99LOD|02pZ97p45tn3qZEhvd5L5OiLjYU7qh}mR}uO)o#94Zp7CUJAuInx>}?J zo!WDc?F!P8Pfb>|42eT@l1e@F(o%UcVweh`I#oalKz0p%@bFq{PtOH*<3s5 zIQ#fgs{4%ORI4CYLC!b2A`fSeYb~$EaFL`Kngz;x43tt#XznP4 zq~xP)pqB1*hZ<_Nm0U{~I*xsu;8J{#yL3+Tx=M`_-n}41H#CXyRjAEmMJyYbqizKUlmo?W8WRh!CnyB6Y|Z?o_QJ{m zrhP@!B~=D@{lm9nG+pQ0Sq^qcihqsGh(9EFmhxfsi8EiRM46)NS3Iy|YR=paWc&EK zQg_0p3GO-NOF0xxD$-aP`qJNN{-r?VW{jmNs{vo6kU{1(vB~pxs~YcPqb{D{b+fbZ zmeId-{g5zbWQ7NqvW|~Dc%HcAHG*aw`s7WV_)XZy0J}V7q)qW0du5!|yG}vX%-Jf{ zt9|jQ?!s*dyO$<2Gk8Ib^tAk2Gz5A$ew_2$I8A#mRYHct*mf48>hD~ zh@pzyOROvcuG_%0j83;d4b=E_SId!KbuvD7DF4Vna|?sRLCj4o&7IOYJ{1LZ1ZYxT z<0Sm^p;ONEDQ@P2ZV9e&+|C007k1 zr;w}nq6*wK_rEre&{L57q_8~gb&(RD^qLcA>jm|LTNq4#V3YuSz@P*Ik4v}crGA7! z2|KVu#g6*9uTm%M9T?To&C|**x|xzzr|ZYy(ARY=^*VoBbM}Rn-7)Iw?H2n-a2GtC z?v@^|DOy~Hp}TRESmp+2^7yo60#Cx~m^F2T8dljO)5StD7QH-)E}U(!I8ynrv@eZ$ z559=Eo$PT#q~e&`TSS!3o9p#&mrMEvm9-voxGIg$=)+~;VE9}dE+K0 zJIUxFmmS|0aSV z=51;M+tX=YC+%739qrP+TCt6%>9bKomj>T%b1zf+@Y?@9gaPr8;v6=8?Aj1cv>q*o za)QF=X*$E-=q_4{uOsG_QrCui0<0Bcgul@ho)-#?0~JBamHeD*YR59(?0muE=ecFn zD^iMKis&+?;w+jdC$bm5&;6u~lN-z#h5=x5f#w{9wk$2C<=6kBDoDI@}z`} z46%nus5JkhuD7#LAhc~k1@qn8r@TUb*s~7CY$TQmh#{RvZ}*WpeCvS zKo!r`V7Mz~^}uDL%9 z?kpIqC8)w{s%Fs0p5rM`B}7K&(EOaoQ&HN~)PDb$PmyaH0~P2l{f-Y?#`DINls!XV z1ZoBa5++TjBvOK|Woq*5T5frxdexblq_ECV7^zVsMeSizc;H-Tt_=$C-RdZWDiIXO zxSYv&AdsU|hTQ=R%MmB@=2CY@Zzg<(XYt1mDfbTWoepV=-|vxSaQ1Ou z>)Q~$wt1tn0rkU;>^r*qis)$`^2>rmLFzOXi+hbT1Dt~o$&0DC8GGSReNZ3|VE$M% zTrwYE)=<9U3iJ6Ig|*i1XQ;riHq#O$2L?il9fPMy)aisU2sCww`1WyW)Mdx-ayxps zq86gE%AA$?rY3OeFPM7;76%mS7oOc~wWxShX`c^!p}3sO|90whiLjoi)`N=|U8(QI zzz0zb_5)u|aX%4<_d|4i5PycUh1~s1plAr0kC0u6%+IZlsDC&hEcM~l5`Tg7(YsgL zpO4n2D{jjyRO2E~JLAV%=N3<;dCoLax4?b&5-cFJxCz+~Oq!0z7z4g4^HFQte%bxV z6pJBOSyq9g=Uip|s_m+M?A+UI_=_CPm#n2*a(LGXO{gnt5^Z_AtN9wO@3euE@PC<) z+rOBP2=4FZ!~0kBQE>G4&Bv$n-LIyFm&@An!|&zwD!VPK+#Ht03ywqZ))BFYX>^au z%^tM&H@XPe?1tXt{PH)tp<-qoo@KUU=j~S%?uD(XZ&XeX@JZRR?LDF!Xe5l8uj1A? zd3>8@{-Pi5FV>&-53heqSB~OIet|0lmv>&<4@*koBBVk5CUtughhOXjyyzC>1W^ku z>KNG&5~l2LJu>gnjA1S}H+$c`TJ?2AQvlFMWPJ#HUeG&dRD_P+>bZ*%t0V<11eJ;ivh0v$)>GNY#Lql+pfcDeyl>6Z*T*v|s0BzOz_<+~83Lb!eY} z#a{*{F(bApl4ZX$^2~u#b~QVH;|zXN>HQyGEU+zh?M`-H%>a-0<_V4MPwKo;5?%Oc>e$?The(f`M?H=rHvaaJq+X&d9z{h6cQ}R^Tnw+6!FlT+{-@%50&;%G!2OA(&-4YLo z2!8>gt^ddb{C5hyKRX8YeJ#-6*8=|UwHE&hfAYIU?_bU5k80k(_>+YCY?*I#ftLOA zz@vzRouT$m%#i+TW+nkR@ocSqoutW^i+^&iKdFcMvvJ0MwgLU!P~&H&CI5}wiA~tb zNfSUGZn60rP5`z1zsm{myK%9hILHKKa=&<3HG+{BDf#s{#G1{v;rWAN?B8qkjmt$rkZG9{j)V zP7;xHmmG7Uj7Qk@V}DlL`Pb>s{`q?F{i)dXgB1k}Qrvifm8g2~U$0T~!zuXt#j}46 zmg{$;jsFj==%$iA_3Gb<$DjS(c>H&Rjh|SJ80lq}1l*iY1rPuf9^c4{bJwZCF!+7k z*x!LzftjQGm=?DTT0*Tl8oAd{_sPRs`pnqnhoJES2ofug<(_f)(LCC z4b172Jz6KZ=shDYiXK>U1npoG9H3l0f}a?(dhT`#-At(^uG%T zy8S{?5CA9&bbBMOG5sAd{IjPLU7j+=t4lCS_dMqzjqJ3K5lmOkYx5`5NeD6EyLb{1 zN!*&16*x)>VJ*o&!!A$4V*f`s?YjQS)aced=|rKyu3dK&_goL}QvaZ67l#ZwoFH*$ zm&Rqz<{_AZ_RH>IZ`-SQ^p_pTg|h?Gc7 zEN#1f^yqnkwiEBJ#3D=DR6NPtSqGy?Q9|?97YB=7638EPhHr|=%qNL{9FtArt%;Nu zvX;B_>QX#ko}#6chFzaa+^4G!rKu@@RuS9xsJ#5;fa^lxP0gfx31-(G zFR4cyV!mPPK*yw@*S5W#=NRZ}3*7*KPK104P#CliXSTaHK&gqc?t@cORA6t#i zGx4Y0rL!$8?@~ESAw_E>kKG~b;ie~wG$;-WMYC1r=%J~oDEYv7$(Fg(6!Z8zChqU= zg4TZF*&^g=Yi9RH{?r@Z-(hQs2|N>wCCL4q#t8EB0P(LZCD|WaHav%x>&1IhGkGjX zE03x-UzEAaFs**|RRI#A2#Ce6`#E~Vc1OBBYvo!4N0Y>A>vdQVX!6TqFSDscJW;<;+F!Hgc9X+pY|>R7W$VgdFclUfFSKzy^>#dAU?e ztzVujK&2wp45@eo^u`Tp9q$Abdv22B^U31Gv{0UQ-Tj@OGQ-+vrHi6sg%e3(=Z|5e zR7E78Y_ofqedTbv<`qfC&T|SiVK_`m`8~|NQ`e@QaN8hfNSJ^VM0QZ@TDcAWUwhX9 z)a16U@mR2MKx`C&fGEhJ1f)n!Y!n5|K~$tGAgD-hh88Ob2%#9dL`4Winu17;iV%7S zl@=*U5QIoV`{5_Pt@plLj{5FB^WMxkZ{`leWMC)x*WPQ_wZHFM>=pV064tOqv*lS# z&V;a4d;j18H_P^rQ}H80qopr_{78Pv;Fh9jeT9) zm2U14E1eG%4H4zKOWWF6O^s**m_7gn5(+GG0)R7Rh```egbEtTAcYM&bxA)KCh&#^ zxY_ldj+uz*8>D6jm^)dfVCAQEG`1YbmVR_Bd2_E*cbdi#PZ5ss74P>)4A@AYDge&a zgiF{33ZMC!rqkskY&E}z2u1FDIxO`)0$PUb#&`$Nl_QYwicd( zAz-5(YvC?gT7ccfYV2ZfZQ@vWmN<04@5b;gqI*=TJiB@wqIQlqn;aI2){fP?5gv1T zIgrq!mvZJjYJ(T^c+lQE>Z1*FOqeb(ra%I~xSima40%C*_Srvg#n?7&GB#~4r>>H< z0KyY>Sx+?ej zGoHe|EZPF?z*1YHH@ZcB%|-h&UG2)oL643-o2RbvsAFw+Z{23{YKM)vx=-gQe}dUg zsXOjM`sqMh8GMlpBnh1(LC0&@(x>2oUMBo9BV#%j${5QN>p#KrjZ?nyX;AL;!v54% zt0Pv;$edohbm)y}uo0;fg}C}oew#Qq{~~8o16iER;6oz;*`@%hfZ}irK9yiQEP}Qe3L??xwQh(BRx~q*a9hQ1;}N6EFmrC?Rj&$@y!d^RCo%8lRnK+moo)Qc zeGOnO^@1&eF&vvg=rYF)%590Yo_NNT2BckuO6cLh#o)6YLI(URcDA_(T@*cqE^fa< zn0T49Po>P$NK9#ld7<0>rt?i$E6E8S-Vcv5;=m9ftNMKAlEjXh_7>+!A7f<m%=5Nd2{~BkGxkN2?^|240%9Dp_SsJh5-! zS2|>K?wRIgthmwfVKiI{zEGCsfFmFhY!itor*X+c_5h&wX3}C^7-acCA*UR5Ph9W% z!s(d2=?k&?yXv=ddH&3Al{*t7;tBYB7q-)T(kxbN(bsy zJ5$<}peRZ`kbH_SUo5?@CFE_GJASSz&D)bj@qOz5Yn{FJm53<)k%NiJgP6#WeLKC# zDKU>;zNd@Bh)v_@7;=nlG8r)GV~4!q2i<{lyd+4+Idd}Y*UrigRN|hpj^y=J(|~cg zy#BaX^9$!KWC(`@u^U;mLJgMv-8BH@%zQtrzhIlp=>PI~Lz*TVda8J^XEiIwUO{8F$o6ED`?yFew?{(&i$yq-V^XmB?0^;M7TLF^U4N-O)+*;|=3yPXoj<5Sw zn=EQhP9rmf$&4Lj8Jsk37hq|k72$peFO>^b(Dtetz@-n>2z!H$1*x^pJv!=Cf;rSH zB>nzH*dsTSz545DHuA?WKfPc*W_%151w%Gs_JlX4^ITzqbSzy8EdM+pn% z*OeEH&lJABq-y$7Fw9GB_-vQHN~GsDHWjLO1Nfi@K5@v|pr`Uy9)Jm(wF(FnxMXom zgD;HlI|ESOW(Tk~hp`}~Qj+c-l-Om1OCf8oBz^F5NSgb(VtzS!PO#|pWxwf_$4(rN zpU_QMARmj98-Xbp#fEKZ=Q_+9JfJ{xf}5gRo`am;Bcz&|^eB)v9STa*Vfhasc|H|& zx-Z@cTLK~y8nTcEtpF%fKn)13i<)>kA{8#BVd{f+&N3N$rVBq=k6Rd*&9E=y&HgLLJ>>6eXS; zL|ebISAXpun5x@=;|L}-6jqt#$I1m7L2W4W?z!A4OLlH!WImKhHBBC}3w6R^l)k zI)xrB=tNs}kqtO8D;i760Q{@(Z-dX6@t7_1q~1e`yx^EL414%^p(XgXhR!q%eF_o) zX0TSXrCFBjbigvWi%t@A?G0o@d?Zu`J>uS_#?CI?9`TS(5jWI`ZUS1jN0Q{FX74=p zTEpuRPCr>-BZ9c`Y5)BIiv+iVTKr_G#o4NS@fxJ=PFS5q#^lxcru5vH9xVHgv~y z5Wr(;sH@HbDcf}HZlRu_Q;G>ZkF9@ng77aj$<~Pe^bsneXHKJ#n@xL1dY)2 zGM>^R)g`McWBpeJ==R0K9IrPgA^=c0^%*=`9)8WPvP-T7o!oZx$un0n?TDBCyH|z! zqYDY#R&FZQ2=~BSN%{YLbpQ5fb+V=&;biog>kfbLqrXej{T4d+ug<_fyp{PKk>-Er z_HrB#)smqT0DYgTDF(=18mk^tG5|Z%U&cqnMe0c4_rH9z? zWSLa=@TwKOR+JQ^4lh|n?hldTX{93CmjyVUY&JLRFvoMts0I57j-9AC($pmEGC)m0 z#LW*Kd2_bJIqSV+ICoW2C)$Fp%U|+3=IZ^G=m?{i9rjH(%|hFfMi5>JxoO&UFvfit z9l+|9akzel9-#$o2AG^?iW)9&-sIxH&)*8X3ZVA>~R&fWD z!?ADRF((+1d}!RMfIf<52muN_vZNawhr7#h=z<&aC)(fI_EEM^O;?D{=ZZf~9?}@l z-?nk|rbFy>mbOdR#eIiG7DIE4{UcBAiPe_wL>p@K;urv9ATbU10A=R2-FfiBgn6(Z zgw*ZC$&ywCa`-wE;?qu7b!A3`75~h=Gbu*nxTLAg0m2%Z{n3OQoAXBfo=;fv<|1|+ z#+@=lU1Jr%!@xug;WO9n5==As7ifCKv}7Zn=kYKQjY+-1c6^!@ z2Gyv&~+b}b8Ok3Q$&@`)wmshYU zVi-dT{6grcfsTU3ywwT2pB>szo=3TdQ;>$AWA6V#oT4~H>aRymY+rHAwhK8&6e-jg8VA^$q2@*`hXWd<(H{BTugmqV0# z-SeD}mr=c06H2MEgiloKMhq}B<*TVUC=WUZel9+MUg28ZG$6xY6HM6%hHmT4YFmMg zGcAZ7myh9k_YO}xfN>3g@*gCf$_hiP68S-ThS*`egy4csf z4tb()gMGw8f(P%3C&*fhc2!Z=4P&W1y4U>XC66X=zWF+G>#6ywwnhXy4i|5mNRB1P z1?#hcHogGZEbY|pfi&F2VzM!`3v=f3fs{utMHF>Ky))N3Ztkz+r*DhAbJvXTnaXTj z$RT?%ap$aUV~0&Pyx3rPGvdPqbOShNGaINWSN!sJZO9hPX(iD16QM z1|~!SNmm+-gX?T{$Z2Q^?VkHKkZrS#cUdRWWyf^ue5-7{W9O?DPp*mxu*Y#II@D5V zrz~k2Ds_4PDWy&d4yRx&d^x%%K7W+DI5@wb#()_DV|R%}zy%b>(|M~KAoIsokUx;m zN*gZjhej>&@_G`H_e;YEGp~`(K1F8T<`!0!J$x(fU|h}B+jE<$ZSz_vd6W@@`j3~& zIHYZ@#}xpwEn%Uko9IKg!lc9_o1P$ClWrvFdeB zn)Y!=lEHbwPhNOrL@25Inv92M+-^k57dh!DY78+I5l@XpCkhi8$a^>)`8UUU;TErl z1LMBJHnByRRbdY*QIF#M&Aj$HEE?{Yd@XKJx#Uwxmwuun*7xb6raziNAw z5m*)~*l{c>Tb2cOb*mfGjH=EqPy(+UfK%nQTkn@ z$xpq-vgYH37!kU|Ug3h0kOGx`hq!j;l8a`0-oOlEJm4vkp;uFqtmPKgWVv*#cE!aE zpvnau(%O`$7HZh_cnA9Q#E^vY0pqSZiRg4qqwnT`&7lMA}uFg>H5A2@t- z(3%s4|B2O>3}P5Nz})|36;Sd)%LO}PD-OaHY@PHr$PMuLiJh7bY1U;GduUIq3e(n0 zmzCa{*Im_}QzvR0_o+Tr8MAqfTenLEUg%uZp@aPo20z%cV-f7T#Dp)oB2!%};ABLK z0QlcfP|sY7^CYI(nJkBpuTAf>Xxet|gp7UUkX=!+)eE~OxztpXlRcT8jT+AvuW$2lf29ZqLEeMxJre?jaFJM&tua{?zdc4>#N#htAKh96!P zNPddkFcN;I^Xk?VxtV>}R;OGGIi$RXtd~z_DB`51KwbBMUnz%f*8;c!;scY80BuFG zX^E6nTwy+3QM#0QODwfZzGT3?<)zUZ{?eCCAIsP6RC|2k$rVM8x0_2jF|JVa`IS!X z(O;HVH*?d;W8Cm)>6jCPn^ro8r>`SHO$^&ML!ZtPva;29sitU1!lTEgFYGS3@n!EG zA`CPNp|-Tt&#d1*{mIj*VQZ}RuKnF&!Sn|SVuJjuUmN>H+02f%f_(32_8nZBZ8VXM z*VLyYh$Vo9fGuTh(iK*CFc!4`NIWOVbN$riJO@L|S2Gqb9Cz>&V$D%MHS;)L9rGA& z3f=wO-tJUY)SV~iYvcJxRCK5Gb0?5XB0&H0GuM(x8)N|nToIW8G<*q2&ej$5k|dzP zM^P3-C#k2G$lX=AX%s4$$U9Kxl8B3G8Fv4~WFqn!VLDPEe11WU@rue0N2C%#pf#Qt zhh`^mPO?iuB;wE{SY}a%#?tli2-C{4rMdTAC0RT+8O2*D0!)Pwkqigh@RIwNF8e%} zj&)bsv6lMw{Rid4B2v5kRBfHr!EqnQ5Cs{zfCw8}IxqsNfx>b*C$PZOT`jYb3KMUR zJnx;Fb5S|G<|p;j16fDKWDU4w91cX~J(YE_a;LqF)#D%8l7HXxyxeov=ui4LBgQc* z`Y;X2K#!s6X<&g-_n_gL5U8PX3qD$2={Q;Wl7C1XR+Sllc~HebB6$RHOr3fDSyZo{ z&oe)>3-zbdWfbDpSp`c(GpzOCuACOU_|-645MSI#Tbul`8gr0)BJ*h`$AQ=~8Dul9 z^#QFE6}80uK`SD0SN!m2F1_dL_>MbX$v(ixd+eu}q(1i}Ybl|P%qe$vN>X|)cl1C zrQv^Lby_AfDW;TQ3r{(Wu&p2cmvzfX`nBJ=m=nEA&b z`oC_D9|C;-cEJSTUy^^nU_v(AE|g;y!GUn+*T#s7OBbsLcNf1Co%HRw$?SiHAj<;8 zaZa)yY!}Lr6#H+${j23s5O9}qCDYeo7H>Fx0o?CEjePio3qV{6)^v)izWq;D@u(bf*uHSfyMYYM z^4_}j^gCrTUB|Uz=JCDhlcjJG6@ZS~R!r+TPC}FO+c;*@?hwA0nong>Kv>Pd3_XWI zG>(>)eeZsBC( zo(EDU{qk|NsAW#{G;SgdokXF|Z-?`b53><@WNY%*g8bhW3{~KoL>E>hKpd_|8>fsX zf0Tu+?$yxImNsQfr!RK-{njofc<0f2b2G{GR?kPY;!W^-+ttbQrwmT;Vt&aBt06Wm=)l z!OvEF|59}5o1#+xA3MjzpYcb#z;*uned>pfu6Tp~%b@zE^Zt0aF@H2f3al3Xcppp+ zwSI40|Jd85{*13<>f7m~|A(V(@JHjLWHRlKb%AxoJ1~2GGoXL$=l@}n3jX1gSM|dI z@~q114|YIlz;_3AY0%jp&Bhk@FPbmvpAV947gKsSfTEDz-5JYBR-&7TYPU&%H7T+G zgV?!>)6U3WCKE0q`r~!f#&$6=VSTD5v#EL}NRp2xcGbk&fS1d0xtJ!V+Js#~yFM*N zpwBraOfsHvO$C*zq|DXL@fAATMQ_|2wTfD_yv?EJ&fpB>it07!!$c2P7Il1d+3j1* zU#m*#Wvsf+_4BdjwU|PoM5S~1N4z!*!sec_4j8moN97bZ%`t)|bUwmhHb4ED@5R~` z_I}jvy{q!q?~c{H*vFJEc24$30pi>52DJ_Asr1 z(v}%=ZUQUMOjfldZE4Us>`LCeJ7~2>(!ME?&`)SnBNf4s@Iv-N(rg{=e0CFW_lRH& zCZ>OnSa*|{{`88WLTinJJ=3w=k3k`N(?${+_O8oqS*t&2RIO8%=(U2#erO$YlY@4a z`f?AM%AS>PxnG#{nJa13b#Ps?=K1te7XHPGv3`+9n*I#im>Z^DH4_e@WFfsQ)>5{9F75>BWL>;@E`+4(bwaR@KHI zq#+w+-}=lok&hm~j>CV%u;f523$dRMYAn!MDDDb{S-7Qa{E~PB_#nBykO>F&0DCd_ zD*E5@LGKwHCwtEAeZjJGl8~^@XD)m)b4eJl(Y2f+4ALMfgKb10?yuF6)CbkEz%hOa zoLW|!=VrK$a-8gR?h{9sx5ANPpSdV47;xdzb~qz5HQ1fJa*DFD88fpI#?cK0H38=z zjZ=*3`DFLcTxlS_cM5QfjtHT*FC{=bM87;1sCcDjvr7X4R)HX=2zd6#e|oMp(5NidtbC2>4St<RFgAfEw!(F+0X}<696RI3LAin+V-vu?)Qck{j(Q@A0-XBjmL(}i$A&~}`l6Y$=-5k_qzh7aHvw(9yR?Wrvgdq^{t@om%eVH0`93rELiK(M3Vo+)_y0@`zN;cJ50+z Sv9;eh + + + + + + + + + + + + + + + + + + + + + + """ + + def __init__(self, session, iface): + Screen.__init__(self, session) + self.session = session + self.iface = iface + + self["LabelBSSID"] = StaticText(_('Accesspoint:')) + self["LabelESSID"] = StaticText(_('SSID:')) + self["LabelQuality"] = StaticText(_('Link quality:')) + self["LabelSignal"] = StaticText(_('Signal strength:')) + self["LabelBitrate"] = StaticText(_('Bitrate:')) + self["LabelEnc"] = StaticText(_('Encryption:')) + + self["BSSID"] = StaticText() + self["ESSID"] = StaticText() + self["quality"] = StaticText() + self["signal"] = StaticText() + self["bitrate"] = StaticText() + self["enc"] = StaticText() + + self["IFtext"] = StaticText() + self["IF"] = StaticText() + self["Statustext"] = StaticText() + self["statuspic"] = MultiPixmap() + self["statuspic"].hide() + self["key_red"] = StaticText(_("Close")) + + self.resetList() + self.updateStatusbar() + + self["actions"] = NumberActionMap(["WizardActions", "InputActions", "EPGSelectActions", "ShortcutActions"], + { + "ok": self.exit, + "back": self.exit, + "red": self.exit, + }, -1) + self.timer = eTimer() + self.timer.timeout.get().append(self.resetList) + self.onShown.append(lambda: self.timer.start(8000)) + self.onLayoutFinish.append(self.layoutFinished) + self.onClose.append(self.cleanup) + + def cleanup(self): + iStatus.stopWlanConsole() + + def layoutFinished(self): + self.setTitle(_("Wireless network state")) + + def resetList(self): + iStatus.getDataForInterface(self.iface,self.getInfoCB) + + def getInfoCB(self,data,status): + if data is not None: + if data is True: + if status is not None: + if status[self.iface]["essid"] == "off": + essid = _("No Connection") + else: + essid = status[self.iface]["essid"] + if status[self.iface]["accesspoint"] == "Not-Associated": + accesspoint = _("Not associated") + essid = _("No Connection") + else: + accesspoint = status[self.iface]["accesspoint"] + if self.has_key("BSSID"): + self["BSSID"].setText(accesspoint) + if self.has_key("ESSID"): + self["ESSID"].setText(essid) + + quality = status[self.iface]["quality"] + if self.has_key("quality"): + self["quality"].setText(quality) + + if status[self.iface]["bitrate"] == '0': + bitrate = _("Unsupported") + else: + bitrate = str(status[self.iface]["bitrate"]) + " Mb/s" + if self.has_key("bitrate"): + self["bitrate"].setText(bitrate) + + signal = status[self.iface]["signal"] + if self.has_key("signal"): + self["signal"].setText(signal) + + if status[self.iface]["encryption"] == "off": + if accesspoint == "Not-Associated": + encryption = _("Disabled") + else: + encryption = _("Unsupported") + else: + encryption = _("Enabled") + if self.has_key("enc"): + self["enc"].setText(encryption) + self.updateStatusLink(status) + + def exit(self): + self.timer.stop() + self.close(True) + + def updateStatusbar(self): + wait_txt = _("Please wait...") + self["BSSID"].setText(wait_txt) + self["ESSID"].setText(wait_txt) + self["quality"].setText(wait_txt) + self["signal"].setText(wait_txt) + self["bitrate"].setText(wait_txt) + self["enc"].setText(wait_txt) + self["IFtext"].setText(_("Network:")) + self["IF"].setText(iNetwork.getFriendlyAdapterName(self.iface)) + self["Statustext"].setText(_("Link:")) + + def updateStatusLink(self,status): + if status is not None: + if status[self.iface]["essid"] == "off" or status[self.iface]["accesspoint"] == "Not-Associated" or status[self.iface]["accesspoint"] == False: + self["statuspic"].setPixmapNum(1) + else: + self["statuspic"].setPixmapNum(0) + self["statuspic"].show() + + +class WlanScan(Screen): + skin = """ + + + + + + + + + + {"template": [ + MultiContentEntryText(pos = (0, 0), size = (550, 30), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the essid + MultiContentEntryText(pos = (0, 30), size = (175, 20), font=1, flags = RT_HALIGN_LEFT, text = 5), # index 5 is the interface + MultiContentEntryText(pos = (175, 30), size = (175, 20), font=1, flags = RT_HALIGN_LEFT, text = 4), # index 0 is the encryption + MultiContentEntryText(pos = (350, 0), size = (200, 20), font=1, flags = RT_HALIGN_LEFT, text = 2), # index 0 is the signal + MultiContentEntryText(pos = (350, 30), size = (200, 20), font=1, flags = RT_HALIGN_LEFT, text = 3), # index 0 is the maxrate + MultiContentEntryPixmapAlphaTest(pos = (0, 52), size = (550, 2), png = 6), # index 6 is the div pixmap + ], + "fonts": [gFont("Regular", 28),gFont("Regular", 18)], + "itemHeight": 54 + } + + + + + """ + + def __init__(self, session, iface): + Screen.__init__(self, session) + self.session = session + self.iface = iface + self.skin_path = plugin_path + self.oldInterfaceState = iNetwork.getAdapterAttribute(self.iface, "up") + self.APList = None + self.newAPList = None + self.WlanList = None + self.cleanList = None + self.oldlist = {} + self.listLength = None + self.divpng = LoadPixmap(path=resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/div-h.png")) + + self.rescanTimer = eTimer() + self.rescanTimer.callback.append(self.rescanTimerFired) + + self["info"] = StaticText() + + self.list = [] + self["list"] = List(self.list) + + self["key_red"] = StaticText(_("Close")) + self["key_green"] = StaticText(_("Connect")) + self["key_yellow"] = StaticText() + + self["actions"] = NumberActionMap(["WizardActions", "InputActions", "EPGSelectActions"], + { + "ok": self.select, + "back": self.cancel, + }, -1) + + self["shortcuts"] = ActionMap(["ShortcutActions"], + { + "red": self.cancel, + "green": self.select, + }) + iWlan.setInterface(self.iface) + self.w = iWlan.getInterface() + self.onLayoutFinish.append(self.layoutFinished) + self.getAccessPoints(refresh = False) + + def layoutFinished(self): + self.setTitle(_("Select a wireless network")) + + def select(self): + cur = self["list"].getCurrent() + if cur is not None: + iWlan.stopGetNetworkList() + self.rescanTimer.stop() + del self.rescanTimer + if cur[0] is not None: + self.close(cur[0]) + else: + self.close(None) + else: + iWlan.stopGetNetworkList() + self.rescanTimer.stop() + del self.rescanTimer + self.close(None) + + def cancel(self): + iWlan.stopGetNetworkList() + self.rescanTimer.stop() + del self.rescanTimer + self.close(None) + + def rescanTimerFired(self): + self.rescanTimer.stop() + self.updateAPList() + + def buildEntryComponent(self, essid, bssid, encrypted, iface, maxrate, signal): + encryption = encrypted and _("Yes") or _("No") + return((essid, bssid, _("Signal: ") + str(signal), _("Max. bitrate: ") + str(maxrate), _("Encrypted: ") + encryption, _("Interface: ") + str(iface), self.divpng)) + + def updateAPList(self): + newList = [] + newList = self.getAccessPoints(refresh = True) + self.newAPList = [] + tmpList = [] + newListIndex = None + currentListEntry = None + currentListIndex = None + + for ap in self.oldlist.keys(): + data = self.oldlist[ap]['data'] + if data is not None: + tmpList.append(data) + + if len(tmpList): + for entry in tmpList: + self.newAPList.append(self.buildEntryComponent( entry[0], entry[1], entry[2], entry[3], entry[4], entry[5] )) + + currentListEntry = self["list"].getCurrent() + if currentListEntry is not None: + idx = 0 + for entry in self.newAPList: + if entry[0] == currentListEntry[0]: + newListIndex = idx + idx +=1 + self['list'].setList(self.newAPList) + if newListIndex is not None: + self["list"].setIndex(newListIndex) + self["list"].updateList(self.newAPList) + self.listLength = len(self.newAPList) + self.buildWlanList() + self.setInfo() + + def getAccessPoints(self, refresh = False): + self.APList = [] + self.cleanList = [] + aps = iWlan.getNetworkList() + if aps is not None: + print "[WirelessLan.py] got Accespoints!" + tmpList = [] + compList = [] + for ap in aps: + a = aps[ap] + if a['active']: + tmpList.append( (a['essid'], a['bssid']) ) + compList.append( (a['essid'], a['bssid'], a['encrypted'], a['iface'], a['maxrate'], a['signal']) ) + + for entry in tmpList: + if entry[0] == "": + for compentry in compList: + if compentry[1] == entry[1]: + compList.remove(compentry) + for entry in compList: + self.cleanList.append( ( entry[0], entry[1], entry[2], entry[3], entry[4], entry[5] ) ) + if not self.oldlist.has_key(entry[0]): + self.oldlist[entry[0]] = { 'data': entry } + else: + self.oldlist[entry[0]]['data'] = entry + + for entry in self.cleanList: + self.APList.append(self.buildEntryComponent( entry[0], entry[1], entry[2], entry[3], entry[4], entry[5] )) + + if refresh is False: + self['list'].setList(self.APList) + self.listLength = len(self.APList) + self.setInfo() + self.rescanTimer.start(5000) + return self.cleanList + + def setInfo(self): + length = self.getLength() + if length == 0: + self["info"].setText(_("No wireless networks found! Searching...")) + else: + self["info"].setText(ngettext("%d wireless network found!", "%d wireless networks found!", length) % length) + + def buildWlanList(self): + self.WlanList = [] + for entry in self['list'].list: + self.WlanList.append( (entry[0], entry[0]) ) + + def getLength(self): + return self.listLength + + def getWlanList(self): + if self.WlanList is None: + self.buildWlanList() + return self.WlanList + + +def WlanStatusScreenMain(session, iface): + session.open(WlanStatus, iface) + +def callFunction(iface): + iWlan.setInterface(iface) + i = iWlan.getWirelessInterfaces() + if iface in i or iNetwork.isWirelessInterface(iface): + return WlanStatusScreenMain + return None + +def configStrings(iface): + driver = iNetwork.detectWlanModule(iface) + ret = "" + if driver == 'madwifi' and config.plugins.wlan.hiddenessid.value: + ret += "\tpre-up iwconfig " + iface + " essid \"" + re_escape(config.plugins.wlan.essid.value) + "\" || true\n" + ret += "\tpre-up wpa_supplicant -i" + iface + " -c" + getWlanConfigName(iface) + " -B -dd -D" + driver + " || true\n" + ret += "\tpre-down wpa_cli -i" + iface + " terminate || true\n" + return ret + +def Plugins(**kwargs): + return PluginDescriptor(name=_("Wireless LAN"), description=_("Connect to a wireless network"), where = PluginDescriptor.WHERE_NETWORKSETUP, needsRestart = False, fnc={"ifaceSupported": callFunction, "configStrings": configStrings, "WlanPluginEntry": lambda x: _("Wireless network configuration...")}) diff --git a/lib/python/Plugins/SystemPlugins/__init__.py b/lib/python/Plugins/SystemPlugins/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/__init__.py b/lib/python/Plugins/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/newplugin.py b/lib/python/Plugins/newplugin.py new file mode 100644 index 0000000..4a7d978 --- /dev/null +++ b/lib/python/Plugins/newplugin.py @@ -0,0 +1,146 @@ +#!/usr/bin/python + +import os + +os.system("clear") +internalname = raw_input("Internal plugin name (no whitespaces, plugin directory): ") +name = raw_input("Visible plugin name: ") +print + +os.system("clear") +dirlist = [] +count = 0 +print "Plugin categories:" +for dir in os.listdir("."): + if os.path.isdir(dir): + count += 1 + dirlist.append(dir) + print count, dir + +category = raw_input("Select plugin category: ") +category = dirlist[int(category) - 1] + +def add_where_extensionsmenu(name, fnc): + description = raw_input("Plugin description: ") + return 'PluginDescriptor(name = "%s", description = _("%s"), where = PluginDescriptor.WHERE_EXTENSIONSMENU, fnc = %s)' % (name, description, fnc) + +def add_where_pluginmenu(name, fnc): + description = raw_input("Plugin description: ") + icon = raw_input("Icon (default: 'plugin.png': ") + if icon == "": + icon = "plugin.png" + return 'PluginDescriptor(name = "%s", description = _("%s"), icon = "%s", where = PluginDescriptor.WHERE_PLUGINMENU, fnc = %s)' % (name, description, icon, fnc) + +wherelist = [] +wherelist.append(("WHERE_EXTENSIONSMENU", add_where_extensionsmenu)) +wherelist.append(("WHERE_PLUGINMENU", add_where_pluginmenu)) + +targetlist = [] + +stop = False + +while not stop: + os.system("clear") + print "selected targets:" + for where in targetlist: + print where[0] + + print + print "available targets:" + count = 0 + for where in wherelist: + count += 1 + print count, where[0] + print "x break" + + target = raw_input("Select WHERE-target: ") + if target == "x": + stop = True + else: + if wherelist[int(target) - 1] not in targetlist: + targetlist.append(wherelist[int(target) - 1]) + else: + targetlist.remove(wherelist[int(target) - 1]) + + +pluginpath = category + "/" + internalname +os.mkdir(pluginpath) + +makefile = open(category + "/Makefile.am", "r") +lines = makefile.readlines() +lines = ''.join(lines) +lines = lines.strip() +lines += " " + internalname +makefile.close() + +makefile = open(category + "/Makefile.am", "w") +makefile.write(lines) +makefile.close() + +lines = [] +print "open" +configure = open("../../../configure.ac", "r") +while True: + line = configure.readline() + if not line: + break + lines.append(line) + if line.strip() == "lib/python/Plugins/" + category + "/Makefile": + lines.append("lib/python/Plugins/" + pluginpath + "/Makefile\n") +configure.close() +print "close" + +configure = open("../../../configure.ac", "w") +configure.writelines(lines) +configure.close() + +file = open(pluginpath + "/plugin.py", "w") + +importlist = [] +for where in targetlist: + importlist.append(where[0]) + +file.write("""from Screens.Screen import Screen +from Plugins.Plugin import PluginDescriptor +""") + +mainlist = [] +for count in range(len(targetlist)): + if count == 0: + mainlist.append("main") + else: + mainlist.append("main" + str(count)) + +for main in mainlist: + file.write(""" +def %s(session, **kwargs): + pass +""" % main) + +descriptorlist = [] +for count in range(len(targetlist)): + os.system("clear") + where = targetlist[count] + print "Options for target %s" % where[0] + descriptorlist.append(where[1](name, mainlist[count])) + +if len(descriptorlist) == 1: + descriptorlist = descriptorlist[0] +else: + descriptorlist = "[" + ', '.join(descriptorlist) + "]" + +file.write(""" +def Plugins(**kwargs): + return %s + """ % descriptorlist) + +file.close() + +makefile = open(pluginpath + "/Makefile.am", "w") +makefile.write("""installdir = $(pkglibdir)/python/Plugins/%s/%s + +install_PYTHON = \\ + __init__.py \\ + plugin.py +""" % (category, internalname)) +makefile.close() diff --git a/lib/python/Screens/About.py b/lib/python/Screens/About.py new file mode 100644 index 0000000..caca9d8 --- /dev/null +++ b/lib/python/Screens/About.py @@ -0,0 +1,192 @@ +from Screen import Screen +from Components.ActionMap import ActionMap +from Components.Sources.StaticText import StaticText +from Components.Harddisk import harddiskmanager +from Components.NimManager import nimmanager +from Components.About import about +from Components.ScrollLabel import ScrollLabel +from Components.Button import Button + +from Tools.StbHardware import getFPVersion +from enigma import eTimer + +class About(Screen): + def __init__(self, session): + Screen.__init__(self, session) + + + AboutText = _("Hardware: ") + about.getHardwareTypeString() + "\n" + AboutText += _("Image: ") + about.getImageTypeString() + "\n" + AboutText += _("Kernel version: ") + about.getKernelVersionString() + "\n" + + EnigmaVersion = "Enigma: " + about.getEnigmaVersionString() + self["EnigmaVersion"] = StaticText(EnigmaVersion) + AboutText += EnigmaVersion + "\n" + + ImageVersion = _("Last upgrade: ") + about.getImageVersionString() + self["ImageVersion"] = StaticText(ImageVersion) + AboutText += ImageVersion + "\n" + + fp_version = getFPVersion() + if fp_version is None: + fp_version = "" + else: + fp_version = _("Frontprocessor version: %d") % fp_version + AboutText += fp_version + "\n" + + self["FPVersion"] = StaticText(fp_version) + + self["TunerHeader"] = StaticText(_("Detected NIMs:")) + AboutText += "\n" + _("Detected NIMs:") + "\n" + + nims = nimmanager.nimList() + for count in range(len(nims)): + if count < 4: + self["Tuner" + str(count)] = StaticText(nims[count]) + else: + self["Tuner" + str(count)] = StaticText("") + AboutText += nims[count] + "\n" + + self["HDDHeader"] = StaticText(_("Detected HDD:")) + AboutText += "\n" + _("Detected HDD:") + "\n" + + hddlist = harddiskmanager.HDDList() + hddinfo = "" + if hddlist: + for count in range(len(hddlist)): + if hddinfo: + hddinfo += "\n" + hdd = hddlist[count][1] + if int(hdd.free()) > 1024: + hddinfo += "%s\n(%s, %d GB %s)" % (hdd.model(), hdd.capacity(), hdd.free()/1024, _("free")) + else: + hddinfo += "%s\n(%s, %d MB %s)" % (hdd.model(), hdd.capacity(), hdd.free(), _("free")) + else: + hddinfo = _("none") + self["hddA"] = StaticText(hddinfo) + AboutText += hddinfo + self["AboutScrollLabel"] = ScrollLabel(AboutText) + self["key_green"] = Button(_("Translations")) + self["key_red"] = Button(_("Latest Commits")) + + self["actions"] = ActionMap(["ColorActions", "SetupActions", "DirectionActions"], + { + "cancel": self.close, + "ok": self.close, + "red": self.showCommits, + "green": self.showTranslationInfo, + "up": self["AboutScrollLabel"].pageUp, + "down": self["AboutScrollLabel"].pageDown + }) + + def showTranslationInfo(self): + self.session.open(TranslationInfo) + + def showCommits(self): + self.session.open(CommitInfo) + +class TranslationInfo(Screen): + def __init__(self, session): + Screen.__init__(self, session) + # don't remove the string out of the _(), or it can't be "translated" anymore. + + # TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) + info = _("TRANSLATOR_INFO") + + if info == "TRANSLATOR_INFO": + info = "(N/A)" + + infolines = _("").split("\n") + infomap = {} + for x in infolines: + l = x.split(': ') + if len(l) != 2: + continue + (type, value) = l + infomap[type] = value + print infomap + + self["TranslationInfo"] = StaticText(info) + + translator_name = infomap.get("Language-Team", "none") + if translator_name == "none": + translator_name = infomap.get("Last-Translator", "") + + self["TranslatorName"] = StaticText(translator_name) + + self["actions"] = ActionMap(["SetupActions"], + { + "cancel": self.close, + "ok": self.close, + }) + +class CommitInfo(Screen): + def __init__(self, session): + Screen.__init__(self, session) + self.skinName = ["CommitInfo", "About"] + self["AboutScrollLabel"] = ScrollLabel(_("Please wait")) + + self["actions"] = ActionMap(["SetupActions", "DirectionActions"], + { + "cancel": self.close, + "ok": self.close, + "up": self["AboutScrollLabel"].pageUp, + "down": self["AboutScrollLabel"].pageDown, + "left": self.left, + "right": self.right + }) + + self.project = 0 + self.projects = [ + ("enigma2", "Enigma2"), + ("openpli-oe-core", "Openpli Oe Core"), + ("enigma2-plugins", "Enigma2 Plugins"), + ("aio-grab", "Aio Grab"), + ("gst-plugin-dvbmediasink", "Gst Plugin Dvbmediasink"), + ("openembedded", "Openembedded"), + ("plugin-xmltvimport", "Plugin Xmltvimport"), + ("plugins-enigma2", "Plugins Enigma2"), + ("skin-magic", "Skin Magic"), + ("tuxtxt", "Tuxtxt") + ] + self.cachedProjects = {} + self.Timer = eTimer() + self.Timer.callback.append(self.readCommitLogs) + self.Timer.start(50, True) + + def readCommitLogs(self): + url = 'http://sourceforge.net/p/openpli/%s/feed' % self.projects[self.project][0] + commitlog = "" + from urllib2 import urlopen + try: + commitlog += 80 * '-' + '\n' + commitlog += url.split('/')[-2] + '\n' + commitlog += 80 * '-' + '\n' + for x in urlopen(url, timeout=5).read().split('')[2:]: + for y in x.split("><"): + if '</title' in y: + title = y[:-7] + if '</dc:creator' in y: + creator = y.split('>')[1].split('<')[0] + if '</pubDate' in y: + date = y.split('>')[1].split('<')[0][:-6] + commitlog += date + ' ' + creator + '\n' + title + 2 * '\n' + self.cachedProjects[self.projects[self.project][1]] = commitlog + except: + commitlog = _("Currently the commit log cannot be retrieved - please try later again") + self["AboutScrollLabel"].setText(commitlog) + + def updateCommitLogs(self): + if self.cachedProjects.has_key(self.projects[self.project][1]): + self["AboutScrollLabel"].setText(self.cachedProjects[self.projects[self.project][1]]) + else: + self["AboutScrollLabel"].setText(_("Please wait")) + self.Timer.start(50, True) + + def left(self): + self.project = self.project == 0 and len(self.projects) - 1 or self.project - 1 + self.updateCommitLogs() + + def right(self): + self.project = self.project != len(self.projects) - 1 and self.project + 1 or 0 + self.updateCommitLogs() \ No newline at end of file diff --git a/lib/python/Screens/AudioSelection.py b/lib/python/Screens/AudioSelection.py new file mode 100644 index 0000000..35d201e --- /dev/null +++ b/lib/python/Screens/AudioSelection.py @@ -0,0 +1,473 @@ +from Screen import Screen +from Screens.Setup import getConfigMenuItem, Setup +from Components.ServiceEventTracker import ServiceEventTracker +from Components.ActionMap import NumberActionMap +from Components.ConfigList import ConfigListScreen +from Components.ChoiceList import ChoiceList, ChoiceEntryComponent +from Components.config import config, ConfigSubsection, getConfigListEntry, ConfigNothing, ConfigSelection, ConfigOnOff +from Components.Label import Label +from Components.MultiContent import MultiContentEntryText +from Components.Sources.List import List +from Components.Sources.Boolean import Boolean +from Components.SystemInfo import SystemInfo +from Components.VolumeControl import VolumeControl + +from enigma import iPlayableService, eTimer + +from Tools.ISO639 import LanguageCodes +from Tools.BoundFunction import boundFunction +FOCUS_CONFIG, FOCUS_STREAMS = range(2) +[PAGE_AUDIO, PAGE_SUBTITLES] = ["audio", "subtitles"] + +class AudioSelection(Screen, ConfigListScreen): + def __init__(self, session, infobar=None, page=PAGE_AUDIO): + Screen.__init__(self, session) + + self["streams"] = List([], enableWrapAround=True) + self["key_red"] = Boolean(False) + self["key_green"] = Boolean(False) + self["key_yellow"] = Boolean(True) + self["key_blue"] = Boolean(False) + + ConfigListScreen.__init__(self, []) + self.infobar = infobar or self.session.infobar + + self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + { + iPlayableService.evUpdatedInfo: self.__updatedInfo + }) + self.cached_subtitle_checked = False + self.__selected_subtitle = None + + self["actions"] = NumberActionMap(["AudioSelectionActions", "SetupActions", "DirectionActions", "MenuActions"], + { + "red": self.keyRed, + "green": self.keyGreen, + "yellow": self.keyYellow, + "blue": self.keyBlue, + "ok": self.keyOk, + "cancel": self.cancel, + "up": self.keyUp, + "down": self.keyDown, + "volumeUp": self.volumeUp, + "volumeDown": self.volumeDown, + "volumeMute": self.volumeMute, + "menu": self.openAutoLanguageSetup, + "1": self.keyNumberGlobal, + "2": self.keyNumberGlobal, + "3": self.keyNumberGlobal, + "4": self.keyNumberGlobal, + "5": self.keyNumberGlobal, + "6": self.keyNumberGlobal, + "7": self.keyNumberGlobal, + "8": self.keyNumberGlobal, + "9": self.keyNumberGlobal, + }, -2) + + self.settings = ConfigSubsection() + choicelist = [(PAGE_AUDIO,""), (PAGE_SUBTITLES,"")] + self.settings.menupage = ConfigSelection(choices = choicelist, default=page) + self.onLayoutFinish.append(self.__layoutFinished) + + def __layoutFinished(self): + self["config"].instance.setSelectionEnable(False) + self.focus = FOCUS_STREAMS + self.settings.menupage.addNotifier(self.fillList) + + def fillList(self, arg=None): + streams = [] + conflist = [] + selectedidx = 0 + + self["key_blue"].setBoolean(False) + + service = self.session.nav.getCurrentService() + self.audioTracks = audio = service and service.audioTracks() + n = audio and audio.getNumberOfTracks() or 0 + + subtitlelist = self.getSubtitleList() + + if self.settings.menupage.getValue() == PAGE_AUDIO: + self.setTitle(_("Select audio track")) + service = self.session.nav.getCurrentService() + self.audioTracks = audio = service and service.audioTracks() + n = audio and audio.getNumberOfTracks() or 0 + if SystemInfo["CanDownmixAC3"]: + self.settings.downmix = ConfigOnOff(default=config.av.downmix_ac3.value) + self.settings.downmix.addNotifier(self.changeAC3Downmix, initial_call = False) + conflist.append(getConfigListEntry(_("AC3/DTS downmix"), self.settings.downmix)) + self["key_red"].setBoolean(True) + + if n > 0: + self.audioChannel = service.audioChannel() + if self.audioChannel: + choicelist = [("0",_("left")), ("1",_("stereo")), ("2", _("right"))] + self.settings.channelmode = ConfigSelection(choices = choicelist, default = str(self.audioChannel.getCurrentChannel())) + self.settings.channelmode.addNotifier(self.changeMode, initial_call = False) + conflist.append(getConfigListEntry(_("Channel"), self.settings.channelmode)) + self["key_green"].setBoolean(True) + else: + conflist.append(('',)) + self["key_green"].setBoolean(False) + selectedAudio = self.audioTracks.getCurrentTrack() + for x in range(n): + number = str(x + 1) + i = audio.getTrackInfo(x) + languages = i.getLanguage().split('/') + description = i.getDescription() or "" + selected = "" + language = "" + + if selectedAudio == x: + selected = "X" + selectedidx = x + + cnt = 0 + for lang in languages: + if cnt: + language += ' / ' + if LanguageCodes.has_key(lang): + language += LanguageCodes[lang][0] + elif lang == "und": + "" + else: + language += lang + cnt += 1 + + streams.append((x, "", number, description, language, selected)) + + else: + streams = [] + conflist.append(('',)) + self["key_green"].setBoolean(False) + + if subtitlelist: + self["key_yellow"].setBoolean(True) + conflist.append(getConfigListEntry(_("To subtitle selection"), self.settings.menupage)) + else: + self["key_yellow"].setBoolean(False) + conflist.append(('',)) + + from Components.PluginComponent import plugins + from Plugins.Plugin import PluginDescriptor + + if hasattr(self.infobar, "runPlugin"): + class PluginCaller: + def __init__(self, fnc, *args): + self.fnc = fnc + self.args = args + def __call__(self, *args, **kwargs): + self.fnc(*self.args) + + Plugins = [ (p.name, PluginCaller(self.infobar.runPlugin, p)) for p in plugins.getPlugins(where = PluginDescriptor.WHERE_AUDIOMENU) ] + + if len(Plugins): + self["key_blue"].setBoolean(True) + conflist.append(getConfigListEntry(Plugins[0][0], ConfigNothing())) + self.plugincallfunc = Plugins[0][1] + if len(Plugins) > 1: + print "plugin(s) installed but not displayed in the dialog box:", Plugins[1:] + + elif self.settings.menupage.getValue() == PAGE_SUBTITLES: + + self.setTitle(_("Subtitle selection")) + conflist.append(('',)) + conflist.append(('',)) + self["key_red"].setBoolean(False) + self["key_green"].setBoolean(False) + + idx = 0 + + for x in subtitlelist: + number = str(x[1]) + description = "?" + language = "" + selected = "" + + if self.selectedSubtitle and x[:4] == self.selectedSubtitle[:4]: + selected = "X" + selectedidx = idx + + try: + if x[4] != "und": + if LanguageCodes.has_key(x[4]): + language = LanguageCodes[x[4]][0] + else: + language = x[4] + except: + language = "" + + if x[0] == 0: + description = "DVB" + number = "%x" % (x[1]) + + elif x[0] == 1: + description = "teletext" + number = "%x%02x" %(x[3] and x[3] or 8, x[2]) + + elif x[0] == 2: + types = ("unknown", "embedded", "SSA file", "ASS file", + "SRT file", "VOB file", "PGS file") + try: + description = types[x[2]] + except: + description = _("unknown") + ": %s" % x[2] + number = str(int(number) + 1) + + streams.append((x, "", number, description, language, selected)) + idx += 1 + + conflist.append(getConfigListEntry(_("To audio selection"), self.settings.menupage)) + + if self.infobar.selected_subtitle and self.infobar.selected_subtitle != (0,0,0,0) and not ".DVDPlayer'>" in `self.infobar`: + self["key_blue"].setBoolean(True) + conflist.append(getConfigListEntry(_("Subtitle Quickmenu"), ConfigNothing())) + + self["config"].list = conflist + self["config"].l.setList(conflist) + + self["streams"].list = streams + self["streams"].setIndex(selectedidx) + + def __updatedInfo(self): + self.fillList() + + def getSubtitleList(self): + service = self.session.nav.getCurrentService() + subtitle = service and service.subtitle() + subtitlelist = subtitle and subtitle.getSubtitleList() + self.selectedSubtitle = None + if self.subtitlesEnabled(): + self.selectedSubtitle = self.infobar.selected_subtitle + if self.selectedSubtitle and self.selectedSubtitle[:4] == (0,0,0,0): + self.selectedSubtitle = None + elif self.selectedSubtitle and not self.selectedSubtitle[:4] in (x[:4] for x in subtitlelist): + subtitlelist.append(self.selectedSubtitle) + return subtitlelist + + def subtitlesEnabled(self): + try: + return self.infobar.subtitle_window.shown + except: + return False + + def enableSubtitle(self, subtitle): + if self.infobar.selected_subtitle != subtitle: + self.infobar.enableSubtitle(subtitle) + + def changeAC3Downmix(self, downmix): + if downmix.getValue() == True: + config.av.downmix_ac3.value = True + else: + config.av.downmix_ac3.value = False + config.av.downmix_ac3.save() + + def changeMode(self, mode): + if mode is not None and self.audioChannel: + self.audioChannel.selectChannel(int(mode.getValue())) + + def changeAudio(self, audio): + track = int(audio) + if isinstance(track, int): + if self.session.nav.getCurrentService().audioTracks().getNumberOfTracks() > track: + self.audioTracks.selectTrack(track) + + def keyLeft(self): + if self.focus == FOCUS_CONFIG: + ConfigListScreen.keyLeft(self) + elif self.focus == FOCUS_STREAMS: + self["streams"].setIndex(0) + + def keyRight(self, config = False): + if config or self.focus == FOCUS_CONFIG: + if self["config"].getCurrentIndex() < 3: + ConfigListScreen.keyRight(self) + elif self["config"].getCurrentIndex() == 3: + if self.settings.menupage.getValue() == PAGE_AUDIO and hasattr(self, "plugincallfunc"): + self.plugincallfunc() + elif self.settings.menupage.getValue() == PAGE_SUBTITLES and self.infobar.selected_subtitle and self.infobar.selected_subtitle != (0,0,0,0): + self.session.open(QuickSubtitlesConfigMenu, self.infobar) + if self.focus == FOCUS_STREAMS and self["streams"].count() and config == False: + self["streams"].setIndex(self["streams"].count()-1) + + def keyRed(self): + if self["key_red"].getBoolean(): + self.colorkey(0) + else: + return 0 + + def keyGreen(self): + if self["key_green"].getBoolean(): + self.colorkey(1) + else: + return 0 + + def keyYellow(self): + if self["key_yellow"].getBoolean(): + self.colorkey(2) + else: + return 0 + + def keyBlue(self): + if self["key_blue"].getBoolean(): + self.colorkey(3) + else: + return 0 + + def colorkey(self, idx): + self["config"].setCurrentIndex(idx) + self.keyRight(True) + + def keyUp(self): + if self.focus == FOCUS_CONFIG: + self["config"].instance.moveSelection(self["config"].instance.moveUp) + elif self.focus == FOCUS_STREAMS: + if self["streams"].getIndex() == 0: + self["config"].instance.setSelectionEnable(True) + self["streams"].style = "notselected" + self["config"].setCurrentIndex(len(self["config"].getList())-1) + self.focus = FOCUS_CONFIG + else: + self["streams"].selectPrevious() + + def keyDown(self): + if self.focus == FOCUS_CONFIG: + if self["config"].getCurrentIndex() < len(self["config"].getList())-1: + self["config"].instance.moveSelection(self["config"].instance.moveDown) + else: + self["config"].instance.setSelectionEnable(False) + self["streams"].style = "default" + self.focus = FOCUS_STREAMS + elif self.focus == FOCUS_STREAMS: + self["streams"].selectNext() + + def volumeUp(self): + VolumeControl.instance and VolumeControl.instance.volUp() + + def volumeDown(self): + VolumeControl.instance and VolumeControl.instance.volDown() + + def volumeMute(self): + VolumeControl.instance and VolumeControl.instance.volMute() + + def keyNumberGlobal(self, number): + if number <= len(self["streams"].list): + self["streams"].setIndex(number-1) + self.keyOk() + + def keyOk(self): + if self.focus == FOCUS_STREAMS and self["streams"].list: + cur = self["streams"].getCurrent() + if self.settings.menupage.getValue() == PAGE_AUDIO and cur[0] is not None: + self.changeAudio(cur[0]) + self.__updatedInfo() + if self.settings.menupage.getValue() == PAGE_SUBTITLES and cur[0] is not None: + if self.infobar.selected_subtitle and self.infobar.selected_subtitle[:4] == cur[0][:4]: + self.enableSubtitle(None) + selectedidx = self["streams"].getIndex() + self.__updatedInfo() + self["streams"].setIndex(selectedidx) + else: + self.enableSubtitle(cur[0][:5]) + self.__updatedInfo() + self.close(0) + elif self.focus == FOCUS_CONFIG: + self.keyRight() + + def openAutoLanguageSetup(self): + self.session.open(Setup, "autolanguagesetup") + + def cancel(self): + self.close(0) + +class SubtitleSelection(AudioSelection): + def __init__(self, session, infobar=None): + AudioSelection.__init__(self, session, infobar, page=PAGE_SUBTITLES) + self.skinName = ["AudioSelection"] + +class QuickSubtitlesConfigMenu(ConfigListScreen, Screen): + skin = """ + <screen position="50,50" size="480,255" title="Subtitle settings" backgroundColor="#7f000000" flags="wfNoBorder"> + <widget name="config" position="5,5" size="470,225" font="Regular;18" zPosition="1" transparent="1" selectionPixmap="PLi-HD/buttons/sel.png" valign="center" /> + <widget name="videofps" position="5,230" size="470,20" backgroundColor="secondBG" transparent="1" zPosition="1" font="Regular;16" valign="center" halign="left" foregroundColor="blue"/> + </screen>""" + + def __init__(self, session, infobar): + Screen.__init__(self, session) + self.skin = QuickSubtitlesConfigMenu.skin + self.infobar = infobar or self.session.infobar + + self.wait = eTimer() + self.wait.timeout.get().append(self.resyncSubtitles) + + self["videofps"] = Label("") + + sub = self.infobar.selected_subtitle + if sub[0] == 0: # dvb + menu = [ + getConfigMenuItem("config.subtitles.dvb_subtitles_yellow"), + getConfigMenuItem("config.subtitles.dvb_subtitles_centered"), + getConfigMenuItem("config.subtitles.dvb_subtitles_backtrans"), + getConfigMenuItem("config.subtitles.dvb_subtitles_original_position"), + getConfigMenuItem("config.subtitles.subtitle_position"), + getConfigMenuItem("config.subtitles.subtitle_bad_timing_delay"), + getConfigMenuItem("config.subtitles.subtitle_noPTSrecordingdelay"), + ] + elif sub[0] == 1: # teletext + menu = [ + getConfigMenuItem("config.subtitles.ttx_subtitle_colors"), + getConfigMenuItem("config.subtitles.ttx_subtitle_original_position"), + getConfigMenuItem("config.subtitles.subtitle_fontsize"), + getConfigMenuItem("config.subtitles.subtitle_position"), + getConfigMenuItem("config.subtitles.subtitle_rewrap"), + getConfigMenuItem("config.subtitles.subtitle_borderwidth"), + getConfigMenuItem("config.subtitles.subtitle_alignment"), + getConfigMenuItem("config.subtitles.subtitle_bad_timing_delay"), + getConfigMenuItem("config.subtitles.subtitle_noPTSrecordingdelay"), + ] + else: # pango + menu = [ + getConfigMenuItem("config.subtitles.pango_subtitles_delay"), + getConfigMenuItem("config.subtitles.pango_subtitle_colors"), + getConfigMenuItem("config.subtitles.subtitle_fontsize"), + getConfigMenuItem("config.subtitles.subtitle_position"), + getConfigMenuItem("config.subtitles.subtitle_alignment"), + getConfigMenuItem("config.subtitles.subtitle_rewrap"), + getConfigMenuItem("config.subtitles.subtitle_borderwidth"), + getConfigMenuItem("config.subtitles.pango_subtitles_fps"), + ] + self["videofps"].setText(_("Video: %s fps") % (self.getFps().rstrip(".000"))) + + ConfigListScreen.__init__(self, menu, self.session, on_change = self.changedEntry) + + self["actions"] = NumberActionMap(["SetupActions"], + { + "cancel": self.cancel, + "ok": self.ok, + },-2) + + def changedEntry(self): + if self["config"].getCurrent() in [getConfigMenuItem("config.subtitles.pango_subtitles_delay"),getConfigMenuItem("config.subtitles.pango_subtitles_fps")]: + self.wait.start(500, True) + + def resyncSubtitles(self): + self.infobar.setSeekState(self.infobar.SEEK_STATE_PAUSE) + self.infobar.setSeekState(self.infobar.SEEK_STATE_PLAY) + + def getFps(self): + from enigma import iServiceInformation + service = self.session.nav.getCurrentService() + info = service and service.info() + if not info: + return "" + fps = info.getInfo(iServiceInformation.sFrameRate) + if fps > 0: + return "%6.3f" % (fps/1000.) + return "" + + def cancel(self): + self.close() + + def ok(self): + config.subtitles.save() + self.close() diff --git a/lib/python/Screens/AutoDiseqc.py b/lib/python/Screens/AutoDiseqc.py new file mode 100644 index 0000000..7946a86 --- /dev/null +++ b/lib/python/Screens/AutoDiseqc.py @@ -0,0 +1,298 @@ +from Screens.Screen import Screen +from Components.ConfigList import ConfigListScreen, ConfigList +from Components.ActionMap import ActionMap +from Components.Sources.FrontendStatus import FrontendStatus +from Components.Sources.StaticText import StaticText +from Components.config import config, configfile, getConfigListEntry +from Components.NimManager import nimmanager, InitNimManager +from Components.TuneTest import Tuner +from enigma import eDVBFrontendParametersSatellite, eDVBResourceManager, eTimer + + +class AutoDiseqc(Screen, ConfigListScreen): + skin = """ + <screen position="c-250,c-100" size="500,250" title=" "> + <widget source="statusbar" render="Label" position="10,5" zPosition="10" size="e-10,60" halign="center" valign="center" font="Regular;22" transparent="1" shadowColor="black" shadowOffset="-1,-1" /> + <widget source="tunerstatusbar" render="Label" position="10,60" zPosition="10" size="e-10,30" halign="center" valign="center" font="Regular;22" transparent="1" shadowColor="black" shadowOffset="-1,-1" /> + <widget name="config" position="10,100" size="e-10,100" scrollbarMode="showOnDemand" /> + <ePixmap pixmap="skin_default/buttons/red.png" position="c-140,e-45" size="140,40" alphatest="on" /> + <widget source="key_red" render="Label" position="c-140,e-45" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" transparent="1" /> + </screen>""" + + diseqc_ports = [ + "A", "B", "C", "D" + ] + + sat_frequencies = [ + # astra 192 zdf + ( 11953, 27500, \ + eDVBFrontendParametersSatellite.Polarisation_Horizontal, eDVBFrontendParametersSatellite.FEC_3_4, \ + eDVBFrontendParametersSatellite.Inversion_Off, 192, \ + eDVBFrontendParametersSatellite.System_DVB_S, eDVBFrontendParametersSatellite.Modulation_Auto, \ + eDVBFrontendParametersSatellite.RollOff_auto, eDVBFrontendParametersSatellite.Pilot_Unknown, \ + 1079, 1, "Astra 1 19.2e"), + + # astra 235 astra ses + ( 12168, 27500, \ + eDVBFrontendParametersSatellite.Polarisation_Vertical, eDVBFrontendParametersSatellite.FEC_3_4, \ + eDVBFrontendParametersSatellite.Inversion_Off, 235, \ + eDVBFrontendParametersSatellite.System_DVB_S, eDVBFrontendParametersSatellite.Modulation_Auto, \ + eDVBFrontendParametersSatellite.RollOff_auto, eDVBFrontendParametersSatellite.Pilot_Unknown, \ + 3224, 3, "Astra 3 23.5e"), + + # astra 282 bbc + ( 10773, 22000, \ + eDVBFrontendParametersSatellite.Polarisation_Horizontal, eDVBFrontendParametersSatellite.FEC_5_6, \ + eDVBFrontendParametersSatellite.Inversion_Off, 282, \ + eDVBFrontendParametersSatellite.System_DVB_S, eDVBFrontendParametersSatellite.Modulation_Auto, \ + eDVBFrontendParametersSatellite.RollOff_auto, eDVBFrontendParametersSatellite.Pilot_Unknown, \ + 2045, 2, "Astra 2 28.2e"), + + # hotbird 130 rai + ( 10992, 27500, \ + eDVBFrontendParametersSatellite.Polarisation_Vertical, eDVBFrontendParametersSatellite.FEC_2_3, \ + eDVBFrontendParametersSatellite.Inversion_Off, 130, \ + eDVBFrontendParametersSatellite.System_DVB_S, eDVBFrontendParametersSatellite.Modulation_Auto, \ + eDVBFrontendParametersSatellite.RollOff_auto, eDVBFrontendParametersSatellite.Pilot_Unknown, \ + 12400, 318, "Hotbird 13.0e"), + ] + + SAT_TABLE_FREQUENCY = 0 + SAT_TABLE_SYMBOLRATE = 1 + SAT_TABLE_POLARISATION = 2 + SAT_TABLE_FEC = 3 + SAT_TABLE_INVERSION = 4 + SAT_TABLE_ORBPOS = 5 + SAT_TABLE_SYSTEM = 6 + SAT_TABLE_MODULATION = 7 + SAT_TABLE_ROLLOFF = 8 + SAT_TABLE_PILOT = 9 + SAT_TABLE_TSID = 10 + SAT_TABLE_ONID = 11 + SAT_TABLE_NAME = 12 + + def __init__(self, session, feid, nr_of_ports, simple_tone, simple_sat_change): + self.skin = AutoDiseqc.skin + Screen.__init__(self, session) + + self["statusbar"] = StaticText(" ") + self["tunerstatusbar"] = StaticText(" ") + + self.list = [] + ConfigListScreen.__init__(self, self.list, session = self.session) + + self["config"].list = self.list + self["config"].l.setList(self.list) + + self["key_red"] = StaticText(_("Abort")) + + self.index = 0 + self.port_index = 0 + self.feid = feid + self.nr_of_ports = nr_of_ports + self.simple_tone = simple_tone + self.simple_sat_change = simple_sat_change + self.found_sats = [] + + if not self.openFrontend(): + self.oldref = self.session.nav.getCurrentlyPlayingServiceOrGroup() + self.session.nav.stopService() + if not self.openFrontend(): + if self.session.pipshown: + if hasattr(self.session, 'infobar'): + if self.session.infobar.servicelist and self.session.infobar.servicelist.dopipzap: + self.session.infobar.servicelist.togglePipzap() + if hasattr(self.session, 'pip'): + del self.session.pip + self.session.pipshown = False + if not self.openFrontend(): + self.frontend = None + self.raw_channel = None + + if self.raw_channel: + self.raw_channel.receivedTsidOnid.get().append(self.gotTsidOnid) + + self["actions"] = ActionMap(["SetupActions"], + { + "cancel": self.keyCancel, + }, -2) + + self.count = 0 + self.state = 0 + self.abort = False + + self.statusTimer = eTimer() + self.statusTimer.callback.append(self.statusCallback) + self.tunerStatusTimer = eTimer() + self.tunerStatusTimer.callback.append(self.tunerStatusCallback) + self.startStatusTimer() + self.onClose.append(self.__onClose) + + def __onClose(self): + if self.raw_channel: + self.raw_channel.receivedTsidOnid.get().remove(self.gotTsidOnid) + + def keyCancel(self): + self.abort = True + + def keyOK(self): + return + + def keyLeft(self): + return + + def keyRight(self): + return + + def openFrontend(self): + res_mgr = eDVBResourceManager.getInstance() + if res_mgr: + self.raw_channel = res_mgr.allocateRawChannel(self.feid) + if self.raw_channel: + self.frontend = self.raw_channel.getFrontend() + if self.frontend: + return True + return False + + def statusCallback(self): + if self.state == 0: + if self.port_index == 0: + self.clearNimEntries() + config.Nims[self.feid].diseqcA.value = "%d" % (self.sat_frequencies[self.index][self.SAT_TABLE_ORBPOS]) + elif self.port_index == 1: + self.clearNimEntries() + config.Nims[self.feid].diseqcB.value = "%d" % (self.sat_frequencies[self.index][self.SAT_TABLE_ORBPOS]) + elif self.port_index == 2: + self.clearNimEntries() + config.Nims[self.feid].diseqcC.value = "%d" % (self.sat_frequencies[self.index][self.SAT_TABLE_ORBPOS]) + elif self.port_index == 3: + self.clearNimEntries() + config.Nims[self.feid].diseqcD.value = "%d" % (self.sat_frequencies[self.index][self.SAT_TABLE_ORBPOS]) + + if self.nr_of_ports == 4: + config.Nims[self.feid].diseqcMode.value = "diseqc_a_b_c_d" + elif self.nr_of_ports == 2: + config.Nims[self.feid].diseqcMode.value = "diseqc_a_b" + else: + config.Nims[self.feid].diseqcMode.value = "single" + + config.Nims[self.feid].configMode.value = "simple" + config.Nims[self.feid].simpleDiSEqCSetVoltageTone = self.simple_tone + config.Nims[self.feid].simpleDiSEqCOnlyOnSatChange = self.simple_sat_change + + self.saveAndReloadNimConfig() + self.state += 1 + + elif self.state == 1: + InitNimManager(nimmanager) + + self.tuner = Tuner(self.frontend) + if self.raw_channel: + self.raw_channel.requestTsidOnid() + self.tuner.tune(self.sat_frequencies[self.index]) + + self["statusbar"].setText(_("Checking tuner %d\nDiSEqC port %s for %s") % (self.feid, self.diseqc_ports[self.port_index], self.sat_frequencies[self.index][self.SAT_TABLE_NAME])) + self["tunerstatusbar"].setText(" ") + + self.count = 0 + self.state = 0 + + self.startTunerStatusTimer() + return + + self.startStatusTimer() + + def startStatusTimer(self): + self.statusTimer.start(100, True) + + def setupSave(self): + self.clearNimEntries() + for x in self.found_sats: + if x[0] == "A": + config.Nims[self.feid].diseqcA.value = "%d" % (x[1]) + elif x[0] == "B": + config.Nims[self.feid].diseqcB.value = "%d" % (x[1]) + elif x[0] == "C": + config.Nims[self.feid].diseqcC.value = "%d" % (x[1]) + elif x[0] == "D": + config.Nims[self.feid].diseqcD.value = "%d" % (x[1]) + self.saveAndReloadNimConfig() + + def setupClear(self): + self.clearNimEntries() + self.saveAndReloadNimConfig() + + def clearNimEntries(self): + config.Nims[self.feid].diseqcA.value = "3601" + config.Nims[self.feid].diseqcB.value = "3601" + config.Nims[self.feid].diseqcC.value = "3601" + config.Nims[self.feid].diseqcD.value = "3601" + + def saveAndReloadNimConfig(self): + config.Nims[self.feid].save() + configfile.save() + configfile.load() + nimmanager.sec.update() + + def tunerStatusCallback(self): + dict = {} + if self.frontend: + self.frontend.getFrontendStatus(dict) + else: + self.tunerStopScan(False) + return + self["tunerstatusbar"].setText(_("Tuner status %s") % (dict["tuner_state"])) + + if dict["tuner_state"] == "LOSTLOCK" or dict["tuner_state"] == "FAILED": + self.tunerStopScan(False) + return + + self.count += 1 + if self.count > 10: + self.tunerStopScan(False) + else: + self.startTunerStatusTimer() + + def startTunerStatusTimer(self): + self.tunerStatusTimer.start(1000, True) + + def gotTsidOnid(self, tsid, onid): + self.tunerStatusTimer.stop() + if tsid == self.sat_frequencies[self.index][self.SAT_TABLE_TSID] and onid == self.sat_frequencies[self.index][self.SAT_TABLE_ONID]: + self.tunerStopScan(True) + else: + self.tunerStopScan(False) + + def tunerStopScan(self, result): + if self.abort: + self.setupClear() + self.close(False) + return + if result: + self.found_sats.append((self.diseqc_ports[self.port_index], self.sat_frequencies[self.index][self.SAT_TABLE_ORBPOS], self.sat_frequencies[self.index][self.SAT_TABLE_NAME])) + self.index = 0 + self.port_index += 1 + else: + self.index += 1 + if len(self.sat_frequencies) == self.index: + self.index = 0 + self.port_index += 1 + + if len(self.found_sats) > 0: + self.list = [] + for x in self.found_sats: + self.list.append(getConfigListEntry((_("DiSEqC port %s: %s") % (x[0], x[2])))) + self["config"].l.setList(self.list) + + if self.nr_of_ports == self.port_index: + self.state = 99 + self.setupSave() + self.close(len(self.found_sats) > 0) + return + + for x in self.found_sats: + if x[1] == self.sat_frequencies[self.index][self.SAT_TABLE_ORBPOS]: + self.tunerStopScan(False) + return + + self.startStatusTimer() diff --git a/lib/python/Screens/ChannelSelection.py b/lib/python/Screens/ChannelSelection.py new file mode 100644 index 0000000..ab00b5c --- /dev/null +++ b/lib/python/Screens/ChannelSelection.py @@ -0,0 +1,2087 @@ +from Tools.Profile import profile + +from Screen import Screen +import Screens.InfoBar +import Components.ParentalControl +from Components.Button import Button +from Components.ServiceList import ServiceList, refreshServiceList +from Components.ActionMap import NumberActionMap, ActionMap, HelpableActionMap +from Components.MenuList import MenuList +from Components.ServiceEventTracker import ServiceEventTracker, InfoBarBase +from Components.SystemInfo import SystemInfo +profile("ChannelSelection.py 1") +from EpgSelection import EPGSelection +from enigma import eServiceReference, eEPGCache, eServiceCenter, eRCInput, eTimer, eDVBDB, iPlayableService, iServiceInformation, getPrevAsciiCode, eEnv +from Components.config import config, configfile, ConfigSubsection, ConfigText +from Tools.NumericalTextInput import NumericalTextInput +profile("ChannelSelection.py 2") +from Components.NimManager import nimmanager +profile("ChannelSelection.py 2.1") +from Components.Sources.RdsDecoder import RdsDecoder +profile("ChannelSelection.py 2.2") +from Components.Sources.ServiceEvent import ServiceEvent +from Components.Sources.Event import Event +profile("ChannelSelection.py 2.3") +from Components.Input import Input +profile("ChannelSelection.py 3") +from Components.ChoiceList import ChoiceList, ChoiceEntryComponent +from Components.SystemInfo import SystemInfo +from Screens.InputBox import PinInput +from Screens.VirtualKeyBoard import VirtualKeyBoard +from Screens.MessageBox import MessageBox +from Screens.ServiceInfo import ServiceInfo +profile("ChannelSelection.py 4") +from Screens.PictureInPicture import PictureInPicture +from Screens.RdsDisplay import RassInteractive +from ServiceReference import ServiceReference +from Tools.BoundFunction import boundFunction +from Tools import Notifications +from Tools.Alternatives import CompareWithAlternatives +from os import remove +profile("ChannelSelection.py after imports") + +FLAG_SERVICE_NEW_FOUND = 64 #define in lib/dvb/idvb.h as dxNewFound = 64 + +class BouquetSelector(Screen): + def __init__(self, session, bouquets, selectedFunc, enableWrapAround=True): + Screen.__init__(self, session) + + self.selectedFunc=selectedFunc + + self["actions"] = ActionMap(["OkCancelActions"], + { + "ok": self.okbuttonClick, + "cancel": self.cancelClick + }) + entrys = [ (x[0], x[1]) for x in bouquets ] + self["menu"] = MenuList(entrys, enableWrapAround) + + def getCurrent(self): + cur = self["menu"].getCurrent() + return cur and cur[1] + + def okbuttonClick(self): + self.selectedFunc(self.getCurrent()) + + def up(self): + self["menu"].up() + + def down(self): + self["menu"].down() + + def cancelClick(self): + self.close(False) + +class SilentBouquetSelector: + def __init__(self, bouquets, enableWrapAround=False, current=0): + self.bouquets = [b[1] for b in bouquets] + self.pos = current + self.count = len(bouquets) + self.enableWrapAround = enableWrapAround + + def up(self): + if self.pos > 0 or self.enableWrapAround: + self.pos = (self.pos - 1) % self.count + + def down(self): + if self.pos < (self.count - 1) or self.enableWrapAround: + self.pos = (self.pos + 1) % self.count + + def getCurrent(self): + return self.bouquets[self.pos] + +# csel.bouquet_mark_edit values +OFF = 0 +EDIT_BOUQUET = 1 +EDIT_ALTERNATIVES = 2 + +def append_when_current_valid(current, menu, args, level=0, key=""): + if current and current.valid() and level <= config.usage.setup_level.index: + menu.append(ChoiceEntryComponent(key, args)) + +class ChannelContextMenu(Screen): + def __init__(self, session, csel): + + Screen.__init__(self, session) + #raise Exception("we need a better summary screen here") + self.csel = csel + self.bsel = None + + self["actions"] = ActionMap(["OkCancelActions", "ColorActions", "NumberActions", "MenuActions"], + { + "ok": self.okbuttonClick, + "cancel": self.cancelClick, + "blue": self.showServiceInPiP, + "red": self.playMain, + "menu": self.openSetup, + "2": self.renameEntry, + "3": self.findCurrentlyPlayed, + "5": self.addServiceToBouquetOrAlternative, + "6": self.toggleMoveModeSelect, + "8": self.removeEntry + }) + menu = [ ] + + self.removeFunction = False + self.addFunction = False + current = csel.getCurrentSelection() + current_root = csel.getRoot() + current_sel_path = current.getPath() + current_sel_flags = current.flags + inBouquetRootList = current_root and 'FROM BOUQUET "bouquets.' in current_root.getPath() #FIXME HACK + inAlternativeList = current_root and 'FROM BOUQUET "alternatives' in current_root.getPath() + self.inBouquet = csel.getMutableList() is not None + haveBouquets = config.usage.multibouquet.value + from Components.ParentalControl import parentalControl + self.parentalControl = parentalControl + self.parentalControlEnabled = config.ParentalControl.configured.value and config.ParentalControl.servicepinactive.value + if not (current_sel_path or current_sel_flags & (eServiceReference.isDirectory|eServiceReference.isMarker)): + append_when_current_valid(current, menu, (_("show transponder info"), self.showServiceInformations), level=2) + if csel.bouquet_mark_edit == OFF and not csel.movemode: + if not inBouquetRootList: + isPlayable = not (current_sel_flags & (eServiceReference.isMarker|eServiceReference.isDirectory)) + if isPlayable: + if config.servicelist.startupservice.value == self.csel.getCurrentSelection().toString(): + append_when_current_valid(current, menu, (_("stop using as startup service"), self.unsetStartupService), level=0) + else: + append_when_current_valid(current, menu, (_("set as startup service"), self.setStartupService), level=0) + if self.parentalControlEnabled: + if self.parentalControl.getProtectionLevel(csel.getCurrentSelection().toCompareString()) == -1: + append_when_current_valid(current, menu, (_("add to parental protection"), boundFunction(self.addParentalProtection, csel.getCurrentSelection())), level=0) + else: + append_when_current_valid(current, menu, (_("remove from parental protection"), boundFunction(self.removeParentalProtection, csel.getCurrentSelection())), level=0) + if haveBouquets: + bouquets = self.csel.getBouquetList() + if bouquets is None: + bouquetCnt = 0 + else: + bouquetCnt = len(bouquets) + if not self.inBouquet or bouquetCnt > 1: + append_when_current_valid(current, menu, (_("add service to bouquet"), self.addServiceToBouquetSelected), level=0, key="5") + self.addFunction = self.addServiceToBouquetSelected + else: + if not self.inBouquet: + append_when_current_valid(current, menu, (_("add service to favourites"), self.addServiceToBouquetSelected), level=0, key="5") + self.addFunction = self.addServiceToBouquetSelected + if SystemInfo["PIPAvailable"]: + if not self.parentalControlEnabled or self.parentalControl.getProtectionLevel(csel.getCurrentSelection().toCompareString()) == -1: + if self.csel.dopipzap: + append_when_current_valid(current, menu, (_("play in mainwindow"), self.playMain), level=0, key="red") + else: + append_when_current_valid(current, menu, (_("play as picture in picture"), self.showServiceInPiP), level=0, key="blue") + append_when_current_valid(current, menu, (_("find currently played service"), self.findCurrentlyPlayed), level=0, key="3") + else: + if 'FROM SATELLITES' in current_root.getPath(): + append_when_current_valid(current, menu, (_("remove selected satellite"), self.removeSatelliteServices), level=0) + if haveBouquets: + if not self.inBouquet and not "PROVIDERS" in current_sel_path: + append_when_current_valid(current, menu, (_("copy to bouquets"), self.copyCurrentToBouquetList), level=0) + if ("flags == %d" %(FLAG_SERVICE_NEW_FOUND)) in current_sel_path: + append_when_current_valid(current, menu, (_("remove all new found flags"), self.removeAllNewFoundFlags), level=0) + if self.inBouquet: + append_when_current_valid(current, menu, (_("rename entry"), self.renameEntry), level=0, key="2") + if not inAlternativeList: + append_when_current_valid(current, menu, (_("remove entry"), self.removeCurrentService), level=0, key="8") + self.removeFunction = self.removeCurrentService + if current_root and ("flags == %d" %(FLAG_SERVICE_NEW_FOUND)) in current_root.getPath(): + append_when_current_valid(current, menu, (_("remove new found flag"), self.removeNewFoundFlag), level=0) + else: + menu.append(ChoiceEntryComponent(text=(_("add bouquet"), self.showBouquetInputBox))) + append_when_current_valid(current, menu, (_("rename entry"), self.renameEntry), level=0, key="2") + append_when_current_valid(current, menu, (_("remove entry"), self.removeBouquet), level=0, key="8") + self.removeFunction = self.removeBouquet + if self.inBouquet: # current list is editable? + if csel.bouquet_mark_edit == OFF: + if not csel.movemode: + append_when_current_valid(current, menu, (_("enable move mode"), self.toggleMoveMode), level=1, key="6") + if not inBouquetRootList and current_root and not (current_root.flags & eServiceReference.isGroup): + if current.type != -1: + menu.append(ChoiceEntryComponent(text=(_("add marker"), self.showMarkerInputBox))) + if haveBouquets: + append_when_current_valid(current, menu, (_("enable bouquet edit"), self.bouquetMarkStart), level=0) + else: + append_when_current_valid(current, menu, (_("enable favourite edit"), self.bouquetMarkStart), level=0) + if current_sel_flags & eServiceReference.isGroup: + append_when_current_valid(current, menu, (_("edit alternatives"), self.editAlternativeServices), level=2) + append_when_current_valid(current, menu, (_("show alternatives"), self.showAlternativeServices), level=2) + append_when_current_valid(current, menu, (_("remove all alternatives"), self.removeAlternativeServices), level=2) + elif not current_sel_flags & eServiceReference.isMarker: + append_when_current_valid(current, menu, (_("add alternatives"), self.addAlternativeServices), level=2) + else: + append_when_current_valid(current, menu, (_("disable move mode"), self.toggleMoveMode), level=0, key="6") + else: + if csel.bouquet_mark_edit == EDIT_BOUQUET: + if haveBouquets: + append_when_current_valid(current, menu, (_("end bouquet edit"), self.bouquetMarkEnd), level=0) + append_when_current_valid(current, menu, (_("abort bouquet edit"), self.bouquetMarkAbort), level=0) + else: + append_when_current_valid(current, menu, (_("end favourites edit"), self.bouquetMarkEnd), level=0) + append_when_current_valid(current, menu, (_("abort favourites edit"), self.bouquetMarkAbort), level=0) + if current_sel_flags & eServiceReference.isMarker: + append_when_current_valid(current, menu, (_("rename entry"), self.renameEntry), level=0, key="2") + append_when_current_valid(current, menu, (_("remove entry"), self.removeCurrentService), level=0, key="8") + self.removeFunction = self.removeCurrentService + else: + append_when_current_valid(current, menu, (_("end alternatives edit"), self.bouquetMarkEnd), level=0) + append_when_current_valid(current, menu, (_("abort alternatives edit"), self.bouquetMarkAbort), level=0) + + menu.append(ChoiceEntryComponent("menu", (_("Configuration..."), self.openSetup))) + self["menu"] = ChoiceList(menu) + + def addServiceToBouquetOrAlternative(self): + if self.addFunction: + self.addFunction() + else: + return 0 + + def removeEntry(self): + if self.removeFunction and self.csel.servicelist.getCurrent() and self.csel.servicelist.getCurrent().valid(): + self.removeFunction() + else: + return 0 + + def playMain(self): + sel = self.csel.getCurrentSelection() + if sel and sel.valid() and self.csel.dopipzap and (not self.parentalControlEnabled or self.parentalControl.getProtectionLevel(self.csel.getCurrentSelection().toCompareString()) == -1): + self.csel.zap() + self.csel.setCurrentSelection(sel) + self.close(True) + else: + return 0 + + def okbuttonClick(self): + self["menu"].getCurrent()[0][1]() + + def openSetup(self): + from Screens.Setup import Setup + self.session.openWithCallback(self.cancelClick, Setup, "userinterface") + + def cancelClick(self, dummy=False): + self.close(False) + + def showServiceInformations(self): + self.session.open( ServiceInfo, self.csel.getCurrentSelection() ) + + def setStartupService(self): + config.servicelist.startupservice.value = self.csel.getCurrentSelection().toString() + path = ';'.join([i.toString() for i in self.csel.servicePath]) + config.servicelist.startuproot.value = path + config.servicelist.startupmode.value = config.servicelist.lastmode.value + config.servicelist.save() + configfile.save() + self.close() + + def unsetStartupService(self): + config.servicelist.startupservice.value = '' + config.servicelist.save() + configfile.save() + self.close() + + def showBouquetInputBox(self): + self.session.openWithCallback(self.bouquetInputCallback, VirtualKeyBoard, title=_("Please enter a name for the new bouquet"), text="bouquetname", maxSize=False, visible_width=56, type=Input.TEXT) + + def bouquetInputCallback(self, bouquet): + if bouquet is not None: + self.csel.addBouquet(bouquet, None) + self.close() + + def addParentalProtection(self, service): + self.parentalControl.protectService(service.toCompareString()) + self.close() + + def removeParentalProtection(self, service): + self.session.openWithCallback(boundFunction(self.pinEntered, service.toCompareString()), PinInput, pinList=[config.ParentalControl.servicepin[0].value], triesEntry=config.ParentalControl.retries.servicepin, title=_("Enter the service pin"), windowTitle=_("Change pin code")) + + def pinEntered(self, service, result): + if result: + self.parentalControl.unProtectService(service) + self.close() + else: + self.session.openWithCallback(self.close, MessageBox, _("The pin code you entered is wrong."), MessageBox.TYPE_ERROR) + + def showServiceInPiP(self): + if self.csel.dopipzap or (self.parentalControlEnabled and not self.parentalControl.getProtectionLevel(self.csel.getCurrentSelection().toCompareString()) == -1): + return 0 + if self.session.pipshown: + del self.session.pip + self.session.pip = self.session.instantiateDialog(PictureInPicture) + self.session.pip.show() + newservice = self.csel.servicelist.getCurrent() + if newservice and newservice.valid(): + if self.session.pip.playService(newservice): + self.session.pipshown = True + self.session.pip.servicePath = self.csel.getCurrentServicePath() + self.close(True) + else: + self.session.pipshown = False + del self.session.pip + self.session.openWithCallback(self.close, MessageBox, _("Could not open Picture in Picture"), MessageBox.TYPE_ERROR) + else: + return 0 + + def addServiceToBouquetSelected(self): + bouquets = self.csel.getBouquetList() + if bouquets is None: + cnt = 0 + else: + cnt = len(bouquets) + if cnt > 1: # show bouquet list + self.bsel = self.session.openWithCallback(self.bouquetSelClosed, BouquetSelector, bouquets, self.addCurrentServiceToBouquet) + elif cnt == 1: # add to only one existing bouquet + self.addCurrentServiceToBouquet(bouquets[0][1], closeBouquetSelection=False) + + def bouquetSelClosed(self, recursive): + self.bsel = None + if recursive: + self.close(False) + + def removeSatelliteServices(self): + curpath = self.csel.getCurrentSelection().getPath() + idx = curpath.find("satellitePosition == ") + if idx != -1: + tmp = curpath[idx+21:] + idx = tmp.find(')') + if idx != -1: + satpos = int(tmp[:idx]) + eDVBDB.getInstance().removeServices(-1, -1, -1, satpos) + self.close() + + def copyCurrentToBouquetList(self): + self.csel.copyCurrentToBouquetList() + self.close() + + + def removeBouquet(self): + if self.csel.servicelist.getCurrent() and self.csel.servicelist.getCurrent().valid() and not self.csel.movemode: + self.session.openWithCallback(self.removeBouquetCallback, MessageBox, _("Are you sure to remove this entry?")) + else: + return 0 + + def removeBouquetCallback(self, answer): + if answer: + self.csel.removeBouquet() + eDVBDB.getInstance().reloadBouquets() + self.close() + + def showMarkerInputBox(self): + self.session.openWithCallback(self.markerInputCallback, VirtualKeyBoard, title=_("Please enter a name for the new marker"), text="markername", maxSize=False, visible_width=56, type=Input.TEXT) + + def markerInputCallback(self, marker): + if marker is not None: + self.csel.addMarker(marker) + self.close() + + def addCurrentServiceToBouquet(self, dest, closeBouquetSelection=True): + self.csel.addServiceToBouquet(dest) + if self.bsel is not None: + self.bsel.close(True) + else: + self.close(closeBouquetSelection) # close bouquet selection + + def removeCurrentService(self): + if self.csel.servicelist.getCurrent() and self.csel.servicelist.getCurrent().valid() and not self.csel.movemode: + self.session.openWithCallback(self.removeCurrentServiceCallback, MessageBox, _("Are you sure to remove this entry?")) + else: + return 0 + + def removeCurrentServiceCallback(self, answer): + if answer: + self.csel.removeCurrentService() + self.close() + + def renameEntry(self): + if self.inBouquet and self.csel.servicelist.getCurrent() and self.csel.servicelist.getCurrent().valid() and not self.csel.movemode: + self.csel.renameEntry() + self.close() + else: + return 0 + + def toggleMoveMode(self): + if self.inBouquet and self.csel.servicelist.getCurrent() and self.csel.servicelist.getCurrent().valid(): + self.csel.toggleMoveMode() + self.close() + else: + return 0 + + def toggleMoveModeSelect(self): + if self.inBouquet and self.csel.servicelist.getCurrent() and self.csel.servicelist.getCurrent().valid(): + self.csel.toggleMoveMode(True) + self.close() + else: + return 0 + + def bouquetMarkStart(self): + self.csel.startMarkedEdit(EDIT_BOUQUET) + self.close() + + def bouquetMarkEnd(self): + self.csel.endMarkedEdit(abort=False) + self.close() + + def bouquetMarkAbort(self): + self.csel.endMarkedEdit(abort=True) + self.close() + + def removeNewFoundFlag(self): + eDVBDB.getInstance().removeFlag(self.csel.getCurrentSelection(), FLAG_SERVICE_NEW_FOUND) + self.close() + + def removeAllNewFoundFlags(self): + curpath = self.csel.getCurrentSelection().getPath() + idx = curpath.find("satellitePosition == ") + if idx != -1: + tmp = curpath[idx+21:] + idx = tmp.find(')') + if idx != -1: + satpos = int(tmp[:idx]) + eDVBDB.getInstance().removeFlags(FLAG_SERVICE_NEW_FOUND, -1, -1, -1, satpos) + self.close() + + def editAlternativeServices(self): + self.csel.startMarkedEdit(EDIT_ALTERNATIVES) + self.close() + + def showAlternativeServices(self): + self.csel["Service"].editmode = True + self.csel.enterPath(self.csel.getCurrentSelection()) + self.close() + + def removeAlternativeServices(self): + self.csel.removeAlternativeServices() + self.close() + + def addAlternativeServices(self): + self.csel.addAlternativeServices() + self.csel.startMarkedEdit(EDIT_ALTERNATIVES) + self.close() + + def findCurrentlyPlayed(self): + sel = self.csel.getCurrentSelection() + if sel and sel.valid() and not self.csel.movemode: + currentPlayingService = (hasattr(self.csel, "dopipzap") and self.csel.dopipzap) and self.session.pip.getCurrentService() or self.session.nav.getCurrentlyPlayingServiceOrGroup() + self.csel.servicelist.setCurrent(currentPlayingService, adjust=False) + if self.csel.getCurrentSelection() != currentPlayingService: + self.csel.setCurrentSelection(sel) + self.close() + else: + return 0 + +class SelectionEventInfo: + def __init__(self): + self["Service"] = self["ServiceEvent"] = ServiceEvent() + self["Event"] = Event() + self.servicelist.connectSelChanged(self.__selectionChanged) + self.timer = eTimer() + self.timer.callback.append(self.updateEventInfo) + self.onShown.append(self.__selectionChanged) + + def __selectionChanged(self): + if self.execing: + self.timer.start(100, True) + + def updateEventInfo(self): + cur = self.getCurrentSelection() + service = self["Service"] + service.newService(cur) + self["Event"].newEvent(service.event) + +class ChannelSelectionEPG: + def __init__(self): + self["ChannelSelectEPGActions"] = ActionMap(["ChannelSelectEPGActions"], + { + "showEPGList": self.showEPGList, + }) + self.epg_bouquet = None + + def showEPGList(self): + ref=self.getCurrentSelection() + if ref: + self.epg_bouquet = self.servicelist.getRoot() + self.savedService = ref + self.session.openWithCallback(self.SingleServiceEPGClosed, EPGSelection, ref, self.zapToService, serviceChangeCB=self.changeServiceCB) + + def SingleServiceEPGClosed(self, ret=False): + if ret: + service = self.getCurrentSelection() + if service is not None: + self.close() + else: + self.setCurrentSelection(self.savedService) + + def changeServiceCB(self, direction, epg): + beg = self.getCurrentSelection() + while True: + if direction > 0: + self.moveDown() + else: + self.moveUp() + cur = self.getCurrentSelection() + if cur == beg or not (cur.flags & eServiceReference.isMarker): + break + epg.setService(ServiceReference(self.getCurrentSelection())) + + def zapToService(self, service, preview=False, zapback=False): + if self.startServiceRef is None: + self.startServiceRef = self.session.nav.getCurrentlyPlayingServiceOrGroup() + if service is not None: + if self.servicelist.getRoot() != self.epg_bouquet: + self.servicelist.clearPath() + if self.servicelist.bouquet_root != self.epg_bouquet: + self.servicelist.enterPath(self.servicelist.bouquet_root) + self.servicelist.enterPath(self.epg_bouquet) + self.servicelist.setCurrent(service) + if not zapback or preview: + self.zap(enable_pipzap=True) + if (self.dopipzap or zapback) and not preview: + self.zapBack() + if not preview: + self.startServiceRef = None + self.startRoot = None + +class ChannelSelectionEdit: + def __init__(self): + self.entry_marked = False + self.movemode = False + self.bouquet_mark_edit = OFF + self.mutableList = None + self.__marked = [ ] + self.saved_title = None + self.saved_root = None + self.current_ref = None + + class ChannelSelectionEditActionMap(ActionMap): + def __init__(self, csel, contexts=[ ], actions={ }, prio=0): + ActionMap.__init__(self, contexts, actions, prio) + self.csel = csel + + def action(self, contexts, action): + if action == "cancel": + self.csel.handleEditCancel() + return 0 # fall-trough + elif action == "ok": + return 0 # fall-trough + else: + return ActionMap.action(self, contexts, action) + + self["ChannelSelectEditActions"] = ChannelSelectionEditActionMap(self, ["ChannelSelectEditActions", "OkCancelActions"], + { + "contextMenu": self.doContext, + }) + + def getMutableList(self, root=eServiceReference()): + if not self.mutableList is None: + return self.mutableList + serviceHandler = eServiceCenter.getInstance() + if not root.valid(): + root=self.getRoot() + list = root and serviceHandler.list(root) + if list is not None: + return list.startEdit() + return None + + def buildBouquetID(self, str): + tmp = str.lower() + name = '' + for c in tmp: + if (c >= 'a' and c <= 'z') or (c >= '0' and c <= '9'): + name += c + else: + name += '_' + return name + + def renameEntry(self): + cur = self.getCurrentSelection() + if cur and cur.valid(): + name = eServiceCenter.getInstance().info(cur).getName(cur) or ServiceReference(cur).getServiceName() or "" + name.replace('\xc2\x86', '').replace('\xc2\x87', '') + if name: + self.session.openWithCallback(self.renameEntryCallback, VirtualKeyBoard, title=_("Please enter new name:"), text=name) + else: + return 0 + + def renameEntryCallback(self, name): + if name: + mutableList = self.getMutableList() + if mutableList: + current = self.servicelist.getCurrent() + current.setName(name) + index = self.servicelist.getCurrentIndex() + mutableList.removeService(current) + mutableList.addService(current) + mutableList.moveService(current, index) + mutableList.flushChanges() + self.servicelist.addService(current, True) + self.servicelist.removeCurrent() + if not self.servicelist.atEnd(): + self.servicelist.moveUp() + + def addMarker(self, name): + current = self.servicelist.getCurrent() + mutableList = self.getMutableList() + cnt = 0 + while mutableList: + str = '1:64:%d:0:0:0:0:0:0:0::%s'%(cnt, name) + ref = eServiceReference(str) + if current and current.valid(): + if not mutableList.addService(ref, current): + self.servicelist.addService(ref, True) + mutableList.flushChanges() + break + elif not mutableList.addService(ref): + self.servicelist.addService(ref, True) + mutableList.flushChanges() + break + cnt+=1 + + def addAlternativeServices(self): + cur_service = ServiceReference(self.getCurrentSelection()) + root = self.getRoot() + cur_root = root and ServiceReference(root) + mutableBouquet = cur_root.list().startEdit() + if mutableBouquet: + name = cur_service.getServiceName() + print "NAME", name + if self.mode == MODE_TV: + str = '1:134:1:0:0:0:0:0:0:0:FROM BOUQUET \"alternatives.%s.tv\" ORDER BY bouquet'%(self.buildBouquetID(name)) + else: + str = '1:134:2:0:0:0:0:0:0:0:FROM BOUQUET \"alternatives.%s.radio\" ORDER BY bouquet'%(self.buildBouquetID(name)) + new_ref = ServiceReference(str) + if not mutableBouquet.addService(new_ref.ref, cur_service.ref): + mutableBouquet.removeService(cur_service.ref) + mutableBouquet.flushChanges() + eDVBDB.getInstance().reloadBouquets() + mutableAlternatives = new_ref.list().startEdit() + if mutableAlternatives: + mutableAlternatives.setListName(name) + if mutableAlternatives.addService(cur_service.ref): + print "add", cur_service.ref.toString(), "to new alternatives failed" + mutableAlternatives.flushChanges() + self.servicelist.addService(new_ref.ref, True) + self.servicelist.removeCurrent() + if not self.atEnd(): + self.servicelist.moveUp() + if cur_service.ref.toString() == self.lastservice.value: + self.saveChannel(new_ref.ref) + if self.startServiceRef and cur_service.ref == self.startServiceRef: + self.startServiceRef = new_ref.ref + else: + print "get mutable list for new created alternatives failed" + else: + print "add", str, "to", cur_root.getServiceName(), "failed" + else: + print "bouquetlist is not editable" + + def addBouquet(self, bName, services): + serviceHandler = eServiceCenter.getInstance() + mutableBouquetList = serviceHandler.list(self.bouquet_root).startEdit() + if mutableBouquetList: + if self.mode == MODE_TV: + bName += _(" (TV)") + str = '1:7:1:0:0:0:0:0:0:0:FROM BOUQUET \"userbouquet.%s.tv\" ORDER BY bouquet'%(self.buildBouquetID(bName)) + else: + bName += _(" (Radio)") + str = '1:7:2:0:0:0:0:0:0:0:FROM BOUQUET \"userbouquet.%s.radio\" ORDER BY bouquet'%(self.buildBouquetID(bName)) + new_bouquet_ref = eServiceReference(str) + if not mutableBouquetList.addService(new_bouquet_ref): + mutableBouquetList.flushChanges() + eDVBDB.getInstance().reloadBouquets() + mutableBouquet = serviceHandler.list(new_bouquet_ref).startEdit() + if mutableBouquet: + mutableBouquet.setListName(bName) + if services is not None: + for service in services: + if mutableBouquet.addService(service): + print "add", service.toString(), "to new bouquet failed" + mutableBouquet.flushChanges() + else: + print "get mutable list for new created bouquet failed" + # do some voodoo to check if current_root is equal to bouquet_root + cur_root = self.getRoot(); + str1 = cur_root and cur_root.toString() + pos1 = str1 and str1.find("FROM BOUQUET") or -1 + pos2 = self.bouquet_rootstr.find("FROM BOUQUET") + if pos1 != -1 and pos2 != -1 and str1[pos1:] == self.bouquet_rootstr[pos2:]: + self.servicelist.addService(new_bouquet_ref) + self.servicelist.resetRoot() + else: + print "add", str, "to bouquets failed" + else: + print "bouquetlist is not editable" + + def copyCurrentToBouquetList(self): + provider = ServiceReference(self.getCurrentSelection()) + providerName = provider.getServiceName() + serviceHandler = eServiceCenter.getInstance() + services = serviceHandler.list(provider.ref) + self.addBouquet(providerName, services and services.getContent('R', True)) + + def removeAlternativeServices(self): + cur_service = ServiceReference(self.getCurrentSelection()) + end = self.atEnd() + root = self.getRoot() + cur_root = root and ServiceReference(root) + list = cur_service.list() + first_in_alternative = list and list.getNext() + if first_in_alternative: + edit_root = cur_root and cur_root.list().startEdit() + if edit_root: + if not edit_root.addService(first_in_alternative, cur_service.ref): + self.servicelist.addService(first_in_alternative, True) + if cur_service.ref.toString() == self.lastservice.value: + self.saveChannel(first_in_alternative) + if self.startServiceRef and cur_service.ref == self.startServiceRef: + self.startServiceRef = first_in_alternative + else: + print "couldn't add first alternative service to current root" + else: + print "couldn't edit current root!!" + else: + print "remove empty alternative list !!" + self.removeBouquet() + if not end: + self.servicelist.moveUp() + + def removeBouquet(self): + refstr = self.getCurrentSelection().toString() + print "removeBouquet", refstr + pos = refstr.find('FROM BOUQUET "') + filename = None + if pos != -1: + refstr = refstr[pos+14:] + pos = refstr.find('"') + if pos != -1: + filename = eEnv.resolve('${sysconfdir}/enigma2/') + refstr[:pos] + self.removeCurrentService(bouquet=True) + try: + if filename is not None: + remove(filename) + except OSError: + print "error during remove of", filename + +# multiple marked entry stuff ( edit mode, later multiepg selection ) + def startMarkedEdit(self, type): + self.savedPath = self.servicePath[:] + if type == EDIT_ALTERNATIVES: + self.current_ref = self.getCurrentSelection() + self.enterPath(self.current_ref) + self.mutableList = self.getMutableList() + # add all services from the current list to internal marked set in listboxservicecontent + self.clearMarks() # this clears the internal marked set in the listboxservicecontent + self.saved_title = self.getTitle() + pos = self.saved_title.find(')') + new_title = self.saved_title[:pos+1] + if type == EDIT_ALTERNATIVES: + self.bouquet_mark_edit = EDIT_ALTERNATIVES + new_title += ' ' + _("[alternative edit]") + else: + self.bouquet_mark_edit = EDIT_BOUQUET + if config.usage.multibouquet.value: + new_title += ' ' + _("[bouquet edit]") + else: + new_title += ' ' + _("[favourite edit]") + self.setTitle(new_title) + self.__marked = self.servicelist.getRootServices() + for x in self.__marked: + self.servicelist.addMarked(eServiceReference(x)) + self["Service"].editmode = True + + def endMarkedEdit(self, abort): + if not abort and self.mutableList is not None: + new_marked = set(self.servicelist.getMarked()) + old_marked = set(self.__marked) + removed = old_marked - new_marked + added = new_marked - old_marked + changed = False + for x in removed: + changed = True + self.mutableList.removeService(eServiceReference(x)) + for x in added: + changed = True + self.mutableList.addService(eServiceReference(x)) + if changed: + if self.bouquet_mark_edit == EDIT_ALTERNATIVES and not new_marked and self.__marked: + self.mutableList.addService(eServiceReference(self.__marked[0])) + self.mutableList.flushChanges() + self.__marked = [] + self.clearMarks() + self.bouquet_mark_edit = OFF + self.mutableList = None + self.setTitle(self.saved_title) + self.saved_title = None + # self.servicePath is just a reference to servicePathTv or Radio... + # so we never ever do use the asignment operator in self.servicePath + del self.servicePath[:] # remove all elements + self.servicePath += self.savedPath # add saved elements + del self.savedPath + self.setRoot(self.servicePath[-1]) + if self.current_ref: + self.setCurrentSelection(self.current_ref) + self.current_ref = None + + def clearMarks(self): + self.servicelist.clearMarks() + + def doMark(self): + ref = self.servicelist.getCurrent() + if self.servicelist.isMarked(ref): + self.servicelist.removeMarked(ref) + else: + self.servicelist.addMarked(ref) + + def removeCurrentService(self, bouquet=False): + ref = self.servicelist.getCurrent() + mutableList = self.getMutableList() + if ref.valid() and mutableList is not None: + if not mutableList.removeService(ref): + mutableList.flushChanges() #FIXME dont flush on each single removed service + self.servicelist.removeCurrent() + self.servicelist.resetRoot() + if not bouquet and ref == self.session.nav.getCurrentlyPlayingServiceOrGroup(): + self.channelSelected(doClose=False) + + def addServiceToBouquet(self, dest, service=None): + mutableList = self.getMutableList(dest) + if not mutableList is None: + if service is None: #use current selected service + service = self.servicelist.getCurrent() + if not mutableList.addService(service): + mutableList.flushChanges() + # do some voodoo to check if current_root is equal to dest + cur_root = self.getRoot(); + str1 = cur_root and cur_root.toString() or -1 + str2 = dest.toString() + pos1 = str1.find("FROM BOUQUET") + pos2 = str2.find("FROM BOUQUET") + if pos1 != -1 and pos2 != -1 and str1[pos1:] == str2[pos2:]: + self.servicelist.addService(service) + self.servicelist.resetRoot() + + def toggleMoveMode(self, select=False): + if self.movemode: + if self.entry_marked: + self.toggleMoveMarked() # unmark current entry + self.movemode = False + self.pathChangeDisabled = False # re-enable path change + self.mutableList.flushChanges() # FIXME add check if changes was made + self.mutableList = None + self.setTitle(self.saved_title) + self.saved_title = None + self.servicelist.resetRoot() + else: + self.mutableList = self.getMutableList() + self.movemode = True + select and self.toggleMoveMarked() + self.pathChangeDisabled = True # no path change allowed in movemode + self.saved_title = self.getTitle() + pos = self.saved_title.find(')') + self.setTitle(self.saved_title[:pos+1] + ' ' + _("[move mode]") + self.saved_title[pos+1:]); + self["Service"].editmode = True + + def handleEditCancel(self): + if self.movemode: #movemode active? + self.toggleMoveMode() # disable move mode + elif self.bouquet_mark_edit != OFF: + self.endMarkedEdit(True) # abort edit mode + + def toggleMoveMarked(self): + if self.entry_marked: + self.servicelist.setCurrentMarked(False) + self.entry_marked = False + else: + self.servicelist.setCurrentMarked(True) + self.entry_marked = True + + def doContext(self): + self.session.openWithCallback(self.exitContext, ChannelContextMenu, self) + + def exitContext(self, close=False): + if close: + self.cancel() + +MODE_TV = 0 +MODE_RADIO = 1 + +# type 1 = digital television service +# type 4 = nvod reference service (NYI) +# type 17 = MPEG-2 HD digital television service +# type 22 = advanced codec SD digital television +# type 24 = advanced codec SD NVOD reference service (NYI) +# type 25 = advanced codec HD digital television +# type 27 = advanced codec HD NVOD reference service (NYI) +# type 2 = digital radio sound service +# type 10 = advanced codec digital radio sound service + +service_types_tv = '1:7:1:0:0:0:0:0:0:0:(type == 1) || (type == 17) || (type == 22) || (type == 25) || (type == 134) || (type == 195)' +service_types_radio = '1:7:2:0:0:0:0:0:0:0:(type == 2) || (type == 10)' + +class ChannelSelectionBase(Screen): + def __init__(self, session): + Screen.__init__(self, session) + + self["key_red"] = Button(_("All")) + self["key_green"] = Button(_("Satellites")) + self["key_yellow"] = Button(_("Provider")) + self["key_blue"] = Button(_("Favourites")) + + self["list"] = ServiceList(self) + self.servicelist = self["list"] + + self.numericalTextInput = NumericalTextInput(handleTimeout=False) + self.numericalTextInput.setUseableChars(u'1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ') + + self.servicePathTV = [ ] + self.servicePathRadio = [ ] + self.servicePath = [ ] + self.history = [ ] + self.rootChanged = False + self.startRoot = None + self.zapNumber = "" + self.clearZapNumberTimer = eTimer() + self.clearZapNumberTimer.callback.append(self.clearZapNumber) + + self.mode = MODE_TV + self.dopipzap = False + + self.pathChangeDisabled = False + + self["ChannelSelectBaseActions"] = NumberActionMap(["ChannelSelectBaseActions", "NumberActions", "InputAsciiActions"], + { + "showFavourites": self.showFavourites, + "showAllServices": self.showAllServices, + "showProviders": self.showProviders, + "showSatellites": self.showSatellites, + "nextBouquet": self.nextBouquet, + "prevBouquet": self.prevBouquet, + "nextMarker": self.nextMarker, + "prevMarker": self.prevMarker, + "gotAsciiCode": self.keyAsciiCode, + "keyLeft": self.keyLeft, + "keyRight": self.keyRight, + "1": self.keyNumberGlobal, + "2": self.keyNumberGlobal, + "3": self.keyNumberGlobal, + "4": self.keyNumberGlobal, + "5": self.keyNumberGlobal, + "6": self.keyNumberGlobal, + "7": self.keyNumberGlobal, + "8": self.keyNumberGlobal, + "9": self.keyNumberGlobal, + "0": self.keyNumber0 + }, -2) + self.maintitle = _("Channel selection") + self.recallBouquetMode() + + def getBouquetNumOffset(self, bouquet): + if not config.usage.multibouquet.value: + return 0 + str = bouquet.toString() + offset = 0 + if 'userbouquet.' in bouquet.toCompareString(): + serviceHandler = eServiceCenter.getInstance() + servicelist = serviceHandler.list(bouquet) + if not servicelist is None: + while True: + serviceIterator = servicelist.getNext() + if not serviceIterator.valid(): #check if end of list + break + number = serviceIterator.getChannelNum() + if number > 0: + offset = number - 1 + break + return offset + + def recallBouquetMode(self): + if self.mode == MODE_TV: + self.service_types = service_types_tv + if config.usage.multibouquet.value: + self.bouquet_rootstr = '1:7:1:0:0:0:0:0:0:0:FROM BOUQUET "bouquets.tv" ORDER BY bouquet' + else: + self.bouquet_rootstr = '%s FROM BOUQUET "userbouquet.favourites.tv" ORDER BY bouquet'%(self.service_types) + else: + self.service_types = service_types_radio + if config.usage.multibouquet.value: + self.bouquet_rootstr = '1:7:1:0:0:0:0:0:0:0:FROM BOUQUET "bouquets.radio" ORDER BY bouquet' + else: + self.bouquet_rootstr = '%s FROM BOUQUET "userbouquet.favourites.radio" ORDER BY bouquet'%(self.service_types) + self.bouquet_root = eServiceReference(self.bouquet_rootstr) + + def setTvMode(self): + self.mode = MODE_TV + self.servicePath = self.servicePathTV + self.recallBouquetMode() + title = self.maintitle + pos = title.find(" (") + if pos != -1: + title = title[:pos] + title += _(" (TV)") + self.setTitle(title) + + def setRadioMode(self): + self.mode = MODE_RADIO + self.servicePath = self.servicePathRadio + self.recallBouquetMode() + title = self.maintitle + pos = title.find(" (") + if pos != -1: + title = title[:pos] + title += _(" (Radio)") + self.setTitle(title) + + def setRoot(self, root, justSet=False): + if self.startRoot is None: + self.startRoot = self.getRoot() + path = root.getPath() + isBouquet = 'FROM BOUQUET' in path and (root.flags & eServiceReference.isDirectory) + inBouquetRootList = 'FROM BOUQUET "bouquets.' in path #FIXME HACK + if not inBouquetRootList and isBouquet: + self.servicelist.setMode(ServiceList.MODE_FAVOURITES) + else: + self.servicelist.setMode(ServiceList.MODE_NORMAL) + self.servicelist.setRoot(root, justSet) + self.rootChanged = True + self.buildTitleString() + + def removeModeStr(self, str): + if self.mode == MODE_TV: + pos = str.find(_(" (TV)")) + else: + pos = str.find(_(" (Radio)")) + if pos != -1: + return str[:pos] + return str + + def getServiceName(self, ref): + str = self.removeModeStr(ServiceReference(ref).getServiceName()) + if 'User - bouquets' in str: + return _("User - bouquets") + if not str: + pathstr = ref.getPath() + if 'FROM PROVIDERS' in pathstr: + return _("Provider") + if 'FROM SATELLITES' in pathstr: + return _("Satellites") + if ') ORDER BY name' in pathstr: + return _("All") + return str + + def buildTitleString(self): + titleStr = self.getTitle() + pos = titleStr.find(']') + if pos == -1: + pos = titleStr.find(')') + if pos != -1: + titleStr = titleStr[:pos+1] + Len = len(self.servicePath) + if Len > 0: + base_ref = self.servicePath[0] + if Len > 1: + end_ref = self.servicePath[Len-1] + else: + end_ref = None + nameStr = self.getServiceName(base_ref) + titleStr += ' - ' + nameStr + if end_ref is not None: + if Len > 2: + titleStr += '/../' + else: + titleStr += '/' + nameStr = self.getServiceName(end_ref) + titleStr += nameStr + self.setTitle(titleStr) + + def moveUp(self): + self.servicelist.moveUp() + + def moveDown(self): + self.servicelist.moveDown() + + def clearPath(self): + del self.servicePath[:] + + def enterPath(self, ref, justSet=False): + self.servicePath.append(ref) + self.setRoot(ref, justSet) + + def enterUserbouquet(self, root, save_root=True): + self.clearPath() + self.recallBouquetMode() + if self.bouquet_root: + self.enterPath(self.bouquet_root) + self.enterPath(root) + self.startRoot = None + if save_root: + self.saveRoot() + + def pathUp(self, justSet=False): + prev = self.servicePath.pop() + if self.servicePath: + current = self.servicePath[-1] + self.setRoot(current, justSet) + if not justSet: + self.setCurrentSelection(prev) + return prev + + def isBasePathEqual(self, ref): + if len(self.servicePath) > 1 and self.servicePath[0] == ref: + return True + return False + + def isPrevPathEqual(self, ref): + length = len(self.servicePath) + if length > 1 and self.servicePath[length-2] == ref: + return True + return False + + def preEnterPath(self, refstr): + return False + + def showAllServices(self): + if not self.pathChangeDisabled: + refstr = '%s ORDER BY name'%(self.service_types) + if not self.preEnterPath(refstr): + ref = eServiceReference(refstr) + currentRoot = self.getRoot() + if currentRoot is None or currentRoot != ref: + self.clearPath() + self.enterPath(ref) + self.setCurrentSelectionAlternative(self.session.nav.getCurrentlyPlayingServiceOrGroup()) + + def showSatellites(self): + if not self.pathChangeDisabled: + refstr = '%s FROM SATELLITES ORDER BY satellitePosition'%(self.service_types) + if not self.preEnterPath(refstr): + ref = eServiceReference(refstr) + justSet=False + prev = None + + if self.isBasePathEqual(ref): + if self.isPrevPathEqual(ref): + justSet=True + prev = self.pathUp(justSet) + else: + currentRoot = self.getRoot() + if currentRoot is None or currentRoot != ref: + justSet=True + self.clearPath() + self.enterPath(ref, True) + if justSet: + serviceHandler = eServiceCenter.getInstance() + servicelist = serviceHandler.list(ref) + if not servicelist is None: + while True: + service = servicelist.getNext() + if not service.valid(): #check if end of list + break + unsigned_orbpos = service.getUnsignedData(4) >> 16 + orbpos = service.getData(4) >> 16 + if orbpos < 0: + orbpos += 3600 + if "FROM PROVIDER" in service.getPath(): + service_type = _("Providers") + elif ("flags == %d" %(FLAG_SERVICE_NEW_FOUND)) in service.getPath(): + service_type = _("New") + else: + service_type = _("Services") + try: + # why we need this cast? + service_name = str(nimmanager.getSatDescription(orbpos)) + except: + if unsigned_orbpos == 0xFFFF: #Cable + service_name = _("Cable") + elif unsigned_orbpos == 0xEEEE: #Terrestrial + service_name = _("Terrestrial") + else: + if orbpos > 1800: # west + orbpos = 3600 - orbpos + h = _("W") + else: + h = _("E") + service_name = ("%d.%d" + h) % (orbpos / 10, orbpos % 10) + service.setName("%s - %s" % (service_name, service_type)) + self.servicelist.addService(service) + cur_ref = self.session.nav.getCurrentlyPlayingServiceReference() + if cur_ref: + pos = self.service_types.rfind(':') + refstr = '%s (channelID == %08x%04x%04x) && %s ORDER BY name' %(self.service_types[:pos+1], + cur_ref.getUnsignedData(4), # NAMESPACE + cur_ref.getUnsignedData(2), # TSID + cur_ref.getUnsignedData(3), # ONID + self.service_types[pos+1:]) + ref = eServiceReference(refstr) + ref.setName(_("Current transponder")) + self.servicelist.addService(ref) + self.servicelist.finishFill() + if prev is not None: + self.setCurrentSelection(prev) + elif cur_ref: + refstr = cur_ref.toString() + op = "".join(refstr.split(':', 10)[6:7]) + if len(op) >= 4: + hop = int(op[:-4],16) + if len(op) >= 7 and not op.endswith('0000'): + op = op[:-4] + '0000' + refstr = '1:7:0:0:0:0:%s:0:0:0:(satellitePosition == %s) && %s ORDER BY name' % (op, hop, self.service_types[self.service_types.rfind(':')+1:]) + self.setCurrentSelectionAlternative(eServiceReference(refstr)) + + def showProviders(self): + if not self.pathChangeDisabled: + refstr = '%s FROM PROVIDERS ORDER BY name'%(self.service_types) + if not self.preEnterPath(refstr): + ref = eServiceReference(refstr) + if self.isBasePathEqual(ref): + self.pathUp() + else: + currentRoot = self.getRoot() + if currentRoot is None or currentRoot != ref: + self.clearPath() + self.enterPath(ref) + service = self.session.nav.getCurrentService() + if service: + info = service.info() + if info: + provider = info.getInfoString(iServiceInformation.sProvider) + refstr = '1:7:0:0:0:0:0:0:0:0:(provider == \"%s\") && %s ORDER BY name:%s' % (provider, self.service_types[self.service_types.rfind(':')+1:],provider) + self.setCurrentSelectionAlternative(eServiceReference(refstr)) + + def changeBouquet(self, direction): + if not self.pathChangeDisabled: + if len(self.servicePath) > 1: + #when enter satellite root list we must do some magic stuff.. + ref = eServiceReference('%s FROM SATELLITES ORDER BY satellitePosition'%(self.service_types)) + if self.isBasePathEqual(ref): + self.showSatellites() + else: + self.pathUp() + if direction < 0: + self.moveUp() + else: + self.moveDown() + ref = self.getCurrentSelection() + self.enterPath(ref) + + def inBouquet(self): + if self.servicePath and self.servicePath[0] == self.bouquet_root: + return True + return False + + def atBegin(self): + return self.servicelist.atBegin() + + def atEnd(self): + return self.servicelist.atEnd() + + def nextBouquet(self): + if self.shown and config.usage.oldstyle_channel_select_controls.value: + self.servicelist.instance.moveSelection(self.servicelist.instance.pageUp) + elif "reverseB" in config.usage.servicelist_cursor_behavior.value: + self.changeBouquet(-1) + else: + self.changeBouquet(+1) + + def prevBouquet(self): + if self.shown and config.usage.oldstyle_channel_select_controls.value: + self.servicelist.instance.moveSelection(self.servicelist.instance.pageDown) + elif "reverseB" in config.usage.servicelist_cursor_behavior.value: + self.changeBouquet(+1) + else: + self.changeBouquet(-1) + + def keyLeft(self): + if config.usage.oldstyle_channel_select_controls.value: + self.changeBouquet(-1) + else: + self.servicelist.instance.moveSelection(self.servicelist.instance.pageUp) + + def keyRight(self): + if config.usage.oldstyle_channel_select_controls.value: + self.changeBouquet(+1) + else: + self.servicelist.instance.moveSelection(self.servicelist.instance.pageDown) + + def showFavourites(self): + if not self.pathChangeDisabled: + if not self.preEnterPath(self.bouquet_rootstr): + if self.isBasePathEqual(self.bouquet_root): + self.pathUp() + else: + currentRoot = self.getRoot() + if currentRoot is None or currentRoot != self.bouquet_root: + self.clearPath() + self.enterPath(self.bouquet_root) + + def keyNumber0(self, number): + if len(self.servicePath) > 1 and not self.zapNumber: + self.keyGoUp() + else: + self.keyNumberGlobal(number) + + def keyNumberGlobal(self, number): + if self.isBasePathEqual(self.bouquet_root): + self.numberZapActions(number) + else: + current_root = self.getRoot() + if current_root and 'FROM BOUQUET "bouquets.' in current_root.getPath(): + self.numberZapActions(number) + else: + unichar = self.numericalTextInput.getKey(number) + charstr = unichar.encode("utf-8") + if len(charstr) == 1: + self.servicelist.moveToChar(charstr[0]) + + def numberZapActions(self, number): + if not self.movemode: + if len(self.zapNumber)>4: + self.clearZapNumber() + self.zapNumber = self.zapNumber + str(number) + ref, bouquet = Screens.InfoBar.InfoBar.instance.searchNumber(int(self.zapNumber), bouquet=self.getRoot()) + if ref: + if not ref.flags & eServiceReference.isMarker: + self.enterUserbouquet(bouquet, save_root=False) + self.servicelist.setCurrent(ref) + self.clearZapNumberTimer.start(1000, True) + else: + self.clearZapNumber() + + def clearZapNumber(self): + self.clearZapNumberTimer.stop() + self.zapNumber = "" + + def keyAsciiCode(self): + unichar = unichr(getPrevAsciiCode()) + charstr = unichar.encode("utf-8") + if len(charstr) == 1: + self.servicelist.moveToChar(charstr[0]) + + def getRoot(self): + return self.servicelist.getRoot() + + def getCurrentSelection(self): + return self.servicelist.getCurrent() + + def setCurrentSelection(self, service): + if service: + self.servicelist.setCurrent(service, adjust=False) + + def setCurrentSelectionAlternative(self, ref): + if self.bouquet_mark_edit == EDIT_ALTERNATIVES and not (ref.flags & eServiceReference.isDirectory): + for markedService in self.servicelist.getMarked(): + markedService = eServiceReference(markedService) + self.setCurrentSelection(markedService) + if markedService == self.getCurrentSelection(): + return + self.setCurrentSelection(ref) + + def getBouquetList(self): + bouquets = [ ] + serviceHandler = eServiceCenter.getInstance() + if config.usage.multibouquet.value: + list = serviceHandler.list(self.bouquet_root) + if list: + while True: + s = list.getNext() + if not s.valid(): + break + if s.flags & eServiceReference.isDirectory: + info = serviceHandler.info(s) + if info: + bouquets.append((info.getName(s), s)) + return bouquets + else: + info = serviceHandler.info(self.bouquet_root) + if info: + bouquets.append((info.getName(self.bouquet_root), self.bouquet_root)) + return bouquets + return None + + def keyGoUp(self): + if len(self.servicePath) > 1: + if self.isBasePathEqual(self.bouquet_root): + self.showFavourites() + else: + ref = eServiceReference('%s FROM SATELLITES ORDER BY satellitePosition'%(self.service_types)) + if self.isBasePathEqual(ref): + self.showSatellites() + else: + ref = eServiceReference('%s FROM PROVIDERS ORDER BY name'%(self.service_types)) + if self.isBasePathEqual(ref): + self.showProviders() + else: + self.showAllServices() + + def nextMarker(self): + self.servicelist.moveToNextMarker() + + def prevMarker(self): + self.servicelist.moveToPrevMarker() + + def gotoCurrentServiceOrProvider(self, ref): + str = ref.toString() + if _("Providers") in str: + service = self.session.nav.getCurrentService() + if service: + info = service.info() + if info: + provider = info.getInfoString(iServiceInformation.sProvider) + op = int(self.session.nav.getCurrentlyPlayingServiceOrGroup().toString().split(':')[6][:-4] or "0",16) + refstr = '1:7:0:0:0:0:0:0:0:0:(provider == \"%s\") && (satellitePosition == %s) && %s ORDER BY name:%s' % (provider, op, self.service_types[self.service_types.rfind(':')+1:],provider) + self.servicelist.setCurrent(eServiceReference(refstr)) + elif not self.isBasePathEqual(self.bouquet_root) or self.bouquet_mark_edit == EDIT_ALTERNATIVES: + self.setCurrentSelectionAlternative(self.session.nav.getCurrentlyPlayingServiceOrGroup()) + +HISTORYSIZE = 20 + +#config for lastservice +config.tv = ConfigSubsection() +config.tv.lastservice = ConfigText() +config.tv.lastroot = ConfigText() +config.radio = ConfigSubsection() +config.radio.lastservice = ConfigText() +config.radio.lastroot = ConfigText() +config.servicelist = ConfigSubsection() +config.servicelist.lastmode = ConfigText(default = "tv") +config.servicelist.startupservice = ConfigText() +config.servicelist.startuproot = ConfigText() +config.servicelist.startupmode = ConfigText(default = "tv") + +class ChannelSelection(ChannelSelectionBase, ChannelSelectionEdit, ChannelSelectionEPG, SelectionEventInfo): + def __init__(self, session): + ChannelSelectionBase.__init__(self,session) + ChannelSelectionEdit.__init__(self) + ChannelSelectionEPG.__init__(self) + SelectionEventInfo.__init__(self) + + self["actions"] = ActionMap(["OkCancelActions", "TvRadioActions"], + { + "cancel": self.cancel, + "ok": self.channelSelected, + "keyRadio": self.doRadioButton, + "keyTV": self.doTVButton, + }) + + self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + { + iPlayableService.evStart: self.__evServiceStart, + iPlayableService.evEnd: self.__evServiceEnd + }) + + self.startServiceRef = None + + self.history = [ ] + self.history_pos = 0 + + if config.servicelist.startupservice.value and config.servicelist.startuproot.value: + config.servicelist.lastmode.value = config.servicelist.startupmode.value + if config.servicelist.lastmode.value == "tv": + config.tv.lastservice.value = config.servicelist.startupservice.value + config.tv.lastroot.value = config.servicelist.startuproot.value + elif config.servicelist.lastmode.value == "radio": + config.radio.lastservice.value = config.servicelist.startupservice.value + config.radio.lastroot.value = config.servicelist.startuproot.value + + self.lastservice = config.tv.lastservice + self.lastroot = config.tv.lastroot + self.revertMode = None + config.usage.multibouquet.addNotifier(self.multibouquet_config_changed) + self.new_service_played = False + self.dopipzap = False + self.onExecBegin.append(self.asciiOn) + self.mainScreenMode = None + self.mainScreenRoot = None + + self.lastChannelRootTimer = eTimer() + self.lastChannelRootTimer.callback.append(self.__onCreate) + self.lastChannelRootTimer.start(100,True) + self.pipzaptimer = eTimer() + + def asciiOn(self): + rcinput = eRCInput.getInstance() + rcinput.setKeyboardMode(rcinput.kmAscii) + + def asciiOff(self): + rcinput = eRCInput.getInstance() + rcinput.setKeyboardMode(rcinput.kmNone) + + def multibouquet_config_changed(self, val): + self.recallBouquetMode() + + def __evServiceStart(self): + if self.dopipzap and hasattr(self.session, 'pip'): + self.servicelist.setPlayableIgnoreService(self.session.pip.getCurrentServiceReference() or eServiceReference()) + else: + service = self.session.nav.getCurrentService() + if service: + info = service.info() + if info: + refstr = info.getInfoString(iServiceInformation.sServiceref) + self.servicelist.setPlayableIgnoreService(eServiceReference(refstr)) + + def __evServiceEnd(self): + self.servicelist.setPlayableIgnoreService(eServiceReference()) + + def setMode(self): + self.rootChanged = True + self.restoreRoot() + lastservice = eServiceReference(self.lastservice.value) + if lastservice.valid(): + self.setCurrentSelection(lastservice) + + def doTVButton(self): + if self.mode == MODE_TV: + self.channelSelected(doClose = False) + else: + self.setModeTv() + + def setModeTv(self): + if self.revertMode is None: + self.revertMode = self.mode + self.lastservice = config.tv.lastservice + self.lastroot = config.tv.lastroot + config.servicelist.lastmode.value = "tv" + self.setTvMode() + self.setMode() + + def doRadioButton(self): + if self.mode == MODE_RADIO: + self.channelSelected(doClose=False) + else: + self.setModeRadio() + + def setModeRadio(self): + if self.revertMode is None: + self.revertMode = self.mode + if config.usage.e1like_radio_mode.value: + self.lastservice = config.radio.lastservice + self.lastroot = config.radio.lastroot + config.servicelist.lastmode.value = "radio" + self.setRadioMode() + self.setMode() + + def __onCreate(self): + if config.usage.e1like_radio_mode.value: + if config.servicelist.lastmode.value == "tv": + self.setModeTv() + else: + self.setModeRadio() + else: + self.setModeTv() + lastservice = eServiceReference(self.lastservice.value) + if lastservice.valid(): + self.zap() + + def channelSelected(self, doClose = True): + if self.startServiceRef is None and not doClose: + self.startServiceRef = self.session.nav.getCurrentlyPlayingServiceOrGroup() + ref = self.getCurrentSelection() + if self.movemode: + self.toggleMoveMarked() + elif (ref.flags & eServiceReference.flagDirectory) == eServiceReference.flagDirectory: + self.enterPath(ref) + self.gotoCurrentServiceOrProvider(ref) + elif self.bouquet_mark_edit != OFF: + if not (self.bouquet_mark_edit == EDIT_ALTERNATIVES and ref.flags & eServiceReference.isGroup): + self.doMark() + elif not (ref.flags & eServiceReference.isMarker or ref.type == -1): + root = self.getRoot() + if not root or not (root.flags & eServiceReference.isGroup): + self.zap(enable_pipzap=doClose, preview_zap=not doClose) + self.asciiOff() + if doClose: + if self.dopipzap: + self.zapBack() + self.startServiceRef = None + self.startRoot = None + self.correctChannelNumber() + self.close(ref) + + def togglePipzap(self): + assert(self.session.pip) + title = self.instance.getTitle() + pos = title.find(" (") + if pos != -1: + title = title[:pos] + if self.dopipzap: + # Mark PiP as inactive and effectively deactivate pipzap + self.hidePipzapMessage() + self.dopipzap = False + + # Disable PiP if not playing a service + if self.session.pip.pipservice is None: + self.session.pipshown = False + del self.session.pip + self.__evServiceStart() + # Move to playing service + lastservice = eServiceReference(self.lastservice.value) + if lastservice.valid() and self.getCurrentSelection() != lastservice: + self.setCurrentSelection(lastservice) + + title += _(" (TV)") + else: + # Mark PiP as active and effectively active pipzap + self.showPipzapMessage() + self.dopipzap = True + self.__evServiceStart() + # Move to service playing in pip (will not work with subservices) + self.setCurrentSelection(self.session.pip.getCurrentService()) + + title += _(" (PiP)") + self.setTitle(title) + self.buildTitleString() + + def showPipzapMessage(self): + time = config.usage.infobar_timeout.index + if time: + self.pipzaptimer.callback.append(self.hidePipzapMessage) + self.pipzaptimer.startLongTimer(time) + self.session.pip.active() + + def hidePipzapMessage(self): + if self.pipzaptimer.isActive(): + self.pipzaptimer.callback.remove(self.hidePipzapMessage) + self.pipzaptimer.stop() + self.session.pip.inactive() + + #called from infoBar and channelSelected + def zap(self, enable_pipzap=False, preview_zap=False, checkParentalControl=True, ref=None): + self.curRoot = self.startRoot + nref = ref or self.getCurrentSelection() + ref = self.session.nav.getCurrentlyPlayingServiceOrGroup() + if enable_pipzap and self.dopipzap: + ref = self.session.pip.getCurrentService() + if ref is None or ref != nref: + nref = self.session.pip.resolveAlternatePipService(nref) + if nref and (not checkParentalControl or Components.ParentalControl.parentalControl.isServicePlayable(nref, boundFunction(self.zap, enable_pipzap=True, checkParentalControl=False))): + self.session.pip.playService(nref) + self.__evServiceStart() + self.showPipzapMessage() + else: + self.setStartRoot(self.curRoot) + self.setCurrentSelection(ref) + elif ref is None or ref != nref: + Screens.InfoBar.InfoBar.instance.checkTimeshiftRunning(boundFunction(self.zapCheckTimeshiftCallback, enable_pipzap, preview_zap, nref)) + elif not preview_zap: + self.saveRoot() + self.saveChannel(nref) + config.servicelist.lastmode.save() + self.setCurrentSelection(nref) + if self.startServiceRef is None or nref != self.startServiceRef: + self.addToHistory(nref) + self.rootChanged = False + self.revertMode = None + + def zapCheckTimeshiftCallback(self, enable_pipzap, preview_zap, nref, answer): + if answer: + self.new_service_played = True + self.session.nav.playService(nref) + if not preview_zap: + self.saveRoot() + self.saveChannel(nref) + config.servicelist.lastmode.save() + if self.startServiceRef is None or nref != self.startServiceRef: + self.addToHistory(nref) + if self.dopipzap: + self.setCurrentSelection(self.session.pip.getCurrentService()) + else: + self.mainScreenMode = config.servicelist.lastmode.value + self.mainScreenRoot = self.getRoot() + self.revertMode = None + else: + Notifications.RemovePopup("Parental control") + self.setCurrentSelection(nref) + else: + self.setStartRoot(self.curRoot) + self.setCurrentSelection(self.session.nav.getCurrentlyPlayingServiceOrGroup()) + if not preview_zap: + self.hide() + + def newServicePlayed(self): + ret = self.new_service_played + self.new_service_played = False + return ret + + def addToHistory(self, ref): + if self.servicePath is not None: + tmp=self.servicePath[:] + tmp.append(ref) + try: + del self.history[self.history_pos+1:] + except: + pass + self.history.append(tmp) + hlen = len(self.history) + if hlen > HISTORYSIZE: + del self.history[0] + hlen -= 1 + self.history_pos = hlen-1 + + def historyBack(self): + hlen = len(self.history) + currentPlayedRef = self.session.nav.getCurrentlyPlayingServiceOrGroup() + if hlen > 0 and self.history[self.history_pos][-1] != currentPlayedRef: + self.addToHistory(currentPlayedRef) + hlen = len(self.history) + if hlen > 1 and self.history_pos > 0: + self.history_pos -= 1 + self.setHistoryPath() + + def historyNext(self): + hlen = len(self.history) + if hlen > 1 and self.history_pos < (hlen-1): + self.history_pos += 1 + self.setHistoryPath() + + def setHistoryPath(self, doZap=True): + path = self.history[self.history_pos][:] + ref = path.pop() + del self.servicePath[:] + self.servicePath += path + self.saveRoot() + root = path[-1] + cur_root = self.getRoot() + if cur_root and cur_root != root: + self.setRoot(root) + if doZap: + self.session.nav.playService(ref) + if self.dopipzap: + self.setCurrentSelection(self.session.pip.getCurrentService()) + else: + self.setCurrentSelection(ref) + self.saveChannel(ref) + + def saveRoot(self): + path = '' + for i in self.servicePath: + path += i.toString() + path += ';' + if path and path != self.lastroot.value: + if self.mode == MODE_RADIO and 'FROM BOUQUET "bouquets.tv"' in path: + self.setModeTv() + elif 'FROM BOUQUET "bouquets.radio"' in path: + self.setModeRadio() + self.lastroot.value = path + self.lastroot.save() + + def restoreRoot(self): + tmp = [x for x in self.lastroot.value.split(';') if x != ''] + current = [x.toString() for x in self.servicePath] + if tmp != current or self.rootChanged: + self.clearPath() + cnt = 0 + for i in tmp: + self.servicePath.append(eServiceReference(i)) + cnt += 1 + if cnt: + path = self.servicePath.pop() + self.enterPath(path) + else: + self.showFavourites() + self.saveRoot() + self.rootChanged = False + + def preEnterPath(self, refstr): + if self.servicePath and self.servicePath[0] != eServiceReference(refstr): + pathstr = self.lastroot.value + if pathstr is not None and refstr in pathstr: + self.restoreRoot() + lastservice = eServiceReference(self.lastservice.value) + if lastservice.valid(): + self.setCurrentSelection(lastservice) + return True + return False + + def saveChannel(self, ref): + if ref is not None: + refstr = ref.toString() + else: + refstr = "" + if refstr != self.lastservice.value: + self.lastservice.value = refstr + self.lastservice.save() + + def setCurrentServicePath(self, path, doZap=True): + if self.history: + self.history[self.history_pos] = path + else: + self.history.append(path) + self.setHistoryPath(doZap) + + def getCurrentServicePath(self): + if self.history: + return self.history[self.history_pos] + return None + + def recallPrevService(self): + hlen = len(self.history) + currentPlayedRef = self.session.nav.getCurrentlyPlayingServiceOrGroup() + if hlen > 0 and self.history[self.history_pos][-1] != currentPlayedRef: + self.addToHistory(currentPlayedRef) + hlen = len(self.history) + if hlen > 1: + if self.history_pos == hlen-1: + tmp = self.history[self.history_pos] + self.history[self.history_pos] = self.history[self.history_pos-1] + self.history[self.history_pos-1] = tmp + else: + tmp = self.history[self.history_pos+1] + self.history[self.history_pos+1] = self.history[self.history_pos] + self.history[self.history_pos] = tmp + self.setHistoryPath() + + def cancel(self): + if self.revertMode is None: + self.restoreRoot() + if self.dopipzap: + # This unfortunately won't work with subservices + self.setCurrentSelection(self.session.pip.getCurrentService()) + else: + lastservice = eServiceReference(self.lastservice.value) + if lastservice.valid() and self.getCurrentSelection() != lastservice: + self.setCurrentSelection(lastservice) + self.asciiOff() + self.zapBack() + self.correctChannelNumber() + self.close(None) + + def zapBack(self): + if self.startServiceRef and self.session.nav.getCurrentlyPlayingServiceOrGroup() != self.startServiceRef: + self.setStartRoot(self.startRoot) + self.new_service_played = True + self.session.nav.playService(self.startServiceRef) + self.saveChannel(self.startServiceRef) + self.startServiceRef = None + self.startRoot = None + if self.dopipzap: + # This unfortunately won't work with subservices + self.setCurrentSelection(self.session.pip.getCurrentService()) + + def setStartRoot(self, root): + if root: + if self.revertMode == MODE_TV: + self.setModeTv() + elif self.revertMode == MODE_RADIO: + self.setModeRadio() + self.revertMode = None + self.enterUserbouquet(root) + + def correctChannelNumber(self): + current_ref = self.session.nav.getCurrentlyPlayingServiceOrGroup() + if self.dopipzap: + tmp_mode = config.servicelist.lastmode.value + tmp_root = self.getRoot() + tmp_ref = self.getCurrentSelection() + if self.mainScreenMode == "tv": + self.setModeTv() + elif self.mainScreenMode == "radio": + self.setModeRadio() + if self.mainScreenRoot: + self.setRoot(self.mainScreenRoot) + self.setCurrentSelection(current_ref) + selected_ref = self.getCurrentSelection() + if selected_ref and current_ref and selected_ref.getChannelNum() != current_ref.getChannelNum(): + oldref = self.session.nav.currentlyPlayingServiceReference + if oldref and selected_ref == oldref or (oldref != current_ref and selected_ref == current_ref): + self.session.nav.currentlyPlayingServiceOrGroup = selected_ref + from Components.Renderer.ChannelNumber import doRenumber + doRenumber() + if self.dopipzap: + if tmp_mode == "tv": + self.setModeTv() + elif tmp_mode == "radio": + self.setModeRadio() + self.enterUserbouquet(tmp_root) + pip_ref = self.session.pip.getCurrentService() + if tmp_ref and pip_ref and tmp_ref.getChannelNum() != pip_ref.getChannelNum(): + self.session.pip.currentService = tmp_ref + self.setCurrentSelection(tmp_ref) + +class RadioInfoBar(Screen): + def __init__(self, session): + Screen.__init__(self, session) + self["RdsDecoder"] = RdsDecoder(self.session.nav) + +class ChannelSelectionRadio(ChannelSelectionBase, ChannelSelectionEdit, ChannelSelectionEPG, InfoBarBase): + ALLOW_SUSPEND = True + + def __init__(self, session, infobar): + ChannelSelectionBase.__init__(self, session) + ChannelSelectionEdit.__init__(self) + ChannelSelectionEPG.__init__(self) + InfoBarBase.__init__(self) + self.infobar = infobar + self.startServiceRef = None + self.onLayoutFinish.append(self.onCreate) + + self.info = session.instantiateDialog(RadioInfoBar) # our simple infobar + + self["actions"] = ActionMap(["OkCancelActions", "TvRadioActions"], + { + "keyTV": self.cancel, + "keyRadio": self.cancel, + "cancel": self.cancel, + "ok": self.channelSelected, + }) + + self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + { + iPlayableService.evStart: self.__evServiceStart, + iPlayableService.evEnd: self.__evServiceEnd + }) + +########## RDS Radiotext / Rass Support BEGIN + self.infobar = infobar # reference to real infobar (the one and only) + self["RdsDecoder"] = self.info["RdsDecoder"] + self["RdsActions"] = HelpableActionMap(self, "InfobarRdsActions", + { + "startRassInteractive": (self.startRassInteractive, _("View Rass interactive...")) + },-1) + self["RdsActions"].setEnabled(False) + infobar.rds_display.onRassInteractivePossibilityChanged.append(self.RassInteractivePossibilityChanged) + self.onClose.append(self.__onClose) + self.onExecBegin.append(self.__onExecBegin) + self.onExecEnd.append(self.__onExecEnd) + + def __onClose(self): + lastservice = eServiceReference(config.tv.lastservice.value) + self.session.nav.playService(lastservice) + + def startRassInteractive(self): + self.info.hide(); + self.infobar.rass_interactive = self.session.openWithCallback(self.RassInteractiveClosed, RassInteractive) + + def RassInteractiveClosed(self): + self.info.show() + self.infobar.rass_interactive = None + self.infobar.RassSlidePicChanged() + + def RassInteractivePossibilityChanged(self, state): + self["RdsActions"].setEnabled(state) +########## RDS Radiotext / Rass Support END + + def __onExecBegin(self): + self.info.show() + + def __onExecEnd(self): + self.info.hide() + + def cancel(self): + self.infobar.rds_display.onRassInteractivePossibilityChanged.remove(self.RassInteractivePossibilityChanged) + self.info.hide() + #set previous tv service + self.close(None) + + def __evServiceStart(self): + service = self.session.nav.getCurrentService() + if service: + info = service.info() + if info: + refstr = info.getInfoString(iServiceInformation.sServiceref) + self.servicelist.setPlayableIgnoreService(eServiceReference(refstr)) + + def __evServiceEnd(self): + self.servicelist.setPlayableIgnoreService(eServiceReference()) + + def saveRoot(self): + path = '' + for i in self.servicePathRadio: + path += i.toString() + path += ';' + if path and path != config.radio.lastroot.value: + config.radio.lastroot.value = path + config.radio.lastroot.save() + + def restoreRoot(self): + tmp = [x for x in config.radio.lastroot.value.split(';') if x != ''] + current = [x.toString() for x in self.servicePath] + if tmp != current or self.rootChanged: + cnt = 0 + for i in tmp: + self.servicePathRadio.append(eServiceReference(i)) + cnt += 1 + if cnt: + path = self.servicePathRadio.pop() + self.enterPath(path) + else: + self.showFavourites() + self.saveRoot() + self.rootChanged = False + + def preEnterPath(self, refstr): + if self.servicePathRadio and self.servicePathRadio[0] != eServiceReference(refstr): + pathstr = config.radio.lastroot.value + if pathstr is not None and refstr in pathstr: + self.restoreRoot() + lastservice = eServiceReference(config.radio.lastservice.value) + if lastservice.valid(): + self.setCurrentSelection(lastservice) + return True + return False + + def onCreate(self): + self.setRadioMode() + self.restoreRoot() + lastservice = eServiceReference(config.radio.lastservice.value) + if lastservice.valid(): + self.servicelist.setCurrent(lastservice) + self.session.nav.playService(lastservice) + else: + self.session.nav.stopService() + self.info.show() + + def channelSelected(self, doClose=False): # just return selected service + ref = self.getCurrentSelection() + if self.movemode: + self.toggleMoveMarked() + elif (ref.flags & eServiceReference.flagDirectory) == eServiceReference.flagDirectory: + self.enterPath(ref) + self.gotoCurrentServiceOrProvider(ref) + elif self.bouquet_mark_edit != OFF: + if not (self.bouquet_mark_edit == EDIT_ALTERNATIVES and ref.flags & eServiceReference.isGroup): + self.doMark() + elif not (ref.flags & eServiceReference.isMarker): # no marker + cur_root = self.getRoot() + if not cur_root or not (cur_root.flags & eServiceReference.isGroup): + playingref = self.session.nav.getCurrentlyPlayingServiceOrGroup() + if playingref is None or playingref != ref: + self.session.nav.playService(ref) + config.radio.lastservice.value = ref.toString() + config.radio.lastservice.save() + self.saveRoot() + + def zapBack(self): + self.channelSelected() + +class SimpleChannelSelection(ChannelSelectionBase): + def __init__(self, session, title): + ChannelSelectionBase.__init__(self, session) + self["actions"] = ActionMap(["OkCancelActions", "TvRadioActions"], + { + "cancel": self.close, + "ok": self.channelSelected, + "keyRadio": self.setModeRadio, + "keyTV": self.setModeTv, + }) + self.bouquet_mark_edit = OFF + self.title = title + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + self.setModeTv() + + def saveRoot(self): + pass + + def channelSelected(self): # just return selected service + ref = self.getCurrentSelection() + if (ref.flags & eServiceReference.flagDirectory) == eServiceReference.flagDirectory: + self.enterPath(ref) + self.gotoCurrentServiceOrProvider(ref) + elif not (ref.flags & eServiceReference.isMarker): + ref = self.getCurrentSelection() + self.close(ref) + + def setModeTv(self): + self.setTvMode() + self.showFavourites() + + def setModeRadio(self): + self.setRadioMode() + self.showFavourites() diff --git a/lib/python/Screens/ChoiceBox.py b/lib/python/Screens/ChoiceBox.py new file mode 100644 index 0000000..373a39c --- /dev/null +++ b/lib/python/Screens/ChoiceBox.py @@ -0,0 +1,162 @@ +from Screens.Screen import Screen +from Components.ActionMap import NumberActionMap +from Components.Label import Label +from Components.ChoiceList import ChoiceEntryComponent, ChoiceList +from Components.Sources.StaticText import StaticText +import enigma + +class ChoiceBox(Screen): + def __init__(self, session, title = "", list = [], keys = None, selection = 0, skin_name = []): + Screen.__init__(self, session) + + if isinstance(skin_name, str): + skin_name = [skin_name] + self.skinName = skin_name + ["ChoiceBox"] + + self["text"] = Label(title) + self.list = [] + self.summarylist = [] + if keys is None: + self.__keys = [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "red", "green", "yellow", "blue" ] + (len(list) - 10) * [""] + else: + self.__keys = keys + (len(list) - len(keys)) * [""] + + self.keymap = {} + pos = 0 + for x in list: + strpos = str(self.__keys[pos]) + self.list.append(ChoiceEntryComponent(key = strpos, text = x)) + if self.__keys[pos] != "": + self.keymap[self.__keys[pos]] = list[pos] + self.summarylist.append((self.__keys[pos],x[0])) + pos += 1 + self["list"] = ChoiceList(list = self.list, selection = selection) + self["summary_list"] = StaticText() + self["summary_selection"] = StaticText() + self.updateSummary(selection) + + self["actions"] = NumberActionMap(["WizardActions", "InputActions", "ColorActions", "DirectionActions"], + { + "ok": self.go, + "back": self.cancel, + "1": self.keyNumberGlobal, + "2": self.keyNumberGlobal, + "3": self.keyNumberGlobal, + "4": self.keyNumberGlobal, + "5": self.keyNumberGlobal, + "6": self.keyNumberGlobal, + "7": self.keyNumberGlobal, + "8": self.keyNumberGlobal, + "9": self.keyNumberGlobal, + "0": self.keyNumberGlobal, + "red": self.keyRed, + "green": self.keyGreen, + "yellow": self.keyYellow, + "blue": self.keyBlue, + "up": self.up, + "down": self.down + }, -1) + + def autoResize(self): + orgwidth = self.instance.size().width() + orgpos = self.instance.position() + textsize = self["text"].getSize() + count = len(self.list) + if count > 10: + count = 10 + offset = 25 * count + wsizex = textsize[0] + 60 + wsizey = textsize[1] + offset + if (520 > wsizex): + wsizex = 520 + wsize = (wsizex, wsizey) + # resize + self.instance.resize(enigma.eSize(*wsize)) + # resize label + self["text"].instance.resize(enigma.eSize(*textsize)) + # move list + listsize = (wsizex, 25 * count) + self["list"].instance.move(enigma.ePoint(0, textsize[1])) + self["list"].instance.resize(enigma.eSize(*listsize)) + # center window + newwidth = wsize[0] + self.instance.move(enigma.ePoint((720-wsizex)/2, (576-wsizey)/(count > 7 and 2 or 3))) + + def keyLeft(self): + pass + + def keyRight(self): + pass + + def up(self): + if len(self["list"].list) > 0: + while 1: + self["list"].instance.moveSelection(self["list"].instance.moveUp) + self.updateSummary(self["list"].l.getCurrentSelectionIndex()) + if self["list"].l.getCurrentSelection()[0][0] != "--" or self["list"].l.getCurrentSelectionIndex() == 0: + break + + def down(self): + if len(self["list"].list) > 0: + while 1: + self["list"].instance.moveSelection(self["list"].instance.moveDown) + self.updateSummary(self["list"].l.getCurrentSelectionIndex()) + if self["list"].l.getCurrentSelection()[0][0] != "--" or self["list"].l.getCurrentSelectionIndex() == len(self["list"].list) - 1: + break + + # runs a number shortcut + def keyNumberGlobal(self, number): + self.goKey(str(number)) + + # runs the current selected entry + def go(self): + cursel = self["list"].l.getCurrentSelection() + if cursel: + self.goEntry(cursel[0]) + else: + self.cancel() + + # runs a specific entry + def goEntry(self, entry): + if len(entry) > 2 and isinstance(entry[1], str) and entry[1] == "CALLFUNC": + # CALLFUNC wants to have the current selection as argument + arg = self["list"].l.getCurrentSelection()[0] + entry[2](arg) + else: + self.close(entry) + + # lookups a key in the keymap, then runs it + def goKey(self, key): + if self.keymap.has_key(key): + entry = self.keymap[key] + self.goEntry(entry) + + # runs a color shortcut + def keyRed(self): + self.goKey("red") + + def keyGreen(self): + self.goKey("green") + + def keyYellow(self): + self.goKey("yellow") + + def keyBlue(self): + self.goKey("blue") + + def updateSummary(self, curpos=0): + pos = 0 + summarytext = "" + for entry in self.summarylist: + if pos > curpos-2 and pos < curpos+5: + if pos == curpos: + summarytext += ">" + self["summary_selection"].setText(entry[1]) + else: + summarytext += entry[0] + summarytext += ' ' + entry[1] + '\n' + pos += 1 + self["summary_list"].setText(summarytext) + + def cancel(self): + self.close(None) diff --git a/lib/python/Screens/Ci.py b/lib/python/Screens/Ci.py new file mode 100644 index 0000000..04d13b7 --- /dev/null +++ b/lib/python/Screens/Ci.py @@ -0,0 +1,395 @@ +from Screen import Screen +from Components.ActionMap import ActionMap +from Components.ActionMap import NumberActionMap +from Components.Label import Label + +from Components.config import config, ConfigSubsection, ConfigSelection, ConfigSubList, getConfigListEntry, KEY_LEFT, KEY_RIGHT, KEY_0, ConfigNothing, ConfigPIN +from Components.ConfigList import ConfigList + +from Components.SystemInfo import SystemInfo + +from enigma import eTimer, eDVBCI_UI, eDVBCIInterfaces + +MAX_NUM_CI = 4 + +def setCIBitrate(configElement): + if configElement.value == "no": + eDVBCI_UI.getInstance().setClockRate(configElement.slotid, eDVBCI_UI.rateNormal) + else: + eDVBCI_UI.getInstance().setClockRate(configElement.slotid, eDVBCI_UI.rateHigh) + +def InitCiConfig(): + config.ci = ConfigSubList() + for slot in range(MAX_NUM_CI): + config.ci.append(ConfigSubsection()) + config.ci[slot].canDescrambleMultipleServices = ConfigSelection(choices = [("auto", _("Auto")), ("no", _("No")), ("yes", _("Yes"))], default = "auto") + if SystemInfo["CommonInterfaceSupportsHighBitrates"]: + config.ci[slot].canHandleHighBitrates = ConfigSelection(choices = [("no", _("No")), ("yes", _("Yes"))], default = "yes") + config.ci[slot].canHandleHighBitrates.slotid = slot + config.ci[slot].canHandleHighBitrates.addNotifier(setCIBitrate) + +class MMIDialog(Screen): + def __init__(self, session, slotid, action, handler = eDVBCI_UI.getInstance(), wait_text = _("wait for ci...") ): + Screen.__init__(self, session) + + print "MMIDialog with action" + str(action) + + self.mmiclosed = False + self.tag = None + self.slotid = slotid + + self.timer = eTimer() + self.timer.callback.append(self.keyCancel) + + #else the skins fails + self["title"] = Label("") + self["subtitle"] = Label("") + self["bottom"] = Label("") + self["entries"] = ConfigList([ ]) + + self["actions"] = NumberActionMap(["SetupActions"], + { + "ok": self.okbuttonClick, + "cancel": self.keyCancel, + #for PIN + "left": self.keyLeft, + "right": self.keyRight, + "1": self.keyNumberGlobal, + "2": self.keyNumberGlobal, + "3": self.keyNumberGlobal, + "4": self.keyNumberGlobal, + "5": self.keyNumberGlobal, + "6": self.keyNumberGlobal, + "7": self.keyNumberGlobal, + "8": self.keyNumberGlobal, + "9": self.keyNumberGlobal, + "0": self.keyNumberGlobal + }, -1) + + self.action = action + + self.handler = handler + self.wait_text = wait_text + + if action == 2: #start MMI + handler.startMMI(self.slotid) + self.showWait() + elif action == 3: #mmi already there (called from infobar) + self.showScreen() + + def addEntry(self, list, entry): + if entry[0] == "TEXT": #handle every item (text / pin only?) + list.append( (entry[1], ConfigNothing(), entry[2]) ) + if entry[0] == "PIN": + pinlength = entry[1] + if entry[3] == 1: + # masked pins: + x = ConfigPIN(0, len = pinlength, censor = "*") + else: + # unmasked pins: + x = ConfigPIN(0, len = pinlength) + x.addEndNotifier(self.pinEntered) + self["subtitle"].setText(entry[2]) + list.append( getConfigListEntry("", x) ) + self["bottom"].setText(_("please press OK when ready")) + + def pinEntered(self, value): + self.okbuttonClick() + + def okbuttonClick(self): + self.timer.stop() + if not self.tag: + return + if self.tag == "WAIT": + print "do nothing - wait" + elif self.tag == "MENU": + print "answer MENU" + cur = self["entries"].getCurrent() + if cur: + self.handler.answerMenu(self.slotid, cur[2]) + else: + self.handler.answerMenu(self.slotid, 0) + self.showWait() + elif self.tag == "LIST": + print "answer LIST" + self.handler.answerMenu(self.slotid, 0) + self.showWait() + elif self.tag == "ENQ": + cur = self["entries"].getCurrent() + answer = str(cur[1].value) + length = len(answer) + while length < cur[1].getLength(): + answer = '0'+answer + length+=1 + self.handler.answerEnq(self.slotid, answer) + self.showWait() + + def closeMmi(self): + self.timer.stop() + self.close(self.slotid) + + def keyCancel(self): + self.timer.stop() + if not self.tag or self.mmiclosed: + self.closeMmi() + elif self.tag == "WAIT": + self.handler.stopMMI(self.slotid) + self.closeMmi() + elif self.tag in ( "MENU", "LIST" ): + print "cancel list" + self.handler.answerMenu(self.slotid, 0) + self.showWait() + elif self.tag == "ENQ": + print "cancel enq" + self.handler.cancelEnq(self.slotid) + self.showWait() + else: + print "give cancel action to ci" + + def keyConfigEntry(self, key): + self.timer.stop() + try: + self["entries"].handleKey(key) + except: + pass + + def keyNumberGlobal(self, number): + self.timer.stop() + self.keyConfigEntry(KEY_0 + number) + + def keyLeft(self): + self.timer.stop() + self.keyConfigEntry(KEY_LEFT) + + def keyRight(self): + self.timer.stop() + self.keyConfigEntry(KEY_RIGHT) + + def updateList(self, list): + List = self["entries"] + try: + List.instance.moveSelectionTo(0) + except: + pass + List.l.setList(list) + + def showWait(self): + self.tag = "WAIT" + self["title"].setText("") + self["subtitle"].setText("") + self["bottom"].setText("") + list = [ ] + list.append( (self.wait_text, ConfigNothing()) ) + self.updateList(list) + + def showScreen(self): + screen = self.handler.getMMIScreen(self.slotid) + + list = [ ] + + self.timer.stop() + if len(screen) > 0 and screen[0][0] == "CLOSE": + timeout = screen[0][1] + self.mmiclosed = True + if timeout > 0: + self.timer.start(timeout*1000, True) + else: + self.keyCancel() + else: + self.mmiclosed = False + self.tag = screen[0][0] + for entry in screen: + if entry[0] == "PIN": + self.addEntry(list, entry) + else: + if entry[0] == "TITLE": + self["title"].setText(entry[1]) + elif entry[0] == "SUBTITLE": + self["subtitle"].setText(entry[1]) + elif entry[0] == "BOTTOM": + self["bottom"].setText(entry[1]) + elif entry[0] == "TEXT": + self.addEntry(list, entry) + self.updateList(list) + + def ciStateChanged(self): + do_close = False + if self.action == 0: #reset + do_close = True + if self.action == 1: #init + do_close = True + + #module still there ? + if self.handler.getState(self.slotid) != 2: + do_close = True + + #mmi session still active ? + if self.handler.getMMIState(self.slotid) != 1: + do_close = True + + if do_close: + self.closeMmi() + elif self.action > 1 and self.handler.availableMMI(self.slotid) == 1: + self.showScreen() + + #FIXME: check for mmi-session closed + +class CiMessageHandler: + def __init__(self): + self.session = None + self.ci = { } + self.dlgs = { } + eDVBCI_UI.getInstance().ciStateChanged.get().append(self.ciStateChanged) + SystemInfo["CommonInterface"] = eDVBCIInterfaces.getInstance().getNumOfSlots() > 0 + try: + file = open("/proc/stb/tsmux/ci0_tsclk", "r") + file.close() + SystemInfo["CommonInterfaceSupportsHighBitrates"] = True + except: + SystemInfo["CommonInterfaceSupportsHighBitrates"] = False + + def setSession(self, session): + self.session = session + + def ciStateChanged(self, slot): + if slot in self.ci: + self.ci[slot](slot) + else: + if slot in self.dlgs: + self.dlgs[slot].ciStateChanged() + elif eDVBCI_UI.getInstance().availableMMI(slot) == 1: + if self.session and not config.usage.hide_ci_messages.value: + self.dlgs[slot] = self.session.openWithCallback(self.dlgClosed, MMIDialog, slot, 3) + + def dlgClosed(self, slot): + if slot in self.dlgs: + del self.dlgs[slot] + + def registerCIMessageHandler(self, slot, func): + self.unregisterCIMessageHandler(slot) + self.ci[slot] = func + + def unregisterCIMessageHandler(self, slot): + if slot in self.ci: + del self.ci[slot] + +CiHandler = CiMessageHandler() + +class CiSelection(Screen): + def __init__(self, session): + Screen.__init__(self, session) + self["actions"] = ActionMap(["OkCancelActions", "CiSelectionActions"], + { + "left": self.keyLeft, + "right": self.keyLeft, + "ok": self.okbuttonClick, + "cancel": self.cancel + },-1) + + self.dlg = None + self.state = { } + self.list = [ ] + + for slot in range(MAX_NUM_CI): + state = eDVBCI_UI.getInstance().getState(slot) + if state != -1: + self.appendEntries(slot, state) + CiHandler.registerCIMessageHandler(slot, self.ciStateChanged) + + menuList = ConfigList(self.list) + menuList.list = self.list + menuList.l.setList(self.list) + self["entries"] = menuList + self["entries"].onSelectionChanged.append(self.selectionChanged) + self["text"] = Label(_("Slot %d")%(1)) + + def selectionChanged(self): + cur_idx = self["entries"].getCurrentIndex() + self["text"].setText(_("Slot %d")%((cur_idx / 5)+1)) + + def keyConfigEntry(self, key): + try: + self["entries"].handleKey(key) + self["entries"].getCurrent()[1].save() + except: + pass + + def keyLeft(self): + self.keyConfigEntry(KEY_LEFT) + + def keyRight(self): + self.keyConfigEntry(KEY_RIGHT) + + def appendEntries(self, slot, state): + self.state[slot] = state + self.list.append( (_("Reset"), ConfigNothing(), 0, slot) ) + self.list.append( (_("Init"), ConfigNothing(), 1, slot) ) + + if self.state[slot] == 0: #no module + self.list.append( (_("no module found"), ConfigNothing(), 2, slot) ) + elif self.state[slot] == 1: #module in init + self.list.append( (_("init module"), ConfigNothing(), 2, slot) ) + elif self.state[slot] == 2: #module ready + #get appname + appname = eDVBCI_UI.getInstance().getAppName(slot) + self.list.append( (appname, ConfigNothing(), 2, slot) ) + + self.list.append(getConfigListEntry(_("Multiple service support"), config.ci[slot].canDescrambleMultipleServices)) + if SystemInfo["CommonInterfaceSupportsHighBitrates"]: + self.list.append(getConfigListEntry(_("High bitrate support"), config.ci[slot].canHandleHighBitrates)) + + def updateState(self, slot): + state = eDVBCI_UI.getInstance().getState(slot) + self.state[slot] = state + + slotidx=0 + while len(self.list[slotidx]) < 3 or self.list[slotidx][3] != slot: + slotidx += 1 + + slotidx += 1 # do not change Reset + slotidx += 1 # do not change Init + + if state == 0: #no module + self.list[slotidx] = (_("no module found"), ConfigNothing(), 2, slot) + elif state == 1: #module in init + self.list[slotidx] = (_("init module"), ConfigNothing(), 2, slot) + elif state == 2: #module ready + #get appname + appname = eDVBCI_UI.getInstance().getAppName(slot) + self.list[slotidx] = (appname, ConfigNothing(), 2, slot) + + lst = self["entries"] + lst.list = self.list + lst.l.setList(self.list) + + def ciStateChanged(self, slot): + if self.dlg: + self.dlg.ciStateChanged() + else: + state = eDVBCI_UI.getInstance().getState(slot) + if self.state[slot] != state: + #print "something happens" + self.state[slot] = state + self.updateState(slot) + + def dlgClosed(self, slot): + self.dlg = None + + def okbuttonClick(self): + cur = self["entries"].getCurrent() + if cur and len(cur) > 2: + action = cur[2] + slot = cur[3] + if action == 0: #reset + eDVBCI_UI.getInstance().setReset(slot) + elif action == 1: #init + eDVBCI_UI.getInstance().setInit(slot) + elif self.state[slot] == 2: + self.dlg = self.session.openWithCallback(self.dlgClosed, MMIDialog, slot, action) + + def cancel(self): + for slot in range(MAX_NUM_CI): + state = eDVBCI_UI.getInstance().getState(slot) + if state != -1: + CiHandler.unregisterCIMessageHandler(slot) + self.close() diff --git a/lib/python/Screens/ClockDisplay.py b/lib/python/Screens/ClockDisplay.py new file mode 100644 index 0000000..cc9c6ce --- /dev/null +++ b/lib/python/Screens/ClockDisplay.py @@ -0,0 +1,15 @@ +from Screen import Screen + +# a clock display dialog +class ClockDisplay(Screen): + def okbutton(self): + self.session.close() + + def __init__(self, session, clock): + Screen.__init__(self, session) + self["theClock"] = clock + b = Button("bye") + b.onClick = [ self.okbutton ] + self["okbutton"] = b + self["title"] = Header("clock dialog: here you see the current uhrzeit!") + diff --git a/lib/python/Screens/ConfigMenu.py b/lib/python/Screens/ConfigMenu.py new file mode 100644 index 0000000..809efc1 --- /dev/null +++ b/lib/python/Screens/ConfigMenu.py @@ -0,0 +1,37 @@ +from Screen import Screen +from Components.ConfigList import ConfigList +from Components.config import config +from Components.ActionMap import ActionMap + +class ConfigMenu(Screen): + #create a generic class for view/edit settings + #all stuff come from xml file + #configtype / datasource / validate-call / ... + + def __init__(self, session): + Screen.__init__(self, session) + + self["actions"] = ActionMap(["OkCancelActions"], + { + "ok": self.okbuttonClick, + "cancel": self.close + }) + +class configTest(Screen): + + def __init__(self, session): + Screen.__init__(self, session) + + + self["config"] = ConfigList( + [ + configEntry("HKEY_LOCAL_ENIGMA/IMPORTANT/USER_ANNOYING_STUFF/SDTV/FLASHES/GREEN"), + configEntry("HKEY_LOCAL_ENIGMA/IMPORTANT/USER_ANNOYING_STUFF/HDTV/FLASHES/GREEN"), + ]) + + self["actions"] = ActionMap(["OkCancelActions"], + { + "ok": self["config"].toggle, + "cancel": self.close + }) + diff --git a/lib/python/Screens/Console.py b/lib/python/Screens/Console.py new file mode 100644 index 0000000..1da510b --- /dev/null +++ b/lib/python/Screens/Console.py @@ -0,0 +1,78 @@ +from enigma import eConsoleAppContainer +from Screens.Screen import Screen +from Components.ActionMap import ActionMap +from Components.ScrollLabel import ScrollLabel + +class Console(Screen): + #TODO move this to skin.xml + skin = """ + <screen position="100,100" size="550,400" title="Command execution..." > + <widget name="text" position="0,0" size="550,400" font="Console;14" /> + </screen>""" + + def __init__(self, session, title = "Console", cmdlist = None, finishedCallback = None, closeOnSuccess = False): + Screen.__init__(self, session) + + self.finishedCallback = finishedCallback + self.closeOnSuccess = closeOnSuccess + self.errorOcurred = False + + self["text"] = ScrollLabel("") + self["actions"] = ActionMap(["WizardActions", "DirectionActions"], + { + "ok": self.cancel, + "back": self.cancel, + "up": self["text"].pageUp, + "down": self["text"].pageDown + }, -1) + + self.cmdlist = cmdlist + self.newtitle = title + + self.onShown.append(self.updateTitle) + + self.container = eConsoleAppContainer() + self.run = 0 + self.container.appClosed.append(self.runFinished) + self.container.dataAvail.append(self.dataAvail) + self.onLayoutFinish.append(self.startRun) # dont start before gui is finished + + def updateTitle(self): + self.setTitle(self.newtitle) + + def startRun(self): + self["text"].setText(_("Execution progress:") + "\n\n") + print "Console: executing in run", self.run, " the command:", self.cmdlist[self.run] + if self.container.execute(self.cmdlist[self.run]): #start of container application failed... + self.runFinished(-1) # so we must call runFinished manual + + def runFinished(self, retval): + if retval: + self.errorOcurred = True + self.run += 1 + if self.run != len(self.cmdlist): + if self.container.execute(self.cmdlist[self.run]): #start of container application failed... + self.runFinished(-1) # so we must call runFinished manual + else: + lastpage = self["text"].isAtLastPage() + str = self["text"].getText() + str += _("Execution finished!!"); + self["text"].setText(str) + if lastpage: + self["text"].lastPage() + if self.finishedCallback is not None: + self.finishedCallback() + if not self.errorOcurred and self.closeOnSuccess: + self.cancel() + + def cancel(self): + if self.run == len(self.cmdlist): + self.close() + self.container.appClosed.remove(self.runFinished) + self.container.dataAvail.remove(self.dataAvail) + + def dataAvail(self, str): + lastpage = self["text"].isAtLastPage() + self["text"].setText(self["text"].getText() + str) + if lastpage: + self["text"].lastPage() diff --git a/lib/python/Screens/CopyFiles.py b/lib/python/Screens/CopyFiles.py new file mode 100644 index 0000000..e1aacd8 --- /dev/null +++ b/lib/python/Screens/CopyFiles.py @@ -0,0 +1,86 @@ +import os +import Components.Task +from twisted.internet import reactor, threads, task + +class FailedPostcondition(Components.Task.Condition): + def __init__(self, exception): + self.exception = exception + def getErrorMessage(self, task): + return str(self.exception) + def check(self, task): + return self.exception is None + +class CopyFileTask(Components.Task.PythonTask): + def openFiles(self, fileList): + self.callback = None + self.fileList = fileList + self.handles = [(open(fn[0], 'rb', buffering=0), open(fn[1], 'wb', buffering=0)) for fn in fileList] + self.end = 0 + for src,dst in fileList: + try: + self.end += os.stat(src).st_size + except: + print "Failed to stat", src + if not self.end: + self.end = 1 + print "[CopyFileTask] size:", self.end + def work(self): + print "[CopyFileTask] handles ", len(self.handles) + try: + bs = 65536 + d = bytearray(bs) + for src, dst in self.handles: + while 1: + if self.aborted: + print "[CopyFileTask] aborting" + raise Exception, "Aborted" + l = src.readinto(d) + if l < bs: + if not l: + # EOF + src.close() + dst.close() + break + dst.write(buffer(d, 0, l)) + else: + dst.write(d) + self.pos += l + except: + # In any event, close all handles + for src, dst in self.handles: + src.close() + dst.close() + for s,d in self.fileList: + # Remove incomplete data. + try: + os.unlink(d) + except: + pass + raise + +class MoveFileTask(CopyFileTask): + def work(self): + CopyFileTask.work(self) + print "[MoveFileTask]: delete source files" + errors = [] + for s,d in self.fileList: + try: + os.unlink(s) + except Exception, e: + errors.append(e) + if errors: + raise errors[0] + +def copyFiles(fileList, name): + name = _("Copy") + " " + name + job = Components.Task.Job(name) + task = CopyFileTask(job, name) + task.openFiles(fileList) + Components.Task.job_manager.AddJob(job) + +def moveFiles(fileList, name): + name = _("Move") + " " + name + job = Components.Task.Job(name) + task = MoveFileTask(job, name) + task.openFiles(fileList) + Components.Task.job_manager.AddJob(job) diff --git a/lib/python/Screens/DVD.py b/lib/python/Screens/DVD.py new file mode 100644 index 0000000..5bfd84c --- /dev/null +++ b/lib/python/Screens/DVD.py @@ -0,0 +1,669 @@ +import os +from enigma import eTimer, iPlayableService, iServiceInformation, eServiceReference, iServiceKeys, getDesktop +from Screens.Screen import Screen +from Screens.MessageBox import MessageBox +from Screens.ChoiceBox import ChoiceBox +from Screens.HelpMenu import HelpableScreen +from Screens.InfoBarGenerics import InfoBarSeek, InfoBarPVRState, InfoBarCueSheetSupport, InfoBarShowHide, InfoBarNotifications, InfoBarAudioSelection, InfoBarSubtitleSupport +from Components.ActionMap import ActionMap, NumberActionMap, HelpableActionMap +from Components.Label import Label +from Components.Sources.StaticText import StaticText +from Components.Pixmap import Pixmap +from Components.MenuList import MenuList +from Components.ServiceEventTracker import ServiceEventTracker, InfoBarBase +from Components.config import config +from Tools.Directories import pathExists, fileExists +from Components.Harddisk import harddiskmanager + +lastpath = "" + +class DVDSummary(Screen): + def __init__(self, session, parent): + Screen.__init__(self, session, parent) + self["Title"] = Label("") + self["Time"] = Label("") + self["Chapter"] = Label("") + + def updateChapter(self, chapter): + self["Chapter"].setText(chapter) + + def setTitle(self, title): + self["Title"].setText(title) + +class DVDOverlay(Screen): + def __init__(self, session, args = None, height = None): + desktop_size = getDesktop(0).size() + w = desktop_size.width() + h = desktop_size.height() + if height is not None: + h = height + DVDOverlay.skin = """<screen name="DVDOverlay" position="0,0" size="%d,%d" flags="wfNoBorder" zPosition="-1" backgroundColor="transparent" />""" %(w, h) + Screen.__init__(self, session) + +class ChapterZap(Screen): + skin = """ + <screen name="ChapterZap" position="235,255" size="250,60" title="Chapter" > + <widget name="chapter" position="35,15" size="110,25" font="Regular;23" /> + <widget name="number" position="145,15" size="80,25" halign="right" font="Regular;23" /> + </screen>""" + + def quit(self): + self.Timer.stop() + self.close(0) + + def keyOK(self): + self.Timer.stop() + self.close(int(self["number"].getText())) + + def keyNumberGlobal(self, number): + self.Timer.start(3000, True) #reset timer + self.field = self.field + str(number) + self["number"].setText(self.field) + if len(self.field) >= 4: + self.keyOK() + + def __init__(self, session, number): + Screen.__init__(self, session) + self.field = str(number) + + self["chapter"] = Label(_("Chapter:")) + + self["number"] = Label(self.field) + + self["actions"] = NumberActionMap( [ "SetupActions" ], + { + "cancel": self.quit, + "ok": self.keyOK, + "1": self.keyNumberGlobal, + "2": self.keyNumberGlobal, + "3": self.keyNumberGlobal, + "4": self.keyNumberGlobal, + "5": self.keyNumberGlobal, + "6": self.keyNumberGlobal, + "7": self.keyNumberGlobal, + "8": self.keyNumberGlobal, + "9": self.keyNumberGlobal, + "0": self.keyNumberGlobal + }) + + self.Timer = eTimer() + self.Timer.callback.append(self.keyOK) + self.Timer.start(3000, True) + +class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarPVRState, InfoBarShowHide, HelpableScreen, InfoBarCueSheetSupport, InfoBarAudioSelection, InfoBarSubtitleSupport): + ALLOW_SUSPEND = Screen.SUSPEND_PAUSES + ENABLE_RESUME_SUPPORT = True + + skin = """ + <screen name="DVDPlayer" flags="wfNoBorder" position="0,380" size="720,160" title="Info bar" backgroundColor="transparent" > + <!-- Background --> + <ePixmap position="0,0" zPosition="-2" size="720,160" pixmap="skin_default/info-bg_mp.png" alphatest="off" /> + <ePixmap position="29,40" zPosition="0" size="665,104" pixmap="skin_default/screws_mp.png" alphatest="on" transparent="1" /> + <!-- colorbuttons --> + <ePixmap position="48,70" zPosition="0" size="108,13" pixmap="skin_default/icons/mp_buttons.png" alphatest="on" /> + <!-- Servicename --> + <ePixmap pixmap="skin_default/icons/icon_event.png" position="207,78" zPosition="1" size="15,10" alphatest="on" /> + <widget source="session.CurrentService" render="Label" position="230,73" size="300,22" font="Regular;20" backgroundColor="#263c59" shadowColor="#1d354c" shadowOffset="-1,-1" transparent="1" noWrap="1"> + <convert type="ServiceName">Name</convert> + </widget> + <!-- Chapter info --> + <widget name="chapterLabel" position="230,96" size="360,22" font="Regular;20" foregroundColor="#c3c3c9" backgroundColor="#263c59" transparent="1" /> + <!-- Audio track info --> + <ePixmap pixmap="skin_default/icons/icon_dolby.png" position="540,60" zPosition="1" size="26,16" alphatest="on"/> + <widget name="audioLabel" position="570,60" size="130,22" font="Regular;18" backgroundColor="#263c59" shadowColor="#1d354c" shadowOffset="-1,-1" transparent="1" /> + <!-- Subtitle track info --> + <widget source="session.CurrentService" render="Pixmap" pixmap="skin_default/icons/icon_txt.png" position="540,83" zPosition="1" size="26,16" alphatest="on" > + <convert type="ServiceInfo">HasTelext</convert> + <convert type="ConditionalShowHide" /> + </widget> + <widget name="subtitleLabel" position="570,83" size="130,22" font="Regular;18" backgroundColor="#263c59" shadowColor="#1d354c" shadowOffset="-1,-1" transparent="1" /> + <!-- Angle info --> + <widget name="anglePix" pixmap="skin_default/icons/icon_view.png" position="540,106" size="26,16" alphatest="on" /> + <widget name="angleLabel" position="570,106" size="130,22" font="Regular;18" backgroundColor="#263c59" shadowColor="#1d354c" shadowOffset="-1,-1" transparent="1" /> + <!-- Elapsed time --> + <widget source="session.CurrentService" render="Label" position="205,129" size="100,20" font="Regular;18" halign="center" valign="center" backgroundColor="#06224f" shadowColor="#1d354c" shadowOffset="-1,-1" transparent="1" > + <convert type="ServicePosition">Position,ShowHours</convert> + </widget> + <!-- Progressbar (movie position)--> + <widget source="session.CurrentService" render="PositionGauge" position="300,133" size="270,10" zPosition="2" pointer="skin_default/position_pointer.png:540,0" transparent="1" > + <convert type="ServicePosition">Gauge</convert> + </widget> + <!-- Remaining time --> + <widget source="session.CurrentService" render="Label" position="576,129" size="100,20" font="Regular;18" halign="center" valign="center" backgroundColor="#06224f" shadowColor="#1d354c" shadowOffset="-1,-1" transparent="1" > + <convert type="ServicePosition">Remaining,Negate,ShowHours</convert> + </widget> + </screen>""" + + def save_infobar_seek_config(self): + self.saved_config_speeds_forward = config.seek.speeds_forward.value + self.saved_config_speeds_backward = config.seek.speeds_backward.value + self.saved_config_enter_forward = config.seek.enter_forward.value + self.saved_config_enter_backward = config.seek.enter_backward.value + self.saved_config_seek_on_pause = config.seek.on_pause.value + self.saved_config_seek_speeds_slowmotion = config.seek.speeds_slowmotion.value + + def change_infobar_seek_config(self): + config.seek.speeds_forward.value = [2, 4, 6, 8, 16, 32, 64] + config.seek.speeds_backward.value = [2, 4, 6, 8, 16, 32, 64] + config.seek.speeds_slowmotion.value = [ 2, 3, 4, 6 ] + config.seek.enter_forward.value = "2" + config.seek.enter_backward.value = "2" + config.seek.on_pause.value = "play" + + def restore_infobar_seek_config(self): + config.seek.speeds_forward.value = self.saved_config_speeds_forward + config.seek.speeds_backward.value = self.saved_config_speeds_backward + config.seek.speeds_slowmotion.value = self.saved_config_seek_speeds_slowmotion + config.seek.enter_forward.value = self.saved_config_enter_forward + config.seek.enter_backward.value = self.saved_config_enter_backward + config.seek.on_pause.value = self.saved_config_seek_on_pause + + def __init__(self, session, dvd_device = None, dvd_filelist = [ ], args = None): + Screen.__init__(self, session) + InfoBarBase.__init__(self) + InfoBarNotifications.__init__(self) + InfoBarCueSheetSupport.__init__(self, actionmap = "MediaPlayerCueSheetActions") + InfoBarShowHide.__init__(self) + InfoBarAudioSelection.__init__(self) + InfoBarSubtitleSupport.__init__(self) + HelpableScreen.__init__(self) + self.save_infobar_seek_config() + self.change_infobar_seek_config() + InfoBarSeek.__init__(self) + InfoBarPVRState.__init__(self) + + self.oldService = self.session.nav.getCurrentlyPlayingServiceOrGroup() + self.session.nav.stopService() + self["audioLabel"] = Label("n/a") + self["subtitleLabel"] = Label("") + self["angleLabel"] = Label("") + self["chapterLabel"] = Label("") + self["anglePix"] = Pixmap() + self["anglePix"].hide() + self.last_audioTuple = None + self.last_subtitleTuple = None + self.last_angleTuple = None + self.totalChapters = 0 + self.currentChapter = 0 + self.totalTitles = 0 + self.currentTitle = 0 + + self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + { + iPlayableService.evStopped: self.__serviceStopped, + iPlayableService.evUser: self.__timeUpdated, + iPlayableService.evUser+1: self.__statePlay, + iPlayableService.evUser+2: self.__statePause, + iPlayableService.evUser+3: self.__osdFFwdInfoAvail, + iPlayableService.evUser+4: self.__osdFBwdInfoAvail, + iPlayableService.evUser+5: self.__osdStringAvail, + iPlayableService.evUser+6: self.__osdAudioInfoAvail, + iPlayableService.evUser+7: self.__osdSubtitleInfoAvail, + iPlayableService.evUser+8: self.__chapterUpdated, + iPlayableService.evUser+9: self.__titleUpdated, + iPlayableService.evUser+11: self.__menuOpened, + iPlayableService.evUser+12: self.__menuClosed, + iPlayableService.evUser+13: self.__osdAngleInfoAvail + }) + + self["DVDPlayerDirectionActions"] = ActionMap(["DirectionActions"], + { + #MENU KEY DOWN ACTIONS + "left": self.keyLeft, + "right": self.keyRight, + "up": self.keyUp, + "down": self.keyDown, + + #MENU KEY REPEATED ACTIONS + "leftRepeated": self.doNothing, + "rightRepeated": self.doNothing, + "upRepeated": self.doNothing, + "downRepeated": self.doNothing, + + #MENU KEY UP ACTIONS + "leftUp": self.doNothing, + "rightUp": self.doNothing, + "upUp": self.doNothing, + "downUp": self.doNothing, + }) + + self["OkCancelActions"] = ActionMap(["OkCancelActions"], + { + "ok": self.keyOk, + "cancel": self.keyCancel, + }) + + self["DVDPlayerPlaybackActions"] = HelpableActionMap(self, "DVDPlayerActions", + { + #PLAYER ACTIONS + "dvdMenu": (self.enterDVDMenu, _("show DVD main menu")), + "toggleInfo": (self.toggleInfo, _("toggle time, chapter, audio, subtitle info")), + "nextChapter": (self.nextChapter, _("forward to the next chapter")), + "prevChapter": (self.prevChapter, _("rewind to the previous chapter")), + "nextTitle": (self.nextTitle, _("jump forward to the next title")), + "prevTitle": (self.prevTitle, _("jump back to the previous title")), + "tv": (self.askLeavePlayer, _("exit DVD player or return to file browser")), + "dvdAudioMenu": (self.enterDVDAudioMenu, _("(show optional DVD audio menu)")), + "AudioSelection": (self.enterAudioSelection, _("Select audio track")), + "nextAudioTrack": (self.nextAudioTrack, _("switch to the next audio track")), + "nextSubtitleTrack": (self.nextSubtitleTrack, _("switch to the next subtitle language")), + "nextAngle": (self.nextAngle, _("switch to the next angle")), + "seekBeginning": self.seekBeginning, + }, -2) + + self["NumberActions"] = NumberActionMap( [ "NumberActions"], + { + "1": self.keyNumberGlobal, + "2": self.keyNumberGlobal, + "3": self.keyNumberGlobal, + "4": self.keyNumberGlobal, + "5": self.keyNumberGlobal, + "6": self.keyNumberGlobal, + "7": self.keyNumberGlobal, + "8": self.keyNumberGlobal, + "9": self.keyNumberGlobal, + "0": self.keyNumberGlobal, + }) + + self.onClose.append(self.__onClose) + + try: + from Plugins.SystemPlugins.Hotplug.plugin import hotplugNotifier + hotplugNotifier.append(self.hotplugCB) + except: + pass + + self.autoplay = dvd_device or dvd_filelist + + if dvd_device: + self.physicalDVD = True + else: + self.scanHotplug() + + self.dvd_filelist = dvd_filelist + self.onFirstExecBegin.append(self.opened) + self.service = None + self.in_menu = False + + def keyNumberGlobal(self, number): + print "You pressed number " + str(number) + self.session.openWithCallback(self.numberEntered, ChapterZap, number) + + def numberEntered(self, retval): +# print self.servicelist + if retval > 0: + self.zapToNumber(retval) + + def getServiceInterface(self, iface): + service = self.service + if service: + attr = getattr(service, iface, None) + if callable(attr): + return attr() + return None + + def __serviceStopped(self): + self.dvdScreen.hide() + subs = self.getServiceInterface("subtitle") + if subs: + subs.disableSubtitles(self.session.current_dialog.instance) + + def serviceStarted(self): #override InfoBarShowHide function + self.dvdScreen.show() + + def doEofInternal(self, playing): + if self.in_menu: + self.hide() + + def __menuOpened(self): + self.hide() + self.in_menu = True + self["NumberActions"].setEnabled(False) + + def __menuClosed(self): + self.show() + self.in_menu = False + self["NumberActions"].setEnabled(True) + + def setChapterLabel(self): + chapterLCD = "Menu" + chapterOSD = "DVD Menu" + if self.currentTitle > 0: + chapterLCD = "%s %d" % (_("Chap."), self.currentChapter) + chapterOSD = "DVD %s %d/%d" % (_("Chapter"), self.currentChapter, self.totalChapters) + chapterOSD += " (%s %d/%d)" % (_("Title"), self.currentTitle, self.totalTitles) + self["chapterLabel"].setText(chapterOSD) + try: + self.session.summary.updateChapter(chapterLCD) + except: + pass + + def doNothing(self): + pass + + def toggleInfo(self): + if not self.in_menu: + self.toggleShow() + print "toggleInfo" + + def __timeUpdated(self): + print "timeUpdated" + + def __statePlay(self): + print "statePlay" + + def __statePause(self): + print "statePause" + + def __osdFFwdInfoAvail(self): + self.setChapterLabel() + print "FFwdInfoAvail" + + def __osdFBwdInfoAvail(self): + self.setChapterLabel() + print "FBwdInfoAvail" + + def __osdStringAvail(self): + print "StringAvail" + + def __osdAudioInfoAvail(self): + info = self.getServiceInterface("info") + audioTuple = info and info.getInfoObject(iServiceInformation.sUser+6) + print "AudioInfoAvail ", repr(audioTuple) + if audioTuple: + audioString = "%d: %s (%s)" % (audioTuple[0],audioTuple[1],audioTuple[2]) + self["audioLabel"].setText(audioString) + if audioTuple != self.last_audioTuple and not self.in_menu: + self.doShow() + self.last_audioTuple = audioTuple + + def __osdSubtitleInfoAvail(self): + info = self.getServiceInterface("info") + subtitleTuple = info and info.getInfoObject(iServiceInformation.sUser+7) + print "SubtitleInfoAvail ", repr(subtitleTuple) + if subtitleTuple: + subtitleString = "" + if subtitleTuple[0] is not 0: + subtitleString = "%d: %s" % (subtitleTuple[0],subtitleTuple[1]) + self["subtitleLabel"].setText(subtitleString) + if subtitleTuple != self.last_subtitleTuple and not self.in_menu: + self.doShow() + self.last_subtitleTuple = subtitleTuple + + def __osdAngleInfoAvail(self): + info = self.getServiceInterface("info") + angleTuple = info and info.getInfoObject(iServiceInformation.sUser+8) + print "AngleInfoAvail ", repr(angleTuple) + if angleTuple: + angleString = "" + if angleTuple[1] > 1: + angleString = "%d / %d" % (angleTuple[0],angleTuple[1]) + self["anglePix"].show() + else: + self["anglePix"].hide() + self["angleLabel"].setText(angleString) + if angleTuple != self.last_angleTuple and not self.in_menu: + self.doShow() + self.last_angleTuple = angleTuple + + def __chapterUpdated(self): + info = self.getServiceInterface("info") + if info: + self.currentChapter = info.getInfo(iServiceInformation.sCurrentChapter) + self.totalChapters = info.getInfo(iServiceInformation.sTotalChapters) + self.setChapterLabel() + print "__chapterUpdated: %d/%d" % (self.currentChapter, self.totalChapters) + + def __titleUpdated(self): + info = self.getServiceInterface("info") + if info: + self.currentTitle = info.getInfo(iServiceInformation.sCurrentTitle) + self.totalTitles = info.getInfo(iServiceInformation.sTotalTitles) + self.setChapterLabel() + print "__titleUpdated: %d/%d" % (self.currentTitle, self.totalTitles) + if not self.in_menu: + self.doShow() + + def askLeavePlayer(self): + if self.autoplay: + self.exitCB((None,"exit")) + return + choices = [(_("Exit"), "exit"), (_("Continue playing"), "play")] + if self.physicalDVD: + cur = self.session.nav.getCurrentlyPlayingServiceOrGroup() + if cur and not cur.toString().endswith(harddiskmanager.getAutofsMountpoint(harddiskmanager.getCD())): + choices.insert(0,(_("Play DVD"), "playPhysical" )) + self.session.openWithCallback(self.exitCB, ChoiceBox, title=_("Leave DVD player?"), list = choices) + + def sendKey(self, key): + keys = self.getServiceInterface("keys") + if keys: + keys.keyPressed(key) + return keys + + def enterAudioSelection(self): + self.audioSelection() + + def nextAudioTrack(self): + self.sendKey(iServiceKeys.keyUser) + + def nextSubtitleTrack(self): + self.sendKey(iServiceKeys.keyUser+1) + + def enterDVDAudioMenu(self): + self.sendKey(iServiceKeys.keyUser+2) + + def nextChapter(self): + self.sendKey(iServiceKeys.keyUser+3) + + def prevChapter(self): + self.sendKey(iServiceKeys.keyUser+4) + + def nextTitle(self): + self.sendKey(iServiceKeys.keyUser+5) + + def prevTitle(self): + self.sendKey(iServiceKeys.keyUser+6) + + def enterDVDMenu(self): + self.sendKey(iServiceKeys.keyUser+7) + + def nextAngle(self): + self.sendKey(iServiceKeys.keyUser+8) + + def seekBeginning(self): + if self.service: + seekable = self.getSeek() + if seekable: + seekable.seekTo(0) + + def zapToNumber(self, number): + if self.service: + seekable = self.getSeek() + if seekable: + print "seek to chapter %d" % number + seekable.seekChapter(number) + +# MENU ACTIONS + def keyRight(self): + self.sendKey(iServiceKeys.keyRight) + + def keyLeft(self): + self.sendKey(iServiceKeys.keyLeft) + + def keyUp(self): + self.sendKey(iServiceKeys.keyUp) + + def keyDown(self): + self.sendKey(iServiceKeys.keyDown) + + def keyOk(self): + if self.sendKey(iServiceKeys.keyOk) and not self.in_menu: + self.toggleInfo() + + def keyCancel(self): + self.askLeavePlayer() + + def opened(self): + if self.autoplay and self.dvd_filelist: + # opened via autoplay + self.FileBrowserClosed(self.dvd_filelist[0]) + elif self.autoplay and self.physicalDVD: + self.playPhysicalCB(True) + elif self.physicalDVD: + # opened from menu with dvd in drive + self.session.openWithCallback(self.playPhysicalCB, MessageBox, text=_("Do you want to play DVD in drive?"), timeout=5 ) + + def playPhysicalCB(self, answer): + if answer == True: + harddiskmanager.setDVDSpeed(harddiskmanager.getCD(), 1) + self.FileBrowserClosed(harddiskmanager.getAutofsMountpoint(harddiskmanager.getCD())) + + def FileBrowserClosed(self, val): + curref = self.session.nav.getCurrentlyPlayingServiceOrGroup() + print "FileBrowserClosed", val + if val is None: + self.askLeavePlayer() + else: + isopathname = "/VIDEO_TS.ISO" + if os.path.exists(val + isopathname): + val += isopathname + newref = eServiceReference(4369, 0, val) + print "play", newref.toString() + if curref is None or curref != newref: + if newref.toString().endswith("/VIDEO_TS") or newref.toString().endswith("/"): + names = newref.toString().rsplit("/",3) + if names[2].startswith("Disk ") or names[2].startswith("DVD "): + name = str(names[1]) + " - " + str(names[2]) + else: + name = names[2] + print "setting name to: ", self.service + newref.setName(str(name)) + +# Construct a path for the IFO header assuming it exists + ifofilename = val + if not ifofilename.upper().endswith("/VIDEO_TS"): + ifofilename += "/VIDEO_TS" + files = [("/VIDEO_TS.IFO", 0x100), ("/VTS_01_0.IFO", 0x100), ("/VTS_01_0.IFO", 0x200)] # ( filename, offset ) + for name in files: + (status, isNTSC, isLowResolution) = self.readVideoAtributes( ifofilename, name ) + if status: + break + height = getDesktop(0).size().height() + print "[DVD] height:", height + if isNTSC: + height = height * 576 / 480 + print "[DVD] NTSC height:", height + if isLowResolution: + height *= 2 + print "[DVD] LowResolution:", height + self.dvdScreen = self.session.instantiateDialog(DVDOverlay, height=height) + self.session.nav.playService(newref) + self.service = self.session.nav.getCurrentService() + print "self.service", self.service + print "cur_dlg", self.session.current_dialog + subs = self.getServiceInterface("subtitle") + if subs: + subs.enableSubtitles(self.dvdScreen.instance, None) + + def readVideoAtributes(self, isofilename, checked_file): + (name, offset) = checked_file + isofilename += name + + print "[DVD] file", name + + status = False + isNTSC = False + isLowResolution = False + + ifofile = None + try: +# Try to read the IFO header to determine PAL/NTSC format and the resolution + ifofile = open(isofilename, "r") + ifofile.seek(offset) + video_attr_high = ord(ifofile.read(1)) + if video_attr_high != 0: + status = True + video_attr_low = ord(ifofile.read(1)) + print "[DVD] %s: video_attr_high = %x" % ( name, video_attr_high ), "video_attr_low = %x" % ( video_attr_low ) + isNTSC = (video_attr_high & 0x10 == 0) + isLowResolution = (video_attr_low & 0x18 == 0x18) + except: +# If the service is an .iso or .img file we assume it is PAL +# Sorry we cannot open image files here. + print "[DVD] Cannot read file or is ISO/IMG" + finally: + if ifofile is not None: + ifofile.close() + return ( status, isNTSC, isLowResolution ) + + def exitCB(self, answer): + if answer is not None: + if answer[1] == "exit": + if self.service: + self.service = None + self.close() + elif answer[1] == "playPhysical": + if self.service: + self.service = None + self.playPhysicalCB(True) + else: + pass + + def __onClose(self): + self.restore_infobar_seek_config() + self.session.nav.playService(self.oldService) + try: + from Plugins.SystemPlugins.Hotplug.plugin import hotplugNotifier + hotplugNotifier.remove(self.hotplugCB) + except: + pass + + def playLastCB(self, answer): # overwrite infobar cuesheet function + print "playLastCB", answer, self.resume_point + if self.service: + if answer == True: + seekable = self.getSeek() + if seekable: + seekable.seekTo(self.resume_point) + pause = self.service.pause() + pause.unpause() + self.hideAfterResume() + + def showAfterCuesheetOperation(self): + if not self.in_menu: + self.show() + + def createSummary(self): + return DVDSummary + +#override some InfoBarSeek functions + def doEof(self): + self.setSeekState(self.SEEK_STATE_PLAY) + + def calcRemainingTime(self): + return 0 + + def hotplugCB(self, dev, media_state): + print "[hotplugCB]", dev, media_state + if dev == harddiskmanager.getCD(): + if media_state == "1": + self.scanHotplug() + else: + self.physicalDVD = False + + def scanHotplug(self): + devicepath = harddiskmanager.getAutofsMountpoint(harddiskmanager.getCD()) + if pathExists(devicepath): + from Components.Scanner import scanDevice + res = scanDevice(devicepath) + list = [ (r.description, r, res[r], self.session) for r in res ] + if list: + (desc, scanner, files, session) = list[0] + for file in files: + print file + if file.mimetype == "video/x-dvd": + print "physical dvd found:", devicepath + self.physicalDVD = True + return + self.physicalDVD = False diff --git a/lib/python/Screens/Dish.py b/lib/python/Screens/Dish.py new file mode 100644 index 0000000..c7dc960 --- /dev/null +++ b/lib/python/Screens/Dish.py @@ -0,0 +1,228 @@ +# -*- coding: utf-8 -*- +from Screen import Screen +from Components.BlinkingPixmap import BlinkingPixmapConditional +from Components.Pixmap import Pixmap +from Components.config import config, ConfigInteger +from Components.Sources.Boolean import Boolean +from Components.Label import Label +from Components.ProgressBar import ProgressBar +from Components.ServiceEventTracker import ServiceEventTracker +from enigma import eDVBSatelliteEquipmentControl, eTimer, iPlayableService +from enigma import eServiceCenter, iServiceInformation +from ServiceReference import ServiceReference + +INVALID_POSITION = 9999 +config.misc.lastrotorposition = ConfigInteger(INVALID_POSITION) + +class Dish(Screen): + STATE_HIDDEN = 0 + STATE_SHOWN = 1 + skin = """ + <screen name="Dish" flags="wfNoBorder" position="86,100" size="130,220" title="Dish" zPosition="1" backgroundColor="#11396D" > + <widget name="Dishpixmap" position="0,0" size="130,160" zPosition="-1" pixmap="skin_default/icons/dish.png" transparent="1" alphatest="on" /> + <widget name="turnTime" position="5,0" size="120,20" zPosition="1" font="Regular;20" halign="right" shadowColor="black" shadowOffset="-2,-2" transparent="1" /> + <widget name="From" position="5,162" size="50,17" zPosition="1" font="Regular;17" halign="left" shadowColor="black" shadowOffset="-2,-1" transparent="1" /> + <widget name="posFrom" position="57,160" size="70,20" zPosition="1" font="Regular;20" halign="left" shadowColor="black" shadowOffset="-2,-2" transparent="1" /> + <widget name="Goto" position="5,182" size="50,17" zPosition="1" font="Regular;17" halign="left" shadowColor="black" shadowOffset="-2,-1" transparent="1" /> + <widget name="posGoto" position="57,180" size="70,20" zPosition="1" font="Regular;20" halign="left" shadowColor="black" shadowOffset="-2,-2" transparent="1" /> + <widget name="tunerName" position="5,144" size="90,16" zPosition="2" font="Regular;14" halign="left" shadowColor="black" shadowOffset="-2,-1" transparent="1" /> + <widget name="turnSpeed" position="75,95" size="50,16" zPosition="2" font="Regular;14" halign="right" shadowColor="black" shadowOffset="-2,-1" transparent="1" /> + <widget source="session.FrontendStatus" render="Progress" position="5,205" size="120,10" pixmap="skin_default/bar_snr.png" zPosition="2" borderWidth="2" borderColor="#cccccc"> + <convert type="FrontendInfo">SNR</convert> + </widget> + </screen>""" + + def __init__(self, session): + self.skin = Dish.skin + Screen.__init__(self, session) + + self["Dishpixmap"] = Pixmap() + self["turnTime"] = Label("") + self["posFrom"] = Label("") + self["posGoto"] = Label("") + self["From"] = Label(_("From :")) + self["Goto"] = Label(_("Goto :")) + self["tunerName"] = Label("") + self["turnSpeed"] = Label("") + + self.rotorTimer = eTimer() + self.rotorTimer.callback.append(self.updateRotorMovingState) + self.turnTimer = eTimer() + self.turnTimer.callback.append(self.turnTimerLoop) + self.timeoutTimer = eTimer() + self.timeoutTimer.callback.append(self.testIsTuned) + + config.usage.showdish.addNotifier(self.configChanged) + self.configChanged(config.usage.showdish) + + self.rotor_pos = self.cur_orbpos = config.misc.lastrotorposition.value + self.turn_time = self.total_time = self.pmt_timeout = self.close_timeout = None + self.cur_polar = 0 + self.__state = self.STATE_HIDDEN + + self.onShow.append(self.__onShow) + self.onHide.append(self.__onHide) + + self.__event_tracker = ServiceEventTracker(screen=self, + eventmap= { + iPlayableService.evStart: self.__serviceStarted, + iPlayableService.evTunedIn: self.__serviceTunedIn, + }) + + def updateRotorMovingState(self): + moving = eDVBSatelliteEquipmentControl.getInstance().isRotorMoving() + if moving: + if self.cur_orbpos != INVALID_POSITION and self.cur_orbpos != config.misc.lastrotorposition.value: + config.misc.lastrotorposition.value = self.cur_orbpos + config.misc.lastrotorposition.save() + if self.__state == self.STATE_HIDDEN: + self.show() + + def turnTimerLoop(self): + if self.total_time: + self.turn_time -= 1 + self["turnTime"].setText(self.FormatTurnTime(self.turn_time)) + self.close_timeout -=1 + if self.close_timeout < 0: + print "[Dish] timeout!" + self.__toHide() + + def __onShow(self): + self.__state = self.STATE_SHOWN + + prev_rotor_pos = self.rotor_pos + self.rotor_pos = self.cur_orbpos + self.total_time = self.getTurnTime(prev_rotor_pos, self.rotor_pos, self.cur_polar) + self.turn_time = self.total_time + self.close_timeout = round(self.total_time * 1.25) # aded 25% + + self["posFrom"].setText(self.OrbToStr(prev_rotor_pos)) + self["posGoto"].setText(self.OrbToStr(self.rotor_pos)) + self["tunerName"].setText(self.getTunerName()) + if self.total_time == 0: + self["turnTime"].setText("") + self["turnSpeed"].setText("") + else: + self["turnTime"].setText(self.FormatTurnTime(self.turn_time)) + self["turnSpeed"].setText(str(self.getTurningSpeed(self.cur_polar)) + chr(176) + _("/s")) + + self.turnTimer.start(1000, False) + + def __onHide(self): + self.__state = self.STATE_HIDDEN + self.turnTimer.stop() + + def __serviceStarted(self): + if self.__state == self.STATE_SHOWN: + self.hide() + if not self.showdish: + return + + service = self.session.nav.getCurrentService() + info = service and service.info() + data = info and info.getInfoObject(iServiceInformation.sTransponderData) + if not data or data == -1: + return + + tuner_type = data.get("tuner_type") + if tuner_type and "DVB-S" in tuner_type: + self.cur_orbpos = data.get("orbital_position", INVALID_POSITION) + self.cur_polar = data.get("polarization", 0) + self.rotorTimer.start(500, False) + + def __toHide(self): + self.rotorTimer.stop() + self.timeoutTimer.stop() + if self.__state == self.STATE_SHOWN: + self.hide() + + def __serviceTunedIn(self): + self.pmt_timeout = self.close_timeout + self.timeoutTimer.start(500, False) + + def testIsTuned(self): + if self.pmt_timeout >= 0: + service = self.session.nav.getCurrentService() + info = service and service.info() + pmt = info and info.getInfo(iServiceInformation.sPMTPID) + if pmt >= 0: + print "[Dish] tuned, closing..." + self.__toHide() + else: + self.pmt_timeout -= 0.5 + else: + self.__toHide() + print "[Dish] tuning failed" + + def dishState(self): + return self.__state + + def configChanged(self, configElement): + self.showdish = configElement.value + + def getTurnTime(self, start, end, pol=0): + mrt = abs(start - end) if start and end else 0 + if mrt > 0: + if (mrt > 1800): + mrt = 3600 - mrt + if (mrt % 10): + mrt += 10 + mrt = round((mrt * 1000 / self.getTurningSpeed(pol) ) / 10000) + 3 + return mrt + + def getTurningSpeed(self, pol=0): + tuner = self.getCurrentTuner() + if tuner is not None: + from Components.NimManager import nimmanager + nimConfig = nimmanager.getNimConfig(tuner) + if nimConfig.configMode.value == "simple": + if "positioner" in nimConfig.diseqcMode.value: + nim = config.Nims[tuner] + if pol in (1, 3): # vertical + return nim.turningspeedV.float + return nim.turningspeedH.float + elif nimConfig.configMode.value == "advanced": + if self.cur_orbpos != INVALID_POSITION: + satlist = nimConfig.advanced.sat.keys() + if self.cur_orbpos in satlist: + currSat = nimConfig.advanced.sat[self.cur_orbpos] + lnbnum = int(currSat.lnb.value) + currLnb = lnbnum and nimConfig.advanced.lnb[lnbnum] + diseqcmode = currLnb and currLnb.diseqcMode.value or "" + if diseqcmode == "1_2": + if pol in (1, 3): # vertical + return currLnb.turningspeedV.float + return currLnb.turningspeedH.float + if pol in (1, 3): + return 1.0 + return 1.5 + + def getCurrentTuner(self): + service = self.session.nav.getCurrentService() + feinfo = service and service.frontendInfo() + tuner = feinfo and feinfo.getFrontendData() + if tuner is not None: + return tuner.get("tuner_number") + return None + + def getTunerName(self): + nr = self.getCurrentTuner() + if nr is not None: + from Components.NimManager import nimmanager + nims = nimmanager.nimList() + if nr < 4: + return "".join(nims[nr].split(':')[:1]) + return " ".join((_("Tuner"),str(nr))) + return "" + + def OrbToStr(self, orbpos): + if orbpos == INVALID_POSITION: + return "N/A" + if orbpos > 1800: + orbpos = 3600 - orbpos + return "%d.%d°W" % (orbpos/10, orbpos%10) + return "%d.%d°E" % (orbpos/10, orbpos%10) + + def FormatTurnTime(self, time): + t = abs(time) + return "%s%02d:%02d" % (time < 0 and "- " or "", t/60%60, t%60) diff --git a/lib/python/Screens/EpgSelection.py b/lib/python/Screens/EpgSelection.py new file mode 100644 index 0000000..8bf5e4d --- /dev/null +++ b/lib/python/Screens/EpgSelection.py @@ -0,0 +1,465 @@ +from Screen import Screen +from Components.config import config, ConfigClock +from Components.Button import Button +from Components.Pixmap import Pixmap +from Components.Label import Label +from Components.EpgList import EPGList, EPG_TYPE_SINGLE, EPG_TYPE_SIMILAR, EPG_TYPE_MULTI +from Components.ActionMap import ActionMap +from Components.TimerSanityCheck import TimerSanityCheck +from Components.UsageConfig import preferredTimerPath +from Components.Sources.ServiceEvent import ServiceEvent +from Components.Sources.Event import Event +from Screens.ChoiceBox import ChoiceBox +from Screens.TimerEdit import TimerSanityConflict, TimerEditList +from Screens.EventView import EventViewSimple +from Screens.MessageBox import MessageBox +from TimeDateInput import TimeDateInput +from enigma import eServiceReference +from RecordTimer import RecordTimerEntry, parseEvent, AFTEREVENT +from TimerEntry import TimerEntry +from ServiceReference import ServiceReference +from time import localtime, time +from Components.PluginComponent import plugins +from Plugins.Plugin import PluginDescriptor +from Tools.BoundFunction import boundFunction + +mepg_config_initialized = False + +class EPGSelection(Screen): + EMPTY = 0 + ADD_TIMER = 1 + REMOVE_TIMER = 2 + + ZAP = 1 + + def __init__(self, session, service, zapFunc=None, eventid=None, bouquetChangeCB=None, serviceChangeCB=None): + Screen.__init__(self, session) + self.bouquetChangeCB = bouquetChangeCB + self.serviceChangeCB = serviceChangeCB + self.ask_time = -1 #now + self["key_red"] = Button("") + self.closeRecursive = False + self.saved_title = None + self["Service"] = ServiceEvent() + self["Event"] = Event() + self.session = session + if isinstance(service, str) and eventid != None: + self.type = EPG_TYPE_SIMILAR + self["key_yellow"] = Button() + self["key_blue"] = Button() + self["key_red"] = Button() + self.currentService=service + self.eventid = eventid + self.zapFunc = None + elif isinstance(service, eServiceReference) or isinstance(service, str): + self.type = EPG_TYPE_SINGLE + self["key_yellow"] = Button() + self["key_blue"] = Button() + self.currentService=ServiceReference(service) + self.zapFunc = zapFunc + self.sort_type = 0 + self.setSortDescription() + else: + self.skinName = "EPGSelectionMulti" + self.type = EPG_TYPE_MULTI + self["key_yellow"] = Button(pgettext("button label, 'previous screen'", "Prev")) + self["key_blue"] = Button(pgettext("button label, 'next screen'", "Next")) + self["now_button"] = Pixmap() + self["next_button"] = Pixmap() + self["more_button"] = Pixmap() + self["now_button_sel"] = Pixmap() + self["next_button_sel"] = Pixmap() + self["more_button_sel"] = Pixmap() + self["now_text"] = Label() + self["next_text"] = Label() + self["more_text"] = Label() + self["date"] = Label() + self.services = service + self.zapFunc = zapFunc + + self["key_green"] = Button(_("Add timer")) + self.key_green_choice = self.ADD_TIMER + self.key_red_choice = self.EMPTY + self["list"] = EPGList(type = self.type, selChangedCB = self.onSelectionChanged, timer = session.nav.RecordTimer) + + self["actions"] = ActionMap(["EPGSelectActions", "OkCancelActions"], + { + "cancel": self.closeScreen, + "ok": self.eventSelected, + "timerAdd": self.timerAdd, + "yellow": self.yellowButtonPressed, + "blue": self.blueButtonPressed, + "info": self.infoKeyPressed, + "red": self.zapTo, + "menu": self.furtherOptions, + "nextBouquet": self.nextBouquet, # just used in multi epg yet + "prevBouquet": self.prevBouquet, # just used in multi epg yet + "nextService": self.nextService, # just used in single epg yet + "prevService": self.prevService, # just used in single epg yet + "preview": self.eventPreview, + }) + self["actions"].csel = self + self.onLayoutFinish.append(self.onCreate) + + def nextBouquet(self): + if self.bouquetChangeCB: + self.bouquetChangeCB(1, self) + + def prevBouquet(self): + if self.bouquetChangeCB: + self.bouquetChangeCB(-1, self) + + def nextService(self): + if self.serviceChangeCB: + self.serviceChangeCB(1, self) + + def prevService(self): + if self.serviceChangeCB: + self.serviceChangeCB(-1, self) + + def enterDateTime(self): + if self.type == EPG_TYPE_MULTI: + global mepg_config_initialized + if not mepg_config_initialized: + config.misc.prev_mepg_time=ConfigClock(default = time()) + mepg_config_initialized = True + self.session.openWithCallback(self.onDateTimeInputClosed, TimeDateInput, config.misc.prev_mepg_time ) + + def furtherOptions(self): + menu = [] + text = _("Select action") + event = self["list"].getCurrent()[0] + if event: + menu = [(p.name, boundFunction(self.runPlugin, p)) for p in plugins.getPlugins(where = PluginDescriptor.WHERE_EVENTINFO) \ + if 'selectedevent' in p.__call__.func_code.co_varnames] + if menu: + text += _(": %s") % event.getEventName() + if self.type == EPG_TYPE_MULTI: + menu.append((_("Goto specific date/time"),self.enterDateTime)) + menu.append((_("Timer Overview"), self.openTimerOverview)) + if len(menu) == 1: + menu and menu[0][1]() + elif len(menu) > 1: + def boxAction(choice): + if choice: + choice[1]() + self.session.openWithCallback(boxAction, ChoiceBox, title=text, list=menu) + + def runPlugin(self, plugin): + event = self["list"].getCurrent() + plugin(session=self.session, selectedevent=event) + + def openTimerOverview(self): + self.session.open(TimerEditList) + + def onDateTimeInputClosed(self, ret): + if len(ret) > 1: + if ret[0]: + self.ask_time=ret[1] + self["list"].fillMultiEPG(self.services, ret[1]) + + def closeScreen(self): + if self.zapFunc: + self.zapFunc(None, zapback = True) + self.close(self.closeRecursive) + + def infoKeyPressed(self): + cur = self["list"].getCurrent() + event = cur[0] + service = cur[1] + if event is not None: + if self.type != EPG_TYPE_SIMILAR: + self.session.open(EventViewSimple, event, service, self.eventViewCallback, self.openSimilarList) + else: + self.session.open(EventViewSimple, event, service, self.eventViewCallback) + + def openSimilarList(self, eventid, refstr): + self.session.open(EPGSelection, refstr, None, eventid) + + def setServices(self, services): + self.services = services + self.onCreate() + + def setService(self, service): + self.currentService = service + self.onCreate() + + #just used in multipeg + def onCreate(self): + l = self["list"] + l.recalcEntrySize() + if self.type == EPG_TYPE_MULTI: + l.fillMultiEPG(self.services, self.ask_time) + l.moveToService(self.session.nav.getCurrentlyPlayingServiceOrGroup()) + elif self.type == EPG_TYPE_SINGLE: + service = self.currentService + self["Service"].newService(service.ref) + if self.saved_title is None: + self.saved_title = self.instance.getTitle() + title = self.saved_title + ' - ' + service.getServiceName() + self.instance.setTitle(title) + l.fillSingleEPG(service) + else: + l.fillSimilarList(self.currentService, self.eventid) + + def eventViewCallback(self, setEvent, setService, val): + l = self["list"] + old = l.getCurrent() + if val == -1: + self.moveUp() + elif val == +1: + self.moveDown() + cur = l.getCurrent() + if self.type == EPG_TYPE_MULTI and cur[0] is None and cur[1].ref != old[1].ref: + self.eventViewCallback(setEvent, setService, val) + else: + setService(cur[1]) + setEvent(cur[0]) + + def zapTo(self): + if self.key_red_choice == self.ZAP and self.zapFunc: + self.closeRecursive = True + from Components.ServiceEventTracker import InfoBarCount + if InfoBarCount > 1: + self.eventPreview() + else: + self.zapSelectedService() + self.close(self.closeRecursive) + + def zapSelectedService(self, prev=False): + lst = self["list"] + count = lst.getCurrentChangeCount() + if count == 0: + ref = lst.getCurrent()[1] + if ref is not None: + self.zapFunc(ref.ref, preview = prev) + + def eventPreview(self): + if self.zapFunc: + # if enabled, then closed whole EPG with EXIT: + # self.closeRecursive = True + self.zapSelectedService(True) + + def eventSelected(self): + if self.skinName == "EPGSelectionMulti": + cur = self["list"].getCurrent() + event = cur[0] + ref = cur[1] and cur[1].ref.toString() + if ref and event: + self.session.open(EPGSelection, ref) + else: + self.infoKeyPressed() + + def yellowButtonPressed(self): + if self.type == EPG_TYPE_MULTI: + self["list"].updateMultiEPG(-1) + elif self.type == EPG_TYPE_SINGLE: + if self.sort_type == 0: + self.sort_type = 1 + else: + self.sort_type = 0 + self["list"].sortSingleEPG(self.sort_type) + self.setSortDescription() + + def setSortDescription(self): + if self.sort_type == 1: + # TRANSLATORS: This must fit into the header button in the EPG-List + self["key_yellow"].setText(_("Sort time")) + else: + # TRANSLATORS: This must fit into the header button in the EPG-List + self["key_yellow"].setText(_("Sort A-Z")) + + def blueButtonPressed(self): + if self.type == EPG_TYPE_MULTI: + self["list"].updateMultiEPG(1) + + def removeTimer(self, timer): + timer.afterEvent = AFTEREVENT.NONE + self.session.nav.RecordTimer.removeEntry(timer) + self["key_green"].setText(_("Add timer")) + self.key_green_choice = self.ADD_TIMER + + def disableTimer(self, timer): + timer.disable() + self.session.nav.RecordTimer.timeChanged(timer) + self["key_green"].setText(_("Add timer")) + self.key_green_choice = self.ADD_TIMER + + def timerAdd(self): + cur = self["list"].getCurrent() + event = cur[0] + serviceref = cur[1] + if event is None: + return + eventid = event.getEventId() + refstr = ':'.join(serviceref.ref.toString().split(':')[:11]) + for timer in self.session.nav.RecordTimer.timer_list: + if timer.eit == eventid and ':'.join(timer.service_ref.ref.toString().split(':')[:11]) == refstr: + menu = [(_("Delete timer"), "delete"),(_("Edit timer"), "edit")] + buttons = ["red", "green"] + if not timer.isRunning(): + menu.append((_("Disable timer"), "disable")) + buttons.append("yellow") + menu.append((_("Timer Overview"), "timereditlist")) + def timerAction(choice): + if choice is not None: + if choice[1] == "delete": + self.removeTimer(timer) + elif choice[1] == "edit": + self.session.open(TimerEntry, timer) + elif choice[1] == "disable": + self.disableTimer(timer) + elif choice[1] == "timereditlist": + self.session.open(TimerEditList) + self.session.openWithCallback(timerAction, ChoiceBox, title=_("Select action for timer %s:") % event.getEventName(), list=menu, keys=buttons) + break + else: + newEntry = RecordTimerEntry(serviceref, checkOldTimers = True, dirname = preferredTimerPath(), *parseEvent(event)) + self.session.openWithCallback(self.finishedAdd, TimerEntry, newEntry) + + def finishedAdd(self, answer): + print "finished add" + if answer[0]: + entry = answer[1] + simulTimerList = self.session.nav.RecordTimer.record(entry) + if simulTimerList is not None: + for x in simulTimerList: + if x.setAutoincreaseEnd(entry): + self.session.nav.RecordTimer.timeChanged(x) + simulTimerList = self.session.nav.RecordTimer.record(entry) + if simulTimerList is not None: + if not entry.repeated and not config.recording.margin_before.value and not config.recording.margin_after.value and len(simulTimerList) > 1: + change_time = False + conflict_begin = simulTimerList[1].begin + conflict_end = simulTimerList[1].end + if conflict_begin == entry.end: + entry.end -= 30 + change_time = True + elif entry.begin == conflict_end: + entry.begin += 30 + change_time = True + if change_time: + simulTimerList = self.session.nav.RecordTimer.record(entry) + if simulTimerList is not None: + self.session.openWithCallback(self.finishSanityCorrection, TimerSanityConflict, simulTimerList) + self["key_green"].setText(_("Change timer")) + self.key_green_choice = self.REMOVE_TIMER + else: + self["key_green"].setText(_("Add timer")) + self.key_green_choice = self.ADD_TIMER + print "Timeredit aborted" + + def finishSanityCorrection(self, answer): + self.finishedAdd(answer) + + def moveUp(self): + self["list"].moveUp() + + def moveDown(self): + self["list"].moveDown() + + def applyButtonState(self, state): + if state == 0: + self["now_button"].hide() + self["now_button_sel"].hide() + self["next_button"].hide() + self["next_button_sel"].hide() + self["more_button"].hide() + self["more_button_sel"].hide() + self["now_text"].hide() + self["next_text"].hide() + self["more_text"].hide() + self["key_red"].setText("") + else: + if state == 1: + self["now_button_sel"].show() + self["now_button"].hide() + else: + self["now_button"].show() + self["now_button_sel"].hide() + + if state == 2: + self["next_button_sel"].show() + self["next_button"].hide() + else: + self["next_button"].show() + self["next_button_sel"].hide() + + if state == 3: + self["more_button_sel"].show() + self["more_button"].hide() + else: + self["more_button"].show() + self["more_button_sel"].hide() + + def onSelectionChanged(self): + cur = self["list"].getCurrent() + if cur is None: + if self.key_green_choice != self.EMPTY: + self["key_green"].setText("") + self.key_green_choice = self.EMPTY + if self.key_red_choice != self.EMPTY: + self["key_red"].setText("") + self.key_red_choice = self.EMPTY + return + event = cur[0] + self["Event"].newEvent(event) + if self.type == EPG_TYPE_MULTI: + count = self["list"].getCurrentChangeCount() + if self.ask_time != -1: + self.applyButtonState(0) + elif count > 1: + self.applyButtonState(3) + elif count > 0: + self.applyButtonState(2) + else: + self.applyButtonState(1) + days = [ _("Mon"), _("Tue"), _("Wed"), _("Thu"), _("Fri"), _("Sat"), _("Sun") ] + datestr = "" + if event is not None: + now = time() + beg = event.getBeginTime() + nowTime = localtime(now) + begTime = localtime(beg) + if nowTime[2] != begTime[2]: + datestr = '%s %d.%d.'%(days[begTime[6]], begTime[2], begTime[1]) + else: + datestr = '%s %d.%d.'%(_("Today"), begTime[2], begTime[1]) + self["date"].setText(datestr) + if cur[1] is None: + self["Service"].newService(None) + else: + self["Service"].newService(cur[1].ref) + + if cur[1] is None or cur[1].getServiceName() == "": + if self.key_green_choice != self.EMPTY: + self["key_green"].setText("") + self.key_green_choice = self.EMPTY + if self.key_red_choice != self.EMPTY: + self["key_red"].setText("") + self.key_red_choice = self.EMPTY + return + elif self.key_red_choice != self.ZAP and self.zapFunc is not None: + self["key_red"].setText(_("Zap")) + self.key_red_choice = self.ZAP + + if event is None: + if self.key_green_choice != self.EMPTY: + self["key_green"].setText("") + self.key_green_choice = self.EMPTY + return + + serviceref = cur[1] + eventid = event.getEventId() + refstr = ':'.join(serviceref.ref.toString().split(':')[:11]) + isRecordEvent = False + for timer in self.session.nav.RecordTimer.timer_list: + if timer.eit == eventid and ':'.join(timer.service_ref.ref.toString().split(':')[:11]) == refstr: + isRecordEvent = True + break + if isRecordEvent and self.key_green_choice != self.REMOVE_TIMER: + self["key_green"].setText(_("Change timer")) + self.key_green_choice = self.REMOVE_TIMER + elif not isRecordEvent and self.key_green_choice != self.ADD_TIMER: + self["key_green"].setText(_("Add timer")) + self.key_green_choice = self.ADD_TIMER diff --git a/lib/python/Screens/EventView.py b/lib/python/Screens/EventView.py new file mode 100644 index 0000000..6463594 --- /dev/null +++ b/lib/python/Screens/EventView.py @@ -0,0 +1,290 @@ +from Screen import Screen +from Screens.TimerEdit import TimerSanityConflict +from Screens.MessageBox import MessageBox +from Screens.ChoiceBox import ChoiceBox +from Components.ActionMap import ActionMap +from Components.Button import Button +from Components.Label import Label +from Components.ScrollLabel import ScrollLabel +from Components.PluginComponent import plugins +from Components.MenuList import MenuList +from Components.TimerList import TimerList +from Components.UsageConfig import preferredTimerPath +from Components.Sources.ServiceEvent import ServiceEvent +from Components.Sources.Event import Event +from enigma import eEPGCache, eTimer, eServiceReference +from RecordTimer import RecordTimerEntry, parseEvent, AFTEREVENT +from TimerEntry import TimerEntry +from Plugins.Plugin import PluginDescriptor +from Tools.BoundFunction import boundFunction +from time import localtime +from Components.config import config + +class EventViewBase: + ADD_TIMER = 0 + REMOVE_TIMER = 1 + + def __init__(self, event, Ref, callback=None, similarEPGCB=None): + self.similarEPGCB = similarEPGCB + self.cbFunc = callback + self.currentService=Ref + self.isRecording = (not Ref.ref.flags & eServiceReference.isGroup) and Ref.ref.getPath() + self.event = event + self["Service"] = ServiceEvent() + self["Event"] = Event() + self["epg_description"] = ScrollLabel() + self["FullDescription"] = ScrollLabel() + self["datetime"] = Label() + self["channel"] = Label() + self["duration"] = Label() + self["key_red"] = Button("") + if similarEPGCB is not None: + self.SimilarBroadcastTimer = eTimer() + self.SimilarBroadcastTimer.callback.append(self.getSimilarEvents) + else: + self.SimilarBroadcastTimer = None + self.key_green_choice = self.ADD_TIMER + if self.isRecording: + self["key_green"] = Button("") + else: + self["key_green"] = Button(_("Add timer")) + self["key_yellow"] = Button("") + self["key_blue"] = Button("") + self["actions"] = ActionMap(["OkCancelActions", "EventViewActions"], + { + "cancel": self.close, + "ok": self.close, + "pageUp": self.pageUp, + "pageDown": self.pageDown, + "prevEvent": self.prevEvent, + "nextEvent": self.nextEvent, + "timerAdd": self.timerAdd, + "openSimilarList": self.openSimilarList, + "contextMenu": self.doContext, + }) + self.onShown.append(self.onCreate) + + def onCreate(self): + self.setService(self.currentService) + self.setEvent(self.event) + + def prevEvent(self): + if self.cbFunc is not None: + self.cbFunc(self.setEvent, self.setService, -1) + + def nextEvent(self): + if self.cbFunc is not None: + self.cbFunc(self.setEvent, self.setService, +1) + + def removeTimer(self, timer): + timer.afterEvent = AFTEREVENT.NONE + self.session.nav.RecordTimer.removeEntry(timer) + self["key_green"].setText(_("Add timer")) + self.key_green_choice = self.ADD_TIMER + + def timerAdd(self): + if self.isRecording: + return + event = self.event + serviceref = self.currentService + if event is None: + return + eventid = event.getEventId() + refstr = ':'.join(serviceref.ref.toString().split(':')[:11]) + for timer in self.session.nav.RecordTimer.timer_list: + if timer.eit == eventid and ':'.join(timer.service_ref.ref.toString().split(':')[:11]) == refstr: + menu = [(_("Delete timer"), "delete"),(_("Edit timer"), "edit")] + buttons = ["red", "green"] + def timerAction(choice): + if choice is not None: + if choice[1] == "delete": + self.removeTimer(timer) + elif choice[1] == "edit": + self.session.open(TimerEntry, timer) + self.session.openWithCallback(timerAction, ChoiceBox, title=_("Select action for timer %s:") % event.getEventName(), list=menu, keys=buttons) + break + else: + newEntry = RecordTimerEntry(self.currentService, checkOldTimers = True, dirname = preferredTimerPath(), *parseEvent(self.event)) + self.session.openWithCallback(self.finishedAdd, TimerEntry, newEntry) + + def finishedAdd(self, answer): + print "finished add" + if answer[0]: + entry = answer[1] + simulTimerList = self.session.nav.RecordTimer.record(entry) + if simulTimerList is not None: + for x in simulTimerList: + if x.setAutoincreaseEnd(entry): + self.session.nav.RecordTimer.timeChanged(x) + simulTimerList = self.session.nav.RecordTimer.record(entry) + if simulTimerList is not None: + if not entry.repeated and not config.recording.margin_before.value and not config.recording.margin_after.value and len(simulTimerList) > 1: + change_time = False + conflict_begin = simulTimerList[1].begin + conflict_end = simulTimerList[1].end + if conflict_begin == entry.end: + entry.end -= 30 + change_time = True + elif entry.begin == conflict_end: + entry.begin += 30 + change_time = True + if change_time: + simulTimerList = self.session.nav.RecordTimer.record(entry) + if simulTimerList is not None: + self.session.openWithCallback(self.finishSanityCorrection, TimerSanityConflict, simulTimerList) + self["key_green"].setText(_("Change timer")) + self.key_green_choice = self.REMOVE_TIMER + else: + self["key_green"].setText(_("Add timer")) + self.key_green_choice = self.ADD_TIMER + print "Timeredit aborted" + + def finishSanityCorrection(self, answer): + self.finishedAdd(answer) + + def setService(self, service): + self.currentService=service + self["Service"].newService(service.ref) + if self.isRecording: + self["channel"].setText(_("Recording")) + else: + name = service.getServiceName() + if name is not None: + self["channel"].setText(name) + else: + self["channel"].setText(_("unknown service")) + + def sort_func(self,x,y): + if x[1] < y[1]: + return -1 + elif x[1] == y[1]: + return 0 + else: + return 1 + + def setEvent(self, event): + self.event = event + self["Event"].newEvent(event) + if event is None: + return + text = event.getEventName() + short = event.getShortDescription() + ext = event.getExtendedDescription() + if short == text: + short = "" + if short and ext: + ext = short + "\n\n" + ext + elif short: + ext = short + + if text and ext: + text += "\n\n" + text += ext + + self.setTitle(event.getEventName()) + self["epg_description"].setText(text) + self["FullDescription"].setText(ext) + self["datetime"].setText(event.getBeginTimeString()) + self["duration"].setText(_("%d min")%(event.getDuration()/60)) + self["key_red"].setText("") + if self.SimilarBroadcastTimer is not None: + self.SimilarBroadcastTimer.start(400,True) + + serviceref = self.currentService + eventid = self.event.getEventId() + refstr = ':'.join(serviceref.ref.toString().split(':')[:11]) + isRecordEvent = False + for timer in self.session.nav.RecordTimer.timer_list: + if timer.eit == eventid and ':'.join(timer.service_ref.ref.toString().split(':')[:11]) == refstr: + isRecordEvent = True + break + if isRecordEvent and self.key_green_choice != self.REMOVE_TIMER: + self["key_green"].setText(_("Change timer")) + self.key_green_choice = self.REMOVE_TIMER + elif not isRecordEvent and self.key_green_choice != self.ADD_TIMER: + self["key_green"].setText(_("Add timer")) + self.key_green_choice = self.ADD_TIMER + + + def pageUp(self): + self["epg_description"].pageUp() + self["FullDescription"].pageUp() + + def pageDown(self): + self["epg_description"].pageDown() + self["FullDescription"].pageDown() + + def getSimilarEvents(self): + # search similar broadcastings + if not self.event: + return + refstr = str(self.currentService) + id = self.event.getEventId() + epgcache = eEPGCache.getInstance() + ret = epgcache.search(('NB', 100, eEPGCache.SIMILAR_BROADCASTINGS_SEARCH, refstr, id)) + if ret is not None: + text = '\n\n' + _('Similar broadcasts:') + ret.sort(self.sort_func) + for x in ret: + t = localtime(x[1]) + text += '\n%d.%d.%d, %2d:%02d - %s'%(t[2], t[1], t[0], t[3], t[4], x[0]) + descr = self["epg_description"] + descr.setText(descr.getText()+text) + descr = self["FullDescription"] + descr.setText(descr.getText()+text) + self["key_red"].setText(_("Similar")) + + def openSimilarList(self): + if self.similarEPGCB is not None and self["key_red"].getText(): + id = self.event and self.event.getEventId() + refstr = str(self.currentService) + if id is not None: + self.similarEPGCB(id, refstr) + + def doContext(self): + if self.event: + text = _("Select action") + menu = [(p.name, boundFunction(self.runPlugin, p)) for p in plugins.getPlugins(where = PluginDescriptor.WHERE_EVENTINFO) \ + if 'servicelist' not in p.__call__.func_code.co_varnames \ + if 'selectedevent' not in p.__call__.func_code.co_varnames ] + if len(menu) == 1: + menu and menu[0][1]() + elif len(menu) > 1: + def boxAction(choice): + if choice: + choice[1]() + text += _(": %s") % self.event.getEventName() + self.session.openWithCallback(boxAction, ChoiceBox, title=text, list=menu) + + def runPlugin(self, plugin): + plugin(session=self.session, service=self.currentService, event=self.event, eventName=self.event.getEventName()) + +class EventViewSimple(Screen, EventViewBase): + def __init__(self, session, Event, Ref, callback=None, similarEPGCB=None): + Screen.__init__(self, session) + self.skinName = "EventView" + EventViewBase.__init__(self, Event, Ref, callback, similarEPGCB) + +class EventViewEPGSelect(Screen, EventViewBase): + def __init__(self, session, Event, Ref, callback=None, singleEPGCB=None, multiEPGCB=None, similarEPGCB=None): + Screen.__init__(self, session) + self.skinName = "EventView" + EventViewBase.__init__(self, Event, Ref, callback, similarEPGCB) + self["key_yellow"].setText(_("Single EPG")) + self["key_blue"].setText(_("Multi EPG")) + self["epgactions"] = ActionMap(["EventViewEPGActions"], + { + "openSingleServiceEPG": singleEPGCB, + "openMultiServiceEPG": multiEPGCB, + }) + +class EventViewRecording(Screen, EventViewBase): + def __init__(self, session, Event, Ref, callback=None, multiEPGCB=None, similarEPGCB=None): + Screen.__init__(self, session) + self.skinName = "EventView" + EventViewBase.__init__(self, Event, Ref, callback, similarEPGCB) + self["key_blue"].setText(_("Multi EPG")) + self["epgactions"] = ActionMap(["EventViewEPGActions"], + { + "openMultiServiceEPG": multiEPGCB, + }) diff --git a/lib/python/Screens/FactoryReset.py b/lib/python/Screens/FactoryReset.py new file mode 100644 index 0000000..ce5aaeb --- /dev/null +++ b/lib/python/Screens/FactoryReset.py @@ -0,0 +1,9 @@ +from Screens.MessageBox import MessageBox + +class FactoryReset(MessageBox): + def __init__(self, session): + MessageBox.__init__(self, session, _("When you do a factory reset, you will lose ALL your configuration data\n" + "(including bouquets, services, satellite data ...)\n" + "After completion of factory reset, your receiver will restart automatically!\n\n" + "Really do a factory reset?"), MessageBox.TYPE_YESNO) + self.skinName = "MessageBox" \ No newline at end of file diff --git a/lib/python/Screens/FixedMenu.py b/lib/python/Screens/FixedMenu.py new file mode 100644 index 0000000..97c2af0 --- /dev/null +++ b/lib/python/Screens/FixedMenu.py @@ -0,0 +1,23 @@ +from Screen import Screen +from Components.Sources.List import List +from Components.ActionMap import ActionMap +from Components.Sources.StaticText import StaticText + +class FixedMenu(Screen): + def okbuttonClick(self): + selection = self["menu"].getCurrent() + if selection and len(selection) > 1: + selection[1]() + + def __init__(self, session, title, list): + Screen.__init__(self, session) + + self["menu"] = List(list) + + self["actions"] = ActionMap(["OkCancelActions"], + { + "ok": self.okbuttonClick, + "cancel": self.close + }) + + self["title"] = StaticText(title) diff --git a/lib/python/Screens/Globals.py b/lib/python/Screens/Globals.py new file mode 100644 index 0000000..9ae1002 --- /dev/null +++ b/lib/python/Screens/Globals.py @@ -0,0 +1,7 @@ +from Screens.Screen import Screen +from Components.Sources.Clock import Clock + +class Globals(Screen): + def __init__(self): + Screen.__init__(self, None) + self["CurrentTime"] = Clock() diff --git a/lib/python/Screens/HarddiskSetup.py b/lib/python/Screens/HarddiskSetup.py new file mode 100644 index 0000000..83db088 --- /dev/null +++ b/lib/python/Screens/HarddiskSetup.py @@ -0,0 +1,83 @@ +from Screen import Screen +from Components.ActionMap import ActionMap +from Components.Harddisk import harddiskmanager +from Components.MenuList import MenuList +from Components.Label import Label +from Components.Pixmap import Pixmap +from Screens.MessageBox import MessageBox + +class HarddiskSetup(Screen): + def __init__(self, session, hdd, action, text, question): + Screen.__init__(self, session) + self.action = action + self.question = question + self["model"] = Label(_("Model: ") + hdd.model()) + self["capacity"] = Label(_("Capacity: ") + hdd.capacity()) + self["bus"] = Label(_("Bus: ") + hdd.bus()) + self["initialize"] = Pixmap() + self["initializetext"] = Label(text) + self["actions"] = ActionMap(["OkCancelActions"], + { + "ok": self.hddQuestion, + "cancel": self.close + }) + self["shortcuts"] = ActionMap(["ShortcutActions"], + { + "red": self.hddQuestion + }) + + def hddQuestion(self): + message = self.question + "\n" + _("You can continue watching TV etc. while this is running.") + self.session.openWithCallback(self.hddConfirmed, MessageBox, message) + + def hddConfirmed(self, confirmed): + if not confirmed: + return + from Components.Task import job_manager + try: + job_manager.AddJob(self.action(), onSuccess=job_manager.popupTaskView) + except Exception, ex: + self.session.open(MessageBox, str(ex), type=MessageBox.TYPE_ERROR, timeout=10) + self.close() + +class HarddiskSelection(Screen): + def __init__(self, session): + Screen.__init__(self, session) + self.skinName = "HarddiskSelection" # For derived classes + if harddiskmanager.HDDCount() == 0: + tlist = [] + tlist.append((_("no storage devices found"), 0)) + self["hddlist"] = MenuList(tlist) + else: + self["hddlist"] = MenuList(harddiskmanager.HDDList()) + self["actions"] = ActionMap(["OkCancelActions"], + { + "ok": self.okbuttonClick, + "cancel": self.close + }) + + def doIt(self, selection): + self.session.openWithCallback(self.close, HarddiskSetup, selection, + action=selection.createInitializeJob, + text=_("Initialize"), + question=_("Do you really want to initialize the device?\nAll data on the disk will be lost!")) + + def okbuttonClick(self): + selection = self["hddlist"].getCurrent() + if selection[1] != 0: + self.doIt(selection[1]) + +# This is actually just HarddiskSelection but with correct type +class HarddiskFsckSelection(HarddiskSelection): + def doIt(self, selection): + self.session.openWithCallback(self.close, HarddiskSetup, selection, + action=selection.createCheckJob, + text=_("Check"), + question=_("Do you really want to check the filesystem?\nThis could take lots of time!")) + +class HarddiskConvertExt4Selection(HarddiskSelection): + def doIt(self, selection): + self.session.openWithCallback(self.close, HarddiskSetup, selection, + action=selection.createExt4ConversionJob, + text=_("Convert ext3 to ext4"), + question=_("Do you really want to convert the filesystem?\nYou cannot go back!")) diff --git a/lib/python/Screens/HelpMenu.py b/lib/python/Screens/HelpMenu.py new file mode 100644 index 0000000..6494860 --- /dev/null +++ b/lib/python/Screens/HelpMenu.py @@ -0,0 +1,61 @@ +from Screen import Screen +from Components.Pixmap import Pixmap, MovingPixmap +from Components.Label import Label +from Components.ActionMap import ActionMap +from Components.HelpMenuList import HelpMenuList +from Screens.Rc import Rc + +class HelpMenu(Screen, Rc): + def __init__(self, session, list): + Screen.__init__(self, session) + self.onSelChanged = [ ] + self["list"] = HelpMenuList(list, self.close) + self["list"].onSelChanged.append(self.SelectionChanged) + Rc.__init__(self) + self["long_key"] = Label("") + + self["actions"] = ActionMap(["WizardActions"], + { + "ok": self["list"].ok, + "back": self.close, + }, -1) + + self.onLayoutFinish.append(self.SelectionChanged) + + def SelectionChanged(self): + self.clearSelectedKeys() + selection = self["list"].getCurrent() + if selection: + selection = selection[3] + #arrow = self["arrowup"] + print "selection:", selection + + longText = "" + if selection and len(selection) > 1: + if selection[1] == "SHIFT": + self.selectKey("SHIFT") + elif selection[1] == "long": + longText = _("Long key press") + self["long_key"].setText(longText) + + self.selectKey(selection[0]) + #if selection is None: + print "select arrow" + # arrow.moveTo(selection[1], selection[2], 1) + # arrow.startMoving() + # arrow.show() + +class HelpableScreen: + def __init__(self): + self["helpActions"] = ActionMap( [ "HelpActions" ], + { + "displayHelp": self.showHelp, + }) + + def showHelp(self): + self.session.openWithCallback(self.callHelpAction, HelpMenu, self.helpList) + + def callHelpAction(self, *args): + if args: + (actionmap, context, action) = args + actionmap.action(context, action) diff --git a/lib/python/Screens/InfoBar.py b/lib/python/Screens/InfoBar.py new file mode 100644 index 0000000..8b3ddfa --- /dev/null +++ b/lib/python/Screens/InfoBar.py @@ -0,0 +1,518 @@ +from Tools.Profile import profile +from Tools.BoundFunction import boundFunction +from enigma import eServiceReference + +# workaround for required config entry dependencies. +import Screens.MovieSelection + +from Screen import Screen +from Screens.MessageBox import MessageBox + +profile("LOAD:enigma") +import enigma + +profile("LOAD:InfoBarGenerics") +from Screens.InfoBarGenerics import InfoBarShowHide, \ + InfoBarNumberZap, InfoBarChannelSelection, InfoBarMenu, InfoBarRdsDecoder, \ + InfoBarEPG, InfoBarSeek, InfoBarInstantRecord, InfoBarRedButton, InfoBarTimerButton, InfoBarVmodeButton, \ + InfoBarAudioSelection, InfoBarAdditionalInfo, InfoBarNotifications, InfoBarDish, InfoBarUnhandledKey, \ + InfoBarSubserviceSelection, InfoBarShowMovies, InfoBarTimeshift, \ + InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, \ + InfoBarSummarySupport, InfoBarMoviePlayerSummarySupport, InfoBarTimeshiftState, InfoBarTeletextPlugin, InfoBarExtensions, \ + InfoBarSubtitleSupport, InfoBarPiP, InfoBarPlugins, InfoBarServiceErrorPopupSupport, InfoBarJobman, InfoBarPowersaver, \ + InfoBarHDMI, setResumePoint, delResumePoint + +profile("LOAD:InitBar_Components") +from Components.ActionMap import HelpableActionMap +from Components.config import config +from Components.ServiceEventTracker import ServiceEventTracker, InfoBarBase + +profile("LOAD:HelpableScreen") +from Screens.HelpMenu import HelpableScreen + +class InfoBar(InfoBarBase, InfoBarShowHide, + InfoBarNumberZap, InfoBarChannelSelection, InfoBarMenu, InfoBarEPG, InfoBarRdsDecoder, + InfoBarInstantRecord, InfoBarAudioSelection, InfoBarRedButton, InfoBarTimerButton, InfoBarVmodeButton, + HelpableScreen, InfoBarAdditionalInfo, InfoBarNotifications, InfoBarDish, InfoBarUnhandledKey, + InfoBarSubserviceSelection, InfoBarTimeshift, InfoBarSeek, InfoBarCueSheetSupport, + InfoBarSummarySupport, InfoBarTimeshiftState, InfoBarTeletextPlugin, InfoBarExtensions, + InfoBarPiP, InfoBarPlugins, InfoBarSubtitleSupport, InfoBarServiceErrorPopupSupport, InfoBarJobman, InfoBarPowersaver, + InfoBarHDMI, Screen): + + ALLOW_SUSPEND = True + instance = None + + def __init__(self, session): + Screen.__init__(self, session) + self["actions"] = HelpableActionMap(self, "InfobarActions", + { + "showMovies": (self.showMovies, _("Play recorded movies...")), + "showRadio": (self.showRadio, _("Show the radio player...")), + "showTv": (self.showTv, _("Show the tv player...")), + }, prio=2) + + self.allowPiP = True + + for x in HelpableScreen, \ + InfoBarBase, InfoBarShowHide, \ + InfoBarNumberZap, InfoBarChannelSelection, InfoBarMenu, InfoBarEPG, InfoBarRdsDecoder, \ + InfoBarInstantRecord, InfoBarAudioSelection, InfoBarRedButton, InfoBarTimerButton, InfoBarUnhandledKey, InfoBarVmodeButton,\ + InfoBarAdditionalInfo, InfoBarNotifications, InfoBarDish, InfoBarSubserviceSelection, \ + InfoBarTimeshift, InfoBarSeek, InfoBarCueSheetSupport, InfoBarSummarySupport, InfoBarTimeshiftState, \ + InfoBarTeletextPlugin, InfoBarExtensions, InfoBarPiP, InfoBarSubtitleSupport, InfoBarJobman, InfoBarPowersaver, \ + InfoBarPlugins, InfoBarServiceErrorPopupSupport, InfoBarHDMI: + x.__init__(self) + + self.helpList.append((self["actions"], "InfobarActions", [("showMovies", _("Watch recordings..."))])) + self.helpList.append((self["actions"], "InfobarActions", [("showRadio", _("Listen to the radio..."))])) + + self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + { + enigma.iPlayableService.evUpdatedEventInfo: self.__eventInfoChanged + }) + + self.current_begin_time=0 + assert InfoBar.instance is None, "class InfoBar is a singleton class and just one instance of this class is allowed!" + InfoBar.instance = self + + def __onClose(self): + InfoBar.instance = None + + def __eventInfoChanged(self): + if self.execing: + service = self.session.nav.getCurrentService() + old_begin_time = self.current_begin_time + info = service and service.info() + ptr = info and info.getEvent(0) + self.current_begin_time = ptr and ptr.getBeginTime() or 0 + if config.usage.show_infobar_on_event_change.value: + if old_begin_time and old_begin_time != self.current_begin_time: + self.doShow() + + def __checkServiceStarted(self): + self.__serviceStarted(True) + self.onExecBegin.remove(self.__checkServiceStarted) + + def serviceStarted(self): #override from InfoBarShowHide + new = self.servicelist.newServicePlayed() + if self.execing: + InfoBarShowHide.serviceStarted(self) + self.current_begin_time=0 + elif not self.__checkServiceStarted in self.onShown and new: + self.onShown.append(self.__checkServiceStarted) + + def __checkServiceStarted(self): + self.serviceStarted() + self.onShown.remove(self.__checkServiceStarted) + + def showTv(self): + self.showTvChannelList(True) + + def showRadio(self): + if config.usage.e1like_radio_mode.value: + self.showRadioChannelList(True) + else: + self.rds_display.hide() # in InfoBarRdsDecoder + from Screens.ChannelSelection import ChannelSelectionRadio + self.session.openWithCallback(self.ChannelSelectionRadioClosed, ChannelSelectionRadio, self) + + def ChannelSelectionRadioClosed(self, *arg): + self.rds_display.show() # in InfoBarRdsDecoder + self.servicelist.correctChannelNumber() + + def showMovies(self, defaultRef=None): + self.lastservice = self.session.nav.getCurrentlyPlayingServiceOrGroup() + self.session.openWithCallback(self.movieSelected, Screens.MovieSelection.MovieSelection, defaultRef or eServiceReference(config.usage.last_movie_played.value), timeshiftEnabled = self.timeshiftEnabled()) + + def movieSelected(self, service): + ref = self.lastservice + del self.lastservice + if service is None: + if ref and not self.session.nav.getCurrentlyPlayingServiceOrGroup(): + self.session.nav.playService(ref) + else: + self.session.open(MoviePlayer, service, slist=self.servicelist, lastservice=ref, infobar=self) + +class MoviePlayer(InfoBarBase, InfoBarShowHide, InfoBarMenu, InfoBarSeek, InfoBarShowMovies, InfoBarInstantRecord, + InfoBarAudioSelection, HelpableScreen, InfoBarNotifications, InfoBarServiceNotifications, InfoBarPVRState, + InfoBarCueSheetSupport, InfoBarMoviePlayerSummarySupport, InfoBarSubtitleSupport, Screen, InfoBarTeletextPlugin, + InfoBarServiceErrorPopupSupport, InfoBarExtensions, InfoBarPlugins, InfoBarPiP, InfoBarHDMI): + + ENABLE_RESUME_SUPPORT = True + ALLOW_SUSPEND = True + + def __init__(self, session, service, slist=None, lastservice=None, infobar=None): + Screen.__init__(self, session) + + self["actions"] = HelpableActionMap(self, "MoviePlayerActions", + { + "InfoButtonPressed": (self.openEventView, _("open Info...")), + "EPGButtonPressed": (self.showDefaultEPG, _("open EPG...")), + "InfoButtonPressedLong": (self.showEventInfoPlugins, _("select Info...")), + "EPGButtonPressedLong": (self.showEventGuidePlugins, _("select EPG...")), + "leavePlayer": (self.leavePlayer, _("leave movie player...")), + "leavePlayerOnExit": (self.leavePlayerOnExit, _("leave movie player...")), + "channelUp": (self.channelUp, _("when PiPzap enabled zap channel up...")), + "channelDown": (self.channelDown, _("when PiPzap enabled zap channel down...")), + }) + + self["DirectionActions"] = HelpableActionMap(self, "DirectionActions", + { + "left": self.left, + "right": self.right + }, prio = -2) + + self.allowPiP = True + + for x in HelpableScreen, InfoBarShowHide, InfoBarMenu, \ + InfoBarBase, InfoBarSeek, InfoBarShowMovies, InfoBarInstantRecord, \ + InfoBarAudioSelection, InfoBarNotifications, \ + InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, \ + InfoBarMoviePlayerSummarySupport, InfoBarSubtitleSupport, \ + InfoBarTeletextPlugin, InfoBarServiceErrorPopupSupport, InfoBarExtensions, \ + InfoBarPlugins, InfoBarPiP, InfoBarHDMI: + x.__init__(self) + + self.servicelist = slist + self.infobar = infobar + self.lastservice = lastservice or session.nav.getCurrentlyPlayingServiceOrGroup() + session.nav.playService(service) + self.cur_service = service + self.returning = False + self.onClose.append(self.__onClose) + + def __onClose(self): + from Screens.MovieSelection import playlist + del playlist[:] + if not config.movielist.stop_service.value: + Screens.InfoBar.InfoBar.instance.callServiceStarted() + self.session.nav.playService(self.lastservice) + config.usage.last_movie_played.value = self.cur_service.toString() + config.usage.last_movie_played.save() + + def handleLeave(self, how): + self.is_closing = True + if how == "ask": + if config.usage.setup_level.index < 2: # -expert + list = ( + (_("Yes"), "quit"), + (_("No"), "continue") + ) + else: + list = ( + (_("Yes"), "quit"), + (_("Yes, returning to movie list"), "movielist"), + (_("Yes, and delete this movie"), "quitanddelete"), + (_("Yes, delete this movie and return to movie list"), "deleteandmovielist"), + (_("No"), "continue"), + (_("No, but restart from begin"), "restart") + ) + + from Screens.ChoiceBox import ChoiceBox + self.session.openWithCallback(self.leavePlayerConfirmed, ChoiceBox, title=_("Stop playing this movie?"), list = list) + else: + self.leavePlayerConfirmed([True, how]) + + def leavePlayer(self): + setResumePoint(self.session) + self.handleLeave(config.usage.on_movie_stop.value) + + def leavePlayerOnExit(self): + if self.shown: + self.hide() + elif self.session.pipshown and "popup" in config.usage.pip_hideOnExit.value: + if config.usage.pip_hideOnExit.value == "popup": + self.session.openWithCallback(self.hidePipOnExitCallback, MessageBox, _("Disable Picture in Picture"), simple=True) + else: + self.hidePipOnExitCallback(True) + elif config.usage.leave_movieplayer_onExit.value == "popup": + self.session.openWithCallback(self.leavePlayerOnExitCallback, MessageBox, _("Exit movie player?"), simple=True) + elif config.usage.leave_movieplayer_onExit.value == "without popup": + self.leavePlayerOnExitCallback(True) + + def leavePlayerOnExitCallback(self, answer): + if answer == True: + setResumePoint(self.session) + self.handleLeave("quit") + + def hidePipOnExitCallback(self, answer): + if answer == True: + self.showPiP() + + def deleteConfirmed(self, answer): + if answer: + self.leavePlayerConfirmed((True, "quitanddeleteconfirmed")) + + def deleteAndMovielistConfirmed(self, answer): + if answer: + self.leavePlayerConfirmed((True, "deleteandmovielistconfirmed")) + + def movielistAgain(self): + from Screens.MovieSelection import playlist + del playlist[:] + self.leavePlayerConfirmed((True, "movielist")) + + def leavePlayerConfirmed(self, answer): + answer = answer and answer[1] + if answer is None: + return + if answer in ("quitanddelete", "quitanddeleteconfirmed", "deleteandmovielist", "deleteandmovielistconfirmed"): + ref = self.session.nav.getCurrentlyPlayingServiceOrGroup() + serviceHandler = enigma.eServiceCenter.getInstance() + if answer in ("quitanddelete", "deleteandmovielist"): + msg = '' + if config.usage.movielist_trashcan.value: + import Tools.Trashcan + try: + trash = Tools.Trashcan.createTrashFolder(ref.getPath()) + Screens.MovieSelection.moveServiceFiles(ref, trash) + # Moved to trash, okay + if answer == "quitanddelete": + self.close() + else: + self.movielistAgain() + return + except Exception, e: + print "[InfoBar] Failed to move to .Trash folder:", e + msg = _("Cannot move to trash can") + "\n" + str(e) + "\n" + info = serviceHandler.info(ref) + name = info and info.getName(ref) or _("this recording") + msg += _("Do you really want to delete %s?") % name + if answer == "quitanddelete": + self.session.openWithCallback(self.deleteConfirmed, MessageBox, msg) + elif answer == "deleteandmovielist": + self.session.openWithCallback(self.deleteAndMovielistConfirmed, MessageBox, msg) + return + + elif answer in ("quitanddeleteconfirmed", "deleteandmovielistconfirmed"): + offline = serviceHandler.offlineOperations(ref) + if offline.deleteFromDisk(0): + self.session.openWithCallback(self.close, MessageBox, _("You cannot delete this!"), MessageBox.TYPE_ERROR) + if answer == "deleteandmovielistconfirmed": + self.movielistAgain() + return + + if answer in ("quit", "quitanddeleteconfirmed"): + self.close() + elif answer in ("movielist", "deleteandmovielistconfirmed"): + ref = self.session.nav.getCurrentlyPlayingServiceOrGroup() + self.returning = True + self.session.openWithCallback(self.movieSelected, Screens.MovieSelection.MovieSelection, ref) + self.session.nav.stopService() + if not config.movielist.stop_service.value: + self.session.nav.playService(self.lastservice) + elif answer == "restart": + self.doSeek(0) + self.setSeekState(self.SEEK_STATE_PLAY) + elif answer in ("playlist","playlistquit","loop"): + ( next_service, item , lenght ) = self.getPlaylistServiceInfo(self.cur_service) + if next_service is not None: + if config.usage.next_movie_msg.value: + self.displayPlayedName(next_service, item, lenght) + self.session.nav.playService(next_service) + self.cur_service = next_service + else: + if answer == "playlist": + self.leavePlayerConfirmed([True,"movielist"]) + elif answer == "loop" and lenght > 0: + self.leavePlayerConfirmed([True,"loop"]) + else: + self.leavePlayerConfirmed([True,"quit"]) + elif answer in ("repeatcurrent"): + if config.usage.next_movie_msg.value: + (item, lenght) = self.getPlaylistServiceInfo(self.cur_service) + self.displayPlayedName(self.cur_service, item, lenght) + self.session.nav.stopService() + self.session.nav.playService(self.cur_service) + + def doEofInternal(self, playing): + if not self.execing: + return + if not playing : + return + ref = self.session.nav.getCurrentlyPlayingServiceOrGroup() + if ref: + delResumePoint(ref) + self.handleLeave(config.usage.on_movie_eof.value) + + def up(self): + slist = self.servicelist + if self.servicelist and self.servicelist.dopipzap: + if config.usage.oldstyle_zap_controls.value: + self.zapDown() + else: + self.switchChannelUp() + else: + self.showMovies() + + def down(self): + if self.servicelist and self.servicelist.dopipzap: + if config.usage.oldstyle_zap_controls.value: + self.zapUp() + else: + self.switchChannelDown() + else: + self.showMovies() + + def right(self): + if self.servicelist and self.servicelist.dopipzap: + if config.usage.oldstyle_zap_controls.value: + self.switchChannelDown() + else: + self.zapDown() + else: + InfoBarSeek.seekFwd(self) + + def left(self): + if self.servicelist and self.servicelist.dopipzap: + if config.usage.oldstyle_zap_controls.value: + self.switchChannelUp() + else: + self.zapUp() + else: + InfoBarSeek.seekBack(self) + + def channelUp(self): + if config.usage.zap_with_ch_buttons.value and self.servicelist.dopipzap: + self.zapDown() + else: + return 0 + + def channelDown(self): + if config.usage.zap_with_ch_buttons.value and self.servicelist.dopipzap: + self.zapUp() + else: + return 0 + + def switchChannelDown(self): + if "keep" not in config.usage.servicelist_cursor_behavior.value: + self.servicelist.moveDown() + self.session.execDialog(self.servicelist) + + def switchChannelUp(self): + if "keep" not in config.usage.servicelist_cursor_behavior.value: + self.servicelist.moveUp() + self.session.execDialog(self.servicelist) + + def zapUp(self): + slist = self.servicelist + if slist.inBouquet(): + prev = slist.getCurrentSelection() + if prev: + prev = prev.toString() + while True: + if config.usage.quickzap_bouquet_change.value: + if slist.atBegin(): + slist.prevBouquet() + slist.moveUp() + cur = slist.getCurrentSelection() + if cur: + playable = not (cur.flags & (64|8)) and hasattr(self.session, "pip") and self.session.pip.isPlayableForPipService(cur) + if cur.toString() == prev or playable: + break + else: + slist.moveUp() + slist.zap(enable_pipzap = True) + + def zapDown(self): + slist = self.servicelist + if slist.inBouquet(): + prev = slist.getCurrentSelection() + if prev: + prev = prev.toString() + while True: + if config.usage.quickzap_bouquet_change.value and slist.atEnd(): + slist.nextBouquet() + else: + slist.moveDown() + cur = slist.getCurrentSelection() + if cur: + playable = not (cur.flags & (64|8)) and hasattr(self.session, "pip") and self.session.pip.isPlayableForPipService(cur) + if cur.toString() == prev or playable: + break + else: + slist.moveDown() + slist.zap(enable_pipzap = True) + + def showPiP(self): + slist = self.servicelist + if self.session.pipshown: + if slist and slist.dopipzap: + slist.togglePipzap() + if self.session.pipshown: + del self.session.pip + self.session.pipshown = False + else: + from Screens.PictureInPicture import PictureInPicture + self.session.pip = self.session.instantiateDialog(PictureInPicture) + self.session.pip.show() + if self.session.pip.playService(slist.getCurrentSelection()): + self.session.pipshown = True + self.session.pip.servicePath = slist.getCurrentServicePath() + else: + self.session.pipshown = False + del self.session.pip + + def movePiP(self): + if self.session.pipshown: + InfoBarPiP.movePiP(self) + + def swapPiP(self): + pass + + def showDefaultEPG(self): + if self.infobar: + self.infobar.showMultiEPG() + + def openEventView(self): + if self.infobar: + self.infobar.showDefaultEPG() + + def showEventInfoPlugins(self): + if self.infobar: + self.infobar.showEventInfoPlugins() + + def showEventGuidePlugins(self): + if self.infobar: + self.infobar.showEventGuidePlugins() + + def showMovies(self): + ref = self.session.nav.getCurrentlyPlayingServiceOrGroup() + self.playingservice = ref # movie list may change the currently playing + self.session.openWithCallback(self.movieSelected, Screens.MovieSelection.MovieSelection, ref) + + def movieSelected(self, service): + if service is not None: + self.cur_service = service + self.is_closing = False + self.session.nav.playService(service) + self.returning = False + elif self.returning: + self.close() + else: + self.is_closing = False + ref = self.playingservice + del self.playingservice + # no selection? Continue where we left off + if ref and not self.session.nav.getCurrentlyPlayingServiceOrGroup(): + self.session.nav.playService(ref) + + def getPlaylistServiceInfo(self, service): + from MovieSelection import playlist + for i, item in enumerate(playlist): + if item == service: + if config.usage.on_movie_eof.value == "repeatcurrent": + return (i+1, len(playlist)) + i += 1 + if i < len(playlist): + return (playlist[i], i+1, len(playlist)) + elif config.usage.on_movie_eof.value == "loop": + return (playlist[0], 1, len(playlist)) + return ( None, 0, 0 ) + + def displayPlayedName(self, ref, index, n): + from Tools import Notifications + Notifications.AddPopup(text = _("%s/%s: %s") % (index, n, self.ref2HumanName(ref)), type = MessageBox.TYPE_INFO, timeout = 5) + + def ref2HumanName(self, ref): + return enigma.eServiceCenter.getInstance().info(ref).getName(ref) diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py new file mode 100644 index 0000000..0ea0863 --- /dev/null +++ b/lib/python/Screens/InfoBarGenerics.py @@ -0,0 +1,3187 @@ +from ChannelSelection import ChannelSelection, BouquetSelector, SilentBouquetSelector + +from Components.ActionMap import ActionMap, HelpableActionMap +from Components.ActionMap import NumberActionMap +from Components.Harddisk import harddiskmanager +from Components.Input import Input +from Components.Label import Label +from Components.MovieList import AUDIO_EXTENSIONS, MOVIE_EXTENSIONS, DVD_EXTENSIONS +from Components.PluginComponent import plugins +from Components.ServiceEventTracker import ServiceEventTracker +from Components.Sources.Boolean import Boolean +from Components.config import config, ConfigBoolean, ConfigClock +from Components.SystemInfo import SystemInfo +from Components.UsageConfig import preferredInstantRecordPath, defaultMoviePath, ConfigSelection +from Components.Sources.StaticText import StaticText +from EpgSelection import EPGSelection +from Plugins.Plugin import PluginDescriptor + +from Screen import Screen +from Screens import ScreenSaver +from Screens import Standby +from Screens.ChoiceBox import ChoiceBox +from Screens.Dish import Dish +from Screens.EventView import EventViewEPGSelect, EventViewSimple, EventViewRecording +from Screens.InputBox import InputBox +from Screens.MessageBox import MessageBox +from Screens.MinuteInput import MinuteInput +from Screens.TimerSelection import TimerSelection +from Screens.PictureInPicture import PictureInPicture +import Screens.Standby +from Screens.SubtitleDisplay import SubtitleDisplay +from Screens.RdsDisplay import RdsInfoDisplay, RassInteractive +from Screens.TimeDateInput import TimeDateInput +from Screens.UnhandledKey import UnhandledKey +from ServiceReference import ServiceReference, isPlayableForCur + +from Tools import Notifications, ASCIItranslit +from Tools.Directories import fileExists, getRecordingFilename, moveFiles + +from enigma import eTimer, eServiceCenter, eDVBServicePMTHandler, iServiceInformation, \ + iPlayableService, eServiceReference, eEPGCache, eActionMap + +from time import time, localtime, strftime +from os import stat as os_stat +from os import rename as os_rename +import os +from bisect import insort +from sys import maxint + +from RecordTimer import RecordTimerEntry, RecordTimer, findSafeRecordPath + +# hack alert! +from Menu import MainMenu, mdom + +def isStandardInfoBar(self): + return self.__class__.__name__ == "InfoBar" + +def setResumePoint(session): + global resumePointCache, resumePointCacheLast + service = session.nav.getCurrentService() + ref = session.nav.getCurrentlyPlayingServiceOrGroup() + if (service is not None) and (ref is not None): # and (ref.type != 1): + # ref type 1 has its own memory... + seek = service.seek() + if seek: + pos = seek.getPlayPosition() + if not pos[0]: + key = ref.toString() + lru = int(time()) + l = seek.getLength() + if l: + l = l[1] + else: + l = None + resumePointCache[key] = [lru, pos[1], l] + if len(resumePointCache) > 50: + candidate = key + for k,v in resumePointCache.items(): + if v[0] < lru: + candidate = k + del resumePointCache[candidate] + if lru - resumePointCacheLast > 3600: + saveResumePoints() + +def delResumePoint(ref): + global resumePointCache, resumePointCacheLast + try: + del resumePointCache[ref.toString()] + except KeyError: + pass + if int(time()) - resumePointCacheLast > 3600: + saveResumePoints() + +def getResumePoint(session): + global resumePointCache + ref = session.nav.getCurrentlyPlayingServiceOrGroup() + if (ref is not None) and (ref.type != 1): + try: + entry = resumePointCache[ref.toString()] + entry[0] = int(time()) # update LRU timestamp + return entry[1] + except KeyError: + return None + +def saveResumePoints(): + global resumePointCache, resumePointCacheLast + import cPickle + try: + f = open('/home/root/resumepoints.pkl', 'wb') + cPickle.dump(resumePointCache, f, cPickle.HIGHEST_PROTOCOL) + except Exception, ex: + print "[InfoBar] Failed to write resumepoints:", ex + resumePointCacheLast = int(time()) + +def loadResumePoints(): + import cPickle + try: + return cPickle.load(open('/home/root/resumepoints.pkl', 'rb')) + except Exception, ex: + print "[InfoBar] Failed to load resumepoints:", ex + return {} + +resumePointCache = loadResumePoints() +resumePointCacheLast = int(time()) + +class InfoBarDish: + def __init__(self): + self.dishDialog = self.session.instantiateDialog(Dish) + +class InfoBarUnhandledKey: + def __init__(self): + self.unhandledKeyDialog = self.session.instantiateDialog(UnhandledKey) + self.hideUnhandledKeySymbolTimer = eTimer() + self.hideUnhandledKeySymbolTimer.callback.append(self.unhandledKeyDialog.hide) + self.checkUnusedTimer = eTimer() + self.checkUnusedTimer.callback.append(self.checkUnused) + self.onLayoutFinish.append(self.unhandledKeyDialog.hide) + eActionMap.getInstance().bindAction('', -maxint -1, self.actionA) #highest prio + eActionMap.getInstance().bindAction('', maxint, self.actionB) #lowest prio + self.flags = (1<<1) + self.uflags = 0 + + #this function is called on every keypress! + def actionA(self, key, flag): + self.unhandledKeyDialog.hide() + if flag != 4: + if self.flags & (1<<1): + self.flags = self.uflags = 0 + self.flags |= (1<<flag) + if flag == 1: # break + self.checkUnusedTimer.start(0, True) + return 0 + + #this function is only called when no other action has handled this key + def actionB(self, key, flag): + if flag != 4: + self.uflags |= (1<<flag) + + def checkUnused(self): + if self.flags == self.uflags: + self.unhandledKeyDialog.show() + self.hideUnhandledKeySymbolTimer.start(2000, True) + +class InfoBarScreenSaver: + def __init__(self): + self.onExecBegin.append(self.__onExecBegin) + self.onExecEnd.append(self.__onExecEnd) + self.screenSaverTimer = eTimer() + self.screenSaverTimer.callback.append(self.screensaverTimeout) + self.screensaver = self.session.instantiateDialog(ScreenSaver.Screensaver) + self.onLayoutFinish.append(self.__layoutFinished) + + def __layoutFinished(self): + self.screensaver.hide() + + def __onExecBegin(self): + self.ScreenSaverTimerStart() + + def __onExecEnd(self): + if self.screensaver.shown: + self.screensaver.hide() + eActionMap.getInstance().unbindAction('', self.keypressScreenSaver) + self.screenSaverTimer.stop() + + def ScreenSaverTimerStart(self): + time = int(config.usage.screen_saver.value) + flag = self.seekstate[0] + if not flag: + ref = self.session.nav.getCurrentlyPlayingServiceOrGroup() + if ref and not (hasattr(self.session, "pipshown") and self.session.pipshown): + ref = ref.toString().split(":") + flag = ref[2] == "2" or os.path.splitext(ref[10])[1].lower() in AUDIO_EXTENSIONS + if time and flag: + self.screenSaverTimer.startLongTimer(time) + else: + self.screenSaverTimer.stop() + + def screensaverTimeout(self): + if self.execing and not Standby.inStandby and not Standby.inTryQuitMainloop: + self.hide() + if hasattr(self, "pvrStateDialog"): + self.pvrStateDialog.hide() + self.screensaver.show() + eActionMap.getInstance().bindAction('', -maxint - 1, self.keypressScreenSaver) + + def keypressScreenSaver(self, key, flag): + if flag: + self.screensaver.hide() + self.show() + self.ScreenSaverTimerStart() + eActionMap.getInstance().unbindAction('', self.keypressScreenSaver) + +class SecondInfoBar(Screen): + + def __init__(self, session): + Screen.__init__(self, session) + self.skin = None + +class InfoBarShowHide(InfoBarScreenSaver): + """ InfoBar show/hide control, accepts toggleShow and hide actions, might start + fancy animations. """ + STATE_HIDDEN = 0 + STATE_HIDING = 1 + STATE_SHOWING = 2 + STATE_SHOWN = 3 + + def __init__(self): + self["ShowHideActions"] = ActionMap( ["InfobarShowHideActions"] , + { + "toggleShow": self.okButtonCheck, + "hide": self.keyHide, + }, 1) # lower prio to make it possible to override ok and cancel.. + + self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + { + iPlayableService.evStart: self.serviceStarted, + }) + + InfoBarScreenSaver.__init__(self) + self.__state = self.STATE_SHOWN + self.__locked = 0 + + self.hideTimer = eTimer() + self.hideTimer.callback.append(self.doTimerHide) + self.hideTimer.start(5000, True) + + self.onShow.append(self.__onShow) + self.onHide.append(self.__onHide) + + self.onShowHideNotifiers = [] + + self.secondInfoBarScreen = "" + if isStandardInfoBar(self): + self.secondInfoBarScreen = self.session.instantiateDialog(SecondInfoBar) + self.secondInfoBarScreen.show() + + self.onLayoutFinish.append(self.__layoutFinished) + + def __layoutFinished(self): + if self.secondInfoBarScreen: + self.secondInfoBarScreen.hide() + + def __onShow(self): + self.__state = self.STATE_SHOWN + for x in self.onShowHideNotifiers: + x(True) + self.startHideTimer() + + def __onHide(self): + self.__state = self.STATE_HIDDEN + if self.secondInfoBarScreen: + self.secondInfoBarScreen.hide() + for x in self.onShowHideNotifiers: + x(False) + + def keyHide(self): + if self.__state == self.STATE_HIDDEN and self.session.pipshown and "popup" in config.usage.pip_hideOnExit.value: + if config.usage.pip_hideOnExit.value == "popup": + self.session.openWithCallback(self.hidePipOnExitCallback, MessageBox, _("Disable Picture in Picture"), simple=True) + else: + self.hidePipOnExitCallback(True) + elif config.usage.ok_is_channelselection.value and hasattr(self, "openServiceList"): + self.toggleShow() + elif self.__state == self.STATE_SHOWN: + self.hide() + + def hidePipOnExitCallback(self, answer): + if answer == True: + self.showPiP() + + def connectShowHideNotifier(self, fnc): + if not fnc in self.onShowHideNotifiers: + self.onShowHideNotifiers.append(fnc) + + def disconnectShowHideNotifier(self, fnc): + if fnc in self.onShowHideNotifiers: + self.onShowHideNotifiers.remove(fnc) + + def serviceStarted(self): + if self.execing: + if config.usage.show_infobar_on_zap.value: + self.doShow() + + def startHideTimer(self): + if self.__state == self.STATE_SHOWN and not self.__locked: + self.hideTimer.stop() + if self.secondInfoBarScreen and self.secondInfoBarScreen.shown: + idx = config.usage.show_second_infobar.index - 1 + else: + idx = config.usage.infobar_timeout.index + if idx: + self.hideTimer.startLongTimer(idx) + + def doShow(self): + self.show() + self.startHideTimer() + + def doTimerHide(self): + self.hideTimer.stop() + if self.__state == self.STATE_SHOWN: + self.hide() + + def okButtonCheck(self): + if config.usage.ok_is_channelselection.value and hasattr(self, "openServiceList"): + self.openServiceList() + else: + self.toggleShow() + + def toggleShow(self): + if self.__state == self.STATE_HIDDEN: + self.show() + if self.secondInfoBarScreen: + self.secondInfoBarScreen.hide() + elif isStandardInfoBar(self) and config.usage.show_second_infobar.value == "EPG": + self.showDefaultEPG() + elif self.secondInfoBarScreen and config.usage.show_second_infobar.value and not self.secondInfoBarScreen.shown: + self.secondInfoBarScreen.show() + self.startHideTimer() + else: + self.hide() + self.hideTimer.stop() + + def lockShow(self): + self.__locked = self.__locked + 1 + if self.execing: + self.show() + self.hideTimer.stop() + + def unlockShow(self): + self.__locked = self.__locked - 1 + if self.execing: + self.startHideTimer() + +# def startShow(self): +# self.instance.m_animation.startMoveAnimation(ePoint(0, 600), ePoint(0, 380), 100) +# self.__state = self.STATE_SHOWN +# +# def startHide(self): +# self.instance.m_animation.startMoveAnimation(ePoint(0, 380), ePoint(0, 600), 100) +# self.__state = self.STATE_HIDDEN + +class NumberZap(Screen): + def quit(self): + self.Timer.stop() + self.close() + + def keyOK(self): + self.Timer.stop() + self.close(self.service, self.bouquet) + + def handleServiceName(self): + if self.searchNumber: + self.service, self.bouquet = self.searchNumber(int(self["number"].getText())) + self["servicename"].text = self["servicename_summary"].text = ServiceReference(self.service).getServiceName() + if not self.startBouquet: + self.startBouquet = self.bouquet + + def keyBlue(self): + self.Timer.start(3000, True) + if self.searchNumber: + if self.startBouquet == self.bouquet: + self.service, self.bouquet = self.searchNumber(int(self["number"].getText()), firstBouquetOnly = True) + else: + self.service, self.bouquet = self.searchNumber(int(self["number"].getText())) + self["servicename"].text = self["servicename_summary"].text = ServiceReference(self.service).getServiceName() + + def keyNumberGlobal(self, number): + self.Timer.start(1000, True) + self.numberString = self.numberString + str(number) + self["number"].text = self["number_summary"].text = self.numberString + + self.handleServiceName() + + if len(self.numberString) >= 5: + self.keyOK() + + def __init__(self, session, number, searchNumberFunction = None): + Screen.__init__(self, session) + self.numberString = str(number) + self.searchNumber = searchNumberFunction + self.startBouquet = None + + self["channel"] = Label(_("Channel:")) + self["number"] = Label(self.numberString) + self["servicename"] = Label() + self["channel_summary"] = StaticText(_("Channel:")) + self["number_summary"] = StaticText(self.numberString) + self["servicename_summary"] = StaticText() + + self.handleServiceName() + + self["actions"] = NumberActionMap( [ "SetupActions", "ShortcutActions" ], + { + "cancel": self.quit, + "ok": self.keyOK, + "blue": self.keyBlue, + "1": self.keyNumberGlobal, + "2": self.keyNumberGlobal, + "3": self.keyNumberGlobal, + "4": self.keyNumberGlobal, + "5": self.keyNumberGlobal, + "6": self.keyNumberGlobal, + "7": self.keyNumberGlobal, + "8": self.keyNumberGlobal, + "9": self.keyNumberGlobal, + "0": self.keyNumberGlobal + }) + + self.Timer = eTimer() + self.Timer.callback.append(self.keyOK) + self.Timer.start(3000, True) + +class InfoBarNumberZap: + """ Handles an initial number for NumberZapping """ + def __init__(self): + self["NumberActions"] = NumberActionMap( [ "NumberActions"], + { + "1": self.keyNumberGlobal, + "2": self.keyNumberGlobal, + "3": self.keyNumberGlobal, + "4": self.keyNumberGlobal, + "5": self.keyNumberGlobal, + "6": self.keyNumberGlobal, + "7": self.keyNumberGlobal, + "8": self.keyNumberGlobal, + "9": self.keyNumberGlobal, + "0": self.keyNumberGlobal, + }) + + def keyNumberGlobal(self, number): + if number == 0: + if isinstance(self, InfoBarPiP) and self.pipHandles0Action(): + self.pipDoHandle0Action() + elif len(self.servicelist.history) > 1: + self.checkTimeshiftRunning(self.recallPrevService) + else: + if self.has_key("TimeshiftActions") and self.timeshiftEnabled(): + ts = self.getTimeshift() + if ts and ts.isTimeshiftActive(): + return + self.session.openWithCallback(self.numberEntered, NumberZap, number, self.searchNumber) + + def recallPrevService(self, reply): + if reply: + self.servicelist.recallPrevService() + + def numberEntered(self, service = None, bouquet = None): + if service: + self.selectAndStartService(service, bouquet) + + def searchNumberHelper(self, serviceHandler, num, bouquet): + servicelist = serviceHandler.list(bouquet) + if servicelist: + serviceIterator = servicelist.getNext() + while serviceIterator.valid(): + if num == serviceIterator.getChannelNum(): + return serviceIterator + serviceIterator = servicelist.getNext() + return None + + def searchNumber(self, number, firstBouquetOnly=False, bouquet=None): + bouquet = bouquet or self.servicelist.getRoot() + service = None + serviceHandler = eServiceCenter.getInstance() + if not firstBouquetOnly: + service = self.searchNumberHelper(serviceHandler, number, bouquet) + if config.usage.multibouquet.value and not service: + bouquet = self.servicelist.bouquet_root + bouquetlist = serviceHandler.list(bouquet) + if bouquetlist: + bouquet = bouquetlist.getNext() + while bouquet.valid(): + if bouquet.flags & eServiceReference.isDirectory: + service = self.searchNumberHelper(serviceHandler, number, bouquet) + if service: + playable = not (service.flags & (eServiceReference.isMarker|eServiceReference.isDirectory)) or (service.flags & eServiceReference.isNumberedMarker) + if not playable: + service = None + break + if config.usage.alternative_number_mode.value or firstBouquetOnly: + break + bouquet = bouquetlist.getNext() + return service, bouquet + + def selectAndStartService(self, service, bouquet): + if service and not service.flags & eServiceReference.isMarker: + if self.servicelist.getRoot() != bouquet: #already in correct bouquet? + self.servicelist.clearPath() + if self.servicelist.bouquet_root != bouquet: + self.servicelist.enterPath(self.servicelist.bouquet_root) + self.servicelist.enterPath(bouquet) + self.servicelist.setCurrentSelection(service) #select the service in servicelist + self.servicelist.zap(enable_pipzap = True) + self.servicelist.correctChannelNumber() + self.servicelist.startRoot = None + + def zapToNumber(self, number): + service, bouquet = self.searchNumber(number) + self.selectAndStartService(service, bouquet) + +config.misc.initialchannelselection = ConfigBoolean(default = True) + +class InfoBarChannelSelection: + """ ChannelSelection - handles the channelSelection dialog and the initial + channelChange actions which open the channelSelection dialog """ + def __init__(self): + #instantiate forever + self.servicelist = self.session.instantiateDialog(ChannelSelection) + + if config.misc.initialchannelselection.value: + self.onShown.append(self.firstRun) + + self["ChannelSelectActions"] = HelpableActionMap(self, "InfobarChannelSelection", + { + "keyUp": (self.keyUpCheck, self.getKeyUpHelptext), + "keyDown": (self.keyDownCheck, self.getKeyDownHelpText), + "keyLeft": (self.keyLeftCheck, self.getKeyLeftHelptext), + "keyRight": (self.keyRightCheck, self.getKeyRightHelptext), + "historyBack": (self.historyBack, _("Switch to previous channel in history")), + "historyNext": (self.historyNext, _("Switch to next channel in history")), + "keyChannelUp": (self.keyChannelUpCheck, self.getKeyChannelUpHelptext), + "keyChannelDown": (self.keyChannelDownCheck, self.getKeyChannelDownHelptext), + }) + + def showTvChannelList(self, zap=False): + self.servicelist.setModeTv() + if zap: + self.servicelist.zap() + + def showRadioChannelList(self, zap=False): + self.servicelist.setModeRadio() + if zap: + self.servicelist.zap() + + def firstRun(self): + self.onShown.remove(self.firstRun) + config.misc.initialchannelselection.value = False + config.misc.initialchannelselection.save() + self.switchChannelDown() + + def historyBack(self): + self.checkTimeshiftRunning(self.historyBackCheckTimeshiftCallback) + + def historyBackCheckTimeshiftCallback(self, answer): + if answer: + self.servicelist.historyBack() + + def historyNext(self): + self.checkTimeshiftRunning(self.historyNextCheckTimeshiftCallback) + + def historyNextCheckTimeshiftCallback(self, answer): + if answer: + self.servicelist.historyNext() + + def keyUpCheck(self): + if config.usage.oldstyle_zap_controls.value: + self.zapDown() + else: + self.switchChannelUp() + + def keyDownCheck(self): + if config.usage.oldstyle_zap_controls.value: + self.zapUp() + else: + self.switchChannelDown() + + def keyLeftCheck(self): + if config.usage.oldstyle_zap_controls.value: + self.switchChannelUp() + else: + self.zapUp() + + def keyRightCheck(self): + if config.usage.oldstyle_zap_controls.value: + self.switchChannelDown() + else: + self.zapDown() + + def keyChannelUpCheck(self): + if config.usage.zap_with_ch_buttons.value: + self.zapDown() + else: + self.openServiceList() + + def keyChannelDownCheck(self): + if config.usage.zap_with_ch_buttons.value: + self.zapUp() + else: + self.openServiceList() + + def getKeyUpHelptext(self): + if config.usage.oldstyle_zap_controls.value: + value = _("Switch to next channel") + else: + value = _("Open service list") + if not "keep" in config.usage.servicelist_cursor_behavior.value: + value += " " + _("and select previous channel") + return value + + def getKeyDownHelpText(self): + if config.usage.oldstyle_zap_controls.value: + value = _("Switch to previous channel") + else: + value = _("Open service list") + if not "keep" in config.usage.servicelist_cursor_behavior.value: + value += " " + _("and select next channel") + return value + + def getKeyLeftHelptext(self): + if config.usage.oldstyle_zap_controls.value: + value = _("Open service list") + if not "keep" in config.usage.servicelist_cursor_behavior.value: + value += " " + _("and select previous channel") + else: + value = _("Switch to previous channel") + return value + + def getKeyRightHelptext(self): + if config.usage.oldstyle_zap_controls.value: + value = _("Open service list") + if not "keep" in config.usage.servicelist_cursor_behavior.value: + value += " " + _("and select next channel") + else: + value = _("Switch to next channel") + return value + + def getKeyChannelUpHelptext(self): + return config.usage.zap_with_ch_buttons.value and _("Switch to next channel") or _("Open service list") + + def getKeyChannelDownHelptext(self): + return config.usage.zap_with_ch_buttons.value and _("Switch to previous channel") or _("Open service list") + + def switchChannelUp(self): + if "keep" not in config.usage.servicelist_cursor_behavior.value: + self.servicelist.moveUp() + self.session.execDialog(self.servicelist) + + def switchChannelDown(self): + if "keep" not in config.usage.servicelist_cursor_behavior.value: + self.servicelist.moveDown() + self.session.execDialog(self.servicelist) + + def zapUp(self): + if self.servicelist.inBouquet(): + prev = self.servicelist.getCurrentSelection() + if prev: + prev = prev.toString() + while True: + if config.usage.quickzap_bouquet_change.value: + if self.servicelist.atBegin(): + self.servicelist.prevBouquet() + self.servicelist.moveUp() + cur = self.servicelist.getCurrentSelection() + if cur: + if self.servicelist.dopipzap: + isPlayable = self.session.pip.isPlayableForPipService(cur) + else: + isPlayable = isPlayableForCur(cur) + if cur and (cur.toString() == prev or isPlayable): + break + else: + self.servicelist.moveUp() + self.servicelist.zap(enable_pipzap = True) + + def zapDown(self): + if self.servicelist.inBouquet(): + prev = self.servicelist.getCurrentSelection() + if prev: + prev = prev.toString() + while True: + if config.usage.quickzap_bouquet_change.value and self.servicelist.atEnd(): + self.servicelist.nextBouquet() + else: + self.servicelist.moveDown() + cur = self.servicelist.getCurrentSelection() + if cur: + if self.servicelist.dopipzap: + isPlayable = self.session.pip.isPlayableForPipService(cur) + else: + isPlayable = isPlayableForCur(cur) + if cur and (cur.toString() == prev or isPlayable): + break + else: + self.servicelist.moveDown() + self.servicelist.zap(enable_pipzap = True) + + def openServiceList(self): + self.session.execDialog(self.servicelist) + +class InfoBarMenu: + """ Handles a menu action, to open the (main) menu """ + def __init__(self): + self["MenuActions"] = HelpableActionMap(self, "InfobarMenuActions", + { + "mainMenu": (self.mainMenu, _("Enter main menu...")), + }) + self.session.infobar = None + + def mainMenu(self): + print "loading mainmenu XML..." + menu = mdom.getroot() + assert menu.tag == "menu", "root element in menu must be 'menu'!" + + self.session.infobar = self + # so we can access the currently active infobar from screens opened from within the mainmenu + # at the moment used from the SubserviceSelection + + self.session.openWithCallback(self.mainMenuClosed, MainMenu, menu) + + def mainMenuClosed(self, *val): + self.session.infobar = None + +class InfoBarSimpleEventView: + """ Opens the Eventview for now/next """ + def __init__(self): + self["EPGActions"] = HelpableActionMap(self, "InfobarEPGActions", + { + "showEventInfo": (self.openEventView, _("Show event details")), + "showEventInfoSingleEPG": (self.openEventView, _("Show event details")), + "showInfobarOrEpgWhenInfobarAlreadyVisible": self.showEventInfoWhenNotVisible, + }) + + def showEventInfoWhenNotVisible(self): + if self.shown: + self.openEventView() + else: + self.toggleShow() + return 1 + + def openEventView(self): + epglist = [ ] + self.epglist = epglist + service = self.session.nav.getCurrentService() + ref = self.session.nav.getCurrentlyPlayingServiceOrGroup() + info = service.info() + ptr=info.getEvent(0) + if ptr: + epglist.append(ptr) + ptr=info.getEvent(1) + if ptr: + epglist.append(ptr) + if epglist: + self.session.open(EventViewSimple, epglist[0], ServiceReference(ref), self.eventViewCallback) + + def eventViewCallback(self, setEvent, setService, val): #used for now/next displaying + epglist = self.epglist + if len(epglist) > 1: + tmp = epglist[0] + epglist[0] = epglist[1] + epglist[1] = tmp + setEvent(epglist[0]) + +class SimpleServicelist: + def __init__(self, services): + self.services = services + self.length = len(services) + self.current = 0 + + def selectService(self, service): + if not self.length: + self.current = -1 + return False + else: + self.current = 0 + while self.services[self.current].ref != service: + self.current += 1 + if self.current >= self.length: + return False + return True + + def nextService(self): + if not self.length: + return + if self.current+1 < self.length: + self.current += 1 + else: + self.current = 0 + + def prevService(self): + if not self.length: + return + if self.current-1 > -1: + self.current -= 1 + else: + self.current = self.length - 1 + + def currentService(self): + if not self.length or self.current >= self.length: + return None + return self.services[self.current] + +class InfoBarEPG: + """ EPG - Opens an EPG list when the showEPGList action fires """ + def __init__(self): + self.is_now_next = False + self.dlg_stack = [ ] + self.bouquetSel = None + self.eventView = None + self.epglist = [] + self.defaultEPGType = self.getDefaultEPGtype() + self.defaultGuideType = self.getDefaultGuidetype() + self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + { + iPlayableService.evUpdatedEventInfo: self.__evEventInfoChanged, + }) + + self["EPGActions"] = HelpableActionMap(self, "InfobarEPGActions", + { + "showEventInfo": (self.showDefaultEPG, _("Show EPG...")), + "showEventInfoSingleEPG": (self.showSingleEPG, _("Show single service EPG")), + "showEventInfoMultiEPG": (self.showMultiEPG, _("Show multi channel EPG")), + "showEventInfoPlugin": (self.showEventInfoPlugins, _("List EPG functions...")), + "showEventGuidePlugin": (self.showEventGuidePlugins, _("List EPG functions...")), + "showInfobarOrEpgWhenInfobarAlreadyVisible": self.showEventInfoWhenNotVisible, + }) + + def getEPGPluginList(self, getAll=False): + pluginlist = [(p.name, boundFunction(self.runPlugin, p)) for p in plugins.getPlugins(where = PluginDescriptor.WHERE_EVENTINFO) \ + if 'selectedevent' not in p.__call__.func_code.co_varnames] + if pluginlist: + from Components.ServiceEventTracker import InfoBarCount + if getAll or InfoBarCount == 1: + pluginlist.append((_("Show EPG for current channel..."), self.openSingleServiceEPG)) + pluginlist.append((_("Multi EPG"), self.openMultiServiceEPG)) + pluginlist.append((_("Current event EPG"), self.openEventView)) + return pluginlist + + def getDefaultEPGtype(self): + pluginlist = self.getEPGPluginList() + config.usage.defaultEPGType=ConfigSelection(default = "None", choices = pluginlist) + for plugin in pluginlist: + if plugin[0] == config.usage.defaultEPGType.value: + return plugin[1] + return None + + def getDefaultGuidetype(self): + pluginlist = self.getEPGPluginList() + config.usage.defaultGuideType=ConfigSelection(default = "None", choices = pluginlist) + for plugin in pluginlist: + if plugin[0] == config.usage.defaultGuideType.value: + return plugin[1] + return None + + def showEventInfoWhenNotVisible(self): + if self.shown: + self.openEventView() + else: + self.toggleShow() + return 1 + + def zapToService(self, service, preview = False, zapback = False): + if self.servicelist.startServiceRef is None: + self.servicelist.startServiceRef = self.session.nav.getCurrentlyPlayingServiceOrGroup() + if service is not None: + if self.servicelist.getRoot() != self.epg_bouquet: #already in correct bouquet? + self.servicelist.clearPath() + if self.servicelist.bouquet_root != self.epg_bouquet: + self.servicelist.enterPath(self.servicelist.bouquet_root) + self.servicelist.enterPath(self.epg_bouquet) + self.servicelist.setCurrentSelection(service) #select the service in servicelist + if not zapback or preview: + self.servicelist.zap(enable_pipzap = True) + if (self.servicelist.dopipzap or zapback) and not preview: + self.servicelist.zapBack() + if not preview: + self.servicelist.startServiceRef = None + self.servicelist.startRoot = None + + def getBouquetServices(self, bouquet): + services = [ ] + servicelist = eServiceCenter.getInstance().list(bouquet) + if not servicelist is None: + while True: + service = servicelist.getNext() + if not service.valid(): #check if end of list + break + if service.flags & (eServiceReference.isDirectory | eServiceReference.isMarker): #ignore non playable services + continue + services.append(ServiceReference(service)) + return services + + def openBouquetEPG(self, bouquet, withCallback=True): + services = self.getBouquetServices(bouquet) + if services: + self.epg_bouquet = bouquet + if withCallback: + self.dlg_stack.append(self.session.openWithCallback(self.closed, EPGSelection, services, self.zapToService, None, self.changeBouquetCB)) + else: + self.session.open(EPGSelection, services, self.zapToService, None, self.changeBouquetCB) + + def changeBouquetCB(self, direction, epg): + if self.bouquetSel: + if direction > 0: + self.bouquetSel.down() + else: + self.bouquetSel.up() + bouquet = self.bouquetSel.getCurrent() + services = self.getBouquetServices(bouquet) + if services: + self.epg_bouquet = bouquet + epg.setServices(services) + + def closed(self, ret=False): + closedScreen = self.dlg_stack.pop() + if self.bouquetSel and closedScreen == self.bouquetSel: + self.bouquetSel = None + elif self.eventView and closedScreen == self.eventView: + self.eventView = None + if ret: + dlgs=len(self.dlg_stack) + if dlgs > 0: + self.dlg_stack[dlgs-1].close(dlgs > 1) + + def openMultiServiceEPG(self, withCallback=True): + bouquets = self.servicelist.getBouquetList() + if bouquets is None: + cnt = 0 + else: + cnt = len(bouquets) + if config.usage.multiepg_ask_bouquet.value: + self.openMultiServiceEPGAskBouquet(bouquets, cnt, withCallback) + else: + self.openMultiServiceEPGSilent(bouquets, cnt, withCallback) + + def openMultiServiceEPGAskBouquet(self, bouquets, cnt, withCallback): + if cnt > 1: # show bouquet list + if withCallback: + self.bouquetSel = self.session.openWithCallback(self.closed, BouquetSelector, bouquets, self.openBouquetEPG, enableWrapAround=True) + self.dlg_stack.append(self.bouquetSel) + else: + self.bouquetSel = self.session.open(BouquetSelector, bouquets, self.openBouquetEPG, enableWrapAround=True) + elif cnt == 1: + self.openBouquetEPG(bouquets[0][1], withCallback) + + def openMultiServiceEPGSilent(self, bouquets, cnt, withCallback): + root = self.servicelist.getRoot() + rootstr = root.toCompareString() + current = 0 + for bouquet in bouquets: + if bouquet[1].toCompareString() == rootstr: + break + current += 1 + if current >= cnt: + current = 0 + if cnt > 1: # create bouquet list for bouq+/- + self.bouquetSel = SilentBouquetSelector(bouquets, True, self.servicelist.getBouquetNumOffset(root)) + if cnt >= 1: + self.openBouquetEPG(root, withCallback) + + def changeServiceCB(self, direction, epg): + if self.serviceSel: + if direction > 0: + self.serviceSel.nextService() + else: + self.serviceSel.prevService() + epg.setService(self.serviceSel.currentService()) + + def SingleServiceEPGClosed(self, ret=False): + self.serviceSel = None + + def openSingleServiceEPG(self): + from Components.ServiceEventTracker import InfoBarCount + if InfoBarCount > 1: + self.openMultiServiceEPG(False) + else: + ref = self.session.nav.getCurrentlyPlayingServiceOrGroup() + if ref: + if self.servicelist.getMutableList() is not None: # bouquet in channellist + current_path = self.servicelist.getRoot() + services = self.getBouquetServices(current_path) + self.serviceSel = SimpleServicelist(services) + if self.serviceSel.selectService(ref): + self.epg_bouquet = current_path + self.session.openWithCallback(self.SingleServiceEPGClosed, EPGSelection, ref, self.zapToService, serviceChangeCB = self.changeServiceCB) + else: + self.session.openWithCallback(self.SingleServiceEPGClosed, EPGSelection, ref) + else: + self.session.open(EPGSelection, ref) + + def runPlugin(self, plugin): + plugin(session = self.session, servicelist = self.servicelist) + + def showEventInfoPlugins(self): + pluginlist = self.getEPGPluginList() + if pluginlist: + pluginlist.append((_("Select default EPG type..."), self.SelectDefaultInfoPlugin)) + self.session.openWithCallback(self.EventInfoPluginChosen, ChoiceBox, title=_("Please choose an extension..."), list = pluginlist, skin_name = "EPGExtensionsList") + else: + self.openSingleServiceEPG() + + def EventInfoPluginChosen(self, answer): + if answer is not None: + answer[1]() + + def SelectDefaultInfoPlugin(self): + self.session.openWithCallback(self.DefaultInfoPluginChosen, ChoiceBox, title=_("Please select a default EPG type..."), list = self.getEPGPluginList(True), skin_name = "EPGExtensionsList") + + def DefaultInfoPluginChosen(self, answer): + if answer is not None: + self.defaultEPGType = answer[1] + config.usage.defaultEPGType.value = answer[0] + config.usage.defaultEPGType.save() + + def showEventGuidePlugins(self): + pluginlist = self.getEPGPluginList() + if pluginlist: + pluginlist.append((_("Select default EPG type..."), self.SelectDefaultGuidePlugin)) + self.session.openWithCallback(self.EventGuidePluginChosen, ChoiceBox, title=_("Please choose an extension..."), list = pluginlist, skin_name = "EPGExtensionsList") + else: + self.openSingleServiceEPG() + + def EventGuidePluginChosen(self, answer): + if answer is not None: + answer[1]() + + def SelectDefaultGuidePlugin(self): + self.session.openWithCallback(self.DefaultGuidePluginChosen, ChoiceBox, title=_("Please select a default EPG type..."), list = self.getEPGPluginList(True), skin_name = "EPGExtensionsList") + + def DefaultGuidePluginChosen(self, answer): + if answer is not None: + self.defaultGuideType = answer[1] + config.usage.defaultGuideType.value = answer[0] + config.usage.defaultGuideType.save() + + def openSimilarList(self, eventid, refstr): + self.session.open(EPGSelection, refstr, None, eventid) + + def getNowNext(self): + epglist = [ ] + service = self.session.nav.getCurrentService() + info = service and service.info() + ptr = info and info.getEvent(0) + if ptr: + epglist.append(ptr) + ptr = info and info.getEvent(1) + if ptr: + epglist.append(ptr) + self.epglist = epglist + + def __evEventInfoChanged(self): + if self.is_now_next and len(self.dlg_stack) == 1: + self.getNowNext() + if self.eventView and self.epglist: + self.eventView.setEvent(self.epglist[0]) + + def showDefaultEPG(self): + if self.defaultEPGType is not None: + self.defaultEPGType() + return + self.openEventView() + + def showSingleEPG(self): + if self.defaultGuideType is not None: + self.defaultGuideType() + return + pluginlist = self.getEPGPluginList() + self.openSingleServiceEPG() + + def showMultiEPG(self): + if self.defaultGuideType is not None: + self.defaultGuideType() + return + pluginlist = self.getEPGPluginList() + self.openMultiServiceEPG() + + def openEventView(self): + from Components.ServiceEventTracker import InfoBarCount + if InfoBarCount > 1: + epglist = [ ] + self.epglist = epglist + service = self.session.nav.getCurrentService() + ref = self.session.nav.getCurrentlyPlayingServiceOrGroup() + info = service.info() + ptr=info.getEvent(0) + if ptr: + epglist.append(ptr) + ptr=info.getEvent(1) + if ptr: + epglist.append(ptr) + if epglist: + self.session.open(EventViewRecording, epglist[0], ServiceReference(ref), self.eventViewCallback, self.openMultiServiceEPG, self.openSimilarList) + else: + ref = self.session.nav.getCurrentlyPlayingServiceOrGroup() + self.getNowNext() + epglist = self.epglist + if not epglist: + self.is_now_next = False + epg = eEPGCache.getInstance() + ptr = ref and ref.valid() and epg.lookupEventTime(ref, -1) + if ptr: + epglist.append(ptr) + ptr = epg.lookupEventTime(ref, ptr.getBeginTime(), +1) + if ptr: + epglist.append(ptr) + else: + self.is_now_next = True + if epglist: + self.eventView = self.session.openWithCallback(self.closed, EventViewEPGSelect, epglist[0], ServiceReference(ref), self.eventViewCallback, self.openSingleServiceEPG, self.openMultiServiceEPG, self.openSimilarList) + self.dlg_stack.append(self.eventView) + if not epglist: + print "no epg for the service avail.. so we show multiepg instead of eventinfo" + self.openMultiServiceEPG(False) + + def eventViewCallback(self, setEvent, setService, val): #used for now/next displaying + epglist = self.epglist + if len(epglist) > 1: + tmp = epglist[0] + epglist[0]=epglist[1] + epglist[1]=tmp + setEvent(epglist[0]) + +class InfoBarRdsDecoder: + """provides RDS and Rass support/display""" + def __init__(self): + self.rds_display = self.session.instantiateDialog(RdsInfoDisplay) + self.session.instantiateSummaryDialog(self.rds_display) + self.rass_interactive = None + + self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + { + iPlayableService.evEnd: self.__serviceStopped, + iPlayableService.evUpdatedRassSlidePic: self.RassSlidePicChanged + }) + + self["RdsActions"] = ActionMap(["InfobarRdsActions"], + { + "startRassInteractive": self.startRassInteractive + },-1) + + self["RdsActions"].setEnabled(False) + + self.onLayoutFinish.append(self.rds_display.show) + self.rds_display.onRassInteractivePossibilityChanged.append(self.RassInteractivePossibilityChanged) + + def RassInteractivePossibilityChanged(self, state): + self["RdsActions"].setEnabled(state) + + def RassSlidePicChanged(self): + if not self.rass_interactive: + service = self.session.nav.getCurrentService() + decoder = service and service.rdsDecoder() + if decoder: + decoder.showRassSlidePicture() + + def __serviceStopped(self): + if self.rass_interactive is not None: + rass_interactive = self.rass_interactive + self.rass_interactive = None + rass_interactive.close() + + def startRassInteractive(self): + self.rds_display.hide() + self.rass_interactive = self.session.openWithCallback(self.RassInteractiveClosed, RassInteractive) + + def RassInteractiveClosed(self, *val): + if self.rass_interactive is not None: + self.rass_interactive = None + self.RassSlidePicChanged() + self.rds_display.show() + +class InfoBarSeek: + """handles actions like seeking, pause""" + + SEEK_STATE_PLAY = (0, 0, 0, ">") + SEEK_STATE_PAUSE = (1, 0, 0, "||") + SEEK_STATE_EOF = (1, 0, 0, "END") + + def __init__(self, actionmap = "InfobarSeekActions"): + self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + { + iPlayableService.evSeekableStatusChanged: self.__seekableStatusChanged, + iPlayableService.evStart: self.__serviceStarted, + iPlayableService.evEOF: self.__evEOF, + iPlayableService.evSOF: self.__evSOF, + }) + self.fast_winding_hint_message_showed = False + + class InfoBarSeekActionMap(HelpableActionMap): + def __init__(self, screen, *args, **kwargs): + HelpableActionMap.__init__(self, screen, *args, **kwargs) + self.screen = screen + + def action(self, contexts, action): + print "action:", action + if action[:5] == "seek:": + time = int(action[5:]) + self.screen.doSeekRelative(time * 90000) + return 1 + elif action[:8] == "seekdef:": + key = int(action[8:]) + time = (-config.seek.selfdefined_13.value, False, config.seek.selfdefined_13.value, + -config.seek.selfdefined_46.value, False, config.seek.selfdefined_46.value, + -config.seek.selfdefined_79.value, False, config.seek.selfdefined_79.value)[key-1] + self.screen.doSeekRelative(time * 90000) + return 1 + else: + return HelpableActionMap.action(self, contexts, action) + + self["SeekActions"] = InfoBarSeekActionMap(self, actionmap, + { + "playpauseService": (self.playpauseService, _("Pauze/Continue playback")), + "pauseService": (self.pauseService, _("Pause playback")), + "unPauseService": (self.unPauseService, _("Continue playback")), + "okButton": (self.okButton, _("Continue playback")), + "seekFwd": (self.seekFwd, _("Seek forward")), + "seekFwdManual": (self.seekFwdManual, _("Seek forward (enter time)")), + "seekBack": (self.seekBack, _("Seek backward")), + "seekBackManual": (self.seekBackManual, _("Seek backward (enter time)")), + "jumpPreviousMark": (self.seekPreviousMark, _("Jump to previous marked position")), + "jumpNextMark": (self.seekNextMark, _("Jump to next marked position")), + }, prio=-1) + # give them a little more priority to win over color buttons + + self["SeekActions"].setEnabled(False) + + self.seekstate = self.SEEK_STATE_PLAY + self.lastseekstate = self.SEEK_STATE_PLAY + + self.onPlayStateChanged = [ ] + + self.lockedBecauseOfSkipping = False + + self.__seekableStatusChanged() + + def makeStateForward(self, n): + return (0, n, 0, ">> %dx" % n) + + def makeStateBackward(self, n): + return (0, -n, 0, "<< %dx" % n) + + def makeStateSlowMotion(self, n): + return (0, 0, n, "/%d" % n) + + def isStateForward(self, state): + return state[1] > 1 + + def isStateBackward(self, state): + return state[1] < 0 + + def isStateSlowMotion(self, state): + return state[1] == 0 and state[2] > 1 + + def getHigher(self, n, lst): + for x in lst: + if x > n: + return x + return False + + def getLower(self, n, lst): + lst = lst[:] + lst.reverse() + for x in lst: + if x < n: + return x + return False + + def showAfterSeek(self): + if isinstance(self, InfoBarShowHide): + self.doShow() + + def up(self): + pass + + def down(self): + pass + + def getSeek(self): + service = self.session.nav.getCurrentService() + if service is None: + return None + + seek = service.seek() + + if seek is None or not seek.isCurrentlySeekable(): + return None + + return seek + + def isSeekable(self): + if self.getSeek() is None or (isStandardInfoBar(self) and not self.timeshiftEnabled()): + return False + return True + + def __seekableStatusChanged(self): +# print "seekable status changed!" + if not self.isSeekable(): + self["SeekActions"].setEnabled(False) +# print "not seekable, return to play" + self.setSeekState(self.SEEK_STATE_PLAY) + else: + self["SeekActions"].setEnabled(True) +# print "seekable" + + def __serviceStarted(self): + self.fast_winding_hint_message_showed = False + self.setSeekState(self.SEEK_STATE_PLAY) + self.__seekableStatusChanged() + + def setSeekState(self, state): + service = self.session.nav.getCurrentService() + + if service is None: + return False + + if not self.isSeekable(): + if state not in (self.SEEK_STATE_PLAY, self.SEEK_STATE_PAUSE): + state = self.SEEK_STATE_PLAY + + pauseable = service.pause() + + if pauseable is None: + print "not pauseable." + state = self.SEEK_STATE_PLAY + + self.seekstate = state + + if pauseable is not None: + if self.seekstate[0]: + print "resolved to PAUSE" + pauseable.pause() + elif self.seekstate[1]: + if not pauseable.setFastForward(self.seekstate[1]): + print "resolved to FAST FORWARD" + else: + self.seekstate = self.SEEK_STATE_PLAY + print "FAST FORWARD not possible: resolved to PLAY" + elif self.seekstate[2]: + if not pauseable.setSlowMotion(self.seekstate[2]): + print "resolved to SLOW MOTION" + else: + self.seekstate = self.SEEK_STATE_PAUSE + print "SLOW MOTION not possible: resolved to PAUSE" + else: + print "resolved to PLAY" + pauseable.unpause() + + for c in self.onPlayStateChanged: + c(self.seekstate) + + self.checkSkipShowHideLock() + + if hasattr(self, "ScreenSaverTimerStart"): + self.ScreenSaverTimerStart() + + return True + + def playpauseService(self): + if self.seekstate != self.SEEK_STATE_PLAY: + self.unPauseService() + else: + self.pauseService() + + def okButton(self): + if self.seekstate == self.SEEK_STATE_PLAY: + return 0 + elif self.seekstate == self.SEEK_STATE_PAUSE: + self.pauseService() + else: + self.unPauseService() + + def pauseService(self): + if self.seekstate == self.SEEK_STATE_PAUSE: + if config.seek.on_pause.value == "play": + self.unPauseService() + elif config.seek.on_pause.value == "step": + self.doSeekRelative(1) + elif config.seek.on_pause.value == "last": + self.setSeekState(self.lastseekstate) + self.lastseekstate = self.SEEK_STATE_PLAY + else: + if self.seekstate != self.SEEK_STATE_EOF: + self.lastseekstate = self.seekstate + self.setSeekState(self.SEEK_STATE_PAUSE) + + def unPauseService(self): + print "unpause" + if self.seekstate == self.SEEK_STATE_PLAY: + return 0 + self.setSeekState(self.SEEK_STATE_PLAY) + + def doSeek(self, pts): + seekable = self.getSeek() + if seekable is None: + return + seekable.seekTo(pts) + + def doSeekRelative(self, pts): + seekable = self.getSeek() + if seekable is None: + return + prevstate = self.seekstate + + if self.seekstate == self.SEEK_STATE_EOF: + if prevstate == self.SEEK_STATE_PAUSE: + self.setSeekState(self.SEEK_STATE_PAUSE) + else: + self.setSeekState(self.SEEK_STATE_PLAY) + seekable.seekRelative(pts<0 and -1 or 1, abs(pts)) + if abs(pts) > 100 and config.usage.show_infobar_on_skip.value: + self.showAfterSeek() + + def seekFwd(self): + seek = self.getSeek() + if seek and not (seek.isCurrentlySeekable() & 2): + if not self.fast_winding_hint_message_showed and (seek.isCurrentlySeekable() & 1): + self.session.open(MessageBox, _("No fast winding possible yet.. but you can use the number buttons to skip forward/backward!"), MessageBox.TYPE_INFO, timeout=10) + self.fast_winding_hint_message_showed = True + return + return 0 # trade as unhandled action + if self.seekstate == self.SEEK_STATE_PLAY: + self.setSeekState(self.makeStateForward(int(config.seek.enter_forward.value))) + elif self.seekstate == self.SEEK_STATE_PAUSE: + if len(config.seek.speeds_slowmotion.value): + self.setSeekState(self.makeStateSlowMotion(config.seek.speeds_slowmotion.value[-1])) + else: + self.setSeekState(self.makeStateForward(int(config.seek.enter_forward.value))) + elif self.seekstate == self.SEEK_STATE_EOF: + pass + elif self.isStateForward(self.seekstate): + speed = self.seekstate[1] + if self.seekstate[2]: + speed /= self.seekstate[2] + speed = self.getHigher(speed, config.seek.speeds_forward.value) or config.seek.speeds_forward.value[-1] + self.setSeekState(self.makeStateForward(speed)) + elif self.isStateBackward(self.seekstate): + speed = -self.seekstate[1] + if self.seekstate[2]: + speed /= self.seekstate[2] + speed = self.getLower(speed, config.seek.speeds_backward.value) + if speed: + self.setSeekState(self.makeStateBackward(speed)) + else: + self.setSeekState(self.SEEK_STATE_PLAY) + elif self.isStateSlowMotion(self.seekstate): + speed = self.getLower(self.seekstate[2], config.seek.speeds_slowmotion.value) or config.seek.speeds_slowmotion.value[0] + self.setSeekState(self.makeStateSlowMotion(speed)) + + def seekBack(self): + seek = self.getSeek() + if seek and not (seek.isCurrentlySeekable() & 2): + if not self.fast_winding_hint_message_showed and (seek.isCurrentlySeekable() & 1): + self.session.open(MessageBox, _("No fast winding possible yet.. but you can use the number buttons to skip forward/backward!"), MessageBox.TYPE_INFO, timeout=10) + self.fast_winding_hint_message_showed = True + return + return 0 # trade as unhandled action + seekstate = self.seekstate + if seekstate == self.SEEK_STATE_PLAY: + self.setSeekState(self.makeStateBackward(int(config.seek.enter_backward.value))) + elif seekstate == self.SEEK_STATE_EOF: + self.setSeekState(self.makeStateBackward(int(config.seek.enter_backward.value))) + self.doSeekRelative(-6) + elif seekstate == self.SEEK_STATE_PAUSE: + self.doSeekRelative(-1) + elif self.isStateForward(seekstate): + speed = seekstate[1] + if seekstate[2]: + speed /= seekstate[2] + speed = self.getLower(speed, config.seek.speeds_forward.value) + if speed: + self.setSeekState(self.makeStateForward(speed)) + else: + self.setSeekState(self.SEEK_STATE_PLAY) + elif self.isStateBackward(seekstate): + speed = -seekstate[1] + if seekstate[2]: + speed /= seekstate[2] + speed = self.getHigher(speed, config.seek.speeds_backward.value) or config.seek.speeds_backward.value[-1] + self.setSeekState(self.makeStateBackward(speed)) + elif self.isStateSlowMotion(seekstate): + speed = self.getHigher(seekstate[2], config.seek.speeds_slowmotion.value) + if speed: + self.setSeekState(self.makeStateSlowMotion(speed)) + else: + self.setSeekState(self.SEEK_STATE_PAUSE) + + def seekFwdManual(self): + self.session.openWithCallback(self.fwdSeekTo, MinuteInput) + + def fwdSeekTo(self, minutes): + print "Seek", minutes, "minutes forward" + self.doSeekRelative(minutes * 60 * 90000) + + def seekBackManual(self): + self.session.openWithCallback(self.rwdSeekTo, MinuteInput) + + def rwdSeekTo(self, minutes): + print "rwdSeekTo" + self.doSeekRelative(-minutes * 60 * 90000) + + def checkSkipShowHideLock(self): + wantlock = self.seekstate != self.SEEK_STATE_PLAY + + if config.usage.show_infobar_on_skip.value: + if self.lockedBecauseOfSkipping and not wantlock: + self.unlockShow() + self.lockedBecauseOfSkipping = False + + if wantlock and not self.lockedBecauseOfSkipping: + self.lockShow() + self.lockedBecauseOfSkipping = True + + def calcRemainingTime(self): + seekable = self.getSeek() + if seekable is not None: + len = seekable.getLength() + try: + tmp = self.cueGetEndCutPosition() + if tmp: + len = (False, tmp) + except: + pass + pos = seekable.getPlayPosition() + speednom = self.seekstate[1] or 1 + speedden = self.seekstate[2] or 1 + if not len[0] and not pos[0]: + if len[1] <= pos[1]: + return 0 + time = (len[1] - pos[1])*speedden/(90*speednom) + return time + return False + + def __evEOF(self): + if self.seekstate == self.SEEK_STATE_EOF: + return + + # if we are seeking forward, we try to end up ~1s before the end, and pause there. + seekstate = self.seekstate + if self.seekstate != self.SEEK_STATE_PAUSE: + self.setSeekState(self.SEEK_STATE_EOF) + + if seekstate not in (self.SEEK_STATE_PLAY, self.SEEK_STATE_PAUSE): # if we are seeking + seekable = self.getSeek() + if seekable is not None: + seekable.seekTo(-1) + if seekstate == self.SEEK_STATE_PLAY: # regular EOF + self.doEofInternal(True) + else: + self.doEofInternal(False) + + def doEofInternal(self, playing): + pass # Defined in subclasses + + def __evSOF(self): + self.setSeekState(self.SEEK_STATE_PLAY) + self.doSeek(0) + + # This is needed, because some Mediaplayer use InfoBarSeek but not InfoBarCueSheetSupport + def seekPreviousMark(self): + if isinstance(self, InfoBarCueSheetSupport): + self.jumpPreviousMark() + + def seekNextMark(self): + if isinstance(self, InfoBarCueSheetSupport): + self.jumpNextMark() + +from Screens.PVRState import PVRState, TimeshiftState + +class InfoBarPVRState: + def __init__(self, screen=PVRState, force_show = False): + self.onPlayStateChanged.append(self.__playStateChanged) + self.pvrStateDialog = self.session.instantiateDialog(screen) + self.onShow.append(self._mayShow) + self.onHide.append(self.pvrStateDialog.hide) + self.force_show = force_show + + def _mayShow(self): + if self.shown and self.seekstate != self.SEEK_STATE_PLAY: + self.pvrStateDialog.show() + + def __playStateChanged(self, state): + playstateString = state[3] + self.pvrStateDialog["state"].setText(playstateString) + + # if we return into "PLAY" state, ensure that the dialog gets hidden if there will be no infobar displayed + if not config.usage.show_infobar_on_skip.value and self.seekstate == self.SEEK_STATE_PLAY and not self.force_show: + self.pvrStateDialog.hide() + else: + self._mayShow() + +class TimeshiftLive(Screen): + def __init__(self, session): + Screen.__init__(self, session) + +class InfoBarTimeshiftState(InfoBarPVRState): + def __init__(self): + InfoBarPVRState.__init__(self, screen=TimeshiftState, force_show = True) + self.timeshiftLiveScreen = self.session.instantiateDialog(TimeshiftLive) + self.onHide.append(self.timeshiftLiveScreen.hide) + self.secondInfoBarScreen and self.secondInfoBarScreen.onShow.append(self.timeshiftLiveScreen.hide) + self.timeshiftLiveScreen.hide() + self.__hideTimer = eTimer() + self.__hideTimer.callback.append(self.__hideTimeshiftState) + self.onFirstExecBegin.append(self.pvrStateDialog.show) + + def _mayShow(self): + if self.timeshiftEnabled(): + if self.secondInfoBarScreen and self.secondInfoBarScreen.shown: + self.secondInfoBarScreen.hide() + if self.timeshiftActivated(): + self.pvrStateDialog.show() + self.timeshiftLiveScreen.hide() + elif self.showTimeshiftState: + self.pvrStateDialog.hide() + self.timeshiftLiveScreen.show() + self.showTimeshiftState = False + if self.seekstate == self.SEEK_STATE_PLAY and config.usage.infobar_timeout.index and (self.pvrStateDialog.shown or self.timeshiftLiveScreen.shown): + self.__hideTimer.startLongTimer(config.usage.infobar_timeout.index) + else: + self.__hideTimeshiftState() + + def __hideTimeshiftState(self): + self.pvrStateDialog.hide() + self.timeshiftLiveScreen.hide() + +class InfoBarShowMovies: + + # i don't really like this class. + # it calls a not further specified "movie list" on up/down/movieList, + # so this is not more than an action map + def __init__(self): + self["MovieListActions"] = HelpableActionMap(self, "InfobarMovieListActions", + { + "movieList": (self.showMovies, _("Open the movie list")), + "up": (self.up, _("Open the movie list")), + "down": (self.down, _("Open the movie list")) + }) + +# InfoBarTimeshift requires InfoBarSeek, instantiated BEFORE! + +# Hrmf. +# +# Timeshift works the following way: +# demux0 demux1 "TimeshiftActions" "TimeshiftActivateActions" "SeekActions" +# - normal playback TUNER unused PLAY enable disable disable +# - user presses "yellow" button. FILE record PAUSE enable disable enable +# - user presess pause again FILE record PLAY enable disable enable +# - user fast forwards FILE record FF enable disable enable +# - end of timeshift buffer reached TUNER record PLAY enable enable disable +# - user backwards FILE record BACK # !! enable disable enable +# + +# in other words: +# - when a service is playing, pressing the "timeshiftStart" button ("yellow") enables recording ("enables timeshift"), +# freezes the picture (to indicate timeshift), sets timeshiftMode ("activates timeshift") +# now, the service becomes seekable, so "SeekActions" are enabled, "TimeshiftEnableActions" are disabled. +# - the user can now PVR around +# - if it hits the end, the service goes into live mode ("deactivates timeshift", it's of course still "enabled") +# the service looses it's "seekable" state. It can still be paused, but just to activate timeshift right +# after! +# the seek actions will be disabled, but the timeshiftActivateActions will be enabled +# - if the user rewinds, or press pause, timeshift will be activated again + +# note that a timeshift can be enabled ("recording") and +# activated (currently time-shifting). + +class InfoBarTimeshift: + def __init__(self): + self["TimeshiftActions"] = HelpableActionMap(self, "InfobarTimeshiftActions", + { + "timeshiftStart": (self.startTimeshift, _("Start timeshift")), # the "yellow key" + "timeshiftStop": (self.stopTimeshift, _("Stop timeshift")) # currently undefined :), probably 'TV' + }, prio=1) + self["TimeshiftActivateActions"] = ActionMap(["InfobarTimeshiftActivateActions"], + { + "timeshiftActivateEnd": self.activateTimeshiftEnd, # something like "rewind key" + "timeshiftActivateEndAndPause": self.activateTimeshiftEndAndPause # something like "pause key" + }, prio=-1) # priority over record + + self["TimeshiftActivateActions"].setEnabled(False) + self.ts_rewind_timer = eTimer() + self.ts_rewind_timer.callback.append(self.rewindService) + self.ts_start_delay_timer = eTimer() + self.ts_start_delay_timer.callback.append(self.startTimeshiftWithoutPause) + self.save_timeshift_file = False + self.timeshift_was_activated = False + self.showTimeshiftState = False + + self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + { + iPlayableService.evStart: self.__serviceStarted, + iPlayableService.evSeekableStatusChanged: self.__seekableStatusChanged, + iPlayableService.evEnd: self.__serviceEnd + }) + + def getTimeshift(self): + service = self.session.nav.getCurrentService() + return service and service.timeshift() + + def timeshiftEnabled(self): + ts = self.getTimeshift() + return ts and ts.isTimeshiftEnabled() + + def timeshiftActivated(self): + ts = self.getTimeshift() + return ts and ts.isTimeshiftActive() + + def startTimeshift(self, pauseService = True): + print "enable timeshift" + ts = self.getTimeshift() + if ts is None: + if not pauseService and not int(config.usage.timeshift_start_delay.value): + self.session.open(MessageBox, _("Timeshift not possible!"), MessageBox.TYPE_ERROR, simple = True) + print "no ts interface" + return 0 + + if ts.isTimeshiftEnabled(): + print "hu, timeshift already enabled?" + else: + if not ts.startTimeshift(): + # we remove the "relative time" for now. + #self.pvrStateDialog["timeshift"].setRelative(time.time()) + + if pauseService: + # PAUSE. + #self.setSeekState(self.SEEK_STATE_PAUSE) + self.activateTimeshiftEnd(False) + self.showTimeshiftState = True + else: + self.showTimeshiftState = False + + # enable the "TimeshiftEnableActions", which will override + # the startTimeshift actions + self.__seekableStatusChanged() + + # get current timeshift filename and calculate new + self.save_timeshift_file = False + self.save_timeshift_in_movie_dir = False + self.current_timeshift_filename = ts.getTimeshiftFilename() + self.new_timeshift_filename = self.generateNewTimeshiftFileName() + else: + print "timeshift failed" + + def startTimeshiftWithoutPause(self): + self.startTimeshift(False) + + def stopTimeshift(self): + ts = self.getTimeshift() + if ts and ts.isTimeshiftEnabled(): + if int(config.usage.timeshift_start_delay.value): + ts.switchToLive() + else: + self.checkTimeshiftRunning(self.stopTimeshiftcheckTimeshiftRunningCallback) + else: + return 0 + + def stopTimeshiftcheckTimeshiftRunningCallback(self, answer): + ts = self.getTimeshift() + if answer and ts: + ts.stopTimeshift() + self.pvrStateDialog.hide() + + # disable actions + self.__seekableStatusChanged() + + # activates timeshift, and seeks to (almost) the end + def activateTimeshiftEnd(self, back = True): + self.showTimeshiftState = True + ts = self.getTimeshift() + print "activateTimeshiftEnd" + + if ts is None: + return + + if ts.isTimeshiftActive(): + print "!! activate timeshift called - but shouldn't this be a normal pause?" + self.pauseService() + else: + print "play, ..." + ts.activateTimeshift() # activate timeshift will automatically pause + self.setSeekState(self.SEEK_STATE_PAUSE) + seekable = self.getSeek() + if seekable is not None: + seekable.seekTo(-90000) # seek approx. 1 sec before end + self.timeshift_was_activated = True + if back: + self.ts_rewind_timer.start(200, 1) + + def rewindService(self): + self.setSeekState(self.makeStateBackward(int(config.seek.enter_backward.value))) + + # generates only filename without path + def generateNewTimeshiftFileName(self): + name = "timeshift record" + info = { } + self.getProgramInfoAndEvent(info, name) + + serviceref = info["serviceref"] + + service_name = "" + if isinstance(serviceref, eServiceReference): + service_name = ServiceReference(serviceref).getServiceName() + begin_date = strftime("%Y%m%d %H%M", localtime(time())) + filename = begin_date + " - " + service_name + + if config.recording.filename_composition.value == "short": + filename = strftime("%Y%m%d", localtime(time())) + " - " + info["name"] + elif config.recording.filename_composition.value == "long": + filename += " - " + info["name"] + " - " + info["description"] + else: + filename += " - " + info["name"] # standard + + if config.recording.ascii_filenames.value: + filename = ASCIItranslit.legacyEncode(filename) + + print "New timeshift filename: ", filename + return filename + + # same as activateTimeshiftEnd, but pauses afterwards. + def activateTimeshiftEndAndPause(self): + print "activateTimeshiftEndAndPause" + #state = self.seekstate + self.activateTimeshiftEnd(False) + + def callServiceStarted(self): + self.__serviceStarted() + + def __seekableStatusChanged(self): + self["TimeshiftActivateActions"].setEnabled(not self.isSeekable() and self.timeshiftEnabled()) + state = self.getSeek() is not None and self.timeshiftEnabled() + self["SeekActions"].setEnabled(state) + if not state: + self.setSeekState(self.SEEK_STATE_PLAY) + self.restartSubtitle() + + def __serviceStarted(self): + self.pvrStateDialog.hide() + self.__seekableStatusChanged() + if self.ts_start_delay_timer.isActive(): + self.ts_start_delay_timer.stop() + if int(config.usage.timeshift_start_delay.value): + self.ts_start_delay_timer.start(int(config.usage.timeshift_start_delay.value) * 1000, True) + + def checkTimeshiftRunning(self, returnFunction): + if self.timeshiftEnabled() and config.usage.check_timeshift.value and self.timeshift_was_activated: + message = _("Stop timeshift?") + if not self.save_timeshift_file: + choice = [(_("yes"), "stop"), (_("no"), "continue"), (_("Yes and save"), "save"), (_("Yes and save in movie dir"), "save_movie")] + else: + choice = [(_("yes"), "stop"), (_("no"), "continue")] + message += "\n" + _("Reminder, you have chosen to save timeshift file.") + self.session.openWithCallback(boundFunction(self.checkTimeshiftRunningCallback, returnFunction), MessageBox, message, simple = True, list = choice) + else: + returnFunction(True) + + def checkTimeshiftRunningCallback(self, returnFunction, answer): + if answer: + if "movie" in answer: + self.save_timeshift_in_movie_dir = True + if "save" in answer: + self.save_timeshift_file = True + ts = self.getTimeshift() + if ts: + ts.saveTimeshiftFile() + del ts + if "continue" not in answer: + self.saveTimeshiftFiles() + returnFunction(answer and answer != "continue") + + # renames/moves timeshift files if requested + def __serviceEnd(self): + self.saveTimeshiftFiles() + self.timeshift_was_activated = False + + def saveTimeshiftFiles(self): + if self.save_timeshift_file and self.current_timeshift_filename and self.new_timeshift_filename: + if config.usage.timeshift_path.value and not self.save_timeshift_in_movie_dir: + dirname = config.usage.timeshift_path.value + else: + dirname = defaultMoviePath() + filename = getRecordingFilename(self.new_timeshift_filename, dirname) + ".ts" + + fileList = [] + fileList.append((self.current_timeshift_filename, filename)) + if fileExists(self.current_timeshift_filename + ".sc"): + fileList.append((self.current_timeshift_filename + ".sc", filename + ".sc")) + if fileExists(self.current_timeshift_filename + ".cuts"): + fileList.append((self.current_timeshift_filename + ".cuts", filename + ".cuts")) + + moveFiles(fileList) + self.save_timeshift_file = False + +from Screens.PiPSetup import PiPSetup + +class InfoBarExtensions: + EXTENSION_SINGLE = 0 + EXTENSION_LIST = 1 + + def __init__(self): + self.list = [] + + self["InstantExtensionsActions"] = HelpableActionMap(self, "InfobarExtensions", + { + "extensions": (self.showExtensionSelection, _("Show extensions...")), + }, 1) # lower priority + + def addExtension(self, extension, key = None, type = EXTENSION_SINGLE): + self.list.append((type, extension, key)) + + def updateExtension(self, extension, key = None): + self.extensionsList.append(extension) + if key is not None: + if self.extensionKeys.has_key(key): + key = None + + if key is None: + for x in self.availableKeys: + if not self.extensionKeys.has_key(x): + key = x + break + + if key is not None: + self.extensionKeys[key] = len(self.extensionsList) - 1 + + def updateExtensions(self): + self.extensionsList = [] + self.availableKeys = [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "red", "green", "yellow", "blue" ] + self.extensionKeys = {} + for x in self.list: + if x[0] == self.EXTENSION_SINGLE: + self.updateExtension(x[1], x[2]) + else: + for y in x[1](): + self.updateExtension(y[0], y[1]) + + def showExtensionSelection(self): + self.updateExtensions() + extensionsList = self.extensionsList[:] + keys = [] + list = [] + for x in self.availableKeys: + if self.extensionKeys.has_key(x): + entry = self.extensionKeys[x] + extension = self.extensionsList[entry] + if extension[2](): + name = str(extension[0]()) + list.append((extension[0](), extension)) + keys.append(x) + extensionsList.remove(extension) + else: + extensionsList.remove(extension) + list.extend([(x[0](), x) for x in extensionsList]) + + keys += [""] * len(extensionsList) + self.session.openWithCallback(self.extensionCallback, ChoiceBox, title=_("Please choose an extension..."), list = list, keys = keys, skin_name = "ExtensionsList") + + def extensionCallback(self, answer): + if answer is not None: + answer[1][1]() + +from Tools.BoundFunction import boundFunction +import inspect + +# depends on InfoBarExtensions + +class InfoBarPlugins: + def __init__(self): + self.addExtension(extension = self.getPluginList, type = InfoBarExtensions.EXTENSION_LIST) + + def getPluginName(self, name): + return name + + def getPluginList(self): + l = [] + for p in plugins.getPlugins(where = PluginDescriptor.WHERE_EXTENSIONSMENU): + args = inspect.getargspec(p.__call__)[0] + if len(args) == 1 or len(args) == 2 and isinstance(self, InfoBarChannelSelection): + l.append(((boundFunction(self.getPluginName, p.name), boundFunction(self.runPlugin, p), lambda: True), None, p.name)) + l.sort(key = lambda e: e[2]) # sort by name + return l + + def runPlugin(self, plugin): + if isinstance(self, InfoBarChannelSelection): + plugin(session = self.session, servicelist = self.servicelist) + else: + plugin(session = self.session) + +from Components.Task import job_manager +class InfoBarJobman: + def __init__(self): + self.addExtension(extension = self.getJobList, type = InfoBarExtensions.EXTENSION_LIST) + + def getJobList(self): + return [((boundFunction(self.getJobName, job), boundFunction(self.showJobView, job), lambda: True), None) for job in job_manager.getPendingJobs()] + + def getJobName(self, job): + return "%s: %s (%d%%)" % (job.getStatustext(), job.name, int(100*job.progress/float(job.end))) + + def showJobView(self, job): + from Screens.TaskView import JobView + job_manager.in_background = False + self.session.openWithCallback(self.JobViewCB, JobView, job) + + def JobViewCB(self, in_background): + job_manager.in_background = in_background + +# depends on InfoBarExtensions +class InfoBarPiP: + def __init__(self): + try: + self.session.pipshown + except: + self.session.pipshown = False + + self.lastPiPService = None + + if SystemInfo["PIPAvailable"]: + self["PiPActions"] = HelpableActionMap(self, "InfobarPiPActions", + { + "activatePiP": (self.activePiP, self.activePiPName), + }) + if (self.allowPiP): + self.addExtension((self.getShowHideName, self.showPiP, lambda: True), "blue") + self.addExtension((self.getMoveName, self.movePiP, self.pipShown), "green") + self.addExtension((self.getSwapName, self.swapPiP, self.pipShown), "yellow") + self.addExtension((self.getTogglePipzapName, self.togglePipzap, lambda: True), "red") + else: + self.addExtension((self.getShowHideName, self.showPiP, self.pipShown), "blue") + self.addExtension((self.getMoveName, self.movePiP, self.pipShown), "green") + + self.lastPiPServiceTimeoutTimer = eTimer() + self.lastPiPServiceTimeoutTimer.callback.append(self.clearLastPiPService) + + def pipShown(self): + return self.session.pipshown + + def pipHandles0Action(self): + return self.pipShown() and config.usage.pip_zero_button.value != "standard" + + def getShowHideName(self): + if self.session.pipshown: + return _("Disable Picture in Picture") + else: + return _("Activate Picture in Picture") + + def getSwapName(self): + return _("Swap services") + + def getMoveName(self): + return _("Move Picture in Picture") + + def getTogglePipzapName(self): + slist = self.servicelist + if slist and slist.dopipzap: + return _("Zap focus to main screen") + return _("Zap focus to Picture in Picture") + + def togglePipzap(self): + if not self.session.pipshown: + self.showPiP() + slist = self.servicelist + if slist and self.session.pipshown: + slist.togglePipzap() + if slist.dopipzap: + currentServicePath = slist.getCurrentServicePath() + self.servicelist.setCurrentServicePath(self.session.pip.servicePath, doZap=False) + self.session.pip.servicePath = currentServicePath + + def showPiP(self): + self.lastPiPServiceTimeoutTimer.stop() + if self.session.pipshown: + slist = self.servicelist + if slist and slist.dopipzap: + self.togglePipzap() + if self.session.pipshown: + lastPiPServiceTimeout = int(config.usage.pip_last_service_timeout.value) + if lastPiPServiceTimeout >= 0: + self.lastPiPService = self.session.pip.getCurrentServiceReference() + if lastPiPServiceTimeout: + self.lastPiPServiceTimeoutTimer.startLongTimer(lastPiPServiceTimeout) + del self.session.pip + self.session.pipshown = False + if hasattr(self, "ScreenSaverTimerStart"): + self.ScreenSaverTimerStart() + else: + self.session.pip = self.session.instantiateDialog(PictureInPicture) + self.session.pip.show() + newservice = self.lastPiPService or self.session.nav.getCurrentlyPlayingServiceReference() or self.servicelist.servicelist.getCurrent() + if self.session.pip.playService(newservice): + self.session.pipshown = True + self.session.pip.servicePath = self.servicelist.getCurrentServicePath() + else: + newservice = self.session.nav.getCurrentlyPlayingServiceReference() or self.servicelist.servicelist.getCurrent() + if self.session.pip.playService(newservice): + self.session.pipshown = True + self.session.pip.servicePath = self.servicelist.getCurrentServicePath() + else: + self.session.pipshown = False + del self.session.pip + if self.session.pipshown and hasattr(self, "screenSaverTimer"): + self.screenSaverTimer.stop() + self.lastPiPService = None + + def clearLastPiPService(self): + self.lastPiPService = None + + def activePiP(self): + if self.servicelist and self.servicelist.dopipzap or not self.session.pipshown: + self.showPiP() + else: + self.togglePipzap() + + def activePiPName(self): + if self.servicelist and self.servicelist.dopipzap: + return _("Disable Picture in Picture") + if self.session.pipshown: + return _("Zap focus to Picture in Picture") + else: + return _("Activate Picture in Picture") + + def swapPiP(self): + swapservice = self.session.nav.getCurrentlyPlayingServiceOrGroup() + pipref = self.session.pip.getCurrentService() + if swapservice and pipref and pipref.toString() != swapservice.toString(): + currentServicePath = self.servicelist.getCurrentServicePath() + self.servicelist.setCurrentServicePath(self.session.pip.servicePath, doZap=False) + self.session.pip.playService(swapservice) + self.session.nav.playService(pipref, checkParentalControl=False, adjust=False) + self.session.pip.servicePath = currentServicePath + if self.servicelist.dopipzap: + # This unfortunately won't work with subservices + self.servicelist.setCurrentSelection(self.session.pip.getCurrentService()) + + def movePiP(self): + self.session.open(PiPSetup, pip = self.session.pip) + + def pipDoHandle0Action(self): + use = config.usage.pip_zero_button.value + if "swap" == use: + self.swapPiP() + elif "swapstop" == use: + self.swapPiP() + self.showPiP() + elif "stop" == use: + self.showPiP() + +from RecordTimer import parseEvent, RecordTimerEntry + +class InfoBarInstantRecord: + """Instant Record - handles the instantRecord action in order to + start/stop instant records""" + def __init__(self): + self["InstantRecordActions"] = HelpableActionMap(self, "InfobarInstantRecord", + { + "instantRecord": (self.instantRecord, _("Instant recording...")), + }) + if isStandardInfoBar(self): + self.recording = [] + else: + from Screens.InfoBar import InfoBar + InfoBarInstance = InfoBar.instance + if InfoBarInstance: + self.recording = InfoBarInstance.recording + + def stopCurrentRecording(self, entry = -1): + if entry is not None and entry != -1: + self.session.nav.RecordTimer.removeEntry(self.recording[entry]) + self.recording.remove(self.recording[entry]) + + def getProgramInfoAndEvent(self, info, name): + info["serviceref"] = self.session.nav.getCurrentlyPlayingServiceOrGroup() + + # try to get event info + event = None + try: + service = self.session.nav.getCurrentService() + epg = eEPGCache.getInstance() + event = epg.lookupEventTime(info["serviceref"], -1, 0) + if event is None: + event = service.info().getEvent(0) + except: + pass + + info["event"] = event + info["name"] = name + info["description"] = "" + info["eventid"] = None + + if event is not None: + curEvent = parseEvent(event) + info["name"] = curEvent[2] + info["description"] = curEvent[3] + info["eventid"] = curEvent[4] + info["end"] = curEvent[1] + + + def startInstantRecording(self, limitEvent = False): + begin = int(time()) + end = begin + 3600 # dummy + name = "instant record" + info = { } + + self.getProgramInfoAndEvent(info, name) + serviceref = info["serviceref"] + event = info["event"] + + if event is not None: + if limitEvent: + end = info["end"] + else: + if limitEvent: + self.session.open(MessageBox, _("No event info found, recording indefinitely."), MessageBox.TYPE_INFO) + + if isinstance(serviceref, eServiceReference): + serviceref = ServiceReference(serviceref) + + recording = RecordTimerEntry(serviceref, begin, end, info["name"], info["description"], info["eventid"], dirname = preferredInstantRecordPath()) + recording.dontSave = True + + if event is None or limitEvent == False: + recording.autoincrease = True + recording.setAutoincreaseEnd() + + simulTimerList = self.session.nav.RecordTimer.record(recording) + + if simulTimerList is None: # no conflict + recording.autoincrease = False + self.recording.append(recording) + else: + if len(simulTimerList) > 1: # with other recording + name = simulTimerList[1].name + name_date = ' '.join((name, strftime('%F %T', localtime(simulTimerList[1].begin)))) + print "[TIMER] conflicts with", name_date + recording.autoincrease = True # start with max available length, then increment + if recording.setAutoincreaseEnd(): + self.session.nav.RecordTimer.record(recording) + self.recording.append(recording) + self.session.open(MessageBox, _("Record time limited due to conflicting timer %s") % name_date, MessageBox.TYPE_INFO) + else: + self.session.open(MessageBox, _("Could not record due to conflicting timer %s") % name, MessageBox.TYPE_INFO) + else: + self.session.open(MessageBox, _("Could not record due to invalid service %s") % serviceref, MessageBox.TYPE_INFO) + recording.autoincrease = False + + def isInstantRecordRunning(self): + print "self.recording:", self.recording + if self.recording: + for x in self.recording: + if x.isRunning(): + return True + return False + + def recordQuestionCallback(self, answer): + print "pre:\n", self.recording + + if answer is None or answer[1] == "no": + return + list = [] + recording = self.recording[:] + for x in recording: + if not x in self.session.nav.RecordTimer.timer_list: + self.recording.remove(x) + elif x.dontSave and x.isRunning(): + list.append((x, False)) + + if answer[1] == "changeduration": + if len(self.recording) == 1: + self.changeDuration(0) + else: + self.session.openWithCallback(self.changeDuration, TimerSelection, list) + elif answer[1] == "changeendtime": + if len(self.recording) == 1: + self.setEndtime(0) + else: + self.session.openWithCallback(self.setEndtime, TimerSelection, list) + elif answer[1] == "timer": + import TimerEdit + self.session.open(TimerEdit.TimerEditList) + elif answer[1] == "stop": + self.session.openWithCallback(self.stopCurrentRecording, TimerSelection, list) + elif answer[1] in ( "indefinitely" , "manualduration", "manualendtime", "event"): + self.startInstantRecording(limitEvent = answer[1] in ("event", "manualendtime") or False) + if answer[1] == "manualduration": + self.changeDuration(len(self.recording)-1) + elif answer[1] == "manualendtime": + self.setEndtime(len(self.recording)-1) + elif "timeshift" in answer[1]: + ts = self.getTimeshift() + if ts: + ts.saveTimeshiftFile() + self.save_timeshift_file = True + if "movie" in answer[1]: + self.save_timeshift_in_movie_dir = True + print "after:\n", self.recording + + def setEndtime(self, entry): + if entry is not None and entry >= 0: + self.selectedEntry = entry + self.endtime=ConfigClock(default = self.recording[self.selectedEntry].end) + dlg = self.session.openWithCallback(self.TimeDateInputClosed, TimeDateInput, self.endtime) + dlg.setTitle(_("Please change recording endtime")) + + def TimeDateInputClosed(self, ret): + if len(ret) > 1: + if ret[0]: + print "stopping recording at", strftime("%F %T", localtime(ret[1])) + if self.recording[self.selectedEntry].end != ret[1]: + self.recording[self.selectedEntry].autoincrease = False + self.recording[self.selectedEntry].end = ret[1] + self.session.nav.RecordTimer.timeChanged(self.recording[self.selectedEntry]) + + def changeDuration(self, entry): + if entry is not None and entry >= 0: + self.selectedEntry = entry + self.session.openWithCallback(self.inputCallback, InputBox, title=_("How many minutes do you want to record?"), text="5", maxSize=False, type=Input.NUMBER) + + def inputCallback(self, value): + if value is not None: + print "stopping recording after", int(value), "minutes." + entry = self.recording[self.selectedEntry] + if int(value) != 0: + entry.autoincrease = False + entry.end = int(time()) + 60 * int(value) + self.session.nav.RecordTimer.timeChanged(entry) + + def isTimerRecordRunning(self): + identical = timers = 0 + for timer in self.session.nav.RecordTimer.timer_list: + if timer.isRunning() and not timer.justplay: + timers += 1 + if self.recording: + for x in self.recording: + if x.isRunning() and x == timer: + identical += 1 + return timers > identical + + def instantRecord(self): + pirr = preferredInstantRecordPath() + if not findSafeRecordPath(pirr) and not findSafeRecordPath(defaultMoviePath()): + if not pirr: + pirr = "" + self.session.open(MessageBox, _("Missing ") + "\n" + pirr + + "\n" + _("No HDD found or HDD not initialized!"), MessageBox.TYPE_ERROR) + return + + if isStandardInfoBar(self): + common = ((_("Add recording (stop after current event)"), "event"), + (_("Add recording (indefinitely)"), "indefinitely"), + (_("Add recording (enter recording duration)"), "manualduration"), + (_("Add recording (enter recording endtime)"), "manualendtime"),) + else: + common = () + if self.isInstantRecordRunning(): + title =_("A recording is currently running.\nWhat do you want to do?") + list = ((_("Stop recording"), "stop"),) + common + \ + ((_("Change recording (duration)"), "changeduration"), + (_("Change recording (endtime)"), "changeendtime"),) + if self.isTimerRecordRunning(): + list += ((_("Stop timer recording"), "timer"),) + list += ((_("Do nothing"), "no"),) + else: + title=_("Start recording?") + list = common + if self.isTimerRecordRunning(): + list += ((_("Stop timer recording"), "timer"),) + if isStandardInfoBar(self): + list += ((_("Do not record"), "no"),) + if isStandardInfoBar(self) and self.timeshiftEnabled(): + list = list + ((_("Save timeshift file"), "timeshift"), + (_("Save timeshift file in movie directory"), "timeshift_movie")) + if list: + self.session.openWithCallback(self.recordQuestionCallback, ChoiceBox, title=title, list=list) + else: + return 0 + +from Tools.ISO639 import LanguageCodes + +class InfoBarAudioSelection: + def __init__(self): + self["AudioSelectionAction"] = HelpableActionMap(self, "InfobarAudioSelectionActions", + { + "audioSelection": (self.audioSelection, _("Audio options...")), + }) + + def audioSelection(self): + from Screens.AudioSelection import AudioSelection + self.session.openWithCallback(self.audioSelected, AudioSelection, infobar=self) + + def audioSelected(self, ret=None): + print "[infobar::audioSelected]", ret + +class InfoBarSubserviceSelection: + def __init__(self): + self["SubserviceSelectionAction"] = HelpableActionMap(self, "InfobarSubserviceSelectionActions", + { + "subserviceSelection": (self.subserviceSelection, _("Subservice list...")), + }) + + self["SubserviceQuickzapAction"] = HelpableActionMap(self, "InfobarSubserviceQuickzapActions", + { + "nextSubservice": (self.nextSubservice, _("Switch to next sub service")), + "prevSubservice": (self.prevSubservice, _("Switch to previous sub service")) + }, -1) + self["SubserviceQuickzapAction"].setEnabled(False) + + self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + { + iPlayableService.evUpdatedEventInfo: self.checkSubservicesAvail + }) + self.onClose.append(self.__removeNotifications) + + self.bsel = None + + def __removeNotifications(self): + self.session.nav.event.remove(self.checkSubservicesAvail) + + def checkSubservicesAvail(self): + service = self.session.nav.getCurrentService() + subservices = service and service.subServices() + if not subservices or subservices.getNumberOfSubservices() == 0: + self["SubserviceQuickzapAction"].setEnabled(False) + + def nextSubservice(self): + self.changeSubservice(+1) + + def prevSubservice(self): + self.changeSubservice(-1) + + def changeSubservice(self, direction): + service = self.session.nav.getCurrentService() + subservices = service and service.subServices() + n = subservices and subservices.getNumberOfSubservices() + if n and n > 0: + selection = -1 + ref = self.session.nav.getCurrentlyPlayingServiceOrGroup() + idx = 0 + while idx < n: + if subservices.getSubservice(idx).toString() == ref.toString(): + selection = idx + break + idx += 1 + if selection != -1: + selection += direction + if selection >= n: + selection=0 + elif selection < 0: + selection=n-1 + newservice = subservices.getSubservice(selection) + if newservice.valid(): + del subservices + del service + self.session.nav.playService(newservice, False) + + def subserviceSelection(self): + service = self.session.nav.getCurrentService() + subservices = service and service.subServices() + self.bouquets = self.servicelist.getBouquetList() + n = subservices and subservices.getNumberOfSubservices() + selection = 0 + if n and n > 0: + ref = self.session.nav.getCurrentlyPlayingServiceOrGroup() + tlist = [] + idx = 0 + while idx < n: + i = subservices.getSubservice(idx) + if i.toString() == ref.toString(): + selection = idx + tlist.append((i.getName(), i)) + idx += 1 + + if self.bouquets and len(self.bouquets): + keys = ["red", "blue", "", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" ] + [""] * n + if config.usage.multibouquet.value: + tlist = [(_("Quick zap"), "quickzap", service.subServices()), (_("Add to bouquet"), "CALLFUNC", self.addSubserviceToBouquetCallback), ("--", "")] + tlist + else: + tlist = [(_("Quick zap"), "quickzap", service.subServices()), (_("Add to favourites"), "CALLFUNC", self.addSubserviceToBouquetCallback), ("--", "")] + tlist + selection += 3 + else: + tlist = [(_("Quick zap"), "quickzap", service.subServices()), ("--", "")] + tlist + keys = ["red", "", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" ] + [""] * n + selection += 2 + + self.session.openWithCallback(self.subserviceSelected, ChoiceBox, title=_("Please select a sub service..."), list = tlist, selection = selection, keys = keys, skin_name = "SubserviceSelection") + + def subserviceSelected(self, service): + del self.bouquets + if not service is None: + if isinstance(service[1], str): + if service[1] == "quickzap": + from Screens.SubservicesQuickzap import SubservicesQuickzap + self.session.open(SubservicesQuickzap, service[2]) + else: + self["SubserviceQuickzapAction"].setEnabled(True) + self.session.nav.playService(service[1], False) + + def addSubserviceToBouquetCallback(self, service): + if len(service) > 1 and isinstance(service[1], eServiceReference): + self.selectedSubservice = service + if self.bouquets is None: + cnt = 0 + else: + cnt = len(self.bouquets) + if cnt > 1: # show bouquet list + self.bsel = self.session.openWithCallback(self.bouquetSelClosed, BouquetSelector, self.bouquets, self.addSubserviceToBouquet) + elif cnt == 1: # add to only one existing bouquet + self.addSubserviceToBouquet(self.bouquets[0][1]) + self.session.open(MessageBox, _("Service has been added to the favourites."), MessageBox.TYPE_INFO) + + def bouquetSelClosed(self, confirmed): + self.bsel = None + del self.selectedSubservice + if confirmed: + self.session.open(MessageBox, _("Service has been added to the selected bouquet."), MessageBox.TYPE_INFO) + + def addSubserviceToBouquet(self, dest): + self.servicelist.addServiceToBouquet(dest, self.selectedSubservice[1]) + if self.bsel: + self.bsel.close(True) + else: + del self.selectedSubservice + +class InfoBarRedButton: + def __init__(self): + self["RedButtonActions"] = HelpableActionMap(self, "InfobarRedButtonActions", + { + "activateRedButton": (self.activateRedButton, _("Red button...")), + }) + self.onHBBTVActivation = [ ] + self.onRedButtonActivation = [ ] + + def activateRedButton(self): + service = self.session.nav.getCurrentService() + info = service and service.info() + if info and info.getInfoString(iServiceInformation.sHBBTVUrl) != "": + for x in self.onHBBTVActivation: + x() + elif False: # TODO: other red button services + for x in self.onRedButtonActivation: + x() + +class InfoBarTimerButton: + def __init__(self): + self["TimerButtonActions"] = HelpableActionMap(self, "InfobarTimerButtonActions", + { + "timerSelection": (self.timerSelection, _("Timer selection...")), + }) + + def timerSelection(self): + from Screens.TimerEdit import TimerEditList + self.session.open(TimerEditList) + +class InfoBarVmodeButton: + def __init__(self): + self["VmodeButtonActions"] = HelpableActionMap(self, "InfobarVmodeButtonActions", + { + "vmodeSelection": (self.vmodeSelection, _("Letterbox zoom")), + }) + + def vmodeSelection(self): + self.session.open(VideoMode) + +class VideoMode(Screen): + def __init__(self,session): + Screen.__init__(self, session) + self["videomode"] = Label() + + self["actions"] = NumberActionMap( [ "InfobarVmodeButtonActions" ], + { + "vmodeSelection": self.selectVMode + }) + + self.Timer = eTimer() + self.Timer.callback.append(self.quit) + self.selectVMode() + + def selectVMode(self): + policy = config.av.policy_43 + if self.isWideScreen(): + policy = config.av.policy_169 + idx = policy.choices.index(policy.value) + idx = (idx + 1) % len(policy.choices) + policy.value = policy.choices[idx] + self["videomode"].setText(policy.value) + self.Timer.start(1000, True) + + def isWideScreen(self): + from Components.Converter.ServiceInfo import WIDESCREEN + service = self.session.nav.getCurrentService() + info = service and service.info() + return info.getInfo(iServiceInformation.sAspect) in WIDESCREEN + + def quit(self): + self.Timer.stop() + self.close() + +class InfoBarAdditionalInfo: + def __init__(self): + + self["RecordingPossible"] = Boolean(fixed=harddiskmanager.HDDCount() > 0) + self["TimeshiftPossible"] = self["RecordingPossible"] + self["ExtensionsAvailable"] = Boolean(fixed=1) + # TODO: these properties should be queried from the input device keymap + self["ShowTimeshiftOnYellow"] = Boolean(fixed=0) + self["ShowAudioOnYellow"] = Boolean(fixed=0) + self["ShowRecordOnRed"] = Boolean(fixed=0) + +class InfoBarNotifications: + def __init__(self): + self.onExecBegin.append(self.checkNotifications) + Notifications.notificationAdded.append(self.checkNotificationsIfExecing) + self.onClose.append(self.__removeNotification) + + def __removeNotification(self): + Notifications.notificationAdded.remove(self.checkNotificationsIfExecing) + + def checkNotificationsIfExecing(self): + if self.execing: + self.checkNotifications() + + def checkNotifications(self): + notifications = Notifications.notifications + if notifications: + n = notifications[0] + + del notifications[0] + cb = n[0] + + if n[3].has_key("onSessionOpenCallback"): + n[3]["onSessionOpenCallback"]() + del n[3]["onSessionOpenCallback"] + + if cb: + dlg = self.session.openWithCallback(cb, n[1], *n[2], **n[3]) + elif not Notifications.current_notifications and n[4] == "ZapError": + if n[3].has_key("timeout"): + del n[3]["timeout"] + n[3]["enable_input"] = False + dlg = self.session.instantiateDialog(n[1], *n[2], **n[3]) + self.hide() + dlg.show() + self.notificationDialog = dlg + eActionMap.getInstance().bindAction('', -maxint - 1, self.keypressNotification) + else: + dlg = self.session.open(n[1], *n[2], **n[3]) + + # remember that this notification is currently active + d = (n[4], dlg) + Notifications.current_notifications.append(d) + dlg.onClose.append(boundFunction(self.__notificationClosed, d)) + + def closeNotificationInstantiateDialog(self): + if hasattr(self, "notificationDialog"): + self.session.deleteDialog(self.notificationDialog) + del self.notificationDialog + eActionMap.getInstance().unbindAction('', self.keypressNotification) + + def keypressNotification(self, key, flag): + if flag: + self.closeNotificationInstantiateDialog() + + def __notificationClosed(self, d): + Notifications.current_notifications.remove(d) + +class InfoBarServiceNotifications: + def __init__(self): + self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + { + iPlayableService.evEnd: self.serviceHasEnded + }) + + def serviceHasEnded(self): + print "service end!" + + try: + self.setSeekState(self.SEEK_STATE_PLAY) + except: + pass + +class InfoBarCueSheetSupport: + CUT_TYPE_IN = 0 + CUT_TYPE_OUT = 1 + CUT_TYPE_MARK = 2 + CUT_TYPE_LAST = 3 + + ENABLE_RESUME_SUPPORT = False + + def __init__(self, actionmap = "InfobarCueSheetActions"): + self["CueSheetActions"] = HelpableActionMap(self, actionmap, + { + "jumpPreviousMark": (self.jumpPreviousMark, _("Jump to previous marked position")), + "jumpNextMark": (self.jumpNextMark, _("Jump to next marked position")), + "toggleMark": (self.toggleMark, _("Toggle a cut mark at the current position")) + }, prio=1) + + self.cut_list = [ ] + self.is_closing = False + self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + { + iPlayableService.evStart: self.__serviceStarted, + iPlayableService.evCuesheetChanged: self.downloadCuesheet, + }) + + def __serviceStarted(self): + if self.is_closing: + return + print "new service started! trying to download cuts!" + self.downloadCuesheet() + + if self.ENABLE_RESUME_SUPPORT: + for (pts, what) in self.cut_list: + if what == self.CUT_TYPE_LAST: + last = pts + break + else: + last = getResumePoint(self.session) + if last is None: + return + # only resume if at least 10 seconds ahead, or <10 seconds before the end. + seekable = self.__getSeekable() + if seekable is None: + return # Should not happen? + length = seekable.getLength() or (None,0) + print "seekable.getLength() returns:", length + # Hmm, this implies we don't resume if the length is unknown... + if (last > 900000) and (not length[1] or (last < length[1] - 900000)): + self.resume_point = last + l = last / 90000 + if config.usage.on_movie_start.value == "ask" or not length[1]: + Notifications.AddNotificationWithCallback(self.playLastCB, MessageBox, _("Do you want to resume this playback?") + "\n" + (_("Resume position at %s") % ("%d:%02d:%02d" % (l/3600, l%3600/60, l%60))), timeout=10) + elif config.usage.on_movie_start.value == "resume": +# TRANSLATORS: The string "Resuming playback" flashes for a moment +# TRANSLATORS: at the start of a movie, when the user has selected +# TRANSLATORS: "Resume from last position" as start behavior. +# TRANSLATORS: The purpose is to notify the user that the movie starts +# TRANSLATORS: in the middle somewhere and not from the beginning. +# TRANSLATORS: (Some translators seem to have interpreted it as a +# TRANSLATORS: question or a choice, but it is a statement.) + Notifications.AddNotificationWithCallback(self.playLastCB, MessageBox, _("Resuming playback"), timeout=2, type=MessageBox.TYPE_INFO) + + def playLastCB(self, answer): + if answer == True: + self.doSeek(self.resume_point) + self.hideAfterResume() + + def hideAfterResume(self): + if isinstance(self, InfoBarShowHide): + self.hide() + + def __getSeekable(self): + service = self.session.nav.getCurrentService() + if service is None: + return None + return service.seek() + + def cueGetCurrentPosition(self): + seek = self.__getSeekable() + if seek is None: + return None + r = seek.getPlayPosition() + if r[0]: + return None + return long(r[1]) + + def cueGetEndCutPosition(self): + ret = False + isin = True + for cp in self.cut_list: + if cp[1] == self.CUT_TYPE_OUT: + if isin: + isin = False + ret = cp[0] + elif cp[1] == self.CUT_TYPE_IN: + isin = True + return ret + + def jumpPreviousNextMark(self, cmp, start=False): + current_pos = self.cueGetCurrentPosition() + if current_pos is None: + return False + mark = self.getNearestCutPoint(current_pos, cmp=cmp, start=start) + if mark is not None: + pts = mark[0] + else: + return False + + self.doSeek(pts) + return True + + def jumpPreviousMark(self): + # we add 5 seconds, so if the play position is <5s after + # the mark, the mark before will be used + self.jumpPreviousNextMark(lambda x: -x-5*90000, start=True) + + def jumpNextMark(self): + if not self.jumpPreviousNextMark(lambda x: x-90000): + self.doSeek(-1) + + def getNearestCutPoint(self, pts, cmp=abs, start=False): + # can be optimized + beforecut = True + nearest = None + bestdiff = -1 + instate = True + if start: + bestdiff = cmp(0 - pts) + if bestdiff >= 0: + nearest = [0, False] + for cp in self.cut_list: + if beforecut and cp[1] in (self.CUT_TYPE_IN, self.CUT_TYPE_OUT): + beforecut = False + if cp[1] == self.CUT_TYPE_IN: # Start is here, disregard previous marks + diff = cmp(cp[0] - pts) + if start and diff >= 0: + nearest = cp + bestdiff = diff + else: + nearest = None + bestdiff = -1 + if cp[1] == self.CUT_TYPE_IN: + instate = True + elif cp[1] == self.CUT_TYPE_OUT: + instate = False + elif cp[1] in (self.CUT_TYPE_MARK, self.CUT_TYPE_LAST): + diff = cmp(cp[0] - pts) + if instate and diff >= 0 and (nearest is None or bestdiff > diff): + nearest = cp + bestdiff = diff + return nearest + + def toggleMark(self, onlyremove=False, onlyadd=False, tolerance=5*90000, onlyreturn=False): + current_pos = self.cueGetCurrentPosition() + if current_pos is None: + print "not seekable" + return + + nearest_cutpoint = self.getNearestCutPoint(current_pos) + + if nearest_cutpoint is not None and abs(nearest_cutpoint[0] - current_pos) < tolerance: + if onlyreturn: + return nearest_cutpoint + if not onlyadd: + self.removeMark(nearest_cutpoint) + elif not onlyremove and not onlyreturn: + self.addMark((current_pos, self.CUT_TYPE_MARK)) + + if onlyreturn: + return None + + def addMark(self, point): + insort(self.cut_list, point) + self.uploadCuesheet() + self.showAfterCuesheetOperation() + + def removeMark(self, point): + self.cut_list.remove(point) + self.uploadCuesheet() + self.showAfterCuesheetOperation() + + def showAfterCuesheetOperation(self): + if isinstance(self, InfoBarShowHide): + self.doShow() + + def __getCuesheet(self): + service = self.session.nav.getCurrentService() + if service is None: + return None + return service.cueSheet() + + def uploadCuesheet(self): + cue = self.__getCuesheet() + + if cue is None: + print "upload failed, no cuesheet interface" + return + cue.setCutList(self.cut_list) + + def downloadCuesheet(self): + cue = self.__getCuesheet() + + if cue is None: + print "download failed, no cuesheet interface" + self.cut_list = [ ] + else: + self.cut_list = cue.getCutList() + +class InfoBarSummary(Screen): + skin = """ + <screen position="0,0" size="132,64"> + <widget source="global.CurrentTime" render="Label" position="62,46" size="82,18" font="Regular;16" > + <convert type="ClockToText">WithSeconds</convert> + </widget> + <widget source="session.RecordState" render="FixedLabel" text=" " position="62,46" size="82,18" zPosition="1" > + <convert type="ConfigEntryTest">config.usage.blinking_display_clock_during_recording,True,CheckSourceBoolean</convert> + <convert type="ConditionalShowHide">Blink</convert> + </widget> + <widget source="session.CurrentService" render="Label" position="6,4" size="120,42" font="Regular;18" > + <convert type="ServiceName">Name</convert> + </widget> + <widget source="session.Event_Now" render="Progress" position="6,46" size="46,18" borderWidth="1" > + <convert type="EventTime">Progress</convert> + </widget> + </screen>""" + +# for picon: (path="piconlcd" will use LCD picons) +# <widget source="session.CurrentService" render="Picon" position="6,0" size="120,64" path="piconlcd" > +# <convert type="ServiceName">Reference</convert> +# </widget> + +class InfoBarSummarySupport: + def __init__(self): + pass + + def createSummary(self): + return InfoBarSummary + +class InfoBarMoviePlayerSummary(Screen): + skin = """ + <screen position="0,0" size="132,64"> + <widget source="global.CurrentTime" render="Label" position="62,46" size="64,18" font="Regular;16" halign="right" > + <convert type="ClockToText">WithSeconds</convert> + </widget> + <widget source="session.RecordState" render="FixedLabel" text=" " position="62,46" size="64,18" zPosition="1" > + <convert type="ConfigEntryTest">config.usage.blinking_display_clock_during_recording,True,CheckSourceBoolean</convert> + <convert type="ConditionalShowHide">Blink</convert> + </widget> + <widget source="session.CurrentService" render="Label" position="6,4" size="120,42" font="Regular;18" > + <convert type="ServiceName">Name</convert> + </widget> + <widget source="session.CurrentService" render="Progress" position="6,46" size="56,18" borderWidth="1" > + <convert type="ServicePosition">Position</convert> + </widget> + </screen>""" + +class InfoBarMoviePlayerSummarySupport: + def __init__(self): + pass + + def createSummary(self): + return InfoBarMoviePlayerSummary + +class InfoBarTeletextPlugin: + def __init__(self): + self.teletext_plugin = None + + for p in plugins.getPlugins(PluginDescriptor.WHERE_TELETEXT): + self.teletext_plugin = p + + if self.teletext_plugin is not None: + self["TeletextActions"] = HelpableActionMap(self, "InfobarTeletextActions", + { + "startTeletext": (self.startTeletext, _("View teletext...")) + }) + else: + print "no teletext plugin found!" + + def startTeletext(self): + self.teletext_plugin(session=self.session, service=self.session.nav.getCurrentService()) + +class InfoBarSubtitleSupport(object): + def __init__(self): + object.__init__(self) + self["SubtitleSelectionAction"] = HelpableActionMap(self, "InfobarSubtitleSelectionActions", + { + "subtitleSelection": (self.subtitleSelection, _("Subtitle selection...")), + }) + + self.selected_subtitle = None + + if isStandardInfoBar(self): + self.subtitle_window = self.session.instantiateDialog(SubtitleDisplay) + else: + from Screens.InfoBar import InfoBar + self.subtitle_window = InfoBar.instance.subtitle_window + + self.subtitle_window.hide() + + self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + { + iPlayableService.evStart: self.__serviceChanged, + iPlayableService.evEnd: self.__serviceChanged, + iPlayableService.evUpdatedInfo: self.__updatedInfo + }) + + def getCurrentServiceSubtitle(self): + service = self.session.nav.getCurrentService() + return service and service.subtitle() + + def subtitleSelection(self): + subtitle = self.getCurrentServiceSubtitle() + subtitlelist = subtitle and subtitle.getSubtitleList() + if self.selected_subtitle or subtitlelist and len(subtitlelist)>0: + from Screens.AudioSelection import SubtitleSelection + self.session.open(SubtitleSelection, self) + else: + return 0 + + def __serviceChanged(self): + if self.selected_subtitle: + self.selected_subtitle = None + self.subtitle_window.hide() + + def __updatedInfo(self): + if not self.selected_subtitle: + subtitle = self.getCurrentServiceSubtitle() + cachedsubtitle = subtitle.getCachedSubtitle() + if cachedsubtitle: + self.enableSubtitle(cachedsubtitle) + + def enableSubtitle(self, selectedSubtitle): + subtitle = self.getCurrentServiceSubtitle() + self.selected_subtitle = selectedSubtitle + if subtitle and self.selected_subtitle: + subtitle.enableSubtitles(self.subtitle_window.instance, self.selected_subtitle) + self.subtitle_window.show() + else: + if subtitle: + subtitle.disableSubtitles(self.subtitle_window.instance) + self.subtitle_window.hide() + + def restartSubtitle(self): + if self.selected_subtitle: + self.enableSubtitle(self.selected_subtitle) + +class InfoBarServiceErrorPopupSupport: + def __init__(self): + self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + { + iPlayableService.evTuneFailed: self.__tuneFailed, + iPlayableService.evTunedIn: self.__serviceStarted, + iPlayableService.evStart: self.__serviceStarted + }) + self.__serviceStarted() + + def __serviceStarted(self): + self.closeNotificationInstantiateDialog() + self.last_error = None + Notifications.RemovePopup(id = "ZapError") + + def __tuneFailed(self): + if not config.usage.hide_zap_errors.value: + service = self.session.nav.getCurrentService() + info = service and service.info() + error = info and info.getInfo(iServiceInformation.sDVBState) + + if error == self.last_error: + error = None + else: + self.last_error = error + + error = { + eDVBServicePMTHandler.eventNoResources: _("No free tuner!"), + eDVBServicePMTHandler.eventTuneFailed: _("Tune failed!"), + eDVBServicePMTHandler.eventNoPAT: _("No data on transponder!\n(Timeout reading PAT)"), + eDVBServicePMTHandler.eventNoPATEntry: _("Service not found!\n(SID not found in PAT)"), + eDVBServicePMTHandler.eventNoPMT: _("Service invalid!\n(Timeout reading PMT)"), + eDVBServicePMTHandler.eventNewProgramInfo: None, + eDVBServicePMTHandler.eventTuned: None, + eDVBServicePMTHandler.eventSOF: None, + eDVBServicePMTHandler.eventEOF: None, + eDVBServicePMTHandler.eventMisconfiguration: _("Service unavailable!\nCheck tuner configuration!"), + }.get(error) #this returns None when the key not exist in the dict + + if error: + self.closeNotificationInstantiateDialog() + if hasattr(self, "dishDialog") and not self.dishDialog.dishState(): + Notifications.AddPopup(text = error, type = MessageBox.TYPE_ERROR, timeout = 5, id = "ZapError") + +class InfoBarPowersaver: + def __init__(self): + self.inactivityTimer = eTimer() + self.inactivityTimer.callback.append(self.inactivityTimeout) + self.restartInactiveTimer() + self.sleepTimer = eTimer() + self.sleepStartTime = 0 + self.sleepTimer.callback.append(self.sleepTimerTimeout) + eActionMap.getInstance().bindAction('', -maxint - 1, self.keypress) + + def keypress(self, key, flag): + if flag: + self.restartInactiveTimer() + + def restartInactiveTimer(self): + time = abs(int(config.usage.inactivity_timer.value)) + if time: + self.inactivityTimer.startLongTimer(time) + else: + self.inactivityTimer.stop() + + def inactivityTimeout(self): + if config.usage.inactivity_timer_blocktime.value: + curtime = localtime(time()) + if curtime.tm_year > 1970: #check if the current time is valid + curtime = (curtime.tm_hour, curtime.tm_min, curtime.tm_sec) + begintime = tuple(config.usage.inactivity_timer_blocktime_begin.value) + endtime = tuple(config.usage.inactivity_timer_blocktime_end.value) + if begintime <= endtime and (curtime >= begintime and curtime < endtime) or begintime > endtime and (curtime >= begintime or curtime < endtime): + duration = (endtime[0]*3600 + endtime[1]*60) - (curtime[0]*3600 + curtime[1]*60 + curtime[2]) + if duration: + if duration < 0: + duration += 24*3600 + self.inactivityTimer.startLongTimer(duration) + return + if Screens.Standby.inStandby: + self.inactivityTimeoutCallback(True) + else: + message = _("Your receiver will got to standby due to inactivity.") + "\n" + _("Do you want this?") + self.session.openWithCallback(self.inactivityTimeoutCallback, MessageBox, message, timeout=60, simple=True, default=False, timeout_default=True) + + def inactivityTimeoutCallback(self, answer): + if answer: + self.goStandby() + else: + print "[InfoBarPowersaver] abort" + + def sleepTimerState(self): + if self.sleepTimer.isActive(): + return (self.sleepStartTime - time()) / 60 + return 0 + + def setSleepTimer(self, sleepTime): + print "[InfoBarPowersaver] set sleeptimer", sleepTime + if sleepTime: + m = abs(sleepTime / 60) + message = _("The sleep timer has been activated.") + "\n" + _("And will put your receiver in standby over ") + ngettext("%d minute", "%d minutes", m) % m + self.sleepTimer.startLongTimer(sleepTime) + self.sleepStartTime = time() + sleepTime + else: + message = _("The sleep timer has been disabled.") + self.sleepTimer.stop() + Notifications.AddPopup(message, type = MessageBox.TYPE_INFO, timeout = 5) + + def sleepTimerTimeout(self): + if not Screens.Standby.inStandby: + list = [ (_("Yes"), True), (_("Extend sleeptimer 15 minutes"), "extend"), (_("No"), False) ] + message = _("Your receiver will got to stand by due to the sleeptimer.") + message += "\n" + _("Do you want this?") + self.session.openWithCallback(self.sleepTimerTimeoutCallback, MessageBox, message, timeout=60, simple=True, list=list, default=False, timeout_default=True) + + def sleepTimerTimeoutCallback(self, answer): + if answer == "extend": + print "[InfoBarPowersaver] extend sleeptimer" + self.setSleepTimer(900) + elif answer: + self.goStandby() + else: + print "[InfoBarPowersaver] abort" + self.setSleepTimer(0) + + def goStandby(self): + if not Screens.Standby.inStandby: + print "[InfoBarPowersaver] goto standby" + self.session.open(Screens.Standby.Standby) + +class InfoBarHDMI: + def __init__(self): + self["HDMIActions"] = HelpableActionMap(self, "InfobarHDMIActions", + { + "HDMIin":(self.HDMIIn, _("Switch to HDMI in mode")), + }, prio=2) + + def HDMIIn(self): + slist = self.servicelist + if slist.dopipzap: + curref = self.session.pip.getCurrentService() + if curref and curref.type != 8192: + self.session.pip.playService(eServiceReference('8192:0:1:0:0:0:0:0:0:0:')) + else: + self.session.pip.playService(slist.servicelist.getCurrent()) + else: + curref = self.session.nav.getCurrentlyPlayingServiceOrGroup() + if curref and curref.type != 8192: + if curref and curref.type != -1 and os.path.splitext(curref.toString().split(":")[10])[1].lower() in AUDIO_EXTENSIONS.union(MOVIE_EXTENSIONS, DVD_EXTENSIONS): + setResumePoint(self.session) + self.session.nav.playService(eServiceReference('8192:0:1:0:0:0:0:0:0:0:')) + elif isStandardInfoBar(self): + self.session.nav.playService(slist.servicelist.getCurrent()) + else: + self.session.nav.playService(self.cur_service) diff --git a/lib/python/Screens/InputBox.py b/lib/python/Screens/InputBox.py new file mode 100644 index 0000000..a439aba --- /dev/null +++ b/lib/python/Screens/InputBox.py @@ -0,0 +1,175 @@ +from enigma import eRCInput, getPrevAsciiCode +from Screens.Screen import Screen +from Screens.MessageBox import MessageBox +from Components.ActionMap import NumberActionMap +from Components.Label import Label +from Components.Input import Input +from Tools.BoundFunction import boundFunction +from Tools.Notifications import AddPopup +from time import time + +class InputBox(Screen): + def __init__(self, session, title = "", windowTitle = _("Input"), useableChars = None, **kwargs): + Screen.__init__(self, session) + + self["text"] = Label(title) + self["input"] = Input(**kwargs) + self.onShown.append(boundFunction(self.setTitle, windowTitle)) + if useableChars is not None: + self["input"].setUseableChars(useableChars) + + self["actions"] = NumberActionMap(["WizardActions", "InputBoxActions", "InputAsciiActions", "KeyboardInputActions"], + { + "gotAsciiCode": self.gotAsciiCode, + "ok": self.go, + "back": self.cancel, + "left": self.keyLeft, + "right": self.keyRight, + "home": self.keyHome, + "end": self.keyEnd, + "deleteForward": self.keyDelete, + "deleteBackward": self.keyBackspace, + "tab": self.keyTab, + "toggleOverwrite": self.keyInsert, + "1": self.keyNumberGlobal, + "2": self.keyNumberGlobal, + "3": self.keyNumberGlobal, + "4": self.keyNumberGlobal, + "5": self.keyNumberGlobal, + "6": self.keyNumberGlobal, + "7": self.keyNumberGlobal, + "8": self.keyNumberGlobal, + "9": self.keyNumberGlobal, + "0": self.keyNumberGlobal + }, -1) + + if self["input"].type == Input.TEXT: + self.onExecBegin.append(self.setKeyboardModeAscii) + else: + self.onExecBegin.append(self.setKeyboardModeNone) + + def gotAsciiCode(self): + self["input"].handleAscii(getPrevAsciiCode()) + + def keyLeft(self): + self["input"].left() + + def keyRight(self): + self["input"].right() + + def keyNumberGlobal(self, number): + self["input"].number(number) + + def keyDelete(self): + self["input"].delete() + + def go(self): + self.close(self["input"].getText()) + + def cancel(self): + self.close(None) + + def keyHome(self): + self["input"].home() + + def keyEnd(self): + self["input"].end() + + def keyBackspace(self): + self["input"].deleteBackward() + + def keyTab(self): + self["input"].tab() + + def keyInsert(self): + self["input"].toggleOverwrite() + +class PinInput(InputBox): + def __init__(self, session, service = "", triesEntry = None, pinList = [], popup = False, *args, **kwargs): + InputBox.__init__(self, session = session, text = " ", maxSize = True, type = Input.PIN, *args, **kwargs) + + self.waitTime = 15 + self.triesEntry = triesEntry + self.pinList = pinList + self["service"] = Label(service) + + if service: + self.skinName = "PinInputPopup" + + if self.getTries() == 0: + if (self.triesEntry.time.value + (self.waitTime * 60)) > time(): + remaining = (self.triesEntry.time.value + (self.waitTime * 60)) - time() + remainingMinutes = int(remaining / 60) + remainingSeconds = int(remaining % 60) + messageText = _("You have to wait %s!") % (str(remainingMinutes) + " " + _("minutes") + ", " + str(remainingSeconds) + " " + _("seconds")) + if service: + AddPopup(messageText, type = MessageBox.TYPE_ERROR, timeout = 3) + self.closePinCancel() + else: + self.onFirstExecBegin.append(boundFunction(self.session.openWithCallback, self.closePinCancel, MessageBox, messageText, MessageBox.TYPE_ERROR, timeout = 3)) + else: + self.setTries(3) + + self["tries"] = Label("") + self.onShown.append(self.showTries) + + def gotAsciiCode(self): + if self["input"].currPos == len(self["input"]) - 1: + InputBox.gotAsciiCode(self) + self.go() + else: + InputBox.gotAsciiCode(self) + + def keyNumberGlobal(self, number): + if self["input"].currPos == len(self["input"]) - 1: + InputBox.keyNumberGlobal(self, number) + self.go() + else: + InputBox.keyNumberGlobal(self, number) + + def checkPin(self, pin): + if pin is not None and " " not in pin and int(pin) in self.pinList: + return True + return False + + def go(self): + self.triesEntry.time.value = int(time()) + self.triesEntry.time.save() + if self.checkPin(self["input"].getText()): + self.setTries(3) + self.closePinCorrect() + else: + self.keyHome() + self.decTries() + if self.getTries() == 0: + self.closePinWrong() + else: + pass + + def closePinWrong(self, *args): + print "args:", args + self.close(False) + + def closePinCorrect(self, *args): + self.setTries(3) + self.close(True) + + def closePinCancel(self, *args): + self.close(None) + + def cancel(self): + self.closePinCancel() + + def getTries(self): + return self.triesEntry.tries.value + + def decTries(self): + self.setTries(self.triesEntry.tries.value - 1) + self.showTries() + + def setTries(self, tries): + self.triesEntry.tries.value = tries + self.triesEntry.tries.save() + + def showTries(self): + self["tries"].setText(_("Tries left:") + " " + str(self.getTries())) diff --git a/lib/python/Screens/InputDeviceSetup.py b/lib/python/Screens/InputDeviceSetup.py new file mode 100644 index 0000000..3bd6bec --- /dev/null +++ b/lib/python/Screens/InputDeviceSetup.py @@ -0,0 +1,381 @@ +from Screen import Screen +from Screens.HelpMenu import HelpableScreen +from Screens.MessageBox import MessageBox +from Components.InputDevice import iInputDevices, iRcTypeControl +from Components.Sources.StaticText import StaticText +from Components.Sources.List import List +from Components.config import config, ConfigYesNo, getConfigListEntry, ConfigSelection +from Components.ConfigList import ConfigListScreen +from Components.ActionMap import ActionMap, HelpableActionMap +from Tools.Directories import resolveFilename, SCOPE_CURRENT_SKIN +from Tools.LoadPixmap import LoadPixmap + +class InputDeviceSelection(Screen,HelpableScreen): + skin = """ + <screen name="InputDeviceSelection" position="center,center" size="560,400" title="Select input device"> + <ePixmap pixmap="skin_default/buttons/red.png" position="0,0" size="140,40" alphatest="on"/> + <ePixmap pixmap="skin_default/buttons/green.png" position="140,0" size="140,40" alphatest="on"/> + <ePixmap pixmap="skin_default/buttons/yellow.png" position="280,0" size="140,40" alphatest="on"/> + <ePixmap pixmap="skin_default/buttons/blue.png" position="420,0" size="140,40" alphatest="on"/> + <widget source="key_red" render="Label" position="0,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" transparent="1"/> + <widget source="key_green" render="Label" position="140,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" transparent="1"/> + <widget source="key_yellow" render="Label" position="280,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#a08500" transparent="1"/> + <widget source="key_blue" render="Label" position="420,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#18188b" transparent="1"/> + <widget source="list" render="Listbox" position="5,50" size="550,280" zPosition="10" scrollbarMode="showOnDemand"> + <convert type="TemplatedMultiContent"> + <!-- device, description, devicepng, divpng --> + {"template": [ + MultiContentEntryPixmapAlphaTest(pos = (2, 8), size = (54, 54), png = 2), # index 3 is the interface pixmap + MultiContentEntryText(pos = (65, 6), size = (450, 54), font=0, flags = RT_HALIGN_LEFT|RT_VALIGN_CENTER|RT_WRAP, text = 1), # index 1 is the interfacename + ], + "fonts": [gFont("Regular", 28),gFont("Regular", 20)], + "itemHeight": 70 + } + </convert> + </widget> + <ePixmap pixmap="skin_default/div-h.png" position="0,340" zPosition="1" size="560,2"/> + <widget source="introduction" render="Label" position="0,350" size="560,50" zPosition="10" font="Regular;21" halign="center" valign="center" backgroundColor="#25062748" transparent="1"/> + </screen>""" + + + def __init__(self, session): + Screen.__init__(self, session) + HelpableScreen.__init__(self) + + self.edittext = _("Press OK to edit the settings.") + + self["key_red"] = StaticText(_("Close")) + self["key_green"] = StaticText(_("Select")) + self["key_yellow"] = StaticText("") + self["key_blue"] = StaticText("") + self["introduction"] = StaticText(self.edittext) + + self.devices = [(iInputDevices.getDeviceName(x),x) for x in iInputDevices.getDeviceList()] + print "[InputDeviceSelection] found devices :->", len(self.devices),self.devices + + self["OkCancelActions"] = HelpableActionMap(self, "OkCancelActions", + { + "cancel": (self.close, _("Exit input device selection.")), + "ok": (self.okbuttonClick, _("Select input device.")), + }, -2) + + self["ColorActions"] = HelpableActionMap(self, "ColorActions", + { + "red": (self.close, _("Exit input device selection.")), + "green": (self.okbuttonClick, _("Select input device.")), + }, -2) + + self.currentIndex = 0 + self.list = [] + self["list"] = List(self.list) + self.updateList() + self.onLayoutFinish.append(self.layoutFinished) + self.onClose.append(self.cleanup) + + def layoutFinished(self): + self.setTitle(_("Select input device")) + + def cleanup(self): + self.currentIndex = 0 + + def buildInterfaceList(self, device, description, type, isinputdevice = True): + divpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/div-h.png")) + activepng = None + devicepng = None + enabled = iInputDevices.getDeviceAttribute(device, 'enabled') + + if type == 'remote': + if config.misc.rcused.value == 0: + if enabled: + devicepng = LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/icons/input_rcnew-configured.png")) + else: + devicepng = LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/icons/input_rcnew.png")) + else: + if enabled: + devicepng = LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/icons/input_rcold-configured.png")) + else: + devicepng = LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/icons/input_rcold.png")) + elif type == 'keyboard': + if enabled: + devicepng = LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/icons/input_keyboard-configured.png")) + else: + devicepng = LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/icons/input_keyboard.png")) + elif type == 'mouse': + if enabled: + devicepng = LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/icons/input_mouse-configured.png")) + else: + devicepng = LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/icons/input_mouse.png")) + elif isinputdevice: + devicepng = LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/icons/input_rcnew.png")) + return ((device, description, devicepng, divpng)) + + def updateList(self): + self.list = [] + + if iRcTypeControl.multipleRcSupported(): + self.list.append(self.buildInterfaceList('rctype', _('Configure remote control type'), None, False)) + + for x in self.devices: + dev_type = iInputDevices.getDeviceAttribute(x[1], 'type') + self.list.append(self.buildInterfaceList(x[1],_(x[0]), dev_type)) + + self["list"].setList(self.list) + self["list"].setIndex(self.currentIndex) + + def okbuttonClick(self): + selection = self["list"].getCurrent() + self.currentIndex = self["list"].getIndex() + if selection is not None: + if selection[0] == 'rctype': + self.session.open(RemoteControlType) + else: + self.session.openWithCallback(self.DeviceSetupClosed, InputDeviceSetup, selection[0]) + + def DeviceSetupClosed(self, *ret): + self.updateList() + + +class InputDeviceSetup(Screen, ConfigListScreen): + + skin = """ + <screen name="InputDeviceSetup" position="center,center" size="560,440" title="Input device setup"> + <ePixmap pixmap="skin_default/buttons/red.png" position="0,0" size="140,40" alphatest="on" /> + <ePixmap pixmap="skin_default/buttons/green.png" position="140,0" size="140,40" alphatest="on" /> + <ePixmap pixmap="skin_default/buttons/yellow.png" position="280,0" size="140,40" alphatest="on" /> + <ePixmap pixmap="skin_default/buttons/blue.png" position="420,0" size="140,40" alphatest="on" /> + <widget source="key_red" render="Label" position="0,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" transparent="1" /> + <widget source="key_green" render="Label" position="140,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" transparent="1" /> + <widget source="key_yellow" render="Label" position="280,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#a08500" transparent="1" /> + <widget source="key_blue" render="Label" position="420,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#18188b" transparent="1" /> + <widget name="config" position="5,50" size="550,350" scrollbarMode="showOnDemand" /> + <ePixmap pixmap="skin_default/div-h.png" position="0,400" zPosition="1" size="560,2" /> + <widget source="introduction" render="Label" position="5,410" size="550,30" zPosition="10" font="Regular;21" halign="center" valign="center" backgroundColor="#25062748" transparent="1" /> + </screen>""" + + def __init__(self, session, device): + Screen.__init__(self, session) + self.inputDevice = device + iInputDevices.currentDevice = self.inputDevice + self.onChangedEntry = [ ] + self.setup_title = _("Input device setup") + self.isStepSlider = None + self.enableEntry = None + self.repeatEntry = None + self.delayEntry = None + self.nameEntry = None + self.enableConfigEntry = None + + self.list = [ ] + ConfigListScreen.__init__(self, self.list, session = session, on_change = self.changedEntry) + + self["actions"] = ActionMap(["SetupActions", "MenuActions"], + { + "cancel": self.keyCancel, + "save": self.apply, + "menu": self.closeRecursive, + }, -2) + + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("OK")) + self["key_yellow"] = StaticText() + self["key_blue"] = StaticText() + self["introduction"] = StaticText() + + self.createSetup() + self.onLayoutFinish.append(self.layoutFinished) + self.onClose.append(self.cleanup) + + def layoutFinished(self): + self.setTitle(self.setup_title) + listWidth = self["config"].l.getItemSize().width() + # use 20% of list width for sliders + self["config"].l.setSeperation(int(listWidth*.8)) + + def cleanup(self): + iInputDevices.currentDevice = "" + + def createSetup(self): + self.list = [ ] + label = _("Change repeat and delay settings?") + cmd = "self.enableEntry = getConfigListEntry(label, config.inputDevices." + self.inputDevice + ".enabled)" + exec (cmd) + label = _("Interval between keys when repeating:") + cmd = "self.repeatEntry = getConfigListEntry(label, config.inputDevices." + self.inputDevice + ".repeat)" + exec (cmd) + label = _("Delay before key repeat starts:") + cmd = "self.delayEntry = getConfigListEntry(label, config.inputDevices." + self.inputDevice + ".delay)" + exec (cmd) + label = _("Devicename:") + cmd = "self.nameEntry = getConfigListEntry(label, config.inputDevices." + self.inputDevice + ".name)" + exec (cmd) + if self.enableEntry: + if isinstance(self.enableEntry[1], ConfigYesNo): + self.enableConfigEntry = self.enableEntry[1] + + self.list.append(self.enableEntry) + if self.enableConfigEntry: + if self.enableConfigEntry.value is True: + self.list.append(self.repeatEntry) + self.list.append(self.delayEntry) + else: + self.repeatEntry[1].setValue(self.repeatEntry[1].default) + self["config"].invalidate(self.repeatEntry) + self.delayEntry[1].setValue(self.delayEntry[1].default) + self["config"].invalidate(self.delayEntry) + self.nameEntry[1].setValue(self.nameEntry[1].default) + self["config"].invalidate(self.nameEntry) + + self["config"].list = self.list + self["config"].l.setList(self.list) + if not self.selectionChanged in self["config"].onSelectionChanged: + self["config"].onSelectionChanged.append(self.selectionChanged) + self.selectionChanged() + + def selectionChanged(self): + if self["config"].getCurrent() == self.enableEntry: + self["introduction"].setText(_("Current device: ") + str(iInputDevices.getDeviceAttribute(self.inputDevice, 'name')) ) + else: + self["introduction"].setText(_("Current value: ") + self.getCurrentValue() + _(" ms")) + + def newConfig(self): + current = self["config"].getCurrent() + if current: + if current == self.enableEntry: + self.createSetup() + + def keyLeft(self): + ConfigListScreen.keyLeft(self) + self.newConfig() + + def keyRight(self): + ConfigListScreen.keyRight(self) + self.newConfig() + + def confirm(self, confirmed): + if not confirmed: + print "not confirmed" + return + else: + self.nameEntry[1].setValue(iInputDevices.getDeviceAttribute(self.inputDevice, 'name')) + cmd = "config.inputDevices." + self.inputDevice + ".name.save()" + exec (cmd) + self.keySave() + + def apply(self): + self.session.openWithCallback(self.confirm, MessageBox, _("Use these input device settings?"), MessageBox.TYPE_YESNO, timeout=20, default=True) + + def cancelConfirm(self, result): + if not result: + return + for x in self["config"].list: + x[1].cancel() + self.close() + + def keyCancel(self): + if self["config"].isChanged(): + self.session.openWithCallback(self.cancelConfirm, MessageBox, _("Really close without saving settings?"), MessageBox.TYPE_YESNO, timeout=20, default=True) + else: + self.close() + # for summary: + def changedEntry(self): + for x in self.onChangedEntry: + x() + self.selectionChanged() + + def getCurrentEntry(self): + return self["config"].getCurrent()[0] + + def getCurrentValue(self): + return str(self["config"].getCurrent()[1].value) + + def createSummary(self): + from Screens.Setup import SetupSummary + return SetupSummary + + +class RemoteControlType(Screen, ConfigListScreen): + rcList = [ + ("0", _("Default")), + ("4", _("DMM normal")), ("6", _("DMM advanced")), + ("11", "et9x00/6500"), ("7", "et5000/6000"), ("13", "et4000"), ("9", "et8000/et10000"), + ("14", "xp1000"), + ("8", "VU+"), + ] + + defaultRcList = [ + ("et4000", 13), + ("et5000", 7), + ("et6000", 7), + ("et6500", 11), + ("et8000", 9), + ("et9000", 11), + ("et9200", 11), + ("et9500", 11), + ("et10000", 9), + ("xp1000", 14), + ] + + def __init__(self, session): + Screen.__init__(self, session) + self.skinName = ["RemoteControlType", "Setup" ] + + self["actions"] = ActionMap(["SetupActions"], + { + "cancel": self.keyCancel, + "save": self.keySave, + }, -1) + + self["key_green"] = StaticText(_("Save")) + self["key_red"] = StaticText(_("Cancel")) + + self.list = [] + ConfigListScreen.__init__(self, self.list, session = self.session) + + rctype = config.plugins.remotecontroltype.rctype.value + self.rctype = ConfigSelection(choices = self.rcList, default = str(rctype)) + self.list.append(getConfigListEntry(_("Remote control type"), self.rctype)) + self["config"].list = self.list + + self.defaultRcType = None + self.getDefaultRcType() + + def getDefaultRcType(self): + data = iRcTypeControl.getBoxType() + for x in self.defaultRcList: + if x[0] in data: + self.defaultRcType = x[1] + break + + def setDefaultRcType(self): + iRcTypeControl.writeRcType(self.defaultRcType) + + def keySave(self): + if config.plugins.remotecontroltype.rctype.value == int(self.rctype.value): + self.close() + else: + self.setNewSetting() + self.session.openWithCallback(self.keySaveCallback, MessageBox, _("Is this setting ok?"), MessageBox.TYPE_YESNO, timeout=20, default=True, timeout_default=False) + + def keySaveCallback(self, answer): + if answer is False: + self.restoreOldSetting() + else: + config.plugins.remotecontroltype.rctype.value = int(self.rctype.value) + config.plugins.remotecontroltype.save() + self.close() + + def restoreOldSetting(self): + if config.plugins.remotecontroltype.rctype.value == 0: + self.setDefaultRcType() + else: + iRcTypeControl.writeRcType(config.plugins.remotecontroltype.rctype.value) + + def setNewSetting(self): + if int(self.rctype.value) == 0: + self.setDefaultRcType() + else: + iRcTypeControl.writeRcType(int(self.rctype.value)) + + def keyCancel(self): + self.restoreOldSetting() + self.close() diff --git a/lib/python/Screens/InstallWizard.py b/lib/python/Screens/InstallWizard.py new file mode 100644 index 0000000..a922624 --- /dev/null +++ b/lib/python/Screens/InstallWizard.py @@ -0,0 +1,216 @@ +from Screens.Screen import Screen +from Components.ConfigList import ConfigListScreen, ConfigList +from Components.ActionMap import ActionMap +from Components.Sources.StaticText import StaticText +from Components.config import config, ConfigSubsection, ConfigBoolean, getConfigListEntry, ConfigSelection, ConfigYesNo, ConfigIP +from Components.Network import iNetwork +from Components.Ipkg import IpkgComponent +from enigma import eDVBDB + +config.misc.installwizard = ConfigSubsection() +config.misc.installwizard.hasnetwork = ConfigBoolean(default = False) +config.misc.installwizard.ipkgloaded = ConfigBoolean(default = False) +config.misc.installwizard.channellistdownloaded = ConfigBoolean(default = False) + + +class InstallWizard(Screen, ConfigListScreen): + + STATE_UPDATE = 0 + STATE_CHOISE_CHANNELLIST = 1 + STATE_CHOISE_SOFTCAM = 2 + STATE_CHOISE_PICONS = 3 + STATE_CHOISE_TDT = 4 + STATE_CHOISE_EPG = 5 + STATE_CHOISE_CACHE = 6 + + def __init__(self, session, args = None): + Screen.__init__(self, session) + + self.index = args + self.list = [] + ConfigListScreen.__init__(self, self.list) + + if self.index == self.STATE_UPDATE: + config.misc.installwizard.hasnetwork.value = False + config.misc.installwizard.ipkgloaded.value = False + modes = {0: " "} + self.enabled = ConfigSelection(choices = modes, default = 0) + self.adapters = [(iNetwork.getFriendlyAdapterName(x),x) for x in iNetwork.getAdapterList()] + is_found = False + for x in self.adapters: + if x[1] == 'eth0': + if iNetwork.getAdapterAttribute(x[1], 'up'): + self.ipConfigEntry = ConfigIP(default = iNetwork.getAdapterAttribute(x[1], "ip")) + iNetwork.checkNetworkState(self.checkNetworkCB) + if_found = True + else: + iNetwork.restartNetwork(self.checkNetworkLinkCB) + break + if is_found is False: + self.createMenu() + elif self.index == self.STATE_CHOISE_CHANNELLIST: + self.enabled = ConfigYesNo(default = True) + modes = {"19e": "Astra 1", "23e": "Astra 3", "19e-23e": "Astra 1 Astra 3", "19e-23e-28e": "Astra 1 Astra 2 Astra 3", "13e-19e-23e-28e": "Astra 1 Astra 2 Astra 3 Hotbird"} + self.channellist_type = ConfigSelection(choices = modes, default = "19e") + self.createMenu() + + elif self.index == self.STATE_CHOISE_PICONS: + self.enabled = ConfigYesNo(default = True) + modes = {"19e": "Astra 19e", "23e": "Astra 3", "19e-23e": "Astra 1 Astra 3", "19e-23e-28e": "Astra 1 Astra 2 Astra 3", "13e-19e-23e-28e": "Astra 1 Astra 2 Astra 3 Hotbird"} + self.picons_type = ConfigSelection(choices = modes, default = "19e") + self.createMenu() + + elif self.index == self.STATE_CHOISE_EPG: + self.enabled = ConfigYesNo(default = True) + modes = {"xmltvimport": "Xmltvimport", "crossepg": "CrossEPG"} + self.epg_type = ConfigSelection(choices = modes, default = "xmltvimport") + self.createMenu() + + elif self.index == self.STATE_CHOISE_TDT: + self.enabled = ConfigYesNo(default = True) + modes = {"siano": "Siano", "Volar Black": "Hauppauge"} + self.tdt_type = ConfigSelection(choices = modes, default = "siano") + self.createMenu() + + elif self.index == self.STATE_CHOISE_SOFTCAM: + self.enabled = ConfigYesNo(default = True) + modes = {"cccam": "CCcam", "oscam": "Oscam"} + self.softcam_type = ConfigSelection(choices = modes, default = "cccam") + self.createMenu() + + elif self.index == self.STATE_CHOISE_CACHE: + self.enabled = ConfigYesNo(default = True) + modes = {"multics": "MultiCS"} + self.cache_type = ConfigSelection(choices = modes, default = "multics") + self.createMenu() + + def checkNetworkCB(self, data): + if data < 3: + config.misc.installwizard.hasnetwork.value = True + self.createMenu() + + def checkNetworkLinkCB(self, retval): + if retval: + iNetwork.checkNetworkState(self.checkNetworkCB) + else: + self.createMenu() + + def createMenu(self): + try: + test = self.index + except: + return + self.list = [] + if self.index == self.STATE_UPDATE: + if config.misc.installwizard.hasnetwork.value: + self.list.append(getConfigListEntry(_("Your internet connection is working (ip: %s)") % (self.ipConfigEntry.getText()), self.enabled)) + else: + self.list.append(getConfigListEntry(_("Your receiver does not have an internet connection"), self.enabled)) + elif self.index == self.STATE_CHOISE_CHANNELLIST: + self.list.append(getConfigListEntry(_("Install channel list"), self.enabled)) + if self.enabled.value: + self.list.append(getConfigListEntry(_("Channel list type"), self.channellist_type)) + + elif self.index == self.STATE_CHOISE_PICONS: + self.list.append(getConfigListEntry(_("Install picons"), self.enabled)) + if self.enabled.value: + self.list.append(getConfigListEntry(_("Picons list type"), self.picons_type)) +# self["config"].list = self.list +# self["config"].l.setList(self.list) + + elif self.index == self.STATE_CHOISE_TDT: + self.list.append(getConfigListEntry(_("Install usb tdt "), self.enabled)) + if self.enabled.value: + self.list.append(getConfigListEntry(_("Tdt list type"), self.tdt_type)) + + elif self.index == self.STATE_CHOISE_EPG: + self.list.append(getConfigListEntry(_("Install epg manager"), self.enabled)) + if self.enabled.value: + self.list.append(getConfigListEntry(_("Epg manager type"), self.epg_type)) + + elif self.index == self.STATE_CHOISE_SOFTCAM: + self.list.append(getConfigListEntry(_("Install softcam"), self.enabled)) + if self.enabled.value: + self.list.append(getConfigListEntry(_("Softcam type"), self.softcam_type)) + + elif self.index == self.STATE_CHOISE_CACHE: + self.list.append(getConfigListEntry(_("Install cache server"), self.enabled)) + if self.enabled.value: + self.list.append(getConfigListEntry(_("Cache Server type"), self.cache_type)) + + self["config"].list = self.list + self["config"].l.setList(self.list) + + def keyLeft(self): + if self.index == 0: + return + ConfigListScreen.keyLeft(self) + self.createMenu() + + def keyRight(self): + if self.index == 0: + return + ConfigListScreen.keyRight(self) + self.createMenu() + + def run(self): + if self.index == self.STATE_UPDATE: + if config.misc.installwizard.hasnetwork.value: + self.session.open(InstallWizardIpkgUpdater, self.index, _('Please wait (updating packages)'), IpkgComponent.CMD_UPDATE) + elif self.index == self.STATE_CHOISE_CHANNELLIST and self.enabled.value: + self.session.open(InstallWizardIpkgUpdater, self.index, _('Please wait (downloading channel list)'), IpkgComponent.CMD_REMOVE, {'package': 'enigma2-plugin-settings-sfteam-' + self.channellist_type.value}) + + elif self.index == self.STATE_CHOISE_PICONS and self.enabled.value: + self.session.open(InstallWizardIpkgUpdater, self.index, _('Please wait (downloading picons)'), IpkgComponent.CMD_INSTALL, {'package': 'enigma2-plugin-picons-sfteam-' + self.picons_type.value}) + + elif self.index == self.STATE_CHOISE_TDT and self.enabled.value: + self.session.open(InstallWizardIpkgUpdater, self.index, _('Please wait (downloading driver)'), IpkgComponent.CMD_INSTALL, {'package': 'enigma2-plugin-drivers-dvb-usb-' + self.tdt_type.value}) + + elif self.index == self.STATE_CHOISE_EPG and self.enabled.value: + self.session.open(InstallWizardIpkgUpdater, self.index, _('Please wait (downloading epg manager)'), IpkgComponent.CMD_INSTALL, {'package': 'enigma2-plugin-extensions-' + self.epg_type.value}) + + elif self.index == self.STATE_CHOISE_SOFTCAM and self.enabled.value: + self.session.open(InstallWizardIpkgUpdater, self.index, _('Please wait (downloading softcam)'), IpkgComponent.CMD_INSTALL, {'package': 'enigma2-plugin-softcams-sfteam-' + self.softcam_type.value}) + + elif self.index == self.STATE_CHOISE_CACHE and self.enabled.value: + self.session.open(InstallWizardIpkgUpdater, self.index, _('Please wait (downloading cache server)'), IpkgComponent.CMD_INSTALL, {'package': 'enigma2-plugin-cache-sfteam-' + self.cache_type.value}) + return + +class InstallWizardIpkgUpdater(Screen): + skin = """ + <screen position="c-300,c-25" size="600,50" title=" "> + <widget source="statusbar" render="Label" position="10,5" zPosition="10" size="e-10,30" halign="center" valign="center" font="Regular;22" transparent="1" shadowColor="black" shadowOffset="-1,-1" /> + </screen>""" + + def __init__(self, session, index, info, cmd, pkg = None): + self.skin = InstallWizardIpkgUpdater.skin + Screen.__init__(self, session) + + self["statusbar"] = StaticText(info) + + self.pkg = pkg + self.index = index + self.state = 0 + + self.ipkg = IpkgComponent() + self.ipkg.addCallback(self.ipkgCallback) + + if self.index == InstallWizard.STATE_CHOISE_CHANNELLIST: + self.ipkg.startCmd(cmd, {'package': 'enigma2-plugin-settings-*'}) + else: + self.ipkg.startCmd(cmd, pkg) + + def ipkgCallback(self, event, param): + if event == IpkgComponent.EVENT_DONE: + if self.index == InstallWizard.STATE_UPDATE: + config.misc.installwizard.ipkgloaded.value = True + elif self.index == InstallWizard.STATE_CHOISE_CHANNELLIST: + if self.state == 0: + self.ipkg.startCmd(IpkgComponent.CMD_INSTALL, self.pkg) + self.state = 1 + return + else: + config.misc.installwizard.channellistdownloaded.value = True + eDVBDB.getInstance().reloadBouquets() + eDVBDB.getInstance().reloadServicelist() + self.close() diff --git a/lib/python/Screens/Ipkg.py b/lib/python/Screens/Ipkg.py new file mode 100644 index 0000000..2900d53 --- /dev/null +++ b/lib/python/Screens/Ipkg.py @@ -0,0 +1,123 @@ +from Components.ActionMap import ActionMap +from Components.Ipkg import IpkgComponent +from Components.Label import Label +from Components.Slider import Slider +from Screens.Screen import Screen +from Screens.MessageBox import MessageBox +from enigma import eTimer + +class Ipkg(Screen): + def __init__(self, session, cmdList = []): + Screen.__init__(self, session) + + self.cmdList = cmdList + + self.sliderPackages = {} + + self.slider = Slider(0, len(cmdList)) + self["slider"] = self.slider + self.activityslider = Slider(0, 100) + self["activityslider"] = self.activityslider + self.status = Label(_("Preparing... Please wait")) + self["status"] = self.status + self.package = Label() + self["package"] = self.package + + self.packages = 0 + self.error = 0 + self.processed_packages = [] + + self.activity = 0 + self.activityTimer = eTimer() + self.activityTimer.callback.append(self.doActivityTimer) + #self.activityTimer.start(100, False) + + self.ipkg = IpkgComponent() + self.ipkg.addCallback(self.ipkgCallback) + + self.runningCmd = None + self.runNextCmd() + + self["actions"] = ActionMap(["WizardActions"], + { + "ok": self.exit, + "back": self.exit + }, -1) + + def runNextCmd(self): + if self.runningCmd is None: + self.runningCmd = 0 + else: + self.runningCmd += 1 + print len(self.cmdList), self.runningCmd + if len(self.cmdList) - 1 < self.runningCmd: + self.activityslider.setValue(0) + self.slider.setValue(len(self.cmdList)) + + self.package.setText("") + self.status.setText(ngettext("Done - Installed, upgraded or removed %d package (%s)", "Done - Installed, upgraded or removed %d packages (%s)", self.packages) % (self.packages, ngettext("with %d error", "with %d errors", self.error) % self.error)) + return False + else: + cmd = self.cmdList[self.runningCmd] + self.slider.setValue(self.runningCmd) + self.ipkg.startCmd(cmd[0], args = cmd[1]) + self.startActivityTimer() + + def doActivityTimer(self): + if not self.ipkg.isRunning(): + self.stopActivityTimer() + else: + self.activity += 1 + if self.activity == 100: + self.activity = 0 + self.activityslider.setValue(self.activity) + + def startActivityTimer(self): + self.activityTimer.start(100, False) + + def stopActivityTimer(self): + self.activityTimer.stop() + + def ipkgCallback(self, event, param): + if event == IpkgComponent.EVENT_DOWNLOAD: + self.status.setText(_("Downloading")) + elif event == IpkgComponent.EVENT_UPGRADE: + if self.sliderPackages.has_key(param): + self.slider.setValue(self.sliderPackages[param]) + self.package.setText(param) + self.status.setText(_("Upgrading")) + if not param in self.processed_packages: + self.processed_packages.append(param) + self.packages += 1 + elif event == IpkgComponent.EVENT_INSTALL: + self.package.setText(param) + self.status.setText(_("Installing")) + if not param in self.processed_packages: + self.processed_packages.append(param) + self.packages += 1 + elif event == IpkgComponent.EVENT_REMOVE: + self.package.setText(param) + self.status.setText(_("Removing")) + if not param in self.processed_packages: + self.processed_packages.append(param) + self.packages += 1 + elif event == IpkgComponent.EVENT_CONFIGURING: + self.package.setText(param) + self.status.setText(_("Configuring")) + elif event == IpkgComponent.EVENT_ERROR: + self.error += 1 + elif event == IpkgComponent.EVENT_DONE: + self.runNextCmd() + elif event == IpkgComponent.EVENT_MODIFIED: + self.session.openWithCallback( + self.modificationCallback, + MessageBox, + _("A configuration file (%s) was modified since Installation.\nDo you want to keep your version?") % (param) + ) + + def modificationCallback(self, res): + self.ipkg.write(res and "N" or "Y") + + def exit(self): + if not self.ipkg.isRunning(): + self.close() diff --git a/lib/python/Screens/LanguageSelection.py b/lib/python/Screens/LanguageSelection.py new file mode 100644 index 0000000..019bc44 --- /dev/null +++ b/lib/python/Screens/LanguageSelection.py @@ -0,0 +1,99 @@ +import gettext +from Screen import Screen +from Components.ActionMap import ActionMap +from Components.Language import language +from Components.config import config +from Components.Sources.List import List +from Components.Label import Label +from Components.Pixmap import Pixmap +from Screens.InfoBar import InfoBar +from Screens.Rc import Rc +from Tools.Directories import resolveFilename, SCOPE_CURRENT_SKIN, SCOPE_LANGUAGE +from Tools.LoadPixmap import LoadPixmap +import enigma + +def LanguageEntryComponent(file, name, index): + png = LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "countries/" + index + ".png")) + if png == None: + png = LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "countries/" + file + ".png")) + if png == None: + png = LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "countries/missing.png")) + res = (index, name, png) + return res + +class LanguageSelection(Screen): + def __init__(self, session): + Screen.__init__(self, session) + + self.oldActiveLanguage = language.getActiveLanguage() + + self.list = [] + self["languages"] = List(self.list) + + self.updateList() + self.onLayoutFinish.append(self.selectActiveLanguage) + + self["actions"] = ActionMap(["OkCancelActions"], + { + "ok": self.save, + "cancel": self.cancel, + }, -1) + + def selectActiveLanguage(self): + self.setTitle(_("Language selection")) + pos = 0 + for pos, x in enumerate(self.list): + if x[0] == self.oldActiveLanguage: + self["languages"].index = pos + break + + def save(self): + self.commit(self.run()) + if InfoBar.instance and self.oldActiveLanguage != config.osd.language.value: + self.close(True) + else: + self.close() + + def cancel(self): + language.activateLanguage(self.oldActiveLanguage) + self.close() + + def run(self): + print "updating language..." + lang = self["languages"].getCurrent()[0] + if lang != config.osd.language.value: + config.osd.language.value = lang + config.osd.language.save() + return lang + + def commit(self, lang): + print "commit language" + language.activateLanguage(lang) + config.misc.languageselected.value = 0 + config.misc.languageselected.save() + + def updateList(self): + languageList = language.getLanguageList() + if not languageList: # no language available => display only english + list = [ LanguageEntryComponent("es", "Spanish", "es_ES") ] + else: + list = [ LanguageEntryComponent(file = x[1][2].lower(), name = x[1][0], index = x[0]) for x in languageList] + self.list = list + self["languages"].list = list + +class LanguageWizard(LanguageSelection, Rc): + def __init__(self, session): + LanguageSelection.__init__(self, session) + Rc.__init__(self) + self.onLayoutFinish.append(self.selectKeys) + self["wizard"] = Pixmap() + self["text"] = Label() + self.setText() + + def selectKeys(self): + self.clearSelectedKeys() + self.selectKey("UP") + self.selectKey("DOWN") + + def setText(self): + self["text"].setText(_("Please use the UP and DOWN keys to select your language. Afterwards press the OK button.")) diff --git a/lib/python/Screens/LocationBox.py b/lib/python/Screens/LocationBox.py new file mode 100644 index 0000000..051a4f5 --- /dev/null +++ b/lib/python/Screens/LocationBox.py @@ -0,0 +1,539 @@ +# +# Generic Screen to select a path/filename combination +# + +# GUI (Screens) +from Screens.Screen import Screen +from Screens.MessageBox import MessageBox +from Screens.InputBox import InputBox +from Screens.HelpMenu import HelpableScreen +from Screens.ChoiceBox import ChoiceBox + +# Generic +from Tools.BoundFunction import boundFunction +from Tools.Directories import * +from Components.config import config +import os + +# Quickselect +from Tools.NumericalTextInput import NumericalTextInput + +# GUI (Components) +from Components.ActionMap import NumberActionMap, HelpableActionMap +from Components.Label import Label +from Components.Pixmap import Pixmap +from Components.Button import Button +from Components.FileList import FileList +from Components.MenuList import MenuList + +# Timer +from enigma import eTimer + +defaultInhibitDirs = ["/bin", "/boot", "/dev", "/etc", "/lib", "/proc", "/sbin", "/sys", "/usr", "/var"] + +class LocationBox(Screen, NumericalTextInput, HelpableScreen): + """Simple Class similar to MessageBox / ChoiceBox but used to choose a folder/pathname combination""" + + skin = """<screen name="LocationBox" position="100,75" size="540,460" > + <widget name="text" position="0,2" size="540,22" font="Regular;22" /> + <widget name="target" position="0,23" size="540,22" valign="center" font="Regular;22" /> + <widget name="filelist" position="0,55" zPosition="1" size="540,210" scrollbarMode="showOnDemand" selectionDisabled="1" /> + <widget name="textbook" position="0,272" size="540,22" font="Regular;22" /> + <widget name="booklist" position="5,302" zPosition="2" size="535,100" scrollbarMode="showOnDemand" /> + <widget name="red" position="0,415" zPosition="1" size="135,40" pixmap="skin_default/buttons/red.png" transparent="1" alphatest="on" /> + <widget name="key_red" position="0,415" zPosition="2" size="135,40" halign="center" valign="center" font="Regular;22" transparent="1" shadowColor="black" shadowOffset="-1,-1" /> + <widget name="green" position="135,415" zPosition="1" size="135,40" pixmap="skin_default/buttons/green.png" transparent="1" alphatest="on" /> + <widget name="key_green" position="135,415" zPosition="2" size="135,40" halign="center" valign="center" font="Regular;22" transparent="1" shadowColor="black" shadowOffset="-1,-1" /> + <widget name="yellow" position="270,415" zPosition="1" size="135,40" pixmap="skin_default/buttons/yellow.png" transparent="1" alphatest="on" /> + <widget name="key_yellow" position="270,415" zPosition="2" size="135,40" halign="center" valign="center" font="Regular;22" transparent="1" shadowColor="black" shadowOffset="-1,-1" /> + <widget name="blue" position="405,415" zPosition="1" size="135,40" pixmap="skin_default/buttons/blue.png" transparent="1" alphatest="on" /> + <widget name="key_blue" position="405,415" zPosition="2" size="135,40" halign="center" valign="center" font="Regular;22" transparent="1" shadowColor="black" shadowOffset="-1,-1" /> + </screen>""" + + def __init__(self, session, text = "", filename = "", currDir = None, bookmarks = None, userMode = False, windowTitle = _("Select location"), minFree = None, autoAdd = False, editDir = False, inhibitDirs = [], inhibitMounts = []): + # Init parents + Screen.__init__(self, session) + NumericalTextInput.__init__(self, handleTimeout = False) + HelpableScreen.__init__(self) + + # Set useable chars + self.setUseableChars(u'1234567890abcdefghijklmnopqrstuvwxyz') + + # Quickselect Timer + self.qs_timer = eTimer() + self.qs_timer.callback.append(self.timeout) + self.qs_timer_type = 0 + + # Initialize Quickselect + self.curr_pos = -1 + self.quickselect = "" + + # Set Text + self["text"] = Label(text) + self["textbook"] = Label(_("Bookmarks")) + + # Save parameters locally + self.text = text + self.filename = filename + self.minFree = minFree + self.realBookmarks = bookmarks + self.bookmarks = bookmarks and bookmarks.value[:] or [] + self.userMode = userMode + self.autoAdd = autoAdd + self.editDir = editDir + self.inhibitDirs = inhibitDirs + + # Initialize FileList + self["filelist"] = FileList(currDir, showDirectories = True, showFiles = False, inhibitMounts = inhibitMounts, inhibitDirs = inhibitDirs) + + # Initialize BookList + self["booklist"] = MenuList(self.bookmarks) + + # Buttons + self["key_green"] = Button(_("OK")) + self["key_yellow"] = Button(_("Rename")) + self["key_blue"] = Button(_("Remove bookmark")) + self["key_red"] = Button(_("Cancel")) + + # Background for Buttons + self["green"] = Pixmap() + self["yellow"] = Pixmap() + self["blue"] = Pixmap() + self["red"] = Pixmap() + + # Initialize Target + self["target"] = Label() + + if self.userMode: + self.usermodeOn() + + # Custom Action Handler + class LocationBoxActionMap(HelpableActionMap): + def __init__(self, parent, context, actions = { }, prio=0): + HelpableActionMap.__init__(self, parent, context, actions, prio) + self.box = parent + + def action(self, contexts, action): + # Reset Quickselect + self.box.timeout(force = True) + + return HelpableActionMap.action(self, contexts, action) + + # Actions that will reset quickselect + self["WizardActions"] = LocationBoxActionMap(self, "WizardActions", + { + "left": self.left, + "right": self.right, + "up": self.up, + "down": self.down, + "ok": (self.ok, _("select")), + "back": (self.cancel, _("Cancel")), + }, -2) + + self["ColorActions"] = LocationBoxActionMap(self, "ColorActions", + { + "red": self.cancel, + "green": self.select, + "yellow": self.changeName, + "blue": self.addRemoveBookmark, + }, -2) + + self["EPGSelectActions"] = LocationBoxActionMap(self, "EPGSelectActions", + { + "prevBouquet": (self.switchToBookList, _("switch to bookmarks")), + "nextBouquet": (self.switchToFileList, _("switch to filelist")), + }, -2) + + self["MenuActions"] = LocationBoxActionMap(self, "MenuActions", + { + "menu": (self.showMenu, _("menu")), + }, -2) + + # Actions used by quickselect + self["NumberActions"] = NumberActionMap(["NumberActions"], + { + "1": self.keyNumberGlobal, + "2": self.keyNumberGlobal, + "3": self.keyNumberGlobal, + "4": self.keyNumberGlobal, + "5": self.keyNumberGlobal, + "6": self.keyNumberGlobal, + "7": self.keyNumberGlobal, + "8": self.keyNumberGlobal, + "9": self.keyNumberGlobal, + "0": self.keyNumberGlobal + }) + + # Run some functions when shown + self.onShown.extend(( + boundFunction(self.setTitle, windowTitle), + self.updateTarget, + self.showHideRename, + )) + + self.onLayoutFinish.append(self.switchToFileListOnStart) + + # Make sure we remove our callback + self.onClose.append(self.disableTimer) + + def switchToFileListOnStart(self): + if self.realBookmarks and self.realBookmarks.value: + self.currList = "booklist" + currDir = self["filelist"].current_directory + if currDir in self.bookmarks: + self["booklist"].moveToIndex(self.bookmarks.index(currDir)) + else: + self.switchToFileList() + + def disableTimer(self): + self.qs_timer.callback.remove(self.timeout) + + def showHideRename(self): + # Don't allow renaming when filename is empty + if self.filename == "": + self["key_yellow"].hide() + + def switchToFileList(self): + if not self.userMode: + self.currList = "filelist" + self["filelist"].selectionEnabled(1) + self["booklist"].selectionEnabled(0) + self["key_blue"].text = _("Add bookmark") + self.updateTarget() + + def switchToBookList(self): + self.currList = "booklist" + self["filelist"].selectionEnabled(0) + self["booklist"].selectionEnabled(1) + self["key_blue"].text = _("Remove bookmark") + self.updateTarget() + + def addRemoveBookmark(self): + if self.currList == "filelist": + # add bookmark + folder = self["filelist"].getSelection()[0] + if folder is not None and not folder in self.bookmarks: + self.bookmarks.append(folder) + self.bookmarks.sort() + self["booklist"].setList(self.bookmarks) + else: + # remove bookmark + if not self.userMode: + name = self["booklist"].getCurrent() + self.session.openWithCallback( + boundFunction(self.removeBookmark, name), + MessageBox, + _("Do you really want to remove your bookmark of %s?") % (name), + ) + + def removeBookmark(self, name, ret): + if not ret: + return + if name in self.bookmarks: + self.bookmarks.remove(name) + self["booklist"].setList(self.bookmarks) + + def createDir(self): + if self["filelist"].current_directory != None: + self.session.openWithCallback( + self.createDirCallback, + InputBox, + title = _("Please enter name of the new directory"), + text = "" + ) + + def createDirCallback(self, res): + if res: + path = os.path.join(self["filelist"].current_directory, res) + if not pathExists(path): + if not createDir(path): + self.session.open( + MessageBox, + _("Creating directory %s failed.") % (path), + type = MessageBox.TYPE_ERROR, + timeout = 5 + ) + self["filelist"].refresh() + else: + self.session.open( + MessageBox, + _("The path %s already exists.") % (path), + type = MessageBox.TYPE_ERROR, + timeout = 5 + ) + + def removeDir(self): + sel = self["filelist"].getSelection() + if sel and pathExists(sel[0]): + self.session.openWithCallback( + boundFunction(self.removeDirCallback, sel[0]), + MessageBox, + _("Do you really want to remove directory %s from the disk?") % (sel[0]), + type = MessageBox.TYPE_YESNO + ) + else: + self.session.open( + MessageBox, + _("Invalid directory selected: %s") % (sel[0]), + type = MessageBox.TYPE_ERROR, + timeout = 5 + ) + + def removeDirCallback(self, name, res): + if res: + if not removeDir(name): + self.session.open( + MessageBox, + _("Removing directory %s failed. (Maybe not empty.)") % (name), + type = MessageBox.TYPE_ERROR, + timeout = 5 + ) + else: + self["filelist"].refresh() + self.removeBookmark(name, True) + val = self.realBookmarks and self.realBookmarks.value + if val and name in val: + val.remove(name) + self.realBookmarks.value = val + self.realBookmarks.save() + + def up(self): + self[self.currList].up() + self.updateTarget() + + def down(self): + self[self.currList].down() + self.updateTarget() + + def left(self): + self[self.currList].pageUp() + self.updateTarget() + + def right(self): + self[self.currList].pageDown() + self.updateTarget() + + def ok(self): + if self.currList == "filelist": + if self["filelist"].canDescent(): + self["filelist"].descent() + self.updateTarget() + else: + self.select() + + def cancel(self): + self.close(None) + + def getPreferredFolder(self): + if self.currList == "filelist": + # XXX: We might want to change this for parent folder... + return self["filelist"].getSelection()[0] + else: + return self["booklist"].getCurrent() + + def selectConfirmed(self, ret): + if ret: + ret = ''.join((self.getPreferredFolder(), self.filename)) + if self.realBookmarks: + if self.autoAdd and not ret in self.bookmarks: + self.bookmarks.append(self.getPreferredFolder()) + self.bookmarks.sort() + + if self.bookmarks != self.realBookmarks.value: + self.realBookmarks.value = self.bookmarks + self.realBookmarks.save() + self.close(ret) + + def select(self): + currentFolder = self.getPreferredFolder() + # Do nothing unless current Directory is valid + if currentFolder is not None: + # Check if we need to have a minimum of free Space available + if self.minFree is not None: + # Try to read fs stats + try: + s = os.statvfs(currentFolder) + if (s.f_bavail * s.f_bsize) / 1000000 > self.minFree: + # Automatically confirm if we have enough free disk Space available + return self.selectConfirmed(True) + except OSError: + pass + + # Ask User if he really wants to select this folder + self.session.openWithCallback( + self.selectConfirmed, + MessageBox, + _("There might not be enough Space on the selected Partition.\nDo you really want to continue?"), + type = MessageBox.TYPE_YESNO + ) + # No minimum free Space means we can safely close + else: + self.selectConfirmed(True) + + def changeName(self): + if self.filename != "": + # TODO: Add Information that changing extension is bad? disallow? + self.session.openWithCallback( + self.nameChanged, + InputBox, + title = _("Please enter a new filename"), + text = self.filename + ) + + def nameChanged(self, res): + if res is not None: + if len(res): + self.filename = res + self.updateTarget() + else: + self.session.open( + MessageBox, + _("An empty filename is illegal."), + type = MessageBox.TYPE_ERROR, + timeout = 5 + ) + + def updateTarget(self): + # Write Combination of Folder & Filename when Folder is valid + currFolder = self.getPreferredFolder() + if currFolder is not None: + self["target"].setText(''.join((currFolder, self.filename))) + # Display a Warning otherwise + else: + self["target"].setText(_("Invalid location")) + + def showMenu(self): + if not self.userMode and self.realBookmarks: + if self.currList == "filelist": + menu = [ + (_("switch to bookmarks"), self.switchToBookList), + (_("add bookmark"), self.addRemoveBookmark) + ] + if self.editDir: + menu.extend(( + (_("create directory"), self.createDir), + (_("remove directory"), self.removeDir) + )) + else: + menu = ( + (_("switch to filelist"), self.switchToFileList), + (_("remove bookmark"), self.addRemoveBookmark) + ) + + self.session.openWithCallback( + self.menuCallback, + ChoiceBox, + title = "", + list = menu + ) + + def menuCallback(self, choice): + if choice: + choice[1]() + + def usermodeOn(self): + self.switchToBookList() + self["filelist"].hide() + self["key_blue"].hide() + + def keyNumberGlobal(self, number): + # Cancel Timeout + self.qs_timer.stop() + + # See if another key was pressed before + if number != self.lastKey: + # Reset lastKey again so NumericalTextInput triggers its keychange + self.nextKey() + + # Try to select what was typed + self.selectByStart() + + # Increment position + self.curr_pos += 1 + + # Get char and append to text + char = self.getKey(number) + self.quickselect = self.quickselect[:self.curr_pos] + unicode(char) + + # Start Timeout + self.qs_timer_type = 0 + self.qs_timer.start(1000, 1) + + def selectByStart(self): + # Don't do anything on initial call + if not self.quickselect: + return + + # Don't select if no dir + if self["filelist"].getCurrentDirectory(): + # TODO: implement proper method in Components.FileList + files = self["filelist"].getFileList() + + # Initialize index + idx = 0 + + # We select by filename which is absolute + lookfor = self["filelist"].getCurrentDirectory() + self.quickselect + + # Select file starting with generated text + for file in files: + if file[0][0] and file[0][0].lower().startswith(lookfor): + self["filelist"].instance.moveSelectionTo(idx) + break + idx += 1 + + def timeout(self, force = False): + # Timeout Key + if not force and self.qs_timer_type == 0: + # Try to select what was typed + self.selectByStart() + + # Reset Key + self.lastKey = -1 + + # Change type + self.qs_timer_type = 1 + + # Start timeout again + self.qs_timer.start(1000, 1) + # Timeout Quickselect + else: + # Eventually stop Timer + self.qs_timer.stop() + + # Invalidate + self.lastKey = -1 + self.curr_pos = -1 + self.quickselect = "" + + def __repr__(self): + return str(type(self)) + "(" + self.text + ")" + +def MovieLocationBox(session, text, dir, minFree = None): + return LocationBox(session, text = text, currDir = dir, bookmarks = config.movielist.videodirs, autoAdd = True, editDir = True, inhibitDirs = defaultInhibitDirs, minFree = minFree) + +class TimeshiftLocationBox(LocationBox): + def __init__(self, session): + LocationBox.__init__( + self, + session, + text = _("Where to save temporary timeshift recordings?"), + currDir = config.usage.timeshift_path.value, + bookmarks = config.usage.allowed_timeshift_paths, + autoAdd = True, + editDir = True, + inhibitDirs = defaultInhibitDirs, + minFree = 1024 # the same requirement is hardcoded in servicedvb.cpp + ) + self.skinName = "LocationBox" + + def cancel(self): + config.usage.timeshift_path.cancel() + LocationBox.cancel(self) + + def selectConfirmed(self, ret): + if ret: + config.usage.timeshift_path.value = self.getPreferredFolder() + config.usage.timeshift_path.save() + LocationBox.selectConfirmed(self, ret) + diff --git a/lib/python/Screens/Makefile.am b/lib/python/Screens/Makefile.am new file mode 100644 index 0000000..ca546be --- /dev/null +++ b/lib/python/Screens/Makefile.am @@ -0,0 +1,19 @@ +installdir = $(pkglibdir)/python/Screens + +install_PYTHON = \ + AudioSelection.py ChannelSelection.py ClockDisplay.py ConfigMenu.py CopyFiles.py InfoBar.py \ + Menu.py MessageBox.py Screen.py ServiceScan.py TimerEdit.py \ + MovieSelection.py Setup.py About.py HarddiskSetup.py FixedMenu.py \ + Satconfig.py ScanSetup.py NetworkSetup.py Ci.py TimerEntry.py Volume.py \ + EpgSelection.py EventView.py Mute.py Standby.py ServiceInfo.py \ + InfoBarGenerics.py HelpMenu.py Wizard.py __init__.py \ + Dish.py LanguageSelection.py StartWizard.py PiPSetup.py \ + PluginBrowser.py MinuteInput.py Scart.py PVRState.py \ + Console.py InputBox.py ChoiceBox.py SimpleSummary.py \ + TimerSelection.py PictureInPicture.py TimeDateInput.py \ + SubtitleDisplay.py SubservicesQuickzap.py ParentalControlSetup.py NumericalTextInputHelpDialog.py \ + SleepTimerEdit.py Ipkg.py RdsDisplay.py Globals.py \ + SessionGlobals.py LocationBox.py WizardLanguage.py TaskView.py Rc.py VirtualKeyBoard.py \ + TextBox.py FactoryReset.py RecordPaths.py UnhandledKey.py ServiceStopScreen.py \ + InputDeviceSetup.py DVD.py SoftwareUpdate.py AutoDiseqc.py InstallWizard.py ScreenSaver.py + diff --git a/lib/python/Screens/Menu.py b/lib/python/Screens/Menu.py new file mode 100644 index 0000000..4fe9abc --- /dev/null +++ b/lib/python/Screens/Menu.py @@ -0,0 +1,249 @@ +from Screen import Screen +from Components.Sources.List import List +from Components.ActionMap import NumberActionMap +from Components.Sources.StaticText import StaticText +from Components.config import configfile +from Components.PluginComponent import plugins +from Components.config import config +from Components.SystemInfo import SystemInfo + +from Tools.BoundFunction import boundFunction +from Tools.Directories import resolveFilename, SCOPE_SKIN + +import xml.etree.cElementTree + +from Screens.Setup import Setup, getSetupTitle + +# read the menu +mdom = xml.etree.cElementTree.parse(resolveFilename(SCOPE_SKIN, 'menu.xml')) + +class MenuUpdater: + def __init__(self): + self.updatedMenuItems = {} + + def addMenuItem(self, id, pos, text, module, screen, weight): + if not self.updatedMenuAvailable(id): + self.updatedMenuItems[id] = [] + self.updatedMenuItems[id].append([text, pos, module, screen, weight]) + + def delMenuItem(self, id, pos, text, module, screen, weight): + self.updatedMenuItems[id].remove([text, pos, module, screen, weight]) + + def updatedMenuAvailable(self, id): + return self.updatedMenuItems.has_key(id) + + def getUpdatedMenu(self, id): + return self.updatedMenuItems[id] + +menuupdater = MenuUpdater() + +class MenuSummary(Screen): + pass + +class Menu(Screen): + ALLOW_SUSPEND = True + + def okbuttonClick(self): + print "okbuttonClick" + selection = self["menu"].getCurrent() + if selection is not None: + selection[1]() + + def execText(self, text): + exec text + + def runScreen(self, arg): + # arg[0] is the module (as string) + # arg[1] is Screen inside this module + # plus possible arguments, as + # string (as we want to reference + # stuff which is just imported) + # FIXME. somehow + if arg[0] != "": + exec "from " + arg[0] + " import *" + + self.openDialog(*eval(arg[1])) + + def nothing(self): #dummy + pass + + def openDialog(self, *dialog): # in every layer needed + self.session.openWithCallback(self.menuClosed, *dialog) + + def openSetup(self, dialog): + self.session.openWithCallback(self.menuClosed, Setup, dialog) + + def addMenu(self, destList, node): + requires = node.get("requires") + if requires: + if requires[0] == '!': + if SystemInfo.get(requires[1:], False): + return + elif not SystemInfo.get(requires, False): + return + MenuTitle = _(node.get("text", "??").encode("UTF-8")) + entryID = node.get("entryID", "undefined") + weight = node.get("weight", 50) + x = node.get("flushConfigOnClose") + if x: + a = boundFunction(self.session.openWithCallback, self.menuClosedWithConfigFlush, Menu, node) + else: + a = boundFunction(self.session.openWithCallback, self.menuClosed, Menu, node) + #TODO add check if !empty(node.childNodes) + destList.append((MenuTitle, a, entryID, weight)) + + def menuClosedWithConfigFlush(self, *res): + configfile.save() + self.menuClosed(*res) + + def menuClosed(self, *res): + if res and res[0]: + self.close(True) + + def addItem(self, destList, node): + requires = node.get("requires") + if requires: + if requires[0] == '!': + if SystemInfo.get(requires[1:], False): + return + elif not SystemInfo.get(requires, False): + return + configCondition = node.get("configcondition") + if configCondition and not eval(configCondition + ".value"): + return + item_text = node.get("text", "").encode("UTF-8") + entryID = node.get("entryID", "undefined") + weight = node.get("weight", 50) + for x in node: + if x.tag == 'screen': + module = x.get("module") + screen = x.get("screen") + + if screen is None: + screen = module + + print module, screen + if module: + module = "Screens." + module + else: + module = "" + + # check for arguments. they will be appended to the + # openDialog call + args = x.text or "" + screen += ", " + args + + destList.append((_(item_text or "??"), boundFunction(self.runScreen, (module, screen)), entryID, weight)) + return + elif x.tag == 'code': + destList.append((_(item_text or "??"), boundFunction(self.execText, x.text), entryID, weight)) + return + elif x.tag == 'setup': + id = x.get("id") + if item_text == "": + item_text = _(getSetupTitle(id)) + else: + item_text = _(item_text) + destList.append((item_text, boundFunction(self.openSetup, id), entryID, weight)) + return + destList.append((item_text, self.nothing, entryID, weight)) + + + def __init__(self, session, parent): + Screen.__init__(self, session) + + list = [] + + menuID = None + for x in parent: #walk through the actual nodelist + if not x.tag: + continue + if x.tag == 'item': + item_level = int(x.get("level", 0)) + if item_level <= config.usage.setup_level.index: + self.addItem(list, x) + count += 1 + elif x.tag == 'menu': + self.addMenu(list, x) + count += 1 + elif x.tag == "id": + menuID = x.get("val") + count = 0 + + if menuID is not None: + # menuupdater? + if menuupdater.updatedMenuAvailable(menuID): + for x in menuupdater.getUpdatedMenu(menuID): + if x[1] == count: + list.append((x[0], boundFunction(self.runScreen, (x[2], x[3] + ", ")), x[4])) + count += 1 + + if menuID is not None: + # plugins + for l in plugins.getPluginsForMenu(menuID): + # check if a plugin overrides an existing menu + plugin_menuid = l[2] + for x in list: + if x[2] == plugin_menuid: + list.remove(x) + break + list.append((l[0], boundFunction(l[1], self.session, close=self.close), l[2], l[3] or 50)) + + # for the skin: first try a menu_<menuID>, then Menu + self.skinName = [ ] + if menuID is not None: + self.skinName.append("menu_" + menuID) + self.skinName.append("Menu") + + # Sort by Weight + list.sort(key=lambda x: int(x[3])) + + self["menu"] = List(list) + + self["actions"] = NumberActionMap(["OkCancelActions", "MenuActions", "NumberActions"], + { + "ok": self.okbuttonClick, + "cancel": self.closeNonRecursive, + "menu": self.closeRecursive, + "1": self.keyNumberGlobal, + "2": self.keyNumberGlobal, + "3": self.keyNumberGlobal, + "4": self.keyNumberGlobal, + "5": self.keyNumberGlobal, + "6": self.keyNumberGlobal, + "7": self.keyNumberGlobal, + "8": self.keyNumberGlobal, + "9": self.keyNumberGlobal + }) + + a = parent.get("title", "").encode("UTF-8") or None + a = a and _(a) + if a is None: + a = _(parent.get("text", "").encode("UTF-8")) + self["title"] = StaticText(a) + self.menu_title = a + + def keyNumberGlobal(self, number): + print "menu keyNumber:", number + # Calculate index + number -= 1 + + if len(self["menu"].list) > number: + self["menu"].setIndex(number) + self.okbuttonClick() + + def closeNonRecursive(self): + self.close(False) + + def closeRecursive(self): + self.close(True) + + def createSummary(self): + return MenuSummary + +class MainMenu(Menu): + #add file load functions for the xml-file + + def __init__(self, *x): + self.skinName = "Menu" + Menu.__init__(self, *x) diff --git a/lib/python/Screens/MessageBox.py b/lib/python/Screens/MessageBox.py new file mode 100644 index 0000000..bfd510b --- /dev/null +++ b/lib/python/Screens/MessageBox.py @@ -0,0 +1,163 @@ +from Screen import Screen +from Components.ActionMap import ActionMap +from Components.Label import Label +from Components.Pixmap import Pixmap +from Components.Sources.StaticText import StaticText +from Components.MenuList import MenuList +from enigma import eTimer + +class MessageBox(Screen): + TYPE_YESNO = 0 + TYPE_INFO = 1 + TYPE_WARNING = 2 + TYPE_ERROR = 3 + + def __init__(self, session, text, type=TYPE_YESNO, timeout=-1, close_on_any_key=False, default=True, enable_input=True, msgBoxID=None, picon=None, simple=False, list=[], timeout_default=None): + self.type = type + Screen.__init__(self, session) + + if simple: + self.skinName="MessageBoxSimple" + + self.msgBoxID = msgBoxID + + self["text"] = Label(text) + self["Text"] = StaticText(text) + self["selectedChoice"] = StaticText() + + self.text = text + self.close_on_any_key = close_on_any_key + self.timeout_default = timeout_default + + self["ErrorPixmap"] = Pixmap() + self["QuestionPixmap"] = Pixmap() + self["InfoPixmap"] = Pixmap() + self.timerRunning = False + self.initTimeout(timeout) + + picon = picon or type + if picon != self.TYPE_ERROR: + self["ErrorPixmap"].hide() + if picon != self.TYPE_YESNO: + self["QuestionPixmap"].hide() + if picon != self.TYPE_INFO: + self["InfoPixmap"].hide() + + if type == self.TYPE_YESNO: + if list: + self.list = list + elif default == True: + self.list = [ (_("yes"), True), (_("no"), False) ] + else: + self.list = [ (_("no"), False), (_("yes"), True) ] + else: + self.list = [] + + self["list"] = MenuList(self.list) + if self.list: + self["selectedChoice"].setText(self.list[0][0]) + else: + self["list"].hide() + + if enable_input: + self["actions"] = ActionMap(["MsgBoxActions", "DirectionActions"], + { + "cancel": self.cancel, + "ok": self.ok, + "alwaysOK": self.alwaysOK, + "up": self.up, + "down": self.down, + "left": self.left, + "right": self.right, + "upRepeated": self.up, + "downRepeated": self.down, + "leftRepeated": self.left, + "rightRepeated": self.right + }, -1) + + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + self.setTitle(_(self.title)) + + def initTimeout(self, timeout): + self.timeout = timeout + if timeout > 0: + self.timer = eTimer() + self.timer.callback.append(self.timerTick) + self.onExecBegin.append(self.startTimer) + self.origTitle = None + if self.execing: + self.timerTick() + else: + self.onShown.append(self.__onShown) + self.timerRunning = True + else: + self.timerRunning = False + + def __onShown(self): + self.onShown.remove(self.__onShown) + self.timerTick() + + def startTimer(self): + self.timer.start(1000) + + def stopTimer(self): + if self.timerRunning: + del self.timer + self.onExecBegin.remove(self.startTimer) + self.setTitle(self.origTitle) + self.timerRunning = False + + def timerTick(self): + if self.execing: + self.timeout -= 1 + if self.origTitle is None: + self.origTitle = self.instance.getTitle() + self.setTitle(self.origTitle + " (" + str(self.timeout) + ")") + if self.timeout == 0: + self.timer.stop() + self.timerRunning = False + self.timeoutCallback() + + def timeoutCallback(self): + print "Timeout!" + if self.timeout_default is not None: + self.close(self.timeout_default) + else: + self.ok() + + def cancel(self): + self.close(False) + + def ok(self): + if self.list: + self.close(self["list"].getCurrent()[1]) + else: + self.close(True) + + def alwaysOK(self): + self.close(True) + + def up(self): + self.move(self["list"].instance.moveUp) + + def down(self): + self.move(self["list"].instance.moveDown) + + def left(self): + self.move(self["list"].instance.pageUp) + + def right(self): + self.move(self["list"].instance.pageDown) + + def move(self, direction): + if self.close_on_any_key: + self.close(True) + self["list"].instance.moveSelection(direction) + if self.list: + self["selectedChoice"].setText(self["list"].getCurrent()[0]) + self.stopTimer() + + def __repr__(self): + return str(type(self)) + "(" + self.text + ")" diff --git a/lib/python/Screens/MinuteInput.py b/lib/python/Screens/MinuteInput.py new file mode 100644 index 0000000..fb276d9 --- /dev/null +++ b/lib/python/Screens/MinuteInput.py @@ -0,0 +1,67 @@ +from Screen import Screen +from Components.ActionMap import NumberActionMap +from Components.Input import Input + +class MinuteInput(Screen): + def __init__(self, session, basemins = 5): + Screen.__init__(self, session) + + self["minutes"] = Input(str(basemins), type=Input.NUMBER) + + self["actions"] = NumberActionMap([ "InputActions" , "MinuteInputActions", "TextEntryActions", "KeyboardInputActions" ], + { + "1": self.keyNumberGlobal, + "2": self.keyNumberGlobal, + "3": self.keyNumberGlobal, + "4": self.keyNumberGlobal, + "5": self.keyNumberGlobal, + "6": self.keyNumberGlobal, + "7": self.keyNumberGlobal, + "8": self.keyNumberGlobal, + "9": self.keyNumberGlobal, + "0": self.keyNumberGlobal, + "left": self.left, + "right": self.right, + "home": self.home, + "end": self.end, + "deleteForward": self.deleteForward, + "deleteBackward": self.deleteBackward, + "up": self.up, + "down": self.down, + "ok": self.ok, + "cancel": self.cancel + }) + + def keyNumberGlobal(self, number): + self["minutes"].number(number) + pass + + def left(self): + self["minutes"].left() + + def right(self): + self["minutes"].right() + + def home(self): + self["minutes"].home() + + def end(self): + self["minutes"].end() + + def deleteForward(self): + self["minutes"].delete() + + def deleteBackward(self): + self["minutes"].deleteBackward() + + def up(self): + self["minutes"].up() + + def down(self): + self["minutes"].down() + + def ok(self): + self.close(int(self["minutes"].getText())) + + def cancel(self): + self.close(0) \ No newline at end of file diff --git a/lib/python/Screens/MovieSelection.py b/lib/python/Screens/MovieSelection.py new file mode 100644 index 0000000..c7a9171 --- /dev/null +++ b/lib/python/Screens/MovieSelection.py @@ -0,0 +1,1906 @@ +from Screen import Screen +from Components.Button import Button +from Components.ActionMap import HelpableActionMap, ActionMap, NumberActionMap +from Components.MenuList import MenuList +from Components.MovieList import MovieList, resetMoviePlayState, AUDIO_EXTENSIONS, DVD_EXTENSIONS, IMAGE_EXTENSIONS +from Components.DiskInfo import DiskInfo +from Components.Pixmap import Pixmap, MultiPixmap +from Components.Label import Label +from Components.PluginComponent import plugins +from Components.config import config, ConfigSubsection, ConfigText, ConfigInteger, ConfigLocations, ConfigSet, ConfigYesNo, ConfigSelection, getConfigListEntry +from Components.ConfigList import ConfigListScreen +from Components.ServiceEventTracker import ServiceEventTracker, InfoBarBase +from Components.Sources.ServiceEvent import ServiceEvent +from Components.Sources.StaticText import StaticText +import Components.Harddisk +from Components.UsageConfig import preferredTimerPath + +from Plugins.Plugin import PluginDescriptor + +from Screens.MessageBox import MessageBox +from Screens.ChoiceBox import ChoiceBox +from Screens.LocationBox import MovieLocationBox +from Screens.HelpMenu import HelpableScreen +import Screens.InfoBar + +from Tools import NumericalTextInput +from Tools.Directories import resolveFilename, SCOPE_HDD +from Tools.BoundFunction import boundFunction +import Tools.Trashcan +import NavigationInstance +import RecordTimer + +from enigma import eServiceReference, eServiceCenter, eTimer, eSize, iPlayableService, iServiceInformation, getPrevAsciiCode, eRCInput +import os +import time +import cPickle as pickle + +config.movielist = ConfigSubsection() +config.movielist.moviesort = ConfigInteger(default=MovieList.SORT_RECORDED) +config.movielist.listtype = ConfigInteger(default=MovieList.LISTTYPE_MINIMAL) +config.movielist.description = ConfigInteger(default=MovieList.SHOW_DESCRIPTION) +config.movielist.last_videodir = ConfigText(default=resolveFilename(SCOPE_HDD)) +config.movielist.last_timer_videodir = ConfigText(default=resolveFilename(SCOPE_HDD)) +config.movielist.videodirs = ConfigLocations(default=[resolveFilename(SCOPE_HDD)]) +config.movielist.last_selected_tags = ConfigSet([], default=[]) +config.movielist.play_audio_internal = ConfigYesNo(default=True) +config.movielist.settings_per_directory = ConfigYesNo(default=True) +config.movielist.root = ConfigSelection(default="/media", choices=["/","/media","/media/hdd","/media/hdd/movie","/media/usb","/media/usb/movie"]) +config.movielist.hide_extensions = ConfigYesNo(default=False) +config.movielist.stop_service = ConfigYesNo(default=True) + +userDefinedButtons = None +last_selected_dest = [] +preferredTagEditor = None + +# this kludge is needed because ConfigSelection only takes numbers +# and someone appears to be fascinated by 'enums'. +l_moviesort = [(str(MovieList.SORT_RECORDED), _("by date"), '03/02/01'), + (str(MovieList.SORT_ALPHANUMERIC), _("alphabetic"), 'A-Z'), + (str(MovieList.SORT_ALPHANUMERIC_FLAT), _("flat alphabetic"), 'A-Z Flat'), + (str(MovieList.SHUFFLE), _("shuffle"), '?'), + (str(MovieList.SORT_RECORDED_REVERSE), _("reverse by date"), '01/02/03'), + (str(MovieList.SORT_ALPHANUMERIC_REVERSE), _("alphabetic reverse"), 'Z-A'), + (str(MovieList.SORT_ALPHANUMERIC_FLAT_REVERSE), _("flat alphabetic reverse"), 'Z-A Flat')] +l_listtype = [(str(MovieList.LISTTYPE_ORIGINAL), _("list style default")), + (str(MovieList.LISTTYPE_COMPACT_DESCRIPTION), _("list style compact with description")), + (str(MovieList.LISTTYPE_COMPACT), _("list style compact")), + (str(MovieList.LISTTYPE_MINIMAL), _("list style single line"))] + +def defaultMoviePath(): + result = config.usage.default_path.value + if not os.path.isdir(result): + from Tools import Directories + return Directories.defaultRecordingLocation() + return result + +def setPreferredTagEditor(te): + global preferredTagEditor + if preferredTagEditor is None: + preferredTagEditor = te + print "Preferred tag editor changed to", preferredTagEditor + else: + print "Preferred tag editor already set to", preferredTagEditor, "ignoring", te + +def getPreferredTagEditor(): + global preferredTagEditor + return preferredTagEditor + +def isTrashFolder(ref): + if not config.usage.movielist_trashcan.value or not ref.flags & eServiceReference.mustDescent: + return False + path = os.path.realpath(ref.getPath()) + return path.endswith('.Trash') and path.startswith(Tools.Trashcan.getTrashFolder(path)) + +def isInTrashFolder(ref): + if not config.usage.movielist_trashcan.value or not ref.flags & eServiceReference.mustDescent: + return False + path = os.path.realpath(ref.getPath()) + return path.startswith(Tools.Trashcan.getTrashFolder(path)) + +def isSimpleFile(item): + if not item: + return False + if not item[0] or not item[1]: + return False + return (item[0].flags & eServiceReference.mustDescent) == 0 + +def isFolder(item): + if not item: + return False + if not item[0] or not item[1]: + return False + return (item[0].flags & eServiceReference.mustDescent) != 0 + + +def canMove(item): + if not item: + return False + if not item[0] or not item[1]: + return False + if item[0].flags & eServiceReference.mustDescent: + return not isTrashFolder(item[0]) + return True + +canDelete = canMove + +def canCopy(item): + if not item: + return False + if not item[0] or not item[1]: + return False + if item[0].flags & eServiceReference.mustDescent: + return False + return True + +def createMoveList(serviceref, dest): + #normpath is to remove the trailing '/' from directories + src = os.path.normpath(serviceref.getPath()) + srcPath, srcName = os.path.split(src) + if os.path.normpath(srcPath) == dest: + # move file to itself is allowed, so we have to check it + raise Exception, "Refusing to move to the same directory" + # Make a list of items to move + moveList = [(src, os.path.join(dest, srcName))] + if not serviceref.flags & eServiceReference.mustDescent: + # Real movie, add extra files... + srcBase = os.path.splitext(src)[0] + baseName = os.path.split(srcBase)[1] + eitName = srcBase + '.eit' + if os.path.exists(eitName): + moveList.append((eitName, os.path.join(dest, baseName+'.eit'))) + baseName = os.path.split(src)[1] + for ext in ('.ap', '.cuts', '.meta', '.sc'): + candidate = src + ext + if os.path.exists(candidate): + moveList.append((candidate, os.path.join(dest, baseName+ext))) + return moveList + +def moveServiceFiles(serviceref, dest, name=None, allowCopy=True): + moveList = createMoveList(serviceref, dest) + # Try to "atomically" move these files + movedList = [] + try: + try: + for item in moveList: + os.rename(item[0], item[1]) + movedList.append(item) + except OSError, e: + if e.errno == 18 and allowCopy: + print "[MovieSelection] cannot rename across devices, trying slow move" + import CopyFiles + # start with the smaller files, do the big one later. + moveList.reverse() + if name is None: + name = os.path.split(moveList[-1][0])[1] + CopyFiles.moveFiles(moveList, name) + print "[MovieSelection] Moving in background..." + else: + raise + except Exception, e: + print "[MovieSelection] Failed move:", e + for item in movedList: + try: + os.rename(item[1], item[0]) + except: + print "[MovieSelection] Failed to undo move:", item + # rethrow exception + raise + +def copyServiceFiles(serviceref, dest, name=None): + # current should be 'ref' type, dest a simple path string + moveList = createMoveList(serviceref, dest) + # Try to "atomically" move these files + movedList = [] + try: + for item in moveList: + os.link(item[0], item[1]) + movedList.append(item) + # this worked, we're done + return + except Exception, e: + print "[MovieSelection] Failed copy using link:", e + for item in movedList: + try: + os.unlink(item[1]) + except: + print "[MovieSelection] Failed to undo copy:", item + #Link failed, really copy. + import CopyFiles + # start with the smaller files, do the big one later. + moveList.reverse() + if name is None: + name = os.path.split(moveList[-1][0])[1] + CopyFiles.copyFiles(moveList, name) + print "[MovieSelection] Copying in background..." + +class MovieBrowserConfiguration(ConfigListScreen,Screen): + skin = """ +<screen position="center,center" size="560,400" title="Movie Browser Configuration" > + <ePixmap name="red" position="0,0" zPosition="2" size="140,40" pixmap="skin_default/buttons/red.png" transparent="1" alphatest="on" /> + <ePixmap name="green" position="140,0" zPosition="2" size="140,40" pixmap="skin_default/buttons/green.png" transparent="1" alphatest="on" /> + + <widget name="key_red" position="0,0" size="140,40" valign="center" halign="center" zPosition="4" foregroundColor="white" font="Regular;20" transparent="1" shadowColor="background" shadowOffset="-2,-2" /> + <widget name="key_green" position="140,0" size="140,40" valign="center" halign="center" zPosition="4" foregroundColor="white" font="Regular;20" transparent="1" shadowColor="background" shadowOffset="-2,-2" /> + <widget name="config" position="10,40" size="540,340" scrollbarMode="showOnDemand" /> + + <ePixmap alphatest="on" pixmap="skin_default/icons/clock.png" position="480,383" size="14,14" zPosition="3"/> + <widget font="Regular;18" halign="left" position="505,380" render="Label" size="55,20" source="global.CurrentTime" transparent="1" valign="center" zPosition="3"> + <convert type="ClockToText">Default</convert> + </widget> +</screen>""" + + def __init__(self, session, args = 0): + self.session = session + self.setup_title = _("Movie list configuration") + Screen.__init__(self, session) + cfg = ConfigSubsection() + self.cfg = cfg + cfg.moviesort = ConfigSelection(default=str(config.movielist.moviesort.value), choices = l_moviesort) + cfg.listtype = ConfigSelection(default=str(config.movielist.listtype.value), choices = l_listtype) + cfg.description = ConfigYesNo(default=(config.movielist.description.value != MovieList.HIDE_DESCRIPTION)) + configList = [ + getConfigListEntry(_("Sort"), cfg.moviesort), + getConfigListEntry(_("Show extended description"), cfg.description), + getConfigListEntry(_("Type"), cfg.listtype), + getConfigListEntry(_("Use individual settings for each directory"), config.movielist.settings_per_directory), + getConfigListEntry(_("Behavior when a movie reaches the end"), config.usage.on_movie_eof), + getConfigListEntry(_("Stop service on return to movie list"), config.movielist.stop_service), + getConfigListEntry(_("Load length of movies in movie list"), config.usage.load_length_of_movies_in_moviellist), + getConfigListEntry(_("Show status icons in movie list"), config.usage.show_icons_in_movielist), + getConfigListEntry(_("Show icon for new/unseen items"), config.usage.movielist_unseen), + getConfigListEntry(_("Play audio in background"), config.movielist.play_audio_internal), + getConfigListEntry(_("Root directory"), config.movielist.root), + getConfigListEntry(_("Hide known extensions"), config.movielist.hide_extensions), + ] + for btn in ('red', 'green', 'yellow', 'blue', 'TV', 'Radio', 'Text'): + configList.append(getConfigListEntry(_(btn), userDefinedButtons[btn])) + ConfigListScreen.__init__(self, configList, session=session, on_change = self.changedEntry) + self["key_red"] = Button(_("Cancel")) + self["key_green"] = Button(_("Ok")) + self["setupActions"] = ActionMap(["SetupActions", "ColorActions"], + { + "red": self.cancel, + "green": self.save, + "save": self.save, + "cancel": self.cancel, + "ok": self.save, + }, -2) + self.onChangedEntry = [] + + # for summary: + def changedEntry(self): + for x in self.onChangedEntry: + x() + def getCurrentEntry(self): + return self["config"].getCurrent()[0] + def getCurrentValue(self): + return str(self["config"].getCurrent()[1].getText()) + def createSummary(self): + from Screens.Setup import SetupSummary + return SetupSummary + + def save(self): + self.saveAll() + cfg = self.cfg + config.movielist.moviesort.value = int(cfg.moviesort.value) + config.movielist.listtype.value = int(cfg.listtype.value) + if cfg.description.value: + config.movielist.description.value = MovieList.SHOW_DESCRIPTION + else: + config.movielist.description.value = MovieList.HIDE_DESCRIPTION + if not config.movielist.settings_per_directory.value: + config.movielist.moviesort.save() + config.movielist.listtype.save() + config.movielist.description.save() + config.usage.on_movie_eof.save() + self.close(True) + + def cancel(self): + for x in self["config"].list: + x[1].cancel() + self.close(False) + +class MovieContextMenuSummary(Screen): + def __init__(self, session, parent): + Screen.__init__(self, session, parent = parent) + self["selected"] = StaticText("") + self.onShow.append(self.__onShow) + self.onHide.append(self.__onHide) + + def __onShow(self): + self.parent["menu"].onSelectionChanged.append(self.selectionChanged) + self.selectionChanged() + + def __onHide(self): + self.parent["menu"].onSelectionChanged.remove(self.selectionChanged) + + def selectionChanged(self): + item = self.parent["menu"].getCurrent() + self["selected"].text = item[0] + + +class MovieContextMenu(Screen): + # Contract: On OK returns a callable object (e.g. delete) + def __init__(self, session, csel, service): + Screen.__init__(self, session) + + self["actions"] = ActionMap(["OkCancelActions", "ColorActions"], + { + "ok": self.okbuttonClick, + "cancel": self.cancelClick, + "yellow": csel.showNetworkSetup, + "blue": csel.configure + }) + + self["key_yellow"] = Button(_("Network") + "...") + self["key_blue"] = Button(_("Settings") + "...") + + menu = [] + if service: + if (service.flags & eServiceReference.mustDescent): + if isTrashFolder(service): + menu.append((_("Permanently remove all deleted items"), csel.purgeAll)) + else: + menu.append((_("Delete"), csel.do_delete)) + menu.append((_("Move"), csel.do_move)) + menu.append((_("Rename"), csel.do_rename)) + else: + menu = [(_("Delete"), csel.do_delete), + (_("Move"), csel.do_move), + (_("Copy"), csel.do_copy), + (_("Reset playback position"), csel.do_reset), + (_("Rename"), csel.do_rename), + (_("Start offline decode"), csel.do_decode), + ] + # Plugins expect a valid selection, so only include them if we selected a non-dir + menu.extend([(p.description, boundFunction(p, session, service)) for p in plugins.getPlugins(PluginDescriptor.WHERE_MOVIELIST)]) + + menu.append((_("Add bookmark"), csel.do_addbookmark)) + menu.append((_("create directory"), csel.do_createdir)) + menu.append((_("Sort by") + "...", csel.selectSortby)) + menu.append((_("Network") + "...", csel.showNetworkSetup)) + menu.append((_("Settings") + "...", csel.configure)) + self["menu"] = MenuList(menu) + + def createSummary(self): + return MovieContextMenuSummary + + def okbuttonClick(self): + self.close(self["menu"].getCurrent()[1]) + + def cancelClick(self): + self.close(None) + +class SelectionEventInfo: + def __init__(self): + self["Service"] = ServiceEvent() + self.list.connectSelChanged(self.__selectionChanged) + self.timer = eTimer() + self.timer.callback.append(self.updateEventInfo) + self.onShown.append(self.__selectionChanged) + + def __selectionChanged(self): + if self.execing and self.settings["description"] == MovieList.SHOW_DESCRIPTION: + self.timer.start(100, True) + + def updateEventInfo(self): + serviceref = self.getCurrent() + self["Service"].newService(serviceref) + +class MovieSelectionSummary(Screen): + # Kludgy component to display current selection on LCD. Should use + # parent.Service as source for everything, but that seems to have a + # performance impact as the MovieSelection goes through hoops to prevent + # this when the info is not selected + def __init__(self, session, parent): + Screen.__init__(self, session, parent = parent) + self["name"] = StaticText("") + self.onShow.append(self.__onShow) + self.onHide.append(self.__onHide) + + def __onShow(self): + self.parent.list.connectSelChanged(self.selectionChanged) + self.selectionChanged() + + def __onHide(self): + self.parent.list.disconnectSelChanged(self.selectionChanged) + + def selectionChanged(self): + item = self.parent.getCurrentSelection() + if item and item[0]: + data = item[3] + if (data is not None) and (data != -1): + name = data.txt + elif not item[1]: + # special case, one up + name = ".." + else: + name = item[1].getName(item[0]) + if (item[0].flags & eServiceReference.mustDescent): + if len(name) > 12: + name = os.path.split(os.path.normpath(name))[1] + name = "> " + name + self["name"].text = name + else: + self["name"].text = "" + +class MovieSelection(Screen, HelpableScreen, SelectionEventInfo, InfoBarBase): + # SUSPEND_PAUSES actually means "please call my pauseService()" + ALLOW_SUSPEND = Screen.SUSPEND_PAUSES + + def __init__(self, session, selectedmovie = None, timeshiftEnabled = False): + Screen.__init__(self, session) + HelpableScreen.__init__(self) + if not timeshiftEnabled: + InfoBarBase.__init__(self) # For ServiceEventTracker + self.initUserDefinedActions() + self.tags = {} + if selectedmovie: + self.selected_tags = config.movielist.last_selected_tags.value + else: + self.selected_tags = None + self.selected_tags_ele = None + self.nextInBackground = None + + self.movemode = False + self.bouquet_mark_edit = False + + self.feedbackTimer = None + self.pathselectEnabled = False + + self.numericalTextInput = NumericalTextInput.NumericalTextInput(mapping=NumericalTextInput.MAP_SEARCH_UPCASE) + self["chosenletter"] = Label("") + self["chosenletter"].visible = False + + self["waitingtext"] = Label(_("Please wait... Loading list...")) + + # create optional description border and hide immediately + self["DescriptionBorder"] = Pixmap() + self["DescriptionBorder"].hide() + + if not os.path.isdir(config.movielist.last_videodir.value): + config.movielist.last_videodir.value = defaultMoviePath() + config.movielist.last_videodir.save() + self.setCurrentRef(config.movielist.last_videodir.value) + + self.settings = {\ + "listtype": config.movielist.listtype.value, + "moviesort": config.movielist.moviesort.value, + "description": config.movielist.description.value, + "movieoff": config.usage.on_movie_eof.value + } + self.movieOff = self.settings["movieoff"] + + self["list"] = MovieList(None, list_type=self.settings["listtype"], sort_type=self.settings["moviesort"], descr_state=self.settings["description"]) + + self.loadLocalSettings() + + self.list = self["list"] + self.selectedmovie = selectedmovie + + self.playGoTo = None #1 - preview next item / -1 - preview previous + + title = _("Movie selection") + self.setTitle(title) + + # Need list for init + SelectionEventInfo.__init__(self) + + self["key_red"] = Button("") + self["key_green"] = Button("") + self["key_yellow"] = Button("") + self["key_blue"] = Button("") + self._updateButtonTexts() + + self["movie_off"] = MultiPixmap() + self["movie_off"].hide() + + self["movie_sort"] = MultiPixmap() + self["movie_sort"].hide() + + self["freeDiskSpace"] = self.diskinfo = DiskInfo(config.movielist.last_videodir.value, DiskInfo.FREE, update=False) + + self["InfobarActions"] = HelpableActionMap(self, "InfobarActions", + { + "showMovies": (self.doPathSelect, _("Select the movie path")), + "showRadio": (self.btn_radio, "?"), + "showTv": (self.btn_tv, _("Home")), + "showText": (self.btn_text, _("On end of movie")), + }) + + self["NumberActions"] = NumberActionMap(["NumberActions", "InputAsciiActions"], + { + "gotAsciiCode": self.keyAsciiCode, + "0": self.keyNumberGlobal, + "1": self.keyNumberGlobal, + "2": self.keyNumberGlobal, + "3": self.keyNumberGlobal, + "4": self.keyNumberGlobal, + "5": self.keyNumberGlobal, + "6": self.keyNumberGlobal, + "7": self.keyNumberGlobal, + "8": self.keyNumberGlobal, + "9": self.keyNumberGlobal + }) + + self["playbackActions"] = HelpableActionMap(self, "MoviePlayerActions", + { + "leavePlayer": (self.playbackStop, _("Stop")), + "moveNext": (self.playNext, _("Play next")), + "movePrev": (self.playPrev, _("Play previous")), + "channelUp": (self.moveToFirstOrFirstFile, _("Go to first movie or top of list")), + "channelDown": (self.moveToLastOrFirstFile, _("Go to first movie or last item")), + }) + self["MovieSelectionActions"] = HelpableActionMap(self, "MovieSelectionActions", + { + "contextMenu": (self.doContext, _("Menu")), + "showEventInfo": (self.showEventInformation, _("Show event details")), + }) + + self["ColorActions"] = HelpableActionMap(self, "ColorActions", + { + "red": (self.btn_red, _("Delete...")), + "green": (self.btn_green, _("Move to other directory")), + "yellow": (self.btn_yellow, _("Select the movie path")), + "blue": (self.btn_blue, _("Show tag menu")), + }) + self["OkCancelActions"] = HelpableActionMap(self, "OkCancelActions", + { + "cancel": (self.abort, _("Exit movie list")), + "ok": (self.itemSelected, _("Select movie")), + }) + self["DirectionActions"] = HelpableActionMap(self, "DirectionActions", + { + "up": (self.keyUp, _("Go up the list")), + "down": (self.keyDown, _("Go down the list")) + }, prio = -2) + + tPreview = _("Preview") + tFwd = _("skip forward") + " (" + tPreview +")" + tBack= _("skip backward") + " (" + tPreview +")" + sfwd = lambda: self.seekRelative(1, config.seek.selfdefined_46.value * 90000) + ssfwd = lambda: self.seekRelative(1, config.seek.selfdefined_79.value * 90000) + sback = lambda: self.seekRelative(-1, config.seek.selfdefined_46.value * 90000) + ssback = lambda: self.seekRelative(-1, config.seek.selfdefined_79.value * 90000) + self["SeekActions"] = HelpableActionMap(self, "InfobarSeekActions", + { + "playpauseService": (self.preview, _("Preview")), + "seekFwd": (sfwd, tFwd), + "seekFwdManual": (ssfwd, tFwd), + "seekBack": (sback, tBack), + "seekBackManual": (ssback, tBack), + }, prio=5) + self.onShown.append(self.onFirstTimeShown) + self.onLayoutFinish.append(self.saveListsize) + self.list.connectSelChanged(self.updateButtons) + self.onClose.append(self.__onClose) + NavigationInstance.instance.RecordTimer.on_state_change.append(self.list.updateRecordings) + self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + { + #iPlayableService.evSeekableStatusChanged: self.__seekableStatusChanged, + iPlayableService.evStart: self.__serviceStarted, + iPlayableService.evEOF: self.__evEOF, + #iPlayableService.evSOF: self.__evSOF, + }) + self.onExecBegin.append(self.asciiOn) + + def asciiOn(self): + rcinput = eRCInput.getInstance() + rcinput.setKeyboardMode(rcinput.kmAscii) + + def asciiOff(self): + rcinput = eRCInput.getInstance() + rcinput.setKeyboardMode(rcinput.kmNone) + + def initUserDefinedActions(self): + global userDefinedButtons, userDefinedActions, config + if userDefinedButtons is None: + userDefinedActions = { + 'delete': _("Delete"), + 'move': _("Move"), + 'copy': _("Copy"), + 'reset': _("Reset"), + 'tags': _("Tags"), + 'addbookmark': _("Add bookmark"), + 'bookmarks': _("Location"), + 'rename': _("Rename"), + 'gohome': _("Home"), + 'sort': _("Sort"), + 'sortby': _("Sort by"), + 'listtype': _("List type"), + 'preview': _("Preview"), + 'movieoff': _("On end of movie"), + 'movieoff_menu': _("On end of movie (as menu)") + } + for p in plugins.getPlugins(PluginDescriptor.WHERE_MOVIELIST): + userDefinedActions['@' + p.name] = p.description + config.movielist.btn_red = ConfigSelection(default='delete', choices=userDefinedActions) + config.movielist.btn_green = ConfigSelection(default='move', choices=userDefinedActions) + config.movielist.btn_yellow = ConfigSelection(default='bookmarks', choices=userDefinedActions) + config.movielist.btn_blue = ConfigSelection(default='sort', choices=userDefinedActions) + config.movielist.btn_radio = ConfigSelection(default='tags', choices=userDefinedActions) + config.movielist.btn_tv = ConfigSelection(default='gohome', choices=userDefinedActions) + config.movielist.btn_text = ConfigSelection(default='movieoff', choices=userDefinedActions) + userDefinedButtons ={ + 'red': config.movielist.btn_red, + 'green': config.movielist.btn_green, + 'yellow': config.movielist.btn_yellow, + 'blue': config.movielist.btn_blue, + 'Radio': config.movielist.btn_radio, + 'TV': config.movielist.btn_tv, + 'Text': config.movielist.btn_text, + } + + def _callButton(self, name): + if name.startswith('@'): + item = self.getCurrentSelection() + if isSimpleFile(item): + name = name[1:] + for p in plugins.getPlugins(PluginDescriptor.WHERE_MOVIELIST): + if name == p.name: + p(self.session, item[0]) + return + try: + a = getattr(self, 'do_' + name) + except Exception: + # Undefined action + return + a() + + def btn_red(self): + self._callButton(config.movielist.btn_red.value) + def btn_green(self): + self._callButton(config.movielist.btn_green.value) + def btn_yellow(self): + self._callButton(config.movielist.btn_yellow.value) + def btn_blue(self): + self._callButton(config.movielist.btn_blue.value) + def btn_radio(self): + self._callButton(config.movielist.btn_radio.value) + def btn_tv(self): + self._callButton(config.movielist.btn_tv.value) + def btn_text(self): + self._callButton(config.movielist.btn_text.value) + + def keyUp(self): + if self["list"].getCurrentIndex() < 1: + self["list"].moveToLast() + else: + self["list"].moveUp() + + def keyDown(self): + if self["list"].getCurrentIndex() == len(self["list"]) - 1: + self["list"].moveToFirst() + else: + self["list"].moveDown() + + def moveToFirstOrFirstFile(self): + if self.list.getCurrentIndex() <= self.list.firstFileEntry: #selection above or on first movie + if self.list.getCurrentIndex() < 1: + self.list.moveToLast() + else: + self.list.moveToFirst() + else: + self.list.moveToFirstMovie() + + def moveToLastOrFirstFile(self): + if self.list.getCurrentIndex() >= self.list.firstFileEntry or self.list.firstFileEntry == len(self.list): #selection below or on first movie or no files + if self.list.getCurrentIndex() == len(self.list) - 1: + self.list.moveToFirst() + else: + self.list.moveToLast() + else: + self.list.moveToFirstMovie() + + def keyNumberGlobal(self, number): + unichar = self.numericalTextInput.getKey(number) + charstr = unichar.encode("utf-8") + if len(charstr) == 1: + self.list.moveToChar(charstr[0], self["chosenletter"]) + + def keyAsciiCode(self): + unichar = unichr(getPrevAsciiCode()) + charstr = unichar.encode("utf-8") + if len(charstr) == 1: + self.list.moveToString(charstr[0], self["chosenletter"]) + + def isItemPlayable(self, index): + item = self.list.getItem(index) + if item: + path = item.getPath() + if not item.flags & eServiceReference.mustDescent: + ext = os.path.splitext(path)[1].lower() + if ext in IMAGE_EXTENSIONS: + return False + else: + return True + return False + + def goToPlayingService(self): + service = self.session.nav.getCurrentlyPlayingServiceOrGroup() + if service: + path = service.getPath() + if path: + path = os.path.split(os.path.normpath(path))[0] + if not path.endswith('/'): + path += '/' + self.gotFilename(path, selItem = service) + return True + return False + + def playNext(self): + if self.list.playInBackground: + if self.list.moveTo(self.list.playInBackground): + if self.isItemPlayable(self.list.getCurrentIndex() + 1): + self.list.moveDown() + self.callLater(self.preview) + else: + self.playGoTo = 1 + self.goToPlayingService() + else: + self.preview() + + def playPrev(self): + if self.list.playInBackground: + if self.list.moveTo(self.list.playInBackground): + if self.isItemPlayable(self.list.getCurrentIndex() - 1): + self.list.moveUp() + self.callLater(self.preview) + else: + self.playGoTo = -1 + self.goToPlayingService() + + def __onClose(self): + try: + NavigationInstance.instance.RecordTimer.on_state_change.remove(self.list.updateRecordings) + except Exception, e: + print "[ML] failed to unsubscribe:", e + pass + + def createSummary(self): + return MovieSelectionSummary + + def updateDescription(self): + if self.settings["description"] == MovieList.SHOW_DESCRIPTION: + self["DescriptionBorder"].show() + self["list"].instance.resize(eSize(self.listWidth, self.listHeight-self["DescriptionBorder"].instance.size().height())) + else: + self["Service"].newService(None) + self["DescriptionBorder"].hide() + self["list"].instance.resize(eSize(self.listWidth, self.listHeight)) + + def pauseService(self): + # Called when pressing Power button (go to standby) + self.playbackStop() + self.session.nav.stopService() + + def unPauseService(self): + # When returning from standby. It might have been a while, so + # reload the list. + self.reloadList() + + def can_delete(self, item): + if not item: + return False + return canDelete(item) or isTrashFolder(item[0]) + def can_move(self, item): + return canMove(item) + def can_default(self, item): + # returns whether item is a regular file + return isSimpleFile(item) + def can_sort(self, item): + return True + def can_listtype(self, item): + return True + def can_preview(self, item): + return isSimpleFile(item) + + def _updateButtonTexts(self): + for k in ('red', 'green', 'yellow', 'blue'): + btn = userDefinedButtons[k] + self['key_' + k].setText(userDefinedActions[btn.value]) + + def updateButtons(self): + item = self.getCurrentSelection() + for name in ('red', 'green', 'yellow', 'blue'): + action = userDefinedButtons[name].value + if action.startswith('@'): + check = self.can_default + else: + try: + check = getattr(self, 'can_' + action) + except: + check = self.can_default + gui = self["key_" + name] + if check(item): + gui.show() + else: + gui.hide() + + def showEventInformation(self): + from Screens.EventView import EventViewSimple + from ServiceReference import ServiceReference + evt = self["list"].getCurrentEvent() + if evt: + self.session.open(EventViewSimple, evt, ServiceReference(self.getCurrent())) + + def saveListsize(self): + listsize = self["list"].instance.size() + self.listWidth = listsize.width() + self.listHeight = listsize.height() + self.updateDescription() + + def onFirstTimeShown(self): + self.onShown.remove(self.onFirstTimeShown) # Just once, not after returning etc. + self.show() + self.reloadList(self.selectedmovie, home=True) + del self.selectedmovie + + def getCurrent(self): + # Returns selected serviceref (may be None) + return self["list"].getCurrent() + + def getCurrentSelection(self): + # Returns None or (serviceref, info, begin, len) + return self["list"].l.getCurrentSelection() + + def playAsDVD(self, path): + try: + from Screens import DVD + if path.endswith('VIDEO_TS/'): + # strip away VIDEO_TS/ part + path = os.path.split(path.rstrip('/'))[0] + self.session.open(DVD.DVDPlayer, dvd_filelist=[path]) + return True + except Exception, e: + print "[ML] DVD Player not installed:", e + + def __serviceStarted(self): + if not self.list.playInBackground: + return + ref = self.session.nav.getCurrentService() + cue = ref.cueSheet() + if not cue: + return + # disable writing the stop position + cue.setCutListEnable(2) + # find "resume" position + cuts = cue.getCutList() + if not cuts: + return + for (pts, what) in cuts: + if what == 3: + last = pts + break + else: + # no resume, jump to start of program (first marker) + last = cuts[0][0] + self.doSeekTo = last + self.callLater(self.doSeek) + + def doSeek(self, pts = None): + if pts is None: + pts = self.doSeekTo + seekable = self.getSeek() + if seekable is None: + return + seekable.seekTo(pts) + + def getSeek(self): + service = self.session.nav.getCurrentService() + if service is None: + return None + seek = service.seek() + if seek is None or not seek.isCurrentlySeekable(): + return None + return seek + + def callLater(self, function): + self.previewTimer = eTimer() + self.previewTimer.callback.append(function) + self.previewTimer.start(10, True) + + def __evEOF(self): + playInBackground = self.list.playInBackground + if not playInBackground: + print "Not playing anything in background" + return + self.session.nav.stopService() + self.list.playInBackground = None + if config.movielist.play_audio_internal.value: + index = self.list.findService(playInBackground) + if index is None: + return # Not found? + next = self.list.getItem(index + 1) + if not next: + return + path = next.getPath() + ext = os.path.splitext(path)[1].lower() + print "Next up:", path + if ext in AUDIO_EXTENSIONS: + self.nextInBackground = next + self.callLater(self.preview) + self["list"].moveToIndex(index+1) + + def preview(self): + current = self.getCurrent() + if current is not None: + path = current.getPath() + if current.flags & eServiceReference.mustDescent: + self.gotFilename(path) + else: + Screens.InfoBar.InfoBar.instance.checkTimeshiftRunning(self.previewCheckTimeshiftCallback) + + def startPreview(self): + if self.nextInBackground is not None: + current = self.nextInBackground + self.nextInBackground = None + else: + current = self.getCurrent() + playInBackground = self.list.playInBackground + if playInBackground: + self.list.playInBackground = None + self.session.nav.stopService() + if playInBackground != current: + # come back to play the new one + self.callLater(self.preview) + else: + self.list.playInBackground = current + self.session.nav.playService(current) + + def previewCheckTimeshiftCallback(self, answer): + if answer: + self.startPreview() + + def seekRelative(self, direction, amount): + if self.list.playInBackground: + seekable = self.getSeek() + if seekable is None: + return + seekable.seekRelative(direction, amount) + + def playbackStop(self): + if self.list.playInBackground: + self.list.playInBackground = None + self.session.nav.stopService() + + def itemSelected(self, answer = True): + current = self.getCurrent() + if current is not None: + path = current.getPath() + if current.flags & eServiceReference.mustDescent: + if path.endswith("VIDEO_TS/") or os.path.exists(os.path.join(path, 'VIDEO_TS.IFO')): + #force a DVD extention + Screens.InfoBar.InfoBar.instance.checkTimeshiftRunning(boundFunction(self.itemSelectedCheckTimeshiftCallback, ".iso", path)) + return + self.gotFilename(path) + else: + ext = os.path.splitext(path)[1].lower() + if config.movielist.play_audio_internal.value and (ext in AUDIO_EXTENSIONS): + self.preview() + return + if self.list.playInBackground: + # Stop preview, come back later + self.session.nav.stopService() + self.list.playInBackground = None + self.callLater(self.itemSelected) + return + if ext in IMAGE_EXTENSIONS: + try: + from Plugins.Extensions.PicturePlayer import ui + # Build the list for the PicturePlayer UI + filelist = [] + index = 0 + for item in self.list.list: + p = item[0].getPath() + if p == path: + index = len(filelist) + if os.path.splitext(p)[1].lower() in IMAGE_EXTENSIONS: + filelist.append(((p,False), None)) + self.session.open(ui.Pic_Full_View, filelist, index, path) + except Exception, ex: + print "[ML] Cannot display", str(ex) + return + Screens.InfoBar.InfoBar.instance.checkTimeshiftRunning(boundFunction(self.itemSelectedCheckTimeshiftCallback, ext, path)) + + def itemSelectedCheckTimeshiftCallback(self, ext, path, answer): + if answer: + if ext in DVD_EXTENSIONS: + if self.playAsDVD(path): + return + self.movieSelected() + + # Note: DVDBurn overrides this method, hence the itemSelected indirection. + def movieSelected(self): + current = self.getCurrent() + if current is not None: + self.saveconfig() + self.close(current) + + def doContext(self): + current = self.getCurrent() + if current is not None: + self.session.openWithCallback(self.doneContext, MovieContextMenu, self, current) + + def doneContext(self, action): + if action is not None: + action() + + def saveLocalSettings(self): + if config.movielist.settings_per_directory.value: + try: + path = os.path.join(config.movielist.last_videodir.value, ".e2settings.pkl") + pickle.dump(self.settings, open(path, "wb")) + except Exception, e: + print "Failed to save settings to %s: %s" % (path, e) + # Also set config items, in case the user has a read-only disk + config.movielist.moviesort.value = self.settings["moviesort"] + config.movielist.listtype.value = self.settings["listtype"] + config.movielist.description.value = self.settings["description"] + config.usage.on_movie_eof.value = self.settings["movieoff"] + # save moviesort and movieeof values for using by hotkeys + config.movielist.moviesort.save() + config.usage.on_movie_eof.save() + + def loadLocalSettings(self): + 'Load settings, called when entering a directory' + if config.movielist.settings_per_directory.value: + try: + path = os.path.join(config.movielist.last_videodir.value, ".e2settings.pkl") + updates = pickle.load(open(path, "rb")) + self.applyConfigSettings(updates) + except IOError, e: + updates = { + "listtype": config.movielist.listtype.default, + "moviesort": config.movielist.moviesort.default, + "description": config.movielist.description.default, + "movieoff": config.usage.on_movie_eof.default + } + self.applyConfigSettings(updates) + pass # ignore fail to open errors + except Exception, e: + print "Failed to load settings from %s: %s" % (path, e) + else: + updates = { + "listtype": config.movielist.listtype.value, + "moviesort": config.movielist.moviesort.value, + "description": config.movielist.description.value, + "movieoff": config.usage.on_movie_eof.value + } + self.applyConfigSettings(updates) + + def applyConfigSettings(self, updates): + needUpdate = ("description" in updates) and (updates["description"] != self.settings["description"]) + self.settings.update(updates) + if needUpdate: + self["list"].setDescriptionState(self.settings["description"]) + self.updateDescription() + if self.settings["listtype"] != self["list"].list_type: + self["list"].setListType(self.settings["listtype"]) + needUpdate = True + if self.settings["moviesort"] != self["list"].sort_type: + self["list"].setSortType(self.settings["moviesort"]) + needUpdate = True + if self.settings["movieoff"] != self.movieOff: + self.movieOff = self.settings["movieoff"] + needUpdate = True + config.movielist.moviesort.value = self.settings["moviesort"] + config.movielist.listtype.value = self.settings["listtype"] + config.movielist.description.value = self.settings["description"] + config.usage.on_movie_eof.value = self.settings["movieoff"] + return needUpdate + + def sortBy(self, newType): + self.settings["moviesort"] = newType + self.saveLocalSettings() + self.setSortType(newType) + self.reloadList() + + def listType(self, newType): + self.settings["listtype"] = newType + self.saveLocalSettings() + self.setListType(newType) + self.reloadList() + + def showDescription(self, newType): + self.settings["description"] = newType + self.saveLocalSettings() + self.setDescriptionState(newType) + self.updateDescription() + + def abort(self): + global playlist + del playlist[:] + if self.list.playInBackground: + self.list.playInBackground = None + self.session.nav.stopService() + self.callLater(self.abort) + return + self.saveconfig() + self.close(None) + + def saveconfig(self): + config.movielist.last_selected_tags.value = self.selected_tags + + def configure(self): + self.session.openWithCallback(self.configureDone, MovieBrowserConfiguration) + + def configureDone(self, result): + if result: + self.applyConfigSettings({\ + "listtype": config.movielist.listtype.value, + "moviesort": config.movielist.moviesort.value, + "description": config.movielist.description.value, + "movieoff": config.usage.on_movie_eof.value}) + self.saveLocalSettings() + self._updateButtonTexts() + self.reloadList() + + def can_sortby(self, item): + return True + + def do_sortby(self): + self.selectSortby() + + def selectSortby(self): + menu = [] + index = 0 + used = 0 + for x in l_moviesort: + if int(x[0]) == int(config.movielist.moviesort.value): + used = index + menu.append((_(x[1]), x[0], "%d" % index)) + index += 1 + self.session.openWithCallback(self.sortbyMenuCallback, ChoiceBox, title=_("Sort list:"), list=menu, selection = used) + + def sortbyMenuCallback(self, choice): + if choice is None: + return + self.sortBy(int(choice[1])) + self["movie_sort"].setPixmapNum(int(choice[1])-1) + + def getTagDescription(self, tag): + # TODO: access the tag database + return tag + + def updateTags(self): + # get a list of tags available in this list + self.tags = self["list"].tags + + def setListType(self, type): + self["list"].setListType(type) + + def setDescriptionState(self, val): + self["list"].setDescriptionState(val) + + def setSortType(self, type): + self["list"].setSortType(type) + + def setCurrentRef(self, path): + self.current_ref = eServiceReference("2:0:1:0:0:0:0:0:0:0:" + path) + # Magic: this sets extra things to show + self.current_ref.setName('16384:jpg 16384:png 16384:gif 16384:bmp') + + def reloadList(self, sel = None, home = False): + self.reload_sel = sel + self.reload_home = home + self["waitingtext"].visible = True + self.pathselectEnabled = False + self.callLater(self.reloadWithDelay) + + def reloadWithDelay(self): + if not os.path.isdir(config.movielist.last_videodir.value): + path = defaultMoviePath() + config.movielist.last_videodir.value = path + config.movielist.last_videodir.save() + self.setCurrentRef(path) + self["freeDiskSpace"].path = path + if self.reload_sel is None: + self.reload_sel = self.getCurrent() + self["list"].reload(self.current_ref, self.selected_tags) + self.updateTags() + title = _("Recorded files...") + if config.usage.setup_level.index >= 2: # expert+ + title += " " + config.movielist.last_videodir.value + if self.selected_tags is not None: + title += " - " + ','.join(self.selected_tags) + self.setTitle(title) + self.displayMovieOffStatus() + self.displaySortStatus() + if not (self.reload_sel and self["list"].moveTo(self.reload_sel)): + if self.reload_home: + self["list"].moveToFirstMovie() + self["freeDiskSpace"].update() + self["waitingtext"].visible = False + self.createPlaylist() + if self.playGoTo: + if self.isItemPlayable(self.list.getCurrentIndex() + 1): + if self.playGoTo > 0: + self.list.moveDown() + else: + self.list.moveUp() + self.playGoTo = None + self.callLater(self.preview) + self.callLater(self.enablePathSelect) + + def enablePathSelect(self): + self.pathselectEnabled = True + + def doPathSelect(self): + if self.pathselectEnabled: + self.session.openWithCallback( + self.gotFilename, + MovieLocationBox, + _("Please select the movie path..."), + config.movielist.last_videodir.value + ) + + def gotFilename(self, res, selItem = None): + if not res: + return + # serviceref must end with / + if not res.endswith('/'): + res += '/' + currentDir = config.movielist.last_videodir.value + if res != currentDir: + if os.path.isdir(res): + config.movielist.last_videodir.value = res + config.movielist.last_videodir.save() + self.loadLocalSettings() + self.setCurrentRef(res) + self["freeDiskSpace"].path = res + if selItem: + self.reloadList(home = True, sel = selItem) + else: + self.reloadList(home = True, sel = eServiceReference("2:0:1:0:0:0:0:0:0:0:" + currentDir)) + else: + self.session.open( + MessageBox, + _("Directory %s does not exist.") % (res), + type = MessageBox.TYPE_ERROR, + timeout = 5 + ) + + def showAll(self): + self.selected_tags_ele = None + self.selected_tags = None + self.reloadList(home = True) + + def showTagsN(self, tagele): + if not self.tags: + self.showTagWarning() + elif not tagele or (self.selected_tags and tagele.value in self.selected_tags) or not tagele.value in self.tags: + self.showTagsMenu(tagele) + else: + self.selected_tags_ele = tagele + self.selected_tags = self.tags[tagele.value] + self.reloadList(home = True) + + def showTagsFirst(self): + self.showTagsN(config.movielist.first_tags) + + def showTagsSecond(self): + self.showTagsN(config.movielist.second_tags) + + def can_tags(self, item): + return self.tags + def do_tags(self): + self.showTagsN(None) + + def tagChosen(self, tag): + if tag is not None: + if tag[1] is None: # all + self.showAll() + return + # TODO: Some error checking maybe, don't wanna crash on KeyError + self.selected_tags = self.tags[tag[0]] + if self.selected_tags_ele: + self.selected_tags_ele.value = tag[0] + self.selected_tags_ele.save() + self.reloadList(home = True) + + def showTagsMenu(self, tagele): + self.selected_tags_ele = tagele + lst = [(_("show all tags"), None)] + [(tag, self.getTagDescription(tag)) for tag in self.tags] + self.session.openWithCallback(self.tagChosen, ChoiceBox, title=_("Please select tag to filter..."), list = lst) + + def showTagWarning(self): + self.session.open(MessageBox, _("No tags are set on these movies."), MessageBox.TYPE_ERROR) + + def selectMovieLocation(self, title, callback): + bookmarks = [("("+_("Other")+"...)", None)] + inlist = [] + for d in config.movielist.videodirs.value: + d = os.path.normpath(d) + bookmarks.append((d,d)) + inlist.append(d) + for p in Components.Harddisk.harddiskmanager.getMountedPartitions(): + d = os.path.normpath(p.mountpoint) + if d in inlist: + # improve shortcuts to mountpoints + try: + bookmarks[bookmarks.index((d,d))] = (p.tabbedDescription(), d) + except: + pass # When already listed as some "friendly" name + else: + bookmarks.append((p.tabbedDescription(), d)) + inlist.append(d) + for d in last_selected_dest: + if d not in inlist: + bookmarks.append((d,d)) + self.onMovieSelected = callback + self.movieSelectTitle = title + self.session.openWithCallback(self.gotMovieLocation, ChoiceBox, title=title, list = bookmarks) + + def gotMovieLocation(self, choice): + if not choice: + # cancelled + self.onMovieSelected(None) + del self.onMovieSelected + return + if isinstance(choice, tuple): + if choice[1] is None: + # Display full browser, which returns string + self.session.openWithCallback( + self.gotMovieLocation, + MovieLocationBox, + self.movieSelectTitle, + config.movielist.last_videodir.value + ) + return + choice = choice[1] + choice = os.path.normpath(choice) + self.rememberMovieLocation(choice) + self.onMovieSelected(choice) + del self.onMovieSelected + + def rememberMovieLocation(self, where): + if where in last_selected_dest: + last_selected_dest.remove(where) + last_selected_dest.insert(0, where) + if len(last_selected_dest) > 5: + del last_selected_dest[-1] + + def can_bookmarks(self, item): + return True + def do_bookmarks(self): + self.selectMovieLocation(title=_("Please select the movie path..."), callback=self.gotFilename) + + def can_addbookmark(self, item): + return True + def do_addbookmark(self): + path = config.movielist.last_videodir.value + if path in config.movielist.videodirs.value: + if len(path) > 40: + path = '...' + path[-40:] + self.session.openWithCallback(self.removeBookmark, MessageBox, _("Do you really want to remove your bookmark of %s?") % path) + else: + config.movielist.videodirs.value += [path] + config.movielist.videodirs.save() + def removeBookmark(self, yes): + if not yes: + return + path = config.movielist.last_videodir.value + bookmarks = config.movielist.videodirs.value + bookmarks.remove(path) + config.movielist.videodirs.value = bookmarks + config.movielist.videodirs.save() + + def can_createdir(self, item): + return True + def do_createdir(self): + from Screens.VirtualKeyBoard import VirtualKeyBoard + self.session.openWithCallback(self.createDirCallback, VirtualKeyBoard, + title = _("Please enter name of the new directory"), + text = "") + def createDirCallback(self, name): + if not name: + return + msg = None + try: + path = os.path.join(config.movielist.last_videodir.value, name) + os.mkdir(path) + if not path.endswith('/'): + path += '/' + self.reloadList(sel = eServiceReference("2:0:1:0:0:0:0:0:0:0:" + path)) + except OSError, e: + print "Error %s:" % e.errno, e + if e.errno == 17: + msg = _("The path %s already exists.") % name + else: + msg = _("Error") + '\n' + str(e) + except Exception, e: + print "[ML] Unexpected error:", e + msg = _("Error") + '\n' + str(e) + if msg: + self.session.open(MessageBox, msg, type = MessageBox.TYPE_ERROR, timeout = 5) + + def can_rename(self, item): + return canMove(item) + def do_rename(self): + item = self.getCurrentSelection() + if not canMove(item): + return + if isFolder(item): + p = os.path.split(item[0].getPath()) + if not p[1]: + # if path ends in '/', p is blank. + p = os.path.split(p[0]) + name = p[1] + else: + info = item[1] + name = info.getName(item[0]) + from Screens.VirtualKeyBoard import VirtualKeyBoard + self.session.openWithCallback(self.renameCallback, VirtualKeyBoard, + title = _("Rename"), + text = name) + + def do_decode(self): + from ServiceReference import ServiceReference + item = self.getCurrentSelection() + info = item[1] + serviceref = ServiceReference(None, reftype = eServiceReference.idDVB, path = item[0].getPath()) + name = info.getName(item[0]) + ' - decoded' + description = info.getInfoString(item[0], iServiceInformation.sDescription) + recording = RecordTimer.RecordTimerEntry(serviceref, int(time.time()), int(time.time()) + 3600, name, description, 0, dirname = preferredTimerPath()) + recording.dontSave = True + recording.autoincrease = True + recording.setAutoincreaseEnd() + self.session.nav.RecordTimer.record(recording, ignoreTSC = True) + + def renameCallback(self, name): + if not name: + return + name = name.strip() + item = self.getCurrentSelection() + if item and item[0]: + try: + path = item[0].getPath().rstrip('/') + meta = path + '.meta' + if os.path.isfile(meta): + metafile = open(meta, "r+") + sid = metafile.readline() + oldtitle = metafile.readline() + rest = metafile.read() + metafile.seek(0) + metafile.write("%s%s\n%s" %(sid, name, rest)) + metafile.truncate() + metafile.close() + index = self.list.getCurrentIndex() + info = self.list.list[index] + if hasattr(info[3], 'txt'): + info[3].txt = name + else: + self.list.invalidateCurrentItem() + return + pathname,filename = os.path.split(path) + newpath = os.path.join(pathname, name) + msg = None + print "[ML] rename", path, "to", newpath + os.rename(path, newpath) + self.reloadList(sel = eServiceReference("2:0:1:0:0:0:0:0:0:0:" + newpath)) + except OSError, e: + print "Error %s:" % e.errno, e + if e.errno == 17: + msg = _("The path %s already exists.") % name + else: + msg = _("Error") + '\n' + str(e) + except Exception, e: + import traceback + print "[ML] Unexpected error:", e + traceback.print_exc() + msg = _("Error") + '\n' + str(e) + if msg: + self.session.open(MessageBox, msg, type = MessageBox.TYPE_ERROR, timeout = 5) + + def do_reset(self): + current = self.getCurrent() + if current: + resetMoviePlayState(current.getPath() + ".cuts", current) + self["list"].invalidateCurrentItem() # trigger repaint + + def do_move(self): + item = self.getCurrentSelection() + if canMove(item): + current = item[0] + info = item[1] + if info is None: + # Special case + return + name = info and info.getName(current) or _("this recording") + path = os.path.normpath(current.getPath()) + # show a more limited list of destinations, no point + # in showing mountpoints. + title = _("Select destination for:") + " " + name + bookmarks = [("("+_("Other")+"...)", None)] + inlist = [] + # Subdirs + try: + base = os.path.split(path)[0] + for fn in os.listdir(base): + if not fn.startswith('.'): # Skip hidden things + d = os.path.join(base, fn) + if os.path.isdir(d) and (d not in inlist): + bookmarks.append((fn,d)) + inlist.append(d) + except Exception, e : + print "[MovieSelection]", e + # Last favourites + for d in last_selected_dest: + if d not in inlist: + bookmarks.append((d,d)) + # Other favourites + for d in config.movielist.videodirs.value: + d = os.path.normpath(d) + bookmarks.append((d,d)) + inlist.append(d) + for p in Components.Harddisk.harddiskmanager.getMountedPartitions(): + d = os.path.normpath(p.mountpoint) + if d not in inlist: + bookmarks.append((p.description, d)) + inlist.append(d) + self.onMovieSelected = self.gotMoveMovieDest + self.movieSelectTitle = title + self.session.openWithCallback(self.gotMovieLocation, ChoiceBox, title=title, list=bookmarks) + + def gotMoveMovieDest(self, choice): + if not choice: + return + dest = os.path.normpath(choice) + try: + item = self.getCurrentSelection() + current = item[0] + if item[1] is None: + name = None + else: + name = item[1].getName(current) + moveServiceFiles(current, dest, name) + self["list"].removeService(current) + except Exception, e: + self.session.open(MessageBox, str(e), MessageBox.TYPE_ERROR) + + def can_copy(self, item): + return canCopy(item) + def do_copy(self): + item = self.getCurrentSelection() + if canMove(item): + current = item[0] + info = item[1] + if info is None: + # Special case + return + name = info and info.getName(current) or _("this recording") + self.selectMovieLocation(title=_("Select copy destination for:") + " " + name, callback=self.gotCopyMovieDest) + + def gotCopyMovieDest(self, choice): + if not choice: + return + dest = os.path.normpath(choice) + try: + item = self.getCurrentSelection() + current = item[0] + if item[1] is None: + name = None + else: + name = item[1].getName(current) + copyServiceFiles(current, dest, name) + except Exception, e: + self.session.open(MessageBox, str(e), MessageBox.TYPE_ERROR) + + def stopTimer(self, timer): + if timer.isRunning(): + if timer.repeated: + timer.enable() + timer.processRepeated(findRunningEvent = False) + self.session.nav.RecordTimer.doActivate(timer) + else: + timer.afterEvent = RecordTimer.AFTEREVENT.NONE + NavigationInstance.instance.RecordTimer.removeEntry(timer) + + def onTimerChoice(self, choice): + if isinstance(choice, tuple) and choice[1]: + choice, timer = choice[1] + if not choice: + # cancel + return + if "s" in choice: + self.stopTimer(timer) + if "d" in choice: + self.delete(True) + + def do_delete(self): + self.delete() + + def delete(self, *args): + if args and (not args[0]): + # cancelled by user (passing any arg means it's a dialog return) + return + item = self.getCurrentSelection() + if not canDelete(item): + if item and isTrashFolder(item[0]): + # Red button to empty trashcan... + self.purgeAll() + return + current = item[0] + info = item[1] + cur_path = os.path.realpath(current.getPath()) + st = os.stat(cur_path) + name = info and info.getName(current) or _("this recording") + are_you_sure = _("Do you really want to delete %s?") % (name) + if current.flags & eServiceReference.mustDescent: + files = 0 + subdirs = 0 + if args: + # already confirmed... + # but not implemented yet... + msg = '' + if config.usage.movielist_trashcan.value: + try: + # Move the files to the trash can in a way that their CTIME is + # set to "now". A simple move would not correctly update the + # ctime, and hence trigger a very early purge. + trash = Tools.Trashcan.createTrashFolder(cur_path) + trash = os.path.join(trash, os.path.split(cur_path)[1]) + os.mkdir(trash) + for root, dirnames, filenames in os.walk(cur_path): + trashroot = os.path.join(trash, root[len(cur_path)+1:]) + for fn in filenames: + print "Move %s -> %s" % (os.path.join(root, fn), os.path.join(trashroot, fn)) + os.rename(os.path.join(root, fn), os.path.join(trashroot, fn)) + for dn in dirnames: + print "MkDir", os.path.join(trashroot, dn) + os.mkdir(os.path.join(trashroot, dn)) + # second pass to remove the empty directories + for root, dirnames, filenames in os.walk(cur_path, topdown=False): + for dn in dirnames: + print "rmdir", os.path.join(trashroot, dn) + os.rmdir(os.path.join(root, dn)) + os.rmdir(cur_path) + self["list"].removeService(current) + self.showActionFeedback(_("Deleted") + " " + name) + # Files were moved to .Trash, ok. + return + except OSError, e: + print "[MovieSelection] Cannot move to trash", e + if e.errno == 18: + # This occurs when moving across devices + msg = _("Cannot move files on a different disk or system to the trash can") + ". " + else: + msg = _("Cannot move to trash can") + ".\n" + str(e) + "\n" + except Exception, e: + print "[MovieSelection] Weird error moving to trash", e + # Failed to create trash or move files. + msg = _("Cannot move to trash can") + "\n" + str(e) + "\n" + msg += _("Sorry, deleting directories can (for now) only be done through the trash can.") + self.session.open(MessageBox, msg, MessageBox.TYPE_ERROR) + return + for fn in os.listdir(cur_path): + if (fn != '.') and (fn != '..'): + ffn = os.path.join(cur_path, fn) + if os.path.isdir(ffn): + subdirs += 1 + else: + files += 1 + if files or subdirs: + msg = _("Directory contains %s and %s.") % (ngettext("%d file", "%d files", files) % files, ngettext("%d subdirectory", "%d subdirectories", subdirs) % subdirs) + '\n' + are_you_sure + if isInTrashFolder(current): + # Red button to empty trashcan item or subdir + msg = _("Deleted items") + "\n" + msg + callback = self.purgeConfirmed + else: + callback = self.delete + self.session.openWithCallback(callback, MessageBox, msg) + return + else: + try: + os.rmdir(cur_path) + except Exception, e: + print "[MovieSelection] Failed delete", e + self.session.open(MessageBox, _("Delete failed!") + "\n" + str(e), MessageBox.TYPE_ERROR) + else: + self["list"].removeService(current) + self.showActionFeedback(_("Deleted") + " " + name) + else: + if not args: + rec_filename = os.path.split(current.getPath())[1] + if rec_filename.endswith(".ts"): rec_filename = rec_filename[:-3] + for timer in NavigationInstance.instance.RecordTimer.timer_list: + if timer.isRunning() and not timer.justplay and rec_filename in timer.Filename: + choices = [ + (_("Cancel"), None), + (_("Stop recording"), ("s", timer)), + (_("Stop recording and delete"), ("sd", timer))] + self.session.openWithCallback(self.onTimerChoice, ChoiceBox, title=_("Recording in progress") + ":\n%s" % name, list=choices) + return + if time.time() - st.st_mtime < 5: + if not args: + self.session.openWithCallback(self.delete, MessageBox, _("File appears to be busy.\n") + are_you_sure) + return + if config.usage.movielist_trashcan.value: + try: + trash = Tools.Trashcan.createTrashFolder(cur_path) + # Also check whether we're INSIDE the trash, then it's a purge. + if cur_path.startswith(trash): + msg = _("Deleted items") + "\n" + else: + moveServiceFiles(current, trash, name, allowCopy=False) + self["list"].removeService(current) + # Files were moved to .Trash, ok. + from Screens.InfoBarGenerics import delResumePoint + delResumePoint(current) + self.showActionFeedback(_("Deleted") + " " + name) + return + except OSError, e: + print "[MovieSelection] Cannot move to trash", e + if e.errno == 18: + # This occurs when moving across devices + msg = _("Cannot move files on a different disk or system to the trash can") + ". " + else: + msg = _("Cannot move to trash can") + ".\n" + str(e) + "\n" + except Exception, e: + print "[MovieSelection] Weird error moving to trash", e + # Failed to create trash or move files. + msg = _("Cannot move to trash can") + "\n" + str(e) + "\n" + else: + msg = '' + self.session.openWithCallback(self.deleteConfirmed, MessageBox, msg + are_you_sure) + + def deleteConfirmed(self, confirmed): + if not confirmed: + return + item = self.getCurrentSelection() + if item is None: + return # huh? + current = item[0] + info = item[1] + name = info and info.getName(current) or _("this recording") + serviceHandler = eServiceCenter.getInstance() + offline = serviceHandler.offlineOperations(current) + try: + if offline is None: + from enigma import eBackgroundFileEraser + eBackgroundFileEraser.getInstance().erase(os.path.realpath(current.getPath())) + else: + if offline.deleteFromDisk(0): + raise Exception, "Offline delete failed" + self["list"].removeService(current) + from Screens.InfoBarGenerics import delResumePoint + delResumePoint(current) + self.showActionFeedback(_("Deleted") + " " + name) + except Exception, ex: + self.session.open(MessageBox, _("Delete failed!") + "\n" + name + "\n" + str(ex), MessageBox.TYPE_ERROR) + + + def purgeAll(self): + recordings = self.session.nav.getRecordings() + next_rec_time = -1 + msg = _("Permanently delete all recordings in the trash can?") + if not recordings: + next_rec_time = self.session.nav.RecordTimer.getNextRecordingTime() + if recordings or (next_rec_time > 0 and (next_rec_time - time.time()) < 120): + msg += "\n" + _("Recording(s) are in progress or coming up in few seconds!") + self.session.openWithCallback(self.purgeConfirmed, MessageBox, msg) + + def purgeConfirmed(self, confirmed): + if not confirmed: + return + item = self.getCurrentSelection() + current = item[0] + cur_path = os.path.realpath(current.getPath()) + Tools.Trashcan.cleanAll(cur_path) + + def showNetworkSetup(self): + import NetworkSetup + self.session.open(NetworkSetup.NetworkAdapterSelection) + + def showActionFeedback(self, text): + if self.feedbackTimer is None: + self.feedbackTimer = eTimer() + self.feedbackTimer.callback.append(self.hideActionFeedback) + else: + self.feedbackTimer.stop() + self.feedbackTimer.start(3000, 1) + self.diskinfo.setText(text) + + def hideActionFeedback(self): + print "[ML] hide feedback" + self.diskinfo.update() + + def can_gohome(self, item): + return True + + def do_gohome(self): + self.gotFilename(defaultMoviePath()) + + def do_sort(self): + index = 0 + for index, item in enumerate(l_moviesort): + if int(item[0]) == int(config.movielist.moviesort.value): + break + if index >= len(l_moviesort) - 1: + index = 0 + else: + index += 1 + #descriptions in native languages too long... + sorttext = l_moviesort[index][2] + if config.movielist.btn_red.value == "sort": self['key_red'].setText(sorttext) + if config.movielist.btn_green.value == "sort": self['key_green'].setText(sorttext) + if config.movielist.btn_yellow.value == "sort": self['key_yellow'].setText(sorttext) + if config.movielist.btn_blue.value == "sort": self['key_blue'].setText(sorttext) + self.sorttimer = eTimer() + self.sorttimer.callback.append(self._updateButtonTexts) + self.sorttimer.start(1500, True) #time for displaying sorting type just applied + self.sortBy(int(l_moviesort[index][0])) + self["movie_sort"].setPixmapNum(int(l_moviesort[index][0])-1) + + def do_listtype(self): + index = 0 + for index, item in enumerate(l_listtype): + if int(item[0]) == int(config.movielist.listtype.value): + break + if index >= len(l_listtype) - 1: + index = 0 + else: + index += 1 + self.listType(int(l_listtype[index][0])) + + def do_preview(self): + self.preview() + + def displaySortStatus(self): + self["movie_sort"].setPixmapNum(int(config.movielist.moviesort.value)-1) + self["movie_sort"].show() + + def can_movieoff(self, item): + return True + + def do_movieoff(self): + self.setNextMovieOffStatus() + self.displayMovieOffStatus() + + def displayMovieOffStatus(self): + self["movie_off"].setPixmapNum(config.usage.on_movie_eof.getIndex()) + self["movie_off"].show() + + def setNextMovieOffStatus(self): + config.usage.on_movie_eof.selectNext() + self.settings["movieoff"] = config.usage.on_movie_eof.value + self.saveLocalSettings() + + def can_movieoff_menu(self, item): + return True + + def do_movieoff_menu(self): + current_movie_eof = config.usage.on_movie_eof.value + menu = [] + for x in config.usage.on_movie_eof.choices: + config.usage.on_movie_eof.value = x + menu.append((config.usage.on_movie_eof.getText(), x)) + config.usage.on_movie_eof.value = current_movie_eof + used = config.usage.on_movie_eof.getIndex() + self.session.openWithCallback(self.movieoffMenuCallback, ChoiceBox, title = _("On end of movie"), list = menu, selection = used) + + def movieoffMenuCallback(self, choice): + if choice is None: + return + self.settings["movieoff"] = choice[1] + self.saveLocalSettings() + self.displayMovieOffStatus() + + def createPlaylist(self): + global playlist + items = playlist + del items[:] + for index, item in enumerate(self["list"]): + if item: + item = item[0] + path = item.getPath() + if not item.flags & eServiceReference.mustDescent: + ext = os.path.splitext(path)[1].lower() + if ext in IMAGE_EXTENSIONS: + continue + else: + items.append(item) + +playlist = [] diff --git a/lib/python/Screens/Mute.py b/lib/python/Screens/Mute.py new file mode 100644 index 0000000..f80267a --- /dev/null +++ b/lib/python/Screens/Mute.py @@ -0,0 +1,5 @@ +from Screen import Screen + +class Mute(Screen): + pass + diff --git a/lib/python/Screens/NetworkSetup.py b/lib/python/Screens/NetworkSetup.py new file mode 100644 index 0000000..d63ca69 --- /dev/null +++ b/lib/python/Screens/NetworkSetup.py @@ -0,0 +1,1401 @@ +from Screens.Screen import Screen +from Screens.MessageBox import MessageBox +from Screens.InputBox import InputBox +from Screens.Standby import * +from Screens.VirtualKeyBoard import VirtualKeyBoard +from Screens.HelpMenu import HelpableScreen +from Components.Network import iNetwork +from Components.Sources.StaticText import StaticText +from Components.Sources.Boolean import Boolean +from Components.Sources.List import List +from Components.Label import Label,MultiColorLabel +from Components.Pixmap import Pixmap,MultiPixmap +from Components.MenuList import MenuList +from Components.config import config, ConfigYesNo, ConfigIP, NoSave, ConfigText, ConfigPassword, ConfigSelection, getConfigListEntry, ConfigNothing, ConfigBoolean +from Components.ConfigList import ConfigListScreen +from Components.PluginComponent import plugins +from Components.MultiContent import MultiContentEntryText, MultiContentEntryPixmapAlphaTest +from Components.ActionMap import ActionMap, NumberActionMap, HelpableActionMap +from Tools.Directories import resolveFilename, SCOPE_PLUGINS, SCOPE_CURRENT_SKIN +from Tools.LoadPixmap import LoadPixmap +from Plugins.Plugin import PluginDescriptor +from enigma import eTimer, ePoint, eSize, RT_HALIGN_LEFT, eListboxPythonMultiContent, gFont +from os import path as os_path, system as os_system, unlink +from re import compile as re_compile, search as re_search + + +class NetworkAdapterSelection(Screen,HelpableScreen): + def __init__(self, session): + Screen.__init__(self, session) + HelpableScreen.__init__(self) + + self.wlan_errortext = _("No working wireless network adapter found.\nPlease verify that you have attached a compatible WLAN device and your network is configured correctly.") + self.lan_errortext = _("No working local network adapter found.\nPlease verify that you have attached a network cable and your network is configured correctly.") + self.oktext = _("Press OK on your remote control to continue.") + self.edittext = _("Press OK to edit the settings.") + self.defaulttext = _("Press yellow to set this interface as default interface.") + self.restartLanRef = None + + self["key_red"] = StaticText(_("Close")) + self["key_green"] = StaticText(_("Select")) + self["key_yellow"] = StaticText("") + self["key_blue"] = StaticText("") + self["introduction"] = StaticText(self.edittext) + + self["OkCancelActions"] = HelpableActionMap(self, "OkCancelActions", + { + "cancel": (self.close, _("Exit network interface list")), + "ok": (self.okbuttonClick, _("Select interface")), + }) + + self["ColorActions"] = HelpableActionMap(self, "ColorActions", + { + "red": (self.close, _("Exit network interface list")), + "green": (self.okbuttonClick, _("Select interface")), + "blue": (self.openNetworkWizard, _("Use the network wizard to configure selected network adapter")), + }) + + self["DefaultInterfaceAction"] = HelpableActionMap(self, "ColorActions", + { + "yellow": (self.setDefaultInterface, [_("Set interface as default Interface"),_("* Only available if more than one interface is active.")] ), + }) + + self.adapters = [(iNetwork.getFriendlyAdapterName(x),x) for x in iNetwork.getAdapterList()] + + if not self.adapters: + self.adapters = [(iNetwork.getFriendlyAdapterName(x),x) for x in iNetwork.getConfiguredAdapters()] + + if len(self.adapters) == 0: + self.adapters = [(iNetwork.getFriendlyAdapterName(x),x) for x in iNetwork.getInstalledAdapters()] + + self.list = [] + self["list"] = List(self.list) + self.updateList() + + if len(self.adapters) == 1: + self.onFirstExecBegin.append(self.okbuttonClick) + self.onClose.append(self.cleanup) + + def buildInterfaceList(self,iface,name,default,active ): + divpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/div-h.png")) + defaultpng = None + activepng = None + description = None + interfacepng = None + + if not iNetwork.isWirelessInterface(iface): + if active is True: + interfacepng = LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/icons/network_wired-active.png")) + elif active is False: + interfacepng = LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/icons/network_wired-inactive.png")) + else: + interfacepng = LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/icons/network_wired.png")) + elif iNetwork.isWirelessInterface(iface): + if active is True: + interfacepng = LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/icons/network_wireless-active.png")) + elif active is False: + interfacepng = LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/icons/network_wireless-inactive.png")) + else: + interfacepng = LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/icons/network_wireless.png")) + + num_configured_if = len(iNetwork.getConfiguredAdapters()) + if num_configured_if >= 2: + if default is True: + defaultpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/buttons/button_blue.png")) + elif default is False: + defaultpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/buttons/button_blue_off.png")) + if active is True: + activepng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/icons/lock_on.png")) + elif active is False: + activepng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/icons/lock_error.png")) + + description = iNetwork.getFriendlyAdapterDescription(iface) + + return((iface, name, description, interfacepng, defaultpng, activepng, divpng)) + + def updateList(self): + self.list = [] + default_gw = None + num_configured_if = len(iNetwork.getConfiguredAdapters()) + if num_configured_if >= 2: + self["key_yellow"].setText(_("Default")) + self["introduction"].setText(self.defaulttext) + self["DefaultInterfaceAction"].setEnabled(True) + else: + self["key_yellow"].setText("") + self["introduction"].setText(self.edittext) + self["DefaultInterfaceAction"].setEnabled(False) + + if num_configured_if < 2 and os_path.exists("/etc/default_gw"): + unlink("/etc/default_gw") + + if os_path.exists("/etc/default_gw"): + fp = file('/etc/default_gw', 'r') + result = fp.read() + fp.close() + default_gw = result + + for x in self.adapters: + if x[1] == default_gw: + default_int = True + else: + default_int = False + if iNetwork.getAdapterAttribute(x[1], 'up') is True: + active_int = True + else: + active_int = False + self.list.append(self.buildInterfaceList(x[1],_(x[0]),default_int,active_int )) + + if os_path.exists(resolveFilename(SCOPE_PLUGINS, "SystemPlugins/NetworkWizard/networkwizard.xml")): + self["key_blue"].setText(_("Network wizard")) + self["list"].setList(self.list) + + def setDefaultInterface(self): + selection = self["list"].getCurrent() + num_if = len(self.list) + old_default_gw = None + num_configured_if = len(iNetwork.getConfiguredAdapters()) + if os_path.exists("/etc/default_gw"): + fp = open('/etc/default_gw', 'r') + old_default_gw = fp.read() + fp.close() + if num_configured_if > 1 and (not old_default_gw or old_default_gw != selection[0]): + fp = open('/etc/default_gw', 'w+') + fp.write(selection[0]) + fp.close() + self.restartLan() + elif old_default_gw and num_configured_if < 2: + unlink("/etc/default_gw") + self.restartLan() + + def okbuttonClick(self): + selection = self["list"].getCurrent() + if selection is not None: + self.session.openWithCallback(self.AdapterSetupClosed, AdapterSetupConfiguration, selection[0]) + + def AdapterSetupClosed(self, *ret): + if len(self.adapters) == 1: + self.close() + else: + self.updateList() + + def cleanup(self): + iNetwork.stopLinkStateConsole() + iNetwork.stopRestartConsole() + iNetwork.stopGetInterfacesConsole() + + def restartLan(self): + iNetwork.restartNetwork(self.restartLanDataAvail) + self.restartLanRef = self.session.openWithCallback(self.restartfinishedCB, MessageBox, _("Please wait while we configure your network..."), type = MessageBox.TYPE_INFO, enable_input = False) + + def restartLanDataAvail(self, data): + if data is True: + iNetwork.getInterfaces(self.getInterfacesDataAvail) + + def getInterfacesDataAvail(self, data): + if data is True: + self.restartLanRef.close(True) + + def restartfinishedCB(self,data): + if data is True: + self.updateList() + self.session.open(MessageBox, _("Finished configuring your network"), type = MessageBox.TYPE_INFO, timeout = 10, default = False) + + def openNetworkWizard(self): + if os_path.exists(resolveFilename(SCOPE_PLUGINS, "SystemPlugins/NetworkWizard/networkwizard.xml")): + try: + from Plugins.SystemPlugins.NetworkWizard.NetworkWizard import NetworkWizard + except ImportError: + self.session.open(MessageBox, _("The network wizard extension is not installed!\nPlease install it."), type = MessageBox.TYPE_INFO,timeout = 10 ) + else: + selection = self["list"].getCurrent() + if selection is not None: + self.session.openWithCallback(self.AdapterSetupClosed, NetworkWizard, selection[0]) + + +class NameserverSetup(Screen, ConfigListScreen, HelpableScreen): + def __init__(self, session): + Screen.__init__(self, session) + HelpableScreen.__init__(self) + self.backupNameserverList = iNetwork.getNameserverList()[:] + print "backup-list:", self.backupNameserverList + + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("Add")) + self["key_yellow"] = StaticText(_("Delete")) + + self["introduction"] = StaticText(_("Press OK to activate the settings.")) + self.createConfig() + + self["OkCancelActions"] = HelpableActionMap(self, "OkCancelActions", + { + "cancel": (self.cancel, _("Exit nameserver configuration")), + "ok": (self.ok, _("Activate current configuration")), + }) + + self["ColorActions"] = HelpableActionMap(self, "ColorActions", + { + "red": (self.cancel, _("Exit nameserver configuration")), + "green": (self.add, _("Add a nameserver entry")), + "yellow": (self.remove, _("Remove a nameserver entry")), + }) + + self["actions"] = NumberActionMap(["SetupActions"], + { + "ok": self.ok, + }, -2) + + self.list = [] + ConfigListScreen.__init__(self, self.list) + self.createSetup() + + def createConfig(self): + self.nameservers = iNetwork.getNameserverList() + self.nameserverEntries = [ NoSave(ConfigIP(default=nameserver)) for nameserver in self.nameservers] + + def createSetup(self): + self.list = [] + + i = 1 + for x in self.nameserverEntries: + self.list.append(getConfigListEntry(_("Nameserver %d") % (i), x)) + i += 1 + + self["config"].list = self.list + self["config"].l.setList(self.list) + + def ok(self): + iNetwork.clearNameservers() + for nameserver in self.nameserverEntries: + iNetwork.addNameserver(nameserver.value) + iNetwork.writeNameserverConfig() + self.close() + + def run(self): + self.ok() + + def cancel(self): + iNetwork.clearNameservers() + print "backup-list:", self.backupNameserverList + for nameserver in self.backupNameserverList: + iNetwork.addNameserver(nameserver) + self.close() + + def add(self): + iNetwork.addNameserver([0,0,0,0]) + self.createConfig() + self.createSetup() + + def remove(self): + print "currentIndex:", self["config"].getCurrentIndex() + index = self["config"].getCurrentIndex() + if index < len(self.nameservers): + iNetwork.removeNameserver(self.nameservers[index]) + self.createConfig() + self.createSetup() + + +class AdapterSetup(Screen, ConfigListScreen, HelpableScreen): + def __init__(self, session, networkinfo, essid=None): + Screen.__init__(self, session) + HelpableScreen.__init__(self) + self.session = session + if isinstance(networkinfo, (list, tuple)): + self.iface = networkinfo[0] + self.essid = networkinfo[1] + else: + self.iface = networkinfo + self.essid = essid + + self.extended = None + self.applyConfigRef = None + self.finished_cb = None + self.oktext = _("Press OK on your remote control to continue.") + self.oldInterfaceState = iNetwork.getAdapterAttribute(self.iface, "up") + + self.createConfig() + + self["OkCancelActions"] = HelpableActionMap(self, "OkCancelActions", + { + "cancel": (self.keyCancel, _("exit network adapter configuration")), + "ok": (self.keySave, _("activate network adapter configuration")), + }) + + self["ColorActions"] = HelpableActionMap(self, "ColorActions", + { + "red": (self.keyCancel, _("exit network adapter configuration")), + "blue": (self.KeyBlue, _("open nameserver configuration")), + }) + + self["actions"] = NumberActionMap(["SetupActions"], + { + "ok": self.keySave, + }, -2) + + self.list = [] + ConfigListScreen.__init__(self, self.list,session = self.session) + self.createSetup() + self.onLayoutFinish.append(self.layoutFinished) + self.onClose.append(self.cleanup) + + self["DNS1text"] = StaticText(_("Primary DNS")) + self["DNS2text"] = StaticText(_("Secondary DNS")) + self["DNS1"] = StaticText() + self["DNS2"] = StaticText() + self["introduction"] = StaticText(_("Current settings:")) + + self["IPtext"] = StaticText(_("IP address")) + self["Netmasktext"] = StaticText(_("Netmask")) + self["Gatewaytext"] = StaticText(_("Gateway")) + + self["IP"] = StaticText() + self["Mask"] = StaticText() + self["Gateway"] = StaticText() + + self["Adaptertext"] = StaticText(_("Network:")) + self["Adapter"] = StaticText() + self["introduction2"] = StaticText(_("Press OK to activate the settings.")) + self["key_red"] = StaticText(_("Cancel")) + self["key_blue"] = StaticText(_("Edit DNS")) + + self["VKeyIcon"] = Boolean(False) + self["HelpWindow"] = Pixmap() + self["HelpWindow"].hide() + + def layoutFinished(self): + self["DNS1"].setText(self.primaryDNS.getText()) + self["DNS2"].setText(self.secondaryDNS.getText()) + if self.ipConfigEntry.getText() is not None: + if self.ipConfigEntry.getText() == "0.0.0.0": + self["IP"].setText(_("N/A")) + else: + self["IP"].setText(self.ipConfigEntry.getText()) + else: + self["IP"].setText(_("N/A")) + if self.netmaskConfigEntry.getText() is not None: + if self.netmaskConfigEntry.getText() == "0.0.0.0": + self["Mask"].setText(_("N/A")) + else: + self["Mask"].setText(self.netmaskConfigEntry.getText()) + else: + self["IP"].setText(_("N/A")) + if iNetwork.getAdapterAttribute(self.iface, "gateway"): + if self.gatewayConfigEntry.getText() == "0.0.0.0": + self["Gatewaytext"].setText(_("Gateway")) + self["Gateway"].setText(_("N/A")) + else: + self["Gatewaytext"].setText(_("Gateway")) + self["Gateway"].setText(self.gatewayConfigEntry.getText()) + else: + self["Gateway"].setText("") + self["Gatewaytext"].setText("") + self["Adapter"].setText(iNetwork.getFriendlyAdapterName(self.iface)) + + def createConfig(self): + self.InterfaceEntry = None + self.dhcpEntry = None + self.gatewayEntry = None + self.hiddenSSID = None + self.wlanSSID = None + self.encryption = None + self.encryptionType = None + self.encryptionKey = None + self.encryptionlist = None + self.weplist = None + self.wsconfig = None + self.default = None + + if iNetwork.isWirelessInterface(self.iface): + from Plugins.SystemPlugins.WirelessLan.Wlan import wpaSupplicant + self.ws = wpaSupplicant() + self.encryptionlist = [] + self.encryptionlist.append(("Unencrypted", _("Unencrypted"))) + self.encryptionlist.append(("WEP", _("WEP"))) + self.encryptionlist.append(("WPA", _("WPA"))) + self.encryptionlist.append(("WPA/WPA2", _("WPA or WPA2"))) + self.encryptionlist.append(("WPA2", _("WPA2"))) + self.weplist = [] + self.weplist.append("ASCII") + self.weplist.append("HEX") + + self.wsconfig = self.ws.loadConfig(self.iface) + if self.essid is None: + self.essid = self.wsconfig['ssid'] + + config.plugins.wlan.hiddenessid = NoSave(ConfigYesNo(default = self.wsconfig['hiddenessid'])) + config.plugins.wlan.essid = NoSave(ConfigText(default = self.essid, visible_width = 50, fixed_size = False)) + config.plugins.wlan.encryption = NoSave(ConfigSelection(self.encryptionlist, default = self.wsconfig['encryption'] )) + config.plugins.wlan.wepkeytype = NoSave(ConfigSelection(self.weplist, default = self.wsconfig['wepkeytype'] )) + config.plugins.wlan.psk = NoSave(ConfigPassword(default = self.wsconfig['key'], visible_width = 50, fixed_size = False)) + + self.activateInterfaceEntry = NoSave(ConfigYesNo(default=iNetwork.getAdapterAttribute(self.iface, "up") or False)) + self.dhcpConfigEntry = NoSave(ConfigYesNo(default=iNetwork.getAdapterAttribute(self.iface, "dhcp") or False)) + self.ipConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "ip")) or [0,0,0,0]) + self.netmaskConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "netmask") or [255,0,0,0])) + if iNetwork.getAdapterAttribute(self.iface, "gateway"): + self.dhcpdefault=True + else: + self.dhcpdefault=False + self.hasGatewayConfigEntry = NoSave(ConfigYesNo(default=self.dhcpdefault or False)) + self.gatewayConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "gateway") or [0,0,0,0])) + nameserver = (iNetwork.getNameserverList() + [[0,0,0,0]] * 2)[0:2] + self.primaryDNS = NoSave(ConfigIP(default=nameserver[0])) + self.secondaryDNS = NoSave(ConfigIP(default=nameserver[1])) + + def createSetup(self): + self.list = [] + self.InterfaceEntry = getConfigListEntry(_("Use interface"), self.activateInterfaceEntry) + + self.list.append(self.InterfaceEntry) + if self.activateInterfaceEntry.value: + self.dhcpEntry = getConfigListEntry(_("Use DHCP"), self.dhcpConfigEntry) + self.list.append(self.dhcpEntry) + if not self.dhcpConfigEntry.value: + self.list.append(getConfigListEntry(_('IP address'), self.ipConfigEntry)) + self.list.append(getConfigListEntry(_('Netmask'), self.netmaskConfigEntry)) + self.gatewayEntry = getConfigListEntry(_('Use a gateway'), self.hasGatewayConfigEntry) + self.list.append(self.gatewayEntry) + if self.hasGatewayConfigEntry.value: + self.list.append(getConfigListEntry(_('Gateway'), self.gatewayConfigEntry)) + if SystemInfo["WakeOnLAN"] and self.iface == 'eth0': + self.list.append(getConfigListEntry(_('Enable Wake On LAN'), config.usage.wakeOnLAN)) + + self.extended = None + self.configStrings = None + for p in plugins.getPlugins(PluginDescriptor.WHERE_NETWORKSETUP): + callFnc = p.__call__["ifaceSupported"](self.iface) + if callFnc is not None: + if p.__call__.has_key("WlanPluginEntry"): # internally used only for WLAN Plugin + self.extended = callFnc + if p.__call__.has_key("configStrings"): + self.configStrings = p.__call__["configStrings"] + + self.hiddenSSID = getConfigListEntry(_("Hidden network"), config.plugins.wlan.hiddenessid) + self.list.append(self.hiddenSSID) + self.wlanSSID = getConfigListEntry(_("Network name (SSID)"), config.plugins.wlan.essid) + self.list.append(self.wlanSSID) + self.encryption = getConfigListEntry(_("Encryption"), config.plugins.wlan.encryption) + self.list.append(self.encryption) + + self.encryptionType = getConfigListEntry(_("Encryption key type"), config.plugins.wlan.wepkeytype) + self.encryptionKey = getConfigListEntry(_("Encryption key"), config.plugins.wlan.psk) + + if config.plugins.wlan.encryption.value != "Unencrypted": + if config.plugins.wlan.encryption.value == 'WEP': + self.list.append(self.encryptionType) + self.list.append(self.encryptionKey) + self["config"].list = self.list + self["config"].l.setList(self.list) + + def KeyBlue(self): + self.session.openWithCallback(self.NameserverSetupClosed, NameserverSetup) + + def newConfig(self): + if self["config"].getCurrent() == self.InterfaceEntry: + self.createSetup() + if self["config"].getCurrent() == self.dhcpEntry: + self.createSetup() + if self["config"].getCurrent() == self.gatewayEntry: + self.createSetup() + if iNetwork.isWirelessInterface(self.iface): + if self["config"].getCurrent() == self.encryption: + self.createSetup() + + def keyLeft(self): + ConfigListScreen.keyLeft(self) + self.newConfig() + + def keyRight(self): + ConfigListScreen.keyRight(self) + self.newConfig() + + def keySave(self): + if SystemInfo["WakeOnLAN"]: + config.usage.wakeOnLAN.save() + self.hideInputHelp() + if self["config"].isChanged(): + self.session.openWithCallback(self.keySaveConfirm, MessageBox, (_("Are you sure you want to activate this network configuration?\n\n") + self.oktext ) ) + else: + if self.finished_cb: + self.finished_cb() + else: + self.close('cancel') + + def keySaveConfirm(self, ret = False): + if (ret == True): + num_configured_if = len(iNetwork.getConfiguredAdapters()) + if num_configured_if >= 1: + if self.iface in iNetwork.getConfiguredAdapters(): + self.applyConfig(True) + else: + self.session.openWithCallback(self.secondIfaceFoundCB, MessageBox, _("A second configured interface has been found.\n\nDo you want to disable the second network interface?"), default = True) + else: + self.applyConfig(True) + else: + self.keyCancel() + + def secondIfaceFoundCB(self,data): + if data is False: + self.applyConfig(True) + else: + configuredInterfaces = iNetwork.getConfiguredAdapters() + for interface in configuredInterfaces: + if interface == self.iface: + continue + iNetwork.setAdapterAttribute(interface, "up", False) + iNetwork.deactivateInterface(configuredInterfaces,self.deactivateSecondInterfaceCB) + + def deactivateSecondInterfaceCB(self, data): + if data is True: + self.applyConfig(True) + + def applyConfig(self, ret = False): + if (ret == True): + self.applyConfigRef = None + iNetwork.setAdapterAttribute(self.iface, "up", self.activateInterfaceEntry.value) + iNetwork.setAdapterAttribute(self.iface, "dhcp", self.dhcpConfigEntry.value) + iNetwork.setAdapterAttribute(self.iface, "ip", self.ipConfigEntry.value) + iNetwork.setAdapterAttribute(self.iface, "netmask", self.netmaskConfigEntry.value) + if self.hasGatewayConfigEntry.value: + iNetwork.setAdapterAttribute(self.iface, "gateway", self.gatewayConfigEntry.value) + else: + iNetwork.removeAdapterAttribute(self.iface, "gateway") + + if (self.extended is not None and self.configStrings is not None): + iNetwork.setAdapterAttribute(self.iface, "configStrings", self.configStrings(self.iface)) + self.ws.writeConfig(self.iface) + + if self.activateInterfaceEntry.value is False: + iNetwork.deactivateInterface(self.iface,self.deactivateInterfaceCB) + iNetwork.writeNetworkConfig() + self.applyConfigRef = self.session.openWithCallback(self.applyConfigfinishedCB, MessageBox, _("Please wait for activation of your network configuration..."), type = MessageBox.TYPE_INFO, enable_input = False) + else: + if self.oldInterfaceState is False: + iNetwork.activateInterface(self.iface,self.deactivateInterfaceCB) + else: + iNetwork.deactivateInterface(self.iface,self.activateInterfaceCB) + iNetwork.writeNetworkConfig() + self.applyConfigRef = self.session.openWithCallback(self.applyConfigfinishedCB, MessageBox, _("Please wait for activation of your network configuration..."), type = MessageBox.TYPE_INFO, enable_input = False) + else: + self.keyCancel() + + def deactivateInterfaceCB(self, data): + if data is True: + self.applyConfigDataAvail(True) + + def activateInterfaceCB(self, data): + if data is True: + iNetwork.activateInterface(self.iface,self.applyConfigDataAvail) + + def applyConfigDataAvail(self, data): + if data is True: + iNetwork.getInterfaces(self.getInterfacesDataAvail) + + def getInterfacesDataAvail(self, data): + if data is True: + self.applyConfigRef.close(True) + + def applyConfigfinishedCB(self,data): + if data is True: + if self.finished_cb: + self.session.openWithCallback(lambda x : self.finished_cb(), MessageBox, _("Your network configuration has been activated."), type = MessageBox.TYPE_INFO, timeout = 10) + else: + self.session.openWithCallback(self.ConfigfinishedCB, MessageBox, _("Your network configuration has been activated."), type = MessageBox.TYPE_INFO, timeout = 10) + + def ConfigfinishedCB(self,data): + if data is not None: + if data is True: + self.close('ok') + + def keyCancelConfirm(self, result): + if not result: + return + if self.oldInterfaceState is False: + iNetwork.deactivateInterface(self.iface,self.keyCancelCB) + else: + self.close('cancel') + + def keyCancel(self): + self.hideInputHelp() + if self["config"].isChanged(): + self.session.openWithCallback(self.keyCancelConfirm, MessageBox, _("Really close without saving settings?")) + else: + self.close('cancel') + + def keyCancelCB(self,data): + if data is not None: + if data is True: + self.close('cancel') + + def runAsync(self, finished_cb): + self.finished_cb = finished_cb + self.keySave() + + def NameserverSetupClosed(self, *ret): + iNetwork.loadNameserverConfig() + nameserver = (iNetwork.getNameserverList() + [[0,0,0,0]] * 2)[0:2] + self.primaryDNS = NoSave(ConfigIP(default=nameserver[0])) + self.secondaryDNS = NoSave(ConfigIP(default=nameserver[1])) + self.createSetup() + self.layoutFinished() + + def cleanup(self): + iNetwork.stopLinkStateConsole() + + def hideInputHelp(self): + current = self["config"].getCurrent() + if current == self.wlanSSID: + if current[1].help_window.instance is not None: + current[1].help_window.instance.hide() + elif current == self.encryptionKey and config.plugins.wlan.encryption.value is not "Unencrypted": + if current[1].help_window.instance is not None: + current[1].help_window.instance.hide() + + +class AdapterSetupConfiguration(Screen, HelpableScreen): + def __init__(self, session,iface): + Screen.__init__(self, session) + HelpableScreen.__init__(self) + self.session = session + self.iface = iface + self.restartLanRef = None + self.LinkState = None + self.mainmenu = self.genMainMenu() + self["menulist"] = MenuList(self.mainmenu) + self["key_red"] = StaticText(_("Close")) + self["description"] = StaticText() + self["IFtext"] = StaticText() + self["IF"] = StaticText() + self["Statustext"] = StaticText() + self["statuspic"] = MultiPixmap() + self["statuspic"].hide() + + self.oktext = _("Press OK on your remote control to continue.") + self.reboottext = _("Your receiver will restart after pressing OK on your remote control.") + self.errortext = _("No working wireless network interface found.\n Please verify that you have attached a compatible WLAN device or enable your local network interface.") + self.missingwlanplugintxt = _("The wireless LAN plugin is not installed!\nPlease install it.") + + self["WizardActions"] = HelpableActionMap(self, "WizardActions", + { + "up": (self.up, _("move up to previous entry")), + "down": (self.down, _("move down to next entry")), + "left": (self.left, _("move up to first entry")), + "right": (self.right, _("move down to last entry")), + }) + + self["OkCancelActions"] = HelpableActionMap(self, "OkCancelActions", + { + "cancel": (self.close, _("exit networkadapter setup menu")), + "ok": (self.ok, _("select menu entry")), + }) + + self["ColorActions"] = HelpableActionMap(self, "ColorActions", + { + "red": (self.close, _("exit networkadapter setup menu")), + }) + + self["actions"] = NumberActionMap(["WizardActions","ShortcutActions"], + { + "ok": self.ok, + "back": self.close, + "up": self.up, + "down": self.down, + "red": self.close, + "left": self.left, + "right": self.right, + }, -2) + + self.updateStatusbar() + self.onLayoutFinish.append(self.layoutFinished) + self.onClose.append(self.cleanup) + + + def queryWirelessDevice(self,iface): + try: + from pythonwifi.iwlibs import Wireless + import errno + except ImportError: + return False + else: + try: + ifobj = Wireless(iface) # a Wireless NIC Object + wlanresponse = ifobj.getAPaddr() + except IOError, (error_no, error_str): + if error_no in (errno.EOPNOTSUPP, errno.ENODEV, errno.EPERM): + return False + else: + print "error: ",error_no,error_str + return True + else: + return True + + def ok(self): + self.cleanup() + if self["menulist"].getCurrent()[1] == 'edit': + if iNetwork.isWirelessInterface(self.iface): + try: + from Plugins.SystemPlugins.WirelessLan.plugin import WlanScan + except ImportError: + self.session.open(MessageBox, self.missingwlanplugintxt, type = MessageBox.TYPE_INFO,timeout = 10 ) + else: + if self.queryWirelessDevice(self.iface): + self.session.openWithCallback(self.AdapterSetupClosed, AdapterSetup,self.iface) + else: + self.showErrorMessage() # Display Wlan not available Message + else: + self.session.openWithCallback(self.AdapterSetupClosed, AdapterSetup,self.iface) + if self["menulist"].getCurrent()[1] == 'test': + self.session.open(NetworkAdapterTest,self.iface) + if self["menulist"].getCurrent()[1] == 'dns': + self.session.open(NameserverSetup) + if self["menulist"].getCurrent()[1] == 'scanwlan': + try: + from Plugins.SystemPlugins.WirelessLan.plugin import WlanScan + except ImportError: + self.session.open(MessageBox, self.missingwlanplugintxt, type = MessageBox.TYPE_INFO,timeout = 10 ) + else: + if self.queryWirelessDevice(self.iface): + self.session.openWithCallback(self.WlanScanClosed, WlanScan, self.iface) + else: + self.showErrorMessage() # Display Wlan not available Message + if self["menulist"].getCurrent()[1] == 'wlanstatus': + try: + from Plugins.SystemPlugins.WirelessLan.plugin import WlanStatus + except ImportError: + self.session.open(MessageBox, self.missingwlanplugintxt, type = MessageBox.TYPE_INFO,timeout = 10 ) + else: + if self.queryWirelessDevice(self.iface): + self.session.openWithCallback(self.WlanStatusClosed, WlanStatus,self.iface) + else: + self.showErrorMessage() # Display Wlan not available Message + if self["menulist"].getCurrent()[1] == 'lanrestart': + self.session.openWithCallback(self.restartLan, MessageBox, (_("Are you sure you want to restart your network interfaces?\n\n") + self.oktext ) ) + if self["menulist"].getCurrent()[1] == 'openwizard': + from Plugins.SystemPlugins.NetworkWizard.NetworkWizard import NetworkWizard + self.session.openWithCallback(self.AdapterSetupClosed, NetworkWizard, self.iface) + if self["menulist"].getCurrent()[1][0] == 'extendedSetup': + self.extended = self["menulist"].getCurrent()[1][2] + self.extended(self.session, self.iface) + + def up(self): + self["menulist"].up() + self.loadDescription() + + def down(self): + self["menulist"].down() + self.loadDescription() + + def left(self): + self["menulist"].pageUp() + self.loadDescription() + + def right(self): + self["menulist"].pageDown() + self.loadDescription() + + def layoutFinished(self): + idx = 0 + self["menulist"].moveToIndex(idx) + self.loadDescription() + + def loadDescription(self): + if self["menulist"].getCurrent()[1] == 'edit': + self["description"].setText(_("Edit the network configuration of your receiver.\n" ) + self.oktext ) + if self["menulist"].getCurrent()[1] == 'test': + self["description"].setText(_("Test the network configuration of your receiver.\n" ) + self.oktext ) + if self["menulist"].getCurrent()[1] == 'dns': + self["description"].setText(_("Edit the nameserver configuration of your receiver.\n" ) + self.oktext ) + if self["menulist"].getCurrent()[1] == 'scanwlan': + self["description"].setText(_("Scan your network for wireless access points and connect to them using your selected wireless device.\n" ) + self.oktext ) + if self["menulist"].getCurrent()[1] == 'wlanstatus': + self["description"].setText(_("Shows the state of your wireless LAN connection.\n" ) + self.oktext ) + if self["menulist"].getCurrent()[1] == 'lanrestart': + self["description"].setText(_("Restart your network connection and interfaces.\n" ) + self.oktext ) + if self["menulist"].getCurrent()[1] == 'openwizard': + self["description"].setText(_("Use the network wizard to configure your network\n" ) + self.oktext ) + if self["menulist"].getCurrent()[1][0] == 'extendedSetup': + self["description"].setText(_(self["menulist"].getCurrent()[1][1]) + self.oktext ) + + def updateStatusbar(self, data = None): + self.mainmenu = self.genMainMenu() + self["menulist"].l.setList(self.mainmenu) + self["IFtext"].setText(_("Network:")) + self["IF"].setText(iNetwork.getFriendlyAdapterName(self.iface)) + self["Statustext"].setText(_("Link:")) + + if iNetwork.isWirelessInterface(self.iface): + try: + from Plugins.SystemPlugins.WirelessLan.Wlan import iStatus + except: + self["statuspic"].setPixmapNum(1) + self["statuspic"].show() + else: + iStatus.getDataForInterface(self.iface,self.getInfoCB) + else: + iNetwork.getLinkState(self.iface,self.dataAvail) + + def doNothing(self): + pass + + def genMainMenu(self): + menu = [] + menu.append((_("Adapter settings"), "edit")) + menu.append((_("Nameserver settings"), "dns")) + menu.append((_("Network test"), "test")) + menu.append((_("Restart network"), "lanrestart")) + + self.extended = None + self.extendedSetup = None + for p in plugins.getPlugins(PluginDescriptor.WHERE_NETWORKSETUP): + callFnc = p.__call__["ifaceSupported"](self.iface) + if callFnc is not None: + self.extended = callFnc + if p.__call__.has_key("WlanPluginEntry"): # internally used only for WLAN Plugin + menu.append((_("Scan wireless networks"), "scanwlan")) + if iNetwork.getAdapterAttribute(self.iface, "up"): + menu.append((_("Show WLAN status"), "wlanstatus")) + else: + if p.__call__.has_key("menuEntryName"): + menuEntryName = p.__call__["menuEntryName"](self.iface) + else: + menuEntryName = _('Extended setup...') + if p.__call__.has_key("menuEntryDescription"): + menuEntryDescription = p.__call__["menuEntryDescription"](self.iface) + else: + menuEntryDescription = _('Extended network setup plugin...') + self.extendedSetup = ('extendedSetup',menuEntryDescription, self.extended) + menu.append((menuEntryName,self.extendedSetup)) + + if os_path.exists(resolveFilename(SCOPE_PLUGINS, "SystemPlugins/NetworkWizard/networkwizard.xml")): + menu.append((_("Network wizard"), "openwizard")) + + return menu + + def AdapterSetupClosed(self, *ret): + if ret is not None and len(ret): + if ret[0] == 'ok' and (iNetwork.isWirelessInterface(self.iface) and iNetwork.getAdapterAttribute(self.iface, "up") is True): + try: + from Plugins.SystemPlugins.WirelessLan.plugin import WlanStatus + except ImportError: + self.session.open(MessageBox, self.missingwlanplugintxt, type = MessageBox.TYPE_INFO,timeout = 10 ) + else: + if self.queryWirelessDevice(self.iface): + self.session.openWithCallback(self.WlanStatusClosed, WlanStatus,self.iface) + else: + self.showErrorMessage() # Display Wlan not available Message + else: + self.updateStatusbar() + else: + self.updateStatusbar() + + def WlanStatusClosed(self, *ret): + if ret is not None and len(ret): + from Plugins.SystemPlugins.WirelessLan.Wlan import iStatus + iStatus.stopWlanConsole() + self.updateStatusbar() + + def WlanScanClosed(self,*ret): + if ret[0] is not None: + self.session.openWithCallback(self.AdapterSetupClosed, AdapterSetup, self.iface,ret[0]) + else: + from Plugins.SystemPlugins.WirelessLan.Wlan import iStatus + iStatus.stopWlanConsole() + self.updateStatusbar() + + def restartLan(self, ret = False): + if (ret == True): + iNetwork.restartNetwork(self.restartLanDataAvail) + self.restartLanRef = self.session.openWithCallback(self.restartfinishedCB, MessageBox, _("Please wait while your network is restarting..."), type = MessageBox.TYPE_INFO, enable_input = False) + + def restartLanDataAvail(self, data): + if data is True: + iNetwork.getInterfaces(self.getInterfacesDataAvail) + + def getInterfacesDataAvail(self, data): + if data is True: + self.restartLanRef.close(True) + + def restartfinishedCB(self,data): + if data is True: + self.updateStatusbar() + self.session.open(MessageBox, _("Finished restarting your network"), type = MessageBox.TYPE_INFO, timeout = 10, default = False) + + def dataAvail(self,data): + self.LinkState = None + for line in data.splitlines(): + line = line.strip() + if 'Link detected:' in line: + if "yes" in line: + self.LinkState = True + else: + self.LinkState = False + if self.LinkState == True: + iNetwork.checkNetworkState(self.checkNetworkCB) + else: + self["statuspic"].setPixmapNum(1) + self["statuspic"].show() + + def showErrorMessage(self): + self.session.open(MessageBox, self.errortext, type = MessageBox.TYPE_INFO,timeout = 10 ) + + def cleanup(self): + iNetwork.stopLinkStateConsole() + iNetwork.stopDeactivateInterfaceConsole() + iNetwork.stopActivateInterfaceConsole() + iNetwork.stopPingConsole() + try: + from Plugins.SystemPlugins.WirelessLan.Wlan import iStatus + except ImportError: + pass + else: + iStatus.stopWlanConsole() + + def getInfoCB(self,data,status): + self.LinkState = None + if data is not None: + if data is True: + if status is not None: + if status[self.iface]["essid"] == "off" or status[self.iface]["accesspoint"] == "Not-Associated" or status[self.iface]["accesspoint"] == False: + self.LinkState = False + self["statuspic"].setPixmapNum(1) + self["statuspic"].show() + else: + self.LinkState = True + iNetwork.checkNetworkState(self.checkNetworkCB) + + def checkNetworkCB(self,data): + if iNetwork.getAdapterAttribute(self.iface, "up") is True: + if self.LinkState is True: + if data <= 2: + self["statuspic"].setPixmapNum(0) + else: + self["statuspic"].setPixmapNum(1) + self["statuspic"].show() + else: + self["statuspic"].setPixmapNum(1) + self["statuspic"].show() + else: + self["statuspic"].setPixmapNum(1) + self["statuspic"].show() + + +class NetworkAdapterTest(Screen): + def __init__(self, session,iface): + Screen.__init__(self, session) + self.iface = iface + self.oldInterfaceState = iNetwork.getAdapterAttribute(self.iface, "up") + self.setLabels() + self.onClose.append(self.cleanup) + self.onHide.append(self.cleanup) + + self["updown_actions"] = NumberActionMap(["WizardActions","ShortcutActions"], + { + "ok": self.KeyOK, + "blue": self.KeyOK, + "up": lambda: self.updownhandler('up'), + "down": lambda: self.updownhandler('down'), + + }, -2) + + self["shortcuts"] = ActionMap(["ShortcutActions","WizardActions"], + { + "red": self.cancel, + "back": self.cancel, + }, -2) + self["infoshortcuts"] = ActionMap(["ShortcutActions","WizardActions"], + { + "red": self.closeInfo, + "back": self.closeInfo, + }, -2) + self["shortcutsgreen"] = ActionMap(["ShortcutActions"], + { + "green": self.KeyGreen, + }, -2) + self["shortcutsgreen_restart"] = ActionMap(["ShortcutActions"], + { + "green": self.KeyGreenRestart, + }, -2) + self["shortcutsyellow"] = ActionMap(["ShortcutActions"], + { + "yellow": self.KeyYellow, + }, -2) + + self["shortcutsgreen_restart"].setEnabled(False) + self["updown_actions"].setEnabled(False) + self["infoshortcuts"].setEnabled(False) + self.onClose.append(self.delTimer) + self.onLayoutFinish.append(self.layoutFinished) + self.steptimer = False + self.nextstep = 0 + self.activebutton = 0 + self.nextStepTimer = eTimer() + self.nextStepTimer.callback.append(self.nextStepTimerFire) + + def cancel(self): + if self.oldInterfaceState is False: + iNetwork.setAdapterAttribute(self.iface, "up", self.oldInterfaceState) + iNetwork.deactivateInterface(self.iface) + self.close() + + def closeInfo(self): + self["shortcuts"].setEnabled(True) + self["infoshortcuts"].setEnabled(False) + self["InfoText"].hide() + self["InfoTextBorder"].hide() + self["key_red"].setText(_("Close")) + + def delTimer(self): + del self.steptimer + del self.nextStepTimer + + def nextStepTimerFire(self): + self.nextStepTimer.stop() + self.steptimer = False + self.runTest() + + def updownhandler(self,direction): + if direction == 'up': + if self.activebutton >=2: + self.activebutton -= 1 + else: + self.activebutton = 6 + self.setActiveButton(self.activebutton) + if direction == 'down': + if self.activebutton <=5: + self.activebutton += 1 + else: + self.activebutton = 1 + self.setActiveButton(self.activebutton) + + def setActiveButton(self,button): + if button == 1: + self["EditSettingsButton"].setPixmapNum(0) + self["EditSettings_Text"].setForegroundColorNum(0) + self["NetworkInfo"].setPixmapNum(0) + self["NetworkInfo_Text"].setForegroundColorNum(1) + self["AdapterInfo"].setPixmapNum(1) # active + self["AdapterInfo_Text"].setForegroundColorNum(2) # active + if button == 2: + self["AdapterInfo_Text"].setForegroundColorNum(1) + self["AdapterInfo"].setPixmapNum(0) + self["DhcpInfo"].setPixmapNum(0) + self["DhcpInfo_Text"].setForegroundColorNum(1) + self["NetworkInfo"].setPixmapNum(1) # active + self["NetworkInfo_Text"].setForegroundColorNum(2) # active + if button == 3: + self["NetworkInfo"].setPixmapNum(0) + self["NetworkInfo_Text"].setForegroundColorNum(1) + self["IPInfo"].setPixmapNum(0) + self["IPInfo_Text"].setForegroundColorNum(1) + self["DhcpInfo"].setPixmapNum(1) # active + self["DhcpInfo_Text"].setForegroundColorNum(2) # active + if button == 4: + self["DhcpInfo"].setPixmapNum(0) + self["DhcpInfo_Text"].setForegroundColorNum(1) + self["DNSInfo"].setPixmapNum(0) + self["DNSInfo_Text"].setForegroundColorNum(1) + self["IPInfo"].setPixmapNum(1) # active + self["IPInfo_Text"].setForegroundColorNum(2) # active + if button == 5: + self["IPInfo"].setPixmapNum(0) + self["IPInfo_Text"].setForegroundColorNum(1) + self["EditSettingsButton"].setPixmapNum(0) + self["EditSettings_Text"].setForegroundColorNum(0) + self["DNSInfo"].setPixmapNum(1) # active + self["DNSInfo_Text"].setForegroundColorNum(2) # active + if button == 6: + self["DNSInfo"].setPixmapNum(0) + self["DNSInfo_Text"].setForegroundColorNum(1) + self["EditSettingsButton"].setPixmapNum(1) # active + self["EditSettings_Text"].setForegroundColorNum(2) # active + self["AdapterInfo"].setPixmapNum(0) + self["AdapterInfo_Text"].setForegroundColorNum(1) + + def runTest(self): + next = self.nextstep + if next == 0: + self.doStep1() + elif next == 1: + self.doStep2() + elif next == 2: + self.doStep3() + elif next == 3: + self.doStep4() + elif next == 4: + self.doStep5() + elif next == 5: + self.doStep6() + self.nextstep += 1 + + def doStep1(self): + self.steptimer = True + self.nextStepTimer.start(300) + self["key_yellow"].setText(_("Stop test")) + + def doStep2(self): + self["Adapter"].setText(iNetwork.getFriendlyAdapterName(self.iface)) + self["Adapter"].setForegroundColorNum(2) + self["Adaptertext"].setForegroundColorNum(1) + self["AdapterInfo_Text"].setForegroundColorNum(1) + self["AdapterInfo_OK"].show() + self.steptimer = True + self.nextStepTimer.start(300) + + def doStep3(self): + self["Networktext"].setForegroundColorNum(1) + self["Network"].setText(_("Please wait...")) + self.getLinkState(self.iface) + self["NetworkInfo_Text"].setForegroundColorNum(1) + self.steptimer = True + self.nextStepTimer.start(1000) + + def doStep4(self): + self["Dhcptext"].setForegroundColorNum(1) + if iNetwork.getAdapterAttribute(self.iface, 'dhcp') is True: + self["Dhcp"].setForegroundColorNum(2) + self["Dhcp"].setText(_("enabled")) + self["DhcpInfo_Check"].setPixmapNum(0) + else: + self["Dhcp"].setForegroundColorNum(1) + self["Dhcp"].setText(_("disabled")) + self["DhcpInfo_Check"].setPixmapNum(1) + self["DhcpInfo_Check"].show() + self["DhcpInfo_Text"].setForegroundColorNum(1) + self.steptimer = True + self.nextStepTimer.start(1000) + + def doStep5(self): + self["IPtext"].setForegroundColorNum(1) + self["IP"].setText(_("Please wait...")) + iNetwork.checkNetworkState(self.NetworkStatedataAvail) + + def doStep6(self): + self.steptimer = False + self.nextStepTimer.stop() + self["DNStext"].setForegroundColorNum(1) + self["DNS"].setText(_("Please wait...")) + iNetwork.checkDNSLookup(self.DNSLookupdataAvail) + + def KeyGreen(self): + self["shortcutsgreen"].setEnabled(False) + self["shortcutsyellow"].setEnabled(True) + self["updown_actions"].setEnabled(False) + self["key_yellow"].setText("") + self["key_green"].setText("") + self.steptimer = True + self.nextStepTimer.start(1000) + + def KeyGreenRestart(self): + self.nextstep = 0 + self.layoutFinished() + self["Adapter"].setText(("")) + self["Network"].setText(("")) + self["Dhcp"].setText(("")) + self["IP"].setText(("")) + self["DNS"].setText(("")) + self["AdapterInfo_Text"].setForegroundColorNum(0) + self["NetworkInfo_Text"].setForegroundColorNum(0) + self["DhcpInfo_Text"].setForegroundColorNum(0) + self["IPInfo_Text"].setForegroundColorNum(0) + self["DNSInfo_Text"].setForegroundColorNum(0) + self["shortcutsgreen_restart"].setEnabled(False) + self["shortcutsgreen"].setEnabled(False) + self["shortcutsyellow"].setEnabled(True) + self["updown_actions"].setEnabled(False) + self["key_yellow"].setText("") + self["key_green"].setText("") + self.steptimer = True + self.nextStepTimer.start(1000) + + def KeyOK(self): + self["infoshortcuts"].setEnabled(True) + self["shortcuts"].setEnabled(False) + if self.activebutton == 1: # Adapter Check + self["InfoText"].setText(_("This test detects your configured LAN adapter.")) + self["InfoTextBorder"].show() + self["InfoText"].show() + self["key_red"].setText(_("Back")) + if self.activebutton == 2: #LAN Check + self["InfoText"].setText(_("This test checks whether a network cable is connected to your LAN adapter.\nIf you get a \"disconnected\" message:\n- verify that a network cable is attached\n- verify that the cable is not broken")) + self["InfoTextBorder"].show() + self["InfoText"].show() + self["key_red"].setText(_("Back")) + if self.activebutton == 3: #DHCP Check + self["InfoText"].setText(_("This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\nIf you get a \"disabled\" message:\n - then your LAN adapter is configured for manual IP setup\n- verify thay you have entered correct IP informations in the adapter setup dialog.\nIf you get an \"enabeld\" message:\n-verify that you have a configured and working DHCP server in your network.")) + self["InfoTextBorder"].show() + self["InfoText"].show() + self["key_red"].setText(_("Back")) + if self.activebutton == 4: # IP Check + self["InfoText"].setText(_("This test checks whether a valid IP address is found for your LAN adapter.\nIf you get a \"unconfirmed\" message:\n- no valid IP address was found\n- please check your DHCP, cabling and adapter setup")) + self["InfoTextBorder"].show() + self["InfoText"].show() + self["key_red"].setText(_("Back")) + if self.activebutton == 5: # DNS Check + self["InfoText"].setText(_("This test checks for configured nameservers.\nIf you get a \"unconfirmed\" message:\n- please check your DHCP, cabling and adapter setup\n- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration")) + self["InfoTextBorder"].show() + self["InfoText"].show() + self["key_red"].setText(_("Back")) + if self.activebutton == 6: # Edit Settings + self.session.open(AdapterSetup,self.iface) + + def KeyYellow(self): + self.nextstep = 0 + self["shortcutsgreen_restart"].setEnabled(True) + self["shortcutsgreen"].setEnabled(False) + self["shortcutsyellow"].setEnabled(False) + self["key_green"].setText(_("Restart test")) + self["key_yellow"].setText("") + self.steptimer = False + self.nextStepTimer.stop() + + def layoutFinished(self): + self.setTitle(_("Network test: ") + iNetwork.getFriendlyAdapterName(self.iface) ) + self["shortcutsyellow"].setEnabled(False) + self["AdapterInfo_OK"].hide() + self["NetworkInfo_Check"].hide() + self["DhcpInfo_Check"].hide() + self["IPInfo_Check"].hide() + self["DNSInfo_Check"].hide() + self["EditSettings_Text"].hide() + self["EditSettingsButton"].hide() + self["InfoText"].hide() + self["InfoTextBorder"].hide() + self["key_yellow"].setText("") + + def setLabels(self): + self["Adaptertext"] = MultiColorLabel(_("LAN adapter")) + self["Adapter"] = MultiColorLabel() + self["AdapterInfo"] = MultiPixmap() + self["AdapterInfo_Text"] = MultiColorLabel(_("Show info")) + self["AdapterInfo_OK"] = Pixmap() + + if self.iface in iNetwork.wlan_interfaces: + self["Networktext"] = MultiColorLabel(_("Wireless network")) + else: + self["Networktext"] = MultiColorLabel(_("Local network")) + + self["Network"] = MultiColorLabel() + self["NetworkInfo"] = MultiPixmap() + self["NetworkInfo_Text"] = MultiColorLabel(_("Show info")) + self["NetworkInfo_Check"] = MultiPixmap() + + self["Dhcptext"] = MultiColorLabel(_("DHCP")) + self["Dhcp"] = MultiColorLabel() + self["DhcpInfo"] = MultiPixmap() + self["DhcpInfo_Text"] = MultiColorLabel(_("Show info")) + self["DhcpInfo_Check"] = MultiPixmap() + + self["IPtext"] = MultiColorLabel(_("IP address")) + self["IP"] = MultiColorLabel() + self["IPInfo"] = MultiPixmap() + self["IPInfo_Text"] = MultiColorLabel(_("Show info")) + self["IPInfo_Check"] = MultiPixmap() + + self["DNStext"] = MultiColorLabel(_("Nameserver")) + self["DNS"] = MultiColorLabel() + self["DNSInfo"] = MultiPixmap() + self["DNSInfo_Text"] = MultiColorLabel(_("Show info")) + self["DNSInfo_Check"] = MultiPixmap() + + self["EditSettings_Text"] = MultiColorLabel(_("Edit settings")) + self["EditSettingsButton"] = MultiPixmap() + + self["key_red"] = StaticText(_("Close")) + self["key_green"] = StaticText(_("Start test")) + self["key_yellow"] = StaticText(_("Stop test")) + + self["InfoTextBorder"] = Pixmap() + self["InfoText"] = Label() + + def getLinkState(self,iface): + if iface in iNetwork.wlan_interfaces: + try: + from Plugins.SystemPlugins.WirelessLan.Wlan import iStatus + except: + self["Network"].setForegroundColorNum(1) + self["Network"].setText(_("disconnected")) + self["NetworkInfo_Check"].setPixmapNum(1) + self["NetworkInfo_Check"].show() + else: + iStatus.getDataForInterface(self.iface,self.getInfoCB) + else: + iNetwork.getLinkState(iface,self.LinkStatedataAvail) + + def LinkStatedataAvail(self,data): + for item in data.splitlines(): + if "Link detected:" in item: + if "yes" in item: + self["Network"].setForegroundColorNum(2) + self["Network"].setText(_("connected")) + self["NetworkInfo_Check"].setPixmapNum(0) + else: + self["Network"].setForegroundColorNum(1) + self["Network"].setText(_("disconnected")) + self["NetworkInfo_Check"].setPixmapNum(1) + break + else: + self["Network"].setText(_("unknown")) + self["NetworkInfo_Check"].show() + + def NetworkStatedataAvail(self,data): + if data <= 2: + self["IP"].setForegroundColorNum(2) + self["IP"].setText(_("confirmed")) + self["IPInfo_Check"].setPixmapNum(0) + else: + self["IP"].setForegroundColorNum(1) + self["IP"].setText(_("unconfirmed")) + self["IPInfo_Check"].setPixmapNum(1) + self["IPInfo_Check"].show() + self["IPInfo_Text"].setForegroundColorNum(1) + self.steptimer = True + self.nextStepTimer.start(300) + + def DNSLookupdataAvail(self,data): + if data <= 2: + self["DNS"].setForegroundColorNum(2) + self["DNS"].setText(_("confirmed")) + self["DNSInfo_Check"].setPixmapNum(0) + else: + self["DNS"].setForegroundColorNum(1) + self["DNS"].setText(_("unconfirmed")) + self["DNSInfo_Check"].setPixmapNum(1) + self["DNSInfo_Check"].show() + self["DNSInfo_Text"].setForegroundColorNum(1) + self["EditSettings_Text"].show() + self["EditSettingsButton"].setPixmapNum(1) + self["EditSettings_Text"].setForegroundColorNum(2) # active + self["EditSettingsButton"].show() + self["key_yellow"].setText("") + self["key_green"].setText(_("Restart test")) + self["shortcutsgreen"].setEnabled(False) + self["shortcutsgreen_restart"].setEnabled(True) + self["shortcutsyellow"].setEnabled(False) + self["updown_actions"].setEnabled(True) + self.activebutton = 6 + + def getInfoCB(self,data,status): + if data is not None: + if data is True: + if status is not None: + if status[self.iface]["essid"] == "off" or status[self.iface]["accesspoint"] == "Not-Associated" or status[self.iface]["accesspoint"] == False: + self["Network"].setForegroundColorNum(1) + self["Network"].setText(_("disconnected")) + self["NetworkInfo_Check"].setPixmapNum(1) + self["NetworkInfo_Check"].show() + else: + self["Network"].setForegroundColorNum(2) + self["Network"].setText(_("connected")) + self["NetworkInfo_Check"].setPixmapNum(0) + self["NetworkInfo_Check"].show() + + def cleanup(self): + iNetwork.stopLinkStateConsole() + iNetwork.stopDNSConsole() + try: + from Plugins.SystemPlugins.WirelessLan.Wlan import iStatus + except ImportError: + pass + else: + iStatus.stopWlanConsole() + diff --git a/lib/python/Screens/NumericalTextInputHelpDialog.py b/lib/python/Screens/NumericalTextInputHelpDialog.py new file mode 100644 index 0000000..de8e8d6 --- /dev/null +++ b/lib/python/Screens/NumericalTextInputHelpDialog.py @@ -0,0 +1,18 @@ +from Screen import Screen +from Components.Label import Label + +class NumericalTextInputHelpDialog(Screen): + def __init__(self, session, textinput): + Screen.__init__(self, session) + self["help1"] = Label(text="<") + self["help2"] = Label(text=">") + for x in (1, 2, 3, 4, 5, 6, 7, 8, 9, 0): + self["key%d" % x] = Label(text=textinput.mapping[x].encode("utf-8")) + self.last_marked = 0 + + def update(self, textinput): + if 0 <= self.last_marked <= 9: + self["key%d" % self.last_marked].setMarkedPos(-1) + if 0 <= textinput.lastKey <= 9: + self["key%d" % textinput.lastKey].setMarkedPos(textinput.pos) + self.last_marked = textinput.lastKey diff --git a/lib/python/Screens/PVRState.py b/lib/python/Screens/PVRState.py new file mode 100644 index 0000000..891379c --- /dev/null +++ b/lib/python/Screens/PVRState.py @@ -0,0 +1,12 @@ +from Screen import Screen + +from Components.Label import Label + +class PVRState(Screen): + def __init__(self, session): + Screen.__init__(self, session) + self["state"] = Label(text="") + +class TimeshiftState(PVRState): + pass + diff --git a/lib/python/Screens/ParentalControlSetup.py b/lib/python/Screens/ParentalControlSetup.py new file mode 100644 index 0000000..3278554 --- /dev/null +++ b/lib/python/Screens/ParentalControlSetup.py @@ -0,0 +1,385 @@ +from Screen import Screen +from Components.ConfigList import ConfigListScreen +from Components.ActionMap import NumberActionMap +from Components.config import config, getConfigListEntry, ConfigNothing, NoSave, ConfigPIN, configfile +from Components.ParentalControlList import ParentalControlEntryComponent, ParentalControlList + +from Components.Sources.StaticText import StaticText +from Screens.ChoiceBox import ChoiceBox +from Screens.MessageBox import MessageBox +from Screens.InputBox import PinInput +from Screens.ChannelSelection import service_types_tv +from Tools.BoundFunction import boundFunction +from enigma import eServiceCenter, eTimer, eServiceReference +from operator import itemgetter + +class ProtectedScreen: + def __init__(self): + if self.isProtected(): + self.onFirstExecBegin.append(boundFunction(self.session.openWithCallback, self.pinEntered, PinInput, pinList = [self.protectedWithPin()], triesEntry = self.getTriesEntry(), title = self.getPinText(), windowTitle = _("Enter pin code"))) + + def getTriesEntry(self): + return config.ParentalControl.retries.setuppin + + def getPinText(self): + return _("Please enter the correct pin code") + + def isProtected(self): + return True + + def protectedWithPin(self): + return config.ParentalControl.setuppin.value + + def pinEntered(self, result): + if result is None: + self.close() + elif not result: + self.session.openWithCallback(self.close, MessageBox, _("The pin code you entered is wrong."), MessageBox.TYPE_ERROR) + +class ParentalControlSetup(Screen, ConfigListScreen, ProtectedScreen): + def __init__(self, session): + Screen.__init__(self, session) + ProtectedScreen.__init__(self) + # for the skin: first try ParentalControlSetup, then Setup, this allows individual skinning + self.skinName = ["ParentalControlSetup", "Setup" ] + self.setup_title = _("Parental control setup") + self.onChangedEntry = [ ] + + self.list = [] + ConfigListScreen.__init__(self, self.list, session = self.session, on_change = self.changedEntry) + self.createSetup() + + self["actions"] = NumberActionMap(["SetupActions", "MenuActions"], + { + "cancel": self.keyCancel, + "save": self.keySave, + "menu": self.closeRecursive, + }, -2) + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("Save")) + self.recursive = False + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + self.setTitle(self.setup_title) + + def isProtected(self): + return config.ParentalControl.setuppinactive.value and config.ParentalControl.configured.value + + def createSetup(self): + self.editListEntry = None + self.changePin = None + self.changeSetupPin = None + + self.list = [] + self.list.append(getConfigListEntry(_("Enable parental control"), config.ParentalControl.configured)) + self.editBouquetListEntry = -1 + self.reloadLists = -1 + if config.ParentalControl.configured.value: + #self.list.append(getConfigListEntry(_("Configuration mode"), config.ParentalControl.mode)) + self.list.append(getConfigListEntry(_("Protect setup"), config.ParentalControl.setuppinactive)) + if config.ParentalControl.setuppinactive.value: + self.changeSetupPin = getConfigListEntry(_("Change setup PIN"), NoSave(ConfigNothing())) + self.list.append(self.changeSetupPin) + self.list.append(getConfigListEntry(_("Protect services"), config.ParentalControl.servicepinactive)) + if config.ParentalControl.servicepinactive.value: + self.list.append(getConfigListEntry(_("Parental control type"), config.ParentalControl.type)) + if config.ParentalControl.mode.value == "complex": + self.changePin = getConfigListEntry(_("Change service PINs"), NoSave(ConfigNothing())) + self.list.append(self.changePin) + elif config.ParentalControl.mode.value == "simple": + self.changePin = getConfigListEntry(_("Change service PIN"), NoSave(ConfigNothing())) + self.list.append(self.changePin) + #Added Option to remember the service pin + self.list.append(getConfigListEntry(_("Remember service PIN"), config.ParentalControl.storeservicepin)) + self.editListEntry = getConfigListEntry(_("Edit services list"), NoSave(ConfigNothing())) + self.list.append(self.editListEntry) + #New funtion: Possibility to add Bouquets to whitelist / blacklist + self.editBouquetListEntry = getConfigListEntry(_("Edit bouquets list"), NoSave(ConfigNothing())) + self.list.append(self.editBouquetListEntry) + #New option to reload service lists (for example if bouquets have changed) + self.reloadLists = getConfigListEntry(_("Reload black-/white lists"), NoSave(ConfigNothing())) + self.list.append(self.reloadLists) + + self["config"].list = self.list + self["config"].setList(self.list) + + def keyOK(self): + if self["config"].l.getCurrentSelection() == self.editListEntry: + self.session.open(ParentalControlEditor) + elif self["config"].l.getCurrentSelection() == self.editBouquetListEntry: + self.session.open(ParentalControlBouquetEditor) + elif self["config"].l.getCurrentSelection() == self.changePin: + if config.ParentalControl.mode.value == "complex": + pass + else: + self.session.open(ParentalControlChangePin, config.ParentalControl.servicepin[0], _("service PIN")) + elif self["config"].l.getCurrentSelection() == self.changeSetupPin: + self.session.open(ParentalControlChangePin, config.ParentalControl.setuppin, _("setup PIN")) + elif self["config"].l.getCurrentSelection() == self.reloadLists: + from Components.ParentalControl import parentalControl + parentalControl.open() + self.session.open(MessageBox, _("Lists reloaded!"), MessageBox.TYPE_INFO, timeout=3) + else: + ConfigListScreen.keyRight(self) + self.createSetup() + + def keyLeft(self): + ConfigListScreen.keyLeft(self) + self.createSetup() + + def keyRight(self): + ConfigListScreen.keyRight(self) + self.createSetup() + + def SetupPinMessageCallback(self, value): + if value: + self.session.openWithCallback(self.cancelCB, ParentalControlChangePin, config.ParentalControl.setuppin, _("setup PIN")) + else: + config.ParentalControl.setuppinactive.value = False + self.keySave() + + def ServicePinMessageCallback(self, value): + if value: + self.session.openWithCallback(self.cancelCB, ParentalControlChangePin, config.ParentalControl.servicepin[0], _("service PIN")) + else: + config.ParentalControl.servicepinactive.value = False + self.keySave() + + def cancelCB(self,value): + self.keySave() + + def keyCancel(self): + for x in self["config"].list: + x[1].cancel() + self.close() + + def keySave(self): + if config.ParentalControl.configured.value and config.ParentalControl.setuppinactive.value and config.ParentalControl.setuppin.value == 'aaaa': + self.session.openWithCallback(self.SetupPinMessageCallback, MessageBox, _("No valid setup PIN found!\nDo you like to change the setup PIN now?\nWhen you say 'No' here the setup protection stay disabled!"), MessageBox.TYPE_YESNO) + elif config.ParentalControl.configured.value and config.ParentalControl.servicepinactive.value and config.ParentalControl.servicepin[0].value == 'aaaa': + self.session.openWithCallback(self.ServicePinMessageCallback, MessageBox, _("No valid service PIN found!\nDo you like to change the service PIN now?\nWhen you say 'No' here the service protection stay disabled!"), MessageBox.TYPE_YESNO) + else: + if config.ParentalControl.configured.value and not config.ParentalControl.setuppinactive.value and not config.ParentalControl.servicepinactive.value: + config.ParentalControl.configured.value = False + for x in self["config"].list: + x[1].save() + configfile.save() + self.close(self.recursive) + + def closeRecursive(self): + self.recursive = True + self.keySave() + + def keyNumberGlobal(self, number): + pass + + # for summary: + def changedEntry(self): + for x in self.onChangedEntry: + x() + + def getCurrentEntry(self): + return self["config"].getCurrent()[0] + + def getCurrentValue(self): + return str(self["config"].getCurrent()[1].getText()) + + def createSummary(self): + from Screens.Setup import SetupSummary + return SetupSummary + +SPECIAL_CHAR = 96 +class ParentalControlEditor(Screen): + def __init__(self, session): + Screen.__init__(self, session) + self.list = [] + self.servicelist = ParentalControlList(self.list) + self["servicelist"] = self.servicelist; + self.currentLetter = chr(SPECIAL_CHAR) + self.readServiceList() + self.chooseLetterTimer = eTimer() + self.chooseLetterTimer.callback.append(self.chooseLetter) + self.onLayoutFinish.append(self.LayoutFinished) + + self["actions"] = NumberActionMap(["DirectionActions", "ColorActions", "OkCancelActions", "NumberActions"], + { + "ok": self.select, + "cancel": self.cancel, + "1": self.keyNumberGlobal, + "2": self.keyNumberGlobal, + "3": self.keyNumberGlobal, + "4": self.keyNumberGlobal, + "5": self.keyNumberGlobal, + "6": self.keyNumberGlobal, + "7": self.keyNumberGlobal, + "8": self.keyNumberGlobal, + "9": self.keyNumberGlobal, + "0": self.keyNumberGlobal + }, -1) + + def LayoutFinished(self): + self.chooseLetterTimer.start(0, True) + + def cancel(self): + self.chooseLetter() + + def select(self): + self.servicelist.toggleSelectedLock() + + def keyNumberGlobal(self, number): + pass + + def readServiceList(self): + serviceHandler = eServiceCenter.getInstance() + refstr = '%s ORDER BY name' % (service_types_tv) + self.root = eServiceReference(refstr) + self.servicesList = {} + list = serviceHandler.list(self.root) + if list is not None: + services = list.getContent("CN", True) #(servicecomparestring, name) + for s in services: + key = s[1].lower()[0] + if key < 'a' or key > 'z': + key = chr(SPECIAL_CHAR) + #key = str(key) + if not self.servicesList.has_key(key): + self.servicesList[key] = [] + self.servicesList[key].append(s) + + def chooseLetter(self): + mylist = [] + for x in self.servicesList.keys(): + if x == chr(SPECIAL_CHAR): + x = (_("special characters"), x) + else: + x = (x, x) + mylist.append(x) + mylist.sort(key=itemgetter(1)) + sel = ord(self.currentLetter) - SPECIAL_CHAR + self.session.openWithCallback(self.letterChosen, ChoiceBox, title=_("Show services beginning with"), list=mylist, keys = [], selection = sel) + + def letterChosen(self, result): + from Components.ParentalControl import parentalControl + if result is not None: + self.currentLetter = result[1] + #Replace getProtectionLevel by new getProtectionType + self.list = [ParentalControlEntryComponent(x[0], x[1], parentalControl.getProtectionType(x[0])) for x in self.servicesList[result[1]]] + self.servicelist.setList(self.list) + else: + parentalControl.save() + self.close() + +class ParentalControlBouquetEditor(Screen): + #This new class allows adding complete bouquets to black- and whitelists + #The servicereference that is stored for bouquets is their refstr as listed in bouquets.tv + def __init__(self, session): + Screen.__init__(self, session) + self.skinName = "ParentalControlEditor" + self.list = [] + self.bouquetslist = ParentalControlList(self.list) + self["servicelist"] = self.bouquetslist; + self.readBouquetList() + self.onLayoutFinish.append(self.selectBouquet) + + self["actions"] = NumberActionMap(["DirectionActions", "ColorActions", "OkCancelActions"], + { + "ok": self.select, + "cancel": self.cancel + }, -1) + + def cancel(self): + from Components.ParentalControl import parentalControl + parentalControl.save() + self.close() + + def select(self): + self.bouquetslist.toggleSelectedLock() + + def readBouquetList(self): + serviceHandler = eServiceCenter.getInstance() + refstr = '1:134:1:0:0:0:0:0:0:0:FROM BOUQUET \"bouquets.tv\" ORDER BY bouquet' + bouquetroot = eServiceReference(refstr) + self.bouquetlist = {} + list = serviceHandler.list(bouquetroot) + if list is not None: + self.bouquetlist = list.getContent("CN", True) + + def selectBouquet(self): + from Components.ParentalControl import parentalControl + self.list = [ParentalControlEntryComponent(x[0], x[1], parentalControl.getProtectionType(x[0])) for x in self.bouquetlist] + self.bouquetslist.setList(self.list) + +class ParentalControlChangePin(Screen, ConfigListScreen, ProtectedScreen): + def __init__(self, session, pin, pinname): + Screen.__init__(self, session) + # for the skin: first try ParentalControlChangePin, then Setup, this allows individual skinning + self.skinName = ["ParentalControlChangePin", "Setup" ] + self.setup_title = _("Change pin code") + self.onChangedEntry = [ ] + + self.pin = pin + self.list = [] + self.pin1 = ConfigPIN(default = 1111, censor = "*") + self.pin2 = ConfigPIN(default = 1112, censor = "*") + self.pin1.addEndNotifier(boundFunction(self.valueChanged, 1)) + self.pin2.addEndNotifier(boundFunction(self.valueChanged, 2)) + self.list.append(getConfigListEntry(_("New PIN"), NoSave(self.pin1))) + self.list.append(getConfigListEntry(_("Reenter new PIN"), NoSave(self.pin2))) + ConfigListScreen.__init__(self, self.list) + ProtectedScreen.__init__(self) + + self["actions"] = NumberActionMap(["DirectionActions", "ColorActions", "OkCancelActions", "MenuActions"], + { + "cancel": self.keyCancel, + "red": self.keyCancel, + "save": self.keyOK, + "menu": self.closeRecursive, + }, -1) + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("OK")) + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + self.setTitle(self.setup_title) + + def valueChanged(self, pin, value): + if pin == 1: + self["config"].setCurrentIndex(1) + elif pin == 2: + self.keyOK() + + def getPinText(self): + return _("Please enter the old PIN code") + + def isProtected(self): + return (self.pin.value != 'aaaa') + + def protectedWithPin(self): + return self.pin.value + + def keyOK(self): + if self.pin1.value == self.pin2.value: + self.pin.value = self.pin1.value + self.pin.save() + self.session.openWithCallback(self.close, MessageBox, _("The PIN code has been changed successfully."), MessageBox.TYPE_INFO) + else: + self.session.open(MessageBox, _("The PIN codes you entered are different."), MessageBox.TYPE_ERROR) + + def keyNumberGlobal(self, number): + ConfigListScreen.keyNumberGlobal(self, number) + + # for summary: + def changedEntry(self): + for x in self.onChangedEntry: + x() + + def getCurrentEntry(self): + return self["config"].getCurrent()[0] + + def getCurrentValue(self): + return str(self["config"].getCurrent()[1].getText()) + + def createSummary(self): + from Screens.Setup import SetupSummary + return SetupSummary diff --git a/lib/python/Screens/PiPSetup.py b/lib/python/Screens/PiPSetup.py new file mode 100644 index 0000000..80e788b --- /dev/null +++ b/lib/python/Screens/PiPSetup.py @@ -0,0 +1,148 @@ +from Screens.Screen import Screen +from Components.ActionMap import NumberActionMap +from Components.SystemInfo import SystemInfo +from Components.Label import Label +from Components.config import config + +# this is not so great. +MAX_X = 720 +MAX_Y = 576 +MAX_W = MAX_X * 3 / 4 +MAX_H = MAX_Y * 3 / 4 +MIN_W = MAX_X / 8 +MIN_H = MAX_Y / 8 + +def clip(val, min, max): + if min <= val <= max: + return val + if min <= val: + return max + return min + +class PiPSetup(Screen): + def __init__(self, session, pip): + Screen.__init__(self, session) + + self.pip = pip + + self.pos = (config.av.pip.value[0], config.av.pip.value[1]) + self.size = (config.av.pip.value[2], config.av.pip.value[3]) + self.mode = self.pip.getMode() + + self.orgpos = self.pos + self.orgsize = self.size + self.orgmode = self.mode + + self.resize = 100 + + self.helptext = _("Please use direction keys to move the PiP window.\nPress Bouquet +/- to resize the window.\nPress OK to go back to the TV mode or EXIT to cancel the moving.") + if SystemInfo["VideoDestinationConfigurable"] or SystemInfo["HasExternalPIP"]: + self.helptext += "\n" + _("Press '0' to toggle PiP mode") + self.modetext = _("Current mode: %s \n") + + self["text"] = Label((self.modetext % self.pip.getModeName()) + self.helptext) + + self["actions"] = NumberActionMap(["PiPSetupActions", "NumberActions"], + { + "ok": self.go, + "cancel": self.cancel, + "up": self.up, + "down": self.down, + "left": self.left, + "right": self.right, + "size+": self.bigger, + "size-": self.smaller, + "1": self.keyNumberGlobal, + "2": self.keyNumberGlobal, + "3": self.keyNumberGlobal, + "4": self.keyNumberGlobal, + "5": self.keyNumberGlobal, + "6": self.keyNumberGlobal, + "7": self.keyNumberGlobal, + "8": self.keyNumberGlobal, + "9": self.keyNumberGlobal, + "0": self.keyNumberGlobal + }, -1) + + def go(self): + self.close() + + def cancel(self): + self.pos = self.orgpos + self.size = self.orgsize + self.mode = self.orgmode + self.pip.setMode(self.mode) + self.setPiPPosition() + self.close() + + def setPiPPosition(self): + self.pip.resize(self.size[0], self.size[1]) + self.pip.move(self.pos[0], self.pos[1]) + + def resizePiP(self, resize): + resize += 100 # resize is in percent, so resize=+20 means: 120% + + oldsize = self.size + if self.mode != "split": + w = clip(self.size[0] * resize / 100, MIN_W, MAX_W) + h = clip(self.size[1] * resize / 100, MIN_H, MAX_H) + else: + w = clip(self.size[0] * resize / 100, MAX_X / 2, MAX_X) + h = clip(self.size[1] * resize / 100, MAX_Y / 2, MAX_Y) + + # calculate offset from center + mx = (oldsize[0] - w) / 2 + my = (oldsize[1] - h) / 2 + + self.size = (w, h) + # reclip, account for new center + self.moveRelative(x=mx, y=my) + + def moveRelative(self, x=0, y=0): + self.pos = (clip(self.pos[0] + x, 0, MAX_X - self.size[0]), clip(self.pos[1] + y, 0, MAX_Y - self.size[1])) + self.setPiPPosition() + + def up(self): + if self.mode == "standard": + self.moveRelative(y=-32) + + def down(self): + if self.mode == "standard": + self.moveRelative(y=+32) + + def left(self): + if self.mode == "standard": + self.moveRelative(x=-24) + + def right(self): + if self.mode == "standard": + self.moveRelative(x=+24) + + def bigger(self): + if self.mode in "cascade standard": + self.resizePiP(+10) + + def smaller(self): + if self.mode in "cascade standard": + self.resizePiP(-10) + + def keyNumberGlobal(self, number): + if number > 0 and self.mode == "standard": + colsize = MAX_X / 3 + rowsize = MAX_Y / 3 + col = (number-1) % 3 + row = (number-1) / 3 + + self.size = (180, 135) + + # offset to keep center + ox = (colsize - self.size[0]) / 2 + oy = (rowsize - self.size[1]) / 2 + + self.pos = (col * colsize + ox, row * rowsize + oy) + elif number == 0: + self.pip.togglePiPMode() + self.mode = self.pip.getMode() + self["text"].setText((self.modetext % self.pip.getModeName()) + self.helptext) + # reclip + self.moveRelative() diff --git a/lib/python/Screens/PictureInPicture.py b/lib/python/Screens/PictureInPicture.py new file mode 100644 index 0000000..8ea230d --- /dev/null +++ b/lib/python/Screens/PictureInPicture.py @@ -0,0 +1,216 @@ +from Screens.Screen import Screen +from enigma import ePoint, eSize, eRect, eServiceCenter, getBestPlayableServiceReference, eServiceReference, eTimer +from Components.SystemInfo import SystemInfo +from Components.VideoWindow import VideoWindow +from Components.config import config, ConfigPosition, ConfigYesNo, ConfigSelection +from Tools import Notifications +from Screens.MessageBox import MessageBox +from os import access, W_OK + +MAX_X = 720 +MAX_Y = 576 +pip_config_initialized = False +PipPigModeEnabled = False +PipPigModeTimer = eTimer() + +def timedStopPipPigMode(): + from Screens.InfoBar import InfoBar + if InfoBar.instance and InfoBar.instance.session: + if SystemInfo["hasPIPVisibleProc"]: + open(SystemInfo["hasPIPVisibleProc"], "w").write("1") + elif hasattr(InfoBar.instance.session, "pip"): + InfoBar.instance.session.pip.playService(InfoBar.instance.session.pip.currentService) + global PipPigModeEnabled + PipPigModeEnabled = False + +PipPigModeTimer.callback.append(timedStopPipPigMode) + +def PipPigMode(value): + from Screens.InfoBar import InfoBar + if InfoBar.instance and InfoBar.instance.session and hasattr(InfoBar.instance.session, "pip") and config.av.pip_mode.value != "external": + if value: + PipPigModeTimer.stop() + global PipPigModeEnabled + if not PipPigModeEnabled: + if SystemInfo["hasPIPVisibleProc"]: + open(SystemInfo["hasPIPVisibleProc"], "w").write("0") + else: + InfoBar.instance.session.pip.pipservice = False + PipPigModeEnabled = True + else: + PipPigModeTimer.start(100, True) + +class PictureInPictureZapping(Screen): + skin = """<screen name="PictureInPictureZapping" flags="wfNoBorder" position="50,50" size="90,26" title="PiPZap" zPosition="-1"> + <eLabel text="PiP-Zap" position="0,0" size="90,26" foregroundColor="#00ff66" font="Regular;26" /> + </screen>""" + +class PictureInPicture(Screen): + def __init__(self, session): + global pip_config_initialized + Screen.__init__(self, session) + self["video"] = VideoWindow() + self.pipActive = session.instantiateDialog(PictureInPictureZapping) + self.currentService = None + self.currentServiceReference = None + + self.choicelist = [("standard", _("Standard"))] + if SystemInfo["VideoDestinationConfigurable"]: + self.choicelist.append(("cascade", _("Cascade PiP"))) + self.choicelist.append(("split", _("Splitscreen"))) + self.choicelist.append(("byside", _("Side by side"))) + self.choicelist.append(("bigpig", _("Big PiP"))) + if SystemInfo["HasExternalPIP"]: + self.choicelist.append(("external", _("External PiP"))) + + if not pip_config_initialized: + config.av.pip = ConfigPosition(default=[510, 28, 180, 135], args = (MAX_X, MAX_Y, MAX_X, MAX_Y)) + config.av.pip_mode = ConfigSelection(default="standard", choices=self.choicelist) + pip_config_initialized = True + + self.onLayoutFinish.append(self.LayoutFinished) + + def __del__(self): + del self.pipservice + self.setExternalPiP(False) + self.setSizePosMainWindow() + + def relocate(self): + x = config.av.pip.value[0] + y = config.av.pip.value[1] + w = config.av.pip.value[2] + h = config.av.pip.value[3] + self.move(x, y) + self.resize(w, h) + + def LayoutFinished(self): + self.onLayoutFinish.remove(self.LayoutFinished) + self.relocate() + self.setExternalPiP(config.av.pip_mode.value == "external") + + def move(self, x, y): + config.av.pip.value[0] = x + config.av.pip.value[1] = y + w = config.av.pip.value[2] + h = config.av.pip.value[3] + if config.av.pip_mode.value == "cascade": + x = MAX_X - w + y = 0 + elif config.av.pip_mode.value == "split": + x = MAX_X / 2 + y = 0 + elif config.av.pip_mode.value == "byside": + x = MAX_X / 2 + y = MAX_Y / 4 + elif config.av.pip_mode.value in "bigpig external": + x = 0 + y = 0 + config.av.pip.save() + self.instance.move(ePoint(x, y)) + + def resize(self, w, h): + config.av.pip.value[2] = w + config.av.pip.value[3] = h + config.av.pip.save() + if config.av.pip_mode.value == "standard": + self.instance.resize(eSize(*(w, h))) + self["video"].instance.resize(eSize(*(w, h))) + self.setSizePosMainWindow() + elif config.av.pip_mode.value == "cascade": + self.instance.resize(eSize(*(w, h))) + self["video"].instance.resize(eSize(*(w, h))) + self.setSizePosMainWindow(0, h, MAX_X - w, MAX_Y - h) + elif config.av.pip_mode.value == "split": + self.instance.resize(eSize(*(MAX_X/2, MAX_Y ))) + self["video"].instance.resize(eSize(*(MAX_X/2, MAX_Y))) + self.setSizePosMainWindow(0, 0, MAX_X/2, MAX_Y) + elif config.av.pip_mode.value == "byside": + self.instance.resize(eSize(*(MAX_X/2, MAX_Y/2 ))) + self["video"].instance.resize(eSize(*(MAX_X/2, MAX_Y/2))) + self.setSizePosMainWindow(0, MAX_Y/4, MAX_X/2, MAX_Y/2) + elif config.av.pip_mode.value in "bigpig external": + self.instance.resize(eSize(*(MAX_X, MAX_Y))) + self["video"].instance.resize(eSize(*(MAX_X, MAX_Y))) + self.setSizePosMainWindow() + + def setSizePosMainWindow(self, x = 0, y = 0, w = 0, h = 0): + if SystemInfo["VideoDestinationConfigurable"]: + self["video"].instance.setFullScreenPosition(eRect(x, y, w, h)) + + def setExternalPiP(self, onoff): + if SystemInfo["HasExternalPIP"]: + open(SystemInfo["HasExternalPIP"], "w").write(onoff and "on" or "off") + + def active(self): + self.pipActive.show() + + def inactive(self): + self.pipActive.hide() + + def getPosition(self): + return self.instance.position().x(), self.instance.position().y() + + def getSize(self): + return self.instance.size().width(), self.instance.size().height() + + def togglePiPMode(self): + self.setMode(config.av.pip_mode.choices[(config.av.pip_mode.index + 1) % len(config.av.pip_mode.choices)]) + + def setMode(self, mode): + config.av.pip_mode.value = mode + config.av.pip_mode.save() + self.setExternalPiP(config.av.pip_mode.value == "external") + self.relocate() + + def getMode(self): + return config.av.pip_mode.value + + def getModeName(self): + return self.choicelist[config.av.pip_mode.index][1] + + def playService(self, service): + if service is None: + return False + ref = self.resolveAlternatePipService(service) + if ref: + if self.isPlayableForPipService(ref): + print "playing pip service", ref and ref.toString() + else: + if not config.usage.hide_zap_errors.value: + Notifications.AddPopup(text = _("No free tuner!"), type = MessageBox.TYPE_ERROR, timeout = 5, id = "ZapPipError") + return False + self.pipservice = eServiceCenter.getInstance().play(ref) + if self.pipservice and not self.pipservice.setTarget(1): + self.pipservice.start() + self.currentService = service + self.currentServiceReference = ref + return True + else: + self.pipservice = None + self.currentService = None + self.currentServiceReference = None + if not config.usage.hide_zap_errors.value: + Notifications.AddPopup(text = _("Incorrect type service for PiP!"), type = MessageBox.TYPE_ERROR, timeout = 5, id = "ZapPipError") + return False + + def getCurrentService(self): + return self.currentService + + def getCurrentServiceReference(self): + return self.currentServiceReference + + def isPlayableForPipService(self, service): + playingref = self.session.nav.getCurrentlyPlayingServiceReference() + if playingref is None or service == playingref: + return True + info = eServiceCenter.getInstance().info(service) + oldref = self.currentServiceReference or eServiceReference() + if info and info.isPlayable(service, oldref): + return True + return False + + def resolveAlternatePipService(self, service): + if service and (service.flags & eServiceReference.isGroup): + oldref = self.currentServiceReference or eServiceReference() + return getBestPlayableServiceReference(service, oldref) + return service diff --git a/lib/python/Screens/PluginBrowser.py b/lib/python/Screens/PluginBrowser.py new file mode 100644 index 0000000..421a30d --- /dev/null +++ b/lib/python/Screens/PluginBrowser.py @@ -0,0 +1,411 @@ +from Screen import Screen +from enigma import eConsoleAppContainer, eDVBDB + +from Components.ActionMap import ActionMap +from Components.PluginComponent import plugins +from Components.PluginList import * +from Components.Label import Label +from Components.Language import language +from Components.Harddisk import harddiskmanager +from Components.Sources.StaticText import StaticText +from Components import Ipkg +from Screens.MessageBox import MessageBox +from Screens.ChoiceBox import ChoiceBox +from Screens.Console import Console +from Plugins.Plugin import PluginDescriptor +from Tools.Directories import resolveFilename, SCOPE_PLUGINS, SCOPE_SKIN_IMAGE +from Tools.LoadPixmap import LoadPixmap + +from time import time +import os + +language.addCallback(plugins.reloadPlugins) + +class PluginBrowserSummary(Screen): + def __init__(self, session, parent): + Screen.__init__(self, session, parent = parent) + self["entry"] = StaticText("") + self["desc"] = StaticText("") + self.onShow.append(self.addWatcher) + self.onHide.append(self.removeWatcher) + + def addWatcher(self): + self.parent.onChangedEntry.append(self.selectionChanged) + self.parent.selectionChanged() + + def removeWatcher(self): + self.parent.onChangedEntry.remove(self.selectionChanged) + + def selectionChanged(self, name, desc): + self["entry"].text = name + self["desc"].text = desc + + +class PluginBrowser(Screen): + def __init__(self, session): + Screen.__init__(self, session) + + self.firsttime = True + + self["key_red"] = self["red"] = Label(_("Remove plugins")) + self["key_green"] = self["green"] = Label(_("Download plugins")) + + self.list = [] + self["list"] = PluginList(self.list) + + self["actions"] = ActionMap(["WizardActions"], + { + "ok": self.save, + "back": self.close, + }) + self["PluginDownloadActions"] = ActionMap(["ColorActions"], + { + "red": self.delete, + "green": self.download + }) + + self.onFirstExecBegin.append(self.checkWarnings) + self.onShown.append(self.updateList) + self.onChangedEntry = [] + self["list"].onSelectionChanged.append(self.selectionChanged) + self.onLayoutFinish.append(self.saveListsize) + + def saveListsize(self): + listsize = self["list"].instance.size() + self.listWidth = listsize.width() + self.listHeight = listsize.height() + + def createSummary(self): + return PluginBrowserSummary + + def selectionChanged(self): + item = self["list"].getCurrent() + if item: + p = item[0] + name = p.name + desc = p.description + else: + name = "-" + desc = "" + for cb in self.onChangedEntry: + cb(name, desc) + + def checkWarnings(self): + if len(plugins.warnings): + text = _("Some plugins are not available:\n") + for (pluginname, error) in plugins.warnings: + text += _("%s (%s)\n") % (pluginname, error) + plugins.resetWarnings() + self.session.open(MessageBox, text = text, type = MessageBox.TYPE_WARNING) + + def save(self): + self.run() + + def run(self): + plugin = self["list"].l.getCurrentSelection()[0] + plugin(session=self.session) + + def updateList(self): + self.pluginlist = plugins.getPlugins(PluginDescriptor.WHERE_PLUGINMENU) + self.list = [PluginEntryComponent(plugin, self.listWidth) for plugin in self.pluginlist] + self["list"].l.setList(self.list) + + def delete(self): + self.session.openWithCallback(self.PluginDownloadBrowserClosed, PluginDownloadBrowser, PluginDownloadBrowser.REMOVE) + + def download(self): + self.session.openWithCallback(self.PluginDownloadBrowserClosed, PluginDownloadBrowser, PluginDownloadBrowser.DOWNLOAD, self.firsttime) + self.firsttime = False + + def PluginDownloadBrowserClosed(self): + self.updateList() + self.checkWarnings() + + def openExtensionmanager(self): + if fileExists(resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/plugin.py")): + try: + from Plugins.SystemPlugins.SoftwareManager.plugin import PluginManager + except ImportError: + self.session.open(MessageBox, _("The software management extension is not installed!\nPlease install it."), type = MessageBox.TYPE_INFO,timeout = 10 ) + else: + self.session.openWithCallback(self.PluginDownloadBrowserClosed, PluginManager) + +class PluginDownloadBrowser(Screen): + DOWNLOAD = 0 + REMOVE = 1 + PLUGIN_PREFIX = 'enigma2-plugin-' + lastDownloadDate = None + + def __init__(self, session, type = 0, needupdate = True): + Screen.__init__(self, session) + + self.type = type + self.needupdate = needupdate + + self.container = eConsoleAppContainer() + self.container.appClosed.append(self.runFinished) + self.container.dataAvail.append(self.dataAvail) + self.onLayoutFinish.append(self.startRun) + self.onShown.append(self.setWindowTitle) + + self.list = [] + self["list"] = PluginList(self.list) + self.pluginlist = [] + self.expanded = [] + self.installedplugins = [] + self.plugins_changed = False + self.reload_settings = False + self.check_settings = False + self.install_settings_name = '' + self.remove_settings_name = '' + + if self.type == self.DOWNLOAD: + self["text"] = Label(_("Downloading plugin information. Please wait...")) + elif self.type == self.REMOVE: + self["text"] = Label(_("Getting plugin information. Please wait...")) + + self.run = 0 + self.remainingdata = "" + self["actions"] = ActionMap(["WizardActions"], + { + "ok": self.go, + "back": self.requestClose, + }) + if os.path.isfile('/usr/bin/opkg'): + self.ipkg = '/usr/bin/opkg' + self.ipkg_install = self.ipkg + ' install' + self.ipkg_remove = self.ipkg + ' remove --autoremove' + else: + self.ipkg = 'ipkg' + self.ipkg_install = 'ipkg install -force-defaults' + self.ipkg_remove = self.ipkg + ' remove' + + def go(self): + sel = self["list"].l.getCurrentSelection() + + if sel is None: + return + + sel = sel[0] + if isinstance(sel, str): # category + if sel in self.expanded: + self.expanded.remove(sel) + else: + self.expanded.append(sel) + self.updateList() + else: + if self.type == self.DOWNLOAD: + self.session.openWithCallback(self.runInstall, MessageBox, _("Do you really want to download\nthe plugin \"%s\"?") % sel.name) + elif self.type == self.REMOVE: + self.session.openWithCallback(self.runInstall, MessageBox, _("Do you really want to remove\nthe plugin \"%s\"?") % sel.name) + + def requestClose(self): + if self.plugins_changed: + plugins.readPluginList(resolveFilename(SCOPE_PLUGINS)) + if self.reload_settings: + self["text"].setText(_("Reloading bouquets and services...")) + eDVBDB.getInstance().reloadBouquets() + eDVBDB.getInstance().reloadServicelist() + plugins.readPluginList(resolveFilename(SCOPE_PLUGINS)) + self.container.appClosed.remove(self.runFinished) + self.container.dataAvail.remove(self.dataAvail) + self.close() + + def resetPostInstall(self): + try: + del self.postInstallCall + except: + pass + + def installDestinationCallback(self, result): + if result is not None: + dest = result[1] + if dest.startswith('/'): + # Custom install path, add it to the list too + dest = os.path.normpath(dest) + extra = '--add-dest %s:%s -d %s' % (dest,dest,dest) + Ipkg.opkgAddDestination(dest) + else: + extra = '-d ' + dest + self.doInstall(self.installFinished, self["list"].l.getCurrentSelection()[0].name + ' ' + extra) + else: + self.resetPostInstall() + + def runInstall(self, val): + if val: + if self.type == self.DOWNLOAD: + if self["list"].l.getCurrentSelection()[0].name.startswith("picons-"): + supported_filesystems = frozenset(('ext4', 'ext3', 'ext2', 'reiser', 'reiser4', 'jffs2', 'ubifs', 'rootfs')) + candidates = [] + import Components.Harddisk + mounts = Components.Harddisk.getProcMounts() + for partition in harddiskmanager.getMountedPartitions(False, mounts): + if partition.filesystem(mounts) in supported_filesystems: + candidates.append((partition.description, partition.mountpoint)) + if candidates: + from Components.Renderer import Picon + self.postInstallCall = Picon.initPiconPaths + self.session.openWithCallback(self.installDestinationCallback, ChoiceBox, title=_("Install picons on"), list=candidates) + return + self.install_settings_name = self["list"].l.getCurrentSelection()[0].name + if self["list"].l.getCurrentSelection()[0].name.startswith('settings-'): + self.check_settings = True + self.startIpkgListInstalled(self.PLUGIN_PREFIX + 'settings-*') + else: + self.runSettingsInstall() + elif self.type == self.REMOVE: + self.doRemove(self.installFinished, self["list"].l.getCurrentSelection()[0].name) + + def doRemove(self, callback, pkgname): + self.session.openWithCallback(callback, Console, cmdlist = [self.ipkg_remove + Ipkg.opkgExtraDestinations() + " " + self.PLUGIN_PREFIX + pkgname, "sync"], closeOnSuccess = True) + + def doInstall(self, callback, pkgname): + self.session.openWithCallback(callback, Console, cmdlist = [self.ipkg_install + " " + self.PLUGIN_PREFIX + pkgname, "sync"], closeOnSuccess = True) + + def runSettingsRemove(self, val): + if val: + self.doRemove(self.runSettingsInstall, self.remove_settings_name) + + def runSettingsInstall(self): + self.doInstall(self.installFinished, self.install_settings_name) + + def setWindowTitle(self): + if self.type == self.DOWNLOAD: + self.setTitle(_("Downloadable new plugins")) + elif self.type == self.REMOVE: + self.setTitle(_("Remove plugins")) + + def startIpkgListInstalled(self, pkgname = PLUGIN_PREFIX + '*'): + self.container.execute(self.ipkg + Ipkg.opkgExtraDestinations() + " list_installed '%s'" % pkgname) + + def startIpkgListAvailable(self): + self.container.execute(self.ipkg + Ipkg.opkgExtraDestinations() + " list '" + self.PLUGIN_PREFIX + "*'") + + def startRun(self): + listsize = self["list"].instance.size() + self["list"].instance.hide() + self.listWidth = listsize.width() + self.listHeight = listsize.height() + if self.type == self.DOWNLOAD: + if self.needupdate and not PluginDownloadBrowser.lastDownloadDate or (time() - PluginDownloadBrowser.lastDownloadDate) > 3600: + # Only update from internet once per hour + self.container.execute(self.ipkg + " update") + PluginDownloadBrowser.lastDownloadDate = time() + else: + self.run = 1 + self.startIpkgListInstalled() + elif self.type == self.REMOVE: + self.run = 1 + self.startIpkgListInstalled() + + def installFinished(self): + if hasattr(self, 'postInstallCall'): + try: + self.postInstallCall() + except Exception, ex: + print "[PluginBrowser] postInstallCall failed:", ex + self.resetPostInstall() + try: + os.unlink('/tmp/opkg.conf') + except: + pass + for plugin in self.pluginlist: + if plugin[3] == self["list"].l.getCurrentSelection()[0].name: + self.pluginlist.remove(plugin) + break + self.plugins_changed = True + if self["list"].l.getCurrentSelection()[0].name.startswith("settings-"): + self.reload_settings = True + self.expanded = [] + self.updateList() + self["list"].moveToIndex(0) + + def runFinished(self, retval): + if self.check_settings: + self.check_settings = False + self.runSettingsInstall() + return + self.remainingdata = "" + if self.run == 0: + self.run = 1 + if self.type == self.DOWNLOAD: + self.startIpkgListInstalled() + elif self.run == 1 and self.type == self.DOWNLOAD: + self.run = 2 + from Components import opkg + pluginlist = [] + self.pluginlist = pluginlist + for plugin in opkg.enumPlugins(self.PLUGIN_PREFIX): + if plugin[0] not in self.installedplugins: + pluginlist.append(plugin + (plugin[0][15:],)) + if pluginlist: + pluginlist.sort() + self.updateList() + self["list"].instance.show() + else: + self["text"].setText(_("No new plugins found")) + else: + if self.pluginlist: + self.updateList() + self["list"].instance.show() + else: + self["text"].setText(_("No new plugins found")) + + def dataAvail(self, str): + #prepend any remaining data from the previous call + str = self.remainingdata + str + #split in lines + lines = str.split('\n') + #'str' should end with '\n', so when splitting, the last line should be empty. If this is not the case, we received an incomplete line + if len(lines[-1]): + #remember this data for next time + self.remainingdata = lines[-1] + lines = lines[0:-1] + else: + self.remainingdata = "" + + if self.check_settings: + self.check_settings = False + self.remove_settings_name = str.split(' - ')[0].replace(self.PLUGIN_PREFIX, '') + self.session.openWithCallback(self.runSettingsRemove, MessageBox, _('You already have a channel list installed,\nwould you like to remove\n"%s"?') % self.remove_settings_name) + return + + if self.run == 1: + for x in lines: + plugin = x.split(" - ", 2) + # 'opkg list_installed' only returns name + version, no description field + if len(plugin) >= 2: + if not plugin[0].endswith('-dev') and not plugin[0].endswith('-staticdev') and not plugin[0].endswith('-dbg') and not plugin[0].endswith('-doc') and not plugin[0].endswith('-src'): + if plugin[0] not in self.installedplugins: + if self.type == self.DOWNLOAD: + self.installedplugins.append(plugin[0]) + else: + if len(plugin) == 2: + plugin.append('') + plugin.append(plugin[0][15:]) + self.pluginlist.append(plugin) + + def updateList(self): + list = [] + expandableIcon = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/expandable-plugins.png")) + expandedIcon = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/expanded-plugins.png")) + verticallineIcon = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/verticalline-plugins.png")) + + self.plugins = {} + for x in self.pluginlist: + split = x[3].split('-', 1) + if len(split) < 2: + continue + if not self.plugins.has_key(split[0]): + self.plugins[split[0]] = [] + + self.plugins[split[0]].append((PluginDescriptor(name = x[3], description = x[2], icon = verticallineIcon), split[1], x[1])) + + for x in self.plugins.keys(): + if x in self.expanded: + list.append(PluginCategoryComponent(x, expandedIcon, self.listWidth)) + list.extend([PluginDownloadComponent(plugin[0], plugin[1], plugin[2], self.listWidth) for plugin in self.plugins[x]]) + else: + list.append(PluginCategoryComponent(x, expandableIcon, self.listWidth)) + self.list = list + self["list"].l.setList(list) diff --git a/lib/python/Screens/Rc.py b/lib/python/Screens/Rc.py new file mode 100644 index 0000000..ee75e7c --- /dev/null +++ b/lib/python/Screens/Rc.py @@ -0,0 +1,94 @@ +from Components.Pixmap import MovingPixmap, MultiPixmap +from Tools.Directories import resolveFilename, SCOPE_SKIN +from xml.etree.ElementTree import ElementTree +from Components.config import config, ConfigInteger +from Components.RcModel import rc_model + +config.misc.rcused = ConfigInteger(default = 1) + +class Rc: + def __init__(self): + self["rc"] = MultiPixmap() + self["arrowdown"] = MovingPixmap() + self["arrowdown2"] = MovingPixmap() + self["arrowup"] = MovingPixmap() + self["arrowup2"] = MovingPixmap() + + config.misc.rcused = ConfigInteger(default = 1) + self.isDefaultRc = rc_model.rcIsDefault() + self.rcheight = 500 + self.rcheighthalf = 250 + + self.selectpics = [] + self.selectpics.append((self.rcheighthalf, ["arrowdown", "arrowdown2"], (-18,-70))) + self.selectpics.append((self.rcheight, ["arrowup", "arrowup2"], (-18,0))) + + self.readPositions() + self.clearSelectedKeys() + self.onShown.append(self.initRc) + + def initRc(self): + if self.isDefaultRc: + self["rc"].setPixmapNum(config.misc.rcused.value) + else: + self["rc"].setPixmapNum(0) + + def readPositions(self): + if self.isDefaultRc: + target = resolveFilename(SCOPE_SKIN, "rcpositions.xml") + else: + target = rc_model.getRcPositions() + tree = ElementTree(file = target) + rcs = tree.getroot() + self.rcs = {} + for rc in rcs: + id = int(rc.attrib["id"]) + self.rcs[id] = {} + for key in rc: + name = key.attrib["name"] + pos = key.attrib["pos"].split(",") + self.rcs[id][name] = (int(pos[0]), int(pos[1])) + + def getSelectPic(self, pos): + for selectPic in self.selectpics: + if pos[1] <= selectPic[0]: + return (selectPic[1], selectPic[2]) + return None + + def hideRc(self): + self["rc"].hide() + self.hideSelectPics() + + def showRc(self): + self["rc"].show() + + def selectKey(self, key): + if self.isDefaultRc: + rc = self.rcs[config.misc.rcused.value] + else: + rc = self.rcs[2] + if rc.has_key(key): + rcpos = self["rc"].getPosition() + pos = rc[key] + selectPics = self.getSelectPic(pos) + selectPic = None + for x in selectPics[0]: + if x not in self.selectedKeys: + selectPic = x + break + if selectPic is not None: + print "selectPic:", selectPic + self[selectPic].moveTo(rcpos[0] + pos[0] + selectPics[1][0], rcpos[1] + pos[1] + selectPics[1][1], 1) + self[selectPic].startMoving() + self[selectPic].show() + self.selectedKeys.append(selectPic) + + def clearSelectedKeys(self): + self.showRc() + self.selectedKeys = [] + self.hideSelectPics() + + def hideSelectPics(self): + for selectPic in self.selectpics: + for pic in selectPic[1]: + self[pic].hide() diff --git a/lib/python/Screens/RdsDisplay.py b/lib/python/Screens/RdsDisplay.py new file mode 100644 index 0000000..d9f65c6 --- /dev/null +++ b/lib/python/Screens/RdsDisplay.py @@ -0,0 +1,296 @@ +from enigma import iPlayableService, iRdsDecoder +from Screens.Screen import Screen +from Components.ActionMap import NumberActionMap +from Components.ServiceEventTracker import ServiceEventTracker +from Components.Pixmap import Pixmap +from Components.Label import Label +from Components.Sources.StaticText import StaticText +from Tools.Directories import resolveFilename, SCOPE_CURRENT_SKIN +from Tools.LoadPixmap import LoadPixmap + +class RdsInfoDisplaySummary(Screen): + def __init__(self, session, parent): + Screen.__init__(self, session, parent = parent) + self["message"] = StaticText("") + self.parent.onText.append(self.onText) + + def onText(self, message): + self["message"].text = message + if message and len(message): + self.show() + else: + self.hide() + +class RdsInfoDisplay(Screen): + ALLOW_SUSPEND = True + + def __init__(self, session): + Screen.__init__(self, session) + + self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + { + iPlayableService.evEnd: self.__serviceStopped, + iPlayableService.evUpdatedRadioText: self.RadioTextChanged, + iPlayableService.evUpdatedRtpText: self.RtpTextChanged, + iPlayableService.evUpdatedRassInteractivePicMask: self.RassInteractivePicMaskChanged, + }) + + self["RadioText"] = Label() + self["RtpText"] = Label() + self["RassLogo"] = Pixmap() + + self.onLayoutFinish.append(self.hideWidgets) + self.rassInteractivePossible=False + self.onRassInteractivePossibilityChanged = [ ] + self.onText = [ ] + + def createSummary(self): + return RdsInfoDisplaySummary + + def hideWidgets(self): + for x in (self["RadioText"],self["RtpText"],self["RassLogo"]): + x.hide() + for x in self.onText: + x('') + + def RadioTextChanged(self): + service = self.session.nav.getCurrentService() + decoder = service and service.rdsDecoder() + rdsText = decoder and decoder.getText(iRdsDecoder.RadioText) + if rdsText and len(rdsText): + self["RadioText"].setText(rdsText) + self["RadioText"].show() + else: + self["RadioText"].hide() + for x in self.onText: + x(rdsText) + + def RtpTextChanged(self): + service = self.session.nav.getCurrentService() + decoder = service and service.rdsDecoder() + rtpText = decoder and decoder.getText(iRdsDecoder.RtpText) + if rtpText and len(rtpText): + self["RtpText"].setText(rtpText) + self["RtpText"].show() + else: + self["RtpText"].hide() + for x in self.onText: + x(rtpText) + + def RassInteractivePicMaskChanged(self): + if not self.rassInteractivePossible: + service = self.session.nav.getCurrentService() + decoder = service and service.rdsDecoder() + mask = decoder and decoder.getRassInteractiveMask() + if mask[0] & 1: #rass interactive index page available + self["RassLogo"].show() + self.rassInteractivePossible = True + for x in self.onRassInteractivePossibilityChanged: + x(True) + + def __serviceStopped(self): + self.hideWidgets() + if self.rassInteractivePossible: + self.rassInteractivePossible = False + for x in self.onRassInteractivePossibilityChanged: + x(False) + +class RassInteractive(Screen): + def __init__(self, session): + Screen.__init__(self, session) + + self["actions"] = NumberActionMap( [ "NumberActions", "RassInteractiveActions" ], + { + "exit": self.close, + "0": lambda x : self.numPressed(0), + "1": lambda x : self.numPressed(1), + "2": lambda x : self.numPressed(2), + "3": lambda x : self.numPressed(3), + "4": lambda x : self.numPressed(4), + "5": lambda x : self.numPressed(5), + "6": lambda x : self.numPressed(6), + "7": lambda x : self.numPressed(7), + "8": lambda x : self.numPressed(8), + "9": lambda x : self.numPressed(9), + "nextPage": self.nextPage, + "prevPage": self.prevPage, + "nextSubPage": self.nextSubPage, + "prevSubPage": self.prevSubPage + }) + + self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + { + iPlayableService.evUpdatedRassInteractivePicMask: self.recvRassInteractivePicMaskChanged + }) + + self["subpages_1"] = Pixmap() + self["subpages_2"] = Pixmap() + self["subpages_3"] = Pixmap() + self["subpages_4"] = Pixmap() + self["subpages_5"] = Pixmap() + self["subpages_6"] = Pixmap() + self["subpages_7"] = Pixmap() + self["subpages_8"] = Pixmap() + self["subpages_9"] = Pixmap() + self["Marker"] = Label(">") + + self.subpage = { + 1 : self["subpages_1"], + 2 : self["subpages_2"], + 3 : self["subpages_3"], + 4 : self["subpages_4"], + 5 : self["subpages_5"], + 6 : self["subpages_6"], + 7 : self["subpages_7"], + 8 : self["subpages_8"], + 9 : self["subpages_9"] } + + self.subpage_png = { + 1 : LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/icons/rass_page1.png")), + 2 : LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/icons/rass_page2.png")), + 3 : LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/icons/rass_page3.png")), + 4 : LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/icons/rass_page4.png")) } + + self.current_page=0; + self.current_subpage=0; + self.showRassPage(0,0) + self.onLayoutFinish.append(self.updateSubPagePixmaps) + + def updateSubPagePixmaps(self): + service = self.session.nav.getCurrentService() + decoder = service and service.rdsDecoder() + if not decoder: # this should never happen + print "NO RDS DECODER in showRassPage" + else: + mask = decoder.getRassInteractiveMask() + page = 1 + while page < 10: + subpage_cnt = self.countAvailSubpages(page, mask) + subpage = self.subpage[page] + if subpage_cnt > 0: + if subpage.instance: + png = self.subpage_png[subpage_cnt] + if png: + subpage.instance.setPixmap(png) + subpage.show() + else: + print "rass png missing" + else: + subpage.hide() + page += 1 + + def recvRassInteractivePicMaskChanged(self): + self.updateSubPagePixmaps() + + def showRassPage(self, page, subpage): + service = self.session.nav.getCurrentService() + decoder = service and service.rdsDecoder() + if not decoder: # this should never happen + print "NO RDS DECODER in showRassPage" + else: + decoder.showRassInteractivePic(page, subpage) + page_diff = page - self.current_page + self.current_page = page + if page_diff: + current_pos = self["Marker"].getPosition() + y = current_pos[1] + y += page_diff * 25 + self["Marker"].setPosition(current_pos[0],y) + + def getMaskForPage(self, page, masks=None): + if not masks: + service = self.session.nav.getCurrentService() + decoder = service and service.rdsDecoder() + if not decoder: # this should never happen + print "NO RDS DECODER in getMaskForPage" + masks = decoder.getRassInteractiveMask() + if masks: + mask = masks[(page*4)/8] + if page % 2: + mask >>= 4 + else: + mask &= 0xF + return mask + + def countAvailSubpages(self, page, masks): + mask = self.getMaskForPage(page, masks) + cnt = 0 + while mask: + if mask & 1: + cnt += 1 + mask >>= 1 + return cnt + + def nextPage(self): + mask = 0 + page = self.current_page + while mask == 0: + page += 1 + if page > 9: + page = 0 + mask = self.getMaskForPage(page) + self.numPressed(page) + + def prevPage(self): + mask = 0 + page = self.current_page + while mask == 0: + if page > 0: + page -= 1 + else: + page = 9 + mask = self.getMaskForPage(page) + self.numPressed(page) + + def nextSubPage(self): + self.numPressed(self.current_page) + + def prevSubPage(self): + num = self.current_page + mask = self.getMaskForPage(num) + cur_bit = 1 << self.current_subpage + tmp = cur_bit + while True: + if tmp == 1: + tmp = 8 + else: + tmp >>= 1 + if tmp == cur_bit: # no other subpage avail + return + if mask & tmp: # next subpage found + subpage = 0 + while tmp > 1: # convert bit to subpage + subpage += 1 + tmp >>= 1 + self.current_subpage = subpage + self.showRassPage(num, subpage) + return + + def numPressed(self, num): + mask = self.getMaskForPage(num) + if self.current_page == num: + self.skip = 0 + cur_bit = 1 << self.current_subpage + tmp = cur_bit + else: + self.skip = 1 + cur_bit = 16 + tmp = 1 + while True: + if not self.skip: + if tmp == 8 and cur_bit < 16: + tmp = 1 + else: + tmp <<= 1 + else: + self.skip = 0 + if tmp == cur_bit: # no other subpage avail + return + if mask & tmp: # next subpage found + subpage = 0 + while tmp > 1: # convert bit to subpage + subpage += 1 + tmp >>= 1 + self.current_subpage = subpage + self.showRassPage(num, subpage) + return diff --git a/lib/python/Screens/RecordPaths.py b/lib/python/Screens/RecordPaths.py new file mode 100644 index 0000000..f98fbf4 --- /dev/null +++ b/lib/python/Screens/RecordPaths.py @@ -0,0 +1,191 @@ +from Screens.Screen import Screen +from Screens.LocationBox import MovieLocationBox, TimeshiftLocationBox +from Screens.MessageBox import MessageBox +from Components.Label import Label +from Components.config import config, ConfigSelection, getConfigListEntry, configfile +from Components.ConfigList import ConfigListScreen +from Components.ActionMap import ActionMap +from Tools.Directories import fileExists +from Components.UsageConfig import preferredPath + +class RecordPathsSettings(Screen,ConfigListScreen): + skin = """ + <screen name="RecordPathsSettings" position="160,150" size="450,200" title="Recording paths"> + <ePixmap pixmap="skin_default/buttons/red.png" position="10,0" size="140,40" alphatest="on" /> + <ePixmap pixmap="skin_default/buttons/green.png" position="300,0" size="140,40" alphatest="on" /> + <widget source="key_red" render="Label" position="10,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" transparent="1" /> + <widget source="key_green" render="Label" position="300,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" transparent="1" /> + <widget name="config" position="10,44" size="430,146" /> + </screen>""" + + def __init__(self, session): + from Components.Sources.StaticText import StaticText + Screen.__init__(self, session) + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("Save")) + + ConfigListScreen.__init__(self, []) + self.initConfigList() + + self["setupActions"] = ActionMap(["SetupActions", "ColorActions", "MenuActions"], + { + "green": self.save, + "red": self.keyCancel, + "cancel": self.keyCancel, + "ok": self.ok, + "menu": self.closeRecursive, + }, -2) + + def checkReadWriteDir(self, configele): + print "checkReadWrite: ", configele.value + if configele.value in [x[0] for x in self.styles] or fileExists(configele.value, "w"): + configele.last_value = configele.value + return True + else: + dir = configele.value + configele.value = configele.last_value + self.session.open( + MessageBox, + _("The directory %s is not writable.\nMake sure you select a writable directory instead.")%dir, + type = MessageBox.TYPE_ERROR + ) + return False + + def initConfigList(self): + self.styles = [ ("<default>", _("<Default movie location>")), ("<current>", _("<Current movielist location>")), ("<timer>", _("<Last timer location>")) ] + styles_keys = [x[0] for x in self.styles] + tmp = config.movielist.videodirs.value + default = config.usage.default_path.value + if default not in tmp: + tmp = tmp[:] + tmp.append(default) + print "DefaultPath: ", default, tmp + self.default_dirname = ConfigSelection(default = default, choices = tmp) + tmp = config.movielist.videodirs.value + default = config.usage.timer_path.value + if default not in tmp and default not in styles_keys: + tmp = tmp[:] + tmp.append(default) + print "TimerPath: ", default, tmp + self.timer_dirname = ConfigSelection(default = default, choices = self.styles+tmp) + tmp = config.movielist.videodirs.value + default = config.usage.instantrec_path.value + if default not in tmp and default not in styles_keys: + tmp = tmp[:] + tmp.append(default) + print "InstantrecPath: ", default, tmp + self.instantrec_dirname = ConfigSelection(default = default, choices = self.styles+tmp) + default = config.usage.timeshift_path.value + tmp = config.usage.allowed_timeshift_paths.value + if default not in tmp: + tmp = tmp[:] + tmp.append(default) + print "TimeshiftPath: ", default, tmp + self.timeshift_dirname = ConfigSelection(default = default, choices = tmp) + self.default_dirname.addNotifier(self.checkReadWriteDir, initial_call=False, immediate_feedback=False) + self.timer_dirname.addNotifier(self.checkReadWriteDir, initial_call=False, immediate_feedback=False) + self.instantrec_dirname.addNotifier(self.checkReadWriteDir, initial_call=False, immediate_feedback=False) + self.timeshift_dirname.addNotifier(self.checkReadWriteDir, initial_call=False, immediate_feedback=False) + + self.list = [] + if config.usage.setup_level.index >= 2: + self.default_entry = getConfigListEntry(_("Default movie location"), self.default_dirname) + self.list.append(self.default_entry) + self.timer_entry = getConfigListEntry(_("Timer recording location"), self.timer_dirname) + self.list.append(self.timer_entry) + self.instantrec_entry = getConfigListEntry(_("Instant recording location"), self.instantrec_dirname) + self.list.append(self.instantrec_entry) + else: + self.default_entry = getConfigListEntry(_("Movie location"), self.default_dirname) + self.list.append(self.default_entry) + self.timeshift_entry = getConfigListEntry(_("Timeshift location"), self.timeshift_dirname) + self.list.append(self.timeshift_entry) + self["config"].setList(self.list) + + def ok(self): + currentry = self["config"].getCurrent() + self.lastvideodirs = config.movielist.videodirs.value + self.lasttimeshiftdirs = config.usage.allowed_timeshift_paths.value + if config.usage.setup_level.index >= 2: + txt = _("Default movie location") + else: + txt = _("Movie location") + if currentry == self.default_entry: + self.entrydirname = self.default_dirname + self.session.openWithCallback( + self.dirnameSelected, + MovieLocationBox, + txt, + preferredPath(self.default_dirname.value) + ) + elif currentry == self.timer_entry: + self.entrydirname = self.timer_dirname + self.session.openWithCallback( + self.dirnameSelected, + MovieLocationBox, + _("Initial location in new timers"), + preferredPath(self.timer_dirname.value) + ) + elif currentry == self.instantrec_entry: + self.entrydirname = self.instantrec_dirname + self.session.openWithCallback( + self.dirnameSelected, + MovieLocationBox, + _("Location for instant recordings"), + preferredPath(self.instantrec_dirname.value) + ) + elif currentry == self.timeshift_entry: + self.entrydirname = self.timeshift_dirname + config.usage.timeshift_path.value = self.timeshift_dirname.value + self.session.openWithCallback( + self.dirnameSelected, + TimeshiftLocationBox + ) + + def dirnameSelected(self, res): + if res is not None: + self.entrydirname.value = res + if config.movielist.videodirs.value != self.lastvideodirs: + styles_keys = [x[0] for x in self.styles] + tmp = config.movielist.videodirs.value + default = self.default_dirname.value + if default not in tmp: + tmp = tmp[:] + tmp.append(default) + self.default_dirname.setChoices(tmp, default=default) + tmp = config.movielist.videodirs.value + default = self.timer_dirname.value + if default not in tmp and default not in styles_keys: + tmp = tmp[:] + tmp.append(default) + self.timer_dirname.setChoices(self.styles+tmp, default=default) + tmp = config.movielist.videodirs.value + default = self.instantrec_dirname.value + if default not in tmp and default not in styles_keys: + tmp = tmp[:] + tmp.append(default) + self.instantrec_dirname.setChoices(self.styles+tmp, default=default) + self.entrydirname.value = res + if config.usage.allowed_timeshift_paths.value != self.lasttimeshiftdirs: + tmp = config.usage.allowed_timeshift_paths.value + default = self.instantrec_dirname.value + if default not in tmp: + tmp = tmp[:] + tmp.append(default) + self.timeshift_dirname.setChoices(tmp, default=default) + self.entrydirname.value = res + if self.entrydirname.last_value != res: + self.checkReadWriteDir(self.entrydirname) + + def save(self): + currentry = self["config"].getCurrent() + if self.checkReadWriteDir(currentry[1]): + config.usage.default_path.value = self.default_dirname.value + config.usage.timer_path.value = self.timer_dirname.value + config.usage.instantrec_path.value = self.instantrec_dirname.value + config.usage.timeshift_path.value = self.timeshift_dirname.value + config.usage.default_path.save() + config.usage.timer_path.save() + config.usage.instantrec_path.save() + config.usage.timeshift_path.save() + self.close() diff --git a/lib/python/Screens/Satconfig.py b/lib/python/Screens/Satconfig.py new file mode 100644 index 0000000..5e276ab --- /dev/null +++ b/lib/python/Screens/Satconfig.py @@ -0,0 +1,730 @@ +from enigma import eDVBDB +from Screen import Screen +from Components.SystemInfo import SystemInfo +from Components.ActionMap import ActionMap +from Components.ConfigList import ConfigListScreen +from Components.MenuList import MenuList +from Components.NimManager import nimmanager +from Components.Button import Button +from Components.Label import Label +from Components.SelectionList import SelectionList, SelectionEntryComponent +from Components.config import getConfigListEntry, config, ConfigNothing, ConfigSelection, updateConfigElement, ConfigSatlist, ConfigYesNo +from Components.Sources.List import List +from Screens.MessageBox import MessageBox +from Screens.ChoiceBox import ChoiceBox +from Screens.ServiceStopScreen import ServiceStopScreen +from Screens.AutoDiseqc import AutoDiseqc +from Tools.BoundFunction import boundFunction + +from time import mktime, localtime +from datetime import datetime + +class NimSetup(Screen, ConfigListScreen, ServiceStopScreen): + def createSimpleSetup(self, list, mode): + nim = self.nimConfig + + if mode == "single": + list.append(getConfigListEntry(_("Satellite"), nim.diseqcA)) + else: + list.append(getConfigListEntry(_("Port A"), nim.diseqcA)) + + if mode in ("toneburst_a_b", "diseqc_a_b", "diseqc_a_b_c_d"): + list.append(getConfigListEntry(_("Port B"), nim.diseqcB)) + if mode == "diseqc_a_b_c_d": + list.append(getConfigListEntry(_("Port C"), nim.diseqcC)) + list.append(getConfigListEntry(_("Port D"), nim.diseqcD)) + if mode != "toneburst_a_b": + list.append(getConfigListEntry(_("Set voltage and 22KHz"), nim.simpleDiSEqCSetVoltageTone)) + list.append(getConfigListEntry(_("Send DiSEqC only on satellite change"), nim.simpleDiSEqCOnlyOnSatChange)) + + def createPositionerSetup(self, list): + nim = self.nimConfig + if nim.diseqcMode.value == "positioner_select": + self.selectSatsEntry = getConfigListEntry(_("Press OK to select satellites"), self.nimConfig.pressOKtoList) + list.append(self.selectSatsEntry) + list.append(getConfigListEntry(_("Longitude"), nim.longitude)) + list.append(getConfigListEntry(" ", nim.longitudeOrientation)) + list.append(getConfigListEntry(_("Latitude"), nim.latitude)) + list.append(getConfigListEntry(" ", nim.latitudeOrientation)) + if SystemInfo["CanMeasureFrontendInputPower"]: + self.advancedPowerMeasurement = getConfigListEntry(_("Use power measurement"), nim.powerMeasurement) + list.append(self.advancedPowerMeasurement) + if nim.powerMeasurement.value: + list.append(getConfigListEntry(_("Power threshold in mA"), nim.powerThreshold)) + self.turningSpeed = getConfigListEntry(_("Rotor turning speed"), nim.turningSpeed) + list.append(self.turningSpeed) + if nim.turningSpeed.value == "fast epoch": + self.turnFastEpochBegin = getConfigListEntry(_("Begin time"), nim.fastTurningBegin) + self.turnFastEpochEnd = getConfigListEntry(_("End time"), nim.fastTurningEnd) + list.append(self.turnFastEpochBegin) + list.append(self.turnFastEpochEnd) + else: + if nim.powerMeasurement.value: + nim.powerMeasurement.value = False + nim.powerMeasurement.save() + if not hasattr(self, 'additionalMotorOptions'): + self.additionalMotorOptions = ConfigYesNo(False) + self.showAdditionalMotorOptions = getConfigListEntry(_("Extra motor options"), self.additionalMotorOptions) + self.list.append(self.showAdditionalMotorOptions) + if self.additionalMotorOptions.value: + self.list.append(getConfigListEntry(" " + _("Horizontal turning speed") + " [" + chr(176) + "/sec]", nim.turningspeedH)) + self.list.append(getConfigListEntry(" " + _("Vertical turning speed") + " [" + chr(176) + "/sec]", nim.turningspeedV)) + self.list.append(getConfigListEntry(" " + _("Turning step size") + " [" + chr(176) + "]", nim.tuningstepsize)) + self.list.append(getConfigListEntry(" " + _("Max memory positions"), nim.rotorPositions)) + + def createConfigMode(self): + if self.nim.isCompatible("DVB-S"): + choices = {"nothing": _("Not configured"), + "simple": _("Simple"), + "advanced": _("Advanced")} + if len(nimmanager.canEqualTo(self.slotid)) > 0: + choices["equal"] = _("Equal to") + if len(nimmanager.canDependOn(self.slotid)) > 0: + choices["satposdepends"] = _("Second cable of motorized LNB") + if len(nimmanager.canConnectTo(self.slotid)) > 0: + choices["loopthrough"] = _("Loop through to") + self.nimConfig.configMode.setChoices(choices, default = "simple") + + def createSetup(self): + print "Creating setup" + self.list = [ ] + + self.multiType = None + self.configMode = None + self.diseqcModeEntry = None + self.advancedSatsEntry = None + self.advancedLnbsEntry = None + self.advancedDiseqcMode = None + self.advancedUsalsEntry = None + self.advancedLof = None + self.advancedPowerMeasurement = None + self.turningSpeed = None + self.turnFastEpochBegin = None + self.turnFastEpochEnd = None + self.toneburst = None + self.committedDiseqcCommand = None + self.uncommittedDiseqcCommand = None + self.commandOrder = None + self.cableScanType = None + self.have_advanced = False + self.advancedUnicable = None + self.advancedType = None + self.advancedManufacturer = None + self.advancedSCR = None + self.advancedConnected = None + self.showAdditionalMotorOptions = None + self.selectSatsEntry = None + self.advancedSelectSatsEntry = None + + if self.nim.isMultiType(): + multiType = self.nimConfig.multiType + self.multiType = getConfigListEntry(_("Tuner type"), multiType) + self.list.append(self.multiType) + + if self.nim.isCompatible("DVB-S"): + self.configMode = getConfigListEntry(_("Configuration mode"), self.nimConfig.configMode) + self.list.append(self.configMode) + + if self.nimConfig.configMode.value == "simple": #simple setup + self.diseqcModeEntry = getConfigListEntry(pgettext("Satellite configuration mode", "Mode"), self.nimConfig.diseqcMode) + self.list.append(self.diseqcModeEntry) + if self.nimConfig.diseqcMode.value in ("single", "toneburst_a_b", "diseqc_a_b", "diseqc_a_b_c_d"): + self.createSimpleSetup(self.list, self.nimConfig.diseqcMode.value) + if self.nimConfig.diseqcMode.value in ("positioner", "positioner_select"): + self.createPositionerSetup(self.list) + elif self.nimConfig.configMode.value == "equal": + choices = [] + nimlist = nimmanager.canEqualTo(self.nim.slot) + for id in nimlist: + choices.append((str(id), nimmanager.getNimDescription(id))) + self.nimConfig.connectedTo.setChoices(choices) + self.list.append(getConfigListEntry(_("Tuner"), self.nimConfig.connectedTo)) + elif self.nimConfig.configMode.value == "satposdepends": + choices = [] + nimlist = nimmanager.canDependOn(self.nim.slot) + for id in nimlist: + choices.append((str(id), nimmanager.getNimDescription(id))) + self.nimConfig.connectedTo.setChoices(choices) + self.list.append(getConfigListEntry(_("Tuner"), self.nimConfig.connectedTo)) + elif self.nimConfig.configMode.value == "loopthrough": + choices = [] + print "connectable to:", nimmanager.canConnectTo(self.slotid) + connectable = nimmanager.canConnectTo(self.slotid) + for id in connectable: + choices.append((str(id), nimmanager.getNimDescription(id))) + self.nimConfig.connectedTo.setChoices(choices) + self.list.append(getConfigListEntry(_("Connected to"), self.nimConfig.connectedTo)) + elif self.nimConfig.configMode.value == "nothing": + pass + elif self.nimConfig.configMode.value == "advanced": # advanced + # SATs + self.advancedSatsEntry = getConfigListEntry(_("Satellite"), self.nimConfig.advanced.sats) + self.list.append(self.advancedSatsEntry) + current_config_sats = self.nimConfig.advanced.sats.value + if current_config_sats in ("3605", "3606"): + self.advancedSelectSatsEntry = getConfigListEntry(_("Press OK to select satellites"), self.nimConfig.pressOKtoList) + self.list.append(self.advancedSelectSatsEntry) + self.fillListWithAdvancedSatEntrys(self.nimConfig.advanced.sat[int(current_config_sats)]) + else: + cur_orb_pos = self.nimConfig.advanced.sats.orbital_position + satlist = self.nimConfig.advanced.sat.keys() + if cur_orb_pos is not None: + if cur_orb_pos not in satlist: + cur_orb_pos = satlist[0] + self.fillListWithAdvancedSatEntrys(self.nimConfig.advanced.sat[cur_orb_pos]) + self.have_advanced = True + if self.nim.description == "Alps BSBE2" and config.usage.setup_level.index >= 2: # expert + self.list.append(getConfigListEntry(_("Tone amplitude"), self.nimConfig.toneAmplitude)) + elif self.nim.isCompatible("DVB-C"): + self.configMode = getConfigListEntry(_("Configuration mode"), self.nimConfig.configMode) + self.list.append(self.configMode) + if self.nimConfig.configMode.value == "enabled": + self.list.append(getConfigListEntry(_("Network ID"), self.nimConfig.cable.scan_networkid)) + self.cableScanType=getConfigListEntry(_("Used service scan type"), self.nimConfig.cable.scan_type) + self.list.append(self.cableScanType) + if self.nimConfig.cable.scan_type.value == "provider": + self.list.append(getConfigListEntry(_("Provider to scan"), self.nimConfig.cable.scan_provider)) + else: + if self.nimConfig.cable.scan_type.value == "bands": + # TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' + self.list.append(getConfigListEntry(_("Scan %s band") % ("EU VHF I"), self.nimConfig.cable.scan_band_EU_VHF_I)) + self.list.append(getConfigListEntry(_("Scan %s band") % ("EU MID"), self.nimConfig.cable.scan_band_EU_MID)) + self.list.append(getConfigListEntry(_("Scan %s band") % ("EU VHF III"), self.nimConfig.cable.scan_band_EU_VHF_III)) + self.list.append(getConfigListEntry(_("Scan %s band") % ("EU UHF IV"), self.nimConfig.cable.scan_band_EU_UHF_IV)) + self.list.append(getConfigListEntry(_("Scan %s band") % ("EU UHF V"), self.nimConfig.cable.scan_band_EU_UHF_V)) + self.list.append(getConfigListEntry(_("Scan %s band") % ("EU SUPER"), self.nimConfig.cable.scan_band_EU_SUPER)) + self.list.append(getConfigListEntry(_("Scan %s band") % ("EU HYPER"), self.nimConfig.cable.scan_band_EU_HYPER)) + self.list.append(getConfigListEntry(_("Scan %s band") % ("US LOW"), self.nimConfig.cable.scan_band_US_LOW)) + self.list.append(getConfigListEntry(_("Scan %s band") % ("US MID"), self.nimConfig.cable.scan_band_US_MID)) + self.list.append(getConfigListEntry(_("Scan %s band") % ("US HIGH"), self.nimConfig.cable.scan_band_US_HIGH)) + self.list.append(getConfigListEntry(_("Scan %s band") % ("US SUPER"), self.nimConfig.cable.scan_band_US_SUPER)) + self.list.append(getConfigListEntry(_("Scan %s band") % ("US HYPER"), self.nimConfig.cable.scan_band_US_HYPER)) + elif self.nimConfig.cable.scan_type.value == "steps": + self.list.append(getConfigListEntry(_("Frequency scan step size(khz)"), self.nimConfig.cable.scan_frequency_steps)) + # TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' + self.list.append(getConfigListEntry(_("Scan %s") % ("QAM16"), self.nimConfig.cable.scan_mod_qam16)) + self.list.append(getConfigListEntry(_("Scan %s") % ("QAM32"), self.nimConfig.cable.scan_mod_qam32)) + self.list.append(getConfigListEntry(_("Scan %s") % ("QAM64"), self.nimConfig.cable.scan_mod_qam64)) + self.list.append(getConfigListEntry(_("Scan %s") % ("QAM128"), self.nimConfig.cable.scan_mod_qam128)) + self.list.append(getConfigListEntry(_("Scan %s") % ("QAM256"), self.nimConfig.cable.scan_mod_qam256)) + self.list.append(getConfigListEntry(_("Scan %s") % ("SR6900"), self.nimConfig.cable.scan_sr_6900)) + self.list.append(getConfigListEntry(_("Scan %s") % ("SR6875"), self.nimConfig.cable.scan_sr_6875)) + self.list.append(getConfigListEntry(_("Scan additional SR"), self.nimConfig.cable.scan_sr_ext1)) + self.list.append(getConfigListEntry(_("Scan additional SR"), self.nimConfig.cable.scan_sr_ext2)) + self.have_advanced = False + elif self.nim.isCompatible("DVB-T"): + self.configMode = getConfigListEntry(_("Configuration mode"), self.nimConfig.configMode) + self.list.append(self.configMode) + self.have_advanced = False + if self.nimConfig.configMode.value == "enabled": + self.list.append(getConfigListEntry(_("Terrestrial provider"), self.nimConfig.terrestrial)) + self.list.append(getConfigListEntry(_("Enable 5V for active antenna"), self.nimConfig.terrestrial_5V)) + else: + self.have_advanced = False + self["config"].list = self.list + self["config"].l.setList(self.list) + + def newConfig(self): + self.setTextKeyBlue() + checkList = (self.configMode, self.diseqcModeEntry, self.advancedSatsEntry, \ + self.advancedLnbsEntry, self.advancedDiseqcMode, self.advancedUsalsEntry, \ + self.advancedLof, self.advancedPowerMeasurement, self.turningSpeed, \ + self.advancedType, self.advancedSCR, self.advancedManufacturer, self.advancedUnicable, self.advancedConnected, \ + self.toneburst, self.committedDiseqcCommand, self.uncommittedDiseqcCommand, \ + self.commandOrder, self.showAdditionalMotorOptions, self.cableScanType, self.multiType) + if self["config"].getCurrent() == self.multiType: + from Components.NimManager import InitNimManager + InitNimManager(nimmanager) + self.nim = nimmanager.nim_slots[self.slotid] + self.nimConfig = self.nim.config + + for x in checkList: + if self["config"].getCurrent() == x: + self.createSetup() + break + + def run(self): + if self.nimConfig.configMode.value == "simple": + autodiseqc_ports = 0 + if self.nimConfig.diseqcMode.value == "single": + if self.nimConfig.diseqcA.orbital_position == 3600: + autodiseqc_ports = 1 + elif self.nimConfig.diseqcMode.value == "diseqc_a_b": + if self.nimConfig.diseqcA.orbital_position == 3600 or self.nimConfig.diseqcB.orbital_position == 3600: + autodiseqc_ports = 2 + elif self.nimConfig.diseqcMode.value == "diseqc_a_b_c_d": + if self.nimConfig.diseqcA.orbital_position == 3600 or self.nimConfig.diseqcB.orbital_position == 3600 or self.nimConfig.diseqcC.orbital_position == 3600 or self.nimConfig.diseqcD.orbital_position == 3600: + autodiseqc_ports = 4 + if autodiseqc_ports: + self.autoDiseqcRun(autodiseqc_ports) + return False + if self.have_advanced and self.nim.config_mode == "advanced": + self.fillAdvancedList() + for x in self.list: + if x in (self.turnFastEpochBegin, self.turnFastEpochEnd): + # workaround for storing only hour*3600+min*60 value in configfile + # not really needed.. just for cosmetics.. + tm = localtime(x[1].value) + dt = datetime(1970, 1, 1, tm.tm_hour, tm.tm_min) + x[1].value = int(mktime(dt.timetuple())) + x[1].save() + nimmanager.sec.update() + self.saveAll() + return True + + def autoDiseqcRun(self, ports): + self.session.openWithCallback(self.autoDiseqcCallback, AutoDiseqc, self.slotid, ports, self.nimConfig.simpleDiSEqCSetVoltageTone, self.nimConfig.simpleDiSEqCOnlyOnSatChange) + + def autoDiseqcCallback(self, result): + from Screens.Wizard import Wizard + if Wizard.instance is not None: + Wizard.instance.back() + else: + self.createSetup() + + def fillListWithAdvancedSatEntrys(self, Sat): + lnbnum = int(Sat.lnb.value) + currLnb = self.nimConfig.advanced.lnb[lnbnum] + + if isinstance(currLnb, ConfigNothing): + currLnb = None + + # LNBs + self.advancedLnbsEntry = getConfigListEntry(_("LNB"), Sat.lnb) + self.list.append(self.advancedLnbsEntry) + + if currLnb: + self.list.append(getConfigListEntry(_("Priority"), currLnb.prio)) + self.advancedLof = getConfigListEntry("LOF", currLnb.lof) + self.list.append(self.advancedLof) + if currLnb.lof.value == "user_defined": + self.list.append(getConfigListEntry("LOF/L", currLnb.lofl)) + self.list.append(getConfigListEntry("LOF/H", currLnb.lofh)) + self.list.append(getConfigListEntry(_("Threshold"), currLnb.threshold)) + + if currLnb.lof.value == "unicable": + self.advancedUnicable = getConfigListEntry("Unicable "+_("Configuration mode"), currLnb.unicable) + self.list.append(self.advancedUnicable) + if currLnb.unicable.value == "unicable_user": + self.advancedSCR = getConfigListEntry(_("Channel"), currLnb.satcruser) + self.list.append(self.advancedSCR) + self.list.append(getConfigListEntry(_("Frequency"), currLnb.satcrvcouser[currLnb.satcruser.index])) + self.list.append(getConfigListEntry("LOF/L", currLnb.lofl)) + self.list.append(getConfigListEntry("LOF/H", currLnb.lofh)) + self.list.append(getConfigListEntry(_("Threshold"), currLnb.threshold)) + elif currLnb.unicable.value == "unicable_matrix": + manufacturer_name = currLnb.unicableMatrixManufacturer.value + manufacturer = currLnb.unicableMatrix[manufacturer_name] + product_name = manufacturer.product.value + self.advancedManufacturer = getConfigListEntry(_("Manufacturer"), currLnb.unicableMatrixManufacturer) + self.advancedType = getConfigListEntry(_("Type"), manufacturer.product) + self.advancedSCR = getConfigListEntry(_("Channel"), manufacturer.scr[product_name]) + self.list.append(self.advancedManufacturer) + self.list.append(self.advancedType) + self.list.append(self.advancedSCR) + self.list.append(getConfigListEntry(_("Frequency"), manufacturer.vco[product_name][manufacturer.scr[product_name].index])) + elif currLnb.unicable.value == "unicable_lnb": + manufacturer_name = currLnb.unicableLnbManufacturer.value + manufacturer = currLnb.unicableLnb[manufacturer_name] + product_name = manufacturer.product.value + self.advancedManufacturer = getConfigListEntry(_("Manufacturer"), currLnb.unicableLnbManufacturer) + self.advancedType = getConfigListEntry(_("Type"), manufacturer.product) + self.advancedSCR = getConfigListEntry(_("Channel"), manufacturer.scr[product_name]) + self.list.append(self.advancedManufacturer) + self.list.append(self.advancedType) + self.list.append(self.advancedSCR) + self.list.append(getConfigListEntry(_("Frequency"), manufacturer.vco[product_name][manufacturer.scr[product_name].index])) + + choices = [] + connectable = nimmanager.canConnectTo(self.slotid) + for id in connectable: + choices.append((str(id), nimmanager.getNimDescription(id))) + if len(choices): + self.advancedConnected = getConfigListEntry(_("connected"), self.nimConfig.advanced.unicableconnected) + self.list.append(self.advancedConnected) + if self.nimConfig.advanced.unicableconnected.value == True: + self.nimConfig.advanced.unicableconnectedTo.setChoices(choices) + self.list.append(getConfigListEntry(_("Connected to"),self.nimConfig.advanced.unicableconnectedTo)) + + else: #kein Unicable + self.list.append(getConfigListEntry(_("Voltage mode"), Sat.voltage)) + self.list.append(getConfigListEntry(_("Increased voltage"), currLnb.increased_voltage)) + self.list.append(getConfigListEntry(_("Tone mode"), Sat.tonemode)) + + if lnbnum < 65: + self.advancedDiseqcMode = getConfigListEntry(_("DiSEqC mode"), currLnb.diseqcMode) + self.list.append(self.advancedDiseqcMode) + if currLnb.diseqcMode.value != "none": + self.list.append(getConfigListEntry(_("Fast DiSEqC"), currLnb.fastDiseqc)) + self.toneburst = getConfigListEntry(_("Toneburst"), currLnb.toneburst) + self.list.append(self.toneburst) + self.committedDiseqcCommand = getConfigListEntry(_("DiSEqC 1.0 command"), currLnb.commitedDiseqcCommand) + self.list.append(self.committedDiseqcCommand) + if currLnb.diseqcMode.value == "1_0": + if currLnb.toneburst.index and currLnb.commitedDiseqcCommand.index: + self.list.append(getConfigListEntry(_("Command order"), currLnb.commandOrder1_0)) + else: + self.uncommittedDiseqcCommand = getConfigListEntry(_("DiSEqC 1.1 command"), currLnb.uncommittedDiseqcCommand) + self.list.append(self.uncommittedDiseqcCommand) + if currLnb.uncommittedDiseqcCommand.index: + if currLnb.commandOrder.value == "ct": + currLnb.commandOrder.value = "cut" + elif currLnb.commandOrder.value == "tc": + currLnb.commandOrder.value = "tcu" + else: + if currLnb.commandOrder.index & 1: + currLnb.commandOrder.value = "tc" + else: + currLnb.commandOrder.value = "ct" + self.commandOrder = getConfigListEntry(_("Command order"), currLnb.commandOrder) + if 1 < ((1 if currLnb.uncommittedDiseqcCommand.index else 0) + (1 if currLnb.commitedDiseqcCommand.index else 0) + (1 if currLnb.toneburst.index else 0)): + self.list.append(self.commandOrder) + if currLnb.uncommittedDiseqcCommand.index: + self.list.append(getConfigListEntry(_("DiSEqC 1.1 repeats"), currLnb.diseqcRepeats)) + self.list.append(getConfigListEntry(_("Sequence repeat"), currLnb.sequenceRepeat)) + if currLnb.diseqcMode.value == "1_2": + if SystemInfo["CanMeasureFrontendInputPower"]: + self.advancedPowerMeasurement = getConfigListEntry(_("Use power measurement"), currLnb.powerMeasurement) + self.list.append(self.advancedPowerMeasurement) + if currLnb.powerMeasurement.value: + self.list.append(getConfigListEntry(_("Power threshold in mA"), currLnb.powerThreshold)) + self.turningSpeed = getConfigListEntry(_("Rotor turning speed"), currLnb.turningSpeed) + self.list.append(self.turningSpeed) + if currLnb.turningSpeed.value == "fast epoch": + self.turnFastEpochBegin = getConfigListEntry(_("Begin time"), currLnb.fastTurningBegin) + self.turnFastEpochEnd = getConfigListEntry(_("End time"), currLnb.fastTurningEnd) + self.list.append(self.turnFastEpochBegin) + self.list.append(self.turnFastEpochEnd) + else: + if currLnb.powerMeasurement.value: + currLnb.powerMeasurement.value = False + currLnb.powerMeasurement.save() + self.advancedUsalsEntry = getConfigListEntry(_("Use USALS for this sat"), Sat.usals) + if lnbnum < 65: + self.list.append(self.advancedUsalsEntry) + if Sat.usals.value: + self.list.append(getConfigListEntry(_("Longitude"), currLnb.longitude)) + self.list.append(getConfigListEntry(" ", currLnb.longitudeOrientation)) + self.list.append(getConfigListEntry(_("Latitude"), currLnb.latitude)) + self.list.append(getConfigListEntry(" ", currLnb.latitudeOrientation)) + else: + self.list.append(getConfigListEntry(_("Stored position"), Sat.rotorposition)) + if not hasattr(self, 'additionalMotorOptions'): + self.additionalMotorOptions = ConfigYesNo(False) + self.showAdditionalMotorOptions = getConfigListEntry(_("Extra motor options"), self.additionalMotorOptions) + self.list.append(self.showAdditionalMotorOptions) + if self.additionalMotorOptions.value: + self.list.append(getConfigListEntry(" " + _("Horizontal turning speed") + " [" + chr(176) + "/sec]", currLnb.turningspeedH)) + self.list.append(getConfigListEntry(" " + _("Vertical turning speed") + " [" + chr(176) + "/sec]", currLnb.turningspeedV)) + self.list.append(getConfigListEntry(" " + _("Turning step size") + " [" + chr(176) + "]", currLnb.tuningstepsize)) + self.list.append(getConfigListEntry(" " + _("Max memory positions"), currLnb.rotorPositions)) + + def fillAdvancedList(self): + self.list = [ ] + self.configMode = getConfigListEntry(_("Configuration mode"), self.nimConfig.configMode) + self.list.append(self.configMode) + self.advancedSatsEntry = getConfigListEntry(_("Satellite"), self.nimConfig.advanced.sats) + self.list.append(self.advancedSatsEntry) + for x in self.nimConfig.advanced.sat.keys(): + Sat = self.nimConfig.advanced.sat[x] + self.fillListWithAdvancedSatEntrys(Sat) + self["config"].list = self.list + + def keyOk(self): + if self["config"].getCurrent() == self.advancedSelectSatsEntry: + conf = self.nimConfig.advanced.sat[int(self.nimConfig.advanced.sats.value)].userSatellitesList + self.session.openWithCallback(boundFunction(self.updateConfUserSatellitesList, conf), SelectSatsEntryScreen, userSatlist=conf.value) + elif self["config"].getCurrent() == self.selectSatsEntry: + conf = self.nimConfig.userSatellitesList + self.session.openWithCallback(boundFunction(self.updateConfUserSatellitesList, conf), SelectSatsEntryScreen, userSatlist=conf.value) + else: + self.keySave() + + def updateConfUserSatellitesList(self, conf, val=None): + if val is not None: + conf.value = val + conf.save() + + def keySave(self): + old_configured_sats = nimmanager.getConfiguredSats() + if not self.run(): + return + new_configured_sats = nimmanager.getConfiguredSats() + self.unconfed_sats = old_configured_sats - new_configured_sats + self.satpos_to_remove = None + self.deleteConfirmed((None, "no")) + + def deleteConfirmed(self, confirmed): + if confirmed is None: + confirmed = (None, "no") + + if confirmed[1] == "yes" or confirmed[1] == "yestoall": + eDVBDB.getInstance().removeServices(-1, -1, -1, self.satpos_to_remove) + + if self.satpos_to_remove is not None: + self.unconfed_sats.remove(self.satpos_to_remove) + + self.satpos_to_remove = None + for orbpos in self.unconfed_sats: + self.satpos_to_remove = orbpos + orbpos = self.satpos_to_remove + try: + # why we need this cast? + sat_name = str(nimmanager.getSatDescription(orbpos)) + except: + if orbpos > 1800: # west + orbpos = 3600 - orbpos + h = _("W") + else: + h = _("E") + sat_name = ("%d.%d" + h) % (orbpos / 10, orbpos % 10) + + if confirmed[1] == "yes" or confirmed[1] == "no": + # TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. + self.session.openWithCallback(self.deleteConfirmed, ChoiceBox, _("%s is no longer used. Should it be deleted?") % sat_name, [(_("Yes"), "yes"), (_("No"), "no"), (_("Yes to all"), "yestoall"), (_("No to all"), "notoall")], None, 1) + if confirmed[1] == "yestoall" or confirmed[1] == "notoall": + self.deleteConfirmed(confirmed) + break + else: + self.restoreService(_("Zap back to service before tuner setup?")) + + def __init__(self, session, slotid): + Screen.__init__(self, session) + self.list = [ ] + ServiceStopScreen.__init__(self) + self.stopService() + ConfigListScreen.__init__(self, self.list) + + self["key_red"] = Label(_("Cancel")) + self["key_green"] = Label(_("Save")) + self["key_yellow"] = Label(_("Configuration mode")) + self["key_blue"] = Label() + self["actions"] = ActionMap(["SetupActions", "SatlistShortcutAction"], + { + "ok": self.keyOk, + "save": self.keySave, + "cancel": self.keyCancel, + "changetype": self.changeConfigurationMode, + "nothingconnected": self.nothingConnectedShortcut + }, -2) + + self.slotid = slotid + self.nim = nimmanager.nim_slots[slotid] + self.nimConfig = self.nim.config + self.createConfigMode() + self.createSetup() + + def keyLeft(self): + ConfigListScreen.keyLeft(self) + self.newConfig() + + def setTextKeyBlue(self): + self["key_blue"].setText("") + if self["config"].isChanged(): + self["key_blue"].setText(_("Set default")) + + def keyRight(self): + ConfigListScreen.keyRight(self) + self.newConfig() + + def handleKeyFileCallback(self, answer): + ConfigListScreen.handleKeyFileCallback(self, answer) + self.newConfig() + + def keyCancel(self): + if self["config"].isChanged(): + self.session.openWithCallback(self.cancelConfirm, MessageBox, _("Really close without saving settings?")) + else: + self.restoreService(_("Zap back to service before tuner setup?")) + + def saveAll(self): + if self.nim.isCompatible("DVB-S"): + # reset connectedTo to all choices to properly store the default value + choices = [] + nimlist = nimmanager.getNimListOfType("DVB-S", self.slotid) + for id in nimlist: + choices.append((str(id), nimmanager.getNimDescription(id))) + self.nimConfig.connectedTo.setChoices(choices) + for x in self["config"].list: + x[1].save() + + def cancelConfirm(self, result): + if not result: + return + + for x in self["config"].list: + x[1].cancel() + # we need to call saveAll to reset the connectedTo choices + self.saveAll() + self.restoreService(_("Zap back to service before tuner setup?")) + + def changeConfigurationMode(self): + if self.configMode: + self.nimConfig.configMode.selectNext() + self["config"].invalidate(self.configMode) + self.setTextKeyBlue() + self.createSetup() + + def nothingConnectedShortcut(self): + if self["config"].isChanged(): + for x in self["config"].list: + x[1].cancel() + self.setTextKeyBlue() + self.createSetup() + +class NimSelection(Screen): + def __init__(self, session): + Screen.__init__(self, session) + + self.list = [None] * nimmanager.getSlotCount() + self["nimlist"] = List(self.list) + self.updateList() + + self.setResultClass() + + self["actions"] = ActionMap(["OkCancelActions"], + { + "ok": self.okbuttonClick , + "cancel": self.close + }, -2) + + def setResultClass(self): + self.resultclass = NimSetup + + def okbuttonClick(self): + nim = self["nimlist"].getCurrent() + nim = nim and nim[3] + if nim is not None and not nim.empty and nim.isSupported(): + self.session.openWithCallback(self.updateList, self.resultclass, nim.slot) + + def showNim(self, nim): + return True + + def updateList(self): + self.list = [ ] + for x in nimmanager.nim_slots: + slotid = x.slot + nimConfig = nimmanager.getNimConfig(x.slot) + text = nimConfig.configMode.value + if self.showNim(x): + if x.isCompatible("DVB-S"): + if nimConfig.configMode.value in ("loopthrough", "equal", "satposdepends"): + text = { "loopthrough": _("Loop through to"), + "equal": _("Equal to"), + "satposdepends": _("Second cable of motorized LNB") } [nimConfig.configMode.value] + text += " " + _("Tuner") + " " + ["A", "B", "C", "D"][int(nimConfig.connectedTo.value)] + elif nimConfig.configMode.value == "nothing": + text = _("not configured") + elif nimConfig.configMode.value == "simple": + if nimConfig.diseqcMode.value in ("single", "toneburst_a_b", "diseqc_a_b", "diseqc_a_b_c_d"): + text = {"single": _("Single"), "toneburst_a_b": _("Toneburst A/B"), "diseqc_a_b": _("DiSEqC A/B"), "diseqc_a_b_c_d": _("DiSEqC A/B/C/D")}[nimConfig.diseqcMode.value] + "\n" + text += _("Sats") + ": " + satnames = [] + if nimConfig.diseqcA.orbital_position < 3600: + satnames.append(nimmanager.getSatName(int(nimConfig.diseqcA.value))) + if nimConfig.diseqcMode.value in ("toneburst_a_b", "diseqc_a_b", "diseqc_a_b_c_d"): + if nimConfig.diseqcB.orbital_position < 3600: + satnames.append(nimmanager.getSatName(int(nimConfig.diseqcB.value))) + if nimConfig.diseqcMode.value == "diseqc_a_b_c_d": + if nimConfig.diseqcC.orbital_position < 3600: + satnames.append(nimmanager.getSatName(int(nimConfig.diseqcC.value))) + if nimConfig.diseqcD.orbital_position < 3600: + satnames.append(nimmanager.getSatName(int(nimConfig.diseqcD.value))) + if len(satnames) <= 2: + text += ", ".join(satnames) + elif len(satnames) > 2: + # we need a newline here, since multi content lists don't support automtic line wrapping + text += ", ".join(satnames[:2]) + ",\n" + text += " " + ", ".join(satnames[2:]) + elif nimConfig.diseqcMode.value in ("positioner", "positioner_select"): + text = {"positioner": _("Positioner"), "positioner_select": _("Positioner (selecting satellites)")}[nimConfig.diseqcMode.value] + text += ":" + if nimConfig.positionerMode.value == "usals": + text += "USALS" + elif nimConfig.positionerMode.value == "manual": + text += _("Manual") + else: + text = _("Simple") + elif nimConfig.configMode.value == "advanced": + text = _("Advanced") + elif x.isCompatible("DVB-T") or x.isCompatible("DVB-C"): + if nimConfig.configMode.value == "nothing": + text = _("Nothing connected") + elif nimConfig.configMode.value == "enabled": + text = _("Enabled") + if x.isMultiType(): + text = _("Switchable tuner types:") + "(" + ','.join(x.getMultiTypeList().values()) + ")" + "\n" + text + if not x.isSupported(): + text = _("Tuner is not supported") + + self.list.append((slotid, x.friendly_full_description, text, x)) + self["nimlist"].setList(self.list) + self["nimlist"].updateList(self.list) + +class SelectSatsEntryScreen(Screen): + skin = """ + <screen name="SelectSatsEntryScreen" position="center,center" size="560,410" title="Select Sats Entry" > + <ePixmap name="red" position="0,0" zPosition="2" size="140,40" pixmap="skin_default/buttons/red.png" transparent="1" alphatest="on" /> + <ePixmap name="green" position="140,0" zPosition="2" size="140,40" pixmap="skin_default/buttons/green.png" transparent="1" alphatest="on" /> + <ePixmap name="yellow" position="280,0" zPosition="2" size="140,40" pixmap="skin_default/buttons/yellow.png" transparent="1" alphatest="on" /> + <ePixmap name="blue" position="420,0" zPosition="2" size="140,40" pixmap="skin_default/buttons/blue.png" transparent="1" alphatest="on" /> + <widget name="key_red" position="0,0" size="140,40" valign="center" halign="center" zPosition="4" foregroundColor="white" font="Regular;17" transparent="1" shadowColor="background" shadowOffset="-2,-2" /> + <widget name="key_green" position="140,0" size="140,40" valign="center" halign="center" zPosition="4" foregroundColor="white" font="Regular;17" transparent="1" shadowColor="background" shadowOffset="-2,-2" /> + <widget name="key_yellow" position="280,0" size="140,40" valign="center" halign="center" zPosition="4" foregroundColor="white" font="Regular;17" transparent="1" shadowColor="background" shadowOffset="-2,-2" /> + <widget name="key_blue" position="420,0" size="140,40" valign="center" halign="center" zPosition="4" foregroundColor="white" font="Regular;17" transparent="1" shadowColor="background" shadowOffset="-2,-2" /> + <widget name="list" position="10,40" size="540,330" scrollbarMode="showNever" /> + <ePixmap pixmap="skin_default/div-h.png" position="0,375" zPosition="1" size="540,2" transparent="1" alphatest="on" /> + <widget name="hint" position="10,380" size="540,25" font="Regular;19" halign="center" transparent="1" /> + </screen>""" + def __init__(self, session, userSatlist=[]): + Screen.__init__(self, session) + self["key_red"] = Button(_("Cancel")) + self["key_green"] = Button(_("Save")) + self["key_yellow"] = Button(_("Sort by")) + self["key_blue"] = Button(_("Select all")) + self["hint"] = Label(_("Press OK to toggle the selection")) + SatList = [] + for sat in nimmanager.getSatList(): + selected = False + if isinstance(userSatlist, str) and str(sat[0]) in userSatlist: + selected = True + SatList.append((sat[0], sat[1], sat[2], selected)) + sat_list = [SelectionEntryComponent(x[1], x[0], x[2], x[3]) for x in SatList] + self["list"] = SelectionList(sat_list, enableWrapAround=True) + self["setupActions"] = ActionMap(["SetupActions", "ColorActions"], + { + "red": self.cancel, + "green": self.save, + "yellow": self.sortBy, + "blue": self["list"].toggleAllSelection, + "save": self.save, + "cancel": self.cancel, + "ok": self["list"].toggleSelection, + }, -2) + self.setTitle(_("Select satellites")) + + def save(self): + val = [x[0][1] for x in self["list"].list if x[0][3]] + self.close(str(val)) + + def cancel(self): + self.close(None) + + def sortBy(self): + lst = self["list"].list + if len(lst) > 1: + menu = [(_("Reverse list"), "2"), (_("Standart list"), "1")] + connected_sat = [x[0][1] for x in lst if x[0][3]] + if len(connected_sat) > 0: + menu.insert(0,(_("Connected satellites"), "3")) + def sortAction(choice): + if choice: + reverse_flag = False + sort_type = int(choice[1]) + if choice[1] == "2": + sort_type = reverse_flag = 1 + elif choice[1] == "3": + reverse_flag = not reverse_flag + self["list"].sort(sortType=sort_type, flag=reverse_flag) + self["list"].moveToIndex(0) + self.session.openWithCallback(sortAction, ChoiceBox, title= _("Select sort method:"), list=menu) diff --git a/lib/python/Screens/ScanSetup.py b/lib/python/Screens/ScanSetup.py new file mode 100644 index 0000000..91de742 --- /dev/null +++ b/lib/python/Screens/ScanSetup.py @@ -0,0 +1,1237 @@ +from Screen import Screen +from ServiceScan import ServiceScan +from Components.config import config, ConfigSubsection, ConfigSelection, ConfigYesNo, ConfigInteger, getConfigListEntry, ConfigSlider, ConfigEnableDisable +from Components.ActionMap import NumberActionMap, ActionMap +from Components.ConfigList import ConfigListScreen +from Components.NimManager import nimmanager, getConfigSatlist +from Components.Label import Label +from Components.Sources.StaticText import StaticText +from Tools.HardwareInfo import HardwareInfo +from Screens.InfoBar import InfoBar +from Screens.MessageBox import MessageBox +from enigma import eTimer, eDVBFrontendParametersSatellite, eComponentScan, eDVBFrontendParametersTerrestrial, eDVBFrontendParametersCable, eConsoleAppContainer, eDVBResourceManager +from Components.Converter.ChannelNumbers import channelnumbers + +def buildTerTransponder(frequency, + inversion=2, bandwidth = 7000000, fechigh = 6, feclow = 6, + modulation = 2, transmission = 2, guard = 4, + hierarchy = 4, system = 0, plpid = 0): +# print "freq", frequency, "inv", inversion, "bw", bandwidth, "fech", fechigh, "fecl", feclow, "mod", modulation, "tm", transmission, "guard", guard, "hierarchy", hierarchy + parm = eDVBFrontendParametersTerrestrial() + parm.frequency = frequency + parm.inversion = inversion + parm.bandwidth = bandwidth + parm.code_rate_HP = fechigh + parm.code_rate_LP = feclow + parm.modulation = modulation + parm.transmission_mode = transmission + parm.guard_interval = guard + parm.hierarchy = hierarchy + parm.system = system + parm.plpid = plpid + return parm + +def getInitialTransponderList(tlist, pos): + list = nimmanager.getTransponders(pos) + for x in list: + if x[0] == 0: #SAT + parm = eDVBFrontendParametersSatellite() + parm.frequency = x[1] + parm.symbol_rate = x[2] + parm.polarisation = x[3] + parm.fec = x[4] + parm.inversion = x[7] + parm.orbital_position = pos + parm.system = x[5] + parm.modulation = x[6] + parm.rolloff = x[8] + parm.pilot = x[9] + tlist.append(parm) + +def getInitialCableTransponderList(tlist, nim): + list = nimmanager.getTranspondersCable(nim) + for x in list: + if x[0] == 1: #CABLE + parm = eDVBFrontendParametersCable() + parm.frequency = x[1] + parm.symbol_rate = x[2] + parm.modulation = x[3] + parm.fec_inner = x[4] + parm.inversion = x[5] + parm.system = x[6] + tlist.append(parm) + +def getInitialTerrestrialTransponderList(tlist, region): + list = nimmanager.getTranspondersTerrestrial(region) + + #self.transponders[self.parsedTer].append((2,freq,bw,const,crh,crl,guard,transm,hierarchy,inv)) + + #def buildTerTransponder(frequency, inversion = 2, bandwidth = 3, fechigh = 6, feclow = 6, + #modulation = 2, transmission = 2, guard = 4, hierarchy = 4): + + for x in list: + if x[0] == 2: #TERRESTRIAL + parm = buildTerTransponder(x[1], x[9], x[2], x[4], x[5], x[3], x[7], x[6], x[8], x[10], x[11]) + tlist.append(parm) + +def getRegionTerrestrialTransponderList(region): + tlist = [] + for x in nimmanager.getTranspondersTerrestrial(region): + if x[0] == 2: #TERRESTRIAL + parm = buildTerTransponder(x[1], x[9], x[2], x[4], x[5], x[3], x[7], x[6], x[8], x[10], x[11]) + tlist.append((parm, str(x[1] / 1000))) + return tlist + +cable_bands = { + "DVBC_BAND_EU_VHF_I" : 1 << 0, + "DVBC_BAND_EU_MID" : 1 << 1, + "DVBC_BAND_EU_VHF_III" : 1 << 2, + "DVBC_BAND_EU_SUPER" : 1 << 3, + "DVBC_BAND_EU_HYPER" : 1 << 4, + "DVBC_BAND_EU_UHF_IV" : 1 << 5, + "DVBC_BAND_EU_UHF_V" : 1 << 6, + "DVBC_BAND_US_LO" : 1 << 7, + "DVBC_BAND_US_MID" : 1 << 8, + "DVBC_BAND_US_HI" : 1 << 9, + "DVBC_BAND_US_SUPER" : 1 << 10, + "DVBC_BAND_US_HYPER" : 1 << 11, +} + +class CableTransponderSearchSupport: +# def setCableTransponderSearchResult(self, tlist): +# pass + +# def cableTransponderSearchFinished(self): +# pass + + def __init__(self): + pass + + def tryGetRawFrontend(self, feid): + res_mgr = eDVBResourceManager.getInstance() + if res_mgr: + raw_channel = res_mgr.allocateRawChannel(self.feid) + if raw_channel: + frontend = raw_channel.getFrontend() + if frontend: + frontend.closeFrontend() # immediate close... + del frontend + del raw_channel + return True + return False + + def cableTransponderSearchSessionClosed(self, *val): + print "cableTransponderSearchSessionClosed, val", val + self.cable_search_container.appClosed.remove(self.cableTransponderSearchClosed) + self.cable_search_container.dataAvail.remove(self.getCableTransponderData) + if val and len(val): + if val[0]: + self.setCableTransponderSearchResult(self.__tlist) + else: + self.cable_search_container.sendCtrlC() + self.setCableTransponderSearchResult(None) + self.cable_search_container = None + self.cable_search_session = None + self.__tlist = None + self.cableTransponderSearchFinished() + + def cableTransponderSearchClosed(self, retval): + print "cableTransponderSearch finished", retval + self.cable_search_session.close(True) + + def getCableTransponderData(self, str): + #prepend any remaining data from the previous call + str = self.remainingdata + str + #split in lines + lines = str.split('\n') + #'str' should end with '\n', so when splitting, the last line should be empty. If this is not the case, we received an incomplete line + if len(lines[-1]): + #remember this data for next time + self.remainingdata = lines[-1] + lines = lines[0:-1] + else: + self.remainingdata = "" + + for line in lines: + data = line.split() + if len(data): + if data[0] == 'OK': + print str + parm = eDVBFrontendParametersCable() + qam = { "QAM16" : parm.Modulation_QAM16, + "QAM32" : parm.Modulation_QAM32, + "QAM64" : parm.Modulation_QAM64, + "QAM128" : parm.Modulation_QAM128, + "QAM256" : parm.Modulation_QAM256 } + inv = { "INVERSION_OFF" : parm.Inversion_Off, + "INVERSION_ON" : parm.Inversion_On, + "INVERSION_AUTO" : parm.Inversion_Unknown } + fec = { "FEC_AUTO" : parm.FEC_Auto, + "FEC_1_2" : parm.FEC_1_2, + "FEC_2_3" : parm.FEC_2_3, + "FEC_3_4" : parm.FEC_3_4, + "FEC_5_6" : parm.FEC_5_6, + "FEC_7_8" : parm.FEC_7_8, + "FEC_8_9" : parm.FEC_8_9, + "FEC_3_5" : parm.FEC_3_5, + "FEC_4_5" : parm.FEC_4_5, + "FEC_9_10" : parm.FEC_9_10, + "FEC_NONE" : parm.FEC_None } + parm.frequency = int(data[1]) + parm.symbol_rate = int(data[2]) + parm.fec_inner = fec[data[3]] + parm.modulation = qam[data[4]] + parm.inversion = inv[data[5]] + self.__tlist.append(parm) + tmpstr = _("Try to find used transponders in cable network.. please wait...") + tmpstr += "\n\n" + tmpstr += data[1].isdigit() and "%s MHz " % (int(data[1]) / 1000.) or data[1] + tmpstr += data[0] + self.cable_search_session["text"].setText(tmpstr) + + def startCableTransponderSearch(self, nim_idx): + def GetCommand(nimIdx): + _supportNimType = { 'SSH108':'ssh108' } + _nimSocket = {} + fp = file('/proc/bus/nim_sockets') + + sNo, sName = -1, "" + for line in fp: + line = line.strip() + if line.startswith('NIM Socket'): + try: sNo = line.split()[2][:-1] + except: sNo = -1 + elif line.startswith('Name:'): + try: sName = line.split()[3][4:-1] + except: sName = "" + if sNo >= 0 and sName != "": + _nimSocket[sNo] = sName + sNo, sName = -1, '' + fp.close() + print 'parsed nim_sockets :', _nimSocket + + try: + sName = _nimSocket[str(nimIdx)] + sType = _supportNimType[sName] + return sType + except: pass + return 'tda1002x' + + if not self.tryGetRawFrontend(nim_idx): + self.session.nav.stopService() + if not self.tryGetRawFrontend(nim_idx): + if self.session.pipshown: + self.session.infobar.showPiP() + if not self.tryGetRawFrontend(nim_idx): + self.cableTransponderSearchFinished() + return + self.__tlist = [ ] + self.remainingdata = "" + self.cable_search_container = eConsoleAppContainer() + self.cable_search_container.appClosed.append(self.cableTransponderSearchClosed) + self.cable_search_container.dataAvail.append(self.getCableTransponderData) + cableConfig = config.Nims[nim_idx].cable + tunername = nimmanager.getNimName(nim_idx) + try: + bus = nimmanager.getI2CDevice(nim_idx) + if bus is None: + print "ERROR: could not get I2C device for nim", nim_idx, "for cable transponder search" + bus = 2 + except: + # older API + if nim_idx < 2: + if HardwareInfo().get_device_name() == "dm500hd": + bus = 2 + else: + bus = nim_idx + else: + if nim_idx == 2: + bus = 2 # DM8000 first nim is /dev/i2c/2 + else: + bus = 4 # DM8000 second num is /dev/i2c/4 + + if tunername == "CXD1981": + bin_name = "CXD1981" + cmd = "cxd1978 --init --scan --verbose --wakeup --inv 2 --bus %d" % bus + elif tunername.startswith("Sundtek"): + bin_name = "mediaclient" + cmd = "/opt/bin/mediaclient --blindscan %d" % nim_idx + else: + bin_name = GetCommand(nim_idx) + cmd = "%(BIN_NAME)s --init --scan --verbose --wakeup --inv 2 --bus %(BUS)d" % {'BIN_NAME':bin_name , 'BUS':bus} + + if cableConfig.scan_type.value == "bands": + cmd += " --scan-bands " + bands = 0 + if cableConfig.scan_band_EU_VHF_I.value: + bands |= cable_bands["DVBC_BAND_EU_VHF_I"] + if cableConfig.scan_band_EU_MID.value: + bands |= cable_bands["DVBC_BAND_EU_MID"] + if cableConfig.scan_band_EU_VHF_III.value: + bands |= cable_bands["DVBC_BAND_EU_VHF_III"] + if cableConfig.scan_band_EU_UHF_IV.value: + bands |= cable_bands["DVBC_BAND_EU_UHF_IV"] + if cableConfig.scan_band_EU_UHF_V.value: + bands |= cable_bands["DVBC_BAND_EU_UHF_V"] + if cableConfig.scan_band_EU_SUPER.value: + bands |= cable_bands["DVBC_BAND_EU_SUPER"] + if cableConfig.scan_band_EU_HYPER.value: + bands |= cable_bands["DVBC_BAND_EU_HYPER"] + if cableConfig.scan_band_US_LOW.value: + bands |= cable_bands["DVBC_BAND_US_LO"] + if cableConfig.scan_band_US_MID.value: + bands |= cable_bands["DVBC_BAND_US_MID"] + if cableConfig.scan_band_US_HIGH.value: + bands |= cable_bands["DVBC_BAND_US_HI"] + if cableConfig.scan_band_US_SUPER.value: + bands |= cable_bands["DVBC_BAND_US_SUPER"] + if cableConfig.scan_band_US_HYPER.value: + bands |= cable_bands["DVBC_BAND_US_HYPER"] + cmd += str(bands) + else: + cmd += " --scan-stepsize " + cmd += str(cableConfig.scan_frequency_steps.value) + if cableConfig.scan_mod_qam16.value: + cmd += " --mod 16" + if cableConfig.scan_mod_qam32.value: + cmd += " --mod 32" + if cableConfig.scan_mod_qam64.value: + cmd += " --mod 64" + if cableConfig.scan_mod_qam128.value: + cmd += " --mod 128" + if cableConfig.scan_mod_qam256.value: + cmd += " --mod 256" + if cableConfig.scan_sr_6900.value: + cmd += " --sr 6900000" + if cableConfig.scan_sr_6875.value: + cmd += " --sr 6875000" + if cableConfig.scan_sr_ext1.value > 450: + cmd += " --sr " + cmd += str(cableConfig.scan_sr_ext1.value) + cmd += "000" + if cableConfig.scan_sr_ext2.value > 450: + cmd += " --sr " + cmd += str(cableConfig.scan_sr_ext2.value) + cmd += "000" + print bin_name, " CMD is", cmd + + self.cable_search_container.execute(cmd) + tmpstr = _("Try to find used transponders in cable network.. please wait...") + tmpstr += "\n\n..." + self.cable_search_session = self.session.openWithCallback(self.cableTransponderSearchSessionClosed, MessageBox, tmpstr, MessageBox.TYPE_INFO) + +class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport): + def __init__(self, session): + Screen.__init__(self, session) + Screen.setTitle(self, _("Manual Scan")) + + self.finished_cb = None + self.updateSatList() + self.service = session.nav.getCurrentService() + self.feinfo = None + self.networkid = 0 + frontendData = None + if self.service is not None: + self.feinfo = self.service.frontendInfo() + frontendData = self.feinfo and self.feinfo.getAll(True) + + self.ter_channel_input = False + self.ter_tnumber = None + self.createConfig(frontendData) + + del self.feinfo + del self.service + + self.session.postScanService = session.nav.getCurrentlyPlayingServiceOrGroup() + + self["key_red"] = StaticText(_("Close")) + self["key_green"] = StaticText(_("Scan")) + + self["actions"] = NumberActionMap(["SetupActions", "MenuActions", "ColorActions"], + { + "ok": self.keyGo, + "save": self.keyGo, + "cancel": self.keyCancel, + "red": self.keyCancel, + "green": self.keyGo, + "menu": self.doCloseRecursive, + }, -2) + + self.statusTimer = eTimer() + self.statusTimer.callback.append(self.updateStatus) + #self.statusTimer.start(5000, True) + + self.list = [] + ConfigListScreen.__init__(self, self.list) + self["header"] = Label(_("Manual Scan")) + if not self.scan_nims.value == "": + self.createSetup() + self["introduction"] = Label(_("Press OK to start the scan")) + else: + self["introduction"] = Label(_("Nothing to scan!\nPlease setup your tuner settings before you start a service scan.")) + + def runAsync(self, finished_cb): + self.finished_cb = finished_cb + self.keyGo() + + def updateSatList(self): + self.satList = [] + for slot in nimmanager.nim_slots: + if slot.isCompatible("DVB-S"): + self.satList.append(nimmanager.getSatListForNim(slot.slot)) + else: + self.satList.append(None) + + def createSetup(self): + self.list = [] + self.multiscanlist = [] + index_to_scan = int(self.scan_nims.value) + print "ID: ", index_to_scan + + self.tunerEntry = getConfigListEntry(_("Tuner"), self.scan_nims) + self.list.append(self.tunerEntry) + + if self.scan_nims == [ ]: + return + + self.typeOfScanEntry = None + self.typeOfInputEntry = None + self.systemEntry = None + self.modulationEntry = None + self.preDefSatList = None + self.TerrestrialTransponders = None + nim = nimmanager.nim_slots[index_to_scan] + if nim.isCompatible("DVB-S"): + self.typeOfScanEntry = getConfigListEntry(_("Type of scan"), self.scan_type) + self.list.append(self.typeOfScanEntry) + elif nim.isCompatible("DVB-C"): + self.typeOfScanEntry = getConfigListEntry(_("Type of scan"), self.scan_typecable) + self.list.append(self.typeOfScanEntry) + elif nim.isCompatible("DVB-T"): + self.typeOfScanEntry = getConfigListEntry(_("Type of scan"), self.scan_typeterrestrial) + self.list.append(self.typeOfScanEntry) + if self.scan_typeterrestrial.value == "single_transponder": + self.typeOfInputEntry = getConfigListEntry(_("Use frequency or channel"), self.scan_input_as) + if self.ter_channel_input: + self.list.append(self.typeOfInputEntry) + else: + self.scan_input_as.value = self.scan_input_as.choices[0] + + self.scan_networkScan.value = False + if nim.isCompatible("DVB-S"): + if self.scan_type.value == "single_transponder": + self.updateSatList() + if nim.isCompatible("DVB-S2"): + self.systemEntry = getConfigListEntry(_('System'), self.scan_sat.system) + self.list.append(self.systemEntry) + else: + # downgrade to dvb-s, in case a -s2 config was active + self.scan_sat.system.value = eDVBFrontendParametersSatellite.System_DVB_S + self.list.append(getConfigListEntry(_('Satellite'), self.scan_satselection[index_to_scan])) + self.list.append(getConfigListEntry(_('Frequency'), self.scan_sat.frequency)) + self.list.append(getConfigListEntry(_('Inversion'), self.scan_sat.inversion)) + self.list.append(getConfigListEntry(_('Symbol rate'), self.scan_sat.symbolrate)) + self.list.append(getConfigListEntry(_('Polarization'), self.scan_sat.polarization)) + if self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S: + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec)) + elif self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S2: + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2)) + self.modulationEntry = getConfigListEntry(_('Modulation'), self.scan_sat.modulation) + self.list.append(self.modulationEntry) + self.list.append(getConfigListEntry(_('Roll-off'), self.scan_sat.rolloff)) + self.list.append(getConfigListEntry(_('Pilot'), self.scan_sat.pilot)) + elif self.scan_type.value == "predefined_transponder" and self.satList[index_to_scan]: + self.updateSatList() + self.preDefSatList = getConfigListEntry(_('Satellite'), self.scan_satselection[index_to_scan]) + self.list.append(self.preDefSatList) + sat = self.satList[index_to_scan][self.scan_satselection[index_to_scan].index] + self.predefinedTranspondersList(sat[0]) + self.list.append(getConfigListEntry(_('Transponder'), self.preDefTransponders)) + elif self.scan_type.value == "single_satellite": + self.updateSatList() + print self.scan_satselection[index_to_scan] + self.list.append(getConfigListEntry(_("Satellite"), self.scan_satselection[index_to_scan])) + self.scan_networkScan.value = True + elif "multisat" in self.scan_type.value: + tlist = [] + SatList = nimmanager.getSatListForNim(index_to_scan) + for x in SatList: + if self.Satexists(tlist, x[0]) == 0: + tlist.append(x[0]) + sat = ConfigEnableDisable(default = "_yes" in self.scan_type.value and True or False) + configEntry = getConfigListEntry(nimmanager.getSatDescription(x[0]), sat) + self.list.append(configEntry) + self.multiscanlist.append((x[0], sat)) + self.scan_networkScan.value = True + elif nim.isCompatible("DVB-C"): + if self.scan_typecable.value == "single_transponder": + self.list.append(getConfigListEntry(_("Frequency"), self.scan_cab.frequency)) + self.list.append(getConfigListEntry(_("Inversion"), self.scan_cab.inversion)) + self.list.append(getConfigListEntry(_("Symbol rate"), self.scan_cab.symbolrate)) + self.list.append(getConfigListEntry(_("Modulation"), self.scan_cab.modulation)) + self.list.append(getConfigListEntry(_("FEC"), self.scan_cab.fec)) + if config.Nims[index_to_scan].cable.scan_networkid.value: + self.networkid = config.Nims[index_to_scan].cable.scan_networkid.value + self.scan_networkScan.value = True + elif nim.isCompatible("DVB-T"): + if self.scan_typeterrestrial.value == "single_transponder": + if nim.isCompatible("DVB-T2"): + self.systemEntry = getConfigListEntry(_('System'), self.scan_ter.system) + self.list.append(self.systemEntry) + else: + self.scan_ter.system.value = eDVBFrontendParametersTerrestrial.System_DVB_T + if self.ter_channel_input and self.scan_input_as.value == "channel": + channel = channelnumbers.getChannelNumber(self.scan_ter.frequency.value*1000, self.ter_tnumber) + if channel: + self.scan_ter.channel.value = int(channel.replace("+","").replace("-","")) + self.list.append(getConfigListEntry(_("Channel"), self.scan_ter.channel)) + else: + prev_val = self.scan_ter.frequency.value + self.scan_ter.frequency.value = channelnumbers.channel2frequency(self.scan_ter.channel.value, self.ter_tnumber)/1000 + if self.scan_ter.frequency.value == 474000: + self.scan_ter.frequency.value = prev_val + self.list.append(getConfigListEntry(_("Frequency"), self.scan_ter.frequency)) + self.list.append(getConfigListEntry(_("Inversion"), self.scan_ter.inversion)) + self.list.append(getConfigListEntry(_("Bandwidth"), self.scan_ter.bandwidth)) + self.list.append(getConfigListEntry(_("Code rate HP"), self.scan_ter.fechigh)) + self.list.append(getConfigListEntry(_("Code rate LP"), self.scan_ter.feclow)) + self.list.append(getConfigListEntry(_("Modulation"), self.scan_ter.modulation)) + self.list.append(getConfigListEntry(_("Transmission mode"), self.scan_ter.transmission)) + self.list.append(getConfigListEntry(_("Guard interval"), self.scan_ter.guard)) + self.list.append(getConfigListEntry(_("Hierarchy info"), self.scan_ter.hierarchy)) + if self.scan_ter.system.value == eDVBFrontendParametersTerrestrial.System_DVB_T2: + self.list.append(getConfigListEntry(_('PLP ID'), self.scan_ter.plp_id)) + elif self.scan_typeterrestrial.value == "predefined_transponder": + tp_list = getRegionTerrestrialTransponderList(nimmanager.getTerrestrialDescription(index_to_scan)) + if tp_list: + self.TerrestrialTransponders = ConfigSelection(choices=tp_list) + self.list.append(getConfigListEntry(_('Transponder'), self.TerrestrialTransponders)) + self.list.append(getConfigListEntry(_("Network scan"), self.scan_networkScan)) + self.list.append(getConfigListEntry(_("Clear before scan"), self.scan_clearallservices)) + self.list.append(getConfigListEntry(_("Only free scan"), self.scan_onlyfree)) + self["config"].list = self.list + self["config"].l.setList(self.list) + + def Satexists(self, tlist, pos): + for x in tlist: + if x == pos: + return 1 + return 0 + + def newConfig(self): + cur = self["config"].getCurrent() + print "cur is", cur + if cur == self.typeOfScanEntry or \ + cur == self.typeOfInputEntry or \ + cur == self.tunerEntry or \ + cur == self.systemEntry or \ + cur == self.preDefSatList or \ + (self.modulationEntry and self.systemEntry[1].value == eDVBFrontendParametersSatellite.System_DVB_S2 and cur == self.modulationEntry): + self.createSetup() + + def createConfig(self, frontendData): + defaultSat = { + "orbpos": 192, + "system": eDVBFrontendParametersSatellite.System_DVB_S, + "frequency": 11836, + "inversion": eDVBFrontendParametersSatellite.Inversion_Unknown, + "symbolrate": 27500, + "polarization": eDVBFrontendParametersSatellite.Polarisation_Horizontal, + "fec": eDVBFrontendParametersSatellite.FEC_Auto, + "fec_s2": eDVBFrontendParametersSatellite.FEC_9_10, + "modulation": eDVBFrontendParametersSatellite.Modulation_QPSK } + defaultCab = { + "frequency": 466, + "inversion": eDVBFrontendParametersCable.Inversion_Unknown, + "modulation": eDVBFrontendParametersCable.Modulation_QAM64, + "fec": eDVBFrontendParametersCable.FEC_Auto, + "symbolrate": 6900, + "system": eDVBFrontendParametersCable.System_DVB_C_ANNEX_A } + defaultTer = { + "frequency" : 474000, + "inversion" : eDVBFrontendParametersTerrestrial.Inversion_Unknown, + "bandwidth" : 8000000, + "fechigh" : eDVBFrontendParametersTerrestrial.FEC_Auto, + "feclow" : eDVBFrontendParametersTerrestrial.FEC_Auto, + "modulation" : eDVBFrontendParametersTerrestrial.Modulation_Auto, + "transmission_mode" : eDVBFrontendParametersTerrestrial.TransmissionMode_Auto, + "guard_interval" : eDVBFrontendParametersTerrestrial.GuardInterval_Auto, + "hierarchy": eDVBFrontendParametersTerrestrial.Hierarchy_Auto, + "system": eDVBFrontendParametersTerrestrial.System_DVB_T, + "plp_id": 0 } + + if frontendData is not None: + ttype = frontendData.get("tuner_type", "UNKNOWN") + if ttype == "DVB-S": + defaultSat["system"] = frontendData.get("system", eDVBFrontendParametersSatellite.System_DVB_S) + defaultSat["frequency"] = frontendData.get("frequency", 0) / 1000 + defaultSat["inversion"] = frontendData.get("inversion", eDVBFrontendParametersSatellite.Inversion_Unknown) + defaultSat["symbolrate"] = frontendData.get("symbol_rate", 0) / 1000 + defaultSat["polarization"] = frontendData.get("polarization", eDVBFrontendParametersSatellite.Polarisation_Horizontal) + if defaultSat["system"] == eDVBFrontendParametersSatellite.System_DVB_S2: + defaultSat["fec_s2"] = frontendData.get("fec_inner", eDVBFrontendParametersSatellite.FEC_Auto) + defaultSat["rolloff"] = frontendData.get("rolloff", eDVBFrontendParametersSatellite.RollOff_alpha_0_35) + defaultSat["pilot"] = frontendData.get("pilot", eDVBFrontendParametersSatellite.Pilot_Unknown) + else: + defaultSat["fec"] = frontendData.get("fec_inner", eDVBFrontendParametersSatellite.FEC_Auto) + defaultSat["modulation"] = frontendData.get("modulation", eDVBFrontendParametersSatellite.Modulation_QPSK) + defaultSat["orbpos"] = frontendData.get("orbital_position", 0) + elif ttype == "DVB-C": + defaultCab["frequency"] = frontendData.get("frequency", 0) / 1000 + defaultCab["symbolrate"] = frontendData.get("symbol_rate", 0) / 1000 + defaultCab["inversion"] = frontendData.get("inversion", eDVBFrontendParametersCable.Inversion_Unknown) + defaultCab["fec"] = frontendData.get("fec_inner", eDVBFrontendParametersCable.FEC_Auto) + defaultCab["modulation"] = frontendData.get("modulation", eDVBFrontendParametersCable.Modulation_QAM16) + defaultCab["system"] = frontendData.get("system", eDVBFrontendParametersCable.System_DVB_C_ANNEX_A) + elif ttype == "DVB-T": + defaultTer["frequency"] = frontendData.get("frequency", 47400000) / 1000 + defaultTer["inversion"] = frontendData.get("inversion", eDVBFrontendParametersTerrestrial.Inversion_Unknown) + defaultTer["bandwidth"] = frontendData.get("bandwidth", 8000000) + defaultTer["fechigh"] = frontendData.get("code_rate_hp", eDVBFrontendParametersTerrestrial.FEC_Auto) + defaultTer["feclow"] = frontendData.get("code_rate_lp", eDVBFrontendParametersTerrestrial.FEC_Auto) + defaultTer["modulation"] = frontendData.get("constellation", eDVBFrontendParametersTerrestrial.Modulation_Auto) + defaultTer["transmission_mode"] = frontendData.get("transmission_mode", eDVBFrontendParametersTerrestrial.TransmissionMode_Auto) + defaultTer["guard_interval"] = frontendData.get("guard_interval", eDVBFrontendParametersTerrestrial.GuardInterval_Auto) + defaultTer["hierarchy"] = frontendData.get("hierarchy_information", eDVBFrontendParametersTerrestrial.Hierarchy_Auto) + defaultTer["system"] = frontendData.get("system", eDVBFrontendParametersTerrestrial.System_DVB_T) + defaultTer["plp_id"] = frontendData.get("plp_id", 0) + + self.scan_sat = ConfigSubsection() + self.scan_cab = ConfigSubsection() + self.scan_ter = ConfigSubsection() + + nim_list = [] + # collect all nims which are *not* set to "nothing" + for n in nimmanager.nim_slots: + if n.config_mode == "nothing": + continue + if n.config_mode == "advanced" and len(nimmanager.getSatListForNim(n.slot)) < 1: + continue + if n.config_mode in ("loopthrough", "satposdepends"): + root_id = nimmanager.sec.getRoot(n.slot_id, int(n.config.connectedTo.value)) + if n.type == nimmanager.nim_slots[root_id].type: # check if connected from a DVB-S to DVB-S2 Nim or vice versa + continue + nim_list.append((str(n.slot), n.friendly_full_description)) + + self.scan_nims = ConfigSelection(choices = nim_list) + if frontendData is not None and len(nim_list) > 0: + self.scan_nims.setValue(str(frontendData.get("tuner_number", nim_list[0][0]))) + + for slot in nimmanager.nim_slots: + if slot.isCompatible("DVB-T"): + self.ter_tnumber = slot.slot + if self.ter_tnumber is not None: + self.ter_channel_input = channelnumbers.supportedChannels(self.ter_tnumber) + + # status + self.scan_snr = ConfigSlider() + self.scan_snr.enabled = False + self.scan_agc = ConfigSlider() + self.scan_agc.enabled = False + self.scan_ber = ConfigSlider() + self.scan_ber.enabled = False + + # sat + self.scan_sat.system = ConfigSelection(default = defaultSat["system"], choices = [ + (eDVBFrontendParametersSatellite.System_DVB_S, _("DVB-S")), + (eDVBFrontendParametersSatellite.System_DVB_S2, _("DVB-S2"))]) + self.scan_sat.frequency = ConfigInteger(default = defaultSat["frequency"], limits = (1, 99999)) + self.scan_sat.inversion = ConfigSelection(default = defaultSat["inversion"], choices = [ + (eDVBFrontendParametersSatellite.Inversion_Off, _("Off")), + (eDVBFrontendParametersSatellite.Inversion_On, _("On")), + (eDVBFrontendParametersSatellite.Inversion_Unknown, _("Auto"))]) + self.scan_sat.symbolrate = ConfigInteger(default = defaultSat["symbolrate"], limits = (1, 99999)) + self.scan_sat.polarization = ConfigSelection(default = defaultSat["polarization"], choices = [ + (eDVBFrontendParametersSatellite.Polarisation_Horizontal, _("horizontal")), + (eDVBFrontendParametersSatellite.Polarisation_Vertical, _("vertical")), + (eDVBFrontendParametersSatellite.Polarisation_CircularLeft, _("circular left")), + (eDVBFrontendParametersSatellite.Polarisation_CircularRight, _("circular right"))]) + self.scan_sat.fec = ConfigSelection(default = defaultSat["fec"], choices = [ + (eDVBFrontendParametersSatellite.FEC_Auto, _("Auto")), + (eDVBFrontendParametersSatellite.FEC_1_2, "1/2"), + (eDVBFrontendParametersSatellite.FEC_2_3, "2/3"), + (eDVBFrontendParametersSatellite.FEC_3_4, "3/4"), + (eDVBFrontendParametersSatellite.FEC_5_6, "5/6"), + (eDVBFrontendParametersSatellite.FEC_7_8, "7/8"), + (eDVBFrontendParametersSatellite.FEC_None, _("None"))]) + self.scan_sat.fec_s2 = ConfigSelection(default = defaultSat["fec_s2"], choices = [ + (eDVBFrontendParametersSatellite.FEC_1_2, "1/2"), + (eDVBFrontendParametersSatellite.FEC_2_3, "2/3"), + (eDVBFrontendParametersSatellite.FEC_3_4, "3/4"), + (eDVBFrontendParametersSatellite.FEC_3_5, "3/5"), + (eDVBFrontendParametersSatellite.FEC_4_5, "4/5"), + (eDVBFrontendParametersSatellite.FEC_5_6, "5/6"), + (eDVBFrontendParametersSatellite.FEC_7_8, "7/8"), + (eDVBFrontendParametersSatellite.FEC_8_9, "8/9"), + (eDVBFrontendParametersSatellite.FEC_9_10, "9/10")]) + self.scan_sat.modulation = ConfigSelection(default = defaultSat["modulation"], choices = [ + (eDVBFrontendParametersSatellite.Modulation_QPSK, "QPSK"), + (eDVBFrontendParametersSatellite.Modulation_8PSK, "8PSK")]) + self.scan_sat.rolloff = ConfigSelection(default = defaultSat.get("rolloff", eDVBFrontendParametersSatellite.RollOff_alpha_0_35), choices = [ + (eDVBFrontendParametersSatellite.RollOff_alpha_0_35, "0.35"), + (eDVBFrontendParametersSatellite.RollOff_alpha_0_25, "0.25"), + (eDVBFrontendParametersSatellite.RollOff_alpha_0_20, "0.20"), + (eDVBFrontendParametersSatellite.RollOff_auto, _("Auto"))]) + self.scan_sat.pilot = ConfigSelection(default = defaultSat.get("pilot", eDVBFrontendParametersSatellite.Pilot_Unknown), choices = [ + (eDVBFrontendParametersSatellite.Pilot_Off, _("Off")), + (eDVBFrontendParametersSatellite.Pilot_On, _("On")), + (eDVBFrontendParametersSatellite.Pilot_Unknown, _("Auto"))]) + + # cable + self.scan_cab.frequency = ConfigInteger(default = defaultCab["frequency"], limits = (50, 999)) + self.scan_cab.inversion = ConfigSelection(default = defaultCab["inversion"], choices = [ + (eDVBFrontendParametersCable.Inversion_Off, _("Off")), + (eDVBFrontendParametersCable.Inversion_On, _("On")), + (eDVBFrontendParametersCable.Inversion_Unknown, _("Auto"))]) + self.scan_cab.modulation = ConfigSelection(default = defaultCab["modulation"], choices = [ + (eDVBFrontendParametersCable.Modulation_QAM16, "16-QAM"), + (eDVBFrontendParametersCable.Modulation_QAM32, "32-QAM"), + (eDVBFrontendParametersCable.Modulation_QAM64, "64-QAM"), + (eDVBFrontendParametersCable.Modulation_QAM128, "128-QAM"), + (eDVBFrontendParametersCable.Modulation_QAM256, "256-QAM")]) + self.scan_cab.fec = ConfigSelection(default = defaultCab["fec"], choices = [ + (eDVBFrontendParametersCable.FEC_Auto, _("Auto")), + (eDVBFrontendParametersCable.FEC_1_2, "1/2"), + (eDVBFrontendParametersCable.FEC_2_3, "2/3"), + (eDVBFrontendParametersCable.FEC_3_4, "3/4"), + (eDVBFrontendParametersCable.FEC_5_6, "5/6"), + (eDVBFrontendParametersCable.FEC_7_8, "7/8"), + (eDVBFrontendParametersCable.FEC_8_9, "8/9"), + (eDVBFrontendParametersCable.FEC_3_5, "3/5"), + (eDVBFrontendParametersCable.FEC_4_5, "4/5"), + (eDVBFrontendParametersCable.FEC_9_10, "9/10"), + (eDVBFrontendParametersCable.FEC_None, _("None"))]) + self.scan_cab.symbolrate = ConfigInteger(default = defaultCab["symbolrate"], limits = (1, 99999)) + self.scan_cab.system = ConfigSelection(default = defaultCab["system"], choices = [ + (eDVBFrontendParametersCable.System_DVB_C_ANNEX_A, _("DVB-C")), + (eDVBFrontendParametersCable.System_DVB_C_ANNEX_C, _("DVB-C ANNEX C"))]) + + # terrestial + self.scan_ter.frequency = ConfigInteger(default = defaultTer["frequency"], limits = (50000, 999000)) + self.scan_ter.channel = ConfigInteger(default = 21, limits = (1, 99)) + self.scan_ter.inversion = ConfigSelection(default = defaultTer["inversion"], choices = [ + (eDVBFrontendParametersTerrestrial.Inversion_Off, _("Off")), + (eDVBFrontendParametersTerrestrial.Inversion_On, _("On")), + (eDVBFrontendParametersTerrestrial.Inversion_Unknown, _("Auto"))]) + # WORKAROUND: we can't use BW-auto + self.scan_ter.bandwidth = ConfigSelection(default = defaultTer["bandwidth"], choices = [ + (1712000, "1.712MHz"), + (5000000, "5MHz"), + (6000000, "6MHz"), + (7000000, "7MHz"), + (8000000, "8MHz"), + (10000000, "10MHz") + ]) + #, (eDVBFrontendParametersTerrestrial.Bandwidth_Auto, _("Auto")))) + self.scan_ter.fechigh = ConfigSelection(default = defaultTer["fechigh"], choices = [ + (eDVBFrontendParametersTerrestrial.FEC_1_2, "1/2"), + (eDVBFrontendParametersTerrestrial.FEC_2_3, "2/3"), + (eDVBFrontendParametersTerrestrial.FEC_3_4, "3/4"), + (eDVBFrontendParametersTerrestrial.FEC_5_6, "5/6"), + (eDVBFrontendParametersTerrestrial.FEC_6_7, "6/7"), + (eDVBFrontendParametersTerrestrial.FEC_7_8, "7/8"), + (eDVBFrontendParametersTerrestrial.FEC_8_9, "8/9"), + (eDVBFrontendParametersTerrestrial.FEC_Auto, _("Auto"))]) + self.scan_ter.feclow = ConfigSelection(default = defaultTer["feclow"], choices = [ + (eDVBFrontendParametersTerrestrial.FEC_1_2, "1/2"), + (eDVBFrontendParametersTerrestrial.FEC_2_3, "2/3"), + (eDVBFrontendParametersTerrestrial.FEC_3_4, "3/4"), + (eDVBFrontendParametersTerrestrial.FEC_5_6, "5/6"), + (eDVBFrontendParametersTerrestrial.FEC_6_7, "6/7"), + (eDVBFrontendParametersTerrestrial.FEC_7_8, "7/8"), + (eDVBFrontendParametersTerrestrial.FEC_8_9, "8/9"), + (eDVBFrontendParametersTerrestrial.FEC_Auto, _("Auto"))]) + self.scan_ter.modulation = ConfigSelection(default = defaultTer["modulation"], choices = [ + (eDVBFrontendParametersTerrestrial.Modulation_QPSK, "QPSK"), + (eDVBFrontendParametersTerrestrial.Modulation_QAM16, "QAM16"), + (eDVBFrontendParametersTerrestrial.Modulation_QAM64, "QAM64"), + (eDVBFrontendParametersTerrestrial.Modulation_QAM256, "QAM256"), + (eDVBFrontendParametersTerrestrial.Modulation_Auto, _("Auto"))]) + self.scan_ter.transmission = ConfigSelection(default = defaultTer["transmission_mode"], choices = [ + (eDVBFrontendParametersTerrestrial.TransmissionMode_1k, "1K"), + (eDVBFrontendParametersTerrestrial.TransmissionMode_2k, "2K"), + (eDVBFrontendParametersTerrestrial.TransmissionMode_4k, "4K"), + (eDVBFrontendParametersTerrestrial.TransmissionMode_8k, "8K"), + (eDVBFrontendParametersTerrestrial.TransmissionMode_16k, "16K"), + (eDVBFrontendParametersTerrestrial.TransmissionMode_32k, "32K"), + (eDVBFrontendParametersTerrestrial.TransmissionMode_Auto, _("Auto"))]) + self.scan_ter.guard = ConfigSelection(default = defaultTer["guard_interval"], choices = [ + (eDVBFrontendParametersTerrestrial.GuardInterval_1_32, "1/32"), + (eDVBFrontendParametersTerrestrial.GuardInterval_1_16, "1/16"), + (eDVBFrontendParametersTerrestrial.GuardInterval_1_8, "1/8"), + (eDVBFrontendParametersTerrestrial.GuardInterval_1_4, "1/4"), + (eDVBFrontendParametersTerrestrial.GuardInterval_1_128, "1/128"), + (eDVBFrontendParametersTerrestrial.GuardInterval_19_128, "19/128"), + (eDVBFrontendParametersTerrestrial.GuardInterval_19_256, "19/256"), + (eDVBFrontendParametersTerrestrial.GuardInterval_Auto, _("Auto"))]) + self.scan_ter.hierarchy = ConfigSelection(default = defaultTer["hierarchy"], choices = [ + (eDVBFrontendParametersTerrestrial.Hierarchy_None, _("None")), + (eDVBFrontendParametersTerrestrial.Hierarchy_1, "1"), + (eDVBFrontendParametersTerrestrial.Hierarchy_2, "2"), + (eDVBFrontendParametersTerrestrial.Hierarchy_4, "4"), + (eDVBFrontendParametersTerrestrial.Hierarchy_Auto, _("Auto"))]) + self.scan_ter.system = ConfigSelection(default = defaultTer["system"], choices = [ + (eDVBFrontendParametersTerrestrial.System_DVB_T, _("DVB-T")), + (eDVBFrontendParametersTerrestrial.System_DVB_T2, _("DVB-T2"))]) + self.scan_ter.plp_id = ConfigInteger(default = defaultTer["plp_id"], limits = (0, 255)) + + if frontendData is not None and ttype == "DVB-S" and self.predefinedTranspondersList(defaultSat["orbpos"]) is not None: + defaultSatSearchType = "predefined_transponder" + else: + defaultSatSearchType = "single_transponder" + + self.scan_type = ConfigSelection(default = defaultSatSearchType, choices = [("single_transponder", _("User defined transponder")), ("predefined_transponder", _("Predefined transponder")), ("single_satellite", _("Single satellite")), ("multisat", _("Multisat")), ("multisat_yes", _("Multisat"))]) + self.scan_typecable = ConfigSelection(default = "single_transponder", choices = [("single_transponder", _("Single transponder")), ("complete", _("Complete"))]) + self.scan_typeterrestrial = ConfigSelection(default = "single_transponder", choices = [("single_transponder", _("Single transponder")), ("complete", _("Complete"))]) + self.scan_input_as = ConfigSelection(default = "channel", choices = [("frequency", _("Frequency")), ("channel", _("Channel"))]) + self.scan_clearallservices = ConfigSelection(default = "no", choices = [("no", _("no")), ("yes", _("yes")), ("yes_hold_feeds", _("yes (keep feeds)"))]) + self.scan_onlyfree = ConfigYesNo(default = False) + self.scan_networkScan = ConfigYesNo(default = False) + + self.scan_scansat = {} + for sat in nimmanager.satList: + #print sat[1] + self.scan_scansat[sat[0]] = ConfigYesNo(default = False) + + self.scan_satselection = [] + for slot in nimmanager.nim_slots: + if slot.isCompatible("DVB-S"): + self.scan_satselection.append(getConfigSatlist(defaultSat["orbpos"], self.satList[slot.slot])) + else: + self.scan_satselection.append(None) + + return True + + def keyLeft(self): + ConfigListScreen.keyLeft(self) + self.newConfig() + + def keyRight(self): + ConfigListScreen.keyRight(self) + self.newConfig() + + def handleKeyFileCallback(self, answer): + ConfigListScreen.handleKeyFileCallback(self, answer) + self.newConfig() + + def updateStatus(self): + print "updatestatus" + + def addSatTransponder(self, tlist, frequency, symbol_rate, polarisation, fec, inversion, orbital_position, system, modulation, rolloff, pilot): + print "Add Sat: frequ: " + str(frequency) + " symbol: " + str(symbol_rate) + " pol: " + str(polarisation) + " fec: " + str(fec) + " inversion: " + str(inversion) + " modulation: " + str(modulation) + " system: " + str(system) + " rolloff" + str(rolloff) + " pilot" + str(pilot) + print "orbpos: " + str(orbital_position) + parm = eDVBFrontendParametersSatellite() + parm.modulation = modulation + parm.system = system + parm.frequency = frequency * 1000 + parm.symbol_rate = symbol_rate * 1000 + parm.polarisation = polarisation + parm.fec = fec + parm.inversion = inversion + parm.orbital_position = orbital_position + parm.rolloff = rolloff + parm.pilot = pilot + tlist.append(parm) + + def addCabTransponder(self, tlist, frequency, symbol_rate, modulation, fec, inversion): + print "Add Cab: frequ: " + str(frequency) + " symbol: " + str(symbol_rate) + " pol: " + str(modulation) + " fec: " + str(fec) + " inversion: " + str(inversion) + parm = eDVBFrontendParametersCable() + parm.frequency = frequency * 1000 + parm.symbol_rate = symbol_rate * 1000 + parm.modulation = modulation + parm.fec = fec + parm.inversion = inversion + tlist.append(parm) + + def addTerTransponder(self, tlist, *args, **kwargs): + tlist.append(buildTerTransponder(*args, **kwargs)) + + def keyGo(self): + infoBarInstance = InfoBar.instance + if infoBarInstance: + infoBarInstance.checkTimeshiftRunning(self.keyGoCheckTimeshiftCallback) + else: + self.keyGoCheckTimeshiftCallback(True) + + def keyGoCheckTimeshiftCallback(self, answer): + if not answer or self.scan_nims.value == "": + return + tlist = [] + flags = None + startScan = True + removeAll = True + index_to_scan = int(self.scan_nims.value) + + if self.scan_nims == [ ]: + self.session.open(MessageBox, _("No tuner is enabled!\nPlease setup your tuner settings before you start a service scan."), MessageBox.TYPE_ERROR) + return + + nim = nimmanager.nim_slots[index_to_scan] + print "nim", nim.slot + if nim.isCompatible("DVB-S"): + print "is compatible with DVB-S" + if self.scan_type.value == "single_transponder": + # these lists are generated for each tuner, so this has work. + assert len(self.satList) > index_to_scan + assert len(self.scan_satselection) > index_to_scan + + nimsats = self.satList[index_to_scan] + selsatidx = self.scan_satselection[index_to_scan].index + + # however, the satList itself could be empty. in that case, "index" is 0 (for "None"). + if len(nimsats): + orbpos = nimsats[selsatidx][0] + if self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S: + fec = self.scan_sat.fec.value + else: + fec = self.scan_sat.fec_s2.value + print "add sat transponder" + self.addSatTransponder(tlist, self.scan_sat.frequency.value, + self.scan_sat.symbolrate.value, + self.scan_sat.polarization.value, + fec, + self.scan_sat.inversion.value, + orbpos, + self.scan_sat.system.value, + self.scan_sat.modulation.value, + self.scan_sat.rolloff.value, + self.scan_sat.pilot.value) + removeAll = False + elif self.scan_type.value == "predefined_transponder": + nimsats = self.satList[index_to_scan] + selsatidx = self.scan_satselection[index_to_scan].index + if len(nimsats): + orbpos = nimsats[selsatidx][0] + tps = nimmanager.getTransponders(orbpos) + if len(tps) and len(tps) > self.preDefTransponders.index : + tp = tps[self.preDefTransponders.index] + self.addSatTransponder(tlist, tp[1] / 1000, tp[2] / 1000, tp[3], tp[4], tp[7], orbpos, tp[5], tp[6], tp[8], tp[9]) + removeAll = False + elif self.scan_type.value == "single_satellite": + sat = self.satList[index_to_scan][self.scan_satselection[index_to_scan].index] + getInitialTransponderList(tlist, sat[0]) + elif "multisat" in self.scan_type.value: + SatList = nimmanager.getSatListForNim(index_to_scan) + for x in self.multiscanlist: + if x[1].value: + print " " + str(x[0]) + getInitialTransponderList(tlist, x[0]) + + elif nim.isCompatible("DVB-C"): + if self.scan_typecable.value == "single_transponder": + self.addCabTransponder(tlist, self.scan_cab.frequency.value, + self.scan_cab.symbolrate.value, + self.scan_cab.modulation.value, + self.scan_cab.fec.value, + self.scan_cab.inversion.value) + removeAll = False + elif self.scan_typecable.value == "complete": + if config.Nims[index_to_scan].cable.scan_type.value == "provider": + getInitialCableTransponderList(tlist, index_to_scan) + else: + startScan = False + + elif nim.isCompatible("DVB-T"): + if self.scan_typeterrestrial.value == "single_transponder": + if self.scan_input_as.value == "channel": + frequency = channelnumbers.channel2frequency(self.scan_ter.channel.value, self.ter_tnumber) + else: + frequency = self.scan_ter.frequency.value * 1000 + self.addTerTransponder(tlist, + frequency, + inversion = self.scan_ter.inversion.value, + bandwidth = self.scan_ter.bandwidth.value, + fechigh = self.scan_ter.fechigh.value, + feclow = self.scan_ter.feclow.value, + modulation = self.scan_ter.modulation.value, + transmission = self.scan_ter.transmission.value, + guard = self.scan_ter.guard.value, + hierarchy = self.scan_ter.hierarchy.value, + system = self.scan_ter.system.value, + plpid = self.scan_ter.plp_id.value) + removeAll = False + elif self.scan_typeterrestrial.value == "predefined_transponder": + if self.TerrestrialTransponders is not None: + tlist = [self.TerrestrialTransponders.value] + removeAll = False + elif self.scan_typeterrestrial.value == "complete": + getInitialTerrestrialTransponderList(tlist, nimmanager.getTerrestrialDescription(index_to_scan)) + + flags = self.scan_networkScan.value and eComponentScan.scanNetworkSearch or 0 + + tmp = self.scan_clearallservices.value + if tmp == "yes": + flags |= eComponentScan.scanRemoveServices + elif tmp == "yes_hold_feeds": + flags |= eComponentScan.scanRemoveServices + flags |= eComponentScan.scanDontRemoveFeeds + + if tmp != "no" and not removeAll: + flags |= eComponentScan.scanDontRemoveUnscanned + + if self.scan_onlyfree.value: + flags |= eComponentScan.scanOnlyFree + + for x in self["config"].list: + x[1].save() + + if startScan: + self.startScan(tlist, flags, index_to_scan, self.networkid) + else: + self.flags = flags + self.feid = index_to_scan + self.tlist = [] + self.startCableTransponderSearch(self.feid) + + def setCableTransponderSearchResult(self, tlist): + self.tlist = tlist + + def cableTransponderSearchFinished(self): + if self.tlist is None: + self.tlist = [] + else: + self.startScan(self.tlist, self.flags, self.feid) + + def predefinedTranspondersList(self, orbpos): + default = None + if orbpos is not None: + list = [] + if self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S2: + fec = self.scan_sat.fec_s2.value + else: + fec = self.scan_sat.fec.value + compare = [0, self.scan_sat.frequency.value, self.scan_sat.symbolrate.value, self.scan_sat.polarization.value, fec] + i = 0 + tps = nimmanager.getTransponders(orbpos) + for tp in tps: + if tp[0] == 0: + if default is None and self.compareTransponders(tp, compare): + default = str(i) + list.append((str(i), self.humanReadableTransponder(tp))) + i += 1 + self.preDefTransponders = ConfigSelection(choices = list, default = default) + return default + + def humanReadableTransponder(self, tp): + if tp[3] in range (4) and tp[4] in range (11): + pol_list = ['H','V','L','R'] + fec_list = ['Auto','1/2','2/3','3/4','5/6','7/8','8/9','3/5','4/5','9/10','None'] + return str(tp[1] / 1000) + " " + pol_list[tp[3]] + " " + str(tp[2] / 1000) + " " + fec_list[tp[4]] + return _("Invalid transponder data") + + def compareTransponders(self, tp, compare): + return abs(tp[1] / 1000 - compare[1]) <= 2 and abs(tp[2] / 1000 - compare[2]) <= 10 and tp[3] == compare[3] and (not tp[4] or tp[4] == compare[4]) + + def startScan(self, tlist, flags, feid, networkid = 0): + if len(tlist): + # flags |= eComponentScan.scanSearchBAT + if self.finished_cb: + self.session.openWithCallback(self.finished_cb, ServiceScan, [{"transponders": tlist, "feid": feid, "flags": flags, "networkid": networkid}]) + else: + self.session.openWithCallback(self.startScanCallback, ServiceScan, [{"transponders": tlist, "feid": feid, "flags": flags, "networkid": networkid}]) + else: + if self.finished_cb: + self.session.openWithCallback(self.finished_cb, MessageBox, _("Nothing to scan!\nPlease setup your tuner settings before you start a service scan."), MessageBox.TYPE_ERROR) + else: + self.session.open(MessageBox, _("Nothing to scan!\nPlease setup your tuner settings before you start a service scan."), MessageBox.TYPE_ERROR) + + def startScanCallback(self, answer=True): + if answer: + self.doCloseRecursive() + + def keyCancel(self): + self.session.nav.playService(self.session.postScanService) + for x in self["config"].list: + x[1].cancel() + self.close() + + def doCloseRecursive(self): + self.session.nav.playService(self.session.postScanService) + self.closeRecursive() + +class ScanSimple(ConfigListScreen, Screen, CableTransponderSearchSupport): + def getNetworksForNim(self, nim): + if nim.isCompatible("DVB-S"): + networks = nimmanager.getSatListForNim(nim.slot) + elif not nim.empty: + networks = [ nim.type ] # "DVB-C" or "DVB-T". TODO: seperate networks for different C/T tuners, if we want to support that. + else: + # empty tuners provide no networks. + networks = [ ] + return networks + + def __init__(self, session): + Screen.__init__(self, session) + Screen.setTitle(self, _("Automatic Scan")) + + self["key_red"] = StaticText(_("Close")) + self["key_green"] = StaticText(_("Scan")) + + self["actions"] = ActionMap(["SetupActions", "MenuActions", "ColorActions"], + { + "ok": self.keyGo, + "save": self.keyGo, + "cancel": self.keyCancel, + "menu": self.doCloseRecursive, + "red": self.keyCancel, + "green": self.keyGo, + }, -2) + + self.session.postScanService = session.nav.getCurrentlyPlayingServiceOrGroup() + + self.list = [] + tlist = [] + + known_networks = [ ] + nims_to_scan = [ ] + self.finished_cb = None + + for nim in nimmanager.nim_slots: + # collect networks provided by this tuner + + need_scan = False + networks = self.getNetworksForNim(nim) + + print "nim %d provides" % nim.slot, networks + print "known:", known_networks + + # we only need to scan on the first tuner which provides a network. + # this gives the first tuner for each network priority for scanning. + for x in networks: + if x not in known_networks: + need_scan = True + print x, "not in ", known_networks + known_networks.append(x) + + # don't offer to scan nims if nothing is connected + if not nimmanager.somethingConnected(nim.slot): + need_scan = False + + if need_scan: + nims_to_scan.append(nim) + + # we save the config elements to use them on keyGo + self.nim_enable = [ ] + + if len(nims_to_scan): + self.scan_clearallservices = ConfigSelection(default = "yes", choices = [("no", _("no")), ("yes", _("yes")), ("yes_hold_feeds", _("yes (keep feeds)"))]) + self.list.append(getConfigListEntry(_("Clear before scan"), self.scan_clearallservices)) + + for nim in nims_to_scan: + nimconfig = ConfigYesNo(default = True) + nimconfig.nim_index = nim.slot + self.nim_enable.append(nimconfig) + self.list.append(getConfigListEntry(_("Scan ") + nim.slot_name + " (" + nim.friendly_type + ")", nimconfig)) + + ConfigListScreen.__init__(self, self.list) + self["header"] = Label(_("Automatic scan")) + self["footer"] = Label(_("Press OK to scan")) + + def runAsync(self, finished_cb): + self.finished_cb = finished_cb + self.keyGo() + + def keyGo(self): + InfoBarInstance = InfoBar.instance + if InfoBarInstance: + InfoBarInstance.checkTimeshiftRunning(self.keyGoCheckTimeshiftCallback) + else: + self.keyGoCheckTimeshiftCallback(True) + + def keyGoCheckTimeshiftCallback(self, answer): + if answer: + self.scanList = [] + self.known_networks = set() + self.nim_iter=0 + self.buildTransponderList() + + def buildTransponderList(self): # this method is called multiple times because of asynchronous stuff + APPEND_NOW = 0 + SEARCH_CABLE_TRANSPONDERS = 1 + action = APPEND_NOW + + n = self.nim_iter < len(self.nim_enable) and self.nim_enable[self.nim_iter] or None + self.nim_iter += 1 + if n: + if n.value: # check if nim is enabled + flags = 0 + nim = nimmanager.nim_slots[n.nim_index] + networks = set(self.getNetworksForNim(nim)) + networkid = 0 + + # don't scan anything twice + networks.discard(self.known_networks) + + tlist = [ ] + if nim.isCompatible("DVB-S"): + # get initial transponders for each satellite to be scanned + for sat in networks: + getInitialTransponderList(tlist, sat[0]) + elif nim.isCompatible("DVB-C"): + if config.Nims[nim.slot].cable.scan_type.value == "provider": + getInitialCableTransponderList(tlist, nim.slot) + else: + action = SEARCH_CABLE_TRANSPONDERS + networkid = config.Nims[nim.slot].cable.scan_networkid.value + elif nim.isCompatible("DVB-T"): + getInitialTerrestrialTransponderList(tlist, nimmanager.getTerrestrialDescription(nim.slot)) + else: + assert False + + flags |= eComponentScan.scanNetworkSearch #FIXMEEE.. use flags from cables / satellites / terrestrial.xml + tmp = self.scan_clearallservices.value + if tmp == "yes": + flags |= eComponentScan.scanRemoveServices + elif tmp == "yes_hold_feeds": + flags |= eComponentScan.scanRemoveServices + flags |= eComponentScan.scanDontRemoveFeeds + + if action == APPEND_NOW: + self.scanList.append({"transponders": tlist, "feid": nim.slot, "flags": flags}) + elif action == SEARCH_CABLE_TRANSPONDERS: + self.flags = flags + self.feid = nim.slot + self.networkid = networkid + self.startCableTransponderSearch(nim.slot) + return + else: + assert False + + self.buildTransponderList() # recursive call of this function !!! + return + # when we are here, then the recursion is finished and all enabled nims are checked + # so we now start the real transponder scan + self.startScan(self.scanList) + + def startScan(self, scanList): + if len(scanList): + if self.finished_cb: + self.session.openWithCallback(self.finished_cb, ServiceScan, scanList = scanList) + else: + self.session.open(ServiceScan, scanList = scanList) + else: + if self.finished_cb: + self.session.openWithCallback(self.finished_cb, MessageBox, _("Nothing to scan!\nPlease setup your tuner settings before you start a service scan."), MessageBox.TYPE_ERROR) + else: + self.session.open(MessageBox, _("Nothing to scan!\nPlease setup your tuner settings before you start a service scan."), MessageBox.TYPE_ERROR) + + def setCableTransponderSearchResult(self, tlist): + if tlist is not None: + self.scanList.append({"transponders": tlist, "feid": self.feid, "flags": self.flags}) + + def cableTransponderSearchFinished(self): + self.buildTransponderList() + + def keyCancel(self): + self.session.nav.playService(self.session.postScanService) + self.close() + + def doCloseRecursive(self): + self.session.nav.playService(self.session.postScanService) + self.closeRecursive() + + def Satexists(self, tlist, pos): + for x in tlist: + if x == pos: + return 1 + return 0 diff --git a/lib/python/Screens/Scart.py b/lib/python/Screens/Scart.py new file mode 100644 index 0000000..e937ef2 --- /dev/null +++ b/lib/python/Screens/Scart.py @@ -0,0 +1,53 @@ +from Screen import Screen +from MessageBox import MessageBox +from Components.AVSwitch import AVSwitch +from Tools import Notifications + +class Scart(Screen): + def __init__(self, session, start_visible=True): + Screen.__init__(self, session) + self.msgBox = None + self.notificationVisible = None + + self.avswitch = AVSwitch() + + if start_visible: + self.onExecBegin.append(self.showMessageBox) + self.msgVisible = None + else: + self.msgVisible = False + + def showMessageBox(self): + if self.msgVisible is None: + self.onExecBegin.remove(self.showMessageBox) + self.msgVisible = False + + if not self.msgVisible: + self.msgVisible = True + self.avswitch.setInput("SCART") + if not self.session.in_exec: + self.notificationVisible = True + Notifications.AddNotificationWithCallback(self.MsgBoxClosed, MessageBox, _("If you see this, something is wrong with\nyour scart connection. Press OK to return."), MessageBox.TYPE_ERROR, msgBoxID = "scart_msgbox") + else: + self.msgBox = self.session.openWithCallback(self.MsgBoxClosed, MessageBox, _("If you see this, something is wrong with\nyour scart connection. Press OK to return."), MessageBox.TYPE_ERROR) + + def MsgBoxClosed(self, *val): + self.msgBox = None + self.switchToTV() + + def switchToTV(self, *val): + if self.msgVisible: + if self.msgBox: + self.msgBox.close() # ... MsgBoxClosed -> switchToTV again.. + return + self.avswitch.setInput("ENCODER") + self.msgVisible = False + if self.notificationVisible: + self.avswitch.setInput("ENCODER") + self.notificationVisible = False + for notification in Notifications.current_notifications: + try: + if notification[1].msgBoxID == "scart_msgbox": + notification[1].close() + except: + print "other notification is open. try another one." diff --git a/lib/python/Screens/Screen.py b/lib/python/Screens/Screen.py new file mode 100644 index 0000000..49f8be5 --- /dev/null +++ b/lib/python/Screens/Screen.py @@ -0,0 +1,182 @@ +from Tools.Profile import profile + +profile("LOAD:GUISkin") +from Components.GUISkin import GUISkin +profile("LOAD:Source") +from Components.Sources.Source import Source +profile("LOAD:GUIComponent") +from Components.GUIComponent import GUIComponent +profile("LOAD:eRCInput") +from enigma import eRCInput + +class Screen(dict, GUISkin): + + False, SUSPEND_STOPS, SUSPEND_PAUSES = range(3) + ALLOW_SUSPEND = False + + global_screen = None + + def __init__(self, session, parent = None): + dict.__init__(self) + self.skinName = self.__class__.__name__ + self.session = session + self.parent = parent + GUISkin.__init__(self) + + self.onClose = [ ] + self.onFirstExecBegin = [ ] + self.onExecBegin = [ ] + self.onExecEnd = [ ] + self.onShown = [ ] + + self.onShow = [ ] + self.onHide = [ ] + + self.execing = False + + self.shown = True + # already shown is false until the screen is really shown (after creation) + self.already_shown = False + + self.renderer = [ ] + + # in order to support screens *without* a help, + # we need the list in every screen. how ironic. + self.helpList = [ ] + + self.close_on_next_exec = None + + # stand alone screens (for example web screens) + # don't care about having or not having focus. + self.stand_alone = False + self.keyboardMode = None + + def saveKeyboardMode(self): + rcinput = eRCInput.getInstance() + self.keyboardMode = rcinput.getKeyboardMode() + + def setKeyboardModeAscii(self): + rcinput = eRCInput.getInstance() + rcinput.setKeyboardMode(rcinput.kmAscii) + + def setKeyboardModeNone(self): + rcinput = eRCInput.getInstance() + rcinput.setKeyboardMode(rcinput.kmNone) + + def restoreKeyboardMode(self): + rcinput = eRCInput.getInstance() + if self.keyboardMode is not None: + rcinput.setKeyboardMode(self.keyboardMode) + + def execBegin(self): + self.active_components = [ ] + if self.close_on_next_exec is not None: + tmp = self.close_on_next_exec + self.close_on_next_exec = None + self.execing = True + self.close(*tmp) + else: + single = self.onFirstExecBegin + self.onFirstExecBegin = [] + for x in self.onExecBegin + single: + x() + if not self.stand_alone and self.session.current_dialog != self: + return + +# assert self.session == None, "a screen can only exec once per time" +# self.session = session + + for val in self.values() + self.renderer: + val.execBegin() + if not self.stand_alone and self.session.current_dialog != self: + return + self.active_components.append(val) + + self.execing = True + + for x in self.onShown: + x() + + def execEnd(self): + active_components = self.active_components +# for (name, val) in self.items(): + self.active_components = None + for val in active_components: + val.execEnd() +# assert self.session != None, "execEnd on non-execing screen!" +# self.session = None + self.execing = False + for x in self.onExecEnd: + x() + + # never call this directly - it will be called from the session! + def doClose(self): + self.hide() + for x in self.onClose: + x() + + # fixup circular references + del self.helpList + GUISkin.close(self) + + # first disconnect all render from their sources. + # we might split this out into a "unskin"-call, + # but currently we destroy the screen afterwards + # anyway. + for val in self.renderer: + val.disconnectAll() # disconnected converter/sources and probably destroy them. Sources will not be destroyed. + + del self.session + for (name, val) in self.items(): + val.destroy() + del self[name] + + self.renderer = [ ] + + # really delete all elements now + self.__dict__.clear() + + def close(self, *retval): + if not self.execing: + self.close_on_next_exec = retval + else: + self.session.close(self, *retval) + + def setFocus(self, o): + self.instance.setFocus(o.instance) + + def show(self): + if (self.shown and self.already_shown) or not self.instance: + return + self.shown = True + self.already_shown = True + self.instance.show() + for x in self.onShow: + x() + for val in self.values() + self.renderer: + if isinstance(val, GUIComponent) or isinstance(val, Source): + val.onShow() + + def hide(self): + if not self.shown or not self.instance: + return + self.shown = False + self.instance.hide() + for x in self.onHide: + x() + for val in self.values() + self.renderer: + if isinstance(val, GUIComponent) or isinstance(val, Source): + val.onHide() + + def __repr__(self): + return str(type(self)) + + def getRelatedScreen(self, name): + if name == "session": + return self.session.screen + elif name == "parent": + return self.parent + elif name == "global": + return self.global_screen + else: + return None diff --git a/lib/python/Screens/ScreenSaver.py b/lib/python/Screens/ScreenSaver.py new file mode 100644 index 0000000..5190774 --- /dev/null +++ b/lib/python/Screens/ScreenSaver.py @@ -0,0 +1,57 @@ +from Screens.Screen import Screen +from Components.MovieList import AUDIO_EXTENSIONS +from Components.ServiceEventTracker import ServiceEventTracker +from Components.Pixmap import Pixmap +from enigma import ePoint, eTimer, iPlayableService +import os, random + +class Screensaver(Screen): + def __init__(self, session): + + self.skin = """ + <screen name="Screensaver" position="fill" flags="wfNoBorder"> + <eLabel position="fill" backgroundColor="#54111112" zPosition="0"/> + <widget name="picture" pixmap="skin_default/anniversaryOpenPLi.png" position="0,0" size="145,135" alphatest="blend" backgroundColor="secondBG" transparent="1" zPosition="1"/> + </screen>""" + + Screen.__init__(self, session) + + self.moveLogoTimer = eTimer() + self.moveLogoTimer.callback.append(self.doMovePicture) + self.onShow.append(self.__onShow) + self.onHide.append(self.__onHide) + + self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + { + iPlayableService.evStart: self.serviceStarted + }) + + self["picture"] = Pixmap() + + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + picturesize = self["picture"].getSize() + self.maxx = self.instance.size().width() - picturesize[0] + self.maxy = self.instance.size().height() - picturesize[1] + self.doMovePicture() + + def __onHide(self): + self.moveLogoTimer.stop() + + def __onShow(self): + self.moveLogoTimer.startLongTimer(5) + + def serviceStarted(self): + if self.shown: + ref = self.session.nav.getCurrentlyPlayingServiceOrGroup() + if ref: + ref = ref.toString().split(":") + if not os.path.splitext(ref[10])[1].lower() in AUDIO_EXTENSIONS: + self.hide() + + def doMovePicture(self): + self.posx = random.randint(1,self.maxx) + self.posy = random.randint(1,self.maxy) + self["picture"].instance.move(ePoint(self.posx, self.posy)) + self.moveLogoTimer.startLongTimer(5) diff --git a/lib/python/Screens/ServiceInfo.py b/lib/python/Screens/ServiceInfo.py new file mode 100644 index 0000000..d25da40 --- /dev/null +++ b/lib/python/Screens/ServiceInfo.py @@ -0,0 +1,253 @@ +from Components.HTMLComponent import HTMLComponent +from Components.GUIComponent import GUIComponent +from Screen import Screen +from Components.ActionMap import ActionMap +from Components.Label import Label +from ServiceReference import ServiceReference +from enigma import eListboxPythonMultiContent, eListbox, gFont, iServiceInformation, eServiceCenter +from Tools.Transponder import ConvertToHumanReadable +from Components.Converter.ChannelNumbers import channelnumbers + +RT_HALIGN_LEFT = 0 + +TYPE_TEXT = 0 +TYPE_VALUE_HEX = 1 +TYPE_VALUE_DEC = 2 +TYPE_VALUE_HEX_DEC = 3 +TYPE_SLIDER = 4 +TYPE_VALUE_ORBIT_DEC = 5 + +def to_unsigned(x): + return x & 0xFFFFFFFF + +def ServiceInfoListEntry(a, b, valueType=TYPE_TEXT, param=4): + print "b:", b + if not isinstance(b, str): + if valueType == TYPE_VALUE_HEX: + b = ("0x%0" + str(param) + "x") % to_unsigned(b) + elif valueType == TYPE_VALUE_DEC: + b = str(b) + elif valueType == TYPE_VALUE_HEX_DEC: + b = ("0x%0" + str(param) + "x (%dd)") % (to_unsigned(b), b) + elif valueType == TYPE_VALUE_ORBIT_DEC: + direction = 'E' + if b > 1800: + b = 3600 - b + direction = 'W' + b = ("%d.%d%s") % (b // 10, b % 10, direction) + else: + b = str(b) + + return [ + #PyObject *type, *px, *py, *pwidth, *pheight, *pfnt, *pstring, *pflags; + (eListboxPythonMultiContent.TYPE_TEXT, 0, 0, 320, 30, 0, RT_HALIGN_LEFT, ""), + (eListboxPythonMultiContent.TYPE_TEXT, 0, 0, 320, 25, 0, RT_HALIGN_LEFT, a), + (eListboxPythonMultiContent.TYPE_TEXT, 330, 0, 570, 25, 0, RT_HALIGN_LEFT, b) + ] + +class ServiceInfoList(HTMLComponent, GUIComponent): + def __init__(self, source): + GUIComponent.__init__(self) + self.l = eListboxPythonMultiContent() + self.list = source + self.l.setList(self.list) + self.l.setFont(0, gFont("Regular", 23)) + self.l.setItemHeight(25) + + GUI_WIDGET = eListbox + + def postWidgetCreate(self, instance): + self.instance.setContent(self.l) + +TYPE_SERVICE_INFO = 1 +TYPE_TRANSPONDER_INFO = 2 + +class ServiceInfo(Screen): + def __init__(self, session, serviceref=None): + Screen.__init__(self, session) + + self["actions"] = ActionMap(["OkCancelActions", "ColorActions"], + { + "ok": self.close, + "cancel": self.close, + "red": self.information, + "green": self.pids, + "yellow": self.transponder, + "blue": self.tuner + }, -1) + + if serviceref: + self.type = TYPE_TRANSPONDER_INFO + self.skinName="ServiceInfoSimple" + info = eServiceCenter.getInstance().info(serviceref) + self.transponder_info = info.getInfoObject(serviceref, iServiceInformation.sTransponderData) + # info is a iStaticServiceInformation, not a iServiceInformation + self.info = None + self.feinfo = None + else: + self.type = TYPE_SERVICE_INFO + self["key_red"] = self["red"] = Label(_("Service")) + self["key_green"] = self["green"] = Label(_("PIDs")) + self["key_yellow"] = self["yellow"] = Label(_("Multiplex")) + self["key_blue"] = self["blue"] = Label(_("Tuner status")) + service = session.nav.getCurrentService() + if service is not None: + self.info = service.info() + self.feinfo = service.frontendInfo() + else: + self.info = None + self.feinfo = None + + tlist = [ ] + + self["infolist"] = ServiceInfoList(tlist) + self.onShown.append(self.information) + + def information(self): + if self.type == TYPE_SERVICE_INFO: + if self.session.nav.getCurrentlyPlayingServiceOrGroup(): + name = ServiceReference(self.session.nav.getCurrentlyPlayingServiceReference()).getServiceName() + refstr = self.session.nav.getCurrentlyPlayingServiceReference().toString() + else: + name = _("N/A") + refstr = _("N/A") + aspect = "-" + videocodec = "-" + resolution = "-" + if self.info: + videocodec = ("MPEG2", "MPEG4", "MPEG1", "MPEG4-II", "VC1", "VC1-SM", "-" )[self.info and self.info.getInfo(iServiceInformation.sVideoType)] + width = self.info.getInfo(iServiceInformation.sVideoWidth) + height = self.info.getInfo(iServiceInformation.sVideoHeight) + if width > 0 and height > 0: + resolution = "%dx%d" % (width,height) + resolution += ("i", "p", "")[self.info.getInfo(iServiceInformation.sProgressive)] + resolution += str((self.info.getInfo(iServiceInformation.sFrameRate) + 500) / 1000) + aspect = self.getServiceInfoValue(iServiceInformation.sAspect) + if aspect in ( 1, 2, 5, 6, 9, 0xA, 0xD, 0xE ): + aspect = "4:3" + else: + aspect = "16:9" + + Labels = ( (_("Name"), name, TYPE_TEXT), + (_("Provider"), self.getServiceInfoValue(iServiceInformation.sProvider), TYPE_TEXT), + (_("Videoformat"), aspect, TYPE_TEXT), + (_("Videosize"), resolution, TYPE_TEXT), + (_("Videocodec"), videocodec, TYPE_TEXT), + (_("Namespace"), self.getServiceInfoValue(iServiceInformation.sNamespace), TYPE_VALUE_HEX, 8), + (_("Service reference"), refstr, TYPE_TEXT)) + + self.fillList(Labels) + else: + if self.transponder_info: + tp_info = ConvertToHumanReadable(self.transponder_info) + conv = { "tuner_type" : _("Transponder type"), + "system" : _("System"), + "modulation" : _("Modulation"), + "orbital_position" : _("Orbital position"), + "frequency" : _("Frequency"), + "symbol_rate" : _("Symbol rate"), + "bandwidth" : _("Bandwidth"), + "polarization" : _("Polarization"), + "inversion" : _("Inversion"), + "pilot" : _("Pilot"), + "rolloff" : _("Roll-off"), + "fec_inner" : _("FEC"), + "code_rate_lp" : _("Coderate LP"), + "code_rate_hp" : _("Coderate HP"), + "constellation" : _("Constellation"), + "transmission_mode": _("Transmission mode"), + "guard_interval" : _("Guard interval"), + "hierarchy_information": _("Hierarchy information") } + Labels = [(conv[i], tp_info[i], i == "orbital_position" and TYPE_VALUE_ORBIT_DEC or TYPE_VALUE_DEC) for i in tp_info.keys() if i in conv] + self.fillList(Labels) + + def pids(self): + if self.type == TYPE_SERVICE_INFO: + Labels = ( (_("Video PID"), self.getServiceInfoValue(iServiceInformation.sVideoPID), TYPE_VALUE_HEX_DEC, 4), + (_("Audio PID"), self.getServiceInfoValue(iServiceInformation.sAudioPID), TYPE_VALUE_HEX_DEC, 4), + (_("PCR PID"), self.getServiceInfoValue(iServiceInformation.sPCRPID), TYPE_VALUE_HEX_DEC, 4), + (_("PMT PID"), self.getServiceInfoValue(iServiceInformation.sPMTPID), TYPE_VALUE_HEX_DEC, 4), + (_("TXT PID"), self.getServiceInfoValue(iServiceInformation.sTXTPID), TYPE_VALUE_HEX_DEC, 4), + (_("TSID"), self.getServiceInfoValue(iServiceInformation.sTSID), TYPE_VALUE_HEX_DEC, 4), + (_("ONID"), self.getServiceInfoValue(iServiceInformation.sONID), TYPE_VALUE_HEX_DEC, 4), + (_("SID"), self.getServiceInfoValue(iServiceInformation.sSID), TYPE_VALUE_HEX_DEC, 4)) + self.fillList(Labels) + + def showFrontendData(self, real): + if self.type == TYPE_SERVICE_INFO: + frontendData = self.feinfo and self.feinfo.getAll(real) + Labels = self.getFEData(frontendData) + self.fillList(Labels) + + def transponder(self): + if self.type == TYPE_SERVICE_INFO: + self.showFrontendData(True) + + def tuner(self): + if self.type == TYPE_SERVICE_INFO: + self.showFrontendData(False) + + def getFEData(self, frontendDataOrg): + if frontendDataOrg and len(frontendDataOrg): + frontendData = ConvertToHumanReadable(frontendDataOrg) + if frontendDataOrg["tuner_type"] == "DVB-S": + return ((_("NIM"), chr(ord('A') + frontendData["tuner_number"]), TYPE_TEXT), + (_("Type"), frontendData["tuner_type"], TYPE_TEXT), + (_("System"), frontendData["system"], TYPE_TEXT), + (_("Modulation"), frontendData["modulation"], TYPE_TEXT), + (_("Orbital position"), frontendData["orbital_position"], TYPE_VALUE_DEC), + (_("Frequency"), frontendData["frequency"], TYPE_VALUE_DEC), + (_("Symbol rate"), frontendData["symbol_rate"], TYPE_VALUE_DEC), + (_("Polarization"), frontendData["polarization"], TYPE_TEXT), + (_("Inversion"), frontendData["inversion"], TYPE_TEXT), + (_("FEC"), frontendData["fec_inner"], TYPE_TEXT), + (_("Pilot"), frontendData.get("pilot", None), TYPE_TEXT), + (_("Roll-off"), frontendData.get("rolloff", None), TYPE_TEXT)) + elif frontendDataOrg["tuner_type"] == "DVB-C": + return ((_("NIM"), chr(ord('A') + frontendData["tuner_number"]), TYPE_TEXT), + (_("Type"), frontendData["tuner_type"], TYPE_TEXT), + (_("Modulation"), frontendData["modulation"], TYPE_TEXT), + (_("Frequency"), frontendData["frequency"], TYPE_VALUE_DEC), + (_("Symbol rate"), frontendData["symbol_rate"], TYPE_VALUE_DEC), + (_("Inversion"), frontendData["inversion"], TYPE_TEXT), + (_("FEC"), frontendData["fec_inner"], TYPE_TEXT)) + elif frontendDataOrg["tuner_type"] == "DVB-T": + return ((_("NIM"), chr(ord('A') + frontendData["tuner_number"]), TYPE_TEXT), + (_("Type"), frontendData["tuner_type"], TYPE_TEXT), + (_("Frequency"), frontendData["frequency"], TYPE_VALUE_DEC), + (_("Channel"), channelnumbers.getChannelNumber(frontendData["frequency"], frontendData["tuner_number"]), TYPE_VALUE_DEC), + (_("Inversion"), frontendData["inversion"], TYPE_TEXT), + (_("Bandwidth"), frontendData["bandwidth"], TYPE_VALUE_DEC), + (_("Code rate LP"), frontendData["code_rate_lp"], TYPE_TEXT), + (_("Code rate HP"), frontendData["code_rate_hp"], TYPE_TEXT), + (_("Constellation"), frontendData["constellation"], TYPE_TEXT), + (_("Transmission mode"), frontendData["transmission_mode"], TYPE_TEXT), + (_("Guard interval"), frontendData["guard_interval"], TYPE_TEXT), + (_("Hierarchy info"), frontendData["hierarchy_information"], TYPE_TEXT)) + return [ ] + + def fillList(self, Labels): + tlist = [ ] + + for item in Labels: + if item[1] is None: + continue; + value = item[1] + if len(item) < 4: + tlist.append(ServiceInfoListEntry(item[0]+":", value, item[2])) + else: + tlist.append(ServiceInfoListEntry(item[0]+":", value, item[2], item[3])) + + self["infolist"].l.setList(tlist) + + def getServiceInfoValue(self, what): + if self.info is None: + return "" + + v = self.info.getInfo(what) + if v == -2: + v = self.info.getInfoString(what) + elif v == -1: + v = _("N/A") + + return v diff --git a/lib/python/Screens/ServiceScan.py b/lib/python/Screens/ServiceScan.py new file mode 100644 index 0000000..095bf4b --- /dev/null +++ b/lib/python/Screens/ServiceScan.py @@ -0,0 +1,112 @@ +from Screen import Screen +from Components.ServiceScan import ServiceScan as CScan +from Components.ProgressBar import ProgressBar +from Components.Label import Label +from Components.ActionMap import ActionMap +from Components.FIFOList import FIFOList +from Components.Sources.FrontendInfo import FrontendInfo +from Components.config import config +from enigma import eServiceCenter, eServiceReference + +class ServiceScanSummary(Screen): + skin = """ + <screen position="0,0" size="132,64"> + <widget name="Title" position="6,4" size="120,42" font="Regular;16" transparent="1" /> + <widget name="scan_progress" position="6,50" zPosition="1" borderWidth="1" size="56,12" backgroundColor="dark" /> + <widget name="Service" position="6,22" size="120,26" font="Regular;12" transparent="1" /> + </screen>""" + + def __init__(self, session, parent, showStepSlider = True): + Screen.__init__(self, session, parent) + + self["Title"] = Label(parent.title or _("Service scan")) + self["Service"] = Label(_("No service")) + self["scan_progress"] = ProgressBar() + + def updateProgress(self, value): + self["scan_progress"].setValue(value) + + def updateService(self, name): + self["Service"].setText(name) + +class ServiceScan(Screen): + + def ok(self): + print "ok" + if self["scan"].isDone(): + if self.currentInfobar.__class__.__name__ == "InfoBar": + selectedService = self["servicelist"].getCurrentSelection() + if selectedService and self.currentServiceList is not None: + self.currentServiceList.setTvMode() + bouquets = self.currentServiceList.getBouquetList() + last_scanned_bouquet = bouquets and next((x[1] for x in bouquets if x[0] == "Last Scanned"), None) + if last_scanned_bouquet: + self.currentServiceList.enterUserbouquet(last_scanned_bouquet) + self.currentServiceList.setCurrentSelection(eServiceReference(selectedService[1])) + service = self.currentServiceList.getCurrentSelection() + if not self.session.postScanService or service != self.session.postScanService: + self.session.postScanService = service + self.currentServiceList.addToHistory(service) + config.servicelist.lastmode.save() + self.currentServiceList.saveChannel(service) + self.doCloseRecursive() + self.cancel() + + def cancel(self): + self.exit(False) + + def doCloseRecursive(self): + self.exit(True) + + def exit(self, returnValue): + if self.currentInfobar.__class__.__name__ == "InfoBar": + self.close(returnValue) + self.close() + + def __init__(self, session, scanList): + Screen.__init__(self, session) + + self.scanList = scanList + + if hasattr(session, 'infobar'): + self.currentInfobar = session.infobar + self.currentServiceList = self.currentInfobar.servicelist + if self.session.pipshown and self.currentServiceList: + if self.currentServiceList.dopipzap: + self.currentServiceList.togglePipzap() + if hasattr(self.session, 'pip'): + del self.session.pip + self.session.pipshown = False + else: + self.currentInfobar = None + + self.session.nav.stopService() + + self["scan_progress"] = ProgressBar() + self["scan_state"] = Label(_("scan state")) + self["network"] = Label() + self["transponder"] = Label() + + self["pass"] = Label("") + self["servicelist"] = FIFOList() + self["FrontendInfo"] = FrontendInfo() + self["key_red"] = Label(_("Cancel")) + self["key_green"] = Label(_("OK")) + + self["actions"] = ActionMap(["SetupActions", "MenuActions"], + { + "ok": self.ok, + "save": self.ok, + "cancel": self.cancel, + "menu": self.doCloseRecursive + }, -2) + + self.onFirstExecBegin.append(self.doServiceScan) + + def doServiceScan(self): + self["servicelist"].len = self["servicelist"].instance.size().height() / self["servicelist"].l.getItemSize().height() + self["scan"] = CScan(self["scan_progress"], self["scan_state"], self["servicelist"], self["pass"], self.scanList, self["network"], self["transponder"], self["FrontendInfo"], self.session.summary) + + def createSummary(self): + print "ServiceScanCreateSummary" + return ServiceScanSummary diff --git a/lib/python/Screens/ServiceStopScreen.py b/lib/python/Screens/ServiceStopScreen.py new file mode 100644 index 0000000..7f6bf31 --- /dev/null +++ b/lib/python/Screens/ServiceStopScreen.py @@ -0,0 +1,45 @@ +from Screens.MessageBox import MessageBox + +class ServiceStopScreen: + def __init__(self): + try: + self.session + except: + print "[ServiceStopScreen] ERROR: no self.session set" + self.oldref = None + self.onClose.append(self.__onClose) + + def pipAvailable(self): + # pip isn't available in every state of e2 + try: + self.session.pipshown + pipavailable = True + except: + pipavailable = False + return pipavailable + + def stopService(self): + self.oldref = self.session.nav.getCurrentlyPlayingServiceOrGroup() + self.session.nav.stopService() + if self.pipAvailable(): + if self.session.pipshown: # try to disable pip + if hasattr(self.session, 'infobar'): + if self.session.infobar.servicelist and self.session.infobar.servicelist.dopipzap: + self.session.infobar.servicelist.togglePipzap() + if hasattr(self.session, 'pip'): + del self.session.pip + self.session.pipshown = False + + def __onClose(self): + self.session.nav.playService(self.oldref) + + def restoreService(self, msg = _("Zap back to previously tuned service?")): + if self.oldref: + self.session.openWithCallback(self.restartPrevService, MessageBox, msg, MessageBox.TYPE_YESNO) + else: + self.restartPrevService(False) + + def restartPrevService(self, yesno): + if not yesno: + self.oldref=None + self.close() \ No newline at end of file diff --git a/lib/python/Screens/SessionGlobals.py b/lib/python/Screens/SessionGlobals.py new file mode 100644 index 0000000..41b8431 --- /dev/null +++ b/lib/python/Screens/SessionGlobals.py @@ -0,0 +1,49 @@ +from Screens.Screen import Screen +from Components.Sources.CurrentService import CurrentService +from Components.Sources.EventInfo import EventInfo +from Components.Sources.FrontendStatus import FrontendStatus +from Components.Sources.FrontendInfo import FrontendInfo +from Components.Sources.Source import Source +from Components.Sources.TunerInfo import TunerInfo +from Components.Sources.Boolean import Boolean +from Components.Sources.RecordState import RecordState +from Components.Converter.Combine import Combine +from Components.Renderer.FrontpanelLed import FrontpanelLed + +class SessionGlobals(Screen): + def __init__(self, session): + Screen.__init__(self, session) + self["CurrentService"] = CurrentService(session.nav) + self["Event_Now"] = EventInfo(session.nav, EventInfo.NOW) + self["Event_Next"] = EventInfo(session.nav, EventInfo.NEXT) + self["FrontendStatus"] = FrontendStatus(service_source = session.nav.getCurrentService) + self["FrontendInfo"] = FrontendInfo(navcore = session.nav) + self["VideoPicture"] = Source() + self["TunerInfo"] = TunerInfo() + self["RecordState"] = RecordState(session) + self["Standby"] = Boolean(fixed = False) + + from Components.SystemInfo import SystemInfo + + combine = Combine(func = lambda s: {(False, False): 0, (False, True): 1, (True, False): 2, (True, True): 3}[(s[0].boolean, s[1].boolean)]) + combine.connect(self["Standby"]) + combine.connect(self["RecordState"]) + + # | two leds | single led | + # recordstate standby red green + # false false off on off + # true false blnk on blnk + # false true on off off + # true true blnk off blnk + + PATTERN_ON = (20, 0xffffffff, 0xffffffff) + PATTERN_OFF = (20, 0, 0) + PATTERN_BLINK = (20, 0x55555555, 0xa7fccf7a) + + nr_leds = SystemInfo.get("NumFrontpanelLEDs", 0) + + if nr_leds == 1: + FrontpanelLed(which = 0, boolean = False, patterns = [PATTERN_OFF, PATTERN_BLINK, PATTERN_OFF, PATTERN_BLINK]).connect(combine) + elif nr_leds == 2: + FrontpanelLed(which = 0, boolean = False, patterns = [PATTERN_OFF, PATTERN_BLINK, PATTERN_ON, PATTERN_BLINK]).connect(combine) + FrontpanelLed(which = 1, boolean = False, patterns = [PATTERN_ON, PATTERN_ON, PATTERN_OFF, PATTERN_OFF]).connect(combine) diff --git a/lib/python/Screens/Setup.py b/lib/python/Screens/Setup.py new file mode 100644 index 0000000..fd69cd8 --- /dev/null +++ b/lib/python/Screens/Setup.py @@ -0,0 +1,148 @@ +from Screen import Screen +from Components.ActionMap import NumberActionMap +from Components.config import config, ConfigNothing +from Components.Label import Label +from Components.SystemInfo import SystemInfo +from Components.ConfigList import ConfigListScreen +from Components.Sources.StaticText import StaticText +from enigma import eEnv + +import xml.etree.cElementTree + +# FIXME: use resolveFile! +# read the setupmenu +try: + # first we search in the current path + setupfile = file('data/setup.xml', 'r') +except: + # if not found in the current path, we use the global datadir-path + setupfile = file(eEnv.resolve('${datadir}/enigma2/setup.xml'), 'r') +setupdom = xml.etree.cElementTree.parse(setupfile) +setupfile.close() + +def getConfigMenuItem(configElement): + for item in setupdom.getroot().findall('./setup/item/.'): + if item.text == configElement: + return _(item.attrib["text"]), eval(configElement) + return "", None + +class SetupError(Exception): + def __init__(self, message): + self.msg = message + + def __str__(self): + return self.msg + +class SetupSummary(Screen): + + def __init__(self, session, parent): + Screen.__init__(self, session, parent = parent) + self["SetupTitle"] = StaticText(_(parent.setup_title)) + self["SetupEntry"] = StaticText("") + self["SetupValue"] = StaticText("") + self.onShow.append(self.addWatcher) + self.onHide.append(self.removeWatcher) + + def addWatcher(self): + if hasattr(self.parent,"onChangedEntry"): + self.parent.onChangedEntry.append(self.selectionChanged) + self.parent["config"].onSelectionChanged.append(self.selectionChanged) + self.selectionChanged() + + def removeWatcher(self): + if hasattr(self.parent,"onChangedEntry"): + self.parent.onChangedEntry.remove(self.selectionChanged) + self.parent["config"].onSelectionChanged.remove(self.selectionChanged) + + def selectionChanged(self): + self["SetupEntry"].text = self.parent.getCurrentEntry() + self["SetupValue"].text = self.parent.getCurrentValue() + if hasattr(self.parent,"getCurrentDescription") and self.parent.has_key("description"): + self.parent["description"].text = self.parent.getCurrentDescription() + +class Setup(ConfigListScreen, Screen): + + ALLOW_SUSPEND = True + + def removeNotifier(self): + config.usage.setup_level.notifiers.remove(self.levelChanged) + + def levelChanged(self, configElement): + list = [] + self.refill(list) + self["config"].setList(list) + + def refill(self, list): + xmldata = setupdom.getroot() + for x in xmldata.findall("setup"): + if x.get("key") != self.setup: + continue + self.addItems(list, x); + self.setup_title = x.get("title", "").encode("UTF-8") + self.seperation = int(x.get('separation', '0')) + + def __init__(self, session, setup): + Screen.__init__(self, session) + # for the skin: first try a setup_<setupID>, then Setup + self.skinName = ["setup_" + setup, "Setup" ] + + self.setup = setup + list = [] + self.refill(list) + + #check for list.entries > 0 else self.close + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("OK")) + self["description"] = Label("") + + self["actions"] = NumberActionMap(["SetupActions", "MenuActions"], + { + "cancel": self.keyCancel, + "save": self.keySave, + "menu": self.closeRecursive, + }, -2) + + ConfigListScreen.__init__(self, list, session = session, on_change = self.changedEntry) + + self.changedEntry() + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + self.setTitle(_(self.setup_title)) + + def addItems(self, list, parentNode): + for x in parentNode: + if not x.tag: + continue + if x.tag == 'item': + item_level = int(x.get("level", 0)) + + if not self.levelChanged in config.usage.setup_level.notifiers: + config.usage.setup_level.notifiers.append(self.levelChanged) + self.onClose.append(self.removeNotifier) + + if item_level > config.usage.setup_level.index: + continue + + requires = x.get("requires") + if requires and not SystemInfo.get(requires, False): + continue; + + item_text = _(x.get("text", "??").encode("UTF-8")) + item_description = _(x.get("description", " ").encode("UTF-8")) + b = eval(x.text or ""); + if b == "": + continue + #add to configlist + item = b + # the first b is the item itself, ignored by the configList. + # the second one is converted to string. + if not isinstance(item, ConfigNothing): + list.append( (item_text, item, item_description) ) + +def getSetupTitle(id): + xmldata = setupdom.getroot() + for x in xmldata.findall("setup"): + if x.get("key") == id: + return x.get("title", "").encode("UTF-8") + raise SetupError("unknown setup id '%s'!" % repr(id)) diff --git a/lib/python/Screens/SimpleSummary.py b/lib/python/Screens/SimpleSummary.py new file mode 100644 index 0000000..992e343 --- /dev/null +++ b/lib/python/Screens/SimpleSummary.py @@ -0,0 +1,25 @@ +from Screens.Screen import Screen +#from Components.Sources.Source import ObsoleteSource + +class SimpleSummary(Screen): + skin = """ + <screen position="0,0" size="132,64"> + <widget source="global.CurrentTime" render="Label" position="56,46" size="82,18" font="Regular;16"> + <convert type="ClockToText">WithSeconds</convert> + </widget> + <widget source="parent.Title" render="Label" position="6,4" size="120,42" font="Regular;18" /> + </screen>""" + def __init__(self, session, parent): + + Screen.__init__(self, session, parent = parent) + + names = parent.skinName + if not isinstance(names, list): + names = [names] + + self.skinName = [ x + "_summary" for x in names ] + self.skinName.append("SimpleSummary") + + # if parent has a "skin_summary" defined, use that as default + self.skin = parent.__dict__.get("skin_summary", self.skin) + diff --git a/lib/python/Screens/SleepTimerEdit.py b/lib/python/Screens/SleepTimerEdit.py new file mode 100644 index 0000000..1df7d78 --- /dev/null +++ b/lib/python/Screens/SleepTimerEdit.py @@ -0,0 +1,137 @@ +from Screens.InfoBar import InfoBar +from Screens.Screen import Screen +from Screens.MessageBox import MessageBox +from Components.ActionMap import ActionMap +from Components.ConfigList import ConfigListScreen +from Components.Label import Label +from Components.Sources.StaticText import StaticText +from Components.config import config, getConfigListEntry +from enigma import eEPGCache +from time import time + +class SleepTimerEdit(ConfigListScreen, Screen): + def __init__(self, session): + Screen.__init__(self, session) + self.skinName = ["SleepTimerSetup", "Setup"] + self.setup_title = _("SleepTimer Configuration") + + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("Save")) + self["description"] = Label("") + + self.list = [] + ConfigListScreen.__init__(self, self.list, session = session) + self.createSetup() + + self["setupActions"] = ActionMap(["SetupActions", "ColorActions"], + { + "green": self.ok, + "red": self.cancel, + "cancel": self.cancel, + "ok": self.ok, + }, -2) + + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + self.setTitle(self.setup_title) + + def createSetup(self): + self.list = [] + if InfoBar.instance and InfoBar.instance.sleepTimer.isActive(): + statusSleeptimerText = _("(activated +%d min)") % InfoBar.instance.sleepTimerState() + else: + statusSleeptimerText = _("(not activated)") + self.list.append(getConfigListEntry(_("Sleeptimer") + " " + statusSleeptimerText, + config.usage.sleep_timer, + _("Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer"))) + self.list.append(getConfigListEntry(_("Inactivity Sleeptimer"), + config.usage.inactivity_timer, + _("Configure the duration in hours the receiver should go to standby when the receiver is not controlled."))) + if int(config.usage.inactivity_timer.value): + self.list.append(getConfigListEntry(_("Specify timeframe to ignore inactivity sleeptimer"), + config.usage.inactivity_timer_blocktime, + _("When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled"))) + if config.usage.inactivity_timer_blocktime.value: + self.list.append(getConfigListEntry(_("Start time to ignore inactivity sleeptimer"), + config.usage.inactivity_timer_blocktime_begin, + _("Specify the start time when the inactivity sleeptimer should be ignored"))) + self.list.append(getConfigListEntry(_("End time to ignore inactivity sleeptimer"), + config.usage.inactivity_timer_blocktime_end, + _("Specify the end time until the inactivity sleeptimer should be ignored"))) + self.list.append(getConfigListEntry(_("Shutdown when in Standby"), + config.usage.standby_to_shutdown_timer, + _("Configure the duration when the receiver should go to shut down in case the receiver is in standby mode."))) + if int(config.usage.standby_to_shutdown_timer.value): + self.list.append(getConfigListEntry(_("Specify timeframe to ignore the shutdown in standby"), + config.usage.standby_to_shutdown_timer_blocktime, + _("When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode"))) + if config.usage.standby_to_shutdown_timer_blocktime.value: + self.list.append(getConfigListEntry(_("Start time to ignore shutdown in standby"), + config.usage.standby_to_shutdown_timer_blocktime_begin, + _("Specify the start time to ignore the shutdown timer when the receiver is in standby mode"))) + self.list.append(getConfigListEntry(_("End time to ignore shutdown in standby"), + config.usage.standby_to_shutdown_timer_blocktime_end, + _("Specify the end time to ignore the shutdown timer when the receiver is in standby mode"))) + self["config"].list = self.list + self["config"].l.setList(self.list) + + def ok(self): + if self["config"].isChanged(): + for x in self["config"].list: + x[1].save() + if self.getCurrentEntry().startswith(_("Sleeptimer")): + sleepTimer = config.usage.sleep_timer.value + if sleepTimer == "event_standby": + sleepTimer = self.currentEventTime() + else: + sleepTimer = int(sleepTimer) + if sleepTimer or not self.getCurrentEntry().endswith(_("(not activated)")): + InfoBar.instance.setSleepTimer(sleepTimer) + self.close(True) + self.close() + + def cancel(self, answer = None): + if answer is None: + if self["config"].isChanged(): + self.session.openWithCallback(self.cancel, MessageBox, _("Really close without saving settings?")) + else: + self.close() + elif answer: + for x in self["config"].list: + x[1].cancel() + self.close() + + def keyLeft(self): + ConfigListScreen.keyLeft(self) + self.createSetup() + + def keyRight(self): + ConfigListScreen.keyRight(self) + self.createSetup() + + def currentEventTime(self): + remaining = 0 + ref = self.session.nav.getCurrentlyPlayingServiceOrGroup() + if ref: + path = ref.getPath() + if path: # Movie + service = self.session.nav.getCurrentService() + seek = service and service.seek() + if seek: + length = seek.getLength() + position = seek.getPlayPosition() + if length and position: + remaining = length[1] - position[1] + if remaining > 0: + remaining = remaining / 90000 + else: # DVB + epg = eEPGCache.getInstance() + event = epg.lookupEventTime(ref, -1, 0) + if event: + now = int(time()) + start = event.getBeginTime() + duration = event.getDuration() + end = start + duration + remaining = end - now + return remaining + config.recording.margin_after.value * 60 diff --git a/lib/python/Screens/SoftwareUpdate.py b/lib/python/Screens/SoftwareUpdate.py new file mode 100644 index 0000000..8d250f9 --- /dev/null +++ b/lib/python/Screens/SoftwareUpdate.py @@ -0,0 +1,258 @@ +from Screens.ChoiceBox import ChoiceBox +from Screens.MessageBox import MessageBox +from Screens.Screen import Screen +from Screens.Standby import TryQuitMainloop +from Screens.About import CommitInfo +from Components.ActionMap import ActionMap, NumberActionMap +from Components.Ipkg import IpkgComponent +from Components.Sources.StaticText import StaticText +from Components.Slider import Slider +from Tools.BoundFunction import boundFunction +from enigma import eTimer, getBoxType, eDVBDB +from urllib import urlopen +import socket +import os +import re +import time + +class UpdatePlugin(Screen): + skin = """ + <screen name="UpdatePlugin" position="center,center" size="550,300"> + <widget name="activityslider" position="0,0" size="550,5" /> + <widget name="slider" position="0,150" size="550,30" /> + <widget source="package" render="Label" position="10,30" size="540,20" font="Regular;18" halign="center" valign="center" backgroundColor="#25062748" transparent="1" /> + <widget source="status" render="Label" position="10,180" size="540,100" font="Regular;20" halign="center" valign="center" backgroundColor="#25062748" transparent="1" /> + </screen>""" + + def __init__(self, session, *args): + Screen.__init__(self, session) + + self.sliderPackages = { "dreambox-dvb-modules": 1, "enigma2": 2, "tuxbox-image-info": 3 } + + self.setTitle(_("Software update")) + self.slider = Slider(0, 4) + self["slider"] = self.slider + self.activityslider = Slider(0, 100) + self["activityslider"] = self.activityslider + self.status = StaticText(_("Please wait...")) + self["status"] = self.status + self.package = StaticText(_("Package list update")) + self["package"] = self.package + self.oktext = _("Press OK on your remote control to continue.") + + self.packages = 0 + self.error = 0 + self.processed_packages = [] + self.total_packages = None + + self.channellist_only = 0 + self.channellist_name = '' + self.updating = False + self.ipkg = IpkgComponent() + self.ipkg.addCallback(self.ipkgCallback) + self.onClose.append(self.__close) + + self["actions"] = ActionMap(["WizardActions"], + { + "ok": self.exit, + "back": self.exit + }, -1) + + self.activity = 0 + self.activityTimer = eTimer() + self.activityTimer.callback.append(self.checkTraficLight) + self.activityTimer.callback.append(self.doActivityTimer) + self.activityTimer.start(100, True) + + def checkTraficLight(self): + + self.activityTimer.callback.remove(self.checkTraficLight) + self.activityTimer.start(100, False) + + currentTimeoutDefault = socket.getdefaulttimeout() + socket.setdefaulttimeout(3) + message = "" + picon = None + default = True + try: + # TODO: Use Twisted's URL fetcher, urlopen is evil. And it can + # run in parallel to the package update. + if getBoxType() in urlopen("http://openpli.org/status").read().split(','): + message = _("The current beta image might not be stable.\nFor more information see %s.") % ("www.openpli.org") + picon = MessageBox.TYPE_ERROR + default = False + except: + message = _("The status of the current beta image could not be checked because %s can not be reached.") % ("www.openpli.org") + picon = MessageBox.TYPE_ERROR + default = False + socket.setdefaulttimeout(currentTimeoutDefault) + if default: + self.startActualUpdate(True) + else: + message += "\n" + _("Do you want to update your receiver?") + self.session.openWithCallback(self.startActualUpdate, MessageBox, message, default = default, picon = picon) + + def getLatestImageTimestamp(self): + currentTimeoutDefault = socket.getdefaulttimeout() + socket.setdefaulttimeout(3) + latestImageTimestamp = "" + try: + # TODO: Use Twisted's URL fetcher, urlopen is evil. And it can + # run in parallel to the package update. + latestImageTimestamp = re.findall('<dd>(.*?)</dd>', urlopen("http://openpli.org/download/"+getBoxType()+"/").read())[0][:16] + latestImageTimestamp = time.strftime(_("%d-%b-%Y %-H:%M"), time.strptime(latestImageTimestamp, "%Y/%m/%d %H:%M")) + except: + pass + socket.setdefaulttimeout(currentTimeoutDefault) + return latestImageTimestamp + + def startActualUpdate(self,answer): + if answer: + self.updating = True + self.ipkg.startCmd(IpkgComponent.CMD_UPDATE) + else: + self.close() + + def doActivityTimer(self): + self.activity += 1 + if self.activity == 100: + self.activity = 0 + self.activityslider.setValue(self.activity) + + def showUpdateCompletedMessage(self): + self.setEndMessage(ngettext("Update completed, %d package was installed.", "Update completed, %d packages were installed.", self.packages) % self.packages) + + def ipkgCallback(self, event, param): + if event == IpkgComponent.EVENT_DOWNLOAD: + self.status.setText(_("Downloading")) + elif event == IpkgComponent.EVENT_UPGRADE: + if self.sliderPackages.has_key(param): + self.slider.setValue(self.sliderPackages[param]) + self.package.setText(param) + self.status.setText(_("Upgrading") + ": %s/%s" % (self.packages, self.total_packages)) + if not param in self.processed_packages: + self.processed_packages.append(param) + self.packages += 1 + elif event == IpkgComponent.EVENT_INSTALL: + self.package.setText(param) + self.status.setText(_("Installing")) + if not param in self.processed_packages: + self.processed_packages.append(param) + self.packages += 1 + elif event == IpkgComponent.EVENT_REMOVE: + self.package.setText(param) + self.status.setText(_("Removing")) + if not param in self.processed_packages: + self.processed_packages.append(param) + self.packages += 1 + elif event == IpkgComponent.EVENT_CONFIGURING: + self.package.setText(param) + self.status.setText(_("Configuring")) + elif event == IpkgComponent.EVENT_MODIFIED: + if config.plugins.softwaremanager.overwriteConfigFiles.value in ("N", "Y"): + self.ipkg.write(True and config.plugins.softwaremanager.overwriteConfigFiles.value) + else: + self.session.openWithCallback( + self.modificationCallback, + MessageBox, + _("A configuration file (%s) has been modified since it was installed.\nDo you want to keep your modifications?") % (param) + ) + elif event == IpkgComponent.EVENT_ERROR: + self.error += 1 + elif event == IpkgComponent.EVENT_DONE: + if self.updating: + self.updating = False + self.ipkg.startCmd(IpkgComponent.CMD_UPGRADE_LIST) + elif self.ipkg.currentCommand == IpkgComponent.CMD_UPGRADE_LIST: + self.total_packages = len(self.ipkg.getFetchedList()) + if self.total_packages: + latestImageTimestamp = self.getLatestImageTimestamp() + if latestImageTimestamp: + message = _("Do you want to update your receiver to %s?") % self.getLatestImageTimestamp() + "\n" + else: + message = _("Do you want to update your receiver?") + "\n" + message = message + "(" + (ngettext("%s updated package available", "%s updated packages available", self.total_packages) % self.total_packages) + ")" + choices = [(_("Update and reboot (recommended)"), "cold"), + (_("Update and ask to reboot"), "hot"), + (_("Update channel list only"), "channels"), + (_("Show latest commits on sourceforge"), "commits"), + (_("Cancel"), "")] + self.session.openWithCallback(self.startActualUpgrade, ChoiceBox, title=message, list=choices) + else: + self.session.openWithCallback(self.close, MessageBox, _("No updates available"), type=MessageBox.TYPE_INFO, timeout=10, close_on_any_key=True) + elif self.channellist_only > 0: + if self.channellist_only == 1: + self.setEndMessage(_("Could not find installed channel list.")) + elif self.channellist_only == 2: + self.slider.setValue(2) + self.ipkg.startCmd(IpkgComponent.CMD_REMOVE, {'package': self.channellist_name}) + self.channellist_only += 1 + elif self.channellist_only == 3: + self.slider.setValue(3) + self.ipkg.startCmd(IpkgComponent.CMD_INSTALL, {'package': self.channellist_name}) + self.channellist_only += 1 + elif self.channellist_only == 4: + self.showUpdateCompletedMessage() + eDVBDB.getInstance().reloadBouquets() + eDVBDB.getInstance().reloadServicelist() + elif self.error == 0: + self.showUpdateCompletedMessage() + else: + self.activityTimer.stop() + self.activityslider.setValue(0) + error = _("Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver.") + if self.packages == 0: + error = _("No updates available. Please try again later.") + if self.updating: + error = _("Update failed. Your receiver does not have a working internet connection.") + self.status.setText(_("Error") + " - " + error) + elif event == IpkgComponent.EVENT_LISTITEM: + if 'enigma2-plugin-settings-' in param[0] and self.channellist_only > 0: + self.channellist_name = param[0] + self.channellist_only = 2 + #print event, "-", param + pass + + def setEndMessage(self, txt): + self.slider.setValue(4) + self.activityTimer.stop() + self.activityslider.setValue(0) + self.package.setText(txt) + self.status.setText(self.oktext) + + def startActualUpgrade(self, answer): + if not answer or not answer[1]: + self.close() + return + if answer[1] == "cold": + self.session.open(TryQuitMainloop,retvalue=42) + self.close() + elif answer[1] == "channels": + self.channellist_only = 1 + self.slider.setValue(1) + self.ipkg.startCmd(IpkgComponent.CMD_LIST, args = {'installed_only': True}) + elif answer[1] == "commits": + self.session.openWithCallback(boundFunction(self.ipkgCallback, IpkgComponent.EVENT_DONE, None), CommitInfo) + else: + self.ipkg.startCmd(IpkgComponent.CMD_UPGRADE, args = {'test_only': False}) + + def modificationCallback(self, res): + self.ipkg.write(res and "N" or "Y") + + def exit(self): + if not self.ipkg.isRunning(): + if self.packages != 0 and self.error == 0 and self.channellist_only == 0: + self.session.openWithCallback(self.exitAnswer, MessageBox, _("Update completed. Do you want to reboot your receiver?")) + else: + self.close() + else: + if not self.updating: + self.close() + + def exitAnswer(self, result): + if result is not None and result: + self.session.open(TryQuitMainloop,retvalue=2) + self.close() + + def __close(self): + self.ipkg.removeCallback(self.ipkgCallback) diff --git a/lib/python/Screens/Standby.py b/lib/python/Screens/Standby.py new file mode 100644 index 0000000..6afad7a --- /dev/null +++ b/lib/python/Screens/Standby.py @@ -0,0 +1,248 @@ +from Screen import Screen +from Components.ActionMap import ActionMap +from Components.config import config +from Components.AVSwitch import AVSwitch +from Components.SystemInfo import SystemInfo +from Tools import Notifications +from GlobalActions import globalActionMap +import RecordTimer +from enigma import eDVBVolumecontrol, eTimer +from time import time, localtime + +inStandby = None + +class Standby(Screen): + def Power(self): + print "leave standby" + #set input to encoder + self.avswitch.setInput("ENCODER") + #restart last played service + #unmute adc + self.leaveMute() + #kill me + self.close(True) + + def setMute(self): + if (eDVBVolumecontrol.getInstance().isMuted()): + self.wasMuted = 1 + print "mute already active" + else: + self.wasMuted = 0 + eDVBVolumecontrol.getInstance().volumeToggleMute() + + def leaveMute(self): + if self.wasMuted == 0: + eDVBVolumecontrol.getInstance().volumeToggleMute() + + def __init__(self, session, StandbyCounterIncrease=True): + Screen.__init__(self, session) + self.avswitch = AVSwitch() + + print "enter standby" + + self["actions"] = ActionMap( [ "StandbyActions" ], + { + "power": self.Power, + "discrete_on": self.Power + }, -1) + + globalActionMap.setEnabled(False) + + self.StandbyCounterIncrease = StandbyCounterIncrease + + self.standbyTimeUnknownTimer = eTimer() + self.standbyTimeoutTimer = eTimer() + + #mute adc + self.setMute() + + self.paused_service = None + self.prev_running_service = None + + if self.session.current_dialog: + if self.session.current_dialog.ALLOW_SUSPEND == Screen.SUSPEND_STOPS: + if localtime(time()).tm_year > 1970 and self.session.nav.getCurrentlyPlayingServiceOrGroup(): + self.prev_running_service = self.session.nav.getCurrentlyPlayingServiceOrGroup() + self.session.nav.stopService() + else: + self.standbyTimeUnknownTimer.callback.append(self.stopService) + self.standbyTimeUnknownTimer.startLongTimer(60) + elif self.session.current_dialog.ALLOW_SUSPEND == Screen.SUSPEND_PAUSES: + self.paused_service = self.session.current_dialog + self.paused_service.pauseService() + if self.session.pipshown: + from Screens.InfoBar import InfoBar + InfoBar.instance and hasattr(InfoBar.instance, "showPiP") and InfoBar.instance.showPiP() + + #set input to vcr scart + if SystemInfo["ScartSwitch"]: + self.avswitch.setInput("SCART") + else: + self.avswitch.setInput("AUX") + + gotoShutdownTime = int(config.usage.standby_to_shutdown_timer.value) + if gotoShutdownTime: + self.standbyTimeoutTimer.callback.append(self.standbyTimeout) + self.standbyTimeoutTimer.startLongTimer(gotoShutdownTime) + + self.onFirstExecBegin.append(self.__onFirstExecBegin) + self.onClose.append(self.__onClose) + + def __onClose(self): + global inStandby + inStandby = None + self.standbyTimeUnknownTimer.stop() + self.standbyTimeoutTimer.stop() + if self.prev_running_service: + self.session.nav.playService(self.prev_running_service) + elif self.paused_service: + self.paused_service.unPauseService() + self.session.screen["Standby"].boolean = False + globalActionMap.setEnabled(True) + if RecordTimer.RecordTimerEntry.receiveRecordEvents: + RecordTimer.RecordTimerEntry.stopTryQuitMainloop() + + def __onFirstExecBegin(self): + global inStandby + inStandby = self + self.session.screen["Standby"].boolean = True + if self.StandbyCounterIncrease: + config.misc.standbyCounter.value += 1 + + def createSummary(self): + return StandbySummary + + def standbyTimeout(self): + if config.usage.standby_to_shutdown_timer_blocktime.value: + curtime = localtime(time()) + if curtime.tm_year > 1970: #check if the current time is valid + curtime = (curtime.tm_hour, curtime.tm_min, curtime.tm_sec) + begintime = tuple(config.usage.standby_to_shutdown_timer_blocktime_begin.value) + endtime = tuple(config.usage.standby_to_shutdown_timer_blocktime_end.value) + if begintime <= endtime and (curtime >= begintime and curtime < endtime) or begintime > endtime and (curtime >= begintime or curtime < endtime): + duration = (endtime[0]*3600 + endtime[1]*60) - (curtime[0]*3600 + curtime[1]*60 + curtime[2]) + if duration: + if duration < 0: + duration += 24*3600 + self.standbyTimeoutTimer.startLongTimer(duration) + return + if self.session.screen["TunerInfo"].tuner_use_mask: + self.standbyTimeoutTimer.startLongTimer(600) + else: + from RecordTimer import RecordTimerEntry + RecordTimerEntry.TryQuitMainloop() + + def stopService(self): + self.prev_running_service = self.session.nav.getCurrentlyPlayingServiceOrGroup() + self.session.nav.stopService() + +class StandbySummary(Screen): + skin = """ + <screen position="0,0" size="132,64"> + <widget source="global.CurrentTime" render="Label" position="0,0" size="132,64" font="Regular;40" halign="center"> + <convert type="ClockToText" /> + </widget> + <widget source="session.RecordState" render="FixedLabel" text=" " position="0,0" size="132,64" zPosition="1" > + <convert type="ConfigEntryTest">config.usage.blinking_display_clock_during_recording,True,CheckSourceBoolean</convert> + <convert type="ConditionalShowHide">Blink</convert> + </widget> + </screen>""" + +from enigma import quitMainloop, iRecordableService +from Screens.MessageBox import MessageBox +from time import time +from Components.Task import job_manager + +class QuitMainloopScreen(Screen): + + def __init__(self, session, retvalue=1): + self.skin = """<screen name="QuitMainloopScreen" position="fill" flags="wfNoBorder"> + <ePixmap pixmap="skin_default/icons/input_info.png" position="c-27,c-60" size="53,53" alphatest="on" /> + <widget name="text" position="center,c+5" size="720,100" font="Regular;22" halign="center" /> + </screen>""" + Screen.__init__(self, session) + from Components.Label import Label + text = { 1: _("Your receiver is shutting down"), + 2: _("Your receiver is rebooting"), + 3: _("The user interface of your receiver is restarting"), + 4: _("Your frontprocessor will be upgraded\nPlease wait until your receiver reboots\nThis may take a few minutes"), + 5: _("The user interface of your receiver is restarting\ndue to an error in mytest.py"), + 42: _("Unattended upgrade in progress\nPlease wait until your receiver reboots\nThis may take a few minutes") }.get(retvalue) + self["text"] = Label(text) + +inTryQuitMainloop = False + +class TryQuitMainloop(MessageBox): + def __init__(self, session, retvalue=1, timeout=-1, default_yes = False): + self.retval = retvalue + recordings = session.nav.getRecordings() + jobs = len(job_manager.getPendingJobs()) + self.connected = False + reason = "" + next_rec_time = -1 + if not recordings: + next_rec_time = session.nav.RecordTimer.getNextRecordingTime() + if recordings or (next_rec_time > 0 and (next_rec_time - time()) < 360): + reason = _("Recording(s) are in progress or coming up in few seconds!") + '\n' + if jobs: + if jobs == 1: + job = job_manager.getPendingJobs()[0] + reason += "%s: %s (%d%%)\n" % (job.getStatustext(), job.name, int(100*job.progress/float(job.end))) + else: + reason += (ngettext("%d job is running in the background!", "%d jobs are running in the background!", jobs) % jobs) + '\n' + if reason: + text = { 1: _("Really shutdown now?"), + 2: _("Really reboot now?"), + 3: _("Really restart now?"), + 4: _("Really upgrade the frontprocessor and reboot now?"), + 42: _("Really upgrade your settop box and reboot now?") }.get(retvalue) + if text: + MessageBox.__init__(self, session, reason+text, type = MessageBox.TYPE_YESNO, timeout = timeout, default = default_yes) + self.skinName = "MessageBoxSimple" + session.nav.record_event.append(self.getRecordEvent) + self.connected = True + self.onShow.append(self.__onShow) + self.onHide.append(self.__onHide) + return + self.skin = """<screen position="0,0" size="0,0"/>""" + Screen.__init__(self, session) + self.close(True) + + def getRecordEvent(self, recservice, event): + if event == iRecordableService.evEnd: + recordings = self.session.nav.getRecordings() + if not recordings: # no more recordings exist + rec_time = self.session.nav.RecordTimer.getNextRecordingTime() + if rec_time > 0 and (rec_time - time()) < 360: + self.initTimeout(360) # wait for next starting timer + self.startTimer() + else: + self.close(True) # immediate shutdown + elif event == iRecordableService.evStart: + self.stopTimer() + + def close(self, value): + if self.connected: + self.conntected=False + self.session.nav.record_event.remove(self.getRecordEvent) + if value: + self.hide() + if self.retval == 1: + config.misc.DeepStandby.value = True + elif not inStandby: + config.misc.RestartUI.value = True + config.misc.RestartUI.save() + self.session.nav.stopService() + self.quitScreen = self.session.instantiateDialog(QuitMainloopScreen,retvalue=self.retval) + self.quitScreen.show() + quitMainloop(self.retval) + else: + MessageBox.close(self, True) + + def __onShow(self): + global inTryQuitMainloop + inTryQuitMainloop = True + + def __onHide(self): + global inTryQuitMainloop + inTryQuitMainloop = False diff --git a/lib/python/Screens/StartWizard.py b/lib/python/Screens/StartWizard.py new file mode 100644 index 0000000..cb0bc05 --- /dev/null +++ b/lib/python/Screens/StartWizard.py @@ -0,0 +1,34 @@ +from Wizard import wizardManager +from Screens.WizardLanguage import WizardLanguage +from Screens.Rc import Rc +from Tools.HardwareInfo import HardwareInfo + +from Components.Pixmap import Pixmap, MovingPixmap, MultiPixmap +from Components.config import config, ConfigBoolean, configfile, ConfigSubsection + +from LanguageSelection import LanguageWizard + +config.misc.firstrun = ConfigBoolean(default = True) +config.misc.languageselected = ConfigBoolean(default = True) + +class StartWizard(WizardLanguage, Rc): + def __init__(self, session, silent = True, showSteps = False, neededTag = None): + self.xmlfile = ["startwizard.xml"] + WizardLanguage.__init__(self, session, showSteps = False) + Rc.__init__(self) + self["wizard"] = Pixmap() + + def markDone(self): + # setup remote control, all stb have same settings except dm8000 which uses a different settings + if HardwareInfo().get_device_name() == 'dm8000': + config.misc.rcused.value = 0 + else: + config.misc.rcused.value = 1 + config.misc.rcused.save() + + config.misc.firstrun.value = 0 + config.misc.firstrun.save() + configfile.save() + +wizardManager.registerWizard(LanguageWizard, config.misc.languageselected.value, priority = 5) +wizardManager.registerWizard(StartWizard, config.misc.firstrun.value, priority = 20) diff --git a/lib/python/Screens/SubservicesQuickzap.py b/lib/python/Screens/SubservicesQuickzap.py new file mode 100644 index 0000000..e38933a --- /dev/null +++ b/lib/python/Screens/SubservicesQuickzap.py @@ -0,0 +1,142 @@ +from Screens.Screen import Screen +from Components.ActionMap import NumberActionMap +from Components.Label import Label + +from Screens.ChoiceBox import ChoiceBox +from Screens.MessageBox import MessageBox +from InfoBarGenerics import InfoBarShowHide, InfoBarMenu, InfoBarInstantRecord, InfoBarTimeshift, InfoBarSeek, InfoBarTimeshiftState, InfoBarExtensions, InfoBarSubtitleSupport, InfoBarAudioSelection +from Components.ServiceEventTracker import InfoBarBase + +from enigma import eTimer + +class SubservicesQuickzap(InfoBarBase, InfoBarShowHide, InfoBarMenu, \ + InfoBarInstantRecord, InfoBarSeek, InfoBarTimeshift, \ + InfoBarTimeshiftState, InfoBarExtensions, InfoBarSubtitleSupport, \ + InfoBarAudioSelection, Screen): + + def __init__(self, session, subservices): + Screen.__init__(self, session) + for x in InfoBarBase, InfoBarShowHide, InfoBarMenu, \ + InfoBarInstantRecord, InfoBarSeek, InfoBarTimeshift, \ + InfoBarTimeshiftState, InfoBarSubtitleSupport, \ + InfoBarExtensions, InfoBarAudioSelection: + x.__init__(self) + + self.restoreService = self.session.nav.getCurrentlyPlayingServiceOrGroup() + + self["CurrentSubserviceNumber"] = Label("") + self.currentSubserviceNumberLabel = self["CurrentSubserviceNumber"] + + self.updateSubservices() + self.currentlyPlayingSubservice = 0 + + self.timer = eTimer() + self.timer.callback.append(self.playSubservice) + self.onLayoutFinish.append(self.onLayoutFinished) + + self["actions"] = NumberActionMap( [ "InfobarSubserviceQuickzapActions", "NumberActions", "DirectionActions", "ColorActions" ], + { + "up": self.showSelection, + "down": self.showSelection, + "right": self.nextSubservice, + "left": self.previousSubservice, + "green": self.showSelection, + "exit": self.quitQuestion, + "1": self.keyNumberGlobal, + "2": self.keyNumberGlobal, + "3": self.keyNumberGlobal, + "4": self.keyNumberGlobal, + "5": self.keyNumberGlobal, + "6": self.keyNumberGlobal, + "7": self.keyNumberGlobal, + "8": self.keyNumberGlobal, + "9": self.keyNumberGlobal, + "0": self.keyNumberGlobal + }, 0) + + self.onClose.append(self.__onClose) + + def __onClose(self): + self.session.nav.playService(self.restoreService, False) + + def onLayoutFinished(self): + self.timer.start(0,True) + + def updateSubservices(self): + self.service = self.session.nav.getCurrentService() + self.subservices = self.service and self.service.subServices() + self.n = self.subservices and self.subservices.getNumberOfSubservices() + + def nextSubservice(self): + self.updateSubservices() + if self.n: + if self.currentlyPlayingSubservice >= self.n - 1: + self.playSubservice(0) + else: + self.playSubservice(self.currentlyPlayingSubservice + 1) + + def previousSubservice(self): + self.updateSubservices() + if self.n: + if self.currentlyPlayingSubservice > self.n: + self.currentlyPlayingSubservice = self.n + if self.currentlyPlayingSubservice == 0: + self.playSubservice(self.n - 1) + else: + self.playSubservice(self.currentlyPlayingSubservice - 1) + + def getSubserviceIndex(self, service): + self.updateSubservices() + if self.n is None: + return -1 + for x in range(self.n): + if service == self.subservices.getSubservice(x): + return x + + def keyNumberGlobal(self, number): + print number, "pressed" + self.updateSubservices() + if number == 0: + self.playSubservice(self.lastservice) + elif self.n is not None and number <= self.n - 1: + self.playSubservice(number) + + def showSelection(self): + self.updateSubservices() + tlist = [] + n = self.n or 0 + if n: + idx = 0 + while idx < n: + i = self.subservices.getSubservice(idx) + tlist.append((i.getName(), idx)) + idx += 1 + + keys = [ "", "1", "2", "3", "4", "5", "6", "7", "8", "9" ] + [""] * n + self.session.openWithCallback(self.subserviceSelected, ChoiceBox, title=_("Please select a subservice..."), list = tlist, selection = self.currentlyPlayingSubservice, keys = keys) + + def subserviceSelected(self, service): + print "playing subservice number", service + if service is not None: + self.playSubservice(service[1]) + + def keyOK(self): + pass + + def quitQuestion(self): + self.session.openWithCallback(self.quit, MessageBox, _("Really exit the subservices quickzap?")) + + def quit(self, answer): + if answer: + self.close() + + def playSubservice(self, number = 0): + newservice = self.subservices.getSubservice(number) + if newservice.valid(): + del self.subservices + del self.service + self.lastservice = self.currentlyPlayingSubservice + self.session.nav.playService(newservice, False) + self.currentlyPlayingSubservice = number + self.currentSubserviceNumberLabel.setText(str(number)) + self.doShow() diff --git a/lib/python/Screens/SubtitleDisplay.py b/lib/python/Screens/SubtitleDisplay.py new file mode 100644 index 0000000..13ece59 --- /dev/null +++ b/lib/python/Screens/SubtitleDisplay.py @@ -0,0 +1,6 @@ +from Screens.Screen import Screen + +class SubtitleDisplay(Screen): + pass + + # not really much to do... diff --git a/lib/python/Screens/TaskView.py b/lib/python/Screens/TaskView.py new file mode 100644 index 0000000..1c9e228 --- /dev/null +++ b/lib/python/Screens/TaskView.py @@ -0,0 +1,150 @@ +from Screen import Screen +from Components.ConfigList import ConfigListScreen +from Components.config import config, ConfigSubsection, ConfigSelection, getConfigListEntry +from Components.SystemInfo import SystemInfo +from Components.Task import job_manager +from InfoBarGenerics import InfoBarNotifications +import Screens.Standby +from Tools import Notifications + +class JobView(InfoBarNotifications, Screen, ConfigListScreen): + def __init__(self, session, job, parent=None, cancelable = True, backgroundable = True, afterEventChangeable = True): + from Components.Sources.StaticText import StaticText + from Components.Sources.Progress import Progress + from Components.Sources.Boolean import Boolean + from Components.ActionMap import ActionMap + Screen.__init__(self, session, parent) + InfoBarNotifications.__init__(self) + ConfigListScreen.__init__(self, []) + self.parent = parent + self.job = job + + self["job_name"] = StaticText(job.name) + self["job_progress"] = Progress() + self["job_task"] = StaticText() + self["summary_job_name"] = StaticText(job.name) + self["summary_job_progress"] = Progress() + self["summary_job_task"] = StaticText() + self["job_status"] = StaticText() + self["finished"] = Boolean() + self["cancelable"] = Boolean(cancelable) + self["backgroundable"] = Boolean(backgroundable) + + self["key_blue"] = StaticText(_("Background")) + + self.onShow.append(self.windowShow) + self.onHide.append(self.windowHide) + + self["setupActions"] = ActionMap(["ColorActions", "SetupActions"], + { + "green": self.ok, + "red": self.abort, + "blue": self.background, + "cancel": self.ok, + "ok": self.ok, + }, -2) + + self.settings = ConfigSubsection() + if SystemInfo["DeepstandbySupport"]: + shutdownString = _("go to deep standby") + else: + shutdownString = _("shut down") + self.settings.afterEvent = ConfigSelection(choices = [("nothing", _("do nothing")), ("close", _("Close")), ("standby", _("go to standby")), ("deepstandby", shutdownString)], default = self.job.afterEvent or "nothing") + self.job.afterEvent = self.settings.afterEvent.getValue() + self.afterEventChangeable = afterEventChangeable + self.setupList() + self.state_changed() + + def setupList(self): + if self.afterEventChangeable: + self["config"].setList( [ getConfigListEntry(_("After event"), self.settings.afterEvent) ]) + else: + self["config"].hide() + self.job.afterEvent = self.settings.afterEvent.getValue() + + def keyLeft(self): + ConfigListScreen.keyLeft(self) + self.setupList() + + def keyRight(self): + ConfigListScreen.keyRight(self) + self.setupList() + + def windowShow(self): + job_manager.visible = True + self.job.state_changed.append(self.state_changed) + + def windowHide(self): + job_manager.visible = False + if len(self.job.state_changed) > 0: + self.job.state_changed.remove(self.state_changed) + + def state_changed(self): + j = self.job + self["job_progress"].range = j.end + self["summary_job_progress"].range = j.end + self["job_progress"].value = j.progress + self["summary_job_progress"].value = j.progress + #print "JobView::state_changed:", j.end, j.progress + self["job_status"].text = j.getStatustext() + if j.status == j.IN_PROGRESS: + self["job_task"].text = j.tasks[j.current_task].name + self["summary_job_task"].text = j.tasks[j.current_task].name + else: + self["job_task"].text = "" + self["summary_job_task"].text = j.getStatustext() + if j.status in (j.FINISHED, j.FAILED): + self.performAfterEvent() + self["backgroundable"].boolean = False + if j.status == j.FINISHED: + self["finished"].boolean = True + self["cancelable"].boolean = False + elif j.status == j.FAILED: + self["cancelable"].boolean = True + + def background(self): + if self["backgroundable"].boolean == True: + self.close(True) + + def ok(self): + if self.job.status in (self.job.FINISHED, self.job.FAILED): + self.close(False) + else: + self.background() + + def abort(self): + if self.job.status == self.job.NOT_STARTED: + job_manager.active_jobs.remove(self.job) + self.close(False) + elif self.job.status == self.job.IN_PROGRESS and self["cancelable"].boolean == True: + self.job.cancel() + else: + self.close(False) + + def performAfterEvent(self): + self["config"].hide() + if self.settings.afterEvent.getValue() == "nothing": + return + elif self.settings.afterEvent.getValue() == "close" and self.job.status == self.job.FINISHED: + self.close(False) + from Screens.MessageBox import MessageBox + if self.settings.afterEvent.getValue() == "deepstandby": + if not Screens.Standby.inTryQuitMainloop: + Notifications.AddNotificationWithCallback(self.sendTryQuitMainloopNotification, MessageBox, _("A sleep timer wants to shut down\nyour receiver. Shutdown now?"), timeout = 20) + elif self.settings.afterEvent.getValue() == "standby": + if not Screens.Standby.inStandby: + Notifications.AddNotificationWithCallback(self.sendStandbyNotification, MessageBox, _("A sleep timer wants to set your\nreceiver to standby. Do that now?"), timeout = 20) + + def checkNotifications(self): + InfoBarNotifications.checkNotifications(self) + if Notifications.notifications == []: + if self.settings.afterEvent.getValue() == "close" and self.job.status == self.job.FAILED: + self.close(False) + + def sendStandbyNotification(self, answer): + if answer: + Notifications.AddNotification(Screens.Standby.Standby) + + def sendTryQuitMainloopNotification(self, answer): + if answer: + Notifications.AddNotification(Screens.Standby.TryQuitMainloop, 1) diff --git a/lib/python/Screens/TextBox.py b/lib/python/Screens/TextBox.py new file mode 100644 index 0000000..30f3191 --- /dev/null +++ b/lib/python/Screens/TextBox.py @@ -0,0 +1,26 @@ +from Screens.Screen import Screen + +from Components.ActionMap import ActionMap +from Components.Sources.StaticText import StaticText +from Components.ScrollLabel import ScrollLabel + +class TextBox(Screen): + def __init__(self, session, text = ""): + Screen.__init__(self, session) + + self.text = text + self["text"] = ScrollLabel(self.text) + + self["actions"] = ActionMap(["OkCancelActions", "DirectionActions"], + { + "cancel": self.cancel, + "ok": self.ok, + "up": self["text"].pageUp, + "down": self["text"].pageDown, + }, -1) + + def ok(self): + self.close() + + def cancel(self): + self.close() diff --git a/lib/python/Screens/TimeDateInput.py b/lib/python/Screens/TimeDateInput.py new file mode 100644 index 0000000..56ccae9 --- /dev/null +++ b/lib/python/Screens/TimeDateInput.py @@ -0,0 +1,73 @@ +from Screen import Screen +from Components.config import ConfigClock, ConfigDateTime, getConfigListEntry +from Components.ActionMap import NumberActionMap +from Components.ConfigList import ConfigListScreen +from Components.Label import Label +from Components.Pixmap import Pixmap +import time +import datetime + +class TimeDateInput(Screen, ConfigListScreen): + def __init__(self, session, config_time=None, config_date=None): + Screen.__init__(self, session) + self["oktext"] = Label(_("OK")) + self["canceltext"] = Label(_("Cancel")) + self["ok"] = Pixmap() + self["cancel"] = Pixmap() + + self.createConfig(config_date, config_time) + + self["actions"] = NumberActionMap(["SetupActions"], + { + "ok": self.keySelect, + "save": self.keyGo, + "cancel": self.keyCancel, + }, -2) + + self.list = [] + ConfigListScreen.__init__(self, self.list) + self.createSetup(self["config"]) + + def createConfig(self, conf_date, conf_time): + self.save_mask = 0 + if conf_time: + self.save_mask |= 1 + else: + conf_time = ConfigClock(default = time.time()), + if conf_date: + self.save_mask |= 2 + else: + conf_date = ConfigDateTime(default = time.time(), formatstring = _("%d.%B %Y"), increment = 86400) + self.timeinput_date = conf_date + self.timeinput_time = conf_time + + def createSetup(self, configlist): + self.list = [ + getConfigListEntry(_("Date"), self.timeinput_date), + getConfigListEntry(_("Time"), self.timeinput_time) + ] + configlist.list = self.list + configlist.l.setList(self.list) + + def keySelect(self): + self.keyGo() + + def getTimestamp(self, date, mytime): + d = time.localtime(date) + dt = datetime.datetime(d.tm_year, d.tm_mon, d.tm_mday, mytime[0], mytime[1]) + return int(time.mktime(dt.timetuple())) + + def keyGo(self): + time = self.getTimestamp(self.timeinput_date.value, self.timeinput_time.value) + if self.save_mask & 1: + self.timeinput_time.save() + if self.save_mask & 2: + self.timeinput_date.save() + self.close((True, time)) + + def keyCancel(self): + if self.save_mask & 1: + self.timeinput_time.cancel() + if self.save_mask & 2: + self.timeinput_date.cancel() + self.close((False,)) diff --git a/lib/python/Screens/TimerEdit.py b/lib/python/Screens/TimerEdit.py new file mode 100644 index 0000000..5d21e8c --- /dev/null +++ b/lib/python/Screens/TimerEdit.py @@ -0,0 +1,459 @@ +from Components.ActionMap import ActionMap +from Components.Button import Button +from Components.config import config +from Components.MenuList import MenuList +from Components.TimerList import TimerList +from Components.TimerSanityCheck import TimerSanityCheck +from Components.UsageConfig import preferredTimerPath +from RecordTimer import RecordTimerEntry, parseEvent, AFTEREVENT +from Screen import Screen +from Screens.ChoiceBox import ChoiceBox +from Screens.MessageBox import MessageBox +from ServiceReference import ServiceReference +from TimerEntry import TimerEntry, TimerLog +from Tools.BoundFunction import boundFunction +from time import time +from timer import TimerEntry as RealTimerEntry + +class TimerEditList(Screen): + EMPTY = 0 + ENABLE = 1 + DISABLE = 2 + CLEANUP = 3 + DELETE = 4 + + def __init__(self, session): + Screen.__init__(self, session) + + list = [ ] + self.list = list + self.fillTimerList() + + self["timerlist"] = TimerList(list) + + self.key_red_choice = self.EMPTY + self.key_yellow_choice = self.EMPTY + self.key_blue_choice = self.EMPTY + + self["key_red"] = Button(" ") + self["key_green"] = Button(_("Add")) + self["key_yellow"] = Button(" ") + self["key_blue"] = Button(" ") + + print "key_red_choice:",self.key_red_choice + + self["actions"] = ActionMap(["OkCancelActions", "DirectionActions", "ShortcutActions", "TimerEditActions"], + { + "ok": self.openEdit, + "cancel": self.leave, + "green": self.addCurrentTimer, + "log": self.showLog, + "left": self.left, + "right": self.right, + "up": self.up, + "down": self.down + }, -1) + self.setTitle(_("Timer overview")) + self.session.nav.RecordTimer.on_state_change.append(self.onStateChange) + self.onShown.append(self.updateState) + + def up(self): + self["timerlist"].instance.moveSelection(self["timerlist"].instance.moveUp) + self.updateState() + + def down(self): + self["timerlist"].instance.moveSelection(self["timerlist"].instance.moveDown) + self.updateState() + + def left(self): + self["timerlist"].instance.moveSelection(self["timerlist"].instance.pageUp) + self.updateState() + + def right(self): + self["timerlist"].instance.moveSelection(self["timerlist"].instance.pageDown) + self.updateState() + + def toggleDisabledState(self): + cur=self["timerlist"].getCurrent() + if cur: + t = cur + if t.disabled: + print "try to ENABLE timer" + t.enable() + timersanitycheck = TimerSanityCheck(self.session.nav.RecordTimer.timer_list, cur) + if not timersanitycheck.check(): + t.disable() + print "Sanity check failed" + simulTimerList = timersanitycheck.getSimulTimerList() + if simulTimerList is not None: + self.session.openWithCallback(self.finishedEdit, TimerSanityConflict, simulTimerList) + else: + print "Sanity check passed" + if timersanitycheck.doubleCheck(): + t.disable() + else: + if t.isRunning(): + if t.repeated: + list = ( + (_("Stop current event but not coming events"), "stoponlycurrent"), + (_("Stop current event and disable coming events"), "stopall"), + (_("Don't stop current event but disable coming events"), "stoponlycoming") + ) + self.session.openWithCallback(boundFunction(self.runningEventCallback, t), ChoiceBox, title=_("Repeating event currently recording... What do you want to do?"), list = list) + else: + t.disable() + self.session.nav.RecordTimer.timeChanged(t) + self.refill() + self.updateState() + + def runningEventCallback(self, t, result): + if result is not None: + if result[1] == "stoponlycurrent" or result[1] == "stopall": + t.enable() + t.processRepeated(findRunningEvent = False) + self.session.nav.RecordTimer.doActivate(t) + if result[1] == "stoponlycoming" or result[1] == "stopall": + t.disable() + self.session.nav.RecordTimer.timeChanged(t) + self.refill() + self.updateState() + + def removeAction(self, descr): + actions = self["actions"].actions + if descr in actions: + del actions[descr] + + def updateState(self): + cur = self["timerlist"].getCurrent() + if cur: + if self.key_red_choice != self.DELETE: + self["actions"].actions.update({"red":self.removeTimerQuestion}) + self["key_red"].setText(_("Delete")) + self.key_red_choice = self.DELETE + + if cur.disabled and (self.key_yellow_choice != self.ENABLE): + self["actions"].actions.update({"yellow":self.toggleDisabledState}) + self["key_yellow"].setText(_("Enable")) + self.key_yellow_choice = self.ENABLE + elif cur.isRunning() and not cur.repeated and (self.key_yellow_choice != self.EMPTY): + self.removeAction("yellow") + self["key_yellow"].setText(" ") + self.key_yellow_choice = self.EMPTY + elif ((not cur.isRunning())or cur.repeated ) and (not cur.disabled) and (self.key_yellow_choice != self.DISABLE): + self["actions"].actions.update({"yellow":self.toggleDisabledState}) + self["key_yellow"].setText(_("Disable")) + self.key_yellow_choice = self.DISABLE + else: + if self.key_red_choice != self.EMPTY: + self.removeAction("red") + self["key_red"].setText(" ") + self.key_red_choice = self.EMPTY + if self.key_yellow_choice != self.EMPTY: + self.removeAction("yellow") + self["key_yellow"].setText(" ") + self.key_yellow_choice = self.EMPTY + + showCleanup = True + for x in self.list: + if (not x[0].disabled) and (x[1] == True): + break + else: + showCleanup = False + + if showCleanup and (self.key_blue_choice != self.CLEANUP): + self["actions"].actions.update({"blue":self.cleanupQuestion}) + self["key_blue"].setText(_("Cleanup")) + self.key_blue_choice = self.CLEANUP + elif (not showCleanup) and (self.key_blue_choice != self.EMPTY): + self.removeAction("blue") + self["key_blue"].setText(" ") + self.key_blue_choice = self.EMPTY + + def fillTimerList(self): + #helper function to move finished timers to end of list + def eol_compare(x, y): + if x[0].state != y[0].state and x[0].state == RealTimerEntry.StateEnded or y[0].state == RealTimerEntry.StateEnded: + return cmp(x[0].state, y[0].state) + return cmp(x[0].begin, y[0].begin) + + list = self.list + del list[:] + list.extend([(timer, False) for timer in self.session.nav.RecordTimer.timer_list]) + list.extend([(timer, True) for timer in self.session.nav.RecordTimer.processed_timers]) + if config.usage.timerlist_finished_timer_position.index: #end of list + list.sort(cmp = eol_compare) + else: + list.sort(key = lambda x: x[0].begin) + + def showLog(self): + cur=self["timerlist"].getCurrent() + if cur: + self.session.openWithCallback(self.finishedEdit, TimerLog, cur) + + def openEdit(self): + cur=self["timerlist"].getCurrent() + if cur: + self.session.openWithCallback(self.finishedEdit, TimerEntry, cur) + + def cleanupQuestion(self): + self.session.openWithCallback(self.cleanupTimer, MessageBox, _("Really delete done timers?")) + + def cleanupTimer(self, delete): + if delete: + self.session.nav.RecordTimer.cleanup() + self.refill() + self.updateState() + + def removeTimerQuestion(self): + cur = self["timerlist"].getCurrent() + if not cur: + return + + self.session.openWithCallback(self.removeTimer, MessageBox, _("Do you really want to delete %s?") % (cur.name)) + + def removeTimer(self, result): + if not result: + return + list = self["timerlist"] + cur = list.getCurrent() + if cur: + timer = cur + timer.afterEvent = AFTEREVENT.NONE + self.session.nav.RecordTimer.removeEntry(timer) + self.refill() + self.updateState() + + + def refill(self): + oldsize = len(self.list) + self.fillTimerList() + lst = self["timerlist"] + newsize = len(self.list) + if oldsize and oldsize != newsize: + idx = lst.getCurrentIndex() + lst.entryRemoved(idx) + else: + lst.invalidate() + + def addCurrentTimer(self): + event = None + service = self.session.nav.getCurrentService() + if service is not None: + info = service.info() + if info is not None: + event = info.getEvent(0) + + # FIXME only works if already playing a service + serviceref = ServiceReference(self.session.nav.getCurrentlyPlayingServiceOrGroup()) + + if event is None: + data = (int(time()), int(time() + 60), "", "", None) + else: + data = parseEvent(event, description = False) + + self.addTimer(RecordTimerEntry(serviceref, checkOldTimers = True, dirname = preferredTimerPath(), *data)) + + def addTimer(self, timer): + self.session.openWithCallback(self.finishedAdd, TimerEntry, timer) + + + def finishedEdit(self, answer): + print "finished edit" + + if answer[0]: + print "Edited timer" + entry = answer[1] + timersanitycheck = TimerSanityCheck(self.session.nav.RecordTimer.timer_list, entry) + success = False + if not timersanitycheck.check(): + simulTimerList = timersanitycheck.getSimulTimerList() + if simulTimerList is not None: + for x in simulTimerList: + if x.setAutoincreaseEnd(entry): + self.session.nav.RecordTimer.timeChanged(x) + if not timersanitycheck.check(): + simulTimerList = timersanitycheck.getSimulTimerList() + if simulTimerList is not None: + self.session.openWithCallback(self.finishedEdit, TimerSanityConflict, timersanitycheck.getSimulTimerList()) + else: + success = True + else: + success = True + if success: + print "Sanity check passed" + self.session.nav.RecordTimer.timeChanged(entry) + + self.fillTimerList() + self.updateState() + else: + print "Timeredit aborted" + + def finishedAdd(self, answer): + print "finished add" + if answer[0]: + entry = answer[1] + simulTimerList = self.session.nav.RecordTimer.record(entry) + if simulTimerList is not None: + for x in simulTimerList: + if x.setAutoincreaseEnd(entry): + self.session.nav.RecordTimer.timeChanged(x) + simulTimerList = self.session.nav.RecordTimer.record(entry) + if simulTimerList is not None: + self.session.openWithCallback(self.finishSanityCorrection, TimerSanityConflict, simulTimerList) + self.fillTimerList() + self.updateState() + else: + print "Timeredit aborted" + + def finishSanityCorrection(self, answer): + self.finishedAdd(answer) + + def leave(self): + self.session.nav.RecordTimer.on_state_change.remove(self.onStateChange) + self.close() + + def onStateChange(self, entry): + self.refill() + self.updateState() + +class TimerSanityConflict(Screen): + EMPTY = 0 + ENABLE = 1 + DISABLE = 2 + EDIT = 3 + + def __init__(self, session, timer): + Screen.__init__(self, session) + self.timer = timer + print "TimerSanityConflict" + + self["timer1"] = TimerList(self.getTimerList(timer[0])) + self.list = [] + self.list2 = [] + count = 0 + for x in timer: + if count != 0: + self.list.append((_("Conflicting timer") + " " + str(count), x)) + self.list2.append((timer[count], False)) + count += 1 + if count == 1: + self.list.append((_("Channel not in services list"))) + + self["list"] = MenuList(self.list) + self["timer2"] = TimerList(self.list2) + + self["key_red"] = Button(_("Edit")) + self["key_green"] = Button(" ") + self["key_yellow"] = Button(" ") + self["key_blue"] = Button(" ") + + self.key_green_choice = self.EMPTY + self.key_yellow_choice = self.EMPTY + self.key_blue_choice = self.EMPTY + + self["actions"] = ActionMap(["OkCancelActions", "DirectionActions", "ShortcutActions", "TimerEditActions"], + { + "ok": self.leave_ok, + "cancel": self.leave_cancel, + "red": self.editTimer1, + "up": self.up, + "down": self.down + }, -1) + self.setTitle(_("Timer sanity error")) + self.onShown.append(self.updateState) + + def getTimerList(self, timer): + return [(timer, False)] + + def editTimer1(self): + self.session.openWithCallback(self.finishedEdit, TimerEntry, self["timer1"].getCurrent()) + + def toggleTimer1(self): + if self.timer[0].disabled: + self.timer[0].disabled = False + self.session.nav.RecordTimer.timeChanged(self.timer[0]) + else: + if not self.timer[0].isRunning(): + self.timer[0].disabled = True + self.session.nav.RecordTimer.timeChanged(self.timer[0]) + self.finishedEdit((True, self.timer[0])) + + def editTimer2(self): + self.session.openWithCallback(self.finishedEdit, TimerEntry, self["timer2"].getCurrent()) + + def toggleTimer2(self): + x = self["list"].getSelectedIndex() + 1 # the first is the new timer so we do +1 here + if self.timer[x].disabled: + self.timer[x].disabled = False + self.session.nav.RecordTimer.timeChanged(self.timer[x]) + elif not self.timer[x].isRunning(): + self.timer[x].disabled = True + self.session.nav.RecordTimer.timeChanged(self.timer[x]) + self.finishedEdit((True, self.timer[0])) + + def finishedEdit(self, answer): + self.leave_ok() + + def leave_ok(self): + self.close((True, self.timer[0])) + + def leave_cancel(self): + self.close((False, self.timer[0])) + + def up(self): + self["list"].instance.moveSelection(self["list"].instance.moveUp) + self["timer2"].moveToIndex(self["list"].getSelectedIndex()) + + def down(self): + self["list"].instance.moveSelection(self["list"].instance.moveDown) + self["timer2"].moveToIndex(self["list"].getSelectedIndex()) + + def removeAction(self, descr): + actions = self["actions"].actions + if descr in actions: + del actions[descr] + + def updateState(self): + if self.timer[0] is not None: + if self.timer[0].disabled and self.key_green_choice != self.ENABLE: + self["actions"].actions.update({"green":self.toggleTimer1}) + self["key_green"].setText(_("Enable")) + self.key_green_choice = self.ENABLE + elif self.timer[0].isRunning() and not self.timer[0].repeated and self.key_green_choice != self.EMPTY: + self.removeAction("green") + self["key_green"].setText(" ") + self.key_green_choice = self.EMPTY + elif (not self.timer[0].isRunning() or self.timer[0].repeated ) and self.key_green_choice != self.DISABLE: + self["actions"].actions.update({"green":self.toggleTimer1}) + self["key_green"].setText(_("Disable")) + self.key_green_choice = self.DISABLE + + if len(self.timer) > 1: + x = self["list"].getSelectedIndex() + if self.timer[x] is not None: + if self.key_yellow_choice == self.EMPTY: + self["actions"].actions.update({"yellow":self.editTimer2}) + self["key_yellow"].setText(_("Edit")) + self.key_yellow_choice = self.EDIT + if self.timer[x].disabled and self.key_blue_choice != self.ENABLE: + self["actions"].actions.update({"blue":self.toggleTimer2}) + self["key_blue"].setText(_("Enable")) + self.key_blue_choice = self.ENABLE + elif self.timer[x].isRunning() and not self.timer[x].repeated and self.key_blue_choice != self.EMPTY: + self.removeAction("blue") + self["key_blue"].setText(" ") + self.key_blue_choice = self.EMPTY + elif (not self.timer[x].isRunning() or self.timer[x].repeated ) and self.key_blue_choice != self.DISABLE: + self["actions"].actions.update({"blue":self.toggleTimer2}) + self["key_blue"].setText(_("Disable")) + self.key_blue_choice = self.DISABLE + else: +#FIXME.... this doesnt hide the buttons self.... just the text + if self.key_yellow_choice != self.EMPTY: + self.removeAction("yellow") + self["key_yellow"].setText(" ") + self.key_yellow_choice = self.EMPTY + if self.key_blue_choice != self.EMPTY: + self.removeAction("blue") + self["key_blue"].setText(" ") + self.key_blue_choice = self.EMPTY diff --git a/lib/python/Screens/TimerEntry.py b/lib/python/Screens/TimerEntry.py new file mode 100644 index 0000000..c0a5d99 --- /dev/null +++ b/lib/python/Screens/TimerEntry.py @@ -0,0 +1,539 @@ +from Screen import Screen +import ChannelSelection +from ServiceReference import ServiceReference +from Components.config import config, ConfigSelection, ConfigText, ConfigSubList, ConfigDateTime, ConfigClock, ConfigYesNo, getConfigListEntry +from Components.ActionMap import NumberActionMap +from Components.ConfigList import ConfigListScreen +from Components.MenuList import MenuList +from Components.Button import Button +from Components.Label import Label +from Components.Pixmap import Pixmap +from Components.SystemInfo import SystemInfo +from Components.UsageConfig import defaultMoviePath +from Screens.MovieSelection import getPreferredTagEditor +from Screens.LocationBox import MovieLocationBox +from Screens.ChoiceBox import ChoiceBox +from Screens.MessageBox import MessageBox +from RecordTimer import AFTEREVENT +from enigma import eEPGCache, eServiceReference +from time import localtime, mktime, time, strftime +from datetime import datetime + +class TimerEntry(Screen, ConfigListScreen): + def __init__(self, session, timer): + Screen.__init__(self, session) + self.timer = timer + + self.entryDate = None + self.entryService = None + + self["oktext"] = Label(_("OK")) + self["canceltext"] = Label(_("Cancel")) + self["ok"] = Pixmap() + self["cancel"] = Pixmap() + self["key_yellow"] = Label(_("Timer type")) + self["key_blue"] = Label() + + self.createConfig() + + self["actions"] = NumberActionMap(["SetupActions", "GlobalActions", "PiPSetupActions", "ColorActions"], + { + "ok": self.keySelect, + "save": self.keyGo, + "cancel": self.keyCancel, + "volumeUp": self.incrementStart, + "volumeDown": self.decrementStart, + "size+": self.incrementEnd, + "size-": self.decrementEnd, + "yellow": self.changeTimerType, + "blue": self.changeZapWakeupType + }, -2) + + self.list = [] + ConfigListScreen.__init__(self, self.list, session = session) + self.setTitle(_("Timer entry")) + self.createSetup("config") + + def createConfig(self): + justplay = self.timer.justplay + always_zap = self.timer.always_zap + zap_wakeup = self.timer.zap_wakeup + + afterevent = { + AFTEREVENT.NONE: "nothing", + AFTEREVENT.DEEPSTANDBY: "deepstandby", + AFTEREVENT.STANDBY: "standby", + AFTEREVENT.AUTO: "auto" + }[self.timer.afterEvent] + + if self.timer.record_ecm and self.timer.descramble: + recordingtype = "descrambled+ecm" + elif self.timer.record_ecm: + recordingtype = "scrambled+ecm" + elif self.timer.descramble: + recordingtype = "normal" + + weekday_table = ("mon", "tue", "wed", "thu", "fri", "sat", "sun") + + # calculate default values + day = [] + weekday = 0 + for x in (0, 1, 2, 3, 4, 5, 6): + day.append(0) + if self.timer.repeated: # repeated + type = "repeated" + if (self.timer.repeated == 31): # Mon-Fri + repeated = "weekdays" + elif (self.timer.repeated == 127): # daily + repeated = "daily" + else: + flags = self.timer.repeated + repeated = "user" + count = 0 + for x in (0, 1, 2, 3, 4, 5, 6): + if flags == 1: # weekly + print "Set to weekday " + str(x) + weekday = x + if flags & 1 == 1: # set user defined flags + day[x] = 1 + count += 1 + else: + day[x] = 0 + flags = flags >> 1 + if count == 1: + repeated = "weekly" + else: # once + type = "once" + repeated = None + weekday = int(strftime("%u", localtime(self.timer.begin))) - 1 + day[weekday] = 1 + + self.timerentry_justplay = ConfigSelection(choices = [ + ("zap", _("zap")), ("record", _("record")), ("zap+record", _("zap and record"))], + default = {0: "record", 1: "zap", 2: "zap+record"}[justplay + 2*always_zap]) + if SystemInfo["DeepstandbySupport"]: + shutdownString = _("go to deep standby") + choicelist = [("always", _("always")), ("from_standby", _("only from standby")), ("from_deep_standby", _("only from deep standby")), ("never", _("never"))] + else: + shutdownString = _("shut down") + choicelist = [("always", _("always")), ("never", _("never"))] + self.timerentry_zapwakeup = ConfigSelection(choices = choicelist, default = zap_wakeup) + self.timerentry_afterevent = ConfigSelection(choices = [("nothing", _("do nothing")), ("standby", _("go to standby")), ("deepstandby", shutdownString), ("auto", _("auto"))], default = afterevent) + self.timerentry_recordingtype = ConfigSelection(choices = [("normal", _("normal")), ("descrambled+ecm", _("descramble and record ecm")), ("scrambled+ecm", _("don't descramble, record ecm"))], default = recordingtype) + self.timerentry_type = ConfigSelection(choices = [("once",_("once")), ("repeated", _("repeated"))], default = type) + self.timerentry_name = ConfigText(default = self.timer.name, visible_width = 50, fixed_size = False) + self.timerentry_description = ConfigText(default = self.timer.description, visible_width = 50, fixed_size = False) + self.timerentry_tags = self.timer.tags[:] + self.timerentry_tagsset = ConfigSelection(choices = [not self.timerentry_tags and "None" or " ".join(self.timerentry_tags)]) + + self.timerentry_repeated = ConfigSelection(default = repeated, choices = [("weekly", _("weekly")), ("daily", _("daily")), ("weekdays", _("Mon-Fri")), ("user", _("user defined"))]) + + self.timerentry_date = ConfigDateTime(default = self.timer.begin, formatstring = _("%d.%B %Y"), increment = 86400) + self.timerentry_starttime = ConfigClock(default = self.timer.begin) + self.timerentry_endtime = ConfigClock(default = self.timer.end) + self.timerentry_showendtime = ConfigSelection(default = ((self.timer.end - self.timer.begin) > 4), choices = [(True, _("yes")), (False, _("no"))]) + + default = self.timer.dirname or defaultMoviePath() + tmp = config.movielist.videodirs.value + if default not in tmp: + tmp.append(default) + self.timerentry_dirname = ConfigSelection(default = default, choices = tmp) + + self.timerentry_repeatedbegindate = ConfigDateTime(default = self.timer.repeatedbegindate, formatstring = _("%d.%B %Y"), increment = 86400) + + self.timerentry_weekday = ConfigSelection(default = weekday_table[weekday], choices = [("mon",_("Monday")), ("tue", _("Tuesday")), ("wed",_("Wednesday")), ("thu", _("Thursday")), ("fri", _("Friday")), ("sat", _("Saturday")), ("sun", _("Sunday"))]) + + self.timerentry_day = ConfigSubList() + for x in (0, 1, 2, 3, 4, 5, 6): + self.timerentry_day.append(ConfigYesNo(default = day[x])) + + # FIXME some service-chooser needed here + servicename = "N/A" + try: # no current service available? + servicename = str(self.timer.service_ref.getServiceName()) + except: + pass + self.timerentry_service_ref = self.timer.service_ref + self.timerentry_service = ConfigSelection([servicename]) + + def createSetup(self, widget): + self.list = [] + self.list.append(getConfigListEntry(_("Name"), self.timerentry_name)) + self.list.append(getConfigListEntry(_("Description"), self.timerentry_description)) + self.timerJustplayEntry = getConfigListEntry(_("Timer type"), self.timerentry_justplay) + self.list.append(self.timerJustplayEntry) + self.timerTypeEntry = getConfigListEntry(_("Repeat type"), self.timerentry_type) + self.list.append(self.timerTypeEntry) + + if self.timerentry_type.value == "once": + self.frequencyEntry = None + else: # repeated + self.frequencyEntry = getConfigListEntry(_("Repeats"), self.timerentry_repeated) + self.list.append(self.frequencyEntry) + self.repeatedbegindateEntry = getConfigListEntry(_("Starting on"), self.timerentry_repeatedbegindate) + self.list.append(self.repeatedbegindateEntry) + if self.timerentry_repeated.value == "daily": + pass + if self.timerentry_repeated.value == "weekdays": + pass + if self.timerentry_repeated.value == "weekly": + self.list.append(getConfigListEntry(_("Weekday"), self.timerentry_weekday)) + + if self.timerentry_repeated.value == "user": + self.list.append(getConfigListEntry(_("Monday"), self.timerentry_day[0])) + self.list.append(getConfigListEntry(_("Tuesday"), self.timerentry_day[1])) + self.list.append(getConfigListEntry(_("Wednesday"), self.timerentry_day[2])) + self.list.append(getConfigListEntry(_("Thursday"), self.timerentry_day[3])) + self.list.append(getConfigListEntry(_("Friday"), self.timerentry_day[4])) + self.list.append(getConfigListEntry(_("Saturday"), self.timerentry_day[5])) + self.list.append(getConfigListEntry(_("Sunday"), self.timerentry_day[6])) + + self.entryDate = getConfigListEntry(_("Date"), self.timerentry_date) + if self.timerentry_type.value == "once": + self.list.append(self.entryDate) + + self.entryStartTime = getConfigListEntry(_("Start time"), self.timerentry_starttime) + self.list.append(self.entryStartTime) + + self.entryShowEndTime = getConfigListEntry(_("Set end time"), self.timerentry_showendtime) + self.entryZapWakeup = getConfigListEntry(_("Wakeup receiver for start timer"), self.timerentry_zapwakeup) + if self.timerentry_justplay.value == "zap": + self.list.append(self.entryZapWakeup) + self.list.append(self.entryShowEndTime) + self["key_blue"].setText(_("Wakeup type")) + else: + self["key_blue"].setText("") + self.entryEndTime = getConfigListEntry(_("End time"), self.timerentry_endtime) + if self.timerentry_justplay.value != "zap" or self.timerentry_showendtime.value: + self.list.append(self.entryEndTime) + + self.channelEntry = getConfigListEntry(_("Channel"), self.timerentry_service) + self.list.append(self.channelEntry) + + self.dirname = getConfigListEntry(_("Location"), self.timerentry_dirname) + self.tagsSet = getConfigListEntry(_("Tags"), self.timerentry_tagsset) + if self.timerentry_justplay.value != "zap": + if config.usage.setup_level.index >= 2: # expert+ + self.list.append(self.dirname) + if getPreferredTagEditor(): + self.list.append(self.tagsSet) + self.list.append(getConfigListEntry(_("After event"), self.timerentry_afterevent)) + self.list.append(getConfigListEntry(_("Recording type"), self.timerentry_recordingtype)) + + self[widget].list = self.list + self[widget].l.setList(self.list) + + def newConfig(self): + print "newConfig", self["config"].getCurrent() + if self["config"].getCurrent() in (self.timerTypeEntry, self.timerJustplayEntry, self.frequencyEntry, self.entryShowEndTime): + self.createSetup("config") + + def keyLeft(self): + if self["config"].getCurrent() in (self.channelEntry, self.tagsSet): + self.keySelect() + else: + ConfigListScreen.keyLeft(self) + self.newConfig() + + def keyRight(self): + if self["config"].getCurrent() in (self.channelEntry, self.tagsSet): + self.keySelect() + else: + ConfigListScreen.keyRight(self) + self.newConfig() + + def handleKeyFileCallback(self, answer): + if self["config"].getCurrent() in (self.channelEntry, self.tagsSet): + self.keySelect() + else: + ConfigListScreen.handleKeyFileCallback(self, answer) + self.newConfig() + + def keySelect(self): + cur = self["config"].getCurrent() + if cur == self.channelEntry: + self.session.openWithCallback( + self.finishedChannelSelection, + ChannelSelection.SimpleChannelSelection, + _("Select channel to record from") + ) + elif config.usage.setup_level.index >= 2 and cur == self.dirname: + self.session.openWithCallback( + self.pathSelected, + MovieLocationBox, + _("Select target folder"), + self.timerentry_dirname.value, + minFree = 100 # We require at least 100MB free space + ) + elif getPreferredTagEditor() and cur == self.tagsSet: + self.session.openWithCallback( + self.tagEditFinished, + getPreferredTagEditor(), + self.timerentry_tags + ) + else: + self.keyGo() + + def finishedChannelSelection(self, *args): + if args: + self.timerentry_service_ref = ServiceReference(args[0]) + self.timerentry_service.setCurrentText(self.timerentry_service_ref.getServiceName()) + self["config"].invalidate(self.channelEntry) + + def getTimestamp(self, date, mytime): + d = localtime(date) + dt = datetime(d.tm_year, d.tm_mon, d.tm_mday, mytime[0], mytime[1]) + return int(mktime(dt.timetuple())) + + def getBeginEnd(self): + date = self.timerentry_date.value + endtime = self.timerentry_endtime.value + starttime = self.timerentry_starttime.value + + begin = self.getTimestamp(date, starttime) + end = self.getTimestamp(date, endtime) + + # if the endtime is less than the starttime, add 1 day. + if end < begin: + end += 86400 + return begin, end + + def selectChannelSelector(self, *args): + self.session.openWithCallback( + self.finishedChannelSelectionCorrection, + ChannelSelection.SimpleChannelSelection, + _("Select channel to record from") + ) + + def finishedChannelSelectionCorrection(self, *args): + if args: + self.finishedChannelSelection(*args) + self.keyGo() + + def keyGo(self, result = None): + if not self.timerentry_service_ref.isRecordable(): + self.session.openWithCallback(self.selectChannelSelector, MessageBox, _("You didn't select a channel to record from."), MessageBox.TYPE_ERROR) + return + self.timer.name = self.timerentry_name.value + self.timer.description = self.timerentry_description.value + self.timer.justplay = self.timerentry_justplay.value == "zap" + self.timer.always_zap = self.timerentry_justplay.value == "zap+record" + self.timer.zap_wakeup = self.timerentry_zapwakeup.value + if self.timerentry_justplay.value == "zap": + if not self.timerentry_showendtime.value: + self.timerentry_endtime.value = self.timerentry_starttime.value + self.timerentry_afterevent.value = "nothing" + self.timer.resetRepeated() + self.timer.afterEvent = { + "nothing": AFTEREVENT.NONE, + "deepstandby": AFTEREVENT.DEEPSTANDBY, + "standby": AFTEREVENT.STANDBY, + "auto": AFTEREVENT.AUTO + }[self.timerentry_afterevent.value] + self.timer.descramble = { + "normal": True, + "descrambled+ecm": True, + "scrambled+ecm": False, + }[self.timerentry_recordingtype.value] + self.timer.record_ecm = { + "normal": False, + "descrambled+ecm": True, + "scrambled+ecm": True, + }[self.timerentry_recordingtype.value] + self.timer.service_ref = self.timerentry_service_ref + self.timer.tags = self.timerentry_tags + + if self.timer.dirname or self.timerentry_dirname.value != defaultMoviePath(): + self.timer.dirname = self.timerentry_dirname.value + config.movielist.last_timer_videodir.value = self.timer.dirname + config.movielist.last_timer_videodir.save() + + if self.timerentry_type.value == "once": + self.timer.begin, self.timer.end = self.getBeginEnd() + if self.timerentry_type.value == "repeated": + if self.timerentry_repeated.value == "daily": + for x in (0, 1, 2, 3, 4, 5, 6): + self.timer.setRepeated(x) + + if self.timerentry_repeated.value == "weekly": + self.timer.setRepeated(self.timerentry_weekday.index) + + if self.timerentry_repeated.value == "weekdays": + for x in (0, 1, 2, 3, 4): + self.timer.setRepeated(x) + + if self.timerentry_repeated.value == "user": + for x in (0, 1, 2, 3, 4, 5, 6): + if self.timerentry_day[x].value: + self.timer.setRepeated(x) + + self.timer.repeatedbegindate = self.getTimestamp(self.timerentry_repeatedbegindate.value, self.timerentry_starttime.value) + if self.timer.repeated: + self.timer.begin = self.getTimestamp(self.timerentry_repeatedbegindate.value, self.timerentry_starttime.value) + self.timer.end = self.getTimestamp(self.timerentry_repeatedbegindate.value, self.timerentry_endtime.value) + else: + self.timer.begin = self.getTimestamp(time.time(), self.timerentry_starttime.value) + self.timer.end = self.getTimestamp(time.time(), self.timerentry_endtime.value) + + # when a timer end is set before the start, add 1 day + if self.timer.end < self.timer.begin: + self.timer.end += 86400 + + if self.timer.eit is not None: + event = eEPGCache.getInstance().lookupEventId(self.timer.service_ref.ref, self.timer.eit) + if event: + n = event.getNumOfLinkageServices() + if n > 1: + tlist = [] + ref = self.session.nav.getCurrentlyPlayingServiceOrGroup() + parent = self.timer.service_ref.ref + selection = 0 + for x in range(n): + i = event.getLinkageService(parent, x) + if i.toString() == ref.toString(): + selection = x + tlist.append((i.getName(), i)) + self.session.openWithCallback(self.subserviceSelected, ChoiceBox, title=_("Please select a subservice to record..."), list = tlist, selection = selection) + return + elif n > 0: + parent = self.timer.service_ref.ref + self.timer.service_ref = ServiceReference(event.getLinkageService(parent, 0)) + self.saveTimer() + self.close((True, self.timer)) + + def changeTimerType(self): + self.timerentry_justplay.selectNext() + self.timerJustplayEntry = getConfigListEntry(_("Timer type"), self.timerentry_justplay) + self["config"].invalidate(self.timerJustplayEntry) + self.createSetup("config") + + def changeZapWakeupType(self): + if self.timerentry_justplay.value == "zap": + self.timerentry_zapwakeup.selectNext() + self["config"].invalidate(self.entryZapWakeup) + + def incrementStart(self): + self.timerentry_starttime.increment() + self["config"].invalidate(self.entryStartTime) + if self.timerentry_type.value == "once" and self.timerentry_starttime.value == [0, 0]: + self.timerentry_date.value = self.timerentry_date.value + 86400 + self["config"].invalidate(self.entryDate) + + def decrementStart(self): + self.timerentry_starttime.decrement() + self["config"].invalidate(self.entryStartTime) + if self.timerentry_type.value == "once" and self.timerentry_starttime.value == [23, 59]: + self.timerentry_date.value = self.timerentry_date.value - 86400 + self["config"].invalidate(self.entryDate) + + def incrementEnd(self): + if self.entryEndTime is not None: + self.timerentry_endtime.increment() + self["config"].invalidate(self.entryEndTime) + + def decrementEnd(self): + if self.entryEndTime is not None: + self.timerentry_endtime.decrement() + self["config"].invalidate(self.entryEndTime) + + def subserviceSelected(self, service): + if not service is None: + self.timer.service_ref = ServiceReference(service[1]) + self.saveTimer() + self.close((True, self.timer)) + + def saveTimer(self): + self.session.nav.RecordTimer.saveTimer() + + def keyCancel(self): + self.close((False,)) + + def pathSelected(self, res): + if res is not None: + if config.movielist.videodirs.value != self.timerentry_dirname.choices: + self.timerentry_dirname.setChoices(config.movielist.videodirs.value, default=res) + self.timerentry_dirname.value = res + + def tagEditFinished(self, ret): + if ret is not None: + self.timerentry_tags = ret + self.timerentry_tagsset.setChoices([not ret and "None" or " ".join(ret)]) + self["config"].invalidate(self.tagsSet) + +class TimerLog(Screen): + def __init__(self, session, timer): + Screen.__init__(self, session) + self.timer = timer; + self.log_entries = self.timer.log_entries[:] + + self.fillLogList() + + self["loglist"] = MenuList(self.list) + self["logentry"] = Label() + + self["key_red"] = Button(_("Delete entry")) + self["key_green"] = Button() + self["key_yellow"] = Button("") + self["key_blue"] = Button(_("Clear log")) + + self.onShown.append(self.updateText) + + self["actions"] = NumberActionMap(["OkCancelActions", "DirectionActions", "ColorActions"], + { + "ok": self.keyClose, + "cancel": self.keyClose, + "up": self.up, + "down": self.down, + "left": self.left, + "right": self.right, + "red": self.deleteEntry, + "blue": self.clearLog + }, -1) + self.setTitle(_("Timer log")) + + def deleteEntry(self): + cur = self["loglist"].getCurrent() + if cur is None: + return + self.log_entries.remove(cur[1]) + self.fillLogList() + self["loglist"].l.setList(self.list) + self.updateText() + + def fillLogList(self): + self.list = [(str(strftime("%Y-%m-%d %H-%M", localtime(x[0])) + " - " + x[2]), x) for x in self.log_entries] + + def clearLog(self): + self.log_entries = [] + self.fillLogList() + self["loglist"].l.setList(self.list) + self.updateText() + + def keyClose(self): + if self.timer.log_entries != self.log_entries: + self.timer.log_entries = self.log_entries + self.close((True, self.timer)) + else: + self.close((False,)) + + def up(self): + self["loglist"].instance.moveSelection(self["loglist"].instance.moveUp) + self.updateText() + + def down(self): + self["loglist"].instance.moveSelection(self["loglist"].instance.moveDown) + self.updateText() + + def left(self): + self["loglist"].instance.moveSelection(self["loglist"].instance.pageUp) + self.updateText() + + def right(self): + self["loglist"].instance.moveSelection(self["loglist"].instance.pageDown) + self.updateText() + + def updateText(self): + if self.list: + self["logentry"].setText(str(self["loglist"].getCurrent()[1][2])) + else: + self["logentry"].setText("") diff --git a/lib/python/Screens/TimerSelection.py b/lib/python/Screens/TimerSelection.py new file mode 100644 index 0000000..64de776 --- /dev/null +++ b/lib/python/Screens/TimerSelection.py @@ -0,0 +1,25 @@ +from Screen import Screen +from Components.TimerList import TimerList +from Components.ActionMap import ActionMap + +class TimerSelection(Screen): + def __init__(self, session, list): + Screen.__init__(self, session) + self.setTitle(_("Timer selection")) + + self.list = list + + self["timerlist"] = TimerList(self.list) + + self["actions"] = ActionMap(["OkCancelActions"], + { + "ok": self.selected, + "cancel": self.leave, + }, -1) + + + def leave(self): + self.close(None) + + def selected(self): + self.close(self["timerlist"].getCurrentIndex()) diff --git a/lib/python/Screens/UnhandledKey.py b/lib/python/Screens/UnhandledKey.py new file mode 100644 index 0000000..63bfed5 --- /dev/null +++ b/lib/python/Screens/UnhandledKey.py @@ -0,0 +1,7 @@ +from Screen import Screen +from Components.Pixmap import Pixmap + +class UnhandledKey(Screen): + def __init__(self, session): + Screen.__init__(self, session) + self["UnhandledKeyPixmap"] = Pixmap() diff --git a/lib/python/Screens/VirtualKeyBoard.py b/lib/python/Screens/VirtualKeyBoard.py new file mode 100644 index 0000000..ca0978d --- /dev/null +++ b/lib/python/Screens/VirtualKeyBoard.py @@ -0,0 +1,418 @@ +# -*- coding: UTF-8 -*- +from enigma import eListboxPythonMultiContent, gFont, RT_HALIGN_CENTER, RT_VALIGN_CENTER, getPrevAsciiCode +from Screen import Screen +from Components.Language import language +from Components.ActionMap import NumberActionMap +from Components.Sources.StaticText import StaticText +from Components.Input import Input +from Components.Label import Label +from Components.Pixmap import Pixmap +from Components.MenuList import MenuList +from Components.MultiContent import MultiContentEntryText, MultiContentEntryPixmapAlphaTest +from Tools.Directories import resolveFilename, SCOPE_CURRENT_SKIN +from Tools.LoadPixmap import LoadPixmap +from Tools.NumericalTextInput import NumericalTextInput + +class VirtualKeyBoardList(MenuList): + def __init__(self, list, enableWrapAround=False): + MenuList.__init__(self, list, enableWrapAround, eListboxPythonMultiContent) + self.l.setFont(0, gFont("Regular", 28)) + self.l.setItemHeight(45) + +class VirtualKeyBoardEntryComponent: + pass + +class VirtualKeyBoard(Screen): + + def __init__(self, session, title="", **kwargs): + Screen.__init__(self, session) + self.keys_list = [] + self.shiftkeys_list = [] + self.lang = language.getLanguage() + self.nextLang = None + self.shiftMode = False + self.selectedKey = 0 + self.smsChar = None + self.sms = NumericalTextInput(self.smsOK) + + self.key_bg = LoadPixmap(path=resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/vkey_bg.png")) + self.key_sel = LoadPixmap(path=resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/vkey_sel.png")) + self.key_backspace = LoadPixmap(path=resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/vkey_backspace.png")) + self.key_all = LoadPixmap(path=resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/vkey_all.png")) + self.key_clr = LoadPixmap(path=resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/vkey_clr.png")) + self.key_esc = LoadPixmap(path=resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/vkey_esc.png")) + self.key_ok = LoadPixmap(path=resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/vkey_ok.png")) + self.key_shift = LoadPixmap(path=resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/vkey_shift.png")) + self.key_shift_sel = LoadPixmap(path=resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/vkey_shift_sel.png")) + self.key_space = LoadPixmap(path=resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/vkey_space.png")) + self.key_left = LoadPixmap(path=resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/vkey_left.png")) + self.key_right = LoadPixmap(path=resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/vkey_right.png")) + + self.keyImages = { + "BACKSPACE": self.key_backspace, + "ALL": self.key_all, + "EXIT": self.key_esc, + "OK": self.key_ok, + "SHIFT": self.key_shift, + "SPACE": self.key_space, + "LEFT": self.key_left, + "RIGHT": self.key_right + } + self.keyImagesShift = { + "BACKSPACE": self.key_backspace, + "CLEAR": self.key_clr, + "EXIT": self.key_esc, + "OK": self.key_ok, + "SHIFT": self.key_shift_sel, + "SPACE": self.key_space, + "LEFT": self.key_left, + "RIGHT": self.key_right + } + + self["country"] = StaticText("") + self["header"] = Label(title) + self["text"] = Input(currPos=len(kwargs.get("text", "").decode("utf-8",'ignore')), allMarked=False, **kwargs) + self["list"] = VirtualKeyBoardList([]) + + self["actions"] = NumberActionMap(["OkCancelActions", "WizardActions", "ColorActions", "KeyboardInputActions", "InputBoxActions", "InputAsciiActions"], + { + "gotAsciiCode": self.keyGotAscii, + "ok": self.okClicked, + "cancel": self.exit, + "left": self.left, + "right": self.right, + "up": self.up, + "down": self.down, + "red": self.exit, + "green": self.ok, + "yellow": self.switchLang, + "blue": self.shiftClicked, + "deleteBackward": self.backClicked, + "deleteForward": self.forwardClicked, + "back": self.exit, + "pageUp": self.cursorRight, + "pageDown": self.cursorLeft, + "1": self.keyNumberGlobal, + "2": self.keyNumberGlobal, + "3": self.keyNumberGlobal, + "4": self.keyNumberGlobal, + "5": self.keyNumberGlobal, + "6": self.keyNumberGlobal, + "7": self.keyNumberGlobal, + "8": self.keyNumberGlobal, + "9": self.keyNumberGlobal, + "0": self.keyNumberGlobal, + }, -2) + self.setLang() + self.onExecBegin.append(self.setKeyboardModeAscii) + self.onLayoutFinish.append(self.buildVirtualKeyBoard) + self.onClose.append(self.__onClose) + + def __onClose(self): + self.sms.timer.stop() + + def switchLang(self): + self.lang = self.nextLang + self.setLang() + self.buildVirtualKeyBoard() + + def setLang(self): + if self.lang == 'de_DE': + self.keys_list = [ + [u"EXIT", u"1", u"2", u"3", u"4", u"5", u"6", u"7", u"8", u"9", u"0", u"BACKSPACE"], + [u"q", u"w", u"e", u"r", u"t", u"z", u"u", u"i", u"o", u"p", u"ü", u"+"], + [u"a", u"s", u"d", u"f", u"g", u"h", u"j", u"k", u"l", u"ö", u"ä", u"#"], + [u"<", u"y", u"x", u"c", u"v", u"b", u"n", u"m", u",", ".", u"-", u"ALL"], + [u"SHIFT", u"SPACE", u"@", u"ß", u"OK", u"LEFT", u"RIGHT"]] + self.shiftkeys_list = [ + [u"EXIT", u"!", u'"', u"§", u"$", u"%", u"&", u"/", u"(", u")", u"=", u"BACKSPACE"], + [u"Q", u"W", u"E", u"R", u"T", u"Z", u"U", u"I", u"O", u"P", u"Ãœ", u"*"], + [u"A", u"S", u"D", u"F", u"G", u"H", u"J", u"K", u"L", u"Ö", u"Ä", u"'"], + [u">", u"Y", u"X", u"C", u"V", u"B", u"N", u"M", u";", u":", u"_", u"CLEAR"], + [u"SHIFT", u"SPACE", u"?", u"\\", u"OK", u"LEFT", u"RIGHT"]] + self.nextLang = 'es_ES' + elif self.lang == 'es_ES': + #still missing keys (u"ùÙ") + self.keys_list = [ + [u"EXIT", u"1", u"2", u"3", u"4", u"5", u"6", u"7", u"8", u"9", u"0", u"BACKSPACE"], + [u"q", u"w", u"e", u"r", u"t", u"z", u"u", u"i", u"o", u"p", u"ú", u"+"], + [u"a", u"s", u"d", u"f", u"g", u"h", u"j", u"k", u"l", u"ó", u"á", u"#"], + [u"<", u"y", u"x", u"c", u"v", u"b", u"n", u"m", u",", ".", u"-", u"ALL"], + [u"SHIFT", u"SPACE", u"@", u"Å", u"Å•", u"é", u"Ä", u"í", u"Ä›", u"Å„", u"ň", u"OK"]] + self.shiftkeys_list = [ + [u"EXIT", u"!", u'"', u"§", u"$", u"%", u"&", u"/", u"(", u")", u"=", u"BACKSPACE"], + [u"Q", u"W", u"E", u"R", u"T", u"Z", u"U", u"I", u"O", u"P", u"Ú", u"*"], + [u"A", u"S", u"D", u"F", u"G", u"H", u"J", u"K", u"L", u"Ó", u"Ã", u"'"], + [u">", u"Y", u"X", u"C", u"V", u"B", u"N", u"M", u";", u":", u"_", u"CLEAR"], + [u"SHIFT", u"SPACE", u"?", u"\\", u"Å”", u"É", u"ÄŒ", u"Ã", u"Äš", u"Ń", u"Ň", u"OK"]] + self.nextLang = 'fi_FI' + elif self.lang == 'fi_FI': + self.keys_list = [ + [u"EXIT", u"1", u"2", u"3", u"4", u"5", u"6", u"7", u"8", u"9", u"0", u"BACKSPACE"], + [u"q", u"w", u"e", u"r", u"t", u"z", u"u", u"i", u"o", u"p", u"é", u"+"], + [u"a", u"s", u"d", u"f", u"g", u"h", u"j", u"k", u"l", u"ö", u"ä", u"#"], + [u"<", u"y", u"x", u"c", u"v", u"b", u"n", u"m", u",", ".", u"-", u"ALL"], + [u"SHIFT", u"SPACE", u"@", u"ß", u"ĺ", u"OK", u"LEFT", u"RIGHT"]] + self.shiftkeys_list = [ + [u"EXIT", u"!", u'"', u"§", u"$", u"%", u"&", u"/", u"(", u")", u"=", u"BACKSPACE"], + [u"Q", u"W", u"E", u"R", u"T", u"Z", u"U", u"I", u"O", u"P", u"É", u"*"], + [u"A", u"S", u"D", u"F", u"G", u"H", u"J", u"K", u"L", u"Ö", u"Ä", u"'"], + [u">", u"Y", u"X", u"C", u"V", u"B", u"N", u"M", u";", u":", u"_", u"CLEAR"], + [u"SHIFT", u"SPACE", u"?", u"\\", u"Ĺ", u"OK", u"LEFT", u"RIGHT"]] + self.nextLang = 'ru_RU' + elif self.lang == 'ru_RU': + self.keys_list = [ + [u"EXIT", u"1", u"2", u"3", u"4", u"5", u"6", u"7", u"8", u"9", u"0", u"BACKSPACE"], + [u"а", u"б", u"в", u"г", u"д", u"е", u"Ñ‘", u"ж", u"з", u"и", u"й", u"+"], + [u"к", u"л", u"м", u"н", u"о", u"п", u"Ñ€", u"Ñ", u"Ñ‚", u"у", u"Ñ„", u"#"], + [u"<", u"Ñ…", u"ц", u"ч", u"ш", u"щ", u"ÑŠ", u"Ñ‹", u",", u".", u"-", u"ALL"], + [u"SHIFT", u"SPACE", u"@", u"ÑŒ", u"Ñ", u"ÑŽ", u"Ñ", u"OK", u"LEFT", u"RIGHT"]] + self.shiftkeys_list = [ + [u"EXIT", u"!", u'"', u"§", u"$", u"%", u"&", u"/", u"(", u")", u"=", u"BACKSPACE"], + [u"Ð", u"Б", u"Ð’", u"Г", u"Д", u"Е", u"Ð", u"Ж", u"З", u"И", u"Й", u"*"], + [u"К", u"Л", u"Ðœ", u"Ð", u"О", u"П", u"Р", u"С", u"Т", u"У", u"Ф", u"'"], + [u">", u"Ð¥", u"Ц", u"Ч", u"Ш", u"Щ", u"Ъ", u"Ы", u";", u":", u"_", u"CLEAR"], + [u"SHIFT", u"SPACE", u"?", u"\\", u"Ь", u"Э", u"Ю", u"Я", u"OK", u"LEFT", u"RIGHT"]] + self.nextLang = 'sv_SE' + elif self.lang == 'sv_SE': + self.keys_list = [ + [u"EXIT", u"1", u"2", u"3", u"4", u"5", u"6", u"7", u"8", u"9", u"0", u"BACKSPACE"], + [u"q", u"w", u"e", u"r", u"t", u"z", u"u", u"i", u"o", u"p", u"é", u"+"], + [u"a", u"s", u"d", u"f", u"g", u"h", u"j", u"k", u"l", u"ö", u"ä", u"#"], + [u"<", u"y", u"x", u"c", u"v", u"b", u"n", u"m", u",", ".", u"-", u"ALL"], + [u"SHIFT", u"SPACE", u"@", u"ß", u"ĺ", u"OK", u"LEFT", u"RIGHT"]] + self.shiftkeys_list = [ + [u"EXIT", u"!", u'"', u"§", u"$", u"%", u"&", u"/", u"(", u")", u"=", u"BACKSPACE"], + [u"Q", u"W", u"E", u"R", u"T", u"Z", u"U", u"I", u"O", u"P", u"É", u"*"], + [u"A", u"S", u"D", u"F", u"G", u"H", u"J", u"K", u"L", u"Ö", u"Ä", u"'"], + [u">", u"Y", u"X", u"C", u"V", u"B", u"N", u"M", u";", u":", u"_", u"CLEAR"], + [u"SHIFT", u"SPACE", u"?", u"\\", u"Ĺ", u"OK", u"LEFT", u"RIGHT"]] + self.nextLang = 'sk_SK' + elif self.lang =='sk_SK': + self.keys_list = [ + [u"EXIT", u"1", u"2", u"3", u"4", u"5", u"6", u"7", u"8", u"9", u"0", u"BACKSPACE"], + [u"q", u"w", u"e", u"r", u"t", u"z", u"u", u"i", u"o", u"p", u"ú", u"+"], + [u"a", u"s", u"d", u"f", u"g", u"h", u"j", u"k", u"l", u"ľ", u"@", u"#"], + [u"<", u"y", u"x", u"c", u"v", u"b", u"n", u"m", u",", ".", u"-", u"ALL"], + [u"SHIFT", u"SPACE", u"Å¡", u"Ä", u"ž", u"ý", u"á", u"í", u"é", u"OK", u"LEFT", u"RIGHT"]] + self.shiftkeys_list = [ + [u"EXIT", u"!", u'"', u"§", u"$", u"%", u"&", u"/", u"(", u")", u"=", u"BACKSPACE"], + [u"Q", u"W", u"E", u"R", u"T", u"Z", u"U", u"I", u"O", u"P", u"Å¥", u"*"], + [u"A", u"S", u"D", u"F", u"G", u"H", u"J", u"K", u"L", u"ň", u"Ä", u"'"], + [u"Ã", u"É", u"ÄŽ", u"Ã", u"Ã", u"Ó", u"Ú", u"Ž", u"Å ", u"ÄŒ", u"Ť", u"Ň"], + [u">", u"Y", u"X", u"C", u"V", u"B", u"N", u"M", u";", u":", u"_", u"CLEAR"], + [u"SHIFT", u"SPACE", u"?", u"\\", u"ä", u"ö", u"ü", u"ô", u"Å•", u"ĺ", u"OK"]] + self.nextLang = 'cs_CZ' + elif self.lang == 'cs_CZ': + self.keys_list = [ + [u"EXIT", u"1", u"2", u"3", u"4", u"5", u"6", u"7", u"8", u"9", u"0", u"BACKSPACE"], + [u"q", u"w", u"e", u"r", u"t", u"z", u"u", u"i", u"o", u"p", u"ú", u"+"], + [u"a", u"s", u"d", u"f", u"g", u"h", u"j", u"k", u"l", u"ů", u"@", u"#"], + [u"<", u"y", u"x", u"c", u"v", u"b", u"n", u"m", u",", ".", u"-", u"ALL"], + [u"SHIFT", u"SPACE", u"Ä›", u"Å¡", u"Ä", u"Å™", u"ž", u"ý", u"á", u"í", u"é", u"OK"]] + self.shiftkeys_list = [ + [u"EXIT", u"!", u'"', u"§", u"$", u"%", u"&", u"/", u"(", u")", u"=", u"BACKSPACE"], + [u"Q", u"W", u"E", u"R", u"T", u"Z", u"U", u"I", u"O", u"P", u"Å¥", u"*"], + [u"A", u"S", u"D", u"F", u"G", u"H", u"J", u"K", u"L", u"ň", u"Ä", u"'"], + [u">", u"Y", u"X", u"C", u"V", u"B", u"N", u"M", u";", u":", u"_", u"CLEAR"], + [u"SHIFT", u"SPACE", u"?", u"\\", u"ÄŒ", u"Ř", u"Å ", u"Ž", u"Ú", u"Ã", u"É", u"OK"]] + self.nextLang = 'el_GR' + elif self.lang == 'el_GR': + self.keys_list = [ + [u"EXIT", u"1", u"2", u"3", u"4", u"5", u"6", u"7", u"8", u"9", u"0", u"BACKSPACE"], + [u"=", u"Ï‚", u"ε", u"Ï", u"Ï„", u"Ï…", u"θ", u"ι", u"ο", u"Ï€", u"[", u"]"], + [u"α", u"σ", u"δ", u"φ", u"γ", u"η", u"ξ", u"κ", u"λ", u";", u"'", u"-"], + [u"\\", u"ζ", u"χ", u"ψ", u"ω", u"β", u"ν", u"μ", u",", ".", u"/", u"ALL"], + [u"SHIFT", u"SPACE", u"ά", u"έ", u"ή", u"ί", u"ÏŒ", u"Ï", u"ÏŽ", u"ÏŠ", u"Ï‹", u"OK"]] + self.shiftkeys_list = [ + [u"EXIT", u"!", u"@", u"#", u"$", u"%", u"^", u"&", u"*", u"(", u")", u"BACKSPACE"], + [u"+", u"€", u"Ε", u"Ρ", u"Τ", u"Î¥", u"Θ", u"Ι", u"Ο", u"Π", u"{", u"}"], + [u"Α", u"Σ", u"Δ", u"Φ", u"Γ", u"Η", u"Ξ", u"Κ", u"Λ", u":", u'"', u"_"], + [u"|", u"Ζ", u"Χ", u"Ψ", u"Ω", u"Î’", u"Î", u"Îœ", u"<", u">", u"?", u"CLEAR"], + [u"SHIFT", u"SPACE", u"Ά", u"Έ", u"Ή", u"Ί", u"ÎŒ", u"ÎŽ", u"Î", u"Ϊ", u"Ϋ", u"OK"]] + self.nextLang = 'pl_PL' + elif self.lang == 'pl_PL': + self.keys_list = [ + [u"EXIT", u"1", u"2", u"3", u"4", u"5", u"6", u"7", u"8", u"9", u"0", u"BACKSPACE"], + [u"q", u"w", u"e", u"r", u"t", u"y", u"u", u"i", u"o", u"p", u"-", u"["], + [u"a", u"s", u"d", u"f", u"g", u"h", u"j", u"k", u"l", u";", u"'", u"\\"], + [u"<", u"z", u"x", u"c", u"v", u"b", u"n", u"m", u",", ".", u"/", u"ALL"], + [u"SHIFT", u"SPACE", u"Ä…", u"ć", u"Ä™", u"Å‚", u"Å„", u"ó", u"Å›", u"ź", u"ż", u"OK"]] + self.shiftkeys_list = [ + [u"EXIT", u"!", u"@", u"#", u"$", u"%", u"^", u"&", u"(", u")", u"=", u"BACKSPACE"], + [u"Q", u"W", u"E", u"R", u"T", u"Y", u"U", u"I", u"O", u"P", u"*", u"]"], + [u"A", u"S", u"D", u"F", u"G", u"H", u"J", u"K", u"L", u"?", u'"', u"|"], + [u">", u"Z", u"X", u"C", u"V", u"B", u"N", u"M", u";", u":", u"_", u"CLEAR"], + [u"SHIFT", u"SPACE", u"Ä„", u"Ć", u"Ę", u"Å", u"Ń", u"Ó", u"Åš", u"Ź", u"Å»", u"OK"]] + self.nextLang = 'en_EN' + else: + self.keys_list = [ + [u"EXIT", u"1", u"2", u"3", u"4", u"5", u"6", u"7", u"8", u"9", u"0", u"BACKSPACE"], + [u"q", u"w", u"e", u"r", u"t", u"y", u"u", u"i", u"o", u"p", u"-", u"["], + [u"a", u"s", u"d", u"f", u"g", u"h", u"j", u"k", u"l", u";", u"'", u"\\"], + [u"<", u"z", u"x", u"c", u"v", u"b", u"n", u"m", u",", ".", u"/", u"ALL"], + [u"SHIFT", u"SPACE", u"OK", u"LEFT", u"RIGHT", u"*"]] + self.shiftkeys_list = [ + [u"EXIT", u"!", u"@", u"#", u"$", u"%", u"^", u"&", u"(", u")", u"=", u"BACKSPACE"], + [u"Q", u"W", u"E", u"R", u"T", u"Y", u"U", u"I", u"O", u"P", u"+", u"]"], + [u"A", u"S", u"D", u"F", u"G", u"H", u"J", u"K", u"L", u"?", u'"', u"|"], + [u">", u"Z", u"X", u"C", u"V", u"B", u"N", u"M", u";", u":", u"_", u"CLEAR"], + [u"SHIFT", u"SPACE", u"OK", u"LEFT", u"RIGHT", u"~"]] + self.lang = 'en_EN' + self.nextLang = 'de_DE' + self["country"].setText(self.lang) + self.max_key=47+len(self.keys_list[4]) + + def virtualKeyBoardEntryComponent(self, keys): + key_bg_width = self.key_bg and self.key_bg.size().width() or 45 + key_images = self.shiftMode and self.keyImagesShift or self.keyImages + res = [(keys)] + text = [] + x = 0 + for key in keys: + png = key_images.get(key, None) + if png: + width = png.size().width() + res.append(MultiContentEntryPixmapAlphaTest(pos=(x, 0), size=(width, 45), png=png)) + else: + width = key_bg_width + res.append(MultiContentEntryPixmapAlphaTest(pos=(x, 0), size=(width, 45), png=self.key_bg)) + text.append(MultiContentEntryText(pos=(x, 0), size=(width, 45), font=0, text=key.encode("utf-8"), flags=RT_HALIGN_CENTER | RT_VALIGN_CENTER)) + x += width + return res + text + + def buildVirtualKeyBoard(self): + self.previousSelectedKey = None + self.list = [] + for keys in self.shiftMode and self.shiftkeys_list or self.keys_list: + self.list.append(self.virtualKeyBoardEntryComponent(keys)) + self.markSelectedKey() + + def markSelectedKey(self): + if self.previousSelectedKey is not None: + self.list[self.previousSelectedKey /12] = self.list[self.previousSelectedKey /12][:-1] + width = self.key_sel.size().width() + x = self.list[self.selectedKey/12][self.selectedKey % 12 + 1][1] + self.list[self.selectedKey / 12].append(MultiContentEntryPixmapAlphaTest(pos=(x, 0), size=(width, 45), png=self.key_sel)) + self.previousSelectedKey = self.selectedKey + self["list"].setList(self.list) + + def backClicked(self): + self["text"].deleteBackward() + + def forwardClicked(self): + self["text"].deleteForward() + + def shiftClicked(self): + self.smsChar = None + self.shiftMode = not self.shiftMode + self.buildVirtualKeyBoard() + + def okClicked(self): + self.smsChar = None + text = (self.shiftMode and self.shiftkeys_list or self.keys_list)[self.selectedKey / 12][self.selectedKey % 12].encode("UTF-8") + + if text == "EXIT": + self.close(None) + + elif text == "BACKSPACE": + self["text"].deleteBackward() + + elif text == "ALL": + self["text"].markAll() + + elif text == "CLEAR": + self["text"].deleteAllChars() + self["text"].update() + + elif text == "SHIFT": + self.shiftClicked() + + elif text == "SPACE": + self["text"].char(" ".encode("UTF-8")) + + elif text == "OK": + self.close(self["text"].getText().encode("UTF-8")) + + elif text == "LEFT": + self["text"].left() + + elif text == "RIGHT": + self["text"].right() + + else: + self["text"].char(text) + + def ok(self): + self.close(self["text"].getText().encode("UTF-8")) + + def exit(self): + self.close(None) + + def cursorRight(self): + self["text"].right() + + def cursorLeft(self): + self["text"].left() + + def left(self): + self.smsChar = None + self.selectedKey = self.selectedKey / 12 * 12 + (self.selectedKey + 11) % 12 + if self.selectedKey > self.max_key: + self.selectedKey = self.max_key + self.markSelectedKey() + + def right(self): + self.smsChar = None + self.selectedKey = self.selectedKey / 12 * 12 + (self.selectedKey + 1) % 12 + if self.selectedKey > self.max_key: + self.selectedKey = self.selectedKey / 12 * 12 + self.markSelectedKey() + + def up(self): + self.smsChar = None + self.selectedKey -= 12 + if self.selectedKey < 0: + self.selectedKey = self.max_key / 12 * 12 + self.selectedKey % 12 + if self.selectedKey > self.max_key: + self.selectedKey -= 12 + self.markSelectedKey() + + def down(self): + self.smsChar = None + self.selectedKey += 12 + if self.selectedKey > self.max_key: + self.selectedKey = self.selectedKey % 12 + self.markSelectedKey() + + def keyNumberGlobal(self, number): + self.smsChar = self.sms.getKey(number) + self.selectAsciiKey(self.smsChar) + + def smsOK(self): + if self.smsChar and self.selectAsciiKey(self.smsChar): + print "pressing ok now" + self.okClicked() + + def keyGotAscii(self): + self.smsChar = None + if self.selectAsciiKey(str(unichr(getPrevAsciiCode()).encode('utf-8'))): + self.okClicked() + + def selectAsciiKey(self, char): + if char == " ": + char = "SPACE" + for keyslist in (self.shiftkeys_list, self.keys_list): + selkey = 0 + for keys in keyslist: + for key in keys: + if key == char: + self.selectedKey = selkey + if self.shiftMode != (keyslist is self.shiftkeys_list): + self.shiftMode = not self.shiftMode + self.buildVirtualKeyBoard() + else: + self.markSelectedKey() + return True + selkey += 1 + return False diff --git a/lib/python/Screens/Volume.py b/lib/python/Screens/Volume.py new file mode 100644 index 0000000..12e03d1 --- /dev/null +++ b/lib/python/Screens/Volume.py @@ -0,0 +1,14 @@ +from Screen import Screen +from Components.VolumeBar import VolumeBar + +class Volume(Screen): + def __init__(self, session): + Screen.__init__(self, session) + + self.volumeBar = VolumeBar() + + self["Volume"] = self.volumeBar + + def setValue(self, vol): + print "setValue", vol + self.volumeBar.setValue(vol) diff --git a/lib/python/Screens/Wizard.py b/lib/python/Screens/Wizard.py new file mode 100644 index 0000000..0091631 --- /dev/null +++ b/lib/python/Screens/Wizard.py @@ -0,0 +1,678 @@ +from Screen import Screen +from Screens.HelpMenu import HelpableScreen +from Screens.MessageBox import MessageBox +from Components.config import config, ConfigText, ConfigPassword, KEY_LEFT, KEY_RIGHT, KEY_HOME, KEY_END, KEY_0, KEY_DELETE, KEY_BACKSPACE, KEY_OK, KEY_TOGGLEOW, KEY_ASCII, KEY_TIMEOUT, KEY_NUMBERS + +from Components.Label import Label +from Components.Sources.StaticText import StaticText +from Components.Slider import Slider +from Components.ActionMap import NumberActionMap +from Components.MenuList import MenuList +from Components.ConfigList import ConfigList +from Components.Sources.List import List +from enigma import eTimer, eEnv + +from xml.sax import make_parser +from xml.sax.handler import ContentHandler + +class WizardSummary(Screen): + def __init__(self, session, parent): + Screen.__init__(self, session, parent) + self["text"] = StaticText("") + self.onShow.append(self.setCallback) + + def setCallback(self): + self.parent.setLCDTextCallback(self.setText) + + def setText(self, text): + self["text"].setText(text) + +class Wizard(Screen): + instance = None + + def createSummary(self): + print "WizardCreateSummary" + return WizardSummary + + class parseWizard(ContentHandler): + def __init__(self, wizard): + self.isPointsElement, self.isReboundsElement = 0, 0 + self.wizard = wizard + self.currContent = "" + self.lastStep = 0 + + def startElement(self, name, attrs): + #print "startElement", name + self.currContent = name + if (name == "step"): + self.lastStep += 1 + if attrs.has_key('id'): + id = str(attrs.get('id')) + else: + id = "" + #print "id:", id + if attrs.has_key('nextstep'): + nextstep = str(attrs.get('nextstep')) + else: + nextstep = None + if attrs.has_key('timeout'): + timeout = int(attrs.get('timeout')) + else: + timeout = None + if attrs.has_key('timeoutaction'): + timeoutaction = str(attrs.get('timeoutaction')) + else: + timeoutaction = 'nextpage' + + if attrs.has_key('timeoutstep'): + timeoutstep = str(attrs.get('timeoutstep')) + else: + timeoutstep = '' + self.wizard[self.lastStep] = {"id": id, "condition": "", "text": "", "timeout": timeout, "timeoutaction": timeoutaction, "timeoutstep": timeoutstep, "list": [], "config": {"screen": None, "args": None, "type": "" }, "code": "", "codeafter": "", "code_async": "", "codeafter_async": "", "nextstep": nextstep} + if attrs.has_key('laststep'): + self.wizard[self.lastStep]["laststep"] = str(attrs.get('laststep')) + elif (name == "text"): + self.wizard[self.lastStep]["text"] = str(attrs.get('value')).replace("\\n", "\n") + elif (name == "displaytext"): + self.wizard[self.lastStep]["displaytext"] = str(attrs.get('value')).replace("\\n", "\n") + elif (name == "list"): + if (attrs.has_key('type')): + if attrs["type"] == "dynamic": + self.wizard[self.lastStep]["dynamiclist"] = attrs.get("source") + #self.wizard[self.lastStep]["list"].append(("Hallo", "test")) + if (attrs.has_key("evaluation")): + #print "evaluation" + self.wizard[self.lastStep]["listevaluation"] = attrs.get("evaluation") + if (attrs.has_key("onselect")): + self.wizard[self.lastStep]["onselect"] = attrs.get("onselect") + elif (name == "listentry"): + self.wizard[self.lastStep]["list"].append((str(attrs.get('caption')), str(attrs.get('step')))) + elif (name == "config"): + type = str(attrs.get('type')) + self.wizard[self.lastStep]["config"]["type"] = type + if type == "ConfigList" or type == "standalone": + try: + exec "from Screens." + str(attrs.get('module')) + " import *" + except: + exec "from " + str(attrs.get('module')) + " import *" + + self.wizard[self.lastStep]["config"]["screen"] = eval(str(attrs.get('screen'))) + if (attrs.has_key('args')): + #print "has args" + self.wizard[self.lastStep]["config"]["args"] = str(attrs.get('args')) + elif type == "dynamic": + self.wizard[self.lastStep]["config"]["source"] = str(attrs.get('source')) + if (attrs.has_key('evaluation')): + self.wizard[self.lastStep]["config"]["evaluation"] = str(attrs.get('evaluation')) + elif (name == "code"): + self.async_code = attrs.has_key('async') and str(attrs.get('async')) == "yes" + if attrs.has_key('pos') and str(attrs.get('pos')) == "after": + self.codeafter = True + else: + self.codeafter = False + elif (name == "condition"): + pass + + def endElement(self, name): + self.currContent = "" + if name == 'code': + if self.async_code: + if self.codeafter: + self.wizard[self.lastStep]["codeafter_async"] = self.wizard[self.lastStep]["codeafter_async"].strip() + else: + self.wizard[self.lastStep]["code_async"] = self.wizard[self.lastStep]["code_async"].strip() + else: + if self.codeafter: + self.wizard[self.lastStep]["codeafter"] = self.wizard[self.lastStep]["codeafter"].strip() + else: + self.wizard[self.lastStep]["code"] = self.wizard[self.lastStep]["code"].strip() + elif name == 'condition': + self.wizard[self.lastStep]["condition"] = self.wizard[self.lastStep]["condition"].strip() + elif name == 'step': + #print "Step number", self.lastStep, ":", self.wizard[self.lastStep] + pass + + def characters(self, ch): + if self.currContent == "code": + if self.async_code: + if self.codeafter: + self.wizard[self.lastStep]["codeafter_async"] = self.wizard[self.lastStep]["codeafter_async"] + ch + else: + self.wizard[self.lastStep]["code_async"] = self.wizard[self.lastStep]["code_async"] + ch + else: + if self.codeafter: + self.wizard[self.lastStep]["codeafter"] = self.wizard[self.lastStep]["codeafter"] + ch + else: + self.wizard[self.lastStep]["code"] = self.wizard[self.lastStep]["code"] + ch + elif self.currContent == "condition": + self.wizard[self.lastStep]["condition"] = self.wizard[self.lastStep]["condition"] + ch + + def __init__(self, session, showSteps = True, showStepSlider = True, showList = True, showConfig = True): + Screen.__init__(self, session) + + self.isLastWizard = False # can be used to skip a "goodbye"-screen in a wizard + + self.stepHistory = [] + + self.wizard = {} + parser = make_parser() + if not isinstance(self.xmlfile, list): + self.xmlfile = [self.xmlfile] + print "Reading ", self.xmlfile + wizardHandler = self.parseWizard(self.wizard) + parser.setContentHandler(wizardHandler) + for xmlfile in self.xmlfile: + if xmlfile[0] != '/': + parser.parse(eEnv.resolve('${datadir}/enigma2/') + xmlfile) + else: + parser.parse(xmlfile) + + self.showSteps = showSteps + self.showStepSlider = showStepSlider + self.showList = showList + self.showConfig = showConfig + + self.numSteps = len(self.wizard) + self.currStep = self.getStepWithID("start") + 1 + + self.timeoutTimer = eTimer() + self.timeoutTimer.callback.append(self.timeoutCounterFired) + + self["text"] = Label() + + if showConfig: + self["config"] = ConfigList([], session = session) + + if self.showSteps: + self["step"] = Label() + + if self.showStepSlider: + self["stepslider"] = Slider(1, self.numSteps) + + if self.showList: + self.list = [] + self["list"] = List(self.list, enableWrapAround = True) + self["list"].onSelectionChanged.append(self.selChanged) + #self["list"] = MenuList(self.list, enableWrapAround = True) + + self.onShown.append(self.updateValues) + + self.configInstance = None + self.currentConfigIndex = None + + Wizard.instance = self + + self.lcdCallbacks = [] + + self.disableKeys = False + + self["actions"] = NumberActionMap(["WizardActions", "NumberActions", "ColorActions", "SetupActions", "InputAsciiActions", "KeyboardInputActions"], + { + "gotAsciiCode": self.keyGotAscii, + "ok": self.ok, + "back": self.back, + "left": self.left, + "right": self.right, + "up": self.up, + "down": self.down, + "red": self.red, + "green": self.green, + "yellow": self.yellow, + "blue":self.blue, + "deleteBackward": self.deleteBackward, + "deleteForward": self.deleteForward, + "1": self.keyNumberGlobal, + "2": self.keyNumberGlobal, + "3": self.keyNumberGlobal, + "4": self.keyNumberGlobal, + "5": self.keyNumberGlobal, + "6": self.keyNumberGlobal, + "7": self.keyNumberGlobal, + "8": self.keyNumberGlobal, + "9": self.keyNumberGlobal, + "0": self.keyNumberGlobal + }, -1) + + self["VirtualKB"] = NumberActionMap(["VirtualKeyboardActions"], + { + "showVirtualKeyboard": self.KeyText, + }, -2) + + self["VirtualKB"].setEnabled(False) + + def red(self): + print "red" + pass + + def green(self): + print "green" + pass + + def yellow(self): + print "yellow" + pass + + def blue(self): + print "blue" + pass + + def deleteForward(self): + self.resetCounter() + if (self.wizard[self.currStep]["config"]["screen"] != None): + self.configInstance.keyDelete() + elif (self.wizard[self.currStep]["config"]["type"] == "dynamic"): + self["config"].handleKey(KEY_DELETE) + print "deleteForward" + + def deleteBackward(self): + self.resetCounter() + if (self.wizard[self.currStep]["config"]["screen"] != None): + self.configInstance.keyBackspace() + elif (self.wizard[self.currStep]["config"]["type"] == "dynamic"): + self["config"].handleKey(KEY_BACKSPACE) + print "deleteBackward" + + def setLCDTextCallback(self, callback): + self.lcdCallbacks.append(callback) + + def back(self): + if self.disableKeys: + return + print "getting back..." + print "stepHistory:", self.stepHistory + if len(self.stepHistory) > 1: + self.currStep = self.stepHistory[-2] + self.stepHistory = self.stepHistory[:-2] + else: + self.session.openWithCallback(self.exitWizardQuestion, MessageBox, (_("Are you sure you want to exit this wizard?") ) ) + if self.currStep < 1: + self.currStep = 1 + print "currStep:", self.currStep + print "new stepHistory:", self.stepHistory + self.updateValues() + print "after updateValues stepHistory:", self.stepHistory + + def exitWizardQuestion(self, ret = False): + if (ret): + self.markDone() + self.exit() + + def markDone(self): + pass + + def exit(self): + Wizard.instance = None + self.close() + + def getStepWithID(self, id): + print "getStepWithID:", id + count = 0 + for x in self.wizard.keys(): + if self.wizard[x]["id"] == id: + print "result:", count + return count + count += 1 + print "result: nothing" + return 0 + + def finished(self, gotoStep = None, *args, **kwargs): + print "finished" + currStep = self.currStep + + if self.updateValues not in self.onShown: + self.onShown.append(self.updateValues) + + if self.showConfig: + if self.wizard[currStep]["config"]["type"] == "dynamic": + eval("self." + self.wizard[currStep]["config"]["evaluation"])() + + if self.showList: + if (len(self.wizard[currStep]["evaluatedlist"]) > 0): + print "current:", self["list"].current + nextStep = self["list"].current[1] + if (self.wizard[currStep].has_key("listevaluation")): + exec("self." + self.wizard[self.currStep]["listevaluation"] + "('" + nextStep + "')") + else: + self.currStep = self.getStepWithID(nextStep) + + print_now = True + if ((currStep == self.numSteps and self.wizard[currStep]["nextstep"] is None) or self.wizard[currStep]["id"] == "end"): # wizard finished + print "wizard finished" + self.markDone() + self.exit() + else: + self.codeafter = True + self.runCode(self.wizard[currStep]["codeafter"]) + self.prevStep = currStep + self.gotoStep = gotoStep + if not self.runCode(self.wizard[currStep]["codeafter_async"]): + self.afterAsyncCode() + else: + if self.updateValues in self.onShown: + self.onShown.remove(self.updateValues) + + if print_now: + print "Now: " + str(self.currStep) + + def ok(self): + print "OK" + if self.disableKeys: + return + currStep = self.currStep + + if self.showConfig: + if (self.wizard[currStep]["config"]["screen"] != None): + # TODO: don't die, if no run() is available + # there was a try/except here, but i can't see a reason + # for this. If there is one, please do a more specific check + # and/or a comment in which situation there is no run() + if callable(getattr(self.configInstance, "runAsync", None)): + if self.updateValues in self.onShown: + self.onShown.remove(self.updateValues) + self.configInstance.runAsync(self.finished) + return + else: + self.configInstance.run() + self.finished() + + def keyNumberGlobal(self, number): + if (self.wizard[self.currStep]["config"]["screen"] != None): + self.configInstance.keyNumberGlobal(number) + elif (self.wizard[self.currStep]["config"]["type"] == "dynamic"): + self["config"].handleKey(KEY_0 + number) + + def keyGotAscii(self): + if (self.wizard[self.currStep]["config"]["screen"] != None): + self["config"].handleKey(KEY_ASCII) + elif (self.wizard[self.currStep]["config"]["type"] == "dynamic"): + self["config"].handleKey(KEY_ASCII) + + def left(self): + self.resetCounter() + if (self.wizard[self.currStep]["config"]["screen"] != None): + self.configInstance.keyLeft() + elif (self.wizard[self.currStep]["config"]["type"] == "dynamic"): + self["config"].handleKey(KEY_LEFT) + print "left" + + def right(self): + self.resetCounter() + if (self.wizard[self.currStep]["config"]["screen"] != None): + self.configInstance.keyRight() + elif (self.wizard[self.currStep]["config"]["type"] == "dynamic"): + self["config"].handleKey(KEY_RIGHT) + print "right" + + def up(self): + self.resetCounter() + if (self.showConfig and self.wizard[self.currStep]["config"]["screen"] != None or self.wizard[self.currStep]["config"]["type"] == "dynamic"): + self["config"].instance.moveSelection(self["config"].instance.moveUp) + self.handleInputHelpers() + elif (self.showList and len(self.wizard[self.currStep]["evaluatedlist"]) > 0): + self["list"].selectPrevious() + if self.wizard[self.currStep].has_key("onselect"): + print "current:", self["list"].current + self.selection = self["list"].current[-1] + #self.selection = self.wizard[self.currStep]["evaluatedlist"][self["list"].l.getCurrentSelectionIndex()][1] + exec("self." + self.wizard[self.currStep]["onselect"] + "()") + print "up" + + def down(self): + self.resetCounter() + if (self.showConfig and self.wizard[self.currStep]["config"]["screen"] != None or self.wizard[self.currStep]["config"]["type"] == "dynamic"): + self["config"].instance.moveSelection(self["config"].instance.moveDown) + self.handleInputHelpers() + elif (self.showList and len(self.wizard[self.currStep]["evaluatedlist"]) > 0): + #self["list"].instance.moveSelection(self["list"].instance.moveDown) + self["list"].selectNext() + if self.wizard[self.currStep].has_key("onselect"): + print "current:", self["list"].current + #self.selection = self.wizard[self.currStep]["evaluatedlist"][self["list"].l.getCurrentSelectionIndex()][1] + #exec("self." + self.wizard[self.currStep]["onselect"] + "()") + self.selection = self["list"].current[-1] + #self.selection = self.wizard[self.currStep]["evaluatedlist"][self["list"].l.getCurrentSelectionIndex()][1] + exec("self." + self.wizard[self.currStep]["onselect"] + "()") + print "down" + + def selChanged(self): + self.resetCounter() + + if (self.showConfig and self.wizard[self.currStep]["config"]["screen"] != None): + self["config"].instance.moveSelection(self["config"].instance.moveUp) + elif (self.showList and len(self.wizard[self.currStep]["evaluatedlist"]) > 0): + if self.wizard[self.currStep].has_key("onselect"): + self.selection = self["list"].current[-1] + print "self.selection:", self.selection + exec("self." + self.wizard[self.currStep]["onselect"] + "()") + + def resetCounter(self): + self.timeoutCounter = self.wizard[self.currStep]["timeout"] + + def runCode(self, code): + if code != "": + print "code", code + exec(code) + return True + return False + + def getTranslation(self, text): + return _(text) + + def updateText(self, firstset = False): + text = self.getTranslation(self.wizard[self.currStep]["text"]) + if "[timeout]" in text: + text = text.replace("[timeout]", str(self.timeoutCounter)) + self["text"].setText(text) + else: + if firstset: + self["text"].setText(text) + + def updateValues(self): + print "Updating values in step " + str(self.currStep) + # calling a step which doesn't exist can only happen if the condition in the last step is not fulfilled + # if a non-existing step is called, end the wizard + if self.currStep > len(self.wizard): + self.markDone() + self.exit() + return + + self.timeoutTimer.stop() + + if self.configInstance is not None: + # remove callbacks + self.configInstance["config"].onSelectionChanged = [] + del self.configInstance["config"] + self.configInstance.doClose() + self.configInstance = None + + self.condition = True + exec (self.wizard[self.currStep]["condition"]) + if not self.condition: + print "keys*******************:", self.wizard[self.currStep].keys() + if self.wizard[self.currStep].has_key("laststep"): # exit wizard, if condition of laststep doesn't hold + self.markDone() + self.exit() + return + else: + self.currStep += 1 + self.updateValues() + else: + if self.wizard[self.currStep].has_key("displaytext"): + displaytext = self.wizard[self.currStep]["displaytext"] + print "set LCD text" + for x in self.lcdCallbacks: + x(displaytext) + if len(self.stepHistory) == 0 or self.stepHistory[-1] != self.currStep: + self.stepHistory.append(self.currStep) + print "wizard step:", self.wizard[self.currStep] + + if self.showSteps: + self["step"].setText(self.getTranslation("Step ") + str(self.currStep) + "/" + str(self.numSteps)) + if self.showStepSlider: + self["stepslider"].setValue(self.currStep) + + if self.wizard[self.currStep]["timeout"] is not None: + self.resetCounter() + self.timeoutTimer.start(1000) + + print "wizard text", self.getTranslation(self.wizard[self.currStep]["text"]) + self.updateText(firstset = True) + if self.wizard[self.currStep].has_key("displaytext"): + displaytext = self.wizard[self.currStep]["displaytext"] + print "set LCD text" + for x in self.lcdCallbacks: + x(displaytext) + + self.codeafter=False + self.runCode(self.wizard[self.currStep]["code"]) + if self.runCode(self.wizard[self.currStep]["code_async"]): + if self.updateValues in self.onShown: + self.onShown.remove(self.updateValues) + else: + self.afterAsyncCode() + + def afterAsyncCode(self): + if not self.updateValues in self.onShown: + self.onShown.append(self.updateValues) + + if self.codeafter: + if self.wizard[self.prevStep]["nextstep"] is not None: + self.currStep = self.getStepWithID(self.wizard[self.prevStep]["nextstep"]) + if self.gotoStep is not None: + self.currStep = self.getStepWithID(self.gotoStep) + self.currStep += 1 + self.updateValues() + print "Now: " + str(self.currStep) + else: + if self.showList: + print "showing list,", self.currStep + for renderer in self.renderer: + rootrenderer = renderer + while renderer.source is not None: + print "self.list:", self["list"] + if renderer.source is self["list"]: + print "setZPosition" + rootrenderer.instance.setZPosition(1) + renderer = renderer.source + + #self["list"].instance.setZPosition(1) + self.list = [] + if (self.wizard[self.currStep].has_key("dynamiclist")): + print "dynamic list, calling", self.wizard[self.currStep]["dynamiclist"] + newlist = eval("self." + self.wizard[self.currStep]["dynamiclist"] + "()") + #self.wizard[self.currStep]["evaluatedlist"] = [] + for entry in newlist: + #self.wizard[self.currStep]["evaluatedlist"].append(entry) + self.list.append(entry) + #del self.wizard[self.currStep]["dynamiclist"] + if (len(self.wizard[self.currStep]["list"]) > 0): + #self["list"].instance.setZPosition(2) + for x in self.wizard[self.currStep]["list"]: + self.list.append((self.getTranslation(x[0]), x[1])) + self.wizard[self.currStep]["evaluatedlist"] = self.list + self["list"].list = self.list + self["list"].index = 0 + else: + self["list"].hide() + + if self.showConfig: + print "showing config" + self["config"].instance.setZPosition(1) + if self.wizard[self.currStep]["config"]["type"] == "dynamic": + print "config type is dynamic" + self["config"].instance.setZPosition(2) + self["config"].l.setList(eval("self." + self.wizard[self.currStep]["config"]["source"])()) + elif (self.wizard[self.currStep]["config"]["screen"] != None): + if self.wizard[self.currStep]["config"]["type"] == "standalone": + print "Type is standalone" + self.session.openWithCallback(self.ok, self.wizard[self.currStep]["config"]["screen"]) + else: + self["config"].instance.setZPosition(2) + print "wizard screen", self.wizard[self.currStep]["config"]["screen"] + if self.wizard[self.currStep]["config"]["args"] == None: + self.configInstance = self.session.instantiateDialog(self.wizard[self.currStep]["config"]["screen"]) + else: + self.configInstance = self.session.instantiateDialog(self.wizard[self.currStep]["config"]["screen"], eval(self.wizard[self.currStep]["config"]["args"])) + self["config"].l.setList(self.configInstance["config"].list) + callbacks = self.configInstance["config"].onSelectionChanged + self.configInstance["config"].destroy() + print "clearConfigList", self.configInstance["config"], self["config"] + self.configInstance["config"] = self["config"] + self.configInstance["config"].onSelectionChanged = callbacks + print "clearConfigList", self.configInstance["config"], self["config"] + else: + self["config"].l.setList([]) + self.handleInputHelpers() + + + else: + if self.has_key("config"): + self["config"].hide() + + def timeoutCounterFired(self): + self.timeoutCounter -= 1 + print "timeoutCounter:", self.timeoutCounter + if self.timeoutCounter == 0: + if self.wizard[self.currStep]["timeoutaction"] == "selectnext": + print "selection next item" + self.down() + else: + if self.wizard[self.currStep]["timeoutaction"] == "changestep": + self.finished(gotoStep = self.wizard[self.currStep]["timeoutstep"]) + self.updateText() + + def handleInputHelpers(self): + if self["config"].getCurrent() is not None: + if isinstance(self["config"].getCurrent()[1], ConfigText) or isinstance(self["config"].getCurrent()[1], ConfigPassword): + if self.has_key("VKeyIcon"): + self["VirtualKB"].setEnabled(True) + self["VKeyIcon"].boolean = True + if self.has_key("HelpWindow"): + if self["config"].getCurrent()[1].help_window.instance is not None: + helpwindowpos = self["HelpWindow"].getPosition() + from enigma import ePoint + self["config"].getCurrent()[1].help_window.instance.move(ePoint(helpwindowpos[0],helpwindowpos[1])) + else: + if self.has_key("VKeyIcon"): + self["VirtualKB"].setEnabled(False) + self["VKeyIcon"].boolean = False + else: + if self.has_key("VKeyIcon"): + self["VirtualKB"].setEnabled(False) + self["VKeyIcon"].boolean = False + + def KeyText(self): + from Screens.VirtualKeyBoard import VirtualKeyBoard + self.currentConfigIndex = self["config"].getCurrentIndex() + self.session.openWithCallback(self.VirtualKeyBoardCallback, VirtualKeyBoard, title = self["config"].getCurrent()[0], text = self["config"].getCurrent()[1].getValue()) + + def VirtualKeyBoardCallback(self, callback = None): + if callback is not None and len(callback): + if isinstance(self["config"].getCurrent()[1], ConfigText) or isinstance(self["config"].getCurrent()[1], ConfigPassword): + if self.has_key("HelpWindow"): + if self["config"].getCurrent()[1].help_window.instance is not None: + helpwindowpos = self["HelpWindow"].getPosition() + from enigma import ePoint + self["config"].getCurrent()[1].help_window.instance.move(ePoint(helpwindowpos[0],helpwindowpos[1])) + self["config"].instance.moveSelectionTo(self.currentConfigIndex) + self["config"].setCurrentIndex(self.currentConfigIndex) + self["config"].getCurrent()[1].setValue(callback) + self["config"].invalidate(self["config"].getCurrent()) + + +class WizardManager: + def __init__(self): + self.wizards = [] + + def registerWizard(self, wizard, precondition, priority = 0): + self.wizards.append((wizard, precondition, priority)) + + def getWizards(self): + # x[1] is precondition + for wizard in self.wizards: + wizard[0].isLastWizard = False + if len(self.wizards) > 0: + self.wizards[-1][0].isLastWizard = True + return [(x[2], x[0]) for x in self.wizards if x[1] == 1] + +wizardManager = WizardManager() diff --git a/lib/python/Screens/WizardLanguage.py b/lib/python/Screens/WizardLanguage.py new file mode 100644 index 0000000..918da60 --- /dev/null +++ b/lib/python/Screens/WizardLanguage.py @@ -0,0 +1,31 @@ +from Wizard import Wizard +from Components.Label import Label +from Components.Language import language + +class WizardLanguage(Wizard): + def __init__(self, session, showSteps = True, showStepSlider = True, showList = True, showConfig = True): + Wizard.__init__(self, session, showSteps, showStepSlider, showList, showConfig) + self["languagetext"] = Label() + self.updateLanguageDescription() + + def red(self): + self.resetCounter() + self.languageSelect() + + def languageSelect(self): + print "languageSelect" + newlanguage = language.getActiveLanguageIndex() + 1 + if newlanguage >= len(language.getLanguageList()): + newlanguage = 0 + language.activateLanguageIndex(newlanguage) + self.updateTexts() + + def updateLanguageDescription(self): + print language.getLanguageList()[language.getActiveLanguageIndex()] + self["languagetext"].setText(self.getTranslation(language.getLanguageList()[language.getActiveLanguageIndex()][1][0])) + + def updateTexts(self): + print "updateTexts" + self.updateText(firstset = True) + self.updateValues() + self.updateLanguageDescription() diff --git a/lib/python/Screens/__init__.py b/lib/python/Screens/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Tools/ASCIItranslit.py b/lib/python/Tools/ASCIItranslit.py new file mode 100644 index 0000000..a24d34c --- /dev/null +++ b/lib/python/Tools/ASCIItranslit.py @@ -0,0 +1,271 @@ +# -*- coding:utf-8 -*- + +ASCIItranslit = { \ +0x0022: "''", \ +0x002A: "_", \ +0x002F: "_", \ +0x003A: "_", \ +0x003C: "_", \ +0x003D: "_", \ +0x003E: "_", \ +0x003F: "_", \ +0x005C: "_", \ +0x007C: "_", \ +0x007F: "", \ +0x00A0: "_", \ +0x00A1: "!", \ +0x00A2: "c", \ +0x00A3: "lb", \ +0x00A4: "", \ +0x00A5: "yen", \ +0x00A6: "I", \ +0x00A7: "SS", \ +0x00A8: "'", \ +0x00A9: "(c)", \ +0x00AA: "a", \ +0x00AB: "<<", \ +0x00AC: "not", \ +0x00AD: "-", \ +0x00AE: "(R)", \ +0x00AF: "", \ +0x00B0: "^0", \ +0x00B1: "+-", \ +0x00B2: "^2", \ +0x00B3: "^3", \ +0x00B4: "'", \ +0x00B5: "u", \ +0x00B6: "P", \ +0x00B7: ".", \ +0x00B8: ",", \ +0x00B9: "^1", \ +0x00BA: "o", \ +0x00BB: ">>", \ +0x00BC: "1_4 ", \ +0x00BD: "1_2 ", \ +0x00BE: "3_4 ", \ +0x00BF: "_", \ +0x00C0: "`A", \ +0x00C1: "'A", \ +0x00C2: "^A", \ +0x00C3: "~A", \ +0x00C4: "Ae", \ +0x00C5: "A", \ +0x00C6: "AE", \ +0x00C7: "C", \ +0x00C8: "`E", \ +0x00C9: "'E", \ +0x00CA: "^E", \ +0x00CB: "E", \ +0x00CC: "`I", \ +0x00CD: "'I", \ +0x00CE: "^I", \ +0x00CF: "I", \ +0x00D0: "D", \ +0x00D1: "~N", \ +0x00D2: "`O", \ +0x00D3: "'O", \ +0x00D4: "^O", \ +0x00D5: "~O", \ +0x00D6: "Oe", \ +0x00D7: "x", \ +0x00D8: "O", \ +0x00D9: "`U", \ +0x00DA: "'U", \ +0x00DB: "^U", \ +0x00DC: "Ue", \ +0x00DD: "'Y", \ +0x00DE: "Th", \ +0x00DF: "ss", \ +0x00E0: "`a", \ +0x00E1: "'a", \ +0x00E2: "^a", \ +0x00E3: "~a", \ +0x00E4: "AE", \ +0x00E5: "a", \ +0x00E6: "ae", \ +0x00E7: "c", \ +0x00E8: "`e", \ +0x00E9: "'e", \ +0x00EA: "^e", \ +0x00EB: "e", \ +0x00EC: "`i", \ +0x00ED: "'i", \ +0x00EE: "^i", \ +0x00EF: "i", \ +0x00F0: "d", \ +0x00F1: "~n", \ +0x00F2: "`o", \ +0x00F3: "'o", \ +0x00F4: "^o", \ +0x00F5: "~o", \ +0x00F6: "oe", \ +0x00F7: "_", \ +0x00F8: "o", \ +0x00F9: "`u", \ +0x00FA: "'u", \ +0x00FB: "^u", \ +0x00FC: "ue", \ +0x00FD: "'y", \ +0x00FE: "th", \ +0x00FF: "Y", \ +0x0100: "A", \ +0x0101: "a", \ +0x0102: "A", \ +0x0103: "a", \ +0x0104: "A", \ +0x0105: "a", \ +0x0106: "'C", \ +0x0107: "'c", \ +0x0108: "^C", \ +0x0109: "^c", \ +0x010A: "C", \ +0x010B: "c", \ +0x010C: "C", \ +0x010D: "c", \ +0x010E: "D", \ +0x010F: "d", \ +0x0110: "D", \ +0x0111: "d", \ +0x0112: "E", \ +0x0113: "e", \ +0x0114: "E", \ +0x0115: "e", \ +0x0116: "E", \ +0x0117: "e", \ +0x0118: "E", \ +0x0119: "e", \ +0x011A: "E", \ +0x011B: "e", \ +0x011C: "^G", \ +0x011D: "^g", \ +0x011E: "G", \ +0x011F: "g", \ +0x0120: "G", \ +0x0121: "g", \ +0x0122: "G", \ +0x0123: "g", \ +0x0124: "^H", \ +0x0125: "^h", \ +0x0126: "H", \ +0x0127: "h", \ +0x0128: "~I", \ +0x0129: "~i", \ +0x012A: "I", \ +0x012B: "i", \ +0x012C: "I", \ +0x012D: "i", \ +0x012E: "I", \ +0x012F: "i", \ +0x0130: "I", \ +0x0131: "i", \ +0x0132: "IJ", \ +0x0133: "ij", \ +0x0134: "^J", \ +0x0135: "^j", \ +0x0136: "K", \ +0x0137: "k", \ +0x0138: "", \ +0x0139: "L", \ +0x013A: "l", \ +0x013B: "L", \ +0x013C: "l", \ +0x013D: "L", \ +0x013E: "l", \ +0x013F: "L", \ +0x0140: "l", \ +0x0141: "L", \ +0x0142: "l", \ +0x0143: "'N", \ +0x0144: "'n", \ +0x0145: "N", \ +0x0146: "n", \ +0x0147: "N", \ +0x0148: "n", \ +0x0149: "n", \ +0x014A: "_", \ +0x014B: "_", \ +0x014C: "O", \ +0x014D: "o", \ +0x014E: "O", \ +0x014F: "o", \ +0x0150: "''o", \ +0x0152: "OE", \ +0x0153: "oe", \ +0x0154: "'R", \ +0x0155: "'r", \ +0x0156: "R", \ +0x0157: "r", \ +0x0158: "R", \ +0x0159: "r", \ +0x015A: "'s", \ +0x015B: "'s", \ +0x015C: "^S", \ +0x015D: "^s", \ +0x015E: "S", \ +0x015F: "s", \ +0x0160: "S", \ +0x0161: "s", \ +0x0162: "T", \ +0x0163: "t", \ +0x0164: "T", \ +0x0165: "t", \ +0x0166: "T", \ +0x0167: "t", \ +0x0168: "~U", \ +0x0169: "~u", \ +0x016A: "U", \ +0x016B: "u", \ +0x016C: "U", \ +0x016D: "u", \ +0x016E: "U", \ +0x016F: "u", \ +0x0170: "''u", \ +0x0172: "U", \ +0x0173: "u", \ +0x0174: "^W", \ +0x0175: "^w", \ +0x0176: "^Y", \ +0x0177: "^y", \ +0x0178: "Y", \ +0x0179: "'Z", \ +0x017A: "'z", \ +0x017B: "Z", \ +0x017C: "z", \ +0x017D: "Z", \ +0x017E: "z", \ +0x017F: "s", \ +0x018F: "_", \ +0x0192: "f", \ +0x01C4: "DZ", \ +0x01C5: "DZ", \ +0x01C6: "DZ", \ +0x01C7: "LJ", \ +0x01C8: "Lj", \ +0x01C9: "lj", \ +0x01CA: "NJ", \ +0x01CB: "Nj", \ +0x01CC: "nj", \ +0x01F1: "DZ", \ +0x01F2: "Dz", \ +0x01F3: "dz", \ +0x0218: "S", \ +0x0219: "s", \ +0x021A: "T", \ +0x021B: "t", \ +0x0259: "_", \ +0x20AC: "EUR" } + +def legacyEncode(string): + string2 = "" + for z, char in enumerate(string.decode("utf-8")): + i = ord(char) + if i < 33: + string2 += "_" + elif i in ASCIItranslit: + string2 += ASCIItranslit[i] + else: + try: + string2 += char.encode('ascii', 'strict') + except: + string2 += "_" + return string2.upper() diff --git a/lib/python/Tools/Alternatives.py b/lib/python/Tools/Alternatives.py new file mode 100644 index 0000000..25913f2 --- /dev/null +++ b/lib/python/Tools/Alternatives.py @@ -0,0 +1,18 @@ +from enigma import eServiceCenter, eServiceReference + +def getAlternativeChannels(service): + alternativeServices = eServiceCenter.getInstance().list(eServiceReference(service)) + return alternativeServices and alternativeServices.getContent("S", True) + +def CompareWithAlternatives(serviceA, serviceB): + return serviceA and serviceB and (\ + serviceA == serviceB or\ + serviceA.startswith('1:134:') and serviceB in getAlternativeChannels(serviceA) or\ + serviceB.startswith('1:134:') and serviceA in getAlternativeChannels(serviceB)) + +def GetWithAlternative(service): + if service.startswith('1:134:'): + channels = getAlternativeChannels(service) + if channels: + return channels[0] + return service \ No newline at end of file diff --git a/lib/python/Tools/BoundFunction.py b/lib/python/Tools/BoundFunction.py new file mode 100644 index 0000000..c84a3c8 --- /dev/null +++ b/lib/python/Tools/BoundFunction.py @@ -0,0 +1,9 @@ +class boundFunction: + def __init__(self, fnc, *args, **kwargs): + self.fnc = fnc + self.args = args + self.kwargs = kwargs + def __call__(self, *args, **kwargs): + newkwargs = self.kwargs + newkwargs.update(kwargs) + return self.fnc(*self.args + args, **newkwargs) diff --git a/lib/python/Tools/CList.py b/lib/python/Tools/CList.py new file mode 100644 index 0000000..aa0c6e8 --- /dev/null +++ b/lib/python/Tools/CList.py @@ -0,0 +1,7 @@ +class CList(list): + def __getattr__(self, attr): + return CList([getattr(a, attr) for a in self]) + + def __call__(self, *args, **kwargs): + for x in self: + x(*args, **kwargs) diff --git a/lib/python/Tools/Directories.py b/lib/python/Tools/Directories.py new file mode 100644 index 0000000..2e84926 --- /dev/null +++ b/lib/python/Tools/Directories.py @@ -0,0 +1,370 @@ +# -*- coding: utf-8 -*- +import os +from os import mkdir, rmdir, system, walk, stat as os_stat, listdir, readlink, makedirs, error as os_error, symlink, access, F_OK, R_OK, W_OK, rename as os_rename +from stat import S_IMODE +from re import compile +from enigma import eEnv + +try: + from os import chmod + have_chmod = True +except: + have_chmod = False + +try: + from os import utime + have_utime = True +except: + have_utime = False + +SCOPE_TRANSPONDERDATA = 0 +SCOPE_SYSETC = 1 +SCOPE_FONTS = 2 +SCOPE_SKIN = 3 +SCOPE_SKIN_IMAGE = 4 +SCOPE_USERETC = 5 +SCOPE_CONFIG = 6 +SCOPE_LANGUAGE = 7 +SCOPE_HDD = 8 +SCOPE_PLUGINS = 9 +SCOPE_MEDIA = 10 +SCOPE_PLAYLIST = 11 +SCOPE_CURRENT_SKIN = 12 +SCOPE_METADIR = 16 +SCOPE_CURRENT_PLUGIN = 17 + +PATH_CREATE = 0 +PATH_DONTCREATE = 1 +PATH_FALLBACK = 2 +defaultPaths = { + SCOPE_TRANSPONDERDATA: (eEnv.resolve("${sysconfdir}/"), PATH_DONTCREATE), + SCOPE_SYSETC: (eEnv.resolve("${sysconfdir}/"), PATH_DONTCREATE), + SCOPE_FONTS: (eEnv.resolve("${datadir}/fonts/"), PATH_DONTCREATE), + SCOPE_CONFIG: (eEnv.resolve("${sysconfdir}/enigma2/"), PATH_CREATE), + SCOPE_PLUGINS: (eEnv.resolve("${libdir}/enigma2/python/Plugins/"), PATH_CREATE), + + SCOPE_LANGUAGE: (eEnv.resolve("${datadir}/enigma2/po/"), PATH_DONTCREATE), + + SCOPE_SKIN: (eEnv.resolve("${datadir}/enigma2/"), PATH_DONTCREATE), + SCOPE_SKIN_IMAGE: (eEnv.resolve("${datadir}/enigma2/"), PATH_DONTCREATE), + SCOPE_HDD: ("/hdd/movie/", PATH_DONTCREATE), + SCOPE_MEDIA: ("/media/", PATH_DONTCREATE), + SCOPE_PLAYLIST: (eEnv.resolve("${sysconfdir}/enigma2/playlist/"), PATH_CREATE), + + SCOPE_USERETC: ("", PATH_DONTCREATE), # user home directory + + SCOPE_METADIR: (eEnv.resolve("${datadir}/meta"), PATH_CREATE), + } + +FILE_COPY = 0 # copy files from fallback dir to the basedir +FILE_MOVE = 1 # move files +PATH_COPY = 2 # copy the complete fallback dir to the basedir +PATH_MOVE = 3 # move the fallback dir to the basedir (can be used for changes in paths) +fallbackPaths = { + SCOPE_CONFIG: [("/home/root/", FILE_MOVE), + (eEnv.resolve("${datadir}/enigma2/defaults/"), FILE_COPY)], + SCOPE_HDD: [("/hdd/movies", PATH_MOVE)] + } + +def resolveFilename(scope, base = "", path_prefix = None): + if base.startswith("~/"): + # you can only use the ~/ if we have a prefix directory + assert path_prefix is not None + base = os.path.join(path_prefix, base[2:]) + + # don't resolve absolute paths + if base.startswith('/'): + return base + + if scope == SCOPE_CURRENT_SKIN: + from Components.config import config + # allow files in the config directory to replace skin files + tmp = defaultPaths[SCOPE_CONFIG][0] + if base and pathExists(tmp + base): + path = tmp + else: + tmp = defaultPaths[SCOPE_SKIN][0] + pos = config.skin.primary_skin.value.rfind('/') + if pos != -1: + #if basefile is not available use default skin path as fallback + tmpfile = tmp+config.skin.primary_skin.value[:pos+1] + base + if pathExists(tmpfile): + path = tmp+config.skin.primary_skin.value[:pos+1] + else: + path = tmp + else: + path = tmp + + elif scope == SCOPE_CURRENT_PLUGIN: + tmp = defaultPaths[SCOPE_PLUGINS] + from Components.config import config + skintmp = defaultPaths[SCOPE_SKIN] + pos = config.skin.primary_skin.value.rfind('/') + if pos != -1: + #if basefile is not available inside current skin path, use the original provided file as fallback + skintmpfile = skintmp[0]+config.skin.primary_skin.value[:pos+1] + base + if fileExists(skintmpfile): + path = skintmp[0]+config.skin.primary_skin.value[:pos+1] + else: + path = tmp[0] + else: + path = tmp[0] + else: + tmp = defaultPaths[scope] + path = tmp[0] + + flags = tmp[1] + + if flags == PATH_CREATE: + if not pathExists(path): + try: + mkdir(path) + except OSError: + print "resolveFilename: Couldn't create %s" % path + return None + + fallbackPath = fallbackPaths.get(scope) + + if fallbackPath and not fileExists(path + base): + for x in fallbackPath: + try: + if x[1] == FILE_COPY: + if fileExists(x[0] + base): + try: + os.link(x[0] + base, path + base) + except: + system("cp " + x[0] + base + " " + path + base) + break + elif x[1] == FILE_MOVE: + if fileExists(x[0] + base): + os.rename(x[0] + base, path + base) + break + elif x[1] == PATH_COPY: + if pathExists(x[0]): + if not pathExists(defaultPaths[scope][0]): + mkdir(path) + system("cp -a " + x[0] + "* " + path) + break + elif x[1] == PATH_MOVE: + if pathExists(x[0]): + os.rename(x[0], path + base) + break + except Exception, e: + print "[D] Failed to recover %s:" % (path+base), e + + # FIXME: we also have to handle DATADIR etc. here. + return path + base + # this is only the BASE - an extension must be added later. + +pathExists = os.path.exists +isMount = os.path.ismount + +def defaultRecordingLocation(candidate=None): + if candidate and os.path.exists(candidate): + return candidate + # First, try whatever /hdd points to, or /media/hdd + try: + path = os.readlink('/hdd') + except: + path = '/media/hdd' + if not os.path.exists(path): + path = '' + # Find the largest local disk + from Components import Harddisk + mounts = [m for m in Harddisk.getProcMounts() if m[1].startswith('/media/')] + biggest = 0 + havelocal = False + for candidate in mounts: + try: + islocal = candidate[1].startswith('/dev/') # Good enough + stat = os.statvfs(candidate[1]) + # Free space counts double + size = (stat.f_blocks + stat.f_bavail) * stat.f_bsize + if (islocal and not havelocal) or ((islocal or not havelocal) and (size > biggest)): + path = candidate[1] + havelocal = islocal + biggest = size + except Exception, e: + print "[DRL]", e + if path: + # If there's a movie subdir, we'd probably want to use that. + movie = os.path.join(path, 'movie') + if os.path.isdir(movie): + path = movie + if not path.endswith('/'): + path += '/' # Bad habits die hard, old code relies on this + return path + + +def createDir(path, makeParents = False): + try: + if makeParents: + makedirs(path) + else: + mkdir(path) + except: + return 0 + else: + return 1 + +def removeDir(path): + try: + rmdir(path) + except: + return 0 + else: + return 1 + +def fileExists(f, mode='r'): + if mode == 'r': + acc_mode = R_OK + elif mode == 'w': + acc_mode = W_OK + else: + acc_mode = F_OK + return access(f, acc_mode) + +def fileCheck(f, mode='r'): + return fileExists(f, mode) and f + +def getRecordingFilename(basename, dirname = None): + # filter out non-allowed characters + non_allowed_characters = "/.\\:*?<>|\"" + filename = "" + + basename = basename.replace('\xc2\x86', '').replace('\xc2\x87', '') + + for c in basename: + if c in non_allowed_characters or ord(c) < 32: + c = "_" + filename += c + + # max filename length for ext4 is 255 (minus 8 characters for .ts.meta) + filename = filename[:247] + + if dirname is not None: + if not dirname.startswith('/'): + dirname = os.path.join(defaultRecordingLocation(), dirname) + else: + dirname = defaultRecordingLocation() + filename = os.path.join(dirname, filename) + + i = 0 + while True: + path = filename + if i > 0: + path += "_%03d" % i + try: + open(path + ".ts") + i += 1 + except IOError: + return path + +# this is clearly a hack: +def InitFallbackFiles(): + resolveFilename(SCOPE_CONFIG, "userbouquet.favourites.tv") + resolveFilename(SCOPE_CONFIG, "bouquets.tv") + resolveFilename(SCOPE_CONFIG, "userbouquet.favourites.radio") + resolveFilename(SCOPE_CONFIG, "bouquets.radio") + +# returns a list of tuples containing pathname and filename matching the given pattern +# example-pattern: match all txt-files: ".*\.txt$" +def crawlDirectory(directory, pattern): + list = [] + if directory: + expression = compile(pattern) + for root, dirs, files in walk(directory): + for file in files: + if expression.match(file) is not None: + list.append((root, file)) + return list + +def copyfile(src, dst): + try: + f1 = open(src, "rb") + if os.path.isdir(dst): + dst = os.path.join(dst, os.path.basename(src)) + f2 = open(dst, "w+b") + while True: + buf = f1.read(16*1024) + if not buf: + break + f2.write(buf) + st = os_stat(src) + mode = S_IMODE(st.st_mode) + if have_chmod: + chmod(dst, mode) + if have_utime: + utime(dst, (st.st_atime, st.st_mtime)) + except: + print "copy", src, "to", dst, "failed!" + return -1 + return 0 + +def copytree(src, dst, symlinks=False): + names = listdir(src) + if os.path.isdir(dst): + dst = os.path.join(dst, os.path.basename(src)) + if not os.path.isdir(dst): + mkdir(dst) + else: + makedirs(dst) + for name in names: + srcname = os.path.join(src, name) + dstname = os.path.join(dst, name) + try: + if symlinks and os.path.islink(srcname): + linkto = readlink(srcname) + symlink(linkto, dstname) + elif os.path.isdir(srcname): + copytree(srcname, dstname, symlinks) + else: + copyfile(srcname, dstname) + except: + print "dont copy srcname (no file or link or folder)" + try: + st = os_stat(src) + mode = S_IMODE(st.st_mode) + if have_chmod: + chmod(dst, mode) + if have_utime: + utime(dst, (st.st_atime, st.st_mtime)) + except: + print "copy stats for", src, "failed!" + +# Renames files or if source and destination are on different devices moves them in background +# input list of (source, destination) +def moveFiles(fileList): + movedList = [] + try: + try: + for item in fileList: + os_rename(item[0], item[1]) + movedList.append(item) + except OSError, e: + if e.errno == 18: + print "[Directories] cannot rename across devices, trying slow move" + import Screens.CopyFiles + Screens.CopyFiles.moveFiles(fileList, item[0]) + print "[Directories] Moving in background..." + else: + raise + except Exception, e: + print "[Directories] Failed move:", e + for item in movedList: + try: + os_rename(item[1], item[0]) + except: + print "[Directories] Failed to undo move:", item + raise + +def getSize(path, pattern=".*"): + path_size = 0 + if os.path.isdir(path): + files = crawlDirectory(path, pattern) + for file in files: + filepath = os.path.join(file[0], file[1]) + path_size += os.path.getsize(filepath) + elif os.path.isfile(path): + path_size = os.path.getsize(path) + return path_size diff --git a/lib/python/Tools/Downloader.py b/lib/python/Tools/Downloader.py new file mode 100644 index 0000000..7649cf9 --- /dev/null +++ b/lib/python/Tools/Downloader.py @@ -0,0 +1,53 @@ +from twisted.web import client +from twisted.internet import reactor, defer +from twisted.python import failure + +class HTTPProgressDownloader(client.HTTPDownloader): + def __init__(self, url, outfile, headers=None): + client.HTTPDownloader.__init__(self, url, outfile, headers=headers, agent="STB HTTP Downloader") + self.status = None + self.progress_callback = None + self.deferred = defer.Deferred() + + def noPage(self, reason): + if self.status == "304": + print reason.getErrorMessage() + client.HTTPDownloader.page(self, "") + else: + client.HTTPDownloader.noPage(self, reason) + + def gotHeaders(self, headers): + if self.status == "200": + if headers.has_key("content-length"): + self.totalbytes = int(headers["content-length"][0]) + else: + self.totalbytes = 0 + self.currentbytes = 0.0 + return client.HTTPDownloader.gotHeaders(self, headers) + + def pagePart(self, packet): + if self.status == "200": + self.currentbytes += len(packet) + if self.totalbytes and self.progress_callback: + self.progress_callback(self.currentbytes, self.totalbytes) + return client.HTTPDownloader.pagePart(self, packet) + + def pageEnd(self): + return client.HTTPDownloader.pageEnd(self) + +class downloadWithProgress: + def __init__(self, url, outputfile, contextFactory=None, *args, **kwargs): + scheme, host, port, path = client._parse(url) + self.factory = HTTPProgressDownloader(url, outputfile, *args, **kwargs) + self.connection = reactor.connectTCP(host, port, self.factory) + + def start(self): + return self.factory.deferred + + def stop(self): + print "[stop]" + self.connection.disconnect() + + def addProgress(self, progress_callback): + print "[addProgress]" + self.factory.progress_callback = progress_callback diff --git a/lib/python/Tools/Event.py b/lib/python/Tools/Event.py new file mode 100644 index 0000000..bf0d111 --- /dev/null +++ b/lib/python/Tools/Event.py @@ -0,0 +1,23 @@ + +class Event: + def __init__(self, start = None, stop = None): + self.list = [ ] + self.start = start + self.stop = stop + + def __call__(self, *args, **kwargs): + for x in self.list: + x(*args, **kwargs) + + def listen(self, fnc): + was_empty = len(self.list) == 0 + self.list.append(fnc) + if was_empty: + if self.start: + self.start() + + def unlisten(self, fnc): + self.list.remove(fnc) + if len(self.list) == 0: + if self.stop: + self.stop() diff --git a/lib/python/Tools/FuzzyDate.py b/lib/python/Tools/FuzzyDate.py new file mode 100644 index 0000000..6a09986 --- /dev/null +++ b/lib/python/Tools/FuzzyDate.py @@ -0,0 +1,41 @@ +from time import localtime, time + + +def FuzzyTime(t, inPast = False): + d = localtime(t) + nt = time() + n = localtime() + dayOfWeek = (_("Mon"), _("Tue"), _("Wed"), _("Thu"), _("Fri"), _("Sat"), _("Sun")) + + if d[:3] == n[:3]: + # same day + date = _("Today") + elif d[0] == n[0] and d[7] == n[7] - 1 and inPast: + # won't work on New Year's day + date = _("Yesterday") + elif ((t - nt) < 7*86400) and (nt < t) and not inPast: + # same week (must be future) + date = dayOfWeek[d[6]] + elif d[0] == n[0]: + # same year + if inPast: + # I want the day in the movielist + date = "%s %d.%d" % (dayOfWeek[d[6]], d[2], d[1]) + else: + date = "%d.%d" % (d[2], d[1]) + else: + date = "%d.%d.%d" % (d[2], d[1], d[0]) + + timeres = "%d:%02d" % (d[3], d[4]) + + return (date, timeres) + + + +if __name__ == "__main__": + def _(x): return x + print "now: %s %s" % FuzzyTime(time()) + for i in range(1, 14): + print "+%2s day(s): %s " % (i, FuzzyTime(time() + 86400 * i)) + for i in range(1, 14): + print "-%2s day(s): %s " % (i, FuzzyTime(time() - 86400 * i, True)) diff --git a/lib/python/Tools/GetEcmInfo.py b/lib/python/Tools/GetEcmInfo.py new file mode 100644 index 0000000..616767e --- /dev/null +++ b/lib/python/Tools/GetEcmInfo.py @@ -0,0 +1,136 @@ +import os +import time + +ECM_INFO = '/tmp/ecm.info' +EMPTY_ECM_INFO = '','0','0','0' + +old_ecm_time = time.time() +info = {} +ecm = '' +data = EMPTY_ECM_INFO + +class GetEcmInfo: + def pollEcmData(self): + global data + global old_ecm_time + global info + global ecm + try: + ecm_time = os.stat(ECM_INFO).st_mtime + except: + ecm_time = old_ecm_time + data = EMPTY_ECM_INFO + info = {} + ecm = '' + if ecm_time != old_ecm_time: + oecmi1 = info.get('ecminterval1','') + oecmi0 = info.get('ecminterval0','') + info = {} + info['ecminterval2'] = oecmi1 + info['ecminterval1'] = oecmi0 + old_ecm_time = ecm_time + try: + ecm = open(ECM_INFO, 'rb').readlines() + except: + ecm = '' + for line in ecm: + d = line.split(':', 1) + if len(d) > 1: + info[d[0].strip()] = d[1].strip() + data = self.getText() + return True + else: + info['ecminterval0'] = int(time.time()-ecm_time+0.5) + + def getEcm(self): + return (self.pollEcmData(), ecm) + + def getEcmData(self): + self.pollEcmData() + return data + + def getInfo(self, member, ifempty = ''): + self.pollEcmData() + return str(info.get(member, ifempty)) + + def getText(self): + global ecm + try: + # info is dictionary + using = info.get('using', '') + if using: + # CCcam + if using == 'fta': + self.textvalue = _("FTA") + elif using == 'emu': + self.textvalue = "EMU (%ss)" % (info.get('ecm time', '?')) + else: + hops = info.get('hops', None) + if hops and hops != '0': + hops = ' @' + hops + else: + hops = '' + self.textvalue = info.get('address', '?') + hops + " (%ss)" % info.get('ecm time', '?') + else: + decode = info.get('decode', None) + if decode: + # gbox (untested) + if info['decode'] == 'Network': + cardid = 'id:' + info.get('prov', '') + try: + share = open('/tmp/share.info', 'rb').readlines() + for line in share: + if cardid in line: + self.textvalue = line.strip() + break + else: + self.textvalue = cardid + except: + self.textvalue = decode + else: + self.textvalue = decode + if ecm[1].startswith('SysID'): + info['prov'] = ecm[1].strip()[6:] + if info['response'] and 'CaID 0x' in ecm[0] and 'pid 0x' in ecm[0]: + self.textvalue = self.textvalue + " (0.%ss)" % info['response'] + info['caid'] = ecm[0][ecm[0].find('CaID 0x')+7:ecm[0].find(',')] + info['pid'] = ecm[0][ecm[0].find('pid 0x')+6:ecm[0].find(' =')] + info['provid'] = info.get('prov', '0')[:4] + else: + source = info.get('source', None) + if source: + # MGcam + info['caid'] = info['caid'][2:] + info['pid'] = info['pid'][2:] + info['provid'] = info['prov'][2:] + time = "" + for line in ecm: + if 'msec' in line: + line = line.split(' ') + if line[0]: + time = " (%ss)" % (float(line[0])/1000) + continue + self.textvalue = source + time + else: + reader = info.get('reader', '') + if reader: + hops = info.get('hops', None) + if hops and hops != '0': + hops = ' @' + hops + else: + hops = '' + self.textvalue = reader + hops + " (%ss)" % info.get('ecm time', '?') + else: + self.textvalue = "" + decCI = info.get('caid', '0') + provid = info.get('provid', '0') + if provid == '0': + provid = info.get('prov', '0') + ecmpid = info.get('pid', '0') + except: + ecm = '' + self.textvalue = "" + decCI='0' + provid='0' + ecmpid='0' + return self.textvalue,decCI,provid,ecmpid diff --git a/lib/python/Tools/HardwareInfo.py b/lib/python/Tools/HardwareInfo.py new file mode 100644 index 0000000..3455e16 --- /dev/null +++ b/lib/python/Tools/HardwareInfo.py @@ -0,0 +1,95 @@ +import os +from Tools.Directories import SCOPE_SKIN, resolveFilename + +hw_info = None + +class HardwareInfo: + device_name = _("unavailable") + device_model = None + device_version = "" + device_revision = "" + device_hdmi = False + + def __init__(self): + global hw_info + if hw_info is not None: +# print "using cached result" + return + hw_info = self + + print "Scanning hardware info" + # Version + if os.path.exists("/proc/stb/info/version"): + self.device_version = open("/proc/stb/info/version").read().strip() + + # Revision + if os.path.exists("/proc/stb/info/board_revision"): + self.device_revision = open("/proc/stb/info/board_revision").read().strip() + + # Name ... bit odd, but history prevails + if os.path.exists("/proc/stb/info/model"): + self.device_name = open("/proc/stb/info/model").read().strip() + else: + print "----------------" + print "you should upgrade to new drivers for the hardware detection to work properly" + print "----------------" + print "fallback to detect hardware via /proc/cpuinfo!!" + try: + rd = open("/proc/cpuinfo", "r").read() + if "Brcm4380 V4.2" in rd: + self.device_name = "dm8000" + elif "Brcm7401 V0.0" in rd: + self.device_name = "dm800" + elif "MIPS 4KEc V4.8" in rd: + self.device_name = "dm7025" + rd.close(); + except: + pass + + # Model + for line in open((resolveFilename(SCOPE_SKIN, 'hw_info/hw_info.cfg')), 'r'): + if not line.startswith('#') and not line.isspace(): + l = line.strip().replace('\t', ' ') + if l.find(' ') != -1: + infoFname, prefix = l.split() + else: + infoFname = l + prefix = "" + if os.path.exists("/proc/stb/info/" + infoFname): + self.device_model = prefix + open("/proc/stb/info/" + infoFname).read().strip() + break + + if self.device_model is None: + self.device_model = self.device_name + + # HDMI capbility + self.device_hdmi = ( self.device_name == 'dm7020hd' or + self.device_name == 'dm800se' or + self.device_name == 'dm500hd' or + (self.device_name == 'dm8000' and self.device_version != None)) + + print "Detected: " + self.get_device_string() + + + def get_device_name(self): + return hw_info.device_name + + def get_device_model(self): + return hw_info.device_model + + def get_device_version(self): + return hw_info.device_version + + def get_device_revision(self): + return hw_info.device_revision + + def get_device_string(self): + s = hw_info.device_model + if hw_info.device_revision != "": + s += " (" + hw_info.device_revision + "-" + hw_info.device_version + ")" + elif hw_info.device_version != "": + s += " (" + hw_info.device_version + ")" + return s + + def has_hdmi(self): + return hw_info.device_hdmi diff --git a/lib/python/Tools/ISO639.py b/lib/python/Tools/ISO639.py new file mode 100644 index 0000000..444e04f --- /dev/null +++ b/lib/python/Tools/ISO639.py @@ -0,0 +1,436 @@ +# -*- coding: iso-8859-2 -*- +LanguageCodes = { } + +LanguageCodes["aar"] = LanguageCodes["aa"] = ("Afar", "Hamitic") +LanguageCodes["abk"] = LanguageCodes["ab"] = ("Abkhazian", "Ibero-caucasian") +LanguageCodes["ace"] = ("Achinese", "") +LanguageCodes["ach"] = ("Acoli", "") +LanguageCodes["ada"] = ("Adangme", "") +LanguageCodes["afa"] = ("Afro-Asiatic (Other)", "") +LanguageCodes["afh"] = ("Afrihili", "") +LanguageCodes["afr"] = LanguageCodes["af"] = ("Afrikaans", "Germanic") +LanguageCodes["aka"] = ("Akan", "") +LanguageCodes["akk"] = ("Akkadian", "") +LanguageCodes["ale"] = ("Aleut", "") +LanguageCodes["alg"] = ("Algonquian languages", "") +LanguageCodes["amh"] = LanguageCodes["am"] = ("Amharic", "Semitic") +LanguageCodes["ang"] = ("English, Old (ca. 450-1100)", "") +LanguageCodes["apa"] = ("Apache languages", "") +LanguageCodes["ara"] = LanguageCodes["ar"] = ("Arabic", "Semitic") +LanguageCodes["arc"] = ("Aramaic", "") +LanguageCodes["arn"] = ("Araucanian", "") +LanguageCodes["arp"] = ("Arapaho", "") +LanguageCodes["art"] = ("Artificial (Other)", "") +LanguageCodes["arw"] = ("Arawak", "") +LanguageCodes["asm"] = LanguageCodes["as"] = ("Assamese", "Indian") +LanguageCodes["ath"] = ("Athapascan languages", "") +LanguageCodes["aus"] = ("Australian languages", "") +LanguageCodes["ava"] = ("Avaric", "") +LanguageCodes["ave"] = LanguageCodes["ae"] = ("Avestan", "") +LanguageCodes["awa"] = ("Awadhi", "") +LanguageCodes["aym"] = LanguageCodes["ay"] = ("Aymara", "Amerindian") +LanguageCodes["aze"] = LanguageCodes["az"] = ("Azerbaijani", "Turkic/altaic") +LanguageCodes["bad"] = ("Banda", "") +LanguageCodes["bai"] = ("Bamileke languages", "") +LanguageCodes["bak"] = LanguageCodes["ba"] = ("Bashkir", "Turkic/altaic") +LanguageCodes["bal"] = ("Baluchi", "") +LanguageCodes["bam"] = ("Bambara", "") +LanguageCodes["ban"] = ("Balinese", "") +LanguageCodes["bas"] = ("Basa", "") +LanguageCodes["bat"] = ("Baltic (Other)", "") +LanguageCodes["bej"] = ("Beja", "") +LanguageCodes["bel"] = LanguageCodes["be"] = ("Belarusian", "Slavic") +LanguageCodes["bem"] = ("Bemba", "") +LanguageCodes["ben"] = LanguageCodes["bn"] = ("Bengali", "Indian") +LanguageCodes["ber"] = ("Berber (Other)", "") +LanguageCodes["bho"] = ("Bhojpuri", "") +LanguageCodes["bih"] = LanguageCodes["bh"] = ("Bihari", "Indian") +LanguageCodes["bik"] = ("Bikol", "") +LanguageCodes["bin"] = ("Bini", "") +LanguageCodes["bis"] = LanguageCodes["bi"] = ("Bislama", "") +LanguageCodes["bla"] = ("Siksika", "") +LanguageCodes["bnt"] = ("Bantu (Other)", "") +LanguageCodes["bod"] = LanguageCodes["tib"] = LanguageCodes["bo"] = ("Tibetan", "Asian") +LanguageCodes["bos"] = LanguageCodes["bs"] = ("Bosnian", "") +LanguageCodes["bra"] = ("Braj", "") +LanguageCodes["bre"] = LanguageCodes["br"] = ("Breton", "Celtic") +LanguageCodes["btk"] = ("Batak (Indonesia)", "") +LanguageCodes["bua"] = ("Buriat", "") +LanguageCodes["bug"] = ("Buginese", "") +LanguageCodes["bul"] = LanguageCodes["bg"] = ("Bulgarian", "Slavic") +LanguageCodes["cad"] = ("Caddo", "") +LanguageCodes["cai"] = ("Central American Indian (Other)", "") +LanguageCodes["car"] = ("Carib", "") +LanguageCodes["cat"] = LanguageCodes["ca"] = ("Catalan", "Romance") +LanguageCodes["cau"] = ("Caucasian (Other)", "") +LanguageCodes["ceb"] = ("Cebuano", "") +LanguageCodes["cel"] = ("Celtic (Other)", "") +LanguageCodes["ces"] = LanguageCodes["cze"] = LanguageCodes["cs"] = ("Czech", "Slavic") +LanguageCodes["cha"] = LanguageCodes["ch"] = ("Chamorro", "") +LanguageCodes["chb"] = ("Chibcha", "") +LanguageCodes["che"] = LanguageCodes["ce"] = ("Chechen", "") +LanguageCodes["chg"] = ("Chagatai", "") +LanguageCodes["chk"] = ("Chuukese", "") +LanguageCodes["chm"] = ("Mari", "") +LanguageCodes["chn"] = ("Chinook jargon", "") +LanguageCodes["cho"] = ("Choctaw", "") +LanguageCodes["chp"] = ("Chipewyan", "") +LanguageCodes["chr"] = ("Cherokee", "") +LanguageCodes["chu"] = LanguageCodes["cu"] = ("Church Slavic", "") +LanguageCodes["chv"] = LanguageCodes["cv"] = ("Chuvash", "") +LanguageCodes["chy"] = ("Cheyenne", "") +LanguageCodes["cmc"] = ("Chamic languages", "") +LanguageCodes["cop"] = ("Coptic", "") +LanguageCodes["cor"] = LanguageCodes["kw"] = ("Cornish", "") +LanguageCodes["cos"] = LanguageCodes["co"] = ("Corsican", "Romance") +LanguageCodes["cpe"] = ("Creoles and pidgins, English based (Other)", "") +LanguageCodes["cpf"] = ("Creoles and pidgins, French-based (Other)", "") +LanguageCodes["cpp"] = ("Creoles and pidgins, Portuguese-based (Other)", "") +LanguageCodes["cre"] = ("Cree", "") +LanguageCodes["crp"] = ("Creoles and pidgins (Other)", "") +LanguageCodes["cus"] = ("Cushitic (Other)", "") +LanguageCodes["cym"] = LanguageCodes["wel"] = LanguageCodes["cy"] = ("Welsh", "Celtic") +LanguageCodes["dak"] = ("Dakota", "") +LanguageCodes["dan"] = LanguageCodes["da"] = ("Danish", "Germanic") +LanguageCodes["day"] = ("Dayak", "") +LanguageCodes["del"] = ("Delaware", "") +LanguageCodes["den"] = ("Slave (Athapascan)", "") +LanguageCodes["deu"] = LanguageCodes["ger"] = LanguageCodes["de"] = ("German", "Germanic") +LanguageCodes["dgr"] = ("Dogrib", "") +LanguageCodes["din"] = ("Dinka", "") +LanguageCodes["div"] = ("Divehi", "") +LanguageCodes["doi"] = ("Dogri", "") +LanguageCodes["dra"] = ("Dravidian (Other)", "") +LanguageCodes["dua"] = ("Duala", "") +LanguageCodes["dum"] = ("Dutch, Middle (ca. 1050-1350)", "") +LanguageCodes["dyu"] = ("Dyula", "") +LanguageCodes["dzo"] = LanguageCodes["dz"] = ("Dzongkha", "Asian") +LanguageCodes["efi"] = ("Efik", "") +LanguageCodes["egy"] = ("Egyptian (Ancient)", "") +LanguageCodes["eka"] = ("Ekajuk", "") +LanguageCodes["ell"] = LanguageCodes["gre"] = LanguageCodes["el"] = ("Greek, Modern (1453-)", "Latin/greek") +LanguageCodes["elx"] = ("Elamite", "") +LanguageCodes["eng"] = LanguageCodes["en"] = ("English", "Germanic") +LanguageCodes["enm"] = ("English, Middle (1100-1500)", "") +LanguageCodes["epo"] = LanguageCodes["eo"] = ("Esperanto", "International aux.") +LanguageCodes["est"] = LanguageCodes["et"] = ("Estonian", "Finno-ugric") +LanguageCodes["eus"] = LanguageCodes["baq"] = LanguageCodes["eu"] = ("Basque", "Basque") +LanguageCodes["ewe"] = ("Ewe", "") +LanguageCodes["ewo"] = ("Ewondo", "") +LanguageCodes["fan"] = ("Fang", "") +LanguageCodes["fao"] = LanguageCodes["fo"] = ("Faroese", "Germanic") +LanguageCodes["fas"] = LanguageCodes["per"] = LanguageCodes["fa"] = ("Persian", "") +LanguageCodes["fat"] = ("Fanti", "") +LanguageCodes["fij"] = LanguageCodes["fj"] = ("Fijian", "Oceanic/indonesian") +LanguageCodes["fin"] = LanguageCodes["fi"] = ("Finnish", "Finno-ugric") +LanguageCodes["fiu"] = ("Finno-Ugrian (Other)", "") +LanguageCodes["fon"] = ("Fon", "") +LanguageCodes["fra"] = LanguageCodes["fre"] = LanguageCodes["fr"] = ("French", "Romance") +LanguageCodes["frm"] = ("French, Middle (ca. 1400-1600)", "") +LanguageCodes["fro"] = ("French, Old (842-ca. 1400)", "") +LanguageCodes["fry"] = LanguageCodes["fy"] = ("Frisian", "Germanic") +LanguageCodes["ful"] = ("Fulah", "") +LanguageCodes["fur"] = ("Friulian", "") +LanguageCodes["gaa"] = ("Ga", "") +LanguageCodes["gay"] = ("Gayo", "") +LanguageCodes["gba"] = ("Gbaya", "") +LanguageCodes["gem"] = ("Germanic (Other)", "") +LanguageCodes["gez"] = ("Geez", "") +LanguageCodes["gil"] = ("Gilbertese", "") +LanguageCodes["gla"] = LanguageCodes["gd"] = ("Gaelic (Scots)", "Celtic") +LanguageCodes["gle"] = LanguageCodes["ga"] = ("Irish", "Celtic") +LanguageCodes["glg"] = LanguageCodes["gl"] = ("Gallegan", "Romance") +LanguageCodes["glv"] = LanguageCodes["gv"] = ("Manx", "") +LanguageCodes["gmh"] = ("German, Middle High (ca. 1050-1500)", "") +LanguageCodes["goh"] = ("German, Old High (ca. 750-1050)", "") +LanguageCodes["gon"] = ("Gondi", "") +LanguageCodes["gor"] = ("Gorontalo", "") +LanguageCodes["got"] = ("Gothic", "") +LanguageCodes["grb"] = ("Grebo", "") +LanguageCodes["grc"] = ("Greek, Ancient (to 1453)", "") +LanguageCodes["grn"] = LanguageCodes["gn"] = ("Guarani", "Amerindian") +LanguageCodes["guj"] = LanguageCodes["gu"] = ("Gujarati", "Indian") +LanguageCodes["gwi"] = ("Gwich´in", "") +LanguageCodes["hai"] = ("Haida", "") +LanguageCodes["hau"] = LanguageCodes["ha"] = ("Hausa", "Negro-african") +LanguageCodes["haw"] = ("Hawaiian", "") +LanguageCodes["heb"] = LanguageCodes["he"] = ("Hebrew", "") +LanguageCodes["her"] = LanguageCodes["hz"] = ("Herero", "") +LanguageCodes["hil"] = ("Hiligaynon", "") +LanguageCodes["him"] = ("Himachali", "") +LanguageCodes["hin"] = LanguageCodes["hi"] = ("Hindi", "Indian") +LanguageCodes["hit"] = ("Hittite", "") +LanguageCodes["hmn"] = ("Hmong", "") +LanguageCodes["hmo"] = LanguageCodes["ho"] = ("Hiri Motu", "") +LanguageCodes["hrv"] = LanguageCodes["scr"] = LanguageCodes["hr"] = ("Croatian", "Slavic") +LanguageCodes["hun"] = LanguageCodes["hu"] = ("Hungarian", "Finno-ugric") +LanguageCodes["hup"] = ("Hupa", "") +LanguageCodes["hye"] = LanguageCodes["arm"] = LanguageCodes["hy"] = ("Armenian", "Indo-european (other)") +LanguageCodes["iba"] = ("Iban", "") +LanguageCodes["ibo"] = ("Igbo", "") +LanguageCodes["ijo"] = ("Ijo", "") +LanguageCodes["iku"] = LanguageCodes["iu"] = ("Inuktitut", "") +LanguageCodes["ile"] = LanguageCodes["ie"] = ("Interlingue", "International aux.") +LanguageCodes["ilo"] = ("Iloko", "") +LanguageCodes["ina"] = LanguageCodes["ia"] = ("Interlingua (International Auxiliary Language Association)", "International aux.") +LanguageCodes["inc"] = ("Indic (Other)", "") +LanguageCodes["ind"] = LanguageCodes["id"] = ("Indonesian", "") +LanguageCodes["ine"] = ("Indo-European (Other)", "") +LanguageCodes["ipk"] = LanguageCodes["ik"] = ("Inupiaq", "Eskimo") +LanguageCodes["ira"] = ("Iranian (Other)", "") +LanguageCodes["iro"] = ("Iroquoian languages", "") +LanguageCodes["isl"] = LanguageCodes["ice"] = LanguageCodes["is"] = ("Icelandic", "Germanic") +LanguageCodes["ita"] = LanguageCodes["it"] = ("Italian", "Romance") +LanguageCodes["jaw"] = LanguageCodes["jav"] = LanguageCodes["jw"] = ("Javanese", "") +LanguageCodes["jpn"] = LanguageCodes["ja"] = ("Japanese", "Asian") +LanguageCodes["jpr"] = ("Judeo-Persian", "") +LanguageCodes["kaa"] = ("Kara-Kalpak", "") +LanguageCodes["kab"] = ("Kabyle", "") +LanguageCodes["kac"] = ("Kachin", "") +LanguageCodes["kal"] = LanguageCodes["kl"] = ("Kalaallisut", "Eskimo") +LanguageCodes["kam"] = ("Kamba", "") +LanguageCodes["kan"] = LanguageCodes["kn"] = ("Kannada", "Dravidian") +LanguageCodes["kar"] = ("Karen", "") +LanguageCodes["kas"] = LanguageCodes["ks"] = ("Kashmiri", "Indian") +LanguageCodes["kat"] = LanguageCodes["geo"] = LanguageCodes["ka"] = ("Georgian", "Ibero-caucasian") +LanguageCodes["kau"] = ("Kanuri", "") +LanguageCodes["kaw"] = ("Kawi", "") +LanguageCodes["kaz"] = LanguageCodes["kk"] = ("Kazakh", "Turkic/altaic") +LanguageCodes["kha"] = ("Khasi", "") +LanguageCodes["khi"] = ("Khoisan (Other)", "") +LanguageCodes["khm"] = LanguageCodes["km"] = ("Khmer", "Asian") +LanguageCodes["kho"] = ("Khotanese", "") +LanguageCodes["kik"] = LanguageCodes["ki"] = ("Kikuyu", "") +LanguageCodes["kin"] = LanguageCodes["rw"] = ("Kinyarwanda", "Negro-african") +LanguageCodes["kir"] = LanguageCodes["ky"] = ("Kirghiz", "Turkic/altaic") +LanguageCodes["kmb"] = ("Kimbundu", "") +LanguageCodes["kok"] = ("Konkani", "") +LanguageCodes["kom"] = LanguageCodes["kv"] = ("Komi", "") +LanguageCodes["kon"] = ("Kongo", "") +LanguageCodes["kor"] = LanguageCodes["ko"] = ("Korean", "Asian") +LanguageCodes["kos"] = ("Kosraean", "") +LanguageCodes["kpe"] = ("Kpelle", "") +LanguageCodes["kro"] = ("Kru", "") +LanguageCodes["kru"] = ("Kurukh", "") +LanguageCodes["kum"] = ("Kumyk", "") +LanguageCodes["kur"] = LanguageCodes["ku"] = ("Kurdish", "Iranian") +LanguageCodes["kut"] = ("Kutenai", "") +LanguageCodes["lad"] = ("Ladino", "") +LanguageCodes["lah"] = ("Lahnda", "") +LanguageCodes["lam"] = ("Lamba", "") +LanguageCodes["lao"] = LanguageCodes["lo"] = ("Lao", "Asian") +LanguageCodes["lat"] = LanguageCodes["la"] = ("Latin", "Latin/greek") +LanguageCodes["lav"] = LanguageCodes["lv"] = ("Latvian", "Baltic") +LanguageCodes["lez"] = ("Lezghian", "") +LanguageCodes["lin"] = LanguageCodes["ln"] = ("Lingala", "Negro-african") +LanguageCodes["lit"] = LanguageCodes["lt"] = ("Lithuanian", "Baltic") +LanguageCodes["lol"] = ("Mongo", "") +LanguageCodes["loz"] = ("Lozi", "") +LanguageCodes["ltz"] = LanguageCodes["lb"] = ("Letzeburgesch", "") +LanguageCodes["lua"] = ("Luba-Lulua", "") +LanguageCodes["lub"] = ("Luba-Katanga", "") +LanguageCodes["lug"] = ("Ganda", "") +LanguageCodes["lui"] = ("Luiseno", "") +LanguageCodes["lun"] = ("Lunda", "") +LanguageCodes["luo"] = ("Luo (Kenya and Tanzania)", "") +LanguageCodes["lus"] = ("lushai", "") +LanguageCodes["mad"] = ("Madurese", "") +LanguageCodes["mag"] = ("Magahi", "") +LanguageCodes["mah"] = LanguageCodes["mh"] = ("Marshall", "") +LanguageCodes["mai"] = ("Maithili", "") +LanguageCodes["mak"] = ("Makasar", "") +LanguageCodes["mal"] = LanguageCodes["ml"] = ("Malayalam", "Dravidian") +LanguageCodes["man"] = ("Mandingo", "") +LanguageCodes["map"] = ("Austronesian (Other)", "") +LanguageCodes["mar"] = LanguageCodes["mr"] = ("Marathi", "Indian") +LanguageCodes["mas"] = ("Masai", "") +LanguageCodes["mdr"] = ("Mandar", "") +LanguageCodes["men"] = ("Mende", "") +LanguageCodes["mga"] = ("Irish, Middle (900-1200)", "") +LanguageCodes["mic"] = ("Micmac", "") +LanguageCodes["min"] = ("Minangkabau", "") +LanguageCodes["mis"] = ("Miscellaneous languages", "") +LanguageCodes["mkd"] = LanguageCodes["mac"] = LanguageCodes["mk"] = ("Macedonian", "Slavic") +LanguageCodes["mkh"] = ("Mon-Khmer (Other)", "") +LanguageCodes["mlg"] = LanguageCodes["mg"] = ("Malagasy", "Oceanic/indonesian") +LanguageCodes["mlt"] = LanguageCodes["mt"] = ("Maltese", "Semitic") +LanguageCodes["mnc"] = ("Manchu", "") +LanguageCodes["mni"] = ("Manipuri", "") +LanguageCodes["mno"] = ("Manobo languages", "") +LanguageCodes["moh"] = ("Mohawk", "") +LanguageCodes["mol"] = LanguageCodes["mo"] = ("Moldavian", "Romance") +LanguageCodes["mon"] = LanguageCodes["mn"] = ("Mongolian", "") +LanguageCodes["mos"] = ("Mossi", "") +LanguageCodes["mri"] = LanguageCodes["mao"] = LanguageCodes["mi"] = ("Maori", "Oceanic/indonesian") +LanguageCodes["msa"] = LanguageCodes["may"] = LanguageCodes["ms"] = ("Malay", "Oceanic/indonesian") +LanguageCodes["mul"] = ("Multiple languages", "") +LanguageCodes["mun"] = ("Munda languages", "") +LanguageCodes["mus"] = ("Creek", "") +LanguageCodes["mwr"] = ("Marwari", "") +LanguageCodes["mya"] = LanguageCodes["bur"] = LanguageCodes["my"] = ("Burmese", "Asian") +LanguageCodes["myn"] = ("Mayan languages", "") +LanguageCodes["nah"] = ("Nahuatl", "") +LanguageCodes["nai"] = ("North American Indian", "") +LanguageCodes["nau"] = LanguageCodes["na"] = ("Nauru", "") +LanguageCodes["nav"] = LanguageCodes["nv"] = ("Navajo", "") +LanguageCodes["nbl"] = LanguageCodes["nr"] = ("Ndebele, South", "") +LanguageCodes["nde"] = LanguageCodes["nd"] = ("Ndebele, North", "") +LanguageCodes["ndo"] = LanguageCodes["ng"] = ("Ndonga", "") +LanguageCodes["nds"] = ("Low German; Low Saxon; German, Low; Saxon, Low", "") +LanguageCodes["nep"] = LanguageCodes["ne"] = ("Nepali", "Indian") +LanguageCodes["new"] = ("Newari", "") +LanguageCodes["nia"] = ("Nias", "") +LanguageCodes["nic"] = ("Niger-Kordofanian (Other)", "") +LanguageCodes["niu"] = ("Niuean", "") +LanguageCodes["nld"] = LanguageCodes["dut"] = LanguageCodes["nl"] = ("Dutch", "Germanic") +LanguageCodes["nno"] = LanguageCodes["nn"] = ("Norwegian Nynorsk", "") +LanguageCodes["nob"] = LanguageCodes["nb"] = ("Norwegian Bokmål", "") +LanguageCodes["non"] = ("Norse, Old", "") +LanguageCodes["nor"] = LanguageCodes["no"] = ("Norwegian", "Germanic") +LanguageCodes["nso"] = ("Sotho, Northern", "") +LanguageCodes["nub"] = ("Nubian languages", "") +LanguageCodes["nya"] = LanguageCodes["ny"] = ("Chichewa; Nyanja", "") +LanguageCodes["nym"] = ("Nyamwezi", "") +LanguageCodes["nyn"] = ("Nyankole", "") +LanguageCodes["nyo"] = ("Nyoro", "") +LanguageCodes["nzi"] = ("Nzima", "") +LanguageCodes["oci"] = LanguageCodes["oc"] = ("Occitan (post 1500); Provençal", "Romance") +LanguageCodes["oji"] = ("Ojibwa", "") +LanguageCodes["ori"] = LanguageCodes["or"] = ("Oriya", "Indian") +LanguageCodes["orm"] = LanguageCodes["om"] = ("Oromo", "Hamitic") +LanguageCodes["osa"] = ("Osage", "") +LanguageCodes["oss"] = LanguageCodes["os"] = ("Ossetian; Ossetic", "") +LanguageCodes["ota"] = ("Turkish, Ottoman (1500-1928)", "") +LanguageCodes["oto"] = ("Otomian languages", "") +LanguageCodes["paa"] = ("Papuan (Other)", "") +LanguageCodes["pag"] = ("Pangasinan", "") +LanguageCodes["pal"] = ("Pahlavi", "") +LanguageCodes["pam"] = ("Pampanga", "") +LanguageCodes["pan"] = LanguageCodes["pa"] = ("Panjabi", "Indian") +LanguageCodes["pap"] = ("Papiamento", "") +LanguageCodes["pau"] = ("Palauan", "") +LanguageCodes["peo"] = ("Persian, Old (ca. 600-400 b.c.)", "") +LanguageCodes["phi"] = ("Philippine (Other)", "") +LanguageCodes["pli"] = LanguageCodes["pi"] = ("Pali", "") +LanguageCodes["pol"] = LanguageCodes["pl"] = ("Polish", "Slavic") +LanguageCodes["pon"] = ("Pohnpeian", "") +LanguageCodes["por"] = LanguageCodes["pt"] = ("Portuguese", "Romance") +LanguageCodes["pra"] = ("Prakrit languages", "") +LanguageCodes["pro"] = ("Provençal, Old (to 1500)", "") +LanguageCodes["pus"] = LanguageCodes["ps"] = ("Pushto", "Iranian") +LanguageCodes["que"] = LanguageCodes["qu"] = ("Quechua", "Amerindian") +LanguageCodes["raj"] = ("Rajasthani", "") +LanguageCodes["rap"] = ("Rapanui", "") +LanguageCodes["rar"] = ("Rarotongan", "") +LanguageCodes["roa"] = ("Romance (Other)", "") +LanguageCodes["rom"] = ("Romany", "") +LanguageCodes["ron"] = LanguageCodes["rum"] = LanguageCodes["ro"] = ("Romanian", "Romance") +LanguageCodes["run"] = LanguageCodes["rn"] = ("Rundi", "Negro-african") +LanguageCodes["rus"] = LanguageCodes["ru"] = ("Russian", "Slavic") +LanguageCodes["sad"] = ("Sandawe", "") +LanguageCodes["sag"] = LanguageCodes["sg"] = ("Sango", "Negro-african") +LanguageCodes["sah"] = ("Yakut", "") +LanguageCodes["sai"] = ("South American Indian (Other)", "") +LanguageCodes["sal"] = ("Salishan languages", "") +LanguageCodes["sam"] = ("Samaritan Aramaic", "") +LanguageCodes["san"] = LanguageCodes["sa"] = ("Sanskrit", "Indian") +LanguageCodes["sas"] = ("Sasak", "") +LanguageCodes["sat"] = ("Santali", "") +LanguageCodes["sco"] = ("Scots", "") +LanguageCodes["sel"] = ("Selkup", "") +LanguageCodes["sem"] = ("Semitic (Other)", "") +LanguageCodes["sga"] = ("Irish, Old (to 900)", "") +LanguageCodes["sgn"] = ("Sign Languages", "") +LanguageCodes["shn"] = ("Shan", "") +LanguageCodes["sid"] = ("Sidamo", "") +LanguageCodes["sin"] = LanguageCodes["si"] = ("Sinhalese", "Indian") +LanguageCodes["sio"] = ("Siouan languages", "") +LanguageCodes["sit"] = ("Sino-Tibetan (Other)", "") +LanguageCodes["sla"] = ("Slavic (Other)", "") +LanguageCodes["slk"] = LanguageCodes["slo"] = LanguageCodes["sk"] = ("Slovak", "Slavic") +LanguageCodes["slv"] = LanguageCodes["sl"] = ("Slovenian", "Slavic") +LanguageCodes["sme"] = LanguageCodes["se"] = ("Northern Sami", "") +LanguageCodes["smi"] = ("Sami languages (Other)", "") +LanguageCodes["smo"] = LanguageCodes["sm"] = ("Samoan", "Oceanic/indonesian") +LanguageCodes["sna"] = LanguageCodes["sn"] = ("Shona", "Negro-african") +LanguageCodes["snd"] = LanguageCodes["sd"] = ("Sindhi", "Indian") +LanguageCodes["snk"] = ("Soninke", "") +LanguageCodes["sog"] = ("Sogdian", "") +LanguageCodes["som"] = LanguageCodes["so"] = ("Somali", "Hamitic") +LanguageCodes["son"] = ("Songhai", "") +LanguageCodes["sot"] = LanguageCodes["st"] = ("Sotho, Southern", "Negro-african") +LanguageCodes["esl"] = LanguageCodes["spa"] = LanguageCodes["es"] = ("Spanish", "Romance") +LanguageCodes["sqi"] = LanguageCodes["alb"] = LanguageCodes["sq"] = ("Albanian", "Indo-european (other)") +LanguageCodes["srd"] = LanguageCodes["sc"] = ("Sardinian", "") +LanguageCodes["srp"] = LanguageCodes["scc"] = LanguageCodes["sr"] = ("Serbian", "Slavic") +LanguageCodes["srr"] = ("Serer", "") +LanguageCodes["ssa"] = ("Nilo-Saharan (Other)", "") +LanguageCodes["ssw"] = LanguageCodes["ss"] = ("Swati", "Negro-african") +LanguageCodes["suk"] = ("Sukuma", "") +LanguageCodes["sun"] = LanguageCodes["su"] = ("Sundanese", "Oceanic/indonesian") +LanguageCodes["sus"] = ("Susu", "") +LanguageCodes["sux"] = ("Sumerian", "") +LanguageCodes["swa"] = LanguageCodes["sw"] = ("Swahili", "Negro-african") +LanguageCodes["swe"] = LanguageCodes["sv"] = ("Swedish", "Germanic") +LanguageCodes["syr"] = ("Syriac", "") +LanguageCodes["tah"] = LanguageCodes["ty"] = ("Tahitian", "") +LanguageCodes["tai"] = ("Tai (Other)", "") +LanguageCodes["tam"] = LanguageCodes["ta"] = ("Tamil", "Dravidian") +LanguageCodes["tat"] = LanguageCodes["tt"] = ("Tatar", "Turkic/altaic") +LanguageCodes["tel"] = LanguageCodes["te"] = ("Telugu", "Dravidian") +LanguageCodes["tem"] = ("Timne", "") +LanguageCodes["ter"] = ("Tereno", "") +LanguageCodes["tet"] = ("Tetum", "") +LanguageCodes["tgk"] = LanguageCodes["tg"] = ("Tajik", "Iranian") +LanguageCodes["tgl"] = LanguageCodes["tl"] = ("Tagalog", "Oceanic/indonesian") +LanguageCodes["tha"] = LanguageCodes["th"] = ("Thai", "Asian") +LanguageCodes["tig"] = ("Tigre", "") +LanguageCodes["tir"] = LanguageCodes["ti"] = ("Tigrinya", "Semitic") +LanguageCodes["tiv"] = ("Tiv", "") +LanguageCodes["tkl"] = ("Tokelau", "") +LanguageCodes["tli"] = ("Tlingit", "") +LanguageCodes["tmh"] = ("Tamashek", "") +LanguageCodes["tog"] = ("Tonga (Nyasa)", "") +LanguageCodes["ton"] = LanguageCodes["to"] = ("Tonga (Tonga Islands)", "Oceanic/indonesian") +LanguageCodes["tpi"] = ("Tok Pisin", "") +LanguageCodes["tsi"] = ("Tsimshian", "") +LanguageCodes["tsn"] = LanguageCodes["tn"] = ("Tswana", "Negro-african") +LanguageCodes["tso"] = LanguageCodes["ts"] = ("Tsonga", "Negro-african") +LanguageCodes["tuk"] = LanguageCodes["tk"] = ("Turkmen", "Turkic/altaic") +LanguageCodes["tum"] = ("Tumbuka", "") +LanguageCodes["tur"] = LanguageCodes["tr"] = ("Turkish", "Turkic/altaic") +LanguageCodes["tut"] = ("Altaic (Other)", "") +LanguageCodes["tvl"] = ("Tuvalu", "") +LanguageCodes["twi"] = LanguageCodes["tw"] = ("Twi", "Negro-african") +LanguageCodes["tyv"] = ("Tuvinian", "") +LanguageCodes["uga"] = ("Ugaritic", "") +LanguageCodes["uig"] = LanguageCodes["ug"] = ("Uighur", "") +LanguageCodes["ukr"] = LanguageCodes["uk"] = ("Ukrainian", "Slavic") +LanguageCodes["umb"] = ("Umbundu", "") +LanguageCodes["und"] = ("Undetermined", "") +LanguageCodes["urd"] = LanguageCodes["ur"] = ("Urdu", "Indian") +LanguageCodes["uzb"] = LanguageCodes["uz"] = ("Uzbek", "Turkic/altaic") +LanguageCodes["vai"] = ("Vai", "") +LanguageCodes["ven"] = ("Venda", "") +LanguageCodes["vie"] = LanguageCodes["vi"] = ("Vietnamese", "Asian") +LanguageCodes["vol"] = LanguageCodes["vo"] = ("Volapük", "International aux.") +LanguageCodes["vot"] = ("Votic", "") +LanguageCodes["wak"] = ("Wakashan languages", "") +LanguageCodes["wal"] = ("Walamo", "") +LanguageCodes["war"] = ("Waray", "") +LanguageCodes["was"] = ("Washo", "") +LanguageCodes["wen"] = ("Sorbian languages", "") +LanguageCodes["wol"] = LanguageCodes["wo"] = ("Wolof", "Negro-african") +LanguageCodes["xho"] = LanguageCodes["xh"] = ("Xhosa", "Negro-african") +LanguageCodes["yao"] = ("Yao", "") +LanguageCodes["yap"] = ("Yapese", "") +LanguageCodes["yid"] = LanguageCodes["yi"] = ("Yiddish", "") +LanguageCodes["yor"] = LanguageCodes["yo"] = ("Yoruba", "Negro-african") +LanguageCodes["ypk"] = ("Yupik languages", "") +LanguageCodes["zap"] = ("Zapotec", "") +LanguageCodes["zen"] = ("Zenaga", "") +LanguageCodes["zha"] = LanguageCodes["za"] = ("Zhuang", "") +LanguageCodes["zho"] = LanguageCodes["chi"] = LanguageCodes["zh"] = ("Chinese", "Asian") +LanguageCodes["znd"] = ("Zande", "") +LanguageCodes["zul"] = LanguageCodes["zu"] = ("Zulu", "Negro-african") +LanguageCodes["zun"] = ("Zuni", "") diff --git a/lib/python/Tools/Import.py b/lib/python/Tools/Import.py new file mode 100644 index 0000000..a46e1d3 --- /dev/null +++ b/lib/python/Tools/Import.py @@ -0,0 +1,6 @@ +def my_import(name): + mod = __import__(name) + components = name.split('.') + for comp in components[1:]: + mod = getattr(mod, comp) + return mod diff --git a/lib/python/Tools/KeyBindings.py b/lib/python/Tools/KeyBindings.py new file mode 100644 index 0000000..77df2e4 --- /dev/null +++ b/lib/python/Tools/KeyBindings.py @@ -0,0 +1,157 @@ + +keyBindings = { } + +from keyids import KEYIDS +from Components.config import config +from Components.RcModel import rc_model + +keyDescriptions = [{ + KEYIDS["BTN_0"]: ("UP", "fp"), + KEYIDS["BTN_1"]: ("DOWN", "fp"), + KEYIDS["KEY_OK"]: ("OK", ""), + KEYIDS["KEY_UP"]: ("UP",), + KEYIDS["KEY_DOWN"]: ("DOWN",), + KEYIDS["KEY_POWER"]: ("POWER",), + KEYIDS["KEY_RED"]: ("RED",), + KEYIDS["KEY_BLUE"]: ("BLUE",), + KEYIDS["KEY_GREEN"]: ("GREEN",), + KEYIDS["KEY_YELLOW"]: ("YELLOW",), + KEYIDS["KEY_MENU"]: ("MENU",), + KEYIDS["KEY_LEFT"]: ("LEFT",), + KEYIDS["KEY_RIGHT"]: ("RIGHT",), + KEYIDS["KEY_VIDEO"]: ("PVR",), + KEYIDS["KEY_INFO"]: ("INFO",), + KEYIDS["KEY_AUDIO"]: ("YELLOW",), + KEYIDS["KEY_TV"]: ("TV",), + KEYIDS["KEY_RADIO"]: ("RADIO",), + KEYIDS["KEY_TEXT"]: ("TEXT",), + KEYIDS["KEY_NEXT"]: ("ARROWRIGHT",), + KEYIDS["KEY_PREVIOUS"]: ("ARROWLEFT",), + KEYIDS["KEY_PREVIOUSSONG"]: ("REWIND",), + KEYIDS["KEY_PLAYPAUSE"]: ("PLAYPAUSE",), + KEYIDS["KEY_PLAY"]: ("PLAYPAUSE",), + KEYIDS["KEY_NEXTSONG"]: ("FASTFORWARD",), + KEYIDS["KEY_CHANNELUP"]: ("BOUQUET+",), + KEYIDS["KEY_CHANNELDOWN"]: ("BOUQUET-",), + KEYIDS["KEY_0"]: ("0",), + KEYIDS["KEY_1"]: ("1",), + KEYIDS["KEY_2"]: ("2",), + KEYIDS["KEY_3"]: ("3",), + KEYIDS["KEY_4"]: ("4",), + KEYIDS["KEY_5"]: ("5",), + KEYIDS["KEY_6"]: ("6",), + KEYIDS["KEY_7"]: ("7",), + KEYIDS["KEY_8"]: ("8",), + KEYIDS["KEY_9"]: ("9",), + KEYIDS["KEY_EXIT"]: ("EXIT",), + KEYIDS["KEY_STOP"]: ("STOP",), + KEYIDS["KEY_RECORD"]: ("RECORD",) + }, + { + KEYIDS["BTN_0"]: ("UP", "fp"), + KEYIDS["BTN_1"]: ("DOWN", "fp"), + KEYIDS["KEY_OK"]: ("OK", ""), + KEYIDS["KEY_UP"]: ("UP",), + KEYIDS["KEY_DOWN"]: ("DOWN",), + KEYIDS["KEY_POWER"]: ("POWER",), + KEYIDS["KEY_RED"]: ("RED",), + KEYIDS["KEY_BLUE"]: ("BLUE",), + KEYIDS["KEY_GREEN"]: ("GREEN",), + KEYIDS["KEY_YELLOW"]: ("YELLOW",), + KEYIDS["KEY_MENU"]: ("MENU",), + KEYIDS["KEY_LEFT"]: ("LEFT",), + KEYIDS["KEY_RIGHT"]: ("RIGHT",), + KEYIDS["KEY_VIDEO"]: ("VIDEO",), + KEYIDS["KEY_INFO"]: ("INFO",), + KEYIDS["KEY_AUDIO"]: ("AUDIO",), + KEYIDS["KEY_TV"]: ("TV",), + KEYIDS["KEY_RADIO"]: ("RADIO",), + KEYIDS["KEY_TEXT"]: ("TEXT",), + KEYIDS["KEY_NEXT"]: ("ARROWRIGHT",), + KEYIDS["KEY_PREVIOUS"]: ("ARROWLEFT",), + KEYIDS["KEY_PREVIOUSSONG"]: ("RED", "SHIFT"), + KEYIDS["KEY_PLAYPAUSE"]: ("YELLOW", "SHIFT"), + KEYIDS["KEY_PLAY"]: ("GREEN", "SHIFT"), + KEYIDS["KEY_NEXTSONG"]: ("BLUE", "SHIFT"), + KEYIDS["KEY_CHANNELUP"]: ("BOUQUET+",), + KEYIDS["KEY_CHANNELDOWN"]: ("BOUQUET-",), + KEYIDS["KEY_0"]: ("0",), + KEYIDS["KEY_1"]: ("1",), + KEYIDS["KEY_2"]: ("2",), + KEYIDS["KEY_3"]: ("3",), + KEYIDS["KEY_4"]: ("4",), + KEYIDS["KEY_5"]: ("5",), + KEYIDS["KEY_6"]: ("6",), + KEYIDS["KEY_7"]: ("7",), + KEYIDS["KEY_8"]: ("8",), + KEYIDS["KEY_9"]: ("9",), + KEYIDS["KEY_EXIT"]: ("EXIT",), + KEYIDS["KEY_STOP"]: ("TV", "SHIFT"), + KEYIDS["KEY_RECORD"]: ("RADIO", "SHIFT") + }, + { + KEYIDS["BTN_0"]: ("UP", "fp"), + KEYIDS["BTN_1"]: ("DOWN", "fp"), + KEYIDS["KEY_OK"]: ("OK", ""), + KEYIDS["KEY_UP"]: ("UP",), + KEYIDS["KEY_DOWN"]: ("DOWN",), + KEYIDS["KEY_POWER"]: ("POWER",), + KEYIDS["KEY_RED"]: ("RED",), + KEYIDS["KEY_BLUE"]: ("BLUE",), + KEYIDS["KEY_GREEN"]: ("GREEN",), + KEYIDS["KEY_YELLOW"]: ("YELLOW",), + KEYIDS["KEY_MENU"]: ("MENU",), + KEYIDS["KEY_LEFT"]: ("LEFT",), + KEYIDS["KEY_RIGHT"]: ("RIGHT",), + KEYIDS["KEY_VIDEO"]: ("PVR",), + KEYIDS["KEY_INFO"]: ("INFO",), + KEYIDS["KEY_AUDIO"]: ("AUDIO",), + KEYIDS["KEY_TV"]: ("TV",), + KEYIDS["KEY_RADIO"]: ("RADIO",), + KEYIDS["KEY_TEXT"]: ("TEXT",), + KEYIDS["KEY_NEXT"]: ("ARROWRIGHT",), + KEYIDS["KEY_PREVIOUS"]: ("ARROWLEFT",), + KEYIDS["KEY_PREVIOUSSONG"]: ("REWIND",), + KEYIDS["KEY_PLAYPAUSE"]: ("PAUSE",), + KEYIDS["KEY_PLAY"]: ("PLAY",), + KEYIDS["KEY_NEXTSONG"]: ("FASTFORWARD",), + KEYIDS["KEY_CHANNELUP"]: ("BOUQUET+",), + KEYIDS["KEY_CHANNELDOWN"]: ("BOUQUET-",), + KEYIDS["KEY_0"]: ("0",), + KEYIDS["KEY_1"]: ("1",), + KEYIDS["KEY_2"]: ("2",), + KEYIDS["KEY_3"]: ("3",), + KEYIDS["KEY_4"]: ("4",), + KEYIDS["KEY_5"]: ("5",), + KEYIDS["KEY_6"]: ("6",), + KEYIDS["KEY_7"]: ("7",), + KEYIDS["KEY_8"]: ("8",), + KEYIDS["KEY_9"]: ("9",), + KEYIDS["KEY_EXIT"]: ("EXIT",), + KEYIDS["KEY_STOP"]: ("STOP",), + KEYIDS["KEY_RECORD"]: ("RECORD",) + }, +] + +def addKeyBinding(domain, key, context, action, flags): + keyBindings.setdefault((context, action), []).append((key, domain, flags)) + +# returns a list of (key, flags) for a specified action +def queryKeyBinding(context, action): + if (context, action) in keyBindings: + return [(x[0], x[2]) for x in keyBindings[(context, action)]] + else: + return [ ] + +def getKeyDescription(key): + if rc_model.rcIsDefault(): + idx = config.misc.rcused.value + else: + idx = 2 + if key in keyDescriptions[idx]: + return keyDescriptions[idx].get(key, [ ]) + +def removeKeyBindings(domain): + # remove all entries of domain 'domain' + for x in keyBindings: + keyBindings[x] = filter(lambda e: e[1] != domain, keyBindings[x]) diff --git a/lib/python/Tools/LXMLTools.py b/lib/python/Tools/LXMLTools.py new file mode 100644 index 0000000..279b2a8 --- /dev/null +++ b/lib/python/Tools/LXMLTools.py @@ -0,0 +1,26 @@ + +def elementsWithTag(el, tag): + + """filters all elements of childNode with the specified function + example: nodes = elementsWithTag(childNodes, lambda x: x == "bla")""" + + # fiiixme! (works but isn't nice) + if isinstance(tag, str): + s = tag + tag = lambda x: x == s + + for x in el: + if not x.tag: + continue + if tag(x.tag): + yield x + +def mergeText(nodelist): + rc = "" + for node in nodelist: + if node.text: + rc = rc + node.text + return rc + +def stringToXML(text): + return text.replace('&', '&').replace('<', '<').replace('>', '>').replace("'", ''').replace('"', '"') diff --git a/lib/python/Tools/LoadPixmap.py b/lib/python/Tools/LoadPixmap.py new file mode 100644 index 0000000..cb8d77b --- /dev/null +++ b/lib/python/Tools/LoadPixmap.py @@ -0,0 +1,15 @@ +from enigma import loadPNG, loadJPG + +def LoadPixmap(path, desktop = None, cached = False): + if path[-4:] == ".png": + ptr = loadPNG(path) + elif path[-4:] == ".jpg": + ptr = loadJPG(path) + elif path[-1:] == ".": + alpha = loadPNG(path + "a.png") + ptr = loadJPG(path + "rgb.jpg", alpha) + else: + raise Exception("neither .png nor .jpg, please fix file extension") + if ptr and desktop: + desktop.makeCompatiblePixmap(ptr) + return ptr diff --git a/lib/python/Tools/Makefile.am b/lib/python/Tools/Makefile.am new file mode 100644 index 0000000..1528d60 --- /dev/null +++ b/lib/python/Tools/Makefile.am @@ -0,0 +1,8 @@ +installdir = $(pkglibdir)/python/Tools + +install_PYTHON = \ + FuzzyDate.py XMLTools.py LXMLTools.py Directories.py NumericalTextInput.py \ + KeyBindings.py BoundFunction.py ISO639.py Notifications.py __init__.py \ + RedirectOutput.py StbHardware.py Import.py Event.py CList.py \ + LoadPixmap.py Profile.py HardwareInfo.py Transponder.py ASCIItranslit.py \ + Downloader.py Trashcan.py GetEcmInfo.py Alternatives.py diff --git a/lib/python/Tools/Notifications.py b/lib/python/Tools/Notifications.py new file mode 100644 index 0000000..68c6f63 --- /dev/null +++ b/lib/python/Tools/Notifications.py @@ -0,0 +1,51 @@ + +notifications = [ ] + +notificationAdded = [ ] + +# notifications which are currently on screen (and might be closed by similiar notifications) +current_notifications = [ ] + +def __AddNotification(fnc, screen, id, *args, **kwargs): + if ".MessageBox'>" in `screen`: + kwargs["simple"] = True + notifications.append((fnc, screen, args, kwargs, id)) + for x in notificationAdded: + x() + +def AddNotification(screen, *args, **kwargs): + AddNotificationWithCallback(None, screen, *args, **kwargs) + +def AddNotificationWithCallback(fnc, screen, *args, **kwargs): + __AddNotification(fnc, screen, None, *args, **kwargs) + +def AddNotificationParentalControl(fnc, screen, *args, **kwargs): + RemovePopup("Parental control") + __AddNotification(fnc, screen, "Parental control", *args, **kwargs) + +def AddNotificationWithID(id, screen, *args, **kwargs): + __AddNotification(None, screen, id, *args, **kwargs) + +# we don't support notifications with callback and ID as this +# would require manually calling the callback on cancelled popups. + +def RemovePopup(id): + # remove similiar notifications + print "RemovePopup, id =", id + for x in notifications: + if x[4] and x[4] == id: + print "(found in notifications)" + notifications.remove(x) + + for x in current_notifications: + if x[0] == id: + print "(found in current notifications)" + x[1].close() + +from Screens.MessageBox import MessageBox + +def AddPopup(text, type, timeout, id = None): + if id is not None: + RemovePopup(id) + print "AddPopup, id =", id + AddNotificationWithID(id, MessageBox, text = text, type = type, timeout = timeout, close_on_any_key = True) diff --git a/lib/python/Tools/NumericalTextInput.py b/lib/python/Tools/NumericalTextInput.py new file mode 100644 index 0000000..48530bc --- /dev/null +++ b/lib/python/Tools/NumericalTextInput.py @@ -0,0 +1,182 @@ +# -*- coding: UTF-8 -*- +from enigma import eTimer +from Components.Language import language + +# Dict languageCode -> array of strings +MAP_SEARCH = ( + u"%_0", + u" 1", + u"abc2", + u"def3", + u"ghi4", + u"jkl5", + u"mno6", + u"pqrs7", + u"tuv8", + u"wxyz9", + ) +MAP_SEARCH_UPCASE = ( + U"0%_", + U"1 ", + U"ABC2", + U"DEF3", + U"GHI4", + U"JKL5", + U"MNO6", + U"PQRS7", + U"TUV8", + U"WXYZ9", + ) +MAP_DEFAULT = ( + u"0,?!&@=*'+\"()$~%", + u" 1.:;/-_", + u"abc2ABC", + u"def3DEF", + u"ghi4GHI", + u"jkl5JKL", + u"mno6MNO", + u"pqrs7PQRS", + u"tuv8TUV", + u"wxyz9WXYZ", + ) +MAP_DE = ( + u"0,?!&@=*'+\"()$~%", + u" 1.:;/-_", + u"abcä2ABCÄ", + u"def3DEF", + u"ghi4GHI", + u"jkl5JKL", + u"mnoö6MNOÖ", + u"pqrsß7PQRSß", + u"tuvü8TUVÃœ", + u"wxyz9WXYZ", + ) +MAP_ES = ( + u"0,?!&@=*'+\"()$~%", + u" 1.:;/-_", + u"abcáà2ABCÃÀ", + u"deéèf3DEFÉÈ", + u"ghiíì4GHIÃÃŒ", + u"jkl5JKL", + u"mnñoóò6MNÑOÓÒ", + u"pqrs7PQRS", + u"tuvúù8TUVÚÙ", + u"wxyz9WXYZ", + ) +MAP_SE = ( + u"0,?!&@=*'+\"()$~%", + u" 1.:;/-_", + u"abcåä2ABCÅÄ", + u"defé3DEFÉ", + u"ghi4GHI", + u"jkl5JKL", + u"mnoö6MNOÖ", + u"pqrs7PQRS", + u"tuv8TUV", + u"wxyz9WXYZ", + ) +MAP_CZ = ( + u"0,?'+\"()@$!=&*%", + u" 1.:;/-_", + u"abc2áäÄABCÃÄČ", + u"def3ÄéěDEFĎÉĚ", + u"ghi4íGHIÃ", + u"jkl5ľĺJKLĽĹ", + u"mno6ňóöôMNOŇÓÖÔ", + u"pqrs7řŕšPQRSŘŔŠ", + u"tuv8ťúůüTUVŤÚŮÜ", + u"wxyz9ýžWXYZÃŽ", + ) +MAP_PL = ( + u"0,?'+\"()@$!=&*%", + u" 1.:;/-_", + u"abcąć2ABCĄĆ", + u"defÄ™3DEFĘ", + u"ghi4GHI", + u"jklÅ‚5JKLÅ", + u"mnońó6MNOŃÓ", + u"pqrsÅ›7PQRSÅš", + u"tuv8TUV", + u"wxyzźż9WXYZŹŻ", + ) +MAP_RU = ( + u"0,?'+\"()@$!=&*%", + u" 1.:;/-_", + u"abcабвг2ABCÐБВГ", + u"defдежз3DEFДЕЖЗ", + u"ghiийкл4GHIИЙКЛ", + u"jklмноп5JKLÐœÐОП", + u"mnoÑ€Ñту6MNOРСТУ", + u"pqrsфхцч7PQRSФХЦЧ", + u"tuvшщьы8TUVШЩЬЫ", + u"wxyzÑŠÑÑŽÑ9WXYZЪЭЮЯ", + ) +MAPPINGS = { + 'de_DE': MAP_DE, + 'es_ES': MAP_ES, + 'sv_SE': MAP_SE, + 'fi_FI': MAP_SE, + 'cs_CZ': MAP_CZ, + 'sk_SK': MAP_CZ, + 'pl_PL': MAP_PL, + 'ru_RU': MAP_RU, + } + +class NumericalTextInput: + def __init__(self, nextFunc=None, handleTimeout = True, search = False, mapping = None): + self.useableChars=None + self.nextFunction=nextFunc + if handleTimeout: + self.timer = eTimer() + self.timer.callback.append(self.timeout) + else: + self.timer = None + self.lastKey = -1 + self.pos = -1 + if mapping is not None: + self.mapping = mapping + elif search: + self.mapping = MAP_SEARCH + else: + self.mapping = MAPPINGS.get(language.getLanguage(), MAP_DEFAULT) + + def setUseableChars(self, useable): + self.useableChars = unicode(useable) + + def getKey(self, num): + cnt=0 + if self.lastKey != num: + if self.lastKey != -1: + self.nextChar() + self.lastKey = num + self.pos = -1 + if self.timer is not None: + self.timer.start(1000, True) + while True: + self.pos += 1 + if len(self.mapping[num]) <= self.pos: + self.pos = 0 + if self.useableChars: + pos = self.useableChars.find(self.mapping[num][self.pos]) + if pos == -1: + cnt += 1 + if cnt < len(self.mapping[num]): + continue + else: + return None + break + return self.mapping[num][self.pos] + + def nextKey(self): + if self.timer is not None: + self.timer.stop() + self.lastKey = -1 + + def nextChar(self): + self.nextKey() + if self.nextFunction: + self.nextFunction() + + def timeout(self): + if self.lastKey != -1: + self.nextChar() diff --git a/lib/python/Tools/Profile.py b/lib/python/Tools/Profile.py new file mode 100644 index 0000000..667c43e --- /dev/null +++ b/lib/python/Tools/Profile.py @@ -0,0 +1,51 @@ +# the implementation here is a bit crappy. +import time +from Directories import resolveFilename, SCOPE_CONFIG + +PERCENTAGE_START = 0 +PERCENTAGE_END = 100 + +profile_start = time.time() + +profile_data = {} +total_time = 1 +profile_file = None + +try: + profile_old = open(resolveFilename(SCOPE_CONFIG, "profile"), "r").readlines() + + t = None + for line in profile_old: + (t, id) = line[:-1].split('\t') + t = float(t) + total_time = t + profile_data[id] = t +except: + print "no profile data available" + +try: + profile_file = open(resolveFilename(SCOPE_CONFIG, "profile"), "w") +except IOError: + print "WARNING: couldn't open profile file!" + +def profile(id): + now = time.time() - profile_start + if profile_file: + profile_file.write("%7.3f\t%s\n" % (now, id)) + + if id in profile_data: + t = profile_data[id] + if total_time: + perc = t * (PERCENTAGE_END - PERCENTAGE_START) / total_time + PERCENTAGE_START + else: + perc = PERCENTAGE_START + try: + open("/proc/progress", "w").write("%d \n" % perc) + except IOError: + pass + +def profile_final(): + global profile_file + if profile_file is not None: + profile_file.close() + profile_file = None diff --git a/lib/python/Tools/RedirectOutput.py b/lib/python/Tools/RedirectOutput.py new file mode 100644 index 0000000..d03a1d9 --- /dev/null +++ b/lib/python/Tools/RedirectOutput.py @@ -0,0 +1,13 @@ +import sys +from enigma import ePythonOutput + +class EnigmaOutput: + def write(self, data): + if isinstance(data, unicode): + data = data.encode("UTF-8") + ePythonOutput(data) + + def flush(): + pass + +sys.stdout = sys.stderr = EnigmaOutput() diff --git a/lib/python/Tools/StbHardware.py b/lib/python/Tools/StbHardware.py new file mode 100644 index 0000000..ad2a26e --- /dev/null +++ b/lib/python/Tools/StbHardware.py @@ -0,0 +1,76 @@ +from fcntl import ioctl +from struct import pack, unpack + +def getFPVersion(): + ret = None + try: + ret = long(open("/proc/stb/fp/version", "r").read()) + except IOError: + try: + fp = open("/dev/dbox/fp0") + ret = ioctl(fp.fileno(),0) + except IOError: + print "getFPVersion failed!" + return ret + +def setFPWakeuptime(wutime): + try: + open("/proc/stb/fp/wakeup_time", "w").write(str(wutime)) + except IOError: + try: + fp = open("/dev/dbox/fp0") + ioctl(fp.fileno(), 6, pack('L', wutime)) # set wake up + except IOError: + print "setFPWakeupTime failed!" + +def setRTCtime(wutime): + try: + open("/proc/stb/fp/rtc", "w").write(str(wutime)) + except IOError: + try: + fp = open("/dev/dbox/fp0") + ioctl(fp.fileno(), 0x101, pack('L', wutime)) # set wake up + except IOError: + print "setRTCtime failed!" + +def getFPWakeuptime(): + ret = 0 + try: + ret = long(open("/proc/stb/fp/wakeup_time", "r").read()) + except IOError: + try: + fp = open("/dev/dbox/fp0") + ret = unpack('L', ioctl(fp.fileno(), 5, ' '))[0] # get wakeuptime + except IOError: + print "getFPWakeupTime failed!" + return ret + +wasTimerWakeup = None + +def getFPWasTimerWakeup(): + global wasTimerWakeup + if wasTimerWakeup is not None: + return wasTimerWakeup + wasTimerWakeup = False + try: + wasTimerWakeup = int(open("/proc/stb/fp/was_timer_wakeup", "r").read()) and True or False + except: + try: + fp = open("/dev/dbox/fp0") + wasTimerWakeup = unpack('B', ioctl(fp.fileno(), 9, ' '))[0] and True or False + except IOError: + print "wasTimerWakeup failed!" + if wasTimerWakeup: + # clear hardware status + clearFPWasTimerWakeup() + return wasTimerWakeup + +def clearFPWasTimerWakeup(): + try: + open("/proc/stb/fp/was_timer_wakeup", "w").write('0') + except: + try: + fp = open("/dev/dbox/fp0") + ioctl(fp.fileno(), 10) + except IOError: + print "clearFPWasTimerWakeup failed!" diff --git a/lib/python/Tools/Transponder.py b/lib/python/Tools/Transponder.py new file mode 100644 index 0000000..d6ae277 --- /dev/null +++ b/lib/python/Tools/Transponder.py @@ -0,0 +1,172 @@ +from enigma import eDVBFrontendParametersSatellite, eDVBFrontendParametersCable, eDVBFrontendParametersTerrestrial +from Components.NimManager import nimmanager + +def ConvertToHumanReadable(tp, type = None): + ret = { } + if type is None: + type = tp.get("tuner_type", "None") + if type == "DVB-S": + ret["tuner_type"] = _("Satellite") + ret["inversion"] = { + eDVBFrontendParametersSatellite.Inversion_Unknown : _("Auto"), + eDVBFrontendParametersSatellite.Inversion_On : _("On"), + eDVBFrontendParametersSatellite.Inversion_Off : _("Off")}.get(tp.get("inversion")) + ret["fec_inner"] = { + eDVBFrontendParametersSatellite.FEC_None : _("None"), + eDVBFrontendParametersSatellite.FEC_Auto : _("Auto"), + eDVBFrontendParametersSatellite.FEC_1_2 : "1/2", + eDVBFrontendParametersSatellite.FEC_2_3 : "2/3", + eDVBFrontendParametersSatellite.FEC_3_4 : "3/4", + eDVBFrontendParametersSatellite.FEC_5_6 : "5/6", + eDVBFrontendParametersSatellite.FEC_6_7 : "6/7", + eDVBFrontendParametersSatellite.FEC_7_8 : "7/8", + eDVBFrontendParametersSatellite.FEC_3_5 : "3/5", + eDVBFrontendParametersSatellite.FEC_4_5 : "4/5", + eDVBFrontendParametersSatellite.FEC_8_9 : "8/9", + eDVBFrontendParametersSatellite.FEC_9_10 : "9/10"}.get(tp.get("fec_inner")) + ret["modulation"] = { + eDVBFrontendParametersSatellite.Modulation_Auto : _("Auto"), + eDVBFrontendParametersSatellite.Modulation_QPSK : "QPSK", + eDVBFrontendParametersSatellite.Modulation_QAM16 : "QAM16", + eDVBFrontendParametersSatellite.Modulation_8PSK : "8PSK"}.get(tp.get("modulation")) + ret["orbital_position"] = nimmanager.getSatName(int(tp.get("orbital_position"))) + ret["polarization"] = { + eDVBFrontendParametersSatellite.Polarisation_Horizontal : _("Horizontal"), + eDVBFrontendParametersSatellite.Polarisation_Vertical : _("Vertical"), + eDVBFrontendParametersSatellite.Polarisation_CircularLeft : _("Circular left"), + eDVBFrontendParametersSatellite.Polarisation_CircularRight : _("Circular right")}.get(tp.get("polarization")) + ret["polarization_abbreviation"] = { + eDVBFrontendParametersSatellite.Polarisation_Horizontal : "H", + eDVBFrontendParametersSatellite.Polarisation_Vertical : "V", + eDVBFrontendParametersSatellite.Polarisation_CircularLeft : "L", + eDVBFrontendParametersSatellite.Polarisation_CircularRight : "R"}.get(tp.get("polarization")) + ret["system"] = { + eDVBFrontendParametersSatellite.System_DVB_S : "DVB-S", + eDVBFrontendParametersSatellite.System_DVB_S2 : "DVB-S2"}.get(tp.get("system")) + if ret["system"] == "DVB-S2": + ret["rolloff"] = { + eDVBFrontendParametersSatellite.RollOff_alpha_0_35 : "0.35", + eDVBFrontendParametersSatellite.RollOff_alpha_0_25 : "0.25", + eDVBFrontendParametersSatellite.RollOff_alpha_0_20 : "0.20", + eDVBFrontendParametersSatellite.RollOff_auto : _("Auto")}.get(tp.get("rolloff")) + ret["pilot"] = { + eDVBFrontendParametersSatellite.Pilot_Unknown : _("Auto"), + eDVBFrontendParametersSatellite.Pilot_On : _("On"), + eDVBFrontendParametersSatellite.Pilot_Off : _("Off")}.get(tp.get("pilot")) + elif type == "DVB-C": + ret["tuner_type"] = _("Cable") + ret["modulation"] = { + eDVBFrontendParametersCable.Modulation_Auto: _("Auto"), + eDVBFrontendParametersCable.Modulation_QAM16 : "QAM16", + eDVBFrontendParametersCable.Modulation_QAM32 : "QAM32", + eDVBFrontendParametersCable.Modulation_QAM64 : "QAM64", + eDVBFrontendParametersCable.Modulation_QAM128 : "QAM128", + eDVBFrontendParametersCable.Modulation_QAM256 : "QAM256"}.get(tp.get("modulation")) + ret["inversion"] = { + eDVBFrontendParametersCable.Inversion_Unknown : _("Auto"), + eDVBFrontendParametersCable.Inversion_On : _("On"), + eDVBFrontendParametersCable.Inversion_Off : _("Off")}.get(tp.get("inversion")) + ret["fec_inner"] = { + eDVBFrontendParametersCable.FEC_None : _("None"), + eDVBFrontendParametersCable.FEC_Auto : _("Auto"), + eDVBFrontendParametersCable.FEC_1_2 : "1/2", + eDVBFrontendParametersCable.FEC_2_3 : "2/3", + eDVBFrontendParametersCable.FEC_3_4 : "3/4", + eDVBFrontendParametersCable.FEC_5_6 : "5/6", + eDVBFrontendParametersCable.FEC_7_8 : "7/8", + eDVBFrontendParametersCable.FEC_8_9 : "8/9", + eDVBFrontendParametersCable.FEC_3_5 : "3/5", + eDVBFrontendParametersCable.FEC_4_5 : "4/5", + eDVBFrontendParametersCable.FEC_9_10 : "9/10"}.get(tp.get("fec_inner")) + ret["system"] = { + eDVBFrontendParametersCable.System_DVB_C_ANNEX_A : "DVB-C", + eDVBFrontendParametersCable.System_DVB_C_ANNEX_C : "DVB-C ANNEX C"}.get(tp.get("system")) + elif type == "DVB-T": + ret["tuner_type"] = _("Terrestrial") + ret["bandwidth"] = { + 0 : _("Auto"), + 10000000 : "10 MHz", + 8000000 : "8 MHz", + 7000000 : "7 MHz", + 6000000 : "6 MHz", + 5000000 : "5 MHz", + 1712000 : "1.712 MHz"}.get(tp.get("bandwidth")) + ret["code_rate_lp"] = { + eDVBFrontendParametersTerrestrial.FEC_Auto : _("Auto"), + eDVBFrontendParametersTerrestrial.FEC_1_2 : "1/2", + eDVBFrontendParametersTerrestrial.FEC_2_3 : "2/3", + eDVBFrontendParametersTerrestrial.FEC_3_4 : "3/4", + eDVBFrontendParametersTerrestrial.FEC_5_6 : "5/6", + eDVBFrontendParametersTerrestrial.FEC_6_7 : "6/7", + eDVBFrontendParametersTerrestrial.FEC_7_8 : "7/8", + eDVBFrontendParametersTerrestrial.FEC_8_9 : "8/9"}.get(tp.get("code_rate_lp")) + ret["code_rate_hp"] = { + eDVBFrontendParametersTerrestrial.FEC_Auto : _("Auto"), + eDVBFrontendParametersTerrestrial.FEC_1_2 : "1/2", + eDVBFrontendParametersTerrestrial.FEC_2_3 : "2/3", + eDVBFrontendParametersTerrestrial.FEC_3_4 : "3/4", + eDVBFrontendParametersTerrestrial.FEC_5_6 : "5/6", + eDVBFrontendParametersTerrestrial.FEC_6_7 : "6/7", + eDVBFrontendParametersTerrestrial.FEC_7_8 : "7/8", + eDVBFrontendParametersTerrestrial.FEC_8_9 : "8/9"}.get(tp.get("code_rate_hp")) + ret["constellation"] = { + eDVBFrontendParametersTerrestrial.Modulation_Auto : _("Auto"), + eDVBFrontendParametersTerrestrial.Modulation_QPSK : "QPSK", + eDVBFrontendParametersTerrestrial.Modulation_QAM16 : "QAM16", + eDVBFrontendParametersTerrestrial.Modulation_QAM64 : "QAM64", + eDVBFrontendParametersTerrestrial.Modulation_QAM256 : "QAM256"}.get(tp.get("constellation")) + ret["transmission_mode"] = { + eDVBFrontendParametersTerrestrial.TransmissionMode_Auto : _("Auto"), + eDVBFrontendParametersTerrestrial.TransmissionMode_1k : "1k", + eDVBFrontendParametersTerrestrial.TransmissionMode_2k : "2k", + eDVBFrontendParametersTerrestrial.TransmissionMode_4k : "4k", + eDVBFrontendParametersTerrestrial.TransmissionMode_8k : "8k", + eDVBFrontendParametersTerrestrial.TransmissionMode_16k : "16k", + eDVBFrontendParametersTerrestrial.TransmissionMode_32k : "32k"}.get(tp.get("transmission_mode")) + ret["guard_interval"] = { + eDVBFrontendParametersTerrestrial.GuardInterval_Auto : _("Auto"), + eDVBFrontendParametersTerrestrial.GuardInterval_19_256 : "19/256", + eDVBFrontendParametersTerrestrial.GuardInterval_19_128 : "19/128", + eDVBFrontendParametersTerrestrial.GuardInterval_1_128 : "1/128", + eDVBFrontendParametersTerrestrial.GuardInterval_1_32 : "1/32", + eDVBFrontendParametersTerrestrial.GuardInterval_1_16 : "1/16", + eDVBFrontendParametersTerrestrial.GuardInterval_1_8 : "1/8", + eDVBFrontendParametersTerrestrial.GuardInterval_1_4 : "1/4"}.get(tp.get("guard_interval")) + ret["hierarchy_information"] = { + eDVBFrontendParametersTerrestrial.Hierarchy_Auto : _("Auto"), + eDVBFrontendParametersTerrestrial.Hierarchy_None : _("None"), + eDVBFrontendParametersTerrestrial.Hierarchy_1 : "1", + eDVBFrontendParametersTerrestrial.Hierarchy_2 : "2", + eDVBFrontendParametersTerrestrial.Hierarchy_4 : "4"}.get(tp.get("hierarchy_information")) + ret["inversion"] = { + eDVBFrontendParametersTerrestrial.Inversion_Unknown : _("Auto"), + eDVBFrontendParametersTerrestrial.Inversion_On : _("On"), + eDVBFrontendParametersTerrestrial.Inversion_Off : _("Off")}.get(tp.get("inversion")) + ret["system"] = { + eDVBFrontendParametersTerrestrial.System_DVB_T_T2 : "DVB-T/T2", + eDVBFrontendParametersTerrestrial.System_DVB_T : "DVB-T", + eDVBFrontendParametersTerrestrial.System_DVB_T2 : "DVB-T2"}.get(tp.get("system")) + elif type == "ATSC": + ret["tuner_type"] = "ATSC" + ret["modulation"] = { + eDVBFrontendParametersATSC.Modulation_Auto: _("Auto"), + eDVBFrontendParametersATSC.Modulation_QAM16 : "QAM16", + eDVBFrontendParametersATSC.Modulation_QAM32 : "QAM32", + eDVBFrontendParametersATSC.Modulation_QAM64 : "QAM64", + eDVBFrontendParametersATSC.Modulation_QAM128 : "QAM128", + eDVBFrontendParametersATSC.Modulation_QAM256 : "QAM256", + eDVBFrontendParametersATSC.Modulation_VSB_8 : "VSB_8", + eDVBFrontendParametersATSC.Modulation_VSB_16 : "VSB_16"}.get(tp.get("modulation")) + ret["inversion"] = { + eDVBFrontendParametersATSC.Inversion_Unknown : _("Auto"), + eDVBFrontendParametersATSC.Inversion_On : _("On"), + eDVBFrontendParametersATSC.Inversion_Off : _("Off")}.get(tp.get("inversion")) + ret["system"] = { + eDVBFrontendParametersATSC.System_ATSC : "ATSC", + eDVBFrontendParametersATSC.System_DVB_C_ANNEX_B : "DVB-C ANNEX B"}.get(tp.get("system")) + elif type != "None": + print "ConvertToHumanReadable: no or unknown type in tpdata dict for type:", type + for k,v in tp.items(): + if k not in ret: + ret[k] = v + return ret diff --git a/lib/python/Tools/Trashcan.py b/lib/python/Tools/Trashcan.py new file mode 100644 index 0000000..1c00c79 --- /dev/null +++ b/lib/python/Tools/Trashcan.py @@ -0,0 +1,161 @@ +import time +import os +import enigma +from Components.config import config +from Components import Harddisk +from twisted.internet import threads + +def getTrashFolder(path): + # Returns trash folder without symlinks. Path may be file or directory or whatever. + mountpoint = Harddisk.findMountPoint(os.path.realpath(path)) + movie = os.path.join(mountpoint, 'movie') + if os.path.isdir(movie): + mountpoint = movie + return os.path.join(mountpoint, ".Trash") + +def createTrashFolder(path): + # Create and return trash folder for given file or dir + trash = getTrashFolder(path) + if not os.path.isdir(trash): + print "[Trashcan] create:", trash + os.mkdir(trash) + return trash + +def enumTrashFolders(): + # Walk through all Trash folders. This may access network + # drives and similar, so might block for minutes. + for mount in Harddisk.getProcMounts(): + if mount[1].startswith('/media/'): + mountpoint = mount[1] + movie = os.path.join(mountpoint, 'movie') + if os.path.isdir(movie): + mountpoint = movie + result = os.path.join(mountpoint, ".Trash") + if os.path.isdir(result): + yield result + +class Trashcan: + def __init__(self): + self.isCleaning = False + self.session = None + self.dirty = set() + + def init(self, session): + self.session = session + session.nav.record_event.append(self.gotRecordEvent) + + def markDirty(self, path): + # Marks a path for purging, for when a recording on that + # device starts or ends. + if not path: + return + trash = getTrashFolder(path) + self.dirty.add(trash) + + def gotRecordEvent(self, service, event): + if (event == enigma.iRecordableService.evEnd): + self.cleanIfIdle() + + def destroy(self): + if self.session is not None: + self.session.nav.record_event.remove(self.gotRecordEvent) + self.session = None + + def __del__(self): + self.destroy() + + def cleanIfIdle(self, path=None): + # RecordTimer calls this when preparing a recording. That is a + # nice moment to clean up. It also mentions the path, so mark + # it as dirty. + self.markDirty(path) + if not self.dirty: + return + if self.isCleaning: + print "[Trashcan] Cleanup already running" + return + if (self.session is not None) and self.session.nav.getRecordings(): + return + self.isCleaning = True + ctimeLimit = time.time() - (config.usage.movielist_trashcan_days.value * 3600 * 24) + reserveBytes = 1024*1024*1024 * int(config.usage.movielist_trashcan_reserve.value) + cleanset = self.dirty + self.dirty = set() + threads.deferToThread(purge, cleanset, ctimeLimit, reserveBytes).addCallbacks(self.cleanReady, self.cleanFail) + + def cleanReady(self, result=None): + self.isCleaning = False + # schedule another clean loop if needed (so we clean up all devices, not just one) + self.cleanIfIdle() + + def cleanFail(self, failure): + print "[Trashcan] ERROR in clean:", failure + self.isCleaning = False + +def purge(cleanset, ctimeLimit, reserveBytes): + # Remove expired items from trash, and attempt to have + # reserveBytes of free disk space. + for trash in cleanset: + if not os.path.isdir(trash): + print "[Trashcan] No trash.", trash + return 0 + diskstat = os.statvfs(trash) + free = diskstat.f_bfree * diskstat.f_bsize + bytesToRemove = reserveBytes - free + candidates = [] + print "[Trashcan] bytesToRemove", bytesToRemove, trash + size = 0 + for root, dirs, files in os.walk(trash, topdown=False): + for name in files: + try: + fn = os.path.join(root, name) + st = os.stat(fn) + if st.st_ctime < ctimeLimit: + print "[Trashcan] Too old:", name, st.st_ctime + enigma.eBackgroundFileEraser.getInstance().erase(fn) + bytesToRemove -= st.st_size + else: + candidates.append((st.st_ctime, fn, st.st_size)) + size += st.st_size + except Exception, e: + print "[Trashcan] Failed to stat %s:"% name, e + # Remove empty directories if possible + for name in dirs: + try: + os.rmdir(os.path.join(root, name)) + except: + pass + candidates.sort() + # Now we have a list of ctime, candidates, size. Sorted by ctime (=deletion time) + print "[Trashcan] Bytes to remove remaining:", bytesToRemove, trash + for st_ctime, fn, st_size in candidates: + if bytesToRemove < 0: + break + enigma.eBackgroundFileEraser.getInstance().erase(fn) + bytesToRemove -= st_size + size -= st_size + print "[Trashcan] Size after purging:", size, trash + +def cleanAll(trash): + if not os.path.isdir(trash): + print "[Trashcan] No trash.", trash + return 0 + for root, dirs, files in os.walk(trash, topdown=False): + for name in files: + fn = os.path.join(root, name) + try: + enigma.eBackgroundFileEraser.getInstance().erase(fn) + except Exception, e: + print "[Trashcan] Failed to erase %s:"% name, e + # Remove empty directories if possible + for name in dirs: + try: + os.rmdir(os.path.join(root, name)) + except: + pass + +def init(session): + global instance + instance.init(session) + +instance = Trashcan() diff --git a/lib/python/Tools/XMLTools.py b/lib/python/Tools/XMLTools.py new file mode 100644 index 0000000..0789db8 --- /dev/null +++ b/lib/python/Tools/XMLTools.py @@ -0,0 +1,26 @@ + +def elementsWithTag(el, tag): + """filters all elements of childNode with the specified function + example: nodes = elementsWithTag(childNodes, lambda x: x == "bla")""" + + import xml.dom.minidom + # fiiixme! (works but isn't nice) + if isinstance(tag, str): + s = tag + tag = lambda x: x == s + + for x in el: + if x.nodeType != xml.dom.minidom.Element.nodeType: + continue + if tag(x.tagName): + yield x + +def mergeText(nodelist): + rc = "" + for node in nodelist: + if node.nodeType == node.TEXT_NODE: + rc = rc + node.data + return rc + +def stringToXML(text): + return text.replace('&', '&').replace('<', '<').replace('>', '>').replace("'", ''').replace('"', '"') diff --git a/lib/python/Tools/__init__.py b/lib/python/Tools/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/connections.cpp b/lib/python/connections.cpp new file mode 100644 index 0000000..c0d38f8 --- /dev/null +++ b/lib/python/connections.cpp @@ -0,0 +1,40 @@ +#include <lib/python/connections.h> + +PSignal::PSignal() +{ +} + +PSignal::~PSignal() +{ + Py_XDECREF(m_list); +} + +void PSignal::callPython(ePyObject tuple) +{ + int size = PyList_Size(m_list); + int i; + for (i=0; i<size; ++i) + { + ePyObject b = PyList_GET_ITEM(m_list, i); + ePython::call(b, tuple); + } +} + +PyObject *PSignal::get() +{ + if (!m_list) + m_list = PyList_New(0); + Py_INCREF(m_list); + return m_list; +} + +PyObject *PSignal::getSteal(bool clear) +{ + if (clear) + { + ePyObject ret = m_list; + m_list = (PyObject*)0; + return ret; + } + return m_list; +} diff --git a/lib/python/connections.h b/lib/python/connections.h new file mode 100644 index 0000000..374749a --- /dev/null +++ b/lib/python/connections.h @@ -0,0 +1,102 @@ +#ifndef __lib_python_connections_h +#define __lib_python_connections_h + +#include <libsig_comp.h> + +#include <lib/python/python.h> + +class PSignal +{ +protected: + ePyObject m_list; +public: + PSignal(); + ~PSignal(); + void callPython(SWIG_PYOBJECT(ePyObject) tuple); +#ifndef SWIG + PyObject *getSteal(bool clear=false); +#endif + PyObject *get(); +}; + +inline PyObject *PyFrom(int v) +{ + return PyInt_FromLong(v); +} + +inline PyObject *PyFrom(const char *c) +{ + return PyString_FromString(c); +} + +template <class R> +class PSignal0: public PSignal, public Signal0<R> +{ +public: + R operator()() + { + if (m_list) + { + PyObject *pArgs = PyTuple_New(0); + callPython(pArgs); + Org_Py_DECREF(pArgs); + } + return Signal0<R>::operator()(); + } +}; + +template <class R, class V0> +class PSignal1: public PSignal, public Signal1<R,V0> +{ +public: + R operator()(V0 a0) + { + if (m_list) + { + PyObject *pArgs = PyTuple_New(1); + PyTuple_SET_ITEM(pArgs, 0, PyFrom(a0)); + callPython(pArgs); + Org_Py_DECREF(pArgs); + } + return Signal1<R,V0>::operator()(a0); + } +}; + +template <class R, class V0, class V1> +class PSignal2: public PSignal, public Signal2<R,V0,V1> +{ +public: + R operator()(V0 a0, V1 a1) + { + if (m_list) + { + PyObject *pArgs = PyTuple_New(2); + PyTuple_SET_ITEM(pArgs, 0, PyFrom(a0)); + PyTuple_SET_ITEM(pArgs, 1, PyFrom(a1)); + callPython(pArgs); + Org_Py_DECREF(pArgs); + } + return Signal2<R,V0,V1>::operator()(a0, a1); + } +}; + +template <class R, class V0, class V1, class V2> +class PSignal3: public PSignal, public Signal3<R,V0,V1,V2> +{ +public: + R operator()(V0 a0, V1 a1, V2 a2) + { + if (m_list) + { + PyObject *pArgs = PyTuple_New(3); + PyTuple_SET_ITEM(pArgs, 0, PyFrom(a0)); + PyTuple_SET_ITEM(pArgs, 1, PyFrom(a1)); + PyTuple_SET_ITEM(pArgs, 2, PyFrom(a2)); + callPython(pArgs); + Org_Py_DECREF(pArgs); + } + return Signal3<R,V0,V1,V2>::operator()(a0, a1, a2); + } +}; + +#endif diff --git a/lib/python/enigma_py_patcher.py b/lib/python/enigma_py_patcher.py new file mode 100644 index 0000000..0a93bfc --- /dev/null +++ b/lib/python/enigma_py_patcher.py @@ -0,0 +1,32 @@ +#read the comment to this file in lib/service/iservice.h !! +import sys +import os + +filename = sys.argv[1] +os.rename(filename, filename + ".org") + +source=open(filename + ".org", "r") +dest=open(filename, "w") + +for line, str in enumerate(source): + oldstr = str[:] + str = str.replace('_ENUMS)', ')') + + pos = str.find('_ENUMS') + if pos != -1: + spacepos = pos + while spacepos > 0 and str[spacepos] != ' ': + spacepos -= 1 + tmpstr = str[spacepos:pos] + if '_enigma.' not in tmpstr: + str = str[:pos]+str[pos+6:] + + if oldstr != str: + print "!!! Patch enigma.py line %d\n%s\n%s" %(line, oldstr[:len(oldstr)-1], str) + + dest.write(str) + +del source +del dest +os.remove(filename + ".org") + diff --git a/lib/python/enigma_python.i b/lib/python/enigma_python.i new file mode 100644 index 0000000..ef7a911 --- /dev/null +++ b/lib/python/enigma_python.i @@ -0,0 +1,422 @@ +/* + NOTE: you have two options when adding classes so that + they are callable *from* python. + + - either you %include the header file + - or you re-declare it + + In both cases, you must #include the required + header file (i.e. the header file itself), otherwise + enigma_python_wrap.cxx won't build. + + In case you import the whole header file, + please make sure that no unimportant stuff + is wrapped, as this makes the wrapper stuff + much more complex and it can probably break + very easily because of missing typemaps etc. + + you could make use of dizzy macros to ensure + that some stuff is left out when parsed as SWIG + definitions, but be sure to not modify the binary + representation. DON'T USE #ifdef SWIG_COMPILE + for leaving out stuff (unless you *really* know + what you are doing,of course!). you WILL break it. + + The better way (with more work) is to re-declare + the class. It won't be compiled, so you can + leave out stuff as you like. + + + +Oh, things like "operator= is private in this context" etc. +is usually caused by not marking PSignals as immutable. +*/ + +%module enigma +%{ + +#define SWIG_COMPILE +#include <lib/base/ebase.h> +#include <lib/base/smartptr.h> +#include <lib/base/eenv.h> +#include <lib/base/eerror.h> +#include <lib/base/etpm.h> +#include <lib/base/message.h> +#include <lib/driver/rc.h> +#include <lib/driver/rcinput_swig.h> +#include <lib/service/event.h> +#include <lib/service/iservice.h> +#include <lib/service/service.h> +#include <lib/service/servicedvb.h> +#include <lib/gdi/fb.h> +#include <lib/gdi/font.h> +#include <lib/gdi/gpixmap.h> +#include <lib/gdi/gfbdc.h> +#include <lib/gdi/grc.h> +#include <lib/gdi/gmaindc.h> +#include <lib/gui/ewidget.h> +#include <lib/gui/elabel.h> +#include <lib/gui/einput.h> +#include <lib/gui/einputstring.h> +#include <lib/gui/einputnumber.h> +#include <lib/gui/epixmap.h> +#include <lib/gui/ebutton.h> +#include <lib/gui/ewindow.h> +#include <lib/gui/ewidgetdesktop.h> +#include <lib/gui/ewindowstyle.h> +#include <lib/gui/ewindowstyleskinned.h> +#include <lib/gui/ewidgetanimation.h> +#include <lib/gui/eslider.h> +#include <lib/gui/epositiongauge.h> +#include <lib/gui/evideo.h> +#include <lib/gui/ecanvas.h> +#include <lib/python/connections.h> +#include <lib/python/pythonconfig.h> +#include <lib/gui/elistbox.h> +#include <lib/gui/elistboxcontent.h> +#include <lib/gui/esubtitle.h> +#include <lib/service/listboxservice.h> +#include <lib/nav/pcore.h> +#include <lib/actions/action.h> +#include <lib/gdi/gfont.h> +#include <lib/gdi/epng.h> +#include <lib/dvb/db.h> +#include <lib/dvb/frontendparms.h> +#include <lib/dvb/idvb.h> +#include <lib/dvb/dvb.h> +#include <lib/dvb/frontend.h> +#include <lib/dvb/volume.h> +#include <lib/dvb/sec.h> +#include <lib/dvb/epgcache.h> +#include <lib/dvb/dvbtime.h> +#include <lib/dvb/pmt.h> +#include <lib/dvb/cahandler.h> +#include <lib/dvb/fastscan.h> +#include <lib/dvb/cablescan.h> +#include <lib/components/scan.h> +#include <lib/components/file_eraser.h> +#include <lib/components/tuxtxtapp.h> +#include <lib/driver/avswitch.h> +#include <lib/driver/hdmi_cec.h> +#include <lib/driver/rfmod.h> +#include <lib/driver/misc_options.h> +#include <lib/driver/etimezone.h> +#include <lib/gdi/lcd.h> +#include <lib/mmi/mmi_ui.h> +#include <lib/dvb_ci/dvbci.h> +#include <lib/dvb_ci/dvbci_ui.h> +#include <lib/python/python.h> +#include <lib/python/python_helpers.h> +#include <lib/gdi/picload.h> +%} + +%feature("ref") iObject "$this->AddRef(); /* eDebug(\"AddRef (%s:%d)!\", __FILE__, __LINE__); */ " +%feature("unref") iObject "$this->Release(); /* eDebug(\"Release! %s:%d\", __FILE__, __LINE__); */ " + +/* this magic allows smartpointer to be used as OUTPUT arguments, i.e. call-by-reference-styled return value. */ + +%define %typemap_output_simple(Type) + %typemap(in,numinputs=0) Type *OUTPUT ($*1_ltype temp), + Type &OUTPUT ($*1_ltype temp) + "$1 = new Type;"; + %fragment("t_out_helper"{Type},"header", + fragment="t_output_helper") {} + %typemap(argout,fragment="t_out_helper"{Type}) Type *OUTPUT, Type &OUTPUT + "$result = t_output_helper($result, (SWIG_NewPointerObj((void*)($1), $1_descriptor, 1)));" +%enddef + +%define %typemap_output_ptr(Type) + %typemap(in,numinputs=0) Type *OUTPUT ($*1_ltype temp), + Type &OUTPUT ($*1_ltype temp) + "$1 = new Type;"; + %fragment("t_out_helper"{Type},"header", + fragment="t_output_helper") {} + %typemap(argout,fragment="t_out_helper"{Type}) Type *OUTPUT, Type &OUTPUT + // generate None if smartpointer is NULL + "$result = t_output_helper($result, ((*$1) ? SWIG_NewPointerObj((void*)($1), $1_descriptor, 1) : (delete $1, Py_INCREF(Py_None), Py_None)));" +%enddef + + +#define DEBUG +typedef long time_t; +%include "typemaps.i" +%include "std_string.i" +%include <lib/python/swig.h> +%include <lib/base/object.h> +%include <lib/base/eenv.h> +%include <lib/base/eerror.h> + +%include <lib/python/python_dvb.i> +%include <lib/python/python_service.i> +%include <lib/python/python_pmt.i> +%include <lib/python/python_pcore.i> + +%immutable eSocketNotifier::activated; +%include <lib/base/ebase.h> +%include <lib/base/smartptr.h> +%include <lib/service/event.h> +%include <lib/service/iservice.h> +%include <lib/service/service.h> + +// TODO: embed these... +%immutable ePicLoad::PictureData; +%immutable eButton::selected; +%immutable eInput::changed; +%immutable eComponentScan::statusChanged; +%immutable eComponentScan::newService; +%immutable eFastScan::scanProgress; +%immutable eFastScan::scanCompleted; +%immutable eCableScan::scanProgress; +%immutable eCableScan::scanCompleted; +%immutable pNavigation::m_event; +%immutable pNavigation::m_record_event; +%immutable eListbox::selectionChanged; +%immutable eDVBCI_UI::ciStateChanged; +%immutable eSocket_UI::socketStateChanged; +%immutable eDVBResourceManager::frontendUseMaskChanged; +%immutable eAVSwitch::vcr_sb_notifier; +%immutable eHdmiCEC::messageReceived; +%immutable eHdmiCEC::addressChanged; +%immutable ePythonMessagePump::recv_msg; +%immutable eDVBLocalTimeHandler::m_timeUpdated; +%immutable iCryptoInfo::clientname; +%immutable iCryptoInfo::clientinfo; +%immutable iCryptoInfo::verboseinfo; +%immutable iCryptoInfo::usedcaid; +%immutable iCryptoInfo::decodetime; +%immutable iCryptoInfo::usedcardid; +%immutable eTuxtxtApp::appClosed; +%immutable iDVBChannel::receivedTsidOnid; +%include <lib/base/message.h> +%include <lib/base/etpm.h> +%include <lib/driver/rc.h> +%include <lib/driver/rcinput_swig.h> +%include <lib/gdi/fb.h> +%include <lib/gdi/font.h> +%include <lib/gdi/gpixmap.h> +%include <lib/gdi/gmaindc.h> +%include <lib/gdi/epoint.h> +%include <lib/gdi/erect.h> +%include <lib/gdi/esize.h> +%include <lib/gui/ewidget.h> +%include <lib/gui/elabel.h> +%include <lib/gui/einput.h> +%include <lib/gui/einputstring.h> +%include <lib/gui/einputnumber.h> +%include <lib/gui/epixmap.h> +%include <lib/gui/ecanvas.h> +%include <lib/gui/ebutton.h> +%include <lib/gui/ewindow.h> +%include <lib/gui/eslider.h> +%include <lib/gui/epositiongauge.h> +%include <lib/gui/ewidgetdesktop.h> +%include <lib/gui/elistbox.h> +%include <lib/gui/elistboxcontent.h> +%include <lib/gui/ewindowstyle.h> +%include <lib/gui/ewindowstyleskinned.h> +%include <lib/gui/ewidgetanimation.h> +%include <lib/gui/evideo.h> +%include <lib/gui/esubtitle.h> +%include <lib/service/listboxservice.h> +%include <lib/nav/pcore.h> +%include <lib/actions/action.h> +%include <lib/gdi/gfont.h> +%include <lib/gdi/epng.h> +%include <lib/dvb/volume.h> +%include <lib/dvb/sec.h> +%include <lib/dvb/epgcache.h> +%include <lib/dvb/frontendparms.h> +%include <lib/dvb/dvbtime.h> +%include <lib/dvb/idvb.h> +%include <lib/dvb/dvb.h> +%include <lib/dvb/frontend.h> +%include <lib/dvb/pmt.h> +%include <lib/dvb/cahandler.h> +%include <lib/dvb/fastscan.h> +%include <lib/dvb/cablescan.h> +%include <lib/components/scan.h> +%include <lib/components/file_eraser.h> +%include <lib/components/tuxtxtapp.h> +%include <lib/driver/avswitch.h> +%include <lib/driver/hdmi_cec.h> +%include <lib/driver/rfmod.h> +%include <lib/driver/misc_options.h> +%include <lib/driver/etimezone.h> +%include <lib/gdi/lcd.h> +%include <lib/mmi/mmi_ui.h> +%include <lib/dvb_ci/dvbci.h> +%include <lib/dvb_ci/dvbci_ui.h> +%include <lib/dvb/db.h> +%include <lib/python/python.h> +%include <lib/python/pythonconfig.h> +%include <lib/gdi/picload.h> +/************** eptr **************/ + +/************** signals **************/ + +template<class R> class PSignal0 +{ +public: + PyObject *get(); +}; + +%template(PSignal0V) PSignal0<void>; + +%typemap(out) PSignal0V { + $1 = $input->get(); +} + +template<class R, class P0> class PSignal1 +{ +public: + PyObject *get(); +}; + +%template(PSignal1VI) PSignal1<void,int>; +%template(PSignal1VS) PSignal1<void,const char *c>; + +%typemap(out) PSignal1VI { + $1 = $input->get(); +} + +%typemap(out) PSignal1VS { + $1 = $input->get(); +} + +%template(PSignal1VoidICECMessage) PSignal1<void,ePtr<iCECMessage>&>; + +%typemap(out) PSignal1VoidICECMessage { + $1 = $input->get(); +} + +template<class R, class P0, class P1> class PSignal2 +{ +public: + PyObject *get(); +}; + +%template(PSignal2VoidIRecordableServiceInt) PSignal2<void,ePtr<iRecordableService>&,int>; + +%typemap(out) PSignal2VoidIRecordableServiceInt { + $1 = $input->get(); +} + +%template(PSignal2VII) PSignal2<void,int,int>; + +%typemap(out) PSignal2VII { + $1 = $input->get(); +} + +%{ +RESULT SwigFromPython(ePtr<gPixmap> &result, PyObject *obj) +{ + ePtr<gPixmap> *res; + + res = 0; + result = 0; +#ifndef SWIGTYPE_p_ePtrT_gPixmap_t +#define SWIGTYPE_p_ePtrT_gPixmap_t SWIGTYPE_p_ePtrTgPixmap_t +#endif + if (SWIG_Python_ConvertPtr(obj, (void **)&res, SWIGTYPE_p_ePtrT_gPixmap_t, SWIG_POINTER_EXCEPTION | 0)) + return -1; + if (!res) + return -1; + result = *res; + return 0; +} +PyObject *New_eServiceReference(const eServiceReference &ref) +{ + eServiceReference *result = new eServiceReference(ref); + return SWIG_NewPointerObj((void*)(result), SWIGTYPE_p_eServiceReference, 1); +} +PyObject *New_iRecordableServicePtr(const ePtr<iRecordableService> &ptr) +{ + ePtr<iRecordableService> *result = new ePtr<iRecordableService>(ptr); +#ifndef SWIGTYPE_p_ePtrT_iRecordableService_t +#define SWIGTYPE_p_ePtrT_iRecordableService_t SWIGTYPE_p_ePtrTiRecordableService_t +#endif + return SWIG_NewPointerObj((void*)(result), SWIGTYPE_p_ePtrT_iRecordableService_t, 1); +} +PyObject *New_iCECMessagePtr(const ePtr<iCECMessage> &ptr) +{ + ePtr<iCECMessage> *result = new ePtr<iCECMessage>(ptr); +#ifndef SWIGTYPE_p_ePtrT_iCECMessage_t +#define SWIGTYPE_p_ePtrT_iCECMessage_t SWIGTYPE_p_ePtrTiCECMessage_t +#endif + return SWIG_NewPointerObj((void*)(result), SWIGTYPE_p_ePtrT_iCECMessage_t, 1); +} +%} + +/* needed for service groups */ + +PyObject *getBestPlayableServiceReference(const eServiceReference &bouquet_ref, const eServiceReference &ignore, bool simulate=false); +%{ +PyObject *getBestPlayableServiceReference(const eServiceReference &bouquet_ref, const eServiceReference &ignore, bool simulate=false) +{ + eStaticServiceDVBBouquetInformation info; + if (info.isPlayable(bouquet_ref, ignore, simulate)) + return New_eServiceReference(info.getPlayableService()); + Py_INCREF(Py_None); + return Py_None; +} +%} + +void setTunerTypePriorityOrder(int); +%{ +void setTunerTypePriorityOrder(int order) +{ + eDVBFrontend::setTypePriorityOrder(order); +} +%} + +void setPreferredTuner(int); +%{ +void setPreferredTuner(int index) +{ + eDVBFrontend::setPreferredFrontend(index); +} +%} + +void setSpinnerOnOff(int); +%{ +void setSpinnerOnOff(int onoff) +{ + gRC *rc = gRC::getInstance(); + if (rc) rc->setSpinnerOnOff(onoff); +} +%} + +void setEnableTtCachingOnOff(int); +%{ +void setEnableTtCachingOnOff(int onoff) +{ + eTuxtxtApp *tt = eTuxtxtApp::getInstance(); + if (tt) tt->setEnableTtCachingOnOff(onoff); +} +%} + +/************** temp *****************/ + + /* need a better place for this, i agree. */ +%{ +extern void runMainloop(); +extern void quitMainloop(int exit_code); +extern eApplication *getApplication(); +extern int getPrevAsciiCode(); +extern void addFont(const char *filename, const char *alias, int scale_factor, int is_replacement, int renderflags = 0); +extern const char *getEnigmaVersionString(); +extern const char *getBoxType(); +extern void dump_malloc_stats(void); +%} + +extern void addFont(const char *filename, const char *alias, int scale_factor, int is_replacement, int renderflags = 0); +extern int getPrevAsciiCode(); +extern void runMainloop(); +extern void quitMainloop(int exit_code); +extern eApplication *getApplication(); +extern const char *getEnigmaVersionString(); +extern const char *getBoxType(); +extern void dump_malloc_stats(void); + +%include <lib/python/python_console.i> +%include <lib/python/python_base.i> diff --git a/lib/python/python.cpp b/lib/python/python.cpp new file mode 100644 index 0000000..c5fc191 --- /dev/null +++ b/lib/python/python.cpp @@ -0,0 +1,239 @@ +#include <lib/base/eerror.h> + /* avoid warnigs :) */ +#undef _POSIX_C_SOURCE +#define _POSIX_C_SOURCE 200112L +extern "C" void init_enigma(); +extern "C" void eBaseInit(void); +extern "C" void eConsoleInit(void); +extern void bsodFatal(const char *component); +extern void quitMainloop(int exitCode); + +#define SKIP_PART2 +#include <lib/python/python.h> +#undef SKIP_PART2 + +#ifdef PYTHON_REFCOUNT_DEBUG +ePyObject &ePyObject::operator=(PyObject *ob) +{ + m_ob=ob; + m_file=0; + m_line=0; + m_from=m_to=0; + m_erased=false; + return *this; +} + +ePyObject &ePyObject::operator=(const ePyObject &ob) +{ + m_ob=ob.m_ob; + m_file=ob.m_file; + m_line=ob.m_line; + m_from=ob.m_from; + m_to=ob.m_to; + m_erased=ob.m_erased; + return *this; +} + +ePyObject::operator PyObject*() +{ + if (m_ob) + { + if (!m_erased && m_ob->ob_refcnt > 0) + return m_ob; + eDebug("invalid access PyObject %s with refcount <= 0 %d", + m_erased ? "deleted" : "undeleted", m_ob->ob_refcnt); + if (m_file) + eDebug("last modified in file %s line %d from %d to %d", + m_file, m_line, m_from, m_to); + bsodFatal("enigma2, refcnt"); + } + return 0; +} + +void ePyObject::incref(const char *file, int line) +{ + if (!m_ob) + { + eDebug("invalid incref python object with null pointer %s %d!!!", file, line); + if (m_file) + eDebug("last modified in file %s line %d from %d to %d", + m_file, m_line, m_from, m_to); + bsodFatal("enigma2, refcnt"); + } + if (m_erased || m_ob->ob_refcnt <= 0) + { + eDebug("invalid incref %s python object with refcounting value %d in file %s line %d!!!", + m_erased ? "deleted" : "undeleted", m_ob->ob_refcnt, file, line); + if (m_file) + eDebug("last modified in file %s line %d from %d to %d", + m_file, m_line, m_from, m_to); + bsodFatal("enigma2, refcnt"); + } + if (m_ob->ob_refcnt == 0x7FFFFFFF) + { + eDebug("invalid incref %s python object with refcounting value %d (MAX_INT!!!) in file %s line %d!!!", + m_erased ? "deleted" : "undeleted", m_ob->ob_refcnt, file, line); + if (m_file) + eDebug("last modified in file %s line %d from %d to %d", + m_file, m_line, m_from, m_to); + bsodFatal("enigma2, refcnt"); + } + m_file = file; + m_line = line; + m_from = m_ob->ob_refcnt; + m_to = m_from+1; + Py_INCREF(m_ob); +} + +void ePyObject::decref(const char *file, int line) +{ + if (!m_ob) + { + eDebug("invalid decref python object with null pointer %s %d!!!", file, line); + if (m_file) + eDebug("last modified in file %s line %d from %d to %d", + m_file, m_line, m_from, m_to); + bsodFatal("enigma2, refcnt"); + } + if (m_erased || m_ob->ob_refcnt <= 0) + { + eDebug("invalid decref %s python object with refcounting value %d in file %s line %d!!!", + m_erased ? "deleted" : "undeleted", m_ob->ob_refcnt, file, line); + if (m_file) + eDebug("last modified in file %s line %d from %d to %d", + m_file, m_line, m_from, m_to); + bsodFatal("enigma2, refcnt"); + } + m_file = file; + m_line = line; + m_from = m_ob->ob_refcnt; + m_to = m_from-1; + m_erased = !m_to; + Py_DECREF(m_ob); +} +#endif // PYTHON_REFCOUNT_DEBUG + +#define SKIP_PART1 +#include <lib/python/python.h> +#undef SKIP_PART1 + +ePython::ePython() +{ +// Py_VerboseFlag = 1; + +// Py_OptimizeFlag = 1; + + Py_Initialize(); + PyEval_InitThreads(); + + init_enigma(); + eBaseInit(); + eConsoleInit(); +} + +ePython::~ePython() +{ +// This appears to hang, sorry. +// Py_Finalize(); +} + +int ePython::execFile(const char *file) +{ + FILE *fp = fopen(file, "r"); + if (!fp) + return -ENOENT; + int ret = PyRun_SimpleFile(fp, file); + fclose(fp); + return ret; +} + +int ePython::execute(const std::string &pythonfile, const std::string &funcname) +{ + ePyObject pName, pModule, pDict, pFunc, pArgs, pValue; + pName = PyString_FromString(pythonfile.c_str()); + + pModule = PyImport_Import(pName); + Py_DECREF(pName); + + if (pModule) + { + pDict = PyModule_GetDict(pModule); + + pFunc = PyDict_GetItemString(pDict, funcname.c_str()); + + if (pFunc && PyCallable_Check(pFunc)) + { + pArgs = PyTuple_New(0); + // implement arguments.. + pValue = PyObject_CallObject(pFunc, pArgs); + Py_DECREF(pArgs); + if (pValue) + { + printf("Result of call: %ld\n", PyInt_AsLong(pValue)); + Py_DECREF(pValue); + } else + { + Py_DECREF(pModule); + PyErr_Print(); + return 1; + } + } + } else + { + if (PyErr_Occurred()) + PyErr_Print(); + return 1; + } + return 0; +} + +int ePython::call(ePyObject pFunc, ePyObject pArgs) +{ + int res = -1; + ePyObject pValue; + if (pFunc && PyCallable_Check(pFunc)) + { + pValue = PyObject_CallObject(pFunc, pArgs); + if (pValue) + { + if (PyInt_Check(pValue)) + res = PyInt_AsLong(pValue); + else + res = 0; + Py_DECREF(pValue); + } else + { + PyErr_Print(); + ePyObject FuncStr = PyObject_Str(pFunc); + ePyObject ArgStr = PyObject_Str(pArgs); + eDebug("(PyObject_CallObject(%s,%s) failed)", PyString_AS_STRING(FuncStr), PyString_AS_STRING(ArgStr)); + Py_DECREF(FuncStr); + Py_DECREF(ArgStr); + /* immediately show BSOD, so we have the actual error at the bottom */ + bsodFatal(0); + /* and make sure we quit (which would also eventually cause a bsod, but with useless termination messages) */ + quitMainloop(5); + } + } + return res; +} + +ePyObject ePython::resolve(const std::string &pythonfile, const std::string &funcname) +{ + ePyObject pName, pModule, pDict, pFunc; + + pName = PyString_FromString(pythonfile.c_str()); + + pModule = PyImport_Import(pName); + Py_DECREF(pName); + + if (pModule) + { + pDict = PyModule_GetDict(pModule); + pFunc = PyDict_GetItemString(pDict, funcname.c_str()); + Py_XINCREF(pFunc); + Py_DECREF(pModule); + } else if (PyErr_Occurred()) + PyErr_Print(); + return pFunc; +} diff --git a/lib/python/python.h b/lib/python/python.h new file mode 100644 index 0000000..f5b6e4d --- /dev/null +++ b/lib/python/python.h @@ -0,0 +1,427 @@ +#ifndef __lib_python_python_class_h + +#ifndef SKIP_PART2 + #define __lib_python_python_class_h +#endif + +#include <string> +#include <lib/base/object.h> + +#if !defined(SKIP_PART1) && !defined(SWIG) +class ePyObject +{ + PyObject *m_ob; +#ifdef PYTHON_REFCOUNT_DEBUG + const char *m_file; + int m_line, m_from, m_to; + bool m_erased; +#endif +public: + inline ePyObject(); + inline ePyObject(const ePyObject &ob); + inline ePyObject(PyObject *ob); +#ifdef PYTHON_REFCOUNT_DEBUG + inline ePyObject(PyObject *ob, const char *file, int line); +#endif + inline ePyObject(PyVarObject *ob); + inline ePyObject(PyDictObject *ob); + inline ePyObject(PyTupleObject *ob); + inline ePyObject(PyListObject *ob); + inline ePyObject(PyStringObject *ob); + operator bool() const { return !!m_ob; } + operator bool() { return !!m_ob; } + ePyObject &operator=(const ePyObject &); + ePyObject &operator=(PyObject *); + ePyObject &operator=(PyVarObject *ob) { return operator=((PyObject*)ob); } + ePyObject &operator=(PyDictObject *ob) { return operator=((PyObject*)ob); } + ePyObject &operator=(PyTupleObject *ob) { return operator=((PyObject*)ob); } + ePyObject &operator=(PyListObject *ob) { return operator=((PyObject*)ob); } + ePyObject &operator=(PyStringObject *ob) { return operator=((PyObject*)ob); } + operator PyObject*(); + operator PyVarObject*() { return (PyVarObject*)operator PyVarObject*(); } + operator PyTupleObject*() { return (PyTupleObject*)operator PyObject*(); } + operator PyListObject*() { return (PyListObject*)operator PyObject*(); } + operator PyStringObject*() { return (PyStringObject*)operator PyObject*(); } + operator PyDictObject*() { return (PyDictObject*)operator PyObject*(); } + PyObject *operator->() { return operator PyObject*(); } +#ifdef PYTHON_REFCOUNT_DEBUG + void incref(const char *file, int line); + void decref(const char *file, int line); +#else + void incref(); + void decref(); +#endif +}; + +inline ePyObject::ePyObject() + :m_ob(0) +#ifdef PYTHON_REFCOUNT_DEBUG + ,m_file(0), m_line(0), m_from(0), m_to(0), m_erased(false) +#endif +{ +} + +inline ePyObject::ePyObject(const ePyObject &ob) + :m_ob(ob.m_ob) +#ifdef PYTHON_REFCOUNT_DEBUG + ,m_file(ob.m_file), m_line(ob.m_line) + ,m_from(ob.m_from), m_to(ob.m_to), m_erased(ob.m_erased) +#endif +{ +} + +inline ePyObject::ePyObject(PyObject *ob) + :m_ob(ob) +#ifdef PYTHON_REFCOUNT_DEBUG + ,m_file(0), m_line(0), m_from(0), m_to(0), m_erased(false) +#endif +{ +} + +#ifdef PYTHON_REFCOUNT_DEBUG +inline ePyObject::ePyObject(PyObject *ob, const char* file, int line) + :m_ob(ob) + ,m_file(file), m_line(line), m_from(ob->ob_refcnt), m_to(ob->ob_refcnt), m_erased(false) +{ +} +#endif + +inline ePyObject::ePyObject(PyVarObject *ob) + :m_ob((PyObject*)ob) +#ifdef PYTHON_REFCOUNT_DEBUG + ,m_file(0), m_line(0), m_from(0), m_to(0), m_erased(false) +#endif +{ +} + +inline ePyObject::ePyObject(PyDictObject *ob) + :m_ob((PyObject*)ob) +#ifdef PYTHON_REFCOUNT_DEBUG + ,m_file(0), m_line(0), m_from(0), m_to(0), m_erased(false) +#endif +{ +} + +inline ePyObject::ePyObject(PyTupleObject *ob) + :m_ob((PyObject*)ob) +#ifdef PYTHON_REFCOUNT_DEBUG + ,m_file(0), m_line(0), m_from(0), m_to(0), m_erased(false) +#endif +{ +} + +inline ePyObject::ePyObject(PyListObject *ob) + :m_ob((PyObject*)ob) +#ifdef PYTHON_REFCOUNT_DEBUG + ,m_file(0), m_line(0), m_from(0), m_to(0), m_erased(false) +#endif +{ +} + +inline ePyObject::ePyObject(PyStringObject *ob) + :m_ob((PyObject*)ob) +#ifdef PYTHON_REFCOUNT_DEBUG + ,m_file(0), m_line(0), m_from(0), m_to(0), m_erased(false) +#endif +{ +} + +#ifndef PYTHON_REFCOUNT_DEBUG +inline ePyObject &ePyObject::operator=(PyObject *ob) +{ + m_ob=ob; + return *this; +} + +inline ePyObject &ePyObject::operator=(const ePyObject &ob) +{ + m_ob=ob.m_ob; + return *this; +} + +inline ePyObject::operator PyObject*() +{ + return m_ob; +} + +inline void ePyObject::incref() +{ + Py_INCREF(m_ob); +} + +inline void ePyObject::decref() +{ + Py_DECREF(m_ob); +} + +class ePyObjectWrapper +{ + ePyObject m_obj; +public: + ePyObjectWrapper(const ePyObjectWrapper &wrapper) + :m_obj(wrapper.m_obj) + { + Py_INCREF(m_obj); + } + ePyObjectWrapper(const ePyObject &obj) + :m_obj(obj) + { + Py_INCREF(m_obj); + } + ~ePyObjectWrapper() + { + Py_DECREF(m_obj); + } + ePyObjectWrapper &operator=(const ePyObjectWrapper &wrapper) + { + Py_DECREF(m_obj); + m_obj = wrapper.m_obj; + Py_INCREF(m_obj); + return *this; + } + operator PyObject*() + { + return m_obj; + } + operator ePyObject() + { + return m_obj; + } +}; + +#endif // ! PYTHON_REFCOUNT_DEBUG + +#endif // !SWIG && !SKIP_PART1 + +#ifndef SKIP_PART2 +#ifndef SWIG +#ifdef PYTHON_REFCOUNT_DEBUG +inline void Impl_Py_DECREF(const char* file, int line, const ePyObject &obj) +{ + ((ePyObject*)(&obj))->decref(file, line); +} + +inline void Impl_Py_INCREF(const char* file, int line, const ePyObject &obj) +{ + ((ePyObject*)(&obj))->incref(file, line); +} + +inline void Impl_Py_XDECREF(const char* file, int line, const ePyObject &obj) +{ + if (obj) + ((ePyObject*)(&obj))->decref(file, line); +} + +inline void Impl_Py_XINCREF(const char* file, int line, const ePyObject &obj) +{ + if (obj) + ((ePyObject*)(&obj))->incref(file, line); +} + +inline ePyObject Impl_PyTuple_New(const char* file, int line, int elements=0) +{ + return ePyObject(PyTuple_New(elements), file, line); +} + +inline ePyObject Impl_PyList_New(const char* file, int line, int elements=0) +{ + return ePyObject(PyList_New(elements), file, line); +} + +inline ePyObject Impl_PyDict_New(const char* file, int line) +{ + return ePyObject(PyDict_New(), file, line); +} + +inline ePyObject Impl_PyString_FromString(const char* file, int line, const char *str) +{ + return ePyObject(PyString_FromString(str), file, line); +} + +inline ePyObject Impl_PyString_FromFormat(const char* file, int line, const char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + PyObject *ob = PyString_FromFormatV(fmt, ap); + va_end(ap); + return ePyObject(ob, file, line); +} + +inline ePyObject Impl_PyInt_FromLong(const char* file, int line, long val) +{ + return ePyObject(PyInt_FromLong(val), file, line); +} + +inline ePyObject Impl_PyLong_FromLong(const char* file, int line, long val) +{ + return ePyObject(PyLong_FromLong(val), file, line); +} + +inline ePyObject Impl_PyLong_FromUnsignedLong(const char* file, int line, unsigned long val) +{ + return ePyObject(PyLong_FromUnsignedLong(val), file, line); +} + +inline ePyObject Impl_PyLong_FromLongLong(const char* file, int line, long long val) +{ + return ePyObject(PyLong_FromLongLong(val), file, line); +} + +inline ePyObject Impl_PyList_GET_ITEM(const char *file, int line, ePyObject list, unsigned int pos) +{ + return ePyObject(PyList_GET_ITEM(list, pos), file, line); +} + +inline ePyObject Impl_PyTuple_GET_ITEM(const char *file, int line, ePyObject list, unsigned int pos) +{ + return ePyObject(PyTuple_GET_ITEM(list, pos), file, line); +} +#else +inline void Impl_Py_DECREF(const ePyObject &obj) +{ + ((ePyObject*)(&obj))->decref(); +} + +inline void Impl_Py_INCREF(const ePyObject &obj) +{ + ((ePyObject*)(&obj))->incref(); +} + +inline void Impl_Py_XDECREF(const ePyObject &obj) +{ + if (obj) + ((ePyObject*)(&obj))->decref(); +} + +inline void Impl_Py_XINCREF(const ePyObject &obj) +{ + if (obj) + ((ePyObject*)(&obj))->incref(); +} + +inline ePyObject Impl_PyTuple_New(int elements=0) +{ + return PyTuple_New(elements); +} + +inline ePyObject Impl_PyList_New(int elements=0) +{ + return PyList_New(elements); +} + +inline ePyObject Impl_PyDict_New() +{ + return PyDict_New(); +} + +inline ePyObject Impl_PyString_FromString(const char *str) +{ + return PyString_FromString(str); +} + +inline ePyObject Impl_PyString_FromFormat(const char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + PyObject *ob = PyString_FromFormatV(fmt, ap); + va_end(ap); + return ePyObject(ob); +} + +inline ePyObject Impl_PyInt_FromLong(long val) +{ + return PyInt_FromLong(val); +} + +inline ePyObject Impl_PyLong_FromLong(long val) +{ + return PyLong_FromLong(val); +} + +inline ePyObject Impl_PyLong_FromUnsignedLong(unsigned long val) +{ + return PyLong_FromUnsignedLong(val); +} + +inline ePyObject Impl_PyLong_FromLongLong(long long val) +{ + return PyLong_FromLongLong(val); +} + +inline ePyObject Impl_PyList_GET_ITEM(ePyObject list, unsigned int pos) +{ + return PyList_GET_ITEM(list, pos); +} + +inline ePyObject Impl_PyTuple_GET_ITEM(ePyObject list, unsigned int pos) +{ + return PyTuple_GET_ITEM(list, pos); +} +#endif + +inline void Impl_INCREF(PyObject *ob) +{ + Py_INCREF(ob); +} + +inline void Impl_DECREF(PyObject *ob) +{ + Py_DECREF(ob); +} +#define Org_Py_INCREF(obj) Impl_INCREF(obj) +#define Org_Py_DECREF(obj) Impl_DECREF(obj) +#undef Py_DECREF +#undef Py_XDECREF +#undef Py_INCREF +#undef Py_XINCREF +#undef PyList_GET_ITEM +#undef PyTuple_GET_ITEM +#ifdef PYTHON_REFCOUNT_DEBUG +#define Py_DECREF(obj) Impl_Py_DECREF(__FILE__, __LINE__, obj) +#define Py_XDECREF(obj) Impl_Py_XDECREF(__FILE__, __LINE__, obj) +#define Py_INCREF(obj) Impl_Py_INCREF(__FILE__, __LINE__, obj) +#define Py_XINCREF(obj) Impl_Py_XINCREF(__FILE__, __LINE__, obj) +#define PyList_New(args...) Impl_PyList_New(__FILE__, __LINE__, args) +#define PyTuple_New(args...) Impl_PyTuple_New(__FILE__, __LINE__, args) +#define PyDict_New(...) Impl_PyDict_New(__FILE__, __LINE__) +#define PyString_FromString(str) Impl_PyString_FromString(__FILE__, __LINE__, str) +#define PyString_FromFormat(str, args...) Impl_PyString_FromFormat(__FILE__, __LINE__, str, args) +#define PyInt_FromLong(val) Impl_PyInt_FromLong(__FILE__, __LINE__, val) +#define PyLong_FromLong(val) Impl_PyLong_FromLong(__FILE__, __LINE__, val) +#define PyLong_FromUnsignedLong(val) Impl_PyLong_FromUnsignedLong(__FILE__, __LINE__, val) +#define PyLong_FromLongLong(val) Impl_PyLong_FromLongLong(__FILE__, __LINE__, val) +#define PyList_GET_ITEM(list, pos) Impl_PyList_GET_ITEM(__FILE__, __LINE__, list, pos) +#define PyTuple_GET_ITEM(list, pos) Impl_PyTuple_GET_ITEM(__FILE__, __LINE__, list, pos) +#else +#define Py_DECREF(obj) Impl_Py_DECREF(obj) +#define Py_XDECREF(obj) Impl_Py_XDECREF(obj) +#define Py_INCREF(obj) Impl_Py_INCREF(obj) +#define Py_XINCREF(obj) Impl_Py_XINCREF(obj) +#define PyList_New(args...) Impl_PyList_New(args) +#define PyTuple_New(args...) Impl_PyTuple_New(args) +#define PyDict_New(...) Impl_PyDict_New() +#define PyString_FromString(str) Impl_PyString_FromString(str) +#define PyString_FromFormat(str, args...) Impl_PyString_FromFormat(str, args) +#define PyInt_FromLong(val) Impl_PyInt_FromLong(val) +#define PyLong_FromLong(val) Impl_PyLong_FromLong(val) +#define PyLong_FromUnsignedLong(val) Impl_PyLong_FromUnsignedLong(val) +#define PyLong_FromLongLong(val) Impl_PyLong_FromLongLong(val) +#define PyList_GET_ITEM(list, pos) Impl_PyList_GET_ITEM(list, pos) +#define PyTuple_GET_ITEM(list, pos) Impl_PyTuple_GET_ITEM(list, pos) +#endif + +class ePython +{ +public: + ePython(); + ~ePython(); + int execFile(const char *file); + int execute(const std::string &pythonfile, const std::string &funcname); + static int call(ePyObject pFunc, ePyObject args); + static ePyObject resolve(const std::string &pythonfile, const std::string &funcname); +private: +}; + +#endif // SWIG +#endif // SKIP_PART2 +#endif // __lib_python_python_class_h diff --git a/lib/python/python_base.i b/lib/python/python_base.i new file mode 100644 index 0000000..34eea08 --- /dev/null +++ b/lib/python/python_base.i @@ -0,0 +1,425 @@ +%{ +#include <lib/base/ebase.h> +#include "structmember.h" + +extern "C" { + +// eTimer replacement + +struct eTimerPy +{ + PyObject_HEAD + eTimer *tm; + PyObject *in_weakreflist; /* List of weak references */ +}; + +static int +eTimerPy_traverse(eTimerPy *self, visitproc visit, void *arg) +{ + PyObject *obj = self->tm->timeout.getSteal(); + if (obj) { + Py_VISIT(obj); + } + return 0; +} + +static int +eTimerPy_clear(eTimerPy *self) +{ + PyObject *obj = self->tm->timeout.getSteal(true); + if (obj) + Py_CLEAR(obj); + return 0; +} + +static void +eTimerPy_dealloc(eTimerPy* self) +{ + if (self->in_weakreflist != NULL) + PyObject_ClearWeakRefs((PyObject *) self); + eTimerPy_clear(self); + self->tm->Release(); + self->ob_type->tp_free((PyObject*)self); +} + +static PyObject * +eTimerPy_new(PyTypeObject *type, PyObject *args, PyObject *kwds) +{ + eTimerPy *self = (eTimerPy *)type->tp_alloc(type, 0); + self->tm = eTimer::create(eApp); + self->tm->AddRef(); + self->in_weakreflist = NULL; + return (PyObject *)self; +} + +static PyObject * +eTimerPy_is_active(eTimerPy* self) +{ + PyObject *ret = NULL; + ret = self->tm->isActive() ? Py_True : Py_False; + Org_Py_INCREF(ret); + return ret; +} + +static PyObject * +eTimerPy_start(eTimerPy* self, PyObject *args) +{ + long v=0; + long singleShot=0; + if (PyTuple_Size(args) > 1) + { + if (!PyArg_ParseTuple(args, "ll", &v, &singleShot)) // when 2nd arg is a value + { + PyObject *obj=0; + if (!PyArg_ParseTuple(args, "lO", &v, &obj)) // get 2nd arg as python object + return NULL; + else if (obj == Py_True) + singleShot=1; + else if (obj != Py_False) + return NULL; + } + } + else if (!PyArg_ParseTuple(args, "l", &v)) + return NULL; + self->tm->start(v, singleShot); + Py_RETURN_NONE; +} + +static PyObject * +eTimerPy_start_long(eTimerPy* self, PyObject *args) +{ + int v=0; + if (!PyArg_ParseTuple(args, "i", &v)) { + return NULL; + } + self->tm->startLongTimer(v); + Py_RETURN_NONE; +} + +static PyObject * +eTimerPy_change_interval(eTimerPy* self, PyObject *args) +{ + long v=0; + if (!PyArg_ParseTuple(args, "l", &v)) { + return NULL; + } + self->tm->changeInterval(v); + Py_RETURN_NONE; +} + +static PyObject * +eTimerPy_stop(eTimerPy* self) +{ + self->tm->stop(); + Py_RETURN_NONE; +} + +static PyObject * +eTimerPy_get_callback_list(eTimerPy *self) +{ //used for compatibilty with the old eTimer + return self->tm->timeout.get(); +} + +static PyMethodDef eTimerPy_methods[] = { + {"isActive", (PyCFunction)eTimerPy_is_active, METH_NOARGS, + "returns the timer state" + }, + {"start", (PyCFunction)eTimerPy_start, METH_VARARGS, + "start timer with interval in msecs" + }, + {"startLongTimer", (PyCFunction)eTimerPy_start_long, METH_VARARGS, + "start timer with interval in secs" + }, + {"changeInterval", (PyCFunction)eTimerPy_change_interval, METH_VARARGS, + "change interval of a timer (in msecs)" + }, + {"stop", (PyCFunction)eTimerPy_stop, METH_NOARGS, + "stops the timer" + }, + //used for compatibilty with the old eTimer + {"get", (PyCFunction)eTimerPy_get_callback_list, METH_NOARGS, + "get timeout callback list" + }, + {NULL} /* Sentinel */ +}; + +static PyObject * +eTimerPy_get_cb_list(eTimerPy *self, void *closure) +{ + return self->tm->timeout.get(); +} + +static PyObject * +eTimerPy_timeout(eTimerPy *self, void *closure) +{ //used for compatibilty with the old eTimer + Org_Py_INCREF((PyObject*)self); + return (PyObject*)self; +} + +static PyGetSetDef eTimerPy_getseters[] = { + {"callback", + (getter)eTimerPy_get_cb_list, (setter)0, + "returns the callback python list", + NULL}, + + {"timeout", //used for compatibilty with the old eTimer + (getter)eTimerPy_timeout, (setter)0, + "synonym for our self", + NULL}, + + {NULL} /* Sentinel */ +}; + +static PyTypeObject eTimerPyType = { + PyObject_HEAD_INIT(NULL) + 0, /*ob_size*/ + "eBaseImpl.eTimer", /*tp_name*/ + sizeof(eTimerPy), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + (destructor)eTimerPy_dealloc, /*tp_dealloc*/ + 0, /*tp_print*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_compare*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash */ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + "eTimer objects", /* tp_doc */ + (traverseproc)eTimerPy_traverse, /* tp_traverse */ + (inquiry)eTimerPy_clear, /* tp_clear */ + 0, /* tp_richcompare */ + offsetof(eTimerPy, in_weakreflist), /* tp_weaklistoffset */ + 0, /* tp_iter */ + 0, /* tp_iternext */ + eTimerPy_methods, /* tp_methods */ + 0, /* tp_members */ + eTimerPy_getseters, /* tp_getset */ + 0, /* tp_base */ + 0, /* tp_dict */ + 0, /* tp_descr_get */ + 0, /* tp_descr_set */ + 0, /* tp_dictoffset */ + 0, /* tp_init */ + 0, /* tp_alloc */ + eTimerPy_new, /* tp_new */ +}; + +// eSocketNotifier replacement + +struct eSocketNotifierPy +{ + PyObject_HEAD + eSocketNotifier *sn; + PyObject *in_weakreflist; /* List of weak references */ +}; + +static int +eSocketNotifierPy_traverse(eSocketNotifierPy *self, visitproc visit, void *arg) +{ + PyObject *obj = self->sn->activated.getSteal(); + if (obj) + Py_VISIT(obj); + return 0; +} + +static int +eSocketNotifierPy_clear(eSocketNotifierPy *self) +{ + PyObject *obj = self->sn->activated.getSteal(true); + if (obj) + Py_CLEAR(obj); + return 0; +} + +static void +eSocketNotifierPy_dealloc(eSocketNotifierPy* self) +{ + if (self->in_weakreflist != NULL) + PyObject_ClearWeakRefs((PyObject *) self); + eSocketNotifierPy_clear(self); + self->sn->Release(); + self->ob_type->tp_free((PyObject*)self); +} + +static PyObject * +eSocketNotifierPy_new(PyTypeObject *type, PyObject *args, PyObject *kwds) +{ + eSocketNotifierPy *self = (eSocketNotifierPy *)type->tp_alloc(type, 0); + int fd, req, immediate_start = 1, size = PyTuple_Size(args); + if (size > 2) + { + if (!PyArg_ParseTuple(args, "iii", &fd, &req, &immediate_start)) + { + PyObject *obj = NULL; + if (!PyArg_ParseTuple(args, "iiO", &fd, &req, &immediate_start)) + return NULL; + if (obj == Py_False) + immediate_start = 0; + else if (obj != Py_True) + return NULL; + } + } + else if (size < 2 || !PyArg_ParseTuple(args, "ii", &fd, &req)) + return NULL; + self->sn = eSocketNotifier::create(eApp, fd, req, immediate_start); + self->sn->AddRef(); + self->in_weakreflist = NULL; + return (PyObject *)self; +} + +static PyObject * +eSocketNotifierPy_is_running(eSocketNotifierPy* self) +{ + PyObject *ret = self->sn->isRunning() ? Py_True : Py_False; + Org_Py_INCREF(ret); + return ret; +} + +static PyObject * +eSocketNotifierPy_start(eSocketNotifierPy* self) +{ + self->sn->start(); + Py_RETURN_NONE; +} + +static PyObject * +eSocketNotifierPy_stop(eSocketNotifierPy* self) +{ + self->sn->stop(); + Py_RETURN_NONE; +} + +static PyObject * +eSocketNotifierPy_get_fd(eSocketNotifierPy* self) +{ + return PyInt_FromLong(self->sn->getFD()); +} + +static PyObject * +eSocketNotifierPy_get_requested(eSocketNotifierPy* self) +{ + return PyInt_FromLong(self->sn->getRequested()); +} + +static PyObject * +eSocketNotifierPy_set_requested(eSocketNotifierPy* self, PyObject *args) +{ + int req; + if (PyTuple_Size(args) != 1 || !PyArg_ParseTuple(args, "i", &req)) + return NULL; + self->sn->setRequested(req); + Py_RETURN_NONE; +} + +static PyMethodDef eSocketNotifierPy_methods[] = { + {"isRunning", (PyCFunction)eSocketNotifierPy_is_running, METH_NOARGS, + "returns the running state" + }, + {"start", (PyCFunction)eSocketNotifierPy_start, METH_NOARGS, + "start the sn" + }, + {"stop", (PyCFunction)eSocketNotifierPy_stop, METH_NOARGS, + "stops the sn" + }, + {"getFD", (PyCFunction)eSocketNotifierPy_get_fd, METH_NOARGS, + "get file descriptor" + }, + {"getRequested", (PyCFunction)eSocketNotifierPy_get_requested, METH_NOARGS, + "get requested" + }, + {"setRequested", (PyCFunction)eSocketNotifierPy_set_requested, METH_VARARGS, + "set requested" + }, + {NULL} /* Sentinel */ +}; + +static PyObject * +eSocketNotifierPy_get_cb_list(eSocketNotifierPy *self, void *closure) +{ + return self->sn->activated.get(); +} + +static PyGetSetDef eSocketNotifierPy_getseters[] = { + {"callback", + (getter)eSocketNotifierPy_get_cb_list, (setter)0, + "returns the callback python list", + NULL}, + {NULL} /* Sentinel */ +}; + +static PyTypeObject eSocketNotifierPyType = { + PyObject_HEAD_INIT(NULL) + 0, /*ob_size*/ + "eBaseImpl.eSocketNotifier", /*tp_name*/ + sizeof(eSocketNotifierPy), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + (destructor)eSocketNotifierPy_dealloc, /*tp_dealloc*/ + 0, /*tp_print*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_compare*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash */ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + "eTimer objects", /* tp_doc */ + (traverseproc)eSocketNotifierPy_traverse, /* tp_traverse */ + (inquiry)eSocketNotifierPy_clear, /* tp_clear */ + 0, /* tp_richcompare */ + offsetof(eSocketNotifierPy, in_weakreflist), /* tp_weaklistoffset */ + 0, /* tp_iter */ + 0, /* tp_iternext */ + eSocketNotifierPy_methods, /* tp_methods */ + 0, /* tp_members */ + eSocketNotifierPy_getseters, /* tp_getset */ + 0, /* tp_base */ + 0, /* tp_dict */ + 0, /* tp_descr_get */ + 0, /* tp_descr_set */ + 0, /* tp_dictoffset */ + 0, /* tp_init */ + 0, /* tp_alloc */ + eSocketNotifierPy_new, /* tp_new */ +}; + +static PyMethodDef base_module_methods[] = { + {NULL} /* Sentinel */ +}; + +void eBaseInit(void) +{ + PyObject* m = Py_InitModule3("eBaseImpl", base_module_methods, + "Module that implements some enigma classes with working cyclic garbage collection."); + + if (m == NULL) + return; + + if (!PyType_Ready(&eTimerPyType)) + { + Org_Py_INCREF((PyObject*)&eTimerPyType); + PyModule_AddObject(m, "eTimer", (PyObject*)&eTimerPyType); + } + if (!PyType_Ready(&eSocketNotifierPyType)) + { + Org_Py_INCREF((PyObject*)&eSocketNotifierPyType); + PyModule_AddObject(m, "eSocketNotifier", (PyObject*)&eSocketNotifierPyType); + } +} +} + +%} diff --git a/lib/python/python_console.i b/lib/python/python_console.i new file mode 100644 index 0000000..ea22b86 --- /dev/null +++ b/lib/python/python_console.i @@ -0,0 +1,385 @@ +%{ +#include <lib/base/console.h> +#include "structmember.h" + +extern "C" { + +struct eConsolePy +{ + PyObject_HEAD + eConsoleAppContainer *cont; + PyObject *in_weakreflist; /* List of weak references */ +}; + +static PyObject * +eConsolePy_dataAvail(eConsolePy *self, void *closure) +{ + return self->cont->dataAvail.get(); +} + +static PyObject * +eConsolePy_stdoutAvail(eConsolePy *self, void *closure) +{ + return self->cont->stdoutAvail.get(); +} + +static PyObject * +eConsolePy_stderrAvail(eConsolePy *self, void *closure) +{ + return self->cont->stderrAvail.get(); +} + +static PyObject * +eConsolePy_dataSent(eConsolePy *self, void *closure) +{ + return self->cont->dataSent.get(); +} + +static PyObject * +eConsolePy_appClosed(eConsolePy *self, void *closure) +{ + return self->cont->appClosed.get(); +} + +static PyGetSetDef eConsolePy_getseters[] = { + {"dataAvail", + (getter)eConsolePy_dataAvail, (setter)0, + "dataAvail callback list", + NULL}, + {"stdoutAvail", + (getter)eConsolePy_stdoutAvail, (setter)0, + "stdoutAvail callback list", + NULL}, + {"stderrAvail", + (getter)eConsolePy_stderrAvail, (setter)0, + "stderrAvail callback list", + NULL}, + {"dataSent", + (getter)eConsolePy_dataSent, (setter)0, + "dataSent callback list", + NULL}, + {"appClosed", + (getter)eConsolePy_appClosed, (setter)0, + "appClosed callback list", + NULL}, + {NULL} /* Sentinel */ +}; + +static int +eConsolePy_traverse(eConsolePy *self, visitproc visit, void *arg) +{ + PyObject *obj = self->cont->dataAvail.getSteal(); + if (obj) { + Py_VISIT(obj); + } + obj = self->cont->stdoutAvail.getSteal(); + if (obj) { + Py_VISIT(obj); + } + obj = self->cont->stderrAvail.getSteal(); + if (obj) { + Py_VISIT(obj); + } + obj = self->cont->dataSent.getSteal(); + if (obj) { + Py_VISIT(obj); + } + obj = self->cont->appClosed.getSteal(); + if (obj) { + Py_VISIT(obj); + } + return 0; +} + +static int +eConsolePy_clear(eConsolePy *self) +{ + PyObject *obj = self->cont->dataAvail.getSteal(true); + if (obj) { + Py_CLEAR(obj); + } + obj = self->cont->stdoutAvail.getSteal(true); + if (obj) { + Py_CLEAR(obj); + } + obj = self->cont->stderrAvail.getSteal(true); + if (obj) { + Py_CLEAR(obj); + } + obj = self->cont->dataSent.getSteal(true); + if (obj) { + Py_CLEAR(obj); + } + obj = self->cont->appClosed.getSteal(true); + if (obj) { + Py_CLEAR(obj); + } + return 0; +} + +static void +eConsolePy_dealloc(eConsolePy* self) +{ + if (self->in_weakreflist != NULL) + PyObject_ClearWeakRefs((PyObject *) self); + eConsolePy_clear(self); + self->cont->Release(); + self->ob_type->tp_free((PyObject*)self); +} + +static PyObject * +eConsolePy_new(PyTypeObject *type, PyObject *args, PyObject *kwds) +{ + eConsolePy *self = (eConsolePy *)type->tp_alloc(type, 0); + self->cont = new eConsoleAppContainer(); + self->cont->AddRef(); + self->in_weakreflist = NULL; + return (PyObject *)self; +} + +static PyObject * +eConsolePy_running(eConsolePy* self) +{ + PyObject *ret = NULL; + ret = self->cont->running() ? Py_True : Py_False; + Org_Py_INCREF(ret); + return ret; +} + +static PyObject * +eConsolePy_execute(eConsolePy* self, PyObject *argt) +{ + Py_ssize_t argc = PyTuple_Size(argt); + if (argc > 1) + { + const char *argv[argc + 1]; + int argpos=0; + while(argpos < argc) + { + PyObject *arg = PyTuple_GET_ITEM(argt, argpos); + if (!PyString_Check(arg)) + { + char err[255]; + if (argpos) + snprintf(err, 255, "arg %d is not a string", argpos); + else + snprintf(err, 255, "cmd is not a string!"); + PyErr_SetString(PyExc_TypeError, err); + return NULL; + } + argv[argpos++] = PyString_AsString(arg); + } + argv[argpos] = 0; + return PyInt_FromLong(self->cont->execute(argv[0], argv+1)); + } + else + { + const char *str; + if (PyArg_ParseTuple(argt, "s", &str)) + return PyInt_FromLong(self->cont->execute(str)); + PyErr_SetString(PyExc_TypeError, + "cmd is not a string!"); + } + return NULL; +} + +static PyObject * +eConsolePy_write(eConsolePy* self, PyObject *args) +{ + char *data; + int data_len; + int len = -1; + if (!PyArg_ParseTuple(args, "s#|i", &data, &data_len, &len)) + { + PyErr_SetString(PyExc_TypeError, + "1st arg must be a string, optionaly 2nd arg can be the string length"); + return NULL; + } + if (len < 0) + len = data_len; + self->cont->write(data, len); + Py_RETURN_NONE; +} + +static PyObject * +eConsolePy_getPID(eConsolePy* self) +{ + return PyInt_FromLong(self->cont->getPID()); +} + +static PyObject * +eConsolePy_setCWD(eConsolePy* self, PyObject *args) +{ + const char *path=0; + if (!PyArg_ParseTuple(args, "s", &path)) + return NULL; + self->cont->setCWD(path); + Py_RETURN_NONE; +} + +static PyObject * +eConsolePy_kill(eConsolePy* self) +{ + self->cont->kill(); + Py_RETURN_NONE; +} + +static PyObject * +eConsolePy_sendCtrlC(eConsolePy* self) +{ + self->cont->sendCtrlC(); + Py_RETURN_NONE; +} + +static PyObject * +eConsolePy_sendEOF(eConsolePy* self) +{ + self->cont->sendEOF(); + Py_RETURN_NONE; +} + +static PyObject * +eConsolePy_dumpToFile(eConsolePy* self, PyObject *args) +{ + char *filename; + if (!PyArg_ParseTuple(args, "s", &filename)) + { + PyErr_SetString(PyExc_TypeError, + "arg must be a string (filename)"); + return NULL; + } + else + { + int fd = open(filename, O_WRONLY|O_CREAT|O_TRUNC, 0644); + self->cont->setFileFD(1, fd); + eDebug("eConsoleAppContainer::dumpToFile open(%s, O_WRONLY|O_CREAT|O_TRUNC, 0644)=%d", filename, fd); + } + Py_RETURN_NONE; +} + +static PyObject * +eConsolePy_readFromFile(eConsolePy* self, PyObject *args) +{ + char *filename; + if (!PyArg_ParseTuple(args, "s", &filename)) + { + PyErr_SetString(PyExc_TypeError, + "arg must be a string (filename)"); + return NULL; + } + else + { + int fd = open(filename, O_RDONLY); + if (fd >= 0) + { + char readbuf[32*1024]; + int rsize = read(fd, readbuf, 32*1024); + self->cont->setFileFD(0, fd); + eDebug("eConsoleAppContainer::readFromFile open(%s, O_RDONLY)=%d, read: %d", filename, fd, rsize); + self->cont->write(readbuf, rsize); + } + else + { + eDebug("eConsoleAppContainer::readFromFile %s not exist!", filename); + self->cont->setFileFD(0, -1); + } + } + Py_RETURN_NONE; +} + +static PyMethodDef eConsolePy_methods[] = { + {"setCWD", (PyCFunction)eConsolePy_setCWD, METH_VARARGS, + "set working dir" + }, + {"execute", (PyCFunction)eConsolePy_execute, METH_VARARGS, + "execute command" + }, + {"dumpToFile", (PyCFunction)eConsolePy_dumpToFile, METH_VARARGS, + "set output file" + }, + {"readFromFile", (PyCFunction)eConsolePy_readFromFile, METH_VARARGS, + "set input file" + }, + {"getPID", (PyCFunction)eConsolePy_getPID, METH_NOARGS, + "execute command" + }, + {"kill", (PyCFunction)eConsolePy_kill, METH_NOARGS, + "kill application" + }, + {"sendCtrlC", (PyCFunction)eConsolePy_sendCtrlC, METH_NOARGS, + "send Ctrl-C to application" + }, + {"sendEOF", (PyCFunction)eConsolePy_sendEOF, METH_NOARGS, + "send EOF to application" + }, + {"write", (PyCFunction)eConsolePy_write, METH_VARARGS, + "write data to application" + }, + {"running", (PyCFunction)eConsolePy_running, METH_NOARGS, + "returns the running state" + }, + {NULL} /* Sentinel */ +}; + +static PyTypeObject eConsolePyType = { + PyObject_HEAD_INIT(NULL) + 0, /*ob_size*/ + "eConsoleImpl.eConsoleAppContainer", /*tp_name*/ + sizeof(eConsolePy), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + (destructor)eConsolePy_dealloc, /*tp_dealloc*/ + 0, /*tp_print*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_compare*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash */ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + "eConsoleAppContainer objects", /* tp_doc */ + (traverseproc)eConsolePy_traverse, /* tp_traverse */ + (inquiry)eConsolePy_clear, /* tp_clear */ + 0, /* tp_richcompare */ + offsetof(eConsolePy, in_weakreflist), /* tp_weaklistoffset */ + 0, /* tp_iter */ + 0, /* tp_iternext */ + eConsolePy_methods, /* tp_methods */ + 0, /* tp_members */ + eConsolePy_getseters, /* tp_getset */ + 0, /* tp_base */ + 0, /* tp_dict */ + 0, /* tp_descr_get */ + 0, /* tp_descr_set */ + 0, /* tp_dictoffset */ + 0, /* tp_init */ + 0, /* tp_alloc */ + eConsolePy_new, /* tp_new */ +}; + +static PyMethodDef console_module_methods[] = { + {NULL} /* Sentinel */ +}; + +void eConsoleInit(void) +{ + PyObject* m = Py_InitModule3("eConsoleImpl", console_module_methods, + "Module that implements eConsoleAppContainer with working cyclic garbage collection."); + + if (m == NULL) + return; + + if (!PyType_Ready(&eConsolePyType)) + { + Org_Py_INCREF((PyObject*)&eConsolePyType); + PyModule_AddObject(m, "eConsoleAppContainer", (PyObject*)&eConsolePyType); + } +} +} +%} diff --git a/lib/python/python_dvb.i b/lib/python/python_dvb.i new file mode 100644 index 0000000..9b6ae08 --- /dev/null +++ b/lib/python/python_dvb.i @@ -0,0 +1,47 @@ +%{ +#include <lib/python/swig.h> +#include <lib/python/python_helpers.h> +%} + +%extend iDVBFrontend { +void getFrontendStatus(PyObject *dest) +{ + ePyObject ret = dest; + ePtr<iDVBFrontendStatus> status; + self->getFrontendStatus(status); + if (status) + { + frontendStatusToDict(ret, status); + } +} + +void getTransponderData(PyObject *dest, bool original) +{ + ePyObject ret = dest; + ePtr<iDVBTransponderData> data; + self->getTransponderData(data, original); + if (data) + { + transponderDataToDict(ret, data); + } +} + +void getFrontendData(PyObject *dest) +{ + ePyObject ret = dest; + ePtr<iDVBFrontendData> data; + self->getFrontendData(data); + if (data) + { + frontendDataToDict(ret, data); + } +} +}; + +%ignore iDVBFrontend::getFrontendStatus; +%ignore iDVBFrontend::getTransponderData; +%ignore iDVBFrontend::getFrontendData; + +%ignore iDVBFrontendStatus; +%ignore iDVBTransponderData; +%ignore iDVBFrontendData; diff --git a/lib/python/python_helpers.cpp b/lib/python/python_helpers.cpp new file mode 100644 index 0000000..6883a56 --- /dev/null +++ b/lib/python/python_helpers.cpp @@ -0,0 +1,169 @@ +#include <lib/python/python_helpers.h> + +void PutToDict(ePyObject &dict, const char *key, long value) +{ + ePyObject item = PyInt_FromLong(value); + if (item) + { + if (PyDict_SetItemString(dict, key, item)) + eDebug("put %s to dict failed", key); + Py_DECREF(item); + } + else + eDebug("could not create PyObject for %s", key); +} + +void PutToDict(ePyObject &dict, const char *key, ePyObject item) +{ + if (item) + { + if (PyDict_SetItemString(dict, key, item)) + eDebug("put %s to dict failed", key); + Py_DECREF(item); + } + else + eDebug("invalid PyObject for %s", key); +} + +void PutToDict(ePyObject &dict, const char *key, const char *value) +{ + ePyObject item = PyString_FromString(value); + if (item) + { + if (PyDict_SetItemString(dict, key, item)) + eDebug("put %s to dict failed", key); + Py_DECREF(item); + } + else + eDebug("could not create PyObject for %s", key); +} + +static PyObject *createTuple(int pid, const char *type) +{ + PyObject *r = PyTuple_New(2); + PyTuple_SET_ITEM(r, 0, PyInt_FromLong(pid)); + PyTuple_SET_ITEM(r, 1, PyString_FromString(type)); + return r; +} + +static inline void PyList_AppendSteal(PyObject *list, PyObject *item) +{ + PyList_Append(list, item); + Py_DECREF(item); +} + +void frontendDataToDict(ePyObject &dest, ePtr<iDVBFrontendData> data) +{ + if (dest && PyDict_Check(dest)) + { + PutToDict(dest, "tuner_number", data->getNumber()); + PutToDict(dest, "tuner_type", data->getTypeDescription().c_str()); + } +} + +void frontendStatusToDict(ePyObject &dest, ePtr<iDVBFrontendStatus> status) +{ + if (dest && PyDict_Check(dest)) + { + PutToDict(dest, "tuner_state", status->getStateDescription().c_str()); + PutToDict(dest, "tuner_locked", status->getLocked()); + PutToDict(dest, "tuner_synced", status->getSynced()); + PutToDict(dest, "tuner_bit_error_rate", status->getBER()); + PutToDict(dest, "tuner_signal_quality", status->getSNR()); + int snrdb = status->getSNRdB(); + if (snrdb >= 0) PutToDict(dest, "tuner_signal_quality_db", snrdb); + PutToDict(dest, "tuner_signal_power", status->getSignalPower()); + } +} + +void transponderDataToDict(ePyObject &dest, ePtr<iDVBTransponderData> data) +{ + if (dest && PyDict_Check(dest)) + { + int value; + PutToDict(dest, "tuner_type", data->getTunerType().c_str()); + PutToDict(dest, "frequency", data->getFrequency()); + value = data->getSymbolRate(); + if (value > 0) PutToDict(dest, "symbol_rate", value); + value = data->getOrbitalPosition(); + if (value >= 0) PutToDict(dest, "orbital_position", value); + value = data->getInversion(); + if (value >= 0) PutToDict(dest, "inversion", value); + value = data->getFecInner(); + if (value >= 0) PutToDict(dest, "fec_inner", value); + value = data->getModulation(); + if (value >= 0) PutToDict(dest, "modulation", value); + value = data->getPolarization(); + if (value >= 0) PutToDict(dest, "polarization", value); + value = data->getRolloff(); + if (value >= 0) PutToDict(dest, "rolloff", value); + value = data->getPilot(); + if (value >= 0) PutToDict(dest, "pilot", value); + value = data->getSystem(); + if (value >= 0) PutToDict(dest, "system", value); + + /* additional terrestrial fields */ + value = data->getBandwidth(); + if (value >= 0) PutToDict(dest, "bandwidth", value); + value = data->getCodeRateLp(); + if (value >= 0) PutToDict(dest, "code_rate_lp", value); + value = data->getCodeRateHp(); + if (value >= 0) PutToDict(dest, "code_rate_hp", value); + value = data->getConstellation(); + if (value >= 0) PutToDict(dest, "constellation", value); + value = data->getTransmissionMode(); + if (value >= 0) PutToDict(dest, "transmission_mode", value); + value = data->getGuardInterval(); + if (value >= 0) PutToDict(dest, "guard_interval", value); + value = data->getHierarchyInformation(); + if (value >= 0) PutToDict(dest, "hierarchy_information", value); + value = data->getPlpId(); + if (value >= 0) PutToDict(dest, "plp_id", value); + } +} + +void streamingDataToDict(ePyObject &dest, ePtr<iStreamData> data) +{ + if (dest && PyDict_Check(dest)) + { + int pmt, pcr, txt, adapter, demux; + std::vector<int> video, audio, subtitle; + unsigned int i; + ePyObject l = PyList_New(0); + PyList_AppendSteal(l, createTuple(0, "pat")); + + data->getPmtPid(pmt); + if (pmt != -1) + PyList_AppendSteal(l, createTuple(pmt, "pmt")); + + data->getVideoPids(video); + for (i = 0; i < video.size(); i++) + { + PyList_AppendSteal(l, createTuple(video[i], "video")); + } + data->getAudioPids(audio); + for (i = 0; i < audio.size(); i++) + { + PyList_AppendSteal(l, createTuple(audio[i], "audio")); + } + data->getSubtitlePids(subtitle); + for (i = 0; i < subtitle.size(); i++) + { + PyList_AppendSteal(l, createTuple(subtitle[i], "subtitle")); + } + + data->getPcrPid(pcr); + PyList_AppendSteal(l, createTuple(pcr, "pcr")); + + data->getTxtPid(txt); + if (txt != -1) + PyList_AppendSteal(l, createTuple(txt, "text")); + + PutToDict(dest, "pids", l); + + data->getAdapterId(adapter); + PutToDict(dest, "adapter", adapter); + data->getDemuxId(demux); + PutToDict(dest, "demux", demux); + } +} diff --git a/lib/python/python_helpers.h b/lib/python/python_helpers.h new file mode 100644 index 0000000..df6b259 --- /dev/null +++ b/lib/python/python_helpers.h @@ -0,0 +1,17 @@ +#ifndef _python_helpers +#define _python_helpers + +#include <lib/python/python.h> +#include <lib/dvb/idvb.h> +#include <lib/service/iservice.h> + +void PutToDict(ePyObject &dict, const char *key, long value); +void PutToDict(ePyObject &dict, const char *key, ePyObject item); +void PutToDict(ePyObject &dict, const char *key, const char *value); + +void frontendDataToDict(ePyObject &dest, ePtr<iDVBFrontendData> data); +void frontendStatusToDict(ePyObject &dest, ePtr<iDVBFrontendStatus> status); +void transponderDataToDict(ePyObject &dest, ePtr<iDVBTransponderData> data); +void streamingDataToDict(ePyObject &dest, ePtr<iStreamData> data); + +#endif diff --git a/lib/python/python_pcore.i b/lib/python/python_pcore.i new file mode 100644 index 0000000..38b6548 --- /dev/null +++ b/lib/python/python_pcore.i @@ -0,0 +1,13 @@ +%extend pNavigation { +PyObject *getRecordings(bool simulate) +{ + std::vector<ePtr<iRecordableService> > recordings; + self->getRecordings(recordings, simulate); + ePyObject result = PyList_New(recordings.size()); + for (unsigned int i = 0; i < recordings.size(); i++) + PyList_SET_ITEM(result, i, NEW_iRecordableServicePtr(recordings[i])); + return result; +} +}; + +%ignore pNavigation::getRecordings; diff --git a/lib/python/python_pmt.i b/lib/python/python_pmt.i new file mode 100644 index 0000000..57e359b --- /dev/null +++ b/lib/python/python_pmt.i @@ -0,0 +1,30 @@ +%extend eDVBServicePMTHandler { +PyObject *eDVBServicePMTHandler::getCaIds(bool pair) +{ + ePyObject ret; + std::vector<int> caids, ecmpids; + self->getCaIds(caids, ecmpids); + int cnt = caids.size(); + + ret = PyList_New(cnt); + + for (unsigned int i = 0; i < cnt; i++) + { + if (pair) + { + ePyObject tuple = PyTuple_New(2); + PyTuple_SET_ITEM(tuple, 0, PyInt_FromLong(caids[i])); + PyTuple_SET_ITEM(tuple, 1, PyInt_FromLong(ecmpids[i])); + PyList_SET_ITEM(ret, i, tuple); + } + else + { + PyList_SET_ITEM(ret, i, PyInt_FromLong(caids[i])); + } + } + + return ret; +} +}; + +%ignore eDVBServicePMTHandler::getCaIds; diff --git a/lib/python/python_service.i b/lib/python/python_service.i new file mode 100644 index 0000000..22a59c7 --- /dev/null +++ b/lib/python/python_service.i @@ -0,0 +1,410 @@ +%{ +#include <lib/python/swig.h> +#include <lib/python/python_helpers.h> +%} + +%extend iServiceInformation { +PyObject *getInfoObject(int w) +{ + switch (w) + { + case iServiceInformation::sTransponderData: + { + ePyObject ret = PyDict_New(); + if (ret) + { + ePtr<iDVBTransponderData> data = self->getTransponderData(); + if (data) + { + transponderDataToDict(ret, data); + } + } + return ret; + } + case iServiceInformation::sFileSize: + return PyLong_FromLongLong(self->getFileSize()); + case iServiceInformation::sCAIDs: + { + ePyObject ret; + std::vector<int> caids, ecmpids; + self->getCaIds(caids, ecmpids); + int cnt = caids.size(); + + ret = PyList_New(cnt); + + for (unsigned int i = 0; i < cnt; i++) + { + PyList_SET_ITEM(ret, i, PyInt_FromLong(caids[i])); + } + return ret; + } + case iServiceInformation::sCAIDPIDs: + { + ePyObject ret; + std::vector<int> caids, ecmpids; + self->getCaIds(caids, ecmpids); + int cnt = caids.size(); + + ret = PyList_New(cnt); + + for (unsigned int i = 0; i < cnt; i++) + { + ePyObject tuple = PyTuple_New(2); + PyTuple_SET_ITEM(tuple, 0, PyInt_FromLong(caids[i])); + PyTuple_SET_ITEM(tuple, 1, PyInt_FromLong(ecmpids[i])); + PyList_SET_ITEM(ret, i, tuple); + } + return ret; + } + case iServiceInformation::sUser + 6: /* DVD audio info */ + { + ePyObject tuple = PyTuple_New(3); + if (tuple) + { + ePtr<iServiceInfoContainer> info = self->getInfoObject(w); + if (info) + { + PyTuple_SetItem(tuple, 0, PyInt_FromLong(info->getInteger(0))); + PyTuple_SetItem(tuple, 1, PyString_FromString(info->getString(0).c_str())); + PyTuple_SetItem(tuple, 2, PyString_FromString(info->getString(1).c_str())); + } + } + return tuple; + } + case iServiceInformation::sUser + 7: /* DVD subtitle info */ + { + ePyObject tuple = PyTuple_New(2); + if (tuple) + { + ePtr<iServiceInfoContainer> info = self->getInfoObject(w); + if (info) + { + PyTuple_SetItem(tuple, 0, PyInt_FromLong(info->getInteger(0))); + PyTuple_SetItem(tuple, 1, PyString_FromString(info->getString(0).c_str())); + } + } + return tuple; + } + case iServiceInformation::sUser + 8: /* DVD angle info */ + { + ePyObject tuple = PyTuple_New(2); + if (tuple) + { + ePtr<iServiceInfoContainer> info = self->getInfoObject(w); + if (info) + { + PyTuple_SetItem(tuple, 0, PyInt_FromLong(info->getInteger(0))); + PyTuple_SetItem(tuple, 1, PyInt_FromLong(info->getInteger(1))); + } + } + return tuple; + } + default: /* servicemp3 objects, either buffer or double */ + { + ePtr<iServiceInfoContainer> info = self->getInfoObject(w); + if (info) + { + unsigned char *data; + unsigned int size; + data = info->getBuffer(size); + if (data && size) + { + return PyBuffer_FromMemory(data, size); + } + else + { + return PyFloat_FromDouble(info->getDouble(0)); + } + } + break; + } + } + Py_INCREF(Py_None); + return Py_None; +} + +PyObject *getAITApplications() +{ + ePyObject tuple = PyTuple_New(2); + std::map<int, std::string> aitlist; + self->getAITApplications(aitlist); + if (!aitlist.empty()) + { + ePyObject l = PyList_New(0); + for (std::map<int, std::string>::iterator it=aitlist.begin(); it!=aitlist.end(); ++it) + { + ePyObject tuple = PyTuple_New(2); + PyTuple_SET_ITEM(tuple, 0, PyInt_FromLong(it->first)); + PyTuple_SET_ITEM(tuple, 1, PyString_FromString(it->second.c_str())); + PyList_Append(l, tuple); + Py_DECREF(tuple); + } + return l; + } + Py_INCREF(Py_None); + return Py_None; +} +}; + +%ignore iServiceInformation::getInfoObject; + +%extend iStaticServiceInformation { +PyObject *getInfoObject(const eServiceReference &ref, int w) +{ + switch (w) + { + case iServiceInformation::sTransponderData: + { + ePyObject ret = PyDict_New(); + if (ret) + { + ePtr<iDVBTransponderData> data = self->getTransponderData(ref); + if (data) + { + transponderDataToDict(ret, data); + } + } + return ret; + } + case iServiceInformation::sFileSize: + return PyLong_FromLongLong(self->getFileSize(ref)); + } + Py_INCREF(Py_None); + return Py_None; +} +}; + +%ignore iStaticServiceInformation::getInfoObject; + +%extend iStreamableService { +PyObject *getStreamingData() +{ + ePtr<iStreamData> data = self->getStreamingData(); + if (data) + { + ePyObject ret = PyDict_New(); + streamingDataToDict(ret, data); + return ret; + } + Py_INCREF(Py_None); + return Py_None; +} +}; + +%ignore iStreamableService::getStreamingData; + +%extend iFrontendInformation { +PyObject *getFrontendData() +{ + ePyObject ret = PyDict_New(); + if (ret) + { + ePtr<iDVBFrontendData> data = self->getFrontendData(); + if (data) + { + frontendDataToDict(ret, data); + } + } + return ret; +} + +PyObject *getFrontendStatus() +{ + ePyObject ret = PyDict_New(); + if (ret) + { + ePtr<iDVBFrontendStatus> status = self->getFrontendStatus(); + if (status) + { + frontendStatusToDict(ret, status); + } + } + return ret; +} + +PyObject *getTransponderData(bool original) +{ + ePyObject ret = PyDict_New(); + if (ret) + { + ePtr<iDVBTransponderData> data = self->getTransponderData(original); + if (data) + { + transponderDataToDict(ret, data); + } + } + return ret; +} + +PyObject *getAll(bool original) +{ + ePyObject ret = PyDict_New(); + if (ret) + { + ePtr<iDVBFrontendData> data = self->getFrontendData(); + if (data) + { + frontendDataToDict(ret, data); + } + ePtr<iDVBFrontendStatus> status = self->getFrontendStatus(); + if (status) + { + frontendStatusToDict(ret, status); + } + ePtr<iDVBTransponderData> tpdata = self->getTransponderData(original); + if (tpdata) + { + transponderDataToDict(ret, tpdata); + } + } + return ret; +} +}; + +%ignore iFrontendInformation::getFrontendData; +%ignore iFrontendInformation::getFrontendStatus; +%ignore iFrontendInformation::getTransponderData; +%ignore iFrontendInformation::getAll; + +%extend iStreamedService { +PyObject *getBufferCharge() +{ + ePyObject tuple = PyTuple_New(5); + if (tuple) + { + ePtr<iStreamBufferInfo> info = self->getBufferCharge(); + if (info) + { + PyTuple_SET_ITEM(tuple, 0, PyInt_FromLong(info->getBufferPercentage())); + PyTuple_SET_ITEM(tuple, 1, PyInt_FromLong(info->getAverageInputRate())); + PyTuple_SET_ITEM(tuple, 2, PyInt_FromLong(info->getAverageOutputRate())); + PyTuple_SET_ITEM(tuple, 3, PyInt_FromLong(info->getBufferSpace())); + PyTuple_SET_ITEM(tuple, 4, PyInt_FromLong(info->getBufferSize())); + } + } + return tuple; +} +}; + +%ignore iStreamedService::getBufferCharge; + +%extend iSubtitleOutput { +RESULT enableSubtitles(eWidget *parent, PyObject *tuple) +{ + eSubtitleWidget *widget = NULL; + struct iSubtitleOutput::SubtitleTrack track; + track.type = 0; + track.pid = -1; + track.page_number = 0; + track.magazine_number = 0; + track.language_code = "und"; + + if (PyTuple_Check(tuple)) + { + ePyObject entry; + int tuplesize = PyTuple_Size(tuple); + if (tuplesize < 1) + goto error_out; + + entry = PyTuple_GET_ITEM(tuple, 0); + + if (!PyInt_Check(entry)) + goto error_out; + + track.type = PyInt_AsLong(entry); + + entry = PyTuple_GET_ITEM(tuple, 1); + if (!PyInt_Check(entry)) + goto error_out; + track.pid = PyInt_AsLong(entry); + + entry = PyTuple_GET_ITEM(tuple, 2); + if (PyInt_Check(entry)) + { + track.page_number = PyInt_AsLong(entry); + } + + entry = PyTuple_GET_ITEM(tuple, 3); + if (PyInt_Check(entry)) + { + track.magazine_number = PyInt_AsLong(entry); + } + if (tuplesize==5){ + entry = PyTuple_GET_ITEM(tuple, 4); + if (PyString_Check(entry)) + { + track.language_code = PyString_AsString(entry); + } + } + } + + widget = new eSubtitleWidget(parent); + widget->resize(parent->size()); /* full size */ + + if (self->enableSubtitles(widget, track) >= 0) + { + return 0; + } +error_out: + return -1; +} + +RESULT disableSubtitles(eWidget *parent) +{ + return self->disableSubtitles(); +} + +PyObject *getSubtitleList() +{ + std::vector<struct iSubtitleOutput::SubtitleTrack> subtitlelist; + if (self->getSubtitleList(subtitlelist) >= 0) + { + ePyObject l = PyList_New(0); + for (unsigned int i = 0; i < subtitlelist.size(); i++) + { + ePyObject tuple = PyTuple_New(5); + PyTuple_SET_ITEM(tuple, 0, PyInt_FromLong(subtitlelist[i].type)); + PyTuple_SET_ITEM(tuple, 1, PyInt_FromLong(subtitlelist[i].pid)); + PyTuple_SET_ITEM(tuple, 2, PyInt_FromLong(subtitlelist[i].page_number)); + PyTuple_SET_ITEM(tuple, 3, PyInt_FromLong(subtitlelist[i].magazine_number)); + PyTuple_SET_ITEM(tuple, 4, PyString_FromString(subtitlelist[i].language_code.c_str())); + PyList_Append(l, tuple); + Py_DECREF(tuple); + } + return l; + } + Py_INCREF(Py_None); + return Py_None; +} + +PyObject *getCachedSubtitle() +{ + struct iSubtitleOutput::SubtitleTrack track; + if (self->getCachedSubtitle(track) >= 0) + { + ePyObject tuple = PyTuple_New(5); + PyTuple_SET_ITEM(tuple, 0, PyInt_FromLong(track.type)); + PyTuple_SET_ITEM(tuple, 1, PyInt_FromLong(track.pid)); + PyTuple_SET_ITEM(tuple, 2, PyInt_FromLong(track.page_number)); + PyTuple_SET_ITEM(tuple, 3, PyInt_FromLong(track.magazine_number)); + PyTuple_SET_ITEM(tuple, 4, PyString_FromString(track.language_code.c_str())); + return tuple; + } + Py_INCREF(Py_None); + return Py_None; +} +}; + +%ignore iSubtitleOutput::enableSubtitles; +%ignore iSubtitleOutput::disableSubtitles; +%ignore iSubtitleOutput::getSubtitleList; +%ignore iSubtitleOutput::getCachedSubtitle; +%ignore iSubtitleOutput::SubtitleTrack; + +%ignore iStreamData; +%ignore iServiceInfoContainer; +%ignore iDVBFrontendStatus; +%ignore iDVBTransponderData; +%ignore iDVBFrontendData; +%ignore iStreamBufferInfo; +%ignore iSubtitleUser; diff --git a/lib/python/pythonconfig.cpp b/lib/python/pythonconfig.cpp new file mode 100644 index 0000000..8cd92ed --- /dev/null +++ b/lib/python/pythonconfig.cpp @@ -0,0 +1,42 @@ +#include <lib/python/pythonconfig.h> +#include <lib/python/python.h> + +ePyObject ePythonConfigQuery::m_queryFunc; + +void ePythonConfigQuery::setQueryFunc(ePyObject queryFunc) +{ + if (m_queryFunc) + Py_DECREF(m_queryFunc); + m_queryFunc = queryFunc; + if (m_queryFunc) + Py_INCREF(m_queryFunc); +} + +RESULT ePythonConfigQuery::getConfigValue(const char *key, std::string &value) +{ + if (key && PyCallable_Check(m_queryFunc)) + { + ePyObject pArgs = PyTuple_New(1); + PyTuple_SET_ITEM(pArgs, 0, PyString_FromString(key)); + ePyObject pRet = PyObject_CallObject(m_queryFunc, pArgs); + Py_DECREF(pArgs); + if (pRet) + { + if (PyString_Check(pRet)) + { + value.assign(PyString_AS_STRING(pRet)); + Py_DECREF(pRet); + return 0; + } + Py_DECREF(pRet); + } + } + return -1; +} + +std::string ePythonConfigQuery::getConfig(const char *key) +{ + std::string value; + getConfigValue(key, value); + return value; +} diff --git a/lib/python/pythonconfig.h b/lib/python/pythonconfig.h new file mode 100644 index 0000000..46e544d --- /dev/null +++ b/lib/python/pythonconfig.h @@ -0,0 +1,20 @@ +#ifndef __lib_python_pythonconfig_h_ +#define __lib_python_pythonconfig_h_ + +#include <lib/base/nconfig.h> +#include <lib/python/python.h> + +class ePythonConfigQuery : public eConfigManager +{ + static ePyObject m_queryFunc; +#ifndef SWIG + RESULT getConfigValue(const char *key, std::string &value); + std::string getConfig(const char *key); +#endif +public: + ePythonConfigQuery() {} + ~ePythonConfigQuery() {} + static void setQueryFunc(SWIG_PYOBJECT(ePyObject) func); +}; + +#endif // __lib_python_pythonconfig_h_ diff --git a/lib/python/swig.h b/lib/python/swig.h new file mode 100644 index 0000000..370c6ab --- /dev/null +++ b/lib/python/swig.h @@ -0,0 +1,26 @@ +#ifndef __lib_python_swig_h +#define __lib_python_swig_h + +#ifdef SWIG +#define SWIG_IGNORE(x) %ignore x +#define SWIG_EXTEND(x, code) %extend x { code } +#define SWIG_TEMPLATE_TYPEDEF(x, y) %template(y) x; %typemap_output_ptr(x) +#define SWIG_ALLOW_OUTPUT_SIMPLE(x) %typemap_output_simple(x) +#define SWIG_INPUT INPUT +#define SWIG_OUTPUT OUTPUT +#define SWIG_NAMED_OUTPUT(x) OUTPUT +#define SWIG_VOID(x) void +#define SWIG_PYOBJECT(x) PyObject* +#else +#define SWIG_IGNORE(x) +#define SWIG_EXTEND(x, code) +#define SWIG_TEMPLATE_TYPEDEF(x, y) +#define SWIG_ALLOW_OUTPUT_SIMPLE(x) +#define SWIG_INPUT +#define SWIG_OUTPUT +#define SWIG_NAMED_OUTPUT(x) x +#define SWIG_VOID(x) x +#define SWIG_PYOBJECT(x) x +#endif // SWIG + +#endif // __lib_python_swig_h diff --git a/lib/service/Makefile.inc b/lib/service/Makefile.inc new file mode 100644 index 0000000..55c2e33 --- /dev/null +++ b/lib/service/Makefile.inc @@ -0,0 +1,44 @@ +noinst_LIBRARIES += service/libenigma_service.a + +service_libenigma_service_a_CXXFLAGS = \ + $(LIBXINE_CFLAGS) + +service_libenigma_service_a_SOURCES = \ + service/event.cpp \ + service/listboxservice.cpp \ + service/service.cpp \ + service/servicedvb.cpp \ + service/servicedvbrecord.cpp \ + service/servicefs.cpp \ + service/servicemp3.cpp \ + service/servicem2ts.cpp \ + service/servicedvbstream.cpp \ + service/servicehdmi.cpp + +serviceincludedir = $(pkgincludedir)/lib/service +serviceinclude_HEADERS = \ + service/event.h \ + service/iservice.h \ + service/listboxservice.h \ + service/service.h \ + service/servicedvb.h \ + service/servicedvbrecord.h \ + service/servicefs.h \ + service/servicemp3.h \ + service/servicem2ts.h \ + service/servicedvbstream.h \ + service/servicehdmi.h + +if HAVE_LIBXINE +service_libenigma_service_a_SOURCES += \ + service/servicexine.cpp +serviceinclude_HEADERS += \ + service/servicexine.h +endif + +if HAVE_LIBDDVD +service_libenigma_service_a_SOURCES += \ + service/servicedvd.cpp +serviceinclude_HEADERS += \ + service/servicedvd.h +endif \ No newline at end of file diff --git a/lib/service/event.cpp b/lib/service/event.cpp new file mode 100644 index 0000000..8ca16c7 --- /dev/null +++ b/lib/service/event.cpp @@ -0,0 +1,350 @@ +#include <lib/service/event.h> +#include <lib/base/estring.h> +#include <lib/base/encoding.h> +#include <lib/dvb/dvbtime.h> +#include <lib/dvb/idvb.h> +#include <dvbsi++/event_information_section.h> +#include <dvbsi++/short_event_descriptor.h> +#include <dvbsi++/extended_event_descriptor.h> +#include <dvbsi++/linkage_descriptor.h> +#include <dvbsi++/component_descriptor.h> +#include <dvbsi++/content_descriptor.h> +#include <dvbsi++/parental_rating_descriptor.h> +#include <dvbsi++/descriptor_tag.h> + +#include <sys/types.h> +#include <fcntl.h> + +// static members / methods +std::string eServiceEvent::m_language = "---"; +std::string eServiceEvent::m_language_alternative = "---"; + +/////////////////////////// + +DEFINE_REF(eServiceEvent); +DEFINE_REF(eComponentData); +DEFINE_REF(eGenreData); +DEFINE_REF(eParentalData); + +/* search for the presence of language from given EIT event descriptors*/ +bool eServiceEvent::loadLanguage(Event *evt, const std::string &lang, int tsidonid) +{ + bool retval=0; + std::string language = lang; + for (DescriptorConstIterator desc = evt->getDescriptors()->begin(); desc != evt->getDescriptors()->end(); ++desc) + { + switch ((*desc)->getTag()) + { + case LINKAGE_DESCRIPTOR: + m_linkage_services.clear(); + break; + case SHORT_EVENT_DESCRIPTOR: + { + const ShortEventDescriptor *sed = (ShortEventDescriptor*)*desc; + std::string cc = sed->getIso639LanguageCode(); + std::transform(cc.begin(), cc.end(), cc.begin(), tolower); + int table=encodingHandler.getCountryCodeDefaultMapping(cc); + if (language == "---" || language.find(cc) != std::string::npos) + { + /* stick to this language, avoid merging or mixing descriptors of different languages */ + language = cc; + m_event_name += replace_all(replace_all(convertDVBUTF8(sed->getEventName(), table, tsidonid), "\n", " "), "\t", " "); + m_short_description += convertDVBUTF8(sed->getText(), table, tsidonid); + retval=1; + } + break; + } + case EXTENDED_EVENT_DESCRIPTOR: + { + const ExtendedEventDescriptor *eed = (ExtendedEventDescriptor*)*desc; + std::string cc = eed->getIso639LanguageCode(); + std::transform(cc.begin(), cc.end(), cc.begin(), tolower); + int table=encodingHandler.getCountryCodeDefaultMapping(cc); + if (language == "---" || language.find(cc) != std::string::npos) + { + /* stick to this language, avoid merging or mixing descriptors of different languages */ + language = cc; + /* + * Bit of a hack, some providers put the event description partly in the short descriptor, + * and the remainder in extended event descriptors. + * In that case, we cannot really treat short/extended description as separate descriptions. + * Unfortunately we cannot recognise this, but we'll use the length of the short description + * to guess whether we should concatenate both descriptions (without any spaces) + */ + if (m_extended_description.empty() && m_short_description.size() >= 180) + { + m_extended_description = m_short_description; + m_short_description = ""; + } + m_extended_description += convertDVBUTF8(eed->getText(), table, tsidonid); + retval=1; + } +#if 0 + const ExtendedEventList *itemlist = eed->getItems(); + for (ExtendedEventConstIterator it = itemlist->begin(); it != itemlist->end(); ++it) + { + m_extended_description += '\n'; + m_extended_description += convertDVBUTF8((*it)->getItemDescription()); + m_extended_description += ' '; + m_extended_description += convertDVBUTF8((*it)->getItem()); + } +#endif + break; + } + default: + break; + } + } + if ( retval == 1 ) + { + for (DescriptorConstIterator desc = evt->getDescriptors()->begin(); desc != evt->getDescriptors()->end(); ++desc) + { + switch ((*desc)->getTag()) + { + case COMPONENT_DESCRIPTOR: + { + const ComponentDescriptor *cp = (ComponentDescriptor*)*desc; + eComponentData data; + data.m_streamContent = cp->getStreamContent(); + data.m_componentType = cp->getComponentType(); + data.m_componentTag = cp->getComponentTag(); + data.m_iso639LanguageCode = cp->getIso639LanguageCode(); + std::transform(data.m_iso639LanguageCode.begin(), data.m_iso639LanguageCode.end(), data.m_iso639LanguageCode.begin(), tolower); + int table=encodingHandler.getCountryCodeDefaultMapping(data.m_iso639LanguageCode); + data.m_text = convertDVBUTF8(cp->getText(),table,tsidonid); + m_component_data.push_back(data); + break; + } + case LINKAGE_DESCRIPTOR: + { + const LinkageDescriptor *ld = (LinkageDescriptor*)*desc; + if ( ld->getLinkageType() == 0xB0 ) + { + eServiceReferenceDVB dvb_ref; + dvb_ref.type = eServiceReference::idDVB; + dvb_ref.setServiceType(1); + dvb_ref.setTransportStreamID(ld->getTransportStreamId()); + dvb_ref.setOriginalNetworkID(ld->getOriginalNetworkId()); + dvb_ref.setServiceID(ld->getServiceId()); + const PrivateDataByteVector *privateData = ld->getPrivateDataBytes(); + dvb_ref.name = convertDVBUTF8((const unsigned char*)&((*privateData)[0]), privateData->size(), 1, tsidonid); + m_linkage_services.push_back(dvb_ref); + } + break; + } + case CONTENT_DESCRIPTOR: + { + const ContentDescriptor *cd = (ContentDescriptor *)*desc; + const ContentClassificationList *con = cd->getClassifications(); + for (ContentClassificationConstIterator it = con->begin(); it != con->end(); ++it) + { + eGenreData data; + data.m_level1 = (*it)->getContentNibbleLevel1(); + data.m_level2 = (*it)->getContentNibbleLevel2(); + data.m_user1 = (*it)->getUserNibble1(); + data.m_user2 = (*it)->getUserNibble2(); + m_genres.push_back(data); + } + break; + } + case PARENTAL_RATING_DESCRIPTOR: + { + const ParentalRatingDescriptor *prd = (ParentalRatingDescriptor *)*desc; + const ParentalRatingList *par = prd->getParentalRatings(); + for (ParentalRatingConstIterator it = par->begin(); it != par->end(); ++it) + { + eParentalData data; + + data.m_country_code = (*it)->getCountryCode(); + data.m_rating = (*it)->getRating(); + m_ratings.push_back(data); + } + break; + } + } + } + } + if ( m_extended_description.find(m_short_description) == 0 ) + m_short_description=""; + return retval; +} + +RESULT eServiceEvent::parseFrom(Event *evt, int tsidonid) +{ + uint16_t stime_mjd = evt->getStartTimeMjd(); + uint32_t stime_bcd = evt->getStartTimeBcd(); + uint32_t duration = evt->getDuration(); + m_begin = parseDVBtime( + stime_mjd >> 8, + stime_mjd&0xFF, + stime_bcd >> 16, + (stime_bcd >> 8)&0xFF, + stime_bcd & 0xFF + ); + m_event_id = evt->getEventId(); + m_duration = fromBCD(duration>>16)*3600+fromBCD(duration>>8)*60+fromBCD(duration); + if (m_language != "---" && loadLanguage(evt, m_language, tsidonid)) + return 0; + if (m_language_alternative != "---" && loadLanguage(evt, m_language_alternative, tsidonid)) + return 0; + if (loadLanguage(evt, "eng", tsidonid)) + return 0; + if (loadLanguage(evt, "---", tsidonid)) + return 0; + return 0; +} + +RESULT eServiceEvent::parseFrom(const std::string& filename, int tsidonid) +{ + if (!filename.empty()) + { + int fd = ::open( filename.c_str(), O_RDONLY ); + if ( fd > -1 ) + { + __u8 buf[4096]; + int rd = ::read(fd, buf, 4096); + ::close(fd); + if ( rd > 12 /*EIT_LOOP_SIZE*/ ) + { + Event ev(buf); + parseFrom(&ev, tsidonid); + return 0; + } + } + } + return -1; +} + +std::string eServiceEvent::getBeginTimeString() const +{ + tm t; + localtime_r(&m_begin, &t); + char tmp[13]; + snprintf(tmp, 13, "%02d.%02d, %02d:%02d", + t.tm_mday, t.tm_mon+1, + t.tm_hour, t.tm_min); + return std::string(tmp, 12); +} + +RESULT eServiceEvent::getGenreData(ePtr<eGenreData> &dest) const +{ + std::list<eGenreData>::const_iterator it = m_genres.begin(); + for(;it != m_genres.end(); ++it) { + dest = new eGenreData(*it); + // for now just return the first item on the list + return 0; + } + dest = 0; + return -1; +} + +PyObject *eServiceEvent::getGenreData() const +{ + ePyObject ret = PyList_New(m_genres.size()); + int cnt=0; + for (std::list<eGenreData>::const_iterator it(m_genres.begin()); it != m_genres.end(); ++it) + { + ePyObject tuple = PyTuple_New(4); + PyTuple_SET_ITEM(tuple, 0, PyInt_FromLong(it->getLevel1())); + PyTuple_SET_ITEM(tuple, 1, PyInt_FromLong(it->getLevel2())); + PyTuple_SET_ITEM(tuple, 2, PyInt_FromLong(it->getUser1())); + PyTuple_SET_ITEM(tuple, 3, PyInt_FromLong(it->getUser2())); + PyList_SET_ITEM(ret, cnt++, tuple); + } + return ret; +} + +RESULT eServiceEvent::getParentalData(ePtr<eParentalData> &dest) const +{ + std::list<eParentalData>::const_iterator it = m_ratings.begin(); + for(;it != m_ratings.end(); ++it) { + dest = new eParentalData(*it); + // for now just return the first item on the list + return 0; + } + dest = 0; + return -1; +} + +PyObject *eServiceEvent::getParentalData() const +{ + ePyObject ret = PyList_New(m_ratings.size()); + int cnt = 0; + for (std::list<eParentalData>::const_iterator it(m_ratings.begin()); it != m_ratings.end(); ++it) + { + ePyObject tuple = PyTuple_New(2); + PyTuple_SET_ITEM(tuple, 0, PyString_FromString(it->getCountryCode().c_str())); + PyTuple_SET_ITEM(tuple, 1, PyInt_FromLong(it->getRating())); + PyList_SET_ITEM(ret, cnt++, tuple); + } + return ret; +} + +RESULT eServiceEvent::getComponentData(ePtr<eComponentData> &dest, int tagnum) const +{ + std::list<eComponentData>::const_iterator it = + m_component_data.begin(); + for(;it != m_component_data.end(); ++it) + { + if ( it->m_componentTag == tagnum ) + { + dest=new eComponentData(*it); + return 0; + } + } + dest = 0; + return -1; +} + +PyObject *eServiceEvent::getComponentData() const +{ + ePyObject ret = PyList_New(m_component_data.size()); + int cnt = 0; + for (std::list<eComponentData>::const_iterator it(m_component_data.begin()); it != m_component_data.end(); ++it) + { + ePyObject tuple = PyTuple_New(5); + PyTuple_SET_ITEM(tuple, 0, PyInt_FromLong(it->m_componentTag)); + PyTuple_SET_ITEM(tuple, 1, PyInt_FromLong(it->m_componentType)); + PyTuple_SET_ITEM(tuple, 2, PyInt_FromLong(it->m_streamContent)); + PyTuple_SET_ITEM(tuple, 3, PyString_FromString(it->m_iso639LanguageCode.c_str())); + PyTuple_SET_ITEM(tuple, 4, PyString_FromString(it->m_text.c_str())); + PyList_SET_ITEM(ret, cnt++, tuple); + } + return ret; +} + +RESULT eServiceEvent::getLinkageService(eServiceReference &service, eServiceReference &parent, int num) const +{ + std::list<eServiceReference>::const_iterator it = + m_linkage_services.begin(); + while( it != m_linkage_services.end() && num-- ) + ++it; + if ( it != m_linkage_services.end() ) + { + service = *it; + eServiceReferenceDVB &subservice = (eServiceReferenceDVB&) service; + eServiceReferenceDVB ¤t = (eServiceReferenceDVB&) parent; + subservice.setDVBNamespace(current.getDVBNamespace()); + if ( current.getParentTransportStreamID().get() ) + { + subservice.setParentTransportStreamID( current.getParentTransportStreamID() ); + subservice.setParentServiceID( current.getParentServiceID() ); + } + else + { + subservice.setParentTransportStreamID( current.getTransportStreamID() ); + subservice.setParentServiceID( current.getServiceID() ); + } + if ( subservice.getParentTransportStreamID() == subservice.getTransportStreamID() && + subservice.getParentServiceID() == subservice.getServiceID() ) + { + subservice.setParentTransportStreamID( eTransportStreamID(0) ); + subservice.setParentServiceID( eServiceID(0) ); + } + return 0; + } + service.type = eServiceReference::idInvalid; + return -1; +} + +DEFINE_REF(eDebugClass); diff --git a/lib/service/event.h b/lib/service/event.h new file mode 100644 index 0000000..73fe200 --- /dev/null +++ b/lib/service/event.h @@ -0,0 +1,138 @@ +#ifndef __lib_service_event_h +#define __lib_service_event_h + +#ifndef SWIG +#include <time.h> +#include <list> +#include <string> +class Event; +#endif + +#include <lib/base/object.h> +#include <lib/service/iservice.h> + +SWIG_IGNORE(eComponentData); +struct eComponentData +{ + friend class eServiceEvent; + DECLARE_REF(eComponentData); + uint8_t m_streamContent; + uint8_t m_componentType; + uint8_t m_componentTag; + std::string m_iso639LanguageCode; + std::string m_text; +public: + eComponentData(const eComponentData& d) { *this = d; } + eComponentData() { m_streamContent = m_componentType = m_componentTag = 0; } + int getStreamContent(void) const { return m_streamContent; } + int getComponentType(void) const { return m_componentType; } + int getComponentTag(void) const { return m_componentTag; } + std::string getIso639LanguageCode(void) const { return m_iso639LanguageCode; } + std::string getText(void) const { return m_text; } +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<eComponentData>, eComponentDataPtr); + +SWIG_IGNORE(eGenreData); +struct eGenreData +{ + friend class eServiceEvent; + DECLARE_REF(eGenreData); + uint8_t m_level1; + uint8_t m_level2; + uint8_t m_user1; + uint8_t m_user2; +public: + eGenreData(const eGenreData& d) { *this = d; } + eGenreData() { m_level1 = m_level2 = m_user1 = m_user2 = 0; } + int getLevel1(void) const { return m_level1; } + int getLevel2(void) const { return m_level2; } + int getUser1(void) const { return m_user1; } + int getUser2(void) const { return m_user2; } +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<eGenreData>, eGenreDataPtr); + +SWIG_IGNORE(eParentalData); +struct eParentalData +{ + friend class eServiceEvent; + DECLARE_REF(eParentalData); + std::string m_country_code; + uint8_t m_rating; +public: + eParentalData(const eParentalData& d) { *this = d; } + eParentalData() { m_country_code = ""; m_rating = 0; } + std::string getCountryCode(void) const { return m_country_code; } + int getRating(void) const { return m_rating; } +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<eParentalData>, eParentalDataPtr); + + +SWIG_ALLOW_OUTPUT_SIMPLE(eServiceReference); // needed for SWIG_OUTPUT in eServiceEvent::getLinkageService + +SWIG_IGNORE(eServiceEvent); +class eServiceEvent: public iObject +{ + DECLARE_REF(eServiceEvent); + bool loadLanguage(Event *event, const std::string &lang, int tsidonid); + std::list<eComponentData> m_component_data; + std::list<eServiceReference> m_linkage_services; + std::list<eGenreData> m_genres; + std::list<eParentalData> m_ratings; + time_t m_begin; + int m_duration; + int m_event_id; + std::string m_event_name, m_short_description, m_extended_description; + static std::string m_language, m_language_alternative; + // .. additional info +public: +#ifndef SWIG + RESULT parseFrom(Event *evt, int tsidonid=0); + RESULT parseFrom(const std::string& filename, int tsidonid=0); + static void setEPGLanguage(const std::string& language) { m_language = language; } + static void setEPGLanguageAlternative(const std::string& language) { m_language_alternative = language; } +#endif + time_t getBeginTime() const { return m_begin; } + int getDuration() const { return m_duration; } + int getEventId() const { return m_event_id; } + std::string getEventName() const { return m_event_name; } + std::string getShortDescription() const { return m_short_description; } + std::string getExtendedDescription() const { return m_extended_description; } + std::string getBeginTimeString() const; + SWIG_VOID(RESULT) getComponentData(ePtr<eComponentData> &SWIG_OUTPUT, int tagnum) const; + PyObject *getComponentData() const; + int getNumOfLinkageServices() const { return m_linkage_services.size(); } + SWIG_VOID(RESULT) getLinkageService(eServiceReference &SWIG_OUTPUT, eServiceReference &parent, int num) const; + SWIG_VOID(RESULT) getGenreData(ePtr<eGenreData> &SWIG_OUTPUT) const; + PyObject *getGenreData() const; + SWIG_VOID(RESULT) getParentalData(ePtr<eParentalData> &SWIG_OUTPUT) const; + PyObject *getParentalData() const; +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<eServiceEvent>, eServiceEvent); +SWIG_EXTEND(ePtr<eServiceEvent>, + static void setEPGLanguage(const std::string& language) + { + eServiceEvent::setEPGLanguage(language); + } +); +SWIG_EXTEND(ePtr<eServiceEvent>, + static void setEPGLanguageAlternative(const std::string& language) + { + eServiceEvent::setEPGLanguageAlternative(language); + } +); + +#ifndef SWIG +SWIG_IGNORE(eDebugClass); +class eDebugClass: public iObject +{ + DECLARE_REF(eDebugClass); +public: + int x; + static void getDebug(ePtr<eDebugClass> &ptr, int x) { ptr = new eDebugClass(x); } + eDebugClass(int i) { printf("build debug class %d\n", i); x = i; } + ~eDebugClass() { printf("remove debug class %d\n", x); } +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<eDebugClass>, eDebugClassPtr); +#endif + +#endif diff --git a/lib/service/iservice.h b/lib/service/iservice.h new file mode 100644 index 0000000..63e530f --- /dev/null +++ b/lib/service/iservice.h @@ -0,0 +1,1059 @@ +#ifndef __lib_dvb_iservice_h +#define __lib_dvb_iservice_h + +#include <lib/python/swig.h> +#include <lib/python/python.h> +#include <lib/base/object.h> +#include <string> +#include <connection.h> +#include <list> +#include <vector> + +class eServiceEvent; + +class eServiceReference +{ +public: + enum + { + idInvalid=-1, + idStructure, // service_id == 0 is root + idDVB, + idFile, + idUser=0x1000, + idServiceMP3=0x1001 + }; + int type; + + enum + { + isDirectory=1, // SHOULD enter (implies mustDescent) + mustDescent=2, // cannot be played directly - often used with "isDirectory" (implies canDescent) + /* + for example: + normal services have none of them - they can be fed directly into the "play"-handler. + normal directories have both of them set - you cannot play a directory directly and the UI should descent into it. + playlists have "mustDescent", but not "isDirectory" - you don't want the user to browse inside the playlist (unless he really wants) + services with sub-services have none of them, instead the have the "canDecsent" flag (as all of the above) + */ + canDescent=4, // supports enterDirectory/leaveDirectory + flagDirectory=isDirectory|mustDescent|canDescent, + shouldSort=8, // should be ASCII-sorted according to service_name. great for directories. + hasSortKey=16, // has a sort key in data[3]. not having a sort key implies 0. + sort1=32, // sort key is 1 instead of 0 + isMarker=64, // Marker + isGroup=128, // is a group of services + isNumberedMarker=256, //use together with isMarker, to force the marker to be numbered + isInvisible=512 // use to make services or markers in a list invisable + }; + int flags; // flags will NOT be compared. + + inline int getSortKey() const { return (flags & hasSortKey) ? data[3] : ((flags & sort1) ? 1 : 0); } + +#ifndef SWIG + int data[8]; + std::string path; +#endif + std::string getPath() const { return path; } + void setPath( const std::string &n ) { path=n; } + + unsigned int getUnsignedData(unsigned int num) const + { + if ( num < sizeof(data)/sizeof(int) ) + return data[num]; + return 0; + } + + int getData(unsigned int num) const + { + if ( num < sizeof(data)/sizeof(int) ) + return data[num]; + return 0; + } + + void setUnsignedData(unsigned int num, unsigned int val) + { + if ( num < sizeof(data)/sizeof(int) ) + data[num] = val; + } + + void setData(unsigned int num, int val) + { + if ( num < sizeof(data)/sizeof(int) ) + data[num] = val; + } + +// only for override service names in bouquets or to give servicerefs a name which not have a +// real existing service ( for dvb eServiceDVB ) +#ifndef SWIG + std::string name; + int number; +#endif + std::string getName() const { return name; } + void setName( const std::string &n ) { name=n; } + int getChannelNum() const { return number; } + void setChannelNum(const int n) { number = n; } + + eServiceReference() + : type(idInvalid), flags(0) + { + memset(data, 0, sizeof(data)); + number = 0; + } +#ifndef SWIG + eServiceReference(int type, int flags) + : type(type), flags(flags) + { + memset(data, 0, sizeof(data)); + number = 0; + } + eServiceReference(int type, int flags, int data0) + : type(type), flags(flags) + { + memset(data, 0, sizeof(data)); + data[0]=data0; + number = 0; + } + eServiceReference(int type, int flags, int data0, int data1) + : type(type), flags(flags) + { + memset(data, 0, sizeof(data)); + data[0]=data0; + data[1]=data1; + number = 0; + } + eServiceReference(int type, int flags, int data0, int data1, int data2) + : type(type), flags(flags) + { + memset(data, 0, sizeof(data)); + data[0]=data0; + data[1]=data1; + data[2]=data2; + number = 0; + } + eServiceReference(int type, int flags, int data0, int data1, int data2, int data3) + : type(type), flags(flags) + { + memset(data, 0, sizeof(data)); + data[0]=data0; + data[1]=data1; + data[2]=data2; + data[3]=data3; + number = 0; + } + eServiceReference(int type, int flags, int data0, int data1, int data2, int data3, int data4) + : type(type), flags(flags) + { + memset(data, 0, sizeof(data)); + data[0]=data0; + data[1]=data1; + data[2]=data2; + data[3]=data3; + data[4]=data4; + number = 0; + } + operator bool() const + { + return valid(); + } +#endif + eServiceReference(int type, int flags, const std::string &path) + : type(type), flags(flags), path(path) + { + memset(data, 0, sizeof(data)); + } + eServiceReference(const std::string &string); + std::string toString() const; + std::string toCompareString() const; + bool operator==(const eServiceReference &c) const + { + if (type != c.type) + return 0; + return (memcmp(data, c.data, sizeof(int)*8)==0) && (path == c.path); + } + bool operator!=(const eServiceReference &c) const + { + return !(*this == c); + } + bool operator<(const eServiceReference &c) const + { + if (type < c.type) + return 1; + + if (type > c.type) + return 0; + + int r=memcmp(data, c.data, sizeof(int)*8); + if (r) + return r < 0; + return path < c.path; + } + + int valid() const + { + return type != idInvalid; + } +}; + +SWIG_ALLOW_OUTPUT_SIMPLE(eServiceReference); + +extern PyObject *New_eServiceReference(const eServiceReference &ref); // defined in enigma_python.i + +#ifndef SWIG +#ifdef PYTHON_REFCOUNT_DEBUG +inline ePyObject Impl_New_eServiceReference(const char* file, int line, const eServiceReference &ref) +{ + return ePyObject(New_eServiceReference(ref), file, line); +} +#define NEW_eServiceReference(ref) Impl_New_eServiceReference(__FILE__, __LINE__, ref) +#else +inline ePyObject Impl_New_eServiceReference(const eServiceReference &ref) +{ + return New_eServiceReference(ref); +} +#define NEW_eServiceReference(ref) Impl_New_eServiceReference(ref) +#endif +#endif // SWIG + +typedef long long pts_t; + + /* the reason we have the servicereference as additional argument is + that we don't have to create one object for every entry in a possibly + large list, provided that no state information is nessesary to deliver + the required information. Anyway - ref *must* be the same as the argument + to the info() or getIServiceInformation call! */ + + /* About the usage of SWIG_VOID: + SWIG_VOID(real_returntype_t) hides a return value from swig. This is used for + the "superflouus" RESULT return values. + + Python code has to check the returned pointer against 0. This works, + as all functions returning instances in smartpointers AND having a + RESULT have to BOTH return non-zero AND set the pointer to zero. + + Python code thus can't check for the reason, but the reason isn't + user-servicable anyway. If you want to return a real reason which + goes beyong "it just doesn't work", use extra variables for this, + not the RESULT. + + Hide the result only if there is another way to check for failure! */ + +class eServiceEvent; +class iDVBTransponderData; + +class iServiceInfoContainer: public iObject +{ +public: + virtual int getInteger(unsigned int index) const { return 0; } + virtual std::string getString(unsigned int index) const { return ""; } + virtual double getDouble(unsigned int index) const { return 0.0; } + virtual unsigned char *getBuffer(unsigned int &size) const { return NULL; } +}; + +class iStaticServiceInformation: public iObject +{ +#ifdef SWIG + iStaticServiceInformation(); + ~iStaticServiceInformation(); +#endif +public: + virtual SWIG_VOID(RESULT) getName(const eServiceReference &ref, std::string &SWIG_OUTPUT)=0; + + // doesn't need to be implemented, should return -1 then. + virtual int getLength(const eServiceReference &ref); + virtual SWIG_VOID(RESULT) getEvent(const eServiceReference &ref, ePtr<eServiceEvent> &SWIG_OUTPUT, time_t start_time=-1); + // returns true when not implemented + virtual int isPlayable(const eServiceReference &ref, const eServiceReference &ignore, bool simulate=false); + + virtual int getInfo(const eServiceReference &ref, int w); + virtual std::string getInfoString(const eServiceReference &ref,int w); + virtual ePtr<iServiceInfoContainer> getInfoObject(int w); + virtual ePtr<iDVBTransponderData> getTransponderData(const eServiceReference &ref); + virtual long long getFileSize(const eServiceReference &ref); + virtual bool isCrypted(const eServiceReference &ref); + + virtual int setInfo(const eServiceReference &ref, int w, int v); + virtual int setInfoString(const eServiceReference &ref, int w, const char *v); +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<iStaticServiceInformation>, iStaticServiceInformationPtr); + +class iServiceInformation_ENUMS +{ +#ifdef SWIG + iServiceInformation_ENUMS(); + ~iServiceInformation_ENUMS(); +#endif +public: + enum { + sIsCrypted, /* is encrypted (no indication if decrypt was possible) */ + sAspect, /* aspect ratio: 0=4:3, 1=16:9, 2=whatever we need */ + sFrameRate, /* frame rate */ + sProgressive, /* 0 = interlaced, 1 = progressive */ + sIsMultichannel, /* multichannel *available* (probably not selected) */ + + /* "user serviceable info" - they are not reliable. Don't use them for anything except the service menu! + that's also the reason why they are so globally defined. + again - if somebody EVER tries to use this information for anything else than simply displaying it, + i will change this to return a user-readable text like "zero x zero three three" (and change the + exact spelling in every version) to stop that! */ + + sVideoPID, + sAudioPID, + sPCRPID, + sPMTPID, + sTXTPID, + + sSID, + sONID, + sTSID, + sNamespace, + sProvider, + + sDescription, + sServiceref, + sTimeCreate, /* unix time or string */ + sFileSize, + + sCAIDs, + sCAIDPIDs, + sVideoType, /* MPEG2 MPEG4 */ + + sTags, /* space seperated list of tags */ + + sDVBState, /* states as defined in pmt handler (as events there) */ + + sVideoHeight, + sVideoWidth, + + sTransponderData, /* transponderdata as python dict */ + + sCurrentChapter, + sCurrentTitle, + sTotalChapters, + sTotalTitles, + + sTagTitle, + sTagTitleSortname, + sTagArtist, + sTagArtistSortname, + sTagAlbum, + sTagAlbumSortname, + sTagComposer, + sTagDate, + sTagGenre, + sTagComment, + sTagExtendedComment, + sTagTrackNumber, + sTagTrackCount, + sTagAlbumVolumeNumber, + sTagAlbumVolumeCount, + sTagLocation, + sTagHomepage, + sTagDescription, + sTagVersion, + sTagISRC, + sTagOrganization, + sTagCopyright, + sTagCopyrightURI, + sTagContact, + sTagLicense, + sTagLicenseURI, + sTagPerformer, + sTagCodec, + sTagVideoCodec, + sTagAudioCodec, + sTagBitrate, + sTagNominalBitrate, + sTagMinimumBitrate, + sTagMaximumBitrate, + sTagSerial, + sTagEncoder, + sTagEncoderVersion, + sTagTrackGain, + sTagTrackPeak, + sTagAlbumGain, + sTagAlbumPeak, + sTagReferenceLevel, + sTagLanguageCode, + sTagImage, + sTagPreviewImage, + sTagAttachment, + sTagBeatsPerMinute, + sTagKeywords, + sTagCRC, + sTagChannelMode, + + sTransferBPS, + + sHBBTVUrl, + sLiveStreamDemuxId, + + sUser = 0x100 + }; + enum { + resNA = -1, + resIsString = -2, + resIsPyObject = -3 + }; +}; + +/* some words to structs like struct iServiceInformation_ENUMS +For some classes we need in python just the SmartPointer Variants. +So we prevent building wrapper classes for the non smart pointer classes with the SWIG_IGNORE makro. +But now we have the problem that swig do not export enums for smart pointer classes (i dont know why). +So we move all enum's to own classes (with _ENUMS as name ending) and let our real +class inherit from the *_ENUMS class. This *_ENUMS classes are normally exportet via swig to python. +But in the python code we doesn't like to write iServiceInformation_ENUMS.sVideoType.... +we like to write iServiceInformation.sVideoType. +So until swig have no Solution for this Problem we call in lib/python/Makefile.am a python script named +enigma_py_patcher.py to remove the "_ENUMS" strings in enigma.py at all needed locations. */ + +class iServiceInformation: public iServiceInformation_ENUMS, public iObject +{ +#ifdef SWIG + iServiceInformation(); + ~iServiceInformation(); +#endif +public: + virtual SWIG_VOID(RESULT) getName(std::string &SWIG_OUTPUT)=0; + virtual SWIG_VOID(RESULT) getEvent(ePtr<eServiceEvent> &SWIG_OUTPUT, int nownext); + + virtual int getInfo(int w); + virtual std::string getInfoString(int w); + virtual ePtr<iServiceInfoContainer> getInfoObject(int w); + virtual ePtr<iDVBTransponderData> getTransponderData(); + virtual void getAITApplications(std::map<int, std::string> &aitlist) {}; + virtual void getCaIds(std::vector<int> &caids, std::vector<int> &ecmpids); + virtual long long getFileSize(); + + virtual int setInfo(int w, int v); + virtual int setInfoString(int w, const char *v); +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<iServiceInformation>, iServiceInformationPtr); + +class iFrontendInformation_ENUMS +{ +#ifdef SWIG + iFrontendInformation_ENUMS(); + ~iFrontendInformation_ENUMS(); +#endif +public: + enum { + bitErrorRate, + signalPower, + signalQuality, + lockState, + syncState, + frontendNumber, + signalQualitydB, + frontendStatus, + snrValue, + frequency, + }; +}; + +class iDVBFrontendData; +class iDVBFrontendStatus; +class iDVBTransponderData; + +class iFrontendInformation: public iFrontendInformation_ENUMS, public iObject +{ +#ifdef SWIG + iFrontendInformation(); + ~iFrontendInformation(); +#endif +public: + virtual int getFrontendInfo(int w)=0; + virtual ePtr<iDVBFrontendData> getFrontendData()=0; + virtual ePtr<iDVBFrontendStatus> getFrontendStatus()=0; + virtual ePtr<iDVBTransponderData> getTransponderData(bool original)=0; + void getAll() {} +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<iFrontendInformation>, iFrontendInformationPtr); + +SWIG_IGNORE(iPauseableService); +class iPauseableService: public iObject +{ +#ifdef SWIG + iPausableService(); + ~iPausableService(); +#endif +public: + + /* this will set the *state* directly. So just call a SINGLE function of those at a time. */ + virtual RESULT pause()=0; + virtual RESULT unpause()=0; + + /* hm. */ + virtual RESULT setSlowMotion(int ratio=0)=0; + virtual RESULT setFastForward(int ratio=0)=0; +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<iPauseableService>, iPauseableServicePtr); + +class iSeekableService_ENUMS +{ +#ifdef SWIG + iSeekableService_ENUMS(); + ~iSeekableService_ENUMS(); +#endif +public: + enum { dirForward = +1, dirBackward = -1 }; +}; + +SWIG_IGNORE(iSeekableService); +class iSeekableService: public iSeekableService_ENUMS, public iObject +{ +#ifdef SWIG + iSeekableService(); + ~iSeekableService(); +#endif +public: + virtual RESULT getLength(pts_t &SWIG_OUTPUT)=0; + virtual RESULT seekTo(pts_t to)=0; + virtual RESULT seekRelative(int direction, pts_t to)=0; + virtual RESULT getPlayPosition(pts_t &SWIG_OUTPUT)=0; + /* if you want to do several seeks in a row, you can enable the trickmode. + audio will be switched off, sync will be disabled etc. */ + virtual RESULT setTrickmode(int trick=0)=0; + virtual RESULT isCurrentlySeekable()=0; + virtual RESULT seekChapter(int) { return -1; } + virtual RESULT seekTitle(int) { return -1; } +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<iSeekableService>, iSeekableServicePtr); + +struct iAudioTrackInfo +{ +#ifndef SWIG + std::string m_description; + std::string m_language; /* iso639 */ + int m_pid; /* for association with the stream. */ +#endif + std::string getDescription() { return m_description; } + std::string getLanguage() { return m_language; } + int getPID() { return m_pid; } +}; +SWIG_ALLOW_OUTPUT_SIMPLE(iAudioTrackInfo); + +SWIG_IGNORE(iAudioTrackSelection); +class iAudioTrackSelection: public iObject +{ +#ifdef SWIG + iAudioTrackSelection(); + ~iAudioTrackSelection(); +#endif +public: + virtual int getNumberOfTracks()=0; + virtual RESULT selectTrack(unsigned int i)=0; + virtual SWIG_VOID(RESULT) getTrackInfo(struct iAudioTrackInfo &SWIG_OUTPUT, unsigned int n)=0; + virtual int getCurrentTrack()=0; +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<iAudioTrackSelection>, iAudioTrackSelectionPtr); + +class iAudioChannelSelection_ENUMS +{ +#ifdef SWIG + iAudioChannelSelection_ENUMS(); + ~iAudioChannelSelection_ENUMS(); +#endif +public: + enum { LEFT, STEREO, RIGHT }; +}; + +SWIG_IGNORE(iAudioChannelSelection); +class iAudioChannelSelection: public iAudioChannelSelection_ENUMS, public iObject +{ +#ifdef SWIG + iAudioChannelSelection(); + ~iAudioChannelSelection(); +#endif +public: + virtual int getCurrentChannel()=0; + virtual RESULT selectChannel(int i)=0; +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<iAudioChannelSelection>, iAudioChannelSelectionPtr); + +SWIG_IGNORE(iAudioDelay); +class iAudioDelay: public iObject +{ +#ifdef SWIG + iAudioDelay(); + ~iAudioDelay(); +#endif +public: + virtual int getAC3Delay()=0; + virtual int getPCMDelay()=0; + virtual void setAC3Delay(int)=0; + virtual void setPCMDelay(int)=0; +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<iAudioDelay>, iAudioDelayPtr); + +class iRdsDecoder_ENUMS +{ +#ifdef SWIG + iRdsDecoder_ENUMS(); + ~iRdsDecoder_ENUMS(); +#endif +public: + enum { RadioText, RtpText }; +}; + +SWIG_IGNORE(iRdsDecoder); +class iRdsDecoder: public iObject, public iRdsDecoder_ENUMS +{ +#ifdef SWIG + iRdsDecoder(); + ~iRdsDecoder(); +#endif +public: + virtual std::string getText(int x=RadioText)=0; + virtual void showRassSlidePicture()=0; + virtual void showRassInteractivePic(int page, int subpage)=0; + virtual SWIG_PYOBJECT(ePyObject) getRassInteractiveMask()=0; +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<iRdsDecoder>, iRdsDecoderPtr); + +SWIG_IGNORE(iSubserviceList); +class iSubserviceList: public iObject +{ +#ifdef SWIG + iSubserviceList(); + ~iSubserviceList(); +#endif +public: + virtual int getNumberOfSubservices()=0; + virtual SWIG_VOID(RESULT) getSubservice(eServiceReference &SWIG_OUTPUT, unsigned int n)=0; +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<iSubserviceList>, iSubserviceListPtr); + +SWIG_IGNORE(iTimeshiftService); +class iTimeshiftService: public iObject +{ +#ifdef SWIG + iTimeshiftService(); + ~iTimeshiftService(); +#endif +public: + virtual RESULT startTimeshift()=0; + virtual RESULT stopTimeshift(bool swToLive=true)=0; + virtual RESULT setNextPlaybackFile(const char *fn)=0; // not needed by our internal timeshift.. but external plugin... + + virtual int isTimeshiftActive()=0; + virtual int isTimeshiftEnabled()=0; + /* this essentially seeks to the relative end of the timeshift buffer */ + virtual RESULT activateTimeshift()=0; + virtual RESULT saveTimeshiftFile()=0; + virtual std::string getTimeshiftFilename()=0; + virtual void switchToLive()=0; +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<iTimeshiftService>, iTimeshiftServicePtr); + + /* not related to eCueSheet */ + +class iCueSheet_ENUMS +{ +#ifdef SWIG + iCueSheet_ENUMS(); + ~iCueSheet_ENUMS(); +#endif +public: + enum { cutIn = 0, cutOut = 1, cutMark = 2 }; +}; + +SWIG_IGNORE(iCueSheet); +class iCueSheet: public iCueSheet_ENUMS, public iObject +{ +#ifdef SWIG + iCueSheet(); + ~iCueSheet(); +#endif +public: + /* returns a list of (pts, what)-tuples */ + virtual PyObject *getCutList() = 0; + virtual void setCutList(SWIG_PYOBJECT(ePyObject) list) = 0; + virtual void setCutListEnable(int enable) = 0; +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<iCueSheet>, iCueSheetPtr); + +class PyList; + +class eDVBTeletextSubtitlePage; +class eDVBSubtitlePage; +struct ePangoSubtitlePage; +class eRect; +struct gRegion; +struct gPixmap; + +SWIG_IGNORE(iSubtitleUser); +class iSubtitleUser +{ +public: + virtual void setPage(const eDVBTeletextSubtitlePage &p) = 0; + virtual void setPage(const eDVBSubtitlePage &p) = 0; + virtual void setPage(const ePangoSubtitlePage &p) = 0; + virtual void setPixmap(ePtr<gPixmap> &pixmap, gRegion changed, eRect dest) = 0; + virtual void destroy() = 0; +}; + +class iSubtitleOutput: public iObject +{ +public: + struct SubtitleTrack + { + int type; + int pid; + int page_number; + int magazine_number; + std::string language_code; + }; + + virtual RESULT enableSubtitles(iSubtitleUser *user, SubtitleTrack &track) = 0; + virtual RESULT disableSubtitles() = 0; + virtual RESULT getCachedSubtitle(SubtitleTrack &track) = 0; + virtual RESULT getSubtitleList(std::vector<SubtitleTrack> &subtitlelist) = 0; +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<iSubtitleOutput>, iSubtitleOutputPtr); + +SWIG_IGNORE(iMutableServiceList); +class iMutableServiceList: public iObject +{ +#ifdef SWIG + iMutableServiceList(); + ~iMutableServiceList(); +#endif +public: + /* flush changes */ + virtual RESULT flushChanges()=0; + /* adds a service to a list */ + virtual RESULT addService(eServiceReference &ref, eServiceReference before=eServiceReference())=0; + /* removes a service from a list */ + virtual RESULT removeService(eServiceReference &ref)=0; + /* moves a service in a list, only if list suppports a specific sort method. */ + /* pos is the new, absolute position from 0..size-1 */ + virtual RESULT moveService(eServiceReference &ref, int pos)=0; + /* set name of list, for bouquets this is the visible bouquet name */ + virtual RESULT setListName(const std::string &name)=0; +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<iMutableServiceList>, iMutableServiceListPtr); + +SWIG_IGNORE(iListableService); +class iListableService: public iObject +{ +#ifdef SWIG + iListableService(); + ~iListableService(); +#endif +public: +#ifndef SWIG + /* legacy interface: get a list */ + virtual RESULT getContent(std::list<eServiceReference> &list, bool sorted=false)=0; +#endif + virtual PyObject *getContent(const char* format, bool sorted=false)=0; + + /* new, shiny interface: streaming. */ + virtual SWIG_VOID(RESULT) getNext(eServiceReference &SWIG_OUTPUT)=0; + + /* use this for sorting. output is not sorted because of either + - performance reasons: the whole list must be buffered or + - the interface would be restricted to a list. streaming + (as well as a future "active" extension) won't be possible. + */ + virtual int compareLessEqual(const eServiceReference &, const eServiceReference &)=0; + + virtual SWIG_VOID(RESULT) startEdit(ePtr<iMutableServiceList> &SWIG_OUTPUT)=0; +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<iListableService>, iListableServicePtr); + +#ifndef SWIG + /* a helper class which can be used as argument to stl's sort(). */ +class iListableServiceCompare +{ + ePtr<iListableService> m_list; +public: + iListableServiceCompare(iListableService *list): m_list(list) { } + bool operator()(const eServiceReference &a, const eServiceReference &b) + { + return m_list->compareLessEqual(a, b); + } +}; +#endif + +SWIG_IGNORE(iServiceOfflineOperations); +class iServiceOfflineOperations: public iObject +{ +#ifdef SWIG + iServiceOfflineOperations(); + ~iServiceOfflineOperations(); +#endif +public: + /* to delete a service, forever. */ + virtual RESULT deleteFromDisk(int simulate=1)=0; + + /* for transferring a service... */ + virtual SWIG_VOID(RESULT) getListOfFilenames(std::list<std::string> &SWIG_OUTPUT)=0; + + /* a blocking call to reindex a file */ + virtual int reindex() = 0; + + // TODO: additional stuff, like a conversion interface? +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<iServiceOfflineOperations>, iServiceOfflineOperationsPtr); + +class iStreamData: public iObject +{ +public: + virtual SWIG_VOID(RESULT) getAllPids(std::vector<int> &result) const = 0; + virtual SWIG_VOID(RESULT) getVideoPids(std::vector<int> &result) const = 0; + virtual SWIG_VOID(RESULT) getAudioPids(std::vector<int> &result) const = 0; + virtual SWIG_VOID(RESULT) getSubtitlePids(std::vector<int> &result) const = 0; + virtual SWIG_VOID(RESULT) getPmtPid(int &result) const = 0; + virtual SWIG_VOID(RESULT) getPatPid(int &result) const = 0; + virtual SWIG_VOID(RESULT) getPcrPid(int &result) const = 0; + virtual SWIG_VOID(RESULT) getTxtPid(int &result) const = 0; + virtual SWIG_VOID(RESULT) getServiceId(int &result) const = 0; + virtual SWIG_VOID(RESULT) getAdapterId(int &result) const = 0; + virtual SWIG_VOID(RESULT) getDemuxId(int &result) const = 0; + virtual SWIG_VOID(RESULT) getCaIds(std::vector<int> &caids, std::vector<int> &ecmpids) const = 0; +}; + +class iStreamableService: public iObject +{ +#ifdef SWIG + iStreamableService(); + ~iStreamableService(); +#endif +public: + virtual ePtr<iStreamData> getStreamingData() = 0; +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<iStreamableService>, iStreamableServicePtr); + +class iStreamBufferInfo: public iObject +{ +public: + virtual int getBufferPercentage() const = 0; + virtual int getAverageInputRate() const = 0; + virtual int getAverageOutputRate() const = 0; + virtual int getBufferSpace() const = 0; + virtual int getBufferSize() const = 0; +}; + +class iStreamedService: public iObject +{ +#ifdef SWIG + iStreamedService(); + ~iStreamedService(); +#endif +public: + virtual ePtr<iStreamBufferInfo> getBufferCharge()=0; + virtual int setBufferSize(int size)=0; +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<iStreamedService>, iStreamedServicePtr); + +class iServiceKeys_ENUMS +{ +#ifdef SWIG + iServiceKeys_ENUMS(); + ~iServiceKeys_ENUMS(); +#endif +public: + enum { + keyLeft, + keyRight, + keyUp, + keyDown, + keyOk, + keyUser = 0x100 + }; +}; + +SWIG_IGNORE(iServiceKeys); +class iServiceKeys: public iServiceKeys_ENUMS, public iObject +{ +#ifdef SWIG + iServiceKeys(); + ~iServiceKeys(); +#endif +public: + virtual SWIG_VOID(RESULT) keyPressed(int key)=0; +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<iServiceKeys>, iServiceKeysPtr); + +class iPlayableService_ENUMS +{ +#ifdef SWIG + iPlayableService_ENUMS(); + ~iPlayableService_ENUMS(); +#endif +public: + enum { + /* these first two events are magical, and should only + be generated if you know what you're doing. */ + evStart, + evEnd, + + evTunedIn, + evTuneFailed, + + /* when iServiceInformation is implemented:*/ + evUpdatedEventInfo, + evUpdatedInfo, + evNewProgramInfo, + + /* when seek() is implemented: */ + evSeekableStatusChanged, /* for example when timeshifting */ + + evEOF, + evSOF, /* bounced against start of file (when seeking backwards) */ + + /* when cueSheet is implemented */ + evCuesheetChanged, + + /* when rdsDecoder is implemented */ + evUpdatedRadioText, + evUpdatedRtpText, + + /* Radio Screenshow Support */ + evUpdatedRassSlidePic, + evUpdatedRassInteractivePicMask, + + evVideoSizeChanged, + evVideoFramerateChanged, + evVideoProgressiveChanged, + + evBuffering, + + evStopped, + + evHBBTVInfo, + + evUser = 0x100 + }; +}; + +SWIG_IGNORE(iPlayableService); +class iPlayableService: public iPlayableService_ENUMS, public iObject +{ +#ifdef SWIG + iPlayableService(); + ~iPlaybleService(); +#endif + friend class iServiceHandler; +public: +#ifndef SWIG + virtual RESULT connectEvent(const Slot2<void,iPlayableService*,int> &event, ePtr<eConnection> &connection)=0; +#endif + virtual RESULT start()=0; + virtual RESULT stop()=0; + /* might have to be changed... */ + virtual RESULT setTarget(int target)=0; + virtual SWIG_VOID(RESULT) seek(ePtr<iSeekableService> &SWIG_OUTPUT)=0; + virtual SWIG_VOID(RESULT) pause(ePtr<iPauseableService> &SWIG_OUTPUT)=0; + virtual SWIG_VOID(RESULT) info(ePtr<iServiceInformation> &SWIG_OUTPUT)=0; + virtual SWIG_VOID(RESULT) audioTracks(ePtr<iAudioTrackSelection> &SWIG_OUTPUT)=0; + virtual SWIG_VOID(RESULT) audioChannel(ePtr<iAudioChannelSelection> &SWIG_OUTPUT)=0; + virtual SWIG_VOID(RESULT) subServices(ePtr<iSubserviceList> &SWIG_OUTPUT)=0; + virtual SWIG_VOID(RESULT) frontendInfo(ePtr<iFrontendInformation> &SWIG_OUTPUT)=0; + virtual SWIG_VOID(RESULT) timeshift(ePtr<iTimeshiftService> &SWIG_OUTPUT)=0; + virtual SWIG_VOID(RESULT) cueSheet(ePtr<iCueSheet> &SWIG_OUTPUT)=0; + virtual SWIG_VOID(RESULT) subtitle(ePtr<iSubtitleOutput> &SWIG_OUTPUT)=0; + virtual SWIG_VOID(RESULT) audioDelay(ePtr<iAudioDelay> &SWIG_OUTPUT)=0; + virtual SWIG_VOID(RESULT) rdsDecoder(ePtr<iRdsDecoder> &SWIG_OUTPUT)=0; + virtual SWIG_VOID(RESULT) stream(ePtr<iStreamableService> &SWIG_OUTPUT)=0; + virtual SWIG_VOID(RESULT) streamed(ePtr<iStreamedService> &SWIG_OUTPUT)=0; + virtual SWIG_VOID(RESULT) keys(ePtr<iServiceKeys> &SWIG_OUTPUT)=0; +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<iPlayableService>, iPlayableServicePtr); + +class iRecordableService_ENUMS +{ +#ifdef SWIG + iRecordableService_ENUMS(); + ~iRecordableService_ENUMS(); +#endif +public: + enum { + evStart, + evEnd, + evTunedIn, + evTuneFailed, + evRecordRunning, + evRecordStopped, + evNewProgramInfo, + evRecordFailed, + evRecordWriteError, + evNewEventInfo, + evRecordAborted, + }; + enum { + NoError=0, + errOpenRecordFile=-1, + errNoDemuxAvailable=-2, + errNoTsRecorderAvailable=-3, + errDiskFull=-4, + errTuneFailed=-255, + errMisconfiguration = -256, + errNoResources = -257, + }; +}; + +SWIG_IGNORE(iRecordableService); +class iRecordableService: public iRecordableService_ENUMS, public iObject +{ +#ifdef SWIG + iRecordableService(); + ~iRecordableService(); +#endif +public: +#ifndef SWIG + virtual RESULT connectEvent(const Slot2<void,iRecordableService*,int> &event, ePtr<eConnection> &connection)=0; +#endif + virtual SWIG_VOID(RESULT) getError(int &SWIG_OUTPUT)=0; + virtual RESULT prepare(const char *filename, time_t begTime=-1, time_t endTime=-1, int eit_event_id=-1, const char *name=0, const char *descr=0, const char *tags=0, bool descramble = true, bool recordecm = false)=0; + virtual RESULT prepareStreaming(bool descramble = true, bool includeecm = false)=0; + virtual RESULT start(bool simulate=false)=0; + virtual RESULT stop()=0; + virtual SWIG_VOID(RESULT) frontendInfo(ePtr<iFrontendInformation> &SWIG_OUTPUT)=0; + virtual SWIG_VOID(RESULT) stream(ePtr<iStreamableService> &SWIG_OUTPUT)=0; + virtual SWIG_VOID(RESULT) subServices(ePtr<iSubserviceList> &SWIG_OUTPUT)=0; +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<iRecordableService>, iRecordableServicePtr); + +extern PyObject *New_iRecordableServicePtr(const ePtr<iRecordableService> &ref); // defined in enigma_python.i + +inline PyObject *PyFrom(ePtr<iRecordableService> &c) +{ + return New_iRecordableServicePtr(c); +} + +#ifndef SWIG +#ifdef PYTHON_REFCOUNT_DEBUG +inline ePyObject Impl_New_iRecordableServicePtr(const char* file, int line, const ePtr<iRecordableService> &ptr) +{ + return ePyObject(New_iRecordableServicePtr(ptr), file, line); +} +#define NEW_iRecordableServicePtr(ptr) Impl_New_iRecordableServicePtr(__FILE__, __LINE__, ptr) +#else +inline ePyObject Impl_New_iRecordableServicePtr(const ePtr<iRecordableService> &ptr) +{ + return New_iRecordableServicePtr(ptr); +} +#define NEW_iRecordableServicePtr(ptr) Impl_New_iRecordableServicePtr(ptr) +#endif +#endif // SWIG + +SWIG_IGNORE(iServiceHandler); +class iServiceHandler: public iObject +{ +#ifdef SWIG + iServiceHandler(); + ~iServiceHandler(); +#endif +public: + virtual SWIG_VOID(RESULT) play(const eServiceReference &, ePtr<iPlayableService> &SWIG_OUTPUT)=0; + virtual SWIG_VOID(RESULT) record(const eServiceReference &, ePtr<iRecordableService> &SWIG_OUTPUT)=0; + virtual SWIG_VOID(RESULT) list(const eServiceReference &, ePtr<iListableService> &SWIG_OUTPUT)=0; + virtual SWIG_VOID(RESULT) info(const eServiceReference &, ePtr<iStaticServiceInformation> &SWIG_OUTPUT)=0; + virtual SWIG_VOID(RESULT) offlineOperations(const eServiceReference &, ePtr<iServiceOfflineOperations> &SWIG_OUTPUT)=0; +}; +SWIG_TEMPLATE_TYPEDEF(ePtr<iServiceHandler>, iServiceHandlerPtr); + +#endif diff --git a/lib/service/listboxservice.cpp b/lib/service/listboxservice.cpp new file mode 100644 index 0000000..2f37ec3 --- /dev/null +++ b/lib/service/listboxservice.cpp @@ -0,0 +1,979 @@ +#include <lib/service/listboxservice.h> +#include <lib/service/service.h> +#include <lib/gdi/font.h> +#include <lib/gdi/epng.h> +#include <lib/dvb/epgcache.h> +#include <lib/dvb/db.h> +#include <lib/dvb/pmt.h> +#include <lib/nav/core.h> +#include <lib/python/connections.h> +#include <lib/python/python.h> +#include <ctype.h> + +ePyObject eListboxServiceContent::m_GetPiconNameFunc; + +void eListboxServiceContent::addService(const eServiceReference &service, bool beforeCurrent) +{ + if (beforeCurrent && m_size) + m_list.insert(m_cursor, service); + else + m_list.push_back(service); + if (m_size++) + { + ++m_cursor_number; + if (m_listbox) + m_listbox->entryAdded(cursorResolve(m_cursor_number-1)); + } + else + { + m_cursor = m_list.begin(); + m_cursor_number=0; + m_listbox->entryAdded(0); + } +} + +void eListboxServiceContent::removeCurrent() +{ + if (m_size && m_listbox) + { + if (m_cursor_number == --m_size) + { + m_list.erase(m_cursor--); + if (m_size) + { + --m_cursor_number; + m_listbox->entryRemoved(cursorResolve(m_cursor_number+1)); + } + else + m_listbox->entryRemoved(cursorResolve(m_cursor_number)); + } + else + { + m_list.erase(m_cursor++); + m_listbox->entryRemoved(cursorResolve(m_cursor_number)); + } + } +} + +void eListboxServiceContent::FillFinished() +{ + m_size = m_list.size(); + cursorHome(); + + if (m_listbox) + m_listbox->entryReset(); +} + +void eListboxServiceContent::setRoot(const eServiceReference &root, bool justSet) +{ + m_list.clear(); + m_cursor = m_list.end(); + m_root = root; + + if (justSet) + { + m_lst=0; + return; + } + ASSERT(m_service_center); + + if (m_service_center->list(m_root, m_lst)) + eDebug("no list available!"); + else if (m_lst->getContent(m_list)) + eDebug("getContent failed"); + + FillFinished(); +} + +bool eListboxServiceContent::setCurrent(const eServiceReference &ref) +{ + int index=0; + for (list::iterator i(m_list.begin()); i != m_list.end(); ++i, ++index) + { + if ( *i == ref ) + { + m_cursor = i; + m_cursor_number = index; + if (m_listbox) + { + m_listbox->moveSelectionTo(cursorResolve(index)); + return true; + } + break; + } + } + return false; +} + +void eListboxServiceContent::getCurrent(eServiceReference &ref) +{ + if (cursorValid()) + ref = *m_cursor; + else + ref = eServiceReference(); +} + +int eListboxServiceContent::getNextBeginningWithChar(char c) +{ +// printf("Char: %c\n", c); + int index=0; + for (list::iterator i(m_list.begin()); i != m_list.end(); ++i, ++index) + { + std::string text; + ePtr<iStaticServiceInformation> service_info; + m_service_center->info(*i, service_info); + service_info->getName(*i, text); +// printf("%c\n", text.c_str()[0]); + int idx=0; + int len=text.length(); + while ( idx <= len ) + { + char cc = text[idx++]; + if (isprint(cc)) + { + if (cc == c) + return index; + break; + } + } + } + return 0; +} + +int eListboxServiceContent::getPrevMarkerPos() +{ + if (!m_listbox) + return 0; + list::iterator i(m_cursor); + int index = m_cursor_number; + while (index) // Skip precending markers + { + --i; + --index; + if (!(i->flags & eServiceReference::isMarker && !(i->flags & eServiceReference::isInvisible))) + break; + } + while (index) + { + --i; + --index; + if (i->flags & eServiceReference::isMarker && !(i->flags & eServiceReference::isInvisible)) + break; + } + return cursorResolve(index); +} + +int eListboxServiceContent::getNextMarkerPos() +{ + if (!m_listbox) + return 0; + list::iterator i(m_cursor); + int index = m_cursor_number; + while (index < (m_size-1)) + { + ++i; + ++index; + if (i->flags & eServiceReference::isMarker && !(i->flags & eServiceReference::isInvisible)) + break; + } + return cursorResolve(index); +} + +void eListboxServiceContent::initMarked() +{ + m_marked.clear(); +} + +void eListboxServiceContent::addMarked(const eServiceReference &ref) +{ + m_marked.insert(ref); + if (m_listbox) + m_listbox->entryChanged(cursorResolve(lookupService(ref))); +} + +void eListboxServiceContent::removeMarked(const eServiceReference &ref) +{ + m_marked.erase(ref); + if (m_listbox) + m_listbox->entryChanged(cursorResolve(lookupService(ref))); +} + +int eListboxServiceContent::isMarked(const eServiceReference &ref) +{ + return m_marked.find(ref) != m_marked.end(); +} + +void eListboxServiceContent::markedQueryStart() +{ + m_marked_iterator = m_marked.begin(); +} + +int eListboxServiceContent::markedQueryNext(eServiceReference &ref) +{ + if (m_marked_iterator == m_marked.end()) + return -1; + ref = *m_marked_iterator++; + return 0; +} + +int eListboxServiceContent::lookupService(const eServiceReference &ref) +{ + /* shortcut for cursor */ + if (ref == *m_cursor) + return m_cursor_number; + /* otherwise, search in the list.. */ + int index = 0; + for (list::const_iterator i(m_list.begin()); i != m_list.end(); ++i, ++index); + + /* this is ok even when the index was not found. */ + return index; +} + +void eListboxServiceContent::setVisualMode(int mode) +{ + for (int i=0; i < celElements; ++i) + { + m_element_position[i] = eRect(); + m_element_font[i] = 0; + } + + m_visual_mode = mode; + + if (m_visual_mode == visModeSimple) + { + m_element_position[celServiceName] = eRect(ePoint(0, 0), m_itemsize); + m_element_font[celServiceName] = new gFont("Regular", 23); + } +} + +void eListboxServiceContent::setElementPosition(int element, eRect where) +{ + if ((element >= 0) && (element < celElements)) + m_element_position[element] = where; +} + +void eListboxServiceContent::setElementFont(int element, gFont *font) +{ + if ((element >= 0) && (element < celElements)) + m_element_font[element] = font; +} + +void eListboxServiceContent::setPixmap(int type, ePtr<gPixmap> &pic) +{ + if ((type >=0) && (type < picElements)) + m_pixmaps[type] = pic; +} + +void eListboxServiceContent::sort() +{ + if (!m_lst) + m_service_center->list(m_root, m_lst); + if (m_lst) + { + m_list.sort(iListableServiceCompare(m_lst)); + /* FIXME: is this really required or can we somehow keep the current entry? */ + cursorHome(); + if (m_listbox) + m_listbox->entryReset(); + } +} + +DEFINE_REF(eListboxServiceContent); + +eListboxServiceContent::eListboxServiceContent() + :m_visual_mode(visModeSimple), m_size(0), m_current_marked(false), m_itemheight(25), m_hide_number_marker(false), m_servicetype_icon_mode(0), m_crypto_icon_mode(0), m_column_width(0), m_progressbar_height(6), m_progressbar_border_width(2), m_record_indicator_mode(0) +{ + memset(m_color_set, 0, sizeof(m_color_set)); + cursorHome(); + eServiceCenter::getInstance(m_service_center); +} + +void eListboxServiceContent::setColor(int color, gRGB &col) +{ + if ((color >= 0) && (color < colorElements)) + { + m_color_set[color] = true; + m_color[color] = col; + } +} + +void eListboxServiceContent::swapServices(list::iterator a, list::iterator b) +{ + std::iter_swap(a, b); + int temp = a->getChannelNum(); + a->setChannelNum(b->getChannelNum()); + b->setChannelNum(temp); +} + +void eListboxServiceContent::cursorHome() +{ + if (m_current_marked && m_saved_cursor == m_list.end()) + { + if (m_cursor_number >= m_size) + { + m_cursor_number = m_size-1; + --m_cursor; + } + while (m_cursor_number) + { + swapServices(m_cursor--, m_cursor); + --m_cursor_number; + if (m_listbox && m_cursor_number) + m_listbox->entryChanged(cursorResolve(m_cursor_number)); + } + } + else + { + m_cursor = m_list.begin(); + m_cursor_number = 0; + } +} + +void eListboxServiceContent::cursorEnd() +{ + if (m_current_marked && m_saved_cursor == m_list.end()) + { + while (m_cursor != m_list.end()) + { + list::iterator prev = m_cursor++; + ++m_cursor_number; + if ( prev != m_list.end() && m_cursor != m_list.end() ) + { + swapServices(m_cursor, prev); + if ( m_listbox ) + m_listbox->entryChanged(cursorResolve(m_cursor_number)); + } + } + } + else + { + m_cursor = m_list.end(); + m_cursor_number = m_size; + } +} + +int eListboxServiceContent::setCurrentMarked(bool state) +{ + bool prev = m_current_marked; + m_current_marked = state; + + if (state != prev && m_listbox) + { + m_listbox->entryChanged(cursorResolve(m_cursor_number)); + if (!state) + { + if (!m_lst) + m_service_center->list(m_root, m_lst); + if (m_lst) + { + ePtr<iMutableServiceList> list; + if (m_lst->startEdit(list)) + eDebug("no editable list"); + else + { + eServiceReference ref; + getCurrent(ref); + if(!ref) + eDebug("no valid service selected"); + else + { + int pos = cursorGet(); + eDebugNoNewLine("move %s to %d ", ref.toString().c_str(), pos); + if (list->moveService(ref, cursorGet())) + eDebug("failed"); + else + eDebug("ok"); + } + } + } + else + eDebug("no list available!"); + } + } + + return 0; +} + +int eListboxServiceContent::cursorMove(int count) +{ + int prev = m_cursor_number, last = m_cursor_number + count; + if (count > 0) + { + while(count && m_cursor != m_list.end()) + { + list::iterator prev_it = m_cursor++; + if ( m_current_marked && m_cursor != m_list.end() && m_saved_cursor == m_list.end() ) + { + swapServices(prev_it, m_cursor); + if ( m_listbox && prev != m_cursor_number && last != m_cursor_number ) + m_listbox->entryChanged(cursorResolve(m_cursor_number)); + } + ++m_cursor_number; + if (!(m_hide_number_marker && m_cursor->flags & eServiceReference::isNumberedMarker) && !(m_cursor->flags & eServiceReference::isInvisible)) + --count; + } + } + else if (count < 0) + { + while (count && m_cursor != m_list.begin()) + { + list::iterator prev_it = m_cursor--; + if ( m_current_marked && m_cursor != m_list.end() && prev_it != m_list.end() && m_saved_cursor == m_list.end() ) + { + swapServices(prev_it, m_cursor); + if ( m_listbox && prev != m_cursor_number && last != m_cursor_number ) + m_listbox->entryChanged(cursorResolve(m_cursor_number)); + } + --m_cursor_number; + if (!(m_hide_number_marker && m_cursor->flags & eServiceReference::isNumberedMarker) && !(m_cursor->flags & eServiceReference::isInvisible)) + ++count; + } + } + return 0; +} + +int eListboxServiceContent::cursorValid() +{ + return m_cursor != m_list.end(); +} + +int eListboxServiceContent::cursorSet(int n) +{ + cursorHome(); + cursorMove(n); + return 0; +} + +int eListboxServiceContent::cursorResolve(int cursorPosition) +{ + int strippedCursor = 0; + int count = 0; + for (list::iterator i(m_list.begin()); i != m_list.end(); ++i) + { + if (count == cursorPosition) + break; + count++; + if (m_hide_number_marker && (i->flags & eServiceReference::isNumberedMarker) || (i->flags & eServiceReference::isInvisible)) + continue; + strippedCursor++; + } + return strippedCursor; +} + +int eListboxServiceContent::cursorGet() +{ + return cursorResolve(m_cursor_number); +} + +int eListboxServiceContent::currentCursorSelectable() +{ + if (cursorValid()) + { + /* don't allow markers to be selected, unless we're in edit mode (because we want to provide some method to the user to remove a marker) */ + if (m_cursor->flags & eServiceReference::isMarker && m_marked.empty()) + return 0; + else + return 1; + } + return 0; +} + +void eListboxServiceContent::cursorSave() +{ + m_saved_cursor = m_cursor; + m_saved_cursor_number = m_cursor_number; +} + +void eListboxServiceContent::cursorRestore() +{ + m_cursor = m_saved_cursor; + m_cursor_number = m_saved_cursor_number; + m_saved_cursor = m_list.end(); +} + +int eListboxServiceContent::size() +{ + int size = 0; + for (list::iterator i(m_list.begin()); i != m_list.end(); ++i) + { + if (m_hide_number_marker && (i->flags & eServiceReference::isNumberedMarker) || (i->flags & eServiceReference::isInvisible)) + continue; + size++; + } + + return size; +} + +void eListboxServiceContent::setSize(const eSize &size) +{ + m_itemsize = size; + if (m_visual_mode == visModeSimple) + setVisualMode(m_visual_mode); +} + +void eListboxServiceContent::setGetPiconNameFunc(ePyObject func) +{ + if (m_GetPiconNameFunc) + Py_DECREF(m_GetPiconNameFunc); + m_GetPiconNameFunc = func; + if (m_GetPiconNameFunc) + Py_INCREF(m_GetPiconNameFunc); +} + +void eListboxServiceContent::setIgnoreService( const eServiceReference &service ) +{ + m_is_playable_ignore=service; + if (m_listbox && m_listbox->isVisible()) + m_listbox->invalidate(); +} + +void eListboxServiceContent::setItemHeight(int height) +{ + m_itemheight = height; + if (m_listbox) + m_listbox->setItemHeight(height); +} + +bool eListboxServiceContent::checkServiceIsRecorded(eServiceReference ref) +{ + std::map<ePtr<iRecordableService>, eServiceReference, std::less<iRecordableService*> > recordedServices; + recordedServices = eNavigation::getInstance()->getRecordingsServices(); + for (std::map<ePtr<iRecordableService>, eServiceReference >::iterator it = recordedServices.begin(); it != recordedServices.end(); ++it) + { + if (ref.flags & eServiceReference::isGroup) + { + ePtr<iDVBChannelList> db; + ePtr<eDVBResourceManager> res; + eDVBResourceManager::getInstance(res); + res->getChannelList(db); + eBouquet *bouquet=0; + db->getBouquet(ref, bouquet); + for (std::list<eServiceReference>::iterator i(bouquet->m_services.begin()); i != bouquet->m_services.end(); ++it) + if (*i == it->second) + return true; + } + else if (ref == it->second) + return true; + } + return false; +} + +void eListboxServiceContent::paint(gPainter &painter, eWindowStyle &style, const ePoint &offset, int selected) +{ + painter.clip(eRect(offset, m_itemsize)); + + int marked = 0; + + if (m_current_marked && selected) + marked = 2; + else if (cursorValid() && isMarked(*m_cursor)) + { + if (selected) + marked = 2; + else + marked = 1; + } + else + style.setStyle(painter, selected ? eWindowStyle::styleListboxSelected : eWindowStyle::styleListboxNormal); + + eListboxStyle *local_style = 0; + + /* get local listbox style, if present */ + if (m_listbox) + local_style = m_listbox->getLocalStyle(); + + if (marked == 1) // marked + { + style.setStyle(painter, eWindowStyle::styleListboxMarked); + if (m_color_set[markedForeground]) + painter.setForegroundColor(m_color[markedForeground]); + if (m_color_set[markedBackground]) + painter.setBackgroundColor(m_color[markedBackground]); + } + else if (marked == 2) // marked and selected + { + style.setStyle(painter, eWindowStyle::styleListboxMarkedAndSelected); + if (m_color_set[markedForegroundSelected]) + painter.setForegroundColor(m_color[markedForegroundSelected]); + if (m_color_set[markedBackgroundSelected]) + painter.setBackgroundColor(m_color[markedBackgroundSelected]); + } + else if (local_style) + { + if (selected) + { + /* if we have a local background color set, use that. */ + if (local_style->m_background_color_selected_set) + painter.setBackgroundColor(local_style->m_background_color_selected); + /* same for foreground */ + if (local_style->m_foreground_color_selected_set) + painter.setForegroundColor(local_style->m_foreground_color_selected); + } + else + { + /* if we have a local background color set, use that. */ + if (local_style->m_background_color_set) + painter.setBackgroundColor(local_style->m_background_color); + /* same for foreground */ + if (local_style->m_foreground_color_set) + painter.setForegroundColor(local_style->m_foreground_color); + } + } + + if (!local_style || !local_style->m_transparent_background) + /* if we have no transparent background */ + { + /* blit background picture, if available (otherwise, clear only) */ + if (local_style && local_style->m_background) + painter.blit(local_style->m_background, offset, eRect(), 0); + else + painter.clear(); + } else + { + if (local_style->m_background) + painter.blit(local_style->m_background, offset, eRect(), gPainter::BT_ALPHATEST); + else if (selected && !local_style->m_selection) + painter.clear(); + } + + if (cursorValid()) + { + /* get service information */ + ePtr<iStaticServiceInformation> service_info; + m_service_center->info(*m_cursor, service_info); + eServiceReference ref = *m_cursor; + bool isMarker = ref.flags & eServiceReference::isMarker; + bool isPlayable = !(ref.flags & eServiceReference::isDirectory || isMarker); + bool isRecorded = m_record_indicator_mode && isPlayable && checkServiceIsRecorded(ref); + ePtr<eServiceEvent> evt; + bool serviceAvail = true; + + if (!marked && isPlayable && service_info && m_is_playable_ignore.valid() && !service_info->isPlayable(*m_cursor, m_is_playable_ignore)) + { + if (m_color_set[serviceNotAvail]) + painter.setForegroundColor(m_color[serviceNotAvail]); + else + painter.setForegroundColor(gRGB(0xbbbbbb)); + serviceAvail = false; + } + if (m_record_indicator_mode == 3 && isRecorded) + { + if (m_color_set[serviceRecorded]) + painter.setForegroundColor(m_color[serviceRecorded]); + else + painter.setForegroundColor(gRGB(0xb40431)); + } + + if (selected && local_style && local_style->m_selection) + painter.blit(local_style->m_selection, offset, eRect(), gPainter::BT_ALPHATEST); + + int xoffset=0; // used as offset when painting the folder/marker symbol or the serviceevent progress + time_t now = time(0); + + for (int e = 0; e != celServiceTypePixmap; ++e) + { + if (m_element_font[e]) + { + int flags=gPainter::RT_VALIGN_CENTER; + int yoffs = 0; + eRect &area = m_element_position[e]; + std::string text = "<n/a>"; + switch (e) + { + case celServiceNumber: + { + if (area.width() <= 0) + continue; // no point in going on if we won't paint anything + + if( m_cursor->getChannelNum() == 0 ) + continue; + + char buffer[15]; + snprintf(buffer, sizeof(buffer), "%d", m_cursor->getChannelNum() ); + text = buffer; + flags|=gPainter::RT_HALIGN_RIGHT; + break; + } + case celServiceName: + { + if (service_info) + service_info->getName(*m_cursor, text); + break; + } + case celServiceInfo: + { + if ( isPlayable && service_info && !service_info->getEvent(*m_cursor, evt) ) + { + std::string name = evt->getEventName(); + if (name.empty()) + continue; + text = evt->getEventName(); + if (serviceAvail) + { + if (!selected && m_color_set[eventForeground]) + painter.setForegroundColor(m_color[eventForeground]); + else if (selected && m_color_set[eventForegroundSelected]) + painter.setForegroundColor(m_color[eventForegroundSelected]); + else + painter.setForegroundColor(gRGB(0xe7b53f)); + } + break; + } + continue; + } + case celServiceEventProgressbar: + { + if (area.width() > 0 && isPlayable && service_info && !service_info->getEvent(*m_cursor, evt)) + { + char buffer[15]; + snprintf(buffer, sizeof(buffer), "%d %%", (int)(100 * (now - evt->getBeginTime()) / evt->getDuration())); + text = buffer; + flags|=gPainter::RT_HALIGN_RIGHT; + break; + } + continue; + } + } + + eRect tmp = area; + int xoffs = 0; + if (e == celServiceName) + { + xoffs = xoffset; + tmp.setWidth(((!isPlayable || !m_column_width) ? tmp.width() : m_column_width < 0 ? area.width() / 2 : m_column_width) - xoffs); + } + + eTextPara *para = new eTextPara(tmp); + para->setFont(m_element_font[e]); + para->renderString(text.c_str()); + + if (e == celServiceName) + { + eRect bbox = para->getBoundBox(); + + int servicenameWidth = ((!isPlayable || !m_column_width) ? bbox.width() : m_column_width < 0 ? area.width() / 2 : m_column_width); + m_element_position[celServiceInfo].setLeft(area.left() + servicenameWidth + 8 + xoffs); + m_element_position[celServiceInfo].setTop(area.top()); + m_element_position[celServiceInfo].setWidth(area.width() - (servicenameWidth + 8 + xoffs)); + m_element_position[celServiceInfo].setHeight(area.height()); + + if (isPlayable) + { + //picon stuff + if (PyCallable_Check(m_GetPiconNameFunc)) + { + eRect area = m_element_position[celServiceInfo]; + /* PIcons are usually about 100:60. Make it a + * bit wider in case the icons are diffently + * shaped, and to add a bit of margin between + * icon and text. */ + const int iconWidth = area.height() * 9 / 5; + m_element_position[celServiceInfo].setLeft(area.left() + iconWidth); + m_element_position[celServiceInfo].setWidth(area.width() - iconWidth); + area = m_element_position[celServiceName]; + xoffs += iconWidth; + ePyObject pArgs = PyTuple_New(1); + PyTuple_SET_ITEM(pArgs, 0, PyString_FromString(ref.toString().c_str())); + ePyObject pRet = PyObject_CallObject(m_GetPiconNameFunc, pArgs); + Py_DECREF(pArgs); + if (pRet) + { + if (PyString_Check(pRet)) + { + std::string piconFilename = PyString_AS_STRING(pRet); + if (!piconFilename.empty()) + { + ePtr<gPixmap> piconPixmap; + loadPNG(piconPixmap, piconFilename.c_str()); + if (piconPixmap) + { + area.moveBy(offset); + painter.clip(area); + painter.blitScale(piconPixmap, + eRect(area.left(), area.top(), iconWidth, area.height()), + area, + gPainter::BT_ALPHABLEND | gPainter::BT_KEEP_ASPECT_RATIO); + painter.clippop(); + } + } + } + Py_DECREF(pRet); + } + } + + //service type marker stuff + if (m_servicetype_icon_mode) + { + int orbpos = m_cursor->getUnsignedData(4) >> 16; + const char *filename = ref.path.c_str(); + ePtr<gPixmap> &pixmap = + (m_cursor->flags & eServiceReference::isGroup) ? m_pixmaps[picServiceGroup] : + (strstr(filename, "://")) ? m_pixmaps[picStream] : + (orbpos == 0xFFFF) ? m_pixmaps[picDVB_C] : + (orbpos == 0xEEEE) ? m_pixmaps[picDVB_T] : m_pixmaps[picDVB_S]; + if (pixmap) + { + eSize pixmap_size = pixmap->size(); + eRect area = m_element_position[celServiceInfo]; + m_element_position[celServiceInfo].setLeft(area.left() + pixmap_size.width() + 8); + m_element_position[celServiceInfo].setWidth(area.width() - pixmap_size.width() - 8); + int offs = 0; + if (m_servicetype_icon_mode == 1) + { + area = m_element_position[celServiceName]; + offs = xoffs; + xoffs += pixmap_size.width() + 8; + } + else if (m_crypto_icon_mode == 1 && m_pixmaps[picCrypto]) + offs = offs + m_pixmaps[picCrypto]->size().width() + 8; + int correction = (area.height() - pixmap_size.height()) / 2; + area.moveBy(offset); + painter.clip(area); + painter.blit(pixmap, ePoint(area.left() + offs, offset.y() + correction), area, gPainter::BT_ALPHATEST); + painter.clippop(); + } + } + + //crypto icon stuff + if (m_crypto_icon_mode && m_pixmaps[picCrypto]) + { + eSize pixmap_size = m_pixmaps[picCrypto]->size(); + eRect area = m_element_position[celServiceInfo]; + int offs = 0; + if (m_crypto_icon_mode == 1) + { + m_element_position[celServiceInfo].setLeft(area.left() + pixmap_size.width() + 8); + m_element_position[celServiceInfo].setWidth(area.width() - pixmap_size.width() - 8); + area = m_element_position[celServiceName]; + offs = xoffs; + xoffs += pixmap_size.width() + 8; + } + int correction = (area.height() - pixmap_size.height()) / 2; + area.moveBy(offset); + if (service_info->isCrypted(*m_cursor)) + { + if (m_crypto_icon_mode == 2) + { + m_element_position[celServiceInfo].setLeft(area.left() + pixmap_size.width() + 8); + m_element_position[celServiceInfo].setWidth(area.width() - pixmap_size.width() - 8); + } + painter.clip(area); + painter.blit(m_pixmaps[picCrypto], ePoint(area.left() + offs, offset.y() + correction), area, gPainter::BT_ALPHATEST); + painter.clippop(); + } + } + + //record icon stuff + if (isRecorded && m_record_indicator_mode < 3 && m_pixmaps[picRecord]) + { + eSize pixmap_size = m_pixmaps[picRecord]->size(); + eRect area = m_element_position[celServiceInfo]; + int offs = 0; + if (m_record_indicator_mode == 1) + { + m_element_position[celServiceInfo].setLeft(area.left() + pixmap_size.width() + 8); + m_element_position[celServiceInfo].setWidth(area.width() - pixmap_size.width() - 8); + area = m_element_position[celServiceName]; + offs = xoffs; + xoffs += pixmap_size.width() + 8; + } + int correction = (area.height() - pixmap_size.height()) / 2; + area.moveBy(offset); + if (m_record_indicator_mode == 2) + { + m_element_position[celServiceInfo].setLeft(area.left() + pixmap_size.width() + 8); + m_element_position[celServiceInfo].setWidth(area.width() - pixmap_size.width() - 8); + } + painter.clip(area); + painter.blit(m_pixmaps[picRecord], ePoint(area.left() + offs, offset.y() + correction), area, gPainter::BT_ALPHATEST); + painter.clippop(); + } + } + } + + if (flags & gPainter::RT_HALIGN_RIGHT) + para->realign(eTextPara::dirRight); + else if (flags & gPainter::RT_HALIGN_CENTER) + para->realign(eTextPara::dirCenter); + else if (flags & gPainter::RT_HALIGN_BLOCK) + para->realign(eTextPara::dirBlock); + + if (flags & gPainter::RT_VALIGN_CENTER) + { + eRect bbox = para->getBoundBox(); + yoffs = (area.height() - bbox.height()) / 2 - bbox.top(); + } + + painter.renderPara(para, offset+ePoint(xoffs, yoffs)); + } + else if ((e == celFolderPixmap && m_cursor->flags & eServiceReference::isDirectory) || + (e == celMarkerPixmap && m_cursor->flags & eServiceReference::isMarker && + !(m_cursor->flags & eServiceReference::isNumberedMarker))) + { + ePtr<gPixmap> &pixmap = + (e == celFolderPixmap) ? m_pixmaps[picFolder] : m_pixmaps[picMarker]; + if (pixmap) + { + eSize pixmap_size = pixmap->size(); + eRect area = m_element_position[e == celFolderPixmap ? celServiceName: celServiceNumber]; + int correction = (area.height() - pixmap_size.height()) / 2; + if (e == celFolderPixmap) + xoffset = pixmap_size.width() + 8; + area.moveBy(offset); + painter.clip(area); + painter.blit(pixmap, ePoint(area.left(), offset.y() + correction), area, gPainter::BT_ALPHATEST); + painter.clippop(); + } + } + } + if (selected && (!local_style || !local_style->m_selection)) + style.drawFrame(painter, eRect(offset, m_itemsize), eWindowStyle::frameListboxEntry); + + eRect area = m_element_position[celServiceEventProgressbar]; + if (area.width() > 0 && evt && !m_element_font[celServiceEventProgressbar]) + { + int pb_xpos = area.left(); + int pb_ypos = offset.y() + (m_itemsize.height() - m_progressbar_height - 2 * m_progressbar_border_width) / 2; + int pb_width = area.width()- 2 * m_progressbar_border_width; + gRGB ProgressbarBorderColor = 0xdfdfdf; + int evt_done = pb_width * (now - evt->getBeginTime()) / evt->getDuration(); + + // the progress data... + eRect tmp = eRect(pb_xpos + m_progressbar_border_width, pb_ypos + m_progressbar_border_width, evt_done, m_progressbar_height); + ePtr<gPixmap> &pixmap = m_pixmaps[picServiceEventProgressbar]; + if (pixmap) { + painter.clip(tmp); + painter.blit(pixmap, ePoint(pb_xpos + m_progressbar_border_width, pb_ypos + m_progressbar_border_width), tmp, gPainter::BT_ALPHATEST); + painter.clippop(); + } + else { + if (!selected && m_color_set[serviceEventProgressbarColor]) + painter.setForegroundColor(m_color[serviceEventProgressbarColor]); + else if (selected && m_color_set[serviceEventProgressbarColorSelected]) + painter.setForegroundColor(m_color[serviceEventProgressbarColorSelected]); + painter.fill(tmp); + } + + // the progressbar border + if (!selected) { + if (m_color_set[serviceEventProgressbarBorderColor]) + ProgressbarBorderColor = m_color[serviceEventProgressbarBorderColor]; + else if (m_color_set[eventborderForeground]) + ProgressbarBorderColor = m_color[eventborderForeground]; + } + else { /* !selected */ + if (m_color_set[serviceEventProgressbarBorderColorSelected]) + ProgressbarBorderColor = m_color[serviceEventProgressbarBorderColorSelected]; + else if (m_color_set[eventborderForegroundSelected]) + ProgressbarBorderColor = m_color[eventborderForegroundSelected]; + } + painter.setForegroundColor(ProgressbarBorderColor); + + painter.fill(eRect(pb_xpos, pb_ypos, pb_width + 2 * m_progressbar_border_width, m_progressbar_border_width)); + painter.fill(eRect(pb_xpos, pb_ypos + m_progressbar_border_width + m_progressbar_height, pb_width + 2 * m_progressbar_border_width, m_progressbar_border_width)); + painter.fill(eRect(pb_xpos, pb_ypos + m_progressbar_border_width, m_progressbar_border_width, m_progressbar_height)); + painter.fill(eRect(pb_xpos + m_progressbar_border_width + pb_width, pb_ypos + m_progressbar_border_width, m_progressbar_border_width, m_progressbar_height)); + } + } + painter.clippop(); +} diff --git a/lib/service/listboxservice.h b/lib/service/listboxservice.h new file mode 100644 index 0000000..e5dc68c --- /dev/null +++ b/lib/service/listboxservice.h @@ -0,0 +1,177 @@ +#ifndef __lib_service_listboxservice_h +#define __lib_service_listboxservice_h + +#include <lib/gdi/gpixmap.h> +#include <lib/gui/elistbox.h> +#include <lib/service/iservice.h> +#include <lib/python/python.h> +#include <set> + +class eListboxServiceContent: public virtual iListboxContent +{ + DECLARE_REF(eListboxServiceContent); + static ePyObject m_GetPiconNameFunc; +public: + eListboxServiceContent(); + + void addService(const eServiceReference &ref, bool beforeCurrent=false); + void removeCurrent(); + void FillFinished(); + + void setIgnoreService( const eServiceReference &service ); + void setRoot(const eServiceReference &ref, bool justSet=false); + void getCurrent(eServiceReference &ref); + + int getNextBeginningWithChar(char c); + int getPrevMarkerPos(); + int getNextMarkerPos(); + + /* support for marked services */ + void initMarked(); + void addMarked(const eServiceReference &ref); + void removeMarked(const eServiceReference &ref); + int isMarked(const eServiceReference &ref); + + /* this is NOT thread safe! */ + void markedQueryStart(); + int markedQueryNext(eServiceReference &ref); + + int lookupService(const eServiceReference &ref); + bool setCurrent(const eServiceReference &ref); + + enum { + visModeSimple, + visModeComplex + }; + + void setVisualMode(int mode); + + /* only in complex mode: */ + enum { + celServiceNumber, + celMarkerPixmap, + celFolderPixmap, + celServiceEventProgressbar, + celServiceName, + celServiceInfo, // "now" event + celServiceTypePixmap, + celElements + }; + + enum { + picDVB_S, + picDVB_T, + picDVB_C, + picStream, + picServiceGroup, + picFolder, + picMarker, + picServiceEventProgressbar, + picCrypto, + picRecord, + picElements + }; + + void setElementPosition(int element, eRect where); + void setElementFont(int element, gFont *font); + void setPixmap(int type, ePtr<gPixmap> &pic); + + void sort(); + + int setCurrentMarked(bool); + + int getItemHeight() { return m_itemheight; } + void setItemHeight(int height); + void setHideNumberMarker(bool doHide) { m_hide_number_marker = doHide; } + void setServiceTypeIconMode(int mode) { m_servicetype_icon_mode = mode; } + void setCryptoIconMode(int mode) { m_crypto_icon_mode = mode; } + void setRecordIndicatorMode(int mode) { m_record_indicator_mode = mode; } + void setColumnWidth(int value) { m_column_width = value; } + void setProgressbarHeight(int value) { m_progressbar_height = value; } + void setProgressbarBorderWidth(int value) { m_progressbar_border_width = value; } + + static void setGetPiconNameFunc(SWIG_PYOBJECT(ePyObject) func); + + enum { + markedForeground, + markedForegroundSelected, + markedBackground, + markedBackgroundSelected, + serviceNotAvail, + eventForeground, + eventForegroundSelected, + eventborderForeground, + eventborderForegroundSelected, + serviceEventProgressbarColor, + serviceEventProgressbarColorSelected, + serviceEventProgressbarBorderColor, + serviceEventProgressbarBorderColorSelected, + serviceRecorded, + colorElements + }; + + void setColor(int color, gRGB &col); + bool checkServiceIsRecorded(eServiceReference ref); +protected: + void cursorHome(); + void cursorEnd(); + int cursorMove(int count=1); + int cursorValid(); + int cursorSet(int n); + int cursorResolve(int); + int cursorGet(); + int currentCursorSelectable(); + + void cursorSave(); + void cursorRestore(); + int size(); + + // void setOutputDevice ? (for allocating colors, ...) .. requires some work, though + void setSize(const eSize &size); + + /* the following functions always refer to the selected item */ + void paint(gPainter &painter, eWindowStyle &style, const ePoint &offset, int selected); + + int m_visual_mode; + /* for complex mode */ + eRect m_element_position[celElements]; + ePtr<gFont> m_element_font[celElements]; + ePtr<gPixmap> m_pixmaps[picElements]; + gRGB m_color[colorElements]; + bool m_color_set[colorElements]; +private: + typedef std::list<eServiceReference> list; + + list m_list; + list::iterator m_cursor, m_saved_cursor; + + int m_cursor_number, m_saved_cursor_number; + int m_size; + + eSize m_itemsize; + ePtr<iServiceHandler> m_service_center; + ePtr<iListableService> m_lst; + + eServiceReference m_root; + + /* support for marked services */ + std::set<eServiceReference> m_marked; + std::set<eServiceReference>::const_iterator m_marked_iterator; + + /* support for movemode */ + bool m_current_marked; + void swapServices(list::iterator, list::iterator); + + eServiceReference m_is_playable_ignore; + + int m_itemheight; + bool m_hide_number_marker; + int m_servicetype_icon_mode; + int m_crypto_icon_mode; + int m_record_indicator_mode; + int m_column_width; + int m_progressbar_height; + int m_progressbar_border_width; +}; + +#endif diff --git a/lib/service/service.cpp b/lib/service/service.cpp new file mode 100644 index 0000000..51abe2d --- /dev/null +++ b/lib/service/service.cpp @@ -0,0 +1,356 @@ +#include <lib/base/eerror.h> +#include <lib/base/estring.h> +#include <lib/service/service.h> +#include <lib/base/init_num.h> +#include <lib/base/init.h> +#include <lib/dvb/idvb.h> + +static std::string encode(const std::string s) +{ + int len = s.size(); + std::string res; + int i; + for (i=0; i<len; ++i) + { + unsigned char c = s[i]; + if ((c == ':') || (c < 32) || (c == '%')) + { + res += "%"; + char hex[8]; + snprintf(hex, 8, "%02x", c); + res += hex; + } else + res += c; + } + return res; +} + +eServiceReference::eServiceReference(const std::string &string) +{ + const char *c=string.c_str(); + int pathl=0; + number = 0; + + if (!string.length()) + type = idInvalid; + else if ( sscanf(c, "%d:%d:%x:%x:%x:%x:%x:%x:%x:%x:%n", &type, &flags, &data[0], &data[1], &data[2], &data[3], &data[4], &data[5], &data[6], &data[7], &pathl) < 8 ) + { + memset( data, 0, sizeof(data) ); + eDebug("find old format eServiceReference string"); + if ( sscanf(c, "%d:%d:%x:%x:%x:%x:%n", &type, &flags, &data[0], &data[1], &data[2], &data[3], &pathl) < 2 ) + type = idInvalid; + } + + if (pathl) + { + const char *pathstr = c+pathl; + const char *namestr = strchr(pathstr, ':'); + if (namestr) + { + if (!strncmp(namestr, "://", 3)) + { + /* + * The path is a url (e.g. "http://...") + * We can expect more colons to be present + * in a url, so instead of a colon, we look + * for a space instead as url delimiter, + * after which a name may be present. + */ + namestr = strchr(namestr, ' '); + if (namestr) + { + path.assign(pathstr, namestr - pathstr); + if (*(namestr + 1)) + name = namestr + 1; + } + } + else + { + if (pathstr != namestr) + path.assign(pathstr, namestr-pathstr); + if (*(namestr+1)) + name=namestr+1; + } + } + else + { + path=pathstr; + } + } + + path = urlDecode(path); + name = urlDecode(name); +} + +std::string eServiceReference::toString() const +{ + std::string ret; + ret += getNum(type); + ret += ":"; + ret += getNum(flags); + for (unsigned int i=0; i<sizeof(data)/sizeof(*data); ++i) + ret+=":"+ getNum(data[i], 0x10); + ret+=":"+encode(path); /* we absolutely have a problem when the path contains a ':' (for example: http://). we need an encoding here. */ + if (name.length()) + ret+=":"+encode(name); + return ret; +} + +std::string eServiceReference::toCompareString() const +{ + std::string ret; + ret += getNum(type); + ret += ":0"; + for (unsigned int i=0; i<sizeof(data)/sizeof(*data); ++i) + ret+=":"+getNum(data[i], 0x10); + ret+=":"+encode(path); + return ret; +} + +eServiceCenter *eServiceCenter::instance; + +eServiceCenter::eServiceCenter() +{ + if (!instance) + { + eDebug("settings instance."); + instance = this; + } +} + +eServiceCenter::~eServiceCenter() +{ + if (instance == this) + { + eDebug("clear instance"); + instance = 0; + } +} + +DEFINE_REF(eServiceCenter); + +RESULT eServiceCenter::play(const eServiceReference &ref, ePtr<iPlayableService> &ptr) +{ + std::map<int,ePtr<iServiceHandler> >::iterator i = handler.find(ref.type); + if (i == handler.end()) + { + ptr = 0; + return -1; + } + return i->second->play(ref, ptr); +} + +RESULT eServiceCenter::record(const eServiceReference &ref, ePtr<iRecordableService> &ptr) +{ + std::map<int,ePtr<iServiceHandler> >::iterator i = handler.find(ref.type); + if (i == handler.end()) + { + ptr = 0; + return -1; + } + return i->second->record(ref, ptr); +} + +RESULT eServiceCenter::list(const eServiceReference &ref, ePtr<iListableService> &ptr) +{ + std::map<int,ePtr<iServiceHandler> >::iterator i = handler.find(ref.type); + if (i == handler.end()) + { + ptr = 0; + return -1; + } + return i->second->list(ref, ptr); +} + +RESULT eServiceCenter::info(const eServiceReference &ref, ePtr<iStaticServiceInformation> &ptr) +{ + std::map<int,ePtr<iServiceHandler> >::iterator i = handler.find(ref.type); + if (i == handler.end()) + { + ptr = 0; + return -1; + } + return i->second->info(ref, ptr); +} + +RESULT eServiceCenter::offlineOperations(const eServiceReference &ref, ePtr<iServiceOfflineOperations> &ptr) +{ + std::map<int,ePtr<iServiceHandler> >::iterator i = handler.find(ref.type); + if (i == handler.end()) + { + ptr = 0; + return -1; + } + return i->second->offlineOperations(ref, ptr); +} + +RESULT eServiceCenter::addServiceFactory(int id, iServiceHandler *hnd, std::list<std::string> &extensions) +{ + handler.insert(std::pair<int,ePtr<iServiceHandler> >(id, hnd)); + for (std::list<std::string>::const_iterator eit(extensions.begin()); eit != extensions.end(); ++eit) + { + extensions_r[*eit] = id; + } + return 0; +} + +RESULT eServiceCenter::removeServiceFactory(int id) +{ + for (std::map<std::string, int>::iterator sit(extensions_r.begin()); sit != extensions_r.end(); ) + { + if (sit->second == id) + { + extensions_r.erase(sit++); + } + else + { + ++sit; + } + } + handler.erase(id); + return 0; +} + +RESULT eServiceCenter::addFactoryExtension(int id, const char *extension) +{ + extensions_r[extension] = id; + return 0; +} + +RESULT eServiceCenter::removeFactoryExtension(int id, const char *extension) +{ + std::map<std::string,int>::iterator what = extensions_r.find(extension); + if (what == extensions_r.end()) + return -1; // not found + extensions_r.erase(what); + return 0; +} + +int eServiceCenter::getServiceTypeForExtension(const char *str) +{ + return getServiceTypeForExtension(std::string(str)); +} + +int eServiceCenter::getServiceTypeForExtension(const std::string &str) +{ + std::map<std::string,int>::const_iterator what = extensions_r.find(str); + if (what == extensions_r.end()) + return -1; // not found + return what->second; +} + + /* default handlers */ +RESULT iServiceHandler::info(const eServiceReference &, ePtr<iStaticServiceInformation> &ptr) +{ + ptr = 0; + return -1; +} + +#include <lib/service/event.h> + +RESULT iStaticServiceInformation::getEvent(const eServiceReference &ref, ePtr<eServiceEvent> &evt, time_t start_time) +{ + evt = 0; + return -1; +} + +int iStaticServiceInformation::getLength(const eServiceReference &ref) +{ + return -1; +} + +int iStaticServiceInformation::isPlayable(const eServiceReference &ref, const eServiceReference &ignore, bool simulate) +{ + return 0; +} + +RESULT iServiceInformation::getEvent(ePtr<eServiceEvent> &evt, int m_nownext) +{ + evt = 0; + return -1; +} + +int iStaticServiceInformation::getInfo(const eServiceReference &ref, int w) +{ + return -1; +} + +std::string iStaticServiceInformation::getInfoString(const eServiceReference &ref, int w) +{ + return ""; +} + +ePtr<iServiceInfoContainer> iStaticServiceInformation::getInfoObject(int w) +{ + ePtr<iServiceInfoContainer> retval; + return retval; +} + +ePtr<iDVBTransponderData> iStaticServiceInformation::getTransponderData(const eServiceReference &ref) +{ + ePtr<iDVBTransponderData> retval; + return retval; +} + +long long iStaticServiceInformation::getFileSize(const eServiceReference &ref) +{ + return 0; +} + +bool iStaticServiceInformation::isCrypted(const eServiceReference &ref) +{ + return 0; +} + +int iStaticServiceInformation::setInfo(const eServiceReference &ref, int w, int v) +{ + return -1; +} + +int iStaticServiceInformation::setInfoString(const eServiceReference &ref, int w, const char *v) +{ + return -1; +} + +int iServiceInformation::getInfo(int w) +{ + return -1; +} + +std::string iServiceInformation::getInfoString(int w) +{ + return ""; +} + +ePtr<iServiceInfoContainer> iServiceInformation::getInfoObject(int w) +{ + ePtr<iServiceInfoContainer> retval; + return retval; +} + +ePtr<iDVBTransponderData> iServiceInformation::getTransponderData() +{ + ePtr<iDVBTransponderData> retval; + return retval; +} + +void iServiceInformation::getCaIds(std::vector<int> &caids, std::vector<int> &ecmpids) +{ +} + +long long iServiceInformation::getFileSize() +{ + return 0; +} + +int iServiceInformation::setInfo(int w, int v) +{ + return -1; +} + +int iServiceInformation::setInfoString(int w, const char *v) +{ + return -1; +} + +eAutoInitPtr<eServiceCenter> init_eServiceCenter(eAutoInitNumbers::service, "eServiceCenter"); diff --git a/lib/service/service.h b/lib/service/service.h new file mode 100644 index 0000000..fddcdeb --- /dev/null +++ b/lib/service/service.h @@ -0,0 +1,49 @@ +#ifndef __service_h +#define __service_h + +#include <map> +#include <lib/base/object.h> +#include <lib/service/iservice.h> + +class eServiceCenter; + +#ifndef SWIG +typedef ePtr<eServiceCenter> eServiceCenterPtr; +#endif + +class eServiceCenter: public iServiceHandler +{ + DECLARE_REF(eServiceCenter); + std::map<int,ePtr<iServiceHandler> > handler; + std::map<std::string, int> extensions_r; + static eServiceCenter *instance; +#ifdef SWIG + eServiceCenter(); + ~eServiceCenter(); +#endif +public: +#ifndef SWIG + eServiceCenter(); + virtual ~eServiceCenter(); + + int getServiceTypeForExtension(const char *str); + int getServiceTypeForExtension(const std::string &str); + + // iServiceHandler + RESULT play(const eServiceReference &, ePtr<iPlayableService> &ptr); + RESULT record(const eServiceReference &, ePtr<iRecordableService> &ptr); + RESULT list(const eServiceReference &, ePtr<iListableService> &ptr); + RESULT info(const eServiceReference &, ePtr<iStaticServiceInformation> &ptr); + RESULT offlineOperations(const eServiceReference &, ePtr<iServiceOfflineOperations> &ptr); + + // eServiceCenter + static RESULT getPrivInstance(ePtr<eServiceCenter> &ptr) { ptr = instance; return 0; } + RESULT addServiceFactory(int id, iServiceHandler *hnd, std::list<std::string> &extensions); + RESULT removeServiceFactory(int id); + RESULT addFactoryExtension(int id, const char *extension); + RESULT removeFactoryExtension(int id, const char *extension); +#endif + static SWIG_VOID(RESULT) getInstance(ePtr<iServiceHandler> &SWIG_NAMED_OUTPUT(ptr)) { ptr = instance; return 0; } +}; + +#endif diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp new file mode 100644 index 0000000..66306cb --- /dev/null +++ b/lib/service/servicedvb.cpp @@ -0,0 +1,3467 @@ +#include <lib/base/eerror.h> +#include <lib/base/object.h> +#include <string> +#include <lib/service/servicedvb.h> +#include <lib/service/service.h> +#include <lib/base/estring.h> +#include <lib/base/init_num.h> +#include <lib/base/init.h> +#include <lib/dvb/dvb.h> +#include <lib/dvb/db.h> +#include <lib/dvb/decoder.h> + +#include <lib/components/file_eraser.h> +#include <lib/service/servicedvbrecord.h> +#include <lib/service/event.h> +#include <lib/dvb/metaparser.h> +#include <lib/dvb/tstools.h> +#include <lib/python/python.h> +#include <lib/base/nconfig.h> // access to python config +#include <lib/base/httpstream.h> + + /* for subtitles */ +#include <lib/gui/esubtitle.h> + +#include <sys/vfs.h> +#include <sys/stat.h> + +#include <byteswap.h> +#include <netinet/in.h> + +#ifndef BYTE_ORDER +#error no byte order defined! +#endif + +class eStaticServiceDVBInformation: public iStaticServiceInformation +{ + DECLARE_REF(eStaticServiceDVBInformation); +public: + RESULT getName(const eServiceReference &ref, std::string &name); + int getLength(const eServiceReference &ref); + int isPlayable(const eServiceReference &ref, const eServiceReference &ignore, bool simulate=false); + ePtr<iDVBTransponderData> getTransponderData(const eServiceReference &ref); +}; + +DEFINE_REF(eStaticServiceDVBInformation); + +RESULT eStaticServiceDVBInformation::getName(const eServiceReference &ref, std::string &name) +{ + eServiceReferenceDVB &service = (eServiceReferenceDVB&)ref; + if ( !ref.name.empty() ) + { + if (service.getParentTransportStreamID().get()) // linkage subservice + { + ePtr<iServiceHandler> service_center; + if (!eServiceCenter::getInstance(service_center)) + { + eServiceReferenceDVB parent = service; + parent.setTransportStreamID( service.getParentTransportStreamID() ); + parent.setServiceID( service.getParentServiceID() ); + parent.setParentTransportStreamID(eTransportStreamID(0)); + parent.setParentServiceID(eServiceID(0)); + parent.name=""; + ePtr<iStaticServiceInformation> service_info; + if (!service_center->info(parent, service_info)) + { + if (!service_info->getName(parent, name)) + name=buildShortName(name) + " - "; + } + } + } + else + name=""; + name += ref.name; + return 0; + } + else + return -1; +} + +int eStaticServiceDVBInformation::getLength(const eServiceReference &ref) +{ + return -1; +} + +int eStaticServiceDVBInformation::isPlayable(const eServiceReference &ref, const eServiceReference &ignore, bool simulate) +{ + ePtr<eDVBResourceManager> res_mgr; + if ( eDVBResourceManager::getInstance( res_mgr ) ) + eDebug("isPlayable... no res manager!!"); + else + { + eDVBChannelID chid, chid_ignore; + int system; + ((const eServiceReferenceDVB&)ref).getChannelID(chid); + ((const eServiceReferenceDVB&)ignore).getChannelID(chid_ignore); + return res_mgr->canAllocateChannel(chid, chid_ignore, system); + } + return 0; +} + +ePtr<iDVBTransponderData> eStaticServiceDVBInformation::getTransponderData(const eServiceReference &r) +{ + ePtr<iDVBTransponderData> retval; + if (r.type == eServiceReference::idDVB) + { + const eServiceReferenceDVB &ref = (const eServiceReferenceDVB&)r; + ePtr<eDVBResourceManager> res; + if (!eDVBResourceManager::getInstance(res)) + { + ePtr<iDVBChannelList> db; + if (!res->getChannelList(db)) + { + eDVBChannelID chid; + ref.getChannelID(chid); + ePtr<iDVBFrontendParameters> feparm; + if (!db->getChannelFrontendData(chid, feparm)) + { + int system; + if (!feparm->getSystem(system)) + { + switch (system) + { + case iDVBFrontend::feSatellite: + { + eDVBFrontendParametersSatellite s; + feparm->getDVBS(s); + retval = new eDVBSatelliteTransponderData(NULL, 0, s, 0, true); + break; + } + case iDVBFrontend::feTerrestrial: + { + eDVBFrontendParametersTerrestrial t; + feparm->getDVBT(t); + retval = new eDVBTerrestrialTransponderData(NULL, 0, t, true); + break; + } + case iDVBFrontend::feCable: + { + eDVBFrontendParametersCable c; + feparm->getDVBC(c); + retval = new eDVBCableTransponderData(NULL, 0, c, true); + break; + } + case iDVBFrontend::feATSC: + { + eDVBFrontendParametersATSC a; + feparm->getATSC(a); + retval = new eDVBATSCTransponderData(NULL, 0, a, true); + break; + } + default: + eDebug("unknown frontend type %d", system); + break; + } + } + } + } + } + } + return retval; +} + +DEFINE_REF(eStaticServiceDVBBouquetInformation); + +RESULT eStaticServiceDVBBouquetInformation::getName(const eServiceReference &ref, std::string &name) +{ + ePtr<iDVBChannelList> db; + ePtr<eDVBResourceManager> res; + + int err; + if ((err = eDVBResourceManager::getInstance(res)) != 0) + { + eDebug("eStaticServiceDVBBouquetInformation::getName failed.. no resource manager!"); + return err; + } + if ((err = res->getChannelList(db)) != 0) + { + eDebug("eStaticServiceDVBBouquetInformation::getName failed.. no channel list!"); + return err; + } + + eBouquet *bouquet=0; + if ((err = db->getBouquet(ref, bouquet)) != 0) + { + eDebug("eStaticServiceDVBBouquetInformation::getName failed.. getBouquet failed!"); + return -1; + } + + if ( bouquet && bouquet->m_bouquet_name.length() ) + { + name = bouquet->m_bouquet_name; + return 0; + } + else + return -1; +} + +int eStaticServiceDVBBouquetInformation::isPlayable(const eServiceReference &ref, const eServiceReference &ignore, bool simulate) +{ + if (ref.flags & eServiceReference::isGroup) + { + ePtr<iDVBChannelList> db; + ePtr<eDVBResourceManager> res; + eServiceReference streamable_service; + + if (eDVBResourceManager::getInstance(res)) + { + eDebug("eStaticServiceDVBBouquetInformation::isPlayable failed.. no resource manager!"); + return 0; + } + + if (res->getChannelList(db)) + { + eDebug("eStaticServiceDVBBouquetInformation::isPlayable failed.. no channel list!"); + return 0; + } + + eBouquet *bouquet=0; + if (db->getBouquet(ref, bouquet)) + { + eDebug("eStaticServiceDVBBouquetInformation::isPlayable failed.. getBouquet failed!"); + return 0; + } + + int prio_order = eDVBFrontend::getTypePriorityOrder(); + int cur=0; + eDVBChannelID chid, chid_ignore; + ((const eServiceReferenceDVB&)ignore).getChannelID(chid_ignore); + for (std::list<eServiceReference>::iterator it(bouquet->m_services.begin()); it != bouquet->m_services.end(); ++it) + { + static unsigned char prio_map[6][3] = { + { 3, 2, 1 }, // -S -C -T + { 3, 1, 2 }, // -S -T -C + { 2, 3, 1 }, // -C -S -T + { 1, 3, 2 }, // -C -T -S + { 1, 2, 3 }, // -T -C -S + { 2, 1, 3 } // -T -S -C + }; + int system; + ((const eServiceReferenceDVB&)*it).getChannelID(chid); + int tmp = res->canAllocateChannel(chid, chid_ignore, system, simulate); + if (tmp > 0) + { + switch (system) + { + case iDVBFrontend::feTerrestrial: + tmp = prio_map[prio_order][2]; + break; + case iDVBFrontend::feCable: + tmp = prio_map[prio_order][1]; + break; + default: + case iDVBFrontend::feSatellite: + tmp = prio_map[prio_order][0]; + break; + } + } + if (tmp > cur) + { + m_playable_service = *it; + cur = tmp; + } + if (!it->path.empty()) + { + streamable_service = *it; + } + } + if (cur) + { + return cur; + } + /* fallback to stream (or pvr) service alternative */ + if (streamable_service) + { + m_playable_service = streamable_service; + return 1; + } + } + m_playable_service = eServiceReference(); + return 0; +} + +int eStaticServiceDVBBouquetInformation::getLength(const eServiceReference &ref) +{ + return -1; +} + +#include <lib/dvb/epgcache.h> + +RESULT eStaticServiceDVBBouquetInformation::getEvent(const eServiceReference &ref, ePtr<eServiceEvent> &ptr, time_t start_time) +{ + return eEPGCache::getInstance()->lookupEventTime(ref, start_time, ptr); +} + +class eStaticServiceDVBPVRInformation: public iStaticServiceInformation +{ + DECLARE_REF(eStaticServiceDVBPVRInformation); + eServiceReference m_ref; + eDVBMetaParser m_parser; +public: + eStaticServiceDVBPVRInformation(const eServiceReference &ref); + RESULT getName(const eServiceReference &ref, std::string &name); + int getLength(const eServiceReference &ref); + RESULT getEvent(const eServiceReference &ref, ePtr<eServiceEvent> &SWIG_OUTPUT, time_t start_time); + int isPlayable(const eServiceReference &ref, const eServiceReference &ignore, bool simulate) { return 1; } + int getInfo(const eServiceReference &ref, int w); + std::string getInfoString(const eServiceReference &ref,int w); + ePtr<iDVBTransponderData> getTransponderData(const eServiceReference &r); + long long getFileSize(const eServiceReference &r); +}; + +DEFINE_REF(eStaticServiceDVBPVRInformation); + +eStaticServiceDVBPVRInformation::eStaticServiceDVBPVRInformation(const eServiceReference &ref) +{ + m_ref = ref; + m_parser.parseFile(ref.path); +} + +static bool looksLikeRecording(const std::string& n) +{ + return + (n.size() > 19) && + (n[8] == ' ') && + (n[13] == ' ') && + (n[14] == '-') && + (n[15] == ' ') && + (isdigit(n[0])); +} + +RESULT eStaticServiceDVBPVRInformation::getName(const eServiceReference &ref, std::string &name) +{ + ASSERT(ref == m_ref); + if (!ref.name.empty()) + name = ref.name; + else if (!m_parser.m_name.empty()) + name = m_parser.m_name; + else + { + name = ref.path; + size_t n = name.rfind('/'); + if (n != std::string::npos) + name = name.substr(n + 1); + if (looksLikeRecording(name)) + { + // Parse recording names in 'YYYYMMDD HHMM - ... - name.ts' into name + std::size_t dash2 = name.find(" - ", 16, 3); + if (dash2 != std::string::npos) + { + struct tm stm = {0}; + if (strptime(name.c_str(), "%Y%m%d %H%M", &stm) != NULL) + { + m_parser.m_time_create = mktime(&stm); + } + name.erase(0,dash2+3); + } + if (name[name.size()-3] == '.') + { + name.erase(name.size()-3); + } + } + m_parser.m_name = name; + } + return 0; +} + +int eStaticServiceDVBPVRInformation::getLength(const eServiceReference &ref) +{ + ASSERT(ref == m_ref); + + eDVBTSTools tstools; + + if (tstools.openFile(ref.path.c_str(), 1)) + return 0; + + struct stat s; + stat(ref.path.c_str(), &s); + + /* check if cached data is still valid */ + if (m_parser.m_data_ok && (s.st_size == m_parser.m_filesize) && (m_parser.m_length)) + return m_parser.m_length / 90000; + + /* open again, this time with stream info */ + if (tstools.openFile(ref.path.c_str())) + return 0; + + /* otherwise, re-calc length and update meta file */ + pts_t len; + if (tstools.calcLen(len)) + return 0; + + if (m_parser.m_name.empty()) + { + std::string name; + getName(ref, name); // This also updates m_parser.name + } + m_parser.m_data_ok = 1; + m_parser.m_length = len; + m_parser.m_filesize = s.st_size; + m_parser.updateMeta(ref.path); + return m_parser.m_length / 90000; +} + +int eStaticServiceDVBPVRInformation::getInfo(const eServiceReference &ref, int w) +{ + switch (w) + { + case iServiceInformation::sDescription: + return iServiceInformation::resIsString; + case iServiceInformation::sServiceref: + return iServiceInformation::resIsString; + case iServiceInformation::sFileSize: + return m_parser.m_filesize; + case iServiceInformation::sTimeCreate: + if (m_parser.m_time_create) + return m_parser.m_time_create; + else + return iServiceInformation::resNA; + default: + return iServiceInformation::resNA; + } +} + +std::string eStaticServiceDVBPVRInformation::getInfoString(const eServiceReference &ref,int w) +{ + switch (w) + { + case iServiceInformation::sDescription: + return m_parser.m_description; + case iServiceInformation::sServiceref: + return m_parser.m_ref.toString(); + case iServiceInformation::sTags: + return m_parser.m_tags; + default: + return ""; + } +} + +ePtr<iDVBTransponderData> eStaticServiceDVBPVRInformation::getTransponderData(const eServiceReference &r) +{ + ePtr<iDVBTransponderData> retval; + return retval; +} + +long long eStaticServiceDVBPVRInformation::getFileSize(const eServiceReference &ref) +{ + return m_parser.m_filesize; +} + +RESULT eStaticServiceDVBPVRInformation::getEvent(const eServiceReference &ref, ePtr<eServiceEvent> &evt, time_t start_time) +{ + if (!ref.path.empty()) + { + if (ref.path.substr(0, 7) == "http://") + { + eServiceReference equivalentref(ref); + /* this might be a scrambled stream (id + 0x100), force equivalent dvb type */ + equivalentref.type = eServiceFactoryDVB::id; + equivalentref.path.clear(); + return eEPGCache::getInstance()->lookupEventTime(equivalentref, start_time, evt); + } + else + { + ePtr<eServiceEvent> event = new eServiceEvent; + std::string filename = ref.path; + filename.erase(filename.length()-2, 2); + filename+="eit"; + if (!event->parseFrom(filename, (m_parser.m_ref.getTransportStreamID().get()<<16)|m_parser.m_ref.getOriginalNetworkID().get())) + { + evt = event; + return 0; + } + } + } + evt = 0; + return -1; +} + +class eDVBPVRServiceOfflineOperations: public iServiceOfflineOperations +{ + DECLARE_REF(eDVBPVRServiceOfflineOperations); + eServiceReferenceDVB m_ref; +public: + eDVBPVRServiceOfflineOperations(const eServiceReference &ref); + + RESULT deleteFromDisk(int simulate); + RESULT getListOfFilenames(std::list<std::string> &); + RESULT reindex(); +}; + +DEFINE_REF(eDVBPVRServiceOfflineOperations); + +eDVBPVRServiceOfflineOperations::eDVBPVRServiceOfflineOperations(const eServiceReference &ref): m_ref((const eServiceReferenceDVB&)ref) +{ +} + +RESULT eDVBPVRServiceOfflineOperations::deleteFromDisk(int simulate) +{ + if (simulate) + return 0; + else + { + std::list<std::string> res; + if (getListOfFilenames(res)) + return -1; + + eBackgroundFileEraser *eraser = eBackgroundFileEraser::getInstance(); + if (!eraser) + eDebug("FATAL !! can't get background file eraser"); + + for (std::list<std::string>::iterator i(res.begin()); i != res.end(); ++i) + { + eDebug("Removing %s...", i->c_str()); + if (eraser) + eraser->erase(*i); + else + ::unlink(i->c_str()); + } + + return 0; + } +} + +RESULT eDVBPVRServiceOfflineOperations::getListOfFilenames(std::list<std::string> &res) +{ + res.clear(); + res.push_back(m_ref.path); + +// handling for old splitted recordings (enigma 1) + char buf[255]; + int slice=1; + while(true) + { + snprintf(buf, 255, "%s.%03d", m_ref.path.c_str(), slice++); + if (::access(buf, R_OK) < 0) break; + res.push_back(buf); + } + + res.push_back(m_ref.path + ".meta"); + res.push_back(m_ref.path + ".ap"); + res.push_back(m_ref.path + ".sc"); + res.push_back(m_ref.path + ".cuts"); + std::string tmp = m_ref.path; + tmp.erase(m_ref.path.length()-3); + res.push_back(tmp + ".eit"); + return 0; +} + +static int reindex_work(const std::string& filename) +{ + /* This does not work, need to call parser.setPid(pid, type) otherwise + * the parser will not actually output any data! */ + + eRawFile f; + + int err = f.open(filename.c_str()); + if (err < 0) + return err; + + eMPEGStreamParserTS parser; /* Missing packetsize, should be determined from stream? */ + + { + unsigned int i; + bool timingpidset = false; + eDVBTSTools tstools; + tstools.openFile(filename.c_str(), 1); + eDVBPMTParser::program program; + err = tstools.findPMT(program); + if (err) + { + eDebug("reindex - Failed to find PMT"); + return err; + } + for (i = 0; i < program.videoStreams.size(); i++) + { + if (timingpidset) break; + eDebug("reindex: video pid=0x%x", program.videoStreams[i].pid); + parser.setPid(program.videoStreams[i].pid, iDVBTSRecorder::video_pid, program.videoStreams[i].type); + timingpidset = true; + } + for (i = 0; i < program.audioStreams.size(); i++) + { + if (timingpidset) break; + eDebug("reindex: audio pid=0x%x", program.audioStreams[i].pid); + parser.setPid(program.audioStreams[i].pid, iDVBTSRecorder::audio_pid, program.audioStreams[i].type); + timingpidset = true; + } + } + + parser.startSave(filename); + + off_t offset = 0; + std::vector<char> buffer(188*1024); + while (1) + { + int r = f.read(offset, &buffer[0], buffer.size()); + if (!r) + break; + if (r < 0) + return r; + parser.parseData(offset, &buffer[0], r); + offset += r; + } + + parser.stopSave(); + return 0; +} + +RESULT eDVBPVRServiceOfflineOperations::reindex() +{ + int result; + /* Release global interpreter lock */ + Py_BEGIN_ALLOW_THREADS; + result = reindex_work(m_ref.path.c_str()); + Py_END_ALLOW_THREADS; + return result; +} + +DEFINE_REF(eServiceFactoryDVB) + +eServiceFactoryDVB::eServiceFactoryDVB() +{ + ePtr<eServiceCenter> sc; + + eServiceCenter::getPrivInstance(sc); + if (sc) + { + std::list<std::string> extensions; + extensions.push_back("ts"); + extensions.push_back("trp"); + sc->addServiceFactory(eServiceFactoryDVB::id, this, extensions); + /* + * User can indicate that a ts stream is scrambled, by using servicetype id + 0x100 + * This only works by specifying the servicetype, we won't allow file extension + * lookup, as we cannot map the same extensions to several service types. + */ + extensions.clear(); + sc->addServiceFactory(eServiceFactoryDVB::id + 0x100, this, extensions); + } + + m_StaticServiceDVBInfo = new eStaticServiceDVBInformation; + m_StaticServiceDVBBouquetInfo = new eStaticServiceDVBBouquetInformation; +} + +eServiceFactoryDVB::~eServiceFactoryDVB() +{ + ePtr<eServiceCenter> sc; + + eServiceCenter::getPrivInstance(sc); + if (sc) + sc->removeServiceFactory(eServiceFactoryDVB::id); +} + +DEFINE_REF(eDVBServiceList); + +eDVBServiceList::eDVBServiceList(const eServiceReference &parent): m_parent(parent) +{ +} + +eDVBServiceList::~eDVBServiceList() +{ +} + +RESULT eDVBServiceList::startQuery() +{ + ePtr<iDVBChannelList> db; + ePtr<eDVBResourceManager> res; + + int err; + if ((err = eDVBResourceManager::getInstance(res)) != 0) + { + eDebug("no resource manager"); + return err; + } + if ((err = res->getChannelList(db)) != 0) + { + eDebug("no channel list"); + return err; + } + + ePtr<eDVBChannelQuery> q; + + if (!m_parent.path.empty()) + { + eDVBChannelQuery::compile(q, m_parent.path); + if (!q) + { + eDebug("compile query failed"); + return err; + } + } + + if ((err = db->startQuery(m_query, q, m_parent)) != 0) + { + eDebug("startQuery failed"); + return err; + } + + return 0; +} + +RESULT eDVBServiceList::getContent(std::list<eServiceReference> &list, bool sorted) +{ + eServiceReferenceDVB ref; + + if (!m_query) + return -1; + + while (!m_query->getNextResult(ref)) + list.push_back(ref); + + if (sorted) + list.sort(iListableServiceCompare(this)); + + return 0; +} + +// The first argument of this function is a format string to specify the order and +// the content of the returned list +// useable format options are +// R = Service Reference (as swig object .. this is very slow) +// S = Service Reference (as python string object .. same as ref.toString()) +// C = Service Reference (as python string object .. same as ref.toCompareString()) +// N = Service Name (as python string object) +// n = Short Service Name (short name brakets used) (as python string object) +// when exactly one return value per service is selected in the format string, +// then each value is directly a list entry +// when more than one value is returned per service, then the list is a list of +// python tuples +// unknown format string chars are returned as python None values ! +PyObject *eDVBServiceList::getContent(const char* format, bool sorted) +{ + ePyObject ret; + std::list<eServiceReference> tmplist; + int retcount=1; + + if (!format || !(retcount=strlen(format))) + format = "R"; // just return service reference swig object ... + + if (!getContent(tmplist, sorted)) + { + int services=tmplist.size(); + ePtr<iStaticServiceInformation> sptr; + eServiceCenterPtr service_center; + + if (strchr(format, 'N') || strchr(format, 'n')) + eServiceCenter::getPrivInstance(service_center); + + ret = PyList_New(services); + std::list<eServiceReference>::iterator it(tmplist.begin()); + + for (int cnt=0; cnt < services; ++cnt) + { + eServiceReference &ref=*it++; + ePyObject tuple = retcount > 1 ? PyTuple_New(retcount) : ePyObject(); + for (int i=0; i < retcount; ++i) + { + ePyObject tmp; + switch(format[i]) + { + case 'R': // service reference (swig)object + tmp = NEW_eServiceReference(ref); + break; + case 'C': // service reference compare string + tmp = PyString_FromString(ref.toCompareString().c_str()); + break; + case 'S': // service reference string + tmp = PyString_FromString(ref.toString().c_str()); + break; + case 'N': // service name + if (service_center) + { + service_center->info(ref, sptr); + if (sptr) + { + std::string name; + sptr->getName(ref, name); + + // filter short name brakets + size_t pos; + while((pos = name.find("\xc2\x86")) != std::string::npos) + name.erase(pos,2); + while((pos = name.find("\xc2\x87")) != std::string::npos) + name.erase(pos,2); + + if (name.length()) + tmp = PyString_FromString(name.c_str()); + } + } + if (!tmp) + tmp = PyString_FromString("<n/a>"); + break; + case 'n': // short service name + if (service_center) + { + service_center->info(ref, sptr); + if (sptr) + { + std::string name; + sptr->getName(ref, name); + name = buildShortName(name); + if (name.length()) + tmp = PyString_FromString(name.c_str()); + } + } + if (!tmp) + tmp = PyString_FromString("<n/a>"); + break; + default: + if (tuple) + { + tmp = Py_None; + Py_INCREF(Py_None); + } + break; + } + if (tmp) + { + if (tuple) + PyTuple_SET_ITEM(tuple, i, tmp); + else + PyList_SET_ITEM(ret, cnt, tmp); + } + } + if (tuple) + PyList_SET_ITEM(ret, cnt, tuple); + } + } + return ret ? (PyObject*)ret : (PyObject*)PyList_New(0); +} + +RESULT eDVBServiceList::getNext(eServiceReference &ref) +{ + if (!m_query) + return -1; + + return m_query->getNextResult((eServiceReferenceDVB&)ref); +} + +RESULT eDVBServiceList::startEdit(ePtr<iMutableServiceList> &res) +{ + if (m_parent.flags & eServiceReference::canDescent) // bouquet + { + ePtr<iDVBChannelList> db; + ePtr<eDVBResourceManager> resm; + + if (eDVBResourceManager::getInstance(resm) || resm->getChannelList(db)) + return -1; + + if (db->getBouquet(m_parent, m_bouquet) != 0) + return -1; + + res = this; + + return 0; + } + res = 0; + return -1; +} + +RESULT eDVBServiceList::addService(eServiceReference &ref, eServiceReference before) +{ + if (!m_bouquet) + return -1; + return m_bouquet->addService(ref, before); +} + +RESULT eDVBServiceList::removeService(eServiceReference &ref) +{ + if (!m_bouquet) + return -1; + return m_bouquet->removeService(ref); +} + +RESULT eDVBServiceList::moveService(eServiceReference &ref, int pos) +{ + if (!m_bouquet) + return -1; + return m_bouquet->moveService(ref, pos); +} + +RESULT eDVBServiceList::flushChanges() +{ + if (!m_bouquet) + return -1; + return m_bouquet->flushChanges(); +} + +RESULT eDVBServiceList::setListName(const std::string &name) +{ + if (!m_bouquet) + return -1; + return m_bouquet->setListName(name); +} + +RESULT eServiceFactoryDVB::play(const eServiceReference &ref, ePtr<iPlayableService> &ptr) +{ + ePtr<eDVBService> service; + int r = lookupService(service, ref); + if (r) + service = 0; + // check resources... + ptr = new eDVBServicePlay(ref, service); + return 0; +} + +RESULT eServiceFactoryDVB::record(const eServiceReference &ref, ePtr<iRecordableService> &ptr) +{ + bool isstream = ref.path.substr(0, 7) == "http://"; + ptr = new eDVBServiceRecord((eServiceReferenceDVB&)ref, isstream); + return 0; +} + +RESULT eServiceFactoryDVB::list(const eServiceReference &ref, ePtr<iListableService> &ptr) +{ + ePtr<eDVBServiceList> list = new eDVBServiceList(ref); + if (list->startQuery()) + { + ptr = 0; + return -1; + } + + ptr = list; + return 0; +} + +RESULT eServiceFactoryDVB::info(const eServiceReference &ref, ePtr<iStaticServiceInformation> &ptr) +{ + /* is a listable service? */ + if (ref.flags & eServiceReference::canDescent) // bouquet + { + if ( !ref.name.empty() ) // satellites or providers list + ptr = m_StaticServiceDVBInfo; + else // a dvb bouquet + ptr = m_StaticServiceDVBBouquetInfo; + } + else if (!ref.path.empty()) /* do we have a PVR service? */ + ptr = new eStaticServiceDVBPVRInformation(ref); + else // normal dvb service + { + ePtr<eDVBService> service; + if (lookupService(service, ref)) // no eDVBService avail for this reference ( Linkage Services... ) + ptr = m_StaticServiceDVBInfo; + else + /* eDVBService has the iStaticServiceInformation interface, so we pass it here. */ + ptr = service; + } + return 0; +} + +RESULT eServiceFactoryDVB::offlineOperations(const eServiceReference &ref, ePtr<iServiceOfflineOperations> &ptr) +{ + if (ref.path.empty()) + { + ptr = 0; + return -1; + } else + { + ptr = new eDVBPVRServiceOfflineOperations(ref); + return 0; + } +} + +RESULT eServiceFactoryDVB::lookupService(ePtr<eDVBService> &service, const eServiceReference &ref) +{ + if (!ref.path.empty()) // playback + { + eDVBMetaParser parser; + int ret=parser.parseFile(ref.path); + service = new eDVBService; + if (!ret) + eDVBDB::getInstance()->parseServiceData(service, parser.m_service_data); + } + else + { + // TODO: handle the listing itself + // if (ref.... == -1) .. return "... bouquets ..."; + // could be also done in another serviceFactory (with seperate ID) to seperate actual services and lists + // TODO: cache + ePtr<iDVBChannelList> db; + ePtr<eDVBResourceManager> res; + + int err; + if ((err = eDVBResourceManager::getInstance(res)) != 0) + { + eDebug("no resource manager"); + return err; + } + if ((err = res->getChannelList(db)) != 0) + { + eDebug("no channel list"); + return err; + } + + /* we are sure to have a ..DVB reference as the info() call was forwarded here according to it's ID. */ + if ((err = db->getService((eServiceReferenceDVB&)ref, service)) != 0) + { +// eDebug("getService failed!"); + return err; + } + } + + return 0; +} + +eDVBServicePlay::eDVBServicePlay(const eServiceReference &ref, eDVBService *service): + m_reference(ref), + m_dvb_service(service), + m_decoder_index(0), + m_have_video_pid(0), + m_tune_state(-1), + m_is_stream(ref.path.substr(0, 7) == "http://"), + m_is_pvr(!ref.path.empty() && !m_is_stream), + m_is_paused(0), + m_timeshift_enabled(0), + m_timeshift_active(0), + m_timeshift_changed(0), + m_save_timeshift(0), + m_timeshift_fd(-1), + m_skipmode(0), + m_fastforward(0), + m_slowmotion(0), + m_cuesheet_changed(0), + m_cutlist_enabled(1), + m_subtitle_widget(0), + m_subtitle_sync_timer(eTimer::create(eApp)), + m_nownext_timer(eTimer::create(eApp)) +{ + CONNECT(m_service_handler.serviceEvent, eDVBServicePlay::serviceEvent); + CONNECT(m_service_handler_timeshift.serviceEvent, eDVBServicePlay::serviceEventTimeshift); + CONNECT(m_event_handler.m_eit_changed, eDVBServicePlay::gotNewEvent); + CONNECT(m_subtitle_sync_timer->timeout, eDVBServicePlay::checkSubtitleTiming); + CONNECT(m_nownext_timer->timeout, eDVBServicePlay::updateEpgCacheNowNext); +} + +eDVBServicePlay::~eDVBServicePlay() +{ + if (m_is_pvr) + { + eDVBMetaParser meta; + int ret=meta.parseFile(m_reference.path); + if (!ret) + { + char tmp[255]; + meta.m_service_data=""; + sprintf(tmp, "f:%x", m_dvb_service->m_flags); + meta.m_service_data += tmp; + // cached pids + for (int x=0; x < eDVBService::cacheMax; ++x) + { + int entry = m_dvb_service->getCacheEntry((eDVBService::cacheID)x); + if (entry != -1) + { + sprintf(tmp, ",c:%02d%04x", x, entry); + meta.m_service_data += tmp; + } + } + meta.updateMeta(m_reference.path); + } + } + if (m_subtitle_widget) m_subtitle_widget->destroy(); +} + +void eDVBServicePlay::gotNewEvent(int error) +{ + ePtr<eServiceEvent> event_now; + getEvent(event_now, 0); +#if 0 + // debug only + ePtr<eServiceEvent> event_next; + getEvent(event_next, 1); + + if (event_now) + eDebug("now running: %s (%d seconds :)", event_now->m_event_name.c_str(), event_now->m_duration); + if (event_next) + eDebug("next running: %s (%d seconds :)", event_next->m_event_name.c_str(), event_next->m_duration); +#endif + if (!error) + { + m_nownext_timer->stop(); + m_event((iPlayableService*)this, evUpdatedEventInfo); + } + else + { + /* our eit reader has stopped, we have to take care of our own event updates */ + updateEpgCacheNowNext(); + } + + if (m_timeshift_enabled) + { + if (!event_now) + return; + + pts_t now_pts, first_pts, fixup_pts; + if (m_record) + { + if (m_record->getCurrentPCR(now_pts)) + eDebug("getting current PTS failed!"); + else + { + if (m_record->getFirstPTS(first_pts)) + return; + if (now_pts < first_pts) + fixup_pts = now_pts + 0x200000000LL - first_pts; + else + fixup_pts = now_pts - first_pts; + m_cue_entries.insert(cueEntry(fixup_pts, 2)); + m_cuesheet_changed = 1; + eDebug("pts of eit change: %llx, fixup_pts: %llx, first_pts: %llx", now_pts, fixup_pts, first_pts); + m_event((iPlayableService*)this, evCuesheetChanged); + } + } + } +} + +void eDVBServicePlay::updateEpgCacheNowNext() +{ + bool update = false; + ePtr<eServiceEvent> next = 0; + ePtr<eServiceEvent> ptr = 0; + eServiceReferenceDVB &ref = (eServiceReferenceDVB&) m_reference; + if (eEPGCache::getInstance() && eEPGCache::getInstance()->lookupEventTime(ref, -1, ptr) >= 0) + { + ePtr<eServiceEvent> current = 0; + m_event_handler.getEvent(current, 0); + if (!current || !ptr || current->getEventId() != ptr->getEventId()) + { + update = true; + m_event_handler.inject(ptr, 0); + time_t next_time = ptr->getBeginTime() + ptr->getDuration(); + if (eEPGCache::getInstance()->lookupEventTime(ref, next_time, ptr) >= 0) + { + next = ptr; + m_event_handler.inject(ptr, 1); + } + } + } + + int refreshtime = 60; + if (!next) + { + m_event_handler.getEvent(next, 1); + } + if (next) + { + time_t now = eDVBLocalTimeHandler::getInstance()->nowTime(); + refreshtime = (int)(next->getBeginTime() - now) + 3; + if (refreshtime <= 0 || refreshtime > 60) refreshtime = 60; + } + m_nownext_timer->startLongTimer(refreshtime); + if (update) m_event((iPlayableService*)this, evUpdatedEventInfo); +} + +void eDVBServicePlay::serviceEvent(int event) +{ + m_tune_state = event; + + switch (event) + { + case eDVBServicePMTHandler::eventTuned: + { + /* fill now/next with info from the epg cache, will be replaced by EIT when it arrives */ + updateEpgCacheNowNext(); + + /* default behaviour is to start an eit reader, and wait for now/next info, unless this is disabled */ + if (eConfigManager::getConfigBoolValue("config.usage.show_eit_nownext", true)) + { + ePtr<iDVBDemux> m_demux; + if (!m_service_handler.getDataDemux(m_demux)) + { + eServiceReferenceDVB &ref = (eServiceReferenceDVB&) m_reference; + int sid = ref.getParentServiceID().get(); + if (!sid) + sid = ref.getServiceID().get(); + + if ( ref.getParentTransportStreamID().get() && + ref.getParentTransportStreamID() != ref.getTransportStreamID() ) + m_event_handler.startOther(m_demux, sid); + else + m_event_handler.start(m_demux, sid); + } + } + m_event((iPlayableService*)this, evTunedIn); + break; + } + case eDVBServicePMTHandler::eventNoResources: + case eDVBServicePMTHandler::eventNoPAT: + case eDVBServicePMTHandler::eventNoPATEntry: + case eDVBServicePMTHandler::eventNoPMT: + case eDVBServicePMTHandler::eventTuneFailed: + case eDVBServicePMTHandler::eventMisconfiguration: + { + eDebug("DVB service failed to tune - error %d", event); + m_event((iPlayableService*)this, evTuneFailed); + break; + } + case eDVBServicePMTHandler::eventNewProgramInfo: + { + eDebug("eventNewProgramInfo %d %d", m_timeshift_enabled, m_timeshift_active); + if (m_timeshift_enabled) + updateTimeshiftPids(); + if (!m_timeshift_active) + updateDecoder(); + if (m_first_program_info & 1 && m_is_pvr) + { + m_first_program_info &= ~1; + seekTo(0); + } + if (!m_timeshift_active) + m_event((iPlayableService*)this, evUpdatedInfo); + + m_event((iPlayableService*)this, evNewProgramInfo); + break; + } + case eDVBServicePMTHandler::eventPreStart: + loadCuesheet(); + break; + case eDVBServicePMTHandler::eventEOF: + m_event((iPlayableService*)this, evEOF); + break; + case eDVBServicePMTHandler::eventSOF: + m_event((iPlayableService*)this, evSOF); + break; + case eDVBServicePMTHandler::eventHBBTVInfo: + m_event((iPlayableService*)this, evHBBTVInfo); + break; + } +} + +void eDVBServicePlay::serviceEventTimeshift(int event) +{ + switch (event) + { + case eDVBServicePMTHandler::eventNewProgramInfo: + eDebug("eventNewProgramInfo TS"); + if (m_timeshift_active) + { + updateDecoder(); + if (m_first_program_info & 2) + { + if (m_slowmotion) + { + eDebug("re-apply slowmotion after timeshift file change"); + m_decoder->setSlowMotion(m_slowmotion); + } + if (m_fastforward) + { + eDebug("re-apply skip %d, ratio %d after timeshift file change", m_skipmode, m_fastforward); + if (m_skipmode) + m_cue->setSkipmode(m_skipmode * 90000); /* convert to 90000 per second */ + if (m_fastforward != 1) + m_decoder->setFastForward(m_fastforward); + else + m_decoder->setTrickmode(); + } + else + seekTo(0); + m_first_program_info &= ~2; + } + m_event((iPlayableService*)this, evUpdatedInfo); + } + break; + case eDVBServicePMTHandler::eventSOF: +#if 0 + if (!m_timeshift_file_next.empty()) + { + eDebug("timeshift SOF, switch to next file"); + m_decoder->pause(); + + m_first_program_info |= 2; + + eServiceReferenceDVB r = (eServiceReferenceDVB&)m_reference; + r.path = m_timeshift_file_next; + + /* free the timeshift service handler, we need the resources */ + m_service_handler_timeshift.free(); + resetTimeshift(1); + + if (m_skipmode < 0) + m_cue->seekTo(0, -1000); + ePtr<iTsSource> source = createTsSource(r); + m_service_handler_timeshift.tuneExt(r, 1, source, r.path.c_str(), m_cue, 0, m_dvb_service, false); /* use the decoder demux for everything */ + + m_event((iPlayableService*)this, evUser+1); + } + else +#endif + m_event((iPlayableService*)this, evSOF); + break; + case eDVBServicePMTHandler::eventEOF: + if ((!m_is_paused) && (m_skipmode >= 0)) + { + if (m_timeshift_file_next.empty()) + { + eDebug("timeshift EOF, so let's go live"); + switchToLive(); + } + else + { + eDebug("timeshift EOF, switch to next file"); + + m_first_program_info |= 2; + + eServiceReferenceDVB r = (eServiceReferenceDVB&)m_reference; + r.path = m_timeshift_file_next; + + /* free the timeshift service handler, we need the resources */ + m_service_handler_timeshift.free(); + resetTimeshift(1); + + ePtr<iTsSource> source = createTsSource(r); + m_service_handler_timeshift.tuneExt(r, 1, source, m_timeshift_file_next.c_str(), m_cue, 0, m_dvb_service, eDVBServicePMTHandler::timeshift_playback, false); /* use the decoder demux for everything */ + + m_event((iPlayableService*)this, evUser+1); + } + } + break; + } +} + +RESULT eDVBServicePlay::start() +{ + eServiceReferenceDVB service = (eServiceReferenceDVB&)m_reference; + bool scrambled = true; + int packetsize = 188; + eDVBServicePMTHandler::serviceType type = eDVBServicePMTHandler::livetv; + + /* in pvr mode, we only want to use one demux. in tv mode, we're using + two (one for decoding, one for data source), as we must be prepared + to start recording from the data demux. */ + if (m_is_pvr) + { + eDVBMetaParser meta; + if (!meta.parseFile(m_reference.path)) + { + service = meta.m_ref; + service.path = m_reference.path; + packetsize = meta.m_packet_size; + scrambled = meta.m_scrambled; + } + m_cue = new eCueSheet(); + type = eDVBServicePMTHandler::playback; + } + else + m_event(this, evStart); + + if (m_is_stream) + { + /* + * streams are considered to be descrambled by default; + * user can indicate a stream is scrambled, by using servicetype id + 0x100 + */ + scrambled = (m_reference.type == eServiceFactoryDVB::id + 0x100); + type = eDVBServicePMTHandler::streamclient; + } + + m_first_program_info = 1; + ePtr<iTsSource> source = createTsSource(service, packetsize); + m_service_handler.tuneExt(service, m_is_pvr, source, service.path.c_str(), m_cue, false, m_dvb_service, type, scrambled); + + if (m_is_pvr) + { + /* inject EIT if there is a stored one */ + std::string filename = service.path; + filename.erase(filename.length()-2, 2); + filename+="eit"; + ePtr<eServiceEvent> event = new eServiceEvent; + if (!event->parseFrom(filename, (service.getTransportStreamID().get()<<16)|service.getOriginalNetworkID().get())) + { + ePtr<eServiceEvent> empty; + m_event_handler.inject(event, 0); + m_event_handler.inject(empty, 1); + } + m_event(this, evStart); + } + return 0; +} + +RESULT eDVBServicePlay::stop() +{ + /* add bookmark for last play position */ + /* m_cutlist_enabled bit 2 is the "don't remember bit" */ + if (m_is_pvr && ((m_cutlist_enabled & 2) == 0)) + { + pts_t play_position, length; + if (!getPlayPosition(play_position)) + { + /* remove last position */ + for (std::multiset<struct cueEntry>::iterator i(m_cue_entries.begin()); i != m_cue_entries.end();) + { + if (i->what == 3) /* current play position */ + { + m_cue_entries.erase(i); + i = m_cue_entries.begin(); + continue; + } else + ++i; + } + + if (getLength(length)) + length = 0; + + if (length) + { + m_cue_entries.insert(cueEntry(play_position, 3)); /* last play position */ + } + m_cuesheet_changed = 1; + } + } + + if ((m_is_pvr || m_timeshift_enabled) && m_cuesheet_changed) + { + saveCuesheet(); + } + + stopTimeshift(); /* in case timeshift was enabled, remove buffer etc. */ + + m_service_handler_timeshift.free(); + m_service_handler.free(); + + m_nownext_timer->stop(); + m_event((iPlayableService*)this, evStopped); + return 0; +} + +RESULT eDVBServicePlay::setTarget(int target) +{ + m_decoder_index = target; + return 0; +} + +RESULT eDVBServicePlay::connectEvent(const Slot2<void,iPlayableService*,int> &event, ePtr<eConnection> &connection) +{ + connection = new eConnection((iPlayableService*)this, m_event.connect(event)); + return 0; +} + +RESULT eDVBServicePlay::pause(ePtr<iPauseableService> &ptr) +{ + /* note: we check for timeshift to be enabled, + not neccessary active. if you pause when timeshift + is not active, you should activate it when unpausing */ + if ((!m_is_pvr) && (!m_timeshift_enabled)) + { + ptr = 0; + return -1; + } + + ptr = this; + return 0; +} + +RESULT eDVBServicePlay::setSlowMotion(int ratio) +{ + int ret = 0; + ASSERT(ratio); /* The API changed: instead of calling setSlowMotion(0), call play! */ + eDebug("eDVBServicePlay::setSlowMotion(%d)", ratio); + setFastForward_internal(0); + if (m_decoder) + { + ret = m_decoder->setSlowMotion(ratio); + if (!ret) + m_slowmotion = ratio; + return ret; + } + else + return -1; +} + +RESULT eDVBServicePlay::setFastForward(int ratio) +{ + eDebug("eDVBServicePlay::setFastForward(%d)", ratio); + ASSERT(ratio); + return setFastForward_internal(ratio); +} + +RESULT eDVBServicePlay::setFastForward_internal(int ratio, bool final_seek) +{ + int skipmode, ffratio, ret = 0; + pts_t pos=0; + + if (ratio > 8) + { + skipmode = ratio; + ffratio = 1; + } else if (ratio > 0) + { + skipmode = 0; + ffratio = ratio; + } else if (!ratio) + { + skipmode = 0; + ffratio = 0; + } else // if (ratio < 0) + { + skipmode = ratio; + ffratio = 1; + } + + if (m_skipmode != skipmode) + { + eDebug("setting cue skipmode to %d", skipmode); + if (m_cue) + m_cue->setSkipmode(skipmode * 90000); /* convert to 90000 per second */ + } + + m_skipmode = skipmode; + + if (final_seek) + eDebug("trickplay stopped .. ret %d, pos %lld", getPlayPosition(pos), pos); + + m_fastforward = ffratio; + + if (!m_decoder) + return -1; + + if (ffratio == 0) + ; /* return m_decoder->play(); is done in caller*/ + else if (ffratio != 1) + ret = m_decoder->setFastForward(ffratio); + else + ret = m_decoder->setTrickmode(); + + if (pos) + eDebug("final seek after trickplay ret %d", seekTo(pos)); + + return ret; +} + +RESULT eDVBServicePlay::seek(ePtr<iSeekableService> &ptr) +{ + if (m_is_pvr || m_timeshift_enabled) + { + ptr = this; + return 0; + } + + ptr = 0; + return -1; +} + + /* TODO: when timeshift is enabled but not active, this doesn't work. */ +RESULT eDVBServicePlay::getLength(pts_t &len) +{ + ePtr<iDVBPVRChannel> pvr_channel; + + if ((m_timeshift_enabled ? m_service_handler_timeshift : m_service_handler).getPVRChannel(pvr_channel)) + return -1; + + return pvr_channel->getLength(len); +} + +RESULT eDVBServicePlay::pause() +{ + eDebug("eDVBServicePlay::pause"); + setFastForward_internal(0, m_slowmotion || m_fastforward > 1); + if (m_decoder) + { + m_slowmotion = 0; + m_is_paused = 1; + return m_decoder->pause(); + } else + return -1; +} + +RESULT eDVBServicePlay::unpause() +{ + eDebug("eDVBServicePlay::unpause"); + setFastForward_internal(0, m_slowmotion || m_fastforward > 1); + if (m_decoder) + { + m_slowmotion = 0; + m_is_paused = 0; + return m_decoder->play(); + } else + return -1; +} + +RESULT eDVBServicePlay::seekTo(pts_t to) +{ + eDebug("eDVBServicePlay::seekTo: jump %lld", to); + + if (!m_decode_demux) + return -1; + + ePtr<iDVBPVRChannel> pvr_channel; + + if ((m_timeshift_enabled ? m_service_handler_timeshift : m_service_handler).getPVRChannel(pvr_channel)) + return -1; + + if (!m_cue) + return -1; + + m_cue->seekTo(0, to); + m_dvb_subtitle_pages.clear(); + m_subtitle_pages.clear(); + + return 0; +} + +RESULT eDVBServicePlay::seekRelative(int direction, pts_t to) +{ + eDebug("eDVBServicePlay::seekRelative: jump %d, %lld", direction, to); + + if (!m_decode_demux) + return -1; + + ePtr<iDVBPVRChannel> pvr_channel; + + if ((m_timeshift_enabled ? m_service_handler_timeshift : m_service_handler).getPVRChannel(pvr_channel)) + return -1; + + int mode = 1; + + /* HACK until we have skip-AP api */ + if ((to > 0) && (to < 100)) + mode = 2; + + to *= direction; + + if (!m_cue) + return 0; + + m_cue->seekTo(mode, to); + m_dvb_subtitle_pages.clear(); + m_subtitle_pages.clear(); + return 0; +} + +RESULT eDVBServicePlay::getPlayPosition(pts_t &pos) +{ + ePtr<iDVBPVRChannel> pvr_channel; + + if (!m_decode_demux) + return -1; + + if ((m_timeshift_enabled ? m_service_handler_timeshift : m_service_handler).getPVRChannel(pvr_channel)) + return -1; + + int r = 0; + + /* if there is a decoder, use audio or video PTS */ + if (m_decoder) + { + r = m_decoder->getPTS(0, pos); + if (r) + return r; + } + + /* fixup */ + return pvr_channel->getCurrentPosition(m_decode_demux, pos, m_decoder); +} + +RESULT eDVBServicePlay::setTrickmode(int trick) +{ + /* currently unimplemented */ + return -1; +} + +RESULT eDVBServicePlay::isCurrentlySeekable() +{ + return (m_is_pvr || m_timeshift_active) ? 3 : 0; // fast forward/backward possible and seeking possible +} + +RESULT eDVBServicePlay::frontendInfo(ePtr<iFrontendInformation> &ptr) +{ + ptr = this; + return 0; +} + +RESULT eDVBServicePlay::info(ePtr<iServiceInformation> &ptr) +{ + ptr = this; + return 0; +} + +RESULT eDVBServicePlay::audioChannel(ePtr<iAudioChannelSelection> &ptr) +{ + ptr = this; + return 0; +} + +RESULT eDVBServicePlay::audioTracks(ePtr<iAudioTrackSelection> &ptr) +{ + ptr = this; + return 0; +} + +RESULT eDVBServicePlay::subServices(ePtr<iSubserviceList> &ptr) +{ + ptr = this; + return 0; +} + +RESULT eDVBServicePlay::timeshift(ePtr<iTimeshiftService> &ptr) +{ + ptr = 0; + if (m_timeshift_enabled || !m_is_pvr) + { + if (!m_timeshift_enabled) + { + /* query config path */ + std::string tspath = eConfigManager::getConfigValue("config.usage.timeshift_path"); + if(tspath == "") + { + eDebug("could not query ts path from config"); + return -4; + } + tspath.append("/"); + /* we need enough diskspace */ + struct statfs fs; + if (statfs(tspath.c_str(), &fs) < 0) + { + eDebug("statfs failed!"); + return -2; + } + + if (((off_t)fs.f_bavail) * ((off_t)fs.f_bsize) < 200*1024*1024LL) + { + eDebug("not enough diskspace for timeshift! (less than 200MB)"); + return -3; + } + } + ptr = this; + return 0; + } + return -1; +} + +RESULT eDVBServicePlay::cueSheet(ePtr<iCueSheet> &ptr) +{ + if (m_is_pvr || m_timeshift_enabled) + { + ptr = this; + return 0; + } + ptr = 0; + return -1; +} + +RESULT eDVBServicePlay::subtitle(ePtr<iSubtitleOutput> &ptr) +{ + ptr = this; + return 0; +} + +RESULT eDVBServicePlay::audioDelay(ePtr<iAudioDelay> &ptr) +{ + ptr = this; + return 0; +} + +RESULT eDVBServicePlay::rdsDecoder(ePtr<iRdsDecoder> &ptr) +{ + ptr = this; + return 0; +} + +RESULT eDVBServicePlay::streamed(ePtr<iStreamedService> &ptr) +{ + if (m_is_stream) + { + ptr = this; + return 0; + } + ptr = 0; + return -1; +} + +ePtr<iStreamBufferInfo> eDVBServicePlay::getBufferCharge() +{ + /** FIXME **/ + return 0; +} + +int eDVBServicePlay::setBufferSize(int size) +{ + /** FIXME **/ + return 0; +} + +RESULT eDVBServicePlay::getName(std::string &name) +{ + if (m_is_pvr) + { + ePtr<iStaticServiceInformation> i = new eStaticServiceDVBPVRInformation(m_reference); + return i->getName(m_reference, name); + } + else if (m_is_stream) + { + name = m_reference.name; + if (name.empty()) + { + name = m_reference.path; + } + if (name.empty()) + { + name = "(...)"; + } + } + else if (m_dvb_service) + { + m_dvb_service->getName(m_reference, name); + if (name.empty()) + name = "(...)"; + } + else if (!m_reference.name.empty()) + eStaticServiceDVBInformation().getName(m_reference, name); + else + name = "DVB service"; + return 0; +} + +RESULT eDVBServicePlay::getEvent(ePtr<eServiceEvent> &evt, int nownext) +{ + return m_event_handler.getEvent(evt, nownext); +} + +int eDVBServicePlay::getInfo(int w) +{ + eDVBServicePMTHandler::program program; + + if (w == sCAIDs || w == sCAIDPIDs) + return resIsPyObject; + + eDVBServicePMTHandler &h = m_timeshift_active ? m_service_handler_timeshift : m_service_handler; + + int no_program_info = 0; + + if (h.getProgramInfo(program)) + no_program_info = 1; + + switch (w) + { + case sVideoHeight: + if (m_decoder) + return m_decoder->getVideoHeight(); + break; + case sVideoWidth: + if (m_decoder) + return m_decoder->getVideoWidth(); + break; + case sFrameRate: + if (m_decoder) + return m_decoder->getVideoFrameRate(); + break; + case sProgressive: + if (m_decoder) + return m_decoder->getVideoProgressive(); + break; + case sAspect: + { + int aspect = -1; + if (m_decoder) + aspect = m_decoder->getVideoAspect(); + if (aspect == -1 && no_program_info) + break; + else if (aspect == -1 && !program.videoStreams.empty() && program.videoStreams[0].component_tag != -1) + { + ePtr<eServiceEvent> evt; + if (!m_event_handler.getEvent(evt, 0)) + { + ePtr<eComponentData> data; + if (!evt->getComponentData(data, program.videoStreams[0].component_tag)) + { + if ( data->getStreamContent() == 1 ) + { + switch(data->getComponentType()) + { + // SD + case 1: // 4:3 SD PAL + case 2: + case 3: // 16:9 SD PAL + case 4: // > 16:9 PAL + case 5: // 4:3 SD NTSC + case 6: + case 7: // 16:9 SD NTSC + case 8: // > 16:9 NTSC + + // HD + case 9: // 4:3 HD PAL + case 0xA: + case 0xB: // 16:9 HD PAL + case 0xC: // > 16:9 HD PAL + case 0xD: // 4:3 HD NTSC + case 0xE: + case 0xF: // 16:9 HD NTSC + case 0x10: // > 16:9 HD PAL + return data->getComponentType(); + } + } + } + } + } + else + return aspect; + break; + } + case sIsCrypted: if (no_program_info) return -1; return program.isCrypted(); + case sVideoPID: + if (m_dvb_service) + { + int vpid = m_dvb_service->getCacheEntry(eDVBService::cVPID); + if (vpid != -1) + return vpid; + } + if (no_program_info) return -1; if (program.videoStreams.empty()) return -1; return program.videoStreams[0].pid; + case sVideoType: if (no_program_info) return -1; if (program.videoStreams.empty()) return -1; return program.videoStreams[0].type; + case sAudioPID: + if (m_dvb_service) + { + int apid = m_dvb_service->getCacheEntry(eDVBService::cMPEGAPID); + if (apid != -1) + return apid; + apid = m_dvb_service->getCacheEntry(eDVBService::cAC3PID); + if (apid != -1) + return apid; + apid = m_dvb_service->getCacheEntry(eDVBService::cDDPPID); + if (apid != -1) + return apid; + apid = m_dvb_service->getCacheEntry(eDVBService::cAACHEAPID); + if (apid != -1) + return apid; + } + if (no_program_info) return -1; if (program.audioStreams.empty()) return -1; return program.audioStreams[0].pid; + case sPCRPID: + if (m_dvb_service) + { + int pcrpid = m_dvb_service->getCacheEntry(eDVBService::cPCRPID); + if (pcrpid != -1) + return pcrpid; + } + if (no_program_info) return -1; return program.pcrPid; + case sPMTPID: if (no_program_info) return -1; return program.pmtPid; + case sTXTPID: if (no_program_info) return -1; return program.textPid; + case sSID: return ((const eServiceReferenceDVB&)m_reference).getServiceID().get(); + case sONID: return ((const eServiceReferenceDVB&)m_reference).getOriginalNetworkID().get(); + case sTSID: return ((const eServiceReferenceDVB&)m_reference).getTransportStreamID().get(); + case sNamespace: return ((const eServiceReferenceDVB&)m_reference).getDVBNamespace().get(); + case sProvider: if (!m_dvb_service) return -1; return -2; + case sServiceref: return resIsString; + case sDVBState: return m_tune_state; + default: + break; + } + return -1; +} + +std::string eDVBServicePlay::getInfoString(int w) +{ + switch (w) + { + case sProvider: + if (!m_dvb_service) return ""; + return m_dvb_service->m_provider_name; + case sServiceref: + return m_reference.toString(); + case sHBBTVUrl: + { + std::string url; + eDVBServicePMTHandler &h = m_timeshift_active ? m_service_handler_timeshift : m_service_handler; + h.getHBBTVUrl(url); + return url; + } + case sLiveStreamDemuxId: + { + eDVBServicePMTHandler &h = m_timeshift_active ? m_service_handler_timeshift : m_service_handler; + std::string demux; + demux += h.getDemuxID() + '0'; + return demux; + } + default: + break; + } + return iServiceInformation::getInfoString(w); +} + +ePtr<iDVBTransponderData> eDVBServicePlay::getTransponderData() +{ + return eStaticServiceDVBInformation().getTransponderData(m_reference); +} + +void eDVBServicePlay::getAITApplications(std::map<int, std::string> &aitlist) +{ + return m_service_handler.getAITApplications(aitlist); +} + +void eDVBServicePlay::getCaIds(std::vector<int> &caids, std::vector<int> &ecmpids) +{ + m_service_handler.getCaIds(caids, ecmpids); +} + +int eDVBServicePlay::getNumberOfTracks() +{ + eDVBServicePMTHandler::program program; + eDVBServicePMTHandler &h = m_timeshift_active ? m_service_handler_timeshift : m_service_handler; + if (h.getProgramInfo(program)) + return 0; + return program.audioStreams.size(); +} + +int eDVBServicePlay::getCurrentTrack() +{ + eDVBServicePMTHandler::program program; + eDVBServicePMTHandler &h = m_timeshift_active ? m_service_handler_timeshift : m_service_handler; + if (h.getProgramInfo(program)) + return 0; + + int max = program.audioStreams.size(); + int i; + + for (i = 0; i < max; ++i) + if (program.audioStreams[i].pid == m_current_audio_pid) + return i; + + return 0; +} + +RESULT eDVBServicePlay::selectTrack(unsigned int i) +{ + int ret = selectAudioStream(i); + + if (m_decoder->set()) + return -5; + + return ret; +} + +RESULT eDVBServicePlay::getTrackInfo(struct iAudioTrackInfo &info, unsigned int i) +{ + eDVBServicePMTHandler::program program; + eDVBServicePMTHandler &h = m_timeshift_active ? m_service_handler_timeshift : m_service_handler; + + if (h.getProgramInfo(program)) + return -1; + + if (i >= program.audioStreams.size()) + return -2; + + info.m_pid = program.audioStreams[i].pid; + + if (program.audioStreams[i].type == eDVBServicePMTHandler::audioStream::atMPEG) + info.m_description = "MPEG"; + else if (program.audioStreams[i].type == eDVBServicePMTHandler::audioStream::atAC3) + info.m_description = "AC3"; + else if (program.audioStreams[i].type == eDVBServicePMTHandler::audioStream::atDDP) + info.m_description = "AC3+"; + else if (program.audioStreams[i].type == eDVBServicePMTHandler::audioStream::atAAC) + info.m_description = "AAC"; + else if (program.audioStreams[i].type == eDVBServicePMTHandler::audioStream::atAACHE) + info.m_description = "AAC-HE"; + else if (program.audioStreams[i].type == eDVBServicePMTHandler::audioStream::atDTS) + info.m_description = "DTS"; + else if (program.audioStreams[i].type == eDVBServicePMTHandler::audioStream::atDTSHD) + info.m_description = "DTS-HD"; + else + info.m_description = "???"; + + if (program.audioStreams[i].component_tag != -1) + { + ePtr<eServiceEvent> evt; + if (!m_event_handler.getEvent(evt, 0)) + { + ePtr<eComponentData> data; + if (!evt->getComponentData(data, program.audioStreams[i].component_tag)) + info.m_language = data->getText(); + } + } + + if (info.m_language.empty()) + info.m_language = program.audioStreams[i].language_code; + + return 0; +} + +int eDVBServicePlay::selectAudioStream(int i) +{ + eDVBServicePMTHandler::program program; + eDVBServicePMTHandler &h = m_timeshift_active ? m_service_handler_timeshift : m_service_handler; + pts_t position = -1; + + if (h.getProgramInfo(program)) + return -1; + + if ((i != -1) && ((unsigned int)i >= program.audioStreams.size())) + return -2; + + if (!m_decoder) + return -3; + + int stream = i; + if (stream == -1) + stream = program.defaultAudioStream; + + int apid = -1, apidtype = -1; + + if (((unsigned int)stream) < program.audioStreams.size()) + { + apid = program.audioStreams[stream].pid; + apidtype = program.audioStreams[stream].type; + } + + if (i != -1 && apid != m_current_audio_pid && (m_is_pvr || m_timeshift_active)) + eDebug("getPlayPosition ret %d, pos %lld in selectAudioStream", getPlayPosition(position), position); + + m_current_audio_pid = apid; + + if (m_decoder->setAudioPID(apid, apidtype)) + { + eDebug("set audio pid failed"); + return -4; + } + + if (position != -1) + eDebug("seekTo ret %d", seekTo(position)); + + int rdsPid = apid; + + /* if we are not in PVR mode, timeshift is not active and we are not in pip mode, check if we need to enable the rds reader */ + if (!(m_is_pvr || m_timeshift_active || m_decoder_index || m_have_video_pid)) + { + int different_pid = program.videoStreams.empty() && program.audioStreams.size() == 1 && program.audioStreams[stream].rdsPid != -1; + if (different_pid) + rdsPid = program.audioStreams[stream].rdsPid; + if (!m_rds_decoder || m_rds_decoder->getPid() != rdsPid) + { + m_rds_decoder = 0; + ePtr<iDVBDemux> data_demux; + if (!h.getDataDemux(data_demux)) + { + m_rds_decoder = new eDVBRdsDecoder(data_demux, different_pid); + m_rds_decoder->connectEvent(slot(*this, &eDVBServicePlay::rdsDecoderEvent), m_rds_decoder_event_connection); + m_rds_decoder->start(rdsPid); + } + } + } + + /* store new pid as default only when: + a.) we have an entry in the service db for the current service, + b.) we are not playing back something, + c.) we are not selecting the default entry. (we wouldn't change + anything in the best case, or destroy the default setting in + case the real default is not yet available.) + d.) we have only one audiostream (overwrite the cache to make sure + the cache contains the correct audio pid and type) + */ + if (m_dvb_service && ((i != -1) || (program.audioStreams.size() == 1) + || ((m_dvb_service->getCacheEntry(eDVBService::cMPEGAPID) == -1) + && (m_dvb_service->getCacheEntry(eDVBService::cAC3PID)== -1) + && (m_dvb_service->getCacheEntry(eDVBService::cDDPPID)== -1) + && (m_dvb_service->getCacheEntry(eDVBService::cAACHEAPID) == -1)))) + { + if (apidtype == eDVBAudio::aMPEG) + { + m_dvb_service->setCacheEntry(eDVBService::cMPEGAPID, apid); + m_dvb_service->setCacheEntry(eDVBService::cAC3PID, -1); + m_dvb_service->setCacheEntry(eDVBService::cDDPPID, -1); + m_dvb_service->setCacheEntry(eDVBService::cAACHEAPID, -1); + } + else if (apidtype == eDVBAudio::aAC3) + { + m_dvb_service->setCacheEntry(eDVBService::cMPEGAPID, -1); + m_dvb_service->setCacheEntry(eDVBService::cAC3PID, apid); + m_dvb_service->setCacheEntry(eDVBService::cDDPPID, -1); + m_dvb_service->setCacheEntry(eDVBService::cAACHEAPID, -1); + } + else if (apidtype == eDVBAudio::aDDP) + { + m_dvb_service->setCacheEntry(eDVBService::cMPEGAPID, -1); + m_dvb_service->setCacheEntry(eDVBService::cAC3PID, -1); + m_dvb_service->setCacheEntry(eDVBService::cDDPPID, apid); + m_dvb_service->setCacheEntry(eDVBService::cAACHEAPID, -1); + } + else if (apidtype == eDVBAudio::aAACHE) + { + m_dvb_service->setCacheEntry(eDVBService::cMPEGAPID, -1); + m_dvb_service->setCacheEntry(eDVBService::cAC3PID, -1); + m_dvb_service->setCacheEntry(eDVBService::cDDPPID, -1); + m_dvb_service->setCacheEntry(eDVBService::cAACHEAPID, apid); + } + else + { + m_dvb_service->setCacheEntry(eDVBService::cMPEGAPID, -1); + m_dvb_service->setCacheEntry(eDVBService::cAC3PID, -1); + m_dvb_service->setCacheEntry(eDVBService::cDDPPID, -1); + m_dvb_service->setCacheEntry(eDVBService::cAACHEAPID, -1); + } + } + + h.resetCachedProgram(); + + return 0; +} + +int eDVBServicePlay::getCurrentChannel() +{ + return m_decoder ? m_decoder->getAudioChannel() : STEREO; +} + +RESULT eDVBServicePlay::selectChannel(int i) +{ + if (i < LEFT || i > RIGHT || i == STEREO) + i = -1; // Stereo + if (m_dvb_service) + m_dvb_service->setCacheEntry(eDVBService::cACHANNEL, i); + if (m_decoder) + m_decoder->setAudioChannel(i); + return 0; +} + +std::string eDVBServicePlay::getText(int x) +{ + if (m_rds_decoder) + switch(x) + { + case RadioText: + return convertLatin1UTF8(m_rds_decoder->getRadioText()); + case RtpText: + return convertLatin1UTF8(m_rds_decoder->getRtpText()); + } + return ""; +} + +void eDVBServicePlay::rdsDecoderEvent(int what) +{ + switch(what) + { + case eDVBRdsDecoder::RadioTextChanged: + m_event((iPlayableService*)this, evUpdatedRadioText); + break; + case eDVBRdsDecoder::RtpTextChanged: + m_event((iPlayableService*)this, evUpdatedRtpText); + break; + case eDVBRdsDecoder::RassInteractivePicMaskChanged: + m_event((iPlayableService*)this, evUpdatedRassInteractivePicMask); + break; + case eDVBRdsDecoder::RecvRassSlidePic: + m_event((iPlayableService*)this, evUpdatedRassSlidePic); + break; + } +} + +void eDVBServicePlay::showRassSlidePicture() +{ + if (m_rds_decoder) + { + if (m_decoder) + { + std::string rass_slide_pic = m_rds_decoder->getRassSlideshowPicture(); + if (rass_slide_pic.length()) + m_decoder->showSinglePic(rass_slide_pic.c_str()); + else + eDebug("empty filename for rass slide picture received!!"); + } + else + eDebug("no MPEG Decoder to show iframes avail"); + } + else + eDebug("showRassSlidePicture called.. but not decoder"); +} + +void eDVBServicePlay::showRassInteractivePic(int page, int subpage) +{ + if (m_rds_decoder) + { + if (m_decoder) + { + std::string rass_interactive_pic = m_rds_decoder->getRassPicture(page, subpage); + if (rass_interactive_pic.length()) + m_decoder->showSinglePic(rass_interactive_pic.c_str()); + else + eDebug("empty filename for rass interactive picture %d/%d received!!", page, subpage); + } + else + eDebug("no MPEG Decoder to show iframes avail"); + } + else + eDebug("showRassInteractivePic called.. but not decoder"); +} + +ePyObject eDVBServicePlay::getRassInteractiveMask() +{ + if (m_rds_decoder) + return m_rds_decoder->getRassPictureMask(); + Py_RETURN_NONE; +} + +int eDVBServiceBase::getFrontendInfo(int w) +{ + eUsePtr<iDVBChannel> channel; + if(m_service_handler.getChannel(channel)) + return 0; + ePtr<iDVBFrontend> fe; + if(channel->getFrontend(fe)) + return 0; + return fe->readFrontendData(w); +} + +ePtr<iDVBFrontendData> eDVBServiceBase::getFrontendData() +{ + ePtr<iDVBFrontendData> ret; + eUsePtr<iDVBChannel> channel; + if(!m_service_handler.getChannel(channel)) + { + ePtr<iDVBFrontend> fe; + if(!channel->getFrontend(fe)) + fe->getFrontendData(ret); + } + return ret; +} + +ePtr<iDVBFrontendStatus> eDVBServiceBase::getFrontendStatus() +{ + ePtr<iDVBFrontendStatus> ret; + eUsePtr<iDVBChannel> channel; + if(!m_service_handler.getChannel(channel)) + { + ePtr<iDVBFrontend> fe; + if(!channel->getFrontend(fe)) + fe->getFrontendStatus(ret); + } + return ret; +} + +ePtr<iDVBTransponderData> eDVBServiceBase::getTransponderData(bool original) +{ + ePtr<iDVBTransponderData> ret; + eUsePtr<iDVBChannel> channel; + if(!m_service_handler.getChannel(channel)) + { + ePtr<iDVBFrontend> fe; + if(!channel->getFrontend(fe)) + fe->getTransponderData(ret, original); + } + return ret; +} + +int eDVBServicePlay::getNumberOfSubservices() +{ + ePtr<eServiceEvent> evt; + if (!m_event_handler.getEvent(evt, 0)) + return evt->getNumOfLinkageServices(); + return 0; +} + +RESULT eDVBServicePlay::getSubservice(eServiceReference &sub, unsigned int n) +{ + ePtr<eServiceEvent> evt; + if (!m_event_handler.getEvent(evt, 0)) + { + if (!evt->getLinkageService(sub, m_reference, n)) + return 0; + } + sub.type=eServiceReference::idInvalid; + return -1; +} + +RESULT eDVBServicePlay::startTimeshift() +{ + ePtr<iDVBDemux> demux; + + eDebug("Start timeshift!"); + + if (m_timeshift_enabled) + return -1; + + /* start recording with the data demux. */ + if (m_service_handler.getDataDemux(demux)) + return -2; + + demux->createTSRecorder(m_record); + if (!m_record) + return -3; + + std::string tspath = eConfigManager::getConfigValue("config.usage.timeshift_path"); + if (tspath == "") + { + eDebug("could not query ts path"); + return -5; + } + if (tspath.empty()) + { + eDebug("TS path is empty"); + return -5; + } + if (tspath[tspath.length()-1] != '/') + tspath.append("/"); + tspath.append("timeshift.XXXXXX"); + char* templ = new char[tspath.length() + 1]; + strcpy(templ, tspath.c_str()); + m_timeshift_fd = mkstemp(templ); + m_timeshift_file = std::string(templ); + eDebug("recording to %s", templ); + delete [] templ; + + if (m_timeshift_fd < 0) + { + m_record = 0; + return -4; + } + + m_record->setTargetFD(m_timeshift_fd); + m_record->setTargetFilename(m_timeshift_file); + m_record->enableAccessPoints(false); // no need for AP information during shift + m_timeshift_enabled = 1; + + updateTimeshiftPids(); + m_record->start(); + + return 0; +} + +RESULT eDVBServicePlay::stopTimeshift(bool swToLive) +{ + if (!m_timeshift_enabled) + return -1; + + if (swToLive) + switchToLive(); + + m_timeshift_enabled = 0; + + m_record->stop(); + m_record = 0; + + if (m_timeshift_fd >= 0) + { + close(m_timeshift_fd); + m_timeshift_fd = -1; + } + + if (!m_save_timeshift) + { + eDebug("remove timeshift files"); + eBackgroundFileEraser::getInstance()->erase(m_timeshift_file); + eBackgroundFileEraser::getInstance()->erase(m_timeshift_file + ".sc"); + eBackgroundFileEraser::getInstance()->erase(m_timeshift_file + ".cuts"); + } + else + { + eDebug("timeshift files not deleted"); + m_save_timeshift = 0; + } + return 0; +} + +int eDVBServicePlay::isTimeshiftActive() +{ + return m_timeshift_enabled && m_timeshift_active; +} + +int eDVBServicePlay::isTimeshiftEnabled() +{ + return m_timeshift_enabled; +} + +RESULT eDVBServicePlay::saveTimeshiftFile() +{ + if (!m_timeshift_enabled) + return -1; + + m_save_timeshift = 1; + + return 0; +} + +RESULT eDVBServicePlay::activateTimeshift() +{ + if (!m_timeshift_enabled) + return -1; + + if (!m_timeshift_active) + { + switchToTimeshift(); + return 0; + } + + return -2; +} + +std::string eDVBServicePlay::getTimeshiftFilename() +{ + if (m_timeshift_enabled) + return m_timeshift_file; + else + return ""; +} + +PyObject *eDVBServicePlay::getCutList() +{ + ePyObject list = PyList_New(0); + + for (std::multiset<struct cueEntry>::iterator i(m_cue_entries.begin()); i != m_cue_entries.end(); ++i) + { + ePyObject tuple = PyTuple_New(2); + PyTuple_SET_ITEM(tuple, 0, PyLong_FromLongLong(i->where)); + PyTuple_SET_ITEM(tuple, 1, PyInt_FromLong(i->what)); + PyList_Append(list, tuple); + Py_DECREF(tuple); + } + + return list; +} + +void eDVBServicePlay::setCutList(ePyObject list) +{ + if (!PyList_Check(list)) + return; + int size = PyList_Size(list); + int i; + + m_cue_entries.clear(); + + for (i=0; i<size; ++i) + { + ePyObject tuple = PyList_GET_ITEM(list, i); + if (!PyTuple_Check(tuple)) + { + eDebug("non-tuple in cutlist"); + continue; + } + if (PyTuple_Size(tuple) != 2) + { + eDebug("cutlist entries need to be a 2-tuple"); + continue; + } + ePyObject ppts = PyTuple_GET_ITEM(tuple, 0), ptype = PyTuple_GET_ITEM(tuple, 1); + if (!(PyLong_Check(ppts) && PyInt_Check(ptype))) + { + eDebug("cutlist entries need to be (pts, type)-tuples (%d %d)", PyLong_Check(ppts), PyInt_Check(ptype)); + continue; + } + pts_t pts = PyLong_AsLongLong(ppts); + int type = PyInt_AsLong(ptype); + m_cue_entries.insert(cueEntry(pts, type)); + eDebug("adding %08llx, %d", pts, type); + } + m_cuesheet_changed = 1; + + cutlistToCuesheet(); + m_event((iPlayableService*)this, evCuesheetChanged); +} + +void eDVBServicePlay::setCutListEnable(int enable) +{ + m_cutlist_enabled = enable; + cutlistToCuesheet(); +} + +void eDVBServicePlay::updateTimeshiftPids() +{ + if (!m_record) + return; + + eDVBServicePMTHandler::program program; + eDVBServicePMTHandler &h = m_timeshift_active ? m_service_handler_timeshift : m_service_handler; + + if (h.getProgramInfo(program)) + return; + else + { + int timing_pid = -1; + int timing_stream_type = -1; + iDVBTSRecorder::timing_pid_type timing_pid_type = iDVBTSRecorder::none; + std::set<int> pids_to_record; + pids_to_record.insert(0); // PAT + if (program.pmtPid != -1) + pids_to_record.insert(program.pmtPid); // PMT + + if (program.textPid != -1) + pids_to_record.insert(program.textPid); // Videotext + + for (std::vector<eDVBServicePMTHandler::videoStream>::const_iterator + i(program.videoStreams.begin()); + i != program.videoStreams.end(); ++i) + { + if (timing_pid == -1) + { + timing_pid = i->pid; + timing_stream_type = i->type; + timing_pid_type = iDVBTSRecorder::video_pid; + } + pids_to_record.insert(i->pid); + } + + for (std::vector<eDVBServicePMTHandler::audioStream>::const_iterator + i(program.audioStreams.begin()); + i != program.audioStreams.end(); ++i) + { + if (timing_pid == -1) + { + timing_pid = i->pid; + timing_stream_type = i->type; + timing_pid_type = iDVBTSRecorder::audio_pid; + } + pids_to_record.insert(i->pid); + } + + for (std::vector<eDVBServicePMTHandler::subtitleStream>::const_iterator + i(program.subtitleStreams.begin()); + i != program.subtitleStreams.end(); ++i) + pids_to_record.insert(i->pid); + + std::set<int> new_pids, obsolete_pids; + + std::set_difference(pids_to_record.begin(), pids_to_record.end(), + m_pids_active.begin(), m_pids_active.end(), + std::inserter(new_pids, new_pids.begin())); + + std::set_difference( + m_pids_active.begin(), m_pids_active.end(), + pids_to_record.begin(), pids_to_record.end(), + std::inserter(new_pids, new_pids.begin()) + ); + + for (std::set<int>::iterator i(new_pids.begin()); i != new_pids.end(); ++i) + m_record->addPID(*i); + + for (std::set<int>::iterator i(obsolete_pids.begin()); i != obsolete_pids.end(); ++i) + m_record->removePID(*i); + + if (timing_pid != -1) + m_record->setTimingPID(timing_pid, timing_pid_type, timing_stream_type); + } +} + +RESULT eDVBServicePlay::setNextPlaybackFile(const char *f) +{ + m_timeshift_file_next = f; + return 0; +} + +void eDVBServicePlay::switchToLive() +{ + if (!m_timeshift_active) + return; + + eDebug("SwitchToLive"); + + resetTimeshift(0); + + m_is_paused = m_skipmode = m_fastforward = m_slowmotion = 0; /* not supported in live mode */ + + /* free the timeshift service handler, we need the resources */ + m_service_handler_timeshift.free(); + + updateDecoder(true); +} + +void eDVBServicePlay::resetTimeshift(int start) +{ + m_cue = 0; + m_decode_demux = 0; + m_decoder = 0; + m_teletext_parser = 0; + m_rds_decoder = 0; + m_subtitle_parser = 0; + m_new_subtitle_stream_connection = 0; + m_new_subtitle_page_connection = 0; + m_new_dvb_subtitle_page_connection = 0; + m_rds_decoder_event_connection = 0; + m_video_event_connection = 0; + m_timeshift_changed = 1; + m_timeshift_file_next.clear(); + + if (start) + { + m_cue = new eCueSheet(); + m_timeshift_active = 1; + } + else + m_timeshift_active = 0; +} + +ePtr<iTsSource> eDVBServicePlay::createTsSource(eServiceReferenceDVB &ref, int packetsize) +{ + /* + * NOTE: we cannot use our m_is_stream status, instead we check the reference again. + * It could be that createTsSource is called to start a timeshift on a stream, + * in which case the ref passed here no longer is a url, but a timeshift file instead. + * (but m_is_stream would still be set, because of the ref which was passed to our + * constructor) + */ + if (ref.path.substr(0, 7) == "http://") + { + eHttpStream *f = new eHttpStream(); + f->open(ref.path.c_str()); + return ePtr<iTsSource>(f); + } + else + { + eRawFile *f = new eRawFile(packetsize); + f->open(ref.path.c_str()); + return ePtr<iTsSource>(f); + } +} + +void eDVBServicePlay::switchToTimeshift() +{ + if (m_timeshift_active) + return; + + resetTimeshift(1); + + eServiceReferenceDVB r = (eServiceReferenceDVB&)m_reference; + r.path = m_timeshift_file; + + m_cue->seekTo(0, -1000); + + ePtr<iTsSource> source = createTsSource(r); + m_service_handler_timeshift.tuneExt(r, 1, source, m_timeshift_file.c_str(), m_cue, 0, m_dvb_service, eDVBServicePMTHandler::timeshift_playback, false); /* use the decoder demux for everything */ + + eDebug("eDVBServicePlay::switchToTimeshift, in pause mode now."); + pause(); + updateDecoder(true); /* mainly to switch off PCR, and to set pause */ +} + +void eDVBServicePlay::updateDecoder(bool sendSeekableStateChanged) +{ + int vpid = -1, vpidtype = -1, pcrpid = -1, tpid = -1, achannel = -1, ac3_delay=-1, pcm_delay=-1; + bool mustPlay = false; + + eDVBServicePMTHandler &h = m_timeshift_active ? m_service_handler_timeshift : m_service_handler; + + eDVBServicePMTHandler::program program; + if (h.getProgramInfo(program)) + eDebug("getting program info failed."); + else + { + eDebugNoNewLine("have %zd video stream(s)", program.videoStreams.size()); + if (!program.videoStreams.empty()) + { + eDebugNoNewLine(" ("); + for (std::vector<eDVBServicePMTHandler::videoStream>::const_iterator + i(program.videoStreams.begin()); + i != program.videoStreams.end(); ++i) + { + if (vpid == -1) + { + vpid = i->pid; + vpidtype = i->type; + } + if (i != program.videoStreams.begin()) + eDebugNoNewLine(", "); + eDebugNoNewLine("%04x", i->pid); + } + eDebugNoNewLine(")"); + } + eDebugNoNewLine(", and %zd audio stream(s)", program.audioStreams.size()); + if (!program.audioStreams.empty()) + { + eDebugNoNewLine(" ("); + for (std::vector<eDVBServicePMTHandler::audioStream>::const_iterator + i(program.audioStreams.begin()); + i != program.audioStreams.end(); ++i) + { + if (i != program.audioStreams.begin()) + eDebugNoNewLine(", "); + eDebugNoNewLine("%04x", i->pid); + } + eDebugNoNewLine(")"); + } + eDebugNoNewLine(", and the pcr pid is %04x", program.pcrPid); + pcrpid = program.pcrPid; + eDebug(", and the text pid is %04x", program.textPid); + tpid = program.textPid; + } + + m_have_video_pid = 0; + + if (!m_decoder) + { + h.getDecodeDemux(m_decode_demux); + if (m_decode_demux) + { + m_decode_demux->getMPEGDecoder(m_decoder, m_decoder_index); + if (m_decoder) + m_decoder->connectVideoEvent(slot(*this, &eDVBServicePlay::video_event), m_video_event_connection); + } + if (m_cue) + m_cue->setDecodingDemux(m_decode_demux, m_decoder); + mustPlay = true; + } + + m_timeshift_changed = 0; + + if (m_decoder) + { + bool wasSeekable = m_decoder->getVideoProgressive() != -1; + if (m_dvb_service) + { + achannel = m_dvb_service->getCacheEntry(eDVBService::cACHANNEL); + ac3_delay = m_dvb_service->getCacheEntry(eDVBService::cAC3DELAY); + pcm_delay = m_dvb_service->getCacheEntry(eDVBService::cPCMDELAY); + } + else // subservice + { + eServiceReferenceDVB ref; + m_service_handler.getServiceReference(ref); + eServiceReferenceDVB parent = ref.getParentServiceReference(); + if (!parent) + parent = ref; + if (parent) + { + ePtr<eDVBResourceManager> res_mgr; + if (!eDVBResourceManager::getInstance(res_mgr)) + { + ePtr<iDVBChannelList> db; + if (!res_mgr->getChannelList(db)) + { + ePtr<eDVBService> origService; + if (!db->getService(parent, origService)) + { + ac3_delay = origService->getCacheEntry(eDVBService::cAC3DELAY); + pcm_delay = origService->getCacheEntry(eDVBService::cPCMDELAY); + } + } + } + } + } + + setAC3Delay(ac3_delay == -1 ? 0 : ac3_delay); + setPCMDelay(pcm_delay == -1 ? 0 : pcm_delay); + + m_decoder->setVideoPID(vpid, vpidtype); + m_have_video_pid = (vpid > 0 && vpid < 0x2000); + + selectAudioStream(); + + if (!(m_is_pvr || m_is_stream || m_timeshift_active)) + m_decoder->setSyncPCR(pcrpid); + else + m_decoder->setSyncPCR(-1); + + if (m_decoder_index == 0) + { + m_decoder->setTextPID(tpid); + } + + if (vpid > 0 && vpid < 0x2000) + ; + else + { + std::string value; + bool showRadioBackground = eConfigManager::getConfigBoolValue("config.misc.showradiopic", true); + std::string radio_pic; + if (showRadioBackground) + radio_pic = eConfigManager::getConfigValue("config.misc.radiopic"); + else + radio_pic = eConfigManager::getConfigValue("config.misc.blackradiopic"); + m_decoder->setRadioPic(radio_pic); + } + + if (mustPlay) + m_decoder->play(); + else + m_decoder->set(); + + m_decoder->setAudioChannel(achannel); + + if (mustPlay && m_decode_demux && m_decoder_index == 0) + { + m_teletext_parser = new eDVBTeletextParser(m_decode_demux); + m_teletext_parser->connectNewStream(slot(*this, &eDVBServicePlay::newSubtitleStream), m_new_subtitle_stream_connection); + m_teletext_parser->connectNewPage(slot(*this, &eDVBServicePlay::newSubtitlePage), m_new_subtitle_page_connection); + m_subtitle_parser = new eDVBSubtitleParser(m_decode_demux); + m_subtitle_parser->connectNewPage(slot(*this, &eDVBServicePlay::newDVBSubtitlePage), m_new_dvb_subtitle_page_connection); + if (m_timeshift_changed) + { + struct SubtitleTrack track; + if (getCachedSubtitle(track) >= 0) + { + if (track.type == 0) // dvb + m_subtitle_parser->start(track.pid, track.page_number, track.magazine_number); + else if (track.type == 1) // ttx + m_teletext_parser->setPageAndMagazine(track.page_number, track.magazine_number, track.language_code.c_str()); + } + } + m_teletext_parser->start(program.textPid); + } + + /* don't worry about non-existing services, nor pvr services */ + if (m_dvb_service) + { + /* (audio pid will be set in selectAudioTrack) */ + if (vpid >= 0) + { + m_dvb_service->setCacheEntry(eDVBService::cVPID, vpid); + m_dvb_service->setCacheEntry(eDVBService::cVTYPE, vpidtype == eDVBVideo::MPEG2 ? -1 : vpidtype); + } + if (pcrpid >= 0) m_dvb_service->setCacheEntry(eDVBService::cPCRPID, pcrpid); + if (tpid >= 0) m_dvb_service->setCacheEntry(eDVBService::cTPID, tpid); + } + if (!sendSeekableStateChanged && (m_decoder->getVideoProgressive() != -1) != wasSeekable) + sendSeekableStateChanged = true; + } + + if (sendSeekableStateChanged) + m_event((iPlayableService*)this, evSeekableStatusChanged); +} + +void eDVBServicePlay::loadCuesheet() +{ + std::string filename = m_reference.path + ".cuts"; + + m_cue_entries.clear(); + + FILE *f = fopen(filename.c_str(), "rb"); + + if (f) + { + while (1) + { + unsigned long long where; + unsigned int what; + + if (!fread(&where, sizeof(where), 1, f)) + break; + if (!fread(&what, sizeof(what), 1, f)) + break; + + where = be64toh(where); + what = ntohl(what); + + if (what > 3) + break; + + m_cue_entries.insert(cueEntry(where, what)); + } + fclose(f); + eDebug("cuts file has %zd entries", m_cue_entries.size()); + } else + eDebug("cutfile not found!"); + + m_cuesheet_changed = 0; + cutlistToCuesheet(); + m_event((iPlayableService*)this, evCuesheetChanged); +} + +void eDVBServicePlay::saveCuesheet() +{ + std::string filename = m_timeshift_enabled ? m_timeshift_file : m_reference.path; + + /* save cuesheet only when main file is accessible. */ + if (::access(filename.c_str(), R_OK) < 0) + return; + + filename.append(".cuts"); + + FILE *f = fopen(filename.c_str(), "wb"); + + if (f) + { + unsigned long long where; + int what; + + for (std::multiset<cueEntry>::iterator i(m_cue_entries.begin()); i != m_cue_entries.end(); ++i) + { + where = htobe64(i->where); + what = htonl(i->what); + fwrite(&where, sizeof(where), 1, f); + fwrite(&what, sizeof(what), 1, f); + + } + fclose(f); + } + + m_cuesheet_changed = 0; +} + +void eDVBServicePlay::cutlistToCuesheet() +{ + if (!m_cue) + { + eDebug("no cue sheet"); + return; + } + m_cue->clear(); + + if ((m_cutlist_enabled & 1) == 0) + { + m_cue->commitSpans(); + eDebug("cutlists were disabled"); + return; + } + + pts_t in = 0, out = 0, length = 0; + + getLength(length); + + std::multiset<cueEntry>::iterator i(m_cue_entries.begin()); + + int have_any_span = 0; + + while (1) + { + if (i == m_cue_entries.end()) + { + if (!have_any_span && !in) + break; + out = length; + } else { + if (i->what == 0) /* in */ + { + in = i++->where; + continue; + } else if (i->what == 1) /* out */ + out = i++->where; + else /* mark (2) or last play position (3) */ + { + i++; + continue; + } + } + + if (in < 0) + in = 0; + if (out < 0) + out = 0; + if (in > length) + in = length; + if (out > length) + out = length; + + if (in < out) + { + have_any_span = 1; + m_cue->addSourceSpan(in, out); + in = out = 0; + } + + in = length; + + if (i == m_cue_entries.end()) + break; + } + m_cue->commitSpans(); +} + +RESULT eDVBServicePlay::enableSubtitles(iSubtitleUser *user, SubtitleTrack &track) +{ + if (m_subtitle_widget) + disableSubtitles(); + + if (track.type == 1) // teletext subtitles + { + int page, magazine, pid; + std::string lang; + + if (!m_teletext_parser) + { + eDebug("enable teletext subtitles.. no parser !!!"); + return -1; + } + + pid = track.pid; + page = track.page_number; + magazine = track.magazine_number; + lang = track.language_code; + + m_subtitle_widget = user; + m_teletext_parser->setPageAndMagazine(page, magazine, lang.c_str()); + if (m_dvb_service) + { + int i, sub = 0; + for (i=0; i < m_teletext_parser->max_id; i++) + { + if (!memcmp(m_teletext_parser->my_country_codes[i], lang.c_str(), 3)) + { + sub = i; + break; + } + } + m_dvb_service->setCacheEntry(eDVBService::cSUBTITLE,((pid&0xFFFF)<<16)|((page&0xFF)<<8)|((sub&0x1F)<<3)|(magazine&0x7)); + } + } + else if (track.type == 0) + { + int pid = 0, composition_page_id = 0, ancillary_page_id = 0; + if (!m_subtitle_parser) + { + eDebug("enable dvb subtitles.. no parser !!!"); + return -1; + } + + pid = track.pid; + composition_page_id = track.page_number; + ancillary_page_id = track.magazine_number; + + m_subtitle_widget = user; + m_subtitle_parser->start(pid, composition_page_id, ancillary_page_id); + if (m_dvb_service) + m_dvb_service->setCacheEntry(eDVBService::cSUBTITLE, ((pid&0xFFFF)<<16)|((composition_page_id&0xFF)<<8)|(ancillary_page_id&0xFF)); + } + else + goto error_out; + return 0; +error_out: + eDebug("enableSubtitles needs a valid type:\n" + "for teletext subtitles (0, pid, teletext_page, teletext_magazine)\n" + "for dvb subtitles (1, pid, composition_page_id, ancillary_page_id)"); + return -1; +} + +RESULT eDVBServicePlay::disableSubtitles() +{ + if (m_subtitle_widget) m_subtitle_widget->destroy(); + m_subtitle_widget = 0; + if (m_subtitle_parser) + { + m_subtitle_parser->stop(); + m_dvb_subtitle_pages.clear(); + } + if (m_teletext_parser) + { + m_teletext_parser->setPageAndMagazine(-1, -1, "und"); + m_subtitle_pages.clear(); + } + if (m_dvb_service) + m_dvb_service->setCacheEntry(eDVBService::cSUBTITLE, 0); + return 0; +} + +RESULT eDVBServicePlay::getCachedSubtitle(struct SubtitleTrack &track) +{ + if (m_dvb_service) + { + eDVBServicePMTHandler::program program; + eDVBServicePMTHandler &h = m_timeshift_active ? m_service_handler_timeshift : m_service_handler; + if (!h.getProgramInfo(program)) + { + bool usecache = eConfigManager::getConfigBoolValue("config.autolanguage.subtitle_usecache"); + int stream=program.defaultSubtitleStream; + int tmp = m_dvb_service->getCacheEntry(eDVBService::cSUBTITLE); + + if (usecache || stream == -1) + { + if (tmp != -1 && tmp != 0) + { + unsigned int data = (unsigned int)tmp; + int pid = (data&0xFFFF0000)>>16; + if (program.textPid == pid) // teletext + track.type = 1; // type teletext + else + track.type = 0; // type dvb + track.pid = pid; // pid + track.page_number = (data >> 8) & 0xff; // composition_page / page + int k = (data >> 3) & 0x1f; + track.magazine_number = data & 0x7; // ancillary_page / magazine + track.language_code = m_teletext_parser->my_country_codes[k]; + return 0; + } + } + if (stream != -1 && (tmp != 0 || !usecache)) + { + if (program.subtitleStreams[stream].subtitling_type == 1) + { + track.type = 1; // type teletext + track.pid = program.subtitleStreams[stream].pid; + track.page_number = program.subtitleStreams[stream].teletext_page_number & 0xff; + track.magazine_number = program.subtitleStreams[stream].teletext_magazine_number & 0x07; + track.language_code = program.subtitleStreams[stream].language_code; + return 0; + } + else + { + track.type = 0; // type dvb + track.pid = program.subtitleStreams[stream].pid; + track.page_number = program.subtitleStreams[stream].composition_page_id; + track.magazine_number = program.subtitleStreams[stream].ancillary_page_id; + track.language_code = program.subtitleStreams[stream].language_code; + return 0; + } + } + } + } + return -1; +} + +RESULT eDVBServicePlay::getSubtitleList(std::vector<SubtitleTrack> &subtitlelist) +{ + if (!m_teletext_parser) + return -1; + + std::set<int> added_ttx_pages; + + std::set<eDVBServicePMTHandler::subtitleStream> &subs = + m_teletext_parser->m_found_subtitle_pages; + + eDVBServicePMTHandler &h = m_timeshift_active ? m_service_handler_timeshift : m_service_handler; + eDVBServicePMTHandler::program program; + if (h.getProgramInfo(program)) + eDebug("getting program info failed."); + else + { + for (std::vector<eDVBServicePMTHandler::subtitleStream>::iterator it(program.subtitleStreams.begin()); + it != program.subtitleStreams.end(); ++it) + { + struct SubtitleTrack track; + switch(it->subtitling_type) + { + case 0x01: // ebu teletext subtitles + { + int page_number = it->teletext_page_number & 0xFF; + int magazine_number = it->teletext_magazine_number & 7; + int hash = magazine_number << 8 | page_number; + if (added_ttx_pages.find(hash) == added_ttx_pages.end()) + { + track.type = 1; + track.pid = it->pid; + track.page_number = page_number; + track.magazine_number = magazine_number; + track.language_code = it->language_code; + subtitlelist.push_back(track); + added_ttx_pages.insert(hash); + } + break; + } + case 0x10 ... 0x13: + case 0x20 ... 0x23: // dvb subtitles + { + track.type = 0; + track.pid = it->pid; + track.page_number = it->composition_page_id; + track.magazine_number = it->ancillary_page_id; + track.language_code = it->language_code; + subtitlelist.push_back(track); + break; + } + } + } + } + + for (std::set<eDVBServicePMTHandler::subtitleStream>::iterator it(subs.begin()); + it != subs.end(); ++it) + { + int page_number = it->teletext_page_number & 0xFF; + int magazine_number = it->teletext_magazine_number & 7; + int hash = magazine_number << 8 | page_number; + if (added_ttx_pages.find(hash) == added_ttx_pages.end()) + { + struct SubtitleTrack track; + track.type = 1; + track.pid = it->pid; + track.page_number = page_number; + track.magazine_number = magazine_number; + track.language_code = "und"; + subtitlelist.push_back(track); + } + } + + return 0; +} + +void eDVBServicePlay::newSubtitleStream() +{ + m_event((iPlayableService*)this, evUpdatedInfo); +} + +void eDVBServicePlay::newSubtitlePage(const eDVBTeletextSubtitlePage &page) +{ + if (m_subtitle_widget) + { + int subtitledelay = 0; + pts_t pts; + m_decoder->getPTS(0, pts); + if (m_is_pvr || m_timeshift_enabled) + { + eDebug("Subtitle in recording/timeshift"); + subtitledelay = eConfigManager::getConfigIntValue("config.subtitles.subtitle_noPTSrecordingdelay", 315000); + } + else + { + /* check the setting for subtitle delay in live playback, either with pts, or without pts */ + subtitledelay = eConfigManager::getConfigIntValue("config.subtitles.subtitle_bad_timing_delay", 0); + } + + // eDebug("Subtitle get TTX have_pts=%d pvr=%d timeshift=%d page.pts=%lld pts=%lld delay=%d", page.m_have_pts, m_is_pvr, m_timeshift_enabled, page.m_pts, pts, subtitledelay); + eDVBTeletextSubtitlePage tmppage = page; + tmppage.m_have_pts = true; + + if (abs(tmppage.m_pts - pts) > 20*90000) + tmppage.m_pts = pts; // fix abnormal pts diffs + + tmppage.m_pts += subtitledelay; + m_subtitle_pages.push_back(tmppage); + + checkSubtitleTiming(); + } +} + +void eDVBServicePlay::checkSubtitleTiming() +{ + pts_t pos = 0; +// eDebug("checkSubtitleTiming"); + if (!m_subtitle_widget) + return; + if (m_subtitle_pages.empty() && m_dvb_subtitle_pages.empty()) + { + return; + } + if (m_decoder) + { + m_decoder->getPTS(0, pos); + } + + while (1) + { + enum { TELETEXT, DVB } type; + eDVBTeletextSubtitlePage page; + eDVBSubtitlePage dvb_page; + pts_t show_time; + if (!m_subtitle_pages.empty()) + { + page = m_subtitle_pages.front(); + type = TELETEXT; + show_time = page.m_pts; + } + else if (!m_dvb_subtitle_pages.empty()) + { + dvb_page = m_dvb_subtitle_pages.front(); + type = DVB; + show_time = dvb_page.m_show_time; + } + else + return; + + int diff = show_time - pos; +// eDebug("Subtitle show %d page.pts=%lld pts=%lld diff=%d", type, show_time, pos, diff); + + if (diff < 20*90 || diff > 1800000) + { + if (type == TELETEXT) + { + m_subtitle_widget->setPage(page); + m_subtitle_pages.pop_front(); + } + else + { + m_subtitle_widget->setPage(dvb_page); + m_dvb_subtitle_pages.pop_front(); + } + } else + { + m_subtitle_sync_timer->start(diff / 90, 1); + break; + } + } +} + +void eDVBServicePlay::newDVBSubtitlePage(const eDVBSubtitlePage &p) +{ + if (m_subtitle_widget) + { + pts_t pos = 0; + if (m_decoder) + m_decoder->getPTS(0, pos); + if ( abs(pos-p.m_show_time)>1800000 && (m_is_pvr || m_timeshift_enabled)) + { + eDebug("Subtitle without PTS and recording"); + int subtitledelay = eConfigManager::getConfigIntValue("config.subtitles.subtitle_noPTSrecordingdelay", 315000); + + eDVBSubtitlePage tmppage; + tmppage = p; + tmppage.m_show_time = pos + subtitledelay; + m_dvb_subtitle_pages.push_back(tmppage); + } + else + { + int subtitledelay = eConfigManager::getConfigIntValue("config.subtitles.subtitle_bad_timing_delay", 0); + if (subtitledelay != 0) + { + eDVBSubtitlePage tmppage; + tmppage = p; + tmppage.m_show_time += subtitledelay; + m_dvb_subtitle_pages.push_back(tmppage); + } + else + m_dvb_subtitle_pages.push_back(p); + } + checkSubtitleTiming(); + } +} + +int eDVBServicePlay::getAC3Delay() +{ + if (m_dvb_service) + return m_dvb_service->getCacheEntry(eDVBService::cAC3DELAY); + else if (m_decoder) + return m_decoder->getAC3Delay(); + else + return 0; +} + +int eDVBServicePlay::getPCMDelay() +{ + if (m_dvb_service) + return m_dvb_service->getCacheEntry(eDVBService::cPCMDELAY); + else if (m_decoder) + return m_decoder->getPCMDelay(); + else + return 0; +} + +void eDVBServicePlay::setAC3Delay(int delay) +{ + if (m_dvb_service) + m_dvb_service->setCacheEntry(eDVBService::cAC3DELAY, delay ? delay : -1); + if (m_decoder) + { + m_decoder->setAC3Delay(delay + eConfigManager::getConfigIntValue("config.av.generalAC3delay")); + } +} + +void eDVBServicePlay::setPCMDelay(int delay) +{ + if (m_dvb_service) + m_dvb_service->setCacheEntry(eDVBService::cPCMDELAY, delay ? delay : -1); + if (m_decoder) + { + m_decoder->setPCMDelay(delay + eConfigManager::getConfigIntValue("config.av.generalPCMdelay")); + } +} + +void eDVBServicePlay::video_event(struct iTSMPEGDecoder::videoEvent event) +{ + switch(event.type) { + case iTSMPEGDecoder::videoEvent::eventSizeChanged: + m_event((iPlayableService*)this, evVideoSizeChanged); + break; + case iTSMPEGDecoder::videoEvent::eventFrameRateChanged: + m_event((iPlayableService*)this, evVideoFramerateChanged); + break; + case iTSMPEGDecoder::videoEvent::eventProgressiveChanged: + m_event((iPlayableService*)this, evVideoProgressiveChanged); + break; + default: + break; + } +} + +RESULT eDVBServicePlay::stream(ePtr<iStreamableService> &ptr) +{ + ptr = this; + return 0; +} + +ePtr<iStreamData> eDVBServicePlay::getStreamingData() +{ + ePtr<iStreamData> retval; + eDVBServicePMTHandler::program program; + if (!m_service_handler.getProgramInfo(program)) + { + retval = new eDVBServicePMTHandler::eStreamData(program); + } + return retval; +} + + +DEFINE_REF(eDVBServicePlay) + +ePtr<iDVBTransponderData> eDVBService::getTransponderData(const eServiceReference &ref) +{ + return eStaticServiceDVBInformation().getTransponderData(ref); +} + +eAutoInitPtr<eServiceFactoryDVB> init_eServiceFactoryDVB(eAutoInitNumbers::service+1, "eServiceFactoryDVB"); diff --git a/lib/service/servicedvb.h b/lib/service/servicedvb.h new file mode 100644 index 0000000..641a251 --- /dev/null +++ b/lib/service/servicedvb.h @@ -0,0 +1,323 @@ +#ifndef __servicedvb_h +#define __servicedvb_h + +#include <lib/service/iservice.h> +#include <lib/dvb/idvb.h> + +#include <lib/dvb/pmt.h> +#include <lib/dvb/eit.h> +#include <lib/dvb/subtitle.h> +#include <lib/dvb/teletext.h> +#include <lib/dvb/radiotext.h> +#include <lib/base/filepush.h> + +class eStaticServiceDVBInformation; +class eStaticServiceDVBBouquetInformation; + +class eServiceFactoryDVB: public iServiceHandler +{ + DECLARE_REF(eServiceFactoryDVB); + ePtr<eStaticServiceDVBInformation> m_StaticServiceDVBInfo; + ePtr<eStaticServiceDVBBouquetInformation> m_StaticServiceDVBBouquetInfo; +public: + eServiceFactoryDVB(); + virtual ~eServiceFactoryDVB(); + enum { id = 0x1 }; + + // iServiceHandler + RESULT play(const eServiceReference &, ePtr<iPlayableService> &ptr); + RESULT record(const eServiceReference &, ePtr<iRecordableService> &ptr); + RESULT list(const eServiceReference &, ePtr<iListableService> &ptr); + RESULT info(const eServiceReference &, ePtr<iStaticServiceInformation> &ptr); + RESULT offlineOperations(const eServiceReference &, ePtr<iServiceOfflineOperations> &ptr); +private: + RESULT lookupService(ePtr<eDVBService> &ptr, const eServiceReference &ref); +}; + +class eBouquet; + +class eDVBServiceList: public iListableService, public iMutableServiceList +{ + DECLARE_REF(eDVBServiceList); +public: + virtual ~eDVBServiceList(); + PyObject *getContent(const char* formatstr, bool sorted=false); + RESULT getContent(std::list<eServiceReference> &list, bool sorted=false); + RESULT getNext(eServiceReference &ptr); + inline int compareLessEqual(const eServiceReference &a, const eServiceReference &b); + + RESULT startEdit(ePtr<iMutableServiceList> &); + RESULT flushChanges(); + RESULT addService(eServiceReference &ref, eServiceReference before); + RESULT removeService(eServiceReference &ref); + RESULT moveService(eServiceReference &ref, int pos); + RESULT setListName(const std::string &name); +private: + RESULT startQuery(); + eServiceReference m_parent; + friend class eServiceFactoryDVB; + eDVBServiceList(const eServiceReference &parent); + ePtr<iDVBChannelListQuery> m_query; + + /* for editing purposes. WARNING: lifetime issue! */ + eBouquet *m_bouquet; +}; + +inline int eDVBServiceList::compareLessEqual(const eServiceReference &a, const eServiceReference &b) +{ + return m_query->compareLessEqual((const eServiceReferenceDVB&)a, (const eServiceReferenceDVB&)b); +} + +class eDVBServiceBase: public iFrontendInformation +{ +protected: + eDVBServicePMTHandler m_service_handler; +public: + // iFrontendInformation + int getFrontendInfo(int w); + ePtr<iDVBFrontendData> getFrontendData(); + ePtr<iDVBFrontendStatus> getFrontendStatus(); + ePtr<iDVBTransponderData> getTransponderData(bool); +}; + +class eDVBServicePlay: public eDVBServiceBase, + public iPlayableService, public iPauseableService, + public iSeekableService, public Object, public iServiceInformation, + public iAudioTrackSelection, public iAudioChannelSelection, + public iSubserviceList, public iTimeshiftService, + public iCueSheet, public iSubtitleOutput, public iAudioDelay, + public iRdsDecoder, public iStreamableService, + public iStreamedService +{ + DECLARE_REF(eDVBServicePlay); +public: + virtual ~eDVBServicePlay(); + + // iPlayableService + RESULT connectEvent(const Slot2<void,iPlayableService*,int> &event, ePtr<eConnection> &connection); + RESULT start(); + RESULT stop(); + RESULT setTarget(int target); + + RESULT seek(ePtr<iSeekableService> &ptr); + RESULT pause(ePtr<iPauseableService> &ptr); + RESULT info(ePtr<iServiceInformation> &ptr); + RESULT audioChannel(ePtr<iAudioChannelSelection> &ptr); + RESULT audioTracks(ePtr<iAudioTrackSelection> &ptr); + RESULT frontendInfo(ePtr<iFrontendInformation> &ptr); + RESULT subServices(ePtr<iSubserviceList> &ptr); + RESULT timeshift(ePtr<iTimeshiftService> &ptr); + RESULT cueSheet(ePtr<iCueSheet> &ptr); + RESULT subtitle(ePtr<iSubtitleOutput> &ptr); + RESULT audioDelay(ePtr<iAudioDelay> &ptr); + RESULT rdsDecoder(ePtr<iRdsDecoder> &ptr); + RESULT keys(ePtr<iServiceKeys> &ptr) { ptr = 0; return -1; } + + // iStreamedService + RESULT streamed(ePtr<iStreamedService> &ptr); + ePtr<iStreamBufferInfo> getBufferCharge(); + int setBufferSize(int size); + + + // iPauseableService + RESULT pause(); + RESULT unpause(); + RESULT setSlowMotion(int ratio); + RESULT setFastForward(int ratio); + + // iSeekableService + RESULT getLength(pts_t &len); + RESULT seekTo(pts_t to); + RESULT seekRelative(int direction, pts_t to); + RESULT getPlayPosition(pts_t &pos); + RESULT setTrickmode(int trick=0); + RESULT isCurrentlySeekable(); + + // iServiceInformation + RESULT getName(std::string &name); + RESULT getEvent(ePtr<eServiceEvent> &evt, int nownext); + int getInfo(int w); + std::string getInfoString(int w); + ePtr<iDVBTransponderData> getTransponderData(); + void getAITApplications(std::map<int, std::string> &aitlist); + void getCaIds(std::vector<int> &caids, std::vector<int> &ecmpids); + + // iAudioTrackSelection + int getNumberOfTracks(); + RESULT selectTrack(unsigned int i); + RESULT getTrackInfo(struct iAudioTrackInfo &, unsigned int n); + int getCurrentTrack(); + + // iAudioChannelSelection + int getCurrentChannel(); + RESULT selectChannel(int i); + + // iRdsDecoder + std::string getText(int i=0); + void showRassSlidePicture(); + void showRassInteractivePic(int page, int subpage); + ePyObject getRassInteractiveMask(); + + // iSubserviceList + int getNumberOfSubservices(); + RESULT getSubservice(eServiceReference &subservice, unsigned int n); + + // iTimeshiftService + RESULT startTimeshift(); + RESULT stopTimeshift(bool swToLive=true); + int isTimeshiftActive(); + int isTimeshiftEnabled(); + RESULT activateTimeshift(); + RESULT setNextPlaybackFile(const char *fn); + RESULT saveTimeshiftFile(); + std::string getTimeshiftFilename(); + void switchToLive(); + + // iCueSheet + PyObject *getCutList(); + void setCutList(SWIG_PYOBJECT(ePyObject)); + void setCutListEnable(int enable); + + // iSubtitleOutput + RESULT enableSubtitles(iSubtitleUser *user, SubtitleTrack &track); + RESULT disableSubtitles(); + RESULT getSubtitleList(std::vector<SubtitleTrack> &sublist); + RESULT getCachedSubtitle(SubtitleTrack &track); + + // iAudioDelay + int getAC3Delay(); + int getPCMDelay(); + void setAC3Delay(int); + void setPCMDelay(int); + + // iStreamableService + RESULT stream(ePtr<iStreamableService> &ptr); + ePtr<iStreamData> getStreamingData(); + +protected: + friend class eServiceFactoryDVB; + eServiceReference m_reference; + + ePtr<eDVBService> m_dvb_service; + + ePtr<iTSMPEGDecoder> m_decoder; + int m_decoder_index; + int m_have_video_pid; + int m_tune_state; + + /* in timeshift mode, we essentially have two channels, and thus pmt handlers. */ + eDVBServicePMTHandler m_service_handler_timeshift; + eDVBServiceEITHandler m_event_handler; + int m_current_audio_pid; + + eDVBServicePlay(const eServiceReference &ref, eDVBService *service); + + /* events */ + void gotNewEvent(int error); + + void serviceEvent(int event); + void serviceEventTimeshift(int event); + Signal2<void,iPlayableService*,int> m_event; + + int m_is_stream; + + /* pvr */ + int m_is_pvr, m_is_paused, m_timeshift_enabled, m_timeshift_active, m_timeshift_changed, m_save_timeshift; + int m_first_program_info; + + std::string m_timeshift_file, m_timeshift_file_next; + int m_timeshift_fd; + ePtr<iDVBDemux> m_decode_demux; + + int m_current_audio_stream; + int selectAudioStream(int n = -1); + RESULT setFastForward_internal(int ratio, bool final_seek=false); + + /* timeshift */ + ePtr<iDVBTSRecorder> m_record; + std::set<int> m_pids_active; + + void updateTimeshiftPids(); + + void resetTimeshift(int start); + void switchToTimeshift(); + + void updateDecoder(bool sendSeekableStateChanged=false); + + int m_skipmode; + int m_fastforward; + int m_slowmotion; + + /* cuesheet */ + + ePtr<eCueSheet> m_cue; + + struct cueEntry + { + pts_t where; + unsigned int what; + + bool operator < (const struct cueEntry &o) const + { + return where < o.where; + } + cueEntry(const pts_t &where, unsigned int what) : + where(where), what(what) + { + } + }; + + std::multiset<cueEntry> m_cue_entries; + int m_cuesheet_changed, m_cutlist_enabled; + + void loadCuesheet(); + void saveCuesheet(); + + void cutlistToCuesheet(); + + iSubtitleUser *m_subtitle_widget; + + /* teletext subtitles */ + ePtr<eDVBTeletextParser> m_teletext_parser; + void newSubtitleStream(); + ePtr<eConnection> m_new_subtitle_stream_connection; + void newSubtitlePage(const eDVBTeletextSubtitlePage &p); + ePtr<eConnection> m_new_subtitle_page_connection; + std::list<eDVBTeletextSubtitlePage> m_subtitle_pages; + + /* dvb subtitles */ + ePtr<eDVBSubtitleParser> m_subtitle_parser; + void newDVBSubtitlePage(const eDVBSubtitlePage &p); + ePtr<eConnection> m_new_dvb_subtitle_page_connection; + std::list<eDVBSubtitlePage> m_dvb_subtitle_pages; + + ePtr<eTimer> m_subtitle_sync_timer; + void checkSubtitleTiming(); + + ePtr<eTimer> m_nownext_timer; + void updateEpgCacheNowNext(); + + /* radiotext */ + ePtr<eDVBRdsDecoder> m_rds_decoder; + ePtr<eConnection> m_rds_decoder_event_connection; + void rdsDecoderEvent(int); + + ePtr<eConnection> m_video_event_connection; + void video_event(struct iTSMPEGDecoder::videoEvent); + + virtual ePtr<iTsSource> createTsSource(eServiceReferenceDVB &ref, int packetsize = 188); +}; + +class eStaticServiceDVBBouquetInformation: public iStaticServiceInformation +{ + DECLARE_REF(eStaticServiceDVBBouquetInformation); + eServiceReference m_playable_service; +public: + eServiceReference &getPlayableService() { return m_playable_service; } + RESULT getName(const eServiceReference &ref, std::string &name); + int getLength(const eServiceReference &ref); + int isPlayable(const eServiceReference &ref, const eServiceReference &ignore, bool simulate); + RESULT getEvent(const eServiceReference &ref, ePtr<eServiceEvent> &ptr, time_t start_time); +}; + +#endif diff --git a/lib/service/servicedvbrecord.cpp b/lib/service/servicedvbrecord.cpp new file mode 100644 index 0000000..3e91bb1 --- /dev/null +++ b/lib/service/servicedvbrecord.cpp @@ -0,0 +1,621 @@ +#include <lib/service/servicedvbrecord.h> +#include <lib/base/eerror.h> +#include <lib/dvb/epgcache.h> +#include <lib/dvb/metaparser.h> +#include <lib/base/httpstream.h> +#include <fcntl.h> + + /* for cutlist */ +#include <byteswap.h> +#include <netinet/in.h> + + +DEFINE_REF(eDVBServiceRecord); + +eDVBServiceRecord::eDVBServiceRecord(const eServiceReferenceDVB &ref, bool isstreamclient): m_ref(ref) +{ + CONNECT(m_service_handler.serviceEvent, eDVBServiceRecord::serviceEvent); + CONNECT(m_event_handler.m_eit_changed, eDVBServiceRecord::gotNewEvent); + m_state = stateIdle; + m_want_record = 0; + m_record_ecm = false; + m_descramble = true; + m_is_stream_client = isstreamclient; + m_tuned = 0; + m_target_fd = -1; + m_error = 0; + m_streaming = 0; + m_simulate = false; + m_last_event_id = -1; +} + +void eDVBServiceRecord::serviceEvent(int event) +{ + eDebug("RECORD service event %d", event); + switch (event) + { + case eDVBServicePMTHandler::eventTuned: + { + eDebug("tuned.."); + m_tuned = 1; + + /* start feeding EIT updates */ + ePtr<iDVBDemux> m_demux; + if (!m_service_handler.getDataDemux(m_demux)) + { + eServiceReferenceDVB &ref = (eServiceReferenceDVB&) m_ref; + int sid = ref.getParentServiceID().get(); + if (!sid) + sid = ref.getServiceID().get(); + if ( ref.getParentTransportStreamID().get() && + ref.getParentTransportStreamID() != ref.getTransportStreamID() ) + m_event_handler.startOther(m_demux, sid); + else + m_event_handler.start(m_demux, sid); + } + + if (m_state == stateRecording && m_want_record) + doRecord(); + m_event((iRecordableService*)this, evTunedIn); + break; + } + case eDVBServicePMTHandler::eventTuneFailed: + { + eDebug("record failed to tune"); + m_event((iRecordableService*)this, evTuneFailed); + break; + } + case eDVBServicePMTHandler::eventNewProgramInfo: + { + if (m_state == stateIdle) + doPrepare(); + else if (m_want_record) /* doRecord can be called from Prepared and Recording state */ + doRecord(); + m_event((iRecordableService*)this, evNewProgramInfo); + break; + } + case eDVBServicePMTHandler::eventMisconfiguration: + m_error = errMisconfiguration; + m_event((iRecordableService*)this, evTuneFailed); + break; + case eDVBServicePMTHandler::eventNoResources: + m_error = errNoResources; + m_event((iRecordableService*)this, evTuneFailed); + break; + case eDVBServicePMTHandler::eventStopped: + /* recording data source has stopped, stop recording */ + stop(); + m_event((iRecordableService*)this, evRecordAborted); + break; + } +} + +RESULT eDVBServiceRecord::prepare(const char *filename, time_t begTime, time_t endTime, int eit_event_id, const char *name, const char *descr, const char *tags, bool descramble, bool recordecm) +{ + m_filename = filename; + m_streaming = 0; + m_descramble = descramble; + m_record_ecm = recordecm; + + if (m_state == stateIdle) + { + int ret = doPrepare(); + if (!ret) + { + eServiceReferenceDVB ref = m_ref.getParentServiceReference(); + ePtr<eDVBResourceManager> res_mgr; + eDVBMetaParser meta; + std::string service_data; + if (!ref.valid()) + ref = m_ref; + if (!eDVBResourceManager::getInstance(res_mgr)) + { + ePtr<iDVBChannelList> db; + if (!res_mgr->getChannelList(db)) + { + ePtr<eDVBService> service; + if (!db->getService(ref, service)) + { + char tmp[255]; + sprintf(tmp, "f:%x", service->m_flags); + service_data += tmp; + // cached pids + for (int x=0; x < eDVBService::cacheMax; ++x) + { + int entry = service->getCacheEntry((eDVBService::cacheID)x); + if (entry != -1) + { + sprintf(tmp, ",c:%02d%04x", x, entry); + service_data += tmp; + } + } + } + } + } + meta.m_time_create = begTime; + meta.m_ref = m_ref; + meta.m_data_ok = 1; + meta.m_service_data = service_data; + if (name) + meta.m_name = name; + if (descr) + meta.m_description = descr; + if (tags) + meta.m_tags = tags; + meta.m_scrambled = m_record_ecm; /* assume we will record scrambled data, when ecm will be included in the recording */ + ret = meta.updateMeta(filename) ? -255 : 0; + if (!ret) + { + const eit_event_struct *event = 0; + eEPGCache::getInstance()->Lock(); + if ( eit_event_id != -1 ) + { + eDebug("query epg event id %d", eit_event_id); + eEPGCache::getInstance()->lookupEventId(ref, eit_event_id, event); + } + if ( !event && (begTime != -1 && endTime != -1) ) + { + time_t queryTime = begTime + ((endTime-begTime)/2); + tm beg, end, query; + localtime_r(&begTime, &beg); + localtime_r(&endTime, &end); + localtime_r(&queryTime, &query); + eDebug("query stime %d:%d:%d, etime %d:%d:%d, qtime %d:%d:%d", + beg.tm_hour, beg.tm_min, beg.tm_sec, + end.tm_hour, end.tm_min, end.tm_sec, + query.tm_hour, query.tm_min, query.tm_sec); + eEPGCache::getInstance()->lookupEventTime(ref, queryTime, event); + } + if ( event ) + { + eDebug("found event.. store to disc"); + std::string fname = filename; + fname.erase(fname.length()-2, 2); + fname+="eit"; + int fd = open(fname.c_str(), O_CREAT|O_WRONLY, 0666); + if (fd>-1) + { + int evLen=HILO(event->descriptors_loop_length)+12/*EIT_LOOP_SIZE*/; + int wr = ::write( fd, (unsigned char*)event, evLen ); + if ( wr != evLen ) + eDebug("eit write error (%m)"); + ::close(fd); + } + } + eEPGCache::getInstance()->Unlock(); + } + } + return ret; + } + return -1; +} + +RESULT eDVBServiceRecord::prepareStreaming(bool descramble, bool includeecm) +{ + m_filename = ""; + m_streaming = 1; + m_descramble = descramble; + m_record_ecm = includeecm; + if (m_state == stateIdle) + return doPrepare(); + return -1; +} + +RESULT eDVBServiceRecord::start(bool simulate) +{ + m_simulate = simulate; + m_want_record = 1; + /* when tune wasn't yet successfully, doRecord stays in "prepared"-state which is fine. */ + m_event((iRecordableService*)this, evStart); + return doRecord(); +} + +RESULT eDVBServiceRecord::stop() +{ + if (!m_simulate) + eDebug("stop recording!"); + if (m_state == stateRecording) + { + if (m_record) + m_record->stop(); + if (m_target_fd >= 0) + { + ::close(m_target_fd); + m_target_fd = -1; + } + + saveCutlist(); + + m_state = statePrepared; + } else if (!m_simulate) + eDebug("(was not recording)"); + if (m_state == statePrepared) + { + m_record = 0; + m_state = stateIdle; + } + m_event((iRecordableService*)this, evRecordStopped); + return 0; +} + +int eDVBServiceRecord::doPrepare() +{ + /* allocate a ts recorder if we don't already have one. */ + if (m_state == stateIdle) + { + eDVBServicePMTHandler::serviceType servicetype; + if (m_streaming) + { + servicetype = m_record_ecm ? eDVBServicePMTHandler::scrambled_streamserver : eDVBServicePMTHandler::streamserver; + } + else + { + servicetype = m_record_ecm ? eDVBServicePMTHandler::scrambled_recording : eDVBServicePMTHandler::recording; + } + m_pids_active.clear(); + m_state = statePrepared; + ePtr<iTsSource> source; + /* + * NOTE: we do not have to create a source for simulated recordings, + * we will not get to the point where the source is going to be used + */ + if (!m_simulate && !m_ref.path.empty()) + { + if (m_is_stream_client) + { + /* + * streams are considered to be descrambled by default; + * user can indicate a stream is scrambled, by using servicetype id + 0x100 + */ + m_descramble = (m_ref.type == eServiceFactoryDVB::id + 0x100); + m_record_ecm = false; + servicetype = eDVBServicePMTHandler::streamclient; + eHttpStream *f = new eHttpStream(); + f->open(m_ref.path.c_str()); + source = ePtr<iTsSource>(f); + } + else + { + /* re-record a recording */ + servicetype = eDVBServicePMTHandler::offline; + eRawFile *f = new eRawFile(); + f->open(m_ref.path.c_str()); + source = ePtr<iTsSource>(f); + } + } + return m_service_handler.tuneExt(m_ref, 0, source, m_ref.path.c_str(), 0, m_simulate, NULL, servicetype, m_descramble); + } + return 0; +} + +int eDVBServiceRecord::doRecord() +{ + int err = doPrepare(); + if (err) + { + m_error = errTuneFailed; + m_event((iRecordableService*)this, evRecordFailed); + return err; + } + + if (!m_tuned) + return 0; /* try it again when we are tuned in */ + + if (!m_record && m_tuned && !m_streaming && !m_simulate) + { + eDebug("Recording to %s...", m_filename.c_str()); + ::remove(m_filename.c_str()); + int fd = ::open(m_filename.c_str(), O_WRONLY|O_CREAT|O_LARGEFILE, 0666); + if (fd == -1) + { + eDebug("eDVBServiceRecord - can't open recording file!"); + m_error = errOpenRecordFile; + m_event((iRecordableService*)this, evRecordFailed); + return errOpenRecordFile; + } + + ePtr<iDVBDemux> demux; + if (m_service_handler.getDataDemux(demux)) + { + eDebug("eDVBServiceRecord - NO DEMUX available!"); + m_error = errNoDemuxAvailable; + m_event((iRecordableService*)this, evRecordFailed); + return errNoDemuxAvailable; + } + demux->createTSRecorder(m_record); + if (!m_record) + { + eDebug("eDVBServiceRecord - no ts recorder available."); + m_error = errNoTsRecorderAvailable; + m_event((iRecordableService*)this, evRecordFailed); + return errNoTsRecorderAvailable; + } + m_record->setTargetFD(fd); + m_record->setTargetFilename(m_filename); + m_record->connectEvent(slot(*this, &eDVBServiceRecord::recordEvent), m_con_record_event); + + m_target_fd = fd; + } + + if (m_streaming) + { + m_state = stateRecording; + eDebug("start streaming..."); + } else + { + eDebug("start recording..."); + + eDVBServicePMTHandler::program program; + if (m_service_handler.getProgramInfo(program)) + eDebug("getting program info failed."); + else + { + std::set<int> pids_to_record; + + pids_to_record.insert(0); // PAT + + if (program.pmtPid != -1) + pids_to_record.insert(program.pmtPid); // PMT + + int timing_pid = -1, timing_stream_type = -1; + iDVBTSRecorder::timing_pid_type timing_pid_type = iDVBTSRecorder::none; + + eDebugNoNewLine("RECORD: have %zd video stream(s)", program.videoStreams.size()); + if (!program.videoStreams.empty()) + { + eDebugNoNewLine(" ("); + for (std::vector<eDVBServicePMTHandler::videoStream>::const_iterator + i(program.videoStreams.begin()); + i != program.videoStreams.end(); ++i) + { + pids_to_record.insert(i->pid); + + if (timing_pid == -1) + { + timing_pid = i->pid; + timing_stream_type = i->type; + timing_pid_type = iDVBTSRecorder::video_pid; + } + + if (i != program.videoStreams.begin()) + eDebugNoNewLine(", "); + eDebugNoNewLine("%04x", i->pid); + } + eDebugNoNewLine(")"); + } + eDebugNoNewLine(", and %zd audio stream(s)", program.audioStreams.size()); + if (!program.audioStreams.empty()) + { + eDebugNoNewLine(" ("); + for (std::vector<eDVBServicePMTHandler::audioStream>::const_iterator + i(program.audioStreams.begin()); + i != program.audioStreams.end(); ++i) + { + pids_to_record.insert(i->pid); + + if (timing_pid == -1) + { + timing_pid = i->pid; + timing_stream_type = i->type; + timing_pid_type = iDVBTSRecorder::audio_pid; + } + + if (i != program.audioStreams.begin()) + eDebugNoNewLine(", "); + eDebugNoNewLine("%04x", i->pid); + } + eDebugNoNewLine(")"); + } + if (!program.subtitleStreams.empty()) + { + eDebugNoNewLine(" ("); + for (std::vector<eDVBServicePMTHandler::subtitleStream>::const_iterator + i(program.subtitleStreams.begin()); + i != program.subtitleStreams.end(); ++i) + { + pids_to_record.insert(i->pid); + + if (i != program.subtitleStreams.begin()) + eDebugNoNewLine(", "); + eDebugNoNewLine("%04x", i->pid); + } + eDebugNoNewLine(")"); + } + eDebugNoNewLine(", and the pcr pid is %04x", program.pcrPid); + if (program.pcrPid >= 0 && program.pcrPid < 0x1fff) + pids_to_record.insert(program.pcrPid); + eDebug(", and the text pid is %04x", program.textPid); + if (program.textPid != -1) + pids_to_record.insert(program.textPid); // Videotext + + if (m_record_ecm) + { + for (std::list<eDVBServicePMTHandler::program::capid_pair>::const_iterator i(program.caids.begin()); + i != program.caids.end(); ++i) + { + if (i->capid >= 0) pids_to_record.insert(i->capid); + } + } + + /* find out which pids are NEW and which pids are obsolete.. */ + std::set<int> new_pids, obsolete_pids; + + std::set_difference(pids_to_record.begin(), pids_to_record.end(), + m_pids_active.begin(), m_pids_active.end(), + std::inserter(new_pids, new_pids.begin())); + + std::set_difference( + m_pids_active.begin(), m_pids_active.end(), + pids_to_record.begin(), pids_to_record.end(), + std::inserter(obsolete_pids, obsolete_pids.begin()) + ); + + for (std::set<int>::iterator i(new_pids.begin()); i != new_pids.end(); ++i) + { + eDebug("ADD PID: %04x", *i); + m_record->addPID(*i); + } + + for (std::set<int>::iterator i(obsolete_pids.begin()); i != obsolete_pids.end(); ++i) + { + eDebug("REMOVED PID: %04x", *i); + m_record->removePID(*i); + } + + if (timing_pid != -1) + m_record->setTimingPID(timing_pid, timing_pid_type, timing_stream_type); + + m_pids_active = pids_to_record; + + if (m_state != stateRecording) + { + m_record->start(); + m_state = stateRecording; + } + } + } + m_error = 0; + m_event((iRecordableService*)this, evRecordRunning); + return 0; +} + +RESULT eDVBServiceRecord::frontendInfo(ePtr<iFrontendInformation> &ptr) +{ + ptr = this; + return 0; +} + +RESULT eDVBServiceRecord::connectEvent(const Slot2<void,iRecordableService*,int> &event, ePtr<eConnection> &connection) +{ + connection = new eConnection((iRecordableService*)this, m_event.connect(event)); + return 0; +} + +RESULT eDVBServiceRecord::stream(ePtr<iStreamableService> &ptr) +{ + ptr = this; + return 0; +} + +ePtr<iStreamData> eDVBServiceRecord::getStreamingData() +{ + ePtr<iStreamData> retval; + eDVBServicePMTHandler::program program; + if (m_tuned && !m_service_handler.getProgramInfo(program)) + { + retval = new eDVBServicePMTHandler::eStreamData(program); + } + + return retval; +} + +void eDVBServiceRecord::recordEvent(int event) +{ + switch (event) + { + case iDVBTSRecorder::eventWriteError: + eWarning("[eDVBServiceRecord] record write error"); + stop(); + m_event((iRecordableService*)this, evRecordWriteError); + return; + default: + eDebug("unhandled record event %d", event); + } +} + +void eDVBServiceRecord::gotNewEvent(int /*error*/) +{ + ePtr<eServiceEvent> event_now; + m_event_handler.getEvent(event_now, 0); + + if (!event_now) + return; + + int event_id = event_now->getEventId(); + + pts_t p; + + if (m_record) + { + if (m_record->getCurrentPCR(p)) + eDebug("getting PCR failed!"); + else + { + m_event_timestamps[event_id] = p; + eDebug("pcr of eit change: %llx", p); + } + } + + if (event_id != m_last_event_id) + eDebug("[eDVBServiceRecord] now running: %s (%d seconds)", event_now->getEventName().c_str(), event_now->getDuration()); + + m_last_event_id = event_id; + + m_event((iRecordableService*)this, evNewEventInfo); +} + +void eDVBServiceRecord::saveCutlist() +{ + /* XXX: dupe of eDVBServicePlay::saveCuesheet, refactor plz */ + std::string filename = m_filename + ".cuts"; + + eDVBTSTools tstools; + + if (tstools.openFile(m_filename.c_str())) + { + eDebug("[eDVBServiceRecord] saving cutlist failed because tstools failed"); + return; + } + + // If a cuts file exists, append to it (who cares about sorting it) + FILE *f = fopen(filename.c_str(), "a+b"); + if (f) + { + unsigned long long where; + int what; + + for (std::map<int,pts_t>::iterator i(m_event_timestamps.begin()); i != m_event_timestamps.end(); ++i) + { + pts_t p = i->second; + off_t offset = 0; // fixme, we need to note down both + if (tstools.fixupPTS(offset, p)) + { + eDebug("[eDVBServiceRecord] fixing up PTS failed, not saving"); + continue; + } + eDebug("fixed up %llx to %llx (offset %llx)", i->second, p, offset); + where = htobe64(p); + what = htonl(2); /* mark */ + fwrite(&where, sizeof(where), 1, f); + fwrite(&what, sizeof(what), 1, f); + } + fclose(f); + } + +} + +RESULT eDVBServiceRecord::subServices(ePtr<iSubserviceList> &ptr) +{ + ptr = this; + return 0; +} + +int eDVBServiceRecord::getNumberOfSubservices() +{ + ePtr<eServiceEvent> evt; + if (!m_event_handler.getEvent(evt, 0)) + return evt->getNumOfLinkageServices(); + return 0; +} + +RESULT eDVBServiceRecord::getSubservice(eServiceReference &sub, unsigned int n) +{ + ePtr<eServiceEvent> evt; + if (!m_event_handler.getEvent(evt, 0)) + { + if (!evt->getLinkageService(sub, m_ref, n)) + return 0; + } + sub.type=eServiceReference::idInvalid; + return -1; +} diff --git a/lib/service/servicedvbrecord.h b/lib/service/servicedvbrecord.h new file mode 100644 index 0000000..5475268 --- /dev/null +++ b/lib/service/servicedvbrecord.h @@ -0,0 +1,78 @@ +#ifndef __servicedvbrecord_h +#define __servicedvbrecord_h + +#include <lib/service/iservice.h> +#include <lib/dvb/idvb.h> + +#include <lib/dvb/pmt.h> +#include <lib/dvb/eit.h> +#include <set> + +#include <lib/service/servicedvb.h> + +class eDVBServiceRecord: public eDVBServiceBase, + public iRecordableService, + public iStreamableService, + public iSubserviceList, + public Object +{ + DECLARE_REF(eDVBServiceRecord); +public: + RESULT connectEvent(const Slot2<void,iRecordableService*,int> &event, ePtr<eConnection> &connection); + RESULT prepare(const char *filename, time_t begTime, time_t endTime, int eit_event_id, const char *name, const char *descr, const char *tags, bool descramble, bool recordecm); + RESULT prepareStreaming(bool descramble, bool includeecm); + RESULT start(bool simulate=false); + RESULT stop(); + RESULT stream(ePtr<iStreamableService> &ptr); + RESULT getError(int &error) { error = m_error; return 0; } + RESULT frontendInfo(ePtr<iFrontendInformation> &ptr); + RESULT subServices(ePtr<iSubserviceList> &ptr); + + // iStreamableService + ePtr<iStreamData> getStreamingData(); + + // iSubserviceList + int getNumberOfSubservices(); + RESULT getSubservice(eServiceReference &subservice, unsigned int n); +private: + enum { stateIdle, statePrepared, stateRecording }; + bool m_simulate; + int m_state, m_want_record; + bool m_record_ecm; + bool m_descramble; + bool m_is_stream_client; + friend class eServiceFactoryDVB; + eDVBServiceRecord(const eServiceReferenceDVB &ref, bool isstreamclient = false); + + eDVBServiceEITHandler m_event_handler; + + eServiceReferenceDVB m_ref; + + ePtr<iDVBTSRecorder> m_record; + ePtr<eConnection> m_con_record_event; + + int m_recording, m_tuned, m_error; + std::set<int> m_pids_active; + std::string m_filename; + + std::map<int,pts_t> m_event_timestamps; + int m_target_fd; + int m_streaming; + int m_last_event_id; + + int doPrepare(); + int doRecord(); + + /* events */ + void serviceEvent(int event); + Signal2<void,iRecordableService*,int> m_event; + + /* recorder events */ + void recordEvent(int event); + + /* eit updates */ + void gotNewEvent(int error); + void saveCutlist(); +}; + +#endif diff --git a/lib/service/servicedvbstream.cpp b/lib/service/servicedvbstream.cpp new file mode 100644 index 0000000..c82daf3 --- /dev/null +++ b/lib/service/servicedvbstream.cpp @@ -0,0 +1,323 @@ +#include <lib/service/servicedvbstream.h> +#include <lib/base/eerror.h> +#include <lib/dvb/epgcache.h> +#include <lib/dvb/metaparser.h> +#include <lib/base/nconfig.h> +#include <fcntl.h> + +DEFINE_REF(eDVBServiceStream); + +eDVBServiceStream::eDVBServiceStream() +{ + CONNECT(m_service_handler.serviceEvent, eDVBServiceStream::serviceEvent); + CONNECT(m_event_handler.m_eit_changed, eDVBServiceStream::gotNewEvent); + m_state = stateIdle; + m_want_record = 0; + m_stream_ecm = false; + m_stream_eit = false; + m_stream_ait = false; + m_tuned = 0; + m_target_fd = -1; +} + +void eDVBServiceStream::serviceEvent(int event) +{ + eDebug("STREAM service event %d", event); + switch (event) + { + case eDVBServicePMTHandler::eventTuned: + { + eDebug("tuned.."); + m_tuned = 1; + + /* start feeding EIT updates */ + ePtr<iDVBDemux> m_demux; + if (!m_service_handler.getDataDemux(m_demux)) + { + eServiceReferenceDVB &ref = (eServiceReferenceDVB&) m_ref; + int sid = ref.getParentServiceID().get(); + if (!sid) + sid = ref.getServiceID().get(); + if ( ref.getParentTransportStreamID().get() && + ref.getParentTransportStreamID() != ref.getTransportStreamID() ) + m_event_handler.startOther(m_demux, sid); + else + m_event_handler.start(m_demux, sid); + } + + if (m_state == stateRecording && m_want_record) + doRecord(); + break; + } + case eDVBServicePMTHandler::eventTuneFailed: + { + eDebug("stream failed to tune"); + tuneFailed(); + break; + } + case eDVBServicePMTHandler::eventNewProgramInfo: + { + if (m_state == stateIdle) + doPrepare(); + else if (m_want_record) /* doRecord can be called from Prepared and Recording state */ + doRecord(); + break; + } + case eDVBServicePMTHandler::eventMisconfiguration: + tuneFailed(); + break; + case eDVBServicePMTHandler::eventNoResources: + tuneFailed(); + break; + } +} + +int eDVBServiceStream::start(const char *serviceref, int fd) +{ + if (m_state != stateIdle) return -1; + m_ref = eServiceReferenceDVB(serviceref); + if (doPrepare() < 0) return -1; + m_target_fd = fd; + m_want_record = 1; + return doRecord(); +} + +RESULT eDVBServiceStream::stop() +{ + eDebug("stop streaming"); + + if (m_state == stateRecording) + { + if (m_record) + m_record->stop(); + + m_state = statePrepared; + } + + if (m_state == statePrepared) + { + m_record = 0; + m_state = stateIdle; + } + return 0; +} + +int eDVBServiceStream::doPrepare() +{ + /* allocate a ts recorder if we don't already have one. */ + if (m_state == stateIdle) + { + m_stream_ecm = eConfigManager::getConfigBoolValue("config.streaming.stream_ecm"); + m_stream_eit = eConfigManager::getConfigBoolValue("config.streaming.stream_eit"); + m_stream_ait = eConfigManager::getConfigBoolValue("config.streaming.stream_ait"); + m_pids_active.clear(); + m_state = statePrepared; + eDVBServicePMTHandler::serviceType servicetype = m_stream_ecm ? eDVBServicePMTHandler::scrambled_streamserver : eDVBServicePMTHandler::streamserver; + bool descramble = eConfigManager::getConfigBoolValue("config.streaming.descramble", true); + return m_service_handler.tune(m_ref, 0, 0, 0, NULL, servicetype, descramble); + } + return 0; +} + +int eDVBServiceStream::doRecord() +{ + int err = doPrepare(); + if (err) + { + return err; + } + + if (!m_tuned) + return 0; /* try it again when we are tuned in */ + + if (!m_record && m_tuned) + { + ePtr<iDVBDemux> demux; + if (m_service_handler.getDataDemux(demux)) + { + eDebug("eDVBServiceStream - NO DEMUX available"); + return -1; + } + demux->createTSRecorder(m_record, /*packetsize*/ 188, /*streaming*/ true); + if (!m_record) + { + eDebug("eDVBServiceStream - no ts recorder available."); + return -1; + } + m_record->setTargetFD(m_target_fd); + m_record->connectEvent(slot(*this, &eDVBServiceStream::recordEvent), m_con_record_event); + } + + eDebug("start streaming..."); + + eDVBServicePMTHandler::program program; + if (m_service_handler.getProgramInfo(program)) + { + eDebug("getting program info failed."); + } + else + { + std::set<int> pids_to_record; + + pids_to_record.insert(0); // PAT + + if (program.pmtPid != -1) + pids_to_record.insert(program.pmtPid); // PMT + + int timing_pid = -1, timing_stream_type = -1; + iDVBTSRecorder::timing_pid_type timing_pid_type = iDVBTSRecorder::none; + + eDebugNoNewLine("STREAM: have %zd video stream(s)", program.videoStreams.size()); + if (!program.videoStreams.empty()) + { + eDebugNoNewLine(" ("); + for (std::vector<eDVBServicePMTHandler::videoStream>::const_iterator + i(program.videoStreams.begin()); + i != program.videoStreams.end(); ++i) + { + pids_to_record.insert(i->pid); + + if (timing_pid == -1) + { + timing_pid = i->pid; + timing_stream_type = i->type; + timing_pid_type = iDVBTSRecorder::video_pid; + } + + if (i != program.videoStreams.begin()) + eDebugNoNewLine(", "); + eDebugNoNewLine("%04x", i->pid); + } + eDebugNoNewLine(")"); + } + eDebugNoNewLine(", and %zd audio stream(s)", program.audioStreams.size()); + if (!program.audioStreams.empty()) + { + eDebugNoNewLine(" ("); + for (std::vector<eDVBServicePMTHandler::audioStream>::const_iterator + i(program.audioStreams.begin()); + i != program.audioStreams.end(); ++i) + { + pids_to_record.insert(i->pid); + + if (timing_pid == -1) + { + timing_pid = i->pid; + timing_stream_type = i->type; + timing_pid_type = iDVBTSRecorder::audio_pid; + } + + if (i != program.audioStreams.begin()) + eDebugNoNewLine(", "); + eDebugNoNewLine("%04x", i->pid); + } + eDebugNoNewLine(")"); + } + if (!program.subtitleStreams.empty()) + { + eDebugNoNewLine(" ("); + for (std::vector<eDVBServicePMTHandler::subtitleStream>::const_iterator + i(program.subtitleStreams.begin()); + i != program.subtitleStreams.end(); ++i) + { + pids_to_record.insert(i->pid); + + if (i != program.subtitleStreams.begin()) + eDebugNoNewLine(", "); + eDebugNoNewLine("%04x", i->pid); + } + eDebugNoNewLine(")"); + } + eDebugNoNewLine(", and the pcr pid is %04x", program.pcrPid); + if (program.pcrPid >= 0 && program.pcrPid < 0x1fff) + pids_to_record.insert(program.pcrPid); + eDebug(", and the text pid is %04x", program.textPid); + if (program.textPid != -1) + pids_to_record.insert(program.textPid); // Videotext + + if (m_stream_ecm) + { + for (std::list<eDVBServicePMTHandler::program::capid_pair>::const_iterator i(program.caids.begin()); + i != program.caids.end(); ++i) + { + if (i->capid >= 0) pids_to_record.insert(i->capid); + } + } + + if (m_stream_ait) + { + if (program.aitPid >= 0) pids_to_record.insert(program.aitPid); + } + + if (m_stream_eit) + { + pids_to_record.insert(0x12); + } + + /* include TDT pid, really low bandwidth, should not hurt anyone */ + pids_to_record.insert(0x14); + + /* find out which pids are NEW and which pids are obsolete.. */ + std::set<int> new_pids, obsolete_pids; + + std::set_difference(pids_to_record.begin(), pids_to_record.end(), + m_pids_active.begin(), m_pids_active.end(), + std::inserter(new_pids, new_pids.begin())); + + std::set_difference( + m_pids_active.begin(), m_pids_active.end(), + pids_to_record.begin(), pids_to_record.end(), + std::inserter(obsolete_pids, obsolete_pids.begin()) + ); + + for (std::set<int>::iterator i(new_pids.begin()); i != new_pids.end(); ++i) + { + eDebug("ADD PID: %04x", *i); + m_record->addPID(*i); + } + + for (std::set<int>::iterator i(obsolete_pids.begin()); i != obsolete_pids.end(); ++i) + { + eDebug("REMOVED PID: %04x", *i); + m_record->removePID(*i); + } + + if (timing_pid != -1) + m_record->setTimingPID(timing_pid, timing_pid_type, timing_stream_type); + + m_pids_active = pids_to_record; + + if (m_state != stateRecording) + { + m_record->start(); + m_state = stateRecording; + } + } + + return 0; +} + +void eDVBServiceStream::recordEvent(int event) +{ + switch (event) + { + case iDVBTSRecorder::eventWriteError: + eWarning("[eDVBServiceStream] stream write error"); + streamStopped(); + break; + default: + eDebug("unhandled record event %d", event); + break; + } +} + +void eDVBServiceStream::gotNewEvent(int /*error*/) +{ + ePtr<eServiceEvent> event_now; + m_event_handler.getEvent(event_now, 0); + + if (!event_now) + return; + + /* TODO: inject EIT section into the stream */ +} diff --git a/lib/service/servicedvbstream.h b/lib/service/servicedvbstream.h new file mode 100644 index 0000000..608f381 --- /dev/null +++ b/lib/service/servicedvbstream.h @@ -0,0 +1,53 @@ +#ifndef __servicedvbstream_h +#define __servicedvbstream_h + +#include <lib/dvb/idvb.h> + +#include <lib/dvb/pmt.h> +#include <lib/dvb/eit.h> +#include <set> + +#include <lib/service/servicedvb.h> + +class eDVBServiceStream: public eDVBServiceBase, public Object +{ + DECLARE_REF(eDVBServiceStream); +public: + eDVBServiceStream(); + int start(const char *serviceref, int fd); + int stop(); + +private: + enum { stateIdle, statePrepared, stateRecording }; + int m_state, m_want_record; + bool m_stream_ecm, m_stream_eit, m_stream_ait; + + eDVBServiceEITHandler m_event_handler; + + eServiceReferenceDVB m_ref; + + ePtr<iDVBTSRecorder> m_record; + ePtr<eConnection> m_con_record_event; + + int m_recording, m_tuned; + std::set<int> m_pids_active; + + int m_target_fd; + + int doPrepare(); + int doRecord(); + + /* events */ + void serviceEvent(int event); + + /* recorder events */ + void recordEvent(int event); + + /* eit updates */ + void gotNewEvent(int error); + + virtual void streamStopped() {} + virtual void tuneFailed() {} +}; + +#endif diff --git a/lib/service/servicedvd.cpp b/lib/service/servicedvd.cpp new file mode 100644 index 0000000..16c972e --- /dev/null +++ b/lib/service/servicedvd.cpp @@ -0,0 +1,1045 @@ +/* yes, it's dvd */ +#include <lib/base/eerror.h> +#include <lib/base/object.h> +#include <lib/base/ebase.h> +#include <lib/base/nconfig.h> +#include <string> +#include <lib/service/service.h> +#include <lib/base/init_num.h> +#include <lib/base/init.h> +#include <lib/gui/esubtitle.h> +#include <lib/gdi/gpixmap.h> + +#include <byteswap.h> +#include <netinet/in.h> +#ifndef BYTE_ORDER +#error no byte order defined! +#endif + +extern "C" { +#include <dreamdvd/ddvdlib.h> +} +#include "servicedvd.h" + +// eServiceFactoryDVD + +eServiceFactoryDVD::eServiceFactoryDVD() +{ + ePtr<eServiceCenter> sc; + + eServiceCenter::getPrivInstance(sc); + if (sc) + { + std::list<std::string> extensions; + extensions.push_back("iso"); + extensions.push_back("img"); + sc->addServiceFactory(eServiceFactoryDVD::id, this, extensions); + } +} + +eServiceFactoryDVD::~eServiceFactoryDVD() +{ + ePtr<eServiceCenter> sc; + + eServiceCenter::getPrivInstance(sc); + if (sc) + sc->removeServiceFactory(eServiceFactoryDVD::id); +} + +DEFINE_REF(eServiceFactoryDVD) + + // iServiceHandler +RESULT eServiceFactoryDVD::play(const eServiceReference &ref, ePtr<iPlayableService> &ptr) +{ + // check resources... + ptr = new eServiceDVD(ref); + return 0; +} + +RESULT eServiceFactoryDVD::record(const eServiceReference &/*ref*/, ePtr<iRecordableService> &ptr) +{ + ptr=0; + return -1; +} + +RESULT eServiceFactoryDVD::list(const eServiceReference &, ePtr<iListableService> &ptr) +{ + ptr=0; + return -1; +} + + +RESULT eServiceFactoryDVD::info(const eServiceReference &/*ref*/, ePtr<iStaticServiceInformation> &ptr) +{ + ptr=0; + return -1; +} + +RESULT eServiceFactoryDVD::offlineOperations(const eServiceReference &, ePtr<iServiceOfflineOperations> &ptr) +{ + ptr = 0; + return -1; +} + +DEFINE_REF(eServiceDVDInfoContainer); + +int eServiceDVDInfoContainer::getInteger(unsigned int index) const +{ + if (index >= integerValues.size()) return -1; + return integerValues[index]; +} + +std::string eServiceDVDInfoContainer::getString(unsigned int index) const +{ + if (index >= stringValues.size()) return ""; + return stringValues[index]; +} + +void eServiceDVDInfoContainer::addInteger(int value) +{ + integerValues.push_back(value); +} + +void eServiceDVDInfoContainer::addString(const char *value) +{ + stringValues.push_back(value); +} + + +// eServiceDVD + +DEFINE_REF(eServiceDVD); + +eServiceDVD::eServiceDVD(eServiceReference ref): + m_ref(ref), m_ddvdconfig(ddvd_create()), m_subtitle_widget(0), m_state(stIdle), + m_current_trick(0), m_pump(eApp, 1), m_width(-1), m_height(-1), + m_aspect(-1), m_framerate(-1), m_progressive(-1) +{ + int aspect = DDVD_16_9; + int policy = DDVD_PAN_SCAN; + int policy2 = DDVD_PAN_SCAN; + + char tmp[255]; + ssize_t rd; + + m_sn = eSocketNotifier::create(eApp, ddvd_get_messagepipe_fd(m_ddvdconfig), eSocketNotifier::Read|eSocketNotifier::Priority|eSocketNotifier::Error|eSocketNotifier::Hungup); + eDebug("SERVICEDVD construct!"); + // create handle + ddvd_set_dvd_path(m_ddvdconfig, ref.path.c_str()); + ddvd_set_ac3thru(m_ddvdconfig, 0); + + std::string ddvd_language = eConfigManager::getConfigValue("config.osd.language"); + if (ddvd_language != "") + ddvd_set_language(m_ddvdconfig, (ddvd_language.substr(0,2)).c_str()); + + int fd = open("/proc/stb/video/aspect", O_RDONLY); + if (fd > -1) + { + rd = read(fd, tmp, 255); + if (rd > 2 && !strncmp(tmp, "4:3", 3)) + aspect = DDVD_4_3; + else if (rd > 4 && !strncmp(tmp, "16:10", 5)) + aspect = DDVD_16_10; + close(fd); + } + + fd = open("/proc/stb/video/policy", O_RDONLY); + if (fd > -1) + { + rd = read(fd, tmp, 255); + if (rd > 6 && !strncmp(tmp, "bestfit", 7)) + policy = DDVD_JUSTSCALE; + else if (rd > 8 && !strncmp(tmp, "letterbox", 9)) + policy = DDVD_LETTERBOX; + close(fd); + } + +#ifdef DDVD_SUPPORTS_16_10_SCALING + fd = open("/proc/stb/video/policy2", O_RDONLY); + if (fd > -1) + { + rd = read(fd, tmp, 255); + if (rd > 6 && !strncmp(tmp, "bestfit", 7)) + policy2 = DDVD_JUSTSCALE; + else if (rd > 8 && !strncmp(tmp, "letterbox", 9)) + policy2 = DDVD_LETTERBOX; + close(fd); + } + ddvd_set_video_ex(m_ddvdconfig, aspect, policy, policy2, DDVD_PAL /*unused*/); +#else + ddvd_set_video(m_ddvdconfig, aspect, policy, DDVD_PAL /*unused*/); +#warning please update libdreamdvd for 16:10 scaling support! +#endif + + CONNECT(m_sn->activated, eServiceDVD::gotMessage); + CONNECT(m_pump.recv_msg, eServiceDVD::gotThreadMessage); + strcpy(m_ddvd_titlestring,""); + m_cue_pts = 0; + pause(); +} + +void eServiceDVD::gotThreadMessage(const int &msg) +{ + switch(msg) + { + case 1: // thread stopped + m_state = stStopped; + m_event(this, evStopped); + break; + } +} + +void eServiceDVD::gotMessage(int /*what*/) +{ + switch(ddvd_get_next_message(m_ddvdconfig,1)) + { + case DDVD_COLORTABLE_UPDATE: + { +/* + struct ddvd_color ctmp[4]; + ddvd_get_last_colortable(ddvdconfig, ctmp); + int i=0; + while (i < 4) + { + rd1[252+i]=ctmp[i].red; + bl1[252+i]=ctmp[i].blue; + gn1[252+i]=ctmp[i].green; + tr1[252+i]=ctmp[i].trans; + i++; + } + if(ioctl(fb, FBIOPUTCMAP, &colormap) == -1) + { + printf("Framebuffer: <FBIOPUTCMAP failed>\n"); + return 1; + } +*/ + eDebug("no support for 8bpp framebuffer in dvdplayer yet!"); + break; + } + case DDVD_SCREEN_UPDATE: + eDebug("DVD_SCREEN_UPDATE!"); + if (m_subtitle_widget) { + int x1,x2,y1,y2; + ddvd_get_last_blit_area(m_ddvdconfig, &x1, &x2, &y1, &y2); + + int x_offset = 0, y_offset = 0, width = 720, height = 576; + +#ifdef DDVD_SUPPORTS_GET_BLIT_DESTINATION + ddvd_get_blit_destination(m_ddvdconfig, &x_offset, &y_offset, &width, &height); + eDebug("values got from ddvd: %d %d %d %d", x_offset, y_offset, width, height); + y_offset = -y_offset; + width -= x_offset * 2; + height -= y_offset * 2; +#endif + eRect dest(x_offset, y_offset, width, height); + + if (dest.width() && dest.height()) + m_subtitle_widget->setPixmap(m_pixmap, eRect(x1, y1, (x2-x1)+1, (y2-y1)+1), dest); + } + break; + case DDVD_SHOWOSD_STATE_PLAY: + { + eDebug("DVD_SHOWOSD_STATE_PLAY!"); + m_current_trick = 0; + m_event(this, evUser+1); + break; + } + case DDVD_SHOWOSD_STATE_PAUSE: + { + eDebug("DVD_SHOWOSD_STATE_PAUSE!"); + m_event(this, evUser+2); + break; + } + case DDVD_SHOWOSD_STATE_FFWD: + { + eDebug("DVD_SHOWOSD_STATE_FFWD!"); + m_event(this, evUser+3); + break; + } + case DDVD_SHOWOSD_STATE_FBWD: + { + eDebug("DVD_SHOWOSD_STATE_FBWD!"); + m_event(this, evUser+4); + break; + } + case DDVD_SHOWOSD_STRING: + { + eDebug("DVD_SHOWOSD_STRING!"); + m_event(this, evUser+5); + break; + } + case DDVD_SHOWOSD_AUDIO: + { + eDebug("DVD_SHOWOSD_AUDIO!"); + m_event(this, evUser+6); + break; + } + case DDVD_SHOWOSD_SUBTITLE: + { + eDebug("DVD_SHOWOSD_SUBTITLE!"); + m_event((iPlayableService*)this, evUpdatedInfo); + m_event(this, evUser+7); + break; + } + case DDVD_EOF_REACHED: + eDebug("DVD_EOF_REACHED!"); + m_event(this, evEOF); + break; + case DDVD_SOF_REACHED: + eDebug("DVD_SOF_REACHED!"); + m_event(this, evSOF); + break; + case DDVD_SHOWOSD_ANGLE: + { + int current, num; + ddvd_get_angle_info(m_ddvdconfig, ¤t, &num); + eDebug("DVD_ANGLE_INFO: %d / %d", current, num); + m_event(this, evUser+13); + break; + } + case DDVD_SHOWOSD_TIME: + { + static struct ddvd_time last_info; + struct ddvd_time info; +// eDebug("DVD_SHOWOSD_TIME!"); + ddvd_get_last_time(m_ddvdconfig, &info); + if ( info.pos_chapter != last_info.pos_chapter ) + m_event(this, evUser+8); // chapterUpdated + if ( info.pos_title != last_info.pos_title ) + m_event(this, evUser+9); // titleUpdated + memcpy(&last_info, &info, sizeof(struct ddvd_time)); + break; + } + case DDVD_SHOWOSD_TITLESTRING: + { + ddvd_get_title_string(m_ddvdconfig, m_ddvd_titlestring); + eDebug("DDVD_SHOWOSD_TITLESTRING: %s",m_ddvd_titlestring); + loadCuesheet(); + if (!m_cue_pts) + unpause(); + m_event(this, evStart); + break; + } + case DDVD_MENU_OPENED: + eDebug("DVD_MENU_OPENED!"); + m_state = stMenu; + m_event(this, evSeekableStatusChanged); + m_event(this, evUser+11); + break; + case DDVD_MENU_CLOSED: + eDebug("DVD_MENU_CLOSED!"); + m_state = stRunning; + m_event(this, evSeekableStatusChanged); + m_event(this, evUser+12); + break; +#ifdef DDVD_SUPPORTS_PICTURE_INFO + case DDVD_SIZE_CHANGED: + { + int changed = m_width != -1 && m_height != -1 && m_aspect != -1; + ddvd_get_last_size(m_ddvdconfig, &m_width, &m_height, &m_aspect); + if (changed) + m_event((iPlayableService*)this, evVideoSizeChanged); + break; + } + case DDVD_PROGRESSIVE_CHANGED: + { + int changed = m_progressive != -1; + ddvd_get_last_progressive(m_ddvdconfig, &m_progressive); + if (changed) + m_event((iPlayableService*)this, evVideoProgressiveChanged); + break; + } + case DDVD_FRAMERATE_CHANGED: + { + int changed = m_framerate != -1; + ddvd_get_last_framerate(m_ddvdconfig, &m_framerate); + if (changed) + m_event((iPlayableService*)this, evVideoFramerateChanged); + break; + } +#endif + default: + break; + } +} + +eServiceDVD::~eServiceDVD() +{ + eDebug("SERVICEDVD destruct!"); + kill(); + saveCuesheet(); + ddvd_close(m_ddvdconfig); + disableSubtitles(); +} + +RESULT eServiceDVD::connectEvent(const Slot2<void,iPlayableService*,int> &event, ePtr<eConnection> &connection) +{ + connection = new eConnection((iPlayableService*)this, m_event.connect(event)); + return 0; +} + +RESULT eServiceDVD::start() +{ + ASSERT(m_state == stIdle); + m_state = stRunning; + eDebug("eServiceDVD starting"); +// m_event(this, evStart); + return 0; +} + +RESULT eServiceDVD::stop() +{ + ASSERT(m_state != stIdle); + if (m_state == stStopped) + return -1; + eDebug("DVD: stop %s", m_ref.path.c_str()); + m_state = stStopped; + ddvd_send_key(m_ddvdconfig, DDVD_KEY_EXIT); + + return 0; +} + +RESULT eServiceDVD::setTarget(int /*target*/) +{ + return -1; +} + +RESULT eServiceDVD::pause(ePtr<iPauseableService> &ptr) +{ + ptr=this; + return 0; +} + +RESULT eServiceDVD::seek(ePtr<iSeekableService> &ptr) +{ + ptr=this; + return 0; +} + +RESULT eServiceDVD::subtitle(ePtr<iSubtitleOutput> &ptr) +{ + ptr=this; + return 0; +} + +RESULT eServiceDVD::audioTracks(ePtr<iAudioTrackSelection> &ptr) +{ + ptr = this; + return 0; +} + +int eServiceDVD::getNumberOfTracks() +{ + int i = 0; + ddvd_get_audio_count(m_ddvdconfig, &i); + return i; +} + +int eServiceDVD::getCurrentTrack() +{ + int audio_id,audio_type; + uint16_t audio_lang; + ddvd_get_last_audio(m_ddvdconfig, &audio_id, &audio_lang, &audio_type); + return audio_id; +} + +RESULT eServiceDVD::selectTrack(unsigned int i) +{ + ddvd_set_audio(m_ddvdconfig, i); + return 0; +} + +RESULT eServiceDVD::getTrackInfo(struct iAudioTrackInfo &info, unsigned int audio_id) +{ + int audio_type; + uint16_t audio_lang; + ddvd_get_audio_byid(m_ddvdconfig, audio_id, &audio_lang, &audio_type); + char audio_string[3]={audio_lang >> 8, audio_lang, 0}; + info.m_pid = audio_id+1; + info.m_language = audio_string; + switch(audio_type) + { + case DDVD_MPEG: + info.m_description = "MPEG"; + break; + case DDVD_AC3: + info.m_description = "AC3"; + break; + case DDVD_DTS: + info.m_description = "DTS"; + break; + case DDVD_LPCM: + info.m_description = "LPCM"; + break; + default: + info.m_description = "und"; + } + return 0; +} + +RESULT eServiceDVD::keys(ePtr<iServiceKeys> &ptr) +{ + ptr=this; + return 0; +} + + // iPausableService +RESULT eServiceDVD::setSlowMotion(int ratio) +{ + eDebug("setSlowmode(%d)", ratio); + // pass ratio as repeat factor. + // ratio=2 means 1/2 speed + // ratio=3 means 1/3 speed + ddvd_send_key(m_ddvdconfig, ratio < 0 ? DDVD_KEY_SLOWBWD : DDVD_KEY_SLOWFWD); + ddvd_send_key(m_ddvdconfig, ratio); + return 0; +} + +RESULT eServiceDVD::setFastForward(int trick) +{ + eDebug("setTrickmode(%d)", trick); + ddvd_send_key(m_ddvdconfig, trick < 0 ? DDVD_KEY_FASTBWD : DDVD_KEY_FASTFWD); + ddvd_send_key(m_ddvdconfig, trick); + return 0; +} + +RESULT eServiceDVD::pause() +{ + eDebug("set pause!\n"); + ddvd_send_key(m_ddvdconfig, DDVD_KEY_PAUSE); + return 0; +} + +RESULT eServiceDVD::unpause() +{ + eDebug("set unpause!\n"); + ddvd_send_key(m_ddvdconfig, DDVD_KEY_PLAY); + return 0; +} + +void eServiceDVD::thread() +{ + eDebug("eServiceDVD dvd thread started"); + hasStarted(); + ddvd_run(m_ddvdconfig); +} + +void eServiceDVD::thread_finished() +{ + eDebug("eServiceDVD dvd thread finished"); + m_pump.send(1); // inform main thread +} + +RESULT eServiceDVD::info(ePtr<iServiceInformation>&i) +{ + i = this; + return 0; +} + +RESULT eServiceDVD::getName(std::string &name) +{ + if ( m_ddvd_titlestring[0] != '\0' ) + name = m_ddvd_titlestring; + else + if ( !m_ref.name.empty() ) + name = m_ref.name; + else + name = m_ref.path; + return 0; +} + +int eServiceDVD::getInfo(int w) +{ + switch (w) + { + case sCurrentChapter: + { + struct ddvd_time info; + ddvd_get_last_time(m_ddvdconfig, &info); + return info.pos_chapter; + } + case sTotalChapters: + { + struct ddvd_time info; + ddvd_get_last_time(m_ddvdconfig, &info); + return info.end_chapter; + } + case sCurrentTitle: + { + struct ddvd_time info; + ddvd_get_last_time(m_ddvdconfig, &info); + return info.pos_title; + } + case sTotalTitles: + { + struct ddvd_time info; + ddvd_get_last_time(m_ddvdconfig, &info); + return info.end_title; + } + case sTXTPID: // we abuse HAS_TELEXT icon in InfoBar to signalize subtitles status + { + int spu_id; + uint16_t spu_lang; + ddvd_get_last_spu(m_ddvdconfig, &spu_id, &spu_lang); + return spu_id; + } + case sUser+6: + case sUser+7: + case sUser+8: + return resIsPyObject; +#ifdef DDVD_SUPPORTS_PICTURE_INFO + case sVideoWidth: + return m_width; + case sVideoHeight: + return m_height; + case sAspect: + return m_aspect; + case sProgressive: + return m_progressive; + case sFrameRate: + return m_framerate; +#endif + default: + return resNA; + } +} + +std::string eServiceDVD::getInfoString(int w) +{ + switch(w) + { + case sServiceref: + return m_ref.toString(); + default: + eDebug("unhandled getInfoString(%d)", w); + } + return ""; +} + +ePtr<iServiceInfoContainer> eServiceDVD::getInfoObject(int w) +{ + eServiceDVDInfoContainer *container = new eServiceDVDInfoContainer; + ePtr<iServiceInfoContainer> retval = container; + eDebug("eServiceDVD::getInfoObject %d", w); + switch (w) + { + case sUser + 6: + { + int audio_id,audio_type; + uint16_t audio_lang; + ddvd_get_last_audio(m_ddvdconfig, &audio_id, &audio_lang, &audio_type); + char audio_string[3] = {audio_lang >> 8, audio_lang, 0}; + container->addInteger(audio_id + 1); + container->addString(audio_string); + switch (audio_type) + { + case DDVD_MPEG: + container->addString("MPEG"); + break; + case DDVD_AC3: + container->addString("AC3"); + break; + case DDVD_DTS: + container->addString("DTS"); + break; + case DDVD_LPCM: + container->addString("LPCM"); + break; + } + break; + } + case sUser + 7: + { + int spu_id; + uint16_t spu_lang; + ddvd_get_last_spu(m_ddvdconfig, &spu_id, &spu_lang); + char spu_string[3] = {spu_lang >> 8, spu_lang, 0}; + if (spu_id == -1) + { + container->addInteger(0); + container->addString(""); + } + else + { + container->addInteger(spu_id + 1); + container->addString(spu_string); + } + break; + } + case sUser + 8: + { + int current, num; + ddvd_get_angle_info(m_ddvdconfig, ¤t, &num); + container->addInteger(current); + container->addInteger(num); + break; + } + default: + eDebug("unhandled getInfoObject(%d)", w); + } + return retval; +} + +RESULT eServiceDVD::enableSubtitles(iSubtitleUser *user, SubtitleTrack &track) +{ + eSize size = eSize(720, 576); + + if (m_subtitle_widget) m_subtitle_widget->destroy(); + m_subtitle_widget = user; + + int pid = -1; + + if (track.pid >= 0) + { + pid = track.pid - 1; + + ddvd_set_spu(m_ddvdconfig, pid); + m_event(this, evUser+7); + } + + eDebug("eServiceDVD::enableSubtitles %i", pid); + + if (!m_pixmap) + { + m_pixmap = new gPixmap(size, 32, 1); /* allocate accel surface (if possible) */ +#ifdef DDVD_SUPPORTS_GET_BLIT_DESTINATION + ddvd_set_lfb_ex(m_ddvdconfig, (unsigned char *)m_pixmap->surface->data, size.width(), size.height(), 4, size.width()*4, 1); +#else + ddvd_set_lfb(m_ddvdconfig, (unsigned char *)m_pixmap->surface->data, size.width(), size.height(), 4, size.width()*4); +#warning please update libdreamdvd for fast scaling +#endif + run(); // start the thread + } + + return 0; +} + +RESULT eServiceDVD::disableSubtitles() +{ + if (m_subtitle_widget) m_subtitle_widget->destroy(); + m_subtitle_widget = 0; + return 0; +} + +RESULT eServiceDVD::getSubtitleList(std::vector<struct SubtitleTrack> &subtitlelist) +{ + unsigned int spu_count = 0; + ddvd_get_spu_count(m_ddvdconfig, &spu_count); + + for ( unsigned int spu_id = 0; spu_id < spu_count; spu_id++ ) + { + struct SubtitleTrack track; + uint16_t spu_lang; + ddvd_get_spu_byid(m_ddvdconfig, spu_id, &spu_lang); + char spu_string[3]={spu_lang >> 8, spu_lang, 0}; + + track.type = 2; + track.pid = spu_id + 1; + track.page_number = 5; + track.magazine_number = 0; + track.language_code = spu_string; + subtitlelist.push_back(track); + } + return 0; +} + +RESULT eServiceDVD::getCachedSubtitle(struct SubtitleTrack &track) +{ + eDebug("eServiceDVD::getCachedSubtitle nyi"); + return -1; +} + +RESULT eServiceDVD::getLength(pts_t &len) +{ +// eDebug("eServiceDVD::getLength"); + struct ddvd_time info; + ddvd_get_last_time(m_ddvdconfig, &info); + len = info.end_hours * 3600; + len += info.end_minutes * 60; + len += info.end_seconds; + len *= 90000; + return 0; +} + +RESULT eServiceDVD::seekTo(pts_t to) +{ + eDebug("eServiceDVD::seekTo(%lld)",to); + if ( to > 0 ) + { + eDebug("set_resume_pos: resume_info.title=%d, chapter=%d, block=%lu, audio_id=%d, audio_lock=%d, spu_id=%d, spu_lock=%d",m_resume_info.title,m_resume_info.chapter,m_resume_info.block,m_resume_info.audio_id, m_resume_info.audio_lock, m_resume_info.spu_id, m_resume_info.spu_lock); + ddvd_set_resume_pos(m_ddvdconfig, m_resume_info); + } + return 0; +} + +RESULT eServiceDVD::seekRelative(int direction, pts_t to) +{ + int seconds = to / 90000; + seconds *= direction; + eDebug("seekRelative %d %d", direction, seconds); + ddvd_skip_seconds(m_ddvdconfig, seconds); + return 0; +} + +RESULT eServiceDVD::getPlayPosition(pts_t &pos) +{ + struct ddvd_time info; + ddvd_get_last_time(m_ddvdconfig, &info); + pos = info.pos_hours * 3600; + pos += info.pos_minutes * 60; + pos += info.pos_seconds; +// eDebug("getPlayPosition %lld", pos); + pos *= 90000; + return 0; +} + +RESULT eServiceDVD::seekTitle(int title) +{ + eDebug("setTitle %d", title); + ddvd_set_title(m_ddvdconfig, title); + return 0; +} + +RESULT eServiceDVD::seekChapter(int chapter) +{ + eDebug("setChapter %d", chapter); + if ( chapter > 0 ) + ddvd_set_chapter(m_ddvdconfig, chapter); + return 0; +} + +RESULT eServiceDVD::setTrickmode(int /*trick*/) +{ + return -1; +} + +RESULT eServiceDVD::isCurrentlySeekable() +{ + return m_state == stRunning ? 3 : 0; +} + +RESULT eServiceDVD::keyPressed(int key) +{ + switch(key) + { + case iServiceKeys::keyLeft: + ddvd_send_key(m_ddvdconfig, DDVD_KEY_LEFT); + break; + case iServiceKeys::keyRight: + ddvd_send_key(m_ddvdconfig, DDVD_KEY_RIGHT); + break; + case iServiceKeys::keyUp: + ddvd_send_key(m_ddvdconfig, DDVD_KEY_UP); + break; + case iServiceKeys::keyDown: + ddvd_send_key(m_ddvdconfig, DDVD_KEY_DOWN); + break; + case iServiceKeys::keyOk: + ddvd_send_key(m_ddvdconfig, DDVD_KEY_OK); + break; + case iServiceKeys::keyUser: + ddvd_send_key(m_ddvdconfig, DDVD_KEY_AUDIO); + break; + case iServiceKeys::keyUser+1: + ddvd_send_key(m_ddvdconfig, DDVD_KEY_SUBTITLE); + break; + case iServiceKeys::keyUser+2: + ddvd_send_key(m_ddvdconfig, DDVD_KEY_AUDIOMENU); + break; + case iServiceKeys::keyUser+3: + ddvd_send_key(m_ddvdconfig, DDVD_KEY_NEXT_CHAPTER); + break; + case iServiceKeys::keyUser+4: + ddvd_send_key(m_ddvdconfig, DDVD_KEY_PREV_CHAPTER); + break; + case iServiceKeys::keyUser+5: + ddvd_send_key(m_ddvdconfig, DDVD_KEY_NEXT_TITLE); + break; + case iServiceKeys::keyUser+6: + ddvd_send_key(m_ddvdconfig, DDVD_KEY_PREV_TITLE); + break; + case iServiceKeys::keyUser+7: + ddvd_send_key(m_ddvdconfig, DDVD_KEY_MENU); + break; + case iServiceKeys::keyUser+8: + ddvd_send_key(m_ddvdconfig, DDVD_KEY_ANGLE); + break; + default: + return -1; + } + return 0; +} + +RESULT eServiceDVD::cueSheet(ePtr<iCueSheet> &ptr) +{ + if (m_cue_pts) + { + ptr = this; + return 0; + } + ptr = 0; + return -1; +} + +PyObject *eServiceDVD::getCutList() +{ + ePyObject list = PyList_New(1); + ePyObject tuple = PyTuple_New(2); + PyTuple_SetItem(tuple, 0, PyLong_FromLongLong(m_cue_pts)); + PyTuple_SetItem(tuple, 1, PyInt_FromLong(3)); + PyList_SetItem(list, 0, tuple); + return list; +} + +void eServiceDVD::setCutList(ePyObject /*list*/) +{ +} + +void eServiceDVD::setCutListEnable(int /*enable*/) +{ +} + +void eServiceDVD::loadCuesheet() +{ + FILE* f; + { + std::string filename = m_ref.path; + filename += "/dvd.cuts"; + f = fopen(filename.c_str(), "rb"); + } + if (f == NULL) + { + char filename[128]; + if ( m_ddvd_titlestring[0] != '\0' ) + snprintf(filename, sizeof(filename), "/home/root/dvd-%s.cuts", m_ddvd_titlestring); + else + { + struct stat st; + if (stat(m_ref.path.c_str(), &st) == 0) + { + // DVD has no name and cannot be written. Use the mtime to generate something unique... + snprintf(filename, 128, "/home/root/dvd-%x.cuts", st.st_mtime); + } + else + { + strcpy(filename, "/home/root/dvd-untitled.cuts"); + } + } + eDebug("eServiceDVD::loadCuesheet() filename=%s",filename); + f = fopen(filename, "rb"); + } + + + if (f) + { + unsigned long long where; + unsigned int what; + + if (!fread(&where, sizeof(where), 1, f)) + return; + if (!fread(&what, sizeof(what), 1, f)) + return; + + where = be64toh(where); + what = ntohl(what); + + if (!fread(&m_resume_info, sizeof(struct ddvd_resume), 1, f)) + return; + if (!fread(&what, sizeof(what), 1, f)) + return; + + what = ntohl(what); + if (what != 4 ) + return; + + m_cue_pts = where; + + fclose(f); + } else + eDebug("cutfile not found!"); + + if (m_cue_pts) + { + m_event((iPlayableService*)this, evCuesheetChanged); + eDebug("eServiceDVD::loadCuesheet() pts=%lld",m_cue_pts); + } +} + +void eServiceDVD::saveCuesheet() +{ + eDebug("eServiceDVD::saveCuesheet()"); + + struct ddvd_resume resume_info; + ddvd_get_resume_pos(m_ddvdconfig, &resume_info); + + if (resume_info.title) + { + struct ddvd_time info; + ddvd_get_last_time(m_ddvdconfig, &info); + pts_t pos; + pos = info.pos_hours * 3600; + pos += info.pos_minutes * 60; + pos += info.pos_seconds; + pos *= 90000; + m_cue_pts = pos; + eDebug("ddvd_get_resume_pos resume_info.title=%d, chapter=%d, block=%lu, audio_id=%d, audio_lock=%d, spu_id=%d, spu_lock=%d (pts=%llu)",resume_info.title,resume_info.chapter,resume_info.block,resume_info.audio_id, resume_info.audio_lock, resume_info.spu_id, resume_info.spu_lock,m_cue_pts); + } + else + { + eDebug("we're in a menu or somewhere else funny. so save cuesheet with pts=0"); + m_cue_pts = 0; + } + + FILE* f; + { + std::string filename = m_ref.path; + filename += "/dvd.cuts"; + f = fopen(filename.c_str(), "wb"); + } + if (f == NULL) + { + char filename[128]; + if ( m_ddvd_titlestring[0] != '\0' ) + snprintf(filename, sizeof(filename), "/home/root/dvd-%s.cuts", m_ddvd_titlestring); + else + { + struct stat st; + if (stat(m_ref.path.c_str(), &st) == 0) + { + // DVD has no name and cannot be written. Use the mtime to generate something unique... + snprintf(filename, 128, "/home/root/dvd-%x.cuts", st.st_mtime); + } + else + { + strcpy(filename, "/home/root/dvd-untitled.cuts"); + } + } + eDebug("eServiceDVD::saveCuesheet() filename=%s",filename); + f = fopen(filename, "wb"); + } + + if (f) + { + unsigned long long where; + int what; + + where = htobe64(m_cue_pts); + what = htonl(3); + fwrite(&where, sizeof(where), 1, f); + fwrite(&what, sizeof(what), 1, f); + + what = htonl(4); + fwrite(&resume_info, sizeof(struct ddvd_resume), 1, f); + fwrite(&what, sizeof(what), 1, f); + + fclose(f); + } +} + +eAutoInitPtr<eServiceFactoryDVD> init_eServiceFactoryDVD(eAutoInitNumbers::service+1, "eServiceFactoryDVD"); + +PyMODINIT_FUNC +initservicedvd(void) +{ + Py_InitModule("servicedvd", NULL); +} diff --git a/lib/service/servicedvd.h b/lib/service/servicedvd.h new file mode 100644 index 0000000..a5ae51a --- /dev/null +++ b/lib/service/servicedvd.h @@ -0,0 +1,156 @@ +#ifndef __servicedvd_h +#define __servicedvd_h + +#include <lib/base/message.h> +#include <lib/base/ebase.h> +#include <lib/base/thread.h> +#include <lib/service/iservice.h> + +class eSubtitleWidget; +class gPixmap; +class eStaticServiceDVDInfo; + +class eServiceFactoryDVD: public iServiceHandler +{ + DECLARE_REF(eServiceFactoryDVD); +public: + eServiceFactoryDVD(); + virtual ~eServiceFactoryDVD(); + enum { id = 0x1111 }; + + // iServiceHandler + RESULT play(const eServiceReference &, ePtr<iPlayableService> &ptr); + RESULT record(const eServiceReference &, ePtr<iRecordableService> &ptr); + RESULT list(const eServiceReference &, ePtr<iListableService> &ptr); + RESULT info(const eServiceReference &, ePtr<iStaticServiceInformation> &ptr); + RESULT offlineOperations(const eServiceReference &, ePtr<iServiceOfflineOperations> &ptr); +}; + +class eServiceDVDInfoContainer: public iServiceInfoContainer +{ + DECLARE_REF(eServiceDVDInfoContainer); + + std::vector<int> integerValues; + std::vector<std::string> stringValues; + +public: + int getInteger(unsigned int index) const; + std::string getString(unsigned int index) const; + + void addInteger(int value); + void addString(const char *value); +}; + +class eServiceDVD: public iPlayableService, public iPauseableService, public iSeekableService, public iAudioTrackSelection, + public iServiceInformation, public iSubtitleOutput, public iServiceKeys, public iCueSheet, public eThread, public Object +{ + friend class eServiceFactoryDVD; + DECLARE_REF(eServiceDVD); +public: + virtual ~eServiceDVD(); + // not implemented (yet) + RESULT audioChannel(ePtr<iAudioChannelSelection> &ptr) { ptr = 0; return -1; } + RESULT audioTracks(ePtr<iAudioTrackSelection> &ptr); + RESULT frontendInfo(ePtr<iFrontendInformation> &ptr) { ptr = 0; return -1; } + RESULT subServices(ePtr<iSubserviceList> &ptr) { ptr = 0; return -1; } + RESULT timeshift(ePtr<iTimeshiftService> &ptr) { ptr = 0; return -1; } + RESULT audioDelay(ePtr<iAudioDelay> &ptr) { ptr = 0; return -1; } + RESULT rdsDecoder(ePtr<iRdsDecoder> &ptr) { ptr = 0; return -1; } + RESULT stream(ePtr<iStreamableService> &ptr) { ptr = 0; return -1; } + RESULT streamed(ePtr<iStreamedService> &ptr) { ptr = 0; return -1; } + RESULT cueSheet(ePtr<iCueSheet> &ptr); + + // iPlayableService + RESULT connectEvent(const Slot2<void,iPlayableService*,int> &event, ePtr<eConnection> &connection); + RESULT start(); + RESULT stop(); + RESULT setTarget(int target); + RESULT info(ePtr<iServiceInformation> &ptr); + RESULT pause(ePtr<iPauseableService> &ptr); + RESULT subtitle(ePtr<iSubtitleOutput> &ptr); + RESULT seek(ePtr<iSeekableService> &ptr); + RESULT keys(ePtr<iServiceKeys> &ptr); + + // iPausableService + RESULT pause(); + RESULT unpause(); + RESULT setSlowMotion(int ratio); + RESULT setFastForward(int ratio); + + // iSubtitleOutput + RESULT enableSubtitles(iSubtitleUser *user, SubtitleTrack &track); + RESULT disableSubtitles(); + RESULT getSubtitleList(std::vector<SubtitleTrack> &sublist); + RESULT getCachedSubtitle(SubtitleTrack &track); + + // iSeekableService + RESULT getLength(pts_t &len); + RESULT seekTo(pts_t to); + RESULT seekRelative(int direction, pts_t to); + RESULT getPlayPosition(pts_t &pos); + RESULT setTrickmode(int trick=0); + RESULT isCurrentlySeekable(); + RESULT seekChapter(int chapter); + RESULT seekTitle(int title); + + // iServiceInformation + RESULT getName(std::string &name); + int getInfo(int w); + std::string getInfoString(int w); + ePtr<iServiceInfoContainer> getInfoObject(int w); + + // iCueSheet + PyObject *getCutList(); + void setCutList(SWIG_PYOBJECT(ePyObject)); + void setCutListEnable(int enable); + + // iAudioTrackSelection + int getNumberOfTracks(); + RESULT selectTrack(unsigned int i); + RESULT getTrackInfo(struct iAudioTrackInfo &, unsigned int n); + int getCurrentTrack(); + + // iServiceKeys + RESULT keyPressed(int key); + +private: + eServiceDVD(eServiceReference ref); + + void gotMessage(int); // message from dvdlib + void gotThreadMessage(const int &); // message from dvd thread + + // eThread + void thread(); + void thread_finished(); + + eServiceReference m_ref; + + Signal2<void,iPlayableService*,int> m_event; + + struct ddvd *m_ddvdconfig; + ePtr<gPixmap> m_pixmap; + iSubtitleUser *m_subtitle_widget; + + enum + { + stIdle, stRunning, stMenu, stStopped + }; + + int m_state; + int m_current_trick; + + char m_ddvd_titlestring[96]; + + ePtr<eSocketNotifier> m_sn; + eFixedMessagePump<int> m_pump; + + pts_t m_cue_pts; + struct ddvd_resume m_resume_info; + + void loadCuesheet(); + void saveCuesheet(); + + int m_width, m_height, m_aspect, m_framerate, m_progressive; +}; + +#endif diff --git a/lib/service/servicefs.cpp b/lib/service/servicefs.cpp new file mode 100644 index 0000000..b1565bd --- /dev/null +++ b/lib/service/servicefs.cpp @@ -0,0 +1,382 @@ +#include <lib/base/eerror.h> +#include <lib/base/object.h> +#include <string> +#include <errno.h> +#include <lib/service/servicefs.h> +#include <lib/service/service.h> +#include <lib/service/servicedvb.h> +#include <lib/base/init_num.h> +#include <lib/base/init.h> +#include <dirent.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <unistd.h> + +class eStaticServiceFSInformation: public iStaticServiceInformation +{ + DECLARE_REF(eStaticServiceFSInformation); +public: + RESULT getName(const eServiceReference &ref, std::string &name); + int getLength(const eServiceReference &ref) { return -1; } +}; + +DEFINE_REF(eStaticServiceFSInformation); + +RESULT eStaticServiceFSInformation::getName(const eServiceReference &ref, std::string &name) +{ + name = ref.path; + return 0; +} + +// eServiceFactoryFS + +eServiceFactoryFS::eServiceFactoryFS() +{ + ePtr<eServiceCenter> sc; + + eServiceCenter::getPrivInstance(sc); + if (sc) + { + std::list<std::string> extensions; + sc->addServiceFactory(eServiceFactoryFS::id, this, extensions); + } + + m_service_information = new eStaticServiceFSInformation(); +} + +eServiceFactoryFS::~eServiceFactoryFS() +{ + ePtr<eServiceCenter> sc; + + eServiceCenter::getPrivInstance(sc); + if (sc) + sc->removeServiceFactory(eServiceFactoryFS::id); +} + +DEFINE_REF(eServiceFactoryFS) + + // iServiceHandler +RESULT eServiceFactoryFS::play(const eServiceReference &ref, ePtr<iPlayableService> &ptr) +{ + ptr=0; + return -1; +} + +RESULT eServiceFactoryFS::record(const eServiceReference &ref, ePtr<iRecordableService> &ptr) +{ + ptr=0; + return -1; +} + +RESULT eServiceFactoryFS::list(const eServiceReference &ref, ePtr<iListableService> &ptr) +{ + ptr = new eServiceFS(ref.path.c_str(), ref.getName().empty() ? (const char*)0 : ref.getName().c_str()); + return 0; +} + +RESULT eServiceFactoryFS::info(const eServiceReference &ref, ePtr<iStaticServiceInformation> &ptr) +{ + ptr = m_service_information; + return 0; +} + +RESULT eServiceFactoryFS::offlineOperations(const eServiceReference &, ePtr<iServiceOfflineOperations> &ptr) +{ + ptr = 0; + return -1; +} + +// eServiceFS + +DEFINE_REF(eServiceFS); + +eServiceFS::eServiceFS(const char *path, const char *additional_extensions): path(path) +{ + m_list_valid = 0; + if (additional_extensions) + { + size_t slen=strlen(additional_extensions); + char buf[slen+1]; + char *tmp=0, *cmds = buf; + memcpy(buf, additional_extensions, slen+1); + + // strip spaces at beginning + while(cmds[0] == ' ') + { + ++cmds; + --slen; + } + + // strip spaces at the end + while(slen && cmds[slen-1] == ' ') + { + cmds[slen-1] = 0; + --slen; + } + + if (slen) + { + if (*cmds) + { + int id; + char buf2[17]; /* additional extention string is 16 characters + null-termination */ + while(1) + { + tmp = strchr(cmds, ' '); + if (tmp) + *tmp = 0; + if (strstr(cmds, "0x")) + { + if (sscanf(cmds, "0x%x:%16s", &id, buf2) == 2) + m_additional_extensions[id].push_back(buf2); + else + eDebug("parse additional_extension (%s) failed", cmds); + } + else + { + if (sscanf(cmds, "%d:%16s", &id, buf2) == 2) + m_additional_extensions[id].push_back(buf2); + else + eDebug("parse additional_extension (%s) failed", cmds); + } + if (!tmp) + break; + cmds = tmp+1; + while (*cmds && *cmds == ' ') + ++cmds; + } + } + } + } +} + +eServiceFS::~eServiceFS() +{ +} + +int lower(char c) +{ + return std::tolower(static_cast<unsigned char>(c)); +} + +RESULT eServiceFS::getContent(std::list<eServiceReference> &list, bool sorted) +{ + DIR *d=opendir(path.c_str()); + if (!d) + return -errno; + + ePtr<eServiceCenter> sc; + eServiceCenter::getPrivInstance(sc); + + while (dirent *e=readdir(d)) + { + if (!(strcmp(e->d_name, ".") && strcmp(e->d_name, ".."))) + continue; + + std::string filename; + + filename = path; + filename += e->d_name; + + struct stat s; + if (::stat(filename.c_str(), &s) < 0) + continue; + + if (S_ISDIR(s.st_mode) || S_ISLNK(s.st_mode)) + { + filename += "/"; + eServiceReference service(eServiceFactoryFS::id, + eServiceReference::isDirectory| + eServiceReference::canDescent|eServiceReference::mustDescent| + eServiceReference::shouldSort|eServiceReference::sort1, + filename); + service.data[0] = 1; + list.push_back(service); + } else + { + size_t e = filename.rfind('.'); + if (e != std::string::npos && e+1 < filename.length()) + { + std::string extension = filename.substr(e+1); + std::transform(extension.begin(), extension.end(), extension.begin(), lower); + int type = getServiceTypeForExtension(extension); + + if (type == -1) + { + type = sc->getServiceTypeForExtension(extension); + } + + if (type != -1) + { + eServiceReference service(type, + 0, + filename); + service.data[0] = 0; + list.push_back(service); + } + } + } + } + closedir(d); + + if (sorted) + list.sort(iListableServiceCompare(this)); + + return 0; +} + +// The first argument of this function is a format string to specify the order and +// the content of the returned list +// useable format options are +// R = Service Reference (as swig object .. this is very slow) +// S = Service Reference (as python string object .. same as ref.toString()) +// C = Service Reference (as python string object .. same as ref.toCompareString()) +// N = Service Name (as python string object) +// when exactly one return value per service is selected in the format string, +// then each value is directly a list entry +// when more than one value is returned per service, then the list is a list of +// python tuples +// unknown format string chars are returned as python None values ! +PyObject *eServiceFS::getContent(const char* format, bool sorted) +{ + ePyObject ret; + std::list<eServiceReference> tmplist; + int retcount=1; + + if (!format || !(retcount=strlen(format))) + format = "R"; // just return service reference swig object ... + + if (!getContent(tmplist, sorted)) + { + int services=tmplist.size(); + ePtr<iStaticServiceInformation> sptr; + eServiceCenterPtr service_center; + + if (strchr(format, 'N')) + eServiceCenter::getPrivInstance(service_center); + + ret = PyList_New(services); + std::list<eServiceReference>::iterator it(tmplist.begin()); + + for (int cnt=0; cnt < services; ++cnt) + { + eServiceReference &ref=*it++; + ePyObject tuple = retcount > 1 ? PyTuple_New(retcount) : ePyObject(); + for (int i=0; i < retcount; ++i) + { + ePyObject tmp; + switch(format[i]) + { + case 'R': // service reference (swig)object + tmp = NEW_eServiceReference(ref); + break; + case 'C': // service reference compare string + tmp = PyString_FromString(ref.toCompareString().c_str()); + break; + case 'S': // service reference string + tmp = PyString_FromString(ref.toString().c_str()); + break; + case 'N': // service name + if (service_center) + { + service_center->info(ref, sptr); + if (sptr) + { + std::string name; + sptr->getName(ref, name); + if (name.length()) + tmp = PyString_FromString(name.c_str()); + } + } + if (!tmp) + tmp = PyString_FromString("<n/a>"); + break; + default: + if (tuple) + { + tmp = Py_None; + Py_INCREF(Py_None); + } + break; + } + if (tmp) + { + if (tuple) + PyTuple_SET_ITEM(tuple, i, tmp); + else + PyList_SET_ITEM(ret, cnt, tmp); + } + } + if (tuple) + PyList_SET_ITEM(ret, cnt, tuple); + } + } + return ret ? (PyObject*)ret : (PyObject*)PyList_New(0); +} + +RESULT eServiceFS::getNext(eServiceReference &ptr) +{ + if (!m_list_valid) + { + m_list_valid = 1; + int res = getContent(m_list); + if (res) + return res; + } + + if (m_list.empty()) + { + ptr = eServiceReference(); + return -ERANGE; + } + + ptr = m_list.front(); + m_list.pop_front(); + return 0; +} + +int eServiceFS::compareLessEqual(const eServiceReference &a, const eServiceReference &b) +{ + /* directories first */ + if ((a.flags & ~b.flags) & eServiceReference::isDirectory) + return 1; + else if ((~a.flags & b.flags) & eServiceReference::isDirectory) + return 0; + /* sort by filename */ + else + return a.path < b.path; +} + +RESULT eServiceFS::startEdit(ePtr<iMutableServiceList> &res) +{ + res = 0; + return -1; +} + +int eServiceFS::getServiceTypeForExtension(const char *str) +{ + for (std::map<int, std::list<std::string> >::iterator sit(m_additional_extensions.begin()); sit != m_additional_extensions.end(); ++sit) + { + for (std::list<std::string>::iterator eit(sit->second.begin()); eit != sit->second.end(); ++eit) + { + if (*eit == str) + return sit->first; + } + } + return -1; +} + +int eServiceFS::getServiceTypeForExtension(const std::string &str) +{ + for (std::map<int, std::list<std::string> >::iterator sit(m_additional_extensions.begin()); sit != m_additional_extensions.end(); ++sit) + { + for (std::list<std::string>::iterator eit(sit->second.begin()); eit != sit->second.end(); ++eit) + { + if (*eit == str) + return sit->first; + } + } + return -1; +} + +eAutoInitPtr<eServiceFactoryFS> init_eServiceFactoryFS(eAutoInitNumbers::service+1, "eServiceFactoryFS"); diff --git a/lib/service/servicefs.h b/lib/service/servicefs.h new file mode 100644 index 0000000..9f66a81 --- /dev/null +++ b/lib/service/servicefs.h @@ -0,0 +1,46 @@ +#ifndef __servicefs_h +#define __servicefs_h + +#include <lib/service/iservice.h> + +class eServiceFactoryFS: public iServiceHandler +{ + DECLARE_REF(eServiceFactoryFS); +public: + eServiceFactoryFS(); + virtual ~eServiceFactoryFS(); + enum { id = 0x2 }; + + // iServiceHandler + RESULT play(const eServiceReference &, ePtr<iPlayableService> &ptr); + RESULT record(const eServiceReference &, ePtr<iRecordableService> &ptr); + RESULT list(const eServiceReference &, ePtr<iListableService> &ptr); + RESULT info(const eServiceReference &, ePtr<iStaticServiceInformation> &ptr); + RESULT offlineOperations(const eServiceReference &, ePtr<iServiceOfflineOperations> &ptr); +private: + ePtr<iStaticServiceInformation> m_service_information; +}; + +class eServiceFS: public iListableService +{ + DECLARE_REF(eServiceFS); + std::string path; + friend class eServiceFactoryFS; + eServiceFS(const char *path, const char *additional_extensions=0); + std::map<int, std::list<std::string> > m_additional_extensions; + + int m_list_valid; + std::list<eServiceReference> m_list; + int getServiceTypeForExtension(const char *str); + int getServiceTypeForExtension(const std::string &str); +public: + virtual ~eServiceFS(); + + RESULT getContent(std::list<eServiceReference> &list, bool sorted=false); + PyObject *getContent(const char *format, bool sorted=false); + RESULT getNext(eServiceReference &ptr); + int compareLessEqual(const eServiceReference &, const eServiceReference &); + RESULT startEdit(ePtr<iMutableServiceList> &); +}; + +#endif diff --git a/lib/service/servicehdmi.cpp b/lib/service/servicehdmi.cpp new file mode 100644 index 0000000..f2d6194 --- /dev/null +++ b/lib/service/servicehdmi.cpp @@ -0,0 +1,327 @@ +#include <lib/base/ebase.h> +#include <lib/base/eerror.h> +#include <lib/base/init_num.h> +#include <lib/base/init.h> +#include <lib/base/nconfig.h> +#include <lib/base/object.h> +#include <lib/dvb/decoder.h> +#include <lib/dvb/encoder.h> +#include <lib/service/servicehdmi.h> +#include <lib/service/service.h> + +#include <string> + +eServiceFactoryHDMI::eServiceFactoryHDMI() +{ + ePtr<eServiceCenter> sc; + + eServiceCenter::getPrivInstance(sc); + if (sc) + { + std::list<std::string> extensions; + sc->addServiceFactory(eServiceFactoryHDMI::id, this, extensions); + } + + m_service_info = new eStaticServiceHDMIInfo(); +} + +eServiceFactoryHDMI::~eServiceFactoryHDMI() +{ + ePtr<eServiceCenter> sc; + + eServiceCenter::getPrivInstance(sc); + if (sc) + { + sc->removeServiceFactory(eServiceFactoryHDMI::id); + } +} + +DEFINE_REF(eServiceFactoryHDMI) + +RESULT eServiceFactoryHDMI::play(const eServiceReference &ref, ePtr<iPlayableService> &ptr) +{ + ptr = new eServiceHDMI(ref); + return 0; +} + +RESULT eServiceFactoryHDMI::record(const eServiceReference &ref, ePtr<iRecordableService> &ptr) +{ + ptr = new eServiceHDMIRecord(ref); + return 0; +} + +RESULT eServiceFactoryHDMI::list(const eServiceReference &, ePtr<iListableService> &ptr) +{ + ptr = 0; + return -1; +} + +RESULT eServiceFactoryHDMI::info(const eServiceReference &ref, ePtr<iStaticServiceInformation> &ptr) +{ + ptr = m_service_info; + return 0; +} + +RESULT eServiceFactoryHDMI::offlineOperations(const eServiceReference &, ePtr<iServiceOfflineOperations> &ptr) +{ + ptr = 0; + return -1; +} + +DEFINE_REF(eStaticServiceHDMIInfo) + +eStaticServiceHDMIInfo::eStaticServiceHDMIInfo() +{ +} + +RESULT eStaticServiceHDMIInfo::getName(const eServiceReference &ref, std::string &name) +{ + if (ref.name.length()) + { + name = ref.name; + } + else + { + name = "HDMI IN"; + } + return 0; +} + +int eStaticServiceHDMIInfo::getLength(const eServiceReference &ref) +{ + return -1; +} + +int eStaticServiceHDMIInfo::getInfo(const eServiceReference &ref, int w) +{ + return iServiceInformation::resNA; +} + +long long eStaticServiceHDMIInfo::getFileSize(const eServiceReference &ref) +{ + return 0; +} + +eServiceHDMI::eServiceHDMI(eServiceReference ref) + : m_ref(ref), m_decoder_index(0) +{ + +} + +eServiceHDMI::~eServiceHDMI() +{ +} + +DEFINE_REF(eServiceHDMI); + +RESULT eServiceHDMI::connectEvent(const Slot2<void,iPlayableService*,int> &event, ePtr<eConnection> &connection) +{ + connection = new eConnection((iPlayableService*)this, m_event.connect(event)); + return 0; +} + +RESULT eServiceHDMI::start() +{ + m_decoder = new eTSMPEGDecoder(NULL, m_decoder_index); + m_decoder->setVideoPID(1, 0); + m_decoder->setAudioPID(1, 0); + m_decoder->play(); + m_event(this, evStart); + return 0; +} + +RESULT eServiceHDMI::stop() +{ + m_decoder = NULL; + m_event(this, evStopped); + return 0; +} + +RESULT eServiceHDMI::setTarget(int target) +{ + m_decoder_index = target; + return 0; +} + +RESULT eServiceHDMI::info(ePtr<iServiceInformation> &i) +{ + i = this; + return 0; +} + +RESULT eServiceHDMI::getName(std::string &name) +{ + if (m_ref.name.length()) + { + name = m_ref.name; + } + else + { + name = "HDMI IN"; + } + return 0; +} + +int eServiceHDMI::getInfo(int w) +{ + return resNA; +} + +std::string eServiceHDMI::getInfoString(int w) +{ + return ""; +} + +ePtr<iServiceInfoContainer> eServiceHDMI::getInfoObject(int w) +{ + return NULL; +} + +DEFINE_REF(eServiceHDMIRecord); + +eServiceHDMIRecord::eServiceHDMIRecord(const eServiceReference &ref) +{ + m_ref = ref; + m_state = stateIdle; + m_target_fd = -1; + m_error = 0; + m_encoder_fd = -1; + m_thread = NULL; +} + +RESULT eServiceHDMIRecord::prepare(const char *filename, time_t begTime, time_t endTime, int eit_event_id, const char *name, const char *descr, const char *tags, bool descramble, bool recordecm) +{ + m_filename = filename; + + if (m_state == stateIdle) + { + return doPrepare(); + } + return -1; +} + +RESULT eServiceHDMIRecord::prepareStreaming(bool descramble, bool includeecm) +{ + return -1; +} + +RESULT eServiceHDMIRecord::start(bool simulate) +{ + m_simulate = simulate; + m_event((iRecordableService*)this, evStart); + return doRecord(); +} + +RESULT eServiceHDMIRecord::stop() +{ + if (!m_simulate) + eDebug("stop recording!"); + if (m_state == stateRecording) + { + if (m_thread) + { + m_thread->stop(); + m_thread->stopSaveMetaInformation(); + } + if (m_target_fd >= 0) + { + ::close(m_target_fd); + m_target_fd = -1; + } + + m_state = statePrepared; + } else if (!m_simulate) + eDebug("(was not recording)"); + if (m_state == statePrepared) + { + m_thread = NULL; + if (eEncoder::getInstance()) eEncoder::getInstance()->freeEncoder(m_encoder_fd); + m_encoder_fd = -1; + m_state = stateIdle; + } + m_event((iRecordableService*)this, evRecordStopped); + return 0; +} + +int eServiceHDMIRecord::doPrepare() +{ + if (!m_simulate && m_encoder_fd < 0) + { + if (eEncoder::getInstance()) m_encoder_fd = eEncoder::getInstance()->allocateEncoder(m_ref.toString(), 8 * 1024 * 1024, 1280, 720, 25000, false, 0); + if (m_encoder_fd < 0) return -1; + } + m_state = statePrepared; + return 0; +} + +int eServiceHDMIRecord::doRecord() +{ + int err = doPrepare(); + if (err) + { + m_error = errTuneFailed; + m_event((iRecordableService*)this, evRecordFailed); + return err; + } + + if (!m_thread && !m_simulate) + { + eDebug("Recording to %s...", m_filename.c_str()); + ::remove(m_filename.c_str()); + int fd = ::open(m_filename.c_str(), O_WRONLY | O_CREAT | O_LARGEFILE, 0666); + if (fd < 0) + { + eDebug("eServiceHDMIRecord - can't open recording file!"); + m_error = errOpenRecordFile; + m_event((iRecordableService*)this, evRecordFailed); + return errOpenRecordFile; + } + + m_thread = new eDVBRecordFileThread(188, 20); + m_thread->setTargetFD(fd); + + m_target_fd = fd; + } + + eDebug("start recording..."); + + if (m_state != stateRecording) + { + if (m_thread && m_encoder_fd >= 0) + { + m_thread->startSaveMetaInformation(m_filename); + m_thread->start(m_encoder_fd); + } + m_state = stateRecording; + } + + m_error = 0; + m_event((iRecordableService*)this, evRecordRunning); + return 0; +} + +RESULT eServiceHDMIRecord::stream(ePtr<iStreamableService> &ptr) +{ + ptr = NULL; + return -1; +} + +RESULT eServiceHDMIRecord::subServices(ePtr<iSubserviceList> &ptr) +{ + ptr = NULL; + return -1; +} + +RESULT eServiceHDMIRecord::frontendInfo(ePtr<iFrontendInformation> &ptr) +{ + ptr = this; + return 0; +} + +RESULT eServiceHDMIRecord::connectEvent(const Slot2<void,iRecordableService*,int> &event, ePtr<eConnection> &connection) +{ + connection = new eConnection((iRecordableService*)this, m_event.connect(event)); + return 0; +} + +eAutoInitPtr<eServiceFactoryHDMI> init_eServiceFactoryHDMI(eAutoInitNumbers::service + 1, "eServiceFactoryHDMI"); diff --git a/lib/service/servicehdmi.h b/lib/service/servicehdmi.h new file mode 100644 index 0000000..2107380 --- /dev/null +++ b/lib/service/servicehdmi.h @@ -0,0 +1,122 @@ +#ifndef __servicehdmi_h +#define __servicehdmi_h + +#include <lib/base/message.h> +#include <lib/service/iservice.h> +#include <lib/service/servicedvb.h> + +class eStaticServiceHDMIInfo; + +class eServiceFactoryHDMI: public iServiceHandler +{ + DECLARE_REF(eServiceFactoryHDMI); +public: + eServiceFactoryHDMI(); + virtual ~eServiceFactoryHDMI(); + enum { id = 0x2000 }; + + RESULT play(const eServiceReference &, ePtr<iPlayableService> &ptr); + RESULT record(const eServiceReference &, ePtr<iRecordableService> &ptr); + RESULT list(const eServiceReference &, ePtr<iListableService> &ptr); + RESULT info(const eServiceReference &, ePtr<iStaticServiceInformation> &ptr); + RESULT offlineOperations(const eServiceReference &, ePtr<iServiceOfflineOperations> &ptr); +private: + ePtr<eStaticServiceHDMIInfo> m_service_info; +}; + +class eStaticServiceHDMIInfo: public iStaticServiceInformation +{ + DECLARE_REF(eStaticServiceHDMIInfo); + friend class eServiceFactoryHDMI; + eStaticServiceHDMIInfo(); +public: + RESULT getName(const eServiceReference &ref, std::string &name); + int getLength(const eServiceReference &ref); + int getInfo(const eServiceReference &ref, int w); + int isPlayable(const eServiceReference &ref, const eServiceReference &ignore, bool simulate) { return 1; } + long long getFileSize(const eServiceReference &ref); +}; + +class eServiceHDMI: public iPlayableService, public iServiceInformation, public Object +{ + DECLARE_REF(eServiceHDMI); +public: + virtual ~eServiceHDMI(); + + RESULT connectEvent(const Slot2<void, iPlayableService*, int> &event, ePtr<eConnection> &connection); + RESULT start(); + RESULT stop(); + RESULT setTarget(int target); + + RESULT pause(ePtr<iPauseableService> &ptr) { ptr = 0; return -1; } + RESULT seek(ePtr<iSeekableService> &ptr) { ptr = 0; return -1; } + RESULT audioTracks(ePtr<iAudioTrackSelection> &ptr) { ptr = 0; return -1; } + RESULT audioChannel(ePtr<iAudioChannelSelection> &ptr) { ptr = 0; return -1; } + RESULT subtitle(ePtr<iSubtitleOutput> &ptr) { ptr = 0; return -1; } + RESULT audioDelay(ePtr<iAudioDelay> &ptr) { ptr = 0; return -1; } + + RESULT frontendInfo(ePtr<iFrontendInformation> &ptr) { ptr = 0; return -1; } + RESULT subServices(ePtr<iSubserviceList> &ptr) { ptr = 0; return -1; } + RESULT timeshift(ePtr<iTimeshiftService> &ptr) { ptr = 0; return -1; } + RESULT cueSheet(ePtr<iCueSheet> &ptr) { ptr = 0; return -1; } + + RESULT rdsDecoder(ePtr<iRdsDecoder> &ptr) { ptr = 0; return -1; } + RESULT keys(ePtr<iServiceKeys> &ptr) { ptr = 0; return -1; } + RESULT stream(ePtr<iStreamableService> &ptr) { ptr = 0; return -1; } + RESULT streamed(ePtr<iStreamedService> &ptr) { ptr = 0; return -1; } + + RESULT info(ePtr<iServiceInformation>&); + + RESULT getName(std::string &name); + int getInfo(int w); + std::string getInfoString(int w); + ePtr<iServiceInfoContainer> getInfoObject(int w); + +private: + friend class eServiceFactoryHDMI; + eServiceHDMI(eServiceReference ref); + Signal2<void,iPlayableService*, int> m_event; + eServiceReference m_ref; + int m_decoder_index; + ePtr<iTSMPEGDecoder> m_decoder; +}; + +class eServiceHDMIRecord: public eDVBServiceBase, public iRecordableService, public Object +{ + DECLARE_REF(eServiceHDMIRecord); +public: + eServiceHDMIRecord(const eServiceReference &ref); + RESULT connectEvent(const Slot2<void,iRecordableService*,int> &event, ePtr<eConnection> &connection); + RESULT prepare(const char *filename, time_t begTime, time_t endTime, int eit_event_id, const char *name, const char *descr, const char *tags, bool descramble, bool recordecm); + RESULT prepareStreaming(bool descramble = true, bool includeecm = false); + RESULT start(bool simulate=false); + RESULT stop(); + RESULT getError(int &error) { error = m_error; return 0; } + RESULT frontendInfo(ePtr<iFrontendInformation> &ptr); + RESULT stream(ePtr<iStreamableService> &ptr); + RESULT subServices(ePtr<iSubserviceList> &ptr); + +private: + enum { stateIdle, statePrepared, stateRecording }; + bool m_simulate; + int m_state; + eDVBRecordFileThread *m_thread; + eServiceReference m_ref; + + int m_recording, m_error; + std::string m_filename; + + int m_target_fd; + int m_encoder_fd; + + int doPrepare(); + int doRecord(); + + /* events */ + Signal2<void,iRecordableService*,int> m_event; + + /* recorder events */ + void recordEvent(int event); +}; + +#endif diff --git a/lib/service/servicem2ts.cpp b/lib/service/servicem2ts.cpp new file mode 100644 index 0000000..c3deec3 --- /dev/null +++ b/lib/service/servicem2ts.cpp @@ -0,0 +1,340 @@ +#include <sys/types.h> +#include <sys/stat.h> +#include <lib/base/init_num.h> +#include <lib/base/init.h> +#include <lib/dvb/metaparser.h> +#include <lib/service/servicem2ts.h> + +DEFINE_REF(eServiceFactoryM2TS) + +class eM2TSFile: public iTsSource +{ + DECLARE_REF(eM2TSFile); + eSingleLock m_lock; +public: + eM2TSFile(const char *filename); + ~eM2TSFile(); + + // iTsSource + ssize_t read(off_t offset, void *buf, size_t count); + off_t length(); + off_t offset(); + int valid(); +private: + int m_sync_offset; + int m_fd; + off_t m_current_offset; + off_t m_length; + off_t lseek_internal(off_t offset, int whence); +}; + +class eStaticServiceM2TSInformation: public iStaticServiceInformation +{ + DECLARE_REF(eStaticServiceM2TSInformation); + eServiceReference m_ref; + eDVBMetaParser m_parser; +public: + eStaticServiceM2TSInformation(const eServiceReference &ref); + RESULT getName(const eServiceReference &ref, std::string &name); + int getLength(const eServiceReference &ref); + RESULT getEvent(const eServiceReference &ref, ePtr<eServiceEvent> &SWIG_OUTPUT, time_t start_time); + int isPlayable(const eServiceReference &ref, const eServiceReference &ignore, bool simulate) { return 1; } + int getInfo(const eServiceReference &ref, int w); + std::string getInfoString(const eServiceReference &ref,int w); + long long getFileSize(const eServiceReference &ref); +}; + +DEFINE_REF(eStaticServiceM2TSInformation); + +eStaticServiceM2TSInformation::eStaticServiceM2TSInformation(const eServiceReference &ref) +{ + m_ref = ref; + m_parser.parseFile(ref.path); +} + +RESULT eStaticServiceM2TSInformation::getName(const eServiceReference &ref, std::string &name) +{ + ASSERT(ref == m_ref); + if (m_parser.m_name.size()) + name = m_parser.m_name; + else + { + name = ref.path; + size_t n = name.rfind('/'); + if (n != std::string::npos) + name = name.substr(n + 1); + } + return 0; +} + +int eStaticServiceM2TSInformation::getLength(const eServiceReference &ref) +{ + ASSERT(ref == m_ref); + + eDVBTSTools tstools; + + struct stat s; + stat(ref.path.c_str(), &s); + + eM2TSFile *file = new eM2TSFile(ref.path.c_str()); + ePtr<iTsSource> source = file; + + if (!source->valid()) + return 0; + + tstools.setSource(source); + + /* check if cached data is still valid */ + if (m_parser.m_data_ok && (s.st_size == m_parser.m_filesize) && (m_parser.m_length)) + return m_parser.m_length / 90000; + + /* open again, this time with stream info */ + tstools.setSource(source, ref.path.c_str()); + + /* otherwise, re-calc length and update meta file */ + pts_t len; + if (tstools.calcLen(len)) + return 0; + + m_parser.m_length = len; + m_parser.m_filesize = s.st_size; + m_parser.updateMeta(ref.path); + return m_parser.m_length / 90000; +} + +int eStaticServiceM2TSInformation::getInfo(const eServiceReference &ref, int w) +{ + switch (w) + { + case iServiceInformation::sDescription: + return iServiceInformation::resIsString; + case iServiceInformation::sServiceref: + return iServiceInformation::resIsString; + case iServiceInformation::sFileSize: + return m_parser.m_filesize; + case iServiceInformation::sTimeCreate: + if (m_parser.m_time_create) + return m_parser.m_time_create; + else + return iServiceInformation::resNA; + default: + return iServiceInformation::resNA; + } +} + +std::string eStaticServiceM2TSInformation::getInfoString(const eServiceReference &ref,int w) +{ + switch (w) + { + case iServiceInformation::sDescription: + return m_parser.m_description; + case iServiceInformation::sServiceref: + return m_parser.m_ref.toString(); + case iServiceInformation::sTags: + return m_parser.m_tags; + default: + return ""; + } +} + +long long eStaticServiceM2TSInformation::getFileSize(const eServiceReference &ref) +{ + return m_parser.m_filesize; +} + +RESULT eStaticServiceM2TSInformation::getEvent(const eServiceReference &ref, ePtr<eServiceEvent> &evt, time_t start_time) +{ + if (!ref.path.empty()) + { + ePtr<eServiceEvent> event = new eServiceEvent; + std::string filename = ref.path; + filename.erase(filename.length()-4, 2); + filename+="eit"; + if (!event->parseFrom(filename, (m_parser.m_ref.getTransportStreamID().get()<<16)|m_parser.m_ref.getOriginalNetworkID().get())) + { + evt = event; + return 0; + } + } + evt = 0; + return -1; +} + +DEFINE_REF(eM2TSFile); + +eM2TSFile::eM2TSFile(const char *filename): + m_lock(), + m_sync_offset(0), + m_fd(::open(filename, O_RDONLY | O_LARGEFILE)), + m_current_offset(0), + m_length(0) +{ + if (m_fd != -1) + m_current_offset = m_length = lseek_internal(0, SEEK_END); +} + +eM2TSFile::~eM2TSFile() +{ + if (m_fd != -1) + ::close(m_fd); +} + +off_t eM2TSFile::lseek_internal(off_t offset, int whence) +{ + off_t ret; + + ret = ::lseek(m_fd, offset, whence); + return ret <= 0 ? ret : (ret % 192) + (ret*188) / 192; +} + +ssize_t eM2TSFile::read(off_t offset, void *b, size_t count) +{ + eSingleLocker l(m_lock); + unsigned char tmp[192*3]; + unsigned char *buf = (unsigned char*)b; + + size_t rd=0; + offset = (offset % 188) + (offset * 192) / 188; + +sync: + if ((offset+m_sync_offset) != m_current_offset) + { +// eDebug("seekTo %lld", offset+m_sync_offset); + m_current_offset = lseek_internal(offset+m_sync_offset, SEEK_SET); + if (m_current_offset < 0) + return m_current_offset; + } + + while (rd < count) { + size_t ret; + ret = ::read(m_fd, tmp, 192); + if (ret < 0 || ret < 192) + return rd ? rd : ret; + + if (tmp[4] != 0x47) + { + if (rd > 0) { + eDebug("short read at pos %lld async!!", m_current_offset); + return rd; + } + else { + int x=0; + ret = ::read(m_fd, tmp+192, 384); + +#if 0 + eDebugNoNewLine("m2ts out of sync at pos %lld, real %lld:", offset + m_sync_offset, m_current_offset); + for (; x < 192; ++x) + eDebugNoNewLine(" %02x", tmp[x]); + eDebug(""); + x=0; +#else + eDebug("m2ts out of sync at pos %lld, real %lld", offset + m_sync_offset, m_current_offset); +#endif + for (; x < 192; ++x) + { + if (tmp[x] == 0x47 && tmp[x+192] == 0x47) + { + int add_offs = (x - 4); + eDebug("sync found at pos %d, sync_offset is now %d, old was %d", x, add_offs + m_sync_offset, m_sync_offset); + m_sync_offset += add_offs; + goto sync; + } + } + } + } + + memcpy(buf+rd, tmp+4, 188); + + rd += 188; + m_current_offset += 188; + } + + m_sync_offset %= 188; + + return rd; +} + +int eM2TSFile::valid() +{ + return m_fd != -1; +} + +off_t eM2TSFile::length() +{ + return m_length; +} + +off_t eM2TSFile::offset() +{ + return m_current_offset; +} + +eServiceFactoryM2TS::eServiceFactoryM2TS() +{ + ePtr<eServiceCenter> sc; + eServiceCenter::getPrivInstance(sc); + if (sc) + { + std::list<std::string> extensions; + extensions.push_back("m2ts"); + extensions.push_back("mts"); + sc->addServiceFactory(eServiceFactoryM2TS::id, this, extensions); + } +} + +eServiceFactoryM2TS::~eServiceFactoryM2TS() +{ + ePtr<eServiceCenter> sc; + + eServiceCenter::getPrivInstance(sc); + if (sc) + sc->removeServiceFactory(eServiceFactoryM2TS::id); +} + +RESULT eServiceFactoryM2TS::play(const eServiceReference &ref, ePtr<iPlayableService> &ptr) +{ + ptr = new eServiceM2TS(ref); + return 0; +} + +RESULT eServiceFactoryM2TS::record(const eServiceReference &ref, ePtr<iRecordableService> &ptr) +{ + ptr=0; + return -1; +} + +RESULT eServiceFactoryM2TS::list(const eServiceReference &ref, ePtr<iListableService> &ptr) +{ + ptr=0; + return -1; +} + +RESULT eServiceFactoryM2TS::info(const eServiceReference &ref, ePtr<iStaticServiceInformation> &ptr) +{ + ptr=new eStaticServiceM2TSInformation(ref); + return 0; +} + +RESULT eServiceFactoryM2TS::offlineOperations(const eServiceReference &ref, ePtr<iServiceOfflineOperations> &ptr) +{ + ptr = 0; + return -1; +} + +eServiceM2TS::eServiceM2TS(const eServiceReference &ref) + :eDVBServicePlay(ref, NULL) +{ +} + +ePtr<iTsSource> eServiceM2TS::createTsSource(eServiceReferenceDVB &ref, int packetsize) +{ + ePtr<iTsSource> source = new eM2TSFile(ref.path.c_str()); + return source; +} + +RESULT eServiceM2TS::isCurrentlySeekable() +{ + return 1; // for fast winding we need index files... so only skip forward/backward yet +} + +eAutoInitPtr<eServiceFactoryM2TS> init_eServiceFactoryM2TS(eAutoInitNumbers::service+1, "eServiceFactoryM2TS"); diff --git a/lib/service/servicem2ts.h b/lib/service/servicem2ts.h new file mode 100644 index 0000000..9648ecd --- /dev/null +++ b/lib/service/servicem2ts.h @@ -0,0 +1,33 @@ +#ifndef __servicem2ts_h +#define __servicem2ts_h + +#include <lib/service/servicedvb.h> + +class eServiceFactoryM2TS: public iServiceHandler +{ + DECLARE_REF(eServiceFactoryM2TS); +public: + eServiceFactoryM2TS(); + virtual ~eServiceFactoryM2TS(); + enum { id = 0x3 }; + + // iServiceHandler + RESULT play(const eServiceReference &, ePtr<iPlayableService> &ptr); + RESULT record(const eServiceReference &, ePtr<iRecordableService> &ptr); + RESULT list(const eServiceReference &, ePtr<iListableService> &ptr); + RESULT info(const eServiceReference &, ePtr<iStaticServiceInformation> &ptr); + RESULT offlineOperations(const eServiceReference &, ePtr<iServiceOfflineOperations> &ptr); +}; + +class eServiceM2TS: public eDVBServicePlay +{ + friend class eServiceFactoryM2TS; +protected: + eServiceM2TS(const eServiceReference &ref); + ePtr<iTsSource> createTsSource(eServiceReferenceDVB &ref, int packetsize); + + // iSeekableService + RESULT isCurrentlySeekable(); +}; + +#endif diff --git a/lib/service/servicemp3.cpp b/lib/service/servicemp3.cpp new file mode 100644 index 0000000..dde40f3 --- /dev/null +++ b/lib/service/servicemp3.cpp @@ -0,0 +1,2533 @@ + /* note: this requires gstreamer 0.10.x and a big list of plugins. */ + /* it's currently hardcoded to use a big-endian alsasink as sink. */ +#include <lib/base/ebase.h> +#include <lib/base/eerror.h> +#include <lib/base/init_num.h> +#include <lib/base/init.h> +#include <lib/base/nconfig.h> +#include <lib/base/object.h> +#include <lib/dvb/epgcache.h> +#include <lib/dvb/decoder.h> +#include <lib/components/file_eraser.h> +#include <lib/gui/esubtitle.h> +#include <lib/service/servicemp3.h> +#include <lib/service/service.h> +#include <lib/gdi/gpixmap.h> + +#include <string> + +#include <gst/gst.h> +#include <gst/pbutils/missing-plugins.h> +#include <sys/stat.h> + +#define HTTP_TIMEOUT 30 + +/* + * UNUSED variable from service reference is now used as buffer flag for gstreamer + * REFTYPE:FLAGS:STYPE:SID:TSID:ONID:NS:PARENT_SID:PARENT_TSID:UNUSED + * D D X X X X X X X X + * 4097:0:1:0:0:0:0:0:0:0:URL:NAME (no buffering) + * 4097:0:1:0:0:0:0:0:0:1:URL:NAME (buffering enabled) + * 4097:0:1:0:0:0:0:0:0:3:URL:NAME (progressive download and buffering enabled) + * + * Progressive download requires buffering enabled, so it's mandatory to use flag 3 not 2 + */ +typedef enum +{ + BUFFERING_ENABLED = 0x00000001, + PROGRESSIVE_DOWNLOAD = 0x00000002 +} eServiceMP3Flags; + +typedef enum +{ + GST_PLAY_FLAG_VIDEO = 0x00000001, + GST_PLAY_FLAG_AUDIO = 0x00000002, + GST_PLAY_FLAG_TEXT = 0x00000004, + GST_PLAY_FLAG_VIS = 0x00000008, + GST_PLAY_FLAG_SOFT_VOLUME = 0x00000010, + GST_PLAY_FLAG_NATIVE_AUDIO = 0x00000020, + GST_PLAY_FLAG_NATIVE_VIDEO = 0x00000040, + GST_PLAY_FLAG_DOWNLOAD = 0x00000080, + GST_PLAY_FLAG_BUFFERING = 0x00000100 +} GstPlayFlags; + +// eServiceFactoryMP3 + +/* + * gstreamer suffers from a bug causing sparse streams to loose sync, after pause/resume / skip + * see: https://bugzilla.gnome.org/show_bug.cgi?id=619434 + * As a workaround, we run the subsink in sync=false mode + */ +#define GSTREAMER_SUBTITLE_SYNC_MODE_BUG +/**/ + +eServiceFactoryMP3::eServiceFactoryMP3() +{ + ePtr<eServiceCenter> sc; + + eServiceCenter::getPrivInstance(sc); + if (sc) + { + std::list<std::string> extensions; + extensions.push_back("dts"); + extensions.push_back("mp2"); + extensions.push_back("mp3"); + extensions.push_back("ogg"); + extensions.push_back("ogm"); + extensions.push_back("ogv"); + extensions.push_back("mpg"); + extensions.push_back("vob"); + extensions.push_back("wav"); + extensions.push_back("wave"); + extensions.push_back("m4v"); + extensions.push_back("mkv"); + extensions.push_back("avi"); + extensions.push_back("divx"); + extensions.push_back("dat"); + extensions.push_back("flac"); + extensions.push_back("flv"); + extensions.push_back("mp4"); + extensions.push_back("mov"); + extensions.push_back("m4a"); + extensions.push_back("3gp"); + extensions.push_back("3g2"); + extensions.push_back("asf"); + extensions.push_back("wmv"); + extensions.push_back("wma"); + sc->addServiceFactory(eServiceFactoryMP3::id, this, extensions); + } + + m_service_info = new eStaticServiceMP3Info(); +} + +eServiceFactoryMP3::~eServiceFactoryMP3() +{ + ePtr<eServiceCenter> sc; + + eServiceCenter::getPrivInstance(sc); + if (sc) + sc->removeServiceFactory(eServiceFactoryMP3::id); +} + +DEFINE_REF(eServiceFactoryMP3) + + // iServiceHandler +RESULT eServiceFactoryMP3::play(const eServiceReference &ref, ePtr<iPlayableService> &ptr) +{ + // check resources... + ptr = new eServiceMP3(ref); + return 0; +} + +RESULT eServiceFactoryMP3::record(const eServiceReference &ref, ePtr<iRecordableService> &ptr) +{ + ptr=0; + return -1; +} + +RESULT eServiceFactoryMP3::list(const eServiceReference &, ePtr<iListableService> &ptr) +{ + ptr=0; + return -1; +} + +RESULT eServiceFactoryMP3::info(const eServiceReference &ref, ePtr<iStaticServiceInformation> &ptr) +{ + ptr = m_service_info; + return 0; +} + +class eMP3ServiceOfflineOperations: public iServiceOfflineOperations +{ + DECLARE_REF(eMP3ServiceOfflineOperations); + eServiceReference m_ref; +public: + eMP3ServiceOfflineOperations(const eServiceReference &ref); + + RESULT deleteFromDisk(int simulate); + RESULT getListOfFilenames(std::list<std::string> &); + RESULT reindex(); +}; + +DEFINE_REF(eMP3ServiceOfflineOperations); + +eMP3ServiceOfflineOperations::eMP3ServiceOfflineOperations(const eServiceReference &ref): m_ref((const eServiceReference&)ref) +{ +} + +RESULT eMP3ServiceOfflineOperations::deleteFromDisk(int simulate) +{ + if (!simulate) + { + std::list<std::string> res; + if (getListOfFilenames(res)) + return -1; + + eBackgroundFileEraser *eraser = eBackgroundFileEraser::getInstance(); + if (!eraser) + eDebug("FATAL !! can't get background file eraser"); + + for (std::list<std::string>::iterator i(res.begin()); i != res.end(); ++i) + { + eDebug("Removing %s...", i->c_str()); + if (eraser) + eraser->erase(i->c_str()); + else + ::unlink(i->c_str()); + } + } + return 0; +} + +RESULT eMP3ServiceOfflineOperations::getListOfFilenames(std::list<std::string> &res) +{ + res.clear(); + res.push_back(m_ref.path); + return 0; +} + +RESULT eMP3ServiceOfflineOperations::reindex() +{ + return -1; +} + + +RESULT eServiceFactoryMP3::offlineOperations(const eServiceReference &ref, ePtr<iServiceOfflineOperations> &ptr) +{ + ptr = new eMP3ServiceOfflineOperations(ref); + return 0; +} + +// eStaticServiceMP3Info + + +// eStaticServiceMP3Info is seperated from eServiceMP3 to give information +// about unopened files. + +// probably eServiceMP3 should use this class as well, and eStaticServiceMP3Info +// should have a database backend where ID3-files etc. are cached. +// this would allow listing the mp3 database based on certain filters. + +DEFINE_REF(eStaticServiceMP3Info) + +eStaticServiceMP3Info::eStaticServiceMP3Info() +{ +} + +RESULT eStaticServiceMP3Info::getName(const eServiceReference &ref, std::string &name) +{ + if ( ref.name.length() ) + name = ref.name; + else + { + size_t last = ref.path.rfind('/'); + if (last != std::string::npos) + name = ref.path.substr(last+1); + else + name = ref.path; + } + return 0; +} + +int eStaticServiceMP3Info::getLength(const eServiceReference &ref) +{ + return -1; +} + +int eStaticServiceMP3Info::getInfo(const eServiceReference &ref, int w) +{ + switch (w) + { + case iServiceInformation::sTimeCreate: + { + struct stat s; + if (stat(ref.path.c_str(), &s) == 0) + { + return s.st_mtime; + } + } + break; + case iServiceInformation::sFileSize: + { + struct stat s; + if (stat(ref.path.c_str(), &s) == 0) + { + return s.st_size; + } + } + break; + } + return iServiceInformation::resNA; +} + +long long eStaticServiceMP3Info::getFileSize(const eServiceReference &ref) +{ + struct stat s; + if (stat(ref.path.c_str(), &s) == 0) + { + return s.st_size; + } + return 0; +} + +RESULT eStaticServiceMP3Info::getEvent(const eServiceReference &ref, ePtr<eServiceEvent> &evt, time_t start_time) +{ + if (ref.path.find("://") != std::string::npos) + { + eServiceReference equivalentref(ref); + equivalentref.type = eServiceFactoryMP3::id; + equivalentref.path.clear(); + return eEPGCache::getInstance()->lookupEventTime(equivalentref, start_time, evt); + } + evt = 0; + return -1; +} + +DEFINE_REF(eStreamBufferInfo) + +eStreamBufferInfo::eStreamBufferInfo(int percentage, int inputrate, int outputrate, int space, int size) +: bufferPercentage(percentage), + inputRate(inputrate), + outputRate(outputrate), + bufferSpace(space), + bufferSize(size) +{ +} + +int eStreamBufferInfo::getBufferPercentage() const +{ + return bufferPercentage; +} + +int eStreamBufferInfo::getAverageInputRate() const +{ + return inputRate; +} + +int eStreamBufferInfo::getAverageOutputRate() const +{ + return outputRate; +} + +int eStreamBufferInfo::getBufferSpace() const +{ + return bufferSpace; +} + +int eStreamBufferInfo::getBufferSize() const +{ + return bufferSize; +} + +DEFINE_REF(eServiceMP3InfoContainer); + +eServiceMP3InfoContainer::eServiceMP3InfoContainer() +: doubleValue(0.0), bufferValue(NULL), bufferData(NULL), bufferSize(0) +{ +} + +eServiceMP3InfoContainer::~eServiceMP3InfoContainer() +{ + if (bufferValue) + { +#if GST_VERSION_MAJOR >= 1 + gst_buffer_unmap(bufferValue, &map); +#endif + gst_buffer_unref(bufferValue); + bufferValue = NULL; + bufferData = NULL; + bufferSize = 0; + } +} + +double eServiceMP3InfoContainer::getDouble(unsigned int index) const +{ + return doubleValue; +} + +unsigned char *eServiceMP3InfoContainer::getBuffer(unsigned int &size) const +{ + size = bufferSize; + return bufferData; +} + +void eServiceMP3InfoContainer::setDouble(double value) +{ + doubleValue = value; +} + +void eServiceMP3InfoContainer::setBuffer(GstBuffer *buffer) +{ + bufferValue = buffer; + gst_buffer_ref(bufferValue); +#if GST_VERSION_MAJOR < 1 + bufferData = GST_BUFFER_DATA(bufferValue); + bufferSize = GST_BUFFER_SIZE(bufferValue); +#else + gst_buffer_map(bufferValue, &map, GST_MAP_READ); + bufferData = map.data; + bufferSize = map.size; +#endif +} + +// eServiceMP3 +int eServiceMP3::ac3_delay = 0, + eServiceMP3::pcm_delay = 0; + +eServiceMP3::eServiceMP3(eServiceReference ref): + m_nownext_timer(eTimer::create(eApp)), + m_ref(ref), + m_pump(eApp, 1) +{ + m_subtitle_sync_timer = eTimer::create(eApp); + m_streamingsrc_timeout = 0; + m_stream_tags = 0; + m_currentAudioStream = -1; + m_currentSubtitleStream = -1; + m_cachedSubtitleStream = 0; /* report the first subtitle stream to be 'cached'. TODO: use an actual cache. */ + m_subtitle_widget = 0; + m_currentTrickRatio = 1.0; + m_buffer_size = 5 * 1024 * 1024; + m_ignore_buffering_messages = 0; + m_is_live = false; + m_use_prefillbuffer = false; + m_extra_headers = ""; + m_download_buffer_path = ""; + m_prev_decoder_time = -1; + m_decoder_time_valid_state = 0; + m_errorInfo.missing_codec = ""; + audioSink = videoSink = NULL; + + CONNECT(m_subtitle_sync_timer->timeout, eServiceMP3::pushSubtitles); + CONNECT(m_pump.recv_msg, eServiceMP3::gstPoll); + CONNECT(m_nownext_timer->timeout, eServiceMP3::updateEpgCacheNowNext); + m_aspect = m_width = m_height = m_framerate = m_progressive = -1; + + m_state = stIdle; + eDebug("eServiceMP3::construct!"); + + const char *filename = m_ref.path.c_str(); + const char *ext = strrchr(filename, '.'); + if (!ext) + ext = filename + strlen(filename); + + m_sourceinfo.is_video = FALSE; + m_sourceinfo.audiotype = atUnknown; + if ( (strcasecmp(ext, ".mpeg") && strcasecmp(ext, ".mpg") && strcasecmp(ext, ".vob") && strcasecmp(ext, ".bin") && strcasecmp(ext, ".dat") ) == 0 ) + { + m_sourceinfo.containertype = ctMPEGPS; + m_sourceinfo.is_video = TRUE; + } + else if ( strcasecmp(ext, ".ts") == 0 ) + { + m_sourceinfo.containertype = ctMPEGTS; + m_sourceinfo.is_video = TRUE; + } + else if ( strcasecmp(ext, ".mkv") == 0 ) + { + m_sourceinfo.containertype = ctMKV; + m_sourceinfo.is_video = TRUE; + } + else if ( strcasecmp(ext, ".ogm") == 0 || strcasecmp(ext, ".ogv") == 0) + { + m_sourceinfo.containertype = ctOGG; + m_sourceinfo.is_video = TRUE; + } + else if ( strcasecmp(ext, ".avi") == 0 || strcasecmp(ext, ".divx") == 0) + { + m_sourceinfo.containertype = ctAVI; + m_sourceinfo.is_video = TRUE; + } + else if ( strcasecmp(ext, ".mp4") == 0 || strcasecmp(ext, ".mov") == 0 || strcasecmp(ext, ".m4v") == 0 || strcasecmp(ext, ".3gp") == 0 || strcasecmp(ext, ".3g2") == 0) + { + m_sourceinfo.containertype = ctMP4; + m_sourceinfo.is_video = TRUE; + } + else if ( strcasecmp(ext, ".asf") == 0 || strcasecmp(ext, ".wmv") == 0) + { + m_sourceinfo.containertype = ctASF; + m_sourceinfo.is_video = TRUE; + } + else if ( strcasecmp(ext, ".m4a") == 0 ) + { + m_sourceinfo.containertype = ctMP4; + m_sourceinfo.audiotype = atAAC; + } + else if ( strcasecmp(ext, ".mp3") == 0 ) + m_sourceinfo.audiotype = atMP3; + else if ( strcasecmp(ext, ".wma") == 0 ) + m_sourceinfo.audiotype = atWMA; + else if ( (strncmp(filename, "/autofs/", 8) || strncmp(filename+strlen(filename)-13, "/track-", 7) || strcasecmp(ext, ".wav")) == 0 ) + m_sourceinfo.containertype = ctCDA; + if ( strcasecmp(ext, ".dat") == 0 ) + { + m_sourceinfo.containertype = ctVCD; + m_sourceinfo.is_video = TRUE; + } + if ( strstr(filename, "://") ) + m_sourceinfo.is_streaming = TRUE; + + gchar *uri; + + if ( m_sourceinfo.is_streaming ) + { + uri = g_strdup_printf ("%s", filename); + m_streamingsrc_timeout = eTimer::create(eApp);; + CONNECT(m_streamingsrc_timeout->timeout, eServiceMP3::sourceTimeout); + + std::string config_str; + if (eConfigManager::getConfigBoolValue("config.mediaplayer.useAlternateUserAgent")) + { + m_useragent = eConfigManager::getConfigValue("config.mediaplayer.alternateUserAgent"); + } + if (m_useragent.empty()) + m_useragent = "Enigma2 Mediaplayer"; + m_extra_headers = eConfigManager::getConfigValue("config.mediaplayer.extraHeaders"); + if ( m_ref.getData(7) & BUFFERING_ENABLED ) + { + m_use_prefillbuffer = true; + if ( m_ref.getData(7) & PROGRESSIVE_DOWNLOAD ) + { + /* progressive download buffering */ + if (::access("/hdd/movie", X_OK) >= 0) + { + /* It looks like /hdd points to a valid mount, so we can store a download buffer on it */ + m_download_buffer_path = "/hdd/gstreamer_XXXXXXXXXX"; + } + } + } + } + else if ( m_sourceinfo.containertype == ctCDA ) + { + int i_track = atoi(filename+18); + uri = g_strdup_printf ("cdda://%i", i_track); + } + else if ( m_sourceinfo.containertype == ctVCD ) + { + int ret = -1; + int fd = open(filename,O_RDONLY); + if (fd >= 0) + { + char* tmp = new char[128*1024]; + ret = read(fd, tmp, 128*1024); + close(fd); + delete [] tmp; + } + if ( ret == -1 ) // this is a "REAL" VCD + uri = g_strdup_printf ("vcd://"); + else + uri = g_filename_to_uri(filename, NULL, NULL); + } + else + uri = g_filename_to_uri(filename, NULL, NULL); + + eDebug("eServiceMP3::playbin uri=%s", uri); +#if GST_VERSION_MAJOR < 1 + m_gst_playbin = gst_element_factory_make("playbin2", "playbin"); +#else + m_gst_playbin = gst_element_factory_make("playbin", "playbin"); +#endif + if ( m_gst_playbin ) + { + guint flags; + g_object_get(G_OBJECT (m_gst_playbin), "flags", &flags, NULL); + /* avoid video conversion, let the (hardware) sinks handle that */ + flags |= GST_PLAY_FLAG_NATIVE_VIDEO; + /* volume control is done by hardware */ + flags &= ~GST_PLAY_FLAG_SOFT_VOLUME; + if ( m_sourceinfo.is_streaming ) + { + g_signal_connect (G_OBJECT (m_gst_playbin), "notify::source", G_CALLBACK (playbinNotifySource), this); + if (m_download_buffer_path != "") + { + /* use progressive download buffering */ + flags |= GST_PLAY_FLAG_DOWNLOAD; + g_signal_connect(G_OBJECT(m_gst_playbin), "element-added", G_CALLBACK(handleElementAdded), this); + /* limit file size */ + g_object_set(m_gst_playbin, "ring-buffer-max-size", (guint64)(8LL * 1024LL * 1024LL), NULL); + } + /* + * regardless whether or not we configured a progressive download file, use a buffer as well + * (progressive download might not work for all formats) + */ + flags |= GST_PLAY_FLAG_BUFFERING; + /* increase the default 2 second / 2 MB buffer limitations to 5s / 5MB */ + g_object_set(G_OBJECT(m_gst_playbin), "buffer-duration", 5LL * GST_SECOND, NULL); + g_object_set(G_OBJECT(m_gst_playbin), "buffer-size", m_buffer_size, NULL); + } + g_object_set (G_OBJECT (m_gst_playbin), "flags", flags, NULL); + g_object_set (G_OBJECT (m_gst_playbin), "uri", uri, NULL); + GstElement *subsink = gst_element_factory_make("subsink", "subtitle_sink"); + if (!subsink) + eDebug("eServiceMP3::sorry, can't play: missing gst-plugin-subsink"); + else + { + m_subs_to_pull_handler_id = g_signal_connect (subsink, "new-buffer", G_CALLBACK (gstCBsubtitleAvail), this); + g_object_set (G_OBJECT (subsink), "caps", gst_caps_from_string("text/plain; text/x-plain; text/x-raw; text/x-pango-markup; video/x-dvd-subpicture; subpicture/x-pgs"), NULL); + g_object_set (G_OBJECT (m_gst_playbin), "text-sink", subsink, NULL); + g_object_set (G_OBJECT (m_gst_playbin), "current-text", m_currentSubtitleStream, NULL); + } + GstBus *bus = gst_pipeline_get_bus(GST_PIPELINE (m_gst_playbin)); +#if GST_VERSION_MAJOR < 1 + gst_bus_set_sync_handler(bus, gstBusSyncHandler, this); +#else + gst_bus_set_sync_handler(bus, gstBusSyncHandler, this, NULL); +#endif + gst_object_unref(bus); + char srt_filename[ext - filename + 5]; + strncpy(srt_filename,filename, ext - filename); + srt_filename[ext - filename] = '\0'; + strcat(srt_filename, ".srt"); + if (::access(srt_filename, R_OK) >= 0) + { + eDebug("eServiceMP3::subtitle uri: %s", g_filename_to_uri(srt_filename, NULL, NULL)); + g_object_set (G_OBJECT (m_gst_playbin), "suburi", g_filename_to_uri(srt_filename, NULL, NULL), NULL); + } + } else + { + m_event((iPlayableService*)this, evUser+12); + m_gst_playbin = 0; + m_errorInfo.error_message = "failed to create GStreamer pipeline!\n"; + + eDebug("eServiceMP3::sorry, can't play: %s",m_errorInfo.error_message.c_str()); + } + g_free(uri); +} + +eServiceMP3::~eServiceMP3() +{ + // disconnect subtitle callback + GstElement *subsink = gst_bin_get_by_name(GST_BIN(m_gst_playbin), "subtitle_sink"); + + if (subsink) + { + g_signal_handler_disconnect (subsink, m_subs_to_pull_handler_id); + gst_object_unref(subsink); + } + + if (m_subtitle_widget) m_subtitle_widget->destroy(); + m_subtitle_widget = 0; + + if (m_gst_playbin) + { + // disconnect sync handler callback + GstBus *bus = gst_pipeline_get_bus(GST_PIPELINE (m_gst_playbin)); +#if GST_VERSION_MAJOR < 1 + gst_bus_set_sync_handler(bus, NULL, NULL); +#else + gst_bus_set_sync_handler(bus, NULL, NULL, NULL); +#endif + gst_object_unref(bus); + } + + if (m_state == stRunning) + stop(); + + if (m_stream_tags) + gst_tag_list_free(m_stream_tags); + + if (audioSink) + { + gst_object_unref(GST_OBJECT(audioSink)); + audioSink = NULL; + } + if (videoSink) + { + gst_object_unref(GST_OBJECT(videoSink)); + videoSink = NULL; + } + if (m_gst_playbin) + { + gst_object_unref (GST_OBJECT (m_gst_playbin)); + eDebug("eServiceMP3::destruct!"); + } +} + +void eServiceMP3::updateEpgCacheNowNext() +{ + bool update = false; + ePtr<eServiceEvent> next = 0; + ePtr<eServiceEvent> ptr = 0; + eServiceReference ref(m_ref); + ref.type = eServiceFactoryMP3::id; + ref.path.clear(); + if (eEPGCache::getInstance() && eEPGCache::getInstance()->lookupEventTime(ref, -1, ptr) >= 0) + { + ePtr<eServiceEvent> current = m_event_now; + if (!current || !ptr || current->getEventId() != ptr->getEventId()) + { + update = true; + m_event_now = ptr; + time_t next_time = ptr->getBeginTime() + ptr->getDuration(); + if (eEPGCache::getInstance()->lookupEventTime(ref, next_time, ptr) >= 0) + { + next = ptr; + m_event_next = ptr; + } + } + } + + int refreshtime = 60; + if (!next) + { + next = m_event_next; + } + if (next) + { + time_t now = eDVBLocalTimeHandler::getInstance()->nowTime(); + refreshtime = (int)(next->getBeginTime() - now) + 3; + if (refreshtime <= 0 || refreshtime > 60) + { + refreshtime = 60; + } + } + m_nownext_timer->startLongTimer(refreshtime); + if (update) + { + m_event((iPlayableService*)this, evUpdatedEventInfo); + } +} + +DEFINE_REF(eServiceMP3); + +DEFINE_REF(eServiceMP3::GstMessageContainer); + +RESULT eServiceMP3::connectEvent(const Slot2<void,iPlayableService*,int> &event, ePtr<eConnection> &connection) +{ + connection = new eConnection((iPlayableService*)this, m_event.connect(event)); + return 0; +} + +RESULT eServiceMP3::start() +{ + ASSERT(m_state == stIdle); + + m_state = stRunning; + if (m_gst_playbin) + { + eDebug("eServiceMP3::starting pipeline"); + gst_element_set_state (m_gst_playbin, GST_STATE_PLAYING); + updateEpgCacheNowNext(); + } + + m_event(this, evStart); + + return 0; +} + +void eServiceMP3::sourceTimeout() +{ + eDebug("eServiceMP3::http source timeout! issuing eof..."); + m_event((iPlayableService*)this, evEOF); +} + +RESULT eServiceMP3::stop() +{ + ASSERT(m_state != stIdle); + + if (m_state == stStopped) + return -1; + + eDebug("eServiceMP3::stop %s", m_ref.path.c_str()); + gst_element_set_state(m_gst_playbin, GST_STATE_NULL); + m_state = stStopped; + m_nownext_timer->stop(); + + return 0; +} + +RESULT eServiceMP3::setTarget(int target) +{ + return -1; +} + +RESULT eServiceMP3::pause(ePtr<iPauseableService> &ptr) +{ + ptr=this; + return 0; +} + +RESULT eServiceMP3::setSlowMotion(int ratio) +{ + if (!ratio) + return 0; + eDebug("eServiceMP3::setSlowMotion ratio=%f",1.0/(gdouble)ratio); + return trickSeek(1.0/(gdouble)ratio); +} + +RESULT eServiceMP3::setFastForward(int ratio) +{ + eDebug("eServiceMP3::setFastForward ratio=%i",ratio); + return trickSeek(ratio); +} + + // iPausableService +RESULT eServiceMP3::pause() +{ + if (!m_gst_playbin || m_state != stRunning) + return -1; + + trickSeek(0.0); + + return 0; +} + +RESULT eServiceMP3::unpause() +{ + if (!m_gst_playbin || m_state != stRunning) + return -1; + + trickSeek(1.0); + + return 0; +} + + /* iSeekableService */ +RESULT eServiceMP3::seek(ePtr<iSeekableService> &ptr) +{ + ptr = this; + return 0; +} + +RESULT eServiceMP3::getLength(pts_t &pts) +{ + if (!m_gst_playbin) + return -1; + + if (m_state != stRunning) + return -1; + + GstFormat fmt = GST_FORMAT_TIME; + gint64 len; +#if GST_VERSION_MAJOR < 1 + if (!gst_element_query_duration(m_gst_playbin, &fmt, &len)) +#else + if (!gst_element_query_duration(m_gst_playbin, fmt, &len)) +#endif + return -1; + /* len is in nanoseconds. we have 90 000 pts per second. */ + + pts = len / 11111LL; + return 0; +} + +RESULT eServiceMP3::seekToImpl(pts_t to) +{ + /* convert pts to nanoseconds */ + gint64 time_nanoseconds = to * 11111LL; + if (!gst_element_seek (m_gst_playbin, m_currentTrickRatio, GST_FORMAT_TIME, (GstSeekFlags)(GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT), + GST_SEEK_TYPE_SET, time_nanoseconds, + GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE)) + { + eDebug("eServiceMP3::seekTo failed"); + return -1; + } + + return 0; +} + +RESULT eServiceMP3::seekTo(pts_t to) +{ + RESULT ret = -1; + + if (m_gst_playbin) + { + m_prev_decoder_time = -1; + m_decoder_time_valid_state = 0; + ret = seekToImpl(to); + } + + return ret; +} + + +RESULT eServiceMP3::trickSeek(gdouble ratio) +{ + if (!m_gst_playbin) + return -1; + if (ratio > -0.01 && ratio < 0.01) + { + gst_element_set_state(m_gst_playbin, GST_STATE_PAUSED); + return 0; + } + + m_currentTrickRatio = ratio; + + bool validposition = false; + gint64 pos = 0; + pts_t pts; + if (getPlayPosition(pts) >= 0) + { + validposition = true; + pos = pts * 11111LL; + } + + gst_element_set_state(m_gst_playbin, GST_STATE_PLAYING); + + if (validposition) + { + if (ratio >= 0.0) + { + gst_element_seek(m_gst_playbin, ratio, GST_FORMAT_TIME, (GstSeekFlags)(GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_SKIP), GST_SEEK_TYPE_SET, pos, GST_SEEK_TYPE_SET, -1); + } + else + { + /* note that most elements will not support negative speed */ + gst_element_seek(m_gst_playbin, ratio, GST_FORMAT_TIME, (GstSeekFlags)(GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_SKIP), GST_SEEK_TYPE_SET, 0, GST_SEEK_TYPE_SET, pos); + } + } + + m_prev_decoder_time = -1; + m_decoder_time_valid_state = 0; + return 0; +} + + +RESULT eServiceMP3::seekRelative(int direction, pts_t to) +{ + if (!m_gst_playbin) + return -1; + + pts_t ppos; + if (getPlayPosition(ppos) < 0) return -1; + ppos += to * direction; + if (ppos < 0) + ppos = 0; + return seekTo(ppos); +} + +gint eServiceMP3::match_sinktype(GstElement *element, gpointer type) +{ + return strcmp(g_type_name(G_OBJECT_TYPE(element)), (const char*)type); +} + +RESULT eServiceMP3::getPlayPosition(pts_t &pts) +{ + gint64 pos; + pts = 0; + + if (!m_gst_playbin) + return -1; + if (m_state != stRunning) + return -1; + + if (audioSink || videoSink) + { + g_signal_emit_by_name(audioSink ? audioSink : videoSink, "get-decoder-time", &pos); + if (!GST_CLOCK_TIME_IS_VALID(pos)) return -1; + } + else + { + GstFormat fmt = GST_FORMAT_TIME; +#if GST_VERSION_MAJOR < 1 + if (!gst_element_query_position(m_gst_playbin, &fmt, &pos)) +#else + if (!gst_element_query_position(m_gst_playbin, fmt, &pos)) +#endif + { + eDebug("gst_element_query_position failed in getPlayPosition"); + return -1; + } + } + + /* pos is in nanoseconds. we have 90 000 pts per second. */ + pts = pos / 11111LL; + return 0; +} + +RESULT eServiceMP3::setTrickmode(int trick) +{ + /* trickmode is not yet supported by our dvbmediasinks. */ + return -1; +} + +RESULT eServiceMP3::isCurrentlySeekable() +{ + int ret = 3; /* just assume that seeking and fast/slow winding are possible */ + + if (!m_gst_playbin) + return 0; + if (m_state != stRunning) + return 0; + + return ret; +} + +RESULT eServiceMP3::info(ePtr<iServiceInformation>&i) +{ + i = this; + return 0; +} + +RESULT eServiceMP3::getName(std::string &name) +{ + std::string title = m_ref.getName(); + if (title.empty()) + { + name = m_ref.path; + size_t n = name.rfind('/'); + if (n != std::string::npos) + name = name.substr(n + 1); + } + else + name = title; + return 0; +} + +RESULT eServiceMP3::getEvent(ePtr<eServiceEvent> &evt, int nownext) +{ + evt = nownext ? m_event_next : m_event_now; + if (!evt) + return -1; + return 0; +} + +int eServiceMP3::getInfo(int w) +{ + const gchar *tag = 0; + + switch (w) + { + case sServiceref: return m_ref; + case sVideoHeight: return m_height; + case sVideoWidth: return m_width; + case sFrameRate: return m_framerate; + case sProgressive: return m_progressive; + case sAspect: return m_aspect; + case sTagTitle: + case sTagArtist: + case sTagAlbum: + case sTagTitleSortname: + case sTagArtistSortname: + case sTagAlbumSortname: + case sTagDate: + case sTagComposer: + case sTagGenre: + case sTagComment: + case sTagExtendedComment: + case sTagLocation: + case sTagHomepage: + case sTagDescription: + case sTagVersion: + case sTagISRC: + case sTagOrganization: + case sTagCopyright: + case sTagCopyrightURI: + case sTagContact: + case sTagLicense: + case sTagLicenseURI: + case sTagCodec: + case sTagAudioCodec: + case sTagVideoCodec: + case sTagEncoder: + case sTagLanguageCode: + case sTagKeywords: + case sTagChannelMode: + case sUser+12: + return resIsString; + case sTagTrackGain: + case sTagTrackPeak: + case sTagAlbumGain: + case sTagAlbumPeak: + case sTagReferenceLevel: + case sTagBeatsPerMinute: + case sTagImage: + case sTagPreviewImage: + case sTagAttachment: + return resIsPyObject; + case sTagTrackNumber: + tag = GST_TAG_TRACK_NUMBER; + break; + case sTagTrackCount: + tag = GST_TAG_TRACK_COUNT; + break; + case sTagAlbumVolumeNumber: + tag = GST_TAG_ALBUM_VOLUME_NUMBER; + break; + case sTagAlbumVolumeCount: + tag = GST_TAG_ALBUM_VOLUME_COUNT; + break; + case sTagBitrate: + tag = GST_TAG_BITRATE; + break; + case sTagNominalBitrate: + tag = GST_TAG_NOMINAL_BITRATE; + break; + case sTagMinimumBitrate: + tag = GST_TAG_MINIMUM_BITRATE; + break; + case sTagMaximumBitrate: + tag = GST_TAG_MAXIMUM_BITRATE; + break; + case sTagSerial: + tag = GST_TAG_SERIAL; + break; + case sTagEncoderVersion: + tag = GST_TAG_ENCODER_VERSION; + break; + case sTagCRC: + tag = "has-crc"; + break; + default: + return resNA; + } + + if (!m_stream_tags || !tag) + return 0; + + guint value; + if (gst_tag_list_get_uint(m_stream_tags, tag, &value)) + return (int) value; + + return 0; +} + +std::string eServiceMP3::getInfoString(int w) +{ + if ( m_sourceinfo.is_streaming ) + { + switch (w) + { + case sProvider: + return "IPTV"; + case sServiceref: + { + eServiceReference ref(m_ref); + ref.type = eServiceFactoryMP3::id; + ref.path.clear(); + return ref.toString(); + } + default: + break; + } + } + + if ( !m_stream_tags && w < sUser && w > 26 ) + return ""; + const gchar *tag = 0; + switch (w) + { + case sTagTitle: + tag = GST_TAG_TITLE; + break; + case sTagArtist: + tag = GST_TAG_ARTIST; + break; + case sTagAlbum: + tag = GST_TAG_ALBUM; + break; + case sTagTitleSortname: + tag = GST_TAG_TITLE_SORTNAME; + break; + case sTagArtistSortname: + tag = GST_TAG_ARTIST_SORTNAME; + break; + case sTagAlbumSortname: + tag = GST_TAG_ALBUM_SORTNAME; + break; + case sTagDate: + GDate *date; + if (gst_tag_list_get_date(m_stream_tags, GST_TAG_DATE, &date)) + { + gchar res[5]; + g_date_strftime (res, sizeof(res), "%Y-%M-%D", date); + return (std::string)res; + } + break; + case sTagComposer: + tag = GST_TAG_COMPOSER; + break; + case sTagGenre: + tag = GST_TAG_GENRE; + break; + case sTagComment: + tag = GST_TAG_COMMENT; + break; + case sTagExtendedComment: + tag = GST_TAG_EXTENDED_COMMENT; + break; + case sTagLocation: + tag = GST_TAG_LOCATION; + break; + case sTagHomepage: + tag = GST_TAG_HOMEPAGE; + break; + case sTagDescription: + tag = GST_TAG_DESCRIPTION; + break; + case sTagVersion: + tag = GST_TAG_VERSION; + break; + case sTagISRC: + tag = GST_TAG_ISRC; + break; + case sTagOrganization: + tag = GST_TAG_ORGANIZATION; + break; + case sTagCopyright: + tag = GST_TAG_COPYRIGHT; + break; + case sTagCopyrightURI: + tag = GST_TAG_COPYRIGHT_URI; + break; + case sTagContact: + tag = GST_TAG_CONTACT; + break; + case sTagLicense: + tag = GST_TAG_LICENSE; + break; + case sTagLicenseURI: + tag = GST_TAG_LICENSE_URI; + break; + case sTagCodec: + tag = GST_TAG_CODEC; + break; + case sTagAudioCodec: + tag = GST_TAG_AUDIO_CODEC; + break; + case sTagVideoCodec: + tag = GST_TAG_VIDEO_CODEC; + break; + case sTagEncoder: + tag = GST_TAG_ENCODER; + break; + case sTagLanguageCode: + tag = GST_TAG_LANGUAGE_CODE; + break; + case sTagKeywords: + tag = GST_TAG_KEYWORDS; + break; + case sTagChannelMode: + tag = "channel-mode"; + break; + case sUser+12: + return m_errorInfo.error_message; + default: + return ""; + } + if ( !tag ) + return ""; + gchar *value; + if (m_stream_tags && gst_tag_list_get_string(m_stream_tags, tag, &value)) + { + std::string res = value; + g_free(value); + return res; + } + return ""; +} + +ePtr<iServiceInfoContainer> eServiceMP3::getInfoObject(int w) +{ + eServiceMP3InfoContainer *container = new eServiceMP3InfoContainer; + ePtr<iServiceInfoContainer> retval = container; + const gchar *tag = 0; + bool isBuffer = false; + switch (w) + { + case sTagTrackGain: + tag = GST_TAG_TRACK_GAIN; + break; + case sTagTrackPeak: + tag = GST_TAG_TRACK_PEAK; + break; + case sTagAlbumGain: + tag = GST_TAG_ALBUM_GAIN; + break; + case sTagAlbumPeak: + tag = GST_TAG_ALBUM_PEAK; + break; + case sTagReferenceLevel: + tag = GST_TAG_REFERENCE_LEVEL; + break; + case sTagBeatsPerMinute: + tag = GST_TAG_BEATS_PER_MINUTE; + break; + case sTagImage: + tag = GST_TAG_IMAGE; + isBuffer = true; + break; + case sTagPreviewImage: + tag = GST_TAG_PREVIEW_IMAGE; + isBuffer = true; + break; + case sTagAttachment: + tag = GST_TAG_ATTACHMENT; + isBuffer = true; + break; + default: + break; + } + + if (m_stream_tags && tag) + { + if (isBuffer) + { + const GValue *gv_buffer = gst_tag_list_get_value_index(m_stream_tags, tag, 0); + if ( gv_buffer ) + { + GstBuffer *buffer; + buffer = gst_value_get_buffer (gv_buffer); + container->setBuffer(buffer); + } + } + else + { + gdouble value = 0.0; + gst_tag_list_get_double(m_stream_tags, tag, &value); + container->setDouble(value); + } + } + return retval; +} + +RESULT eServiceMP3::audioChannel(ePtr<iAudioChannelSelection> &ptr) +{ + ptr = this; + return 0; +} + +RESULT eServiceMP3::audioTracks(ePtr<iAudioTrackSelection> &ptr) +{ + ptr = this; + return 0; +} + +RESULT eServiceMP3::subtitle(ePtr<iSubtitleOutput> &ptr) +{ + ptr = this; + return 0; +} + +RESULT eServiceMP3::audioDelay(ePtr<iAudioDelay> &ptr) +{ + ptr = this; + return 0; +} + +int eServiceMP3::getNumberOfTracks() +{ + return m_audioStreams.size(); +} + +int eServiceMP3::getCurrentTrack() +{ + if (m_currentAudioStream == -1) + g_object_get (G_OBJECT (m_gst_playbin), "current-audio", &m_currentAudioStream, NULL); + return m_currentAudioStream; +} + +RESULT eServiceMP3::selectTrack(unsigned int i) +{ + bool validposition = false; + pts_t ppos = 0; + if (getPlayPosition(ppos) >= 0) + { + validposition = true; + ppos -= 90000; + if (ppos < 0) + ppos = 0; + } + + int ret = selectAudioStream(i); + if (!ret) + { + if (validposition) + { + /* flush */ + seekTo(ppos); + } + } + + return ret; +} + +int eServiceMP3::selectAudioStream(int i) +{ + int current_audio; + g_object_set (G_OBJECT (m_gst_playbin), "current-audio", i, NULL); + g_object_get (G_OBJECT (m_gst_playbin), "current-audio", ¤t_audio, NULL); + if ( current_audio == i ) + { + eDebug ("eServiceMP3::switched to audio stream %i", current_audio); + m_currentAudioStream = i; + return 0; + } + return -1; +} + +int eServiceMP3::getCurrentChannel() +{ + return STEREO; +} + +RESULT eServiceMP3::selectChannel(int i) +{ + eDebug("eServiceMP3::selectChannel(%i)",i); + return 0; +} + +RESULT eServiceMP3::getTrackInfo(struct iAudioTrackInfo &info, unsigned int i) +{ + if (i >= m_audioStreams.size()) + return -2; + info.m_description = m_audioStreams[i].codec; +/* if (m_audioStreams[i].type == atMPEG) + info.m_description = "MPEG"; + else if (m_audioStreams[i].type == atMP3) + info.m_description = "MP3"; + else if (m_audioStreams[i].type == atAC3) + info.m_description = "AC3"; + else if (m_audioStreams[i].type == atAAC) + info.m_description = "AAC"; + else if (m_audioStreams[i].type == atDTS) + info.m_description = "DTS"; + else if (m_audioStreams[i].type == atPCM) + info.m_description = "PCM"; + else if (m_audioStreams[i].type == atOGG) + info.m_description = "OGG"; + else if (m_audioStreams[i].type == atFLAC) + info.m_description = "FLAC"; + else + info.m_description = "???";*/ + if (info.m_language.empty()) + info.m_language = m_audioStreams[i].language_code; + return 0; +} + +subtype_t getSubtitleType(GstPad* pad, gchar *g_codec=NULL) +{ + subtype_t type = stUnknown; +#if GST_VERSION_MAJOR < 1 + GstCaps* caps = gst_pad_get_negotiated_caps(pad); +#else + GstCaps* caps = gst_pad_get_current_caps(pad); +#endif + if (!caps && !g_codec) + { + caps = gst_pad_get_allowed_caps(pad); + } + + if (caps && !gst_caps_is_empty(caps)) + { + GstStructure* str = gst_caps_get_structure(caps, 0); + if (str) + { + const gchar *g_type = gst_structure_get_name(str); + eDebug("getSubtitleType::subtitle probe caps type=%s", g_type ? g_type : "(null)"); + if (g_type) + { + if ( !strcmp(g_type, "video/x-dvd-subpicture") ) + type = stVOB; + else if ( !strcmp(g_type, "text/x-pango-markup") ) + type = stSRT; + else if ( !strcmp(g_type, "text/plain") || !strcmp(g_type, "text/x-plain") || !strcmp(g_type, "text/x-raw") ) + type = stPlainText; + else if ( !strcmp(g_type, "subpicture/x-pgs") ) + type = stPGS; + else + eDebug("getSubtitleType::unsupported subtitle caps %s (%s)", g_type, g_codec ? g_codec : "(null)"); + } + } + } + else if ( g_codec ) + { + eDebug("getSubtitleType::subtitle probe codec tag=%s", g_codec); + if ( !strcmp(g_codec, "VOB") ) + type = stVOB; + else if ( !strcmp(g_codec, "SubStation Alpha") || !strcmp(g_codec, "SSA") ) + type = stSSA; + else if ( !strcmp(g_codec, "ASS") ) + type = stASS; + else if ( !strcmp(g_codec, "SRT") ) + type = stSRT; + else if ( !strcmp(g_codec, "UTF-8 plain text") ) + type = stPlainText; + else + eDebug("getSubtitleType::unsupported subtitle codec %s", g_codec); + } + else + eDebug("getSubtitleType::unidentifiable subtitle stream!"); + + return type; +} + +void eServiceMP3::gstBusCall(GstMessage *msg) +{ + if (!msg) + return; + gchar *sourceName; + GstObject *source; + source = GST_MESSAGE_SRC(msg); + if (!GST_IS_OBJECT(source)) + return; + sourceName = gst_object_get_name(source); +#if 0 + gchar *string; + if (gst_message_get_structure(msg)) + string = gst_structure_to_string(gst_message_get_structure(msg)); + else + string = g_strdup(GST_MESSAGE_TYPE_NAME(msg)); + eDebug("eTsRemoteSource::gst_message from %s: %s", sourceName, string); + g_free(string); +#endif + switch (GST_MESSAGE_TYPE (msg)) + { + case GST_MESSAGE_EOS: + m_event((iPlayableService*)this, evEOF); + break; + case GST_MESSAGE_STATE_CHANGED: + { + if(GST_MESSAGE_SRC(msg) != GST_OBJECT(m_gst_playbin)) + break; + + GstState old_state, new_state; + gst_message_parse_state_changed(msg, &old_state, &new_state, NULL); + + if(old_state == new_state) + break; + + eDebug("eServiceMP3::state transition %s -> %s", gst_element_state_get_name(old_state), gst_element_state_get_name(new_state)); + + GstStateChange transition = (GstStateChange)GST_STATE_TRANSITION(old_state, new_state); + + switch(transition) + { + case GST_STATE_CHANGE_NULL_TO_READY: + { + } break; + case GST_STATE_CHANGE_READY_TO_PAUSED: + { +#if GST_VERSION_MAJOR >= 1 + GValue element = { 0, }; +#endif + GstIterator *children; + GstElement *subsink = gst_bin_get_by_name(GST_BIN(m_gst_playbin), "subtitle_sink"); + if (subsink) + { +#ifdef GSTREAMER_SUBTITLE_SYNC_MODE_BUG + /* + * HACK: disable sync mode for now, gstreamer suffers from a bug causing sparse streams to loose sync, after pause/resume / skip + * see: https://bugzilla.gnome.org/show_bug.cgi?id=619434 + * Sideeffect of using sync=false is that we receive subtitle buffers (far) ahead of their + * display time. + * Not too far ahead for subtitles contained in the media container. + * But for external srt files, we could receive all subtitles at once. + * And not just once, but after each pause/resume / skip. + * So as soon as gstreamer has been fixed to keep sync in sparse streams, sync needs to be re-enabled. + */ + g_object_set (G_OBJECT (subsink), "sync", FALSE, NULL); +#endif +#if 0 + /* we should not use ts-offset to sync with the decoder time, we have to do our own decoder timekeeping */ + g_object_set (G_OBJECT (subsink), "ts-offset", -2LL * GST_SECOND, NULL); + /* late buffers probably will not occur very often */ + g_object_set (G_OBJECT (subsink), "max-lateness", 0LL, NULL); + /* avoid prerolling (it might not be a good idea to preroll a sparse stream) */ + g_object_set (G_OBJECT (subsink), "async", TRUE, NULL); +#endif + eDebug("eServiceMP3::subsink properties set!"); + gst_object_unref(subsink); + } + if (audioSink) + { + gst_object_unref(GST_OBJECT(audioSink)); + audioSink = NULL; + } + if (videoSink) + { + gst_object_unref(GST_OBJECT(videoSink)); + videoSink = NULL; + } + children = gst_bin_iterate_recurse(GST_BIN(m_gst_playbin)); +#if GST_VERSION_MAJOR < 1 + audioSink = GST_ELEMENT_CAST(gst_iterator_find_custom(children, (GCompareFunc)match_sinktype, (gpointer)"GstDVBAudioSink")); +#else + if (gst_iterator_find_custom(children, (GCompareFunc)match_sinktype, &element, (gpointer)"GstDVBAudioSink")) + { + audioSink = g_value_dup_object(&element); + g_value_unset(&element); + } +#endif + gst_iterator_free(children); + children = gst_bin_iterate_recurse(GST_BIN(m_gst_playbin)); +#if GST_VERSION_MAJOR < 1 + videoSink = GST_ELEMENT_CAST(gst_iterator_find_custom(children, (GCompareFunc)match_sinktype, (gpointer)"GstDVBVideoSink")); +#else + if (gst_iterator_find_custom(children, (GCompareFunc)match_sinktype, &element, (gpointer)"GstDVBVideoSink")) + { + videoSink = g_value_dup_object(&element); + g_value_unset(&element); + } +#endif + gst_iterator_free(children); + + m_is_live = (gst_element_get_state(m_gst_playbin, NULL, NULL, 0LL) == GST_STATE_CHANGE_NO_PREROLL); + + setAC3Delay(ac3_delay); + setPCMDelay(pcm_delay); + } break; + case GST_STATE_CHANGE_PAUSED_TO_PLAYING: + { + if ( m_sourceinfo.is_streaming && m_streamingsrc_timeout ) + m_streamingsrc_timeout->stop(); + } break; + case GST_STATE_CHANGE_PLAYING_TO_PAUSED: + { + } break; + case GST_STATE_CHANGE_PAUSED_TO_READY: + { + if (audioSink) + { + gst_object_unref(GST_OBJECT(audioSink)); + audioSink = NULL; + } + if (videoSink) + { + gst_object_unref(GST_OBJECT(videoSink)); + videoSink = NULL; + } + } break; + case GST_STATE_CHANGE_READY_TO_NULL: + { + } break; + } + break; + } + case GST_MESSAGE_ERROR: + { + gchar *debug; + GError *err; + gst_message_parse_error (msg, &err, &debug); + g_free (debug); + eWarning("Gstreamer error: %s (%i) from %s", err->message, err->code, sourceName ); + if ( err->domain == GST_STREAM_ERROR ) + { + if ( err->code == GST_STREAM_ERROR_CODEC_NOT_FOUND ) + { + if ( g_strrstr(sourceName, "videosink") ) + m_event((iPlayableService*)this, evUser+11); + else if ( g_strrstr(sourceName, "audiosink") ) + m_event((iPlayableService*)this, evUser+10); + } + } + g_error_free(err); + break; + } + case GST_MESSAGE_INFO: + { + gchar *debug; + GError *inf; + + gst_message_parse_info (msg, &inf, &debug); + g_free (debug); + if ( inf->domain == GST_STREAM_ERROR && inf->code == GST_STREAM_ERROR_DECODE ) + { + if ( g_strrstr(sourceName, "videosink") ) + m_event((iPlayableService*)this, evUser+14); + } + g_error_free(inf); + break; + } + case GST_MESSAGE_TAG: + { + GstTagList *tags, *result; + gst_message_parse_tag(msg, &tags); + + result = gst_tag_list_merge(m_stream_tags, tags, GST_TAG_MERGE_REPLACE); + if (result) + { + if (m_stream_tags) + gst_tag_list_free(m_stream_tags); + m_stream_tags = result; + } + + const GValue *gv_image = gst_tag_list_get_value_index(tags, GST_TAG_IMAGE, 0); + if ( gv_image ) + { + GstBuffer *buf_image; + buf_image = gst_value_get_buffer (gv_image); + int fd = open("/tmp/.id3coverart", O_CREAT|O_WRONLY|O_TRUNC, 0644); + if (fd >= 0) + { + guint8 *data; + gsize size; +#if GST_VERSION_MAJOR < 1 + data = GST_BUFFER_DATA(buf_image); + size = GST_BUFFER_SIZE(buf_image); +#else + GstMapInfo map; + gst_buffer_map(buf_image, &map, GST_MAP_READ); + data = map.data; + size = map.size; +#endif + int ret = write(fd, data, size); +#if GST_VERSION_MAJOR >= 1 + gst_buffer_unmap(buf_image, &map); +#endif + close(fd); + eDebug("eServiceMP3::/tmp/.id3coverart %d bytes written ", ret); + } + m_event((iPlayableService*)this, evUser+13); + } + gst_tag_list_free(tags); + m_event((iPlayableService*)this, evUpdatedInfo); + break; + } + case GST_MESSAGE_ASYNC_DONE: + { + if(GST_MESSAGE_SRC(msg) != GST_OBJECT(m_gst_playbin)) + break; + + gint i, n_video = 0, n_audio = 0, n_text = 0; + + g_object_get (m_gst_playbin, "n-video", &n_video, NULL); + g_object_get (m_gst_playbin, "n-audio", &n_audio, NULL); + g_object_get (m_gst_playbin, "n-text", &n_text, NULL); + + eDebug("eServiceMP3::async-done - %d video, %d audio, %d subtitle", n_video, n_audio, n_text); + + if ( n_video + n_audio <= 0 ) + stop(); + + m_audioStreams.clear(); + m_subtitleStreams.clear(); + + for (i = 0; i < n_audio; i++) + { + audioStream audio; + gchar *g_codec, *g_lang; + GstTagList *tags = NULL; + GstPad* pad = 0; + g_signal_emit_by_name (m_gst_playbin, "get-audio-pad", i, &pad); +#if GST_VERSION_MAJOR < 1 + GstCaps* caps = gst_pad_get_negotiated_caps(pad); +#else + GstCaps* caps = gst_pad_get_current_caps(pad); +#endif + if (!caps) + continue; + GstStructure* str = gst_caps_get_structure(caps, 0); + const gchar *g_type = gst_structure_get_name(str); + eDebug("AUDIO STRUCT=%s", g_type); + audio.type = gstCheckAudioPad(str); + audio.language_code = "und"; + audio.codec = g_type; + g_codec = NULL; + g_lang = NULL; + g_signal_emit_by_name (m_gst_playbin, "get-audio-tags", i, &tags); +#if GST_VERSION_MAJOR < 1 + if (tags && gst_is_tag_list(tags)) +#else + if (tags && GST_IS_TAG_LIST(tags)) +#endif + { + if (gst_tag_list_get_string(tags, GST_TAG_AUDIO_CODEC, &g_codec)) + { + audio.codec = std::string(g_codec); + g_free(g_codec); + } + if (gst_tag_list_get_string(tags, GST_TAG_LANGUAGE_CODE, &g_lang)) + { + audio.language_code = std::string(g_lang); + g_free(g_lang); + } + gst_tag_list_free(tags); + } + eDebug("eServiceMP3::audio stream=%i codec=%s language=%s", i, audio.codec.c_str(), audio.language_code.c_str()); + m_audioStreams.push_back(audio); + gst_caps_unref(caps); + } + + for (i = 0; i < n_text; i++) + { + gchar *g_codec = NULL, *g_lang = NULL; + GstTagList *tags = NULL; + g_signal_emit_by_name (m_gst_playbin, "get-text-tags", i, &tags); + subtitleStream subs; + subs.language_code = "und"; +#if GST_VERSION_MAJOR < 1 + if (tags && gst_is_tag_list(tags)) +#else + if (tags && GST_IS_TAG_LIST(tags)) +#endif + { + if (gst_tag_list_get_string(tags, GST_TAG_LANGUAGE_CODE, &g_lang)) + { + subs.language_code = g_lang; + g_free(g_lang); + } + gst_tag_list_get_string(tags, GST_TAG_SUBTITLE_CODEC, &g_codec); + gst_tag_list_free(tags); + } + + eDebug("eServiceMP3::subtitle stream=%i language=%s codec=%s", i, subs.language_code.c_str(), g_codec ? g_codec : "(null)"); + + GstPad* pad = 0; + g_signal_emit_by_name (m_gst_playbin, "get-text-pad", i, &pad); + if ( pad ) + g_signal_connect (G_OBJECT (pad), "notify::caps", G_CALLBACK (gstTextpadHasCAPS), this); + + subs.type = getSubtitleType(pad, g_codec); + g_free(g_codec); + m_subtitleStreams.push_back(subs); + } + m_event((iPlayableService*)this, evUpdatedInfo); + + if ( m_errorInfo.missing_codec != "" ) + { + if (m_errorInfo.missing_codec.find("video/") == 0 || (m_errorInfo.missing_codec.find("audio/") == 0 && m_audioStreams.empty())) + m_event((iPlayableService*)this, evUser+12); + } + break; + } + case GST_MESSAGE_ELEMENT: + { + const GstStructure *msgstruct = gst_message_get_structure(msg); + if (msgstruct) + { + if ( gst_is_missing_plugin_message(msg) ) + { + GstCaps *caps = NULL; + gst_structure_get (msgstruct, "detail", GST_TYPE_CAPS, &caps, NULL); + if (caps) + { + std::string codec = (const char*) gst_caps_to_string(caps); + gchar *description = gst_missing_plugin_message_get_description(msg); + if ( description ) + { + eDebug("eServiceMP3::m_errorInfo.missing_codec = %s", codec.c_str()); + m_errorInfo.error_message = "GStreamer plugin " + (std::string)description + " not available!\n"; + m_errorInfo.missing_codec = codec.substr(0,(codec.find_first_of(','))); + g_free(description); + } + gst_caps_unref(caps); + } + } + else + { + const gchar *eventname = gst_structure_get_name(msgstruct); + if ( eventname ) + { + if (!strcmp(eventname, "eventSizeChanged") || !strcmp(eventname, "eventSizeAvail")) + { + gst_structure_get_int (msgstruct, "aspect_ratio", &m_aspect); + gst_structure_get_int (msgstruct, "width", &m_width); + gst_structure_get_int (msgstruct, "height", &m_height); + if (strstr(eventname, "Changed")) + m_event((iPlayableService*)this, evVideoSizeChanged); + } + else if (!strcmp(eventname, "eventFrameRateChanged") || !strcmp(eventname, "eventFrameRateAvail")) + { + gst_structure_get_int (msgstruct, "frame_rate", &m_framerate); + if (strstr(eventname, "Changed")) + m_event((iPlayableService*)this, evVideoFramerateChanged); + } + else if (!strcmp(eventname, "eventProgressiveChanged") || !strcmp(eventname, "eventProgressiveAvail")) + { + gst_structure_get_int (msgstruct, "progressive", &m_progressive); + if (strstr(eventname, "Changed")) + m_event((iPlayableService*)this, evVideoProgressiveChanged); + } + else if (!strcmp(eventname, "redirect")) + { + const char *uri = gst_structure_get_string(msgstruct, "new-location"); + eDebug("redirect to %s", uri); + gst_element_set_state (m_gst_playbin, GST_STATE_NULL); + g_object_set(G_OBJECT (m_gst_playbin), "uri", uri, NULL); + gst_element_set_state (m_gst_playbin, GST_STATE_PLAYING); + } + } + } + } + break; + } + case GST_MESSAGE_BUFFERING: + if (m_state == stRunning && m_sourceinfo.is_streaming) + { + GstBufferingMode mode; + gst_message_parse_buffering(msg, &(m_bufferInfo.bufferPercent)); + eDebug("Buffering %u percent done", m_bufferInfo.bufferPercent); + gst_message_parse_buffering_stats(msg, &mode, &(m_bufferInfo.avgInRate), &(m_bufferInfo.avgOutRate), &(m_bufferInfo.bufferingLeft)); + m_event((iPlayableService*)this, evBuffering); + /* + * we don't react to buffer level messages, unless we are configured to use a prefill buffer + * (even if we are not configured to, we still use the buffer, but we rely on it to remain at the + * healthy level at all times, without ever having to pause the stream) + * + * Also, it does not make sense to pause the stream if it is a live stream + * (in which case the sink will not produce data while paused, so we won't + * recover from an empty buffer) + */ + if (m_use_prefillbuffer && !m_is_live && --m_ignore_buffering_messages <= 0) + { + if (m_bufferInfo.bufferPercent == 100) + { + GstState state; + gst_element_get_state(m_gst_playbin, &state, NULL, 0LL); + if (state != GST_STATE_PLAYING) + { + eDebug("start playing"); + gst_element_set_state (m_gst_playbin, GST_STATE_PLAYING); + } + /* + * when we start the pipeline, the contents of the buffer will immediately drain + * into the (hardware buffers of the) sinks, so we will receive low buffer level + * messages right away. + * Ignore the first few buffering messages, giving the buffer the chance to recover + * a bit, before we start handling empty buffer states again. + */ + m_ignore_buffering_messages = 5; + } + else if (m_bufferInfo.bufferPercent == 0) + { + eDebug("start pause"); + gst_element_set_state (m_gst_playbin, GST_STATE_PAUSED); + m_ignore_buffering_messages = 0; + } + else + { + m_ignore_buffering_messages = 0; + } + } + } + break; + case GST_MESSAGE_STREAM_STATUS: + { + GstStreamStatusType type; + GstElement *owner; + gst_message_parse_stream_status (msg, &type, &owner); + if ( type == GST_STREAM_STATUS_TYPE_CREATE && m_sourceinfo.is_streaming ) + { + if ( GST_IS_PAD(source) ) + owner = gst_pad_get_parent_element(GST_PAD(source)); + else if ( GST_IS_ELEMENT(source) ) + owner = GST_ELEMENT(source); + else + owner = 0; + if ( owner ) + { + GstElementFactory *factory = gst_element_get_factory(GST_ELEMENT(owner)); + const gchar *name = gst_plugin_feature_get_name(GST_PLUGIN_FEATURE(factory)); + if (!strcmp(name, "souphttpsrc")) + { + m_streamingsrc_timeout->start(HTTP_TIMEOUT*1000, true); + g_object_set (G_OBJECT (owner), "timeout", HTTP_TIMEOUT, NULL); + eDebug("eServiceMP3::GST_STREAM_STATUS_TYPE_CREATE -> setting timeout on %s to %is", name, HTTP_TIMEOUT); + } + } + if ( GST_IS_PAD(source) ) + gst_object_unref(owner); + } + break; + } + default: + break; + } + g_free (sourceName); +} + +void eServiceMP3::handleMessage(GstMessage *msg) +{ + if (GST_MESSAGE_TYPE(msg) == GST_MESSAGE_STATE_CHANGED && GST_MESSAGE_SRC(msg) != GST_OBJECT(m_gst_playbin)) + { + /* + * ignore verbose state change messages for all active elements; + * we only need to handle state-change events for the playbin + */ + gst_message_unref(msg); + return; + } + m_pump.send(new GstMessageContainer(1, msg, NULL, NULL)); +} + +GstBusSyncReply eServiceMP3::gstBusSyncHandler(GstBus *bus, GstMessage *message, gpointer user_data) +{ + eServiceMP3 *_this = (eServiceMP3*)user_data; + if (_this) _this->handleMessage(message); + return GST_BUS_DROP; +} + +void eServiceMP3::playbinNotifySource(GObject *object, GParamSpec *unused, gpointer user_data) +{ + GstElement *source = NULL; + eServiceMP3 *_this = (eServiceMP3*)user_data; + g_object_get(object, "source", &source, NULL); + if (source) + { + if (g_object_class_find_property(G_OBJECT_GET_CLASS(source), "user-agent") != 0 && !_this->m_useragent.empty()) + { + g_object_set(G_OBJECT(source), "user-agent", _this->m_useragent.c_str(), NULL); + } + if (g_object_class_find_property(G_OBJECT_GET_CLASS(source), "extra-headers") != 0 && !_this->m_extra_headers.empty()) + { +#if GST_VERSION_MAJOR < 1 + GstStructure *extras = gst_structure_empty_new("extras"); +#else + GstStructure *extras = gst_structure_new_empty("extras"); +#endif + size_t pos = 0; + while (pos != std::string::npos) + { + std::string name, value; + size_t start = pos; + size_t len = std::string::npos; + pos = _this->m_extra_headers.find(':', pos); + if (pos != std::string::npos) + { + len = pos - start; + pos++; + name = _this->m_extra_headers.substr(start, len); + start = pos; + len = std::string::npos; + pos = _this->m_extra_headers.find('|', pos); + if (pos != std::string::npos) + { + len = pos - start; + pos++; + } + value = _this->m_extra_headers.substr(start, len); + } + if (!name.empty() && !value.empty()) + { + GValue header; + eDebug("setting extra-header '%s:%s'", name.c_str(), value.c_str()); + memset(&header, 0, sizeof(GValue)); + g_value_init(&header, G_TYPE_STRING); + g_value_set_string(&header, value.c_str()); + gst_structure_set_value(extras, name.c_str(), &header); + } + else + { + eDebug("Invalid header format %s", _this->m_extra_headers.c_str()); + break; + } + } + if (gst_structure_n_fields(extras) > 0) + { + g_object_set(G_OBJECT(source), "extra-headers", extras, NULL); + } + gst_structure_free(extras); + } + gst_object_unref(source); + } +} + +void eServiceMP3::handleElementAdded(GstBin *bin, GstElement *element, gpointer user_data) +{ + eServiceMP3 *_this = (eServiceMP3*)user_data; + if (_this) + { + gchar *elementname = gst_element_get_name(element); + + if (g_str_has_prefix(elementname, "queue2")) + { + if (_this->m_download_buffer_path != "") + { + g_object_set(G_OBJECT(element), "temp-template", _this->m_download_buffer_path.c_str(), NULL); + } + else + { + g_object_set(G_OBJECT(element), "temp-template", NULL, NULL); + } + } + else if (g_str_has_prefix(elementname, "uridecodebin") +#if GST_VERSION_MAJOR < 1 + || g_str_has_prefix(elementname, "decodebin2")) +#else + || g_str_has_prefix(elementname, "decodebin")) +#endif + { + /* + * Listen for queue2 element added to uridecodebin/decodebin2 as well. + * Ignore other bins since they may have unrelated queues + */ + g_signal_connect(element, "element-added", G_CALLBACK(handleElementAdded), user_data); + } + g_free(elementname); + } +} + +audiotype_t eServiceMP3::gstCheckAudioPad(GstStructure* structure) +{ + if (!structure) + return atUnknown; + + if ( gst_structure_has_name (structure, "audio/mpeg")) + { + gint mpegversion, layer = -1; + if (!gst_structure_get_int (structure, "mpegversion", &mpegversion)) + return atUnknown; + + switch (mpegversion) { + case 1: + { + gst_structure_get_int (structure, "layer", &layer); + if ( layer == 3 ) + return atMP3; + else + return atMPEG; + break; + } + case 2: + return atAAC; + case 4: + return atAAC; + default: + return atUnknown; + } + } + + else if ( gst_structure_has_name (structure, "audio/x-ac3") || gst_structure_has_name (structure, "audio/ac3") ) + return atAC3; + else if ( gst_structure_has_name (structure, "audio/x-dts") || gst_structure_has_name (structure, "audio/dts") ) + return atDTS; +#if GST_VERSION_MAJOR < 1 + else if ( gst_structure_has_name (structure, "audio/x-raw-int") ) +#else + else if ( gst_structure_has_name (structure, "audio/x-raw") ) +#endif + return atPCM; + + return atUnknown; +} + +void eServiceMP3::gstPoll(ePtr<GstMessageContainer> const &msg) +{ + switch (msg->getType()) + { + case 1: + { + GstMessage *gstmessage = *((GstMessageContainer*)msg); + if (gstmessage) + { + gstBusCall(gstmessage); + } + break; + } + case 2: + { + GstBuffer *buffer = *((GstMessageContainer*)msg); + if (buffer) + { + pullSubtitle(buffer); + } + break; + } + case 3: + { + GstPad *pad = *((GstMessageContainer*)msg); + gstTextpadHasCAPS_synced(pad); + break; + } + } +} + +eAutoInitPtr<eServiceFactoryMP3> init_eServiceFactoryMP3(eAutoInitNumbers::service+1, "eServiceFactoryMP3"); + +void eServiceMP3::gstCBsubtitleAvail(GstElement *subsink, GstBuffer *buffer, gpointer user_data) +{ + eServiceMP3 *_this = (eServiceMP3*)user_data; + if (_this->m_currentSubtitleStream < 0) + { + if (buffer) gst_buffer_unref(buffer); + return; + } + _this->m_pump.send(new GstMessageContainer(2, NULL, NULL, buffer)); +} + +void eServiceMP3::gstTextpadHasCAPS(GstPad *pad, GParamSpec * unused, gpointer user_data) +{ + eServiceMP3 *_this = (eServiceMP3*)user_data; + + gst_object_ref (pad); + + _this->m_pump.send(new GstMessageContainer(3, NULL, pad, NULL)); +} + +void eServiceMP3::gstTextpadHasCAPS_synced(GstPad *pad) +{ + GstCaps *caps = NULL; + + g_object_get (G_OBJECT (pad), "caps", &caps, NULL); + + if (caps) + { + subtitleStream subs; + + eDebug("gstTextpadHasCAPS:: signal::caps = %s", gst_caps_to_string(caps)); +// eDebug("gstGhostpadHasCAPS_synced %p %d", pad, m_subtitleStreams.size()); + + if (m_currentSubtitleStream >= 0 && m_currentSubtitleStream < (int)m_subtitleStreams.size()) + subs = m_subtitleStreams[m_currentSubtitleStream]; + else { + subs.type = stUnknown; + subs.pad = pad; + } + + if ( subs.type == stUnknown ) + { + GstTagList *tags = NULL; + gchar *g_lang = NULL; + g_signal_emit_by_name (m_gst_playbin, "get-text-tags", m_currentSubtitleStream, &tags); + + subs.language_code = "und"; + subs.type = getSubtitleType(pad); +#if GST_VERSION_MAJOR < 1 + if (tags && gst_is_tag_list(tags)) +#else + if (tags && GST_IS_TAG_LIST(tags)) +#endif + { + if (gst_tag_list_get_string(tags, GST_TAG_LANGUAGE_CODE, &g_lang)) + { + subs.language_code = std::string(g_lang); + g_free(g_lang); + } + } + + if (m_currentSubtitleStream >= 0 && m_currentSubtitleStream < (int)m_subtitleStreams.size()) + m_subtitleStreams[m_currentSubtitleStream] = subs; + else + m_subtitleStreams.push_back(subs); + } + +// eDebug("gstGhostpadHasCAPS:: m_gst_prev_subtitle_caps=%s equal=%i",gst_caps_to_string(m_gst_prev_subtitle_caps),gst_caps_is_equal(m_gst_prev_subtitle_caps, caps)); + + gst_caps_unref (caps); + } +} + +void eServiceMP3::pullSubtitle(GstBuffer *buffer) +{ + if (buffer && m_currentSubtitleStream >= 0 && m_currentSubtitleStream < (int)m_subtitleStreams.size()) + { + gint64 buf_pos = GST_BUFFER_TIMESTAMP(buffer); + gint64 duration_ns = GST_BUFFER_DURATION(buffer); +#if GST_VERSION_MAJOR < 1 + size_t len = GST_BUFFER_SIZE(buffer); +#else + size_t len = gst_buffer_get_size(buffer); +#endif + int subType = m_subtitleStreams[m_currentSubtitleStream].type; + eDebug("pullSubtitle type=%d size=%zu", subType, len); + if ( subType ) + { + if ( subType < stVOB ) + { + int delay = eConfigManager::getConfigIntValue("config.subtitles.pango_subtitles_delay"); + int subtitle_fps = eConfigManager::getConfigIntValue("config.subtitles.pango_subtitles_fps"); + + double convert_fps = 1.0; + if (subtitle_fps > 1 && m_framerate > 0) + convert_fps = subtitle_fps / (double)m_framerate; + +#if GST_VERSION_MAJOR < 1 + std::string line((const char*)GST_BUFFER_DATA(buffer), len); +#else + std::string line(len); + gst_buffer_extract(buffer, 0, (char*)line.data(), len); +#endif + eDebug("got new text subtitle @ buf_pos = %lld ns (in pts=%lld), dur=%lld: '%s' ", buf_pos, buf_pos/11111, duration_ns, line.c_str()); + + uint32_t start_ms = ((buf_pos / 1000000ULL) * convert_fps) + delay; + uint32_t end_ms = start_ms + (duration_ns / 1000000ULL); + m_subtitle_pages.insert(subtitle_pages_map_pair_t(end_ms, subtitle_page_t(start_ms, end_ms, line))); + m_subtitle_sync_timer->start(1, true); + } + else + { + eDebug("unsupported subpicture... ignoring"); + } + } + } +} + +void eServiceMP3::pushSubtitles() +{ + pts_t running_pts = 0; + int32_t next_timer = 0, decoder_ms, start_ms, end_ms, diff_start_ms, diff_end_ms; + subtitle_pages_map_t::iterator current; + + // wait until clock is stable + + if (getPlayPosition(running_pts) < 0) + m_decoder_time_valid_state = 0; + + if (m_decoder_time_valid_state < 4) + { + m_decoder_time_valid_state++; + + if (m_prev_decoder_time == running_pts) + m_decoder_time_valid_state = 0; + + if (m_decoder_time_valid_state < 4) + { + //eDebug("*** push subtitles, waiting for clock to stabilise"); + m_prev_decoder_time = running_pts; + next_timer = 50; + goto exit; + } + + //eDebug("*** push subtitles, clock stable"); + } + + decoder_ms = running_pts / 90; + +#if 0 + eDebug("\n*** all subs: "); + + for (current = m_subtitle_pages.begin(); current != m_subtitle_pages.end(); current++) + { + start_ms = current->second.start_ms; + end_ms = current->second.end_ms; + diff_start_ms = start_ms - decoder_ms; + diff_end_ms = end_ms - decoder_ms; + + eDebug(" start: %d, end: %d, diff_start: %d, diff_end: %d: %s", + start_ms, end_ms, diff_start_ms, diff_end_ms, current->second.text.c_str()); + } + + eDebug("\n\n"); +#endif + + for (current = m_subtitle_pages.lower_bound(decoder_ms); current != m_subtitle_pages.end(); current++) + { + start_ms = current->second.start_ms; + end_ms = current->second.end_ms; + diff_start_ms = start_ms - decoder_ms; + diff_end_ms = end_ms - decoder_ms; + +#if 0 + eDebug("*** next subtitle: decoder: %d, start: %d, end: %d, duration_ms: %d, diff_start: %d, diff_end: %d : %s", + decoder_ms, start_ms, end_ms, end_ms - start_ms, diff_start_ms, diff_end_ms, current->second.text.c_str()); +#endif + + if (diff_end_ms < 0) + { + //eDebug("*** current sub has already ended, skip: %d\n", diff_end_ms); + continue; + } + + if (diff_start_ms > 20) + { + //eDebug("*** current sub in the future, start timer, %d\n", diff_start_ms); + next_timer = diff_start_ms; + goto exit; + } + + // showtime + + if (m_subtitle_widget) + { + //eDebug("*** current sub actual, show!"); + + ePangoSubtitlePage pango_page; + gRGB rgbcol(0xD0,0xD0,0xD0); + + pango_page.m_elements.push_back(ePangoSubtitlePageElement(rgbcol, current->second.text.c_str())); + pango_page.m_show_pts = start_ms * 90; // actually completely unused by widget! + pango_page.m_timeout = end_ms - decoder_ms; // take late start into account + + m_subtitle_widget->setPage(pango_page); + } + + //eDebug("*** no next sub scheduled, check NEXT subtitle"); + } + + // no more subs in cache, fall through + +exit: + if (next_timer == 0) + { + //eDebug("*** next timer = 0, set default timer!"); + next_timer = 1000; + } + + m_subtitle_sync_timer->start(next_timer, true); + + eDebug("\n\n"); +} + +RESULT eServiceMP3::enableSubtitles(iSubtitleUser *user, struct SubtitleTrack &track) +{ + if (m_currentSubtitleStream != track.pid) + { + g_object_set (G_OBJECT (m_gst_playbin), "current-text", -1, NULL); + m_subtitle_sync_timer->stop(); + m_subtitle_pages.clear(); + m_prev_decoder_time = -1; + m_decoder_time_valid_state = 0; + m_currentSubtitleStream = track.pid; + m_cachedSubtitleStream = m_currentSubtitleStream; + g_object_set (G_OBJECT (m_gst_playbin), "current-text", m_currentSubtitleStream, NULL); + + m_subtitle_widget = user; + + eDebug ("eServiceMP3::switched to subtitle stream %i", m_currentSubtitleStream); + +#ifdef GSTREAMER_SUBTITLE_SYNC_MODE_BUG + /* + * when we're running the subsink in sync=false mode, + * we have to force a seek, before the new subtitle stream will start + */ + seekRelative(-1, 90000); +#endif + } + + return 0; +} + +RESULT eServiceMP3::disableSubtitles() +{ + eDebug("eServiceMP3::disableSubtitles"); + m_currentSubtitleStream = -1; + m_cachedSubtitleStream = m_currentSubtitleStream; + g_object_set (G_OBJECT (m_gst_playbin), "current-text", m_currentSubtitleStream, NULL); + m_subtitle_sync_timer->stop(); + m_subtitle_pages.clear(); + m_prev_decoder_time = -1; + m_decoder_time_valid_state = 0; + if (m_subtitle_widget) m_subtitle_widget->destroy(); + m_subtitle_widget = 0; + return 0; +} + +RESULT eServiceMP3::getCachedSubtitle(struct SubtitleTrack &track) +{ + + bool autoturnon = eConfigManager::getConfigBoolValue("config.subtitles.pango_autoturnon", true); + if (!autoturnon) + return -1; + + if (m_cachedSubtitleStream >= 0 && m_cachedSubtitleStream < (int)m_subtitleStreams.size()) + { + track.type = 2; + track.pid = m_cachedSubtitleStream; + track.page_number = int(m_subtitleStreams[m_cachedSubtitleStream].type); + track.magazine_number = 0; + return 0; + } + return -1; +} + +RESULT eServiceMP3::getSubtitleList(std::vector<struct SubtitleTrack> &subtitlelist) +{ +// eDebug("eServiceMP3::getSubtitleList"); + int stream_idx = 0; + + for (std::vector<subtitleStream>::iterator IterSubtitleStream(m_subtitleStreams.begin()); IterSubtitleStream != m_subtitleStreams.end(); ++IterSubtitleStream) + { + subtype_t type = IterSubtitleStream->type; + switch(type) + { + case stUnknown: + case stVOB: + case stPGS: + break; + default: + { + struct SubtitleTrack track; + track.type = 2; + track.pid = stream_idx; + track.page_number = int(type); + track.magazine_number = 0; + track.language_code = IterSubtitleStream->language_code; + subtitlelist.push_back(track); + } + } + stream_idx++; + } + eDebug("eServiceMP3::getSubtitleList finished"); + return 0; +} + +RESULT eServiceMP3::streamed(ePtr<iStreamedService> &ptr) +{ + ptr = this; + return 0; +} + +ePtr<iStreamBufferInfo> eServiceMP3::getBufferCharge() +{ + return new eStreamBufferInfo(m_bufferInfo.bufferPercent, m_bufferInfo.avgInRate, m_bufferInfo.avgOutRate, m_bufferInfo.bufferingLeft, m_buffer_size); +} + +int eServiceMP3::setBufferSize(int size) +{ + m_buffer_size = size; + g_object_set (G_OBJECT (m_gst_playbin), "buffer-size", m_buffer_size, NULL); + return 0; +} + +int eServiceMP3::getAC3Delay() +{ + return ac3_delay; +} + +int eServiceMP3::getPCMDelay() +{ + return pcm_delay; +} + +void eServiceMP3::setAC3Delay(int delay) +{ + ac3_delay = delay; + if (!m_gst_playbin || m_state != stRunning) + return; + else + { + int config_delay_int = delay; + + /* + * NOTE: We only look for dvbmediasinks. + * If either the video or audio sink is of a different type, + * we have no chance to get them synced anyway. + */ + if (videoSink) + { + config_delay_int += eConfigManager::getConfigIntValue("config.av.generalAC3delay"); + } + else + { + eDebug("dont apply ac3 delay when no video is running!"); + config_delay_int = 0; + } + + if (audioSink) + { + eTSMPEGDecoder::setHwAC3Delay(config_delay_int); + } + } +} + +void eServiceMP3::setPCMDelay(int delay) +{ + pcm_delay = delay; + if (!m_gst_playbin || m_state != stRunning) + return; + else + { + int config_delay_int = delay; + + /* + * NOTE: We only look for dvbmediasinks. + * If either the video or audio sink is of a different type, + * we have no chance to get them synced anyway. + */ + if (videoSink) + { + config_delay_int += eConfigManager::getConfigIntValue("config.av.generalPCMdelay"); + } + else + { + eDebug("dont apply pcm delay when no video is running!"); + config_delay_int = 0; + } + + if (audioSink) + { + eTSMPEGDecoder::setHwPCMDelay(config_delay_int); + } + } +} diff --git a/lib/service/servicemp3.h b/lib/service/servicemp3.h new file mode 100644 index 0000000..37bfb1b --- /dev/null +++ b/lib/service/servicemp3.h @@ -0,0 +1,339 @@ +#ifndef __servicemp3_h +#define __servicemp3_h + +#include <lib/base/message.h> +#include <lib/service/iservice.h> +#include <lib/dvb/pmt.h> +#include <lib/dvb/subtitle.h> +#include <lib/dvb/teletext.h> +#include <gst/gst.h> +/* for subtitles */ +#include <lib/gui/esubtitle.h> + +class eStaticServiceMP3Info; + +class eServiceFactoryMP3: public iServiceHandler +{ + DECLARE_REF(eServiceFactoryMP3); +public: + eServiceFactoryMP3(); + virtual ~eServiceFactoryMP3(); + enum { id = 0x1001 }; + + // iServiceHandler + RESULT play(const eServiceReference &, ePtr<iPlayableService> &ptr); + RESULT record(const eServiceReference &, ePtr<iRecordableService> &ptr); + RESULT list(const eServiceReference &, ePtr<iListableService> &ptr); + RESULT info(const eServiceReference &, ePtr<iStaticServiceInformation> &ptr); + RESULT offlineOperations(const eServiceReference &, ePtr<iServiceOfflineOperations> &ptr); +private: + ePtr<eStaticServiceMP3Info> m_service_info; +}; + +class eStaticServiceMP3Info: public iStaticServiceInformation +{ + DECLARE_REF(eStaticServiceMP3Info); + friend class eServiceFactoryMP3; + eStaticServiceMP3Info(); +public: + RESULT getName(const eServiceReference &ref, std::string &name); + int getLength(const eServiceReference &ref); + int getInfo(const eServiceReference &ref, int w); + int isPlayable(const eServiceReference &ref, const eServiceReference &ignore, bool simulate) { return 1; } + long long getFileSize(const eServiceReference &ref); + RESULT getEvent(const eServiceReference &ref, ePtr<eServiceEvent> &ptr, time_t start_time); +}; + +class eStreamBufferInfo: public iStreamBufferInfo +{ + DECLARE_REF(eStreamBufferInfo); + int bufferPercentage; + int inputRate; + int outputRate; + int bufferSpace; + int bufferSize; + +public: + eStreamBufferInfo(int percentage, int inputrate, int outputrate, int space, int size); + + int getBufferPercentage() const; + int getAverageInputRate() const; + int getAverageOutputRate() const; + int getBufferSpace() const; + int getBufferSize() const; +}; + +class eServiceMP3InfoContainer: public iServiceInfoContainer +{ + DECLARE_REF(eServiceMP3InfoContainer); + + double doubleValue; + GstBuffer *bufferValue; + + unsigned char *bufferData; + unsigned int bufferSize; +#if GST_VERSION_MAJOR >= 1 + GstMapInfo map; +#endif + +public: + eServiceMP3InfoContainer(); + ~eServiceMP3InfoContainer(); + + double getDouble(unsigned int index) const; + unsigned char *getBuffer(unsigned int &size) const; + + void setDouble(double value); + void setBuffer(GstBuffer *buffer); +}; + +typedef struct _GstElement GstElement; + +typedef enum { atUnknown, atMPEG, atMP3, atAC3, atDTS, atAAC, atPCM, atOGG, atFLAC, atWMA } audiotype_t; +typedef enum { stUnknown, stPlainText, stSSA, stASS, stSRT, stVOB, stPGS } subtype_t; +typedef enum { ctNone, ctMPEGTS, ctMPEGPS, ctMKV, ctAVI, ctMP4, ctVCD, ctCDA, ctASF, ctOGG } containertype_t; + +class eServiceMP3: public iPlayableService, public iPauseableService, + public iServiceInformation, public iSeekableService, public iAudioTrackSelection, public iAudioChannelSelection, + public iSubtitleOutput, public iStreamedService, public iAudioDelay, public Object +{ + DECLARE_REF(eServiceMP3); +public: + virtual ~eServiceMP3(); + + // iPlayableService + RESULT connectEvent(const Slot2<void,iPlayableService*,int> &event, ePtr<eConnection> &connection); + RESULT start(); + RESULT stop(); + RESULT setTarget(int target); + + RESULT pause(ePtr<iPauseableService> &ptr); + RESULT setSlowMotion(int ratio); + RESULT setFastForward(int ratio); + + RESULT seek(ePtr<iSeekableService> &ptr); + RESULT audioTracks(ePtr<iAudioTrackSelection> &ptr); + RESULT audioChannel(ePtr<iAudioChannelSelection> &ptr); + RESULT subtitle(ePtr<iSubtitleOutput> &ptr); + RESULT audioDelay(ePtr<iAudioDelay> &ptr); + + // not implemented (yet) + RESULT frontendInfo(ePtr<iFrontendInformation> &ptr) { ptr = 0; return -1; } + RESULT subServices(ePtr<iSubserviceList> &ptr) { ptr = 0; return -1; } + RESULT timeshift(ePtr<iTimeshiftService> &ptr) { ptr = 0; return -1; } + RESULT cueSheet(ePtr<iCueSheet> &ptr) { ptr = 0; return -1; } + + RESULT rdsDecoder(ePtr<iRdsDecoder> &ptr) { ptr = 0; return -1; } + RESULT keys(ePtr<iServiceKeys> &ptr) { ptr = 0; return -1; } + RESULT stream(ePtr<iStreamableService> &ptr) { ptr = 0; return -1; } + + // iPausableService + RESULT pause(); + RESULT unpause(); + + RESULT info(ePtr<iServiceInformation>&); + + // iSeekableService + RESULT getLength(pts_t &SWIG_OUTPUT); + RESULT seekTo(pts_t to); + RESULT seekRelative(int direction, pts_t to); + RESULT getPlayPosition(pts_t &SWIG_OUTPUT); + RESULT setTrickmode(int trick); + RESULT isCurrentlySeekable(); + + // iServiceInformation + RESULT getName(std::string &name); + RESULT getEvent(ePtr<eServiceEvent> &evt, int nownext); + int getInfo(int w); + std::string getInfoString(int w); + ePtr<iServiceInfoContainer> getInfoObject(int w); + + // iAudioTrackSelection + int getNumberOfTracks(); + RESULT selectTrack(unsigned int i); + RESULT getTrackInfo(struct iAudioTrackInfo &, unsigned int n); + int getCurrentTrack(); + + // iAudioChannelSelection + int getCurrentChannel(); + RESULT selectChannel(int i); + + // iSubtitleOutput + RESULT enableSubtitles(iSubtitleUser *user, SubtitleTrack &track); + RESULT disableSubtitles(); + RESULT getSubtitleList(std::vector<SubtitleTrack> &sublist); + RESULT getCachedSubtitle(SubtitleTrack &track); + + // iStreamedService + RESULT streamed(ePtr<iStreamedService> &ptr); + ePtr<iStreamBufferInfo> getBufferCharge(); + int setBufferSize(int size); + + // iAudioDelay + int getAC3Delay(); + int getPCMDelay(); + void setAC3Delay(int); + void setPCMDelay(int); + + struct audioStream + { + GstPad* pad; + audiotype_t type; + std::string language_code; /* iso-639, if available. */ + std::string codec; /* clear text codec description */ + audioStream() + :pad(0), type(atUnknown) + { + } + }; + struct subtitleStream + { + GstPad* pad; + subtype_t type; + std::string language_code; /* iso-639, if available. */ + subtitleStream() + :pad(0) + { + } + }; + struct sourceStream + { + audiotype_t audiotype; + containertype_t containertype; + bool is_video; + bool is_streaming; + sourceStream() + :audiotype(atUnknown), containertype(ctNone), is_video(FALSE), is_streaming(FALSE) + { + } + }; + struct bufferInfo + { + gint bufferPercent; + gint avgInRate; + gint avgOutRate; + gint64 bufferingLeft; + bufferInfo() + :bufferPercent(0), avgInRate(0), avgOutRate(0), bufferingLeft(-1) + { + } + }; + struct errorInfo + { + std::string error_message; + std::string missing_codec; + }; + +protected: + ePtr<eTimer> m_nownext_timer; + ePtr<eServiceEvent> m_event_now, m_event_next; + void updateEpgCacheNowNext(); + +private: + static int pcm_delay; + static int ac3_delay; + int m_currentAudioStream; + int m_currentSubtitleStream; + int m_cachedSubtitleStream; + int selectAudioStream(int i); + std::vector<audioStream> m_audioStreams; + std::vector<subtitleStream> m_subtitleStreams; + iSubtitleUser *m_subtitle_widget; + gdouble m_currentTrickRatio; + friend class eServiceFactoryMP3; + eServiceReference m_ref; + int m_buffer_size; + int m_ignore_buffering_messages; + bool m_is_live; + bool m_use_prefillbuffer; + bufferInfo m_bufferInfo; + errorInfo m_errorInfo; + std::string m_download_buffer_path; + eServiceMP3(eServiceReference ref); + Signal2<void,iPlayableService*,int> m_event; + enum + { + stIdle, stRunning, stStopped, + }; + int m_state; + GstElement *m_gst_playbin, *audioSink, *videoSink; + GstTagList *m_stream_tags; + + class GstMessageContainer: public iObject + { + DECLARE_REF(GstMessageContainer); + GstMessage *messagePointer; + GstPad *messagePad; + GstBuffer *messageBuffer; + int messageType; + + public: + GstMessageContainer(int type, GstMessage *msg, GstPad *pad, GstBuffer *buffer) + { + messagePointer = msg; + messagePad = pad; + messageBuffer = buffer; + messageType = type; + } + ~GstMessageContainer() + { + if (messagePointer) gst_message_unref(messagePointer); + if (messagePad) gst_object_unref(messagePad); + if (messageBuffer) gst_buffer_unref(messageBuffer); + } + int getType() { return messageType; } + operator GstMessage *() { return messagePointer; } + operator GstPad *() { return messagePad; } + operator GstBuffer *() { return messageBuffer; } + }; + eFixedMessagePump<ePtr<GstMessageContainer> > m_pump; + + audiotype_t gstCheckAudioPad(GstStructure* structure); + void gstBusCall(GstMessage *msg); + void handleMessage(GstMessage *msg); + static GstBusSyncReply gstBusSyncHandler(GstBus *bus, GstMessage *message, gpointer user_data); + static void gstTextpadHasCAPS(GstPad *pad, GParamSpec * unused, gpointer user_data); + void gstTextpadHasCAPS_synced(GstPad *pad); + static void gstCBsubtitleAvail(GstElement *element, GstBuffer *buffer, gpointer user_data); + GstPad* gstCreateSubtitleSink(eServiceMP3* _this, subtype_t type); + void gstPoll(ePtr<GstMessageContainer> const &); + static void playbinNotifySource(GObject *object, GParamSpec *unused, gpointer user_data); + static gint match_sinktype(GstElement *element, gpointer type); + static void handleElementAdded(GstBin *bin, GstElement *element, gpointer user_data); + + struct subtitle_page_t + { + uint32_t start_ms; + uint32_t end_ms; + std::string text; + + subtitle_page_t(uint32_t start_ms_in, uint32_t end_ms_in, const std::string& text_in) + : start_ms(start_ms_in), end_ms(end_ms_in), text(text_in) + { + } + }; + + typedef std::map<uint32_t, subtitle_page_t> subtitle_pages_map_t; + typedef std::pair<uint32_t, subtitle_page_t> subtitle_pages_map_pair_t; + subtitle_pages_map_t m_subtitle_pages; + ePtr<eTimer> m_subtitle_sync_timer; + + ePtr<eTimer> m_streamingsrc_timeout; + pts_t m_prev_decoder_time; + int m_decoder_time_valid_state; + + void pushSubtitles(); + void pullSubtitle(GstBuffer *buffer); + void sourceTimeout(); + sourceStream m_sourceinfo; + gulong m_subs_to_pull_handler_id; + + RESULT seekToImpl(pts_t to); + + gint m_aspect, m_width, m_height, m_framerate, m_progressive; + std::string m_useragent; + std::string m_extra_headers; + RESULT trickSeek(gdouble ratio); +}; + +#endif diff --git a/lib/service/servicexine.cpp b/lib/service/servicexine.cpp new file mode 100644 index 0000000..f472af1 --- /dev/null +++ b/lib/service/servicexine.cpp @@ -0,0 +1,395 @@ +#define HAVE_XINE +#ifdef HAVE_XINE + +/* yes, it's xine, not Xine. But eServicexine looks odd. */ + +#include <lib/base/eerror.h> +#include <lib/base/object.h> +#include <lib/base/ebase.h> +#include <string> +#include <lib/service/servicexine.h> +#include <lib/service/service.h> +#include <lib/base/init_num.h> +#include <lib/base/init.h> + +static xine_t *xine; /* TODO: move this into a static class */ + +// eServiceFactoryXine + +eServiceFactoryXine::eServiceFactoryXine() +{ + ePtr<eServiceCenter> sc; + + eServiceCenter::getPrivInstance(sc); + if (sc) + sc->addServiceFactory(eServiceFactoryXine::id, this); + + m_service_info = new eStaticServiceXineInfo(); +} + +eServiceFactoryXine::~eServiceFactoryXine() +{ + ePtr<eServiceCenter> sc; + + eServiceCenter::getPrivInstance(sc); + if (sc) + sc->removeServiceFactory(eServiceFactoryXine::id); +} + +DEFINE_REF(eServiceFactoryXine) + + // iServiceHandler +RESULT eServiceFactoryXine::play(const eServiceReference &ref, ePtr<iPlayableService> &ptr) +{ + // check resources... + ptr = new eServiceXine(ref.path.c_str()); + return 0; +} + +RESULT eServiceFactoryXine::record(const eServiceReference &ref, ePtr<iRecordableService> &ptr) +{ + ptr=0; + return -1; +} + +RESULT eServiceFactoryXine::list(const eServiceReference &, ePtr<iListableService> &ptr) +{ + ptr=0; + return -1; +} + +RESULT eServiceFactoryXine::info(const eServiceReference &ref, ePtr<iStaticServiceInformation> &ptr) +{ + ptr = m_service_info; + return 0; +} + +RESULT eServiceFactoryXine::offlineOperations(const eServiceReference &, ePtr<iServiceOfflineOperations> &ptr) +{ + ptr = 0; + return -1; +} + + +// eStaticServiceXineInfo + + +DEFINE_REF(eStaticServiceXineInfo) + +eStaticServiceXineInfo::eStaticServiceXineInfo() +{ +} + +RESULT eStaticServiceXineInfo::getName(const eServiceReference &ref, std::string &name) +{ + size_t last = ref.path.rfind('/'); + if (last != std::string::npos) + name = ref.path.substr(last+1); + else + name = ref.path; + return 0; +} + +int eStaticServiceXineInfo::getLength(const eServiceReference &ref) +{ + return -1; +} + +// eServiceXine + +eServiceXine::eServiceXine(const char *filename): m_filename(filename), m_pump(eApp, 1) +{ + m_state = stError; + stream = 0; + event_queue = 0; + ao_port = 0; + vo_port = 0; + + +// if ((vo_port = xine_open_video_driver(xine, "fb", XINE_VISUAL_TYPE_FB, NULL)) == NULL) + if ((vo_port = xine_open_video_driver(xine, "none", XINE_VISUAL_TYPE_NONE, NULL)) == NULL) + { + eWarning("cannot open xine video driver"); + } + + if ((ao_port = xine_open_audio_driver(xine , "alsa", NULL)) == NULL) + { + eWarning("cannot open xine audio driver"); + } + stream = xine_stream_new(xine, ao_port, vo_port); + event_queue = xine_event_new_queue(stream); + xine_event_create_listener_thread(event_queue, eventListenerWrap, this); + +// CONNECT(m_pump.recv_msg, eServiceXine::gstPoll); + m_state = stIdle; +} + +eServiceXine::~eServiceXine() +{ + if (m_state == stRunning) + stop(); + + eDebug("close stream"); + if (stream) + xine_close(stream); + eDebug("dispose queue"); + if (event_queue) + xine_event_dispose_queue(event_queue); + eDebug("dispose stream"); + if (stream) + xine_dispose(stream); + eDebug("dispose ao_port"); + if (ao_port) + xine_close_audio_driver(xine, ao_port); + eDebug("dispose vo port"); + if (vo_port) + xine_close_video_driver(xine, vo_port); + eDebug("done."); +} + +DEFINE_REF(eServiceXine); + +void eServiceXine::eventListenerWrap(void *user_data, const xine_event_t *event) +{ + eServiceXine *e = (eServiceXine*)user_data; + e->eventListener(event); +} + +void eServiceXine::eventListener(const xine_event_t *event) +{ + eDebug("handle %d", event->type); + switch(event->type) { + case XINE_EVENT_UI_PLAYBACK_FINISHED: + break; + } +} + +RESULT eServiceXine::connectEvent(const Slot2<void,iPlayableService*,int> &event, ePtr<eConnection> &connection) +{ + connection = new eConnection((iPlayableService*)this, m_event.connect(event)); + return 0; +} + +RESULT eServiceXine::start() +{ + if (m_state == stError) + return -1; + + ASSERT(m_state == stIdle); + ASSERT(stream); + + if (!xine_open(stream, m_filename.c_str())) + { + eWarning("xine_open failed!"); + return -1; + } + + if (!xine_play(stream, 0, 0)) + { + eWarning("xine_play failed!"); + return -1; + } + + m_state = stRunning; + + m_event(this, evStart); + return 0; +} + +RESULT eServiceXine::stop() +{ + if (m_state == stError) + return -1; + + ASSERT(m_state != stIdle); + ASSERT(stream); + if (m_state == stStopped) + return -1; + printf("Xine: %s stop\n", m_filename.c_str()); + xine_stop(stream); + // STOP + m_state = stStopped; + return 0; +} + +RESULT eServiceXine::setTarget(int target) +{ + return -1; +} + +RESULT eServiceXine::pause(ePtr<iPauseableService> &ptr) +{ + ptr=this; + return 0; +} + +RESULT eServiceXine::setSlowMotion(int ratio) +{ + return -1; +} + +RESULT eServiceXine::setFastForward(int ratio) +{ + return -1; +} + + // iPausableService +RESULT eServiceXine::pause() +{ + //SPEED_PAUSE + return 0; +} + +RESULT eServiceXine::unpause() +{ + //SPEED_NORMAL + // PLAY + return 0; +} + + /* iSeekableService */ +RESULT eServiceXine::seek(ePtr<iSeekableService> &ptr) +{ + ptr = this; + return 0; +} + +RESULT eServiceXine::getLength(pts_t &pts) +{ + pts = -1; + if (m_state == stError) + return 1; + ASSERT(stream); + + int pos_stream, pos_time, length_time; + + if (!xine_get_pos_length(stream, &pos_stream, &pos_time, &length_time)) + { + eDebug("xine_get_pos_length failed!"); + return 1; + } + + eDebug("length: %d ms", length_time); + + pts = length_time * 90; + + return 0; +} + +RESULT eServiceXine::seekTo(pts_t to) +{ + // SEEK + return 0; +} + +RESULT eServiceXine::seekRelative(int direction, pts_t to) +{ + // SEEK RELATIVE + return 0; +} + +RESULT eServiceXine::getPlayPosition(pts_t &pts) +{ + pts = -1; + if (m_state == stError) + return 1; + ASSERT(stream); + + int pos_stream, pos_time, length_time; + + if (!xine_get_pos_length(stream, &pos_stream, &pos_time, &length_time)) + return 1; + + eDebug("pos_time: %d", pos_time); + pts = pos_time * 90; + + // GET POSITION + return 0; +} + +RESULT eServiceXine::setTrickmode(int trick) +{ + /* trickmode currently doesn't make any sense for us. */ + return -1; +} + +RESULT eServiceXine::isCurrentlySeekable() +{ + return 3; +} + +RESULT eServiceXine::info(ePtr<iServiceInformation>&i) +{ + i = this; + return 0; +} + +RESULT eServiceXine::getName(std::string &name) +{ + name = "xine File: " + m_filename; + return 0; +} + +int eServiceXine::getInfo(int w) +{ + switch (w) + { + case sTitle: + case sArtist: + case sAlbum: + case sComment: + case sTracknumber: + case sGenre: + return resIsString; + + default: + return resNA; + } +} + +std::string eServiceXine::getInfoString(int w) +{ + return ""; +} + +class eXine +{ +public: + eXine() + { + /* this should be done once. */ + + if(!xine_check_version(1, 1, 0)) + { + int major, minor, sub; + xine_get_version (&major, &minor, &sub); + eWarning("Require xine library version 1.1.0, found %d.%d.%d.\n", + major, minor,sub); + return; + } else { + int major, minor, sub; + eDebug("Built with xine library %d.%d.%d (%s)\n", + XINE_MAJOR_VERSION, XINE_MINOR_VERSION, XINE_SUB_VERSION, XINE_VERSION); + + xine_get_version (&major, &minor, &sub); + + eDebug("Found xine library version: %d.%d.%d (%s).\n", + major, minor, sub, xine_get_version_string()); + } + + xine = xine_new(); + xine_engine_set_param(xine, XINE_ENGINE_PARAM_VERBOSITY, 1); + xine_init(xine); + } + ~eXine() + { + if (xine) + xine_exit(xine); + } +}; + +eAutoInitP0<eXine> init_eXine(eAutoInitNumbers::service, "libxine"); +eAutoInitPtr<eServiceFactoryXine> init_eServiceFactoryXine(eAutoInitNumbers::service+1, "eServiceFactoryXine"); +#else +#warning xine not available +#endif diff --git a/lib/service/servicexine.h b/lib/service/servicexine.h new file mode 100644 index 0000000..37fcf67 --- /dev/null +++ b/lib/service/servicexine.h @@ -0,0 +1,118 @@ +#ifndef __servicemp3_h +#define __servicemp3_h + +#define HAVE_XINE +#ifdef HAVE_XINE +#include <lib/base/message.h> +#include <lib/service/iservice.h> + +#include <xine.h> +#include <xine/xineutils.h> + +class eStaticServiceXineInfo; + +class eServiceFactoryXine: public iServiceHandler +{ + DECLARE_REF(eServiceFactoryXine); +public: + eServiceFactoryXine(); + virtual ~eServiceFactoryXine(); + enum { id = 0x1010 }; + + // iServiceHandler + RESULT play(const eServiceReference &, ePtr<iPlayableService> &ptr); + RESULT record(const eServiceReference &, ePtr<iRecordableService> &ptr); + RESULT list(const eServiceReference &, ePtr<iListableService> &ptr); + RESULT info(const eServiceReference &, ePtr<iStaticServiceInformation> &ptr); + RESULT offlineOperations(const eServiceReference &, ePtr<iServiceOfflineOperations> &ptr); +private: + ePtr<eStaticServiceXineInfo> m_service_info; +}; + +class eStaticServiceXineInfo: public iStaticServiceInformation +{ + DECLARE_REF(eStaticServiceXineInfo); + friend class eServiceFactoryXine; + eStaticServiceXineInfo(); +public: + RESULT getName(const eServiceReference &ref, std::string &name); + int getLength(const eServiceReference &ref); +}; + +typedef struct _GstElement GstElement; + +class eServiceXine: public iPlayableService, public iPauseableService, + public iServiceInformation, public iSeekableService, public Object +{ + DECLARE_REF(eServiceXine); +public: + virtual ~eServiceXine(); + + // iPlayableService + RESULT connectEvent(const Slot2<void,iPlayableService*,int> &event, ePtr<eConnection> &connection); + RESULT start(); + RESULT stop(); + RESULT setTarget(int target); + + RESULT pause(ePtr<iPauseableService> &ptr); + RESULT setSlowMotion(int ratio); + RESULT setFastForward(int ratio); + + RESULT seek(ePtr<iSeekableService> &ptr); + + // not implemented (yet) + RESULT audioChannel(ePtr<iAudioChannelSelection> &ptr) { ptr = 0; return -1; } + RESULT audioTracks(ePtr<iAudioTrackSelection> &ptr) { ptr = 0; return -1; } + RESULT frontendInfo(ePtr<iFrontendInformation> &ptr) { ptr = 0; return -1; } + RESULT subServices(ePtr<iSubserviceList> &ptr) { ptr = 0; return -1; } + RESULT timeshift(ePtr<iTimeshiftService> &ptr) { ptr = 0; return -1; } + RESULT cueSheet(ePtr<iCueSheet> &ptr) { ptr = 0; return -1; } + RESULT subtitle(ePtr<iSubtitleOutput> &ptr) { ptr = 0; return -1; } + RESULT audioDelay(ePtr<iAudioDelay> &ptr) { ptr = 0; return -1; } + RESULT rdsDecoder(ePtr<iRdsDecoder> &ptr) { ptr = 0; return -1; } + RESULT keys(ePtr<iServiceKeys> &ptr) { ptr = 0; return -1; } + + // iPausableService + RESULT pause(); + RESULT unpause(); + + RESULT info(ePtr<iServiceInformation>&); + + // iSeekableService + RESULT getLength(pts_t &SWIG_OUTPUT); + RESULT seekTo(pts_t to); + RESULT seekRelative(int direction, pts_t to); + RESULT getPlayPosition(pts_t &SWIG_OUTPUT); + RESULT setTrickmode(int trick); + RESULT isCurrentlySeekable(); + + // iServiceInformation + RESULT getName(std::string &name); + int getInfo(int w); + std::string getInfoString(int w); +private: + friend class eServiceFactoryXine; + std::string m_filename; + eServiceXine(const char *filename); + Signal2<void,iPlayableService*,int> m_event; + + xine_stream_t *stream; + xine_video_port_t *vo_port; + xine_audio_port_t *ao_port; + xine_event_queue_t *event_queue; + + enum + { + stError, stIdle, stRunning, stStopped, + }; + int m_state; + + static void eventListenerWrap(void *user_data, const xine_event_t *event); + void eventListener(const xine_event_t *event); + + + eFixedMessagePump<int> m_pump; +}; +#endif + +#endif diff --git a/m4/ax_pkg_swig.m4 b/m4/ax_pkg_swig.m4 new file mode 100644 index 0000000..81226fb --- /dev/null +++ b/m4/ax_pkg_swig.m4 @@ -0,0 +1,133 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_pkg_swig.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_PKG_SWIG([major.minor.micro], [action-if-found], [action-if-not-found]) +# +# DESCRIPTION +# +# This macro searches for a SWIG installation on your system. If found, +# then SWIG is AC_SUBST'd; if not found, then $SWIG is empty. If SWIG is +# found, then SWIG_LIB is set to the SWIG library path, and AC_SUBST'd. +# +# You can use the optional first argument to check if the version of the +# available SWIG is greater than or equal to the value of the argument. It +# should have the format: N[.N[.N]] (N is a number between 0 and 999. Only +# the first N is mandatory.) If the version argument is given (e.g. +# 1.3.17), AX_PKG_SWIG checks that the swig package is this version number +# or higher. +# +# As usual, action-if-found is executed if SWIG is found, otherwise +# action-if-not-found is executed. +# +# In configure.in, use as: +# +# AX_PKG_SWIG(1.3.17, [], [ AC_MSG_ERROR([SWIG is required to build..]) ]) +# AX_SWIG_ENABLE_CXX +# AX_SWIG_MULTI_MODULE_SUPPORT +# AX_SWIG_PYTHON +# +# LICENSE +# +# Copyright (c) 2008 Sebastian Huber <sebastian-huber@web.de> +# Copyright (c) 2008 Alan W. Irwin <irwin@beluga.phys.uvic.ca> +# Copyright (c) 2008 Rafael Laboissiere <rafael@laboissiere.net> +# Copyright (c) 2008 Andrew Collier <colliera@ukzn.ac.za> +# +# 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. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see <http://www.gnu.org/licenses/>. +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 7 + +AC_DEFUN([AX_PKG_SWIG],[ + AC_PATH_PROG([SWIG],[swig]) + if test -z "$SWIG" ; then + m4_ifval([$3],[$3],[:]) + elif test -n "$1" ; then + AC_MSG_CHECKING([SWIG version]) + [swig_version=`$SWIG -version 2>&1 | grep 'SWIG Version' | sed 's/.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'`] + AC_MSG_RESULT([$swig_version]) + if test -n "$swig_version" ; then + # Calculate the required version number components + [required=$1] + [required_major=`echo $required | sed 's/[^0-9].*//'`] + if test -z "$required_major" ; then + [required_major=0] + fi + [required=`echo $required | sed 's/[0-9]*[^0-9]//'`] + [required_minor=`echo $required | sed 's/[^0-9].*//'`] + if test -z "$required_minor" ; then + [required_minor=0] + fi + [required=`echo $required | sed 's/[0-9]*[^0-9]//'`] + [required_patch=`echo $required | sed 's/[^0-9].*//'`] + if test -z "$required_patch" ; then + [required_patch=0] + fi + # Calculate the available version number components + [available=$swig_version] + [available_major=`echo $available | sed 's/[^0-9].*//'`] + if test -z "$available_major" ; then + [available_major=0] + fi + [available=`echo $available | sed 's/[0-9]*[^0-9]//'`] + [available_minor=`echo $available | sed 's/[^0-9].*//'`] + if test -z "$available_minor" ; then + [available_minor=0] + fi + [available=`echo $available | sed 's/[0-9]*[^0-9]//'`] + [available_patch=`echo $available | sed 's/[^0-9].*//'`] + if test -z "$available_patch" ; then + [available_patch=0] + fi + # Convert the version tuple into a single number for easier comparison. + # Using base 100 should be safe since SWIG internally uses BCD values + # to encode its version number. + required_swig_vernum=`expr $required_major \* 10000 \ + \+ $required_minor \* 100 \+ $required_patch` + available_swig_vernum=`expr $available_major \* 10000 \ + \+ $available_minor \* 100 \+ $available_patch` + + if test $available_swig_vernum -lt $required_swig_vernum; then + AC_MSG_WARN([SWIG version >= $1 is required. You have $swig_version.]) + SWIG='' + m4_ifval([$3],[$3],[]) + else + AC_MSG_CHECKING([for SWIG library]) + SWIG_LIB=`$SWIG -swiglib` + AC_MSG_RESULT([$SWIG_LIB]) + m4_ifval([$2],[$2],[]) + fi + else + AC_MSG_WARN([cannot determine SWIG version]) + SWIG='' + m4_ifval([$3],[$3],[]) + fi + fi + AC_SUBST([SWIG_LIB]) +]) diff --git a/m4/ax_pthread.m4 b/m4/ax_pthread.m4 new file mode 100644 index 0000000..2152a80 --- /dev/null +++ b/m4/ax_pthread.m4 @@ -0,0 +1,283 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_pthread.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) +# +# DESCRIPTION +# +# This macro figures out how to build C programs using POSIX threads. It +# sets the PTHREAD_LIBS output variable to the threads library and linker +# flags, and the PTHREAD_CFLAGS output variable to any special C compiler +# flags that are needed. (The user can also force certain compiler +# flags/libs to be tested by setting these environment variables.) +# +# Also sets PTHREAD_CC to any special C compiler that is needed for +# multi-threaded programs (defaults to the value of CC otherwise). (This +# is necessary on AIX to use the special cc_r compiler alias.) +# +# NOTE: You are assumed to not only compile your program with these flags, +# but also link it with them as well. e.g. you should link with +# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS +# +# If you are only building threads programs, you may wish to use these +# variables in your default LIBS, CFLAGS, and CC: +# +# LIBS="$PTHREAD_LIBS $LIBS" +# CFLAGS="$CFLAGS $PTHREAD_CFLAGS" +# CC="$PTHREAD_CC" +# +# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant +# has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name +# (e.g. PTHREAD_CREATE_UNDETACHED on AIX). +# +# ACTION-IF-FOUND is a list of shell commands to run if a threads library +# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it +# is not found. If ACTION-IF-FOUND is not specified, the default action +# will define HAVE_PTHREAD. +# +# Please let the authors know if this macro fails on any platform, or if +# you have any other suggestions or comments. This macro was based on work +# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help +# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by +# Alejandro Forero Cuervo to the autoconf macro repository. We are also +# grateful for the helpful feedback of numerous users. +# +# LICENSE +# +# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu> +# +# 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 3 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. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see <http://www.gnu.org/licenses/>. +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 11 + +AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD]) +AC_DEFUN([AX_PTHREAD], [ +AC_REQUIRE([AC_CANONICAL_HOST]) +AC_LANG_SAVE +AC_LANG_C +ax_pthread_ok=no + +# We used to check for pthread.h first, but this fails if pthread.h +# requires special compiler flags (e.g. on True64 or Sequent). +# It gets checked for in the link test anyway. + +# First of all, check if the user has set any of the PTHREAD_LIBS, +# etcetera environment variables, and if threads linking works using +# them: +if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) + AC_TRY_LINK_FUNC(pthread_join, ax_pthread_ok=yes) + AC_MSG_RESULT($ax_pthread_ok) + if test x"$ax_pthread_ok" = xno; then + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" + fi + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" +fi + +# We must check for the threads library under a number of different +# names; the ordering is very important because some systems +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the +# libraries is broken (non-POSIX). + +# Create a list of thread flags to try. Items starting with a "-" are +# C compiler flags, and other items are library names, except for "none" +# which indicates that we try without any flags at all, and "pthread-config" +# which is a program returning the flags for the Pth emulation library. + +ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" + +# The ordering *is* (sometimes) important. Some notes on the +# individual items follow: + +# pthreads: AIX (must check this before -lpthread) +# none: in case threads are in libc; should be tried before -Kthread and +# other compiler flags to prevent continual compiler warnings +# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) +# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) +# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) +# -pthreads: Solaris/gcc +# -mthreads: Mingw32/gcc, Lynx/gcc +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it +# doesn't hurt to check since this sometimes defines pthreads too; +# also defines -D_REENTRANT) +# ... -mt is also the pthreads flag for HP/aCC +# pthread: Linux, etcetera +# --thread-safe: KAI C++ +# pthread-config: use pthread-config program (for GNU Pth library) + +case "${host_cpu}-${host_os}" in + *solaris*) + + # On Solaris (at least, for some versions), libc contains stubbed + # (non-functional) versions of the pthreads routines, so link-based + # tests will erroneously succeed. (We need to link with -pthreads/-mt/ + # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather + # a function called by this macro, so we could check for that, but + # who knows whether they'll stub that too in a future libc.) So, + # we'll just look for -pthreads and -lpthread first: + + ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags" + ;; + + *-darwin*) + ax_pthread_flags="-pthread $ax_pthread_flags" + ;; +esac + +if test x"$ax_pthread_ok" = xno; then +for flag in $ax_pthread_flags; do + + case $flag in + none) + AC_MSG_CHECKING([whether pthreads work without any flags]) + ;; + + -*) + AC_MSG_CHECKING([whether pthreads work with $flag]) + PTHREAD_CFLAGS="$flag" + ;; + + pthread-config) + AC_CHECK_PROG(ax_pthread_config, pthread-config, yes, no) + if test x"$ax_pthread_config" = xno; then continue; fi + PTHREAD_CFLAGS="`pthread-config --cflags`" + PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" + ;; + + *) + AC_MSG_CHECKING([for the pthreads library -l$flag]) + PTHREAD_LIBS="-l$flag" + ;; + esac + + save_LIBS="$LIBS" + save_CFLAGS="$CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Check for various functions. We must include pthread.h, + # since some functions may be macros. (On the Sequent, we + # need a special flag -Kthread to make this header compile.) + # We check for pthread_join because it is in -lpthread on IRIX + # while pthread_create is in libc. We check for pthread_attr_init + # due to DEC craziness with -lpthreads. We check for + # pthread_cleanup_push because it is one of the few pthread + # functions on Solaris that doesn't have a non-functional libc stub. + # We try pthread_create on general principles. + AC_TRY_LINK([#include <pthread.h> + static void routine(void* a) {a=0;} + static void* start_routine(void* a) {return a;}], + [pthread_t th; pthread_attr_t attr; + pthread_create(&th,0,start_routine,0); + pthread_join(th, 0); + pthread_attr_init(&attr); + pthread_cleanup_push(routine, 0); + pthread_cleanup_pop(0); ], + [ax_pthread_ok=yes]) + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + AC_MSG_RESULT($ax_pthread_ok) + if test "x$ax_pthread_ok" = xyes; then + break; + fi + + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" +done +fi + +# Various other checks: +if test "x$ax_pthread_ok" = xyes; then + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. + AC_MSG_CHECKING([for joinable pthread attribute]) + attr_name=unknown + for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do + AC_TRY_LINK([#include <pthread.h>], [int attr=$attr; return attr;], + [attr_name=$attr; break]) + done + AC_MSG_RESULT($attr_name) + if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then + AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name, + [Define to necessary symbol if this constant + uses a non-standard name on your system.]) + fi + + AC_MSG_CHECKING([if more special flags are required for pthreads]) + flag=no + case "${host_cpu}-${host_os}" in + *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; + *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; + esac + AC_MSG_RESULT(${flag}) + if test "x$flag" != xno; then + PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" + fi + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + # More AIX lossage: must compile with xlc_r or cc_r + if test x"$GCC" != xyes; then + AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC}) + else + PTHREAD_CC=$CC + fi +else + PTHREAD_CC="$CC" +fi + +AC_SUBST(PTHREAD_LIBS) +AC_SUBST(PTHREAD_CFLAGS) +AC_SUBST(PTHREAD_CC) + +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +if test x"$ax_pthread_ok" = xyes; then + ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1]) + : +else + ax_pthread_ok=no + $2 +fi +AC_LANG_RESTORE +])dnl AX_PTHREAD diff --git a/m4/ax_python_devel.m4 b/m4/ax_python_devel.m4 new file mode 100644 index 0000000..a62b860 --- /dev/null +++ b/m4/ax_python_devel.m4 @@ -0,0 +1,325 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_python_devel.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_PYTHON_DEVEL([version]) +# +# DESCRIPTION +# +# Note: Defines as a precious variable "PYTHON_VERSION". Don't override it +# in your configure.ac. +# +# This macro checks for Python and tries to get the include path to +# 'Python.h'. It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LDFLAGS) +# output variables. It also exports $(PYTHON_EXTRA_LIBS) and +# $(PYTHON_EXTRA_LDFLAGS) for embedding Python in your code. +# +# You can search for some particular version of Python by passing a +# parameter to this macro, for example ">= '2.3.1'", or "== '2.4'". Please +# note that you *have* to pass also an operator along with the version to +# match, and pay special attention to the single quotes surrounding the +# version number. Don't use "PYTHON_VERSION" for this: that environment +# variable is declared as precious and thus reserved for the end-user. +# +# This macro should work for all versions of Python >= 2.1.0. As an end +# user, you can disable the check for the python version by setting the +# PYTHON_NOVERSIONCHECK environment variable to something else than the +# empty string. +# +# If you need to use this macro for an older Python version, please +# contact the authors. We're always open for feedback. +# +# LICENSE +# +# Copyright (c) 2009 Sebastian Huber <sebastian-huber@web.de> +# Copyright (c) 2009 Alan W. Irwin <irwin@beluga.phys.uvic.ca> +# Copyright (c) 2009 Rafael Laboissiere <rafael@laboissiere.net> +# Copyright (c) 2009 Andrew Collier <colliera@ukzn.ac.za> +# Copyright (c) 2009 Matteo Settenvini <matteo@member.fsf.org> +# Copyright (c) 2009 Horst Knorr <hk_classes@knoda.org> +# +# 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 3 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. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see <http://www.gnu.org/licenses/>. +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 8 + +AU_ALIAS([AC_PYTHON_DEVEL], [AX_PYTHON_DEVEL]) +AC_DEFUN([AX_PYTHON_DEVEL],[ + # + # Allow the use of a (user set) custom python version + # + AC_ARG_VAR([PYTHON_VERSION],[The installed Python + version to use, for example '2.3'. This string + will be appended to the Python interpreter + canonical name.]) + + AC_PATH_PROG([PYTHON],[python[$PYTHON_VERSION]]) + if test -z "$PYTHON"; then + AC_MSG_ERROR([Cannot find python$PYTHON_VERSION in your system path]) + PYTHON_VERSION="" + fi + + # + # Check for a version of Python >= 2.1.0 + # + AC_MSG_CHECKING([for a version of Python >= '2.1.0']) + ac_supports_python_ver=`$PYTHON -c "import sys; \ + ver = sys.version.split ()[[0]]; \ + print (ver >= '2.1.0')"` + if test "$ac_supports_python_ver" != "True"; then + if test -z "$PYTHON_NOVERSIONCHECK"; then + AC_MSG_RESULT([no]) + AC_MSG_FAILURE([ +This version of the AC@&t@_PYTHON_DEVEL macro +doesn't work properly with versions of Python before +2.1.0. You may need to re-run configure, setting the +variables PYTHON_CPPFLAGS, PYTHON_LDFLAGS, PYTHON_SITE_PKG, +PYTHON_EXTRA_LIBS and PYTHON_EXTRA_LDFLAGS by hand. +Moreover, to disable this check, set PYTHON_NOVERSIONCHECK +to something else than an empty string. +]) + else + AC_MSG_RESULT([skip at user request]) + fi + else + AC_MSG_RESULT([yes]) + fi + + # + # if the macro parameter ``version'' is set, honour it + # + if test -n "$1"; then + AC_MSG_CHECKING([for a version of Python $1]) + ac_supports_python_ver=`$PYTHON -c "import sys; \ + ver = sys.version.split ()[[0]]; \ + print (ver $1)"` + if test "$ac_supports_python_ver" = "True"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + AC_MSG_ERROR([this package requires Python $1. +If you have it installed, but it isn't the default Python +interpreter in your system path, please pass the PYTHON_VERSION +variable to configure. See ``configure --help'' for reference. +]) + PYTHON_VERSION="" + fi + fi + + # + # Check if you have distutils, else fail + # + AC_MSG_CHECKING([for the distutils Python package]) + ac_distutils_result=`$PYTHON -c "import distutils" 2>&1` + if test -z "$ac_distutils_result"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + AC_MSG_ERROR([cannot import Python module "distutils". +Please check your Python installation. The error was: +$ac_distutils_result]) + PYTHON_VERSION="" + fi + + # + # Check for Python include path + # + AC_MSG_CHECKING([for Python include path]) + if test -z "$PYTHON_CPPFLAGS"; then + python_path=`$PYTHON -c "import distutils.sysconfig; \ + print (distutils.sysconfig.get_python_inc ());"` + if test -n "${python_path}"; then + python_path="-I$python_path" + fi + PYTHON_CPPFLAGS=$python_path + fi + AC_MSG_RESULT([$PYTHON_CPPFLAGS]) + AC_SUBST([PYTHON_CPPFLAGS]) + + # + # Check for Python library path + # + AC_MSG_CHECKING([for Python library path]) + if test -z "$PYTHON_LDFLAGS"; then + # (makes two attempts to ensure we've got a version number + # from the interpreter) + ac_python_version=`cat<<EOD | $PYTHON - + +# join all versioning strings, on some systems +# major/minor numbers could be in different list elements +from distutils.sysconfig import * +ret = '' +for e in get_config_vars ('VERSION'): + if (e != None): + ret += e +print (ret) +EOD` + + if test -z "$ac_python_version"; then + if test -n "$PYTHON_VERSION"; then + ac_python_version=$PYTHON_VERSION + else + ac_python_version=`$PYTHON -c "import sys; \ + print (sys.version[[:3]])"` + fi + fi + + # Make the versioning information available to the compiler + AC_DEFINE_UNQUOTED([HAVE_PYTHON], ["$ac_python_version"], + [If available, contains the Python version number currently in use.]) + + # First, the library directory: + ac_python_libdir=`cat<<EOD | $PYTHON - + +# There should be only one +import distutils.sysconfig +for e in distutils.sysconfig.get_config_vars ('LIBDIR'): + if e != None: + print (e) + break +EOD` + + # Before checking for libpythonX.Y, we need to know + # the extension the OS we're on uses for libraries + # (we take the first one, if there's more than one fix me!): + ac_python_soext=`$PYTHON -c \ + "import distutils.sysconfig; \ + print (distutils.sysconfig.get_config_vars('SO')[[0]])"` + + # Now, for the library: + ac_python_soname=`$PYTHON -c \ + "import distutils.sysconfig; \ + print (distutils.sysconfig.get_config_vars('LDLIBRARY')[[0]])"` + + # Strip away extension from the end to canonicalize its name: + ac_python_library=`echo "$ac_python_soname" | sed "s/${ac_python_soext}$//"` + + # This small piece shamelessly adapted from PostgreSQL python macro; + # credits goes to momjian, I think. I'd like to put the right name + # in the credits, if someone can point me in the right direction... ? + # + if test -n "$ac_python_libdir" -a -n "$ac_python_library" \ + -a x"$ac_python_library" != x"$ac_python_soname" + then + # use the official shared library + ac_python_library=`echo "$ac_python_library" | sed "s/^lib//"` + PYTHON_LDFLAGS="-L$ac_python_libdir -l$ac_python_library" + else + # old way: use libpython from python_configdir + ac_python_libdir=`$PYTHON -c \ + "from distutils.sysconfig import get_python_lib as f; \ + import os; \ + print (os.path.join(f(plat_specific=1, standard_lib=1), 'config'));"` + PYTHON_LDFLAGS="-L$ac_python_libdir -lpython$ac_python_version" + fi + + if test -z "PYTHON_LDFLAGS"; then + AC_MSG_ERROR([ + Cannot determine location of your Python DSO. Please check it was installed with + dynamic libraries enabled, or try setting PYTHON_LDFLAGS by hand. + ]) + fi + fi + AC_MSG_RESULT([$PYTHON_LDFLAGS]) + AC_SUBST([PYTHON_LDFLAGS]) + + # + # Check for site packages + # + AC_MSG_CHECKING([for Python site-packages path]) + if test -z "$PYTHON_SITE_PKG"; then + PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \ + print (distutils.sysconfig.get_python_lib(0,0));"` + fi + AC_MSG_RESULT([$PYTHON_SITE_PKG]) + AC_SUBST([PYTHON_SITE_PKG]) + + # + # libraries which must be linked in when embedding + # + AC_MSG_CHECKING(python extra libraries) + if test -z "$PYTHON_EXTRA_LIBS"; then + PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \ + conf = distutils.sysconfig.get_config_var; \ + print (conf('LOCALMODLIBS') + ' ' + conf('LIBS'))"` + fi + AC_MSG_RESULT([$PYTHON_EXTRA_LIBS]) + AC_SUBST(PYTHON_EXTRA_LIBS) + + # + # linking flags needed when embedding + # + AC_MSG_CHECKING(python extra linking flags) + if test -z "$PYTHON_EXTRA_LDFLAGS"; then + PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \ + conf = distutils.sysconfig.get_config_var; \ + print (conf('LINKFORSHARED'))"` + fi + AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS]) + AC_SUBST(PYTHON_EXTRA_LDFLAGS) + + # + # final check to see if everything compiles alright + # + AC_MSG_CHECKING([consistency of all components of python development environment]) + # save current global flags + ac_save_LIBS="$LIBS" + ac_save_CPPFLAGS="$CPPFLAGS" + LIBS="$ac_save_LIBS $PYTHON_LDFLAGS $PYTHON_EXTRA_LDFLAGS $PYTHON_EXTRA_LIBS" + CPPFLAGS="$ac_save_CPPFLAGS $PYTHON_CPPFLAGS" + AC_LANG_PUSH([C]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[#include <Python.h>]], + [[Py_Initialize();]]) + ],[pythonexists=yes],[pythonexists=no]) + AC_LANG_POP([C]) + # turn back to default flags + CPPFLAGS="$ac_save_CPPFLAGS" + LIBS="$ac_save_LIBS" + + AC_MSG_RESULT([$pythonexists]) + + if test ! "x$pythonexists" = "xyes"; then + AC_MSG_FAILURE([ + Could not link test program to Python. Maybe the main Python library has been + installed in some non-standard library path. If so, pass it to configure, + via the LDFLAGS environment variable. + Example: ./configure LDFLAGS="-L/usr/non-standard-path/python/lib" + ============================================================================ + ERROR! + You probably have to install the development version of the Python package + for your distribution. The exact name of this package varies among them. + ============================================================================ + ]) + PYTHON_VERSION="" + fi + + # + # all done! + # +]) diff --git a/m4/ax_swig_enable_cxx.m4 b/m4/ax_swig_enable_cxx.m4 new file mode 100644 index 0000000..348c15d --- /dev/null +++ b/m4/ax_swig_enable_cxx.m4 @@ -0,0 +1,53 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_swig_enable_cxx.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_SWIG_ENABLE_CXX +# +# DESCRIPTION +# +# Enable SWIG C++ support. This affects all invocations of $(SWIG). +# +# LICENSE +# +# Copyright (c) 2008 Sebastian Huber <sebastian-huber@web.de> +# Copyright (c) 2008 Alan W. Irwin <irwin@beluga.phys.uvic.ca> +# Copyright (c) 2008 Rafael Laboissiere <rafael@laboissiere.net> +# Copyright (c) 2008 Andrew Collier <colliera@ukzn.ac.za> +# +# 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. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see <http://www.gnu.org/licenses/>. +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 6 + +AU_ALIAS([SWIG_ENABLE_CXX], [AX_SWIG_ENABLE_CXX]) +AC_DEFUN([AX_SWIG_ENABLE_CXX],[ + AC_REQUIRE([AX_PKG_SWIG]) + AC_REQUIRE([AC_PROG_CXX]) + SWIG="$SWIG -c++" +]) diff --git a/m4/ax_swig_python.m4 b/m4/ax_swig_python.m4 new file mode 100644 index 0000000..8fd3df5 --- /dev/null +++ b/m4/ax_swig_python.m4 @@ -0,0 +1,64 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_swig_python.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_SWIG_PYTHON([use-shadow-classes = {no, yes}]) +# +# DESCRIPTION +# +# Checks for Python and provides the $(AX_SWIG_PYTHON_CPPFLAGS), and +# $(AX_SWIG_PYTHON_OPT) output variables. +# +# $(AX_SWIG_PYTHON_OPT) contains all necessary SWIG options to generate +# code for Python. Shadow classes are enabled unless the value of the +# optional first argument is exactly 'no'. If you need multi module +# support (provided by the AX_SWIG_MULTI_MODULE_SUPPORT macro) use +# $(AX_SWIG_PYTHON_LIBS) to link against the appropriate library. It +# contains the SWIG Python runtime library that is needed by the type +# check system for example. +# +# LICENSE +# +# Copyright (c) 2008 Sebastian Huber <sebastian-huber@web.de> +# Copyright (c) 2008 Alan W. Irwin <irwin@beluga.phys.uvic.ca> +# Copyright (c) 2008 Rafael Laboissiere <rafael@laboissiere.net> +# Copyright (c) 2008 Andrew Collier <colliera@ukzn.ac.za> +# +# 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. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see <http://www.gnu.org/licenses/>. +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 7 + +AU_ALIAS([SWIG_PYTHON], [AX_SWIG_PYTHON]) +AC_DEFUN([AX_SWIG_PYTHON],[ + AC_REQUIRE([AX_PKG_SWIG]) + AC_REQUIRE([AX_PYTHON_DEVEL]) + test "x$1" != "xno" || swig_shadow=" -noproxy" + AC_SUBST([AX_SWIG_PYTHON_OPT],[-python$swig_shadow]) + AC_SUBST([AX_SWIG_PYTHON_CPPFLAGS],[$PYTHON_CPPFLAGS]) +]) diff --git a/m4/tuxbox.m4 b/m4/tuxbox.m4 new file mode 100644 index 0000000..985f757 --- /dev/null +++ b/m4/tuxbox.m4 @@ -0,0 +1,36 @@ +AC_DEFUN([TUXBOX_APPS_DVB],[ +AC_ARG_WITH(dvbincludes, + [ --with-dvbincludes=PATH path for dvb includes [[NONE]]], + [DVBINCLUDES="$withval"],[DVBINCLUDES=""]) + +if test "$DVBINCLUDES"; then + CPPFLAGS="$CPPFLAGS -I$DVBINCLUDES" +fi + +AC_CHECK_HEADERS(ost/dmx.h,[ + DVB_API_VERSION=1 + AC_MSG_NOTICE([found dvb version 1]) +]) + +if test -z "$DVB_API_VERSION"; then +AC_CHECK_HEADERS(linux/dvb/version.h,[ + AC_LANG_PREPROC_REQUIRE() + AC_REQUIRE([AC_PROG_EGREP]) + AC_LANG_CONFTEST([AC_LANG_SOURCE([[ +#include <linux/dvb/version.h> +version DVB_API_VERSION + ]])]) + DVB_API_VERSION=`(eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | $EGREP "^version" | sed "s,version\ ,,"` + rm -f conftest* + + AC_MSG_NOTICE([found dvb version $DVB_API_VERSION]) +]) +fi + +if test "$DVB_API_VERSION"; then + AC_DEFINE(HAVE_DVB,1,[Define to 1 if you have the dvb includes]) + AC_DEFINE_UNQUOTED(HAVE_DVB_API_VERSION,$DVB_API_VERSION,[Define to the version of the dvb api]) +else + AC_MSG_ERROR([can't find dvb headers]) +fi +]) diff --git a/main/Makefile.am b/main/Makefile.am new file mode 100644 index 0000000..03121cc --- /dev/null +++ b/main/Makefile.am @@ -0,0 +1,84 @@ +AM_CPPFLAGS = \ + -I$(top_srcdir) \ + -I$(top_srcdir)/include \ + -include Python.h \ + -include $(top_builddir)/enigma2_config.h + +AM_CXXFLAGS = \ + $(LIBSDL_CFLAGS) + +bin_PROGRAMS = enigma2 + +enigma2_SOURCES = \ + bsod.cpp \ + bsod.h \ + enigma.cpp \ + xmlgenerator.cpp \ + xmlgenerator.h \ + version_info.cpp \ + version_info.h \ + version.h + +EXTRA_DIST = \ + enigma-dvbtest.cpp \ + enigma-gdi.cpp \ + enigma-gui.cpp \ + enigma-playlist.cpp \ + enigma-scan.cpp + +enigma2_LDADD_WHOLE = \ + $(top_builddir)/lib/actions/libenigma_actions.a \ + $(top_builddir)/lib/base/libenigma_base.a \ + $(top_builddir)/lib/components/libenigma_components.a \ + $(top_builddir)/lib/driver/libenigma_driver.a \ + $(top_builddir)/lib/mmi/libenigma_mmi.a \ + $(top_builddir)/lib/dvb/libenigma_dvb.a \ + $(top_builddir)/lib/dvb_ci/libenigma_dvb_ci.a \ + $(top_builddir)/lib/gdi/libenigma_gdi.a \ + $(top_builddir)/lib/gui/libenigma_gui.a \ + $(top_builddir)/lib/python/libenigma_python.a \ + $(top_builddir)/lib/nav/libenigma_nav.a \ + $(top_builddir)/lib/network/libenigma_network.a \ + $(top_builddir)/lib/service/libenigma_service.a + +enigma2_LDADD = \ + @BASE_LIBS@ \ + @LIBGIF_LIBS@ \ + @LIBJPEG_LIBS@ \ + @LIBSDL_LIBS@ \ + @LIBXINE_LIBS@ \ + @LIBXMLCCWRAP_LIBS@ \ + @PTHREAD_LIBS@ \ + @PYTHON_LDFLAGS@ \ + @LIBDDVD_LIBS@ \ + -ltuxtxt -ltuxtxt32bpp -lcrypt -lrt + +enigma2_LDFLAGS = -Wl,--export-dynamic + +if HAVE_GIT_DIR +GIT_DIR = $(top_srcdir)/.git +GIT = git --git-dir=$(GIT_DIR) + +if HAVE_FAKE_GIT_DIR +ENIGMA2_COMMIT_DATE = `grep '^CommitDate:' $(GIT_DIR)/last_commit_info | cut -d' ' -f2` +ENIGMA2_BRANCH = `cat $(GIT_DIR)/branch` +else +ENIGMA2_COMMIT_DATE = `$(GIT) log --no-color -n 1 --pretty=format:%cd --date=short` +ENIGMA2_BRANCH = `$(GIT) branch --no-color 2>/dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'` +ENIGMA2_REV = `$(GIT) describe --abbrev=7 --always --long --tags` +endif +endif + +BUILT_SOURCES = version-intermediate.h +.INTERMEDIATE: version-intermediate.h +.PHONY: version-intermediate.h +version-intermediate.h: + $(AM_V_GEN)touch $@ + -$(AM_V_at)[ -n "$(ENIGMA2_COMMIT_DATE)" ] && echo "#define ENIGMA2_COMMIT_DATE \"$(ENIGMA2_COMMIT_DATE)\"" >> $@ + -$(AM_V_at)[ -n "$(ENIGMA2_BRANCH)" ] && echo "#define ENIGMA2_BRANCH \"$(ENIGMA2_BRANCH)\"" >> $@ + -$(AM_V_at)[ -n "$(ENIGMA2_REV)" ] && echo "#define ENIGMA2_REV \"$(ENIGMA2_REV)\"" >> $@ + $(AM_V_at)([ -f version.h ] && diff -q version.h $@ >/dev/null) || $(INSTALL_HEADER) $@ version.h + +enigma2$(EXEEXT): $(enigma2_OBJECTS) $(enigma2_DEPENDENCIES) $(enigma2_LDADD_WHOLE) + $(AM_V_CXXLD)$(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ $(enigma2_LDFLAGS) $(enigma2_OBJECTS) \ + -Wl,--whole-archive $(enigma2_LDADD_WHOLE) -Wl,--no-whole-archive $(enigma2_LDADD) $(LIBS) diff --git a/main/bsod.cpp b/main/bsod.cpp new file mode 100644 index 0000000..b62512e --- /dev/null +++ b/main/bsod.cpp @@ -0,0 +1,366 @@ +#include <csignal> +#include <fstream> +#include <sstream> +#include <lib/base/eenv.h> +#include <lib/base/eerror.h> +#include <lib/base/nconfig.h> +#include <lib/gdi/gmaindc.h> + +#if defined(__MIPSEL__) +#include <asm/ptrace.h> +#else +#warning "no oops support!" +#define NO_OOPS_SUPPORT +#endif + +#include "xmlgenerator.h" +#include "version_info.h" + +/************************************************/ + +#define CRASH_EMAILADDR "forum at www.openpli.org" +#define INFOFILE "/maintainer.info" + +#define RINGBUFFER_SIZE 16384 +static char ringbuffer[RINGBUFFER_SIZE]; +static unsigned int ringbuffer_head; + +static void addToLogbuffer(const char *data, unsigned int len) +{ + while (len) + { + unsigned int remaining = RINGBUFFER_SIZE - ringbuffer_head; + + if (remaining > len) + remaining = len; + + memcpy(ringbuffer + ringbuffer_head, data, remaining); + len -= remaining; + data += remaining; + ringbuffer_head += remaining; + ASSERT(ringbuffer_head <= RINGBUFFER_SIZE); + if (ringbuffer_head == RINGBUFFER_SIZE) + ringbuffer_head = 0; + } +} + +static const std::string getLogBuffer() +{ + unsigned int begin = ringbuffer_head; + while (ringbuffer[begin] == 0) + { + ++begin; + if (begin == RINGBUFFER_SIZE) + begin = 0; + if (begin == ringbuffer_head) + return ""; + } + + if (begin < ringbuffer_head) + return std::string(ringbuffer + begin, ringbuffer_head - begin); + else + return std::string(ringbuffer + begin, RINGBUFFER_SIZE - begin) + std::string(ringbuffer, ringbuffer_head); +} + +static void addToLogbuffer(int level, const std::string &log) +{ + addToLogbuffer(log.c_str(), log.size()); +} + +static const std::string getConfigString(const std::string &key, const std::string &defaultValue) +{ + std::string value = eConfigManager::getConfigValue(key.c_str()); + + //we get at least the default value if python is still alive + if (!value.empty()) + return value; + + value = defaultValue; + + // get value from enigma2 settings file + std::ifstream in(eEnv::resolve("${sysconfdir}/enigma2/settings").c_str()); + if (in.good()) { + do { + std::string line; + std::getline(in, line); + size_t size = key.size(); + if (!key.compare(0, size, line) && line[size] == '=') { + value = line.substr(size + 1); + break; + } + } while (in.good()); + in.close(); + } + + return value; +} + +static bool getConfigBool(const std::string &key, bool defaultValue) +{ + std::string value = getConfigString(key, defaultValue ? "true" : "false"); + const char *cvalue = value.c_str(); + + if (!strcasecmp(cvalue, "true")) + return true; + if (!strcasecmp(cvalue, "false")) + return false; + + return defaultValue; +} + +static bool bsodhandled = false; + +void bsodFatal(const char *component) +{ + /* show no more than one bsod while shutting down/crashing */ + if (bsodhandled) return; + bsodhandled = true; + + std::string lines = getLogBuffer(); + + /* find python-tracebacks, and extract " File "-strings */ + size_t start = 0; + + std::string crash_emailaddr = CRASH_EMAILADDR; + std::string crash_component = "enigma2"; + + if (component) + crash_component = component; + else + { + while ((start = lines.find("\n File \"", start)) != std::string::npos) + { + start += 9; + size_t end = lines.find("\"", start); + if (end == std::string::npos) + break; + end = lines.rfind("/", end); + /* skip a potential prefix to the path */ + unsigned int path_prefix = lines.find("/usr/", start); + if (path_prefix != std::string::npos && path_prefix < end) + start = path_prefix; + + if (end == std::string::npos) + break; + + std::string filename(lines.substr(start, end - start) + INFOFILE); + std::ifstream in(filename.c_str()); + if (in.good()) { + std::getline(in, crash_emailaddr) && std::getline(in, crash_component); + in.close(); + } + } + } + + FILE *f; + const char* crashlog_name; + std::ostringstream os; + os << "/media/hdd/enigma2_crash_"; + os << time(0); + os << ".log"; + crashlog_name = os.str().c_str(); + f = fopen(crashlog_name, "wb"); + + if (f == NULL) + { + /* No hardisk. If there is a crash log in /home/root, leave it + * alone because we may be in a crash loop and writing this file + * all night long may damage the flash. Also, usually the first + * crash log is the most interesting one. */ + crashlog_name = "/home/root/enigma2_crash.log"; + if ((access(crashlog_name, F_OK) == 0) || + ((f = fopen(crashlog_name, "wb")) == NULL)) + { + /* Re-write the same file in /tmp/ because it's expected to + * be in RAM. So the first crash log will end up in /home + * and the last in /tmp */ + crashlog_name = "/tmp/enigma2_crash.log"; + f = fopen(crashlog_name, "wb"); + } + } + + if (f) + { + time_t t = time(0); + struct tm tm; + char tm_str[32]; + + bool detailedCrash = getConfigBool("config.crash.details", true); + + localtime_r(&t, &tm); + strftime(tm_str, sizeof(tm_str), "%a %b %_d %T %Y", &tm); + + XmlGenerator xml(f); + + xml.open("openpli"); + + xml.open("enigma2"); + xml.string("crashdate", tm_str); + xml.string("compiledate", __DATE__); + xml.string("contactemail", crash_emailaddr); + xml.comment("Please email this crashlog to above address"); + + xml.string("skin", getConfigString("config.skin.primary_skin", "Default Skin")); + xml.string("sourcedate", enigma2_date); + xml.string("branch", enigma2_branch); + xml.string("rev", enigma2_rev); + xml.string("version", PACKAGE_VERSION); + xml.close(); + + xml.open("image"); + if(access("/proc/stb/info/boxtype", F_OK) != -1) { + xml.stringFromFile("stbmodel", "/proc/stb/info/boxtype"); + } + else if (access("/proc/stb/info/vumodel", F_OK) != -1) { + xml.stringFromFile("stbmodel", "/proc/stb/info/vumodel"); + } + else if (access("/proc/stb/info/model", F_OK) != -1) { + xml.stringFromFile("stbmodel", "/proc/stb/info/model"); + } + xml.cDataFromCmd("kernelversion", "uname -a"); + xml.stringFromFile("kernelcmdline", "/proc/cmdline"); + xml.stringFromFile("nimsockets", "/proc/bus/nim_sockets"); + if (!getConfigBool("config.plugins.crashlogautosubmit.sendAnonCrashlog", true)) { + xml.cDataFromFile("stbca", "/proc/stb/info/ca"); + xml.cDataFromFile("enigma2settings", eEnv::resolve("${sysconfdir}/enigma2/settings"), ".password="); + } + if (getConfigBool("config.plugins.crashlogautosubmit.addNetwork", false)) { + xml.cDataFromFile("networkinterfaces", "/etc/network/interfaces"); + xml.cDataFromFile("dns", "/etc/resolv.conf"); + xml.cDataFromFile("defaultgateway", "/etc/default_gw"); + } + if (getConfigBool("config.plugins.crashlogautosubmit.addWlan", false)) + xml.cDataFromFile("wpasupplicant", "/etc/wpa_supplicant.conf"); + xml.cDataFromFile("imageversion", "/etc/image-version"); + xml.cDataFromFile("imageissue", "/etc/issue.net"); + xml.close(); + + if (detailedCrash) + { + xml.open("software"); + xml.cDataFromCmd("enigma2software", "opkg list-installed 'enigma2*'"); + if(access("/proc/stb/info/boxtype", F_OK) != -1) { + xml.cDataFromCmd("xtrendsoftware", "opkg list-installed 'et-*'"); + } + else if (access("/proc/stb/info/vumodel", F_OK) != -1) { + xml.cDataFromCmd("vuplussoftware", "opkg list-installed 'vuplus*'"); + } + else if (access("/proc/stb/info/model", F_OK) != -1) { + xml.cDataFromCmd("dreamboxsoftware", "opkg list-installed 'dream*'"); + } + xml.cDataFromCmd("gstreamersoftware", "opkg list-installed 'gst*'"); + xml.close(); + } + + xml.open("crashlogs"); + xml.cDataFromString("enigma2crashlog", getLogBuffer()); + xml.close(); + + xml.close(); + + fclose(f); + } + + ePtr<gMainDC> my_dc; + gMainDC::getInstance(my_dc); + + gPainter p(my_dc); + p.resetOffset(); + p.resetClip(eRect(ePoint(0, 0), my_dc->size())); + p.setBackgroundColor(gRGB(0x008000)); + p.setForegroundColor(gRGB(0xFFFFFF)); + + ePtr<gFont> font = new gFont("Regular", 20); + p.setFont(font); + p.clear(); + + eRect usable_area = eRect(100, 70, my_dc->size().width() - 150, 100); + + os.str(""); + os.clear(); + os << "We are really sorry. Your STB encountered " + "a software problem, and needs to be restarted.\n" + "Please send the logfile " << crashlog_name << " to " << crash_emailaddr << ".\n" + "Your STB restarts in 10 seconds!\n" + "Component: " << crash_component; + + p.renderText(usable_area, os.str().c_str(), gPainter::RT_WRAP|gPainter::RT_HALIGN_LEFT); + + usable_area = eRect(100, 170, my_dc->size().width() - 180, my_dc->size().height() - 20); + + int i; + + start = std::string::npos + 1; + for (i=0; i<20; ++i) + { + start = lines.rfind('\n', start - 1); + if (start == std::string::npos) + { + start = 0; + break; + } + } + + font = new gFont("Regular", 14); + p.setFont(font); + + p.renderText(usable_area, + lines.substr(start), gPainter::RT_HALIGN_LEFT); + sleep(10); + + /* + * When 'component' is NULL, we are called because of a python exception. + * In that case, we'd prefer to to a clean shutdown of the C++ objects, + * and this should be safe, because the crash did not occur in the + * C++ part. + * However, when we got here for some other reason, a segfault probably, + * we prefer to stop immediately instead of performing a clean shutdown. + * We'd risk destroying things with every additional instruction we're + * executing here. + */ + if (component) raise(SIGKILL); +} + +#if defined(__MIPSEL__) +void oops(const mcontext_t &context) +{ + eDebug("PC: %08lx", (unsigned long)context.pc); + int i; + for (i=0; i<32; i += 4) + { + eDebug("%08x %08x %08x %08x", + (int)context.gregs[i+0], (int)context.gregs[i+1], + (int)context.gregs[i+2], (int)context.gregs[i+3]); + } +} +#endif + +void handleFatalSignal(int signum, siginfo_t *si, void *ctx) +{ +#ifndef NO_OOPS_SUPPORT + ucontext_t *uc = (ucontext_t*)ctx; + oops(uc->uc_mcontext); +#endif + eDebug("-------"); + bsodFatal("enigma2, signal"); +} + +void bsodCatchSignals() +{ + struct sigaction act; + act.sa_sigaction = handleFatalSignal; + act.sa_flags = SA_RESTART | SA_SIGINFO; + if (sigemptyset(&act.sa_mask) == -1) + perror("sigemptyset"); + + /* start handling segfaults etc. */ + sigaction(SIGSEGV, &act, 0); + sigaction(SIGILL, &act, 0); + sigaction(SIGBUS, &act, 0); + sigaction(SIGABRT, &act, 0); +} + +void bsodLogInit() +{ + logOutput.connect(addToLogbuffer); +} diff --git a/main/bsod.h b/main/bsod.h new file mode 100644 index 0000000..4ee4c48 --- /dev/null +++ b/main/bsod.h @@ -0,0 +1,8 @@ +#ifndef __main_bsod_h +#define __main_bsod_h + +void bsodLogInit(); +void bsodCatchSignals(); +void bsodFatal(const char *component); + +#endif diff --git a/main/enigma-dvbtest.cpp b/main/enigma-dvbtest.cpp new file mode 100644 index 0000000..2c2d859 --- /dev/null +++ b/main/enigma-dvbtest.cpp @@ -0,0 +1,144 @@ +#include <stdio.h> +#include <libsig_comp.h> +#include <lib/base/ebase.h> +#include <lib/base/eerror.h> + +#include <lib/dvb/dvb.h> +#include <lib/dvb/db.h> +#include <lib/dvb/isection.h> +#include <lib/dvb/esection.h> +#include <dvbsi++/program_map_section.h> +#include <lib/dvb/specs.h> +#include <unistd.h> + +class eMain: public eApplication, public Object +{ + ePtr<eDVBResourceManager> m_mgr; + ePtr<iDVBChannel> m_channel; + ePtr<iDVBDemux> m_demux; + eAUTable<eTable<ProgramMapSection> > m_table; + + ePtr<eDVBDB> m_dvbdb; + + ePtr<eConnection> m_state_change_connection; + int m_last_channel_state; +public: + eMain() + { + eDebug("mich gibts nu!"); + + /* Resourcemanager erstellen */ + m_mgr = new eDVBResourceManager(); + + /* Dummy DVB-Channellist anlegen.. */ + + /* Datenbank erstellen */ + m_dvbdb = new eDVBDB(); + /* als Primary datenbank setzen */ + m_mgr->setChannelList(m_dvbdb); + + /* testtransponder adden */ + eDVBChannelID chid(1,2,3); + + /* frontenddaten... */ + eDVBFrontendParametersSatellite fesat; + + fesat.frequency = 12070000; + fesat.symbol_rate = 27500000; + fesat.polarisation = eDVBFrontendParametersSatellite::Polarisation_Horizontal; + fesat.fec = eDVBFrontendParametersSatellite::FEC_3_4; + fesat.inversion = eDVBFrontendParametersSatellite::Inversion_Off; + fesat.orbital_position = 192; + + eDVBFrontendParameters *fe = new eDVBFrontendParameters(); + + fe->setDVBS(fesat); + /* Zur Kanalliste hinzufuegen.. */ + m_dvbdb->addChannelToList(chid, fe); + + /* Channel allokieren... tunen startet hier, sofern noetig */ + if (m_mgr->allocateChannel(chid, m_channel)) + eDebug("shit it failed!"); + + if (m_channel) + { + /* Auf State-Change listenen */ + m_channel->connectStateChange(slot(*this, &eMain::channelStateChanged), m_state_change_connection); + /* Initial provozieren */ + channelStateChanged(m_channel); + } + } + + void channelStateChanged(iDVBChannel *channel) + { + int state; + /* Channelstate holen */ + channel->getState(state); + eDebug("channel state is now %d", state); + + /* Wenn Wechsel von nicht-ok auf ok (das erste mal) */ + if ((m_last_channel_state != iDVBChannel::state_ok) + && (state == iDVBChannel::state_ok) && (!m_demux)) + { + eDebug("we'll start tuning!"); + /* Demux holen */ + if (m_channel) + if (m_channel->getDemux(m_demux)) + eDebug("shit it failed.. again."); + + if (m_demux) + { + /* auf table ready connecten */ + CONNECT(m_table.tableReady, eMain::tableReady); + /* und section lesen beginnen */ + m_table.begin(this, eDVBPMTSpec(0x20, 0x33f6), m_demux); + } + } + + m_last_channel_state = state; + } + + void tableReady(int) + { + /* table "fertig" (wie auch immer) */ + ePtr<eTable<ProgramMapSection> > ptr; + /* erfolgreich? */ + if (!m_table.getCurrent(ptr)) + { + /* dumpen ... */ + ProgramMapSectionConstIterator i; + for (i = ptr->getSections().begin(); i != ptr->getSections().end(); ++i) + { + const ProgramMapSection &pmt = **i; + eDebug("pcr pid: %x", pmt.getPcrPid()); + } + eDebug("program map ..."); + /* und raus */ + quit(0); + } + eDebug("table ready."); + } + + ~eMain() + { + eDebug("... nicht mehr."); + } +}; + +#ifdef OBJECT_DEBUG +int object_total_remaining; + +void object_dump() +{ + printf("%d items left\n", object_total_remaining); +} +#endif + +int main() +{ +#ifdef OBJECT_DEBUG + atexit(object_dump); +#endif + eMain app; + return app.exec(); +} diff --git a/main/enigma-gdi.cpp b/main/enigma-gdi.cpp new file mode 100644 index 0000000..a1c7568 --- /dev/null +++ b/main/enigma-gdi.cpp @@ -0,0 +1,111 @@ +#include <stdio.h> +#include <libsig_comp.h> +#include <lib/base/ebase.h> +#include <lib/base/eenv.h> +#include <lib/base/eerror.h> +#include <lib/base/init.h> +#include <lib/base/init_num.h> + +#include <unistd.h> + +#include <lib/gdi/grc.h> +#include <lib/gdi/gmaindc.h> +#include <lib/gdi/font.h> + +#include <lib/gui/ewidget.h> +#include <lib/gui/ewidgetdesktop.h> +#include <lib/gui/elabel.h> + +#ifdef OBJECT_DEBUG +int object_total_remaining; + +void object_dump() +{ + printf("%d items left\n", object_total_remaining); +} +#endif + +void dumpRegion(const gRegion ®ion) +{ + fprintf(stderr, "extends: %d %d -> %d %d\n", + region.extends.left(), region.extends.top(), + region.extends.right(), region.extends.bottom()); + for (int y=0; y<region.extends.bottom(); ++y) + { + for (int x=0; x<region.extends.right(); ++x) + { + unsigned char res = ' '; + for (unsigned int i=0; i < region.rects.size(); ++i) + if (region.rects[i].contains(ePoint(x, y))) + res = '0' + i; + fprintf(stderr, "%c", res); + } + fprintf(stderr, "\n"); + } +} + +int main() +{ +#ifdef OBJECT_DEBUG + atexit(object_dump); +#endif + + eInit init; + + init.setRunlevel(eAutoInitNumbers::main); + ePtr<gMainDC> my_dc; + gMainDC::getInstance(my_dc); + + gPainter p(my_dc); + + gRGB pal[256]; + pal[0] = 0; + pal[1] = 0xff00ff; + pal[2] = 0xffFFff; + pal[3] = 0x00ff00; + + for (int a=0; a<0x10; ++a) + pal[a | 0x10] = (0x111111 * a) | 0xFF; + p.setPalette(pal, 0, 256); + + fontRenderClass::getInstance()->AddFont(eEnv::resolve("${datadir}/fonts/arial.ttf"), "Regular", 100); + + p.resetClip(gRegion(eRect(0, 0, 720, 576))); + + + gRegion c; + eDebug("0"); + int i; + + c |= eRect(0, 20, 100, 10); + c |= eRect(0, 50, 100, 10); + c |= eRect(10, 10, 80, 100); + + c -= eRect(20, 20, 40, 40); + + p.setForegroundColor(gColor(3)); + p.fill(eRect(0, 0, 100, 100)); + p.fill(eRect(200, 0, 100, 100)); + + for (int a=0; a<c.rects.size(); ++a) + eDebug("%d %d -> %d %d", c.rects[a].left(), c.rects[a].top(), c.rects[a].right(), c.rects[a].bottom()); + eDebug("extends: %d %d %d %d", c.extends.left(), c.extends.top(), c.extends.right(), c.extends.bottom()); + p.setOffset(ePoint(100, 100)); + p.clip(c); + + p.setBackgroundColor(gColor(1)); + p.clear(); + p.setForegroundColor(gColor(2)); + p.line(ePoint(0, 0), ePoint(220, 190)); + p.clippop(); + + p.setBackgroundColor(gColor(0x1f)); + p.setForegroundColor(gColor(0x10)); + + ePtr<gFont> fnt = new gFont("Regular", 70); + p.setFont(fnt); + p.renderText(eRect(100, 100, 500, 200), "Hello World!"); + + sleep(1); + return 0; +} diff --git a/main/enigma-gui.cpp b/main/enigma-gui.cpp new file mode 100644 index 0000000..0d6d5f4 --- /dev/null +++ b/main/enigma-gui.cpp @@ -0,0 +1,106 @@ +#include <stdio.h> +#include <libsig_comp.h> +#include <lib/base/ebase.h> +#include <lib/base/eerror.h> +#include <lib/base/init.h> +#include <lib/base/init_num.h> + +#include <unistd.h> + +#include <lib/gdi/grc.h> +#include <lib/gdi/gmaindc.h> +#include <lib/gdi/font.h> + +#include <lib/gui/ewidget.h> +#include <lib/gui/ewidgetdesktop.h> +#include <lib/gui/elabel.h> + +#ifdef OBJECT_DEBUG +int object_total_remaining; + +void object_dump() +{ + printf("%d items left\n", object_total_remaining); +} +#endif + +void dumpRegion(const gRegion ®ion) +{ + fprintf(stderr, "extends: %d %d -> %d %d\n", + region.extends.left(), region.extends.top(), + region.extends.right(), region.extends.bottom()); + for (int y=0; y<region.extends.bottom(); ++y) + { + for (int x=0; x<region.extends.right(); ++x) + { + unsigned char res = ' '; + for (unsigned int i=0; i < region.rects.size(); ++i) + if (region.rects[i].contains(ePoint(x, y))) + res = '0' + i; + fprintf(stderr, "%c", res); + } + fprintf(stderr, "\n"); + } +} + +int main() +{ +#ifdef OBJECT_DEBUG + atexit(object_dump); +#endif + + eInit init; + + init.setRunlevel(eAutoInitNumbers::main); + ePtr<gMainDC> my_dc; + gMainDC::getInstance(my_dc); + + gPainter p(my_dc); + + gRGB pal[256]; + pal[0] = 0; + pal[1] = 0xff00ff; + pal[2] = 0xffFFff; + pal[3] = 0x00ff00; + + for (int a=0; a<0x10; ++a) + pal[a | 0x10] = (0x111111 * a) | 0xFF; + p.setPalette(pal, 0, 256); + + fontRenderClass::getInstance()->AddFont(eEnv::resolve("${datadir}/fonts/arial.ttf"), "Regular", 100); + + eWidgetDesktop dsk(eSize(720, 576)); + dsk.setDC(my_dc); + + eWidget *bla = new eWidget(0); + dsk.addRootWidget(bla, 0); + + bla->move(ePoint(100, 100)); + bla->resize(eSize(200, 200)); + bla->show(); + + eWidget *blablub = new eLabel(bla); + blablub->move(ePoint(40, 40)); + blablub->resize(eSize(100, 100)); + + eWidget *bla2 = new eWidget(0); + dsk.addRootWidget(bla2, 0); + + bla2->move(ePoint(160, 160)); + bla2->resize(eSize(200, 200)); + bla2->show(); + + dsk.recalcClipRegions(); + + dumpRegion(bla->m_visible_region); +// dumpRegion(bla2->m_visible_region); +// dumpRegion(blablub->m_visible_region); + + eDebug("painting!"); + + dsk.invalidate(gRegion(eRect(0, 0, 720, 576))); + dsk.paint(); + + sleep(1); + return 0; +} diff --git a/main/enigma-playlist.cpp b/main/enigma-playlist.cpp new file mode 100644 index 0000000..8049743 --- /dev/null +++ b/main/enigma-playlist.cpp @@ -0,0 +1,158 @@ +#include <stdio.h> +#include <libsig_comp.h> +#include <lib/base/ebase.h> +#include <lib/base/eerror.h> +#include <lib/base/init.h> +#include <lib/base/init_num.h> + +#include <lib/dvb/dvb.h> +#include <lib/dvb/db.h> +#include <lib/dvb/isection.h> +#include <lib/dvb/esection.h> +#include <dvbsi++/program_map_section.h> +#include <lib/dvb/scan.h> +#include <unistd.h> + +#include <lib/service/iservice.h> +#include <lib/nav/core.h> + +class eMain: public eApplication, public Object +{ + eInit init; + + ePtr<eDVBResourceManager> m_mgr; + ePtr<iDVBChannel> m_channel; + ePtr<eDVBDB> m_dvbdb; + + ePtr<iPlayableService> m_playservice; + ePtr<eNavigation> m_nav; + ePtr<eConnection> m_conn_event; + ePtr<iServiceInformation> m_serviceInformation; +public: + eMain() + { + init.setRunlevel(eAutoInitNumbers::main); + m_dvbdb = new eDVBDB(); + m_mgr = new eDVBResourceManager(); + m_mgr->setChannelList(m_dvbdb); + + ePtr<eServiceCenter> service_center; + eServiceCenter::getInstance(service_center); + + assert(service_center); + m_nav = new eNavigation(service_center); +#if 0 + if (service_center) + { + eServiceReference ref("2:0:1:0:0:0:0:0:0:0:/"); + ePtr<iListableService> lst; + if (service_center->list(ref, lst)) + eDebug("no list available!"); + else + { + std::list<eServiceReference> list; + if (lst->getContent(list)) + eDebug("list itself SUCKED AROUND!!!"); + else + for (std::list<eServiceReference>::const_iterator i(list.begin()); + i != list.end(); ++i) + eDebug("%s", i->toString().c_str()); + } + } +#endif + m_nav->connectEvent(slot(*this, &eMain::event), m_conn_event); + +// eServiceReference ref("1:0:1:6de2:44d:1:c00000:0:0:0:"); + eServiceReference ref("4097:47:0:0:0:0:0:0:0:0:/sine_60s_100.mp3"); + eServiceReference ref1("4097:47:0:0:0:0:0:0:0:0:/sine_60s_100.mp31"); + eServiceReference ref2("4097:47:0:0:0:0:0:0:0:0:/sine_60s_100.mp32"); + + if (m_nav->enqueueService(ref)) + eDebug("play sucked around!"); + else + eDebug("play r00lz!"); + + m_nav->enqueueService(ref1); + m_nav->enqueueService(ref2); + m_nav->enqueueService(ref1); + } + + void event(eNavigation *nav, int ev) + { + assert(nav); + + ePtr<ePlaylist> playlist; + nav->getPlaylist(playlist); + if (playlist) + { + eDebug("PLAYLIST:"); + ePlaylist::iterator i; + for (i=playlist->begin(); i != playlist->end(); ++i) + eDebug("%s %s", i == playlist->m_current ? "-->" : " ", i->toString().c_str()); + } + + switch (ev) + { + case eNavigation::evStopService: + /* very important: the old service should be deallocated, so clear *all* references to it */ + m_serviceInformation = 0; + eDebug("STOP service!"); + break; + case eNavigation::evNewService: + { + ePtr<iPlayableService> service; + nav->getCurrentService(service); + if (!service) + { + eDebug("no running service!"); + break; + } + if (service->getIServiceInformation(m_serviceInformation)) + { + eDebug("failed to get iserviceinformation"); + break; + } + std::string name; + m_serviceInformation->getName(name); + eDebug("NEW running service: %s", name.c_str()); + break; + } + case eNavigation::evPlayFailed: + eDebug("play failed!"); + break; + case eNavigation::evPlaylistDone: + eDebug("playlist done"); + quit(); + break; + default: + eDebug("Navigation event %d", ev); + break; + } + } + + ~eMain() + { + } +}; + +#ifdef OBJECT_DEBUG +int object_total_remaining; + +void object_dump() +{ + printf("%d items left\n", object_total_remaining); +} +#endif + +int main() +{ +#ifdef OBJECT_DEBUG + atexit(object_dump); +#endif + + eMain app; + int res = app.exec(); + eDebug("after exec"); + return res; +} + diff --git a/main/enigma-scan.cpp b/main/enigma-scan.cpp new file mode 100644 index 0000000..b0b912d --- /dev/null +++ b/main/enigma-scan.cpp @@ -0,0 +1,94 @@ +#include <stdio.h> +#include <libsig_comp.h> +#include <lib/base/ebase.h> +#include <lib/base/eerror.h> +#include <lib/base/init.h> +#include <lib/base/init_num.h> + +#include <lib/dvb/dvb.h> +#include <lib/dvb/db.h> +#include <lib/dvb/isection.h> +#include <lib/dvb/esection.h> +#include <dvbsi++/program_map_section.h> +#include <lib/dvb/scan.h> +#include <unistd.h> + +class eMain: public eApplication, public Object +{ + eInit init; + + eDVBScan *m_scan; + + ePtr<eDVBResourceManager> m_mgr; + ePtr<iDVBChannel> m_channel; + ePtr<eDVBDB> m_dvbdb; + + void scanEvent(int evt) + { + eDebug("scan event %d!", evt); + if (evt == eDVBScan::evtFinish) + { + m_scan->insertInto(m_dvbdb); + quit(0); + } + } + ePtr<eConnection> m_scan_event_connection; +public: + eMain() + { + m_dvbdb = new eDVBDB(); + m_mgr = new eDVBResourceManager(); + + eDVBFrontendParametersSatellite fesat; + + fesat.frequency = 11817000; // 12070000; + fesat.symbol_rate = 27500000; + fesat.polarisation = eDVBFrontendParametersSatellite::Polarisation_Vertical; + fesat.fec = eDVBFrontendParametersSatellite::FEC_3_4; + fesat.inversion = eDVBFrontendParametersSatellite::Inversion_Off; + fesat.orbital_position = 192; + + eDVBFrontendParameters *fe = new eDVBFrontendParameters(); + + fe->setDVBS(fesat); + + if (m_mgr->allocateRawChannel(m_channel)) + eDebug("shit it failed!"); + +// init.setRunlevel(eAutoInitNumbers::main); + eDebug("starting scan..."); + + std::list<ePtr<iDVBFrontendParameters> > list; + + list.push_back(fe); + + m_scan = new eDVBScan(m_channel); + m_scan->start(list); + + m_scan->connectEvent(slot(*this, &eMain::scanEvent), m_scan_event_connection); + } + + ~eMain() + { + delete m_scan; + eDebug("... nicht mehr."); + } +}; + +#ifdef OBJECT_DEBUG +int object_total_remaining; + +void object_dump() +{ + printf("%d items left\n", object_total_remaining); +} +#endif + +int main() +{ +#ifdef OBJECT_DEBUG + atexit(object_dump); +#endif + eMain app; + return app.exec(); +} diff --git a/main/enigma.cpp b/main/enigma.cpp new file mode 100644 index 0000000..14627f4 --- /dev/null +++ b/main/enigma.cpp @@ -0,0 +1,330 @@ +#include <unistd.h> +#include <fcntl.h> +#include <stdio.h> +#include <sys/types.h> +#include <sys/ioctl.h> +#include <libsig_comp.h> + +#include <lib/actions/action.h> +#include <lib/driver/rc.h> +#include <lib/base/ioprio.h> +#include <lib/base/ebase.h> +#include <lib/base/eenv.h> +#include <lib/base/eerror.h> +#include <lib/base/init.h> +#include <lib/base/init_num.h> +#include <lib/gdi/gmaindc.h> +#include <lib/gdi/glcddc.h> +#include <lib/gdi/grc.h> +#include <lib/gdi/epng.h> +#include <lib/gdi/font.h> +#include <lib/gui/ebutton.h> +#include <lib/gui/elabel.h> +#include <lib/gui/elistboxcontent.h> +#include <lib/gui/ewidget.h> +#include <lib/gui/ewidgetdesktop.h> +#include <lib/gui/ewindow.h> +#include <lib/gui/evideo.h> +#include <lib/python/connections.h> +#include <lib/python/python.h> +#include <lib/python/pythonconfig.h> + +#include "bsod.h" +#include "version_info.h" + +#include <gst/gst.h> + +#ifdef OBJECT_DEBUG +int object_total_remaining; + +void object_dump() +{ + printf("%d items left\n", object_total_remaining); +} +#endif + +static eWidgetDesktop *wdsk, *lcddsk; + +static int prev_ascii_code; + +int getPrevAsciiCode() +{ + int ret = prev_ascii_code; + prev_ascii_code = 0; + return ret; +} + +void keyEvent(const eRCKey &key) +{ + static eRCKey last(0, 0, 0); + static int num_repeat; + + ePtr<eActionMap> ptr; + eActionMap::getInstance(ptr); + + if ((key.code == last.code) && (key.producer == last.producer) && key.flags & eRCKey::flagRepeat) + num_repeat++; + else + { + num_repeat = 0; + last = key; + } + + if (num_repeat == 4) + { + ptr->keyPressed(key.producer->getIdentifier(), key.code, eRCKey::flagLong); + num_repeat++; + } + + if (key.flags & eRCKey::flagAscii) + { + prev_ascii_code = key.code; + ptr->keyPressed(key.producer->getIdentifier(), 510 /* faked KEY_ASCII */, 0); + } + else + ptr->keyPressed(key.producer->getIdentifier(), key.code, key.flags); +} + +/************************************************/ +#include <unistd.h> +#include <lib/components/scan.h> +#include <lib/dvb/idvb.h> +#include <lib/dvb/dvb.h> +#include <lib/dvb/db.h> +#include <lib/dvb/dvbtime.h> +#include <lib/dvb/epgcache.h> + +class eMain: public eApplication, public Object +{ + eInit init; + ePythonConfigQuery config; + + ePtr<eDVBDB> m_dvbdb; + ePtr<eDVBResourceManager> m_mgr; + ePtr<eDVBLocalTimeHandler> m_locale_time_handler; + ePtr<eEPGCache> m_epgcache; + +public: + eMain() + { + init.setRunlevel(eAutoInitNumbers::main); + /* TODO: put into init */ + m_dvbdb = new eDVBDB(); + m_mgr = new eDVBResourceManager(); + m_locale_time_handler = new eDVBLocalTimeHandler(); + m_epgcache = new eEPGCache(); + m_mgr->setChannelList(m_dvbdb); + } + + ~eMain() + { + m_dvbdb->saveServicelist(); + m_mgr->releaseCachedChannel(); + } +}; + +int exit_code; + +int main(int argc, char **argv) +{ +#ifdef MEMLEAK_CHECK + atexit(DumpUnfreed); +#endif + +#ifdef OBJECT_DEBUG + atexit(object_dump); +#endif + + gst_init(&argc, &argv); + + // set pythonpath if unset + setenv("PYTHONPATH", eEnv::resolve("${libdir}/enigma2/python").c_str(), 0); + printf("PYTHONPATH: %s\n", getenv("PYTHONPATH")); + + bsodLogInit(); + + ePython python; + eMain main; + +#if 1 + ePtr<gMainDC> my_dc; + gMainDC::getInstance(my_dc); + + //int double_buffer = my_dc->haveDoubleBuffering(); + + ePtr<gLCDDC> my_lcd_dc; + gLCDDC::getInstance(my_lcd_dc); + + + /* ok, this is currently hardcoded for arabic. */ + /* some characters are wrong in the regular font, force them to use the replacement font */ + for (int i = 0x60c; i <= 0x66d; ++i) + eTextPara::forceReplacementGlyph(i); + eTextPara::forceReplacementGlyph(0xfdf2); + for (int i = 0xfe80; i < 0xff00; ++i) + eTextPara::forceReplacementGlyph(i); + + eWidgetDesktop dsk(my_dc->size()); + eWidgetDesktop dsk_lcd(my_lcd_dc->size()); + + dsk.setStyleID(0); + dsk_lcd.setStyleID(my_lcd_dc->size().width() == 96 ? 2 : 1); + +/* if (double_buffer) + { + eDebug(" - double buffering found, enable buffered graphics mode."); + dsk.setCompositionMode(eWidgetDesktop::cmBuffered); + } */ + + wdsk = &dsk; + lcddsk = &dsk_lcd; + + dsk.setDC(my_dc); + dsk_lcd.setDC(my_lcd_dc); + + dsk.setBackgroundColor(gRGB(0,0,0,0xFF)); +#endif + + /* redrawing is done in an idle-timer, so we have to set the context */ + dsk.setRedrawTask(main); + dsk_lcd.setRedrawTask(main); + + + eDebug("Loading spinners..."); + + { + int i; +#define MAX_SPINNER 64 + ePtr<gPixmap> wait[MAX_SPINNER]; + for (i=0; i<MAX_SPINNER; ++i) + { + char filename[64]; + std::string rfilename; + snprintf(filename, sizeof(filename), "${datadir}/enigma2/skin_default/spinner/wait%d.png", i + 1); + rfilename = eEnv::resolve(filename); + loadPNG(wait[i], rfilename.c_str()); + + if (!wait[i]) + { + if (!i) + eDebug("failed to load %s! (%m)", rfilename.c_str()); + else + eDebug("found %d spinner!\n", i); + break; + } + } + if (i) + my_dc->setSpinner(eRect(ePoint(100, 100), wait[0]->size()), wait, i); + else + my_dc->setSpinner(eRect(100, 100, 0, 0), wait, 1); + } + + gRC::getInstance()->setSpinnerDC(my_dc); + + eRCInput::getInstance()->keyEvent.connect(slot(keyEvent)); + + printf("executing main\n"); + + bsodCatchSignals(); + + setIoPrio(IOPRIO_CLASS_BE, 3); + + /* start at full size */ + eVideoWidget::setFullsize(true); + +// python.execute("mytest", "__main__"); + python.execFile(eEnv::resolve("${libdir}/enigma2/python/mytest.py").c_str()); + + /* restore both decoders to full size */ + eVideoWidget::setFullsize(true); + + if (exit_code == 5) /* python crash */ + { + eDebug("(exit code 5)"); + bsodFatal(0); + } + + dsk.paint(); + dsk_lcd.paint(); + + { + gPainter p(my_lcd_dc); + p.resetClip(eRect(ePoint(0, 0), my_lcd_dc->size())); + p.clear(); + p.flush(); + } + + return exit_code; +} + +eWidgetDesktop *getDesktop(int which) +{ + return which ? lcddsk : wdsk; +} + +eApplication *getApplication() +{ + return eApp; +} + +void quitMainloop(int exitCode) +{ + FILE *f = fopen("/proc/stb/fp/was_timer_wakeup", "w"); + if (f) + { + fprintf(f, "%d", 0); + fclose(f); + } + else + { + int fd = open("/dev/dbox/fp0", O_WRONLY); + if (fd >= 0) + { + if (ioctl(fd, 10 /*FP_CLEAR_WAKEUP_TIMER*/) < 0) + eDebug("FP_CLEAR_WAKEUP_TIMER failed (%m)"); + close(fd); + } + else + eDebug("open /dev/dbox/fp0 for wakeup timer clear failed!(%m)"); + } + exit_code = exitCode; + eApp->quit(0); +} + +static void sigterm_handler(int num) +{ + quitMainloop(128 + num); +} + +void runMainloop() +{ + struct sigaction act; + + act.sa_handler = sigterm_handler; + act.sa_flags = SA_RESTART; + + if (sigemptyset(&act.sa_mask) == -1) + perror("sigemptyset"); + if (sigaction(SIGTERM, &act, 0) == -1) + perror("SIGTERM"); + + eApp->runLoop(); +} + +const char *getEnigmaVersionString() +{ + return enigma2_version; +} + +const char *getBoxType() +{ + return BOXTYPE; +} + +#include <malloc.h> + +void dump_malloc_stats(void) +{ + struct mallinfo mi = mallinfo(); + eDebug("MALLOC: %d total", mi.uordblks); +} diff --git a/main/version_info.cpp b/main/version_info.cpp new file mode 100644 index 0000000..5dcdbd7 --- /dev/null +++ b/main/version_info.cpp @@ -0,0 +1,19 @@ +#include "version_info.h" +#include "version.h" + +#ifndef ENIGMA2_COMMIT_DATE +#define ENIGMA2_COMMIT_DATE __DATE__ +#endif +const char *enigma2_date = ENIGMA2_COMMIT_DATE; + +#ifndef ENIGMA2_BRANCH +#define ENIGMA2_BRANCH "(no branch)" +#endif +const char *enigma2_branch = ENIGMA2_BRANCH; + +#ifndef ENIGMA2_REV +#define ENIGMA2_REV "" +#endif +const char *enigma2_rev = ENIGMA2_REV; + +const char *enigma2_version = (ENIGMA2_COMMIT_DATE "-" ENIGMA2_BRANCH); diff --git a/main/version_info.h b/main/version_info.h new file mode 100644 index 0000000..63187e1 --- /dev/null +++ b/main/version_info.h @@ -0,0 +1,9 @@ +#ifndef __main_version_info_h__ +#define __main_version_info_h__ + +extern const char *enigma2_date; +extern const char *enigma2_branch; +extern const char *enigma2_rev; +extern const char *enigma2_version; + +#endif diff --git a/main/xmlgenerator.cpp b/main/xmlgenerator.cpp new file mode 100644 index 0000000..eb4f157 --- /dev/null +++ b/main/xmlgenerator.cpp @@ -0,0 +1,188 @@ +#include <fstream> +#include <lib/base/eerror.h> +#include "xmlgenerator.h" + +XmlGenerator::XmlGenerator(FILE *f) : m_file(f), m_indent(true), m_level(0) +{ + ::fprintf(m_file, "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"); +} + +XmlGenerator::~XmlGenerator() +{ +} + +void XmlGenerator::vprint(const char *fmt, va_list ap, bool newline) +{ + unsigned int i; + + if (m_indent) + for (i = 0; i < m_level; i++) + ::fprintf(m_file, "\t"); + + ::vfprintf(m_file, fmt, ap); + + if (newline) + ::fprintf(m_file, "\n"); +} + +void XmlGenerator::print(const char *fmt, ...) +{ + va_list ap; + + ::va_start(ap, fmt); + vprint(fmt, ap, false); + ::va_end(ap); +} + +void XmlGenerator::printLn(const char *fmt, ...) +{ + va_list ap; + + ::va_start(ap, fmt); + vprint(fmt, ap, true); + ::va_end(ap); +} + +void XmlGenerator::open(const std::string &tag, bool newline) +{ + if (newline) { + printLn("<%s>", tag.c_str()); + } else { + print("<%s>", tag.c_str()); + m_indent = false; + } + + m_tags.push(tag); + m_level++; +} + +void XmlGenerator::open(const std::string &tag) +{ + open(tag, true); +} + +void XmlGenerator::close() +{ + ASSERT(!m_tags.empty()); + ASSERT(m_level > 0); + m_level--; + + printLn("</%s>", m_tags.top().c_str()); + m_indent = true; + + m_tags.pop(); +} + +void XmlGenerator::comment(const std::string &str) +{ + printLn("<!-- %s -->", str.c_str()); +} + +void XmlGenerator::commentFromErrno(const std::string &tag) +{ + open(tag); + comment(strerror(errno)); + close(); +} + +std::string XmlGenerator::cDataEscape(const std::string &str) +{ + const std::string search = "]]>"; + const std::string replace = "]]]]><![CDATA[>"; + std::string ret; + size_t pos = 0, opos; + + for (;;) { + opos = pos; + pos = str.find(search, opos); + if (pos == std::string::npos) + break; + ret.append(str, opos, pos - opos); + ret.append(replace); + pos += search.size(); + } + + ret.append(str, opos, std::string::npos); + return ret; +} + +void XmlGenerator::cDataFromCmd(const std::string &tag, const std::string &cmd) +{ + FILE *pipe = ::popen(cmd.c_str(), "re"); + + if (pipe == 0) { + commentFromErrno(tag); + return; + } + + std::string result; + char *lineptr = NULL; + size_t n = 0; + + for (;;) { + ssize_t ret = ::getline(&lineptr, &n, pipe); + if (ret < 0) + break; + result.append(lineptr, ret); + } + + if (lineptr) + ::free(lineptr); + + ::pclose(pipe); + cDataFromString(tag, result); +} + +void XmlGenerator::cDataFromFile(const std::string &tag, const std::string &filename, const char *filter) +{ + std::ifstream in(filename.c_str()); + std::string line; + std::string content; + + if (!in.good()) { + commentFromErrno(tag); + return; + } + + while (std::getline(in, line)) + if (!filter || !line.find(filter)) + content += line + '\n'; + + in.close(); + cDataFromString(tag, content); +} + +void XmlGenerator::cDataFromString(const std::string &tag, const std::string &str) +{ + bool indent = false; + + open(tag); + printLn("<![CDATA["); + std::swap(m_indent, indent); + print("%s", cDataEscape(str).c_str()); + printLn("]]>"); + std::swap(m_indent, indent); + close(); +} + +void XmlGenerator::string(const std::string &tag, const std::string &str) +{ + open(tag, false); + print("%s", str.c_str()); + close(); +} + +void XmlGenerator::stringFromFile(const std::string &tag, const std::string &filename) +{ + std::ifstream in(filename.c_str()); + std::string line; + + if (!in.good()) { + commentFromErrno(tag); + return; + } + + std::getline(in, line); + in.close(); + string(tag, line); +} diff --git a/main/xmlgenerator.h b/main/xmlgenerator.h new file mode 100644 index 0000000..0dbb262 --- /dev/null +++ b/main/xmlgenerator.h @@ -0,0 +1,43 @@ +#ifndef _main_xmlgenerator_h__ +#define _main_xmlgenerator_h__ + +#include <cstdarg> +#include <cstdio> +#include <stack> +#include <string> + +class XmlGenerator +{ +private: + FILE *m_file; + bool m_indent; + unsigned int m_level; + std::stack<std::string> m_tags; + + void vprint(const char *fmt, va_list ap, bool newline); + void __attribute__ ((__format__(__printf__, 2, 3))) print(const char *fmt, ...); + void __attribute__ ((__format__(__printf__, 2, 3))) printLn(const char *fmt, ...); + + void open(const std::string &tag, bool newline); + void commentFromErrno(const std::string &tag); + + std::string cDataEscape(const std::string &str); + +public: + XmlGenerator(FILE *f); + ~XmlGenerator(); + + void open(const std::string &tag); + void close(); + + void comment(const std::string &str); + + void cDataFromCmd(const std::string &tag, const std::string &cmd); + void cDataFromFile(const std::string &tag, const std::string &filename, const char *filter = 0); + void cDataFromString(const std::string &tag, const std::string &str); + + void string(const std::string &tag, const std::string &str); + void stringFromFile(const std::string &tag, const std::string &filename); +}; + +#endif diff --git a/mytest.py b/mytest.py new file mode 100644 index 0000000..8e3fdcf --- /dev/null +++ b/mytest.py @@ -0,0 +1,600 @@ +import sys, os +if os.path.isfile("/usr/lib/enigma2/python/enigma.zip"): + sys.path.append("/usr/lib/enigma2/python/enigma.zip") + +from Tools.Profile import profile, profile_final +profile("PYTHON_START") + +import Tools.RedirectOutput +import enigma +import eConsoleImpl +import eBaseImpl +enigma.eTimer = eBaseImpl.eTimer +enigma.eSocketNotifier = eBaseImpl.eSocketNotifier +enigma.eConsoleAppContainer = eConsoleImpl.eConsoleAppContainer + +from traceback import print_exc +profile("SimpleSummary") +from Screens import InfoBar +from Screens.SimpleSummary import SimpleSummary + +from sys import stdout, exc_info + +profile("Bouquets") +enigma.eDVBDB.getInstance().reloadBouquets() + +profile("ParentalControl") +import Components.ParentalControl +Components.ParentalControl.InitParentalControl() + +profile("LOAD:Navigation") +from Navigation import Navigation + +profile("LOAD:skin") +from skin import readSkin + +profile("LOAD:Tools") +from Tools.Directories import InitFallbackFiles, resolveFilename, SCOPE_PLUGINS, SCOPE_CURRENT_SKIN +from Components.config import config, configfile, ConfigText, ConfigYesNo, ConfigInteger, NoSave +InitFallbackFiles() + +profile("config.misc") +config.misc.radiopic = ConfigText(default = resolveFilename(SCOPE_CURRENT_SKIN, "radio.mvi")) +config.misc.blackradiopic = ConfigText(default = resolveFilename(SCOPE_CURRENT_SKIN, "black.mvi")) +config.misc.useTransponderTime = ConfigYesNo(default=True) +config.misc.startCounter = ConfigInteger(default=0) # number of e2 starts... +config.misc.standbyCounter = NoSave(ConfigInteger(default=0)) # number of standby +config.misc.DeepStandby = NoSave(ConfigYesNo(default=False)) # detect deepstandby +config.misc.RestartUI = ConfigYesNo(default=False) # detect user interface restart +config.misc.epgcache_filename = ConfigText(default = "/hdd/epg.dat") + +def setEPGCachePath(configElement): + enigma.eEPGCache.getInstance().setCacheFile(configElement.value) + +#demo code for use of standby enter leave callbacks +#def leaveStandby(): +# print "!!!!!!!!!!!!!!!!!leave standby" + +#def standbyCountChanged(configElement): +# print "!!!!!!!!!!!!!!!!!enter standby num", configElement.value +# from Screens.Standby import inStandby +# inStandby.onClose.append(leaveStandby) + +#config.misc.standbyCounter.addNotifier(standbyCountChanged, initial_call = False) +#################################################### + +def useTransponderTimeChanged(configElement): + enigma.eDVBLocalTimeHandler.getInstance().setUseDVBTime(configElement.value) +config.misc.useTransponderTime.addNotifier(useTransponderTimeChanged) + +profile("Twisted") +try: + import twisted.python.runtime + + import e2reactor + e2reactor.install() + + from twisted.internet import reactor + + def runReactor(): + reactor.run(installSignalHandlers=False) +except ImportError: + print "twisted not available" + def runReactor(): + enigma.runMainloop() + +profile("LOAD:Plugin") + +# initialize autorun plugins and plugin menu entries +from Components.PluginComponent import plugins + +profile("LOAD:Wizard") +from Screens.Wizard import wizardManager +from Screens.StartWizard import * +import Screens.Rc +from Tools.BoundFunction import boundFunction +from Plugins.Plugin import PluginDescriptor + +profile("misc") +had = dict() + +def dump(dir, p = ""): + if isinstance(dir, dict): + for (entry, val) in dir.items(): + dump(val, p + "(dict)/" + entry) + if hasattr(dir, "__dict__"): + for name, value in dir.__dict__.items(): + if not had.has_key(str(value)): + had[str(value)] = 1 + dump(value, p + "/" + str(name)) + else: + print p + "/" + str(name) + ":" + str(dir.__class__) + "(cycle)" + else: + print p + ":" + str(dir) + +# + ":" + str(dir.__class__) + +# display + +profile("LOAD:ScreenGlobals") +from Screens.Globals import Globals +from Screens.SessionGlobals import SessionGlobals +from Screens.Screen import Screen + +profile("Screen") +Screen.global_screen = Globals() + +# Session.open: +# * push current active dialog ('current_dialog') onto stack +# * call execEnd for this dialog +# * clear in_exec flag +# * hide screen +# * instantiate new dialog into 'current_dialog' +# * create screens, components +# * read, apply skin +# * create GUI for screen +# * call execBegin for new dialog +# * set in_exec +# * show gui screen +# * call components' / screen's onExecBegin +# ... screen is active, until it calls 'close'... +# Session.close: +# * assert in_exec +# * save return value +# * start deferred close handler ('onClose') +# * execEnd +# * clear in_exec +# * hide screen +# .. a moment later: +# Session.doClose: +# * destroy screen + +class Session: + def __init__(self, desktop = None, summary_desktop = None, navigation = None): + self.desktop = desktop + self.summary_desktop = summary_desktop + self.nav = navigation + self.delay_timer = enigma.eTimer() + self.delay_timer.callback.append(self.processDelay) + + self.current_dialog = None + + self.dialog_stack = [ ] + self.summary_stack = [ ] + self.summary = None + + self.in_exec = False + + self.screen = SessionGlobals(self) + + for p in plugins.getPlugins(PluginDescriptor.WHERE_SESSIONSTART): + try: + p(reason=0, session=self) + except: + print "Plugin raised exception at WHERE_SESSIONSTART" + import traceback + traceback.print_exc() + + def processDelay(self): + callback = self.current_dialog.callback + + retval = self.current_dialog.returnValue + + if self.current_dialog.isTmp: + self.current_dialog.doClose() +# dump(self.current_dialog) + del self.current_dialog + else: + del self.current_dialog.callback + + self.popCurrent() + if callback is not None: + callback(*retval) + + def execBegin(self, first=True, do_show = True): + assert not self.in_exec + self.in_exec = True + c = self.current_dialog + + # when this is an execbegin after a execend of a "higher" dialog, + # popSummary already did the right thing. + if first: + self.instantiateSummaryDialog(c) + + c.saveKeyboardMode() + c.execBegin() + + # when execBegin opened a new dialog, don't bother showing the old one. + if c == self.current_dialog and do_show: + c.show() + + def execEnd(self, last=True): + assert self.in_exec + self.in_exec = False + + self.current_dialog.execEnd() + self.current_dialog.restoreKeyboardMode() + self.current_dialog.hide() + + if last: + self.current_dialog.removeSummary(self.summary) + self.popSummary() + + def create(self, screen, arguments, **kwargs): + # creates an instance of 'screen' (which is a class) + try: + return screen(self, *arguments, **kwargs) + except: + errstr = "Screen %s(%s, %s): %s" % (str(screen), str(arguments), str(kwargs), exc_info()[0]) + print errstr + print_exc(file=stdout) + enigma.quitMainloop(5) + + def instantiateDialog(self, screen, *arguments, **kwargs): + return self.doInstantiateDialog(screen, arguments, kwargs, self.desktop) + + def deleteDialog(self, screen): + screen.hide() + screen.doClose() + + def instantiateSummaryDialog(self, screen, **kwargs): + self.pushSummary() + summary = screen.createSummary() or SimpleSummary + arguments = (screen,) + self.summary = self.doInstantiateDialog(summary, arguments, kwargs, self.summary_desktop) + self.summary.show() + screen.addSummary(self.summary) + + def doInstantiateDialog(self, screen, arguments, kwargs, desktop): + # create dialog + + try: + dlg = self.create(screen, arguments, **kwargs) + except: + print 'EXCEPTION IN DIALOG INIT CODE, ABORTING:' + print '-'*60 + print_exc(file=stdout) + enigma.quitMainloop(5) + print '-'*60 + + if dlg is None: + return + + # read skin data + readSkin(dlg, None, dlg.skinName, desktop) + + # create GUI view of this dialog + assert desktop is not None + + dlg.setDesktop(desktop) + dlg.applySkin() + + return dlg + + def pushCurrent(self): + if self.current_dialog is not None: + self.dialog_stack.append((self.current_dialog, self.current_dialog.shown)) + self.execEnd(last=False) + + def popCurrent(self): + if self.dialog_stack: + (self.current_dialog, do_show) = self.dialog_stack.pop() + self.execBegin(first=False, do_show=do_show) + else: + self.current_dialog = None + + def execDialog(self, dialog): + self.pushCurrent() + self.current_dialog = dialog + self.current_dialog.isTmp = False + self.current_dialog.callback = None # would cause re-entrancy problems. + self.execBegin() + + def openWithCallback(self, callback, screen, *arguments, **kwargs): + dlg = self.open(screen, *arguments, **kwargs) + dlg.callback = callback + return dlg + + def open(self, screen, *arguments, **kwargs): + if self.dialog_stack and not self.in_exec: + raise RuntimeError("modal open are allowed only from a screen which is modal!") + # ...unless it's the very first screen. + + self.pushCurrent() + dlg = self.current_dialog = self.instantiateDialog(screen, *arguments, **kwargs) + dlg.isTmp = True + dlg.callback = None + self.execBegin() + return dlg + + def close(self, screen, *retval): + if not self.in_exec: + print "close after exec!" + return + + # be sure that the close is for the right dialog! + # if it's not, you probably closed after another dialog + # was opened. this can happen if you open a dialog + # onExecBegin, and forget to do this only once. + # after close of the top dialog, the underlying will + # gain focus again (for a short time), thus triggering + # the onExec, which opens the dialog again, closing the loop. + assert screen == self.current_dialog + + self.current_dialog.returnValue = retval + self.delay_timer.start(0, 1) + self.execEnd() + + def pushSummary(self): + if self.summary is not None: + self.summary.hide() + self.summary_stack.append(self.summary) + self.summary = None + + def popSummary(self): + if self.summary is not None: + self.summary.doClose() + self.summary = self.summary_stack.pop() + if self.summary is not None: + self.summary.show() + +profile("Standby,PowerKey") +import Screens.Standby +from Screens.Menu import MainMenu, mdom +from GlobalActions import globalActionMap + +class PowerKey: + """ PowerKey stuff - handles the powerkey press and powerkey release actions""" + + def __init__(self, session): + self.session = session + globalActionMap.actions["power_down"]=self.powerdown + globalActionMap.actions["power_up"]=self.powerup + globalActionMap.actions["power_long"]=self.powerlong + globalActionMap.actions["deepstandby"]=self.shutdown # frontpanel long power button press + globalActionMap.actions["discrete_off"]=self.standby + self.standbyblocked = 1 + + def MenuClosed(self, *val): + self.session.infobar = None + + def shutdown(self): + print "PowerOff - Now!" + if not Screens.Standby.inTryQuitMainloop and self.session.current_dialog and self.session.current_dialog.ALLOW_SUSPEND: + self.session.open(Screens.Standby.TryQuitMainloop, 1) + + def powerlong(self): + if Screens.Standby.inTryQuitMainloop or (self.session.current_dialog and not self.session.current_dialog.ALLOW_SUSPEND): + return + self.doAction(action = config.usage.on_long_powerpress.value) + + def doAction(self, action): + self.standbyblocked = 1 + if action == "shutdown": + self.shutdown() + elif action == "show_menu": + print "Show shutdown Menu" + root = mdom.getroot() + for x in root.findall("menu"): + y = x.find("id") + if y is not None: + id = y.get("val") + if id and id == "shutdown": + self.session.infobar = self + menu_screen = self.session.openWithCallback(self.MenuClosed, MainMenu, x) + menu_screen.setTitle(_("Standby / restart")) + return + elif action == "standby": + self.standby() + + def powerdown(self): + self.standbyblocked = 0 + + def powerup(self): + if self.standbyblocked == 0: + self.doAction(action = config.usage.on_short_powerpress.value) + + def standby(self): + if not Screens.Standby.inStandby and self.session.current_dialog and self.session.current_dialog.ALLOW_SUSPEND and self.session.in_exec: + self.session.open(Screens.Standby.Standby) + +profile("Scart") +from Screens.Scart import Scart + +class AutoScartControl: + def __init__(self, session): + self.force = False + self.current_vcr_sb = enigma.eAVSwitch.getInstance().getVCRSlowBlanking() + if self.current_vcr_sb and config.av.vcrswitch.value: + self.scartDialog = session.instantiateDialog(Scart, True) + else: + self.scartDialog = session.instantiateDialog(Scart, False) + config.av.vcrswitch.addNotifier(self.recheckVCRSb) + enigma.eAVSwitch.getInstance().vcr_sb_notifier.get().append(self.VCRSbChanged) + + def recheckVCRSb(self, configElement): + self.VCRSbChanged(self.current_vcr_sb) + + def VCRSbChanged(self, value): + #print "vcr sb changed to", value + self.current_vcr_sb = value + if config.av.vcrswitch.value or value > 2: + if value: + self.scartDialog.showMessageBox() + else: + self.scartDialog.switchToTV() + +profile("Load:CI") +from enigma import eDVBCIInterfaces +from Screens.Ci import CiHandler + +profile("Load:VolumeControl") +from Components.VolumeControl import VolumeControl + +def runScreenTest(): + config.misc.startCounter.value += 1 + + profile("readPluginList") + plugins.readPluginList(resolveFilename(SCOPE_PLUGINS)) + + profile("Init:Session") + nav = Navigation() + session = Session(desktop = enigma.getDesktop(0), summary_desktop = enigma.getDesktop(1), navigation = nav) + + CiHandler.setSession(session) + + screensToRun = [ p.__call__ for p in plugins.getPlugins(PluginDescriptor.WHERE_WIZARD) ] + + profile("wizards") + screensToRun += wizardManager.getWizards() + + screensToRun.append((100, InfoBar.InfoBar)) + + screensToRun.sort() + + enigma.ePythonConfigQuery.setQueryFunc(configfile.getResolvedKey) + +# eDVBCIInterfaces.getInstance().setDescrambleRules(0 # Slot Number +# ,( ["1:0:1:24:4:85:C00000:0:0:0:"], #service_list +# ["PREMIERE"], #provider_list, +# [] #caid_list +# )); + + def runNextScreen(session, screensToRun, *result): + if result: + enigma.quitMainloop(*result) + return + + screen = screensToRun[0][1] + args = screensToRun[0][2:] + + if screensToRun: + session.openWithCallback(boundFunction(runNextScreen, session, screensToRun[1:]), screen, *args) + else: + session.open(screen, *args) + + config.misc.epgcache_filename.addNotifier(setEPGCachePath) + + runNextScreen(session, screensToRun) + + profile("Init:VolumeControl") + vol = VolumeControl(session) + profile("Init:PowerKey") + power = PowerKey(session) + + # we need session.scart to access it from within menu.xml + session.scart = AutoScartControl(session) + + profile("Init:Trashcan") + import Tools.Trashcan + Tools.Trashcan.init(session) + + profile("RunReactor") + profile_final() + runReactor() + + config.misc.startCounter.save() + + profile("wakeup") + from time import time, strftime, localtime + from Tools.StbHardware import setFPWakeuptime, getFPWakeuptime, setRTCtime + #get currentTime + nowTime = time() + wakeupList = [ + x for x in ((session.nav.RecordTimer.getNextRecordingTime(), 0), + (session.nav.RecordTimer.getNextZapTime(isWakeup=True), 1), + (plugins.getNextWakeupTime(), 2)) + if x[0] != -1 + ] + wakeupList.sort() + if wakeupList: + from time import strftime + startTime = wakeupList[0] + if (startTime[0] - nowTime) < 270: # no time to switch box back on + wptime = nowTime + 30 # so switch back on in 30 seconds + else: + wptime = startTime[0] - 240 + if not config.misc.useTransponderTime.value: + print "dvb time sync disabled... so set RTC now to current linux time!", strftime("%Y/%m/%d %H:%M", localtime(nowTime)) + setRTCtime(nowTime) + print "set wakeup time to", strftime("%Y/%m/%d %H:%M", localtime(wptime)) + setFPWakeuptime(wptime) + + profile("stopService") + session.nav.stopService() + profile("nav shutdown") + session.nav.shutdown() + + profile("configfile.save") + configfile.save() + from Screens import InfoBarGenerics + InfoBarGenerics.saveResumePoints() + + return 0 + +profile("Init:skin") +import skin +skin.loadSkinData(enigma.getDesktop(0)) + +profile("InputDevice") +import Components.InputDevice +Components.InputDevice.InitInputDevices() +import Components.InputHotplug + +profile("SetupDevices") +import Components.SetupDevices +Components.SetupDevices.InitSetupDevices() + +profile("AVSwitch") +import Components.AVSwitch +Components.AVSwitch.InitAVSwitch() + +profile("RecordingConfig") +import Components.RecordingConfig +Components.RecordingConfig.InitRecordingConfig() + +profile("UsageConfig") +import Components.UsageConfig +Components.UsageConfig.InitUsageConfig() + +profile("keymapparser") +import keymapparser +keymapparser.readKeymap(config.usage.keymap.value) + +profile("Network") +import Components.Network +Components.Network.InitNetwork() + +profile("LCD") +import Components.Lcd +Components.Lcd.InitLcd() + +profile("RFMod") +import Components.RFmod +Components.RFmod.InitRFmod() + +profile("Init:CI") +import Screens.Ci +Screens.Ci.InitCiConfig() + +profile("RcModel") +import Components.RcModel + +#from enigma import dump_malloc_stats +#t = eTimer() +#t.callback.append(dump_malloc_stats) +#t.start(1000) + +# first, setup a screen +try: + runScreenTest() + + plugins.shutdown() + + Components.ParentalControl.parentalControl.save() +except: + print 'EXCEPTION IN PYTHON STARTUP CODE:' + print '-'*60 + print_exc(file=stdout) + enigma.quitMainloop(5) + print '-'*60 diff --git a/po/Makefile.am b/po/Makefile.am new file mode 100644 index 0000000..521c13c --- /dev/null +++ b/po/Makefile.am @@ -0,0 +1,45 @@ +dist_noinst_SCRIPTS = xml2po.py + +LANGS = ar bg ca cs da de el en es et fa fi fr fy he hr hu is it ku lt lv nl no pl pt pt_BR ro ru sv sk sl sr th tr uk +LANGMO = $(LANGS:=.mo) +LANGPO = $(LANGS:=.po) + +EXTRA_DIST = $(LANGPO) + +if UPDATE_PO +# the TRANSLATORS: allows putting translation comments before the to-be-translated line. +enigma2-py.pot: $(top_srcdir)/*.py $(top_srcdir)/lib/python/*/*.py $(top_srcdir)/lib/python/*/*/*.py $(top_srcdir)/lib/python/Plugins/*/*/*.py + $(XGETTEXT) --no-wrap -L Python --from-code=UTF-8 -kpgettext:1c,2 --add-comments="TRANSLATORS:" -d @PACKAGE_NAME@ -s -o $@ $^ + +enigma2-xml.pot: $(srcdir)/xml2po.py $(top_srcdir)/data/*.xml $(top_srcdir)/lib/python/Plugins/SystemPlugins/*/*.xml + $(PYTHON) $^ > $@ + +enigma2.pot: enigma2-py.pot enigma2-xml.pot + cat $^ | $(MSGUNIQ) --no-wrap --no-location -o $@ - + +%.po: enigma2.pot + if [ -f $@ ]; then \ + $(MSGMERGE) --backup=none --no-wrap --no-location -s -U $@ $< && touch $@; \ + else \ + $(MSGINIT) -l $@ -o $@ -i $< --no-translator; \ + fi +endif + +.po.mo: + $(MSGFMT) -o $@ $< + +BUILT_SOURCES = $(LANGMO) +CLEANFILES = $(LANGMO) enigma2-py.pot enigma2-xml.pot enigma2.pot + +dist-hook: $(LANGPO) + +install-data-local: $(LANGMO) + for lang in $(LANGS); do \ + $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/po/$$lang/LC_MESSAGES; \ + $(INSTALL_DATA) $$lang.mo $(DESTDIR)$(pkgdatadir)/po/$$lang/LC_MESSAGES/@PACKAGE_NAME@.mo; \ + done + +uninstall-local: + for lang in $(LANGS); do \ + $(RM) $(DESTDIR)$(pkgdatadir)/po/$$lang/LC_MESSAGES/@PACKAGE_NAME@.mo; \ + done diff --git a/po/ar.po b/po/ar.po new file mode 100644 index 0000000..c3e40d4 --- /dev/null +++ b/po/ar.po @@ -0,0 +1,8944 @@ +# Arabic translations for Enigma2. +# +msgid "" +msgstr "" +"Project-Id-Version: enigma2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2010-08-20 00:08+0200\n" +"Last-Translator: Hazem <moustafagamal@hotmail.com>\n" +"Language-Team: Arabic <moustafagamal@hotmail.com>\n" +"Language: ar\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 ? 4 : 5;\n" +"X-Generator: Pootle 2.0.3\n" +"X-Poedit-Language: Arabic\n" +"X-Poedit-Country: EGYPT\n" +"X-Poedit-SourceCharset: iso-8859-15\n" + +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"إعدادات Ùˆ إختيارات متقدمه" + +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"بعد الضغط على مواÙÙ‚ ØŒ رجاء الانتظار" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" + +# +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"تحرير عنوان مصدر الترقيه" + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" + +# +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"أضغط مواÙÙ‚ من الريموت للاستمرار" + +# +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"إستعاده النسخه الاحتياطيه بالتاريخ" + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" + +# +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"البحث عن إضاÙات موضعيه وتركيبها" + +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"أختار جهاز النسخه الاحتياطيه.\n" +"الجهاز الحالى: " + +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"مشاهده،تنصيب أو إزالة الباقات." + +msgid " (PiP)" +msgstr "" + +msgid " (Radio)" +msgstr "" + +msgid " (TV)" +msgstr "" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +# +msgid " extensions." +msgstr "الاضاÙات" + +msgid " ms" +msgstr "" + +msgid " packages selected." +msgstr "الحزم المختاره" + +# +msgid " updates available." +msgstr "التحديثات المتاحه" + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "" + +msgid "%A %d %B" +msgstr "" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "" + +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "" + +# +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, fuzzy, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "%d تم العثور على" +msgstr[1] "%d تم العثور على" +msgstr[2] "%d تم العثور على" +msgstr[3] "%d تم العثور على" +msgstr[4] "%d تم العثور على" +msgstr[5] "%d تم العثور على" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +# +#, fuzzy, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d وظائ٠تعمل ÙÙ‰ الخلÙيه" +msgstr[1] "%d وظائ٠تعمل ÙÙ‰ الخلÙيه" +msgstr[2] "%d وظائ٠تعمل ÙÙ‰ الخلÙيه" +msgstr[3] "%d وظائ٠تعمل ÙÙ‰ الخلÙيه" +msgstr[4] "%d وظائ٠تعمل ÙÙ‰ الخلÙيه" +msgstr[5] "%d وظائ٠تعمل ÙÙ‰ الخلÙيه" + +# +#, python-format +msgid "%d min" +msgstr "%d دقيقه" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#, python-format +msgid "%d minutes" +msgstr "" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#, fuzzy, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "دليل البدايه" +msgstr[1] "دليل البدايه" +msgstr[2] "دليل البدايه" +msgstr[3] "دليل البدايه" +msgstr[4] "دليل البدايه" +msgstr[5] "دليل البدايه" + +# +#, fuzzy, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "تم العثور على شبكه لاسلكيه" +msgstr[1] "تم العثور على شبكه لاسلكيه" +msgstr[2] "تم العثور على شبكه لاسلكيه" +msgstr[3] "تم العثور على شبكه لاسلكيه" +msgstr[4] "تم العثور على شبكه لاسلكيه" +msgstr[5] "تم العثور على شبكه لاسلكيه" + +msgid "%d-%b-%Y %-H:%M" +msgstr "" + +msgid "%d-%m" +msgstr "" + +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "" + +# +#, fuzzy, python-format +msgid "%s %s free disk space" +msgstr "المساحه المتبقيه ÙÙ‰ القرص" + +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s) \n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "" + +# +#, fuzzy, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "التحديثات المتاحه" +msgstr[1] "التحديثات المتاحه" +msgstr[2] "التحديثات المتاحه" +msgstr[3] "التحديثات المتاحه" +msgstr[4] "التحديثات المتاحه" +msgstr[5] "التحديثات المتاحه" + +#, python-format +msgid "%s%d min" +msgstr "" + +#, python-format +msgid "%s/%s: %s" +msgstr "" + +msgid "(ZAP)" +msgstr "(تنقل)" + +msgid "(empty)" +msgstr "(خالى)" + +msgid "(show optional DVD audio menu)" +msgstr "(شاهد قائمه صوت دى ÙÙ‰ دى إختياريه)" + +msgid "* Only available if more than one interface is active." +msgstr "*متاحه Ùقط عند وجود أكثر من واحهه نشطه" + +msgid "/s" +msgstr "" + +msgid "0" +msgstr "0" + +msgid "1" +msgstr "1" + +msgid "1.0" +msgstr "1.0" + +msgid "1.1" +msgstr "1.1" + +msgid "1.2" +msgstr "1.2" + +# +msgid "12V output" +msgstr "مخرج 12 Ù" + +# +msgid "13 V" +msgstr "13 Ù" + +msgid "16:10" +msgstr "16:10" + +# +msgid "16:10 Letterbox" +msgstr "" + +# +msgid "16:10 PanScan" +msgstr "" + +msgid "16:9" +msgstr "16:9" + +# +msgid "16:9 Letterbox" +msgstr "" + +msgid "16:9 always" +msgstr "16:9 دائما" + +# +msgid "18 V" +msgstr "18 Ù" + +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "" + +msgid "24" +msgstr "" + +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +msgid "3" +msgstr "3" + +msgid "30" +msgstr "" + +msgid "3d mode" +msgstr "" + +msgid "4" +msgstr "4" + +msgid "4:3" +msgstr "4:3" + +# +msgid "4:3 Letterbox" +msgstr "" + +# +msgid "4:3 PanScan" +msgstr "" + +msgid "5" +msgstr "5" + +msgid "6" +msgstr "6" + +msgid "7" +msgstr "7" + +msgid "8" +msgstr "8" + +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +# +msgid "<Current movielist location>" +msgstr "<موقع قائمه الاÙلام الحاليه>" + +# +msgid "<Default movie location>" +msgstr "<مكان الاÙلام الاÙتراضى>" + +# +msgid "<Last timer location>" +msgstr "<مكان المؤقت الاخير>" + +msgid "<unknown>" +msgstr "<غير معروÙ>" + +msgid "??" +msgstr "؟؟" + +# +msgid "A" +msgstr "Ø£" + +#, fuzzy, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"تم تعديل مل٠التكوين (%s) منذ التثبيت\n" +"هل تريد الاحتÙاظ بإصدارك ØŸ" + +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"تم تعديل مل٠التكوين (%s) منذ التثبيت\n" +"هل تريد الاحتÙاظ بإصدارك ØŸ" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "دليل برامج الكترونى بيانى لكل قنوات باقه معينه" + +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"التسجيل بدأ:\n" +"%s" + +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"هناك تسجيل جارى الان \n" +"ماذا تريد أن تÙعل ØŸ" + +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "هناك تسجيل جارى حاليا . من Ùضلك أوق٠التسجيل قبل محاولة ضبط الموتور." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "" + +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "هناك تسجيل جارى حاليا . من Ùضلك أوق٠التسجيل قبل محاولة بدأ مكتش٠الأقمار." + +#, python-format +msgid "A required tool (%s) was not found." +msgstr "لم يتم العثور على الاداه المطلوبه (%s)" + +# +msgid "A search for available updates is currently in progress." +msgstr "يتم حاليا البحث عن التحديثات المتاحه" + +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"تم العثور على واجهه ثانيه جاهزة الاعدادات\n" +"\n" +"هل تريد تعطيل واجهه الشبكه الثانيه ØŸ" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +# +msgid "A small overview of the available icon states and actions." +msgstr "" + +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"Ùشل عمليه التسجيل بالمؤقت\n" +"قم بتعطيل التليÙزيون وحاول مره ثانيه؟\n" + +# +#, fuzzy +msgid "A/V settings" +msgstr "إعدادات الصوت والصوره" + +msgid "AC3/DTS downmix" +msgstr "" + +# +msgid "Abort" +msgstr "الغاء" + +# +msgid "About" +msgstr "عن" + +# +msgid "About..." +msgstr "عـن..." + +# +msgid "Accesspoint:" +msgstr "نقطة وصول" + +# +msgid "Action on long powerbutton press" +msgstr "العمل عند الضغط المستمر على ذر الاغلاق" + +# +msgid "Action on short powerbutton press" +msgstr "العمل عند الضغط السريع على ذر الاغلاق" + +# +msgid "Activate Picture in Picture" +msgstr "صوره داخل صوره نشط" + +#, fuzzy +msgid "Activate current configuration" +msgstr "تنشيط التكوين الحالى" + +# +msgid "Activate network settings" +msgstr "تÙعيل إعدادات الشبكه" + +# +#, fuzzy +msgid "Activate the configured network settings." +msgstr "تÙعيل إعدادات الشبكه" + +# +msgid "Adapter settings" +msgstr "إعدادات المحول" + +# +msgid "Add" +msgstr "أضÙ" + +# +msgid "Add Bookmark" +msgstr "إضاÙØ© مرجعيه" + +# +msgid "Add a mark" +msgstr "أض٠علامه" + +#, fuzzy +msgid "Add a nameserver entry" +msgstr "إضاÙÙ‡ بند اسم خادم" + +# +msgid "Add a new title" +msgstr "إضاÙØ© عنوان جديد" + +#, fuzzy +msgid "Add bookmark" +msgstr "إضاÙØ© مرجعيه" + +#, fuzzy +msgid "Add directory to playlist" +msgstr "إضاÙØ© دليل لقائمه الاغانى" + +#, fuzzy +msgid "Add file to playlist" +msgstr "إضاÙØ© مل٠لقائمة الاغانى" + +#, fuzzy +msgid "Add files to playlist" +msgstr "إضاÙØ© ملÙات لقائمة الاغانى" + +msgid "Add more details to the crash log" +msgstr "" + +#, fuzzy +msgid "Add provider" +msgstr "إضاÙØ© مزود خدمه" + +#, fuzzy +msgid "Add recording (enter recording duration)" +msgstr " إضاÙØ© تسجيل (دخل مدة التسجيل)" + +#, fuzzy +msgid "Add recording (enter recording endtime)" +msgstr " إضاÙØ© تسجيل(أدخل زمن انتهاء التسجيل)" + +#, fuzzy +msgid "Add recording (indefinitely)" +msgstr " أض٠تسجيل (غير محدد المده)" + +#, fuzzy +msgid "Add recording (stop after current event)" +msgstr " أض٠تسجيل (وإيقا٠بعد انتهاء البرنامج الحالى)" + +#, fuzzy +msgid "Add service" +msgstr "إضاÙØ© قماه" + +# +msgid "Add timer" +msgstr "أض٠مؤقت" + +msgid "Add title" +msgstr "إضاÙØ© عنوان" + +# +msgid "Add to bouquet" +msgstr "إضاÙÙ‡ الى الباقه" + +# +msgid "Add to favourites" +msgstr "إضاÙÙ‡ الى المÙضله" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "" + +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "أضبط إعدادات الالوان بحيث يمكن تمييز أطيا٠اللون، لكن تبدو مشبعه قدر الامكان. إذا كانت النتيجه مرضيه أضغط مواÙقلاغلاق الناÙذه ØŒ أو استخدم Ù…Ùاتيح الارقام لاختيار شاشات اختبار أخرى" + +msgid "Advanced" +msgstr "" + +# +#, fuzzy +msgid "Advanced options" +msgstr "إختيارات متقدمه" + +# +msgid "Advanced restore" +msgstr "إستعاده متقدمه" + +# +#, fuzzy +msgid "Advanced software" +msgstr "سوÙت وير متقدم" + +# +#, fuzzy +msgid "Advanced software plugin" +msgstr "سوÙت ويريلج إنز متقدمه" + +# +#, fuzzy +msgid "Advanced video enhancement setup" +msgstr "إعدادات تحسين Ùيديو متقدمه" + +# +#, fuzzy +msgid "Advanced video setup" +msgstr "إعدادات Ùيديو متقدمه" + +# +msgid "After event" +msgstr "بعد الحدث" + +# +msgid "Album" +msgstr "البوم" + +msgid "Alignment of events" +msgstr "" + +msgid "Alignment of service names" +msgstr "" + +# +msgid "All" +msgstr "الكل" + +msgid "All ages" +msgstr "" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "" + +msgid "Allocate unused memory index" +msgstr "" + +msgid "Allow quit movieplayer with exit" +msgstr "" + +msgid "Allow subtitle language to equal audio language" +msgstr "" + +msgid "Allow subtitles for hearing impaired" +msgstr "" + +# +msgid "Alpha" +msgstr "الÙا" + +#, fuzzy +msgid "Alternative" +msgstr "إضاÙØ© بدائل" + +# +#, fuzzy +msgid "Alternative numbering mode" +msgstr "وضع راديو بديل" + +msgid "Alternative services tuner priority" +msgstr "أولوية الموال٠للقنوات البديله" + +msgid "Always ask" +msgstr "" + +msgid "Always hide infobar" +msgstr "" + +# +msgid "An empty filename is illegal." +msgstr "غير مسموح بمل٠بدون اسم" + +# +#, fuzzy +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "حدث خطا اثناء تحميل قائمة الحزم. من Ùضلك حاول ثانيه" + +msgid "An unknown error occurred!" +msgstr "حدث خطأ غير معرو٠!" + +msgid "And will put your receiver in standby over " +msgstr "" + +msgid "Any activity" +msgstr "" + +msgid "Arabic" +msgstr "عـربى" + +msgid "Are you sure to remove this entry?" +msgstr "" + +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"هل أنت متاكد أنك تريد تنشيط تكوينات الشبكه؟\n" +"\n" + +#, fuzzy +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"هل أنت متأكد أنك تريد مسحالنسخه الاحتياطيه الاتيه:\n" +"\n" + +msgid "Are you sure you want to exit this wizard?" +msgstr "هل أنت متأكد أنك تريد الخروج من هذه الناÙذه ØŸ" + +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"هل أنت كتأكد أنك تريد إعادة تشغيل واجهة الشبكه ØŸ\n" +"\n" + +#, fuzzy, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"هل أنت متأكد أنك تريد إستعادة بالك أب الاينجما2 ØŸ\n" +"سيتم عمل إعادة تشغيل الاينجما2 بعد الاستعاده" + +#, fuzzy +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"هل أنت متأكد أنك تريد إستعادة بالك أب الاينجما2 ØŸ\n" +"سيتم عمل إعادة تشغيل الاينجما2 بعد الاستعاده" + +msgid "Artist" +msgstr "الÙنان" + +msgid "Arts/Culture" +msgstr "" + +msgid "Ask user" +msgstr "أسال المستخدم" + +#, fuzzy +msgid "Aspect ratio" +msgstr "نسبة الجانب" + +msgid "Assigned CAIds:" +msgstr "" + +msgid "Assigned services/provider:" +msgstr "" + +# +#, fuzzy +msgid "At beginning" +msgstr "أبدأ من البدايه" + +msgid "At end" +msgstr "" + +# +msgid "Audio" +msgstr "صوت" + +msgid "Audio PID" +msgstr "" + +msgid "Audio language selection 1" +msgstr "" + +msgid "Audio language selection 2" +msgstr "" + +msgid "Audio language selection 3" +msgstr "" + +msgid "Audio language selection 4" +msgstr "" + +#, fuzzy +msgid "Audio options..." +msgstr "خيارات الصوت" + +# +#, fuzzy, python-format +msgid "Audio track (%s) format" +msgstr "مسارات الصوت" + +#, python-format +msgid "Audio track (%s) language" +msgstr "" + +msgid "Author: " +msgstr "المؤلÙ:" + +# +msgid "Authoring mode" +msgstr "" + +# +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "آلـى" + +# +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "" + +# +msgid "Auto flesh" +msgstr "" + +msgid "Auto focus" +msgstr "" + +msgid "Auto focus commencing ..." +msgstr "" + +msgid "Auto language selection" +msgstr "" + +msgid "Auto scart switching" +msgstr "التحول الآلى الى السكارت" + +msgid "Automatic" +msgstr "آلى" + +# +#, fuzzy +msgid "Automatic scan" +msgstr "بحث آلـى" + +msgid "Automatically start timeshift after" +msgstr "" + +msgid "Automatically turn on external subtitles" +msgstr "" + +msgid "Available format variables" +msgstr "متغيرات النسق المتاحه" + +# +msgid "B" +msgstr "ب" + +# +msgid "BER" +msgstr "" + +# +msgid "BER:" +msgstr "" + +msgid "Back" +msgstr "خلÙ" + +msgid "Background" +msgstr "خلÙيه" + +#, fuzzy +msgid "Background color" +msgstr "لون الخلÙيه" + +msgid "Background delete option" +msgstr "" + +msgid "Background delete speed" +msgstr "" + +#, fuzzy +msgid "Backup completed." +msgstr "Ùشل عمل نسخه إحتياطيه " + +msgid "Backup failed." +msgstr "Ùشل عمل نسخه إحتياطيه " + +msgid "Backup is running..." +msgstr "جارى عمل نسخه إحتياطيه ........" + +msgid "Backup system settings" +msgstr "عمل نسخه إحتياطيه لأعدادات النظام" + +msgid "Band" +msgstr "نطاق" + +msgid "Bandwidth" +msgstr "عرض النطاق" + +msgid "Basque" +msgstr "" + +# +msgid "Begin time" +msgstr "وقت البدأ" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +msgid "Behavior of 0 key in PiP-mode" +msgstr "سلوك الذر 0 ÙÙ‰ وضعية صوره داخل صوره" + +# +msgid "Behavior when a movie is started" +msgstr "التصر٠عندما يبدأ الÙيلم" + +# +msgid "Behavior when a movie is stopped" +msgstr "التصر٠عند إيقا٠الÙيلم" + +# +msgid "Behavior when a movie reaches the end" +msgstr "التصر٠عندما يصل الÙيلم للنهايه" + +msgid "Big PiP" +msgstr "" + +# +msgid "Bitrate:" +msgstr "" + +msgid "Black screen" +msgstr "" + +msgid "Black screen till locked" +msgstr "" + +# +msgid "Block noise reduction" +msgstr "منع الحد من الضوضاء" + +# +msgid "Blue boost" +msgstr "الدعم الازرق" + +msgid "Bookmarks" +msgstr "الاشارات المرجعيه" + +# +msgid "Brightness" +msgstr "الإضاءه" + +msgid "Bulgarian" +msgstr "" + +# +msgid "Burn DVD" +msgstr "حرق دى ÙÙ‰ دى" + +# +#, fuzzy, python-format +msgid "Burn audio track (%s)" +msgstr "مسارات الصوت" + +# +msgid "Burn existing image to DVD" +msgstr "حرق الصوره الحاليه الى دى ÙÙ‰ دى" + +# +msgid "Burn to DVD" +msgstr "حرق الى دى ÙÙ‰ دى" + +# +msgid "Bus: " +msgstr "الناقل" + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "" + +msgid "C" +msgstr "سى" + +msgid "C-Band" +msgstr "سي باند" + +msgid "CH" +msgstr "" + +# +msgid "CI assignment" +msgstr "" + +# +msgid "CVBS" +msgstr "" + +msgid "Cable" +msgstr "كابل" + +msgid "Cable Scan" +msgstr "" + +msgid "Cache thumbnails" +msgstr "" + +msgid "Calculate" +msgstr "" + +msgid "Calculate all positions" +msgstr "" + +msgid "Calculation complete" +msgstr "" + +msgid "Calibrate" +msgstr "" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "" + +# +msgid "Cancel" +msgstr "إلغاء" + +msgid "Cannot determine" +msgstr "" + +msgid "Cannot find any signal ..., aborting !" +msgstr "" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "" + +msgid "Cannot move to trash can" +msgstr "" + +# +msgid "Capacity: " +msgstr "السعه:" + +msgid "Card" +msgstr "بطاقه" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "" + +msgid "Center time-labels and remove date" +msgstr "" + +# +msgid "Change bouquets in quickzap" +msgstr "" + +# +msgid "Change pin code" +msgstr "تغيير الرقم السرى" + +#, fuzzy +msgid "Change recording (duration)" +msgstr "تغيير التسجيل (المده الزمنيه)" + +#, fuzzy +msgid "Change recording (endtime)" +msgstr "تغيير التسجيل (وقت الانتهاء)" + +msgid "Change repeat and delay settings?" +msgstr "" + +msgid "Change service PIN" +msgstr "" + +msgid "Change service PINs" +msgstr "" + +msgid "Change setup PIN" +msgstr "" + +# +msgid "Change step size" +msgstr "تغيير مقاس الخطوه" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "" + +# +msgid "Channel" +msgstr "قناه" + +#, fuzzy +msgid "Channel list type" +msgstr "قائمة لائحة القنوات" + +# +msgid "Channel not in services list" +msgstr "قناه غير موجوده ÙÙ‰ قائمة الخدمات" + +# +#, fuzzy +msgid "Channel selection" +msgstr "إختيار القناه" + +# +msgid "Channel:" +msgstr "قناه:" + +msgid "Channellist menu" +msgstr "قائمة لائحة القنوات" + +msgid "Chap." +msgstr "Ùصل" + +msgid "Chapter" +msgstr "Ùصل" + +msgid "Chapter:" +msgstr "Ùصل:" + +msgid "Check" +msgstr "Ùحص" + +msgid "Check the internet connection" +msgstr "" + +msgid "Check the internet connection again" +msgstr "" + +#, fuzzy +msgid "Checking filesystem..." +msgstr "Ùحص ملÙات النظام...." + +msgid "Checking the internet connection" +msgstr "" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" + +msgid "Children/Youth" +msgstr "" + +msgid "Choose which tuner to configure." +msgstr "" + +msgid "Circular left" +msgstr "يسار دائرى" + +msgid "Circular right" +msgstr "يمين دائرى" + +msgid "Cleanup" +msgstr "تنظيÙ" + +msgid "Clear" +msgstr "" + +msgid "Clear before scan" +msgstr "مسح قبل البحث" + +msgid "Clear fixed" +msgstr "" + +# +msgid "Clear log" +msgstr "مسح السجل" + +#, fuzzy +msgid "Clear playlist" +msgstr "مسح قائمة العرض" + +msgid "Close" +msgstr "أغلاق" + +msgid "Close PiP on exit" +msgstr "" + +msgid "Close title selection" +msgstr "إغلاق إختيار العنوان" + +msgid "Code rate HP" +msgstr "" + +msgid "Code rate LP" +msgstr "" + +msgid "Coderate HP" +msgstr "" + +msgid "Coderate LP" +msgstr "" + +msgid "Collection name" +msgstr "اسم المجموعه" + +msgid "Collection settings" +msgstr "إعدادات المجموعه" + +#, fuzzy +msgid "Color format" +msgstr "نسق الالـوان" + +msgid "Command execution..." +msgstr "تنÙيذ الأمر..." + +msgid "Command order" +msgstr "ترتيب الأوامر" + +# +msgid "Common Interface" +msgstr "وحده النÙاذ المشروط" + +#, fuzzy +msgid "Common Interface assignment" +msgstr "تحديد وحدة النÙاذ المشروط" + +msgid "Communication" +msgstr "اتصال" + +#, fuzzy +msgid "Compact flash" +msgstr "كومباكت Ùلاش" + +msgid "Complete" +msgstr "مكتمل" + +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "مركب (يسمح بمزج مسارات صوت ومظاهر)" + +msgid "Composition of the recording filenames" +msgstr "" + +#, fuzzy +msgid "Configuration mode" +msgstr "نسق التكوين" + +#, fuzzy, python-format +msgid "Configuration mode: %s" +msgstr "نسق التكوين" + +#, fuzzy +msgid "Configuration..." +msgstr "تكوين الشبكه" + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "" + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "" + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "" + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "" + +msgid "Configure how recording filenames are constructed." +msgstr "" + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +msgid "Configure interface" +msgstr "تكوين الواجهه" + +msgid "Configure nameservers" +msgstr "تكوين اسم الخادم" + +msgid "Configure on which devices the background delete option should be used." +msgstr "" + +# +#, fuzzy +msgid "Configure remote control type" +msgstr "نوع التحكم الابوى" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "" + +#, fuzzy +msgid "Configure the IP address." +msgstr "تكوين الواجهه" + +msgid "Configure the aspect ratio of the screen." +msgstr "" + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +# +#, fuzzy +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "التصر٠عند إيقا٠الÙيلم" + +# +#, fuzzy +msgid "Configure the behavior when movie playback is started." +msgstr "التصر٠عندما يبدأ الÙيلم" + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "" + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "" + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "" + +msgid "Configure the brightness level of the front panel display." +msgstr "" + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "" + +msgid "Configure the color of the teletext subtitles." +msgstr "" + +msgid "Configure the contrast level of the front panel display." +msgstr "" + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "" + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "" + +msgid "Configure the first audio language (highest priority)." +msgstr "" + +msgid "Configure the first subtitle language (highest priority)." +msgstr "" + +msgid "Configure the font size of the subtitles." +msgstr "" + +msgid "Configure the fourth audio language." +msgstr "" + +#, fuzzy +msgid "Configure the fourth subtitle language." +msgstr "الانتقال الى لغة العناوين الÙرعيه التاليه" + +msgid "Configure the function of a long press on the power button." +msgstr "" + +msgid "Configure the function of a short press on the power button." +msgstr "" + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "" + +#, fuzzy +msgid "Configure the gateway." +msgstr "تكوين الواجهه" + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "" + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "" + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "" + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "" + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "" + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "" + +msgid "Configure the latitude of your location." +msgstr "" + +msgid "Configure the longitude of your location." +msgstr "" + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "" + +#, fuzzy +msgid "Configure the nameserver (DNS)." +msgstr "تكوين اسم الخادم" + +#, fuzzy +msgid "Configure the netmask." +msgstr "تكوين الواجهه" + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "" + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "" + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "" + +msgid "Configure the possible fast forward speeds." +msgstr "" + +msgid "Configure the possible rewind speeds." +msgstr "" + +msgid "Configure the primary EPG language." +msgstr "" + +msgid "Configure the refresh rate of the screen." +msgstr "" + +msgid "Configure the screen resolution in PC output mode." +msgstr "" + +msgid "Configure the second audio language." +msgstr "" + +#, fuzzy +msgid "Configure the second subtitle language." +msgstr "الانتقال الى لغة العناوين الÙرعيه التاليه" + +msgid "Configure the secondary EPG language." +msgstr "" + +msgid "Configure the sharpness of the video scaling." +msgstr "" + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "" + +#, fuzzy +msgid "Configure the slow motion speeds." +msgstr "سرعات العرض البطئ" + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "" + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "" + +msgid "Configure the third audio language." +msgstr "" + +#, fuzzy +msgid "Configure the third subtitle language." +msgstr "الانتقال الى لغة العناوين الÙرعيه التاليه" + +msgid "Configure the transparency of the OSD." +msgstr "" + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "" + +#, fuzzy +msgid "Configure the tuner mode." +msgstr "نسق التكوين" + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "" + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "" + +msgid "Configure the video output mode (or resolution)." +msgstr "" + +msgid "Configure the way in which the receiver changes channels." +msgstr "" + +msgid "Configure where completed timers show up in the timer list." +msgstr "" + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "" + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "" + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "" + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "" + +msgid "Configure which color format should be used on the SCART output." +msgstr "" + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "" + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "" + +msgid "Configure your internal LAN" +msgstr "تكوين شبكتك الداخليه" + +msgid "Configure your network again" +msgstr "تكوين الشبكه مره ثانيه" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "" + +msgid "Configure your wireless LAN again" +msgstr "تكوين شبكتك اللاسلكيه" + +msgid "Configures which video output connector will be used." +msgstr "" + +msgid "Configuring" +msgstr "تكوين" + +msgid "Conflicting timer" +msgstr "مؤقت متعارض" + +msgid "Connect" +msgstr "يتصل" + +#, fuzzy +msgid "Connect to a wireless network" +msgstr "متصل بشبكه لاسلكيه" + +msgid "Connected satellites" +msgstr "" + +msgid "Connected to" +msgstr "متصل بـ" + +msgid "Connected!" +msgstr "تم الاتصال !" + +msgid "Constellation" +msgstr "كوكبه" + +msgid "Content does not fit on DVD!" +msgstr "المحتوى لا يناسب دى ÙÙ‰ دى !" + +msgid "Continue" +msgstr "" + +msgid "Continue in background" +msgstr "استمر ÙÙ‰ الخلÙيه" + +#, fuzzy +msgid "Continue playback" +msgstr "استمرار العرض" + +msgid "Continue playing" +msgstr "استمرار العرض" + +msgid "Continues play (loop)" +msgstr "" + +msgid "Contrast" +msgstr "تباين" + +msgid "Convert ext3 filesystem to ext4" +msgstr "" + +msgid "Convert ext3 to ext4" +msgstr "" + +msgid "Converting ext3 to ext4..." +msgstr "" + +msgid "Copy" +msgstr "" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "" + +msgid "Could not find installed channel list." +msgstr "" + +# +#, fuzzy +msgid "Could not load medium! No disc inserted?" +msgstr "تعذر تحميل الوسيط ! هل لا يوجد قرص" + +msgid "Could not open Picture in Picture" +msgstr "لا يمكن Ùتح صوره داخل صوره" + +# +#, fuzzy, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "تعذر التسجيل بسبب مؤقت متعارض%s" + +# +#, fuzzy, python-format +msgid "Could not record due to invalid service %s" +msgstr "تعذر التسجيل بسبب مؤقت متعارض%s" + +# +msgid "Create DVD-ISO" +msgstr "تكوين دى ÙÙ‰ دى إيزو" + +msgid "Create more detailed crash log" +msgstr "" + +#, python-format +msgid "Creating directory %s failed." +msgstr "Ùشل إنشاء دليل %s" + +#, fuzzy +msgid "Creating filesystem" +msgstr "Ùحص ملÙات النظام...." + +msgid "Creating partition" +msgstr "" + +# +msgid "Croatian" +msgstr "كرواتى" + +msgid "Current CEC address" +msgstr "" + +msgid "Current device: " +msgstr "" + +msgid "Current event EPG" +msgstr "" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +msgid "Current settings:" +msgstr "الاعدادات الحاليه:" + +#, fuzzy +msgid "Current transponder" +msgstr "التردد الحالى" + +msgid "Current value: " +msgstr "القيمه الحاليه:" + +msgid "Current version:" +msgstr "الاصدار الحالى:" + +msgid "Currently installed image" +msgstr "" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +msgid "Custom skip time for '1'/'3' buttons" +msgstr "" + +msgid "Custom skip time for '4'/'6' buttons" +msgstr "" + +msgid "Custom skip time for '7'/'9' buttons" +msgstr "" + +msgid "Customize" +msgstr "تخصيص" + +msgid "Customize channel list cursor behavior" +msgstr "" + +msgid "Cut" +msgstr "قطع" + +msgid "Cutlist editor..." +msgstr "محرر قائمة القطع..." + +msgid "Czech" +msgstr "التشيك" + +msgid "D" +msgstr "د" + +msgid "DHCP" +msgstr "DHCP" + +#, fuzzy +msgid "DMM advanced" +msgstr "متقدم" + +msgid "DMM normal" +msgstr "" + +msgid "DUAL LAYER DVD" +msgstr "دى ÙÙ‰ بى ثنائى الطبقه" + +msgid "DVB subtitle black transparency" +msgstr "" + +msgid "DVB-C" +msgstr "" + +msgid "DVB-C ANNEX C" +msgstr "" + +msgid "DVB-S" +msgstr "DVB-S" + +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "" + +msgid "DVB-T2" +msgstr "" + +msgid "DVD data format" +msgstr "" + +#, fuzzy +msgid "DVD file browser" +msgstr "متصÙØ­ ملÙات دى ÙÙ‰ دى" + +# +msgid "DVD media toolbox" +msgstr "صندوق أدوات وسيط دى ÙÙ‰ دى" + +#, fuzzy +msgid "DVD player" +msgstr "مشغل دى ÙÙ‰ دى" + +#, fuzzy +msgid "DVD titlelist" +msgstr "قائمة عناوين دى ÙÙ‰ دى" + +msgid "Danish" +msgstr "دنماركى" + +msgid "Date" +msgstr "تاريخ" + +msgid "Date/time input" +msgstr "" + +#, fuzzy +msgid "Deep standby" +msgstr "وضع الاستعداد العميق" + +msgid "Default" +msgstr "الاÙتراضى" + +msgid "Default movie location" +msgstr "المكان الاÙتراضى للÙيلم" + +#, fuzzy +msgid "Default settings" +msgstr "الاعدادات الاÙتراضيه" + +msgid "Delay before key repeat starts:" +msgstr "" + +msgid "Delay for external subtitles" +msgstr "" + +# +msgid "Delete" +msgstr "أمسح" + +msgid "Delete entry" +msgstr "مسح البند" + +# +msgid "Delete failed!" +msgstr "Ùشل المسح" + +#, fuzzy +msgid "Delete file" +msgstr "حذ٠الملÙ" + +#, fuzzy +msgid "Delete playlist entry" +msgstr "مسح مدخل قائمة العرض" + +# +#, fuzzy +msgid "Delete saved playlist" +msgstr "مسح قائمة العرض المحÙوظه" + +msgid "Delete timer" +msgstr "" + +# +#, fuzzy +msgid "Delete..." +msgstr "مسح ..." + +msgid "Deleted" +msgstr "" + +msgid "Deleted items" +msgstr "" + +msgid "Depth" +msgstr "" + +msgid "Descramble http streams" +msgstr "" + +# +msgid "Description" +msgstr "الوصـÙ" + +msgid "Deselect" +msgstr "إلغاء الاختيار" + +msgid "Details for plugin: " +msgstr "" + +msgid "Detected HDD:" +msgstr "يوجد قرص صلب:" + +# +msgid "Detected NIMs:" +msgstr "موجود موالÙ:" + +msgid "Devicename:" +msgstr "" + +msgid "Devide" +msgstr "" + +msgid "DiSEqC" +msgstr "دايزك" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +# +msgid "DiSEqC A/B" +msgstr "دايزك Ø£/ب" + +# +msgid "DiSEqC A/B/C/D" +msgstr "دايزك Ø£/ب/ج/د" + +# +msgid "DiSEqC mode" +msgstr "وضعيـه الدايزك" + +#, fuzzy, python-format +msgid "DiSEqC port %s: %s" +msgstr "تكرار الدايزك" + +#, fuzzy +msgid "DiSEqC-tester settings" +msgstr "إختبار إعدادات الدايزك" + +msgid "Dialing:" +msgstr "جاري الاتصال:" + +msgid "Digital contour removal" +msgstr "حذ٠الكÙا٠الرقمى" + +msgid "Direct playback of linked titles without menu" +msgstr "عرض مباشر لعناوين مربوطه بدون قائمه" + +msgid "Directory" +msgstr "" + +#, fuzzy, python-format +msgid "Directory %s does not exist." +msgstr "الدليل %s غير موجود" + +#, python-format +msgid "Directory %s nonexistent." +msgstr "" + +# +msgid "Directory browser" +msgstr "متصÙØ­ الدليل" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "" + +#, fuzzy, python-format +msgid "Directory contains %s and %s." +msgstr "الدليل %s غير موجود" + +msgid "Disable" +msgstr "تعطيل" + +# +msgid "Disable Picture in Picture" +msgstr "تعطيل صوره داخل صوره" + +msgid "Disable background scanning" +msgstr "" + +msgid "Disable timer" +msgstr "" + +# +msgid "Disabled" +msgstr "تم التعطيل" + +# +msgid "Disconnect" +msgstr "قطع الاتصال" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "" + +msgid "Display 16:9 content as" +msgstr "عرض محتويات 16:9 كـ" + +msgid "Display 4:3 content as" +msgstr "عرض محتويات 4:3 كـ" + +# +msgid "Display >16:9 content as" +msgstr "" + +#, fuzzy +msgid "Display and userinterface" +msgstr "عرض Ùˆ واجهه مستخدم" + +msgid "Display message before playing next movie" +msgstr "" + +#, fuzzy +msgid "Display setup" +msgstr "إعدادات العرض" + +#, fuzzy +msgid "Do not change" +msgstr "لا تغيير" + +#, fuzzy +msgid "Do not record" +msgstr " لا تسجل" + +#, fuzzy +msgid "Do nothing" +msgstr " لا تÙعل شيئ" + +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"هل تريد Ùعلا Ùحص ملÙات النظام؟\n" +"قد يستغرق ذلك بعض الوقت !" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" + +#, python-format +msgid "Do you really want to delete %s?" +msgstr "هل تريد Ùعلا مسح %s ØŸ" + +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"هل تريد Ùعلا تحميل \n" +"البلج إن \"%s\" ØŸ" + +msgid "Do you really want to exit?" +msgstr "هل تريد Ùعلا الخروج ØŸ" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" + +#, fuzzy, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"هل تريد Ùعلا تحميل \n" +"البلج إن \"%s\" ØŸ" + +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "هل تريد Ùعلا حذ٠الدليل %s من القرص؟" + +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "هل تريد Ùعلا حذ٠مرجعية %s ØŸ" + +msgid "Do you want this?" +msgstr "" + +# +msgid "Do you want to burn this collection to DVD medium?" +msgstr "هل تريد حرق هذه المجموعه ÙÙ‰ وسيط دى ÙÙ‰ دى ØŸ" + +# +msgid "Do you want to do a service scan?" +msgstr "هل تريد عمل بحث" + +msgid "Do you want to do another manual service scan?" +msgstr "هل تريد عمل بحث يدوى جديد ØŸ" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "" + +#, fuzzy +msgid "Do you want to install a channel list?" +msgstr "هل تريد Ùعلا تثبيت الرزمه:\n" + +msgid "Do you want to install the package:\n" +msgstr "هل تريد Ùعلا تثبيت الرزمه:\n" + +# +msgid "Do you want to play DVD in drive?" +msgstr "هل تريد تشغيل الدى ÙÙ‰ دى الموجود ÙÙ‰ السواقه" + +# +msgid "Do you want to preview this DVD before burning?" +msgstr "هل تريد معاينة هذا الدى ÙÙ‰ دى قبل الحرق؟" + +msgid "Do you want to reboot your receiver?" +msgstr "" + +msgid "Do you want to remove the package:\n" +msgstr "هل تريد Ùعلا حذ٠الرزمه:\n" + +msgid "Do you want to restore your settings?" +msgstr "هل تريد إستعادة الاعدادات ØŸ" + +# +msgid "Do you want to resume this playback?" +msgstr "هل تريد إستئنا٠هذا العرض؟" + +#, fuzzy, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "هل تريد إستعادة الاعدادات ØŸ" + +msgid "Do you want to update your receiver?" +msgstr "" + +msgid "Do you want to upgrade the package:\n" +msgstr "هل تريد ترقية الحزمه \n" + +msgid "Don't stop current event but disable coming events" +msgstr "لا توق٠الحدث الحالى لكن قم بتعطيل الاحداث القادمه" + +#, fuzzy, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "تم - تثبيت ØŒ تحديث أو حذ٠%d الرزم والاخطاء%d " +msgstr[1] "تم - تثبيت ØŒ تحديث أو حذ٠%d الرزم والاخطاء%d " +msgstr[2] "تم - تثبيت ØŒ تحديث أو حذ٠%d الرزم والاخطاء%d " +msgstr[3] "تم - تثبيت ØŒ تحديث أو حذ٠%d الرزم والاخطاء%d " +msgstr[4] "تم - تثبيت ØŒ تحديث أو حذ٠%d الرزم والاخطاء%d " +msgstr[5] "تم - تثبيت ØŒ تحديث أو حذ٠%d الرزم والاخطاء%d " + +msgid "Download" +msgstr "تحميل" + +#, python-format +msgid "Download %s from server" +msgstr "" + +msgid "Download .NFI-files for USB-flasher" +msgstr "" + +#, fuzzy +msgid "Download plugins" +msgstr "تحميل بلج إنز" + +msgid "Downloadable new plugins" +msgstr "بلج أنز جديده متاحه للتحميل" + +msgid "Downloadable plugins" +msgstr "بلج إنز متاحه للتحميل" + +msgid "Downloading" +msgstr "جارى التحميل" + +msgid "Downloading plugin information. Please wait..." +msgstr "جارى تحميل معلومات عن البلج إن. رجاء الانتظار.." + +# +msgid "Dutch" +msgstr "هولندى" + +msgid "Dynamic contrast" +msgstr "تباين ديناميكى" + +msgid "E" +msgstr "" + +msgid "EPG" +msgstr "" + +msgid "EPG language selection 1" +msgstr "" + +msgid "EPG language selection 2" +msgstr "" + +# +#, fuzzy +msgid "EPG selection" +msgstr "إختيار EPG" + +msgid "EPG settings" +msgstr "" + +# +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "خطأ - Ùشل البحث (%s)!" + +# +msgid "East" +msgstr "شرق" + +msgid "East limit set" +msgstr "" + +msgid "Edit" +msgstr "تحرير" + +# +msgid "Edit DNS" +msgstr "" + +msgid "Edit bouquets list" +msgstr "تحرير قائمة الباقات" + +msgid "Edit chapters of current title" +msgstr "تحرير الÙصول والعنوان الحالى" + +msgid "Edit services list" +msgstr "تحرير قائمة القنوات" + +# +msgid "Edit settings" +msgstr "تحرير الاعدادات" + +#, fuzzy +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "الخروج من تكوين أسم الخادم" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "" + +msgid "Edit timer" +msgstr "" + +msgid "Edit title" +msgstr "تحرير العنوان" + +# +msgid "Edit upgrade source url." +msgstr "تحرير عنوان مصدر الترقيه" + +msgid "Education/Science/..." +msgstr "" + +msgid "Electronic Program Guide" +msgstr "دليل البرنامج الالكترونى" + +# +msgid "Enable" +msgstr "تÙعيل" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +msgid "Enable 5V for active antenna" +msgstr "تÙعيل 5٠للهوائى النشط" + +msgid "Enable EIT EPG" +msgstr "" + +msgid "Enable MHW EPG" +msgstr "" + +msgid "Enable Netmed EPG" +msgstr "" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +# +#, fuzzy +msgid "Enable bouquet selection in multi-EPG" +msgstr "تÙعيل تحرير الباقه" + +msgid "Enable freesat EPG" +msgstr "" + +# +msgid "Enable multiple bouquets" +msgstr "تÙعيل باقات متعدده" + +# +msgid "Enable parental control" +msgstr "تÙعيل التحكم الابوى" + +msgid "Enable teletext caching" +msgstr "" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +# +msgid "Enabled" +msgstr "تم التÙعيل" + +# +msgid "Encrypted: " +msgstr "مشÙر" + +msgid "Encryption" +msgstr "التشÙير" + +#, fuzzy +msgid "Encryption key" +msgstr "Ù…Ùتاح التشقير" + +#, fuzzy +msgid "Encryption key type" +msgstr "نوع Ù…Ùتاح التشÙير" + +msgid "Encryption:" +msgstr "التشÙير:" + +# +msgid "End time" +msgstr "وقت النهايه" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +# +msgid "English" +msgstr "إنجليزى" + +msgid "Enigma2 skin selector" +msgstr "" + +msgid "Enter main menu..." +msgstr "دخول القائمه الرئيسيه" + +msgid "Enter pin code" +msgstr "أدخل الرقم السرى:" + +msgid "Enter the service pin" +msgstr "أدخل الرقم السرى للخدمه" + +msgid "Equal to" +msgstr "" + +msgid "Error" +msgstr "خطأ" + +msgid "Error code" +msgstr "" + +msgid "Error executing plugin" +msgstr "خطأ ÙÙ‰ تنÙيذ البلج إن" + +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"خطأ: %s\n" +"إعادة المحاوله ØŸ" + +msgid "Estonian" +msgstr "أستونى" + +msgid "Ethernet network interface" +msgstr "" + +msgid "Event font size (relative to skin size)" +msgstr "" + +# +#, fuzzy +msgid "Event view" +msgstr "مشاهده الحدث" + +# +#, fuzzy +msgid "Event view menu" +msgstr "مشاهده الحدث" + +msgid "Everywhere" +msgstr "" + +# +msgid "Exceeds dual layer medium!" +msgstr "تتعدى وسيط طبقه مزدوجه !" + +msgid "Execution finished!!" +msgstr "إنهاء التنÙيذ !!" + +#, fuzzy +msgid "Execution progress:" +msgstr "درجة تطور التنÙيذ:" + +msgid "Exif" +msgstr "كسيÙ" + +msgid "Exit" +msgstr "خروج" + +msgid "Exit EPG" +msgstr "" + +msgid "Exit editor" +msgstr "خروج من المحرر" + +msgid "Exit input device selection." +msgstr "" + +msgid "Exit media player?" +msgstr "" + +#, fuzzy +msgid "Exit mediaplayer" +msgstr "الخروج من مشغل الوسائط" + +#, fuzzy +msgid "Exit movie list" +msgstr "الخروج من قائمة الاÙلام" + +#, fuzzy +msgid "Exit movie player?" +msgstr "الخروج من مشغل الوسائط" + +#, fuzzy +msgid "Exit nameserver configuration" +msgstr "الخروج من تكوين أسم الخادم" + +#, fuzzy +msgid "Exit network interface list" +msgstr "الخروج من قائمة واجهة الشبكه" + +msgid "Exit network wizard" +msgstr "خروج من ناÙذة إعدادات الشبكه" + +msgid "Exit the wizard" +msgstr "خروج من ناÙذة الاعدادات" + +msgid "Expert" +msgstr "خبير" + +msgid "Extend sleeptimer 15 minutes" +msgstr "" + +msgid "Extended Software" +msgstr "برنامج تشغيلى متقدم" + +msgid "Extended Software Plugin" +msgstr "بلج إن البرنامج التشغيلى الممتد" + +#, fuzzy +msgid "Extended network setup plugin..." +msgstr "بلج إن إعدادات الشبكه المتقدمه" + +#, fuzzy +msgid "Extended setup..." +msgstr "إعدادات متقدمه" + +msgid "Extensions" +msgstr "إضاÙات" + +msgid "Extensions management" +msgstr "التحكم ÙÙ‰ الاضاÙات" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "" + +msgid "Extra motor options" +msgstr "" + +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "" + +msgid "Factory reset" +msgstr "العوده الى إعدادات المصنع" + +msgid "Failed" +msgstr "Ùشل" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "" + +# +#, python-format +msgid "Fan %d" +msgstr "مروحه %d" + +# +#, python-format +msgid "Fan %d PWM" +msgstr "" + +# +#, fuzzy, python-format +msgid "Fan %d voltage" +msgstr "مروحه %d Ùولتيه" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +# +msgid "Fast" +msgstr "سريع" + +# +msgid "Fast DiSEqC" +msgstr "دايزك سريع" + +msgid "Fast Scan" +msgstr "" + +# +msgid "Fast epoch" +msgstr "" + +#, fuzzy +msgid "Fast forward speeds" +msgstr "سرعات التسريع للامام" + +# +msgid "Favourites" +msgstr "المÙضله" + +msgid "File appears to be busy.\n" +msgstr "" + +#, fuzzy +msgid "Filesystem check" +msgstr "Ùحص نظام الملÙات" + +msgid "Final position at" +msgstr "" + +msgid "Final position at index" +msgstr "" + +msgid "Fine movement" +msgstr "" + +# +msgid "Finetune" +msgstr "الضبط الدقيق" + +msgid "Finished" +msgstr "تم الانتهاء" + +msgid "Finished configuring your network" +msgstr "تم الانتهاء من تكوين شبكتك" + +msgid "Finished restarting your network" +msgstr "تم النتهاء من إعادة تشغيل الشبكه" + +msgid "Finnish" +msgstr "إنتهاء" + +msgid "Fixed" +msgstr "" + +msgid "Flash" +msgstr "شحن" + +msgid "Flashing failed" +msgstr "Ùشل الشحن" + +msgid "Following tasks will be done after you press OK!" +msgstr "سيتم تنÙيذ الاعمال الاتيه بعد أن تضغط على مواÙÙ‚ !" + +msgid "Format" +msgstr "نسق" + +msgid "Forward volume keys" +msgstr "" + +# +msgid "Frame size in full view" +msgstr "" + +# +msgid "French" +msgstr "Ùرنسى" + +# +msgid "Frequency" +msgstr "التردد" + +msgid "Frequency bands" +msgstr "نطاقات التردد" + +# +msgid "Frequency scan step size(khz)" +msgstr "" + +# +msgid "Frequency steps" +msgstr "خطوات التردد" + +msgid "Frequency:" +msgstr "" + +# +msgid "Fri" +msgstr "الجمعه" + +# +msgid "Friday" +msgstr "الجمعه" + +msgid "From :" +msgstr "" + +# +#, python-format +msgid "Frontprocessor version: %d" +msgstr "" + +msgid "Full transparency" +msgstr "" + +msgid "Fulview resulution" +msgstr "" + +msgid "Function of OK button" +msgstr "" + +msgid "Further Options" +msgstr "" + +# +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"يجب إعادة تشغيل الاينجما2 لتطبيق الجلد \n" +"هل تريد إعادة تشغيل الاينجما2 الان ØŸ" + +# +msgid "Gateway" +msgstr "" + +msgid "General AC3 delay" +msgstr "" + +msgid "General PCM delay" +msgstr "" + +# +msgid "Genre" +msgstr "" + +# +msgid "German" +msgstr "المانـى" + +msgid "Get latest experimental image" +msgstr "" + +msgid "Get latest release image" +msgstr "" + +# +msgid "Getting plugin information. Please wait..." +msgstr "جارى الحصول على معلومات عن البلج إن. رجاء الانتظار..." + +msgid "Go down the list" +msgstr "" + +msgid "Go to first movie or last item" +msgstr "" + +msgid "Go to first movie or top of list" +msgstr "" + +#, fuzzy +msgid "Go to first service" +msgstr "الانتقال لاعلى الى البند الاول" + +#, fuzzy +msgid "Go to last service" +msgstr "إحمى القنوات" + +#, fuzzy +msgid "Go to next event" +msgstr "الانتقال لاسÙÙ„ الى البند التالى" + +# +#, fuzzy +msgid "Go to next page of service" +msgstr "الانتقال الى الخدمه الÙرعيه التاليه" + +#, fuzzy +msgid "Go to previous event" +msgstr "الانتقال لاعلى الى البند السابق" + +#, fuzzy +msgid "Go to previous page of service" +msgstr "العوده الى الخدمه القناه السابقه" + +msgid "Go up the list" +msgstr "" + +msgid "Goto" +msgstr "" + +# +msgid "Goto 0" +msgstr "الذهاب الى 0" + +msgid "Goto :" +msgstr "" + +msgid "Goto X" +msgstr "" + +msgid "Goto index position" +msgstr "" + +msgid "Goto next day of events" +msgstr "" + +msgid "Goto next page of events" +msgstr "" + +msgid "Goto position" +msgstr "الذهل للموضع" + +msgid "Goto previous day of events" +msgstr "" + +msgid "Goto previous page of events" +msgstr "" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "" + +msgid "GraphMultiEpg Settings" +msgstr "" + +# +msgid "Graphical Multi EPG" +msgstr "دليل برامج بيانى متعدد" + +msgid "Greek" +msgstr "اليونان" + +msgid "Green boost" +msgstr "دعم أخضر" + +msgid "Guard interval" +msgstr "" + +msgid "HD list" +msgstr "" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "" + +msgid "Handle wakeup from TV" +msgstr "" + +# +#, fuzzy +msgid "Hard disk" +msgstr "قرص صلب" + +#, fuzzy +msgid "Hard disk setup" +msgstr "ضبط القرص الصلب" + +#, fuzzy +msgid "Hard disk standby after" +msgstr "القرص الصلب ÙÙ‰ وضع الاستعداد بعد" + +# +msgid "Harddisk" +msgstr "قرص صلب" + +msgid "Hardware: " +msgstr "" + +msgid "Hebrew" +msgstr "" + +msgid "Helps setting up your dish" +msgstr "" + +msgid "Hidden network" +msgstr "" + +msgid "Hide CI messages" +msgstr "" + +msgid "Hide channel list in radio mode" +msgstr "" + +msgid "Hide known extensions" +msgstr "" + +msgid "Hide number markers" +msgstr "" + +#, fuzzy +msgid "Hide player" +msgstr "إخÙاء المشغل" + +msgid "Hide zap errors" +msgstr "" + +msgid "Hierarchy info" +msgstr "" + +#, fuzzy +msgid "Hierarchy information" +msgstr "معلومات التسلسل الهرمى" + +msgid "High bitrate support" +msgstr "دعم معدل البث العالى" + +msgid "Hold screen" +msgstr "" + +msgid "Hold till locked" +msgstr "" + +msgid "Home" +msgstr "" + +msgid "Horizontal" +msgstr "Ø£Ùقـى" + +msgid "Horizontal turning speed" +msgstr "" + +msgid "How many minutes do you want to record?" +msgstr "كم دقيقه تريد أن تسجل ØŸ" + +msgid "Hue" +msgstr "درجة لون" + +# +msgid "Hungarian" +msgstr "مجرى" + +# +#, fuzzy +msgid "IP address" +msgstr "عنوان IP" + +msgid "ISO file is too large for this filesystem!" +msgstr "مل٠الايزو كبير جدا على ملÙات النظام !" + +msgid "ISO path" +msgstr "مسار أيزو" + +msgid "Icons" +msgstr "" + +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"إذا كنت تشاهد هذا، Ùهناك شيئ خطا ÙÙ‰ \n" +"وصلة السكارت . أضغط مواÙÙ‚ للعوده" + +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"إذا كان التليÙزيون به خاصية الاضاءه أو تعزيز التباين ØŒ قم بتعطيلها . إذا كان هناك شيئ أسمه \"ديناميكى\" قم بضبطه الى الوضع القياسى . أضبط الاضاءه الخلÙيه الى قيمه تناسب ذوقك . أخÙض التباين ÙÙ‰ التليÙزيون الى أقل مستوى ممكن \n" +"بعد ذلك أخÙض مستوى الاضاء الى أقل مستوى ممكن ØŒ لكن ـاكد من وجود ظللين رماديين يمكن بقائهما ÙÙ‰ حالة تمييز \n" +"لا تهتم بظلال الاضاءه الان . سيتم عمل الاعادادت لها ÙÙ‰ الخطوه القادمه \n" +"إذا كنت تتقبل النتيجه ØŒ أضغط مواÙÙ‚" + +msgid "Image: " +msgstr "" + +#, fuzzy +msgid "Immediate shutdown" +msgstr "إغلاق Ùورى" + +# +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "لكى تسجل مؤقت ØŒ يجب تحويل التليÙزيون الى القناه التى ستسجل منها ! \n" + +# +#, fuzzy +msgid "In progress" +msgstr "جارى التقدم" + +msgid "Inactivity Sleeptimer" +msgstr "" + +msgid "Include AIT in http streams" +msgstr "" + +msgid "Include ECM in http streams" +msgstr "" + +msgid "Include EIT in http streams" +msgstr "" + +msgid "Incorrect type service for PiP!" +msgstr "" + +# +msgid "Increased voltage" +msgstr "Ùولت زائد" + +msgid "Index" +msgstr "Ùهرس" + +msgid "Index allocated:" +msgstr "" + +# +msgid "Info" +msgstr "معلومات" + +# +#, fuzzy +msgid "Info bar" +msgstr "شريط المعلومات" + +#, fuzzy +msgid "Info bar timeout" +msgstr "وقت ظهور شريط المعلومات" + +msgid "Infobar frontend data source" +msgstr "" + +# +msgid "Information" +msgstr "معلومات" + +# +msgid "Init" +msgstr "" + +#, fuzzy +msgid "Initial fast forward speed" +msgstr "سرعات التسريع للامام" + +# +msgid "Initial location in new timers" +msgstr "" + +msgid "Initial lock ratio" +msgstr "" + +#, fuzzy +msgid "Initial rewind speed" +msgstr "سرعة العوده للخلÙ" + +msgid "Initial signal quality" +msgstr "" + +msgid "Initial signal quality:" +msgstr "" + +msgid "Initialization" +msgstr "تهيئه" + +# +msgid "Initialize" +msgstr "تÙعيل البدأ" + +msgid "Initializing storage device..." +msgstr "" + +msgid "Input" +msgstr "مدخل" + +msgid "Input device setup" +msgstr "" + +msgid "Input devices" +msgstr "" + +# +msgid "Install" +msgstr "تثبيت" + +# +msgid "Install a new image with a USB stick" +msgstr "" + +msgid "Install a new image with your web browser" +msgstr "تثبيت صوره جديد بواسطه متصÙØ­ الشبكه" + +#, fuzzy +msgid "Install channel list" +msgstr "القناه التاليه ÙÙ‰ التاريخ" + +msgid "Install extensions" +msgstr "" + +msgid "Install extensions." +msgstr "تثبيت إضاÙات" + +msgid "Install local extension" +msgstr "تثبيت إضاÙات محليه" + +msgid "Install picons on" +msgstr "" + +#, fuzzy +msgid "Install softcam" +msgstr "تثبيت برمجيات" + +#, fuzzy +msgid "Installation has completed." +msgstr "إنتهاء التثبيت." + +#, fuzzy +msgid "Installation or removal has completed." +msgstr "إنتهاء التثبيت أو الحذÙ" + +msgid "Installing" +msgstr "جارى التثبيت" + +#, fuzzy +msgid "Installing software..." +msgstr "تثبيت برمجيات" + +#, fuzzy +msgid "Instant recording location" +msgstr "مكان التسجيل السريع" + +#, fuzzy +msgid "Instant recording..." +msgstr "تسجيل سريع" + +msgid "Interface: " +msgstr "واجهه" + +msgid "Intermediate" +msgstr "متوسط" + +# +#, fuzzy +msgid "Internal flash" +msgstr "الÙلاش الداخلى" + +msgid "Internal hdd only" +msgstr "" + +msgid "Interval between keys when repeating:" +msgstr "" + +#, python-format +msgid "Invalid directory selected: %s" +msgstr "تم إختياردليل غير صالح %s" + +#, fuzzy +msgid "Invalid location" +msgstr "موقع غير صالح" + +msgid "Invalid transponder data" +msgstr "" + +# +msgid "Inversion" +msgstr "عكـس" + +# +msgid "Invert" +msgstr "مقلوب" + +# +msgid "Ipkg" +msgstr "" + +# +#, fuzzy +msgid "Is this setting ok?" +msgstr "هل تواÙÙ‚ على وضعية الÙيديو هذه؟" + +# +#, fuzzy +msgid "Is this video mode ok?" +msgstr "هل تواÙÙ‚ على وضعية الÙيديو هذه؟" + +msgid "Italian" +msgstr "إيطالى" + +msgid "Items per page " +msgstr "" + +msgid "Items per page for list screen" +msgstr "" + +msgid "Job overview" +msgstr "" + +msgid "Jump to beginning of list" +msgstr "" + +#, fuzzy +msgid "Jump to end of list" +msgstr "الوصول الى نهاية القائمه" + +# +#, fuzzy +msgid "Jump to next marked position" +msgstr "الوضع المخزن" + +# +#, fuzzy +msgid "Jump to previous marked position" +msgstr "عرض من العلامه السابقه أو من مدخل قائمة العرض" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +msgid "Just scale" +msgstr "" + +msgid "Keep service" +msgstr "" + +# +#, fuzzy +msgid "Kernel version: " +msgstr "إصدار جديد:" + +msgid "Keyboard" +msgstr "لوحة Ù…Ùاتيح" + +# +#, fuzzy +msgid "Keyboard map" +msgstr "خريطه لوحه المÙاتيح" + +# +#, fuzzy +msgid "Keyboard setup" +msgstr "ضبط لوحه المÙاتيح" + +# +#, fuzzy +msgid "LAN adapter" +msgstr "محول شبكه محليه" + +msgid "LAN connection" +msgstr "أتصال شبكه محليه" + +# +msgid "LNB" +msgstr "" + +# +msgid "Language" +msgstr "اللغـه " + +# +msgid "Language selection" +msgstr "إختيار اللغـه" + +# +msgid "Last config" +msgstr "التهيئه السابقه" + +# +msgid "Last speed" +msgstr "السرعه السابقه" + +msgid "Last upgrade: " +msgstr "" + +msgid "Latest Commits" +msgstr "" + +# +msgid "Latitude" +msgstr "خط العرض" + +# +msgid "Latvian" +msgstr "" + +# +#, fuzzy +msgid "Leave DVD player?" +msgstr "هل تريد مغادرة مشغل الدى ÙÙ‰ دى ØŸ" + +# +msgid "Left" +msgstr "يسار" + +msgid "Left from servicename" +msgstr "" + +msgid "Leisure hobbies" +msgstr "" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "" + +msgid "Letterbox zoom" +msgstr "" + +#, fuzzy +msgid "Limit character set for recording filenames" +msgstr "حرو٠محدوده لاسماء ملÙات التسجيل" + +# +msgid "Limit east" +msgstr "الحد الشرقى" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "" + +# +msgid "Limit west" +msgstr "الحد الغربى" + +msgid "Limits cancelled" +msgstr "" + +msgid "Limits enabled" +msgstr "" + +# +msgid "Limits off" +msgstr "" + +# +msgid "Limits on" +msgstr "" + +msgid "Link quality:" +msgstr "" + +# +msgid "Link:" +msgstr "" + +# +msgid "Linked titles with a DVD menu" +msgstr "" + +msgid "List EPG functions..." +msgstr "" + +msgid "List available networks" +msgstr "" + +msgid "List mode" +msgstr "" + +# +#, fuzzy +msgid "List of storage devices" +msgstr "قائمة أجهزة التخزين" + +msgid "List type" +msgstr "" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#, fuzzy +msgid "Listen to the radio..." +msgstr "استمع للراديو......" + +msgid "Lists reloaded!" +msgstr "" + +# +msgid "Lithuanian" +msgstr "ليتوانى" + +# +msgid "Load" +msgstr "تحميل" + +msgid "Load Length of Movies in Movielist" +msgstr "" + +# +#, fuzzy +msgid "Load length of movies in movie list" +msgstr "تحميل طول الÙيلم ÙÙ‰ قائمة الاÙلام" + +#, fuzzy +msgid "Load playlist" +msgstr "تحميل قائمة العرض" + +#, fuzzy +msgid "Local network" +msgstr "شبكه محليه" + +msgid "Location" +msgstr "مكان" + +msgid "Location for instant recordings" +msgstr "مكان التسجيلات السريعه" + +msgid "Lock ratio" +msgstr "" + +# +msgid "Lock:" +msgstr "" + +# +msgid "Log results to harddisk" +msgstr "" + +msgid "Long filenames" +msgstr "" + +# +#, fuzzy +msgid "Long key press" +msgstr "ضغط مستمر على Ù…Ùتاح" + +# +msgid "Longitude" +msgstr "خط الطول" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "" + +msgid "MMC card" +msgstr "" + +msgid "MORE" +msgstr "المزيـد" + +# +msgid "Main menu" +msgstr "القائـمه الرئيسيـه" + +msgid "Maintain old EPG data for" +msgstr "" + +# +msgid "Make this mark an 'in' point" +msgstr "" + +# +msgid "Make this mark an 'out' point" +msgstr "أجعل هذه العلامه نقطة خروج" + +# +msgid "Make this mark just a mark" +msgstr "أجعل هذه العلامه مجرد علامه" + +# +msgid "Manage extensions" +msgstr "التحكم ÙÙ‰ الاضاÙات" + +# +msgid "Manage your receiver's software" +msgstr "تحكم ÙÙ‰ البرنامج التشغيلى للرسيÙر" + +msgid "Manual" +msgstr "" + +# +msgid "Manual Scan" +msgstr "بحـث يدوى" + +msgid "Manual configuration" +msgstr "" + +# +#, fuzzy +msgid "Manual scan" +msgstr "بحـث يدوى" + +msgid "Manual transponder" +msgstr "تردد يدوى" + +msgid "Manufacturer" +msgstr "الصانع" + +#, fuzzy +msgid "Margin after recording (minutes)" +msgstr "الهامش قبل التسجيل (بالدقائق)" + +#, fuzzy +msgid "Margin before recording (minutes)" +msgstr "الهامش قبل التسجيل (بالدقائق)" + +msgid "Max memory positions" +msgstr "" + +msgid "Max. bitrate: " +msgstr "" + +# +msgid "Media player" +msgstr "مشغل الوسائط" + +# +#, fuzzy +msgid "Media scanner" +msgstr "مشغل الوسائط" + +# +msgid "Medium is not a writeable DVD!" +msgstr "" + +msgid "Medium is not empty!" +msgstr "الوسيط غير Ùارغ" + +msgid "Memory" +msgstr "" + +msgid "Memory index" +msgstr "" + +# +msgid "Menu" +msgstr "قائمه" + +# +msgid "Message" +msgstr "رسـاله" + +msgid "Message..." +msgstr "رساله..." + +#, python-format +msgid "Minimum age %d years" +msgstr "" + +msgid "Minimum send interval" +msgstr "" + +msgid "Missing " +msgstr "" + +# +#, fuzzy +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "وضعيه" + +# +#, fuzzy +msgctxt "Video output mode" +msgid "Mode" +msgstr "وضعيه" + +# +msgid "Model: " +msgstr "موديل :" + +# +msgid "Modulation" +msgstr "تعديل" + +# +msgid "Modulator" +msgstr "" + +# +msgid "Mon" +msgstr "الاثنين" + +# +msgid "Mon-Fri" +msgstr "الاثنين - الجمعه" + +# +msgid "Monday" +msgstr "الاثنين" + +# +msgid "Mosquito noise reduction" +msgstr "" + +msgid "Mount" +msgstr "" + +msgid "Move" +msgstr "" + +#, fuzzy +msgid "Move PiP to main picture" +msgstr "تحريك صوره داخل صوره الى الصوره الرئيسيه" + +msgid "Move Picture in Picture" +msgstr "تحريك صوره داخل صوره" + +msgid "Move east" +msgstr "تحرك شرقا" + +msgid "Move to other directory" +msgstr "" + +msgid "Move to position X" +msgstr "" + +msgid "Move west" +msgstr "تحرك للغرب" + +msgid "Moved to position 0" +msgstr "" + +msgid "Moved to position at index" +msgstr "" + +msgid "Movement" +msgstr "" + +msgid "Movie List Configuration" +msgstr "" + +msgid "Movie Selection" +msgstr "" + +#, fuzzy +msgid "Movie list configuration" +msgstr "تهيئة الموالÙ" + +msgid "Movie location" +msgstr "مكان الÙيلم" + +#, fuzzy +msgid "Movie selection" +msgstr "مكان الÙيلم" + +msgid "Movie/Drama" +msgstr "" + +msgid "Movielist menu" +msgstr "قائمة سجل الاÙلام" + +msgid "Moving" +msgstr "" + +msgid "Moving east ..." +msgstr "" + +msgid "Moving to position" +msgstr "" + +msgid "Moving west ..." +msgstr "" + +# +msgid "Multi EPG" +msgstr "دليل برامج متعدد" + +msgid "Multi-EPG bouquet selection" +msgstr "" + +msgid "Multimedia" +msgstr "وسائط متعدده" + +msgid "Multiple service support" +msgstr "دعم خدمات متعدده" + +msgid "Multiplex" +msgstr "" + +# +msgid "Multisat" +msgstr "عدة أقمار" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "" + +msgid "Mute" +msgstr "كتم الصوت" + +# +msgid "N/A" +msgstr "غير موجود" + +# +msgid "NEXT" +msgstr "التالى" + +# +#, fuzzy +msgid "NFI image flashing" +msgstr "شحن صوره NFI" + +# +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "تم النتهاء من شحن صوره NFIØŒ رجاء الضغط على الذر الاصÙر لاعادة التشغيل !" + +msgid "NIM" +msgstr "" + +msgid "NOW" +msgstr "الان" + +# +msgid "NTSC" +msgstr "NTSC" + +# +msgid "Name" +msgstr "الاسم" + +msgid "Nameserver" +msgstr "اسم الخادم" + +#, python-format +msgid "Nameserver %d" +msgstr "اسم الخادم %d" + +msgid "Nameserver settings" +msgstr "إعدادات اسم الخادم" + +#, fuzzy +msgid "Nameserver setup" +msgstr "ضبط أسم الخادم" + +msgid "Namespace" +msgstr "" + +msgid "Netmask" +msgstr "قناع الشبكه" + +msgid "Network" +msgstr "الشبكه" + +msgid "Network ID" +msgstr "" + +#, fuzzy +msgid "Network configuration..." +msgstr "تكوين الشبكه" + +# +#, fuzzy +msgid "Network mount" +msgstr "إعتلاء الشبكه" + +# +#, fuzzy, python-format +msgid "Network mount %s" +msgstr "إعتلاء الشبكه" + +#, fuzzy +msgid "Network name (SSID)" +msgstr "إختبار الشبكه:" + +msgid "Network scan" +msgstr "بحث عن الشبكه" + +msgid "Network setup" +msgstr "ضبط الشبكه" + +msgid "Network test" +msgstr "أختبار الشبكه" + +msgid "Network test..." +msgstr "اختبار الشبكه ..." + +msgid "Network test: " +msgstr "إختبار الشبكه:" + +#, fuzzy +msgid "Network wizard" +msgstr "ناÙذة ضبط الشبكه" + +msgid "Network:" +msgstr "الشبكه:" + +# +msgid "New" +msgstr "جديد" + +msgid "New PIN" +msgstr "" + +# +msgid "New version:" +msgstr "إصدار جديد:" + +msgid "News Current Affairs" +msgstr "" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "" + +# +msgid "No" +msgstr "لا" + +# +msgid "No (supported) DVDROM found!" +msgstr "" + +msgid "No Connection" +msgstr "لا يوجد إتصال" + +# +msgid "No HDD found or HDD not initialized!" +msgstr "" +"لا يوجد قرص صلب\n" +"أو ان القرص الصلب لم يبدأ" + +# +msgid "No backup needed" +msgstr "لا حاجه الى نسخه إحتياطيه " + +msgid "No cable tuner found!" +msgstr "" + +# +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" + +msgid "No delay" +msgstr "" + +# +msgid "No description available." +msgstr "لا يوجد وصÙ" + +# +msgid "No details for this image file" +msgstr "لا يوجد تÙاصيل لمل٠الصوره هذا" + +# +msgid "No displayable files on this medium found!" +msgstr "لا يوجد ملÙات للعرض على هذا الوسيط !" + +# +msgid "No event info found, recording indefinitely." +msgstr "" + +# +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "" + +msgid "No free index available" +msgstr "" + +msgid "No free tuner!" +msgstr "لا يوجد موال٠حر !" + +# +msgid "No network connection available." +msgstr "لا يوجد اتصال متاح بشبكه" + +# +msgid "No networks found" +msgstr "لم يتم العثور على شبكه" + +msgid "No new plugins found" +msgstr "" + +# +msgid "No positioner capable frontend found." +msgstr "" + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "" + +msgid "No services/providers selected" +msgstr "" + +#, fuzzy +msgid "No standby" +msgstr "وضع الاستعداد" + +msgid "No suitable sat tuner found!" +msgstr "" + +# +msgid "No tags are set on these movies." +msgstr "" + +#, fuzzy +msgid "No timeout" +msgstr "وقت ظهور شريط المعلومات" + +# +msgid "No to all" +msgstr "لا للجميع" + +msgid "No transparency" +msgstr "" + +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "لم يتم العثور على موال٠مهيأ للعمل مع موتور دايزك !" + +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"لا يوجد موال٠مÙعل \n" +"من Ùضلك أضبط إعدادات الموال٠قبل البحث عن القنوات ." + +# +#, fuzzy +msgid "No updates available" +msgstr "التحديثات المتاحه" + +msgid "No updates available. Please try again later." +msgstr "" + +# +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" + +# +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" + +msgid "No wireless networks found! Searching..." +msgstr "" + +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"لا يوجد محول شبكه \n" +"من Ùضلك تأكد من توصيل كابل الشبكه وأن إعدادات الشبكه تمت بشكل صحيح" + +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"لم يتم العثور على محول شبكه لاسلكى. \n" +"رجاء التأكد من توصيل محول شبكه مناسب وأن ضبط الشبكه قد تم بشكل صحي" + +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"لم يتم العثور على واحهة شبكه عامله.\n" +"رجاء التأكد من توصيل محول شبكه مناسب أو قم بتشغيل واحهة الشبكه المحليه." + +msgid "No, but restart from begin" +msgstr "لا، لكن أعد التشغيل من البدايه" + +msgid "No, do nothing." +msgstr "لا ØŒ لا تÙعل شيئ" + +msgid "No, just start my receiver" +msgstr "" + +msgid "No, never" +msgstr "" + +# +msgid "None" +msgstr "لاشيئ" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "غير خطى" + +msgid "Normal mode" +msgstr "" + +# +msgid "North" +msgstr "شمال" + +# +msgid "Norwegian" +msgstr "نرويجى" + +msgid "Not associated" +msgstr "" + +msgid "Not configured" +msgstr "" + +# +#, fuzzy, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "لا يوجد مساحه كاÙيه على القرص، من Ùضلك حرر مساحه وحاول ثانيه.(مطلوب %d ميجاالمطلوب %d ميجا)" + +msgid "Nothing connected" +msgstr "" + +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"لا يوجد شيئ للبحث ! \n" +"من Ùضلك قم بضبط الموال٠قبل بدأ البحث" + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "" + +# +#, fuzzy +msgid "Now playing" +msgstr "الان يعرض" + +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "الان، استخدم إعدادات التباين لزيادة درجه إضاءه الخلÙيه الى أعلى قيمه ممكنه ØŒ لكن كن متأكدا انك لازلت تستطيع ان ترى الÙرق بين مستويين من الاضاءه ÙÙ‰ الظل . إذا انتهيت من ذلك ØŒ أضغط مواÙÙ‚." + +# +msgid "OK" +msgstr "مواÙÙ‚" + +msgid "OK, guide me through the upgrade process" +msgstr "مواÙÙ‚ØŒ أرشدنى أثناء عملية الترقيه" + +msgid "ONID" +msgstr "" + +msgid "OSD name request" +msgstr "" + +# +#, fuzzy +msgid "OSD settings" +msgstr "إعدادات OSD" + +msgid "OSD transparency" +msgstr "" + +# +msgid "Off" +msgstr "لا يعمل" + +msgid "Offline decode delay (ms)" +msgstr "" + +msgid "Ok" +msgstr "" + +# +msgid "On" +msgstr "يعمل" + +msgid "On end of movie" +msgstr "" + +msgid "On end of movie (as menu)" +msgstr "" + +# +msgid "One" +msgstr "واحد" + +msgid "Only extensions." +msgstr "إضاÙات Ùقط" + +# +#, fuzzy +msgid "Only free scan" +msgstr "Ùقط بحث عن القنوات المÙتوحه" + +#, fuzzy +msgid "Open service list" +msgstr "Ùتح قائمة القنوات" + +#, fuzzy +msgid "Open the movie list" +msgstr "العوده الى قائمة الأÙلام" + +msgid "Orbital position" +msgstr "" + +msgid "Original" +msgstr "" + +msgid "Other" +msgstr "" + +msgid "Output" +msgstr "" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "" + +#, fuzzy +msgid "Overwrite configuration files?" +msgstr "تهيئة الموالÙ" + +# +msgid "PAL" +msgstr "بال" + +msgid "PCR PID" +msgstr "" + +msgid "PIDs" +msgstr "PIDs" + +#, fuzzy +msgid "PIN code needed" +msgstr "مطلوب رقم سرى" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "" + +# +msgid "Package list update" +msgstr "تحديث قائمة الباقات" + +msgid "Packet management" +msgstr "التحكم ÙÙ‰ الحزم" + +msgid "Packet manager" +msgstr "المتحكم ÙÙ‰ الحزم" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +msgid "Pan&scan" +msgstr "" + +# +#, fuzzy +msgid "Parent directory" +msgstr "الدليل الرئيسى" + +# +msgid "Parental control" +msgstr "التحكم الابوى" + +#, fuzzy +msgid "Parental control services editor" +msgstr "محرر خدمات التحكم الأبوى" + +# +msgid "Parental control setup" +msgstr "اعداد التحكم الابوى" + +# +msgid "Parental control type" +msgstr "نوع التحكم الابوى" + +# +msgid "Password" +msgstr "كلمة المرور" + +#, fuzzy +msgid "Pause" +msgstr "وق٠مؤقت" + +msgid "Pause movie at end" +msgstr "إيقا٠الÙيلم عند النهايه" + +# +#, fuzzy +msgid "Pause playback" +msgstr "إستئنا٠العرض" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "" + +#, fuzzy +msgid "Percentage right" +msgstr "يمين دائرى" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "" + +msgid "Permanently remove all deleted items" +msgstr "" + +msgid "Persian" +msgstr "" + +# +msgid "Phone number" +msgstr "رقم التليÙون" + +#, fuzzy +msgid "PiP setup" +msgstr "ضبط صوره داخل صوره" + +msgid "Picon" +msgstr "" + +msgid "Picon and service name" +msgstr "" + +#, fuzzy +msgid "Picture player" +msgstr "عارض الصور" + +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "عمود مربع" + +# +msgid "Pilot" +msgstr "" + +# +msgid "Play" +msgstr "تشغيل" + +# +msgid "Play DVD" +msgstr "تشغيل دى ÙÙ‰ دى" + +msgid "Play audio in background" +msgstr "" + +# +#, fuzzy +msgid "Play audio-CD..." +msgstr "تشغيل سى دى صوت" + +msgid "Play back media files" +msgstr "" + +# +#, fuzzy +msgid "Play entry" +msgstr "عرض المدخل" + +#, fuzzy +msgid "Play from next mark or playlist entry" +msgstr "أعرض من العلامه التاليه أو من قائمة العرض" + +# +#, fuzzy +msgid "Play from previous mark or playlist entry" +msgstr "عرض من العلامه السابقه أو من مدخل قائمة العرض" + +# +#, fuzzy +msgid "Play music..." +msgstr "تشغيل موسيقى" + +msgid "Play next" +msgstr "" + +msgid "Play next (return to movie list)" +msgstr "" + +msgid "Play next (return to previous service)" +msgstr "" + +msgid "Play previous" +msgstr "" + +# +msgid "Play recorded movies..." +msgstr "عرض الاÙلام المسجله" + +msgid "Please add titles to the compilation." +msgstr "من Ùضلك أدخل عناوين للتأليÙ" + +msgid "Please change recording endtime" +msgstr "من Ùضلك قم بتغيير وقت إنتهاء التسجيل" + +msgid "Please check your network settings!" +msgstr "من Ùضلك Ø£Ùحص إعدادات الشبكه!" + +msgid "Please choose an extension..." +msgstr "من Ùضلك أختار إضاÙÙ‡..." + +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"من Ùضلك ÙÙ… بتكوين أو تأكد من اسم الخادم بوضع القيم المطلوبه.\n" +"عندما تكون مستعد أضغط مواÙÙ‚ للاستمرار." + +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"من Ùضلك قم بتكوين التصال بالنترنت بملأ القيم المطلوبه \n" +"عندما تكون مستعد أضغط مواÙÙ‚ للاستمرار" + +msgid "Please connect your receiver to the internet" +msgstr "" + +msgid "Please do not change any values unless you know what you are doing!" +msgstr "من Ùضلك لا تغير أى قيمه ألا إذا كنت متأكد مما تÙعل !" + +msgid "Please enter a name for the new bouquet" +msgstr "من Ùضلك أدخل أسم الباقه الجديده" + +msgid "Please enter a name for the new marker" +msgstr "من Ùضلك أدخل أسم للعلامه الجديده" + +msgid "Please enter a new filename" +msgstr "من Ùضلك أدخل اسم جديد للملÙ" + +msgid "Please enter filename (empty = use current date)" +msgstr "من Ùضلك أدخل اسم مل٠(Ùارغ= استخدم التارخ الحالى)" + +msgid "Please enter name of the new directory" +msgstr "من Ùضلك أدخل أسم الدليل الجديد" + +msgid "Please enter new name:" +msgstr "" + +msgid "Please enter the correct pin code" +msgstr "من Ùضلك أدخل الرقم السرى الصحيح" + +msgid "Please enter the old PIN code" +msgstr "" + +msgid "Please follow the instructions on the TV" +msgstr "من Ùضلك اتبع التعليمات على التليÙزيون" + +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "من Ùضلك أعلم ان الوسيط المختار لا يمكن الدخول اليه ØŒ ولهذا سيتم استخدام الدليل الاÙتراضى بدلا منه ." + +msgid "Please press OK to continue." +msgstr "من Ùضلك أضغط مواÙÙ‚ للاستمرار" + +msgid "Please select a default EPG type..." +msgstr "" + +msgid "Please select a playlist to delete..." +msgstr "أختار قائمة العرض المراد مسحها..." + +msgid "Please select a playlist..." +msgstr "من Ùضلك أختار قائمة العرض..." + +# +#, fuzzy +msgid "Please select a sub service..." +msgstr "من Ùضلك أختار الخدمه الÙرعيه" + +msgid "Please select a subservice to record..." +msgstr "من Ùضلك أختار الخدمه الÙرعيه المطلوب تسجيلها..." + +# +msgid "Please select a subservice..." +msgstr "من Ùضلك أختار الخدمه الÙرعيه" + +msgid "Please select an NFI file and press green key to flash!" +msgstr "" + +#, fuzzy +msgid "Please select medium to be scanned" +msgstr "من Ùضلك أختار الوسيط المطلوب Ùحصه" + +msgid "Please select medium to use as backup location" +msgstr "من Ùضلك أختار الوسيط الذى سييستخدم كمكان للنسخه الإحتياطيه " + +# +msgid "Please select tag to filter..." +msgstr "" + +msgid "Please select the movie path..." +msgstr "من Ùضلك أختار مسار الÙيلم..." + +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"من Ùضلك أختار واجهة الشبكه التى تريد استخدامها ÙÙ‰ الاتصال بالانترنت.\n" +"\n" +"أضغط مواÙÙ‚ للاستمرار." + +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"من Ùضلك أختار الشبكه اللاسلكيه التى تريد الاتصال بها \n" +"\n" +"أضغط مواÙÙ‚ للاستمرار" + +#, fuzzy +msgid "Please set up tuner A" +msgstr "من Ùضلك أضبط الموال٠B" + +msgid "Please set up tuner B" +msgstr "من Ùضلك أضبط الموال٠B" + +msgid "Please set up tuner C" +msgstr "من Ùضلك أضبط الموال٠C" + +msgid "Please set up tuner D" +msgstr "من Ùضلك أضبط الموال٠D" + +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"من Ùضلك استخدم أذرار الاسهم لتحريك ناÙذه صوره داخل صوره \n" +"أضغط ذر الباقات +/- لتغير مقاس الناÙذه \n" +"أضغط مواÙÙ‚ للعوده لوضع التليÙزيون أو خروج لألغاء التحريك" + +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "من Ùضلك أستخدم ذر السهم العلوى أو السÙلى لإختيار اللغه. ثم أضغط مواÙÙ‚ ." + +msgid "Please wait" +msgstr "" + +#, fuzzy +msgid "Please wait (downloading channel list)" +msgstr "انتظر من Ùضلك ...يتم تحميل القائمه..." + +#, fuzzy +msgid "Please wait (downloading softcam)" +msgstr "انتظر من Ùضلك ...يتم تحميل القائمه..." + +#, fuzzy +msgid "Please wait (updating packages)" +msgstr "رجاء الانتظار... جارى تحميل الصوره" + +msgid "Please wait for activation of your network configuration..." +msgstr "رجاء الانتظار حتى يتم تنشيط تكوينات الشبكه" + +msgid "Please wait while scanning is in progress..." +msgstr "رجاء الانتظار حيث جارى البحث..." + +msgid "Please wait while we configure your network..." +msgstr "رجاء الانتظار..... جارى تهيئة الشبكه" + +msgid "Please wait while we prepare your network interfaces..." +msgstr "رجاء الانتظار.... جارى تحضير واجهات الشبكه" + +msgid "Please wait while we test your network..." +msgstr "رجاء الانتظار.... جارى إختبار الشبكه" + +msgid "Please wait while your network is restarting..." +msgstr "رجاء الانتظار.... جارى إعادة تشغيل الشبكه" + +msgid "Please wait..." +msgstr "رجاء الانتظار...." + +msgid "Please wait... Loading list..." +msgstr "انتظر من Ùضلك ...يتم تحميل القائمه..." + +# +msgid "Plugin browser" +msgstr "متصÙØ­ البلج إنز" + +msgid "Plugin manager activity information" +msgstr "معلومات نشاط متحكم البلج إن" + +# +msgid "Plugin manager help" +msgstr "مساعده متحكم البلج إن" + +# +msgid "Plugins" +msgstr "بلج إنز" + +msgid "Polarisation" +msgstr "" + +msgid "Polarisation:" +msgstr "" + +# +msgid "Polarization" +msgstr "الاستقطاب" + +# +msgid "Polish" +msgstr "بولندى" + +# +msgid "Port A" +msgstr "مدخل Ø£" + +# +msgid "Port B" +msgstr "مدخل ب" + +# +msgid "Port C" +msgstr "مدخل ج" + +# +msgid "Port D" +msgstr "مدخل د" + +# +msgid "Portuguese" +msgstr "برتغالى" + +msgid "Position of completed timers in timerlist" +msgstr "" + +msgid "Position stored at index" +msgstr "" + +# +msgid "Positioner" +msgstr "الموتور" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "" + +msgid "Positioner setup" +msgstr "ضبط الموتور" + +# +msgid "Power threshold in mA" +msgstr "" + +# +msgid "Predefined transponder" +msgstr "" + +msgid "Prefer AC3 track" +msgstr "" + +msgid "Prefer AC3+ track" +msgstr "" + +msgid "Prefer audio track stored by service" +msgstr "" + +msgid "Prefer graphical DVB subtitles" +msgstr "" + +msgid "Prefer subtitles for hearing impaired" +msgstr "" + +msgid "Prefer subtitles stored by service" +msgstr "" + +msgid "Preferred tuner" +msgstr "" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "" + +# +msgid "Preparing... Please wait" +msgstr "جارى التجهيز ... رجاء الانتظار" + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "" + +msgid "Press MENU on your remote control for additional options." +msgstr "" + +# +msgid "Press OK on your remote control to continue." +msgstr "أضغط مواÙÙ‚ من الريموت للمتابعه" + +msgid "Press OK to activate the selected skin." +msgstr "أضغط مواÙÙ‚ لتÙعيل الجلد المختار." + +# +msgid "Press OK to activate the settings." +msgstr "اضغط مواÙÙ‚ لتÙعيل الاعدادات" + +msgid "Press OK to edit the settings." +msgstr "أضغط مواÙÙ‚ لتحرير الاعدادات" + +#, python-format +msgid "Press OK to get further details for %s" +msgstr "أضغط موالق للحصول على تÙاصيل أكثر عن %s" + +# +msgid "Press OK to scan" +msgstr "اضغط مواÙÙ‚ للبحث" + +#, fuzzy +msgid "Press OK to select a provider." +msgstr "أضغط مواÙÙ‚ لتختار مزود" + +msgid "Press OK to select satellites" +msgstr "" + +msgid "Press OK to select/deselect a CAId." +msgstr "إضغط مواÙÙ‚ لاختيار/الغاء اختيار CAId" + +# +msgid "Press OK to start the scan" +msgstr "اضغط مواÙÙ‚ لبدأ البحث" + +msgid "Press OK to toggle the selection" +msgstr "" + +msgid "Press OK to toggle the selection." +msgstr "أضغط مواÙÙ‚ لتبدل الأختيار" + +msgid "Press yellow to set this interface as default interface." +msgstr "أضغط الذر الأصÙر لتجعل هذه الواجهه هى الواجهه الأÙتراضيه" + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "" + +msgid "Preview" +msgstr "معاينه" + +msgid "Preview menu" +msgstr "معاينة القائمه" + +msgid "Preview selected channel" +msgstr "" + +msgid "Primary DNS" +msgstr "دى إن اس أبتدائى" + +msgid "Priority" +msgstr "أولويه" + +msgid "Process" +msgstr "عمليه" + +msgid "Progress" +msgstr "" + +msgid "Progress bar left" +msgstr "" + +msgid "Progress bar right" +msgstr "" + +msgid "Properties of current title" +msgstr "خصائص العنوان الحالى" + +msgid "Protect services" +msgstr "إحمى القنوات" + +msgid "Protect setup" +msgstr "إحمى الضبط" + +msgid "Provider" +msgstr "مزود" + +msgid "Provider to scan" +msgstr "المزود الذى سيتم البحث Ùيه" + +# +msgid "Providers" +msgstr "مقدمو الخدمه" + +msgid "Put TV in standby" +msgstr "" + +msgid "Put receiver in standby" +msgstr "" + +# +msgid "Python frontend for /tmp/mmi.socket" +msgstr "" + +msgid "Quick" +msgstr "سريع" + +#, fuzzy +msgid "Quick zap" +msgstr "انتقال سريع" + +msgid "RF output" +msgstr "مخرج RF" + +msgid "RGB" +msgstr "RGB" + +msgid "Radio" +msgstr "راديو" + +# +#, fuzzy +msgid "Ram disk" +msgstr "قرص صلب" + +msgid "Random" +msgstr "عشوائى" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "" + +msgid "Rating undefined" +msgstr "" + +msgid "Really close without saving settings?" +msgstr "هل تريد Ùعلا الغلق بدون Ø­Ùظ الاعدادات ØŸ" + +msgid "Really delete done timers?" +msgstr "هل تريد Ùعلا مسح المؤقتات المعموله ØŸ" + +# +msgid "Really exit the subservices quickzap?" +msgstr "" + +msgid "Really reboot now?" +msgstr "هل تريد Ùعلا إعادة التشغيل الان ØŸ" + +msgid "Really restart now?" +msgstr "هل تريد Ùعلا إعـادة التشغـيل الان ØŸ" + +msgid "Really shutdown now?" +msgstr "هل تريد Ùعلا الاغلاق الان ØŸ" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "" + +msgid "Reboot" +msgstr "إعادة التشغيل" + +msgid "Rec" +msgstr "" + +# +#, fuzzy +msgid "Reception settings" +msgstr "إعدادات الاستقبال" + +# +msgid "Record" +msgstr "تسجيل" + +# +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "وقت تسجيل محدود لوجود مؤقت متعارض %s" + +msgid "Recorded files..." +msgstr "ملÙات مسجله..." + +# +msgid "Recording" +msgstr "تسجيل" + +msgid "Recording in progress" +msgstr "" + +msgid "Recording paths" +msgstr "مسارات التسجيل" + +msgid "Recording type" +msgstr "" + +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "التسجيل قيد التنÙيذ أو سيبدأ ÙÙ‰ ثوان قليله" + +msgid "Recordings" +msgstr "تسجيلات" + +msgid "Recordings always have priority" +msgstr "التسجيلات لها الأوليه دائما" + +msgid "Red button..." +msgstr "" + +msgid "Reenter new PIN" +msgstr "" + +#, fuzzy +msgid "Refresh rate" +msgstr "معدل الأنعاش" + +msgid "Refresh rate selection." +msgstr "إختيار معدل الأنعاش" + +msgid "Regard deep standby as standby" +msgstr "" + +msgid "Relative" +msgstr "" + +msgid "Reload" +msgstr "إعادة تحميل" + +# +#, fuzzy +msgid "Reload black-/white lists" +msgstr "إعادة تحميل القائمه السوداء/البيضاء" + +msgid "Reloading bouquets and services..." +msgstr "" + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "" + +msgid "Remember these settings for each folder" +msgstr "" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "" + +# +#, fuzzy +msgid "Remote control type" +msgstr "نوع التحكم الابوى" + +#, fuzzy +msgid "Removal has completed." +msgstr "Ùشل الحذÙ" + +msgid "Remove" +msgstr "حذÙ" + +msgid "Remove a mark" +msgstr "حذ٠علامه" + +# +#, fuzzy +msgid "Remove a nameserver entry" +msgstr "حذ٠مدخلأسم الخادم" + +# +#, fuzzy +msgid "Remove bookmark" +msgstr "حذ٠المرجعيه" + +msgid "Remove completed timers after (days)" +msgstr "" + +msgid "Remove currently selected title" +msgstr "حذ٠العنوان الحالى المختار" + +msgid "Remove items from trash can after (days)" +msgstr "" + +msgid "Remove plugins" +msgstr "حذ٠البلج إنز" + +msgid "Remove title" +msgstr "حذ٠عنوان" + +msgid "Removing" +msgstr "جارى الحذÙ" + +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Ùشل حذ٠الدليل%s .قد يكون Ùارغ ." + +#, fuzzy +msgid "Removing partition table" +msgstr "حذ٠عنوان" + +msgid "Rename" +msgstr "إعادة التسميه" + +msgid "Repeat" +msgstr "" + +#, fuzzy +msgid "Repeat type" +msgstr "نوع الإعاده" + +# +msgid "Repeating event currently recording... What do you want to do?" +msgstr "" + +msgid "Repeats" +msgstr "إعادات" + +msgid "Require authentication for http streams" +msgstr "" + +msgid "Required medium type:" +msgstr "نوع الوسيط المطلوب" + +msgid "Rereading partition table" +msgstr "" + +msgid "Reserved" +msgstr "" + +# +msgid "Reset" +msgstr "إعاده الضبط" + +# +msgid "Reset and renumerate title names" +msgstr "" + +msgid "Reset playback position" +msgstr "" + +msgid "Reset video enhancement settings to system defaults?" +msgstr "إعادة إعدادات تعزيز الÙيديو الى Ø¥Ùتراضيات النظام ØŸ" + +msgid "Reset video enhancement settings to your last configuration?" +msgstr "إعادة إعدادات تعزيز الÙيديو الى التكوينات الاخيره الخاصه بك ØŸ" + +# +msgid "Resolution" +msgstr "" + +# +msgid "Restart" +msgstr "إعاده التشغيل" + +msgid "Restart GUI now?" +msgstr "هل تريد إعادة تشغيل الاينجما2 الان ØŸ" + +msgid "Restart enigma" +msgstr "" + +msgid "Restart network" +msgstr "إعادة تشغيل الشبكه" + +msgid "Restart test" +msgstr "إعادة الاختبار" + +msgid "Restart your network connection and interfaces.\n" +msgstr "إعادة تشغيل إتصال الشبكه والواجهه.\n" + +msgid "Restore" +msgstr "إستعاده" + +msgid "Restore backups" +msgstr "إستعادة النسخه الإحتياطيه " + +msgid "Restore is running..." +msgstr "الاستعاده قيد التنÙيذ" + +msgid "Restore system settings" +msgstr "إستعادة إعدادات النظام" + +#, fuzzy +msgid "Restoring..." +msgstr "جارى التسجيل....." + +msgid "Resume from last position" +msgstr "إستعاده من الوضع السابق" + +#, python-format +msgid "Resume position at %s" +msgstr "إستعادة الوضع الى%s" + +# +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "إستئنا٠العرض" + +msgid "Return to movie list" +msgstr "العوده الى قائمة الأÙلام" + +msgid "Return to previous service" +msgstr "العوده الى الخدمه القناه السابقه" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +msgid "Rewind speeds" +msgstr "سرعة العوده للخلÙ" + +msgid "Rewrap teletext subtitles" +msgstr "" + +msgid "Right" +msgstr "يمين" + +msgid "Right from servicename" +msgstr "" + +msgid "Roll-off" +msgstr "" + +msgid "Romanian" +msgstr "" + +msgid "Root directory" +msgstr "" + +msgid "Rotor step position:" +msgstr "" + +# +msgid "Rotor turning speed" +msgstr "سرعة تولي٠الموتور" + +msgid "Round start time on" +msgstr "" + +# +msgid "Russian" +msgstr "روسى" + +msgid "S-Video" +msgstr "S-Video" + +msgid "SID" +msgstr "" + +# +msgid "SINGLE LAYER DVD" +msgstr "دى ÙÙ‰ دى أحادى الطبقه" + +# +msgid "SNR" +msgstr "SNR" + +# +msgid "SNR:" +msgstr "SNR:" + +# +msgid "SSID:" +msgstr "SSID:" + +msgid "Same resolution as skin" +msgstr "" + +# +msgid "Sat" +msgstr "قمر" + +# +msgid "Satellite" +msgstr "قمر صناعى" + +# +#, fuzzy +msgid "Satellite dish setup" +msgstr "ضبط معدات القمر" + +msgid "Satellite equipment" +msgstr "معدات القمر" + +# +#, fuzzy +msgid "Satellite equipment setup" +msgstr "ضبط معدات القمر" + +msgid "Satellite longitude:" +msgstr "" + +# +msgid "Satellites" +msgstr "اقمار صناعيه" + +msgid "Satfinder" +msgstr "الباحث عن الأقمار" + +# +msgid "Sats" +msgstr "أقمار" + +msgid "Saturation" +msgstr "تشبع" + +# +msgid "Saturday" +msgstr "السبت" + +msgid "Save" +msgstr "Ø­Ùظ" + +#, fuzzy +msgid "Save playlist" +msgstr "Ø­Ùظ قائمة العرض" + +msgid "Save timeshift file" +msgstr "" + +msgid "Save timeshift file in movie directory" +msgstr "" + +# +msgid "Scaler sharpness" +msgstr "" + +#, fuzzy +msgid "Scaling mode" +msgstr "وضع التدريج" + +msgid "Scan" +msgstr "" + +msgid "Scan " +msgstr "بحـث" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, fuzzy, python-format +msgid "Scan %s" +msgstr "بحـث" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, python-format +msgid "Scan %s band" +msgstr "" + +# +msgid "Scan additional SR" +msgstr "البحث عن SR إضاÙÙ‰" + +# +#, fuzzy +msgid "Scan files..." +msgstr "Ùحص الملÙات..." + +#, fuzzy +msgid "Scan wireless networks" +msgstr "البحث عن شبكات لاسلكيه" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "أبحث ÙÙ‰ الشبكه عن نقاط دخول لاسلكيه وأتصل بهم باستخدامجهزك اللاسلكى المختار.\n" + +#, python-format +msgid "Scanning %s..." +msgstr "" + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +msgid "Scanning failed!" +msgstr "" + +msgid "Scanning..." +msgstr "" + +# +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "" + +msgid "Search east" +msgstr "البحث شرقا" + +msgid "Search west" +msgstr "بحث غربا" + +msgid "Searching" +msgstr "" + +msgid "Searching east ..." +msgstr "" + +msgid "Searching for available updates. Please wait..." +msgstr "بحث عن التحديثات المتاحه. رجاء الانتظار...." + +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "جارى البحث عن حزم جديده تم تثبيتها أو حذÙها. رجاء الانتظار..." + +msgid "Searching west ..." +msgstr "" + +msgid "Second cable of motorized LNB" +msgstr "" + +msgid "Secondary DNS" +msgstr "DNS ثانوى" + +# +msgid "Seek" +msgstr "بحـث" + +#, fuzzy +msgid "Seek backward" +msgstr "تخطى للخلÙ" + +#, fuzzy +msgid "Seek backward (enter time)" +msgstr "تخطى للخل٠(أدخل الوقت)" + +#, fuzzy +msgid "Seek forward" +msgstr "تخطى للأمام" + +#, fuzzy +msgid "Seek forward (enter time)" +msgstr "تخطى للأمام (أدخل الوقت)" + +msgid "Select" +msgstr "أختار" + +#, fuzzy +msgid "Select CAId" +msgstr "أختار" + +# +msgid "Select HDD" +msgstr "اختار القرص الصلب" + +# +#, fuzzy +msgid "Select a bouquet" +msgstr "اختار الÙيلم" + +# +msgid "Select a movie" +msgstr "اختار الÙيلم" + +#, fuzzy +msgid "Select a network adapter" +msgstr "أختار محول الشبكه" + +# +#, fuzzy +msgid "Select a skin" +msgstr "اختار الÙيلم" + +# +#, fuzzy +msgid "Select a tuner" +msgstr "اختار الÙيلم" + +#, fuzzy +msgid "Select a wireless network" +msgstr "اختار الشبكه اللاسلكيه" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +msgid "Select an image to be downloaded" +msgstr "" + +msgid "Select audio track" +msgstr "أختار مسار الصوت" + +#, fuzzy +msgid "Select backup files" +msgstr "اختار ملÙات النسخه الإحتياطيه " + +#, fuzzy +msgid "Select backup location" +msgstr "اختار مكان النسخه الإحتياطيه " + +# +msgid "Select channel to record from" +msgstr "اختار القناه التى تريد ان تسجل منها" + +msgid "Select copy destination for:" +msgstr "" + +msgid "Select default EPG type..." +msgstr "" + +msgid "Select desired image from feed list" +msgstr "" + +msgid "Select destination for:" +msgstr "" + +msgid "Select files for backup." +msgstr "" + +msgid "Select files/folders to backup" +msgstr "أختار ملÙات/مجلدات النسخه الاحتياطيه" + +msgid "Select input device" +msgstr "" + +msgid "Select input device." +msgstr "" + +msgid "Select interface" +msgstr "أختار واجهه" + +#, fuzzy +msgid "Select location" +msgstr "أختار الموقع" + +# +#, fuzzy +msgid "Select movie" +msgstr "اختار الÙيلم" + +msgid "Select provider to add..." +msgstr "أختار مزود ليتم إضاÙته..." + +msgid "Select refresh rate" +msgstr "أختار معدل الأنعاش" + +msgid "Select satellites" +msgstr "" + +msgid "Select service to add..." +msgstr "اختار قناه ليتم إضاÙتها" + +msgid "Select sort method:" +msgstr "" + +# +#, fuzzy +msgid "Select target folder" +msgstr "أختار المجلد الهدÙ" + +#, fuzzy +msgid "Select the movie path" +msgstr "أختار مسار الÙيلم" + +#, fuzzy +msgid "Select upgrade source" +msgstr "أختار مصدر الترقيه المراد تحريره" + +msgid "Select upgrade source to edit." +msgstr "أختار مصدر الترقيه المراد تحريره" + +# +msgid "Select video input with up/down buttons" +msgstr "أختار مدخل الÙيديو بأزرار أعلى/أسÙا" + +msgid "Select video mode" +msgstr "أختار اسلوب الÙيديو" + +msgid "Select wireless network" +msgstr "اختار الشبكه اللاسلكيه" + +msgid "Select your provider, and press OK to start the scan" +msgstr "" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +msgid "Send DiSEqC only on satellite change" +msgstr "ارسل دايزك عند تغيير القمر Ùقط" + +msgid "Separate titles with a main menu" +msgstr "عناوين منÙصله مع قائمة رئيسيه" + +msgid "Sequence repeat" +msgstr "تكرار التسلسل" + +# +msgid "Serbian" +msgstr "صريى" + +# +msgid "Service" +msgstr "قناه/خدمه" + +# +msgid "Service has been added to the favourites." +msgstr "تم إضاÙØ© القناه الى المÙضله" + +msgid "Service has been added to the selected bouquet." +msgstr "تم إضاÙØ© القناه الى الباقه المختاره." + +# +#, fuzzy +msgid "Service info" +msgstr "معلومات القناه" + +# +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" + +# +#, fuzzy +msgid "Service name" +msgstr "بخث عن القنوات" + +# +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" + +msgid "Service reference" +msgstr "" + +# +msgid "Service scan" +msgstr "بحث عـن القنـوات" + +# +#, fuzzy +msgid "Service searching" +msgstr "بحث عن القنـوات" + +#, fuzzy +msgid "Service title mode" +msgstr "أختار اسلوب الÙيديو" + +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"الخدمه غير متاحه !\n" +"تأكد من تهيئة الموال٠!" + +# +msgid "Services" +msgstr "القنوات/الخدمات" + +msgid "Set default" +msgstr "" + +# +#, fuzzy +msgid "Set end time" +msgstr "أضبط وقت النتهاء" + +msgid "Set fixed" +msgstr "" + +msgid "Set fps for external subtitles" +msgstr "" + +# +msgid "Set interface as default Interface" +msgstr "أبط واجهه لتكون واجهه Ø¥Ùتراضيه" + +msgid "Set limits" +msgstr "" + +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "" + +msgid "Set time window to 1 hour" +msgstr "" + +msgid "Set time window to 2 hours" +msgstr "" + +msgid "Set time window to 3 hours" +msgstr "" + +msgid "Set time window to 4 hours" +msgstr "" + +msgid "Set time window to 5 hours" +msgstr "" + +msgid "Set time window to 6 hours" +msgstr "" + +# +#, fuzzy +msgid "Set voltage and 22KHz" +msgstr "ضبط الÙولتيه Ùˆ 22KHz" + +msgid "Settings" +msgstr "إعدادات" + +# +msgid "Setup" +msgstr "الضبـط" + +msgid "Setup menu" +msgstr "" + +#, fuzzy +msgid "Setup mode" +msgstr "أسلوب الضبط" + +msgid "Setup your positioner" +msgstr "" + +#, fuzzy +msgid "Setup your satellite equipment" +msgstr "معدات القمر" + +# +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "" + +msgid "Sharpness" +msgstr "الحده" + +msgid "Short filenames" +msgstr "" + +msgid "Show EIT now/next in infobar" +msgstr "" + +#, fuzzy +msgid "Show EPG for current channel..." +msgstr "شاهد شريط المعلومات عند تغيير الحدث" + +# +#, fuzzy +msgid "Show EPG..." +msgstr "إظهار دليل البرامج الالكترونى" + +msgid "Show Games show" +msgstr "" + +msgid "Show SNR percentage instead of dB value" +msgstr "" + +msgid "Show VCR scart on main menu" +msgstr "" + +# +#, fuzzy +msgid "Show WLAN status" +msgstr "أظهر حالة الشبكه الواسعه" + +msgid "Show animation while busy" +msgstr "" + +#, fuzzy +msgid "Show background in radio mode" +msgstr "صورة الخلÙيه" + +msgid "Show bouquet selection menu" +msgstr "" + +msgid "Show busy indicator when the system is busy." +msgstr "" + +msgid "Show channel numbers in channel selection" +msgstr "" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "" + +msgid "Show detailed event info" +msgstr "" + +#, fuzzy +msgid "Show event details" +msgstr "إظهار تÙاصيل الحدث" + +# +msgid "Show event-progress in channel selection" +msgstr "" + +#, fuzzy +msgid "Show extended description" +msgstr "إظهار وص٠متقدم" + +#, fuzzy +msgid "Show extensions..." +msgstr "مشاهدة الاضاÙات..." + +msgid "Show icon for new/unseen items" +msgstr "" + +msgid "Show in extensions menu" +msgstr "" + +# +#, fuzzy +msgid "Show info" +msgstr "أظهر المعلومات" + +#, fuzzy +msgid "Show info line" +msgstr "إظهار شريط المعلومات" + +msgid "Show infobar on channel change" +msgstr "شاهد شريط المعلومات عند تغيير القناه" + +msgid "Show infobar on event change" +msgstr "شاهد شريط المعلومات عند تغيير الحدث" + +msgid "Show infobar on skip forward/backward" +msgstr "شاهد شريط المعلومات عند الانتقال للأمام/الخلÙ" + +msgid "Show latest commits on sourceforge" +msgstr "" + +# +#, fuzzy +msgid "Show message when recording starts" +msgstr "أظهر رساله عندما يبدأ التسجيل" + +# +#, fuzzy +msgid "Show movie lengths in movielist" +msgstr "تحميل طول الÙيلم ÙÙ‰ قائمة الاÙلام" + +msgid "Show multi channel EPG" +msgstr "" + +msgid "Show picons in channel list" +msgstr "" + +msgid "Show positioner movement" +msgstr "شاهد حركة الموتور" + +msgid "Show screensaver" +msgstr "" + +msgid "Show second infobar" +msgstr "" + +msgid "Show service type icons" +msgstr "" + +# +msgid "Show services beginning with" +msgstr "إظهر القنوات التى تبدأ بـ" + +#, fuzzy +msgid "Show shutdown menu" +msgstr "إظهار قائمة الاغلاق" + +msgid "Show single service EPG" +msgstr "" + +msgid "Show status icons in Movielist" +msgstr "" + +msgid "Show status icons in movie list" +msgstr "" + +msgid "Show status icons in movielist" +msgstr "" + +# +#, fuzzy +msgid "Show tag menu" +msgstr "أعرض قائمة دى ÙÙ‰ دى الرئيسيه" + +# +msgid "Show the radio player..." +msgstr "إظهار مشغل الراديو..." + +# +msgid "Show the tv player..." +msgstr "إظهار مشغل التليÙزيون" + +msgid "Show warning when timeshift is stopped" +msgstr "" + +# +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "تشاهد حالة إتصال الشبكه المحليه اللاسلكيه \n" + +#, fuzzy +msgid "Shuffle playlist" +msgstr "مسح قائمة العرض" + +# +msgid "Shutdown" +msgstr "إغلاق" + +msgid "Shutdown when in Standby" +msgstr "" + +msgid "Side by side" +msgstr "" + +msgid "Signal OK, proceeding" +msgstr "" + +msgid "Signal quality" +msgstr "" + +# +#, fuzzy +msgid "Signal strength:" +msgstr "قوة الاشاره" + +# +msgid "Signal: " +msgstr "الاشاره" + +# +msgid "Similar" +msgstr "شبيهه" + +msgid "Similar broadcasts:" +msgstr "إذاعات مماثله :" + +# +msgid "Simple" +msgstr "بسيطه" + +# +msgid "Simple titleset (compatibility for legacy players)" +msgstr "" + +# +msgid "Single" +msgstr "Ù…Ùرد" + +msgid "Single EPG" +msgstr "دليل برامج واحد" + +# +msgid "Single satellite" +msgstr "قمر واحد" + +# +#, fuzzy +msgid "Single step (GOP)" +msgstr "قمر واحد" + +# +msgid "Single transponder" +msgstr "تردد واحد" + +msgid "Site latitude" +msgstr "" + +msgid "Site longitude" +msgstr "" + +# +msgid "Skin" +msgstr "الجلد" + +# +msgid "Skins" +msgstr "الجلود" + +#, fuzzy +msgid "Skip empty services" +msgstr "إحمى القنوات" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "" + +# +#, fuzzy +msgid "Sleep timer" +msgstr "مؤقت النوم" + +msgid "SleepTimer Configuration" +msgstr "" + +msgid "Sleeptimer" +msgstr "" + +#, fuzzy +msgid "Slide picture in loop" +msgstr "صورة الشريحة ÙÙŠ حلقة" + +#, fuzzy +msgid "Slide show interval (sec.)" +msgstr "الÙاصل الزمنى بين عرض الرائح(ثانيه)" + +#, python-format +msgid "Slot %d" +msgstr "Ùتحة %d" + +msgid "Slovak" +msgstr "" + +# +msgid "Slovenian" +msgstr "سلوÙانى" + +msgid "Slow" +msgstr "بطيئ" + +#, fuzzy +msgid "Slow motion speeds" +msgstr "سرعات العرض البطئ" + +# +#, fuzzy +msgid "Small progress" +msgstr "جارى التقدم" + +msgid "Social/Political/Economics" +msgstr "" + +msgid "SoftCam / CI" +msgstr "" + +#, fuzzy +msgid "Softcam type" +msgstr "برنامج تشغيلى" + +msgid "Software" +msgstr "برنامج تشغيلى" + +msgid "Software management" +msgstr "التحكم ÙÙ‰ البرنامج التشغيلى" + +msgid "Software manager setup" +msgstr "" + +msgid "Software restore" +msgstr "إستعادة البرنامج التشغيلى" + +msgid "Software update" +msgstr "ترقية البرنامج التشغيلى" + +msgid "Softwaremanager information" +msgstr "" + +msgid "Some plugins are not available:\n" +msgstr "بعض البلج إنز غير متوÙر : \n" + +#, python-format +msgid "Sorry, %s has not been installed!" +msgstr "" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "" + +#, fuzzy +msgid "Sorry, no backups found!" +msgstr "عÙوا.. لم يتم العثور على أى نسخه إحتياطيه !" + +# +#, fuzzy +msgid "Sorry, no details available!" +msgstr "عÙوا ØŒ لا يوجد تÙاصيل متاحه !" + +#, fuzzy +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"المكان الذى تريد وضع النسخه الاحتياطيه Ùيه لا يمكن الكتابه عليه \n" +"من Ùضلك أختار مكان آخر." + +msgid "Sort" +msgstr "" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "تصني٠أبجدى" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +#, fuzzy +msgid "Sort time" +msgstr "تصني٠الوقت" + +# +msgid "Sound" +msgstr "صـوت" + +# +#, fuzzy +msgid "Sound carrier" +msgstr "حامل الصوت" + +msgid "Source request" +msgstr "" + +# +msgid "South" +msgstr "جنوب" + +# +msgid "Spanish" +msgstr "أسبانى" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +# +msgid "Split preview mode" +msgstr "تقسيم وضعية المعاينه" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "" + +#, fuzzy +msgid "Standard" +msgstr "قياسى" + +msgid "Standart list" +msgstr "" + +msgid "Standby" +msgstr "وضع الاستعداد" + +#, fuzzy +msgid "Standby / restart" +msgstr "وضع الاستعداد/إعاده التشغيل" + +msgid "Standby after current event" +msgstr "" + +#, python-format +msgid "Standby fan %d PWM" +msgstr "" + +# +#, fuzzy, python-format +msgid "Standby fan %d voltage" +msgstr "مروحه %d Ùولتيه" + +msgid "Standby in " +msgstr "" + +msgid "StandbyLED" +msgstr "" + +# +msgid "Start from the beginning" +msgstr "أبدأ من البدايه" + +msgid "Start offline decode" +msgstr "" + +# +msgid "Start recording?" +msgstr "أبـدأ التسجيل؟" + +# +msgid "Start test" +msgstr "أختبار البدأ" + +# +#, fuzzy +msgid "Start time" +msgstr "وقت البـدأ" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +#, fuzzy +msgid "Start timeshift" +msgstr "أبدأ تايم Ø´Ùت" + +msgid "Start with list screen" +msgstr "" + +msgid "Starting on" +msgstr "يبدأ ÙÙ‰" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +# +msgid "Step east" +msgstr "خطوه ناحية الشرق" + +# +msgid "Step west" +msgstr "خطوه ناحية الغري" + +msgid "Stepped east" +msgstr "" + +msgid "Stepped west" +msgstr "" + +# +msgid "Stop" +msgstr "إيقاÙ" + +#, fuzzy +msgid "Stop PiP" +msgstr "إيقا٠صوره داخل صوره" + +# +msgid "Stop current event and disable coming events" +msgstr "إيقا٠الحدث الحالى وتعطيل الاحداث القادمه" + +# +msgid "Stop current event but not coming events" +msgstr "إقا٠الحدث الحالى Ùقط وليس الاحداث القادمه" + +# +#, fuzzy +msgid "Stop entry" +msgstr "إيقا٠الاختبار" + +# +msgid "Stop playing this movie?" +msgstr "إيقا٠عرض هذا الÙيلم؟" + +msgid "Stop recording" +msgstr "" + +msgid "Stop recording and delete" +msgstr "" + +msgid "Stop service on return to movie list" +msgstr "" + +# +msgid "Stop test" +msgstr "إيقا٠الاختبار" + +msgid "Stop testing plane after # failed transponders" +msgstr "إيقا٠خطة الاختبار بعد # إرسال Ùاشل" + +msgid "Stop testing plane after # successful transponders" +msgstr "إيقا٠خطة الاختبار بعد # إرسال ناجح" + +msgid "Stop timer recording" +msgstr "" + +#, fuzzy +msgid "Stop timeshift" +msgstr "إيقا٠التايم Ø´Ùت" + +# +#, fuzzy +msgid "Stop timeshift?" +msgstr "إيقا٠التايم Ø´Ùت؟" + +msgid "Stopped" +msgstr "" + +msgid "Store at index" +msgstr "" + +msgid "Store position" +msgstr "تخزين الموقع" + +# +msgid "Stored position" +msgstr "الوضع المخزن" + +msgid "Stream" +msgstr "" + +msgid "Stream request" +msgstr "" + +msgid "Strongest position" +msgstr "" + +# +msgid "Subservice list..." +msgstr "قائمة الخدمات الÙرعيه..." + +# +msgid "Subservices" +msgstr "الخدمات الÙرعيه" + +msgid "Subtitle Quickmenu" +msgstr "" + +# +#, fuzzy +msgid "Subtitle alignment" +msgstr "إختيار العناوين الÙرعيه" + +msgid "Subtitle border width" +msgstr "" + +msgid "Subtitle delay when timing is bad" +msgstr "" + +msgid "Subtitle delay when timing lacks" +msgstr "" + +# +#, fuzzy +msgid "Subtitle font size" +msgstr "العناوين الÙرعيه" + +msgid "Subtitle language selection 1" +msgstr "" + +msgid "Subtitle language selection 2" +msgstr "" + +msgid "Subtitle language selection 3" +msgstr "" + +msgid "Subtitle language selection 4" +msgstr "" + +# +#, fuzzy +msgid "Subtitle position" +msgstr "إختيار العناوين الÙرعيه" + +# +msgid "Subtitle selection" +msgstr "إختيار العناوين الÙرعيه" + +msgid "Subtitle selection..." +msgstr "" + +msgid "Subtitle settings" +msgstr "" + +# +msgid "Subtitles" +msgstr "العناوين الÙرعيه" + +# +msgid "Sun" +msgstr "الاحد" + +# +msgid "Sunday" +msgstr "الاحد" + +#, fuzzy +msgid "Swap PiP and main picture" +msgstr "تحريك صوره داخل صوره الى الصوره الرئيسيه" + +# +#, fuzzy +msgid "Swap services" +msgstr "القنوات/الخدمات" + +# +msgid "Swedish" +msgstr "سويدى" + +msgid "Switch TV to correct input" +msgstr "" + +msgid "Switch between filelist/playlist" +msgstr "" + +msgid "Switch between normal mode and list mode" +msgstr "" + +msgid "Switch to HDMI in mode" +msgstr "" + +#, fuzzy +msgid "Switch to filelist" +msgstr "الانتقال الى قائمة الملÙات" + +msgid "Switch to next channel" +msgstr "" + +#, fuzzy +msgid "Switch to next channel in history" +msgstr "القناه التاليه ÙÙ‰ التاريخ" + +# +#, fuzzy +msgid "Switch to next sub service" +msgstr "الانتقال الى الخدمه الÙرعيه التاليه" + +#, fuzzy +msgid "Switch to playlist" +msgstr "الانتقال الى قائمه الاغانى" + +# +#, fuzzy +msgid "Switch to previous channel" +msgstr "الانتقال الى الÙرعيه السابقه" + +# +#, fuzzy +msgid "Switch to previous channel in history" +msgstr "القناه السابقه تاريخيا" + +# +#, fuzzy +msgid "Switch to previous sub service" +msgstr "الانتقال الى الÙرعيه السابقه" + +# +msgid "Switchable tuner types:" +msgstr "" + +msgid "Symbol rate" +msgstr "" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "" + +# +msgid "System" +msgstr "النـظام" + +# +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "" + +# +msgid "TS file is too large for ISO9660 level 1!" +msgstr "" + +msgid "TSID" +msgstr "" + +msgid "TV physical address report" +msgstr "" + +msgid "TXT PID" +msgstr "" + +msgid "Table of contents for collection" +msgstr "" + +msgid "Tags" +msgstr "شعارات" + +msgid "Teletext subtitle color" +msgstr "" + +#, fuzzy +msgid "Temperature and fan control" +msgstr "درجة الحراره والتحكم ÙÙ‰ المروحه" + +# +msgid "Terrestrial" +msgstr "" + +msgid "Terrestrial provider" +msgstr "مزود أرضى" + +msgid "Test DiSEqC settings" +msgstr "إختبار إعدادات الدايزك" + +# +msgid "Test mode" +msgstr "وضع الاختبار" + +msgid "Test the network configuration of your receiver.\n" +msgstr "" + +# +#, fuzzy +msgid "Test type" +msgstr "نوع الاختبار" + +#, fuzzy +msgid "Text color" +msgstr "لون النص" + +msgid "Thai" +msgstr "" + +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"شكرا لإستخدامك ناÙذة الاعدادات . \n" +"من Ùضلك أضغط مواÙÙ‚ للاستمرار ." + +#, fuzzy +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"شكرا لإستخدامك ناÙذة الاعدادات . \n" +"من Ùضلك أضغط مواÙÙ‚ للاستمرار ." + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "" + +msgid "The PIN code has been changed successfully." +msgstr "" + +msgid "The PIN codes you entered are different." +msgstr "" + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" + +msgid "The backup failed. Please choose a different backup location." +msgstr "Ùشل عمل نسخه إحتياطيه ØŒ من Ùضلك أختار مان آخر للنسخه الإحتياطيه ." + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" + +# +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"الدليل %s لا يمكن الكتابه Ùيه.\n" +" تأكد من إختيار دليل بديل يمكن الكتابه Ùيه" + +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"تم العثور على هذه الاجهزه:\n" +"\n" +"%s \n" +"\n" +"هل تريد كتابه شاحن الـusb على هذه العصا؟" + +# +msgid "The following files were found..." +msgstr "تم العثور على هذه الملÙات" + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "" + +#, fuzzy +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"ناÙذة إعدادات الشبكه غير مثبته \n" +"من Ùضلك قم بتثبيتها ." + +#, python-format +msgid "The path %s already exists." +msgstr "المسار %s موجود سلÙا" + +# +msgid "The pin code you entered is wrong." +msgstr "الرقم السرى الذى ادخلته خطأ" + +# +#, python-format +msgid "The results have been written to %s." +msgstr "" + +# +msgid "The sleep timer has been activated." +msgstr "تم تنشيط مؤقت النوم" + +# +msgid "The sleep timer has been disabled." +msgstr "تم تعطيل مؤقت النوم" + +#, fuzzy +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"إن إضاÙØ© التحكم ÙÙ‰ البرنامج التشغيلى غير مثبته Ù‘ \n" +"من Ùضلك ثبتها ." + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "" + +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "مل٠المؤقت (timers.xml) Ùاسد ولا يمكن تحميله" + +#, fuzzy +msgid "The user interface of your receiver is restarting" +msgstr "رجاء الانتظار.... جارى إعادة تشغيل الشبكه" + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"بلج إن الشبكه المحليه اللاسلكيه غير مثبت ! \n" +"من Ùضلك ثبته أولا ثم أختار ماذا تريد أن تÙعل بعد ذك ." + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"بلج إن الشبكه المحليه اللاسلكيه غير مثبت ! \n" +"من Ùضلك ثبته" + +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "من خلال هذه الناÙذه يمكنك عمل نسخه إحتياطيه للإعدادات الحاليه . هل تريد عمل نسخه إحتياطيه الان ØŸ" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "" + +msgid "The wizard is finished now." +msgstr "إنتهاء ناÙذة الاعدادات الان ." + +msgid "There are at least " +msgstr "يوجد على الأقل" + +#, fuzzy, python-format +msgid "There are at least %s updates available." +msgstr "لا يوجد تحديثات متاحه ." + +# +msgid "There are currently no outstanding actions." +msgstr "" + +msgid "There are no updates available." +msgstr "لا يوجد تحديثات متاحه ." + +msgid "There is no signal to lock on !" +msgstr "" + +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"قد لا يكون هناك مساحه كاÙيه على القسم المختار . \n" +"هل تريد Ùعلا الاستمرار ØŸ" + +# +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "" + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" + +msgid "This plugin is installed." +msgstr "هذا البلج إن مثبت ." + +msgid "This plugin is not installed." +msgstr "هذا البلج إن غير مثبت ." + +msgid "This plugin will be installed." +msgstr "سيتم تثبيت هذا البلج إن ." + +msgid "This plugin will be removed." +msgstr "سيتم حذ٠هذا البلج إن ." + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "" + +#, fuzzy +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"هذه التجربه ستÙحص اسم خادم مكون :\n" +"إذا جاءتك رسالة \"غير مؤكد\" : \n" +"-تأكد من إعدادات DHCP وضبط المحول والكابل \n" +"-إذا كنت قد قمت بتكوين أسم الخادم يدويا ØŒ من Ùضلك تأكد من المدخلات ÙÙ‰ خانة اسم الخادم ÙÙ‰ التكوين" + +#, fuzzy +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"هذه التجربه ستحدد ما إذا كان كابل الشبكه متصل بمحول الشبكه \n" +"إذا جاءتك رسالة \"غير متصل\" : \n" +"-تاكد من أن كابل الشبكه مشبوك \n" +"-تأكد أن الكابل غير مقطوع" + +#, fuzzy +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"هذه التجربه ستحدد العثور على IP صالح ÙÙ‰ محول الشبكه المحليه. \n" +"إذا جاءتك رسالة :غير مؤكد: : \n" +"-لم يتم العثور على IP صالح . \n" +"-تأكد من إعدادات DHCP وضبط المحول والكابل" + +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" + +#, fuzzy +msgid "This test detects your configured LAN adapter." +msgstr "هذه التجربه تكتش٠وجود محول شبكه محليه مكونه ." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" + +# +msgid "Three" +msgstr "ثلاثه" + +# +msgid "Threshold" +msgstr "" + +# +msgid "Thu" +msgstr "" + +# +msgid "Thumbnails" +msgstr "" + +# +msgid "Thursday" +msgstr "الخميس" + +# +msgid "Time" +msgstr "وقت" + +# +#, fuzzy +msgid "Time scale" +msgstr "إختيار المؤقت" + +# +msgid "Timer" +msgstr "المؤقت" + +msgid "Timer Overview" +msgstr "" + +# +#, fuzzy +msgid "Timer edit" +msgstr "تحرير المؤقت" + +# +#, fuzzy +msgid "Timer editor" +msgstr "تحرير المؤقت" + +# +msgid "Timer entry" +msgstr "إدخال المؤقت" + +msgid "Timer log" +msgstr "سجل المؤقت" + +# +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" + +# +#, fuzzy +msgid "Timer overview" +msgstr "إدخال المؤقت" + +# +#, fuzzy +msgid "Timer recording location" +msgstr "موضع تسجيل المؤقت" + +# +msgid "Timer sanity error" +msgstr "خطأ إستقامة المؤقت" + +# +msgid "Timer selection" +msgstr "إختيار المؤقت" + +msgid "Timer selection..." +msgstr "" + +# +#, fuzzy +msgid "Timer type" +msgstr "نوع المؤقت" + +# +msgid "Timeshift" +msgstr "تحول الوقت" + +msgid "Timeshift Live" +msgstr "" + +# +msgid "Timeshift location" +msgstr "موقع تحول الوقت" + +# +msgid "Timeshift not possible!" +msgstr "تحول الوقت غير ممكن" + +# +msgid "Timezone" +msgstr "منطقه الوقت" + +# +msgid "Title" +msgstr "عنوان" + +# +msgid "Title properties" +msgstr "خصائص العنوان" + +# +msgid "Titleset mode" +msgstr "" + +msgid "To audio selection" +msgstr "" + +msgid "To subtitle selection" +msgstr "" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" + +# +msgid "Today" +msgstr "اليوم" + +msgid "Toggle a cut mark at the current position" +msgstr "" + +# +#, fuzzy +msgid "Tone amplitude" +msgstr "مدى النغمه" + +# +msgid "Tone mode" +msgstr "وضعية النغمه" + +# +msgid "Toneburst" +msgstr "نغمة إنÙجار" + +# +msgid "Toneburst A/B" +msgstr "Toneburst A/B" + +msgid "Top and bottom" +msgstr "" + +# +msgid "Track" +msgstr "مسار" + +# +msgid "Translation" +msgstr "ترجمه" + +# +msgid "Translation:" +msgstr "ترجمه:" + +msgid "Translations" +msgstr "" + +# +msgid "Transmission mode" +msgstr "وضع النقل" + +# +msgid "Transponder" +msgstr "التردد" + +# +#, fuzzy +msgid "Transponder type" +msgstr "نوع التردد" + +msgid "Trash can" +msgstr "" + +# +msgid "Tries left:" +msgstr "" + +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "محاولة إيجاد ترددات عامله ÙÙ‰ كابل الشبكه. رجاء الانتظار..." + +# +msgid "Trying to download a new packetlist. Please wait..." +msgstr "" + +# +msgid "Tue" +msgstr "الثلاثاء" + +# +msgid "Tuesday" +msgstr "الثلاثاء" + +msgid "Tune" +msgstr "توليÙ" + +#, fuzzy +msgid "Tune and focus" +msgstr "حالة الموالÙ" + +msgid "Tune failed!" +msgstr "Ùشل التوليÙ" + +# +msgid "Tuner" +msgstr "الموالÙ" + +msgid "Tuner configuration" +msgstr "تهيئة الموالÙ" + +msgid "Tuner is not supported" +msgstr "" + +#, fuzzy +msgid "Tuner slot" +msgstr "موضع الموالÙ" + +msgid "Tuner status" +msgstr "حالة الموالÙ" + +#, fuzzy, python-format +msgid "Tuner status %s" +msgstr "حالة الموالÙ" + +msgid "Tuner type" +msgstr "نوع الموالÙ" + +msgid "Turkish" +msgstr "تركى" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +# +msgid "Two" +msgstr "اثنين" + +# +msgid "Type" +msgstr "نوع" + +# +msgid "Type of scan" +msgstr "نوع البحث" + +# +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "" + +msgid "USB stick" +msgstr "" + +# +msgid "USB stick wizard" +msgstr "" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +msgid "Undo install" +msgstr "تراجع عن التثبيت" + +msgid "Undo uninstall" +msgstr "تراجع عن الغاء التثبيت" + +msgid "Unencrypted" +msgstr "" + +# +msgid "UnhandledKey" +msgstr "" + +# +msgid "Unicable" +msgstr "" + +# +msgid "Unicable LNB" +msgstr "" + +# +msgid "Unicable Martix" +msgstr "" + +msgid "Uninstall" +msgstr "تراجع عن التثبيت" + +# +msgid "Universal LNB" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Unmount" +msgstr "" + +msgid "Unsupported" +msgstr "غير مدعم" + +# +msgid "Update" +msgstr "تحديث" + +msgid "Update and ask to reboot" +msgstr "" + +msgid "Update and reboot (recommended)" +msgstr "" + +#, fuzzy +msgid "Update channel list only" +msgstr "القناه التاليه ÙÙ‰ التاريخ" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "" + +msgid "Update has completed." +msgstr "" + +# +msgid "Updatefeed not available." +msgstr "تغذية التحديث غير متاحه" + +# +msgid "Updating software catalog" +msgstr "جارى تحديث Ùهرس البرنامج التشغيلى" + +# +msgid "Upgrading" +msgstr "جارى الترقيه" + +# +msgid "Use" +msgstr "استخدم" + +# +msgid "Use DHCP" +msgstr "استخدمDHCP" + +msgid "Use EIT EPG information when it is available." +msgstr "" + +msgid "Use FreeSat EPG information when it is available." +msgstr "" + +msgid "Use MHW EPG information when it is available." +msgstr "" + +msgid "Use Netmed EPG information when it is available." +msgstr "" + +msgid "Use TV remote control" +msgstr "" + +# +#, fuzzy +msgid "Use USALS for this sat" +msgstr "USALS für diesen Sat benutzen" + +msgid "Use ViaSat EPG information when it is available." +msgstr "" + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +# +msgid "Use a gateway" +msgstr "" + +msgid "Use fastscan channel names" +msgstr "" + +msgid "Use fastscan channel numbering" +msgstr "" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "" + +#, fuzzy +msgid "Use interface" +msgstr "استخدم الواجهه" + +msgid "Use official channel numbering" +msgstr "" + +msgid "Use original DVB subtitle position" +msgstr "" + +msgid "Use original teletext position" +msgstr "" + +msgid "Use power measurement" +msgstr "استخدم قـياس الطاقه" + +#, fuzzy +msgid "Use the network wizard to configure selected network adapter" +msgstr "استخدم ناÙذة الأعدادت لتهيئة محول الشبكه المختار" + +#, fuzzy +msgid "Use the network wizard to configure your network\n" +msgstr "أستخدم ناÙذة الاعدادات لتهيئة الشبكه \n" + +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "اضغط المÙتاح العلوى أو السÙلى من الريموت وحدد إختيارك ثم أضغط مواÙÙ‚" + +#, fuzzy +msgid "Use the wizard to set up basic features" +msgstr "استخدم ناÙذة الاعدادات لعمل الاعدادات الاساسيه " + +#, fuzzy +msgid "Use these input device settings?" +msgstr "استخدام إعدادات تعزيز الÙيديو هذه ØŸ" + +#, fuzzy +msgid "Use these settings?" +msgstr "إستعادة إعدادات النظام" + +msgid "Use this video enhancement settings?" +msgstr "استخدام إعدادات تعزيز الÙيديو هذه ØŸ" + +#, fuzzy +msgid "Use trash can in movielist" +msgstr "العوده الى قائمة الأÙلام" + +# +msgid "Used service scan type" +msgstr "نوع البحث عن القنوات المستخدم" + +msgid "User - bouquets" +msgstr "" + +# +msgid "User defined" +msgstr "يحددها المستخدم" + +msgid "User defined transponder" +msgstr "" + +#, fuzzy +msgid "User interface" +msgstr "استخدم الواجهه" + +# +msgid "Username" +msgstr "اسم المستخدم" + +#, python-format +msgid "Using LNB %d" +msgstr "" + +msgid "Using fixed address" +msgstr "" + +#, python-format +msgid "Using tuner %s" +msgstr "" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "" + +# +msgid "VCR scart" +msgstr "وصله Ùيديو كاسيت" + +# +msgid "VMGM (intro trailer)" +msgstr "" + +msgid "Vertical" +msgstr "رأسى" + +msgid "Vertical turning speed" +msgstr "" + +msgid "Video PID" +msgstr "" + +msgid "Video enhancement preview" +msgstr "معاينة تعزيز الÙيديو" + +msgid "Video enhancement settings" +msgstr "إعدادات تعزيز الÙيديو" + +msgid "Video enhancement setup" +msgstr "ضبط تعزيز الÙيديو" + +#, fuzzy +msgid "Video fine tuning" +msgstr "الضبط الدقيق للÙيديو" + +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" + +msgid "Video mode selection." +msgstr "إختيار وضعية الÙيديو." + +# +#, fuzzy +msgid "Video output" +msgstr "مخرج الÙيديو" + +# +#, fuzzy +msgid "Video setup" +msgstr "ضبط الÙيديو" + +# +#, fuzzy +msgid "Video wizard" +msgstr "ناÙذة إعدادات الÙيديو" + +#, python-format +msgid "Video: %s fps" +msgstr "" + +msgid "VideoMode" +msgstr "" + +msgid "Videocodec" +msgstr "" + +msgid "Videoformat" +msgstr "" + +msgid "Videosize" +msgstr "" + +# +msgid "View Rass interactive..." +msgstr "" + +# +msgid "View details" +msgstr "مشاهدة تÙاصيل" + +# +msgid "View list of available " +msgstr "" + +# +msgid "View list of available CommonInterface extensions" +msgstr "مشاهدة قائمه بإضاÙات وحدة التحكم المشترك" + +# +msgid "View list of available EPG extensions." +msgstr "" + +msgid "View list of available Satellite equipment extensions." +msgstr "شاهد قائمه بالاضاÙات المتاحه لمعدات القمر." + +msgid "View list of available communication extensions." +msgstr "شاهد قائمه بإلاضاÙات المتاحه للاتصال." + +msgid "View list of available default settings" +msgstr "شاهد قائمه بالاعدادات الاÙتراضيه المتاحه" + +#, fuzzy +msgid "View list of available display and userinterface extensions." +msgstr "شاهد قائمه يالاضاÙت المتاحه للعرض وواجهة المستخدم." + +msgid "View list of available multimedia extensions." +msgstr "شاهد قائمه بإضاÙات الوسائط المتعدده المتاحه" + +msgid "View list of available networking extensions" +msgstr "شاهد قائمه بإضاÙات الشبكه المتاحه" + +msgid "View list of available recording extensions" +msgstr "شاهد قائمه بإضاÙات التسجيل المتاحه" + +msgid "View list of available skins" +msgstr "شاهد قائمه بالجلد المتاح" + +msgid "View list of available software extensions" +msgstr "شاهد قائمه بإضاÙات البرنامج التشغيلى المتاحه" + +msgid "View list of available system extensions" +msgstr "شاهد قائمه بإضاÙات النظام المتاحه" + +# +#, fuzzy +msgid "View photos..." +msgstr "مشاهدة صور..." + +# +msgid "View teletext..." +msgstr "" + +# +#, fuzzy +msgid "View video CD..." +msgstr "مشاهدة Ùيديو سى دى" + +# +#, fuzzy +msgid "Virtual keyboard" +msgstr "لوحة Ù…Ùاتيح تخيليه" + +# +msgid "Voltage mode" +msgstr "وضعيه الÙولت" + +# +msgid "Volume" +msgstr "درجه الصوت" + +# +msgid "W" +msgstr "" + +# +msgid "WEP" +msgstr "" + +msgid "WLAN connection" +msgstr "إتصال شبكه واسعه" + +# +msgid "WPA" +msgstr "WPA" + +# +msgid "WPA or WPA2" +msgstr "WPA أو WPA2" + +# +msgid "WPA2" +msgstr "WPA2" + +# +msgid "WSS on 4:3" +msgstr "" + +# +msgid "Waiting" +msgstr "جارى الانتظار" + +msgid "Waiting for mount" +msgstr "" + +msgid "Waiting for partition" +msgstr "" + +msgid "Wakeup" +msgstr "" + +msgid "Wakeup TV from standby" +msgstr "" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "" + +msgid "Wakeup signal from TV" +msgstr "" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "" + +# +#, fuzzy +msgid "Watch movies..." +msgstr "عرض الاÙلام المسجله" + +#, fuzzy +msgid "Watch recordings..." +msgstr "جارى التسجيل....." + +# +msgid "Wed" +msgstr "الاربعاء" + +# +msgid "Wednesday" +msgstr "الاربعاء" + +# +msgid "Weekday" +msgstr "يوم الاسبوع" + +msgid "Weighted position" +msgstr "" + +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" + +# +msgid "Welcome..." +msgstr "مرحبا..." + +# +msgid "West" +msgstr "غرب" + +msgid "West limit set" +msgstr "" + +# +msgid "What do you want to scan?" +msgstr "ماذا تريد ان تبحث ØŸ" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "" + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "" + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "" + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "" + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "" + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "" + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "" + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "" + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "" + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "" + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "" + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "" + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "" + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "" + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "" + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "" + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "" + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "" + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "" + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "" + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "" + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "" + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "" + +msgid "When enabled, number markers will be hiden." +msgstr "" + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "" + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "" + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "" + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "" + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "" + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "" + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "" + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "" + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "" + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "" + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "" + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "" + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "" + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "" + +#, fuzzy +msgid "When enabled, use DHCP for the IP configuration." +msgstr "Ùتح تكوين أسم الخادم" + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "" + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "" + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "" + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "" + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "" + +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"عند العوده الى ضبط المصنع ستÙقد كل معلومات الضبط \n" +"(بما ÙÙ‰ ذلك الباقات والقنوات ومعلومات القمر...)\n" +"بعد الانتهاء من العوده الى ضبط المصنع سيتم عمل إعادة تشغيل اتوماتيكيا للرسيÙر !\n" +"\n" +"هل تريد Ùعلا العوده الى ضبط المصنع ØŸ" + +msgid "Where do you want to backup your settings?" +msgstr "هل تريد Ùعلا عمل نسخه إحتياطيه للاعدادات ØŸ" + +# +msgid "Where to save temporary timeshift recordings?" +msgstr "أين تحÙظ تسجيلات التايم Ø´Ùت المؤقته؟" + +msgid "Wireless LAN" +msgstr "شبكه محليه لا سلكيه" + +#, fuzzy +msgid "Wireless network" +msgstr "شبكه لا سلكيه" + +#, fuzzy +msgid "Wireless network configuration..." +msgstr "تكوين الشبكه" + +msgid "Wireless network connection setup" +msgstr "" + +msgid "Wireless network connection setup." +msgstr "" + +msgid "Wireless network state" +msgstr "" + +msgid "With popup" +msgstr "" + +msgid "Without popup" +msgstr "" + +msgid "Would you like to install a softcam?" +msgstr "" + +msgid "Write error while recording. Disk full?\n" +msgstr "خطأ اثناء التسجيل. القرص ممتلئ ØŸ \n" + +msgid "Write failed!" +msgstr "Ùشل الكتابه !" + +msgid "YPbPr" +msgstr "YPbPr" + +msgid "Year" +msgstr "عام" + +msgid "Yellow DVB subtitles" +msgstr "" + +# +msgid "Yes" +msgstr "نعم" + +msgid "Yes and save" +msgstr "" + +msgid "Yes and save in movie dir" +msgstr "" + +msgid "Yes to all" +msgstr "نعم للجميع" + +msgid "Yes, always" +msgstr "" + +msgid "Yes, and delete this movie" +msgstr "نعم، وامسح هذا الÙيلم" + +# +msgid "Yes, backup my settings!" +msgstr "نعم ØŒ أعمل نسخه إحتياطيه للاعدادات" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +msgid "Yes, do a manual scan now" +msgstr "نعم، أعمل بحث يدوى الان" + +msgid "Yes, do an automatic scan now" +msgstr "نعم، أعمل بحث آالى الان" + +msgid "Yes, do another manual scan now" +msgstr "نعم، أعمل بحث يدوى آخر الان" + +msgid "Yes, perform a shutdown now." +msgstr "نعم أغلق الان." + +msgid "Yes, restore the settings now" +msgstr "نعم، أستعد الاعدادات الان" + +msgid "Yes, returning to movie list" +msgstr "نعم، العوده الى قائمة الاÙلام" + +msgid "Yesterday" +msgstr "" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" + +msgid "You can cancel the installation." +msgstr "تستطيع إلغاء التثبيت" + +msgid "You can cancel the removal." +msgstr "تستطيع إلغاء الحذÙ" + +msgid "You can continue watching TV etc. while this is running." +msgstr "" + +msgid "You can install this plugin." +msgstr "تستطيع تثبيت هذا البلج إن" + +msgid "You can only burn receiver recordings!" +msgstr "" + +msgid "You can remove this plugin." +msgstr "تستطيع حذ٠هذا البلج إن." + +# +msgid "You cannot delete this!" +msgstr "لايمكنك مسح هذه !" + +msgid "You didn't select a channel to record from." +msgstr "" + +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "إذا أخترت عمل نسخه إحتياطيه للاعدادات ØŒ من Ùضلك أضغط مواÙÙ‚ اتبدأ النسخه الإحتياطيه الان" + +# +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "" + +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "لقد أخترت أن تستعيد الاعدادات . سيتم إعادة تشغيل الاينجما2 بعد الاستعاده .أضغط مواÙÙ‚ لتبدأ الاستعاده الان ." + +#, python-format +msgid "You have to wait %s!" +msgstr "يجب أن تنتظر %s !" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" + +msgid "You system does not support ext4" +msgstr "" + +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "نجاح عمل نسخه إحتياطيه . سو٠نشرح لك طريقة الترقيه الان." + +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "هذه المجموعه تزيد عن حجم وسيط ذو طبقه واحده. أنت تحتاج الى دى ÙÙ‰ دى ثنائى الطبقه خالى!" + +msgid "Your current collection will get lost!" +msgstr "سو٠تÙقد المجموعه الحاليه !" + +# +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"الاتصال بالانترنت لا يعمل ! \n" +"من Ùضلك أختار ماذا تريد أن تÙعل بعد ذلك." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "" + +msgid "Your network configuration has been activated." +msgstr "تم تنشيط تكوين الشبكه" + +msgid "Your receiver does not have an internet connection" +msgstr "" + +#, fuzzy +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"الدريم بوكس جاهز للاستخدام الان.\n" +"\n" +"الاتصال بالانترنت يعمل الان.\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" + +msgid "Your receiver is rebooting" +msgstr "" + +msgid "Your receiver is shutting down" +msgstr "" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "" + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "" + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "" + +msgid "Your receiver will got to standby due to inactivity." +msgstr "" + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "" + +# +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" + +msgid "Zap" +msgstr "" + +# +msgid "Zap back to previously tuned service?" +msgstr "هل تريد التنقل الى أخر قناه مولÙÙ‡ ØŸ" + +# +msgid "Zap back to service before positioner setup?" +msgstr "هل تريد التنقل الى القناه الاخيره قبل ضبط الموتور ØŸ" + +# +msgid "Zap back to service before tuner setup?" +msgstr "هل تريد التنقل الىالقناه الخيره قبل ضبط الموال٠؟" + +msgid "Zap focus to Picture in Picture" +msgstr "" + +msgid "Zap focus to main screen" +msgstr "" + +msgid "Zap mode" +msgstr "" + +msgid "Zap to selected channel" +msgstr "" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "" + +msgid "[alternative edit]" +msgstr "[تحرير البديل]" + +msgid "[bouquet edit]" +msgstr "[تحرير الباقه]" + +msgid "[favourite edit]" +msgstr "[تحرير المÙضله]" + +# +msgid "[move mode]" +msgstr "وضع التحريك" + +# +msgid "a gui to assign services/providers to common interface modules" +msgstr "" + +# +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "" + +msgid "abort alternatives edit" +msgstr "إلغاء تحرير البدائل" + +# +msgid "abort bouquet edit" +msgstr "الغاء تحرير الباقه" + +# +msgid "abort favourites edit" +msgstr "الغاء تحرير المÙضله" + +msgid "about to start" +msgstr "على وشك البدأ" + +msgid "activate network adapter configuration" +msgstr "تنشيط تكوين محول الشبكه" + +msgid "add alternatives" +msgstr "إضاÙØ© بدائل" + +msgid "add bookmark" +msgstr "إضاÙØ© مرجعيه" + +msgid "add bouquet" +msgstr "إضاÙØ© باقه" + +msgid "add marker" +msgstr "إضاÙØ© علامه" + +# +msgid "add service to bouquet" +msgstr "إضاÙÙ‡ القناه الى الباقه" + +# +msgid "add service to favourites" +msgstr "إضاÙÙ‡ القناه الى المÙضله" + +msgid "add to parental protection" +msgstr "أض٠حمايه أبويه" + +msgid "adult movie/drama" +msgstr "" + +msgid "advanced" +msgstr "متقدم" + +msgid "adventure/western/war" +msgstr "" + +msgid "advertisement/shopping" +msgstr "" + +msgid "after " +msgstr "" + +#, fuzzy +msgid "alphabetic" +msgstr "ترنيب أبجدى" + +msgid "alphabetic reverse" +msgstr "" + +msgid "alternative" +msgstr "" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "" + +msgid "arts/culture magazine" +msgstr "" + +msgid "athletics" +msgstr "" + +# +msgid "audio tracks" +msgstr "مسارات الصوت" + +msgid "auto" +msgstr "تلقائى" + +#, fuzzy +msgid "automatic" +msgstr "آلى" + +# +msgid "back" +msgstr "للخلÙ" + +msgid "background image" +msgstr "صورة الخلÙيه" + +msgid "ballet" +msgstr "" + +#, python-format +msgid "bc%s" +msgstr "" + +msgid "better" +msgstr "Ø£Ùضل" + +msgid "black" +msgstr "أسود" + +msgid "black & white" +msgstr "" + +msgid "blacklist" +msgstr "القائمه السوداء" + +msgid "blue" +msgstr "أزرق" + +msgid "broadcasting/press" +msgstr "" + +#, fuzzy +msgid "by date" +msgstr "تصني٠حسب التاريخ" + +msgid "cartoon/puppets" +msgstr "" + +msgid "center" +msgstr "" + +msgid "centered" +msgstr "" + +msgid "centered, wrapped" +msgstr "" + +# +msgid "chapters" +msgstr "Ùصول" + +msgid "childrens's/youth program (general)" +msgstr "" + +# +msgid "circular left" +msgstr "دائرى يسار" + +# +msgid "circular right" +msgstr "دائرى يمين" + +msgid "comedy" +msgstr "" + +# +msgid "complex" +msgstr "مركب" + +# +msgid "config menu" +msgstr "قائمه الضبط" + +msgid "confirmed" +msgstr "تم التأكيد" + +msgid "connected" +msgstr "تم الاتصال" + +msgid "continue" +msgstr "استمرار" + +msgid "cooking" +msgstr "" + +msgid "copy to bouquets" +msgstr "نسخ الى الباقات" + +msgid "create directory" +msgstr "إنشاء دليل" + +#, python-format +msgid "currently installed image: %s" +msgstr "" + +# +msgid "daily" +msgstr "يومى" + +# +msgid "day" +msgstr "يوم" + +#, fuzzy +msgid "default" +msgstr "الاÙتراضى" + +msgid "delete cut" +msgstr "مسح القطع" + +msgid "delete..." +msgstr "" + +msgid "descramble and record ecm" +msgstr "" + +msgid "detective/thriller" +msgstr "" + +msgid "disable" +msgstr "تعطيل" + +msgid "disable move mode" +msgstr "تعطيل وضع التحريك" + +msgid "disabled" +msgstr "تم التعطيل" + +msgid "disconnected" +msgstr "تم الÙصل" + +msgid "discussion/interview/debate" +msgstr "" + +msgid "do nothing" +msgstr " لا تÙعل شيئ" + +msgid "documentary" +msgstr "" + +msgid "don't descramble, record ecm" +msgstr "" + +msgid "done!" +msgstr "تم !" + +msgid "east" +msgstr "" + +msgid "economics/social advisory" +msgstr "" + +msgid "edit alternatives" +msgstr "تحرير البدائل" + +msgid "education/science/factual topics (general)" +msgstr "" + +msgid "empty" +msgstr "Ùارغ" + +msgid "enable" +msgstr "تÙعيل" + +# +msgid "enable bouquet edit" +msgstr "تÙعيل تحرير الباقه" + +# +msgid "enable favourite edit" +msgstr "تÙعيل تحرير المÙضله" + +# +msgid "enable move mode" +msgstr "تÙعيل وضع التحريك" + +msgid "enabled" +msgstr "تم النÙعيل" + +msgid "end alternatives edit" +msgstr "إنهاء تحرير البدائل" + +# +msgid "end bouquet edit" +msgstr "إنتهاء تحرير الباقه" + +msgid "end cut here" +msgstr "إنتهاء القطع هنا" + +# +msgid "end favourites edit" +msgstr "إنتهاء تحرير المÙضله" + +msgid "entertainment (10-16 year old)" +msgstr "" + +msgid "entertainment (6-14 year old)" +msgstr "" + +msgid "equal to" +msgstr "مساوى لـــ" + +msgid "equestrian" +msgstr "" + +msgid "exit DVD player or return to file browser" +msgstr "الخروج من مشغل الدى ÙÙ‰ دى أو العوده الى متصÙØ­ الملÙات" + +msgid "exit movielist" +msgstr "" + +msgid "exit network adapter configuration" +msgstr "الخروج من تهيئة محول الشبكه" + +msgid "exit networkadapter setup menu" +msgstr "الخروج من قائمه إعداد الشبكه" + +msgid "experimental film/video" +msgstr "" + +msgid "false" +msgstr "" + +msgid "fashion" +msgstr "" + +# +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "" + +msgid "filename" +msgstr "اسم الملÙ" + +msgid "film/cinema" +msgstr "" + +msgid "fine arts" +msgstr "" + +msgid "fine-tune your display" +msgstr "التولي٠الدقيق للعرض" + +msgid "fitness & health" +msgstr "" + +#, fuzzy +msgid "flat alphabetic" +msgstr "ترنيب أبجدى" + +#, fuzzy +msgid "flat alphabetic reverse" +msgstr "ترنيب أبجدى" + +msgid "folk/traditional music" +msgstr "" + +msgid "football/soccer" +msgstr "" + +msgid "foreign countries/expeditions" +msgstr "" + +# +msgid "forward to the next chapter" +msgstr "" + +# +msgid "free" +msgstr "" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "" + +msgid "game show/quiz/contest" +msgstr "" + +msgid "gardening" +msgstr "" + +msgid "go to deep standby" +msgstr "الذهاب الى وضع الاستعداد العميق" + +msgid "go to standby" +msgstr "الذهاب لوضع الاستعداد" + +# +msgid "grab this frame as bitmap" +msgstr "" + +msgid "green" +msgstr "أخضر" + +msgid "handicraft" +msgstr "" + +msgid "height" +msgstr "" + +msgid "help..." +msgstr "مساعده..." + +msgid "horizontal" +msgstr "Ø£Ùقى" + +msgid "information/education/school program" +msgstr "" + +# +msgid "init module" +msgstr "تÙعيل الكـام" + +# +msgid "init modules" +msgstr "" + +msgid "insert mark here" +msgstr "ضع علامه هنا" + +msgid "invalid type" +msgstr "" + +msgid "jazz" +msgstr "" + +msgid "jump back to the previous title" +msgstr "الانتقال خلÙا للعنوان السابق" + +msgid "jump forward to the next title" +msgstr "الانتقال أماما للعنوان التالى" + +msgid "languages" +msgstr "" + +# +msgid "leave movie player..." +msgstr "اترك عارض الاÙلام .." + +msgid "left" +msgstr "يسار" + +msgid "left, wrapped" +msgstr "" + +msgid "leisure hobbies (general)" +msgstr "" + +msgid "length" +msgstr "طول" + +msgid "limit ..., aborting !" +msgstr "" + +# +msgid "list style compact" +msgstr "" + +# +msgid "list style compact with description" +msgstr "" + +# +msgid "list style default" +msgstr "" + +# +msgid "list style single line" +msgstr "" + +msgid "literature" +msgstr "" + +msgid "live broadcast" +msgstr "" + +msgid "locked" +msgstr "مغلق" + +# +msgid "loopthrough to" +msgstr "" + +msgid "magazines/reports/documentary" +msgstr "" + +# +msgid "manual" +msgstr "يدوى" + +msgid "martial sports" +msgstr "" + +msgid "medicine/physiology/psychology" +msgstr "" + +msgid "menu" +msgstr "قائمه" + +msgid "mins" +msgstr "دقائق" + +msgid "minutes" +msgstr "دقائق" + +msgid "month" +msgstr "شهر" + +msgid "motor sport" +msgstr "" + +msgid "motoring" +msgstr "" + +msgid "move down to last entry" +msgstr "الانتقال لأسÙÙ„ الى البند الاخير" + +msgid "move down to next entry" +msgstr "الانتقال لاسÙÙ„ الى البند التالى" + +msgid "move up to first entry" +msgstr "الانتقال لاعلى الى البند الاول" + +msgid "move up to previous entry" +msgstr "الانتقال لاعلى الى البند السابق" + +msgid "movie/drama (general)" +msgstr "" + +msgid "multinorm" +msgstr "متعدد المعايير" + +msgid "music/ballet/dance (general)" +msgstr "" + +msgid "musical/opera" +msgstr "" + +msgid "nature/animals/environment" +msgstr "" + +msgid "never" +msgstr "مطلقا" + +msgid "new media" +msgstr "" + +msgid "news magazine" +msgstr "" + +msgid "news/current affairs (general)" +msgstr "" + +msgid "news/weather report" +msgstr "" + +# +msgid "no" +msgstr "لا." + +# +msgid "no CAId selected" +msgstr "" + +# +msgid "no CI slots found" +msgstr "" + +# +msgid "no module found" +msgstr "لم يتم العثور على كامه" + +msgid "no storage devices found" +msgstr "" + +# +msgid "none" +msgstr "لا احد" + +msgid "normal" +msgstr "" + +msgid "not configured" +msgstr "غير مكونه" + +msgid "not locked" +msgstr "غير مغلقه" + +msgid "not supported" +msgstr "" + +msgid "not used" +msgstr "غير مستخدمه" + +msgid "nothing connected" +msgstr "لا شيئ متصل" + +msgid "of a DUAL layer medium used." +msgstr "من وسيط ثنائى الطبقه مستخدم" + +msgid "of a SINGLE layer medium used." +msgstr "من وسيط أحادى الطبقه مستخدم" + +# +msgid "off" +msgstr "لا يعمـل!" + +msgid "offset is" +msgstr "" + +# +msgid "on" +msgstr "يعمل!" + +msgid "on READ ONLY medium." +msgstr "على وسيط قراءه Ùقط" + +msgid "on end of movie" +msgstr "" + +# +msgid "once" +msgstr "مره واحده" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +msgid "open nameserver configuration" +msgstr "Ùتح تكوين أسم الخادم" + +msgid "original" +msgstr "" + +msgid "original language" +msgstr "" + +msgid "pass" +msgstr "مرور" + +msgid "performing arts" +msgstr "" + +msgid "play as picture in picture" +msgstr "" + +msgid "play in mainwindow" +msgstr "" + +msgid "please press OK when ready" +msgstr "من Ùضلك أضغط مواÙÙ‚ عندما تكون مستعد" + +msgid "please wait, loading picture..." +msgstr "رجاء الانتظار... جارى تحميل الصوره" + +msgid "popular culture/traditional arts" +msgstr "" + +msgid "pre-school children's program" +msgstr "" + +msgid "receiver software because updates are available." +msgstr "" + +msgid "record" +msgstr "تسجيل" + +msgid "recording..." +msgstr "جارى التسجيل....." + +msgid "red" +msgstr "أحمر" + +msgid "religion" +msgstr "" + +msgid "remarkable people" +msgstr "" + +# +msgid "remove after this position" +msgstr "حذ٠بعد هذا المكان" + +msgid "remove all alternatives" +msgstr "حذ٠كل البدائل" + +msgid "remove all new found flags" +msgstr "أحذ٠كل علامات وجد حديثا" + +# +msgid "remove before this position" +msgstr "حذ٠قبل هذا المكان" + +# +msgid "remove bookmark" +msgstr "حذ٠المرجعيه" + +msgid "remove directory" +msgstr "حذ٠الدليل" + +msgid "remove entry" +msgstr "حذÙ" + +msgid "remove from parental protection" +msgstr "حذ٠من الحمايه الابويه" + +# +msgid "remove new found flag" +msgstr "حذ٠الاعلام التى وجدت حديثا" + +msgid "remove selected satellite" +msgstr "حذ٠القمر المختار" + +msgid "remove this mark" +msgstr "حذ٠هذه العلامه" + +msgid "rename entry" +msgstr "" + +msgid "repeat playlist" +msgstr "إعادة قائمة الاغانى" + +# +msgid "repeated" +msgstr "متكرر" + +msgid "reverse by date" +msgstr "" + +msgid "rewind to the previous chapter" +msgstr "عوده للÙصل السابق" + +msgid "right" +msgstr "يمين" + +msgid "right, wrapped" +msgstr "" + +msgid "rock/pop" +msgstr "" + +msgid "romance" +msgstr "" + +msgid "save last directory on exit" +msgstr "Ø­Ùظ الدليل عند الخروج" + +msgid "save playlist on exit" +msgstr "Ø­Ùظ قائمة العرض عند الخروج" + +# +msgid "scan state" +msgstr "حاله البحث" + +msgid "science fiction/fantasy/horror" +msgstr "" + +# +msgid "second cable of motorized LNB" +msgstr "" + +msgid "seconds" +msgstr "ثوانى" + +msgid "select" +msgstr "أختار" + +# +msgid "select CAId's" +msgstr "" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +# +msgid "select menu entry" +msgstr "أختار مدخل قائمه" + +msgid "select movie" +msgstr "أختار الÙيلم" + +msgid "select the movie path" +msgstr "" + +msgid "serious music/classic music" +msgstr "" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "" + +msgid "service PIN" +msgstr "" + +msgid "set as startup service" +msgstr "" + +msgid "setup PIN" +msgstr "" + +# +msgid "show DVD main menu" +msgstr "أعرض قائمة دى ÙÙ‰ دى الرئيسيه" + +msgid "show all tags" +msgstr "" + +msgid "show alternatives" +msgstr "إظهار البدائل" + +msgid "show event details" +msgstr "إظهار تÙاصيل الحدث" + +msgid "show extended description" +msgstr "" + +msgid "show mediaplayer on mainmenu" +msgstr "" + +msgid "show softwaremanager in setup menu" +msgstr "" + +msgid "show softwaremanager on blue button" +msgstr "" + +msgid "show tag menu" +msgstr "" + +msgid "show transponder info" +msgstr "إظهار بيانات التردد" + +msgid "show/game show (general)" +msgstr "" + +msgid "shuffle" +msgstr "" + +msgid "shut down" +msgstr "إغــلاق" + +msgid "simple" +msgstr "بسيط" + +msgid "skip backward" +msgstr "تخطى للخلÙ" + +msgid "skip forward" +msgstr "تخطى للأمام" + +msgid "soap/melodram/folkloric" +msgstr "" + +msgid "social/political issues/economics (general)" +msgstr "" + +msgid "social/spiritual science" +msgstr "" + +msgid "sorting of playlists" +msgstr "" + +msgid "special characters" +msgstr "حرو٠خاصه" + +msgid "special events" +msgstr "" + +msgid "special format data DVD (HDTV compatible)" +msgstr "" + +msgid "sports (general)" +msgstr "" + +msgid "sports magazine" +msgstr "" + +msgid "standard" +msgstr "قياسى" + +msgid "start cut here" +msgstr "أبدأ القطع هنا" + +msgid "start directory" +msgstr "دليل البدايه" + +msgid "stepsize" +msgstr "" + +msgid "stereo" +msgstr "ستيريو" + +msgid "stop using as startup service" +msgstr "" + +# +msgid "switch to bookmarks" +msgstr "الانتقال الى المرجعيات" + +msgid "switch to filelist" +msgstr "الانتقال الى قائمة الملÙات" + +msgid "switch to the next angle" +msgstr "الانتقال الى الزاويه التاليه" + +msgid "switch to the next audio track" +msgstr "الانتقال الى مسار الصوت التالى" + +msgid "switch to the next subtitle language" +msgstr "الانتقال الى لغة العناوين الÙرعيه التاليه" + +msgid "talk show" +msgstr "" + +msgid "team sports" +msgstr "" + +msgid "technology/natural science" +msgstr "" + +msgid "template file" +msgstr "مل٠قالب" + +msgid "tennis/squash" +msgstr "" + +msgid "this recording" +msgstr "هذا التسجيل" + +msgid "this service is protected by a parental control pin" +msgstr "هذه القناه محميه برقم سرى بواسطه التحكم الابوى" + +# +msgid "toggle time, chapter, audio, subtitle info" +msgstr "" + +msgid "top" +msgstr "" + +msgid "tourism/travel" +msgstr "" + +msgid "true" +msgstr "" + +msgid "unavailable" +msgstr "غير متاح" + +msgid "unconfirmed" +msgstr "غير مؤكد" + +msgid "undefined" +msgstr "" + +msgid "unknown" +msgstr "غير معروÙ" + +# +msgid "unknown service" +msgstr "قناه غير معروÙÙ‡" + +msgid "unpublished" +msgstr "" + +# +msgid "until standby/restart" +msgstr "حتى وضع الانتظار/إعادة التشغيل" + +# +msgid "user defined" +msgstr "محدده من قبل المستخدم" + +msgid "variety show" +msgstr "" + +# +msgid "vertical" +msgstr "رأسى" + +# +msgid "wait for ci..." +msgstr "ci ÙÙ‰ إنتظار" + +# +msgid "wait for mmi..." +msgstr "mmi إنتظار" + +msgid "waiting" +msgstr "ÙÙ‰ الانتظار" + +msgid "water sport" +msgstr "" + +# +msgid "weekly" +msgstr "اسبوعى" + +msgid "west" +msgstr "" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "" + +msgid "whitelist" +msgstr "القائمه البيضاء" + +msgid "width" +msgstr "" + +msgid "winter sport" +msgstr "" + +msgid "wireless network interface" +msgstr "" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +msgid "working" +msgstr "يعمل" + +msgid "yellow" +msgstr "أصÙر" + +# +msgid "yes" +msgstr "نعـم" + +# +msgid "yes (keep feeds)" +msgstr "" + +msgid "zap" +msgstr "الانتقال" + +msgid "zap and record" +msgstr "" + +msgid "zapped" +msgstr "تم الانتقال" + +# +#~ msgid "AA" +#~ msgstr "أأ" + +# +#~ msgid "AB" +#~ msgstr "أب" + +# +#, fuzzy +#~ msgid "Activate PiP" +#~ msgstr "صوره داخل صوره نشط" + +#, fuzzy +#~ msgid "Add/remove timer for current event" +#~ msgstr " أض٠تسجيل (وإيقا٠بعد انتهاء البرنامج الحالى)" + +# +#, fuzzy +#~ msgid "All satellites" +#~ msgstr "كل الاقمار" + +# +#~ msgid "BA" +#~ msgstr "ب Ø£" + +# +#~ msgid "BB" +#~ msgstr "ب ب" + +#~ msgid "DiSEqC repeats" +#~ msgstr "تكرار الدايزك" + +#~ msgid "No satellite frontend found!!" +#~ msgstr "لم يتم العثور على أقمار موجهه !!" + +#~ msgid "Remove timer" +#~ msgstr "حذ٠المؤقت" + +#~ msgid "Send DiSEqC" +#~ msgstr "أرسل دايزك" + +# +#, fuzzy +#~ msgid "Switch next channel" +#~ msgstr "القناه التاليه" + +# +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "هل تريد التنقل الى القناه الاخيره قبل باحث الاقمار ØŸ" diff --git a/po/bg.po b/po/bg.po new file mode 100644 index 0000000..3ba0bde --- /dev/null +++ b/po/bg.po @@ -0,0 +1,7917 @@ +msgid "" +msgstr "" +"Project-Id-Version: enigma2 3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2013-01-12 13:05+0200\n" +"Last-Translator: Мартин Петков <marto74bg@yahoo.co.uk>\n" +"Language-Team: Bulgarian\n" +"Language: bg\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-Generator: Poedit 1.5.4\n" + +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"ЕкÑпертни опции и наÑтройки" + +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"След натиÑкане на ОК, Ð¼Ð¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ!" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" +"\n" +"Копие на вашите Clarke-Tech наÑтройки." + +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° адреÑа за ъпгрейд." + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" +"\n" +"Управление на плъгини за Ð²Ð°ÑˆÐ¸Ñ Clarke-Tech" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" +"\n" +"Мрежова Ð°ÐºÑ‚ÑƒÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð·Ð° Ð²Ð°ÑˆÐ¸Ñ Clarke-Tech Ñофтуер" + +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"ÐатиÑнете ОК на диÑтанционното за да продължите." + +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"ВъзÑтановÑване на вашите ÐºÐ¾Ð¿Ð¸Ñ Ð¿Ð¾ дата." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" +"\n" +"ВъзÑтановÑване на вашите Clarke-Tech наÑтройки." + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" +"\n" +"ВъзÑтановÑване на Ð²Ð°ÑˆÐ¸Ñ Clarke-Tech Ñ Ð½Ð¾Ð² фирмуер." + +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"Сканиране за меÑтни пакети и инÑталациÑ." + +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Изберете вашето backup уÑтройÑтво.\n" +"Текущо уÑтройÑтво: " + +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"Преглед, инÑталиране и премахване на налични или инÑталирани пакети." + +msgid " (PiP)" +msgstr "" + +msgid " (Radio)" +msgstr "" + +msgid " (TV)" +msgstr "" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +msgid " extensions." +msgstr "" + +msgid " ms" +msgstr "" + +msgid " packages selected." +msgstr " избрани пакети." + +msgid " updates available." +msgstr " ъпдейти на разположение." + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "" + +msgid "%A %d %B" +msgstr "" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "" + +msgid "%H:%M" +msgstr "%Ч:%Ðœ" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "" + +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d min" +msgstr "%d мин" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d minutes" +msgstr "" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "" +msgstr[1] "" + +msgid "%d-%b-%Y %-H:%M" +msgstr "" + +msgid "%d-%m" +msgstr "" + +msgid "%d.%B %Y" +msgstr "" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "" + +#, python-format +msgid "%s %s free disk space" +msgstr "" + +#, python-format +msgid "%s (%s)\n" +msgstr "" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "" + +#, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "%s актуализиран пакет е наличен" +msgstr[1] "%s актуализирани пакети Ñа налични" + +#, python-format +msgid "%s%d min" +msgstr "" + +#, python-format +msgid "%s/%s: %s" +msgstr "" + +msgid "(ZAP)" +msgstr "" + +msgid "(empty)" +msgstr "" + +msgid "(show optional DVD audio menu)" +msgstr "(покажи DVD аудио меню)" + +msgid "* Only available if more than one interface is active." +msgstr "* Ðа разположение Ñамо ако е активен повече от един интерфейÑ." + +msgid "/s" +msgstr "" + +msgid "0" +msgstr "" + +msgid "1" +msgstr "" + +msgid "1.0" +msgstr "" + +msgid "1.1" +msgstr "" + +msgid "1.2" +msgstr "" + +msgid "12V output" +msgstr "" + +msgid "13 V" +msgstr "" + +msgid "16:10" +msgstr "" + +msgid "16:10 Letterbox" +msgstr "" + +msgid "16:10 PanScan" +msgstr "" + +msgid "16:9" +msgstr "" + +msgid "16:9 Letterbox" +msgstr "" + +msgid "16:9 always" +msgstr "" + +msgid "18 V" +msgstr "" + +msgid "2" +msgstr "" + +msgid "23.976" +msgstr "" + +msgid "24" +msgstr "" + +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +msgid "3" +msgstr "" + +msgid "30" +msgstr "" + +msgid "3d mode" +msgstr "" + +msgid "4" +msgstr "" + +msgid "4:3" +msgstr "" + +msgid "4:3 Letterbox" +msgstr "" + +msgid "4:3 PanScan" +msgstr "" + +msgid "5" +msgstr "" + +msgid "6" +msgstr "" + +msgid "7" +msgstr "" + +msgid "8" +msgstr "" + +msgid "9" +msgstr "" + +#, python-format +msgid ": %s" +msgstr "" + +msgid "<Current movielist location>" +msgstr "" + +msgid "<Default movie location>" +msgstr "" + +msgid "<Last timer location>" +msgstr "" + +msgid "<unknown>" +msgstr "<непознат>" + +msgid "??" +msgstr "" + +msgid "A" +msgstr "Ð" + +#, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" + +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"Конфиг файла (%s) беше променен Ñлед инÑталациÑта.\n" +"ИÑкате ли да запазите вашата верÑиÑ?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"Таймера при завършване на Ð·Ð°Ð¿Ð¸Ñ Ð¶ÐµÐ»Ð°Ðµ да поÑтави\n" +"Clarke-Tech в Ñтендбай. Да го направи ли Ñега?" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"Таймера при завършване на Ð·Ð°Ð¿Ð¸Ñ Ð¶ÐµÐ»Ð°Ðµ да изключи\n" +"Ð²Ð°ÑˆÐ¸Ñ Clarke-Tech. Изключване Ñега?" + +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "Графичен режим на EPG за вÑички програми от определен букет" + +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"Започна запиÑ:\n" +"%s" + +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"Има Ð·Ð°Ð¿Ð¸Ñ Ð² момента.\n" +"Какво да направÑ?" + +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "Има Ð·Ð°Ð¿Ð¸Ñ Ð² момента. ÐœÐ¾Ð»Ñ Ñпрете запиÑа преди да опитате да конфигурирате позиционера." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "" + +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "Има Ð·Ð°Ð¿Ð¸Ñ Ð² момента. ÐœÐ¾Ð»Ñ Ñпрете запиÑа преди да опитате да Ñтартирате satfinder." + +#, python-format +msgid "A required tool (%s) was not found." +msgstr "ИÑканото уÑтройÑтво (%s) не беше намерено." + +msgid "A search for available updates is currently in progress." +msgstr "" + +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"Таймера за Ñън иÑка да превключи\n" +"Clarke-Tech в Ñтендбай. Да го направи ли Ñега?" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"Таймера за Ñън иÑка да изключи\n" +"Ð²Ð°ÑˆÐ¸Ñ Clarke-Tech. Изключване Ñега?" + +msgid "A small overview of the available icon states and actions." +msgstr "" + +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"Провален планиран запиÑ!\n" +"Спиране на ТВ и опит отново?\n" + +msgid "A/V settings" +msgstr "A/V ÐаÑтройки" + +msgid "AC3/DTS downmix" +msgstr "" + +msgid "Abort" +msgstr "Отмени" + +msgid "About" +msgstr "ОтноÑно" + +msgid "About..." +msgstr "ОтноÑно..." + +msgid "Accesspoint:" +msgstr "" + +msgid "Action on long powerbutton press" +msgstr "Продължително натиÑкане на бутон POWER" + +msgid "Action on short powerbutton press" +msgstr "" + +msgid "Activate Picture in Picture" +msgstr "Ðктивиране Картина в Картината" + +msgid "Activate current configuration" +msgstr "" + +msgid "Activate network settings" +msgstr "Ðктивиране мрежови наÑтройки" + +msgid "Activate the configured network settings." +msgstr "" + +msgid "Adapter settings" +msgstr "ÐаÑтройки на адаптера" + +msgid "Add" +msgstr "ДобавÑне" + +msgid "Add Bookmark" +msgstr "" + +msgid "Add a mark" +msgstr "ДобавÑне Отметка" + +msgid "Add a nameserver entry" +msgstr "" + +msgid "Add a new title" +msgstr "ДобавÑне ново име" + +msgid "Add bookmark" +msgstr "ДобавÑне отметка" + +msgid "Add directory to playlist" +msgstr "" + +msgid "Add file to playlist" +msgstr "" + +msgid "Add files to playlist" +msgstr "" + +msgid "Add more details to the crash log" +msgstr "" + +msgid "Add provider" +msgstr "" + +msgid "Add recording (enter recording duration)" +msgstr "Добави Ð·Ð°Ð¿Ð¸Ñ (въведете продължителноÑÑ‚ на запиÑа)" + +msgid "Add recording (enter recording endtime)" +msgstr "Добави Ð·Ð°Ð¿Ð¸Ñ (въведете край на запиÑа)" + +msgid "Add recording (indefinitely)" +msgstr "Добави Ð·Ð°Ð¿Ð¸Ñ (без ограничение)" + +msgid "Add recording (stop after current event)" +msgstr "Добави Ð·Ð°Ð¿Ð¸Ñ (Ñпри Ñлед текущото предаване)" + +msgid "Add service" +msgstr "" + +msgid "Add timer" +msgstr "ДобавÑне таймер" + +msgid "Add title" +msgstr "ДобавÑне име" + +msgid "Add to bouquet" +msgstr "Добави към букет" + +msgid "Add to favourites" +msgstr "Добави към предпочитани" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "3D наÑтройки" + +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "ÐаÑтройте цветовете така, че вÑички цветни Ñенки да Ñа различимии да Ñа макÑимално наÑитени. Ðко Ñте доволни от резултата, натиÑнете OK за да затворите фината наÑтройка на картината, или използвайте цифровите бутони за да изберете друг теÑÑ‚ екран." + +msgid "Advanced" +msgstr "" + +msgid "Advanced options" +msgstr "ЕкÑпертни ÐаÑтройки" + +msgid "Advanced restore" +msgstr "ЕкÑпертно ВъзÑтановÑване" + +msgid "Advanced software" +msgstr "" + +msgid "Advanced software plugin" +msgstr "" + +msgid "Advanced video enhancement setup" +msgstr "" + +msgid "Advanced video setup" +msgstr "" + +msgid "After event" +msgstr "След предаването" + +msgid "Album" +msgstr "Ðлбум" + +msgid "Alignment of events" +msgstr "" + +msgid "Alignment of service names" +msgstr "" + +msgid "All" +msgstr "Ð’Ñички" + +msgid "All ages" +msgstr "" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "" + +msgid "Allocate unused memory index" +msgstr "" + +msgid "Allow quit movieplayer with exit" +msgstr "" + +msgid "Allow subtitle language to equal audio language" +msgstr "" + +msgid "Allow subtitles for hearing impaired" +msgstr "" + +msgid "Alpha" +msgstr "Ðлфа" + +msgid "Alternative" +msgstr "" + +msgid "Alternative numbering mode" +msgstr "" + +msgid "Alternative services tuner priority" +msgstr "Ðлтернативен приоритет на тунера" + +msgid "Always ask" +msgstr "" + +msgid "Always hide infobar" +msgstr "" + +msgid "An empty filename is illegal." +msgstr "Файл без име не Ñе приема." + +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "" + +msgid "An unknown error occurred!" +msgstr "" + +msgid "And will put your receiver in standby over " +msgstr "" + +msgid "Any activity" +msgstr "" + +msgid "Arabic" +msgstr "ÐрабÑки" + +msgid "Are you sure to remove this entry?" +msgstr "" + +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"ИÑкате ли да активирате тези мрежови наÑтройки?\n" +"\n" + +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" + +msgid "Are you sure you want to exit this wizard?" +msgstr "" + +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"ИÑкате ли да реÑтартирате Ð²Ð°ÑˆÐ¸Ñ Ð¼Ñ€ÐµÐ¶Ð¾Ð² интерфейÑ?\n" +"\n" + +#, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" + +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"ИÑкате ли да възÑтановите Ð²Ð°ÑˆÐ¸Ñ backup?\n" +"Приемникът ще Ñе реÑтартира Ñлед възÑтановÑването" + +msgid "Artist" +msgstr "ÐртиÑÑ‚" + +msgid "Arts/Culture" +msgstr "" + +msgid "Ask user" +msgstr "Питай потребител" + +msgid "Aspect ratio" +msgstr "Режим Картина" + +msgid "Assigned CAIds:" +msgstr "" + +msgid "Assigned services/provider:" +msgstr "" + +msgid "At beginning" +msgstr "" + +msgid "At end" +msgstr "" + +msgid "Audio" +msgstr "Ðудио" + +msgid "Audio PID" +msgstr "" + +msgid "Audio language selection 1" +msgstr "" + +msgid "Audio language selection 2" +msgstr "" + +msgid "Audio language selection 3" +msgstr "" + +msgid "Audio language selection 4" +msgstr "" + +msgid "Audio options..." +msgstr "Ðудио ÐаÑтройки..." + +#, python-format +msgid "Audio track (%s) format" +msgstr "" + +#, python-format +msgid "Audio track (%s) language" +msgstr "" + +msgid "Author: " +msgstr "Ðвтор: " + +msgid "Authoring mode" +msgstr "" + +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Aвто" + +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Ðвтоматично разделÑне на вÑеки ? минути (0=никога)" + +msgid "Auto flesh" +msgstr "" + +msgid "Auto focus" +msgstr "" + +msgid "Auto focus commencing ..." +msgstr "" + +msgid "Auto language selection" +msgstr "Ðвтоматичен избор на език" + +msgid "Auto scart switching" +msgstr "Ðвтом.Ñкарт превключване" + +msgid "Automatic" +msgstr "Ðвтоматично" + +msgid "Automatic scan" +msgstr "Ðвтоматично ТърÑене" + +msgid "Automatically start timeshift after" +msgstr "" + +msgid "Automatically turn on external subtitles" +msgstr "" + +msgid "Available format variables" +msgstr "" + +msgid "B" +msgstr "" + +msgid "BER" +msgstr "" + +msgid "BER:" +msgstr "" + +msgid "Back" +msgstr "Ðазад" + +msgid "Background" +msgstr "Фон" + +msgid "Background color" +msgstr "" + +msgid "Background delete option" +msgstr "" + +msgid "Background delete speed" +msgstr "" + +msgid "Backup completed." +msgstr "" + +msgid "Backup failed." +msgstr "Backup неуÑпех." + +msgid "Backup is running..." +msgstr "" + +msgid "Backup system settings" +msgstr "Backup ÑиÑтемни наÑтройки" + +msgid "Band" +msgstr "Лента" + +msgid "Bandwidth" +msgstr "Ширина на лента" + +msgid "Basque" +msgstr "" + +msgid "Begin time" +msgstr "Ðачало време" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +msgid "Behavior of 0 key in PiP-mode" +msgstr "ДейÑтвие на бутон 0 в режим PiP" + +msgid "Behavior when a movie is started" +msgstr "ДейÑтвие при Ñтарт на филм" + +msgid "Behavior when a movie is stopped" +msgstr "ДейÑтвие при Ñпиране на филм" + +msgid "Behavior when a movie reaches the end" +msgstr "ДейÑтвие при завършване на филм" + +msgid "Big PiP" +msgstr "" + +msgid "Bitrate:" +msgstr "" + +msgid "Black screen" +msgstr "" + +msgid "Black screen till locked" +msgstr "" + +msgid "Block noise reduction" +msgstr "" + +msgid "Blue boost" +msgstr "" + +msgid "Bookmarks" +msgstr "" + +msgid "Brightness" +msgstr "ЯркоÑÑ‚" + +msgid "Bulgarian" +msgstr "БългарÑки" + +msgid "Burn DVD" +msgstr "Запиши DVD" + +#, python-format +msgid "Burn audio track (%s)" +msgstr "" + +msgid "Burn existing image to DVD" +msgstr "Ð—Ð°Ð¿Ð¸Ñ Ð½Ð° ÑъщеÑтвуващ имидж на DVD" + +msgid "Burn to DVD" +msgstr "" + +msgid "Bus: " +msgstr "" + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "" + +msgid "C" +msgstr "" + +msgid "C-Band" +msgstr "" + +msgid "CH" +msgstr "" + +msgid "CI assignment" +msgstr "" + +msgid "CVBS" +msgstr "" + +msgid "Cable" +msgstr "" + +msgid "Cable Scan" +msgstr "" + +msgid "Cache thumbnails" +msgstr "" + +msgid "Calculate" +msgstr "" + +msgid "Calculate all positions" +msgstr "" + +msgid "Calculation complete" +msgstr "" + +msgid "Calibrate" +msgstr "" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "" + +msgid "Cancel" +msgstr "Отказ" + +msgid "Cannot determine" +msgstr "" + +msgid "Cannot find any signal ..., aborting !" +msgstr "" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "" + +msgid "Cannot move to trash can" +msgstr "" + +msgid "Capacity: " +msgstr "Капацитет: " + +msgid "Card" +msgstr "Карта" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "" + +msgid "Center time-labels and remove date" +msgstr "" + +msgid "Change bouquets in quickzap" +msgstr "СмÑна букет при бързопревкл." + +msgid "Change pin code" +msgstr "СмÑна ПИРкод" + +msgid "Change recording (duration)" +msgstr "" + +msgid "Change recording (endtime)" +msgstr "" + +msgid "Change repeat and delay settings?" +msgstr "" + +msgid "Change service PIN" +msgstr "СмÑна ПИРна уÑлуги" + +msgid "Change service PINs" +msgstr "СмÑна ПИРна уÑлуги" + +msgid "Change setup PIN" +msgstr "СмÑна ПИРза наÑтройки" + +msgid "Change step size" +msgstr "" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "" + +msgid "Channel" +msgstr "Канал" + +msgid "Channel list type" +msgstr "" + +msgid "Channel not in services list" +msgstr "Каналът не е в ÑпиÑъка" + +msgid "Channel selection" +msgstr "" + +msgid "Channel:" +msgstr "Канал:" + +msgid "Channellist menu" +msgstr "Меню ÑпиÑък Ñ ÐºÐ°Ð½Ð°Ð»Ð¸" + +msgid "Chap." +msgstr "" + +msgid "Chapter" +msgstr "Глава" + +msgid "Chapter:" +msgstr "Глава:" + +msgid "Check" +msgstr "Проверка" + +msgid "Check the internet connection" +msgstr "" + +msgid "Check the internet connection again" +msgstr "" + +msgid "Checking filesystem..." +msgstr "ПроверÑвам файловата Ñ-ма..." + +msgid "Checking the internet connection" +msgstr "" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" + +msgid "Children/Youth" +msgstr "" + +msgid "Choose which tuner to configure." +msgstr "" + +msgid "Circular left" +msgstr "Кръгова лÑва" + +msgid "Circular right" +msgstr "Кръгова дÑÑна" + +msgid "Cleanup" +msgstr "ПочиÑтване" + +msgid "Clear" +msgstr "" + +msgid "Clear before scan" +msgstr "ИзчиÑтване преди Ñканиране" + +msgid "Clear fixed" +msgstr "" + +msgid "Clear log" +msgstr "Изтрий лога" + +msgid "Clear playlist" +msgstr "" + +msgid "Close" +msgstr "ЗатварÑне" + +msgid "Close PiP on exit" +msgstr "" + +msgid "Close title selection" +msgstr "" + +msgid "Code rate HP" +msgstr "" + +msgid "Code rate LP" +msgstr "" + +msgid "Coderate HP" +msgstr "" + +msgid "Coderate LP" +msgstr "" + +msgid "Collection name" +msgstr "Име на КолекциÑта" + +msgid "Collection settings" +msgstr "ÐаÑтройки на КолекциÑ" + +msgid "Color format" +msgstr "" + +msgid "Command execution..." +msgstr "Изпълнение на команда..." + +msgid "Command order" +msgstr "Ред на команди" + +msgid "Common Interface" +msgstr "" + +msgid "Common Interface assignment" +msgstr "" + +msgid "Communication" +msgstr "КомуникациÑ" + +msgid "Compact flash" +msgstr "" + +msgid "Complete" +msgstr "Завършен" + +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "" + +msgid "Composition of the recording filenames" +msgstr "" + +msgid "Configuration mode" +msgstr "Режим КонфигурациÑ" + +#, python-format +msgid "Configuration mode: %s" +msgstr "Режим КонфигурациÑ: %s" + +msgid "Configuration..." +msgstr "КонфигурациÑ..." + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "" + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "" + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "" + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "" + +msgid "Configure how recording filenames are constructed." +msgstr "" + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +msgid "Configure interface" +msgstr "Конфигуриране интерфейÑ." + +msgid "Configure nameservers" +msgstr "Конфигуриране nameservers" + +msgid "Configure on which devices the background delete option should be used." +msgstr "" + +msgid "Configure remote control type" +msgstr "" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "" + +msgid "Configure the IP address." +msgstr "" + +msgid "Configure the aspect ratio of the screen." +msgstr "" + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "" + +msgid "Configure the behavior when movie playback is started." +msgstr "" + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "" + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "" + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "" + +msgid "Configure the brightness level of the front panel display." +msgstr "" + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "" + +msgid "Configure the color of the teletext subtitles." +msgstr "" + +msgid "Configure the contrast level of the front panel display." +msgstr "" + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "" + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "" + +msgid "Configure the first audio language (highest priority)." +msgstr "" + +msgid "Configure the first subtitle language (highest priority)." +msgstr "" + +msgid "Configure the font size of the subtitles." +msgstr "" + +msgid "Configure the fourth audio language." +msgstr "" + +msgid "Configure the fourth subtitle language." +msgstr "" + +msgid "Configure the function of a long press on the power button." +msgstr "" + +msgid "Configure the function of a short press on the power button." +msgstr "" + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "" + +msgid "Configure the gateway." +msgstr "" + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "" + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "" + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "" + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "" + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "" + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "" + +msgid "Configure the latitude of your location." +msgstr "" + +msgid "Configure the longitude of your location." +msgstr "" + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "" + +msgid "Configure the nameserver (DNS)." +msgstr "" + +msgid "Configure the netmask." +msgstr "" + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "" + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "" + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "" + +msgid "Configure the possible fast forward speeds." +msgstr "" + +msgid "Configure the possible rewind speeds." +msgstr "" + +msgid "Configure the primary EPG language." +msgstr "" + +msgid "Configure the refresh rate of the screen." +msgstr "" + +msgid "Configure the screen resolution in PC output mode." +msgstr "" + +msgid "Configure the second audio language." +msgstr "" + +msgid "Configure the second subtitle language." +msgstr "" + +msgid "Configure the secondary EPG language." +msgstr "" + +msgid "Configure the sharpness of the video scaling." +msgstr "" + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "" + +msgid "Configure the slow motion speeds." +msgstr "" + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "" + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "" + +msgid "Configure the third audio language." +msgstr "" + +msgid "Configure the third subtitle language." +msgstr "" + +msgid "Configure the transparency of the OSD." +msgstr "" + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "" + +msgid "Configure the tuner mode." +msgstr "" + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "" + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "" + +msgid "Configure the video output mode (or resolution)." +msgstr "" + +msgid "Configure the way in which the receiver changes channels." +msgstr "" + +msgid "Configure where completed timers show up in the timer list." +msgstr "" + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "" + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "" + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "" + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "" + +msgid "Configure which color format should be used on the SCART output." +msgstr "" + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "" + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "" + +msgid "Configure your internal LAN" +msgstr "Конфигуриране на вашата вътрешна LAN." + +msgid "Configure your network again" +msgstr "Повторно конфигуриране на вашата мрежа." + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "" + +msgid "Configure your wireless LAN again" +msgstr "Повторно конфигуриране на вашата WLAN мрежа." + +msgid "Configures which video output connector will be used." +msgstr "" + +msgid "Configuring" +msgstr "Конфигуриране" + +msgid "Conflicting timer" +msgstr "ÐеÑъвмеÑтим таймер" + +msgid "Connect" +msgstr "Свържи" + +msgid "Connect to a wireless network" +msgstr "Свържи Ñе Ñ Ð±ÐµÐ·Ð¶Ð¸Ñ‡Ð½Ð° мрежа" + +msgid "Connected satellites" +msgstr "" + +msgid "Connected to" +msgstr "Свързан Ñ" + +msgid "Connected!" +msgstr "Свързан!" + +msgid "Constellation" +msgstr "" + +msgid "Content does not fit on DVD!" +msgstr "Съдържанието не Ñе побира на DVD!" + +msgid "Continue" +msgstr "Продължи" + +msgid "Continue in background" +msgstr "Продължаване като фон" + +msgid "Continue playback" +msgstr "" + +msgid "Continue playing" +msgstr "Продължи възпроизвеждането" + +msgid "Continues play (loop)" +msgstr "" + +msgid "Contrast" +msgstr "КонтраÑÑ‚" + +msgid "Convert ext3 filesystem to ext4" +msgstr "" + +msgid "Convert ext3 to ext4" +msgstr "" + +msgid "Converting ext3 to ext4..." +msgstr "" + +msgid "Copy" +msgstr "" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "" + +msgid "Could not find installed channel list." +msgstr "" + +msgid "Could not load medium! No disc inserted?" +msgstr "" + +msgid "Could not open Picture in Picture" +msgstr "" + +#, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "" + +#, python-format +msgid "Could not record due to invalid service %s" +msgstr "" + +msgid "Create DVD-ISO" +msgstr "Създай DVD-ISO" + +msgid "Create more detailed crash log" +msgstr "" + +#, python-format +msgid "Creating directory %s failed." +msgstr "Грешка при Ñъздаване Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ %s." + +msgid "Creating filesystem" +msgstr "" + +msgid "Creating partition" +msgstr "" + +msgid "Croatian" +msgstr "ХърватÑки" + +msgid "Current CEC address" +msgstr "" + +msgid "Current device: " +msgstr "" + +msgid "Current event EPG" +msgstr "" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +msgid "Current settings:" +msgstr "Текущи наÑтройки:" + +msgid "Current transponder" +msgstr "" + +msgid "Current value: " +msgstr "" + +msgid "Current version:" +msgstr "Текуща верÑиÑ:" + +msgid "Currently installed image" +msgstr "" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +msgid "Custom skip time for '1'/'3' buttons" +msgstr "" + +msgid "Custom skip time for '4'/'6' buttons" +msgstr "" + +msgid "Custom skip time for '7'/'9' buttons" +msgstr "" + +msgid "Customize" +msgstr "Лични наÑтройки" + +msgid "Customize channel list cursor behavior" +msgstr "" + +msgid "Cut" +msgstr "Изрежи" + +msgid "Cutlist editor..." +msgstr "" + +msgid "Czech" +msgstr "Чешки" + +msgid "D" +msgstr "" + +msgid "DHCP" +msgstr "" + +msgid "DMM advanced" +msgstr "" + +msgid "DMM normal" +msgstr "" + +msgid "DUAL LAYER DVD" +msgstr "" + +msgid "DVB subtitle black transparency" +msgstr "" + +msgid "DVB-C" +msgstr "" + +msgid "DVB-C ANNEX C" +msgstr "" + +msgid "DVB-S" +msgstr "" + +msgid "DVB-S2" +msgstr "" + +msgid "DVB-T" +msgstr "" + +msgid "DVB-T2" +msgstr "" + +msgid "DVD data format" +msgstr "" + +msgid "DVD file browser" +msgstr "" + +msgid "DVD media toolbox" +msgstr "" + +msgid "DVD player" +msgstr "" + +msgid "DVD titlelist" +msgstr "" + +msgid "Danish" +msgstr "ДатÑки" + +msgid "Date" +msgstr "Дата" + +msgid "Date/time input" +msgstr "" + +msgid "Deep standby" +msgstr "Изключване" + +msgid "Default" +msgstr "" + +msgid "Default movie location" +msgstr "" + +msgid "Default settings" +msgstr "Стандартни ÐаÑтройки" + +msgid "Delay before key repeat starts:" +msgstr "" + +msgid "Delay for external subtitles" +msgstr "" + +msgid "Delete" +msgstr "Изтриване" + +msgid "Delete entry" +msgstr "Изтриване запиÑ" + +msgid "Delete failed!" +msgstr "ÐеуÑпешно изтриване!" + +msgid "Delete file" +msgstr "" + +msgid "Delete playlist entry" +msgstr "" + +msgid "Delete saved playlist" +msgstr "" + +msgid "Delete timer" +msgstr "" + +msgid "Delete..." +msgstr "" + +msgid "Deleted" +msgstr "" + +msgid "Deleted items" +msgstr "" + +msgid "Depth" +msgstr "" + +msgid "Descramble http streams" +msgstr "" + +msgid "Description" +msgstr "ОпиÑание" + +msgid "Deselect" +msgstr "ОтмÑна Избор" + +msgid "Details for plugin: " +msgstr "" + +msgid "Detected HDD:" +msgstr "Oткрит HDD:" + +msgid "Detected NIMs:" +msgstr "Открит NIMs:" + +msgid "Devicename:" +msgstr "" + +msgid "Devide" +msgstr "" + +msgid "DiSEqC" +msgstr "" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +msgid "DiSEqC A/B" +msgstr "" + +msgid "DiSEqC A/B/C/D" +msgstr "" + +msgid "DiSEqC mode" +msgstr "DiSEqC режим" + +#, python-format +msgid "DiSEqC port %s: %s" +msgstr "" + +msgid "DiSEqC-tester settings" +msgstr "" + +msgid "Dialing:" +msgstr "" + +msgid "Digital contour removal" +msgstr "" + +msgid "Direct playback of linked titles without menu" +msgstr "Директно възпроизвеждане на Ñвързаните Ð·Ð°Ð³Ð»Ð°Ð²Ð¸Ñ Ð±ÐµÐ· менюта" + +msgid "Directory" +msgstr "" + +#, python-format +msgid "Directory %s does not exist." +msgstr "" + +#, python-format +msgid "Directory %s nonexistent." +msgstr "Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ %s не ÑъщеÑтвува." + +msgid "Directory browser" +msgstr "" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "" + +#, python-format +msgid "Directory contains %s and %s." +msgstr "" + +msgid "Disable" +msgstr "Спри" + +msgid "Disable Picture in Picture" +msgstr "Спри Картина в Картината" + +msgid "Disable background scanning" +msgstr "" + +msgid "Disable timer" +msgstr "" + +msgid "Disabled" +msgstr "СпрÑн" + +msgid "Disconnect" +msgstr "" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "" + +msgid "Display 16:9 content as" +msgstr "Покажи 16:9 като" + +msgid "Display 4:3 content as" +msgstr "Покажи 4:3 като" + +msgid "Display >16:9 content as" +msgstr "Покажи >16:9 като" + +msgid "Display and userinterface" +msgstr "" + +msgid "Display message before playing next movie" +msgstr "" + +msgid "Display setup" +msgstr "ÐаÑтройки ДиÑплей" + +msgid "Do not change" +msgstr "" + +msgid "Do not record" +msgstr "Ðе запиÑвай" + +msgid "Do nothing" +msgstr "" + +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"ИÑкате ли да проверите файловата ÑиÑтема?\n" +"Това може да отнеме доÑта време!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" + +#, python-format +msgid "Do you really want to delete %s?" +msgstr "ÐаиÑтина ли иÑкате да изтриете %s?" + +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"ИÑкате ли да изтеглите\n" +"плъгина \"%s\"?" + +msgid "Do you really want to exit?" +msgstr "" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" + +#, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" + +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "ÐаиÑтина ли иÑкате да премахнете Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ %s от диÑка?" + +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "ÐаиÑтина ли иÑкате да премахнете Ð²Ð°ÑˆÐ¸Ñ bookmark от %s?" + +msgid "Do you want this?" +msgstr "" + +msgid "Do you want to burn this collection to DVD medium?" +msgstr "ÐаиÑтина ли иÑкате да запишете тази ÐºÐ¾Ð»ÐµÐºÑ†Ð¸Ñ Ð½Ð° DVD?" + +msgid "Do you want to do a service scan?" +msgstr "ИÑкате ли да Ñканирам за канали?" + +msgid "Do you want to do another manual service scan?" +msgstr "ИÑкате ли да извърша друго ръчно Ñканиране?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "" + +msgid "Do you want to install a channel list?" +msgstr "" + +msgid "Do you want to install the package:\n" +msgstr "Да инÑталирам ли пакета:\n" + +msgid "Do you want to play DVD in drive?" +msgstr "Да възпроизведа ли DVD в уÑтройÑтвото?" + +msgid "Do you want to preview this DVD before burning?" +msgstr "ИÑкате ли да прегледате това DVD преди запиÑа?" + +msgid "Do you want to reboot your receiver?" +msgstr "ИÑкате ли да реÑтартирам Ð²Ð°ÑˆÐ¸Ñ Clarke-Tech?" + +msgid "Do you want to remove the package:\n" +msgstr "ИÑкате ли да премахна пакета:\n" + +msgid "Do you want to restore your settings?" +msgstr "ИÑкате ли да възÑтановите вашите наÑтройки?" + +msgid "Do you want to resume this playback?" +msgstr "Да продължа ли Ñ Ð²ÑŠÐ·Ð¿Ñ€Ð¾Ð¸Ð·Ð²ÐµÐ¶Ð´Ð°Ð½ÐµÑ‚Ð¾?" + +#, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "ИÑкате ли да актуализирате Ð²Ð°ÑˆÐ¸Ñ Clarke-Tech към %s?" + +msgid "Do you want to update your receiver?" +msgstr "ИÑкате ли да актуализирате Ð²Ð°ÑˆÐ¸Ñ Clarke-Tech?" + +msgid "Do you want to upgrade the package:\n" +msgstr "ИÑкате ли да ъпгрейднете този пакет:\n" + +msgid "Don't stop current event but disable coming events" +msgstr "Ðе Ñпирай текущото предаване но Ñпри Ñледващите" + +#, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "" +msgstr[1] "" + +msgid "Download" +msgstr "Изтегли" + +#, python-format +msgid "Download %s from server" +msgstr "" + +msgid "Download .NFI-files for USB-flasher" +msgstr "" + +msgid "Download plugins" +msgstr "Изтегли плъгини" + +msgid "Downloadable new plugins" +msgstr "Има нови плъгини за теглене" + +msgid "Downloadable plugins" +msgstr "Плъгини за теглене" + +msgid "Downloading" +msgstr "ИзтеглÑне" + +msgid "Downloading plugin information. Please wait..." +msgstr "ИзтеглÑм Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° плъгина. ÐœÐ¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ..." + +msgid "Dutch" +msgstr "ХоландÑки" + +msgid "Dynamic contrast" +msgstr "" + +msgid "E" +msgstr "" + +msgid "EPG" +msgstr "" + +msgid "EPG language selection 1" +msgstr "" + +msgid "EPG language selection 2" +msgstr "" + +msgid "EPG selection" +msgstr "" + +msgid "EPG settings" +msgstr "" + +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "Грешка при Ñканиране (%s)!" + +msgid "East" +msgstr "Изток" + +msgid "East limit set" +msgstr "" + +msgid "Edit" +msgstr "Редактирай" + +msgid "Edit DNS" +msgstr "Редактирай DNS" + +msgid "Edit bouquets list" +msgstr "Редакт. ÑпиÑъка Ñ Ð±ÑƒÐºÐµÑ‚Ð¸" + +msgid "Edit chapters of current title" +msgstr "Редакт. главите на текущото заглавие" + +msgid "Edit services list" +msgstr "Редакт. лиÑта Ñ ÐºÐ°Ð½Ð°Ð»Ð¸" + +msgid "Edit settings" +msgstr "Редакт.наÑтройки" + +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "Редактиране мрежовите наÑтройки за Ð²Ð°ÑˆÐ¸Ñ Clarke-Tech.\n" + +msgid "Edit timer" +msgstr "" + +msgid "Edit title" +msgstr "Редакт.заглавие" + +msgid "Edit upgrade source url." +msgstr "" + +msgid "Education/Science/..." +msgstr "" + +msgid "Electronic Program Guide" +msgstr "Електронен Програмен Гайд" + +msgid "Enable" +msgstr "Избери" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +msgid "Enable 5V for active antenna" +msgstr "Включи 5V за активната антена" + +msgid "Enable EIT EPG" +msgstr "" + +msgid "Enable MHW EPG" +msgstr "" + +msgid "Enable Netmed EPG" +msgstr "" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +msgid "Enable bouquet selection in multi-EPG" +msgstr "" + +msgid "Enable freesat EPG" +msgstr "" + +msgid "Enable multiple bouquets" +msgstr "Разреши много букети" + +msgid "Enable parental control" +msgstr "Включи родителÑки контрол" + +msgid "Enable teletext caching" +msgstr "" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +msgid "Enabled" +msgstr "Разрешен" + +msgid "Encrypted: " +msgstr "" + +msgid "Encryption" +msgstr "Кодировка" + +msgid "Encryption key" +msgstr "" + +msgid "Encryption key type" +msgstr "" + +msgid "Encryption:" +msgstr "" + +msgid "End time" +msgstr "Край" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +msgid "English" +msgstr "ÐнглийÑки" + +msgid "Enigma2 skin selector" +msgstr "" + +msgid "Enter main menu..." +msgstr "Влезте в главното меню..." + +msgid "Enter pin code" +msgstr "" + +msgid "Enter the service pin" +msgstr "Въведете ПИРза канали" + +msgid "Equal to" +msgstr "" + +msgid "Error" +msgstr "Грешка" + +msgid "Error code" +msgstr "" + +msgid "Error executing plugin" +msgstr "Грешка при Ñтартиране на плъгина" + +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Грешка: %s\n" +"Да опитам отново?" + +msgid "Estonian" +msgstr "" + +msgid "Ethernet network interface" +msgstr "" + +msgid "Event font size (relative to skin size)" +msgstr "" + +msgid "Event view" +msgstr "" + +msgid "Event view menu" +msgstr "" + +msgid "Everywhere" +msgstr "" + +msgid "Exceeds dual layer medium!" +msgstr "" + +msgid "Execution finished!!" +msgstr "" + +msgid "Execution progress:" +msgstr "" + +msgid "Exif" +msgstr "" + +msgid "Exit" +msgstr "Изход" + +msgid "Exit EPG" +msgstr "" + +msgid "Exit editor" +msgstr "Изход редактор" + +msgid "Exit input device selection." +msgstr "" + +msgid "Exit media player?" +msgstr "" + +msgid "Exit mediaplayer" +msgstr "" + +msgid "Exit movie list" +msgstr "" + +msgid "Exit movie player?" +msgstr "" + +msgid "Exit nameserver configuration" +msgstr "" + +msgid "Exit network interface list" +msgstr "" + +msgid "Exit network wizard" +msgstr "Изход от Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰Ð½Ð¸Ðº" + +msgid "Exit the wizard" +msgstr "Изход от помощника" + +msgid "Expert" +msgstr "ЕкÑперт" + +msgid "Extend sleeptimer 15 minutes" +msgstr "" + +msgid "Extended Software" +msgstr "" + +msgid "Extended Software Plugin" +msgstr "" + +msgid "Extended network setup plugin..." +msgstr "" + +msgid "Extended setup..." +msgstr "Разширени ÐаÑтройки..." + +msgid "Extensions" +msgstr "" + +msgid "Extensions management" +msgstr "" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "" + +msgid "Extra motor options" +msgstr "" + +msgid "FEC" +msgstr "" + +msgid "FTA" +msgstr "" + +msgid "Factory reset" +msgstr "Фабрични наÑтройки" + +msgid "Failed" +msgstr "Грешка" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "" + +#, python-format +msgid "Fan %d" +msgstr "" + +#, python-format +msgid "Fan %d PWM" +msgstr "" + +#, python-format +msgid "Fan %d voltage" +msgstr "" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +msgid "Fast" +msgstr "Бърз" + +msgid "Fast DiSEqC" +msgstr "Бърз DiSEqC" + +msgid "Fast Scan" +msgstr "Бързо Сканиране" + +msgid "Fast epoch" +msgstr "" + +msgid "Fast forward speeds" +msgstr "" + +msgid "Favourites" +msgstr "Предпочитани" + +msgid "File appears to be busy.\n" +msgstr "" + +msgid "Filesystem check" +msgstr "Проверка файлова Ñ-ма" + +msgid "Final position at" +msgstr "" + +msgid "Final position at index" +msgstr "" + +msgid "Fine movement" +msgstr "" + +msgid "Finetune" +msgstr "Фина ÐаÑтройка" + +msgid "Finished" +msgstr "Завърши" + +msgid "Finished configuring your network" +msgstr "Завърши мрежовата конфигурациÑ" + +msgid "Finished restarting your network" +msgstr "Завърши реÑтартирането на мрежата" + +msgid "Finnish" +msgstr "Край" + +msgid "Fixed" +msgstr "" + +msgid "Flash" +msgstr "" + +msgid "Flashing failed" +msgstr "Грешка при флашване" + +msgid "Following tasks will be done after you press OK!" +msgstr "" + +msgid "Format" +msgstr "Форматиране" + +msgid "Forward volume keys" +msgstr "" + +msgid "Frame size in full view" +msgstr "" + +msgid "French" +msgstr "ФренÑки" + +msgid "Frequency" +msgstr "ЧеÑтота" + +msgid "Frequency bands" +msgstr "ЧеÑтотна лента" + +msgid "Frequency scan step size(khz)" +msgstr "" + +msgid "Frequency steps" +msgstr "" + +msgid "Frequency:" +msgstr "" + +msgid "Fri" +msgstr "Пет" + +msgid "Friday" +msgstr "Петък" + +msgid "From :" +msgstr "" + +#, python-format +msgid "Frontprocessor version: %d" +msgstr "" + +msgid "Full transparency" +msgstr "" + +msgid "Fulview resulution" +msgstr "" + +msgid "Function of OK button" +msgstr "" + +msgid "Further Options" +msgstr "" + +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" + +msgid "Gateway" +msgstr "Шлюз" + +msgid "General AC3 delay" +msgstr "" + +msgid "General PCM delay" +msgstr "" + +msgid "Genre" +msgstr "Жанр" + +msgid "German" +msgstr "ÐемÑки" + +msgid "Get latest experimental image" +msgstr "" + +msgid "Get latest release image" +msgstr "" + +msgid "Getting plugin information. Please wait..." +msgstr "Приемам инфо за плъгина. ÐœÐ¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ..." + +msgid "Go down the list" +msgstr "" + +msgid "Go to first movie or last item" +msgstr "" + +msgid "Go to first movie or top of list" +msgstr "" + +msgid "Go to first service" +msgstr "" + +msgid "Go to last service" +msgstr "" + +msgid "Go to next event" +msgstr "" + +msgid "Go to next page of service" +msgstr "" + +msgid "Go to previous event" +msgstr "" + +msgid "Go to previous page of service" +msgstr "" + +msgid "Go up the list" +msgstr "" + +msgid "Goto" +msgstr "" + +msgid "Goto 0" +msgstr "Към 0" + +msgid "Goto :" +msgstr "" + +msgid "Goto X" +msgstr "" + +msgid "Goto index position" +msgstr "" + +msgid "Goto next day of events" +msgstr "" + +msgid "Goto next page of events" +msgstr "" + +msgid "Goto position" +msgstr "Към позициÑ" + +msgid "Goto previous day of events" +msgstr "" + +msgid "Goto previous page of events" +msgstr "" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "" + +msgid "GraphMultiEpg Settings" +msgstr "" + +msgid "Graphical Multi EPG" +msgstr "Графичен Мулти ЕПГ" + +msgid "Greek" +msgstr "Гръцки" + +msgid "Green boost" +msgstr "" + +msgid "Guard interval" +msgstr "" + +msgid "HD list" +msgstr "" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "" + +msgid "Handle wakeup from TV" +msgstr "" + +msgid "Hard disk" +msgstr "Твърд ДиÑк" + +msgid "Hard disk setup" +msgstr "ÐаÑтройки HDD" + +msgid "Hard disk standby after" +msgstr "HDD в готовноÑÑ‚ Ñлед" + +msgid "Harddisk" +msgstr "Твърд диÑк" + +msgid "Hardware: " +msgstr "" + +msgid "Hebrew" +msgstr "" + +msgid "Helps setting up your dish" +msgstr "" + +msgid "Hidden network" +msgstr "" + +msgid "Hide CI messages" +msgstr "" + +msgid "Hide channel list in radio mode" +msgstr "" + +msgid "Hide known extensions" +msgstr "" + +msgid "Hide number markers" +msgstr "" + +msgid "Hide player" +msgstr "" + +msgid "Hide zap errors" +msgstr "" + +msgid "Hierarchy info" +msgstr "" + +msgid "Hierarchy information" +msgstr "" + +msgid "High bitrate support" +msgstr "Поддръжка виÑок битрейт" + +msgid "Hold screen" +msgstr "" + +msgid "Hold till locked" +msgstr "" + +msgid "Home" +msgstr "" + +msgid "Horizontal" +msgstr "Хоризонтална" + +msgid "Horizontal turning speed" +msgstr "" + +msgid "How many minutes do you want to record?" +msgstr "Колко минути желаете да запишете?" + +msgid "Hue" +msgstr "" + +msgid "Hungarian" +msgstr "УнгарÑки" + +msgid "IP address" +msgstr "" + +msgid "ISO file is too large for this filesystem!" +msgstr "ISO файла е много голÑм за тази файлова ÑиÑтема!" + +msgid "ISO path" +msgstr "" + +msgid "Icons" +msgstr "" + +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"Ðко виждате това, нещо не е наред Ñ\n" +"вашата Ñкарт връзка. ÐатиÑнете OK за връщане." + +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"Ðко Ð²Ð°ÑˆÐ¸Ñ Ð¢Ð’ има Ð¾Ð¿Ñ†Ð¸Ñ Ð·Ð° подÑилване на ÑркоÑÑ‚ или контраÑÑ‚, Ñпрете Ñ.Ðко има режим \"dynamic\", поÑтавете го на standard. ÐаÑтройте подÑветката така, че да Ð¾Ñ‚Ð³Ð¾Ð²Ð°Ñ€Ñ Ð½Ð° вкуÑа ви. Ðамалете контраÑта на Ð²Ð°ÑˆÐ¸Ñ Ð¢Ð’ колкото Ñе може повече.\n" +"След това намалете ÑркоÑтта колкото е възможно, но така, че двете Ñиви Ñенки най-отдолу да оÑтанат различими.\n" +"Ðе Ñе грижете за Ñрките Ñенки Ñега. Те ще Ñе коригират при Ñледващата Ñтъпка.\n" +"Ðко Ñте доволни от резултата, натиÑнете OK." + +msgid "Image: " +msgstr "Имидж: " + +msgid "Immediate shutdown" +msgstr "" + +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "" + +msgid "In progress" +msgstr "" + +msgid "Inactivity Sleeptimer" +msgstr "" + +msgid "Include AIT in http streams" +msgstr "" + +msgid "Include ECM in http streams" +msgstr "" + +msgid "Include EIT in http streams" +msgstr "" + +msgid "Incorrect type service for PiP!" +msgstr "" + +msgid "Increased voltage" +msgstr "Увеличен волтаж" + +msgid "Index" +msgstr "ИндекÑ" + +msgid "Index allocated:" +msgstr "" + +msgid "Info" +msgstr "Инфо" + +msgid "Info bar" +msgstr "Инфо Лента" + +msgid "Info bar timeout" +msgstr "Времетраене ИнфоЛента" + +msgid "Infobar frontend data source" +msgstr "" + +msgid "Information" +msgstr "ИнформациÑ" + +msgid "Init" +msgstr "" + +msgid "Initial fast forward speed" +msgstr "" + +msgid "Initial location in new timers" +msgstr "" + +msgid "Initial lock ratio" +msgstr "" + +msgid "Initial rewind speed" +msgstr "" + +msgid "Initial signal quality" +msgstr "" + +msgid "Initial signal quality:" +msgstr "" + +msgid "Initialization" +msgstr "ИнициализациÑ" + +msgid "Initialize" +msgstr "Инициализирай" + +msgid "Initializing storage device..." +msgstr "Инициализиране Твърд диÑк..." + +msgid "Input" +msgstr "Въведи" + +msgid "Input device setup" +msgstr "" + +msgid "Input devices" +msgstr "" + +msgid "Install" +msgstr "ИнÑталирай" + +msgid "Install a new image with a USB stick" +msgstr "ИнÑталирай нов имидж Ñ USB Ñтик" + +msgid "Install a new image with your web browser" +msgstr "ИнÑталирай нов имидж Ñ ÑƒÐµÐ± браузър" + +msgid "Install channel list" +msgstr "ИнÑталирай ÑпиÑък Ñ ÐºÐ°Ð½Ð°Ð»Ð¸" + +msgid "Install extensions" +msgstr "" + +msgid "Install extensions." +msgstr "ИнÑталирай плъгини." + +msgid "Install local extension" +msgstr "ИнÑталирай плъгин от HDD,USB или .tmp" + +msgid "Install picons on" +msgstr "ИнÑталирай picons" + +msgid "Install softcam" +msgstr "ИнÑталирай Ñофткам" + +msgid "Installation has completed." +msgstr "ИнÑталирането завърши." + +msgid "Installation or removal has completed." +msgstr "ИнÑталирането или премахването завърши." + +msgid "Installing" +msgstr "ИнÑталиране" + +msgid "Installing software..." +msgstr "" + +msgid "Instant recording location" +msgstr "" + +msgid "Instant recording..." +msgstr "" + +msgid "Interface: " +msgstr "" + +msgid "Intermediate" +msgstr "Междинен" + +msgid "Internal flash" +msgstr "Вътрешна Флаш" + +msgid "Internal hdd only" +msgstr "" + +msgid "Interval between keys when repeating:" +msgstr "" + +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Избрана грешна директориÑ: %s" + +msgid "Invalid location" +msgstr "Грешно ÐœÑÑто" + +msgid "Invalid transponder data" +msgstr "" + +msgid "Inversion" +msgstr "ИнверÑиÑ" + +msgid "Invert" +msgstr "" + +msgid "Ipkg" +msgstr "" + +msgid "Is this setting ok?" +msgstr "" + +msgid "Is this video mode ok?" +msgstr "" + +msgid "Italian" +msgstr "ИталианÑки" + +msgid "Items per page " +msgstr "" + +msgid "Items per page for list screen" +msgstr "" + +msgid "Job overview" +msgstr "" + +msgid "Jump to beginning of list" +msgstr "" + +msgid "Jump to end of list" +msgstr "" + +msgid "Jump to next marked position" +msgstr "" + +msgid "Jump to previous marked position" +msgstr "" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +msgid "Just scale" +msgstr "" + +msgid "Keep service" +msgstr "" + +msgid "Kernel version: " +msgstr "" + +msgid "Keyboard" +msgstr "Клавиатура" + +msgid "Keyboard map" +msgstr "" + +msgid "Keyboard setup" +msgstr "ÐаÑтройка Клавиатура" + +msgid "LAN adapter" +msgstr "LAN Ðдаптер" + +msgid "LAN connection" +msgstr "" + +msgid "LNB" +msgstr "" + +msgid "Language" +msgstr "Език" + +msgid "Language selection" +msgstr "Избор Език" + +msgid "Last config" +msgstr "" + +msgid "Last speed" +msgstr "ПоÑледна ÑкороÑÑ‚" + +msgid "Last upgrade: " +msgstr "ПоÑледна актуализациÑ: " + +msgid "Latest Commits" +msgstr "" + +msgid "Latitude" +msgstr "Ширина" + +msgid "Latvian" +msgstr "ЛатвийÑки" + +msgid "Leave DVD player?" +msgstr "" + +msgid "Left" +msgstr "ЛÑва" + +msgid "Left from servicename" +msgstr "" + +msgid "Leisure hobbies" +msgstr "" + +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "" + +msgid "Letterbox zoom" +msgstr "" + +msgid "Limit character set for recording filenames" +msgstr "" + +msgid "Limit east" +msgstr "Източен лимит" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "" + +msgid "Limit west" +msgstr "Западен лимит" + +msgid "Limits cancelled" +msgstr "" + +msgid "Limits enabled" +msgstr "" + +msgid "Limits off" +msgstr "Изкл.лимити" + +msgid "Limits on" +msgstr "Бкл.лимити" + +msgid "Link quality:" +msgstr "" + +msgid "Link:" +msgstr "" + +msgid "Linked titles with a DVD menu" +msgstr "" + +msgid "List EPG functions..." +msgstr "" + +msgid "List available networks" +msgstr "" + +msgid "List mode" +msgstr "" + +msgid "List of storage devices" +msgstr "" + +msgid "List type" +msgstr "" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "" +msgstr[1] "" + +msgid "Listen to the radio..." +msgstr "" + +msgid "Lists reloaded!" +msgstr "" + +msgid "Lithuanian" +msgstr "ЛитовÑки" + +msgid "Load" +msgstr "Зареди" + +msgid "Load Length of Movies in Movielist" +msgstr "Зареди дължината на филма в ÑпиÑъка" + +msgid "Load length of movies in movie list" +msgstr "" + +msgid "Load playlist" +msgstr "" + +msgid "Local network" +msgstr "Локална Мрежа" + +msgid "Location" +msgstr "МеÑтоположение" + +msgid "Location for instant recordings" +msgstr "" + +msgid "Lock ratio" +msgstr "" + +msgid "Lock:" +msgstr "Закл:" + +msgid "Log results to harddisk" +msgstr "ЗапиÑване Log на Ñ‚Ð²ÑŠÑ€Ð´Ð¸Ñ Ð´Ð¸Ñк" + +msgid "Long filenames" +msgstr "" + +msgid "Long key press" +msgstr "Дълго натиÑкане на Бутон" + +msgid "Longitude" +msgstr "Дължина" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "" + +msgid "MMC card" +msgstr "" + +msgid "MORE" +msgstr "ОЩЕ" + +msgid "Main menu" +msgstr "ОÑновно Меню" + +msgid "Maintain old EPG data for" +msgstr "" + +msgid "Make this mark an 'in' point" +msgstr "" + +msgid "Make this mark an 'out' point" +msgstr "" + +msgid "Make this mark just a mark" +msgstr "" + +msgid "Manage extensions" +msgstr "Управление на пакети" + +msgid "Manage your receiver's software" +msgstr "Управление Ñофтуера на реÑийвъра" + +msgid "Manual" +msgstr "" + +msgid "Manual Scan" +msgstr "Ръчно ТърÑене" + +msgid "Manual configuration" +msgstr "" + +msgid "Manual scan" +msgstr "Ръчно Ñ‚ÑŠÑ€Ñене" + +msgid "Manual transponder" +msgstr "Ръчен транÑпондер" + +msgid "Manufacturer" +msgstr "Производител" + +msgid "Margin after recording (minutes)" +msgstr "" + +msgid "Margin before recording (minutes)" +msgstr "" + +msgid "Max memory positions" +msgstr "" + +msgid "Max. bitrate: " +msgstr "" + +msgid "Media player" +msgstr "Медиа Плеър" + +msgid "Media scanner" +msgstr "" + +msgid "Medium is not a writeable DVD!" +msgstr "" + +msgid "Medium is not empty!" +msgstr "" + +msgid "Memory" +msgstr "" + +msgid "Memory index" +msgstr "" + +msgid "Menu" +msgstr "Меню" + +msgid "Message" +msgstr "Съобщение" + +msgid "Message..." +msgstr "Съобщение..." + +#, python-format +msgid "Minimum age %d years" +msgstr "" + +msgid "Minimum send interval" +msgstr "" + +msgid "Missing " +msgstr "" + +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "" + +msgctxt "Video output mode" +msgid "Mode" +msgstr "" + +msgid "Model: " +msgstr "Модел: " + +msgid "Modulation" +msgstr "МодулациÑ" + +msgid "Modulator" +msgstr "Модулатор" + +msgid "Mon" +msgstr "Пон" + +msgid "Mon-Fri" +msgstr "Пон-Пет" + +msgid "Monday" +msgstr "Понеделник" + +msgid "Mosquito noise reduction" +msgstr "" + +msgid "Mount" +msgstr "" + +msgid "Move" +msgstr "" + +msgid "Move PiP to main picture" +msgstr "" + +msgid "Move Picture in Picture" +msgstr "МеÑтене PiP" + +msgid "Move east" +msgstr "Завърти на изток" + +msgid "Move to other directory" +msgstr "" + +msgid "Move to position X" +msgstr "" + +msgid "Move west" +msgstr "Завърти на запад" + +msgid "Moved to position 0" +msgstr "" + +msgid "Moved to position at index" +msgstr "" + +msgid "Movement" +msgstr "" + +msgid "Movie List Configuration" +msgstr "" + +msgid "Movie Selection" +msgstr "" + +msgid "Movie list configuration" +msgstr "" + +msgid "Movie location" +msgstr "" + +msgid "Movie selection" +msgstr "" + +msgid "Movie/Drama" +msgstr "" + +msgid "Movielist menu" +msgstr "" + +msgid "Moving" +msgstr "" + +msgid "Moving east ..." +msgstr "" + +msgid "Moving to position" +msgstr "" + +msgid "Moving west ..." +msgstr "" + +msgid "Multi EPG" +msgstr "Мулти ЕПГ" + +msgid "Multi-EPG bouquet selection" +msgstr "" + +msgid "Multimedia" +msgstr "Мултимедиа" + +msgid "Multiple service support" +msgstr "" + +msgid "Multiplex" +msgstr "" + +msgid "Multisat" +msgstr "" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "" + +msgid "Mute" +msgstr "Без звук" + +msgid "N/A" +msgstr "" + +msgid "NEXT" +msgstr "Следващ" + +msgid "NFI image flashing" +msgstr "" + +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "Завърши флашването на имидж. ÐатиÑнете Жълт за РеÑтарт!" + +msgid "NIM" +msgstr "" + +msgid "NOW" +msgstr "Сега" + +msgid "NTSC" +msgstr "" + +msgid "Name" +msgstr "Име" + +msgid "Nameserver" +msgstr "DNS" + +#, python-format +msgid "Nameserver %d" +msgstr "DNS %d" + +msgid "Nameserver settings" +msgstr "ÐаÑтройки DNS" + +msgid "Nameserver setup" +msgstr "ÐаÑтройки DNS" + +msgid "Namespace" +msgstr "" + +msgid "Netmask" +msgstr "МаÑка" + +msgid "Network" +msgstr "Мрежа" + +msgid "Network ID" +msgstr "" + +msgid "Network configuration..." +msgstr "Мрежова КонфигурациÑ..." + +msgid "Network mount" +msgstr "Мрежов Маунт" + +#, python-format +msgid "Network mount %s" +msgstr "" + +msgid "Network name (SSID)" +msgstr "" + +msgid "Network scan" +msgstr "ТърÑене в мрежа" + +msgid "Network setup" +msgstr "ÐаÑтройки на Мрежа" + +msgid "Network test" +msgstr "ТеÑÑ‚ на мрежата" + +msgid "Network test..." +msgstr "ТеÑÑ‚ на мрежата..." + +msgid "Network test: " +msgstr "" + +msgid "Network wizard" +msgstr "Мрежов Помощник" + +msgid "Network:" +msgstr "Мрежа:" + +msgid "New" +msgstr "Ðови Канали" + +msgid "New PIN" +msgstr "Ðов ПИÐ" + +msgid "New version:" +msgstr "Ðова верÑиÑ:" + +msgid "News Current Affairs" +msgstr "" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "Следва" + +msgid "No" +msgstr "Ðе" + +msgid "No (supported) DVDROM found!" +msgstr "Ðе е намерен подходÑщ DVDROM!" + +msgid "No Connection" +msgstr "ÐÑма Връзка!" + +msgid "No HDD found or HDD not initialized!" +msgstr "HDD Ðе е намерен или не е инициализиран!" + +msgid "No backup needed" +msgstr "ÐÑма нужда от backup" + +msgid "No cable tuner found!" +msgstr "" + +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"ÐÑма данни на транÑпондера!\n" +"(Timeout reading PAT)" + +msgid "No delay" +msgstr "" + +msgid "No description available." +msgstr "ÐÑма налично опиÑание." + +msgid "No details for this image file" +msgstr "ÐÑма данни за този имидж файл" + +msgid "No displayable files on this medium found!" +msgstr "" + +msgid "No event info found, recording indefinitely." +msgstr "ÐÑма инфо за предаването, незабавен запиÑ." + +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "" + +msgid "No free index available" +msgstr "" + +msgid "No free tuner!" +msgstr "ÐÑма Ñвободен тунер!" + +msgid "No network connection available." +msgstr "" + +msgid "No networks found" +msgstr "Ðе Ñа открити мрежи!" + +msgid "No new plugins found" +msgstr "" + +msgid "No positioner capable frontend found." +msgstr "Ðе е открит ÑъвмеÑтим позиционер." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "" + +msgid "No services/providers selected" +msgstr "" + +msgid "No standby" +msgstr "" + +msgid "No suitable sat tuner found!" +msgstr "" + +msgid "No tags are set on these movies." +msgstr "" + +msgid "No timeout" +msgstr "" + +msgid "No to all" +msgstr "" + +msgid "No transparency" +msgstr "" + +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "ÐÑма конфигуриран тунер Ñ diseqc позиционер!" + +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"ÐÑма избран тунер!\n" +"ÐœÐ¾Ð»Ñ Ð½Ð°Ñтройте Ð²Ð°ÑˆÐ¸Ñ Ñ‚ÑƒÐ½ÐµÑ€ преди Ñ‚ÑŠÑ€Ñене на канали." + +msgid "No updates available" +msgstr "" + +msgid "No updates available. Please try again later." +msgstr "" + +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Ðе е открит валиде ПИРза канали!\n" +"ИÑкате ли да Ñмените ПИРÑега?\n" +"Ðко изберете 'Ðе' нÑма да има защита на каналите!" + +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Ðе е открит валиде ПИРза наÑтройки!\n" +"ИÑкате ли да Ñмените ПИРÑега?\n" +"Ðко изберете 'Ðе' нÑма да има защита на наÑтройките!" + +msgid "No wireless networks found! Searching..." +msgstr "" + +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"ÐÑма открит мрежов адаптер.\n" +"ÐœÐ¾Ð»Ñ ÑƒÐ²ÐµÑ€ÐµÑ‚Ðµ Ñе, че Ñте включили Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ ÐºÐ°Ð±ÐµÐ» и вашата мрежа е конфигурирана правилно." + +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"ÐÑма открит безжичен мрежов адаптер.\n" +"ÐœÐ¾Ð»Ñ ÑƒÐ²ÐµÑ€ÐµÑ‚Ðµ Ñе, че Ñте включили ÑъвмеÑтимо WLAN уÑтройÑтво и вашата мрежа е конфигурирана правилно." + +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"ÐÑма открит безжичен мрежов интерфейÑ.\n" +"ÐœÐ¾Ð»Ñ ÑƒÐ²ÐµÑ€ÐµÑ‚Ðµ Ñе, че Ñте включили ÑъвмеÑтимо WLAN уÑтройÑтво или включете Ð²Ð°ÑˆÐ¸Ñ LAN интерфейÑ." + +msgid "No, but restart from begin" +msgstr "Ðе, но реÑтартирай от начало" + +msgid "No, do nothing." +msgstr "Ðе не прави нищо." + +msgid "No, just start my receiver" +msgstr "Ðе, проÑто Ñтартирай Clarke-Tech" + +msgid "No, never" +msgstr "" + +msgid "None" +msgstr "Ðикой" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "" + +msgid "Normal mode" +msgstr "" + +msgid "North" +msgstr "Север" + +msgid "Norwegian" +msgstr "Ðорвежки" + +msgid "Not associated" +msgstr "" + +msgid "Not configured" +msgstr "" + +#, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "" + +msgid "Nothing connected" +msgstr "" + +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Ðищо за Ñканиране!\n" +"ÐœÐ¾Ð»Ñ Ð½Ð°Ñтройте Ð²Ð°ÑˆÐ¸Ñ Ñ‚ÑƒÐ½ÐµÑ€ преди Ñ‚ÑŠÑ€Ñене на канали." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "Сега" + +msgid "Now playing" +msgstr "" + +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Сега използвайте наÑтройките за контраÑта за да увеличите ÑркоÑтта на фона колкото Ñе може повече, но така, че да виждате разликите между двете най-Ñрки нива на Ñенките. Ðко Ñте го направили, натиÑнете OK." + +msgid "OK" +msgstr "" + +msgid "OK, guide me through the upgrade process" +msgstr "OK, води ме през процеÑа на ъпгрейд" + +msgid "ONID" +msgstr "" + +msgid "OSD name request" +msgstr "" + +msgid "OSD settings" +msgstr "OSD ÐаÑтройки" + +msgid "OSD transparency" +msgstr "OSD прозрачноÑÑ‚" + +msgid "Off" +msgstr "Изкл." + +msgid "Offline decode delay (ms)" +msgstr "" + +msgid "Ok" +msgstr "" + +msgid "On" +msgstr "Вкл." + +msgid "On end of movie" +msgstr "" + +msgid "On end of movie (as menu)" +msgstr "" + +msgid "One" +msgstr "Един" + +msgid "Only extensions." +msgstr "" + +msgid "Only free scan" +msgstr "ТърÑене Ñамо Свободни" + +msgid "Open service list" +msgstr "" + +msgid "Open the movie list" +msgstr "" + +msgid "Orbital position" +msgstr "Орбитална ПозициÑ" + +msgid "Original" +msgstr "" + +msgid "Other" +msgstr "" + +msgid "Output" +msgstr "" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "" + +msgid "Overwrite configuration files?" +msgstr "" + +msgid "PAL" +msgstr "" + +msgid "PCR PID" +msgstr "" + +msgid "PIDs" +msgstr "" + +msgid "PIN code needed" +msgstr "Ðужен е ПИРкод" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "" + +msgid "Package list update" +msgstr "Ъпдейт на ÑпиÑъка Ñ Ð¿Ð°ÐºÐµÑ‚Ð¸" + +msgid "Packet management" +msgstr "Управление на пакети" + +msgid "Packet manager" +msgstr "Управление на пакети" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +msgid "Pan&scan" +msgstr "" + +msgid "Parent directory" +msgstr "Главна ДиректориÑ" + +msgid "Parental control" +msgstr "РодителÑки контрол" + +msgid "Parental control services editor" +msgstr "" + +msgid "Parental control setup" +msgstr "ÐаÑтройки РодителÑки контрол" + +msgid "Parental control type" +msgstr "Вид РодителÑки контрол" + +msgid "Password" +msgstr "Парола" + +msgid "Pause" +msgstr "" + +msgid "Pause movie at end" +msgstr "При завършване на филма натиÑни пауза" + +msgid "Pause playback" +msgstr "" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "" + +msgid "Percentage right" +msgstr "" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "" + +msgid "Permanently remove all deleted items" +msgstr "" + +msgid "Persian" +msgstr "" + +msgid "Phone number" +msgstr "Телефонен номер" + +msgid "PiP setup" +msgstr "" + +msgid "Picon" +msgstr "" + +msgid "Picon and service name" +msgstr "" + +msgid "Picture player" +msgstr "" + +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "" + +msgid "Pilot" +msgstr "" + +msgid "Play" +msgstr "ПуÑни" + +msgid "Play DVD" +msgstr "ПуÑни DVD" + +msgid "Play audio in background" +msgstr "" + +msgid "Play audio-CD..." +msgstr "" + +msgid "Play back media files" +msgstr "" + +msgid "Play entry" +msgstr "" + +msgid "Play from next mark or playlist entry" +msgstr "" + +msgid "Play from previous mark or playlist entry" +msgstr "" + +msgid "Play music..." +msgstr "ПуÑни Музика..." + +msgid "Play next" +msgstr "" + +msgid "Play next (return to movie list)" +msgstr "" + +msgid "Play next (return to previous service)" +msgstr "" + +msgid "Play previous" +msgstr "" + +msgid "Play recorded movies..." +msgstr "ПуÑни запиÑаните филми..." + +msgid "Please add titles to the compilation." +msgstr "" + +msgid "Please change recording endtime" +msgstr "Променете времето за край на запиÑа" + +msgid "Please check your network settings!" +msgstr "ÐœÐ¾Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐµÑ‚Ðµ мрежовите наÑтройки!" + +msgid "Please choose an extension..." +msgstr "ÐœÐ¾Ð»Ñ Ð¸Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ разширение..." + +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Конфигурирайте или потвърдете вашиите DNS Ñървъри като попълните нужните данни.\n" +"Когато Ñте готови натиÑнете ОК за да продължа." + +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Конфигурирайте вашата интернет връзка като попълните нужните данни.\n" +"Когато Ñте готови натиÑнете ОК за да продължа." + +msgid "Please connect your receiver to the internet" +msgstr "" + +msgid "Please do not change any values unless you know what you are doing!" +msgstr "ÐœÐ¾Ð»Ñ Ð½Ðµ променÑйте данните оÑвен ако знаете какво вършите!" + +msgid "Please enter a name for the new bouquet" +msgstr "ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ име за Ð½Ð¾Ð²Ð¸Ñ Ð±ÑƒÐºÐµÑ‚" + +msgid "Please enter a name for the new marker" +msgstr "ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ име за новата отметка" + +msgid "Please enter a new filename" +msgstr "ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ ново име за файла" + +msgid "Please enter filename (empty = use current date)" +msgstr "ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ име за файла (празно = текуща дата)" + +msgid "Please enter name of the new directory" +msgstr "ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ име за новата директориÑ" + +msgid "Please enter new name:" +msgstr "" + +msgid "Please enter the correct pin code" +msgstr "ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ коректен ПИРкод" + +msgid "Please enter the old PIN code" +msgstr "" + +msgid "Please follow the instructions on the TV" +msgstr "ÐœÐ¾Ð»Ñ Ñледвайте инÑтрукциите на ТВ" + +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "Имайте напредвид, че предишно избраното у-во не е доÑтъпно и Ñледователно вмеÑто него Ñе използва Ñтандартната директориÑ." + +msgid "Please press OK to continue." +msgstr "ÐатиÑнете ОК за да продължите." + +msgid "Please select a default EPG type..." +msgstr "" + +msgid "Please select a playlist to delete..." +msgstr "ÐœÐ¾Ð»Ñ Ð¸Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ плейлиÑÑ‚ за изтриване..." + +msgid "Please select a playlist..." +msgstr "ÐœÐ¾Ð»Ñ Ð¸Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ плейлиÑÑ‚..." + +msgid "Please select a sub service..." +msgstr "" + +msgid "Please select a subservice to record..." +msgstr "ÐœÐ¾Ð»Ñ Ð¸Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ подканал за запиÑ..." + +msgid "Please select a subservice..." +msgstr "ÐœÐ¾Ð»Ñ Ð¸Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ подканал..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "" + +msgid "Please select medium to be scanned" +msgstr "ÐœÐ¾Ð»Ñ Ð¸Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ Среда за Сканиране" + +msgid "Please select medium to use as backup location" +msgstr "ÐœÐ¾Ð»Ñ Ð¸Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ уÑтройÑтво за backup" + +msgid "Please select tag to filter..." +msgstr "" + +msgid "Please select the movie path..." +msgstr "ÐœÐ¾Ð»Ñ Ð¸Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ път към филма..." + +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"ÐœÐ¾Ð»Ñ Ð¸Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ мрежов Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÐºÐ¾Ð¹Ñ‚Ð¾ иÑкате да използвате за вашата интернет връзка.\n" +"\n" +"ÐатиÑнете ОК за да продължите." + +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"ÐœÐ¾Ð»Ñ Ð¸Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ безжичната мрежа Ñ ÐºÐ¾Ñто иÑкате да Ñе Ñвържете.\n" +"\n" +"ÐатиÑнете ОК за да продължите." + +msgid "Please set up tuner A" +msgstr "" + +msgid "Please set up tuner B" +msgstr "ÐœÐ¾Ð»Ñ Ð½Ð°Ñтройте тунер Ð’" + +msgid "Please set up tuner C" +msgstr "ÐœÐ¾Ð»Ñ Ð½Ð°Ñтройте тунер С" + +msgid "Please set up tuner D" +msgstr "ÐœÐ¾Ð»Ñ Ð½Ð°Ñтройте тунер D" + +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Използвайте Ñтрелките за меÑтене прозореца на PiP.\n" +"ÐатиÑнете Букет +/- за промÑна размера на прозореца.\n" +"ÐатиÑнете OK за връщане в ТВ режим или EXIT за отмÑна на меÑтенето." + +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "Използвайте UP и DOWN бутони за избор на Ð²Ð°ÑˆÐ¸Ñ ÐµÐ·Ð¸Ðº. След това натиÑнете ОК" + +msgid "Please wait" +msgstr "" + +msgid "Please wait (downloading channel list)" +msgstr "" + +msgid "Please wait (downloading softcam)" +msgstr "" + +msgid "Please wait (updating packages)" +msgstr "" + +msgid "Please wait for activation of your network configuration..." +msgstr "ÐœÐ¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ за активиране на вашите мрежови наÑтройки..." + +msgid "Please wait while scanning is in progress..." +msgstr "ÐœÐ¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ докато завърши Ñканирането..." + +msgid "Please wait while we configure your network..." +msgstr "ÐœÐ¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ докате Ñе конфигурира мрежата..." + +msgid "Please wait while we prepare your network interfaces..." +msgstr "ÐœÐ¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ подготовката на Ð²Ð°ÑˆÐ¸Ñ Ð¼Ñ€ÐµÐ¶Ð¾Ð² интерфейÑ..." + +msgid "Please wait while we test your network..." +msgstr "ÐœÐ¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ теÑта на вашата мрежа..." + +msgid "Please wait while your network is restarting..." +msgstr "ÐœÐ¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ докате мрежата Ñе реÑтартира..." + +msgid "Please wait..." +msgstr "ÐœÐ¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ..." + +msgid "Please wait... Loading list..." +msgstr "ÐœÐ¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ...Зареждам ÑпиÑък..." + +msgid "Plugin browser" +msgstr "Плъгин браузър" + +msgid "Plugin manager activity information" +msgstr "" + +msgid "Plugin manager help" +msgstr "" + +msgid "Plugins" +msgstr "Плъгини" + +msgid "Polarisation" +msgstr "" + +msgid "Polarisation:" +msgstr "" + +msgid "Polarization" +msgstr "ПолÑризациÑ" + +msgid "Polish" +msgstr "ПолÑки" + +msgid "Port A" +msgstr "Порт Ð" + +msgid "Port B" +msgstr "Порт B" + +msgid "Port C" +msgstr "Порт C" + +msgid "Port D" +msgstr "Порт D" + +msgid "Portuguese" +msgstr "ПортугалÑки" + +msgid "Position of completed timers in timerlist" +msgstr "" + +msgid "Position stored at index" +msgstr "" + +msgid "Positioner" +msgstr "Позиционер" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "" + +msgid "Positioner setup" +msgstr "ÐаÑтройка позиционер" + +msgid "Power threshold in mA" +msgstr "Праг на захранването в mA" + +msgid "Predefined transponder" +msgstr "Определен транÑпондер" + +msgid "Prefer AC3 track" +msgstr "" + +msgid "Prefer AC3+ track" +msgstr "" + +msgid "Prefer audio track stored by service" +msgstr "" + +msgid "Prefer graphical DVB subtitles" +msgstr "" + +msgid "Prefer subtitles for hearing impaired" +msgstr "" + +msgid "Prefer subtitles stored by service" +msgstr "" + +msgid "Preferred tuner" +msgstr "" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "" + +msgid "Preparing... Please wait" +msgstr "Подготовка...ÐœÐ¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ" + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "" + +msgid "Press MENU on your remote control for additional options." +msgstr "" + +msgid "Press OK on your remote control to continue." +msgstr "ÐатиÑнете ОК на диÑтанционното за да продължите." + +msgid "Press OK to activate the selected skin." +msgstr "" + +msgid "Press OK to activate the settings." +msgstr "ÐатиÑнете ОК за да активирате наÑтройките." + +msgid "Press OK to edit the settings." +msgstr "ÐатиÑнете ОК за да редактирате наÑтройките." + +#, python-format +msgid "Press OK to get further details for %s" +msgstr "ÐатиÑнете ОК за повече детайли отноÑно %s" + +msgid "Press OK to scan" +msgstr "ÐатиÑнете ОК за Ñ‚ÑŠÑ€Ñене" + +msgid "Press OK to select a provider." +msgstr "" + +msgid "Press OK to select satellites" +msgstr "" + +msgid "Press OK to select/deselect a CAId." +msgstr "" + +msgid "Press OK to start the scan" +msgstr "ÐатиÑнете ОК за да започне Ñ‚ÑŠÑ€Ñенето" + +msgid "Press OK to toggle the selection" +msgstr "" + +msgid "Press OK to toggle the selection." +msgstr "" + +msgid "Press yellow to set this interface as default interface." +msgstr "" + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "" + +msgid "Preview" +msgstr "" + +msgid "Preview menu" +msgstr "Меню преглед" + +msgid "Preview selected channel" +msgstr "" + +msgid "Primary DNS" +msgstr "ОÑновен DNS" + +msgid "Priority" +msgstr "Приоритет" + +msgid "Process" +msgstr "" + +msgid "Progress" +msgstr "" + +msgid "Progress bar left" +msgstr "" + +msgid "Progress bar right" +msgstr "" + +msgid "Properties of current title" +msgstr "СвойÑтва за текущото заглавие" + +msgid "Protect services" +msgstr "Защита канали" + +msgid "Protect setup" +msgstr "Защита наÑтройки" + +msgid "Provider" +msgstr "Провайдър" + +msgid "Provider to scan" +msgstr "Сканиране на Провайдър" + +msgid "Providers" +msgstr "Провайдъри" + +msgid "Put TV in standby" +msgstr "" + +msgid "Put receiver in standby" +msgstr "" + +msgid "Python frontend for /tmp/mmi.socket" +msgstr "" + +msgid "Quick" +msgstr "Бързо" + +msgid "Quick zap" +msgstr "" + +msgid "RF output" +msgstr "RF изход" + +msgid "RGB" +msgstr "" + +msgid "Radio" +msgstr "Радио" + +msgid "Ram disk" +msgstr "" + +msgid "Random" +msgstr "Произволно" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "" + +msgid "Rating undefined" +msgstr "" + +msgid "Really close without saving settings?" +msgstr "Да Ð·Ð°Ñ‚Ð²Ð¾Ñ€Ñ Ð»Ð¸ без Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° наÑтройките?" + +msgid "Really delete done timers?" +msgstr "Да Ð¸Ð·Ñ‚Ñ€Ð¸Ñ Ð»Ð¸ завършените таймери?" + +msgid "Really exit the subservices quickzap?" +msgstr "Изход от бързо превключване на подканали?" + +msgid "Really reboot now?" +msgstr "Да реÑтартирам ли Ñега?" + +msgid "Really restart now?" +msgstr "Да реÑтартирам ли Ñега?" + +msgid "Really shutdown now?" +msgstr "Да изключа ли приемника?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "" + +msgid "Reboot" +msgstr "РеÑтарт" + +msgid "Rec" +msgstr "" + +msgid "Reception settings" +msgstr "" + +msgid "Record" +msgstr "ЗапиÑ" + +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "Времето за Ð·Ð°Ð¿Ð¸Ñ Ðµ ограничено поради конфликт Ñ Ñ‚Ð°Ð¹Ð¼ÐµÑ€ %s" + +msgid "Recorded files..." +msgstr "ЗапиÑани файлове..." + +msgid "Recording" +msgstr "ЗапиÑ" + +msgid "Recording in progress" +msgstr "" + +msgid "Recording paths" +msgstr "" + +msgid "Recording type" +msgstr "" + +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "ЗапиÑ(и) Ñе извършват или ще започнат до нÑколко Ñекунди!" + +msgid "Recordings" +msgstr "ЗапиÑи" + +msgid "Recordings always have priority" +msgstr "ЗапиÑите винаги Ñа Ñ Ð¿Ñ€Ð¸Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚" + +msgid "Red button..." +msgstr "" + +msgid "Reenter new PIN" +msgstr "Въведете отново Ð½Ð¾Ð²Ð¸Ñ ÐŸÐ˜Ð" + +msgid "Refresh rate" +msgstr "" + +msgid "Refresh rate selection." +msgstr "Избор чеÑтота на обновÑване." + +msgid "Regard deep standby as standby" +msgstr "" + +msgid "Relative" +msgstr "" + +msgid "Reload" +msgstr "Презареди" + +msgid "Reload black-/white lists" +msgstr "Презареди черен/бÑл ÑпиÑък" + +msgid "Reloading bouquets and services..." +msgstr "" + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "Помни ПИРкода" + +msgid "Remember these settings for each folder" +msgstr "" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "" + +msgid "Remote control type" +msgstr "" + +msgid "Removal has completed." +msgstr "" + +msgid "Remove" +msgstr "Премахни" + +msgid "Remove a mark" +msgstr "Премахни Отметка" + +msgid "Remove a nameserver entry" +msgstr "" + +msgid "Remove bookmark" +msgstr "" + +msgid "Remove completed timers after (days)" +msgstr "" + +msgid "Remove currently selected title" +msgstr "Премахни избраното заглавие" + +msgid "Remove items from trash can after (days)" +msgstr "" + +msgid "Remove plugins" +msgstr "Премахни Плъгини" + +msgid "Remove title" +msgstr "Премахни заглавие" + +msgid "Removing" +msgstr "Премахвам" + +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Грешка при премахване на Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ %s. (Може би не е празна.)" + +msgid "Removing partition table" +msgstr "" + +msgid "Rename" +msgstr "Преименувай" + +msgid "Repeat" +msgstr "Повтори" + +msgid "Repeat type" +msgstr "" + +msgid "Repeating event currently recording... What do you want to do?" +msgstr "ПовтарÑщо Ñе предаване Ñе запиÑва... Какво иÑкате да направÑ?" + +msgid "Repeats" +msgstr "ПовторениÑ" + +msgid "Require authentication for http streams" +msgstr "" + +msgid "Required medium type:" +msgstr "" + +msgid "Rereading partition table" +msgstr "" + +msgid "Reserved" +msgstr "" + +msgid "Reset" +msgstr "" + +msgid "Reset and renumerate title names" +msgstr "" + +msgid "Reset playback position" +msgstr "" + +msgid "Reset video enhancement settings to system defaults?" +msgstr "" + +msgid "Reset video enhancement settings to your last configuration?" +msgstr "" + +msgid "Resolution" +msgstr "РезолюциÑ" + +msgid "Restart" +msgstr "РеÑтарт" + +msgid "Restart GUI now?" +msgstr "РеÑтарт GUI Ñега?" + +msgid "Restart enigma" +msgstr "РеÑтарт енигма" + +msgid "Restart network" +msgstr "РеÑтарт мрежа" + +msgid "Restart test" +msgstr "РеÑтарт теÑÑ‚" + +msgid "Restart your network connection and interfaces.\n" +msgstr "РеÑтартиране на мрежата и интерфейÑите.\n" + +msgid "Restore" +msgstr "ВъзÑтановаване" + +msgid "Restore backups" +msgstr "ВъзÑтановÑване backups" + +msgid "Restore is running..." +msgstr "" + +msgid "Restore system settings" +msgstr "ВъзÑтановÑване на ÑиÑтемните наÑтройки" + +msgid "Restoring..." +msgstr "" + +msgid "Resume from last position" +msgstr "Възобнови от поÑледното мÑÑто" + +#, python-format +msgid "Resume position at %s" +msgstr "" + +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "ВъзобновÑване на възпроизвеждането" + +msgid "Return to movie list" +msgstr "Връщане към ÑпиÑъка Ñ Ñ„Ð¸Ð»Ð¼Ð¸" + +msgid "Return to previous service" +msgstr "Връщане към предишен канал" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +msgid "Rewind speeds" +msgstr "СкороÑÑ‚ на превъртане" + +msgid "Rewrap teletext subtitles" +msgstr "" + +msgid "Right" +msgstr "ДÑÑно" + +msgid "Right from servicename" +msgstr "" + +msgid "Roll-off" +msgstr "" + +msgid "Romanian" +msgstr "" + +msgid "Root directory" +msgstr "" + +msgid "Rotor step position:" +msgstr "" + +msgid "Rotor turning speed" +msgstr "СкороÑÑ‚ на въртене на мотора" + +msgid "Round start time on" +msgstr "" + +msgid "Russian" +msgstr "РуÑки" + +msgid "S-Video" +msgstr "" + +msgid "SID" +msgstr "" + +msgid "SINGLE LAYER DVD" +msgstr "" + +msgid "SNR" +msgstr "" + +msgid "SNR:" +msgstr "" + +msgid "SSID:" +msgstr "" + +msgid "Same resolution as skin" +msgstr "" + +msgid "Sat" +msgstr "Съб" + +msgid "Satellite" +msgstr "Сателит" + +msgid "Satellite dish setup" +msgstr "" + +msgid "Satellite equipment" +msgstr "" + +msgid "Satellite equipment setup" +msgstr "" + +msgid "Satellite longitude:" +msgstr "" + +msgid "Satellites" +msgstr "Сателити" + +msgid "Satfinder" +msgstr "ТърÑене на Сателити" + +msgid "Sats" +msgstr "Сателити" + +msgid "Saturation" +msgstr "" + +msgid "Saturday" +msgstr "Събота" + +msgid "Save" +msgstr "Запази" + +msgid "Save playlist" +msgstr "" + +msgid "Save timeshift file" +msgstr "" + +msgid "Save timeshift file in movie directory" +msgstr "" + +msgid "Scaler sharpness" +msgstr "" + +msgid "Scaling mode" +msgstr "" + +msgid "Scan" +msgstr "" + +msgid "Scan " +msgstr "ТърÑене " + +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, python-format +msgid "Scan %s" +msgstr "" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, python-format +msgid "Scan %s band" +msgstr "" + +msgid "Scan additional SR" +msgstr "" + +msgid "Scan files..." +msgstr "" + +msgid "Scan wireless networks" +msgstr "" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "" + +#, python-format +msgid "Scanning %s..." +msgstr "" + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "" +msgstr[1] "" + +msgid "Scanning failed!" +msgstr "" + +msgid "Scanning..." +msgstr "" + +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "" + +msgid "Search east" +msgstr "ТърÑене на изток" + +msgid "Search west" +msgstr "ТърÑене на запад" + +msgid "Searching" +msgstr "" + +msgid "Searching east ..." +msgstr "" + +msgid "Searching for available updates. Please wait..." +msgstr "" + +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "ТърÑене на нови инÑталирани или премахнати пакети. ÐœÐ¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ..." + +msgid "Searching west ..." +msgstr "" + +msgid "Second cable of motorized LNB" +msgstr "" + +msgid "Secondary DNS" +msgstr "Допълнителен DNS" + +msgid "Seek" +msgstr "ТърÑи" + +msgid "Seek backward" +msgstr "" + +msgid "Seek backward (enter time)" +msgstr "" + +msgid "Seek forward" +msgstr "" + +msgid "Seek forward (enter time)" +msgstr "" + +msgid "Select" +msgstr "Избери" + +msgid "Select CAId" +msgstr "" + +msgid "Select HDD" +msgstr "Избери HDD" + +msgid "Select a bouquet" +msgstr "" + +msgid "Select a movie" +msgstr "Изберете филм" + +msgid "Select a network adapter" +msgstr "Изберете Мрежов Ðдаптер" + +msgid "Select a skin" +msgstr "" + +msgid "Select a tuner" +msgstr "" + +msgid "Select a wireless network" +msgstr "" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +msgid "Select an image to be downloaded" +msgstr "" + +msgid "Select audio track" +msgstr "Изберете аудио" + +msgid "Select backup files" +msgstr "" + +msgid "Select backup location" +msgstr "" + +msgid "Select channel to record from" +msgstr "Изберете канал за запиÑ" + +msgid "Select copy destination for:" +msgstr "" + +msgid "Select default EPG type..." +msgstr "" + +msgid "Select desired image from feed list" +msgstr "" + +msgid "Select destination for:" +msgstr "" + +msgid "Select files for backup." +msgstr "" + +msgid "Select files/folders to backup" +msgstr "" + +msgid "Select input device" +msgstr "" + +msgid "Select input device." +msgstr "" + +msgid "Select interface" +msgstr "" + +msgid "Select location" +msgstr "" + +msgid "Select movie" +msgstr "" + +msgid "Select provider to add..." +msgstr "Добавете провайдър..." + +msgid "Select refresh rate" +msgstr "Изберете ÑкороÑÑ‚ за обновÑване" + +msgid "Select satellites" +msgstr "" + +msgid "Select service to add..." +msgstr "Добавете канал..." + +msgid "Select sort method:" +msgstr "" + +msgid "Select target folder" +msgstr "" + +msgid "Select the movie path" +msgstr "" + +msgid "Select upgrade source" +msgstr "" + +msgid "Select upgrade source to edit." +msgstr "" + +msgid "Select video input with up/down buttons" +msgstr "Изберете видео вход Ñ Ð±ÑƒÑ‚Ð¾Ð½Ð¸ нaгоре/надолу" + +msgid "Select video mode" +msgstr "Изберете видео режим" + +msgid "Select wireless network" +msgstr "Изберете безжична мрежа" + +msgid "Select your provider, and press OK to start the scan" +msgstr "" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +msgid "Send DiSEqC only on satellite change" +msgstr "Изпращай DiSEqC Ñамо при ÑмÑна на Ñателит" + +msgid "Separate titles with a main menu" +msgstr "" + +msgid "Sequence repeat" +msgstr "ПоÑледователни повторениÑ" + +msgid "Serbian" +msgstr "СръбÑки" + +msgid "Service" +msgstr "Канали" + +msgid "Service has been added to the favourites." +msgstr "Каналът беше добавен към предпочитани." + +msgid "Service has been added to the selected bouquet." +msgstr "Каналът беше добавен към Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¸Ñ Ð±ÑƒÐºÐµÑ‚." + +msgid "Service info" +msgstr "" + +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Ðевалиден канал!\n" +"(Timeout reading PMT)" + +msgid "Service name" +msgstr "" + +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Ðе е открит канал!\n" +"(SID не е открит в PAT)" + +msgid "Service reference" +msgstr "" + +msgid "Service scan" +msgstr "ТърÑене на Канали" + +msgid "Service searching" +msgstr "ТърÑене на Канали" + +msgid "Service title mode" +msgstr "" + +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"Каналът не е наличен!\n" +"Проверете наÑтройките на тунера!" + +msgid "Services" +msgstr "Канали" + +msgid "Set default" +msgstr "" + +msgid "Set end time" +msgstr "" + +msgid "Set fixed" +msgstr "" + +msgid "Set fps for external subtitles" +msgstr "" + +msgid "Set interface as default Interface" +msgstr "Ðаправи интерфейÑа като оÑновен ИнтерфейÑ" + +msgid "Set limits" +msgstr "ПоÑтавÑне лимити" + +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "" + +msgid "Set time window to 1 hour" +msgstr "" + +msgid "Set time window to 2 hours" +msgstr "" + +msgid "Set time window to 3 hours" +msgstr "" + +msgid "Set time window to 4 hours" +msgstr "" + +msgid "Set time window to 5 hours" +msgstr "" + +msgid "Set time window to 6 hours" +msgstr "" + +msgid "Set voltage and 22KHz" +msgstr "" + +msgid "Settings" +msgstr "ÐаÑтройки" + +msgid "Setup" +msgstr "ÐаÑтройки" + +msgid "Setup menu" +msgstr "" + +msgid "Setup mode" +msgstr "Режим ÐаÑтройки" + +msgid "Setup your positioner" +msgstr "" + +msgid "Setup your satellite equipment" +msgstr "" + +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "" + +msgid "Sharpness" +msgstr "" + +msgid "Short filenames" +msgstr "" + +msgid "Show EIT now/next in infobar" +msgstr "" + +msgid "Show EPG for current channel..." +msgstr "" + +msgid "Show EPG..." +msgstr "" + +msgid "Show Games show" +msgstr "" + +msgid "Show SNR percentage instead of dB value" +msgstr "" + +msgid "Show VCR scart on main menu" +msgstr "" + +msgid "Show WLAN status" +msgstr "Покажи WLAN СъÑтоÑние" + +msgid "Show animation while busy" +msgstr "" + +msgid "Show background in radio mode" +msgstr "" + +msgid "Show bouquet selection menu" +msgstr "" + +msgid "Show busy indicator when the system is busy." +msgstr "" + +msgid "Show channel numbers in channel selection" +msgstr "" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "" + +msgid "Show detailed event info" +msgstr "" + +msgid "Show event details" +msgstr "" + +msgid "Show event-progress in channel selection" +msgstr "" + +msgid "Show extended description" +msgstr "" + +msgid "Show extensions..." +msgstr "" + +msgid "Show icon for new/unseen items" +msgstr "" + +msgid "Show in extensions menu" +msgstr "" + +msgid "Show info" +msgstr "Покажи Инфо" + +msgid "Show info line" +msgstr "" + +msgid "Show infobar on channel change" +msgstr "Показвай инфобара при ÑмÑна на канал" + +msgid "Show infobar on event change" +msgstr "Показвай инфобар при ÑмÑна на предаване" + +msgid "Show infobar on skip forward/backward" +msgstr "Показвай инфобар при преÑкачане напред/назад" + +msgid "Show latest commits on sourceforge" +msgstr "" + +msgid "Show message when recording starts" +msgstr "Показвай Ñъобщение когато започне запиÑ" + +msgid "Show movie lengths in movielist" +msgstr "" + +msgid "Show multi channel EPG" +msgstr "" + +msgid "Show picons in channel list" +msgstr "" + +msgid "Show positioner movement" +msgstr "Показвай въртенето на антената" + +msgid "Show screensaver" +msgstr "" + +msgid "Show second infobar" +msgstr "" + +msgid "Show service type icons" +msgstr "" + +msgid "Show services beginning with" +msgstr "Показвай канали започващи Ñ" + +msgid "Show shutdown menu" +msgstr "" + +msgid "Show single service EPG" +msgstr "" + +msgid "Show status icons in Movielist" +msgstr "" + +msgid "Show status icons in movie list" +msgstr "" + +msgid "Show status icons in movielist" +msgstr "" + +msgid "Show tag menu" +msgstr "" + +msgid "Show the radio player..." +msgstr "Покажи радио плеъра..." + +msgid "Show the tv player..." +msgstr "Покажи ТВ плеъра..." + +msgid "Show warning when timeshift is stopped" +msgstr "" + +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Показва ÑтатуÑа на вашата безжична LAN връзка.\n" + +msgid "Shuffle playlist" +msgstr "" + +msgid "Shutdown" +msgstr "" + +msgid "Shutdown when in Standby" +msgstr "" + +msgid "Side by side" +msgstr "" + +msgid "Signal OK, proceeding" +msgstr "" + +msgid "Signal quality" +msgstr "" + +msgid "Signal strength:" +msgstr "Сила на Ñигнала:" + +msgid "Signal: " +msgstr "Сигнал: " + +msgid "Similar" +msgstr "Подобен" + +msgid "Similar broadcasts:" +msgstr "Подобни предаваниÑ:" + +msgid "Simple" +msgstr "ОпроÑтен" + +msgid "Simple titleset (compatibility for legacy players)" +msgstr "" + +msgid "Single" +msgstr "Единичен" + +msgid "Single EPG" +msgstr "ЕПГ на канал" + +msgid "Single satellite" +msgstr "Един Сателит" + +msgid "Single step (GOP)" +msgstr "" + +msgid "Single transponder" +msgstr "Един транÑпондер" + +msgid "Site latitude" +msgstr "" + +msgid "Site longitude" +msgstr "" + +msgid "Skin" +msgstr "Кожа..." + +msgid "Skins" +msgstr "Кожи" + +msgid "Skip empty services" +msgstr "" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "" + +msgid "Sleep timer" +msgstr "Tаймер за Сън" + +msgid "SleepTimer Configuration" +msgstr "" + +msgid "Sleeptimer" +msgstr "" + +msgid "Slide picture in loop" +msgstr "" + +msgid "Slide show interval (sec.)" +msgstr "" + +#, python-format +msgid "Slot %d" +msgstr "Слот %d" + +msgid "Slovak" +msgstr "" + +msgid "Slovenian" +msgstr "СловенÑки" + +msgid "Slow" +msgstr "Бавно" + +msgid "Slow motion speeds" +msgstr "СкороÑÑ‚ при забавено движение" + +msgid "Small progress" +msgstr "" + +msgid "Social/Political/Economics" +msgstr "" + +msgid "SoftCam / CI" +msgstr "" + +msgid "Softcam type" +msgstr "" + +msgid "Software" +msgstr "Софтуер" + +msgid "Software management" +msgstr "Управление Софтуер" + +msgid "Software manager setup" +msgstr "" + +msgid "Software restore" +msgstr "ВъзÑтановÑване на Софтуера" + +msgid "Software update" +msgstr "ÐÐºÑ‚ÑƒÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ð° Софтуера" + +msgid "Softwaremanager information" +msgstr "" + +msgid "Some plugins are not available:\n" +msgstr "ÐÑкои плъгини не Ñа налични:\n" + +#, python-format +msgid "Sorry, %s has not been installed!" +msgstr "" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "" + +msgid "Sorry, no backups found!" +msgstr "" + +msgid "Sorry, no details available!" +msgstr "" + +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" + +msgid "Sort" +msgstr "" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Подреждане A-Z" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort time" +msgstr "" + +msgid "Sound" +msgstr "Звук" + +msgid "Sound carrier" +msgstr "" + +msgid "Source request" +msgstr "" + +msgid "South" +msgstr "Юг" + +msgid "Spanish" +msgstr "ИÑпанÑки" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +msgid "Split preview mode" +msgstr "" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "" + +msgid "Standard" +msgstr "" + +msgid "Standart list" +msgstr "" + +msgid "Standby" +msgstr "ГотовноÑÑ‚" + +msgid "Standby / restart" +msgstr "ГотовноÑÑ‚ / РеÑтарт" + +msgid "Standby after current event" +msgstr "" + +#, python-format +msgid "Standby fan %d PWM" +msgstr "" + +#, python-format +msgid "Standby fan %d voltage" +msgstr "" + +msgid "Standby in " +msgstr "" + +msgid "StandbyLED" +msgstr "" + +msgid "Start from the beginning" +msgstr "Започни от началото" + +msgid "Start offline decode" +msgstr "" + +msgid "Start recording?" +msgstr "Старт запиÑ?" + +msgid "Start test" +msgstr "Старт теÑÑ‚" + +msgid "Start time" +msgstr "" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +msgid "Start timeshift" +msgstr "" + +msgid "Start with list screen" +msgstr "" + +msgid "Starting on" +msgstr "Стартиране" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +msgid "Step east" +msgstr "Стъпка на изток" + +msgid "Step west" +msgstr "Стъпка на запад" + +msgid "Stepped east" +msgstr "" + +msgid "Stepped west" +msgstr "" + +msgid "Stop" +msgstr "Стоп" + +msgid "Stop PiP" +msgstr "" + +msgid "Stop current event and disable coming events" +msgstr "Спри текущото и Ñледващите предаваниÑ" + +msgid "Stop current event but not coming events" +msgstr "Спри текущото но не и Ñледващите предаваниÑ" + +msgid "Stop entry" +msgstr "" + +msgid "Stop playing this movie?" +msgstr "Да Ñпра този филм?" + +msgid "Stop recording" +msgstr "" + +msgid "Stop recording and delete" +msgstr "" + +msgid "Stop service on return to movie list" +msgstr "" + +msgid "Stop test" +msgstr "Стоп теÑÑ‚" + +msgid "Stop testing plane after # failed transponders" +msgstr "" + +msgid "Stop testing plane after # successful transponders" +msgstr "" + +msgid "Stop timer recording" +msgstr "" + +msgid "Stop timeshift" +msgstr "" + +msgid "Stop timeshift?" +msgstr "Сиране Таймшифт?" + +msgid "Stopped" +msgstr "" + +msgid "Store at index" +msgstr "" + +msgid "Store position" +msgstr "Запази позициÑ" + +msgid "Stored position" +msgstr "Запазена позициÑ" + +msgid "Stream" +msgstr "" + +msgid "Stream request" +msgstr "" + +msgid "Strongest position" +msgstr "" + +msgid "Subservice list..." +msgstr "СпиÑък Подканали..." + +msgid "Subservices" +msgstr "Подканали" + +msgid "Subtitle Quickmenu" +msgstr "" + +msgid "Subtitle alignment" +msgstr "" + +msgid "Subtitle border width" +msgstr "" + +msgid "Subtitle delay when timing is bad" +msgstr "" + +msgid "Subtitle delay when timing lacks" +msgstr "" + +msgid "Subtitle font size" +msgstr "" + +msgid "Subtitle language selection 1" +msgstr "" + +msgid "Subtitle language selection 2" +msgstr "" + +msgid "Subtitle language selection 3" +msgstr "" + +msgid "Subtitle language selection 4" +msgstr "" + +msgid "Subtitle position" +msgstr "" + +msgid "Subtitle selection" +msgstr "Избор на Ñубтитри" + +msgid "Subtitle selection..." +msgstr "" + +msgid "Subtitle settings" +msgstr "ÐаÑтройка на Ñубтитрите" + +msgid "Subtitles" +msgstr "Субтитри" + +msgid "Sun" +msgstr "Ðед" + +msgid "Sunday" +msgstr "ÐеделÑ" + +msgid "Swap PiP and main picture" +msgstr "" + +msgid "Swap services" +msgstr "Размени Канали" + +msgid "Swedish" +msgstr "ШведÑки" + +msgid "Switch TV to correct input" +msgstr "" + +msgid "Switch between filelist/playlist" +msgstr "" + +msgid "Switch between normal mode and list mode" +msgstr "" + +msgid "Switch to HDMI in mode" +msgstr "" + +msgid "Switch to filelist" +msgstr "" + +msgid "Switch to next channel" +msgstr "" + +msgid "Switch to next channel in history" +msgstr "" + +msgid "Switch to next sub service" +msgstr "" + +msgid "Switch to playlist" +msgstr "" + +msgid "Switch to previous channel" +msgstr "" + +msgid "Switch to previous channel in history" +msgstr "" + +msgid "Switch to previous sub service" +msgstr "" + +msgid "Switchable tuner types:" +msgstr "" + +msgid "Symbol rate" +msgstr "СкороÑÑ‚ на Сигнала" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "" + +msgid "System" +msgstr "СиÑтема" + +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "" + +msgid "TS file is too large for ISO9660 level 1!" +msgstr "" + +msgid "TSID" +msgstr "" + +msgid "TV physical address report" +msgstr "" + +msgid "TXT PID" +msgstr "" + +msgid "Table of contents for collection" +msgstr "" + +msgid "Tags" +msgstr "" + +msgid "Teletext subtitle color" +msgstr "" + +msgid "Temperature and fan control" +msgstr "" + +msgid "Terrestrial" +msgstr "Ðаземна" + +msgid "Terrestrial provider" +msgstr "Ðаземен провайдър" + +msgid "Test DiSEqC settings" +msgstr "ТеÑÑ‚ DiSEqC наÑтройки" + +msgid "Test mode" +msgstr "ТеÑтов режим" + +msgid "Test the network configuration of your receiver.\n" +msgstr "ТеÑÑ‚ на мрежовите наÑтройки на Ð²Ð°ÑˆÐ¸Ñ Clarke-Tech.\n" + +msgid "Test type" +msgstr "" + +msgid "Text color" +msgstr "" + +msgid "Thai" +msgstr "" + +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"Ð‘Ð»Ð°Ð³Ð¾Ð´Ð°Ñ€Ñ Ð²Ð¸,че използвахте помощника.\n" +"ÐатиÑнете ОК за да продължите." + +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "" + +msgid "The PIN code has been changed successfully." +msgstr "" + +msgid "The PIN codes you entered are different." +msgstr "" + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" + +msgid "The backup failed. Please choose a different backup location." +msgstr "Грешка при backup. ÐœÐ¾Ð»Ñ Ð¸Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ друго меÑто за backup." + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" + +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" + +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"Следното уÑтройÑтво беше открито:\n" +"\n" +"%s\n" +"\n" +"ИнÑталиране на USB flasher на този Ñтик?" + +msgid "The following files were found..." +msgstr "Следните файлове бÑха открити..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "" + +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" + +#, python-format +msgid "The path %s already exists." +msgstr "ÐŸÑŠÑ‚Ñ %s вeче ÑъщеÑтвува" + +msgid "The pin code you entered is wrong." +msgstr "ВъведениÑÑ‚ ПИРкод е грешен." + +#, python-format +msgid "The results have been written to %s." +msgstr "Резултатите Ñа запиÑани в %s." + +msgid "The sleep timer has been activated." +msgstr "Tаймера за Ñън е активиран." + +msgid "The sleep timer has been disabled." +msgstr "Таймера за Ñън е ÑпрÑн." + +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "" + +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "" + +msgid "The user interface of your receiver is restarting" +msgstr "ПотребителÑкиÑÑ‚ Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð½Ð° приемника Ñе реÑтартира" + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"Плъгинът за безжична LAN не е инÑталиран!\n" +"ÐœÐ¾Ð»Ñ Ð¸Ð½Ñталирайте го и изберете Ñледваща Ñтъпка." + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"Плъгинът за безжична LAN не е инÑталиран!\n" +"ÐœÐ¾Ð»Ñ Ð¸Ð½Ñталирайте го." + +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "Помощникът може да backup вашите текущи наÑтройки. Да направи ли backup Ñега?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "" + +msgid "The wizard is finished now." +msgstr "Помощникът завърши." + +msgid "There are at least " +msgstr "Има най-малко " + +#, python-format +msgid "There are at least %s updates available." +msgstr "" + +msgid "There are currently no outstanding actions." +msgstr "" + +msgid "There are no updates available." +msgstr "" + +msgid "There is no signal to lock on !" +msgstr "" + +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"Може да нÑма доÑтатъчно мÑÑто на Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¸Ñ Ð´Ñл.\n" +"ИÑкате ли да продължите?" + +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "" + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" + +msgid "This plugin is installed." +msgstr "Този плъгин е инÑталиран." + +msgid "This plugin is not installed." +msgstr "Този плъгин не е инÑталиран." + +msgid "This plugin will be installed." +msgstr "Плъгинът ще Ñе инÑталира." + +msgid "This plugin will be removed." +msgstr "Плъгинът ще бъде премахнат." + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "" + +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" + +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" + +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" + +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" + +msgid "This test detects your configured LAN adapter." +msgstr "" + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" + +msgid "Three" +msgstr "Три" + +msgid "Threshold" +msgstr "Праг" + +msgid "Thu" +msgstr "Чет" + +msgid "Thumbnails" +msgstr "Миниатюри" + +msgid "Thursday" +msgstr "Четвъртък" + +msgid "Time" +msgstr "ЧаÑ" + +msgid "Time scale" +msgstr "" + +msgid "Timer" +msgstr "Таймер" + +msgid "Timer Overview" +msgstr "" + +msgid "Timer edit" +msgstr "Редактирай Таймер" + +msgid "Timer editor" +msgstr "Редактор Таймер" + +msgid "Timer entry" +msgstr "Въведи Таймер" + +msgid "Timer log" +msgstr "" + +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" + +msgid "Timer overview" +msgstr "Преглед на таймерите" + +msgid "Timer recording location" +msgstr "" + +msgid "Timer sanity error" +msgstr "" + +msgid "Timer selection" +msgstr "Избор на таймер" + +msgid "Timer selection..." +msgstr "" + +msgid "Timer type" +msgstr "Вид Таймер" + +msgid "Timeshift" +msgstr "Таймшифт" + +msgid "Timeshift Live" +msgstr "" + +msgid "Timeshift location" +msgstr "" + +msgid "Timeshift not possible!" +msgstr "Таймшифт не е възможен!" + +msgid "Timezone" +msgstr "ЧаÑова зона" + +msgid "Title" +msgstr "Заглавие" + +msgid "Title properties" +msgstr "Заглавие ÑвойÑтва" + +msgid "Titleset mode" +msgstr "" + +msgid "To audio selection" +msgstr "" + +msgid "To subtitle selection" +msgstr "" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" + +msgid "Today" +msgstr "ДнеÑ" + +msgid "Toggle a cut mark at the current position" +msgstr "" + +msgid "Tone amplitude" +msgstr "" + +msgid "Tone mode" +msgstr "" + +msgid "Toneburst" +msgstr "" + +msgid "Toneburst A/B" +msgstr "Toneburst A/B" + +msgid "Top and bottom" +msgstr "" + +msgid "Track" +msgstr "" + +msgid "Translation" +msgstr "Превод" + +msgid "Translation:" +msgstr "Превод:" + +msgid "Translations" +msgstr "" + +msgid "Transmission mode" +msgstr "Режим предаване" + +msgid "Transponder" +msgstr "ТранÑпондер" + +msgid "Transponder type" +msgstr "" + +msgid "Trash can" +msgstr "" + +msgid "Tries left:" +msgstr "ОÑтаващи опити:" + +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "" + +msgid "Trying to download a new packetlist. Please wait..." +msgstr "" + +msgid "Tue" +msgstr "Вто" + +msgid "Tuesday" +msgstr "Вторник" + +msgid "Tune" +msgstr "" + +msgid "Tune and focus" +msgstr "" + +msgid "Tune failed!" +msgstr "" + +msgid "Tuner" +msgstr "Тунер" + +msgid "Tuner configuration" +msgstr "Тунер конфигурациÑ" + +msgid "Tuner is not supported" +msgstr "" + +msgid "Tuner slot" +msgstr "" + +msgid "Tuner status" +msgstr "Тунер ÑтатуÑ" + +#, python-format +msgid "Tuner status %s" +msgstr "" + +msgid "Tuner type" +msgstr "" + +msgid "Turkish" +msgstr "ТурÑки" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +msgid "Two" +msgstr "Две" + +msgid "Type" +msgstr "Тип" + +msgid "Type of scan" +msgstr "Тип Ñ‚ÑŠÑ€Ñене" + +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "" + +msgid "USB stick" +msgstr "" + +msgid "USB stick wizard" +msgstr "USB Стик помощник" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Извършва Ñе автоматична актуализациÑ\n" +"ÐœÐ¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ докато приемникът ви Ñе реÑтартира\n" +"Това може да отнеме нÑколко минути" + +msgid "Undo install" +msgstr "" + +msgid "Undo uninstall" +msgstr "" + +msgid "Unencrypted" +msgstr "" + +msgid "UnhandledKey" +msgstr "" + +msgid "Unicable" +msgstr "" + +msgid "Unicable LNB" +msgstr "" + +msgid "Unicable Martix" +msgstr "" + +msgid "Uninstall" +msgstr "" + +msgid "Universal LNB" +msgstr "УниверÑално LNB" + +msgid "Unknown" +msgstr "" + +msgid "Unmount" +msgstr "" + +msgid "Unsupported" +msgstr "Ðе Ñе поддържа" + +msgid "Update" +msgstr "ÐктуализациÑ" + +msgid "Update and ask to reboot" +msgstr "Ðктуализирай и попитай за реÑтарт" + +msgid "Update and reboot (recommended)" +msgstr "Ðктуализирай и реÑтартирай (препоръчително)" + +msgid "Update channel list only" +msgstr "Ðктуализирай Ñамо ÑпиÑъка Ñ ÐºÐ°Ð½Ð°Ð»Ð¸" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "ÐктуализациÑта завърши, %d пакет беше инÑталиран." +msgstr[1] "ÐктуализациÑта завърши, %d пакета бÑха инÑталирани." + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "ÐктуализациÑта завърши. ИÑкате ли да реÑтартирате приемника?" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "ÐеуÑпешна актуализациÑ. Приемникът нÑма работеща интернет връзка." + +msgid "Update has completed." +msgstr "ÐктуализациÑта завърши." + +msgid "Updatefeed not available." +msgstr "ÐÑма наличен updatefeed." + +msgid "Updating software catalog" +msgstr "Ðктуализирам Ñофтуер каталога" + +msgid "Upgrading" +msgstr "Ъпгрейдвам" + +msgid "Use" +msgstr "Използвай" + +msgid "Use DHCP" +msgstr "Използвай DHCP" + +msgid "Use EIT EPG information when it is available." +msgstr "" + +msgid "Use FreeSat EPG information when it is available." +msgstr "" + +msgid "Use MHW EPG information when it is available." +msgstr "" + +msgid "Use Netmed EPG information when it is available." +msgstr "" + +msgid "Use TV remote control" +msgstr "" + +msgid "Use USALS for this sat" +msgstr "" + +msgid "Use ViaSat EPG information when it is available." +msgstr "" + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +msgid "Use a gateway" +msgstr "Използвай шлюз" + +msgid "Use fastscan channel names" +msgstr "" + +msgid "Use fastscan channel numbering" +msgstr "" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "" + +msgid "Use interface" +msgstr "" + +msgid "Use official channel numbering" +msgstr "" + +msgid "Use original DVB subtitle position" +msgstr "" + +msgid "Use original teletext position" +msgstr "" + +msgid "Use power measurement" +msgstr "Използвай мерител на напрежение" + +msgid "Use the network wizard to configure selected network adapter" +msgstr "" + +msgid "Use the network wizard to configure your network\n" +msgstr "" + +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "Използвайте бутони нагоре/надолу на вашето диÑтанционно за избор на опциÑ. След това натиÑнете ОК." + +msgid "Use the wizard to set up basic features" +msgstr "" + +msgid "Use these input device settings?" +msgstr "" + +msgid "Use these settings?" +msgstr "" + +msgid "Use this video enhancement settings?" +msgstr "" + +msgid "Use trash can in movielist" +msgstr "" + +msgid "Used service scan type" +msgstr "Тип Ñканиране на канали" + +msgid "User - bouquets" +msgstr "" + +msgid "User defined" +msgstr "ПотребителÑка" + +msgid "User defined transponder" +msgstr "" + +msgid "User interface" +msgstr "ПотребителÑки интерфейÑ" + +msgid "Username" +msgstr "ПотребителÑко име" + +#, python-format +msgid "Using LNB %d" +msgstr "" + +msgid "Using fixed address" +msgstr "" + +#, python-format +msgid "Using tuner %s" +msgstr "" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "" + +msgid "VCR scart" +msgstr "VCR Ñкарт" + +msgid "VMGM (intro trailer)" +msgstr "" + +msgid "Vertical" +msgstr "Вертикална" + +msgid "Vertical turning speed" +msgstr "" + +msgid "Video PID" +msgstr "" + +msgid "Video enhancement preview" +msgstr "" + +msgid "Video enhancement settings" +msgstr "" + +msgid "Video enhancement setup" +msgstr "" + +msgid "Video fine tuning" +msgstr "Фина наÑтройка картина" + +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" + +msgid "Video mode selection." +msgstr "Избор на видео режим." + +msgid "Video output" +msgstr "Видео Изход" + +msgid "Video setup" +msgstr "Видео ÐаÑтройка" + +msgid "Video wizard" +msgstr "Видео Помощник" + +#, python-format +msgid "Video: %s fps" +msgstr "" + +msgid "VideoMode" +msgstr "" + +msgid "Videocodec" +msgstr "" + +msgid "Videoformat" +msgstr "" + +msgid "Videosize" +msgstr "" + +msgid "View Rass interactive..." +msgstr "" + +msgid "View details" +msgstr "Детайли..." + +msgid "View list of available " +msgstr "СпиÑък Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð½Ð¸Ñ‚Ðµ " + +msgid "View list of available CommonInterface extensions" +msgstr "СпиÑък Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð½Ð¸Ñ‚Ðµ Common Interface extensions" + +msgid "View list of available EPG extensions." +msgstr "СпиÑък Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð½Ð¸Ñ‚Ðµ EPG extensions." + +msgid "View list of available Satellite equipment extensions." +msgstr "" + +msgid "View list of available communication extensions." +msgstr "СпиÑък Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð½Ð¸Ñ‚Ðµ extensions за връзка." + +msgid "View list of available default settings" +msgstr "СпиÑък Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð½Ð¸Ñ‚Ðµ наÑтройки по подразбиране." + +msgid "View list of available display and userinterface extensions." +msgstr "" + +msgid "View list of available multimedia extensions." +msgstr "СпиÑък Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð½Ð¸Ñ‚Ðµ extensions за мултимедиÑ." + +msgid "View list of available networking extensions" +msgstr "СпиÑък Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð½Ð¸Ñ‚Ðµ мрежови extensions." + +msgid "View list of available recording extensions" +msgstr "СпиÑък Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð½Ð¸Ñ‚Ðµ extensions за запиÑ." + +msgid "View list of available skins" +msgstr "СпиÑък Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð½Ð¸Ñ‚Ðµ кожи." + +msgid "View list of available software extensions" +msgstr "СпиÑък Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð½Ð¸Ñ‚Ðµ software extensions." + +msgid "View list of available system extensions" +msgstr "СпиÑък Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð½Ð¸Ñ‚Ðµ ÑиÑтемни extensions." + +msgid "View photos..." +msgstr "" + +msgid "View teletext..." +msgstr "Преглед телетекÑÑ‚..." + +msgid "View video CD..." +msgstr "" + +msgid "Virtual keyboard" +msgstr "" + +msgid "Voltage mode" +msgstr "Режим волтаж" + +msgid "Volume" +msgstr "УÑилване" + +msgid "W" +msgstr "" + +msgid "WEP" +msgstr "" + +msgid "WLAN connection" +msgstr "" + +msgid "WPA" +msgstr "" + +msgid "WPA or WPA2" +msgstr "" + +msgid "WPA2" +msgstr "" + +msgid "WSS on 4:3" +msgstr "" + +msgid "Waiting" +msgstr "" + +msgid "Waiting for mount" +msgstr "" + +msgid "Waiting for partition" +msgstr "" + +msgid "Wakeup" +msgstr "" + +msgid "Wakeup TV from standby" +msgstr "" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "" + +msgid "Wakeup signal from TV" +msgstr "" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "" + +msgid "Watch movies..." +msgstr "" + +msgid "Watch recordings..." +msgstr "" + +msgid "Wed" +msgstr "СрÑ" + +msgid "Wednesday" +msgstr "СрÑда" + +msgid "Weekday" +msgstr "Делничен" + +msgid "Weighted position" +msgstr "" + +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" +"Добре дошли.\n" +"\n" +"Този помощник ще ви помогне Ñ Ð¾Ñновните наÑтройки на Ð²Ð°ÑˆÐ¸Ñ Clarke-Tech.\n" +"ÐатиÑнете бутон ОК на диÑтанционното за преминаване напред." + +msgid "Welcome..." +msgstr "Добре дошли..." + +msgid "West" +msgstr "Запад" + +msgid "West limit set" +msgstr "" + +msgid "What do you want to scan?" +msgstr "Какво иÑкате да Ñ‚ÑŠÑ€ÑÑ?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "" + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "" + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "" + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "" + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "" + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "" + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "" + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "" + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "" + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "" + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "" + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "" + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "" + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "" + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "" + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "" + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "" + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "" + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "" + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "" + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "" + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "" + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "" + +msgid "When enabled, number markers will be hiden." +msgstr "" + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "" + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "" + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "" + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "" + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "" + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "" + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "" + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "" + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "" + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "" + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "" + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "" + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "" + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "" + +msgid "When enabled, use DHCP for the IP configuration." +msgstr "" + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "" + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "" + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "" + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "" + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "" + +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"Ðко възÑтановите фабричните наÑтройки, Ñе губÑÑ‚ вÑички данни\n" +"(включително букети, канали, данни за Ñателити ...)\n" +"След възÑтановÑването на фабричните наÑтройки, Ð²Ð°ÑˆÐ¸Ñ Ð¿Ñ€Ð¸ÐµÐ¼Ð½Ð¸Ðº ще Ñе реÑтартира автоматично!\n" +"\n" +"Да възÑÑ‚Ð°Ð½Ð¾Ð²Ñ Ð»Ð¸ фабричните наÑтройки?" + +msgid "Where do you want to backup your settings?" +msgstr "Къде иÑкате да backup вашите наÑтройки?" + +msgid "Where to save temporary timeshift recordings?" +msgstr "Къде да ÑÑŠÑ…Ñ€Ð°Ð½Ñ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð¸Ñ‚Ðµ таймшифт запиÑи?" + +msgid "Wireless LAN" +msgstr "Безжична LAN" + +msgid "Wireless network" +msgstr "Безжична Мрежа" + +msgid "Wireless network configuration..." +msgstr "" + +msgid "Wireless network connection setup" +msgstr "" + +msgid "Wireless network connection setup." +msgstr "" + +msgid "Wireless network state" +msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð½Ð° безжичната мрежа" + +msgid "With popup" +msgstr "" + +msgid "Without popup" +msgstr "" + +msgid "Would you like to install a softcam?" +msgstr "" + +msgid "Write error while recording. Disk full?\n" +msgstr "Грешка при запиÑ! ДиÑкът е пълен?\n" + +msgid "Write failed!" +msgstr "Грешка при запиÑ!" + +msgid "YPbPr" +msgstr "YPbPr" + +msgid "Year" +msgstr "Година" + +msgid "Yellow DVB subtitles" +msgstr "" + +msgid "Yes" +msgstr "Да" + +msgid "Yes and save" +msgstr "" + +msgid "Yes and save in movie dir" +msgstr "" + +msgid "Yes to all" +msgstr "" + +msgid "Yes, always" +msgstr "" + +msgid "Yes, and delete this movie" +msgstr "Да, и изтрий филма" + +msgid "Yes, backup my settings!" +msgstr "Да, backup моите наÑтройки!" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +msgid "Yes, do a manual scan now" +msgstr "Да, започни ръчно Ñ‚ÑŠÑ€Ñене" + +msgid "Yes, do an automatic scan now" +msgstr "Да, започни автоматично Ñ‚ÑŠÑ€Ñене" + +msgid "Yes, do another manual scan now" +msgstr "Да, започни ново Ñ‚ÑŠÑ€Ñене" + +msgid "Yes, perform a shutdown now." +msgstr "Да, изключи Ñега." + +msgid "Yes, restore the settings now" +msgstr "Да, възÑтанови наÑтройките Ñега" + +msgid "Yes, returning to movie list" +msgstr "Да, върни към ÑпиÑъка Ñ Ñ„Ð¸Ð»Ð¼Ð¸" + +msgid "Yesterday" +msgstr "" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" + +msgid "You can cancel the installation." +msgstr "Можете да отмените инÑталациÑта." + +msgid "You can cancel the removal." +msgstr "Можете да отмените премахването." + +msgid "You can continue watching TV etc. while this is running." +msgstr "" + +msgid "You can install this plugin." +msgstr "Можете да инÑталирате този плъгин." + +msgid "You can only burn receiver recordings!" +msgstr "" + +msgid "You can remove this plugin." +msgstr "Можете да премахнете този плъгин." + +msgid "You cannot delete this!" +msgstr "Ðе може да го изтриете!" + +msgid "You didn't select a channel to record from." +msgstr "" + +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "Вие избрахте backup на вашите наÑтройки. ÐœÐ¾Ð»Ñ Ð½Ð°Ñ‚Ð¸Ñнете ОК за да започне backup Ñега." + +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "" + +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "Избрахте да възÑтановите вашите наÑтройки. Енигма2 ще Ñе реÑтартира Ñлед възÑтановÑването. ÐœÐ¾Ð»Ñ Ð½Ð°Ñ‚Ð¸Ñнете ОК за да започне възÑтановÑването." + +#, python-format +msgid "You have to wait %s!" +msgstr "ТрÑбва да изчакате %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" + +msgid "You system does not support ext4" +msgstr "" + +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "Ð’Ð°ÑˆÐ¸Ñ backup е уÑпешен. Сега ще продължим Ñ Ð¾Ð±ÑÑнениÑта за ÑÐ»ÐµÐ´Ð²Ð°Ñ‰Ð¸Ñ ÑŠÐ¿Ð³Ñ€ÐµÐ¹Ð´ процеÑ." + +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "Ваашата ÐºÐ¾Ð»ÐµÐºÑ†Ð¸Ñ Ð½Ð°Ð´Ð²Ð¸ÑˆÐ°Ð²Ð° размера на едноÑлоен диÑк, ще ви Ñ‚Ñ€Ñбва празен двуÑлоен DVD!" + +msgid "Your current collection will get lost!" +msgstr "" + +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"Ð’Ð°ÑˆÐ¸Ñ firmware Ñ‚Ñ€Ñбва да бъде ъпгрейднат.\n" +"ÐатиÑнете OK за да започне ъпгрейда." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"Вашата интернет връзка не работи!\n" +"Изберете Ñледваща Ñтъпка." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "" + +msgid "Your network configuration has been activated." +msgstr "Вашата мрежова ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ðµ активирана." + +msgid "Your receiver does not have an internet connection" +msgstr "" + +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" + +msgid "Your receiver is rebooting" +msgstr "Приемникът Ñе реÑтартира" + +msgid "Your receiver is shutting down" +msgstr "Приемникът Ñе изключва" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "Ð’Ð°ÑˆÐ¸Ñ Ð¿Ñ€Ð¸ÐµÐ¼Ð½Ð¸Ðº Ñе изключва. ÐœÐ¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ..." + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "" + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "" + +msgid "Your receiver will got to standby due to inactivity." +msgstr "" + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "Ð’Ð°ÑˆÐ¸Ñ Clarke-Tech ще Ñе реÑтартира Ñлед натиÑкане ОK на диÑтанционното." + +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"Безжичната LAN интернет връзка не може да Ñе Ñтартира!\n" +"Свързахте ли вашиÑÑ‚ USB WLAN Ñтик?\n" +"\n" +"Изберете Ñледваща Ñтъпка." + +msgid "Zap" +msgstr "" + +msgid "Zap back to previously tuned service?" +msgstr "" + +msgid "Zap back to service before positioner setup?" +msgstr "Ðазад към канала преди 'наÑтройка на позиционер'?" + +msgid "Zap back to service before tuner setup?" +msgstr "" + +msgid "Zap focus to Picture in Picture" +msgstr "" + +msgid "Zap focus to main screen" +msgstr "" + +msgid "Zap mode" +msgstr "" + +msgid "Zap to selected channel" +msgstr "" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "" + +msgid "[alternative edit]" +msgstr "[редактиране алтернативи]" + +msgid "[bouquet edit]" +msgstr "[редактиране букети]" + +msgid "[favourite edit]" +msgstr "[редактиране предпочитани]" + +msgid "[move mode]" +msgstr "[режим премеÑтване]" + +msgid "a gui to assign services/providers to common interface modules" +msgstr "" + +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "" + +msgid "abort alternatives edit" +msgstr "прекъÑни редактирането на алтернативи" + +msgid "abort bouquet edit" +msgstr "прекъÑни редактирането на букети" + +msgid "abort favourites edit" +msgstr "прекъÑни редактирането на предпочитани" + +msgid "about to start" +msgstr "Ñтартирам" + +msgid "activate network adapter configuration" +msgstr "" + +msgid "add alternatives" +msgstr "добави алтернативи" + +msgid "add bookmark" +msgstr "добави отметка" + +msgid "add bouquet" +msgstr "добави букет" + +msgid "add marker" +msgstr "добави маркер" + +msgid "add service to bouquet" +msgstr "добави канала към букет" + +msgid "add service to favourites" +msgstr "добави канал към предпочитани" + +msgid "add to parental protection" +msgstr "добави към родителÑка защита" + +msgid "adult movie/drama" +msgstr "" + +msgid "advanced" +msgstr "разширен" + +msgid "adventure/western/war" +msgstr "" + +msgid "advertisement/shopping" +msgstr "" + +msgid "after " +msgstr "" + +msgid "alphabetic" +msgstr "" + +msgid "alphabetic reverse" +msgstr "" + +msgid "alternative" +msgstr "" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "" + +msgid "arts/culture magazine" +msgstr "" + +msgid "athletics" +msgstr "" + +msgid "audio tracks" +msgstr "" + +msgid "auto" +msgstr "авто" + +msgid "automatic" +msgstr "" + +msgid "back" +msgstr "назад" + +msgid "background image" +msgstr "фон" + +msgid "ballet" +msgstr "" + +#, python-format +msgid "bc%s" +msgstr "" + +msgid "better" +msgstr "по-добър" + +msgid "black" +msgstr "черен" + +msgid "black & white" +msgstr "" + +msgid "blacklist" +msgstr "черен лиÑÑ‚" + +msgid "blue" +msgstr "Ñин" + +msgid "broadcasting/press" +msgstr "" + +msgid "by date" +msgstr "" + +msgid "cartoon/puppets" +msgstr "" + +msgid "center" +msgstr "" + +msgid "centered" +msgstr "" + +msgid "centered, wrapped" +msgstr "" + +msgid "chapters" +msgstr "глави" + +msgid "childrens's/youth program (general)" +msgstr "" + +msgid "circular left" +msgstr "кръгова лÑва" + +msgid "circular right" +msgstr "кръгова дÑÑна" + +msgid "comedy" +msgstr "" + +msgid "complex" +msgstr "Ñложен" + +msgid "config menu" +msgstr "конфиг меню" + +msgid "confirmed" +msgstr "потвърден" + +msgid "connected" +msgstr "Ñвързан" + +msgid "continue" +msgstr "продулжава" + +msgid "cooking" +msgstr "" + +msgid "copy to bouquets" +msgstr "копиране в букет" + +msgid "create directory" +msgstr "Ñъздай директориÑ" + +#, python-format +msgid "currently installed image: %s" +msgstr "" + +msgid "daily" +msgstr "дневно" + +msgid "day" +msgstr "ден" + +msgid "default" +msgstr "" + +msgid "delete cut" +msgstr "изтрий изрежи" + +msgid "delete..." +msgstr "изтрий ..." + +msgid "descramble and record ecm" +msgstr "" + +msgid "detective/thriller" +msgstr "" + +msgid "disable" +msgstr "Ñпри" + +msgid "disable move mode" +msgstr "Ñпри режим премеÑтване на канал" + +msgid "disabled" +msgstr "ÑпрÑн" + +msgid "disconnected" +msgstr "изключен" + +msgid "discussion/interview/debate" +msgstr "" + +msgid "do nothing" +msgstr "не прави нищо" + +msgid "documentary" +msgstr "" + +msgid "don't descramble, record ecm" +msgstr "" + +msgid "done!" +msgstr "готово!" + +msgid "east" +msgstr "" + +msgid "economics/social advisory" +msgstr "" + +msgid "edit alternatives" +msgstr "" + +msgid "education/science/factual topics (general)" +msgstr "" + +msgid "empty" +msgstr "празен" + +msgid "enable" +msgstr "разреши" + +msgid "enable bouquet edit" +msgstr "редактиране на букети" + +msgid "enable favourite edit" +msgstr "редактиране на предпочитани" + +msgid "enable move mode" +msgstr "включи режим премеÑтване на канал" + +msgid "enabled" +msgstr "разрешен" + +msgid "end alternatives edit" +msgstr "" + +msgid "end bouquet edit" +msgstr "редактирането на букет завърши" + +msgid "end cut here" +msgstr "" + +msgid "end favourites edit" +msgstr "редактирането на предпочитани завърши" + +msgid "entertainment (10-16 year old)" +msgstr "" + +msgid "entertainment (6-14 year old)" +msgstr "" + +msgid "equal to" +msgstr "еднакъв Ñ" + +msgid "equestrian" +msgstr "" + +msgid "exit DVD player or return to file browser" +msgstr "изход от DVD плеър или връщане към Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð¸Ñ Ð±Ñ€Ð°ÑƒÐ·ÑŠÑ€" + +msgid "exit movielist" +msgstr "изход от ÑпиÑъка Ñ Ñ„Ð¸Ð»Ð¼Ð¸" + +msgid "exit network adapter configuration" +msgstr "изход от наÑтройките на Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ð°Ð´Ð°Ð¿Ñ‚ÐµÑ€" + +msgid "exit networkadapter setup menu" +msgstr "" + +msgid "experimental film/video" +msgstr "" + +msgid "false" +msgstr "" + +msgid "fashion" +msgstr "" + +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "Файлов формат (BMP, PNG, JPG, GIF)" + +msgid "filename" +msgstr "Име на файл" + +msgid "film/cinema" +msgstr "" + +msgid "fine arts" +msgstr "" + +msgid "fine-tune your display" +msgstr "Фина наÑтройка на диÑплеÑ" + +msgid "fitness & health" +msgstr "" + +msgid "flat alphabetic" +msgstr "" + +msgid "flat alphabetic reverse" +msgstr "" + +msgid "folk/traditional music" +msgstr "" + +msgid "football/soccer" +msgstr "" + +msgid "foreign countries/expeditions" +msgstr "" + +msgid "forward to the next chapter" +msgstr "напред към Ñледващата глава" + +msgid "free" +msgstr "Ñвободни" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "" + +msgid "game show/quiz/contest" +msgstr "" + +msgid "gardening" +msgstr "" + +msgid "go to deep standby" +msgstr "изключи" + +msgid "go to standby" +msgstr "към режим готовноÑÑ‚" + +msgid "grab this frame as bitmap" +msgstr "запиши кадъра като bitmap" + +msgid "green" +msgstr "зелен" + +msgid "handicraft" +msgstr "" + +msgid "height" +msgstr "" + +msgid "help..." +msgstr "помощ..." + +msgid "horizontal" +msgstr "хоризонтална" + +msgid "information/education/school program" +msgstr "" + +msgid "init module" +msgstr "" + +msgid "init modules" +msgstr "" + +msgid "insert mark here" +msgstr "поÑтави отметка тук" + +msgid "invalid type" +msgstr "" + +msgid "jazz" +msgstr "" + +msgid "jump back to the previous title" +msgstr "обратно към предишното заглавие" + +msgid "jump forward to the next title" +msgstr "напред към Ñледващото заглавие" + +msgid "languages" +msgstr "" + +msgid "leave movie player..." +msgstr "изход филмов плеър..." + +msgid "left" +msgstr "лÑв" + +msgid "left, wrapped" +msgstr "" + +msgid "leisure hobbies (general)" +msgstr "" + +msgid "length" +msgstr "дължина" + +msgid "limit ..., aborting !" +msgstr "" + +msgid "list style compact" +msgstr "" + +msgid "list style compact with description" +msgstr "" + +msgid "list style default" +msgstr "" + +msgid "list style single line" +msgstr "" + +msgid "literature" +msgstr "" + +msgid "live broadcast" +msgstr "" + +msgid "locked" +msgstr "заключен" + +msgid "loopthrough to" +msgstr "преминаващ към" + +msgid "magazines/reports/documentary" +msgstr "" + +msgid "manual" +msgstr "ръчно" + +msgid "martial sports" +msgstr "" + +msgid "medicine/physiology/psychology" +msgstr "" + +msgid "menu" +msgstr "меню" + +msgid "mins" +msgstr "мин" + +msgid "minutes" +msgstr "минути" + +msgid "month" +msgstr "меÑец" + +msgid "motor sport" +msgstr "" + +msgid "motoring" +msgstr "" + +msgid "move down to last entry" +msgstr "премеÑти надолу към поÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñ" + +msgid "move down to next entry" +msgstr "премеÑти надолу към ÑÐ»ÐµÐ´Ð²Ð°Ñ‰Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñ" + +msgid "move up to first entry" +msgstr "премеÑти нагоре към Ð¿ÑŠÑ€Ð²Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñ" + +msgid "move up to previous entry" +msgstr "премеÑти нагоре към предишен запиÑ" + +msgid "movie/drama (general)" +msgstr "" + +msgid "multinorm" +msgstr "МултиÑтандарт" + +msgid "music/ballet/dance (general)" +msgstr "" + +msgid "musical/opera" +msgstr "" + +msgid "nature/animals/environment" +msgstr "" + +msgid "never" +msgstr "никога" + +msgid "new media" +msgstr "" + +msgid "news magazine" +msgstr "" + +msgid "news/current affairs (general)" +msgstr "" + +msgid "news/weather report" +msgstr "" + +msgid "no" +msgstr "не" + +msgid "no CAId selected" +msgstr "не е избеан CAId" + +msgid "no CI slots found" +msgstr "нÑма открити CI Ñлотве" + +msgid "no module found" +msgstr "нÑма открит модул" + +msgid "no storage devices found" +msgstr "" + +msgid "none" +msgstr "никой" + +msgid "normal" +msgstr "" + +msgid "not configured" +msgstr "" + +msgid "not locked" +msgstr "не е заключен" + +msgid "not supported" +msgstr "" + +msgid "not used" +msgstr "не Ñе използва" + +msgid "nothing connected" +msgstr "нищо не е Ñвързано" + +msgid "of a DUAL layer medium used." +msgstr "" + +msgid "of a SINGLE layer medium used." +msgstr "" + +msgid "off" +msgstr "изкл." + +msgid "offset is" +msgstr "" + +msgid "on" +msgstr "вкл." + +msgid "on READ ONLY medium." +msgstr "" + +msgid "on end of movie" +msgstr "" + +msgid "once" +msgstr "веднъж" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +msgid "open nameserver configuration" +msgstr "отвори наÑтройките за nameserver" + +msgid "original" +msgstr "" + +msgid "original language" +msgstr "" + +msgid "pass" +msgstr "" + +msgid "performing arts" +msgstr "" + +msgid "play as picture in picture" +msgstr "Ðктивиране картина в картината" + +msgid "play in mainwindow" +msgstr "" + +msgid "please press OK when ready" +msgstr "Ð¼Ð¾Ð»Ñ Ð½Ð°Ñ‚Ð¸Ñнете ОК когато е готово" + +msgid "please wait, loading picture..." +msgstr "Ð¼Ð¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ, зареждам Ñнимка..." + +msgid "popular culture/traditional arts" +msgstr "" + +msgid "pre-school children's program" +msgstr "" + +msgid "receiver software because updates are available." +msgstr "" + +msgid "record" +msgstr "запиÑ" + +msgid "recording..." +msgstr "запиÑ..." + +msgid "red" +msgstr "червен" + +msgid "religion" +msgstr "" + +msgid "remarkable people" +msgstr "" + +msgid "remove after this position" +msgstr "премахни Ñлед тази позициÑ" + +msgid "remove all alternatives" +msgstr "премахни вÑички алтернативи" + +msgid "remove all new found flags" +msgstr "премахни вÑички маркировки за 'нов канал'" + +msgid "remove before this position" +msgstr "премахни преди тази позициÑ" + +msgid "remove bookmark" +msgstr "премахни отметка" + +msgid "remove directory" +msgstr "премахни директориÑ" + +msgid "remove entry" +msgstr "премахни" + +msgid "remove from parental protection" +msgstr "премахни от родителÑки контрол" + +msgid "remove new found flag" +msgstr "премахване на маркировката за 'нов канал'" + +msgid "remove selected satellite" +msgstr "премахни Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¸Ñ Ñателит" + +msgid "remove this mark" +msgstr "премахни отметката" + +msgid "rename entry" +msgstr "" + +msgid "repeat playlist" +msgstr "повтори плейлиÑта" + +msgid "repeated" +msgstr "повторен" + +msgid "reverse by date" +msgstr "" + +msgid "rewind to the previous chapter" +msgstr "превърти до предишната глава" + +msgid "right" +msgstr "деÑен" + +msgid "right, wrapped" +msgstr "" + +msgid "rock/pop" +msgstr "" + +msgid "romance" +msgstr "" + +msgid "save last directory on exit" +msgstr "Ð·Ð°Ð¿Ð¸Ñ Ð¿Ð¾Ñледната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð¿Ñ€Ð¸ изход" + +msgid "save playlist on exit" +msgstr "Ð·Ð°Ð¿Ð¸Ñ Ð¿Ð»ÐµÐ¹Ð»Ð¸ÑÑ‚ при изход" + +msgid "scan state" +msgstr "ÑÑŠÑтоÑние Ñканиране" + +msgid "science fiction/fantasy/horror" +msgstr "" + +msgid "second cable of motorized LNB" +msgstr "втори кабелен или моторизиран LNB" + +msgid "seconds" +msgstr "Ñекунди" + +msgid "select" +msgstr "избор" + +msgid "select CAId's" +msgstr "избор CAId's" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +msgid "select menu entry" +msgstr "избор menu entry" + +msgid "select movie" +msgstr "избор филм" + +msgid "select the movie path" +msgstr "" + +msgid "serious music/classic music" +msgstr "" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "" + +msgid "service PIN" +msgstr "ПИРканали" + +msgid "set as startup service" +msgstr "задаване като Ñтартиращ канал" + +msgid "setup PIN" +msgstr "ПИРнаÑтройки" + +msgid "show DVD main menu" +msgstr "покажи главното DVD mеню" + +msgid "show all tags" +msgstr "" + +msgid "show alternatives" +msgstr "покажи алтернативи" + +msgid "show event details" +msgstr "детайли на предаването" + +msgid "show extended description" +msgstr "покажи разширено опиÑание" + +msgid "show mediaplayer on mainmenu" +msgstr "" + +msgid "show softwaremanager in setup menu" +msgstr "" + +msgid "show softwaremanager on blue button" +msgstr "" + +msgid "show tag menu" +msgstr "покажи tag меню" + +msgid "show transponder info" +msgstr "покажи инфо за транÑпондер" + +msgid "show/game show (general)" +msgstr "" + +msgid "shuffle" +msgstr "" + +msgid "shut down" +msgstr "" + +msgid "simple" +msgstr "опроÑтен" + +msgid "skip backward" +msgstr "преÑкочи назад" + +msgid "skip forward" +msgstr "преÑкочи напред" + +msgid "soap/melodram/folkloric" +msgstr "" + +msgid "social/political issues/economics (general)" +msgstr "" + +msgid "social/spiritual science" +msgstr "" + +msgid "sorting of playlists" +msgstr "" + +msgid "special characters" +msgstr "" + +msgid "special events" +msgstr "" + +msgid "special format data DVD (HDTV compatible)" +msgstr "" + +msgid "sports (general)" +msgstr "" + +msgid "sports magazine" +msgstr "" + +msgid "standard" +msgstr "Ñтандарт" + +msgid "start cut here" +msgstr "изрежи тук" + +msgid "start directory" +msgstr "Ñтартова директориÑ" + +msgid "stepsize" +msgstr "" + +msgid "stereo" +msgstr "Ñтерео" + +msgid "stop using as startup service" +msgstr "" + +msgid "switch to bookmarks" +msgstr "превкл. на bookmarks" + +msgid "switch to filelist" +msgstr "превкл. на файллиÑÑ‚" + +msgid "switch to the next angle" +msgstr "превкл. на Ñледващ ъгъл" + +msgid "switch to the next audio track" +msgstr "превкл. на Ñледващ аудио език" + +msgid "switch to the next subtitle language" +msgstr "превкл. на Ñледващ език за Ñубтитри" + +msgid "talk show" +msgstr "" + +msgid "team sports" +msgstr "" + +msgid "technology/natural science" +msgstr "" + +msgid "template file" +msgstr "примерен файл" + +msgid "tennis/squash" +msgstr "" + +msgid "this recording" +msgstr "този запиÑ" + +msgid "this service is protected by a parental control pin" +msgstr "този канал е заключен Ñ ÐŸÐ˜Ð Ð·Ð° родителÑки контрол" + +msgid "toggle time, chapter, audio, subtitle info" +msgstr "прикрепи време, глава, аудио, Ñубтитри инфо" + +msgid "top" +msgstr "" + +msgid "tourism/travel" +msgstr "" + +msgid "true" +msgstr "" + +msgid "unavailable" +msgstr "не е наличен" + +msgid "unconfirmed" +msgstr "непотвърден" + +msgid "undefined" +msgstr "" + +msgid "unknown" +msgstr "непознат" + +msgid "unknown service" +msgstr "непознат канал" + +msgid "unpublished" +msgstr "" + +msgid "until standby/restart" +msgstr "" + +msgid "user defined" +msgstr "" + +msgid "variety show" +msgstr "" + +msgid "vertical" +msgstr "вертикална" + +msgid "wait for ci..." +msgstr "изчакай за ci..." + +msgid "wait for mmi..." +msgstr "изчакай за mmi..." + +msgid "waiting" +msgstr "изчаквам" + +msgid "water sport" +msgstr "" + +msgid "weekly" +msgstr "Ñедмично" + +msgid "west" +msgstr "" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "" + +msgid "whitelist" +msgstr "бÑл лиÑÑ‚" + +msgid "width" +msgstr "" + +msgid "winter sport" +msgstr "" + +msgid "wireless network interface" +msgstr "" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "" +msgstr[1] "" + +msgid "working" +msgstr "работи" + +msgid "yellow" +msgstr "жълт" + +msgid "yes" +msgstr "да" + +msgid "yes (keep feeds)" +msgstr "да (запази фийдове)" + +msgid "zap" +msgstr "превключи" + +msgid "zap and record" +msgstr "" + +msgid "zapped" +msgstr "превключен" + +#~ msgid "AA" +#~ msgstr "ÐÐ" + +#~ msgid "AB" +#~ msgstr "AB" + +#~ msgid "Add/remove timer for current event" +#~ msgstr "Добави/Премахнитаймер за текущото предаване" + +#~ msgid "Adjust HDMI CEC settings" +#~ msgstr "HDMI CEC наÑтройки" + +#~ msgid "All satellites" +#~ msgstr "Ð’Ñички Сателити" + +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "ДейÑтвие на 'пауза' когато е в режим пауза" + +#~ msgid "DiSEqC repeats" +#~ msgstr "DiSEqC повторениÑ" + +#~ msgid "No satellite frontend found!!" +#~ msgstr "Ðе Ñа открити Ñателити!!" + +#~ msgid "Remove timer" +#~ msgstr "Премахни таймер" + +#~ msgid "Send DiSEqC" +#~ msgstr "Изпращай DiSEqC" + +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "Ðазад към канала преди 'Ñ‚ÑŠÑ€Ñене на Ñателити'?" diff --git a/po/ca.po b/po/ca.po new file mode 100644 index 0000000..8901e8b --- /dev/null +++ b/po/ca.po @@ -0,0 +1,9427 @@ +# Catalan translations for Enigma2. +# +# Oriol Pellicer i Sabrià <oriol@elsud.org>, 2006, 2007. +msgid "" +msgstr "" +"Project-Id-Version: enigma2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2007-08-14 10:23+0200\n" +"Last-Translator: Oriol Pellicer <oriol@elsud.org>\n" +"Language-Team: \n" +"Language: \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-Poedit-Language: Catalan\n" +"X-Poedit-Country: CATALONIA\n" +"X-Poedit-SourceCharset: iso-8859-1\n" +"X-Generator: KBabel 1.11.4\n" + +# +msgid "" +"\n" +"Advanced options and settings." +msgstr "" + +# +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" + +# +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" + +# +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" + +# +msgid "" +"\n" +"Restore your backups by date." +msgstr "" + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" + +# +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" + +# +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" + +# +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" + +msgid " (PiP)" +msgstr "" + +msgid " (Radio)" +msgstr "" + +msgid " (TV)" +msgstr "" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +# +msgid " extensions." +msgstr "" + +msgid " ms" +msgstr "" + +# +msgid " packages selected." +msgstr "" + +# +msgid " updates available." +msgstr "" + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "" + +msgid "%A %d %B" +msgstr "" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "" + +# +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "" + +# +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, fuzzy, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "canal següent en l'històric" +msgstr[1] "canal següent en l'històric" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "" +msgstr[1] "" + +# +#, python-format +msgid "%d min" +msgstr "%d min" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d minutes" +msgstr "" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "" +msgstr[1] "" + +# +#, fuzzy, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "directori /var" +msgstr[1] "directori /var" + +#, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "" +msgstr[1] "" + +msgid "%d-%b-%Y %-H:%M" +msgstr "" + +msgid "%d-%m" +msgstr "" + +# +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "" + +# +#, fuzzy, python-format +msgid "%s %s free disk space" +msgstr "espai lliure al disc" + +# +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "" + +#, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%s%d min" +msgstr "" + +#, python-format +msgid "%s/%s: %s" +msgstr "" + +# +msgid "(ZAP)" +msgstr "(ZAPPEJAR)" + +# +msgid "(empty)" +msgstr "(buit)" + +# +msgid "(show optional DVD audio menu)" +msgstr "" + +# +msgid "* Only available if more than one interface is active." +msgstr "" + +msgid "/s" +msgstr "" + +# +msgid "0" +msgstr "0" + +# +msgid "1" +msgstr "1" + +# +msgid "1.0" +msgstr "1.0" + +# +msgid "1.1" +msgstr "1.1" + +# +msgid "1.2" +msgstr "1.2" + +# +msgid "12V output" +msgstr "sortida 12V" + +# +msgid "13 V" +msgstr "13 V" + +# +msgid "16:10" +msgstr "" + +# +#, fuzzy +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +# +#, fuzzy +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +# +msgid "16:9" +msgstr "16:9" + +# +#, fuzzy +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +# +msgid "16:9 always" +msgstr "16:9 sempre" + +# +msgid "18 V" +msgstr "18 V" + +# +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "" + +msgid "24" +msgstr "" + +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +# +msgid "3" +msgstr "3" + +msgid "30" +msgstr "" + +msgid "3d mode" +msgstr "" + +# +msgid "4" +msgstr "4" + +# +msgid "4:3" +msgstr "" + +# +#, fuzzy +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +# +#, fuzzy +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +# +msgid "5" +msgstr "5" + +msgid "6" +msgstr "6" + +# +msgid "7" +msgstr "7" + +# +msgid "8" +msgstr "8" + +# +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +# +msgid "<Current movielist location>" +msgstr "" + +# +msgid "<Default movie location>" +msgstr "" + +# +msgid "<Last timer location>" +msgstr "" + +# +msgid "<unknown>" +msgstr "<desconegut>" + +# +msgid "??" +msgstr "?" + +# +msgid "A" +msgstr "Un" + +#, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" + +# +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +# +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "" + +# +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"S'ha iniciat una gravació:\n" +"%s" + +# +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"En aquests moments s'està realitzant una gravació.\n" +"Què vols fer?" + +# +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "En aquests moments s'està realitzant una gravació. Sisplau, atura-la abans de configurar el motor." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "" + +# +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "En aquests moments s'està realitzant una gravació. Sisplau, atura-la abans de posar en marxa el satfinder." + +# +#, python-format +msgid "A required tool (%s) was not found." +msgstr "" + +# +msgid "A search for available updates is currently in progress." +msgstr "" + +# +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +# +msgid "A small overview of the available icon states and actions." +msgstr "" + +# +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"Ha fallat la gravació!\n" +"Vols desactivar la TV i tornar-ho a provar?\n" + +# +#, fuzzy +msgid "A/V settings" +msgstr "Config A/V" + +msgid "AC3/DTS downmix" +msgstr "" + +# +msgid "Abort" +msgstr "" + +# +msgid "About" +msgstr "Quant a" + +# +msgid "About..." +msgstr "Quant a..." + +# +msgid "Accesspoint:" +msgstr "" + +# +msgid "Action on long powerbutton press" +msgstr "" + +# +msgid "Action on short powerbutton press" +msgstr "" + +# +msgid "Activate Picture in Picture" +msgstr "Activar PiP" + +# +#, fuzzy +msgid "Activate current configuration" +msgstr "Configuració del sintonitzador" + +# +msgid "Activate network settings" +msgstr "Activar la configuració de la xarxa" + +# +#, fuzzy +msgid "Activate the configured network settings." +msgstr "Activar la configuració de la xarxa" + +# +msgid "Adapter settings" +msgstr "" + +# +msgid "Add" +msgstr "Afegir" + +msgid "Add Bookmark" +msgstr "" + +# +msgid "Add a mark" +msgstr "Afegir una marca" + +# +#, fuzzy +msgid "Add a nameserver entry" +msgstr "Configuració dels DNS" + +# +msgid "Add a new title" +msgstr "Afegir un nou títol" + +# +#, fuzzy +msgid "Add bookmark" +msgstr "Afegir una marca" + +# +#, fuzzy +msgid "Add directory to playlist" +msgstr "afegir el directori a la llista" + +# +#, fuzzy +msgid "Add file to playlist" +msgstr "afegir el fitxer a la llista" + +# +#, fuzzy +msgid "Add files to playlist" +msgstr "afegir fitxers a la llista" + +msgid "Add more details to the crash log" +msgstr "" + +# +#, fuzzy +msgid "Add provider" +msgstr "Proveïdor" + +# +#, fuzzy +msgid "Add recording (enter recording duration)" +msgstr "afegir gravació (introduint la durada)" + +# +#, fuzzy +msgid "Add recording (enter recording endtime)" +msgstr "afegir gravació (introduint l'hora d'acabada)" + +# +#, fuzzy +msgid "Add recording (indefinitely)" +msgstr "afegir gravació (indefinidament)" + +# +#, fuzzy +msgid "Add recording (stop after current event)" +msgstr "afegir gravació (fins que s'acabi el programa)" + +# +#, fuzzy +msgid "Add service" +msgstr "Canal" + +# +msgid "Add timer" +msgstr "Gravar" + +# +msgid "Add title" +msgstr "" + +# +msgid "Add to bouquet" +msgstr "Afegir a la llista" + +# +msgid "Add to favourites" +msgstr "Afegir als preferits" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "" + +# +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "" + +msgid "Advanced" +msgstr "" + +msgid "Advanced options" +msgstr "" + +# +msgid "Advanced restore" +msgstr "" + +msgid "Advanced software" +msgstr "" + +msgid "Advanced software plugin" +msgstr "" + +msgid "Advanced video enhancement setup" +msgstr "" + +msgid "Advanced video setup" +msgstr "" + +# +msgid "After event" +msgstr "Després del programa" + +# +msgid "Album" +msgstr "Àlbum" + +msgid "Alignment of events" +msgstr "" + +msgid "Alignment of service names" +msgstr "" + +# +msgid "All" +msgstr "Tot" + +msgid "All ages" +msgstr "" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "" + +msgid "Allocate unused memory index" +msgstr "" + +msgid "Allow quit movieplayer with exit" +msgstr "" + +msgid "Allow subtitle language to equal audio language" +msgstr "" + +msgid "Allow subtitles for hearing impaired" +msgstr "" + +# +msgid "Alpha" +msgstr "Alpha" + +# +#, fuzzy +msgid "Alternative" +msgstr "afegir alternatives" + +# +#, fuzzy +msgid "Alternative numbering mode" +msgstr "Mode de ràdio alternatiu" + +# +msgid "Alternative services tuner priority" +msgstr "" + +msgid "Always ask" +msgstr "" + +msgid "Always hide infobar" +msgstr "" + +# +msgid "An empty filename is illegal." +msgstr "" + +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "" + +# +msgid "An unknown error occurred!" +msgstr "" + +msgid "And will put your receiver in standby over " +msgstr "" + +msgid "Any activity" +msgstr "" + +# +msgid "Arabic" +msgstr "Àrab" + +msgid "Are you sure to remove this entry?" +msgstr "" + +# +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" + +# +#, fuzzy +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"segur que vols restaurar\n" +"el següent backup:\n" + +# +msgid "Are you sure you want to exit this wizard?" +msgstr "" + +# +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" + +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" + +# +msgid "Artist" +msgstr "Artista" + +msgid "Arts/Culture" +msgstr "" + +# +msgid "Ask user" +msgstr "" + +# +#, fuzzy +msgid "Aspect ratio" +msgstr "Relació d'aspecte" + +msgid "Assigned CAIds:" +msgstr "" + +msgid "Assigned services/provider:" +msgstr "" + +msgid "At beginning" +msgstr "" + +msgid "At end" +msgstr "" + +# +msgid "Audio" +msgstr "So" + +msgid "Audio PID" +msgstr "" + +msgid "Audio language selection 1" +msgstr "" + +msgid "Audio language selection 2" +msgstr "" + +msgid "Audio language selection 3" +msgstr "" + +msgid "Audio language selection 4" +msgstr "" + +# +#, fuzzy +msgid "Audio options..." +msgstr "Opcions d'àudio" + +#, python-format +msgid "Audio track (%s) format" +msgstr "" + +#, python-format +msgid "Audio track (%s) language" +msgstr "" + +# +msgid "Author: " +msgstr "" + +# +msgid "Authoring mode" +msgstr "" + +# +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Auto" + +# +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "" + +# +msgid "Auto flesh" +msgstr "" + +msgid "Auto focus" +msgstr "" + +msgid "Auto focus commencing ..." +msgstr "" + +msgid "Auto language selection" +msgstr "" + +# +msgid "Auto scart switching" +msgstr "" + +# +msgid "Automatic" +msgstr "" + +# +#, fuzzy +msgid "Automatic scan" +msgstr "Recerca automàtica" + +msgid "Automatically start timeshift after" +msgstr "" + +msgid "Automatically turn on external subtitles" +msgstr "" + +# +msgid "Available format variables" +msgstr "" + +# +msgid "B" +msgstr "B" + +# +msgid "BER" +msgstr "" + +# +msgid "BER:" +msgstr "BER:" + +# +msgid "Back" +msgstr "" + +# +msgid "Background" +msgstr "" + +msgid "Background color" +msgstr "" + +msgid "Background delete option" +msgstr "" + +msgid "Background delete speed" +msgstr "" + +# +#, fuzzy +msgid "Backup completed." +msgstr "Mode del backup" + +# +msgid "Backup failed." +msgstr "" + +# +msgid "Backup is running..." +msgstr "" + +# +msgid "Backup system settings" +msgstr "" + +# +msgid "Band" +msgstr "Banda" + +# +msgid "Bandwidth" +msgstr "Ample de banda" + +msgid "Basque" +msgstr "" + +# +msgid "Begin time" +msgstr "Hora d'inici" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +# +msgid "Behavior of 0 key in PiP-mode" +msgstr "" + +# +msgid "Behavior when a movie is started" +msgstr "" + +# +msgid "Behavior when a movie is stopped" +msgstr "" + +# +msgid "Behavior when a movie reaches the end" +msgstr "" + +msgid "Big PiP" +msgstr "" + +# +msgid "Bitrate:" +msgstr "" + +msgid "Black screen" +msgstr "" + +msgid "Black screen till locked" +msgstr "" + +# +msgid "Block noise reduction" +msgstr "" + +# +msgid "Blue boost" +msgstr "" + +# +msgid "Bookmarks" +msgstr "" + +# +msgid "Brightness" +msgstr "Brillantor" + +msgid "Bulgarian" +msgstr "" + +# +msgid "Burn DVD" +msgstr "Gravar DVD" + +# +#, fuzzy, python-format +msgid "Burn audio track (%s)" +msgstr "Seleccionar pista d'àudio" + +# +msgid "Burn existing image to DVD" +msgstr "" + +# +msgid "Burn to DVD" +msgstr "Gravar DVD" + +# +msgid "Bus: " +msgstr "Bus: " + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "" + +# +msgid "C" +msgstr "" + +# +msgid "C-Band" +msgstr "Banda-C" + +msgid "CH" +msgstr "" + +# +msgid "CI assignment" +msgstr "" + +# +msgid "CVBS" +msgstr "CVBS" + +# +msgid "Cable" +msgstr "Cable" + +msgid "Cable Scan" +msgstr "" + +# +#, fuzzy +msgid "Cache thumbnails" +msgstr "Cache de les miniatures" + +msgid "Calculate" +msgstr "" + +msgid "Calculate all positions" +msgstr "" + +msgid "Calculation complete" +msgstr "" + +msgid "Calibrate" +msgstr "" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "" + +# +msgid "Cancel" +msgstr "Cancel·lar" + +msgid "Cannot determine" +msgstr "" + +msgid "Cannot find any signal ..., aborting !" +msgstr "" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "" + +msgid "Cannot move to trash can" +msgstr "" + +# +msgid "Capacity: " +msgstr "Capacitat: " + +# +msgid "Card" +msgstr "Tarja" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "" + +msgid "Center time-labels and remove date" +msgstr "" + +# +msgid "Change bouquets in quickzap" +msgstr "Canviar de llista en el zàpping ràpid" + +# +msgid "Change pin code" +msgstr "Canviar codi pin" + +# +#, fuzzy +msgid "Change recording (duration)" +msgstr "canviar la gravació (durada)" + +# +#, fuzzy +msgid "Change recording (endtime)" +msgstr "canviar la gravació (hora d'acabada)" + +msgid "Change repeat and delay settings?" +msgstr "" + +msgid "Change service PIN" +msgstr "" + +msgid "Change service PINs" +msgstr "" + +msgid "Change setup PIN" +msgstr "" + +# +msgid "Change step size" +msgstr "" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "" + +# +msgid "Channel" +msgstr "Canal" + +# +#, fuzzy +msgid "Channel list type" +msgstr "Menú de llista de canals" + +# +msgid "Channel not in services list" +msgstr "" + +# +#, fuzzy +msgid "Channel selection" +msgstr "Selecció de canal" + +# +msgid "Channel:" +msgstr "Canal:" + +# +msgid "Channellist menu" +msgstr "Menú de llista de canals" + +# +msgid "Chap." +msgstr "" + +# +msgid "Chapter" +msgstr "" + +# +msgid "Chapter:" +msgstr "" + +# +msgid "Check" +msgstr "" + +msgid "Check the internet connection" +msgstr "" + +msgid "Check the internet connection again" +msgstr "" + +msgid "Checking filesystem..." +msgstr "" + +msgid "Checking the internet connection" +msgstr "" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" + +msgid "Children/Youth" +msgstr "" + +msgid "Choose which tuner to configure." +msgstr "" + +# +msgid "Circular left" +msgstr "" + +# +msgid "Circular right" +msgstr "" + +# +msgid "Cleanup" +msgstr "Netejar" + +msgid "Clear" +msgstr "" + +# +msgid "Clear before scan" +msgstr "Netejar abans de buscar" + +msgid "Clear fixed" +msgstr "" + +# +msgid "Clear log" +msgstr "Esborrar log" + +# +#, fuzzy +msgid "Clear playlist" +msgstr "netejar la llista" + +# +msgid "Close" +msgstr "" + +msgid "Close PiP on exit" +msgstr "" + +# +msgid "Close title selection" +msgstr "" + +msgid "Code rate HP" +msgstr "" + +msgid "Code rate LP" +msgstr "" + +# +msgid "Coderate HP" +msgstr "Velocitat de codi HP" + +# +msgid "Coderate LP" +msgstr "Velocitat de codi LP" + +# +msgid "Collection name" +msgstr "" + +# +msgid "Collection settings" +msgstr "" + +# +#, fuzzy +msgid "Color format" +msgstr "Format de color" + +# +msgid "Command execution..." +msgstr "" + +# +msgid "Command order" +msgstr "Ordre de comanda" + +# +msgid "Common Interface" +msgstr "Interfície comuna" + +# +#, fuzzy +msgid "Common Interface assignment" +msgstr "Interfície comuna" + +# +msgid "Communication" +msgstr "" + +# +#, fuzzy +msgid "Compact flash" +msgstr "Compact Flash" + +# +msgid "Complete" +msgstr "Complet" + +# +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "" + +msgid "Composition of the recording filenames" +msgstr "" + +# +#, fuzzy +msgid "Configuration mode" +msgstr "Mode configuració" + +# +#, fuzzy, python-format +msgid "Configuration mode: %s" +msgstr "Mode configuració" + +# +#, fuzzy +msgid "Configuration..." +msgstr "Mode configuració" + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "" + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "" + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "" + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "" + +msgid "Configure how recording filenames are constructed." +msgstr "" + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +# +msgid "Configure interface" +msgstr "" + +# +msgid "Configure nameservers" +msgstr "" + +msgid "Configure on which devices the background delete option should be used." +msgstr "" + +# +#, fuzzy +msgid "Configure remote control type" +msgstr "Tipus de control parental" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "" + +msgid "Configure the IP address." +msgstr "" + +msgid "Configure the aspect ratio of the screen." +msgstr "" + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "" + +msgid "Configure the behavior when movie playback is started." +msgstr "" + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "" + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "" + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "" + +msgid "Configure the brightness level of the front panel display." +msgstr "" + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "" + +msgid "Configure the color of the teletext subtitles." +msgstr "" + +msgid "Configure the contrast level of the front panel display." +msgstr "" + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "" + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "" + +msgid "Configure the first audio language (highest priority)." +msgstr "" + +msgid "Configure the first subtitle language (highest priority)." +msgstr "" + +msgid "Configure the font size of the subtitles." +msgstr "" + +msgid "Configure the fourth audio language." +msgstr "" + +msgid "Configure the fourth subtitle language." +msgstr "" + +msgid "Configure the function of a long press on the power button." +msgstr "" + +msgid "Configure the function of a short press on the power button." +msgstr "" + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "" + +msgid "Configure the gateway." +msgstr "" + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "" + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "" + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "" + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "" + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "" + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "" + +msgid "Configure the latitude of your location." +msgstr "" + +msgid "Configure the longitude of your location." +msgstr "" + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "" + +msgid "Configure the nameserver (DNS)." +msgstr "" + +msgid "Configure the netmask." +msgstr "" + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "" + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "" + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "" + +msgid "Configure the possible fast forward speeds." +msgstr "" + +msgid "Configure the possible rewind speeds." +msgstr "" + +msgid "Configure the primary EPG language." +msgstr "" + +msgid "Configure the refresh rate of the screen." +msgstr "" + +msgid "Configure the screen resolution in PC output mode." +msgstr "" + +msgid "Configure the second audio language." +msgstr "" + +msgid "Configure the second subtitle language." +msgstr "" + +msgid "Configure the secondary EPG language." +msgstr "" + +msgid "Configure the sharpness of the video scaling." +msgstr "" + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "" + +msgid "Configure the slow motion speeds." +msgstr "" + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "" + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "" + +msgid "Configure the third audio language." +msgstr "" + +msgid "Configure the third subtitle language." +msgstr "" + +msgid "Configure the transparency of the OSD." +msgstr "" + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "" + +# +#, fuzzy +msgid "Configure the tuner mode." +msgstr "Mode configuració" + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "" + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "" + +msgid "Configure the video output mode (or resolution)." +msgstr "" + +msgid "Configure the way in which the receiver changes channels." +msgstr "" + +msgid "Configure where completed timers show up in the timer list." +msgstr "" + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "" + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "" + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "" + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "" + +msgid "Configure which color format should be used on the SCART output." +msgstr "" + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "" + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "" + +# +msgid "Configure your internal LAN" +msgstr "" + +# +msgid "Configure your network again" +msgstr "" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "" + +# +msgid "Configure your wireless LAN again" +msgstr "" + +msgid "Configures which video output connector will be used." +msgstr "" + +# +msgid "Configuring" +msgstr "Configurant" + +# +msgid "Conflicting timer" +msgstr "Gravació en conflicte" + +# +msgid "Connect" +msgstr "" + +msgid "Connect to a wireless network" +msgstr "" + +msgid "Connected satellites" +msgstr "" + +# +msgid "Connected to" +msgstr "" + +# +msgid "Connected!" +msgstr "" + +# +msgid "Constellation" +msgstr "Constel·lació" + +# +msgid "Content does not fit on DVD!" +msgstr "" + +msgid "Continue" +msgstr "" + +# +msgid "Continue in background" +msgstr "" + +msgid "Continue playback" +msgstr "" + +# +msgid "Continue playing" +msgstr "" + +msgid "Continues play (loop)" +msgstr "" + +# +msgid "Contrast" +msgstr "Contrast" + +msgid "Convert ext3 filesystem to ext4" +msgstr "" + +msgid "Convert ext3 to ext4" +msgstr "" + +msgid "Converting ext3 to ext4..." +msgstr "" + +msgid "Copy" +msgstr "" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "" + +msgid "Could not find installed channel list." +msgstr "" + +msgid "Could not load medium! No disc inserted?" +msgstr "" + +# +msgid "Could not open Picture in Picture" +msgstr "" + +#, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "" + +#, python-format +msgid "Could not record due to invalid service %s" +msgstr "" + +# +msgid "Create DVD-ISO" +msgstr "" + +msgid "Create more detailed crash log" +msgstr "" + +# +#, python-format +msgid "Creating directory %s failed." +msgstr "" + +msgid "Creating filesystem" +msgstr "" + +msgid "Creating partition" +msgstr "" + +# +msgid "Croatian" +msgstr "Croat" + +msgid "Current CEC address" +msgstr "" + +msgid "Current device: " +msgstr "" + +msgid "Current event EPG" +msgstr "" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +# +msgid "Current settings:" +msgstr "" + +# +#, fuzzy +msgid "Current transponder" +msgstr "Transponedor predefinit" + +# +msgid "Current value: " +msgstr "" + +# +msgid "Current version:" +msgstr "Versió actual:" + +msgid "Currently installed image" +msgstr "" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +msgid "Custom skip time for '1'/'3' buttons" +msgstr "" + +msgid "Custom skip time for '4'/'6' buttons" +msgstr "" + +msgid "Custom skip time for '7'/'9' buttons" +msgstr "" + +# +msgid "Customize" +msgstr "Personalitzar" + +msgid "Customize channel list cursor behavior" +msgstr "" + +# +msgid "Cut" +msgstr "Tallar" + +# +msgid "Cutlist editor..." +msgstr "Editor..." + +# +msgid "Czech" +msgstr "Txec" + +# +msgid "D" +msgstr "" + +# +msgid "DHCP" +msgstr "" + +# +#, fuzzy +msgid "DMM advanced" +msgstr "avançat" + +msgid "DMM normal" +msgstr "" + +# +msgid "DUAL LAYER DVD" +msgstr "" + +msgid "DVB subtitle black transparency" +msgstr "" + +msgid "DVB-C" +msgstr "" + +msgid "DVB-C ANNEX C" +msgstr "" + +# +msgid "DVB-S" +msgstr "DVB-S" + +# +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "" + +msgid "DVB-T2" +msgstr "" + +msgid "DVD data format" +msgstr "" + +# +#, fuzzy +msgid "DVD file browser" +msgstr "Plugin navegador" + +# +msgid "DVD media toolbox" +msgstr "" + +# +#, fuzzy +msgid "DVD player" +msgstr "amagar reproductor" + +# +#, fuzzy +msgid "DVD titlelist" +msgstr "llista blanca" + +# +msgid "Danish" +msgstr "Danès" + +# +msgid "Date" +msgstr "Data" + +# +#, fuzzy +msgid "Date/time input" +msgstr "Entrada Hora/Data" + +# +#, fuzzy +msgid "Deep standby" +msgstr "Apagat complet" + +# +msgid "Default" +msgstr "" + +# +msgid "Default movie location" +msgstr "" + +# +#, fuzzy +msgid "Default settings" +msgstr "Config OSD" + +msgid "Delay before key repeat starts:" +msgstr "" + +msgid "Delay for external subtitles" +msgstr "" + +# +msgid "Delete" +msgstr "Esborrar" + +# +msgid "Delete entry" +msgstr "Esborrar entrada" + +# +msgid "Delete failed!" +msgstr "Ha fallat l'eliminació!" + +# +#, fuzzy +msgid "Delete file" +msgstr "Ha fallat l'eliminació!" + +# +#, fuzzy +msgid "Delete playlist entry" +msgstr "esborrar entrada de la llista" + +# +#, fuzzy +msgid "Delete saved playlist" +msgstr "esborrar llista gravada" + +msgid "Delete timer" +msgstr "" + +# +#, fuzzy +msgid "Delete..." +msgstr "esborrar..." + +msgid "Deleted" +msgstr "" + +msgid "Deleted items" +msgstr "" + +msgid "Depth" +msgstr "" + +msgid "Descramble http streams" +msgstr "" + +# +msgid "Description" +msgstr "Descripció" + +# +msgid "Deselect" +msgstr "" + +msgid "Details for plugin: " +msgstr "" + +# +msgid "Detected HDD:" +msgstr "Disc dur detectat:" + +# +msgid "Detected NIMs:" +msgstr "NIMs detectats:" + +msgid "Devicename:" +msgstr "" + +msgid "Devide" +msgstr "" + +# +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +# +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +# +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +# +msgid "DiSEqC mode" +msgstr "mode DiSEqC" + +# +#, fuzzy, python-format +msgid "DiSEqC port %s: %s" +msgstr "Repetir DiSEqC" + +msgid "DiSEqC-tester settings" +msgstr "" + +# +msgid "Dialing:" +msgstr "" + +# +msgid "Digital contour removal" +msgstr "" + +# +msgid "Direct playback of linked titles without menu" +msgstr "" + +msgid "Directory" +msgstr "" + +#, python-format +msgid "Directory %s does not exist." +msgstr "" + +#, python-format +msgid "Directory %s nonexistent." +msgstr "" + +# +msgid "Directory browser" +msgstr "" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "" + +#, python-format +msgid "Directory contains %s and %s." +msgstr "" + +# +msgid "Disable" +msgstr "Deshabilitar" + +# +msgid "Disable Picture in Picture" +msgstr "Desactivar PiP" + +msgid "Disable background scanning" +msgstr "" + +msgid "Disable timer" +msgstr "" + +# +msgid "Disabled" +msgstr "Desactivat" + +# +msgid "Disconnect" +msgstr "" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "" + +# +msgid "Display 16:9 content as" +msgstr "" + +# +msgid "Display 4:3 content as" +msgstr "" + +# +msgid "Display >16:9 content as" +msgstr "" + +msgid "Display and userinterface" +msgstr "" + +msgid "Display message before playing next movie" +msgstr "" + +# +#, fuzzy +msgid "Display setup" +msgstr "Configurar Display" + +# +#, fuzzy +msgid "Do not change" +msgstr "no canviar" + +# +#, fuzzy +msgid "Do not record" +msgstr "no gravar" + +# +#, fuzzy +msgid "Do nothing" +msgstr "no facis res" + +# +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" + +# +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Segur que vols esborrar %s?" + +# +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" + +# +msgid "Do you really want to exit?" +msgstr "Segur que vols sortir?" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" + +# +#, fuzzy, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "Segur que vols esborrar %s?" + +# +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "" + +# +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "" + +msgid "Do you want this?" +msgstr "" + +# +msgid "Do you want to burn this collection to DVD medium?" +msgstr "" + +# +msgid "Do you want to do a service scan?" +msgstr "Vols fer una recerca de canals?" + +# +msgid "Do you want to do another manual service scan?" +msgstr "Vols fer una altra recerca manual?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "" + +# +#, fuzzy +msgid "Do you want to install a channel list?" +msgstr "Vols fer una recerca de canals?" + +# +msgid "Do you want to install the package:\n" +msgstr "" + +# +msgid "Do you want to play DVD in drive?" +msgstr "" + +# +msgid "Do you want to preview this DVD before burning?" +msgstr "" + +msgid "Do you want to reboot your receiver?" +msgstr "" + +# +msgid "Do you want to remove the package:\n" +msgstr "" + +# +msgid "Do you want to restore your settings?" +msgstr "Vols restaurar la configuració?" + +# +msgid "Do you want to resume this playback?" +msgstr "Vols continuar on ho havies deixat?" + +# +#, fuzzy, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Vols restaurar la configuració?" + +msgid "Do you want to update your receiver?" +msgstr "" + +# +msgid "Do you want to upgrade the package:\n" +msgstr "" + +# +msgid "Don't stop current event but disable coming events" +msgstr "No aturar el programa en curs, però deshabilitar els següents" + +# +#, fuzzy, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "Fet. %d paquets instal·lats o actualitzats" +msgstr[1] "Fet. %d paquets instal·lats o actualitzats" + +# +msgid "Download" +msgstr "" + +#, python-format +msgid "Download %s from server" +msgstr "" + +msgid "Download .NFI-files for USB-flasher" +msgstr "" + +# +#, fuzzy +msgid "Download plugins" +msgstr "Descarregar plugins" + +# +msgid "Downloadable new plugins" +msgstr "Nous plugins disponibles" + +# +msgid "Downloadable plugins" +msgstr "Plugins descarregables" + +# +msgid "Downloading" +msgstr "Descarregant" + +# +msgid "Downloading plugin information. Please wait..." +msgstr "Descarregant informació del plugin. Espera..." + +# +msgid "Dutch" +msgstr "Holandès" + +# +msgid "Dynamic contrast" +msgstr "" + +# +msgid "E" +msgstr "E" + +msgid "EPG" +msgstr "" + +msgid "EPG language selection 1" +msgstr "" + +msgid "EPG language selection 2" +msgstr "" + +# +#, fuzzy +msgid "EPG selection" +msgstr "Selecció EPG" + +msgid "EPG settings" +msgstr "" + +# +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "ERROR - ha fallat la recerca (%s)!" + +# +msgid "East" +msgstr "Est" + +msgid "East limit set" +msgstr "" + +# +msgid "Edit" +msgstr "" + +# +msgid "Edit DNS" +msgstr "" + +# +msgid "Edit bouquets list" +msgstr "" + +# +msgid "Edit chapters of current title" +msgstr "" + +# +msgid "Edit services list" +msgstr "Editar llista de canals" + +# +msgid "Edit settings" +msgstr "" + +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "" + +msgid "Edit timer" +msgstr "" + +# +msgid "Edit title" +msgstr "" + +# +msgid "Edit upgrade source url." +msgstr "" + +msgid "Education/Science/..." +msgstr "" + +# +msgid "Electronic Program Guide" +msgstr "" + +# +msgid "Enable" +msgstr "Activar" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +# +msgid "Enable 5V for active antenna" +msgstr "Activar 5V per a antena activa" + +msgid "Enable EIT EPG" +msgstr "" + +msgid "Enable MHW EPG" +msgstr "" + +msgid "Enable Netmed EPG" +msgstr "" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +# +#, fuzzy +msgid "Enable bouquet selection in multi-EPG" +msgstr "activar l'edició de la llista" + +msgid "Enable freesat EPG" +msgstr "" + +# +msgid "Enable multiple bouquets" +msgstr "Activar llistes múltiples" + +# +msgid "Enable parental control" +msgstr "Activar control parental" + +msgid "Enable teletext caching" +msgstr "" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +# +msgid "Enabled" +msgstr "Activat" + +# +msgid "Encrypted: " +msgstr "" + +# +msgid "Encryption" +msgstr "" + +msgid "Encryption key" +msgstr "" + +msgid "Encryption key type" +msgstr "" + +# +msgid "Encryption:" +msgstr "" + +# +msgid "End time" +msgstr "Hora final" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +# +msgid "English" +msgstr "Anglès" + +msgid "Enigma2 skin selector" +msgstr "" + +# +msgid "Enter main menu..." +msgstr "Entrar al menú principal..." + +# +msgid "Enter pin code" +msgstr "" + +# +msgid "Enter the service pin" +msgstr "Entra el pin del canal" + +msgid "Equal to" +msgstr "" + +# +msgid "Error" +msgstr "Error" + +msgid "Error code" +msgstr "" + +# +msgid "Error executing plugin" +msgstr "" + +# +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" + +# +msgid "Estonian" +msgstr "" + +msgid "Ethernet network interface" +msgstr "" + +msgid "Event font size (relative to skin size)" +msgstr "" + +# +#, fuzzy +msgid "Event view" +msgstr "Veure programes" + +# +#, fuzzy +msgid "Event view menu" +msgstr "Veure programes" + +msgid "Everywhere" +msgstr "" + +# +msgid "Exceeds dual layer medium!" +msgstr "" + +# +msgid "Execution finished!!" +msgstr "Ha finalitzat l'execució" + +# +#, fuzzy +msgid "Execution progress:" +msgstr "Progrés d'execució:" + +# +msgid "Exif" +msgstr "" + +# +msgid "Exit" +msgstr "" + +msgid "Exit EPG" +msgstr "" + +# +msgid "Exit editor" +msgstr "Sortir de l'editor" + +msgid "Exit input device selection." +msgstr "" + +msgid "Exit media player?" +msgstr "" + +# +#, fuzzy +msgid "Exit mediaplayer" +msgstr "sortir del reproductor" + +# +#, fuzzy +msgid "Exit movie list" +msgstr "llista de pel·lícules" + +# +#, fuzzy +msgid "Exit movie player?" +msgstr "sortir del reproductor" + +# +#, fuzzy +msgid "Exit nameserver configuration" +msgstr "Configuració del sintonitzador" + +# +#, fuzzy +msgid "Exit network interface list" +msgstr "Editar llista de canals" + +# +msgid "Exit network wizard" +msgstr "" + +# +msgid "Exit the wizard" +msgstr "Sortir de l'assistent" + +# +msgid "Expert" +msgstr "" + +msgid "Extend sleeptimer 15 minutes" +msgstr "" + +# +msgid "Extended Software" +msgstr "" + +# +msgid "Extended Software Plugin" +msgstr "" + +# +#, fuzzy +msgid "Extended network setup plugin..." +msgstr "Configuració avançada..." + +# +#, fuzzy +msgid "Extended setup..." +msgstr "Configuració avançada..." + +# +msgid "Extensions" +msgstr "Extensions" + +# +msgid "Extensions management" +msgstr "" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "" + +msgid "Extra motor options" +msgstr "" + +# +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "" + +# +msgid "Factory reset" +msgstr "" + +# +msgid "Failed" +msgstr "" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "" + +# +#, python-format +msgid "Fan %d" +msgstr "" + +# +#, python-format +msgid "Fan %d PWM" +msgstr "" + +# +#, fuzzy, python-format +msgid "Fan %d voltage" +msgstr "Voltatge incrementat" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +# +msgid "Fast" +msgstr "Ràpid" + +# +msgid "Fast DiSEqC" +msgstr "DiSEqC ràpid" + +msgid "Fast Scan" +msgstr "" + +# +#, fuzzy +msgid "Fast epoch" +msgstr "Època ràpida" + +msgid "Fast forward speeds" +msgstr "" + +# +msgid "Favourites" +msgstr "Preferits" + +msgid "File appears to be busy.\n" +msgstr "" + +msgid "Filesystem check" +msgstr "" + +msgid "Final position at" +msgstr "" + +msgid "Final position at index" +msgstr "" + +msgid "Fine movement" +msgstr "" + +# +msgid "Finetune" +msgstr "Ajustaments delicats" + +# +msgid "Finished" +msgstr "" + +# +msgid "Finished configuring your network" +msgstr "" + +# +msgid "Finished restarting your network" +msgstr "" + +# +msgid "Finnish" +msgstr "Finlandès" + +msgid "Fixed" +msgstr "" + +# +msgid "Flash" +msgstr "" + +# +msgid "Flashing failed" +msgstr "" + +# +msgid "Following tasks will be done after you press OK!" +msgstr "" + +# +msgid "Format" +msgstr "" + +msgid "Forward volume keys" +msgstr "" + +# +msgid "Frame size in full view" +msgstr "" + +# +msgid "French" +msgstr "Francès" + +# +msgid "Frequency" +msgstr "Freqüència" + +# +msgid "Frequency bands" +msgstr "Bandes de freqüència" + +# +msgid "Frequency scan step size(khz)" +msgstr "Mida de pas de freqüència(khz)" + +# +#, fuzzy +msgid "Frequency steps" +msgstr "Passos de freqüència" + +msgid "Frequency:" +msgstr "" + +# +msgid "Fri" +msgstr "Div" + +# +msgid "Friday" +msgstr "Divendres" + +msgid "From :" +msgstr "" + +# +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Versió processador: %d" + +msgid "Full transparency" +msgstr "" + +msgid "Fulview resulution" +msgstr "" + +msgid "Function of OK button" +msgstr "" + +msgid "Further Options" +msgstr "" + +# +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"Cal reengegar la IGU per activar la nova aparença\n" +"Vols fer-ho ara?" + +# +msgid "Gateway" +msgstr "Enrutador" + +msgid "General AC3 delay" +msgstr "" + +msgid "General PCM delay" +msgstr "" + +# +msgid "Genre" +msgstr "Gènere" + +# +msgid "German" +msgstr "Alemany" + +msgid "Get latest experimental image" +msgstr "" + +msgid "Get latest release image" +msgstr "" + +# +msgid "Getting plugin information. Please wait..." +msgstr "Llegint la informació del plugin. Espera..." + +msgid "Go down the list" +msgstr "" + +msgid "Go to first movie or last item" +msgstr "" + +msgid "Go to first movie or top of list" +msgstr "" + +# +#, fuzzy +msgid "Go to first service" +msgstr "Protegir canals" + +# +#, fuzzy +msgid "Go to last service" +msgstr "Protegir canals" + +msgid "Go to next event" +msgstr "" + +# +#, fuzzy +msgid "Go to next page of service" +msgstr "Canviar al següent subservei" + +# +#, fuzzy +msgid "Go to previous event" +msgstr "Canviar al subservei anterior" + +# +#, fuzzy +msgid "Go to previous page of service" +msgstr "Canviar al subservei anterior" + +msgid "Go up the list" +msgstr "" + +msgid "Goto" +msgstr "" + +# +msgid "Goto 0" +msgstr "Anar a 0" + +msgid "Goto :" +msgstr "" + +msgid "Goto X" +msgstr "" + +msgid "Goto index position" +msgstr "" + +msgid "Goto next day of events" +msgstr "" + +msgid "Goto next page of events" +msgstr "" + +# +msgid "Goto position" +msgstr "Anar a la posició" + +msgid "Goto previous day of events" +msgstr "" + +msgid "Goto previous page of events" +msgstr "" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "" + +msgid "GraphMultiEpg Settings" +msgstr "" + +# +msgid "Graphical Multi EPG" +msgstr "" + +# +msgid "Greek" +msgstr "Grec" + +# +msgid "Green boost" +msgstr "" + +msgid "Guard interval" +msgstr "" + +msgid "HD list" +msgstr "" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "" + +msgid "Handle wakeup from TV" +msgstr "" + +# +#, fuzzy +msgid "Hard disk" +msgstr "Disc dur" + +# +#, fuzzy +msgid "Hard disk setup" +msgstr "Configuració del disc dur" + +# +#, fuzzy +msgid "Hard disk standby after" +msgstr "Posar el disc dur en repòs després de" + +# +msgid "Harddisk" +msgstr "Disc dur" + +msgid "Hardware: " +msgstr "" + +msgid "Hebrew" +msgstr "" + +msgid "Helps setting up your dish" +msgstr "" + +msgid "Hidden network" +msgstr "" + +msgid "Hide CI messages" +msgstr "" + +msgid "Hide channel list in radio mode" +msgstr "" + +msgid "Hide known extensions" +msgstr "" + +msgid "Hide number markers" +msgstr "" + +# +#, fuzzy +msgid "Hide player" +msgstr "amagar reproductor" + +msgid "Hide zap errors" +msgstr "" + +msgid "Hierarchy info" +msgstr "" + +# +#, fuzzy +msgid "Hierarchy information" +msgstr "Informació jeràrquica" + +# +msgid "High bitrate support" +msgstr "" + +msgid "Hold screen" +msgstr "" + +msgid "Hold till locked" +msgstr "" + +msgid "Home" +msgstr "" + +# +msgid "Horizontal" +msgstr "" + +msgid "Horizontal turning speed" +msgstr "" + +# +msgid "How many minutes do you want to record?" +msgstr "Quants minuts vols gravar?" + +# +msgid "Hue" +msgstr "" + +# +msgid "Hungarian" +msgstr "Hongarès" + +# +#, fuzzy +msgid "IP address" +msgstr "Adreça IP" + +# +msgid "ISO file is too large for this filesystem!" +msgstr "" + +# +msgid "ISO path" +msgstr "" + +msgid "Icons" +msgstr "" + +# +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"Si pots veure això és que hi ha algun problema\n" +"amb la connexió SCART. Prem OK per tornar." + +# +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" + +msgid "Image: " +msgstr "" + +# +#, fuzzy +msgid "Immediate shutdown" +msgstr "apagar" + +# +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "Per a poder fer una gravació programada, s'ha canviat al canal adequat!\n" + +# +#, fuzzy +msgid "In progress" +msgstr "Progrés d'execució:" + +msgid "Inactivity Sleeptimer" +msgstr "" + +msgid "Include AIT in http streams" +msgstr "" + +msgid "Include ECM in http streams" +msgstr "" + +msgid "Include EIT in http streams" +msgstr "" + +msgid "Incorrect type service for PiP!" +msgstr "" + +# +msgid "Increased voltage" +msgstr "Voltatge incrementat" + +# +msgid "Index" +msgstr "Ãndex" + +msgid "Index allocated:" +msgstr "" + +# +msgid "Info" +msgstr "" + +# +#, fuzzy +msgid "Info bar" +msgstr "Barra d'informació" + +# +#, fuzzy +msgid "Info bar timeout" +msgstr "Temps d'aparició de la barra d'informació" + +msgid "Infobar frontend data source" +msgstr "" + +# +msgid "Information" +msgstr "Informació" + +# +msgid "Init" +msgstr "Iniciar" + +msgid "Initial fast forward speed" +msgstr "" + +# +msgid "Initial location in new timers" +msgstr "" + +msgid "Initial lock ratio" +msgstr "" + +# +#, fuzzy +msgid "Initial rewind speed" +msgstr "Inicialitzar" + +msgid "Initial signal quality" +msgstr "" + +msgid "Initial signal quality:" +msgstr "" + +# +msgid "Initialization" +msgstr "" + +# +msgid "Initialize" +msgstr "Inicialitzar" + +msgid "Initializing storage device..." +msgstr "" + +# +msgid "Input" +msgstr "Entrada" + +msgid "Input device setup" +msgstr "" + +msgid "Input devices" +msgstr "" + +# +msgid "Install" +msgstr "" + +# +msgid "Install a new image with a USB stick" +msgstr "" + +# +msgid "Install a new image with your web browser" +msgstr "" + +# +#, fuzzy +msgid "Install channel list" +msgstr "canal següent en l'històric" + +msgid "Install extensions" +msgstr "" + +# +msgid "Install extensions." +msgstr "" + +# +msgid "Install local extension" +msgstr "" + +msgid "Install picons on" +msgstr "" + +# +#, fuzzy +msgid "Install softcam" +msgstr "Instal·lant programari..." + +msgid "Installation has completed." +msgstr "" + +msgid "Installation or removal has completed." +msgstr "" + +# +msgid "Installing" +msgstr "Instal·lant" + +# +#, fuzzy +msgid "Installing software..." +msgstr "Instal·lant programari..." + +# +#, fuzzy +msgid "Instant recording location" +msgstr "canviar la gravació (durada)" + +# +#, fuzzy +msgid "Instant recording..." +msgstr "Gravació instantània..." + +# +msgid "Interface: " +msgstr "" + +# +msgid "Intermediate" +msgstr "" + +# +#, fuzzy +msgid "Internal flash" +msgstr "Flash interna" + +msgid "Internal hdd only" +msgstr "" + +msgid "Interval between keys when repeating:" +msgstr "" + +# +#, python-format +msgid "Invalid directory selected: %s" +msgstr "" + +msgid "Invalid location" +msgstr "" + +msgid "Invalid transponder data" +msgstr "" + +# +msgid "Inversion" +msgstr "Inversió" + +msgid "Invert" +msgstr "" + +# +msgid "Ipkg" +msgstr "" + +msgid "Is this setting ok?" +msgstr "" + +msgid "Is this video mode ok?" +msgstr "" + +# +msgid "Italian" +msgstr "Italià" + +msgid "Items per page " +msgstr "" + +msgid "Items per page for list screen" +msgstr "" + +msgid "Job overview" +msgstr "" + +msgid "Jump to beginning of list" +msgstr "" + +# +#, fuzzy +msgid "Jump to end of list" +msgstr "salta al final de la llista" + +# +#, fuzzy +msgid "Jump to next marked position" +msgstr "salta a la següent posició marcada" + +# +#, fuzzy +msgid "Jump to previous marked position" +msgstr "salta a l'anterior posició marcada" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +msgid "Just scale" +msgstr "" + +msgid "Keep service" +msgstr "" + +# +#, fuzzy +msgid "Kernel version: " +msgstr "Nova versió:" + +# +msgid "Keyboard" +msgstr "" + +# +#, fuzzy +msgid "Keyboard map" +msgstr "Mapa del teclat" + +# +#, fuzzy +msgid "Keyboard setup" +msgstr "Configuració teclat" + +msgid "LAN adapter" +msgstr "" + +msgid "LAN connection" +msgstr "" + +# +msgid "LNB" +msgstr "LNB" + +# +msgid "Language" +msgstr "Idioma" + +# +msgid "Language selection" +msgstr "Selecció d'idioma" + +# +msgid "Last config" +msgstr "" + +# +msgid "Last speed" +msgstr "" + +msgid "Last upgrade: " +msgstr "" + +msgid "Latest Commits" +msgstr "" + +# +msgid "Latitude" +msgstr "Latitud" + +# +msgid "Latvian" +msgstr "" + +# +#, fuzzy +msgid "Leave DVD player?" +msgstr "sortir del reproductor de pel·lícules..." + +# +msgid "Left" +msgstr "Esq." + +msgid "Left from servicename" +msgstr "" + +msgid "Leisure hobbies" +msgstr "" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "" + +msgid "Letterbox zoom" +msgstr "" + +msgid "Limit character set for recording filenames" +msgstr "" + +# +msgid "Limit east" +msgstr "Límit est" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "" + +# +msgid "Limit west" +msgstr "Límit oest" + +msgid "Limits cancelled" +msgstr "" + +msgid "Limits enabled" +msgstr "" + +# +msgid "Limits off" +msgstr "Treure límits" + +# +msgid "Limits on" +msgstr "Posar límits" + +msgid "Link quality:" +msgstr "" + +# +msgid "Link:" +msgstr "" + +# +msgid "Linked titles with a DVD menu" +msgstr "" + +msgid "List EPG functions..." +msgstr "" + +msgid "List available networks" +msgstr "" + +msgid "List mode" +msgstr "" + +# +#, fuzzy +msgid "List of storage devices" +msgstr "Dispositius d'emmagatzematge" + +msgid "List type" +msgstr "" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "" +msgstr[1] "" + +# +#, fuzzy +msgid "Listen to the radio..." +msgstr "escoltar la ràdio..." + +msgid "Lists reloaded!" +msgstr "" + +# +msgid "Lithuanian" +msgstr "Lituà" + +# +msgid "Load" +msgstr "" + +msgid "Load Length of Movies in Movielist" +msgstr "" + +msgid "Load length of movies in movie list" +msgstr "" + +# +#, fuzzy +msgid "Load playlist" +msgstr "carregar llista" + +msgid "Local network" +msgstr "" + +# +msgid "Location" +msgstr "" + +# +msgid "Location for instant recordings" +msgstr "" + +msgid "Lock ratio" +msgstr "" + +# +msgid "Lock:" +msgstr "" + +# +msgid "Log results to harddisk" +msgstr "" + +msgid "Long filenames" +msgstr "" + +# +#, fuzzy +msgid "Long key press" +msgstr "Prémer tecla llarg" + +# +msgid "Longitude" +msgstr "Longitud" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "" + +# +#, fuzzy +msgid "MMC card" +msgstr "Tarja MMC" + +# +msgid "MORE" +msgstr "MÉS" + +# +msgid "Main menu" +msgstr "Menú principal" + +msgid "Maintain old EPG data for" +msgstr "" + +# +msgid "Make this mark an 'in' point" +msgstr "Fer que aquesta marca sigui un punt 'in'" + +# +msgid "Make this mark an 'out' point" +msgstr "Fer que aquesta marca sigui un punt 'out'" + +# +msgid "Make this mark just a mark" +msgstr "Fer que aquesta marca sigui només una marca" + +# +msgid "Manage extensions" +msgstr "" + +# +msgid "Manage your receiver's software" +msgstr "" + +msgid "Manual" +msgstr "" + +# +msgid "Manual Scan" +msgstr "Recerca manual" + +msgid "Manual configuration" +msgstr "" + +# +#, fuzzy +msgid "Manual scan" +msgstr "Recerca manual" + +# +msgid "Manual transponder" +msgstr "Transponedor manual" + +# +msgid "Manufacturer" +msgstr "" + +# +#, fuzzy +msgid "Margin after recording (minutes)" +msgstr "Marge abans de gravar (minuts)" + +# +#, fuzzy +msgid "Margin before recording (minutes)" +msgstr "Marge abans de gravar (minuts)" + +msgid "Max memory positions" +msgstr "" + +msgid "Max. bitrate: " +msgstr "" + +# +msgid "Media player" +msgstr "Reproductor" + +# +#, fuzzy +msgid "Media scanner" +msgstr "Reproductor" + +# +msgid "Medium is not a writeable DVD!" +msgstr "" + +# +msgid "Medium is not empty!" +msgstr "" + +msgid "Memory" +msgstr "" + +msgid "Memory index" +msgstr "" + +# +msgid "Menu" +msgstr "Menú" + +# +msgid "Message" +msgstr "Missatge" + +# +msgid "Message..." +msgstr "" + +#, python-format +msgid "Minimum age %d years" +msgstr "" + +msgid "Minimum send interval" +msgstr "" + +msgid "Missing " +msgstr "" + +# +#, fuzzy +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Mode" + +# +#, fuzzy +msgctxt "Video output mode" +msgid "Mode" +msgstr "Mode" + +# +msgid "Model: " +msgstr "Model: " + +# +msgid "Modulation" +msgstr "Modulació" + +# +msgid "Modulator" +msgstr "Modulador" + +# +msgid "Mon" +msgstr "Dill" + +# +msgid "Mon-Fri" +msgstr "Dill-Div" + +# +msgid "Monday" +msgstr "Dilluns" + +# +msgid "Mosquito noise reduction" +msgstr "" + +msgid "Mount" +msgstr "" + +msgid "Move" +msgstr "" + +# +#, fuzzy +msgid "Move PiP to main picture" +msgstr "Moure Picture in Picture" + +# +msgid "Move Picture in Picture" +msgstr "Moure Picture in Picture" + +# +msgid "Move east" +msgstr "Moure a l'est" + +msgid "Move to other directory" +msgstr "" + +msgid "Move to position X" +msgstr "" + +# +msgid "Move west" +msgstr "Moure a l'oest" + +msgid "Moved to position 0" +msgstr "" + +msgid "Moved to position at index" +msgstr "" + +msgid "Movement" +msgstr "" + +msgid "Movie List Configuration" +msgstr "" + +msgid "Movie Selection" +msgstr "" + +# +#, fuzzy +msgid "Movie list configuration" +msgstr "Configuració del sintonitzador" + +# +msgid "Movie location" +msgstr "" + +# +#, fuzzy +msgid "Movie selection" +msgstr "Selecció de gravació" + +msgid "Movie/Drama" +msgstr "" + +# +msgid "Movielist menu" +msgstr "" + +msgid "Moving" +msgstr "" + +msgid "Moving east ..." +msgstr "" + +msgid "Moving to position" +msgstr "" + +msgid "Moving west ..." +msgstr "" + +# +msgid "Multi EPG" +msgstr "Multi EPG" + +msgid "Multi-EPG bouquet selection" +msgstr "" + +# +msgid "Multimedia" +msgstr "" + +# +msgid "Multiple service support" +msgstr "Suport per a serveis múltiples" + +msgid "Multiplex" +msgstr "" + +# +msgid "Multisat" +msgstr "Multisat" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "" + +# +msgid "Mute" +msgstr "Silenci" + +# +msgid "N/A" +msgstr "N/D" + +# +msgid "NEXT" +msgstr "SEGÃœENT" + +msgid "NFI image flashing" +msgstr "" + +# +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "" + +msgid "NIM" +msgstr "" + +# +msgid "NOW" +msgstr "ARA" + +# +msgid "NTSC" +msgstr "NTSC" + +# +msgid "Name" +msgstr "Nom" + +# +msgid "Nameserver" +msgstr "Servidor de noms" + +# +#, python-format +msgid "Nameserver %d" +msgstr "Servidor de noms %d" + +# +msgid "Nameserver settings" +msgstr "" + +# +#, fuzzy +msgid "Nameserver setup" +msgstr "Configuració dels DNS" + +msgid "Namespace" +msgstr "" + +# +msgid "Netmask" +msgstr "Màscara" + +# +msgid "Network" +msgstr "" + +msgid "Network ID" +msgstr "" + +# +#, fuzzy +msgid "Network configuration..." +msgstr "Configuració del sintonitzador" + +# +#, fuzzy +msgid "Network mount" +msgstr "Muntatge per xarxa" + +# +#, fuzzy, python-format +msgid "Network mount %s" +msgstr "Muntatge per xarxa" + +msgid "Network name (SSID)" +msgstr "" + +# +msgid "Network scan" +msgstr "Escanejar xarxa" + +# +msgid "Network setup" +msgstr "Configuració de xarxa" + +# +msgid "Network test" +msgstr "" + +# +msgid "Network test..." +msgstr "" + +msgid "Network test: " +msgstr "" + +# +#, fuzzy +msgid "Network wizard" +msgstr "Escanejar xarxa" + +# +msgid "Network:" +msgstr "" + +# +msgid "New" +msgstr "Nou" + +msgid "New PIN" +msgstr "" + +# +msgid "New version:" +msgstr "Nova versió:" + +msgid "News Current Affairs" +msgstr "" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "" + +# +msgid "No" +msgstr "No" + +# +msgid "No (supported) DVDROM found!" +msgstr "" + +# +msgid "No Connection" +msgstr "" + +# +msgid "No HDD found or HDD not initialized!" +msgstr "No hi ha disc dur o no està inicialitzat!" + +# +msgid "No backup needed" +msgstr "No cal backup" + +msgid "No cable tuner found!" +msgstr "" + +# +#, fuzzy +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Transponedor sense dades!\n" +"(Timeout llegint el PAT)" + +msgid "No delay" +msgstr "" + +# +msgid "No description available." +msgstr "" + +# +msgid "No details for this image file" +msgstr "" + +# +msgid "No displayable files on this medium found!" +msgstr "" + +# +msgid "No event info found, recording indefinitely." +msgstr "No hi ha info del programa, gravant indefinidament." + +# +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "" + +msgid "No free index available" +msgstr "" + +# +msgid "No free tuner!" +msgstr "No hi ha cap sintonitzador lliure!" + +# +msgid "No network connection available." +msgstr "" + +# +msgid "No networks found" +msgstr "" + +msgid "No new plugins found" +msgstr "" + +# +msgid "No positioner capable frontend found." +msgstr "No s'ha trobat cap motor." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "" + +msgid "No services/providers selected" +msgstr "" + +# +#, fuzzy +msgid "No standby" +msgstr "sense standby" + +msgid "No suitable sat tuner found!" +msgstr "" + +# +msgid "No tags are set on these movies." +msgstr "" + +# +#, fuzzy +msgid "No timeout" +msgstr "sense timeout" + +# +msgid "No to all" +msgstr "" + +msgid "No transparency" +msgstr "" + +# +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "No hi ha cap sintonitzador configurat per a utilitzar amb un motor diseqc!" + +# +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"No hi ha cap sintonitzador habilitat! \n" +"Sisplau configura algun sintonitzador abans de fer una recerca de canals." + +msgid "No updates available" +msgstr "" + +msgid "No updates available. Please try again later." +msgstr "" + +# +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"No s'ha trobat un PIN vàlid per al canal!\n" +"Vols canviar-lo ara?\n" +"Si contestes 'No' es deshabilitarà la protecció del canal!" + +# +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"No s'ha trobat un PIN vàlid de configuració!\n" +"Vols canviar-lo ara?\n" +"Si contestes 'No' es deshabilitarà la protecció de la configuració!" + +msgid "No wireless networks found! Searching..." +msgstr "" + +# +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" + +# +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" + +# +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" + +# +msgid "No, but restart from begin" +msgstr "" + +# +msgid "No, do nothing." +msgstr "No, no cal." + +msgid "No, just start my receiver" +msgstr "" + +msgid "No, never" +msgstr "" + +# +msgid "None" +msgstr "Cap" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "" + +msgid "Normal mode" +msgstr "" + +# +msgid "North" +msgstr "Nord" + +# +msgid "Norwegian" +msgstr "Noruec" + +msgid "Not associated" +msgstr "" + +msgid "Not configured" +msgstr "" + +#, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "" + +msgid "Nothing connected" +msgstr "" + +# +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Res per buscar!\n" +"Sisplau configura el sintonitzador abans de buscar un canal." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "" + +# +#, fuzzy +msgid "Now playing" +msgstr "Reproduint" + +# +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "" + +# +msgid "OK" +msgstr "Bé" + +# +msgid "OK, guide me through the upgrade process" +msgstr "D'acord, guia'm a través del procés d'actualizació" + +msgid "ONID" +msgstr "" + +msgid "OSD name request" +msgstr "" + +# +#, fuzzy +msgid "OSD settings" +msgstr "Config OSD" + +msgid "OSD transparency" +msgstr "" + +# +msgid "Off" +msgstr "Desactivat" + +msgid "Offline decode delay (ms)" +msgstr "" + +msgid "Ok" +msgstr "" + +# +msgid "On" +msgstr "Activat" + +msgid "On end of movie" +msgstr "" + +msgid "On end of movie (as menu)" +msgstr "" + +# +msgid "One" +msgstr "Un" + +# +msgid "Only extensions." +msgstr "" + +# +#, fuzzy +msgid "Only free scan" +msgstr "Netejar abans de buscar" + +# +#, fuzzy +msgid "Open service list" +msgstr "obrir llista de canals" + +# +#, fuzzy +msgid "Open the movie list" +msgstr "llista de pel·lícules" + +msgid "Orbital position" +msgstr "" + +msgid "Original" +msgstr "" + +msgid "Other" +msgstr "" + +msgid "Output" +msgstr "" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "" + +# +#, fuzzy +msgid "Overwrite configuration files?" +msgstr "Configuració del sintonitzador" + +# +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "" + +# +#, fuzzy +msgid "PIDs" +msgstr "PIDs" + +# +#, fuzzy +msgid "PIN code needed" +msgstr "Cal un codi pin" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "" + +# +msgid "Package list update" +msgstr "Actualització de la llista de paquets" + +# +msgid "Packet management" +msgstr "Gestió de paquets" + +# +msgid "Packet manager" +msgstr "" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +msgid "Pan&scan" +msgstr "" + +# +#, fuzzy +msgid "Parent directory" +msgstr "directori /var" + +# +msgid "Parental control" +msgstr "Control parental" + +# +#, fuzzy +msgid "Parental control services editor" +msgstr "Editor dels canals del control parental" + +# +msgid "Parental control setup" +msgstr "Configuració control parental" + +# +msgid "Parental control type" +msgstr "Tipus de control parental" + +# +msgid "Password" +msgstr "" + +# +#, fuzzy +msgid "Pause" +msgstr "pausa" + +# +msgid "Pause movie at end" +msgstr "" + +msgid "Pause playback" +msgstr "" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "" + +# +#, fuzzy +msgid "Percentage right" +msgstr "circular dreta" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "" + +msgid "Permanently remove all deleted items" +msgstr "" + +msgid "Persian" +msgstr "" + +# +msgid "Phone number" +msgstr "" + +# +#, fuzzy +msgid "PiP setup" +msgstr "Configuració PiP" + +msgid "Picon" +msgstr "" + +msgid "Picon and service name" +msgstr "" + +# +#, fuzzy +msgid "Picture player" +msgstr "amagar reproductor" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "" + +# +msgid "Pilot" +msgstr "" + +# +msgid "Play" +msgstr "" + +# +msgid "Play DVD" +msgstr "" + +msgid "Play audio in background" +msgstr "" + +msgid "Play audio-CD..." +msgstr "" + +msgid "Play back media files" +msgstr "" + +# +#, fuzzy +msgid "Play entry" +msgstr "reprodueix l'entrada" + +# +#, fuzzy +msgid "Play from next mark or playlist entry" +msgstr "esborrar entrada de la llista" + +msgid "Play from previous mark or playlist entry" +msgstr "" + +msgid "Play music..." +msgstr "" + +msgid "Play next" +msgstr "" + +msgid "Play next (return to movie list)" +msgstr "" + +msgid "Play next (return to previous service)" +msgstr "" + +msgid "Play previous" +msgstr "" + +# +msgid "Play recorded movies..." +msgstr "Reproduir pel·lícules gravades..." + +# +msgid "Please add titles to the compilation." +msgstr "" + +# +msgid "Please change recording endtime" +msgstr "Sisplau canvia l'hora d'aturar la gravació" + +# +msgid "Please check your network settings!" +msgstr "" + +# +msgid "Please choose an extension..." +msgstr "Sisplau escull una extensió..." + +# +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" + +# +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" + +msgid "Please connect your receiver to the internet" +msgstr "" + +# +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Sisplau, no canviïs els valors si no n'estàs segur!" + +# +msgid "Please enter a name for the new bouquet" +msgstr "Introdueix un nom per a la nova llista" + +# +msgid "Please enter a name for the new marker" +msgstr "Introdueix un nom per al nou marcador" + +# +msgid "Please enter a new filename" +msgstr "" + +# +msgid "Please enter filename (empty = use current date)" +msgstr "Sisplau introdueix el nom (buit=data actual)" + +# +msgid "Please enter name of the new directory" +msgstr "" + +msgid "Please enter new name:" +msgstr "" + +# +msgid "Please enter the correct pin code" +msgstr "Sisplau introdueix el pin" + +msgid "Please enter the old PIN code" +msgstr "" + +# +msgid "Please follow the instructions on the TV" +msgstr "" + +# +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "" + +# +msgid "Please press OK to continue." +msgstr "" + +msgid "Please select a default EPG type..." +msgstr "" + +# +msgid "Please select a playlist to delete..." +msgstr "Sisplau selecciona una llista per eliminar..." + +# +msgid "Please select a playlist..." +msgstr "Sisplau selecciona una llista..." + +# +#, fuzzy +msgid "Please select a sub service..." +msgstr "Sisplau selecciona un subservei..." + +# +msgid "Please select a subservice to record..." +msgstr "Sisplau selecciona un subservei a gravar..." + +# +msgid "Please select a subservice..." +msgstr "Sisplau selecciona un subservei..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "" + +# +#, fuzzy +msgid "Please select medium to be scanned" +msgstr "Sisplau selecciona un subservei a gravar..." + +# +msgid "Please select medium to use as backup location" +msgstr "" + +# +msgid "Please select tag to filter..." +msgstr "" + +# +msgid "Please select the movie path..." +msgstr "" + +# +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" + +# +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" + +# +#, fuzzy +msgid "Please set up tuner A" +msgstr "Configura el sintonitzador B" + +# +msgid "Please set up tuner B" +msgstr "Configura el sintonitzador B" + +# +msgid "Please set up tuner C" +msgstr "Configura el sintonitzador C" + +# +msgid "Please set up tuner D" +msgstr "Configura el sintonitzador D" + +# +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Sisplau ulititza les fletxes per a moure la finestra PiP.\n" +"Prem Bouquet +/- per canviar la mida de la finestra.\n" +"Prem OK per a tornar al mode TV o EXIT per a cancel·lar el moviment." + +# +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "" + +msgid "Please wait" +msgstr "" + +# +#, fuzzy +msgid "Please wait (downloading channel list)" +msgstr "Carregant la llista... espera..." + +# +#, fuzzy +msgid "Please wait (downloading softcam)" +msgstr "Carregant la llista... espera..." + +# +#, fuzzy +msgid "Please wait (updating packages)" +msgstr "sisplau espera, carregant imatge..." + +# +msgid "Please wait for activation of your network configuration..." +msgstr "" + +# +msgid "Please wait while scanning is in progress..." +msgstr "" + +# +msgid "Please wait while we configure your network..." +msgstr "" + +# +msgid "Please wait while we prepare your network interfaces..." +msgstr "" + +# +msgid "Please wait while we test your network..." +msgstr "" + +# +msgid "Please wait while your network is restarting..." +msgstr "" + +# +msgid "Please wait..." +msgstr "" + +# +msgid "Please wait... Loading list..." +msgstr "Carregant la llista... espera..." + +# +msgid "Plugin browser" +msgstr "Plugin navegador" + +# +msgid "Plugin manager activity information" +msgstr "" + +# +msgid "Plugin manager help" +msgstr "" + +# +msgid "Plugins" +msgstr "" + +msgid "Polarisation" +msgstr "" + +msgid "Polarisation:" +msgstr "" + +# +msgid "Polarization" +msgstr "Polarització" + +# +msgid "Polish" +msgstr "" + +# +msgid "Port A" +msgstr "Port A" + +# +msgid "Port B" +msgstr "Port B" + +# +msgid "Port C" +msgstr "Port C" + +# +msgid "Port D" +msgstr "Port D" + +# +msgid "Portuguese" +msgstr "Portuguès" + +msgid "Position of completed timers in timerlist" +msgstr "" + +msgid "Position stored at index" +msgstr "" + +# +msgid "Positioner" +msgstr "Motor" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "" + +# +msgid "Positioner setup" +msgstr "Configuració del motor" + +# +msgid "Power threshold in mA" +msgstr "Llindar de corrent en mA" + +# +msgid "Predefined transponder" +msgstr "Transponedor predefinit" + +msgid "Prefer AC3 track" +msgstr "" + +msgid "Prefer AC3+ track" +msgstr "" + +msgid "Prefer audio track stored by service" +msgstr "" + +msgid "Prefer graphical DVB subtitles" +msgstr "" + +msgid "Prefer subtitles for hearing impaired" +msgstr "" + +msgid "Prefer subtitles stored by service" +msgstr "" + +msgid "Preferred tuner" +msgstr "" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "" + +# +msgid "Preparing... Please wait" +msgstr "Preparant... Sisplau espera" + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "" + +msgid "Press MENU on your remote control for additional options." +msgstr "" + +# +msgid "Press OK on your remote control to continue." +msgstr "" + +# +msgid "Press OK to activate the selected skin." +msgstr "" + +# +msgid "Press OK to activate the settings." +msgstr "Prem OK per a activar la configuració." + +# +msgid "Press OK to edit the settings." +msgstr "" + +# +#, python-format +msgid "Press OK to get further details for %s" +msgstr "" + +# +msgid "Press OK to scan" +msgstr "Prem OK per a buscar" + +# +#, fuzzy +msgid "Press OK to select a provider." +msgstr "Prem OK per a buscar" + +msgid "Press OK to select satellites" +msgstr "" + +# +msgid "Press OK to select/deselect a CAId." +msgstr "" + +# +msgid "Press OK to start the scan" +msgstr "Prem OK per a començar la recerca" + +msgid "Press OK to toggle the selection" +msgstr "" + +# +msgid "Press OK to toggle the selection." +msgstr "" + +# +msgid "Press yellow to set this interface as default interface." +msgstr "" + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "" + +# +msgid "Preview" +msgstr "" + +# +msgid "Preview menu" +msgstr "" + +msgid "Preview selected channel" +msgstr "" + +# +msgid "Primary DNS" +msgstr "" + +# +msgid "Priority" +msgstr "" + +# +msgid "Process" +msgstr "" + +msgid "Progress" +msgstr "" + +msgid "Progress bar left" +msgstr "" + +msgid "Progress bar right" +msgstr "" + +# +msgid "Properties of current title" +msgstr "" + +# +msgid "Protect services" +msgstr "Protegir canals" + +# +msgid "Protect setup" +msgstr "Protegir configuració" + +# +msgid "Provider" +msgstr "Proveïdor" + +# +msgid "Provider to scan" +msgstr "Proveïdor a escanejar" + +# +msgid "Providers" +msgstr "Proveïdors" + +msgid "Put TV in standby" +msgstr "" + +msgid "Put receiver in standby" +msgstr "" + +# +msgid "Python frontend for /tmp/mmi.socket" +msgstr "" + +# +msgid "Quick" +msgstr "" + +# +#, fuzzy +msgid "Quick zap" +msgstr "Zappeig ràpid" + +# +msgid "RF output" +msgstr "Sortida RF" + +# +msgid "RGB" +msgstr "RGB" + +# +msgid "Radio" +msgstr "" + +# +#, fuzzy +msgid "Ram disk" +msgstr "Disc en RAM" + +# +msgid "Random" +msgstr "" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "" + +msgid "Rating undefined" +msgstr "" + +# +msgid "Really close without saving settings?" +msgstr "Sortir sense guardar els canvis?" + +# +msgid "Really delete done timers?" +msgstr "Vols esborrar les programacions ja finalitzades?" + +# +msgid "Really exit the subservices quickzap?" +msgstr "Sortir del zappeig ràpid dels subserveis?" + +# +msgid "Really reboot now?" +msgstr "" + +# +msgid "Really restart now?" +msgstr "" + +# +msgid "Really shutdown now?" +msgstr "" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "" + +# +msgid "Reboot" +msgstr "" + +msgid "Rec" +msgstr "" + +# +#, fuzzy +msgid "Reception settings" +msgstr "Configuració de recepció" + +# +msgid "Record" +msgstr "Gravar" + +# +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "" + +# +msgid "Recorded files..." +msgstr "Arxius gravats..." + +# +msgid "Recording" +msgstr "Gravant" + +msgid "Recording in progress" +msgstr "" + +# +msgid "Recording paths" +msgstr "" + +msgid "Recording type" +msgstr "" + +# +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "" + +# +msgid "Recordings" +msgstr "" + +# +msgid "Recordings always have priority" +msgstr "Les gravacions tenen prioritat" + +msgid "Red button..." +msgstr "" + +msgid "Reenter new PIN" +msgstr "" + +msgid "Refresh rate" +msgstr "" + +# +msgid "Refresh rate selection." +msgstr "" + +msgid "Regard deep standby as standby" +msgstr "" + +msgid "Relative" +msgstr "" + +# +msgid "Reload" +msgstr "" + +msgid "Reload black-/white lists" +msgstr "" + +msgid "Reloading bouquets and services..." +msgstr "" + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "" + +msgid "Remember these settings for each folder" +msgstr "" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "" + +# +#, fuzzy +msgid "Remote control type" +msgstr "Tipus de control parental" + +msgid "Removal has completed." +msgstr "" + +# +msgid "Remove" +msgstr "" + +# +msgid "Remove a mark" +msgstr "Esborrar una marca" + +msgid "Remove a nameserver entry" +msgstr "" + +# +#, fuzzy +msgid "Remove bookmark" +msgstr "Esborrar una marca" + +msgid "Remove completed timers after (days)" +msgstr "" + +# +msgid "Remove currently selected title" +msgstr "Esborra el títol seleccionat" + +msgid "Remove items from trash can after (days)" +msgstr "" + +# +msgid "Remove plugins" +msgstr "Esborrar plugins" + +# +msgid "Remove title" +msgstr "Esborra títol" + +# +msgid "Removing" +msgstr "" + +# +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "" + +# +#, fuzzy +msgid "Removing partition table" +msgstr "Esborra títol" + +# +msgid "Rename" +msgstr "" + +msgid "Repeat" +msgstr "" + +# +#, fuzzy +msgid "Repeat type" +msgstr "Tipus de repetició" + +# +msgid "Repeating event currently recording... What do you want to do?" +msgstr "S'està gravant un canal programat repetidament... Què vols fer?" + +# +msgid "Repeats" +msgstr "" + +msgid "Require authentication for http streams" +msgstr "" + +# +msgid "Required medium type:" +msgstr "" + +msgid "Rereading partition table" +msgstr "" + +msgid "Reserved" +msgstr "" + +# +msgid "Reset" +msgstr "Resetejar" + +# +msgid "Reset and renumerate title names" +msgstr "" + +msgid "Reset playback position" +msgstr "" + +# +msgid "Reset video enhancement settings to system defaults?" +msgstr "" + +# +msgid "Reset video enhancement settings to your last configuration?" +msgstr "" + +# +msgid "Resolution" +msgstr "" + +# +msgid "Restart" +msgstr "Reiniciar" + +# +msgid "Restart GUI now?" +msgstr "Reengegar la IGU ara?" + +msgid "Restart enigma" +msgstr "" + +# +msgid "Restart network" +msgstr "" + +# +msgid "Restart test" +msgstr "" + +# +msgid "Restart your network connection and interfaces.\n" +msgstr "" + +# +msgid "Restore" +msgstr "Restaurar" + +# +msgid "Restore backups" +msgstr "" + +# +msgid "Restore is running..." +msgstr "" + +# +msgid "Restore system settings" +msgstr "" + +# +#, fuzzy +msgid "Restoring..." +msgstr "gravant..." + +# +msgid "Resume from last position" +msgstr "" + +# +#, python-format +msgid "Resume position at %s" +msgstr "" + +# +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "" + +# +msgid "Return to movie list" +msgstr "" + +# +msgid "Return to previous service" +msgstr "" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +# +msgid "Rewind speeds" +msgstr "" + +msgid "Rewrap teletext subtitles" +msgstr "" + +# +msgid "Right" +msgstr "Dreta" + +msgid "Right from servicename" +msgstr "" + +msgid "Roll-off" +msgstr "" + +msgid "Romanian" +msgstr "" + +msgid "Root directory" +msgstr "" + +msgid "Rotor step position:" +msgstr "" + +# +msgid "Rotor turning speed" +msgstr "Velocitat de rotació del motor" + +msgid "Round start time on" +msgstr "" + +# +msgid "Russian" +msgstr "Rus" + +# +msgid "S-Video" +msgstr "S-Vídeo" + +msgid "SID" +msgstr "" + +# +msgid "SINGLE LAYER DVD" +msgstr "" + +# +msgid "SNR" +msgstr "" + +# +msgid "SNR:" +msgstr "" + +# +msgid "SSID:" +msgstr "" + +msgid "Same resolution as skin" +msgstr "" + +# +msgid "Sat" +msgstr "Dis" + +# +msgid "Satellite" +msgstr "Satèl·lit" + +# +#, fuzzy +msgid "Satellite dish setup" +msgstr "Configuració de l'equip de satèl·lit" + +# +msgid "Satellite equipment" +msgstr "" + +# +#, fuzzy +msgid "Satellite equipment setup" +msgstr "Configuració de l'equip de satèl·lit" + +msgid "Satellite longitude:" +msgstr "" + +# +msgid "Satellites" +msgstr "Satèl·lits" + +# +msgid "Satfinder" +msgstr "Localitzador de satèl·lits" + +# +msgid "Sats" +msgstr "" + +# +msgid "Saturation" +msgstr "" + +# +msgid "Saturday" +msgstr "Dissabte" + +# +msgid "Save" +msgstr "" + +# +#, fuzzy +msgid "Save playlist" +msgstr "grava llista" + +msgid "Save timeshift file" +msgstr "" + +msgid "Save timeshift file in movie directory" +msgstr "" + +# +msgid "Scaler sharpness" +msgstr "" + +# +#, fuzzy +msgid "Scaling mode" +msgstr "Mode d'escalat" + +msgid "Scan" +msgstr "" + +# +msgid "Scan " +msgstr "Escaneig" + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, fuzzy, python-format +msgid "Scan %s" +msgstr "Escaneig" + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, fuzzy, python-format +msgid "Scan %s band" +msgstr "Escanejar banda EU MID" + +# +msgid "Scan additional SR" +msgstr "Escanejar SR addicional" + +# +#, fuzzy +msgid "Scan files..." +msgstr "Arxius gravats..." + +msgid "Scan wireless networks" +msgstr "" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "" + +#, python-format +msgid "Scanning %s..." +msgstr "" + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "" +msgstr[1] "" + +msgid "Scanning failed!" +msgstr "" + +msgid "Scanning..." +msgstr "" + +# +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "" + +# +msgid "Search east" +msgstr "Buscar a l'est" + +# +msgid "Search west" +msgstr "Buscar a l'oest" + +msgid "Searching" +msgstr "" + +msgid "Searching east ..." +msgstr "" + +# +msgid "Searching for available updates. Please wait..." +msgstr "" + +# +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "" + +msgid "Searching west ..." +msgstr "" + +msgid "Second cable of motorized LNB" +msgstr "" + +# +msgid "Secondary DNS" +msgstr "" + +# +msgid "Seek" +msgstr "Posicionar" + +# +#, fuzzy +msgid "Seek backward" +msgstr "saltar endarrere" + +# +#, fuzzy +msgid "Seek backward (enter time)" +msgstr "saltar enrere (introduint el temps)" + +# +#, fuzzy +msgid "Seek forward" +msgstr "saltar endavant" + +# +#, fuzzy +msgid "Seek forward (enter time)" +msgstr "saltar endavant (introduint el temps)" + +# +msgid "Select" +msgstr "" + +# +#, fuzzy +msgid "Select CAId" +msgstr "Seleccionar disc dur" + +# +msgid "Select HDD" +msgstr "Seleccionar disc dur" + +# +#, fuzzy +msgid "Select a bouquet" +msgstr "Seleccionar una pel·lícula" + +# +msgid "Select a movie" +msgstr "Seleccionar una pel·lícula" + +# +#, fuzzy +msgid "Select a network adapter" +msgstr "Selecciona interfície de xarxa" + +# +#, fuzzy +msgid "Select a skin" +msgstr "Seleccionar una pel·lícula" + +# +#, fuzzy +msgid "Select a tuner" +msgstr "Seleccionar una pel·lícula" + +# +#, fuzzy +msgid "Select a wireless network" +msgstr "Seleccionar pista d'àudio" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +msgid "Select an image to be downloaded" +msgstr "" + +# +msgid "Select audio track" +msgstr "Seleccionar pista d'àudio" + +# +#, fuzzy +msgid "Select backup files" +msgstr "Seleccionar una pel·lícula" + +# +#, fuzzy +msgid "Select backup location" +msgstr "Localització del backup" + +# +msgid "Select channel to record from" +msgstr "Selecciona el canal a gravar" + +msgid "Select copy destination for:" +msgstr "" + +msgid "Select default EPG type..." +msgstr "" + +msgid "Select desired image from feed list" +msgstr "" + +msgid "Select destination for:" +msgstr "" + +msgid "Select files for backup." +msgstr "" + +# +msgid "Select files/folders to backup" +msgstr "" + +msgid "Select input device" +msgstr "" + +msgid "Select input device." +msgstr "" + +# +msgid "Select interface" +msgstr "" + +# +#, fuzzy +msgid "Select location" +msgstr "Selecció EPG" + +# +#, fuzzy +msgid "Select movie" +msgstr "Seleccionar una pel·lícula" + +# +msgid "Select provider to add..." +msgstr "" + +# +msgid "Select refresh rate" +msgstr "" + +msgid "Select satellites" +msgstr "" + +# +msgid "Select service to add..." +msgstr "" + +msgid "Select sort method:" +msgstr "" + +# +#, fuzzy +msgid "Select target folder" +msgstr "Seleccionar una pel·lícula" + +# +#, fuzzy +msgid "Select the movie path" +msgstr "Seleccionar una pel·lícula" + +# +#, fuzzy +msgid "Select upgrade source" +msgstr "Seleccionar una pel·lícula" + +# +msgid "Select upgrade source to edit." +msgstr "" + +# +msgid "Select video input with up/down buttons" +msgstr "" + +# +msgid "Select video mode" +msgstr "" + +# +msgid "Select wireless network" +msgstr "" + +msgid "Select your provider, and press OK to start the scan" +msgstr "" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +# +msgid "Send DiSEqC only on satellite change" +msgstr "" + +# +msgid "Separate titles with a main menu" +msgstr "" + +# +msgid "Sequence repeat" +msgstr "Repetir seqüència" + +# +msgid "Serbian" +msgstr "" + +# +msgid "Service" +msgstr "Canal" + +# +msgid "Service has been added to the favourites." +msgstr "S'ha afegit el canal als preferits." + +# +msgid "Service has been added to the selected bouquet." +msgstr "S'ha afegit el canal a la llista seleccionada." + +# +#, fuzzy +msgid "Service info" +msgstr "Info del canal" + +# +#, fuzzy +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Canal invàlid!\n" +"(Timeout llegint el PMT)" + +# +#, fuzzy +msgid "Service name" +msgstr "Recerca de canal" + +# +#, fuzzy +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"No s'ha trobat el canal!\n" +"(No s'ha trobat el SID al PAT)" + +msgid "Service reference" +msgstr "" + +# +msgid "Service scan" +msgstr "Buscar canals" + +# +#, fuzzy +msgid "Service searching" +msgstr "Buscar canals" + +# +#, fuzzy +msgid "Service title mode" +msgstr "Info del canal" + +# +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" + +# +msgid "Services" +msgstr "Canals" + +msgid "Set default" +msgstr "" + +# +#, fuzzy +msgid "Set end time" +msgstr "Hora final" + +msgid "Set fixed" +msgstr "" + +msgid "Set fps for external subtitles" +msgstr "" + +# +msgid "Set interface as default Interface" +msgstr "" + +msgid "Set limits" +msgstr "" + +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "" + +msgid "Set time window to 1 hour" +msgstr "" + +msgid "Set time window to 2 hours" +msgstr "" + +msgid "Set time window to 3 hours" +msgstr "" + +msgid "Set time window to 4 hours" +msgstr "" + +msgid "Set time window to 5 hours" +msgstr "" + +msgid "Set time window to 6 hours" +msgstr "" + +msgid "Set voltage and 22KHz" +msgstr "" + +# +msgid "Settings" +msgstr "Configuracions" + +# +msgid "Setup" +msgstr "Configuració" + +msgid "Setup menu" +msgstr "" + +# +#, fuzzy +msgid "Setup mode" +msgstr "Mode test" + +msgid "Setup your positioner" +msgstr "" + +# +#, fuzzy +msgid "Setup your satellite equipment" +msgstr "Configuració de l'equip de satèl·lit" + +# +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "" + +# +msgid "Sharpness" +msgstr "" + +msgid "Short filenames" +msgstr "" + +msgid "Show EIT now/next in infobar" +msgstr "" + +# +#, fuzzy +msgid "Show EPG for current channel..." +msgstr "Mostrar la barra en canviar el programa" + +# +#, fuzzy +msgid "Show EPG..." +msgstr "mostrar EPG..." + +msgid "Show Games show" +msgstr "" + +msgid "Show SNR percentage instead of dB value" +msgstr "" + +msgid "Show VCR scart on main menu" +msgstr "" + +msgid "Show WLAN status" +msgstr "" + +msgid "Show animation while busy" +msgstr "" + +msgid "Show background in radio mode" +msgstr "" + +msgid "Show bouquet selection menu" +msgstr "" + +msgid "Show busy indicator when the system is busy." +msgstr "" + +msgid "Show channel numbers in channel selection" +msgstr "" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "" + +msgid "Show detailed event info" +msgstr "" + +# +#, fuzzy +msgid "Show event details" +msgstr "mostrar detalls del programa" + +# +msgid "Show event-progress in channel selection" +msgstr "" + +msgid "Show extended description" +msgstr "" + +# +#, fuzzy +msgid "Show extensions..." +msgstr "veure extensions..." + +msgid "Show icon for new/unseen items" +msgstr "" + +msgid "Show in extensions menu" +msgstr "" + +msgid "Show info" +msgstr "" + +msgid "Show info line" +msgstr "" + +# +msgid "Show infobar on channel change" +msgstr "Mostrar la barra d'info canviant de canal" + +# +msgid "Show infobar on event change" +msgstr "Mostrar la barra en canviar el programa" + +# +msgid "Show infobar on skip forward/backward" +msgstr "Mostrar la barra anant endavant/enrere" + +msgid "Show latest commits on sourceforge" +msgstr "" + +msgid "Show message when recording starts" +msgstr "" + +msgid "Show movie lengths in movielist" +msgstr "" + +msgid "Show multi channel EPG" +msgstr "" + +msgid "Show picons in channel list" +msgstr "" + +# +msgid "Show positioner movement" +msgstr "Mostrar el moviment del motor" + +msgid "Show screensaver" +msgstr "" + +msgid "Show second infobar" +msgstr "" + +msgid "Show service type icons" +msgstr "" + +# +msgid "Show services beginning with" +msgstr "Mostra els canals que comencen per" + +# +#, fuzzy +msgid "Show shutdown menu" +msgstr "Mostrar el moviment del motor" + +msgid "Show single service EPG" +msgstr "" + +msgid "Show status icons in Movielist" +msgstr "" + +msgid "Show status icons in movie list" +msgstr "" + +msgid "Show status icons in movielist" +msgstr "" + +msgid "Show tag menu" +msgstr "" + +# +msgid "Show the radio player..." +msgstr "Reproductor de ràdio..." + +# +msgid "Show the tv player..." +msgstr "Mostrar el reproductor de tv..." + +msgid "Show warning when timeshift is stopped" +msgstr "" + +# +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "" + +# +#, fuzzy +msgid "Shuffle playlist" +msgstr "llista aleatòria" + +# +msgid "Shutdown" +msgstr "" + +msgid "Shutdown when in Standby" +msgstr "" + +msgid "Side by side" +msgstr "" + +msgid "Signal OK, proceeding" +msgstr "" + +msgid "Signal quality" +msgstr "" + +msgid "Signal strength:" +msgstr "" + +# +msgid "Signal: " +msgstr "" + +# +msgid "Similar" +msgstr "Similar" + +# +msgid "Similar broadcasts:" +msgstr "Emisions similars:" + +# +msgid "Simple" +msgstr "" + +# +msgid "Simple titleset (compatibility for legacy players)" +msgstr "" + +# +msgid "Single" +msgstr "Senzill" + +# +msgid "Single EPG" +msgstr "EPG senzill" + +# +msgid "Single satellite" +msgstr "Satèl·lit únic" + +# +#, fuzzy +msgid "Single step (GOP)" +msgstr "Satèl·lit únic" + +# +msgid "Single transponder" +msgstr "Transponedor únic" + +msgid "Site latitude" +msgstr "" + +msgid "Site longitude" +msgstr "" + +# +msgid "Skin" +msgstr "" + +# +msgid "Skins" +msgstr "" + +# +#, fuzzy +msgid "Skip empty services" +msgstr "Protegir canals" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "" + +# +#, fuzzy +msgid "Sleep timer" +msgstr "Programació d'apagada" + +msgid "SleepTimer Configuration" +msgstr "" + +msgid "Sleeptimer" +msgstr "" + +msgid "Slide picture in loop" +msgstr "" + +# +#, fuzzy +msgid "Slide show interval (sec.)" +msgstr "Segons entre diapositives" + +# +#, fuzzy, python-format +msgid "Slot %d" +msgstr "Slot %d" + +msgid "Slovak" +msgstr "" + +# +msgid "Slovenian" +msgstr "" + +# +msgid "Slow" +msgstr "Lent" + +msgid "Slow motion speeds" +msgstr "" + +msgid "Small progress" +msgstr "" + +msgid "Social/Political/Economics" +msgstr "" + +msgid "SoftCam / CI" +msgstr "" + +msgid "Softcam type" +msgstr "" + +# +msgid "Software" +msgstr "" + +# +msgid "Software management" +msgstr "" + +msgid "Software manager setup" +msgstr "" + +# +msgid "Software restore" +msgstr "" + +# +msgid "Software update" +msgstr "" + +msgid "Softwaremanager information" +msgstr "" + +# +#, fuzzy +msgid "Some plugins are not available:\n" +msgstr "Alguns plugins no estan disponibles:\n" + +#, python-format +msgid "Sorry, %s has not been installed!" +msgstr "" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "" + +msgid "Sorry, no backups found!" +msgstr "" + +msgid "Sorry, no details available!" +msgstr "" + +# +#, fuzzy +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"El destí del backup no existeix\n" +"\n" +"Sisplau, escull-ne un altre." + +msgid "Sort" +msgstr "" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +#, fuzzy +msgid "Sort time" +msgstr "sense timeout" + +# +msgid "Sound" +msgstr "So" + +# +#, fuzzy +msgid "Sound carrier" +msgstr "Portadora de so" + +msgid "Source request" +msgstr "" + +# +msgid "South" +msgstr "Sud" + +# +msgid "Spanish" +msgstr "Espanyol" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +# +msgid "Split preview mode" +msgstr "" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "" + +# +#, fuzzy +msgid "Standard" +msgstr "Repòs" + +msgid "Standart list" +msgstr "" + +# +msgid "Standby" +msgstr "Repòs" + +# +#, fuzzy +msgid "Standby / restart" +msgstr "Repòs / Reiniciar" + +msgid "Standby after current event" +msgstr "" + +#, python-format +msgid "Standby fan %d PWM" +msgstr "" + +#, python-format +msgid "Standby fan %d voltage" +msgstr "" + +msgid "Standby in " +msgstr "" + +msgid "StandbyLED" +msgstr "" + +# +msgid "Start from the beginning" +msgstr "" + +msgid "Start offline decode" +msgstr "" + +# +msgid "Start recording?" +msgstr "Iniciar gravació?" + +# +msgid "Start test" +msgstr "" + +# +#, fuzzy +msgid "Start time" +msgstr "Hora inici" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +# +#, fuzzy +msgid "Start timeshift" +msgstr "activar pausa" + +msgid "Start with list screen" +msgstr "" + +# +msgid "Starting on" +msgstr "Començar el" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +# +msgid "Step east" +msgstr "Pas a l'est" + +# +msgid "Step west" +msgstr "Pas a l'oest" + +msgid "Stepped east" +msgstr "" + +msgid "Stepped west" +msgstr "" + +# +msgid "Stop" +msgstr "Parar" + +# +#, fuzzy +msgid "Stop PiP" +msgstr "Parar" + +# +msgid "Stop current event and disable coming events" +msgstr "Aturar el programa actual i deshabilitar els següents" + +# +msgid "Stop current event but not coming events" +msgstr "Aturar el programa actual però no els següents" + +# +#, fuzzy +msgid "Stop entry" +msgstr "aturar entrada" + +# +msgid "Stop playing this movie?" +msgstr "Aturar la reproducció de la pel·lícula?" + +msgid "Stop recording" +msgstr "" + +msgid "Stop recording and delete" +msgstr "" + +msgid "Stop service on return to movie list" +msgstr "" + +# +msgid "Stop test" +msgstr "" + +# +msgid "Stop testing plane after # failed transponders" +msgstr "" + +# +msgid "Stop testing plane after # successful transponders" +msgstr "" + +msgid "Stop timer recording" +msgstr "" + +# +#, fuzzy +msgid "Stop timeshift" +msgstr "cancel·lar pausa" + +# +#, fuzzy +msgid "Stop timeshift?" +msgstr "Cancel·lar la pausa?" + +msgid "Stopped" +msgstr "" + +msgid "Store at index" +msgstr "" + +# +msgid "Store position" +msgstr "Guardar la posició" + +# +msgid "Stored position" +msgstr "Posició guardada" + +msgid "Stream" +msgstr "" + +msgid "Stream request" +msgstr "" + +msgid "Strongest position" +msgstr "" + +# +msgid "Subservice list..." +msgstr "Llista de subserveis..." + +# +msgid "Subservices" +msgstr "Subserveis" + +msgid "Subtitle Quickmenu" +msgstr "" + +# +#, fuzzy +msgid "Subtitle alignment" +msgstr "Selecció de subtítols" + +msgid "Subtitle border width" +msgstr "" + +msgid "Subtitle delay when timing is bad" +msgstr "" + +msgid "Subtitle delay when timing lacks" +msgstr "" + +# +#, fuzzy +msgid "Subtitle font size" +msgstr "Subtítols" + +msgid "Subtitle language selection 1" +msgstr "" + +msgid "Subtitle language selection 2" +msgstr "" + +msgid "Subtitle language selection 3" +msgstr "" + +msgid "Subtitle language selection 4" +msgstr "" + +# +#, fuzzy +msgid "Subtitle position" +msgstr "Selecció de subtítols" + +# +msgid "Subtitle selection" +msgstr "Selecció de subtítols" + +msgid "Subtitle selection..." +msgstr "" + +msgid "Subtitle settings" +msgstr "" + +# +msgid "Subtitles" +msgstr "Subtítols" + +# +msgid "Sun" +msgstr "Diu" + +# +msgid "Sunday" +msgstr "Diumenge" + +msgid "Swap PiP and main picture" +msgstr "" + +# +#, fuzzy +msgid "Swap services" +msgstr "Intercanviar canals" + +# +msgid "Swedish" +msgstr "Suec" + +msgid "Switch TV to correct input" +msgstr "" + +msgid "Switch between filelist/playlist" +msgstr "" + +msgid "Switch between normal mode and list mode" +msgstr "" + +msgid "Switch to HDMI in mode" +msgstr "" + +# +#, fuzzy +msgid "Switch to filelist" +msgstr "canviar a la llista de fitxers" + +msgid "Switch to next channel" +msgstr "" + +# +#, fuzzy +msgid "Switch to next channel in history" +msgstr "canal següent en l'històric" + +# +#, fuzzy +msgid "Switch to next sub service" +msgstr "Canviar al següent subservei" + +# +#, fuzzy +msgid "Switch to playlist" +msgstr "canviar a la llista" + +# +#, fuzzy +msgid "Switch to previous channel" +msgstr "Canviar al subservei anterior" + +# +#, fuzzy +msgid "Switch to previous channel in history" +msgstr "canal anterior en l'històric" + +# +#, fuzzy +msgid "Switch to previous sub service" +msgstr "Canviar al subservei anterior" + +# +msgid "Switchable tuner types:" +msgstr "" + +msgid "Symbol rate" +msgstr "" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "" + +# +msgid "System" +msgstr "Sistema" + +# +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "" + +# +msgid "TS file is too large for ISO9660 level 1!" +msgstr "" + +msgid "TSID" +msgstr "" + +msgid "TV physical address report" +msgstr "" + +msgid "TXT PID" +msgstr "" + +msgid "Table of contents for collection" +msgstr "" + +# +msgid "Tags" +msgstr "" + +msgid "Teletext subtitle color" +msgstr "" + +# +#, fuzzy +msgid "Temperature and fan control" +msgstr "Control parental" + +# +msgid "Terrestrial" +msgstr "Terrestre" + +# +msgid "Terrestrial provider" +msgstr "Proveïdor terrestre" + +# +msgid "Test DiSEqC settings" +msgstr "" + +# +msgid "Test mode" +msgstr "Mode test" + +msgid "Test the network configuration of your receiver.\n" +msgstr "" + +# +#, fuzzy +msgid "Test type" +msgstr "Mode test" + +msgid "Text color" +msgstr "" + +msgid "Thai" +msgstr "" + +# +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" + +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "" + +msgid "The PIN code has been changed successfully." +msgstr "" + +msgid "The PIN codes you entered are different." +msgstr "" + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" + +# +msgid "The backup failed. Please choose a different backup location." +msgstr "El backup ha fallat. Escull un altre destí." + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" + +# +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" + +# +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" + +# +msgid "The following files were found..." +msgstr "" + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "" + +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" + +# +#, python-format +msgid "The path %s already exists." +msgstr "" + +# +msgid "The pin code you entered is wrong." +msgstr "El pin és incorrecte" + +# +#, python-format +msgid "The results have been written to %s." +msgstr "" + +# +msgid "The sleep timer has been activated." +msgstr "S'ha activat la programació d'aturada." + +# +msgid "The sleep timer has been disabled." +msgstr "S'ha desactivat la programació d'aturada." + +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "" + +# +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "" + +msgid "The user interface of your receiver is restarting" +msgstr "" + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" + +# +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "L'assistent pot fer un backup de la teva configuració actual. Vols fer-lo ara?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "" + +# +msgid "The wizard is finished now." +msgstr "L'assistent ha finalitzat." + +# +msgid "There are at least " +msgstr "" + +#, python-format +msgid "There are at least %s updates available." +msgstr "" + +# +msgid "There are currently no outstanding actions." +msgstr "" + +# +msgid "There are no updates available." +msgstr "" + +msgid "There is no signal to lock on !" +msgstr "" + +# +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" + +# +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "" + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" + +# +msgid "This plugin is installed." +msgstr "" + +# +msgid "This plugin is not installed." +msgstr "" + +# +msgid "This plugin will be installed." +msgstr "" + +# +msgid "This plugin will be removed." +msgstr "" + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "" + +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" + +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" + +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" + +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" + +msgid "This test detects your configured LAN adapter." +msgstr "" + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" + +# +msgid "Three" +msgstr "Tres" + +# +msgid "Threshold" +msgstr "Llindar" + +# +msgid "Thu" +msgstr "Dij" + +# +msgid "Thumbnails" +msgstr "" + +# +msgid "Thursday" +msgstr "Dijous" + +# +msgid "Time" +msgstr "Hora" + +# +#, fuzzy +msgid "Time scale" +msgstr "Selecció de gravació" + +# +msgid "Timer" +msgstr "Programació" + +msgid "Timer Overview" +msgstr "" + +# +#, fuzzy +msgid "Timer edit" +msgstr "Editar hora" + +# +#, fuzzy +msgid "Timer editor" +msgstr "Editor de programacions" + +# +msgid "Timer entry" +msgstr "Gravació" + +# +msgid "Timer log" +msgstr "Registre de gravació" + +# +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" + +# +#, fuzzy +msgid "Timer overview" +msgstr "Gravació" + +# +#, fuzzy +msgid "Timer recording location" +msgstr "canviar la gravació (durada)" + +# +msgid "Timer sanity error" +msgstr "Error de programació" + +# +msgid "Timer selection" +msgstr "Selecció de gravació" + +msgid "Timer selection..." +msgstr "" + +# +#, fuzzy +msgid "Timer type" +msgstr "Tipus de gravació" + +# +msgid "Timeshift" +msgstr "Pausa" + +msgid "Timeshift Live" +msgstr "" + +# +msgid "Timeshift location" +msgstr "" + +# +msgid "Timeshift not possible!" +msgstr "No és possible la pausa!" + +# +msgid "Timezone" +msgstr "Zona horària" + +# +msgid "Title" +msgstr "Títol" + +# +msgid "Title properties" +msgstr "" + +# +msgid "Titleset mode" +msgstr "" + +msgid "To audio selection" +msgstr "" + +msgid "To subtitle selection" +msgstr "" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" + +# +msgid "Today" +msgstr "Avui" + +# +#, fuzzy +msgid "Toggle a cut mark at the current position" +msgstr "posar una marca de tall en l'actual posició" + +# +#, fuzzy +msgid "Tone amplitude" +msgstr "Mode del to" + +# +msgid "Tone mode" +msgstr "Mode del to" + +# +#, fuzzy +msgid "Toneburst" +msgstr "Toneburst" + +# +#, fuzzy +msgid "Toneburst A/B" +msgstr "Toneburst A/B" + +msgid "Top and bottom" +msgstr "" + +# +msgid "Track" +msgstr "" + +# +msgid "Translation" +msgstr "" + +# +msgid "Translation:" +msgstr "" + +msgid "Translations" +msgstr "" + +# +msgid "Transmission mode" +msgstr "Mode transmissió" + +# +msgid "Transponder" +msgstr "Transponedor" + +# +#, fuzzy +msgid "Transponder type" +msgstr "Tipus Transponedor" + +msgid "Trash can" +msgstr "" + +# +msgid "Tries left:" +msgstr "Intents:" + +# +#, fuzzy +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Buscant transponedors a la xarxa de cable... sisplau espera..." + +# +msgid "Trying to download a new packetlist. Please wait..." +msgstr "" + +# +msgid "Tue" +msgstr "Dim" + +# +msgid "Tuesday" +msgstr "Dimarts" + +# +msgid "Tune" +msgstr "Sintonitzar" + +# +#, fuzzy +msgid "Tune and focus" +msgstr "Estat del sintonitzador" + +# +msgid "Tune failed!" +msgstr "Ha fallat la sintonització!" + +# +msgid "Tuner" +msgstr "Sintonitzador" + +# +msgid "Tuner configuration" +msgstr "Configuració del sintonitzador" + +msgid "Tuner is not supported" +msgstr "" + +# +#, fuzzy +msgid "Tuner slot" +msgstr "Slot del sintonitzador" + +# +msgid "Tuner status" +msgstr "Estat del sintonitzador" + +# +#, fuzzy, python-format +msgid "Tuner status %s" +msgstr "Estat del sintonitzador" + +# +msgid "Tuner type" +msgstr "" + +# +msgid "Turkish" +msgstr "Turc" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +# +msgid "Two" +msgstr "Dos" + +# +msgid "Type" +msgstr "" + +# +msgid "Type of scan" +msgstr "Tipus de recerca" + +# +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "" + +# +#, fuzzy +msgid "USB stick" +msgstr "Memòria USB" + +# +msgid "USB stick wizard" +msgstr "" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +# +msgid "Undo install" +msgstr "" + +# +msgid "Undo uninstall" +msgstr "" + +msgid "Unencrypted" +msgstr "" + +# +msgid "UnhandledKey" +msgstr "" + +# +msgid "Unicable" +msgstr "" + +# +msgid "Unicable LNB" +msgstr "" + +# +msgid "Unicable Martix" +msgstr "" + +# +msgid "Uninstall" +msgstr "" + +# +msgid "Universal LNB" +msgstr "LNB universal" + +msgid "Unknown" +msgstr "" + +msgid "Unmount" +msgstr "" + +# +msgid "Unsupported" +msgstr "" + +# +msgid "Update" +msgstr "" + +msgid "Update and ask to reboot" +msgstr "" + +msgid "Update and reboot (recommended)" +msgstr "" + +# +#, fuzzy +msgid "Update channel list only" +msgstr "canal següent en l'històric" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "" +msgstr[1] "" + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "" + +msgid "Update has completed." +msgstr "" + +# +msgid "Updatefeed not available." +msgstr "" + +# +msgid "Updating software catalog" +msgstr "" + +# +msgid "Upgrading" +msgstr "Actualitzant" + +# +msgid "Use" +msgstr "" + +# +msgid "Use DHCP" +msgstr "Utilitzar DHCP" + +msgid "Use EIT EPG information when it is available." +msgstr "" + +msgid "Use FreeSat EPG information when it is available." +msgstr "" + +msgid "Use MHW EPG information when it is available." +msgstr "" + +msgid "Use Netmed EPG information when it is available." +msgstr "" + +msgid "Use TV remote control" +msgstr "" + +# +#, fuzzy +msgid "Use USALS for this sat" +msgstr "Utilitzar usals per a aquest sat" + +msgid "Use ViaSat EPG information when it is available." +msgstr "" + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +# +msgid "Use a gateway" +msgstr "Utilitzar una porta d'enllaç" + +msgid "Use fastscan channel names" +msgstr "" + +msgid "Use fastscan channel numbering" +msgstr "" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "" + +# +#, fuzzy +msgid "Use interface" +msgstr "Interfície comuna" + +msgid "Use official channel numbering" +msgstr "" + +msgid "Use original DVB subtitle position" +msgstr "" + +msgid "Use original teletext position" +msgstr "" + +# +msgid "Use power measurement" +msgstr "Utilitza les mesures de corrent" + +msgid "Use the network wizard to configure selected network adapter" +msgstr "" + +msgid "Use the network wizard to configure your network\n" +msgstr "" + +# +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "Utilitza les fletxes del comandament per a seleccionar una opció. Després, prem OK." + +# +#, fuzzy +msgid "Use the wizard to set up basic features" +msgstr "Utilitzar l'assistent per a la configuració bàsica" + +# +#, fuzzy +msgid "Use these input device settings?" +msgstr "Sortir sense guardar els canvis?" + +# +#, fuzzy +msgid "Use these settings?" +msgstr "Si, restaura la configuració ara" + +# +msgid "Use this video enhancement settings?" +msgstr "" + +msgid "Use trash can in movielist" +msgstr "" + +# +msgid "Used service scan type" +msgstr "Tipus d'escaneig de canals usat" + +msgid "User - bouquets" +msgstr "" + +# +msgid "User defined" +msgstr "Definit per l'usuari" + +msgid "User defined transponder" +msgstr "" + +# +#, fuzzy +msgid "User interface" +msgstr "Definit per l'usuari" + +# +msgid "Username" +msgstr "" + +#, python-format +msgid "Using LNB %d" +msgstr "" + +msgid "Using fixed address" +msgstr "" + +#, python-format +msgid "Using tuner %s" +msgstr "" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "" + +# +msgid "VCR scart" +msgstr "Euroconnector VCR" + +# +msgid "VMGM (intro trailer)" +msgstr "" + +# +msgid "Vertical" +msgstr "" + +msgid "Vertical turning speed" +msgstr "" + +msgid "Video PID" +msgstr "" + +# +msgid "Video enhancement preview" +msgstr "" + +# +msgid "Video enhancement settings" +msgstr "" + +# +msgid "Video enhancement setup" +msgstr "" + +msgid "Video fine tuning" +msgstr "" + +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" + +# +msgid "Video mode selection." +msgstr "" + +# +#, fuzzy +msgid "Video output" +msgstr "sortida 12V" + +# +#, fuzzy +msgid "Video setup" +msgstr "Configuració de xarxa" + +# +#, fuzzy +msgid "Video wizard" +msgstr "Sortir de l'assistent" + +#, python-format +msgid "Video: %s fps" +msgstr "" + +msgid "VideoMode" +msgstr "" + +msgid "Videocodec" +msgstr "" + +msgid "Videoformat" +msgstr "" + +msgid "Videosize" +msgstr "" + +# +#, fuzzy +msgid "View Rass interactive..." +msgstr "Veure Rass interactiu..." + +# +msgid "View details" +msgstr "" + +# +msgid "View list of available " +msgstr "" + +# +msgid "View list of available CommonInterface extensions" +msgstr "" + +# +msgid "View list of available EPG extensions." +msgstr "" + +# +msgid "View list of available Satellite equipment extensions." +msgstr "" + +# +msgid "View list of available communication extensions." +msgstr "" + +# +msgid "View list of available default settings" +msgstr "" + +msgid "View list of available display and userinterface extensions." +msgstr "" + +# +msgid "View list of available multimedia extensions." +msgstr "" + +# +msgid "View list of available networking extensions" +msgstr "" + +# +msgid "View list of available recording extensions" +msgstr "" + +# +msgid "View list of available skins" +msgstr "" + +# +msgid "View list of available software extensions" +msgstr "" + +# +msgid "View list of available system extensions" +msgstr "" + +# +#, fuzzy +msgid "View photos..." +msgstr "veure extensions..." + +# +msgid "View teletext..." +msgstr "Veure teletext..." + +msgid "View video CD..." +msgstr "" + +msgid "Virtual keyboard" +msgstr "" + +# +msgid "Voltage mode" +msgstr "Mode voltatge" + +# +msgid "Volume" +msgstr "Volum" + +# +msgid "W" +msgstr "O" + +# +msgid "WEP" +msgstr "" + +msgid "WLAN connection" +msgstr "" + +# +msgid "WPA" +msgstr "" + +# +msgid "WPA or WPA2" +msgstr "" + +# +msgid "WPA2" +msgstr "" + +# +msgid "WSS on 4:3" +msgstr "WSS en 4:3" + +# +msgid "Waiting" +msgstr "" + +msgid "Waiting for mount" +msgstr "" + +msgid "Waiting for partition" +msgstr "" + +msgid "Wakeup" +msgstr "" + +msgid "Wakeup TV from standby" +msgstr "" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "" + +msgid "Wakeup signal from TV" +msgstr "" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "" + +# +#, fuzzy +msgid "Watch movies..." +msgstr "Reproduir pel·lícules gravades..." + +# +#, fuzzy +msgid "Watch recordings..." +msgstr "gravant..." + +# +msgid "Wed" +msgstr "Dime" + +# +msgid "Wednesday" +msgstr "Dimecres" + +# +msgid "Weekday" +msgstr "DiaSetmana" + +msgid "Weighted position" +msgstr "" + +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" + +# +msgid "Welcome..." +msgstr "" + +# +msgid "West" +msgstr "Oest" + +msgid "West limit set" +msgstr "" + +# +msgid "What do you want to scan?" +msgstr "Què vols buscar?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "" + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "" + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "" + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "" + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "" + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "" + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "" + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "" + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "" + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "" + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "" + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "" + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "" + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "" + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "" + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "" + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "" + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "" + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "" + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "" + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "" + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "" + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "" + +msgid "When enabled, number markers will be hiden." +msgstr "" + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "" + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "" + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "" + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "" + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "" + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "" + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "" + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "" + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "" + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "" + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "" + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "" + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "" + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "" + +msgid "When enabled, use DHCP for the IP configuration." +msgstr "" + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "" + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "" + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "" + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "" + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "" + +# +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" + +# +msgid "Where do you want to backup your settings?" +msgstr "On vols guardar el backup de la configuració?" + +# +msgid "Where to save temporary timeshift recordings?" +msgstr "" + +# +msgid "Wireless LAN" +msgstr "" + +msgid "Wireless network" +msgstr "" + +# +#, fuzzy +msgid "Wireless network configuration..." +msgstr "Configuració del sintonitzador" + +msgid "Wireless network connection setup" +msgstr "" + +msgid "Wireless network connection setup." +msgstr "" + +msgid "Wireless network state" +msgstr "" + +msgid "With popup" +msgstr "" + +msgid "Without popup" +msgstr "" + +msgid "Would you like to install a softcam?" +msgstr "" + +# +msgid "Write error while recording. Disk full?\n" +msgstr "Error d'escriptura durant la gravació. Disc ple?\n" + +# +msgid "Write failed!" +msgstr "" + +# +msgid "YPbPr" +msgstr "YPbPr" + +# +msgid "Year" +msgstr "Any" + +msgid "Yellow DVB subtitles" +msgstr "" + +# +msgid "Yes" +msgstr "Si" + +msgid "Yes and save" +msgstr "" + +msgid "Yes and save in movie dir" +msgstr "" + +# +msgid "Yes to all" +msgstr "" + +msgid "Yes, always" +msgstr "" + +# +msgid "Yes, and delete this movie" +msgstr "" + +# +msgid "Yes, backup my settings!" +msgstr "Sí, fes un backup de la configuració!" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +# +msgid "Yes, do a manual scan now" +msgstr "Si, fes una recerca manual ara" + +# +msgid "Yes, do an automatic scan now" +msgstr "Si, fes una recerca automàtica ara" + +# +msgid "Yes, do another manual scan now" +msgstr "Si, fer una altra recerca manual ara" + +# +msgid "Yes, perform a shutdown now." +msgstr "Si, apaga ara." + +# +msgid "Yes, restore the settings now" +msgstr "Si, restaura la configuració ara" + +# +msgid "Yes, returning to movie list" +msgstr "" + +msgid "Yesterday" +msgstr "" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" + +# +msgid "You can cancel the installation." +msgstr "" + +# +msgid "You can cancel the removal." +msgstr "" + +msgid "You can continue watching TV etc. while this is running." +msgstr "" + +# +msgid "You can install this plugin." +msgstr "" + +msgid "You can only burn receiver recordings!" +msgstr "" + +# +msgid "You can remove this plugin." +msgstr "" + +# +msgid "You cannot delete this!" +msgstr "Això no es pot eliminar!" + +msgid "You didn't select a channel to record from." +msgstr "" + +# +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "" + +# +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "" + +# +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "" + +# +#, python-format +msgid "You have to wait %s!" +msgstr "" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" + +msgid "You system does not support ext4" +msgstr "" + +# +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "El backup ha acabat. Ara continuarem explicant el procés d'actualització." + +# +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "" + +# +msgid "Your current collection will get lost!" +msgstr "" + +# +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"El firmware del frontprocessor ha de ser actualitzat.\n" +"Prem OK per a començar l'actualizació." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +# +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "" + +# +msgid "Your network configuration has been activated." +msgstr "" + +msgid "Your receiver does not have an internet connection" +msgstr "" + +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" + +msgid "Your receiver is rebooting" +msgstr "" + +msgid "Your receiver is shutting down" +msgstr "" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "" + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "" + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "" + +msgid "Your receiver will got to standby due to inactivity." +msgstr "" + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "" + +# +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" + +msgid "Zap" +msgstr "" + +# +msgid "Zap back to previously tuned service?" +msgstr "" + +# +msgid "Zap back to service before positioner setup?" +msgstr "Tornar al canal abans de configurar el motor?" + +# +msgid "Zap back to service before tuner setup?" +msgstr "" + +msgid "Zap focus to Picture in Picture" +msgstr "" + +msgid "Zap focus to main screen" +msgstr "" + +msgid "Zap mode" +msgstr "" + +msgid "Zap to selected channel" +msgstr "" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "" + +# +msgid "[alternative edit]" +msgstr "[edició alternatives]" + +# +msgid "[bouquet edit]" +msgstr "[editar llista]" + +# +msgid "[favourite edit]" +msgstr "[editar preferits]" + +# +msgid "[move mode]" +msgstr "[mode moure]" + +# +msgid "a gui to assign services/providers to common interface modules" +msgstr "" + +# +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "" + +# +msgid "abort alternatives edit" +msgstr "abortar l'edició d'alternatives" + +# +msgid "abort bouquet edit" +msgstr "cancel·lar l'edició de llistes" + +# +msgid "abort favourites edit" +msgstr "cancel·lar l'edició de preferits" + +# +msgid "about to start" +msgstr "per a començar" + +# +msgid "activate network adapter configuration" +msgstr "" + +# +msgid "add alternatives" +msgstr "afegir alternatives" + +# +msgid "add bookmark" +msgstr "" + +# +msgid "add bouquet" +msgstr "afegir llista" + +# +msgid "add marker" +msgstr "afegir marcador" + +# +msgid "add service to bouquet" +msgstr "afegir el canal a la llista" + +# +msgid "add service to favourites" +msgstr "afegir el canal als preferits" + +# +msgid "add to parental protection" +msgstr "afegir a la protecció parental" + +msgid "adult movie/drama" +msgstr "" + +# +msgid "advanced" +msgstr "avançat" + +msgid "adventure/western/war" +msgstr "" + +msgid "advertisement/shopping" +msgstr "" + +msgid "after " +msgstr "" + +msgid "alphabetic" +msgstr "" + +msgid "alphabetic reverse" +msgstr "" + +msgid "alternative" +msgstr "" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "" + +msgid "arts/culture magazine" +msgstr "" + +msgid "athletics" +msgstr "" + +# +msgid "audio tracks" +msgstr "" + +# +msgid "auto" +msgstr "" + +# +#, fuzzy +msgid "automatic" +msgstr "Recerca automàtica" + +# +msgid "back" +msgstr "enrere" + +# +msgid "background image" +msgstr "" + +msgid "ballet" +msgstr "" + +#, python-format +msgid "bc%s" +msgstr "" + +# +msgid "better" +msgstr "millorat" + +# +msgid "black" +msgstr "" + +msgid "black & white" +msgstr "" + +# +msgid "blacklist" +msgstr "llista negra" + +# +msgid "blue" +msgstr "" + +msgid "broadcasting/press" +msgstr "" + +msgid "by date" +msgstr "" + +msgid "cartoon/puppets" +msgstr "" + +msgid "center" +msgstr "" + +msgid "centered" +msgstr "" + +msgid "centered, wrapped" +msgstr "" + +# +msgid "chapters" +msgstr "" + +msgid "childrens's/youth program (general)" +msgstr "" + +# +msgid "circular left" +msgstr "circular esq." + +# +msgid "circular right" +msgstr "circular dreta" + +msgid "comedy" +msgstr "" + +# +msgid "complex" +msgstr "complexe" + +# +msgid "config menu" +msgstr "menú configuració" + +# +msgid "confirmed" +msgstr "" + +# +msgid "connected" +msgstr "" + +# +msgid "continue" +msgstr "continuar" + +msgid "cooking" +msgstr "" + +# +msgid "copy to bouquets" +msgstr "copiar a les llistes" + +# +msgid "create directory" +msgstr "" + +#, python-format +msgid "currently installed image: %s" +msgstr "" + +# +msgid "daily" +msgstr "diàriament" + +# +msgid "day" +msgstr "" + +msgid "default" +msgstr "" + +# +msgid "delete cut" +msgstr "esborrar tall" + +msgid "delete..." +msgstr "" + +msgid "descramble and record ecm" +msgstr "" + +msgid "detective/thriller" +msgstr "" + +# +msgid "disable" +msgstr "desactivar" + +# +msgid "disable move mode" +msgstr "desactivar mode moviment" + +# +msgid "disabled" +msgstr "desactivat" + +# +msgid "disconnected" +msgstr "" + +msgid "discussion/interview/debate" +msgstr "" + +# +msgid "do nothing" +msgstr "no facis res" + +msgid "documentary" +msgstr "" + +msgid "don't descramble, record ecm" +msgstr "" + +# +msgid "done!" +msgstr "fet!" + +msgid "east" +msgstr "" + +msgid "economics/social advisory" +msgstr "" + +# +msgid "edit alternatives" +msgstr "editar alternatives" + +msgid "education/science/factual topics (general)" +msgstr "" + +# +msgid "empty" +msgstr "buit" + +# +msgid "enable" +msgstr "habilitar" + +# +msgid "enable bouquet edit" +msgstr "activar l'edició de la llista" + +# +msgid "enable favourite edit" +msgstr "activar l'edició dels preferits" + +# +msgid "enable move mode" +msgstr "activar mode moviment" + +# +msgid "enabled" +msgstr "activat" + +# +msgid "end alternatives edit" +msgstr "fi de l'edició d'alternatives" + +# +msgid "end bouquet edit" +msgstr "fi de l'edició de llistes" + +# +msgid "end cut here" +msgstr "acabar el tall aquí" + +# +msgid "end favourites edit" +msgstr "fi de l'edició de preferits" + +msgid "entertainment (10-16 year old)" +msgstr "" + +msgid "entertainment (6-14 year old)" +msgstr "" + +# +msgid "equal to" +msgstr "" + +msgid "equestrian" +msgstr "" + +# +msgid "exit DVD player or return to file browser" +msgstr "" + +msgid "exit movielist" +msgstr "" + +# +msgid "exit network adapter configuration" +msgstr "" + +# +msgid "exit networkadapter setup menu" +msgstr "" + +msgid "experimental film/video" +msgstr "" + +msgid "false" +msgstr "" + +msgid "fashion" +msgstr "" + +# +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "" + +# +msgid "filename" +msgstr "" + +msgid "film/cinema" +msgstr "" + +msgid "fine arts" +msgstr "" + +# +msgid "fine-tune your display" +msgstr "" + +msgid "fitness & health" +msgstr "" + +msgid "flat alphabetic" +msgstr "" + +msgid "flat alphabetic reverse" +msgstr "" + +msgid "folk/traditional music" +msgstr "" + +msgid "football/soccer" +msgstr "" + +msgid "foreign countries/expeditions" +msgstr "" + +# +msgid "forward to the next chapter" +msgstr "" + +# +msgid "free" +msgstr "" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "" + +msgid "game show/quiz/contest" +msgstr "" + +msgid "gardening" +msgstr "" + +# +msgid "go to deep standby" +msgstr "aturar completament" + +# +msgid "go to standby" +msgstr "posar en repòs" + +# +msgid "grab this frame as bitmap" +msgstr "" + +# +msgid "green" +msgstr "" + +msgid "handicraft" +msgstr "" + +msgid "height" +msgstr "" + +# +msgid "help..." +msgstr "ajuda..." + +# +msgid "horizontal" +msgstr "horitzontal" + +msgid "information/education/school program" +msgstr "" + +# +msgid "init module" +msgstr "iniciar mòdul" + +# +msgid "init modules" +msgstr "" + +# +msgid "insert mark here" +msgstr "inserir marca aquí" + +msgid "invalid type" +msgstr "" + +msgid "jazz" +msgstr "" + +# +msgid "jump back to the previous title" +msgstr "" + +# +msgid "jump forward to the next title" +msgstr "" + +msgid "languages" +msgstr "" + +# +msgid "leave movie player..." +msgstr "sortir del reproductor de pel·lícules..." + +# +msgid "left" +msgstr "esquerra" + +msgid "left, wrapped" +msgstr "" + +msgid "leisure hobbies (general)" +msgstr "" + +# +msgid "length" +msgstr "" + +msgid "limit ..., aborting !" +msgstr "" + +# +msgid "list style compact" +msgstr "" + +# +msgid "list style compact with description" +msgstr "" + +# +msgid "list style default" +msgstr "" + +# +msgid "list style single line" +msgstr "" + +msgid "literature" +msgstr "" + +msgid "live broadcast" +msgstr "" + +# +msgid "locked" +msgstr "bloquejat" + +# +msgid "loopthrough to" +msgstr "" + +msgid "magazines/reports/documentary" +msgstr "" + +# +msgid "manual" +msgstr "manual" + +msgid "martial sports" +msgstr "" + +msgid "medicine/physiology/psychology" +msgstr "" + +# +msgid "menu" +msgstr "menú" + +# +msgid "mins" +msgstr "minuts" + +# +msgid "minutes" +msgstr "minuts" + +# +msgid "month" +msgstr "" + +msgid "motor sport" +msgstr "" + +msgid "motoring" +msgstr "" + +# +msgid "move down to last entry" +msgstr "" + +# +msgid "move down to next entry" +msgstr "" + +# +msgid "move up to first entry" +msgstr "" + +# +msgid "move up to previous entry" +msgstr "" + +msgid "movie/drama (general)" +msgstr "" + +# +#, fuzzy +msgid "multinorm" +msgstr "multinorm" + +msgid "music/ballet/dance (general)" +msgstr "" + +msgid "musical/opera" +msgstr "" + +msgid "nature/animals/environment" +msgstr "" + +# +msgid "never" +msgstr "mai" + +msgid "new media" +msgstr "" + +msgid "news magazine" +msgstr "" + +msgid "news/current affairs (general)" +msgstr "" + +msgid "news/weather report" +msgstr "" + +# +msgid "no" +msgstr "no" + +# +msgid "no CAId selected" +msgstr "" + +# +msgid "no CI slots found" +msgstr "" + +# +msgid "no module found" +msgstr "no hi ha el mòdul" + +msgid "no storage devices found" +msgstr "" + +# +msgid "none" +msgstr "cap" + +msgid "normal" +msgstr "" + +# +msgid "not configured" +msgstr "" + +# +msgid "not locked" +msgstr "desbloquejat" + +msgid "not supported" +msgstr "" + +# +msgid "not used" +msgstr "" + +# +msgid "nothing connected" +msgstr "res connectat" + +# +msgid "of a DUAL layer medium used." +msgstr "" + +# +msgid "of a SINGLE layer medium used." +msgstr "" + +# +msgid "off" +msgstr "desactivat" + +msgid "offset is" +msgstr "" + +# +msgid "on" +msgstr "activat" + +# +msgid "on READ ONLY medium." +msgstr "" + +msgid "on end of movie" +msgstr "" + +# +msgid "once" +msgstr "un sol cop" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +# +msgid "open nameserver configuration" +msgstr "" + +msgid "original" +msgstr "" + +msgid "original language" +msgstr "" + +# +msgid "pass" +msgstr "passa" + +msgid "performing arts" +msgstr "" + +msgid "play as picture in picture" +msgstr "" + +msgid "play in mainwindow" +msgstr "" + +# +msgid "please press OK when ready" +msgstr "prem OK quan estiguis a punt" + +# +msgid "please wait, loading picture..." +msgstr "sisplau espera, carregant imatge..." + +msgid "popular culture/traditional arts" +msgstr "" + +msgid "pre-school children's program" +msgstr "" + +msgid "receiver software because updates are available." +msgstr "" + +# +msgid "record" +msgstr "gravar" + +# +msgid "recording..." +msgstr "gravant..." + +# +msgid "red" +msgstr "" + +msgid "religion" +msgstr "" + +msgid "remarkable people" +msgstr "" + +# +msgid "remove after this position" +msgstr "esborra després d'aquesta posició" + +# +msgid "remove all alternatives" +msgstr "esborrar totes les alternatives" + +# +msgid "remove all new found flags" +msgstr "esborrar totes les marques trobades" + +# +msgid "remove before this position" +msgstr "esborra abans d'aquesta posició" + +# +msgid "remove bookmark" +msgstr "" + +# +msgid "remove directory" +msgstr "" + +# +msgid "remove entry" +msgstr "eliminar entrada" + +# +msgid "remove from parental protection" +msgstr "esborrar de la protecció parental" + +# +msgid "remove new found flag" +msgstr "esborrar nova marca trobada" + +# +msgid "remove selected satellite" +msgstr "" + +# +msgid "remove this mark" +msgstr "esborrar aquesta marca" + +msgid "rename entry" +msgstr "" + +# +msgid "repeat playlist" +msgstr "" + +# +msgid "repeated" +msgstr "repetit" + +msgid "reverse by date" +msgstr "" + +# +msgid "rewind to the previous chapter" +msgstr "" + +# +msgid "right" +msgstr "dreta" + +msgid "right, wrapped" +msgstr "" + +msgid "rock/pop" +msgstr "" + +msgid "romance" +msgstr "" + +# +msgid "save last directory on exit" +msgstr "" + +# +msgid "save playlist on exit" +msgstr "" + +# +msgid "scan state" +msgstr "estat de la recerca" + +msgid "science fiction/fantasy/horror" +msgstr "" + +# +msgid "second cable of motorized LNB" +msgstr "segon cable del LNB motoritzat" + +# +msgid "seconds" +msgstr "segons" + +# +msgid "select" +msgstr "" + +# +msgid "select CAId's" +msgstr "" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +# +msgid "select menu entry" +msgstr "" + +msgid "select movie" +msgstr "" + +msgid "select the movie path" +msgstr "" + +msgid "serious music/classic music" +msgstr "" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "" + +msgid "service PIN" +msgstr "" + +msgid "set as startup service" +msgstr "" + +msgid "setup PIN" +msgstr "" + +# +msgid "show DVD main menu" +msgstr "" + +msgid "show all tags" +msgstr "" + +# +msgid "show alternatives" +msgstr "mostrar alternatives" + +# +msgid "show event details" +msgstr "mostrar detalls del programa" + +msgid "show extended description" +msgstr "" + +msgid "show mediaplayer on mainmenu" +msgstr "" + +msgid "show softwaremanager in setup menu" +msgstr "" + +msgid "show softwaremanager on blue button" +msgstr "" + +msgid "show tag menu" +msgstr "" + +# +msgid "show transponder info" +msgstr "mostrar info del transponedor" + +msgid "show/game show (general)" +msgstr "" + +msgid "shuffle" +msgstr "" + +# +msgid "shut down" +msgstr "" + +# +msgid "simple" +msgstr "senzill" + +# +msgid "skip backward" +msgstr "saltar endarrere" + +# +msgid "skip forward" +msgstr "saltar endavant" + +msgid "soap/melodram/folkloric" +msgstr "" + +msgid "social/political issues/economics (general)" +msgstr "" + +msgid "social/spiritual science" +msgstr "" + +msgid "sorting of playlists" +msgstr "" + +# +msgid "special characters" +msgstr "" + +msgid "special events" +msgstr "" + +msgid "special format data DVD (HDTV compatible)" +msgstr "" + +msgid "sports (general)" +msgstr "" + +msgid "sports magazine" +msgstr "" + +# +msgid "standard" +msgstr "" + +# +msgid "start cut here" +msgstr "començar tall aquí" + +# +msgid "start directory" +msgstr "" + +msgid "stepsize" +msgstr "" + +# +msgid "stereo" +msgstr "stèreo" + +msgid "stop using as startup service" +msgstr "" + +# +msgid "switch to bookmarks" +msgstr "" + +# +msgid "switch to filelist" +msgstr "canviar a la llista de fitxers" + +# +msgid "switch to the next angle" +msgstr "" + +# +msgid "switch to the next audio track" +msgstr "" + +# +msgid "switch to the next subtitle language" +msgstr "" + +msgid "talk show" +msgstr "" + +msgid "team sports" +msgstr "" + +msgid "technology/natural science" +msgstr "" + +# +msgid "template file" +msgstr "" + +msgid "tennis/squash" +msgstr "" + +# +msgid "this recording" +msgstr "aquesta gravació" + +# +msgid "this service is protected by a parental control pin" +msgstr "aquest canal està protegit per un pin de control parental" + +# +msgid "toggle time, chapter, audio, subtitle info" +msgstr "" + +msgid "top" +msgstr "" + +msgid "tourism/travel" +msgstr "" + +msgid "true" +msgstr "" + +msgid "unavailable" +msgstr "" + +# +msgid "unconfirmed" +msgstr "" + +msgid "undefined" +msgstr "" + +# +msgid "unknown" +msgstr "" + +# +msgid "unknown service" +msgstr "canal desconegut" + +msgid "unpublished" +msgstr "" + +# +msgid "until standby/restart" +msgstr "" + +# +msgid "user defined" +msgstr "definit per l'usuari" + +msgid "variety show" +msgstr "" + +# +msgid "vertical" +msgstr "vertical" + +# +msgid "wait for ci..." +msgstr "espera..." + +# +msgid "wait for mmi..." +msgstr "" + +# +msgid "waiting" +msgstr "esperant" + +msgid "water sport" +msgstr "" + +# +msgid "weekly" +msgstr "setmanalment" + +msgid "west" +msgstr "" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "" + +# +msgid "whitelist" +msgstr "llista blanca" + +msgid "width" +msgstr "" + +msgid "winter sport" +msgstr "" + +msgid "wireless network interface" +msgstr "" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "" +msgstr[1] "" + +# +msgid "working" +msgstr "" + +# +msgid "yellow" +msgstr "" + +# +msgid "yes" +msgstr "si" + +# +msgid "yes (keep feeds)" +msgstr "si (mantenir feeds)" + +# +msgid "zap" +msgstr "zappejar" + +msgid "zap and record" +msgstr "" + +# +msgid "zapped" +msgstr "zappejat" + +# +#~ msgid "AA" +#~ msgstr "AA" + +# +#~ msgid "AB" +#~ msgstr "AB" + +# +#, fuzzy +#~ msgid "Activate PiP" +#~ msgstr "Activar PiP" + +# +#, fuzzy +#~ msgid "Add/remove timer for current event" +#~ msgstr "afegir gravació (fins que s'acabi el programa)" + +# +#, fuzzy +#~ msgid "All satellites" +#~ msgstr "Satèl·lits" + +# +#~ msgid "BA" +#~ msgstr "BA" + +# +#~ msgid "BB" +#~ msgstr "BB" + +# +#~ msgid "Committed DiSEqC command" +#~ msgstr "Comanda DISEqC enviada" + +# +#~ msgid "DiSEqC repeats" +#~ msgstr "Repetir DiSEqC" + +# +#~ msgid "No satellite frontend found!!" +#~ msgstr "No s'ha trobat cap sintonitzador de satèŀlit!!" + +# +#, fuzzy +#~ msgid "Switch next channel" +#~ msgstr "canal següent" + +# +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Comanda DiSEqC no enviada" + +# +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "Tornar al canal abans d'executar el satfinder?" diff --git a/po/cs.po b/po/cs.po new file mode 100644 index 0000000..e6a13cc --- /dev/null +++ b/po/cs.po @@ -0,0 +1,9625 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: ims\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: \n" +"Last-Translator: ims <ims21@users.sourceforge.net>\n" +"Language-Team: PLi <ims21@users.sourceforge.net>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Czech\n" +"X-Poedit-Country: CZECH REPUBLIC\n" +"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +# +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"PokroÄilé volby a nastavení." + +# +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"Po stisknutí OK Äekejte, prosím!" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" +"\n" +"Záloha nastavení VaÅ¡eho pÅ™ijímaÄe." + +# +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"Upravit adresy aktualizaÄních zdrojů." + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" +"\n" +"Správa rozšíření nebo pluginů VaÅ¡eho pÅ™ijímaÄe" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" +"\n" +"Online aktualizace programového vybavení pÅ™ijímaÄe." + +# +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"Pro pokraÄování stisknÄ›te OK na dálkovém ovladaÄi." + +# +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"Obnova záloh podle data." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" +"\n" +"Obnova nastavení VaÅ¡eho pÅ™ijímaÄe." + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" +"\n" +"Obnova pÅ™ijímaÄe s novým firmware." + +# +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"Vyhledat a nainstalovat místní rozšíření." + +# +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Zvolte zařízení pro zálohování.\n" +"SouÄasné zařízení: " + +# +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"Zobrazit, instalovat a odstranit dostupné nebo instalované balíÄky." + +msgid " (PiP)" +msgstr "" + +msgid " (Radio)" +msgstr " (Rádio)" + +msgid " (TV)" +msgstr "" + +# +msgid " (disabled)" +msgstr "(zakázáno)" + +msgid " (higher than any auto)" +msgstr "(vyšší, než jakékoliv auto)" + +msgid " (higher than rotor any auto)" +msgstr "(vyšší, než jakékoliv auto motoru)" + +msgid " (lower than any auto)" +msgstr "(nižší, než jakékoliv auto)" + +# +msgid " extensions." +msgstr "rozšíření." + +msgid " ms" +msgstr "ms" + +# +msgid " packages selected." +msgstr " balíÄků vybráno." + +# +msgid " updates available." +msgstr " dostupných aktualizací." + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "" + +msgid "%A %d %B" +msgstr "" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "%A %e. %B" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "%A %e. %B %Y" + +# +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "%a %e/%m" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "" + +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "%d kanál nalezen" +msgstr[1] "%d kanály nalezeny" +msgstr[2] "%d kanálů nalezeno" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "%d soubor" +msgstr[1] "%d soubory" +msgstr[2] "%d souborů" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d hodina" +msgstr[1] "%d hodiny" +msgstr[2] "%d hodin" + +# +#, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d úloha běží na pozadí!" +msgstr[1] "%d úlohy běží na pozadí!" +msgstr[2] "%d úloh běží na pozadí!" + +# +#, python-format +msgid "%d min" +msgstr "%d min" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minuta" +msgstr[1] "%d minuty" +msgstr[2] "%d minut" + +#, python-format +msgid "%d minutes" +msgstr "%d minut" + +# +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "%d pixel Å¡iroké" +msgstr[1] "%d pixely Å¡iroké" +msgstr[2] "%d pixelů Å¡iroké" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d sekunda" +msgstr[1] "%d sekundy" +msgstr[2] "%d sekund" + +# +#, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "%d podadresář" +msgstr[1] "%d podadresáře" +msgstr[2] "%d podadresářů" + +# +#, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "nalezena %d bezdrátová síť!" +msgstr[1] "nalezeny %d bezdrátové síťě!" +msgstr[2] "nalezeno %d bezdrátových síťí!" + +msgid "%d-%b-%Y %-H:%M" +msgstr "" + +msgid "%d-%m" +msgstr "" + +# +msgid "%d.%B %Y" +msgstr "%d. %B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "" + +# +#, python-format +msgid "%s %s free disk space" +msgstr "%s %s volného místa" + +# +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "%s není dlouho používán. Může být odstranÄ›n?" + +# +#, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] " %s dostupná aktualizace" +msgstr[1] " %s dostupné aktualizace" +msgstr[2] " %s dostupných aktualizací" + +#, python-format +msgid "%s%d min" +msgstr "" + +#, python-format +msgid "%s/%s: %s" +msgstr "" + +# +msgid "(ZAP)" +msgstr "(PÅ™epnout)" + +# +msgid "(empty)" +msgstr "(prázdné)" + +# +msgid "(show optional DVD audio menu)" +msgstr "(zobrazit případné DVD audio menu)" + +# +msgid "* Only available if more than one interface is active." +msgstr "* dostupné pouze pÅ™i více než jenom aktivním interface." + +msgid "/s" +msgstr "" + +# +msgid "0" +msgstr "0" + +# +msgid "1" +msgstr "1" + +# +msgid "1.0" +msgstr "1.0" + +# +msgid "1.1" +msgstr "1.1" + +# +msgid "1.2" +msgstr "1.2" + +# +msgid "12V output" +msgstr "12V výstup" + +# +msgid "13 V" +msgstr "13 V" + +# +msgid "16:10" +msgstr "16:10" + +# +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +# +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +# +msgid "16:9" +msgstr "16:9" + +# +msgid "16:9 Letterbox" +msgstr "16:10 Letterbox" + +# +msgid "16:9 always" +msgstr "vždy 16:9" + +# +msgid "18 V" +msgstr "18 V" + +# +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "" + +msgid "24" +msgstr "" + +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +# +msgid "3" +msgstr "3" + +msgid "30" +msgstr "" + +# +msgid "3d mode" +msgstr "3D mód" + +# +msgid "4" +msgstr "4" + +# +msgid "4:3" +msgstr "4:3" + +# +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +# +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +# +msgid "5" +msgstr "5" + +# +msgid "6" +msgstr "6" + +# +msgid "7" +msgstr "7" + +# +msgid "8" +msgstr "8" + +# +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +# +msgid "<Current movielist location>" +msgstr "<souÄasný seznam souborů>" + +# +msgid "<Default movie location>" +msgstr "<standardní umístÄ›ní>" + +# +msgid "<Last timer location>" +msgstr "<poslední umístÄ›ní ÄasovaÄe>" + +# +msgid "<unknown>" +msgstr "<neznámý>" + +# +msgid "??" +msgstr "??" + +# +msgid "A" +msgstr "A" + +# +#, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"KonfiguraÄní soubor (%s) byl od instalace zmÄ›nÄ›n.\n" +"Chcete zachovat VaÅ¡e zmÄ›ny?" + +# +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"KonfiguraÄní soubor (%s) byl od instalace zmÄ›nÄ›n.\n" +"Chcete zachovat VaÅ¡i verzi?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"DokonÄený ÄasovaÄ nahrávání chce pÅ™epnout\n" +"pÅ™ijímaÄ do pohotovostního režimu. PÅ™epnout?" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"DokonÄený ÄasovaÄ nahrávání chce vypnout\n" +"pÅ™ijímaÄ. Vypnout?" + +# +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "Grafické EPG pro vÅ¡echny stanice ve specifickém bukletu" + +# +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"Nahrávání zaÄalo:\n" +"%s" + +# +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"Nahrává se\n" +"Co chcete udÄ›lat?" + +# +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "Nahrává se. Prosím, zastavte nahrávání pÅ™ed konfigurací pozicioneru." + +# +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "Probíhá nahrávání. ZruÅ¡te nahrávání pÅ™ed prohledáváním." + +# +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "PrávÄ› se nahrává. Prosím, zastavte nahrávání pÅ™ed spuÅ¡tÄ›ním Satfinderu." + +# +#, python-format +msgid "A required tool (%s) was not found." +msgstr "Požadovaný nástroj (%s) nebyl nalezen." + +# +msgid "A search for available updates is currently in progress." +msgstr "Probíhá vyhledávání dostupných aktualizací." + +# +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"Byl nalezen druhý nakonfigurovaný interface.\n" +"\n" +"PÅ™ejete si druhý síťový adaptér zakázat?" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"ÄŒasovaÄ vypnutí chce pÅ™epnout pÅ™ijímaÄ\n" +"do pohotovostního režimu. PÅ™epnout?" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"ÄŒasovaÄ vypnutí chce vypnout pÅ™ijímaÄ.\n" +"Vypnout?" + +# +msgid "A small overview of the available icon states and actions." +msgstr "PÅ™ehled zobrazovaných stavů a možných akcí." + +# +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"Nahrávání z ÄasovaÄe selhalo!\n" +"Zakázat TV a zkusit to znovu?\n" + +# +msgid "A/V settings" +msgstr "Nastavení A/V" + +msgid "AC3/DTS downmix" +msgstr "" + +# +msgid "Abort" +msgstr "ZruÅ¡it" + +# +msgid "About" +msgstr "O pÅ™ijímaÄi" + +# +msgid "About..." +msgstr "Info o..." + +# +msgid "Accesspoint:" +msgstr "Přístupový bod:" + +# +msgid "Action on long powerbutton press" +msgstr "Dlouhý stisk tlaÄítka pro vypnutí" + +# +msgid "Action on short powerbutton press" +msgstr "Krátký stisk tlaÄítka pro vypnutí" + +# +msgid "Activate Picture in Picture" +msgstr "Aktivovat obraz v obraze" + +# +msgid "Activate current configuration" +msgstr "Aktivovat souÄasnou konfiguraci" + +# +msgid "Activate network settings" +msgstr "Aktivovat nastavení sítÄ›" + +# +msgid "Activate the configured network settings." +msgstr "Aktivovat nastavení sítÄ›." + +# +msgid "Adapter settings" +msgstr "Nastavení adaptéru" + +# +msgid "Add" +msgstr "PÅ™idat" + +msgid "Add Bookmark" +msgstr "PÅ™idat záložku" + +# +msgid "Add a mark" +msgstr "PÅ™idat znaÄku" + +# +msgid "Add a nameserver entry" +msgstr "PÅ™idat nameserver" + +# +msgid "Add a new title" +msgstr "PÅ™idat nový titul" + +# +msgid "Add bookmark" +msgstr "PÅ™idat záložku" + +# +msgid "Add directory to playlist" +msgstr "PÅ™idat adresář do playlistu" + +# +msgid "Add file to playlist" +msgstr "PÅ™idat soubor do playlistu" + +# +msgid "Add files to playlist" +msgstr "PÅ™idat soubory do playlistu" + +# +msgid "Add more details to the crash log" +msgstr "PÅ™idávat více podrobností do crash logu." + +# +msgid "Add provider" +msgstr "PÅ™idat poskytovatele" + +# +msgid "Add recording (enter recording duration)" +msgstr "PÅ™idat nahrávání (zadat délku nahrávání)" + +# +msgid "Add recording (enter recording endtime)" +msgstr "PÅ™idat nahrávání (zadat Äas ukonÄení)" + +# +msgid "Add recording (indefinitely)" +msgstr "PÅ™idat nahrávání (bez omezení)" + +# +msgid "Add recording (stop after current event)" +msgstr "PÅ™idat nahrávání (ukonÄit po této události)" + +# +msgid "Add service" +msgstr "PÅ™idat program" + +# +msgid "Add timer" +msgstr "PÅ™idat ÄasovaÄ" + +# +msgid "Add title" +msgstr "PÅ™idat titul" + +# +msgid "Add to bouquet" +msgstr "PÅ™idat do pÅ™ehledu" + +# +msgid "Add to favourites" +msgstr "PÅ™idat do oblíbených" + +msgid "Add/remove change timer for current event" +msgstr "PÅ™idat/odstranit ÄasovaÄ pro aktuální událost" + +# +msgid "Adjust 3D settings" +msgstr "Seřídit 3D nastavení" + +# +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "Upravte barevné nastavení tak, aby vÅ¡echny barevné odstíny byly rozpoznatelné, ale zároveň aby byly co nejvíce nasycené. Pokud jste spokojeni s výsledkem, stisknÄ›te OK pro zavÅ™ení průvodce nebo použijte numerické klávesy pro výbÄ›r jiné testovací scény." + +# +msgid "Advanced" +msgstr "rozšířený" + +# +msgid "Advanced options" +msgstr "PokroÄilé možnosti" + +# +msgid "Advanced restore" +msgstr "PokroÄilá obnova" + +# +msgid "Advanced software" +msgstr "PokroÄilé programy" + +# +msgid "Advanced software plugin" +msgstr "Plugin pokroÄilých programů" + +# +msgid "Advanced video enhancement setup" +msgstr "PokroÄilá nastavení korekce obrazu" + +# +msgid "Advanced video setup" +msgstr "Rozšířené nastavení videa" + +# +msgid "After event" +msgstr "Po skonÄení" + +# +msgid "Album" +msgstr "Album" + +msgid "Alignment of events" +msgstr "Zarovnání událostí" + +msgid "Alignment of service names" +msgstr "Zarovnání názvu kanálů" + +# +msgid "All" +msgstr "VÅ¡e" + +msgid "All ages" +msgstr " " + +# +msgid "All satellites 1 (USALS)" +msgstr "VÅ¡echny satelity 1 (USALS)" + +# +msgid "All satellites 2 (USALS)" +msgstr "VÅ¡echny satelity 2 (USALS)" + +# +msgid "All satellites 3 (USALS)" +msgstr "VÅ¡echny satelity 3 (USALS)" + +# +msgid "All satellites 4 (USALS)" +msgstr "VÅ¡echny satelity 4 (USALS)" + +msgid "Allocate" +msgstr "PÅ™idÄ›lit" + +msgid "Allocate unused memory index" +msgstr "PÅ™idÄ›lit nepoužitou paměť" + +msgid "Allow quit movieplayer with exit" +msgstr "Umožnit zavírat movieplayer pomocí Exit" + +msgid "Allow subtitle language to equal audio language" +msgstr "Titulky shodné se zvukem" + +msgid "Allow subtitles for hearing impaired" +msgstr "Povolit titulky pro sluchovÄ› postižené" + +# +msgid "Alpha" +msgstr "Alfa" + +# +msgid "Alternative" +msgstr "alternativní" + +# +msgid "Alternative numbering mode" +msgstr "Alternativní Äíslování" + +# +msgid "Alternative services tuner priority" +msgstr "PoÅ™adí priority alternativních tunerů" + +msgid "Always ask" +msgstr "Vždy se ptát" + +msgid "Always hide infobar" +msgstr "Vždy skrývat infobar" + +# +msgid "An empty filename is illegal." +msgstr "Neplatný název souboru." + +# +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "Chyba pÅ™i stahování seznamu balíÄků. Prosím, zkuste to znovu." + +# +msgid "An unknown error occurred!" +msgstr "Vyskytla se neznámá chyba!" + +msgid "And will put your receiver in standby over " +msgstr "a pÅ™epne pÅ™ijímaÄ do standby za" + +msgid "Any activity" +msgstr "jakákoliv aktivita" + +# +msgid "Arabic" +msgstr "Arabsky" + +# +msgid "Are you sure to remove this entry?" +msgstr "Opravdu chcete odstranit tuto položku?" + +# +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"Chcete aktivovat tuto síťovou konfiguraci?\n" +"\n" + +# +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"Opravdu chcete smazat následující zálohu:\n" +"\n" + +# +msgid "Are you sure you want to exit this wizard?" +msgstr "Opravdu chcete ukonÄit tohoto průvodce?" + +# +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"Opravdu chcete restartovat síťové rozhraní?\n" +"\n" + +# +#, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Opravdu chcete obnovit následující zálohu:\n" +"%s\n" +"\n" +"Uživatelské rozhraní bude po obnovÄ› restartováno!" + +# +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Opravdu chcete obnovit zálohu?\n" +"Po obnovÄ› bude pÅ™ijímaÄ restartován!" + +# +msgid "Artist" +msgstr "UmÄ›lec" + +msgid "Arts/Culture" +msgstr "umÄ›ní/kultura" + +# +msgid "Ask user" +msgstr "zeptat se" + +# +msgid "Aspect ratio" +msgstr "PomÄ›r stran" + +# +msgid "Assigned CAIds:" +msgstr "PÅ™iÅ™azené CAIds:" + +# +msgid "Assigned services/provider:" +msgstr "PÅ™iÅ™azený program/poskytovatel:" + +# +msgid "At beginning" +msgstr "Na zaÄátek" + +# +msgid "At end" +msgstr "Na konec" + +# +msgid "Audio" +msgstr "Zvuk" + +msgid "Audio PID" +msgstr "" + +# +msgid "Audio language selection 1" +msgstr "Volba jazyka zvuku 1" + +# +msgid "Audio language selection 2" +msgstr "Volba jazyka zvuku 2" + +# +msgid "Audio language selection 3" +msgstr "Volba jazyka zvuku 3" + +# +msgid "Audio language selection 4" +msgstr "Volba jazyka zvuku 4" + +# +msgid "Audio options..." +msgstr "Nastavení zvuku..." + +# +#, python-format +msgid "Audio track (%s) format" +msgstr "Formát audio stopy (%s)" + +# +#, python-format +msgid "Audio track (%s) language" +msgstr "Jazyk audio stopy (%s)" + +# +msgid "Author: " +msgstr "Autor: " + +# +msgid "Authoring mode" +msgstr "Mód authoringu" + +# +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Auto" + +# +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Automaticky vytvoÅ™it kapitoly každých ? minut (0=žádné)" + +# +msgid "Auto flesh" +msgstr "" + +msgid "Auto focus" +msgstr "Auto fokus" + +msgid "Auto focus commencing ..." +msgstr "Auto fokus zahájen ..." + +# +msgid "Auto language selection" +msgstr "Automatický výbÄ›r jazyka" + +# +msgid "Auto scart switching" +msgstr "Automatické pÅ™epínání scart" + +# +msgid "Automatic" +msgstr "Automatické" + +# +msgid "Automatic scan" +msgstr "Automatické prohledávání" + +msgid "Automatically start timeshift after" +msgstr "Automaticky spustit timeshift po" + +msgid "Automatically turn on external subtitles" +msgstr "Automaticky zapínat externí titulky" + +# +msgid "Available format variables" +msgstr "Použitelný formát promÄ›nných" + +# +msgid "B" +msgstr "B" + +# +msgid "BER" +msgstr "BER" + +# +msgid "BER:" +msgstr "BER:" + +# +msgid "Back" +msgstr "ZpÄ›t" + +# +msgid "Background" +msgstr "Pozadí" + +# +msgid "Background color" +msgstr "Barva pozadí" + +# +msgid "Background delete option" +msgstr "Možnosti mazání na pozadí" + +# +msgid "Background delete speed" +msgstr "Rychlost mazání na pozadí" + +# +msgid "Backup completed." +msgstr "Záloha dokonÄena." + +# +msgid "Backup failed." +msgstr "Záloha selhala." + +# +msgid "Backup is running..." +msgstr "Probíhá zálohování..." + +# +msgid "Backup system settings" +msgstr "Záloha nastavení" + +# +msgid "Band" +msgstr "Pásmo" + +# +msgid "Bandwidth" +msgstr "Šířka pásma" + +# +msgid "Basque" +msgstr "Baskicky" + +# +msgid "Begin time" +msgstr "ÄŒas zaÄátku" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +# +msgid "Behavior of 0 key in PiP-mode" +msgstr "Funkce tlaÄítka 0 v PiP módu" + +# +msgid "Behavior when a movie is started" +msgstr "PÅ™i spuÅ¡tÄ›ní pÅ™ehrávání filmu" + +# +msgid "Behavior when a movie is stopped" +msgstr "PÅ™i zastavení pÅ™ehrávaného filmu" + +# +msgid "Behavior when a movie reaches the end" +msgstr "Po skonÄení pÅ™ehrávání filmu" + +msgid "Big PiP" +msgstr "Velký PiP" + +# +msgid "Bitrate:" +msgstr "Datový tok:" + +msgid "Black screen" +msgstr "Äerná obrazovka" + +msgid "Black screen till locked" +msgstr "ÄŒerná obrazovka do uzamÄení" + +# +msgid "Block noise reduction" +msgstr "Bloková redukce Å¡umu (BNR)" + +# +msgid "Blue boost" +msgstr "Zesílení modré" + +# +msgid "Bookmarks" +msgstr "Záložky" + +# +msgid "Brightness" +msgstr "Jas" + +msgid "Bulgarian" +msgstr "Bulharsky" + +# +msgid "Burn DVD" +msgstr "Vypálit DVD" + +# +#, python-format +msgid "Burn audio track (%s)" +msgstr "Vypálit audio stopu (%s)" + +# +msgid "Burn existing image to DVD" +msgstr "Vypálit existující obraz na DVD" + +msgid "Burn to DVD" +msgstr "Vypálit na DVD" + +# +msgid "Bus: " +msgstr "SbÄ›rnice: " + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "StandardnÄ› ( jestliže to podporuje tuner) je SNR zobrazován v dB. Toto nastavení umožní zobrazování v procentech." + +# +msgid "C" +msgstr "" + +# +msgid "C-Band" +msgstr "C-Band" + +msgid "CH" +msgstr "" + +# +msgid "CI assignment" +msgstr "CI pÅ™iÅ™azení" + +# +msgid "CVBS" +msgstr "CVBS" + +# +msgid "Cable" +msgstr "Kabel" + +# +msgid "Cable Scan" +msgstr "Prohledání kabelovky" + +# +msgid "Cache thumbnails" +msgstr "Vyrovnávací paměť pro náhledy" + +msgid "Calculate" +msgstr "PÅ™epoÄítat" + +msgid "Calculate all positions" +msgstr "PÅ™epoÄítat vÅ¡echny pozice" + +msgid "Calculation complete" +msgstr "PÅ™epoÄítání dokonÄeno" + +msgid "Calibrate" +msgstr "Kalibrovat" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "Může být použito pÅ™i odliÅ¡né fps mezi obrazem a externími titulky." + +# +msgid "Cancel" +msgstr "Zavřít" + +msgid "Cannot determine" +msgstr "Nelze urÄit" + +msgid "Cannot find any signal ..., aborting !" +msgstr "Nelze najít žádný signál..., ukonÄuje se!" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "Nelze pÅ™esunout do koÅ¡e soubory z jiného disku nebo systému" + +msgid "Cannot move to trash can" +msgstr "Nelze pÅ™esunout do koÅ¡e" + +# +msgid "Capacity: " +msgstr "Kapacita:" + +# +msgid "Card" +msgstr "Karta" + +msgid "Cascade PiP" +msgstr "Kaskádový PiP" + +# +msgid "Center DVB subtitles" +msgstr "Centrovat DVB titulky" + +msgid "Center time-labels and remove date" +msgstr "Skrýt datum a vycentrovat Äas" + +# +msgid "Change bouquets in quickzap" +msgstr "MÄ›nit pÅ™ehledy pÅ™i rychlém pÅ™epínání" + +# +msgid "Change pin code" +msgstr "ZmÄ›nit PIN kód" + +# +msgid "Change recording (duration)" +msgstr "ZmÄ›nit nahrávání (délku)" + +# +msgid "Change recording (endtime)" +msgstr "ZmÄ›nit nahrávání (Äas ukonÄení)" + +# +msgid "Change repeat and delay settings?" +msgstr "ZmÄ›nit nastavení opakování a zpoždÄ›ní" + +msgid "Change service PIN" +msgstr "ZmÄ›nit programový PIN" + +msgid "Change service PINs" +msgstr "ZmÄ›nit programové PINy" + +msgid "Change setup PIN" +msgstr "ZmÄ›nit PIN pro nastavení" + +# +msgid "Change step size" +msgstr "ZmÄ›nit velikost kroku" + +# +msgid "Change timer" +msgstr "ZmÄ›nit ÄasovaÄ" + +msgid "Changelog" +msgstr "Protokol zmÄ›n" + +# +msgid "Channel" +msgstr "Kanál" + +# +msgid "Channel list type" +msgstr "Typ seznamu programů" + +# +msgid "Channel not in services list" +msgstr "Kanál není v seznamu služeb" + +# +msgid "Channel selection" +msgstr "VýbÄ›r programu" + +# +msgid "Channel:" +msgstr "Kanál:" + +# +msgid "Channellist menu" +msgstr "Menu seznamu programů" + +# +msgid "Chap." +msgstr "Kap." + +# +msgid "Chapter" +msgstr "Kapitola" + +# +msgid "Chapter:" +msgstr "Kapitola:" + +# +msgid "Check" +msgstr "Ověřit" + +msgid "Check the internet connection" +msgstr "Zkontrolujte pÅ™ipojení k internetu" + +msgid "Check the internet connection again" +msgstr "Zkontrolujte znovu pÅ™ipojení k internetu" + +# +msgid "Checking filesystem..." +msgstr "Ověřuje se souborový systém..." + +msgid "Checking the internet connection" +msgstr "Kontrola internetového pÅ™ipojení" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" +"Kontrola tuneru %d\n" +"DiSEqC port %s pro %s" + +msgid "Children/Youth" +msgstr "dÄ›ti/mládež" + +msgid "Choose which tuner to configure." +msgstr "Vyberte si, který tuner chcete nastavovat." + +# +msgid "Circular left" +msgstr "Kruhová levá" + +# +msgid "Circular right" +msgstr "Kruhová pravá" + +# +msgid "Cleanup" +msgstr "VyÄistit" + +msgid "Clear" +msgstr "VyÄistit" + +# +msgid "Clear before scan" +msgstr "Smazat pÅ™ed skenováním" + +msgid "Clear fixed" +msgstr "VyÄistit pevnou" + +# +msgid "Clear log" +msgstr "Smazat log" + +# +msgid "Clear playlist" +msgstr "Vymazat playlist" + +# +msgid "Close" +msgstr "Zavřít" + +msgid "Close PiP on exit" +msgstr "Zavřít PIP pÅ™i ukonÄení" + +# +msgid "Close title selection" +msgstr "Zavřít výbÄ›r titulu" + +msgid "Code rate HP" +msgstr "" + +msgid "Code rate LP" +msgstr "" + +# +msgid "Coderate HP" +msgstr "Rychlost HP" + +# +msgid "Coderate LP" +msgstr "Rychlost LP" + +# +msgid "Collection name" +msgstr "Název kompilace" + +# +msgid "Collection settings" +msgstr "Nastavení kompilace" + +# +msgid "Color format" +msgstr "Formát barev" + +# +msgid "Command execution..." +msgstr "Výkonání příkazu..." + +# +msgid "Command order" +msgstr "PoÅ™adí příkazů" + +# +msgid "Common Interface" +msgstr "Common Interface" + +# +msgid "Common Interface assignment" +msgstr "Common Interface pÅ™iÅ™azení" + +# +msgid "Communication" +msgstr "Komunikace" + +# +msgid "Compact flash" +msgstr "Compact flash" + +# +msgid "Complete" +msgstr "Kompletní" + +# +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "komplexní (umožňuje míchat audio stopy a zobrazení)" + +msgid "Composition of the recording filenames" +msgstr "Vytváření názvů nahrávaných souborů" + +msgid "Configuration mode" +msgstr "KonfiguraÄní mód" + +#, python-format +msgid "Configuration mode: %s" +msgstr "KonfiguraÄní mód: %s" + +# +msgid "Configuration..." +msgstr "nastavení..." + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "Nastavení zpoždÄ›ní pro lepší synchronizaci externích titulků." + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "Nastavení zpoždÄ›ní pro lepší synchronizaci titulků." + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "Nastavuje, jak dlouho po zobrazení bude viditelný infobar." + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "Nastavuje, kolik minut může zůstat ukonÄená událost viditelná v EPG. UžiteÄné, když potÅ™ebujete informace o události, která právÄ› skonÄila nebo byla zpoždÄ›ná." + +msgid "Configure how recording filenames are constructed." +msgstr "Nastavuje způsob vytváření názvů souborů pro nahrávání." + +msgid "Configure how the fan should operate" +msgstr "Nastavuje jak bude pracovat ventilátor" + +# +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "Nastavuje zda a jak budou zobrazovány ikony kódovaných programů v pÅ™ehledech kanálů." + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "Nastavuje zda a jak dlouho bude zapamatován poslední program v PIP." + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "Nastavuje zda a jak budou zobrazovány ikony typu programu v seznamu kanálů." + +# +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "Nastavuje zda a jak Å¡iroké sloupce budou zobrazeny v seznamu kanálů." + +# +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "Nastavuje, zda budou picony zobrazeny v seznamu kanálů." + +# +msgid "Configure interface" +msgstr "Nastavuje interface" + +# +msgid "Configure nameservers" +msgstr "Nastavuje DNS servery" + +msgid "Configure on which devices the background delete option should be used." +msgstr "Nastavuje, na kterých zařízeních může být nastaveno mazání na pozadí." + +msgid "Configure remote control type" +msgstr "Nastavuje typ dálkového ovládání" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "Nastavuje DiSEqC mód pro tento LNB." + +# +msgid "Configure the IP address." +msgstr "Nastavuje IP adresu." + +msgid "Configure the aspect ratio of the screen." +msgstr "Nastavuje pomÄ›r stran obrazu." + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +# +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "Nastavuje chování pÅ™i ruÄním zastavení pÅ™ehrávaného filmu." + +# +msgid "Configure the behavior when movie playback is started." +msgstr "Nastavuje chování pÅ™i spuÅ¡tÄ›ní pÅ™ehrávání filmu." + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "Nastavuje chování pÅ™i dosažení konce filmu bÄ›hem pÅ™ehrávání." + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "Nastavuje šířku okrajů titulků. Tmavé okraje dÄ›lají titulky lépe Äitelné na svÄ›tlém pozadí." + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "Nastavuje úroveň jasu pÅ™edního displeje v pohotovostním režimu." + +msgid "Configure the brightness level of the front panel display." +msgstr "Nastavuje úroveň jasu pÅ™edního displeje." + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "Nastavuje barvy externích titulků - alternativní (normální bíle, kurzíva žlutÄ›, tuÄné azurovÄ›, podtržené zelenÄ›), bílá nebo žlutá." + +msgid "Configure the color of the teletext subtitles." +msgstr "Nastavuje barvu teletextových titulků." + +msgid "Configure the contrast level of the front panel display." +msgstr "Nastavuje úroveň kontrastu pÅ™edního displeje." + +# +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "Nastavuje chování kurzoru v pÅ™ehledu kanálů. PÅ™i otevÅ™ení pÅ™ehledu kanálů můžete zůstat na aktuálním programu nebo se posunout nahoru/dolů a můžete též prohodit B+/B- tlaÄítka." + +# +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "Nastavte dobu v hodinách pro pÅ™echod pÅ™ijímaÄe do standby, jestliže po tuto dobu nebyl ovládán." + +msgid "Configure the duration in minutes for the screensaver." +msgstr "Nastavení doby v minutách pro spoÅ™iÄ obrazovky." + +# +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "Nastavte trvání ÄasovaÄe usínání v minutách a poté . Zvolte tuto položku a stisknÄ›te OK nebo Zelené tlaÄítko pro spuÅ¡tÄ›ní/zastavení ÄasovaÄe usínání" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "Nastavte dobu, po které by se mÄ›l pÅ™ijímaÄ vypnout, v případÄ›, že je v pohotovostním režimu." + +msgid "Configure the first audio language (highest priority)." +msgstr "Nastavuje první jazyk zvuku (nejvyšší priorita)." + +msgid "Configure the first subtitle language (highest priority)." +msgstr "Nastavuje první jazyk titulků (nejvyšší priorita)." + +msgid "Configure the font size of the subtitles." +msgstr "Nastavuje velikost písma titulků." + +msgid "Configure the fourth audio language." +msgstr "Nastavuje Ätvrtý jazyk zvuku." + +# +msgid "Configure the fourth subtitle language." +msgstr "Nastavuje Ätvrtý jazyk titulků." + +msgid "Configure the function of a long press on the power button." +msgstr "Nastavuje funkci pro dlouhý stisk tlaÄítka pro vypnutí." + +msgid "Configure the function of a short press on the power button." +msgstr "Nastavuje funkci pro krátký stisk tlaÄítka pro vypnutí." + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "Nastavuje funkci tlaÄítka '0' pÅ™i aktivním PIP." + +# +msgid "Configure the gateway." +msgstr "Nastavuje bránu." + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "Nastavuje hlavní zpoždÄ›ní Dolby Digital zvukových stop." + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "Nastavuje hlavní zpoždÄ›ní stereo zvukových stop." + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "Nastavuje Äas neÄinnosti, po kterém pÅ™ejde pevný disk do úsporného režimu." + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "Nastavuje horizontální zarovnání titulků." + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "Nastavuje poÄáteÄní rychlost pro pÅ™etáÄení vpÅ™ed. Jestliže stisknete tlaÄítko pro pÅ™etáÄení vpÅ™ed, pÅ™etáÄení zaÄne touto rychlostí." + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "Nastavuje poÄáteÄní rychlost pro pÅ™etáÄení vzad. Jestliže stisknete tlaÄítko pro pÅ™etáÄení vzad, pÅ™etáÄení zaÄne touto rychlostí." + +msgid "Configure the latitude of your location." +msgstr "Nastavuje zemÄ›pisnou šířku VaÅ¡eho místa." + +msgid "Configure the longitude of your location." +msgstr "Nastavuje zemÄ›pisnou délku VaÅ¡eho místa. " + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "Nastavuje minimální množství volného místa na disku využitelné pro nahrávání. Jestliže volné místo klesne pod tuto hodnotu, smazané položky budou odstranÄ›ny z koÅ¡e. " + +# +msgid "Configure the nameserver (DNS)." +msgstr "Nastavuje nameserver (DNS)." + +# +msgid "Configure the netmask." +msgstr "Nastavuje síťovou masku." + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "Nastavuje poÄet dnů, po kterých jsou položky umístÄ›né v koÅ¡i automaticky smazány." + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "Nastavuje poÄet dnů, po které jsou staré ÄasovaÄe uchovávány v seznamu ÄasovaÄů pÅ™ed jejich automatickým smazáním." + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "Nastavuje offline zpoždÄ›ní dekódování v milisekundách. Nastavené zpoždÄ›ní je dodrženo pÅ™i každé zmÄ›nÄ› control word parity. " + +# +msgid "Configure the possible fast forward speeds." +msgstr "Nastavuje použitelné rychlosti pro pÅ™etáÄení dopÅ™edu." + +msgid "Configure the possible rewind speeds." +msgstr "Nastavuje použitelné rychlosti pro pÅ™etáÄení vzad." + +msgid "Configure the primary EPG language." +msgstr "Nastavuje primární jazyka EPG." + +msgid "Configure the refresh rate of the screen." +msgstr "Nastavuje obnovovací frekvenci obrazu." + +msgid "Configure the screen resolution in PC output mode." +msgstr "Nastavuje rozliÅ¡ení obrazovky pro PC výstupní mód." + +msgid "Configure the second audio language." +msgstr "Nastavuje druhý jazyk zvuku." + +# +msgid "Configure the second subtitle language." +msgstr "Nastavuje druhý jazyk titulků." + +msgid "Configure the secondary EPG language." +msgstr "Nastavuje sekundárního jazyka EPG." + +msgid "Configure the sharpness of the video scaling." +msgstr "Nastavuje ostrost pÅ™i Å¡kálování videa." + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "Nastavuje Äas pÅ™eskoÄení pro tlaÄítka '1'/'3'." + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "Nastavuje Äas pÅ™eskoÄení pro tlaÄítka '4'/'6'." + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "Nastavuje Äas pÅ™eskoÄení pro tlaÄítka '7'/'9'." + +# +msgid "Configure the slow motion speeds." +msgstr "Nastavuje rychlosti zpomaleného pÅ™ehrávání." + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "Konfigurace zdroje frontend dat zobrazovaných v Infobaru. \" Nastavení \" znamená tak, jak je uloženo v nastavení . \" Tuner \" znamená získané z tuneru." + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "Nastavuje rychlost mazání na pozadí. Nižší rychlost spotÅ™ebuje ménÄ› výkonu pevného disku." + +msgid "Configure the speed of the fan" +msgstr "Nastavit rychlost ventilátoru" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "Nastavuje zpoždÄ›ní titulků pro případ, kdy není Äasování dostupné." + +msgid "Configure the third audio language." +msgstr "Nastavuje tÅ™etí jazyk zvuku." + +# +msgid "Configure the third subtitle language." +msgstr "Nastavuje tÅ™etí jazyk titulků." + +msgid "Configure the transparency of the OSD." +msgstr "Nastavuje průhlednost OSD." + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "Nastavuje průhlednost Äerného pozadí grafických DVB titulků." + +msgid "Configure the tuner mode." +msgstr "Nastavuje mód tuneru. " + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "Nastavuje typ ikon pro zobrazování stavu pÅ™ehrávání v seznamu souborů." + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "Nastavuje vertikální umístÄ›ní titulků (měřeno od spodní Äásti obrazovky)." + +msgid "Configure the video output mode (or resolution)." +msgstr "Nastavuje mód video výstupu (nebo rozliÅ¡ení)." + +msgid "Configure the way in which the receiver changes channels." +msgstr "Nastavuje cestu kterou pÅ™ijímaÄ mÄ›ní kanály. " + +msgid "Configure where completed timers show up in the timer list." +msgstr "Nastavuje, kde se budou v seznamu ÄasovaÄů zobrazovat dokonÄené ÄasovaÄe. " + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "Nastavuje, zda (a jak dlouho) bude zobrazován druhý infobar, jestliže je dvakrát stisknuto tlaÄítko OK. Druhý infobar obsahuje další informace o aktuálním kanálu." + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "Nastavuje, zda bude vícekanálový zvuk pÅ™epoÄítáván na stereo." + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "Nastavuje, zda budou nebo nebudou zobrazovány ikony pÅ™i natáÄení paraboly motorem. " + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "Nastavuje, která úroveň přístupu bude použita v konfiguraÄních menu. Expertní úroveň zajiÅ¡Å¥uje přístup ke vÅ¡em položkám." + +msgid "Configure which color format should be used on the SCART output." +msgstr "Nastavuje barevný formát pro SCART výstup." + +# +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "Nastavuje preferovaný tuner pro nahrávání pro přídad, že je využitelný více než jeden tuner." + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "Nastavuje, který tuner bude mít prioritu, jestliže je stejný program dostupný na odliÅ¡ných typech tunerů." + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "Nastavuje, který tuner bude preferovaný, jestliže je k dispozici více než jeden tuner. V případÄ› nastavení na 'automaticky' bude preferován tuner s nejnižším poÄtem kanálů/satelitů." + +# +msgid "Configure your internal LAN" +msgstr "Nastavte vnitÅ™ní LAN" + +# +msgid "Configure your network again" +msgstr "Nastavte znovu VaÅ¡i síť" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "Nastavte VaÅ¡i síť a stisknÄ›te OK pro zaÄátek vyhledávání" + +# +msgid "Configure your wireless LAN again" +msgstr "Nastavte znovu VaÅ¡i WLAN" + +msgid "Configures which video output connector will be used." +msgstr "Nastavuje, který konektor video výstupu bude použit. " + +# +msgid "Configuring" +msgstr "Nastavuji" + +# +msgid "Conflicting timer" +msgstr "Konfliktní ÄasovaÄ" + +# +msgid "Connect" +msgstr "PÅ™ipojit" + +# +msgid "Connect to a wireless network" +msgstr "PÅ™ipojit k bezdrátové síti" + +# +msgid "Connected satellites" +msgstr "PÅ™ipojené satelity" + +# +msgid "Connected to" +msgstr "PÅ™ipojeno k" + +# +msgid "Connected!" +msgstr "PÅ™ipojeno!" + +# +msgid "Constellation" +msgstr "Sestava" + +# +msgid "Content does not fit on DVD!" +msgstr "Obsah se nevejde na DVD!" + +msgid "Continue" +msgstr "PokraÄovat" + +# +msgid "Continue in background" +msgstr "PokraÄovat na pozadí" + +# +msgid "Continue playback" +msgstr "PokraÄovat v pÅ™ehrávání" + +# +msgid "Continue playing" +msgstr "pokraÄovat v pÅ™ehrávání" + +msgid "Continues play (loop)" +msgstr "pÅ™ehrát další (opakování ve smyÄce)" + +# +msgid "Contrast" +msgstr "Kontrast" + +msgid "Convert ext3 filesystem to ext4" +msgstr "Konvertovat ext3 systém souborů na ext4" + +msgid "Convert ext3 to ext4" +msgstr "Konverze ext3 na ext4" + +msgid "Converting ext3 to ext4..." +msgstr "Konverze ext3 na ext4..." + +msgid "Copy" +msgstr "Kopírovat" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "Nelze se pÅ™ipojit ke zdrojovému serveru s .NFI image" + +msgid "Could not find installed channel list." +msgstr "Nelze najít nainstalováný seznam kanálů." + +# +msgid "Could not load medium! No disc inserted?" +msgstr "Nelze naÄíst médium. Není vložen disk?" + +# +msgid "Could not open Picture in Picture" +msgstr "Nelze otevřít obraz v obraze" + +# +#, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "Nelze nahrávat z důvodu konfliktu ÄasovaÄe %s" + +#, python-format +msgid "Could not record due to invalid service %s" +msgstr "Nelze nahrávat z důvodu neplatného programu %s" + +# +msgid "Create DVD-ISO" +msgstr "vytvoÅ™it DVD-ISO" + +# +msgid "Create more detailed crash log" +msgstr "Vytvářet podrobnÄ›jší crash log" + +# +#, python-format +msgid "Creating directory %s failed." +msgstr "Založení adresáře %s se nezdaÅ™ilo." + +# +msgid "Creating filesystem" +msgstr "Zakládá se souborový systém" + +# +msgid "Creating partition" +msgstr "Zakládá se tabulka rozdÄ›lení disku" + +# +msgid "Croatian" +msgstr "Chorvatsky" + +msgid "Current CEC address" +msgstr "SouÄasná CEC adresa" + +msgid "Current device: " +msgstr "Aktuální zařízení: " + +msgid "Current event EPG" +msgstr "EPG aktuálního poÅ™adu" + +#, python-format +msgid "Current mode: %s \n" +msgstr "Aktuální mód: %s \n" + +# +msgid "Current settings:" +msgstr "Aktuální nastavení:" + +# +msgid "Current transponder" +msgstr "Aktuální transponder" + +# +msgid "Current value: " +msgstr "Aktuální hodnota: " + +# +msgid "Current version:" +msgstr "Aktuální verze:" + +msgid "Currently installed image" +msgstr "Nainstalované image" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "V souÄasné dobÄ› není možné získat aktuální seznam zmÄ›n - prosím, zkuste to pozdÄ›ji" + +# +msgid "Custom skip time for '1'/'3' buttons" +msgstr "Vlastní Äasový posun pro tlaÄítka '1'/'3'" + +# +msgid "Custom skip time for '4'/'6' buttons" +msgstr "Vlastní Äasový posun pro tlaÄítka '4'/'6'" + +# +msgid "Custom skip time for '7'/'9' buttons" +msgstr "Vlastní Äasový posun pro tlaÄítka '7'/'9'" + +# +msgid "Customize" +msgstr "PÅ™izpůsobení" + +# +msgid "Customize channel list cursor behavior" +msgstr "Chování kurzoru v seznamu kanálů" + +# +msgid "Cut" +msgstr "StÅ™ih" + +# +msgid "Cutlist editor..." +msgstr "Editor stÅ™ihu..." + +# +msgid "Czech" +msgstr "ÄŒesky" + +# +msgid "D" +msgstr "D" + +# +msgid "DHCP" +msgstr "DHCP" + +# +msgid "DMM advanced" +msgstr "rozšířené" + +msgid "DMM normal" +msgstr "normální" + +# +msgid "DUAL LAYER DVD" +msgstr "DVOUVRSTVÉ DVD" + +# +msgid "DVB subtitle black transparency" +msgstr "Průhlednost pozadí DVD titulků" + +msgid "DVB-C" +msgstr "DVB-C" + +msgid "DVB-C ANNEX C" +msgstr "DVB-C ANNEX C" + +# +msgid "DVB-S" +msgstr "DVB-S" + +# +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "DVB-T" + +msgid "DVB-T2" +msgstr "DVB-T2" + +msgid "DVD data format" +msgstr "DVD datový formát" + +# +msgid "DVD file browser" +msgstr "DVD prohlížeÄ souborů" + +# +msgid "DVD media toolbox" +msgstr "DVD media nástroje" + +# +msgid "DVD player" +msgstr "DVD pÅ™ehrávaÄ" + +# +msgid "DVD titlelist" +msgstr "DVD seznam titulů" + +# +msgid "Danish" +msgstr "Dánsky" + +# +msgid "Date" +msgstr "Datum" + +# +msgid "Date/time input" +msgstr "Nastavení data/Äasu" + +# +msgid "Deep standby" +msgstr "Hluboký spánek" + +# +msgid "Default" +msgstr "Defaultní" + +# +msgid "Default movie location" +msgstr "Standardní umístÄ›ní souborů" + +# +msgid "Default settings" +msgstr "Standardní nastavení" + +# +msgid "Delay before key repeat starts:" +msgstr "ZpoždÄ›ní pÅ™ed opakováním:" + +msgid "Delay for external subtitles" +msgstr "ZpoždÄ›ní externích titulků" + +# +msgid "Delete" +msgstr "Smazat" + +# +msgid "Delete entry" +msgstr "smazat položku" + +# +msgid "Delete failed!" +msgstr "Vymazání selhalo!" + +# +msgid "Delete file" +msgstr "Smazat soubor" + +# +msgid "Delete playlist entry" +msgstr "Smazat položku playlistu" + +# +msgid "Delete saved playlist" +msgstr "Smazat uložený playlist" + +# +msgid "Delete timer" +msgstr "Odstranit ÄasovaÄ" + +# +msgid "Delete..." +msgstr "Smazat...." + +msgid "Deleted" +msgstr "Mazáno" + +# +msgid "Deleted items" +msgstr "Smazané položky" + +# +msgid "Depth" +msgstr "Hloubka" + +# +msgid "Descramble http streams" +msgstr "Dekódovat http streamy" + +# +msgid "Description" +msgstr "Popis" + +# +msgid "Deselect" +msgstr "Odebrat" + +msgid "Details for plugin: " +msgstr "Detaily pluginu: " + +# +msgid "Detected HDD:" +msgstr "Detekován HDD:" + +# +msgid "Detected NIMs:" +msgstr "Detekován NIMs:" + +# +msgid "Devicename:" +msgstr "Název zařízení:" + +# +msgid "Devide" +msgstr "rozdÄ›lené" + +# +msgid "DiSEqC" +msgstr "DiSEqC" + +# +msgid "DiSEqC 1.0 command" +msgstr "" + +# +msgid "DiSEqC 1.1 command" +msgstr "" + +# +msgid "DiSEqC 1.1 repeats" +msgstr "DiSEqC 1.1 opakování" + +# +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +# +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +# +msgid "DiSEqC mode" +msgstr "DiSEqC mód" + +# +#, python-format +msgid "DiSEqC port %s: %s" +msgstr "DiSEqC port %s: %s" + +# +msgid "DiSEqC-tester settings" +msgstr "Nastavení DiSEqC testeru" + +# +msgid "Dialing:" +msgstr "VytáÄení:" + +# +msgid "Digital contour removal" +msgstr "OdstranÄ›ní digitálních kontur" + +# +msgid "Direct playback of linked titles without menu" +msgstr "Okamžité pÅ™ehrávání pÅ™ipojených titulů bez menu" + +# +msgid "Directory" +msgstr "adresář" + +# +#, python-format +msgid "Directory %s does not exist." +msgstr "Adresář %s neexistuje." + +#, python-format +msgid "Directory %s nonexistent." +msgstr "Neexistující adresář %s." + +# +msgid "Directory browser" +msgstr "ProhlížeÄ adresářů" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "Adresář obsahuje %d souborů a %d podadresářů.\n" + +#, python-format +msgid "Directory contains %s and %s." +msgstr "Adresář obsahuje %s a %s." + +# +msgid "Disable" +msgstr "Zakázat" + +# +msgid "Disable Picture in Picture" +msgstr "Vypnout obraz v obraze" + +msgid "Disable background scanning" +msgstr "Zakázat prohledávání na pozadí" + +# +msgid "Disable timer" +msgstr "Zakázat ÄasovaÄ" + +# +msgid "Disabled" +msgstr "zakázán" + +# +msgid "Disconnect" +msgstr "Odpojit" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "Rezerva volného místa pro nahrávání (v GB)" + +# +msgid "Display 16:9 content as" +msgstr "Zobrazovat obraz 16:9 jako" + +# +msgid "Display 4:3 content as" +msgstr "Zobrazovat obraz 4:3 jako" + +# +msgid "Display >16:9 content as" +msgstr "Zobrazovat >16:9 obsah jako" + +# +msgid "Display and userinterface" +msgstr "Displej a uživatelské rozhraní" + +msgid "Display message before playing next movie" +msgstr "Zobrazovat zprávu pÅ™ed dalším pÅ™ehrávaným filmem" + +# +msgid "Display setup" +msgstr "Nastavení displeje" + +# +msgid "Do not change" +msgstr "NemÄ›nit" + +# +msgid "Do not record" +msgstr "Nenahrávat" + +# +msgid "Do nothing" +msgstr "NedÄ›lat nic" + +# +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Opravdu chcete zkontrolovat souborový systém?\n" +"Může to trvat dlouho!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" +"Opravdu chcete pÅ™evést systém souborů?\n" +"Nelze se vrátit zpÄ›t!" + +# +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Opravdu chcete smazat \"%s\"?" + +# +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"Chcete opravdu stáhnout\n" +"plugin \"%s\"?" + +# +msgid "Do you really want to exit?" +msgstr "Opravdu chcete ukonÄit?" + +# +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" +"Opravdu chcete inicializovat zařízení?\n" +"VÅ¡echna data na disku budou ztracena!" + +# +#, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"Chcete opravdu odstranit\n" +"plugin \"%s\"?" + +# +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Chcete opravdu odstranit z disku adresář %s?" + +# +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Chcete opravdu smazat VaÅ¡i záložku z %s?" + +msgid "Do you want this?" +msgstr "Chcete to?" + +# +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Chcete vypálit tuto kompilaci na DVD?" + +# +msgid "Do you want to do a service scan?" +msgstr "Chcete vyhledat programy?" + +# +msgid "Do you want to do another manual service scan?" +msgstr "Chcete provést další ruÄní prohledávání?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "Chcete stáhnout image do %s?" + +# +msgid "Do you want to install a channel list?" +msgstr "Chcete nainstalovat seznam programů?" + +# +msgid "Do you want to install the package:\n" +msgstr "PÅ™ejete si nainstalovat balíÄek:\n" + +# +msgid "Do you want to play DVD in drive?" +msgstr "Chcete pÅ™ehrát DVD v mechanice?" + +# +msgid "Do you want to preview this DVD before burning?" +msgstr "Chcete si toto DVD pÅ™ed vypálením prohlédnout?" + +msgid "Do you want to reboot your receiver?" +msgstr "Chcete pÅ™ijímaÄ restartovat?" + +# +msgid "Do you want to remove the package:\n" +msgstr "Chcete odstranit balíÄek:\n" + +# +msgid "Do you want to restore your settings?" +msgstr "Chcete obnovit VaÅ¡e nastavení?" + +# +msgid "Do you want to resume this playback?" +msgstr "Chcete obnovit pÅ™ehrávání?" + +#, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Chcete zaktualizovat Váš pÅ™ijímaÄ na %s?" + +msgid "Do you want to update your receiver?" +msgstr "Chcete zaktualizovat Váš pÅ™ijímaÄ?" + +# +msgid "Do you want to upgrade the package:\n" +msgstr "Chcete aktualizovat balíÄek:\n" + +# +msgid "Don't stop current event but disable coming events" +msgstr "Nezastavovat aktuální událost, ale zakázat následující události" + +# +#, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "DokonÄeno - instalován, aktualizován nebo odstranÄ›n %d balíÄek (%s)" +msgstr[1] "DokonÄeno - instalovány, aktualizovány nebo odstranÄ›ny %d balíÄky (%s)" +msgstr[2] "DokonÄeno - instalováno, aktualizováno nebo odstranÄ›no %d balíÄků (%s)" + +# +msgid "Download" +msgstr "Stáhnout" + +#, python-format +msgid "Download %s from server" +msgstr "Stahnout %s ze serveru" + +msgid "Download .NFI-files for USB-flasher" +msgstr "Stáhnout .NFI-soubory pro USB-Flasher" + +# +msgid "Download plugins" +msgstr "Stáhnout pluginy" + +# +msgid "Downloadable new plugins" +msgstr "Instalovat nové pluginy" + +# +msgid "Downloadable plugins" +msgstr "Stažitelné pluginy" + +# +msgid "Downloading" +msgstr "Stahuji" + +# +msgid "Downloading plugin information. Please wait..." +msgstr "Stahuji informace o pluginech. Prosím, Äekejte..." + +# +msgid "Dutch" +msgstr "Holandsky" + +# +msgid "Dynamic contrast" +msgstr "Dynamický kontrast" + +# +msgid "E" +msgstr "Východní" + +msgid "EPG" +msgstr "" + +# +msgid "EPG language selection 1" +msgstr "EPG jazyk 1" + +# +msgid "EPG language selection 2" +msgstr "EPG jazyk 2" + +# +msgid "EPG selection" +msgstr "VýbÄ›r EPG" + +msgid "EPG settings" +msgstr "Nastavení EPG" + +# +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "CHYBA - prohledávání selhalo (%s)!" + +# +msgid "East" +msgstr "Východní" + +msgid "East limit set" +msgstr "Východní limit nastaven" + +# +msgid "Edit" +msgstr "Upravit" + +# +msgid "Edit DNS" +msgstr "Upravit DNS" + +# +msgid "Edit bouquets list" +msgstr "Upravit seznam pÅ™ehledů" + +# +msgid "Edit chapters of current title" +msgstr "Upravit kapitoly zvoleného titulu" + +# +msgid "Edit services list" +msgstr "Upravit seznam programů" + +# +msgid "Edit settings" +msgstr "upravit nastavení" + +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "Upravuje nastavení DNS.\n" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "Upravuje nastavení sítÄ›.\n" + +# +msgid "Edit timer" +msgstr "Upravit ÄasovaÄ" + +# +msgid "Edit title" +msgstr "Upravit titul" + +# +msgid "Edit upgrade source url." +msgstr "Upravit url zdroje aktualizací." + +msgid "Education/Science/..." +msgstr "vzdÄ›lání/vÄ›da..." + +# +msgid "Electronic Program Guide" +msgstr "EPG" + +# +msgid "Enable" +msgstr "Povolit" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +# +msgid "Enable 5V for active antenna" +msgstr "Povolit 5V pro aktivní anténu" + +# +msgid "Enable EIT EPG" +msgstr "Povolit EIT EPG" + +# +msgid "Enable MHW EPG" +msgstr "Povolit MHW EPG" + +# +msgid "Enable Netmed EPG" +msgstr "Povolit Netmed EPG" + +msgid "Enable OK for channel selection" +msgstr "Povolit OK pro výbÄ›r kanálu" + +msgid "Enable ViaSat EPG" +msgstr "Povolit ViaSat EPG" + +# +msgid "Enable Virgin EPG" +msgstr "Povolit Virgin EPG" + +# +msgid "Enable Wake On LAN" +msgstr "Povolit Wake On LAN" + +msgid "Enable auto fast scan" +msgstr "Povolit automatický Fast scan" + +msgid "Enable bouquet selection in multi-EPG" +msgstr "Povolit výbÄ›r pÅ™ehledu pÅ™i spuÅ¡tÄ›ní multi-EPG" + +msgid "Enable freesat EPG" +msgstr "Povolit freesat EPG" + +# +msgid "Enable multiple bouquets" +msgstr "Povolit vícenásobné pÅ™ehledy" + +# +msgid "Enable parental control" +msgstr "Povolit rodiÄovský zámek" + +msgid "Enable teletext caching" +msgstr "Povolit caching teletextu" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "Povolit pÅ™epínání s CH+/-, B+/-, P+/-" + +# +msgid "Enabled" +msgstr "Povolen" + +# +msgid "Encrypted: " +msgstr "ZabezpeÄeno:" + +# +msgid "Encryption" +msgstr "ZabezpeÄení" + +# +msgid "Encryption key" +msgstr "Å ifrovací klíÄ" + +# +msgid "Encryption key type" +msgstr "KlíÄ:" + +# +msgid "Encryption:" +msgstr "ZabezpeÄení:" + +# +msgid "End time" +msgstr "ÄŒas konce" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "Konec ignorování ÄasovaÄe neaktivity" + +# +msgid "End time to ignore shutdown in standby" +msgstr "Konec ignorování vypnutí ve standby" + +# +msgid "English" +msgstr "Anglicky" + +msgid "Enigma2 skin selector" +msgstr "Enigma2 výbÄ›r skinu" + +# +msgid "Enter main menu..." +msgstr "Hlavní menu..." + +# +msgid "Enter pin code" +msgstr "Zadejte pin kód" + +# +msgid "Enter the service pin" +msgstr "Zadejte programový PIN" + +# +msgid "Equal to" +msgstr "stejné s" + +# +msgid "Error" +msgstr "Chyba" + +# +msgid "Error code" +msgstr "Kód chyby" + +# +msgid "Error executing plugin" +msgstr "Chyba pÅ™i provádÄ›ní pluginu" + +# +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Chyba: %s\n" +"opakovat?" + +# +msgid "Estonian" +msgstr "Estonsky" + +msgid "Ethernet network interface" +msgstr "Ethernet síťové rozhraní" + +msgid "Event font size (relative to skin size)" +msgstr "Velikost písma pro událost (relativnÄ› k velikosti skinu)" + +# +msgid "Event view" +msgstr "Zobrazení události" + +# +msgid "Event view menu" +msgstr "Menu pÅ™ehledu událostí" + +# +msgid "Everywhere" +msgstr "vÅ¡ude" + +# +msgid "Exceeds dual layer medium!" +msgstr "PÅ™ekraÄuje kapacitu dvouvrstvého média!" + +# +msgid "Execution finished!!" +msgstr "DokonÄeno!" + +# +msgid "Execution progress:" +msgstr "Provádí se:" + +# +msgid "Exif" +msgstr "" + +# +msgid "Exit" +msgstr "UkonÄit" + +msgid "Exit EPG" +msgstr "Zavřít EPG" + +# +msgid "Exit editor" +msgstr "ukonÄit editor" + +msgid "Exit input device selection." +msgstr "Zavřít výbÄ›r vstupních zařízení" + +msgid "Exit media player?" +msgstr "Zavřít pÅ™ehrávaÄ?" + +# +msgid "Exit mediaplayer" +msgstr "UkonÄit pÅ™ehrávaÄ médií" + +# +msgid "Exit movie list" +msgstr "Zavřít seznam filmů" + +msgid "Exit movie player?" +msgstr "Zavřít pÅ™ehrávaÄ?" + +# +msgid "Exit nameserver configuration" +msgstr "Zavřít konfiguraci DNS" + +# +msgid "Exit network interface list" +msgstr "Zavřít seznam síťových rozhraní" + +# +msgid "Exit network wizard" +msgstr "UkonÄit síťového průvodce" + +# +msgid "Exit the wizard" +msgstr "UkonÄit průvodce" + +msgid "Expert" +msgstr "expertní" + +msgid "Extend sleeptimer 15 minutes" +msgstr "PÅ™idat 15 minut k ÄasovaÄi usínání" + +# +msgid "Extended Software" +msgstr "Rozšířené programy" + +# +msgid "Extended Software Plugin" +msgstr "Plugin rozšíření programů" + +# +msgid "Extended network setup plugin..." +msgstr "Plugin pro rozšířené nastavování sítÄ›..." + +# +msgid "Extended setup..." +msgstr "Rozšířené nastavení..." + +# +msgid "Extensions" +msgstr "Rozšíření" + +# +msgid "Extensions management" +msgstr "Správa rozšíření" + +msgid "External PiP" +msgstr "Externí PiP" + +msgid "External subtitle color" +msgstr "Barva externích titulků" + +msgid "Extra motor options" +msgstr "Další nastavení motoru" + +# +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "" + +# +msgid "Factory reset" +msgstr "Tovární nastavení" + +# +msgid "Failed" +msgstr "Selhalo" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "Selhal zápis do /tmp/positionersetup.log: " + +# +#, python-format +msgid "Fan %d" +msgstr "vent: %d" + +# +#, python-format +msgid "Fan %d PWM" +msgstr "PWM ventilátoru %d" + +# +#, python-format +msgid "Fan %d voltage" +msgstr "NapÄ›tí ventilátoru %d" + +msgid "Fan operation" +msgstr "Režim ventilátoru" + +msgid "Fan speed" +msgstr "Rychlost ventilátoru" + +# +msgid "Fast" +msgstr "Rychle" + +# +msgid "Fast DiSEqC" +msgstr "Rychlý DiSEqC" + +# +msgid "Fast Scan" +msgstr "Fast Scan" + +# +msgid "Fast epoch" +msgstr "Rychlé období" + +# +msgid "Fast forward speeds" +msgstr "Rychlosti pÅ™etáÄení vpÅ™ed" + +# +msgid "Favourites" +msgstr "Oblíbené" + +msgid "File appears to be busy.\n" +msgstr "Soubor se zdá být zaneprázdnÄ›n.\n" + +# +msgid "Filesystem check" +msgstr "Kontrola souborového systému" + +msgid "Final position at" +msgstr "KoneÄná pozice na" + +msgid "Final position at index" +msgstr "KoneÄná pozice na indexu" + +msgid "Fine movement" +msgstr "Jemné natáÄení" + +# +msgid "Finetune" +msgstr "Jemné ladÄ›ní" + +# +msgid "Finished" +msgstr "DokonÄeno" + +# +msgid "Finished configuring your network" +msgstr "Konfigurace sítÄ› dokonÄena" + +msgid "Finished restarting your network" +msgstr "DokonÄeno restartování sítÄ›" + +# +msgid "Finnish" +msgstr "Finsky" + +# +msgid "Fixed" +msgstr "Pevná" + +# +msgid "Flash" +msgstr "Nahrát" + +# +msgid "Flashing failed" +msgstr "Nahrání selhalo" + +# +msgid "Following tasks will be done after you press OK!" +msgstr "Následující úlohy budou provedeny po stisknutí OK!" + +# +msgid "Format" +msgstr "Formát" + +msgid "Forward volume keys" +msgstr "PÅ™edávat hlasitost" + +# +msgid "Frame size in full view" +msgstr "Velikost rámeÄku pÅ™i plném zobrazení" + +# +msgid "French" +msgstr "Francouzsky" + +# +msgid "Frequency" +msgstr "Frekvence" + +# +msgid "Frequency bands" +msgstr "FrekvenÄní pásma" + +# +msgid "Frequency scan step size(khz)" +msgstr "FrekvenÄní prohledávání po (khz)" + +# +msgid "Frequency steps" +msgstr "FrekvenÄní kroky" + +msgid "Frequency:" +msgstr "Frekvence:" + +# +msgid "Fri" +msgstr "Pá" + +# +msgid "Friday" +msgstr "Pátek" + +msgid "From :" +msgstr "Z :" + +# +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Frontprocesor verze: %d" + +# +msgid "Full transparency" +msgstr "Průhledné" + +msgid "Fulview resulution" +msgstr "Plné rozliÅ¡ení" + +msgid "Function of OK button" +msgstr "Funkce tlaÄítka OK" + +# +msgid "Further Options" +msgstr "Další možnosti" + +# +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"Pro uplatnÄ›ní skinu je potÅ™eba restartovat GUI\n" +"Chcete nyní restartovat GUI?" + +# +msgid "Gateway" +msgstr "Brána" + +# +msgid "General AC3 delay" +msgstr "Hlavní AC3 zpoždÄ›ní" + +# +msgid "General PCM delay" +msgstr "Hlavní PCM zpoždÄ›ní" + +# +msgid "Genre" +msgstr "Žánr" + +# +msgid "German" +msgstr "NÄ›mecky" + +msgid "Get latest experimental image" +msgstr "Získat poslední experimentální image" + +msgid "Get latest release image" +msgstr "Získat poslední uvolnÄ›né image" + +# +msgid "Getting plugin information. Please wait..." +msgstr "Získávám informace o pluginu. Prosím, Äekejte..." + +# +msgid "Go down the list" +msgstr "v seznamu dolů" + +# +msgid "Go to first movie or last item" +msgstr "na první film nebo poslední položku" + +# +msgid "Go to first movie or top of list" +msgstr "na první film nebo zaÄátek seznamu" + +msgid "Go to first service" +msgstr "PÅ™ejít na první program" + +msgid "Go to last service" +msgstr "PÅ™ejít na poslední program" + +msgid "Go to next event" +msgstr "PÅ™ejít na další událost" + +msgid "Go to next page of service" +msgstr "PÅ™ejít na další stránku programu" + +msgid "Go to previous event" +msgstr "PÅ™ejít na pÅ™edchozí událost" + +msgid "Go to previous page of service" +msgstr "PÅ™ejít na pÅ™edchozí stránku programu" + +# +msgid "Go up the list" +msgstr "v seznamu nahoru" + +msgid "Goto" +msgstr "PÅ™ejít na" + +# +msgid "Goto 0" +msgstr "Jít na pozici 0" + +msgid "Goto :" +msgstr "Na:" + +msgid "Goto X" +msgstr "PÅ™ejít na X" + +msgid "Goto index position" +msgstr "PÅ™ejít na indexovou pozici" + +msgid "Goto next day of events" +msgstr "PÅ™ejít na další den" + +msgid "Goto next page of events" +msgstr "PÅ™ejít na další stránku událostí" + +# +msgid "Goto position" +msgstr "Jdi na pozici" + +msgid "Goto previous day of events" +msgstr "PÅ™ejít na pÅ™edchozí den" + +msgid "Goto previous page of events" +msgstr "PÅ™ejít na pÅ™edchozí stránku událostí" + +msgid "Goto specific date/time" +msgstr "PÅ™ejít na zadané datum/Äas" + +msgid "GotoX calibration" +msgstr "Kalibrace PÅ™ejít na X" + +msgid "GraphMultiEpg Settings" +msgstr "Nastavení GraphMultiEPG" + +# +msgid "Graphical Multi EPG" +msgstr "Grafická Multi EPG" + +# +msgid "Greek" +msgstr "Řecky" + +# +msgid "Green boost" +msgstr "Zesílení zelené" + +msgid "Guard interval" +msgstr "Ochranný interval" + +msgid "HD list" +msgstr "Seznam HD" + +# +msgid "HDMI-CEC setup" +msgstr "Nastavení HDMI-CEC" + +msgid "Handle standby from TV" +msgstr "Zachytávat standby z TV" + +msgid "Handle wakeup from TV" +msgstr "Zachytávat probouzení z TV" + +# +msgid "Hard disk" +msgstr "Pevný disk" + +# +msgid "Hard disk setup" +msgstr "Nastavení pevného disku" + +# +msgid "Hard disk standby after" +msgstr "Uspat pevný disk po" + +# +msgid "Harddisk" +msgstr "Pevný disk" + +msgid "Hardware: " +msgstr "Hardware: " + +msgid "Hebrew" +msgstr "Hebrejsky" + +msgid "Helps setting up your dish" +msgstr "Pomáhá nastavit parabolu" + +msgid "Hidden network" +msgstr "Skrytá síť" + +msgid "Hide CI messages" +msgstr "Skrýt CI zprávy" + +msgid "Hide channel list in radio mode" +msgstr "Skrýt seznam programů v radio módu" + +msgid "Hide known extensions" +msgstr "Nezobrazovat známé přípony" + +msgid "Hide number markers" +msgstr "Skrýt Äíslo znaÄky" + +# +msgid "Hide player" +msgstr "Skrýt pÅ™ehrávaÄ" + +# +msgid "Hide zap errors" +msgstr "Skrýt chyby pÅ™i pÅ™epínání" + +msgid "Hierarchy info" +msgstr "Informace o hierarchii" + +# +msgid "Hierarchy information" +msgstr "Hierarchické informace" + +# +msgid "High bitrate support" +msgstr "Podpora High bitrate" + +msgid "Hold screen" +msgstr "Zachytit obrazovku" + +# +msgid "Hold till locked" +msgstr "PoÄkat na uzamÄení" + +# +msgid "Home" +msgstr "domů" + +# +msgid "Horizontal" +msgstr "Horizontální" + +msgid "Horizontal turning speed" +msgstr "Horizontální rychlost ladÄ›ní" + +# +msgid "How many minutes do you want to record?" +msgstr "Kolik minut chcete nahrát?" + +# +msgid "Hue" +msgstr "Odstín" + +# +msgid "Hungarian" +msgstr "MaÄarsky" + +msgid "IP address" +msgstr "IP adresa" + +# +msgid "ISO file is too large for this filesystem!" +msgstr "soubor ISO je příliÅ¡ veliký pro tento systém" + +# +msgid "ISO path" +msgstr "umístÄ›ní ISO souboru" + +# +msgid "Icons" +msgstr "ikony" + +# +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"Pokud vidíte, že je nÄ›co Å¡patného s\n" +"vaším scart propojením, stisknÄ›te OK pro návrat." + +# +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"Pokud má VaÅ¡e TV rozšířené nastavení jasu a kontrastu, vypnÄ›te ho. Pokud je v menu položka nazvaná jako \"dynamické\", nastavte ji na standardní hodnotu. Nastavte stupeň podsvÄ›tlení dle Vaší chuti. Snižte kontrast na Vaší TV na nejnižší hodnotu.\n" +"Poté nastavte svÄ›tlost na nejnižší hodnotu, ale ujistÄ›te se, že poslední dva odstíny Å¡edé jsou rozpoznatelné.\n" +"NemÄ›jte obavy o svÄ›tlé stíny. Budou nastaveny v dalším kroku.\n" +"Pokud jste spokojeni s výsledkem, stisknÄ›te OK." + +msgid "Image: " +msgstr "" + +# +msgid "Immediate shutdown" +msgstr "Ihned vypnout" + +# +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "Aby mohla být zaznamenána událost z ÄasovaÄe, bylo pÅ™epnuto na nahrávaný program!\n" + +# +msgid "In progress" +msgstr "PrůbÄ›h" + +msgid "Inactivity Sleeptimer" +msgstr "ÄŒasovaÄ neaktivity" + +# +msgid "Include AIT in http streams" +msgstr "VÄetnÄ› AIT v http streamech" + +# +msgid "Include ECM in http streams" +msgstr "VÄetnÄ› ECM v http streamech" + +# +msgid "Include EIT in http streams" +msgstr "VÄetnÄ› EIT v http streamech" + +msgid "Incorrect type service for PiP!" +msgstr "Nekorektní typ služby pro PiP!" + +# +msgid "Increased voltage" +msgstr "Zvýšit napÄ›tí" + +# +msgid "Index" +msgstr "Index" + +msgid "Index allocated:" +msgstr "Index pÅ™iÅ™azen:" + +# +msgid "Info" +msgstr "Informace" + +# +msgid "Info bar" +msgstr "InfoBar" + +# +msgid "Info bar timeout" +msgstr "Doba po které skrývat infobar" + +msgid "Infobar frontend data source" +msgstr "Zdroj Infobar frontend dat" + +# +msgid "Information" +msgstr "Informace" + +# +msgid "Init" +msgstr "Init" + +# +msgid "Initial fast forward speed" +msgstr "PoÄáteÄní rychlost pro pÅ™etáÄení dopÅ™edu" + +# +msgid "Initial location in new timers" +msgstr "PoÄáteÄní umístÄ›ní v nových ÄasovaÄích" + +msgid "Initial lock ratio" +msgstr "Zachovat původní pomÄ›r" + +# +msgid "Initial rewind speed" +msgstr "PoÄáteÄní rychlost pro pÅ™etáÄení zpÄ›t" + +msgid "Initial signal quality" +msgstr "PoÄáteÄní kvalita signálu" + +msgid "Initial signal quality:" +msgstr "PoÄáteÄní kvalita signálu:" + +# +msgid "Initialization" +msgstr "Inicializace" + +# +msgid "Initialize" +msgstr "Inicializovat" + +# +msgid "Initializing storage device..." +msgstr "Inicializace zařízení pro ukládání..." + +# +msgid "Input" +msgstr "Zadání" + +msgid "Input device setup" +msgstr "Nastavení vstupního zařízení" + +msgid "Input devices" +msgstr "Vstupní zařízení" + +# +msgid "Install" +msgstr "Instalovat" + +# +msgid "Install a new image with a USB stick" +msgstr "Instalovat nové image pomocí USB zařízení" + +# +msgid "Install a new image with your web browser" +msgstr "Instalovat nové image pomocí web prohlížeÄe" + +# +msgid "Install channel list" +msgstr "Instalovat seznam programů" + +# +msgid "Install extensions" +msgstr "Instalovat rozšíření" + +# +msgid "Install extensions." +msgstr "Instalovat rozšíření." + +# +msgid "Install local extension" +msgstr "Instalovat místní rozšíření" + +# +msgid "Install picons on" +msgstr "Instalovat picons do" + +# +msgid "Install softcam" +msgstr "Instalovat softcam" + +msgid "Installation has completed." +msgstr "Instalace byla dokonÄena." + +# +msgid "Installation or removal has completed." +msgstr "Instalace nebo odstranÄ›ní dokonÄeno." + +# +msgid "Installing" +msgstr "Instaluji" + +# +msgid "Installing software..." +msgstr "Instalace software..." + +# +msgid "Instant recording location" +msgstr "Okamžité nahrávání" + +# +msgid "Instant recording..." +msgstr "Okamžité nahrávání..." + +# +msgid "Interface: " +msgstr "Interface: " + +# +msgid "Intermediate" +msgstr "stÅ™ední" + +# +msgid "Internal flash" +msgstr "VnitÅ™ní flash" + +# +msgid "Internal hdd only" +msgstr "pouze interní disk" + +# +msgid "Interval between keys when repeating:" +msgstr "Rychlost opakování:" + +# +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Zvolen neplatný adresář: %s" + +# +msgid "Invalid location" +msgstr "Neplatné umístÄ›ní" + +# +msgid "Invalid transponder data" +msgstr "neplatná data transponderu" + +# +msgid "Inversion" +msgstr "Inverze" + +# +msgid "Invert" +msgstr "Inverze" + +# +msgid "Ipkg" +msgstr "Ipkg" + +msgid "Is this setting ok?" +msgstr "Použít toto nastavení?" + +# +msgid "Is this video mode ok?" +msgstr "Je tento videomód vpořádku?" + +# +msgid "Italian" +msgstr "Italsky" + +msgid "Items per page " +msgstr "Položek na stránku" + +msgid "Items per page for list screen" +msgstr "Položek na stránku pro seznam" + +# +msgid "Job overview" +msgstr "PÅ™ehled práce" + +msgid "Jump to beginning of list" +msgstr "Na zaÄátek seznamu" + +# +msgid "Jump to end of list" +msgstr "PÅ™ejít na konec seznamu" + +# +msgid "Jump to next marked position" +msgstr "Na další oznaÄenou pozici" + +# +msgid "Jump to previous marked position" +msgstr "Na pÅ™edchozí oznaÄenou pozici" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +msgid "Just scale" +msgstr "Celá obrazovka (nedodržuje pomÄ›r stran)" + +# +msgid "Keep service" +msgstr "zůstat na programu" + +msgid "Kernel version: " +msgstr "Verze kernelu: " + +# +msgid "Keyboard" +msgstr "Klávesnice" + +# +msgid "Keyboard map" +msgstr "Rozložení kláves" + +# +msgid "Keyboard setup" +msgstr "Nastavení klávesnice" + +# +msgid "LAN adapter" +msgstr "Síťová karta" + +msgid "LAN connection" +msgstr "LAN pÅ™ipojení" + +# +msgid "LNB" +msgstr "LNB" + +# +msgid "Language" +msgstr "Jazyk" + +# +msgid "Language selection" +msgstr "VýbÄ›r jazyka" + +# +msgid "Last config" +msgstr "Poslední konfigurace" + +# +msgid "Last speed" +msgstr "Poslední rychlost" + +msgid "Last upgrade: " +msgstr "Poslední aktualizace: " + +# +msgid "Latest Commits" +msgstr "Poslední zmÄ›ny" + +# +msgid "Latitude" +msgstr "ZemÄ›pisná šířka" + +# +msgid "Latvian" +msgstr "LotyÅ¡sky" + +# +msgid "Leave DVD player?" +msgstr "Zavřít DVD pÅ™ehrávaÄ?" + +# +msgid "Left" +msgstr "Vlevo" + +msgid "Left from servicename" +msgstr "Nalevo od názvu kanálu" + +msgid "Leisure hobbies" +msgstr "Volný Äas, zájmy, koníÄky" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Letterbox" + +msgid "Letterbox zoom" +msgstr "" + +# +msgid "Limit character set for recording filenames" +msgstr "Omezená znaková sada pro názvy nahrávaných souborů" + +# +msgid "Limit east" +msgstr "Východní limit" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "Omezí znaky použité v názvech souborů pÅ™i nahrávání na (7-bitové) ascii. To zajistí kompatibilitu s operaÄními systémy nebo souborovými systémy s omezenou znakovou sadou." + +# +msgid "Limit west" +msgstr "Západní limit" + +msgid "Limits cancelled" +msgstr "Limity zruÅ¡eny" + +msgid "Limits enabled" +msgstr "Limity povoleny" + +# +msgid "Limits off" +msgstr "Vypnout limity" + +# +msgid "Limits on" +msgstr "Zapnout limity" + +# +msgid "Link quality:" +msgstr "Kvalita spojení:" + +# +msgid "Link:" +msgstr "Spojení:" + +# +msgid "Linked titles with a DVD menu" +msgstr "PÅ™ipojené tituly s DVD nabídkou" + +# +msgid "List EPG functions..." +msgstr "Seznam funkcí EPG..." + +msgid "List available networks" +msgstr "Seznam dostupných sítí" + +msgid "List mode" +msgstr "Seznam" + +# +msgid "List of storage devices" +msgstr "Seznam záznamových zařízení" + +msgid "List type" +msgstr "Typ seznamu" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "Seznam verze %d, nalezen %d kanál" +msgstr[1] "Seznam verze %d, nalezeny %d kanály" +msgstr[2] "Seznam verze %d, nalezeno %d kanálů" + +# +msgid "Listen to the radio..." +msgstr "Poslech rádia..." + +msgid "Lists reloaded!" +msgstr "" + +# +msgid "Lithuanian" +msgstr "Litevsky" + +# +msgid "Load" +msgstr "NaÄíst" + +msgid "Load Length of Movies in Movielist" +msgstr "Zobrazovat v seznamu filmů délku filmů" + +# +msgid "Load length of movies in movie list" +msgstr "Vkládat délku filmů do seznamu filmů" + +# +msgid "Load playlist" +msgstr "NaÄíst playlist" + +# +msgid "Local network" +msgstr "Místní síť" + +# +msgid "Location" +msgstr "UmístÄ›ní" + +# +msgid "Location for instant recordings" +msgstr "Okamžité nahrávání" + +msgid "Lock ratio" +msgstr "Zachovat pomÄ›r" + +# +msgid "Lock:" +msgstr "Zámek:" + +# +msgid "Log results to harddisk" +msgstr "Protokol výsledků na pevný disk" + +msgid "Long filenames" +msgstr "dlouhé názvy souborů" + +# +msgid "Long key press" +msgstr "Dlouhé stlaÄení klávesy" + +# +msgid "Longitude" +msgstr "ZemÄ›pisná délka" + +# +msgid "Loop through to" +msgstr "propojeno s" + +msgid "Luxembourgish" +msgstr "Lucembursky" + +# +msgid "MMC card" +msgstr "MMC karta" + +# +msgid "MORE" +msgstr "VÃCE" + +# +msgid "Main menu" +msgstr "Hlavní menu" + +# +msgid "Maintain old EPG data for" +msgstr "Udržovat stará EPG data" + +# +msgid "Make this mark an 'in' point" +msgstr "UdÄ›lat z této znaÄky 'in' bod" + +# +msgid "Make this mark an 'out' point" +msgstr "UdÄ›lat z této znaÄky 'out' point" + +# +msgid "Make this mark just a mark" +msgstr "UdÄ›lat z této znaÄky jen znaÄku" + +# +msgid "Manage extensions" +msgstr "Správa rozšíření" + +# +msgid "Manage your receiver's software" +msgstr "Spravujte software VaÅ¡eho pÅ™ijímaÄe " + +# +msgid "Manual" +msgstr "RuÄnÄ›" + +# +msgid "Manual Scan" +msgstr "RuÄní prohledávání" + +msgid "Manual configuration" +msgstr "RuÄní konfigurace" + +# +msgid "Manual scan" +msgstr "RuÄní prohledávání" + +# +msgid "Manual transponder" +msgstr "ruÄnÄ› definovaný transponder" + +# +msgid "Manufacturer" +msgstr "Výrobce" + +# +msgid "Margin after recording (minutes)" +msgstr "Rezerva po nahrávání (minuty)" + +# +msgid "Margin before recording (minutes)" +msgstr "Rezerva pÅ™ed nahráváním (minuty)" + +msgid "Max memory positions" +msgstr "Maximum pozic pamÄ›ti" + +# +msgid "Max. bitrate: " +msgstr "Max. datový tok: " + +# +msgid "Media player" +msgstr "PÅ™ehrávaÄ médií" + +# +msgid "Media scanner" +msgstr "Prohledávání médií" + +# +msgid "Medium is not a writeable DVD!" +msgstr "Médiem není zapisovatelné DVD!" + +# +msgid "Medium is not empty!" +msgstr "Médium není prázdné!" + +# +msgid "Memory" +msgstr "Paměť" + +msgid "Memory index" +msgstr "Pozice (index) pamÄ›ti" + +# +msgid "Menu" +msgstr "Menu" + +# +msgid "Message" +msgstr "Zpráva" + +# +msgid "Message..." +msgstr "Zpráva..." + +#, python-format +msgid "Minimum age %d years" +msgstr "minimální vÄ›k %d roků" + +msgid "Minimum send interval" +msgstr "Minimální interval posílání" + +msgid "Missing " +msgstr "Chybí" + +# +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Mód" + +# +msgctxt "Video output mode" +msgid "Mode" +msgstr "Mód" + +# +msgid "Model: " +msgstr "Model:" + +# +msgid "Modulation" +msgstr "Modulace" + +# +msgid "Modulator" +msgstr "Modulátor" + +# +msgid "Mon" +msgstr "Po" + +# +msgid "Mon-Fri" +msgstr "Po - Pá" + +# +msgid "Monday" +msgstr "PondÄ›lí" + +# +msgid "Mosquito noise reduction" +msgstr "Bodová redukce Å¡umu (MNR)" + +# +msgid "Mount" +msgstr "PÅ™ipojit" + +# +msgid "Move" +msgstr "PÅ™esunout" + +# +msgid "Move PiP to main picture" +msgstr "PÅ™esunout PIP do hlavního okna" + +# +msgid "Move Picture in Picture" +msgstr "Posunout obraz v obraze" + +# +msgid "Move east" +msgstr "Posun východnÄ›" + +msgid "Move to other directory" +msgstr "pÅ™esunout do jiné složky" + +msgid "Move to position X" +msgstr "NatáÄí se na pozici X" + +# +msgid "Move west" +msgstr "Posun západnÄ›" + +msgid "Moved to position 0" +msgstr "NatáÄí se na pozici 0" + +msgid "Moved to position at index" +msgstr "NatoÄeno na pozici podle indexu" + +msgid "Movement" +msgstr "NatáÄení" + +msgid "Movie List Configuration" +msgstr "Konfigurace seznamu filmů" + +msgid "Movie Selection" +msgstr "VýbÄ›r filmů" + +msgid "Movie list configuration" +msgstr "Nastavení seznamu filmů" + +# +msgid "Movie location" +msgstr "UmístÄ›ní souboru" + +msgid "Movie selection" +msgstr "VýbÄ›r filmů" + +msgid "Movie/Drama" +msgstr "film/drama" + +# +msgid "Movielist menu" +msgstr "Nabídka seznamu filmů" + +msgid "Moving" +msgstr "NatáÄení" + +msgid "Moving east ..." +msgstr "NatáÄení na východ ..." + +msgid "Moving to position" +msgstr "NatáÄení na pozici" + +msgid "Moving west ..." +msgstr "NatáÄení na západ ..." + +# +msgid "Multi EPG" +msgstr "Multi EPG" + +# +msgid "Multi-EPG bouquet selection" +msgstr "Volba pÅ™ehledu pÅ™i spuÅ¡tÄ›ní Multi-EPG" + +# +msgid "Multimedia" +msgstr "Multimédia" + +# +msgid "Multiple service support" +msgstr "Podpora vícenásobného programu" + +msgid "Multiplex" +msgstr "Multiplex" + +# +msgid "Multisat" +msgstr "více satelitů" + +# +msgid "Multisat all select" +msgstr "Multisat vybrat vÅ¡e" + +msgid "Music/Ballet/Dance" +msgstr "hudba/balet/tanec" + +# +msgid "Mute" +msgstr "ZtiÅ¡it" + +# +msgid "N/A" +msgstr "Není k dispozici" + +# +msgid "NEXT" +msgstr "DALÅ Ã" + +# +msgid "NFI image flashing" +msgstr "Nahrát NFI image" + +# +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "Nahrátí NFI image bylo dokonÄeno. ZmáÄknÄ›te Žluté pro restart pÅ™ijímaÄe!" + +msgid "NIM" +msgstr "" + +# +msgid "NOW" +msgstr "NYNÃ" + +# +msgid "NTSC" +msgstr "NTSC" + +# +msgid "Name" +msgstr "Jméno" + +# +msgid "Nameserver" +msgstr "DNS server" + +# +#, python-format +msgid "Nameserver %d" +msgstr "DNS server %d" + +# +msgid "Nameserver settings" +msgstr "Nastavení DNS" + +# +msgid "Nameserver setup" +msgstr "Nastavení DNS" + +# +msgid "Namespace" +msgstr "" + +# +msgid "Netmask" +msgstr "Síťová maska" + +# +msgid "Network" +msgstr "Síť" + +# +msgid "Network ID" +msgstr "Network ID" + +# +msgid "Network configuration..." +msgstr "Nastavení sítÄ›..." + +# +msgid "Network mount" +msgstr "Síťové pÅ™ipojení" + +# +#, python-format +msgid "Network mount %s" +msgstr "Síťové pÅ™ipojení %s" + +msgid "Network name (SSID)" +msgstr "Název sítÄ› (SSID)" + +# +msgid "Network scan" +msgstr "Prohledávání sítÄ›" + +# +msgid "Network setup" +msgstr "Nastavení sítÄ›" + +# +msgid "Network test" +msgstr "Test sítÄ›" + +# +msgid "Network test..." +msgstr "Test sítÄ›..." + +msgid "Network test: " +msgstr "Test sítÄ›: " + +# +msgid "Network wizard" +msgstr "Pomocník sítÄ›" + +# +msgid "Network:" +msgstr "Síť:" + +# +msgid "New" +msgstr "Nové programy" + +msgid "New PIN" +msgstr "Nový PIN" + +# +msgid "New version:" +msgstr "Nová verze:" + +msgid "News Current Affairs" +msgstr "zpravodajství, publicistika " + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "Další" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "Další" + +# +msgid "No" +msgstr "Ne" + +# +msgid "No (supported) DVDROM found!" +msgstr "Nenalezena žádná (podporovaná) DVDROM!" + +# +msgid "No Connection" +msgstr "Žádné pÅ™ipojení" + +# +msgid "No HDD found or HDD not initialized!" +msgstr "Žádný HDD nenalezen nebo není inicializován!" + +# +msgid "No backup needed" +msgstr "Záloha není potÅ™eba" + +# +msgid "No cable tuner found!" +msgstr "Žádný kabelový tuner nenalezen!" + +# +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Žádná data na transponderu!\n" +"(VyprÅ¡el Äasový limit Ätení PAT)" + +# +msgid "No delay" +msgstr "Žádné" + +# +msgid "No description available." +msgstr "Žádný popis k dispozici." + +# +msgid "No details for this image file" +msgstr "Žádné detaily o tomto image souboru" + +# +msgid "No displayable files on this medium found!" +msgstr "Žádné zobrazitelné soubory na tomto médiu nebyly nalezeny!" + +# +msgid "No event info found, recording indefinitely." +msgstr "Žádná informace o programu. NekoneÄné nahrávání." + +# +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "Rychlé pÅ™etáÄení není nyní možné.. ale můžete použít Äíselná tlaÄítka pro pÅ™eskoÄení dopÅ™edu/dozadu!" + +msgid "No free index available" +msgstr "Žádný volný index k dispozici" + +# +msgid "No free tuner!" +msgstr "Žádný volný tuner!" + +# +msgid "No network connection available." +msgstr "Žádné síťové pÅ™ipojení k dispozici." + +# +msgid "No networks found" +msgstr "Žádné sítÄ› nenalezeny" + +msgid "No new plugins found" +msgstr "Zádný nový plugin nenalezen." + +# +msgid "No positioner capable frontend found." +msgstr "Nebyl nalezen žádný vhodný pozicioner." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "Nejsou nakonfigurovány žádné satelity. Zkontrolujte nastavení tuneru." + +msgid "No service" +msgstr "Zádný kanál" + +# +msgid "No services/providers selected" +msgstr "Žádný program/poskytovatel není vybrán" + +# +msgid "No standby" +msgstr "Neusínat" + +msgid "No suitable sat tuner found!" +msgstr "Nenalezen žádný vhodný tuner!" + +# +msgid "No tags are set on these movies." +msgstr "Tyto soubory nemají nastavené žádné tagy. " + +# +msgid "No timeout" +msgstr "Neskrývat" + +# +msgid "No to all" +msgstr "Ne pro vÅ¡echny" + +# +msgid "No transparency" +msgstr "Neprůhledné" + +# +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "Žádný tuner není nakofigurován pro používání s diseqc pozicionerem!" + +# +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Není povolen žádný tuner!\n" +"PÅ™ed prohledáváním nejdříve nastavte Váš tuner." + +# +msgid "No updates available" +msgstr " Žádné dostupné aktualizace." + +msgid "No updates available. Please try again later." +msgstr "Žádné aktualizace k dispozici. Zkuste to pozdÄ›ji." + +# +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Nebyl nalezen platný programový PIN!\n" +"Chcete nyní zmÄ›nit PIN?\n" +"Pokud 'Ne' tak ochrana programu zůstane vypnuta!" + +# +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Nebyl nalezen platný PIN nastavení!\n" +"Chcete nyní zmÄ›nit PIN?\n" +"Pokud 'Ne' tak ochrana nastavení zůstane vypnuta!" + +msgid "No wireless networks found! Searching..." +msgstr "Žádné bezdrátové sítÄ› nenalezeny! Vyhledává se..." + +# +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"Žádný funkÄní síťový adaptér nebyl nalezen!\n" +"Zkontrolujte, zda máte pÅ™ipojený síťový kabel a že je VaÅ¡e síť správnÄ› nastavena." + +# +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"Žádný funkÄní bezdrátový síťový adaptér nebyl nalezen!\n" +"Zkontrolujte, zda máte pÅ™ipojený kompatibilní WLAN zařízení a že je VaÅ¡e síť správnÄ› nastavena." + +# +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"Žádný funkÄní bezdrátový síťový adaptér nebyl nalezen!\n" +"Zkontrolujte, zda máte pÅ™ipojeno kompatibilní WLAN zařízení nebo povolte lokální síťový adaptér." + +# +msgid "No, but restart from begin" +msgstr "Ne, jen restartovat od zaÄátku" + +# +msgid "No, do nothing." +msgstr "Ne, nic nedÄ›lej." + +msgid "No, just start my receiver" +msgstr "Ne, pouze spusÅ¥ můj pÅ™ijímaÄ" + +msgid "No, never" +msgstr "Ne, nikdy" + +# +msgid "None" +msgstr "Žádný" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "celá obrazovka (roztažení obrazu vlevo a vpravo)" + +msgid "Normal mode" +msgstr "S obrazem" + +# +msgid "North" +msgstr "Severní" + +# +msgid "Norwegian" +msgstr "Norsky" + +msgid "Not associated" +msgstr "Neasociováno" + +# +msgid "Not configured" +msgstr "nenakonfigurováno" + +# +#, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Nedostatek místa na disku. UvolnÄ›te prostor na disku a zkuste znovu. (%d MB požadováno, %d MB k dispozici)" + +# +msgid "Nothing connected" +msgstr "nic není pÅ™ipojeno" + +# +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Nic k prohledávání!\n" +"PÅ™edtím, než zaÄnete prohledávat kanály, nastavte Váš tuner." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "Nyní" + +# +msgid "Now playing" +msgstr "PÅ™ehrává se" + +# +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Nyní použijte nastavení kontrastu pro nastavení svÄ›tlosti pozadí na nejvyšší hodnotu, ale ujistÄ›te se, že stále vidíte rozdíl mezi dvÄ›ma nejsvÄ›tlejšími odstíny. Pokud jste hotovi, stisknÄ›te OK." + +# +msgid "OK" +msgstr "OK" + +# +msgid "OK, guide me through the upgrade process" +msgstr "OK, provést aktualizaÄním procesem." + +msgid "ONID" +msgstr "" + +msgid "OSD name request" +msgstr "požadavek OSD názvu" + +# +msgid "OSD settings" +msgstr "Nastavení OSD" + +# +msgid "OSD transparency" +msgstr "Průhlednost OSD" + +# +msgid "Off" +msgstr "Vypnuto" + +# +msgid "Offline decode delay (ms)" +msgstr "ZpoždÄ›ní offline dekódování (ms)" + +msgid "Ok" +msgstr "Ok" + +# +msgid "On" +msgstr "Zapnuto" + +msgid "On end of movie" +msgstr "Po skonÄení filmu" + +# +msgid "On end of movie (as menu)" +msgstr "Po skonÄení filmu (jako menu)" + +# +msgid "One" +msgstr "Jeden" + +# +msgid "Only extensions." +msgstr "Pouze rozšíření" + +# +msgid "Only free scan" +msgstr "Hledat pouze volné" + +# +msgid "Open service list" +msgstr "Otevřít pÅ™ehled programů" + +# +msgid "Open the movie list" +msgstr "Otevřít seznam filmů" + +msgid "Orbital position" +msgstr "Orbitální pozice" + +msgid "Original" +msgstr "Originál" + +msgid "Other" +msgstr "Další" + +# +msgid "Output" +msgstr "Výstup" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "PÅ™epsat konfiguraÄní soubory pÅ™i aktualizaci software ?" + +msgid "Overwrite configuration files?" +msgstr "PÅ™epsat konfiguraÄní soubory?" + +# +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "" + +# +msgid "PIDs" +msgstr "PÅ™ehled PID" + +# +msgid "PIN code needed" +msgstr "Je vyžadován PIN" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "" + +# +msgid "Package list update" +msgstr "Aktualizace seznamu doplňků" + +# +msgid "Packet management" +msgstr "Správa doplňků" + +# +msgid "Packet manager" +msgstr "Správce doplňků" + +# +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +msgid "Pan&scan" +msgstr "Pan&Scan" + +# +msgid "Parent directory" +msgstr "RodiÄovský adresář" + +# +msgid "Parental control" +msgstr "RodiÄovský zámek" + +# +msgid "Parental control services editor" +msgstr "Nastavení rodiÄovského zámku" + +# +msgid "Parental control setup" +msgstr "Nastavení rodiÄovského zámku" + +# +msgid "Parental control type" +msgstr "Typ rodiÄovského zámku" + +msgid "Password" +msgstr "Heslo" + +# +msgid "Pause" +msgstr "Pauza" + +# +msgid "Pause movie at end" +msgstr "zastavit film na konci" + +# +msgid "Pause playback" +msgstr "Pauza/pÅ™ehrávání" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "Procenta vlevo" + +msgid "Percentage right" +msgstr "Procenta vpravo" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "Trvale odstranit vÅ¡echny záznamy z koÅ¡e?" + +msgid "Permanently remove all deleted items" +msgstr "Trvale odstranit veÅ¡keré smazané položky" + +msgid "Persian" +msgstr "Persky" + +# +msgid "Phone number" +msgstr "Telefonní Äíslo" + +# +msgid "PiP setup" +msgstr "Nastavení PiP" + +msgid "Picon" +msgstr "Pikony" + +msgid "Picon and service name" +msgstr "Pikony a názvy programů" + +# +msgid "Picture player" +msgstr "PÅ™ehrávaÄ obrázků" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Pillarbox" + +# +msgid "Pilot" +msgstr "" + +# +msgid "Play" +msgstr "PÅ™ehrát" + +# +msgid "Play DVD" +msgstr "pÅ™ehrát DVD" + +# +msgid "Play audio in background" +msgstr "PÅ™ehrávat zvuk na pozadí" + +# +msgid "Play audio-CD..." +msgstr "PÅ™ehrát audio-CD..." + +msgid "Play back media files" +msgstr "PÅ™ehrát soubory" + +# +msgid "Play entry" +msgstr "PÅ™ehrát položku" + +# +msgid "Play from next mark or playlist entry" +msgstr "PÅ™ehrát od další znaÄky/položky v playlistu" + +# +msgid "Play from previous mark or playlist entry" +msgstr "PÅ™ehrát od pÅ™edchozí znaÄky/položky v playlistu" + +# +msgid "Play music..." +msgstr "PÅ™ehrát hudbu..." + +# +msgid "Play next" +msgstr "pÅ™ehrát další" + +msgid "Play next (return to movie list)" +msgstr "pÅ™ehrát další (návrat do seznamu)" + +msgid "Play next (return to previous service)" +msgstr "pÅ™ehrát další (návrat na pÅ™edchozí program)" + +# +msgid "Play previous" +msgstr "pÅ™ehrát pÅ™edchozí" + +# +msgid "Play recorded movies..." +msgstr "PÅ™ehrát nahrané poÅ™ady..." + +# +msgid "Please add titles to the compilation." +msgstr "PÅ™idejte tituly do kompilace." + +# +msgid "Please change recording endtime" +msgstr "Změňte dobu ukonÄení nahrávání" + +# +msgid "Please check your network settings!" +msgstr "Zkontrolujte VaÅ¡e nastavení sítÄ›!" + +# +msgid "Please choose an extension..." +msgstr "Vyberte si z nabídky rozšíření..." + +# +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Nakonfigurujte nebo zkontrolujte DNS servery vyplnÄ›ním požadovaných hodnot.\n" +"Pro pokraÄování stisknÄ›te OK." + +# +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Nakonfigurujte internetové pÅ™ipojení vyplnÄ›ním požadovaných hodnot.\n" +"Pro pokraÄování stisknÄ›te OK." + +msgid "Please connect your receiver to the internet" +msgstr "PÅ™ipojte pÅ™ijímaÄ do internetu" + +# +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Neměňte jakékoliv hodnoty, pokud nevíte, co dÄ›láte!" + +# +msgid "Please enter a name for the new bouquet" +msgstr "Zadejte název pro nový pÅ™ehled" + +# +msgid "Please enter a name for the new marker" +msgstr "Zadejte název pro novou záložku" + +# +msgid "Please enter a new filename" +msgstr "Zadejte nové jméno souboru" + +# +msgid "Please enter filename (empty = use current date)" +msgstr "Zadejte název souboru (prázdné = dneÅ¡ní datum)" + +# +msgid "Please enter name of the new directory" +msgstr "Zadejte jméno nového adresáře" + +msgid "Please enter new name:" +msgstr "Zadejte nový název:" + +# +msgid "Please enter the correct pin code" +msgstr "Zadejte správný PIN" + +msgid "Please enter the old PIN code" +msgstr "Zadejte starý PIN kód" + +# +msgid "Please follow the instructions on the TV" +msgstr "Následujte instrukce na TV" + +# +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "VezmÄ›te na vÄ›domí, že dříve vybrané médium nemohlo být zpřístupnÄ›no a proto byl použit místo nÄ›j standardní adresář." + +# +msgid "Please press OK to continue." +msgstr "StisknÄ›te OK pro pokraÄování." + +msgid "Please select a default EPG type..." +msgstr "Zvolte preferovaný typ EPG..." + +# +msgid "Please select a playlist to delete..." +msgstr "Prosím, vybeberte playlist ke smazání..." + +# +msgid "Please select a playlist..." +msgstr "Prosím, vyberte playlist" + +# +msgid "Please select a sub service..." +msgstr "Prosím vyberte podprogram..." + +# +msgid "Please select a subservice to record..." +msgstr "Prosím, vyberte podprogram pro nahrávání..." + +# +msgid "Please select a subservice..." +msgstr "Prosím vyberte podprogram..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "Zvolte NFI soubor a stisknÄ›te zelené tlaÄítko pro naprogramování!" + +# +msgid "Please select medium to be scanned" +msgstr "Zvolte médium k prohledání" + +# +msgid "Please select medium to use as backup location" +msgstr "Zvolte médium používané pro umístÄ›ní záloh" + +# +msgid "Please select tag to filter..." +msgstr "Zvolte tag do filtru..." + +# +msgid "Please select the movie path..." +msgstr "Vyberte cestu k filmům..." + +# +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Zvolte síťový interface, který chcete používat pro internetové pÅ™ipojení.\n" +"\n" +"StisknÄ›te OK pro pokraÄování." + +# +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Zvolte bezdrátovou síť ke které se chcete pÅ™ipojit.\n" +"\n" +"StisknÄ›te OK pro pokraÄování." + +# +msgid "Please set up tuner A" +msgstr "Prosím, nastavte tuner A" + +# +msgid "Please set up tuner B" +msgstr "Prosím, nastavte tuner B" + +# +msgid "Please set up tuner C" +msgstr "Prosím, nastavte tuner C" + +# +msgid "Please set up tuner D" +msgstr "Prosím, nastavte tuner D" + +# +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Prosím použijte Å¡ipky k posunu okna PiP.\n" +"PÅ™es Bouquet +/- ke zmÄ›nÄ› velikosti okna.\n" +"StisknÄ›te OK k navrácení k TV módu nebo EXIT pro zruÅ¡ení pÅ™esunu." + +# +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "Použijte tlaÄítka Nahoru a Dolů k výbÄ›ru VaÅ¡eho jazyka. Poté stisknÄ›te OK." + +# +msgid "Please wait" +msgstr "Prosím, Äekejte" + +# +msgid "Please wait (downloading channel list)" +msgstr "Prosím, Äekejte (nahrává se seznam programů)" + +# +msgid "Please wait (downloading softcam)" +msgstr "Prosím, Äekejte (nahrává se softcam)" + +# +msgid "Please wait (updating packages)" +msgstr "Prosím, Äekejte (aktualizují se balíÄky)" + +# +msgid "Please wait for activation of your network configuration..." +msgstr "ÄŒekejte prosím na aktivaci Vaší síťové konfigurace..." + +# +msgid "Please wait while scanning is in progress..." +msgstr "ÄŒekejte prosím, dokud probíhá vyhledávání..." + +# +msgid "Please wait while we configure your network..." +msgstr "ÄŒekejte prosím, zatímco my nastavíme VaÅ¡i síť..." + +# +msgid "Please wait while we prepare your network interfaces..." +msgstr "ÄŒekejte prosím, zatímco my pÅ™ipravujeme Váš síťový interface..." + +# +msgid "Please wait while we test your network..." +msgstr "ÄŒekejte prosím, zatímco my testujeme VaÅ¡i síť..." + +msgid "Please wait while your network is restarting..." +msgstr "ÄŒekejte, dokud není síť restartována..." + +# +msgid "Please wait..." +msgstr "Prosím, Äekejte..." + +# +msgid "Please wait... Loading list..." +msgstr "Prosím Äekejte... NaÄítá se seznam..." + +# +msgid "Plugin browser" +msgstr "ProhlížeÄ pluginů" + +# +msgid "Plugin manager activity information" +msgstr "Informace o Äinosti správce pluginů" + +# +msgid "Plugin manager help" +msgstr "NápovÄ›da správy pluginů" + +# +msgid "Plugins" +msgstr "Pluginy" + +msgid "Polarisation" +msgstr "Polarizace" + +msgid "Polarisation:" +msgstr "Polarizace:" + +# +msgid "Polarization" +msgstr "Polarizace" + +# +msgid "Polish" +msgstr "Polsky" + +# +msgid "Port A" +msgstr "Port A" + +# +msgid "Port B" +msgstr "Port B" + +# +msgid "Port C" +msgstr "Port C" + +# +msgid "Port D" +msgstr "Port D" + +# +msgid "Portuguese" +msgstr "Portugalsky" + +# +msgid "Position of completed timers in timerlist" +msgstr "DokonÄené ÄasovaÄe umísÅ¥ovat v seznamu" + +msgid "Position stored at index" +msgstr "Pozice uložena pod index" + +# +msgid "Positioner" +msgstr "Pozicioner" + +# +msgid "Positioner (selecting satellites)" +msgstr "Pozicioner (výbÄ›r satelitů)" + +msgid "Positioner Setup" +msgstr "Nastavení pozicioneru" + +# +msgid "Positioner setup" +msgstr "Nastavení pozicioneru" + +# +msgid "Power threshold in mA" +msgstr "Prahový proud v mA" + +# +msgid "Predefined transponder" +msgstr "pÅ™eddefinovaný transponder" + +msgid "Prefer AC3 track" +msgstr "Preferovat AC3 stopu" + +msgid "Prefer AC3+ track" +msgstr "Preferovat AC3+ stopu" + +msgid "Prefer audio track stored by service" +msgstr "Preferovat audio stopu uloženou kanálem" + +msgid "Prefer graphical DVB subtitles" +msgstr "Preferovat grafické DVB titulky" + +msgid "Prefer subtitles for hearing impaired" +msgstr "Preferovat titulky pro sluchovÄ› postižené" + +msgid "Prefer subtitles stored by service" +msgstr "Preferovat titulky uložené kanálem" + +# +msgid "Preferred tuner" +msgstr "Preferovaný tuner" + +# +msgid "Preferred tuner for recordings" +msgstr "Preferovaný tuner pro nahrávání" + +msgid "Prepare another USB stick for image flashing" +msgstr "PÅ™ipravte další USB zařízení pro nahrání image" + +# +msgid "Preparing... Please wait" +msgstr "PÅ™ipravuji... Prosím Äekejte" + +msgid "Press '0' to toggle PiP mode" +msgstr "StisknÄ›te '0' k pÅ™epnutí PiP módu" + +msgid "Press INFO on your remote control for additional information." +msgstr "StisknÄ›te INFO na dálkovém ovladaÄi pro další informace." + +msgid "Press MENU on your remote control for additional options." +msgstr "StisknÄ›te MENU na VaÅ¡em dálkovém ovladaÄi pro další možnosti." + +# +msgid "Press OK on your remote control to continue." +msgstr "StisknÄ›te OK na dálkovém ovladaÄi pro pokraÄování." + +# +msgid "Press OK to activate the selected skin." +msgstr "StisknÄ›te OK pro aktivaci zvoleného skinu." + +# +msgid "Press OK to activate the settings." +msgstr "StisknÄ›te OK pro aktivaci nastavení." + +# +msgid "Press OK to edit the settings." +msgstr "StisknÄ›te OK pro úpravu nastavení." + +# +#, python-format +msgid "Press OK to get further details for %s" +msgstr "StisknÄ›te OK a získejte detaily pro %s " + +# +msgid "Press OK to scan" +msgstr "StisknÄ›te OK pro prohledávání" + +# +msgid "Press OK to select a provider." +msgstr "StisknÄ›te OK k vybrání poskytovatele." + +# +msgid "Press OK to select satellites" +msgstr "StisknÄ›te OK k vybrání satelitů." + +# +msgid "Press OK to select/deselect a CAId." +msgstr "StisknÄ›te OK pro vybrání/odebrání CAId" + +# +msgid "Press OK to start the scan" +msgstr "StisknÄ›te OK pro spuÅ¡tÄ›ní prohledávání" + +# +msgid "Press OK to toggle the selection" +msgstr "StisknÄ›te OK pro zmÄ›nu oznaÄení" + +# +msgid "Press OK to toggle the selection." +msgstr "StisknÄ›te OK pro zmÄ›nu oznaÄení." + +# +msgid "Press yellow to set this interface as default interface." +msgstr "Stiskem žlutého tlaÄítka nastavíte tento interface jako standardní. " + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "PÅ™edchozí" + +# +msgid "Preview" +msgstr "náhled" + +# +msgid "Preview menu" +msgstr "Náhled menu" + +msgid "Preview selected channel" +msgstr "Náhled vybraného kanálu" + +# +msgid "Primary DNS" +msgstr "Primární DNS" + +# +msgid "Priority" +msgstr "Priorita" + +# +msgid "Process" +msgstr "Provést" + +# +msgid "Progress" +msgstr "PrůbÄ›h" + +msgid "Progress bar left" +msgstr "Pásky vlevo" + +msgid "Progress bar right" +msgstr "Pásky vpravo" + +# +msgid "Properties of current title" +msgstr "Vlastnosti zvoleného titulu" + +# +msgid "Protect services" +msgstr "ZabezpeÄit programy" + +# +msgid "Protect setup" +msgstr "ZabezpeÄit nastavení" + +# +msgid "Provider" +msgstr "Poskytovatel" + +# +msgid "Provider to scan" +msgstr "Poskytovatel k vyhledání" + +# +msgid "Providers" +msgstr "Poskytovatelé" + +msgid "Put TV in standby" +msgstr "PÅ™epínat TV do standby" + +msgid "Put receiver in standby" +msgstr "PÅ™epínat receiver do standby" + +# +msgid "Python frontend for /tmp/mmi.socket" +msgstr "Python frontend pro /tmp/mmi.socket" + +# +msgid "Quick" +msgstr "Rychlý" + +# +msgid "Quick zap" +msgstr "Rychlé pÅ™epínání" + +# +msgid "RF output" +msgstr "RF výstup" + +# +msgid "RGB" +msgstr "RGB" + +# +msgid "Radio" +msgstr "Rádio" + +# +msgid "Ram disk" +msgstr "Ram disk" + +# +msgid "Random" +msgstr "Náhodný" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "hodnocení urÄeno vysíláním - %d" + +msgid "Rating undefined" +msgstr "hodnocení neurÄeno" + +# +msgid "Really close without saving settings?" +msgstr "Opravdu zavřít bez uloženého nastavení?" + +# +msgid "Really delete done timers?" +msgstr "Opravdu smazat dokonÄené ÄasovaÄe?" + +# +msgid "Really exit the subservices quickzap?" +msgstr "Opravdu opustit rychlé pÅ™epínání podprogramů?" + +# +msgid "Really reboot now?" +msgstr "Opravdu provést reboot? " + +# +msgid "Really restart now?" +msgstr "Opravdu nyní restartovat? " + +# +msgid "Really shutdown now?" +msgstr "Opravdu nyní vypnout? " + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "SkuteÄnÄ› aktualizovat frontprocesor a restartovat?" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "SkuteÄnÄ› aktualizovat pÅ™ijímaÄ a restartovat" + +# +msgid "Reboot" +msgstr "Restartovat" + +# +msgid "Rec" +msgstr "Rec" + +# +msgid "Reception settings" +msgstr "Nastavení příjmu" + +# +msgid "Record" +msgstr "Nahrávání a pÅ™ehrávání" + +# +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "Nahrávaný Äas je omezen z důvodu konfliktu ÄasovaÄe %s" + +# +msgid "Recorded files..." +msgstr "Nahrané poÅ™ady..." + +# +msgid "Recording" +msgstr "záznam" + +# +msgid "Recording in progress" +msgstr "Probíhá nahrávání" + +# +msgid "Recording paths" +msgstr "UmístÄ›ní nahrávání" + +msgid "Recording type" +msgstr "Typ nahrávání" + +# +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "Probíhá nahrávání nebo zaÄne za nÄ›kolik sekund!" + +# +msgid "Recordings" +msgstr "Nahrávání" + +# +msgid "Recordings always have priority" +msgstr "Nahrávání má vždy prioritu" + +msgid "Red button..." +msgstr "ÄŒervené tlaÄítko" + +msgid "Reenter new PIN" +msgstr "Zopakujte nový PIN" + +# +msgid "Refresh rate" +msgstr "Obnovovací frekvence" + +# +msgid "Refresh rate selection." +msgstr "Volba obnovovací rychlosti." + +msgid "Regard deep standby as standby" +msgstr "Považovat hluboký spánek za standby" + +# +msgid "Relative" +msgstr "Relativní" + +# +msgid "Reload" +msgstr "Znovu naÄíst" + +# +msgid "Reload black-/white lists" +msgstr "Znovu naÄíst black-/whitelist" + +msgid "Reloading bouquets and services..." +msgstr "Obnovuji pÅ™ehledy a programy..." + +msgid "Remember last service in PiP" +msgstr "Zapamatovat poslední program v PiP" + +msgid "Remember service PIN" +msgstr "Zapamatovat programový PIN" + +# +msgid "Remember these settings for each folder" +msgstr "Zapamatovat nastavení pro každý adresář" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "PÅ™ipomínáme, že jste se rozhodli uložit timeshift soubor." + +# +msgid "Remote control type" +msgstr "Typ dálkového ovládání" + +# +msgid "Removal has completed." +msgstr "OdstranÄ›ní bylo dokonÄeno." + +# +msgid "Remove" +msgstr "Smazat" + +# +msgid "Remove a mark" +msgstr "Odstranit znaÄku" + +# +msgid "Remove a nameserver entry" +msgstr "Odstranit DNS položku" + +# +msgid "Remove bookmark" +msgstr "Smazat záložku" + +msgid "Remove completed timers after (days)" +msgstr "DokonÄené ÄasovaÄe odstraňovat po (dnech)" + +# +msgid "Remove currently selected title" +msgstr "Odstranit vybraný titul" + +msgid "Remove items from trash can after (days)" +msgstr "Položky z koÅ¡e odstraňovat po (dnech)" + +# +msgid "Remove plugins" +msgstr "Odstranit pluginy" + +# +msgid "Remove title" +msgstr "Odebrat titul" + +# +msgid "Removing" +msgstr "OdstranÄ›ní" + +# +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "OdstranÄ›ní adresáře %s se nezdaÅ™ilo. (Možná není prázdný.)" + +msgid "Removing partition table" +msgstr "Odstraňuje se tabulka rozdÄ›lení disku" + +# +msgid "Rename" +msgstr "PÅ™ejmenovat" + +msgid "Repeat" +msgstr "Opakovat" + +# +msgid "Repeat type" +msgstr "Druh opakování" + +# +msgid "Repeating event currently recording... What do you want to do?" +msgstr "Opakovaná událost je právÄ› nahrávána... Co chcete dÄ›lat?" + +# +msgid "Repeats" +msgstr "Opakování" + +# +msgid "Require authentication for http streams" +msgstr "Požadovat ověření pro http stream" + +# +msgid "Required medium type:" +msgstr "Požadovaný typ média:" + +msgid "Rereading partition table" +msgstr "ZnovunaÄítání tabulky rozdÄ›lení disku" + +msgid "Reserved" +msgstr "rezervováno" + +# +msgid "Reset" +msgstr "Reset" + +# +msgid "Reset and renumerate title names" +msgstr "Zresetovat a pÅ™eÄíslovat názvy" + +# +msgid "Reset playback position" +msgstr "resetovat pozici pÅ™ehrávání" + +# +msgid "Reset video enhancement settings to system defaults?" +msgstr "Nastavit pokroÄilá nastavení videa na výchozí nastavení?" + +# +msgid "Reset video enhancement settings to your last configuration?" +msgstr "Nastavit pokroÄilá nastavení videa na Vaší poslední konfiguraci?" + +# +msgid "Resolution" +msgstr "RozliÅ¡ení" + +# +msgid "Restart" +msgstr "Restartovat" + +# +msgid "Restart GUI now?" +msgstr "Restartovat GUI nyní?" + +# +msgid "Restart enigma" +msgstr "Restart enigma" + +# +msgid "Restart network" +msgstr "Restartovat síť" + +# +msgid "Restart test" +msgstr "Restart testu" + +# +msgid "Restart your network connection and interfaces.\n" +msgstr "Restartuje síťové pÅ™ipojení a rozhraní.\n" + +# +msgid "Restore" +msgstr "Obnovit" + +# +msgid "Restore backups" +msgstr "Obnovit zálohu" + +# +msgid "Restore is running..." +msgstr "Probíhá obnova..." + +# +msgid "Restore system settings" +msgstr "Obnova nastavení" + +# +msgid "Restoring..." +msgstr "Obnovuje se..." + +# +msgid "Resume from last position" +msgstr "pokraÄovat z poslední pozice" + +# +#, python-format +msgid "Resume position at %s" +msgstr "PokraÄovat od pozice %s" + +# +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Obnovuji pÅ™ehrávání" + +# +msgid "Return to movie list" +msgstr "zpÄ›t na seznam filmů" + +# +msgid "Return to previous service" +msgstr "návrat na pÅ™edchozí program" + +# +msgid "Reverse bouquet buttons" +msgstr "prohodit B+/B-" + +# +msgid "Reverse list" +msgstr "OtoÄený seznam" + +# +msgid "Rewind speeds" +msgstr "Rychlosti pÅ™etáÄení zpÄ›t" + +msgid "Rewrap teletext subtitles" +msgstr "Zalamovat teletextové titulky" + +# +msgid "Right" +msgstr "Vpravo" + +msgid "Right from servicename" +msgstr "Napravo od názvu kanálu" + +msgid "Roll-off" +msgstr "" + +# +msgid "Romanian" +msgstr "Rumunsky" + +# +msgid "Root directory" +msgstr "KoÅ™enový adresář" + +msgid "Rotor step position:" +msgstr "Pozice motoru (kroky):" + +# +# +msgid "Rotor turning speed" +msgstr "Rychlost otáÄení motoru" + +msgid "Round start time on" +msgstr "Zaokrouhlit zaÄátek na" + +# +msgid "Russian" +msgstr "Rusky" + +# +msgid "S-Video" +msgstr "S-Video" + +msgid "SID" +msgstr "" + +# +msgid "SINGLE LAYER DVD" +msgstr "JEDNOVRSTVÉ DVD" + +# +msgid "SNR" +msgstr "SNR" + +# +msgid "SNR:" +msgstr "SNR:" + +# +msgid "SSID:" +msgstr "SSID:" + +msgid "Same resolution as skin" +msgstr "Stejné rozliÅ¡ení jako skin" + +# +msgid "Sat" +msgstr "So" + +# +msgid "Satellite" +msgstr "Satelit" + +# +msgid "Satellite dish setup" +msgstr "Nastavení paraboly" + +# +msgid "Satellite equipment" +msgstr "Satelitní zařízení" + +# +msgid "Satellite equipment setup" +msgstr "Nastavení satelitního zařízení" + +msgid "Satellite longitude:" +msgstr "ZemÄ›pisná délka satelitu:" + +# +msgid "Satellites" +msgstr "Satelity" + +# +msgid "Satfinder" +msgstr "Satfinder" + +# +msgid "Sats" +msgstr "Satelity" + +# +msgid "Saturation" +msgstr "Saturace" + +# +msgid "Saturday" +msgstr "Sobota" + +# +msgid "Save" +msgstr "Uložit" + +# +msgid "Save playlist" +msgstr "Uložit playlist" + +msgid "Save timeshift file" +msgstr "Uložit timeshift soubor" + +msgid "Save timeshift file in movie directory" +msgstr "Uložit timeshift soubor do adresáře filmů" + +# +msgid "Scaler sharpness" +msgstr "Ostrost Å¡kálování" + +# +msgid "Scaling mode" +msgstr "Mód Å¡kálování" + +msgid "Scan" +msgstr "Prohledat" + +# +msgid "Scan " +msgstr "Prohledat " + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, python-format +msgid "Scan %s" +msgstr "Prohledat %s" + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, python-format +msgid "Scan %s band" +msgstr "Prohledat %s pásmo" + +# +msgid "Scan additional SR" +msgstr "Prohledat dodateÄný SR" + +# +msgid "Scan files..." +msgstr "Hledat soubory..." + +# +msgid "Scan wireless networks" +msgstr "Vyhledat bezdrátové sítÄ›" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "Vyhledá v síti bezdrátové pÅ™ipojovací body a pÅ™ipojí se k nim za použití zvoleného bezdrátového zařízení.\n" + +#, python-format +msgid "Scanning %s..." +msgstr "Prohledává %s..." + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "Prohledávání - %d%% dokonÄeno" +msgstr[1] "Prohledávání - %d%% dokonÄena" +msgstr[2] "Prohledávání - %d%% dokonÄeno" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "Prohledávání dokonÄeno, byl nalezen %d program " +msgstr[1] "Prohledávání dokonÄeno, byly nalezeny %d programy" +msgstr[2] "Prohledávání dokonÄeno, bylo nalezeno %d programů " + +# +msgid "Scanning failed!" +msgstr "Prohledávání selhalo!" + +# +msgid "Scanning..." +msgstr "prohledávání..." + +# +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "Prohledá standardní lamedbs setřídÄ›né podle satelitu a pÅ™ipojeného pozicioneru" + +# +msgid "Search east" +msgstr "Hledej východ" + +# +msgid "Search west" +msgstr "Hledej západ" + +msgid "Searching" +msgstr "Hledání" + +msgid "Searching east ..." +msgstr "Hledání na východ ..." + +# +msgid "Searching for available updates. Please wait..." +msgstr "Vyhledávají se dostupné aktualizace. Prosím, Äekejte..." + +# +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "Vyhledávám novÄ› instalované nebo odstranÄ›né balíÄky. ÄŒekejte, prosím..." + +msgid "Searching west ..." +msgstr "Hledání na západ ..." + +# +msgid "Second cable of motorized LNB" +msgstr "druhý kabel z natáÄeného LNB" + +# +msgid "Secondary DNS" +msgstr "Sekundární DNS" + +# +msgid "Seek" +msgstr "Posun" + +# +msgid "Seek backward" +msgstr "PÅ™eskoÄit dozadu" + +# +msgid "Seek backward (enter time)" +msgstr "PÅ™eskoÄit dozadu (zadat Äas)" + +# +msgid "Seek forward" +msgstr "PÅ™eskoÄit dopÅ™edu" + +# +msgid "Seek forward (enter time)" +msgstr "PÅ™eskoÄit dopÅ™edu (zadat Äas)" + +# +msgid "Select" +msgstr "Zvolit" + +# +msgid "Select CAId" +msgstr "Vyberte CAId" + +# +msgid "Select HDD" +msgstr "Zvolte HDD" + +# +msgid "Select a bouquet" +msgstr "Vyberte pÅ™ehled" + +# +msgid "Select a movie" +msgstr "Vyberte film" + +# +msgid "Select a network adapter" +msgstr "Vyberte síťový adaptér" + +# +msgid "Select a skin" +msgstr "Vyberte skin" + +# +msgid "Select a tuner" +msgstr "Vyberte tuner" + +# +msgid "Select a wireless network" +msgstr "Vyberte bezdrátovou síť" + +# +msgid "Select action" +msgstr "Zvolte akci" + +# +#, python-format +msgid "Select action for timer %s:" +msgstr "Provést s ÄasovaÄem %s:" + +# +msgid "Select all" +msgstr "Vybrat vÅ¡e" + +msgid "Select an image to be downloaded" +msgstr "Vyberte image ke stažení" + +# +msgid "Select audio track" +msgstr "výbÄ›r zvukové stopy" + +# +msgid "Select backup files" +msgstr "Vyberte zálohované soubory" + +# +msgid "Select backup location" +msgstr "Vyberte umístÄ›ní záloh" + +# +msgid "Select channel to record from" +msgstr "Vyberte kanál z kterého chcete nahrávat" + +# +msgid "Select copy destination for:" +msgstr "Zvolte umístÄ›ní kopie pro:" + +msgid "Select default EPG type..." +msgstr "Zvolte preferovaný typ EPG..." + +msgid "Select desired image from feed list" +msgstr "Vyberte požadované image ze seznamu" + +# +msgid "Select destination for:" +msgstr "Zvolte umístÄ›ní pro:" + +msgid "Select files for backup." +msgstr "VýbÄ›r souborů pro zálohování." + +# +msgid "Select files/folders to backup" +msgstr "Vyberte soubory/složky pro zálohování" + +msgid "Select input device" +msgstr "Vyberte vstupní zařízení" + +msgid "Select input device." +msgstr "Volba vstupního zařízení" + +# +msgid "Select interface" +msgstr "Vyberte interface" + +# +msgid "Select location" +msgstr "Vyberte umístÄ›ní" + +# +msgid "Select movie" +msgstr "Vyberte film" + +# +msgid "Select provider to add..." +msgstr "Vyberte poskytovatele pro pÅ™idání..." + +# +msgid "Select refresh rate" +msgstr "Vyberte obnovovací frekvenci" + +# +msgid "Select satellites" +msgstr "Vyberte satelity" + +# +msgid "Select service to add..." +msgstr "Vyberte program pro pÅ™idání..." + +# +msgid "Select sort method:" +msgstr "Zvolte způsob třídÄ›ní:" + +# +msgid "Select target folder" +msgstr "Vyberte cílovou složku" + +# +msgid "Select the movie path" +msgstr "Vyberte cestu k filmu" + +# +msgid "Select upgrade source" +msgstr "Vyberte zdroje pro aktualizaci" + +# +msgid "Select upgrade source to edit." +msgstr "VýbÄ›r zdroje pro aktualizaci k úpravÄ›." + +# +msgid "Select video input with up/down buttons" +msgstr "Vybere video vstup pomocí tlaÄítek nahoru/dolů" + +# +msgid "Select video mode" +msgstr "Zvolte video mód" + +# +msgid "Select wireless network" +msgstr "Vyberte bezdrátovou síť" + +# +msgid "Select your provider, and press OK to start the scan" +msgstr "Zvolte poskytovatele a stiskem OK zaÄnÄ›te prohledávat" + +# +msgid "Selecting satellites 1 (USALS)" +msgstr "VýbÄ›r satelitů 1 (USALS)" + +# +msgid "Selecting satellites 2 (USALS)" +msgstr "jVýbÄ›r satelitů 2 (USALS)" + +# +msgid "Send DiSEqC only on satellite change" +msgstr "Poslat DiSEqC pouze pÅ™i zmÄ›nÄ› satelitu" + +# +msgid "Separate titles with a main menu" +msgstr "Samostatné tituly s hlavní nabídkou" + +# +msgid "Sequence repeat" +msgstr "Opakovat sekvenci" + +# +msgid "Serbian" +msgstr "Srbsky" + +# +msgid "Service" +msgstr "O programu" + +# +msgid "Service has been added to the favourites." +msgstr "Program byl pÅ™idán do oblíbených." + +# +msgid "Service has been added to the selected bouquet." +msgstr "Program byl pÅ™idán do vybraného pÅ™ehledu." + +# +msgid "Service info" +msgstr "Info o programu" + +# +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Neplatná služba!\n" +"(VyprÅ¡el Äasový limit Ätení PMT)" + +msgid "Service name" +msgstr "Název programu" + +# +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Služba nebyla nalezena!\n" +"(SID nebyl nalezen v PAT)" + +msgid "Service reference" +msgstr "" + +# +msgid "Service scan" +msgstr "Vyhledávání programů" + +# +msgid "Service searching" +msgstr "Hledání programů" + +msgid "Service title mode" +msgstr "Názvy programů" + +# +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"Služba nedostupná!\n" +"Ověřte nastavení tuneru!" + +# +msgid "Services" +msgstr "Programy" + +# +msgid "Set default" +msgstr "defaultní" + +# +msgid "Set end time" +msgstr "Nastavit Äas konce" + +msgid "Set fixed" +msgstr "Nastavit pevnou" + +msgid "Set fps for external subtitles" +msgstr "ZmÄ›na FPS pro externí titulky" + +# +msgid "Set interface as default Interface" +msgstr "Nastavit interface jako standardní" + +msgid "Set limits" +msgstr "Nastavit meze" + +# +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "Nastavuje typ průbÄ›hů poÅ™adů ve výbÄ›ru programů." + +msgid "Set time window to 1 hour" +msgstr "nastavit Äasové okno na 1 hodinu" + +msgid "Set time window to 2 hours" +msgstr "nastavit Äasové okno na 2 hodiny" + +msgid "Set time window to 3 hours" +msgstr "nastavit Äasové okno na 3 hodiny" + +msgid "Set time window to 4 hours" +msgstr "nastavit Äasové okno na 4 hodiny" + +msgid "Set time window to 5 hours" +msgstr "nastavit Äasové okno na 5 hodin" + +msgid "Set time window to 6 hours" +msgstr "Nastavit Äasové okno na 6 hodin" + +# +msgid "Set voltage and 22KHz" +msgstr "Nastavovat napÄ›tí a 22KHz" + +# +msgid "Settings" +msgstr "Nastavení" + +# +msgid "Setup" +msgstr "Nastavení" + +msgid "Setup menu" +msgstr "Nastavení" + +# +msgid "Setup mode" +msgstr "Nastavovací mód" + +msgid "Setup your positioner" +msgstr "Nastavení pozicioneru" + +# +msgid "Setup your satellite equipment" +msgstr "Nastavení satelitního zařízení" + +# +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "Má průvodce pro USB zařízení pokraÄovat a naprogramovat image soubor %s do flash pamÄ›ti?" + +# +msgid "Sharpness" +msgstr "Ostrost" + +msgid "Short filenames" +msgstr "krátké názvy souborů" + +msgid "Show EIT now/next in infobar" +msgstr "Zobrazovat EIT nyní/další v infobaru" + +# +msgid "Show EPG for current channel..." +msgstr "Zobrazovat EPG pro aktuální kanál..." + +# +msgid "Show EPG..." +msgstr "Zobrazit EPG..." + +msgid "Show Games show" +msgstr "zábava" + +msgid "Show SNR percentage instead of dB value" +msgstr "Zobrazovat SNR v procentech místo v dB" + +msgid "Show VCR scart on main menu" +msgstr "Zobrazovat VCR scart v hlavním menu" + +# +msgid "Show WLAN status" +msgstr "Zobrazit stav WLAN" + +msgid "Show animation while busy" +msgstr "Zobrazovat animaci pÅ™i zaneprázdnÄ›ní" + +msgid "Show background in radio mode" +msgstr "Zobrazovat pozadí v rádio módu" + +msgid "Show bouquet selection menu" +msgstr "Zobrazovat menu pro výbÄ›r pÅ™ehledů" + +msgid "Show busy indicator when the system is busy." +msgstr "Zobrazuje indikátor zaneprázdnÄ›ní jestliže je systém zamÄ›stnán." + +# +msgid "Show channel numbers in channel selection" +msgstr "Zobrazovat Äísla kanálů ve výbÄ›ru programů" + +# +msgid "Show columns" +msgstr "Zobrazovat sloupce" + +# +msgid "Show crypto icons" +msgstr "Zobrazovat ikony kódování" + +msgid "Show crypto info in infobar" +msgstr "Zobrazovat informace o kódování v infobaru" + +msgid "Show detailed event info" +msgstr "Zobrazit detailní informace o události" + +# +msgid "Show event details" +msgstr "Zobrazit podrobnosti" + +# +msgid "Show event-progress in channel selection" +msgstr "Zobrazovat průbÄ›hy poÅ™adů ve výbÄ›ru programů" + +# +msgid "Show extended description" +msgstr "Zobrazit rozšířený popis" + +# +msgid "Show extensions..." +msgstr "Zobrazit rozšíření..." + +# +msgid "Show icon for new/unseen items" +msgstr "Ikona u nových/neshlédnutých položek" + +msgid "Show in extensions menu" +msgstr "Zobrazovat v menu rozšíření" + +# +msgid "Show info" +msgstr "Zobrazit info" + +# +msgid "Show info line" +msgstr "Zobrazovat informaÄní řádek" + +# +msgid "Show infobar on channel change" +msgstr "Zobrazit infobar pÅ™i pÅ™epnutí programu" + +# +msgid "Show infobar on event change" +msgstr "Zobrazit infobar pÅ™i zmÄ›nÄ› programu v EPG" + +# +msgid "Show infobar on skip forward/backward" +msgstr "Zobrazit infobar pÅ™i pÅ™eskoÄení dopÅ™edu/zpÄ›t" + +msgid "Show latest commits on sourceforge" +msgstr "Zobrazit poslední zmÄ›ny na sourceforge" + +# +msgid "Show message when recording starts" +msgstr "Zobrazit zprávu pÅ™i zaÄátku nahrávání" + +msgid "Show movie lengths in movielist" +msgstr "Zobrazovat délku filmů v seznamu filmů" + +msgid "Show multi channel EPG" +msgstr "Zobrazovat vícekanálovou EPG" + +# +msgid "Show picons in channel list" +msgstr "Zobrazovat pikony v seznamu kanálů" + +# +msgid "Show positioner movement" +msgstr "Zobrazovat otáÄení pozicioneru." + +msgid "Show screensaver" +msgstr "Zobrazovat spoÅ™iÄ obrazovky" + +# +msgid "Show second infobar" +msgstr "Zobrazovat druhý infobar" + +msgid "Show service type icons" +msgstr "Zobrazovat ikony typu kanálu " + +# +msgid "Show services beginning with" +msgstr "Zobrazit programy zaÄínající na" + +# +msgid "Show shutdown menu" +msgstr "Zobrazit shutdown menu" + +msgid "Show single service EPG" +msgstr "Zobrazovat EPG jednoho kanálu" + +msgid "Show status icons in Movielist" +msgstr "Zobrazovat ikony stavu v seznamu filmů" + +msgid "Show status icons in movie list" +msgstr "Zobrazovat ikony stavu v seznamu filmů" + +msgid "Show status icons in movielist" +msgstr "Zobrazovat ikony stavu v seznamu filmů" + +# +msgid "Show tag menu" +msgstr "Zobrazit menu pro tagy" + +# +msgid "Show the radio player..." +msgstr "Zobrazit pÅ™ehrávaÄ rádií" + +# +msgid "Show the tv player..." +msgstr "Zobrazit TV..." + +msgid "Show warning when timeshift is stopped" +msgstr "Zobrazovat upozornÄ›ní pÅ™i zastavení timeshiftu" + +# +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Zobrazit stav vaší bezdrátové sítÄ›.\n" + +# +msgid "Shuffle playlist" +msgstr "Promíchat playlist" + +# +msgid "Shutdown" +msgstr "Vypnout" + +msgid "Shutdown when in Standby" +msgstr "Vypnout, jestliže je ve Standby" + +msgid "Side by side" +msgstr "Vedle sebe" + +msgid "Signal OK, proceeding" +msgstr "Signál OK, pokraÄuji" + +msgid "Signal quality" +msgstr "Kvalita signálu" + +# +msgid "Signal strength:" +msgstr "Síla signálu:" + +# +msgid "Signal: " +msgstr "Signál: " + +# +msgid "Similar" +msgstr "Další vysílání" + +# +msgid "Similar broadcasts:" +msgstr "Další vysílání poÅ™adu:" + +# +msgid "Simple" +msgstr "jednoduchý" + +# +msgid "Simple titleset (compatibility for legacy players)" +msgstr "jednoduché (kompatibilita pro starší pÅ™ehrávaÄe)" + +# +msgid "Single" +msgstr "Jeden" + +# +msgid "Single EPG" +msgstr "EPG programu" + +# +msgid "Single satellite" +msgstr "jeden satelit" + +# +msgid "Single step (GOP)" +msgstr "Krokovat (GOP)" + +# +msgid "Single transponder" +msgstr "jeden transponder" + +msgid "Site latitude" +msgstr "ZemÄ›pisná šířka" + +msgid "Site longitude" +msgstr "ZemÄ›pisná délka" + +# +msgid "Skin" +msgstr "" + +# +msgid "Skins" +msgstr "Skiny" + +msgid "Skip empty services" +msgstr "PÅ™eskakovat prázdné programy" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "PÅ™eskoÄit test internetového pÅ™ipojení (zakáže automatickou instalaci balíÄků)." + +# +msgid "Sleep timer" +msgstr "ÄŒasovaÄ usínání" + +msgid "SleepTimer Configuration" +msgstr "Konfigurace ÄasovaÄe usínání" + +msgid "Sleeptimer" +msgstr "ÄŒasovaÄ usínání" + +# +msgid "Slide picture in loop" +msgstr "Zobrazovat obrázky ve smyÄce" + +# +msgid "Slide show interval (sec.)" +msgstr "Interval prezentace (sek.)" + +# +#, python-format +msgid "Slot %d" +msgstr "Slot %d" + +# +msgid "Slovak" +msgstr "Slovensky" + +# +msgid "Slovenian" +msgstr "Slovinsky" + +# +msgid "Slow" +msgstr "Pomalu" + +# +msgid "Slow motion speeds" +msgstr "Rychlosti zpomaleného pÅ™ehrávání" + +# +msgid "Small progress" +msgstr "PrůbÄ›h" + +msgid "Social/Political/Economics" +msgstr "sociální/politická ekonomika" + +msgid "SoftCam / CI" +msgstr "SoftCam / CI" + +msgid "Softcam type" +msgstr "Typ softcamu" + +# +msgid "Software" +msgstr "" + +# +msgid "Software management" +msgstr "Správa software" + +msgid "Software manager setup" +msgstr "Nastavení správy software" + +# +msgid "Software restore" +msgstr "Obnovit software" + +# +msgid "Software update" +msgstr "Aktualizace software" + +msgid "Softwaremanager information" +msgstr "Info správy software" + +# +msgid "Some plugins are not available:\n" +msgstr "NÄ›které pluginy nejsou dostupné:\n" + +# +#, python-format +msgid "Sorry, %s has not been installed!" +msgstr "Bohužel, %s nebyl nainstalován!" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "Je nám líto, ale smazat adresářě lze pouze (prozatím) pÅ™es koÅ¡." + +# +msgid "Sorry, no backups found!" +msgstr "Žádné zálohy nenalezeny!" + +# +msgid "Sorry, no details available!" +msgstr "Žádné detaily nejsou k dispozici!" + +# +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"Do zvoleného místa pro zálohy nelze zapisovat.\n" +"Prosím, zvolte jiné umístÄ›ní." + +msgid "Sort" +msgstr "TřídÄ›ní" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Setřídit A-Z" + +# +msgid "Sort by" +msgstr "Třídit podle" + +# +msgid "Sort list:" +msgstr "Setřídit seznam" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort time" +msgstr "Setřídit dle Äasu" + +# +msgid "Sound" +msgstr "Zvuk" + +# +msgid "Sound carrier" +msgstr "Nosná zvuku" + +msgid "Source request" +msgstr "požadavek zdroje" + +# +msgid "South" +msgstr "Jižní" + +# +msgid "Spanish" +msgstr "Å panÄ›lsky" + +# +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "UrÄete Äas ukonÄení ignorování ÄasovaÄe vypnutí, jestliže je pÅ™ijímaÄ v pohotovostním režimu" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "UrÄuje konec úseku ignorování ÄasovaÄe neaktivity" + +# +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "UrÄete zaÄátek ignorování ÄasovaÄe vypnutí, jestliže je pÅ™ijímaÄ v pohotovostním režimu" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "UrÄuje zaÄátek ignorování ÄasovaÄe neaktivity" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "UrÄit dobu ignorování ÄasovaÄe neaktivity" + +# +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "ÄŒasový interval ignorování vypnutí ve standby" + +# +msgid "Split preview mode" +msgstr "RozdÄ›lit prohlížecí mód" + +msgid "Splitscreen" +msgstr "RozdÄ›lení obrazovky" + +msgid "Sports" +msgstr "sporty" + +# +msgid "Standard" +msgstr "Standard" + +# +msgid "Standart list" +msgstr "Standardní seznam" + +# +msgid "Standby" +msgstr "Pohotovostní režim" + +# +msgid "Standby / restart" +msgstr "Standby / restart" + +msgid "Standby after current event" +msgstr "Standby po této události" + +# +#, python-format +msgid "Standby fan %d PWM" +msgstr "PWM ventilátoru %d ve standby" + +# +#, python-format +msgid "Standby fan %d voltage" +msgstr "NapÄ›tí ventilátoru %d ve standby" + +msgid "Standby in " +msgstr "standby za " + +msgid "StandbyLED" +msgstr "" + +# +msgid "Start from the beginning" +msgstr "spustit od zaÄátku" + +# +msgid "Start offline decode" +msgstr "Spustit offline dekódování" + +# +msgid "Start recording?" +msgstr "Spustit nahrávání?" + +# +msgid "Start test" +msgstr "Spustit test" + +# +msgid "Start time" +msgstr "ÄŒas zaÄátku" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "ZaÄátek ignorování ÄasovaÄe neaktivity" + +# +msgid "Start time to ignore shutdown in standby" +msgstr "ZaÄátek ignorování vypnutí ve standby" + +# +msgid "Start timeshift" +msgstr "Spustit timeshift" + +msgid "Start with list screen" +msgstr "Start se seznamem" + +# +msgid "Starting on" +msgstr "ZaÄíná" + +# +msgid "Startup the set top box in standby" +msgstr "Po startu pÅ™epne set top box do pohotovostního režimu" + +# +msgid "Startup to Standby" +msgstr "Po startu pÅ™epnout do Standby" + +# +msgid "Step east" +msgstr "Krok východnÄ›" + +# +msgid "Step west" +msgstr "Krok západnÄ›" + +msgid "Stepped east" +msgstr "Krok východnÄ›" + +msgid "Stepped west" +msgstr "Krok západnÄ›" + +# +msgid "Stop" +msgstr "zastavit" + +# +msgid "Stop PiP" +msgstr "UkonÄit PIP" + +# +msgid "Stop current event and disable coming events" +msgstr "Zastavit aktuální událost a zakázat následující události" + +# +msgid "Stop current event but not coming events" +msgstr "Zastavit aktuální událost, ale nezakazovat následující události" + +# +msgid "Stop entry" +msgstr "Zastavit záznam" + +# +msgid "Stop playing this movie?" +msgstr "Zastavit pÅ™ehrávání toho filmu?" + +# +msgid "Stop recording" +msgstr "ukonÄit nahrávání" + +# +msgid "Stop recording and delete" +msgstr "ukonÄit nahrávání a smazat" + +# +msgid "Stop service on return to movie list" +msgstr "Zastavit program po návratu do seznamu filmů" + +# +msgid "Stop test" +msgstr "Zastavit test" + +# +msgid "Stop testing plane after # failed transponders" +msgstr "Zastavit testovací plán po selhání # transponderů" + +# +msgid "Stop testing plane after # successful transponders" +msgstr "Zastavit testovací plán po # úspěšných transponderech" + +msgid "Stop timer recording" +msgstr "UkonÄit nahrávání ÄasovaÄe" + +# +msgid "Stop timeshift" +msgstr "UkonÄit timeshift" + +# +msgid "Stop timeshift?" +msgstr "UkonÄit timeshift?" + +msgid "Stopped" +msgstr "Zastaveno" + +msgid "Store at index" +msgstr "Uložit na pozici" + +# +msgid "Store position" +msgstr "Ulož pozici" + +# +msgid "Stored position" +msgstr "Uložená pozice" + +msgid "Stream" +msgstr "" + +msgid "Stream request" +msgstr "požadavek streamu" + +msgid "Strongest position" +msgstr "NejsilnÄ›jší pozice" + +# +msgid "Subservice list..." +msgstr "Seznam podprogramů..." + +# +msgid "Subservices" +msgstr "Podprogramy" + +msgid "Subtitle Quickmenu" +msgstr "Rychlé nastavení titulků" + +msgid "Subtitle alignment" +msgstr "Zarovnání" + +msgid "Subtitle border width" +msgstr "Šířka okraje" + +msgid "Subtitle delay when timing is bad" +msgstr "ZpoždÄ›ní titulků pÅ™i nesprávném Äasování" + +msgid "Subtitle delay when timing lacks" +msgstr "ZpoždÄ›ní titulku pÅ™i chybÄ›jícím Äasování" + +msgid "Subtitle font size" +msgstr "Velikost textu" + +# +msgid "Subtitle language selection 1" +msgstr "Volba jazyka titulků 1" + +# +msgid "Subtitle language selection 2" +msgstr "Volba jazyka titulků 2" + +# +msgid "Subtitle language selection 3" +msgstr "Volba jazyka titulků 3" + +# +msgid "Subtitle language selection 4" +msgstr "Volba jazyka titulků 4" + +# +msgid "Subtitle position" +msgstr "Pozice" + +# +msgid "Subtitle selection" +msgstr "výbÄ›r titulků" + +# +msgid "Subtitle selection..." +msgstr "VýbÄ›r titulků..." + +# +msgid "Subtitle settings" +msgstr "Nastavení titulků" + +# +msgid "Subtitles" +msgstr "Titulky" + +# +msgid "Sun" +msgstr "Ne" + +# +msgid "Sunday" +msgstr "NedÄ›le" + +# +msgid "Swap PiP and main picture" +msgstr "ZamÄ›nit PIP a hlavní obraz" + +# +msgid "Swap services" +msgstr "Prohodit programy" + +# +msgid "Swedish" +msgstr "Å védsky" + +msgid "Switch TV to correct input" +msgstr "PÅ™epínat TV na správný vstup" + +msgid "Switch between filelist/playlist" +msgstr "PÅ™ipínat mezi seznamem/playlistem" + +msgid "Switch between normal mode and list mode" +msgstr "PÅ™epnout z normálního na seznam" + +# +msgid "Switch to HDMI in mode" +msgstr "PÅ™epnout na HDMI v módu" + +# +msgid "Switch to filelist" +msgstr "PÅ™epnout na seznam souborů" + +msgid "Switch to next channel" +msgstr "PÅ™epnout na další kanál" + +# +msgid "Switch to next channel in history" +msgstr "Další program v historii" + +# +msgid "Switch to next sub service" +msgstr "Další podprogram" + +# +msgid "Switch to playlist" +msgstr "PÅ™epnout na playlist" + +# +msgid "Switch to previous channel" +msgstr "PÅ™edchozí podprogram" + +# +msgid "Switch to previous channel in history" +msgstr "PÅ™edchozí program v historii" + +# +msgid "Switch to previous sub service" +msgstr "PÅ™edchozí podprogram" + +# +msgid "Switchable tuner types:" +msgstr "PÅ™epínatelné typy tunerů:" + +msgid "Symbol rate" +msgstr "" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "Selhání synchronizace pÅ™esouvá zpÄ›t na původní !" + +# +msgid "System" +msgstr "Systém" + +# +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "(# Autor: ims <ims21@users.sourceforge.net> 2012-2014)" + +# +msgid "TS file is too large for ISO9660 level 1!" +msgstr "TS soubor je příliÅ¡ velký pro ISO9660 level 1!" + +msgid "TSID" +msgstr "" + +msgid "TV physical address report" +msgstr "Ohlášení fyzické adresy TV" + +msgid "TXT PID" +msgstr "" + +# +msgid "Table of contents for collection" +msgstr "Obsah kompilace" + +msgid "Tags" +msgstr "Tagy" + +msgid "Teletext subtitle color" +msgstr "Barva teletextových titulků" + +# +msgid "Temperature and fan control" +msgstr "Teplota a nastavení ventilátoru" + +# +msgid "Terrestrial" +msgstr "Pozemní" + +# +msgid "Terrestrial provider" +msgstr "Pozemní poskytovatel" + +# +msgid "Test DiSEqC settings" +msgstr "Test DiSEqC nastavení" + +# +msgid "Test mode" +msgstr "Testovací mód" + +msgid "Test the network configuration of your receiver.\n" +msgstr "Otestuje síťové nastavení pÅ™ijímaÄe.\n" + +# +msgid "Test type" +msgstr "Typ testu" + +# +msgid "Text color" +msgstr "Barva textu" + +msgid "Thai" +msgstr "Thajsky" + +# +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"DÄ›kujeme za použití průvodce.\n" +"StisknÄ›te OK pro pokraÄování." + +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"DÄ›kujeme za použítí průvodce. PÅ™ijímaÄ je nyní pÅ™ipraven k používání.\n" +"StisknÄ›te OK a zaÄnÄ›te pÅ™ijímaÄ používat." + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "DVD standard nepodporuje H.264 (HDTV) video streamy. Chcete místo toho vytvoÅ™it speciální formát data DVD (které ale nepůjde pÅ™ehrát ve stolních DVD pÅ™ehrávaÄích)?" + +msgid "The PIN code has been changed successfully." +msgstr "PIN kód byl úspěšnÄ› zmÄ›nÄ›n." + +msgid "The PIN codes you entered are different." +msgstr "PIN kód, který jste zadali, je odliÅ¡ný." + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" +"USB zařízení bylo pÅ™ipraveno jako bootovací.\n" +"Nyní můžete nahrát soubor NFI s image! " + +# +msgid "The backup failed. Please choose a different backup location." +msgstr "Zálohování selhalo. Zvolte jiné umístÄ›ní zálohy." + +# +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" +"Aktuální beta image nemusí být stabilní.\n" +"Pro více informací navÅ¡tivte %s." + +# +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"Do adresáře %s nelze zapisovat.\n" +"Vyberete adresář, do kterého je možné zapisovat." + +# +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"Bylo nalezeno zařízení:\n" +"\n" +"%s\n" +"\n" +"PÅ™ejete si zapsat USB flasher do tohoto zařízení?" + +# +msgid "The following files were found..." +msgstr "Následující soubory byly nalezeny..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "Ověření md5sum selhalo, soubor může být poÅ¡kozen!" + +# +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"NetworkWizard rozšíření není nainstalováno!\n" +"Prosím, nainstalujte ho." + +#, python-format +msgid "The path %s already exists." +msgstr "Cesta %s již existuje." + +msgid "The pin code you entered is wrong." +msgstr "Zadaný PIN kód je chybný." + +#, python-format +msgid "The results have been written to %s." +msgstr "Výsledky byly zapsány do %s." + +msgid "The sleep timer has been activated." +msgstr "ÄŒasovaÄ vypnutí byl aktivován." + +msgid "The sleep timer has been disabled." +msgstr "ÄŒasovaÄ vypnutí byl zruÅ¡en." + +# +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"Softwaremanagement rozšíření není nainstalováno!\n" +"Prosím, nainstalujte ho." + +# +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "Stav aktuálního beta image nemohl být ověřen z důvodu nedostupnosti %s." + +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "Soubor ÄasovaÄe (timers.xml) je poruÅ¡ený a nemohl být naÄten." + +msgid "The user interface of your receiver is restarting" +msgstr "Uživatelské rozhraní se restartuje" + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" +"Uživatelské rozhraní bylo restartováno\n" +"kvůli chybÄ› v mytest.py" + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"Plugin pro bezdrátovou LAN není nainstalován!\n" +"Nainstalujte plugin a zvolte, co chcete dÄ›lat dál." + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"Plugin pro bezdrátovou LAN není nainstalován!\n" +"Nainstalujte plugin." + +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "Průvodce může uložit VaÅ¡e souÄasná nastavení. PÅ™ejete si nyní zazálohovat?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "Průvodce nalezl zálohu konfigurace. PÅ™ejete si obnovit VaÅ¡e stará nastavení z %s?" + +# +msgid "The wizard is finished now." +msgstr "Průvodce skonÄil." + +# +msgid "There are at least " +msgstr "Existuje nejménÄ› " + +# +#, python-format +msgid "There are at least %s updates available." +msgstr "K dispozici je nejménÄ› %s aktualizací." + +# +msgid "There are currently no outstanding actions." +msgstr "V souÄasné dobÄ› nejsou žádné nedokonÄené akce." + +# +msgid "There are no updates available." +msgstr "Nejsou žádné dostupné aktualizace." + +msgid "There is no signal to lock on !" +msgstr "Není signál pro uzamÄení!" + +# +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"Nemusí být dostatek místa na vybraném disku.\n" +"Opravdu si pÅ™ejete pokraÄovat." + +# +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "DVD RW médium je již naformátováno - nové formátování smaže veÅ¡kerý obsah na tomto DVD." + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" +"Tento plugin vytvoří USB zařízení, které může být použito k aktualizaci firmware VaÅ¡eho pÅ™ijímaÄe bez použití sítÄ› nebo WLAN pÅ™ipojení.\n" +"Nejprve je potÅ™eba USB zařízení pÅ™ipravit jako bootovací.\n" +"V dalším kroku může být stažen NFI soubor ze serveru s aktualizacemi a uložen na USB zařízení.\n" +"Jestliže máte již pÅ™ipravené bootovací USB zařízení, pÅ™ipojte ho nyní. V opaÄném případÄ› pÅ™ipojte USB zařízení o minimální velikosti 64 MB!" + +# +msgid "This plugin is installed." +msgstr "Plugin je nainstalován." + +# +msgid "This plugin is not installed." +msgstr "Plugin není nainstalován." + +# +msgid "This plugin will be installed." +msgstr "Plugin bude nainstalován." + +# +msgid "This plugin will be removed." +msgstr "Plugin bude odstranÄ›n." + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "Tento pÅ™ijímaÄ nemůže dekódovat %s streamů!" + +# +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"Tento test ověří, zda je nakonfigurován DNS.\n" +"Pokud obdržíte zprávu \"nepotvrzeno\":\n" +"- ověřte nastavení DHCP, kabelu a síťové karty\n" +"- pokud jste nastavili DNS server ruÄnÄ›, prosím, ověřte nastavení v konfiguraci DNS serveru" + +# +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Tento test ověří, zda je zapojený kabel do síťové karty.\n" +"Pokud obdržíte zprávu \"odpojeno\":\n" +"- ověřte, zda je kabel zapojen\n" +"- ověřte, že kabel není poÅ¡kozen" + +# +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Tento test ověří, zda je nastavena správná IP adresa síťové karty.\n" +"Pokud obdržíte zprávu \"nepotvrzeno\":\n" +"- nebyla nalezna žádná platná IP adresa\n" +"- ověřte nastavení DHCP, kabelu a síťové karty" + +# +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"Tento test ověří, zda je nastavena síťová karta pro automatickou konfiguraci pomocí DHCP.\n" +"Pokud obdržíte zprávu \"zakázáno\":\n" +"- pak je síťová karta nastavena na ruÄní nastavení síťové adresy (IP)\n" +"- ověřte, že jste zadali správnou IP adresu\n" +"Pokud obdržíte zprávu \"povoleno\":\n" +"- ověřte, že máte správnÄ› nastavený a fungující DHCP server ve Vaší síti." + +# +msgid "This test detects your configured LAN adapter." +msgstr "Tento test detekuje nakonfigurovaný síťový adapter (LAN)." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" +"Budou (pÅ™e)poÄítány vÅ¡echny pozice VaÅ¡eho motoru a mohou být odstranÄ›ny pÅ™edchozí uložené pozice a jemné ladÄ›ní!\n" +"Jste si jistý ?" + +# +msgid "Three" +msgstr "TÅ™i" + +# +msgid "Threshold" +msgstr "Práh" + +# +msgid "Thu" +msgstr "ÄŒt" + +# +msgid "Thumbnails" +msgstr "Náhledy" + +# +msgid "Thursday" +msgstr "ÄŒtvrtek" + +# +msgid "Time" +msgstr "ÄŒas" + +# +msgid "Time scale" +msgstr "Měřítko Äasu" + +# +msgid "Timer" +msgstr "ÄŒasovaÄ" + +# +msgid "Timer Overview" +msgstr "PÅ™ehled ÄasovaÄů" + +# +msgid "Timer edit" +msgstr "Upravit ÄasovaÄ" + +# +msgid "Timer editor" +msgstr "Úprava ÄasovaÄe" + +# +msgid "Timer entry" +msgstr "Zadání ÄasovaÄe" + +# +msgid "Timer log" +msgstr "Log ÄasovaÄe" + +# +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"ZjiÅ¡tÄ›no pÅ™ekrývání ÄasovaÄů v timers.xml!\n" +"Zkontrolujte to, prosím!" + +# +msgid "Timer overview" +msgstr "PÅ™ehled ÄasovaÄů" + +# +msgid "Timer recording location" +msgstr "UmístÄ›ní nahrávek ÄasovaÄe" + +# +msgid "Timer sanity error" +msgstr "Nelogické Äasování" + +# +msgid "Timer selection" +msgstr "VýbÄ›r ÄasovaÄe" + +msgid "Timer selection..." +msgstr "VýbÄ›r ÄasovaÄe..." + +msgid "Timer type" +msgstr "Typ ÄasovaÄe" + +# +msgid "Timeshift" +msgstr "Timeshift" + +msgid "Timeshift Live" +msgstr "" + +# +msgid "Timeshift location" +msgstr "Timeshift" + +# +msgid "Timeshift not possible!" +msgstr "ÄŒasový posun není možný!" + +# +msgid "Timezone" +msgstr "ÄŒasové pásmo" + +# +msgid "Title" +msgstr "Titul" + +# +msgid "Title properties" +msgstr "Vlastnosti" + +# +msgid "Titleset mode" +msgstr "Nastavování titulu" + +# +msgid "To audio selection" +msgstr "VýbÄ›r zvuku" + +# +msgid "To subtitle selection" +msgstr "VýbÄ›r titulků" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" +"Pro aktualizaci firmware VaÅ¡eho pÅ™ijímaÄe proveÄte následující kroky:\n" +"1) vypnÄ›te pÅ™ijímaÄ hlavním vypínaÄem vzadu na přístroji a ujistÄ›te se, že bootovací USB zařízení je pÅ™ipojeno.\n" +"2) zapnÄ›te hlavní vypínaÄ a držte 10s stisknuté tlaÄítko DOWN na pÅ™edním panelu.\n" +"3) poÄkejte, až zařízení nabootuje a následujte instrukce průvodce." + +# +msgid "Today" +msgstr "Dnes" + +# +msgid "Toggle a cut mark at the current position" +msgstr "pÅ™epnout stÅ™ihovou znaÄku na této pozici" + +# +msgid "Tone amplitude" +msgstr "Rozsah" + +# +msgid "Tone mode" +msgstr "Mód tónu" + +# +msgid "Toneburst" +msgstr "Toneburst" + +# +msgid "Toneburst A/B" +msgstr "Toneburst A/B" + +msgid "Top and bottom" +msgstr "Nahoru a dolů" + +# +msgid "Track" +msgstr "Stopa" + +# +msgid "Translation" +msgstr "PÅ™eklad" + +# +msgid "Translation:" +msgstr "PÅ™eklad:" + +msgid "Translations" +msgstr "PÅ™eklady" + +# +msgid "Transmission mode" +msgstr "PÅ™enosový mód" + +# +msgid "Transponder" +msgstr "Transponder" + +# +msgid "Transponder type" +msgstr "Typ transponderu" + +# +msgid "Trash can" +msgstr "KoÅ¡" + +# +msgid "Tries left:" +msgstr "Zbývá pokusů:" + +# +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Zkouším najít použité transpondery v kabelové síti ... prosím, Äekejte ..." + +# +msgid "Trying to download a new packetlist. Please wait..." +msgstr "Stahuje se nový seznam balíÄků. Prosím, Äekejte..." + +# +msgid "Tue" +msgstr "Út" + +# +msgid "Tuesday" +msgstr "Úterý" + +# +msgid "Tune" +msgstr "Naladit" + +msgid "Tune and focus" +msgstr "LadÄ›ní a fokus" + +# +msgid "Tune failed!" +msgstr "LadÄ›ní selhalo!" + +# +msgid "Tuner" +msgstr "Tuner" + +# +msgid "Tuner configuration" +msgstr "Konfigurace tuneru" + +msgid "Tuner is not supported" +msgstr "tuner není podporován" + +# +msgid "Tuner slot" +msgstr "Slot tuneru" + +# +msgid "Tuner status" +msgstr "Stav tuneru" + +# +#, python-format +msgid "Tuner status %s" +msgstr "Stav tuneru %s" + +# +msgid "Tuner type" +msgstr "Typ tuneru" + +# +msgid "Turkish" +msgstr "Turecky" + +msgid "Turn on the power LED during standby." +msgstr "Zapne LED napájení pÅ™i standby." + +msgid "Turning step size" +msgstr "Velikost kroku ladÄ›ní" + +# +msgid "Two" +msgstr "Dva" + +# +msgid "Type" +msgstr "Typ" + +# +msgid "Type of scan" +msgstr "Typ prohledávání" + +# +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "USALS kalibrace" + +# +msgid "USB stick" +msgstr "USB zařízení" + +# +msgid "USB stick wizard" +msgstr "Průvodce pro USB zařízení" + +# +# +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Probíhá bezobslužná aktualizace\n" +"ÄŒekejte, dokud se pÅ™ijímaÄ nerestartuje\n" +"To může trvat nÄ›kolik minut" + +# +msgid "Undo install" +msgstr "ZruÅ¡it instalaci" + +# +msgid "Undo uninstall" +msgstr "Ponechat" + +msgid "Unencrypted" +msgstr "NezabezpeÄeno" + +# +msgid "UnhandledKey" +msgstr "NeoÅ¡etÅ™ené tlaÄítko" + +# +msgid "Unicable" +msgstr "" + +# +msgid "Unicable LNB" +msgstr "" + +# +msgid "Unicable Martix" +msgstr "" + +# +msgid "Uninstall" +msgstr "Odinstalovat" + +# +msgid "Universal LNB" +msgstr "Univerzální LNB" + +msgid "Unknown" +msgstr "Neznámý" + +# +msgid "Unmount" +msgstr "Odpojit" + +# +msgid "Unsupported" +msgstr "Nepodporováno" + +# +msgid "Update" +msgstr "Aktualizace" + +# +msgid "Update and ask to reboot" +msgstr "Aktualizovat a požádat o restart pÅ™ijímaÄe" + +msgid "Update and reboot (recommended)" +msgstr "Aktualizovat a restartovat (doporuÄeno)" + +# +msgid "Update channel list only" +msgstr "Aktualizovat jen seznam kanálů" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "Aktualizace dokonÄena. %d balíÄek byl nainstalován." +msgstr[1] "Aktualizace dokonÄena. %d balíÄky byly nainstalovány." +msgstr[2] "Aktualizace dokonÄena. %d balíÄků bylo nainstalováno." + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "Aktualizace skonÄila. Chcete restartovat pÅ™ijímaÄ?" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "Aktualizace se nezdaÅ™ila. PÅ™ijímaÄ nemá funkÄní pÅ™ipojení k internetu." + +msgid "Update has completed." +msgstr "Aktualizace je dokonÄena." + +# +msgid "Updatefeed not available." +msgstr "Zdroj aktualizací není k dispozici." + +# +msgid "Updating software catalog" +msgstr "Aktualizace katalogu programů" + +# +msgid "Upgrading" +msgstr "Aktualizace" + +# +msgid "Use" +msgstr "Použít" + +# +msgid "Use DHCP" +msgstr "Použít DHCP" + +msgid "Use EIT EPG information when it is available." +msgstr "Používat EIT EPG informace, jestliže jsou dostupné." + +msgid "Use FreeSat EPG information when it is available." +msgstr "Používat FreeSat EPG informace, jestliže jsou dostupné." + +msgid "Use MHW EPG information when it is available." +msgstr "Používat MHW EPG informace, jestliže jsou dostupné." + +msgid "Use Netmed EPG information when it is available." +msgstr "Používat Netmed EPG informace, jestliže jsou dostupné." + +msgid "Use TV remote control" +msgstr "Používat dálkové ovládání TV" + +# +msgid "Use USALS for this sat" +msgstr "Použít USALS pro tento satelit" + +msgid "Use ViaSat EPG information when it is available." +msgstr "Používat ViaSat EPG informace, jestliže jsou dostupné." + +# +msgid "Use Virgin EPG information when it is available." +msgstr "Používat Virgin EPG informace, jestliže jsou dostupné." + +# +msgid "Use a gateway" +msgstr "Použít bránu (gateway)" + +msgid "Use fastscan channel names" +msgstr "Použít fastscan jména kanálů" + +msgid "Use fastscan channel numbering" +msgstr "Použít fastscan Äíslování kanálů" + +# +msgid "Use frequency or channel" +msgstr "Použít frekvenci nebo kanál" + +msgid "Use individual settings for each directory" +msgstr "Používat vlastní nastavení pro každý adresář" + +# +msgid "Use interface" +msgstr "Použít interface" + +msgid "Use official channel numbering" +msgstr "Použít ofciální Äíslování kanálů" + +# +msgid "Use original DVB subtitle position" +msgstr "Poloha DVB titulků" + +msgid "Use original teletext position" +msgstr "Použít původní pozici teletextu" + +# +msgid "Use power measurement" +msgstr "Použít měření proudu" + +# +msgid "Use the network wizard to configure selected network adapter" +msgstr "Použijte síťového průvodce k nakonfigurování vybraného síťového adaptéru" + +# +msgid "Use the network wizard to configure your network\n" +msgstr "Použijte průvodce pro nakonfigurování vaší sítÄ›\n" + +# +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "Použijte Å¡ipku nahoru / dolu na DO pro výbÄ›r volby. Potom stisknÄ›te OK." + +# +msgid "Use the wizard to set up basic features" +msgstr "Použijte průvodce pro nastavení základních vlastností" + +msgid "Use these input device settings?" +msgstr "Použít nastavení tohoto vstupního zařízení?" + +msgid "Use these settings?" +msgstr "Použít tato nastavení?" + +# +msgid "Use this video enhancement settings?" +msgstr "Použít toto rozÅ¡iÅ™ující video nastavení?" + +# +msgid "Use trash can in movielist" +msgstr "Používat koÅ¡ v seznamu souborů" + +# +msgid "Used service scan type" +msgstr "Použítý typ vyhledávání programu" + +# +msgid "User - bouquets" +msgstr "Oblíbené" + +# +msgid "User defined" +msgstr "Uživatelsky definované" + +msgid "User defined transponder" +msgstr "uživatem definovaný transponder" + +msgid "User interface" +msgstr "Uživatelské rozhraní" + +msgid "Username" +msgstr "Uživatel" + +#, python-format +msgid "Using LNB %d" +msgstr "Používá se LNB %d" + +msgid "Using fixed address" +msgstr "Používaná pevná adresa" + +#, python-format +msgid "Using tuner %s" +msgstr "Používá se tuner %s" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "Obvykle, když je jazyk titulků stejný jako jazyk zvuku, titulky nebudou použity. Povolením této volby umožníte povolení tÄ›chto titulků. " + +# +msgid "VCR scart" +msgstr "VCR scart" + +# +msgid "VMGM (intro trailer)" +msgstr "" + +# +msgid "Vertical" +msgstr "Vertikální" + +msgid "Vertical turning speed" +msgstr "Vertikální rychlost ladÄ›ní" + +msgid "Video PID" +msgstr "" + +# +msgid "Video enhancement preview" +msgstr "PÅ™ehled korekcí obrazu" + +# +msgid "Video enhancement settings" +msgstr "Korekce obrazu" + +# +msgid "Video enhancement setup" +msgstr "Nastavení korekce obrazu" + +# +msgid "Video fine tuning" +msgstr "DoladÄ›ní obrazu" + +# +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"VýbÄ›r zdroje signálu\n" +"\n" +"StisknÄ›te OK jestliže vidíte tuto stránku na TV (nebo vyberte jiný zdroj signálu).\n" +"\n" +"Další zdroj signálu bude automaticky prozkoumán bÄ›hem 10 sekund." + +# +msgid "Video mode selection." +msgstr "VýbÄ›r video módu" + +# +msgid "Video output" +msgstr "Video výstup" + +# +msgid "Video setup" +msgstr "Nastavení videa" + +# +msgid "Video wizard" +msgstr "Video průvodce" + +#, python-format +msgid "Video: %s fps" +msgstr "" + +msgid "VideoMode" +msgstr "Videomód" + +msgid "Videocodec" +msgstr "Kodek videa" + +# +msgid "Videoformat" +msgstr "Formát videa" + +# +msgid "Videosize" +msgstr "RozliÅ¡ení" + +# +msgid "View Rass interactive..." +msgstr "Prohlížet Rass interaktivnÄ›..." + +# +msgid "View details" +msgstr "Detaily" + +# +msgid "View list of available " +msgstr "Prohlédnout seznam dostupných" + +# +msgid "View list of available CommonInterface extensions" +msgstr "Prohlédnout seznam dostupných rozšíření pro CommonInterface" + +# +msgid "View list of available EPG extensions." +msgstr "Prohlédnout seznam dostupných rozšíření pro EPG." + +# +msgid "View list of available Satellite equipment extensions." +msgstr "Prohlédnout seznam dostupných rozšíření satelitního zařízení." + +# +msgid "View list of available communication extensions." +msgstr "Prohlédnout seznam dostupných rozšíření pro komunikaci." + +# +msgid "View list of available default settings" +msgstr "Prohlédnout seznam dostupných standardní nastavení" + +# +msgid "View list of available display and userinterface extensions." +msgstr "Zobrazit seznam rozšíření pro zobrazení a uživatelské rozhraní" + +# +msgid "View list of available multimedia extensions." +msgstr "Prohlédnout seznam dostupných rozšíření pro multimédia." + +# +msgid "View list of available networking extensions" +msgstr "Prohlédnout seznam dostupných rozšíření pro sítÄ›" + +# +msgid "View list of available recording extensions" +msgstr "Prohlédnout seznam dostupných rozšíření pro nahrávání" + +# +msgid "View list of available skins" +msgstr "Prohlédnout seznam dostupných skinů" + +# +msgid "View list of available software extensions" +msgstr "Prohlédnout seznam dostupných programových rozšíření" + +# +msgid "View list of available system extensions" +msgstr "Prohlédnout seznam dostupných systémových rozšíření " + +# +msgid "View photos..." +msgstr "Zobrazit fotografie..." + +# +msgid "View teletext..." +msgstr "Teletext..." + +# +msgid "View video CD..." +msgstr "Zobrazit video CD..." + +# +msgid "Virtual keyboard" +msgstr "Virtuální klávesnice" + +# +msgid "Voltage mode" +msgstr "Mód napÄ›tí" + +# +msgid "Volume" +msgstr "Hlasitost" + +# +msgid "W" +msgstr "Západní" + +# +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "WLAN pÅ™ipojení" + +# +msgid "WPA" +msgstr "WPA" + +# +msgid "WPA or WPA2" +msgstr "WPA nebo WPA2" + +# +msgid "WPA2" +msgstr "WPA2" + +# +msgid "WSS on 4:3" +msgstr "WSS na 4:3" + +# +msgid "Waiting" +msgstr "ÄŒekání" + +msgid "Waiting for mount" +msgstr "ÄŒeká se na pÅ™ipojení" + +msgid "Waiting for partition" +msgstr "ÄŒeká se na oddíl" + +msgid "Wakeup" +msgstr "probudit" + +msgid "Wakeup TV from standby" +msgstr "Probouzet TV ze standby" + +msgid "Wakeup receiver for start timer" +msgstr "Probouzet pÅ™ijímaÄ pro spuÅ¡tÄ›ní ÄasovaÄe" + +msgid "Wakeup receiver from standby" +msgstr "Probouzet receiver ze standby" + +msgid "Wakeup signal from TV" +msgstr "Signál probuzení z TV" + +msgid "Wakeup type" +msgstr "Typ probuzení" + +msgid "Warning: no LNB; using factory defaults." +msgstr "Varování: žádný LNB; použiváno tovární nastavení." + +# +msgid "Watch movies..." +msgstr "Sledovat filmy..." + +# +msgid "Watch recordings..." +msgstr "Sledovat nahrávky..." + +# +msgid "Wed" +msgstr "St" + +# +msgid "Wednesday" +msgstr "StÅ™eda" + +msgid "Weekday" +msgstr "VÅ¡ední den " + +msgid "Weighted position" +msgstr "Vážená pozice" + +# +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"Vítejte v editoru stÅ™ihů.\n" +"\n" +"NajdÄ›te zaÄátek materiálu, který chcete vystÅ™ihnout, stisknÄ›te OK a zvolte 'zaÄátek stÅ™ihu'.\n" +"\n" +"Poté najdÄ›te konec, stisknÄ›te OK a zvolte 'konec stÅ™ihu'. To je vÅ¡e." + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "Vítejte v průvodci aktualizace image. Průvodce pomůže pÅ™i aktualizaci image pÅ™ijímaÄe, provedení zálohy nastavení a krátkého vysvÄ›tlení, jak zaktualizovat firmware." + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" +"Vítáme Vás.\n" +"\n" +"Chcete-li pÅ™ipojit Váš pÅ™ijímaÄ do internetu, tento průvodce Vás provede základním nastavením sítÄ› pÅ™ijímaÄe.\n" +"\n" +"StisknÄ›te OK pro spuÅ¡tÄ›ní konfigurace Vaší sítÄ›" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" +"Vítejte.\n" +"\n" +"Tento průvodce vás provede základním nastavením VaÅ¡eho pÅ™ijímaÄe.\n" +"StisknÄ›te OK na dálkovém ovladaÄi pro pÅ™esun na další krok." + +# +msgid "Welcome..." +msgstr "Vítejte..." + +# +msgid "West" +msgstr "Západní" + +msgid "West limit set" +msgstr "Západní limit nastaven" + +# +msgid "What do you want to scan?" +msgstr "Co chcete prohledat?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "Jestliže je povoleno, pak PIP může být ukonÄen tlaÄítkem Exit" + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +# +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "PÅ™i povolení můžete urÄit zaÄátek ignorování ÄasovaÄe vypnutí, jestliže je pÅ™ijímaÄ v pohotovostním režimu" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "Povolením můžete zadat dobu, po kterou bude ignorován ÄasovaÄ neaktivity. Po tuto dobu je zakázán odpoÄet neaktivity, nikoliv vlastní detekce neaktivity." + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "Jestliže je povoleno, pak tlaÄítky CH+/-, B+/-, P+/- můžete pÅ™epínat kanály místo otevÅ™ení pÅ™ehledu kanálů.." + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "Pokud je povoleno, stisknutím tlaÄítka OK zobrazíte pÅ™ehled kanálů a pÅ™epínání Infobaru je pÅ™evedeno pod tlaÄítko Exit." + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "PÅ™i povolení budou pÅ™idávána AIT data do streamu. To umožní klientskému pÅ™ijímaÄi používat HbbTV." + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "PÅ™i povolení budou pÅ™idávána ECM data do streamu. To umožní klientskému pÅ™ijímaÄi provádÄ›t dekódování." + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "PÅ™i povolení budou pÅ™idávána EIT data do streamu. To umožní klientskému pÅ™ijímaÄi zobrazovat EPG." + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "PÅ™i povolení bude zobrazována zpráva po skonÄení pÅ™ehrávání pÅ™ed zaÄátkem nového pÅ™ehrávání." + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "Jestliže je povoleno, pak bude zobrazována zpráva pÅ™i zaÄátku nahrávání." + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "Povoluje zobrazovat pozadí pÅ™i poslechu rádia." + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "Jestliže je povoleno, pak v případÄ›, když není již zádný volný tuner, nahrávání může pÅ™eruÅ¡it živé vysílání. " + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "Jestliže je povoleno, bude zobrazeno varování a uživatel bude mít možnost timeshift ukonÄit nebo pokraÄovat." + +# +msgid "When enabled, authentication is required to watch http streams." +msgstr "Jestliže je povoleno, pak je vyžadováno ověření pro sledování http streamu." + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "PÅ™i povolení bude Äíslování kanálů zaÄínat pro každý pÅ™ehled od Äísla '1'." + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "Jestliže je povoleno, pak obsah s pomÄ›rem stran 4:3 bude roztažen na celou obrazovku." + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "PÅ™i povolení bude po dosažení posledního programu v aktuálním pÅ™ehledu pokraÄovat pÅ™epínání v následujícím pÅ™ehledu." + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "Jestliže je povoleno, pak smazané nahrávky jsou umístÄ›ny do koÅ¡e , místo toho, aby byly ihned odstranÄ›ny." + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "Jestliže je povoleno, zobrazují se EIT nyní/další data události v infobaru. PÅ™i zakázání se místo toho zobrazují nyní/další data události z EPG cache." + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "Jestliže je povoleno, informace o kódování budou zobrazovány v infobaru ( umožňuje-li to skin )." + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "Jestliže je povoleno, pak nejsou zobrazovány chyby Common Interface modulu." + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "Jestliže je povoleno, nebudou zobrazovány chyby související s pÅ™epínáním." + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "Jestliže je zapnuto, externí titulky budou pÅ™i pÅ™ehrávání filmu automaticky zapnuty." + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "Jestliže je povoleno, grafické DVB titulky jsou preferovány pÅ™ed teletextovými titulky v případÄ›, že jsou oba typy titulků dostupné." + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "Jestliže je povoleno, grafické DVB titulky budou horizontálnÄ› centrovány." + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "Jestliže je povoleno, grafické DVB titulky budou zobrazovány na jejich původní pozici." + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "Jestliže je povoleno, grafické DVB titulky budou zobrazovány žlutÄ› namísto jejich původní barvy." + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "PÅ™i povolení budou http streamy dekódovány na stranÄ› serveru. Vzdálený klientský pÅ™ijímaÄ nemusí pak provádÄ›t dekódování." + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "Jestliže je povoleno, je možné opouÅ¡tÄ›t movieplayer pomocí Exit." + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "Pokud je povoleno, pÅ™ijímaÄ se bude snažit měřením spotÅ™eby proudu urÄit, kdy motor ukonÄí natáÄení (pokud je podporováno tunerem)." + +msgid "When enabled, number markers will be hiden." +msgstr "PÅ™i povolení budou skryty Äíselné znaÄky." + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "PÅ™i povolení mohou být programy seskupovány do vícenásobných pÅ™ehledů." + +# +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "PÅ™i povolení zobrazuje Äísla kanálů ve výbÄ›ru programů" + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "Jestliže je povoleno, budou použity titulky pro sluchovÄ› postižené." + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "Jestliže je povoleno, titulky pro sluchovÄ› postižené budou preferovány pÅ™ed normálními titulky, jestliže oba typy budou dostupné." + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "Povolení vyrovnávací pamÄ›ti pro teletext zajiÅ¡Å¥uje rychlejší pÅ™istup." + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "Jestliže je povoleno, teletextové titulky budou zobrazovány na původní pozici." + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "Jestliže je povoleno, možnosti VCR scart budou zobrazeny v hlavním menu." + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "PÅ™i povolení bude pÅ™i poslechu rádia skrytý seznam pro výbÄ›r programů." + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "PÅ™i povolení bude infobar automaticky zobrazen pÅ™i zaÄátku každé nové události (poÅ™adu). " + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "PÅ™i povolení bude infobar zobrazován pÅ™i každé zmÄ›nÄ› kanálů." + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "PÅ™i povolení bude infobar zobrazován pÅ™i každém pÅ™eskoÄení vpÅ™ed/vzad bÄ›hem pÅ™ehrávání souborů." + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "Jestliže je povoleno, délka každého záznamu bude zobrazená v seznamu souborů (to může prodloužit dobu naÄítání). " + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "Jestliže je povoleno, původní odřádkování bude z teletextových titulků odstranÄ›no." + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "Jestliže je povoleno, bude pÅ™ijímaÄ automaticky používat zvukovou stopu, která byla vybrána dříve. " + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "Jestliže je povoleno, bude pÅ™ijímaÄ automaticky používat titulky, které byla vybrány dříve. " + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "PÅ™i povolení nebude pÅ™ijímaÄ dále sledovat možné zmÄ›ny naladÄ›ných transponderů. Neměňte toto nastavení dokud si nejste jisti, co dÄ›láte." + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "Jestliže je povoleno, pÅ™ijímaÄ bude vybírat AC3 stopu (bude-li dostupná)." + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "Jestliže je povoleno, pÅ™ijímaÄ bude vybírat AC3+ stopu (bude-li dostupná)" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "Jestliže je povoleno, timeshift se na pozadí automaticky spustí po nastavené dobÄ›." + +# +msgid "When enabled, use DHCP for the IP configuration." +msgstr "PÅ™i povolení používá DHCP pro nastavení IP." + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "Jestliže je povoleno, pÅ™ijímaÄ bude detekovat aktivitu na vstupu VCR SCART." + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "PÅ™i nenulové hodnotÄ› nahrávání zaÄne dříve, než je Äas zaÄátku uvedený v EPG. " + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "PÅ™i nenulové hodnotÄ› nahrávání skonÄí pozdÄ›ji, než je Äas konce uvedený v EPG. " + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "Pro obsah s pomÄ›rem stran 16:9 zvolte, zda chcete zmÄ›nit velikost/roztáhnout obraz. " + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "Pro obsah s pomÄ›rem stran 4:3 zvolte, zda chcete zmÄ›nit velikost/roztáhnout obraz. " + +# +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"Jestliže provedete tovární nastavení, ztratíte veÅ¡kerá konfiguraÄní data\n" +"(vÄetnÄ› pÅ™ehledů, programů, satelitních dat ...)\n" +"Po dokonÄení továrního nastavení bude pÅ™ijímaÄ automaticky restartován!\n" +"\n" +"Chcete opravdu provést tovární nastavení?" + +# +msgid "Where do you want to backup your settings?" +msgstr "Kam chcete zazálohovat VaÅ¡e nastavení?" + +# +msgid "Where to save temporary timeshift recordings?" +msgstr "Kam ukládat doÄasný záznam timeshiftu?" + +# +msgid "Wireless LAN" +msgstr "Bezdrátová LAN" + +# +msgid "Wireless network" +msgstr "Bezdrátová síť" + +msgid "Wireless network configuration..." +msgstr "Nastavení bezdrátové sítÄ›..." + +msgid "Wireless network connection setup" +msgstr "Nastavení pÅ™ipojení bezdrátové sítÄ›" + +msgid "Wireless network connection setup." +msgstr "Nastavení pÅ™ipojení bezdrátové sítÄ›." + +msgid "Wireless network state" +msgstr "Stav bezdrátové sítÄ›" + +msgid "With popup" +msgstr "s dialogem" + +msgid "Without popup" +msgstr "bez dialogu" + +msgid "Would you like to install a softcam?" +msgstr "Chcete nainstalovat softcam?" + +# +msgid "Write error while recording. Disk full?\n" +msgstr "Chyba zápisu bÄ›hem nahrávání. Plný disk?\n" + +# +msgid "Write failed!" +msgstr "Zápis selhal!" + +# +msgid "YPbPr" +msgstr "YPbPr" + +# +msgid "Year" +msgstr "Rok" + +# +msgid "Yellow DVB subtitles" +msgstr "Žluté DVB titulky" + +# +msgid "Yes" +msgstr "Ano" + +msgid "Yes and save" +msgstr "Ano a uložit" + +msgid "Yes and save in movie dir" +msgstr "Ano a uložit do adresáře filmů" + +# +msgid "Yes to all" +msgstr "Ano pro vÅ¡echny" + +msgid "Yes, always" +msgstr "Ano, vždy" + +# +msgid "Yes, and delete this movie" +msgstr "Ano, a smazat tento film" + +# +msgid "Yes, backup my settings!" +msgstr "Ano, zazálohuj moje nastavení!" + +# +msgid "Yes, delete this movie and return to movie list" +msgstr "Ano, a smazat film a zpÄ›t na seznam filmů" + +# +msgid "Yes, do a manual scan now" +msgstr "Ano, proveÄ ruÄní prohledávání" + +# +msgid "Yes, do an automatic scan now" +msgstr "Ano, spusÅ¥ automatické prohledávání" + +# +msgid "Yes, do another manual scan now" +msgstr "Ano, proveÄ další ruÄní prohledávání" + +# +msgid "Yes, perform a shutdown now." +msgstr "Ano, vypnout systém." + +# +msgid "Yes, restore the settings now" +msgstr "Ano, nyní obnovit nastavení" + +# +msgid "Yes, returning to movie list" +msgstr "Ano, vrátit se na seznam filmů" + +# +msgid "Yesterday" +msgstr "VÄera" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" +"Již máte seznam kanálů instalován,\n" +"chtÄ›li byste odstranit\n" +"\"%s\"?" + +# +msgid "You can cancel the installation." +msgstr "Můžete zruÅ¡it instalaci." + +# +msgid "You can cancel the removal." +msgstr "Můžete zruÅ¡it odstranÄ›ní." + +msgid "You can continue watching TV etc. while this is running." +msgstr "V průbÄ›hu můžete pokraÄovat ve sledování TV atd. " + +# +msgid "You can install this plugin." +msgstr "Můžete instalovat tento plugin." + +msgid "You can only burn receiver recordings!" +msgstr "Můžete vypalovat pouze nahrávky z pÅ™ijímaÄe!" + +# +msgid "You can remove this plugin." +msgstr "Můžete odstranit tento plugin" + +# +msgid "You cannot delete this!" +msgstr "Nemůžete toto smazat!" + +msgid "You didn't select a channel to record from." +msgstr "Nezvolili jste kanál pro nahrávání." + +# +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "Zvolili jste zálohování VaÅ¡ich nastavení. Prosím, stisknÄ›te OK pro spuÅ¡tÄ›ní zálohování." + +# +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "Zvolili jste vytvoÅ™ení nového bootovacího USB zařízení. To způsobí, že na USB zařízení budou vÅ¡echna pÅ™edchozí data vymazána. " + +# +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "Zvolili jste obnovení VaÅ¡ich nastavení. Enigma2 se po obnovÄ› zrestartuje. Prosím, stisknÄ›te OK pro spuÅ¡tÄ›ní obnovy." + +# +#, python-format +msgid "You have to wait %s!" +msgstr "Musíte poÄkat %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" +"PotÅ™ebujete PC pÅ™ipojené k VaÅ¡emu pÅ™ijímaÄi. Pokud potÅ™ebujete další informace, navÅ¡tivte stránku http://www.dm7025.de.\n" +"Váš pÅ™ijímaÄ bude nyní zastaven. Poté, co provedete aktualizaci pomocí instrukcí popsaných na zmínÄ›né stránce, se Vás pÅ™ijímaÄ zeptá na obnovu nastavení." + +msgid "You system does not support ext4" +msgstr "Váš systém nepodporuje ext4" + +# +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "VaÅ¡e záloha byla úspěšnÄ› provedena . Budeme pokraÄovat vysvÄ›tlením dalšího postupu aktualizace." + +# +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "VaÅ¡e kompilace pÅ™esahuje kapacitu jednovrstvého DVD. Budete potÅ™ebovat Äisté dvouvrstvé DVD!" + +# +msgid "Your current collection will get lost!" +msgstr "VaÅ¡e souÄasná kompilace bude ztracena!" + +# +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"Firmware VaÅ¡eho frontprocesoru musí být aktualizován.\n" +"StisknÄ›te OK pro aktualizaci." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Frontprocesor bude aktualizován\n" +"ÄŒekejte, dokud se pÅ™ijímaÄ nerestartuje\n" +"To může trvat nÄ›kolik minut" + +# +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"VaÅ¡e internetové pÅ™ipojení nepracuje!\n" +"Zvolte prosím, co chcete dÄ›lat dál." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "Internetové pÅ™ipojení je funkÄní (ip: %s)" + +# +msgid "Your network configuration has been activated." +msgstr "Konfigurace sítÄ› byla aktivována." + +msgid "Your receiver does not have an internet connection" +msgstr "PÅ™ijímaÄ není pÅ™ipojen k internetu" + +# +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"PÅ™ijímaÄ je nyní pÅ™ipraven k používání.\n" +"\n" +"Internetové pÅ™ipojení nyní pracuje.\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Váš pÅ™ijímaÄ je nyní pÅ™ipraven k používání.\n" +"\n" +"VaÅ¡e internetové pÅ™ipojení nyní pracuje.\n" +"\n" +"Prosím, stisknÄ›te OK pro pokraÄování." + +msgid "Your receiver is rebooting" +msgstr "PÅ™ijímaÄ se restartuje" + +msgid "Your receiver is shutting down" +msgstr "PÅ™ijímaÄ se vypíná" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "Váš pÅ™ijímaÄ se vypíná. Prosím, poÄkejte..." + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "PÅ™ijímaÄ může být nyní nepoužitelný. Prosím, konzultujte s manuálem další pomoc pÅ™ed restartováním pÅ™ijímaÄe." + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "PÅ™ijímaÄ pÅ™eÅ¡el do standby kvůli ÄasovaÄi usínání." + +msgid "Your receiver will got to standby due to inactivity." +msgstr "PÅ™ijímaÄ pÅ™eÅ¡el do standby z důvodu neaktivity." + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "Váš pÅ™ijímaÄ bude restartován po stisknutí OK na dálkovém ovladaÄi." + +# +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"VaÅ¡e bezdrátové LAN internetové pÅ™ipojení nemůže být spuÅ¡tÄ›no!\n" +"Máte pÅ™ipojeno Váše USB WLAN zařízení?\n" +"\n" +"Zvolte prosím, co chcete dÄ›lat dál." + +msgid "Zap" +msgstr "PÅ™epnout" + +# +msgid "Zap back to previously tuned service?" +msgstr "PÅ™epnout zpÄ›t na pÅ™edchozí naladÄ›ný program?" + +# +msgid "Zap back to service before positioner setup?" +msgstr "PÅ™epnout zpÄ›t na program pÅ™ed nastavováním pozicioneru?" + +# +msgid "Zap back to service before tuner setup?" +msgstr "PÅ™epnout zpÄ›t na program pÅ™ed nastavením tuneru?" + +# +msgid "Zap focus to Picture in Picture" +msgstr "PÅ™epnout do obrazu v obraze" + +msgid "Zap focus to main screen" +msgstr "PÅ™epnout fokus do hlavní obrazovky" + +# +msgid "Zap mode" +msgstr "Zap mód" + +msgid "Zap to selected channel" +msgstr "pÅ™epnout na vybraný kanál" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "PÅ™epnout na vybraný kanál nebo zobrazit detailní informace o události (v závislosti na nastavení)" + +# +msgid "[alternative edit]" +msgstr "[úprava alternativ]" + +# +msgid "[bouquet edit]" +msgstr "[upravit pÅ™ehled]" + +# +msgid "[favourite edit]" +msgstr "[upravit oblíbené]" + +# +msgid "[move mode]" +msgstr "[pÅ™esun]" + +# +msgid "a gui to assign services/providers to common interface modules" +msgstr "Menu pÅ™iÅ™azení kanálů/poskytovatelů CI modulu" + +# +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "Menu pÅ™iÅ™azení kanálů/poskytovatelů/caids CI modulu" + +# +msgid "abort alternatives edit" +msgstr "zruÅ¡it úpravu alternativ" + +# +msgid "abort bouquet edit" +msgstr "zruÅ¡it úpravu pÅ™ehledu" + +# +msgid "abort favourites edit" +msgstr "zruÅ¡it úpravu oblíbených" + +# +msgid "about to start" +msgstr "právÄ› zaÄne" + +# +msgid "activate network adapter configuration" +msgstr "aktivace nastavení síťového adaptéru" + +# +msgid "add alternatives" +msgstr "pÅ™idat alternativy" + +# +msgid "add bookmark" +msgstr "pÅ™idat záložku" + +# +msgid "add bouquet" +msgstr "pÅ™idat pÅ™ehled" + +# +msgid "add marker" +msgstr "pÅ™idat znaÄku" + +# +msgid "add service to bouquet" +msgstr "pÅ™idat program do pÅ™ehledu" + +# +msgid "add service to favourites" +msgstr "pÅ™idat program do oblíbených" + +# +msgid "add to parental protection" +msgstr "pÅ™idat do rodiÄovské ochrany" + +msgid "adult movie/drama" +msgstr "pro dospÄ›lé/drama" + +# +msgid "advanced" +msgstr "rozšířený" + +msgid "adventure/western/war" +msgstr "dobrodružný/western/váleÄný" + +msgid "advertisement/shopping" +msgstr "reklama/nakupování" + +msgid "after " +msgstr "po " + +# +msgid "alphabetic" +msgstr "podle abecedy" + +# +msgid "alphabetic reverse" +msgstr "podle abecedy v opaÄném poÅ™adí" + +msgid "alternative" +msgstr "alternativa" + +# +msgid "always" +msgstr "vždy" + +msgid "and select next channel" +msgstr "a vybrat následující kanál" + +msgid "and select previous channel" +msgstr "a vybrat pÅ™edchozí kanál" + +msgid "arts/culture (without music, general)" +msgstr "umÄ›ní/kulura (bez hudby, obecnÄ›)" + +msgid "arts/culture magazine" +msgstr "umÄ›ní/kulturní magazín" + +msgid "athletics" +msgstr "atletika" + +# +msgid "audio tracks" +msgstr "audio stopy" + +msgid "auto" +msgstr "automaticky" + +# +msgid "automatic" +msgstr "automatické" + +# +msgid "back" +msgstr "zpÄ›t" + +# +msgid "background image" +msgstr "Obrázek pozadí" + +msgid "ballet" +msgstr "balet" + +#, python-format +msgid "bc%s" +msgstr "" + +# +msgid "better" +msgstr "lepší" + +# +msgid "black" +msgstr "Äerná" + +msgid "black & white" +msgstr "Äernobílé" + +# +msgid "blacklist" +msgstr "blacklist" + +# +msgid "blue" +msgstr "Modré" + +msgid "broadcasting/press" +msgstr "vysílání/tisk" + +# +msgid "by date" +msgstr "podle data" + +msgid "cartoon/puppets" +msgstr "karikatury/loutky" + +# +msgid "center" +msgstr "stÅ™ed" + +msgid "centered" +msgstr "uprostÅ™ed" + +msgid "centered, wrapped" +msgstr "uprostÅ™ed, více řádků" + +# +msgid "chapters" +msgstr "kapitoly" + +msgid "childrens's/youth program (general)" +msgstr "pro dÄ›ti a mláděž (obecnÄ›)" + +# +msgid "circular left" +msgstr "levá kruhová (polarizace)" + +# +msgid "circular right" +msgstr "pravá kruhová (polarizace)" + +msgid "comedy" +msgstr "komedie" + +# +msgid "complex" +msgstr "komplexní" + +# +msgid "config menu" +msgstr "konfiguraÄní menu" + +# +msgid "confirmed" +msgstr "potvrzeno" + +# +msgid "connected" +msgstr "pÅ™ipojeno" + +# +msgid "continue" +msgstr "pokraÄovat" + +msgid "cooking" +msgstr "vaÅ™ení" + +# +msgid "copy to bouquets" +msgstr "zkopírovat do pÅ™ehledů" + +# +msgid "create directory" +msgstr "založit adresář" + +#, python-format +msgid "currently installed image: %s" +msgstr "instalované image: %s" + +# +msgid "daily" +msgstr "dennÄ›" + +# +msgid "day" +msgstr "den" + +# +msgid "default" +msgstr "defaultní" + +# +msgid "delete cut" +msgstr "odstranit stÅ™ih" + +msgid "delete..." +msgstr "smazat..." + +msgid "descramble and record ecm" +msgstr "použít descramble a nahrávat ecm" + +msgid "detective/thriller" +msgstr "detektivka/thriller" + +# +msgid "disable" +msgstr "zakázat" + +# +msgid "disable move mode" +msgstr "zakázat pÅ™esun" + +# +msgid "disabled" +msgstr "zakázáno" + +# +msgid "disconnected" +msgstr "odpojeno" + +msgid "discussion/interview/debate" +msgstr "diskuse/rozhovor/debata" + +# +msgid "do nothing" +msgstr "nedÄ›lat nic" + +msgid "documentary" +msgstr "dokumentární" + +msgid "don't descramble, record ecm" +msgstr "nepoužít descramble, nahrávat ecm" + +# +msgid "done!" +msgstr "dokonÄeno!" + +msgid "east" +msgstr "východ" + +msgid "economics/social advisory" +msgstr "ekonomika/sociální poradenství " + +# +msgid "edit alternatives" +msgstr "upravit alternativy" + +msgid "education/science/factual topics (general)" +msgstr "vzdÄ›lávání/vÄ›da/vÄ›cná témata (obecnÄ›)" + +# +msgid "empty" +msgstr "prázdné" + +# +msgid "enable" +msgstr "povolit" + +# +msgid "enable bouquet edit" +msgstr "povolit úpravu pÅ™ehledu" + +# +msgid "enable favourite edit" +msgstr "Povolit úpravu oblíbených" + +# +msgid "enable move mode" +msgstr "povolit pÅ™esun" + +# +msgid "enabled" +msgstr "povoleno" + +# +msgid "end alternatives edit" +msgstr "ukonÄit úpravu alternativ" + +# +msgid "end bouquet edit" +msgstr "ukonÄit úpravu pÅ™ehledu" + +# +msgid "end cut here" +msgstr "konec stÅ™ihu zde" + +# +msgid "end favourites edit" +msgstr "ukonÄit úpravu oblíbených" + +msgid "entertainment (10-16 year old)" +msgstr "zábavný (10-16 let)" + +msgid "entertainment (6-14 year old)" +msgstr "zábavný (6-14 let)" + +# +msgid "equal to" +msgstr "stejné s" + +msgid "equestrian" +msgstr "jezdectví" + +# +msgid "exit DVD player or return to file browser" +msgstr "ukonÄit DVD pÅ™ehrávaÄ a vrátit se na seznam souborů" + +msgid "exit movielist" +msgstr "zavřít seznam filmů" + +# +msgid "exit network adapter configuration" +msgstr "zavřít nastavení síťového adaptéru " + +# +msgid "exit networkadapter setup menu" +msgstr "zavřít menu nastavení sítÄ›" + +msgid "experimental film/video" +msgstr "experimentální film/video" + +# +msgid "false" +msgstr "ne" + +msgid "fashion" +msgstr "móda" + +# +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "Formáty souborů (BMP, PNG, JPG, GIF)" + +# +msgid "filename" +msgstr "Název souboru" + +msgid "film/cinema" +msgstr "film/kino" + +msgid "fine arts" +msgstr "výtvarné umÄ›ní " + +# +msgid "fine-tune your display" +msgstr "doladit Váš display" + +msgid "fitness & health" +msgstr "fitness & zdraví" + +# +msgid "flat alphabetic" +msgstr "abecednÄ› (vÄetnÄ› složek)" + +# +msgid "flat alphabetic reverse" +msgstr "abecednÄ› v opaÄném poÅ™adí (vÄetnÄ› složek)" + +msgid "folk/traditional music" +msgstr "folk/tradiÄní hudba" + +msgid "football/soccer" +msgstr "fotbal" + +msgid "foreign countries/expeditions" +msgstr "cizí zemÄ›/expedice" + +# +msgid "forward to the next chapter" +msgstr "pÅ™eskoÄit na další kapitolu" + +# +msgid "free" +msgstr "volného místa" + +msgid "from" +msgstr "z" + +msgid "further education" +msgstr "další vzdÄ›lávání" + +msgid "game show/quiz/contest" +msgstr "hra/kvíz/soutěž" + +msgid "gardening" +msgstr "zahradnictví" + +# +msgid "go to deep standby" +msgstr "pÅ™ejít do hlubokého spánku" + +# +msgid "go to standby" +msgstr "pÅ™ejít do pohotovostního režimu" + +# +msgid "grab this frame as bitmap" +msgstr "grabovat snímek jako bitmapu" + +# +msgid "green" +msgstr "Zelené" + +msgid "handicraft" +msgstr "ruÄní práce" + +# +msgid "height" +msgstr "výška" + +# +msgid "help..." +msgstr "nápovÄ›da..." + +# +msgid "horizontal" +msgstr "horizontální" + +msgid "information/education/school program" +msgstr "informace/vzdÄ›lání/Å¡kolní program" + +# +msgid "init module" +msgstr "inicializaÄní modul" + +# +msgid "init modules" +msgstr "inicializace modulů" + +# +msgid "insert mark here" +msgstr "vložit znaÄku" + +msgid "invalid type" +msgstr "neplatný typ" + +msgid "jazz" +msgstr "jazz" + +# +msgid "jump back to the previous title" +msgstr "pÅ™ejít na pÅ™edchozí titul" + +# +msgid "jump forward to the next title" +msgstr "pÅ™ejít na další titul" + +msgid "languages" +msgstr "jazyky" + +# +msgid "leave movie player..." +msgstr "opustit pÅ™ehrávaÄ" + +# +msgid "left" +msgstr "levý" + +msgid "left, wrapped" +msgstr "vlevo, více řádků" + +msgid "leisure hobbies (general)" +msgstr "koníÄky pro volný Äas (obecnÄ›)" + +# +msgid "length" +msgstr "délka" + +msgid "limit ..., aborting !" +msgstr "limit ..., ukonÄuji !" + +# +msgid "list style compact" +msgstr "kompaktní seznam" + +# +msgid "list style compact with description" +msgstr "kompaktní seznam s popisem" + +# +msgid "list style default" +msgstr "standardní seznam" + +# +msgid "list style single line" +msgstr "jednořádkový seznam" + +msgid "literature" +msgstr "literatura" + +msgid "live broadcast" +msgstr "živé vysílání" + +# +msgid "locked" +msgstr "zamknuto" + +# +msgid "loopthrough to" +msgstr "propojeno s" + +msgid "magazines/reports/documentary" +msgstr "magazíny/reportáže/dokumentární" + +# +msgid "manual" +msgstr "RuÄnÄ›" + +msgid "martial sports" +msgstr "bojové sporty" + +msgid "medicine/physiology/psychology" +msgstr "lékaÅ™ství/fyziologie/psychologie" + +# +msgid "menu" +msgstr "menu" + +# +msgid "mins" +msgstr "minut" + +# +msgid "minutes" +msgstr "minut" + +# +msgid "month" +msgstr "mÄ›síc" + +msgid "motor sport" +msgstr "motoristické sporty" + +msgid "motoring" +msgstr "motorismus" + +# +msgid "move down to last entry" +msgstr "pÅ™esunout na poslední záznam" + +# +msgid "move down to next entry" +msgstr "pÅ™esunout na další záznam" + +# +msgid "move up to first entry" +msgstr "pÅ™esunout na první záznam" + +# +msgid "move up to previous entry" +msgstr "pÅ™esunout na pÅ™edcházející záznam" + +msgid "movie/drama (general)" +msgstr "film/drama (obecnÄ›)" + +# +msgid "multinorm" +msgstr "multinorma" + +msgid "music/ballet/dance (general)" +msgstr "hudba/balet/tanec (obecnÄ›)" + +msgid "musical/opera" +msgstr "muzikál/opera" + +msgid "nature/animals/environment" +msgstr "příroda/zvířata/životní prostÅ™edí" + +# +msgid "never" +msgstr "nikdy" + +msgid "new media" +msgstr "new media" + +msgid "news magazine" +msgstr "zpravodajský magazín" + +msgid "news/current affairs (general)" +msgstr "zprávy/publicistika (obecnÄ›)" + +msgid "news/weather report" +msgstr "zprávy/zpravy o poÄasí" + +# +msgid "no" +msgstr "ne" + +# +msgid "no CAId selected" +msgstr "nevybrán CAid " + +# +msgid "no CI slots found" +msgstr "žádný CI slot nenalezen" + +# +msgid "no module found" +msgstr "žádný modul nenalezen" + +# +msgid "no storage devices found" +msgstr "žádné zařízení pro ukládání" + +# +msgid "none" +msgstr "žádný" + +msgid "normal" +msgstr "normální" + +# +msgid "not configured" +msgstr "nenakonfigurováno" + +# +msgid "not locked" +msgstr "nezamknuto" + +msgid "not supported" +msgstr "nepodporováno" + +# +msgid "not used" +msgstr "nepoužito" + +# +msgid "nothing connected" +msgstr "nic není pÅ™ipojeno" + +# +msgid "of a DUAL layer medium used." +msgstr "z DVOUVRSTVÉHO DVD použito." + +# +msgid "of a SINGLE layer medium used." +msgstr "z JEDNOVRSTVÉHO DVD použito." + +# +msgid "off" +msgstr "vypnuto" + +msgid "offset is" +msgstr "posun je" + +# +msgid "on" +msgstr "zapnuto" + +# +msgid "on READ ONLY medium." +msgstr "na READ ONLY médiu." + +msgid "on end of movie" +msgstr "na konci filmu" + +# +msgid "once" +msgstr "jednou" + +# +msgid "only from deep standby" +msgstr "pouze z hlubokého spánku" + +# +msgid "only from standby" +msgstr "pouze ze standby" + +# +msgid "open EPG..." +msgstr "otevřít EPG..." + +msgid "open Info..." +msgstr "otevřít Info..." + +# +msgid "open nameserver configuration" +msgstr "otevřít konfiguraci DNS" + +msgid "original" +msgstr "původní" + +msgid "original language" +msgstr "původní jazyk" + +# +msgid "pass" +msgstr "projít (pass)" + +msgid "performing arts" +msgstr "scénické umÄ›ní" + +# +msgid "play as picture in picture" +msgstr "pÅ™ehrát jako obraz v obraze" + +msgid "play in mainwindow" +msgstr "pÅ™ehrát v hlavním oknÄ›" + +# +msgid "please press OK when ready" +msgstr "stisknÄ›te OK až budete pÅ™ipraveni" + +# +msgid "please wait, loading picture..." +msgstr "Prosím Äekejte... náÄítám obrázek..." + +msgid "popular culture/traditional arts" +msgstr "lidová kultura/tradiÄní umÄ›ní" + +msgid "pre-school children's program" +msgstr "program pro pÅ™edÅ¡kolní dÄ›ti" + +msgid "receiver software because updates are available." +msgstr "software pÅ™ijímaÄe, jelikož aktualizace jsou dostupné." + +# +msgid "record" +msgstr "nahrát" + +# +msgid "recording..." +msgstr "nahrávání.." + +# +msgid "red" +msgstr "ÄŒervené" + +msgid "religion" +msgstr "náboženství" + +msgid "remarkable people" +msgstr "pozoruhodní lidé" + +# +msgid "remove after this position" +msgstr "odebrat po této pozici" + +# +msgid "remove all alternatives" +msgstr "odebrat vÅ¡echny alternativy" + +# +msgid "remove all new found flags" +msgstr "odstranit příznak \"novÄ› nalezeno\"" + +# +msgid "remove before this position" +msgstr "odebrat pÅ™ed touto pozicí" + +# +msgid "remove bookmark" +msgstr "smazat záložku" + +# +msgid "remove directory" +msgstr "smazat adresář" + +# +msgid "remove entry" +msgstr "odstranit položku" + +# +msgid "remove from parental protection" +msgstr "odebrat z rodiÄovské ochrany" + +# +msgid "remove new found flag" +msgstr "odebrat z \"novÄ› nalezeno\"" + +# +msgid "remove selected satellite" +msgstr "odstranit vybraný satelit" + +# +msgid "remove this mark" +msgstr "odebrat tuto znaÄku" + +msgid "rename entry" +msgstr "pÅ™ejmenovat" + +# +msgid "repeat playlist" +msgstr "Opakovat playlist" + +# +msgid "repeated" +msgstr "opakování" + +# +msgid "reverse by date" +msgstr "podle data v opaÄném poÅ™adí" + +# +msgid "rewind to the previous chapter" +msgstr "zpÄ›t na pÅ™edchozí kapitolu" + +# +msgid "right" +msgstr "pravý" + +msgid "right, wrapped" +msgstr "vpravo, více řádků" + +msgid "rock/pop" +msgstr "rock/pop" + +msgid "romance" +msgstr "romance" + +# +msgid "save last directory on exit" +msgstr "Uložit poslední adresář pÅ™i ukonÄení" + +# +msgid "save playlist on exit" +msgstr "PÅ™i ukonÄení uložit playlist" + +# +msgid "scan state" +msgstr "stav prohledávání" + +msgid "science fiction/fantasy/horror" +msgstr "scifi/fantastický/horor" + +# +msgid "second cable of motorized LNB" +msgstr "druhý kabel z natáÄeného LNB" + +# +msgid "seconds" +msgstr "sekund" + +# +msgid "select" +msgstr "výbÄ›r" + +# +msgid "select CAId's" +msgstr "výbÄ›r CAid's" + +# +msgid "select EPG..." +msgstr "vybrat EPG..." + +msgid "select Info..." +msgstr "vybrat Info..." + +# +msgid "select menu entry" +msgstr "zvolit položku z menu" + +msgid "select movie" +msgstr "zvolte film" + +msgid "select the movie path" +msgstr "zvolte cestu pro filmy" + +msgid "serious music/classic music" +msgstr "vážná hudba/klasická muzika" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "závažný/klasický/náboženský/historický film/drama" + +msgid "service PIN" +msgstr "programový PIN" + +msgid "set as startup service" +msgstr "nastavit jako program po spuÅ¡tÄ›ní" + +msgid "setup PIN" +msgstr "nastavit PIN" + +# +msgid "show DVD main menu" +msgstr "zobrazit DVD hlavní menu" + +# +msgid "show all tags" +msgstr "zobrazit vÅ¡echny tagy" + +# +msgid "show alternatives" +msgstr "zobrazit alternativy" + +# +msgid "show event details" +msgstr "zobrazit podrobnosti" + +msgid "show extended description" +msgstr "zobrazovat rozšířený popis" + +# +msgid "show mediaplayer on mainmenu" +msgstr "Zobrazovat Mediaplayer v hlavním menu" + +msgid "show softwaremanager in setup menu" +msgstr "Správa software v menu Nastavení" + +msgid "show softwaremanager on blue button" +msgstr "Správa software v Extended menu" + +msgid "show tag menu" +msgstr "zobrazovat tag menu" + +# +msgid "show transponder info" +msgstr "zobrazit info o transponderu" + +msgid "show/game show (general)" +msgstr "show/game show (obecnÄ›)" + +# +msgid "shuffle" +msgstr "náhodné uspořádání" + +# +msgid "shut down" +msgstr "vypnout" + +# +msgid "simple" +msgstr "jednoduchý" + +# +msgid "skip backward" +msgstr "pÅ™eskoÄit dozadu" + +# +msgid "skip forward" +msgstr "pÅ™eskoÄit dopÅ™edu" + +msgid "soap/melodram/folkloric" +msgstr "soap/melodrama/folklórní" + +msgid "social/political issues/economics (general)" +msgstr "spoleÄensko politické problémy/ekonomie (obecnÄ›)" + +msgid "social/spiritual science" +msgstr "sociální/duchovní vÄ›dy" + +# +msgid "sorting of playlists" +msgstr "TřídÄ›ní playlistů" + +# +msgid "special characters" +msgstr "speciální znaky" + +msgid "special events" +msgstr "zvláštní události" + +msgid "special format data DVD (HDTV compatible)" +msgstr "speciální formát data DVD (HDTV kompatibilní)" + +msgid "sports (general)" +msgstr "sporty (obecnÄ›)" + +msgid "sports magazine" +msgstr "sportovní magazín" + +# +msgid "standard" +msgstr "standard" + +# +msgid "start cut here" +msgstr "zaÄátek stÅ™ihu zde" + +# +msgid "start directory" +msgstr "Výchozí adresář" + +msgid "stepsize" +msgstr "krok" + +# +msgid "stereo" +msgstr "stereo" + +msgid "stop using as startup service" +msgstr "zruÅ¡it nastavení po spuÅ¡tÄ›ní" + +# +msgid "switch to bookmarks" +msgstr "pÅ™epnout do záložek" + +# +msgid "switch to filelist" +msgstr "pÅ™epnout na seznam souborů" + +# +msgid "switch to the next angle" +msgstr "pÅ™epnout na další pohled" + +# +msgid "switch to the next audio track" +msgstr "pÅ™epnout na další zvukovou stopu" + +# +msgid "switch to the next subtitle language" +msgstr "pÅ™epnout na další jazyk ve skrytých titulcích" + +msgid "talk show" +msgstr "talk show" + +msgid "team sports" +msgstr "týmové sporty" + +msgid "technology/natural science" +msgstr "technologie/přírodní vÄ›dy" + +# +msgid "template file" +msgstr "Soubor s Å¡ablonou" + +msgid "tennis/squash" +msgstr "tenis/skvoÅ¡" + +# +msgid "this recording" +msgstr "toto nahrávání" + +# +msgid "this service is protected by a parental control pin" +msgstr "tento programl je chránÄ›ný rodiÄovským zámkem" + +# +msgid "toggle time, chapter, audio, subtitle info" +msgstr "pÅ™epnout informace mezi Äasem, kapitolou, audiostopou, titulky" + +# +msgid "top" +msgstr "nahoÅ™e" + +msgid "tourism/travel" +msgstr "turistika/cestování" + +# +msgid "true" +msgstr "ano" + +msgid "unavailable" +msgstr "nedostupný" + +# +msgid "unconfirmed" +msgstr "nepotvrzeno" + +msgid "undefined" +msgstr "nedefinováno" + +# +msgid "unknown" +msgstr "neznámý" + +# +msgid "unknown service" +msgstr "neznámý program" + +msgid "unpublished" +msgstr "nepublikováno" + +# +msgid "until standby/restart" +msgstr "do standby/restartu" + +# +msgid "user defined" +msgstr "uživatelské" + +msgid "variety show" +msgstr "varieté" + +# +msgid "vertical" +msgstr "vertikální" + +# +msgid "wait for ci..." +msgstr "Äekat na CI..." + +# +msgid "wait for mmi..." +msgstr "Äekat na mmi..." + +# +msgid "waiting" +msgstr "Äekání" + +msgid "water sport" +msgstr "vodní sporty" + +# +msgid "weekly" +msgstr "týdnÄ›" + +msgid "west" +msgstr "západ" + +msgid "when PiPzap enabled zap channel down..." +msgstr "když je Pipzap povolen pak pÅ™epne kanál dolů..." + +msgid "when PiPzap enabled zap channel up..." +msgstr "když je Pipzap povolen pak pÅ™epne kanál nahoru..." + +# +msgid "white" +msgstr "bílá" + +# +msgid "whitelist" +msgstr "whitelist" + +# +msgid "width" +msgstr "šířka" + +msgid "winter sport" +msgstr "zimní sporty" + +msgid "wireless network interface" +msgstr "bezdrátový síťový adaptér" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "s %d chybou" +msgstr[1] "se %d chybami" +msgstr[2] "s %d chybami" + +# +msgid "working" +msgstr "pracuji" + +# +msgid "yellow" +msgstr "Žluté" + +# +msgid "yes" +msgstr "ano" + +# +msgid "yes (keep feeds)" +msgstr "ano (uchovat zdroje)" + +# +msgid "zap" +msgstr "pÅ™epnout" + +msgid "zap and record" +msgstr "pÅ™epnout a nahrát" + +# +msgid "zapped" +msgstr "pÅ™epnutý" + +# +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "Režim tlaÄítka 'pause' pÅ™i pozastavení filmu" + +#~ msgid "Configure the behavior of the 'pause' key when movie playback is already paused." +#~ msgstr "Nastavuje chování tlaÄítka 'pause' když je pÅ™ehrávání již pozastaveno." + +#~ msgid "Enable neutrino style zap controlling" +#~ msgstr "Povolit neutrino styl řízení pÅ™epínání" + +#~ msgid "When enabled the arrow buttons around the OK button will follow the neutrino style zap controls instead of the enigma2 style." +#~ msgstr "Pokud je povoleno, tlaÄítka se Å¡ipkami okolo tlaÄítka OK budou používat neutrino styl pÅ™epínání namísto stylu Enigma2." diff --git a/po/da.po b/po/da.po new file mode 100644 index 0000000..46b2ec8 --- /dev/null +++ b/po/da.po @@ -0,0 +1,9829 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: enigma2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2012-04-03 19:02+0100\n" +"Last-Translator: \n" +"Language-Team: None <tbt_dk@hotmail.com>\n" +"Language: da\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-Generator: Pootle 2.0.2\n" +"X-Poedit-Language: Danish\n" +"X-Poedit-SourceCharset: iso-8859-15\n" +"X-Poedit-Country: DENMARK\n" + +# +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"Avancerede indstillinger og opsætning." + +# +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"Efter tryk pÃ¥ OK, vent venligst!" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" + +# +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"Rediger kildeadressen til opgradering." + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" + +# +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"Tryk OK pÃ¥ din fjernbetjening for at fortsætte." + +# +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"Gendan dine backups efter dato." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" + +# +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"Søg efter lokale udvidelser og installer dem." + +# +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Vælg din backup enhed.\n" +"Nuværende enhed: " + +# +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"Se, installer og fjern nuværende eller installerede pakker." + +msgid " (PiP)" +msgstr " (BiB) " + +msgid " (Radio)" +msgstr "" + +msgid " (TV)" +msgstr "" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +msgid " extensions." +msgstr " filendelser." + +msgid " ms" +msgstr "" + +msgid " packages selected." +msgstr " pakker valgt." + +msgid " updates available." +msgstr " opdateringer tilgængelige_Ikke for Ferrari." + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "" + +msgid "%A %d %B" +msgstr "" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "" + +# +msgid "%H:%M" +msgstr "%T:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "" + +# +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, fuzzy, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "%d kanaler fundet!" +msgstr[1] "%d kanaler fundet!" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d time" +msgstr[1] "%d timer" + +# +#, fuzzy, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d jobs kører i baggrunden!" +msgstr[1] "%d jobs kører i baggrunden!" + +# +#, python-format +msgid "%d min" +msgstr "%d min" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minut" +msgstr[1] "%d minutter" + +#, python-format +msgid "%d minutes" +msgstr "%d minutter" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d sekund" +msgstr[1] "%d sekunder" + +#, fuzzy, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "root mappe" +msgstr[1] "root mappe" + +# +#, fuzzy, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "1 trÃ¥dløst netværk fundet!" +msgstr[1] "1 trÃ¥dløst netværk fundet!" + +msgid "%d-%b-%Y %-H:%M" +msgstr "" + +msgid "%d-%m" +msgstr "" + +# +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "" + +# +#, fuzzy, python-format +msgid "%s %s free disk space" +msgstr "fri HDD plads" + +# +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "" + +#, fuzzy, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] " opdateringer tilgængelige_Ikke for Ferrari." +msgstr[1] " opdateringer tilgængelige_Ikke for Ferrari." + +#, python-format +msgid "%s%d min" +msgstr "" + +#, python-format +msgid "%s/%s: %s" +msgstr "" + +# +msgid "(ZAP)" +msgstr "(ZAP)" + +msgid "(empty)" +msgstr "(tom)" + +msgid "(show optional DVD audio menu)" +msgstr "(Vis ekstra DVD lyd menu)" + +# +msgid "* Only available if more than one interface is active." +msgstr "* Kun tilgængelig hvis mere end et interface er aktivt." + +msgid "/s" +msgstr "" + +# +msgid "0" +msgstr "0" + +# +msgid "1" +msgstr "1" + +# +msgid "1.0" +msgstr "1.0" + +# +msgid "1.1" +msgstr "1.1" + +# +msgid "1.2" +msgstr "1.2" + +msgid "12V output" +msgstr "12V udgang" + +# +msgid "13 V" +msgstr "13 V" + +# +msgid "16:10" +msgstr "16:10" + +msgid "16:10 Letterbox" +msgstr "16:10 letterbox" + +msgid "16:10 PanScan" +msgstr "16:10 Panscan" + +# +msgid "16:9" +msgstr "16:9" + +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +msgid "16:9 always" +msgstr "Tving 16:9" + +# +msgid "18 V" +msgstr "18 V" + +# +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "" + +msgid "24" +msgstr "" + +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +# +msgid "3" +msgstr "3" + +msgid "30" +msgstr "" + +msgid "3d mode" +msgstr "" + +# +msgid "4" +msgstr "4" + +# +msgid "4:3" +msgstr "4:3" + +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +msgid "4:3 PanScan" +msgstr "4:3 Panscan" + +# +msgid "5" +msgstr "5" + +# +msgid "6" +msgstr "6" + +# +msgid "7" +msgstr "7" + +# +msgid "8" +msgstr "8" + +# +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +msgid "<Current movielist location>" +msgstr "<Nuværende filmliste placering>" + +# +msgid "<Default movie location>" +msgstr "<Standardplacering af film>" + +# +msgid "<Last timer location>" +msgstr "<Seneste timer placering>" + +# +msgid "<unknown>" +msgstr "<ukendt>" + +# +msgid "??" +msgstr "??" + +# +msgid "A" +msgstr "A" + +# +#, fuzzy, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"En konfigurationsfil (%s) er ændret siden installation.\n" +"Vil du beholde denne version?" + +# +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"En konfigurationsfil (%s) er ændret siden installation.\n" +"Vil du beholde denne version?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +# +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "Grafisk EPG for alle kanaler i en specifik buket" + +# +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"En optagelse er startet:\n" +"%s" + +# +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"En optagelse er i gang.\n" +"Hvad vil du gøre?" + +# +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "En optagelse er igang. Stop, venligst denne optagelse før konfigurering af Motoren." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "En optagelse er igang. Stop, venligst denne optagelse før du begynder kanalsøgning. " + +# +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "En optagelse er igang. Stop, venligst denne optagelse før start af Satfinder." + +# +#, python-format +msgid "A required tool (%s) was not found." +msgstr "Et nødvendigt værktøj (%s) ikke fundet." + +# +msgid "A search for available updates is currently in progress." +msgstr "Søgning efter tilgængelige opdateringer er aktuelt i gang." + +# +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"Der er fundet en anden konfigureret enhed.\n" +"\n" +"Vil du deaktivere den anden netværksenhed?" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +# +msgid "A small overview of the available icon states and actions." +msgstr "En lille oversigt over mulige ikon tilstande og handlinger." + +# +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"Timeroptagelse slÃ¥et fejl.\n" +"Skift kanal og prøv igen?\n" + +# +#, fuzzy +msgid "A/V settings" +msgstr "A/V Indstillinger" + +msgid "AC3/DTS downmix" +msgstr "AC3/DTS nedmix" + +# +msgid "Abort" +msgstr "Afbryd" + +# +msgid "About" +msgstr "Om" + +# +msgid "About..." +msgstr "Om..." + +# +msgid "Accesspoint:" +msgstr "Accesspoint:" + +# +msgid "Action on long powerbutton press" +msgstr "Handling ved langt powerknap tryk" + +msgid "Action on short powerbutton press" +msgstr "Handling ved kortvarigt tryk pÃ¥ tændknappen" + +# +msgid "Activate Picture in Picture" +msgstr "Aktiver Billed i Billed" + +# +#, fuzzy +msgid "Activate current configuration" +msgstr "aktiver den aktuelle opsætning" + +# +msgid "Activate network settings" +msgstr "Aktiver netværks indstilling" + +# +#, fuzzy +msgid "Activate the configured network settings." +msgstr "Aktiver netværks indstilling" + +# +msgid "Adapter settings" +msgstr "Adapter indstillinger" + +# +msgid "Add" +msgstr "Tilføj" + +# +msgid "Add Bookmark" +msgstr "Tilføj bogmærke" + +# +msgid "Add a mark" +msgstr "Tilføj en markør" + +# +#, fuzzy +msgid "Add a nameserver entry" +msgstr "tilføj en navneserver angivelse" + +# +msgid "Add a new title" +msgstr "Tilføj en ny titel" + +# +#, fuzzy +msgid "Add bookmark" +msgstr "tilføj bogmærke" + +# +#, fuzzy +msgid "Add directory to playlist" +msgstr "tilføj mappe til spilleliste" + +# +#, fuzzy +msgid "Add file to playlist" +msgstr "tilføj fil til spilleliste" + +# +#, fuzzy +msgid "Add files to playlist" +msgstr "tilføj filer til spilleliste" + +#, fuzzy +msgid "Add more details to the crash log" +msgstr "Opret mere detaljeret nedbrudslog" + +# +#, fuzzy +msgid "Add provider" +msgstr "tilføj udbyder" + +# +#, fuzzy +msgid "Add recording (enter recording duration)" +msgstr "tilføj optagelse ( skriv optagelses længde) " + +# +#, fuzzy +msgid "Add recording (enter recording endtime)" +msgstr "tilføje optagelse (skriv optagelsens sluttid)" + +# +#, fuzzy +msgid "Add recording (indefinitely)" +msgstr "tilføj optagelse (nu)" + +# +#, fuzzy +msgid "Add recording (stop after current event)" +msgstr "tilføj optagelse (stop efter nuværende program)" + +# +#, fuzzy +msgid "Add service" +msgstr "tilføj kanal" + +# +msgid "Add timer" +msgstr "Tilføj timer" + +# +msgid "Add title" +msgstr "Tilføj titel" + +# +msgid "Add to bouquet" +msgstr "Tilføj til pakke..." + +# +msgid "Add to favourites" +msgstr "Tilføj til favoritter" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "Juster 3D indstillinger" + +# +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "Juster alle farver, sÃ¥ alle farvebjælker kan næsten tydes, men optræder sÃ¥ gennemtrængende som muligt. Er du tilfreds med resultatet, tryk OK for at lukke Video-Finjustering, eller brug nummer knapper, for at vælge andre testbilleder." + +msgid "Advanced" +msgstr "" + +# +#, fuzzy +msgid "Advanced options" +msgstr "Avancerede indstillinger" + +# +msgid "Advanced restore" +msgstr "Avanceret gendannelse" + +# +#, fuzzy +msgid "Advanced software" +msgstr "Avanceret Software" + +# +#, fuzzy +msgid "Advanced software plugin" +msgstr "Avanceret Software Plugin" + +# +#, fuzzy +msgid "Advanced video enhancement setup" +msgstr "Avanceret opsætning af videoforbedring" + +# +#, fuzzy +msgid "Advanced video setup" +msgstr "Avanceret video indstilling" + +# +msgid "After event" +msgstr "Efter opgave" + +# +msgid "Album" +msgstr "Album" + +msgid "Alignment of events" +msgstr "" + +msgid "Alignment of service names" +msgstr "" + +# +msgid "All" +msgstr "Alle" + +msgid "All ages" +msgstr "" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "" + +msgid "Allocate unused memory index" +msgstr "" + +msgid "Allow quit movieplayer with exit" +msgstr "" + +#, fuzzy +msgid "Allow subtitle language to equal audio language" +msgstr "tillad tekst er lig Audio maske" + +#, fuzzy +msgid "Allow subtitles for hearing impaired" +msgstr "Tillad tekst for hørehæmmede" + +# +msgid "Alpha" +msgstr "Alpha" + +# +#, fuzzy +msgid "Alternative" +msgstr "tilføj alternativer" + +# +#, fuzzy +msgid "Alternative numbering mode" +msgstr "Alternativ radio type" + +# +msgid "Alternative services tuner priority" +msgstr "Alternativ kanal tuner prioritet" + +msgid "Always ask" +msgstr "Spørg altid" + +msgid "Always hide infobar" +msgstr "" + +# +msgid "An empty filename is illegal." +msgstr "Et tomt filnavn er ugyldigt." + +# +#, fuzzy +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "Der opstod en fejl under download af pakkelisten. Prøv venligst igen." + +# +msgid "An unknown error occurred!" +msgstr "Der opstod en ukendt fejl!" + +msgid "And will put your receiver in standby over " +msgstr "" + +msgid "Any activity" +msgstr "Enhver aktivitet" + +# +msgid "Arabic" +msgstr "Arabisk" + +msgid "Are you sure to remove this entry?" +msgstr "" + +# +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"Er du sikker pÃ¥, at du vil aktivere denne netværks opsætning?\n" +"\n" + +# +#, fuzzy +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"Bekræft at du vil slette\n" +"følgende backup:\n" + +# +msgid "Are you sure you want to exit this wizard?" +msgstr "Bekræft at du vil afslutte denne hjælper?" + +# +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"Er du sikker pÃ¥ at du vil genstarte dit netværkinterface?\n" +"\n" + +# +#, fuzzy, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Er du sikker pÃ¥, at du vil gendanne dit Enigma2 backup?\n" +"Enigma2 genstarter efter gendannelsen" + +# +#, fuzzy +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Er du sikker pÃ¥, at du vil gendanne dit Enigma2 backup?\n" +"Enigma2 genstarter efter gendannelsen" + +# +msgid "Artist" +msgstr "Kunstner" + +msgid "Arts/Culture" +msgstr "" + +# +msgid "Ask user" +msgstr "Spørg bruger" + +# +#, fuzzy +msgid "Aspect ratio" +msgstr "Billed format" + +# +#, fuzzy +msgid "Assigned CAIds:" +msgstr "tilknyttede CAId'er:" + +# +#, fuzzy +msgid "Assigned services/provider:" +msgstr "tilknyttede kanaler/udbydere:" + +#, fuzzy +msgid "At beginning" +msgstr "ved starten" + +#, fuzzy +msgid "At end" +msgstr "ved enden" + +# +msgid "Audio" +msgstr "Lyd" + +msgid "Audio PID" +msgstr "Lyd PID" + +msgid "Audio language selection 1" +msgstr "Lydsprogs valg 1" + +msgid "Audio language selection 2" +msgstr "Lydsprogs valg 2" + +msgid "Audio language selection 3" +msgstr "Lydsprogs valg 3" + +msgid "Audio language selection 4" +msgstr "Lydsprogs valg 4" + +# +#, fuzzy +msgid "Audio options..." +msgstr "Lyd Valg..." + +# +#, fuzzy, python-format +msgid "Audio track (%s) format" +msgstr "lydspor (%s) format" + +# +#, fuzzy, python-format +msgid "Audio track (%s) language" +msgstr "lydspor (%s) sprog" + +# +msgid "Author: " +msgstr "Forfatter:" + +# +msgid "Authoring mode" +msgstr "Oprettelses type" + +# +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Auto" + +# +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Auto kapitel oprettelse hvert ? minut (0=aldrig) " + +# +msgid "Auto flesh" +msgstr "Auto flash" + +msgid "Auto focus" +msgstr "Autofokus" + +msgid "Auto focus commencing ..." +msgstr "Autofokus i gang" + +msgid "Auto language selection" +msgstr "Auto Sprogvalg" + +# +msgid "Auto scart switching" +msgstr "Autoskift Scart" + +# +msgid "Automatic" +msgstr "Automatisk" + +# +#, fuzzy +msgid "Automatic scan" +msgstr "Automatisk søgning" + +msgid "Automatically start timeshift after" +msgstr "" + +msgid "Automatically turn on external subtitles" +msgstr "" + +# +msgid "Available format variables" +msgstr "Tilgængelige format variabler" + +# +msgid "B" +msgstr "B" + +# +msgid "BER" +msgstr "BER" + +# +msgid "BER:" +msgstr "BER:" + +# +msgid "Back" +msgstr "Tilbage" + +# +msgid "Background" +msgstr "Baggrund" + +# +#, fuzzy +msgid "Background color" +msgstr "baggrundsfarve" + +msgid "Background delete option" +msgstr "Baggrund slet option" + +msgid "Background delete speed" +msgstr "Baggrund opdateringshastighed" + +# +#, fuzzy +msgid "Backup completed." +msgstr "Backup mislykkedes." + +# +msgid "Backup failed." +msgstr "Backup mislykkedes." + +# +msgid "Backup is running..." +msgstr "Backup afvikles..." + +# +msgid "Backup system settings" +msgstr "Lav backup af systemindstillinger" + +# +msgid "Band" +msgstr "BÃ¥nd" + +# +msgid "Bandwidth" +msgstr "BÃ¥ndbredde" + +msgid "Basque" +msgstr "" + +# +msgid "Begin time" +msgstr "Start tid" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +# +msgid "Behavior of 0 key in PiP-mode" +msgstr "Opførsel af 0 tast i PiP-type" + +# +msgid "Behavior when a movie is started" +msgstr "Opførsel nÃ¥r en film startes" + +# +msgid "Behavior when a movie is stopped" +msgstr "Opførsel nÃ¥r en film stoppes" + +# +msgid "Behavior when a movie reaches the end" +msgstr "Opførsel nÃ¥r filmen er næsten slut" + +msgid "Big PiP" +msgstr "" + +# +msgid "Bitrate:" +msgstr "Bitrate:" + +msgid "Black screen" +msgstr "-Sort Skærm" + +msgid "Black screen till locked" +msgstr "Sort Skærm indtil lÃ¥st" + +# +msgid "Block noise reduction" +msgstr "Video støjreduktion" + +# +msgid "Blue boost" +msgstr "BlÃ¥ forstærkning" + +# +msgid "Bookmarks" +msgstr "Bogmærker" + +# +msgid "Brightness" +msgstr "Lysstyrke" + +msgid "Bulgarian" +msgstr "Bulgarisk" + +# +msgid "Burn DVD" +msgstr "Brænde DVD" + +# +#, fuzzy, python-format +msgid "Burn audio track (%s)" +msgstr "brænd lydspor (%s)" + +# +msgid "Burn existing image to DVD" +msgstr "Brænd eksisterende image til DVD" + +# +#, fuzzy +msgid "Burn to DVD" +msgstr "Brænd til DVD..." + +# +msgid "Bus: " +msgstr "Bus:" + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "" + +# +msgid "C" +msgstr "C" + +# +msgid "C-Band" +msgstr "C-BÃ¥nd" + +msgid "CH" +msgstr "" + +# +msgid "CI assignment" +msgstr "CI tildeling" + +# +msgid "CVBS" +msgstr "CVBS" + +# +msgid "Cable" +msgstr "Kabel" + +msgid "Cable Scan" +msgstr "Kabelsøgning" + +# +#, fuzzy +msgid "Cache thumbnails" +msgstr "Hente Oversigt" + +msgid "Calculate" +msgstr "Beregn" + +msgid "Calculate all positions" +msgstr "Beregn alle positioner" + +msgid "Calculation complete" +msgstr "Beregning færdig" + +msgid "Calibrate" +msgstr "Kalibrer" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "" + +# +msgid "Cancel" +msgstr "Fortryd" + +msgid "Cannot determine" +msgstr "Kan ikke bestemme" + +msgid "Cannot find any signal ..., aborting !" +msgstr "Kan ikke finde signal ..., afbryder !" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "Kan ikke flytte filer til anden disk, eller system til papirkurv" + +msgid "Cannot move to trash can" +msgstr "Kan ikke flytte til papirkurv" + +# +msgid "Capacity: " +msgstr "Kapacitet:" + +# +msgid "Card" +msgstr "Kort" + +msgid "Cascade PiP" +msgstr "" + +#, fuzzy +msgid "Center DVB subtitles" +msgstr "Centrer DVB Tekster" + +msgid "Center time-labels and remove date" +msgstr "" + +# +msgid "Change bouquets in quickzap" +msgstr "Skifte pakke i hurtigzap" + +# +msgid "Change pin code" +msgstr "Skifte pin kode" + +# +#, fuzzy +msgid "Change recording (duration)" +msgstr "skifte optagelse (længde)" + +# +#, fuzzy +msgid "Change recording (endtime)" +msgstr "skifte optagelses (sluttid)" + +msgid "Change repeat and delay settings?" +msgstr "Ændre gentage og forsinkelse" + +msgid "Change service PIN" +msgstr "Skift liste kode" + +msgid "Change service PINs" +msgstr "Skift service koder" + +msgid "Change setup PIN" +msgstr "Skit opsætningskode" + +# +msgid "Change step size" +msgstr "Skift trin afstand" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "Ændringer" + +# +msgid "Channel" +msgstr "Kanal Info..." + +# +#, fuzzy +msgid "Channel list type" +msgstr "Kanalliste Menu" + +# +msgid "Channel not in services list" +msgstr "Kanalen er ikke kanal oplistningen" + +# +#, fuzzy +msgid "Channel selection" +msgstr "Kanal Vælger" + +# +msgid "Channel:" +msgstr "Kanal:" + +# +msgid "Channellist menu" +msgstr "Kanalliste Menu" + +# +msgid "Chap." +msgstr "Kap." + +# +msgid "Chapter" +msgstr "Kapitel" + +# +msgid "Chapter:" +msgstr "Kapitel:" + +# +msgid "Check" +msgstr "Undersøg" + +msgid "Check the internet connection" +msgstr "" + +msgid "Check the internet connection again" +msgstr "" + +# +#, fuzzy +msgid "Checking filesystem..." +msgstr "Undersøge Filsystem..." + +msgid "Checking the internet connection" +msgstr "" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" + +msgid "Children/Youth" +msgstr "" + +msgid "Choose which tuner to configure." +msgstr "" + +# +msgid "Circular left" +msgstr "Venstre-cirkulær" + +# +msgid "Circular right" +msgstr "Højre-cirkulær" + +# +msgid "Cleanup" +msgstr "Oprydning" + +msgid "Clear" +msgstr "Slet" + +# +msgid "Clear before scan" +msgstr "Slet før søgning" + +msgid "Clear fixed" +msgstr "Slet faste" + +# +msgid "Clear log" +msgstr "Slet log" + +# +#, fuzzy +msgid "Clear playlist" +msgstr "slet spilleliste" + +# +msgid "Close" +msgstr "Afslut" + +msgid "Close PiP on exit" +msgstr "" + +# +msgid "Close title selection" +msgstr "Luk titel valg" + +msgid "Code rate HP" +msgstr "Koderate HP" + +msgid "Code rate LP" +msgstr "Koderate LP" + +# +msgid "Coderate HP" +msgstr "Koderate HP" + +# +msgid "Coderate LP" +msgstr "Koderate LP" + +# +msgid "Collection name" +msgstr "Kollektions navn" + +# +msgid "Collection settings" +msgstr "Kollektions indstillinger" + +# +#, fuzzy +msgid "Color format" +msgstr "Farve Format" + +# +msgid "Command execution..." +msgstr "Kommando udføres..." + +# +msgid "Command order" +msgstr "Kommando rækkefølge" + +# +msgid "Common Interface" +msgstr "CA Modul" + +# +#, fuzzy +msgid "Common Interface assignment" +msgstr "Common interface tildeling" + +# +msgid "Communication" +msgstr "Kommunikation" + +# +#, fuzzy +msgid "Compact flash" +msgstr "Kompakt Flash" + +# +msgid "Complete" +msgstr "Færdig" + +# +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "Kompleks (tillader blanding af lydspor og billedformater)" + +msgid "Composition of the recording filenames" +msgstr "Type af optagelsesnavne" + +# +#, fuzzy +msgid "Configuration mode" +msgstr "Konfigurations Type" + +# +#, fuzzy, python-format +msgid "Configuration mode: %s" +msgstr "Konfigurations Type" + +# +#, fuzzy +msgid "Configuration..." +msgstr "Netværks opsætning..." + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "" + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "" + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "" + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "" + +msgid "Configure how recording filenames are constructed." +msgstr "" + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +# +msgid "Configure interface" +msgstr "Opsætning af interface" + +# +msgid "Configure nameservers" +msgstr "Opsætning af navneservere" + +msgid "Configure on which devices the background delete option should be used." +msgstr "" + +#, fuzzy +msgid "Configure remote control type" +msgstr "dreambox fjernbetjening (native)" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "" + +# +#, fuzzy +msgid "Configure the IP address." +msgstr "Opsætning af interface" + +msgid "Configure the aspect ratio of the screen." +msgstr "" + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +# +#, fuzzy +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "Opførsel nÃ¥r en film stoppes" + +# +#, fuzzy +msgid "Configure the behavior when movie playback is started." +msgstr "Opførsel nÃ¥r en film startes" + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "" + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "" + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "" + +msgid "Configure the brightness level of the front panel display." +msgstr "" + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "" + +msgid "Configure the color of the teletext subtitles." +msgstr "" + +msgid "Configure the contrast level of the front panel display." +msgstr "" + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "" + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "" + +msgid "Configure the first audio language (highest priority)." +msgstr "" + +msgid "Configure the first subtitle language (highest priority)." +msgstr "" + +msgid "Configure the font size of the subtitles." +msgstr "" + +msgid "Configure the fourth audio language." +msgstr "" + +# +#, fuzzy +msgid "Configure the fourth subtitle language." +msgstr "skift til næste undertekst sprog" + +msgid "Configure the function of a long press on the power button." +msgstr "" + +msgid "Configure the function of a short press on the power button." +msgstr "" + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "" + +# +#, fuzzy +msgid "Configure the gateway." +msgstr "Opsætning af interface" + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "" + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "" + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "" + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "" + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "" + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "" + +msgid "Configure the latitude of your location." +msgstr "" + +msgid "Configure the longitude of your location." +msgstr "" + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "" + +# +#, fuzzy +msgid "Configure the nameserver (DNS)." +msgstr "Opsætning af navneservere" + +# +#, fuzzy +msgid "Configure the netmask." +msgstr "Opsætning af interface" + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "" + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "" + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "" + +#, fuzzy +msgid "Configure the possible fast forward speeds." +msgstr "Oprindelig fremspolingshastighed" + +msgid "Configure the possible rewind speeds." +msgstr "" + +msgid "Configure the primary EPG language." +msgstr "" + +msgid "Configure the refresh rate of the screen." +msgstr "" + +msgid "Configure the screen resolution in PC output mode." +msgstr "" + +msgid "Configure the second audio language." +msgstr "" + +# +#, fuzzy +msgid "Configure the second subtitle language." +msgstr "skift til næste undertekst sprog" + +msgid "Configure the secondary EPG language." +msgstr "" + +msgid "Configure the sharpness of the video scaling." +msgstr "" + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "" + +# +#, fuzzy +msgid "Configure the slow motion speeds." +msgstr "Langsom bevægelse hastigheder" + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "" + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "" + +msgid "Configure the third audio language." +msgstr "" + +# +#, fuzzy +msgid "Configure the third subtitle language." +msgstr "skift til næste undertekst sprog" + +msgid "Configure the transparency of the OSD." +msgstr "" + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "" + +# +#, fuzzy +msgid "Configure the tuner mode." +msgstr "Konfigurations Type" + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "" + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "" + +msgid "Configure the video output mode (or resolution)." +msgstr "" + +msgid "Configure the way in which the receiver changes channels." +msgstr "" + +msgid "Configure where completed timers show up in the timer list." +msgstr "" + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "" + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "" + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "" + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "" + +msgid "Configure which color format should be used on the SCART output." +msgstr "" + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "" + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "" + +# +msgid "Configure your internal LAN" +msgstr "Konfigurer dit interne LAN" + +# +msgid "Configure your network again" +msgstr "Opsæt dit netværk igen" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "Konfigurer dine indstillinger, og tryk OK for at starte søgning" + +# +msgid "Configure your wireless LAN again" +msgstr "Konfigurer dit trÃ¥dløse LAN igen" + +msgid "Configures which video output connector will be used." +msgstr "" + +# +msgid "Configuring" +msgstr "Konfigurerer" + +# +msgid "Conflicting timer" +msgstr "Timer konflikt" + +# +msgid "Connect" +msgstr "Forbind" + +# +#, fuzzy +msgid "Connect to a wireless network" +msgstr "Forbind til et trÃ¥dløst netværk" + +msgid "Connected satellites" +msgstr "" + +# +msgid "Connected to" +msgstr "Forbundet til" + +# +msgid "Connected!" +msgstr "Forbundet!" + +# +msgid "Constellation" +msgstr "Fortryder" + +# +msgid "Content does not fit on DVD!" +msgstr "Indholdet kan ikke være pÃ¥ DVD'en!" + +# +msgid "Continue" +msgstr "Fortsæt" + +# +msgid "Continue in background" +msgstr "Fortsæt i baggrunden" + +# +#, fuzzy +msgid "Continue playback" +msgstr "Fortsæt afspilning" + +# +msgid "Continue playing" +msgstr "Fortsæt afspilning" + +msgid "Continues play (loop)" +msgstr "" + +# +msgid "Contrast" +msgstr "Kontrast" + +#, fuzzy +msgid "Convert ext3 filesystem to ext4" +msgstr "konverter filsystemet ext3 til ext4" + +msgid "Convert ext3 to ext4" +msgstr "Konverter ext3 til ext4" + +#, fuzzy +msgid "Converting ext3 to ext4..." +msgstr "Konverter ext3 til ext4..." + +msgid "Copy" +msgstr "Kopier" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "" + +msgid "Could not find installed channel list." +msgstr "" + +# +#, fuzzy +msgid "Could not load medium! No disc inserted?" +msgstr "Kunne ikke indlæse media! Ingen disk isat?" + +# +msgid "Could not open Picture in Picture" +msgstr "Kunne ikke Ã¥bne billede i billede" + +# +#, fuzzy, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "Kan ikke optage pÃ¥ grund af konfliktende timere %s" + +#, fuzzy, python-format +msgid "Could not record due to invalid service %s" +msgstr "Kan ikke optage, fejl pÃ¥ kanal %s" + +# +msgid "Create DVD-ISO" +msgstr "Opret DVD-ISO" + +msgid "Create more detailed crash log" +msgstr "Opret mere detaljeret nedbrudslog" + +# +#, python-format +msgid "Creating directory %s failed." +msgstr "Oprettelse af mappen %s mislykkedes." + +#, fuzzy +msgid "Creating filesystem" +msgstr "Opret Filsystem" + +#, fuzzy +msgid "Creating partition" +msgstr "Opret Partition" + +# +msgid "Croatian" +msgstr "Kroatisk" + +msgid "Current CEC address" +msgstr "Nuværende CEC Adresse" + +msgid "Current device: " +msgstr "Nuværende Enhed" + +msgid "Current event EPG" +msgstr "" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +# +msgid "Current settings:" +msgstr "Nuværende Indstilling:" + +# +#, fuzzy +msgid "Current transponder" +msgstr "Nuværende Transponder" + +# +msgid "Current value: " +msgstr "Nuværende værdi:" + +# +msgid "Current version:" +msgstr "Nuværende Version:" + +msgid "Currently installed image" +msgstr "Installeret Image" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +# +#, fuzzy +msgid "Custom skip time for '1'/'3' buttons" +msgstr "Bruger skip tid for '1'/'3'-taster" + +# +#, fuzzy +msgid "Custom skip time for '4'/'6' buttons" +msgstr "Bruger skip tid for '4'/'6'-taster" + +# +#, fuzzy +msgid "Custom skip time for '7'/'9' buttons" +msgstr "Bruger skip tid for '7'/'9'-taster" + +# +msgid "Customize" +msgstr "Bruger indstillinger" + +msgid "Customize channel list cursor behavior" +msgstr "" + +# +msgid "Cut" +msgstr "Klip" + +# +msgid "Cutlist editor..." +msgstr "Klipliste editor..." + +# +msgid "Czech" +msgstr "Tjekkisk" + +# +msgid "D" +msgstr "D" + +# +msgid "DHCP" +msgstr "DHCP" + +# +#, fuzzy +msgid "DMM advanced" +msgstr "avanceret" + +msgid "DMM normal" +msgstr "" + +# +msgid "DUAL LAYER DVD" +msgstr "DL DVD" + +msgid "DVB subtitle black transparency" +msgstr "DVB tekster Sort Transparent" + +msgid "DVB-C" +msgstr "" + +msgid "DVB-C ANNEX C" +msgstr "" + +# +msgid "DVB-S" +msgstr "DVB-S" + +# +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "" + +msgid "DVB-T2" +msgstr "" + +msgid "DVD data format" +msgstr "" + +# +#, fuzzy +msgid "DVD file browser" +msgstr "DVD fil gennemsyn" + +# +msgid "DVD media toolbox" +msgstr "DVD media værktøjskasse" + +# +#, fuzzy +msgid "DVD player" +msgstr "DVD afspiller" + +# +#, fuzzy +msgid "DVD titlelist" +msgstr "DVD titel oplistning" + +# +msgid "Danish" +msgstr "Dansk" + +# +msgid "Date" +msgstr "Dato" + +# +#, fuzzy +msgid "Date/time input" +msgstr "Tid/Dato input" + +# +#, fuzzy +msgid "Deep standby" +msgstr "Afbryde" + +# +msgid "Default" +msgstr "Standard" + +# +msgid "Default movie location" +msgstr "Standardplacering af film" + +# +#, fuzzy +msgid "Default settings" +msgstr "Standard opsætning" + +msgid "Delay before key repeat starts:" +msgstr "Forsinkelse pÃ¥ gentag tastetryk" + +msgid "Delay for external subtitles" +msgstr "" + +# +msgid "Delete" +msgstr "Slet" + +# +msgid "Delete entry" +msgstr "Slet indgang" + +# +msgid "Delete failed!" +msgstr "Slette fejl!" + +# +#, fuzzy +msgid "Delete file" +msgstr "slet fil" + +# +#, fuzzy +msgid "Delete playlist entry" +msgstr "slette spilleliste indhold" + +# +#, fuzzy +msgid "Delete saved playlist" +msgstr "slette gemt spilleliste" + +msgid "Delete timer" +msgstr "" + +# +#, fuzzy +msgid "Delete..." +msgstr "slet..." + +msgid "Deleted" +msgstr "Slettet" + +msgid "Deleted items" +msgstr "Slettede" + +msgid "Depth" +msgstr "Dybde" + +msgid "Descramble http streams" +msgstr "Afkod http Stream" + +# +msgid "Description" +msgstr "Beskrivelse" + +# +msgid "Deselect" +msgstr "Fravælg" + +msgid "Details for plugin: " +msgstr "Plugin Detaljer" + +# +msgid "Detected HDD:" +msgstr "HDD fundet:" + +# +msgid "Detected NIMs:" +msgstr "Fundne NIMs:" + +msgid "Devicename:" +msgstr "Enhedsnavn" + +msgid "Devide" +msgstr "" + +# +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +# +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +# +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +# +msgid "DiSEqC mode" +msgstr "DiSEqC type" + +# +#, fuzzy, python-format +msgid "DiSEqC port %s: %s" +msgstr "DiSEqC gentagelser" + +# +#, fuzzy +msgid "DiSEqC-tester settings" +msgstr "DiSEqC-test opsætning" + +# +msgid "Dialing:" +msgstr "Ringer op:" + +# +msgid "Digital contour removal" +msgstr "Digital konturfjernelse" + +# +msgid "Direct playback of linked titles without menu" +msgstr "Direkte afspilning af lænkede titler uden menu" + +msgid "Directory" +msgstr "Mappe" + +# +#, fuzzy, python-format +msgid "Directory %s does not exist." +msgstr "Mappen %s findes ikke." + +#, python-format +msgid "Directory %s nonexistent." +msgstr "" + +# +msgid "Directory browser" +msgstr "Mappe gennemsyn" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "" + +#, fuzzy, python-format +msgid "Directory contains %s and %s." +msgstr "Mappen indeholder %d fil(er) og %d undermapper.\n" + +# +msgid "Disable" +msgstr "Afbryd" + +# +msgid "Disable Picture in Picture" +msgstr "Afbryd Billed i Billed" + +msgid "Disable background scanning" +msgstr "Deaktiver baggrundssøgning" + +msgid "Disable timer" +msgstr "" + +# +msgid "Disabled" +msgstr "Afbrudt" + +# +msgid "Disconnect" +msgstr "Afbryd" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "Plads der skal reseveres til optagelser (I GB)" + +# +msgid "Display 16:9 content as" +msgstr "Vis 16:9 indhold som" + +# +msgid "Display 4:3 content as" +msgstr "Vis 4:3 indhold som" + +# +msgid "Display >16:9 content as" +msgstr "Vis > 16:9 indhold som" + +# +#, fuzzy +msgid "Display and userinterface" +msgstr "Visning og bruger interface" + +msgid "Display message before playing next movie" +msgstr "" + +# +#, fuzzy +msgid "Display setup" +msgstr "Display Indstillinger" + +# +#, fuzzy +msgid "Do not change" +msgstr "Ikke ændre" + +# +#, fuzzy +msgid "Do not record" +msgstr "optag ikke" + +# +#, fuzzy +msgid "Do nothing" +msgstr "gør intet" + +# +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Vil du virkelig kontrolere filsystemet?\n" +"Dette kan tage lang tid!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" +"Vil du virkelig konvertere filsystemet?\n" +"Det kan ikke fortrydes!" + +# +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Vil du virkelig slette %s?" + +# +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"Vil du virkelig downloade\n" +"pluginet \"%s\"?" + +# +msgid "Do you really want to exit?" +msgstr "Ønsker du virkelig at afslutte?" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" +"Vil du virkelig initialisere enheden?\n" +"Alle data overskrives!" + +# +#, fuzzy, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"Vil du virkelig downloade\n" +"pluginet \"%s\"?" + +# +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Vil du virkelig fjerne mappen %s fra disken?" + +# +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Vil du virkelig fjerne dit bogmærke af %s?" + +msgid "Do you want this?" +msgstr "" + +# +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Vil du brænde denne kollektion til DVD media?" + +# +msgid "Do you want to do a service scan?" +msgstr "Vil du lave en kanal søgning?" + +# +msgid "Do you want to do another manual service scan?" +msgstr "Vil du lave en anden manuel søgning?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "Vil du downloade imaget til %s ?" + +# +#, fuzzy +msgid "Do you want to install a channel list?" +msgstr "Vil du installere pakken:\n" + +# +msgid "Do you want to install the package:\n" +msgstr "Vil du installere pakken:\n" + +# +msgid "Do you want to play DVD in drive?" +msgstr "Vil du afspille DVD i drevet?" + +# +msgid "Do you want to preview this DVD before burning?" +msgstr "Vil du gennemse denne DVD inden brænding?" + +msgid "Do you want to reboot your receiver?" +msgstr "" + +# +msgid "Do you want to remove the package:\n" +msgstr "Vil du fjerne pakken:\n" + +# +msgid "Do you want to restore your settings?" +msgstr "Vil du genskabe dine indstillinger?" + +# +msgid "Do you want to resume this playback?" +msgstr "Vil du genoptage denne afspilning?" + +#, fuzzy, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Vil du downloade imaget til %s ?" + +msgid "Do you want to update your receiver?" +msgstr "" + +# +msgid "Do you want to upgrade the package:\n" +msgstr "Vil du opgradere pakken:\n" + +# +msgid "Don't stop current event but disable coming events" +msgstr "Stop ikke nuværende program men slÃ¥ kommende programmer fra" + +# +#, fuzzy, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "Færdig - Installeret, opgraderet eller fjernet %d pakker med %d fejl" +msgstr[1] "Færdig - Installeret, opgraderet eller fjernet %d pakker med %d fejl" + +# +msgid "Download" +msgstr "Download" + +#, fuzzy, python-format +msgid "Download %s from server" +msgstr "Download %s fra Server" + +msgid "Download .NFI-files for USB-flasher" +msgstr "Download .NFI-filer til USB flash" + +# +#, fuzzy +msgid "Download plugins" +msgstr "Hente Plugins" + +# +msgid "Downloadable new plugins" +msgstr "Hente nye Plugins" + +# +msgid "Downloadable plugins" +msgstr "Plugins der kan hentes" + +# +msgid "Downloading" +msgstr "Henter" + +# +msgid "Downloading plugin information. Please wait..." +msgstr "Henter plugin informationer. Vent venligst..." + +# +msgid "Dutch" +msgstr "Hollandsk" + +# +msgid "Dynamic contrast" +msgstr "Dynamisk kontrast" + +# +msgid "E" +msgstr "Ø" + +msgid "EPG" +msgstr "" + +msgid "EPG language selection 1" +msgstr "EPG Sprog valg 1" + +msgid "EPG language selection 2" +msgstr "EPG Sprog valg 2" + +# +#, fuzzy +msgid "EPG selection" +msgstr "EPG Valg" + +msgid "EPG settings" +msgstr "" + +# +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "FEJL - kan ikke søge (%s)!" + +# +msgid "East" +msgstr "Øst" + +msgid "East limit set" +msgstr "Øst grænse indstil" + +# +msgid "Edit" +msgstr "Rediger" + +# +msgid "Edit DNS" +msgstr "Ændre DNS" + +# +msgid "Edit bouquets list" +msgstr "Edit pakkeliste" + +# +msgid "Edit chapters of current title" +msgstr "Rediger kapitler i aktuel titel" + +# +msgid "Edit services list" +msgstr "Ændre kanallister" + +# +msgid "Edit settings" +msgstr "Ændre indstillinger" + +# +#, fuzzy +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "luk navneserver opsætning" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "" + +msgid "Edit timer" +msgstr "" + +# +msgid "Edit title" +msgstr "Rediger titel" + +# +msgid "Edit upgrade source url." +msgstr "Rediger url for opgraderingskilde." + +msgid "Education/Science/..." +msgstr "" + +# +msgid "Electronic Program Guide" +msgstr "Elektronisk Program Guide" + +# +msgid "Enable" +msgstr "Aktiver" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +# +msgid "Enable 5V for active antenna" +msgstr "Aktivere 5V for aktiv antenne" + +msgid "Enable EIT EPG" +msgstr "Aktiver EIT EPG" + +msgid "Enable MHW EPG" +msgstr "Aktiver MHV EPG" + +msgid "Enable Netmed EPG" +msgstr "Aktiver Nethmed EPG" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "Aktiver Viasat EPG" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +#, fuzzy +msgid "Enable bouquet selection in multi-EPG" +msgstr "Vis kanalistevalg menu" + +msgid "Enable freesat EPG" +msgstr "Aktiver Freesat EPG" + +# +msgid "Enable multiple bouquets" +msgstr "Aktivere multi pakker" + +# +msgid "Enable parental control" +msgstr "Aktivere forældre kontrol?" + +msgid "Enable teletext caching" +msgstr "Aktiver teletekst lagring" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +# +msgid "Enabled" +msgstr "Aktiveret" + +# +msgid "Encrypted: " +msgstr "Krypteret:" + +# +msgid "Encryption" +msgstr "Kodning" + +# +#, fuzzy +msgid "Encryption key" +msgstr "Kodnings Nøgle" + +# +#, fuzzy +msgid "Encryption key type" +msgstr "Kodnings nøgletype" + +# +msgid "Encryption:" +msgstr "Kryptering:" + +# +msgid "End time" +msgstr "Stop tid" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +# +msgid "English" +msgstr "Engelsk" + +# +#, fuzzy +msgid "Enigma2 skin selector" +msgstr "enigma2 og netværk" + +# +msgid "Enter main menu..." +msgstr "Ã…bne hoved menu..." + +# +msgid "Enter pin code" +msgstr "Indtast Pinkode" + +# +msgid "Enter the service pin" +msgstr "Skriv service koden" + +msgid "Equal to" +msgstr "" + +# +msgid "Error" +msgstr "Fejl" + +msgid "Error code" +msgstr "Fejlkode" + +# +msgid "Error executing plugin" +msgstr "Fejl ved kørsel af plugin" + +# +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Fejl: %s\n" +"Prøve igen?" + +# +msgid "Estonian" +msgstr "Estisk" + +msgid "Ethernet network interface" +msgstr "Ethernet netværksinterface" + +#, fuzzy +msgid "Event font size (relative to skin size)" +msgstr "Begivendhed Font (relativ til skin)" + +# +#, fuzzy +msgid "Event view" +msgstr "Programoversigt" + +#, fuzzy +msgid "Event view menu" +msgstr "Programoversigt menu" + +msgid "Everywhere" +msgstr "Over det hele" + +# +#, fuzzy +msgid "Exceeds dual layer medium!" +msgstr "overskrider dobbelt lags media!" + +# +msgid "Execution finished!!" +msgstr "Kommandoen udført!!" + +# +#, fuzzy +msgid "Execution progress:" +msgstr "Kommando status:" + +# +msgid "Exif" +msgstr "Afslut" + +# +msgid "Exit" +msgstr "Afslut" + +msgid "Exit EPG" +msgstr "Forlad EPG" + +# +msgid "Exit editor" +msgstr "Afslut editor" + +msgid "Exit input device selection." +msgstr "Afslut enhedsvalg" + +msgid "Exit media player?" +msgstr "" + +# +#, fuzzy +msgid "Exit mediaplayer" +msgstr "luk medieafspiller" + +# +#, fuzzy +msgid "Exit movie list" +msgstr "luk filmliste" + +# +#, fuzzy +msgid "Exit movie player?" +msgstr "luk medieafspiller" + +# +#, fuzzy +msgid "Exit nameserver configuration" +msgstr "luk navneserver opsætning" + +# +#, fuzzy +msgid "Exit network interface list" +msgstr "luk netværk interfaceoversigt" + +# +msgid "Exit network wizard" +msgstr "Afbryd netværkshjælper" + +# +msgid "Exit the wizard" +msgstr "Afslut guiden" + +# +msgid "Expert" +msgstr "Ekspert" + +msgid "Extend sleeptimer 15 minutes" +msgstr "" + +# +msgid "Extended Software" +msgstr "Udvidet software" + +# +msgid "Extended Software Plugin" +msgstr "Udvidet software plugin" + +# +#, fuzzy +msgid "Extended network setup plugin..." +msgstr "Udvidet netværk opsætnings plugin..." + +# +#, fuzzy +msgid "Extended setup..." +msgstr "Udvidet opsætning..." + +# +msgid "Extensions" +msgstr "Ekstra menu" + +# +msgid "Extensions management" +msgstr "HÃ¥ndtering af udvidelser" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "" + +msgid "Extra motor options" +msgstr "" + +# +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "FTA" + +# +msgid "Factory reset" +msgstr "Gendan fabriksindstilling" + +# +msgid "Failed" +msgstr "Fejlet" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "" + +# +#, python-format +msgid "Fan %d" +msgstr "Ventilator %d" + +# +#, python-format +msgid "Fan %d PWM" +msgstr "Ventilator %d PWM" + +# +#, fuzzy, python-format +msgid "Fan %d voltage" +msgstr "Ventilator %d spænding (V)" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +# +msgid "Fast" +msgstr "Hurtig" + +# +msgid "Fast DiSEqC" +msgstr "Hurtig DiSEqC" + +msgid "Fast Scan" +msgstr "Hurtig søgning" + +# +msgid "Fast epoch" +msgstr "Hurtig epoch" + +# +#, fuzzy +msgid "Fast forward speeds" +msgstr "Hurtig frem hastigheder" + +# +msgid "Favourites" +msgstr "Favoritter" + +msgid "File appears to be busy.\n" +msgstr "Filen virker optaget.\n" + +# +#, fuzzy +msgid "Filesystem check" +msgstr "Kontroller filsystem" + +msgid "Final position at" +msgstr "Slutposition ved" + +msgid "Final position at index" +msgstr "Slutposition ved Index" + +msgid "Fine movement" +msgstr "Fin bevægelse" + +# +msgid "Finetune" +msgstr "Fintuning" + +# +msgid "Finished" +msgstr "Færdig" + +# +msgid "Finished configuring your network" +msgstr "Afsluttede opsætning af dit netværk" + +# +msgid "Finished restarting your network" +msgstr "Afsluttede genstart af dit netværk" + +# +msgid "Finnish" +msgstr "Finsk" + +#, fuzzy +msgid "Fixed" +msgstr "fast" + +# +msgid "Flash" +msgstr "Flash" + +# +msgid "Flashing failed" +msgstr "Flash mislykkedes" + +# +msgid "Following tasks will be done after you press OK!" +msgstr "Følgende opgaver vil blive udført efter tryk pÃ¥ OK!" + +# +msgid "Format" +msgstr "Formatere" + +msgid "Forward volume keys" +msgstr "Fremad lydstyke" + +# +msgid "Frame size in full view" +msgstr "Billed størrelse i fuld " + +# +msgid "French" +msgstr "Fransk" + +# +msgid "Frequency" +msgstr "Frekvens" + +# +msgid "Frequency bands" +msgstr "Frekvens bÃ¥nd" + +# +msgid "Frequency scan step size(khz)" +msgstr "Frekvens søgnings trin størrelse(khz)" + +# +msgid "Frequency steps" +msgstr "Frekvens trin" + +msgid "Frequency:" +msgstr "" + +# +msgid "Fri" +msgstr "Fre" + +# +msgid "Friday" +msgstr "Fredag" + +msgid "From :" +msgstr "Fra" + +# +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Frontprocessor Version: %d" + +#, fuzzy +msgid "Full transparency" +msgstr "fuld transparent" + +msgid "Fulview resulution" +msgstr "" + +msgid "Function of OK button" +msgstr "" + +msgid "Further Options" +msgstr "" + +# +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"GUI skal genstartes for aktivering af nyt grafisk tema\n" +"Vil du genstarte GUI nu?" + +# +msgid "Gateway" +msgstr "Router adresse" + +# +#, fuzzy +msgid "General AC3 delay" +msgstr "Almindelig AC3 forsinkelse" + +# +#, fuzzy +msgid "General PCM delay" +msgstr "Almindelig PCM forsinkelse" + +# +msgid "Genre" +msgstr "Genre" + +# +msgid "German" +msgstr "Tysk" + +msgid "Get latest experimental image" +msgstr "Hent seneste eksperiment image" + +msgid "Get latest release image" +msgstr "Hent seneste image" + +# +msgid "Getting plugin information. Please wait..." +msgstr "Henter plugin information. Vent venligst..." + +msgid "Go down the list" +msgstr "GÃ¥ ned af listen" + +msgid "Go to first movie or last item" +msgstr "GÃ¥ til første film, eller sidste emne" + +msgid "Go to first movie or top of list" +msgstr "GÃ¥ til første film, eller toppen af listen" + +#, fuzzy +msgid "Go to first service" +msgstr "GÃ¥ til første kanal" + +#, fuzzy +msgid "Go to last service" +msgstr "GÃ¥ til sidste kanal" + +#, fuzzy +msgid "Go to next event" +msgstr "GÃ¥ til næste udsendelse" + +#, fuzzy +msgid "Go to next page of service" +msgstr "GÃ¥ til næste side af kanaler" + +#, fuzzy +msgid "Go to previous event" +msgstr "GÃ¥ til forrige udsendelse" + +#, fuzzy +msgid "Go to previous page of service" +msgstr "GÃ¥ til forrige side af kanaler" + +msgid "Go up the list" +msgstr "GÃ¥ op af listen" + +msgid "Goto" +msgstr "GÃ¥ til" + +# +msgid "Goto 0" +msgstr "GÃ¥ til 0" + +msgid "Goto :" +msgstr "GÃ¥ til :" + +msgid "Goto X" +msgstr "GÃ¥ til X" + +msgid "Goto index position" +msgstr "GÃ¥ til indeks" + +msgid "Goto next day of events" +msgstr "" + +msgid "Goto next page of events" +msgstr "GÃ¥ til næste side af udsendelse" + +# +msgid "Goto position" +msgstr "GÃ¥ til position" + +msgid "Goto previous day of events" +msgstr "" + +msgid "Goto previous page of events" +msgstr "GÃ¥ til forrige side af udsendelser" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "GÃ¥ til X calibrering" + +msgid "GraphMultiEpg Settings" +msgstr "" + +# +msgid "Graphical Multi EPG" +msgstr "Grafisk multi EPG" + +# +msgid "Greek" +msgstr "Græsk" + +# +msgid "Green boost" +msgstr "Grøn forstærkning" + +msgid "Guard interval" +msgstr "Beskyttelse interval" + +msgid "HD list" +msgstr "HD Liste" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "HÃ¥ndter Standby fra TV" + +msgid "Handle wakeup from TV" +msgstr "HÃ¥ndter VÃ¥gn op fra TV" + +# +#, fuzzy +msgid "Hard disk" +msgstr "Harddisk..." + +# +#, fuzzy +msgid "Hard disk setup" +msgstr "Harddisk opsætning" + +# +#, fuzzy +msgid "Hard disk standby after" +msgstr "Harddisk slumre efter:" + +# +msgid "Harddisk" +msgstr "Harddisk..." + +msgid "Hardware: " +msgstr "" + +msgid "Hebrew" +msgstr "Hebraisk" + +msgid "Helps setting up your dish" +msgstr "" + +msgid "Hidden network" +msgstr "Skjult netværk" + +msgid "Hide CI messages" +msgstr "Skjul CI beskeder" + +msgid "Hide channel list in radio mode" +msgstr "" + +msgid "Hide known extensions" +msgstr "" + +msgid "Hide number markers" +msgstr "" + +# +#, fuzzy +msgid "Hide player" +msgstr "skjul afspiller" + +msgid "Hide zap errors" +msgstr "Skjul zap fejl" + +msgid "Hierarchy info" +msgstr "Hieraki info" + +# +#, fuzzy +msgid "Hierarchy information" +msgstr "Hieraki information" + +# +msgid "High bitrate support" +msgstr "Høj bitrate understøtning" + +msgid "Hold screen" +msgstr "frys skærm" + +msgid "Hold till locked" +msgstr "frys til lÃ¥st" + +msgid "Home" +msgstr "Hjem" + +# +msgid "Horizontal" +msgstr "Horisontal" + +msgid "Horizontal turning speed" +msgstr "Horisontal drejehastighed" + +# +msgid "How many minutes do you want to record?" +msgstr "Hvor mange minutter vil du optage?" + +# +msgid "Hue" +msgstr "Klarhed" + +# +msgid "Hungarian" +msgstr "Ungarsk" + +# +#, fuzzy +msgid "IP address" +msgstr "IP-Adresse" + +# +msgid "ISO file is too large for this filesystem!" +msgstr "ISO filen er for stor til dette filsystem!" + +# +msgid "ISO path" +msgstr "ISO stien" + +msgid "Icons" +msgstr "Ikoner" + +# +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"Hvis du ser dette, sÃ¥ er noget galt med\n" +"din scart forbindelse. Tryk OK for at komme tilbage." + +# +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"Hvis dit TV har Lysstyrke eller Kontrast indstilling, sÃ¥ slÃ¥ dette fra. Forefindes en \"dynamisk\" indstilling, sæt denne til standard. Juster baglysstyrke sÃ¥ den passer til din smag. Skru ned for din Kontrast sÃ¥ meget som muligt.\n" +"Derefter skru din Lysstyrke sÃ¥ langt ned, sÃ¥ du stadig kan se skyggerne af de GrÃ¥ bjælker.\n" +"Tænk ikke pÃ¥ de lyse skygger nu. De vil blive indstillet i næste trin.\n" +"Hvis du er tilfreds med resultatet, tryk OK." + +msgid "Image: " +msgstr "" + +# +#, fuzzy +msgid "Immediate shutdown" +msgstr "omgÃ¥ende afbrydelse" + +# +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "For at optage via timer, er TV skiftet til optage kanal!\n" + +# +#, fuzzy +msgid "In progress" +msgstr "Arbejder" + +msgid "Inactivity Sleeptimer" +msgstr "" + +msgid "Include AIT in http streams" +msgstr "Inkluder AIT i http stream" + +msgid "Include ECM in http streams" +msgstr "Inkluder ECM i http stream" + +msgid "Include EIT in http streams" +msgstr "Inkluder EIT i http stream" + +msgid "Incorrect type service for PiP!" +msgstr "" + +# +msgid "Increased voltage" +msgstr "Øget spænding" + +# +msgid "Index" +msgstr "Oversigt" + +msgid "Index allocated:" +msgstr "" + +# +msgid "Info" +msgstr "Info" + +# +#, fuzzy +msgid "Info bar" +msgstr "InfoBjælke" + +# +#, fuzzy +msgid "Info bar timeout" +msgstr "Infobar tid" + +msgid "Infobar frontend data source" +msgstr "" + +# +msgid "Information" +msgstr "Information" + +# +msgid "Init" +msgstr "Initialiser" + +#, fuzzy +msgid "Initial fast forward speed" +msgstr "Oprindelig fremspolingshastighed" + +# +msgid "Initial location in new timers" +msgstr "Oprindelig placering i nye timere" + +msgid "Initial lock ratio" +msgstr "Oprindelig lÃ¥s ratio" + +#, fuzzy +msgid "Initial rewind speed" +msgstr "oprindelig tilbagespolingshastighed" + +msgid "Initial signal quality" +msgstr "Oprindelig signalkvalitet" + +msgid "Initial signal quality:" +msgstr "Oprindelig signal kvalitet" + +# +msgid "Initialization" +msgstr "Initialiserer" + +# +msgid "Initialize" +msgstr "Formatere" + +msgid "Initializing storage device..." +msgstr "Initialisering lagerenhed" + +# +msgid "Input" +msgstr "Indgang" + +msgid "Input device setup" +msgstr "Opsætning af enhed" + +msgid "Input devices" +msgstr "Enheder" + +# +msgid "Install" +msgstr "Installer" + +# +msgid "Install a new image with a USB stick" +msgstr "Installer et nyt image med en USB stick" + +# +msgid "Install a new image with your web browser" +msgstr "Installer et nyt image med din web browser" + +# +#, fuzzy +msgid "Install channel list" +msgstr "næste kanal i hukommelse" + +msgid "Install extensions" +msgstr "" + +# +msgid "Install extensions." +msgstr "Installer udvidelser." + +# +msgid "Install local extension" +msgstr "Installer lokal udvidelse" + +msgid "Install picons on" +msgstr "Installer picons pÃ¥" + +# +#, fuzzy +msgid "Install softcam" +msgstr "Installerer software..." + +#, fuzzy +msgid "Installation has completed." +msgstr "Beregning færdig" + +# +#, fuzzy +msgid "Installation or removal has completed." +msgstr "Installer og fjern færdige." + +# +msgid "Installing" +msgstr "Installerer" + +# +#, fuzzy +msgid "Installing software..." +msgstr "Installerer software..." + +# +#, fuzzy +msgid "Instant recording location" +msgstr "Umiddelbar optagelsesplacering" + +# +#, fuzzy +msgid "Instant recording..." +msgstr "Hurtig optagelse..." + +# +msgid "Interface: " +msgstr "Interface: " + +# +msgid "Intermediate" +msgstr "Normal" + +# +#, fuzzy +msgid "Internal flash" +msgstr "Intern Flash" + +msgid "Internal hdd only" +msgstr "" + +msgid "Interval between keys when repeating:" +msgstr "Interval mellem trykgentagelse" + +# +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Ugyldig mappe valgt: %s" + +# +#, fuzzy +msgid "Invalid location" +msgstr "Ugyldig placering" + +msgid "Invalid transponder data" +msgstr "" + +# +msgid "Inversion" +msgstr "Invertere" + +msgid "Invert" +msgstr "Inverter" + +# +msgid "Ipkg" +msgstr "Ipkg" + +#, fuzzy +msgid "Is this setting ok?" +msgstr "Brug disse indstillinger" + +# +#, fuzzy +msgid "Is this video mode ok?" +msgstr "Er denne videotilstand ok?" + +# +msgid "Italian" +msgstr "Italiensk" + +#, fuzzy +msgid "Items per page " +msgstr "Emner pr side" + +#, fuzzy +msgid "Items per page for list screen" +msgstr "Emner pr side" + +# +#, fuzzy +msgid "Job overview" +msgstr "Job oversigt" + +msgid "Jump to beginning of list" +msgstr "" + +# +#, fuzzy +msgid "Jump to end of list" +msgstr "spring til liste stop" + +# +#, fuzzy +msgid "Jump to next marked position" +msgstr "spring til næste markerede position" + +# +#, fuzzy +msgid "Jump to previous marked position" +msgstr "spring til forrige markerede position" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +#, fuzzy +msgid "Just scale" +msgstr "Fyld billede helt ud" + +msgid "Keep service" +msgstr "" + +# +#, fuzzy +msgid "Kernel version: " +msgstr "Ny Version:" + +# +msgid "Keyboard" +msgstr "Tastatur" + +# +#, fuzzy +msgid "Keyboard map" +msgstr "Tastatur layout" + +# +#, fuzzy +msgid "Keyboard setup" +msgstr "Tastatur indstilling" + +# +#, fuzzy +msgid "LAN adapter" +msgstr "LAN adapter" + +msgid "LAN connection" +msgstr "LAN Forbindelse" + +# +msgid "LNB" +msgstr "LNB" + +# +msgid "Language" +msgstr "Sprog" + +# +msgid "Language selection" +msgstr "Valg af sprog" + +# +msgid "Last config" +msgstr "Seneste opsætning" + +# +msgid "Last speed" +msgstr "Sidste hastighed" + +#, fuzzy +msgid "Last upgrade: " +msgstr "Seneste opdatering" + +msgid "Latest Commits" +msgstr "" + +# +msgid "Latitude" +msgstr "Breddegrad" + +# +msgid "Latvian" +msgstr "Lettisk" + +# +#, fuzzy +msgid "Leave DVD player?" +msgstr "Forlade DVD afspiller?" + +# +msgid "Left" +msgstr "Venstre" + +msgid "Left from servicename" +msgstr "" + +msgid "Leisure hobbies" +msgstr "" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Sorte striber i top og bund af billede" + +msgid "Letterbox zoom" +msgstr "" + +# +#, fuzzy +msgid "Limit character set for recording filenames" +msgstr "Begrænset tegnsætning for optagelsesfilnavne" + +# +msgid "Limit east" +msgstr "Øst begrænsning" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "" + +# +msgid "Limit west" +msgstr "Vest begrænsning" + +msgid "Limits cancelled" +msgstr "Begrænsning annulleret" + +msgid "Limits enabled" +msgstr "Begrænsning aktiveret" + +# +msgid "Limits off" +msgstr "Begrænsning fra" + +# +msgid "Limits on" +msgstr "Begrænsning til" + +# +#, fuzzy +msgid "Link quality:" +msgstr "Link kvalitet:" + +# +msgid "Link:" +msgstr "Link:" + +# +msgid "Linked titles with a DVD menu" +msgstr "Lænkede titler med en DVD menu" + +# +#, fuzzy +msgid "List EPG functions..." +msgstr "liste over EPG..." + +msgid "List available networks" +msgstr "Tilgængelige netværk" + +msgid "List mode" +msgstr "" + +# +#, fuzzy +msgid "List of storage devices" +msgstr "Oplistning af hukommelsesenheder" + +msgid "List type" +msgstr "" + +#, fuzzy, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "List version %d, fundet %d kanaler" +msgstr[1] "List version %d, fundet %d kanaler" + +# +#, fuzzy +msgid "Listen to the radio..." +msgstr "høre radio..." + +msgid "Lists reloaded!" +msgstr "" + +# +msgid "Lithuanian" +msgstr "Litauisk" + +# +msgid "Load" +msgstr "Indlæs" + +msgid "Load Length of Movies in Movielist" +msgstr "" + +# +#, fuzzy +msgid "Load length of movies in movie list" +msgstr "Indlæs længden af film i filmlisten" + +# +#, fuzzy +msgid "Load playlist" +msgstr "hent spilleliste" + +# +#, fuzzy +msgid "Local network" +msgstr "Lokalt netværk" + +# +msgid "Location" +msgstr "Placering" + +# +msgid "Location for instant recordings" +msgstr "Placering af umiddelbare optagelser" + +msgid "Lock ratio" +msgstr "LÃ¥s ratio" + +# +msgid "Lock:" +msgstr "LÃ¥s:" + +# +msgid "Log results to harddisk" +msgstr "Log resultaterne til harddisken" + +msgid "Long filenames" +msgstr "Lange filnavne" + +# +#, fuzzy +msgid "Long key press" +msgstr "Langt tastetryk" + +# +msgid "Longitude" +msgstr "Længdegrad" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "" + +# +#, fuzzy +msgid "MMC card" +msgstr "MMC kort" + +# +msgid "MORE" +msgstr "MERE" + +# +msgid "Main menu" +msgstr "Hovedmenu" + +msgid "Maintain old EPG data for" +msgstr "Vedligehold EPG data for" + +# +msgid "Make this mark an 'in' point" +msgstr "Lave dette mærke til 'ind' point" + +# +msgid "Make this mark an 'out' point" +msgstr "Lave dette mærke til 'ud' point" + +# +msgid "Make this mark just a mark" +msgstr "Lave dette mærke til kun et mærke" + +# +msgid "Manage extensions" +msgstr "HÃ¥ndter udvidelser" + +# +msgid "Manage your receiver's software" +msgstr "Styring af din modtagers software" + +msgid "Manual" +msgstr "" + +# +msgid "Manual Scan" +msgstr "Manuel søgning" + +msgid "Manual configuration" +msgstr "Manuel configuration" + +# +#, fuzzy +msgid "Manual scan" +msgstr "Manuel søgning" + +# +msgid "Manual transponder" +msgstr "Manuel transponder" + +# +msgid "Manufacturer" +msgstr "Fabrikant" + +# +#, fuzzy +msgid "Margin after recording (minutes)" +msgstr "Margin før optagelse (minutter)" + +# +#, fuzzy +msgid "Margin before recording (minutes)" +msgstr "Margin før optagelse (minutter)" + +msgid "Max memory positions" +msgstr "" + +# +#, fuzzy +msgid "Max. bitrate: " +msgstr "Maks. bitrate: " + +# +msgid "Media player" +msgstr "Medie afspiller" + +# +#, fuzzy +msgid "Media scanner" +msgstr "Medie afspiller" + +# +msgid "Medium is not a writeable DVD!" +msgstr "Media er ikke skrivbar DVD!" + +# +msgid "Medium is not empty!" +msgstr "Media er ikke tomt!" + +msgid "Memory" +msgstr "Hukommelse" + +msgid "Memory index" +msgstr "Hukommelsesindeks" + +# +msgid "Menu" +msgstr "Menu" + +# +msgid "Message" +msgstr "Besked" + +# +msgid "Message..." +msgstr "Besked..." + +#, python-format +msgid "Minimum age %d years" +msgstr "" + +#, fuzzy +msgid "Minimum send interval" +msgstr "Beskyttelse interval" + +msgid "Missing " +msgstr "Mangler" + +# +#, fuzzy +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Type" + +# +#, fuzzy +msgctxt "Video output mode" +msgid "Mode" +msgstr "Type" + +# +msgid "Model: " +msgstr "Model:" + +# +msgid "Modulation" +msgstr "Modulation" + +# +msgid "Modulator" +msgstr "Modulator" + +# +msgid "Mon" +msgstr "Man" + +# +msgid "Mon-Fri" +msgstr "Man-Fre" + +# +msgid "Monday" +msgstr "Mandag" + +# +msgid "Mosquito noise reduction" +msgstr "Mosquito støjreduktion" + +msgid "Mount" +msgstr "Monter" + +msgid "Move" +msgstr "Flyt" + +# +#, fuzzy +msgid "Move PiP to main picture" +msgstr "Flytte Billede i Billede til hoved billede" + +# +msgid "Move Picture in Picture" +msgstr "Flytte Billed i Billed" + +# +msgid "Move east" +msgstr "Drej mod øst" + +msgid "Move to other directory" +msgstr "Flyt til anden mappe" + +msgid "Move to position X" +msgstr "Flyt til position X" + +# +msgid "Move west" +msgstr "Drej mod vest" + +msgid "Moved to position 0" +msgstr "Flyttet til position 0" + +msgid "Moved to position at index" +msgstr "Flyttet til position indeks" + +msgid "Movement" +msgstr "Flytter" + +msgid "Movie List Configuration" +msgstr "" + +msgid "Movie Selection" +msgstr "" + +#, fuzzy +msgid "Movie list configuration" +msgstr "Configurer filmliste" + +# +msgid "Movie location" +msgstr "Placering af film" + +#, fuzzy +msgid "Movie selection" +msgstr "Filmvalg" + +msgid "Movie/Drama" +msgstr "" + +# +msgid "Movielist menu" +msgstr "Filmliste menu" + +msgid "Moving" +msgstr "Flytter" + +msgid "Moving east ..." +msgstr "Flytter øst" + +msgid "Moving to position" +msgstr "Flytter til position" + +msgid "Moving west ..." +msgstr "Flytter vest" + +# +msgid "Multi EPG" +msgstr "Multi EPG" + +msgid "Multi-EPG bouquet selection" +msgstr "Multi-EPG bouquet valg" + +# +msgid "Multimedia" +msgstr "Multimedia" + +# +msgid "Multiple service support" +msgstr "Multi kanal support" + +msgid "Multiplex" +msgstr "" + +# +msgid "Multisat" +msgstr "Mange satellitter" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "" + +# +msgid "Mute" +msgstr "Lyd fra" + +# +msgid "N/A" +msgstr "Ikke tilgængelig" + +# +msgid "NEXT" +msgstr "NÆSTE" + +# +#, fuzzy +msgid "NFI image flashing" +msgstr "Flash af NFI image" + +# +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "NFI image flash gennemført. Tryk gul knap for at genstarte!" + +msgid "NIM" +msgstr "" + +# +msgid "NOW" +msgstr "NU" + +# +msgid "NTSC" +msgstr "NTSC" + +# +msgid "Name" +msgstr "Navn" + +# +msgid "Nameserver" +msgstr "Navneserver" + +# +#, python-format +msgid "Nameserver %d" +msgstr "Navneserver %d" + +# +msgid "Nameserver settings" +msgstr "Navneserver indstillinger" + +# +#, fuzzy +msgid "Nameserver setup" +msgstr "Navneserver opsætning" + +msgid "Namespace" +msgstr "" + +# +msgid "Netmask" +msgstr "Netmaske" + +# +msgid "Network" +msgstr "Netværk" + +msgid "Network ID" +msgstr "NetværksID" + +# +#, fuzzy +msgid "Network configuration..." +msgstr "Netværks opsætning..." + +# +#, fuzzy +msgid "Network mount" +msgstr "Netværks indstilling" + +# +#, fuzzy, python-format +msgid "Network mount %s" +msgstr "Netværks indstilling" + +#, fuzzy +msgid "Network name (SSID)" +msgstr "Netværksnavn (SSID)" + +# +msgid "Network scan" +msgstr "Netværks søgning" + +# +msgid "Network setup" +msgstr "Netværks opsætning" + +# +msgid "Network test" +msgstr "Netværks test" + +# +msgid "Network test..." +msgstr "Netværks test..." + +msgid "Network test: " +msgstr "Netværkstes:" + +# +#, fuzzy +msgid "Network wizard" +msgstr "Netværk opsætningshjælper" + +# +msgid "Network:" +msgstr "Netværk:" + +# +msgid "New" +msgstr "Ny" + +msgid "New PIN" +msgstr "Ny Kode" + +# +msgid "New version:" +msgstr "Ny Version:" + +msgid "News Current Affairs" +msgstr "" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "" + +# +msgid "No" +msgstr "Nej" + +# +msgid "No (supported) DVDROM found!" +msgstr "Ingen (understøttet) DVDROM fundet!" + +# +msgid "No Connection" +msgstr "Ingen forbindelse" + +# +msgid "No HDD found or HDD not initialized!" +msgstr "" +"Ingen HDD fundet eller\n" +"HDD ikke initialiseret!." + +# +msgid "No backup needed" +msgstr "Ingen backup nødvendig" + +msgid "No cable tuner found!" +msgstr "Ingen kabeltuner fundet" + +# +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Ingen data pÃ¥ transponder!\n" +"(Timeout læsning i PAT)" + +#, fuzzy +msgid "No delay" +msgstr "Ingen forsinkelse" + +# +msgid "No description available." +msgstr "Ingen tilgængelig beskrivelse." + +# +msgid "No details for this image file" +msgstr "Ingen detaljer for denne image fil" + +# +msgid "No displayable files on this medium found!" +msgstr "Der findes ingen visbare filer pÃ¥ dette medie!" + +# +msgid "No event info found, recording indefinitely." +msgstr "Ingen program-data fundet, optagelse startet." + +# +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "Endnu ingen hurtigspoling.. men du kan benytte tal-knapperne til at springe frem/tilbage! " + +msgid "No free index available" +msgstr "" + +# +msgid "No free tuner!" +msgstr "Ingen fri tuner!" + +# +msgid "No network connection available." +msgstr "Ingen tilgængelig netværksforbindelse." + +# +msgid "No networks found" +msgstr "Ingen fundne netværk" + +msgid "No new plugins found" +msgstr "" + +# +msgid "No positioner capable frontend found." +msgstr "Ingen brugbar motor frontend fundet." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "" + +# +#, fuzzy +msgid "No services/providers selected" +msgstr "ingen kanaler/udbydere er valgt" + +# +#, fuzzy +msgid "No standby" +msgstr "ingen standby" + +msgid "No suitable sat tuner found!" +msgstr "" + +# +msgid "No tags are set on these movies." +msgstr "Ingen tags er sat pÃ¥ disse film" + +# +#, fuzzy +msgid "No timeout" +msgstr "ingen timeout" + +# +msgid "No to all" +msgstr "Nej til alle" + +#, fuzzy +msgid "No transparency" +msgstr "ingen gennemsigtighed" + +# +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "Ingen Tuner er konfigureret til brug af diseqc Motor!" + +# +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Ingen Tuner er aktiveret!\n" +"Venligst udfør Tuner indstilling før du starter en kanal søgning." + +#, fuzzy +msgid "No updates available" +msgstr " opdateringer tilgængelige_Ikke for Ferrari." + +msgid "No updates available. Please try again later." +msgstr "" + +# +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Ingen gyldig kanal PIN kode fundet!\n" +"Vil du skifte kanal PIN kode nu?\n" +"Siger du 'Nej' her vil kanal beskyttelsen ikke være tilsluttet!" + +# +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Ingen gyldig PIN kode opsætning fundet!\n" +"Vil du gerne ændre PIN kode opsætning nu?\n" +"Siger du 'Nej' her vil opsætnings beskyttelsen ikke være tilsluttet!" + +msgid "No wireless networks found! Searching..." +msgstr "Intet trÃ¥dløst netværk fundet! Søger..." + +# +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"Der kunne ikke findes en fungerende netværksadapter.\n" +"Undersøg venligst, at du har tilsluttet kabler og at dit netværk er korrekt opsat." + +# +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"Der kunne ikke findes en fungerende trÃ¥dløs netværksadapter.\n" +"Undersøg venligst, at du har tilsluttet en kompatibel WLAN enhed og at netværket er korrekt opsat." + +# +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"Der kunne ikke findes et trÃ¥dløs netværks interface.\n" +"Undersøg venligst, at du har tilsluttet en kompatibel WLAN enhed eller aktiver dit lokale netværks interface." + +# +msgid "No, but restart from begin" +msgstr "Nej, men genstart fra begyndelse" + +# +msgid "No, do nothing." +msgstr "Nej, gør intet." + +msgid "No, just start my receiver" +msgstr "" + +msgid "No, never" +msgstr "Nej, aldrig" + +# +msgid "None" +msgstr "Ingen" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Fuldt billede, venstre/højre" + +msgid "Normal mode" +msgstr "" + +# +msgid "North" +msgstr "Nord" + +# +msgid "Norwegian" +msgstr "Norsk" + +#, fuzzy +msgid "Not associated" +msgstr "Ikke aktiveret" + +msgid "Not configured" +msgstr "" + +# +#, fuzzy, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Ikke diskplads nok. Venligst skab mere plads pÃ¥ disken og prøv igen. (%d MB nødvendig, %d MB ledig)" + +msgid "Nothing connected" +msgstr "" + +# +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Intet at søge!\n" +"Venligst opsæt Tuner indstilling op før du starter søgning." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "" + +# +#, fuzzy +msgid "Now playing" +msgstr "Nu Afspilles" + +# +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Nu, kan du bruge Kontrast indstilling og skrue op for Lystyrken pÃ¥ baggrunden, sÃ¥ meget som muligt, men vær sikker pÃ¥, at du stadig kan se forskel mellem de 2 lyseste skygger. Hvis du har gjort det, tryk OK." + +# +msgid "OK" +msgstr "OK" + +# +msgid "OK, guide me through the upgrade process" +msgstr "OK, hjælp mig igennem opdateringsprocessen" + +msgid "ONID" +msgstr "" + +msgid "OSD name request" +msgstr "OSD navn forespørgsel" + +# +#, fuzzy +msgid "OSD settings" +msgstr "OSD indstilling" + +#, fuzzy +msgid "OSD transparency" +msgstr "ingen gennemsigtighed" + +# +msgid "Off" +msgstr "Fra" + +msgid "Offline decode delay (ms)" +msgstr "" + +msgid "Ok" +msgstr "" + +# +msgid "On" +msgstr "Til" + +msgid "On end of movie" +msgstr "" + +msgid "On end of movie (as menu)" +msgstr "" + +# +msgid "One" +msgstr "En" + +# +msgid "Only extensions." +msgstr "Kun udvidelser." + +# +#, fuzzy +msgid "Only free scan" +msgstr "Søg kun ukodet" + +# +#, fuzzy +msgid "Open service list" +msgstr "Ã¥bne kanalliste" + +# +#, fuzzy +msgid "Open the movie list" +msgstr "Tilbage til filmliste" + +msgid "Orbital position" +msgstr "" + +msgid "Original" +msgstr "" + +msgid "Other" +msgstr "Anden" + +msgid "Output" +msgstr "" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "Overskriv konfigurationsfilerne under softwareopdateringen?" + +#, fuzzy +msgid "Overwrite configuration files?" +msgstr "Overskriv konfiguration" + +# +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "" + +# +msgid "PIDs" +msgstr "PIDs" + +# +#, fuzzy +msgid "PIN code needed" +msgstr "Pin kode nødvendig" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "" + +# +msgid "Package list update" +msgstr "Pakke liste opdatering" + +# +msgid "Packet management" +msgstr "Pakke kontrol" + +# +msgid "Packet manager" +msgstr "Pakkestyring" + +# +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +#, fuzzy +msgid "Pan&scan" +msgstr "Sorte striber lodret samt top og bund" + +# +#, fuzzy +msgid "Parent directory" +msgstr "Aktuel mappe" + +# +msgid "Parental control" +msgstr "Forældre Kontrol" + +# +#, fuzzy +msgid "Parental control services editor" +msgstr "Forældrekontrol kanalredigering" + +# +msgid "Parental control setup" +msgstr "Forældrekontrol opsætning" + +# +msgid "Parental control type" +msgstr "Forældrekontrol type" + +# +msgid "Password" +msgstr "Kodeord" + +# +#, fuzzy +msgid "Pause" +msgstr "pause" + +# +msgid "Pause movie at end" +msgstr "Pause ved filmslutning" + +# +#, fuzzy +msgid "Pause playback" +msgstr "Genoptag afspilning" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "" + +# +#, fuzzy +msgid "Percentage right" +msgstr "Højre-cirkulær" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "Slet alle optagelser i papirkurven permanent?" + +msgid "Permanently remove all deleted items" +msgstr "Fjerne alle slettede filer permanent" + +msgid "Persian" +msgstr "" + +# +msgid "Phone number" +msgstr "Telefonnummer" + +# +#, fuzzy +msgid "PiP setup" +msgstr "BiB opsætning" + +msgid "Picon" +msgstr "" + +msgid "Picon and service name" +msgstr "" + +# +#, fuzzy +msgid "Picture player" +msgstr "Billed afspiller" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Sort stribe i top og bund af billede" + +# +msgid "Pilot" +msgstr "Pilot" + +# +msgid "Play" +msgstr "Afspil" + +# +msgid "Play DVD" +msgstr "Afspil DVD" + +msgid "Play audio in background" +msgstr "Afspil lyd i baggrunden" + +# +#, fuzzy +msgid "Play audio-CD..." +msgstr "Afspil Lyd-CD" + +msgid "Play back media files" +msgstr "" + +# +#, fuzzy +msgid "Play entry" +msgstr "afspil denne" + +# +#, fuzzy +msgid "Play from next mark or playlist entry" +msgstr "afspil fra næste mærke eller spilleliste indgang" + +# +#, fuzzy +msgid "Play from previous mark or playlist entry" +msgstr "afspil fra forrige mærke eller spilleliste indgang" + +# +#, fuzzy +msgid "Play music..." +msgstr "Afspil musik..." + +msgid "Play next" +msgstr "Afspil næste" + +msgid "Play next (return to movie list)" +msgstr "" + +msgid "Play next (return to previous service)" +msgstr "" + +msgid "Play previous" +msgstr "Afspil forrige" + +# +msgid "Play recorded movies..." +msgstr "Afspil optagede film..." + +# +msgid "Please add titles to the compilation." +msgstr "Tilføj titler til kompileringen" + +# +msgid "Please change recording endtime" +msgstr "Venligst skift optagelses sluttid" + +# +msgid "Please check your network settings!" +msgstr "Tjek venligst din netværks opsætning!" + +# +msgid "Please choose an extension..." +msgstr "Vælg venligst en udvidelse..." + +# +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Opsæt venligst eller bekræft dine navneservere ved at udfylde de ønskede værdier.\n" +"Tryk pÃ¥ OK nÃ¥r du er færdig, for at fortsætte." + +# +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Opsæt venligst din internetforbindelse ved at udfylde de ønskede værdier.\n" +"Tryk pÃ¥ OK nÃ¥r du er færdig, for at fortsætte." + +msgid "Please connect your receiver to the internet" +msgstr "" + +# +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Venligst ikke ændre værdier hvis du ikke ved hvad du gør!" + +# +msgid "Please enter a name for the new bouquet" +msgstr "Indtast venligst navn for ny pakke" + +# +msgid "Please enter a name for the new marker" +msgstr "Indtast venligst navn for ny markør" + +# +msgid "Please enter a new filename" +msgstr "Indtast venligst nyt filnavn" + +# +msgid "Please enter filename (empty = use current date)" +msgstr "Skriv venligst filnavn (tom = brug nuværende dato)" + +# +msgid "Please enter name of the new directory" +msgstr "Indtast venligst navn pÃ¥ den ny mappe" + +msgid "Please enter new name:" +msgstr "" + +# +msgid "Please enter the correct pin code" +msgstr "Indtast venligst korrekt pin kode" + +msgid "Please enter the old PIN code" +msgstr "Indtast den gamle pin kode" + +# +msgid "Please follow the instructions on the TV" +msgstr "Følg venligst instruktionerne pÃ¥ dit TV" + +# +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "Bemærk venligst at det tidligere valgte medie ikke kunne tilgÃ¥s og derfor benyttes standard mappen i stedet for." + +# +msgid "Please press OK to continue." +msgstr "Tryk venligst pÃ¥ OK for at fortsætte." + +msgid "Please select a default EPG type..." +msgstr "" + +# +msgid "Please select a playlist to delete..." +msgstr "Vælg venligst en spilleliste til sletning..." + +# +msgid "Please select a playlist..." +msgstr "Vælg venligst en spilleliste..." + +# +#, fuzzy +msgid "Please select a sub service..." +msgstr "Vælg venligst en underkanal..." + +# +msgid "Please select a subservice to record..." +msgstr "Vælg en underkanal til at optagelse..." + +# +msgid "Please select a subservice..." +msgstr "Vælg venligst en underkanal..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "" + +# +#, fuzzy +msgid "Please select medium to be scanned" +msgstr "Venligst vælg media som skal skannes" + +# +msgid "Please select medium to use as backup location" +msgstr "Vælg venligst medie der skal benyttes som backup placering" + +# +msgid "Please select tag to filter..." +msgstr "Vælg venligst tag til filtrering..." + +# +msgid "Please select the movie path..." +msgstr "Venligst vælg en film sti..." + +# +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Vælg venligst det netværk interface, som du vil benytte til din internet forbindelse.\n" +"\n" +"Tryk venligst pÃ¥ OK for at fortsætte." + +# +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Vælg venligst det trÃ¥dløse netværk, som du vil oprette forbindelse til.\n" +"\n" +"Tryk venligst pÃ¥ OK for at fortsætte." + +# +#, fuzzy +msgid "Please set up tuner A" +msgstr "Venligst indstil tuner B" + +# +msgid "Please set up tuner B" +msgstr "Venligst indstil tuner B" + +# +msgid "Please set up tuner C" +msgstr "Venligst indstil tuner C" + +# +msgid "Please set up tuner D" +msgstr "Venligst indstil tuner D" + +# +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Venligst brug pile knapper for at flytte PiP vindue.\n" +"Tryk Bouquet +/- for at ændre vinduestørrelse.\n" +"Tryk OK for at gÃ¥ tilbage til TV eller EXIT for ikke at udføre flytning." + +# +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "Benyt venligst OP og NED tasten til at vælge sprog. Tryk bagefter pÃ¥ OK knappen." + +msgid "Please wait" +msgstr "" + +# +#, fuzzy +msgid "Please wait (downloading channel list)" +msgstr "Vent venligst... Henter liste..." + +# +#, fuzzy +msgid "Please wait (downloading softcam)" +msgstr "Vent venligst... Henter liste..." + +# +#, fuzzy +msgid "Please wait (updating packages)" +msgstr "vent venligst, henter billede..." + +# +msgid "Please wait for activation of your network configuration..." +msgstr "Vent venligt pÃ¥ aktivering af din netværks opsætning..." + +# +msgid "Please wait while scanning is in progress..." +msgstr "Vent venligst mens skanningsprocessen er i gang...." + +# +msgid "Please wait while we configure your network..." +msgstr "Vent venligst, mens vi opsætter dit netværk..." + +# +msgid "Please wait while we prepare your network interfaces..." +msgstr "Vent venligst mens vi klargører dine netværk interfaces..." + +# +msgid "Please wait while we test your network..." +msgstr "Vent venligst mens vi tester dit netværk..." + +# +msgid "Please wait while your network is restarting..." +msgstr "Vent venligst, mens dit netværk genstartes..." + +# +msgid "Please wait..." +msgstr "Vent venligst..." + +# +msgid "Please wait... Loading list..." +msgstr "Vent venligst... Henter liste..." + +# +msgid "Plugin browser" +msgstr "Plugin menu" + +# +msgid "Plugin manager activity information" +msgstr "Aktivitetsinformation for plugin styring" + +# +msgid "Plugin manager help" +msgstr "Hjælp til plugin styring" + +# +msgid "Plugins" +msgstr "Plugins" + +msgid "Polarisation" +msgstr "" + +msgid "Polarisation:" +msgstr "" + +# +msgid "Polarization" +msgstr "Polarisation" + +# +msgid "Polish" +msgstr "Polsk" + +# +msgid "Port A" +msgstr "Port A" + +# +msgid "Port B" +msgstr "Port B" + +# +msgid "Port C" +msgstr "Port C" + +# +msgid "Port D" +msgstr "Port D" + +# +msgid "Portuguese" +msgstr "Portugisisk" + +#, fuzzy +msgid "Position of completed timers in timerlist" +msgstr "Position af afsluttede timere i timerlisten" + +msgid "Position stored at index" +msgstr "Position gemt ved Index" + +# +msgid "Positioner" +msgstr "Motor" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "" + +# +msgid "Positioner setup" +msgstr "Motor Opsætning" + +# +msgid "Power threshold in mA" +msgstr "Strøm forbrug i mA" + +# +msgid "Predefined transponder" +msgstr "Predefineret transponder" + +#, fuzzy +msgid "Prefer AC3 track" +msgstr "Foretræk AC3" + +msgid "Prefer AC3+ track" +msgstr "" + +#, fuzzy +msgid "Prefer audio track stored by service" +msgstr "Foretræk lydspor gemt af kanal" + +#, fuzzy +msgid "Prefer graphical DVB subtitles" +msgstr "Foretræk DVB grafiske undertekster" + +#, fuzzy +msgid "Prefer subtitles for hearing impaired" +msgstr "Foretræk undertekster for hørehæmmede" + +#, fuzzy +msgid "Prefer subtitles stored by service" +msgstr "Foretræk undertekster gemt af kanal" + +msgid "Preferred tuner" +msgstr "Foretrukken tuner" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "Forbered en anden USB nøgle for Image installation" + +# +msgid "Preparing... Please wait" +msgstr "Forbereder... Vent venligst" + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "Tryk Info for yderligere information" + +msgid "Press MENU on your remote control for additional options." +msgstr "Tryk Menu for yderligere indstillinger" + +# +msgid "Press OK on your remote control to continue." +msgstr "Tryk OK pÃ¥ din fjernbetjening for at fortsætte." + +# +msgid "Press OK to activate the selected skin." +msgstr "Tryk OK for at aktivere det valgte grafiske tema." + +# +msgid "Press OK to activate the settings." +msgstr "Tryk OK for at aktivere indstillinger." + +# +msgid "Press OK to edit the settings." +msgstr "Tryk pÃ¥ OK for at redigere indstillinger." + +# +#, python-format +msgid "Press OK to get further details for %s" +msgstr "Tryk pÃ¥ OK for at se yderligere detaljer for %s" + +# +msgid "Press OK to scan" +msgstr "Tryk OK for at søge" + +# +#, fuzzy +msgid "Press OK to select a provider." +msgstr "Tryk pÃ¥ OK for at vælge en udbyder." + +msgid "Press OK to select satellites" +msgstr "" + +# +msgid "Press OK to select/deselect a CAId." +msgstr "Tryk pÃ¥ OK for at vælge/fravælge en CAId." + +# +msgid "Press OK to start the scan" +msgstr "Tryk OK for at starte søgningen" + +msgid "Press OK to toggle the selection" +msgstr "" + +# +msgid "Press OK to toggle the selection." +msgstr "Tryk pÃ¥ OK for at slÃ¥ valget til eller fra." + +# +msgid "Press yellow to set this interface as default interface." +msgstr "Tryk pÃ¥ gul for at vælge dette interface som standard interface." + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "" + +# +msgid "Preview" +msgstr "" + +# +msgid "Preview menu" +msgstr "Fremvisnnigsmenu" + +msgid "Preview selected channel" +msgstr "" + +# +msgid "Primary DNS" +msgstr "Primær DNS" + +# +msgid "Priority" +msgstr "Prioritet" + +# +msgid "Process" +msgstr "Bearbejdning" + +msgid "Progress" +msgstr "Fremskridt" + +#, fuzzy +msgid "Progress bar left" +msgstr "Fremskridt lille" + +#, fuzzy +msgid "Progress bar right" +msgstr "Fremskridt lille" + +# +msgid "Properties of current title" +msgstr "Egenskaber for den aktuelle titel" + +# +msgid "Protect services" +msgstr "Beskytte kanaler?" + +# +msgid "Protect setup" +msgstr "Beskytte opsætning?" + +# +msgid "Provider" +msgstr "Udbyder" + +# +msgid "Provider to scan" +msgstr "Udbyder til søgning" + +# +msgid "Providers" +msgstr "Udbydere" + +msgid "Put TV in standby" +msgstr "Sæt TV i standby" + +msgid "Put receiver in standby" +msgstr "Sæt Reciever i standby" + +# +msgid "Python frontend for /tmp/mmi.socket" +msgstr "Python frontend til /tmp/mmi.socket" + +# +msgid "Quick" +msgstr "Kvik" + +# +#, fuzzy +msgid "Quick zap" +msgstr "Hurtigskift" + +# +msgid "RF output" +msgstr "RF Udgang" + +# +msgid "RGB" +msgstr "RGB" + +# +msgid "Radio" +msgstr "Radio" + +# +#, fuzzy +msgid "Ram disk" +msgstr "Ram disk" + +# +msgid "Random" +msgstr "Tilfældig" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "" + +msgid "Rating undefined" +msgstr "" + +# +msgid "Really close without saving settings?" +msgstr "Vil du virkelig lukke uden at gemme indstillinger?" + +# +msgid "Really delete done timers?" +msgstr "Slette udførte timere?" + +# +msgid "Really exit the subservices quickzap?" +msgstr "Vil du afslutte underkanals hurtigskift?" + +# +msgid "Really reboot now?" +msgstr "Virkelig reboote nu?" + +# +msgid "Really restart now?" +msgstr "Virkelig genstarte nu?" + +# +msgid "Really shutdown now?" +msgstr "Virkelig slukke nu?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "Opdater frontprocessor og genstart nu?" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "Opdater boksen og genstart nu?" + +# +msgid "Reboot" +msgstr "Genstart" + +msgid "Rec" +msgstr "Optag" + +# +#, fuzzy +msgid "Reception settings" +msgstr "Modtage Indstillinger" + +# +msgid "Record" +msgstr "Optage" + +# +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "Optagelsestid begrænset pÃ¥ grund af konfliktende timer %s" + +# +msgid "Recorded files..." +msgstr "Optagede filer..." + +# +msgid "Recording" +msgstr "Optager" + +msgid "Recording in progress" +msgstr "Igangværende optagelse" + +# +msgid "Recording paths" +msgstr "Sti til optagelse" + +msgid "Recording type" +msgstr "Optagelsestype" + +# +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "Optagelse(r) igang eller starter om fÃ¥ sekunder!" + +# +msgid "Recordings" +msgstr "Optaggelser" + +# +msgid "Recordings always have priority" +msgstr "Optagelser har altid prioritet" + +msgid "Red button..." +msgstr "Rød knap" + +msgid "Reenter new PIN" +msgstr "Skriv PIN igen" + +# +#, fuzzy +msgid "Refresh rate" +msgstr "Opdateringsrate" + +# +msgid "Refresh rate selection." +msgstr "Opdateringsrate vælger." + +msgid "Regard deep standby as standby" +msgstr "Opfat dyb standby som standby" + +#, fuzzy +msgid "Relative" +msgstr "relativ" + +# +msgid "Reload" +msgstr "Genindlæs" + +# +#, fuzzy +msgid "Reload black-/white lists" +msgstr "Genindlæs sort/hvid lister" + +msgid "Reloading bouquets and services..." +msgstr "Genindlæser pakker og kanaler..." + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "Husk kanal PIN" + +msgid "Remember these settings for each folder" +msgstr "Husk indstiller for alle mapper" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "" + +# +#, fuzzy +msgid "Remote control type" +msgstr "Forældrekontrol type" + +# +#, fuzzy +msgid "Removal has completed." +msgstr "Fjernelse mislykkedes." + +# +msgid "Remove" +msgstr "Fjern" + +# +msgid "Remove a mark" +msgstr "Fjerne et mærke" + +# +#, fuzzy +msgid "Remove a nameserver entry" +msgstr "fjern en navneserver angivelse" + +# +#, fuzzy +msgid "Remove bookmark" +msgstr "fjern bogmærke" + +#, fuzzy +msgid "Remove completed timers after (days)" +msgstr "Tøm papirkurven efter (dage)" + +# +msgid "Remove currently selected title" +msgstr "Fjerne nuværende valgte titel" + +#, fuzzy +msgid "Remove items from trash can after (days)" +msgstr "Tøm papirkurven efter (dage)" + +# +msgid "Remove plugins" +msgstr "Fjerne plugins" + +# +msgid "Remove title" +msgstr "Fjerne titel" + +# +msgid "Removing" +msgstr "Sletter" + +# +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Fjernelsen af mappen %s mislykkedes. (MÃ¥ske ikke tom.)" + +#, fuzzy +msgid "Removing partition table" +msgstr "Genlæs partiionstabel" + +# +msgid "Rename" +msgstr "Omdøb" + +msgid "Repeat" +msgstr "" + +# +#, fuzzy +msgid "Repeat type" +msgstr "Gentage type" + +# +msgid "Repeating event currently recording... What do you want to do?" +msgstr "Gentage program optagelse som er igang... Hvad vil du foretage dig?" + +# +msgid "Repeats" +msgstr "Gentagelser" + +msgid "Require authentication for http streams" +msgstr "" + +# +msgid "Required medium type:" +msgstr "Nødvenig medietype" + +#, fuzzy +msgid "Rereading partition table" +msgstr "Genlæs partiionstabel" + +msgid "Reserved" +msgstr "" + +# +msgid "Reset" +msgstr "Genstart" + +# +msgid "Reset and renumerate title names" +msgstr "Nulstiller og genoptæller titel navne" + +msgid "Reset playback position" +msgstr "Nulstil afspilningsposition" + +# +msgid "Reset video enhancement settings to system defaults?" +msgstr "Gendan indstilling af videoforbedring til systemets standard?" + +# +msgid "Reset video enhancement settings to your last configuration?" +msgstr "Gendan indstilling af videoforbedring til din seneste opsætning?" + +# +msgid "Resolution" +msgstr "Opløsning" + +# +msgid "Restart" +msgstr "Genstarte" + +# +msgid "Restart GUI now?" +msgstr "Genstarte GUI nu?" + +msgid "Restart enigma" +msgstr "Genstart Enigma2" + +# +msgid "Restart network" +msgstr "Genstart netværk" + +# +msgid "Restart test" +msgstr "Genstart Test" + +# +msgid "Restart your network connection and interfaces.\n" +msgstr "Genstart din netværk opkobling og interfaces.\n" + +# +msgid "Restore" +msgstr "Gendanne" + +# +msgid "Restore backups" +msgstr "Gendan backup" + +# +msgid "Restore is running..." +msgstr "Genopretning kører..." + +# +msgid "Restore system settings" +msgstr "Gendan system opsætning" + +# +#, fuzzy +msgid "Restoring..." +msgstr "optager..." + +# +msgid "Resume from last position" +msgstr "Genoptag fra sidste position" + +# +#, python-format +msgid "Resume position at %s" +msgstr "" + +# +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Genoptag afspilning" + +# +msgid "Return to movie list" +msgstr "Tilbage til filmliste" + +# +msgid "Return to previous service" +msgstr "Tilbage til forrige kanal" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +# +msgid "Rewind speeds" +msgstr "Tilbagespolings hastighed" + +msgid "Rewrap teletext subtitles" +msgstr "Genindlæs tekstv undertekser" + +# +msgid "Right" +msgstr "Højre" + +msgid "Right from servicename" +msgstr "" + +msgid "Roll-off" +msgstr "Rul-af" + +msgid "Romanian" +msgstr "" + +msgid "Root directory" +msgstr "root mappe" + +msgid "Rotor step position:" +msgstr "Motor step postion" + +# +msgid "Rotor turning speed" +msgstr "Motor dreje hastighed" + +msgid "Round start time on" +msgstr "start tid pÃ¥" + +# +msgid "Russian" +msgstr "Russisk" + +# +msgid "S-Video" +msgstr "S-Video" + +msgid "SID" +msgstr "" + +# +msgid "SINGLE LAYER DVD" +msgstr "DVD-R" + +# +msgid "SNR" +msgstr "SNR" + +# +msgid "SNR:" +msgstr "SNR:" + +# +msgid "SSID:" +msgstr "SSID:" + +msgid "Same resolution as skin" +msgstr "" + +# +msgid "Sat" +msgstr "Lør" + +# +msgid "Satellite" +msgstr "Satellit" + +# +#, fuzzy +msgid "Satellite dish setup" +msgstr "Sat udstyrs kontrol" + +# +msgid "Satellite equipment" +msgstr "Satellitudstyr" + +# +#, fuzzy +msgid "Satellite equipment setup" +msgstr "Sat udstyrs kontrol" + +msgid "Satellite longitude:" +msgstr "Satellit længegrade" + +# +msgid "Satellites" +msgstr "Satellitter" + +# +msgid "Satfinder" +msgstr "Sat Søger" + +# +msgid "Sats" +msgstr "Satellitter" + +# +msgid "Saturation" +msgstr "Farvemætning" + +# +msgid "Saturday" +msgstr "Lørdag" + +# +msgid "Save" +msgstr "Gem" + +# +#, fuzzy +msgid "Save playlist" +msgstr "gem spilleliste" + +msgid "Save timeshift file" +msgstr "" + +msgid "Save timeshift file in movie directory" +msgstr "" + +# +msgid "Scaler sharpness" +msgstr "Skaler skarphed" + +# +#, fuzzy +msgid "Scaling mode" +msgstr "Skalerings Type" + +msgid "Scan" +msgstr "" + +# +msgid "Scan " +msgstr "Søgning" + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, fuzzy, python-format +msgid "Scan %s" +msgstr "Søgning" + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, fuzzy, python-format +msgid "Scan %s band" +msgstr "Søge bÃ¥nd EU MID" + +# +msgid "Scan additional SR" +msgstr "Søge yderligere SR" + +# +#, fuzzy +msgid "Scan files..." +msgstr "Skan filer..." + +# +#, fuzzy +msgid "Scan wireless networks" +msgstr "Søge trÃ¥dløse netværk" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "" + +#, python-format +msgid "Scanning %s..." +msgstr "Scanner %s..." + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, fuzzy, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "Søgning færdig, %d kanaler fundet" +msgstr[1] "Søgning færdig, %d kanaler fundet" + +#, fuzzy, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "Søgning færdig, %d kanaler fundet" +msgstr[1] "Søgning færdig, %d kanaler fundet" + +msgid "Scanning failed!" +msgstr "Søgning fejlet" + +msgid "Scanning..." +msgstr "Søger" + +# +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "Søge standard lamedbs sorteret efter satellit med tilsluttet Parabol Motor" + +# +msgid "Search east" +msgstr "Søg Øst" + +# +msgid "Search west" +msgstr "Søg Vest" + +msgid "Searching" +msgstr "Søger" + +msgid "Searching east ..." +msgstr "Søger øst" + +# +msgid "Searching for available updates. Please wait..." +msgstr "Søger efter tilgængelige opdateringer. Vent venligst..." + +# +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "Søger efter nyinstallerede eller fjernede pakker. Vent venligst..." + +msgid "Searching west ..." +msgstr "Søger vest" + +msgid "Second cable of motorized LNB" +msgstr "" + +# +msgid "Secondary DNS" +msgstr "Sekundær DNS" + +# +msgid "Seek" +msgstr "Søg" + +# +#, fuzzy +msgid "Seek backward" +msgstr "drop tilbage" + +# +#, fuzzy +msgid "Seek backward (enter time)" +msgstr "skip bagud (skriv tiden)" + +# +#, fuzzy +msgid "Seek forward" +msgstr "drop fremad" + +# +#, fuzzy +msgid "Seek forward (enter time)" +msgstr "skip fremad (skriv tiden)" + +# +msgid "Select" +msgstr "Vælg" + +# +#, fuzzy +msgid "Select CAId" +msgstr "vælg CAId" + +# +msgid "Select HDD" +msgstr "Vælg Filsystem" + +# +#, fuzzy +msgid "Select a bouquet" +msgstr "Vælg en film" + +# +msgid "Select a movie" +msgstr "Vælg en film" + +# +#, fuzzy +msgid "Select a network adapter" +msgstr "Vælg Netværks Adapter" + +# +#, fuzzy +msgid "Select a skin" +msgstr "Vælg en film" + +# +#, fuzzy +msgid "Select a tuner" +msgstr "Vælg en film" + +# +#, fuzzy +msgid "Select a wireless network" +msgstr "Vælg trÃ¥dløst netværk" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +#, fuzzy +msgid "Select an image to be downloaded" +msgstr "Vælg image at downloade" + +# +msgid "Select audio track" +msgstr "Vælg lyd spor" + +# +#, fuzzy +msgid "Select backup files" +msgstr "Vælg backup filer" + +# +#, fuzzy +msgid "Select backup location" +msgstr "Vælg backup placering" + +# +msgid "Select channel to record from" +msgstr "Vælg optagekanal" + +msgid "Select copy destination for:" +msgstr "Vælg kopi destination for" + +msgid "Select default EPG type..." +msgstr "" + +msgid "Select desired image from feed list" +msgstr "Vælg ønsket imgage fra listen" + +msgid "Select destination for:" +msgstr "Vælg destination for" + +msgid "Select files for backup." +msgstr "Vælg filer til backup" + +# +msgid "Select files/folders to backup" +msgstr "Vælg filer/mapper til backup" + +msgid "Select input device" +msgstr "Vælg enhed" + +msgid "Select input device." +msgstr "Vælg enhed." + +# +msgid "Select interface" +msgstr "Vælg interface" + +# +#, fuzzy +msgid "Select location" +msgstr "Vælg placering" + +# +#, fuzzy +msgid "Select movie" +msgstr "Vælg en film" + +# +msgid "Select provider to add..." +msgstr "Vælg udbyder, der skal tilføjes..." + +# +msgid "Select refresh rate" +msgstr "Vælg opdaterings rate" + +msgid "Select satellites" +msgstr "" + +# +msgid "Select service to add..." +msgstr "Vælg kanal der skal tilføjes..." + +msgid "Select sort method:" +msgstr "" + +# +#, fuzzy +msgid "Select target folder" +msgstr "Vælg folder du vil bruge" + +# +#, fuzzy +msgid "Select the movie path" +msgstr "vælg stien til film" + +# +#, fuzzy +msgid "Select upgrade source" +msgstr "Vælg opgraderingskilde til redigering." + +# +msgid "Select upgrade source to edit." +msgstr "Vælg opgraderingskilde til redigering." + +# +msgid "Select video input with up/down buttons" +msgstr "Vælg video input med op/ned knapperne" + +# +msgid "Select video mode" +msgstr "Vælg video type" + +# +msgid "Select wireless network" +msgstr "Vælg trÃ¥dløst netværk" + +msgid "Select your provider, and press OK to start the scan" +msgstr "Vælg din udebyder, og tryk OK for at starte søgningen" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +# +msgid "Send DiSEqC only on satellite change" +msgstr "Sender DiSEqC kun ved satellite skifte" + +# +msgid "Separate titles with a main menu" +msgstr "Adskil titler med en hoved menu" + +# +msgid "Sequence repeat" +msgstr "Sekvens gentagelse" + +# +msgid "Serbian" +msgstr "Serbisk" + +# +msgid "Service" +msgstr "Kanal info" + +# +msgid "Service has been added to the favourites." +msgstr "Kanal er nu tilføjet favoritter." + +# +msgid "Service has been added to the selected bouquet." +msgstr "Kanal er tilføjet den valgte pakke." + +# +#, fuzzy +msgid "Service info" +msgstr "Kanalinfo" + +# +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Kanal fejl!\n" +"(Timeout læsning i PMT)" + +#, fuzzy +msgid "Service name" +msgstr "Enhedsnavn" + +# +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Kanal ikke fundet!\n" +"(SID ikke fundet i PAT)" + +msgid "Service reference" +msgstr "Kanal reference" + +# +msgid "Service scan" +msgstr "Kanal søgning" + +# +#, fuzzy +msgid "Service searching" +msgstr "Kanal søgning" + +# +#, fuzzy +msgid "Service title mode" +msgstr "Vælg video type" + +# +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"Kanal ikke fundet!\n" +"Kontroler tuner konfigurationen!" + +# +msgid "Services" +msgstr "Kanaler" + +msgid "Set default" +msgstr "" + +# +#, fuzzy +msgid "Set end time" +msgstr "Sæt slut tid" + +msgid "Set fixed" +msgstr "Sæt fast" + +msgid "Set fps for external subtitles" +msgstr "" + +# +msgid "Set interface as default Interface" +msgstr "Sætter interfacet om standard interface" + +#, fuzzy +msgid "Set limits" +msgstr "Sæt grænser" + +# +#, fuzzy +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "Vis programafvikling i kanalvælger" + +msgid "Set time window to 1 hour" +msgstr "udsættelse 1 time" + +msgid "Set time window to 2 hours" +msgstr "udsættelse 2 timer" + +msgid "Set time window to 3 hours" +msgstr "udsættelse 3 timer" + +msgid "Set time window to 4 hours" +msgstr "udsættelse 4 timer" + +msgid "Set time window to 5 hours" +msgstr "udsættelse 5 timer" + +msgid "Set time window to 6 hours" +msgstr "" + +# +#, fuzzy +msgid "Set voltage and 22KHz" +msgstr "Sætter spænding og 22KHz" + +# +msgid "Settings" +msgstr "Indstillings menu" + +# +msgid "Setup" +msgstr "Indstillinger" + +msgid "Setup menu" +msgstr "Opsætningsmenu" + +# +#, fuzzy +msgid "Setup mode" +msgstr "Opsætnings type" + +msgid "Setup your positioner" +msgstr "Motor opsætning" + +# +#, fuzzy +msgid "Setup your satellite equipment" +msgstr "Satellitudstyr" + +# +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "Skal USB guiden fortsætte og installere %s i Flash?" + +# +msgid "Sharpness" +msgstr "Skarphed" + +msgid "Short filenames" +msgstr "Korte filnavne" + +msgid "Show EIT now/next in infobar" +msgstr "Vis EIT nu/næste i Infobar" + +# +#, fuzzy +msgid "Show EPG for current channel..." +msgstr "Vis infobjælke ved program skifte" + +# +#, fuzzy +msgid "Show EPG..." +msgstr "vis EPG..." + +msgid "Show Games show" +msgstr "" + +msgid "Show SNR percentage instead of dB value" +msgstr "" + +msgid "Show VCR scart on main menu" +msgstr "" + +# +#, fuzzy +msgid "Show WLAN status" +msgstr "Vis WLAN Status" + +msgid "Show animation while busy" +msgstr "Vis animation nÃ¥r optaget" + +#, fuzzy +msgid "Show background in radio mode" +msgstr "Vis baggrund i radio mode" + +msgid "Show bouquet selection menu" +msgstr "Vis kanalistevalg menu" + +msgid "Show busy indicator when the system is busy." +msgstr "" + +msgid "Show channel numbers in channel selection" +msgstr "Vis kanalnumre i kanalvælger" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "Vis krypteringsinfo i infobar" + +msgid "Show detailed event info" +msgstr "Vi detaljeret programinfo" + +# +#, fuzzy +msgid "Show event details" +msgstr "vis program detaljer" + +# +msgid "Show event-progress in channel selection" +msgstr "Vis programafvikling i kanalvælger" + +# +#, fuzzy +msgid "Show extended description" +msgstr "vis udvidet beskrivelse" + +# +#, fuzzy +msgid "Show extensions..." +msgstr "se udvidelser..." + +msgid "Show icon for new/unseen items" +msgstr "Vis ikon for nye/usete kanaler" + +msgid "Show in extensions menu" +msgstr "" + +# +#, fuzzy +msgid "Show info" +msgstr "Vis info" + +# +#, fuzzy +msgid "Show info line" +msgstr "vis infoinje" + +# +msgid "Show infobar on channel change" +msgstr "Vis infobjælke ved kanal skifte" + +# +msgid "Show infobar on event change" +msgstr "Vis infobjælke ved program skifte" + +# +msgid "Show infobar on skip forward/backward" +msgstr "Vis infobjælke ved skip fremspoling/tilbagespoling" + +msgid "Show latest commits on sourceforge" +msgstr "" + +# +#, fuzzy +msgid "Show message when recording starts" +msgstr "Vis besked, nÃ¥r optagelse starter" + +#, fuzzy +msgid "Show movie lengths in movielist" +msgstr "Vis status ikoner i filmliset" + +msgid "Show multi channel EPG" +msgstr "" + +msgid "Show picons in channel list" +msgstr "" + +# +msgid "Show positioner movement" +msgstr "Vis motor bevægelse" + +msgid "Show screensaver" +msgstr "" + +msgid "Show second infobar" +msgstr "Vis ekstra infobar" + +msgid "Show service type icons" +msgstr "" + +# +msgid "Show services beginning with" +msgstr "Vis kanaler begyndende med" + +# +#, fuzzy +msgid "Show shutdown menu" +msgstr "vis afbryder menu" + +msgid "Show single service EPG" +msgstr "" + +msgid "Show status icons in Movielist" +msgstr "" + +#, fuzzy +msgid "Show status icons in movie list" +msgstr "Vis status ikoner i filmliset" + +#, fuzzy +msgid "Show status icons in movielist" +msgstr "Vis status ikoner i filmliset" + +# +#, fuzzy +msgid "Show tag menu" +msgstr "vis mærke menu" + +# +msgid "Show the radio player..." +msgstr "Vis radio afspilleren..." + +# +msgid "Show the tv player..." +msgstr "Vis TV afspiller..." + +msgid "Show warning when timeshift is stopped" +msgstr "" + +# +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Vis tilstanden af din trÃ¥dløse LAN opkobling.\n" + +# +#, fuzzy +msgid "Shuffle playlist" +msgstr "tilfældig spilleliste" + +# +msgid "Shutdown" +msgstr "Afslut" + +msgid "Shutdown when in Standby" +msgstr "" + +#, fuzzy +msgid "Side by side" +msgstr "Side ved side" + +msgid "Signal OK, proceeding" +msgstr "Signal OK, fortsætter" + +msgid "Signal quality" +msgstr "Signal kvalitet" + +# +#, fuzzy +msgid "Signal strength:" +msgstr "Signal styrke:" + +# +msgid "Signal: " +msgstr "Signal: " + +# +msgid "Similar" +msgstr "Samme" + +# +msgid "Similar broadcasts:" +msgstr "Samme udsendelser:" + +# +msgid "Simple" +msgstr "Simpel" + +# +msgid "Simple titleset (compatibility for legacy players)" +msgstr "Enkelt titelopsætning (kompatibel med legacy afspillere)" + +# +msgid "Single" +msgstr "Enkelt" + +# +msgid "Single EPG" +msgstr "Enkelt EPG" + +# +msgid "Single satellite" +msgstr "Enkelt satellit" + +# +#, fuzzy +msgid "Single step (GOP)" +msgstr "Enkelt trin (GOP)" + +# +msgid "Single transponder" +msgstr "Enkelt transponder" + +msgid "Site latitude" +msgstr "Breddegrad" + +msgid "Site longitude" +msgstr "Længdegrad" + +# +msgid "Skin" +msgstr "Grafisk tema" + +# +msgid "Skins" +msgstr "Grafiske temaer" + +#, fuzzy +msgid "Skip empty services" +msgstr "Drop tomme kanaler" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "" + +# +#, fuzzy +msgid "Sleep timer" +msgstr "Sleep Timer" + +msgid "SleepTimer Configuration" +msgstr "" + +msgid "Sleeptimer" +msgstr "" + +# +#, fuzzy +msgid "Slide picture in loop" +msgstr "vis billeder i sløjfe" + +# +#, fuzzy +msgid "Slide show interval (sec.)" +msgstr "Slideshow Interval (sek.)" + +# +#, python-format +msgid "Slot %d" +msgstr "Slot %d" + +msgid "Slovak" +msgstr "" + +# +msgid "Slovenian" +msgstr "Slovensk" + +# +msgid "Slow" +msgstr "Langsom" + +# +#, fuzzy +msgid "Slow motion speeds" +msgstr "Langsom bevægelse hastigheder" + +# +#, fuzzy +msgid "Small progress" +msgstr "Arbejder" + +msgid "Social/Political/Economics" +msgstr "" + +msgid "SoftCam / CI" +msgstr "" + +# +#, fuzzy +msgid "Softcam type" +msgstr "Software" + +# +msgid "Software" +msgstr "Software" + +# +msgid "Software management" +msgstr "SoftwarehÃ¥ndtering" + +msgid "Software manager setup" +msgstr "" + +# +msgid "Software restore" +msgstr "Software gendannelse" + +# +msgid "Software update" +msgstr "Software opdatering" + +msgid "Softwaremanager information" +msgstr "" + +# +msgid "Some plugins are not available:\n" +msgstr "Nogle plugins er ikke tilstede:\n" + +# +#, fuzzy, python-format +msgid "Sorry, %s has not been installed!" +msgstr "Desværre, MediaScanner er ikke installeret!" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "" + +# +#, fuzzy +msgid "Sorry, no backups found!" +msgstr "Beklager, ingen backup fundet!" + +# +#, fuzzy +msgid "Sorry, no details available!" +msgstr "Desværre, ingen detaljer er angivet!" + +# +#, fuzzy +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"Din placering af backup er desværre ikke skrivbar.\n" +"Vælg venligst en anden." + +msgid "Sort" +msgstr "Sorter" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Sorter A-Z" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +#, fuzzy +msgid "Sort time" +msgstr "Sorter tid" + +# +msgid "Sound" +msgstr "Lyd" + +# +#, fuzzy +msgid "Sound carrier" +msgstr "Lydfrekvens" + +msgid "Source request" +msgstr "Kilde" + +# +msgid "South" +msgstr "Syd" + +# +msgid "Spanish" +msgstr "Spansk" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +# +msgid "Split preview mode" +msgstr "Opdel forhÃ¥ndsvisningstilstand" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "" + +# +#, fuzzy +msgid "Standard" +msgstr "normal" + +msgid "Standart list" +msgstr "" + +# +msgid "Standby" +msgstr "Standby" + +# +#, fuzzy +msgid "Standby / restart" +msgstr "Afbryde / Genstarte" + +msgid "Standby after current event" +msgstr "" + +# +#, fuzzy, python-format +msgid "Standby fan %d PWM" +msgstr "Ventilator %d PWM" + +# +#, fuzzy, python-format +msgid "Standby fan %d voltage" +msgstr "Ventilator %d spænding (V)" + +msgid "Standby in " +msgstr "" + +msgid "StandbyLED" +msgstr "" + +# +msgid "Start from the beginning" +msgstr "Start fra begyndelse" + +msgid "Start offline decode" +msgstr "Start offline dekodning" + +# +msgid "Start recording?" +msgstr "Start optagelse?" + +# +msgid "Start test" +msgstr "Start test" + +# +#, fuzzy +msgid "Start time" +msgstr "StartTid" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +# +#, fuzzy +msgid "Start timeshift" +msgstr "start tidsforskydning" + +msgid "Start with list screen" +msgstr "" + +# +msgid "Starting on" +msgstr "Starter pÃ¥" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +# +msgid "Step east" +msgstr "Drej mod Øst" + +# +msgid "Step west" +msgstr "Drej mod Vest" + +msgid "Stepped east" +msgstr "Step øst" + +msgid "Stepped west" +msgstr "Step Vest" + +# +msgid "Stop" +msgstr "Stop" + +# +#, fuzzy +msgid "Stop PiP" +msgstr "stoppe billede i billede" + +# +msgid "Stop current event and disable coming events" +msgstr "Stoppe nuværende program og slÃ¥ kommende programmer fra" + +# +msgid "Stop current event but not coming events" +msgstr "Stoppe nuværende program men ikke kommende programmer" + +# +#, fuzzy +msgid "Stop entry" +msgstr "stoppe tilføjelser" + +# +msgid "Stop playing this movie?" +msgstr "Stoppe afspilning af denne film?" + +msgid "Stop recording" +msgstr "Stop optagelse" + +msgid "Stop recording and delete" +msgstr "Stop optagelse og slet" + +msgid "Stop service on return to movie list" +msgstr "" + +# +msgid "Stop test" +msgstr "Stoppe test" + +# +msgid "Stop testing plane after # failed transponders" +msgstr "Stop afprøvning af flade efter # fejlende transpondere" + +# +msgid "Stop testing plane after # successful transponders" +msgstr "Stop afprøvning af flade efter # fungerende transpondere" + +msgid "Stop timer recording" +msgstr "" + +# +#, fuzzy +msgid "Stop timeshift" +msgstr "stop tidsforskydning" + +# +#, fuzzy +msgid "Stop timeshift?" +msgstr "Stoppe tidsforskydning?" + +msgid "Stopped" +msgstr "Stoppet" + +msgid "Store at index" +msgstr "Gem ved indeks" + +# +msgid "Store position" +msgstr "Gemme position" + +# +msgid "Stored position" +msgstr "Gemt position" + +msgid "Stream" +msgstr "" + +msgid "Stream request" +msgstr "" + +msgid "Strongest position" +msgstr "Stærkeste position" + +# +msgid "Subservice list..." +msgstr "Underkanal liste..." + +# +msgid "Subservices" +msgstr "Underkanaler" + +msgid "Subtitle Quickmenu" +msgstr "" + +#, fuzzy +msgid "Subtitle alignment" +msgstr "Bruger tekst opretning" + +#, fuzzy +msgid "Subtitle border width" +msgstr "Tekstbredde" + +msgid "Subtitle delay when timing is bad" +msgstr "" + +msgid "Subtitle delay when timing lacks" +msgstr "Tekstforsinkelse nÃ¥r timing mangler" + +#, fuzzy +msgid "Subtitle font size" +msgstr "Tekststørrelse" + +msgid "Subtitle language selection 1" +msgstr "Undertekstsprog valg 1" + +msgid "Subtitle language selection 2" +msgstr "Undertekstsprog valg 2" + +msgid "Subtitle language selection 3" +msgstr "Undertekstsprog valg 3" + +msgid "Subtitle language selection 4" +msgstr "Undertekstsprog valg 4" + +# +#, fuzzy +msgid "Subtitle position" +msgstr "Undertekst vælger" + +# +msgid "Subtitle selection" +msgstr "Undertekst vælger" + +msgid "Subtitle selection..." +msgstr "Undertekst valg" + +msgid "Subtitle settings" +msgstr "Undertekst indstillinger" + +# +msgid "Subtitles" +msgstr "Undertekster" + +# +msgid "Sun" +msgstr "Søn" + +# +msgid "Sunday" +msgstr "Søndag" + +# +#, fuzzy +msgid "Swap PiP and main picture" +msgstr "byt billed i billed og hovedbillede" + +# +#, fuzzy +msgid "Swap services" +msgstr "Bytte kanaler" + +# +msgid "Swedish" +msgstr "Svensk" + +msgid "Switch TV to correct input" +msgstr "Skift TV til rette indput" + +msgid "Switch between filelist/playlist" +msgstr "" + +msgid "Switch between normal mode and list mode" +msgstr "" + +msgid "Switch to HDMI in mode" +msgstr "" + +# +#, fuzzy +msgid "Switch to filelist" +msgstr "skift til filliste" + +msgid "Switch to next channel" +msgstr "" + +# +#, fuzzy +msgid "Switch to next channel in history" +msgstr "næste kanal i hukommelse" + +# +#, fuzzy +msgid "Switch to next sub service" +msgstr "Skift til næste underkanal" + +# +#, fuzzy +msgid "Switch to playlist" +msgstr "skift til spilleliste" + +# +#, fuzzy +msgid "Switch to previous channel" +msgstr "Skift til forrige underkanal" + +# +#, fuzzy +msgid "Switch to previous channel in history" +msgstr "forrige sete kanal" + +# +#, fuzzy +msgid "Switch to previous sub service" +msgstr "Skift til forrige underkanal" + +# +msgid "Switchable tuner types:" +msgstr "Udskiftelige tuner typer" + +msgid "Symbol rate" +msgstr "" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "Synkronationsfejl, gÃ¥r tilbage!" + +# +msgid "System" +msgstr "System" + +# +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "" +"Sidste opdatering: 12. Juni 2008\n" +"\n" +"Har du ændringer, forslag eller andet, sÃ¥ kontakt mig venligst!.\n" +"\n" +"Find mere om DreamBox her:\n" +"\n" +"http://www.dream-multimedia-tv.de/board/index.php?sid=" + +# +msgid "TS file is too large for ISO9660 level 1!" +msgstr "TS filen er for stor til ISO9660 level 1!" + +msgid "TSID" +msgstr "" + +msgid "TV physical address report" +msgstr "" + +msgid "TXT PID" +msgstr "" + +# +#, fuzzy +msgid "Table of contents for collection" +msgstr "Indholdsfortegnelse for kollektion" + +# +msgid "Tags" +msgstr "Tags" + +msgid "Teletext subtitle color" +msgstr "TekstTV undertekst farve" + +# +#, fuzzy +msgid "Temperature and fan control" +msgstr "Kontrol af temperatur og ventilator" + +# +msgid "Terrestrial" +msgstr "DVB T" + +# +msgid "Terrestrial provider" +msgstr "DVB T udbyder" + +# +msgid "Test DiSEqC settings" +msgstr "Afprøv DiSEqC indstillinger" + +# +msgid "Test mode" +msgstr "Test type" + +msgid "Test the network configuration of your receiver.\n" +msgstr "" + +# +#, fuzzy +msgid "Test type" +msgstr "Afprøv type" + +# +#, fuzzy +msgid "Text color" +msgstr "tekstfarve" + +msgid "Thai" +msgstr "" + +# +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"Tak for brug af hjælperen.\n" +"Tryk venligst OK for at fortsætte." + +# +#, fuzzy +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"Tak for brug af hjælperen.\n" +"Tryk venligst OK for at fortsætte." + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "" + +msgid "The PIN code has been changed successfully." +msgstr "PIN koden er ændret med succes." + +msgid "The PIN codes you entered are different." +msgstr "PIN koderne du tastede er ikke ens." + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" +"USB nøglen er klargjort til boot.\n" +"nu kan du hente et NFI image!" + +# +msgid "The backup failed. Please choose a different backup location." +msgstr "Backup har slÃ¥et fejl. Vælg en anden mÃ¥de at lave backup pÃ¥." + +#, fuzzy, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "Dette beta image kan være ustabilt" + +# +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"Mappen %s er ikke skrivbar.\n" +"Sørg i stedet for at vælge en skrivbar mappe." + +# +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"Følgende device blev fundet:\n" +"\n" +"%s\n" +"\n" +"Vil du skrive USB flash til denne stick?" + +# +msgid "The following files were found..." +msgstr "Følgende filer fandtes..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "" + +# +#, fuzzy +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"Udvidelsen netværksassistenen er ikke installeret!\n" +"installer den venligst." + +# +#, python-format +msgid "The path %s already exists." +msgstr "Stien %s findes allerede." + +# +msgid "The pin code you entered is wrong." +msgstr "Din indtastede pin kode er forkert." + +# +#, python-format +msgid "The results have been written to %s." +msgstr "Resultaterne skal skrives til %s." + +# +msgid "The sleep timer has been activated." +msgstr "Sleep timeren er blevet aktiveret." + +# +msgid "The sleep timer has been disabled." +msgstr "Sleep timeren er ikke aktiveret." + +# +#, fuzzy +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"Udvidelsen softwareredigering er ikke installeret!\n" +"installer den venligst." + +#, fuzzy, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "Status omkring dit nuværende image kunne ikke blive kontroleret fordiwww.openpli.org ikke kunne kontaktes" + +# +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "Timer filen (timers.xml) er korrupt og kan ikke bruges." + +#, fuzzy +msgid "The user interface of your receiver is restarting" +msgstr "Brugerinterfacet pÃ¥ din modtager genstarter" + +#, fuzzy +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" +"Brugerinterfacet pÃ¥ din modtager genstarter\n" +"pÃ¥ grund af en fejl i mytest.py" + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"Det trÃ¥dløs LAN plugin er ikke installeret!\n" +"Installer det venligst og vælg hvad du herefter vil gøre." + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"TrÃ¥dløs LAN plugin er ikke installeret!\n" +"Installer det venligst." + +# +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "Assistenten kan gemme dine nuværende indstillinger. Vil du gemme dine indstillinger nu?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "Assistenten har fundet en konfigurationsbackup. Vil du gendanne dine gamle indstillinger fra %s?" + +# +msgid "The wizard is finished now." +msgstr "Brugen af assistenten er færdig nu." + +# +msgid "There are at least " +msgstr "Der er mindst" + +# +#, fuzzy, python-format +msgid "There are at least %s updates available." +msgstr "Ingen tilgængelige opdateringer." + +# +msgid "There are currently no outstanding actions." +msgstr "Der er aktuelt ingen udestÃ¥ende handlinger." + +# +msgid "There are no updates available." +msgstr "Ingen tilgængelige opdateringer." + +msgid "There is no signal to lock on !" +msgstr "Der findes intet signal at lÃ¥se pÃ¥" + +# +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"Der kan være for lidt plads pÃ¥ den valgte Partition.\n" +"Vil du virkelig fortsætte?" + +# +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "Denne DVD RW er allerede formatteret - reformattering vil slette alt indhold pÃ¥ disken." + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" + +# +msgid "This plugin is installed." +msgstr "Dette plugin er installeret" + +# +msgid "This plugin is not installed." +msgstr "Dette plugin er ikke installeret" + +# +msgid "This plugin will be installed." +msgstr "Dette plugin vil blive installeret" + +# +msgid "This plugin will be removed." +msgstr "Dette plugin vil blive fjernet" + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "" + +# +#, fuzzy +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"Denne test søger efter konfigurerede Navneservere.\n" +"Hvis du fÃ¥r en \"ubekræftet\" besked:\n" +"- venligst tjek din DHCP, kabel og Adapter opsætning\n" +"- hvis du har konfigureret dine Navneservere manuelt venligst kontroler dine indtastninger i din \"Navneserver\" Konfiguration" + +# +#, fuzzy +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Denne test tjekker om et netværks kabel er tilsluttet din LAN-Adapter.\n" +"Hvis du fÃ¥r en \"afbrudt\" besked:\n" +"- sikker pÃ¥ at et netværks kabel er tilsluttet\n" +"- sikker pÃ¥ at kablet ikke er i stykker" + +# +#, fuzzy +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Denne test søger efter en virkende IP Adresse er fundet til din LAN Adapter.\n" +"Hvis du fÃ¥r en \"ubekræftet\" besked:\n" +"- ingen virkende IP Adresse fundet\n" +"- venligst tjek DHCP, kabler og adapter opsætning" + +# +#, fuzzy +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"Denne test undersøger om din LAN Adapter er sat op til automatisk IP Adresse konfiguration med DHCP.\n" +"Hvis du fÃ¥r en \"afbrudt\" besked:\n" +" - sÃ¥ er din LAN Adapter konfigureret til manual IP Opsætning\n" +"- undersøg om du har korrekt IP informationer i AdapterOpsætnings dialog.\n" +"Hvis du fÃ¥r en \"aktiveret\" besked:\n" +"-undersøg om du har en konfigureret og virkende DHCP Server i dit netværk." + +# +#, fuzzy +msgid "This test detects your configured LAN adapter." +msgstr "Denne test finder din konfigurerede LAN-Adapter." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" +"Dette vil beregne all positioner af din motor, og vil mÃ¥ske fjerne tidligere gemte positioner og fintuning!\n" +"Are you sure?" + +# +msgid "Three" +msgstr "Tre" + +# +msgid "Threshold" +msgstr "Tærskelværdi" + +# +msgid "Thu" +msgstr "Tor" + +# +msgid "Thumbnails" +msgstr "Miniaturbilleder" + +# +msgid "Thursday" +msgstr "Torsdag" + +# +msgid "Time" +msgstr "Tid" + +#, fuzzy +msgid "Time scale" +msgstr "Tidsscala" + +# +msgid "Timer" +msgstr "Timer" + +msgid "Timer Overview" +msgstr "" + +# +#, fuzzy +msgid "Timer edit" +msgstr "Timer redigering" + +# +#, fuzzy +msgid "Timer editor" +msgstr "Timer redigering" + +# +msgid "Timer entry" +msgstr "Indstil timer" + +# +msgid "Timer log" +msgstr "Timer log" + +# +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"Konstateret timer overlap i timers.xml!\n" +"Vær venlig at undersøge det!" + +#, fuzzy +msgid "Timer overview" +msgstr "Timer Oversigt" + +# +#, fuzzy +msgid "Timer recording location" +msgstr "Placering af timeroptagelser" + +# +msgid "Timer sanity error" +msgstr "Timer sanity fejl" + +# +msgid "Timer selection" +msgstr "Timer valg" + +msgid "Timer selection..." +msgstr "" + +# +#, fuzzy +msgid "Timer type" +msgstr "Timer type" + +# +msgid "Timeshift" +msgstr "Tidsforskydning" + +msgid "Timeshift Live" +msgstr "" + +# +msgid "Timeshift location" +msgstr "Placering af tidsforskydning" + +# +msgid "Timeshift not possible!" +msgstr "Tidsforskydning ikke mulig!." + +# +msgid "Timezone" +msgstr "Tidszone" + +# +msgid "Title" +msgstr "Titel" + +# +msgid "Title properties" +msgstr "Titel egenskaber" + +# +msgid "Titleset mode" +msgstr "Titelopsætning modus" + +msgid "To audio selection" +msgstr "Til lyd valg" + +msgid "To subtitle selection" +msgstr "Til undertekst valg" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" + +# +msgid "Today" +msgstr "Idag" + +# +#, fuzzy +msgid "Toggle a cut mark at the current position" +msgstr "flytte en klippe markør til nuværende position" + +# +#, fuzzy +msgid "Tone amplitude" +msgstr "Tone amplitude" + +# +msgid "Tone mode" +msgstr "Lyd type" + +# +msgid "Toneburst" +msgstr "Toneburst" + +# +msgid "Toneburst A/B" +msgstr "Toneburst A/B" + +msgid "Top and bottom" +msgstr "" + +# +msgid "Track" +msgstr "Spor" + +# +msgid "Translation" +msgstr "Sprog info" + +# +msgid "Translation:" +msgstr "Oversætter:" + +msgid "Translations" +msgstr "" + +# +msgid "Transmission mode" +msgstr "Transmissions type" + +# +msgid "Transponder" +msgstr "Transponder" + +# +#, fuzzy +msgid "Transponder type" +msgstr "Transponder type" + +#, fuzzy +msgid "Trash can" +msgstr "Papirkurv" + +# +msgid "Tries left:" +msgstr "Forsøg tilbage:" + +# +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Prøver at finde transpondere i kabel netværk.. vent venligst..." + +# +msgid "Trying to download a new packetlist. Please wait..." +msgstr "Prøver at downloade ny pakkeliste. Vent venligst..." + +# +msgid "Tue" +msgstr "Tir" + +# +msgid "Tuesday" +msgstr "Tirsdag" + +# +msgid "Tune" +msgstr "Tune" + +#, fuzzy +msgid "Tune and focus" +msgstr "Tune og fokuser" + +# +msgid "Tune failed!" +msgstr "Tuning fejlede!" + +# +msgid "Tuner" +msgstr "Tuner" + +# +msgid "Tuner configuration" +msgstr "Tuner opsætning" + +msgid "Tuner is not supported" +msgstr "" + +# +#, fuzzy +msgid "Tuner slot" +msgstr "Tuner slot" + +# +msgid "Tuner status" +msgstr "Tuner status" + +# +#, fuzzy, python-format +msgid "Tuner status %s" +msgstr "Tuner status" + +# +msgid "Tuner type" +msgstr "" + +# +msgid "Turkish" +msgstr "Tyrkisk" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +# +msgid "Two" +msgstr "To" + +# +msgid "Type" +msgstr "Type" + +# +msgid "Type of scan" +msgstr "Søge type" + +# +msgid "USALS" +msgstr "USALS" + +#, fuzzy +msgid "USALS calibration" +msgstr "USALS Calibrering" + +# +#, fuzzy +msgid "USB stick" +msgstr "USB stick" + +# +msgid "USB stick wizard" +msgstr "USB stick assistenten" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"UovervÃ¥get opgradering i gang\n" +"Vent venligst til din modtager genstarter\n" +"Dette kan vare flere minutter" + +# +msgid "Undo install" +msgstr "Fortryd afinstallering" + +# +msgid "Undo uninstall" +msgstr "Fortryd afinstallering" + +msgid "Unencrypted" +msgstr "Ikke krypteret" + +# +msgid "UnhandledKey" +msgstr "UhÃ¥ndteret nøgle" + +# +msgid "Unicable" +msgstr "Unikabel" + +# +msgid "Unicable LNB" +msgstr "Unikabel LNB" + +# +msgid "Unicable Martix" +msgstr "Unikabel matrix" + +# +msgid "Uninstall" +msgstr "Afinstaller" + +# +msgid "Universal LNB" +msgstr "Universal LNB" + +msgid "Unknown" +msgstr "Ukendt" + +msgid "Unmount" +msgstr "" + +# +msgid "Unsupported" +msgstr "Ikke understøttet" + +# +msgid "Update" +msgstr "Opdater" + +#, fuzzy +msgid "Update and ask to reboot" +msgstr "Opgrader og spørg om genstart" + +msgid "Update and reboot (recommended)" +msgstr "" + +# +#, fuzzy +msgid "Update channel list only" +msgstr "næste kanal i hukommelse" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "" +msgstr[1] "" + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "" + +msgid "Update has completed." +msgstr "" + +# +#, fuzzy +msgid "Updatefeed not available." +msgstr "opdateringer tilgængelig." + +# +msgid "Updating software catalog" +msgstr "Opdaterer softwarekatalog" + +# +msgid "Upgrading" +msgstr "Opdaterer" + +# +msgid "Use" +msgstr "Brug" + +# +msgid "Use DHCP" +msgstr "Brug (DHCP)" + +msgid "Use EIT EPG information when it is available." +msgstr "" + +msgid "Use FreeSat EPG information when it is available." +msgstr "" + +msgid "Use MHW EPG information when it is available." +msgstr "" + +msgid "Use Netmed EPG information when it is available." +msgstr "" + +msgid "Use TV remote control" +msgstr "Brug TV fjernbetjening" + +# +#, fuzzy +msgid "Use USALS for this sat" +msgstr "Brug USALS til denne position" + +msgid "Use ViaSat EPG information when it is available." +msgstr "" + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +# +msgid "Use a gateway" +msgstr "Brug af Router" + +msgid "Use fastscan channel names" +msgstr "Brug hurtigsøgning kanalnavne" + +msgid "Use fastscan channel numbering" +msgstr "Brug hurtigsøgning kanalnumre" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "" + +# +#, fuzzy +msgid "Use interface" +msgstr "Benyt interface" + +msgid "Use official channel numbering" +msgstr "Brug officel kanalnumerering" + +#, fuzzy +msgid "Use original DVB subtitle position" +msgstr "Brug DVB undertekster position" + +msgid "Use original teletext position" +msgstr "Brug original TekstTV position" + +# +msgid "Use power measurement" +msgstr "Brug strømmÃ¥ling" + +# +#, fuzzy +msgid "Use the network wizard to configure selected network adapter" +msgstr "Brug netværksassistenten til at indstille valgte enhed" + +# +#, fuzzy +msgid "Use the network wizard to configure your network\n" +msgstr "Brug Netværksassistenten til at konfigurere dit Netværk\n" + +# +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "Brug pil op/ned for at vælge pÃ¥ din fjernbetjening. Derefter tryk pÃ¥ OK." + +# +#, fuzzy +msgid "Use the wizard to set up basic features" +msgstr "Bruge Start assistenten til grundindstilling?" + +#, fuzzy +msgid "Use these input device settings?" +msgstr "Brug disse enhedsindstillinger" + +#, fuzzy +msgid "Use these settings?" +msgstr "Brug disse indstillinger" + +# +msgid "Use this video enhancement settings?" +msgstr "Anvend denne opsætning af videoforbedring?" + +#, fuzzy +msgid "Use trash can in movielist" +msgstr "Brug papirkurv i filmliste" + +# +msgid "Used service scan type" +msgstr "Brugt kanal søgnings type" + +msgid "User - bouquets" +msgstr "Bruger kanallister" + +# +msgid "User defined" +msgstr "Brugerdefineret" + +msgid "User defined transponder" +msgstr "" + +# +#, fuzzy +msgid "User interface" +msgstr "Benyt interface" + +# +msgid "Username" +msgstr "Brugernavn" + +#, python-format +msgid "Using LNB %d" +msgstr "" + +msgid "Using fixed address" +msgstr "Brug fast adresse" + +#, python-format +msgid "Using tuner %s" +msgstr "" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "" + +# +msgid "VCR scart" +msgstr "Scart / Video" + +# +msgid "VMGM (intro trailer)" +msgstr "VMGM (intro trailer)" + +# +msgid "Vertical" +msgstr "Vertikal" + +msgid "Vertical turning speed" +msgstr "Vertikal rotationshastighed" + +msgid "Video PID" +msgstr "" + +# +msgid "Video enhancement preview" +msgstr "ForhÃ¥ndsvisning af videoforbedring" + +# +msgid "Video enhancement settings" +msgstr "Indstillinger af videoforbedring" + +# +msgid "Video enhancement setup" +msgstr "Opsæt videoforbedring" + +# +#, fuzzy +msgid "Video fine tuning" +msgstr "Video finindstilling..." + +# +#, fuzzy +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Video indgangs vælger\n" +"\n" +"Venligst tryk OK hvis du kan se denne side pÃ¥ dit TV (eller vælg en anden indgangs port).\n" +"\n" +"Næste indgangs port vil automatisk blive testet i 10 sekunder." + +# +msgid "Video mode selection." +msgstr "Video type vælger." + +# +#, fuzzy +msgid "Video output" +msgstr "Video udgang" + +# +#, fuzzy +msgid "Video setup" +msgstr "Video Opsætning..." + +# +#, fuzzy +msgid "Video wizard" +msgstr "Video assistenten" + +#, python-format +msgid "Video: %s fps" +msgstr "" + +msgid "VideoMode" +msgstr "" + +msgid "Videocodec" +msgstr "" + +msgid "Videoformat" +msgstr "" + +msgid "Videosize" +msgstr "Videostørrelse" + +# +msgid "View Rass interactive..." +msgstr "Se Rass interaktiv..." + +# +msgid "View details" +msgstr "Se detaljer" + +# +msgid "View list of available " +msgstr "Se liste over tilgængelige" + +# +msgid "View list of available CommonInterface extensions" +msgstr "Vis oplistning af alle tilgængelige Common Interface udvidelser" + +# +msgid "View list of available EPG extensions." +msgstr "Vis oplistning af tilgængelige EPG udvidelser." + +# +msgid "View list of available Satellite equipment extensions." +msgstr "Vis liste over tilgængelig satudstyrs udvidelser" + +# +msgid "View list of available communication extensions." +msgstr "Vis oplistning af tilgængelige kommunikationsudvidelser" + +# +msgid "View list of available default settings" +msgstr "Vis oplistning af tilgængelige standardopsætninger" + +# +#, fuzzy +msgid "View list of available display and userinterface extensions." +msgstr "Vis oplistning af tilgængelige visnings- og brugerinterface udvidelser." + +# +msgid "View list of available multimedia extensions." +msgstr "Vis oplistning af tilgængelige multimediaudvidelser" + +# +msgid "View list of available networking extensions" +msgstr "Vis oplistning af tilgængelige netværksudvidelser" + +# +msgid "View list of available recording extensions" +msgstr "Vis oplistning af tilgængelige optagelsesudvidelser" + +# +msgid "View list of available skins" +msgstr "Vis oplistning af tilgængelige grafiske temaer" + +# +msgid "View list of available software extensions" +msgstr "Vis oplistning af tilgængelige software udvidelser" + +# +msgid "View list of available system extensions" +msgstr "Vis oplistning af tilgængelige systemudvidelser" + +# +#, fuzzy +msgid "View photos..." +msgstr "Vis fotos..." + +# +msgid "View teletext..." +msgstr "Se teletekst..." + +# +#, fuzzy +msgid "View video CD..." +msgstr "Vis video CD" + +# +#, fuzzy +msgid "Virtual keyboard" +msgstr "Virtuelt tastatur" + +# +msgid "Voltage mode" +msgstr "Spændings type" + +# +msgid "Volume" +msgstr "Lydstyrke" + +# +msgid "W" +msgstr "V" + +# +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "WLAN forbindelse" + +# +msgid "WPA" +msgstr "WPA" + +# +msgid "WPA or WPA2" +msgstr "WPA eller WPA2" + +# +msgid "WPA2" +msgstr "WPA2" + +# +msgid "WSS on 4:3" +msgstr "WSS pÃ¥ 4:3" + +# +msgid "Waiting" +msgstr "Venter" + +#, fuzzy +msgid "Waiting for mount" +msgstr "Vent pÃ¥ mount" + +#, fuzzy +msgid "Waiting for partition" +msgstr "Vent pÃ¥ partitionering" + +msgid "Wakeup" +msgstr "VÃ¥gn op" + +msgid "Wakeup TV from standby" +msgstr "Væk TV fra Standby" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "Væk modtager fra Stanbdy" + +msgid "Wakeup signal from TV" +msgstr "VÃ¥gn op signal fra TV" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "" + +# +#, fuzzy +msgid "Watch movies..." +msgstr "Afspil optagede film..." + +# +#, fuzzy +msgid "Watch recordings..." +msgstr "optager..." + +# +msgid "Wed" +msgstr "Ons" + +# +msgid "Wednesday" +msgstr "Onsdag" + +# +msgid "Weekday" +msgstr "Ugedag" + +msgid "Weighted position" +msgstr "Vægtet position" + +# +#, fuzzy +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"Velkommen til klipliste editor.\n" +"\n" +"Søg til starten af det materiale, du vil skære væk. Tryk OK, vælg 'start klip'.\n" +"\n" +"Søg derefter til slutningen, tryk OK, vælg 'afslut klip'. Det er det hele." + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" + +# +msgid "Welcome..." +msgstr "Velkommen..." + +# +msgid "West" +msgstr "Vest" + +msgid "West limit set" +msgstr "Vest grænse opsætning" + +# +msgid "What do you want to scan?" +msgstr "Hvad vil du søge?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "" + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "" + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "" + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "" + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "" + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "" + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "" + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "" + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "" + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "" + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "" + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "" + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "" + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "" + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "" + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "" + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "" + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "" + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "" + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "" + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "" + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "" + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "" + +msgid "When enabled, number markers will be hiden." +msgstr "" + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "" + +#, fuzzy +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "Vis kanalnumre i kanalvælger" + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "" + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "" + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "" + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "" + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "" + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "" + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "" + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "" + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "" + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "" + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "" + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "" + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "" + +# +#, fuzzy +msgid "When enabled, use DHCP for the IP configuration." +msgstr "Ã¥bn navneserver opsætning" + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "" + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "" + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "" + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "" + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "" + +# +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"NÃ¥r du anvender fabrik gendannelse mister du ALLE dine indstillingsdata\n" +"(Inclusive buketter, kanallister, satellit data ...)\n" +"Efter afsluttet fabriksgendannelse genstartes DeamBoxen automatisk!\n" +"\n" +"Udfør fabriks gendannelse?" + +# +msgid "Where do you want to backup your settings?" +msgstr "Hvor vil du lave en kopi af dine indstillinger?" + +# +msgid "Where to save temporary timeshift recordings?" +msgstr "Hvor skal midleridige tidsforskydningsoptagelser gemmes?" + +# +msgid "Wireless LAN" +msgstr "TrÃ¥dløs LAN" + +# +#, fuzzy +msgid "Wireless network" +msgstr "TrÃ¥dløst netværk" + +#, fuzzy +msgid "Wireless network configuration..." +msgstr "Opsæt trÃ¥dløs netværksforbindelse." + +msgid "Wireless network connection setup" +msgstr "Opsæt trÃ¥dløs netværksforbindelse" + +msgid "Wireless network connection setup." +msgstr "Opsæt trÃ¥dløs netværksforbindelse." + +msgid "Wireless network state" +msgstr "Status trÃ¥dløs netværksforbindelse" + +msgid "With popup" +msgstr "" + +msgid "Without popup" +msgstr "" + +msgid "Would you like to install a softcam?" +msgstr "" + +# +msgid "Write error while recording. Disk full?\n" +msgstr "Skrive fejl under optagelse. Disken fuld?\n" + +# +msgid "Write failed!" +msgstr "Skrivning mislykkedes!" + +# +msgid "YPbPr" +msgstr "Komponent" + +# +msgid "Year" +msgstr "Ã…r" + +msgid "Yellow DVB subtitles" +msgstr "Gule DVD undertekster" + +# +msgid "Yes" +msgstr "Ja" + +msgid "Yes and save" +msgstr "" + +msgid "Yes and save in movie dir" +msgstr "" + +# +msgid "Yes to all" +msgstr "Ja til alt" + +msgid "Yes, always" +msgstr "Ja, altid" + +# +msgid "Yes, and delete this movie" +msgstr "Ja, og slet denne film" + +# +msgid "Yes, backup my settings!" +msgstr "Ja, start kopiering af mine indstillinger!" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +# +msgid "Yes, do a manual scan now" +msgstr "Ja, start en manuel søgning nu" + +# +msgid "Yes, do an automatic scan now" +msgstr "Ja, start en automatisk søgning nu" + +# +msgid "Yes, do another manual scan now" +msgstr "Ja, start en ny manuel søgning nu" + +# +msgid "Yes, perform a shutdown now." +msgstr "Ja, start afbrydelse nu." + +# +msgid "Yes, restore the settings now" +msgstr "Ja, genskab indstillinger nu" + +# +msgid "Yes, returning to movie list" +msgstr "Ja, gÃ¥ til filmliste" + +msgid "Yesterday" +msgstr "I gÃ¥r" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" + +# +msgid "You can cancel the installation." +msgstr "Du kan afbryde installationen." + +# +msgid "You can cancel the removal." +msgstr "Du kan afbryde fjernelsen." + +msgid "You can continue watching TV etc. while this is running." +msgstr "Du kan fortsætte med at se TV mens dette kører." + +# +msgid "You can install this plugin." +msgstr "Du kan installere dette plugin" + +msgid "You can only burn receiver recordings!" +msgstr "" + +# +msgid "You can remove this plugin." +msgstr "Du kan fjerne dette plugin." + +# +msgid "You cannot delete this!" +msgstr "Dette kan ikke slettes!" + +msgid "You didn't select a channel to record from." +msgstr "Du har ikke valgt en kanal at optage fra" + +# +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "Du hae valgt dine backup indstillinger. Tryk venligst pÃ¥ OK for at starte backuppen nu" + +# +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "Du har valgt at oprette ny .NFI flash bootbar USB stick. Dette vil repartitionere USB sticken og derfor vil alle data pÃ¥ den blive slettet." + +# +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "Du har valgt at gendanne dine indstillinger. Enigma2 vil genstarte efter gendannelsen. Tryk venligst pÃ¥ OK for at starte gendannelsen nu." + +# +#, python-format +msgid "You have to wait %s!" +msgstr "Du mÃ¥ vente %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" + +msgid "You system does not support ext4" +msgstr "Dit system understøtter ikke ext4" + +# +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "Din backup er lykkedes. Vi vil nu forsætte forklaringen pÃ¥ opdaterings processen." + +# +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "Din kollektion overstiger størrelsen af et enkeltlags medium, du har brug for en tom dobbeltlags DVD!" + +# +msgid "Your current collection will get lost!" +msgstr "" + +# +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"Din frontprocessor skal opdateres.\n" +"Tryk OK for at starte opdateringen." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"din frontprocessor bliver opdateret\n" +"Vent venligst til din modtager genstarter\n" +"Dette kan tage nogle minutter" + +# +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"Din internetforbindelse virker ikke!\n" +"Vælg hvad du vil gøre herefter." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "" + +# +msgid "Your network configuration has been activated." +msgstr "Din netværks opsætning er blevet aktiveret." + +msgid "Your receiver does not have an internet connection" +msgstr "" + +# +#, fuzzy +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"Din Dreambox er nu klar til brug.\n" +"\n" +"Din internetforbindelse fungerer nu.\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" + +msgid "Your receiver is rebooting" +msgstr "Din modtager genstarter" + +msgid "Your receiver is shutting down" +msgstr "Din modtager lukker ned" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "" + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "" + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "" + +msgid "Your receiver will got to standby due to inactivity." +msgstr "" + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "" + +# +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"Din trÃ¥dløse LAN internetforbindelse kunne ikke startes!\n" +"Har du forbundet din USB WLAN Stick?\n" +"\n" +"Vælg hvad du herefter vil gøre." + +msgid "Zap" +msgstr "" + +# +msgid "Zap back to previously tuned service?" +msgstr "Zap tilbage til tidligere kanal" + +# +msgid "Zap back to service before positioner setup?" +msgstr "Skift tilbage til kanal før motoropsætning?" + +# +msgid "Zap back to service before tuner setup?" +msgstr "Skift tilbage til kanal før tuneropsætning?" + +msgid "Zap focus to Picture in Picture" +msgstr "Skift fokus i Billed i Billed" + +msgid "Zap focus to main screen" +msgstr "Skift fokus til hovedbillede" + +msgid "Zap mode" +msgstr "" + +msgid "Zap to selected channel" +msgstr "Skift til valgte kanal" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "" + +# +msgid "[alternative edit]" +msgstr "[Alternativ ændring]" + +# +msgid "[bouquet edit]" +msgstr "[Pakke redigering]" + +# +msgid "[favourite edit]" +msgstr "[Favorit redigering]" + +# +msgid "[move mode]" +msgstr "[Flytte type]" + +# +msgid "a gui to assign services/providers to common interface modules" +msgstr "et gui til at tilknytte kanaler/udbydere til common interface moduler" + +# +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "et gui til at tilknytte kanaler/udbydere/caids til common interface moduler" + +# +msgid "abort alternatives edit" +msgstr "afbryd alternativ redigering" + +# +msgid "abort bouquet edit" +msgstr "afbryd pakke redigering" + +# +msgid "abort favourites edit" +msgstr "afbryd favorit redigering" + +# +msgid "about to start" +msgstr "er ved at starte" + +# +msgid "activate network adapter configuration" +msgstr "aktiver opsætning for netværksadapter" + +# +msgid "add alternatives" +msgstr "tilføj alternativer" + +# +msgid "add bookmark" +msgstr "tilføj bogmærke" + +# +msgid "add bouquet" +msgstr "tilføj pakke..." + +# +msgid "add marker" +msgstr "tilføj markør" + +# +msgid "add service to bouquet" +msgstr "tilføj kanal til pakke" + +# +msgid "add service to favourites" +msgstr "tilføj kanal til favoritter" + +# +msgid "add to parental protection" +msgstr "tilføj til forældre beskyttelse" + +msgid "adult movie/drama" +msgstr "" + +# +msgid "advanced" +msgstr "avanceret" + +msgid "adventure/western/war" +msgstr "" + +msgid "advertisement/shopping" +msgstr "" + +msgid "after " +msgstr "" + +# +#, fuzzy +msgid "alphabetic" +msgstr "alfabetisk sortering" + +msgid "alphabetic reverse" +msgstr "Omvendt alfabet" + +msgid "alternative" +msgstr "" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "" + +msgid "arts/culture magazine" +msgstr "" + +msgid "athletics" +msgstr "" + +# +msgid "audio tracks" +msgstr "lyd spor" + +# +msgid "auto" +msgstr "auto" + +# +#, fuzzy +msgid "automatic" +msgstr "Automatisk" + +# +msgid "back" +msgstr "tilbage" + +# +msgid "background image" +msgstr "baggrunds billede" + +msgid "ballet" +msgstr "" + +#, python-format +msgid "bc%s" +msgstr "" + +# +msgid "better" +msgstr "Bedre" + +# +msgid "black" +msgstr "sort" + +msgid "black & white" +msgstr "" + +# +msgid "blacklist" +msgstr "Sortliste" + +# +msgid "blue" +msgstr "blÃ¥" + +msgid "broadcasting/press" +msgstr "" + +# +#, fuzzy +msgid "by date" +msgstr "sorter efter dato" + +msgid "cartoon/puppets" +msgstr "" + +msgid "center" +msgstr "centrer" + +msgid "centered" +msgstr "" + +msgid "centered, wrapped" +msgstr "" + +# +msgid "chapters" +msgstr "kapitler" + +msgid "childrens's/youth program (general)" +msgstr "" + +# +msgid "circular left" +msgstr "venstre-cirkulær" + +# +msgid "circular right" +msgstr "højre-cirkulær" + +msgid "comedy" +msgstr "" + +# +msgid "complex" +msgstr "komplex" + +# +msgid "config menu" +msgstr "konfigurationsmenu" + +# +msgid "confirmed" +msgstr "bekræftet" + +# +msgid "connected" +msgstr "tilsluttet" + +# +msgid "continue" +msgstr "fortsæt" + +msgid "cooking" +msgstr "" + +# +msgid "copy to bouquets" +msgstr "kopier til pakker" + +# +msgid "create directory" +msgstr "opret mappe" + +#, python-format +msgid "currently installed image: %s" +msgstr "nuværende installerede image: %s" + +# +msgid "daily" +msgstr "daglig" + +# +msgid "day" +msgstr "dag" + +# +#, fuzzy +msgid "default" +msgstr "Standard" + +# +msgid "delete cut" +msgstr "slet klip" + +msgid "delete..." +msgstr "" + +msgid "descramble and record ecm" +msgstr "afkod og gem ecm" + +msgid "detective/thriller" +msgstr "" + +# +msgid "disable" +msgstr "afbryd" + +# +msgid "disable move mode" +msgstr "slÃ¥ flytte type fra" + +# +msgid "disabled" +msgstr "slukket" + +# +msgid "disconnected" +msgstr "afbrudt" + +msgid "discussion/interview/debate" +msgstr "" + +# +msgid "do nothing" +msgstr "gør intet" + +msgid "documentary" +msgstr "" + +msgid "don't descramble, record ecm" +msgstr "afkod ikke, gem ecm" + +# +msgid "done!" +msgstr "færdig!" + +msgid "east" +msgstr "øst" + +msgid "economics/social advisory" +msgstr "" + +# +msgid "edit alternatives" +msgstr "redigere alternativer" + +msgid "education/science/factual topics (general)" +msgstr "" + +# +msgid "empty" +msgstr "tom" + +# +msgid "enable" +msgstr "tilslut" + +# +msgid "enable bouquet edit" +msgstr "Ã¥bne pakkeredigering" + +# +msgid "enable favourite edit" +msgstr "Ã¥bne favoritredigering" + +# +msgid "enable move mode" +msgstr "Ã¥bne flyttetype" + +# +msgid "enabled" +msgstr "Tilsluttet" + +# +msgid "end alternatives edit" +msgstr "afslut alternativ redigering" + +# +msgid "end bouquet edit" +msgstr "afslut pakkeredigering" + +# +msgid "end cut here" +msgstr "afslut klip her" + +# +msgid "end favourites edit" +msgstr "afslut favoritredigering" + +msgid "entertainment (10-16 year old)" +msgstr "" + +msgid "entertainment (6-14 year old)" +msgstr "" + +# +msgid "equal to" +msgstr "svarende til" + +msgid "equestrian" +msgstr "" + +# +msgid "exit DVD player or return to file browser" +msgstr "luk DVD afspiller eller tilbage til filoversigt" + +msgid "exit movielist" +msgstr "" + +# +msgid "exit network adapter configuration" +msgstr "luk netværksadapter opsætning" + +# +msgid "exit networkadapter setup menu" +msgstr "luk netværksadapter opsætningsmenu" + +msgid "experimental film/video" +msgstr "" + +msgid "false" +msgstr "falsk" + +msgid "fashion" +msgstr "" + +# +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "fil formater (BMP, PNG, JPG, GIF)" + +# +msgid "filename" +msgstr "fil navn" + +msgid "film/cinema" +msgstr "" + +msgid "fine arts" +msgstr "" + +# +msgid "fine-tune your display" +msgstr "finjuster dit display" + +msgid "fitness & health" +msgstr "" + +# +#, fuzzy +msgid "flat alphabetic" +msgstr "alfabetisk sortering" + +#, fuzzy +msgid "flat alphabetic reverse" +msgstr "Omvendt alfabet" + +msgid "folk/traditional music" +msgstr "" + +msgid "football/soccer" +msgstr "" + +msgid "foreign countries/expeditions" +msgstr "" + +# +msgid "forward to the next chapter" +msgstr "frem til næste kapitel" + +# +msgid "free" +msgstr "ledig" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "" + +msgid "game show/quiz/contest" +msgstr "" + +msgid "gardening" +msgstr "" + +# +msgid "go to deep standby" +msgstr "gÃ¥ til dyb standby" + +# +msgid "go to standby" +msgstr "gÃ¥ til Standby" + +# +msgid "grab this frame as bitmap" +msgstr "grab denne frame som bitmap" + +# +msgid "green" +msgstr "grøn" + +msgid "handicraft" +msgstr "" + +msgid "height" +msgstr "højde" + +# +msgid "help..." +msgstr "hjælp..." + +# +msgid "horizontal" +msgstr "horisontal" + +msgid "information/education/school program" +msgstr "" + +# +msgid "init module" +msgstr "initialiser modul" + +# +msgid "init modules" +msgstr "initier moduler" + +# +msgid "insert mark here" +msgstr "indsæt mærke her" + +msgid "invalid type" +msgstr "forkert type" + +msgid "jazz" +msgstr "" + +# +msgid "jump back to the previous title" +msgstr "hop tilbage til forrige titel" + +# +msgid "jump forward to the next title" +msgstr "hop frem til næste titel" + +msgid "languages" +msgstr "" + +# +msgid "leave movie player..." +msgstr "forlad film afspiller..." + +# +msgid "left" +msgstr "venstre" + +msgid "left, wrapped" +msgstr "" + +msgid "leisure hobbies (general)" +msgstr "" + +# +msgid "length" +msgstr "længde" + +msgid "limit ..., aborting !" +msgstr "grænse..., afbryder !" + +# +msgid "list style compact" +msgstr "kompakt listestil" + +# +msgid "list style compact with description" +msgstr "kompakt listestil med beskrivelse" + +# +msgid "list style default" +msgstr "normal listestil" + +# +msgid "list style single line" +msgstr "enkelt linie listestil" + +msgid "literature" +msgstr "" + +msgid "live broadcast" +msgstr "" + +# +msgid "locked" +msgstr "lÃ¥st " + +# +msgid "loopthrough to" +msgstr "gennemløb til" + +msgid "magazines/reports/documentary" +msgstr "" + +# +msgid "manual" +msgstr "manuelt" + +msgid "martial sports" +msgstr "" + +msgid "medicine/physiology/psychology" +msgstr "" + +# +msgid "menu" +msgstr "menu" + +# +msgid "mins" +msgstr "min" + +# +msgid "minutes" +msgstr "minutter" + +# +msgid "month" +msgstr "mÃ¥ned" + +msgid "motor sport" +msgstr "" + +msgid "motoring" +msgstr "" + +# +msgid "move down to last entry" +msgstr "flyt ned til sidste indtastning" + +# +msgid "move down to next entry" +msgstr "flyrt ned til næste indtastning" + +# +msgid "move up to first entry" +msgstr "flyt op til første indtastning" + +# +msgid "move up to previous entry" +msgstr "flyt op til foregÃ¥ende indtastning" + +msgid "movie/drama (general)" +msgstr "" + +# +msgid "multinorm" +msgstr "multinorm" + +msgid "music/ballet/dance (general)" +msgstr "" + +msgid "musical/opera" +msgstr "" + +msgid "nature/animals/environment" +msgstr "" + +# +msgid "never" +msgstr "aldrig" + +msgid "new media" +msgstr "" + +msgid "news magazine" +msgstr "" + +msgid "news/current affairs (general)" +msgstr "" + +msgid "news/weather report" +msgstr "" + +# +msgid "no" +msgstr "nej" + +# +msgid "no CAId selected" +msgstr "ingen CAId valgt" + +# +msgid "no CI slots found" +msgstr "ingen CI slots fundet" + +# +msgid "no module found" +msgstr "ingen modul fundet" + +msgid "no storage devices found" +msgstr "ingen lagerenhed fundet" + +# +msgid "none" +msgstr "ingen" + +msgid "normal" +msgstr "" + +# +msgid "not configured" +msgstr "ikke konfigureret" + +# +msgid "not locked" +msgstr "ikke lÃ¥st" + +msgid "not supported" +msgstr "ikke supporteret" + +# +msgid "not used" +msgstr "ikke anvendt" + +# +msgid "nothing connected" +msgstr "Intet tilsluttet" + +# +msgid "of a DUAL layer medium used." +msgstr "af et DOBBELT lags media anvendt." + +# +msgid "of a SINGLE layer medium used." +msgstr "af et ENKELT lags media anvendt." + +# +msgid "off" +msgstr "fra" + +msgid "offset is" +msgstr "offset er" + +# +msgid "on" +msgstr "til" + +# +msgid "on READ ONLY medium." +msgstr "pÃ¥ LÆS KUN medie" + +msgid "on end of movie" +msgstr "" + +# +msgid "once" +msgstr "en gang" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +# +msgid "open nameserver configuration" +msgstr "Ã¥bn navneserver opsætning" + +msgid "original" +msgstr "" + +msgid "original language" +msgstr "" + +# +msgid "pass" +msgstr "OK" + +msgid "performing arts" +msgstr "" + +msgid "play as picture in picture" +msgstr "afspil som Billede i Billede" + +msgid "play in mainwindow" +msgstr "afspil i hovedvindue" + +# +msgid "please press OK when ready" +msgstr "tryk venligst OK nÃ¥r du er klar" + +# +msgid "please wait, loading picture..." +msgstr "vent venligst, henter billede..." + +msgid "popular culture/traditional arts" +msgstr "" + +msgid "pre-school children's program" +msgstr "" + +msgid "receiver software because updates are available." +msgstr "" + +# +msgid "record" +msgstr "optage" + +# +msgid "recording..." +msgstr "optager..." + +# +msgid "red" +msgstr "rød" + +msgid "religion" +msgstr "" + +msgid "remarkable people" +msgstr "" + +# +msgid "remove after this position" +msgstr "fjern efter denne position" + +# +msgid "remove all alternatives" +msgstr "fjern alle alternativer" + +# +msgid "remove all new found flags" +msgstr "fjern alle nye fundne flag" + +# +msgid "remove before this position" +msgstr "fjern før denne position" + +# +msgid "remove bookmark" +msgstr "fjern bogmærke" + +# +msgid "remove directory" +msgstr "fjern mappe" + +# +msgid "remove entry" +msgstr "fjern indgang" + +# +msgid "remove from parental protection" +msgstr "fjern fra forældre beskyttelse" + +# +msgid "remove new found flag" +msgstr "fjern nye fundne flag" + +# +msgid "remove selected satellite" +msgstr "fjern valgte satellit" + +# +msgid "remove this mark" +msgstr "fjern dette mærke" + +msgid "rename entry" +msgstr "" + +# +msgid "repeat playlist" +msgstr "gentag afspilningsliste" + +# +msgid "repeated" +msgstr "gentaget" + +msgid "reverse by date" +msgstr "omvendt dato" + +# +msgid "rewind to the previous chapter" +msgstr "kør tilbage til forrige kapitel" + +# +msgid "right" +msgstr "højre" + +msgid "right, wrapped" +msgstr "" + +msgid "rock/pop" +msgstr "" + +msgid "romance" +msgstr "" + +# +msgid "save last directory on exit" +msgstr "gem seneste mappe ved afbrydelse" + +# +msgid "save playlist on exit" +msgstr "gem afspilningsliste ved afbrydelse" + +# +msgid "scan state" +msgstr "søge status" + +msgid "science fiction/fantasy/horror" +msgstr "" + +# +msgid "second cable of motorized LNB" +msgstr "sekundært kabel fra motor LNB" + +# +msgid "seconds" +msgstr "sekunder" + +# +msgid "select" +msgstr "vælg" + +# +msgid "select CAId's" +msgstr "vælg CAId's" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +# +msgid "select menu entry" +msgstr "vælg meny indgang" + +# +msgid "select movie" +msgstr "vælg film" + +msgid "select the movie path" +msgstr "" + +msgid "serious music/classic music" +msgstr "" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "" + +msgid "service PIN" +msgstr "Kanalliste PIN" + +msgid "set as startup service" +msgstr "Sæt som startkanal" + +msgid "setup PIN" +msgstr "Opsæt PIN" + +# +msgid "show DVD main menu" +msgstr "vis DVD hoved menu" + +msgid "show all tags" +msgstr "vis alle tags" + +# +msgid "show alternatives" +msgstr "Vis alternativer" + +# +msgid "show event details" +msgstr "vis program detaljer" + +msgid "show extended description" +msgstr "" + +msgid "show mediaplayer on mainmenu" +msgstr "vis mediaplayer pÃ¥ hovedmenu" + +msgid "show softwaremanager in setup menu" +msgstr "" + +msgid "show softwaremanager on blue button" +msgstr "" + +msgid "show tag menu" +msgstr "" + +# +msgid "show transponder info" +msgstr "vis transponer info" + +msgid "show/game show (general)" +msgstr "" + +msgid "shuffle" +msgstr "bland" + +# +msgid "shut down" +msgstr "afslut" + +# +msgid "simple" +msgstr "enkel" + +# +msgid "skip backward" +msgstr "drop tilbage" + +# +msgid "skip forward" +msgstr "drop fremad" + +msgid "soap/melodram/folkloric" +msgstr "" + +msgid "social/political issues/economics (general)" +msgstr "" + +msgid "social/spiritual science" +msgstr "" + +msgid "sorting of playlists" +msgstr "sortering af spilleliste" + +# +msgid "special characters" +msgstr "special karakterer" + +msgid "special events" +msgstr "" + +msgid "special format data DVD (HDTV compatible)" +msgstr "" + +msgid "sports (general)" +msgstr "" + +msgid "sports magazine" +msgstr "" + +# +msgid "standard" +msgstr "normal" + +# +msgid "start cut here" +msgstr "start klip her" + +# +msgid "start directory" +msgstr "start mappe" + +msgid "stepsize" +msgstr "trinstørrelse" + +# +msgid "stereo" +msgstr "stereo" + +msgid "stop using as startup service" +msgstr "stop brug som startkanal" + +# +msgid "switch to bookmarks" +msgstr "skift til bogmærker" + +# +msgid "switch to filelist" +msgstr "skift til filliste" + +# +msgid "switch to the next angle" +msgstr "skift til næste vinkel" + +# +msgid "switch to the next audio track" +msgstr "skift til næste lyd spor" + +# +msgid "switch to the next subtitle language" +msgstr "skift til næste undertekst sprog" + +msgid "talk show" +msgstr "" + +msgid "team sports" +msgstr "" + +msgid "technology/natural science" +msgstr "" + +# +msgid "template file" +msgstr "skabelon fil" + +msgid "tennis/squash" +msgstr "" + +# +msgid "this recording" +msgstr "denne optagelse" + +# +msgid "this service is protected by a parental control pin" +msgstr "denne service er beskyttet af forældre kontrol " + +# +msgid "toggle time, chapter, audio, subtitle info" +msgstr "skift mellem tid, kapitel, lyd, undertekst info" + +msgid "top" +msgstr "" + +msgid "tourism/travel" +msgstr "" + +msgid "true" +msgstr "rigtig" + +msgid "unavailable" +msgstr "" + +# +msgid "unconfirmed" +msgstr "ubekræftet" + +msgid "undefined" +msgstr "" + +# +msgid "unknown" +msgstr "ukendt" + +# +msgid "unknown service" +msgstr "ukendt kanal" + +msgid "unpublished" +msgstr "" + +# +msgid "until standby/restart" +msgstr "indtil standby/genstart" + +# +msgid "user defined" +msgstr "brugerdefineret" + +msgid "variety show" +msgstr "" + +# +msgid "vertical" +msgstr "vertikal" + +# +msgid "wait for ci..." +msgstr "vent pÃ¥ CA..." + +# +msgid "wait for mmi..." +msgstr "vent pÃ¥ mmi..." + +# +msgid "waiting" +msgstr "venter" + +msgid "water sport" +msgstr "" + +# +msgid "weekly" +msgstr "ugentlig" + +msgid "west" +msgstr "vest" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "hvid" + +# +msgid "whitelist" +msgstr "hvidliste" + +msgid "width" +msgstr "bredde" + +msgid "winter sport" +msgstr "" + +msgid "wireless network interface" +msgstr "trÃ¥løst netværkskort" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "" +msgstr[1] "" + +# +msgid "working" +msgstr "fungerer" + +# +msgid "yellow" +msgstr "gul" + +# +msgid "yes" +msgstr "ja" + +# +msgid "yes (keep feeds)" +msgstr "ja (behold feeds)" + +# +msgid "zap" +msgstr "skift" + +msgid "zap and record" +msgstr "" + +# +msgid "zapped" +msgstr "skiftet" + +# +#~ msgid "AA" +#~ msgstr "AA" + +# +#~ msgid "AB" +#~ msgstr "AB" + +#, fuzzy +#~ msgid "Activate PiP" +#~ msgstr "Aktiver BiB" + +#, fuzzy +#~ msgid "Add/remove timer for current event" +#~ msgstr "Tilføj/Fjern timer for dette program" + +#~ msgid "Adjust HDMI CEC settings" +#~ msgstr "Juster HDMI CEC indstillinger" + +# +#, fuzzy +#~ msgid "All satellites" +#~ msgstr "Alle satellitter" + +# +#~ msgid "BA" +#~ msgstr "BA" + +# +#~ msgid "BB" +#~ msgstr "BB" + +# +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "Opførsel af 'pause' ved aktivering" + +# +#~ msgid "Committed DiSEqC command" +#~ msgstr "Kommiteret DiSEqC kommando" + +# +#~ msgid "DiSEqC repeats" +#~ msgstr "DiSEqC gentagelser" + +#~ msgid "Goto specific data/time" +#~ msgstr "GÃ¥ til specifik dato/tid" + +# +#~ msgid "No satellite frontend found!!" +#~ msgstr "Ingen satellit frontend fundet!!" + +#~ msgid "Press '0' to toggle internal/external PiP." +#~ msgstr "Tryk nul for at skifte mellem BiB" + +# +#~ msgid "Remove timer" +#~ msgstr "Fjern timer" + +# +#~ msgid "Send DiSEqC" +#~ msgstr "Sender DiSEqC" + +# +#, fuzzy +#~ msgid "Switch next channel" +#~ msgstr "næste kanal" + +#~ msgid "Tuning step size" +#~ msgstr "Tuning trin størrelse" + +# +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Ukommiteret DiSEqC kommando" + +# +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "Skift tilbage til kanal før sat søger?" + +#~ msgid "tuner is not supported" +#~ msgstr "tuner ikke supporteret" diff --git a/po/de.po b/po/de.po new file mode 100644 index 0000000..1fe9b89 --- /dev/null +++ b/po/de.po @@ -0,0 +1,8530 @@ +msgid "" +msgstr "" +"Project-Id-Version: enigma2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2014-07-24 11:35+0100\n" +"Last-Translator: daddelfalk <OpenPLi>\n" +"Language-Team: OpenPLi <openpli.org>\n" +"Language: de\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-Generator: Poedit 1.6.7\n" +"X-Poedit-SourceCharset: utf-8\n" + +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"Erweiterte Optionen und Einstellungen." + +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"Nach dem Sie OK gedrückt haben, bitte warten!" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" +"\n" +"Sichern Ihrer Receiver-Einstellungen." + +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"Upgrade Quell-Adresse bearbeiten." + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" +"\n" +"Verwalten Sie die Erweiterungen und Plugins Ihres Receivers" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" +"\n" +"Online-Update Ihrer Receiver-Software." + +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"Drücken Sie OK, um fortzufahren." + +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"Wiederherstellen Ihrer nach Datum sortierten Sicherungen." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" +"\n" +"Wiederherstellen Ihrer Receiver-Einstellungen." + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" +"\n" +"Wiederherstellen Ihres Receivers mit einer neuen Firmware." + +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"Nach lokalen Erweiterungen suchen und diese installieren." + +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Wählen Sie Ihr Sicherungs-Laufwerk.\n" +"Aktuelles Laufwerk: " + +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"Anzeigen, Installieren und Entfernen verfügbarer oder installierter Pakete." + +msgid " (PiP)" +msgstr " (PiP)" + +msgid " (Radio)" +msgstr " (Radio)" + +msgid " (TV)" +msgstr " (TV)" + +msgid " (disabled)" +msgstr "(deaktiviert)" + +msgid " (higher than any auto)" +msgstr "(höher als jedes auto)" + +msgid " (higher than rotor any auto)" +msgstr "(höher als Rotor kein auto)" + +msgid " (lower than any auto)" +msgstr " (geringer als in jedem auto)" + +msgid " extensions." +msgstr " Erweiterungen." + +msgid " ms" +msgstr " ms" + +msgid " packages selected." +msgstr " Pakete ausgewählt." + +msgid " updates available." +msgstr " Updates verfügbar. " + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "%2d:%02d" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "%2d:%02d:%02d" + +msgid "%A %d %B" +msgstr "%A %d %B" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "%A %e %B" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "%A %e %B %Y" + +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "%a %e/%m" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "%a %e/%m %-H:%M" + +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "%d Kanal gefunden" +msgstr[1] "%d Kanäle gefunden" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "%d Datei" +msgstr[1] "%d Dateien" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d Stunde" +msgstr[1] "%d Stunden" + +#, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "Es läuft noch %d Job im Hintergrund!" +msgstr[1] "Es laufen noch %d Jobs im Hintergrund!" + +#, python-format +msgid "%d min" +msgstr "%d min" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d Minute" +msgstr[1] "%d Minuten" + +#, python-format +msgid "%d minutes" +msgstr "%d Minuten" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "%d Bildpunkt groß" +msgstr[1] "%d Bildpunkte groß" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d Sekunde" +msgstr[1] "%d Sekunden" + +#, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "%d Hauptverzeichnis" +msgstr[1] "%d Hauptverzeichnisse" + +#, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "%d Funk-Netzwerk gefunden!" +msgstr[1] "%d Funk-Netzwerke gefunden!" + +msgid "%d-%b-%Y %-H:%M" +msgstr "%d. %b %Y %-H:%M" + +msgid "%d-%m" +msgstr "%d-%m" + +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "%k:%M %e/%m" + +#, python-format +msgid "%s %s free disk space" +msgstr "%s %s freier Festplattenspeicher" + +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "%s wird nicht mehr benötigt. Möchten Sie ihn entfernen?" + +#, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "%s Aktualisierung verfügbar" +msgstr[1] "%s Aktualisierungen verfügbar" + +#, python-format +msgid "%s%d min" +msgstr "%s%d min" + +#, python-format +msgid "%s/%s: %s" +msgstr "%s/%s: %s" + +msgid "(ZAP)" +msgstr "(ZAP)" + +msgid "(empty)" +msgstr "(leer)" + +msgid "(show optional DVD audio menu)" +msgstr "(DVD-Tonmenü zeigen, falls vorh.)" + +msgid "* Only available if more than one interface is active." +msgstr "* Nur verfügbar, wenn mehr als ein Netzwerkadapter aktiv ist." + +msgid "/s" +msgstr "/s" + +msgid "0" +msgstr "0" + +msgid "1" +msgstr "1" + +msgid "1.0" +msgstr "1.0" + +msgid "1.1" +msgstr "1.1" + +msgid "1.2" +msgstr "1.2" + +msgid "12V output" +msgstr "12V-Ausgang" + +msgid "13 V" +msgstr "13 V" + +msgid "16:10" +msgstr "16:10" + +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +msgid "16:9" +msgstr "16:9" + +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +msgid "16:9 always" +msgstr "immer 16:9" + +msgid "18 V" +msgstr "18 V" + +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "23.976" + +msgid "24" +msgstr "24" + +msgid "25" +msgstr "25" + +msgid "29.97" +msgstr "29.97" + +msgid "3" +msgstr "3" + +msgid "30" +msgstr "30" + +msgid "3d mode" +msgstr "3D-Modus" + +msgid "4" +msgstr "4" + +msgid "4:3" +msgstr "4:3" + +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +msgid "5" +msgstr "5" + +msgid "6" +msgstr "6" + +msgid "7" +msgstr "7" + +msgid "8" +msgstr "8" + +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr ": %s" + +msgid "<Current movielist location>" +msgstr "<Aktuelles Filmlisten-Verzeichnis>" + +msgid "<Default movie location>" +msgstr "<Standard Filmlisten-Verzeichnis>" + +msgid "<Last timer location>" +msgstr "<Letzter Timer Ort>" + +msgid "<unknown>" +msgstr "<unbekannt>" + +msgid "??" +msgstr "??" + +msgid "A" +msgstr "A" + +#, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"Eine Konfigurationsdatei (%s) wurde seit der Installation verändert.\n" +"Wollen Sie diese Version behalten?" + +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"Eine Konfigurationsdatei (%s) wurde seit der Installation verändert.\n" +"Wollen Sie diese Version behalten?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"Ein Aufnahmetimer will Ihren Receiver in den Standby-Modus schalten.\n" +"Jetzt ausführen?" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"Ein Aufnahmetimer will Ihren Receiver ausschalten.\n" +"Jetzt ausschalten?" + +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "Grafischer EPG für alle Kanäle eines bestimmten Bouquets" + +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"Eine Aufnahme wurde gestartet:\n" +"%s" + +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"Zurzeit läuft eine Aufnahme.\n" +"Was möchten Sie tun?" + +msgid "" +"A recording is currently running. Please stop the recording before trying to " +"configure the positioner." +msgstr "" +"Zurzeit läuft eine Aufnahme. Bitte beenden Sie die Aufnahme, bevor Sie das " +"Rotor-Setup ausführen." + +msgid "" +"A recording is currently running. Please stop the recording before trying to " +"scan." +msgstr "" +"Zurzeit sind Aufnahmen aktiv. Bitte beenden Sie die Aufnahme, bevor Sie " +"scannen." + +msgid "" +"A recording is currently running. Please stop the recording before trying to " +"start the satfinder." +msgstr "" +"Zurzeit läuft eine Aufnahme. Bitte beenden Sie diese Aufnahme, bevor Sie den " +"Satelliten-Sucher starten." + +#, python-format +msgid "A required tool (%s) was not found." +msgstr "Ein erforderliches Hilfsprogramm (%s) wurde nicht gefunden." + +msgid "A search for available updates is currently in progress." +msgstr "Es wird gerade nach Aktualisierungen gesucht." + +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"Eine zweite konfigurierte Netzwerkverbindung wurde gefunden.\n" +"\n" +"Wollen Sie diese zweite Netzwerkverbindung deaktivieren?" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"Ein Sleeptimer möchte Ihren Receiver in\n" +"den Standby-Modus schalten. Dies jetzt tun?" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"Ein Sleeptimer möchte Ihren Receiver\n" +"ausschalten. Jetzt herunterfahren?" + +msgid "A small overview of the available icon states and actions." +msgstr "Eine kurze Ãœbersicht der verfügbaren Symbol Stati und Aktionen." + +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"Timeraufnahme fehlgeschlagen.\n" +"Fernsehprogramm ändern und erneut versuchen?\n" + +msgid "A/V settings" +msgstr "A/V-Einstellungen" + +msgid "AC3/DTS downmix" +msgstr "AC3/DTS heruntermischen" + +msgid "Abort" +msgstr "Abbrechen" + +msgid "About" +msgstr "Ãœber" + +msgid "About..." +msgstr "Ãœber..." + +msgid "Accesspoint:" +msgstr "Zugangspunkt:" + +msgid "Action on long powerbutton press" +msgstr "Aktion nach langem Drücken auf Power" + +msgid "Action on short powerbutton press" +msgstr "Aktion beim kurzen Druck auf Power" + +msgid "Activate Picture in Picture" +msgstr "Bild im Bild aktivieren" + +msgid "Activate current configuration" +msgstr "Aktuelle Konfiguration verwenden" + +msgid "Activate network settings" +msgstr "Aktiviere Netzwerkeinstellungen" + +msgid "Activate the configured network settings." +msgstr "Aktiviere Netzwerkeinstellungen" + +msgid "Adapter settings" +msgstr "Adapter-Einstellungen" + +msgid "Add" +msgstr "Hinzufügen" + +msgid "Add Bookmark" +msgstr "Lesezeichen hinzufügen" + +msgid "Add a mark" +msgstr "Marker hinzufügen" + +msgid "Add a nameserver entry" +msgstr "DNS Servereintrag hinzufügen" + +msgid "Add a new title" +msgstr "Füge neuen Titel hinzu" + +msgid "Add bookmark" +msgstr "Lesezeichen hinzufügen" + +msgid "Add directory to playlist" +msgstr "Verzeichnis zur Wiedergabeliste hinzufügen" + +msgid "Add file to playlist" +msgstr "Datei zur Wiedergabeliste hinzufügen" + +msgid "Add files to playlist" +msgstr "Dateien zur Wiedergabeliste hinzufügen" + +msgid "Add more details to the crash log" +msgstr "Erzeuge detailierteren Fehlerbericht" + +msgid "Add provider" +msgstr "Provider hinzufügen" + +msgid "Add recording (enter recording duration)" +msgstr "Aufnahme hinzufügen (Aufnahmelänge eingeben)" + +msgid "Add recording (enter recording endtime)" +msgstr "Aufnahme hinzufügen (Aufnahmeendzeit eingeben)" + +msgid "Add recording (indefinitely)" +msgstr "Aufnahme hinzufügen (unbegrenzt)" + +msgid "Add recording (stop after current event)" +msgstr "Aufnahme hinzufügen (aktuelle Sendung)" + +msgid "Add service" +msgstr "Kanal hinzufügen" + +msgid "Add timer" +msgstr "Timer setzen" + +msgid "Add title" +msgstr "Titel hinzufügen" + +msgid "Add to bouquet" +msgstr "Zum Bouquet hinzufügen" + +msgid "Add to favourites" +msgstr "Zu Favoriten hinzufügen" + +msgid "Add/remove change timer for current event" +msgstr "Setze/Entferne Timer für aktuelle Sendung" + +msgid "Adjust 3D settings" +msgstr "3D Einstellungen" + +msgid "" +"Adjust the color settings so that all the color shades are distinguishable, " +"but appear as saturated as possible. If you are happy with the result, press " +"OK to close the video fine-tuning, or use the number keys to select other " +"test screens." +msgstr "" +"Verändern Sie die Farbeinstellungen, sodass Sie alle Farbabstufungen " +"voneinander unterscheiden können, diese aber so gesättigt wie möglich " +"dargestellt werden. Wenn Sie mit dem Ergebnis zufrieden sind, drücken Sie " +"OK, um die Feineinstellungen zu beenden. Mit den Zahlentasten können Sie " +"weitere Testbilder auswählen." + +msgid "Advanced" +msgstr "erweitert" + +msgid "Advanced options" +msgstr "Erweiterte Optionen" + +msgid "Advanced restore" +msgstr "Erweiterte Wiederherstellung" + +msgid "Advanced software" +msgstr "Erweiterte Software" + +msgid "Advanced software plugin" +msgstr "Erweitertes Software Plugin" + +msgid "Advanced video enhancement setup" +msgstr "Erweiterte A/V Einstellungen" + +msgid "Advanced video setup" +msgstr "Erweiterte Video-Einstellungen" + +msgid "After event" +msgstr "Nach der Sendung" + +msgid "Album" +msgstr "Album" + +msgid "Alignment of events" +msgstr "Ausrichtung der Sendungstitel" + +msgid "Alignment of service names" +msgstr "Ausrichtung der Sendernamen" + +msgid "All" +msgstr "Alle" + +msgid "All ages" +msgstr "Jedes Alter" + +msgid "All satellites 1 (USALS)" +msgstr "Alle Satelliten 1 (USALS)" + +msgid "All satellites 2 (USALS)" +msgstr "Alle Satelliten 2 (USALS)" + +msgid "All satellites 3 (USALS)" +msgstr "Alle Satelliten 3 (USALS)" + +msgid "All satellites 4 (USALS)" +msgstr "Alle Satelliten 4 (USALS)" + +msgid "Allocate" +msgstr "Zuweisen" + +msgid "Allocate unused memory index" +msgstr "Zuordnen ungenutzer Rotor Index-Positionen" + +msgid "Allow quit movieplayer with exit" +msgstr "Schließe Movieplayer mit Exit" + +msgid "Allow subtitle language to equal audio language" +msgstr "Erlaube Untertitel der Toneinstellung entsprechend" + +msgid "Allow subtitles for hearing impaired" +msgstr "Erlaube Untertitel für Hörgeschädigte" + +msgid "Alpha" +msgstr "Transparenz" + +msgid "Alternative" +msgstr "Alternativen hinzufügen" + +msgid "Alternative numbering mode" +msgstr "Alternativer Nummerierungs-Modus" + +msgid "Alternative services tuner priority" +msgstr "Tuner-Priorität bei alternativen Kanälen" + +msgid "Always ask" +msgstr "Immer nachfragen" + +msgid "Always hide infobar" +msgstr "Infobar immer ausblenden" + +msgid "An empty filename is illegal." +msgstr "Leerer Dateiname nicht erlaubt." + +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "" +"Beim Herunterladen ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut." + +msgid "An unknown error occurred!" +msgstr "Es ist ein unbekannter Fehler aufgetreten!" + +msgid "And will put your receiver in standby over " +msgstr "Receiver in den Standby versetzen nach " + +msgid "Any activity" +msgstr "Irgendeine Aktivität" + +msgid "Arabic" +msgstr "Arabisch" + +msgid "Are you sure to remove this entry?" +msgstr "Soll dieser Eintrag wirklich gelöscht werden?" + +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"Sind Sie sicher, dass diese Netzwerk-Konfiguration aktiviert werden soll?\n" +"\n" + +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"Sind Sie sicher, dass Sie die folgende Sicherung\n" +"löschen möchten:\n" + +msgid "Are you sure you want to exit this wizard?" +msgstr "Sind Sie sicher, dass Sie diesen Assistenten verlassen möchten?" + +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"Sind Sie sicher, dass Sie die Netzwerkadapter neu starten wollen?\n" +"\n" + +#, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Möchten Sie die folgende Sicherung wiederherstellen?\n" +"%s\n" +"Die Benutzeroberfläche wird danach neu gestartet!" + +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Möchten Sie wirklich diese Sicherung wiederherstellen?\n" +"Der Receiver wird danach neu gestartet!" + +msgid "Artist" +msgstr "Künstler" + +msgid "Arts/Culture" +msgstr "Kunst/Kultur" + +msgid "Ask user" +msgstr "Nutzer fragen" + +msgid "Aspect ratio" +msgstr "Seitenverhältnis" + +msgid "Assigned CAIds:" +msgstr "Zugewiesene CAIDs:" + +msgid "Assigned services/provider:" +msgstr "Zugewiesene Kanäle/Provider:" + +msgid "At beginning" +msgstr "Am Anfang" + +msgid "At end" +msgstr "Am Ende" + +msgid "Audio" +msgstr "Ton" + +msgid "Audio PID" +msgstr "Ton PID" + +msgid "Audio language selection 1" +msgstr "Ton Sprachwahl 1" + +msgid "Audio language selection 2" +msgstr "Ton Sprachwahl 2" + +msgid "Audio language selection 3" +msgstr "Ton Sprachwahl 3" + +msgid "Audio language selection 4" +msgstr "Ton Sprachwahl 4" + +msgid "Audio options..." +msgstr "Ton-Optionen..." + +#, python-format +msgid "Audio track (%s) format" +msgstr "Format der Tonspur (%s)" + +#, python-format +msgid "Audio track (%s) language" +msgstr "Sprache der Tonspur (%s)" + +msgid "Author: " +msgstr "Autor: " + +msgid "Authoring mode" +msgstr "Autorenmodus" + +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Auto" + +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Automatische Kapitelwechsel alle ? Minuten (0=nie)" + +msgid "Auto flesh" +msgstr "Auto Flesh" + +msgid "Auto focus" +msgstr "Auto Fokus" + +msgid "Auto focus commencing ..." +msgstr "Auto-Fokusierung beginnt ..." + +msgid "Auto language selection" +msgstr "Automatische Sprachauswahl" + +msgid "Auto scart switching" +msgstr "Automatische Scart-Umschaltung" + +msgid "Automatic" +msgstr "Automatisch" + +msgid "Automatic scan" +msgstr "Automatische Suche" + +msgid "Automatically start timeshift after" +msgstr "Automatischer Timeshift-Start nach" + +msgid "Automatically turn on external subtitles" +msgstr "Externe Untertitel automatisch aktivieren" + +msgid "Available format variables" +msgstr "Verfügbare Formatierungsvariablen" + +msgid "B" +msgstr "B" + +msgid "BER" +msgstr "BER" + +msgid "BER:" +msgstr "BER:" + +msgid "Back" +msgstr "Zurück" + +msgid "Background" +msgstr "Hintergrund" + +msgid "Background color" +msgstr "Hintergrundfarbe" + +msgid "Background delete option" +msgstr "Löschen im Hintergrund" + +msgid "Background delete speed" +msgstr "Geschwindigkeit beim Löschen im Hintergrund" + +msgid "Backup completed." +msgstr "Sicherung abgeschlossen." + +msgid "Backup failed." +msgstr "Sicherung fehlgeschlagen." + +msgid "Backup is running..." +msgstr "Sicherung wird ausgeführt..." + +msgid "Backup system settings" +msgstr "Einstellungen sichern" + +msgid "Band" +msgstr "Band" + +msgid "Bandwidth" +msgstr "Bandbreite" + +msgid "Basque" +msgstr "Baskisch" + +msgid "Begin time" +msgstr "Startzeit" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "Verhalten von 'Pause und OK' wenn abgehalten" + +msgid "Behavior of 0 key in PiP-mode" +msgstr "Verhalten der '0'-Taste bei Bild im Bild" + +msgid "Behavior when a movie is started" +msgstr "Verhalten beim Start eines Films" + +msgid "Behavior when a movie is stopped" +msgstr "Verhalten beim Stoppen eines Films" + +msgid "Behavior when a movie reaches the end" +msgstr "Verhalten beim Filmende" + +msgid "Big PiP" +msgstr "Großes PiP" + +msgid "Bitrate:" +msgstr "Bitrate:" + +msgid "Black screen" +msgstr "Schwarzes Bild" + +msgid "Black screen till locked" +msgstr "Schwarzes Bild bis Abschluß" + +msgid "Block noise reduction" +msgstr "Block Noise Reduzierung" + +msgid "Blue boost" +msgstr "Blauanteil erhöhen" + +msgid "Bookmarks" +msgstr "Lesezeichen" + +msgid "Brightness" +msgstr "Helligkeit" + +msgid "Bulgarian" +msgstr "Bulgarisch" + +msgid "Burn DVD" +msgstr "Brenne DVD" + +#, python-format +msgid "Burn audio track (%s)" +msgstr "Brenne Audiospur (%s)" + +msgid "Burn existing image to DVD" +msgstr "Vorhandenes Image auf DVD brennen" + +msgid "Burn to DVD" +msgstr "Auf DVD brennen" + +msgid "Bus: " +msgstr "Bus:" + +msgid "" +"By default, SNR will be shown in dB (when supported by the tuner). This " +"setting forces SNR to be shown as a percentage instead." +msgstr "" +"Standardmässig wird SNR in Dezibel angezeigt (falls vom Tuner " +"unterstütztDiese Einstellung erzwingt die Darstellung von SNR in Prozent." + +msgid "C" +msgstr "C" + +msgid "C-Band" +msgstr "C-Band" + +msgid "CH" +msgstr "Kanal" + +msgid "CI assignment" +msgstr "CI-Zuweisung" + +msgid "CVBS" +msgstr "CVBS" + +msgid "Cable" +msgstr "Kabel" + +msgid "Cable Scan" +msgstr "Kabel Suche" + +msgid "Cache thumbnails" +msgstr "Vorschaubilder zwischenspeichern" + +msgid "Calculate" +msgstr "Berechnen" + +msgid "Calculate all positions" +msgstr "Berechne alle Positionen" + +msgid "Calculation complete" +msgstr "Berechnung abgeschlossen" + +msgid "Calibrate" +msgstr "Kalibrieren" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "" +"Kann für unterschiedliche fps-Werte zwischen externen Untertiteln und dem " +"Video verwendet werden." + +msgid "Cancel" +msgstr "Abbrechen" + +msgid "Cannot determine" +msgstr "Konnte nicht feststellen: " + +msgid "Cannot find any signal ..., aborting !" +msgstr "Kein Signal erkannt ..., Abbruch !" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "" +"Dateien auf einem anderen System können nicht in den Mülleimer verschoben " +"werden!" + +msgid "Cannot move to trash can" +msgstr "Die Datei konnte nicht in den Mülleimer verschoben werden" + +msgid "Capacity: " +msgstr "Kapazität: " + +msgid "Card" +msgstr "Karte" + +msgid "Cascade PiP" +msgstr "Kaskadiere PiP" + +msgid "Center DVB subtitles" +msgstr "DVB-Untertitel mittig" + +msgid "Center time-labels and remove date" +msgstr "Zentriere Zeitmarken und entferne Datum" + +msgid "Change bouquets in quickzap" +msgstr "Bouquet wechseln beim Quickzap" + +msgid "Change pin code" +msgstr "PIN-Code ändern" + +msgid "Change recording (duration)" +msgstr "Aufnahme ändern (Aufnahmelänge)" + +msgid "Change recording (endtime)" +msgstr "Aufnahme ändern (Aufnahmeendzeit)" + +msgid "Change repeat and delay settings?" +msgstr "Einstellung für Wiederholung und Verzögerung anpassen?" + +msgid "Change service PIN" +msgstr "Kanal-PIN ändern" + +msgid "Change service PINs" +msgstr "Kanal-PINs ändern" + +msgid "Change setup PIN" +msgstr "Setup PIN ändern" + +msgid "Change step size" +msgstr "Schrittweite ändern." + +msgid "Change timer" +msgstr "Timer ändern" + +msgid "Changelog" +msgstr "Versionshistorie" + +msgid "Channel" +msgstr "Kanal" + +msgid "Channel list type" +msgstr "Kanallisten-Typ" + +msgid "Channel not in services list" +msgstr "Kanal nicht in der Kanalliste" + +msgid "Channel selection" +msgstr "Kanalliste" + +msgid "Channel:" +msgstr "Kanal:" + +msgid "Channellist menu" +msgstr "Kanallisten-Menü" + +msgid "Chap." +msgstr "Kap." + +msgid "Chapter" +msgstr "Kapitel" + +msgid "Chapter:" +msgstr "Kapitel:" + +msgid "Check" +msgstr "Test" + +msgid "Check the internet connection" +msgstr "Ãœberprüfe die Internet-Verbindung" + +msgid "Check the internet connection again" +msgstr "Wiederholter Test der Internet-Verbindung" + +msgid "Checking filesystem..." +msgstr "Ãœberprüfe Dateisystem..." + +msgid "Checking the internet connection" +msgstr "Ãœberprüfung der Internet-Verbindung" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" +"Ãœberprüfe Tuner %d\n" +"DiSEqC Port %s auf %s" + +msgid "Children/Youth" +msgstr "Kinder/Jugend" + +msgid "Choose which tuner to configure." +msgstr "Wählen Sie den Tuner aus." + +msgid "Circular left" +msgstr "Links-Zirkular" + +msgid "Circular right" +msgstr "Rechts-Zirkular" + +msgid "Cleanup" +msgstr "Aufräumen" + +msgid "Clear" +msgstr "Löschen" + +msgid "Clear before scan" +msgstr "Vor der Suche löschen" + +msgid "Clear fixed" +msgstr "Neue Adresse" + +msgid "Clear log" +msgstr "Log löschen" + +msgid "Clear playlist" +msgstr "Wiedergabeliste leeren" + +msgid "Close" +msgstr "Schließen" + +msgid "Close PiP on exit" +msgstr "Schließe PiP mit Exit" + +msgid "Close title selection" +msgstr "Titelauswahl schließen" + +msgid "Code rate HP" +msgstr "Empfangsrate HP" + +msgid "Code rate LP" +msgstr "Empfangsrate LP" + +msgid "Coderate HP" +msgstr "Empfangsrate HP" + +msgid "Coderate LP" +msgstr "Empfangsrate LP" + +msgid "Collection name" +msgstr "Zusammenstellungsname" + +msgid "Collection settings" +msgstr "Zusammenstellungs-Einstellungen" + +msgid "Color format" +msgstr "Farbformat" + +msgid "Command execution..." +msgstr "Befehl wird ausgeführt..." + +msgid "Command order" +msgstr "Befehlsfolge" + +msgid "Common Interface" +msgstr "Common Interface" + +msgid "Common Interface assignment" +msgstr "Common Interface Zuweisung" + +msgid "Communication" +msgstr "Kommunikation" + +msgid "Compact flash" +msgstr "Compact Flash" + +msgid "Complete" +msgstr "Komplett" + +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "Komplex (erlaubt Mischen versch. Ton-u. Bildformate)" + +msgid "Composition of the recording filenames" +msgstr "Zusammensetzung des Aufnahme-Dateinamens" + +msgid "Configuration mode" +msgstr "Konfiguration" + +#, python-format +msgid "Configuration mode: %s" +msgstr "Konfigurationsmodus: %s" + +msgid "Configuration..." +msgstr "Konfiguration..." + +msgid "" +"Configure an additional delay to improve external subtitle synchronisation." +msgstr "" +"Konfiguriert eine zusätzliche Verzögerung zur besseren Synchronisation " +"externer Untertitel." + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "" +"Konfiguriert eine zusätzliche Verzögerung zur besseren Synchronisation der " +"Untertitel." + +msgid "" +"Configure for how long the infobar will remain visible after activation." +msgstr "" +"Konfigurieren Sie wie lange die Infoleiste nach Einblendung sichtbar bleibt." + +msgid "" +"Configure for how many minutes finished events should remain visible in the " +"EPG. Useful when you need information about an event which has just " +"finished, or has been delayed." +msgstr "" +"Konfigurieren Sie wie viele Minuten eine abgeschlossene Sendung in der EPG " +"sichtbar bleiben soll. Nützlich wenn Sie Informationen zu einer Sendung " +"benötigen, die bereits abgeschlossen war bzw. eine Sendung länger dauerte." + +msgid "Configure how recording filenames are constructed." +msgstr "Aufnahme-Dateiname konfigurieren" + +msgid "Configure how the fan should operate" +msgstr "Lüfterverhalten konfigurieren" + +msgid "" +"Configure if and how crypto icons will be shown in the channel selection " +"list." +msgstr "" +"Konfiguriere, ob und wie die Verschlüsselungssymbole in der Kanalliste " +"angezeigt werden." + +msgid "" +"Configure if and how long the latest service in the PiP will be remembered." +msgstr "Konfiguriere, ob und wie lange der letzte PiP-Kanal gespeichert wird." + +msgid "" +"Configure if and how service type icons will be shown in the channel " +"selection list." +msgstr "" +"Konfiguriert, ob und wie Service-Typ Icons in der Kanalliste angezeigt " +"werden." + +msgid "" +"Configure if and how wide columns will be shown in the channel selection " +"list." +msgstr "" +"Konfiguriere, ob und wie große Spalten in der Kanalliste angezeigt werden." + +msgid "" +"Configure if service picons will be shown in the channel selection list." +msgstr "Falls aktiviert, werden Picons in der Kanalauswahlliste angezeigt." + +msgid "Configure interface" +msgstr "Netzwerkkarte konfigurieren" + +msgid "Configure nameservers" +msgstr "DNS-Server konfigurieren" + +msgid "Configure on which devices the background delete option should be used." +msgstr "" +"Einstellung der Geräte bei denen die Hintergrund-Löschung aktiviert werden " +"soll." + +msgid "Configure remote control type" +msgstr "Fernbedienungtyp einstellen" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "DiSEqC Modus Einstellung für diesen LNB." + +msgid "Configure the IP address." +msgstr "IP Adresse konfigurieren." + +msgid "Configure the aspect ratio of the screen." +msgstr "Bildformat des Bildschirms konfigurieren." + +msgid "" +"Configure the behavior of the 'pause and ok' key when movie playback is " +"already paused." +msgstr "" +"Konfiguriere das Verhalten der 'Pause und OK-Taste, wenn die Filmwiedergabe " +"bereits gestoppt wurde." + +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "Verhalten beim Stoppen eines Films" + +msgid "Configure the behavior when movie playback is started." +msgstr "Verhalten beim Start eines Films" + +msgid "" +"Configure the behavior when reaching the end of a movie, during movie " +"playback." +msgstr "Verhalten beim Erreichen des Filmendes während der Film-Wiedergabe." + +msgid "" +"Configure the border width of the subtitles. The dark border makes the " +"subtitles easier to read on a light background." +msgstr "" +"Anpassung der Dicke des Untertitel-Rahmens. Mit dunklem Rahmen sind die " +"Untertitel auf hellen Hintergrund leichter zu lesen." + +msgid "" +"Configure the brightness level of the front panel display during standby." +msgstr "Anpassung der Helligkeit des Frontdisplays im Standby-Modus." + +msgid "Configure the brightness level of the front panel display." +msgstr "Anpassung der Helligkeit des Frontdisplays." + +msgid "" +"Configure the color of the external subtitles, alternative (normal in white, " +"italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "" +"Konfiguration externe Untertitel Farbe, Alternativ (normal in Weiß, kursiv " +"in Gelb, fett in Cyan, Unterstriche in Grün), Weiß oder Gelb." + +msgid "Configure the color of the teletext subtitles." +msgstr "Farbe der Teletext Untertitel." + +msgid "Configure the contrast level of the front panel display." +msgstr "Kontrast des Frontdisplays." + +msgid "" +"Configure the cursor behaviour in the channel selection list. When opening " +"the channel selection list you can keep on the current service or already " +"select up/down and you are able to revert the B+/B- buttons." +msgstr "" +"Konfiguriert das Verhalten des Cursors in Kanalauswahllisten. Beim Öffnen " +"von Kanalauswahllisten kann der Cursor auf dem aktuellen Sender bleiben oder " +"bereits den oberen/unteren Kanal markieren (oben/unten kann dabei nach " +"Wunsch invertiert werden)." + +msgid "" +"Configure the duration in hours the receiver should go to standby when the " +"receiver is not controlled." +msgstr "" +"Konfiguriere den Zeitraum in Stunden, nachdem der Receiver in den Standby " +"wechseln soll, wenn dieser nicht mehr gesteuert wird." + +msgid "Configure the duration in minutes for the screensaver." +msgstr "Konfiguriert die Dauer in Minuten bis zum Start des Screensavers." + +msgid "" +"Configure the duration in minutes for the sleeptimer. Select this entry and " +"click OK or green to start/stop the sleeptimer" +msgstr "" +"Konfiguriere den Zeitraum in Minuten für den Ausschalt-Timer. Wähle diesen " +"Eintrag aus und drücke OK oder die grüne Taste, um den Ausschalt-Timer zu " +"staren/beenden." + +msgid "" +"Configure the duration when the receiver should go to shut down in case the " +"receiver is in standby mode." +msgstr "" +"Konfiguriere die Dauer, wann der Receiver ausgeschaltet werden soll, falls " +"er sich im Standby-Modus befindet." + +msgid "Configure the first audio language (highest priority)." +msgstr "Wahl der ersten Audiospur-Sprache (höchste Priorität)." + +msgid "Configure the first subtitle language (highest priority)." +msgstr "Wahl der ersten Untertitel-Sprache (höchste Priorität)." + +msgid "Configure the font size of the subtitles." +msgstr "Schriftgrösse der Untertitel." + +msgid "Configure the fourth audio language." +msgstr "Wahl der vierten Audiospur-Sprache." + +msgid "Configure the fourth subtitle language." +msgstr "Wahl der vierten Untertitel Sprache." + +msgid "Configure the function of a long press on the power button." +msgstr "Funktion bei längerem Drücken der Einschalt-Taste." + +msgid "Configure the function of a short press on the power button." +msgstr "Funktion dei kurzem Drücken der Einschalt-Taste." + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "Funktion der '0' Taste während Bild im Bild aktiv ist." + +msgid "Configure the gateway." +msgstr "Gateway einstellen" + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "Generelle Audio-Verzögerung von Dolby Digital Tonspuren." + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "Generelle Audio-Verzögerund von Stereo Tonspuren." + +msgid "" +"Configure the hard disk drive to go to standby after the specified idle time." +msgstr "Standby der Festplatte nach einer gewissen Zeit." + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "Horizontale Ausrichtung der Untertitel." + +msgid "" +"Configure the initial fast forward speed. When you press the fast forward " +"button, winding will start at this speed." +msgstr "" +"Anfängliche Schnellvorlauf-Geschwindigkeit. Wenn die Schnellvorlauf-Taste " +"betätigt wird, wird diese Geschwindigkeit zum Spulen verwendet." + +msgid "" +"Configure the initial rewind speed. When you press the rewind button, " +"winding will start at this speed." +msgstr "" +"Anfängliche Rückspul-Geschwindigkeit. Wenn die Rückspultaste betätigt wird, " +"wird diese Geschwindigkeit zum Spulen verwendet." + +msgid "Configure the latitude of your location." +msgstr "Breitengrad Ihres Standortes." + +msgid "Configure the longitude of your location." +msgstr "Längengrad Ihres Standortes." + +msgid "" +"Configure the minimum amount of disk space to be available for recordings. " +"When the amount of space drops below this value, deleted items will be " +"removed from the trash can." +msgstr "" +"Minimaler Festplatten-Speicher der vor Aufnahme zur Verfügung stehen muss. " +"Wenn dieser Wert unterschritten wird, werden Elemente vom Mülleimer " +"endgültig entfernt." + +msgid "Configure the nameserver (DNS)." +msgstr "DNS-Server konfigurieren" + +msgid "Configure the netmask." +msgstr "Netzmaske konfigurieren" + +msgid "" +"Configure the number of days after which items are automaticaly removed from " +"the trash can." +msgstr "" +"Anzahl von Tagen nach denen Elemente aus dem Mülleimer automatisch gelöscht " +"werden." + +msgid "" +"Configure the number of days old timers are kept before they are " +"automatically removed from the timer list." +msgstr "" +"Anzahl von Tagen nach denen Timers von der Timer-Liste automatischgelöscht " +"werden sollen." + +msgid "" +"Configure the offline decoding delay in milliseconds. The configured delay " +"is observed at each control word parity change." +msgstr "" +"Lokale Dekodierungsverzögerung in Millisekunden. Die gesetzte Verzögerung " +"wird bei jedem Kontrollwortparität-Wechsel beachtet." + +msgid "Configure the possible fast forward speeds." +msgstr "Mögliche Schnellvorlauf-Geschwindigkeit" + +msgid "Configure the possible rewind speeds." +msgstr "Mögliche Rücklauf-Geschwindigkeit" + +msgid "Configure the primary EPG language." +msgstr "Primäre EPG Sprache." + +msgid "Configure the refresh rate of the screen." +msgstr "Aktualisierungsrate des Bildschirms." + +msgid "Configure the screen resolution in PC output mode." +msgstr "Bildschirmauflösung im PC-Modus." + +msgid "Configure the second audio language." +msgstr "Wahl der zweiten Audiospur-Sprache." + +msgid "Configure the second subtitle language." +msgstr "Wahl der zweiten Untertitel-Sprache." + +msgid "Configure the secondary EPG language." +msgstr "Wahl der zweiten EPG Sprache." + +msgid "Configure the sharpness of the video scaling." +msgstr "Schärfe der Bildschirmskalierung." + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "Sprunginterval der '1'/'3' Tasten." + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "Sprunginterval der '4'/'6' Tasten." + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "Sprunginterval der '7'/'9' Tasten." + +msgid "Configure the slow motion speeds." +msgstr "Zeitlupen-Geschwindigkeiten." + +msgid "" +"Configure the source of the frontend data as shown on the infobars. " +"'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" +"Konfiguriere die Frontend Datenquelle, die in der Infobar angezeigt wird. " +"Das Feld 'Einstellungen' (Settings) kann konfiguriert werden. Das Feld " +"'Tuner' wird vom Tuner übernommen." + +msgid "" +"Configure the speed of the background deletion process. Lower speed will " +"consume less hard disk drive performance." +msgstr "" +"Schnelligkeit des Hintergrund-Löschprozesses. Ein langsamerer Löschvorgang " +"verbraucht weniger Festplatten-Performanz." + +msgid "Configure the speed of the fan" +msgstr "Lüftergeschwindigkeit konfigurieren" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "" +"Verzögerung des Untertitels wenn zeitliche Informationen nicht zur Verfügung " +"stehen." + +msgid "Configure the third audio language." +msgstr "Wahl der dritten Audiospur-Sprache." + +msgid "Configure the third subtitle language." +msgstr "Wahl der dritten Untertitel-Sprache." + +msgid "Configure the transparency of the OSD." +msgstr "Transparenz der Bildschirmanzeige (OSD)." + +msgid "" +"Configure the transparency of the black background of graphical DVB " +"subtitles." +msgstr "Transparenz bei schwarzem Hintergrund der grafischen DVB Untertitel." + +msgid "Configure the tuner mode." +msgstr "Wahl des Tuner-Modus." + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "Typ des Status-Anzeigesymbols in der Filmliste." + +msgid "" +"Configure the vertical position of the subtitles, measured from the bottom " +"of the screen." +msgstr "" +"Anpassung der vertikalen Position der Untertitel, ausgehend vom unterem " +"Bildschirmrand." + +msgid "Configure the video output mode (or resolution)." +msgstr "Video-Ausgang Modus (oder Auflösung)." + +msgid "Configure the way in which the receiver changes channels." +msgstr "Anpassung des Vorganges bei Kanalwechsel." + +msgid "Configure where completed timers show up in the timer list." +msgstr "Position beendeter Timer in der Timerliste" + +msgid "" +"Configure whether (and for how long) a second infobar will be shown when OK " +"is pressed twice. The second infobar contains additional information about " +"the current channel." +msgstr "" +"Anpassung ob (und wie lange) eine zweite Infoleiste bei erneuter Betätigung " +"der OK Taste angezeigt werden soll. Diese zeigt zusätzliche Informationen " +"über den Kanal an." + +msgid "" +"Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "Heruntermischen von Multi-Kanal-Sound in Stereo." + +msgid "" +"Configure whether or not an icon should be shown when your motorized dish is " +"moving." +msgstr "" +"Anzeige eines Hinweissymbols bei Bewegung der mororisierten Antennenschüssel." + +msgid "" +"Configure which access level to use for the configuration menu. Expert level " +"gives access to all items." +msgstr "" +"Zugriff-Level des Konfigurationsmenüs einstellen. Expertenlevel erlaubt den " +"Zugriff auf alle Elemente." + +msgid "Configure which color format should be used on the SCART output." +msgstr "Farbformat am SCART Ausgang." + +msgid "" +"Configure which tuner for recordings will be preferred, when more than one " +"tuner is available." +msgstr "" +"Konfiguriere den Tuner, der für Aufnahmen bevorzugt wird, falls mehrere " +"Tuner zur Verfügung stehen." + +msgid "" +"Configure which tuner type will be preferred, when the same service is " +"available on different types of tuners." +msgstr "" +"Bevorzugter Tunertyp falls der Kanal auf mehreren Typen von Tunern zur " +"Verfügung steht." + +msgid "" +"Configure which tuner will be preferred, when more than one tuner is " +"available. If set to 'auto' the system will give priority to the tuner " +"having the lowest number of channels/satellites." +msgstr "" +"Bevorzugter Tuner falls mehr als einer verfügbar ist. Bei 'auto' wird der " +"Tuner mit den wenigsten Kanälen/Satelliten bevorzugt.." + +msgid "Configure your internal LAN" +msgstr "Internes Netzwerk konfigurieren" + +msgid "Configure your network again" +msgstr "Netzwerk erneut konfigurieren" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "" +"Konfigurieren Sie Ihr Netzwerk und drücken Sie OK, um den Suchvorgang zu " +"starten." + +msgid "Configure your wireless LAN again" +msgstr "Funk-Netzwerk erneut konfigurieren" + +msgid "Configures which video output connector will be used." +msgstr "Wahl des Videoausgang-Anschlusses." + +msgid "Configuring" +msgstr "Konfiguriere" + +msgid "Conflicting timer" +msgstr "In Konflikt stehender Timer" + +msgid "Connect" +msgstr "Verbinden" + +msgid "Connect to a wireless network" +msgstr "Mit Funk-Netzwerk verbinden" + +msgid "Connected satellites" +msgstr "Angeschlossene Satelliten" + +msgid "Connected to" +msgstr "Verbunden mit" + +msgid "Connected!" +msgstr "Verbunden!" + +msgid "Constellation" +msgstr "Konstellation" + +msgid "Content does not fit on DVD!" +msgstr "Inhalt passt nicht auf die DVD!" + +msgid "Continue" +msgstr "Weiter" + +msgid "Continue in background" +msgstr "Im Hintergrund fortsetzen" + +msgid "Continue playback" +msgstr "Abspielen fortsetzen" + +msgid "Continue playing" +msgstr "Abspielen fortsetzen" + +msgid "Continues play (loop)" +msgstr "Endloswiedergabe (Schleife)" + +msgid "Contrast" +msgstr "Kontrast" + +msgid "Convert ext3 filesystem to ext4" +msgstr "Ext3 Dateisystem nach ext4 umwandeln" + +msgid "Convert ext3 to ext4" +msgstr "Ext3 nach ext4 umwandeln" + +msgid "Converting ext3 to ext4..." +msgstr "Wandle ext3 nach ext4 um..." + +msgid "Copy" +msgstr "Kopieren" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "" +"Verbindung zum Receiver .NFI Image Feed Server konnte nicht hergestellt " +"werden:" + +msgid "Could not find installed channel list." +msgstr "Programmierte Kanalliste konnte nicht gefunden werden." + +msgid "Could not load medium! No disc inserted?" +msgstr "Konnte das Medium nicht laden! Keine DVD eingelegt?" + +msgid "Could not open Picture in Picture" +msgstr "Bild im Bild konnte nicht geladen werden." + +#, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "Aufnahme wegen in Konflikt stehendem Timer %s fehlgeschlagen" + +#, python-format +msgid "Could not record due to invalid service %s" +msgstr "Aufnahme wegen ungültigem Kanal %s fehlgeschlagen" + +msgid "Create DVD-ISO" +msgstr "DVD-ISO erstellen" + +msgid "Create more detailed crash log" +msgstr "Erzeuge detailierteren Fehlerbericht" + +#, python-format +msgid "Creating directory %s failed." +msgstr "Erstellen des Verzeichnisses %s fehlgeschlagen." + +msgid "Creating filesystem" +msgstr "Dateisystem erstellen" + +msgid "Creating partition" +msgstr "Partition erstellen" + +msgid "Croatian" +msgstr "Kroatisch" + +msgid "Current CEC address" +msgstr "Aktuelle CEC-Adresse" + +msgid "Current device: " +msgstr "Aktuelles Gerät:" + +msgid "Current event EPG" +msgstr "Aktuelle Sendung EPG" + +#, python-format +msgid "Current mode: %s \n" +msgstr "Aktueller Modus: %s \n" + +msgid "Current settings:" +msgstr "Aktuelle Einstellungen:" + +msgid "Current transponder" +msgstr "Aktueller Transponder" + +msgid "Current value: " +msgstr "Aktueller Wert:" + +msgid "Current version:" +msgstr "Derzeitige Version:" + +msgid "Currently installed image" +msgstr "Aktuell installiertes Image" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" +"Derzeit kann die Liste der Code-Veränderungen nicht geladen werden - Bitte " +"versuchen Sie es später erneut" + +msgid "Custom skip time for '1'/'3' buttons" +msgstr "Gewünschte Sprungzeit für '1'/'3'-Tasten" + +msgid "Custom skip time for '4'/'6' buttons" +msgstr "Gewünschte Sprungzeit für '4'/'6'-Tasten" + +msgid "Custom skip time for '7'/'9' buttons" +msgstr "Gewünschte Sprungzeit für '7'/'9'-Tasten" + +msgid "Customize" +msgstr "Anpassen" + +msgid "Customize channel list cursor behavior" +msgstr "Cursor-Verhalten in Kanalliste einstellen" + +msgid "Cut" +msgstr "Schneiden" + +msgid "Cutlist editor..." +msgstr "Schnitteditor..." + +msgid "Czech" +msgstr "Tschechisch" + +msgid "D" +msgstr "D" + +msgid "DHCP" +msgstr "DHCP" + +msgid "DMM advanced" +msgstr "Erweitertes DMM" + +msgid "DMM normal" +msgstr "DMM normal" + +msgid "DUAL LAYER DVD" +msgstr "Doppelschicht DVD (DUAL LAYER)" + +msgid "DVB subtitle black transparency" +msgstr "Schwarztransparenz DVB-Untertitel" + +msgid "DVB-C" +msgstr "DVB-C" + +msgid "DVB-C ANNEX C" +msgstr "DVB-C ANNEX C" + +msgid "DVB-S" +msgstr "DVB-S" + +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "DVB-T" + +msgid "DVB-T2" +msgstr "DVB-T2" + +msgid "DVD data format" +msgstr "DVD Format" + +msgid "DVD file browser" +msgstr "DVD Datei Browser" + +msgid "DVD media toolbox" +msgstr "DVD Medien-Toolbox" + +msgid "DVD player" +msgstr "DVD Player" + +msgid "DVD titlelist" +msgstr "DVD Titelliste" + +msgid "Danish" +msgstr "Dänisch" + +msgid "Date" +msgstr "Datum" + +msgid "Date/time input" +msgstr "Zeit/Datum-Eingabe" + +msgid "Deep standby" +msgstr "Tiefschlaf / Ausschalten" + +msgid "Default" +msgstr "Standard" + +msgid "Default movie location" +msgstr "Standard Filmlisten Ort" + +msgid "Default settings" +msgstr "Voreinstellungen" + +msgid "Delay before key repeat starts:" +msgstr "Eingabewiederholung starten:" + +msgid "Delay for external subtitles" +msgstr "Verzögerung für externe Untertitel" + +msgid "Delete" +msgstr "Löschen" + +msgid "Delete entry" +msgstr "Eintrag löschen" + +msgid "Delete failed!" +msgstr "Löschen fehlgeschlagen." + +msgid "Delete file" +msgstr "Datei löschen" + +msgid "Delete playlist entry" +msgstr "Wiedergabelisteneintrag löschen" + +msgid "Delete saved playlist" +msgstr "Gespeicherte Wiedergabeliste löschen" + +msgid "Delete timer" +msgstr "Timer löschen" + +msgid "Delete..." +msgstr "Löschen..." + +msgid "Deleted" +msgstr "Gelöscht" + +msgid "Deleted items" +msgstr "Gelöschte Objekte" + +msgid "Depth" +msgstr "Tiefe" + +msgid "Descramble http streams" +msgstr "Entschlüssele HTTP-Streams" + +msgid "Description" +msgstr "Beschreibung" + +msgid "Deselect" +msgstr "Markierung aufheben" + +msgid "Details for plugin: " +msgstr "Details des Plugins: " + +msgid "Detected HDD:" +msgstr "Erkannte Festplatte(n):" + +msgid "Detected NIMs:" +msgstr "Erkannte Tuner:" + +msgid "Devicename:" +msgstr "Gerätename:" + +msgid "Devide" +msgstr "Aufteilen" + +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "DiSEqC 1.0 Befehl" + +msgid "DiSEqC 1.1 command" +msgstr "DiSEqC 1.1 Befehl" + +msgid "DiSEqC 1.1 repeats" +msgstr "DiSEqC 1.1 Wiederholungen" + +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +msgid "DiSEqC mode" +msgstr "DiSEqC-Modus" + +#, python-format +msgid "DiSEqC port %s: %s" +msgstr "DiSEqC Port %s: %s" + +msgid "DiSEqC-tester settings" +msgstr "DiSEqC-Tester Einstellungen" + +msgid "Dialing:" +msgstr "Wählen:" + +msgid "Digital contour removal" +msgstr "Entfernen digitaler Konturen" + +msgid "Direct playback of linked titles without menu" +msgstr "Direkte Wiedergabe verknüpfter Titel ohne Menü" + +msgid "Directory" +msgstr "Verzeichnis" + +#, python-format +msgid "Directory %s does not exist." +msgstr "Verzeichnis %s existiert nicht." + +#, python-format +msgid "Directory %s nonexistent." +msgstr "Verzeichnis %s existiert nicht." + +msgid "Directory browser" +msgstr "Verzeichnis Browser" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "Das Verzeichnis enthält %d Datei(en) und %d Unterordner.\n" + +#, python-format +msgid "Directory contains %s and %s." +msgstr "Das Verzeichnis enthält %s und %s." + +msgid "Disable" +msgstr "Aus" + +msgid "Disable Picture in Picture" +msgstr "Bild im Bild ausschalten" + +msgid "Disable background scanning" +msgstr "Deaktivieren von Hintergrundscanning" + +msgid "Disable timer" +msgstr "Timer deaktivieren" + +msgid "Disabled" +msgstr "Deaktiviert" + +msgid "Disconnect" +msgstr "Trennen" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "Reservierter Speicherplatz für Aufnahmen (in GB)" + +msgid "Display 16:9 content as" +msgstr "16:9-Inhalt anzeigen als" + +msgid "Display 4:3 content as" +msgstr "4:3-Inhalt anzeigen als" + +msgid "Display >16:9 content as" +msgstr "Inhalt mit einem Bildformate grösser als 16:9 anzeigen als" + +msgid "Display and userinterface" +msgstr "Display und Benutzeroberfläche" + +msgid "Display message before playing next movie" +msgstr "Zeige Meldung, bevor der nächste Film gestartet wird" + +msgid "Display setup" +msgstr "Display-Einstellungen" + +msgid "Do not change" +msgstr "Nicht ändern" + +msgid "Do not record" +msgstr "Nicht aufnehmen" + +msgid "Do nothing" +msgstr "Nichts" + +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Möchten Sie das Dateisystem wirklich überprüfen?\n" +"Die Ãœberprüfung kann einige Zeit in Anspruch nehmen." + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" +"Wollen Sie das Dateisystem wirklich konvertieren?\n" +"Sie können diesen Schritt nicht rückgängig machen!" + +#, python-format +msgid "Do you really want to delete %s?" +msgstr "%s wirklich löschen?" + +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "Wollen Sie das Plugin \"%s\" wirklich herunterladen?" + +msgid "Do you really want to exit?" +msgstr "Wollen Sie wirklich beenden?" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" +"Wollen Sie das Laufwerk wirklich formatieren?\n" +"Sämtliche Daten auf dem Laufwerk gehen dabei verloren!" + +#, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "Wollen Sie das Plugin \"%s\" wirklich entfernen?" + +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Wollen Sie das Verzeichnis %s wirklich von der Festplatte löschen?" + +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Wollen Sie das Lesezeichen %s wirklich löschen?" + +msgid "Do you want this?" +msgstr "Wollen Sie dieses wirklich?" + +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Soll diese Zusammenstellung auf DVD gebrannt werden?" + +msgid "Do you want to do a service scan?" +msgstr "Jetzt nach Kanälen suchen?" + +msgid "Do you want to do another manual service scan?" +msgstr "Wollen Sie eine weitere manuelle Suche durchführen?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "Wollen Sie das Image nach %s herunterladen?" + +msgid "Do you want to install a channel list?" +msgstr "Möchten Sie eine Kanalliste hinzufügen?" + +msgid "Do you want to install the package:\n" +msgstr "Wollen Sie das Paket installieren:\n" + +msgid "Do you want to play DVD in drive?" +msgstr "Wollen Sie die DVD im Laufwerk abspielen?" + +msgid "Do you want to preview this DVD before burning?" +msgstr "Wollen Sie vor dem Brennen eine Vorschau der DVD ansehen?" + +msgid "Do you want to reboot your receiver?" +msgstr "Wollen Sie Ihren Receiver neu starten?" + +msgid "Do you want to remove the package:\n" +msgstr "Wollen Sie das Paket entfernen:\n" + +msgid "Do you want to restore your settings?" +msgstr "Wollen Sie die Einstellungen wiederherstellen?" + +msgid "Do you want to resume this playback?" +msgstr "Möchten Sie die Wiedergabe an der letzten Stelle fortsetzen?" + +#, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Wollen Sie Ihren Receiver auf %s aktualisieren?" + +msgid "Do you want to update your receiver?" +msgstr "Wollen Sie Ihren Receiver aktualisieren?" + +msgid "Do you want to upgrade the package:\n" +msgstr "Wollen Sie das Paket aktualisieren:\n" + +msgid "Don't stop current event but disable coming events" +msgstr "" +"Aktuelles Event nicht beenden, aber alle zukünftige Events deaktivieren" + +#, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "" +"Abgeschlossen - %d Paket installiert, aktualisiert oder entfernt (%s)" +msgstr[1] "" +"Abgeschlossen - %d Pakete installiert, aktualisiert oder entfernt (%s)" + +msgid "Download" +msgstr "Herunterladen" + +#, python-format +msgid "Download %s from server" +msgstr "%s vom Server herunterladen" + +msgid "Download .NFI-files for USB-flasher" +msgstr ".NFI-Files für USB-Flasher runterladen" + +msgid "Download plugins" +msgstr "Plugins herunterladen" + +msgid "Downloadable new plugins" +msgstr "Herunterladbare neue Plugins" + +msgid "Downloadable plugins" +msgstr "Herunterladbare Plugins" + +msgid "Downloading" +msgstr "Herunterladen" + +msgid "Downloading plugin information. Please wait..." +msgstr "Lade Plugin-Informationen herunter. Bitte warten..." + +msgid "Dutch" +msgstr "Holländisch" + +msgid "Dynamic contrast" +msgstr "Dynamischer Kontrast" + +msgid "E" +msgstr "O" + +msgid "EPG" +msgstr "EPG" + +msgid "EPG language selection 1" +msgstr "EPG Sprachwahl 1" + +msgid "EPG language selection 2" +msgstr "EPG Sprachwahl 2" + +msgid "EPG selection" +msgstr "EPG-Auswahl" + +msgid "EPG settings" +msgstr "EPG-Einstellungen" + +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "FEHLER - Suche fehlgeschlagen (%s)!" + +msgid "East" +msgstr "Ost" + +msgid "East limit set" +msgstr "Östliches Limit" + +msgid "Edit" +msgstr "Bearbeiten" + +msgid "Edit DNS" +msgstr "Bearbeite DNS" + +msgid "Edit bouquets list" +msgstr "Bouquetliste bearbeiten" + +msgid "Edit chapters of current title" +msgstr "Kapitel des ausgewählten Titels schneiden" + +msgid "Edit services list" +msgstr "Kanalliste bearbeiten" + +msgid "Edit settings" +msgstr "Einstellungen bearbeiten" + +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "Bearbeiten Sie die Nameserver-Einstellungen Ihres Receivers.\n" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "Bearbeiten Sie die Netzwerk-Konfiguration Ihres Receivers.\n" + +msgid "Edit timer" +msgstr "Timer editieren" + +msgid "Edit title" +msgstr "Titel ändern" + +msgid "Edit upgrade source url." +msgstr "Update Quell-URL bearbeiten." + +msgid "Education/Science/..." +msgstr "Bildung/Wissenschaft/..." + +msgid "Electronic Program Guide" +msgstr "Elektronischer Programmführer" + +msgid "Enable" +msgstr "Ein" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "Aktiviere Kanalauswahlverhalten im 'Neutrino'-Style" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "Aktiviere Kanalumschaltverhalten im 'Neutrino'-Style" + +msgid "Enable 5V for active antenna" +msgstr "5V für aktive Antenne" + +msgid "Enable EIT EPG" +msgstr "Aktiviere EIT EPG" + +msgid "Enable MHW EPG" +msgstr "Aktiviere MHW EPG" + +msgid "Enable Netmed EPG" +msgstr "Aktiviere Netmed EPG" + +msgid "Enable OK for channel selection" +msgstr "Aktiviere OK für Kanalauswahl" + +msgid "Enable ViaSat EPG" +msgstr "Aktiviere ViaSat EPG" + +msgid "Enable Virgin EPG" +msgstr "Aktiviere Virgin EPG" + +msgid "Enable Wake On LAN" +msgstr "Aktiviere Wake on LAN" + +msgid "Enable auto fast scan" +msgstr "Aktiviere automatischen schnellen Kanalscan" + +msgid "Enable bouquet selection in multi-EPG" +msgstr "Aktiviere Bouquet-Auswahl im Multi-EPG" + +msgid "Enable freesat EPG" +msgstr "Aktiviere freesat EPG" + +msgid "Enable multiple bouquets" +msgstr "Mehrere Bouquets erlauben" + +msgid "Enable parental control" +msgstr "Jugendschutz anschalten" + +msgid "Enable teletext caching" +msgstr "Aktiviere Teletext Cache" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "Aktiviere Kanalumschalten mit CH+/-, B+/-, P+/-" + +msgid "Enabled" +msgstr "Eingeschaltet" + +msgid "Encrypted: " +msgstr "Verschlüsselt: " + +msgid "Encryption" +msgstr "Verschlüsselung" + +msgid "Encryption key" +msgstr "WLAN-Sicherheitsschlüssel" + +msgid "Encryption key type" +msgstr "Passwortverschlüsselungstyp" + +msgid "Encryption:" +msgstr "Verschlüsselung:" + +msgid "End time" +msgstr "Endzeit" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "Endzeit zum Ignorieren des Inaktivität-Sleeptimers" + +msgid "End time to ignore shutdown in standby" +msgstr "" +"Zeitpunkt nachdem nicht mehr vom Standby in den Schlafmodus gewechselt wird" + +msgid "English" +msgstr "Englisch" + +msgid "Enigma2 skin selector" +msgstr "Benutzeroberfläche Auswahl" + +msgid "Enter main menu..." +msgstr "Öffne Hauptmenü..." + +msgid "Enter pin code" +msgstr "PIN-Code eingeben" + +msgid "Enter the service pin" +msgstr "Geben Sie den Kanal-PIN-Code ein" + +msgid "Equal to" +msgstr "Entspricht" + +msgid "Error" +msgstr "Fehler" + +msgid "Error code" +msgstr "Fehler-Code" + +msgid "Error executing plugin" +msgstr "Ausführen des Plugins fehlgeschlagen" + +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Fehler aufgetreten: %s\n" +"Erneut versuchen?" + +msgid "Estonian" +msgstr "Estnisch" + +msgid "Ethernet network interface" +msgstr "Ethernet Netzwerkadapter" + +msgid "Event font size (relative to skin size)" +msgstr "Sendung Schriftgröße (relativ zur Skingröße)" + +msgid "Event view" +msgstr "Sendungsübersicht" + +msgid "Event view menu" +msgstr "Sendungsübersicht Menü" + +msgid "Everywhere" +msgstr "Ãœberall" + +msgid "Exceeds dual layer medium!" +msgstr "Ãœbersteigt die Größe eines Doppelschicht-Mediums!" + +msgid "Execution finished!!" +msgstr "Ausführung beendet!" + +msgid "Execution progress:" +msgstr "Ausführen eines externen Befehls:" + +msgid "Exif" +msgstr "Exif" + +msgid "Exit" +msgstr "Beenden" + +msgid "Exit EPG" +msgstr "EPG verlassen?" + +msgid "Exit editor" +msgstr "Editor beenden" + +msgid "Exit input device selection." +msgstr "Eingabegeräteauswahl verlassen" + +msgid "Exit media player?" +msgstr "Mediaplayer beenden?" + +msgid "Exit mediaplayer" +msgstr "Mediaplayer beenden" + +msgid "Exit movie list" +msgstr "Verlasse Filmliste" + +msgid "Exit movie player?" +msgstr "Medienplayer verlassen?" + +msgid "Exit nameserver configuration" +msgstr "DNS-Serverkonfiguration verlassen" + +msgid "Exit network interface list" +msgstr "Netzwerkadapterübersicht verlassen" + +msgid "Exit network wizard" +msgstr "Netzwerkassistent verlassen" + +msgid "Exit the wizard" +msgstr "Assistent beenden" + +msgid "Expert" +msgstr "Experte" + +msgid "Extend sleeptimer 15 minutes" +msgstr "Sleeptimer 15 min verlängern" + +msgid "Extended Software" +msgstr "Fortgeschrittene Software" + +msgid "Extended Software Plugin" +msgstr "Fortgeschrittenes Software Plugin" + +msgid "Extended network setup plugin..." +msgstr "Erweitertes Netzwerksetup Plugin..." + +msgid "Extended setup..." +msgstr "Erweiterte-Einstellungen..." + +msgid "Extensions" +msgstr "Erweiterungen" + +msgid "Extensions management" +msgstr "Erweiterungsverwaltung" + +msgid "External PiP" +msgstr "Externes PiP (Scart)" + +msgid "External subtitle color" +msgstr "Farbe für externe Untertitel" + +msgid "Extra motor options" +msgstr "Zusätzliche Motor-Optionen" + +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "FTA" + +msgid "Factory reset" +msgstr "Werkseinstellungen" + +msgid "Failed" +msgstr "Fehlgeschlagen" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "Fehler beim Schreiben: /tmp/positionersetup.log" + +#, python-format +msgid "Fan %d" +msgstr "Lüfter %d" + +#, python-format +msgid "Fan %d PWM" +msgstr "Lüfter %d PWM" + +#, python-format +msgid "Fan %d voltage" +msgstr "Lüfter %d Spannung" + +msgid "Fan operation" +msgstr "Lüfterbetriebszustand" + +msgid "Fan speed" +msgstr "Lüftergeschwindigkeit" + +msgid "Fast" +msgstr "Schnell" + +msgid "Fast DiSEqC" +msgstr "Schnelles DiSEqC" + +msgid "Fast Scan" +msgstr "Fast-Scan" + +msgid "Fast epoch" +msgstr "Schnell Zeitraum" + +msgid "Fast forward speeds" +msgstr "Schnellvorlauf-Geschwindigkeiten" + +msgid "Favourites" +msgstr "Favoriten" + +msgid "File appears to be busy.\n" +msgstr "Die Datei ist gerade in Verwendung.\n" + +msgid "Filesystem check" +msgstr "Dateisystemüberprüfung" + +msgid "Final position at" +msgstr "Endposition auf" + +msgid "Final position at index" +msgstr "Endposition auf Index" + +msgid "Fine movement" +msgstr "Fein-Steuerung" + +msgid "Finetune" +msgstr "Feineinst." + +msgid "Finished" +msgstr "Beendet" + +msgid "Finished configuring your network" +msgstr "Netzwerk-Konfiguration abgeschlossen" + +msgid "Finished restarting your network" +msgstr "Netzwerkneustart abgeschlossen" + +msgid "Finnish" +msgstr "Finnisch" + +msgid "Fixed" +msgstr "Fixiert" + +msgid "Flash" +msgstr "Flash" + +msgid "Flashing failed" +msgstr "Flashen fehlgeschlagen" + +msgid "Following tasks will be done after you press OK!" +msgstr "Folgendes wird ausgeführt, nachdem Sie OK gedrückt haben!" + +msgid "Format" +msgstr "Formatieren" + +msgid "Forward volume keys" +msgstr "Lautstärketasten weiterleiten" + +msgid "Frame size in full view" +msgstr "Framegröße im Vollbild" + +msgid "French" +msgstr "Französisch" + +msgid "Frequency" +msgstr "Frequenz" + +msgid "Frequency bands" +msgstr "Frequenzbänder" + +msgid "Frequency scan step size(khz)" +msgstr "Frequenz Schrittweite (kHz)" + +msgid "Frequency steps" +msgstr "Frequenz Schritte" + +msgid "Frequency:" +msgstr "Frequenz:" + +msgid "Fri" +msgstr "Fr" + +msgid "Friday" +msgstr "Freitag" + +msgid "From :" +msgstr "Von:" + +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Frontprozessor-Version: %d" + +msgid "Full transparency" +msgstr "Volle Transparenz" + +msgid "Fulview resulution" +msgstr "Auflösung Vollansicht" + +msgid "Function of OK button" +msgstr "Funktion der OK Taste" + +msgid "Further Options" +msgstr "Weitere Optionen" + +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"Das System muss neu gestartet werden,\n" +"um das neue Aussehen übernehmen zu können.\n" +"Wollen Sie jetzt neu starten?" + +msgid "Gateway" +msgstr "Gateway" + +msgid "General AC3 delay" +msgstr "Allgemeine AC3 Verzögerung" + +msgid "General PCM delay" +msgstr "Allgemeine PCM Verzögerung" + +msgid "Genre" +msgstr "Kategorie" + +msgid "German" +msgstr "Deutsch" + +msgid "Get latest experimental image" +msgstr "Neuestes Experimental-Image" + +msgid "Get latest release image" +msgstr "Neuestes Release-Image" + +msgid "Getting plugin information. Please wait..." +msgstr "Lade Plugin-Informationen. Bitte warten..." + +msgid "Go down the list" +msgstr "Liste nach unten durchgehen" + +msgid "Go to first movie or last item" +msgstr "Zum ersten Film oder letzten Eintrag springen" + +msgid "Go to first movie or top of list" +msgstr "Zum ersten Film oder ersten Eintrag springen" + +msgid "Go to first service" +msgstr "Springe zum ersten Kanal" + +msgid "Go to last service" +msgstr "Springe zum letzten Kanal" + +msgid "Go to next event" +msgstr "Springe zur nächsten Sendung" + +msgid "Go to next page of service" +msgstr "Springe zur nächsten Kanal-Seite" + +msgid "Go to previous event" +msgstr "Springe zur vorherigen Sendung" + +msgid "Go to previous page of service" +msgstr "Springe zur vorherigen Kanal-Seite" + +msgid "Go up the list" +msgstr "Liste nach oben durchgehen" + +msgid "Goto" +msgstr "Gehe zu" + +msgid "Goto 0" +msgstr "Gehe zu 0" + +msgid "Goto :" +msgstr "Gehe zu:" + +msgid "Goto X" +msgstr "Gehe zu X" + +msgid "Goto index position" +msgstr "Gehe zur Index Position" + +msgid "Goto next day of events" +msgstr "Springe zum nächsten Tag mit Sendungen" + +msgid "Goto next page of events" +msgstr "Springe zur nächsten Seite mit Sendungen" + +msgid "Goto position" +msgstr "Zu Position springen" + +msgid "Goto previous day of events" +msgstr "Springe zum vorherigen Tag mit Sendungen" + +msgid "Goto previous page of events" +msgstr "Springe zur vorherigen Seite mit Sendungen" + +msgid "Goto specific date/time" +msgstr "Springe zum angegebenen Datum/Uhrzeit" + +msgid "GotoX calibration" +msgstr "Gehe zur X Kalibrierung" + +msgid "GraphMultiEpg Settings" +msgstr "GraphMultiEpg Einstellungen" + +msgid "Graphical Multi EPG" +msgstr "Grafischer Multi-EPG" + +msgid "Greek" +msgstr "Griechisch" + +msgid "Green boost" +msgstr "Grünanteil erhöhen" + +msgid "Guard interval" +msgstr "Guard Intervall" + +msgid "HD list" +msgstr "HD Liste" + +msgid "HDMI-CEC setup" +msgstr "HDMI-CEC Konfiguration" + +msgid "Handle standby from TV" +msgstr "Receiver mit Fernseher in den Standby versetzen" + +msgid "Handle wakeup from TV" +msgstr "Receiver mit Fernseher aufwachen" + +msgid "Hard disk" +msgstr "Festplatte" + +msgid "Hard disk setup" +msgstr "Festplatten-Einstellungen" + +msgid "Hard disk standby after" +msgstr "Festplatten-Standby nach" + +msgid "Harddisk" +msgstr "Festplatte" + +msgid "Hardware: " +msgstr "Hardware: " + +msgid "Hebrew" +msgstr "Hebräisch" + +msgid "Helps setting up your dish" +msgstr "Hilfe zur Einrichten der Antenne" + +msgid "Hidden network" +msgstr "Verstecktes Netzwerk" + +msgid "Hide CI messages" +msgstr "Verberge CI Nachrichten" + +msgid "Hide channel list in radio mode" +msgstr "Verberge Senderliste im Radio-Modus" + +msgid "Hide known extensions" +msgstr "Bekannte Erweiterungen ausblenden" + +msgid "Hide number markers" +msgstr "Verberge Nummer-Marker" + +msgid "Hide player" +msgstr "Player ausblenden" + +msgid "Hide zap errors" +msgstr "Verberge Zap-Fehler" + +msgid "Hierarchy info" +msgstr "Hierarchie Information" + +msgid "Hierarchy information" +msgstr "Hierarchie Information" + +msgid "High bitrate support" +msgstr "Kann hohe Datenraten verarbeiten" + +msgid "Hold screen" +msgstr "Bild halten" + +msgid "Hold till locked" +msgstr "Halte Bild bis Abschluß" + +msgid "Home" +msgstr "Home" + +msgid "Horizontal" +msgstr "Horizontal" + +msgid "Horizontal turning speed" +msgstr "Horizontale Drehgeschwindigkeit" + +msgid "How many minutes do you want to record?" +msgstr "Wie viele Minuten möchten Sie aufnehmen?" + +msgid "Hue" +msgstr "Farbton" + +msgid "Hungarian" +msgstr "Ungarisch" + +msgid "IP address" +msgstr "IP-Adresse" + +msgid "ISO file is too large for this filesystem!" +msgstr "Die ISO-Datei passt nicht auf das Dateisystem!" + +msgid "ISO path" +msgstr "ISO-Ausgabepfad" + +msgid "Icons" +msgstr "Symbole" + +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"Wenn Sie diese Meldung sehen, ist Ihr\n" +"Scart-Kabel falsch angeschlossen. Bitte OK\n" +"drücken, um zurück zu gelangen." + +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is " +"something called \"dynamic\", set it to standard. Adjust the backlight level " +"to a value suiting your taste. Turn down contrast on your TV as much as " +"possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the " +"two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next " +"step.\n" +"If you are happy with the result, press OK." +msgstr "" +"Falls Ihr Fernseher über Helligkeits- oder Kontraststeigerung verfügt, " +"deaktivieren Sie diese. Falls es eine \"Dynamik\"-Einstellung gibt, sollte " +"sie auf Standard gesetzt werden. Verändern Sie die Intensität der " +"Hintergrundbeleuchtung nach Ihrem Geschmack. Verringern Sie den Kontrast " +"Ihres Fernsehers soweit wie möglich.\n" +"Verringern Sie anschließend die Helligkeit soweit wie möglich. Stellen Sie " +"dabei sicher, dass die beiden untersten Grauschattierungen erkennbar " +"bleiben. Die hellen Schattierungen werden im folgenden Schritt eingestellt.\n" +"Drücken Sie OK, wenn Sie mit dem Ergebnis zufrieden sind." + +msgid "Image: " +msgstr "Image: " + +msgid "Immediate shutdown" +msgstr "Direkt runterfahren" + +msgid "" +"In order to record a timer, the TV was switched to the recording service!\n" +msgstr "" +"Um die Timeraufnahme durchführen zu können, wurde auf den aufzunehmenden " +"Sender umgeschaltet!\n" + +msgid "In progress" +msgstr "In Bearbeitung" + +msgid "Inactivity Sleeptimer" +msgstr "Inaktivität-Sleeptimer" + +msgid "Include AIT in http streams" +msgstr "Integriere AIT in HTTP-Streams" + +msgid "Include ECM in http streams" +msgstr "Integriere ECM in HTTP-Streams" + +msgid "Include EIT in http streams" +msgstr "Integriere EIT in HTTP-Streams" + +msgid "Incorrect type service for PiP!" +msgstr "Nicht unterstützter Dienst für PiP!" + +msgid "Increased voltage" +msgstr "Erhöhte Spannung" + +msgid "Index" +msgstr "Index" + +msgid "Index allocated:" +msgstr "Index zugeordnet:" + +msgid "Info" +msgstr "Info" + +msgid "Info bar" +msgstr "Infoleiste" + +msgid "Info bar timeout" +msgstr "Infoleiste-Anzeigedauer" + +msgid "Infobar frontend data source" +msgstr "Infobar Frontend Datenquelle" + +msgid "Information" +msgstr "Informationen" + +msgid "Init" +msgstr "Initialisieren" + +msgid "Initial fast forward speed" +msgstr "Initiale Schnellvorlauf-Geschwindigkeit" + +msgid "Initial location in new timers" +msgstr "Initialer Ort für neue Timer" + +msgid "Initial lock ratio" +msgstr "Initiales Signalverhältnis" + +msgid "Initial rewind speed" +msgstr "Initiale Rücklauf-Geschwindigkeit" + +msgid "Initial signal quality" +msgstr "Initiale Signal Qualität" + +msgid "Initial signal quality:" +msgstr "Initiale Signal Qualität:" + +msgid "Initialization" +msgstr "Initialisierung" + +msgid "Initialize" +msgstr "Initialisieren" + +msgid "Initializing storage device..." +msgstr "Initalisiere Laufwerk...." + +msgid "Input" +msgstr "Eingabe" + +msgid "Input device setup" +msgstr "Eingabegeräte Setup" + +msgid "Input devices" +msgstr "Eingabegeräte" + +msgid "Install" +msgstr "Installiere" + +msgid "Install a new image with a USB stick" +msgstr "Neues Image mittels USB Stick installieren" + +msgid "Install a new image with your web browser" +msgstr "Neues Image mittels Webbrowser installieren" + +msgid "Install channel list" +msgstr "Kanalliste hinzufügen" + +msgid "Install extensions" +msgstr "Installiere Plugins (Erweiterungen)" + +msgid "Install extensions." +msgstr "Erweiterungen installieren." + +msgid "Install local extension" +msgstr "Lokale Erweiterungen installieren" + +msgid "Install picons on" +msgstr "Picons installieren auf" + +msgid "Install softcam" +msgstr "Installiere Softcam" + +msgid "Installation has completed." +msgstr "Installation abgeschlossen" + +msgid "Installation or removal has completed." +msgstr "Installation oder Deinstallation abgeschlossen." + +msgid "Installing" +msgstr "Installiere" + +msgid "Installing software..." +msgstr "Installiere Software. Bitte warten..." + +msgid "Instant recording location" +msgstr "Sofortaufnahme-Verzeichnis" + +msgid "Instant recording..." +msgstr "Sofortaufnahme..." + +msgid "Interface: " +msgstr "Interface: " + +msgid "Intermediate" +msgstr "Fortgeschritten" + +msgid "Internal flash" +msgstr "Interner Flash" + +msgid "Internal hdd only" +msgstr "Nur interne Festplatte" + +msgid "Interval between keys when repeating:" +msgstr "Intervall bei der Tastenwiederholung:" + +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Ungültiges Verzeichnis ausgewählt: %s" + +msgid "Invalid location" +msgstr "Fehlerhafter Ort" + +msgid "Invalid transponder data" +msgstr "Ungültige Transponderdaten" + +msgid "Inversion" +msgstr "Inversion" + +msgid "Invert" +msgstr "Umkehren" + +msgid "Ipkg" +msgstr "Ipkg" + +msgid "Is this setting ok?" +msgstr "Diese Einstellungen übernehmen?" + +msgid "Is this video mode ok?" +msgstr "Diesen Videomodus beibehalten?" + +msgid "Italian" +msgstr "Italienisch" + +msgid "Items per page " +msgstr "Objekte pro Seite" + +msgid "Items per page for list screen" +msgstr "Objekte pro Seite für Listen Modus" + +msgid "Job overview" +msgstr "Jobansicht" + +msgid "Jump to beginning of list" +msgstr "Springe zum Beginn der Liste" + +msgid "Jump to end of list" +msgstr "Springe zum Ende der Liste" + +msgid "Jump to next marked position" +msgstr "Springe zur nächsten Markerposition" + +msgid "Jump to previous marked position" +msgstr "Springe zur vorherigen Markerposition" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +msgid "Just scale" +msgstr "Nur Skalieren" + +msgid "Keep service" +msgstr "Aktueller Sender" + +msgid "Kernel version: " +msgstr "Kernel Version: " + +msgid "Keyboard" +msgstr "Tastatur" + +msgid "Keyboard map" +msgstr "Tastaturlayout" + +msgid "Keyboard setup" +msgstr "Tastatureinstellung" + +msgid "LAN adapter" +msgstr "Netzwerkadapter" + +msgid "LAN connection" +msgstr "LAN Verbindung" + +msgid "LNB" +msgstr "LNB" + +msgid "Language" +msgstr "Sprache" + +msgid "Language selection" +msgstr "Sprachauswahl" + +msgid "Last config" +msgstr "Letzte Konfiguration" + +msgid "Last speed" +msgstr "Letzte Geschwindigkeit" + +msgid "Last upgrade: " +msgstr "Letztes Update: " + +msgid "Latest Commits" +msgstr "Letzte Änderungen" + +msgid "Latitude" +msgstr "Breitengrad" + +msgid "Latvian" +msgstr "Lettisch" + +msgid "Leave DVD player?" +msgstr "DVD Player beenden?" + +msgid "Left" +msgstr "Links" + +msgid "Left from servicename" +msgstr "Links vom Sendernamen" + +msgid "Leisure hobbies" +msgstr "Freizeitbeschäftigungen" + +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Letterbox" + +msgid "Letterbox zoom" +msgstr "Letterbox Zoom" + +msgid "Limit character set for recording filenames" +msgstr "Reduzierter Zeichensatz für Aufnahme-Dateinamen" + +msgid "Limit east" +msgstr "Ost-Limit" + +msgid "" +"Limit the characters that can be used in recording filenames to (7 bit) " +"ascii. This ensures compatibility with operating systems or file systems " +"with limited character sets." +msgstr "" +"Reduziere Zeichensatz für Aufnahme-Dateinamen auf 7 bit ASCII. Dies " +"garantiert die Kompatibilität mit Betriebs- und Dateisystemen mit " +"reduzierten Zeichensatz." + +msgid "Limit west" +msgstr "West-Limit" + +msgid "Limits cancelled" +msgstr "Limits nicht übernommen" + +msgid "Limits enabled" +msgstr "Limits aktiviert" + +msgid "Limits off" +msgstr "Limits ausschalten" + +msgid "Limits on" +msgstr "Limits aktiviert" + +msgid "Link quality:" +msgstr "Verbindungsqualität:" + +msgid "Link:" +msgstr "Verbindung:" + +msgid "Linked titles with a DVD menu" +msgstr "Verknüpfte Titel mit einem DVD-Menü" + +msgid "List EPG functions..." +msgstr "Liste der EPG Funktionen..." + +msgid "List available networks" +msgstr "Zeige verfügbare Netzwerke" + +msgid "List mode" +msgstr "Listen Modus" + +msgid "List of storage devices" +msgstr "Speichergeräteliste" + +msgid "List type" +msgstr "Listen Typ" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "Listen Version %d, %d Kanal gefunden" +msgstr[1] "Listen Version %d, %d gefundene Kanäle" + +msgid "Listen to the radio..." +msgstr "Radio hören..." + +msgid "Lists reloaded!" +msgstr "Listen neu geladen!" + +msgid "Lithuanian" +msgstr "Litauisch" + +msgid "Load" +msgstr "Laden" + +msgid "Load Length of Movies in Movielist" +msgstr "Laden der Spielzeit in der Filmliste" + +msgid "Load length of movies in movie list" +msgstr "Laden der Spielzeit in der Filmliste" + +msgid "Load playlist" +msgstr "Wiedergabeliste laden" + +msgid "Local network" +msgstr "Lokales Netzwerk" + +msgid "Location" +msgstr "Zielverzeichnis" + +msgid "Location for instant recordings" +msgstr "Verzeichnis für Sofortaufnahmen" + +msgid "Lock ratio" +msgstr "Signalverhältnis" + +msgid "Lock:" +msgstr "Signal:" + +msgid "Log results to harddisk" +msgstr "Ergebnisse auf die Festplatte schreiben" + +msgid "Long filenames" +msgstr "Lange Dateinamen" + +msgid "Long key press" +msgstr "langer Tastendruck" + +msgid "Longitude" +msgstr "Längengrad" + +msgid "Loop through to" +msgstr "Durchschleifen zu" + +msgid "Luxembourgish" +msgstr "Luxemburgisch" + +msgid "MMC card" +msgstr "MMC-Karte" + +msgid "MORE" +msgstr "MEHR" + +msgid "Main menu" +msgstr "Hauptmenü" + +msgid "Maintain old EPG data for" +msgstr "Behalte abgelaufene EPG-Daten (in Minuten)" + +msgid "Make this mark an 'in' point" +msgstr "Aus dieser Markierung einen \"innen\"-Punkt machen" + +msgid "Make this mark an 'out' point" +msgstr "Aus dieser Markierung einen \"außen\"-Punkt machen" + +msgid "Make this mark just a mark" +msgstr "Aus dieser Markierung nur eine Markierung machen" + +msgid "Manage extensions" +msgstr "Erweiterungen verwalten" + +msgid "Manage your receiver's software" +msgstr "Verwalten Sie die Software des Receivers." + +msgid "Manual" +msgstr "Benutzerhandbuch" + +msgid "Manual Scan" +msgstr "Manuelle Suche" + +msgid "Manual configuration" +msgstr "Manuelle Konfiguration" + +msgid "Manual scan" +msgstr "Manuelle Suche" + +msgid "Manual transponder" +msgstr "Manueller Transponder" + +msgid "Manufacturer" +msgstr "Hersteller" + +msgid "Margin after recording (minutes)" +msgstr "Nachlauf hinter Aufnahme (in Minuten)" + +msgid "Margin before recording (minutes)" +msgstr "Vorlauf bei Aufnahme (in Minuten)" + +msgid "Max memory positions" +msgstr "Höchste Position speichern" + +msgid "Max. bitrate: " +msgstr "Max. Bitrate: " + +msgid "Media player" +msgstr "Media Player" + +msgid "Media scanner" +msgstr "Media Player" + +msgid "Medium is not a writeable DVD!" +msgstr "Das Medium ist keine beschreibbare DVD!" + +msgid "Medium is not empty!" +msgstr "Das Medium ist nicht leer!" + +msgid "Memory" +msgstr "Speicher" + +msgid "Memory index" +msgstr "Index speichern" + +msgid "Menu" +msgstr "Menu" + +msgid "Message" +msgstr "Nachricht" + +msgid "Message..." +msgstr "Nachricht..." + +#, python-format +msgid "Minimum age %d years" +msgstr "Mindestalter %d Jahre" + +msgid "Minimum send interval" +msgstr "Sendeintervall Mininum" + +msgid "Missing " +msgstr "Fehlend" + +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Modus" + +msgctxt "Video output mode" +msgid "Mode" +msgstr "Modus" + +msgid "Model: " +msgstr "Modell:" + +msgid "Modulation" +msgstr "Modulation" + +msgid "Modulator" +msgstr "Modulator" + +msgid "Mon" +msgstr "Mo" + +msgid "Mon-Fri" +msgstr "Montag bis Freitag" + +msgid "Monday" +msgstr "Montag" + +msgid "Mosquito noise reduction" +msgstr "Mosquito Noise Reduzierung" + +msgid "Mount" +msgstr "Einhängen" + +msgid "Move" +msgstr "Verschieben" + +msgid "Move PiP to main picture" +msgstr "Bild im Bild tauschen und beenden" + +msgid "Move Picture in Picture" +msgstr "Verschiebe Bild im Bild" + +msgid "Move east" +msgstr "Drehen nach Osten" + +msgid "Move to other directory" +msgstr "In anderes Verzeichnis verschieben" + +msgid "Move to position X" +msgstr "Drehe zur Position X" + +msgid "Move west" +msgstr "Drehen nach Westen" + +msgid "Moved to position 0" +msgstr "Zur Position 0 bewegt" + +msgid "Moved to position at index" +msgstr "Zur Index Position bewegt" + +msgid "Movement" +msgstr "Steuerung" + +msgid "Movie List Configuration" +msgstr "Filmlisten Einstellungen" + +msgid "Movie Selection" +msgstr "Filmauswahl" + +msgid "Movie list configuration" +msgstr "Filmlisten Einstellungen" + +msgid "Movie location" +msgstr "Film Verzeichnis" + +msgid "Movie selection" +msgstr "Filmauswahl" + +msgid "Movie/Drama" +msgstr "Film/Drama" + +msgid "Movielist menu" +msgstr "Aufnahmen-Menü" + +msgid "Moving" +msgstr "Ansteuern" + +msgid "Moving east ..." +msgstr "Bewege östlich ..." + +msgid "Moving to position" +msgstr "Bewege zur Position" + +msgid "Moving west ..." +msgstr "Bewege westlich ..." + +msgid "Multi EPG" +msgstr "Multi-EPG" + +msgid "Multi-EPG bouquet selection" +msgstr "Multi-EPG Bouquet Auswahl" + +msgid "Multimedia" +msgstr "Multimedia" + +msgid "Multiple service support" +msgstr "Kann mehrere Sender entschlüsseln" + +msgid "Multiplex" +msgstr "Multiplex" + +msgid "Multisat" +msgstr "Multisat" + +msgid "Multisat all select" +msgstr "Multisat alle auswählen" + +msgid "Music/Ballet/Dance" +msgstr "Musik/Ballett/Tanz" + +msgid "Mute" +msgstr "Stummschaltung" + +msgid "N/A" +msgstr "N/V" + +msgid "NEXT" +msgstr "Danach" + +msgid "NFI image flashing" +msgstr "NFI Image Flashing" + +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "" +"NFI Image Flashen beendet.\n" +"Drücken Sie Gelb für einen Neustart!" + +msgid "NIM" +msgstr "NIM" + +msgid "NOW" +msgstr "Jetzt" + +msgid "NTSC" +msgstr "NTSC" + +msgid "Name" +msgstr "Name" + +msgid "Nameserver" +msgstr "Nameserver" + +#, python-format +msgid "Nameserver %d" +msgstr "Nameserver %d" + +msgid "Nameserver settings" +msgstr "DNS-Einstellungen" + +msgid "Nameserver setup" +msgstr "DNS-Einstellungen" + +msgid "Namespace" +msgstr "Namensraum" + +msgid "Netmask" +msgstr "Netzmaske" + +msgid "Network" +msgstr "Netzwerk" + +msgid "Network ID" +msgstr "Netzwerk ID" + +msgid "Network configuration..." +msgstr "Netzwerk-Konfiguration" + +msgid "Network mount" +msgstr "Netzwerk-Freigaben" + +#, python-format +msgid "Network mount %s" +msgstr "Netzwerk Mount %s" + +msgid "Network name (SSID)" +msgstr "Netzwerkname (SSID)" + +msgid "Network scan" +msgstr "Netzwerksuche" + +msgid "Network setup" +msgstr "Netzwerkeinstellungen" + +msgid "Network test" +msgstr "Netzwerk Test" + +msgid "Network test..." +msgstr "Netzwerk Test..." + +msgid "Network test: " +msgstr "Netzwerk Test:" + +msgid "Network wizard" +msgstr "Netzwerkassistent" + +msgid "Network:" +msgstr "Netzwerk:" + +msgid "New" +msgstr "Neu" + +msgid "New PIN" +msgstr "Neuer PIN" + +msgid "New version:" +msgstr "Neue Version:" + +msgid "News Current Affairs" +msgstr "Nachrichten/Aktuelles Tagesgeschehen" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "Vor" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "Danach" + +msgid "No" +msgstr "Nein" + +msgid "No (supported) DVDROM found!" +msgstr "Kein (unterstütztes) DVD-Laufwerk gefunden!" + +msgid "No Connection" +msgstr "Keine Verbindung" + +msgid "No HDD found or HDD not initialized!" +msgstr "" +"Keine Festplatte gefunden oder\n" +"Festplatte nicht initialisiert." + +msgid "No backup needed" +msgstr "Keine Sicherung benötigt" + +msgid "No cable tuner found!" +msgstr "Kein Kabelempfänger gefunden!" + +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Keine Daten auf dem Transponder!\n" +"(Zeit lief beim Lesen der PAT ab)" + +msgid "No delay" +msgstr "Keine Verzögerung" + +msgid "No description available." +msgstr "Keine Beschreibung verfügbar." + +msgid "No details for this image file" +msgstr "Keine Details zum Image verfügbar" + +msgid "No displayable files on this medium found!" +msgstr "Keine anzeigbaren Dateien auf diesem Medium gefunden!" + +msgid "No event info found, recording indefinitely." +msgstr "Keine EPG-Daten gefunden. Starte unbegrenzte Aufnahme." + +msgid "" +"No fast winding possible yet.. but you can use the number buttons to skip " +"forward/backward!" +msgstr "" +"Spulen nicht möglich, aber Sie können mit Hilfe der Zahlen-Tasten springen!" + +msgid "No free index available" +msgstr "Kein freier Index verfügbar" + +msgid "No free tuner!" +msgstr "Kein freier Tuner" + +msgid "No network connection available." +msgstr "Keine Netzwerkverbindung verfügbar." + +msgid "No networks found" +msgstr "Keine Netzwerke gefunden" + +msgid "No new plugins found" +msgstr "Keine neuen Plugins gefunden" + +msgid "No positioner capable frontend found." +msgstr "Keinen rotortauglichen Tuner gefunden." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" +"Keine Satelliten konfigriert. Bitte die Tuner-Konfiguration überprüfen." + +msgid "No service" +msgstr "Kein Service" + +msgid "No services/providers selected" +msgstr "Keine Kanäle/Provider ausgewählt" + +msgid "No standby" +msgstr "Kein Standby" + +msgid "No suitable sat tuner found!" +msgstr "Kein Satellitenempfänger gefunden!" + +msgid "No tags are set on these movies." +msgstr "Keine Tags für diese Filme gesetzt." + +msgid "No timeout" +msgstr "Kein Timeout" + +msgid "No to all" +msgstr "Nein zu allen" + +msgid "No transparency" +msgstr "Keine Transparenz" + +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "" +"Es wurde kein Tuner für die Benutzung eines DiSEqC-Rotors konfiguriert." + +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Kein Tuner konfiguriert!\n" +"Bitte die Tuner konfigurieren, bevor die Kanalsuche gestartet wird." + +msgid "No updates available" +msgstr "Keine Updates verfügbar" + +msgid "No updates available. Please try again later." +msgstr "Keine Updates verfügbar. Bitte später nochmal versuchen." + +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Kein gültiger Kanal-PIN gefunden!\n" +"Wollen Sie den Kanal-PIN jetzt ändern?\n" +"Wenn Sie 'Nein' wählen, bleibt der Senderschutz deaktiviert!" + +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Kein gültiger Kanal-PIN gefunden!\n" +"Wollen Sie den Kanal-PIN jetzt ändern?\n" +"Wenn Sie 'Nein' wählen, bleibt der Einstellungen-Schutz deaktiviert!" + +msgid "No wireless networks found! Searching..." +msgstr "Keine Funk-Netzwerke gefunden! Suche ..." + +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is " +"configured correctly." +msgstr "" +"Kein funktionierender Netzwerkadapter gefunden.\n" +"Stellen Sie sicher, dass Sie ein Netzwerkkabel angeschlossen haben und das " +"Ihr Netzwerk richtig konfiguriert ist." + +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your " +"network is configured correctly." +msgstr "" +"Kein funktionierender WLAN-Netzwerkadapter gefunden.\n" +"Stellen Sie sicher, dass Sie ein kompatibles Gerät angeschlossen haben oder " +"aktivieren Sie den internen Netzwerkadapter." + +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable " +"your local network interface." +msgstr "" +"Keine funktionierende WLAN-Verbindung gefunden.\n" +"Bitte prüfen Sie, ob Sie ein kompatibles WLAN-Gerät angeschlossen haben oder " +"aktivieren Sie die LAN-Verbindung." + +msgid "No, but restart from begin" +msgstr "Nein, aber von Anfang an neu beginnen" + +msgid "No, do nothing." +msgstr "Nein, nichts tun" + +msgid "No, just start my receiver" +msgstr "Nein, starte nur den Receiver" + +msgid "No, never" +msgstr "Nein, niemals" + +msgid "None" +msgstr "Keine" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Nicht linear" + +msgid "Normal mode" +msgstr "Normal Modus" + +msgid "North" +msgstr "Nord" + +msgid "Norwegian" +msgstr "Norwegisch" + +msgid "Not associated" +msgstr "Nicht verbunden" + +msgid "Not configured" +msgstr "Nicht konfiguriert" + +#, python-format +msgid "" +"Not enough disk space. Please free up some disk space and try again. (%d MB " +"required, %d MB available)" +msgstr "" +"Nicht genügend freier Speicherplatz. Bitte löschen Sie nicht mehr benötigte " +"Dateien und versuchen es erneut. (%d MB benötigt, %d MB verfügbar)" + +msgid "Nothing connected" +msgstr "Nichts angeschlossen" + +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Nichts zu suchen!\n" +"Bitte den Tuner vor der Suche einstellen." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "Jetzt" + +msgid "Now playing" +msgstr "Wiedergabe läuft" + +msgid "" +"Now, use the contrast setting to turn up the brightness of the background as " +"much as possible, but make sure that you can still see the difference " +"between the two brightest levels of shades.If you have done that, press OK." +msgstr "" +"Benutzen Sie jetzt die Kontrastregelung, um die Helligkeit des Hintergrunds " +"so weit wie möglich zu erhöhen. Achten Sie darauf, dass der Unterschied " +"zwischen den beiden hellsten Schattierungen erkennbar bleibt. Drücken Sie " +"anschließend OK." + +msgid "OK" +msgstr "OK" + +msgid "OK, guide me through the upgrade process" +msgstr "OK, führen Sie mich durch den Aktualisierungsprozess" + +msgid "ONID" +msgstr "ONID" + +msgid "OSD name request" +msgstr "Benutzeroberflächen Anfrage" + +msgid "OSD settings" +msgstr "OSD-Einstellungen" + +msgid "OSD transparency" +msgstr "OSD-Transparenz" + +msgid "Off" +msgstr "Aus" + +msgid "Offline decode delay (ms)" +msgstr "Offline Entschlüsseln Verzögerung (ms)" + +msgid "Ok" +msgstr "OK" + +msgid "On" +msgstr "An" + +msgid "On end of movie" +msgstr "Beim Filmende" + +msgid "On end of movie (as menu)" +msgstr "Am Ende des Films (als Menü)" + +msgid "One" +msgstr "Eins" + +msgid "Only extensions." +msgstr "Nur Erweiterungen." + +msgid "Only free scan" +msgstr "Nur frei empfangbare" + +msgid "Open service list" +msgstr "Kanalliste öffnen" + +msgid "Open the movie list" +msgstr "Zurück zur Videoliste" + +msgid "Orbital position" +msgstr "Orbitale Position" + +msgid "Original" +msgstr "Original" + +msgid "Other" +msgstr "Andere" + +msgid "Output" +msgstr "Ausgabe" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "Konfigurationsdateien beim Software-Update überschreiben?" + +msgid "Overwrite configuration files?" +msgstr "Konfigurationsdateien überschreiben?" + +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "PCR PID" + +msgid "PIDs" +msgstr "PIDs" + +msgid "PIN code needed" +msgstr "PIN-Code benötigt" + +msgid "PLP ID" +msgstr "PLP ID" + +msgid "PMT PID" +msgstr "PMT PID" + +msgid "Package list update" +msgstr "Paketlistenaktualisierung" + +msgid "Packet management" +msgstr "Paketverwaltung" + +msgid "Packet manager" +msgstr "Paketmanager" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +msgid "Pan&scan" +msgstr "Pan&Scan" + +msgid "Parent directory" +msgstr "übergeordnetes Verzeichnis" + +msgid "Parental control" +msgstr "Jugendschutz" + +msgid "Parental control services editor" +msgstr "Jugendschutz-Kanaleditor" + +msgid "Parental control setup" +msgstr "Jugendschutz-Einstellungen" + +msgid "Parental control type" +msgstr "Jugendschutz-Typ" + +msgid "Password" +msgstr "Passwort" + +msgid "Pause" +msgstr "Pause" + +msgid "Pause movie at end" +msgstr "Am Filmende pausieren" + +msgid "Pause playback" +msgstr "Wiedergabe pausieren" + +msgid "Pauze/Continue playback" +msgstr "Wiedergabe anhalten/fortsetzen" + +msgid "Percentage left" +msgstr "Prozentangabe links" + +msgid "Percentage right" +msgstr "Prozentangabe rechts" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "Alle Aufnahmen im Mülleimer löschen?" + +msgid "Permanently remove all deleted items" +msgstr "Gelöschte Filme endgültig entfernen" + +msgid "Persian" +msgstr "Persisch" + +msgid "Phone number" +msgstr "Telefonnummer" + +msgid "PiP setup" +msgstr "Bild im Bild (PiP) - Einstellung" + +msgid "Picon" +msgstr "Picon" + +msgid "Picon and service name" +msgstr "Picon und Kanalname" + +msgid "Picture player" +msgstr "Bildbetrachter" + +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Pillarbox" + +msgid "Pilot" +msgstr "Pilot" + +msgid "Play" +msgstr "Abspielen" + +msgid "Play DVD" +msgstr "DVD abspielen" + +msgid "Play audio in background" +msgstr "Ton im Hintergrund abspielen" + +msgid "Play audio-CD..." +msgstr "Musik-CD abspielen..." + +msgid "Play back media files" +msgstr "Mediendateien wiedergeben" + +msgid "Play entry" +msgstr "Eintrag abspielen" + +msgid "Play from next mark or playlist entry" +msgstr "Wiedergabe ab der nächsten Markierung/Listeneintrag" + +msgid "Play from previous mark or playlist entry" +msgstr "Wiedergabe ab der letzten Markierung/Listeneintrag" + +msgid "Play music..." +msgstr "Musik abspielen..." + +msgid "Play next" +msgstr "Nächste wiedergeben" + +msgid "Play next (return to movie list)" +msgstr "Nächste wiedergeben (zur Filmliste zurückkehren)" + +msgid "Play next (return to previous service)" +msgstr "Nächste wiedergeben (zum vorherigen Kanal zurückkehren)" + +msgid "Play previous" +msgstr "Vorherige wiedergeben" + +msgid "Play recorded movies..." +msgstr "Aufgenommene Filme abspielen..." + +msgid "Please add titles to the compilation." +msgstr "Bitte fügen Sie Titel zur Ihrer Zusammenstellung hinzu." + +msgid "Please change recording endtime" +msgstr "Bitte Aufnahmeendzeit ändern" + +msgid "Please check your network settings!" +msgstr "Bitte überprüfen Sie Ihre Netzwerkeinstellungen" + +msgid "Please choose an extension..." +msgstr "Bitte eine Erweiterung auswählen..." + +msgid "" +"Please configure or verify your Nameservers by filling out the required " +"values.\n" +"When you are ready press OK to continue." +msgstr "" +"Konfigurieren Sie Ihre DNS-Server durch Ausfüllen der entsprechenden Werte.\n" +"Drücken Sie OK zum Fortfahren" + +msgid "" +"Please configure your internet connection by filling out the required " +"values.\n" +"When you are ready press OK to continue." +msgstr "" +"Konfigurieren Sie Ihr Netzwerk durch Ausfüllen der entsprechenden Werte.\n" +"Drücken Sie OK zum Fortfahren" + +msgid "Please connect your receiver to the internet" +msgstr "Bitte verbinden Sie Ihren Receiver mit dem Internet" + +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Bitte ändern Sie keine Werte, falls Sie nicht wissen, was Sie tun!" + +msgid "Please enter a name for the new bouquet" +msgstr "Bitte einen Namen für das neue Bouquet eingeben" + +msgid "Please enter a name for the new marker" +msgstr "Bitte einen Namen für den neuen Marker eingeben" + +msgid "Please enter a new filename" +msgstr "Bitte neuen Dateinamen eingeben" + +msgid "Please enter filename (empty = use current date)" +msgstr "Bitte einen Dateinamen eingeben (leer = Dateiname ist aktuelles Datum)" + +msgid "Please enter name of the new directory" +msgstr "Bitte den Namen des neuen Verzeichnisses eingeben" + +msgid "Please enter new name:" +msgstr "Bitte neuen Namen eingeben:" + +msgid "Please enter the correct pin code" +msgstr "Bitte den korrekten PIN-Code eingeben" + +msgid "Please enter the old PIN code" +msgstr "Bitte den alten PIN-Code eingeben" + +msgid "Please follow the instructions on the TV" +msgstr "Bitte folgen Sie den Angaben auf Ihrem Fernseher" + +msgid "" +"Please note that the previously selected media could not be accessed and " +"therefore the default directory is being used instead." +msgstr "" +"Auf das zuletzt ausgewählte Medium konnte nicht zugegriffen werden, daher " +"wird stattdessen das Standardverzeichnis benutzt." + +msgid "Please press OK to continue." +msgstr "Zum Fortfahren bitte OK drücken." + +msgid "Please select a default EPG type..." +msgstr "Bitte einen Standard-EPG-Typ wählen..." + +msgid "Please select a playlist to delete..." +msgstr "Bitte wählen Sie eine Wiedergabeliste zum Löschen..." + +msgid "Please select a playlist..." +msgstr "Bitte wählen Sie eine Wiedergabeliste..." + +msgid "Please select a sub service..." +msgstr "Bitte einen Unterkanal auswählen..." + +msgid "Please select a subservice to record..." +msgstr "Bitte einen Unterkanal zur Aufnahme auswählen..." + +msgid "Please select a subservice..." +msgstr "Bitte einen Unterkanal auswählen..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "" +"Bitte wählen Sie eine NFI-Datei aus und drücken Sie die grüne Taste zum " +"Flashen!" + +msgid "Please select medium to be scanned" +msgstr "Bitte Medium zum Scannen auswählen" + +msgid "Please select medium to use as backup location" +msgstr "Bitte wählen Sie einen Datenträger als Sicherungsziel aus" + +msgid "Please select tag to filter..." +msgstr "Bitte einen Tag zum Filtern auswählen..." + +msgid "Please select the movie path..." +msgstr "Bitte den Filmpfad angeben..." + +msgid "" +"Please select the network interface that you want to use for your internet " +"connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Bitte wählen Sie die Netzwerkschnittstelle welche Sie für Ihren " +"Internetzugang nutzen möchten.\n" +"\n" +"Drücken Sie OK zum Fortfahren" + +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Bitte wählen Sie das Funk-Netzwerk, zu dem Sie sich verbinden möchten.\n" +"\n" +"Drücken Sie OK zum Fortfahren." + +msgid "Please set up tuner A" +msgstr "Einstellungen für Tuner A." + +msgid "Please set up tuner B" +msgstr "Einstellungen für Tuner B." + +msgid "Please set up tuner C" +msgstr "Einstellungen für Tuner C." + +msgid "Please set up tuner D" +msgstr "Einstellungen für Tuner D." + +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Verschieben des 'Bild im Bild' über die Navigationstasten.\n" +"Bouquet +/-, um die Größe zu ändern.\n" +"OK zum Speichern, EXIT zum Abbrechen." + +msgid "" +"Please use the UP and DOWN keys to select your language. Afterwards press " +"the OK button." +msgstr "" +"Bitte benutzen Sie die Hoch/Runter-Tasten, um Ihre Sprache auszuwählen. " +"Danach drücken Sie bitte OK." + +msgid "Please wait" +msgstr "Bitte warten" + +msgid "Please wait (downloading channel list)" +msgstr "Bitte warten (Kanalliste wird geladen)..." + +msgid "Please wait (downloading softcam)" +msgstr "Bitte warten (softcam wird heruntergeladen)..." + +msgid "Please wait (updating packages)" +msgstr "Bitte warten (Paketupdates)..." + +msgid "Please wait for activation of your network configuration..." +msgstr "Bitte warten Sie, die Netzwerk-Konfiguration wird aktiviert." + +msgid "Please wait while scanning is in progress..." +msgstr "Bitte warten Sie, der Suchvorgang läuft." + +msgid "Please wait while we configure your network..." +msgstr "Bitte warten Sie, das Netzwerk wird konfiguriert." + +msgid "Please wait while we prepare your network interfaces..." +msgstr "Bitte warten Sie, das Netzwerk wird konfiguriert." + +msgid "Please wait while we test your network..." +msgstr "Bitte warten Sie, das Netzwerk wird überprüft." + +msgid "Please wait while your network is restarting..." +msgstr "Bitte warten Sie, das Netzwerk wird neu gestartet." + +msgid "Please wait..." +msgstr "Bitte warten..." + +msgid "Please wait... Loading list..." +msgstr "Bitte warten... Liste wird geladen..." + +msgid "Plugin browser" +msgstr "Plugin Browser" + +msgid "Plugin manager activity information" +msgstr "Pluginverwaltung: geplante Aktionen." + +msgid "Plugin manager help" +msgstr "Pluginverwaltung: Hilfe" + +msgid "Plugins" +msgstr "Plugins" + +msgid "Polarisation" +msgstr "Polarisation" + +msgid "Polarisation:" +msgstr "Polarisation:" + +msgid "Polarization" +msgstr "Polarisation" + +msgid "Polish" +msgstr "Polnisch" + +msgid "Port A" +msgstr "Port A" + +msgid "Port B" +msgstr "Port B" + +msgid "Port C" +msgstr "Port C" + +msgid "Port D" +msgstr "Port D" + +msgid "Portuguese" +msgstr "Portugiesisch" + +msgid "Position of completed timers in timerlist" +msgstr "Position beendeter Timer in der Timerliste" + +msgid "Position stored at index" +msgstr "Position gespeichert auf Index" + +msgid "Positioner" +msgstr "Rotor" + +msgid "Positioner (selecting satellites)" +msgstr "Positioner (Auswahl der Satelliten)" + +msgid "Positioner Setup" +msgstr "Rotor-Einstellungen" + +msgid "Positioner setup" +msgstr "Rotor-Einstellungen" + +msgid "Power threshold in mA" +msgstr "Strom Schwellwert in mA" + +msgid "Predefined transponder" +msgstr "Vordefinierte Transponder" + +msgid "Prefer AC3 track" +msgstr "Bevorzuge AC3" + +msgid "Prefer AC3+ track" +msgstr "Bevorzuge AC3+ Tonspur" + +msgid "Prefer audio track stored by service" +msgstr "Bevorzuge gespeicherte Tonspur des Senders" + +msgid "Prefer graphical DVB subtitles" +msgstr "Bevorzuge DVB-grafische Untertitel" + +msgid "Prefer subtitles for hearing impaired" +msgstr "Bevorzuge Untertitel für Hörgeschädigte" + +msgid "Prefer subtitles stored by service" +msgstr "Bevorzuge gespeicherten Untertitel des Senders" + +msgid "Preferred tuner" +msgstr "Bevorzugter Tuner" + +msgid "Preferred tuner for recordings" +msgstr "Bevorzugter Tuner für Aufnahmen" + +msgid "Prepare another USB stick for image flashing" +msgstr "Weiteren USB-Stick zum Image-Flashen vorbereiten" + +msgid "Preparing... Please wait" +msgstr "Vorbereitung läuft... Bitte warten" + +msgid "Press '0' to toggle PiP mode" +msgstr "Drücke '0' zum Umschalten des PiP-Modus" + +msgid "Press INFO on your remote control for additional information." +msgstr "INFO drücken für zusätzliche Informationen." + +msgid "Press MENU on your remote control for additional options." +msgstr "Menu drücken für zusätzliche Optionen." + +msgid "Press OK on your remote control to continue." +msgstr "OK drücken zum Fortfahren." + +msgid "Press OK to activate the selected skin." +msgstr "OK drücken, um den markierten Skin zu aktivieren." + +msgid "Press OK to activate the settings." +msgstr "OK drücken zum Aktivieren." + +msgid "Press OK to edit the settings." +msgstr "OK drücken zum Editieren." + +#, python-format +msgid "Press OK to get further details for %s" +msgstr "Drücken Sie OK, um weitere Details zu %s zu erhalten." + +msgid "Press OK to scan" +msgstr "Zum Starten der Suche OK drücken." + +msgid "Press OK to select a provider." +msgstr "Drücken Sie OK um einen Provider auszuwählen." + +msgid "Press OK to select satellites" +msgstr "Drücke OK zur Auswahl der Satelliten" + +msgid "Press OK to select/deselect a CAId." +msgstr "Drücken Sie OK, um eine CAID zu selektieren/deselektieren." + +msgid "Press OK to start the scan" +msgstr "Zum Starten der Suche OK drücken." + +msgid "Press OK to toggle the selection" +msgstr "Drücke OK zum Umschalten der Auswahl" + +msgid "Press OK to toggle the selection." +msgstr "Drücken Sie OK, um die Auswahl umzuschalten." + +msgid "Press yellow to set this interface as default interface." +msgstr "Drücken Sie Gelb, um diese Schnittstelle als Standard zu setzen." + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "Zurück" + +msgid "Preview" +msgstr "Vorschau" + +msgid "Preview menu" +msgstr "Vorschau des DVD-Menüs" + +msgid "Preview selected channel" +msgstr "Vorschau des ausgewählten Kanals" + +msgid "Primary DNS" +msgstr "Primärer DNS" + +msgid "Priority" +msgstr "Priorität" + +msgid "Process" +msgstr "Aktivitätsanzeige" + +msgid "Progress" +msgstr "Fortschritt" + +msgid "Progress bar left" +msgstr "Fortschrittsbalken links" + +msgid "Progress bar right" +msgstr "Fortschrittsbalken rechts" + +msgid "Properties of current title" +msgstr "Details zum ausgewählten Titel" + +msgid "Protect services" +msgstr "Kanäle schützen" + +msgid "Protect setup" +msgstr "Einstellungen schützen" + +msgid "Provider" +msgstr "Provider" + +msgid "Provider to scan" +msgstr "Zu durchsuchende Anbieter" + +msgid "Providers" +msgstr "Anbieter" + +msgid "Put TV in standby" +msgstr "Fernseher in den Standby versetzen" + +msgid "Put receiver in standby" +msgstr "A/V-Receiver in den Standby versetzen" + +msgid "Python frontend for /tmp/mmi.socket" +msgstr "Python frontend für /tmp/mmi.socket" + +msgid "Quick" +msgstr "Schnell" + +msgid "Quick zap" +msgstr "Schnellumschalter" + +msgid "RF output" +msgstr "RF-Ausgang" + +msgid "RGB" +msgstr "RGB" + +msgid "Radio" +msgstr "Radio" + +msgid "Ram disk" +msgstr "Ramdisk" + +msgid "Random" +msgstr "Zufällig" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "Bewertung der Sendeanstalt - %d" + +msgid "Rating undefined" +msgstr "Bewertung nicht verfügbar" + +msgid "Really close without saving settings?" +msgstr "Wirklich ohne Sichern beenden?" + +msgid "Really delete done timers?" +msgstr "Vollendete Timer wirklich löschen?" + +msgid "Really exit the subservices quickzap?" +msgstr "Den Subservices-Schnellumschalter wirklich beenden?" + +msgid "Really reboot now?" +msgstr "Wollen Sie trotzdem neu booten?" + +msgid "Really restart now?" +msgstr "Wollen Sie trotzdem neu starten?" + +msgid "Really shutdown now?" +msgstr "Wollen Sie trotzdem ausschalten?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "" +"Wollen Sie den Frontprozessor wirklich aktualisieren und anschließend neu " +"starten?" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "" +"Wollen Sie Ihren Receiver wirklich aktualisieren und anschließend neu " +"starten?" + +msgid "Reboot" +msgstr "Neustart" + +msgid "Rec" +msgstr "Rec" + +msgid "Reception settings" +msgstr "Empfangseinstellungen" + +msgid "Record" +msgstr "Aufnahme" + +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "Aufnahmezeit aufgrund des in Konflikt stehenden Timers %s begrenzt" + +msgid "Recorded files..." +msgstr "Aufgenommene Dateien..." + +msgid "Recording" +msgstr "Aufnahme" + +msgid "Recording in progress" +msgstr "Aktive Aufnahmen" + +msgid "Recording paths" +msgstr "Aufnahmepfade" + +msgid "Recording type" +msgstr "Aufnahmetyp" + +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "Zurzeit sind Aufnahmen aktiv oder starten gleich!" + +msgid "Recordings" +msgstr "Aufnahmen" + +msgid "Recordings always have priority" +msgstr "Aufnahmen haben immer Vorrang" + +msgid "Red button..." +msgstr "Rote Taste..." + +msgid "Reenter new PIN" +msgstr "Neuen PIN erneut eingeben" + +msgid "Refresh rate" +msgstr "Bildwiederholfrequenz" + +msgid "Refresh rate selection." +msgstr "Auswahl der Bildwiederholfrequenz." + +msgid "Regard deep standby as standby" +msgstr "Deep-Standby wie Standby behandeln" + +msgid "Relative" +msgstr "Relativ" + +msgid "Reload" +msgstr "Aktualisieren" + +msgid "Reload black-/white lists" +msgstr "Black-/Whitelists neu laden" + +msgid "Reloading bouquets and services..." +msgstr "Bouquets und Sender neu laden" + +msgid "Remember last service in PiP" +msgstr "Merke letzten PiP-Kanal" + +msgid "Remember service PIN" +msgstr "Kanal PIN merken" + +msgid "Remember these settings for each folder" +msgstr "Diese Einstellungen für jeden Ordner verwenden" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "Erinnerung zum Speichern der Timeshift-Datei." + +msgid "Remote control type" +msgstr "Typ der Fernbedienung" + +msgid "Removal has completed." +msgstr "Löschung abgeschlossen." + +msgid "Remove" +msgstr "Entfernen" + +msgid "Remove a mark" +msgstr "Markierung entfernen" + +msgid "Remove a nameserver entry" +msgstr "DNS-Servereintrag entfernen" + +msgid "Remove bookmark" +msgstr "Lesezeichen entfernen" + +msgid "Remove completed timers after (days)" +msgstr "Entferne abgeschlossene Timer nach (Tage)" + +msgid "Remove currently selected title" +msgstr "Entferne aktuell ausgewählten Titel" + +msgid "Remove items from trash can after (days)" +msgstr "Löschen aus Mülleimer nach (Tagen)" + +msgid "Remove plugins" +msgstr "Plugins entfernen" + +msgid "Remove title" +msgstr "Titel entfernen" + +msgid "Removing" +msgstr "Entferne" + +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Entfernen des Verzeichnisses %s fehlgeschlagen. (nicht leer?)" + +msgid "Removing partition table" +msgstr "Partitionstabelle erneut einlesen" + +msgid "Rename" +msgstr "Umbenennen" + +msgid "Repeat" +msgstr "Wiederholen" + +msgid "Repeat type" +msgstr "Wiederholungstyp" + +msgid "Repeating event currently recording... What do you want to do?" +msgstr "" +"Wiederholender Aufnahmetimer ist zurzeit aktiv...\n" +"Was wollen Sie machen?" + +msgid "Repeats" +msgstr "Wiederholungen" + +msgid "Require authentication for http streams" +msgstr "Authentifizierung für HTTP-Streams erforderlich" + +msgid "Required medium type:" +msgstr "Benötigte Rohlingsorte:" + +msgid "Rereading partition table" +msgstr "Partitionstabelle erneut einlesen" + +msgid "Reserved" +msgstr "Reserviert" + +msgid "Reset" +msgstr "Zurücksetzen" + +msgid "Reset and renumerate title names" +msgstr "Titelnamen zurücksetzen und neu nummerieren" + +msgid "Reset playback position" +msgstr "Wiedergabeposition zurücksetzen" + +msgid "Reset video enhancement settings to system defaults?" +msgstr "Erweiterte A/V-Einstellungen auf Standardwerte zurücksetzten?" + +msgid "Reset video enhancement settings to your last configuration?" +msgstr "" +"Erweiterte A/V-Einstellungen auf ihre letzte Konfiguration zurücksetzen?" + +msgid "Resolution" +msgstr "Auflösung" + +msgid "Restart" +msgstr "Neustart" + +msgid "Restart GUI now?" +msgstr "Benutzeroberfläche jetzt neu starten?" + +msgid "Restart enigma" +msgstr "Benutzeroberfläche neu starten" + +msgid "Restart network" +msgstr "Netzwerk neu starten" + +msgid "Restart test" +msgstr "Test wiederholen" + +msgid "Restart your network connection and interfaces.\n" +msgstr "Neustart der Netzwerk-Konfiguration des Receivers.\n" + +msgid "Restore" +msgstr "Zurückspielen" + +msgid "Restore backups" +msgstr "Einstellungen wiederherstellen" + +msgid "Restore is running..." +msgstr "Wiederherstellung wird ausgeführt..." + +msgid "Restore system settings" +msgstr "Einstellungen wiederherstellen" + +msgid "Restoring..." +msgstr "Wiederherstellung..." + +msgid "Resume from last position" +msgstr "An letzter Position fortsetzen" + +#, python-format +msgid "Resume position at %s" +msgstr "Wiedergabestart ab %s" + +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Setze Wiedergabe fort" + +msgid "Return to movie list" +msgstr "Zurück zur Videoliste" + +msgid "Return to previous service" +msgstr "Zurück zum letzten Service" + +msgid "Reverse bouquet buttons" +msgstr "Bouquet-Tasten invertieren" + +msgid "Reverse list" +msgstr "Liste umdrehen" + +msgid "Rewind speeds" +msgstr "Rücklauf-Geschwindigkeiten" + +msgid "Rewrap teletext subtitles" +msgstr "Teletext-Untertitel anders umbrechen" + +msgid "Right" +msgstr "Rechts" + +msgid "Right from servicename" +msgstr "Rechts vom Sendernamen" + +msgid "Roll-off" +msgstr "Roll-off" + +msgid "Romanian" +msgstr "Rumänisch" + +msgid "Root directory" +msgstr "Hauptverzeichnis" + +msgid "Rotor step position:" +msgstr "Rotor Schrittposition:" + +msgid "Rotor turning speed" +msgstr "Rotor Drehgeschwindigkeit" + +msgid "Round start time on" +msgstr "Runde Startzeit auf" + +msgid "Russian" +msgstr "Russisch" + +msgid "S-Video" +msgstr "S-Video" + +msgid "SID" +msgstr "SID" + +msgid "SINGLE LAYER DVD" +msgstr "SINGLE LAYER DVD" + +msgid "SNR" +msgstr "SNR" + +msgid "SNR:" +msgstr "SNR:" + +msgid "SSID:" +msgstr "SSID:" + +msgid "Same resolution as skin" +msgstr "Gleiche Auflösung wie der Skin" + +msgid "Sat" +msgstr "Sa" + +msgid "Satellite" +msgstr "Satellit" + +msgid "Satellite dish setup" +msgstr "Einstellungen der Satellitenschüssel" + +msgid "Satellite equipment" +msgstr "Satelliten-Ausrüstung" + +msgid "Satellite equipment setup" +msgstr "Satellitenausrüstungseinstellungen" + +msgid "Satellite longitude:" +msgstr "Satelliten Längengrad:" + +msgid "Satellites" +msgstr "Satelliten" + +msgid "Satfinder" +msgstr "Satelliten-Sucher" + +msgid "Sats" +msgstr "Satelliten" + +msgid "Saturation" +msgstr "Sättigung" + +msgid "Saturday" +msgstr "Samstag" + +msgid "Save" +msgstr "Speichern" + +msgid "Save playlist" +msgstr "Wiedergabeliste speichern" + +msgid "Save timeshift file" +msgstr "Timeshift-Datei speichern" + +msgid "Save timeshift file in movie directory" +msgstr "Timeshift-Datei in Filmordner speichern" + +msgid "Scaler sharpness" +msgstr "Skalierungsschärfe" + +msgid "Scaling mode" +msgstr "Skalierungsmodus" + +msgid "Scan" +msgstr "Suche " + +msgid "Scan " +msgstr "Suche " + +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, python-format +msgid "Scan %s" +msgstr "Suche %s" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, python-format +msgid "Scan %s band" +msgstr "Suche %s Band" + +msgid "Scan additional SR" +msgstr "Durchsuche weitere SR" + +msgid "Scan files..." +msgstr "Dateien durchsuchen" + +msgid "Scan wireless networks" +msgstr "WLAN-Netzwerke suchen" + +msgid "" +"Scan your network for wireless access points and connect to them using your " +"selected wireless device.\n" +msgstr "" +"Durchsucht Ihr Netzwerk nach WLAN-Zugangspunkten und stellt eine Verbindung " +"mit Hilfe Ihres gewählten WLAN-Gerätes her.\n" + +#, python-format +msgid "Scanning %s..." +msgstr "Suche %s..." + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "Suche - %d%% beendet" +msgstr[1] "Suche - %d%% beendet" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "Suche beendet, %d gefundener Kanal" +msgstr[1] "Suche beendet, %d Kanäle gefunden" + +msgid "Scanning failed!" +msgstr "Suche gescheitert!" + +msgid "Scanning..." +msgstr "Suche..." + +msgid "" +"Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "" +"Führt eine Sendersuche aller Satelliten durch, wenn Sie einen Rotor an Ihre " +"Satellitenschüssel angeschlossen haben." + +msgid "Search east" +msgstr "Östlich suchen" + +msgid "Search west" +msgstr "Westlich suchen" + +msgid "Searching" +msgstr "Durchsuche" + +msgid "Searching east ..." +msgstr "Suche östlich ..." + +msgid "Searching for available updates. Please wait..." +msgstr "Suche nach verfügbaren Updates. Bitte warten..." + +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "" +"Suche nach neu installierten oder deinstallierten Erweiterungen. Bitte " +"warten ..." + +msgid "Searching west ..." +msgstr "Suche westlich ..." + +msgid "Second cable of motorized LNB" +msgstr "Zweites Kabel für motorisiertes LNB" + +msgid "Secondary DNS" +msgstr "Sekundärer DNS" + +msgid "Seek" +msgstr "Spulen" + +msgid "Seek backward" +msgstr "Rückwärts spulen" + +msgid "Seek backward (enter time)" +msgstr "Rückwärts springen (Zeit eingeben)" + +msgid "Seek forward" +msgstr "Vorwärts spulen" + +msgid "Seek forward (enter time)" +msgstr "Vorwärts spulen (Zeit eingeben)" + +msgid "Select" +msgstr "Auswählen" + +msgid "Select CAId" +msgstr "CAID auswählen" + +msgid "Select HDD" +msgstr "Festplattenauswahl" + +msgid "Select a bouquet" +msgstr "Bouquet auswählen" + +msgid "Select a movie" +msgstr "Filmauswahl" + +msgid "Select a network adapter" +msgstr "Netzwerkadapter auswählen" + +msgid "Select a skin" +msgstr "Benutzeroberfläche wählen" + +msgid "Select a tuner" +msgstr "Tuner auswählen" + +msgid "Select a wireless network" +msgstr "Funk-Netzwerk auswählen" + +msgid "Select action" +msgstr "Wähle Vorgang" + +#, python-format +msgid "Select action for timer %s:" +msgstr "Wähle Aktion für Timer %s:" + +msgid "Select all" +msgstr "Alle auswählen" + +msgid "Select an image to be downloaded" +msgstr "Image zum Download auswählen" + +msgid "Select audio track" +msgstr "Wählen Sie eine Tonspur" + +msgid "Select backup files" +msgstr "Wählen Sie die zu sichernden Dateien" + +msgid "Select backup location" +msgstr "Wählen Sie den Sicherungsort" + +msgid "Select channel to record from" +msgstr "Kanal auswählen, von dem aufgenommen werden soll" + +msgid "Select copy destination for:" +msgstr "Wähle Zielverzeichnis für:" + +msgid "Select default EPG type..." +msgstr "Wähle Standard-EPG-Typ..." + +msgid "Select desired image from feed list" +msgstr "Bestimmtes Image vom Feed-Server herunterladen" + +msgid "Select destination for:" +msgstr "Wähle Ziel für:" + +msgid "Select files for backup." +msgstr "Dateien zum Sichern auswählen." + +msgid "Select files/folders to backup" +msgstr "Wählen Sie Dateien/Ordner für die Sicherung" + +msgid "Select input device" +msgstr "Eingabegerät auswählen." + +msgid "Select input device." +msgstr "Eingabegerät auswählen." + +msgid "Select interface" +msgstr "Netzwerkkarte auswählen" + +msgid "Select location" +msgstr "Pfad auswählen" + +msgid "Select movie" +msgstr "Filmauswahl" + +msgid "Select provider to add..." +msgstr "Wählen Sie einen Provider zum Hinzufügen" + +msgid "Select refresh rate" +msgstr "Wählen Sie eine Bildwiederholfrequenz" + +msgid "Select satellites" +msgstr "Wähle Satelliten" + +msgid "Select service to add..." +msgstr "Wählen Sie einen Kanal zum Hinzufügen" + +msgid "Select sort method:" +msgstr "Sortierungmodus festlegen:" + +msgid "Select target folder" +msgstr "Wähle Zielverzeichnis" + +msgid "Select the movie path" +msgstr "Den Filmpfad auswählen" + +msgid "Select upgrade source" +msgstr "Wählen Sie eine Update-Quelle" + +msgid "Select upgrade source to edit." +msgstr "Wählen Sie eine Update-Quelle zum Bearbeiten." + +msgid "Select video input with up/down buttons" +msgstr "Wählen Sie den Video-Eingang mit den Hoch/Runter-Tasten" + +msgid "Select video mode" +msgstr "Wählen Sie den Video-Modus" + +msgid "Select wireless network" +msgstr "Funk-Netzwerk auswählen" + +msgid "Select your provider, and press OK to start the scan" +msgstr "" +"Bitte wählen Sie den Provider aus und bestätigen Sie mit OK, um die Suche zu " +"starten" + +msgid "Selecting satellites 1 (USALS)" +msgstr "Wähle Satelliten 1 (USALS)" + +msgid "Selecting satellites 2 (USALS)" +msgstr "Wähle Satelliten 2 (USALS)" + +msgid "Send DiSEqC only on satellite change" +msgstr "DiSEqC nur bei Sat-Wechsel senden" + +msgid "Separate titles with a main menu" +msgstr "Trenne verschiedene Titel mit einem Hauptmenü" + +msgid "Sequence repeat" +msgstr "Sequenz-Wiederholung" + +msgid "Serbian" +msgstr "Serbisch" + +msgid "Service" +msgstr "Kanal" + +msgid "Service has been added to the favourites." +msgstr "Kanal wurde zu Favoriten hinzugefügt." + +msgid "Service has been added to the selected bouquet." +msgstr "Kanal wurde zum gewählten Bouquet hinzugefügt." + +msgid "Service info" +msgstr "Kanal-Infos" + +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Kanal ist ungültig!\n" +"(Zeit lief beim Lesen der PMT ab)" + +msgid "Service name" +msgstr "Kanalname" + +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Kanal nicht gefunden!\n" +"(SID nicht in PAT gefunden)" + +msgid "Service reference" +msgstr "Kanal Referenz" + +msgid "Service scan" +msgstr "Kanalsuche" + +msgid "Service searching" +msgstr "Kanalsuche" + +msgid "Service title mode" +msgstr "Kanal Titel Modus" + +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"Kanal nicht verfügbar!\n" +"Bitte Tuner-Konfiguration überprüfen!" + +msgid "Services" +msgstr "Kanäle" + +msgid "Set default" +msgstr "Als Standard setzen" + +msgid "Set end time" +msgstr "End-Zeit eingeben" + +msgid "Set fixed" +msgstr "Adresse fest einstellen" + +msgid "Set fps for external subtitles" +msgstr "Einstellung fps für externe Untertitel" + +msgid "Set interface as default Interface" +msgstr "Netzwerkadapter als Standard festlegen" + +msgid "Set limits" +msgstr "Limits setzen" + +msgid "" +"Set the type of the progress indication in the channel selection screen." +msgstr "Zeige Sendungs-Fortschritt in der Kanal-Liste" + +msgid "Set time window to 1 hour" +msgstr "Setze das Zeitfenster auf 1 Stunde" + +msgid "Set time window to 2 hours" +msgstr "Setze das Zeitfenster auf 2 Stunden" + +msgid "Set time window to 3 hours" +msgstr "Setze das Zeitfenster auf 3 Stunden" + +msgid "Set time window to 4 hours" +msgstr "Setze das Zeitfenster auf 4 Stunden" + +msgid "Set time window to 5 hours" +msgstr "Setze das Zeitfenster auf 5 Stunden" + +msgid "Set time window to 6 hours" +msgstr "Setze das Zeitfenster auf 6 Stunden" + +msgid "Set voltage and 22KHz" +msgstr "Spannung und 22KHz setzen" + +msgid "Settings" +msgstr "Einstellungen" + +msgid "Setup" +msgstr "Einstellungen" + +msgid "Setup menu" +msgstr "Konfiguration" + +msgid "Setup mode" +msgstr "Konfigurationsmodus" + +msgid "Setup your positioner" +msgstr "Einstellung des Rotors" + +msgid "Setup your satellite equipment" +msgstr "Satelliten-Ausrüstung" + +#, python-format +msgid "" +"Shall the USB stick wizard proceed and program the image file %s into flash " +"memory?" +msgstr "" +"Soll der Assistent fortfahren und die Image-Datei %s in den Flashspeicher " +"schreiben?" + +msgid "Sharpness" +msgstr "Schärfe" + +msgid "Short filenames" +msgstr "Kurze Dateinamen" + +msgid "Show EIT now/next in infobar" +msgstr "Zeige EIT Now/Next in Infoleiste" + +msgid "Show EPG for current channel..." +msgstr "Zeige EPG für aktuellen Kanal..." + +msgid "Show EPG..." +msgstr "Zeige EPG..." + +msgid "Show Games show" +msgstr "Zeige Spielsendungen" + +msgid "Show SNR percentage instead of dB value" +msgstr "Zeige SNR Prozentsatz anstelle von dB-Wert" + +msgid "Show VCR scart on main menu" +msgstr "Zeige VCR-SCART im Hauptmenü" + +msgid "Show WLAN status" +msgstr "Zeige WLAN-Status" + +msgid "Show animation while busy" +msgstr "Zeige Animation bei Beschäftigung" + +msgid "Show background in radio mode" +msgstr "Zeige Hintergrund im Radio-Modus" + +msgid "Show bouquet selection menu" +msgstr "Zeige Bouquet-Auswahlmenü" + +msgid "Show busy indicator when the system is busy." +msgstr "Zeige Ladesymbol bei System-Beschäftigung." + +msgid "Show channel numbers in channel selection" +msgstr "Zeige Kanalnummer in Kanalauswahl" + +msgid "Show columns" +msgstr "Zeige Spalten" + +msgid "Show crypto icons" +msgstr "Zeige Verschlüsselungssymbole" + +msgid "Show crypto info in infobar" +msgstr "Verschlüsselung in Infoleiste anzeigen" + +msgid "Show detailed event info" +msgstr "Zeige detailierte Sendungsinformation" + +msgid "Show event details" +msgstr "Sendungsdetails anzeigen" + +msgid "Show event-progress in channel selection" +msgstr "Zeige Sendungs-Fortschritt in der Kanal-Liste" + +msgid "Show extended description" +msgstr "Zeige erweiterte Beschreibung" + +msgid "Show extensions..." +msgstr "Erweiterungen anzeigen..." + +msgid "Show icon for new/unseen items" +msgstr "Zeige Symbol für neue/ungesehene Einträge" + +msgid "Show in extensions menu" +msgstr "In Erweiterungsmenü anzeigen" + +msgid "Show info" +msgstr "Zeige Infos" + +msgid "Show info line" +msgstr "Infozeile anzeigen" + +msgid "Show infobar on channel change" +msgstr "Zeige Infoleiste beim Kanalwechsel" + +msgid "Show infobar on event change" +msgstr "Zeige Infoleiste beim Sendungswechsel" + +msgid "Show infobar on skip forward/backward" +msgstr "Zeige Infoleiste beim Spulen" + +msgid "Show latest commits on sourceforge" +msgstr "Zeige letzte Code-Änderungen von sourceforge" + +msgid "Show message when recording starts" +msgstr "Benachrichtigung anzeigen, wenn eine Aufnahme startet" + +msgid "Show movie lengths in movielist" +msgstr "Zeige Filmlänge in der Filmliste" + +msgid "Show multi channel EPG" +msgstr "Zeige Multi-Channel-EPG" + +msgid "Show picons in channel list" +msgstr "Zeige Picons in Kanalliste" + +msgid "Show positioner movement" +msgstr "Rotorbewegung anzeigen" + +msgid "Show screensaver" +msgstr "Zeige Screensaver" + +msgid "Show second infobar" +msgstr "Zeige zweite Infoleiste" + +msgid "Show service type icons" +msgstr "Zeige Service-Typ Icons" + +msgid "Show services beginning with" +msgstr "Kanäle beginnend mit Anfangsbuchstabe" + +msgid "Show shutdown menu" +msgstr "Ausschaltmenü anzeigen" + +msgid "Show single service EPG" +msgstr "Zeige Einzel-Kanal-EPG" + +msgid "Show status icons in Movielist" +msgstr "Zeige Status-Symbole in der Filmliste" + +msgid "Show status icons in movie list" +msgstr "Zeige Status-Symbole in der Filmliste" + +msgid "Show status icons in movielist" +msgstr "Zeige Status-Symbole in der Filmliste" + +msgid "Show tag menu" +msgstr "Zeige Tag-Menü" + +msgid "Show the radio player..." +msgstr "Radio-Wiedergabemodus..." + +msgid "Show the tv player..." +msgstr "TV-Wiedergabemodus..." + +msgid "Show warning when timeshift is stopped" +msgstr "Zeige eine Warning beim Stoppen des Timeshifts" + +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Zeigt den Status der WLAN-Verbinung an.\n" + +msgid "Shuffle playlist" +msgstr "Wiedergabeliste mischen" + +msgid "Shutdown" +msgstr "Ausschalten" + +msgid "Shutdown when in Standby" +msgstr "Ausschalten, falls im Standby" + +msgid "Side by side" +msgstr "Side by Side" + +msgid "Signal OK, proceeding" +msgstr "Signal OK, fortsetzen" + +msgid "Signal quality" +msgstr "Signal Qualität" + +msgid "Signal strength:" +msgstr "Signalstärke:" + +msgid "Signal: " +msgstr "Signal: " + +msgid "Similar" +msgstr "Ähnlich" + +msgid "Similar broadcasts:" +msgstr "Ähnliche Sendungen:" + +msgid "Simple" +msgstr "Einfach" + +msgid "Simple titleset (compatibility for legacy players)" +msgstr "Schlicht (bessere Kompatibilität mit alten DVD-Playern)" + +msgid "Single" +msgstr "Einzeln" + +msgid "Single EPG" +msgstr "Einfach-EPG" + +msgid "Single satellite" +msgstr "Einzelnen Satelliten" + +msgid "Single step (GOP)" +msgstr "Einzelschritt (GOP)" + +msgid "Single transponder" +msgstr "Einzelnen Transponder" + +msgid "Site latitude" +msgstr "Breitengrad ausrichten" + +msgid "Site longitude" +msgstr "Längengrad ausrichten" + +msgid "Skin" +msgstr "Skin" + +msgid "Skins" +msgstr "Skins" + +msgid "Skip empty services" +msgstr "Ãœberspringe leere Sender" + +msgid "" +"Skip internet connection check (disables automatic package installation)" +msgstr "" +"Ãœberspringe Internet-Verbindungstest (automatische Paketinstallation " +"deaktivieren)" + +msgid "Sleep timer" +msgstr "Ausschalt-Timer" + +msgid "SleepTimer Configuration" +msgstr "Sleeptimer Einstellungen" + +msgid "Sleeptimer" +msgstr "Sleeptimer" + +msgid "Slide picture in loop" +msgstr "Bilder als Slideshow anzeigen (Schleife)" + +msgid "Slide show interval (sec.)" +msgstr "Diaschau-Intervall (Sek.)" + +#, python-format +msgid "Slot %d" +msgstr "Steckplatz %d" + +msgid "Slovak" +msgstr "Slowakisch" + +msgid "Slovenian" +msgstr "Slowenisch" + +msgid "Slow" +msgstr "Langsam" + +msgid "Slow motion speeds" +msgstr "Zeitlupen-Geschwindigkeiten" + +msgid "Small progress" +msgstr "Geringer Fortschritt" + +msgid "Social/Political/Economics" +msgstr "Soziales/Politik/Wirtschaft" + +msgid "SoftCam / CI" +msgstr "SoftCam / CI" + +msgid "Softcam type" +msgstr "Softcam Typ" + +msgid "Software" +msgstr "Software" + +msgid "Software management" +msgstr "Softwareverwaltung" + +msgid "Software manager setup" +msgstr "Softwaremanager Einstellung" + +msgid "Software restore" +msgstr "Software wiederherstellen" + +msgid "Software update" +msgstr "Software aktualisieren" + +msgid "Softwaremanager information" +msgstr "Softwaremanager Information" + +msgid "Some plugins are not available:\n" +msgstr "Einige Plugins sind nicht verfügbar:\n" + +#, python-format +msgid "Sorry, %s has not been installed!" +msgstr "Entschuldigung, %s ist nicht installiert!" + +msgid "" +"Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "" +"Entschuldigung, Verzeichnisse können (bis jetzt) nur per Mülleimer gelöscht " +"werden." + +msgid "Sorry, no backups found!" +msgstr "Entschuldigung, keine Sicherungen gefunden!" + +msgid "Sorry, no details available!" +msgstr "Entschuldigung, keine Details verfügbar" + +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"Entschuldigung, Ihr Sicherungsverzeichnis ist nicht beschreibbar.\n" +"Bitte wählen Sie ein anderes Verzeichnis aus." + +msgid "Sort" +msgstr "Sortieren" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Sort. A-Z" + +msgid "Sort by" +msgstr "Sortiere nach" + +msgid "Sort list:" +msgstr "Sortiere Liste:" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort time" +msgstr "Sortiere nach Zeit" + +msgid "Sound" +msgstr "Ton" + +msgid "Sound carrier" +msgstr "Tonträger" + +msgid "Source request" +msgstr "Eingangs Anfrage" + +msgid "South" +msgstr "Süd" + +msgid "Spanish" +msgstr "Spanisch" + +msgid "" +"Specify the end time to ignore the shutdown timer when the receiver is in " +"standby mode" +msgstr "" +"Angabe der Endzeit, bis wann der Ausschalt-Timer ignoriert werden soll, wenn " +"sich der Receiver im Standby-Modus befindet" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "" +"Angabe der Endzeit, bis wann der Inaktivität-Sleeptimer ignoriert werden soll" + +msgid "" +"Specify the start time to ignore the shutdown timer when the receiver is in " +"standby mode" +msgstr "" +"Angabe der Startzeit, ab dem Ausschalt-Timer ignoriert werden soll, wenn " +"sich der Receiver im Standby-Modus befindet" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "" +"Spezifiziere die Anfangszeit, aber wann der Inaktivität-Sleeptimer ignoriert " +"werden soll" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "" +"Spezifiziere den Zeitbereich, in dem der Inaktivität-Sleeptimer ignoriert " +"werden soll" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" +"Angabe des Zeitfensters indem nicht vom Standby-Modus in den Deep-Standby " +"gewechselt wird" + +msgid "Split preview mode" +msgstr "Splitscreen für Vorschau-Modus" + +msgid "Splitscreen" +msgstr "Geteilter Bildschirm" + +msgid "Sports" +msgstr "Sport" + +msgid "Standard" +msgstr "Standard" + +msgid "Standart list" +msgstr "Standard-Liste" + +msgid "Standby" +msgstr "Standby" + +msgid "Standby / restart" +msgstr "Standby / Neustart" + +msgid "Standby after current event" +msgstr "Standby nach aktueller Sendung" + +#, python-format +msgid "Standby fan %d PWM" +msgstr "Standby Lüfter %d PWM" + +#, python-format +msgid "Standby fan %d voltage" +msgstr "Standby Lüfter %d Spannung" + +msgid "Standby in " +msgstr "Standby in" + +msgid "StandbyLED" +msgstr "LED im Standby-Modus" + +msgid "Start from the beginning" +msgstr "Am Anfang starten" + +msgid "Start offline decode" +msgstr "Starte lokale Entschlüsselung" + +msgid "Start recording?" +msgstr "Aufnahme beginnen?" + +msgid "Start test" +msgstr "Test starten" + +msgid "Start time" +msgstr "Startzeit" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "Startzeit zum Ignorieren des Inaktivität-Sleeptimers" + +msgid "Start time to ignore shutdown in standby" +msgstr "Startzeit kein Wechsel vom Standby in Deep-Standby" + +msgid "Start timeshift" +msgstr "Timeshift starten" + +msgid "Start with list screen" +msgstr "Mit Liste beginnen" + +msgid "Starting on" +msgstr "Beginnend ab" + +msgid "Startup the set top box in standby" +msgstr "Starte den Receiver im Standby-Modus" + +msgid "Startup to Standby" +msgstr "Start im Standby-Modus" + +msgid "Step east" +msgstr "Schritt nach Osten" + +msgid "Step west" +msgstr "Schritt nach Westen" + +msgid "Stepped east" +msgstr "Nach Osten justiert" + +msgid "Stepped west" +msgstr "Nach Westen justiert" + +msgid "Stop" +msgstr "Stopp" + +msgid "Stop PiP" +msgstr "Beende Bild im Bild" + +msgid "Stop current event and disable coming events" +msgstr "Laufendes Ereignis abbrechen und kommende ignorieren" + +msgid "Stop current event but not coming events" +msgstr "Laufendes Ereignis abbrechen, aber kommende ausführen" + +msgid "Stop entry" +msgstr "Element stoppen" + +msgid "Stop playing this movie?" +msgstr "Wiedergabe beenden?" + +msgid "Stop recording" +msgstr "Aufnahme beenden" + +msgid "Stop recording and delete" +msgstr "Aufnahme beenden und löschen" + +msgid "Stop service on return to movie list" +msgstr "Anhalten und zur Filmliste zurückkehren" + +msgid "Stop test" +msgstr "Test stoppen" + +msgid "Stop testing plane after # failed transponders" +msgstr "Stoppe Test nach # fehlgeschlagenen Transpondern" + +msgid "Stop testing plane after # successful transponders" +msgstr "Stoppe Test nach # erfolgreichen Transpondern" + +msgid "Stop timer recording" +msgstr "Aufnahme beenden" + +msgid "Stop timeshift" +msgstr "Timeshift beenden" + +msgid "Stop timeshift?" +msgstr "Timeshift beenden?" + +msgid "Stopped" +msgstr "Gestoppt" + +msgid "Store at index" +msgstr "Speichern auf Index" + +msgid "Store position" +msgstr "Position speichern" + +msgid "Stored position" +msgstr "Gespeicherte Position" + +msgid "Stream" +msgstr "Stream" + +msgid "Stream request" +msgstr "Stream Anfrage" + +msgid "Strongest position" +msgstr "Beste Position" + +msgid "Subservice list..." +msgstr "Unterkanal-Liste..." + +msgid "Subservices" +msgstr "Unterkanäle" + +msgid "Subtitle Quickmenu" +msgstr "Untertitel Schnellmenü" + +msgid "Subtitle alignment" +msgstr "Untertitel Ausrichtung" + +msgid "Subtitle border width" +msgstr "Untertitel Randbreite" + +msgid "Subtitle delay when timing is bad" +msgstr "Verzögerung für Untertitel" + +msgid "Subtitle delay when timing lacks" +msgstr "Verzögerung Untertitel bei fehlendem Timing" + +msgid "Subtitle font size" +msgstr "Untertitel Schriftgröße" + +msgid "Subtitle language selection 1" +msgstr "Untertitel Sprachauswahl 1" + +msgid "Subtitle language selection 2" +msgstr "Untertitel Sprachauswahl 2" + +msgid "Subtitle language selection 3" +msgstr "Untertitel Sprachauswahl 3" + +msgid "Subtitle language selection 4" +msgstr "Untertitel Sprachauswahl 4" + +msgid "Subtitle position" +msgstr "Untertitel Position" + +msgid "Subtitle selection" +msgstr "Untertitel-Auswahl" + +msgid "Subtitle selection..." +msgstr "Untertitel-Auswahl..." + +msgid "Subtitle settings" +msgstr "Untertitel-Einstellungen" + +msgid "Subtitles" +msgstr "Untertitel" + +msgid "Sun" +msgstr "So" + +msgid "Sunday" +msgstr "Sonntag" + +msgid "Swap PiP and main picture" +msgstr "Tausche Bild im Bild mit Hauptbild" + +msgid "Swap services" +msgstr "Kanäle tauschen" + +msgid "Swedish" +msgstr "Schwedisch" + +msgid "Switch TV to correct input" +msgstr "Fernseher auf Receiver HDMI-Eingang schalten" + +msgid "Switch between filelist/playlist" +msgstr "Umschalten zwischen Dateiliste/Abspielliste" + +msgid "Switch between normal mode and list mode" +msgstr "Tausche Normal mit Listen Modus" + +msgid "Switch to HDMI in mode" +msgstr "Zum HDMI-Eingang umschalten" + +msgid "Switch to filelist" +msgstr "In Dateiliste wechseln" + +msgid "Switch to next channel" +msgstr "Zum nächsten Kanal wechseln" + +msgid "Switch to next channel in history" +msgstr "Nächster Kanal im Verlauf" + +msgid "Switch to next sub service" +msgstr "Zum nächsten Unterkanal schalten" + +msgid "Switch to playlist" +msgstr "In Wiedergabeliste wechseln" + +msgid "Switch to previous channel" +msgstr "Zum vorhergehenden Kanal schalten" + +msgid "Switch to previous channel in history" +msgstr "Vorheriger Kanal im Verlauf" + +msgid "Switch to previous sub service" +msgstr "Zum vorhergehenden Unterkanal schalten" + +msgid "Switchable tuner types:" +msgstr "Umschaltbare Tuner-Typen:" + +msgid "Symbol rate" +msgstr "Symbolrate" + +msgid "Symbol rate:" +msgstr "Symbolrate:" + +msgid "Sync failure moving back to origin !" +msgstr "Sync Fehler, bewege zur Anfangsposition!" + +msgid "System" +msgstr "System" + +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "ÃœBERSETZER INFO" + +msgid "TS file is too large for ISO9660 level 1!" +msgstr "TS-Datei ist zu groß für ISO9660 level 1!" + +msgid "TSID" +msgstr "TSID" + +msgid "TV physical address report" +msgstr "TV physikalischer Adressenverkündung" + +msgid "TXT PID" +msgstr "TXT PID" + +msgid "Table of contents for collection" +msgstr "Inhalt der Zusammenstellung" + +msgid "Tags" +msgstr "Tags" + +msgid "Teletext subtitle color" +msgstr "Farbe Teletext-Untertitel" + +msgid "Temperature and fan control" +msgstr "Temperatur- und Lüfter-Regelung" + +msgid "Terrestrial" +msgstr "Terrestrisch" + +msgid "Terrestrial provider" +msgstr "Region" + +msgid "Test DiSEqC settings" +msgstr "Teste DiSEqC-Einstellungen" + +msgid "Test mode" +msgstr "Testmodus" + +msgid "Test the network configuration of your receiver.\n" +msgstr "Testen der Netzwerkkonfiguration des Receivers.\n" + +msgid "Test type" +msgstr "Testtyp" + +msgid "Text color" +msgstr "Textfarbe" + +msgid "Thai" +msgstr "Thailändisch" + +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"Vielen Dank, dass Sie den Assistenten benutzt haben.\n" +"Drücken Sie OK zum Fortfahren." + +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"Vielen Dank, dass Sie den Assistenten benutzt haben.\n" +"Ihr Receiver ist nun bereit zur Verwendung.\n" +"Drücken Sie OK zum Fortfahren." + +msgid "" +"The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to " +"create a special format data DVD (which will not play in stand-alone DVD " +"players) instead?" +msgstr "" +"Der DVD-Standard unterstützt keine H.264 (HDTV) Videos. Soll stattdessen " +"eine Daten-DVD im Receiver-Format (die nicht in einem herkömmlichen DVD-" +"Player abspielbar ist) erstellt werden?" + +msgid "The PIN code has been changed successfully." +msgstr "Der PIN-Code wurde erfolgreich geändert." + +msgid "The PIN codes you entered are different." +msgstr "Die eingegebenen PIN-Codes sind unterschiedlich." + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" +"Der USB-Stick wurde bootfähig gemacht.\n" +"Sie können nun eine NFI-Imagedatei herunterladen!" + +msgid "The backup failed. Please choose a different backup location." +msgstr "" +"Die Sicherung ist fehlgeschlagen. Bitte einen anderen Sicherungsort " +"auswählen." + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" +"Das aktuelle Image könnte fehlerhaft sein.\n" +"Weitere Informationen finden Sie hier: %s." + +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"Das Verzeichnis %s ist nicht beschreibbar.\n" +"Stellen Sie sicher, dass Sie ein beschreibbares Verzeichnis angegeben haben." + +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"Das folgende Medium wurde gefunden:\n" +"\n" +"%s\n" +"\n" +"Soll der USB-Flasher auf diesen Stick installiert werden?" + +msgid "The following files were found..." +msgstr "Die folgenden Dateien wurden gefunden..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "" +"Die md5sum Ãœberprüfung ist fehlgeschlagen. Die Datei könnte fehlerhaft sein!" + +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"Das Netzwerk-Assistent-Plugin ist nicht installiert!\n" +"Bitte installieren Sie es." + +#, python-format +msgid "The path %s already exists." +msgstr "Der Pfad %s existiert bereits." + +msgid "The pin code you entered is wrong." +msgstr "Der eingegebene PIN-Code ist falsch" + +#, python-format +msgid "The results have been written to %s." +msgstr "Die Ergebnisse des Tests wurden in der Datei %s gespeichert." + +msgid "The sleep timer has been activated." +msgstr "Der Sleeptimer wurde aktiviert." + +msgid "The sleep timer has been disabled." +msgstr "Der Sleeptimer wurde deaktiviert" + +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"Das Softwaremanagement Plugin ist nicht installiert!\n" +"Bitte installieren Sie es." + +#, python-format +msgid "" +"The status of the current beta image could not be checked because %s can not " +"be reached." +msgstr "" +"Der Status des aktuellen Beta-Image konnte nicht ermittelt werden, da %s " +"nicht erreichbar ist." + +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "" +"Die Timer-Datei (timers.xml) ist defekt und konnte nicht geladen werden." + +msgid "The user interface of your receiver is restarting" +msgstr "Die Benutzeroberfläche des Receivers wird neu gestartet" + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" +"Die Benutzeroberfläche des Receivers wird aufgrund eines Fehlers\n" +"in mytest.py neu gestartet" + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"Das Wireless LAN Plugin ist nicht installiert!\n" +"Bitte installieren Sie es und wählen Sie dann eine Option zum Fortfahren." + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"Das Wireless LAN Plugin ist nicht installiert!\n" +"Bitte installieren Sie es." + +msgid "" +"The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "" +"Der Assistent kann jetzt Ihre Einstellungen sichern. Wollen Sie dies nun " +"durchführen?" + +#, python-format +msgid "" +"The wizard found a configuration backup. Do you want to restore your old " +"settings from %s?" +msgstr "" +"Der Assistent hat eine Konfigurations-Sicherungsdatei entdeckt. Wollen Sie " +"Ihre Einstellungen von %s wiederherstellen?" + +msgid "The wizard is finished now." +msgstr "Der Assistent ist nun abgeschlossen." + +msgid "There are at least " +msgstr "Es sind mindestens " + +#, python-format +msgid "There are at least %s updates available." +msgstr "Es sind mindestens %s Updates verfügbar." + +msgid "There are currently no outstanding actions." +msgstr "Es sind keine Aktivitäten geplant." + +msgid "There are no updates available." +msgstr "Es sind keine Updates verfügbar." + +msgid "There is no signal to lock on !" +msgstr "Es liegt kein Signal an !" + +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"Es könnte sein, dass nicht genügend freier Speicherplatz auf\n" +"der gewählten Partition vorhanden ist.\n" +"Wollen Sie wirklich fortfahren?" + +msgid "" +"This DVD RW medium is already formatted - reformatting will erase all " +"content on the disc." +msgstr "" +"Dieses wiederbeschreibbare Medium ist bereits formatiert - durch eine " +"Neuformatierung wird der gesamte Inhalt gelöscht" + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of " +"your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server " +"and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. " +"Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" +"Dieses Plugin erzeugt einen USB-Stick, mit dessen Hilfe die Firmware Ihres " +"Receivers aktualisiert werden kann, ohne dass dafür eine Netzwerk- oder WLAN-" +"Verbindung notwendig ist. Zuerst muss ein USB-Stick vorbereitet und " +"bootfähig gemacht werden. Im nächsten Schritt kann eine NFI-Imagedatei vom " +"Update-Server heruntergeladen und auf diesem Stick gespeichert werden. Wenn " +"Sie bereits einen bootfähigen USB-Stick vorbereitet haben, stecken Sie ihn " +"bitte jetzt ein. Anderenfalls stecken Sie bitte einen USB-Stick mit einer " +"Mindestgröße von 64 MB ein." + +msgid "This plugin is installed." +msgstr "Dieses Plugin ist installiert." + +msgid "This plugin is not installed." +msgstr "Dieses Plugin ist nicht installiert." + +msgid "This plugin will be installed." +msgstr "Dieses Plugin wird installiert." + +msgid "This plugin will be removed." +msgstr "Dieses Plugin wird deinstalliert." + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "Dieser Receiver kann keine %s Streams dekodieren!" + +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in " +"the \"Nameserver\" configuration" +msgstr "" +"Dieser Test sucht nach konfigurierten Nameservern\n" +"Wenn Sie eine \"Unbestätigt\"-Meldung erhalten:\n" +"- Ãœberprüfen Sie Ihr DHCP, Ihre Verkabelung und Ihre Adapter-Konfiguration.\n" +"- Haben Sie Ihre Namensserver manuell konfiguriert, überprüfen Sie bitte " +"Ihre Konfiguration in den \"DNS\"-Einstellungen" + +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Dieser Test überprüft, ob ein Netzwerkkabel angeschlossen ist.\n" +"Wenn Sie eine \"Nicht verbunden\"-Meldung erhalten:\n" +"- Ãœberprüfen Sie, ob ein Netzwerkkabel angeschlossen ist.\n" +"- Stellen Sie sicher, dass das Netzwerkkabel nicht defekt ist." + +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Dieser Test überprüft, ob eine gültige IP-Adresse gefunden wurde.\n" +"Wenn Sie eine \"Unbestätigt\"-Meldung erhalten:\n" +"- Wurde keine gültige IP-Adresse gefunden.\n" +"- Ãœberprüfen Sie Ihr DHCP, Ihre Verkabelung und Ihre Adapter-Konfiguration." + +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address " +"configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup " +"dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"Dieser Test überprüft, ob Ihr Netzwerkadapter für automatische IP-Adressen-" +"Konfiguration über DHCP eingerichtet ist.\n" +"Wenn Sie eine \"Deaktiviert\"-Meldung erhalten:\n" +"- Dann ist Ihr Netzwerkadapter für manuelle IP-Adressen-Konfiguration " +"eingerichtet.\n" +"- Ãœberprüfen Sie die Richtigkeit Ihrer Einstellungen im Netzwerkadapter-" +"Einstellungen-Menü.\n" +"Wenn Sie eine \"Aktiviert\"-Meldung erhalten:\n" +"- Ãœberprüfen Sie, dass sich ein funktionierender DHCP-Server in Ihrem " +"Netzwerk befindet." + +msgid "This test detects your configured LAN adapter." +msgstr "Dieser Test ermittelt Ihren konfigurierten Netzwerkadapter." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove " +"previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" +"Alle Positionen des Rotors werden (neu)berechnet und alle zuvor " +"gespeicherten Positionen und Feineinstellungen werden verworfen!\n" +"Sind Sie sicher, dass Sie den Vorgang durchführen wollen?" + +msgid "Three" +msgstr "Drei" + +msgid "Threshold" +msgstr "Schwelle" + +msgid "Thu" +msgstr "Do" + +msgid "Thumbnails" +msgstr "Vorschaubilder" + +msgid "Thursday" +msgstr "Donnerstag" + +msgid "Time" +msgstr "Zeit" + +msgid "Time scale" +msgstr "Zeitskala" + +msgid "Timer" +msgstr "Timer" + +msgid "Timer Overview" +msgstr "Timer-Ãœbersicht" + +msgid "Timer edit" +msgstr "Timer bearbeiten" + +msgid "Timer editor" +msgstr "Timer-Editor" + +msgid "Timer entry" +msgstr "Timer-Eintrag" + +msgid "Timer log" +msgstr "Timer-Logbuch" + +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"Timerüberlappung in der timers.xml entdeckt!\n" +"Bitte überprüfen!" + +msgid "Timer overview" +msgstr "Timer-Ãœbersicht" + +msgid "Timer recording location" +msgstr "Timer-Aufnahmeverzeichnis" + +msgid "Timer sanity error" +msgstr "Fehler bei Timerprüfung" + +msgid "Timer selection" +msgstr "Timer-Liste" + +msgid "Timer selection..." +msgstr "Timer-Auswahl..." + +msgid "Timer type" +msgstr "Timertyp" + +msgid "Timeshift" +msgstr "Timeshift" + +msgid "Timeshift Live" +msgstr "Live Timeshift" + +msgid "Timeshift location" +msgstr "Timeshift-Verzeichnis" + +msgid "Timeshift not possible!" +msgstr "Timeshift nicht möglich!" + +msgid "Timezone" +msgstr "Zeitzone" + +msgid "Title" +msgstr "Titel" + +msgid "Title properties" +msgstr "Titeldetails" + +msgid "Titleset mode" +msgstr "Titleset" + +msgid "To audio selection" +msgstr "Zur Ton-Auswahl" + +msgid "To subtitle selection" +msgstr "Zur Untertitel Auswahl" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable " +"USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed " +"for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" +"Um Ihre Receiver-Firmware zu aktualisieren, folgen Sie bitte diesen " +"Anweisungen:\n" +"1) Schalten Sie Ihren Receiver mit dem Schalter auf der Rückseite aus und " +"achten Sie darauf, dass der bootfähige USB-Stick eingesteckt ist.\n" +"2) Schalten Sie den Netzschalter wieder ein und halten dabei den \"nach unten" +"\"-Knopf auf der Vorderseite für 10 Sekunden gedrückt.\n" +"3) Nach dem Bootvorgang folgen Sie bitte den Instruktionen des Assistenten." + +msgid "Today" +msgstr "Heute" + +msgid "Toggle a cut mark at the current position" +msgstr "Toggle Marker an der aktuellen Position" + +msgid "Tone amplitude" +msgstr "Ton Amplitude" + +msgid "Tone mode" +msgstr "Tone Modus" + +msgid "Toneburst" +msgstr "Toneburst" + +msgid "Toneburst A/B" +msgstr "Toneburst A/B" + +msgid "Top and bottom" +msgstr "Oben und Unten" + +msgid "Track" +msgstr "Spur" + +msgid "Translation" +msgstr "Ãœbersetzung:" + +msgid "Translation:" +msgstr "Ãœbersetzung:" + +msgid "Translations" +msgstr "Ãœbersetzung" + +msgid "Transmission mode" +msgstr "Ãœbertragungstyp" + +msgid "Transponder" +msgstr "Transponder" + +msgid "Transponder type" +msgstr "Transponder Typ" + +msgid "Trash can" +msgstr "Mülleimer" + +msgid "Tries left:" +msgstr "Ãœbrige Versuche:" + +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Suche benutzte Transponder im Kabel Netzwerk.. bitte warten..." + +msgid "Trying to download a new packetlist. Please wait..." +msgstr "" +"Versuche eine neue Aktualisierungsliste herunterzuladen. Bitte warten Sie..." + +msgid "Tue" +msgstr "Di" + +msgid "Tuesday" +msgstr "Dienstag" + +msgid "Tune" +msgstr "Tunen" + +msgid "Tune and focus" +msgstr "Tunen und Fokusieren" + +msgid "Tune failed!" +msgstr "Tunen fehlgeschlagen!" + +msgid "Tuner" +msgstr "Tuner" + +msgid "Tuner configuration" +msgstr "Tuner-Konfiguration" + +msgid "Tuner is not supported" +msgstr "Tuner nicht unterstützt" + +msgid "Tuner slot" +msgstr "Tuner-Slot" + +msgid "Tuner status" +msgstr "Tuner-Status" + +#, python-format +msgid "Tuner status %s" +msgstr "Tuner-Status %s" + +msgid "Tuner type" +msgstr "Tunertyp" + +msgid "Turkish" +msgstr "Türkisch" + +msgid "Turn on the power LED during standby." +msgstr "Die LED im Standy-Modus ausschalten." + +msgid "Turning step size" +msgstr "Dreh-Schrittweite" + +msgid "Two" +msgstr "Zwei" + +msgid "Type" +msgstr "Typ" + +msgid "Type of scan" +msgstr "Art der Suche" + +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "USALS Kalibrierung" + +msgid "USB stick" +msgstr "USB-Stick" + +msgid "USB stick wizard" +msgstr "USB-Stick-Assistent" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Stille Aktualisierung wird durchgeführt.\n" +"Bitte warten Sie, bis Ihr Receiver automatisch neu startet.\n" +"Das könnte einige Minuten in Anspruch nehmen." + +msgid "Undo install" +msgstr "Installation zurücksetzen." + +msgid "Undo uninstall" +msgstr "Deinstallation zurücksetzen." + +msgid "Unencrypted" +msgstr "Unverschlüsselt" + +msgid "UnhandledKey" +msgstr "UnhandledKey" + +msgid "Unicable" +msgstr "Unicable" + +msgid "Unicable LNB" +msgstr "Unicable LNB" + +msgid "Unicable Martix" +msgstr "Unicable Matrix" + +msgid "Uninstall" +msgstr "Deinstallieren" + +msgid "Universal LNB" +msgstr "Universal-LNB" + +msgid "Unknown" +msgstr "Unbekannt" + +msgid "Unmount" +msgstr "Aushängen" + +msgid "Unsupported" +msgstr "Nicht unterstützt" + +msgid "Update" +msgstr "Aktualisieren" + +msgid "Update and ask to reboot" +msgstr "Aktualisieren und auf Nachfrage neu starten" + +msgid "Update and reboot (recommended)" +msgstr "Aktualisieren und neu starten (empfohlen)" + +msgid "Update channel list only" +msgstr "Aktualisiere nur die Senderliste" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "Aktualisierung abgeschlossen, %d Paket installiert" +msgstr[1] "Aktualisierung abgeschlossen, %d Pakete installiert" + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "Aktualisierung abgeschlossen. Wollen Sie den Receiver neu starten?" + +msgid "" +"Update failed. Your receiver does not have a working internet connection." +msgstr "" +"Aktualisierung fehlgeschlagen. Ihr Receiver hat keine Verbindung zum " +"Internet aufbauen können." + +msgid "Update has completed." +msgstr "Aktualisierung abgeschlossen." + +msgid "Updatefeed not available." +msgstr "Update-Feed nicht verfügbar." + +msgid "Updating software catalog" +msgstr "Softwarekatalog wird aktualisiert." + +msgid "Upgrading" +msgstr "Aktualisiere" + +msgid "Use" +msgstr "Benutzen" + +msgid "Use DHCP" +msgstr "Adresse automatisch beziehen (DHCP)" + +msgid "Use EIT EPG information when it is available." +msgstr "Verwende EIT EPG Information falls vorhanden." + +msgid "Use FreeSat EPG information when it is available." +msgstr "Verwende FreeSat EPG Information falls vorhanden." + +msgid "Use MHW EPG information when it is available." +msgstr "Verwende MHW EPG Information falls vorhanden." + +msgid "Use Netmed EPG information when it is available." +msgstr "Verwende Netmed EPG Information falls vorhanden." + +msgid "Use TV remote control" +msgstr "Fernbedienungsbefehle des Fernsehers weiterleiten" + +msgid "Use USALS for this sat" +msgstr "USALS für diesen Sat benutzen" + +msgid "Use ViaSat EPG information when it is available." +msgstr "Verwende ViaSat EPG Infromation falls vorhanden." + +msgid "Use Virgin EPG information when it is available." +msgstr "Nutzte Virgin EPG-Informationen, sofern verfügbar." + +msgid "Use a gateway" +msgstr "Einen Gateway verwenden?" + +msgid "Use fastscan channel names" +msgstr "Benutze Fast-Scan Kanalnamen" + +msgid "Use fastscan channel numbering" +msgstr "Benutze Fast-Scan Kanalnummern" + +msgid "Use frequency or channel" +msgstr "Nutze Frequenz oder Kanal" + +msgid "Use individual settings for each directory" +msgstr "Verwende individuelle Einstellungen je Verzeichnis" + +msgid "Use interface" +msgstr "Netzwerkadapter aktivieren" + +msgid "Use official channel numbering" +msgstr "Benutze offizielle Kanalnummern" + +msgid "Use original DVB subtitle position" +msgstr "Benutze originale DVB Untertitel-Position" + +msgid "Use original teletext position" +msgstr "Benutze originale Teletext Position" + +msgid "Use power measurement" +msgstr "Stromaufnahme messen" + +msgid "Use the network wizard to configure selected network adapter" +msgstr "" +"Nutzen Sie den Netzwerkassistenten, um den selektierten Adapter zu " +"konfigurieren" + +msgid "Use the network wizard to configure your network\n" +msgstr "Nutzen Sie den Netzwerkassistenten, um Ihr Netzwerk zu konfigurieren\n" + +msgid "" +"Use the up/down keys on your remote control to select an option. After that, " +"press OK." +msgstr "" +"Mit den hoch/runter-Tasten können Sie eine Option auswählen. Danach bitte OK " +"drücken." + +msgid "Use the wizard to set up basic features" +msgstr "Grundeinstellungen jetzt vornehmen" + +msgid "Use these input device settings?" +msgstr "Diese Eingabegeräte Einstellungen benutzten?" + +msgid "Use these settings?" +msgstr "Diese Einstellungen benutzten?" + +msgid "Use this video enhancement settings?" +msgstr "Diese erweiterten A/V-Einstellungen benutzen?" + +msgid "Use trash can in movielist" +msgstr "Verwende Mülleimer in der Filmliste" + +msgid "Used service scan type" +msgstr "Typ der Kanalsuche" + +msgid "User - bouquets" +msgstr "Benutzerspezifische - Kanallisten (Bouquets)" + +msgid "User defined" +msgstr "Benutzerdefiniert" + +msgid "User defined transponder" +msgstr "Vordefinierte Transponder" + +msgid "User interface" +msgstr "Benutzeroberfläche" + +msgid "Username" +msgstr "Benutzername" + +#, python-format +msgid "Using LNB %d" +msgstr "Verwende LNB %d" + +msgid "Using fixed address" +msgstr "Benutze feste Adresse" + +#, python-format +msgid "Using tuner %s" +msgstr "Verwende Tuner %s" + +msgid "" +"Usually when the subtitle language is the same as the audio language, the " +"subtitles will not be used. Enable this option to allow these subtitles to " +"be used." +msgstr "" +"Falls die Untertitelsprache mit der Audiospur-Sprache identisch ist, werden " +"Untertitel standartmässig nicht eingeblendet. Bei Aktivierung dieser Option " +"werden diese Untertitel trotzdem verwendet/angezeigt." + +msgid "VCR scart" +msgstr "Scart-Videorekorder" + +msgid "VMGM (intro trailer)" +msgstr "VMGM (Intro-Trailer)" + +msgid "Vertical" +msgstr "Vertikal" + +msgid "Vertical turning speed" +msgstr "Vertikale Drehgeschwindigkeit" + +msgid "Video PID" +msgstr "Video PID" + +msgid "Video enhancement preview" +msgstr "Erweiterte A/V-Einstellungen Vorschau" + +msgid "Video enhancement settings" +msgstr "Erweiterte A/V-Einstellungen" + +msgid "Video enhancement setup" +msgstr "Erweiterte A/V-Einstellungen" + +msgid "Video fine tuning" +msgstr "Video-Feineinstellung" + +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different " +"input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Auswahl des Videoeingangs\n" +"\n" +"Bitte drücken Sie OK, wenn Sie diese Seite auf Ihrem Fernseher sehen können " +"(oder wählen Sie einen anderen Eingang aus).\n" +"\n" +"Der nächste Videoeingang wird automatisch nach 20 Sekunden getestet." + +msgid "Video mode selection." +msgstr "Auswahl des Videomodus." + +msgid "Video output" +msgstr "Videoausgabe" + +msgid "Video setup" +msgstr "Video-Konfiguration" + +msgid "Video wizard" +msgstr "Video-Assistent" + +#, python-format +msgid "Video: %s fps" +msgstr "Video: %s fps" + +msgid "VideoMode" +msgstr "Video-Modus" + +msgid "Videocodec" +msgstr "Videocodec" + +msgid "Videoformat" +msgstr "Videoformat" + +msgid "Videosize" +msgstr "Videogröße" + +msgid "View Rass interactive..." +msgstr "RaSS Interaktiv anzeigen..." + +msgid "View details" +msgstr "Details ansehen" + +msgid "View list of available " +msgstr "Eine Liste der verfügbaren " + +msgid "View list of available CommonInterface extensions" +msgstr "Eine Liste der verfügbaren Common Interface-Erweiterungen anzeigen." + +msgid "View list of available EPG extensions." +msgstr "Eine Liste der verfügbaren EPG-Erweiterungen anzeigen." + +msgid "View list of available Satellite equipment extensions." +msgstr "Liste der verfügbaren Satellitenausrüstungs-Plugins anzeigen." + +msgid "View list of available communication extensions." +msgstr "Eine Liste der verfügbaren Kommunikations-Erweiterungen anzeigen." + +msgid "View list of available default settings" +msgstr "Eine Liste der verfügbaren Standard-Einstellungen anzeigen." + +msgid "View list of available display and userinterface extensions." +msgstr "" +"Eine Liste der verfügbaren Display- und Userinterface-Erweiterungen anzeigen." + +msgid "View list of available multimedia extensions." +msgstr "Eine Liste der verfügbaren Multimedia-Erweiterungen anzeigen." + +msgid "View list of available networking extensions" +msgstr "Eine Liste der verfügbaren Netzwerk-Erweiterungen anzeigen." + +msgid "View list of available recording extensions" +msgstr "Eine Liste der verfügbaren Aufnahme-Erweiterungen anzeigen." + +msgid "View list of available skins" +msgstr "Eine Liste der verfügbaren Skins anzeigen." + +msgid "View list of available software extensions" +msgstr "Eine Liste der verfügbaren Software-Erweiterungen anzeigen." + +msgid "View list of available system extensions" +msgstr "Eine Liste der verfügbaren System-Erweiterungen anzeigen." + +msgid "View photos..." +msgstr "Photos ansehen" + +msgid "View teletext..." +msgstr "Videotext anzeigen..." + +msgid "View video CD..." +msgstr "Video CD ansehen" + +msgid "Virtual keyboard" +msgstr "Virtuelle Tastatur" + +msgid "Voltage mode" +msgstr "Spannungs-Modus" + +msgid "Volume" +msgstr "Lautstärke" + +msgid "W" +msgstr "W" + +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "WLAN Verbindung" + +msgid "WPA" +msgstr "WPA" + +msgid "WPA or WPA2" +msgstr "WPA oder WPA2" + +msgid "WPA2" +msgstr "WPA2" + +msgid "WSS on 4:3" +msgstr "WSS bei 4:3" + +msgid "Waiting" +msgstr "Warte" + +msgid "Waiting for mount" +msgstr "Warte auf Einhängung" + +msgid "Waiting for partition" +msgstr "Warte auf Partition" + +msgid "Wakeup" +msgstr "Anschalten" + +msgid "Wakeup TV from standby" +msgstr "Fernseher aus Standby anschalten" + +msgid "Wakeup receiver for start timer" +msgstr "Receiver aufwecken für Start-Timer" + +msgid "Wakeup receiver from standby" +msgstr "A/V-Receiver aus Standby anschalten" + +msgid "Wakeup signal from TV" +msgstr "Anschaltsignal vom Fernseher" + +msgid "Wakeup type" +msgstr "Aufweck-Modus" + +msgid "Warning: no LNB; using factory defaults." +msgstr "Warnung: kein LNB; verwende Werkseinstellung" + +msgid "Watch movies..." +msgstr "Filme abspielen..." + +msgid "Watch recordings..." +msgstr "Aufgenommene Filme abspielen..." + +msgid "Wed" +msgstr "Mi" + +msgid "Wednesday" +msgstr "Mittwoch" + +msgid "Weekday" +msgstr "Wochentag" + +msgid "Weighted position" +msgstr "Gewichtete Position" + +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start " +"cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"Willkommen zum Cutlist-Editor.\n" +"\n" +"Spule zum Anfang des Bereiches, der entfernt werden soll. Drücke OK und " +"wähle 'Cut starten'.\n" +"\n" +"Dann spule zum Ende des Bereiches, drücke OK und wähle 'Cut beenden' - " +"fertig." + +msgid "" +"Welcome to the image upgrade wizard. The wizard will assist you in upgrading " +"the firmware of your receiver by providing a backup facility for your " +"current settings and a short explanation of how to upgrade your firmware." +msgstr "" +"Willkommen im Image-Upgrade-Assistenten. Der Assistent wird Ihnen bei der " +"Aktualisierung der Firmware helfen. Sie können mit diesem Assistenten die " +"aktuellen Einstellungen sichern und bekommen eine kleine Einweisung, wie Sie " +"die Firmware aktualisieren können." + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide " +"you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" +"Willkommen.\n" +"\n" +"Wenn Sie Ihren Receiver mit dem Internet verbinden möchten, wird Sie dieser " +"Assistent durch die grundlegenden Netzwerkeinstellungen führen.\n" +"\n" +"Drücken Sie OK, um Ihr Netzwerk zu konfigurieren" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" +"Willkommen.\n" +"\n" +"Der Startassistent wird Sie durch die Grundeinstellungen Ihres Receivers " +"führen.\n" +"Drücken Sie OK auf Ihrer Fernbedienung, um zum nächsten Schritt zu gelangen." + +msgid "Welcome..." +msgstr "Willkommen..." + +msgid "West" +msgstr "West" + +msgid "West limit set" +msgstr "Westliches Limit" + +msgid "What do you want to scan?" +msgstr "Was wollen Sie scannen?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "Falls aktiviert, kann PiP mit der Exit-Taste geschlossen werden." + +msgid "" +"When enabled the arrow buttons around the OK button will follow the " +"'neutrino' style zap controls instead of the enigma2 style." +msgstr "" +"Falls aktiviert, kann das Verhalten der Pfeil-Tasten, welche die OK-Taste " +"umschließen, auf den Neutrino-Stil angepasst werden." + +msgid "" +"When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the " +"'neutrino' style zap controls instead of the enigma2 style." +msgstr "" +"Falls aktiviert, können die links, rechts, CH+/-, B+/-, P+/- Tasten auf den " +"Neutrino-Stil angepasst werden." + +msgid "" +"When enabled you can specify a timeframe to ignore the shutdown timer when " +"the receiver is in standby mode" +msgstr "" +"Falls aktiviert, kann ein Zeitfenster angegeben werden, indem der Ausschalt-" +"Timer nicht beachtet wird, auch wenn sich der Receiver im Standby-Modus " +"befindet." + +msgid "" +"When enabled you can specify a timeframe were the inactivity sleeptimer is " +"ignored. Not the detection is disabled during this timeframe but the " +"inactivity timeout is disabled" +msgstr "" +"Falls aktiviert, kann ein Zeitbereich spezifiziert werden, in dem der " +"Inaktivität-Sleeptimer ignoriert wird. Nicht die Erkennung wird deaktiviert " +"während dieses Zeitbereichs, sondern der Timeout für die Inaktivität." + +msgid "" +"When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons " +"instead of opening the channel selection list." +msgstr "" +"Falls aktiviert, kann mit den links, rechts, CH+/-, B+/-, P+/- Tasten " +"zwischen den Kanälen umgeschaltet werden anstelle die Kanalliste zu öffnen." + +msgid "" +"When enabled you get the channel selection list via the OK button, the " +"infobar toggle is then transfered to exit button" +msgstr "" +"Beim Betätigen der OK-Taste wird die Kanalliste angezeigt und die Anzeige " +"der Infobar auf die EXIT-Taste gelegt, wenn diese Einstellung aktiviert ist." + +msgid "" +"When enabled, AIT data will be included in http streams. This allows a " +"client receiver to use HbbTV." +msgstr "" +"Bei Aktivierung werden AIT Daten im HTTP Stream eingebaut. Dies erlaubt die " +"Verwendung von HbbTV mit Ihrem Receiver." + +msgid "" +"When enabled, ECM data will be included in http streams. This allows a " +"client receiver to do the descrambling." +msgstr "" +"Bei Aktivierung werden ECM Daten im HTTP Stream eingebaut. Dies erlaubt das " +"Entschlüsseln der empfangenen Daten." + +msgid "" +"When enabled, EIT data will be included in http streams. This allows a " +"client receiver to show EPG." +msgstr "" +"Bei Aktivierung werden EIT Daten im HTTP Stream eingebaut. Dies erlaubt die " +"Darstellung der EPG am Receiver." + +msgid "" +"When enabled, a popup message will be shown when a movie has finished and " +"the next one will start." +msgstr "" +"Anzeige eines Popups wenn ein Film fertig wiedergegeben wurde und die " +"nächste Wiedergabe startet." + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "Benachrichtigung anzeigen, wenn eine Aufnahme startet" + +msgid "" +"When enabled, a radio background image will be visible while listening to a " +"radio channel." +msgstr "" +"Anzeige eines Radio-Hintergrundsymbols bei Wiedergabe eines Radio-Kanals." + +msgid "" +"When enabled, a recording is allowed to interrupt live tv, when there are no " +"free tuners." +msgstr "" +"Ein geplanter Aufnahme-Timer kann die aktuelle Live-Sendung unterbrechen, " +"wenn ansonsten keine freien Tuner zur Verfügung stehen." + +msgid "" +"When enabled, a warning will be displayed and the user will get an option to " +"stop or to continue the timeshift." +msgstr "" +"Fall aktiviert, wird eine Warnung angezeigt und der Benutzer kann wählen " +"zwischen dem Beenden oder Fortfahren der Timeshift-Aufnahme." + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" +"Eine Authentifizierung ist erforderlich, um HTTP-Streams zu sehen, wenn " +"diese Einstellung aktiviert ist." + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "Kanalnummerierung beginnt bei '1' für alle Bouquets." + +msgid "" +"When enabled, content with an aspect ratio of 4:3 will be stretched to fit " +"the screen." +msgstr "" +"Inhalte mit einem Bildschirmformat von 4:3 werden gestreckt um die volle " +"Bildschirmfläche in Anspruch zu nehmen." + +msgid "" +"When enabled, continue to the next bouquet when the last channel of the " +"current bouquet is reached while changing channels." +msgstr "" +"Wechselt zum nächsten Bouquet wenn der letzte Kanal bei Kanalwechsel " +"erreicht wurde." + +msgid "" +"When enabled, deleted recordings are moved to the trash can, instead of " +"being deleted immediately." +msgstr "" +"Verschiebe Aufnahmem in den Mülleimer bevor sie endgültig gelöscht werden." + +msgid "" +"When enabled, display the EIT now/next eventdata in infobar. When disabled, " +"display now/next eventdata from the EPG cache instead." +msgstr "" +"EIT jetzt/danach Sendungsdaten in Infoleiste anzeigen. Bei Deaktivierung " +"zeigt jetzt/danach Sendungsdaten des EPG Caches an." + +msgid "" +"When enabled, encryption info will be shown in the infobar (when supported " +"by the skin)." +msgstr "" +"Verschlüsselungsinformationen in der Infoleiste anzeigen, wenn vom Skin " +"unterstützt." + +msgid "" +"When enabled, error messages related to the Common Interface module will not " +"be shown." +msgstr "" +"Fehlermeldungen des allgemeinen Schnittstellen Modules (CI) werden nicht " +"angezeigt." + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "Zapping-Fehler nicht anzeigen." + +msgid "" +"When enabled, external subtitles will be always turned on for playback movie." +msgstr "" +"Falls aktiviert, werden externe Untertitel (sofern vorhanden) beim Abspielen " +"von Filmen immer angezeigt." + +msgid "" +"When enabled, graphical DVB subtitles are preferred over teletext subtitles, " +"when both types are available." +msgstr "" +"DVB grafische Untertitel werden den Teletext Untertiteln vorgezogen falls " +"beide zur Verfügung stehen." + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "DVB grafische Untertitel horizontal zentrieren." + +msgid "" +"When enabled, graphical DVB subtitles will be displayed at their original " +"position." +msgstr "" +"DVB grafische DVB Untertitel immer in ihrer ursprünglichen Position anzeigen." + +msgid "" +"When enabled, graphical DVB subtitles will be displayed in yellow, instead " +"of the original color." +msgstr "" +"DVB grafische Untertitel immer gelb anzeigen, anstatt in ihrer " +"ursprünglichen Farbe." + +msgid "" +"When enabled, http streams are descrambled on the server side. The (remote) " +"client receiver does not have to do descrambling." +msgstr "" +"HTTP Streams am Server entschlüsseln. Der empfangende Receiver muss keine " +"Art von Entschlüsselung selbst vornehmen." + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "" +"Falls aktiviert, kann der Movieplayer mit der Exit-Taste geschlossen werden." + +msgid "" +"When enabled, measure power consumption to detect when the rotor stops " +"turning (when supported by the tuner)." +msgstr "" +"Stromverbrauch messen um festzustellen wann der Rotor aufhört sich zu drehen " +"(falls vom Tuner unterstützt)." + +msgid "When enabled, number markers will be hiden." +msgstr "Falls aktiviert, werden Nummer-Marker nicht angezeigt." + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "Sender können in mehreren Bouqets gruppiert werden." + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "Zeige Kanalnummer in Kanalauswahl" + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "Bevorzuge Untertitel für Hörgeschädigte" + +msgid "" +"When enabled, subtitles for the hearing impaired will be preferred over " +"normal subtitles, when both types are available." +msgstr "" +"Bevorzuge spezielle Untertitel für Hörgeschädigte wenn solche und normale " +"Untertitel zur Verfügung stehen." + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "Cachen von Teletext-Seiten um schnellen Zugriff zu erlauben." + +msgid "" +"When enabled, teletext subtitles will be displayed at their original " +"position." +msgstr "Teletext Untertitel an ihrer ursprünglichen Position anzeigen." + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "Falls aktiviert, wird die Option VCR-SCART im Hauptmenü angezeigt." + +msgid "" +"When enabled, the channel selection list will be hidden while listening to a " +"radio channel" +msgstr "Kanalliste während dem Radiohören verstecken." + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "Infoleiste anzeigen bei Sendungswechsel." + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "Infoleiste bei Kanalwechsel anzeigen." + +msgid "" +"When enabled, the infobar will be displayed when skipping forwards/backwards " +"during media playback." +msgstr "Infoleiste beim Spulen in der Medienwiedergabe anzeigen ." + +msgid "" +"When enabled, the lenght of each recording will be shown in the movielist " +"(this might cause some additional loading time)." +msgstr "" +"Spielzeit aller Aufnahmen in der Filmliste anzeigen (verursacht höhere " +"Ladezeiten)." + +msgid "" +"When enabled, the original line breaks will be removed from the teletext " +"subtitles." +msgstr "Ursprüngliche Zeilenumbrüche in den Teletext Untertiteln entfernen." + +msgid "" +"When enabled, the receiver will automatically use the audio track which you " +"selected before." +msgstr "Automatische Wahl der zuvor ausgewählten Audiospur." + +msgid "" +"When enabled, the receiver will automatically use the subtitles which you " +"selected before." +msgstr "Automatische Wahl der zuvor ausgewählten Untertitel." + +msgid "" +"When enabled, the receiver will no longer monitor the tuned transponder for " +"possible changes. Do not use this option unless you know what you are doing." +msgstr "" +"Veränderungen des Tuner-Transponders nicht mehr überwachen. Bitte wählen Sie " +"diese Option nur falls Sie sich ganz sicher sind was Sie tun." + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "AC3 Tonspur verwenden (falls vorhanden)." + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" +"Der Receiver wählt (falls verfügbar) die AC3+ Tonspur aus, wenn diese " +"Einstellung aktiviert ist." + +msgid "" +"When enabled, timeshift starts automatically in background after specified " +"time." +msgstr "" +"Falls aktiviert, startet im Hintergrund automatisch die Timeshift-Aufnahme " +"nach der eingestellten Zeit." + +msgid "When enabled, use DHCP for the IP configuration." +msgstr "Dynamische IP Adressen (DHCP) für IP-Vergabe verwenden." + +msgid "" +"When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "Der Receiver erkennt Aktivitäten am Video-SCART Eingang." + +msgid "" +"When nonzero, a recording will start earlier than the starting time " +"indicated by the EPG." +msgstr "" +"Aufnahme früher beginnen, als Startzeit die EPG zur Verfügung stellt (falls " +"nicht 0)." + +msgid "" +"When nonzero, a recording will stop later than the ending time indicated by " +"the EPG." +msgstr "" +"Aufnahme früher stoppen, als Endzeit die EPG zur Verfügung stellt (falls " +"nicht 0)." + +msgid "" +"When the content has an aspect ratio of 16:9, choose whether to scale/" +"stretch the picture." +msgstr "Skalieren/Strecken wenn Inhalt ein Bildformat von 16:9 aufweist." + +msgid "" +"When the content has an aspect ratio of 4:3, choose whether to scale/stretch " +"the picture." +msgstr "Skalieren/Strecken wenn Inhalt ein Bildformat von 4:3 aufweist." + +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart " +"automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"Wenn Sie die Werkseinstellungen wiederherstellen, verlieren Sie sämtliche " +"Konfigurationsdateien\n" +"(einschließlich Kanalliste, Tuner-Konfiguration...)\n" +"Nach der Wiederherstellung wird der Receiver automatisch neu starten\n" +"\n" +"Werkseinstellungen wirklich wiederherstellen?" + +msgid "Where do you want to backup your settings?" +msgstr "Wohin möchten Sie die Einstellungen sichern?" + +msgid "Where to save temporary timeshift recordings?" +msgstr "Wo wollen Sie temporäre Timeshift Aufnahmen speichern?" + +msgid "Wireless LAN" +msgstr "Funk-Netzwerk" + +msgid "Wireless network" +msgstr "Funk-Netzwerk" + +msgid "Wireless network configuration..." +msgstr "Funk-Netzwerk Konfiguration." + +msgid "Wireless network connection setup" +msgstr "Funk-Netzwerk Konfiguration" + +msgid "Wireless network connection setup." +msgstr "Funk-Netzwerk Konfiguration." + +msgid "Wireless network state" +msgstr "Funk-Netzwerk Status" + +msgid "With popup" +msgstr "mit Popup" + +msgid "Without popup" +msgstr "ohne Popup" + +msgid "Would you like to install a softcam?" +msgstr "Möchten Sie Softcam installieren?" + +msgid "Write error while recording. Disk full?\n" +msgstr "Schreibfehler bei der Aufnahme. Festplatte voll?\n" + +msgid "Write failed!" +msgstr "Schreiben fehlgeschlagen!" + +msgid "YPbPr" +msgstr "YPbPr" + +msgid "Year" +msgstr "Jahr" + +msgid "Yellow DVB subtitles" +msgstr "Gelbe DVB Untertitel" + +msgid "Yes" +msgstr "Ja" + +msgid "Yes and save" +msgstr "Ja und Speichern" + +msgid "Yes and save in movie dir" +msgstr "Ja, diesen Film im Filmordner speichern" + +msgid "Yes to all" +msgstr "Ja, zu allen" + +msgid "Yes, always" +msgstr "Ja, immer" + +msgid "Yes, and delete this movie" +msgstr "Ja, diesen Film löschen" + +msgid "Yes, backup my settings!" +msgstr "Ja, meine Einstellungen sichern!" + +msgid "Yes, delete this movie and return to movie list" +msgstr "Ja, lösche diesen Film und kehre zur Filmliste zurück" + +msgid "Yes, do a manual scan now" +msgstr "Ja, eine manuelle Suche durchführen" + +msgid "Yes, do an automatic scan now" +msgstr "Ja, eine automatische Suche durchführen" + +msgid "Yes, do another manual scan now" +msgstr "Ja, eine weitere manuelle Suche durchführen" + +msgid "Yes, perform a shutdown now." +msgstr "Ja, jetzt herunterfahren." + +msgid "Yes, restore the settings now" +msgstr "Ja, die Einstellungen jetzt wiederherstellen" + +msgid "Yes, returning to movie list" +msgstr "Ja, zurück zur Filmauswahl" + +msgid "Yesterday" +msgstr "Gestern" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" +"Sie haben bereits eine Kanalliste installiert.\n" +"Wollen Sie \"%s\" entfernen?" + +msgid "You can cancel the installation." +msgstr "Sie können die Installation abbrechen." + +msgid "You can cancel the removal." +msgstr "Sie können das Entfernen abbrechen." + +msgid "You can continue watching TV etc. while this is running." +msgstr "" +"Der Vorgang findet im Hintergrund statt, Sie können Ihren Receiver ganz " +"normal weiter nutzen." + +msgid "You can install this plugin." +msgstr "Sie können dieses Plugin installieren." + +msgid "You can only burn receiver recordings!" +msgstr "Sie können nur Receiver-Aufnahmen brennen!" + +msgid "You can remove this plugin." +msgstr "Sie können dieses Plugin deinstallieren." + +msgid "You cannot delete this!" +msgstr "Löschen nicht möglich!" + +msgid "You didn't select a channel to record from." +msgstr "Sie haben keinen Sender zum Aufnehmen ausgewählt." + +msgid "" +"You have chosen to backup your settings. Please press OK to start the backup " +"now." +msgstr "" +"Sie haben sich entschieden Ihre Einstellungen zu sichern. Drücken Sie OK, um " +"den Vorgang zu starten." + +msgid "" +"You have chosen to create a new .NFI flasher bootable USB stick. This will " +"repartition the USB stick and therefore all data on it will be erased." +msgstr "" +"Sie möchten einen bootfähigen USB-Stick zum Flashen von NFI-Images " +"erstellen. Dabei wird der USB-Stick repartitioniert, wodurch alle darauf " +"enthaltenen Daten verloren gehen." + +msgid "" +"You have chosen to restore your settings. Enigma2 will restart after " +"restore. Please press OK to start the restore now." +msgstr "" +"Sie haben sich entschlossen, Ihre Einstellungen wiederherzustellen. Die " +"Benutzeroberfläche wird nach der Wiederherstellung neu starten. Bitte " +"drücken Sie OK, um mit der Wiederherstellung zu beginnen." + +#, python-format +msgid "You have to wait %s!" +msgstr "Sie müssen %s warten!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, " +"please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update " +"instructions from the website, your new firmware will ask you to restore " +"your settings." +msgstr "" +"Sie müssen einen PC mit Ihrem Receiver verbunden haben. Wenn Sie " +"weiterführende Informationen benötigen, besuchen Sie die Webseite http://www." +"dm7025.de.\n" +"Der Receiver wird nun ausgeschaltet. Nachdem Sie das Update wie auf der " +"Webseite beschrieben durchgeführt haben, wird Sie die neue Firmware fragen, " +"ob Sie die Einstellungen wiederherstellen wollen." + +msgid "You system does not support ext4" +msgstr "Ihr System unterstützt das ext4 Dateisystem nicht" + +msgid "" +"Your backup succeeded. We will now continue to explain the further upgrade " +"process." +msgstr "" +"Ihre Sicherung ist geglückt. Der Receiver wird nun den weiteren " +"Aktualisierungs-Prozess erklären." + +msgid "" +"Your collection exceeds the size of a single layer medium, you will need a " +"blank dual layer DVD!" +msgstr "" +"Die Zusammenstellung überschreitet die Größe eines einfachen Mediums, Sie " +"werden einen Doppelschicht-Rohling (Dual Layer) benötigen!" + +msgid "Your current collection will get lost!" +msgstr "Ihre aktuelle Zusammenstellung geht dabei verloren!" + +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"Ihre Frontprozessor-Firmware muss aktualisiert werden.\n" +"Drücken Sie OK, um das Upgrade zu starten." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Ihr Frontprozessor wird aktualisiert\n" +"Bitte warten Sie, bis Ihr Receiver neu startet\n" +"Das kann einige Minuten dauern" + +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"Ihre Internetverbindung funktioniert nicht!\n" +"Bitte wählen Sie eine Option zum Fortfahren." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "Verbindung zum Internet aufgebaut (ip: %s)" + +msgid "Your network configuration has been activated." +msgstr "Ihre Netzwerk-Konfiguration wurde aktiviert." + +msgid "Your receiver does not have an internet connection" +msgstr "Keine Verbindung zum Internet vorhanden" + +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"Ihr Receiver ist nun konfiguriert.\n" +"\n" +"Ihre Internetverbindung funktioniert nun.\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Ihr Receiver ist jetzt konfiguriert.\n" +"\n" +"Ihre Internetverbindung funktioniert nun.\n" +"\n" +"Bitte OK drücken zum Fortfahren." + +msgid "Your receiver is rebooting" +msgstr "Ihr Receiver startet neu" + +msgid "Your receiver is shutting down" +msgstr "Ihr Receiver wird ausgeschaltet" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "Ihr Receiver schaltet sich nun aus. Bitte warten Sie einen Moment..." + +msgid "" +"Your receiver might be unusable now. Please consult the manual for further " +"assistance before rebooting your receiver." +msgstr "" +"Ihr Receiver könnte jetzt unbenutzbar sein. Bitte konsultieren Sie das " +"Handbuch, bevor Sie Ihren Receiver neustarten." + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "Der Receiver geht jetzt gemäß des Sleeptimers in den Standby." + +msgid "Your receiver will got to standby due to inactivity." +msgstr "Der Receiver geht jetzt wegen Inaktivität in den Standby." + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "Ihr Receiver startet neu nach Betätigung der OK-Taste." + +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"Ihre Funk-Internetverbindung konnte nicht gestartet werden!\n" +"Ist Ihr USB WLAN-Stick korrekt angeschlossen?\n" +"\n" +"Bitte wählen Sie eine Option zum Fortfahren." + +msgid "Zap" +msgstr "Umschalten" + +msgid "Zap back to previously tuned service?" +msgstr "Zurückschalten zum vorher laufenden Sender?" + +msgid "Zap back to service before positioner setup?" +msgstr "" +"Zurückschalten zum Sender der vor dem\n" +"Öffnen der Motor-Einstellungen lief?" + +msgid "Zap back to service before tuner setup?" +msgstr "Zurückschalten zum vorher laufenden Sender?" + +msgid "Zap focus to Picture in Picture" +msgstr "Fokus auf Bild im Bild legen" + +msgid "Zap focus to main screen" +msgstr "Fokus auf Hauptbild legen" + +msgid "Zap mode" +msgstr "Zap Modus" + +msgid "Zap to selected channel" +msgstr "Schalte zum ausgewählten Sender um" + +msgid "" +"Zap to selected channel, or show detailed event info (depends on " +"configuration)" +msgstr "" +"Schalte zum ausgewählten Sender um oder zeige detaillierte " +"Sendungsinformation an (von Ihrer Einstellung abhängig)." + +msgid "[alternative edit]" +msgstr "[Alternativen-Bearbeitung]" + +msgid "[bouquet edit]" +msgstr "[Bouquet-Editor]" + +msgid "[favourite edit]" +msgstr "[Favoriten-Editor]" + +msgid "[move mode]" +msgstr "[Verschiebemodus]" + +msgid "a gui to assign services/providers to common interface modules" +msgstr "" +"Eine Benutzeroberfläche, um einem Common Interface Kanäle/Provider " +"zuzuweisen." + +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "" +"Eine Benutzeroberfläche, um einem Common Interface Kanäle/Provider/CAIDs " +"zuzuweisen." + +msgid "abort alternatives edit" +msgstr "Alternativen-Bearbeitung abbrechen" + +msgid "abort bouquet edit" +msgstr "Bouqueteditieren abbrechen" + +msgid "abort favourites edit" +msgstr "Favoriteneditor abbrechen" + +msgid "about to start" +msgstr "Startet gleich" + +msgid "activate network adapter configuration" +msgstr "Netzwerkverbindung aktivieren" + +msgid "add alternatives" +msgstr "Alternativen hinzufügen" + +msgid "add bookmark" +msgstr "Lesezeichen hinzufügen" + +msgid "add bouquet" +msgstr "Bouquet einfügen" + +msgid "add marker" +msgstr "Marker einfügen" + +msgid "add service to bouquet" +msgstr "Zu Bouquet hinzufügen" + +msgid "add service to favourites" +msgstr "Kanal zu Favoriten hinzufügen" + +msgid "add to parental protection" +msgstr "Jugendschutz anschalten" + +msgid "adult movie/drama" +msgstr "Erwachsenenfilm/Drama" + +msgid "advanced" +msgstr "Erweitert" + +msgid "adventure/western/war" +msgstr "Abenteuer/Western/Krieg" + +msgid "advertisement/shopping" +msgstr "Werbung/Einkaufen" + +msgid "after " +msgstr "nach" + +msgid "alphabetic" +msgstr "Alphabet" + +msgid "alphabetic reverse" +msgstr "Umgekehrtes Alphabet" + +msgid "alternative" +msgstr "alternativ" + +msgid "always" +msgstr "immer" + +msgid "and select next channel" +msgstr "und nachfolgenden Kanal auswählen" + +msgid "and select previous channel" +msgstr "und vorherigen Kanal auswählen" + +msgid "arts/culture (without music, general)" +msgstr "Kunst/Kultur (ohne Musik, Allgemeines)" + +msgid "arts/culture magazine" +msgstr "Kunst/Kulturmagazine" + +msgid "athletics" +msgstr "Leichtathletik (Sport)" + +msgid "audio tracks" +msgstr "Tonspuren" + +msgid "auto" +msgstr "Automatisch" + +msgid "automatic" +msgstr "Automatisch" + +msgid "back" +msgstr "Zurück" + +msgid "background image" +msgstr "Hintergrundbild" + +msgid "ballet" +msgstr "Ballett" + +#, python-format +msgid "bc%s" +msgstr "bc%s" + +msgid "better" +msgstr "Besser" + +msgid "black" +msgstr "Schwarz" + +msgid "black & white" +msgstr "Schwarz & Weiß" + +msgid "blacklist" +msgstr "Negativliste" + +msgid "blue" +msgstr "Blau" + +msgid "broadcasting/press" +msgstr "Rundsendung/Presse" + +msgid "by date" +msgstr "Aufnahmen nach Datum sortieren" + +msgid "cartoon/puppets" +msgstr "Zeichentrickfilm/Marionetten" + +msgid "center" +msgstr "Zentriert" + +msgid "centered" +msgstr "zentriert" + +msgid "centered, wrapped" +msgstr "zentriert, umgebrochen" + +msgid "chapters" +msgstr "Kapitel" + +msgid "childrens's/youth program (general)" +msgstr "Kinder/Jugendprogramm (Allgemein)" + +msgid "circular left" +msgstr "Links-zirkular" + +msgid "circular right" +msgstr "Rechts-zirkular" + +msgid "comedy" +msgstr "Komödie" + +msgid "complex" +msgstr "Komplex" + +msgid "config menu" +msgstr "Konfigurationsmenü" + +msgid "confirmed" +msgstr "Bestätigt" + +msgid "connected" +msgstr "Verbunden" + +msgid "continue" +msgstr "Weiter" + +msgid "cooking" +msgstr "Kochen" + +msgid "copy to bouquets" +msgstr "In Bouquets kopieren" + +msgid "create directory" +msgstr "Verzeichnis erstellen" + +#, python-format +msgid "currently installed image: %s" +msgstr "Derzeit installiertes Image: %s" + +msgid "daily" +msgstr "Täglich" + +msgid "day" +msgstr "Tag" + +msgid "default" +msgstr "Standard" + +msgid "delete cut" +msgstr "Schnitt löschen" + +msgid "delete..." +msgstr "löschen..." + +msgid "descramble and record ecm" +msgstr "Entschlüsseln und Aufnahme ECM" + +msgid "detective/thriller" +msgstr "Krimi/Thriller" + +msgid "disable" +msgstr "Deaktivieren" + +msgid "disable move mode" +msgstr "Verschiebemodus ausschalten" + +msgid "disabled" +msgstr "Deaktiviert" + +msgid "disconnected" +msgstr "Nicht verbunden" + +msgid "discussion/interview/debate" +msgstr "Diskussion/Interview/Debatte" + +msgid "do nothing" +msgstr "Nichts" + +msgid "documentary" +msgstr "Dokumentationen" + +msgid "don't descramble, record ecm" +msgstr "Nicht entschlüsseln, Aufnahme ECM" + +msgid "done!" +msgstr "Erledigt!" + +msgid "east" +msgstr "Osten" + +msgid "economics/social advisory" +msgstr "Wirtschaft/Soziale Ratgeber" + +msgid "edit alternatives" +msgstr "Alternativen bearbeiten" + +msgid "education/science/factual topics (general)" +msgstr "Bildung/Wissenschaft/Sachbezogene Themen (Allgemein)" + +msgid "empty" +msgstr "Leer" + +msgid "enable" +msgstr "Aktivieren" + +msgid "enable bouquet edit" +msgstr "Bouqueteditieren anschalten" + +msgid "enable favourite edit" +msgstr "Favoriteneditor anschalten" + +msgid "enable move mode" +msgstr "Verschiebemodus aktivieren" + +msgid "enabled" +msgstr "Aktiviert" + +msgid "end alternatives edit" +msgstr "Alternativen-Bearbeitung beenden" + +msgid "end bouquet edit" +msgstr "Bouqueteditieren beenden" + +msgid "end cut here" +msgstr "Schnitt endet hier" + +msgid "end favourites edit" +msgstr "Favoriteneditor beenden" + +msgid "entertainment (10-16 year old)" +msgstr "Unterhaltung (10-16 Jahre)" + +msgid "entertainment (6-14 year old)" +msgstr "Unterhaltung (6-14 Jahre)" + +msgid "equal to" +msgstr "Gleich wie" + +msgid "equestrian" +msgstr "Pferdesport" + +msgid "exit DVD player or return to file browser" +msgstr "DVD Player verlassen oder zurück zum Dateimanager" + +msgid "exit movielist" +msgstr "Verlasse Filmliste" + +msgid "exit network adapter configuration" +msgstr "Netzwerkadapter-Konfiguration verlassen" + +msgid "exit networkadapter setup menu" +msgstr "Netzwerkadaptermenü verlassen" + +msgid "experimental film/video" +msgstr "Experimentelle Filme/Video" + +msgid "false" +msgstr "Nein" + +msgid "fashion" +msgstr "Mode" + +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "Dateiformate (BMP, PNG, JPG, GIF)" + +msgid "filename" +msgstr "Dateiname" + +msgid "film/cinema" +msgstr "Film/Kino" + +msgid "fine arts" +msgstr "Kunstwissenschaft" + +msgid "fine-tune your display" +msgstr "Ändern Sie die Feineinstellungen Ihres Bildschirms" + +msgid "fitness & health" +msgstr "Fitness & Gesundheit" + +msgid "flat alphabetic" +msgstr "Aufnahmen alphabetisch sortieren" + +msgid "flat alphabetic reverse" +msgstr "Umgekehrtes Alphabet" + +msgid "folk/traditional music" +msgstr "Volks/Traditionelle Musik" + +msgid "football/soccer" +msgstr "Fußball" + +msgid "foreign countries/expeditions" +msgstr "Ausland/Expeditionen" + +msgid "forward to the next chapter" +msgstr "Weiter zum nächsten Kapitel" + +msgid "free" +msgstr "Frei" + +msgid "from" +msgstr "Von" + +msgid "further education" +msgstr "Weiterbildung" + +msgid "game show/quiz/contest" +msgstr "Spielsendung/Quiz/Wettbewerb" + +msgid "gardening" +msgstr "Gartenarbeit" + +msgid "go to deep standby" +msgstr "In Deep Standby gehen" + +msgid "go to standby" +msgstr "In Standby gehen" + +msgid "grab this frame as bitmap" +msgstr "Diesen Frame als Bitmap speichern" + +msgid "green" +msgstr "Grün" + +msgid "handicraft" +msgstr "Handwerkskunst" + +msgid "height" +msgstr "Höhe" + +msgid "help..." +msgstr "Hilfe..." + +msgid "horizontal" +msgstr "Horizontal" + +msgid "information/education/school program" +msgstr "Information/Bildung/Schulprogramm" + +msgid "init module" +msgstr "Modul initialisieren" + +msgid "init modules" +msgstr "Module initialisieren" + +msgid "insert mark here" +msgstr "Markierung hier einfügen" + +msgid "invalid type" +msgstr "Ungültige Werte" + +msgid "jazz" +msgstr "Jazz" + +msgid "jump back to the previous title" +msgstr "Zum letzten Titel springen" + +msgid "jump forward to the next title" +msgstr "Zum nächsten Titel springen" + +msgid "languages" +msgstr "Sprachen" + +msgid "leave movie player..." +msgstr "Medienplayer verlassen..." + +msgid "left" +msgstr "Links" + +msgid "left, wrapped" +msgstr "links, umgebrochen" + +msgid "leisure hobbies (general)" +msgstr "Freizeitbeschäftigungen (Allgemein)" + +msgid "length" +msgstr "Länge" + +msgid "limit ..., aborting !" +msgstr "Limit ..., Abbruch!" + +msgid "list style compact" +msgstr "Kompakte Listenansicht" + +msgid "list style compact with description" +msgstr "Kompakte Listenansicht mit Beschreibung" + +msgid "list style default" +msgstr "Standard Listenansicht" + +msgid "list style single line" +msgstr "Einzeilige Listenansicht" + +msgid "literature" +msgstr "Literatur" + +msgid "live broadcast" +msgstr "Live-Ãœbertragung" + +msgid "locked" +msgstr "gesperrt" + +msgid "loopthrough to" +msgstr "Verbunden mit" + +msgid "magazines/reports/documentary" +msgstr "Magazine/Reportagen/Dokumentationen" + +msgid "manual" +msgstr "Manuell" + +msgid "martial sports" +msgstr "Kampfsport" + +msgid "medicine/physiology/psychology" +msgstr "Medizin/Physiologie/Psychologie" + +msgid "menu" +msgstr "Menü" + +msgid "mins" +msgstr "Minuten" + +msgid "minutes" +msgstr "Minuten" + +msgid "month" +msgstr "Monat" + +msgid "motor sport" +msgstr "Motorsport" + +msgid "motoring" +msgstr "Motorsport" + +msgid "move down to last entry" +msgstr "Zum letzten Eintrag gehen" + +msgid "move down to next entry" +msgstr "Zum nächsten Eintrag gehen" + +msgid "move up to first entry" +msgstr "Zum ersten Eintrag gehen" + +msgid "move up to previous entry" +msgstr "Zum vorherigen Eintrag gehen" + +msgid "movie/drama (general)" +msgstr "Film/Drama (Allgemein)" + +msgid "multinorm" +msgstr "Multinorm" + +msgid "music/ballet/dance (general)" +msgstr "Musik/Ballett/Tanz (Allgemein)" + +msgid "musical/opera" +msgstr "Musical/Oper" + +msgid "nature/animals/environment" +msgstr "Natur/Tiere/Umwelt" + +msgid "never" +msgstr "Niemals" + +msgid "new media" +msgstr "Neue Medien" + +msgid "news magazine" +msgstr "Nachrichtenmagazine" + +msgid "news/current affairs (general)" +msgstr "Nachrichten/Tagesgeschehen (Allgemein)" + +msgid "news/weather report" +msgstr "Nachrichten/Wetterbericht" + +msgid "no" +msgstr "Nein" + +msgid "no CAId selected" +msgstr "Keine CAID ausgewählt" + +msgid "no CI slots found" +msgstr "Kein CI Slot gefunden" + +msgid "no module found" +msgstr "Kein Modul gefunden" + +msgid "no storage devices found" +msgstr "Kein Laufwerk gefunden" + +msgid "none" +msgstr "Keine" + +msgid "normal" +msgstr "Normal" + +msgid "not configured" +msgstr "Nicht konfiguriert" + +msgid "not locked" +msgstr "Kein Signal" + +msgid "not supported" +msgstr "Nicht unterstützt" + +msgid "not used" +msgstr "Nicht verwendet" + +msgid "nothing connected" +msgstr "Nichts angeschlossen" + +msgid "of a DUAL layer medium used." +msgstr "eines Doppelschicht-Mediums (Dual Layer) benutzt." + +msgid "of a SINGLE layer medium used." +msgstr "eines Einschicht-Mediums (Single Layer) benutzt." + +msgid "off" +msgstr "Aus" + +msgid "offset is" +msgstr "Endstellung auf" + +msgid "on" +msgstr "An" + +msgid "on READ ONLY medium." +msgstr "auf dem nicht beschreibbaren Medium." + +msgid "on end of movie" +msgstr "beim Filmende" + +msgid "once" +msgstr "Einmal" + +msgid "only from deep standby" +msgstr "Nur aus dem Deep-Standby" + +msgid "only from standby" +msgstr "Nur im Standby" + +msgid "open EPG..." +msgstr "Öffne EPG..." + +msgid "open Info..." +msgstr "Öffne Info..." + +msgid "open nameserver configuration" +msgstr "DNS-Server Konfiguration öffnen" + +msgid "original" +msgstr "Original" + +msgid "original language" +msgstr "Original Sprache" + +msgid "pass" +msgstr "Durchgang" + +msgid "performing arts" +msgstr "Darstellende Künste" + +msgid "play as picture in picture" +msgstr "Als Bild im Bild wiedergeben" + +msgid "play in mainwindow" +msgstr "Als Hautpbild wiedergeben" + +msgid "please press OK when ready" +msgstr "Bitte OK drücken, wenn bereit" + +msgid "please wait, loading picture..." +msgstr "Bitte warten, Bild wird geladen..." + +msgid "popular culture/traditional arts" +msgstr "Beliebte Kultur/Traditionelle Kunst" + +msgid "pre-school children's program" +msgstr "Vorschul Kinderprogramm" + +msgid "receiver software because updates are available." +msgstr "Receiver Software, weil Updates verfügbar sind." + +msgid "record" +msgstr "Aufnehmen" + +msgid "recording..." +msgstr "Nimmt auf..." + +msgid "red" +msgstr "Rot" + +msgid "religion" +msgstr "Glaube" + +msgid "remarkable people" +msgstr "Außergewöhnliche Menschen" + +msgid "remove after this position" +msgstr "Nach dieser Position entfernen" + +msgid "remove all alternatives" +msgstr "Entferne alle Alternativen" + +msgid "remove all new found flags" +msgstr "Entfernen aller 'neu gefunden'-Kennzeichnungen" + +msgid "remove before this position" +msgstr "Vor dieser Position entfernen" + +msgid "remove bookmark" +msgstr "Lesezeichen entfernen" + +msgid "remove directory" +msgstr "Verzeichnis entfernen" + +msgid "remove entry" +msgstr "Eintrag entfernen" + +msgid "remove from parental protection" +msgstr "Jugendschutz ausschalten" + +msgid "remove new found flag" +msgstr "Entfernen der 'neu gefunden'-Kennzeichnung" + +msgid "remove selected satellite" +msgstr "Entferne gewählten Satellit" + +msgid "remove this mark" +msgstr "Diese Markierung entfernen" + +msgid "rename entry" +msgstr "Eintrag umbenennen" + +msgid "repeat playlist" +msgstr "Wiederholung der Wiedergabeliste" + +msgid "repeated" +msgstr "Wiederholend" + +msgid "reverse by date" +msgstr "Umgekehrt nach Datum" + +msgid "rewind to the previous chapter" +msgstr "Zum vorherigen Kapitel zurück" + +msgid "right" +msgstr "Rechts" + +msgid "right, wrapped" +msgstr "rechts, umgebrochen" + +msgid "rock/pop" +msgstr "Rock/Pop" + +msgid "romance" +msgstr "Romanze" + +msgid "save last directory on exit" +msgstr "Anfangsverzeichnis beim Beenden merken" + +msgid "save playlist on exit" +msgstr "Wiedergabeliste beim Beenden speichern" + +msgid "scan state" +msgstr "Status" + +msgid "science fiction/fantasy/horror" +msgstr "Science-Fiction/Fantasie/Horror" + +msgid "second cable of motorized LNB" +msgstr "Zweites Kabel vom Rotor" + +msgid "seconds" +msgstr "Sekunden" + +msgid "select" +msgstr "Wähle" + +msgid "select CAId's" +msgstr "CAIDs auswählen" + +msgid "select EPG..." +msgstr "Wähle EPG.." + +msgid "select Info..." +msgstr "Wähle Info..." + +msgid "select menu entry" +msgstr "Wählen Sie einen Menüpunkt" + +msgid "select movie" +msgstr "Film auswählen" + +msgid "select the movie path" +msgstr "Den Filmpfad auswählen" + +msgid "serious music/classic music" +msgstr "Ernste Musik/Klassische Musik" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "Ernst/Klassisch/Religiös/Historischer Film/Drama" + +msgid "service PIN" +msgstr "Kanal PIN" + +msgid "set as startup service" +msgstr "Als Anschalt-Kanal setzen" + +msgid "setup PIN" +msgstr "Setup PIN" + +msgid "show DVD main menu" +msgstr "Zeige das DVD Hauptmenü" + +msgid "show all tags" +msgstr "Alle Tags anzeigen" + +msgid "show alternatives" +msgstr "Zeige Alternativen" + +msgid "show event details" +msgstr "Sendungs-Details anzeigen" + +msgid "show extended description" +msgstr "Zeige erweiterte Beschreibung" + +msgid "show mediaplayer on mainmenu" +msgstr "Zeige Mediaplayer im Hauptmenü" + +msgid "show softwaremanager in setup menu" +msgstr "Zeige Softwaremanager unter Einstellungen" + +msgid "show softwaremanager on blue button" +msgstr "Zeige Softwaremanager auf blauer Taste" + +msgid "show tag menu" +msgstr "Zeige Tag-Menü" + +msgid "show transponder info" +msgstr "Transponder-Info anzeigen" + +msgid "show/game show (general)" +msgstr "Show/Spielsendung (Allgemein)" + +msgid "shuffle" +msgstr "Mischen" + +msgid "shut down" +msgstr "Ausschalten" + +msgid "simple" +msgstr "Einfach" + +msgid "skip backward" +msgstr "Rückwärts spulen" + +msgid "skip forward" +msgstr "Vorwärts spulen" + +msgid "soap/melodram/folkloric" +msgstr "Soap/Melodrama/Volkstümlich" + +msgid "social/political issues/economics (general)" +msgstr "Soziale/Politische Angelegenheiten/Wirtschaft (Allgemein)" + +msgid "social/spiritual science" +msgstr "Sozial/Geisteswissenschaft" + +msgid "sorting of playlists" +msgstr "Sortierung der Wiedergabeliste" + +msgid "special characters" +msgstr "Sonderzeichen" + +msgid "special events" +msgstr "Sondersendung" + +msgid "special format data DVD (HDTV compatible)" +msgstr "spezielles Format Daten-DVD (HDTV-kompatibel)" + +msgid "sports (general)" +msgstr "Sport (Allgemein)" + +msgid "sports magazine" +msgstr "Sportzeitung" + +msgid "standard" +msgstr "Standard" + +msgid "start cut here" +msgstr "Schnitt hier starten" + +msgid "start directory" +msgstr "Anfangsverzeichnis" + +msgid "stepsize" +msgstr "Schrittgröße" + +msgid "stereo" +msgstr "Stereo" + +msgid "stop using as startup service" +msgstr "Nicht mehr als Anschaltkanal nutzen" + +msgid "switch to bookmarks" +msgstr "Gehe zu den Lesezeichen" + +msgid "switch to filelist" +msgstr "In Dateiliste wechseln" + +msgid "switch to the next angle" +msgstr "Zur nächsten Kameraperspektive wechseln" + +msgid "switch to the next audio track" +msgstr "Zum nächsten Ton-Titel wechseln" + +msgid "switch to the next subtitle language" +msgstr "Zur nächsten Untertitel-Sprache wechseln" + +msgid "talk show" +msgstr "Talkshow" + +msgid "team sports" +msgstr "Mannschaftssport" + +msgid "technology/natural science" +msgstr "Technologie/Naturwissenschaft" + +msgid "template file" +msgstr "Dateivorlage" + +msgid "tennis/squash" +msgstr "Tennis/Squash" + +msgid "this recording" +msgstr "Diese Aufnahme" + +msgid "this service is protected by a parental control pin" +msgstr "Dieser Kanal ist durch einen Jugendschutz-PIN-Code geschützt." + +msgid "toggle time, chapter, audio, subtitle info" +msgstr "Schalte zwischen Zeit-, Kapitel-, Ton- und Untertitel-Info um" + +msgid "top" +msgstr "Oben" + +msgid "tourism/travel" +msgstr "Tourismus/Reisen" + +msgid "true" +msgstr "Ja" + +msgid "unavailable" +msgstr "Nicht verfügbar" + +msgid "unconfirmed" +msgstr "Nicht bestätigt" + +msgid "undefined" +msgstr "Nicht bekannt" + +msgid "unknown" +msgstr "Unbekannt" + +msgid "unknown service" +msgstr "Unbekannter Kanal" + +msgid "unpublished" +msgstr "Unveröffentlicht" + +msgid "until standby/restart" +msgstr "Bis zum Standby/Neustart" + +msgid "user defined" +msgstr "Benutzerdefiniert" + +msgid "variety show" +msgstr "Abwechslungsreiche Sendung" + +msgid "vertical" +msgstr "Vertikal" + +msgid "wait for ci..." +msgstr "Warte auf CI..." + +msgid "wait for mmi..." +msgstr "Warte auf mmi..." + +msgid "waiting" +msgstr "Wartend" + +msgid "water sport" +msgstr "Wassersport" + +msgid "weekly" +msgstr "Wöchentlich" + +msgid "west" +msgstr "Westen" + +msgid "when PiPzap enabled zap channel down..." +msgstr "Kanal herunterschalten, falls PiPzap aktiv ist..." + +msgid "when PiPzap enabled zap channel up..." +msgstr "Kanal hochschalten, falls PiPzap aktiv ist..." + +msgid "white" +msgstr "Weiß" + +msgid "whitelist" +msgstr "Positivliste" + +msgid "width" +msgstr "Breite" + +msgid "winter sport" +msgstr "Wintersport" + +msgid "wireless network interface" +msgstr "Funk Netzwerkadapter" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "mit %d Fehler" +msgstr[1] "mit %d Fehlern" + +msgid "working" +msgstr "Arbeite" + +msgid "yellow" +msgstr "Gelb" + +msgid "yes" +msgstr "Ja" + +msgid "yes (keep feeds)" +msgstr "Ja (Feeds behalten)" + +msgid "zap" +msgstr "Umschalten" + +msgid "zap and record" +msgstr "Umschalten und aufnehmen" + +msgid "zapped" +msgstr "umgeschaltet" diff --git a/po/el.po b/po/el.po new file mode 100644 index 0000000..fba9a45 --- /dev/null +++ b/po/el.po @@ -0,0 +1,8083 @@ +msgid "" +msgstr "" +"Project-Id-Version: enigma2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: \n" +"Last-Translator: MCelliot_g <mcelliot_g@hotmail.com>\n" +"Language-Team: satdreamgr <satdreamgr.com>\n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.6.5\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"ΠÏοχωÏημένες επιλογές και Ïυθμίσεις" + +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"Î‘Ï†Î¿Ï Ï€Î¹Î­ÏƒÎµÏ„Îµ ΟΚ, παÏακαλώ πεÏιμένετε!" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" +"\n" +" ΔημιουÏγία αντιγÏάφου ασφαλείας των Ïυθμίσεων του δέκτη σας." + +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +" ΕπεξεÏγασία διεÏθυνσης πηγής αναβαθμίσεων" + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" +"\n" +"ΔιαχείÏιση επεκτάσεων ή Ï€Ïοσθέτων για τον δέκτη σας" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" +"\n" +"Διαδικτυακή ενημέÏωση Î»Î¿Î³Î¹ÏƒÎ¼Î¹ÎºÎ¿Ï Ï„Î¿Ï… δέκτη σας." + +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"Πιέστε ΟΚ στο τηλεχειÏιστήÏιο για συνέχεια." + +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"ΕπαναφοÏά αντιγÏάφων ασφαλείας κατά ημεÏομηνία." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" +"\n" +"ΕπαναφοÏά των Ïυθμίσεων του δέκτη σας." + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" +"\n" +"ΕπαναφοÏά του δέκτη σας με ένα νέο υλικολογισμικό" + +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"Αναζήτηση και εγκατάσταση επεκτάσεων τοπικά." + +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Επιλογή συσκευής αντιγÏάφων ασφαλείας.\n" +"ΤÏέχουσα συσκευή: " + +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"Εμφάνιση, εγκατάσταση και διαγÏαφή διαθέσιμων ή εγκατεστημένων Ï€Ïοσθέτων" + +msgid " (PiP)" +msgstr " (PiP)" + +msgid " (Radio)" +msgstr " (Ραδιόφωνο)" + +msgid " (TV)" +msgstr " (ΤηλεόÏαση)" + +msgid " (disabled)" +msgstr " (απενεÏγοποιημένο)" + +msgid " (higher than any auto)" +msgstr " (υψηλότεÏα όλων των αυτόματων)" + +msgid " (higher than rotor any auto)" +msgstr " (υψηλότεÏα όλων των αυτόματων μοτέÏ)" + +msgid " (lower than any auto)" +msgstr " (χαμηλότεÏα όλων των αυτόματων)" + +msgid " extensions." +msgstr " επεκτάσεις." + +msgid " ms" +msgstr " ms" + +msgid " packages selected." +msgstr " επιλεγμένα πακέτα." + +msgid " updates available." +msgstr " διαθέσιμες ενημεÏώσεις." + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "%2d:%02d" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "%2d:%02d:%02d" + +msgid "%A %d %B" +msgstr "%A %d %B" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "%A %e %B" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "%A %e %B %Y" + +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "%a %e/%m" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "%a %e/%m %-H:%M" + +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "βÏέθηκε %d κανάλι" +msgstr[1] "βÏέθηκαν %d κανάλια" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "%d αÏχείο" +msgstr[1] "%d αÏχεία" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d ÏŽÏα" +msgstr[1] "%d ÏŽÏες" + +#, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d εÏγασία στο παÏασκήνιο!" +msgstr[1] "%d εÏγασίες στο παÏασκήνιο!" + +#, python-format +msgid "%d min" +msgstr "%d λεπτά" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d λεπτό" +msgstr[1] "%d λεπτά" + +#, python-format +msgid "%d minutes" +msgstr "%d λεπτά" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "%d πλάτος σε πίξελ" +msgstr[1] "%d πλάτος σε πίξελ" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d δευτεÏόλεπτο" +msgstr[1] "%d δευτεÏόλεπτα" + +#, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "%d υποφάκελος" +msgstr[1] "%d υποφάκελοι" + +#, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "Î’Ïέθηκε %d ασÏÏματο δίκτυο!" +msgstr[1] "Î’Ïέθηκαν %d ασÏÏματα δίκτυα!" + +msgid "%d-%b-%Y %-H:%M" +msgstr "%a %e/%m %-H:%M" + +msgid "%d-%m" +msgstr "%d-%m" + +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "%k:%M %e/%m" + +#, python-format +msgid "%s %s free disk space" +msgstr "%s %s ελεÏθεÏος χώÏος δίσκου" + +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "Το %s δεν χÏησιμοποιείται πλέον. Îα γίνει διαγÏαφή του;" + +#, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "%s διαθέσιμη ενημέÏωση" +msgstr[1] "%s διαθέσιμες ενημεÏώσεις" + +#, python-format +msgid "%s%d min" +msgstr "%s%d min" + +#, python-format +msgid "%s/%s: %s" +msgstr "%s/%s: %s" + +msgid "(ZAP)" +msgstr "(ΖΑΠ)" + +msgid "(empty)" +msgstr "(κενό)" + +msgid "(show optional DVD audio menu)" +msgstr "(εμφάνιση Ï€ÏοαιÏÎµÏ„Î¹ÎºÎ¿Ï Î¼ÎµÎ½Î¿Ï Î®Ï‡Î¿Ï… DVD)" + +msgid "* Only available if more than one interface is active." +msgstr "* Διαθέσιμο μόνο εάν είναι ενεÏγές πεÏισσότεÏες από μία διεπαφές." + +msgid "/s" +msgstr "/s" + +msgid "0" +msgstr "0" + +msgid "1" +msgstr "1" + +msgid "1.0" +msgstr "1.0" + +msgid "1.1" +msgstr "1.1" + +msgid "1.2" +msgstr "1.2" + +msgid "12V output" +msgstr "έξοδος 12V" + +msgid "13 V" +msgstr "13 V" + +msgid "16:10" +msgstr "16:10" + +msgid "16:10 Letterbox" +msgstr "16:10 ΜπάÏες πάνω - κάτω" + +msgid "16:10 PanScan" +msgstr "16:10 ΠανοÏαμική&ΣάÏωση" + +msgid "16:9" +msgstr "16:9" + +msgid "16:9 Letterbox" +msgstr "16:10 ΜπάÏες πάνω - κάτω" + +msgid "16:9 always" +msgstr "πάντα 16:9" + +msgid "18 V" +msgstr "18 V" + +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "23.976" + +msgid "24" +msgstr "24" + +msgid "25" +msgstr "25" + +msgid "29.97" +msgstr "29.97" + +msgid "3" +msgstr "3" + +msgid "30" +msgstr "30" + +msgid "3d mode" +msgstr "λειτουÏγία 3d" + +msgid "4" +msgstr "4" + +msgid "4:3" +msgstr "4:3" + +msgid "4:3 Letterbox" +msgstr "4:3 ΜπάÏες πάνω - κάτω" + +msgid "4:3 PanScan" +msgstr "4:3 ΠανοÏαμική&ΣάÏωση" + +msgid "5" +msgstr "5" + +msgid "6" +msgstr "6" + +msgid "7" +msgstr "7" + +msgid "8" +msgstr "8" + +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr ": %s" + +msgid "<Current movielist location>" +msgstr "<ΤÏέχουσα τοποθεσία καταλόγου ταινιών>" + +msgid "<Default movie location>" +msgstr "<ΠÏοεπιλεγμένη τοποθεσία ταινιών>" + +msgid "<Last timer location>" +msgstr "<Τελευταία τοποθεσία χÏονοδιακόπτη>" + +msgid "<unknown>" +msgstr "<άγνωστο>" + +msgid "??" +msgstr ";;" + +msgid "A" +msgstr "A" + +#, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"Ένα αÏχείο Ïυθμίσεων (%s) έχει Ï„Ïοποποιηθεί μετά την εγκατάστασή του.\n" +"Θέλετε να διατηÏήσετε τη δική σας έκδοση;" + +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"Ένα αÏχείο Ïυθμίσεων (%s) έχει Ï„Ïοποποιηθεί μετά την εγκατάσταση.\n" +"Θέλετε να διατηÏήσετε τη δική σας έκδοση;" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "Ένας ολοκληÏωμένος χÏονοδιακόπτης θέλει να θέσει το δέκτη σε αναμονή. Îα γίνει Ï„ÏŽÏα;" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "Ένας ολοκληÏωμένος χÏονοδιακόπτης θέλει να κλείσει το δέκτη. Îα γίνει Ï„ÏŽÏα;" + +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "ΓÏαφικό EPG για όλα τα κανάλια σε συγκεκÏιμένο μπουκέτο" + +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"Μια εγγÏαφή έχει ξεκινήσει:\n" +"%s" + +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"Μια εγγÏαφή είναι σε εξέλιξη.\n" +"Τι θέλετε να γίνει;" + +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "Μια εγγÏαφή είναι σε εξέλιξη. Για να Ïυθμίσετε το Î¼Î¿Ï„Î­Ï Ï€Ïέπει να σταματήσετε την εγγÏαφή." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "Μια εγγÏαφή είναι σε εξέλιξη. ΠÏέπει να σταματήσετε την εγγÏαφή Ï€Ïιν την ανίχνευση." + +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "Μια εγγÏαφή είναι σε εξέλιξη. Για να χÏησιμοποιήσετε το satfinder Ï€Ïέπει να σταματήσετε την εγγÏαφή." + +#, python-format +msgid "A required tool (%s) was not found." +msgstr "Ένα απαιτοÏμενο εÏγαλείο (%s) δεν βÏέθηκε." + +msgid "A search for available updates is currently in progress." +msgstr "Μία αναζήτηση για διαθέσιμες ενημεÏώσεις είναι σε εξέλιξη." + +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"Î’Ïέθηκε ένα δεÏτεÏο Ïυθμισμένο δίκτυο.\n" +"\n" +"Θέλετε να απενεÏγοποιήσετε το δεÏτεÏο Ï€ÏοσαÏμογέα δικτÏου;" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "Ένας χÏονοδιακόπτης απενεÏγοποίησης θέλει να θέσει το δέκτη σας σε αναμονή. Îα γίνει Ï„ÏŽÏα;" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "Ένας χÏονοδιακόπτης απενεÏγοποίησης θέλει να κλείσει το δέκτη σας. ΤεÏματισμός Ï„ÏŽÏα;" + +msgid "A small overview of the available icon states and actions." +msgstr "Επισκόπηση των διαθέσιμων εικονιδίων κατάστασης και ενεÏγειών." + +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"Ένας χÏονοδιακόπτης απέτυχε να ξεκινήσει.\n" +"Îα απενεÏγοποιηθεί η TV και να ξαναπÏοσπαθήσει;\n" + +msgid "A/V settings" +msgstr "Ρυθμίσεις εικόνας/ήχου" + +msgid "AC3/DTS downmix" +msgstr "Μίξη AC3/DTS" + +msgid "Abort" +msgstr "ΑκÏÏωση" + +msgid "About" +msgstr "ΠεÏί" + +msgid "About..." +msgstr "ΠεÏί..." + +msgid "Accesspoint:" +msgstr "Σημείο Ï€Ïόσβασης:" + +msgid "Action on long powerbutton press" +msgstr "ΕνέÏγεια σε παÏατεταμένη πίεση του πλήκτÏου power" + +msgid "Action on short powerbutton press" +msgstr "ΕνέÏγεια σε στιγμιαία πίεση του πλήκτÏου power" + +msgid "Activate Picture in Picture" +msgstr "ΕνεÏγοποίηση Picture in Picture" + +msgid "Activate current configuration" +msgstr "ΕνεÏγοποίηση Ï„Ïέχουσας ÏÏθμισης" + +msgid "Activate network settings" +msgstr "ΕνεÏγοποίηση Ïυθμίσεων δικτÏου" + +msgid "Activate the configured network settings." +msgstr "ΕνεÏγοποίηση των παÏαμετÏοποιημένων Ïυθμίσεων δικτÏου" + +msgid "Adapter settings" +msgstr "Ρυθμίσεις Ï€ÏοσαÏμογέα δικτÏου" + +msgid "Add" +msgstr "ΠÏοσθήκη" + +msgid "Add Bookmark" +msgstr "ΠÏοσθήκη Σελιδοδείκτη" + +msgid "Add a mark" +msgstr "ΠÏοσθήκη σημαδιοÏ" + +msgid "Add a nameserver entry" +msgstr "ΠÏοσθήκη nameserver" + +msgid "Add a new title" +msgstr "ΠÏοσθήκη νέου τίτλου" + +msgid "Add bookmark" +msgstr "ΠÏοσθήκη σελιδοδείκτη" + +msgid "Add directory to playlist" +msgstr "ΠÏοσθήκη φακέλου στη λίστα αναπαÏαγωγής" + +msgid "Add file to playlist" +msgstr "ΠÏοσθήκη αÏχείου στη λίστα αναπαÏαγωγής" + +msgid "Add files to playlist" +msgstr "ΠÏοσθήκη αÏχείων στη λίστα αναπαÏαγωγής" + +msgid "Add more details to the crash log" +msgstr "ΠÏοσθήκη πεÏισσότεÏων λεπτομεÏειών στο καταγÏαφολόγιο" + +msgid "Add provider" +msgstr "ΠÏοσθήκη παÏόχου" + +msgid "Add recording (enter recording duration)" +msgstr "Επιλογή διάÏκειας εγγÏαφής" + +msgid "Add recording (enter recording endtime)" +msgstr "Αλλαγή χÏόνου τεÏÎ¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï ÎµÎ³Î³Ïαφής" + +msgid "Add recording (indefinitely)" +msgstr "ΕγγÏαφή χωÏίς ÏŒÏιο χÏόνου" + +msgid "Add recording (stop after current event)" +msgstr "ΕγγÏαφή ως το τέλος του Ï„Ïέχοντος Ï€ÏογÏάμματος" + +msgid "Add service" +msgstr "ΠÏοσθήκη υπηÏεσίας" + +msgid "Add timer" +msgstr "ΠÏοσθήκη χÏονοδιακόπτη" + +msgid "Add title" +msgstr "ΠÏοσθήκη τίτλου" + +msgid "Add to bouquet" +msgstr "ΠÏοσθήκη σε μπουκέτο" + +msgid "Add to favourites" +msgstr "ΠÏοσθήκη στα αγαπημένα" + +msgid "Add/remove change timer for current event" +msgstr "ΠÏοσθήκη/αφαίÏεση αλλαγής χÏονοδιακόπτη για το Ï„Ïέχον Ï€ÏόγÏαμμα" + +msgid "Adjust 3D settings" +msgstr "Αλλαγή Ïυθμίσεων 3D" + +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "Ρυθμίστε την ένταση των χÏωμάτων έτσι ώστε να διαφέÏουν οι χÏωματισμοί με τη μέγιστη φωτεινότητα. Όταν τελειώσετε, πιέστε ΟΚ για να κλείσετε τη μικÏοÏÏθμιση ή πατήστε ένα νοÏμεÏο για να δείτε και άλλες οθόνες δοκιμών." + +msgid "Advanced" +msgstr "ΠÏοχωÏημένο" + +msgid "Advanced options" +msgstr "ΠÏοχωÏημένες επιλογές" + +msgid "Advanced restore" +msgstr "ΠÏοχωÏημένη επαναφοÏά" + +msgid "Advanced software" +msgstr "ΠÏοχωÏημένο λογισμικό" + +msgid "Advanced software plugin" +msgstr "ΠÏόσθετο Ï€ÏοχωÏημένου λογισμικοÏ" + +msgid "Advanced video enhancement setup" +msgstr "ΠÏοχωÏημένη εγκατάσταση βελτίωσης εικόνας" + +msgid "Advanced video setup" +msgstr "ΠÏοχωÏημένες Ïυθμίσεις εικόνας" + +msgid "After event" +msgstr "Μετά το Ï€ÏόγÏαμμα" + +msgid "Album" +msgstr "Άλμπουμ" + +msgid "Alignment of events" +msgstr "Στοίχιση Ï€ÏογÏαμμάτων" + +msgid "Alignment of service names" +msgstr "Στοίχιση ονομάτων υπηÏεσιών" + +msgid "All" +msgstr "Όλα" + +msgid "All ages" +msgstr "Όλες οι ηλικίες" + +msgid "All satellites 1 (USALS)" +msgstr "Όλοι οι δοÏυφόÏοι 1 (USALS)" + +msgid "All satellites 2 (USALS)" +msgstr "Όλοι οι δοÏυφόÏοι 2 (USALS)" + +msgid "All satellites 3 (USALS)" +msgstr "Όλοι οι δοÏυφόÏοι 3 (USALS)" + +msgid "All satellites 4 (USALS)" +msgstr "Όλοι οι δοÏυφόÏοι 4 (USALS)" + +msgid "Allocate" +msgstr "Κατανομή" + +msgid "Allocate unused memory index" +msgstr "Κατανομή μη χÏησιμοποιημένων θέσεων μνήμης" + +msgid "Allow quit movieplayer with exit" +msgstr "Îα επιτÏέπεται η έξοδος από την αναπαÏαγωγή με το exit" + +msgid "Allow subtitle language to equal audio language" +msgstr "Îα επιτÏέπεται η εξίσωση υποτίτλων και γλώσσας ήχου" + +msgid "Allow subtitles for hearing impaired" +msgstr "Îα επιτÏέπονται υπότιτλοι για άτομα με Ï€Ïοβλήματα ακοής" + +msgid "Alpha" +msgstr "Alpha" + +msgid "Alternative" +msgstr "ΠÏοσθήκη εναλλακτικών" + +msgid "Alternative numbering mode" +msgstr "Εναλλακτική λειτουÏγία Ïαδιοφώνου" + +msgid "Alternative services tuner priority" +msgstr "ΠÏοτεÏαιότητα tuner εναλλακτικών υπηÏεσιών" + +msgid "Always ask" +msgstr "Πάντα εÏώτηση" + +msgid "Always hide infobar" +msgstr "Πάντα απόκÏυψη της μπάÏας πληÏοφοÏιών" + +msgid "An empty filename is illegal." +msgstr "Η κενή ονομασία είναι άκυÏη." + +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "ΥπήÏξε ένα σφάλμα κατά τη λήψη της λίστας πακέτων. ΠαÏακαλώ δοκιμάστε ξανά." + +msgid "An unknown error occurred!" +msgstr "ΠÏοέκυψε άγνωστο σφάλμα!" + +msgid "And will put your receiver in standby over " +msgstr "Και θα θέσει το δέκτη σας σε αναμονή μετά από " + +msgid "Any activity" +msgstr "Οποιαδήποτε δÏαστηÏιότητα" + +msgid "Arabic" +msgstr "ΑÏαβικά" + +msgid "Are you sure to remove this entry?" +msgstr "ΣίγουÏα θέλετε να αφαιÏεθεί αυτό το στοιχείο;" + +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "ΣίγουÏα θέλετε να ενεÏγοποιηθεί αυτή η ÏÏθμιση δικτÏου;\n" + +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"ΣίγουÏα θέλετε να διαγÏάψετε\n" +"το παÏακάτω αντίγÏαφο ασφαλείας:\n" + +msgid "Are you sure you want to exit this wizard?" +msgstr "ΣίγουÏα να γίνει έξοδος από αυτό τον οδηγό;" + +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "Είστε σίγουÏος ότι θέλετε να επανεκκινήσετε τις διεπαφές δικτÏου;\n" + +#, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"ΣίγουÏα θέλετε να επαναφέÏετε το αντίγÏαφο ασφαλείας:\n" +"%s\n" +"Ο δέκτης θα επανεκκινηθεί μετά την επαναφοÏά!" + +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"ΣίγουÏα θέλετε να επαναφέÏετε το αντίγÏαφο ασφαλείας;\n" +"Ο δέκτης θα επανεκκινηθεί μετά την επαναφοÏά!" + +msgid "Artist" +msgstr "Καλλιτέχνης" + +msgid "Arts/Culture" +msgstr "Τέχνες/Πολιτισμός" + +msgid "Ask user" +msgstr "ΕÏώτηση χÏήστη" + +msgid "Aspect ratio" +msgstr "Λόγος πλευÏών" + +msgid "Assigned CAIds:" +msgstr "ΟÏισμένα CAIds:" + +msgid "Assigned services/provider:" +msgstr "ΟÏισμένες υπηÏεσίες/πάÏοχοι:" + +msgid "At beginning" +msgstr "Στην αÏχή" + +msgid "At end" +msgstr "Στο τέλος" + +msgid "Audio" +msgstr "Ήχος" + +msgid "Audio PID" +msgstr "PID ήχου" + +msgid "Audio language selection 1" +msgstr "Επιλογή γλώσσας ήχου 1" + +msgid "Audio language selection 2" +msgstr "Επιλογή γλώσσας ήχου 2" + +msgid "Audio language selection 3" +msgstr "Επιλογή γλώσσας ήχου 3" + +msgid "Audio language selection 4" +msgstr "Επιλογή γλώσσας ήχου 4" + +msgid "Audio options..." +msgstr "Επιλογές ήχου..." + +#, python-format +msgid "Audio track (%s) format" +msgstr "ΦοÏμά φέÏουσας ήχου (%s)" + +#, python-format +msgid "Audio track (%s) language" +msgstr "Γλώσσα ήχου (%s)" + +msgid "Author: " +msgstr "ΔημιουÏγός: " + +msgid "Authoring mode" +msgstr "ΛειτουÏγία δημιουÏγίας ταινίας" + +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Αυτόματο" + +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Αυτόματη δημιουÏγία κεφαλαίου κάθε ; λεπτα (0=ποτέ)" + +msgid "Auto flesh" +msgstr "Αυτόματο χÏώμα δέÏματος" + +msgid "Auto focus" +msgstr "Αυτόματη εστίαση" + +msgid "Auto focus commencing ..." +msgstr "ΈναÏξη αυτόματης εστίασης..." + +msgid "Auto language selection" +msgstr "Αυτόματη επιλογή γλώσσας" + +msgid "Auto scart switching" +msgstr "Αυτόματη αλλαγή scart" + +msgid "Automatic" +msgstr "Αυτόματο" + +msgid "Automatic scan" +msgstr "Αυτόματη ανίχνευση" + +msgid "Automatically start timeshift after" +msgstr "Αυτόματη εκκίνηση της χÏονομετατόπισης μετά από" + +msgid "Automatically turn on external subtitles" +msgstr "Αυτόματη ενεÏγοποίηση των εξωτεÏικών υποτίτλων" + +msgid "Available format variables" +msgstr "Διαθέσιμα εναλλακτικά φοÏμά" + +msgid "B" +msgstr "B" + +msgid "BER" +msgstr "BER" + +msgid "BER:" +msgstr "BER:" + +msgid "Back" +msgstr "Πίσω" + +msgid "Background" +msgstr "Φόντο" + +msgid "Background color" +msgstr "ΧÏώμα φόντου" + +msgid "Background delete option" +msgstr "Επιλογή διαγÏαφής στο παÏασκήνιο" + +msgid "Background delete speed" +msgstr "ΤαχÏτητα διαγÏαφής στο παÏασκήνιο" + +msgid "Backup completed." +msgstr "Η εφεδÏεία ολοκληÏώθηκε" + +msgid "Backup failed." +msgstr "Η εφεδÏεία απέτυχε." + +msgid "Backup is running..." +msgstr "ΕφεδÏεία σε εκτέλεση..." + +msgid "Backup system settings" +msgstr "ΑντίγÏαφο ασφαλείας Ïυθμίσεων" + +msgid "Band" +msgstr "Μπάντα" + +msgid "Bandwidth" +msgstr "ΕÏÏος μπάντας" + +msgid "Basque" +msgstr "Βασκικά" + +msgid "Begin time" +msgstr "ÎÏα έναÏξης" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +msgid "Behavior of 0 key in PiP-mode" +msgstr "ΣυμπεÏιφοÏά του πλήκτÏου 0 στη λειτουÏγία PiP" + +msgid "Behavior when a movie is started" +msgstr "ΣυμπεÏιφοÏά όταν μια ταινία παίζει" + +msgid "Behavior when a movie is stopped" +msgstr "ΣυμπεÏιφοÏά όταν μια ταινία έχει σταματήσει" + +msgid "Behavior when a movie reaches the end" +msgstr "ΣυμπεÏιφοÏά όταν μια ταινία έχει φτάσει στο τέλος" + +msgid "Big PiP" +msgstr "Μεγάλο PiP" + +msgid "Bitrate:" +msgstr "Bitrate:" + +msgid "Black screen" +msgstr "ΜαÏÏη οθόνη" + +msgid "Black screen till locked" +msgstr "ΜαÏÏη οθόνη ως το κλείδωμα" + +msgid "Block noise reduction" +msgstr "ΦÏαγή μείωσης θοÏÏβου" + +msgid "Blue boost" +msgstr "Ενίσχυση του μπλε" + +msgid "Bookmarks" +msgstr "Σελιδοδείκτες" + +msgid "Brightness" +msgstr "Φωτεινότητα" + +msgid "Bulgarian" +msgstr "ΒουλγαÏικά" + +msgid "Burn DVD" +msgstr "ΕγγÏαφή DVD" + +#, python-format +msgid "Burn audio track (%s)" +msgstr "ΕγγÏαφή φέÏουσας ήχου (%s)" + +msgid "Burn existing image to DVD" +msgstr "ΕγγÏαφή υπάÏχουσας εικόνας σε DVD" + +msgid "Burn to DVD" +msgstr "ΕγγÏαφή σε DVD" + +msgid "Bus: " +msgstr "Bus: " + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "Από Ï€Ïοεπιλογή, το SNR θα εμφανίζεται σε dB (αν υποστηÏίζεται από το tuner). Αυτή η ÏÏθμιση αναγκάζει το SNR να εμφανίζεται ως ποσοστό." + +msgid "C" +msgstr "C" + +msgid "C-Band" +msgstr "Μπάντα C" + +msgid "CH" +msgstr "Κ. " + +msgid "CI assignment" +msgstr "ΟÏισμός CI" + +msgid "CVBS" +msgstr "CVBS" + +msgid "Cable" +msgstr "Καλωδιακό" + +msgid "Cable Scan" +msgstr "Καλωδιακή Ανίχνευση" + +msgid "Cache thumbnails" +msgstr "Αποθήκευση μικÏογÏαφιών" + +msgid "Calculate" +msgstr "Υπολογισμός" + +msgid "Calculate all positions" +msgstr "Υπολογισμός όλων των θέσεων" + +msgid "Calculation complete" +msgstr "Ο υπολογισμός ολοκληÏώθηκε" + +msgid "Calibrate" +msgstr "Βαθμονόμηση" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "ΜποÏεί να χÏησιμοποιηθεί όταν οι υπότιτλοι έχουν διαφοÏετικό fps από το βίντεο." + +msgid "Cancel" +msgstr "ΑκÏÏωση" + +msgid "Cannot determine" +msgstr "Αδυναμία Ï€ÏοσδιοÏισμοÏ" + +msgid "Cannot find any signal ..., aborting !" +msgstr "Αδυναμία εÏÏεσης σήματος ..., ματαίωση !" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "ΑÏχεία από άλλο δίσκο ή σÏστημα δε μποÏοÏν να μεταφεÏθοÏν στον κάδο" + +msgid "Cannot move to trash can" +msgstr "Αδυναμία μεταφοÏάς στον κάδο αχÏήστων" + +msgid "Capacity: " +msgstr "ΧωÏητικότητα: " + +msgid "Card" +msgstr "ΚάÏτα" + +msgid "Cascade PiP" +msgstr "Διαδοχικό PiP" + +msgid "Center DVB subtitles" +msgstr "Στοίχιση υποτίτλων DVB στο κέντÏο" + +msgid "Center time-labels and remove date" +msgstr "ΚεντÏάÏισμα ετικετών χÏόνου και αφαίÏεση ημεÏομηνίας" + +msgid "Change bouquets in quickzap" +msgstr "Αλλαγή μπουκέτου στο γÏήγοÏο ζάπινγκ" + +msgid "Change pin code" +msgstr "Αλλαγή ÎºÏ‰Î´Î¹ÎºÎ¿Ï pin:" + +msgid "Change recording (duration)" +msgstr "Αλλαγή διάÏκειας εγγÏαφής" + +msgid "Change recording (endtime)" +msgstr "Αλλαγή χÏόνου τεÏÎ¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï ÎµÎ³Î³Ïαφής" + +msgid "Change repeat and delay settings?" +msgstr "Αλλαγή Ïυθμίσεων επανάληψης και καθυστέÏησης;" + +msgid "Change service PIN" +msgstr "Αλλαγή PIN υπηÏεσίας" + +msgid "Change service PINs" +msgstr "Αλλαγή PIN υπηÏεσίας" + +msgid "Change setup PIN" +msgstr "Αλλαγή pin Ïυθμίσεων" + +msgid "Change step size" +msgstr "Αλλαγή μεγέθους βήματος" + +msgid "Change timer" +msgstr "Αλλαγή χÏονοδιακόπτη" + +msgid "Changelog" +msgstr "ΚαταγÏαφολόγιο" + +msgid "Channel" +msgstr "Κανάλι" + +msgid "Channel list type" +msgstr "ΤÏπος λίστας καναλιών" + +msgid "Channel not in services list" +msgstr "Το κανάλι δεν υπάÏχει στη λίστα υπηÏεσιών" + +msgid "Channel selection" +msgstr "Επιλογή ΚαναλιοÏ" + +msgid "Channel:" +msgstr "Κανάλι:" + +msgid "Channellist menu" +msgstr "ÎœÎµÎ½Î¿Ï Î»Î¯ÏƒÏ„Î±Ï‚ καναλιών" + +msgid "Chap." +msgstr "Κεφ." + +msgid "Chapter" +msgstr "Κεφάλαιο" + +msgid "Chapter:" +msgstr "Κεφάλαιο:" + +msgid "Check" +msgstr "Έλεγχος" + +msgid "Check the internet connection" +msgstr "Ελέγξτε τη σÏνδεση στο διαδÏκτιο" + +msgid "Check the internet connection again" +msgstr "Ελέγξτε τη σÏνδεση στο διαδίκτυο εκ νέου" + +msgid "Checking filesystem..." +msgstr "Έλεγχος συστήματος αÏχείων ..." + +msgid "Checking the internet connection" +msgstr "Έλεγχος της σÏνδεσης στο διαδίκτυο" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" +"Έλεγχος tuner %d \n" +"ΠόÏτα DiSEqC %s για το %s" + +msgid "Children/Youth" +msgstr "Παιδικά/Εφηβικά" + +msgid "Choose which tuner to configure." +msgstr "Επιλέξτε ποιο tuner θα Ïυθμίσετε." + +msgid "Circular left" +msgstr "ΑÏιστεÏόστÏοφη" + +msgid "Circular right" +msgstr "ΔεξιόστÏοφη" + +msgid "Cleanup" +msgstr "ΕκκαθάÏιση" + +msgid "Clear" +msgstr "ΕκκαθάÏιση" + +msgid "Clear before scan" +msgstr "ΕκκαθάÏιση Ï€Ïιν την ανίχνευση" + +msgid "Clear fixed" +msgstr "ΕκκαθάÏιση σταθεÏών" + +msgid "Clear log" +msgstr "ΕκκαθάÏιση καταγÏαφολογίου" + +msgid "Clear playlist" +msgstr "ΕκκαθάÏιση λίστας αναπαÏαγωγής" + +msgid "Close" +msgstr "Κλείσιμο" + +msgid "Close PiP on exit" +msgstr "Κλείσιμο του PiP κατά την έξοδο" + +msgid "Close title selection" +msgstr "Κλείσιμο επιλογής τίτλου" + +msgid "Code rate HP" +msgstr "ΚωδικοÏυθμός HP" + +msgid "Code rate LP" +msgstr "ΚωδικοÏυθμός LP" + +msgid "Coderate HP" +msgstr "ΚωδικοÏυθμός HP" + +msgid "Coderate LP" +msgstr "ΚωδικοÏυθμός LP" + +msgid "Collection name" +msgstr "Όνομα συλλογής" + +msgid "Collection settings" +msgstr "Επιλογές συλλογής" + +msgid "Color format" +msgstr "ΦοÏμά χÏώματος" + +msgid "Command execution..." +msgstr "Εκτέλεση εντολής..." + +msgid "Command order" +msgstr "ΣειÏά εντολών" + +msgid "Common Interface" +msgstr "Κοινή Διεπαφή" + +msgid "Common Interface assignment" +msgstr "ΟÏισμός Κοινής Διεπαφής" + +msgid "Communication" +msgstr "Επικοινωνία" + +msgid "Compact flash" +msgstr "Compact Flash" + +msgid "Complete" +msgstr "ΠλήÏης" + +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "ΣÏνθετη (επιτÏέπει τη μίξη καναλιών ήχου και λόγου πλευÏών)" + +msgid "Composition of the recording filenames" +msgstr "ΣÏνθεση ονομάτων των εγγÏαφών" + +msgid "Configuration mode" +msgstr "ΤÏπος ÏÏθμισης" + +#, python-format +msgid "Configuration mode: %s" +msgstr "ΤÏπος ÏÏθμισης: %s" + +msgid "Configuration..." +msgstr "ΠαÏαμετÏοποίηση..." + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "ΡÏθμιση Ï€Ïόσθετης καθυστέÏησης για βελτίωση του συγχÏÎ¿Î½Î¹ÏƒÎ¼Î¿Ï Ï„Ï‰Î½ εξωτεÏικών υποτίτλων." + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "ΡÏθμιση Ï€Ïόσθετης καθυστέÏησης για βελτίωση του συγχÏÎ¿Î½Î¹ÏƒÎ¼Î¿Ï Ï„Ï‰Î½ υποτίτλων." + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "Ρυθμίστε για πόσο χÏόνο η μπάÏα πληÏοφοÏιών θα παÏαμένει οÏατή μετά την ενεÏγοποίηση." + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "Ρυθμίστε για πόσα λεπτά τα Ï€ÏογÏάμματα που έχουν ολοκληÏωθεί θα παÏαμένουν οÏατά στο EPG. ΧÏήσιμο όταν χÏειάζεστε πληÏοφοÏίες για ένα Ï€ÏόγÏαμμα που τελείωσε ή καθυστέÏησε." + +msgid "Configure how recording filenames are constructed." +msgstr "ΡÏθμιση του Ï„Ïόπου σÏνθεσης των ονομάτων των εγγÏαφών." + +msgid "Configure how the fan should operate" +msgstr "ΡÏθμιση του Ï„Ïόπου λειτουÏγίας του ανεμιστήÏα" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "Ρυθμίστε εάν και πώς θα εμφανίζονται τα κÏυπτοεικονίδια στη λίστα επιλογής καναλιών." + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "Ρυθμίστε εάν και πώς θα εμφανίζονται τα εικονίδια Ï„Ïπου υπηÏεσίας στη λίστα επιλογής καναλιών." + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "Ρυθμίστε εάν και πόσο πλατιές θα εμφανίζονται οι στήλες στη λίστα επιλογής καναλιών." + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "Ρυθμίστε εάν τα εικονίδια υπηÏεσίας θα εμφανίζονται στη λίστα επιλογής καναλιων." + +msgid "Configure interface" +msgstr "ΡÏθμιση διεπαφής" + +msgid "Configure nameservers" +msgstr "ΡÏθμιση nameservers" + +msgid "Configure on which devices the background delete option should be used." +msgstr "Ρυθμίστε σε ποιες συσκευές η δυνατότητα διαγÏαφής παÏασκήνιου θα Ï€Ïέπει να χÏησιμοποιείται." + +msgid "Configure remote control type" +msgstr "ΡÏθμιση Ï„Ïπου τηλεχειÏιστηÏίου" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "ΡÏθμιση λειτουÏγίας DiSEqC για αυτό το LNB." + +msgid "Configure the IP address." +msgstr "ΡÏθμιση της διεÏθυνσης IP." + +msgid "Configure the aspect ratio of the screen." +msgstr "ΡÏθμιση της αναλογίας διαστάσεων της οθόνης." + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "ΣυμπεÏιφοÏά όταν μια ταινία έχει σταματήσει χειÏοκίνητα." + +msgid "Configure the behavior when movie playback is started." +msgstr "ΣυμπεÏιφοÏά όταν μια ταινία ξεκινήσει." + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "ΣυμπεÏιφοÏά όταν μια ταινία φτάσει στο τέλος, κατά τη διάÏκεια της αναπαÏαγωγής." + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "ΡÏθμιση του πλάτους του πεÏιγÏάμματος των υποτίτλων. Το σκοτεινό πεÏίγÏαμμα κάνει τους υπότιτλους πιο ευανάγνωστους σε ένα ανοιχτόχÏωμο φόντο." + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "ΡÏθμιση του επιπέδου φωτεινότητας στην οθόνη Ï€Ïόσοψης κατά τη διάÏκεια της αναμονής." + +msgid "Configure the brightness level of the front panel display." +msgstr "ΡÏθμιση του επιπέδου φωτεινότητας στην οθόνη Ï€Ïόσοψης." + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "ΡÏθμιση του χÏώματος των εξωτεÏικών υποτίτλων, εναλλασσόμενο (κανονικά σε λευκό, πλάγια σε κίτÏινο, έντονα σε γαλάζιο, υπογÏαμμισμένα σε Ï€Ïάσινο), λευκό ή κίτÏινο." + +msgid "Configure the color of the teletext subtitles." +msgstr "ΡÏθμιση χÏώματος των υποτίτλων τηλεκειμένου." + +msgid "Configure the contrast level of the front panel display." +msgstr "ΡÏθμιση επιπέδου αντίθεσης στην οθόνη Ï€Ïόσοψης." + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "ΡÏθμιση της συμπεÏιφοÏάς του κέÏσοÏα στη λίστα καναλιών. Όταν ανοίγει η λίστα μποÏείτε να κÏατήσετε την Ï„Ïέχουσα υπηÏεσία ή να επιλέξετε ήδη τα πάνω/κάτω και θα μποÏείτε έτσι να αντιμεταθέσετε τα πλήκτÏα B+/B-" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "ΡÏθμιση της διάÏκειας σε ÏŽÏες όπου ο δέκτης θα μεταβεί σε κατάσταση αναμονής όταν δεν ελέγχεται." + +msgid "Configure the duration in minutes for the screensaver." +msgstr "ΡÏθμιση της διάÏκειας της Ï€Ïοστασίας οθόνης σε λεπτά." + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "Ρυθμίστε τη διάÏκεια σε λεπτά για το χÏονοδιακόπτη Ïπνου. Επιλέξτε αυτό το στοιχείο και πιέστε το ΟΚ ή το Ï€Ïάσινο για να ξεκινήσετε/σταματήσετε το χÏονοδιακόπτη" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "ΡÏθμιση της διάÏκειας κατά την οποία θα κλείσει ο δέκτης σε πεÏίπτωση που βÏίσκεται σε αναμονή." + +msgid "Configure the first audio language (highest priority)." +msgstr "ΡÏθμιση της Ï€Ïώτης γλώσσας του ήχου (Ïψιστη Ï€ÏοτεÏαιότητα)." + +msgid "Configure the first subtitle language (highest priority)." +msgstr "ΡÏθμιση της Ï€Ïώτης γλώσσας των υποτίτλων (Ïψιστη Ï€ÏοτεÏαιότητα)." + +msgid "Configure the font size of the subtitles." +msgstr "ΡÏθμιση του μεγέθους της γÏαμματοσειÏάς των υποτίτλων." + +msgid "Configure the fourth audio language." +msgstr "ΡÏθμιση της τέταÏτης γλώσσας ήχου." + +msgid "Configure the fourth subtitle language." +msgstr "ΡÏθμιση της τέταÏτης γλώσσας υποτίτλων." + +msgid "Configure the function of a long press on the power button." +msgstr "ΡÏθμιση λειτουÏγίας παÏατεταμένης πίεσης του πλήκτÏου power." + +msgid "Configure the function of a short press on the power button." +msgstr "ΡÏθμιση λειτουÏγίας στιγμιαίας πίεσης του πλήκτÏου power." + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "ΡÏθμιση λειτουÏγίας του πλήκτÏου '0' όταν το PIP είναι ενεÏγό." + +msgid "Configure the gateway." +msgstr "ΡÏθμιση Ï€Ïλης δικτÏου." + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "ΡÏθμιση γενικής καθυστέÏησης των καναλιών ήχου Dolby Digital." + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "ΡÏθμιση γενικής καθυστέÏησης των στεÏεοφωνικών καναλιών ήχου." + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "Ρυθμίστε το σκληÏÏŒ δίσκο να μεταβαίνει σε αναμονή έπειτα από το καθοÏισμένο χÏόνο αδÏάνειας." + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "ΡÏθμιση της οÏιζόντιας στοίχισης των υποτίτλων." + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "ΡÏθμιση της αÏχικής ταχÏτητας fast forward. Όταν πιέζετε το πλήκτÏο fast forward, η Ï€Ïοώθηση θα ξεκινά με αυτή την ταχÏτητα." + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "ΡÏθμιση της αÏχικής ταχÏτητας rewind. Όταν πιέζετε το πλήκτÏο rewind, η Ï€Ïοώθηση Ï€Ïος τα πίσω θα ξεκινά με αυτή την ταχÏτητα." + +msgid "Configure the latitude of your location." +msgstr "ΡÏθμιση του γεωγÏÎ±Ï†Î¹ÎºÎ¿Ï Ï€Î»Î¬Ï„Î¿Ï…Ï‚ της τοποθεσίας σας." + +msgid "Configure the longitude of your location." +msgstr "ΡÏθμιση του γεωγÏÎ±Ï†Î¹ÎºÎ¿Ï Î¼Î®ÎºÎ¿Ï…Ï‚ της θέσης σας." + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "ΡÏθμιση της ελάχιστης διαθέσιμης χωÏητικότητας του δίσκου για εγγÏαφές. Όταν η χωÏητικότητα πέσει κάτω από αυτή την τιμή, τα διαγÏαμμένα αντικείμενα θα αφαιÏοÏνται από τον κάδο αχÏήστων." + +msgid "Configure the nameserver (DNS)." +msgstr "ΡÏθμιση των nameservers (DNS)." + +msgid "Configure the netmask." +msgstr "ΡÏθμιση μάσκας δικτÏου." + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "ΡÏθμιση του αÏÎ¹Î¸Î¼Î¿Ï Î·Î¼ÎµÏών μετά τις οποίες τα αντικείμενα θα αφαιÏοÏνται αυτόματα από τον κάδο αχÏήστων." + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "ΡÏθμιση του αÏÎ¹Î¸Î¼Î¿Ï Î·Î¼ÎµÏών μετά τις οποίες οι παλιοί χÏονοδιακόπτες θα διατηÏοÏνται Ï€Ïιν διαγÏαφοÏν από τη λίστα." + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "ΡÏθμιση της εκτός σÏνδεσης αποκωδικοποίησης σε χιλιοστά του δευτεÏολέπτου. Η Ïυθμισμένη καθυστέÏηση παÏατηÏείται σε κάθε αλλαγή ισοτιμίας της λέξης ελέγχου." + +msgid "Configure the possible fast forward speeds." +msgstr "ΡÏθμιση ταχυτήτων fast forward." + +msgid "Configure the possible rewind speeds." +msgstr "ΡÏθμιση ταχυτήτων rewind." + +msgid "Configure the primary EPG language." +msgstr "ΡÏθμισης της κÏÏιας γλώσσας του EPG." + +msgid "Configure the refresh rate of the screen." +msgstr "ΡÏθμιση του ÏÏ…Î¸Î¼Î¿Ï Î±Î½Î±Î½Î­Ï‰ÏƒÎ·Ï‚ της οθόνης." + +msgid "Configure the screen resolution in PC output mode." +msgstr "ΡÏθμιση της ανάλυσης οθόνης σε λειτουÏγία εξόδου PC." + +msgid "Configure the second audio language." +msgstr "ΡÏθμιση της δεÏτεÏης γλώσσας ήχου." + +msgid "Configure the second subtitle language." +msgstr "ΡÏθμιση της δεÏτεÏης γλώσσας υποτίτλων." + +msgid "Configure the secondary EPG language." +msgstr "ΡÏθμιση της δευτεÏεÏουσας γλώσσας του EPG." + +msgid "Configure the sharpness of the video scaling." +msgstr "ΡÏθμιση της οξÏτητας κλιμάκωσης της εικόνας." + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "ΡÏθμιση του μεσοδιαστήματος υπεÏπήδησης για τα πλήκτÏα '1'/'3'." + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "ΡÏθμιση του μεσοδιαστήματος υπεÏπήδησης για τα πλήκτÏα '4'/'6'." + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "ΡÏθμιση του μεσοδιαστήματος υπεÏπήδησης για τα πλήκτÏα '7'/'9'." + +msgid "Configure the slow motion speeds." +msgstr "ΡÏθμιση ταχυτήτων αÏγής κίνησης." + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "Ρυθμίστε την πηγή των δεδομένων από το tuner που θα εμφανίζονται στις μπάÏες πληÏοφοÏιών. Οι \"Ρυθμίσεις\" είναι από τις αποθηκευμένες Ïυθμίσεις. Το \"Tuner\" είναι ÏŒ,τι αναφέÏει το tuner." + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "ΡÏθμιση της ταχÏτητας της διαδικασίας διαγÏαφής στο παÏασκήνιο. ΧαμηλότεÏη ταχÏτητα θα καταναλώνει λιγότεÏο τις επιδόσεις του σκληÏÎ¿Ï Î´Î¯ÏƒÎºÎ¿Ï…." + +msgid "Configure the speed of the fan" +msgstr "ΡÏθμιση της ταχÏτητας του ανεμιστήÏα" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "ΡÏθμιση της καθυστέÏησης των υποτίτλων, όταν η πληÏοφοÏία χÏÎ¿Î½Î¹ÏƒÎ¼Î¿Ï Î´ÎµÎ½ είναι διαθέσιμη." + +msgid "Configure the third audio language." +msgstr "ΡÏθμιση της Ï„Ïίτης γλώσσας ήχου." + +msgid "Configure the third subtitle language." +msgstr "ΡÏθμιση της Ï„Ïίτης γλώσσας υποτίτλων." + +msgid "Configure the transparency of the OSD." +msgstr "ΡÏθμιση της διαφάνειας του OSD." + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "ΡÏθμιση της διαφάνειας του μαÏÏου φόντου των γÏαφικών υποτίτλων DVB." + +msgid "Configure the tuner mode." +msgstr "ΡÏθμιση λειτουÏγίας του tuner." + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "ΡÏθμιση των εικονιδίων ένδειξης κατάστασης στη λίστα ταινιών." + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "ΡÏθμιση της κάθετης θέσης των υποτίτλων σε σχέση με το κάτω μέÏος της οθόνης." + +msgid "Configure the video output mode (or resolution)." +msgstr "ΡÏθμιση της λειτουÏγίας (ή ανάλυσης) της εξόδου βίντεο." + +msgid "Configure the way in which the receiver changes channels." +msgstr "ΡÏθμιση του Ï„Ïόπου αλλαγής των καναλιών από το δέκτη." + +msgid "Configure where completed timers show up in the timer list." +msgstr "Ρυθμίστε Ï€Î¿Ï Î¸Î± εμφανίζονται οι ολοκληÏωμένοι χÏονοδιακόπτες στη λίστα." + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "Ρυθμίστε εάν (και για πόσο χÏονικό διάστημα) η δεÏτεÏη μπάÏα πληÏοφοÏιών θα εμφανιστεί όταν πατηθεί το OK δÏο φοÏές. Η δεÏτεÏη μπάÏα πληÏοφοÏιών πεÏιέχει Ï€Ïόσθετες πληÏοφοÏίες σχετικά με το Ï„Ïέχον κανάλι." + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "Ρυθμίστε εάν οι πολυκάναλες φέÏουσες ήχου Ï€Ïέπει να υποβιβάζονται σε στέÏεο." + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "Ρυθμίστε εάν θα εμφανίζεται ή όχι ένα εικονίδιο κατά την κίνηση του μοτέÏ." + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "ΡÏθμιση του επιπέδου Ï€Ïόσβασης στο Î¼ÎµÎ½Î¿Ï Ï€Î±ÏαμετÏοποίησης. Το Ï€ÏοχωÏημένο επίπεδο δίνει Ï€Ïόσβαση σε όλες τις λειτουÏγίες." + +msgid "Configure which color format should be used on the SCART output." +msgstr "Ρυθμίστε ποιο φοÏμά χÏώματος θα χÏησιμοποιείται στην έξοδο SCART." + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "Ρυθμίστε ποιο tuner θα επιλέγεται για εγγÏαφές, όταν πεÏισσότεÏα του ενός είναι διαθέσιμα." + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "Ρυθμίστε ποιος Ï„Ïπος tuner θα Ï€Ïοτιμάται, όταν η ίδια υπηÏεσία είναι διαθέσιμη σε διαφοÏετικοÏÏ‚ Ï„Ïπους tuner." + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "Ρυθμίστε ποιο tuner θα Ï€Ïοτιμάται, όταν πεÏισσότεÏα του ενός είναι διαθέσιμα. Στο 'αυτόματο', το σÏστημα θα δίνει Ï€ÏοτεÏαιότητα στο tuner με τον μικÏότεÏο αÏιθμό καναλιών/δοÏυφόÏων." + +msgid "Configure your internal LAN" +msgstr "Ρυθμίσεις εσωτεÏÎ¹ÎºÎ¿Ï Î´Î¹ÎºÏ„Ïου" + +msgid "Configure your network again" +msgstr "ΡÏθμιση του δικτÏου εκ νέου" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "Ρυθμίστε το δίκτυο και πιέστε ΟΚ για ξεκινήσει η ανίχνευση" + +msgid "Configure your wireless LAN again" +msgstr "ΡÏθμιση του ασÏÏματου δικτÏου εκ νέου" + +msgid "Configures which video output connector will be used." +msgstr "Ρυθμίζει ποιος Ï„Ïπος σÏνδεσης εξόδου εικόνας θα χÏησιμοποιηθεί." + +msgid "Configuring" +msgstr "ΠαÏαμετÏοποίηση" + +msgid "Conflicting timer" +msgstr "Διένεξη χÏονοδιακόπτη" + +msgid "Connect" +msgstr "ΣÏνδεση" + +msgid "Connect to a wireless network" +msgstr "ΣÏνδεση σε ασÏÏματο δίκτυο" + +msgid "Connected satellites" +msgstr "Συνδεδεμένοι δοÏυφόÏοι" + +msgid "Connected to" +msgstr "Συνδέθηκε με" + +msgid "Connected!" +msgstr "Συνδέθηκε!" + +msgid "Constellation" +msgstr "ΑστεÏισμός" + +msgid "Content does not fit on DVD!" +msgstr "Το πεÏιεχόμενο δεν χωÏάει σε DVD!" + +msgid "Continue" +msgstr "Συνέχεια" + +msgid "Continue in background" +msgstr "Συνέχεια στο παÏασκήνιο" + +msgid "Continue playback" +msgstr "Συνέχιση αναπαÏαγωγής" + +msgid "Continue playing" +msgstr "Συνέχιση αναπαÏαγωγής" + +msgid "Continues play (loop)" +msgstr "Συνέχιση αναπαÏαγωγής (επανάληψη)" + +msgid "Contrast" +msgstr "Αντίθεση" + +msgid "Convert ext3 filesystem to ext4" +msgstr "ΜετατÏοπή συστήματος αÏχείων ext3 σε ext4" + +msgid "Convert ext3 to ext4" +msgstr "ΜετατÏοπή ext3 σε ext4" + +msgid "Converting ext3 to ext4..." +msgstr "ΜετατÏοπή ext3 σε ext4..." + +msgid "Copy" +msgstr "ΑντιγÏαφή" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "Αδυναμία σÏνδεσης με την πηγή λογισμικών .NFI του δέκτη:" + +msgid "Could not find installed channel list." +msgstr "Δεν βÏέθηκε η λίστα εγκατεστημένων καναλιών." + +msgid "Could not load medium! No disc inserted?" +msgstr "Το μέσο δεν φοÏτώθηκε! Δεν έγινε εισαγωγή δίσκου;" + +msgid "Could not open Picture in Picture" +msgstr "Αδυναμία εκκίνησης PiP" + +#, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "Αδυναμία εγγÏαφής λόγω διένεξης του χÏονοδιακόπτη %s" + +#, python-format +msgid "Could not record due to invalid service %s" +msgstr "Αδυναμία εγγÏαφής λόγω μη έγκυÏης υπηÏεσίας %s" + +msgid "Create DVD-ISO" +msgstr "ΔημιουÏγία DVD-ISO" + +msgid "Create more detailed crash log" +msgstr "ΔημιουÏγία λεπτομεÏέστεÏου καταγÏαφολογίου" + +#, python-format +msgid "Creating directory %s failed." +msgstr "Η δημιουÏγία του φακέλου %s απέτυχε." + +msgid "Creating filesystem" +msgstr "ΔημιουÏγίας συστήματος αÏχείων" + +msgid "Creating partition" +msgstr "ΔημιουÏγία κατάτμησης" + +msgid "Croatian" +msgstr "ΚÏοάτικα" + +msgid "Current CEC address" +msgstr "ΤÏέχουσα διεÏθυνση CEC" + +msgid "Current device: " +msgstr "ΤÏέχουσα συσκευή: " + +msgid "Current event EPG" +msgstr "ΤÏέχον Ï€ÏόγÏαμμα EPG" + +#, python-format +msgid "Current mode: %s \n" +msgstr "ΤÏέχουσα λειτουÏγία: %s \n" + +msgid "Current settings:" +msgstr "ΤÏέχουσες Ïυθμίσεις:" + +msgid "Current transponder" +msgstr "TÏέχων αναμεταδότης" + +msgid "Current value: " +msgstr "ΤÏέχουσα τιμή: " + +msgid "Current version:" +msgstr "ΤÏέχουσα έκδοση:" + +msgid "Currently installed image" +msgstr "ΤÏέχον εγκατεστημένο λογισμικό" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "Αυτή τη στιγμή είναι αδÏνατη η ανάκτηση του καταγÏαφολογίου - δοκιμάστε αÏγότεÏα" + +msgid "Custom skip time for '1'/'3' buttons" +msgstr "ΧÏόνος υπεÏπήδησης για τα πλήκτÏα '1'/'3'" + +msgid "Custom skip time for '4'/'6' buttons" +msgstr "ΧÏόνος υπεÏπήδησης για τα πλήκτÏα '4'/'6'" + +msgid "Custom skip time for '7'/'9' buttons" +msgstr "ΧÏόνος υπεÏπήδησης για τα πλήκτÏα '7'/'9'" + +msgid "Customize" +msgstr "ΠαÏαμετÏοποίηση" + +msgid "Customize channel list cursor behavior" +msgstr "ΡÏθμιση της συμπεÏιφοÏάς του κέÏσοÏα στη λίστα καναλιών" + +msgid "Cut" +msgstr "Αποκοπή" + +msgid "Cutlist editor..." +msgstr "ΕπεξεÏγασία σημείων αποκοπής..." + +msgid "Czech" +msgstr "Τσέχικα" + +msgid "D" +msgstr "D" + +msgid "DHCP" +msgstr "DHCP" + +msgid "DMM advanced" +msgstr "DMM Ï€ÏοχωÏημένο" + +msgid "DMM normal" +msgstr "DMM κανονικό" + +msgid "DUAL LAYER DVD" +msgstr "DVD ΔΙΠΛΗΣ ΣΤΡΩΣΗΣ" + +msgid "DVB subtitle black transparency" +msgstr "Διαφάνεια υποτίτλων DVB" + +msgid "DVB-C" +msgstr "DVB-C" + +msgid "DVB-C ANNEX C" +msgstr "DVB-C ANNEX C" + +msgid "DVB-S" +msgstr "DVB-S" + +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "DVB-T" + +msgid "DVB-T2" +msgstr "DVB-T2" + +msgid "DVD data format" +msgstr "ΦοÏμά δεδομένων DVD" + +msgid "DVD file browser" +msgstr "Πλοηγός DVD" + +msgid "DVD media toolbox" +msgstr "ΕÏγαλειοθήκη πολυμέσων DVD" + +msgid "DVD player" +msgstr "ΑναπαÏαγωγή DVD" + +msgid "DVD titlelist" +msgstr "Λίστα τίτλων DVD" + +msgid "Danish" +msgstr "Δανικά" + +msgid "Date" +msgstr "ΗμεÏομηνία" + +msgid "Date/time input" +msgstr "Εισαγωγή ημεÏομηνίας/ÏŽÏας" + +msgid "Deep standby" +msgstr "Βαθιά αναμονή" + +msgid "Default" +msgstr "ΠÏοεπιλογή" + +msgid "Default movie location" +msgstr "ΠÏοεπιλεγμένη τοποθεσία ταινιών" + +msgid "Default settings" +msgstr "ΑÏχικές Ïυθμίσεις" + +msgid "Delay before key repeat starts:" +msgstr "ΚαθυστέÏηση Ï€Ïιν ξεκινήσει η επανάληψη πλήκτÏου:" + +msgid "Delay for external subtitles" +msgstr "ΚαθυστέÏηση εξωτεÏικών υποτίτλων" + +msgid "Delete" +msgstr "ΔιαγÏαφή" + +msgid "Delete entry" +msgstr "ΔιαγÏαφή στοιχείου" + +msgid "Delete failed!" +msgstr "Η διαγÏαφή απέτυχε!" + +msgid "Delete file" +msgstr "ΔιαγÏαφή αÏχείου" + +msgid "Delete playlist entry" +msgstr "ΔιαγÏαφή στοιχείου λίστας αναπαÏαγωγής" + +msgid "Delete saved playlist" +msgstr "ΔιαγÏαφή αποθηκευμένης λίστας αναπαÏαγωγής" + +msgid "Delete timer" +msgstr "ΔιαγÏαφή χÏονοδιακόπτη" + +msgid "Delete..." +msgstr "ΔιαγÏαφή..." + +msgid "Deleted" +msgstr "ΔιεγÏαμμένα" + +msgid "Deleted items" +msgstr "ΔιεγÏαμμένα αντικείμενα" + +msgid "Depth" +msgstr "Βάθος" + +msgid "Descramble http streams" +msgstr "ΑποκÏυπτογÏάφηση Ïοών http" + +msgid "Description" +msgstr "ΠεÏιγÏαφή" + +msgid "Deselect" +msgstr "Αποεπιλογή" + +msgid "Details for plugin: " +msgstr "ΛεπτομέÏειες για το Ï€Ïόσθετο: " + +msgid "Detected HDD:" +msgstr "Εντοπισμένοι HDD:" + +msgid "Detected NIMs:" +msgstr "Εντοπισμένα NIMs:" + +msgid "Devicename:" +msgstr "Όνομα Συσκευής:" + +msgid "Devide" +msgstr "ΔιαίÏεση" + +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "Εντολή DiSEqC 1.0" + +msgid "DiSEqC 1.1 command" +msgstr "Εντολή DiSEqC 1.1" + +msgid "DiSEqC 1.1 repeats" +msgstr "Επαναλήψεις DiSEqC 1.1" + +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +msgid "DiSEqC mode" +msgstr "ΛειτουÏγία DiSEqC" + +#, python-format +msgid "DiSEqC port %s: %s" +msgstr "ΠόÏτα DiSEqC %s: %s" + +msgid "DiSEqC-tester settings" +msgstr "Ρυθμίσεις δοκιμής DiSEqC" + +msgid "Dialing:" +msgstr "Κλήση:" + +msgid "Digital contour removal" +msgstr "ΑφαίÏεση ÏˆÎ·Ï†Î¹Î±ÎºÎ¿Ï Ï€ÎµÏιγÏάμματος" + +msgid "Direct playback of linked titles without menu" +msgstr "Άμεση αναπαÏαγωγή των συνδεδεμένων τίτλων χωÏίς μενοÏ" + +msgid "Directory" +msgstr "Φάκελος" + +#, python-format +msgid "Directory %s does not exist." +msgstr "Ο φάκελος %s δεν υπάÏχει." + +#, python-format +msgid "Directory %s nonexistent." +msgstr "Ο φάκελος %s δεν υπάÏχει." + +msgid "Directory browser" +msgstr "Πλοηγός φακέλων" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "Ο φάκελος πεÏιέχει %d αÏχείο(α) και %d υποκαταλόγους.\n" + +#, python-format +msgid "Directory contains %s and %s." +msgstr "Ο φάκελος πεÏιέχει %s αÏχείο(α) και %s υποφακέλους." + +msgid "Disable" +msgstr "ΑπενεÏγοποίηση" + +msgid "Disable Picture in Picture" +msgstr "ΑπενεÏγοποίηση Εικόνας σε Εικόνα" + +msgid "Disable background scanning" +msgstr "ΑπενεÏγοποίηση αναζήτησης στο παÏασκήνιο" + +msgid "Disable timer" +msgstr "ΑπενεÏγοποίηση χÏονοδιακόπτη" + +msgid "Disabled" +msgstr "ΑπενεÏγοποιήθηκε" + +msgid "Disconnect" +msgstr "ΑποσÏνδεση" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "ΧώÏος δίσκου που διατίθεται για εγγÏαφές (σε GB)" + +msgid "Display 16:9 content as" +msgstr "Εμφάνιση πεÏιεχομένου 16:9 ως" + +msgid "Display 4:3 content as" +msgstr "Εμφάνιση πεÏιεχομένου 4:3 ως" + +msgid "Display >16:9 content as" +msgstr "Εμφάνιση πεÏιεχομένου >16:9 ως" + +msgid "Display and userinterface" +msgstr "Εμφάνιση και ΠεÏιβάλλον ΧÏήστη" + +msgid "Display message before playing next movie" +msgstr "Εμφάνιση μηνÏματος Ï€Ïιν από την αναπαÏαγωγή της επόμενης ταινίας" + +msgid "Display setup" +msgstr "Ρυθμίσεις οθόνης Ï€Ïόσοψης" + +msgid "Do not change" +msgstr "Îα μη γίνει αλλαγή" + +msgid "Do not record" +msgstr "Îα μη γίνει εγγÏαφή" + +msgid "Do nothing" +msgstr "Îα μη γίνει τίποτα" + +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Είστε σίγουÏοι ότι θέλετε να ελεγχθεί το σÏστημα αÏχείων;\n" +"Ενδέχεται να διαÏκέσει αÏκετά!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" +"Θέλετε σίγουÏα να μετατÏέψετε το σÏστημα αÏχείων;\n" +"Δεν μποÏεί να αναιÏεθεί!" + +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Θέλετε Ï€Ïαγματικά να διαγÏάψετε το %s;" + +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"Θέλετε να κατεβάσετε\n" +"το Ï€Ïόσθετο \"%s\";" + +msgid "Do you really want to exit?" +msgstr "Îα γίνει σίγουÏα έξοδος;" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" +"Θέλετε σίγουÏα να γίνει αÏχικοποίηση της συσκευής;\n" +"Όλα τα δεδομένα θα χαθοÏν!" + +#, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"Θέλετε να αφαιÏέσετε\n" +"το Ï€Ïόσθετο \"%s\";" + +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Θέλετε Ï€Ïαγματικά να αφαιÏέσετε το φάκελο %s από το δίσκο;" + +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Θέλετε να αφαιÏέσετε το σελιδοδείκτη του %s;" + +msgid "Do you want this?" +msgstr "Îα γίνει αυτό;" + +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Θέλετε να γίνει εγγÏαφή αυτής της συλλογής σε DVD;" + +msgid "Do you want to do a service scan?" +msgstr "Θέλετε να γίνει ανίχνευση υπηÏεσιών;" + +msgid "Do you want to do another manual service scan?" +msgstr "Θέλετε να γίνει μία ακόμα χειÏοκίνητη ανίχνευση;" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "Θέλετε να κατεβάσετε το λογισμικό στο %s ;" + +msgid "Do you want to install a channel list?" +msgstr "Θέλετε να γίνει εγκατάσταση μιας λίστας καναλιών;" + +msgid "Do you want to install the package:\n" +msgstr "Θέλετε να εγκαταστήσετε το πακέτο:\n" + +msgid "Do you want to play DVD in drive?" +msgstr "Θέλετε να αναπαÏαχθεί το DVD στη συσκευή;" + +msgid "Do you want to preview this DVD before burning?" +msgstr "Θέλετε να γίνει Ï€Ïοεπισκόπιση Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… DVD Ï€Ïιν την εγγÏαφή;" + +msgid "Do you want to reboot your receiver?" +msgstr "Θέλετε να επανεκκινήσετε τον δέκτη σας;" + +msgid "Do you want to remove the package:\n" +msgstr "Θέλετε να αφαιÏέσετε το πακέτο:\n" + +msgid "Do you want to restore your settings?" +msgstr "Θέλετε να επαναφέÏετε τις Ïυθμίσεις σας;" + +msgid "Do you want to resume this playback?" +msgstr "Θέλετε να επανασυνεχίσετε την αναπαÏαγωγή;" + +#, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Θέλετε να αναβαθμίσετε το δέκτη σας στο %s;" + +msgid "Do you want to update your receiver?" +msgstr "Θέλετε να ενημεÏώσετε το δέκτη σας;" + +msgid "Do you want to upgrade the package:\n" +msgstr "Θέλετε να αναβαθμίσετε το πακέτο:\n" + +msgid "Don't stop current event but disable coming events" +msgstr "ΧωÏίς παÏση Ï„Ïέχοντος Ï€ÏογÏάμματος, αλλά με απενεÏγοποίση επεÏχόμενων" + +#, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "Τέλος - Εγκαταστάθηκε, αναβαθμίστηκε ή αφαιÏέθηκε %d πακέτο με %s σφάλματα" +msgstr[1] "Τέλος - Εγκαταστάθηκαν, αναβαθμίστηκαν ή αφαιÏέθηκαν %d πακέτα με %s σφάλματα" + +msgid "Download" +msgstr "Λήψη" + +#, python-format +msgid "Download %s from server" +msgstr "Λήψη %s από το διακομιστή" + +msgid "Download .NFI-files for USB-flasher" +msgstr "Λήψη αÏχείων .NFI για το USB-Flasher" + +msgid "Download plugins" +msgstr "Λήψη Ï€Ïοσθέτων" + +msgid "Downloadable new plugins" +msgstr "Îέα Ï€Ïόσθετα για λήψη" + +msgid "Downloadable plugins" +msgstr "ΠÏόσθετα για λήψη" + +msgid "Downloading" +msgstr "Λήψη" + +msgid "Downloading plugin information. Please wait..." +msgstr "Λήψη πληÏοφοÏιών Ï€Ïοσθέτων. ΠαÏακαλώ πεÏιμένετε ..." + +msgid "Dutch" +msgstr "Ολλανδικά" + +msgid "Dynamic contrast" +msgstr "Δυναμική αντίθεση" + +msgid "E" +msgstr "Ε" + +msgid "EPG" +msgstr "EPG" + +msgid "EPG language selection 1" +msgstr "Επιλογή γλώσσας EPG 1" + +msgid "EPG language selection 2" +msgstr "Επιλογή γλώσσας EPG 2" + +msgid "EPG selection" +msgstr "Επιλογή EPG" + +msgid "EPG settings" +msgstr "Ρυθμίσεις EPG" + +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "ΣΦΑΛΜΑ - Αποτυχία ανίχνευσης (%s)!" + +msgid "East" +msgstr "Ανατολικά" + +msgid "East limit set" +msgstr "Ανατολικό ÏŒÏιο" + +msgid "Edit" +msgstr "ΕπεξεÏγασία" + +msgid "Edit DNS" +msgstr "ΕπεξεÏγασία DNS" + +msgid "Edit bouquets list" +msgstr "ΕπεξεÏγασία λίστας μπουκέτων" + +msgid "Edit chapters of current title" +msgstr "ΕπεξεÏγασία κεφαλαίων του Ï„Ïέχοντα τίτλου" + +msgid "Edit services list" +msgstr "ΕπεξεÏγασία λίστας υπηÏεσιών" + +msgid "Edit settings" +msgstr "ΕπεξεÏγασία Ïυθμίσεων" + +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "Αλλαγή των Ïυθμίσεων nameserver του δέκτη σας.\n" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "ΕπεξεÏγασία των Ïυθμίσεων δικτÏου του δέκτη σας.\n" + +msgid "Edit timer" +msgstr "ΕπεξεÏγασία χÏονοδιακόπτη" + +msgid "Edit title" +msgstr "ΕπεξεÏγασία τίτλου" + +msgid "Edit upgrade source url." +msgstr "Επιλέξτε πηγή αναβάθμισης για επεξεÏγασία" + +msgid "Education/Science/..." +msgstr "Εκπαίδευση/Επιστήμη/..." + +msgid "Electronic Program Guide" +msgstr "ΗλεκτÏονικός Οδηγός ΠÏογÏάμματος" + +msgid "Enable" +msgstr "ΕνεÏγοποίηση" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +msgid "Enable 5V for active antenna" +msgstr "ΕνεÏγοποίηση των 5 V για την ενεÏγή κεÏαία" + +msgid "Enable EIT EPG" +msgstr "ΕνεÏγοποίηση EIT EPG" + +msgid "Enable MHW EPG" +msgstr "ΕνεÏγοποίηση MHW EPG" + +msgid "Enable Netmed EPG" +msgstr "ΕνεÏγοποίηση Netmed EPG" + +msgid "Enable OK for channel selection" +msgstr "ΕνεÏγοποίηση ΟΚ για επιλογή καναλιών" + +msgid "Enable ViaSat EPG" +msgstr "ΕνεÏγοποίηση ViaSat EPG" + +msgid "Enable Virgin EPG" +msgstr "ΕνεÏγοποίηση Virgin EPG" + +msgid "Enable Wake On LAN" +msgstr "ΕνεÏγοποίηση ΑφÏπνισης Σε LAN" + +msgid "Enable auto fast scan" +msgstr "ΕνεÏγοποίηση της αυτόματης γÏήγοÏης ανίχνευσης" + +msgid "Enable bouquet selection in multi-EPG" +msgstr "ΕνεÏγοποίηση της επιλογής μπουκέτων στον πολλαπλό EPG" + +msgid "Enable freesat EPG" +msgstr "ΕνεÏγοποίηση freesat EPG" + +msgid "Enable multiple bouquets" +msgstr "ΕνεÏγοποίηση πολλαπλών μπουκέτων" + +msgid "Enable parental control" +msgstr "ΕνεÏγοποίηση Î³Î¿Î½Î¹ÎºÎ¿Ï Î­Î»ÎµÎ³Ï‡Î¿Ï…" + +msgid "Enable teletext caching" +msgstr "ΕνεÏγοποίηση αποθήκευσης τηλεκειμένου" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "ΕνεÏγοποίηση ζάπινγκ με τα CH+/-, B+/-, P+/-" + +msgid "Enabled" +msgstr "ΕνεÏγοποιήθηκε" + +msgid "Encrypted: " +msgstr "Ασφάλεια: " + +msgid "Encryption" +msgstr "Κωδικοποίηση" + +msgid "Encryption key" +msgstr "Κλειδί ασφαλείας" + +msgid "Encryption key type" +msgstr "ΤÏπος ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î±ÏƒÏ†Î±Î»ÎµÎ¯Î±Ï‚" + +msgid "Encryption:" +msgstr "Κωδικοποίηση:" + +msgid "End time" +msgstr "ÎÏα τεÏματισμοÏ" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "ΧÏόνος λήξης αγνόησης της αδÏάνειας του χÏονοδιακόπτη Ïπνου" + +msgid "End time to ignore shutdown in standby" +msgstr "Τέλος χÏόνου αγνόησης τεÏÎ¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï ÏƒÎµ αναμονή" + +msgid "English" +msgstr "Αγγλικά" + +msgid "Enigma2 skin selector" +msgstr "Enigma2 επιλογή θέματος" + +msgid "Enter main menu..." +msgstr "Είσοδος στο κÏÏιο μενοÏ..." + +msgid "Enter pin code" +msgstr "Εισαγωγή ÎºÏ‰Î´Î¹ÎºÎ¿Ï pin" + +msgid "Enter the service pin" +msgstr "Εισάγετε το pin υπηÏεσίας" + +msgid "Equal to" +msgstr "ΙσοÏται με" + +msgid "Error" +msgstr "Σφάλμα" + +msgid "Error code" +msgstr "Κωδικός σφάλματος" + +msgid "Error executing plugin" +msgstr "Σφάλμα κατά την εκτέλεση Ï€Ïοσθέτου" + +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Σφάλμα: %s\n" +"ΠÏοσπάθεια ξανά;" + +msgid "Estonian" +msgstr "Εσθονικά" + +msgid "Ethernet network interface" +msgstr "Διεπαφή ενσÏÏματου δικτÏου" + +msgid "Event font size (relative to skin size)" +msgstr "Μέγεθος γÏαμματοσειÏάς Ï€ÏογÏάμματος (σε σχέση με το μέγεθος του θέματος)" + +msgid "Event view" +msgstr "Επισκόπηση Ï€ÏογÏαμμάτων" + +msgid "Event view menu" +msgstr "ÎœÎµÎ½Î¿Ï Ï€ÏογÏαμμάτων" + +msgid "Everywhere" +msgstr "ΠαντοÏ" + +msgid "Exceeds dual layer medium!" +msgstr "ΥπέÏβαση μεγέθους διπλής στÏώσης του μέσου!" + +msgid "Execution finished!!" +msgstr "Η εκτέλεση ολοκληÏώθηκε!!" + +msgid "Execution progress:" +msgstr "ΠÏόοδος εκτέλεσης:" + +msgid "Exif" +msgstr "Exif" + +msgid "Exit" +msgstr "Έξοδος" + +msgid "Exit EPG" +msgstr "Έξοδος από EPG" + +msgid "Exit editor" +msgstr "Έξοδος από την επεξεÏγασία" + +msgid "Exit input device selection." +msgstr "Έξοδος από επιλογή συσκευής εισαγωγής." + +msgid "Exit media player?" +msgstr "Έξοδος από την αναπαÏαγωγή πολυμέσων;" + +msgid "Exit mediaplayer" +msgstr "Έξοδος από την αναπαÏαγωγή πολυμέσων" + +msgid "Exit movie list" +msgstr "Έξοδος από τη λίστα ταινιών" + +msgid "Exit movie player?" +msgstr "Έξοδος από την αναπαÏαγωγή πολυμέσων;" + +msgid "Exit nameserver configuration" +msgstr "Έξοδος από τη ÏÏθμιση nameserver" + +msgid "Exit network interface list" +msgstr "Έξοδος από τη λίστα διεπαφών δικτÏου" + +msgid "Exit network wizard" +msgstr "Έξοδος από τον οδηγό δικτÏου" + +msgid "Exit the wizard" +msgstr "Έξοδος από το οδηγό" + +msgid "Expert" +msgstr "ΠÏοχωÏημένο" + +msgid "Extend sleeptimer 15 minutes" +msgstr "Επέκταση χÏονοδιακόπτη 15 λεπτά" + +msgid "Extended Software" +msgstr "Εξελιγμένο λογισμικό" + +msgid "Extended Software Plugin" +msgstr "ΠÏόσθετο εξελιγμένου λογισμικοÏ" + +msgid "Extended network setup plugin..." +msgstr "ΠÏόσθετο Ï€ÏοχωÏημένης ÏÏθμισης δικτÏου..." + +msgid "Extended setup..." +msgstr "ΠÏοχωÏημένες ÏÏθμισεις..." + +msgid "Extensions" +msgstr "Επεκτάσεις" + +msgid "Extensions management" +msgstr "ΔιαχείÏιση επεκτάσεων" + +msgid "External PiP" +msgstr "ΕξωτεÏικό PiP" + +msgid "External subtitle color" +msgstr "ΧÏώμα εξωτεÏικών υποτίτλων" + +msgid "Extra motor options" +msgstr "ΠÏόσθετες επιλογές μοτέÏ" + +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "FTA" + +msgid "Factory reset" +msgstr "ΕπαναφοÏά εÏγοστασιακών Ïυθμίσεων" + +msgid "Failed" +msgstr "Απέτυχε" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "Αποτυχία εγγÏαφής του /tmp/positionersetup.log: " + +#, python-format +msgid "Fan %d" +msgstr "ΑνεμιστήÏας %d" + +#, python-format +msgid "Fan %d PWM" +msgstr "ΑνεμιστήÏας %d PWM" + +#, python-format +msgid "Fan %d voltage" +msgstr "Τάση ΑνεμιστήÏα %d" + +msgid "Fan operation" +msgstr "ΛειτουÏγία ανεμιστήÏα" + +msgid "Fan speed" +msgstr "ΤαχÏτητα ανεμιστήÏα" + +msgid "Fast" +msgstr "ΓÏήγοÏο" + +msgid "Fast DiSEqC" +msgstr "ΓÏήγοÏο DiSEqC" + +msgid "Fast Scan" +msgstr "ΓÏήγοÏη Ανίχνευση" + +msgid "Fast epoch" +msgstr "ΓÏήγοÏη εποχή" + +msgid "Fast forward speeds" +msgstr "ΤαχÏτητες fast forward" + +msgid "Favourites" +msgstr "Αγαπημένα" + +msgid "File appears to be busy.\n" +msgstr "Το αÏχείο είναι απασχολημένο. \n" + +msgid "Filesystem check" +msgstr "Έλεγχος συστήματος αÏχείων" + +msgid "Final position at" +msgstr "Τελική θέση σε" + +msgid "Final position at index" +msgstr "Τελευταία αποθηκευμένη θέση" + +msgid "Fine movement" +msgstr "ΜικÏοκίνηση" + +msgid "Finetune" +msgstr "ΜικÏοÏÏθμιση" + +msgid "Finished" +msgstr "ΟλοκληÏώθηκε" + +msgid "Finished configuring your network" +msgstr "ΟλοκλήÏωση ÏÏθμισης δικτÏου" + +msgid "Finished restarting your network" +msgstr "ΟλοκλήÏωση επανεκκίνησης δικτÏου" + +msgid "Finnish" +msgstr "Φιλανδικά" + +msgid "Fixed" +msgstr "ΣταθεÏÏŒ" + +msgid "Flash" +msgstr "Flash" + +msgid "Flashing failed" +msgstr "Η εγκατάσταση απέτυχε" + +msgid "Following tasks will be done after you press OK!" +msgstr "Οι ακόλουθες ενέÏγειες θα εκτελεστοÏν Î±Ï†Î¿Ï Ï€Î¹Î­ÏƒÎµÏ„Îµ ΟΚ!" + +msgid "Format" +msgstr "ΦοÏμά" + +msgid "Forward volume keys" +msgstr "ΠλήκτÏα Ï€Ïοώθησης ήχου" + +msgid "Frame size in full view" +msgstr "Μέγεθος κάδÏου σε πλήÏη οθόνη" + +msgid "French" +msgstr "Γαλλικά" + +msgid "Frequency" +msgstr "Συχνότητα" + +msgid "Frequency bands" +msgstr "Μπάντες συχνότητας" + +msgid "Frequency scan step size(khz)" +msgstr "Μέγεθος βήματος συχνότητας στην ανίχνευση(khz)" + +msgid "Frequency steps" +msgstr "Βήματα συχνότητας" + +msgid "Frequency:" +msgstr "Συχνότητα:" + +msgid "Fri" +msgstr "ΠαÏ" + +msgid "Friday" +msgstr "ΠαÏασκευή" + +msgid "From :" +msgstr "Από :" + +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Έκδοση frontprocessor: %d" + +msgid "Full transparency" +msgstr "ΠλήÏης διαφάνεια" + +msgid "Fulview resulution" +msgstr "Ανάλυση σε πλήÏη οθόνη" + +msgid "Function of OK button" +msgstr "ΛειτουÏγία ÎºÎ¿Ï…Î¼Ï€Î¹Î¿Ï OK" + +msgid "Further Options" +msgstr "ΠεÏαιτέÏω Επιλογές" + +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "ΠÏέπει να γίνει επανεκκίνηση του enigma2 για να ενεÏγοποιηθεί το νέο θέμα. Îα γίνει Ï„ÏŽÏα;" + +msgid "Gateway" +msgstr "ΠÏλη δικτÏου" + +msgid "General AC3 delay" +msgstr "Γενική καθυστέÏηση AC3" + +msgid "General PCM delay" +msgstr "Γενική καθυστέÏηση PCM" + +msgid "Genre" +msgstr "Είδος" + +msgid "German" +msgstr "ΓεÏμανικά" + +msgid "Get latest experimental image" +msgstr "Λήψη τελευταίου Î»Î¿Î³Î¹ÏƒÎ¼Î¹ÎºÎ¿Ï experimental" + +msgid "Get latest release image" +msgstr "Λήψη τελευταίου σταθεÏÎ¿Ï Î»Î¿Î³Î¹ÏƒÎ¼Î¹ÎºÎ¿Ï" + +msgid "Getting plugin information. Please wait..." +msgstr "Λήψη πληÏοφοÏιών Ï€Ïοσθέτου. ΠαÏακαλώ πεÏιμένετε..." + +msgid "Go down the list" +msgstr "Μετάβαση Ï€Ïος τα κάτω" + +msgid "Go to first movie or last item" +msgstr "Μετάβαση στην Ï€Ïώτη ταινία ή το τελευταίο στοιχείο" + +msgid "Go to first movie or top of list" +msgstr "Μετάβαση στην Ï€Ïώτη ταινία ή στην κοÏυφή της λίστας" + +msgid "Go to first service" +msgstr "Μετάβαση στην Ï€Ïώτη υπηÏεσία" + +msgid "Go to last service" +msgstr "Μετάβαση στην τελευταία υπηÏεσία" + +msgid "Go to next event" +msgstr "Mετάβαση στο επόμενο Ï€ÏόγÏαμμα" + +msgid "Go to next page of service" +msgstr "Μετάβαση στην επόμενη σελίδα υπηÏεσιών" + +msgid "Go to previous event" +msgstr "ΕπιστÏοφή στο Ï€ÏοηγοÏμενο Ï€ÏόγÏαμμα" + +msgid "Go to previous page of service" +msgstr "ΕπιστÏοφή στην Ï€ÏοηγοÏμενη σελίδα υπηÏεσιών" + +msgid "Go up the list" +msgstr "Μετάβαση Ï€Ïος τα πάνω" + +msgid "Goto" +msgstr "Μετάβαση" + +msgid "Goto 0" +msgstr "Μετάβαση στο 0" + +msgid "Goto :" +msgstr "ΠÏος :" + +msgid "Goto X" +msgstr "Μετάβαση στη θέση Χ" + +msgid "Goto index position" +msgstr "Μετάβαση στην αποθηκευμένη θέση" + +msgid "Goto next day of events" +msgstr "Μετάβαση στην επόμενη ημέÏα των Ï€ÏογÏαμμάτων" + +msgid "Goto next page of events" +msgstr "Μετάβαση στην επόμενη σελίδα Ï€ÏογÏαμμάτων" + +msgid "Goto position" +msgstr "Μετάβαση στη θέση" + +msgid "Goto previous day of events" +msgstr "Μετάβαση στην Ï€ÏοηγοÏμενη μέÏα των Ï€ÏογÏαμμάτων" + +msgid "Goto previous page of events" +msgstr "Μετάβαση στην Ï€ÏοηγοÏμενη σελίδα συμβάντων" + +msgid "Goto specific date/time" +msgstr "Μετάβαση σε καθοÏισμένη ημεÏομηνία/ÏŽÏα" + +msgid "GotoX calibration" +msgstr "Υπολογισμός GotoX" + +msgid "GraphMultiEpg Settings" +msgstr "Ρυθμίσεις ΓÏÎ±Ï†Î¹ÎºÎ¿Ï Î Î¿Î»Î»Î±Ï€Î»Î¿Ï Epg" + +msgid "Graphical Multi EPG" +msgstr "ΓÏαφικός Πολλαπλός EPG" + +msgid "Greek" +msgstr "Ελληνικά" + +msgid "Green boost" +msgstr "Ενίσχυση του Ï€Ïάσινου" + +msgid "Guard interval" +msgstr "Διάστημα φÏλαξης" + +msgid "HD list" +msgstr "Λίστα HD" + +msgid "HDMI-CEC setup" +msgstr "ΡÏθμιση HDMI-CEC" + +msgid "Handle standby from TV" +msgstr "ΧειÏισμός αναμονής από TV" + +msgid "Handle wakeup from TV" +msgstr "ΧειÏισμός εκκίνησης από TV" + +msgid "Hard disk" +msgstr "ΣκληÏός δίσκος" + +msgid "Hard disk setup" +msgstr "ΡÏθμιση σκληÏÎ¿Ï Î´Î¯ÏƒÎºÎ¿Ï…" + +msgid "Hard disk standby after" +msgstr "ΣκληÏός δίσκος σε αναμονή μετά από" + +msgid "Harddisk" +msgstr "ΣκληÏός δίσκος" + +msgid "Hardware: " +msgstr "Υλικό: " + +msgid "Hebrew" +msgstr "ΕβÏαϊκά" + +msgid "Helps setting up your dish" +msgstr "Βοήθός ÏÏθμισης του κατόπτÏου σας" + +msgid "Hidden network" +msgstr "ΚÏυφό δίκτυο" + +msgid "Hide CI messages" +msgstr "ΑπόκÏυψη μηνυμάτων CI" + +msgid "Hide channel list in radio mode" +msgstr "ΑπόκÏυψη της λίστα καναλιών σε λειτουÏγία Ïαδιοφώνου" + +msgid "Hide known extensions" +msgstr "ΑπόκÏυψη γνωστών επεκτάσεων" + +msgid "Hide number markers" +msgstr "ΑπόκÏυψη σημειωτών των αÏιθμών" + +msgid "Hide player" +msgstr "ΑπόκÏυψη αναπαÏαγωγοÏ" + +msgid "Hide zap errors" +msgstr "ΑπόκÏυψη σφαλμάτων του ζάπινγκ" + +msgid "Hierarchy info" +msgstr "ΠληÏοφοÏίες ιεÏαÏχίας" + +msgid "Hierarchy information" +msgstr "ΠληÏοφοÏίες ιεÏαÏχίας" + +msgid "High bitrate support" +msgstr "ΥποστήÏιξη Ï…ÏˆÎ·Î»Î¿Ï bitrate" + +msgid "Hold screen" +msgstr "Οθόνη αναμονής" + +msgid "Hold till locked" +msgstr "Αναμονή ως το κλείδωμα" + +msgid "Home" +msgstr "ΑÏχική" + +msgid "Horizontal" +msgstr "ΟÏιζόντια" + +msgid "Horizontal turning speed" +msgstr "ΤαχÏτητα πεÏιστÏοφής σε οÏιζόντια πόλωση" + +msgid "How many minutes do you want to record?" +msgstr "Ποσά λεπτά θέλετε να εγγÏαφοÏν;" + +msgid "Hue" +msgstr "ΑπόχÏωση" + +msgid "Hungarian" +msgstr "ΟυγγÏικά" + +msgid "IP address" +msgstr "ΔιεÏθυνση IP" + +msgid "ISO file is too large for this filesystem!" +msgstr "Το αÏχείο ISO είναι Ï€Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿ για αυτό το σÏστημα αÏχείων!" + +msgid "ISO path" +msgstr "ΔιαδÏομή ISO" + +msgid "Icons" +msgstr "Εικονίδια" + +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"Αν διαβάζετε αυτό το μήνυμα τότε υπάÏχει\n" +"κάποιο Ï€Ïόβλημα με το scart. Πιέστε ΟΚ για επιστÏοφή." + +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"Εάν η TV σας έχει επιλογή βελτίωσης για φωτεινότητα ή αντίθεση, απενεÏγοποιήστε την. Εάν υπάÏχει επιλογή με όνομα \"δυναμική\", βάλτε τη σε θέση \"στάνταÏ\". Ρυθμίστε τον φωτισμό με τα δικά σας δεδομένα. Κατεβάστε την αντίθεση όσο γίνεται. \n" +"Κατεβάστε την φωτεινότητα τόσο, ώστε μόλις να διακÏίνονται οι δÏο κατώτεÏες γκÏι σκιές.\n" +"Μην λαμβάνετε υπόψιν τις φωτεινές σκιές Ï„ÏŽÏα. Θα ÏυθμιστοÏν στο επόμενο βήμα.\n" +"Εάν σας ικανοποιεί το αποτέλεσμα, πιέστε ΟΚ." + +msgid "Image: " +msgstr "Λογισμικό δέκτη: " + +msgid "Immediate shutdown" +msgstr "Άμεσος τεÏματισμός" + +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "Για να εκτελεστεί μια εγγÏαφή, ο δέκτης μετέβη στο κανάλι εγγÏαφής!\n" + +msgid "In progress" +msgstr "Σε εξέλιξη" + +msgid "Inactivity Sleeptimer" +msgstr "ΧÏονοδιακόπτης αδÏάνειας" + +msgid "Include AIT in http streams" +msgstr "ΣυμπεÏίληψη του AIT στις Ïοές http" + +msgid "Include ECM in http streams" +msgstr "ΣυμπεÏίληψη του ECM στις Ïοές http" + +msgid "Include EIT in http streams" +msgstr "ΣυμπεÏίληψη του ΕΙΤ στις Ïοές http" + +msgid "Incorrect type service for PiP!" +msgstr "Λανθασμένος Ï„Ïπος υπηÏεσίας για PiP!" + +msgid "Increased voltage" +msgstr "Αυξημένη τάση" + +msgid "Index" +msgstr "ΕυÏετήÏιο" + +msgid "Index allocated:" +msgstr "Κατανεμημένη θέση:" + +msgid "Info" +msgstr "ΠληÏοφοÏίες" + +msgid "Info bar" +msgstr "ΜπάÏα πληÏοφοÏιών" + +msgid "Info bar timeout" +msgstr "ΧÏόνος εμφάνισης πληÏοφοÏιών" + +msgid "Infobar frontend data source" +msgstr "Πηγή δεδομένων tuner στη μπάÏα πληÏοφοÏιών" + +msgid "Information" +msgstr "ΠληÏοφοÏίες" + +msgid "Init" +msgstr "ΑÏχ." + +msgid "Initial fast forward speed" +msgstr "ΑÏχική ταχÏτητα fast forward" + +msgid "Initial location in new timers" +msgstr "ΑÏχική τοποθεσία σε νέους χÏονοδιακόπτες" + +msgid "Initial lock ratio" +msgstr "ΑÏχική αναλογία κλειδώματος" + +msgid "Initial rewind speed" +msgstr "ΑÏχική ταχÏτητα rewind" + +msgid "Initial signal quality" +msgstr "ΑÏχική ποιότητα σήματος" + +msgid "Initial signal quality:" +msgstr "ΑÏχική ποιότητα σήματος:" + +msgid "Initialization" +msgstr "ΑÏχικοποίηση" + +msgid "Initialize" +msgstr "ΑÏχικοποίηση " + +msgid "Initializing storage device..." +msgstr "ΑÏχικοποίηση συσκευής αποθήκευσης..." + +msgid "Input" +msgstr "ÎœÎµÎ½Î¿Ï ÎµÏ€Î¹Î»Î¿Î³ÏŽÎ½" + +msgid "Input device setup" +msgstr "ΡÏθμιση συσκευής εισόδου" + +msgid "Input devices" +msgstr "Συσκευές εισόδου" + +msgid "Install" +msgstr "Εγκατάσταση" + +msgid "Install a new image with a USB stick" +msgstr "Εγκατάσταση νέου Î»Î¿Î³Î¹ÏƒÎ¼Î¹ÎºÎ¿Ï Î¼Î­ÏƒÏ‰ usb στικ" + +msgid "Install a new image with your web browser" +msgstr "Εγκατάσταση νέου Î»Î¿Î³Î¹ÏƒÎ¼Î¹ÎºÎ¿Ï Î¼Î­ÏƒÏ‰ Ï€Î»Î¿Î·Î³Î¿Ï web" + +msgid "Install channel list" +msgstr "Εγκατάσταση λίστας καναλιών" + +msgid "Install extensions" +msgstr "Εγκατάσταση επεκτάσεων" + +msgid "Install extensions." +msgstr "Εγκατάσταση επεκτάσεων." + +msgid "Install local extension" +msgstr "Εγκατάσταση τοπικής επέκτασης" + +msgid "Install picons on" +msgstr "Εγκατάσταση picons σε" + +msgid "Install softcam" +msgstr "Εγκατάσταση softcam" + +msgid "Installation has completed." +msgstr "Η εγκατάσταση ολοκληÏώθηκε." + +msgid "Installation or removal has completed." +msgstr "Η εγκατάσταση ή διαγÏαφή ολοκληÏώθηκε." + +msgid "Installing" +msgstr "Εγκατάσταση" + +msgid "Installing software..." +msgstr "Εγκατάσταση λογισμικοÏ..." + +msgid "Instant recording location" +msgstr "Τοποθεσία άμεσης εγγÏαφής" + +msgid "Instant recording..." +msgstr "Άμεση εγγÏαφή..." + +msgid "Interface: " +msgstr "Διεπαφή: " + +msgid "Intermediate" +msgstr "Ενδιάμεσο" + +msgid "Internal flash" +msgstr "ΕσωτεÏική flash" + +msgid "Internal hdd only" +msgstr "ΕσωτεÏικός δίσκος μόνο" + +msgid "Interval between keys when repeating:" +msgstr "Διάστημα Î¼ÎµÏ„Î±Î¾Ï Ï„Ï‰Î½ πλήκτÏων μετά από επανάληψη:" + +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Επιλέχθηκε μη έγκυÏος φάκελος: %s" + +msgid "Invalid location" +msgstr "Μη έγκυÏη τοποθεσία" + +msgid "Invalid transponder data" +msgstr "Μη έγκυÏα δεδομένα αναμεταδότη" + +msgid "Inversion" +msgstr "ΑναστÏοφή" + +msgid "Invert" +msgstr "ΑντιστÏοφή" + +msgid "Ipkg" +msgstr "Ipkg" + +msgid "Is this setting ok?" +msgstr "ΧÏήση αυτών των Ïυθμίσεων;" + +msgid "Is this video mode ok?" +msgstr "Είναι εντάξει αυτή η λειτουÏγία εικόνας;" + +msgid "Italian" +msgstr "Ιταλικά" + +msgid "Items per page " +msgstr "Αντικείμενα ανά σελίδα " + +msgid "Items per page for list screen" +msgstr "Αντικείμενα ανά σελίδα για λίστα οθόνης" + +msgid "Job overview" +msgstr "Επισκόπηση εÏγασιών" + +msgid "Jump to beginning of list" +msgstr "Μετάβαση στην αÏχή της λίστας" + +msgid "Jump to end of list" +msgstr "Μετάβαση στο τέλος της λίστας" + +msgid "Jump to next marked position" +msgstr "Μετάβαση στην επόμενη μαÏκαÏισμένη θέση" + +msgid "Jump to previous marked position" +msgstr "Μετάβαση στην Ï€ÏοηγοÏμενη μαÏκαÏισμένη θέση" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +msgid "Just scale" +msgstr "Κλιμάκωση" + +msgid "Keep service" +msgstr "ΔιατήÏηση υπηÏεσίας" + +msgid "Kernel version: " +msgstr "Έκδοση kernel: " + +msgid "Keyboard" +msgstr "ΠληκτÏολόγιο" + +msgid "Keyboard map" +msgstr "ΧάÏτης πληκτÏολογίου" + +msgid "Keyboard setup" +msgstr "ΡÏθμιση πληκτÏολογίου" + +msgid "LAN adapter" +msgstr "ΠÏοσαÏμογέας LAN" + +msgid "LAN connection" +msgstr "ΣÏνδεση δικτÏου" + +msgid "LNB" +msgstr "LNB" + +msgid "Language" +msgstr "Γλώσσα" + +msgid "Language selection" +msgstr "Επιλογή γλώσσας" + +msgid "Last config" +msgstr "Τελευταία ÏÏθμιση" + +msgid "Last speed" +msgstr "Τελευταία ταχÏτητα" + +msgid "Last upgrade: " +msgstr "Τελευταία αναβάθμιση: " + +msgid "Latest Commits" +msgstr "Τελευταίες Αλλαγές" + +msgid "Latitude" +msgstr "ΓεωγÏαφικό πλάτος" + +msgid "Latvian" +msgstr "Λετονικά" + +msgid "Leave DVD player?" +msgstr "Έξοδος από την αναπαÏαγωγή DVD;" + +msgid "Left" +msgstr "ΑÏιστεÏά" + +msgid "Left from servicename" +msgstr "ΑÏιστεÏά του ονόματος υπηÏεσίας" + +msgid "Leisure hobbies" +msgstr "Χόμπι αναψυχής" + +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "ΜπάÏες πάνω - κάτω" + +msgid "Letterbox zoom" +msgstr "ΖουμάÏισμα σε μπάÏες πάνω - κάτω" + +msgid "Limit character set for recording filenames" +msgstr "ΠεÏιοÏισμένο πλήθος χαÏακτήÏων για ονόματα εγγÏαφών" + +msgid "Limit east" +msgstr "Ανατολικό ÏŒÏιο" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "ΠεÏιοÏισμός των χαÏακτήÏων για χÏήση στα ονόματα των εγγÏαφών σε (7 bit) ascii. Αυτό διασφαλίζει τη συμβατότητα με λειτουÏγικά συστήματα ή με συστήματα αÏχείων με πεÏιοÏισμένους χαÏακτήÏες." + +msgid "Limit west" +msgstr "Δυτικό ÏŒÏιο" + +msgid "Limits cancelled" +msgstr "ΑκÏÏωση οÏίων" + +msgid "Limits enabled" +msgstr "ÎŒÏια ενεÏγά" + +msgid "Limits off" +msgstr "ÎŒÏια απενεÏγοποιήμενα" + +msgid "Limits on" +msgstr "ÎŒÏια ενεÏγοποιήμενα" + +msgid "Link quality:" +msgstr "Ποιότητα σÏνδεσης:" + +msgid "Link:" +msgstr "ΣÏνδεση:" + +msgid "Linked titles with a DVD menu" +msgstr "Τίτλοι συνδεδεμένοι με Î¼ÎµÎ½Î¿Ï DVD" + +msgid "List EPG functions..." +msgstr "Λίστα λειτουÏγιών EPG..." + +msgid "List available networks" +msgstr "Λίστα διαθέσιμων δικτÏων" + +msgid "List mode" +msgstr "ΛειτουÏγία λίστας" + +msgid "List of storage devices" +msgstr "Λίστα μέσων αποθήκευσης" + +msgid "List type" +msgstr "ΤÏπος λίστας" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "Έκδοση λίστας %d, βÏέθηκε %d κανάλι" +msgstr[1] "Έκδοση λίστας %d, βÏέθηκαν %d κανάλια" + +msgid "Listen to the radio..." +msgstr "ΑκÏόαση Ïαδιοφώνου..." + +msgid "Lists reloaded!" +msgstr "" + +msgid "Lithuanian" +msgstr "Λιθουανικά" + +msgid "Load" +msgstr "ΦόÏτωση" + +msgid "Load Length of Movies in Movielist" +msgstr "ΦόÏτωση ΔιάÏκειας Ταινιών στη Λίστα" + +msgid "Load length of movies in movie list" +msgstr "ΦόÏτωση διάÏκειας ταινιών στη λίστα" + +msgid "Load playlist" +msgstr "ΦόÏτωση λίστας αναπαÏαγωγής" + +msgid "Local network" +msgstr "Τοπικό δίκτυο" + +msgid "Location" +msgstr "Τοποθεσία" + +msgid "Location for instant recordings" +msgstr "Τοποθεσία άμεσων εγγÏαφών" + +msgid "Lock ratio" +msgstr "Κλείδωμα αναλογιών" + +msgid "Lock:" +msgstr "Κλείδ:" + +msgid "Log results to harddisk" +msgstr "ΚαταγÏαφή αποτελεσμάτων στο δίσκο" + +msgid "Long filenames" +msgstr "Μεγάλα ονόματα αÏχείων" + +msgid "Long key press" +msgstr "Συνεχές πάτημα πλήκτÏου" + +msgid "Longitude" +msgstr "ΓεωγÏαφικό μήκος" + +msgid "Loop through to" +msgstr "Loop στο" + +msgid "Luxembourgish" +msgstr "ΛουξεμβουÏγιανή" + +msgid "MMC card" +msgstr "ΚάÏτα MMC" + +msgid "MORE" +msgstr "ΠΕΡΙΣΣΟΤΕΡΑ" + +msgid "Main menu" +msgstr "ΚÏÏιο μενοÏ" + +msgid "Maintain old EPG data for" +msgstr "ΔιατήÏηση των παλιών δεδομένων EPG για" + +msgid "Make this mark an 'in' point" +msgstr "ΜαÏκάÏισμα Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… ÏƒÎ·Î¼Î±Î´Î¹Î¿Ï Ï‰Ï‚ σημείο εσόδου" + +msgid "Make this mark an 'out' point" +msgstr "ΜαÏκάÏισμα Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… ÏƒÎ·Î¼Î±Î´Î¹Î¿Ï Ï‰Ï‚ σημείο εξόδου" + +msgid "Make this mark just a mark" +msgstr "ΜαÏκάÏισμα Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… ÏƒÎ·Î¼Î±Î´Î¹Î¿Ï Î±Ï€Î»Î¬ ως σημείο" + +msgid "Manage extensions" +msgstr "ΔιαχείÏιση επεκτάσεων" + +msgid "Manage your receiver's software" +msgstr "ΔιαχείÏιση Î»Î¿Î³Î¹ÏƒÎ¼Î¹ÎºÎ¿Ï Î´Î­ÎºÏ„Î·" + +msgid "Manual" +msgstr "ΧειÏοκίνητη" + +msgid "Manual Scan" +msgstr "ΧειÏοκίνητη Ανίχνευση" + +msgid "Manual configuration" +msgstr "ΧειÏοκίνητη ÏÏθμιση" + +msgid "Manual scan" +msgstr "ΧειÏοκίνητη ανίχνευση" + +msgid "Manual transponder" +msgstr "ΧειÏοκίνητος αναμεταδότης" + +msgid "Manufacturer" +msgstr "Κατασκευαστής" + +msgid "Margin after recording (minutes)" +msgstr "ΠεÏιθώÏιο μετά την εγγÏαφή (λεπτά)" + +msgid "Margin before recording (minutes)" +msgstr "ΠεÏιθώÏιο Ï€Ïιν την εγγÏαφή (λεπτά)" + +msgid "Max memory positions" +msgstr "Μέγιστος αÏιθμός θέσεων" + +msgid "Max. bitrate: " +msgstr "Μεγ. Ïυθμός bit: " + +msgid "Media player" +msgstr "ΑναπαÏαγωγή πολυμέσων" + +msgid "Media scanner" +msgstr "Ανίχνευση πολυμέσων" + +msgid "Medium is not a writeable DVD!" +msgstr "Το μέσο δεν είναι εγγÏάψιμο DVD!" + +msgid "Medium is not empty!" +msgstr "Το μέσο δεν είναι άδειο!" + +msgid "Memory" +msgstr "Μνήμη" + +msgid "Memory index" +msgstr "Θέση αποθήκευσης" + +msgid "Menu" +msgstr "ΜενοÏ" + +msgid "Message" +msgstr "Μήνυμα" + +msgid "Message..." +msgstr "Μήνυμα..." + +#, python-format +msgid "Minimum age %d years" +msgstr "Ελάχιστη ηλικία %d" + +msgid "Minimum send interval" +msgstr "Ελάχιστο διάστημα αποστολής" + +msgid "Missing " +msgstr "Λείπει " + +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "ΛειτουÏγία" + +msgctxt "Video output mode" +msgid "Mode" +msgstr "ΛειτουÏγία" + +msgid "Model: " +msgstr "Μοντέλο: " + +msgid "Modulation" +msgstr "ΔιαμόÏφωση" + +msgid "Modulator" +msgstr "ΔιαμοÏφωτής" + +msgid "Mon" +msgstr "Δευ" + +msgid "Mon-Fri" +msgstr "Δευ-ΠαÏ" + +msgid "Monday" +msgstr "ΔευτέÏα" + +msgid "Mosquito noise reduction" +msgstr "Μείωση θοÏÏβου κουνουπιοÏ" + +msgid "Mount" +msgstr "ΠÏοσάÏτηση" + +msgid "Move" +msgstr "Μετακίνηση" + +msgid "Move PiP to main picture" +msgstr "Μετακίνηση PiP στην κÏÏια εικόνα" + +msgid "Move Picture in Picture" +msgstr "Μετακίνηση Εικόνας σε Εικόνα" + +msgid "Move east" +msgstr "Κίνηση ανατολικά" + +msgid "Move to other directory" +msgstr "Μετακίνηση σε άλλο φάκελο" + +msgid "Move to position X" +msgstr "Κίνηση στη θέση Χ" + +msgid "Move west" +msgstr "Κίνηση δυτικά" + +msgid "Moved to position 0" +msgstr "Κινήθηκε στη θέση 0" + +msgid "Moved to position at index" +msgstr "Κίνηση στην αποθηκευμένη θέση" + +msgid "Movement" +msgstr "Κίνηση" + +msgid "Movie List Configuration" +msgstr "Ρυθμίσεις Λίστας Ταινιών" + +msgid "Movie Selection" +msgstr "Επιλογή Ταινιών" + +msgid "Movie list configuration" +msgstr "ΡÏθμιση λίστας ταινιών" + +msgid "Movie location" +msgstr "Τοποθεσία ταινιών" + +msgid "Movie selection" +msgstr "Επιλογή ταινιών" + +msgid "Movie/Drama" +msgstr "Ταινία/ΔÏάμα" + +msgid "Movielist menu" +msgstr "Μένου λίστας ταινιών" + +msgid "Moving" +msgstr "Μετακίνηση" + +msgid "Moving east ..." +msgstr "Κίνηση ανατολικά ..." + +msgid "Moving to position" +msgstr "Κίνηση στη θέση" + +msgid "Moving west ..." +msgstr "Κίνηση δυτικά ..." + +msgid "Multi EPG" +msgstr "Πολλαπλός EPG" + +msgid "Multi-EPG bouquet selection" +msgstr "Επιλογή μπουκέτων Ï€Î¿Î»Î»Î±Ï€Î»Î¿Ï EPG" + +msgid "Multimedia" +msgstr "Πολυμέσα" + +msgid "Multiple service support" +msgstr "ΥποστήÏιξη πολλαπλών υπηÏεσιών" + +msgid "Multiplex" +msgstr "Πολυπλέκτης" + +msgid "Multisat" +msgstr "Πολλοί δοÏυφόÏοι" + +msgid "Multisat all select" +msgstr "Επιλογή όλων των δοÏυφόÏων" + +msgid "Music/Ballet/Dance" +msgstr "Μουσική/Μπαλέτο/ΧοÏός" + +msgid "Mute" +msgstr "Σίγαση" + +msgid "N/A" +msgstr "Îœ/Δ" + +msgid "NEXT" +msgstr "ΕΠΟΜΕÎΟ" + +msgid "NFI image flashing" +msgstr "ΦλασάÏισμα Î»Î¿Î³Î¹ÏƒÎ¼Î¹ÎºÎ¿Ï NFI" + +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "Η εγκατάσταση Î»Î¿Î³Î¹ÏƒÎ¼Î¹ÎºÎ¿Ï NFI τελείωσε. Πατήστε ΚίτÏινο για επανεκκίνηση!" + +msgid "NIM" +msgstr "Μονάδα tuner" + +msgid "NOW" +msgstr "ΤΩΡΑ" + +msgid "NTSC" +msgstr "NTSC" + +msgid "Name" +msgstr "Όνομα" + +msgid "Nameserver" +msgstr "Nameserver" + +#, python-format +msgid "Nameserver %d" +msgstr "Nameserver %d" + +msgid "Nameserver settings" +msgstr "Ρυθμίσεις Nameserver" + +msgid "Nameserver setup" +msgstr "ΡÏθμιση Nameserver" + +msgid "Namespace" +msgstr "ΧώÏος ονόματος" + +msgid "Netmask" +msgstr "Μάσκα δικτÏου" + +msgid "Network" +msgstr "Δίκτυο" + +msgid "Network ID" +msgstr "ID δικτÏου" + +msgid "Network configuration..." +msgstr "ΔιαμόÏφωση δικτÏου..." + +msgid "Network mount" +msgstr "ΠÏοσάÏτηση δικτÏου" + +#, python-format +msgid "Network mount %s" +msgstr "ΠÏοσάÏτηση δικτÏου %s" + +msgid "Network name (SSID)" +msgstr "Όνομα δικτÏου (SSID)" + +msgid "Network scan" +msgstr "Ανίχνευση δικτÏου" + +msgid "Network setup" +msgstr "ΡÏθμιση δικτÏου" + +msgid "Network test" +msgstr "Έλεγχος δικτÏου" + +msgid "Network test..." +msgstr "Έλεγχος δικτÏου..." + +msgid "Network test: " +msgstr "Έλεγχος δικτÏου: " + +msgid "Network wizard" +msgstr "Οδηγός δικτÏου" + +msgid "Network:" +msgstr "Δίκτυο:" + +msgid "New" +msgstr "Îέο" + +msgid "New PIN" +msgstr "Îέο PIN" + +msgid "New version:" +msgstr "Îέα έκδοση:" + +msgid "News Current Affairs" +msgstr "Ειδήσεις & ΕπικαιÏότητα" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "Επόμενο" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "Επόμενο" + +msgid "No" +msgstr "Όχι" + +msgid "No (supported) DVDROM found!" +msgstr "Δεν βÏέθηκε (υποστηÏιζόμενο) DVDROM!" + +msgid "No Connection" +msgstr "Δεν υπάÏχει σÏνδεση" + +msgid "No HDD found or HDD not initialized!" +msgstr "Δεν βÏέθηκε σκληÏός δίσκος ή δεν έχει γίνει αÏχικοποίηση!" + +msgid "No backup needed" +msgstr "Δεν απαιτείται εφεδÏεία" + +msgid "No cable tuner found!" +msgstr "Δεν βÏέθηκε καλωδιακό tuner!" + +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Δεν υπάÏχουν δεδομένα στον αναμεταδότη!\n" +"(ΥπέÏβαση χÏόνου ανάγνωσης του PAT)" + +msgid "No delay" +msgstr "ΧωÏίς καθυστέÏηση" + +msgid "No description available." +msgstr "Μη διαθέσιμη πεÏιγÏαφή." + +msgid "No details for this image file" +msgstr "Δεν υπάÏχουν λεπτομέÏειες για αυτό το αÏχείο" + +msgid "No displayable files on this medium found!" +msgstr "Δεν υπάÏχουν αÏχεία Ï€Ïος εμφάνιση σε αυτό το μέσο!" + +msgid "No event info found, recording indefinitely." +msgstr "" +"Δεν βÏέθηκαν πληÏοφοÏίες Ï€ÏογÏάμματος,\n" +"η εγγÏαφή δεν θα σταματήσει." + +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "Δεν είναι ακόμα δυνατή η γÏήγοÏη Ï€Ïοώθηση... χÏησιμοποιήστε τα αÏιθμητικά πλήκτÏα για μετακίνηση εμπÏός/πίσω!" + +msgid "No free index available" +msgstr "Μη διαθέσιμη ελεÏθεÏη θέση" + +msgid "No free tuner!" +msgstr "Δεν υπάÏχει ελεÏθεÏο tuner!" + +msgid "No network connection available." +msgstr "Δεν υπάÏχει διαθέσιμη σÏνδεση δικτÏου." + +msgid "No networks found" +msgstr "Δεν βÏέθηκαν δίκτυα" + +msgid "No new plugins found" +msgstr "Δεν βÏέθηκαν νέα Ï€Ïόσθετα" + +msgid "No positioner capable frontend found." +msgstr "Δεν βÏέθηκε tuner που να υποστηÏίζει μοτέÏ." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "Δεν έχουν Ïυθμιστεί δοÏυφόÏοι. Ελέγξτε τις Ïυθμίσεις του tuner." + +msgid "No service" +msgstr "Καμία υπηÏεσία" + +msgid "No services/providers selected" +msgstr "Δεν έχουν επιλεγεί υπηÏεσίες/πάÏοχοι" + +msgid "No standby" +msgstr "ΧωÏίς αναμονή" + +msgid "No suitable sat tuner found!" +msgstr "Δεν βÏέθηκε κατάλληλο tuner!" + +msgid "No tags are set on these movies." +msgstr "Δεν έχουν οÏιστεί ετικέτες σε αυτές τις ταινίες." + +msgid "No timeout" +msgstr "ΧωÏίς ÏŒÏιο χÏόνου" + +msgid "No to all" +msgstr "Όχι σε όλα" + +msgid "No transparency" +msgstr "ΧωÏίς διαφάνεια" + +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "Δεν υπάÏχει ενεÏγοποιημένο tuner για χÏήση με Î¼Î¿Ï„Î­Ï diseqc!" + +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Δεν υπάÏχει ενεÏγοποιημένο tuner!\n" +"Ρυθμίστε το tuner Ï€Ïιν την ανίχνευση υπηÏεσιών." + +msgid "No updates available" +msgstr "Δεν υπάÏχουν διαθέσιμες ενημεÏώσεις." + +msgid "No updates available. Please try again later." +msgstr "Δεν υπάÏχουν ενημεÏώσεις διαθέσιμες. ΠαÏακαλώ δοκιμάστε αÏγότεÏα." + +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Δεν βÏέθηκε έγκυÏο PIN υπηÏεσίας!\n" +"Θέλετε να αλλάξετε το PIN υπηÏεσίας Ï„ÏŽÏα;\n" +"Εάν πείτε 'ΟΧΙ' εδώ η Ï€Ïοστασία της υπηÏεσίας θα μείνει απενεÏγοποιημένη!" + +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Δεν βÏέθηκε έγκυÏο PIN!\n" +"Θέλετε να οÏίσετε Ï„ÏŽÏα ένα PIN;\n" +"Σε πεÏίπτωση που πείτε 'ΟΧΙ' η Ï€Ïοστασία των Ïυθμίσεων θα μείνει απεÏγοποιήμενη!" + +msgid "No wireless networks found! Searching..." +msgstr "Δεν βÏέθηκαν ασÏÏματα δίκτυα! Αναζήτηση..." + +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"Δεν βÏέθηκε ενεÏγή κάÏτα δικτÏου.\n" +"ΠαÏακαλώ επιβεβαιώστε ότι έχει συνδεθεί καλώδιο δικτÏου και έχει Ïυθμιστεί σωστά το δίκτυο." + +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"Δεν βÏέθηκε ενεÏγή συσκευή ασÏÏματου δικτÏου.\n" +"ΠαÏακαλώ επιβεβαιώστε ότι έχει συνδεθεί συμβατή συσκευή WLAN και και έχει Ïυθμιστεί σωστά το δίκτυο." + +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"Δεν βÏέθηκε ενεÏγή διεπαφή ασÏÏματου δικτÏου.\n" +"ΠαÏακαλώ επιβεβαιώστε ότι έχει συνδεθεί συμβατή συσκευή WLAN ή ενεÏγοποιήστε τη διεπαφή δικτÏου." + +msgid "No, but restart from begin" +msgstr "Όχι, επανεκκίνηση από την αÏχή." + +msgid "No, do nothing." +msgstr "Όχι, να μη γίνει τίποτα." + +msgid "No, just start my receiver" +msgstr "Όχι, απλά εκκίνηση του δέκτη" + +msgid "No, never" +msgstr "Όχι, ποτέ" + +msgid "None" +msgstr "Κανένα" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Μη γÏαμμικό" + +msgid "Normal mode" +msgstr "Κανονική λειτουÏγία" + +msgid "North" +msgstr "Î’ÏŒÏεια" + +msgid "Norwegian" +msgstr "ÎοÏβηγικά" + +msgid "Not associated" +msgstr "ΧωÏίς συσχέτιση" + +msgid "Not configured" +msgstr "Μη Ïυθμισμένο" + +#, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Μη επαÏκής χώÏος δίσκου. ΠαÏακαλώ ελευθεÏώστε χώÏο και Ï€Ïοσπαθήστε ξανά. (%d MB απαιτοÏνται, %d MB διαθέσιμα)" + +msgid "Nothing connected" +msgstr "Δεν έχει συνδεθεί τίποτα" + +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Τίποτα Ï€Ïος ανίχνευση!\n" +"ΠαÏακαλώ Ïυθμίστε το tuner Ï€Ïώτα." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "ΤώÏα" + +msgid "Now playing" +msgstr "ΑναπαÏαγωγή Ï„ÏŽÏα" + +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "ΤώÏα, χÏησιμοποιήστε τις Ïυθμίσεις αντίθεσης για να μεγιστοποιήσετε τη φωτεινότητα του φόντου, αλλά βεβαιωθείτε ότι μποÏείτε να διακÏίνετε τη διαφοÏά ανάμεσα στις δÏο φωτεινότεÏες σκιές. Εάν το κάνατε, πιέστε ΟΚ." + +msgid "OK" +msgstr "OK" + +msgid "OK, guide me through the upgrade process" +msgstr "ΟΚ, οδήγησε με στην διαδικασία αναβάθμισης" + +msgid "ONID" +msgstr "ONID" + +msgid "OSD name request" +msgstr "Απαίτηση ονόματος OSD" + +msgid "OSD settings" +msgstr "Ρυθμίσεις OSD" + +msgid "OSD transparency" +msgstr "Διαφάνεια OSD" + +msgid "Off" +msgstr "Κλειστό" + +msgid "Offline decode delay (ms)" +msgstr "ΚαθυστέÏηση αποκωδικοποίησης εκτός σÏνδεσης (ms)" + +msgid "Ok" +msgstr "Ok" + +msgid "On" +msgstr "Ανοικτό" + +msgid "On end of movie" +msgstr "Στο τέλος της ταινίας" + +msgid "On end of movie (as menu)" +msgstr "Στο τέλος της ταινίας (ως μενοÏ)" + +msgid "One" +msgstr "Ένα" + +msgid "Only extensions." +msgstr "Μόνο επεκτάσεις." + +msgid "Only free scan" +msgstr "Μόνο τα ελεÏθεÏα" + +msgid "Open service list" +msgstr "Άνοιγμα λίστας υπηÏεσιών" + +msgid "Open the movie list" +msgstr "ΕπιστÏοφή στη λίστα ταινίων" + +msgid "Orbital position" +msgstr "ΤÏοχιακή θέση" + +msgid "Original" +msgstr "ΠÏωτότυπο" + +msgid "Other" +msgstr "Άλλο" + +msgid "Output" +msgstr "Έξοδος" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "Îα αντικατασταθοÏν τα αÏχεία Ïυθμίσεων κατά την αναβάθμιση λογισμικοÏ;" + +msgid "Overwrite configuration files?" +msgstr "Αντικατάσταση αÏχείων Ïυθμίσεων;" + +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "PCR PID" + +msgid "PIDs" +msgstr "PIDs" + +msgid "PIN code needed" +msgstr "Απαιτείται κωδικός PIN" + +msgid "PLP ID" +msgstr "PLP ID" + +msgid "PMT PID" +msgstr "PMT PID" + +msgid "Package list update" +msgstr "ΕνημέÏωση λίστας πακέτων" + +msgid "Packet management" +msgstr "ΔιαχείÏιση πακέτων" + +msgid "Packet manager" +msgstr "ΔιαχείÏιση πακέτων" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +msgid "Pan&scan" +msgstr "ΠανοÏαμική οπτική & σάÏωση" + +msgid "Parent directory" +msgstr "Γονικός φάκελος" + +msgid "Parental control" +msgstr "Γονικός έλεγχος" + +msgid "Parental control services editor" +msgstr "ΕπεξεÏγασία υπηÏεσιών Î³Î¿Î½Î¹ÎºÎ¿Ï Î­Î»ÎµÎ³Ï‡Î¿Ï…" + +msgid "Parental control setup" +msgstr "ΠαÏαμετÏοποίηση Î³Î¿Î½Î¹ÎºÎ¿Ï ÎµÎ»Î­Î³Ï‡Î¿Ï…" + +msgid "Parental control type" +msgstr "Είδος Î³Î¿Î½Î¹ÎºÎ¿Ï ÎµÎ»Î­Î³Ï‡Î¿Ï…" + +msgid "Password" +msgstr "Κωδικός" + +msgid "Pause" +msgstr "ΠαÏση" + +msgid "Pause movie at end" +msgstr "ΠαÏση στο τέλος της ταινίας" + +msgid "Pause playback" +msgstr "ΠαÏση αναπαÏαγωγής" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "Ποσοστό αÏιστεÏά" + +msgid "Percentage right" +msgstr "Ποσοστό δεξιά" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "ΟÏιστική διαγÏαφή όλων των εγγÏαφών από τον κάδο;" + +msgid "Permanently remove all deleted items" +msgstr "ΟÏιστική διαγÏαφή όλων των διεγÏαμμένων στοιχείων" + +msgid "Persian" +msgstr "ΠεÏσικά" + +msgid "Phone number" +msgstr "Τηλεφωνικός αÏιθμός" + +msgid "PiP setup" +msgstr "ΡÏθμιση PiP" + +msgid "Picon" +msgstr "Εικονίδιο" + +msgid "Picon and service name" +msgstr "Εικονίδιο και όνομα υπηÏεσίας" + +msgid "Picture player" +msgstr "ΑναπαÏαγωγή εικόνων" + +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "ΜπάÏες εκατέÏωθεν" + +msgid "Pilot" +msgstr "Πιλότος" + +msgid "Play" +msgstr "ΑναπαÏαγωγή" + +msgid "Play DVD" +msgstr "ΑναπαÏαγωγή DVD" + +msgid "Play audio in background" +msgstr "ΑναπαÏαγωγή ήχου στο παÏασκήνιο" + +msgid "Play audio-CD..." +msgstr "ΑναπαÏαγωγή CD ήχου..." + +msgid "Play back media files" +msgstr "ΑναπαÏαγωγή αÏχείων πολυμέσων" + +msgid "Play entry" +msgstr "ΑναπαÏαγωγή στοιχείου" + +msgid "Play from next mark or playlist entry" +msgstr "ΑναπαÏαγωγή από επόμενο σημείο ή λίστα" + +msgid "Play from previous mark or playlist entry" +msgstr "ΑναπαÏαγωγή από Ï€ÏοηγοÏμενο σημείο ή λίστα" + +msgid "Play music..." +msgstr "ΑναπαÏαγωγή μουσικής..." + +msgid "Play next" +msgstr "ΑναπαÏαγωγή επόμενου" + +msgid "Play next (return to movie list)" +msgstr "ΑναπαÏαγωγή επόμενου (επιστÏοφή στην λίστα)" + +msgid "Play next (return to previous service)" +msgstr "ΑναπαÏαγωγή επόμενου (επιστÏοφή στην Ï€ÏοηγοÏμενη υπηÏεσία)" + +msgid "Play previous" +msgstr "ΑπαναÏαγωγή Ï€ÏογηγοÏμενου" + +msgid "Play recorded movies..." +msgstr "ΑναπαÏαγωγή εγγÏαφών..." + +msgid "Please add titles to the compilation." +msgstr "ΠαÏακαλώ Ï€Ïοσθέστε τίτλους στη συλλογή." + +msgid "Please change recording endtime" +msgstr "ΠαÏακαλώ αλλάξτε την ÏŽÏα τεÏματισμοÏ" + +msgid "Please check your network settings!" +msgstr "ΠαÏακαλώ ελέγξτε τις Ïυθμίσεις δικτÏου!" + +msgid "Please choose an extension..." +msgstr "ΠαÏακαλώ επιλέξτε μία επέκταση..." + +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"ΠαÏακαλώ Ïυθμίστε ή επιβεβαιώστε τους Nameservers συμπλÏώνοντας τις απαιτοÏμενες τιμές.\n" +"Όταν είστε έτοιμοι, πιέστε ΟΚ για συνέχεια." + +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"ΠαÏακαλώ Ïυθμίστε τη σÏνδεση στο διαδίκτυο συμπληÏώνοντας τις απαιτοÏμενες τιμές.\n" +"Όταν είστε έτοιμοι, πιέστε ΟΚ για συνέχεια." + +msgid "Please connect your receiver to the internet" +msgstr "ΠαÏακαλώ συνδέστε τον δέκτη σας στο διαδÏκτιο" + +msgid "Please do not change any values unless you know what you are doing!" +msgstr "ΠαÏακαλώ μην αλλάζετε τιμές εάν δεν γνωÏίζετε τι κάνετε!" + +msgid "Please enter a name for the new bouquet" +msgstr "Επέλεξε ένα όνομα για το νέο μπουκέτο" + +msgid "Please enter a name for the new marker" +msgstr "Επιλέξτε ένα όνομα για το νέο σημειωτή" + +msgid "Please enter a new filename" +msgstr "ΠαÏακαλώ εισάγετε νέο όνομα αÏχείου" + +msgid "Please enter filename (empty = use current date)" +msgstr "ΠαÏακαλώ εισάγετε όνομα αÏχείου (κενό = χÏήση Ï„Ïέχουσας ημεÏομηνίας)" + +msgid "Please enter name of the new directory" +msgstr "ΠαÏακαλώ εισάγετε όνομα νέου φάκελου" + +msgid "Please enter new name:" +msgstr "ΠαÏακαλώ εισάγετε νέο όνομα:" + +msgid "Please enter the correct pin code" +msgstr "Εισάγετε το σωστό PIN" + +msgid "Please enter the old PIN code" +msgstr "Εισάγετε το παλιό PIN" + +msgid "Please follow the instructions on the TV" +msgstr "ΠαÏακαλώ ακολουθήστε τις οδηγίες στην οθόνη" + +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "Δεν υπάÏχει Ï€Ïόσβαση στο μέσο που επιλέχθηκε Ï€Ïοηγουμένως. Θα χÏησιμοποιηθεί ο αÏχικός φάκελος." + +msgid "Please press OK to continue." +msgstr "ΠαÏακαλώ πιέστε ΟΚ για συνέχεια." + +msgid "Please select a default EPG type..." +msgstr "ΠαÏακαλώ επιλέξτε ένα Ï€Ïοεπιλεγμένο Ï„Ïπο EPG..." + +msgid "Please select a playlist to delete..." +msgstr "ΠαÏακαλώ επιλέξτε λίστα αναπαÏαγωγής για διαγÏαφή..." + +msgid "Please select a playlist..." +msgstr "ΠαÏακαλώ επιλέξτε λίστα αναπαÏαγωγής..." + +msgid "Please select a sub service..." +msgstr "Επιλέξτε μια υπό-υπηÏεσία" + +msgid "Please select a subservice to record..." +msgstr "Επέλεξε μια υπό-υπηÏεσία για εγγÏαφή..." + +msgid "Please select a subservice..." +msgstr "Επιλέξτε μια υπό-υπηÏεσία" + +msgid "Please select an NFI file and press green key to flash!" +msgstr "ΠαÏακαλώ επιλέξτε αÏχείο NFI και πιέστε το Ï€Ïάσινο κουμπί για εγκατάσταση!" + +msgid "Please select medium to be scanned" +msgstr "ΠαÏακαλώ επιλέξτε μέσο για ανίχνευση" + +msgid "Please select medium to use as backup location" +msgstr "ΠαÏακαλώ επιλέξτε μέσο που θα χÏησιμοποιηθεί ως Ï€ÏοοÏισμός των αντιγÏάφων ασφαλείας" + +msgid "Please select tag to filter..." +msgstr "ΠαÏακαλώ επιλέξτε ετικέτα Ï€Ïος φιλτÏάÏισμα..." + +msgid "Please select the movie path..." +msgstr "ΠαÏακαλώ επιλέξτε διαδÏομή ταινιών..." + +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"ΠαÏακαλώ επιλέξτε τη διεπαφή δικτÏου που θέλετε να χÏησιμοποιήσετε για το διαδίκτυο.\n" +"\n" +"Πιέστε ΟΚ για συνέχεια." + +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"ΠαÏακαλώ επιλέξτε το ασÏÏματο δίκτυο στο οποίο θα συνδεθείτε.\n" +"\n" +"Πιέστε ΟΚ για συνέχεια." + +msgid "Please set up tuner A" +msgstr "ΠαÏακαλώ Ïυθμίστε το tuner A" + +msgid "Please set up tuner B" +msgstr "ΠαÏακαλώ Ïυθμίστε το tuner B" + +msgid "Please set up tuner C" +msgstr "ΠαÏακαλώ Ïυθμίστε το tuner C" + +msgid "Please set up tuner D" +msgstr "ΠαÏακαλώ Ïυθμίστε το tuner D" + +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"ΧÏησιμοποίηστε τα βελάκια για μετακίνηση του PiP παÏαθÏÏου.\n" +"Για αλλαγή μεγέθους πιέστε τα πλήκτÏα Bouquet +/-.\n" +"Πιέστε ΟΚ για επιστÏοφή σε κατάσταση TV ή EXIT για ακÏÏωση της μετακίνησης." + +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "ΧÏησιμοποιήστε τα πλήκτÏα ΠΑÎΩ και ΚΑΤΩ για επιλογή γλώσσας. Μετά πιέστε το ΟΚ." + +msgid "Please wait" +msgstr "ΠαÏακαλώ πεÏιμένετε" + +msgid "Please wait (downloading channel list)" +msgstr "ΠαÏακαλώ πεÏιμένετε (λήψη λίστας καναλιών)" + +msgid "Please wait (downloading softcam)" +msgstr "ΠαÏακαλώ πεÏιμένετε (λήψη softcam)" + +msgid "Please wait (updating packages)" +msgstr "ΠαÏακαλώ πεÏιμένετε (αναβάθμιση πακέτων)" + +msgid "Please wait for activation of your network configuration..." +msgstr "ΠαÏακαλώ πεÏιμένετε, ενεÏγοποίηση ÏÏθμισης δικτÏου..." + +msgid "Please wait while scanning is in progress..." +msgstr "ΠαÏακαλώ πεÏιμένετε καθώς εκτελείται η ανίχνευση..." + +msgid "Please wait while we configure your network..." +msgstr "ΠαÏακαλώ πεÏιμένετε καθώς το δίκτυο Ïυθμίζεται..." + +msgid "Please wait while we prepare your network interfaces..." +msgstr "ΠαÏακαλώ πεÏιμένετε, Ï€Ïοετοιμασία διεπαφών δικτÏου..." + +msgid "Please wait while we test your network..." +msgstr "ΠαÏακαλώ πεÏιμένετε, έλεγχος δικτÏου..." + +msgid "Please wait while your network is restarting..." +msgstr "ΠαÏακαλώ πεÏιμένετε, επανεκκίνηση δικτÏου..." + +msgid "Please wait..." +msgstr "ΠαÏακαλώ πεÏιμένετε..." + +msgid "Please wait... Loading list..." +msgstr "ΠαÏακαλώ πεÏιμένετε … ΦοÏτώνεται η λίστα..." + +msgid "Plugin browser" +msgstr "Πλοηγός Ï€Ïοσθέτων" + +msgid "Plugin manager activity information" +msgstr "ΠληÏοφοÏίες ενεÏγειών διαχειÏιστή Ï€Ïοσθέτων" + +msgid "Plugin manager help" +msgstr "Βοήθεια διαχειÏιστή Ï€Ïοσθέτων" + +msgid "Plugins" +msgstr "ΠÏόσθετα" + +msgid "Polarisation" +msgstr "Πόλωση" + +msgid "Polarisation:" +msgstr "Πόλωση:" + +msgid "Polarization" +msgstr "Πόλωση" + +msgid "Polish" +msgstr "Πολωνικά" + +msgid "Port A" +msgstr "ΠόÏτα A" + +msgid "Port B" +msgstr "ΠόÏτα B" + +msgid "Port C" +msgstr "ΠόÏτα C" + +msgid "Port D" +msgstr "ΠόÏτα D" + +msgid "Portuguese" +msgstr "ΠοÏτογαλικά" + +msgid "Position of completed timers in timerlist" +msgstr "Θέση ολοκληÏωμένων χÏονοδιακοπτών στη λίστα" + +msgid "Position stored at index" +msgstr "Αποθήκευση θέσης στο" + +msgid "Positioner" +msgstr "ΜοτέÏ" + +msgid "Positioner (selecting satellites)" +msgstr "ÎœÎ¿Ï„Î­Ï (επιλογή δοÏυφόÏων)" + +msgid "Positioner Setup" +msgstr "ΡÏθμιση ΜοτέÏ" + +msgid "Positioner setup" +msgstr "ΡÏθμιση μοτέÏ" + +msgid "Power threshold in mA" +msgstr "ÎŒÏιο ÏεÏματος σε mA" + +msgid "Predefined transponder" +msgstr "ΠÏοÏυθμισμένος αναμεταδότης" + +msgid "Prefer AC3 track" +msgstr "Îα Ï€Ïοτιμάται ο ήχος AC3" + +msgid "Prefer AC3+ track" +msgstr "Îα Ï€Ïοτιμάται ο ήχος AC3+" + +msgid "Prefer audio track stored by service" +msgstr "Îα Ï€Ïοτιμάται ο ήχος που έχει αποθηκευτεί από την υπηÏεσία" + +msgid "Prefer graphical DVB subtitles" +msgstr "Îα Ï€Ïοτιμώνται γÏαφικοί υπότιλοι DVB" + +msgid "Prefer subtitles for hearing impaired" +msgstr "Îα Ï€Ïοτιμώνται υπότιτλοι για άτομα με Ï€Ïοβλήματα ακοής" + +msgid "Prefer subtitles stored by service" +msgstr "Îα Ï€Ïοτιμώνται υπότιτλοι αποθηκευμένοι από την υπηÏεσία" + +msgid "Preferred tuner" +msgstr "ΠÏοτιμώμενο tuner" + +msgid "Preferred tuner for recordings" +msgstr "ΠÏοτιμώμενο tuner για εγγÏαφές" + +msgid "Prepare another USB stick for image flashing" +msgstr "ΠÏοετοιμάστε άλλο usb στικ για εγκατάσταση λογισμικοÏ." + +msgid "Preparing... Please wait" +msgstr "ΠαÏακαλώ πεÏιμένετε, Ï€Ïοετοιμασία…" + +msgid "Press '0' to toggle PiP mode" +msgstr "Πιέστε '0' για εναλλαγή λειτουÏγίας PiP" + +msgid "Press INFO on your remote control for additional information." +msgstr "Πιέστε INFO στο τηλεχειÏιστήÏιο για Ï€Ïόσθετες πληÏοφοÏίες." + +msgid "Press MENU on your remote control for additional options." +msgstr "Πιέστε MENU στο τηλεχειÏιστήÏιο για Ï€Ïόσθετες επιλογές." + +msgid "Press OK on your remote control to continue." +msgstr "Πιέστε ΟΚ για συνέχεια." + +msgid "Press OK to activate the selected skin." +msgstr "Πιέστε ΟΚ για ενεÏγοποίηση του επιλεγμένου θέματος." + +msgid "Press OK to activate the settings." +msgstr "Πιέστε ΟΚ για να ενεÏγοποιηθοÏν οι Ïυθμίσεις." + +msgid "Press OK to edit the settings." +msgstr "Πιέστε ΟΚ για επεξεÏγασία των Ïυθμίσεων." + +#, python-format +msgid "Press OK to get further details for %s" +msgstr "Πιέστε ΟΚ για λεπτομέÏειες σχετικά με το %s" + +msgid "Press OK to scan" +msgstr "Πιέστε OK για ανίχνευση" + +msgid "Press OK to select a provider." +msgstr "Πιέστε ΟΚ για επιλογή παÏόχου" + +msgid "Press OK to select satellites" +msgstr "Πιέστε ΟΚ για επιλογή δοÏυφόÏων" + +msgid "Press OK to select/deselect a CAId." +msgstr "Πιέστε ΟΚ για επιλογή/αποεπιλογή CAId." + +msgid "Press OK to start the scan" +msgstr "Πιέστε OK για να ξεκινήσει η ανίχνευση" + +msgid "Press OK to toggle the selection" +msgstr "Πιέστε ΟΚ για εναλλαγή της επιλογής" + +msgid "Press OK to toggle the selection." +msgstr "Πιέστε ΟΚ για εναλλαγή της επιλογής." + +msgid "Press yellow to set this interface as default interface." +msgstr "Πιέστε το ΚΙΤΡΙÎΟ για να τεθεί ως Ï€Ïοεπιλεγμένη διεπαφή." + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "ΠÏοηγ." + +msgid "Preview" +msgstr "ΠÏοεπισκόπηση" + +msgid "Preview menu" +msgstr "ÎœÎµÎ½Î¿Ï Ï€Ïοεπισκόπησης" + +msgid "Preview selected channel" +msgstr "ΠÏοεπισκόπηση επιλεγμένου καναλιοÏ" + +msgid "Primary DNS" +msgstr "ΠÏωτεÏον DNS" + +msgid "Priority" +msgstr "ΠÏοτεÏαιότητα" + +msgid "Process" +msgstr "ΕπεξεÏγασία" + +msgid "Progress" +msgstr "ΠÏόοδος" + +msgid "Progress bar left" +msgstr "ΜπάÏα Ï€Ïοόδου αÏιστεÏά" + +msgid "Progress bar right" +msgstr "ΜπάÏα Ï€Ïοόδου δεξιά" + +msgid "Properties of current title" +msgstr "Ιδιότητες Ï„Ïέχοντα τίτλου" + +msgid "Protect services" +msgstr "ΠÏοστασία υπηÏεσιών" + +msgid "Protect setup" +msgstr "ΠÏοστασία Ïυθμίσεων" + +msgid "Provider" +msgstr "ΠάÏοχος" + +msgid "Provider to scan" +msgstr "ΠάÏοχος Ï€Ïος ανίχνευση" + +msgid "Providers" +msgstr "ΠάÏοχοι" + +msgid "Put TV in standby" +msgstr "Θέστε την TV σε αναμονή" + +msgid "Put receiver in standby" +msgstr "Θέστε το δέκτη σε αναμονή" + +msgid "Python frontend for /tmp/mmi.socket" +msgstr "Python του tuner για το /tmp/mmi.socket" + +msgid "Quick" +msgstr "ΓÏήγοÏο" + +msgid "Quick zap" +msgstr "ΓÏήγοÏο ζάπινγκ" + +msgid "RF output" +msgstr "Έξοδος RF" + +msgid "RGB" +msgstr "RGB" + +msgid "Radio" +msgstr "Ραδιόφωνο" + +msgid "Ram disk" +msgstr "Δίσκος RAM" + +msgid "Random" +msgstr "Τυχαίο" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "Βαθμολογία καθοÏισμένη από τον πάÏοχο - %d" + +msgid "Rating undefined" +msgstr "Μη καθοÏισμένη βαθμολογία" + +msgid "Really close without saving settings?" +msgstr "Έξοδος χωÏίς αποθήκευση Ïυθμίσεων;" + +msgid "Really delete done timers?" +msgstr "ΔιαγÏαφή όλων των ολοκληÏωμένων χÏονοδιακοπτών;" + +msgid "Really exit the subservices quickzap?" +msgstr "Έξοδος από γÏήγοÏο ζάπινγκ των υπό-υπηÏεσιών?" + +msgid "Really reboot now?" +msgstr "Επανεκκίνηση Ï„ÏŽÏα;" + +msgid "Really restart now?" +msgstr "Επανεκκίνηση Ï„ÏŽÏα;" + +msgid "Really shutdown now?" +msgstr "ΤεÏματισμός Ï„ÏŽÏα;" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "Îα γίνει σίγουÏα ενημέÏωση του frontprocessor και επανεκκίνηση;" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "Îα γίνει σίγουÏα ενημέÏωση του δέκτη και επανεκκίνηση;" + +msgid "Reboot" +msgstr "Επανεκκίνηση" + +msgid "Rec" +msgstr "ΕγγÏ." + +msgid "Reception settings" +msgstr "Ρυθμίσεις λήψης" + +msgid "Record" +msgstr "ΕγγÏαφή" + +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "ΠεÏιοÏισμένος χÏόνος εγγÏαφής λόγω διένεξης χÏονοδιακόπτη %s" + +msgid "Recorded files..." +msgstr "ΕγγÏαφές..." + +msgid "Recording" +msgstr "ΕγγÏαφή..." + +msgid "Recording in progress" +msgstr "ΕγγÏαφή σε εξέλιξη" + +msgid "Recording paths" +msgstr "ΔιαδÏομές εγγÏαφών" + +msgid "Recording type" +msgstr "ΤÏπος εγγÏαφής" + +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "ΕκτελοÏνται εγγÏαφές ή θα ξεκινήσουν σε λίγο!" + +msgid "Recordings" +msgstr "ΕγγÏαφές" + +msgid "Recordings always have priority" +msgstr "Οι εγγÏαφές έχουν πάντα Ï€ÏοτεÏαιότητα" + +msgid "Red button..." +msgstr "Κόκκινο κουμπί..." + +msgid "Reenter new PIN" +msgstr "Εισαγωγή PIN ξανά" + +msgid "Refresh rate" +msgstr "Συχνότητα ανανέωσης" + +msgid "Refresh rate selection." +msgstr "Επιλογή συχνότητας ανανέωσης." + +msgid "Regard deep standby as standby" +msgstr "Îα θεωÏείται ο τεÏματισμός ως αναμονή" + +msgid "Relative" +msgstr "Σχετικό" + +msgid "Reload" +msgstr "Ανανέωση" + +msgid "Reload black-/white lists" +msgstr "ΕπαναφόÏτωση μαÏÏων/λευκών λιστών" + +msgid "Reloading bouquets and services..." +msgstr "ΕπαναφόÏτωση μπουκέτων και υπηÏεσιών..." + +msgid "Remember last service in PiP" +msgstr "ΥπενθÏμιση τελευταίας υπηÏεσίας στο PiP" + +msgid "Remember service PIN" +msgstr "Αποθήκευση PIN υπηÏεσίας" + +msgid "Remember these settings for each folder" +msgstr "Αποθήκευση αυτών των Ïυθμίσεων για κάθε φάκελο" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "ΥπενθÏμιση, επιλέξατε να αποθηκεÏεται το αÏχείο χÏονομετατόπισης." + +msgid "Remote control type" +msgstr "ΤÏπος τηλεχειÏιστηÏίου" + +msgid "Removal has completed." +msgstr "Η αφαίÏεση ολοκληÏώθηκε." + +msgid "Remove" +msgstr "ΔιαγÏαφή" + +msgid "Remove a mark" +msgstr "ΔιαγÏαφή σημειωτή" + +msgid "Remove a nameserver entry" +msgstr "ΔιαγÏαφή nameserver" + +msgid "Remove bookmark" +msgstr "ΔιαγÏαφή σελιδοδείκτη" + +msgid "Remove completed timers after (days)" +msgstr "ΔιαγÏαφή ολοκληÏωμένων χÏονοδιακοπτών μετά από (μέÏες)" + +msgid "Remove currently selected title" +msgstr "ΔιαγÏαφή επιλεγμένου τίτλου" + +msgid "Remove items from trash can after (days)" +msgstr "ΔιαγÏαφή αντικειμένων από το καλάθι αχÏήστων σε (μέÏες)" + +msgid "Remove plugins" +msgstr "Απεγκατάσταση Ï€Ïοσθέτων" + +msgid "Remove title" +msgstr "ΔιαγÏαφή τίτλου" + +msgid "Removing" +msgstr "ΔιαγÏαφή" + +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Η διαγÏαφή του φακέλου %s απέτυχε. (Ίσως δεν είναι κενός)." + +msgid "Removing partition table" +msgstr "ΑφαίÏεση πίνακα διαμεÏισμάτων" + +msgid "Rename" +msgstr "Μετονομασία" + +msgid "Repeat" +msgstr "Επανάληψη" + +msgid "Repeat type" +msgstr "ΤÏπος επανάληψης" + +msgid "Repeating event currently recording... What do you want to do?" +msgstr "Επανάληψη Ï€ÏογÏάμματος που εγγÏάφεται... Τι να συμβεί;" + +msgid "Repeats" +msgstr "Επαναλήψεις" + +msgid "Require authentication for http streams" +msgstr "Απαίτηση πιστοποίησης για Ïοές http" + +msgid "Required medium type:" +msgstr "ΑπαιτοÏμενος Ï„Ïπος μέσου:" + +msgid "Rereading partition table" +msgstr "Επανάγνωση πίνακα κατατμήσεων" + +msgid "Reserved" +msgstr "ΡεζεÏβέ" + +msgid "Reset" +msgstr "Μηδενισμός" + +msgid "Reset and renumerate title names" +msgstr "Μηδενισμός και επαναÏίθμηση των τίτλων" + +msgid "Reset playback position" +msgstr "ΕπαναφοÏά σημείου αναπαÏαγωγής" + +msgid "Reset video enhancement settings to system defaults?" +msgstr "ΕπαναφοÏά Ïυθμίσεων βελτίωσης εικόνας στις Ï€ÏοÏυθμισμένες τιμές;" + +msgid "Reset video enhancement settings to your last configuration?" +msgstr "ΕπαναφοÏά Ïυθμίσεων βελτίωσης εικόνας στις τελευταίες Ïυθμίσεις σας;" + +msgid "Resolution" +msgstr "Ανάλυση" + +msgid "Restart" +msgstr "Επανεκκίνηση" + +msgid "Restart GUI now?" +msgstr "Επανεκκίνηση του enigma2 Ï„ÏŽÏα;" + +msgid "Restart enigma" +msgstr "Επανεκκίνηση enigma" + +msgid "Restart network" +msgstr "Eπανεκκίνηση δικτÏου" + +msgid "Restart test" +msgstr "Eπανεκκίνηση ελέγχου" + +msgid "Restart your network connection and interfaces.\n" +msgstr "Επανεκκίνηση σÏνδεσης δικτÏου και διεπαφών.\n" + +msgid "Restore" +msgstr "ΕπαναφοÏά" + +msgid "Restore backups" +msgstr "ΕπαναφοÏά αντιγÏάφων ασφαλείας" + +msgid "Restore is running..." +msgstr "ΕπαναφοÏά σε εκτέλεση..." + +msgid "Restore system settings" +msgstr "ΕπαναφοÏά Ïυθμίσεων συστήματος" + +msgid "Restoring..." +msgstr "ΕπαναφοÏά..." + +msgid "Resume from last position" +msgstr "Συνέχιση απο τελευταίο σημείο" + +#, python-format +msgid "Resume position at %s" +msgstr "Συνέχιση από το %s" + +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Επανασυνέχιση αναπαÏαγωγής" + +msgid "Return to movie list" +msgstr "ΕπιστÏοφή στη λίστα ταινίων" + +msgid "Return to previous service" +msgstr "ΕπιστÏοφή στην Ï€ÏοηγοÏμενη υπηÏεσία" + +msgid "Reverse bouquet buttons" +msgstr "Αντιμετάθεση πλήκτÏων μπουκέτου" + +msgid "Reverse list" +msgstr "ΑντιστÏοφή λίστας" + +msgid "Rewind speeds" +msgstr "ΤαχÏτητα κίνησης πίσω " + +msgid "Rewrap teletext subtitles" +msgstr "Αναδίπλωση υποτίτλων τηλεκειμένου" + +msgid "Right" +msgstr "Δεξιά" + +msgid "Right from servicename" +msgstr "Δεξιά του ονόματος υπηÏεσίας" + +msgid "Roll-off" +msgstr "Roll-off" + +msgid "Romanian" +msgstr "Ρουμανικά" + +msgid "Root directory" +msgstr "ΑÏχικός φάκελος" + +msgid "Rotor step position:" +msgstr "Θέση βήματος του μοτέÏ:" + +msgid "Rotor turning speed" +msgstr "ΤαχÏτητα πεÏιστÏοφής του μοτέÏ" + +msgid "Round start time on" +msgstr "ΣτÏογγυλοποίηση της ÏŽÏας έναÏξης σε" + +msgid "Russian" +msgstr "Ρωσικά" + +msgid "S-Video" +msgstr "S-Video" + +msgid "SID" +msgstr "SID" + +msgid "SINGLE LAYER DVD" +msgstr "DVD ΜΟÎΗΣ ΣΤΡΩΣΗΣ" + +msgid "SNR" +msgstr "SNR" + +msgid "SNR:" +msgstr "SNR:" + +msgid "SSID:" +msgstr "SSID:" + +msgid "Same resolution as skin" +msgstr "Ίδια ανάλυση με το θέμα" + +msgid "Sat" +msgstr "Σαβ" + +msgid "Satellite" +msgstr "ΔοÏυφόÏος" + +msgid "Satellite dish setup" +msgstr "ΡÏθμιση κατόπτÏου" + +msgid "Satellite equipment" +msgstr "ΔοÏυφοÏικός εξοπλισμός" + +msgid "Satellite equipment setup" +msgstr "ΡÏθμιση δοÏυφοÏÎ¹ÎºÎ¿Ï ÎµÎ¾Î¿Ï€Î»Î¹ÏƒÎ¼Î¿Ï" + +msgid "Satellite longitude:" +msgstr "ΓεωγÏαφικό μήκος δοÏυφόÏου:" + +msgid "Satellites" +msgstr "ΔοÏυφόÏοι" + +msgid "Satfinder" +msgstr "Έλεγχος σήματος (Satfinder)" + +msgid "Sats" +msgstr "ΔοÏυφόÏοι" + +msgid "Saturation" +msgstr "ΚοÏεσμός" + +msgid "Saturday" +msgstr "Σάββατο" + +msgid "Save" +msgstr "Αποθήκευση" + +msgid "Save playlist" +msgstr "Αποθήκευση λίστας αναπαÏαγωγής" + +msgid "Save timeshift file" +msgstr "Αποθήκευση αÏχείου χÏονομετατόπισης" + +msgid "Save timeshift file in movie directory" +msgstr "Αποθήκευση αÏχείου χÏονομετατόπισης στο φάκελο ταινιών" + +msgid "Scaler sharpness" +msgstr "ΟξÏτητα κλιμάκωσης" + +msgid "Scaling mode" +msgstr "ΤÏπος κλιμάκωσης" + +msgid "Scan" +msgstr "Ανίχνευση" + +msgid "Scan " +msgstr "Ανίχνευση " + +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, python-format +msgid "Scan %s" +msgstr "Ανίχνευση %s" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, python-format +msgid "Scan %s band" +msgstr "Ανίχνευση μπάντας %s" + +msgid "Scan additional SR" +msgstr "Ανίχνευση Ï€Ïόσθετου SR" + +msgid "Scan files..." +msgstr "Αναζήτηση αÏχείων..." + +msgid "Scan wireless networks" +msgstr "Ανίχνευση ασÏÏματων δικτÏων" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "Ανίχνευση του δικτÏου για ασÏÏματα σημεία σÏνδεσης και σÏνδεση σε αυτά με την επιλεγμένη ασÏÏματη συσκευή.\n" + +#, python-format +msgid "Scanning %s..." +msgstr "Ανίχνευση %s..." + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "Ανίχνευση - ολοκληÏώθηκε το %d%% " +msgstr[1] "Ανίχνευση - ολοκληÏώθηκε το %d%% " + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "Η ανίχνευση ολοκληÏώθηκε, βÏέθηκε %d κανάλι" +msgstr[1] "Η ανίχνευση ολοκληÏώθηκε, βÏέθηκαν %d κανάλια" + +msgid "Scanning failed!" +msgstr "Η ανίχνευση απέτυχε!" + +msgid "Scanning..." +msgstr "Ανίχνευση..." + +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "Εκτελεί σάÏωση των αÏχικών βάσεων δεδομένων ταξινομημένων κατά δοÏυφόÏο με συνδεδεμένο μοτέÏ" + +msgid "Search east" +msgstr "Αναζήτηση ανατολικά" + +msgid "Search west" +msgstr "Αναζήτηση δυτικά" + +msgid "Searching" +msgstr "Αναζήτηση" + +msgid "Searching east ..." +msgstr "Αναζήτηση ανατολικά ..." + +msgid "Searching for available updates. Please wait..." +msgstr "Αναζήτηση για διαθέσιμες ενnμεÏώσεις. ΠαÏακαλώ πεÏιμένετε..." + +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "Αναζήτηση για νέα εγκατεστημένα ή διεγÏαμμένα πακέτα. ΠαÏακαλώ πεÏιμένετε..." + +msgid "Searching west ..." +msgstr "Αναζήτηση δυτικά ..." + +msgid "Second cable of motorized LNB" +msgstr "ΔεÏτεÏο καλώδιο από LNB σε μοτέÏ" + +msgid "Secondary DNS" +msgstr "ΔευτεÏεÏον DNS" + +msgid "Seek" +msgstr "Αναζήτηση" + +msgid "Seek backward" +msgstr "Μεταπήδηση Ï€Ïος τα πίσω" + +msgid "Seek backward (enter time)" +msgstr "Μεταπήδηση πίσω (σε χÏόνο)" + +msgid "Seek forward" +msgstr "Μεταπήδηση εμπÏός" + +msgid "Seek forward (enter time)" +msgstr "Μεταπήδηση εμπÏός (σε χÏόνο)" + +msgid "Select" +msgstr "Επιλογή" + +msgid "Select CAId" +msgstr "Επιλογή CAId" + +msgid "Select HDD" +msgstr "Επιλογή HDD" + +msgid "Select a bouquet" +msgstr "Επιλογή μπουκέτου" + +msgid "Select a movie" +msgstr "Επιλογή ταινίας" + +msgid "Select a network adapter" +msgstr "Επιλογή Ï€ÏοσαÏμογέα δικτÏου" + +msgid "Select a skin" +msgstr "Επιλογή θέματος" + +msgid "Select a tuner" +msgstr "Επιλογή tuner" + +msgid "Select a wireless network" +msgstr "Επιλογή ασÏÏματου δίκτυου" + +msgid "Select action" +msgstr "Επιλογή ενέÏγειας" + +#, python-format +msgid "Select action for timer %s:" +msgstr "Επιλογή ενέÏγειας του χÏονοδιακόπτη %s:" + +msgid "Select all" +msgstr "Επιλογή όλων" + +msgid "Select an image to be downloaded" +msgstr "Επιλογή Î»Î¿Î³Î¹ÏƒÎ¼Î¹ÎºÎ¿Ï Î³Î¹Î± λήψη" + +msgid "Select audio track" +msgstr "Επιλογή ÎºÎ±Î½Î±Î»Î¹Î¿Ï Î®Ï‡Î¿Ï…" + +msgid "Select backup files" +msgstr "Επιλογή αÏχείων αντιγÏάφου ασφαλείας" + +msgid "Select backup location" +msgstr "Επιλογή θέσης αντιγÏάφου ασφαλείας" + +msgid "Select channel to record from" +msgstr "Επιλογή ÎºÎ±Î½Î±Î»Î¹Î¿Ï Ï€Ïος εγγÏαφή" + +msgid "Select copy destination for:" +msgstr "Επιλογή Ï€ÏοοÏÎ¹ÏƒÎ¼Î¿Ï Î±Î½Ï„Î¹Î³Ïαφής για το:" + +msgid "Select default EPG type..." +msgstr "Επιλογή Ï€Ïοεπιλεγμένου Ï„Ïπου EPG..." + +msgid "Select desired image from feed list" +msgstr "Επιλέξτε το επιθυμητό λογισμικό από τη λίστα" + +msgid "Select destination for:" +msgstr "Επιλογή Ï€ÏοοÏÎ¹ÏƒÎ¼Î¿Ï Î³Î¹Î± το:" + +msgid "Select files for backup." +msgstr "Επιλογή αÏχείων για αντίγÏαφα ασφαλείας." + +msgid "Select files/folders to backup" +msgstr "Επιλογή αÏχείων/φακέλων για αντίγÏαφα ασφαλείας" + +msgid "Select input device" +msgstr "Επιλογή συσκευής εισόδου" + +msgid "Select input device." +msgstr "Επιλογή συσκευής εισόδου." + +msgid "Select interface" +msgstr "Επιλογή διεπαφής" + +msgid "Select location" +msgstr "Επιλογή τοποθεσίας" + +msgid "Select movie" +msgstr "Επιλογή ταινίας" + +msgid "Select provider to add..." +msgstr "Επιλογή παÏόχου για Ï€Ïοσθήκη..." + +msgid "Select refresh rate" +msgstr "Επιλογή ÏÏ…Î¸Î¼Î¿Ï Î±Î½Î±Î½Î­Ï‰ÏƒÎ·Ï‚" + +msgid "Select satellites" +msgstr "Επιλογή δοÏυφόÏων" + +msgid "Select service to add..." +msgstr "Επιλογή υπηÏεσίας για Ï€Ïοσθήκη..." + +msgid "Select sort method:" +msgstr "Επιλογή Ï„Ïόπου ταξινόμησης:" + +msgid "Select target folder" +msgstr "Επιλογή φάκελου Ï€ÏοοÏισμοÏ" + +msgid "Select the movie path" +msgstr "Επιλογή διαδÏομής ταινίας" + +msgid "Select upgrade source" +msgstr "Επιλογή πηγής αναβαθμίσεων" + +msgid "Select upgrade source to edit." +msgstr "Επιλογή πηγής αναβάθμισης για επεξεÏγασία." + +msgid "Select video input with up/down buttons" +msgstr "Επιλογή εισόδου εικόνας με τα πλήκτÏα πάνω/κάτω" + +msgid "Select video mode" +msgstr "Επιλογή λειτουÏγίας εικόνας" + +msgid "Select wireless network" +msgstr "Επιλογή ασÏÏματου δικτÏου" + +msgid "Select your provider, and press OK to start the scan" +msgstr "Επιλέξτε πάÏοχο, και πιέστε ΟΚ για να ξεκινήσει η ανίχνευση" + +msgid "Selecting satellites 1 (USALS)" +msgstr "Επιλογή δοÏυφόÏων 1 (USALS)" + +msgid "Selecting satellites 2 (USALS)" +msgstr "Επιλογή δοÏυφόÏων 2 (USALS)" + +msgid "Send DiSEqC only on satellite change" +msgstr "Αποστολή DiSEqC μόνο σε αλλαγή δοÏυφόÏου" + +msgid "Separate titles with a main menu" +msgstr "ΔιαχωÏισμός τίτλων με κεντÏικό μενοÏ" + +msgid "Sequence repeat" +msgstr "Επανάληψη διαδοχής" + +msgid "Serbian" +msgstr "ΣεÏβικά" + +msgid "Service" +msgstr "ΥπηÏεσία" + +msgid "Service has been added to the favourites." +msgstr "Η υπηÏεσία Ï€Ïοστέθηκε στα αγαπημένα." + +msgid "Service has been added to the selected bouquet." +msgstr "Η υπηÏεσία Ï€Ïοστέθηκε στo επιλεγμένο μπουκέτο" + +msgid "Service info" +msgstr "ΠληÏοφοÏίες υπηÏεσίας" + +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Μη έγκυÏη υπηÏεσία!\n" +"(ΥπέÏβαση χÏόνου ανάγνωσης του PMT)" + +msgid "Service name" +msgstr "Όνομα υπηÏεσίας" + +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Η υπηÏεσία δεν βÏέθηκε!\n" +"(το SID δεν βÏέθηκε στο PAT)" + +msgid "Service reference" +msgstr "ΑναφοÏά υπηÏεσίας" + +msgid "Service scan" +msgstr "Ανίχνευση υπηÏεσιών" + +msgid "Service searching" +msgstr "Αναζήτηση υπηÏεσιών" + +msgid "Service title mode" +msgstr "ΛειτουÏγία τίτλου υπηÏεσίας" + +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"ΥπηÏεσία μη διαθέσιμη!\n" +"Ελέγξτε τις Ïυθμίσεις του tuner!" + +msgid "Services" +msgstr "ΥπηÏεσίες" + +msgid "Set default" +msgstr "ΟÏισμός Ï€Ïοεπιλογής" + +msgid "Set end time" +msgstr "ΡÏθμιση χÏόνου τεÏματισμοÏ" + +msgid "Set fixed" +msgstr "ΣταθεÏή ÏÏθμιση" + +msgid "Set fps for external subtitles" +msgstr "ΟÏισμός fps για τους εξωτεÏικοÏÏ‚ υπότιτλους" + +msgid "Set interface as default Interface" +msgstr "ΟÏισμός διεπαφής ως Ï€Ïοεπιλεγμένης" + +msgid "Set limits" +msgstr "ΚαθοÏισμός οÏίων" + +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "ΡÏθμιση Ï„Ïπου εμφάνισης Ï€Ïοόδου στη λίστα καναλιών." + +msgid "Set time window to 1 hour" +msgstr "ΡÏθμιση χÏÎ¿Î½Î¹ÎºÎ¿Ï Ï€Î±ÏαθÏÏου έως 1 ÏŽÏα" + +msgid "Set time window to 2 hours" +msgstr "ΡÏθμιση χÏÎ¿Î½Î¹ÎºÎ¿Ï Ï€Î±ÏαθÏÏου έως 2 ÏŽÏες" + +msgid "Set time window to 3 hours" +msgstr "ΡÏθμιση χÏÎ¿Î½Î¹ÎºÎ¿Ï Ï€Î±ÏαθÏÏου έως 3 ÏŽÏες" + +msgid "Set time window to 4 hours" +msgstr "ΡÏθμιση χÏÎ¿Î½Î¹ÎºÎ¿Ï Ï€Î±ÏαθÏÏου έως 4 ÏŽÏες" + +msgid "Set time window to 5 hours" +msgstr "ΡÏθμιση χÏÎ¿Î½Î¹ÎºÎ¿Ï Ï€Î±ÏαθÏÏου έως 5 ÏŽÏες" + +msgid "Set time window to 6 hours" +msgstr "ΟÏισμός χÏόνου παÏαθÏÏου σε 6 ÏŽÏες" + +msgid "Set voltage and 22KHz" +msgstr "ΡÏθμιση τάσης και 22KHz" + +msgid "Settings" +msgstr "Ρυθμίσεις" + +msgid "Setup" +msgstr "Εγκατάσταση" + +msgid "Setup menu" +msgstr "ÎœÎµÎ½Î¿Ï ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ·Ï‚" + +msgid "Setup mode" +msgstr "ΛειτουÏγία εγκατάστασης" + +msgid "Setup your positioner" +msgstr "Εγκατάσταση μοτέÏ" + +msgid "Setup your satellite equipment" +msgstr "Εγκατάσταση δοÏυφοÏÎ¹ÎºÎ¿Ï ÎµÎ¾Î¿Ï€Î»Î¹ÏƒÎ¼Î¿Ï" + +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "Îα Ï€ÏοχωÏήσει ο οδηγός μέσω USB στικ και να εγκαταστήσει το λογισμικό %s στη μνήμη flash;" + +msgid "Sharpness" +msgstr "ΟξÏτητα" + +msgid "Short filenames" +msgstr "ΣÏντομα ονόματα" + +msgid "Show EIT now/next in infobar" +msgstr "Εμφάνιση ΕΙΤ Ï„Ïέχον/επόμενο στη μπάÏα πληÏοφοÏιών" + +msgid "Show EPG for current channel..." +msgstr "Εμφάνιση μπάÏας πληÏοφοÏιών σε αλλαγή Ï€ÏογÏάμματος" + +msgid "Show EPG..." +msgstr "Εμφάνιση EPG..." + +msgid "Show Games show" +msgstr "Εμφάνιση τηλεπαιχνιδιοÏ" + +msgid "Show SNR percentage instead of dB value" +msgstr "Εμφάνιση τιμής SNR σε ποσοστό αντί για dB" + +msgid "Show VCR scart on main menu" +msgstr "Εμφάνιση VCR scart στο κÏÏιο μενοÏ" + +msgid "Show WLAN status" +msgstr "Εμφάνιση κατάστασης ασÏÏματου δικτÏου" + +msgid "Show animation while busy" +msgstr "Εμφάνιση κινοÏμενου σχεδίου όταν είναι απασχολημένο" + +msgid "Show background in radio mode" +msgstr "Εμφάνιση φόντου στη λειτουÏγία Ïαδιοφώνου" + +msgid "Show bouquet selection menu" +msgstr "Εμφάνιση του Î¼ÎµÎ½Î¿Ï ÎµÏ€Î¹Î»Î¿Î³Î®Ï‚ μπουκέτου" + +msgid "Show busy indicator when the system is busy." +msgstr "Εμφάνιση ένδειξης απασχολημένου όταν το σÏστημα είναι απασχολημένο." + +msgid "Show channel numbers in channel selection" +msgstr "Εμφάνιση αÏÎ¹Î¸Î¼Î¿Ï ÎºÎ±Î½Î±Î»Î¹Î¿Ï ÏƒÏ„Î·Î½ επιλογή καναλιοÏ" + +msgid "Show columns" +msgstr "Εμφάνιση στηλών" + +msgid "Show crypto icons" +msgstr "Εμφάνιση κÏυπτοεικονιδίων" + +msgid "Show crypto info in infobar" +msgstr "Εμφάνιση πληÏοφοÏιών κÏυπτοποίησης στη μπάÏα πληÏοφοÏιών" + +msgid "Show detailed event info" +msgstr "Εμφάνιση αναλυτικών πληÏοφοÏιών Ï€ÏογÏάμματος" + +msgid "Show event details" +msgstr "Εμφάνιση λεπτομεÏειών Ï€ÏογÏάμματος" + +msgid "Show event-progress in channel selection" +msgstr "Εμφάνιση μπάÏας Ï€Ïοόδου στην επιλογή καναλιοÏ" + +msgid "Show extended description" +msgstr "Εμφάνιση εκτεταμένης πεÏιγÏαφής" + +msgid "Show extensions..." +msgstr "Εμφάνιση επεκτάσεων..." + +msgid "Show icon for new/unseen items" +msgstr "Εμφάνιση εικονιδίου για νέα αντικείμενα" + +msgid "Show in extensions menu" +msgstr "Εμφάνιση στο Î¼ÎµÎ½Î¿Ï ÎµÏ€ÎµÎºÏ„Î¬ÏƒÎµÏ‰Î½" + +msgid "Show info" +msgstr "Εμφάνιση πληÏοφοÏιών" + +msgid "Show info line" +msgstr "Εμφάνιση γÏαμμής πληÏοφοÏιών" + +msgid "Show infobar on channel change" +msgstr "Εμφάνιση μπάÏας πληÏοφοÏιών σε αλλαγή καναλιοÏ" + +msgid "Show infobar on event change" +msgstr "Εμφάνιση μπάÏας πληÏοφοÏιών σε αλλαγή εκπομπής" + +msgid "Show infobar on skip forward/backward" +msgstr "Εμφάνιση της μπάÏας πληÏοφοÏιών κατά τα εμπÏός/πίσω" + +msgid "Show latest commits on sourceforge" +msgstr "Εμφάνιση τελευταίων αλλαγών στο sourceforge" + +msgid "Show message when recording starts" +msgstr "Εμφάνιση μηνÏματος στην εκκίνηση της εγÏαφής" + +msgid "Show movie lengths in movielist" +msgstr "Εμφάνιση διάÏκειας στη λίστα ταινιών" + +msgid "Show multi channel EPG" +msgstr "Εμφάνιση EPG πολλαπλών καναλιών" + +msgid "Show picons in channel list" +msgstr "Εμφάνιση εικονιδίων στη λίστα καναλιών" + +msgid "Show positioner movement" +msgstr "Εμφάνιση κίνησης του μοτέÏ" + +msgid "Show screensaver" +msgstr "Εμφάνιση Ï€Ïοστασίας οθόνης" + +msgid "Show second infobar" +msgstr "Εμφάνιση της δεÏτεÏης μπάÏας πληÏοφοÏιών" + +msgid "Show service type icons" +msgstr "Εμφάνιση εικονιδίων Ï„Ïπου υπηÏεσίας" + +msgid "Show services beginning with" +msgstr "Εμφάνιση υπηÏεσιών που αÏχίζουν από" + +msgid "Show shutdown menu" +msgstr "Εμφάνιση Î¼ÎµÎ½Î¿Ï Ï„ÎµÏματισμοÏ" + +msgid "Show single service EPG" +msgstr "Εμφάνιση EPG μίας μόνο υπηÏεσίας" + +msgid "Show status icons in Movielist" +msgstr "Εμφάνιση εικονιδίων κατάστασης στη λίστα ταινιών" + +msgid "Show status icons in movie list" +msgstr "Εμφάνιση εικονιδίων κατάστασης στη λίστα ταινιών" + +msgid "Show status icons in movielist" +msgstr "Εμφάνιση εικονιδίων κατάστασης στη λίστα ταινιών" + +msgid "Show tag menu" +msgstr "Εμφάνιση Î¼ÎµÎ½Î¿Ï ÎµÏ„Î¹ÎºÎµÏ„ÏŽÎ½" + +msgid "Show the radio player..." +msgstr "Εμφάνιση Ïαδιοφώνου..." + +msgid "Show the tv player..." +msgstr "Εμφάνιση TV..." + +msgid "Show warning when timeshift is stopped" +msgstr "Εμφάνιση Ï€Ïοειδοποίησης όταν η χÏονομετατόπιση έχει σταματήσει" + +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Εμφάνιση της κατάστασης του ασÏÏματου δικτÏου.\n" + +msgid "Shuffle playlist" +msgstr "Τυχαία αναπαÏαγωγή" + +msgid "Shutdown" +msgstr "ΤεÏματισμός" + +msgid "Shutdown when in Standby" +msgstr "ΤεÏματισμός σε κατάσταση αναμονής" + +msgid "Side by side" +msgstr "Σε παÏάθεση" + +msgid "Signal OK, proceeding" +msgstr "Το σήμα είναι ΟΚ, συνέχεια" + +msgid "Signal quality" +msgstr "Ποιότητα σήματος" + +msgid "Signal strength:" +msgstr "Ένταση σήματος:" + +msgid "Signal: " +msgstr "Σήμα: " + +msgid "Similar" +msgstr "ΠαÏόμοιο" + +msgid "Similar broadcasts:" +msgstr "ΠαÏόμοιες μεταδόσεις:" + +msgid "Simple" +msgstr "Απλό" + +msgid "Simple titleset (compatibility for legacy players)" +msgstr "Απλή τιτλοδοσία (συμβατότητα με συσκευές Ï€Î±Î»Î¹Î¿Ï Ï„Ïπου)" + +msgid "Single" +msgstr "Μονός" + +msgid "Single EPG" +msgstr "Μονός EPG" + +msgid "Single satellite" +msgstr "Ένας δοÏυφόÏος" + +msgid "Single step (GOP)" +msgstr "Μονό βήμα (GOP)" + +msgid "Single transponder" +msgstr "Ένας αναμεταδότης" + +msgid "Site latitude" +msgstr "ΓεωγÏαφικό πλάτος" + +msgid "Site longitude" +msgstr "ΓεωγÏαφικό μήκος" + +msgid "Skin" +msgstr "Θέμα" + +msgid "Skins" +msgstr "Θέματα" + +msgid "Skip empty services" +msgstr "ΠαÏάλειψη άδειων υπηÏεσιών" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "ΠαÏάλειψη ελέγχου σÏνδεσης στο διαδίκτυο (απενεÏγοποιεί την αυτόματη εγκατάσταση πακέτων)" + +msgid "Sleep timer" +msgstr "ΧÏονοδιακόπτης Ïπνου" + +msgid "SleepTimer Configuration" +msgstr "ΡÏθμιση ΧÏονοδιακόπτη Ύπνου" + +msgid "Sleeptimer" +msgstr "ΧÏονοδιακόπτης Ïπνου" + +msgid "Slide picture in loop" +msgstr "Ολίσθηση εικόνας σε επανάληψη" + +msgid "Slide show interval (sec.)" +msgstr "Μεσοδιάστημα παÏουσίασης διαφανειών (δευτ.)" + +#, python-format +msgid "Slot %d" +msgstr "ΘÏÏα %d" + +msgid "Slovak" +msgstr "Σλοβακικά" + +msgid "Slovenian" +msgstr "Σλοβενικά" + +msgid "Slow" +msgstr "ΑÏγά" + +msgid "Slow motion speeds" +msgstr "ΤαχÏτητες αÏγής κίνησης" + +msgid "Small progress" +msgstr "ΜικÏή Ï€Ïόοδος" + +msgid "Social/Political/Economics" +msgstr "Κοινωνία/Πολιτική/Οικονομία" + +msgid "SoftCam / CI" +msgstr "SoftCam / CI" + +msgid "Softcam type" +msgstr "ΤÏπος softcam" + +msgid "Software" +msgstr "Λογισμικό" + +msgid "Software management" +msgstr "ΔιαχείÏιση λογισμικοÏ" + +msgid "Software manager setup" +msgstr "Ρυθμίσεις διαχειÏιστή λογισμικοÏ" + +msgid "Software restore" +msgstr "ΕπαναφοÏά λογισμικοÏ" + +msgid "Software update" +msgstr "ΕνημέÏωση λογισμικοÏ" + +msgid "Softwaremanager information" +msgstr "ΠληÏοφοÏίες διαχειÏιστή λογισμικοÏ" + +msgid "Some plugins are not available:\n" +msgstr "ΜεÏικά Ï€Ïόσθετα δεν είναι διαθέσιμα:\n" + +#, python-format +msgid "Sorry, %s has not been installed!" +msgstr "ΛυποÏμαστε, το %s δεν έχει εγκατασταθεί!" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "ΛυποÏμαστε, η διαγÏαφή φακέλων μποÏεί (Ï€Ïος το παÏόν) να γίνεται μόνο μέσω του κάδου αχÏήστων." + +msgid "Sorry, no backups found!" +msgstr "ΛυποÏμαστε, δεν βÏέθηκαν αντίγÏαφα ασφαλείας!" + +msgid "Sorry, no details available!" +msgstr "ΛυποÏμαστε, δεν υπάÏχουν διαθέσιμες λεπτομέÏειες!" + +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"ΛυποÏμαστε, ο Ï€ÏοοÏισμός αντιγÏάφων ασφαλείας δεν είναι εγγÏάψιμος. \n" +"ΠαÏακαλοÏμε επιλέξτε έναν άλλο." + +msgid "Sort" +msgstr "Ταξινόμηση" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Ταξινόμηση A-Ω" + +msgid "Sort by" +msgstr "Ταξινόμηση ανά" + +msgid "Sort list:" +msgstr "Ταξινόμηση λίστας:" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort time" +msgstr "Ταξινόμηση κατά χÏόνο" + +msgid "Sound" +msgstr "Ήχος" + +msgid "Sound carrier" +msgstr "ΦέÏουσα ήχου" + +msgid "Source request" +msgstr "Επιλογή πηγής αναβάθμισης" + +msgid "South" +msgstr "Îότια" + +msgid "Spanish" +msgstr "Ισπανικά" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "ΟÏισμός του χÏόνου λήξης της αγνόησης του χÏονοδιακόπτη τεÏÎ¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï ÏŒÏ„Î±Î½ ο δέκτης βÏίσκεται σε αναμονή" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "ΟÏισμός του χÏόνου λήξης μέχÏι να αγνοηθεί η αδÏάνεια του χÏονοδιακόπτη Ïπνου" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "ΟÏισμός του χÏόνου έναÏξης αγνόησης του χÏονοδιακόπτη τεÏÎ¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï ÏŒÏ„Î±Î½ ο δέκτης βÏίσκεται σε αναμονή" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "ΟÏισμός του χÏόνου έναÏξης αγνόησης της αδÏάνειας του χÏονοδιακόπτη" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "ΟÏισμός του μεσοδιαστήματος αγνόησης της αδÏάνειας του χÏονοδιακόπτη Ïπνου" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "ΟÏισμός του μεσοδιαστήματος αγνόησης του τεÏÎ¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï ÏƒÎµ αναμονή" + +msgid "Split preview mode" +msgstr "ΔιαχωÏισμός κατάστασης επισκόπησης" + +msgid "Splitscreen" +msgstr "ΔιαίÏεση Οθόνης" + +msgid "Sports" +msgstr "Αθλητικά" + +msgid "Standard" +msgstr "ΣτάνταÏ" + +msgid "Standart list" +msgstr "Î£Ï„Î¬Î½Ï„Î±Ï Î»Î¯ÏƒÏ„Î±" + +msgid "Standby" +msgstr "Αναμονή" + +msgid "Standby / restart" +msgstr "Αναμονή / επανεκκίνηση" + +msgid "Standby after current event" +msgstr "Αναμονή μετά το Ï„Ïέχον Ï€ÏόγÏαμμα" + +#, python-format +msgid "Standby fan %d PWM" +msgstr "Αναμονή ανεμιστήÏα %d PWM" + +#, python-format +msgid "Standby fan %d voltage" +msgstr "Τάση αναμονής ανεμιστήÏα %d" + +msgid "Standby in " +msgstr "Αναμονή σε " + +msgid "StandbyLED" +msgstr "LED Αναμονής" + +msgid "Start from the beginning" +msgstr "ΈναÏξη από την αÏχή" + +msgid "Start offline decode" +msgstr "Εκκίνηση αποκωδικοποίησης εκτός σÏνδεσης" + +msgid "Start recording?" +msgstr "ΈναÏξη εγγÏαφής;" + +msgid "Start test" +msgstr "ΈναÏξη ελέγχου" + +msgid "Start time" +msgstr "ÎÏα έναÏξης" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "ΈναÏξη χÏόνου αγνόησης της αδÏάνειας του χÏονοδιακόπτη Ïπνου" + +msgid "Start time to ignore shutdown in standby" +msgstr "ΧÏόνος εκκίνησης αγνόησης του χÏονοδιακόπτη τεÏÎ¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï ÏŒÏ„Î±Î½ ο δέκτης βÏίσκεται σε αναμονή" + +msgid "Start timeshift" +msgstr "Εκκίνηση χÏονομετατόπισης" + +msgid "Start with list screen" +msgstr "ΈναÏξη με την οθόνη λίστας" + +msgid "Starting on" +msgstr "ΈναÏξη από το" + +msgid "Startup the set top box in standby" +msgstr "Εκκίνηση του δέκτη από την αναμονή" + +msgid "Startup to Standby" +msgstr "Εκκίνηση από Αναμονή" + +msgid "Step east" +msgstr "Βήμα ανατολικά" + +msgid "Step west" +msgstr "Βήμα δυτικά" + +msgid "Stepped east" +msgstr "Βηματισμός ανατολικά" + +msgid "Stepped west" +msgstr "Βηματισμός δυτικά" + +msgid "Stop" +msgstr "Σταμάτημα" + +msgid "Stop PiP" +msgstr "ΤεÏματισμός PiP" + +msgid "Stop current event and disable coming events" +msgstr "ΤεÏματισμός Ï„Ïέχοντος Ï€ÏογÏάμματος και ακÏÏωση επεÏχόμενων" + +msgid "Stop current event but not coming events" +msgstr "ΤεÏματισμός Ï„Ïέχοντος Ï€ÏογÏάμματος αλλά όχι των επεÏχόμενων" + +msgid "Stop entry" +msgstr "Σταμάτημα στοιχείου" + +msgid "Stop playing this movie?" +msgstr "Διακοπή αναπαÏαγωγής;" + +msgid "Stop recording" +msgstr "ΤεÏματισμός εγγÏαφής" + +msgid "Stop recording and delete" +msgstr "ΤεÏματισμός εγγÏαφής και διαγÏαφή" + +msgid "Stop service on return to movie list" +msgstr "Σταμάτημα υπηÏεσίας κατά την επιστÏοφή στη λίστα ταινιών" + +msgid "Stop test" +msgstr "ΤεÏματισμός ελέγχου" + +msgid "Stop testing plane after # failed transponders" +msgstr "Σταμάτημα ελέγχου του πιλότου μετά από # αποτυχημένους αναμεταδότες" + +msgid "Stop testing plane after # successful transponders" +msgstr "Σταμάτημα ελέγχου του πιλότου μετά από # επιτυχημένους αναμεταδότες" + +msgid "Stop timer recording" +msgstr "Διακοπή εγγÏαφής χÏονοδιακόπτη" + +msgid "Stop timeshift" +msgstr "Διακοπή χÏονομετατόπισης" + +msgid "Stop timeshift?" +msgstr "Διακοπή της χÏονομετατόπισης;" + +msgid "Stopped" +msgstr "Σταματημένο" + +msgid "Store at index" +msgstr "Αποθήκευση στη θέση" + +msgid "Store position" +msgstr "Αποθήκευση θέσης" + +msgid "Stored position" +msgstr "Αποθηκευμένη θέση" + +msgid "Stream" +msgstr "Ροή" + +msgid "Stream request" +msgstr "Αίτηση Ïοής" + +msgid "Strongest position" +msgstr "ΙσχυÏότεÏη θέση" + +msgid "Subservice list..." +msgstr "Λίστα υπό-υπηÏεσιών..." + +msgid "Subservices" +msgstr "Υπό-υπηÏεσίες" + +msgid "Subtitle Quickmenu" +msgstr "ΓÏήγοÏο ÎœÎµÎ½Î¿Ï Î¥Ï€Î¿Ï„Î¯Ï„Î»Ï‰Î½" + +msgid "Subtitle alignment" +msgstr "Στοίχιση υποτίτλου" + +msgid "Subtitle border width" +msgstr "Μέγεθος πεÏιγÏάμματος υποτίτλου" + +msgid "Subtitle delay when timing is bad" +msgstr "ΚαθυστέÏηση υποτίτλων σε κακό χÏονισμό" + +msgid "Subtitle delay when timing lacks" +msgstr "ΚαθυστέÏηση κειμένου όταν δεν υπάÏχει χÏονισμός" + +msgid "Subtitle font size" +msgstr "Μέγεθος γÏαμματοσειÏάς υποτίτλου" + +msgid "Subtitle language selection 1" +msgstr "Επιλογή γλώσσας υποτίτλων 1" + +msgid "Subtitle language selection 2" +msgstr "Επιλογή γλώσσας υποτίτλων 2" + +msgid "Subtitle language selection 3" +msgstr "Επιλογή γλώσσας υποτίτλων 3" + +msgid "Subtitle language selection 4" +msgstr "Επιλογή γλώσσας υποτίτλων 4" + +msgid "Subtitle position" +msgstr "Θέση υποτίτλου" + +msgid "Subtitle selection" +msgstr "Επιλογή υποτίτλων" + +msgid "Subtitle selection..." +msgstr "Επιλογή υποτίτλων..." + +msgid "Subtitle settings" +msgstr "Ρυθμίσεις υποτίτλων" + +msgid "Subtitles" +msgstr "Υπότιτλοι" + +msgid "Sun" +msgstr "ΚυÏ" + +msgid "Sunday" +msgstr "ΚυÏιακή" + +msgid "Swap PiP and main picture" +msgstr "Εναλλαγή PiP και κÏÏιας εικόνας" + +msgid "Swap services" +msgstr "Αντικατάσταση υπηÏεσιών" + +msgid "Swedish" +msgstr "Σουηδικά" + +msgid "Switch TV to correct input" +msgstr "Αλλαγή της TV στη σωστή είσοδο" + +msgid "Switch between filelist/playlist" +msgstr "Αλλαγή Î¼ÎµÏ„Î±Î¾Ï Î»Î¯ÏƒÏ„Î±Ï‚ αÏχείων/αναπαÏαγωγής" + +msgid "Switch between normal mode and list mode" +msgstr "Εναλλαγή Î¼ÎµÏ„Î±Î¾Ï ÎºÎ±Î½Î¿Î½Î¹ÎºÎ®Ï‚ λειτουÏγίας ή λίστας" + +msgid "Switch to HDMI in mode" +msgstr "Αλλαγή σε HDMI σε λειτουÏγία" + +msgid "Switch to filelist" +msgstr "Μετάβαση στη λίστα αÏχείων" + +msgid "Switch to next channel" +msgstr "Αλλαγή στο επόμενο κανάλι" + +msgid "Switch to next channel in history" +msgstr "Επόμενο κανάλι στο ιστοÏικό" + +msgid "Switch to next sub service" +msgstr "Μετάβαση στην επόμενη υπό-υπηÏεσία" + +msgid "Switch to playlist" +msgstr "Μετάβαση στη λίστα αναπαÏαγωγής" + +msgid "Switch to previous channel" +msgstr "ΠÏοώθηση στην Ï€ÏοηγοÏμενη υπό-υπηÏεσία" + +msgid "Switch to previous channel in history" +msgstr "Μετάβαση στο Ï€ÏοηγοÏμενο κανάλι στο ιστοÏικό" + +msgid "Switch to previous sub service" +msgstr "Μετάβαση στην Ï€ÏοηγοÏμενη υπό-υπηÏεσία" + +msgid "Switchable tuner types:" +msgstr "Εναλλακτοί Ï„Ïποι tuner:" + +msgid "Symbol rate" +msgstr "Ρυθμός συμβόλων" + +msgid "Symbol rate:" +msgstr "Ρυθμός συμβόλων:" + +msgid "Sync failure moving back to origin !" +msgstr "Αποτυχία συγχÏÎ¿Î½Î¹ÏƒÎ¼Î¿Ï ÎµÏ€Î¹ÏƒÏ„Ïοφή στο αÏχικό !" + +msgid "System" +msgstr "ΣÏστημα" + +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "SatDreamGR" + +msgid "TS file is too large for ISO9660 level 1!" +msgstr "Το αÏχείο TS είναι Ï€Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿ για το ISO9660 επίπεδο 1!" + +msgid "TSID" +msgstr "TSID" + +msgid "TV physical address report" +msgstr "Φυσική διεÏθυνση τηλεόÏασης" + +msgid "TXT PID" +msgstr "TXT PID" + +msgid "Table of contents for collection" +msgstr "Πίνακας πεÏιεχομένων για συλλογή" + +msgid "Tags" +msgstr "Ετικέτες" + +msgid "Teletext subtitle color" +msgstr "ΧÏώμα υποτίτλων τηλεκειμένου" + +msgid "Temperature and fan control" +msgstr "Έλεγχος θεÏμοκÏασίας και ανεμιστήÏα" + +msgid "Terrestrial" +msgstr "Επίγειο" + +msgid "Terrestrial provider" +msgstr "Επίγειος πάÏοχος" + +msgid "Test DiSEqC settings" +msgstr "Έλεγχος Ïυθμίσεων DiSEqC" + +msgid "Test mode" +msgstr "Κατάσταση ελέγχου" + +msgid "Test the network configuration of your receiver.\n" +msgstr "Έλεγχος των Ïυθμίσεων δικτÏου του δέκτη σας.\n" + +msgid "Test type" +msgstr "ΤÏπος τεστ" + +msgid "Text color" +msgstr "ΧÏώμα κειμένου" + +msgid "Thai" +msgstr "Ταϊλανδικά" + +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"Σας ευχαÏιστοÏμε που χÏησιμοποιήσατε τον οδηγό.\n" +"ΠαÏακαλώ πιέστε ΟΚ για συνέχεια." + +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"Σας ευχαÏιστοÏμε που χÏησιμοποιήσατε τον οδηγό. Ο δέκτης σας είναι πλέον έτοιμος για χÏήση.\n" +"ΠαÏακαλώ πιέστε ΟΚ για να ξεκινήσετε." + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "Το Ï€Ïότυπο DVD δεν υποστηÏίζει Ïοές βίντεο H.264 (HDTV). Θέλετε να δημιουÏγήσετε ένα ÎµÎ¹Î´Î¹ÎºÎ¿Ï Ï†Î¿Ïμά DVD δεδομένων (που δεν θα παίζει σε κοινά DVD players) αντ' αυτοÏ;" + +msgid "The PIN code has been changed successfully." +msgstr "Το PIN άλλαξε με επιτυχία." + +msgid "The PIN codes you entered are different." +msgstr "Τα PIN που εισάγατε είναι διαφοÏετικά." + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" +"Το usb στικ Ï€Ïοετοιμάστηκε ως εκκινήσιμο.\n" +"ΤώÏα μποÏεί να γίνει λήψη του αÏχείου NFI!" + +msgid "The backup failed. Please choose a different backup location." +msgstr "Το αντίγÏαφο ασφαλείας απέτυχε. Επιλέξτε άλλη τοποθεσία για το αντίγÏαφο." + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" +"Η Ï„Ïέχουσα έκδοση beta μποÏεί να μην είναι σταθεÏή.\n" +"Για πεÏισσότεÏες πληÏοφοÏίες δείτε το %s." + +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"Ο φάκελος %s δεν είναι εγγÏάψιμος.\n" +"Επιλέξτε εναλλακτικά έναν εγγÏάψιμο φάκελο." + +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"Î’Ïέθηκε η παÏακάτω συσκευή:\n" +"\n" +"%s\n" +"\n" +"Θέλετε να γÏάψετε το USB flasher σε αυτό το stick;" + +msgid "The following files were found..." +msgstr "Î’Ïέθηκαν τα παÏακάτω αÏχεία..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "Η πιστοποίηση md5sum απέτυχε, το αÏχείο ενδέχεται να είναι κατεστÏαμμένο!" + +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"Η επέκταση Î¿Î´Î·Î³Î¿Ï Î´Î¹ÎºÏ„Ïου δεν είναι εγκατεστημένη!\n" +"ΠαÏακαλώ εγκαταστήστε την." + +#, python-format +msgid "The path %s already exists." +msgstr "Η διαδÏομή %s υπάÏχει ήδη." + +msgid "The pin code you entered is wrong." +msgstr "Το pin που εισάγατε είναι λάθος." + +#, python-format +msgid "The results have been written to %s." +msgstr "Τα αποτελέσματα γÏάφτηκαν στο %s." + +msgid "The sleep timer has been activated." +msgstr "Ο χÏονοδιακόπτης απενεÏγοποίησης ενεÏγοποιήθηκε." + +msgid "The sleep timer has been disabled." +msgstr "Ο χÏονοδιακόπτης απενεÏγοποίησης απενεÏγοποιήθηκε." + +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"Η επέκταση Softwaremanagement δεν είναι εγκατεστημένη!\n" +"ΠαÏακαλώ εγκαταστήστε την." + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "Η κατάσταση της Ï„Ïέχουσας έκδοσης beta δε μποÏεί να ελεγχθεί επειδή ήταν αδÏνατη η επικοινωνία με το %s." + +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "Το αÏχείο timers.xml είναι άκυÏο και δεν φοÏτώθηκε." + +msgid "The user interface of your receiver is restarting" +msgstr "To enigma2 του δέκτη σας επανεκκινείται" + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "To enigma2 επανεκκινείται λόγω σφάλματος στο mytest.py" + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"Το Ï€Ïόσθετο ασÏÏματου LAN δεν είναι εγκατεστημένο!\n" +"ΠαÏακαλώ εγκαταστήστε το και επιλέξτε τι θέλετε να συμβεί στη συνέχεια." + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"Το Ï€Ïόσθετο ασÏÏματου LAN δεν είναι εγκατεστημένο!\n" +"ΠαÏακαλώ εγκαταστήστε το." + +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "Ο οδηγός μποÏεί να κÏατήσει αντίγÏαφο των Ïυθμίσεων. Îα κÏατήσει αντίγÏαφο Ï„ÏŽÏα;" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "Ο οδηγός βÏήκε αντίγÏαφο ασφαλείας των Ïυθμίσεων. Θέλετε να επαναφέÏετε τις παλιές Ïυθμίσεις σας από το %s;" + +msgid "The wizard is finished now." +msgstr "Ο οδηγός ολοκληÏώθηκε." + +msgid "There are at least " +msgstr "ΥπάÏχουν τουλάχιστον " + +#, python-format +msgid "There are at least %s updates available." +msgstr "ΥπάÏχουν τουλάχιστον %s διαθέσιμες ενημεÏώσεις." + +msgid "There are currently no outstanding actions." +msgstr "Δεν υπάÏχουν ενέÏγειες σε εκκÏεμότητα." + +msgid "There are no updates available." +msgstr "Δεν υπάÏχουν διαθέσιμες ενημεÏώσεις." + +msgid "There is no signal to lock on !" +msgstr "Δεν υπάÏχει σήμα για να κλειδώσει !" + +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"Ενδεχομένως να μην υπάÏχει αÏκετός χώÏος στο επιλεγμένο διαμέÏισμα.\n" +"Θέλετε να συνεχίσετε;" + +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "Αυτό το DVD RW είναι ήδη φοÏμαÏισμένο - η επαναμοÏφοποίηση θα σβήσει όλα τα πεÏιεχόμενα του δίσκου." + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" +"Αυτό το Ï€Ïόσθετο δημιουÏγεί ένα στικ USB για χÏήση στην αναβάθμιση του δέκτη σας χωÏίς την απαίτηση ενσÏÏματου ή ασÏÏματου δικτÏου.\n" +"ΠÏώτα, Ï€Ïέπει να γίνει Ï€Ïοετοιμασία του USB στικ ώστε να γίνει εκκινήσιμο. Στο επόμενο βήμα, θα κατεβάσετε το λογισμικό NFI από το διακομιστή και θα το αποθηκεÏσετε στο USB στικ.\n" +"Αν έχετε ήδη Ï€Ïοετοιμάσει το εκκινήσιμο USB, εισάγετέ το Ï„ÏŽÏα. Αλλιώς εισάγετε ένα USB στικ με ελάχιστο μέγεθος τα 64 MB!" + +msgid "This plugin is installed." +msgstr "Αυτό το Ï€Ïόσθετο είναι εγκατεστημένο." + +msgid "This plugin is not installed." +msgstr "Αυτό το Ï€Ïόσθετο δεν είναι εγκατεστημένο." + +msgid "This plugin will be installed." +msgstr "Αυτό το Ï€Ïόσθετο θα εγκατασταθεί." + +msgid "This plugin will be removed." +msgstr "Αυτό το Ï€Ïόσθετο θα διαγÏαφεί." + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "Αυτός ο δέκτης δεν μποÏεί να αποκωδικοποιήσει Ïοές %s!" + +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"Αυτό το τεστ ελέγχει για Ïυθμισμένους nameservers.\n" +"Αν λάβετε το μήνυμα \"μη επιβεβαιωμένο\":\n" +"- παÏακαλοÏμε ελέγξτε το DHCP, την καλωδίωση και την εγκατάσταση του Ï€ÏοσαÏμογέα\n" +"- αν έχετε Ïυθμίσει τους nameservers χειÏοκίνητα, παÏακαλοÏμε επιβεβαιώστε τα δεδομένα στη ÏÏθμιση \"Nameserver\"." + +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Αυτό το τεστ ελέγχει αν το καλώδιο δικτÏου είναι συνδεδεμένο στον Ï€ÏοσαÏμογέα LAN.\n" +"Αν λάβετε το μήνυμα \"αποσυνδεδεμένο\":\n" +"- βεβαιωθείτε ότι συνδέσατε το καλώδιο\n" +"- βεβαιωθείτε ότι το καλώδιο δεν είναι χαλασμένο" + +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Αυτό το τεστ ελέγχει αν υπάÏχει έγκυÏη IP Address στον Ï€ÏοσαÏμογέα LAN.\n" +"Αν λάβετε το μήνυμα \"μη επιβεβαιωμένο\":\n" +"- δεν βÏέθηκε έγκυÏη διεÏθυνση IP\n" +"- ελέγξτε το DHCP, την καλωδίωση και τη ÏÏθμιση του Ï€ÏοσαÏμογέα" + +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"Αυτό το τεστ ελέγχει αν ο Ï€ÏοσαÏμογέας LAN έχει Ïυθμιστεί να παίÏνει αυτόματη διεÏθυνση IP μέσω του DHCP.\n" +"Αν λάβετε το μήνυμα \"απενεÏγοποιημένο\":\n" +"- τότε ο Ï€ÏοσαÏμογέας είναι Ïυθμισμένος για χειÏοκίνητη IP\n" +"- βεβαιωθείτε ότι έχετε εισάγει τις σωστές τιμές IP στο Î¼ÎµÎ½Î¿Ï ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ·Ï‚ δικτÏου.\n" +"Αν λάβετε το μήνυμα \"ενεÏγοποιημένο\":\n" +"- βεβαιωθείτε ότι ο διακομιστής DHCP έχει Ïυθμιστεί και λειτουÏγεί σωστά στο δίκτυό σας." + +msgid "This test detects your configured LAN adapter." +msgstr "Αυτό το τεστ αναζητά την Ïυθμισμένη κάÏτα δικτÏου." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" +"Αυτό θα (επανα)υπολογίσει όλες τις θέσεις του Î¼Î¿Ï„Î­Ï ÏƒÎ±Ï‚ και μποÏεί να διαγÏάψει τις Ï€ÏοηγοÏμενες αποθηκευμένες θέσεις και μικÏοκινήσεις!\n" +"Είστε σίγουÏοι;" + +msgid "Three" +msgstr "ΤÏία" + +msgid "Threshold" +msgstr "ÎŒÏιο" + +msgid "Thu" +msgstr "Πέμ" + +msgid "Thumbnails" +msgstr "ΜικÏογÏαφίες" + +msgid "Thursday" +msgstr "Πέμπτη" + +msgid "Time" +msgstr "ΧÏόνος" + +msgid "Time scale" +msgstr "ΧÏονική κλιμάκωση" + +msgid "Timer" +msgstr "ΧÏονοδιακόπτης" + +msgid "Timer Overview" +msgstr "Επισκόπηση ΧÏονοδιακοπτών" + +msgid "Timer edit" +msgstr "ΕπεξεÏγασία χÏονοδιακόπτη" + +msgid "Timer editor" +msgstr "ΕπεξεÏγασία χÏονοδιακόπτη" + +msgid "Timer entry" +msgstr "Στοιχείο χÏονοδιακόπτη" + +msgid "Timer log" +msgstr "ΚαταγÏαφή χÏονοδιακόπτη" + +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"Εντοπίστηκε επικάλυψη χÏονοδιακόπτη στο timers.xml!\n" +"ΠαÏακαλώ ελέγξτε ξανά!" + +msgid "Timer overview" +msgstr "Επισκόπηση χÏονοδιακόπτη" + +msgid "Timer recording location" +msgstr "Τοποθεσία εγγÏαφής χÏονοδιακόπτη" + +msgid "Timer sanity error" +msgstr "Σφάλμα χÏονοδιακόπτη" + +msgid "Timer selection" +msgstr "Επιλογή χÏονοδιακόπτη" + +msgid "Timer selection..." +msgstr "Επιλογή χÏονοδιακόπτη..." + +msgid "Timer type" +msgstr "ΤÏπος χÏονοδιακόπτη" + +msgid "Timeshift" +msgstr "ΧÏονομετατόπιση" + +msgid "Timeshift Live" +msgstr "" + +msgid "Timeshift location" +msgstr "Τοποθεσία χÏονομετατόπισης" + +msgid "Timeshift not possible!" +msgstr "Αδυναμία χÏονομετατόπισης!" + +msgid "Timezone" +msgstr "ΧÏονική ζώνη" + +msgid "Title" +msgstr "Τίτλος" + +msgid "Title properties" +msgstr "Ιδιότητες τίτλου" + +msgid "Titleset mode" +msgstr "ΛειτουÏγία τιτλοδοσίας" + +msgid "To audio selection" +msgstr "Στην επιλογή ήχου" + +msgid "To subtitle selection" +msgstr "Στην επιλογή υποτίτλων" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" +"Για να ενημεÏώσετε το υλικολογισμικό του δέκτη, ακολουθήστε τα παÏακάτω βήματα:\n" +"1) Κλείστε το δέκτη μέσω του πλευÏÎ¹ÎºÎ¿Ï Î´Î¹Î±ÎºÏŒÏ€Ï„Î· Ï„Ïοφοδοσίας και βεβαιωθείτε ότι εισάγατε το USB στικ.\n" +"2) Ανοίξτε το διακόπτη και κÏατήστε πατημένο το πλήκτÏο ΚΑΤΩ στο εμπÏόσθιο πάνελ για 10 δευτεÏόλεπτα.\n" +"3) ΠεÏιμένετε την εκκίνηση και ακολουθήστε τα βήματα του οδηγοÏ." + +msgid "Today" +msgstr "ΣήμεÏα" + +msgid "Toggle a cut mark at the current position" +msgstr "Εναλλαγή σημειωτή αποκοπής στην Ï„Ïέχουσα θέση" + +msgid "Tone amplitude" +msgstr "Πλάτος τόνου" + +msgid "Tone mode" +msgstr "ΤÏπος τόνου" + +msgid "Toneburst" +msgstr "Ριπή τόνου" + +msgid "Toneburst A/B" +msgstr "Ριπή τόνου A/B" + +msgid "Top and bottom" +msgstr "Πάνω και Κάτω" + +msgid "Track" +msgstr "Κομμάτι" + +msgid "Translation" +msgstr "ΜετάφÏαση" + +msgid "Translation:" +msgstr "ΜετάφÏαση:" + +msgid "Translations" +msgstr "ΜεταφÏάσεις" + +msgid "Transmission mode" +msgstr "ΛειτουÏγία μετάδοσης" + +msgid "Transponder" +msgstr "Αναμεταδότης" + +msgid "Transponder type" +msgstr "ΤÏπος αναμεταδότη" + +msgid "Trash can" +msgstr "Κάδος αχÏήστων" + +msgid "Tries left:" +msgstr "ΠÏοσπάθειες που απομένουν:" + +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Αναζήτηση χÏησιμοποιοÏμενων αναμεταδοτών στο καλωδιακό δίκτυο... ΠαÏακαλώ πεÏιμένετε..." + +msgid "Trying to download a new packetlist. Please wait..." +msgstr "Λήψη νέας λίστας πακέτων. ΠαÏακαλώ πεÏιμένετε ..." + +msgid "Tue" +msgstr "ΤÏί" + +msgid "Tuesday" +msgstr "ΤÏίτη" + +msgid "Tune" +msgstr "Συντονισμός" + +msgid "Tune and focus" +msgstr "Συντονισμός και εστίαση" + +msgid "Tune failed!" +msgstr "Αποτυχία συντονισμοÏ!" + +msgid "Tuner" +msgstr "Tuner" + +msgid "Tuner configuration" +msgstr "ΡÏθμιση tuner" + +msgid "Tuner is not supported" +msgstr "Μη υποστηÏιζόμενο tuner" + +msgid "Tuner slot" +msgstr "Υποδοχή tuner" + +msgid "Tuner status" +msgstr "Κατάσταση tuner" + +#, python-format +msgid "Tuner status %s" +msgstr "Κατάσταση tuner %s" + +msgid "Tuner type" +msgstr "ΤÏπος tuner" + +msgid "Turkish" +msgstr "ΤοÏÏκικα" + +msgid "Turn on the power LED during standby." +msgstr "ΕνεÏγοποίηση LED κατά την αναμονή." + +msgid "Turning step size" +msgstr "Μέγεθος βήματος πεÏιστÏοφής" + +msgid "Two" +msgstr "ΔÏο" + +msgid "Type" +msgstr "ΤÏπος" + +msgid "Type of scan" +msgstr "ΤÏπος ανίχνευσης" + +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "Υπολογισμός USALS" + +msgid "USB stick" +msgstr "USB στικ" + +msgid "USB stick wizard" +msgstr "Οδηγός USB στικ" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Εκτελείται αναβάθμιση\n" +"ΠαÏακαλώ πεÏιμένετε μέχÏι την επανεκκίνηση του δέκτη\n" +"Αυτό μποÏεί να διαÏκέσει μεÏικά λεπτά" + +msgid "Undo install" +msgstr "ΑναίÏεση εγκατάστασης" + +msgid "Undo uninstall" +msgstr "ΑναίÏεση απεγκατάστασης" + +msgid "Unencrypted" +msgstr "ΧωÏίς κωδικοποίηση" + +msgid "UnhandledKey" +msgstr "Μη διαχειÏίσιμο πλήκτÏο" + +msgid "Unicable" +msgstr "Unicable" + +msgid "Unicable LNB" +msgstr "Unicable LNB" + +msgid "Unicable Martix" +msgstr "Unicable Martix" + +msgid "Uninstall" +msgstr "Απεγκατάσταση" + +msgid "Universal LNB" +msgstr "Universal LNB" + +msgid "Unknown" +msgstr "Άγνωστο" + +msgid "Unmount" +msgstr "ΑποπÏοσάÏτηση" + +msgid "Unsupported" +msgstr "Δεν υποστηÏίζεται" + +msgid "Update" +msgstr "ΕνημέÏωση" + +msgid "Update and ask to reboot" +msgstr "ΕνημέÏωση και εÏώτηση για επανεκκίνηση" + +msgid "Update and reboot (recommended)" +msgstr "ΕνημέÏωση και επανεκκίνηση (συνιστάται)" + +msgid "Update channel list only" +msgstr "ΕνημέÏωση της λίστας καναλιών μόνο" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "Η ενημέÏωση ολοκληÏώθηκε, %d πακέτο εγκαταστάθηκε." +msgstr[1] "Η ενημέÏωση ολοκληÏώθηκε, %d πακέτα εγκαταστάθηκαν." + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "Η ενημέÏωση ολοκληÏώθηκε. Θέλετε να επανεκκινήσετε τον δέκτη σας;" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "Η ενημέÏωση απέτυχε. Ο δέκτης σας δεν έχει ενεÏγή σÏνδεση στο διαδίκτυο." + +msgid "Update has completed." +msgstr "Η ενημέÏωση έχει ολοκληÏωθεί." + +msgid "Updatefeed not available." +msgstr "Η πηγή αναβάθμισης δεν είναι διαθέσιμη." + +msgid "Updating software catalog" +msgstr "ΕνημέÏωση καταλόγου λογισμικοÏ" + +msgid "Upgrading" +msgstr "Εκτελείται αναβάθμιση" + +msgid "Use" +msgstr "ΧÏήση" + +msgid "Use DHCP" +msgstr "ΧÏήση DHCP" + +msgid "Use EIT EPG information when it is available." +msgstr "ΧÏήση πληÏοφοÏιών EIT EPG όταν είναι διαθέσιμες." + +msgid "Use FreeSat EPG information when it is available." +msgstr "ΧÏήση πληÏοφοÏιών FreeSat EPG όταν είναι διαθέσιμες." + +msgid "Use MHW EPG information when it is available." +msgstr "ΧÏήση πληÏοφοÏιών MHW όταν είναι διαθέσιμες." + +msgid "Use Netmed EPG information when it is available." +msgstr "ΧÏήση πληÏοφοÏιών Netmed EPG όταν είναι διαθέσιμες." + +msgid "Use TV remote control" +msgstr "ΧÏήση τηλεχειÏιστηÏίου TV" + +msgid "Use USALS for this sat" +msgstr "ΧÏήση USALS για αυτόν το δοÏυφόÏο" + +msgid "Use ViaSat EPG information when it is available." +msgstr "ΧÏήση πληÏοφοÏιών ViaSat EPG όταν είναι διαθέσιμες." + +msgid "Use Virgin EPG information when it is available." +msgstr "ΧÏήση πληÏοφοÏιών Virgin EPG όταν είναι διαθέσιμες." + +msgid "Use a gateway" +msgstr "ΧÏήση Ï€Ïλης" + +msgid "Use fastscan channel names" +msgstr "ΧÏήση ονομάτων γÏήγοÏης ανίχνευσης" + +msgid "Use fastscan channel numbering" +msgstr "ΧÏήση αÏιθμοδότησης γÏήγοÏης ανίχνευσης" + +msgid "Use frequency or channel" +msgstr "ΧÏήση συχνότητας ή καναλιοÏ" + +msgid "Use individual settings for each directory" +msgstr "ΧÏήση ξεχωÏιστών Ïυθμίσεων για κάθε φάκελο" + +msgid "Use interface" +msgstr "ΧÏήση διεπαφής" + +msgid "Use official channel numbering" +msgstr "ΧÏήση της επίσημης αÏίθμησης των καναλιών" + +msgid "Use original DVB subtitle position" +msgstr "ΧÏήση αÏχικής θέσης υποτίτλων DVB" + +msgid "Use original teletext position" +msgstr "ΧÏήση αÏχικής θέσης τηλεκειμένου" + +msgid "Use power measurement" +msgstr "ΧÏήση μέτÏησης ισχÏος" + +msgid "Use the network wizard to configure selected network adapter" +msgstr "ΧÏήση του Î¿Î´Î·Î³Î¿Ï Î´Î¹ÎºÏ„Ïου για τη ÏÏθμιση της επιλεγμένης κάÏτας δικτÏου" + +msgid "Use the network wizard to configure your network\n" +msgstr "ΧÏήση Î¿Î´Î·Î³Î¿Ï Î´Î¹ÎºÏ„Ïου για τη ÏÏθμιση του δικτÏου\n" + +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "Πιέστε τα πλήκτÏα πάνω/κάτω του τηλεχειÏιστηÏίου για επιλογή. Μετά, πιέστε ΟΚ." + +msgid "Use the wizard to set up basic features" +msgstr "ΧÏήση Î¿Î´Î·Î³Î¿Ï Î³Î¹Î± τις απλές Ïυθμίσεις" + +msgid "Use these input device settings?" +msgstr "ΧÏήση αυτών των Ïυθμίσεων συσκευής εισόδου;" + +msgid "Use these settings?" +msgstr "ΧÏήση αυτών των Ïυθμίσεων;" + +msgid "Use this video enhancement settings?" +msgstr "ΧÏήση αυτών των Ïυθμίσεων βελτίωσης της εικόνας;" + +msgid "Use trash can in movielist" +msgstr "ΧÏήση του κάδου αχÏήστων στη λίστα ταινιών" + +msgid "Used service scan type" +msgstr "ΧÏησιμοποιημένος Ï„Ïπος ανίχνευσης υπηÏεσιών" + +msgid "User - bouquets" +msgstr "Μπουκέτα χÏήστη" + +msgid "User defined" +msgstr "ΟÏισμός από το χÏήστη" + +msgid "User defined transponder" +msgstr "ΧειÏοκίνητος αναμεταδότης" + +msgid "User interface" +msgstr "Ρυθμίσεις επιφάνειας χÏήστη" + +msgid "Username" +msgstr "Όνομα χÏήστη" + +#, python-format +msgid "Using LNB %d" +msgstr "ΧÏήση του LNB %d" + +msgid "Using fixed address" +msgstr "ΧÏήση σταθεÏής διεÏθυνσης" + +#, python-format +msgid "Using tuner %s" +msgstr "ΧÏήση του tuner %s" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "Συνήθως, όταν η γλώσσα υποτίτλων είναι η ίδια με την γλώσσα ήχου, οι υπότιτλοι δεν θα χÏησιμοποιηθοÏν. ΕνεÏγοποιήστε αυτή την επιλογή ώστε να επιτÏαπεί η χÏήση αυτών των υποτίτλων." + +msgid "VCR scart" +msgstr "VCR scart" + +msgid "VMGM (intro trailer)" +msgstr "VMGM (εντός Ï„ÏέιλεÏ)" + +msgid "Vertical" +msgstr "Κάθετη" + +msgid "Vertical turning speed" +msgstr "ΤαχÏτητα πεÏιστÏοφής σε κάθετη πόλωση" + +msgid "Video PID" +msgstr "PID εικόνας" + +msgid "Video enhancement preview" +msgstr "ΠÏοεπισκόπηση βελτίωσης εικόνας" + +msgid "Video enhancement settings" +msgstr "Ρυθμίσεις βελτίωσης εικόνας" + +msgid "Video enhancement setup" +msgstr "ΡÏθμιση βελτίωσης εικόνας" + +msgid "Video fine tuning" +msgstr "ΜικÏοÏÏθμιση οθόνης" + +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Επιλογή εισόδου εικόνας\n" +"\n" +"ΠαÏακαλώ πιέστε ΟΚ εάν μποÏείτε να δείτε αυτή τη σελίδα στην TV (ή επιλέξτε διαφοÏετική είσοδο).\n" +"\n" +"Η επόμενη είσοδος εικόνας θα εμφανιστεί αυτόματα σε 10 δευτεÏόλεπτα." + +msgid "Video mode selection." +msgstr "Επιλογή λειτουÏγίας εικόνας" + +msgid "Video output" +msgstr "Έξοδος εικόνας" + +msgid "Video setup" +msgstr "Ρυθμίσεις εικόνας" + +msgid "Video wizard" +msgstr "Οδηγός εικόνας" + +#, python-format +msgid "Video: %s fps" +msgstr "Βίντεο: %s fps" + +msgid "VideoMode" +msgstr "ΛειτουÏγία εικόνας" + +msgid "Videocodec" +msgstr "Κωδικοποιητής" + +msgid "Videoformat" +msgstr "Λόγος πλευÏών" + +msgid "Videosize" +msgstr "Μέγεθος εικόνας" + +msgid "View Rass interactive..." +msgstr "Εμφάνιση διαδÏÎ±ÏƒÏ„Î¹ÎºÎ¿Ï Rass..." + +msgid "View details" +msgstr "Εμφάνιση λεπτομεÏειών" + +msgid "View list of available " +msgstr "Εμφάνιση λίστας διαθέσιμων " + +msgid "View list of available CommonInterface extensions" +msgstr "Εμφάνιση λίστας διαθέσιμων επεκτάσεων Κοινής Διεπαφής" + +msgid "View list of available EPG extensions." +msgstr "Εμφάνιση λίστας διαθέσιμων επεκτάσεων EPG" + +msgid "View list of available Satellite equipment extensions." +msgstr "Εμφάνιση λίστας διαθέσιμων επεκτάσεων δοÏυφοÏÎ¹ÎºÎ¿Ï ÎµÎ¾Î¿Ï€Î»Î¹ÏƒÎ¼Î¿Ï" + +msgid "View list of available communication extensions." +msgstr "Εμφάνιση λίστας διαθέσιμων επεκτάσεων επικοινωνίας" + +msgid "View list of available default settings" +msgstr "Εμφάνιση λίστας διαθέσιμων επεκτάσεων αÏχικών Ïυθμίσεων." + +msgid "View list of available display and userinterface extensions." +msgstr "Εμφάνιση λίστας διαθέσιμων επεκτάσεων Οθόνης και Διεπαφής χÏήστη" + +msgid "View list of available multimedia extensions." +msgstr "Εμφάνιση λίστας διαθέσιμων επεκτάσεων πολυμέσων" + +msgid "View list of available networking extensions" +msgstr "Εμφάνιση λίστας διαθέσιμων επεκτάσεων δικτÏωσης" + +msgid "View list of available recording extensions" +msgstr "Εμφάνιση λίστας διαθέσιμων επεκτάσεων εγγÏαφών" + +msgid "View list of available skins" +msgstr "Εμφάνιση λίστας διαθέσιμων θεμάτων" + +msgid "View list of available software extensions" +msgstr "Εμφάνιση λίστας διαθέσιμων επεκτάσεων λογισμικοÏ" + +msgid "View list of available system extensions" +msgstr "Εμφάνιση λίστας διαθέσιμων επεκτάσεων συστήματος" + +msgid "View photos..." +msgstr "Εμφάνιση φωτογÏαφιών..." + +msgid "View teletext..." +msgstr "Εμφάνιση τηλεκειμένου..." + +msgid "View video CD..." +msgstr "ΠαÏακολοÏθηση video CD..." + +msgid "Virtual keyboard" +msgstr "Εικονικό πληκτÏολόγιο" + +msgid "Voltage mode" +msgstr "Tάση λειτουÏγίας" + +msgid "Volume" +msgstr "Ένταση" + +msgid "W" +msgstr "Δ" + +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "ΣÏνδεση WLAN" + +msgid "WPA" +msgstr "WPA" + +msgid "WPA or WPA2" +msgstr "WPA ή WPA2" + +msgid "WPA2" +msgstr "WPA2" + +msgid "WSS on 4:3" +msgstr "WSS σε 4:3" + +msgid "Waiting" +msgstr "Αναμονή" + +msgid "Waiting for mount" +msgstr "Αναμονή για Ï€ÏοσάÏτηση" + +msgid "Waiting for partition" +msgstr "Αναμονή για κατάτμηση" + +msgid "Wakeup" +msgstr "ΑφÏπνιση" + +msgid "Wakeup TV from standby" +msgstr "ΑφÏπνιση TV από αναμονή" + +msgid "Wakeup receiver for start timer" +msgstr "ΑφÏπνιση του δέκτη για χÏονοδιακόπτη εκκίνησης" + +msgid "Wakeup receiver from standby" +msgstr "ΑφÏπνιση δέκτη από αναμονή" + +msgid "Wakeup signal from TV" +msgstr "Σήμα αφÏπνισης από TV" + +msgid "Wakeup type" +msgstr "ΤÏπος αφÏπνισης" + +msgid "Warning: no LNB; using factory defaults." +msgstr "ΠÏοσοχή: δεν υπάÏχει LNB, χÏήση των εÏγοστασιακών Ïυθμίσεων." + +msgid "Watch movies..." +msgstr "ΑναπαÏαγωγή ταινιών..." + +msgid "Watch recordings..." +msgstr "ΠαÏακολοÏθηση εγγÏαφών..." + +msgid "Wed" +msgstr "Τετ" + +msgid "Wednesday" +msgstr "ΤετάÏτη" + +msgid "Weekday" +msgstr "ΚαθημεÏινή" + +msgid "Weighted position" +msgstr "Σταθμισμένη θέση" + +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"Καλώς οÏίσατε στο ΕπεξεÏγαστή Σημείων Αποκοπής.\n" +"\n" +"Αναζητήστε την αÏχή του τμήματος που θέλετε να διαγÏάψετε. Πιέστε ΟΚ, επιλέξτε \"αÏχή αποκοπής\".\n" +"\n" +"Στη συνέχεια αναζητήστε το τέλος του τμήματος, πιέστε ΟΚ, επιλέξτε \"τέλος αποκοπής\". Αυτό ήταν!" + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "ΚαλωσοÏίσατε στον οδηγό αναβάθμισης λογισμικοÏ. Αυτός ο οδηγός θα σας βοηθήσει να αναβαθμίσετε το υλικολογισμικό του δέκτη, παÏέχοντας ευκολίες εφεδÏείας για τις Ï„Ïέχουσες Ïυθμίσεις σας και μια σÏντομη επεξήγηση για το πώς να αναβαθμίσετε το υλικολογισμικό." + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" +"Καλώς ήÏθατε.\n" +"\n" +"Αν θέλετε να συνδέσετε το δέκτη σας στο Internet, αυτός ο οδηγός θα σας καθοδηγήσει στις βασικές Ïυθμίσεις του δικτÏου του δέκτη σας.\n" +"\n" +"Πατήστε OK για να ξεκινήσετε τη ÏÏθμιση του δικτÏου σας" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" +"Καλώς ήÏθατε. \n" +"\n" +"Αυτός ο οδηγός εκκίνησης θα σας καθοδηγήσει στις βασικές Ïυθμίσεις του δέκτη σας.\n" +"Πατήστε το πλήκτÏο OK στο τηλεχειÏιστήÏιο για να Ï€ÏοχωÏήσετε στο επόμενο βήμα." + +msgid "Welcome..." +msgstr "Καλώς οÏίσατε..." + +msgid "West" +msgstr "Δυτικά" + +msgid "West limit set" +msgstr "Δυτικό ÏŒÏιο" + +msgid "What do you want to scan?" +msgstr "Τι θέλετε να ανιχνεÏσετε;" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "Όταν είναι ενεÏγό, το PiP μποÏεί να τεÏματιστεί με το πλήκτÏο εξόδου." + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "Όταν είναι ενεÏγό, μποÏείτε να οÏίσετε ένα χÏονοπλαίσιο αγνόησης του χÏονοδιακόπτη τεÏÎ¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï ÏŒÏ„Î±Î½ ο δέκτης βÏίσκεται σε αναμονή" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "Όταν είναι ενεÏγό, μποÏείτε να οÏίσετε το μεσοδιάστημα στο οποίο θα αγνοείται η αδÏάνεια του χÏονοδιακόπτη. Ο εντοπισμός δεν απενεÏγοποιείται σε αυτό το διάστημα αλλά ο χÏόνος λήξης της αδÏάνειας." + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "Όταν είναι ενεÏγό, μποÏείτε να μεταβαίνετε στα κανάλια με τα πλήκτÏα CH+/-, B+/-, P+/- αντί να ανοίγετε τη λίστα επιλογής καναλιών." + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "Όταν είναι ενεÏγό, η μετάβαση στη λίστα επιλογής καναλιών γίνεται με το ΟΚ και η μπάÏα πληÏοφοÏιών μεταφέÏεται στο πλήκτÏο εξόδου" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "Όταν είναι ενεÏγό, τα AIT δεδομένα θα πεÏιλαμβάνονται στις Ïοές http. Αυτό επιτÏέπει σε ένα δέκτη - πελάτη να χÏησιμοποιήσει το HbbTV." + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "Όταν είναι ενεÏγό, τα ECM δεδομένα θα πεÏιλαμβάνονται στις Ïοές http. Αυτό επιτÏέπει σε ένα δέκτη - πελάτη να κάνει την αποκÏυπτογÏάφηση." + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "Όταν είναι ενεÏγό, τα ΕΙΤ δεδομένα θα πεÏιλαμβάνονται στις Ïοές http. Αυτό επιτÏέπει σε ένα δέκτη - πελάτη vα εμφανίσει EPG." + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "Όταν είναι ενεÏγό, ένα αναδυόμενο μήνυμα θα εμφανίζεται όταν μια ταινία έχει τελειώσει και αÏχίζει η επόμενη." + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "Όταν είναι ενεÏγό, ένα αναδυόμενο μήνυμα θα εμφανίζεται όταν ξεκινά μια εγγÏαφή." + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "Όταν είναι ενεÏγό, μια εικόνα φόντου Ïαδιοφώνου θα είναι οÏατή, ενώ ακοÏτε ένα Ïαδιοφωνικό σταθμό." + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "Όταν είναι ενεÏγό, μία εγγÏαφή θα επιτÏέπεται να διακόψει την TV, όταν δεν υπάÏχουν ελεÏθεÏα tuners." + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "Όταν είναι ενεÏγό, θα εμφανίζεται μία Ï€Ïοειδοποίηση και ο χÏήστης θα έχει την επιλογή να σταματήσει ή να συνεχίσει τη χÏονομετατόπιση." + +msgid "When enabled, authentication is required to watch http streams." +msgstr "Όταν είναι ενεÏγό, απαιτείται πιστοποίηση για την παÏακολοÏθηση Ïοών http." + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "Όταν είναι ενεÏγό, η αÏίθμηση των καναλιών θα ξεκινά από το '1' για κάθε μπουκέτο." + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "Όταν είναι ενεÏγό, πεÏιεχόμενο με λόγο πλευÏών 4:3 θα επεκταθεί ώστε να ταιÏιάξει στην οθόνη." + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "Όταν είναι ενεÏγό, θα μεταβείτε στο επόμενο μπουκέτο όταν έχετε φτάσει στο τελευταίο κανάλι του Ï„Ïέχοντος κατά το ζάπινγκ." + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "Όταν είναι ενεÏγό, οι διαγÏαμμένες εγγÏαφές μετακινοÏνται στον κάδο αχÏήστων, αντί να διαγÏάφονται άμεσα." + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "Όταν είναι ενεÏγό, οι πληÏοφοÏίες ΕΙΤ Ï„ÏŽÏα/επόμενο θα εμφανίζονται στη μπάÏα πληÏοφοÏιών. Αν είναι ανενεÏγό, θα εμφανίζονται από το αποθηκευμένο EPG." + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "Όταν είναι ενεÏγό, οι πληÏοφοÏίες κÏυπτογÏάφησης θα εμφανίζονται στην μπάÏα πληÏοφοÏιών (όταν υποστηÏίζεται από το θέμα)." + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "Όταν είναι ενεÏγό, δεν θα εμφανίζονται τα μηνÏματα σφάλματος από την Κοινή Διεπαφή." + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "Όταν είναι ενεÏγό, δεν θα εμφανίζονται τα μηνÏματα σφάλματος κατά το ζάπινγκ." + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "Όταν είναι ενεÏγό, οι εξωτεÏικοί υπότιτλοι θα εμφανίζονται πάντα κατά την αναπαÏαγωγή." + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "Όταν είναι ενεÏγό, οι γÏαφικοί υπότιτλοι DVB θα Ï€Ïοτιμώνται αντί αυτών του τηλεκειμένου, όταν και οι δÏο είναι διαθέσιμοι." + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "Όταν είναι ενεÏγό, οι γÏαφικοί υπότιτλοι DVB θα κεντÏάÏονται οÏιζόντια." + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "Όταν είναι ενεÏγό, οι γÏαφικοί υπότιτλοι DVB θα εμφανίζονται στην αÏχική τους θέση." + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "Όταν είναι ενεÏγό, οι γÏαφικοί υπότιτλοι DVB θα εμφανίζονται σε κίτÏινο χÏώμα αντί του ÎºÎ±Î½Î¿Î½Î¹ÎºÎ¿Ï Ï„Î¿Ï…Ï‚." + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "Όταν είναι ενεÏγό, οι Ïοές http θα αποκωδικοποιοÏνται από μεÏιά του διακομιστή. Ο (απομακÏυσμένος) πελάτης δεν θα απαιτείται να κάνει αποκÏυπτογÏάφηση." + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "Όταν είναι ενεÏγό, είναι δυνατή η έξοδος από την αναπαÏαγωγή ταινιών με το πλήκτÏο εξόδου." + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "Όταν είναι ενεÏγό, θα μετÏάται η κατανάλωση ενέÏγειας για να εντοπιστεί το σταμάτημα κίνησης του Î¼Î¿Ï„Î­Ï (όταν υποστηÏίζεται από το tuner)." + +msgid "When enabled, number markers will be hiden." +msgstr "Όταν είναι ενεÏγό, δεν θα εμφανίζονται οι σημειωτές των αÏιθμών." + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "Όταν είναι ενεÏγό, οι υπηÏεσίες μποÏοÏν να ομαδοποιηθοÏν σε πολλαπλά μπουκέτα." + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "Όταν είναι ενεÏγό, οι αÏιθμοί των καναλιών θα εμφανίζονται στη λίστα επιλογής καναλιών." + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "Όταν είναι ενεÏγό, μποÏεί να χÏησιμοποιηθοÏν υπότιτλοι για άτομα με Ï€Ïοβλήματα ακοής ." + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "Όταν είναι ενεÏγό, οι υπότιτλοι για άτομα με Ï€Ïοβλήματα ακοής θα Ï€Ïοτιμώνται έναντι των φυσιολογικών υποτίτλων, όταν και οι δÏο Ï„Ïποι είναι διαθέσιμοι." + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "Όταν είναι ενεÏγό, οι σελίδες τηλεκειμένου θα αποθηκεÏονται Ï€ÏοσωÏινά, επιτÏέποντας την ταχÏτεÏη Ï€Ïόσβαση." + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "Όταν είναι ενεÏγό, οι υπότιτλοι τηλεκειμένου θα εμφανίζονται στην αÏχική τους θέση." + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "Όταν είναι ενεÏγό, η επιλογή VCR scart θα εμφανίζεται στο κÏÏιο μενοÏ" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "Όταν είναι ενεÏγό, η λίστα επιλογής καναλιών δεν θα εμφανίζεται κατά την ακÏόαση Ïαδιοφώνου." + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "Όταν είναι ενεÏγό, η μπάÏα πληÏοφοÏιών θα εμφανίζεται όταν ένα νέο Ï€ÏόγÏαμμα αÏχίζει." + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "Όταν είναι ενεÏγό, η μπάÏα πληÏοφοÏιών θα εμφανίζεται κατά την αλλαγή καναλιών." + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "Όταν είναι ενεÏγό, η μπάÏα πληÏοφοÏιών θα εμφανίζεται κατά την υπεÏπήδηση μπÏοστά/πίσω στην αναπαÏαγωγή πολυμέσων." + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "Όταν είναι ενεÏγό, η διάÏκεια κάθε εγγÏαφής θα εμφανίζεται στη λίστα (μποÏεί να αυξηθεί ο χÏόνος φόÏτωσης)." + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "Όταν είναι ενεÏγό, οι αÏχικές αλλαγές γÏαμμής θα αφαιÏοÏνται από τους υπότιτλους τηλεκειμένου." + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "Όταν είναι ενεÏγό, ο δέκτης θα χÏησιμοποιεί αυτόματα το κανάλι ήχου που είχατε Ï€Ïοεπιλέξει." + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "Όταν είναι ενεÏγό, ο δέκτης θα χÏησιμοποιεί τους υπότιτλους που είχατε Ï€Ïοεπιλέξει." + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "Όταν είναι ενεÏγό, ο δέκτης δεν θα ελέγχει πλέον το συντονισμένο αναμεταδότη για πιθανές αλλαγές. Μην αλλάζετε αυτή την επιλογή αν δεν ξέÏετε τι κάνετε." + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "Όταν είναι ενεÏγό, ο δέκτης θα επιλέγει έναν ήχο AC3 (όταν είναι διαθέσιμος)." + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "Όταν είναι ενεÏγό, ο δέκτης θα επιλέγει έναν ήχο AC3+ (όταν είναι διαθέσιμος)." + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "Όταν είναι ενεÏγό, η χÏονομετατόπιση θα ξεκινά αυτόματα στο παÏασκήνιο μετά από οÏισμένο χÏόνο." + +msgid "When enabled, use DHCP for the IP configuration." +msgstr "Όταν είναι ενεÏγό, θα γίνεται χÏήση του DHCP για τη ÏÏθμιση IP." + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "Όταν είναι ενεÏγό, ο δέκτης θα εντοπίζει δÏαστηÏιότητα στην είσοδο του VCR SCART." + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "Όταν δεν είναι μηδέν, μία εγγÏαφή θα ξεκινά νωÏίτεÏα από την ÏŽÏα που αναγÏάφεται στο EPG." + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "Όταν δεν είναι μηδέν, μία εγγÏαφή θα σταματά μετά την ÏŽÏα που αναγÏάφεται στο EPG." + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "Όταν το πεÏιεχόμενο έχει λόγο πλευÏών 16:9, επιλέξτε αν θα γίνεται κλιμάκωση/άπλωμα της εικόνας." + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "Όταν το πεÏιεχόμενο έχει λόγο πλευÏών 4:3, επιλέξτε αν θα γίνεται κλιμάκωση/άπλωμα της εικόνας." + +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"Με την επαναφοÏά, θα χάσετε ΟΛΑ τα δεδομένα Ïυθμίσεων\n" +"(συμπεÏιλαμβάνονται μπουκέτα, υπηÏεσίες, δοÏυφόÏοι...)\n" +"Με την ολοκλήÏωση της επαναφοÏάς, ο δέκτης θα επανεκκινηθεί αυτόματα!\n" +"\n" +"Θέλετε σίγουÏα να γίνει η επαναφοÏά στις εÏγοστασιακές Ïυθμίσεις;" + +msgid "Where do you want to backup your settings?" +msgstr "Που θέλετε να γίνει η αντιγÏαφή των Ïυθμίσεων;" + +msgid "Where to save temporary timeshift recordings?" +msgstr "Που θέλετε να αποθηκεÏονται Ï€ÏοσωÏινά οι χÏονομετατοπισμένες εγγÏαφές;" + +msgid "Wireless LAN" +msgstr "ΑσÏÏματο δίκτυο" + +msgid "Wireless network" +msgstr "ΑσÏÏματο δίκτυο" + +msgid "Wireless network configuration..." +msgstr "ΡÏθμιση σÏνδεσης ασÏÏματου δικτÏου..." + +msgid "Wireless network connection setup" +msgstr "ΡÏθμιση σÏνδεσης ασÏÏματου δικτÏου" + +msgid "Wireless network connection setup." +msgstr "ΡÏθμιση σÏνδεσης ασÏÏματου δικτÏου." + +msgid "Wireless network state" +msgstr "Κατάσταση ασÏÏματου δικτÏου" + +msgid "With popup" +msgstr "Με αναδυόμενο παÏάθυÏο" + +msgid "Without popup" +msgstr "ΧωÏίς αναδυόμενο παÏάθυÏο" + +msgid "Would you like to install a softcam?" +msgstr "Θέλετε να εγκαταστήσετε ένα Softcam;" + +msgid "Write error while recording. Disk full?\n" +msgstr "Σφάλμα κατά την εγγÏαφή. Δίσκος γεμάτος;\n" + +msgid "Write failed!" +msgstr "Η εγγÏαφή απέτυχε!" + +msgid "YPbPr" +msgstr "YPbPr" + +msgid "Year" +msgstr "Έτος" + +msgid "Yellow DVB subtitles" +msgstr "ΚίτÏινοι υπότιτλοι" + +msgid "Yes" +msgstr "Îαι" + +msgid "Yes and save" +msgstr "Îαι και αποθήκευση" + +msgid "Yes and save in movie dir" +msgstr "Îαι και αποθήκευση στο φάκελο ταινιών" + +msgid "Yes to all" +msgstr "Îαι σε όλα" + +msgid "Yes, always" +msgstr "Îαι, πάντα" + +msgid "Yes, and delete this movie" +msgstr "Îαι, και διαγÏαφή αυτής της ταινίας" + +msgid "Yes, backup my settings!" +msgstr "Îαι, να δημιουÏγηθεί αντίγÏαφο των Ïυθμίσεων!" + +msgid "Yes, delete this movie and return to movie list" +msgstr "Îαι, διαγÏαφή της ταινίας και επιστÏοφή στη λίστα" + +msgid "Yes, do a manual scan now" +msgstr "Îαι, να γίνει χειÏοκίνητη ανίχνευση Ï„ÏŽÏα" + +msgid "Yes, do an automatic scan now" +msgstr "Îαι, να γίνει αυτόματη ανίχνευση Ï„ÏŽÏα" + +msgid "Yes, do another manual scan now" +msgstr "Îαι, να γίνει ακόμα μία χειÏοκίνητη ανίχνευση Ï„ÏŽÏα" + +msgid "Yes, perform a shutdown now." +msgstr "Îαι, τεÏματισμός Ï„ÏŽÏα." + +msgid "Yes, restore the settings now" +msgstr "Îαι, επαναφοÏά Ïυθμίσεων Ï„ÏŽÏα" + +msgid "Yes, returning to movie list" +msgstr "Îαι, επιστÏοφή στη λίστα ταινιών" + +msgid "Yesterday" +msgstr "Χθες" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" +"Έχετε ήδη εγκατεστημένη μία λίστα καναλιών,\n" +"θέλετε να διαγÏάψετε\n" +"\"%s\";" + +msgid "You can cancel the installation." +msgstr "ΜποÏείτε να ακυÏώσετε την εγκατάσταση." + +msgid "You can cancel the removal." +msgstr "ΜποÏείτε να ακυÏώσετε τη διαγÏαφή." + +msgid "You can continue watching TV etc. while this is running." +msgstr "ΜποÏείτε να συνεχίσετε να βλέπετε TV κλπ όσο αυτό εκτελείται." + +msgid "You can install this plugin." +msgstr "ΜποÏείτε να εγκαταστήσετε αυτό το Ï€Ïόσθετο." + +msgid "You can only burn receiver recordings!" +msgstr "ΜποÏείτε μόνο να κάψετε εγγÏαφές του δέκτη!" + +msgid "You can remove this plugin." +msgstr "ΜποÏείτε να διαγÏάψετε το Ï€Ïόσθετο." + +msgid "You cannot delete this!" +msgstr "Δεν μποÏετε να διαγÏάψτε αυτό!" + +msgid "You didn't select a channel to record from." +msgstr "Δεν επιλέξατε κανάλι για εγγÏαφή." + +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "Επιλέξατε να κÏατηθεί αντίγÏαφο ασφαλείας των Ïυθμίσεων. Πιέστε ΟΚ για να ξεκινήσει η διαδικασία Ï„ÏŽÏα." + +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "Επιλέξατε να δημιουÏγήσετε νέο εκκινήσιμο USB στικ για εγκατάσταση NFI. Θα γίνει εκ νέου κατάτμηση του usb στικ και όλα τα δεδομένα σε αυτό θα χαθοÏν." + +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "Επιλέξατε επαναφοÏά των Ïυθμίσεων. Το Enigma2 θα επανεκκινηθεί μετά την επαναφοÏά. Πιέστε ΟΚ για να ξεκινήσει η διαδικασία Ï„ÏŽÏα." + +#, python-format +msgid "You have to wait %s!" +msgstr "ΠεÏιμένετε για το %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "Απαιτείται ένα PC συνδεδεμένο με το δέκτη. Αν χÏειάζεστε πεÏισσότεÏες οδηγίες, παÏακαλοÏμε επισκεφτείτε τον ιστότοπο http://www.dm7025.de. Ο δέκτης σας Ï„ÏŽÏα θα σταματήσει. Αν έχετε ακολουθήσει τις οδηγίες από τον ιστότοπο, το νέο υλικολογισμικό θα ζητήσει να επαναφέÏετε τις Ïυθμίσεις σας." + +msgid "You system does not support ext4" +msgstr "Το σÏστημά σας δεν υποστηÏίζει ext4" + +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "Το αντίγÏαφο ασφαλείας ολοκληÏώθηκε. Ση συνέχεια θα επεξηγηθεί η υπόλοιπη διαδικασία." + +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "Η συλλογή σας υπεÏβαίνει το μέγεθος ενός DVD μονής στÏώσης. Θα χÏειαστείτε ένα κενό DVD διπλής στÏώσης!" + +msgid "Your current collection will get lost!" +msgstr "Η Ï„Ïέχουσα συλλογή σας θα χαθεί!" + +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"Το λογισμικό του frontprocessor Ï€Ïέπει να αναβαθμιστεί\n" +"Πιέστε ΟΚ για την αναβάθμιση." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Ο δέκτης σας θα αναβαθμιστεί\n" +"ΠαÏακαλώ πεÏιμένετε μέχÏι την επανεκκίνηση του δέκτη σας\n" +"Αυτό μποÏεί να διαÏκέσει μεÏικά λεπτά" + +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "Η σÏνδεση στο διαδίκτυο δεν λειτουÏγεί! Επιλέξτε τι θέλετε να ακολουθήσει." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "Η σÏνδεση στο διαδίκτυο λειτουÏγεί (ip: %s)" + +msgid "Your network configuration has been activated." +msgstr "Η ÏÏθμιση του δικτÏου σας ενεÏγοποιήθηκε." + +msgid "Your receiver does not have an internet connection" +msgstr "Ο δέκτης σας δεν διαθέτει σÏνδεση στο διαδίκτυο" + +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"Ο δέκτης σας είναι Ï„ÏŽÏα έτοιμος για χÏήση.\n" +"\n" +"Η σÏνδεση με το διαδίκτυο λειτουÏγεί.\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Ο δέκτης σας είναι πλέον έτοιμος για χÏήση. \n" +"\n" +"Η σÏνδεσή σας στο διαδίκτυο λειτουÏγεί Ï„ÏŽÏα. \n" +"\n" +"ΠαÏακαλώ πατήστε OK για να συνεχίσετε." + +msgid "Your receiver is rebooting" +msgstr "Γίνεται επανεκκίνηση του δέκτη σας" + +msgid "Your receiver is shutting down" +msgstr "Ο δέκτης σας απενεÏγοποιείται" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "Ο δέκτης σας απενεÏγοποιείται. ΠαÏακαλώ πεÏιμένετε..." + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "Ο δέκτης σας ίσως να μη μποÏεί να χÏησιμοποιηθεί. ΠαÏακαλοÏμε ανατÏέξτε στο εγχειÏίδιο για πεÏισσότεÏη βοήθεια Ï€Ïιν κάνετε επανεκκίνηση." + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "Ο δέκτης σας θα μεταβεί σε αναμονή εξαιτίας του χÏονοδιακόπτη Ïπνου." + +msgid "Your receiver will got to standby due to inactivity." +msgstr "Ο δέκτης σας θα μεταβεί σε αναμονή εξαιτίας της αδÏάνειας." + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "Ο δέκτης σας θα επανεκκινηθεί πατώντας το OK στο τηλεχειÏιστήÏιο." + +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"Αδυναμία εκκίνησης της ασÏÏματης σÏνδεσης δικτÏου!\n" +"Έχετε συνδέσει το USB στικ;\n" +"\n" +"Επιλέξτε τι θέλετε να γίνει μετά." + +msgid "Zap" +msgstr "Μετάβαση" + +msgid "Zap back to previously tuned service?" +msgstr "ΕπιστÏοφή στην Ï€ÏοηγοÏμενη υπηÏεσία;" + +msgid "Zap back to service before positioner setup?" +msgstr "ΕπιστÏοφή στην υπηÏεσία Ï€Ïιν τη ÏÏθμιση του μοτέÏ;" + +msgid "Zap back to service before tuner setup?" +msgstr "EπιστÏοφή στην υπηÏεσία Ï€Ïιν τη ÏÏθμιση του tuner;" + +msgid "Zap focus to Picture in Picture" +msgstr "Μετάβαση εστίασης σε Εικόνα σε Εικόνα" + +msgid "Zap focus to main screen" +msgstr "Μετάβαση εστίασης στην κÏÏια οθόνη" + +msgid "Zap mode" +msgstr "ΛειτουÏγία μετάβασης" + +msgid "Zap to selected channel" +msgstr "Μετάβαση στο επιλεγμένο κανάλι" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "Μετάβαση στο επιλεγμένο κανάλι, ή εμφάνιση αναλυτικών πληÏοφοÏιών γεγονοτός (εξαÏτάται από την ÏÏθμιση)" + +msgid "[alternative edit]" +msgstr "[επεξεÏγασία εναλλακτικών]" + +msgid "[bouquet edit]" +msgstr "[επεξεÏγασία μπουκέτου]" + +msgid "[favourite edit]" +msgstr "[επεξεÏγασία αγαπημένου]" + +msgid "[move mode]" +msgstr "[κατάσταση μεταφοÏάς]" + +msgid "a gui to assign services/providers to common interface modules" +msgstr "γÏαφικό πεÏιβάλλον για οÏισμό υπηÏεσιών/παÏόχων σε κοινή διεπαφή" + +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "γÏαφικό πεÏιβάλλον για ανάθεση υπηÏεσιών/παÏόχων/caids σε κοινή διεπαφή" + +msgid "abort alternatives edit" +msgstr "ακÏÏωση εναλλακτικής επεξεÏγασίας" + +msgid "abort bouquet edit" +msgstr "ακÏÏωση επεξεÏγασίας μπουκέτου" + +msgid "abort favourites edit" +msgstr "ακÏÏωση επεξεÏγασίας αγαπημένων" + +msgid "about to start" +msgstr "έτοιμο για εκκίνηση" + +msgid "activate network adapter configuration" +msgstr "ενεÏγοποίηση ÏÏθμισης κάÏτας δικτÏου" + +msgid "add alternatives" +msgstr "Ï€Ïοσθήκη εναλλακτικών" + +msgid "add bookmark" +msgstr "Ï€Ïοσθήκη σελιδοδείκτη" + +msgid "add bouquet" +msgstr "Ï€Ïοσθήκη μπουκέτου" + +msgid "add marker" +msgstr "Ï€Ïοσθήκη σημειωτή" + +msgid "add service to bouquet" +msgstr "Ï€Ïοσθήκη υπηÏεσίας σε μπουκέτο" + +msgid "add service to favourites" +msgstr "Ï€Ïοσθήκη υπηÏεσίας στα αγαπημένα" + +msgid "add to parental protection" +msgstr "Ï€Ïοσθήκη στο γονικό έλεγχο" + +msgid "adult movie/drama" +msgstr "ταινία ενηλίκων/δÏάμα" + +msgid "advanced" +msgstr "Ï€ÏοχωÏημένο" + +msgid "adventure/western/war" +msgstr "πεÏιπέτεια/γουέστεÏν/πόλεμος" + +msgid "advertisement/shopping" +msgstr "διαφήμιση/αγοÏές" + +msgid "after " +msgstr "μετά" + +msgid "alphabetic" +msgstr "αλφαβητικά" + +msgid "alphabetic reverse" +msgstr "αλφαβητική αντιστÏοφή" + +msgid "alternative" +msgstr "εναλλασσόμενο" + +msgid "always" +msgstr "πάντα" + +msgid "and select next channel" +msgstr "και επιλογή του επόμενου καναλιοÏ" + +msgid "and select previous channel" +msgstr "και επιλογή του Ï€ÏοηγοÏμενου καναλιοÏ" + +msgid "arts/culture (without music, general)" +msgstr "τέχνες/πολιτισμός (χωÏίς μουσική, γενικά)" + +msgid "arts/culture magazine" +msgstr "τέχνες/πολιτιστικό μαγκαζίνο" + +msgid "athletics" +msgstr "αθλητισμός" + +msgid "audio tracks" +msgstr "κομμάτια ήχου" + +msgid "auto" +msgstr "αυτόματο" + +msgid "automatic" +msgstr "αυτόματο" + +msgid "back" +msgstr "πίσω" + +msgid "background image" +msgstr "εικόνα φόντου" + +msgid "ballet" +msgstr "μπαλέτο" + +#, python-format +msgid "bc%s" +msgstr "bc%s" + +msgid "better" +msgstr "καλÏτεÏα" + +msgid "black" +msgstr "μαÏÏο" + +msgid "black & white" +msgstr "άσπÏο & μαÏÏο" + +msgid "blacklist" +msgstr "μαÏÏη λίστα" + +msgid "blue" +msgstr "μπλε" + +msgid "broadcasting/press" +msgstr "μεταδόσεις/Ï„Ïπος" + +msgid "by date" +msgstr "κατά ημεÏομηνία" + +msgid "cartoon/puppets" +msgstr "καÏτοÏν/μαÏιονέτες" + +msgid "center" +msgstr "κέντÏο" + +msgid "centered" +msgstr "στο κέντÏο" + +msgid "centered, wrapped" +msgstr "στο κέντÏο, σε αναδίπλωση" + +msgid "chapters" +msgstr "κεφάλαια" + +msgid "childrens's/youth program (general)" +msgstr "παδικά/νεανικό Ï€ÏόγÏαμμα (γενικά)" + +msgid "circular left" +msgstr "αÏιστεÏόστÏοφη" + +msgid "circular right" +msgstr "δεξιόστÏοφη" + +msgid "comedy" +msgstr "κωμωδία" + +msgid "complex" +msgstr "σÏνθετο" + +msgid "config menu" +msgstr "Î¼ÎµÎ½Î¿Ï ÏÏθμισης" + +msgid "confirmed" +msgstr "επιβεβαιωμένο" + +msgid "connected" +msgstr "συνδεδεμένο" + +msgid "continue" +msgstr "συνέχεια" + +msgid "cooking" +msgstr "μαγειÏική" + +msgid "copy to bouquets" +msgstr "αντιγÏαφή στα μπουκέτα" + +msgid "create directory" +msgstr "δημιουÏγία φακέλου" + +#, python-format +msgid "currently installed image: %s" +msgstr "εγκατεστημένο λογισμικό: %s" + +msgid "daily" +msgstr "καθημεÏινά" + +msgid "day" +msgstr "ημέÏα" + +msgid "default" +msgstr "Ï€Ïοεπιλεγμένο" + +msgid "delete cut" +msgstr "διαγÏαφή αποκοπής" + +msgid "delete..." +msgstr "διαγÏαφή..." + +msgid "descramble and record ecm" +msgstr "αποκωδικοποίηση και εγγÏαφή ecm" + +msgid "detective/thriller" +msgstr "αστυνομικά/θÏίλεÏ" + +msgid "disable" +msgstr "απενεÏγοποίηση" + +msgid "disable move mode" +msgstr "απενεÏγοποίηση κατάστασης μεταφοÏάς" + +msgid "disabled" +msgstr "απεÏγοποιημένο" + +msgid "disconnected" +msgstr "αποσυνδεδεμένο" + +msgid "discussion/interview/debate" +msgstr "συζητήσεις/συνέντευξη/ντιμπέιτ" + +msgid "do nothing" +msgstr "να μη γίνει τίποτα" + +msgid "documentary" +msgstr "ντοκυμαντέÏ" + +msgid "don't descramble, record ecm" +msgstr "μη αποκωδικοποίηση, εγγÏαφή ecm" + +msgid "done!" +msgstr "ολοκληÏώθηκε!" + +msgid "east" +msgstr "ανατολικά" + +msgid "economics/social advisory" +msgstr "οικονομία/κοινωνική συμβουλευτική" + +msgid "edit alternatives" +msgstr "επεξεÏγασία εναλλακτικών" + +msgid "education/science/factual topics (general)" +msgstr "εκπαίδευση/επιστήμη/Ï€Ïαγματικά θέματα (γενικά)" + +msgid "empty" +msgstr "κενό" + +msgid "enable" +msgstr "ενεÏγοποίηση" + +msgid "enable bouquet edit" +msgstr "ενεÏγοποίηση επεξεÏγασίας μπουκέτων" + +msgid "enable favourite edit" +msgstr "ενεÏγοποίηση επεξεÏγασίας αγαπημένων" + +msgid "enable move mode" +msgstr "ενεÏγοποίηση κατάστασης μεταφοÏάς" + +msgid "enabled" +msgstr "ενεÏγοποιημένο" + +msgid "end alternatives edit" +msgstr "τέλος επεξεÏγασίας εναλλακτικών" + +msgid "end bouquet edit" +msgstr "τέλος επεξεÏγασίας μπουκέτου" + +msgid "end cut here" +msgstr "τέλος αποκοπής εδώ" + +msgid "end favourites edit" +msgstr "τέλος επεξεÏγασίας αγαπημένων" + +msgid "entertainment (10-16 year old)" +msgstr "ψυχαγωγία (10-16 ετών)" + +msgid "entertainment (6-14 year old)" +msgstr "ψυχαγωγία (6-14 ετών)" + +msgid "equal to" +msgstr "ίσο με" + +msgid "equestrian" +msgstr "ιπποδÏομίες" + +msgid "exit DVD player or return to file browser" +msgstr "έξοδος απο την αναπαÏαγωγή DVD ή επιστÏοφή στον πλοηγό αÏχείων" + +msgid "exit movielist" +msgstr "έξοδος από τη λίστα ταινιών" + +msgid "exit network adapter configuration" +msgstr "έξοδος από ÏÏθμιση Ï€ÏοσαÏμογέα δικτÏου" + +msgid "exit networkadapter setup menu" +msgstr "έξοδος από Î¼ÎµÎ½Î¿Ï Ïυθμίσεων Ï€ÏοσαÏμογέα δικτÏου" + +msgid "experimental film/video" +msgstr "πειÏαματικές ταινίες/βίντεο" + +msgid "false" +msgstr "ψευδές" + +msgid "fashion" +msgstr "μόδα" + +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "Ï„Ïποι αÏχείων (BMP, PNG, JPG, GIF)" + +msgid "filename" +msgstr "όνομα αÏχείου" + +msgid "film/cinema" +msgstr "φιλμ/κινηματογÏάφος" + +msgid "fine arts" +msgstr "καλές τέχνες" + +msgid "fine-tune your display" +msgstr "μικÏοÏÏθμιση οθόνης" + +msgid "fitness & health" +msgstr "άσκηση & υγεία" + +msgid "flat alphabetic" +msgstr "αλφαβητική ταξινόμηση" + +msgid "flat alphabetic reverse" +msgstr "αλφαβητική αντιστÏοφή" + +msgid "folk/traditional music" +msgstr "λαϊκή/παÏαδοσιακή μουσική" + +msgid "football/soccer" +msgstr "ποδόσφαιÏο" + +msgid "foreign countries/expeditions" +msgstr "ξένες χώÏες/εκδÏομές" + +msgid "forward to the next chapter" +msgstr "Ï€Ïοώθηση στο επόμενο κεφάλαιο" + +msgid "free" +msgstr "ελεÏθεÏα" + +msgid "from" +msgstr "από" + +msgid "further education" +msgstr "ανώτεÏη εκπαίδευση" + +msgid "game show/quiz/contest" +msgstr "τηλεπαιχνίδι/κουίζ/διαγωνισμός" + +msgid "gardening" +msgstr "κηπουÏική" + +msgid "go to deep standby" +msgstr "μετάβαση σε βαθιά αναμονή" + +msgid "go to standby" +msgstr "μετάβαση σε αναμονή" + +msgid "grab this frame as bitmap" +msgstr "λήψη στιγμιότυπου του καÏέ ως bitmap" + +msgid "green" +msgstr "Ï€Ïάσινο" + +msgid "handicraft" +msgstr "χειÏοτεχνία" + +msgid "height" +msgstr "Ïψος" + +msgid "help..." +msgstr "βοήθεια..." + +msgid "horizontal" +msgstr "οÏιζόντια" + +msgid "information/education/school program" +msgstr "ειδήσεις/εκπαίδευση/σχολικό Ï€ÏόγÏαμμα" + +msgid "init module" +msgstr "αÏχικοποίηση αÏθÏώματος" + +msgid "init modules" +msgstr "αÏχικοποίηση αÏθÏωμάτων" + +msgid "insert mark here" +msgstr "εισαγωγή σημειωτή" + +msgid "invalid type" +msgstr "μη έγκυÏος Ï„Ïπος" + +msgid "jazz" +msgstr "τζαζ" + +msgid "jump back to the previous title" +msgstr "μετάβαση στον Ï€ÏηγοÏμενο τίτλο" + +msgid "jump forward to the next title" +msgstr "μετάβαση στον επόμενο τίτλο" + +msgid "languages" +msgstr "γλώσσες" + +msgid "leave movie player..." +msgstr "έξοδος από τον αναπαÏαγωγό ταινιών..." + +msgid "left" +msgstr "αÏιστεÏά" + +msgid "left, wrapped" +msgstr "αÏιστεÏά, σε αναδίπλωση" + +msgid "leisure hobbies (general)" +msgstr "χόμπι αναψυχής (γενικά)" + +msgid "length" +msgstr "διάÏκεια" + +msgid "limit ..., aborting !" +msgstr "ÏŒÏιο ..., ματαίωση!" + +msgid "list style compact" +msgstr "συμπτυγμένη μοÏφή λίστας" + +msgid "list style compact with description" +msgstr "συμπτυγμένη μοÏφή λίστας με πεÏιγÏαφή" + +msgid "list style default" +msgstr "Ï€Ïοεπιλεγμένη μοÏφή λίστας" + +msgid "list style single line" +msgstr "λίστα μονής γÏαμμής" + +msgid "literature" +msgstr "λογοτεχνία" + +msgid "live broadcast" +msgstr "ζωντανή μετάδοση" + +msgid "locked" +msgstr "κλειδωμένο" + +msgid "loopthrough to" +msgstr "loopthrough σε" + +msgid "magazines/reports/documentary" +msgstr "πεÏιοδικά/εκθέσεις/ντοκιμαντέÏ" + +msgid "manual" +msgstr "χειÏοκίνητα" + +msgid "martial sports" +msgstr "πολεμικά σποÏ" + +msgid "medicine/physiology/psychology" +msgstr "ιατÏική/φυσιολογία/ψυχολογία" + +msgid "menu" +msgstr "μενοÏ" + +msgid "mins" +msgstr "λεπτά" + +msgid "minutes" +msgstr "λεπτά" + +msgid "month" +msgstr "μήνας" + +msgid "motor sport" +msgstr "μηχανοκίνητος αθλητισμός" + +msgid "motoring" +msgstr "αυτοκίνηση" + +msgid "move down to last entry" +msgstr "μετάβαση στο τελευταίο στοιχείο" + +msgid "move down to next entry" +msgstr "μετάβαση στο επόμενο στοιχείο" + +msgid "move up to first entry" +msgstr "μετάβαση στο Ï€Ïώτο στοιχείο" + +msgid "move up to previous entry" +msgstr "μετάβαση στο Ï€ÏοηγοÏμενο στοιχείο" + +msgid "movie/drama (general)" +msgstr "ταινία/δÏάμα (γενικά)" + +msgid "multinorm" +msgstr "πολλαπλό" + +msgid "music/ballet/dance (general)" +msgstr "μουσική/μπαλέτο/χοÏός (γενικά)" + +msgid "musical/opera" +msgstr "μιοÏζικαλ/όπεÏα" + +msgid "nature/animals/environment" +msgstr "φÏση/ζώα/πεÏιβάλλον" + +msgid "never" +msgstr "ποτέ" + +msgid "new media" +msgstr "νέα πολυμέσα" + +msgid "news magazine" +msgstr "ειδησεογÏαφικό μαγκαζίνο" + +msgid "news/current affairs (general)" +msgstr "ειδήσεις/επικαιÏότητα (γενικά)" + +msgid "news/weather report" +msgstr "ειδήσεις/δελτίο καιÏοÏ" + +msgid "no" +msgstr "όχι" + +msgid "no CAId selected" +msgstr "δεν έχει επιλεγεί CAId" + +msgid "no CI slots found" +msgstr "δεν βÏέθηκαν κοινές διεπαφές (CI)" + +msgid "no module found" +msgstr "δεν βÏέθηκε άÏθÏωμα" + +msgid "no storage devices found" +msgstr "δεν βÏέθηκαν συσκευές αποθήκευσης" + +msgid "none" +msgstr "κανένα" + +msgid "normal" +msgstr "κανονικό" + +msgid "not configured" +msgstr "μη Ïυθμισμένο" + +msgid "not locked" +msgstr "μη κλειδωμένο" + +msgid "not supported" +msgstr "δεν υποστηÏίζεται" + +msgid "not used" +msgstr "δεν χÏησιμοποιείται" + +msgid "nothing connected" +msgstr "δεν έχει συνδεθεί τίποτα" + +msgid "of a DUAL layer medium used." +msgstr "ενός μέσου ΔΙΠΛΗΣ στÏώσης σε χÏήση." + +msgid "of a SINGLE layer medium used." +msgstr "ενός μέσου ΜΟÎΗΣ στÏώσης σε χÏήση." + +msgid "off" +msgstr "κλειστό" + +msgid "offset is" +msgstr "το offset είναι" + +msgid "on" +msgstr "ανοικτό" + +msgid "on READ ONLY medium." +msgstr "σε μέσο ΜΟÎΟ ΓΙΑ ΑÎΑΓÎΩΣΗ." + +msgid "on end of movie" +msgstr "στο τέλος της ταινίας" + +msgid "once" +msgstr "μία φοÏά" + +msgid "only from deep standby" +msgstr "μόνο από βαθιά αναμονή" + +msgid "only from standby" +msgstr "μόνο από αναμονή" + +msgid "open EPG..." +msgstr "άνοιγμα EPG..." + +msgid "open Info..." +msgstr "άνοιγμα πληÏοφοÏιών..." + +msgid "open nameserver configuration" +msgstr "άνοιγμα ÏÏθμισης nameserver" + +msgid "original" +msgstr "αÏχικό" + +msgid "original language" +msgstr "αÏχική γλώσσα" + +msgid "pass" +msgstr "πεÏνάει" + +msgid "performing arts" +msgstr "τέχνες και θεάματα" + +msgid "play as picture in picture" +msgstr "αναπαÏαγωγή ως PiP" + +msgid "play in mainwindow" +msgstr "αναπαÏαγωγή στο κεντÏικό παÏάθυÏο" + +msgid "please press OK when ready" +msgstr "πιέστε OK όταν είστε έτοιμοι" + +msgid "please wait, loading picture..." +msgstr "πεÏίμενετε, φοÏτώνεται η εικόνα..." + +msgid "popular culture/traditional arts" +msgstr "λαϊκή κουλτοÏÏα/παÏαδοσιακές τέχνες" + +msgid "pre-school children's program" +msgstr "Ï€ÏόγÏαμμα για παιδιά Ï€Ïοσχολικής ηλικίας" + +msgid "receiver software because updates are available." +msgstr "Î»Î¿Î³Î¹ÏƒÎ¼Î¹ÎºÎ¿Ï Ï„Î¿Ï… δέκτη, διότι υπάÏχουν διαθέσιμες ενημεÏώσεις." + +msgid "record" +msgstr "εγγÏαφή" + +msgid "recording..." +msgstr "εγγÏαφή..." + +msgid "red" +msgstr "κόκκινο" + +msgid "religion" +msgstr "θÏησκεία" + +msgid "remarkable people" +msgstr "σημαίνοντα Ï€Ïόσωπα" + +msgid "remove after this position" +msgstr "διαγÏαφή μετά από αυτό το σημείο" + +msgid "remove all alternatives" +msgstr "διαγÏαφή όλων των εναλλακτικών" + +msgid "remove all new found flags" +msgstr "διαγÏαφή όλων των νέων σημαιών" + +msgid "remove before this position" +msgstr "διαγÏαφή Ï€Ïιν από αυτό το σημείο" + +msgid "remove bookmark" +msgstr "διαγÏαφή σελιδοδείκτη" + +msgid "remove directory" +msgstr "διαγÏαφή φακέλου" + +msgid "remove entry" +msgstr "διαγÏαφή στοιχείου" + +msgid "remove from parental protection" +msgstr "διαγÏαφή από γονικό έλεγχο" + +msgid "remove new found flag" +msgstr "διαγÏαφή σημαίας \"νέο\"" + +msgid "remove selected satellite" +msgstr "διαγÏαφή επιλεγμένου δοÏυφόÏου" + +msgid "remove this mark" +msgstr "διαγÏαφή Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… σημειωτή" + +msgid "rename entry" +msgstr "μετονομασία στοιχείου" + +msgid "repeat playlist" +msgstr "επανάληψη λίστας αναπαÏαγωγής" + +msgid "repeated" +msgstr "επαναλαμβανόμενο" + +msgid "reverse by date" +msgstr "αντιστÏοφή κατά ημεÏομηνία" + +msgid "rewind to the previous chapter" +msgstr "μετάβαση στο Ï€ÏοηγοÏμενο κεφάλαιο" + +msgid "right" +msgstr "δεξιά" + +msgid "right, wrapped" +msgstr "δεξιά, σε αναδίπλωση" + +msgid "rock/pop" +msgstr "Ïοκ/ποπ" + +msgid "romance" +msgstr "Ïομάντζο" + +msgid "save last directory on exit" +msgstr "αποθήκευση τελευταίου φακέλου κατά την έξοδο" + +msgid "save playlist on exit" +msgstr "αποθήκευση λίστας αναπαÏαγωγής κατά την έξοδο" + +msgid "scan state" +msgstr "κατάσταση ανίχνευσης" + +msgid "science fiction/fantasy/horror" +msgstr "επιστημονικής φαντασίας/φαντασίας/Ï„Ïόμου" + +msgid "second cable of motorized LNB" +msgstr "δεÏτεÏο καλώδιο σε κινοÏμενο LNB" + +msgid "seconds" +msgstr "δευτεÏόλεπτα" + +msgid "select" +msgstr "επιλογή" + +msgid "select CAId's" +msgstr "επιλογή CAId's" + +msgid "select EPG..." +msgstr "επιλογή EPG..." + +msgid "select Info..." +msgstr "επιλογή ΠληÏοφοÏιών..." + +msgid "select menu entry" +msgstr "επιλογή σημείου μενοÏ" + +msgid "select movie" +msgstr "επιλογή ταινίας" + +msgid "select the movie path" +msgstr "επιλογή διαδÏομής ταινιών" + +msgid "serious music/classic music" +msgstr "σοβαÏή μουσική/κλασική μουσική" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "σοβαÏή/κλασική/θÏησκευτική/ιστοÏική ταινία/δÏάμα" + +msgid "service PIN" +msgstr "PIN υπηÏεσίας" + +msgid "set as startup service" +msgstr "οÏισμός ως υπηÏεσία εκκίνησης" + +msgid "setup PIN" +msgstr "ÏÏθμιση PIN" + +msgid "show DVD main menu" +msgstr "εμφάνιση κÏÏιου Î¼ÎµÎ½Î¿Ï DVD" + +msgid "show all tags" +msgstr "εμφάνιση όλων των ετικετών" + +msgid "show alternatives" +msgstr "εμφάνιση εναλλακτικών" + +msgid "show event details" +msgstr "εμφάνιση λεπτομεÏειών Ï€ÏογÏάμματος" + +msgid "show extended description" +msgstr "εμφάνισης εκτεταμάνης πεÏιγÏαφής" + +msgid "show mediaplayer on mainmenu" +msgstr "εμφάνιση της αναπαÏαγωγής πολυμέσων στο κÏÏιο μενοÏ" + +msgid "show softwaremanager in setup menu" +msgstr "εμφάνιση της διαχείÏισης Î»Î¿Î³Î¹ÏƒÎ¼Î¹ÎºÎ¿Ï ÏƒÏ„Î¿ Î¼ÎµÎ½Î¿Ï ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ·Ï‚" + +msgid "show softwaremanager on blue button" +msgstr "εμφάνιση του softwaremanager στο μπλε κουμπί" + +msgid "show tag menu" +msgstr "εμφάνιση Î¼ÎµÎ½Î¿Ï ÎµÏ„Î¹ÎºÎµÏ„ÏŽÎ½" + +msgid "show transponder info" +msgstr "εμφάνιση πληÏοφοÏιών αναμεταδότη" + +msgid "show/game show (general)" +msgstr "σόου/τηλεπαιχνίδι (γενικά)" + +msgid "shuffle" +msgstr "τυχαία ανακατανομή" + +msgid "shut down" +msgstr "τεÏματισμός" + +msgid "simple" +msgstr "απλό" + +msgid "skip backward" +msgstr "μεταπήδηση πίσω" + +msgid "skip forward" +msgstr "μεταπήδηση εμπÏός" + +msgid "soap/melodram/folkloric" +msgstr "σαπουνόπεÏα/μελόδÏαμα/φολκλόÏ" + +msgid "social/political issues/economics (general)" +msgstr "κοινωνικά/πολιτική επικαιÏότητα/οικονομία (γενικά)" + +msgid "social/spiritual science" +msgstr "κοινωνικά/διανόηση" + +msgid "sorting of playlists" +msgstr "ταξινόμηση λιστών αναπαÏαγωγής" + +msgid "special characters" +msgstr "ειδικοί χαÏακτήÏες" + +msgid "special events" +msgstr "ειδικά Ï€ÏογÏάμματα" + +msgid "special format data DVD (HDTV compatible)" +msgstr "ειδικό φοÏμά δεδομένων DVD (HDTV συμβατό)" + +msgid "sports (general)" +msgstr "αθλητικά (γενικά)" + +msgid "sports magazine" +msgstr "αθλητικό μαγκαζίνο" + +msgid "standard" +msgstr "στάνταÏ" + +msgid "start cut here" +msgstr "εκκίνηση αποκοπής εδώ" + +msgid "start directory" +msgstr "εκκίνηση φακέλου" + +msgid "stepsize" +msgstr "μέγεθος βήματος" + +msgid "stereo" +msgstr "στεÏεοφωνικό" + +msgid "stop using as startup service" +msgstr "τέλος χÏήσης ως υπηÏεσία εκκίνησης" + +msgid "switch to bookmarks" +msgstr "μετάβαση στους σελιδοδείκτες" + +msgid "switch to filelist" +msgstr "μετάβαση στη λίστα αÏχείων" + +msgid "switch to the next angle" +msgstr "μετάβαση στην επόμενη γωνία" + +msgid "switch to the next audio track" +msgstr "μετάβαση στο επόμενο κανάλι ήχου" + +msgid "switch to the next subtitle language" +msgstr "μετάβαση στην επόμενη γλώσσα υποτίτλων" + +msgid "talk show" +msgstr "συζητήσεις" + +msgid "team sports" +msgstr "ομαδικά αθλήματα" + +msgid "technology/natural science" +msgstr "τεχνολογία/φυσικές επιστήμες" + +msgid "template file" +msgstr "αÏχείο Ï€ÏοτÏπου" + +msgid "tennis/squash" +msgstr "τένις/σκουώς" + +msgid "this recording" +msgstr "αυτή η εγγÏαφή" + +msgid "this service is protected by a parental control pin" +msgstr "η εγγÏαφή είναι Ï€Ïοστατευμένη από τον γονικό έλεγχο" + +msgid "toggle time, chapter, audio, subtitle info" +msgstr "εναλλαγή πληÏοφοÏιών χÏόνου, κεφαλαίου, ήχου, υποτίτλων" + +msgid "top" +msgstr "κοÏυφή" + +msgid "tourism/travel" +msgstr "τουÏισμός/ταξίδια" + +msgid "true" +msgstr "αληθές" + +msgid "unavailable" +msgstr "μη διαθέσιμο" + +msgid "unconfirmed" +msgstr "μη επιβεβαιωμένο" + +msgid "undefined" +msgstr "απÏοσδιόÏιστο" + +msgid "unknown" +msgstr "άγνωστο" + +msgid "unknown service" +msgstr "άγνωστη υπηÏεσία" + +msgid "unpublished" +msgstr "ανέκδοτο" + +msgid "until standby/restart" +msgstr "μέχÏι την αναμονή/επανεκκίνηση" + +msgid "user defined" +msgstr "οÏισμένο από το χÏήστη" + +msgid "variety show" +msgstr "βαÏιετέ" + +msgid "vertical" +msgstr "κάθετη" + +msgid "wait for ci..." +msgstr "αναμονή γα κοινή διεπαφή (ci)..." + +msgid "wait for mmi..." +msgstr "αναμονή για mmi..." + +msgid "waiting" +msgstr "αναμονή" + +msgid "water sport" +msgstr "θαλάσσια σποÏ" + +msgid "weekly" +msgstr "εβδομαδιαία" + +msgid "west" +msgstr "δυτικά" + +msgid "when PiPzap enabled zap channel down..." +msgstr "όταν το PiPzap είναι ενεÏγοποιημένο μεταβείτε στο κάτω κανάλι..." + +msgid "when PiPzap enabled zap channel up..." +msgstr "όταν το PiPzap είναι ενεÏγοποιημένο μεταβείτε στο πάνω κανάλι..." + +msgid "white" +msgstr "λευκό" + +msgid "whitelist" +msgstr "λευκή λίστα" + +msgid "width" +msgstr "πλάτος" + +msgid "winter sport" +msgstr "χειμεÏινά σποÏ" + +msgid "wireless network interface" +msgstr "διεπαφή ασÏÏματου δικτÏου" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "με %d σφάλμα" +msgstr[1] "με %d σφάλματα" + +msgid "working" +msgstr "σε λειτουÏγία" + +msgid "yellow" +msgstr "κίτÏινο" + +msgid "yes" +msgstr "ναι" + +msgid "yes (keep feeds)" +msgstr "ναι (διατήÏηση των feeds)" + +msgid "zap" +msgstr "μετάβαση" + +msgid "zap and record" +msgstr "μετάβαση και εγγÏαφή" + +msgid "zapped" +msgstr "έγινε μετάβαση" + +#~ msgid "AA" +#~ msgstr "AA" + +#~ msgid "AB" +#~ msgstr "AB" + +#~ msgid "Activate PiP" +#~ msgstr "ΕνεÏγοποίηση PiP" + +#~ msgid "Add/remove timer for current event" +#~ msgstr "ΠÏοσθήκη/αφαίÏεση χÏονοδιακόπτη για το Ï„Ïέχον Ï€ÏόγÏαμμα" + +#~ msgid "Adjust HDMI CEC settings" +#~ msgstr "Ρυθμίσεις HDMI CEC" + +#~ msgid "All satellites" +#~ msgstr "Όλοι οι δοÏυφόÏοι" + +#~ msgid "And will shutdown your receiver over " +#~ msgstr "Και θα κλείσει το δέκτη σας μετά από " + +#~ msgid "BA" +#~ msgstr "BA" + +#~ msgid "BB" +#~ msgstr "BB" + +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "ΣυμπεÏιφοÏά του 'pause' στην παÏση" + +#~ msgid "Committed DiSEqC command" +#~ msgstr "Δεσμευμένη εντολή DiSEqC" + +#~ msgid "Configure if and how service type icons will be shown." +#~ msgstr "Ρυθμίστε αν και πώς θα εμφανίζονται τα εικονίδια υπηÏεσιών στη λίστα." + +#~ msgid "Configure if service picons will be shown in the servicelist." +#~ msgstr "ΡÏθμιση εάν τα εικονίδια των υπηÏεσιών θα εμφανίζονται στη λίστα." + +#~ msgid "Configure of and how long the latest service in the PiP will be remembered." +#~ msgstr "ΡÏθμιση του χÏόνου υπενθÏμισης της τελευταίας υπηÏεσίας στο PiP." + +#~ msgid "Configure the behavior of the 'pause' key when movie playback is already paused." +#~ msgstr "ΣυμπεÏιφοÏά του πλήκτÏου \"παÏση\" όταν η αναπαÏαγωγή μιας ταινίας είναι ήδη σε παÏση." + +#~ msgid "Configure the duration in hours and action, which could be shut down or standby, when the receiver is not controlled." +#~ msgstr "Ρυθμιση της διάÏκειας σε ÏŽÏες και ενέÏγειες, που μποÏεί να είναι ο τεÏματισμός ή η αναμονή, όταν ο δέκτης δεν ελέγχεται." + +#~ msgid "Configure the duration in minutes and action, which could be shut down or standby, for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +#~ msgstr "Ρυθμιση της διάÏκειας σε ÏŽÏες και ενέÏγειες, που μποÏεί να είναι ο τεÏματισμός ή η αναμονή για το χÏονοδιακόπτη. Επιλέξτε αυτό το στοιχείο και πιέστε ΟΚ ή το Ï€Ïάσινο για να ξεκινήσει/σταματήσει ο χÏονοδιακόπτης Ïπνου." + +#~ msgid "Currently the commit log cannot be retreived - please try later again" +#~ msgstr "Αυτή τη στιγμή είναι αδÏνατη η λήψη του καταγÏαφολογίου αλλαγών - παÏακαλώ δοκιμάστε αÏγότεÏα" + +#~ msgid "DVB_C" +#~ msgstr "DVB_C" + +#~ msgid "DiSEqC repeats" +#~ msgstr "Επαναλήψεις DiSEqC" + +#~ msgid "Enable neutrino style zap controlling" +#~ msgstr "ΕνεÏγοποίηση στυλ ελέγχου ζάπινγκ neutrino" + +#~ msgid "Goto specific data/time" +#~ msgstr "Μετάβαση σε συγκεκÏιμένη ημεÏομηνία/χÏόνο" + +#~ msgid "Memory positions" +#~ msgstr "Θέση μνήμης" + +#~ msgid "No satellite frontend found!!" +#~ msgstr "Δεν βÏέθηκε tuner για το δοÏυφόÏο!" + +#~ msgid "Open service list and select next channel" +#~ msgstr "Άνοιγμα λίστας υπηÏεσιών και επιλογή επόμενου καναλιοÏ" + +#~ msgid "Open service list and select previous channel" +#~ msgstr "Άνοιγμα λίστας υπηÏεσιών και επιλογή Ï€ÏοηγοÏμενου καναλιοÏ" + +#~ msgid "Press '0' to toggle internal/external PiP." +#~ msgstr "Πιέστε '0' για εναλλαγή εσωτεÏικοÏ/εξωτεÏÎ¹ÎºÎ¿Ï PiP." + +#~ msgid "Remove timer" +#~ msgstr "ΔιαγÏαφή χÏονοδιακόπτη" + +#~ msgid "Send DiSEqC" +#~ msgstr "Αποστολή DiSEqC" + +#~ msgid "Show picons in servicelist" +#~ msgstr "Εμφάνιση εικονιδίων στη λίστα υπηÏεσιών." + +#~ msgid "Shutdown after current event" +#~ msgstr "ΤεÏματισμός μετά το Ï„Ïέχον Ï€ÏόγÏαμμα" + +#~ msgid "Shutdown in " +#~ msgstr "ΤεÏματισμός σε " + +#~ msgid "Switch next channel" +#~ msgstr "Επόμενο κανάλι" + +#~ msgid "Tuning step size" +#~ msgstr "Μέγεθος βήματος συντονισμοÏ" + +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Μη δεσμευμένη εντολή DiSEqC" + +#~ msgid "When enabled the arrow buttons around the OK button will follow the neutrino style zap controls instead of the enigma2 style." +#~ msgstr "Όταν είναι ενεÏγό, τα πλήκτÏα βέλη γÏÏω από το ΟΚ θα ακολουθοÏν το στυλ ελέγχου ζάπινγκ του neutrino αντί του enigma2." + +#~ msgid "Your receiver will shutdown due to inactivity." +#~ msgstr "Ο δέκτη σας θα κλείσει εξαιτίας της αδÏάνειας." + +#~ msgid "Your receiver will shutdown due to the sleeptimer." +#~ msgstr "Ο δέκτη σας θα κλείσει εξαιτίας του χÏονοδιακόπτη Ïπνου." + +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "ΕπιστÏοφή στην υπηÏεσία Ï€Ïιν το satfinder;" + +#~ msgid "tuner is not supported" +#~ msgstr "το tuner δεν υποστηÏίζεται" diff --git a/po/en.po b/po/en.po new file mode 100644 index 0000000..352478c --- /dev/null +++ b/po/en.po @@ -0,0 +1,8069 @@ +msgid "" +msgstr "" +"Project-Id-Version: enigma2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: \n" +"Last-Translator: satdreamgr\n" +"Language-Team: \n" +"Language: en\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.5.7\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"Advanced options and settings." + +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"After pressing OK, please wait!" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" +"\n" +"Backup your receiver settings." + +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"Edit the upgrade source address." + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" +"\n" +"Manage extensions or plugins for your receiver" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" +"\n" +"Online update of your receiver software." + +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"Press OK on your remote control to continue." + +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"Restore your backups by date." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" +"\n" +"Restore your receiver settings." + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" +"\n" +"Restore your receiver with a new firmware." + +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"Scan for local extensions and install them." + +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Select your backup device.\n" +"Current device: " + +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"View, install and remove available or installed packages." + +msgid " (PiP)" +msgstr " (PiP)" + +msgid " (Radio)" +msgstr " (Radio)" + +msgid " (TV)" +msgstr " (TV)" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +msgid " extensions." +msgstr " extensions." + +msgid " ms" +msgstr " ms" + +msgid " packages selected." +msgstr " packages selected." + +msgid " updates available." +msgstr " updates available." + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "%2d:%02d" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "%2d:%02d:%02d" + +msgid "%A %d %B" +msgstr "%A %d %B" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "%A %e %B" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "%A %e %B %Y" + +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "%a %e/%m" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "%a %e/%m %-H:%M" + +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, fuzzy, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "%d services found!" +msgstr[1] "%d services found!" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "%d file" +msgstr[1] "%d files" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d hour" +msgstr[1] "%d hours" + +#, fuzzy, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d jobs are running in the background!" +msgstr[1] "%d jobs are running in the background!" + +#, python-format +msgid "%d min" +msgstr "%d min" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minute" +msgstr[1] "%d minutes" + +#, python-format +msgid "%d minutes" +msgstr "%d minutes" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d second" +msgstr[1] "%d seconds" + +#, fuzzy, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "Root directory" +msgstr[1] "Root directory" + +#, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "%d wireless network found!" +msgstr[1] "%d wireless networks found!" + +msgid "%d-%b-%Y %-H:%M" +msgstr "%d-%b-%Y %-H:%M" + +msgid "%d-%m" +msgstr "%d-%m" + +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "%k:%M %e/%m" + +#, python-format +msgid "%s %s free disk space" +msgstr "%s %s free disk space" + +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "%s is no longer used. Should it be deleted?" + +#, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "%s updated package available" +msgstr[1] "%s updated packages available" + +#, python-format +msgid "%s%d min" +msgstr "" + +#, python-format +msgid "%s/%s: %s" +msgstr "%s/%s: %s" + +msgid "(ZAP)" +msgstr "(ZAP)" + +msgid "(empty)" +msgstr "(empty)" + +msgid "(show optional DVD audio menu)" +msgstr "(show optional DVD audio menu)" + +msgid "* Only available if more than one interface is active." +msgstr "* Only available if more than one interface is active." + +msgid "/s" +msgstr "" + +msgid "0" +msgstr "" + +msgid "1" +msgstr "1" + +msgid "1.0" +msgstr "" + +msgid "1.1" +msgstr "1.1" + +msgid "1.2" +msgstr "1.2" + +msgid "12V output" +msgstr "12V output" + +msgid "13 V" +msgstr "13 V" + +msgid "16:10" +msgstr "16:10" + +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +msgid "16:9" +msgstr "16:9" + +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +msgid "16:9 always" +msgstr "16:9 always" + +msgid "18 V" +msgstr "18 V" + +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "" + +msgid "24" +msgstr "" + +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +msgid "3" +msgstr "3" + +msgid "30" +msgstr "" + +msgid "3d mode" +msgstr "3d mode" + +msgid "4" +msgstr "4" + +msgid "4:3" +msgstr "4:3" + +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +msgid "5" +msgstr "5" + +msgid "6" +msgstr "6" + +msgid "7" +msgstr "7" + +msgid "8" +msgstr "8" + +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +msgid "<Current movielist location>" +msgstr "<Current movielist location>" + +msgid "<Default movie location>" +msgstr "<Default movie location>" + +msgid "<Last timer location>" +msgstr "<Last timer location>" + +msgid "<unknown>" +msgstr "<unknown>" + +msgid "??" +msgstr "??" + +msgid "A" +msgstr "A" + +#, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" + +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" + +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "A graphical EPG for all services of an specific bouquet" + +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"A record has been started:\n" +"%s" + +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"A recording is currently running.\n" +"What do you want to do?" + +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "A recording is currently running. Please stop the recording before trying to configure the positioner." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "A recording is currently running. Please stop the recording before trying to scan." + +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "A recording is currently running. Please stop the recording before trying to start the satfinder." + +#, python-format +msgid "A required tool (%s) was not found." +msgstr "A required tool (%s) was not found." + +msgid "A search for available updates is currently in progress." +msgstr "A search for available updates is currently in progress." + +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" + +msgid "A small overview of the available icon states and actions." +msgstr "A small overview of the available icon states and actions." + +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"A timer failed to record!\n" +"Disable TV and try again?\n" + +msgid "A/V settings" +msgstr "A/V settings" + +msgid "AC3/DTS downmix" +msgstr "AC3/DTS downmix" + +msgid "Abort" +msgstr "Abort" + +msgid "About" +msgstr "About" + +msgid "About..." +msgstr "About..." + +msgid "Accesspoint:" +msgstr "Accesspoint:" + +msgid "Action on long powerbutton press" +msgstr "Action on long powerbutton press" + +msgid "Action on short powerbutton press" +msgstr "Action on short powerbutton press" + +msgid "Activate Picture in Picture" +msgstr "Activate Picture in Picture" + +msgid "Activate current configuration" +msgstr "Activate current configuration" + +msgid "Activate network settings" +msgstr "Activate network settings" + +msgid "Activate the configured network settings." +msgstr "Activate the configured network settings." + +msgid "Adapter settings" +msgstr "Adapter settings" + +msgid "Add" +msgstr "Add" + +msgid "Add Bookmark" +msgstr "" + +msgid "Add a mark" +msgstr "Add a mark" + +msgid "Add a nameserver entry" +msgstr "Add a nameserver entry" + +msgid "Add a new title" +msgstr "Add a new title" + +msgid "Add bookmark" +msgstr "Add bookmark" + +msgid "Add directory to playlist" +msgstr "Add directory to playlist" + +msgid "Add file to playlist" +msgstr "Add file to playlist" + +msgid "Add files to playlist" +msgstr "Add files to playlist" + +msgid "Add more details to the crash log" +msgstr "Add more details to the crash log" + +msgid "Add provider" +msgstr "Add provider" + +msgid "Add recording (enter recording duration)" +msgstr "Add recording (enter recording duration)" + +msgid "Add recording (enter recording endtime)" +msgstr "Add recording (enter recording endtime)" + +msgid "Add recording (indefinitely)" +msgstr "Add recording (indefinitely)" + +msgid "Add recording (stop after current event)" +msgstr "Add recording (stop after current event)" + +msgid "Add service" +msgstr "Add service" + +msgid "Add timer" +msgstr "Add timer" + +msgid "Add title" +msgstr "Add title" + +msgid "Add to bouquet" +msgstr "Add to bouquet" + +msgid "Add to favourites" +msgstr "Add to favourites" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "Adjust 3D settings" + +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." + +msgid "Advanced" +msgstr "" + +msgid "Advanced options" +msgstr "Advanced options" + +msgid "Advanced restore" +msgstr "Advanced restore" + +msgid "Advanced software" +msgstr "Advanced software" + +msgid "Advanced software plugin" +msgstr "Advanced software plugin" + +msgid "Advanced video enhancement setup" +msgstr "Advanced video enhancement setup" + +msgid "Advanced video setup" +msgstr "Advanced video setup" + +msgid "After event" +msgstr "After event" + +msgid "Album" +msgstr "Album" + +msgid "Alignment of events" +msgstr "" + +msgid "Alignment of service names" +msgstr "" + +msgid "All" +msgstr "All" + +msgid "All ages" +msgstr "All ages" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "Allocate" + +msgid "Allocate unused memory index" +msgstr "Allocate unused memory index" + +msgid "Allow quit movieplayer with exit" +msgstr "Allow quit movieplayer with exit" + +msgid "Allow subtitle language to equal audio language" +msgstr "Allow subtitle language to equal audio language" + +msgid "Allow subtitles for hearing impaired" +msgstr "Allow subtitles for hearing impaired" + +msgid "Alpha" +msgstr "Alpha" + +msgid "Alternative" +msgstr "Alternative" + +msgid "Alternative numbering mode" +msgstr "Alternative numbering mode" + +msgid "Alternative services tuner priority" +msgstr "Alternative services tuner priority" + +msgid "Always ask" +msgstr "Always ask" + +msgid "Always hide infobar" +msgstr "" + +msgid "An empty filename is illegal." +msgstr "An empty filename is illegal." + +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "An error occurred while downloading the packetlist. Please try again." + +msgid "An unknown error occurred!" +msgstr "An unknown error occurred!" + +msgid "And will put your receiver in standby over " +msgstr "" + +msgid "Any activity" +msgstr "Any activity" + +msgid "Arabic" +msgstr "Arabic" + +msgid "Are you sure to remove this entry?" +msgstr "" + +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"Are you sure you want to activate this network configuration?\n" +"\n" + +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"Are you sure you want to delete\n" +"the following backup:\n" + +msgid "Are you sure you want to exit this wizard?" +msgstr "Are you sure you want to exit this wizard?" + +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"Are you sure you want to restart your network interfaces?\n" +"\n" + +#, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" + +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" + +msgid "Artist" +msgstr "Artist" + +msgid "Arts/Culture" +msgstr "Arts/Culture" + +msgid "Ask user" +msgstr "Ask user" + +msgid "Aspect ratio" +msgstr "Aspect ratio" + +msgid "Assigned CAIds:" +msgstr "Assigned CAIds:" + +msgid "Assigned services/provider:" +msgstr "Assigned services/provider:" + +msgid "At beginning" +msgstr "At beginning" + +msgid "At end" +msgstr "At end" + +msgid "Audio" +msgstr "Audio" + +msgid "Audio PID" +msgstr "Audio PID" + +msgid "Audio language selection 1" +msgstr "Audio language selection 1" + +msgid "Audio language selection 2" +msgstr "Audio language selection 2" + +msgid "Audio language selection 3" +msgstr "Audio language selection 3" + +msgid "Audio language selection 4" +msgstr "Audio language selection 4" + +msgid "Audio options..." +msgstr "Audio options..." + +#, python-format +msgid "Audio track (%s) format" +msgstr "Audio track (%s) format" + +#, python-format +msgid "Audio track (%s) language" +msgstr "Audio track (%s) language" + +msgid "Author: " +msgstr "Author: " + +msgid "Authoring mode" +msgstr "Authoring mode" + +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Auto" + +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Auto chapter split every ? minutes (0=never)" + +msgid "Auto flesh" +msgstr "Auto flesh" + +msgid "Auto focus" +msgstr "Auto focus" + +msgid "Auto focus commencing ..." +msgstr "Auto focus commencing ..." + +msgid "Auto language selection" +msgstr "Auto language selection" + +msgid "Auto scart switching" +msgstr "Auto scart switching" + +msgid "Automatic" +msgstr "Automatic" + +msgid "Automatic scan" +msgstr "Automatic scan" + +msgid "Automatically start timeshift after" +msgstr "Automatically start timeshift after" + +msgid "Automatically turn on external subtitles" +msgstr "Automatically turn on external subtitles" + +msgid "Available format variables" +msgstr "Available format variables" + +msgid "B" +msgstr "B" + +msgid "BER" +msgstr "BER" + +msgid "BER:" +msgstr "BER:" + +msgid "Back" +msgstr "Back" + +msgid "Background" +msgstr "Background" + +msgid "Background color" +msgstr "Background color" + +msgid "Background delete option" +msgstr "Background delete option" + +msgid "Background delete speed" +msgstr "Background delete speed" + +msgid "Backup completed." +msgstr "Backup completed." + +msgid "Backup failed." +msgstr "Backup failed." + +msgid "Backup is running..." +msgstr "Backup is running..." + +msgid "Backup system settings" +msgstr "Backup system settings" + +msgid "Band" +msgstr "Band" + +msgid "Bandwidth" +msgstr "Bandwidth" + +msgid "Basque" +msgstr "Basque" + +msgid "Begin time" +msgstr "Begin time" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +msgid "Behavior of 0 key in PiP-mode" +msgstr "Behavior of 0 key in PiP-mode" + +msgid "Behavior when a movie is started" +msgstr "Behavior when a movie is started" + +msgid "Behavior when a movie is stopped" +msgstr "Behavior when a movie is stopped" + +msgid "Behavior when a movie reaches the end" +msgstr "Behavior when a movie reaches the end" + +msgid "Big PiP" +msgstr "" + +msgid "Bitrate:" +msgstr "Bitrate:" + +msgid "Black screen" +msgstr "Black screen" + +msgid "Black screen till locked" +msgstr "Black screen till locked" + +msgid "Block noise reduction" +msgstr "Block noise reduction" + +msgid "Blue boost" +msgstr "Blue boost" + +msgid "Bookmarks" +msgstr "Bookmarks" + +msgid "Brightness" +msgstr "Brightness" + +msgid "Bulgarian" +msgstr "Bulgarian" + +msgid "Burn DVD" +msgstr "Burn DVD" + +#, python-format +msgid "Burn audio track (%s)" +msgstr "Burn audio track (%s)" + +msgid "Burn existing image to DVD" +msgstr "Burn existing image to DVD" + +msgid "Burn to DVD" +msgstr "Burn to DVD" + +msgid "Bus: " +msgstr "Bus: " + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." + +msgid "C" +msgstr "C" + +msgid "C-Band" +msgstr "C-Band" + +msgid "CH" +msgstr "" + +msgid "CI assignment" +msgstr "CI assignment" + +msgid "CVBS" +msgstr "CVBS" + +msgid "Cable" +msgstr "Cable" + +msgid "Cable Scan" +msgstr "Cable Scan" + +msgid "Cache thumbnails" +msgstr "Cache thumbnails" + +msgid "Calculate" +msgstr "Calculate" + +msgid "Calculate all positions" +msgstr "Calculate all positions" + +msgid "Calculation complete" +msgstr "Calculation complete" + +msgid "Calibrate" +msgstr "Calibrate" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "Can be used for different fps between external subtitles and video." + +msgid "Cancel" +msgstr "Cancel" + +msgid "Cannot determine" +msgstr "Cannot determine" + +msgid "Cannot find any signal ..., aborting !" +msgstr "Cannot find any signal ..., aborting !" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "Cannot move files on a different disk or system to the trash can" + +msgid "Cannot move to trash can" +msgstr "Cannot move to trash can" + +msgid "Capacity: " +msgstr "Capacity: " + +msgid "Card" +msgstr "Card" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "Center DVB subtitles" + +msgid "Center time-labels and remove date" +msgstr "" + +msgid "Change bouquets in quickzap" +msgstr "Change bouquets in quickzap" + +msgid "Change pin code" +msgstr "Change pin code" + +msgid "Change recording (duration)" +msgstr "Change recording (duration)" + +msgid "Change recording (endtime)" +msgstr "Change recording (endtime)" + +msgid "Change repeat and delay settings?" +msgstr "Change repeat and delay settings?" + +msgid "Change service PIN" +msgstr "Change service PIN" + +msgid "Change service PINs" +msgstr "Change service PINs" + +msgid "Change setup PIN" +msgstr "Change setup PIN" + +msgid "Change step size" +msgstr "Change step size" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "Changelog" + +msgid "Channel" +msgstr "Channel" + +msgid "Channel list type" +msgstr "Channel list type" + +msgid "Channel not in services list" +msgstr "Channel not in services list" + +msgid "Channel selection" +msgstr "Channel selection" + +msgid "Channel:" +msgstr "Channel:" + +msgid "Channellist menu" +msgstr "Channellist menu" + +msgid "Chap." +msgstr "Chap." + +msgid "Chapter" +msgstr "Chapter" + +msgid "Chapter:" +msgstr "Chapter:" + +msgid "Check" +msgstr "Check" + +msgid "Check the internet connection" +msgstr "Check the internet connection" + +msgid "Check the internet connection again" +msgstr "Check the internet connection again" + +msgid "Checking filesystem..." +msgstr "Checking filesystem..." + +msgid "Checking the internet connection" +msgstr "Checking the internet connection" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" + +msgid "Children/Youth" +msgstr "Children/Youth" + +msgid "Choose which tuner to configure." +msgstr "Choose which tuner to configure." + +msgid "Circular left" +msgstr "Circular left" + +msgid "Circular right" +msgstr "Circular right" + +msgid "Cleanup" +msgstr "Cleanup" + +msgid "Clear" +msgstr "Clear" + +msgid "Clear before scan" +msgstr "Clear before scan" + +msgid "Clear fixed" +msgstr "Clear fixed" + +msgid "Clear log" +msgstr "Clear log" + +msgid "Clear playlist" +msgstr "Clear playlist" + +msgid "Close" +msgstr "Close" + +msgid "Close PiP on exit" +msgstr "Close PiP on exit" + +msgid "Close title selection" +msgstr "Close title selection" + +msgid "Code rate HP" +msgstr "Code rate HP" + +msgid "Code rate LP" +msgstr "Code rate LP" + +msgid "Coderate HP" +msgstr "Coderate HP" + +msgid "Coderate LP" +msgstr "Coderate LP" + +msgid "Collection name" +msgstr "Collection name" + +msgid "Collection settings" +msgstr "Collection settings" + +msgid "Color format" +msgstr "Color format" + +msgid "Command execution..." +msgstr "Command execution..." + +msgid "Command order" +msgstr "Command order" + +msgid "Common Interface" +msgstr "Common Interface" + +msgid "Common Interface assignment" +msgstr "Common Interface assignment" + +msgid "Communication" +msgstr "Communication" + +msgid "Compact flash" +msgstr "Compact flash" + +msgid "Complete" +msgstr "Complete" + +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "Complex (allows mixing audio tracks and aspects)" + +msgid "Composition of the recording filenames" +msgstr "Composition of the recording filenames" + +msgid "Configuration mode" +msgstr "Configuration mode" + +#, python-format +msgid "Configuration mode: %s" +msgstr "Configuration mode: %s" + +msgid "Configuration..." +msgstr "Configuration..." + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "Configure an additional delay to improve external subtitle synchronisation." + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "Configure an additional delay to improve subtitle synchronisation." + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "Configure for how long the infobar will remain visible after activation." + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." + +msgid "Configure how recording filenames are constructed." +msgstr "Configure how recording filenames are constructed." + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +msgid "Configure interface" +msgstr "Configure interface" + +msgid "Configure nameservers" +msgstr "Configure nameservers" + +msgid "Configure on which devices the background delete option should be used." +msgstr "Configure on which devices the background delete option should be used." + +msgid "Configure remote control type" +msgstr "Configure remote control type" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "Configure the DiSEqC mode for this LNB." + +msgid "Configure the IP address." +msgstr "Configure the IP address." + +msgid "Configure the aspect ratio of the screen." +msgstr "Configure the aspect ratio of the screen." + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "Configure the behavior when movie playback is manually stopped." + +msgid "Configure the behavior when movie playback is started." +msgstr "Configure the behavior when movie playback is started." + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "Configure the behavior when reaching the end of a movie, during movie playback." + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "Configure the brightness level of the front panel display during standby." + +msgid "Configure the brightness level of the front panel display." +msgstr "Configure the brightness level of the front panel display." + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." + +msgid "Configure the color of the teletext subtitles." +msgstr "Configure the color of the teletext subtitles." + +msgid "Configure the contrast level of the front panel display." +msgstr "Configure the contrast level of the front panel display." + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "Configure the duration in minutes for the screensaver." + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "" + +msgid "Configure the first audio language (highest priority)." +msgstr "Configure the first audio language (highest priority)." + +msgid "Configure the first subtitle language (highest priority)." +msgstr "Configure the first subtitle language (highest priority)." + +msgid "Configure the font size of the subtitles." +msgstr "Configure the font size of the subtitles." + +msgid "Configure the fourth audio language." +msgstr "Configure the fourth audio language." + +msgid "Configure the fourth subtitle language." +msgstr "Configure the fourth subtitle language." + +msgid "Configure the function of a long press on the power button." +msgstr "Configure the function of a long press on the power button." + +msgid "Configure the function of a short press on the power button." +msgstr "Configure the function of a short press on the power button." + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "Configure the function of the '0' button do when PIP is active." + +msgid "Configure the gateway." +msgstr "Configure the gateway." + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "Configure the general audio delay of Dolby Digital sound tracks." + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "Configure the general audio delay of stereo sound tracks." + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "Configure the hard disk drive to go to standby after the specified idle time." + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "Configure the horizontal alignment of the subtitles." + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." + +msgid "Configure the latitude of your location." +msgstr "Configure the latitude of your location." + +msgid "Configure the longitude of your location." +msgstr "Configure the longitude of your location." + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." + +msgid "Configure the nameserver (DNS)." +msgstr "Configure the nameserver (DNS)." + +msgid "Configure the netmask." +msgstr "Configure the netmask." + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "Configure the number of days after which items are automaticaly removed from the trash can." + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "Configure the number of days old timers are kept before they are automatically removed from the timer list." + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." + +msgid "Configure the possible fast forward speeds." +msgstr "Configure the possible fast forward speeds." + +msgid "Configure the possible rewind speeds." +msgstr "Configure the possible rewind speeds." + +msgid "Configure the primary EPG language." +msgstr "Configure the primary EPG language." + +msgid "Configure the refresh rate of the screen." +msgstr "Configure the refresh rate of the screen." + +msgid "Configure the screen resolution in PC output mode." +msgstr "Configure the screen resolution in PC output mode." + +msgid "Configure the second audio language." +msgstr "Configure the second audio language." + +msgid "Configure the second subtitle language." +msgstr "Configure the second subtitle language." + +msgid "Configure the secondary EPG language." +msgstr "Configure the secondary EPG language." + +msgid "Configure the sharpness of the video scaling." +msgstr "Configure the sharpness of the video scaling." + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "Configure the skip time interval for the '1'/'3' buttons." + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "Configure the skip time interval for the '4'/'6' buttons." + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "Configure the skip time interval for the '7'/'9' buttons." + +msgid "Configure the slow motion speeds." +msgstr "Configure the slow motion speeds." + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "Configure the subtitle delay when timing information is not available." + +msgid "Configure the third audio language." +msgstr "Configure the third audio language." + +msgid "Configure the third subtitle language." +msgstr "Configure the third subtitle language." + +msgid "Configure the transparency of the OSD." +msgstr "Configure the transparency of the OSD." + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "Configure the transparency of the black background of graphical DVB subtitles." + +msgid "Configure the tuner mode." +msgstr "Configure the tuner mode." + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "Configure the type of status indication icons shown in the movielist." + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "Configure the vertical position of the subtitles, measured from the bottom of the screen." + +msgid "Configure the video output mode (or resolution)." +msgstr "Configure the video output mode (or resolution)." + +msgid "Configure the way in which the receiver changes channels." +msgstr "Configure the way in which the receiver changes channels." + +msgid "Configure where completed timers show up in the timer list." +msgstr "Configure where completed timers show up in the timer list." + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "Configure whether multi channel sound tracks should be downmixed to stereo." + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "Configure whether or not an icon should be shown when your motorized dish is moving." + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "Configure which access level to use for the configuration menu. Expert level gives access to all items." + +msgid "Configure which color format should be used on the SCART output." +msgstr "Configure which color format should be used on the SCART output." + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "Configure which tuner type will be preferred, when the same service is available on different types of tuners." + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." + +msgid "Configure your internal LAN" +msgstr "Configure your internal LAN" + +msgid "Configure your network again" +msgstr "Configure your network again" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "Configure your network settings, and press OK to start the scan" + +msgid "Configure your wireless LAN again" +msgstr "Configure your wireless LAN again" + +msgid "Configures which video output connector will be used." +msgstr "Configures which video output connector will be used." + +msgid "Configuring" +msgstr "Configuring" + +msgid "Conflicting timer" +msgstr "Conflicting timer" + +msgid "Connect" +msgstr "Connect" + +msgid "Connect to a wireless network" +msgstr "Connect to a wireless network" + +msgid "Connected satellites" +msgstr "" + +msgid "Connected to" +msgstr "Connected to" + +msgid "Connected!" +msgstr "Connected!" + +msgid "Constellation" +msgstr "Constellation" + +msgid "Content does not fit on DVD!" +msgstr "Content does not fit on DVD!" + +msgid "Continue" +msgstr "Continue" + +msgid "Continue in background" +msgstr "Continue in background" + +msgid "Continue playback" +msgstr "Continue playback" + +msgid "Continue playing" +msgstr "Continue playing" + +msgid "Continues play (loop)" +msgstr "Continues play (loop)" + +msgid "Contrast" +msgstr "Contrast" + +msgid "Convert ext3 filesystem to ext4" +msgstr "Convert ext3 filesystem to ext4" + +msgid "Convert ext3 to ext4" +msgstr "Convert ext3 to ext4" + +msgid "Converting ext3 to ext4..." +msgstr "Converting ext3 to ext4..." + +msgid "Copy" +msgstr "Copy" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "Could not connect to receiver .NFI image feed server:" + +msgid "Could not find installed channel list." +msgstr "Could not find installed channel list." + +msgid "Could not load medium! No disc inserted?" +msgstr "Could not load medium! No disc inserted?" + +msgid "Could not open Picture in Picture" +msgstr "Could not open Picture in Picture" + +#, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "Could not record due to conflicting timer %s" + +#, python-format +msgid "Could not record due to invalid service %s" +msgstr "Could not record due to invalid service %s" + +msgid "Create DVD-ISO" +msgstr "Create DVD-ISO" + +msgid "Create more detailed crash log" +msgstr "Create more detailed crash log" + +#, python-format +msgid "Creating directory %s failed." +msgstr "Creating directory %s failed." + +msgid "Creating filesystem" +msgstr "Creating filesystem" + +msgid "Creating partition" +msgstr "Creating partition" + +msgid "Croatian" +msgstr "Croatian" + +msgid "Current CEC address" +msgstr "Current CEC address" + +msgid "Current device: " +msgstr "Current device: " + +msgid "Current event EPG" +msgstr "Current event EPG" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +msgid "Current settings:" +msgstr "Current settings:" + +msgid "Current transponder" +msgstr "Current transponder" + +msgid "Current value: " +msgstr "Current value: " + +msgid "Current version:" +msgstr "Current version:" + +msgid "Currently installed image" +msgstr "Currently installed image" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +msgid "Custom skip time for '1'/'3' buttons" +msgstr "Custom skip time for '1'/'3' buttons" + +msgid "Custom skip time for '4'/'6' buttons" +msgstr "Custom skip time for '4'/'6' buttons" + +msgid "Custom skip time for '7'/'9' buttons" +msgstr "Custom skip time for '7'/'9' buttons" + +msgid "Customize" +msgstr "Customize" + +msgid "Customize channel list cursor behavior" +msgstr "" + +msgid "Cut" +msgstr "Cut" + +msgid "Cutlist editor..." +msgstr "Cutlist editor..." + +msgid "Czech" +msgstr "Czech" + +msgid "D" +msgstr "D" + +msgid "DHCP" +msgstr "DHCP" + +msgid "DMM advanced" +msgstr "DMM advanced" + +msgid "DMM normal" +msgstr "DMM normal" + +msgid "DUAL LAYER DVD" +msgstr "DUAL LAYER DVD" + +msgid "DVB subtitle black transparency" +msgstr "DVB subtitle black transparency" + +msgid "DVB-C" +msgstr "DVB-C" + +msgid "DVB-C ANNEX C" +msgstr "DVB-C ANNEX C" + +msgid "DVB-S" +msgstr "DVB-S" + +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "DVB-T" + +msgid "DVB-T2" +msgstr "DVB-T2" + +msgid "DVD data format" +msgstr "DVD data format" + +msgid "DVD file browser" +msgstr "DVD file browser" + +msgid "DVD media toolbox" +msgstr "DVD media toolbox" + +msgid "DVD player" +msgstr "DVD player" + +msgid "DVD titlelist" +msgstr "DVD titlelist" + +msgid "Danish" +msgstr "Danish" + +msgid "Date" +msgstr "Date" + +msgid "Date/time input" +msgstr "Date/time input" + +msgid "Deep standby" +msgstr "Deep standby" + +msgid "Default" +msgstr "Default" + +msgid "Default movie location" +msgstr "Default movie location" + +msgid "Default settings" +msgstr "Default settings" + +msgid "Delay before key repeat starts:" +msgstr "Delay before key repeat starts:" + +msgid "Delay for external subtitles" +msgstr "Delay for external subtitles" + +msgid "Delete" +msgstr "Delete" + +msgid "Delete entry" +msgstr "Delete entry" + +msgid "Delete failed!" +msgstr "Delete failed!" + +msgid "Delete file" +msgstr "Delete file" + +msgid "Delete playlist entry" +msgstr "Delete playlist entry" + +msgid "Delete saved playlist" +msgstr "Delete saved playlist" + +msgid "Delete timer" +msgstr "" + +msgid "Delete..." +msgstr "Delete..." + +msgid "Deleted" +msgstr "Deleted" + +msgid "Deleted items" +msgstr "Deleted items" + +msgid "Depth" +msgstr "Depth" + +msgid "Descramble http streams" +msgstr "Descramble http streams" + +msgid "Description" +msgstr "Description" + +msgid "Deselect" +msgstr "Deselect" + +msgid "Details for plugin: " +msgstr "Details for plugin: " + +msgid "Detected HDD:" +msgstr "Detected HDD:" + +msgid "Detected NIMs:" +msgstr "Detected NIMs:" + +msgid "Devicename:" +msgstr "Devicename:" + +msgid "Devide" +msgstr "" + +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +msgid "DiSEqC mode" +msgstr "DiSEqC mode" + +#, python-format +msgid "DiSEqC port %s: %s" +msgstr "DiSEqC port %s: %s" + +msgid "DiSEqC-tester settings" +msgstr "DiSEqC-tester settings" + +msgid "Dialing:" +msgstr "Dialing:" + +msgid "Digital contour removal" +msgstr "Digital contour removal" + +msgid "Direct playback of linked titles without menu" +msgstr "Direct playback of linked titles without menu" + +msgid "Directory" +msgstr "Directory" + +#, python-format +msgid "Directory %s does not exist." +msgstr "Directory %s does not exist." + +#, python-format +msgid "Directory %s nonexistent." +msgstr "" + +msgid "Directory browser" +msgstr "Directory browser" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "" + +#, fuzzy, python-format +msgid "Directory contains %s and %s." +msgstr "Directory contains %d file(s) and %d sub-directories.\n" + +msgid "Disable" +msgstr "Disable" + +msgid "Disable Picture in Picture" +msgstr "Disable Picture in Picture" + +msgid "Disable background scanning" +msgstr "Disable background scanning" + +msgid "Disable timer" +msgstr "" + +msgid "Disabled" +msgstr "Disabled" + +msgid "Disconnect" +msgstr "Disconnect" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "Disk space to reserve for recordings (in GB)" + +msgid "Display 16:9 content as" +msgstr "Display 16:9 content as" + +msgid "Display 4:3 content as" +msgstr "Display 4:3 content as" + +msgid "Display >16:9 content as" +msgstr "Display >16:9 content as" + +msgid "Display and userinterface" +msgstr "Display and userinterface" + +msgid "Display message before playing next movie" +msgstr "Display message before playing next movie" + +msgid "Display setup" +msgstr "Display setup" + +msgid "Do not change" +msgstr "Do not change" + +msgid "Do not record" +msgstr "Do not record" + +msgid "Do nothing" +msgstr "Do nothing" + +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" + +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Do you really want to delete %s?" + +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"Do you really want to download\n" +"the plugin \"%s\"?" + +msgid "Do you really want to exit?" +msgstr "Do you really want to exit?" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" + +#, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"Do you really want to remove\n" +"the plugin \"%s\"?" + +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Do you really want to remove directory %s from the disk?" + +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Do you really want to remove your bookmark of %s?" + +msgid "Do you want this?" +msgstr "" + +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Do you want to burn this collection to DVD medium?" + +msgid "Do you want to do a service scan?" +msgstr "Do you want to do a service scan?" + +msgid "Do you want to do another manual service scan?" +msgstr "Do you want to do another manual service scan?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "Do you want to download the image to %s ?" + +msgid "Do you want to install a channel list?" +msgstr "Do you want to install a channel list?" + +msgid "Do you want to install the package:\n" +msgstr "Do you want to install the package:\n" + +msgid "Do you want to play DVD in drive?" +msgstr "Do you want to play DVD in drive?" + +msgid "Do you want to preview this DVD before burning?" +msgstr "Do you want to preview this DVD before burning?" + +msgid "Do you want to reboot your receiver?" +msgstr "Do you want to reboot your receiver?" + +msgid "Do you want to remove the package:\n" +msgstr "Do you want to remove the package:\n" + +msgid "Do you want to restore your settings?" +msgstr "Do you want to restore your settings?" + +msgid "Do you want to resume this playback?" +msgstr "Do you want to resume this playback?" + +#, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Do you want to update your receiver to %s?" + +msgid "Do you want to update your receiver?" +msgstr "Do you want to update your receiver?" + +msgid "Do you want to upgrade the package:\n" +msgstr "Do you want to upgrade the package:\n" + +msgid "Don't stop current event but disable coming events" +msgstr "Don't stop current event but disable coming events" + +#, fuzzy, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "Done - Installed, upgraded or removed %d packages with %d errors" +msgstr[1] "Done - Installed, upgraded or removed %d packages with %d errors" + +msgid "Download" +msgstr "Download" + +#, python-format +msgid "Download %s from server" +msgstr "Download %s from server" + +msgid "Download .NFI-files for USB-flasher" +msgstr "Download .NFI-files for USB-flasher" + +msgid "Download plugins" +msgstr "Download plugins" + +msgid "Downloadable new plugins" +msgstr "Downloadable new plugins" + +msgid "Downloadable plugins" +msgstr "Downloadable plugins" + +msgid "Downloading" +msgstr "Downloading" + +msgid "Downloading plugin information. Please wait..." +msgstr "Downloading plugin information. Please wait..." + +msgid "Dutch" +msgstr "Dutch" + +msgid "Dynamic contrast" +msgstr "Dynamic contrast" + +msgid "E" +msgstr "E" + +msgid "EPG" +msgstr "EPG" + +msgid "EPG language selection 1" +msgstr "EPG language selection 1" + +msgid "EPG language selection 2" +msgstr "EPG language selection 2" + +msgid "EPG selection" +msgstr "EPG selection" + +msgid "EPG settings" +msgstr "EPG settings" + +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "ERROR - failed to scan (%s)!" + +msgid "East" +msgstr "East" + +msgid "East limit set" +msgstr "East limit set" + +msgid "Edit" +msgstr "Edit" + +msgid "Edit DNS" +msgstr "Edit DNS" + +msgid "Edit bouquets list" +msgstr "Edit bouquets list" + +msgid "Edit chapters of current title" +msgstr "Edit chapters of current title" + +msgid "Edit services list" +msgstr "Edit services list" + +msgid "Edit settings" +msgstr "Edit settings" + +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "Edit the nameserver configuration of your receiver.\n" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "Edit the network configuration of your receiver.\n" + +msgid "Edit timer" +msgstr "" + +msgid "Edit title" +msgstr "Edit title" + +msgid "Edit upgrade source url." +msgstr "Edit upgrade source url." + +msgid "Education/Science/..." +msgstr "Education/Science/..." + +msgid "Electronic Program Guide" +msgstr "Electronic Program Guide" + +msgid "Enable" +msgstr "Enable" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +msgid "Enable 5V for active antenna" +msgstr "Enable 5V for active antenna" + +msgid "Enable EIT EPG" +msgstr "Enable EIT EPG" + +msgid "Enable MHW EPG" +msgstr "Enable MHW EPG" + +msgid "Enable Netmed EPG" +msgstr "Enable Netmed EPG" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "Enable ViaSat EPG" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +msgid "Enable bouquet selection in multi-EPG" +msgstr "Enable bouquet selection in multi-EPG" + +msgid "Enable freesat EPG" +msgstr "Enable freesat EPG" + +msgid "Enable multiple bouquets" +msgstr "Enable multiple bouquets" + +msgid "Enable parental control" +msgstr "Enable parental control" + +msgid "Enable teletext caching" +msgstr "Enable teletext caching" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +msgid "Enabled" +msgstr "Enabled" + +msgid "Encrypted: " +msgstr "Encrypted: " + +msgid "Encryption" +msgstr "Encryption" + +msgid "Encryption key" +msgstr "Encryption key" + +msgid "Encryption key type" +msgstr "Encryption key type" + +msgid "Encryption:" +msgstr "Encryption:" + +msgid "End time" +msgstr "End time" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +msgid "English" +msgstr "English" + +msgid "Enigma2 skin selector" +msgstr "Enigma2 skin selector" + +msgid "Enter main menu..." +msgstr "Enter main menu..." + +msgid "Enter pin code" +msgstr "Enter pin code" + +msgid "Enter the service pin" +msgstr "Enter the service pin" + +msgid "Equal to" +msgstr "" + +msgid "Error" +msgstr "Error" + +msgid "Error code" +msgstr "Error code" + +msgid "Error executing plugin" +msgstr "Error executing plugin" + +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Error: %s\n" +"Retry?" + +msgid "Estonian" +msgstr "Estonian" + +msgid "Ethernet network interface" +msgstr "Ethernet network interface" + +msgid "Event font size (relative to skin size)" +msgstr "Event font size (relative to skin size)" + +msgid "Event view" +msgstr "Event view" + +msgid "Event view menu" +msgstr "Event view menu" + +msgid "Everywhere" +msgstr "Everywhere" + +msgid "Exceeds dual layer medium!" +msgstr "Exceeds dual layer medium!" + +msgid "Execution finished!!" +msgstr "Execution finished!!" + +msgid "Execution progress:" +msgstr "Execution progress:" + +msgid "Exif" +msgstr "Exif" + +msgid "Exit" +msgstr "Exit" + +msgid "Exit EPG" +msgstr "Exit EPG" + +msgid "Exit editor" +msgstr "Exit editor" + +msgid "Exit input device selection." +msgstr "Exit input device selection." + +msgid "Exit media player?" +msgstr "Exit media player?" + +msgid "Exit mediaplayer" +msgstr "Exit mediaplayer" + +msgid "Exit movie list" +msgstr "Exit movie list" + +msgid "Exit movie player?" +msgstr "Exit movie player?" + +msgid "Exit nameserver configuration" +msgstr "Exit nameserver configuration" + +msgid "Exit network interface list" +msgstr "Exit network interface list" + +msgid "Exit network wizard" +msgstr "Exit network wizard" + +msgid "Exit the wizard" +msgstr "Exit the wizard" + +msgid "Expert" +msgstr "Expert" + +msgid "Extend sleeptimer 15 minutes" +msgstr "" + +msgid "Extended Software" +msgstr "Extended Software" + +msgid "Extended Software Plugin" +msgstr "Extended Software Plugin" + +msgid "Extended network setup plugin..." +msgstr "Extended network setup plugin..." + +msgid "Extended setup..." +msgstr "Extended setup..." + +msgid "Extensions" +msgstr "Extensions" + +msgid "Extensions management" +msgstr "Extensions management" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "External subtitle color" + +msgid "Extra motor options" +msgstr "" + +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "FTA" + +msgid "Factory reset" +msgstr "Factory reset" + +msgid "Failed" +msgstr "Failed" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "Failed to write /tmp/positionersetup.log: " + +#, python-format +msgid "Fan %d" +msgstr "Fan %d" + +#, python-format +msgid "Fan %d PWM" +msgstr "Fan %d PWM" + +#, python-format +msgid "Fan %d voltage" +msgstr "Fan %d voltage" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +msgid "Fast" +msgstr "Fast" + +msgid "Fast DiSEqC" +msgstr "Fast DiSEqC" + +msgid "Fast Scan" +msgstr "Fast Scan" + +msgid "Fast epoch" +msgstr "Fast epoch" + +msgid "Fast forward speeds" +msgstr "Fast forward speeds" + +msgid "Favourites" +msgstr "Favourites" + +msgid "File appears to be busy.\n" +msgstr "File appears to be busy.\n" + +msgid "Filesystem check" +msgstr "Filesystem check" + +msgid "Final position at" +msgstr "Final position at" + +msgid "Final position at index" +msgstr "Final position at index" + +msgid "Fine movement" +msgstr "Fine movement" + +msgid "Finetune" +msgstr "Finetune" + +msgid "Finished" +msgstr "Finished" + +msgid "Finished configuring your network" +msgstr "Finished configuring your network" + +msgid "Finished restarting your network" +msgstr "Finished restarting your network" + +msgid "Finnish" +msgstr "Finnish" + +msgid "Fixed" +msgstr "Fixed" + +msgid "Flash" +msgstr "Flash" + +msgid "Flashing failed" +msgstr "Flashing failed" + +msgid "Following tasks will be done after you press OK!" +msgstr "Following tasks will be done after you press OK!" + +msgid "Format" +msgstr "Format" + +msgid "Forward volume keys" +msgstr "Forward volume keys" + +msgid "Frame size in full view" +msgstr "Frame size in full view" + +msgid "French" +msgstr "French" + +msgid "Frequency" +msgstr "Frequency" + +msgid "Frequency bands" +msgstr "Frequency bands" + +msgid "Frequency scan step size(khz)" +msgstr "Frequency scan step size(khz)" + +msgid "Frequency steps" +msgstr "Frequency steps" + +msgid "Frequency:" +msgstr "" + +msgid "Fri" +msgstr "Fri" + +msgid "Friday" +msgstr "Friday" + +msgid "From :" +msgstr "From :" + +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Frontprocessor version: %d" + +msgid "Full transparency" +msgstr "Full transparency" + +msgid "Fulview resulution" +msgstr "" + +msgid "Function of OK button" +msgstr "Function of OK button" + +msgid "Further Options" +msgstr "" + +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" + +msgid "Gateway" +msgstr "Gateway" + +msgid "General AC3 delay" +msgstr "General AC3 delay" + +msgid "General PCM delay" +msgstr "General PCM delay" + +msgid "Genre" +msgstr "Genre" + +msgid "German" +msgstr "German" + +msgid "Get latest experimental image" +msgstr "Get latest experimental image" + +msgid "Get latest release image" +msgstr "Get latest release image" + +msgid "Getting plugin information. Please wait..." +msgstr "Getting plugin information. Please wait..." + +msgid "Go down the list" +msgstr "Go down the list" + +msgid "Go to first movie or last item" +msgstr "Go to first movie or last item" + +msgid "Go to first movie or top of list" +msgstr "Go to first movie or top of list" + +msgid "Go to first service" +msgstr "Go to first service" + +msgid "Go to last service" +msgstr "Go to last service" + +msgid "Go to next event" +msgstr "Go to next event" + +msgid "Go to next page of service" +msgstr "Go to next page of service" + +msgid "Go to previous event" +msgstr "Go to previous event" + +msgid "Go to previous page of service" +msgstr "Go to previous page of service" + +msgid "Go up the list" +msgstr "Go up the list" + +msgid "Goto" +msgstr "Goto" + +msgid "Goto 0" +msgstr "Goto 0" + +msgid "Goto :" +msgstr "Goto :" + +msgid "Goto X" +msgstr "Goto X" + +msgid "Goto index position" +msgstr "Goto index position" + +msgid "Goto next day of events" +msgstr "" + +msgid "Goto next page of events" +msgstr "Goto next page of events" + +msgid "Goto position" +msgstr "Goto position" + +msgid "Goto previous day of events" +msgstr "" + +msgid "Goto previous page of events" +msgstr "Goto previous page of events" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "GotoX calibration" + +msgid "GraphMultiEpg Settings" +msgstr "GraphMultiEpg Settings" + +msgid "Graphical Multi EPG" +msgstr "Graphical Multi EPG" + +msgid "Greek" +msgstr "Greek" + +msgid "Green boost" +msgstr "Green boost" + +msgid "Guard interval" +msgstr "Guard interval" + +msgid "HD list" +msgstr "HD list" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "Handle standby from TV" + +msgid "Handle wakeup from TV" +msgstr "Handle wakeup from TV" + +msgid "Hard disk" +msgstr "Hard disk" + +msgid "Hard disk setup" +msgstr "Hard disk setup" + +msgid "Hard disk standby after" +msgstr "Hard disk standby after" + +msgid "Harddisk" +msgstr "Harddisk" + +msgid "Hardware: " +msgstr "Hardware: " + +msgid "Hebrew" +msgstr "Hebrew" + +msgid "Helps setting up your dish" +msgstr "" + +msgid "Hidden network" +msgstr "Hidden network" + +msgid "Hide CI messages" +msgstr "Hide CI messages" + +msgid "Hide channel list in radio mode" +msgstr "Hide channel list in radio mode" + +msgid "Hide known extensions" +msgstr "" + +msgid "Hide number markers" +msgstr "Hide number markers" + +msgid "Hide player" +msgstr "Hide player" + +msgid "Hide zap errors" +msgstr "Hide zap errors" + +msgid "Hierarchy info" +msgstr "Hierarchy info" + +msgid "Hierarchy information" +msgstr "Hierarchy information" + +msgid "High bitrate support" +msgstr "High bitrate support" + +msgid "Hold screen" +msgstr "Hold screen" + +msgid "Hold till locked" +msgstr "Hold till locked" + +msgid "Home" +msgstr "Home" + +msgid "Horizontal" +msgstr "Horizontal" + +msgid "Horizontal turning speed" +msgstr "Horizontal turning speed" + +msgid "How many minutes do you want to record?" +msgstr "How many minutes do you want to record?" + +msgid "Hue" +msgstr "Hue" + +msgid "Hungarian" +msgstr "Hungarian" + +msgid "IP address" +msgstr "IP address" + +msgid "ISO file is too large for this filesystem!" +msgstr "ISO file is too large for this filesystem!" + +msgid "ISO path" +msgstr "ISO path" + +msgid "Icons" +msgstr "Icons" + +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." + +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." + +msgid "Image: " +msgstr "Image: " + +msgid "Immediate shutdown" +msgstr "Immediate shutdown" + +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "In order to record a timer, the TV was switched to the recording service!\n" + +msgid "In progress" +msgstr "In progress" + +msgid "Inactivity Sleeptimer" +msgstr "" + +msgid "Include AIT in http streams" +msgstr "Include AIT in http streams" + +msgid "Include ECM in http streams" +msgstr "Include ECM in http streams" + +msgid "Include EIT in http streams" +msgstr "Include EIT in http streams" + +msgid "Incorrect type service for PiP!" +msgstr "" + +msgid "Increased voltage" +msgstr "Increased voltage" + +msgid "Index" +msgstr "Index" + +msgid "Index allocated:" +msgstr "Index allocated:" + +msgid "Info" +msgstr "Info" + +msgid "Info bar" +msgstr "Info bar" + +msgid "Info bar timeout" +msgstr "Info bar timeout" + +msgid "Infobar frontend data source" +msgstr "" + +msgid "Information" +msgstr "Information" + +msgid "Init" +msgstr "Init" + +msgid "Initial fast forward speed" +msgstr "Initial fast forward speed" + +msgid "Initial location in new timers" +msgstr "Initial location in new timers" + +msgid "Initial lock ratio" +msgstr "Initial lock ratio" + +msgid "Initial rewind speed" +msgstr "Initial rewind speed" + +msgid "Initial signal quality" +msgstr "Initial signal quality" + +msgid "Initial signal quality:" +msgstr "Initial signal quality:" + +msgid "Initialization" +msgstr "Initialization" + +msgid "Initialize" +msgstr "Initialize" + +msgid "Initializing storage device..." +msgstr "Initializing storage device..." + +msgid "Input" +msgstr "Input" + +msgid "Input device setup" +msgstr "Input device setup" + +msgid "Input devices" +msgstr "Input devices" + +msgid "Install" +msgstr "Install" + +msgid "Install a new image with a USB stick" +msgstr "Install a new image with a USB stick" + +msgid "Install a new image with your web browser" +msgstr "Install a new image with your web browser" + +msgid "Install channel list" +msgstr "Install channel list" + +msgid "Install extensions" +msgstr "" + +msgid "Install extensions." +msgstr "Install extensions." + +msgid "Install local extension" +msgstr "Install local extension" + +msgid "Install picons on" +msgstr "Install picons on" + +msgid "Install softcam" +msgstr "Install softcam" + +msgid "Installation has completed." +msgstr "Installation has completed." + +msgid "Installation or removal has completed." +msgstr "Installation or removal has completed." + +msgid "Installing" +msgstr "Installing" + +msgid "Installing software..." +msgstr "Installing software..." + +msgid "Instant recording location" +msgstr "Instant recording location" + +msgid "Instant recording..." +msgstr "Instant recording..." + +msgid "Interface: " +msgstr "Interface: " + +msgid "Intermediate" +msgstr "Intermediate" + +msgid "Internal flash" +msgstr "Internal flash" + +msgid "Internal hdd only" +msgstr "Internal hdd only" + +msgid "Interval between keys when repeating:" +msgstr "Interval between keys when repeating:" + +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Invalid directory selected: %s" + +msgid "Invalid location" +msgstr "Invalid location" + +msgid "Invalid transponder data" +msgstr "" + +msgid "Inversion" +msgstr "Inversion" + +msgid "Invert" +msgstr "Invert" + +msgid "Ipkg" +msgstr "Ipkg" + +msgid "Is this setting ok?" +msgstr "Is this setting ok?" + +msgid "Is this video mode ok?" +msgstr "Is this video mode ok?" + +msgid "Italian" +msgstr "Italian" + +msgid "Items per page " +msgstr "Items per page " + +msgid "Items per page for list screen" +msgstr "Items per page for list screen" + +msgid "Job overview" +msgstr "Job overview" + +msgid "Jump to beginning of list" +msgstr "Jump to beginning of list" + +msgid "Jump to end of list" +msgstr "Jump to end of list" + +msgid "Jump to next marked position" +msgstr "Jump to next marked position" + +msgid "Jump to previous marked position" +msgstr "Jump to previous marked position" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +msgid "Just scale" +msgstr "Just scale" + +msgid "Keep service" +msgstr "" + +msgid "Kernel version: " +msgstr "Kernel version: " + +msgid "Keyboard" +msgstr "Keyboard" + +msgid "Keyboard map" +msgstr "Keyboard map" + +msgid "Keyboard setup" +msgstr "Keyboard setup" + +msgid "LAN adapter" +msgstr "LAN adapter" + +msgid "LAN connection" +msgstr "LAN connection" + +msgid "LNB" +msgstr "LNB" + +msgid "Language" +msgstr "Language" + +msgid "Language selection" +msgstr "Language selection" + +msgid "Last config" +msgstr "Last config" + +msgid "Last speed" +msgstr "Last speed" + +msgid "Last upgrade: " +msgstr "Last upgrade: " + +msgid "Latest Commits" +msgstr "" + +msgid "Latitude" +msgstr "Latitude" + +msgid "Latvian" +msgstr "Latvian" + +msgid "Leave DVD player?" +msgstr "Leave DVD player?" + +msgid "Left" +msgstr "Left" + +msgid "Left from servicename" +msgstr "Left from servicename" + +msgid "Leisure hobbies" +msgstr "Leisure hobbies" + +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Letterbox" + +msgid "Letterbox zoom" +msgstr "" + +msgid "Limit character set for recording filenames" +msgstr "Limit character set for recording filenames" + +msgid "Limit east" +msgstr "Limit east" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." + +msgid "Limit west" +msgstr "Limit west" + +msgid "Limits cancelled" +msgstr "Limits cancelled" + +msgid "Limits enabled" +msgstr "Limits enabled" + +msgid "Limits off" +msgstr "Limits off" + +msgid "Limits on" +msgstr "Limits on" + +msgid "Link quality:" +msgstr "Link quality:" + +msgid "Link:" +msgstr "Link:" + +msgid "Linked titles with a DVD menu" +msgstr "Linked titles with a DVD menu" + +msgid "List EPG functions..." +msgstr "List EPG functions..." + +msgid "List available networks" +msgstr "List available networks" + +msgid "List mode" +msgstr "List mode" + +msgid "List of storage devices" +msgstr "List of storage devices" + +msgid "List type" +msgstr "List type" + +#, fuzzy, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "List version %d, found %d channels" +msgstr[1] "List version %d, found %d channels" + +msgid "Listen to the radio..." +msgstr "Listen to the radio..." + +msgid "Lists reloaded!" +msgstr "" + +msgid "Lithuanian" +msgstr "Lithuanian" + +msgid "Load" +msgstr "Load" + +msgid "Load Length of Movies in Movielist" +msgstr "" + +msgid "Load length of movies in movie list" +msgstr "Load length of movies in movie list" + +msgid "Load playlist" +msgstr "Load playlist" + +msgid "Local network" +msgstr "Local network" + +msgid "Location" +msgstr "Location" + +msgid "Location for instant recordings" +msgstr "Location for instant recordings" + +msgid "Lock ratio" +msgstr "Lock ratio" + +msgid "Lock:" +msgstr "Lock:" + +msgid "Log results to harddisk" +msgstr "Log results to harddisk" + +msgid "Long filenames" +msgstr "Long filenames" + +msgid "Long key press" +msgstr "Long key press" + +msgid "Longitude" +msgstr "Longitude" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "Luxembourgish" + +msgid "MMC card" +msgstr "MMC card" + +msgid "MORE" +msgstr "MORE" + +msgid "Main menu" +msgstr "Main menu" + +msgid "Maintain old EPG data for" +msgstr "Maintain old EPG data for" + +msgid "Make this mark an 'in' point" +msgstr "Make this mark an 'in' point" + +msgid "Make this mark an 'out' point" +msgstr "Make this mark an 'out' point" + +msgid "Make this mark just a mark" +msgstr "Make this mark just a mark" + +msgid "Manage extensions" +msgstr "Manage extensions" + +msgid "Manage your receiver's software" +msgstr "Manage your receiver's software" + +msgid "Manual" +msgstr "" + +msgid "Manual Scan" +msgstr "Manual Scan" + +msgid "Manual configuration" +msgstr "Manual configuration" + +msgid "Manual scan" +msgstr "Manual scan" + +msgid "Manual transponder" +msgstr "Manual transponder" + +msgid "Manufacturer" +msgstr "Manufacturer" + +msgid "Margin after recording (minutes)" +msgstr "Margin after recording (minutes)" + +msgid "Margin before recording (minutes)" +msgstr "Margin before recording (minutes)" + +msgid "Max memory positions" +msgstr "" + +msgid "Max. bitrate: " +msgstr "Max. bitrate: " + +msgid "Media player" +msgstr "Media player" + +msgid "Media scanner" +msgstr "Media scanner" + +msgid "Medium is not a writeable DVD!" +msgstr "Medium is not a writeable DVD!" + +msgid "Medium is not empty!" +msgstr "Medium is not empty!" + +msgid "Memory" +msgstr "Memory" + +msgid "Memory index" +msgstr "Memory index" + +msgid "Menu" +msgstr "Menu" + +msgid "Message" +msgstr "Message" + +msgid "Message..." +msgstr "Message..." + +#, python-format +msgid "Minimum age %d years" +msgstr "Minimum age %d years" + +#, fuzzy +msgid "Minimum send interval" +msgstr "Minimum age %d years" + +msgid "Missing " +msgstr "Missing " + +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Mode" + +msgctxt "Video output mode" +msgid "Mode" +msgstr "Mode" + +msgid "Model: " +msgstr "Model: " + +msgid "Modulation" +msgstr "Modulation" + +msgid "Modulator" +msgstr "Modulator" + +msgid "Mon" +msgstr "Mon" + +msgid "Mon-Fri" +msgstr "Mon-Fri" + +msgid "Monday" +msgstr "Monday" + +msgid "Mosquito noise reduction" +msgstr "Mosquito noise reduction" + +msgid "Mount" +msgstr "Mount" + +msgid "Move" +msgstr "Move" + +msgid "Move PiP to main picture" +msgstr "Move PiP to main picture" + +msgid "Move Picture in Picture" +msgstr "Move Picture in Picture" + +msgid "Move east" +msgstr "Move east" + +msgid "Move to other directory" +msgstr "Move to other directory" + +msgid "Move to position X" +msgstr "Move to position X" + +msgid "Move west" +msgstr "Move west" + +msgid "Moved to position 0" +msgstr "Moved to position 0" + +msgid "Moved to position at index" +msgstr "Moved to position at index" + +msgid "Movement" +msgstr "Movement" + +msgid "Movie List Configuration" +msgstr "" + +msgid "Movie Selection" +msgstr "" + +msgid "Movie list configuration" +msgstr "Movie list configuration" + +msgid "Movie location" +msgstr "Movie location" + +msgid "Movie selection" +msgstr "Movie selection" + +msgid "Movie/Drama" +msgstr "Movie/Drama" + +msgid "Movielist menu" +msgstr "Movielist menu" + +msgid "Moving" +msgstr "Moving" + +msgid "Moving east ..." +msgstr "Moving east ..." + +msgid "Moving to position" +msgstr "Moving to position" + +msgid "Moving west ..." +msgstr "Moving west ..." + +msgid "Multi EPG" +msgstr "Multi EPG" + +msgid "Multi-EPG bouquet selection" +msgstr "Multi-EPG bouquet selection" + +msgid "Multimedia" +msgstr "Multimedia" + +msgid "Multiple service support" +msgstr "Multiple service support" + +msgid "Multiplex" +msgstr "Multiplex" + +msgid "Multisat" +msgstr "Multisat" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "Music/Ballet/Dance" + +msgid "Mute" +msgstr "Mute" + +msgid "N/A" +msgstr "N/A" + +msgid "NEXT" +msgstr "NEXT" + +msgid "NFI image flashing" +msgstr "NFI image flashing" + +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "NFI image flashing completed. Press Yellow to Reboot!" + +msgid "NIM" +msgstr "NIM" + +msgid "NOW" +msgstr "NOW" + +msgid "NTSC" +msgstr "NTSC" + +msgid "Name" +msgstr "Name" + +msgid "Nameserver" +msgstr "Nameserver" + +#, python-format +msgid "Nameserver %d" +msgstr "Nameserver %d" + +msgid "Nameserver settings" +msgstr "Nameserver settings" + +msgid "Nameserver setup" +msgstr "Nameserver setup" + +msgid "Namespace" +msgstr "Namespace" + +msgid "Netmask" +msgstr "Netmask" + +msgid "Network" +msgstr "Network" + +msgid "Network ID" +msgstr "Network ID" + +msgid "Network configuration..." +msgstr "Network configuration..." + +msgid "Network mount" +msgstr "Network mount" + +#, python-format +msgid "Network mount %s" +msgstr "Network mount %s" + +msgid "Network name (SSID)" +msgstr "Network name (SSID)" + +msgid "Network scan" +msgstr "Network scan" + +msgid "Network setup" +msgstr "Network setup" + +msgid "Network test" +msgstr "Network test" + +msgid "Network test..." +msgstr "Network test..." + +msgid "Network test: " +msgstr "Network test: " + +msgid "Network wizard" +msgstr "Network wizard" + +msgid "Network:" +msgstr "Network:" + +msgid "New" +msgstr "New" + +msgid "New PIN" +msgstr "New PIN" + +msgid "New version:" +msgstr "New version:" + +msgid "News Current Affairs" +msgstr "News Current Affairs" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "Next" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "Next" + +msgid "No" +msgstr "No" + +msgid "No (supported) DVDROM found!" +msgstr "No (supported) DVDROM found!" + +msgid "No Connection" +msgstr "No Connection" + +msgid "No HDD found or HDD not initialized!" +msgstr "No HDD found or HDD not initialized!" + +msgid "No backup needed" +msgstr "No backup needed" + +msgid "No cable tuner found!" +msgstr "No cable tuner found!" + +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"No data on transponder!\n" +"(Timeout reading PAT)" + +msgid "No delay" +msgstr "No delay" + +msgid "No description available." +msgstr "No description available." + +msgid "No details for this image file" +msgstr "No details for this image file" + +msgid "No displayable files on this medium found!" +msgstr "No displayable files on this medium found!" + +msgid "No event info found, recording indefinitely." +msgstr "No event info found, recording indefinitely." + +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" + +msgid "No free index available" +msgstr "No free index available" + +msgid "No free tuner!" +msgstr "No free tuner!" + +msgid "No network connection available." +msgstr "No network connection available." + +msgid "No networks found" +msgstr "No networks found" + +msgid "No new plugins found" +msgstr "" + +msgid "No positioner capable frontend found." +msgstr "No positioner capable frontend found." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "" + +msgid "No services/providers selected" +msgstr "No services/providers selected" + +msgid "No standby" +msgstr "No standby" + +msgid "No suitable sat tuner found!" +msgstr "" + +msgid "No tags are set on these movies." +msgstr "No tags are set on these movies." + +msgid "No timeout" +msgstr "No timeout" + +msgid "No to all" +msgstr "No to all" + +msgid "No transparency" +msgstr "No transparency" + +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "No tuner is configured for use with a diseqc positioner!" + +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." + +msgid "No updates available" +msgstr "No updates available" + +msgid "No updates available. Please try again later." +msgstr "No updates available. Please try again later." + +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" + +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" + +msgid "No wireless networks found! Searching..." +msgstr "No wireless networks found! Searching..." + +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." + +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." + +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." + +msgid "No, but restart from begin" +msgstr "No, but restart from begin" + +msgid "No, do nothing." +msgstr "No, do nothing." + +msgid "No, just start my receiver" +msgstr "No, just start my receiver" + +msgid "No, never" +msgstr "No, never" + +msgid "None" +msgstr "None" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Nonlinear" + +msgid "Normal mode" +msgstr "Normal mode" + +msgid "North" +msgstr "North" + +msgid "Norwegian" +msgstr "Norwegian" + +msgid "Not associated" +msgstr "Not associated" + +msgid "Not configured" +msgstr "" + +#, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" + +msgid "Nothing connected" +msgstr "" + +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "Now" + +msgid "Now playing" +msgstr "Now playing" + +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." + +msgid "OK" +msgstr "OK" + +msgid "OK, guide me through the upgrade process" +msgstr "OK, guide me through the upgrade process" + +msgid "ONID" +msgstr "ONID" + +msgid "OSD name request" +msgstr "OSD name request" + +msgid "OSD settings" +msgstr "OSD settings" + +msgid "OSD transparency" +msgstr "OSD transparency" + +msgid "Off" +msgstr "Off" + +msgid "Offline decode delay (ms)" +msgstr "Offline decode delay (ms)" + +msgid "Ok" +msgstr "Ok" + +msgid "On" +msgstr "On" + +msgid "On end of movie" +msgstr "On end of movie" + +msgid "On end of movie (as menu)" +msgstr "" + +msgid "One" +msgstr "One" + +msgid "Only extensions." +msgstr "Only extensions." + +msgid "Only free scan" +msgstr "Only free scan" + +msgid "Open service list" +msgstr "Open service list" + +msgid "Open the movie list" +msgstr "Open the movie list" + +msgid "Orbital position" +msgstr "Orbital position" + +msgid "Original" +msgstr "Original" + +msgid "Other" +msgstr "Other" + +msgid "Output" +msgstr "Output" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "Overwrite configuration files during software upgrade?" + +msgid "Overwrite configuration files?" +msgstr "Overwrite configuration files?" + +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "PCR PID" + +msgid "PIDs" +msgstr "PIDs" + +msgid "PIN code needed" +msgstr "PIN code needed" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "PMT PID" + +msgid "Package list update" +msgstr "Package list update" + +msgid "Packet management" +msgstr "Packet management" + +msgid "Packet manager" +msgstr "Packet manager" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +msgid "Pan&scan" +msgstr "Pan&scan" + +msgid "Parent directory" +msgstr "Parent directory" + +msgid "Parental control" +msgstr "Parental control" + +msgid "Parental control services editor" +msgstr "Parental control services editor" + +msgid "Parental control setup" +msgstr "Parental control setup" + +msgid "Parental control type" +msgstr "Parental control type" + +msgid "Password" +msgstr "Password" + +msgid "Pause" +msgstr "Pause" + +msgid "Pause movie at end" +msgstr "Pause movie at end" + +msgid "Pause playback" +msgstr "Pause playback" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "Percentage left" + +msgid "Percentage right" +msgstr "Percentage right" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "Permanently delete all recordings in the trash can?" + +msgid "Permanently remove all deleted items" +msgstr "Permanently remove all deleted items" + +msgid "Persian" +msgstr "Persian" + +msgid "Phone number" +msgstr "Phone number" + +msgid "PiP setup" +msgstr "PiP setup" + +msgid "Picon" +msgstr "Picon" + +msgid "Picon and service name" +msgstr "Picon and service name" + +msgid "Picture player" +msgstr "Picture player" + +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Pillarbox" + +msgid "Pilot" +msgstr "Pilot" + +msgid "Play" +msgstr "Play" + +msgid "Play DVD" +msgstr "Play DVD" + +msgid "Play audio in background" +msgstr "Play audio in background" + +msgid "Play audio-CD..." +msgstr "Play audio-CD..." + +msgid "Play back media files" +msgstr "Play back media files" + +msgid "Play entry" +msgstr "Play entry" + +msgid "Play from next mark or playlist entry" +msgstr "Play from next mark or playlist entry" + +msgid "Play from previous mark or playlist entry" +msgstr "Play from previous mark or playlist entry" + +msgid "Play music..." +msgstr "Play music..." + +msgid "Play next" +msgstr "Play next" + +msgid "Play next (return to movie list)" +msgstr "Play next (return to movie list)" + +msgid "Play next (return to previous service)" +msgstr "Play next (return to previous service)" + +msgid "Play previous" +msgstr "Play previous" + +msgid "Play recorded movies..." +msgstr "Play recorded movies..." + +msgid "Please add titles to the compilation." +msgstr "Please add titles to the compilation." + +msgid "Please change recording endtime" +msgstr "Please change recording endtime" + +msgid "Please check your network settings!" +msgstr "Please check your network settings!" + +msgid "Please choose an extension..." +msgstr "Please choose an extension..." + +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." + +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." + +msgid "Please connect your receiver to the internet" +msgstr "Please connect your receiver to the internet" + +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Please do not change any values unless you know what you are doing!" + +msgid "Please enter a name for the new bouquet" +msgstr "Please enter a name for the new bouquet" + +msgid "Please enter a name for the new marker" +msgstr "Please enter a name for the new marker" + +msgid "Please enter a new filename" +msgstr "Please enter a new filename" + +msgid "Please enter filename (empty = use current date)" +msgstr "Please enter filename (empty = use current date)" + +msgid "Please enter name of the new directory" +msgstr "Please enter name of the new directory" + +msgid "Please enter new name:" +msgstr "" + +msgid "Please enter the correct pin code" +msgstr "Please enter the correct pin code" + +msgid "Please enter the old PIN code" +msgstr "Please enter the old PIN code" + +msgid "Please follow the instructions on the TV" +msgstr "Please follow the instructions on the TV" + +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." + +msgid "Please press OK to continue." +msgstr "Please press OK to continue." + +msgid "Please select a default EPG type..." +msgstr "Please select a default EPG type..." + +msgid "Please select a playlist to delete..." +msgstr "Please select a playlist to delete..." + +msgid "Please select a playlist..." +msgstr "Please select a playlist..." + +msgid "Please select a sub service..." +msgstr "Please select a sub service..." + +msgid "Please select a subservice to record..." +msgstr "Please select a subservice to record..." + +msgid "Please select a subservice..." +msgstr "Please select a subservice..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "Please select an NFI file and press green key to flash!" + +msgid "Please select medium to be scanned" +msgstr "Please select medium to be scanned" + +msgid "Please select medium to use as backup location" +msgstr "Please select medium to use as backup location" + +msgid "Please select tag to filter..." +msgstr "Please select tag to filter..." + +msgid "Please select the movie path..." +msgstr "Please select the movie path..." + +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." + +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." + +msgid "Please set up tuner A" +msgstr "Please set up tuner A" + +msgid "Please set up tuner B" +msgstr "Please set up tuner B" + +msgid "Please set up tuner C" +msgstr "Please set up tuner C" + +msgid "Please set up tuner D" +msgstr "Please set up tuner D" + +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." + +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." + +msgid "Please wait" +msgstr "" + +msgid "Please wait (downloading channel list)" +msgstr "Please wait (downloading channel list)" + +msgid "Please wait (downloading softcam)" +msgstr "Please wait (downloading softcam)" + +msgid "Please wait (updating packages)" +msgstr "Please wait (updating packages)" + +msgid "Please wait for activation of your network configuration..." +msgstr "Please wait for activation of your network configuration..." + +msgid "Please wait while scanning is in progress..." +msgstr "Please wait while scanning is in progress..." + +msgid "Please wait while we configure your network..." +msgstr "Please wait while we configure your network..." + +msgid "Please wait while we prepare your network interfaces..." +msgstr "Please wait while we prepare your network interfaces..." + +msgid "Please wait while we test your network..." +msgstr "Please wait while we test your network..." + +msgid "Please wait while your network is restarting..." +msgstr "Please wait while your network is restarting..." + +msgid "Please wait..." +msgstr "Please wait..." + +msgid "Please wait... Loading list..." +msgstr "Please wait... Loading list..." + +msgid "Plugin browser" +msgstr "Plugin browser" + +msgid "Plugin manager activity information" +msgstr "Plugin manager activity information" + +msgid "Plugin manager help" +msgstr "Plugin manager help" + +msgid "Plugins" +msgstr "Plugins" + +msgid "Polarisation" +msgstr "Polarisation" + +msgid "Polarisation:" +msgstr "" + +msgid "Polarization" +msgstr "Polarization" + +msgid "Polish" +msgstr "Polish" + +msgid "Port A" +msgstr "Port A" + +msgid "Port B" +msgstr "Port B" + +msgid "Port C" +msgstr "Port C" + +msgid "Port D" +msgstr "Port D" + +msgid "Portuguese" +msgstr "Portuguese" + +msgid "Position of completed timers in timerlist" +msgstr "Position of completed timers in timerlist" + +msgid "Position stored at index" +msgstr "Position stored at index" + +msgid "Positioner" +msgstr "Positioner" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "" + +msgid "Positioner setup" +msgstr "Positioner setup" + +msgid "Power threshold in mA" +msgstr "Power threshold in mA" + +msgid "Predefined transponder" +msgstr "Predefined transponder" + +msgid "Prefer AC3 track" +msgstr "Prefer AC3 track" + +msgid "Prefer AC3+ track" +msgstr "" + +msgid "Prefer audio track stored by service" +msgstr "Prefer audio track stored by service" + +msgid "Prefer graphical DVB subtitles" +msgstr "Prefer graphical DVB subtitles" + +msgid "Prefer subtitles for hearing impaired" +msgstr "Prefer subtitles for hearing impaired" + +msgid "Prefer subtitles stored by service" +msgstr "Prefer subtitles stored by service" + +msgid "Preferred tuner" +msgstr "Preferred tuner" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "Prepare another USB stick for image flashing" + +msgid "Preparing... Please wait" +msgstr "Preparing... Please wait" + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "Press INFO on your remote control for additional information." + +msgid "Press MENU on your remote control for additional options." +msgstr "Press MENU on your remote control for additional options." + +msgid "Press OK on your remote control to continue." +msgstr "Press OK on your remote control to continue." + +msgid "Press OK to activate the selected skin." +msgstr "Press OK to activate the selected skin." + +msgid "Press OK to activate the settings." +msgstr "Press OK to activate the settings." + +msgid "Press OK to edit the settings." +msgstr "Press OK to edit the settings." + +#, python-format +msgid "Press OK to get further details for %s" +msgstr "Press OK to get further details for %s" + +msgid "Press OK to scan" +msgstr "Press OK to scan" + +msgid "Press OK to select a provider." +msgstr "Press OK to select a provider." + +msgid "Press OK to select satellites" +msgstr "" + +msgid "Press OK to select/deselect a CAId." +msgstr "Press OK to select/deselect a CAId." + +msgid "Press OK to start the scan" +msgstr "Press OK to start the scan" + +msgid "Press OK to toggle the selection" +msgstr "" + +msgid "Press OK to toggle the selection." +msgstr "Press OK to toggle the selection." + +msgid "Press yellow to set this interface as default interface." +msgstr "Press yellow to set this interface as default interface." + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "Prev" + +msgid "Preview" +msgstr "Preview" + +msgid "Preview menu" +msgstr "Preview menu" + +msgid "Preview selected channel" +msgstr "Preview selected channel" + +msgid "Primary DNS" +msgstr "Primary DNS" + +msgid "Priority" +msgstr "Priority" + +msgid "Process" +msgstr "Process" + +msgid "Progress" +msgstr "Progress" + +msgid "Progress bar left" +msgstr "Progress bar left" + +msgid "Progress bar right" +msgstr "Progress bar right" + +msgid "Properties of current title" +msgstr "Properties of current title" + +msgid "Protect services" +msgstr "Protect services" + +msgid "Protect setup" +msgstr "Protect setup" + +msgid "Provider" +msgstr "Provider" + +msgid "Provider to scan" +msgstr "Provider to scan" + +msgid "Providers" +msgstr "Providers" + +msgid "Put TV in standby" +msgstr "Put TV in standby" + +msgid "Put receiver in standby" +msgstr "Put receiver in standby" + +msgid "Python frontend for /tmp/mmi.socket" +msgstr "Python frontend for /tmp/mmi.socket" + +msgid "Quick" +msgstr "Quick" + +msgid "Quick zap" +msgstr "Quick zap" + +msgid "RF output" +msgstr "RF output" + +msgid "RGB" +msgstr "RGB" + +msgid "Radio" +msgstr "Radio" + +msgid "Ram disk" +msgstr "Ram disk" + +msgid "Random" +msgstr "Random" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "Rating defined by broadcaster - %d" + +msgid "Rating undefined" +msgstr "Rating undefined" + +msgid "Really close without saving settings?" +msgstr "Really close without saving settings?" + +msgid "Really delete done timers?" +msgstr "Really delete done timers?" + +msgid "Really exit the subservices quickzap?" +msgstr "Really exit the subservices quickzap?" + +msgid "Really reboot now?" +msgstr "Really reboot now?" + +msgid "Really restart now?" +msgstr "Really restart now?" + +msgid "Really shutdown now?" +msgstr "Really shutdown now?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "Really upgrade the frontprocessor and reboot now?" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "Really upgrade your settop box and reboot now?" + +msgid "Reboot" +msgstr "Reboot" + +msgid "Rec" +msgstr "Rec" + +msgid "Reception settings" +msgstr "Reception settings" + +msgid "Record" +msgstr "Record" + +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "Record time limited due to conflicting timer %s" + +msgid "Recorded files..." +msgstr "Recorded files..." + +msgid "Recording" +msgstr "Recording" + +msgid "Recording in progress" +msgstr "Recording in progress" + +msgid "Recording paths" +msgstr "Recording paths" + +msgid "Recording type" +msgstr "Recording type" + +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "Recording(s) are in progress or coming up in few seconds!" + +msgid "Recordings" +msgstr "Recordings" + +msgid "Recordings always have priority" +msgstr "Recordings always have priority" + +msgid "Red button..." +msgstr "Red button..." + +msgid "Reenter new PIN" +msgstr "Reenter new PIN" + +msgid "Refresh rate" +msgstr "Refresh rate" + +msgid "Refresh rate selection." +msgstr "Refresh rate selection." + +msgid "Regard deep standby as standby" +msgstr "Regard deep standby as standby" + +msgid "Relative" +msgstr "Relative" + +msgid "Reload" +msgstr "Reload" + +msgid "Reload black-/white lists" +msgstr "Reload black-/white lists" + +msgid "Reloading bouquets and services..." +msgstr "Reloading bouquets and services..." + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "Remember service PIN" + +msgid "Remember these settings for each folder" +msgstr "Remember these settings for each folder" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "" + +msgid "Remote control type" +msgstr "Remote control type" + +msgid "Removal has completed." +msgstr "Removal has completed." + +msgid "Remove" +msgstr "Remove" + +msgid "Remove a mark" +msgstr "Remove a mark" + +msgid "Remove a nameserver entry" +msgstr "Remove a nameserver entry" + +msgid "Remove bookmark" +msgstr "Remove bookmark" + +msgid "Remove completed timers after (days)" +msgstr "Remove completed timers after (days)" + +msgid "Remove currently selected title" +msgstr "Remove currently selected title" + +msgid "Remove items from trash can after (days)" +msgstr "Remove items from trash can after (days)" + +msgid "Remove plugins" +msgstr "Remove plugins" + +msgid "Remove title" +msgstr "Remove title" + +msgid "Removing" +msgstr "Removing" + +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Removing directory %s failed. (Maybe not empty.)" + +msgid "Removing partition table" +msgstr "Removing partition table" + +msgid "Rename" +msgstr "Rename" + +msgid "Repeat" +msgstr "" + +msgid "Repeat type" +msgstr "Repeat type" + +msgid "Repeating event currently recording... What do you want to do?" +msgstr "Repeating event currently recording... What do you want to do?" + +msgid "Repeats" +msgstr "Repeats" + +msgid "Require authentication for http streams" +msgstr "" + +msgid "Required medium type:" +msgstr "Required medium type:" + +msgid "Rereading partition table" +msgstr "Rereading partition table" + +msgid "Reserved" +msgstr "Reserved" + +msgid "Reset" +msgstr "Reset" + +msgid "Reset and renumerate title names" +msgstr "Reset and renumerate title names" + +msgid "Reset playback position" +msgstr "Reset playback position" + +msgid "Reset video enhancement settings to system defaults?" +msgstr "Reset video enhancement settings to system defaults?" + +msgid "Reset video enhancement settings to your last configuration?" +msgstr "Reset video enhancement settings to your last configuration?" + +msgid "Resolution" +msgstr "Resolution" + +msgid "Restart" +msgstr "Restart" + +msgid "Restart GUI now?" +msgstr "Restart GUI now?" + +msgid "Restart enigma" +msgstr "Restart enigma" + +msgid "Restart network" +msgstr "Restart network" + +msgid "Restart test" +msgstr "Restart test" + +msgid "Restart your network connection and interfaces.\n" +msgstr "Restart your network connection and interfaces.\n" + +msgid "Restore" +msgstr "Restore" + +msgid "Restore backups" +msgstr "Restore backups" + +msgid "Restore is running..." +msgstr "Restore is running..." + +msgid "Restore system settings" +msgstr "Restore system settings" + +msgid "Restoring..." +msgstr "Restoring..." + +msgid "Resume from last position" +msgstr "Resume from last position" + +#, python-format +msgid "Resume position at %s" +msgstr "Resume position at %s" + +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Resuming playback" + +msgid "Return to movie list" +msgstr "Return to movie list" + +msgid "Return to previous service" +msgstr "Return to previous service" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +msgid "Rewind speeds" +msgstr "Rewind speeds" + +msgid "Rewrap teletext subtitles" +msgstr "Rewrap teletext subtitles" + +msgid "Right" +msgstr "Right" + +msgid "Right from servicename" +msgstr "Right from servicename" + +msgid "Roll-off" +msgstr "Roll-off" + +msgid "Romanian" +msgstr "Romanian" + +msgid "Root directory" +msgstr "Root directory" + +msgid "Rotor step position:" +msgstr "Rotor step position:" + +msgid "Rotor turning speed" +msgstr "Rotor turning speed" + +msgid "Round start time on" +msgstr "Round start time on" + +msgid "Russian" +msgstr "Russian" + +msgid "S-Video" +msgstr "S-Video" + +msgid "SID" +msgstr "SID" + +msgid "SINGLE LAYER DVD" +msgstr "SINGLE LAYER DVD" + +msgid "SNR" +msgstr "SNR" + +msgid "SNR:" +msgstr "SNR:" + +msgid "SSID:" +msgstr "SSID:" + +msgid "Same resolution as skin" +msgstr "" + +msgid "Sat" +msgstr "Sat" + +msgid "Satellite" +msgstr "Satellite" + +msgid "Satellite dish setup" +msgstr "Satellite dish setup" + +msgid "Satellite equipment" +msgstr "Satellite equipment" + +msgid "Satellite equipment setup" +msgstr "Satellite equipment setup" + +msgid "Satellite longitude:" +msgstr "Satellite longitude:" + +msgid "Satellites" +msgstr "Satellites" + +msgid "Satfinder" +msgstr "Satfinder" + +msgid "Sats" +msgstr "Sats" + +msgid "Saturation" +msgstr "Saturation" + +msgid "Saturday" +msgstr "Saturday" + +msgid "Save" +msgstr "Save" + +msgid "Save playlist" +msgstr "Save playlist" + +msgid "Save timeshift file" +msgstr "" + +msgid "Save timeshift file in movie directory" +msgstr "" + +msgid "Scaler sharpness" +msgstr "Scaler sharpness" + +msgid "Scaling mode" +msgstr "Scaling mode" + +msgid "Scan" +msgstr "" + +msgid "Scan " +msgstr "Scan " + +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, python-format +msgid "Scan %s" +msgstr "Scan %s" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, python-format +msgid "Scan %s band" +msgstr "Scan %s band" + +msgid "Scan additional SR" +msgstr "Scan additional SR" + +msgid "Scan files..." +msgstr "Scan files..." + +msgid "Scan wireless networks" +msgstr "Scan wireless networks" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "Scan your network for wireless access points and connect to them using your selected wireless device.\n" + +#, python-format +msgid "Scanning %s..." +msgstr "Scanning %s..." + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, fuzzy, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "Scanning completed, %d channels found" +msgstr[1] "Scanning completed, %d channels found" + +#, fuzzy, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "Scanning completed, %d channels found" +msgstr[1] "Scanning completed, %d channels found" + +msgid "Scanning failed!" +msgstr "Scanning failed!" + +msgid "Scanning..." +msgstr "Scanning..." + +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "Scans default lamedbs sorted by satellite with a connected dish positioner" + +msgid "Search east" +msgstr "Search east" + +msgid "Search west" +msgstr "Search west" + +msgid "Searching" +msgstr "Searching" + +msgid "Searching east ..." +msgstr "Searching east ..." + +msgid "Searching for available updates. Please wait..." +msgstr "Searching for available updates. Please wait..." + +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "Searching for new installed or removed packages. Please wait..." + +msgid "Searching west ..." +msgstr "Searching west ..." + +msgid "Second cable of motorized LNB" +msgstr "" + +msgid "Secondary DNS" +msgstr "Secondary DNS" + +msgid "Seek" +msgstr "Seek" + +msgid "Seek backward" +msgstr "Seek backward" + +msgid "Seek backward (enter time)" +msgstr "Seek backward (enter time)" + +msgid "Seek forward" +msgstr "Seek forward" + +msgid "Seek forward (enter time)" +msgstr "Seek forward (enter time)" + +msgid "Select" +msgstr "Select" + +msgid "Select CAId" +msgstr "Select CAId" + +msgid "Select HDD" +msgstr "Select HDD" + +msgid "Select a bouquet" +msgstr "Select a bouquet" + +msgid "Select a movie" +msgstr "Select a movie" + +msgid "Select a network adapter" +msgstr "Select a network adapter" + +msgid "Select a skin" +msgstr "Select a skin" + +msgid "Select a tuner" +msgstr "Select a tuner" + +msgid "Select a wireless network" +msgstr "Select a wireless network" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +msgid "Select an image to be downloaded" +msgstr "Select an image to be downloaded" + +msgid "Select audio track" +msgstr "Select audio track" + +msgid "Select backup files" +msgstr "Select backup files" + +msgid "Select backup location" +msgstr "Select backup location" + +msgid "Select channel to record from" +msgstr "Select channel to record from" + +msgid "Select copy destination for:" +msgstr "Select copy destination for:" + +msgid "Select default EPG type..." +msgstr "Select default EPG type..." + +msgid "Select desired image from feed list" +msgstr "Select desired image from feed list" + +msgid "Select destination for:" +msgstr "Select destination for:" + +msgid "Select files for backup." +msgstr "Select files for backup." + +msgid "Select files/folders to backup" +msgstr "Select files/folders to backup" + +msgid "Select input device" +msgstr "Select input device" + +msgid "Select input device." +msgstr "Select input device." + +msgid "Select interface" +msgstr "Select interface" + +msgid "Select location" +msgstr "Select location" + +msgid "Select movie" +msgstr "Select movie" + +msgid "Select provider to add..." +msgstr "Select provider to add..." + +msgid "Select refresh rate" +msgstr "Select refresh rate" + +msgid "Select satellites" +msgstr "" + +msgid "Select service to add..." +msgstr "Select service to add..." + +msgid "Select sort method:" +msgstr "" + +msgid "Select target folder" +msgstr "Select target folder" + +msgid "Select the movie path" +msgstr "Select the movie path" + +msgid "Select upgrade source" +msgstr "Select upgrade source" + +msgid "Select upgrade source to edit." +msgstr "Select upgrade source to edit." + +msgid "Select video input with up/down buttons" +msgstr "Select video input with up/down buttons" + +msgid "Select video mode" +msgstr "Select video mode" + +msgid "Select wireless network" +msgstr "Select wireless network" + +msgid "Select your provider, and press OK to start the scan" +msgstr "Select your provider, and press OK to start the scan" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +msgid "Send DiSEqC only on satellite change" +msgstr "Send DiSEqC only on satellite change" + +msgid "Separate titles with a main menu" +msgstr "Separate titles with a main menu" + +msgid "Sequence repeat" +msgstr "Sequence repeat" + +msgid "Serbian" +msgstr "Serbian" + +msgid "Service" +msgstr "Service" + +msgid "Service has been added to the favourites." +msgstr "Service has been added to the favourites." + +msgid "Service has been added to the selected bouquet." +msgstr "Service has been added to the selected bouquet." + +msgid "Service info" +msgstr "Service info" + +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Service invalid!\n" +"(Timeout reading PMT)" + +msgid "Service name" +msgstr "Service name" + +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Service not found!\n" +"(SID not found in PAT)" + +msgid "Service reference" +msgstr "Service reference" + +msgid "Service scan" +msgstr "Service scan" + +msgid "Service searching" +msgstr "Service searching" + +msgid "Service title mode" +msgstr "Service title mode" + +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"Service unavailable!\n" +"Check tuner configuration!" + +msgid "Services" +msgstr "Services" + +msgid "Set default" +msgstr "" + +msgid "Set end time" +msgstr "Set end time" + +msgid "Set fixed" +msgstr "Set fixed" + +msgid "Set fps for external subtitles" +msgstr "Set fps for external subtitles" + +msgid "Set interface as default Interface" +msgstr "Set interface as default Interface" + +msgid "Set limits" +msgstr "Set limits" + +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "Set the type of the progress indication in the channel selection screen." + +msgid "Set time window to 1 hour" +msgstr "Set time window to 1 hour" + +msgid "Set time window to 2 hours" +msgstr "Set time window to 2 hours" + +msgid "Set time window to 3 hours" +msgstr "Set time window to 3 hours" + +msgid "Set time window to 4 hours" +msgstr "Set time window to 4 hours" + +msgid "Set time window to 5 hours" +msgstr "Set time window to 5 hours" + +msgid "Set time window to 6 hours" +msgstr "" + +msgid "Set voltage and 22KHz" +msgstr "Set voltage and 22KHz" + +msgid "Settings" +msgstr "Settings" + +msgid "Setup" +msgstr "Setup" + +msgid "Setup menu" +msgstr "Setup menu" + +msgid "Setup mode" +msgstr "Setup mode" + +msgid "Setup your positioner" +msgstr "Setup your positioner" + +msgid "Setup your satellite equipment" +msgstr "Setup your satellite equipment" + +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "Shall the USB stick wizard proceed and program the image file %s into flash memory?" + +msgid "Sharpness" +msgstr "Sharpness" + +msgid "Short filenames" +msgstr "Short filenames" + +msgid "Show EIT now/next in infobar" +msgstr "Show EIT now/next in infobar" + +msgid "Show EPG for current channel..." +msgstr "Show EPG for current channel..." + +msgid "Show EPG..." +msgstr "Show EPG..." + +msgid "Show Games show" +msgstr "Show Games show" + +msgid "Show SNR percentage instead of dB value" +msgstr "Show SNR percentage instead of dB value" + +msgid "Show VCR scart on main menu" +msgstr "" + +msgid "Show WLAN status" +msgstr "Show WLAN status" + +msgid "Show animation while busy" +msgstr "Show animation while busy" + +msgid "Show background in radio mode" +msgstr "Show background in radio mode" + +msgid "Show bouquet selection menu" +msgstr "Show bouquet selection menu" + +msgid "Show busy indicator when the system is busy." +msgstr "Show busy indicator when the system is busy." + +msgid "Show channel numbers in channel selection" +msgstr "Show channel numbers in channel selection" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "Show crypto info in infobar" + +msgid "Show detailed event info" +msgstr "Show detailed event info" + +msgid "Show event details" +msgstr "Show event details" + +msgid "Show event-progress in channel selection" +msgstr "Show event-progress in channel selection" + +msgid "Show extended description" +msgstr "Show extended description" + +msgid "Show extensions..." +msgstr "Show extensions..." + +msgid "Show icon for new/unseen items" +msgstr "Show icon for new/unseen items" + +msgid "Show in extensions menu" +msgstr "" + +msgid "Show info" +msgstr "Show info" + +msgid "Show info line" +msgstr "Show info line" + +msgid "Show infobar on channel change" +msgstr "Show infobar on channel change" + +msgid "Show infobar on event change" +msgstr "Show infobar on event change" + +msgid "Show infobar on skip forward/backward" +msgstr "Show infobar on skip forward/backward" + +msgid "Show latest commits on sourceforge" +msgstr "" + +msgid "Show message when recording starts" +msgstr "Show message when recording starts" + +msgid "Show movie lengths in movielist" +msgstr "Show movie lengths in movielist" + +msgid "Show multi channel EPG" +msgstr "" + +msgid "Show picons in channel list" +msgstr "" + +msgid "Show positioner movement" +msgstr "Show positioner movement" + +msgid "Show screensaver" +msgstr "Show screensaver" + +msgid "Show second infobar" +msgstr "Show second infobar" + +msgid "Show service type icons" +msgstr "Show service type icons" + +msgid "Show services beginning with" +msgstr "Show services beginning with" + +msgid "Show shutdown menu" +msgstr "Show shutdown menu" + +msgid "Show single service EPG" +msgstr "" + +msgid "Show status icons in Movielist" +msgstr "" + +msgid "Show status icons in movie list" +msgstr "Show status icons in movie list" + +msgid "Show status icons in movielist" +msgstr "Show status icons in movielist" + +msgid "Show tag menu" +msgstr "Show tag menu" + +msgid "Show the radio player..." +msgstr "Show the radio player..." + +msgid "Show the tv player..." +msgstr "Show the tv player..." + +msgid "Show warning when timeshift is stopped" +msgstr "Show warning when timeshift is stopped" + +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Shows the state of your wireless LAN connection.\n" + +msgid "Shuffle playlist" +msgstr "Shuffle playlist" + +msgid "Shutdown" +msgstr "Shutdown" + +msgid "Shutdown when in Standby" +msgstr "" + +msgid "Side by side" +msgstr "Side by side" + +msgid "Signal OK, proceeding" +msgstr "Signal OK, proceeding" + +msgid "Signal quality" +msgstr "Signal quality" + +msgid "Signal strength:" +msgstr "Signal strength:" + +msgid "Signal: " +msgstr "Signal: " + +msgid "Similar" +msgstr "Similar" + +msgid "Similar broadcasts:" +msgstr "Similar broadcasts:" + +msgid "Simple" +msgstr "Simple" + +msgid "Simple titleset (compatibility for legacy players)" +msgstr "Simple titleset (compatibility for legacy players)" + +msgid "Single" +msgstr "Single" + +msgid "Single EPG" +msgstr "Single EPG" + +msgid "Single satellite" +msgstr "Single satellite" + +msgid "Single step (GOP)" +msgstr "Single step (GOP)" + +msgid "Single transponder" +msgstr "Single transponder" + +msgid "Site latitude" +msgstr "Site latitude" + +msgid "Site longitude" +msgstr "Site longitude" + +msgid "Skin" +msgstr "Skin" + +msgid "Skins" +msgstr "Skins" + +msgid "Skip empty services" +msgstr "Skip empty services" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "Skip internet connection check (disables automatic package installation)" + +msgid "Sleep timer" +msgstr "Sleep timer" + +msgid "SleepTimer Configuration" +msgstr "" + +msgid "Sleeptimer" +msgstr "" + +msgid "Slide picture in loop" +msgstr "Slide picture in loop" + +msgid "Slide show interval (sec.)" +msgstr "Slide show interval (sec.)" + +#, python-format +msgid "Slot %d" +msgstr "Slot %d" + +msgid "Slovak" +msgstr "Slovak" + +msgid "Slovenian" +msgstr "Slovenian" + +msgid "Slow" +msgstr "Slow" + +msgid "Slow motion speeds" +msgstr "Slow motion speeds" + +msgid "Small progress" +msgstr "Small progress" + +msgid "Social/Political/Economics" +msgstr "Social/Political/Economics" + +msgid "SoftCam / CI" +msgstr "SoftCam / CI" + +msgid "Softcam type" +msgstr "Softcam type" + +msgid "Software" +msgstr "Software" + +msgid "Software management" +msgstr "Software management" + +msgid "Software manager setup" +msgstr "Software manager setup" + +msgid "Software restore" +msgstr "Software restore" + +msgid "Software update" +msgstr "Software update" + +msgid "Softwaremanager information" +msgstr "Softwaremanager information" + +msgid "Some plugins are not available:\n" +msgstr "Some plugins are not available:\n" + +#, python-format +msgid "Sorry, %s has not been installed!" +msgstr "Sorry, %s has not been installed!" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "Sorry, deleting directories can (for now) only be done through the trash can." + +msgid "Sorry, no backups found!" +msgstr "Sorry, no backups found!" + +msgid "Sorry, no details available!" +msgstr "Sorry, no details available!" + +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." + +msgid "Sort" +msgstr "Sort" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Sort A-Z" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort time" +msgstr "Sort time" + +msgid "Sound" +msgstr "Sound" + +msgid "Sound carrier" +msgstr "Sound carrier" + +msgid "Source request" +msgstr "Source request" + +msgid "South" +msgstr "South" + +msgid "Spanish" +msgstr "Spanish" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +msgid "Split preview mode" +msgstr "Split preview mode" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "Sports" + +msgid "Standard" +msgstr "Standard" + +msgid "Standart list" +msgstr "" + +msgid "Standby" +msgstr "Standby" + +msgid "Standby / restart" +msgstr "Standby / restart" + +msgid "Standby after current event" +msgstr "" + +#, python-format +msgid "Standby fan %d PWM" +msgstr "Standby fan %d PWM" + +#, python-format +msgid "Standby fan %d voltage" +msgstr "Standby fan %d voltage" + +msgid "Standby in " +msgstr "" + +msgid "StandbyLED" +msgstr "" + +msgid "Start from the beginning" +msgstr "Start from the beginning" + +msgid "Start offline decode" +msgstr "Start offline decode" + +msgid "Start recording?" +msgstr "Start recording?" + +msgid "Start test" +msgstr "Start test" + +msgid "Start time" +msgstr "Start time" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +msgid "Start timeshift" +msgstr "Start timeshift" + +msgid "Start with list screen" +msgstr "Start with list screen" + +msgid "Starting on" +msgstr "Starting on" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +msgid "Step east" +msgstr "Step east" + +msgid "Step west" +msgstr "Step west" + +msgid "Stepped east" +msgstr "Stepped east" + +msgid "Stepped west" +msgstr "Stepped west" + +msgid "Stop" +msgstr "Stop" + +msgid "Stop PiP" +msgstr "Stop PiP" + +msgid "Stop current event and disable coming events" +msgstr "Stop current event and disable coming events" + +msgid "Stop current event but not coming events" +msgstr "Stop current event but not coming events" + +msgid "Stop entry" +msgstr "Stop entry" + +msgid "Stop playing this movie?" +msgstr "Stop playing this movie?" + +msgid "Stop recording" +msgstr "Stop recording" + +msgid "Stop recording and delete" +msgstr "Stop recording and delete" + +msgid "Stop service on return to movie list" +msgstr "" + +msgid "Stop test" +msgstr "Stop test" + +msgid "Stop testing plane after # failed transponders" +msgstr "Stop testing plane after # failed transponders" + +msgid "Stop testing plane after # successful transponders" +msgstr "Stop testing plane after # successful transponders" + +msgid "Stop timer recording" +msgstr "" + +msgid "Stop timeshift" +msgstr "Stop timeshift" + +msgid "Stop timeshift?" +msgstr "Stop timeshift?" + +msgid "Stopped" +msgstr "Stopped" + +msgid "Store at index" +msgstr "Store at index" + +msgid "Store position" +msgstr "Store position" + +msgid "Stored position" +msgstr "Stored position" + +msgid "Stream" +msgstr "Stream" + +msgid "Stream request" +msgstr "Stream request" + +msgid "Strongest position" +msgstr "Strongest position" + +msgid "Subservice list..." +msgstr "Subservice list..." + +msgid "Subservices" +msgstr "Subservices" + +msgid "Subtitle Quickmenu" +msgstr "" + +msgid "Subtitle alignment" +msgstr "Subtitle alignment" + +msgid "Subtitle border width" +msgstr "Subtitle border width" + +msgid "Subtitle delay when timing is bad" +msgstr "Subtitle delay when timing is bad" + +msgid "Subtitle delay when timing lacks" +msgstr "Subtitle delay when timing lacks" + +msgid "Subtitle font size" +msgstr "Subtitle font size" + +msgid "Subtitle language selection 1" +msgstr "Subtitle language selection 1" + +msgid "Subtitle language selection 2" +msgstr "Subtitle language selection 2" + +msgid "Subtitle language selection 3" +msgstr "Subtitle language selection 3" + +msgid "Subtitle language selection 4" +msgstr "Subtitle language selection 4" + +msgid "Subtitle position" +msgstr "Subtitle position" + +msgid "Subtitle selection" +msgstr "Subtitle selection" + +msgid "Subtitle selection..." +msgstr "Subtitle selection..." + +msgid "Subtitle settings" +msgstr "Subtitle settings" + +msgid "Subtitles" +msgstr "Subtitles" + +msgid "Sun" +msgstr "Sun" + +msgid "Sunday" +msgstr "Sunday" + +msgid "Swap PiP and main picture" +msgstr "Swap PiP and main picture" + +msgid "Swap services" +msgstr "Swap services" + +msgid "Swedish" +msgstr "Swedish" + +msgid "Switch TV to correct input" +msgstr "Switch TV to correct input" + +msgid "Switch between filelist/playlist" +msgstr "" + +msgid "Switch between normal mode and list mode" +msgstr "Switch between normal mode and list mode" + +msgid "Switch to HDMI in mode" +msgstr "" + +msgid "Switch to filelist" +msgstr "Switch to filelist" + +msgid "Switch to next channel" +msgstr "" + +msgid "Switch to next channel in history" +msgstr "Switch to next channel in history" + +msgid "Switch to next sub service" +msgstr "Switch to next sub service" + +msgid "Switch to playlist" +msgstr "Switch to playlist" + +msgid "Switch to previous channel" +msgstr "Switch to previous channel" + +msgid "Switch to previous channel in history" +msgstr "Switch to previous channel in history" + +msgid "Switch to previous sub service" +msgstr "Switch to previous sub service" + +msgid "Switchable tuner types:" +msgstr "Switchable tuner types:" + +msgid "Symbol rate" +msgstr "Symbol rate" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "Sync failure moving back to origin !" + +msgid "System" +msgstr "System" + +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "TRANSLATOR_INFO" + +msgid "TS file is too large for ISO9660 level 1!" +msgstr "TS file is too large for ISO9660 level 1!" + +msgid "TSID" +msgstr "TSID" + +msgid "TV physical address report" +msgstr "TV physical address report" + +msgid "TXT PID" +msgstr "TXT PID" + +msgid "Table of contents for collection" +msgstr "Table of contents for collection" + +msgid "Tags" +msgstr "Tags" + +msgid "Teletext subtitle color" +msgstr "Teletext subtitle color" + +msgid "Temperature and fan control" +msgstr "Temperature and fan control" + +msgid "Terrestrial" +msgstr "Terrestrial" + +msgid "Terrestrial provider" +msgstr "Terrestrial provider" + +msgid "Test DiSEqC settings" +msgstr "Test DiSEqC settings" + +msgid "Test mode" +msgstr "Test mode" + +msgid "Test the network configuration of your receiver.\n" +msgstr "Test the network configuration of your receiver.\n" + +msgid "Test type" +msgstr "Test type" + +msgid "Text color" +msgstr "Text color" + +msgid "Thai" +msgstr "Thai" + +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"Thank you for using the wizard.\n" +"Please press OK to continue." + +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" + +msgid "The PIN code has been changed successfully." +msgstr "The PIN code has been changed successfully." + +msgid "The PIN codes you entered are different." +msgstr "The PIN codes you entered are different." + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" + +msgid "The backup failed. Please choose a different backup location." +msgstr "The backup failed. Please choose a different backup location." + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" +"The current beta image might not be stable.\n" +"For more information see %s." + +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." + +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" + +msgid "The following files were found..." +msgstr "The following files were found..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "The md5sum validation failed, the file may be corrupted!" + +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"The network wizard extension is not installed!\n" +"Please install it." + +#, python-format +msgid "The path %s already exists." +msgstr "The path %s already exists." + +msgid "The pin code you entered is wrong." +msgstr "The pin code you entered is wrong." + +#, python-format +msgid "The results have been written to %s." +msgstr "The results have been written to %s." + +msgid "The sleep timer has been activated." +msgstr "The sleep timer has been activated." + +msgid "The sleep timer has been disabled." +msgstr "The sleep timer has been disabled." + +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"The software management extension is not installed!\n" +"Please install it." + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "The status of the current beta image could not be checked because %s can not be reached." + +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "The timer file (timers.xml) is corrupt and could not be loaded." + +msgid "The user interface of your receiver is restarting" +msgstr "The user interface of your receiver is restarting" + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"The wireless LAN plugin is not installed!\n" +"Please install it." + +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "The wizard can backup your current settings. Do you want to do a backup now?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "The wizard found a configuration backup. Do you want to restore your old settings from %s?" + +msgid "The wizard is finished now." +msgstr "The wizard is finished now." + +msgid "There are at least " +msgstr "There are at least " + +#, python-format +msgid "There are at least %s updates available." +msgstr "There are at least %s updates available." + +msgid "There are currently no outstanding actions." +msgstr "There are currently no outstanding actions." + +msgid "There are no updates available." +msgstr "There are no updates available." + +msgid "There is no signal to lock on !" +msgstr "There is no signal to lock on !" + +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" + +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "This DVD RW medium is already formatted - reformatting will erase all content on the disc." + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" + +msgid "This plugin is installed." +msgstr "This plugin is installed." + +msgid "This plugin is not installed." +msgstr "This plugin is not installed." + +msgid "This plugin will be installed." +msgstr "This plugin will be installed." + +msgid "This plugin will be removed." +msgstr "This plugin will be removed." + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "This receiver cannot decode %s streams!" + +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" + +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" + +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" + +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." + +msgid "This test detects your configured LAN adapter." +msgstr "This test detects your configured LAN adapter." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" + +msgid "Three" +msgstr "Three" + +msgid "Threshold" +msgstr "Threshold" + +msgid "Thu" +msgstr "Thu" + +msgid "Thumbnails" +msgstr "Thumbnails" + +msgid "Thursday" +msgstr "Thursday" + +msgid "Time" +msgstr "Time" + +msgid "Time scale" +msgstr "Time scale" + +msgid "Timer" +msgstr "Timer" + +msgid "Timer Overview" +msgstr "" + +msgid "Timer edit" +msgstr "Timer edit" + +msgid "Timer editor" +msgstr "Timer editor" + +msgid "Timer entry" +msgstr "Timer entry" + +msgid "Timer log" +msgstr "Timer log" + +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" + +msgid "Timer overview" +msgstr "Timer overview" + +msgid "Timer recording location" +msgstr "Timer recording location" + +msgid "Timer sanity error" +msgstr "Timer sanity error" + +msgid "Timer selection" +msgstr "Timer selection" + +msgid "Timer selection..." +msgstr "" + +msgid "Timer type" +msgstr "Timer type" + +msgid "Timeshift" +msgstr "Timeshift" + +msgid "Timeshift Live" +msgstr "" + +msgid "Timeshift location" +msgstr "Timeshift location" + +msgid "Timeshift not possible!" +msgstr "Timeshift not possible!" + +msgid "Timezone" +msgstr "Timezone" + +msgid "Title" +msgstr "Title" + +msgid "Title properties" +msgstr "Title properties" + +msgid "Titleset mode" +msgstr "Titleset mode" + +msgid "To audio selection" +msgstr "To audio selection" + +msgid "To subtitle selection" +msgstr "To subtitle selection" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." + +msgid "Today" +msgstr "Today" + +msgid "Toggle a cut mark at the current position" +msgstr "Toggle a cut mark at the current position" + +msgid "Tone amplitude" +msgstr "Tone amplitude" + +msgid "Tone mode" +msgstr "Tone mode" + +msgid "Toneburst" +msgstr "Toneburst" + +msgid "Toneburst A/B" +msgstr "Toneburst A/B" + +msgid "Top and bottom" +msgstr "Top and bottom" + +msgid "Track" +msgstr "Track" + +msgid "Translation" +msgstr "Translation" + +msgid "Translation:" +msgstr "Translation:" + +msgid "Translations" +msgstr "Translations" + +msgid "Transmission mode" +msgstr "Transmission mode" + +msgid "Transponder" +msgstr "Transponder" + +msgid "Transponder type" +msgstr "Transponder type" + +msgid "Trash can" +msgstr "Trash can" + +msgid "Tries left:" +msgstr "Tries left:" + +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Try to find used transponders in cable network.. please wait..." + +msgid "Trying to download a new packetlist. Please wait..." +msgstr "Trying to download a new packetlist. Please wait..." + +msgid "Tue" +msgstr "Tue" + +msgid "Tuesday" +msgstr "Tuesday" + +msgid "Tune" +msgstr "Tune" + +msgid "Tune and focus" +msgstr "Tune and focus" + +msgid "Tune failed!" +msgstr "Tune failed!" + +msgid "Tuner" +msgstr "Tuner" + +msgid "Tuner configuration" +msgstr "Tuner configuration" + +msgid "Tuner is not supported" +msgstr "" + +msgid "Tuner slot" +msgstr "Tuner slot" + +msgid "Tuner status" +msgstr "Tuner status" + +#, python-format +msgid "Tuner status %s" +msgstr "Tuner status %s" + +msgid "Tuner type" +msgstr "Tuner type" + +msgid "Turkish" +msgstr "Turkish" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +msgid "Two" +msgstr "Two" + +msgid "Type" +msgstr "Type" + +msgid "Type of scan" +msgstr "Type of scan" + +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "USALS calibration" + +msgid "USB stick" +msgstr "USB stick" + +msgid "USB stick wizard" +msgstr "USB stick wizard" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" + +msgid "Undo install" +msgstr "Undo install" + +msgid "Undo uninstall" +msgstr "Undo uninstall" + +msgid "Unencrypted" +msgstr "Unencrypted" + +msgid "UnhandledKey" +msgstr "UnhandledKey" + +msgid "Unicable" +msgstr "Unicable" + +msgid "Unicable LNB" +msgstr "Unicable LNB" + +msgid "Unicable Martix" +msgstr "Unicable Martix" + +msgid "Uninstall" +msgstr "Uninstall" + +msgid "Universal LNB" +msgstr "Universal LNB" + +msgid "Unknown" +msgstr "Unknown" + +msgid "Unmount" +msgstr "Unmount" + +msgid "Unsupported" +msgstr "Unsupported" + +msgid "Update" +msgstr "Update" + +msgid "Update and ask to reboot" +msgstr "Update and ask to reboot" + +msgid "Update and reboot (recommended)" +msgstr "Update and reboot (recommended)" + +msgid "Update channel list only" +msgstr "Update channel list only" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "Update completed, %d package was installed." +msgstr[1] "Update completed, %d packages were installed." + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "Update completed. Do you want to reboot your receiver?" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "Update failed. Your receiver does not have a working internet connection." + +msgid "Update has completed." +msgstr "Update has completed." + +msgid "Updatefeed not available." +msgstr "Updatefeed not available." + +msgid "Updating software catalog" +msgstr "Updating software catalog" + +msgid "Upgrading" +msgstr "Upgrading" + +msgid "Use" +msgstr "Use" + +msgid "Use DHCP" +msgstr "Use DHCP" + +msgid "Use EIT EPG information when it is available." +msgstr "Use EIT EPG information when it is available." + +msgid "Use FreeSat EPG information when it is available." +msgstr "Use FreeSat EPG information when it is available." + +msgid "Use MHW EPG information when it is available." +msgstr "Use MHW EPG information when it is available." + +msgid "Use Netmed EPG information when it is available." +msgstr "Use Netmed EPG information when it is available." + +msgid "Use TV remote control" +msgstr "Use TV remote control" + +msgid "Use USALS for this sat" +msgstr "Use USALS for this sat" + +msgid "Use ViaSat EPG information when it is available." +msgstr "Use ViaSat EPG information when it is available." + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +msgid "Use a gateway" +msgstr "Use a gateway" + +msgid "Use fastscan channel names" +msgstr "Use fastscan channel names" + +msgid "Use fastscan channel numbering" +msgstr "Use fastscan channel numbering" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "" + +msgid "Use interface" +msgstr "Use interface" + +msgid "Use official channel numbering" +msgstr "Use official channel numbering" + +msgid "Use original DVB subtitle position" +msgstr "Use original DVB subtitle position" + +msgid "Use original teletext position" +msgstr "Use original teletext position" + +msgid "Use power measurement" +msgstr "Use power measurement" + +msgid "Use the network wizard to configure selected network adapter" +msgstr "Use the network wizard to configure selected network adapter" + +msgid "Use the network wizard to configure your network\n" +msgstr "Use the network wizard to configure your network\n" + +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "Use the up/down keys on your remote control to select an option. After that, press OK." + +msgid "Use the wizard to set up basic features" +msgstr "Use the wizard to set up basic features" + +msgid "Use these input device settings?" +msgstr "Use these input device settings?" + +msgid "Use these settings?" +msgstr "Use these settings?" + +msgid "Use this video enhancement settings?" +msgstr "Use this video enhancement settings?" + +msgid "Use trash can in movielist" +msgstr "Use trash can in movielist" + +msgid "Used service scan type" +msgstr "Used service scan type" + +msgid "User - bouquets" +msgstr "User - bouquets" + +msgid "User defined" +msgstr "User defined" + +msgid "User defined transponder" +msgstr "" + +msgid "User interface" +msgstr "User interface" + +msgid "Username" +msgstr "Username" + +#, python-format +msgid "Using LNB %d" +msgstr "Using LNB %d" + +msgid "Using fixed address" +msgstr "Using fixed address" + +#, python-format +msgid "Using tuner %s" +msgstr "Using tuner %s" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." + +msgid "VCR scart" +msgstr "VCR scart" + +msgid "VMGM (intro trailer)" +msgstr "VMGM (intro trailer)" + +msgid "Vertical" +msgstr "Vertical" + +msgid "Vertical turning speed" +msgstr "Vertical turning speed" + +msgid "Video PID" +msgstr "Video PID" + +msgid "Video enhancement preview" +msgstr "Video enhancement preview" + +msgid "Video enhancement settings" +msgstr "Video enhancement settings" + +msgid "Video enhancement setup" +msgstr "Video enhancement setup" + +msgid "Video fine tuning" +msgstr "Video fine tuning" + +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." + +msgid "Video mode selection." +msgstr "Video mode selection." + +msgid "Video output" +msgstr "Video output" + +msgid "Video setup" +msgstr "Video setup" + +msgid "Video wizard" +msgstr "Video wizard" + +#, python-format +msgid "Video: %s fps" +msgstr "" + +msgid "VideoMode" +msgstr "" + +msgid "Videocodec" +msgstr "Videocodec" + +msgid "Videoformat" +msgstr "Videoformat" + +msgid "Videosize" +msgstr "Videosize" + +msgid "View Rass interactive..." +msgstr "View Rass interactive..." + +msgid "View details" +msgstr "View details" + +msgid "View list of available " +msgstr "View list of available " + +msgid "View list of available CommonInterface extensions" +msgstr "View list of available CommonInterface extensions" + +msgid "View list of available EPG extensions." +msgstr "View list of available EPG extensions." + +msgid "View list of available Satellite equipment extensions." +msgstr "View list of available Satellite equipment extensions." + +msgid "View list of available communication extensions." +msgstr "View list of available communication extensions." + +msgid "View list of available default settings" +msgstr "View list of available default settings" + +msgid "View list of available display and userinterface extensions." +msgstr "View list of available display and userinterface extensions." + +msgid "View list of available multimedia extensions." +msgstr "View list of available multimedia extensions." + +msgid "View list of available networking extensions" +msgstr "View list of available networking extensions" + +msgid "View list of available recording extensions" +msgstr "View list of available recording extensions" + +msgid "View list of available skins" +msgstr "View list of available skins" + +msgid "View list of available software extensions" +msgstr "View list of available software extensions" + +msgid "View list of available system extensions" +msgstr "View list of available system extensions" + +msgid "View photos..." +msgstr "View photos..." + +msgid "View teletext..." +msgstr "View teletext..." + +msgid "View video CD..." +msgstr "View video CD..." + +msgid "Virtual keyboard" +msgstr "Virtual keyboard" + +msgid "Voltage mode" +msgstr "Voltage mode" + +msgid "Volume" +msgstr "Volume" + +msgid "W" +msgstr "W" + +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "WLAN connection" + +msgid "WPA" +msgstr "WPA" + +msgid "WPA or WPA2" +msgstr "WPA or WPA2" + +msgid "WPA2" +msgstr "WPA2" + +msgid "WSS on 4:3" +msgstr "WSS on 4:3" + +msgid "Waiting" +msgstr "Waiting" + +msgid "Waiting for mount" +msgstr "Waiting for mount" + +msgid "Waiting for partition" +msgstr "Waiting for partition" + +msgid "Wakeup" +msgstr "Wakeup" + +msgid "Wakeup TV from standby" +msgstr "Wakeup TV from standby" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "Wakeup receiver from standby" + +msgid "Wakeup signal from TV" +msgstr "Wakeup signal from TV" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "Warning: no LNB; using factory defaults." + +msgid "Watch movies..." +msgstr "Watch movies..." + +msgid "Watch recordings..." +msgstr "Watch recordings..." + +msgid "Wed" +msgstr "Wed" + +msgid "Wednesday" +msgstr "Wednesday" + +msgid "Weekday" +msgstr "Weekday" + +msgid "Weighted position" +msgstr "Weighted position" + +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." + +msgid "Welcome..." +msgstr "Welcome..." + +msgid "West" +msgstr "West" + +msgid "West limit set" +msgstr "West limit set" + +msgid "What do you want to scan?" +msgstr "What do you want to scan?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "When enabled the PiP can be closed by the exit button." + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "" + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "When enabled, a popup message will be shown when a movie has finished and the next one will start." + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "When enabled, a popup message will be shown when a recording starts." + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "When enabled, a radio background image will be visible while listening to a radio channel." + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "When enabled, channel numbering will start at '1' for each bouquet." + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "When enabled, encryption info will be shown in the infobar (when supported by the skin)." + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "When enabled, error messages related to the Common Interface module will not be shown." + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "When enabled, error messages related to zapping will not be shown." + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "When enabled, external subtitles will be always turned on for playback movie." + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "When enabled, graphical DVB subtitles will be centered horizontally." + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "When enabled, graphical DVB subtitles will be displayed at their original position." + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "When enabled, it is possible to leave the movieplayer with exit." + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." + +msgid "When enabled, number markers will be hiden." +msgstr "When enabled, number markers will be hiden." + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "When enabled, services may be grouped in multiple bouquets." + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "When enabled, show channel numbers in the channel selection screen." + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "When enabled, subtitles for the hearing impaired can be used." + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "When enabled, teletext pages will be cached, allowing faster access." + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "When enabled, teletext subtitles will be displayed at their original position." + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "When enabled, the channel selection list will be hidden while listening to a radio channel" + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "When enabled, the infobar will be displayed when a new event starts." + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "When enabled, the infobar will be displayed when changing channels." + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "When enabled, the original line breaks will be removed from the teletext subtitles." + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "When enabled, the receiver will automatically use the audio track which you selected before." + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "When enabled, the receiver will automatically use the subtitles which you selected before." + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "When enabled, the receiver will select an AC3 track (when available)." + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "When enabled, timeshift starts automatically in background after specified time." + +msgid "When enabled, use DHCP for the IP configuration." +msgstr "When enabled, use DHCP for the IP configuration." + +#, fuzzy +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "When enabled, the receiver will select an AC3 track (when available)." + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "When nonzero, a recording will start earlier than the starting time indicated by the EPG." + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "When nonzero, a recording will stop later than the ending time indicated by the EPG." + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." + +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" + +msgid "Where do you want to backup your settings?" +msgstr "Where do you want to backup your settings?" + +msgid "Where to save temporary timeshift recordings?" +msgstr "Where to save temporary timeshift recordings?" + +msgid "Wireless LAN" +msgstr "Wireless LAN" + +msgid "Wireless network" +msgstr "Wireless network" + +msgid "Wireless network configuration..." +msgstr "Wireless network configuration..." + +msgid "Wireless network connection setup" +msgstr "Wireless network connection setup" + +msgid "Wireless network connection setup." +msgstr "Wireless network connection setup." + +msgid "Wireless network state" +msgstr "Wireless network state" + +msgid "With popup" +msgstr "With popup" + +msgid "Without popup" +msgstr "Without popup" + +msgid "Would you like to install a softcam?" +msgstr "Would you like to install a softcam?" + +msgid "Write error while recording. Disk full?\n" +msgstr "Write error while recording. Disk full?\n" + +msgid "Write failed!" +msgstr "Write failed!" + +msgid "YPbPr" +msgstr "YPbPr" + +msgid "Year" +msgstr "Year" + +msgid "Yellow DVB subtitles" +msgstr "Yellow DVB subtitles" + +msgid "Yes" +msgstr "Yes" + +msgid "Yes and save" +msgstr "" + +msgid "Yes and save in movie dir" +msgstr "" + +msgid "Yes to all" +msgstr "Yes to all" + +msgid "Yes, always" +msgstr "Yes, always" + +msgid "Yes, and delete this movie" +msgstr "Yes, and delete this movie" + +msgid "Yes, backup my settings!" +msgstr "Yes, backup my settings!" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +msgid "Yes, do a manual scan now" +msgstr "Yes, do a manual scan now" + +msgid "Yes, do an automatic scan now" +msgstr "Yes, do an automatic scan now" + +msgid "Yes, do another manual scan now" +msgstr "Yes, do another manual scan now" + +msgid "Yes, perform a shutdown now." +msgstr "Yes, perform a shutdown now." + +msgid "Yes, restore the settings now" +msgstr "Yes, restore the settings now" + +msgid "Yes, returning to movie list" +msgstr "Yes, returning to movie list" + +msgid "Yesterday" +msgstr "Yesterday" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" + +msgid "You can cancel the installation." +msgstr "You can cancel the installation." + +msgid "You can cancel the removal." +msgstr "You can cancel the removal." + +msgid "You can continue watching TV etc. while this is running." +msgstr "You can continue watching TV etc. while this is running." + +msgid "You can install this plugin." +msgstr "You can install this plugin." + +msgid "You can only burn receiver recordings!" +msgstr "You can only burn receiver recordings!" + +msgid "You can remove this plugin." +msgstr "You can remove this plugin." + +msgid "You cannot delete this!" +msgstr "You cannot delete this!" + +msgid "You didn't select a channel to record from." +msgstr "You didn't select a channel to record from." + +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "You have chosen to backup your settings. Please press OK to start the backup now." + +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." + +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." + +#, python-format +msgid "You have to wait %s!" +msgstr "You have to wait %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." + +msgid "You system does not support ext4" +msgstr "You system does not support ext4" + +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "Your backup succeeded. We will now continue to explain the further upgrade process." + +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" + +msgid "Your current collection will get lost!" +msgstr "Your current collection will get lost!" + +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" + +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "Your internet connection is working (ip: %s)" + +msgid "Your network configuration has been activated." +msgstr "Your network configuration has been activated." + +msgid "Your receiver does not have an internet connection" +msgstr "Your receiver does not have an internet connection" + +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." + +msgid "Your receiver is rebooting" +msgstr "Your receiver is rebooting" + +msgid "Your receiver is shutting down" +msgstr "Your receiver is shutting down" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "Your receiver is shutting down. Please stand by..." + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "" + +msgid "Your receiver will got to standby due to inactivity." +msgstr "" + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "Your receiver will restart after pressing OK on your remote control." + +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." + +msgid "Zap" +msgstr "Zap" + +msgid "Zap back to previously tuned service?" +msgstr "Zap back to previously tuned service?" + +msgid "Zap back to service before positioner setup?" +msgstr "Zap back to service before positioner setup?" + +msgid "Zap back to service before tuner setup?" +msgstr "Zap back to service before tuner setup?" + +msgid "Zap focus to Picture in Picture" +msgstr "Zap focus to Picture in Picture" + +msgid "Zap focus to main screen" +msgstr "Zap focus to main screen" + +msgid "Zap mode" +msgstr "Zap mode" + +msgid "Zap to selected channel" +msgstr "Zap to selected channel" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "Zap to selected channel, or show detailed event info (depends on configuration)" + +msgid "[alternative edit]" +msgstr "[alternative edit]" + +msgid "[bouquet edit]" +msgstr "[bouquet edit]" + +msgid "[favourite edit]" +msgstr "[favourite edit]" + +msgid "[move mode]" +msgstr "[move mode]" + +msgid "a gui to assign services/providers to common interface modules" +msgstr "a gui to assign services/providers to common interface modules" + +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "a gui to assign services/providers/caids to common interface modules" + +msgid "abort alternatives edit" +msgstr "abort alternatives edit" + +msgid "abort bouquet edit" +msgstr "abort bouquet edit" + +msgid "abort favourites edit" +msgstr "abort favourites edit" + +msgid "about to start" +msgstr "about to start" + +msgid "activate network adapter configuration" +msgstr "activate network adapter configuration" + +msgid "add alternatives" +msgstr "add alternatives" + +msgid "add bookmark" +msgstr "add bookmark" + +msgid "add bouquet" +msgstr "add bouquet" + +msgid "add marker" +msgstr "add marker" + +msgid "add service to bouquet" +msgstr "add service to bouquet" + +msgid "add service to favourites" +msgstr "add service to favourites" + +msgid "add to parental protection" +msgstr "add to parental protection" + +msgid "adult movie/drama" +msgstr "adult movie/drama" + +msgid "advanced" +msgstr "advanced" + +msgid "adventure/western/war" +msgstr "adventure/western/war" + +msgid "advertisement/shopping" +msgstr "advertisement/shopping" + +msgid "after " +msgstr "" + +msgid "alphabetic" +msgstr "alphabetic" + +msgid "alphabetic reverse" +msgstr "alphabetic reverse" + +msgid "alternative" +msgstr "alternative" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "arts/culture (without music, general)" + +msgid "arts/culture magazine" +msgstr "arts/culture magazine" + +msgid "athletics" +msgstr "athletics" + +msgid "audio tracks" +msgstr "audio tracks" + +msgid "auto" +msgstr "auto" + +msgid "automatic" +msgstr "automatic" + +msgid "back" +msgstr "back" + +msgid "background image" +msgstr "background image" + +msgid "ballet" +msgstr "ballet" + +#, python-format +msgid "bc%s" +msgstr "bc%s" + +msgid "better" +msgstr "better" + +msgid "black" +msgstr "black" + +msgid "black & white" +msgstr "black & white" + +msgid "blacklist" +msgstr "blacklist" + +msgid "blue" +msgstr "blue" + +msgid "broadcasting/press" +msgstr "broadcasting/press" + +msgid "by date" +msgstr "by date" + +msgid "cartoon/puppets" +msgstr "cartoon/puppets" + +msgid "center" +msgstr "center" + +msgid "centered" +msgstr "" + +msgid "centered, wrapped" +msgstr "" + +msgid "chapters" +msgstr "chapters" + +msgid "childrens's/youth program (general)" +msgstr "childrens's/youth program (general)" + +msgid "circular left" +msgstr "circular left" + +msgid "circular right" +msgstr "circular right" + +msgid "comedy" +msgstr "comedy" + +msgid "complex" +msgstr "complex" + +msgid "config menu" +msgstr "config menu" + +msgid "confirmed" +msgstr "confirmed" + +msgid "connected" +msgstr "connected" + +msgid "continue" +msgstr "continue" + +msgid "cooking" +msgstr "cooking" + +msgid "copy to bouquets" +msgstr "copy to bouquets" + +msgid "create directory" +msgstr "create directory" + +#, python-format +msgid "currently installed image: %s" +msgstr "currently installed image: %s" + +msgid "daily" +msgstr "daily" + +msgid "day" +msgstr "day" + +msgid "default" +msgstr "default" + +msgid "delete cut" +msgstr "delete cut" + +msgid "delete..." +msgstr "" + +msgid "descramble and record ecm" +msgstr "descramble and record ecm" + +msgid "detective/thriller" +msgstr "detective/thriller" + +msgid "disable" +msgstr "disable" + +msgid "disable move mode" +msgstr "disable move mode" + +msgid "disabled" +msgstr "disabled" + +msgid "disconnected" +msgstr "disconnected" + +msgid "discussion/interview/debate" +msgstr "discussion/interview/debate" + +msgid "do nothing" +msgstr "do nothing" + +msgid "documentary" +msgstr "documentary" + +msgid "don't descramble, record ecm" +msgstr "don't descramble, record ecm" + +msgid "done!" +msgstr "done!" + +msgid "east" +msgstr "east" + +msgid "economics/social advisory" +msgstr "economics/social advisory" + +msgid "edit alternatives" +msgstr "edit alternatives" + +msgid "education/science/factual topics (general)" +msgstr "education/science/factual topics (general)" + +msgid "empty" +msgstr "empty" + +msgid "enable" +msgstr "enable" + +msgid "enable bouquet edit" +msgstr "enable bouquet edit" + +msgid "enable favourite edit" +msgstr "enable favourite edit" + +msgid "enable move mode" +msgstr "enable move mode" + +msgid "enabled" +msgstr "enabled" + +msgid "end alternatives edit" +msgstr "end alternatives edit" + +msgid "end bouquet edit" +msgstr "end bouquet edit" + +msgid "end cut here" +msgstr "end cut here" + +msgid "end favourites edit" +msgstr "end favourites edit" + +msgid "entertainment (10-16 year old)" +msgstr "entertainment (10-16 year old)" + +msgid "entertainment (6-14 year old)" +msgstr "entertainment (6-14 year old)" + +msgid "equal to" +msgstr "equal to" + +msgid "equestrian" +msgstr "equestrian" + +msgid "exit DVD player or return to file browser" +msgstr "exit DVD player or return to file browser" + +msgid "exit movielist" +msgstr "" + +msgid "exit network adapter configuration" +msgstr "exit network adapter configuration" + +msgid "exit networkadapter setup menu" +msgstr "exit networkadapter setup menu" + +msgid "experimental film/video" +msgstr "experimental film/video" + +msgid "false" +msgstr "false" + +msgid "fashion" +msgstr "fashion" + +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "fileformats (BMP, PNG, JPG, GIF)" + +msgid "filename" +msgstr "filename" + +msgid "film/cinema" +msgstr "film/cinema" + +msgid "fine arts" +msgstr "fine arts" + +msgid "fine-tune your display" +msgstr "fine-tune your display" + +msgid "fitness & health" +msgstr "fitness & health" + +msgid "flat alphabetic" +msgstr "flat alphabetic" + +msgid "flat alphabetic reverse" +msgstr "flat alphabetic reverse" + +msgid "folk/traditional music" +msgstr "folk/traditional music" + +msgid "football/soccer" +msgstr "football/soccer" + +msgid "foreign countries/expeditions" +msgstr "foreign countries/expeditions" + +msgid "forward to the next chapter" +msgstr "forward to the next chapter" + +msgid "free" +msgstr "free" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "further education" + +msgid "game show/quiz/contest" +msgstr "game show/quiz/contest" + +msgid "gardening" +msgstr "gardening" + +msgid "go to deep standby" +msgstr "go to deep standby" + +msgid "go to standby" +msgstr "go to standby" + +msgid "grab this frame as bitmap" +msgstr "grab this frame as bitmap" + +msgid "green" +msgstr "green" + +msgid "handicraft" +msgstr "handicraft" + +msgid "height" +msgstr "height" + +msgid "help..." +msgstr "help..." + +msgid "horizontal" +msgstr "horizontal" + +msgid "information/education/school program" +msgstr "information/education/school program" + +msgid "init module" +msgstr "init module" + +msgid "init modules" +msgstr "init modules" + +msgid "insert mark here" +msgstr "insert mark here" + +msgid "invalid type" +msgstr "invalid type" + +msgid "jazz" +msgstr "jazz" + +msgid "jump back to the previous title" +msgstr "jump back to the previous title" + +msgid "jump forward to the next title" +msgstr "jump forward to the next title" + +msgid "languages" +msgstr "languages" + +msgid "leave movie player..." +msgstr "leave movie player..." + +msgid "left" +msgstr "left" + +msgid "left, wrapped" +msgstr "" + +msgid "leisure hobbies (general)" +msgstr "leisure hobbies (general)" + +msgid "length" +msgstr "length" + +msgid "limit ..., aborting !" +msgstr "limit ..., aborting !" + +msgid "list style compact" +msgstr "list style compact" + +msgid "list style compact with description" +msgstr "list style compact with description" + +msgid "list style default" +msgstr "list style default" + +msgid "list style single line" +msgstr "list style single line" + +msgid "literature" +msgstr "literature" + +msgid "live broadcast" +msgstr "live broadcast" + +msgid "locked" +msgstr "locked" + +msgid "loopthrough to" +msgstr "loopthrough to" + +msgid "magazines/reports/documentary" +msgstr "magazines/reports/documentary" + +msgid "manual" +msgstr "manual" + +msgid "martial sports" +msgstr "martial sports" + +msgid "medicine/physiology/psychology" +msgstr "medicine/physiology/psychology" + +msgid "menu" +msgstr "menu" + +msgid "mins" +msgstr "mins" + +msgid "minutes" +msgstr "minutes" + +msgid "month" +msgstr "month" + +msgid "motor sport" +msgstr "motor sport" + +msgid "motoring" +msgstr "motoring" + +msgid "move down to last entry" +msgstr "move down to last entry" + +msgid "move down to next entry" +msgstr "move down to next entry" + +msgid "move up to first entry" +msgstr "move up to first entry" + +msgid "move up to previous entry" +msgstr "move up to previous entry" + +msgid "movie/drama (general)" +msgstr "movie/drama (general)" + +msgid "multinorm" +msgstr "multinorm" + +msgid "music/ballet/dance (general)" +msgstr "music/ballet/dance (general)" + +msgid "musical/opera" +msgstr "musical/opera" + +msgid "nature/animals/environment" +msgstr "nature/animals/environment" + +msgid "never" +msgstr "never" + +msgid "new media" +msgstr "new media" + +msgid "news magazine" +msgstr "news magazine" + +msgid "news/current affairs (general)" +msgstr "news/current affairs (general)" + +msgid "news/weather report" +msgstr "news/weather report" + +msgid "no" +msgstr "no" + +msgid "no CAId selected" +msgstr "no CAId selected" + +msgid "no CI slots found" +msgstr "no CI slots found" + +msgid "no module found" +msgstr "no module found" + +msgid "no storage devices found" +msgstr "no storage devices found" + +msgid "none" +msgstr "none" + +msgid "normal" +msgstr "normal" + +msgid "not configured" +msgstr "not configured" + +msgid "not locked" +msgstr "not locked" + +msgid "not supported" +msgstr "not supported" + +msgid "not used" +msgstr "not used" + +msgid "nothing connected" +msgstr "nothing connected" + +msgid "of a DUAL layer medium used." +msgstr "of a DUAL layer medium used." + +msgid "of a SINGLE layer medium used." +msgstr "of a SINGLE layer medium used." + +msgid "off" +msgstr "off" + +msgid "offset is" +msgstr "offset is" + +msgid "on" +msgstr "on" + +msgid "on READ ONLY medium." +msgstr "on READ ONLY medium." + +msgid "on end of movie" +msgstr "" + +msgid "once" +msgstr "once" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +msgid "open nameserver configuration" +msgstr "open nameserver configuration" + +msgid "original" +msgstr "original" + +msgid "original language" +msgstr "original language" + +msgid "pass" +msgstr "pass" + +msgid "performing arts" +msgstr "performing arts" + +msgid "play as picture in picture" +msgstr "play as picture in picture" + +msgid "play in mainwindow" +msgstr "play in mainwindow" + +msgid "please press OK when ready" +msgstr "please press OK when ready" + +msgid "please wait, loading picture..." +msgstr "please wait, loading picture..." + +msgid "popular culture/traditional arts" +msgstr "popular culture/traditional arts" + +msgid "pre-school children's program" +msgstr "pre-school children's program" + +msgid "receiver software because updates are available." +msgstr "receiver software because updates are available." + +msgid "record" +msgstr "record" + +msgid "recording..." +msgstr "recording..." + +msgid "red" +msgstr "red" + +msgid "religion" +msgstr "religion" + +msgid "remarkable people" +msgstr "remarkable people" + +msgid "remove after this position" +msgstr "remove after this position" + +msgid "remove all alternatives" +msgstr "remove all alternatives" + +msgid "remove all new found flags" +msgstr "remove all new found flags" + +msgid "remove before this position" +msgstr "remove before this position" + +msgid "remove bookmark" +msgstr "remove bookmark" + +msgid "remove directory" +msgstr "remove directory" + +msgid "remove entry" +msgstr "remove entry" + +msgid "remove from parental protection" +msgstr "remove from parental protection" + +msgid "remove new found flag" +msgstr "remove new found flag" + +msgid "remove selected satellite" +msgstr "remove selected satellite" + +msgid "remove this mark" +msgstr "remove this mark" + +msgid "rename entry" +msgstr "" + +msgid "repeat playlist" +msgstr "repeat playlist" + +msgid "repeated" +msgstr "repeated" + +msgid "reverse by date" +msgstr "reverse by date" + +msgid "rewind to the previous chapter" +msgstr "rewind to the previous chapter" + +msgid "right" +msgstr "right" + +msgid "right, wrapped" +msgstr "" + +msgid "rock/pop" +msgstr "rock/pop" + +msgid "romance" +msgstr "romance" + +msgid "save last directory on exit" +msgstr "save last directory on exit" + +msgid "save playlist on exit" +msgstr "save playlist on exit" + +msgid "scan state" +msgstr "scan state" + +msgid "science fiction/fantasy/horror" +msgstr "science fiction/fantasy/horror" + +msgid "second cable of motorized LNB" +msgstr "second cable of motorized LNB" + +msgid "seconds" +msgstr "seconds" + +msgid "select" +msgstr "select" + +msgid "select CAId's" +msgstr "select CAId's" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +msgid "select menu entry" +msgstr "select menu entry" + +msgid "select movie" +msgstr "" + +msgid "select the movie path" +msgstr "" + +msgid "serious music/classic music" +msgstr "serious music/classic music" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "serious/classical/religious/historical movie/drama" + +msgid "service PIN" +msgstr "service PIN" + +msgid "set as startup service" +msgstr "set as startup service" + +msgid "setup PIN" +msgstr "setup PIN" + +msgid "show DVD main menu" +msgstr "show DVD main menu" + +msgid "show all tags" +msgstr "show all tags" + +msgid "show alternatives" +msgstr "show alternatives" + +msgid "show event details" +msgstr "show event details" + +msgid "show extended description" +msgstr "" + +msgid "show mediaplayer on mainmenu" +msgstr "show mediaplayer on mainmenu" + +msgid "show softwaremanager in setup menu" +msgstr "show softwaremanager in setup menu" + +msgid "show softwaremanager on blue button" +msgstr "show softwaremanager on blue button" + +msgid "show tag menu" +msgstr "" + +msgid "show transponder info" +msgstr "show transponder info" + +msgid "show/game show (general)" +msgstr "show/game show (general)" + +msgid "shuffle" +msgstr "shuffle" + +msgid "shut down" +msgstr "shut down" + +msgid "simple" +msgstr "simple" + +msgid "skip backward" +msgstr "skip backward" + +msgid "skip forward" +msgstr "skip forward" + +msgid "soap/melodram/folkloric" +msgstr "soap/melodram/folkloric" + +msgid "social/political issues/economics (general)" +msgstr "social/political issues/economics (general)" + +msgid "social/spiritual science" +msgstr "social/spiritual science" + +msgid "sorting of playlists" +msgstr "sorting of playlists" + +msgid "special characters" +msgstr "special characters" + +msgid "special events" +msgstr "special events" + +msgid "special format data DVD (HDTV compatible)" +msgstr "special format data DVD (HDTV compatible)" + +msgid "sports (general)" +msgstr "sports (general)" + +msgid "sports magazine" +msgstr "sports magazine" + +msgid "standard" +msgstr "standard" + +msgid "start cut here" +msgstr "start cut here" + +msgid "start directory" +msgstr "start directory" + +msgid "stepsize" +msgstr "stepsize" + +msgid "stereo" +msgstr "stereo" + +msgid "stop using as startup service" +msgstr "stop using as startup service" + +msgid "switch to bookmarks" +msgstr "switch to bookmarks" + +msgid "switch to filelist" +msgstr "switch to filelist" + +msgid "switch to the next angle" +msgstr "switch to the next angle" + +msgid "switch to the next audio track" +msgstr "switch to the next audio track" + +msgid "switch to the next subtitle language" +msgstr "switch to the next subtitle language" + +msgid "talk show" +msgstr "talk show" + +msgid "team sports" +msgstr "team sports" + +msgid "technology/natural science" +msgstr "technology/natural science" + +msgid "template file" +msgstr "template file" + +msgid "tennis/squash" +msgstr "tennis/squash" + +msgid "this recording" +msgstr "this recording" + +msgid "this service is protected by a parental control pin" +msgstr "this service is protected by a parental control pin" + +msgid "toggle time, chapter, audio, subtitle info" +msgstr "toggle time, chapter, audio, subtitle info" + +msgid "top" +msgstr "top" + +msgid "tourism/travel" +msgstr "tourism/travel" + +msgid "true" +msgstr "true" + +msgid "unavailable" +msgstr "unavailable" + +msgid "unconfirmed" +msgstr "unconfirmed" + +msgid "undefined" +msgstr "undefined" + +msgid "unknown" +msgstr "unknown" + +msgid "unknown service" +msgstr "unknown service" + +msgid "unpublished" +msgstr "unpublished" + +msgid "until standby/restart" +msgstr "until standby/restart" + +msgid "user defined" +msgstr "user defined" + +msgid "variety show" +msgstr "variety show" + +msgid "vertical" +msgstr "vertical" + +msgid "wait for ci..." +msgstr "wait for ci..." + +msgid "wait for mmi..." +msgstr "wait for mmi..." + +msgid "waiting" +msgstr "waiting" + +msgid "water sport" +msgstr "water sport" + +msgid "weekly" +msgstr "weekly" + +msgid "west" +msgstr "west" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "white" + +msgid "whitelist" +msgstr "whitelist" + +msgid "width" +msgstr "width" + +msgid "winter sport" +msgstr "winter sport" + +msgid "wireless network interface" +msgstr "wireless network interface" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "with %d error" +msgstr[1] "with %d errors" + +msgid "working" +msgstr "working" + +msgid "yellow" +msgstr "yellow" + +msgid "yes" +msgstr "yes" + +msgid "yes (keep feeds)" +msgstr "yes (keep feeds)" + +msgid "zap" +msgstr "zap" + +msgid "zap and record" +msgstr "zap and record" + +msgid "zapped" +msgstr "zapped" + +#~ msgid "AA" +#~ msgstr "AA" + +#~ msgid "AB" +#~ msgstr "AB" + +#~ msgid "Activate PiP" +#~ msgstr "Activate PiP" + +#~ msgid "Add/remove timer for current event" +#~ msgstr "Add/remove timer for current event" + +#~ msgid "Adjust HDMI CEC settings" +#~ msgstr "Adjust HDMI CEC settings" + +#~ msgid "All satellites" +#~ msgstr "All satellites" + +#~ msgid "BA" +#~ msgstr "BA" + +#~ msgid "BB" +#~ msgstr "BB" + +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "Behavior of 'pause' when paused" + +#~ msgid "Committed DiSEqC command" +#~ msgstr "Committed DiSEqC command" + +#~ msgid "Configure if and how service type icons will be shown." +#~ msgstr "Configure if and how service type icons will be shown." + +#~ msgid "Configure if service picons will be shown in the servicelist." +#~ msgstr "Configure if service picons will be shown in the servicelist." + +#~ msgid "Configure the behavior of the 'pause' key when movie playback is already paused." +#~ msgstr "Configure the behavior of the 'pause' key when movie playback is already paused." + +#~ msgid "DiSEqC repeats" +#~ msgstr "DiSEqC repeats" + +#~ msgid "Goto specific data/time" +#~ msgstr "Goto specific data/time" + +#~ msgid "Memory positions" +#~ msgstr "Memory positions" + +#~ msgid "No satellite frontend found!!" +#~ msgstr "No satellite frontend found!!" + +#~ msgid "Open service list and select next channel" +#~ msgstr "Open service list and select next channel" + +#~ msgid "Open service list and select previous channel" +#~ msgstr "Open service list and select previous channel" + +#~ msgid "Press '0' to toggle internal/external PiP." +#~ msgstr "Press '0' to toggle internal/external PiP." + +#~ msgid "Remove timer" +#~ msgstr "Remove timer" + +#~ msgid "Send DiSEqC" +#~ msgstr "Send DiSEqC" + +#~ msgid "Show picons in servicelist" +#~ msgstr "Show picons in servicelist" + +#~ msgid "Switch next channel" +#~ msgstr "Switch next channel" + +#~ msgid "Tuning step size" +#~ msgstr "Tuning step size" + +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Uncommitted DiSEqC command" + +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "Zap back to service before satfinder?" + +#~ msgid "tuner is not supported" +#~ msgstr "tuner is not supported" diff --git a/po/es.po b/po/es.po new file mode 100644 index 0000000..52a4329 --- /dev/null +++ b/po/es.po @@ -0,0 +1,9873 @@ +# Spanish translations for Enigma2. +# +msgid "" +msgstr "" +"Project-Id-Version: enigma2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2011-04-12 22:26+0200\n" +"Last-Translator: Jose Juan <jzapater@gmail.com>\n" +"Language-Team: none\n" +"Language: es\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-Generator: Pootle 2.0.3\n" +"X-Poedit-Language: Spanish\n" +"X-Poedit-SourceCharset: iso-8859-1\n" +"X-Poedit-Country: SPAIN\n" + +# +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"Opciones avanzadas y configuración." + +#, sfteam +msgid "Install cache server" +msgstr "Instalar cache server" + +#, sfteam +msgid "Cache Server type" +msgstr "Tipo de cahe server" + +# +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"Después de pulsar OK, espere!" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" + +# +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"Editar la dirección fuente de actualización." + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" + +# +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"Pulse OK en su mando para continuar." + +# +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"Restaurar su backup for fecha." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" + +# +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"Busca extensiones locales e instálalas." + +# +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Seleccione su dispositivo de backup.\n" +"Dispositivo actual:" + +# +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"Ver, instalar y eliminar paquetes disponibles o instalados." + +msgid " (PiP)" +msgstr "" + +msgid " (Radio)" +msgstr "" + +msgid " (TV)" +msgstr "" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +# +msgid " extensions." +msgstr "extensiones." + +msgid " ms" +msgstr "ms" + +# +msgid " packages selected." +msgstr "paquetes seleccionados." + +# +msgid " updates available." +msgstr "actualizaciones disponibles." + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "" + +msgid "%A %d %B" +msgstr "" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "" + +# +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "" + +# +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, fuzzy, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "¡%d canales encontrados!" +msgstr[1] "¡%d canales encontrados!" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" + +# +#, fuzzy, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "¡%d trabajos está ejecutándose en segundo plano!" +msgstr[1] "¡%d trabajos está ejecutándose en segundo plano!" + +# +#, python-format +msgid "%d min" +msgstr "%d min" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d minutes" +msgstr "" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "" +msgstr[1] "" + +# +#, fuzzy, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "directorio /var" +msgstr[1] "directorio /var" + +# +#, fuzzy, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "1 red wifi encontrada!" +msgstr[1] "1 red wifi encontrada!" + +msgid "%d-%b-%Y %-H:%M" +msgstr "" + +msgid "%d-%m" +msgstr "" + +# +msgid "%d.%B %Y" +msgstr "%d/%B/%Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "" + +# +#, fuzzy, python-format +msgid "%s %s free disk space" +msgstr "espacio libre en disco" + +# +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "" + +# +#, fuzzy, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "actualizaciones disponibles." +msgstr[1] "actualizaciones disponibles." + +#, python-format +msgid "%s%d min" +msgstr "" + +#, python-format +msgid "%s/%s: %s" +msgstr "" + +# +msgid "(ZAP)" +msgstr "(ZAPEAR)" + +# +msgid "(empty)" +msgstr "(vacío)" + +# +msgid "(show optional DVD audio menu)" +msgstr "(muestra ménu de audio de DVD)" + +# +msgid "service searching" +msgstr "Busqueda de canales" + +# +msgid "* Only available if more than one interface is active." +msgstr "* Solo disponible si más de un interface está activo" + +msgid "/s" +msgstr "" + +# +msgid "0" +msgstr "0" + +# +msgid "1" +msgstr "1" + +# +msgid "1.0" +msgstr "1.0" + +# +msgid "1.1" +msgstr "1.1" + +# +msgid "1.2" +msgstr "1.2" + +# +msgid "12V output" +msgstr "12V salida" + +# +msgid "13 V" +msgstr "13 V" + +# +msgid "16:10" +msgstr "16:10" + +# +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +# +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +# +msgid "16:9" +msgstr "16:9" + +# +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +# +msgid "16:9 always" +msgstr "siempre 16:9" + +# +msgid "18 V" +msgstr "18 V" + +# +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "" + +msgid "24" +msgstr "" + +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +# +msgid "3" +msgstr "3" + +msgid "30" +msgstr "" + +msgid "3d mode" +msgstr "" + +# +msgid "4" +msgstr "4" + +# +msgid "4:3" +msgstr "4:3" + +# +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +# +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +# +msgid "5" +msgstr "5" + +# +msgid "6" +msgstr "6" + +# +msgid "7" +msgstr "7" + +# +msgid "8" +msgstr "8" + +# +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +# +msgid "<Current movielist location>" +msgstr "<Localización actual de la lista de películas>" + +# +msgid "<Default movie location>" +msgstr "<Localización de películas por defecto>" + +# +msgid "<Last timer location>" +msgstr "<Localización de la última grabación>" + +# +msgid "<unknown>" +msgstr "<desconocido>" + +# +msgid "??" +msgstr "??" + +# +msgid "A" +msgstr "A" + +# +#, fuzzy, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"El fichero de configuración (%s) fue modificado desde la Instalación.\n" +"¿Quiere conservar su versión?" + +# +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"El fichero de configuración (%s) fue modificado desde la Instalación.\n" +"¿Quiere conservar su versión?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +# +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "Un EPG gráfico para todos los canales de una lista específica" + +# +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"Una grabación ha comenzado:\n" +"%s" + +# +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"Una grabación está actualmente ejecutándose.\n" +"¿Qué quiere hacer?" + +# +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "Una grabación se está ejecutando. Por favor, pare la grabación antes de intentar configurar el motor." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "" + +# +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "Una grabación se está ejecutando. Por favor, pare la grabación antes de intentar el buscador de satélites." + +# +#, python-format +msgid "A required tool (%s) was not found." +msgstr "Una herramienta obligatoria (%s) no fue encontrada" + +# +msgid "A search for available updates is currently in progress." +msgstr "Una búsqueda de actualizaciones disponibles está en proceso." + +# +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"Un segundo interface configurado ha sido encontrado.\n" +"\n" +"¿Quiere desabilitar el segundo interface de red?" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +# +msgid "A small overview of the available icon states and actions." +msgstr "Una pequeña vista de los iconos de estados y acciones." + +# +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"¡Ha fallado la grabación!\n" +"¿Desactivar TV y probar otra vez?\n" + +# +#, fuzzy +msgid "A/V settings" +msgstr "Configurar A/V" + +msgid "AC3/DTS downmix" +msgstr "" + +# +msgid "Abort" +msgstr "Abortar" + +# +msgid "About" +msgstr "Acerca de" + +# +msgid "About..." +msgstr "Acerca de..." + +# +msgid "Accesspoint:" +msgstr "Punto de Acceso:" + +# +msgid "Action on long powerbutton press" +msgstr "Acción dejando pulsado el encendido" + +msgid "Action on short powerbutton press" +msgstr "Acción al pulsar poco rato el botón de power" + +# +msgid "Activate Picture in Picture" +msgstr "Activar PiP" + +# +#, fuzzy +msgid "Activate current configuration" +msgstr "activar configuración actual" + +# +msgid "Activate network settings" +msgstr "Activar configuración de red" + +# +#, fuzzy +msgid "Activate the configured network settings." +msgstr "Activar configuración de red" + +# +msgid "Adapter settings" +msgstr "Configuración de adaptador" + +# +msgid "Add" +msgstr "Añadir" + +# +msgid "Add Bookmark" +msgstr "Añadir Marcador" + +# +msgid "Add a mark" +msgstr "Añadir marca" + +# +#, fuzzy +msgid "Add a nameserver entry" +msgstr "añadir un servidor de nombres" + +# +msgid "Add a new title" +msgstr "Añadir un nuevo título" + +# +#, fuzzy +msgid "Add bookmark" +msgstr "añadir marcador" + +# +#, fuzzy +msgid "Add directory to playlist" +msgstr "añadir el directorio a la lista" + +# +#, fuzzy +msgid "Add file to playlist" +msgstr "añadir fichero a la lista" + +# +#, fuzzy +msgid "Add files to playlist" +msgstr "añadir ficheros a la lista de reproducción" + +msgid "Add more details to the crash log" +msgstr "" + +# +#, fuzzy +msgid "Add provider" +msgstr "añadir Proveedor" + +# +#, fuzzy +msgid "Add recording (enter recording duration)" +msgstr "añadir grabación (introduzca duración)" + +# +#, fuzzy +msgid "Add recording (enter recording endtime)" +msgstr "Añadir grabación (introduzca hora fin)" + +# +#, fuzzy +msgid "Add recording (indefinitely)" +msgstr "añadir grabación (indefinidamente)" + +# +#, fuzzy +msgid "Add recording (stop after current event)" +msgstr "añadir grabación (sólo evento actual)" + +# +#, fuzzy +msgid "Add service" +msgstr "añadir Canal" + +# +msgid "Add timer" +msgstr "Grabar" + +# +msgid "Add title" +msgstr "Añadir título" + +# +msgid "Add to bouquet" +msgstr "Añadir a la lista" + +# +msgid "Add to favourites" +msgstr "Añadir a favoritos" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "" + +# +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "Ajuste la configuración del color de forma que todas las sombras de los colores se distingan, pero que estén tan saturadas como sea posible. Si está contento con el resultado, pulse OK para cerrar el ajuste de video fino, o use una tecla numérica para seleccionar otras pantallas de test." + +msgid "Advanced" +msgstr "" + +# +#, fuzzy +msgid "Advanced options" +msgstr "Opciones avanzadas" + +# +msgid "Advanced restore" +msgstr "Restauración avanzada" + +# +#, fuzzy +msgid "Advanced software" +msgstr "Software Avanzado" + +# +#, fuzzy +msgid "Advanced software plugin" +msgstr "Plugin de Sofware Avanzado" + +# +#, fuzzy +msgid "Advanced video enhancement setup" +msgstr "Configuración Mejorada de Vido Avanzado" + +# +#, fuzzy +msgid "Advanced video setup" +msgstr "Configuración de video avanzada" + +# +msgid "After event" +msgstr "Después del evento" + +# +msgid "Album" +msgstr "Album" + +msgid "Alignment of events" +msgstr "" + +msgid "Alignment of service names" +msgstr "" + +# +msgid "All" +msgstr "Todo" + +msgid "All ages" +msgstr "" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "" + +msgid "Allocate unused memory index" +msgstr "" + +msgid "Allow quit movieplayer with exit" +msgstr "" + +msgid "Allow subtitle language to equal audio language" +msgstr "" + +msgid "Allow subtitles for hearing impaired" +msgstr "" + +# +msgid "Alpha" +msgstr "Alpha" + +# +#, fuzzy +msgid "Alternative" +msgstr "añadir alternativas" + +# +#, fuzzy +msgid "Alternative numbering mode" +msgstr "Modo de radio alternativo" + +# +msgid "Alternative services tuner priority" +msgstr "Prioridad de sintonizadores alternativa" + +msgid "Always ask" +msgstr "Preguntar siempre" + +msgid "Always hide infobar" +msgstr "" + +# +msgid "An empty filename is illegal." +msgstr "Un nombre de fichero vacío es ilegal." + +# +#, fuzzy +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "Hay un error descargando la lista de paquetes. Intente de nuevo." + +# +msgid "An unknown error occurred!" +msgstr "¡Ocurrió un error desconocido!" + +msgid "And will put your receiver in standby over " +msgstr "" + +msgid "Any activity" +msgstr "" + +# +msgid "Arabic" +msgstr "Arábigo" + +msgid "Are you sure to remove this entry?" +msgstr "" + +# +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"¿Está seguro de que quiere activar esta configuración de red?\n" +"\n" + +# +#, fuzzy +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"Está seguro de querer borrar\n" +"el siguiente backup:\n" + +# +msgid "Are you sure you want to exit this wizard?" +msgstr "¿Está seguro que quiere salir de este asistente?" + +# +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"Quiere reiniciar sus adaptadores de red?\n" +"\n" + +# +#, fuzzy, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "¿Está seguro que quiere restaurar su backup Enigma2?Enigma2 reiniciará después de restaurar" + +# +#, fuzzy +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "¿Está seguro que quiere restaurar su backup Enigma2?Enigma2 reiniciará después de restaurar" + +# +msgid "Artist" +msgstr "Artista" + +msgid "Arts/Culture" +msgstr "" + +# +msgid "Ask user" +msgstr "Preguntar al usuario" + +# +#, fuzzy +msgid "Aspect ratio" +msgstr "Relación de aspecto" + +# +#, fuzzy +msgid "Assigned CAIds:" +msgstr "CAIds asignados:" + +# +#, fuzzy +msgid "Assigned services/provider:" +msgstr "Canales/Proveedor asignados:" + +# +#, fuzzy +msgid "At beginning" +msgstr "Comenzar desde el inicio" + +msgid "At end" +msgstr "" + +# +msgid "Audio" +msgstr "Sonido" + +msgid "Audio PID" +msgstr "" + +msgid "Audio language selection 1" +msgstr "" + +msgid "Audio language selection 2" +msgstr "" + +msgid "Audio language selection 3" +msgstr "" + +msgid "Audio language selection 4" +msgstr "" + +# +#, fuzzy +msgid "Audio options..." +msgstr "Opciones de sonido..." + +# +#, fuzzy, python-format +msgid "Audio track (%s) format" +msgstr "format de pista de audio (%s)" + +# +#, fuzzy, python-format +msgid "Audio track (%s) language" +msgstr "idioma de pista de audio (%s)" + +# +msgid "Author: " +msgstr "Autor:" + +# +msgid "Authoring mode" +msgstr "Modo autorizativo" + +# +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Auto" + +# +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Dividir capítulo cada ? minutos (0=nunca)" + +# +msgid "Auto flesh" +msgstr "Auto refresco" + +msgid "Auto focus" +msgstr "" + +msgid "Auto focus commencing ..." +msgstr "" + +msgid "Auto language selection" +msgstr "" + +# +msgid "Auto scart switching" +msgstr "Intercambio a euroconector auto" + +# +msgid "Automatic" +msgstr "Automático" + +# +#, fuzzy +msgid "Automatic scan" +msgstr "Búsqueda automática" + +msgid "Automatically start timeshift after" +msgstr "" + +msgid "Automatically turn on external subtitles" +msgstr "" + +# +msgid "Available format variables" +msgstr "Variables de formato disponibles" + +# +msgid "B" +msgstr "B" + +# +msgid "BER" +msgstr "BER" + +# +msgid "BER:" +msgstr "BER:" + +# +msgid "Back" +msgstr "Atrás" + +# +msgid "Background" +msgstr "Segundo plano" + +# +#, fuzzy +msgid "Background color" +msgstr "color de fondo" + +msgid "Background delete option" +msgstr "" + +msgid "Background delete speed" +msgstr "" + +# +#, fuzzy +msgid "Backup completed." +msgstr "Backup fallido." + +# +msgid "Backup failed." +msgstr "Backup fallido." + +# +msgid "Backup is running..." +msgstr "Backup está ejecutándose..." + +# +msgid "Backup system settings" +msgstr "Configuración sistema de Backup" + +# +msgid "Band" +msgstr "Banda" + +# +msgid "Bandwidth" +msgstr "Ancho de banda" + +msgid "Basque" +msgstr "" + +# +msgid "Begin time" +msgstr "Hora inicio" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +# +msgid "Behavior of 0 key in PiP-mode" +msgstr "Tecla 0 en el modo PiP" + +# +msgid "Behavior when a movie is started" +msgstr "Cuando una película ha comenzado" + +# +msgid "Behavior when a movie is stopped" +msgstr "Cuando una película ha parado" + +# +msgid "Behavior when a movie reaches the end" +msgstr "Cuando una película ha terminado" + +msgid "Big PiP" +msgstr "" + +# +msgid "Bitrate:" +msgstr "Velocidad:" + +msgid "Black screen" +msgstr "" + +msgid "Black screen till locked" +msgstr "" + +# +msgid "Block noise reduction" +msgstr "Reducción de bloque de ruido" + +# +msgid "Blue boost" +msgstr "Impulso azul" + +# +msgid "Bookmarks" +msgstr "Marcadores" + +# +msgid "Brightness" +msgstr "Brillo" + +msgid "Bulgarian" +msgstr "" + +# +msgid "Burn DVD" +msgstr "Grabar DVD" + +# +#, fuzzy, python-format +msgid "Burn audio track (%s)" +msgstr "grabar pista de audio (%s)" + +# +msgid "Burn existing image to DVD" +msgstr "Graba una imagen existente a DVD" + +msgid "Burn to DVD" +msgstr "Grabar a DVD..." + +# +msgid "Bus: " +msgstr "Bus: " + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "" + +# +msgid "C" +msgstr "C" + +# +msgid "C-Band" +msgstr "Banda-C" + +msgid "CH" +msgstr "" + +# +msgid "CI assignment" +msgstr "Asignación CI" + +# +msgid "CVBS" +msgstr "CVBS" + +# +msgid "Cable" +msgstr "Cable" + +msgid "Cable Scan" +msgstr "" + +# +#, fuzzy +msgid "Cache thumbnails" +msgstr "Cache de Miniaturas" + +msgid "Calculate" +msgstr "" + +msgid "Calculate all positions" +msgstr "" + +msgid "Calculation complete" +msgstr "" + +msgid "Calibrate" +msgstr "" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "" + +# +msgid "Cancel" +msgstr "Cancelar" + +msgid "Cannot determine" +msgstr "" + +msgid "Cannot find any signal ..., aborting !" +msgstr "" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "" + +msgid "Cannot move to trash can" +msgstr "" + +# +msgid "Capacity: " +msgstr "Capacidad: " + +# +msgid "Card" +msgstr "Tarjeta" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "" + +msgid "Center time-labels and remove date" +msgstr "" + +# +msgid "Change bouquets in quickzap" +msgstr "Cambiar de lista en zapin rápido" + +# +msgid "Change pin code" +msgstr "Cambiar código pin" + +# +#, fuzzy +msgid "Change recording (duration)" +msgstr "cambiar la grabación (duración)" + +# +#, fuzzy +msgid "Change recording (endtime)" +msgstr "cambiar grabación (hora fin)" + +msgid "Change repeat and delay settings?" +msgstr "" + +msgid "Change service PIN" +msgstr "Cambiar el PIN de servicio" + +msgid "Change service PINs" +msgstr "Cambiar los PINs de servicio" + +msgid "Change setup PIN" +msgstr "Cambiar el PIN de configuración" + +# +msgid "Change step size" +msgstr "Cambiar tamaño" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "Novedades" + +# +msgid "Channel" +msgstr "Canal" + +# +#, truncalinos +msgid "Channel list type" +msgstr "Escojer lista" + +# +msgid "Channel not in services list" +msgstr "El canal no está en la lista" + +# +#, fuzzy +msgid "Channel selection" +msgstr "Selección de Canal" + +# +msgid "Channel:" +msgstr "Canal:" + +# +msgid "Channellist menu" +msgstr "Menú lista de canales" + +# +msgid "Chap." +msgstr "Cap." + +# +msgid "Chapter" +msgstr "Capítulo" + +# +msgid "Chapter:" +msgstr "Capítulo:" + +# +msgid "Check" +msgstr "Checkear" + +msgid "Skip internet connection ckeck (disables automatic package installation)" +msgstr "omitir la conexión a Internet (desactiva la instalación automática del paquete)" + +msgid "Check the internet connection" +msgstr "Compruebe la conexión a Internet" + +msgid "Check the internet connection again" +msgstr "Compruebe la conexión a Internet de nuevo" + +# +#, fuzzy +msgid "Checking filesystem..." +msgstr "Chequear sistema de archivos..." + +msgid "Checking the internet connection" +msgstr "Comprobación de la conexión a Internet" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" + +msgid "Children/Youth" +msgstr "" + +msgid "Choose which tuner to configure." +msgstr "" + +# +msgid "Circular left" +msgstr "Izda circular" + +# +msgid "Circular right" +msgstr "Dcha circular" + +# +msgid "Cleanup" +msgstr "Limpiar" + +msgid "Clear" +msgstr "" + +# +msgid "Clear before scan" +msgstr "Limpiar antes de buscar" + +msgid "Clear fixed" +msgstr "" + +# +msgid "Clear log" +msgstr "Borrar log" + +# +#, fuzzy +msgid "Clear playlist" +msgstr "limpiar lista" + +# +msgid "Close" +msgstr "Cerrar" + +msgid "Close PiP on exit" +msgstr "" + +# +msgid "Close title selection" +msgstr "Cerrar selección de título" + +msgid "Code rate HP" +msgstr "" + +msgid "Code rate LP" +msgstr "" + +# +msgid "Coderate HP" +msgstr "Velocidad de código HP" + +# +msgid "Coderate LP" +msgstr "Velocidad de código LP" + +# +msgid "Collection name" +msgstr "Nombre de la colección" + +# +msgid "Collection settings" +msgstr "Configuración de la colección" + +# +#, fuzzy +msgid "Color format" +msgstr "Formato de Color" + +# +msgid "Command execution..." +msgstr "Ejecución comando:" + +# +msgid "Command order" +msgstr "Orden de comando" + +# +msgid "Common Interface" +msgstr "Interface común" + +# +#, fuzzy +msgid "Common Interface assignment" +msgstr "Asignación de Interface Común" + +# +msgid "Communication" +msgstr "Comunicación" + +# +#, fuzzy +msgid "Compact flash" +msgstr "Compact Flash" + +# +msgid "Complete" +msgstr "Completado" + +# +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "Complejo (permite mexclar pistas de audio y aspectos)" + +msgid "Composition of the recording filenames" +msgstr "Composición de los nombre de ficheros de grabación" + +# +#, fuzzy +msgid "Configuration mode" +msgstr "Modo Configuración" + +# +#, fuzzy, python-format +msgid "Configuration mode: %s" +msgstr "Modo Configuración" + +# +#, fuzzy +msgid "Configuration..." +msgstr "Configuración de Red..." + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "" + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "" + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "" + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "" + +msgid "Configure how recording filenames are constructed." +msgstr "" + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +# +msgid "Configure interface" +msgstr "Configurar interfaz" + +# +msgid "Configure nameservers" +msgstr "Configurar DNSs" + +msgid "Configure on which devices the background delete option should be used." +msgstr "" + +# +#, fuzzy +msgid "Configure remote control type" +msgstr "Tipo de control de adultos" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "" + +# +#, fuzzy +msgid "Configure the IP address." +msgstr "Configurar interfaz" + +msgid "Configure the aspect ratio of the screen." +msgstr "" + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +# +#, fuzzy +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "Cuando una película ha parado" + +# +#, fuzzy +msgid "Configure the behavior when movie playback is started." +msgstr "Cuando una película ha comenzado" + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "" + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "" + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "" + +msgid "Configure the brightness level of the front panel display." +msgstr "" + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "" + +msgid "Configure the color of the teletext subtitles." +msgstr "" + +msgid "Configure the contrast level of the front panel display." +msgstr "" + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "" + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "" + +msgid "Configure the first audio language (highest priority)." +msgstr "" + +msgid "Configure the first subtitle language (highest priority)." +msgstr "" + +msgid "Configure the font size of the subtitles." +msgstr "" + +msgid "Configure the fourth audio language." +msgstr "" + +# +#, fuzzy +msgid "Configure the fourth subtitle language." +msgstr "cambiar al siguiente idioma de subtítulos" + +msgid "Configure the function of a long press on the power button." +msgstr "" + +msgid "Configure the function of a short press on the power button." +msgstr "" + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "" + +# +#, fuzzy +msgid "Configure the gateway." +msgstr "Configurar interfaz" + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "" + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "" + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "" + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "" + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "" + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "" + +msgid "Configure the latitude of your location." +msgstr "" + +msgid "Configure the longitude of your location." +msgstr "" + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "" + +# +#, fuzzy +msgid "Configure the nameserver (DNS)." +msgstr "Configurar DNSs" + +# +#, fuzzy +msgid "Configure the netmask." +msgstr "Configurar interfaz" + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "" + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "" + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "" + +msgid "Configure the possible fast forward speeds." +msgstr "" + +msgid "Configure the possible rewind speeds." +msgstr "" + +msgid "Configure the primary EPG language." +msgstr "" + +msgid "Configure the refresh rate of the screen." +msgstr "" + +msgid "Configure the screen resolution in PC output mode." +msgstr "" + +msgid "Configure the second audio language." +msgstr "" + +# +#, fuzzy +msgid "Configure the second subtitle language." +msgstr "cambiar al siguiente idioma de subtítulos" + +msgid "Configure the secondary EPG language." +msgstr "" + +msgid "Configure the sharpness of the video scaling." +msgstr "" + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "" + +# +#, fuzzy +msgid "Configure the slow motion speeds." +msgstr "Velocidades lentas" + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "" + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "" + +msgid "Configure the third audio language." +msgstr "" + +# +#, fuzzy +msgid "Configure the third subtitle language." +msgstr "cambiar al siguiente idioma de subtítulos" + +msgid "Configure the transparency of the OSD." +msgstr "" + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "" + +# +#, fuzzy +msgid "Configure the tuner mode." +msgstr "Modo Configuración" + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "" + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "" + +msgid "Configure the video output mode (or resolution)." +msgstr "" + +msgid "Configure the way in which the receiver changes channels." +msgstr "" + +msgid "Configure where completed timers show up in the timer list." +msgstr "" + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "" + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "" + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "" + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "" + +msgid "Configure which color format should be used on the SCART output." +msgstr "" + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "" + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "" + +# +msgid "Configure your internal LAN" +msgstr "Configurar su RED interna" + +# +msgid "Configure your network again" +msgstr "Configurar su red de nuevo" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "" + +# +msgid "Configure your wireless LAN again" +msgstr "Configurar su RED inalámbrica otra vez" + +msgid "Configures which video output connector will be used." +msgstr "" + +# +msgid "Configuring" +msgstr "Configurando" + +# +msgid "Conflicting timer" +msgstr "Grabación en conflicto" + +# +msgid "Connect" +msgstr "Conectar" + +# +#, fuzzy +msgid "Connect to a wireless network" +msgstr "Conectar a una Red Inalámbrica" + +msgid "Connected satellites" +msgstr "" + +# +msgid "Connected to" +msgstr "Conectado a" + +# +msgid "Connected!" +msgstr "¡Conectado!" + +# +msgid "Constellation" +msgstr "Constelación" + +# +msgid "Content does not fit on DVD!" +msgstr "¡Los contenidos no caben en un DVD!" + +# +msgid "Continue" +msgstr "Continuar" + +# +msgid "Continue in background" +msgstr "Continuar en segundo plano" + +# +#, fuzzy +msgid "Continue playback" +msgstr "Reproducción contínua" + +# +msgid "Continue playing" +msgstr "Reproducción contínua" + +msgid "Continues play (loop)" +msgstr "" + +# +msgid "Contrast" +msgstr "Contraste" + +msgid "Convert ext3 filesystem to ext4" +msgstr "" + +msgid "Convert ext3 to ext4" +msgstr "" + +msgid "Converting ext3 to ext4..." +msgstr "" + +msgid "Copy" +msgstr "" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "" + +msgid "Could not find installed channel list." +msgstr "" + +#, sfteam +msgid "Install usb tdt" +msgstr "Instalar usb tdt?" + +#, sfteam +msgid "Tdt list type" +msgstr "Modelo de usb" + +# +#, fuzzy +msgid "Could not load medium! No disc inserted?" +msgstr "No puedo cargar el Medio! Hay disco insertado?" + +# +msgid "Could not open Picture in Picture" +msgstr "No puedo abrir el PiP" + +# +#, fuzzy, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "No puedo grabar debido a un conflicto de programaciones %s" + +# +#, fuzzy, python-format +msgid "Could not record due to invalid service %s" +msgstr "No puedo grabar debido a un conflicto de programaciones %s" + +# +msgid "Create DVD-ISO" +msgstr "Crear DVD-ISO" + +msgid "Create more detailed crash log" +msgstr "" + +# +#, python-format +msgid "Creating directory %s failed." +msgstr "Falló la creación del directorio %s." + +# +#, fuzzy +msgid "Creating filesystem" +msgstr "Chequear sistema de archivos..." + +msgid "Creating partition" +msgstr "" + +# +msgid "Croatian" +msgstr "Croata" + +msgid "Current CEC address" +msgstr "" + +msgid "Current device: " +msgstr "Dispositivo actual:" + +msgid "Current event EPG" +msgstr "" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +# +msgid "Current settings:" +msgstr "Configuración actual:" + +# +#, fuzzy +msgid "Current transponder" +msgstr "Transponder actual" + +# +msgid "Current value: " +msgstr "Valor actual:" + +# +msgid "Current version:" +msgstr "Versión actual:" + +msgid "Currently installed image" +msgstr "Imagen actualmente instalada" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +# +#, fuzzy +msgid "Custom skip time for '1'/'3' buttons" +msgstr "Tiempo a saltar para las teclas '1'/'3'" + +# +#, fuzzy +msgid "Custom skip time for '4'/'6' buttons" +msgstr "Tiempo a pasar para las teclas '4'/'6'" + +# +#, fuzzy +msgid "Custom skip time for '7'/'9' buttons" +msgstr "Tiempo a pasar para las teclas '7'/'9'" + +# +msgid "Customize" +msgstr "Configurar" + +msgid "Customize channel list cursor behavior" +msgstr "" + +# +msgid "Cut" +msgstr "Cortar" + +# +msgid "Cutlist editor..." +msgstr "Editor de listas de corte..." + +# +msgid "Czech" +msgstr "Checo" + +# +msgid "D" +msgstr "D" + +# +msgid "DHCP" +msgstr "DHCP" + +# +#, fuzzy +msgid "DMM advanced" +msgstr "avanzado" + +msgid "DMM normal" +msgstr "" + +msgid "DUAL LAYER DVD" +msgstr "DVD DOBLE CAPA" + +msgid "DVB subtitle black transparency" +msgstr "" + +msgid "DVB-C" +msgstr "" + +msgid "DVB-C ANNEX C" +msgstr "" + +# +msgid "DVB-S" +msgstr "DVB-S" + +# +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "" + +msgid "DVB-T2" +msgstr "" + +msgid "DVD data format" +msgstr "" + +# +#, fuzzy +msgid "DVD file browser" +msgstr "Examinar ficheros de DVD" + +# +msgid "DVD media toolbox" +msgstr "Barra de disco DVD" + +# +#, fuzzy +msgid "DVD player" +msgstr "Reproductor DVD" + +# +#, fuzzy +msgid "DVD titlelist" +msgstr "Lista de títulos de DVD" + +# +msgid "Danish" +msgstr "Danés" + +# +msgid "Date" +msgstr "Fecha" + +# +#, fuzzy +msgid "Date/time input" +msgstr "Entrada Fecha/Hora" + +# +#, fuzzy +msgid "Deep standby" +msgstr "Reposo profundo" + +# +msgid "Default" +msgstr "Por defecto" + +# +msgid "Default movie location" +msgstr "Ubicación por defecto de películas" + +# +#, fuzzy +msgid "Default settings" +msgstr "Parámetros por Defecto" + +msgid "Delay before key repeat starts:" +msgstr "" + +msgid "Delay for external subtitles" +msgstr "" + +# +msgid "Delete" +msgstr "Borrar" + +# +msgid "Delete entry" +msgstr "Borrar entrada" + +# +msgid "Delete failed!" +msgstr "¡Falló el borrado!" + +# +#, fuzzy +msgid "Delete file" +msgstr "borrar fichero" + +# +#, fuzzy +msgid "Delete playlist entry" +msgstr "borrar entrada en la lista de reproducción" + +# +#, fuzzy +msgid "Delete saved playlist" +msgstr "borrar lista de reproducción guardada" + +msgid "Delete timer" +msgstr "" + +# +#, fuzzy +msgid "Delete..." +msgstr "borrar..." + +msgid "Deleted" +msgstr "" + +msgid "Deleted items" +msgstr "" + +msgid "Depth" +msgstr "" + +msgid "Descramble http streams" +msgstr "" + +# +msgid "Description" +msgstr "Descripción" + +# +msgid "Deselect" +msgstr "Deseleccionar" + +msgid "Details for plugin: " +msgstr "Detalles del plugin:" + +# +msgid "Detected HDD:" +msgstr "HDD detectado:" + +# +msgid "Detected NIMs:" +msgstr "NIMs detectados:" + +msgid "Devicename:" +msgstr "" + +msgid "Devide" +msgstr "" + +# +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +# +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +# +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +# +msgid "DiSEqC mode" +msgstr "Modo DiSEqC" + +# +#, fuzzy, python-format +msgid "DiSEqC port %s: %s" +msgstr "Repetir DiSEqC" + +# +#, fuzzy +msgid "DiSEqC-tester settings" +msgstr "Configuración de DiSEqC-Tester" + +# +msgid "Dialing:" +msgstr "Marcando:" + +# +msgid "Digital contour removal" +msgstr "Borrar contorno digital" + +# +msgid "Direct playback of linked titles without menu" +msgstr "Reproduce los títulos enlazados sin menú" + +msgid "Directory" +msgstr "" + +# +#, fuzzy, python-format +msgid "Directory %s does not exist." +msgstr "No existe el directorio %s." + +#, python-format +msgid "Directory %s nonexistent." +msgstr "" + +# +msgid "Directory browser" +msgstr "Examinar directorios" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "" + +# +#, fuzzy, python-format +msgid "Directory contains %s and %s." +msgstr "No existe el directorio %s." + +# +msgid "Disable" +msgstr "Desabilitar" + +# +msgid "Disable Picture in Picture" +msgstr "Desactivar PiP" + +msgid "Disable background scanning" +msgstr "" + +msgid "Disable timer" +msgstr "" + +# +msgid "Disabled" +msgstr "Desactivado" + +# +msgid "Disconnect" +msgstr "Desconectar" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "" + +# +msgid "Display 16:9 content as" +msgstr "Visualice los contenidos 16:9 como" + +# +msgid "Display 4:3 content as" +msgstr "Visualice los contenidos 4:3 como" + +# +msgid "Display >16:9 content as" +msgstr "Visualizar contenido >16:9" + +# +#, fuzzy +msgid "Display and userinterface" +msgstr "Pantalla e Interfaz de usuario" + +msgid "Display message before playing next movie" +msgstr "" + +# +#, fuzzy +msgid "Display setup" +msgstr "Configurar Pantalla" + +# +#, fuzzy +msgid "Do not change" +msgstr "no cambiar" + +# +#, fuzzy +msgid "Do not record" +msgstr "no grabar" + +# +#, fuzzy +msgid "Do nothing" +msgstr "no hacer nada" + +# +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Realmente quiere chequear el sistema de archivos?\n" +"¡Esto puede tardar mucho tiempo!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" + +# +#, python-format +msgid "Do you really want to delete %s?" +msgstr "¿Seguro que quiere borrar %s?" + +# +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"Seguro que quiere descargar\n" +"el plugin \"%s\"?" + +# +msgid "Do you really want to exit?" +msgstr "¿Realmente quiere salir?" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" + +# +#, fuzzy, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"Seguro que quiere descargar\n" +"el plugin \"%s\"?" + +# +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "¿Quiere borrar el directorio %s del disco?" + +# +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "¿Quiere borrar su marcador %s?" + +msgid "Do you want this?" +msgstr "" + +# +msgid "Do you want to burn this collection to DVD medium?" +msgstr "¿Quiere grabar esta colección a disco DVD?" + +# +msgid "Do you want to do a service scan?" +msgstr "¿Quiere hacer una búsqueda de canales?" + +# +msgid "Do you want to do another manual service scan?" +msgstr "¿Quiere hacer otra búsqueda manual?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "¿Quiere descargar la imagen a %s?" + +# +#, fuzzy + + +# +msgid "Do you want to install the package:\n" +msgstr "Quiere instalar el paquete:\n" + +# +msgid "Do you want to play DVD in drive?" +msgstr "Ejecutar el DVD de la unidad?" + +# +msgid "Do you want to preview this DVD before burning?" +msgstr "¿Quiere prever este DVD antes de grabarlo?" + +msgid "Do you want to reboot your receiver?" +msgstr "" + +# +msgid "Do you want to remove the package:\n" +msgstr "Quiere eliminar el paquete:\n" + +# +msgid "Do you want to restore your settings?" +msgstr "¿Quiere restaurar su configuración?" + +# +msgid "Do you want to resume this playback?" +msgstr "¿Quiere continuar esta reproducción?" + +#, fuzzy, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "¿Quiere descargar la imagen a %s?" + +msgid "Do you want to update your receiver?" +msgstr "" + +# +msgid "Do you want to upgrade the package:\n" +msgstr "Quiere actualizar el paquete:\n" + +# +msgid "Don't stop current event but disable coming events" +msgstr "No pare el evento actual, pero desactive los siguientes" + +# +#, fuzzy, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "Hecho - Instalado, actualizado o eliminados %d paquetes con %d errores" +msgstr[1] "Hecho - Instalado, actualizado o eliminados %d paquetes con %d errores" + +# +msgid "Download" +msgstr "Descargar" + +#, fuzzy, python-format +msgid "Download %s from server" +msgstr "Descargar %s desde el Servidor" + +msgid "Download .NFI-files for USB-flasher" +msgstr "Descargar ficheros .NFI para el USB-Flasher" + +# +#, fuzzy +msgid "Download plugins" +msgstr "Descargar Plugins" + +# +msgid "Downloadable new plugins" +msgstr "Nuevos plugins descargables" + +# +msgid "Downloadable plugins" +msgstr "Plugins descargables" + +# +msgid "Downloading" +msgstr "Descargando" + +# +msgid "Downloading plugin information. Please wait..." +msgstr "Descargando información del plugin. Espere..." + +# +msgid "Dutch" +msgstr "Alemán" + +# +msgid "Dynamic contrast" +msgstr "Contraste dinámico" + +# +msgid "E" +msgstr "E" + +msgid "EPG" +msgstr "" + +msgid "EPG language selection 1" +msgstr "" + +msgid "EPG language selection 2" +msgstr "" + +# +#, fuzzy +msgid "EPG selection" +msgstr "Selección EPG" + +msgid "EPG settings" +msgstr "" + +# +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "ERROR - ¡falló la búsqueda (%s)!" + +# +msgid "East" +msgstr "Este" + +msgid "East limit set" +msgstr "" + +# +msgid "Edit" +msgstr "Editar" + +# +msgid "Edit DNS" +msgstr "Editar DNS" + +msgid "Edit bouquets list" +msgstr "Editar lista de canales" + +# +msgid "Edit chapters of current title" +msgstr "Editar capítulos del título actual" + +# +msgid "Edit services list" +msgstr "Editar la lista de canales" + +# +msgid "Edit settings" +msgstr "Editar configuración" + +# +#, fuzzy +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "salir de la configuración de servidor de nombres" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "" + +msgid "Edit timer" +msgstr "" + +# +msgid "Edit title" +msgstr "Editar título" + +# +msgid "Edit upgrade source url." +msgstr "Editar url de fuente de actualización." + +msgid "Education/Science/..." +msgstr "" + +# +msgid "Electronic Program Guide" +msgstr "Guía de Programación Electrónica" + +# +msgid "Enable" +msgstr "Activar" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +# +msgid "Enable 5V for active antenna" +msgstr "Activar 5V para la antena activa" + +msgid "Enable EIT EPG" +msgstr "" + +msgid "Enable MHW EPG" +msgstr "" + +msgid "Enable Netmed EPG" +msgstr "" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +# +#, fuzzy +msgid "Enable bouquet selection in multi-EPG" +msgstr "habilitar edición de lista" + +msgid "Enable freesat EPG" +msgstr "" + +# +msgid "Enable multiple bouquets" +msgstr "Habilitar multiples listas" + +# +msgid "Enable parental control" +msgstr "Activar el control de adultos" + +msgid "Enable teletext caching" +msgstr "" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +# +msgid "Enabled" +msgstr "Activado" + +# +msgid "Encrypted: " +msgstr "Encriptado:" + +# +msgid "Encryption" +msgstr "Encriptación" + +# +#, fuzzy +msgid "Encryption key" +msgstr "Clave de Encriptación" + +# +#, fuzzy +msgid "Encryption key type" +msgstr "Tipo de clave de Encriptación" + +# +msgid "Encryption:" +msgstr "Encriptación:" + +# +msgid "End time" +msgstr "Hora fin" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +# +msgid "English" +msgstr "Inglés" + +# +#, fuzzy +msgid "Enigma2 skin selector" +msgstr "enigma2 y red" + +# +msgid "Enter main menu..." +msgstr "Entre al menú principal..." + +msgid "Enter pin code" +msgstr "Introduzca código pin" + +# +msgid "Enter the service pin" +msgstr "Ponga el pin del canal" + +msgid "Equal to" +msgstr "" + +# +msgid "Error" +msgstr "Error" + +msgid "Error code" +msgstr "" + +# +msgid "Error executing plugin" +msgstr "Error ejecutando el plugin" + +# +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Error: %s\n" +"Reintentar?" + +# +msgid "Estonian" +msgstr "Estonio" + +msgid "Ethernet network interface" +msgstr "" + +msgid "Event font size (relative to skin size)" +msgstr "" + +# +#, fuzzy +msgid "Event view" +msgstr "Ver eventos" + +# +#, fuzzy +msgid "Event view menu" +msgstr "Ver eventos" + +msgid "Everywhere" +msgstr "" + +msgid "Exceeds dual layer medium!" +msgstr "¡Excede el disco de doble capa!" + +# +msgid "Execution finished!!" +msgstr "¡Ejecución terminó!" + +# +#, fuzzy +msgid "Execution progress:" +msgstr "Progreso de ejecución:" + +# +msgid "Exif" +msgstr "Exif" + +# +msgid "Exit" +msgstr "Salir" + +msgid "Exit EPG" +msgstr "" + +# +msgid "Exit editor" +msgstr "Salir del editor" + +msgid "Exit input device selection." +msgstr "Sale de la selección de dispositivo de entrada." + +msgid "Exit media player?" +msgstr "" + +# +#, fuzzy +msgid "Exit mediaplayer" +msgstr "salir del reproductor" + +# +#, fuzzy +msgid "Exit movie list" +msgstr "salir del menú de películas" + +# +#, fuzzy +msgid "Exit movie player?" +msgstr "salir del reproductor" + +# +#, fuzzy +msgid "Exit nameserver configuration" +msgstr "salir de la configuración de servidor de nombres" + +# +#, fuzzy +msgid "Exit network interface list" +msgstr "salir de la lista de interfaces de red" + +# +msgid "Exit network wizard" +msgstr "Salir del asistente de red" + +# +msgid "Exit the wizard" +msgstr "Salir del asistente" + +# +msgid "Expert" +msgstr "Experto" + +msgid "Extend sleeptimer 15 minutes" +msgstr "" + +# +msgid "Extended Software" +msgstr "Software Extendido" + +# +msgid "Extended Software Plugin" +msgstr "Plugin de Software Extendido" + +# +#, fuzzy +msgid "Extended network setup plugin..." +msgstr "Plugin de configuración de red extendido..." + +# +#, fuzzy +msgid "Extended setup..." +msgstr "Configuración avanzada..." + +# +msgid "Extensions" +msgstr "Extensiones" + +# +msgid "Extensions management" +msgstr "Manejo de Extensiones" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "" + +msgid "Extra motor options" +msgstr "" + +# +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "" + +# +msgid "Factory reset" +msgstr "Reinicio de fábrica" + +# +msgid "Failed" +msgstr "Falló" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "" + +# +#, python-format +msgid "Fan %d" +msgstr "Ventilador %d" + +# +#, python-format +msgid "Fan %d PWM" +msgstr "Ventilador %d PWM" + +# +#, fuzzy, python-format +msgid "Fan %d voltage" +msgstr "Ventilador %d Voltaje" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +# +msgid "Fast" +msgstr "Rápido" + +# +msgid "Fast DiSEqC" +msgstr "DiSEqC Rapido" + +msgid "Fast Scan" +msgstr "" + +# +msgid "Fast epoch" +msgstr "Época rápida" + +# +#, fuzzy +msgid "Fast forward speeds" +msgstr "Velocidades hacia delante" + +# +msgid "Favourites" +msgstr "Favoritos" + +msgid "File appears to be busy.\n" +msgstr "" + +#, fuzzy +msgid "Filesystem check" +msgstr "Chequear sistema de ficheros" + +msgid "Final position at" +msgstr "" + +msgid "Final position at index" +msgstr "" + +msgid "Fine movement" +msgstr "" + +# +msgid "Finetune" +msgstr "Ajuste fino" + +# +msgid "Finished" +msgstr "Terminado" + +# +msgid "Finished configuring your network" +msgstr "Termió de configurar su red" + +# +msgid "Finished restarting your network" +msgstr "Terminó reiniciando su red" + +# +msgid "Finnish" +msgstr "Finlandés" + +msgid "Fixed" +msgstr "" + +# +msgid "Flash" +msgstr "Flash" + +# +msgid "Flashing failed" +msgstr "Falló el flasheo" + +# +msgid "Following tasks will be done after you press OK!" +msgstr "¡Las siguientes tareas serán hechas después de pulsar OK!" + +# +msgid "Format" +msgstr "Formato" + +msgid "Forward volume keys" +msgstr "" + +# +msgid "Frame size in full view" +msgstr "Tamaño de trama en vista completa" + +# +msgid "French" +msgstr "Francés" + +# +msgid "Frequency" +msgstr "Frecuencia" + +# +msgid "Frequency bands" +msgstr "Bandas de frecuencia" + +# +msgid "Frequency scan step size(khz)" +msgstr "Tamaño de paso de frecuencia(khz)" + +# +msgid "Frequency steps" +msgstr "Pasos de frecuencia" + +msgid "Frequency:" +msgstr "" + +# +msgid "Fri" +msgstr "Vie" + +# +msgid "Friday" +msgstr "Viernes" + +msgid "From :" +msgstr "" + +# +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Versión Frontprocessor: %d" + +msgid "Full transparency" +msgstr "" + +msgid "Fulview resulution" +msgstr "" + +msgid "Function of OK button" +msgstr "" + +msgid "Further Options" +msgstr "" + +# +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"GUI necesita reiniciar para aplicar la nueva piel\n" +"¿Quiere Reiniciar el GUI ahora?" + +# +msgid "Gateway" +msgstr "Puerta de enlace" + +# +#, fuzzy +msgid "General AC3 delay" +msgstr "Pausa AC3 General" + +# +#, fuzzy +msgid "General PCM delay" +msgstr "Pausa PCM General" + +# +msgid "Genre" +msgstr "Género" + +# +msgid "German" +msgstr "Alemán" + +msgid "Get latest experimental image" +msgstr "Conseguir la última imagen experimental" + +msgid "Get latest release image" +msgstr "Conseguir la última version de la imagen " + +# +msgid "Getting plugin information. Please wait..." +msgstr "Leyendo información del complemento. Espere..." + +msgid "Go down the list" +msgstr "" + +msgid "Go to first movie or last item" +msgstr "" + +msgid "Go to first movie or top of list" +msgstr "" + +# +#, fuzzy +msgid "Go to first service" +msgstr "mover arriba la primera entrada" + +# +#, fuzzy +msgid "Go to last service" +msgstr "Proteger canales" + +# +#, fuzzy +msgid "Go to next event" +msgstr "mover abajo la entrada siguiente" + +# +#, fuzzy +msgid "Go to next page of service" +msgstr "Cambiar al subcanal siguiente" + +# +#, fuzzy +msgid "Go to previous event" +msgstr "mover arriba la entrada anterior" + +# +#, fuzzy +msgid "Go to previous page of service" +msgstr "Volver al canal anterior" + +msgid "Go up the list" +msgstr "" + +msgid "Goto" +msgstr "" + +# +msgid "Goto 0" +msgstr "Ir a 0" + +msgid "Goto :" +msgstr "" + +msgid "Goto X" +msgstr "" + +msgid "Goto index position" +msgstr "" + +msgid "Goto next day of events" +msgstr "" + +msgid "Goto next page of events" +msgstr "" + +# +msgid "Goto position" +msgstr "Ir a la posición" + +msgid "Goto previous day of events" +msgstr "" + +msgid "Goto previous page of events" +msgstr "" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "" + +msgid "GraphMultiEpg Settings" +msgstr "" + +# +msgid "Graphical Multi EPG" +msgstr "Multi EPG Gráfico" + +# +msgid "Greek" +msgstr "Griego" + +# +msgid "Green boost" +msgstr "Impulso verde" + +msgid "Guard interval" +msgstr "" + +msgid "HD list" +msgstr "" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "" + +msgid "Handle wakeup from TV" +msgstr "" + +# +#, fuzzy +msgid "Hard disk" +msgstr "Disco duro" + +# +#, fuzzy +msgid "Hard disk setup" +msgstr "Configuración del disco duro" + +# +#, fuzzy +msgid "Hard disk standby after" +msgstr "Disco duro en reposo después" + +# +msgid "Harddisk" +msgstr "Disco duro" + +msgid "Hardware: " +msgstr "" + +msgid "Hebrew" +msgstr "" + +msgid "Helps setting up your dish" +msgstr "" + +msgid "Hidden network" +msgstr "" + +msgid "Hide CI messages" +msgstr "" + +msgid "Hide channel list in radio mode" +msgstr "" + +msgid "Hide known extensions" +msgstr "" + +msgid "Hide number markers" +msgstr "" + +# +#, fuzzy +msgid "Hide player" +msgstr "ocultar reproductor" + +msgid "Hide zap errors" +msgstr "" + +msgid "Hierarchy info" +msgstr "" + +# +#, fuzzy +msgid "Hierarchy information" +msgstr "Información jerárquica" + +# +msgid "High bitrate support" +msgstr "Soporte de bitrate alto" + +msgid "Hold screen" +msgstr "" + +msgid "Hold till locked" +msgstr "" + +msgid "Home" +msgstr "" + +# +msgid "Horizontal" +msgstr "Horizontal" + +msgid "Horizontal turning speed" +msgstr "" + +# +msgid "How many minutes do you want to record?" +msgstr "¿Cuántos minutos quiere grabar?" + +# +msgid "Hue" +msgstr "Hue" + +# +msgid "Hungarian" +msgstr "Húngaro" + +# +#, fuzzy +msgid "IP address" +msgstr "Dirección IP" + +# +msgid "ISO file is too large for this filesystem!" +msgstr "¡El fichero ISO es demasiado grande para este sistema de ficheros!" + +# +msgid "ISO path" +msgstr "ruta ISO" + +msgid "Icons" +msgstr "" + +# +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"Si ve esto, es que algo está mal con la\n" +"conexión del euroconector. Pulse OK para volver." + +# +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"Si su TV tiene mejoras en el brillo o el contrase, desactívelo. Si hay algo llamado \"dinámico\", póngalo a estándar. Ajuste el nivel de luz trasera a un valor que le guste. Ponga el contraste en su TV lo más bajo posible.\n" +"Ponga el brillo lo más bajo posible, pero esté seguro que los niveles de las sombras de grises más bajos son apreciables.\n" +"No se preoucpe ahora sobre las sombras. Estas serán configuradas en el siguiente paso.\n" +"Si está contento con los resultados, pulse OK." + +msgid "Image: " +msgstr "" + +# +#, fuzzy +msgid "Immediate shutdown" +msgstr "apagado inmediato" + +# +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "Para poder grabar, la TV fue cambiada al canal de la grabación\n" + +# +#, fuzzy +msgid "In progress" +msgstr "En Progreso" + +msgid "Inactivity Sleeptimer" +msgstr "" + +msgid "Include AIT in http streams" +msgstr "" + +msgid "Include ECM in http streams" +msgstr "" + +msgid "Include EIT in http streams" +msgstr "" + +msgid "Incorrect type service for PiP!" +msgstr "" + +# +msgid "Increased voltage" +msgstr "Voltaje incrementado" + +# +msgid "Index" +msgstr "Ãndice" + +msgid "Index allocated:" +msgstr "" + +# +msgid "Info" +msgstr "Info" + +# +#, fuzzy +msgid "Info bar" +msgstr "Barra de información" + +# +#, fuzzy +msgid "Info bar timeout" +msgstr "Tiempo cumplido del Infobar" + +msgid "Infobar frontend data source" +msgstr "" + +# +msgid "Information" +msgstr "Información" + +# +msgid "Init" +msgstr "Iniciar" + +# +#, fuzzy +msgid "Initial fast forward speed" +msgstr "Velocidades hacia delante" + +# +msgid "Initial location in new timers" +msgstr "Ruta inicial en nuevas programaciones" + +msgid "Initial lock ratio" +msgstr "" + +# +#, fuzzy +msgid "Initial rewind speed" +msgstr "Velocidades hacia atrás" + +msgid "Initial signal quality" +msgstr "" + +msgid "Initial signal quality:" +msgstr "" + +msgid "Initialization" +msgstr "Inicialización" + +# +msgid "Initialize" +msgstr "Inicializar" + +msgid "Initializing storage device..." +msgstr "" + +# +msgid "Input" +msgstr "Entrada" + +msgid "Input device setup" +msgstr "Configuración del dispositivo de entrada" + +msgid "Input devices" +msgstr "Dispositivos de entrada" + +# +msgid "Install" +msgstr "Instalar" + +# +msgid "Install a new image with a USB stick" +msgstr "Instalar una nueva imagen con un pendrive" + +# +msgid "Install a new image with your web browser" +msgstr "Instalar una nueva imagen con su navegador web" + +# +# truncalinos +msgid "Install channel list" +msgstr "Instalar lista de canales" + +msgid "Install extensions" +msgstr "" + +# +msgid "Install extensions." +msgstr "Instalar extensiones." + +# +msgid "Install local extension" +msgstr "Instalar extensión local" +#, truncalinos +msgid "Install picons on" +msgstr "Instalar picons" + +#, truncalinos +msgid "Picons list type" +msgstr "Escoje tipo de picons" + +# +#, fuzzy +msgid "Install softcam" +msgstr "Instalando Software..." + +# +#, fuzzy +msgid "Installation has completed." +msgstr "Instalación terminada." + +# +#, fuzzy +msgid "Installation or removal has completed." +msgstr "Instalación o borrado terminado." + +# +msgid "Installing" +msgstr "Instalando" + +# +#, fuzzy +msgid "Installing software..." +msgstr "Instalando Software..." + +# +#, fuzzy +msgid "Instant recording location" +msgstr "Ruta de grabación instantánea" + +# +#, fuzzy +msgid "Instant recording..." +msgstr "Grabación instantánea..." + +# +msgid "Interface: " +msgstr "Interface:" + +# +msgid "Intermediate" +msgstr "Intermedio" + +# +#, fuzzy +msgid "Internal flash" +msgstr "Flash Interna" + +msgid "Internal hdd only" +msgstr "" + +msgid "Interval between keys when repeating:" +msgstr "" + +# +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Directorio seleccionado inválido: %s" + +# +#, fuzzy +msgid "Invalid location" +msgstr "Localización inválida" + +msgid "Invalid transponder data" +msgstr "" + +# +msgid "Inversion" +msgstr "Inversión" + +msgid "Invert" +msgstr "" + +# +msgid "Ipkg" +msgstr "Ipkg" + +#, fuzzy +msgid "Is this setting ok?" +msgstr "¿Usar esta configuración?" + +# +#, fuzzy +msgid "Is this video mode ok?" +msgstr "¿Es este modo de video ok?" + +# +msgid "Italian" +msgstr "Italiano" + +msgid "Items per page " +msgstr "" + +msgid "Items per page for list screen" +msgstr "" + +# +#, fuzzy +msgid "Job overview" +msgstr "Ver Trabajo" + +msgid "Jump to beginning of list" +msgstr "" + +# +#, fuzzy +msgid "Jump to end of list" +msgstr "saltar al final de la lista" + +# +#, fuzzy +msgid "Jump to next marked position" +msgstr "saltar a la siguiente posición marcada" + +# +#, fuzzy +msgid "Jump to previous marked position" +msgstr "saltar a la anterior posición marcada" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +#, fuzzy +msgid "Just scale" +msgstr "Sólo escala" + +msgid "Keep service" +msgstr "" + +# +#, fuzzy +msgid "Kernel version: " +msgstr "Nueva versión:" + +# +msgid "Keyboard" +msgstr "Teclado" + +# +#, fuzzy +msgid "Keyboard map" +msgstr "Mapa del teclado" + +# +#, fuzzy +msgid "Keyboard setup" +msgstr "Configurar Teclado" + +# +#, fuzzy +msgid "LAN adapter" +msgstr "Adaptador de red" + +msgid "LAN connection" +msgstr "Conexión de red local" + +# +msgid "LNB" +msgstr "LNB" + +# +msgid "Language" +msgstr "Idioma" + +# +msgid "Language selection" +msgstr "Selección de idioma" + +# +msgid "Last config" +msgstr "Última config:" + +# +msgid "Last speed" +msgstr "Última velocidad" + +msgid "Last upgrade: " +msgstr "" + +msgid "Latest Commits" +msgstr "" + +# +msgid "Latitude" +msgstr "Latitud" + +# +msgid "Latvian" +msgstr "Letón" + +# +#, fuzzy +msgid "Leave DVD player?" +msgstr "Dejar el Reproductor de DVD?" + +# +msgid "Left" +msgstr "Izda" + +msgid "Left from servicename" +msgstr "" + +msgid "Leisure hobbies" +msgstr "" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Letterbox" + +msgid "Letterbox zoom" +msgstr "" + +# +#, fuzzy +msgid "Limit character set for recording filenames" +msgstr "Charset limitado para la grabación de nombres de fichero" + +# +msgid "Limit east" +msgstr "Límite este" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "" + +# +msgid "Limit west" +msgstr "Límite oeste" + +msgid "Limits cancelled" +msgstr "" + +msgid "Limits enabled" +msgstr "" + +# +msgid "Limits off" +msgstr "Quitar límites" + +# +msgid "Limits on" +msgstr "Límites activos" + +# +#, fuzzy +msgid "Link quality:" +msgstr "Calidad Enlace:" + +# +msgid "Link:" +msgstr "Enlace:" + +# +msgid "Linked titles with a DVD menu" +msgstr "Enlazar los títulos con un menú de DVD" + +#, fuzzy +msgid "List EPG functions..." +msgstr "lista de vistas EPG..." + +msgid "List available networks" +msgstr "" + +msgid "List mode" +msgstr "" + +# +#, fuzzy +msgid "List of storage devices" +msgstr "Listar dispositivos de almacenamiento" + +msgid "List type" +msgstr "" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "" +msgstr[1] "" + +# +#, fuzzy +msgid "Listen to the radio..." +msgstr "escuchar radio..." + +msgid "Lists reloaded!" +msgstr "" + +# +msgid "Lithuanian" +msgstr "Lituano" + +# +msgid "Load" +msgstr "Cargar" + +msgid "Load Length of Movies in Movielist" +msgstr "" + +# +#, fuzzy +msgid "Load length of movies in movie list" +msgstr "Calcular longitud de Películas en la lista" + +# +#, fuzzy +msgid "Load playlist" +msgstr "cargar lista de reproducción" + +# +#, fuzzy +msgid "Local network" +msgstr "Red Local" + +# +msgid "Location" +msgstr "Localización" + +# +msgid "Location for instant recordings" +msgstr "Ruta para grabaciones instantáneas" + +msgid "Lock ratio" +msgstr "" + +# +msgid "Lock:" +msgstr "Bloqueo:" + +# +msgid "Log results to harddisk" +msgstr "Logear resultados al disco duro" + +msgid "Long filenames" +msgstr "Nombres de ficheros largos" + +# +#, fuzzy +msgid "Long key press" +msgstr "Pulsar tecla largo" + +# +msgid "Longitude" +msgstr "Longitud" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "" + +# +#, fuzzy +msgid "MMC card" +msgstr "Tarjeta MMC" + +# +msgid "MORE" +msgstr "MAS" + +# +msgid "Main menu" +msgstr "Menú principal" + +msgid "Maintain old EPG data for" +msgstr "" + +# +msgid "Make this mark an 'in' point" +msgstr "Hacer esta marca como un punto de entrada" + +# +msgid "Make this mark an 'out' point" +msgstr "Hacer esta marca como un punto de salida" + +# +msgid "Make this mark just a mark" +msgstr "Hacer una marca normal" + +# +msgid "Manage extensions" +msgstr "Manejar extensiones" + +# +msgid "Manage your receiver's software" +msgstr "Manejar el software de su receptor" + +msgid "Manual" +msgstr "" + +# +msgid "Manual Scan" +msgstr "Búsqueda Manual" + +msgid "Manual configuration" +msgstr "" + +# +#, fuzzy +msgid "Manual scan" +msgstr "Búsqueda Manual" + +# +msgid "Manual transponder" +msgstr "Transponder manual" + +# +msgid "Manufacturer" +msgstr "Fabricante" + +# +#, fuzzy +msgid "Margin after recording (minutes)" +msgstr "Margen antes de grabar (minutos)" + +# +#, fuzzy +msgid "Margin before recording (minutes)" +msgstr "Margen antes de grabar (minutos)" + +msgid "Max memory positions" +msgstr "" + +# +#, fuzzy +msgid "Max. bitrate: " +msgstr "Max. Bitrate: " + +# +msgid "Media player" +msgstr "Reproductor" + +# +#, fuzzy +msgid "Media scanner" +msgstr "Reproductor" + +# +msgid "Medium is not a writeable DVD!" +msgstr "¡El disco no es un DVD escribible!" + +# +msgid "Medium is not empty!" +msgstr "¡El disco no está vacío!" + +msgid "Memory" +msgstr "" + +msgid "Memory index" +msgstr "" + +# +msgid "Menu" +msgstr "Menú" + +# +msgid "Message" +msgstr "Mensaje" + +# +msgid "Message..." +msgstr "Mensaje..." + +#, python-format +msgid "Minimum age %d years" +msgstr "" + +msgid "Minimum send interval" +msgstr "" + +msgid "Missing " +msgstr "" + +# +#, fuzzy +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Modo" + +# +#, fuzzy +msgctxt "Video output mode" +msgid "Mode" +msgstr "Modo" + +# +msgid "Model: " +msgstr "Modelo: " + +# +msgid "Modulation" +msgstr "Modulación" + +# +msgid "Modulator" +msgstr "Modulador" + +# +msgid "Mon" +msgstr "Lun" + +# +msgid "Mon-Fri" +msgstr "Lun-Vie" + +# +msgid "Monday" +msgstr "Lunes" + +# +msgid "Mosquito noise reduction" +msgstr "Reducción de ruido de mosquito" + +msgid "Mount" +msgstr "" + +msgid "Move" +msgstr "" + +# +#, fuzzy +msgid "Move PiP to main picture" +msgstr "mover PiP a la imagen principal" + +# +msgid "Move Picture in Picture" +msgstr "Mover PiP" + +# +msgid "Move east" +msgstr "Mover al este" + +msgid "Move to other directory" +msgstr "" + +msgid "Move to position X" +msgstr "" + +# +msgid "Move west" +msgstr "Mover al oeste" + +msgid "Moved to position 0" +msgstr "" + +msgid "Moved to position at index" +msgstr "" + +msgid "Movement" +msgstr "" + +msgid "Movie List Configuration" +msgstr "" + +msgid "Movie Selection" +msgstr "" + +# +#, fuzzy +msgid "Movie list configuration" +msgstr "Configuración sintonizador" + +# +msgid "Movie location" +msgstr "Ruta de Peli" + +# +#, fuzzy +msgid "Movie selection" +msgstr "Ruta de Peli" + +msgid "Movie/Drama" +msgstr "" + +# +msgid "Movielist menu" +msgstr "Menú de lista de películas" + +msgid "Moving" +msgstr "" + +msgid "Moving east ..." +msgstr "" + +msgid "Moving to position" +msgstr "" + +msgid "Moving west ..." +msgstr "" + +# +msgid "Multi EPG" +msgstr "EPG Múltiple" + +msgid "Multi-EPG bouquet selection" +msgstr "" + +# +msgid "Multimedia" +msgstr "Multimedia" + +# +msgid "Multiple service support" +msgstr "Soporte de canales múltiples" + +msgid "Multiplex" +msgstr "" + +# +msgid "Multisat" +msgstr "Multisat" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "" + +# +msgid "Mute" +msgstr "Silencio" + +# +msgid "N/A" +msgstr "N/D" + +# +msgid "NEXT" +msgstr "SIGUIENTE" + +# +#, fuzzy +msgid "NFI image flashing" +msgstr "Flashear Imagen NFI" + +# +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "Se descargó la imagen flash correctamente. ¡Pulse Amarillo para reiniciar!" + +msgid "NIM" +msgstr "" + +# +msgid "NOW" +msgstr "AHORA" + +# +msgid "NTSC" +msgstr "NTSC" + +# +msgid "Name" +msgstr "Nombre" + +# +msgid "Nameserver" +msgstr "DNS" + +# +#, python-format +msgid "Nameserver %d" +msgstr "Servidor de nombres %d" + +# +msgid "Nameserver settings" +msgstr "Configuración de Servidor de Nombres" + +# +#, fuzzy +msgid "Nameserver setup" +msgstr "Configuración servidor de nombres" + +msgid "Namespace" +msgstr "" + +# +msgid "Netmask" +msgstr "Máscara" + +# +msgid "Network" +msgstr "Red" + +msgid "Network ID" +msgstr "" + +# +#, fuzzy +msgid "Network configuration..." +msgstr "Configuración de Red..." + +# +#, fuzzy +msgid "Network mount" +msgstr "Montar Red" + +# +#, fuzzy, python-format +msgid "Network mount %s" +msgstr "Montar Red" + +#, fuzzy +msgid "Network name (SSID)" +msgstr "Testeo de Red:" + +# +msgid "Network scan" +msgstr "Escanear red" + +# +msgid "Network setup" +msgstr "Configuración de red" + +# +msgid "Network test" +msgstr "Testear Red" + +# +msgid "Network test..." +msgstr "Testear Red..." + +msgid "Network test: " +msgstr "Testeo de Red:" + +# +#, fuzzy +msgid "Network wizard" +msgstr "Asistente de Red" + +# +msgid "Network:" +msgstr "Red:" + +# +msgid "New" +msgstr "Nuevo" + +msgid "New PIN" +msgstr "Nuevo PIN" + +# +msgid "New version:" +msgstr "Nueva versión:" + +msgid "News Current Affairs" +msgstr "" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "" + +# +msgid "No" +msgstr "No" + +# +msgid "No (supported) DVDROM found!" +msgstr "¡DVDROM no soportado!" + +# +msgid "No Connection" +msgstr "Sin conexión" + +# +msgid "No HDD found or HDD not initialized!" +msgstr "¡HDD no encontrado o no inicializado!" + +# +msgid "No backup needed" +msgstr "No es necesario el backup" + +msgid "No cable tuner found!" +msgstr "" + +# +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"¡No hay datos en el transponder!\n" +"(Tiempo cumplido leyendo PAT)" + +msgid "No delay" +msgstr "" + +# +msgid "No description available." +msgstr "No hay descripción." + +# +msgid "No details for this image file" +msgstr "No hay detalles para este fichero de imagen" + +# +msgid "No displayable files on this medium found!" +msgstr "¡No hay ficheros visualizables en su medio!" + +# +msgid "No event info found, recording indefinitely." +msgstr "No hay info del evento, grabando indefinidamente." + +# +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "¡No es posible todavía avance rápido.. pero puede usar los botones numéricos para ir adelante/atrás!" + +msgid "No free index available" +msgstr "" + +# +msgid "No free tuner!" +msgstr "¡No hay sintonizador libre!" + +# +msgid "No network connection available." +msgstr "No hay conexión de red disponible." + +# +msgid "No networks found" +msgstr "No he encontrado redes" + +msgid "No new plugins found" +msgstr "" + +# +msgid "No positioner capable frontend found." +msgstr "No he encontrado motor capaz" + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "" + +# +#, fuzzy +msgid "No services/providers selected" +msgstr "ningún Canal/Proveedor seleccionado" + +# +#, fuzzy +msgid "No standby" +msgstr "no reposo" + +msgid "No suitable sat tuner found!" +msgstr "" + +# +msgid "No tags are set on these movies." +msgstr "No hay etiquetas en estas películas." + +# +#, fuzzy +msgid "No timeout" +msgstr "no tiempo cumplido" + +# +msgid "No to all" +msgstr "No a todo" + +msgid "No transparency" +msgstr "" + +# +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "¡No hay sintonizador configurado para usar con un motor diseqc!" + +# +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"¡No hay sintonizador activo!\n" +"Por favor, configure el sintonizador antes de comenzar una búsqueda de canales." + +# +#, fuzzy +msgid "No updates available" +msgstr "actualizaciones disponibles." + +msgid "No updates available. Please try again later." +msgstr "" + +# +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"¡No hay PIN válido de canales!\n" +"¿Le gustaría cambiar el PIN ahora?\n" +"¡Si dice 'No' aquí, la protección de canales seguirá desabilitada!" + +# +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"No hay PIN válido de configuración\n" +"¿Le gustaría cambiar el PIN de configuración ahora?\n" +"¡Si dice 'No' aquí, la protección de configuración seguirá desabilitada!" + +msgid "No wireless networks found! Searching..." +msgstr "" + +# +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"No hay ningún adaptador de red local que funcione.\n" +"Verifique que ha conectado un cable de red y su red está configurada correctamente." + +# +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"No hay ningún adaptador de red inalámbrica.\n" +"Verifique que ha conectado un dispositivo WLAN compatible y su red esté configurada correctamente." + +# +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"No he encontrado ningún interface de red inalámbrica que funcione.\n" +"Verifique que ha conectado un dispositivo WLAN compatible o active su interface de red local." + +# +msgid "No, but restart from begin" +msgstr "No, debe reiniciar desde el principio" + +# +msgid "No, do nothing." +msgstr "No hacer nada" + +msgid "No, just start my receiver" +msgstr "" + +msgid "No, never" +msgstr "No, nunca" + +# +msgid "None" +msgstr "Ninguno" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "No lineal" + +msgid "Normal mode" +msgstr "" + +# +msgid "North" +msgstr "Norte" + +# +msgid "Norwegian" +msgstr "Noruego" + +msgid "Not associated" +msgstr "" + +msgid "Not configured" +msgstr "" + +# +#, fuzzy, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "No hay suficiente espacio libre. Por famove libere espacio y reinténtelo. (%d MB requeridos, %d MB disponibles)" + +msgid "Nothing connected" +msgstr "" + +# +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"¡Nada a buscar!\n" +"Por favor ponga la configuración del sintonizador antes de buscar un canal." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "" + +# +#, fuzzy +msgid "Now playing" +msgstr "Reproduciendo ahora" + +# +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Ahora, use la configuración del contraste hacia arriba hasta que brille el fondo lo máximo posible, pero que siga viendo la diferencia entre los 2 niveles de sombra. Si esto está hecho, pulse OK." + +# +msgid "OK" +msgstr "OK" + +# +msgid "OK, guide me through the upgrade process" +msgstr "OK, guíeme a través del proceso de actualización" + +msgid "ONID" +msgstr "" + +msgid "OSD name request" +msgstr "" + +# +#, fuzzy +msgid "OSD settings" +msgstr "Configurar OSD" + +msgid "OSD transparency" +msgstr "" + +# +msgid "Off" +msgstr "Off" + +msgid "Offline decode delay (ms)" +msgstr "" + +msgid "Ok" +msgstr "" + +# +msgid "On" +msgstr "On" + +msgid "On end of movie" +msgstr "" + +msgid "On end of movie (as menu)" +msgstr "" + +# +msgid "One" +msgstr "Uno" + +# +msgid "Only extensions." +msgstr "Sólo extensiones." + +# +#, fuzzy +msgid "Only free scan" +msgstr "Sólo escanear libres" + +# +#, fuzzy +msgid "Open service list" +msgstr "abrir lista de canales" + +# +#, fuzzy +msgid "Open the movie list" +msgstr "Volver a la lista de películas" + +msgid "Orbital position" +msgstr "" + +msgid "Original" +msgstr "" + +msgid "Other" +msgstr "" + +msgid "Output" +msgstr "" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "¿Sobreescribir los ficheros de configuración durante la actualización del software?" + +#, fuzzy +msgid "Overwrite configuration files?" +msgstr "¿Sobreescribir los ficheros de configuración?" + +# +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "" + +# +msgid "PIDs" +msgstr "PIDs" + +# +#, fuzzy +msgid "PIN code needed" +msgstr "Necesario código pin" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "" + +# +msgid "Package list update" +msgstr "Actualización de lista de paquetes" + +# +msgid "Packet management" +msgstr "Manejo de paquete" + +# +msgid "Packet manager" +msgstr "Manejador de paquetes" + +# +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +#, fuzzy +msgid "Pan&scan" +msgstr "Pan&Scan" + +# +#, fuzzy +msgid "Parent directory" +msgstr "Directorio padre" + +# +msgid "Parental control" +msgstr "Control de adultos" + +# +#, fuzzy +msgid "Parental control services editor" +msgstr "Editor de canales para control de adultos" + +# +msgid "Parental control setup" +msgstr "Configuración del control de adultos" + +# +msgid "Parental control type" +msgstr "Tipo de control de adultos" + +# +msgid "Password" +msgstr "Contraseña" + +# +#, fuzzy +msgid "Pause" +msgstr "pausa" + +# +msgid "Pause movie at end" +msgstr "Parar película al final" + +# +#, fuzzy +msgid "Pause playback" +msgstr "Continuar reproducción" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "" + +# +#, fuzzy +msgid "Percentage right" +msgstr "Dcha circular" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "" + +msgid "Permanently remove all deleted items" +msgstr "" + +msgid "Persian" +msgstr "Persa" + +# +msgid "Phone number" +msgstr "Número de teléfono" + +# +#, fuzzy +msgid "PiP setup" +msgstr "PiPConfig" + +msgid "Picon" +msgstr "" + +msgid "Picon and service name" +msgstr "" + +# +#, fuzzy +msgid "Picture player" +msgstr "Reproductor de Fotos" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Pillarbox" + +# +msgid "Pilot" +msgstr "Piloto" + +# +msgid "Play" +msgstr "Reproducir" + +# +msgid "Play DVD" +msgstr "Reproducir DVD" + +msgid "Play audio in background" +msgstr "" + +# +#, fuzzy +msgid "Play audio-CD..." +msgstr "Reproducir Audio-CD..." + +msgid "Play back media files" +msgstr "" + +# +#, fuzzy +msgid "Play entry" +msgstr "reproducir elemento" + +# +#, fuzzy +msgid "Play from next mark or playlist entry" +msgstr "reproduce desde la siguiente marca o siguiente película" + +# +#, fuzzy +msgid "Play from previous mark or playlist entry" +msgstr "reproduce desde la marca anterior o película" + +# +#, fuzzy +msgid "Play music..." +msgstr "Reproducir Música" + +msgid "Play next" +msgstr "" + +msgid "Play next (return to movie list)" +msgstr "" + +msgid "Play next (return to previous service)" +msgstr "" + +msgid "Play previous" +msgstr "" + +# +msgid "Play recorded movies..." +msgstr "Reproducir películas grabadas..." + +msgid "Please add titles to the compilation." +msgstr "Por favor, añada títulos a la compilación." + +# +msgid "Please change recording endtime" +msgstr "Por favor, cambie la finalización de la grabación" + +# +msgid "Please check your network settings!" +msgstr "Por favor, ¡chequee su configuración de red!" + +# +msgid "Please choose an extension..." +msgstr "Por favor, elija una extensión..." + +# +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Configure o verifique su DNS rellenando los valores requeridos.\n" +"Cuanto esté preparado pulse OK para continuar." + +# +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Por favor configure su conexión a internet rellenando los valores requeridos.\n" +"Cuando esté preparado pulse OK para continuar." + +msgid "Please connect your receiver to the internet" +msgstr "Por favor, conecte el receptor a internet" + +# +msgid "Please do not change any values unless you know what you are doing!" +msgstr "¡Por favor no cambie valores cuando no sepa lo que hace!" + +# +msgid "Please enter a name for the new bouquet" +msgstr "Introduzca un nombre para la nueva lista" + +# +msgid "Please enter a name for the new marker" +msgstr "Pon un nombre para el nuevo marcador" + +# +msgid "Please enter a new filename" +msgstr "Por favor, introduzca un nombre de fichero nuevo" + +# +msgid "Please enter filename (empty = use current date)" +msgstr "Por favor, introduzca un nombre de fichero (vacío = usar fecha actual)" + +# +msgid "Please enter name of the new directory" +msgstr "Entre un nombre para el directorio nuevo" + +msgid "Please enter new name:" +msgstr "" + +# +msgid "Please enter the correct pin code" +msgstr "Por favor, ponga el pin correcto" + +msgid "Please enter the old PIN code" +msgstr "Por favor, introduca el PIN anterior" + +# +msgid "Please follow the instructions on the TV" +msgstr "Siga las instrucciones en la TV" + +# +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "El medio seleccionado anterior no puede ser accedido y el directorio por defecto va a ser usado en su lugar." + +# +msgid "Please press OK to continue." +msgstr "Pulse OK para continuar." + +msgid "Please select a default EPG type..." +msgstr "" + +# +msgid "Please select a playlist to delete..." +msgstr "Por favor, seleccione una lista de reproducción a borrar..." + +# +msgid "Please select a playlist..." +msgstr "Por favor, seleccione una lista de reproducción..." + +# +#, fuzzy +msgid "Please select a sub service..." +msgstr "Por favor, seleccione un subcanal..." + +# +msgid "Please select a subservice to record..." +msgstr "Por favor, seleccione un subcanal a grabar..." + +# +msgid "Please select a subservice..." +msgstr "Por favor, seleccione un subcanal..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "Por favor, ¡seleccione un fichero NFI y pulse la tecla verde para flashear!" + +# +#, fuzzy +msgid "Please select medium to be scanned" +msgstr "Por favor, seleccione el medio a ser escaneado" + +# +msgid "Please select medium to use as backup location" +msgstr "Seleccione medio para usar como localización del backup" + +# +msgid "Please select tag to filter..." +msgstr "Seleccione una etiqueta para filtrar..." + +# +msgid "Please select the movie path..." +msgstr "Por favor, seleccione un directorio de películas..." + +# +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Seleccione el interfaz de red que quiere usar para su conexión a internet.\n" +"\n" +"Pulse OK para continuar." + +# +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Seleccione la red inalámbrica a la que quiere conectar.\n" +"\n" +"Pulse OK para continuar." + +# +##ADDONS-sfteam + +msgid "Thank you for using the wizard.Your receiver is now ready for use.\n" +"\n" +"Please press OK to continue." +msgstr "Gracias por utilizar el receptor Gigablue.Ya está listo para su uso.\n" +"\n" +"Pulse OK para utilizar su receptor.Gracias por confiar en el grupo SFTEAM" +#, sfteam +msgid "Install epg manager" +msgstr "Escoje tipo de EPG" + +#, sfteam +msgid "Epg manager type" +msgstr "Instalar epg Manager" +# +msgid "Do you want to install a channel list?" +msgstr "¿Quiere instalar una lista de canales?" + +msgid "Do you want to install a picons?" +msgstr "¿Quiere instalar picons?" +#, truncalinos + +msgid "Would you like to install a picons?" +msgstr "¿Quiere instalar picons?" + + +msgid "Would you like to install epg manager?" +msgstr "¿Quiere instalar epg Manager?" + +msgid "Would you like to install tdt usb drivers?" +msgstr "¿Quiere instalar driver para tu tdt?" + +msgid "Would you like to install a softcam?" +msgstr "¿Quiere instalar softcam?" + +msgid "Would you like to install a cache server?" +msgstr "¿Quiere instalar multics?" + + +#, fuzzy +msgid "Please set up tuner A" +msgstr "Por favor, configure sintonizador A" + + + +# +msgid "Please set up tuner B" +msgstr "Por favor, configure sintonizador B" + +# +msgid "Please set up tuner C" +msgstr "Por favor, configure el sintonizador C" + +# +msgid "Please set up tuner D" +msgstr "Por favor, configure el sintonizador D" + +# +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Use las teclas de dirección para mover la ventana PiP.\n" +"Pulse Bouquet +/- para cambiar el tamaño de la ventana.\n" +"Pulse OK para volver al modo TV or EXIT para cancelar el movimiento." + +# +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "Use las teclas ARRIBA y ABAJO para seleccionar su idioma. Después, pulse el botón OK." + +msgid "Please wait" +msgstr "" + +# +#, fuzzy +msgid "Please wait (downloading channel list)" +msgstr "Espere... Cargando lista..." + +# +#, fuzzy +msgid "Please wait (downloading softcam)" +msgstr "Espere... Cargando lista..." + +# +#, fuzzy +msgid "Please wait (updating packages)" +msgstr "por favor espere, cargando foto..." + +# +msgid "Please wait for activation of your network configuration..." +msgstr "Espere la activación de su configuración de red..." + +# +msgid "Please wait while scanning is in progress..." +msgstr "Espere mientra el escaneo está activo..." + +# +msgid "Please wait while we configure your network..." +msgstr "Espere mientras configuramos su red..." + +# +msgid "Please wait while we prepare your network interfaces..." +msgstr "Espere mientras preparamos sus interfaces de red..." + +# +msgid "Please wait while we test your network..." +msgstr "Espere mientras testeamos su red..." + +# +msgid "Please wait while your network is restarting..." +msgstr "Espere mientras su red está reiniciando..." + +# +msgid "Please wait..." +msgstr "Por favor, espere..." + +# +msgid "Please wait... Loading list..." +msgstr "Espere... Cargando lista..." + +# +msgid "Plugin browser" +msgstr "Navegador de plugins" + +# +msgid "Plugin manager activity information" +msgstr "Información de actividad del manejador de Plugin" + +# +msgid "Plugin manager help" +msgstr "Ayuda del manejador de Plugin" + +# +msgid "Plugins" +msgstr "Plugins" + +msgid "Polarisation" +msgstr "" + +msgid "Polarisation:" +msgstr "" + +# +msgid "Polarization" +msgstr "Polarización" + +# +msgid "Polish" +msgstr "Polaco" + +# +msgid "Port A" +msgstr "Puerto A" + +# +msgid "Port B" +msgstr "Puerto B" + +# +msgid "Port C" +msgstr "Puerto C" + +# +msgid "Port D" +msgstr "Puerto D" + +# +msgid "Portuguese" +msgstr "Portugués" + +msgid "Position of completed timers in timerlist" +msgstr "" + +msgid "Position stored at index" +msgstr "" + +# +msgid "Positioner" +msgstr "Motor" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "" + +# +msgid "Positioner setup" +msgstr "Configuración del motor" + +# +msgid "Power threshold in mA" +msgstr "Potencia in mA" + +# +msgid "Predefined transponder" +msgstr "Transponder predefinido" + +msgid "Prefer AC3 track" +msgstr "" + +msgid "Prefer AC3+ track" +msgstr "" + +msgid "Prefer audio track stored by service" +msgstr "" + +msgid "Prefer graphical DVB subtitles" +msgstr "" + +msgid "Prefer subtitles for hearing impaired" +msgstr "" + +msgid "Prefer subtitles stored by service" +msgstr "" + +msgid "Preferred tuner" +msgstr "" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "Prepare otro pendrive USB para flasear la imagen." + +# +msgid "Preparing... Please wait" +msgstr "Preparando... Por favor espere" + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "Pulse INFO en su control remoto para información adicional." + +msgid "Press MENU on your remote control for additional options." +msgstr "Pulse MENU en su mando a distancia para opciones adicionales." + +# +msgid "Press OK on your remote control to continue." +msgstr "Pulse OK en el mando a distancia para continuar." + +# +msgid "Press OK to activate the selected skin." +msgstr "Pulse OK para activar la piel seleccionada." + +# +msgid "Press OK to activate the settings." +msgstr "Pulse OK para activar la configuración." + +# +msgid "Press OK to edit the settings." +msgstr "Pulse OK para editar la configuración." + +# +#, python-format +msgid "Press OK to get further details for %s" +msgstr "Pulse OK para obtener más detalles para %s" + +# +msgid "Press OK to scan" +msgstr "Pulse OK para buscar" + +# +#, fuzzy +msgid "Press OK to select a provider." +msgstr "Pulse OK para seleccionar un Proveedor." + +msgid "Press OK to select satellites" +msgstr "" + +# +msgid "Press OK to select/deselect a CAId." +msgstr "Pulse OK para seleccionar/deseleccionar un CAId." + +# +msgid "Press OK to start the scan" +msgstr "Pulse OK para comenzar la búsqueda" + +msgid "Press OK to toggle the selection" +msgstr "" + +# +msgid "Press OK to toggle the selection." +msgstr "Pulse OK para activar la selección." + +# +msgid "Press yellow to set this interface as default interface." +msgstr "Pulse amarillo para activar este interface por defecto." + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "" + +# +msgid "Preview" +msgstr "Previsualizar" + +# +msgid "Preview menu" +msgstr "Menú previsualizar" + +msgid "Preview selected channel" +msgstr "" + +# +msgid "Primary DNS" +msgstr "DNS Principal" + +# +msgid "Priority" +msgstr "Prioridad" + +# +msgid "Process" +msgstr "Procesar" + +msgid "Progress" +msgstr "" + +msgid "Progress bar left" +msgstr "" + +msgid "Progress bar right" +msgstr "" + +# +msgid "Properties of current title" +msgstr "Propiedades del título actual" + +# +msgid "Protect services" +msgstr "Proteger canales" + +# +msgid "Protect setup" +msgstr "Proteger configuración" + +# +msgid "Provider" +msgstr "Proveedor" + +# +msgid "Provider to scan" +msgstr "Proveedor a buscar" + +# +msgid "Providers" +msgstr "Proveedores" + +msgid "Put TV in standby" +msgstr "" + +msgid "Put receiver in standby" +msgstr "" + +# +msgid "Python frontend for /tmp/mmi.socket" +msgstr "Frontend Python para /tmp/mmi.socket" + +# +msgid "Quick" +msgstr "Rápido" + +# +#, fuzzy +msgid "Quick zap" +msgstr "Zapeo rápido" + +# +msgid "RF output" +msgstr "Salida de antena" + +# +msgid "RGB" +msgstr "RGB" + +# +msgid "Radio" +msgstr "Radio" + +# +#, fuzzy +msgid "Ram disk" +msgstr "Disco Ram" + +# +msgid "Random" +msgstr "Aleatorio" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "" + +msgid "Rating undefined" +msgstr "" + +# +msgid "Really close without saving settings?" +msgstr "¿Seguro que quiere cerrar sin grabar la configuración?" + +# +msgid "Really delete done timers?" +msgstr "¿Quiere borrar las programaciones terminadas?" + +# +msgid "Really exit the subservices quickzap?" +msgstr "¿Quiere salir del zapeo rápido de subcananles?" + +# +msgid "Really reboot now?" +msgstr "¿Quiere reiniciar ahora?" + +# +msgid "Really restart now?" +msgstr "¿Quiere reiniciar ahora?" + +# +msgid "Really shutdown now?" +msgstr "¿Quiere apagar ahora?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "" + +# +msgid "Reboot" +msgstr "Reiniciar" + +msgid "Rec" +msgstr "" + +# +#, fuzzy +msgid "Reception settings" +msgstr "Configuración de Recepción" + +# +msgid "Record" +msgstr "Grabar" + +# +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "Grabación limitada en el tiempo por un conflicto de grabación %s" + +# +msgid "Recorded files..." +msgstr "Ficheros grabados..." + +# +msgid "Recording" +msgstr "Grabando" + +msgid "Recording in progress" +msgstr "" + +msgid "Recording paths" +msgstr "Rutas de grabación" + +msgid "Recording type" +msgstr "" + +# +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "¡Grabación(es) está(n) en proceso o va(n) a comenzar en pocos segundos!" + +# +msgid "Recordings" +msgstr "Grabaciones" + +# +msgid "Recordings always have priority" +msgstr "Las grabaciones siempre tienen prioridad" + +msgid "Red button..." +msgstr "" + +msgid "Reenter new PIN" +msgstr "Volver a introducir el nuevo PIN" + +# +#, fuzzy +msgid "Refresh rate" +msgstr "Velocidad de refresco" + +# +msgid "Refresh rate selection." +msgstr "Selección de velocidad de refresco." + +msgid "Regard deep standby as standby" +msgstr "" + +msgid "Relative" +msgstr "" + +# +msgid "Reload" +msgstr "Recargar" + +#, fuzzy +msgid "Reload black-/white lists" +msgstr "Recargar listas blancas/negras" + +msgid "Reloading bouquets and services..." +msgstr "" + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "Recordar el PIN del canal" + +msgid "Remember these settings for each folder" +msgstr "" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "" + +# +#, fuzzy +msgid "Remote control type" +msgstr "Tipo de control de adultos" + +# +#, fuzzy +msgid "Removal has completed." +msgstr "Falló el borrado." + +# +msgid "Remove" +msgstr "Borrar" + +# +msgid "Remove a mark" +msgstr "Borrar una marca" + +# +#, fuzzy +msgid "Remove a nameserver entry" +msgstr "borrar entrada de servidor de nombres" + +# +#, fuzzy +msgid "Remove bookmark" +msgstr "borrar marcador" + +msgid "Remove completed timers after (days)" +msgstr "" + +# +msgid "Remove currently selected title" +msgstr "Borrar el título seleccionado" + +msgid "Remove items from trash can after (days)" +msgstr "" + +# +msgid "Remove plugins" +msgstr "Borrar complmentos" + +# +msgid "Remove title" +msgstr "Borrar el título" + +# +msgid "Removing" +msgstr "Borrando" + +# +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Falló el borrado del directorio %s. (Puede no estar vacío)" + +# +#, fuzzy +msgid "Removing partition table" +msgstr "Borrar el título" + +# +msgid "Rename" +msgstr "Renombrar" + +msgid "Repeat" +msgstr "" + +# +#, fuzzy +msgid "Repeat type" +msgstr "Tipo de repetición" + +# +msgid "Repeating event currently recording... What do you want to do?" +msgstr "Repitiendo la grabación del evento actual... ¿Qué quiere hacer?" + +# +msgid "Repeats" +msgstr "Repeticiones" + +msgid "Require authentication for http streams" +msgstr "" + +msgid "Required medium type:" +msgstr "Tipo de medio requerido:" + +msgid "Rereading partition table" +msgstr "" + +msgid "Reserved" +msgstr "" + +# +msgid "Reset" +msgstr "Resetear" + +# +msgid "Reset and renumerate title names" +msgstr "Reinicia y renumera los nombre de títulos" + +msgid "Reset playback position" +msgstr "" + +# +msgid "Reset video enhancement settings to system defaults?" +msgstr "¿Resetear la configuración del sistema de video mejorado?" + +# +msgid "Reset video enhancement settings to your last configuration?" +msgstr "¿Resetar la configuración de video mejorado a la última configuración?" + +# +msgid "Resolution" +msgstr "Resolución" + +# +msgid "Restart" +msgstr "Reiniciar" + +# +msgid "Restart GUI now?" +msgstr "¿Reiniciar el GUI ahora?" + +msgid "Restart enigma" +msgstr "" + +# +msgid "Restart network" +msgstr "Reiniciar Red" + +# +msgid "Restart test" +msgstr "Reiniciar test" + +# +msgid "Restart your network connection and interfaces.\n" +msgstr "Reiniciar su conexión y dispositivos de red.\n" + +# +msgid "Restore" +msgstr "Restaurar" + +# +msgid "Restore backups" +msgstr "Restaurar backups" + +# +msgid "Restore is running..." +msgstr "Restauración está ejecutándose..." + +# +msgid "Restore system settings" +msgstr "Configuración del sistema de restauración" + +# +#, fuzzy +msgid "Restoring..." +msgstr "grabando..." + +# +msgid "Resume from last position" +msgstr "Continuar desde la última posición" + +#, python-format +msgid "Resume position at %s" +msgstr "Continuar la posición a %s" + +# +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Continuar reproducción" + +# +msgid "Return to movie list" +msgstr "Volver a la lista de películas" + +# +msgid "Return to previous service" +msgstr "Volver al canal anterior" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +# +msgid "Rewind speeds" +msgstr "Velocidades hacia atrás" + +msgid "Rewrap teletext subtitles" +msgstr "" + +# +msgid "Right" +msgstr "Dcha" + +msgid "Right from servicename" +msgstr "" + +msgid "Roll-off" +msgstr "" + +msgid "Romanian" +msgstr "" + +msgid "Root directory" +msgstr "" + +msgid "Rotor step position:" +msgstr "" + +# +msgid "Rotor turning speed" +msgstr "Velocidad del motor" + +msgid "Round start time on" +msgstr "" + +# +msgid "Russian" +msgstr "Ruso" + +# +msgid "S-Video" +msgstr "S-Video" + +msgid "SID" +msgstr "" + +msgid "SINGLE LAYER DVD" +msgstr "DVD CAPA SIMPLE" + +# +msgid "SNR" +msgstr "SNR" + +# +msgid "SNR:" +msgstr "SNR:" + +# +msgid "SSID:" +msgstr "SSID:" + +msgid "Same resolution as skin" +msgstr "" + +# +msgid "Sat" +msgstr "Sáb" + +# +msgid "Satellite" +msgstr "Satélite" + +# +#, fuzzy +msgid "Satellite dish setup" +msgstr "Configuración equipo satélite" + +msgid "Satellite equipment" +msgstr "Equipo satélite" + +# +#, fuzzy +msgid "Satellite equipment setup" +msgstr "Configuración equipo satélite" + +msgid "Satellite longitude:" +msgstr "" + +# +msgid "Satellites" +msgstr "Satélites" + +# +msgid "Satfinder" +msgstr "Buscador de satélites" + +# +msgid "Sats" +msgstr "Sats" + +# +msgid "Saturation" +msgstr "Saturación" + +# +msgid "Saturday" +msgstr "Sábado" + +# +msgid "Save" +msgstr "Guardar" + +# +#, fuzzy +msgid "Save playlist" +msgstr "guardar lista de reproducción" + +msgid "Save timeshift file" +msgstr "" + +msgid "Save timeshift file in movie directory" +msgstr "" + +# +msgid "Scaler sharpness" +msgstr "Nitidez del escalado" + +# +#, fuzzy +msgid "Scaling mode" +msgstr "Modo de búsqueda" + +msgid "Scan" +msgstr "" + +# +msgid "Scan " +msgstr "Escanear" + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, fuzzy, python-format +msgid "Scan %s" +msgstr "Escanear" + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, fuzzy, python-format +msgid "Scan %s band" +msgstr "Escanear banda EU MID" + +# +msgid "Scan additional SR" +msgstr "Escanear otro SR" + +# +#, fuzzy +msgid "Scan files..." +msgstr "Escanear Ficheros..." + +# +#, fuzzy +msgid "Scan wireless networks" +msgstr "Escanear Redes Inalámbricas" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "Escanear su red para puntos de acceso inalámbricos y conectar a ellos usando el dispositivo seleccionado.\n" + +#, python-format +msgid "Scanning %s..." +msgstr "" + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "" +msgstr[1] "" + +msgid "Scanning failed!" +msgstr "" + +msgid "Scanning..." +msgstr "" + +# +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "Escanee el lamedbs por defecto de satélites ordenados con un motor conectado" + +# +msgid "Search east" +msgstr "Buscar este" + +# +msgid "Search west" +msgstr "Buscar oeste" + +msgid "Searching" +msgstr "" + +msgid "Searching east ..." +msgstr "" + +# +msgid "Searching for available updates. Please wait..." +msgstr "Buscando actualizaciones disponibles. Por favor, espere..." + +# +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "Buscando para nuevos paquetes instalados o borrados. Espere..." + +msgid "Searching west ..." +msgstr "" + +msgid "Second cable of motorized LNB" +msgstr "" + +# +msgid "Secondary DNS" +msgstr "DNS Secundario" + +# +msgid "Seek" +msgstr "Posicionar" + +# +#, fuzzy +msgid "Seek backward" +msgstr "saltar adelante" + +# +#, fuzzy +msgid "Seek backward (enter time)" +msgstr "pasar atrás (introducir hora)" + +# +#, fuzzy +msgid "Seek forward" +msgstr "saltar adelante" + +# +#, fuzzy +msgid "Seek forward (enter time)" +msgstr "pasar adelante (introducir tiempo)" + +# +msgid "Select" +msgstr "Seleccionar" + +# +#, fuzzy +msgid "Select CAId" +msgstr "seleccionar CAId" + +# +msgid "Select HDD" +msgstr "Seleccionar disco duro" + +# +#, fuzzy +msgid "Select a bouquet" +msgstr "Seleccionar una película" + +# +msgid "Select a movie" +msgstr "Seleccionar una película" + +# +#, fuzzy +msgid "Select a network adapter" +msgstr "Seleccionar Adaptador de Red" + +# +#, fuzzy +msgid "Select a skin" +msgstr "Seleccionar una película" + +# +#, fuzzy +msgid "Select a tuner" +msgstr "Seleccionar una película" + +# +#, fuzzy +msgid "Select a wireless network" +msgstr "Seleccione red inalámbrica" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +#, fuzzy +msgid "Select an image to be downloaded" +msgstr "Elegir imagen para descargar" + +# +msgid "Select audio track" +msgstr "Seleccionar pista de audio" + +# +#, fuzzy +msgid "Select backup files" +msgstr "Elije ficheros de backup" + +# +#, fuzzy +msgid "Select backup location" +msgstr "Elije localización del backup" + +# +msgid "Select channel to record from" +msgstr "Seleccione canal a grabar" + +msgid "Select copy destination for:" +msgstr "" + +msgid "Select default EPG type..." +msgstr "" + +msgid "Select desired image from feed list" +msgstr "Seleccione la imagen deseada de su lista de fuentes" + +msgid "Select destination for:" +msgstr "" + +msgid "Select files for backup." +msgstr "Seleccionar ficheros a backup." + +# +msgid "Select files/folders to backup" +msgstr "Seleccionar ficheros/carpetas a backup" + +msgid "Select input device" +msgstr "Seleccione dispositivo de entrada" + +msgid "Select input device." +msgstr "Seleccione dispositivo de entrada." + +# +msgid "Select interface" +msgstr "Seleccione interfaz" + +# +#, fuzzy +msgid "Select location" +msgstr "Seleccionar Localización" + +# +#, fuzzy +msgid "Select movie" +msgstr "Seleccionar una película" + +# +msgid "Select provider to add..." +msgstr "Seleccione proveedor a añadir..." + +# +msgid "Select refresh rate" +msgstr "Seleccionar la velocidad de refresco" + +msgid "Select satellites" +msgstr "" + +# +msgid "Select service to add..." +msgstr "Seleccione canal a añadir..." + +msgid "Select sort method:" +msgstr "" + +# +#, fuzzy +msgid "Select target folder" +msgstr "Elegir carpeta destino" + +# +#, fuzzy +msgid "Select the movie path" +msgstr "seleccione el directorio de las películas" + +# +#, fuzzy +msgid "Select upgrade source" +msgstr "Seleccione fuente de actualización a editar." + +# +msgid "Select upgrade source to edit." +msgstr "Seleccione fuente de actualización a editar." + +# +msgid "Select video input with up/down buttons" +msgstr "Seleccione entrada de vídeo con los botones arriba/abajo" + +# +msgid "Select video mode" +msgstr "Seleccionar el modo de video" + +# +msgid "Select wireless network" +msgstr "Seleccione red inalámbrica" + +msgid "Select your provider, and press OK to start the scan" +msgstr "" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +# +msgid "Send DiSEqC only on satellite change" +msgstr "Enviar DISEqC sólo en cambio de satélite" + +# +msgid "Separate titles with a main menu" +msgstr "Separar títulos con un menú principal" + +# +msgid "Sequence repeat" +msgstr "Repetir secuencia" + +# +msgid "Serbian" +msgstr "Servio" + +# +msgid "Service" +msgstr "Canal" + +# +msgid "Service has been added to the favourites." +msgstr "El canal ha sido añadido a los favoritos." + +# +msgid "Service has been added to the selected bouquet." +msgstr "El canal ha sido añadido a la lista seleccionada." + +# +#, fuzzy +msgid "Service info" +msgstr "Info del canal" + +# +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"¡Canal no válido!\n" +"(Tiempo cumplido leyendo PMT)" + +# +#, fuzzy +msgid "Service name" +msgstr "Búsqueda de canal" + +# +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"¡Canal no encontrado!\n" +"(SID no encontrado en el PAT)" + +msgid "Service reference" +msgstr "" + +# +msgid "Service scan" +msgstr "Buscar canales" + +# +#, fuzzy +msgid "Service searching" +msgstr "Buscando Canales" + +# +#, fuzzy +msgid "Service title mode" +msgstr "Seleccionar el modo de video" + +# +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"¡Canal no disponible!\n" +"¡Revisa la configuración del sintonizador!" + +# +msgid "Services" +msgstr "Canales" + +msgid "Set default" +msgstr "" + +#, fuzzy +msgid "Set end time" +msgstr "Ponga la hora final" + +msgid "Set fixed" +msgstr "" + +msgid "Set fps for external subtitles" +msgstr "" + +# +msgid "Set interface as default Interface" +msgstr "Poner Interface como por defecto" + +msgid "Set limits" +msgstr "" + +#, fuzzy +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "Muestra el progreso del evento en la selección del canal" + +msgid "Set time window to 1 hour" +msgstr "" + +msgid "Set time window to 2 hours" +msgstr "" + +msgid "Set time window to 3 hours" +msgstr "" + +msgid "Set time window to 4 hours" +msgstr "" + +msgid "Set time window to 5 hours" +msgstr "" + +msgid "Set time window to 6 hours" +msgstr "" + +# +#, fuzzy +msgid "Set voltage and 22KHz" +msgstr "Poner Voltaje y 22kHz" + +# +msgid "Settings" +msgstr "Parámetros" + +# +msgid "Setup" +msgstr "Configuración" + +msgid "Setup menu" +msgstr "" + +# +#, fuzzy +msgid "Setup mode" +msgstr "Modo configuración" + +msgid "Setup your positioner" +msgstr "" + +#, fuzzy +msgid "Setup your satellite equipment" +msgstr "Equipo satélite" + +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "¿El asistente de USB programará el fichero de imagen %s en la memoria flash?" + +# +msgid "Sharpness" +msgstr "Nitidez" + +msgid "Short filenames" +msgstr "Nombres de ficheros cortos" + +msgid "Show EIT now/next in infobar" +msgstr "" + +# +#, fuzzy +msgid "Show EPG for current channel..." +msgstr "Mostrar infobar cuando cambie el evento" + +# +#, fuzzy +msgid "Show EPG..." +msgstr "mostrar EPG..." + +msgid "Show Games show" +msgstr "" + +msgid "Show SNR percentage instead of dB value" +msgstr "" + +msgid "Show VCR scart on main menu" +msgstr "" + +# +#, fuzzy +msgid "Show WLAN status" +msgstr "Mostrar estado de la WLAN" + +msgid "Show animation while busy" +msgstr "" + +# +#, fuzzy +msgid "Show background in radio mode" +msgstr "imagen de fondo" + +msgid "Show bouquet selection menu" +msgstr "" + +msgid "Show busy indicator when the system is busy." +msgstr "" + +msgid "Show channel numbers in channel selection" +msgstr "" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "" + +msgid "Show detailed event info" +msgstr "" + +# +#, fuzzy +msgid "Show event details" +msgstr "mostrar detalles del evento" + +msgid "Show event-progress in channel selection" +msgstr "Muestra el progreso del evento en la selección del canal" + +# +#, fuzzy +msgid "Show extended description" +msgstr "mostrar descripción extendida" + +# +#, fuzzy +msgid "Show extensions..." +msgstr "ver extensiones..." + +msgid "Show icon for new/unseen items" +msgstr "" + +msgid "Show in extensions menu" +msgstr "" + +# +#, fuzzy +msgid "Show info" +msgstr "Mostar Info" + +# +#, fuzzy +msgid "Show info line" +msgstr "mostrar Infoline" + +# +msgid "Show infobar on channel change" +msgstr "Mostrar la barra de información al cambiar de canal" + +# +msgid "Show infobar on event change" +msgstr "Mostrar infobar cuando cambie el evento" + +# +msgid "Show infobar on skip forward/backward" +msgstr "Mostrar la infobar al pasar adelante/atras" + +msgid "Show latest commits on sourceforge" +msgstr "" + +# +#, fuzzy +msgid "Show message when recording starts" +msgstr "Mostrar Mensaje cuando la Grabación comienza" + +# +#, fuzzy +msgid "Show movie lengths in movielist" +msgstr "Calcular longitud de Películas en la lista" + +msgid "Show multi channel EPG" +msgstr "" + +msgid "Show picons in channel list" +msgstr "" + +# +msgid "Show positioner movement" +msgstr "Mostrar movimiento del motor" + +msgid "Show screensaver" +msgstr "" + +msgid "Show second infobar" +msgstr "" + +msgid "Show service type icons" +msgstr "" + +# +msgid "Show services beginning with" +msgstr "Mostrar canales que empiecen por" + +# +#, fuzzy +msgid "Show shutdown menu" +msgstr "mostrar menú de apagado" + +msgid "Show single service EPG" +msgstr "" + +msgid "Show status icons in Movielist" +msgstr "" + +msgid "Show status icons in movie list" +msgstr "" + +msgid "Show status icons in movielist" +msgstr "" + +# +#, fuzzy +msgid "Show tag menu" +msgstr "mostrar el menú de etiquetas" + +# +msgid "Show the radio player..." +msgstr "Reproductor de radio..." + +# +msgid "Show the tv player..." +msgstr "Mostrar el reproductor de tv" + +msgid "Show warning when timeshift is stopped" +msgstr "" + +# +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Mostrar el estado de su conexión inalámbrica.\n" + +# +#, fuzzy +msgid "Shuffle playlist" +msgstr "lista de reproducción aleatoria" + +# +msgid "Shutdown" +msgstr "Apagado" + +msgid "Shutdown when in Standby" +msgstr "" + +msgid "Side by side" +msgstr "" + +msgid "Signal OK, proceeding" +msgstr "" + +msgid "Signal quality" +msgstr "" + +# +#, fuzzy +msgid "Signal strength:" +msgstr "Potencia Señal:" + +# +msgid "Signal: " +msgstr "Señal:" + +# +msgid "Similar" +msgstr "Parecido" + +# +msgid "Similar broadcasts:" +msgstr "Emisiones similares:" + +# +msgid "Simple" +msgstr "Sencillo" + +# +msgid "Simple titleset (compatibility for legacy players)" +msgstr "Título Simple (compatibilidad para más reproductores)" + +# +msgid "Single" +msgstr "Uno" + +# +msgid "Single EPG" +msgstr "EPG Sencillo" + +# +msgid "Single satellite" +msgstr "Satélite único" + +# +#, fuzzy +msgid "Single step (GOP)" +msgstr "En un solo paso (GOP)" + +# +msgid "Single transponder" +msgstr "Transponder único" + +msgid "Site latitude" +msgstr "" + +msgid "Site longitude" +msgstr "" + +# +msgid "Skin" +msgstr "Piel" + +# +msgid "Skins" +msgstr "Pieles" + +# +#, fuzzy +msgid "Skip empty services" +msgstr "Proteger canales" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "Saltar comprobación de la conexión a Internet (desactiva la instalación automática del paquete)" + +# +#, fuzzy +msgid "Sleep timer" +msgstr "Apagado automático" + +msgid "SleepTimer Configuration" +msgstr "" + +msgid "Sleeptimer" +msgstr "" + +# +#, fuzzy +msgid "Slide picture in loop" +msgstr "fotos en reproducción en bucle" + +# +#, fuzzy +msgid "Slide show interval (sec.)" +msgstr "Intervalo de diapositivas (seg.)" + +# +#, python-format +msgid "Slot %d" +msgstr "Slot %d" + +msgid "Slovak" +msgstr "" + +# +msgid "Slovenian" +msgstr "Esloveno" + +# +msgid "Slow" +msgstr "Lento" + +# +#, fuzzy +msgid "Slow motion speeds" +msgstr "Velocidades lentas" + +# +#, fuzzy +msgid "Small progress" +msgstr "En Progreso" + +msgid "Social/Political/Economics" +msgstr "" + +msgid "SoftCam / CI" +msgstr "" + +# +#, fuzzy +msgid "Softcam type" +msgstr "Software" + +# +msgid "Software" +msgstr "Software" + +# +msgid "Software management" +msgstr "Manejar software" + +msgid "Software manager setup" +msgstr "Configuración del manejador de software" + +# +msgid "Software restore" +msgstr "Restaurar software" + +# +msgid "Software update" +msgstr "Actualizar software" + +msgid "Softwaremanager information" +msgstr "Información Softwaremanager" + +# +msgid "Some plugins are not available:\n" +msgstr "Algunos complementos no están disponibles:\n" + +# +#, fuzzy, python-format +msgid "Sorry, %s has not been installed!" +msgstr "Lo siento, pero MediaScanner no está instalado!" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "" + +# +#, fuzzy +msgid "Sorry, no backups found!" +msgstr "Lo siento, no he encontrado backups!" + +# +#, fuzzy +msgid "Sorry, no details available!" +msgstr "Lo siento, no hay Detalles disponibles!" + +# +#, fuzzy +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"Lo siento, pero su destino de backup no es escribible.\n" +"Elija otro." + +msgid "Sort" +msgstr "" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Ordenar A-Z" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +#, fuzzy +msgid "Sort time" +msgstr "Ordenar por hora" + +# +msgid "Sound" +msgstr "Sonido" + +# +#, fuzzy +msgid "Sound carrier" +msgstr "Portadora de sonido" + +msgid "Source request" +msgstr "" + +# +msgid "South" +msgstr "Sur" + +# +msgid "Spanish" +msgstr "Español" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +# +msgid "Split preview mode" +msgstr "Dividir modo previsualización" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "" + +# +#, fuzzy +msgid "Standard" +msgstr "estándar" + +msgid "Standart list" +msgstr "" + +# +msgid "Standby" +msgstr "Reposo" + +# +#, fuzzy +msgid "Standby / restart" +msgstr "Reposo / Reiniciar" + +msgid "Standby after current event" +msgstr "" + +#, fuzzy, python-format +msgid "Standby fan %d PWM" +msgstr "Ventilador en reposo %d PWM" + +#, fuzzy, python-format +msgid "Standby fan %d voltage" +msgstr "Ventilador en reposo %d Voltaje" + +msgid "Standby in " +msgstr "" + +msgid "StandbyLED" +msgstr "" + +# +msgid "Start from the beginning" +msgstr "Comenzar desde el inicio" + +msgid "Start offline decode" +msgstr "" + +# +msgid "Start recording?" +msgstr "¿Iniciar grabación?" + +# +msgid "Start test" +msgstr "Comenzar test" + +# +#, fuzzy +msgid "Start time" +msgstr "HoraInicio" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +# +#, fuzzy +msgid "Start timeshift" +msgstr "comenzar pausa" + +msgid "Start with list screen" +msgstr "" + +# +msgid "Starting on" +msgstr "Comenzando" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +# +msgid "Step east" +msgstr "Paso este" + +# +msgid "Step west" +msgstr "Paso oeste" + +msgid "Stepped east" +msgstr "" + +msgid "Stepped west" +msgstr "" + +# +msgid "Stop" +msgstr "Parar" + +# +#, fuzzy +msgid "Stop PiP" +msgstr "parar PiP" + +# +msgid "Stop current event and disable coming events" +msgstr "Para el evento actual y desactivar los eventos siguientes" + +# +msgid "Stop current event but not coming events" +msgstr "Parar el evento actual pero no los eventos siguientes" + +# +#, fuzzy +msgid "Stop entry" +msgstr "parar elemento" + +# +msgid "Stop playing this movie?" +msgstr "¿Parar la reproducción de esta película?" + +msgid "Stop recording" +msgstr "" + +msgid "Stop recording and delete" +msgstr "" + +msgid "Stop service on return to movie list" +msgstr "" + +# +msgid "Stop test" +msgstr "Parar test" + +# +msgid "Stop testing plane after # failed transponders" +msgstr "Parar el testeo plano después de # transporders fallidos" + +# +msgid "Stop testing plane after # successful transponders" +msgstr "Parar el testeo plano después de # transponders correctos" + +msgid "Stop timer recording" +msgstr "" + +# +#, fuzzy +msgid "Stop timeshift" +msgstr "parar pausa" + +# +#, fuzzy +msgid "Stop timeshift?" +msgstr "¿Parar grabación de pausa?" + +msgid "Stopped" +msgstr "" + +msgid "Store at index" +msgstr "" + +# +msgid "Store position" +msgstr "Almacenar posición" + +# +msgid "Stored position" +msgstr "Posición almacenada" + +msgid "Stream" +msgstr "" + +msgid "Stream request" +msgstr "" + +msgid "Strongest position" +msgstr "" + +# +msgid "Subservice list..." +msgstr "Lista de subcanales..." + +# +msgid "Subservices" +msgstr "Subcanales" + +msgid "Subtitle Quickmenu" +msgstr "" + +# +#, fuzzy +msgid "Subtitle alignment" +msgstr "Selección de subtítulo" + +msgid "Subtitle border width" +msgstr "" + +msgid "Subtitle delay when timing is bad" +msgstr "" + +msgid "Subtitle delay when timing lacks" +msgstr "" + +# +#, fuzzy +msgid "Subtitle font size" +msgstr "Subtítulos" + +msgid "Subtitle language selection 1" +msgstr "" + +msgid "Subtitle language selection 2" +msgstr "" + +msgid "Subtitle language selection 3" +msgstr "" + +msgid "Subtitle language selection 4" +msgstr "" + +# +#, fuzzy +msgid "Subtitle position" +msgstr "Selección de subtítulo" + +# +msgid "Subtitle selection" +msgstr "Selección de subtítulo" + +msgid "Subtitle selection..." +msgstr "" + +msgid "Subtitle settings" +msgstr "" + +# +msgid "Subtitles" +msgstr "Subtítulos" + +# +msgid "Sun" +msgstr "Dom" + +# +msgid "Sunday" +msgstr "Domingo" + +# +#, fuzzy +msgid "Swap PiP and main picture" +msgstr "intercambiar PiP con la imagen principal" + +# +#, fuzzy +msgid "Swap services" +msgstr "Intercambiar Canales" + +# +msgid "Swedish" +msgstr "Sueco" + +msgid "Switch TV to correct input" +msgstr "" + +msgid "Switch between filelist/playlist" +msgstr "" + +msgid "Switch between normal mode and list mode" +msgstr "" + +msgid "Switch to HDMI in mode" +msgstr "" + +# +#, fuzzy +msgid "Switch to filelist" +msgstr "cambiar a lista de ficheros" + +msgid "Switch to next channel" +msgstr "" + +# +#, fuzzy +msgid "Switch to next channel in history" +msgstr "canal siguiente en historia" + +# +#, fuzzy +msgid "Switch to next sub service" +msgstr "Cambiar al subcanal siguiente" + +# +#, fuzzy +msgid "Switch to playlist" +msgstr "cambiar a lista" + +# +#, fuzzy +msgid "Switch to previous channel" +msgstr "Cambiar al subcanal anterior" + +# +#, fuzzy +msgid "Switch to previous channel in history" +msgstr "canal anterior en historia" + +# +#, fuzzy +msgid "Switch to previous sub service" +msgstr "Cambiar al subcanal anterior" + +msgid "Switchable tuner types:" +msgstr "Tipos de tuner seleccionables::" + +msgid "Symbol rate" +msgstr "" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "" + +# +msgid "System" +msgstr "Sistema" + +# +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "" +"josej@zapater.fdns.net\n" +"Traductor de enigma2 al español.\n" +"ESPACIO PARA SU PUBLICIDAD.\n" +"ESPACIO PARA SU PUBLICIDAD.\n" +"Si tiene un proyecto de traducción técnico del inglés\n" +"al español no dude en ponerse en contacto conmigo." + +# +msgid "TS file is too large for ISO9660 level 1!" +msgstr "El fichero TS es demasiado grande para el nivel 1 ISO9660." + +msgid "TSID" +msgstr "" + +msgid "TV physical address report" +msgstr "" + +msgid "TXT PID" +msgstr "" + +# +#, fuzzy +msgid "Table of contents for collection" +msgstr "Tabla de contenido para la colección" + +# +msgid "Tags" +msgstr "Etiquetas" + +msgid "Teletext subtitle color" +msgstr "" + +# +#, fuzzy +msgid "Temperature and fan control" +msgstr "Control de temperatura y ventilador" + +# +msgid "Terrestrial" +msgstr "Terrestre" + +# +msgid "Terrestrial provider" +msgstr "Proveedor terrestre" + +# +msgid "Test DiSEqC settings" +msgstr "Configuración de Test DisEqC" + +# +msgid "Test mode" +msgstr "Modo test" + +msgid "Test the network configuration of your receiver.\n" +msgstr "" + +# +#, fuzzy +msgid "Test type" +msgstr "Tipo de Testeo" + +# +#, fuzzy +msgid "Text color" +msgstr "color de texto" + +msgid "Thai" +msgstr "" + +# +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"Gracias por usar el asistente.\n" +"Pulse OK para continuar." + +# +#, fuzzy +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"Gracias por usar el asistente.\n" +"Pulse OK para continuar." + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "" + +msgid "The PIN code has been changed successfully." +msgstr "El código PIN ha sido cambiado correctamente." + +msgid "The PIN codes you entered are different." +msgstr "El código PIN que ha introducido es diferente." + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" +"El pen USB fue preparado para ser arrancable.\n" +"¡Ahora puede descargar un fichero de imagen NFI!" + +# +msgid "The backup failed. Please choose a different backup location." +msgstr "El backup ha fallado. Elija una localización diferente para el backup." + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" + +# +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"El directorio %s no es escribible.\n" +"Seleccione otro directorio que si lo sea." + +# +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"El siguiente dispositivo fué encontrado:\n" +"\n" +"%s\n" +"\n" +"¿Quiere escribir el USB flasher a esta memoria USB?" + +# +msgid "The following files were found..." +msgstr "Los siguientes ficheros fueron encontrados..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "La validación md5sum ha fallado, ¡el fichero parece corrupto!" + +#, fuzzy +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"¡La extensión Asistente de Red no está instalada!\n" +"Por favor, instálela." + +# +#, python-format +msgid "The path %s already exists." +msgstr "El directorio %s ya existe." + +# +msgid "The pin code you entered is wrong." +msgstr "El pin introducido no es correcto." + +# +#, python-format +msgid "The results have been written to %s." +msgstr "Los resultados han sido escritos a %s." + +# +msgid "The sleep timer has been activated." +msgstr "El apagado automático ha sido activado." + +# +msgid "The sleep timer has been disabled." +msgstr "El apagado automático ha sido cancelado." + +#, fuzzy +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"¡La extensión Softwaremanagement no está instalada!\n" +"Por favor, instálela." + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "" + +# +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "El fichero de grabaciones (timers.xml) está corrupto y no puede cargarse." + +# +#, fuzzy +msgid "The user interface of your receiver is restarting" +msgstr "Espere mientras su red está reiniciando..." + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"El plugin de RED inalámbrica no está instalado!\n" +"Por favor, instálelo y elija que quiere hacer lo siguiente." + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"El plugin de la red inalámbrica no ha sido instalado!\n" +"Por favor, instálelo." + +# +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "El asistente puede backup tu configuración actual. ¿Quiere hacer el backup ahora?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "El asistente encontró una configuración guardada. ¿Quiere restaurar su configuración antigua desde %s?" + +# +msgid "The wizard is finished now." +msgstr "El asistente ha finalizado ahora." + +# +msgid "There are at least " +msgstr "Hay al menos" + +# +#, fuzzy, python-format +msgid "There are at least %s updates available." +msgstr "No hay actualizaciones disponibles." + +# +msgid "There are currently no outstanding actions." +msgstr "No hay actualmente ninguna acción en ejecución." + +# +msgid "There are no updates available." +msgstr "No hay actualizaciones disponibles." + +msgid "There is no signal to lock on !" +msgstr "" + +# +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"No debe haber suficiente especio en la partición seleccionada.\n" +"¿Seguro que quiere continuar?" + +# +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "El disco DVD-RW está ya formateado - reformatear borrará todos los contenidos del disco." + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" + +# +msgid "This plugin is installed." +msgstr "Este plugin está instalado." + +# +msgid "This plugin is not installed." +msgstr "Este plugin no está instalado." + +# +msgid "This plugin will be installed." +msgstr "Este plugin será instalado." + +# +msgid "This plugin will be removed." +msgstr "Este plugin será desinstalado." + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "" + +# +#, fuzzy +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"Este test chequea los DNSs configurados.\n" +"Si obtiene un mensaje \"no confirmado\":\n" +"- chequee su DHCP, cable o configuración del adaptador\n" +"- si ha configurado los DNSs manualmente, verifíquelos en su Configuración de DNS" + +# +#, fuzzy +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Este test chequea si su cable de red está conectado a su adaptador de red.\n" +"Si consigue un mensaje de \"desconectado\"\n" +"- verifique que su cable de red está conectado\n" +"- verifique que el cable no está roto" + +# +#, fuzzy +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Este test chequea si una IP válida es encontrada para su Adaptador de Red.\n" +"Si consigue un mensaje de \"no confirmado\":\n" +"- no hay una IP válida\n" +"- verifique su DHCP, cable o configuración del adaptador" + +# +#, fuzzy +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"Este test chequea si su adaptador de Red es configurado para IP automática con DHCP.\n" +"Si consigue un mensaje de \"desabilitado\":- entonces su Adaptador de Red es configurado con IP manual\n" +"- verifique que ha entrado una información de IP correcta en la configuración de Red.\n" +"Si consigue un mensaje de \"activado\":- verifique que ha configurado y está trabajando un servidor DHCP en su red." + +# +#, fuzzy +msgid "This test detects your configured LAN adapter." +msgstr "Este test detecta su adaptador de red configurado." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" + +# +msgid "Three" +msgstr "Tres" + +# +msgid "Threshold" +msgstr "Umbral" + +# +msgid "Thu" +msgstr "Jue" + +# +msgid "Thumbnails" +msgstr "Miniaturas" + +# +msgid "Thursday" +msgstr "Jueves" + +# +msgid "Time" +msgstr "Hora" + +# +#, fuzzy +msgid "Time scale" +msgstr "Selección de grabación" + +# +msgid "Timer" +msgstr "Grabación" + +msgid "Timer Overview" +msgstr "" + +# +#, fuzzy +msgid "Timer edit" +msgstr "Editar Programación" + +# +#, fuzzy +msgid "Timer editor" +msgstr "Editor de Grabaciones" + +# +msgid "Timer entry" +msgstr "Grabación" + +# +msgid "Timer log" +msgstr "Log de grabación" + +# +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"¡Programaciones solapadas en timers.xml!\n" +"¡Chequéelo!" + +# +#, fuzzy +msgid "Timer overview" +msgstr "Grabación" + +# +#, fuzzy +msgid "Timer recording location" +msgstr "Ruta de la grabación" + +# +msgid "Timer sanity error" +msgstr "Error de grabación" + +# +msgid "Timer selection" +msgstr "Selección de grabación" + +msgid "Timer selection..." +msgstr "" + +# +#, fuzzy +msgid "Timer type" +msgstr "Tipo de grabación" + +# +msgid "Timeshift" +msgstr "Pausa" + +msgid "Timeshift Live" +msgstr "" + +# +msgid "Timeshift location" +msgstr "Ruta pausa grabación" + +# +msgid "Timeshift not possible!" +msgstr "¡Pausa no posible!" + +# +msgid "Timezone" +msgstr "Zona horaria" + +# +msgid "Title" +msgstr "Título" + +# +msgid "Title properties" +msgstr "Propiedades de título" + +# +msgid "Titleset mode" +msgstr "Modo Título" + +msgid "To audio selection" +msgstr "" + +msgid "To subtitle selection" +msgstr "" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" + +# +msgid "Today" +msgstr "Hoy" + +# +#, fuzzy +msgid "Toggle a cut mark at the current position" +msgstr "poner una marca de corte en la posición actual" + +# +#, fuzzy +msgid "Tone amplitude" +msgstr "Tono de Amplitud" + +# +msgid "Tone mode" +msgstr "Modo tono" + +# +msgid "Toneburst" +msgstr "Toneburst" + +# +msgid "Toneburst A/B" +msgstr "Toneburst A/B" + +msgid "Top and bottom" +msgstr "" + +# +msgid "Track" +msgstr "Pista" + +# +msgid "Translation" +msgstr "Traducción" + +# +msgid "Translation:" +msgstr "Traducción:" + +msgid "Translations" +msgstr "" + +# +msgid "Transmission mode" +msgstr "Modo de trasmisión" + +# +msgid "Transponder" +msgstr "Transponder" + +# +#, fuzzy +msgid "Transponder type" +msgstr "Tipo de Transponder" + +msgid "Trash can" +msgstr "" + +# +msgid "Tries left:" +msgstr "Intentos que quedan:" + +# +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Intenta encontrar los transponders en la red de cable.. espere..." + +# +msgid "Trying to download a new packetlist. Please wait..." +msgstr "Intentando descargar una nueva lista de paquetes. Espere..." + +# +msgid "Tue" +msgstr "Mar" + +# +msgid "Tuesday" +msgstr "Martes" + +# +msgid "Tune" +msgstr "Tono" + +# +#, fuzzy +msgid "Tune and focus" +msgstr "Sintonizador" + +# +msgid "Tune failed!" +msgstr "¡Falló la sintonización!" + +# +msgid "Tuner" +msgstr "Sintonizador" + +# +msgid "Tuner configuration" +msgstr "Configuración sintonizador" + +msgid "Tuner is not supported" +msgstr "" + +# +#, fuzzy +msgid "Tuner slot" +msgstr "Slot del sintonizador" + +# +msgid "Tuner status" +msgstr "Sintonizador" + +# +#, fuzzy, python-format +msgid "Tuner status %s" +msgstr "Sintonizador" + +msgid "Tuner type" +msgstr "Tipo de tuner" + +# +msgid "Turkish" +msgstr "Turco" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +# +msgid "Two" +msgstr "Dos" + +# +msgid "Type" +msgstr "Tipo" + +# +msgid "Type of scan" +msgstr "Tipo de búsqueda" + +# +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "" + +# +#, fuzzy +msgid "USB stick" +msgstr "Memoria USB" + +# +msgid "USB stick wizard" +msgstr "Asistente de lápiz USB" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +# +msgid "Undo install" +msgstr "Deshacer instalación" + +# +msgid "Undo uninstall" +msgstr "Deshacer desinstalación" + +msgid "Unencrypted" +msgstr "" + +msgid "UnhandledKey" +msgstr "Tecla no manejada" + +# +msgid "Unicable" +msgstr "Unicable" + +# +msgid "Unicable LNB" +msgstr "LNB Unicable" + +# +msgid "Unicable Martix" +msgstr "Matrix Unicable" + +# +msgid "Uninstall" +msgstr "Desinstalar" + +# +msgid "Universal LNB" +msgstr "LNB Universal" + +msgid "Unknown" +msgstr "" + +msgid "Unmount" +msgstr "" + +# +msgid "Unsupported" +msgstr "No soportado" + +# +msgid "Update" +msgstr "Actualizar" + +msgid "Update and ask to reboot" +msgstr "" + +msgid "Update and reboot (recommended)" +msgstr "" + +# +#, fuzzy +msgid "Update channel list only" +msgstr "canal siguiente en historia" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "" +msgstr[1] "" + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "" + +msgid "Update has completed." +msgstr "" + +msgid "Updatefeed not available." +msgstr "Updatefeed no disponible." + +# +msgid "Updating software catalog" +msgstr "Actualizando el catálogo de software" + +# +msgid "Upgrading" +msgstr "Actualizando" + +# +msgid "Use" +msgstr "Uso" + +# +msgid "Use DHCP" +msgstr "Usar DHCP" + +msgid "Use EIT EPG information when it is available." +msgstr "" + +msgid "Use FreeSat EPG information when it is available." +msgstr "" + +msgid "Use MHW EPG information when it is available." +msgstr "" + +msgid "Use Netmed EPG information when it is available." +msgstr "" + +msgid "Use TV remote control" +msgstr "" + +# +#, fuzzy +msgid "Use USALS for this sat" +msgstr "Usar usals para este sat" + +msgid "Use ViaSat EPG information when it is available." +msgstr "" + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +# +msgid "Use a gateway" +msgstr "Usar puerta de enlace" + +msgid "Use fastscan channel names" +msgstr "" + +msgid "Use fastscan channel numbering" +msgstr "" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "" + +# +#, fuzzy +msgid "Use interface" +msgstr "Interface en uso" + +msgid "Use official channel numbering" +msgstr "" + +msgid "Use original DVB subtitle position" +msgstr "" + +msgid "Use original teletext position" +msgstr "" + +# +msgid "Use power measurement" +msgstr "Usar medida de potencia" + +#, fuzzy +msgid "Use the network wizard to configure selected network adapter" +msgstr "Use el Asistente de Red para configurar el adaptador de red seleccionado" + +# +#, fuzzy +msgid "Use the network wizard to configure your network\n" +msgstr "Use este asistente para configurar su Red\n" + +# +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "Use las teclas arriba/abajo de su mando para seleccionar una opción. Después, pulse OK." + +# +#, fuzzy +msgid "Use the wizard to set up basic features" +msgstr "Use el asistente para configuración básica" + +#, fuzzy +msgid "Use these input device settings?" +msgstr "¿Usar esta configuración de dispositivo de entrada?" + +#, fuzzy +msgid "Use these settings?" +msgstr "¿Usar esta configuración?" + +# +msgid "Use this video enhancement settings?" +msgstr "¿Usar esta configuración de mejora de video?" + +# +#, fuzzy +msgid "Use trash can in movielist" +msgstr "Volver a la lista de películas" + +# +msgid "Used service scan type" +msgstr "Tipo de búsqueda de canales usada" + +msgid "User - bouquets" +msgstr "" + +# +msgid "User defined" +msgstr "Definido por el usuario" + +msgid "User defined transponder" +msgstr "" + +# +#, fuzzy +msgid "User interface" +msgstr "Interface en uso" + +# +msgid "Username" +msgstr "Nombre de usuario" + +#, python-format +msgid "Using LNB %d" +msgstr "" + +msgid "Using fixed address" +msgstr "" + +#, python-format +msgid "Using tuner %s" +msgstr "" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "" + +# +msgid "VCR scart" +msgstr "Euroconector VCR" + +# +msgid "VMGM (intro trailer)" +msgstr "VMGM (trailer intro)" + +# +msgid "Vertical" +msgstr "Vertical" + +msgid "Vertical turning speed" +msgstr "" + +msgid "Video PID" +msgstr "" + +# +msgid "Video enhancement preview" +msgstr "Previsualizar la mejora de vídeo" + +# +msgid "Video enhancement settings" +msgstr "Configuración de mejora de vídeo" + +# +msgid "Video enhancement setup" +msgstr "Configuración de mejora de video" + +# +#, fuzzy +msgid "Video fine tuning" +msgstr "Ajuste de video fino" + +# +#, fuzzy +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Selección entrada de vídeo\n" +"\n" +"Por favor, pulse OK si quiere ver esta página en su TV (o selecciones un puerto de entrada diferente).\n" +"\n" +"El puerto de entrada siguiente será automáticamente probado durante 10 segundos." + +# +msgid "Video mode selection." +msgstr "Selección de modo de vídeo." + +# +#, fuzzy +msgid "Video output" +msgstr "Salida de video" + +# +#, fuzzy +msgid "Video setup" +msgstr "Configuración de Video" + +# +#, fuzzy +msgid "Video wizard" +msgstr "Asientente de video" + +#, python-format +msgid "Video: %s fps" +msgstr "" + +msgid "VideoMode" +msgstr "" + +msgid "Videocodec" +msgstr "" + +msgid "Videoformat" +msgstr "" + +msgid "Videosize" +msgstr "" + +# +msgid "View Rass interactive..." +msgstr "Ver Rass interactivo..." + +# +msgid "View details" +msgstr "Ver detalles" + +# +msgid "View list of available " +msgstr "Ver lista de disponible" + +# +msgid "View list of available CommonInterface extensions" +msgstr "Ver lista de extensiones disponibles del InterfazComún" + +# +msgid "View list of available EPG extensions." +msgstr "Ver lista de extensiones de EPG disponibles." + +msgid "View list of available Satellite equipment extensions." +msgstr "Ver lista de extensiones disponibles de equipamiento de Satélite." + +# +msgid "View list of available communication extensions." +msgstr "Ver lista de extensiones de comunicación disponibles." + +# +msgid "View list of available default settings" +msgstr "Ver lista de configuración por defecto disponibles." + +# +#, fuzzy +msgid "View list of available display and userinterface extensions." +msgstr "Ver lista de extensiones de Pantalla e Interfaz de Usuario" + +# +msgid "View list of available multimedia extensions." +msgstr "Ver lista de extensiones multimedia disponibles." + +# +msgid "View list of available networking extensions" +msgstr "Ver lista de extensiones disponibles de red" + +# +msgid "View list of available recording extensions" +msgstr "Ver lista de extensiones de grabación disponibles" + +# +msgid "View list of available skins" +msgstr "Ver lista de pieles disponibles" + +# +msgid "View list of available software extensions" +msgstr "Ver lista de extensiones de software disponibles" + +# +msgid "View list of available system extensions" +msgstr "Ver lista de extensiones de sistema disponibles" + +# +#, fuzzy +msgid "View photos..." +msgstr "Ver Fotos..." + +# +msgid "View teletext..." +msgstr "Ver teletexto..." + +# +#, fuzzy +msgid "View video CD..." +msgstr "Ver Video CD..." + +# +#, fuzzy +msgid "Virtual keyboard" +msgstr "Teclado Virtual" + +# +msgid "Voltage mode" +msgstr "Modo voltaje" + +# +msgid "Volume" +msgstr "Volumen" + +# +msgid "W" +msgstr "W" + +# +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "Conexión WLAN" + +# +msgid "WPA" +msgstr "WPA" + +# +msgid "WPA or WPA2" +msgstr "WPA o WPA2" + +# +msgid "WPA2" +msgstr "WPA2" + +# +msgid "WSS on 4:3" +msgstr "WSS en 4:3" + +# +msgid "Waiting" +msgstr "Esperando" + +msgid "Waiting for mount" +msgstr "" + +msgid "Waiting for partition" +msgstr "" + +msgid "Wakeup" +msgstr "" + +msgid "Wakeup TV from standby" +msgstr "" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "" + +msgid "Wakeup signal from TV" +msgstr "" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "" + +# +#, fuzzy +msgid "Watch movies..." +msgstr "Reproducir películas grabadas..." + +# +#, fuzzy +msgid "Watch recordings..." +msgstr "grabando..." + +# +msgid "Wed" +msgstr "Mié" + +# +msgid "Wednesday" +msgstr "Miércoles" + +# +msgid "Weekday" +msgstr "DiaSemana" + +msgid "Weighted position" +msgstr "" + + + +# +msgid "please connect your receiver to the internet" +msgstr "por favor conecte su receptor a internet" + +# +#, fuzzy +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"Bienvenido al editor de listas de cortes.\n" +"\n" +"Vaya al comienzo que quiera cortar. Pulse OK, seleccione corte inicial'.\n" +"\n" +"Vaya al final, pulse OK, seleccione 'corte final'. Eso es todo." + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"This start Wizard will guide you through the basic setup of your receiver.\n" +"\n" +"Press the OK button on your remote control to move to the next step" +msgstr "" +"Bienvenido.\n" +"\n" +"Este Asistente de arranque le guiará a través de la configuración básica de su receptor.\n" +"\n" +"Pulse el botón OK del mando a distancia para pasar al siguiente paso" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step.\n" + +msgstr "" +"Bienvenido.\n" +"\n" +"Este asistente de inicio le guiará a través de la configuración básica de su receptor.\n" +"Pulse el botón OK del mando a distancia para pasar al siguiente paso.\n" + +# +msgid "Welcome..." +msgstr "Bienvenido..." + +# +msgid "West" +msgstr "Oeste" + +msgid "West limit set" +msgstr "" + +# +msgid "What do you want to scan?" +msgstr "¿Qué quiere buscar?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "" + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "" + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "" + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "" + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "" + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "" + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "" + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "" + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "" + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "" + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "" + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "" + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "" + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "" + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "" + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "" + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "" + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "" + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "" + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "" + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "" + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "" + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "" + +msgid "When enabled, number markers will be hiden." +msgstr "" + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "" + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "" + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "" + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "" + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "" + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "" + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "" + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "" + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "" + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "" + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "" + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "" + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "" + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "" + +# +#, fuzzy +msgid "When enabled, use DHCP for the IP configuration." +msgstr "abir la configuración del servidor de nombres" + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "" + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "" + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "" + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "" + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "" + +# +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"Cuando haga un reseteo de fábrica, perderá todos los datos de configuración\n" +"(incluyendo listas, canales, datos del satélite...)\n" +"Después de un reseteo, su receptor se reiniciará automáticamente!\n" +"\n" +"¿Quiere hacer un reset de fábrica?" + +# +msgid "Where do you want to backup your settings?" +msgstr "¿Donde quiere backup su configuración?" + +# +msgid "Where to save temporary timeshift recordings?" +msgstr "¿Dónde guardar las grabaciones temporales de pausa?" + +# +msgid "Wireless LAN" +msgstr "RED Inalámbrica" + +# +#, fuzzy +msgid "Wireless network" +msgstr "Red Inalámbrica" + +# +#, fuzzy +msgid "Wireless network configuration..." +msgstr "Configuración de Red..." + +msgid "Wireless network connection setup" +msgstr "" + +msgid "Wireless network connection setup." +msgstr "" + +msgid "Wireless network state" +msgstr "" + +msgid "With popup" +msgstr "" + +msgid "Without popup" +msgstr "" + +# +msgid "Write error while recording. Disk full?\n" +msgstr "Error mientras grababa. ¿Disco lleno?\n" + +# +msgid "Write failed!" +msgstr "¡Falló la escritura!" + +# +msgid "YPbPr" +msgstr "YPbPr" + +# +msgid "Year" +msgstr "Año" + +msgid "Yellow DVB subtitles" +msgstr "" + +# +msgid "Yes" +msgstr "Si" + +msgid "Yes and save" +msgstr "" + +msgid "Yes and save in movie dir" +msgstr "" + +# +msgid "Yes to all" +msgstr "Si a todo" + +msgid "Yes, always" +msgstr "Si, siempre" + +# +msgid "Yes, and delete this movie" +msgstr "Si, y borre esta película" + +# +msgid "Yes, backup my settings!" +msgstr "Si, ¡backup mi configuración!" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +# +msgid "Yes, do a manual scan now" +msgstr "Si, haga una búsqueda manual ahora" + +# +msgid "Yes, do an automatic scan now" +msgstr "Si, haga una búsqueda automática ahora" + +# +msgid "automatic scan" +msgstr "búsqueda automática" + +# +msgid "please press ok if you can see this page on your tv (or select a diffrent input port)" +msgstr "Presione OK para seleccionar la entrada de video" + +msgid "The nex input port will be automatically probed in 20 seconds" +msgstr "El puerto de entrada se explora automáticamente en 20 segundos" + +# +msgid "fast Scan" +msgstr "Escaneo Rapido" + +# +msgid "video input selection" +msgstr "seleccióne la entrada de vídeo" + +# +msgid "Yes, do another manual scan now" +msgstr "Si, hacer otra búsqueda manual ahora" + +# +msgid "Yes, perform a shutdown now." +msgstr "Si, realice el apagado ahora." + +# +msgid "Yes, restore the settings now" +msgstr "Si, restaure la configuración ahora" + +# +msgid "Yes, returning to movie list" +msgstr "Si, vuelve a la lista de películas" + +msgid "Yesterday" +msgstr "" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" + +# +msgid "You can cancel the installation." +msgstr "Usted puede cancelar la instalación." + +# +msgid "You can cancel the removal." +msgstr "Ha cancelado la desinstalación." + +msgid "You can continue watching TV etc. while this is running." +msgstr "" + +# +msgid "You can install this plugin." +msgstr "Usted puede instalar el plugin." + +msgid "You can only burn receiver recordings!" +msgstr "" + +# +msgid "You can remove this plugin." +msgstr "Usted puede desinstalar el plugin." + +# +msgid "You cannot delete this!" +msgstr "¡No puede borrar esto!" + +msgid "You didn't select a channel to record from." +msgstr "No ha seleccionado un canal desde el cual grabar." + +# +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "Ha elegido hacer un backup de su configuración. Pulse OK para comenzar el backup ahora." + +# +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "Ha elegido crear un nuevo .NFI flasher autoarrancable memoria USB. Esto reparticiona la memoria USB y todos los datos serán borrados." + +# +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "Ha elegido restaurar su configuración. Enigma2 reiniciará después de restaurar. Pulse OK para comenzar a restaurar ahora." + +# +#, python-format +msgid "You have to wait %s!" +msgstr "Tiene que esperar %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" + +msgid "You system does not support ext4" +msgstr "" + +# +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "El backup ha terminado. Nosotros continuamos explicando el proceso de actualización." + +# +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "Su colección exede el tamaño de un medio de capa simple, necesitará un DVD blanco de doble capa!" + +msgid "Your current collection will get lost!" +msgstr "¡Su colección actual se perdió!" + +# +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"El firmware del frontprocessor debe ser actualizado.\n" +"Pulse OK para comenzar la actualización." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +# +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"¡Su conexión a internet está funcionando!\n" +"Elija que quiere hacer lo siguiente." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "Su conexión a Internet está funcionando con (ip: %s)" + +# +msgid "Your network configuration has been activated." +msgstr "Su configuración de red ha sido activada." + +msgid "Your receiver does not have an internet connection" +msgstr "" + +# +#, fuzzy +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"Su Dreambox está ahora preparado para usarse.\n" +"\n" +"Si conexión a internet está funcionando ahora.\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" + +msgid "Your receiver is rebooting" +msgstr "" + +msgid "Your receiver is shutting down" +msgstr "" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "" + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "" + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "" + +msgid "Your receiver will got to standby due to inactivity." +msgstr "" + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "" + +# +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"Su conexión a internet inalámbrica no puede iniciarse!\n" +"Ha conectado un dispositivo WLAN USB?\n" +"\n" +"Pulse que quiere hacer lo siguiente." + +msgid "Zap" +msgstr "" + +msgid "Zap back to previously tuned service?" +msgstr "¿Volver al último canal sintonizado?" + +# +msgid "Zap back to service before positioner setup?" +msgstr "¿Volver al canal antes de configurar el motor?" + +msgid "Zap back to service before tuner setup?" +msgstr "¿Volver al canal anterior a la configuración del tuner?" + +msgid "Zap focus to Picture in Picture" +msgstr "" + +msgid "Zap focus to main screen" +msgstr "" + +msgid "Zap mode" +msgstr "" + +msgid "Zap to selected channel" +msgstr "" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "" + +# +msgid "[alternative edit]" +msgstr "[edición alternativa]" + +# +msgid "[bouquet edit]" +msgstr "[editar lista]" + +# +msgid "[favourite edit]" +msgstr "[editar favoritos]" + +# +msgid "[move mode]" +msgstr "[modo mover]" + +# +msgid "a gui to assign services/providers to common interface modules" +msgstr "un gui para asignar canales/proveedores a los módulos de interfaz común" + +# +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "un gui para asignar canales/proveedores/caids a los módulos de interfaz común" + +# +msgid "abort alternatives edit" +msgstr "abortar la edición alternativa" + +# +msgid "abort bouquet edit" +msgstr "abortar la edición de listas" + +# +msgid "abort favourites edit" +msgstr "abortar la edición de favoritos" + +# +msgid "about to start" +msgstr "sobre comenzar" + +# +msgid "activate network adapter configuration" +msgstr "activar configuración del adaptador de red" + +# +msgid "add alternatives" +msgstr "añadir alternativas" + +# +msgid "add bookmark" +msgstr "añadir marcador" + +# +msgid "add bouquet" +msgstr "añadir lista" + +# +msgid "add marker" +msgstr "añadir marcador" + +# +msgid "add service to bouquet" +msgstr "añadir canal a la lista" + +# +msgid "add service to favourites" +msgstr "añadir canal a favoritos" + +# +msgid "add to parental protection" +msgstr "añadir a protección de adultos" + +msgid "adult movie/drama" +msgstr "" + +# +msgid "advanced" +msgstr "avanzado" + +msgid "adventure/western/war" +msgstr "" + +msgid "advertisement/shopping" +msgstr "" + +msgid "after " +msgstr "" + +# +#, fuzzy +msgid "alphabetic" +msgstr "orden alfabético" + +msgid "alphabetic reverse" +msgstr "" + +msgid "alternative" +msgstr "" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "" + +msgid "arts/culture magazine" +msgstr "" + +msgid "athletics" +msgstr "" + +# +msgid "audio tracks" +msgstr "pistas de audio" + +# +msgid "auto" +msgstr "auto" + +# +#, fuzzy +msgid "automatic" +msgstr "Automático" + +# +msgid "back" +msgstr "atrás" + +# +msgid "background image" +msgstr "imagen de fondo" + +msgid "ballet" +msgstr "" + +#, python-format +msgid "bc%s" +msgstr "" + +# +msgid "better" +msgstr "mejor" + +# +msgid "black" +msgstr "negro" + +msgid "black & white" +msgstr "" + +# +msgid "blacklist" +msgstr "lista negra" + +# +msgid "blue" +msgstr "azul" + +msgid "broadcasting/press" +msgstr "" + +# +#, fuzzy +msgid "by date" +msgstr "ordenar por fecha" + +msgid "cartoon/puppets" +msgstr "" + +msgid "center" +msgstr "" + +msgid "centered" +msgstr "" + +msgid "centered, wrapped" +msgstr "" + +# +msgid "chapters" +msgstr "capítulos" + +msgid "childrens's/youth program (general)" +msgstr "" + +# +msgid "circular left" +msgstr "circular izda" + +# +msgid "circular right" +msgstr "circular dcha" + +msgid "comedy" +msgstr "" + +# +msgid "complex" +msgstr "complejo" + +# +msgid "config menu" +msgstr "menú configuración" + +# +msgid "confirmed" +msgstr "confirmado" + +# +msgid "connected" +msgstr "conectado" + +# +msgid "continue" +msgstr "continuar" + +msgid "cooking" +msgstr "" + +# +msgid "copy to bouquets" +msgstr "copiar a listas" + +# +msgid "create directory" +msgstr "crear directorio" + +#, python-format +msgid "currently installed image: %s" +msgstr "imagen actualmente instalada: %s" + +# +msgid "daily" +msgstr "diariamente" + +# +msgid "day" +msgstr "día" + +# +#, fuzzy +msgid "default" +msgstr "Por defecto" + +# +msgid "delete cut" +msgstr "borrar corte" + +msgid "delete..." +msgstr "" + +msgid "descramble and record ecm" +msgstr "" + +msgid "detective/thriller" +msgstr "" + +# +msgid "disable" +msgstr "desactivar" + +# +msgid "disable move mode" +msgstr "quitar modo movimiento" + +# +msgid "disabled" +msgstr "desactivado" + +# +msgid "disconnected" +msgstr "desconectado" + +msgid "discussion/interview/debate" +msgstr "" + +# +msgid "do nothing" +msgstr "no hacer nada" + +msgid "documentary" +msgstr "" + +msgid "don't descramble, record ecm" +msgstr "" + +# +msgid "done!" +msgstr "¡hecho!" + +msgid "east" +msgstr "" + +msgid "economics/social advisory" +msgstr "" + +# +msgid "edit alternatives" +msgstr "editar alternativas" + +msgid "education/science/factual topics (general)" +msgstr "" + +# +msgid "empty" +msgstr "vacío" + +# +msgid "enable" +msgstr "activar" + +# +msgid "enable bouquet edit" +msgstr "habilitar edición de lista" + +# +msgid "enable favourite edit" +msgstr "habilitar edición de favoritos" + +# +msgid "enable move mode" +msgstr "habilitar modo movimiento" + +# +msgid "enabled" +msgstr "activado" + +# +msgid "end alternatives edit" +msgstr "terminar edición de alternativas" + +# +msgid "end bouquet edit" +msgstr "fin de edición de listas" + +# +msgid "end cut here" +msgstr "terminar corte aquí" + +# +msgid "end favourites edit" +msgstr "fin edición de favoritos" + +msgid "entertainment (10-16 year old)" +msgstr "" + +msgid "entertainment (6-14 year old)" +msgstr "" + +# +msgid "equal to" +msgstr "igual a" + +msgid "equestrian" +msgstr "" + +# +msgid "exit DVD player or return to file browser" +msgstr "salir del reproductor DVD o volver a sistema de archivos" + +msgid "exit movielist" +msgstr "" + +# +msgid "exit network adapter configuration" +msgstr "salir de la configuración de red" + +# +msgid "exit networkadapter setup menu" +msgstr "salir del menú de configuración de adaptador de red" + +msgid "experimental film/video" +msgstr "" + +msgid "false" +msgstr "" + +msgid "fashion" +msgstr "" + +# +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "formatos (BMP, PNG, JPG, GIF)" + +# +msgid "filename" +msgstr "nombre de fichero" + +msgid "film/cinema" +msgstr "" + +msgid "fine arts" +msgstr "" + +# +msgid "fine-tune your display" +msgstr "Configurar en detalle tu TV" + +msgid "fitness & health" +msgstr "" + +# +#, fuzzy +msgid "flat alphabetic" +msgstr "orden alfabético" + +# +#, fuzzy +msgid "flat alphabetic reverse" +msgstr "orden alfabético" + +msgid "folk/traditional music" +msgstr "" + +msgid "football/soccer" +msgstr "" + +msgid "foreign countries/expeditions" +msgstr "" + +# +msgid "forward to the next chapter" +msgstr "salte al capítulo siguiente" + +# +msgid "free" +msgstr "libre" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "" + +msgid "game show/quiz/contest" +msgstr "" + +msgid "gardening" +msgstr "" + +# +msgid "go to deep standby" +msgstr "ir a pausa profunda" + +# +msgid "go to standby" +msgstr "ir a pausa" + +# +msgid "grab this frame as bitmap" +msgstr "grabar esta pantalla como bitmap" + +# +msgid "green" +msgstr "verde" + +msgid "handicraft" +msgstr "" + +msgid "height" +msgstr "" + +# +msgid "help..." +msgstr "ayuda..." + +# +msgid "horizontal" +msgstr "horizontal" + +msgid "information/education/school program" +msgstr "" + +# +msgid "init module" +msgstr "iniciar módulo" + +# +msgid "init modules" +msgstr "módulos de inicio" + +# +msgid "insert mark here" +msgstr "insertar marca aquí" + +msgid "invalid type" +msgstr "" + +msgid "jazz" +msgstr "" + +# +msgid "jump back to the previous title" +msgstr "vuelva al título anterior" + +# +msgid "jump forward to the next title" +msgstr "salte al título siguiente" + +msgid "languages" +msgstr "" + +# +msgid "leave movie player..." +msgstr "salir del reproductor de películas..." + +# +msgid "left" +msgstr "izquierda" + +msgid "left, wrapped" +msgstr "" + +msgid "leisure hobbies (general)" +msgstr "" + +# +msgid "length" +msgstr "longitud" + +msgid "limit ..., aborting !" +msgstr "" + +# +msgid "list style compact" +msgstr "estilo de lista compacto" + +# +msgid "list style compact with description" +msgstr "estilo de lista compacto con descripción" + +# +msgid "list style default" +msgstr "estilo de lista por defecto" + +# +msgid "list style single line" +msgstr "estilo de lista en una línea" + +msgid "literature" +msgstr "" + +msgid "live broadcast" +msgstr "" + +# +msgid "locked" +msgstr "bloqueado" + +# +msgid "loopthrough to" +msgstr "conectado a" + +msgid "magazines/reports/documentary" +msgstr "" + +# +msgid "manual" +msgstr "manual" + +msgid "martial sports" +msgstr "" + +msgid "medicine/physiology/psychology" +msgstr "" + +# +msgid "menu" +msgstr "menú" + +# +msgid "mins" +msgstr "mins" + +# +msgid "minutes" +msgstr "minutos" + +# +msgid "month" +msgstr "mes" + +msgid "motor sport" +msgstr "" + +msgid "motoring" +msgstr "" + +# +msgid "move down to last entry" +msgstr "mover abajo la última entrada" + +# +msgid "move down to next entry" +msgstr "mover abajo la entrada siguiente" + +# +msgid "move up to first entry" +msgstr "mover arriba la primera entrada" + +# +msgid "move up to previous entry" +msgstr "mover arriba la entrada anterior" + +msgid "movie/drama (general)" +msgstr "" + +# +msgid "multinorm" +msgstr "multinorm" + +msgid "music/ballet/dance (general)" +msgstr "" + +msgid "musical/opera" +msgstr "" + +msgid "nature/animals/environment" +msgstr "" + +# +msgid "never" +msgstr "nunca" + +msgid "new media" +msgstr "" + +msgid "news magazine" +msgstr "" + +msgid "news/current affairs (general)" +msgstr "" + +msgid "news/weather report" +msgstr "" + +# +msgid "no" +msgstr "no" + +# +msgid "no CAId selected" +msgstr "no ha seleccionado CAId" + +# +msgid "no CI slots found" +msgstr "no hay slots CI" + +# +msgid "no module found" +msgstr "módulo no encontrado" + +msgid "no storage devices found" +msgstr "" + +# +msgid "none" +msgstr "ninguno" + +msgid "normal" +msgstr "" + +msgid "not configured" +msgstr "no configurado" + +# +msgid "not locked" +msgstr "no bloqueado" + +msgid "not supported" +msgstr "no soportado" + +# +msgid "not used" +msgstr "no usado" + +# +msgid "nothing connected" +msgstr "nada conectado" + +# +msgid "of a DUAL layer medium used." +msgstr "de un disco de DOBLE cara usado." + +# +msgid "of a SINGLE layer medium used." +msgstr "de un disco de cara SIMPLE usado." + +# +msgid "off" +msgstr "off" + +msgid "offset is" +msgstr "" + +# +msgid "on" +msgstr "on" + +# +msgid "on READ ONLY medium." +msgstr "en disco SOLO LECTURA." + +msgid "on end of movie" +msgstr "" + +# +msgid "once" +msgstr "una vez" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +# +msgid "open nameserver configuration" +msgstr "abir la configuración del servidor de nombres" + +msgid "original" +msgstr "" + +msgid "original language" +msgstr "" + +# +msgid "pass" +msgstr "clave" + +msgid "performing arts" +msgstr "" + +msgid "play as picture in picture" +msgstr "" + +msgid "play in mainwindow" +msgstr "" + +# +msgid "please press OK when ready" +msgstr "pulse OK cuando esté preparado" + +# +msgid "please wait, loading picture..." +msgstr "por favor espere, cargando foto..." + +msgid "popular culture/traditional arts" +msgstr "" + +msgid "pre-school children's program" +msgstr "" + +msgid "receiver software because updates are available." +msgstr "" + +# +msgid "record" +msgstr "grabar" + +# +msgid "recording..." +msgstr "grabando..." + +# +msgid "red" +msgstr "rojo" + +msgid "religion" +msgstr "" + +msgid "remarkable people" +msgstr "" + +# +msgid "remove after this position" +msgstr "borrar después de esta posición" + +# +msgid "remove all alternatives" +msgstr "borrar todas alternativas" + +# +msgid "remove all new found flags" +msgstr "borrar todas marcas encontradas" + +# +msgid "remove before this position" +msgstr "borrar antes de esta posición" + +# +msgid "remove bookmark" +msgstr "borrar marcador" + +# +msgid "remove directory" +msgstr "borrar directorio" + +# +msgid "remove entry" +msgstr "eliminar entrada" + +# +msgid "remove from parental protection" +msgstr "quitar la protección de adultos" + +# +msgid "remove new found flag" +msgstr "borrar nueva marca encontrada" + +# +msgid "remove selected satellite" +msgstr "borrar satélite seleccionado" + +# +msgid "remove this mark" +msgstr "borrar esta marca" + +msgid "rename entry" +msgstr "" + +# +msgid "repeat playlist" +msgstr "repetir liste de reproducción" + +# +msgid "repeated" +msgstr "repetido" + +msgid "reverse by date" +msgstr "" + +# +msgid "rewind to the previous chapter" +msgstr "vuelva al capítulo anterior" + +# +msgid "right" +msgstr "derecha" + +msgid "right, wrapped" +msgstr "" + +msgid "rock/pop" +msgstr "" + +msgid "romance" +msgstr "" + +# +msgid "save last directory on exit" +msgstr "guardar el último directorio al salir" + +# +msgid "save playlist on exit" +msgstr "guardar la lista al salir" + +# +msgid "scan state" +msgstr "estado de la búsqueda" + +msgid "science fiction/fantasy/horror" +msgstr "" + +# +msgid "second cable of motorized LNB" +msgstr "segundo cable del LNB motorizado" + +# +msgid "seconds" +msgstr "segundos" + +# +msgid "select" +msgstr "seleccionar" + +# +msgid "select CAId's" +msgstr "seleccionar CAId's" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +# +msgid "select menu entry" +msgstr "seleccionar la entrada de menú" + +# +msgid "select movie" +msgstr "seleccionar película" + +msgid "select the movie path" +msgstr "" + +msgid "serious music/classic music" +msgstr "" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "" + +msgid "service PIN" +msgstr "PIN del canal" + +msgid "set as startup service" +msgstr "" + +msgid "setup PIN" +msgstr "configurar PIN" + +# +msgid "show DVD main menu" +msgstr "mostrar el menú principal de DVD" + +msgid "show all tags" +msgstr "" + +# +msgid "show alternatives" +msgstr "mostrar alternativas" + +# +msgid "show event details" +msgstr "mostrar detalles del evento" + +msgid "show extended description" +msgstr "" + +msgid "show mediaplayer on mainmenu" +msgstr "" + +msgid "show softwaremanager in setup menu" +msgstr "" + +msgid "show softwaremanager on blue button" +msgstr "" + +msgid "show tag menu" +msgstr "" + +# +msgid "show transponder info" +msgstr "mostrar info del transpondedor" + +msgid "show/game show (general)" +msgstr "" + +msgid "shuffle" +msgstr "" + +# +msgid "shut down" +msgstr "apagar" + +# +msgid "simple" +msgstr "sencillo" + +# +msgid "skip backward" +msgstr "saltar adelante" + +# +msgid "skip forward" +msgstr "saltar adelante" + +msgid "soap/melodram/folkloric" +msgstr "" + +msgid "social/political issues/economics (general)" +msgstr "" + +msgid "social/spiritual science" +msgstr "" + +msgid "sorting of playlists" +msgstr "" + +msgid "special characters" +msgstr "caracteres especiales" + +msgid "special events" +msgstr "" + +msgid "special format data DVD (HDTV compatible)" +msgstr "" + +msgid "sports (general)" +msgstr "" + +msgid "sports magazine" +msgstr "" + +# +msgid "standard" +msgstr "estándar" + +# +msgid "start cut here" +msgstr "comenzar corte aquí" + +# +msgid "start directory" +msgstr "directorio de inicio" + +msgid "stepsize" +msgstr "" + +# +msgid "stereo" +msgstr "stéreo" + +msgid "stop using as startup service" +msgstr "" + +# +msgid "switch to bookmarks" +msgstr "pasar a marcadores" + +# +msgid "switch to filelist" +msgstr "cambiar a lista de ficheros" + +# +msgid "switch to the next angle" +msgstr "cambiar al siguiente ángulo" + +# +msgid "switch to the next audio track" +msgstr "cambiar a la siguiente pista de audio" + +# +msgid "switch to the next subtitle language" +msgstr "cambiar al siguiente idioma de subtítulos" + +msgid "talk show" +msgstr "" + +msgid "team sports" +msgstr "" + +msgid "technology/natural science" +msgstr "" + +# +msgid "template file" +msgstr "fichero de plantilla" + +msgid "tennis/squash" +msgstr "" + +# +msgid "this recording" +msgstr "esta grabación" + +# +msgid "this service is protected by a parental control pin" +msgstr "este canal está protegido por el pin de control de adultos" + +# +msgid "toggle time, chapter, audio, subtitle info" +msgstr "poner hora, capítulo, audio, info subtítulos" + +msgid "top" +msgstr "" + +msgid "tourism/travel" +msgstr "" + +msgid "true" +msgstr "" + +# +msgid "unavailable" +msgstr "no disponible" + +# +msgid "unconfirmed" +msgstr "no confirmado" + +msgid "undefined" +msgstr "" + +# +msgid "unknown" +msgstr "desconocido" + +# +msgid "unknown service" +msgstr "servicio desconocido" + +msgid "unpublished" +msgstr "" + +msgid "until standby/restart" +msgstr "hasta reposo/reinicio" + +msgid "standby/restart" +msgstr "reposo/reinicio" + +# +msgid "user defined" +msgstr "definido por el usuario" + +msgid "variety show" +msgstr "" + +# +msgid "vertical" +msgstr "vertical" + +# +msgid "wait for ci..." +msgstr "esperar al ci..." + +# +msgid "wait for mmi..." +msgstr "esperar para nmi..." + +# +msgid "waiting" +msgstr "esperando" + +msgid "water sport" +msgstr "" + +# +msgid "weekly" +msgstr "semanalmente" + +msgid "west" +msgstr "" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "" + +# +msgid "whitelist" +msgstr "lista blanca" + +msgid "width" +msgstr "" + +msgid "winter sport" +msgstr "" + +msgid "wireless network interface" +msgstr "" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "" +msgstr[1] "" + +# +msgid "working" +msgstr "trabajando" + +# +msgid "yellow" +msgstr "amarillo" + +# +msgid "yes" +msgstr "si" + +# +msgid "yes (keep feeds)" +msgstr "si (conserva fuentes)" + +# +msgid "zap" +msgstr "zapear" + +msgid "zap and record" +msgstr "" + +# +msgid "zapped" +msgstr "zapeado" + +# +#~ msgid "AA" +#~ msgstr "AA" + +# +#~ msgid "AB" +#~ msgstr "AB" + +# +#, fuzzy +#~ msgid "Activate PiP" +#~ msgstr "Activar PiP" + +# +#, fuzzy +#~ msgid "Add/remove timer for current event" +#~ msgstr "añadir grabación (sólo evento actual)" + +# +#, fuzzy +#~ msgid "All satellites" +#~ msgstr "Todos satélites" + +# +#~ msgid "BA" +#~ msgstr "BA" + +# +#~ msgid "BB" +#~ msgstr "BB" + +# +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "Tecla \"pausa\" cuando está parado" + +# +#~ msgid "Committed DiSEqC command" +#~ msgstr "Comando DISEqC enviado" + +# +#~ msgid "DiSEqC repeats" +#~ msgstr "Repetir DiSEqC" + +# +#~ msgid "No satellite frontend found!!" +#~ msgstr "No he encontrado ningún sintonizador de satélite" + +# +#~ msgid "Remove timer" +#~ msgstr "Eliminar grabación" + +# +#~ msgid "Send DiSEqC" +#~ msgstr "Enviar DISEqC" + +# +#, fuzzy +#~ msgid "Switch next channel" +#~ msgstr "canal siguiente" + +# +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Comando DiSEqC no enviado" + +# +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "¿Volver al canal antes de ir al buscador de satélites?" + +#~ msgid "tuner is not supported" +#~ msgstr "tuner no soportado" diff --git a/po/et.po b/po/et.po new file mode 100644 index 0000000..0f8484a --- /dev/null +++ b/po/et.po @@ -0,0 +1,8056 @@ +msgid "" +msgstr "" +"Project-Id-Version: tuxbox-enigma 0.0.1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2014-03-04 17:07+0200\n" +"Last-Translator: zeros <zeros@hot.ee>\n" +"Language-Team: Raivo, Henkka, eesatfan, rimas\n" +"Language: et\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-Generator: Poedit 1.6.4\n" + +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"Lisavalikud ja seadistused." + +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"Vajuta OK ja oota!" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" +"\n" +"Varukoopia vastuvõtja seadetest." + +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"Muuda uuenduste allika aadressi." + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" +"\n" +"Halda laiendusi" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" +"\n" +"Vastuvõtja internetiuuendused." + +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"Jätkamiseks vajuta OK." + +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"Taasta oma varukoopiad kuupäeva alusel." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" +"\n" +"Taasta vastuvõtja seaded." + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" +"\n" +"Taasta vastuvõtja uue püsivaraga." + +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"Otsi kohalikke laiendusi ja paigalda need." + +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Vali asukoht varukoopia jaoks.\n" +"Hetke asukoht: " + +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"Vaata, paigalda ja eemalda tarkvara pakette." + +msgid " (PiP)" +msgstr " (PiP)" + +msgid " (Radio)" +msgstr " (Raadio)" + +msgid " (TV)" +msgstr " (TV)" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +msgid " extensions." +msgstr " laiendused." + +msgid " ms" +msgstr " ms" + +msgid " packages selected." +msgstr " paketti valitud." + +msgid " updates available." +msgstr " uuendust saadaval." + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "%2d:%02d" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "%2d:%02d:%02d" + +msgid "%A %d %B" +msgstr "%A %d %B" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "%A %e %B" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "%A %e %B %Y" + +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "%a %e/%m" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "%a %e/%m %-H:%M" + +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, fuzzy, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "%d kanalit leitud!" +msgstr[1] "%d kanalit leitud!" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d tund" +msgstr[1] "%d tundi" + +#, fuzzy, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d protsessi käib taustal!" +msgstr[1] "%d protsessi käib taustal!" + +#, python-format +msgid "%d min" +msgstr "%d min" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minut" +msgstr[1] "%d minutit" + +#, python-format +msgid "%d minutes" +msgstr "%d minutit" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d sekund" +msgstr[1] "%d sekundit" + +#, fuzzy, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "Juurkataloog" +msgstr[1] "Juurkataloog" + +#, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "%d wifi võrk leitud!" +msgstr[1] "%d wifi võrku leitud!" + +msgid "%d-%b-%Y %-H:%M" +msgstr "%d-%b-%Y %-H:%M" + +msgid "%d-%m" +msgstr "%d-%m" + +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "%k:%M %e/%m" + +#, python-format +msgid "%s %s free disk space" +msgstr "%s %s vaba kettaruumi" + +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "%s ei ole enam kasutuses. Kas see tuleks kustutada?" + +#, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] " %s uuendatud pakett saadaval." +msgstr[1] " %s uuendatud paketti saadaval." + +#, python-format +msgid "%s%d min" +msgstr "%s%d min" + +#, python-format +msgid "%s/%s: %s" +msgstr "%s/%s: %s" + +msgid "(ZAP)" +msgstr "(Ainult kanalivahetus)" + +msgid "(empty)" +msgstr "(tühi)" + +msgid "(show optional DVD audio menu)" +msgstr "(näita DVD valikulist audio-menüüd)" + +msgid "* Only available if more than one interface is active." +msgstr "* Enam kui ühe aktiivse liidese puhul." + +msgid "/s" +msgstr "/s" + +msgid "0" +msgstr "0" + +msgid "1" +msgstr "1" + +msgid "1.0" +msgstr "1.0" + +msgid "1.1" +msgstr "1.1" + +msgid "1.2" +msgstr "1.2" + +msgid "12V output" +msgstr "12V väljund" + +msgid "13 V" +msgstr "13 V" + +msgid "16:10" +msgstr "16:10" + +msgid "16:10 Letterbox" +msgstr "16:10 letterbox" + +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +msgid "16:9" +msgstr "16:9" + +msgid "16:9 Letterbox" +msgstr "16:9 letterbox" + +msgid "16:9 always" +msgstr "16:9 alati" + +msgid "18 V" +msgstr "18 V" + +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "23.976" + +msgid "24" +msgstr "24" + +msgid "25" +msgstr "25" + +msgid "29.97" +msgstr "29.97" + +msgid "3" +msgstr "3" + +msgid "30" +msgstr "30" + +msgid "3d mode" +msgstr "3d režiim" + +msgid "4" +msgstr "4" + +msgid "4:3" +msgstr "4:3" + +msgid "4:3 Letterbox" +msgstr "4:3 letterbox" + +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +msgid "5" +msgstr "5" + +msgid "6" +msgstr "6" + +msgid "7" +msgstr "7" + +msgid "8" +msgstr "8" + +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +msgid "<Current movielist location>" +msgstr "<Salvestusnimekirja hetkeasukoht >" + +msgid "<Default movie location>" +msgstr "<Salvestuste tavaasukoht >" + +msgid "<Last timer location>" +msgstr "<Viimase taimeri asukoht>" + +msgid "<unknown>" +msgstr "<tundmatu>" + +msgid "??" +msgstr "??" + +msgid "A" +msgstr "A" + +#, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"Seadistusfaili (%s) on muudetud peale algpaigaldust.\n" +"Kas tahad säilitada oma versiooni?" + +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"Seadistusfaili (%s) on muudetud peale algpaigaldust.\n" +"Kas tahad säilitada oma versiooni?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"Lõpetanud salvestuse taimer soovib panna\n" +"vastuvõtja ooterežiimi. Kas nõustud?" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"Salvestuse lõpetanud taimer soovib vastuvõtja\n" +"välja lülitada. Kas nõustud?" + +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "Graafiline EPG kõigile kanalitele selles valikus" + +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"Salvestamine algas:\n" +"%s" + +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"Hetkel salvestatakse.\n" +"Mida soovid teha?" + +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "Hetkel salvestatakse. Peata salvestus, enne kui üritad muuta positsioneeri sätteid." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "Hetkel salvestatakse. Peata salvestamine enne kanaliotsingu alustamist." + +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "Hetkel salvestatakse. Peata salvestus, enne kui käivitad satelliidi otsimise." + +#, python-format +msgid "A required tool (%s) was not found." +msgstr "Ei leidnud (%s) vajaliku tööriista." + +msgid "A search for available updates is currently in progress." +msgstr "Otsime uuendusi." + +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"Leitud teine häälestatud võrguliides.\n" +"\n" +"Kas te soovite keelata teise võrguühenduse?" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"Unetaimer soovib panna vastuvõtja\n" +"ooterežiimi. Kas nõustud?" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"Unetaimer soovib vastuvõtja\n" +"välja lülitada. Kas nõustud?" + +msgid "A small overview of the available icon states and actions." +msgstr "Kasutatavate ikoonide seisundite ja tegevuste lühiülevaade." + +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"Taimeriga salvestus nurjus!\n" +"Keela TV ja proovi uuesti?\n" + +msgid "A/V settings" +msgstr "Heli ja pildi seaded" + +msgid "AC3/DTS downmix" +msgstr "AC3/DTS > stereo" + +msgid "Abort" +msgstr "Katkesta" + +msgid "About" +msgstr "Süsteemiinfo" + +msgid "About..." +msgstr "Süsteemiinfo" + +msgid "Accesspoint:" +msgstr "WiFi Ruuter:" + +msgid "Action on long powerbutton press" +msgstr "Toitenupu pikk vajutus" + +msgid "Action on short powerbutton press" +msgstr "Toitenupu lühike vajutus" + +msgid "Activate Picture in Picture" +msgstr "Ava pilt-pildis" + +msgid "Activate current configuration" +msgstr "Jõusta praegused seaded" + +msgid "Activate network settings" +msgstr "Aktiveeri võrguseaded" + +msgid "Activate the configured network settings." +msgstr "Jõusta määratud võrguseaded." + +msgid "Adapter settings" +msgstr "Võrgukaardi seaded" + +msgid "Add" +msgstr "Lisa" + +msgid "Add Bookmark" +msgstr "Lisa lemmik" + +msgid "Add a mark" +msgstr "Lisa marker" + +msgid "Add a nameserver entry" +msgstr "Lisa nimeserver" + +msgid "Add a new title" +msgstr "Lisa uus pealkiri" + +msgid "Add bookmark" +msgstr "Lisa uus tähis" + +msgid "Add directory to playlist" +msgstr "Lisa kataloog esitusloendisse" + +msgid "Add file to playlist" +msgstr "Lisa fail esitusloendisse" + +msgid "Add files to playlist" +msgstr "Lisa failid esitusloendisse" + +msgid "Add more details to the crash log" +msgstr "Loo üksikasjalikum vealogi" + +msgid "Add provider" +msgstr "Lisa levitaja" + +msgid "Add recording (enter recording duration)" +msgstr "Salvesta (sisesta salvestise kestvus)" + +msgid "Add recording (enter recording endtime)" +msgstr "Salvesta (sisesta salvestise lõpuaeg)" + +msgid "Add recording (indefinitely)" +msgstr "Salvesta (pidev salvestus)" + +msgid "Add recording (stop after current event)" +msgstr "Salvesta (lõpeta peale praegust saadet)" + +msgid "Add service" +msgstr "Lisa kanal" + +msgid "Add timer" +msgstr "Lisa taimer" + +msgid "Add title" +msgstr "Lisa pealkiri" + +msgid "Add to bouquet" +msgstr "Lisa lemmiknimekirja" + +msgid "Add to favourites" +msgstr "Lisa lemmikutesse" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "Kohanda 3D seadeid" + +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "Sea värvuse sätted nii, et kõik värvivarjundid oleks eristatavad ja paistaks nii küllastatuna kui võimalik. Kui oled tulemusega rahul, vajuta OK video peenhäälestuse sulgemiseks või kasuta numbrinuppe teiste testipiltide valikuks." + +msgid "Advanced" +msgstr "" + +msgid "Advanced options" +msgstr "Lisavalikud" + +msgid "Advanced restore" +msgstr "Laiendatud taastamine" + +msgid "Advanced software" +msgstr "Lisatarkvara" + +msgid "Advanced software plugin" +msgstr "Lisatarkvara" + +msgid "Advanced video enhancement setup" +msgstr "Pildiparanduse seaded" + +msgid "Advanced video setup" +msgstr "Täpsemad video seaded" + +msgid "After event" +msgstr "Pärast sündmust" + +msgid "Album" +msgstr "Album" + +msgid "Alignment of events" +msgstr "" + +msgid "Alignment of service names" +msgstr "" + +msgid "All" +msgstr "Kõik" + +msgid "All ages" +msgstr "Kõik vanused" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "Eralda" + +msgid "Allocate unused memory index" +msgstr "" + +msgid "Allow quit movieplayer with exit" +msgstr "Luba movieplayer-i sulgemine väljumisel" + +msgid "Allow subtitle language to equal audio language" +msgstr "Luba subtiitrid heli keele valiku järgi" + +msgid "Allow subtitles for hearing impaired" +msgstr "Luba vaegkuuljate subtiitrid" + +msgid "Alpha" +msgstr "Alfa" + +msgid "Alternative" +msgstr "Alternatiivne" + +msgid "Alternative numbering mode" +msgstr "Alternatiivne numeratsioon" + +msgid "Alternative services tuner priority" +msgstr "Tuuneri eelistus asenduskanalitel " + +msgid "Always ask" +msgstr "Küsi alati" + +msgid "Always hide infobar" +msgstr "" + +msgid "An empty filename is illegal." +msgstr "Tühi failinimi ei ole lubatud." + +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "Viga nimekirja allalaadimisel. Proovi uuesti." + +msgid "An unknown error occurred!" +msgstr "Tundmatu viga!" + +msgid "And will put your receiver in standby over " +msgstr "" + +msgid "Any activity" +msgstr "Iga tegevus" + +msgid "Arabic" +msgstr "Araabia" + +msgid "Are you sure to remove this entry?" +msgstr "" + +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"Kas tahad kindlasti võrgukaardi uuesti käivitada?\n" +"\n" + +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"Kas soovid kustutada\n" +"selle varukoopia:\n" + +msgid "Are you sure you want to exit this wizard?" +msgstr "Kas soovid väljuda seadistusabist?" + +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"Kas tahad kindlasti uuesti käivitada võrguliidest?\n" +"\n" + +#, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Kas tahad taastada\n" +"selle varukoopia?:\n" +"%s\n" +"Pärast taastamist vastuvõtja taaskäivitub!" + +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Kas tahad taastada selle varukoopia?\n" +"Pärast taastamist vastuvõtja taaskäivitub!" + +msgid "Artist" +msgstr "Esitaja" + +msgid "Arts/Culture" +msgstr "Kunsti-kultuurimagasin" + +msgid "Ask user" +msgstr "Küsi kasutajalt" + +msgid "Aspect ratio" +msgstr "Pildisuhe" + +msgid "Assigned CAIds:" +msgstr "Määratud CAId-d:" + +msgid "Assigned services/provider:" +msgstr "Määratud kanalid/levitajad:" + +msgid "At beginning" +msgstr "Alguses" + +msgid "At end" +msgstr "Lõpus" + +msgid "Audio" +msgstr "Heli" + +msgid "Audio PID" +msgstr "Audio PID" + +msgid "Audio language selection 1" +msgstr "Heli keele valik 1" + +msgid "Audio language selection 2" +msgstr "Heli keele valik 2" + +msgid "Audio language selection 3" +msgstr "Heli keele valik 3" + +msgid "Audio language selection 4" +msgstr "Heli keele valik 4" + +msgid "Audio options..." +msgstr "Heli valikud..." + +#, python-format +msgid "Audio track (%s) format" +msgstr "heliriba (%s) formaat" + +#, python-format +msgid "Audio track (%s) language" +msgstr "heliriba (%s) keel" + +msgid "Author: " +msgstr "Autor: " + +msgid "Authoring mode" +msgstr "DVD loomine" + +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Automaatne" + +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Automaatne kaadri lõikamine iga ? minuti (0=mitte kunagi)" + +msgid "Auto flesh" +msgstr "" + +msgid "Auto focus" +msgstr "" + +msgid "Auto focus commencing ..." +msgstr "" + +msgid "Auto language selection" +msgstr "Automaatsed keele valikud" + +msgid "Auto scart switching" +msgstr "Autom. SCART ümberlülitus" + +msgid "Automatic" +msgstr "Automaatne" + +msgid "Automatic scan" +msgstr "Automaatotsing" + +msgid "Automatically start timeshift after" +msgstr "" + +msgid "Automatically turn on external subtitles" +msgstr "Väliste subtiitrite automaatne sisselülitus" + +msgid "Available format variables" +msgstr "Võimalikud formati muutujad" + +msgid "B" +msgstr "B" + +msgid "BER" +msgstr "BER" + +msgid "BER:" +msgstr "BER:" + +msgid "Back" +msgstr "Tagasi" + +msgid "Background" +msgstr "Taust" + +msgid "Background color" +msgstr "Taustavärv" + +msgid "Background delete option" +msgstr "Taustal kustutamise valikud" + +msgid "Background delete speed" +msgstr "Taustal kustutamise kiirus" + +msgid "Backup completed." +msgstr "Varukoopia loomine valmis." + +msgid "Backup failed." +msgstr "Varukoopia loomine nurjus." + +msgid "Backup is running..." +msgstr "Varukoopia loomine..." + +msgid "Backup system settings" +msgstr "Loo varukoopia" + +msgid "Band" +msgstr "Sagedusala" + +msgid "Bandwidth" +msgstr "Ribalaius" + +msgid "Basque" +msgstr "Baski" + +msgid "Begin time" +msgstr "Algusaeg" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +msgid "Behavior of 0 key in PiP-mode" +msgstr "0-nupu funktsioon PiP-režiimis" + +msgid "Behavior when a movie is started" +msgstr "Tegevus taasesituse algamisel" + +msgid "Behavior when a movie is stopped" +msgstr "Tegevus taasesituse peatamisel" + +msgid "Behavior when a movie reaches the end" +msgstr "Tegevus taasesituse lõppemisel" + +msgid "Big PiP" +msgstr "" + +msgid "Bitrate:" +msgstr "Bitrate:" + +msgid "Black screen" +msgstr "Must ekraan" + +msgid "Black screen till locked" +msgstr "Must ekraan lukustumiseni" + +msgid "Block noise reduction" +msgstr "Blokeeri müra vähendamist" + +msgid "Blue boost" +msgstr "Sinine boost" + +msgid "Bookmarks" +msgstr "Lemmikud" + +msgid "Brightness" +msgstr "Heledus" + +msgid "Bulgarian" +msgstr "Bulgaaria" + +msgid "Burn DVD" +msgstr "Kirjuta DVD" + +#, python-format +msgid "Burn audio track (%s)" +msgstr "Kirjuta heliriba (%s)" + +msgid "Burn existing image to DVD" +msgstr "Salvesta olemasolev image DVD-le" + +msgid "Burn to DVD" +msgstr "Kirjuta DVD-le" + +msgid "Bus: " +msgstr "Siin: " + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "Vaikimisi näidatakse SNR väärtust dB-s (kui tuuner seda toetab). Siin valikus saab muuta SNR näidu protsentideks." + +msgid "C" +msgstr "C" + +msgid "C-Band" +msgstr "C-sagedusala" + +msgid "CH" +msgstr "" + +msgid "CI assignment" +msgstr "CI määrangud" + +msgid "CVBS" +msgstr "Komposiit (CVBS)" + +msgid "Cable" +msgstr "Kaabel (DVB-C)" + +msgid "Cable Scan" +msgstr "Kaabel TV otsing" + +msgid "Cache thumbnails" +msgstr "Salvesta pisipildid" + +msgid "Calculate" +msgstr "Arvuta" + +msgid "Calculate all positions" +msgstr "Arvuta kõik positsioonid" + +msgid "Calculation complete" +msgstr "Arvutamine on tehtud" + +msgid "Calibrate" +msgstr "Kalibreeri" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "" + +msgid "Cancel" +msgstr "Tühista" + +msgid "Cannot determine" +msgstr "Ei saa määrata" + +msgid "Cannot find any signal ..., aborting !" +msgstr "Mingit signaali8 ei leita..., katkestame!" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "Failide liigutamine prügikasti väliselt kettalt ei ole võimalik" + +msgid "Cannot move to trash can" +msgstr "Prügikasti saatmine ei ole võimalik" + +msgid "Capacity: " +msgstr "Maht: " + +msgid "Card" +msgstr "Kaart" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "DVB subtiitrid ekraani keskel" + +msgid "Center time-labels and remove date" +msgstr "" + +msgid "Change bouquets in quickzap" +msgstr "Lemmiknimekirjade vahetus noolenuppudega" + +msgid "Change pin code" +msgstr "Vaheta PIN" + +msgid "Change recording (duration)" +msgstr "Muuda salvestuse kestust" + +msgid "Change recording (endtime)" +msgstr "Muuda salvestuse lõpuaega" + +msgid "Change repeat and delay settings?" +msgstr "Muudad korduse ja viiteaja seadistusi?" + +msgid "Change service PIN" +msgstr "Muuda kanali PIN" + +msgid "Change service PINs" +msgstr "Muuda kanalite PIN-e" + +msgid "Change setup PIN" +msgstr "Muuda seadistus PIN-i" + +msgid "Change step size" +msgstr "Muuda sammu suurust" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "Muudatuste logi" + +msgid "Channel" +msgstr "Kanal" + +msgid "Channel list type" +msgstr "Kanalinimekirja stiil" + +msgid "Channel not in services list" +msgstr "Kanal pole teenuste nimekirjas" + +msgid "Channel selection" +msgstr "Kanalid" + +msgid "Channel:" +msgstr "Kanal:" + +msgid "Channellist menu" +msgstr "Kanalinimekirja menüü" + +msgid "Chap." +msgstr "Peatükk." + +msgid "Chapter" +msgstr "Peatükk" + +msgid "Chapter:" +msgstr "Peatükk:" + +msgid "Check" +msgstr "Kontrolli" + +msgid "Check the internet connection" +msgstr "Kontrolli internetiühendust" + +msgid "Check the internet connection again" +msgstr "Kontrolli uuesti internetiühendust" + +msgid "Checking filesystem..." +msgstr "Failisüsteemi kontroll..." + +msgid "Checking the internet connection" +msgstr "Internetiühenduse kontroll" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" + +msgid "Children/Youth" +msgstr "" + +msgid "Choose which tuner to configure." +msgstr "Vali seadistamiseks tuuner." + +msgid "Circular left" +msgstr "Ringpolarisatsioon vasak" + +msgid "Circular right" +msgstr "Ringpolarisatsioon parem" + +msgid "Cleanup" +msgstr "Puhastus" + +msgid "Clear" +msgstr "" + +msgid "Clear before scan" +msgstr "Kustuta kanalid" + +msgid "Clear fixed" +msgstr "Eemalda püsiaadress" + +msgid "Clear log" +msgstr "Kustuta logi" + +msgid "Clear playlist" +msgstr "Tühjenda esitusloend" + +msgid "Close" +msgstr "Sulge" + +msgid "Close PiP on exit" +msgstr "Sulge PiP väljumisel" + +msgid "Close title selection" +msgstr "Sulge pealkirja valik" + +msgid "Code rate HP" +msgstr "Code rate HP" + +msgid "Code rate LP" +msgstr "Code rate LP" + +msgid "Coderate HP" +msgstr "Coderate HP" + +msgid "Coderate LP" +msgstr "Coderate LP" + +msgid "Collection name" +msgstr "Valiku nimi" + +msgid "Collection settings" +msgstr "Valiku seaded" + +msgid "Color format" +msgstr "Värvi vorming" + +msgid "Command execution..." +msgstr "Käskude täitmine" + +msgid "Command order" +msgstr "Käskude järjekord" + +msgid "Common Interface" +msgstr "CI liides" + +msgid "Common Interface assignment" +msgstr "CI määrangud" + +msgid "Communication" +msgstr "Suhtlus" + +msgid "Compact flash" +msgstr "Compact flash" + +msgid "Complete" +msgstr "Valmis" + +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "Täielik ( lubab audio radade miksimist )" + +msgid "Composition of the recording filenames" +msgstr "Salvestuse nimede komponeerimine" + +msgid "Configuration mode" +msgstr "Häälestamine" + +#, python-format +msgid "Configuration mode: %s" +msgstr "Häälestamine: %s" + +msgid "Configuration..." +msgstr "Seadistamine..." + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "" + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "" + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "Määra inforiba kuvamise aeg." + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "Määra, mitu minutit lõppenud saateid näidatakse veel saatekavas. Mugav juhul, kui soovid midagi teada saatest, mis on kohe lõppemas, on just lõppenud või mille algamine venib." + +msgid "Configure how recording filenames are constructed." +msgstr "Määra, millisel kujul salvestuste nimed luuakse." + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +msgid "Configure interface" +msgstr "Seadista liides" + +msgid "Configure nameservers" +msgstr "Seadista nimeserverid" + +msgid "Configure on which devices the background delete option should be used." +msgstr "Määra, millisel andmekandjal kasutatakse taustal kustutamise võimalust." + +msgid "Configure remote control type" +msgstr "Määra puldi tüüp" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "Määra selle LNB DiSEqC režiim." + +msgid "Configure the IP address." +msgstr "Määra IP aaddress." + +msgid "Configure the aspect ratio of the screen." +msgstr "Määra ekraani pildisuhe." + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "Määra käitumine filmi käsitsi peatamisel." + +msgid "Configure the behavior when movie playback is started." +msgstr "Määra käitumine filmi algamisel." + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "Määra käitumine taasesituse lõppemisel." + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "Määra teleteksti subtiitrite kontuuri paksus. Nii on tekst heledal taustal kergemini loetav." + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "Määra esipaneeli heleduse tase ooterežiimil." + +msgid "Configure the brightness level of the front panel display." +msgstr "Määra esipaneeli heleduse tase." + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "" + +msgid "Configure the color of the teletext subtitles." +msgstr "Määra teleteksti subtiitrite värv." + +msgid "Configure the contrast level of the front panel display." +msgstr "Määra esipaneeli heleduse tase." + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "" + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "" + +msgid "Configure the first audio language (highest priority)." +msgstr "Määra heli keele esimene eelistus." + +msgid "Configure the first subtitle language (highest priority)." +msgstr "Määra subtiitrite keele esimene eelistus." + +msgid "Configure the font size of the subtitles." +msgstr "Määra subtiitrite tähesuurus." + +msgid "Configure the fourth audio language." +msgstr "Määra heli keele neljas eelistus." + +msgid "Configure the fourth subtitle language." +msgstr "Määra subtiitrite keele neljas eelistus." + +msgid "Configure the function of a long press on the power button." +msgstr "Määra, mida toitenupu pikk vajutus teeb." + +msgid "Configure the function of a short press on the power button." +msgstr "Määra, mida toitenupu lühike vajutus teeb." + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "Määra, mida '0' nupp PIP- režiimis teeb." + +msgid "Configure the gateway." +msgstr "Seadista lüüs." + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "Määra üldine viiteag Dolby Digital heliga heliribadele." + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "Määra üldine viiteag stereo heliga heliribadele." + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "Määra kõvaketta ooterežiimi minek pärast teatud jõudeoleku aega." + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "Määra subtiitrite horisontaalne asetus." + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "Määra edasikerimise algkiirus. Edasikerimine algab selle kiirusega." + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "Määra tagasikerimise algkiirus. Tagasikerimine algab selle kiirusega." + +msgid "Configure the latitude of your location." +msgstr "Määra oma asukoha laiuskraad." + +msgid "Configure the longitude of your location." +msgstr "Määra oma asukoha pikkuskraad." + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "Määra väikseim kettaruum, mis peab olema vaba enne salvestuse algamist. Selle saavutamiseks kustutatakse vajadusel faile prügikastist." + +msgid "Configure the nameserver (DNS)." +msgstr "Seadista nimeserver (DNS)." + +msgid "Configure the netmask." +msgstr "Seadista võrgumask." + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "Määra päevade arv, pärast mida salvestised kustutatakse automaatselt prügikastist." + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "Määra päevade arv, pärast mida vana taimer kustutatakse automaatselt nimekirjast." + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "Määra võrguta dekodeerimise viiteaeg (ms)." + +msgid "Configure the possible fast forward speeds." +msgstr "Määra edasikerimise kiirused." + +msgid "Configure the possible rewind speeds." +msgstr "Määra edasikerimise kiirused." + +msgid "Configure the primary EPG language." +msgstr "Määra saatekava keele esimene eelistus." + +msgid "Configure the refresh rate of the screen." +msgstr "Määra ekraani värskendussagedus" + +msgid "Configure the screen resolution in PC output mode." +msgstr "Määra ekraanilahutus PC väljundi režiimis." + +msgid "Configure the second audio language." +msgstr "Määra heli keele teine eelistus." + +msgid "Configure the second subtitle language." +msgstr "Määra subtiitrite keele teine eelistus." + +msgid "Configure the secondary EPG language." +msgstr "Määra saatekava keele teine eelistus." + +msgid "Configure the sharpness of the video scaling." +msgstr "Määra pildi skaleerimise teravus." + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "Määra '1'/'3'-nuppude ülehüppe pikkus" + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "Määra '4'/'6'-nuppude ülehüppe pikkus." + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "Määra '7'/'9'-nuppude ülehüppe pikkus." + +msgid "Configure the slow motion speeds." +msgstr "Määra eglustuskiirused." + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "Määra taustal kustutamise kiirus. Madal kiirus mõjutab kõvaketta jõudlust vähem." + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "Määra subtiitrite viiteaeg ajastuse puudumisel." + +msgid "Configure the third audio language." +msgstr "Määra heli keele kolmas eelistus" + +msgid "Configure the third subtitle language." +msgstr "Määra subtiitrite keele kolmas eelistus." + +msgid "Configure the transparency of the OSD." +msgstr "Määra ekraanigraafika läbipaistvus." + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "Määra DVB subtiitrite tausta läbipaistvus." + +msgid "Configure the tuner mode." +msgstr "Määra tuuneri režiim." + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "Määra, kuidas tähistatakse salvestuste olek filmilistis." + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "Määra subtiitrite vertikaalne asukoht mõõdetuna ekraani alt servast." + +msgid "Configure the video output mode (or resolution)." +msgstr "Määra pildi väljundi režiim (või resolutsioon)" + +msgid "Configure the way in which the receiver changes channels." +msgstr "Määra viis, kuidas vastuvõtja vahetab kanaleid." + +msgid "Configure where completed timers show up in the timer list." +msgstr "Määra, kuidas aegunud taimereid taimerite nimekirjas näidatakse." + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "Luba teise inforiba näitamine (2 X OK). Seal võib leida käesoleva kanali kohta rohkem teavet." + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "Määra, kas mitmekanaline heli tuleks taandada stereoks." + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "Määra, kas mootori liikumisel näidatakse ikooni." + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "Määra seadistumenüü kuvamise tase. 'Täpsem' näitab kõiki võimalusi." + +msgid "Configure which color format should be used on the SCART output." +msgstr "Määra SCART väljundi poolt kasutatav värvisüsteem." + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "Määra, millist tuunerit eelistatakse, kui sama kanal on saadaval mitmel erinevat tüüpi tuuneril." + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "Määra, millist tuunerit eelistatakse, kui saadaval on rohkem kui üks tuuner. Valikul 'automaatne' annab süsteem eelistuse tuunerile, millel on kõige vähem kanaleid/satelliite." + +msgid "Configure your internal LAN" +msgstr "Seadista sisemine LAN võrk" + +msgid "Configure your network again" +msgstr "Seadista võrk uuesti" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "Seadista võrk ja vajuta otsingu alustamiseks OK" + +msgid "Configure your wireless LAN again" +msgstr "Seadista WiFi võrk uuesti" + +msgid "Configures which video output connector will be used." +msgstr "See valik määrab, millist ühenduspesa video väljund kasutab." + +msgid "Configuring" +msgstr "Seadistan" + +msgid "Conflicting timer" +msgstr "Vastuolud taimeris" + +msgid "Connect" +msgstr "Ãœhenda" + +msgid "Connect to a wireless network" +msgstr "Ãœhenda WiFi võrguga" + +msgid "Connected satellites" +msgstr "" + +msgid "Connected to" +msgstr "Ãœhendatud" + +msgid "Connected!" +msgstr "Ãœhendatud!" + +msgid "Constellation" +msgstr "Konstellatsioon" + +msgid "Content does not fit on DVD!" +msgstr "Sisu ei mahu DVD-le!" + +msgid "Continue" +msgstr "Jätka" + +msgid "Continue in background" +msgstr "Jätka taustal" + +msgid "Continue playback" +msgstr "Jätka taasesitust" + +msgid "Continue playing" +msgstr "Jätka taasesitust" + +msgid "Continues play (loop)" +msgstr "Lõputu esitus (loop)" + +msgid "Contrast" +msgstr "Kontrast" + +msgid "Convert ext3 filesystem to ext4" +msgstr "Teisenda ext3 > ext4" + +msgid "Convert ext3 to ext4" +msgstr "Teisenda ext3 > ext4" + +msgid "Converting ext3 to ext4..." +msgstr "Teisenda ext3 > ext4..." + +msgid "Copy" +msgstr "Kopeeri" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "Ei saa ühendust vastugvõtja .NFI-tarkvara serveriga:" + +msgid "Could not find installed channel list." +msgstr "Paigaldatud kanalinimekirja ei leitud." + +msgid "Could not load medium! No disc inserted?" +msgstr "Ei saa plaati avada! Plaati pole sisestatud?" + +msgid "Could not open Picture in Picture" +msgstr "PiP avamine ei õnnestunud" + +#, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "Taimerite konflikt %s. Salvestamine nurjus." + +#, python-format +msgid "Could not record due to invalid service %s" +msgstr "Kehtetu kanal %s. Salvestamine nurjus." + +msgid "Create DVD-ISO" +msgstr "Loo DVD-ISO" + +msgid "Create more detailed crash log" +msgstr "Loo üksikasjalikum vealogi" + +#, python-format +msgid "Creating directory %s failed." +msgstr "Kausta loomine %s nurjus." + +msgid "Creating filesystem" +msgstr "Failisüsteemi loomine" + +msgid "Creating partition" +msgstr "Partitsiooni loomine" + +msgid "Croatian" +msgstr "Horvaatia" + +msgid "Current CEC address" +msgstr "Praegune CEC aadress" + +msgid "Current device: " +msgstr "Praegune seade: " + +msgid "Current event EPG" +msgstr "Käesoleva saate kava" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +msgid "Current settings:" +msgstr "Hetke seaded:" + +msgid "Current transponder" +msgstr "Hetke transponder" + +msgid "Current value: " +msgstr "Praegune väärtus: " + +msgid "Current version:" +msgstr "Hetke versioon:" + +msgid "Currently installed image" +msgstr "Praegu paigaldatud tarkvara" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +msgid "Custom skip time for '1'/'3' buttons" +msgstr "'1'/'3'-nuppude hüppe kohandatud pikkus" + +msgid "Custom skip time for '4'/'6' buttons" +msgstr "'4'/'6'-nuppude hüppe kohandatud pikkus" + +msgid "Custom skip time for '7'/'9' buttons" +msgstr "'7'/'9'-nuppude hüppe kohandatud pikkus" + +msgid "Customize" +msgstr "Kohandamine" + +msgid "Customize channel list cursor behavior" +msgstr "" + +msgid "Cut" +msgstr "Lõika" + +msgid "Cutlist editor..." +msgstr "Määra lõikekohad" + +msgid "Czech" +msgstr "TÅ¡ehhi" + +msgid "D" +msgstr "D" + +msgid "DHCP" +msgstr "DHCP" + +msgid "DMM advanced" +msgstr "" + +msgid "DMM normal" +msgstr "" + +msgid "DUAL LAYER DVD" +msgstr "Kahekihiline DVD" + +msgid "DVB subtitle black transparency" +msgstr "DVB subtiitrite tausta läbipaistvus" + +msgid "DVB-C" +msgstr "DVB-C" + +msgid "DVB-C ANNEX C" +msgstr "DVB-C ANNEX C" + +msgid "DVB-S" +msgstr "DVB-S" + +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "DVB-T" + +msgid "DVB-T2" +msgstr "DVB-T2" + +msgid "DVD data format" +msgstr "DVD vorming" + +msgid "DVD file browser" +msgstr "DVD failibrauser" + +msgid "DVD media toolbox" +msgstr "DVD tööriistad" + +msgid "DVD player" +msgstr "DVD mängija" + +#, fuzzy +msgid "DVD titlelist" +msgstr "DVD nimekiri" + +msgid "Danish" +msgstr "Taani" + +msgid "Date" +msgstr "Kuupäev" + +msgid "Date/time input" +msgstr "Aeg/kuupäev" + +msgid "Deep standby" +msgstr "Sügav ooterežiim" + +msgid "Default" +msgstr "Vaikimisi" + +msgid "Default movie location" +msgstr "Salvestuste tavaasukoht" + +msgid "Default settings" +msgstr "Vaikeväärtused" + +msgid "Delay before key repeat starts:" +msgstr "Viiviteaeg enne võtme kordamist:" + +msgid "Delay for external subtitles" +msgstr "Väliste subtiitrite viide" + +msgid "Delete" +msgstr "Kustuta" + +msgid "Delete entry" +msgstr "Kustuta valik" + +msgid "Delete failed!" +msgstr "Kustutamine nurjus!" + +msgid "Delete file" +msgstr "Kustuta fail" + +msgid "Delete playlist entry" +msgstr "Kustuta esitusloendi kirje" + +msgid "Delete saved playlist" +msgstr "Kustuta salvestatud esitusloend" + +msgid "Delete timer" +msgstr "" + +msgid "Delete..." +msgstr "Kustuta..." + +msgid "Deleted" +msgstr "Kustutati" + +msgid "Deleted items" +msgstr "Prügikast" + +msgid "Depth" +msgstr "Sügavus" + +msgid "Descramble http streams" +msgstr "Dekodeeri http vood" + +msgid "Description" +msgstr "Kirjeldus" + +msgid "Deselect" +msgstr "Tühista valik" + +msgid "Details for plugin: " +msgstr "Laienduse üksikaskad: " + +msgid "Detected HDD:" +msgstr "Leitud kõvaketas:" + +msgid "Detected NIMs:" +msgstr "Leitud tuunerid:" + +msgid "Devicename:" +msgstr "Seadme nimi:" + +msgid "Devide" +msgstr "" + +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +msgid "DiSEqC mode" +msgstr "DiSEqC-olek" + +#, python-format +msgid "DiSEqC port %s: %s" +msgstr "DiSEqC port %s: %s" + +msgid "DiSEqC-tester settings" +msgstr "DiSEqC-testeri seaded" + +msgid "Dialing:" +msgstr "Valin numbrit:" + +msgid "Digital contour removal" +msgstr "Digitaalne kontuuri kõrvaldamine" + +msgid "Direct playback of linked titles without menu" +msgstr "Lingitud salvestuste kohene esitus ilma menüüta" + +msgid "Directory" +msgstr "Kataloog" + +#, python-format +msgid "Directory %s does not exist." +msgstr "Kataloogi %s ei eksisteeri." + +#, python-format +msgid "Directory %s nonexistent." +msgstr "" + +msgid "Directory browser" +msgstr "Kataloogi brauser" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "" + +#, fuzzy, python-format +msgid "Directory contains %s and %s." +msgstr "Kataloog sisaldab %d faili and %d alamkataloogi.\n" + +msgid "Disable" +msgstr "Keela" + +msgid "Disable Picture in Picture" +msgstr "Sulge pilt-pildis" + +msgid "Disable background scanning" +msgstr "Keela kanaliotsing taustal" + +msgid "Disable timer" +msgstr "" + +msgid "Disabled" +msgstr "Keelatud" + +msgid "Disconnect" +msgstr "Katkesta ühendus" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "Salvestistele tagatud kettaruum (GB)" + +msgid "Display 16:9 content as" +msgstr "Näita 16:9 materjal" + +msgid "Display 4:3 content as" +msgstr "Näita 4:3 materjal" + +msgid "Display >16:9 content as" +msgstr "Näita 16:9 materjal" + +msgid "Display and userinterface" +msgstr "Esipaneel ja kasutajaliides" + +msgid "Display message before playing next movie" +msgstr "Teavita enne järgmise filimi alustamist" + +msgid "Display setup" +msgstr "Esipaneeli seaded" + +msgid "Do not change" +msgstr "Ära muuda" + +msgid "Do not record" +msgstr "Ära salvesta" + +msgid "Do nothing" +msgstr "Ära tee midagi" + +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Kas soovid failisüsteemi kontrollida?\n" +"Selleks kulub palju aega!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" +"Kas teisendad failisüsteemi?\n" +"Seda ei saa tagasi pöörata!" + +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Kas kustutad %s?" + +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"Kas paigaldad laienduse\n" +"\"%s\"?" + +msgid "Do you really want to exit?" +msgstr "Kas tõesti soovid väljuda?" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" +"Kas vormindad andmekandja?\n" +"Kogu ketta sisu läheb kaduma!" + +#, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"Kas eemaldad\n" +"laienduse \"%s\"?" + +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Kas kustutad kataloogi %s kõvakettalt?" + +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Kas kustutad lemmiku %s?" + +msgid "Do you want this?" +msgstr "" + +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Kas soovid oma valikut DVD-le kirjutada?" + +msgid "Do you want to do a service scan?" +msgstr "Kas soovid kanaliotsingut teha?" + +msgid "Do you want to do another manual service scan?" +msgstr "Kas soovid uut käsiotsingut teha?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "Kas soovid image alla laadida %s ?" + +msgid "Do you want to install a channel list?" +msgstr "Kas paigaldad kanalinimekirja?" + +msgid "Do you want to install the package:\n" +msgstr "Kas paigaldad paketi:\n" + +msgid "Do you want to play DVD in drive?" +msgstr "Soovid panna DVD mängima?" + +msgid "Do you want to preview this DVD before burning?" +msgstr "Soovid plaadi eelvaadet ka, enne kirjutamise alustamist?" + +msgid "Do you want to reboot your receiver?" +msgstr "Kas taaskäivitad vastuvõtja?" + +msgid "Do you want to remove the package:\n" +msgstr "Kas kustutad paketi:\n" + +msgid "Do you want to restore your settings?" +msgstr "Kas soovid taastada oma seaded?" + +msgid "Do you want to resume this playback?" +msgstr "Kas soovid jätkata vaatamist katkestatud kohalt?" + +#, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Kas uuendad vastuvõtja %s?" + +msgid "Do you want to update your receiver?" +msgstr "Kas uuendad vastuvõtja tarkvara?" + +msgid "Do you want to upgrade the package:\n" +msgstr "Kas uuendad paketti:\n" + +msgid "Don't stop current event but disable coming events" +msgstr "Ära peata toimuvat salvestust, aga keela tulevad" + +#, fuzzy, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "Valmis - paigaldatud või uuendatud %d , %d veaga" +msgstr[1] "Valmis - paigaldatud või uuendatud %d , %d veaga" + +msgid "Download" +msgstr "Allalaadimine" + +#, python-format +msgid "Download %s from server" +msgstr "Laadi alla %s serverist" + +msgid "Download .NFI-files for USB-flasher" +msgstr "Allalaadimine .NFI-failid USB-le" + +msgid "Download plugins" +msgstr "Paigalda laiendusi" + +msgid "Downloadable new plugins" +msgstr "Allalaetavad uued laiendused" + +msgid "Downloadable plugins" +msgstr "Allalaetavad laiendused" + +msgid "Downloading" +msgstr "Laetakse alla" + +msgid "Downloading plugin information. Please wait..." +msgstr "Laeme alla laienduse infot. Palun oota." + +msgid "Dutch" +msgstr "Hollandi" + +msgid "Dynamic contrast" +msgstr "Dünaamiline kontrast" + +msgid "E" +msgstr "E" + +msgid "EPG" +msgstr "Saatekava" + +msgid "EPG language selection 1" +msgstr "EPG keele valik 1" + +msgid "EPG language selection 2" +msgstr "EPG keele valik 2" + +msgid "EPG selection" +msgstr "Saatekava" + +msgid "EPG settings" +msgstr "Saatekava seaded" + +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "VIGA - otsing nurjus (%s)!" + +msgid "East" +msgstr "Ida" + +msgid "East limit set" +msgstr "Eda piir on määratud" + +msgid "Edit" +msgstr "Muuda" + +msgid "Edit DNS" +msgstr "Muuda DNS" + +msgid "Edit bouquets list" +msgstr "Muuda valikute nimekirja" + +msgid "Edit chapters of current title" +msgstr "Muuda seda pealkirja" + +msgid "Edit services list" +msgstr "Muuda kanalite listi" + +msgid "Edit settings" +msgstr "Muuda seadeid" + +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "Muuda vastuvõtja nimeserveri seadeid.\n" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "Muuda vastuvõtja võrguseadeid.\n" + +msgid "Edit timer" +msgstr "" + +msgid "Edit title" +msgstr "Muuda pealkirja" + +msgid "Edit upgrade source url." +msgstr "Muuda uuenduste allika url." + +msgid "Education/Science/..." +msgstr "Haridus/teadus" + +msgid "Electronic Program Guide" +msgstr "EPG" + +msgid "Enable" +msgstr "Luba" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +msgid "Enable 5V for active antenna" +msgstr "Luba 5 V toide aktiivantennile" + +msgid "Enable EIT EPG" +msgstr "Luba EIT EPG" + +msgid "Enable MHW EPG" +msgstr "Luba MHW EPG" + +msgid "Enable Netmed EPG" +msgstr "Luba Netmed EPG" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "Luba ViaSat EPG" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +msgid "Enable bouquet selection in multi-EPG" +msgstr "Luba multiEPG-s lemmiknimekirjade valik" + +msgid "Enable freesat EPG" +msgstr "Luba freesat EPG" + +msgid "Enable multiple bouquets" +msgstr "Luba lemmiknimekirjad" + +msgid "Enable parental control" +msgstr "Luba lapselukk" + +msgid "Enable teletext caching" +msgstr "Luba teleteksti puhverdamine" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +msgid "Enabled" +msgstr "Kasutusel" + +msgid "Encrypted: " +msgstr "Kodeeritud: " + +msgid "Encryption" +msgstr "Kodeering" + +msgid "Encryption key" +msgstr "Kodeeringu võti" + +msgid "Encryption key type" +msgstr "Kodeeringu võti" + +msgid "Encryption:" +msgstr "Kodeering:" + +msgid "End time" +msgstr "Lõpetamise aeg" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +msgid "English" +msgstr "Inglise" + +msgid "Enigma2 skin selector" +msgstr "Enigma2 välimuse valik" + +msgid "Enter main menu..." +msgstr "Mine peamenüüsse" + +msgid "Enter pin code" +msgstr "Sisesta pin kood" + +msgid "Enter the service pin" +msgstr "Sisesta kood" + +msgid "Equal to" +msgstr "" + +msgid "Error" +msgstr "Viga" + +msgid "Error code" +msgstr "Veakood" + +msgid "Error executing plugin" +msgstr "Viga laienduse käivitamisel" + +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Viga: %s\n" +"Uuesti?" + +msgid "Estonian" +msgstr "Eesti" + +msgid "Ethernet network interface" +msgstr "Etherneti võrguliides" + +msgid "Event font size (relative to skin size)" +msgstr "Saate tähesuurus" + +msgid "Event view" +msgstr "Saateinfo" + +msgid "Event view menu" +msgstr "Saateinfo menüü" + +msgid "Everywhere" +msgstr "Igal pool" + +msgid "Exceeds dual layer medium!" +msgstr "Liiga suur kahekihilise ketta jaoks!" + +msgid "Execution finished!!" +msgstr "Käivitus lõppenud!!" + +msgid "Execution progress:" +msgstr "Käivituse progress:" + +msgid "Exif" +msgstr "Välju" + +msgid "Exit" +msgstr "Välju" + +msgid "Exit EPG" +msgstr "Sulge saatekava" + +msgid "Exit editor" +msgstr "Välju redaktorist" + +msgid "Exit input device selection." +msgstr "Välju sisendseadmete valikust." + +msgid "Exit media player?" +msgstr "" + +msgid "Exit mediaplayer" +msgstr "Sulge meediamängija" + +msgid "Exit movie list" +msgstr "Sulge filmilist" + +msgid "Exit movie player?" +msgstr "Sulged meediamängija?" + +msgid "Exit nameserver configuration" +msgstr "Välju nimeserverite seadistusest" + +msgid "Exit network interface list" +msgstr "Välju võrguliideste nimekirjast" + +msgid "Exit network wizard" +msgstr "Välju võrgu häälestusest" + +msgid "Exit the wizard" +msgstr "Välju juhendatud seadistusabist" + +msgid "Expert" +msgstr "Ekspert" + +msgid "Extend sleeptimer 15 minutes" +msgstr "" + +msgid "Extended Software" +msgstr "Laiendatud tarkvara" + +msgid "Extended Software Plugin" +msgstr "Laiendatud tarkvara" + +msgid "Extended network setup plugin..." +msgstr "Laiendatud võrguseaded" + +msgid "Extended setup..." +msgstr "Täpsemad seaded..." + +msgid "Extensions" +msgstr "Laiendused" + +msgid "Extensions management" +msgstr "Laienduste haldamine" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "Välise subtiitri värv" + +msgid "Extra motor options" +msgstr "" + +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "FTA" + +msgid "Factory reset" +msgstr "Algseadistus" + +msgid "Failed" +msgstr "Nurjus" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "/tmp/positionersetup.logi loomine nurjus: " + +#, python-format +msgid "Fan %d" +msgstr "Ventilaator %d" + +#, python-format +msgid "Fan %d PWM" +msgstr "Ventilaatori %d PWM" + +#, python-format +msgid "Fan %d voltage" +msgstr "Ventilaatori %d pinge" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +msgid "Fast" +msgstr "Kiire" + +msgid "Fast DiSEqC" +msgstr "Kiire DiSEqC" + +msgid "Fast Scan" +msgstr "Kiirotsing" + +msgid "Fast epoch" +msgstr "Kiire kerimine" + +msgid "Fast forward speeds" +msgstr "Edasikerimise kiirused" + +msgid "Favourites" +msgstr "Lemmikud" + +msgid "File appears to be busy.\n" +msgstr "Fail on hõivatud.\n" + +msgid "Filesystem check" +msgstr "Failisüsteemi kontroll" + +msgid "Final position at" +msgstr "" + +msgid "Final position at index" +msgstr "" + +msgid "Fine movement" +msgstr "Täppisliigutamine" + +msgid "Finetune" +msgstr "Peenhäälestus" + +msgid "Finished" +msgstr "Lõppenud" + +msgid "Finished configuring your network" +msgstr "Lõpetasin võrgu seadistamise" + +msgid "Finished restarting your network" +msgstr "Võrgu restart on tehtud" + +msgid "Finnish" +msgstr "Soome" + +msgid "Fixed" +msgstr "Määratud" + +msgid "Flash" +msgstr "Flash" + +msgid "Flashing failed" +msgstr "Flashimine nurjus" + +msgid "Following tasks will be done after you press OK!" +msgstr "Järgmised toimingud tehakse pärast OK vajutamist!" + +msgid "Format" +msgstr "Vorming" + +msgid "Forward volume keys" +msgstr "Kasuta helitugevuse nuppe" + +msgid "Frame size in full view" +msgstr "Kaadri suurus täisvaates" + +msgid "French" +msgstr "Prantsuse" + +msgid "Frequency" +msgstr "Sagedus" + +msgid "Frequency bands" +msgstr "Sagedusalad" + +msgid "Frequency scan step size(khz)" +msgstr "Sageduse otsingu samm (khz)" + +msgid "Frequency steps" +msgstr "Sageduse samm" + +msgid "Frequency:" +msgstr "" + +msgid "Fri" +msgstr "R" + +msgid "Friday" +msgstr "Reede" + +msgid "From :" +msgstr "" + +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Esipaneeli protsessori versioon: %d" + +msgid "Full transparency" +msgstr "Täiesti läbipaistev" + +msgid "Fulview resulution" +msgstr "" + +msgid "Function of OK button" +msgstr "'OK' nupu toime" + +msgid "Further Options" +msgstr "" + +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"Kas taaskäivitad kasutajaliidese\n" +"uue välimuse aktiveerimiseks?" + +msgid "Gateway" +msgstr "Lüüs" + +msgid "General AC3 delay" +msgstr "Ãœldine AC3 viide" + +msgid "General PCM delay" +msgstr "Ãœldine PCM viide" + +msgid "Genre" +msgstr "Žanr" + +msgid "German" +msgstr "Saksa" + +msgid "Get latest experimental image" +msgstr "Hangi viimane eksperimentaal tarkvara" + +msgid "Get latest release image" +msgstr "Leia uusim image" + +msgid "Getting plugin information. Please wait..." +msgstr "Saadakse laienduse infot. Oota." + +msgid "Go down the list" +msgstr "Liigu nimekirjas alla" + +msgid "Go to first movie or last item" +msgstr "Liigu esimesele nimetusele" + +msgid "Go to first movie or top of list" +msgstr "Liigu esimesele nimetusele või nimekirja tippu" + +msgid "Go to first service" +msgstr "Mine esimesele kanalile" + +msgid "Go to last service" +msgstr "Mine viimasele kanalile" + +msgid "Go to next event" +msgstr "Mine järgmisele saatele" + +msgid "Go to next page of service" +msgstr "Mine kanalinimekirja järgmisele lehele" + +msgid "Go to previous event" +msgstr "Mine eelmisele saatele" + +msgid "Go to previous page of service" +msgstr "Mine kanalinimekirja järgmisele lehele" + +msgid "Go up the list" +msgstr "Liigu nimekirjas üles" + +msgid "Goto" +msgstr "Mine" + +msgid "Goto 0" +msgstr "Goto 0" + +msgid "Goto :" +msgstr "Mine :" + +msgid "Goto X" +msgstr "Mine X" + +msgid "Goto index position" +msgstr "" + +msgid "Goto next day of events" +msgstr "" + +msgid "Goto next page of events" +msgstr "Liigu järgmisele saatekava lehele" + +msgid "Goto position" +msgstr "Mine kohale" + +msgid "Goto previous day of events" +msgstr "" + +msgid "Goto previous page of events" +msgstr "Liigu eelmisele saatekava lehele" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "" + +msgid "GraphMultiEpg Settings" +msgstr "Graafilise MultiEpg seaded" + +msgid "Graphical Multi EPG" +msgstr "Graafiline Multi EPG" + +msgid "Greek" +msgstr "Kreeka" + +msgid "Green boost" +msgstr "Roheline boost" + +msgid "Guard interval" +msgstr "" + +msgid "HD list" +msgstr "HD kanalid" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "Ooterežiim TV kaudu" + +msgid "Handle wakeup from TV" +msgstr "Käivitamine TV kaudu" + +msgid "Hard disk" +msgstr "Kõvaketas" + +msgid "Hard disk setup" +msgstr "Kõvaketta seaded" + +msgid "Hard disk standby after" +msgstr "Kõvaketta välja lülitamine peale" + +msgid "Harddisk" +msgstr "Kõvaketas" + +msgid "Hardware: " +msgstr "Vastuvõtja: " + +msgid "Hebrew" +msgstr "Heebrea" + +msgid "Helps setting up your dish" +msgstr "" + +msgid "Hidden network" +msgstr "Varjatud võrk" + +msgid "Hide CI messages" +msgstr "Peida CI teated" + +msgid "Hide channel list in radio mode" +msgstr "Peida raadiorežiimis kanalinimekiri" + +msgid "Hide known extensions" +msgstr "" + +msgid "Hide number markers" +msgstr "Peida nummerdatud markerid" + +msgid "Hide player" +msgstr "Peida mängija" + +msgid "Hide zap errors" +msgstr "Peida veateated kanalivahetusel" + +msgid "Hierarchy info" +msgstr "Hierarhia teave" + +msgid "Hierarchy information" +msgstr "Hierarhia teave" + +msgid "High bitrate support" +msgstr "Kõrge bitrate tugi" + +msgid "Hold screen" +msgstr "Hoia pilti" + +msgid "Hold till locked" +msgstr "Hoia pilti lukustamiseni" + +msgid "Home" +msgstr "Kodu" + +msgid "Horizontal" +msgstr "Horisontaal" + +msgid "Horizontal turning speed" +msgstr "Horisontaalne keeramise kiirus" + +msgid "How many minutes do you want to record?" +msgstr "Mitu minutit soovid salvestada?" + +msgid "Hue" +msgstr "Värvitoon" + +msgid "Hungarian" +msgstr "Ungari" + +msgid "IP address" +msgstr "IP aadress" + +msgid "ISO file is too large for this filesystem!" +msgstr "ISO fail on liiga suur failisüsteemile!" + +msgid "ISO path" +msgstr "ISO kataloog" + +msgid "Icons" +msgstr "Ikoonid" + +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"SCART-ühenduses on probleem.\n" +"Vajuta OK, et minna tagasi." + +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"Kui TV-s on heleduse või kontrastsuse parandusfunktsioon, lülita see välja. Kui on olemas midagi nimega \"dynamic\", kasuta selle standardseadistust. Sea taustvalgustus sobivaks.Vähenda TV kontrastsust nii palju kui võimalik.\n" +"Nüüd vähenda TV heledust miinimumini nii, et kaks kõige alumist halli varjundit jäävad eristatavaks. \n" +"Ära hooli praegu heledatest varjunditest, need seame paika järgmisena. \n" +"Kui oled tulemusega rahul, vajuta OK." + +msgid "Image: " +msgstr "Tarkvara: " + +msgid "Immediate shutdown" +msgstr "Kohene väljalülitus" + +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "Sunnitud kanalivahetus. Taimeri salvestus just käivitus ja vajas seda tuunerit!\n" + +msgid "In progress" +msgstr "Toimumas" + +msgid "Inactivity Sleeptimer" +msgstr "" + +msgid "Include AIT in http streams" +msgstr "Kaasa AIT http voogudesse" + +msgid "Include ECM in http streams" +msgstr "Kaasa ECM http voogudesse" + +msgid "Include EIT in http streams" +msgstr "Kaasa EIT http voogudesse" + +msgid "Incorrect type service for PiP!" +msgstr "" + +msgid "Increased voltage" +msgstr "Suurendatud pinge" + +msgid "Index" +msgstr "Indeks" + +msgid "Index allocated:" +msgstr "" + +msgid "Info" +msgstr "Info" + +msgid "Info bar" +msgstr "Inforiba" + +msgid "Info bar timeout" +msgstr "Inforiba kuvamise aeg" + +msgid "Infobar frontend data source" +msgstr "" + +msgid "Information" +msgstr "Info" + +msgid "Init" +msgstr "" + +msgid "Initial fast forward speed" +msgstr "Edasikerimise algkiirus" + +msgid "Initial location in new timers" +msgstr "Algne asukoht uutes taimerites" + +msgid "Initial lock ratio" +msgstr "" + +msgid "Initial rewind speed" +msgstr "Tagasikerimise algkiirus" + +msgid "Initial signal quality" +msgstr "" + +msgid "Initial signal quality:" +msgstr "" + +msgid "Initialization" +msgstr "Vorminda" + +msgid "Initialize" +msgstr "Vorminda" + +msgid "Initializing storage device..." +msgstr "Andmekandja vormindamine..." + +msgid "Input" +msgstr "Sisend" + +msgid "Input device setup" +msgstr "Sisendseadmete seadistamine" + +msgid "Input devices" +msgstr "Sisendseadmed" + +msgid "Install" +msgstr "Paigalda" + +msgid "Install a new image with a USB stick" +msgstr "Seadista uus image USB pulgalt" + +msgid "Install a new image with your web browser" +msgstr "Paigalda uus image oma veebisirvijaga" + +msgid "Install channel list" +msgstr "Paigalda kanalinimekiri" + +msgid "Install extensions" +msgstr "" + +msgid "Install extensions." +msgstr "Paigalda laiendused." + +msgid "Install local extension" +msgstr "Paigalda kohalik laiendus" + +msgid "Install picons on" +msgstr "Paigalda kanalilogod" + +msgid "Install softcam" +msgstr "Paigalda EMU" + +msgid "Installation has completed." +msgstr "Paigaldamine lõppenud." + +msgid "Installation or removal has completed." +msgstr "Paigaldamine või kustutamine on valmis." + +msgid "Installing" +msgstr "Paigaldamine" + +msgid "Installing software..." +msgstr "Tarkvara paigaldamine..." + +msgid "Instant recording location" +msgstr "Kohese salvestuse asukoht" + +msgid "Instant recording..." +msgstr "Kohene salvestus..." + +msgid "Interface: " +msgstr "Liides: " + +msgid "Intermediate" +msgstr "Keskmine" + +msgid "Internal flash" +msgstr "Sisemine flash-mälu" + +msgid "Internal hdd only" +msgstr "Ainult sisesel kõvakettal" + +msgid "Interval between keys when repeating:" +msgstr "Võtme kordamise vahemik:" + +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Valisid mittetöötava kausta: %s" + +msgid "Invalid location" +msgstr "Kehtetu asukoht" + +msgid "Invalid transponder data" +msgstr "" + +msgid "Inversion" +msgstr "Inversioon" + +msgid "Invert" +msgstr "Vastupidi" + +msgid "Ipkg" +msgstr "Ipkg" + +msgid "Is this setting ok?" +msgstr "Kasutad neid seadeid?" + +msgid "Is this video mode ok?" +msgstr "Kas see videoseadistus sobib?" + +msgid "Italian" +msgstr "Itaalia" + +msgid "Items per page " +msgstr "Kirjet lehel" + +msgid "Items per page for list screen" +msgstr "" + +msgid "Job overview" +msgstr "Töövaade" + +msgid "Jump to beginning of list" +msgstr "Hüppa loendi algusesse" + +msgid "Jump to end of list" +msgstr "Mine loendi lõppu" + +msgid "Jump to next marked position" +msgstr "Mine järgmise märgini" + +msgid "Jump to previous marked position" +msgstr "Mine eelmise märgini" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +msgid "Just scale" +msgstr "Alati kogu ekraan" + +msgid "Keep service" +msgstr "" + +msgid "Kernel version: " +msgstr "Kernel: " + +msgid "Keyboard" +msgstr "Klaviatuur" + +msgid "Keyboard map" +msgstr "Klaviatuur" + +msgid "Keyboard setup" +msgstr "Klaviatuuriseaded" + +msgid "LAN adapter" +msgstr "Kohtvõrgu adapter" + +msgid "LAN connection" +msgstr "LAN ühendus" + +msgid "LNB" +msgstr "LNB" + +msgid "Language" +msgstr "Keel" + +msgid "Language selection" +msgstr "Keele valik" + +msgid "Last config" +msgstr "Viimane seadistus" + +msgid "Last speed" +msgstr "Eelmine kiirus" + +msgid "Last upgrade: " +msgstr "Uuendatud: " + +msgid "Latest Commits" +msgstr "" + +msgid "Latitude" +msgstr "Laiuskraad" + +msgid "Latvian" +msgstr "Läti" + +msgid "Leave DVD player?" +msgstr "Väljud DVD-mängijast?" + +msgid "Left" +msgstr "Vasak" + +msgid "Left from servicename" +msgstr "Kanalinimest vasakul pool" + +msgid "Leisure hobbies" +msgstr "" + +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Letterbox" + +msgid "Letterbox zoom" +msgstr "" + +msgid "Limit character set for recording filenames" +msgstr "Keela teatud tähemärkide kasutamine failinimedes" + +msgid "Limit east" +msgstr "Ida piir" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "Kasuta failinimedes ainult (7 bit) ascii tähemärke. See tagab failide ühilduvuse ka operatsioonisüsteemidega, mis ei toeta kõiki tähemärke." + +msgid "Limit west" +msgstr "Lääne piir" + +msgid "Limits cancelled" +msgstr "Piirid tühistati" + +msgid "Limits enabled" +msgstr "Piirid on kasutuses" + +msgid "Limits off" +msgstr "Piirid pole kasutusel" + +msgid "Limits on" +msgstr "Piirid kasutusel" + +msgid "Link quality:" +msgstr "Lingi kvaliteet:" + +msgid "Link:" +msgstr "Link:" + +msgid "Linked titles with a DVD menu" +msgstr "DVD menüüga seotud pealkirjad" + +msgid "List EPG functions..." +msgstr "EPG vaadete nimekiri..." + +msgid "List available networks" +msgstr "Näita leitud võrgud" + +msgid "List mode" +msgstr "" + +msgid "List of storage devices" +msgstr "Andmekandjate loetelu" + +msgid "List type" +msgstr "" + +#, fuzzy, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "Versioon %d, leiti %d kanalit" +msgstr[1] "Versioon %d, leiti %d kanalit" + +msgid "Listen to the radio..." +msgstr "Kuula raadiot..." + +msgid "Lists reloaded!" +msgstr "" + +msgid "Lithuanian" +msgstr "Leedu" + +msgid "Load" +msgstr "Laadi" + +msgid "Load Length of Movies in Movielist" +msgstr "" + +msgid "Load length of movies in movie list" +msgstr "Näita filmi pikkust " + +msgid "Load playlist" +msgstr "Lae esitusloend" + +msgid "Local network" +msgstr "Kohalik võrk" + +msgid "Location" +msgstr "Asukoht" + +msgid "Location for instant recordings" +msgstr "Kohese salvestuse asukoht" + +msgid "Lock ratio" +msgstr "Lukusta pildisuhe" + +msgid "Lock:" +msgstr "Lukus:" + +msgid "Log results to harddisk" +msgstr "Logi tulemused kõvakettale" + +msgid "Long filenames" +msgstr "Pikad failinimed" + +msgid "Long key press" +msgstr "Pikk nupuvajutus" + +msgid "Longitude" +msgstr "Pikkuskraad" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "Kuksemburgi" + +msgid "MMC card" +msgstr "MMC kaart" + +msgid "MORE" +msgstr "VEEL" + +msgid "Main menu" +msgstr "Peamenüü" + +msgid "Maintain old EPG data for" +msgstr "Vana EPG hoidmise aeg" + +msgid "Make this mark an 'in' point" +msgstr "Tee see märk alguspunktiks" + +msgid "Make this mark an 'out' point" +msgstr "Tee see märk lõpupunktiks" + +msgid "Make this mark just a mark" +msgstr "Tee see märk lihtsalt märgiks" + +msgid "Manage extensions" +msgstr "Halda laiendusi" + +msgid "Manage your receiver's software" +msgstr "Uuenda vastuvõtja tarkvara" + +msgid "Manual" +msgstr "" + +msgid "Manual Scan" +msgstr "Käsiotsing" + +msgid "Manual configuration" +msgstr "Käsitsi seadistamine" + +msgid "Manual scan" +msgstr "Käsiotsing" + +msgid "Manual transponder" +msgstr "Käsitsi sisestatud transponder" + +msgid "Manufacturer" +msgstr "Tootja" + +msgid "Margin after recording (minutes)" +msgstr "Salvestuse lõppu lisatakse (minutit)" + +msgid "Margin before recording (minutes)" +msgstr "Salvestuse algusesse lisatakse (minutit)" + +msgid "Max memory positions" +msgstr "" + +msgid "Max. bitrate: " +msgstr "Max. bitikiirus: " + +msgid "Media player" +msgstr "Meediamängija" + +msgid "Media scanner" +msgstr "Meediaotsija" + +msgid "Medium is not a writeable DVD!" +msgstr "DVD ketas ei ole kirjutatav!" + +msgid "Medium is not empty!" +msgstr "Ketas ei ole tühi!" + +msgid "Memory" +msgstr "Mälu" + +msgid "Memory index" +msgstr "Mälu indeks" + +msgid "Menu" +msgstr "Menüü" + +msgid "Message" +msgstr "Teade" + +msgid "Message..." +msgstr "Teade" + +#, python-format +msgid "Minimum age %d years" +msgstr "Väikseim vanus %d aastat" + +#, fuzzy +msgid "Minimum send interval" +msgstr "Väikseim vanus %d aastat" + +msgid "Missing " +msgstr "Puudub" + +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Režiim" + +msgctxt "Video output mode" +msgid "Mode" +msgstr "Režiim" + +msgid "Model: " +msgstr "Tüüp: " + +msgid "Modulation" +msgstr "Modulatsioon" + +msgid "Modulator" +msgstr "Modulaator" + +msgid "Mon" +msgstr "E" + +msgid "Mon-Fri" +msgstr "E-R" + +msgid "Monday" +msgstr "Esmaspäev" + +msgid "Mosquito noise reduction" +msgstr "Müra tasandus" + +msgid "Mount" +msgstr "" + +msgid "Move" +msgstr "Liiguta" + +msgid "Move PiP to main picture" +msgstr "Mine PiP peapildile" + +msgid "Move Picture in Picture" +msgstr "Liiguta PIP-pilt" + +msgid "Move east" +msgstr "Liiguta itta" + +msgid "Move to other directory" +msgstr "Liigu teise kataloogi" + +msgid "Move to position X" +msgstr "Liigu asukohta X" + +msgid "Move west" +msgstr "Liiguta läände" + +msgid "Moved to position 0" +msgstr "Liigu asukohta 0" + +msgid "Moved to position at index" +msgstr "" + +msgid "Movement" +msgstr "Liikumine" + +msgid "Movie List Configuration" +msgstr "" + +msgid "Movie Selection" +msgstr "" + +msgid "Movie list configuration" +msgstr "Filmilisti seaded" + +msgid "Movie location" +msgstr "Salvestiste asukoht" + +msgid "Movie selection" +msgstr "Filmi valik" + +msgid "Movie/Drama" +msgstr "" + +msgid "Movielist menu" +msgstr "Salvestiste menüü" + +msgid "Moving" +msgstr "Liikuv" + +msgid "Moving east ..." +msgstr "Keerab itta ..." + +msgid "Moving to position" +msgstr "Liigub asukohta" + +msgid "Moving west ..." +msgstr "Keerab läände ..." + +msgid "Multi EPG" +msgstr "Kanalite saatekava" + +msgid "Multi-EPG bouquet selection" +msgstr "Lemmiknimekirjade valik kanalite saatekavas" + +msgid "Multimedia" +msgstr "Multimeedia" + +msgid "Multiple service support" +msgstr "Mitme programmi tugi" + +msgid "Multiplex" +msgstr "Multiplex" + +msgid "Multisat" +msgstr "Mitu satelliiti" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "" + +msgid "Mute" +msgstr "Vaikus" + +msgid "N/A" +msgstr "Ei ole kasutusel" + +msgid "NEXT" +msgstr "JÄRGMINE" + +msgid "NFI image flashing" +msgstr "NFI tarkvara paigaldamine" + +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "NFI tarkvara on paigaldatud. Taaskäivitamiseks vajuta kollast nuppu !" + +msgid "NIM" +msgstr "NIM" + +msgid "NOW" +msgstr "PRAEGU" + +msgid "NTSC" +msgstr "NTSC" + +msgid "Name" +msgstr "Nimi" + +msgid "Nameserver" +msgstr "Nimeserver" + +#, python-format +msgid "Nameserver %d" +msgstr "Nimeserver %d" + +msgid "Nameserver settings" +msgstr "Nimeserveri seaded" + +msgid "Nameserver setup" +msgstr "Nimeserveri seaded" + +msgid "Namespace" +msgstr "Nimeruum" + +msgid "Netmask" +msgstr "Võrgumask" + +msgid "Network" +msgstr "Võrk" + +msgid "Network ID" +msgstr "Võrgu ID" + +msgid "Network configuration..." +msgstr "Võrgu seadistamine..." + +msgid "Network mount" +msgstr "Võrgu haakepunkt" + +#, python-format +msgid "Network mount %s" +msgstr "Võrgu haakepunkt %s" + +msgid "Network name (SSID)" +msgstr "Võrgu nimi (SSID)" + +msgid "Network scan" +msgstr "Võrguotsing" + +msgid "Network setup" +msgstr "Võrgu häälestamine" + +msgid "Network test" +msgstr "Võrgu ühenduse test" + +msgid "Network test..." +msgstr "Võrgu ühenduse test" + +msgid "Network test: " +msgstr "Võrgu test: " + +msgid "Network wizard" +msgstr "Võrgu abimees" + +msgid "Network:" +msgstr "Võrk:" + +msgid "New" +msgstr "Uus" + +msgid "New PIN" +msgstr "Uus PIN" + +msgid "New version:" +msgstr "Uus versioon:" + +msgid "News Current Affairs" +msgstr "" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "Järgmine" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "Järgmine" + +msgid "No" +msgstr "Ei" + +msgid "No (supported) DVDROM found!" +msgstr "Ei leitud (toetatud) DVDROM-i!" + +msgid "No Connection" +msgstr "Pole ühendust" + +msgid "No HDD found or HDD not initialized!" +msgstr "Kõvaketast ei leitud või seda pole formaaditud!" + +msgid "No backup needed" +msgstr "Varukoopiat ei vajata" + +msgid "No cable tuner found!" +msgstr "Kaabel-tv tuunerit ei leitud!" + +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Pole andmeid transponderil!\n" +"(Timeout PAT lugemisel)" + +msgid "No delay" +msgstr "Viiteaeg puudub" + +msgid "No description available." +msgstr "Saatetutvustust ei ole." + +msgid "No details for this image file" +msgstr "Pole täpsemat informatsiooni sellele tarkvarale" + +msgid "No displayable files on this medium found!" +msgstr "Sellel andmekandjal pole kuvatavaid faile!" + +msgid "No event info found, recording indefinitely." +msgstr "Saatel pole teada lõppaeg. Salvestatakse pidevalt." + +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "Kiire kerimine pole veel võimalik, aga saad kasutad numbrinuppe edasi/tagasi hüppamiseks!" + +msgid "No free index available" +msgstr "" + +msgid "No free tuner!" +msgstr "Pole vaba tuunerit!" + +msgid "No network connection available." +msgstr "Võrgu ühendust pole saadaval." + +msgid "No networks found" +msgstr "Võrke ei leidnud" + +msgid "No new plugins found" +msgstr "" + +msgid "No positioner capable frontend found." +msgstr "Ei leitud positsioneeri toetavat tuunerit." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "" + +msgid "No services/providers selected" +msgstr "Kanalit/levitajat pole valitud" + +msgid "No standby" +msgstr "Ooterežiimita" + +msgid "No suitable sat tuner found!" +msgstr "" + +msgid "No tags are set on these movies." +msgstr "Salvestisele pole märksõnu määratud." + +msgid "No timeout" +msgstr "Vaheajata" + +msgid "No to all" +msgstr "EI kõigile" + +msgid "No transparency" +msgstr "Läbipaistmatu" + +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "Ãœkski tuuner pole seadistatud DISEqC-positsioneeri kasutama!" + +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Tuuner määramata!\n" +"Määra tuuner enne kanaliotsingu alustamist." + +msgid "No updates available" +msgstr "Uuendusi ei ole" + +msgid "No updates available. Please try again later." +msgstr "Uuendusi ei ole. Proovi hiljem uuesti." + +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Lapseluku koodi ei leitud!\n" +"Kas soovid määrata koodi?\n" +"Kui vastad 'Ei', kanalit ei kaitsta koodiga!" + +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Lapseluku koodi ei leitud!\n" +"Kas soovid määrata koodi?\n" +"Kui vastad 'Ei', kanalit ei kaitsta koodiga!" + +msgid "No wireless networks found! Searching..." +msgstr "WiFi võrke ei leitud! Otsing..." + +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"Ei leidnud töötavat kohaliku võrgukaarti.\n" +"Palun kontrolli kas võrgukaabel on ühendatud ja kas võrk on seadistatud õieti." + +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"Ei leidnud töötavat WiFi seadet.\n" +"Palun kontrolli, kas seadmega ühilduv WLAN USB pulk on ühendatud ja kas võrk on seadistatud õigesti." + +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"Ei leidnud töötavat WiFi seadet.\n" +" Palun kontrolli, kas tuuneriga ühilduv seade on ühendatud ja kas kohalik võrk töötab." + +msgid "No, but restart from begin" +msgstr "Ei, alusta uuesti algusest" + +msgid "No, do nothing." +msgstr "Ei, ära tee midagi." + +msgid "No, just start my receiver" +msgstr "Ei, käivita vastuvõtja" + +msgid "No, never" +msgstr "Ei, mitte kunagi" + +msgid "None" +msgstr "Pole" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Ebalineaarne" + +msgid "Normal mode" +msgstr "Tavaline" + +msgid "North" +msgstr "Põhi" + +msgid "Norwegian" +msgstr "Norra" + +msgid "Not associated" +msgstr "Määramata" + +msgid "Not configured" +msgstr "" + +#, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Kõvakettal pole piisavalt ruumi. Kustuta ebavajalik ja proovi uuesti. (%d MB vaja, %d MB vaba)" + +msgid "Nothing connected" +msgstr "" + +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Pole midagi otsida!\n" +"Määra tuuneri seaded enne kanalite otsingu alustamist." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "Hetkel" + +msgid "Now playing" +msgstr "Praegu mängib" + +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Nüüd suurenda kontrastsuse seadmise abil pildi tausta heledust nii palju kui võimalik, aga veendu, et sa näed siiski erinevust kahe kõige heledama varjundi vahel. Kui see on tehtud, vajuta OK." + +msgid "OK" +msgstr "OK" + +msgid "OK, guide me through the upgrade process" +msgstr "Jah, õpeta uuendamisel" + +msgid "ONID" +msgstr "ONID" + +msgid "OSD name request" +msgstr "OSD nime päring" + +msgid "OSD settings" +msgstr "Ekraanigraafika seaded" + +msgid "OSD transparency" +msgstr "Ekraanigraafika läbipaistvus" + +msgid "Off" +msgstr "Väljas" + +msgid "Offline decode delay (ms)" +msgstr "Võrguta dekodeerimise viide (ms)" + +msgid "Ok" +msgstr "Ok" + +msgid "On" +msgstr "Sees" + +msgid "On end of movie" +msgstr "Filmi lõpus" + +msgid "On end of movie (as menu)" +msgstr "" + +msgid "One" +msgstr "Ãœks" + +msgid "Only extensions." +msgstr "Ainult laiendused." + +msgid "Only free scan" +msgstr "Ainult vabade otsimine" + +msgid "Open service list" +msgstr "Ava kanalinimekiri" + +msgid "Open the movie list" +msgstr "Ava filmilist" + +msgid "Orbital position" +msgstr "Orbitaalpositioon" + +msgid "Original" +msgstr "Algupärane" + +msgid "Other" +msgstr "Miski muu" + +msgid "Output" +msgstr "Väljund" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "Kas tarkvara uuendamisel kirjutada üle konfiguratsioonifailid?" + +msgid "Overwrite configuration files?" +msgstr "Seadistusfailid kirjutatakse üle?" + +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "PCR PID" + +msgid "PIDs" +msgstr "PIDd" + +msgid "PIN code needed" +msgstr "Vajalik on pin-kood" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "PMT PID" + +msgid "Package list update" +msgstr "Pakettide nimekirja uuendus" + +msgid "Packet management" +msgstr "Pakkide haldamine" + +msgid "Packet manager" +msgstr "Paketi haldur" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +msgid "Pan&scan" +msgstr "Pan&Scan" + +msgid "Parent directory" +msgstr "Ãœlemkataloog" + +msgid "Parental control" +msgstr "Lapselukk" + +msgid "Parental control services editor" +msgstr "Lapseluku kanali muutmine" + +msgid "Parental control setup" +msgstr "Lapseluku seaded" + +msgid "Parental control type" +msgstr "Lapseluku tüüp" + +msgid "Password" +msgstr "Salasõna" + +msgid "Pause" +msgstr "Paus" + +msgid "Pause movie at end" +msgstr "Pane film lõpus seisma" + +msgid "Pause playback" +msgstr "Peata taasesitus" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "Protsent vasakul" + +msgid "Percentage right" +msgstr "Protsent paremal" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "Kustutad lõplikult kõik failid prügikastist?" + +msgid "Permanently remove all deleted items" +msgstr "Kustuta lõplikult kõik failid" + +msgid "Persian" +msgstr "Pärsia" + +msgid "Phone number" +msgstr "Telefoni number" + +msgid "PiP setup" +msgstr "PiP seaded" + +msgid "Picon" +msgstr "Kanalilogo" + +msgid "Picon and service name" +msgstr "Kanalilogo ja nimi" + +msgid "Picture player" +msgstr "Pildimängija" + +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Pillarbox" + +msgid "Pilot" +msgstr "Pilot" + +msgid "Play" +msgstr "Taasesita" + +msgid "Play DVD" +msgstr "Taasesita" + +msgid "Play audio in background" +msgstr "Mängi taustal heli" + +msgid "Play audio-CD..." +msgstr "Mängi heliplaat..." + +msgid "Play back media files" +msgstr "Esita meediafaile" + +msgid "Play entry" +msgstr "Esita" + +msgid "Play from next mark or playlist entry" +msgstr "Esita alates järgmisest märgist või esitusloendi kirjest" + +msgid "Play from previous mark or playlist entry" +msgstr "Esita alates eelmisest märgist või esitusloendi kirjest" + +msgid "Play music..." +msgstr "Mängi muusikat..." + +msgid "Play next" +msgstr "Esita järgmine" + +msgid "Play next (return to movie list)" +msgstr "Esita järgmine (naase filmilisti)" + +msgid "Play next (return to previous service)" +msgstr "Esita järgmine (naase vaadatud kanalile)" + +msgid "Play previous" +msgstr "Esita eelmine" + +msgid "Play recorded movies..." +msgstr "Näita salvestisi" + +msgid "Please add titles to the compilation." +msgstr "Palun lisa pealkirjad kogumikku." + +msgid "Please change recording endtime" +msgstr "Muuda salvestamise lõpuaega" + +msgid "Please check your network settings!" +msgstr "Palun kontrolli oma võrguseadeid!" + +msgid "Please choose an extension..." +msgstr "Vali laiendus" + +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Kontrolli ja täida nimeserveri nõutavad väljad.\n" +"Kui oled valmis, vajuta jätkamiseks OK." + +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Täida interneti ühenduse seadistamiseks nõutavad väljad.\n" +"Kui oled valmis, vajuta jätkamiseks OK." + +msgid "Please connect your receiver to the internet" +msgstr "Ãœhenda vastuvõtja internetti" + +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Palun ära muuda midagi seni, kuni oled kindel selles, mida teed!" + +msgid "Please enter a name for the new bouquet" +msgstr "Sisesta uue nimekirja nimi" + +msgid "Please enter a name for the new marker" +msgstr "Sisesta uue markeri nimi" + +msgid "Please enter a new filename" +msgstr "Sisesta uus faili nimi" + +msgid "Please enter filename (empty = use current date)" +msgstr "Sisesta faili nimi (tühi = tänane kuupäev)" + +msgid "Please enter name of the new directory" +msgstr "Palun sisesta uue kausta nimi" + +msgid "Please enter new name:" +msgstr "Sisesta uus nimi:" + +msgid "Please enter the correct pin code" +msgstr "Sisesta õige kood" + +msgid "Please enter the old PIN code" +msgstr "Sisesta vana PIN kood" + +msgid "Please follow the instructions on the TV" +msgstr "Jälgi ekraanil olevaid juhiseid" + +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "Eelnevalt valitud asukoht ei ole kättesaadav ja selle asemel kasutatakse vaikimisi määratud kataloogi." + +msgid "Please press OK to continue." +msgstr "Jätkamiseks vajuta OK ." + +msgid "Please select a default EPG type..." +msgstr "Vali kustutatav saatekava laad..." + +msgid "Please select a playlist to delete..." +msgstr "Vali kustutatav esitusloend" + +msgid "Please select a playlist..." +msgstr "Vali esitusloend" + +msgid "Please select a sub service..." +msgstr "Vali alamkanal..." + +msgid "Please select a subservice to record..." +msgstr "Vali alamteenus salvestamiseks" + +msgid "Please select a subservice..." +msgstr "Vali alamteenus" + +msgid "Please select an NFI file and press green key to flash!" +msgstr "Palun vali NFI fail ja vajuta flashimiseks rohelist nuppu!" + +msgid "Please select medium to be scanned" +msgstr "Vali andmekandja" + +msgid "Please select medium to use as backup location" +msgstr "Vali asukoht varukoopiale" + +msgid "Please select tag to filter..." +msgstr "Vali otsingusõna" + +msgid "Please select the movie path..." +msgstr "Vali salvestise kataloog" + +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Vali võrguliides, mida soovid kasutada interneti ühenduseks.\n" +"\n" +"Jätkamiseks vajuta OK ." + +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Vali WiFi võrk ühenduseks.\n" +"\n" +"Jätkamiseks vajuta OK." + +msgid "Please set up tuner A" +msgstr "Häälesta tuuner A" + +msgid "Please set up tuner B" +msgstr "Häälesta tuuner B" + +msgid "Please set up tuner C" +msgstr "Häälesta tuuner C" + +msgid "Please set up tuner D" +msgstr "Häälesta tuuner D" + +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Liiguta PiP-pilti noolenuppudega.\n" +"Muuda akna suurust Bouquet +/- nuppudega.\n" +"Tagasi TV-moodi OK-nupuga või lõpeta liigutamine EXIT-nupuga." + +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "Kasuta UP ja DOWN nuppe oma keele valimiseks. Järgnevalt vajuta OK." + +msgid "Please wait" +msgstr "" + +msgid "Please wait (downloading channel list)" +msgstr "Oota (kanalinimekirja hankimine)" + +msgid "Please wait (downloading softcam)" +msgstr "Oota (EMU hankimine)" + +msgid "Please wait (updating packages)" +msgstr "Oota (uuendatakse pakette)" + +msgid "Please wait for activation of your network configuration..." +msgstr "Oota kuni võrguseadistus aktiveeritakse." + +msgid "Please wait while scanning is in progress..." +msgstr "Pilti laetakse. Oota." + +msgid "Please wait while we configure your network..." +msgstr "Oota kuni seadistan võrgu." + +msgid "Please wait while we prepare your network interfaces..." +msgstr "Oota, käivitame võrguliidest." + +msgid "Please wait while we test your network..." +msgstr "Oota, testin võrku." + +msgid "Please wait while your network is restarting..." +msgstr "Oota kuni võrk taaskäivitub." + +msgid "Please wait..." +msgstr "Oota..." + +msgid "Please wait... Loading list..." +msgstr "Oota. Sisu laetakse." + +msgid "Plugin browser" +msgstr "Laienduste sirvija" + +msgid "Plugin manager activity information" +msgstr "Laienduste halduri tegevuse teave" + +msgid "Plugin manager help" +msgstr "Laienduste halduri abi" + +msgid "Plugins" +msgstr "Laiendused" + +msgid "Polarisation" +msgstr "Polarisatsioon" + +msgid "Polarisation:" +msgstr "" + +msgid "Polarization" +msgstr "Polarisatsioon" + +msgid "Polish" +msgstr "Poola" + +msgid "Port A" +msgstr "Port A" + +msgid "Port B" +msgstr "Port B" + +msgid "Port C" +msgstr "Port C" + +msgid "Port D" +msgstr "Port D" + +msgid "Portuguese" +msgstr "Portugali" + +msgid "Position of completed timers in timerlist" +msgstr "Lõpetatud taimerite asukoht nimekirjas" + +msgid "Position stored at index" +msgstr "" + +msgid "Positioner" +msgstr "Positsioneer" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "" + +msgid "Positioner setup" +msgstr "Positsioneeri seadistus" + +msgid "Power threshold in mA" +msgstr "Tuvastusvool mA" + +msgid "Predefined transponder" +msgstr "Eelmääratud transponder" + +msgid "Prefer AC3 track" +msgstr "Eelista AC3 heli" + +msgid "Prefer AC3+ track" +msgstr "" + +msgid "Prefer audio track stored by service" +msgstr "Eelista käsitsi määratud heli" + +msgid "Prefer graphical DVB subtitles" +msgstr "Eelista DVB subtiitreid" + +msgid "Prefer subtitles for hearing impaired" +msgstr "Eelista vaegkuuljate subtiitreid" + +msgid "Prefer subtitles stored by service" +msgstr "Eelista käsitsi määratud subtiitreid" + +msgid "Preferred tuner" +msgstr "Eelistatud tuuner" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "Valmista ette teine USB pulk image flashimiseks" + +msgid "Preparing... Please wait" +msgstr "Ettevalmistus...Oota" + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "Vajuta INFO nuppu puldil lisainfo saamiseks." + +msgid "Press MENU on your remote control for additional options." +msgstr "Vajuta MENU puldil lisavõimaluste kasutamiseks." + +msgid "Press OK on your remote control to continue." +msgstr "Jätkamiseks vajuta OK." + +msgid "Press OK to activate the selected skin." +msgstr "Vajuta OK uue välimuse aktiveerimiseks." + +msgid "Press OK to activate the settings." +msgstr "Seadete aktiveerimiseks vajuta OK." + +msgid "Press OK to edit the settings." +msgstr "Sätete muutmiseks vajuta OK." + +#, python-format +msgid "Press OK to get further details for %s" +msgstr "Vajuta OK %s üksikasjade nägemiseks" + +msgid "Press OK to scan" +msgstr "Otsingu alustamiseks vajuta OK" + +msgid "Press OK to select a provider." +msgstr "Levitaja valimiseks vajuta OK." + +msgid "Press OK to select satellites" +msgstr "" + +msgid "Press OK to select/deselect a CAId." +msgstr "Vajuta OK valik/valik maha CAId." + +msgid "Press OK to start the scan" +msgstr "Otsingu alustamiseks vajuta OK" + +msgid "Press OK to toggle the selection" +msgstr "" + +msgid "Press OK to toggle the selection." +msgstr "Valiku muutmiseks vajuta OK." + +msgid "Press yellow to set this interface as default interface." +msgstr "Vajutage kollast nuppu, valimaks see liides vaikimisi liideseks." + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "Eelmine" + +msgid "Preview" +msgstr "Eelvaade" + +msgid "Preview menu" +msgstr "Eelvaate menüü" + +msgid "Preview selected channel" +msgstr "Valitud kanali eelvaatlus" + +msgid "Primary DNS" +msgstr "Esmane nimeserver" + +msgid "Priority" +msgstr "Prioriteet" + +msgid "Process" +msgstr "Toiming" + +msgid "Progress" +msgstr "Edenemisriba" + +msgid "Progress bar left" +msgstr "Edenemisriba vasakul" + +msgid "Progress bar right" +msgstr "Edenemisriba paremal" + +msgid "Properties of current title" +msgstr "Muuda seda pealkirja" + +msgid "Protect services" +msgstr "Kanalite kaitse" + +msgid "Protect setup" +msgstr "Seadistuste kaitse" + +msgid "Provider" +msgstr "Levitajad" + +msgid "Provider to scan" +msgstr "Levitaja otsinguks" + +msgid "Providers" +msgstr "Levitajad" + +msgid "Put TV in standby" +msgstr "Lülita TV välja" + +msgid "Put receiver in standby" +msgstr "Pane vastuvõtja ooterežiimi" + +msgid "Python frontend for /tmp/mmi.socket" +msgstr "Pythoni programm /tmp/mmi.socket jaoks" + +msgid "Quick" +msgstr "Kiire kanalivalik" + +msgid "Quick zap" +msgstr "Kiire kanalivalik" + +msgid "RF output" +msgstr "RF-väljund" + +msgid "RGB" +msgstr "RGB" + +msgid "Radio" +msgstr "Raadio" + +msgid "Ram disk" +msgstr "RAM-ketas" + +msgid "Random" +msgstr "Juhuslik" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "" + +msgid "Rating undefined" +msgstr "" + +msgid "Really close without saving settings?" +msgstr "Kas soovid seadeid salvestamata väljuda?" + +msgid "Really delete done timers?" +msgstr "Kustutame möödunud taimerid?" + +msgid "Really exit the subservices quickzap?" +msgstr "Väljuda alamteenuste valikust?" + +msgid "Really reboot now?" +msgstr "Teeme taaskäivituse?" + +msgid "Really restart now?" +msgstr "Teeme taaskäivituse kohe?" + +msgid "Really shutdown now?" +msgstr "Lülitame välja?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "Uuendad esiprotsessori ja taaskäivitad vastuvõtja?" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "Uuendad ja taaskäivitad vastuvõtja?" + +msgid "Reboot" +msgstr "Taaskäivitus" + +msgid "Rec" +msgstr "Salvesta" + +msgid "Reception settings" +msgstr "Vastuvõtu seaded" + +msgid "Record" +msgstr "Salvestus" + +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "Salvestusaeg on piiratud teise taimeri %s tõttu" + +msgid "Recorded files..." +msgstr "Salvestised" + +msgid "Recording" +msgstr "Salvestus" + +msgid "Recording in progress" +msgstr "Toimub salvestamine" + +msgid "Recording paths" +msgstr "Salvestuskaustad" + +msgid "Recording type" +msgstr "Salvestuse liik" + +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "Salvestus(ed) on käimas või käivituvad peatselt!" + +msgid "Recordings" +msgstr "Salvestised" + +msgid "Recordings always have priority" +msgstr "Salvestused omavad alati eelist" + +msgid "Red button..." +msgstr "Punane nupp..." + +msgid "Reenter new PIN" +msgstr "Korda uut PIN-i" + +msgid "Refresh rate" +msgstr "Värskendussagedus" + +msgid "Refresh rate selection." +msgstr "Värskendussageduse valik." + +msgid "Regard deep standby as standby" +msgstr "Käsitle sügavooterežiimi tavalise ooterežiimina" + +msgid "Relative" +msgstr "Suhteline" + +msgid "Reload" +msgstr "Lae uuesti" + +msgid "Reload black-/white lists" +msgstr "Lae uuesti Must-/Valge nimekiri" + +msgid "Reloading bouquets and services..." +msgstr "Lemmiknimekirjade ja kanalite värskendamine..." + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "Mäleta kanali PIN-i" + +msgid "Remember these settings for each folder" +msgstr "Pea iga kataloogi valikud meeles" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "" + +msgid "Remote control type" +msgstr "Puldi tüüp" + +msgid "Removal has completed." +msgstr "Eemaldamine on tehtud." + +msgid "Remove" +msgstr "Eemalda" + +msgid "Remove a mark" +msgstr "Kustuta märk" + +msgid "Remove a nameserver entry" +msgstr "Kustuta kirje nimeserverist" + +msgid "Remove bookmark" +msgstr "Kustuta järjehoidja" + +msgid "Remove completed timers after (days)" +msgstr "Lõpetatud taimerite eemaldamine pärast (päeva)" + +msgid "Remove currently selected title" +msgstr "Eemalda valitud pealkiri" + +msgid "Remove items from trash can after (days)" +msgstr "Salvestiste eemaldamine prügikastist pärast (päeva)" + +msgid "Remove plugins" +msgstr "Kustuta laiendusi" + +msgid "Remove title" +msgstr "Eemalda pealkiri" + +msgid "Removing" +msgstr "Eemaldab" + +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Kataloogi eemaldamine %s nurjus. (Ei ole tühi?)" + +msgid "Removing partition table" +msgstr "Partitsioonitabeli eemaldamine" + +msgid "Rename" +msgstr "Muuda nimi" + +msgid "Repeat" +msgstr "" + +msgid "Repeat type" +msgstr "Kordamise liik" + +msgid "Repeating event currently recording... What do you want to do?" +msgstr "Korduv timer salvestab. Mida soovid teha?" + +msgid "Repeats" +msgstr "Kordused" + +msgid "Require authentication for http streams" +msgstr "" + +msgid "Required medium type:" +msgstr "Nõutav meedia tüüp:" + +msgid "Rereading partition table" +msgstr "Partitsioonitabeli värskendamine" + +msgid "Reserved" +msgstr "Varutud" + +msgid "Reset" +msgstr "Lähtesta" + +msgid "Reset and renumerate title names" +msgstr "Sisesta uus faili nimi" + +msgid "Reset playback position" +msgstr "Nulli taasesituse algpunkt" + +msgid "Reset video enhancement settings to system defaults?" +msgstr "Sea pildiparandused süsteemi algseadesse?" + +msgid "Reset video enhancement settings to your last configuration?" +msgstr "Taasta oma viimase seade pildiparandused?" + +msgid "Resolution" +msgstr "Resolutsioon" + +msgid "Restart" +msgstr "Taaskäivita" + +msgid "Restart GUI now?" +msgstr "Käivitame Enigma2 kohe uuesti?" + +msgid "Restart enigma" +msgstr "Taaskäivita enigma2" + +msgid "Restart network" +msgstr "Taaskäivita võrk " + +msgid "Restart test" +msgstr "Taaskäivituse test" + +msgid "Restart your network connection and interfaces.\n" +msgstr "Taaskäivita võrgu ühendus ja adapter.\n" + +msgid "Restore" +msgstr "Taasta" + +msgid "Restore backups" +msgstr "Taasta varukoopia" + +msgid "Restore is running..." +msgstr "Taastamine..." + +msgid "Restore system settings" +msgstr "Taasta seaded" + +msgid "Restoring..." +msgstr "Taastamine..." + +msgid "Resume from last position" +msgstr "Jätka katkestatud kohalt" + +#, python-format +msgid "Resume position at %s" +msgstr "Jätka alates %s" + +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Taasesitus jätkub katkestatud kohalt" + +msgid "Return to movie list" +msgstr "Tagasi salvestiste nimekirja" + +msgid "Return to previous service" +msgstr "Tagasi eelmisele kanalile" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +msgid "Rewind speeds" +msgstr "Tagasikerimise kiirused" + +msgid "Rewrap teletext subtitles" +msgstr "Algne teleteksti subtiitrite reamurdmine" + +msgid "Right" +msgstr "Parem" + +msgid "Right from servicename" +msgstr "Kanalinimest paremal pool" + +msgid "Roll-off" +msgstr "" + +msgid "Romanian" +msgstr "Rumeenia" + +msgid "Root directory" +msgstr "Juurkataloog" + +msgid "Rotor step position:" +msgstr "" + +msgid "Rotor turning speed" +msgstr "Mootori pööramise kiirus" + +msgid "Round start time on" +msgstr "" + +msgid "Russian" +msgstr "Vene" + +msgid "S-Video" +msgstr "S-video (Y/C)" + +msgid "SID" +msgstr "SID" + +msgid "SINGLE LAYER DVD" +msgstr "ÃœHEKIHILINE DVD" + +msgid "SNR" +msgstr "SNR" + +msgid "SNR:" +msgstr "SNR:" + +msgid "SSID:" +msgstr "SSID:" + +msgid "Same resolution as skin" +msgstr "" + +msgid "Sat" +msgstr "L" + +msgid "Satellite" +msgstr "Satelliit" + +msgid "Satellite dish setup" +msgstr "Antenni seaded" + +msgid "Satellite equipment" +msgstr "Satelliidiseadmed" + +msgid "Satellite equipment setup" +msgstr "Satelliidiseadmete seaded" + +msgid "Satellite longitude:" +msgstr "Satelliidi pikkuskraad:" + +msgid "Satellites" +msgstr "Satelliidid" + +msgid "Satfinder" +msgstr "Satelliidiotsija" + +msgid "Sats" +msgstr "Satelliidid" + +msgid "Saturation" +msgstr "Küllastus" + +msgid "Saturday" +msgstr "Laupäev" + +msgid "Save" +msgstr "Salvesta" + +msgid "Save playlist" +msgstr "Salvesta esitusloend" + +msgid "Save timeshift file" +msgstr "" + +msgid "Save timeshift file in movie directory" +msgstr "" + +msgid "Scaler sharpness" +msgstr "Skaleerija teravus" + +msgid "Scaling mode" +msgstr "Skaleerimine" + +msgid "Scan" +msgstr "" + +msgid "Scan " +msgstr "Otsi " + +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, python-format +msgid "Scan %s" +msgstr "Otsi %s" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, python-format +msgid "Scan %s band" +msgstr "Ots %s sagedusalast" + +msgid "Scan additional SR" +msgstr "Otsi lisa SR" + +msgid "Scan files..." +msgstr "Uuri faile..." + +msgid "Scan wireless networks" +msgstr "Otsi WiFi võrke" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "Otsi oma võrgus WiFi ruutereid ja ühendu nendega, kasutades valitud WiFi seadet.\n" + +#, python-format +msgid "Scanning %s..." +msgstr "Otsib %s..." + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, fuzzy, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "Otsing tehtud, %d kanalit leitud" +msgstr[1] "Otsing tehtud, %d kanalit leitud" + +#, fuzzy, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "Otsing tehtud, %d kanalit leitud" +msgstr[1] "Otsing tehtud, %d kanalit leitud" + +msgid "Scanning failed!" +msgstr "Otsing nurjus!" + +msgid "Scanning..." +msgstr "Otsing..." + +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "Otsib algsed lamedb-d järjestatud satelliitide järgi ühendatud positsioneeriga" + +msgid "Search east" +msgstr "Otsi itta" + +msgid "Search west" +msgstr "Otsi läände" + +msgid "Searching" +msgstr "Otsing" + +msgid "Searching east ..." +msgstr "" + +msgid "Searching for available updates. Please wait..." +msgstr "Otsin uuendusi. Palun oota." + +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "Otsin uusi paigaldatud või kustutatud pakette. Oota." + +msgid "Searching west ..." +msgstr "" + +msgid "Second cable of motorized LNB" +msgstr "" + +msgid "Secondary DNS" +msgstr "Teisene nimeserver" + +msgid "Seek" +msgstr "Otsi" + +msgid "Seek backward" +msgstr "Keri tagasi" + +msgid "Seek backward (enter time)" +msgstr "Keri tagasi (sisesta aeg)" + +msgid "Seek forward" +msgstr "Keri edasi" + +msgid "Seek forward (enter time)" +msgstr "Keri edasi (sisesta aeg)" + +msgid "Select" +msgstr "Vali" + +msgid "Select CAId" +msgstr "Vali CAId" + +msgid "Select HDD" +msgstr "Vali kõvaketas" + +msgid "Select a bouquet" +msgstr "Vali lemmiknimekiri" + +msgid "Select a movie" +msgstr "Vali salvestis" + +msgid "Select a network adapter" +msgstr "Vali võrgukaart" + +msgid "Select a skin" +msgstr "Vali välimus" + +msgid "Select a tuner" +msgstr "Vali tuuner" + +msgid "Select a wireless network" +msgstr "Vali WiFi võrk" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +msgid "Select an image to be downloaded" +msgstr "Vali tarkvara allalaadimiseks" + +msgid "Select audio track" +msgstr "Vali helikanal" + +msgid "Select backup files" +msgstr "Vali varundamiseks failid" + +msgid "Select backup location" +msgstr "Varukoopia asukoht" + +msgid "Select channel to record from" +msgstr "Vali salvestatav kanal" + +msgid "Select copy destination for:" +msgstr "Vali kopeerimise asukoht:" + +msgid "Select default EPG type..." +msgstr "Vali saatekava laad..." + +msgid "Select desired image from feed list" +msgstr "Vali soovitud tarkvara feedide nimekirjast" + +msgid "Select destination for:" +msgstr "Vali asukoht:" + +msgid "Select files for backup." +msgstr "Vali failid varundamiseks." + +msgid "Select files/folders to backup" +msgstr "Vali failid/kaustad varukoopiale" + +msgid "Select input device" +msgstr "Vali sisendseade" + +msgid "Select input device." +msgstr "Vali sisendseade." + +msgid "Select interface" +msgstr "Vali liides" + +msgid "Select location" +msgstr "Vali asukoht" + +msgid "Select movie" +msgstr "Vali film" + +msgid "Select provider to add..." +msgstr "Vali levitaja lisamiseks" + +msgid "Select refresh rate" +msgstr "Vali värskendussagedus" + +msgid "Select satellites" +msgstr "" + +msgid "Select service to add..." +msgstr "Vali kanal lisamiseks" + +msgid "Select sort method:" +msgstr "" + +msgid "Select target folder" +msgstr "Vali sihtkataloog" + +msgid "Select the movie path" +msgstr "Vali filmi rada" + +msgid "Select upgrade source" +msgstr "Vali uuenduste allikas" + +msgid "Select upgrade source to edit." +msgstr "Vali uuenduste allikas muutmiseks." + +msgid "Select video input with up/down buttons" +msgstr "Vali video sisend" + +msgid "Select video mode" +msgstr "Vali video töörežiim" + +msgid "Select wireless network" +msgstr "Vali WiFi võrk" + +msgid "Select your provider, and press OK to start the scan" +msgstr "Vali teenusepakkuja ja vajuta otsingu alustamiseks OK" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +msgid "Send DiSEqC only on satellite change" +msgstr "Saada DiSEqC anult satelliidi vahetamisel" + +msgid "Separate titles with a main menu" +msgstr "Eraldi pealkirjad koos peamenüüga" + +msgid "Sequence repeat" +msgstr "Järjekorra kordus" + +msgid "Serbian" +msgstr "Serbia" + +msgid "Service" +msgstr "Kanaliinfo" + +msgid "Service has been added to the favourites." +msgstr "Kanal on lisatud lemmiknimekirja." + +msgid "Service has been added to the selected bouquet." +msgstr "Kanal on lisatud valitud nimekirja." + +msgid "Service info" +msgstr "Kanaliinfo" + +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Valitud kanalit ei leitud!\n" +"(Timeout PMT lugemisel)" + +msgid "Service name" +msgstr "Kanalinimi" + +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Valitud kanalit ei leitud!\n" +"(SID ei leitud PAT-st)" + +msgid "Service reference" +msgstr "Kanali referents" + +msgid "Service scan" +msgstr "Kanali otsing" + +msgid "Service searching" +msgstr "Kanaliotsing" + +msgid "Service title mode" +msgstr "Kanalinime kuju" + +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"Pole kanalit!\n" +"Kontrolli tuuneri seadeid!" + +msgid "Services" +msgstr "Kanalid" + +msgid "Set default" +msgstr "" + +msgid "Set end time" +msgstr "Määra lõppaeg" + +msgid "Set fixed" +msgstr "Määra püsiaadress" + +msgid "Set fps for external subtitles" +msgstr "Määra väliste subtiitrite kaadrisagedus" + +msgid "Set interface as default Interface" +msgstr "Määra vaikimisi võrguliideseks" + +msgid "Set limits" +msgstr "Määra piirid" + +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "Määra saate edenemise näit kanalivalikus." + +msgid "Set time window to 1 hour" +msgstr "Määra ajaaknaks 1 tund" + +msgid "Set time window to 2 hours" +msgstr "Määra ajaaknaks 2 tundi" + +msgid "Set time window to 3 hours" +msgstr "Määra ajaaknaks 3 tundi" + +msgid "Set time window to 4 hours" +msgstr "Määra ajaaknaks 4 tundi" + +msgid "Set time window to 5 hours" +msgstr "Määra ajaaknaks 5 tundi" + +msgid "Set time window to 6 hours" +msgstr "" + +msgid "Set voltage and 22KHz" +msgstr "Vali pinge ja 22 KHz" + +msgid "Settings" +msgstr "Seaded" + +msgid "Setup" +msgstr "Seadistamine" + +msgid "Setup menu" +msgstr "Seadistusmenüü" + +msgid "Setup mode" +msgstr "Seadistamine" + +msgid "Setup your positioner" +msgstr "Mootori häälestamine" + +msgid "Setup your satellite equipment" +msgstr "Satelliidiseadmed" + +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "Kas USB pulga abiline alustab toimingut ja salvestab tarkvara %s flash mälusse?" + +msgid "Sharpness" +msgstr "Teravus" + +msgid "Short filenames" +msgstr "Lühikesed failinimed" + +msgid "Show EIT now/next in infobar" +msgstr "Näita nüüd/järgmine inforibal" + +msgid "Show EPG for current channel..." +msgstr "Näita käesoleva saate kava..." + +msgid "Show EPG..." +msgstr "näita saatekava..." + +msgid "Show Games show" +msgstr "" + +msgid "Show SNR percentage instead of dB value" +msgstr "Näita dB asemel SNR protsente" + +msgid "Show VCR scart on main menu" +msgstr "" + +msgid "Show WLAN status" +msgstr "Näita WiFi Olekut" + +msgid "Show animation while busy" +msgstr "Näita hõivatud oleku puhul animatsiooni" + +msgid "Show background in radio mode" +msgstr "Näita raadioolekus taustapilti" + +msgid "Show bouquet selection menu" +msgstr "Näita lemmiknimekirja menüüd" + +msgid "Show busy indicator when the system is busy." +msgstr "Näita hõivatud oleku puhul animatsiooni." + +msgid "Show channel numbers in channel selection" +msgstr "Näita kanalivalikus kanalinumbreid" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "Näita salastatust inforibal" + +msgid "Show detailed event info" +msgstr "Näita üksikasjalikku saatetutvustust" + +msgid "Show event details" +msgstr "Näita saatetutvustust" + +msgid "Show event-progress in channel selection" +msgstr "Näita saate edenemist kanalivalikus" + +msgid "Show extended description" +msgstr "Näita pikemat saatetutvustust" + +msgid "Show extensions..." +msgstr "Näita laiendusi..." + +msgid "Show icon for new/unseen items" +msgstr "Tähista uus/vaatamata salvestis" + +msgid "Show in extensions menu" +msgstr "" + +msgid "Show info" +msgstr "Näita infot" + +msgid "Show info line" +msgstr " Näita infot" + +msgid "Show infobar on channel change" +msgstr "Näita kanali vahetusel inforiba" + +msgid "Show infobar on event change" +msgstr "Näita saate vahetumisel inforiba" + +msgid "Show infobar on skip forward/backward" +msgstr "Näita kerimisel inforiba" + +msgid "Show latest commits on sourceforge" +msgstr "" + +msgid "Show message when recording starts" +msgstr "Teavita salvestuse algamisest" + +msgid "Show movie lengths in movielist" +msgstr "Näita filmilistis filmi pikkust" + +msgid "Show multi channel EPG" +msgstr "" + +msgid "Show picons in channel list" +msgstr "" + +msgid "Show positioner movement" +msgstr "Näita positsioneeri liikumist" + +msgid "Show screensaver" +msgstr "Näita ekraanisäästjat" + +msgid "Show second infobar" +msgstr "Näita teist inforiba" + +msgid "Show service type icons" +msgstr "Näita teenuse tüübi ikoone" + +msgid "Show services beginning with" +msgstr "Näita kanalid mis algavad" + +msgid "Show shutdown menu" +msgstr "Kuva seiskamismenüü" + +msgid "Show single service EPG" +msgstr "" + +msgid "Show status icons in Movielist" +msgstr "" + +msgid "Show status icons in movie list" +msgstr "Oleku tähistus salvestiste nimekirjas" + +msgid "Show status icons in movielist" +msgstr "Oleku tähistus filmilistis" + +msgid "Show tag menu" +msgstr "Kuva märksõnade menüü" + +msgid "Show the radio player..." +msgstr "Kuula raadiot" + +msgid "Show the tv player..." +msgstr "Näita TV-d" + +msgid "Show warning when timeshift is stopped" +msgstr "Näita hoiatust kui ajanihe on peatunud" + +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Näitab WiFi olekut.\n" + +msgid "Shuffle playlist" +msgstr "Sega esitusloend" + +msgid "Shutdown" +msgstr "Lülita välja" + +msgid "Shutdown when in Standby" +msgstr "" + +msgid "Side by side" +msgstr "Kõrvuti" + +msgid "Signal OK, proceeding" +msgstr "Signaal OK, jätkame" + +msgid "Signal quality" +msgstr "Signaali kvaliteet" + +msgid "Signal strength:" +msgstr "Signaali tugevus:" + +msgid "Signal: " +msgstr "Signaal: " + +msgid "Similar" +msgstr "Sarnased" + +msgid "Similar broadcasts:" +msgstr "Sarnased saated:" + +msgid "Simple" +msgstr "Lihtne" + +msgid "Simple titleset (compatibility for legacy players)" +msgstr "Lihtne pealkiri (vanemate pleieritega ühilduv)" + +msgid "Single" +msgstr "Ãœksik" + +msgid "Single EPG" +msgstr "Kanali saatekava" + +msgid "Single satellite" +msgstr "Ãœksik satelliit" + +msgid "Single step (GOP)" +msgstr "Ãœksik samm (GOP)" + +msgid "Single transponder" +msgstr "Ãœksik transponder" + +msgid "Site latitude" +msgstr "" + +msgid "Site longitude" +msgstr "" + +msgid "Skin" +msgstr "Välimus" + +msgid "Skins" +msgstr "Välimus" + +msgid "Skip empty services" +msgstr "Tühje kanaleid ei näidata" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "Jäta netiühenduse kontroll vahele (automaatne pakettide paigaldamine keelatakse)" + +msgid "Sleep timer" +msgstr "Unetaimer" + +msgid "SleepTimer Configuration" +msgstr "" + +msgid "Sleeptimer" +msgstr "" + +msgid "Slide picture in loop" +msgstr "Vaata pilte tsüklis" + +msgid "Slide show interval (sec.)" +msgstr "Piltide näitamise aeg (sekundit)" + +#, python-format +msgid "Slot %d" +msgstr "Pesa %d" + +msgid "Slovak" +msgstr "Slovaki" + +msgid "Slovenian" +msgstr "Sloveeni" + +msgid "Slow" +msgstr "Aeglane" + +msgid "Slow motion speeds" +msgstr "Aeglustuskiirused" + +msgid "Small progress" +msgstr "Väike edenemisriba" + +msgid "Social/Political/Economics" +msgstr "" + +msgid "SoftCam / CI" +msgstr "EMU / CI" + +msgid "Softcam type" +msgstr "EMU tüüp" + +msgid "Software" +msgstr "Tarkvara" + +msgid "Software management" +msgstr "Tarkvara haldamine" + +msgid "Software manager setup" +msgstr "Tarkvarahalduri seaded" + +msgid "Software restore" +msgstr "Tarkvara taaste" + +msgid "Software update" +msgstr "Tarkvara uuendamine" + +msgid "Softwaremanager information" +msgstr "Tarkvarahalduri informatsioon" + +msgid "Some plugins are not available:\n" +msgstr "Mõned laiendused pole saadaval:\n" + +#, python-format +msgid "Sorry, %s has not been installed!" +msgstr " %sei ole paigaldatud!" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "Kataloogide kustutamine on võimalik ainult läbi prügikasti." + +msgid "Sorry, no backups found!" +msgstr "Varukoopiat ei leitud!" + +msgid "Sorry, no details available!" +msgstr "Ãœksikasju pole saadaval!" + +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"Varukoopia asukohta ei saa salvestada.\n" +"Vali uus asukoht." + +msgid "Sort" +msgstr "Järjesta" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Tähestikujärj." + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort time" +msgstr "Aja järgi" + +msgid "Sound" +msgstr "Heli" + +msgid "Sound carrier" +msgstr "Heli kandevsagedus" + +msgid "Source request" +msgstr "Allika päring" + +msgid "South" +msgstr "Lõuna" + +msgid "Spanish" +msgstr "Hispaania" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +msgid "Split preview mode" +msgstr "Poolitatud eelvaate režiim" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "Sport" + +msgid "Standard" +msgstr "Tavaline" + +msgid "Standart list" +msgstr "" + +msgid "Standby" +msgstr "Ooterežiim" + +msgid "Standby / restart" +msgstr "Seiskamine" + +msgid "Standby after current event" +msgstr "" + +#, python-format +msgid "Standby fan %d PWM" +msgstr "Ventilaatori %d PWM ooterežiimil" + +#, python-format +msgid "Standby fan %d voltage" +msgstr "Ventilaatori %d pinge ooterežiimil" + +msgid "Standby in " +msgstr "" + +msgid "StandbyLED" +msgstr "" + +msgid "Start from the beginning" +msgstr "Alusta algusest" + +msgid "Start offline decode" +msgstr "Alusta võrguta dekodeerimist" + +msgid "Start recording?" +msgstr "Kas alustan salvestust?" + +msgid "Start test" +msgstr "Käivita test" + +msgid "Start time" +msgstr "Alustamise aeg" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +msgid "Start timeshift" +msgstr "Käivita ajanihe" + +msgid "Start with list screen" +msgstr "" + +msgid "Starting on" +msgstr "Alates" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +msgid "Step east" +msgstr "Samm itta" + +msgid "Step west" +msgstr "Samm läände" + +msgid "Stepped east" +msgstr "" + +msgid "Stepped west" +msgstr "" + +msgid "Stop" +msgstr "Peata" + +msgid "Stop PiP" +msgstr "Sulge PiP" + +msgid "Stop current event and disable coming events" +msgstr "Peata salvestus ja keela tulevad taimerid" + +msgid "Stop current event but not coming events" +msgstr "Peata salvestus, aga ära keela tulevaid taimereid" + +msgid "Stop entry" +msgstr "Peata" + +msgid "Stop playing this movie?" +msgstr "Kas lõpetan taasesituse?" + +msgid "Stop recording" +msgstr "Peata salvestamine" + +msgid "Stop recording and delete" +msgstr "Peata salvestamine ja kustuta" + +msgid "Stop service on return to movie list" +msgstr "" + +msgid "Stop test" +msgstr "Peata test" + +msgid "Stop testing plane after # failed transponders" +msgstr "Peata testimine pärast # ebaõnnestunud transponderit" + +msgid "Stop testing plane after # successful transponders" +msgstr "Peata testimine pärast # leitud transponderit" + +msgid "Stop timer recording" +msgstr "" + +msgid "Stop timeshift" +msgstr "Lõpeta ajanihe" + +msgid "Stop timeshift?" +msgstr "Peatad ajanihkega salvestuse?" + +msgid "Stopped" +msgstr "Peatunud" + +msgid "Store at index" +msgstr "" + +msgid "Store position" +msgstr "Salvesta asukoht" + +msgid "Stored position" +msgstr "Salvestatud asukoht" + +msgid "Stream" +msgstr "" + +msgid "Stream request" +msgstr "Striimi päring" + +msgid "Strongest position" +msgstr "Tugevaim asukoht" + +msgid "Subservice list..." +msgstr "Alamteenuste nimekiri" + +msgid "Subservices" +msgstr "Alamteenused" + +msgid "Subtitle Quickmenu" +msgstr "" + +msgid "Subtitle alignment" +msgstr "Subtiitrite joondus" + +msgid "Subtitle border width" +msgstr "Subtiitrite kontuuri paksus" + +msgid "Subtitle delay when timing is bad" +msgstr "" + +msgid "Subtitle delay when timing lacks" +msgstr "Subtiitrite viiteaeg ajastuse puudumisel" + +msgid "Subtitle font size" +msgstr "Subtiitrite tähesuurus" + +msgid "Subtitle language selection 1" +msgstr "Subtiitri keele valik 1" + +msgid "Subtitle language selection 2" +msgstr "Subtiitri keele valik 2" + +msgid "Subtitle language selection 3" +msgstr "Subtiitri keele valik 3" + +msgid "Subtitle language selection 4" +msgstr "Subtiitri keele valik 4" + +msgid "Subtitle position" +msgstr "Subtiitrite asukoht" + +msgid "Subtitle selection" +msgstr "Subtiitrite valik" + +msgid "Subtitle selection..." +msgstr "Subtiitrite valik..." + +msgid "Subtitle settings" +msgstr "Subtiitrite seadistus" + +msgid "Subtitles" +msgstr "Subtiitrid" + +msgid "Sun" +msgstr "P" + +msgid "Sunday" +msgstr "Pühapäev" + +msgid "Swap PiP and main picture" +msgstr "Vaheta PiP- ja peapilt" + +msgid "Swap services" +msgstr "Vaheta kanalid omavahel" + +msgid "Swedish" +msgstr "Rootsi" + +msgid "Switch TV to correct input" +msgstr "Lülita TV õigele sisendile" + +msgid "Switch between filelist/playlist" +msgstr "" + +msgid "Switch between normal mode and list mode" +msgstr "Vaheta tava ja nimekirja vaate vahel" + +msgid "Switch to HDMI in mode" +msgstr "" + +msgid "Switch to filelist" +msgstr "Mine faililoendisse" + +msgid "Switch to next channel" +msgstr "" + +msgid "Switch to next channel in history" +msgstr "Järgmine kanal ajaloos" + +msgid "Switch to next sub service" +msgstr "Järgmine alamkanal" + +msgid "Switch to playlist" +msgstr "Mine esitusloendisse" + +msgid "Switch to previous channel" +msgstr "Eelmine kanal" + +msgid "Switch to previous channel in history" +msgstr "Eelmine kanal ajaloos" + +msgid "Switch to previous sub service" +msgstr "Eelmine alamkanal" + +msgid "Switchable tuner types:" +msgstr "Ãœmberlülitatavate tuunerite tüübid:" + +msgid "Symbol rate" +msgstr "Sümbolikiirus" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "" + +msgid "System" +msgstr "Süsteem" + +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "TÕLKE_INFO" + +msgid "TS file is too large for ISO9660 level 1!" +msgstr "TS fail on liiga suur ISO9660/1-le!" + +msgid "TSID" +msgstr "TSID" + +msgid "TV physical address report" +msgstr "TV füüsilise aadressi raport" + +msgid "TXT PID" +msgstr "TXT PID" + +msgid "Table of contents for collection" +msgstr "Kollektsiooni sisutabel" + +msgid "Tags" +msgstr "Võtmesõnad" + +msgid "Teletext subtitle color" +msgstr "Teleteksti subtiitrite värv" + +msgid "Temperature and fan control" +msgstr "Temp. ja ventilaatori seaded" + +msgid "Terrestrial" +msgstr "Maapealne TV (DVB-T)" + +msgid "Terrestrial provider" +msgstr "DVB-T levitaja" + +msgid "Test DiSEqC settings" +msgstr "Testi DiSEqC seadeid" + +msgid "Test mode" +msgstr "Testpilt" + +msgid "Test the network configuration of your receiver.\n" +msgstr "Testi vastuvõtja võrgu seadeid.\n" + +msgid "Test type" +msgstr "Testi tüüp" + +msgid "Text color" +msgstr "Teksti värv" + +msgid "Thai" +msgstr "Tai" + +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"Täname, et kasutasid abilist.\n" +"Jätkamiseks vajuta OK." + +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"Täname, et kasutasid abilist. Vastuvõtja on kasutuseks valmis\n" +"Jätkamiseks vajuta OK." + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "DVD standard ei toeta H.264 (HDTV) video voogesitust. Kas soovite luua eri vormingus andmete (data) DVD, mida teised DVD mängijad ei mängi?" + +msgid "The PIN code has been changed successfully." +msgstr "PIN kood on muudetud." + +msgid "The PIN codes you entered are different." +msgstr "Sisestatud PIN koodid on erinevad." + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" +"USB pulk oli ette valmistatud käivitatavana.\n" +"Nüüd saad NFI tarkvara faili alla laadida!" + +msgid "The backup failed. Please choose a different backup location." +msgstr "Varukoopia loomine nurjus. Vali uus varukoopia asukoht." + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" +"Praegune beta image ei pruugi olla stabiilne.\n" +"Enama info jaoks vaata %s." + +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"Kataloog %s ei ole salvestatav.\n" +"Vali kindlasti selle asemel salvestatav kataloog." + +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"Leitud USB pulk:\n" +"\n" +"%s\n" +"\n" +"Kas Te soovite USB pulka alglaetavaks?" + +msgid "The following files were found..." +msgstr "Leitud järgmised failid" + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "md5sum kontroll ebaõnnestus, fail võib olla rikutud!" + +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"NetworkWizard laiendus ei ole paigaldatud! \n" +"Paigalda see." + +#, python-format +msgid "The path %s already exists." +msgstr "Kaust %s on juba olemas." + +msgid "The pin code you entered is wrong." +msgstr "Vale kood." + +#, python-format +msgid "The results have been written to %s." +msgstr "Tulemused on salvestatud %s." + +msgid "The sleep timer has been activated." +msgstr "Unetaimer on aktiveeritud." + +msgid "The sleep timer has been disabled." +msgstr "Unetaimer välja lülitatud." + +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"Softwaremanagement laiendus ei ole paigaldatud! \n" +"Paigalda see." + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "Praeguse beta image olekut ei õnnestunud kontrollida, %s ei vasta" + +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "Taimerite fail (timers.xml) on katki ja seda ei saa laadida." + +msgid "The user interface of your receiver is restarting" +msgstr "Vastuvõtja kasutajaliides taaskäivitub." + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" +"Vastuvõtja kasutajaliides taaskäivitub\n" +"vea tõttu 'mytest.py' failis" + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"Wifi laiendus-plugin ei ole paigaldatud!\n" +"Palun paigalda see ja vali mida soovid teha järgmiseks." + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"Wifi laiendus-plugin ei ole paigaldatud!\n" +"Palun paigalda see." + +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "Praegustest seadetest saab teha varukoopia. Kas teha seda nüüd?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "Abiline leidis konfiguratsiooni varukoopia. Kas soovid taastada vanad seaded %s?" + +msgid "The wizard is finished now." +msgstr "Toiming on nüüd lõpetatud. Vajuta OK." + +msgid "There are at least " +msgstr "Seal on vähemalt " + +#, python-format +msgid "There are at least %s updates available." +msgstr "Saadaval on vähemalt %s uuendust." + +msgid "There are currently no outstanding actions." +msgstr "Praegu ei ole täitmata tegevusi." + +msgid "There are no updates available." +msgstr "Uuendusi ei ole saadaval." + +msgid "There is no signal to lock on !" +msgstr "" + +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"Kõvakettal pole piisavalt vaba ruumi.\n" +"Kas soovid kindlasti jätkata?" + +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "DVD RW ketas on formaaditud.Uuesti formaatimisel kustutatakse kõik, mis plaadile kirjutatud." + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" +"See laiendus valmistab ette USB pulga, mida saab kasutada vastuvõtja tarkvara uuendamiseks ilma võrgu- või WLAN ühenduseta. \n" +"Algul tuleb USB pulk teha alglaetavaks. \n" +"Siis saab uuenduste serverist alla laadida NFI tarkvara faili ja salvestada selle USB pulgale. \n" +"Kui oled juba ette valmistanud alglaetava USB pulga, siis ühenda see nüüd. Vastasel korral ühenda min. 64 MB USB pulk!" + +msgid "This plugin is installed." +msgstr "Laiendus on paigaldatud." + +msgid "This plugin is not installed." +msgstr "See laiendus pole paigaldatud." + +msgid "This plugin will be installed." +msgstr "See laiendus paigaldatakse." + +msgid "This plugin will be removed." +msgstr "See laiendus eemaldatakse." + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "See vastuvõtja ei toeta %s voogude dekodeerimist!" + +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"Test kontrollib nimeserveri seadeid.\n" +"Kui tekib \"kinnitamata\" kiri:\n" +"- kontrolli oma DHCP-d, kaableid ja võrgukaardi seadeid \n" +"- kui seadistasid oma nimeserverid käsitsi, siis kontrolli üle \"nimeserver\" seaded" + +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"See test kontrollib, kas võrgukaabel on ühendatud LAN adapteriga.\n" +"Kui näed \"ühendamata\" teadet:\n" +"- veendu, et võrgukaabel on ühendatud\n" +"- veendu, et kaabel on terve" + +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"See test kontrollib kehtiva IP aadressi olemasolu LAN adapteri jaoks.\n" +"Kui näed \"kinnitamata\" teadet:\n" +"- ei leitud kehtivat IP aadressi\n" +"- kontrolli DHCP ja võrgukaardi seadeid ning kaabeldust" + +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"See test kontrollib,kas LAN adapter on seadistatud automaatse IP aadressi jaoks DHCP-d kasutades.\n" +"Kui näed \"keelatud\" teadet:\n" +"- siis LAN adapter on seadistatud IP määramisele käsitsi\n" +"- kontrolli, et õige IP info on salvestatud AdapterSetup dialoogis.\n" +"Kui näed \"lubatud\" teadet:\n" +"kontrolli, et võrgus on seadistatud ja töötav DHCP server." + +msgid "This test detects your configured LAN adapter." +msgstr "See test tuvastab seadistatud võrgukaardi." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" + +msgid "Three" +msgstr "Kolm" + +msgid "Threshold" +msgstr "Lävi" + +msgid "Thu" +msgstr "N" + +msgid "Thumbnails" +msgstr "Pisipildid" + +msgid "Thursday" +msgstr "Neljapäev" + +msgid "Time" +msgstr "Aeg" + +msgid "Time scale" +msgstr "Ajaskaala" + +msgid "Timer" +msgstr "Taimer" + +msgid "Timer Overview" +msgstr "" + +msgid "Timer edit" +msgstr "Taimeri muutmine" + +msgid "Timer editor" +msgstr "Taimeri muutja" + +msgid "Timer entry" +msgstr "Taimeri sisestus" + +msgid "Timer log" +msgstr "Taimeri logi" + +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"Taimerite ajad kattuvad!\n" +"Palun kontrolli ajad üle!" + +msgid "Timer overview" +msgstr "Taimeri ülevaade" + +msgid "Timer recording location" +msgstr "Taimeri salvestuse asukoht" + +msgid "Timer sanity error" +msgstr "Taimeri viga" + +msgid "Timer selection" +msgstr "Taimeri valik" + +msgid "Timer selection..." +msgstr "" + +msgid "Timer type" +msgstr "Taimeri liik" + +msgid "Timeshift" +msgstr "Ajanihe" + +msgid "Timeshift Live" +msgstr "" + +msgid "Timeshift location" +msgstr "Ajanihke asukoht" + +msgid "Timeshift not possible!" +msgstr "Ajanihke kasutamine pole võimalik!" + +msgid "Timezone" +msgstr "Ajavöönd" + +msgid "Title" +msgstr "Pealkiri" + +msgid "Title properties" +msgstr "Pealkirja omadused" + +msgid "Titleset mode" +msgstr "Testpilt" + +msgid "To audio selection" +msgstr "Heli valik" + +msgid "To subtitle selection" +msgstr "Subtiitrite valik" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" +"Vastuvõtja püsivara uuendamiseks toimi järgnevalt: \n" +"1) Lülita vastuvõtja tagumisest lülitist välja ja veendu, et alglaaditav USB pulk on ühendatud. \n" +"2) Lülita vastuvõtja sisse, hoides CH- nuppu esipaneelil vajutatuna 10 sekundi jooksul. \n" +"3) Oota alglaadimiseni ja jälgi abilise juhendeid ekraanil." + +msgid "Today" +msgstr "Täna" + +msgid "Toggle a cut mark at the current position" +msgstr "Pane lõikemärk praegusele kohale" + +msgid "Tone amplitude" +msgstr "Tooni amplituud" + +msgid "Tone mode" +msgstr "22KHz-toon" + +msgid "Toneburst" +msgstr "Toonvalimine" + +msgid "Toneburst A/B" +msgstr "Toonvalimine A/B" + +msgid "Top and bottom" +msgstr "Ãœleval ja all" + +msgid "Track" +msgstr "Rada" + +msgid "Translation" +msgstr "Tõlge" + +msgid "Translation:" +msgstr "Tõlge:" + +msgid "Translations" +msgstr "Tõlked" + +msgid "Transmission mode" +msgstr "Edastamise moodus" + +msgid "Transponder" +msgstr "Transponder" + +msgid "Transponder type" +msgstr "Transponderi tüüp" + +msgid "Trash can" +msgstr "Prügikast" + +msgid "Tries left:" +msgstr "Katseid järel:" + +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Otsin kaabelvõrgu sagedusi. Oota." + +msgid "Trying to download a new packetlist. Please wait..." +msgstr "Ãœritan laadida alla uut nimekirja. Oota." + +msgid "Tue" +msgstr "T" + +msgid "Tuesday" +msgstr "Teisipäev" + +msgid "Tune" +msgstr "Häälesta" + +msgid "Tune and focus" +msgstr "" + +msgid "Tune failed!" +msgstr "Häälestus nurjus!" + +msgid "Tuner" +msgstr "Tuuner" + +msgid "Tuner configuration" +msgstr "Tuuneri seaded" + +msgid "Tuner is not supported" +msgstr "" + +msgid "Tuner slot" +msgstr "Tuuneri pesa" + +msgid "Tuner status" +msgstr "Tuuneri olek" + +#, python-format +msgid "Tuner status %s" +msgstr "Tuuneri olek %s" + +msgid "Tuner type" +msgstr "Tuuneri tüüp" + +msgid "Turkish" +msgstr "Türgi" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +msgid "Two" +msgstr "Kaks" + +msgid "Type" +msgstr "Tüüp" + +msgid "Type of scan" +msgstr "Otsingu tüüp" + +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "USALS kalibreerimine" + +msgid "USB stick" +msgstr "USB mälupulk" + +msgid "USB stick wizard" +msgstr "USB-mälupulk" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Toimub automatiseeritud uuendamine\n" +"Oota vastuvõtja taaskäivitamist\n" +"Selleks võib kuluda mõni minut" + +msgid "Undo install" +msgstr "Tühista paigaldamine" + +msgid "Undo uninstall" +msgstr "Tühista eemaldamine" + +msgid "Unencrypted" +msgstr "Koodivaba" + +msgid "UnhandledKey" +msgstr "Käsitlematu võti" + +msgid "Unicable" +msgstr "Unicable" + +msgid "Unicable LNB" +msgstr "Unicable LNB" + +msgid "Unicable Martix" +msgstr "Unicable Martix" + +msgid "Uninstall" +msgstr "Eemalda" + +msgid "Universal LNB" +msgstr "Universaal LNB" + +msgid "Unknown" +msgstr "Tundmatu" + +msgid "Unmount" +msgstr "Haagi lahti" + +msgid "Unsupported" +msgstr "Pole toetatud" + +msgid "Update" +msgstr "Uuendus" + +msgid "Update and ask to reboot" +msgstr "Uuenda ja küsi luba taaskäivitamiseks" + +msgid "Update and reboot (recommended)" +msgstr "Uuenda ja taaskäivita (soovitatav)" + +msgid "Update channel list only" +msgstr "Uuenda ainult kanalinimekiri" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "Uuendamine tehtud, paigaldati %d pakett." +msgstr[1] "Uuendamine tehtud, paigaldati %d paketti." + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "Uuendamine on tehtud. Kas taaskäivitad vastuvõtja?" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "Uuendamine nurjus. Vastuvõtjal puudub töötav internetiühendus." + +msgid "Update has completed." +msgstr "Uuendamine on lõppenud." + +msgid "Updatefeed not available." +msgstr "Uuenduslink pole saadaval." + +msgid "Updating software catalog" +msgstr "Uuendan tarkvara kataloogi" + +msgid "Upgrading" +msgstr "Uuendan" + +msgid "Use" +msgstr "Kasuta" + +msgid "Use DHCP" +msgstr "Kasuta DHCP:d" + +msgid "Use EIT EPG information when it is available." +msgstr "EIT EPG kasutamine, kui see on saadaval." + +msgid "Use FreeSat EPG information when it is available." +msgstr "FreeSat EPG kasutamine, kui see on saadaval." + +msgid "Use MHW EPG information when it is available." +msgstr "MHW EPG kasutamine, kui see on saadaval." + +msgid "Use Netmed EPG information when it is available." +msgstr "Netmed EPG kasutamine, kui see on saadaval." + +msgid "Use TV remote control" +msgstr "Kasuta teleri pulti" + +msgid "Use USALS for this sat" +msgstr "Kasuta sellel satelliidil USALS" + +msgid "Use ViaSat EPG information when it is available." +msgstr "Viasat EPG kasutamine, kui see on saadaval." + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +msgid "Use a gateway" +msgstr "Kasuta lüüsi" + +msgid "Use fastscan channel names" +msgstr "Kasuta kiirotsingu kanalinimesi" + +msgid "Use fastscan channel numbering" +msgstr "Kasuta kiirotsingu kanalinumeratsiooni" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "" + +msgid "Use interface" +msgstr "Kasuta võrguliidest" + +msgid "Use official channel numbering" +msgstr "Kasuta ametlikku kanalinumeratsiooni" + +msgid "Use original DVB subtitle position" +msgstr "Kasuta algset DVB subtiitrite asukohta" + +msgid "Use original teletext position" +msgstr "Kasuta algset teleteksti asukohta" + +msgid "Use power measurement" +msgstr "Kasuta võimsuse mõõtmist" + +msgid "Use the network wizard to configure selected network adapter" +msgstr "Kasuta abilist valitud võrgukaardi seadmiseks" + +msgid "Use the network wizard to configure your network\n" +msgstr "Kasuta seadistusabilist oma võrgu seadistamiseks\n" + +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "Kasuta valimiseks üles/alla nuppu puldil, siis vajuta OK." + +msgid "Use the wizard to set up basic features" +msgstr "Kasuta abimeest põhiomaduste seadmiseks" + +msgid "Use these input device settings?" +msgstr "Kasutad selle sisendseadme seadeid?" + +msgid "Use these settings?" +msgstr "Kasutad neid seadeid?" + +msgid "Use this video enhancement settings?" +msgstr "Kasuta neid pildiparanduse seadeid?" + +msgid "Use trash can in movielist" +msgstr "Kasuta filmilistis prügikasti" + +msgid "Used service scan type" +msgstr "Kasutatud otsingu tüüp" + +msgid "User - bouquets" +msgstr "Lemmiknimekirjad" + +msgid "User defined" +msgstr "Kasutaja määratud" + +msgid "User defined transponder" +msgstr "" + +msgid "User interface" +msgstr "Kasutajaliides" + +msgid "Username" +msgstr "Kasutajatunnus" + +#, python-format +msgid "Using LNB %d" +msgstr "Kasutuses LNB %d" + +msgid "Using fixed address" +msgstr "Püsiaadress kasutuses" + +#, python-format +msgid "Using tuner %s" +msgstr "Kasutuses tuuner %s" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "Tavaliselt subtiitreid ei näidata, kui nende keel kattub heli keelega. Siin valikus saab selle lubada." + +msgid "VCR scart" +msgstr "VCR scart" + +msgid "VMGM (intro trailer)" +msgstr "VMGM (intro trailer)" + +msgid "Vertical" +msgstr "Vertikaal" + +msgid "Vertical turning speed" +msgstr "Vertikaalse pööramise kiirus" + +msgid "Video PID" +msgstr "Video PID" + +msgid "Video enhancement preview" +msgstr "Pildi paranduste eelvaade" + +msgid "Video enhancement settings" +msgstr "Pildi paranduste seaded" + +msgid "Video enhancement setup" +msgstr "Pildi paranduste seaded" + +msgid "Video fine tuning" +msgstr "Video peenhäälestus" + +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Video sisendi valik\n" +"\n" +"Vajuta OK, kui näed seda lehekülge TV ekraanil(või vali teine sisend).\n" +"\n" +"Järgmist sisendit proovitakse automaatselt 20 sekundi möödudes." + +msgid "Video mode selection." +msgstr "Video valik." + +msgid "Video output" +msgstr "Video väljund" + +msgid "Video setup" +msgstr "Video seaded" + +msgid "Video wizard" +msgstr "Video juhend" + +#, python-format +msgid "Video: %s fps" +msgstr "" + +msgid "VideoMode" +msgstr "" + +msgid "Videocodec" +msgstr "Videokoodek" + +msgid "Videoformat" +msgstr "Videoformaat" + +msgid "Videosize" +msgstr "Videosuurus" + +msgid "View Rass interactive..." +msgstr "Vaata Rass interactive" + +msgid "View details" +msgstr "Vaata detaile" + +msgid "View list of available " +msgstr "Vaata saadaval olevat nimekirja " + +msgid "View list of available CommonInterface extensions" +msgstr "Vaata CI laienduste nimekirja" + +msgid "View list of available EPG extensions." +msgstr "Vaata EPG laienduste nimekirja." + +msgid "View list of available Satellite equipment extensions." +msgstr "Vaata võimalike SAT seadmete laienduste nimekirja." + +msgid "View list of available communication extensions." +msgstr "Vaata infovahetus laienduste nimekirja." + +msgid "View list of available default settings" +msgstr "Vaata vaikimisi seadete nimekirja" + +msgid "View list of available display and userinterface extensions." +msgstr "Vaata saadaolevate kasutajaliidese laienduste nimekirja." + +msgid "View list of available multimedia extensions." +msgstr "Vaata multimeedia laienduste nimekirja." + +msgid "View list of available networking extensions" +msgstr "Vaata võrgu laienduste nimekirja" + +msgid "View list of available recording extensions" +msgstr "Vaata salvestuseks vajalike laienduste nimekirja" + +msgid "View list of available skins" +msgstr "Vaata välimuste nimekirja" + +msgid "View list of available software extensions" +msgstr "Vaata tarkvara laienduste nimekirja" + +msgid "View list of available system extensions" +msgstr "Vaata süsteemi laienduste nimekirja" + +msgid "View photos..." +msgstr "Vaata pilte..." + +msgid "View teletext..." +msgstr "Kuva teletekst" + +msgid "View video CD..." +msgstr "Vaata video CD..." + +msgid "Virtual keyboard" +msgstr "Virtuaalklahvistik" + +msgid "Voltage mode" +msgstr "Pinge tüüp" + +msgid "Volume" +msgstr "Helitugevus" + +msgid "W" +msgstr "W" + +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "WiFi ühendus" + +msgid "WPA" +msgstr "WPA" + +msgid "WPA or WPA2" +msgstr "WPA või WPA2" + +msgid "WPA2" +msgstr "WPA2" + +msgid "WSS on 4:3" +msgstr "WSS 4:3 -ga" + +msgid "Waiting" +msgstr "Ootan" + +msgid "Waiting for mount" +msgstr "Oodatakse haakimist" + +msgid "Waiting for partition" +msgstr "Oodatakse partitsiooni" + +msgid "Wakeup" +msgstr "Ärata" + +msgid "Wakeup TV from standby" +msgstr "Käivita teler" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "Käivita vastuvõtja" + +msgid "Wakeup signal from TV" +msgstr "Äratussignaal telerist" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "Hoiatus: LNB puudub; kautatakse algseadeid." + +msgid "Watch movies..." +msgstr "Vaata filme..." + +msgid "Watch recordings..." +msgstr "Vaata salvestusi..." + +msgid "Wed" +msgstr "K" + +msgid "Wednesday" +msgstr "Kolmapäev" + +msgid "Weekday" +msgstr "Nädalapäev" + +msgid "Weighted position" +msgstr "Korrigeeritud asukoht" + +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"Tere tulemast salvestise lõikajasse.\n" +"\n" +"Keri lõike koha algusesse.Vajuta OK, 'lõike algus'.\n" +"\n" +"Edasi otsi lõike lõpp, vajuta OK. Tehtud." + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "Tere tulemast tarkvara uuendamise abilisse. See aitab vastuvõtja tarkvara uuendamisel pakkudes võimaluse varundada praegused seaded ja väikese õpetuse kuidas uuendada." + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" +"Tere tulemast.\n" +"\n" +"Kui tahad vastuvõtja ühendada internetti, siis see abiline juhendab võrgu seadistamisel.\n" +"\n" +"Võrgu seadistamise alustamiseks vajuta OK" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" +"Tere.\n" +"\n" +"See stardiabiline juhendab vastuvõtja põhiseadete tegemisel.\n" +"Järgmise sammu juurde minekuks vajuta puldil OK." + +msgid "Welcome..." +msgstr "Tere tulemast" + +msgid "West" +msgstr "Lääs" + +msgid "West limit set" +msgstr "Lääne piir on määrarud" + +msgid "What do you want to scan?" +msgstr "Mida soovid otsida?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "" + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "" + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "Määrates 'jah', kaasatakse AIT andmed http voogudesse. See võimaldab vastuvõtjal HbbTV kasutamise." + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "Määrates 'jah', kaasatakse ECM andmed http voogudesse. Nii toimub dekodeerimine klientvastuvõtjas." + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "Määrates 'jah', kaasatakse EIT andmed http voogudesse. See võimaldab klientvastuvõtjal EPG kasutamise." + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "Määrates 'jah', teavitatakse filmi lõppemisest ja uue algamisest hüpikaknaga." + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "Määrates 'jah', teavitatakse salvestamise alustamisest hüpikaknaga." + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "Määrates 'jah', näidatakse raadiokanalil oleku ajal taustapilti." + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "Määrates 'jah', katkestab algav salvestus vaadatava saate juhul, kui ei leidu vabat tuunerit." + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "" + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "Määrates 'jah', algavad kanalinumbrid igas lemmiknimekirjas numbriga '1'." + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "Määrares 'jah', venitatakse 4:3 sisu täitmaks kogu ekraani." + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "Määrates 'jah', liigutakse kanalivahetusel käesoleva lemmiknimekirja lõppu jõudes järgmisesse lemmiknimekirja." + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "Määrates 'jah', ei kustutata salvestusi silmapilkselt, vaid liigutatakse prügikasti." + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "Määrates 'jah', näidatakse inforibal EIT nüüd/järgmine saateinfot. Määrates 'ei', võetakse EIT nüüd/järgmine saateinfo EPG vahemälust." + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "Määrates 'jah', näidatakse salastatust inforibal (kui teema seda toetab)." + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "Määrates 'jah', ei näidata CI mooduliga seotud veateateid." + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "Määrates 'jah', ei näidata kanalivahetusega seotud veateateid." + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "" + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "Määrates 'jah' eelistatakse mõlema olemasolul DVB subtiitreid teleteksti omadele." + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "Määrates 'jah', kuvatakse DVB subtiitrid horisontaalselt tsentreerituna." + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "Määrates 'jah', kuvatakse DVB subtiitrid nende algsel asukohal." + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "Määrates 'jah', kuvatakse DVB subtiitrid nende tõelise värvi asemel kollasena." + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "Määrates 'jah', dekodeeritakse http vood serveri poolt. Klientvastuvõtja ei pea neid enam dekodeerima." + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "" + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "Määrates 'jah', mõõdetakse energia kulu, tuvastamaks mootori pööramise lõppemist (kui vastuvõtja seda toetab)." + +msgid "When enabled, number markers will be hiden." +msgstr "" + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "Määrates 'jah', saad kasutada rohkem kui ühte lemmiknimekirja." + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "Määrates 'jah', näidatakse kanalinimekirjas kanalinumbreid." + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "Määrates 'jah', saab kasutada vaegkuuljatele mõeldud subtiitreid." + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "Määrates 'jah' eelistatakse mõlema olemasolul vaegkuuljate subtiitreid tavalistele." + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "Määrates 'jah', puhverdadakse teleteksti lehed, võimaldamaks kiiremat ligipääsu." + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "Määrates 'jah', kuvatakse teleteksti subtiitrid nende algsel asukohal." + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "Määrates 'jah', ei näidata raadiot kuulates kanalinimekirja." + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "Määrates 'jah', kuvatakse uue saate algamisel inforiba." + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "Määrates 'jah', kuvatakse kanalivahetusel inforiba." + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "Määrates 'jah', kuvatakse meediafailide esitusel edasi/tagasi hüpates inforiba." + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "Määrates 'jah', näidatakse filmilistis salvestuse kestust (laadimine võib kesta veidi kauem)." + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "Määrates 'jah', kasutakse teleteksti subtiitritel parandamata reamurdmist." + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "Määrates 'jah', kasutab vastuvõtja automaatselt varem valitud heliriba." + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "Määrates 'jah', kasutatakse automaatselt varem valitud subtiitreid." + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "Määrates 'jah', ei jälgi vastuvõtja enam võimalikke muudatusi transponderil. Kasuta seda ainult juhul, kui oled täiesti kindel, et tead, mida teed." + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "Määrates 'jah', kasutab vastuvõtja (võimaluse korral) AC3 heli." + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "" + +msgid "When enabled, use DHCP for the IP configuration." +msgstr "Määrates 'jah', kasutatakse IP määramiseks DHCP-d." + +#, fuzzy +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "Määrates 'jah', kasutab vastuvõtja (võimaluse korral) AC3 heli." + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "Salvestamist alustatakse enne saatekavas näidatud aega." + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "Salvestamine lõpetatakse pärast saatekavas näidatud aega." + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "Määra, kas 16:9 pildisuhtega sisu tuleb skaleerida/venitada." + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "Määra, kas 4:3 pildisuhtega sisu tuleb skaleerida/venitada." + +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"Kui Te taastate algseadistuse, kaovad kõik TEIE isiklikud seaded\n" +"(ka lemmikud, kanalid, satelliidid, konf.failid jne.)\n" +"Pärast algseadistuse taastamist, teeb vastuvõtja automaatselt alglaadimise!\n" +"\n" +"Soovid ikka kindlasti taastada algseadistuse?" + +msgid "Where do you want to backup your settings?" +msgstr "Kuhu teha seadete varukoopia?" + +msgid "Where to save temporary timeshift recordings?" +msgstr "Kuhu salvestada ajanihke sisu?" + +msgid "Wireless LAN" +msgstr "Traadita LAN" + +msgid "Wireless network" +msgstr "Traadita võrk" + +msgid "Wireless network configuration..." +msgstr "Wifi võrgu häälestamine..." + +msgid "Wireless network connection setup" +msgstr "Wifi võrgu seadistus" + +msgid "Wireless network connection setup." +msgstr "Wifi võrgu seadistus." + +msgid "Wireless network state" +msgstr "Wifi võrgu olek" + +msgid "With popup" +msgstr "Popup aknaga" + +msgid "Without popup" +msgstr "Ilma popup aknata" + +msgid "Would you like to install a softcam?" +msgstr "Kas paigaldad EMU?" + +msgid "Write error while recording. Disk full?\n" +msgstr "Kirjutamise viga. Kõvaketas täis?\n" + +msgid "Write failed!" +msgstr "Kirjutamine nurjus!" + +msgid "YPbPr" +msgstr "YPbPr" + +msgid "Year" +msgstr "Aasta" + +msgid "Yellow DVB subtitles" +msgstr "Kollased DVB subtiitrid" + +msgid "Yes" +msgstr "Jah" + +msgid "Yes and save" +msgstr "" + +msgid "Yes and save in movie dir" +msgstr "" + +msgid "Yes to all" +msgstr "Kõigile JAH" + +msgid "Yes, always" +msgstr "Jah, alati" + +msgid "Yes, and delete this movie" +msgstr "Jah, kustuta see salvestis" + +msgid "Yes, backup my settings!" +msgstr "Jah, tee seadetest varukoopia!" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +msgid "Yes, do a manual scan now" +msgstr "Jah, tee nüüd käsiotsing" + +msgid "Yes, do an automatic scan now" +msgstr "Jah, tee nüüd automaatotsing" + +msgid "Yes, do another manual scan now" +msgstr "Jah, tee nüüd uus käsiotsing" + +msgid "Yes, perform a shutdown now." +msgstr "Jah, lülita välja." + +msgid "Yes, restore the settings now" +msgstr "Jah, taasta nüüd seaded" + +msgid "Yes, returning to movie list" +msgstr "Jah, tagasi salvestiste nimekirja" + +msgid "Yesterday" +msgstr "Eile" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" +"Kanalinimekiri on juba paigaldatud,\n" +"kas soovid eemaldada\n" +"\"%s\"?" + +msgid "You can cancel the installation." +msgstr "Paigaldamise saab tühistada." + +msgid "You can cancel the removal." +msgstr "Eemaldamise saab tühistada." + +msgid "You can continue watching TV etc. while this is running." +msgstr "Samal ajal võib vaatata TV-d jne." + +msgid "You can install this plugin." +msgstr "Selle laienduse saab paigaldada." + +msgid "You can only burn receiver recordings!" +msgstr "Plaadile saab kirjutada ainult vastuvõtja salvestusi!" + +msgid "You can remove this plugin." +msgstr "Selle laienduse saab eemaldada." + +msgid "You cannot delete this!" +msgstr "Seda ei saa kustutada!" + +msgid "You didn't select a channel to record from." +msgstr "Salvestatavat kanalit pole valitud." + +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "Oled otsustanud luua turvakoopia kõvakettale. Vajuta OK alustamiseks nüüd." + +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "Soovid luua uue alglaetava USB-pulga tarkvarale. Kõik vana info USB pulgal läheb kaduma !!!" + +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "Oled valinud oma seadete taastamise. Enigma2 taaskäivitub pärast taastamist. Vajuta nüüd OK taastamise alustamiseks." + +#, python-format +msgid "You have to wait %s!" +msgstr "Tuleb oodata %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" +"Vastuvõtja tuleb ühendada arvutiga. Kui on vaja abi, siis vaata : http://www.dm7025.de.\n" +"Vastuvõtja on nüüd peatatud.Kui on täidetud uuendamise juhised veebilehelt, siis uus tarkvara palub taastada seadeid." + +msgid "You system does not support ext4" +msgstr "See süsteem ei toeta ext4" + +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "Varukoopia valmis. Me informeerime edasistest uuenduste käigust." + +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "Kogu valik ei mahu ühekihilisele plaadile, vaja on tühja kahekihilist DVD plaati!" + +msgid "Your current collection will get lost!" +msgstr "Praegune valik kustutatakse!" + +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"Frontprotsessori tarkvara tuleb uuendada.\n" +"Uuendamiseks vajuta OK." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Esiprotsessorit uuendatakse\n" +"Oota vastuvõtja taaskäivitumist\n" +"See võib võtta mõne minuti" + +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"Interneti ühendus ei tööta!\n" +"Vali mida soovid teha edasi." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "Internetiühendus töötab (ip: %s)" + +msgid "Your network configuration has been activated." +msgstr "Võrguseadistus on aktiveeritud." + +msgid "Your receiver does not have an internet connection" +msgstr "Vastuvõtjal puudub internetiühendus" + +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"Vastuvõtja on kasutamiseks valmis.\n" +"\n" +"Interneti ühendus töötab.\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Vastuvõtja on kasutamiseks valmis.\n" +"\n" +"Internetiühendus töötab.\n" +"\n" +"Jätkamiseks vajuta OK." + +msgid "Your receiver is rebooting" +msgstr "Vastuvõtja taaskäivitub" + +msgid "Your receiver is shutting down" +msgstr "Vastuvõtja lülitub välja" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "Vastuvõtja lülitub välja. Oota" + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "Vastuvõtja võib olla nüüd kasutuskõlbmatu. Uuri juhendit täiendava abi leidmiseks enne vastuvõtja taaskäivitamist." + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "" + +msgid "Your receiver will got to standby due to inactivity." +msgstr "" + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "Vastuvõtja taaskäivitub pärast puldil OK vajutamist." + +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"WLAN ühendust ei saa tööle!\n" +"Kas WLAN USB pulk on ühendatud?\n" +"\n" +"Vali, mida soovid teha edasi." + +msgid "Zap" +msgstr "Mine kanalile" + +msgid "Zap back to previously tuned service?" +msgstr "Tagasi vaadatud kanalile?" + +msgid "Zap back to service before positioner setup?" +msgstr "Tagasi vaadatud kanalile?" + +msgid "Zap back to service before tuner setup?" +msgstr "Tagasi vaadatud kanalile?" + +msgid "Zap focus to Picture in Picture" +msgstr "Kanalivahetus PiP kanalil" + +msgid "Zap focus to main screen" +msgstr "Fookus peaekraanile" + +msgid "Zap mode" +msgstr "" + +msgid "Zap to selected channel" +msgstr "Mine valitud kanalile" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "Mine valitud kanalile või näita saateinfot (sõltub seadistusest)" + +msgid "[alternative edit]" +msgstr "[lisavõimaluste lisamine ja kustutamine]" + +msgid "[bouquet edit]" +msgstr "[lemmiknimekirjade muutmine]" + +msgid "[favourite edit]" +msgstr "[lemmikute muutmine]" + +msgid "[move mode]" +msgstr "[liigutamine]" + +msgid "a gui to assign services/providers to common interface modules" +msgstr "CI kasutajaliidese määratud kanalid/teenused/levitajad" + +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "CI kasutajaliidese määratud kanalid/levitajad/caids" + +msgid "abort alternatives edit" +msgstr "tühista muudatused" + +msgid "abort bouquet edit" +msgstr "tühista muudatused" + +msgid "abort favourites edit" +msgstr "tühista muudatused" + +msgid "about to start" +msgstr "algamas" + +msgid "activate network adapter configuration" +msgstr "aktiveeri võrgukaardi seaded" + +msgid "add alternatives" +msgstr "valikute lisamine" + +msgid "add bookmark" +msgstr "lisa uus tähis" + +msgid "add bouquet" +msgstr "lisa nimekiri" + +msgid "add marker" +msgstr "lisa marker" + +msgid "add service to bouquet" +msgstr "lisa kanal nimekirja" + +msgid "add service to favourites" +msgstr "lisa kanal lemmikutesse" + +msgid "add to parental protection" +msgstr "lisa lapselukk" + +msgid "adult movie/drama" +msgstr "täiskasvanute film/draama" + +msgid "advanced" +msgstr "lisavalikud" + +msgid "adventure/western/war" +msgstr "seiklus/vestern/sõda" + +msgid "advertisement/shopping" +msgstr "reklaam/ostukanal" + +msgid "after " +msgstr "" + +msgid "alphabetic" +msgstr "tähestikujärjekord" + +msgid "alphabetic reverse" +msgstr "tagurpidi tähestikujärjekord" + +msgid "alternative" +msgstr "" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "Kunst/kultuur (välja arvatud muusika)" + +msgid "arts/culture magazine" +msgstr "kunsti- ja kultuurimagasin" + +msgid "athletics" +msgstr "kergejõustik" + +msgid "audio tracks" +msgstr "audio rajad" + +msgid "auto" +msgstr "automaatne" + +msgid "automatic" +msgstr "automaatne" + +msgid "back" +msgstr "tagasi" + +msgid "background image" +msgstr "taustapilt" + +msgid "ballet" +msgstr "ballett" + +#, python-format +msgid "bc%s" +msgstr "" + +msgid "better" +msgstr "parem" + +msgid "black" +msgstr "must" + +msgid "black & white" +msgstr "must-valge" + +msgid "blacklist" +msgstr "keelatud" + +msgid "blue" +msgstr "sinine" + +msgid "broadcasting/press" +msgstr "ringhääling/ajakirjandus" + +msgid "by date" +msgstr "ajaline järjestus" + +msgid "cartoon/puppets" +msgstr "joonis/nukufilm" + +msgid "center" +msgstr "keskel" + +msgid "centered" +msgstr "" + +msgid "centered, wrapped" +msgstr "" + +msgid "chapters" +msgstr "peatükid" + +msgid "childrens's/youth program (general)" +msgstr "laste/noortesaade" + +msgid "circular left" +msgstr "ringpolarisatsioon vasak" + +msgid "circular right" +msgstr "ringpolarisatsioon parem" + +msgid "comedy" +msgstr "komöödia" + +msgid "complex" +msgstr "keeruline" + +msgid "config menu" +msgstr "seadete menüü" + +msgid "confirmed" +msgstr "kinnitatud" + +msgid "connected" +msgstr "ühendatud" + +msgid "continue" +msgstr "jätka" + +msgid "cooking" +msgstr "kokasaade" + +msgid "copy to bouquets" +msgstr "kopeeri nimekirjadesse" + +msgid "create directory" +msgstr "Loo kataloog" + +#, python-format +msgid "currently installed image: %s" +msgstr "praegu paigaldatud tarkvara: %s" + +msgid "daily" +msgstr "iga päev" + +msgid "day" +msgstr "päev" + +msgid "default" +msgstr "vaikimisi" + +msgid "delete cut" +msgstr "kustuta lõige" + +msgid "delete..." +msgstr "" + +msgid "descramble and record ecm" +msgstr "dekodeeri ja salvesta ecm" + +msgid "detective/thriller" +msgstr "detektiiv/triller" + +msgid "disable" +msgstr "keela" + +msgid "disable move mode" +msgstr "keela move mode" + +msgid "disabled" +msgstr "keelatud" + +msgid "disconnected" +msgstr "ühendamata" + +msgid "discussion/interview/debate" +msgstr "vestlus/intervjuu/debatt" + +msgid "do nothing" +msgstr "ära tee midagi" + +msgid "documentary" +msgstr "dokumentaal" + +msgid "don't descramble, record ecm" +msgstr "ära salvesta, dekodeeri ecm" + +msgid "done!" +msgstr "valmis!" + +msgid "east" +msgstr "ida" + +msgid "economics/social advisory" +msgstr "majandus/hoolekanne" + +msgid "edit alternatives" +msgstr "lisavõimaluste lisamine ja kustutamine" + +msgid "education/science/factual topics (general)" +msgstr "haridus/teadus" + +msgid "empty" +msgstr "tühi" + +msgid "enable" +msgstr "luba" + +msgid "enable bouquet edit" +msgstr "luba nimekirjade muutmine" + +msgid "enable favourite edit" +msgstr "luba lemmikute muutmine" + +msgid "enable move mode" +msgstr "luba liigutamine menüüdes" + +msgid "enabled" +msgstr "lubatud" + +msgid "end alternatives edit" +msgstr "salvesta muudatused ja välju" + +msgid "end bouquet edit" +msgstr "salvesta muudatused ja välju" + +msgid "end cut here" +msgstr "lõpeta lõige siin" + +msgid "end favourites edit" +msgstr "salvesta muudatused ja välju" + +msgid "entertainment (10-16 year old)" +msgstr "meelelahutus (10-16 aastastele)" + +msgid "entertainment (6-14 year old)" +msgstr "meelelahutus (6-14 aastastele)" + +msgid "equal to" +msgstr "on võrdne" + +msgid "equestrian" +msgstr "ratsutamine" + +msgid "exit DVD player or return to file browser" +msgstr "välju DVD-mängijast või mine tagasi failisirvijasse" + +msgid "exit movielist" +msgstr "" + +msgid "exit network adapter configuration" +msgstr "lõpeta võrgukaardi häälestamine" + +msgid "exit networkadapter setup menu" +msgstr "välju võrgukaardi seadistusmenüüst" + +msgid "experimental film/video" +msgstr "eksperimentaalne film/video" + +msgid "false" +msgstr "väär" + +msgid "fashion" +msgstr "mood" + +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "failiformaadid (BMP, PNG, JPG, GIF)" + +msgid "filename" +msgstr "faili nimi" + +msgid "film/cinema" +msgstr "film/kino" + +msgid "fine arts" +msgstr "kaunid kunstid" + +msgid "fine-tune your display" +msgstr "peenhäälesta ekraani" + +msgid "fitness & health" +msgstr "" + +#, fuzzy +msgid "flat alphabetic" +msgstr "tähestikujärjekord" + +#, fuzzy +msgid "flat alphabetic reverse" +msgstr "tähestikujärjekord" + +msgid "folk/traditional music" +msgstr "folk/rahvamuusika" + +msgid "football/soccer" +msgstr "jalgpall" + +msgid "foreign countries/expeditions" +msgstr "" + +msgid "forward to the next chapter" +msgstr "hüppa järgmisele peatükile" + +msgid "free" +msgstr "vaba" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "" + +msgid "game show/quiz/contest" +msgstr "" + +msgid "gardening" +msgstr "aiandus" + +msgid "go to deep standby" +msgstr "mine sügavootele" + +msgid "go to standby" +msgstr "mine ooterežiimi" + +msgid "grab this frame as bitmap" +msgstr "salvesta see kaader bitmapina" + +msgid "green" +msgstr "roheline" + +msgid "handicraft" +msgstr "käsitöö" + +msgid "height" +msgstr "kõrgus" + +msgid "help..." +msgstr "abi" + +msgid "horizontal" +msgstr "horisontaal" + +msgid "information/education/school program" +msgstr "teave/haridus/kooliprogramm" + +msgid "init module" +msgstr "käivita moodul" + +msgid "init modules" +msgstr "käivita moodul" + +msgid "insert mark here" +msgstr "pane märk siia" + +msgid "invalid type" +msgstr "kehtetu tüüp" + +msgid "jazz" +msgstr "džäss" + +msgid "jump back to the previous title" +msgstr "hüppa eelmisele salvestisele" + +msgid "jump forward to the next title" +msgstr "hüppa järgmisele salvestisele" + +msgid "languages" +msgstr "keeled" + +msgid "leave movie player..." +msgstr "lõpeta salvestise taasesitus" + +msgid "left" +msgstr "vasak" + +msgid "left, wrapped" +msgstr "" + +msgid "leisure hobbies (general)" +msgstr "" + +msgid "length" +msgstr "pikkus" + +msgid "limit ..., aborting !" +msgstr "piir ..., katkestame!" + +msgid "list style compact" +msgstr "nimekirja stiil: kompaktne" + +msgid "list style compact with description" +msgstr "nimekirja stiil: kompaktne saatetutvustusega" + +msgid "list style default" +msgstr "nimekirja stiil: vaikeseaded" + +msgid "list style single line" +msgstr "nimekirja stiil: üks rida" + +msgid "literature" +msgstr "kirjandus" + +msgid "live broadcast" +msgstr "otsesaade" + +msgid "locked" +msgstr "lukustatud" + +msgid "loopthrough to" +msgstr "läbiviik kuni" + +msgid "magazines/reports/documentary" +msgstr "" + +msgid "manual" +msgstr "juhend" + +msgid "martial sports" +msgstr "" + +msgid "medicine/physiology/psychology" +msgstr "" + +msgid "menu" +msgstr "menüü" + +msgid "mins" +msgstr "min" + +msgid "minutes" +msgstr "minutid" + +msgid "month" +msgstr "kuu" + +msgid "motor sport" +msgstr "motosport" + +msgid "motoring" +msgstr "" + +msgid "move down to last entry" +msgstr "liigu viimasele reale" + +msgid "move down to next entry" +msgstr "liigu järgmisele reale" + +msgid "move up to first entry" +msgstr "liigu esimesele reale" + +msgid "move up to previous entry" +msgstr "liigu eelmisele reale" + +msgid "movie/drama (general)" +msgstr "" + +msgid "multinorm" +msgstr "multinorm" + +msgid "music/ballet/dance (general)" +msgstr "" + +msgid "musical/opera" +msgstr "muusikal/ooper" + +msgid "nature/animals/environment" +msgstr "" + +msgid "never" +msgstr "mitte kunagi" + +msgid "new media" +msgstr "uus meedia" + +msgid "news magazine" +msgstr "uudismagasin" + +msgid "news/current affairs (general)" +msgstr "" + +msgid "news/weather report" +msgstr "uudised/ilmateade" + +msgid "no" +msgstr "ei" + +msgid "no CAId selected" +msgstr "CAId-i pole valitud" + +msgid "no CI slots found" +msgstr "moodulit ei leitud" + +msgid "no module found" +msgstr "moodulit ei leitud" + +msgid "no storage devices found" +msgstr "andmekandjaid ei leitud" + +msgid "none" +msgstr "mitte midagi" + +msgid "normal" +msgstr "" + +msgid "not configured" +msgstr "ei ole häälestatud" + +msgid "not locked" +msgstr "pole lukustatud" + +msgid "not supported" +msgstr "pole toetatud" + +msgid "not used" +msgstr "pole lukustatud" + +msgid "nothing connected" +msgstr "pole ühendatud" + +msgid "of a DUAL layer medium used." +msgstr "kasutatud kahekihilisest kettast." + +msgid "of a SINGLE layer medium used." +msgstr "kasutatud ühekihilisest kettast." + +msgid "off" +msgstr "väljas" + +msgid "offset is" +msgstr "" + +msgid "on" +msgstr "sees" + +msgid "on READ ONLY medium." +msgstr "ainult LOETAV meedial." + +msgid "on end of movie" +msgstr "" + +msgid "once" +msgstr "üks kord" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +msgid "open nameserver configuration" +msgstr "nimeserveri seaded" + +msgid "original" +msgstr "algne" + +msgid "original language" +msgstr "algupärane keel" + +msgid "pass" +msgstr "lubatud" + +msgid "performing arts" +msgstr "" + +msgid "play as picture in picture" +msgstr "näita kanal pilt-pildis" + +msgid "play in mainwindow" +msgstr "näita peaaknas" + +msgid "please press OK when ready" +msgstr "vajuta OK kui valmis" + +msgid "please wait, loading picture..." +msgstr "pilti laetakse. oota" + +msgid "popular culture/traditional arts" +msgstr "" + +msgid "pre-school children's program" +msgstr "koolieelikute saade" + +msgid "receiver software because updates are available." +msgstr "vastuvõtja tarkvara, sest uuendused on saadaval." + +msgid "record" +msgstr "salvestus" + +msgid "recording..." +msgstr "salvestan" + +msgid "red" +msgstr "punane" + +msgid "religion" +msgstr "religioon" + +msgid "remarkable people" +msgstr "" + +msgid "remove after this position" +msgstr "kustuta selle koha järel" + +msgid "remove all alternatives" +msgstr "kustuta kõik asenduskanalid" + +msgid "remove all new found flags" +msgstr "kustuta kõik uus kanal-tunnused" + +msgid "remove before this position" +msgstr "kustuta kõik enne seda kohta" + +msgid "remove bookmark" +msgstr "kustuta järjehoidja" + +msgid "remove directory" +msgstr "kustuta kataloog" + +msgid "remove entry" +msgstr "kustuta" + +msgid "remove from parental protection" +msgstr "eemalda lapselukk" + +msgid "remove new found flag" +msgstr "eemalda uus kanal-tunnus" + +msgid "remove selected satellite" +msgstr "eemalda valitud satelliit" + +msgid "remove this mark" +msgstr "eemalda see märk" + +msgid "rename entry" +msgstr "nimeta nimekiri ümber" + +msgid "repeat playlist" +msgstr "korda esitusloendit" + +msgid "repeated" +msgstr "korduvalt" + +msgid "reverse by date" +msgstr "tagurpidi kuupäevajärj." + +msgid "rewind to the previous chapter" +msgstr "tagasi eelmisele peatükile" + +msgid "right" +msgstr "parem" + +msgid "right, wrapped" +msgstr "" + +msgid "rock/pop" +msgstr "rock/pop" + +msgid "romance" +msgstr "romantika" + +msgid "save last directory on exit" +msgstr "pea väljumisel asukoht meeles" + +msgid "save playlist on exit" +msgstr "salvesta esitusloend" + +msgid "scan state" +msgstr "otsingu seis" + +msgid "science fiction/fantasy/horror" +msgstr "" + +msgid "second cable of motorized LNB" +msgstr "" + +msgid "seconds" +msgstr "sekundit" + +msgid "select" +msgstr "vali" + +msgid "select CAId's" +msgstr "vali CAID-id" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +msgid "select menu entry" +msgstr "vali menüüpunkt" + +msgid "select movie" +msgstr "vali salvestis" + +msgid "select the movie path" +msgstr "" + +msgid "serious music/classic music" +msgstr "" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "" + +msgid "service PIN" +msgstr "kanali PIN" + +msgid "set as startup service" +msgstr "käivita vastuvõtja sellel kanalil" + +msgid "setup PIN" +msgstr "seadete PIN" + +msgid "show DVD main menu" +msgstr "näita DVD peamenüüd" + +msgid "show all tags" +msgstr "näita kõiki märksõnu" + +msgid "show alternatives" +msgstr "näita alternatiivsed kanalid" + +msgid "show event details" +msgstr "näita saatetutvustust" + +msgid "show extended description" +msgstr "" + +msgid "show mediaplayer on mainmenu" +msgstr "näita meediaesitajat peamenüüs" + +msgid "show softwaremanager in setup menu" +msgstr "näita tarkvarahaldurit seadistusmenüüs" + +msgid "show softwaremanager on blue button" +msgstr "näita tarkvarahaldurit sinise nupu all" + +msgid "show tag menu" +msgstr "" + +msgid "show transponder info" +msgstr "näita transponderi infot" + +msgid "show/game show (general)" +msgstr "" + +msgid "shuffle" +msgstr "segatud" + +msgid "shut down" +msgstr "lülita välja" + +msgid "simple" +msgstr "lihtne" + +msgid "skip backward" +msgstr "mine tagasi" + +msgid "skip forward" +msgstr "mine edasi" + +msgid "soap/melodram/folkloric" +msgstr "" + +msgid "social/political issues/economics (general)" +msgstr "" + +msgid "social/spiritual science" +msgstr "" + +msgid "sorting of playlists" +msgstr "esitusloendite järjestamine." + +msgid "special characters" +msgstr "erimärgid" + +msgid "special events" +msgstr "" + +msgid "special format data DVD (HDTV compatible)" +msgstr "eri vormingus data DVD" + +msgid "sports (general)" +msgstr "" + +msgid "sports magazine" +msgstr "" + +msgid "standard" +msgstr "tavaline" + +msgid "start cut here" +msgstr "alusta lõiget siit" + +msgid "start directory" +msgstr "juur kaust" + +msgid "stepsize" +msgstr "sammu suurus" + +msgid "stereo" +msgstr "stereo" + +msgid "stop using as startup service" +msgstr "ära kasuta käivituskanalina" + +msgid "switch to bookmarks" +msgstr "mine lemmikute-loendisse" + +msgid "switch to filelist" +msgstr "mine faililoendisse" + +msgid "switch to the next angle" +msgstr "vali järgmine vaatenurk" + +msgid "switch to the next audio track" +msgstr "vali järgmine helikanal" + +msgid "switch to the next subtitle language" +msgstr "vali järgmine subtiiter" + +msgid "talk show" +msgstr "jutusaade" + +msgid "team sports" +msgstr "" + +msgid "technology/natural science" +msgstr "" + +msgid "template file" +msgstr "" + +msgid "tennis/squash" +msgstr "tennis/squash" + +msgid "this recording" +msgstr "see salvestis" + +msgid "this service is protected by a parental control pin" +msgstr "see kanal on kaitstud lapselukuga" + +msgid "toggle time, chapter, audio, subtitle info" +msgstr "vaheta aja, salvestuse, heli, subtiitri info" + +msgid "top" +msgstr "ülal" + +msgid "tourism/travel" +msgstr "" + +msgid "true" +msgstr "tõene" + +msgid "unavailable" +msgstr "pole saadaval" + +msgid "unconfirmed" +msgstr "kinnitamata" + +msgid "undefined" +msgstr "määramata" + +msgid "unknown" +msgstr "tundmatu" + +msgid "unknown service" +msgstr "tundmatu kanal" + +msgid "unpublished" +msgstr "avaldamata" + +msgid "until standby/restart" +msgstr "kuni ooterežiimini/taaskäivitamiseni" + +msgid "user defined" +msgstr "kasutaja määratud" + +msgid "variety show" +msgstr "" + +msgid "vertical" +msgstr "vertikaal" + +msgid "wait for ci..." +msgstr "ci ootel..." + +msgid "wait for mmi..." +msgstr "mmi ootel..." + +msgid "waiting" +msgstr "ootan" + +msgid "water sport" +msgstr "veesport" + +msgid "weekly" +msgstr "iga nädal" + +msgid "west" +msgstr "lääs" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "valge" + +msgid "whitelist" +msgstr "" + +msgid "width" +msgstr "laius" + +msgid "winter sport" +msgstr "talisport" + +msgid "wireless network interface" +msgstr "wifi võrguliides" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "" +msgstr[1] "" + +msgid "working" +msgstr "töös" + +msgid "yellow" +msgstr "kollane" + +msgid "yes" +msgstr "jah" + +msgid "yes (keep feeds)" +msgstr "jah (hoia feedid)" + +msgid "zap" +msgstr "kanalivahetus" + +msgid "zap and record" +msgstr "" + +msgid "zapped" +msgstr "vahetatud" + +#~ msgid "AA" +#~ msgstr "AA" + +#~ msgid "AB" +#~ msgstr "AB" + +#~ msgid "Activate PiP" +#~ msgstr "Ava pilt-pildis" + +#~ msgid "Add/remove timer for current event" +#~ msgstr "Lisa/eemalda taimer käesolevale saatele" + +#~ msgid "Adjust HDMI CEC settings" +#~ msgstr "Kohanda HDMI CEC seadeid" + +#~ msgid "All satellites" +#~ msgstr "Kõik satelliidid" + +#~ msgid "BA" +#~ msgstr "BA" + +#~ msgid "BB" +#~ msgstr "BB" + +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "Paus-nupu funktsioon" + +#~ msgid "Committed DiSEqC command" +#~ msgstr "Committed DiSEqC-käsk" + +#~ msgid "Configure the behavior of the 'pause' key when movie playback is already paused." +#~ msgstr "Määra 'paus' nupu toime, kui filmi esitus on juba peatatud." + +#~ msgid "DiSEqC repeats" +#~ msgstr "DiSEqC-kordused" + +#~ msgid "Goto specific data/time" +#~ msgstr "Mine kindlale kellaajale/kuupäevale" + +#~ msgid "No satellite frontend found!!" +#~ msgstr "Ei leitud satelliidi tuunerit!!" + +#~ msgid "Open service list and select next channel" +#~ msgstr "Ava kanalinimekiri ja vali järgmine kanal" + +#~ msgid "Open service list and select previous channel" +#~ msgstr "Ava kanalinimekiri ja vali eelmine kanal" + +#~ msgid "Press '0' to toggle internal/external PiP." +#~ msgstr "Sisese ja välise PIP vahetamiseks vajuta '0'." + +#~ msgid "Remove timer" +#~ msgstr "Eemalda taimer" + +#~ msgid "Send DiSEqC" +#~ msgstr "DiSEqC" + +#~ msgid "Switch next channel" +#~ msgstr "Järgmine kanal" + +#~ msgid "Tuning step size" +#~ msgstr "Häälestamise sammu suurus" + +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Uncommitted DiSEqC-käsk" + +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "Tagasi vaadatud kanalile?" + +#~ msgid "tuner is not supported" +#~ msgstr "tuuner pole toetatud" diff --git a/po/fa.po b/po/fa.po new file mode 100644 index 0000000..49badb5 --- /dev/null +++ b/po/fa.po @@ -0,0 +1,8291 @@ +# Persian translations for Enigma2. +# +msgid "" +msgstr "" +"Project-Id-Version: enigma2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2012-06-07 14:10+0330\n" +"Last-Translator: Persian Prince <persianprince@persianpros.org>\n" +"Language-Team: Persian Professionals <persianpros@yahoo.com>\n" +"Language: fa\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-Generator: Pootle 2.0.3\n" +"X-Poedit-Language: Persian\n" +"X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n" + +# +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"گزینه ها Ùˆ تنظیمات پیشرÙته" + +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"بعد از Ùشار دادن دکمه OK لطÙا صبر کنید" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" + +# +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"ویرایش آدرس منبع به روز رسانی" + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" + +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"دکمه OK را برای ادامه دادن Ùشار دهید" + +# +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"بازگردانی نسخه های پشتیبان شما توسط تاریخ" + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" + +# +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"اسکن برای بسته های محلی Ùˆ نصب آنها" + +# +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"وسیله مورد نظر برای تهیه نسخه پشتیبان را انتخاب کنید\n" +"وسیله Ùعلی: " + +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"مشاهده ØŒ نصب Ùˆ حذ٠بسته های در دسترس Ùˆ یا نصب شده" + +msgid " (PiP)" +msgstr "(تصویر در تصویر)" + +msgid " (Radio)" +msgstr "(رادیو)" + +msgid " (TV)" +msgstr "(تلوزیون)" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +msgid " extensions." +msgstr "بسته ها" + +msgid " ms" +msgstr "میلی ثانیه" + +msgid " packages selected." +msgstr "بسته های انتخاب شده" + +# +msgid " updates available." +msgstr "به روز رسانی های در دسترس" + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "%2d:%02d" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "%2d:%02d:%02d" + +msgid "%A %d %B" +msgstr "" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "%A %e %B" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "%A %e %B %Y" + +msgid "%H:%M" +msgstr "%ساعت:%دقیقه" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "%a %e/%m" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "%a %e/%m %-H:%M" + +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, fuzzy, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "%d کانال یاÙت شد" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d ساعت" + +#, fuzzy, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d عملیات در پس زمینه انجام میشود" + +#, python-format +msgid "%d min" +msgstr "%d دقیقه" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d دقیقه" + +#, python-format +msgid "%d minutes" +msgstr "%d دقیقه" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d ثانیه" + +#, fuzzy, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "پوشه root" + +#, fuzzy, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "1 شبکه بدون سیم یاÙت شد" + +#, fuzzy +msgid "%d-%b-%Y %-H:%M" +msgstr "%a %e/%m %-H:%M" + +msgid "%d-%m" +msgstr "" + +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "%k:%M %e/%m" + +#, python-format +msgid "%s %s free disk space" +msgstr "" + +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "" + +# +#, fuzzy, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "به روز رسانی های در دسترس" + +#, python-format +msgid "%s%d min" +msgstr "" + +#, python-format +msgid "%s/%s: %s" +msgstr "" + +msgid "(ZAP)" +msgstr "(حذÙ)" + +msgid "(empty)" +msgstr "(خالی)" + +msgid "(show optional DVD audio menu)" +msgstr "(نمایش منوی اختیای صدای DVD)" + +# +msgid "* Only available if more than one interface is active." +msgstr "Ùقط زمانی در دسترس است Ú©Ù‡ بیش از یک رابط Ùعال باشد" + +msgid "/s" +msgstr "" + +msgid "0" +msgstr "0" + +msgid "1" +msgstr "1" + +msgid "1.0" +msgstr "1.0" + +msgid "1.1" +msgstr "1.1" + +msgid "1.2" +msgstr "1.2" + +msgid "12V output" +msgstr "خروجی 12 ولت" + +msgid "13 V" +msgstr "13 ولت" + +msgid "16:10" +msgstr "16:10" + +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +msgid "16:9" +msgstr "16:9" + +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +msgid "16:9 always" +msgstr "16:9 همیشه" + +msgid "18 V" +msgstr "18 ولت" + +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "" + +msgid "24" +msgstr "" + +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +msgid "3" +msgstr "3" + +msgid "30" +msgstr "" + +msgid "3d mode" +msgstr "حالت 3 بعدی" + +msgid "4" +msgstr "4" + +msgid "4:3" +msgstr "4:3" + +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +msgid "5" +msgstr "5" + +msgid "6" +msgstr "6" + +msgid "7" +msgstr "7" + +msgid "8" +msgstr "8" + +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +msgid "<Current movielist location>" +msgstr "<محل Ùعلی لیست Ùیلم>" + +msgid "<Default movie location>" +msgstr "<محل پیش Ùرض Ùیلم>" + +msgid "<Last timer location>" +msgstr "<آخرین مکان زمان>" + +msgid "<unknown>" +msgstr "<نامشخص>" + +msgid "??" +msgstr "??" + +msgid "A" +msgstr "A" + +#, fuzzy, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"Ùایل پیکربندی (%s) از زمان نصب تغییر کرده است\n" +".آیا میخواهید نسخه خود را Ø­Ùظ کنید ØŸ" + +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"Ùایل پیکربندی (%s) از زمان نصب تغییر کرده است\n" +".آیا میخواهید نسخه خود را Ø­Ùظ کنید ØŸ" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "رابط گراÙیکی EPG برای همه کانال های یک لیست خاص" + +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"ضبط کردن شروع شد\n" +"%s" + +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"یک عمل ضبط کردن در حال اجرا است\n" +"قصد انجام Ú†Ù‡ کاری را دارید ØŸ" + +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "یک عمل ضبط کردن در حال اجرا است ØŒ لطÙا قبل از پیکربندی مکان یاب عمل ضبط را متوق٠کنید" + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "ضبط کردن در حال اجرا است ØŒ لطÙا قبل از اسکن کردن ضبط را متوق٠کنید" + +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "یک عمل ضبط کردن در حال اجرا است ØŒ لطÙا قبل از اجرای ماهواره یاب عمل ضبط را متوق٠کنید" + +#, python-format +msgid "A required tool (%s) was not found." +msgstr "ابزار (%s) مورد نیاز یاÙت نشد" + +msgid "A search for available updates is currently in progress." +msgstr "جستجو برای آپدیت های در دسترس ØŒ در حال حاضر در حال انجام است" + +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"پیکربندی دوم برای رابط یاÙت شده است\n" +"\n" +"آیا میخواهید رابط دوم شبکه غیر Ùعال شود ØŸ" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +msgid "A small overview of the available icon states and actions." +msgstr "" + +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"زمان برای ضبط ناموÙÙ‚ بود\n" +"غیر Ùعال کردن تلوزیون Ùˆ سعی مجدد ØŸ\n" + +#, fuzzy +msgid "A/V settings" +msgstr "تنظیمات تصویر Ùˆ صدا" + +msgid "AC3/DTS downmix" +msgstr "AC3/DTS downmix" + +msgid "Abort" +msgstr "لغو" + +msgid "About" +msgstr "درباره" + +msgid "About..." +msgstr "درباره" + +# +msgid "Accesspoint:" +msgstr "نقطه دسترسی:" + +msgid "Action on long powerbutton press" +msgstr "عمل کردن هنگام Ùشار دادن طولانی دکمه روشن/خاموش" + +msgid "Action on short powerbutton press" +msgstr "عمل کردن هنگام Ùشار دادن کوتاه دکمه روشن/خاموش" + +msgid "Activate Picture in Picture" +msgstr "Ùعال کردن تصویر در تصویر" + +#, fuzzy +msgid "Activate current configuration" +msgstr "اضاÙÙ‡ کردن پیکربندی شبکه؟" + +msgid "Activate network settings" +msgstr "Ùعال کردن تنظیمات شبکه" + +#, fuzzy +msgid "Activate the configured network settings." +msgstr "Ùعال کردن تنظیمات شبکه" + +msgid "Adapter settings" +msgstr "تنظیمات آداپتور" + +msgid "Add" +msgstr "اضاÙÙ‡ کردن" + +msgid "Add Bookmark" +msgstr "" + +msgid "Add a mark" +msgstr "اضاÙÙ‡ کردن علامت" + +#, fuzzy +msgid "Add a nameserver entry" +msgstr "Nameserver تنظیمات" + +msgid "Add a new title" +msgstr "اضاÙÙ‡ کردن عنوان جدید" + +#, fuzzy +msgid "Add bookmark" +msgstr "اضاÙÙ‡ کردن علامت" + +msgid "Add directory to playlist" +msgstr "" + +msgid "Add file to playlist" +msgstr "" + +msgid "Add files to playlist" +msgstr "" + +#, fuzzy +msgid "Add more details to the crash log" +msgstr "ساخت گزارش خطای دقیق تر" + +#, fuzzy +msgid "Add provider" +msgstr "ارائه کننده" + +#, fuzzy +msgid "Add recording (enter recording duration)" +msgstr "اضاÙÙ‡ کردن پیکربندی شبکه؟" + +#, fuzzy +msgid "Add recording (enter recording endtime)" +msgstr "لطÙا زمان پایان ضبط کردن را تغییر دهید" + +#, fuzzy +msgid "Add recording (indefinitely)" +msgstr "هیچ اطلاعات رخدادی یاÙت نشد ØŒ ضبط کردن به صورت نامحدود" + +#, fuzzy +msgid "Add recording (stop after current event)" +msgstr "اضاÙÙ‡/حذ٠زمان از رخداد Ùعلی" + +#, fuzzy +msgid "Add service" +msgstr "کانال" + +msgid "Add timer" +msgstr "اضاÙÙ‡ کردن زمان" + +msgid "Add title" +msgstr "اضاÙÙ‡ کردن عنوان" + +msgid "Add to bouquet" +msgstr "اضاÙÙ‡ کردن به لیست" + +msgid "Add to favourites" +msgstr "اضاÙÙ‡ کردن به مورد علاقه" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "تنظیمات 3 بعدی" + +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "تنظیم کردن تنظیمات رنگ طوری Ú©Ù‡ سایه های رنگ ها مشخص باشد ØŒ اما تا حد امکان به صورت اشباع شده نمایان شود ØŒ اگر شما از نتیجه راضی هستید دکمه OK را برای بستن \"میزان مناسب تصویر\" Ùشار دهید Ùˆ یا از اعداد ریموت کنترل برای تست های دیگر صÙحه نمایش استÙاده کنید" + +msgid "Advanced" +msgstr "" + +#, fuzzy +msgid "Advanced options" +msgstr "گزینه های پیشرÙته" + +msgid "Advanced restore" +msgstr "بازگردانی پیشرÙته" + +#, fuzzy +msgid "Advanced software" +msgstr "نرم اÙزار پیشرÙته" + +# +#, fuzzy +msgid "Advanced software plugin" +msgstr "پلاگین پیشرÙته نرم اÙزار" + +#, fuzzy +msgid "Advanced video enhancement setup" +msgstr "تنظیمات پیشرÙته بهینه تصویر" + +#, fuzzy +msgid "Advanced video setup" +msgstr "تنظیمات پیشرÙته تصویر" + +msgid "After event" +msgstr "بعد از رویداد" + +msgid "Album" +msgstr "آلبوم" + +msgid "Alignment of events" +msgstr "" + +msgid "Alignment of service names" +msgstr "" + +msgid "All" +msgstr "همه" + +msgid "All ages" +msgstr "" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "اختصاص دادن" + +msgid "Allocate unused memory index" +msgstr "" + +msgid "Allow quit movieplayer with exit" +msgstr "" + +msgid "Allow subtitle language to equal audio language" +msgstr "" + +msgid "Allow subtitles for hearing impaired" +msgstr "" + +msgid "Alpha" +msgstr "الÙبا" + +#, fuzzy +msgid "Alternative" +msgstr "حالت رادیو متناوب" + +#, fuzzy +msgid "Alternative numbering mode" +msgstr "حالت رادیو متناوب" + +msgid "Alternative services tuner priority" +msgstr "اولویت کانال های متناوب تیونر" + +msgid "Always ask" +msgstr "همیشه پرسیده شود" + +msgid "Always hide infobar" +msgstr "" + +msgid "An empty filename is illegal." +msgstr "بدون نام بودن برای یک Ùایل غیر مجاز است" + +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "" + +msgid "An unknown error occurred!" +msgstr "خطای نامشخصی رخ داد" + +msgid "And will put your receiver in standby over " +msgstr "" + +msgid "Any activity" +msgstr "هر Ùعالیتی" + +msgid "Arabic" +msgstr "عربی" + +msgid "Are you sure to remove this entry?" +msgstr "" + +# +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"آیا مطمئن هستید Ú©Ù‡ میخواهید این پیکربندی شبکه را Ùعال کنید ØŸ\n" +"\n" + +#, fuzzy +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"آیا مطمئن هستید Ú©Ù‡ میخواهید\n" +"این نسخه پشتیبان را حذ٠کنید\n" + +msgid "Are you sure you want to exit this wizard?" +msgstr "آیا مطمئن هستید Ú©Ù‡ میخواهید از این هدایتگر خارج شوید ØŸ" + +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"آیا مطمئن هستید Ú©Ù‡ میخواهید رابط های شبکه خود را دوباره راه اندازی کنید ØŸ\n" +"\n" + +# +#, fuzzy, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"آیا مطمئن هستید Ú©Ù‡ میخواهید نسخه پشتیبان انیگما 2 خود را بازگردانی کنید ØŸ\n" +"انیگما 2 بعد از این بازگردانی دوباره راه اندازی میشود" + +# +#, fuzzy +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"آیا مطمئن هستید Ú©Ù‡ میخواهید نسخه پشتیبان انیگما 2 خود را بازگردانی کنید ØŸ\n" +"انیگما 2 بعد از این بازگردانی دوباره راه اندازی میشود" + +msgid "Artist" +msgstr "هنرمند" + +msgid "Arts/Culture" +msgstr "" + +msgid "Ask user" +msgstr "پرسش از کاربر" + +#, fuzzy +msgid "Aspect ratio" +msgstr "نسبت تصویر" + +msgid "Assigned CAIds:" +msgstr "" + +msgid "Assigned services/provider:" +msgstr "" + +#, fuzzy +msgid "At beginning" +msgstr "شروع از ابتدای کار" + +msgid "At end" +msgstr "" + +msgid "Audio" +msgstr "صدا" + +msgid "Audio PID" +msgstr "PID صدا" + +msgid "Audio language selection 1" +msgstr "انتخاب زبان صدا 1" + +msgid "Audio language selection 2" +msgstr "انتخاب زبان صدا 2" + +msgid "Audio language selection 3" +msgstr "انتخاب زبان صدا 3" + +msgid "Audio language selection 4" +msgstr "انتخاب زبان صدا 4" + +#, fuzzy +msgid "Audio options..." +msgstr "تنظیمات صدا" + +#, python-format +msgid "Audio track (%s) format" +msgstr "" + +#, python-format +msgid "Audio track (%s) language" +msgstr "" + +msgid "Author: " +msgstr "مولÙ:" + +msgid "Authoring mode" +msgstr "حالت تالیÙ" + +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "خودکار" + +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "ایجاد Ùصل به صورت خودکار بر حسب دقیقه ØŸ صÙر به معنی هیچ وقت است" + +# +msgid "Auto flesh" +msgstr "خودکار flesh" + +msgid "Auto focus" +msgstr "Ùوکوس خودکار" + +msgid "Auto focus commencing ..." +msgstr "" + +msgid "Auto language selection" +msgstr "انتخاب زبان خودکار" + +msgid "Auto scart switching" +msgstr "جایگزینی خودکار scart" + +msgid "Automatic" +msgstr "خودکار" + +#, fuzzy +msgid "Automatic scan" +msgstr "اسکن خودکار" + +msgid "Automatically start timeshift after" +msgstr "" + +msgid "Automatically turn on external subtitles" +msgstr "" + +msgid "Available format variables" +msgstr "متغیر های Ùرمت در دسترس" + +msgid "B" +msgstr "B" + +msgid "BER" +msgstr "مقدار خطا" + +msgid "BER:" +msgstr "مقدار خطا:" + +msgid "Back" +msgstr "بازگشت" + +msgid "Background" +msgstr "پس زمینه" + +#, fuzzy +msgid "Background color" +msgstr "پس زمینه" + +msgid "Background delete option" +msgstr "" + +msgid "Background delete speed" +msgstr "سرعت حذ٠پس زمینه" + +#, fuzzy +msgid "Backup completed." +msgstr "تهیه نسخه پشتیبان ناموÙÙ‚" + +msgid "Backup failed." +msgstr "تهیه نسخه پشتیبان ناموÙÙ‚" + +# +msgid "Backup is running..." +msgstr "نسخه پشتیبان در حال اجرا است" + +msgid "Backup system settings" +msgstr "تهیه نسخه پشتیبان از تنظیمات" + +msgid "Band" +msgstr "باند" + +msgid "Bandwidth" +msgstr "پهنای باند" + +msgid "Basque" +msgstr "" + +msgid "Begin time" +msgstr "زمان شروع" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +msgid "Behavior of 0 key in PiP-mode" +msgstr "عملکرد دکمه 0 در حالت تصویر در تصویر" + +msgid "Behavior when a movie is started" +msgstr "عملکرد هنگامی Ú©Ù‡ یک Ùیلم شروع میشود" + +msgid "Behavior when a movie is stopped" +msgstr "عملکرد هنگامی Ú©Ù‡ یک Ùیلم متوق٠میشود" + +msgid "Behavior when a movie reaches the end" +msgstr "عملکرد هنگامی Ú©Ù‡ یک Ùیلم به پایان میرسد" + +msgid "Big PiP" +msgstr "" + +msgid "Bitrate:" +msgstr "میزان ارسال" + +msgid "Black screen" +msgstr "صÙحه نمایش سیاه" + +msgid "Black screen till locked" +msgstr "صÙحه نمایش سیاه تا زمانی Ú©Ù‡ Ù‚ÙÙ„ شود" + +# +msgid "Block noise reduction" +msgstr "بستن کاهش صدا" + +msgid "Blue boost" +msgstr "Blue boost" + +msgid "Bookmarks" +msgstr "علامت ها" + +msgid "Brightness" +msgstr "روشنایی" + +msgid "Bulgarian" +msgstr "بلغاری" + +msgid "Burn DVD" +msgstr "رایت DVD" + +#, fuzzy, python-format +msgid "Burn audio track (%s)" +msgstr "انتخاب آهنگ صوتی" + +# +msgid "Burn existing image to DVD" +msgstr "رایت ایمیج موجود روی DVD" + +msgid "Burn to DVD" +msgstr "رایت در DVD" + +msgid "Bus: " +msgstr "گذرگاه:" + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "" + +msgid "C" +msgstr "C" + +msgid "C-Band" +msgstr "باند C" + +msgid "CH" +msgstr "" + +# +msgid "CI assignment" +msgstr "CI وظیÙÙ‡" + +msgid "CVBS" +msgstr "CVBS" + +msgid "Cable" +msgstr "کابل" + +msgid "Cable Scan" +msgstr "اسکن کابلی" + +#, fuzzy +msgid "Cache thumbnails" +msgstr "ذخیره کردن عکس های Ú©ÙˆÚ†Ú©" + +msgid "Calculate" +msgstr "محاسبه" + +msgid "Calculate all positions" +msgstr "محاسبه همه موقعیت ها" + +msgid "Calculation complete" +msgstr "محاسبه کامل شد" + +msgid "Calibrate" +msgstr "" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "" + +msgid "Cancel" +msgstr "انصراÙ" + +msgid "Cannot determine" +msgstr "نمیتوان تعیین کرد" + +msgid "Cannot find any signal ..., aborting !" +msgstr "" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "" + +msgid "Cannot move to trash can" +msgstr "نمیتوان به سطل زباله انتقال داد" + +msgid "Capacity: " +msgstr "ظرÙیت:" + +msgid "Card" +msgstr "کارت" + +msgid "Cascade PiP" +msgstr "" + +#, fuzzy +msgid "Center DVB subtitles" +msgstr "زیرنویس وسط DVB" + +msgid "Center time-labels and remove date" +msgstr "" + +msgid "Change bouquets in quickzap" +msgstr "تغییر لیست در جابجایی سریع کانال" + +msgid "Change pin code" +msgstr "تغییر رمز" + +#, fuzzy +msgid "Change recording (duration)" +msgstr "لطÙا زمان پایان ضبط کردن را تغییر دهید" + +#, fuzzy +msgid "Change recording (endtime)" +msgstr "لطÙا زمان پایان ضبط کردن را تغییر دهید" + +msgid "Change repeat and delay settings?" +msgstr "تنظیمات تکرار Ùˆ تاخیر تغییر کند ØŸ" + +msgid "Change service PIN" +msgstr "تغییر رمز کانال" + +msgid "Change service PINs" +msgstr "تغییر رمز های کانال" + +msgid "Change setup PIN" +msgstr "تغییر رمز تنظیمات" + +msgid "Change step size" +msgstr "تغییر اندازه step" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "تغییرات" + +msgid "Channel" +msgstr "کانال" + +#, fuzzy +msgid "Channel list type" +msgstr "منوی لیست کانال" + +msgid "Channel not in services list" +msgstr "کانال در لیست کانال ها وجود ندارد" + +#, fuzzy +msgid "Channel selection" +msgstr "انتخاب کانال" + +msgid "Channel:" +msgstr "کانال:" + +msgid "Channellist menu" +msgstr "منوی لیست کانال" + +msgid "Chap." +msgstr "Ùصل" + +msgid "Chapter" +msgstr "Ùصل" + +msgid "Chapter:" +msgstr "Ùصل:" + +msgid "Check" +msgstr "بررسی" + +msgid "Check the internet connection" +msgstr "" + +msgid "Check the internet connection again" +msgstr "" + +#, fuzzy +msgid "Checking filesystem..." +msgstr "بررسی کردن سیستم Ùایل" + +msgid "Checking the internet connection" +msgstr "" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" + +msgid "Children/Youth" +msgstr "" + +msgid "Choose which tuner to configure." +msgstr "" + +msgid "Circular left" +msgstr "چرخش Ú†Ù¾" + +msgid "Circular right" +msgstr "چرخش راست" + +msgid "Cleanup" +msgstr "پاک سازی" + +msgid "Clear" +msgstr "پاک سازی" + +msgid "Clear before scan" +msgstr "پاک سازی قبل از اسکن" + +msgid "Clear fixed" +msgstr "" + +msgid "Clear log" +msgstr "پاک سازی گزارش" + +#, fuzzy +msgid "Clear playlist" +msgstr "ذخیره لیست پخش" + +msgid "Close" +msgstr "بستن" + +msgid "Close PiP on exit" +msgstr "" + +msgid "Close title selection" +msgstr "بستن انتخاب کردن عنوان" + +msgid "Code rate HP" +msgstr "نرخ کد HP" + +msgid "Code rate LP" +msgstr "نرخ کد LP" + +msgid "Coderate HP" +msgstr "Coderate HP" + +msgid "Coderate LP" +msgstr "Coderate LP" + +msgid "Collection name" +msgstr "نام مجموعه" + +msgid "Collection settings" +msgstr "تنظیمات مجموعه" + +#, fuzzy +msgid "Color format" +msgstr "Ùرمت رنگ" + +msgid "Command execution..." +msgstr "اجرای Ùرمان" + +msgid "Command order" +msgstr "ترتیب Ùرمان" + +msgid "Common Interface" +msgstr "رابط مشترک" + +#, fuzzy +msgid "Common Interface assignment" +msgstr "تخصیص رابط مشترک" + +msgid "Communication" +msgstr "ارتباط" + +#, fuzzy +msgid "Compact flash" +msgstr "Ùلش Ùشرده" + +msgid "Complete" +msgstr "کامل" + +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "مختلط (اجازه میدهد Ú©Ù‡ قطعات موسیقی Ùˆ مناظر ترکیب شوند)" + +msgid "Composition of the recording filenames" +msgstr "ترکیب نام های Ùایل های ضبط" + +#, fuzzy +msgid "Configuration mode" +msgstr "حالت پیکربندی: " + +#, fuzzy, python-format +msgid "Configuration mode: %s" +msgstr "حالت پیکربندی: " + +#, fuzzy +msgid "Configuration..." +msgstr "پیکربندی شبکه" + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "" + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "" + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "" + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "" + +msgid "Configure how recording filenames are constructed." +msgstr "" + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +msgid "Configure interface" +msgstr "رابط مشترک" + +# +msgid "Configure nameservers" +msgstr "پیکربندی nameservers" + +msgid "Configure on which devices the background delete option should be used." +msgstr "" + +#, fuzzy +msgid "Configure remote control type" +msgstr "نوع کنترل والدین" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "" + +#, fuzzy +msgid "Configure the IP address." +msgstr "رابط مشترک" + +msgid "Configure the aspect ratio of the screen." +msgstr "" + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +#, fuzzy +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "عملکرد هنگامی Ú©Ù‡ یک Ùیلم متوق٠میشود" + +#, fuzzy +msgid "Configure the behavior when movie playback is started." +msgstr "عملکرد هنگامی Ú©Ù‡ یک Ùیلم شروع میشود" + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "" + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "" + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "" + +msgid "Configure the brightness level of the front panel display." +msgstr "" + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "" + +msgid "Configure the color of the teletext subtitles." +msgstr "" + +msgid "Configure the contrast level of the front panel display." +msgstr "" + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "" + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "" + +msgid "Configure the first audio language (highest priority)." +msgstr "" + +msgid "Configure the first subtitle language (highest priority)." +msgstr "" + +msgid "Configure the font size of the subtitles." +msgstr "" + +msgid "Configure the fourth audio language." +msgstr "" + +msgid "Configure the fourth subtitle language." +msgstr "" + +msgid "Configure the function of a long press on the power button." +msgstr "" + +msgid "Configure the function of a short press on the power button." +msgstr "" + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "" + +#, fuzzy +msgid "Configure the gateway." +msgstr "رابط مشترک" + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "" + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "" + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "" + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "" + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "" + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "" + +msgid "Configure the latitude of your location." +msgstr "" + +msgid "Configure the longitude of your location." +msgstr "" + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "" + +# +#, fuzzy +msgid "Configure the nameserver (DNS)." +msgstr "پیکربندی nameservers" + +#, fuzzy +msgid "Configure the netmask." +msgstr "رابط مشترک" + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "" + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "" + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "" + +#, fuzzy +msgid "Configure the possible fast forward speeds." +msgstr "آماده سازی سرعت پرش به جلوی سریع" + +msgid "Configure the possible rewind speeds." +msgstr "" + +msgid "Configure the primary EPG language." +msgstr "" + +msgid "Configure the refresh rate of the screen." +msgstr "" + +msgid "Configure the screen resolution in PC output mode." +msgstr "" + +msgid "Configure the second audio language." +msgstr "" + +msgid "Configure the second subtitle language." +msgstr "" + +msgid "Configure the secondary EPG language." +msgstr "" + +msgid "Configure the sharpness of the video scaling." +msgstr "" + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "" + +#, fuzzy +msgid "Configure the slow motion speeds." +msgstr "سرعت حرکت آهسته" + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "" + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "" + +msgid "Configure the third audio language." +msgstr "" + +msgid "Configure the third subtitle language." +msgstr "" + +msgid "Configure the transparency of the OSD." +msgstr "" + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "" + +#, fuzzy +msgid "Configure the tuner mode." +msgstr "حالت پیکربندی: " + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "" + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "" + +msgid "Configure the video output mode (or resolution)." +msgstr "" + +msgid "Configure the way in which the receiver changes channels." +msgstr "" + +msgid "Configure where completed timers show up in the timer list." +msgstr "" + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "" + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "" + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "" + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "" + +msgid "Configure which color format should be used on the SCART output." +msgstr "" + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "" + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "" + +# +msgid "Configure your internal LAN" +msgstr "شبکه سیمی داخلی خود را دوباره پیکربندی کنید" + +# +msgid "Configure your network again" +msgstr "شبکه خود را دوباره پیکربندی کنید" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "تنظیمات شبکه را پیکربندی کنید ØŒ دکمه OK را برای شروع اسکن Ùشار دهید" + +# +msgid "Configure your wireless LAN again" +msgstr "شبکه بدون سیم خود را دوباره پیکربندی کنید" + +msgid "Configures which video output connector will be used." +msgstr "" + +msgid "Configuring" +msgstr "پیکربندی" + +msgid "Conflicting timer" +msgstr "زمان متناقض" + +msgid "Connect" +msgstr "وصل کردن" + +#, fuzzy +msgid "Connect to a wireless network" +msgstr "وصل شدن به شبکه بدون سیم" + +msgid "Connected satellites" +msgstr "" + +msgid "Connected to" +msgstr "وصل شده به" + +msgid "Connected!" +msgstr "وصل شد" + +msgid "Constellation" +msgstr "Constellation" + +msgid "Content does not fit on DVD!" +msgstr "مقدار محتوا مناسب برای DVD نیست" + +msgid "Continue" +msgstr "ادامه" + +msgid "Continue in background" +msgstr "ادامه در پس زمینه" + +#, fuzzy +msgid "Continue playback" +msgstr "ادامه پخش کردن" + +msgid "Continue playing" +msgstr "ادامه پخش کردن" + +msgid "Continues play (loop)" +msgstr "" + +msgid "Contrast" +msgstr "کنتراست" + +#, fuzzy +msgid "Convert ext3 filesystem to ext4" +msgstr "تبدیل سیستم Ùایل ext3 به ext4" + +msgid "Convert ext3 to ext4" +msgstr "تبدیل ext3 به ext4" + +#, fuzzy +msgid "Converting ext3 to ext4..." +msgstr "تبدیل ext3 به ext4" + +msgid "Copy" +msgstr "رونوشت" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "" + +msgid "Could not find installed channel list." +msgstr "" + +#, fuzzy +msgid "Could not load medium! No disc inserted?" +msgstr "رسانه قابل لود شدن نیست ØŒ دیسک داخل گذاشته نشده است ØŸ" + +msgid "Could not open Picture in Picture" +msgstr "تصویر در تصویر باز نمیشود" + +#, fuzzy, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "با توجه به مغایرت زمان %s ضبط کردن مقدور نیست" + +#, fuzzy, python-format +msgid "Could not record due to invalid service %s" +msgstr "با توجه به کانال نامعتبر %s ضبط کردن مقدور نیست" + +# +msgid "Create DVD-ISO" +msgstr "ایجاد DVD-ISO" + +msgid "Create more detailed crash log" +msgstr "ساخت گزارش خطای دقیق تر" + +#, python-format +msgid "Creating directory %s failed." +msgstr "ایجاد شاخه %s ناموÙÙ‚ " + +#, fuzzy +msgid "Creating filesystem" +msgstr "ایجاد سیستم Ùایل" + +#, fuzzy +msgid "Creating partition" +msgstr "ایجاد پارتیشن" + +msgid "Croatian" +msgstr "کرواسی" + +msgid "Current CEC address" +msgstr "آدرس Ùعلی CEC" + +msgid "Current device: " +msgstr "وسیله Ùعلی:" + +msgid "Current event EPG" +msgstr "" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +msgid "Current settings:" +msgstr "تنظیمات Ùعلی:" + +#, fuzzy +msgid "Current transponder" +msgstr "Ùرستنده Ùعلی" + +msgid "Current value: " +msgstr "مقدار Ùعلی:" + +msgid "Current version:" +msgstr "نسخه Ùعلی:" + +msgid "Currently installed image" +msgstr "ایمیج نصب شده Ùعلی" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +#, fuzzy +msgid "Custom skip time for '1'/'3' buttons" +msgstr "پرش سÙارشی زمان برای کلید های 1 Ùˆ3" + +#, fuzzy +msgid "Custom skip time for '4'/'6' buttons" +msgstr "پرش سÙارشی زمان برای کلید های 4 Ùˆ 6" + +#, fuzzy +msgid "Custom skip time for '7'/'9' buttons" +msgstr "پرش سÙارشی زمان برای کلید های 7 Ùˆ 9" + +msgid "Customize" +msgstr "سÙارشی" + +msgid "Customize channel list cursor behavior" +msgstr "" + +msgid "Cut" +msgstr "برش" + +msgid "Cutlist editor..." +msgstr "ویرایشگر برش لیست" + +msgid "Czech" +msgstr "چکوسلواکی" + +msgid "D" +msgstr "D" + +msgid "DHCP" +msgstr "DHCP" + +msgid "DMM advanced" +msgstr "" + +msgid "DMM normal" +msgstr "" + +# +msgid "DUAL LAYER DVD" +msgstr "DVD دو لایه" + +msgid "DVB subtitle black transparency" +msgstr "Ø´ÙاÙیت سیاه زیرنویس DVB" + +msgid "DVB-C" +msgstr "DVB-C" + +msgid "DVB-C ANNEX C" +msgstr "DVB-C ANNEX C" + +msgid "DVB-S" +msgstr "DVB-S" + +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "DVB-T" + +msgid "DVB-T2" +msgstr "DVB-T2" + +msgid "DVD data format" +msgstr "Ùرمت اطلاعات DVD" + +# +#, fuzzy +msgid "DVD file browser" +msgstr "مرورگر Ùایل DVD" + +msgid "DVD media toolbox" +msgstr "جعبه ابزار رسانه DVD" + +#, fuzzy +msgid "DVD player" +msgstr "پخش کننده DVD" + +#, fuzzy +msgid "DVD titlelist" +msgstr "لیست عنوان DVD" + +msgid "Danish" +msgstr "دانمارکی" + +msgid "Date" +msgstr "تاریخ" + +msgid "Date/time input" +msgstr "" + +#, fuzzy +msgid "Deep standby" +msgstr "خاموشی کامل" + +msgid "Default" +msgstr "پیش Ùرض" + +msgid "Default movie location" +msgstr "محل پیش Ùرض Ùیلم" + +#, fuzzy +msgid "Default settings" +msgstr "تنظیمات پیش Ùرض" + +msgid "Delay before key repeat starts:" +msgstr "" + +msgid "Delay for external subtitles" +msgstr "" + +msgid "Delete" +msgstr "حذÙ" + +msgid "Delete entry" +msgstr "حذ٠مورد" + +msgid "Delete failed!" +msgstr "حذ٠ناموÙÙ‚" + +#, fuzzy +msgid "Delete file" +msgstr "حذ٠ناموÙÙ‚" + +#, fuzzy +msgid "Delete playlist entry" +msgstr "حذ٠مورد" + +#, fuzzy +msgid "Delete saved playlist" +msgstr "ذخیره لیست پخش" + +msgid "Delete timer" +msgstr "" + +#, fuzzy +msgid "Delete..." +msgstr "حذÙ" + +msgid "Deleted" +msgstr "حذ٠شد" + +msgid "Deleted items" +msgstr "موارد حذ٠شده" + +msgid "Depth" +msgstr "عمق" + +msgid "Descramble http streams" +msgstr "" + +msgid "Description" +msgstr "توضیحات" + +msgid "Deselect" +msgstr "عدم انتخاب" + +msgid "Details for plugin: " +msgstr "مشخصات پلاگین" + +msgid "Detected HDD:" +msgstr "دیسک سخت شناخته شده:" + +msgid "Detected NIMs:" +msgstr "NIM های شناسایی شده:" + +msgid "Devicename:" +msgstr "نام وسیله:" + +msgid "Devide" +msgstr "" + +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +msgid "DiSEqC mode" +msgstr "DiSEqC حالت" + +#, fuzzy, python-format +msgid "DiSEqC port %s: %s" +msgstr "DiSEqC تکرار" + +#, fuzzy +msgid "DiSEqC-tester settings" +msgstr "تنظیمات تستر DiSEqC" + +# +msgid "Dialing:" +msgstr "شماره گیری:" + +msgid "Digital contour removal" +msgstr "حذ٠contour دیجیتال" + +msgid "Direct playback of linked titles without menu" +msgstr "پخش مستقیم عناوین لینک شده بدون منو" + +msgid "Directory" +msgstr "پوشه" + +#, fuzzy, python-format +msgid "Directory %s does not exist." +msgstr "پوشه %s وجود ندارد" + +#, python-format +msgid "Directory %s nonexistent." +msgstr "" + +msgid "Directory browser" +msgstr "مرورگر شاخه" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "" + +#, fuzzy, python-format +msgid "Directory contains %s and %s." +msgstr "پوشه %s وجود ندارد" + +msgid "Disable" +msgstr "غیر Ùعال" + +msgid "Disable Picture in Picture" +msgstr "غیر Ùعال کردن تصویر در تصویر" + +msgid "Disable background scanning" +msgstr "غیر Ùعال کردن اسکن کردن در پس زمینه" + +msgid "Disable timer" +msgstr "" + +msgid "Disabled" +msgstr "غیر Ùعال شد" + +msgid "Disconnect" +msgstr "قطع کردن" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "" + +msgid "Display 16:9 content as" +msgstr "نمایش محتوای 16:9 به صورت" + +msgid "Display 4:3 content as" +msgstr "نمایش محتوای 4:3 به صورت" + +msgid "Display >16:9 content as" +msgstr "نمایش محتوای 16:9 به صورت" + +# +#, fuzzy +msgid "Display and userinterface" +msgstr "نمایش Ùˆ رابط کاربری" + +msgid "Display message before playing next movie" +msgstr "" + +#, fuzzy +msgid "Display setup" +msgstr "تنظیمات تصویر" + +msgid "Do not change" +msgstr "" + +msgid "Do not record" +msgstr "" + +#, fuzzy +msgid "Do nothing" +msgstr "خیر ØŒ کاری انجام نشود" + +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"آیا واقعا میخواهید سیستم Ùایل را بررسی کنید؟\n" +" ممکن است زمان زیادی صر٠شود" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" + +#, python-format +msgid "Do you really want to delete %s?" +msgstr "آیا واقعا قصد حذ٠کردن %s را دارید؟ " + +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +" آیا واقعا میخواهید دانلود کنید\n" +"پلاگین \"%s\"?" + +msgid "Do you really want to exit?" +msgstr "آیا واقعا قصد خروج دارید؟" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" + +#, fuzzy, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +" آیا واقعا میخواهید دانلود کنید\n" +"پلاگین \"%s\"?" + +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "آیا واقعا میخواهید پوشه %s را از دیسک حذ٠کنید ØŸ" + +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "آیا واقعا میخواهید علامت خود را از %s حذ٠کنید ØŸ" + +msgid "Do you want this?" +msgstr "" + +msgid "Do you want to burn this collection to DVD medium?" +msgstr "آیا میخواهید این مجموعه را روی DVD رایت کنید ØŸ" + +msgid "Do you want to do a service scan?" +msgstr "آیا میخواهید اسکن کانال انجام شود ØŸ" + +msgid "Do you want to do another manual service scan?" +msgstr "آیا میخواهید اسکن دستی کانال دیگری انجام شود ØŸ" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "آیا میخواهید ایمیج را در %s دانلود کنید ØŸ" + +#, fuzzy +msgid "Do you want to install a channel list?" +msgstr "آیا میخواهید بسته را نصب کنید:\n" + +msgid "Do you want to install the package:\n" +msgstr "آیا میخواهید بسته را نصب کنید:\n" + +msgid "Do you want to play DVD in drive?" +msgstr "آیا میخواهید یک DVD پخش کنید ØŸ" + +msgid "Do you want to preview this DVD before burning?" +msgstr "آیا میخواهید قبل از رایت کردن DVD آن را مشاهده کنید ØŸ" + +msgid "Do you want to reboot your receiver?" +msgstr "" + +msgid "Do you want to remove the package:\n" +msgstr "آیا میخواهید بسته را حذ٠کنید:\n" + +msgid "Do you want to restore your settings?" +msgstr "آیا میخواهید تنظیمات شما بازگردانی شود ØŸ" + +msgid "Do you want to resume this playback?" +msgstr "آیا میخواهید به پخش این مورد ادامه داده شود ØŸ" + +#, fuzzy, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "آیا میخواهید ایمیج را در %s دانلود کنید ØŸ" + +msgid "Do you want to update your receiver?" +msgstr "" + +msgid "Do you want to upgrade the package:\n" +msgstr "آیا میخواهید بسته به روز رسانی شود:\n" + +msgid "Don't stop current event but disable coming events" +msgstr "رخداد Ùعلی متوق٠نشود اما رخداد های بعدی غیر Ùعال شوند" + +#, fuzzy, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "انجام شد ØŒ تعداد %d بسته با %d خطا نصب ØŒ به روز رسانی Ùˆ یا حذ٠شد" + +msgid "Download" +msgstr "دانلود" + +#, fuzzy, python-format +msgid "Download %s from server" +msgstr "دانلود %s از سرور" + +msgid "Download .NFI-files for USB-flasher" +msgstr "دانلود Ùایل های NFI برای USB-Flasher" + +#, fuzzy +msgid "Download plugins" +msgstr "دانلود پلاگین ها" + +msgid "Downloadable new plugins" +msgstr "پلاگین های جدید قابل دانلود" + +msgid "Downloadable plugins" +msgstr "پلاگین های قابل دانلود" + +msgid "Downloading" +msgstr "در حال دانلود" + +msgid "Downloading plugin information. Please wait..." +msgstr "در حال دانلود کردن اطلاعات پلاگین ها - لطÙا صبر کنید" + +msgid "Dutch" +msgstr "Ùلمنکی" + +# +msgid "Dynamic contrast" +msgstr "کنتراست پویا" + +msgid "E" +msgstr "E" + +msgid "EPG" +msgstr "" + +msgid "EPG language selection 1" +msgstr "انتخاب زبان EPG 1" + +msgid "EPG language selection 2" +msgstr "انتخاب زبان EPG 2" + +#, fuzzy +msgid "EPG selection" +msgstr "EPG انتخاب" + +msgid "EPG settings" +msgstr "" + +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "خطا ØŒ اسکن انجام نشد (%s)" + +msgid "East" +msgstr "شرق" + +msgid "East limit set" +msgstr "تنظیم محدودیت شرق" + +msgid "Edit" +msgstr "ویرایش" + +msgid "Edit DNS" +msgstr "ویرایش DNS" + +msgid "Edit bouquets list" +msgstr "ویرایش لیست های کانال" + +msgid "Edit chapters of current title" +msgstr "ویرایش Ùصل های عنوان Ùعلی" + +msgid "Edit services list" +msgstr "ویرایش لیست کانال ها" + +msgid "Edit settings" +msgstr "ویرایش تنظیمات" + +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "" + +msgid "Edit timer" +msgstr "" + +msgid "Edit title" +msgstr "ویرایش عنوان" + +# +msgid "Edit upgrade source url." +msgstr "ویرایش منبع به روز رسانی" + +msgid "Education/Science/..." +msgstr "" + +msgid "Electronic Program Guide" +msgstr "راهنمای الکترونیکی برنامه" + +msgid "Enable" +msgstr "Ùعال" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +msgid "Enable 5V for active antenna" +msgstr "Ùعال کردن 5 ولت برای آنتن Ùعال" + +msgid "Enable EIT EPG" +msgstr "Ùعال کردن EIT EPG" + +msgid "Enable MHW EPG" +msgstr "Ùعال کردن MHW EPG" + +msgid "Enable Netmed EPG" +msgstr "Ùعال کردن Netmed EPG" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "Ùعال کردن ViaSat EPG" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +#, fuzzy +msgid "Enable bouquet selection in multi-EPG" +msgstr "نمایش منوی انتخاب لیست" + +msgid "Enable freesat EPG" +msgstr "Ùعال کردن freesat EPG" + +msgid "Enable multiple bouquets" +msgstr "Ùعال کردن چندین لیست" + +msgid "Enable parental control" +msgstr "Ùعال کردن کنترل والدین" + +msgid "Enable teletext caching" +msgstr "Ùعال کردن ذخیره کردن تله تکست" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +msgid "Enabled" +msgstr "Ùعال شد" + +msgid "Encrypted: " +msgstr "رمزگذاری شده:" + +msgid "Encryption" +msgstr "رمزگذاری" + +#, fuzzy +msgid "Encryption key" +msgstr "کلید رمزگذاری" + +#, fuzzy +msgid "Encryption key type" +msgstr "نوع کد رمزگذاری" + +msgid "Encryption:" +msgstr "رمزگذاری" + +msgid "End time" +msgstr "زمان پایان" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +msgid "English" +msgstr "انگلیسی" + +msgid "Enigma2 skin selector" +msgstr "" + +msgid "Enter main menu..." +msgstr "ورود به منوی اصلی" + +msgid "Enter pin code" +msgstr "رمز را وارد کنید" + +msgid "Enter the service pin" +msgstr "رمز کانال را وارد کنید" + +msgid "Equal to" +msgstr "" + +msgid "Error" +msgstr "خطا" + +msgid "Error code" +msgstr "کد خطا" + +msgid "Error executing plugin" +msgstr "خطا هنگام اجرای پلاگین" + +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"خطا: %s\n" +"دوباره سعی شود?" + +# +msgid "Estonian" +msgstr "استونیایی" + +msgid "Ethernet network interface" +msgstr "رابط شبکه Ethernet" + +#, fuzzy +msgid "Event font size (relative to skin size)" +msgstr "اندازه قلم رخداد (وابسته به اندازه پوسته)" + +#, fuzzy +msgid "Event view" +msgstr "مشاهده مورد" + +#, fuzzy +msgid "Event view menu" +msgstr "منوی مشاهده رخداد" + +msgid "Everywhere" +msgstr "در همه جا" + +msgid "Exceeds dual layer medium!" +msgstr "بیش از رسانه دو لایه" + +msgid "Execution finished!!" +msgstr "عملیات اجرایی پایان یاÙت" + +#, fuzzy +msgid "Execution progress:" +msgstr "پیشرÙت اجرا کردن:" + +msgid "Exif" +msgstr "Exif" + +msgid "Exit" +msgstr "خروج" + +msgid "Exit EPG" +msgstr "خروج از EPG" + +msgid "Exit editor" +msgstr "خروج از ویرایشگر" + +msgid "Exit input device selection." +msgstr "خروج از انتخاب وسیله ورودی" + +msgid "Exit media player?" +msgstr "" + +#, fuzzy +msgid "Exit mediaplayer" +msgstr "پخش کننده صوتی Ùˆ تصویری" + +#, fuzzy +msgid "Exit movie list" +msgstr "ویرایش لیست کانال ها" + +msgid "Exit movie player?" +msgstr "" + +#, fuzzy +msgid "Exit nameserver configuration" +msgstr "اضاÙÙ‡ کردن پیکربندی شبکه؟" + +#, fuzzy +msgid "Exit network interface list" +msgstr "رابط شبکه Ethernet" + +msgid "Exit network wizard" +msgstr "خروج از هدایتگر شبکه" + +msgid "Exit the wizard" +msgstr "خروج از هدایتگر" + +msgid "Expert" +msgstr "تخصصی" + +msgid "Extend sleeptimer 15 minutes" +msgstr "" + +msgid "Extended Software" +msgstr "نرم اÙزار تعمیم یاÙته" + +# +msgid "Extended Software Plugin" +msgstr "پلاگین نرم اÙزاری قابل تمدید شده" + +#, fuzzy +msgid "Extended network setup plugin..." +msgstr "پلاگین تنظیمات شبکه تمدید شده" + +#, fuzzy +msgid "Extended setup..." +msgstr "تنظیمات تمدید شده" + +msgid "Extensions" +msgstr "بسته ها" + +msgid "Extensions management" +msgstr "مدیریت بسته های نرم اÙزاری" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "" + +msgid "Extra motor options" +msgstr "" + +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "FTA" + +msgid "Factory reset" +msgstr "بازگشت به حالت کارخانه ای" + +msgid "Failed" +msgstr "ناموÙÙ‚" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "" + +#, python-format +msgid "Fan %d" +msgstr "ÙÙ† %d" + +# +#, python-format +msgid "Fan %d PWM" +msgstr "ÙÙ† %d PWM" + +# +#, fuzzy, python-format +msgid "Fan %d voltage" +msgstr "ÙÙ† %d ولتاژ" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +msgid "Fast" +msgstr "سریع" + +msgid "Fast DiSEqC" +msgstr "سریع DiSEqC" + +msgid "Fast Scan" +msgstr "اسکن سریع" + +msgid "Fast epoch" +msgstr "epoch سریع" + +#, fuzzy +msgid "Fast forward speeds" +msgstr "سرعت های پرش به جلوی سریع" + +msgid "Favourites" +msgstr "محبوب" + +msgid "File appears to be busy.\n" +msgstr "" + +#, fuzzy +msgid "Filesystem check" +msgstr "بررسی سیستم Ùایل" + +msgid "Final position at" +msgstr "موقعیت نهایی در" + +msgid "Final position at index" +msgstr "" + +msgid "Fine movement" +msgstr "حرکت ظریÙ" + +msgid "Finetune" +msgstr "تیون ظریÙ" + +msgid "Finished" +msgstr "پایان یاÙت" + +msgid "Finished configuring your network" +msgstr "پیکربندی شبکه شما پایان یاÙت" + +# +msgid "Finished restarting your network" +msgstr "راه اندازی مجدد شبکه شما پایان یاÙت" + +msgid "Finnish" +msgstr "پایان" + +msgid "Fixed" +msgstr "" + +msgid "Flash" +msgstr "Ùلش" + +msgid "Flashing failed" +msgstr "Ùلش کردن ناموÙÙ‚" + +# +msgid "Following tasks will be done after you press OK!" +msgstr "وظای٠زیر بعد از Ùشار دادن دکمه OK انجام خواهند شد" + +msgid "Format" +msgstr "Ùرمت" + +msgid "Forward volume keys" +msgstr "" + +msgid "Frame size in full view" +msgstr "اندازه Ùریم در نمایش کامل" + +msgid "French" +msgstr "Ùرانسوی" + +msgid "Frequency" +msgstr "Ùرکانس" + +msgid "Frequency bands" +msgstr "باند های Ùرکانس" + +msgid "Frequency scan step size(khz)" +msgstr "اندازه اسکن گام به گام Ùرکانس (khz)" + +msgid "Frequency steps" +msgstr "گام های Ùرکانس" + +msgid "Frequency:" +msgstr "" + +msgid "Fri" +msgstr "جمعه" + +msgid "Friday" +msgstr "جمعه" + +msgid "From :" +msgstr "از :" + +#, python-format +msgid "Frontprocessor version: %d" +msgstr "نسخه پردازنده جلویی: %d" + +#, fuzzy +msgid "Full transparency" +msgstr "Ø´ÙاÙیت سیاه زیرنویس DVB" + +msgid "Fulview resulution" +msgstr "" + +msgid "Function of OK button" +msgstr "" + +msgid "Further Options" +msgstr "" + +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"برای استÙاده از پوسته جدید رابط گراÙیکی باید دوباره راه اندازی شود\n" +"آیا میخواهید الان رابط گراÙیکی دوباره راه اندازی شود ØŸ" + +msgid "Gateway" +msgstr "دروازه" + +# +#, fuzzy +msgid "General AC3 delay" +msgstr "تاخیر عمومی AC3" + +# +#, fuzzy +msgid "General PCM delay" +msgstr "تاخیر عمومی PCM" + +msgid "Genre" +msgstr "ژانر" + +msgid "German" +msgstr "آلمانی" + +msgid "Get latest experimental image" +msgstr "دریاÙت آخرین ایمیج آزمایشی منتشر شده" + +msgid "Get latest release image" +msgstr "دریاÙت آخرین ایمیج منتشر شده" + +msgid "Getting plugin information. Please wait..." +msgstr "در حال جمع آوری اطلاعات پلاگین ها - لطÙا صبر کنید" + +msgid "Go down the list" +msgstr "برو پایین لیست" + +msgid "Go to first movie or last item" +msgstr "مراجعه به اولین Ùیلم یا آخرین مورد" + +msgid "Go to first movie or top of list" +msgstr "مراجعه به اولین Ùیلم یا بالای لیست" + +#, fuzzy +msgid "Go to first service" +msgstr "مراجعه به اولین کانال" + +#, fuzzy +msgid "Go to last service" +msgstr "مراجعه به آخرین کانال" + +#, fuzzy +msgid "Go to next event" +msgstr "مراجعه به رخداد بعدی" + +#, fuzzy +msgid "Go to next page of service" +msgstr "مراجعه به صÙحه بعدی کانال" + +#, fuzzy +msgid "Go to previous event" +msgstr "مراجعه به رخداد قبلی" + +#, fuzzy +msgid "Go to previous page of service" +msgstr "مراجعه به صÙحه قبلی کانال" + +msgid "Go up the list" +msgstr "برو بالای لیست" + +msgid "Goto" +msgstr "مراجعه به" + +msgid "Goto 0" +msgstr "مراجعه به 0" + +msgid "Goto :" +msgstr "مراجعه به :" + +msgid "Goto X" +msgstr "مراجعه به X" + +msgid "Goto index position" +msgstr "" + +msgid "Goto next day of events" +msgstr "" + +msgid "Goto next page of events" +msgstr "مراجعه به صÙحه بعدی رخداد ها" + +msgid "Goto position" +msgstr "مراجعه به موقعیت" + +msgid "Goto previous day of events" +msgstr "" + +msgid "Goto previous page of events" +msgstr "مراجعه به صÙحه قبلی رخداد ها" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "" + +msgid "GraphMultiEpg Settings" +msgstr "" + +msgid "Graphical Multi EPG" +msgstr "EPG گراÙیکی چندگانه" + +msgid "Greek" +msgstr "یونانی" + +msgid "Green boost" +msgstr "boost سبز" + +msgid "Guard interval" +msgstr "Ùاصله گارد" + +msgid "HD list" +msgstr "لیست HD" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "" + +msgid "Handle wakeup from TV" +msgstr "" + +#, fuzzy +msgid "Hard disk" +msgstr "دیسک سخت" + +#, fuzzy +msgid "Hard disk setup" +msgstr "تنظیمات دیسک سخت" + +#, fuzzy +msgid "Hard disk standby after" +msgstr "خاموشی موقت دیسک سخت بعد از" + +msgid "Harddisk" +msgstr "دیسک سخت" + +msgid "Hardware: " +msgstr "سخت اÙزار: " + +msgid "Hebrew" +msgstr "عبری" + +msgid "Helps setting up your dish" +msgstr "" + +msgid "Hidden network" +msgstr "شبکه مخÙÛŒ" + +msgid "Hide CI messages" +msgstr "پنهان کردن پیام های CI" + +msgid "Hide channel list in radio mode" +msgstr "" + +msgid "Hide known extensions" +msgstr "" + +msgid "Hide number markers" +msgstr "" + +#, fuzzy +msgid "Hide player" +msgstr "پخش کننده صوتی Ùˆ تصویری" + +msgid "Hide zap errors" +msgstr "مخÙÛŒ کردن خطا های جابجایی" + +msgid "Hierarchy info" +msgstr "اطلاعات سلسله مراتبی" + +#, fuzzy +msgid "Hierarchy information" +msgstr "اطلاعات سلسله مراتبی" + +# +msgid "High bitrate support" +msgstr "پشتیبانی از bitrate بالا" + +msgid "Hold screen" +msgstr "Ù†Ú¯Ù‡ داشتن صÙحه نمایش" + +msgid "Hold till locked" +msgstr "Ù†Ú¯Ù‡ داشتن صÙحه نمایش تا Ù‚ÙÙ„ شدن" + +msgid "Home" +msgstr "خانه" + +msgid "Horizontal" +msgstr "اÙÙ‚ÛŒ" + +msgid "Horizontal turning speed" +msgstr "سرعت چرخش اÙÙ‚ÛŒ" + +msgid "How many minutes do you want to record?" +msgstr "چند دقیقه میخواهید ضبط کنید؟" + +msgid "Hue" +msgstr "رنگ" + +msgid "Hungarian" +msgstr "مجارستانی" + +#, fuzzy +msgid "IP address" +msgstr "IP آدرس" + +# +msgid "ISO file is too large for this filesystem!" +msgstr "Ùایل ISO برای این سیستم Ùایل بسیار بزرگ است" + +# +msgid "ISO path" +msgstr "ISO مسیر" + +msgid "Icons" +msgstr "آیکون" + +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"اگر این پیام را مشاهده میکنید یعنی چیزی با\n" +"ارتباط scart شما اختلال دارد ØŒ دکمه OK را برای بازگشت Ùشار دهید" + +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" + +msgid "Image: " +msgstr "عکس: " + +msgid "Immediate shutdown" +msgstr "" + +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "" + +#, fuzzy +msgid "In progress" +msgstr "در حال اجرا" + +msgid "Inactivity Sleeptimer" +msgstr "" + +msgid "Include AIT in http streams" +msgstr "شامل ATT در جریان های http" + +msgid "Include ECM in http streams" +msgstr "شامل ECM در جریان های http" + +msgid "Include EIT in http streams" +msgstr "شامل EIT در جریان های http" + +msgid "Incorrect type service for PiP!" +msgstr "" + +msgid "Increased voltage" +msgstr "ولتاژ اÙزایش یاÙته" + +msgid "Index" +msgstr "صÙحه اصلی" + +msgid "Index allocated:" +msgstr "" + +msgid "Info" +msgstr "اطلاعات" + +#, fuzzy +msgid "Info bar" +msgstr "نوار اطلاعات" + +#, fuzzy +msgid "Info bar timeout" +msgstr "مهلت نمایش نوار اطلاعات" + +msgid "Infobar frontend data source" +msgstr "" + +msgid "Information" +msgstr "اطلاعات" + +msgid "Init" +msgstr "Init" + +#, fuzzy +msgid "Initial fast forward speed" +msgstr "آماده سازی سرعت پرش به جلوی سریع" + +# +msgid "Initial location in new timers" +msgstr "آماده سازی مکان در زمان های جدید" + +msgid "Initial lock ratio" +msgstr "نسبت Ù‚ÙÙ„ اولیه" + +#, fuzzy +msgid "Initial rewind speed" +msgstr "آماده سازی سرعت پرش به عقب" + +msgid "Initial signal quality" +msgstr "آماده سازی Ú©ÛŒÙیت سیگنال" + +msgid "Initial signal quality:" +msgstr "آماده سازی Ú©ÛŒÙیت سیگنال:" + +msgid "Initialization" +msgstr "مقدار دهی اولیه" + +msgid "Initialize" +msgstr "مقدار دهی اولیه" + +msgid "Initializing storage device..." +msgstr "در حال مقدار دهی اولیه وسیله ذخیره سازی" + +msgid "Input" +msgstr "ورودی" + +msgid "Input device setup" +msgstr "تنظیم دستگاه ورودی" + +msgid "Input devices" +msgstr "وسیله های ورودی" + +msgid "Install" +msgstr "نصب" + +# +msgid "Install a new image with a USB stick" +msgstr "نصب ایمیج جدید توسط USB stick" + +# +msgid "Install a new image with your web browser" +msgstr "نصب ایمیج جدید توسط مرورگر وب خود" + +#, fuzzy +msgid "Install channel list" +msgstr "نصب بسته محلی" + +msgid "Install extensions" +msgstr "" + +msgid "Install extensions." +msgstr "نصب بسته ها" + +msgid "Install local extension" +msgstr "نصب بسته محلی" + +msgid "Install picons on" +msgstr "نصب پیکون ها در" + +#, fuzzy +msgid "Install softcam" +msgstr "در حال نصب نرم اÙزار" + +#, fuzzy +msgid "Installation has completed." +msgstr "محاسبه کامل شد" + +# +#, fuzzy +msgid "Installation or removal has completed." +msgstr "نصب یا حذ٠پایان یاÙت" + +msgid "Installing" +msgstr "در حال نصب" + +#, fuzzy +msgid "Installing software..." +msgstr "در حال نصب نرم اÙزار" + +#, fuzzy +msgid "Instant recording location" +msgstr "مکان ضبط کردن Ùوری" + +#, fuzzy +msgid "Instant recording..." +msgstr "مکان ضبط کردن Ùوری" + +msgid "Interface: " +msgstr "رابط:" + +msgid "Intermediate" +msgstr "متوسط" + +#, fuzzy +msgid "Internal flash" +msgstr "Ùلش داخلی" + +msgid "Internal hdd only" +msgstr "Ùقط هارد داخلی" + +msgid "Interval between keys when repeating:" +msgstr "" + +#, python-format +msgid "Invalid directory selected: %s" +msgstr "پوشه انتخاب شده نامعتبر است: %s" + +#, fuzzy +msgid "Invalid location" +msgstr "محل نامعتبر" + +msgid "Invalid transponder data" +msgstr "" + +msgid "Inversion" +msgstr "وارونگی" + +msgid "Invert" +msgstr "معکوس کردن" + +# +msgid "Ipkg" +msgstr "Ipkg" + +# +#, fuzzy +msgid "Is this setting ok?" +msgstr "آیا این حالت تصویر درست است ØŸ" + +# +#, fuzzy +msgid "Is this video mode ok?" +msgstr "آیا این حالت تصویر درست است ØŸ" + +msgid "Italian" +msgstr "ایتالیایی" + +#, fuzzy +msgid "Items per page " +msgstr "موارد در هر صÙحه" + +#, fuzzy +msgid "Items per page for list screen" +msgstr "موارد در هر صÙحه" + +#, fuzzy +msgid "Job overview" +msgstr "نمای کار" + +msgid "Jump to beginning of list" +msgstr "" + +#, fuzzy +msgid "Jump to end of list" +msgstr "برو بالای لیست" + +#, fuzzy +msgid "Jump to next marked position" +msgstr "موقعیت متن سÙارشی" + +msgid "Jump to previous marked position" +msgstr "" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +#, fuzzy +msgid "Just scale" +msgstr "Ùقط Scale" + +msgid "Keep service" +msgstr "" + +#, fuzzy +msgid "Kernel version: " +msgstr "نسخه کرنل: " + +msgid "Keyboard" +msgstr "صÙحه کلید" + +#, fuzzy +msgid "Keyboard map" +msgstr "نقشه صÙحه کلید" + +#, fuzzy +msgid "Keyboard setup" +msgstr "تنظیمات صÙحه کلید" + +#, fuzzy +msgid "LAN adapter" +msgstr "LAN آداپتور" + +msgid "LAN connection" +msgstr "ارتباط LAN" + +msgid "LNB" +msgstr "LNB" + +msgid "Language" +msgstr "زبان" + +msgid "Language selection" +msgstr "انتخاب زبان" + +# +msgid "Last config" +msgstr "آخرین پیکربندی" + +msgid "Last speed" +msgstr "آخرین سرعت" + +#, fuzzy +msgid "Last upgrade: " +msgstr "آخرین به روز رسانی: " + +msgid "Latest Commits" +msgstr "" + +msgid "Latitude" +msgstr "عرض جغراÙیایی" + +msgid "Latvian" +msgstr "لتونی" + +#, fuzzy +msgid "Leave DVD player?" +msgstr "خروج از پخش کننده DVD?" + +msgid "Left" +msgstr "Ú†Ù¾" + +msgid "Left from servicename" +msgstr "" + +msgid "Leisure hobbies" +msgstr "" + +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Letterbox" + +msgid "Letterbox zoom" +msgstr "" + +#, fuzzy +msgid "Limit character set for recording filenames" +msgstr "ترکیب نام های Ùایل های ضبط" + +msgid "Limit east" +msgstr "محدودیت شرق" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "" + +msgid "Limit west" +msgstr "محدودیت غربی" + +msgid "Limits cancelled" +msgstr "محدودیت ها لغو شدند" + +msgid "Limits enabled" +msgstr "محدودیت ها Ùعال شدند" + +msgid "Limits off" +msgstr "خاموش کردن محدودیت" + +msgid "Limits on" +msgstr "روشن کردن محدودیت" + +# +#, fuzzy +msgid "Link quality:" +msgstr "Ú©ÛŒÙیت لینک:" + +msgid "Link:" +msgstr "لینک" + +msgid "Linked titles with a DVD menu" +msgstr "عناوین لینک شده همراه یک منوی DVD" + +msgid "List EPG functions..." +msgstr "" + +msgid "List available networks" +msgstr "لیست شبکه های در دسترس" + +msgid "List mode" +msgstr "" + +#, fuzzy +msgid "List of storage devices" +msgstr "لیست وسیله های ذخیره سازی" + +msgid "List type" +msgstr "نوع لیست" + +#, fuzzy, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "لیست نسخه %d ØŒ تعداد %d کانال یاÙت شد" + +#, fuzzy +msgid "Listen to the radio..." +msgstr "نمایش پخش کننده رادیو" + +msgid "Lists reloaded!" +msgstr "" + +msgid "Lithuanian" +msgstr "لیتوانی" + +msgid "Load" +msgstr "آماده سازی" + +msgid "Load Length of Movies in Movielist" +msgstr "" + +#, fuzzy +msgid "Load length of movies in movie list" +msgstr "آماده سازی طول Ùیلم ها در لیست Ùیلم" + +#, fuzzy +msgid "Load playlist" +msgstr "ذخیره لیست پخش" + +#, fuzzy +msgid "Local network" +msgstr "شبکه محلی" + +msgid "Location" +msgstr "محل" + +# +msgid "Location for instant recordings" +msgstr "" + +msgid "Lock ratio" +msgstr "نسبت Ù‚ÙÙ„" + +msgid "Lock:" +msgstr "Ù‚ÙÙ„:" + +msgid "Log results to harddisk" +msgstr "نتایج گزارش در دیسک سخت" + +msgid "Long filenames" +msgstr "نام های طولانی Ùایل" + +#, fuzzy +msgid "Long key press" +msgstr "Ùشار دادن طولانی دکمه" + +msgid "Longitude" +msgstr "طول جغراÙیایی" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "" + +#, fuzzy +msgid "MMC card" +msgstr "کارت MMC" + +msgid "MORE" +msgstr "بیشتر" + +msgid "Main menu" +msgstr "منوی اصلی" + +msgid "Maintain old EPG data for" +msgstr "" + +msgid "Make this mark an 'in' point" +msgstr "" + +msgid "Make this mark an 'out' point" +msgstr "" + +msgid "Make this mark just a mark" +msgstr "" + +msgid "Manage extensions" +msgstr "مدیریت بسته ها" + +msgid "Manage your receiver's software" +msgstr "مدیریت نرم اÙزار رسیور شما" + +msgid "Manual" +msgstr "" + +msgid "Manual Scan" +msgstr "اسکن دستی" + +msgid "Manual configuration" +msgstr "پیکربندی دستی" + +#, fuzzy +msgid "Manual scan" +msgstr "اسکن دستی" + +msgid "Manual transponder" +msgstr "ترانسپوندر دستی" + +# +msgid "Manufacturer" +msgstr "تولید کننده" + +#, fuzzy +msgid "Margin after recording (minutes)" +msgstr "حاشیه قبل از ضبط (دقیقه)" + +#, fuzzy +msgid "Margin before recording (minutes)" +msgstr "حاشیه قبل از ضبط (دقیقه)" + +msgid "Max memory positions" +msgstr "" + +#, fuzzy +msgid "Max. bitrate: " +msgstr "میزان ارسال" + +msgid "Media player" +msgstr "پخش کننده صوتی Ùˆ تصویری" + +#, fuzzy +msgid "Media scanner" +msgstr "پخش کننده صوتی Ùˆ تصویری" + +msgid "Medium is not a writeable DVD!" +msgstr "DVD قابل رایت نیست" + +msgid "Medium is not empty!" +msgstr "رسانه خالی نیست" + +msgid "Memory" +msgstr "حاÙظه" + +msgid "Memory index" +msgstr "Ùهرست حاÙظه" + +msgid "Menu" +msgstr "منو" + +msgid "Message" +msgstr "پیام" + +msgid "Message..." +msgstr "پیام" + +#, python-format +msgid "Minimum age %d years" +msgstr "" + +#, fuzzy +msgid "Minimum send interval" +msgstr "Ùاصله گارد" + +msgid "Missing " +msgstr "Ù…Ùقود" + +#, fuzzy +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "حالت" + +#, fuzzy +msgctxt "Video output mode" +msgid "Mode" +msgstr "حالت" + +msgid "Model: " +msgstr "مدل:" + +msgid "Modulation" +msgstr "زیر Ùˆ بم" + +msgid "Modulator" +msgstr "زیر Ùˆ بم کننده" + +msgid "Mon" +msgstr "دوشنبه" + +msgid "Mon-Fri" +msgstr "دوشنبه-جمعه" + +msgid "Monday" +msgstr "دوشنبه" + +# +msgid "Mosquito noise reduction" +msgstr "کاهش صدای پشه" + +msgid "Mount" +msgstr "" + +msgid "Move" +msgstr "جابجایی" + +#, fuzzy +msgid "Move PiP to main picture" +msgstr "جابجایی تصویر در تصویر" + +msgid "Move Picture in Picture" +msgstr "جابجایی تصویر در تصویر" + +msgid "Move east" +msgstr "جابجایی به شرق" + +msgid "Move to other directory" +msgstr "انتقال به پوشه دیگر" + +msgid "Move to position X" +msgstr "جابجایی به موقعت X" + +msgid "Move west" +msgstr "جابجایی به غرب" + +msgid "Moved to position 0" +msgstr "به موقعیت 0 جابجا شد" + +msgid "Moved to position at index" +msgstr "" + +msgid "Movement" +msgstr "جنبش" + +msgid "Movie List Configuration" +msgstr "" + +msgid "Movie Selection" +msgstr "" + +#, fuzzy +msgid "Movie list configuration" +msgstr "پیکربندی لیست Ùیلم" + +msgid "Movie location" +msgstr "محل Ùیلم" + +#, fuzzy +msgid "Movie selection" +msgstr "انتخاب Ùیلم" + +msgid "Movie/Drama" +msgstr "" + +msgid "Movielist menu" +msgstr "منوی لیست Ùیلم" + +msgid "Moving" +msgstr "در حال جابجایی" + +msgid "Moving east ..." +msgstr "جابجایی به شرق" + +msgid "Moving to position" +msgstr "در حال جابجایی به موقعیت" + +msgid "Moving west ..." +msgstr "جابجایی به غرب" + +msgid "Multi EPG" +msgstr "EPG چندگانه" + +msgid "Multi-EPG bouquet selection" +msgstr "انتخاب لیست EPG چندگانه" + +msgid "Multimedia" +msgstr "چند رسانه ای" + +msgid "Multiple service support" +msgstr "پشتیبانی از چند کانال" + +msgid "Multiplex" +msgstr "مرکب" + +msgid "Multisat" +msgstr "چندین ماهواره" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "" + +msgid "Mute" +msgstr "بی صدا" + +msgid "N/A" +msgstr "در دسترس نیست" + +msgid "NEXT" +msgstr "بعدی" + +# +#, fuzzy +msgid "NFI image flashing" +msgstr "Ùلش کردن ایمیج NFI" + +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "" + +msgid "NIM" +msgstr "NIM" + +msgid "NOW" +msgstr "اکنون" + +msgid "NTSC" +msgstr "NTSC" + +msgid "Name" +msgstr "نام" + +msgid "Nameserver" +msgstr "Nameserver" + +#, python-format +msgid "Nameserver %d" +msgstr "Nameserver %d" + +msgid "Nameserver settings" +msgstr "Nameserver تنظیمات" + +#, fuzzy +msgid "Nameserver setup" +msgstr "Nameserver تنظیمات" + +msgid "Namespace" +msgstr "Ùضای نام" + +msgid "Netmask" +msgstr "Netmask" + +msgid "Network" +msgstr "شبکه" + +msgid "Network ID" +msgstr "ID شبکه" + +#, fuzzy +msgid "Network configuration..." +msgstr "پیکربندی شبکه" + +#, fuzzy +msgid "Network mount" +msgstr "شبکه Mount" + +#, fuzzy, python-format +msgid "Network mount %s" +msgstr "شبکه Mount" + +#, fuzzy +msgid "Network name (SSID)" +msgstr "نام شبکه (SSID)" + +msgid "Network scan" +msgstr "اسکن شبکه" + +msgid "Network setup" +msgstr "تنظیمات شبکه" + +msgid "Network test" +msgstr "تست شبکه" + +msgid "Network test..." +msgstr "تست شبکه" + +msgid "Network test: " +msgstr "تست شبکه:" + +#, fuzzy +msgid "Network wizard" +msgstr "هدایتگر شبکه" + +msgid "Network:" +msgstr "شبکه:" + +msgid "New" +msgstr "جدید" + +msgid "New PIN" +msgstr "رمز جدید" + +msgid "New version:" +msgstr "نسخه جدید:" + +msgid "News Current Affairs" +msgstr "" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "" + +msgid "No" +msgstr "خیر" + +msgid "No (supported) DVDROM found!" +msgstr "هیچ DVDROM قابل پشتیبانی یاÙت نشد" + +msgid "No Connection" +msgstr "ارتباطی وجود ندارد" + +msgid "No HDD found or HDD not initialized!" +msgstr "دیسک سخت پیدا نشد Ùˆ یا دیسک سخت مقدار دهی اولیه نشده است" + +msgid "No backup needed" +msgstr "نیازی به نسخه پشتیبان نیست" + +msgid "No cable tuner found!" +msgstr "تیونر کابلی یاÙت نشد" + +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" + +#, fuzzy +msgid "No delay" +msgstr "بدون تاخیر" + +# +msgid "No description available." +msgstr "هیچ توضیحی در دسترس نیست" + +msgid "No details for this image file" +msgstr "هیچ مشخصاتی برای این ایمیج وجود ندارد" + +# +msgid "No displayable files on this medium found!" +msgstr "هیچ Ùایل قابل نمایشی روی این رسانه یاÙت نشد" + +msgid "No event info found, recording indefinitely." +msgstr "هیچ اطلاعات رخدادی یاÙت نشد ØŒ ضبط کردن به صورت نامحدود" + +# +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "" + +msgid "No free index available" +msgstr "" + +msgid "No free tuner!" +msgstr "تیونر آزاد وجود ندارد" + +# +msgid "No network connection available." +msgstr "هیچ ارتباط شبکه ای در دسترس نیست" + +msgid "No networks found" +msgstr "هیچ شبکه ای یاÙت نشد" + +msgid "No new plugins found" +msgstr "" + +msgid "No positioner capable frontend found." +msgstr "" + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "" + +msgid "No services/providers selected" +msgstr "" + +#, fuzzy +msgid "No standby" +msgstr "خاموشی موقت" + +msgid "No suitable sat tuner found!" +msgstr "" + +# +msgid "No tags are set on these movies." +msgstr "هیچ برچسبی برای این Ùیلم ها تنظیم نشده است" + +#, fuzzy +msgid "No timeout" +msgstr "مهلت نمایش نوار اطلاعات" + +# +msgid "No to all" +msgstr "نه به همه" + +msgid "No transparency" +msgstr "" + +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "هیچ تیونری برای استÙاده با مکان یاب دایسک پیکربندی نشده است !" + +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"هیچ تیونری Ùعال نشده است\n" +"لطÙا قبل از شروع اسکن کانال ابتدا تنظیمات تیونر را انجام دهید" + +# +#, fuzzy +msgid "No updates available" +msgstr "به روز رسانی های در دسترس" + +msgid "No updates available. Please try again later." +msgstr "" + +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" + +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" + +msgid "No wireless networks found! Searching..." +msgstr "هیچ شبکه بدون سیمی یاÙت نشد ØŒ در حال جستجو" + +# +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" + +# +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" + +# +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" + +msgid "No, but restart from begin" +msgstr "خیر ØŒ ولی از ابتدا راه اندازی شود" + +msgid "No, do nothing." +msgstr "خیر ØŒ کاری انجام نشود" + +msgid "No, just start my receiver" +msgstr "" + +msgid "No, never" +msgstr "خیر ØŒ هیچ وقت" + +msgid "None" +msgstr "هیچکدام" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "غیر خطی" + +msgid "Normal mode" +msgstr "" + +msgid "North" +msgstr "شمال" + +msgid "Norwegian" +msgstr "نروژی" + +msgid "Not associated" +msgstr "" + +msgid "Not configured" +msgstr "" + +#, fuzzy, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Ùضای کاÙÛŒ وجود ندارد ØŒ لطÙا مقداری Ùضا خالی Ùˆ دوباره تلاش کنید . (%d مگابایت نیاز است Ùˆ %d مگابایت در دسترس است)" + +msgid "Nothing connected" +msgstr "" + +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "" + +#, fuzzy +msgid "Now playing" +msgstr "در حال پخش" + +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "" + +msgid "OK" +msgstr "OK" + +msgid "OK, guide me through the upgrade process" +msgstr "من را به روند به روز رسانی راهنمایی کنید" + +msgid "ONID" +msgstr "ONID" + +msgid "OSD name request" +msgstr "درخواست نام OSD" + +#, fuzzy +msgid "OSD settings" +msgstr "OSD تنظیمات" + +msgid "OSD transparency" +msgstr "" + +msgid "Off" +msgstr "خاموش" + +msgid "Offline decode delay (ms)" +msgstr "تاخیر رمز گشایی Ø¢Ùلاین (میلی ثانیه)" + +msgid "Ok" +msgstr "Ok" + +msgid "On" +msgstr "روشن" + +msgid "On end of movie" +msgstr "" + +msgid "On end of movie (as menu)" +msgstr "" + +msgid "One" +msgstr "یک" + +msgid "Only extensions." +msgstr "Ùقط بسته ها" + +#, fuzzy +msgid "Only free scan" +msgstr "Ùقط کانال های مجانی" + +#, fuzzy +msgid "Open service list" +msgstr "ویرایش لیست کانال ها" + +#, fuzzy +msgid "Open the movie list" +msgstr "بازگشت به لیست Ùیلم" + +msgid "Orbital position" +msgstr "موقعیت مداری" + +msgid "Original" +msgstr "اصلی" + +msgid "Other" +msgstr "دیگر" + +msgid "Output" +msgstr "خروجی" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "بازنویسی Ùایل های پیکربندی هنگام به روز رسانی نرم اÙزار ØŸ" + +#, fuzzy +msgid "Overwrite configuration files?" +msgstr "بازنویسی Ùایل های پیکربندی ØŸ" + +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "PCR PID" + +msgid "PIDs" +msgstr "PIDs" + +#, fuzzy +msgid "PIN code needed" +msgstr "رمز مورد نیاز است" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "PMT PID" + +msgid "Package list update" +msgstr "به روز رسانی لیست بسته های نرم اÙزاری" + +msgid "Packet management" +msgstr "مدیریت بسته های نرم اÙزاری" + +msgid "Packet manager" +msgstr "مدیریت بسته های نرم اÙزاری" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +#, fuzzy +msgid "Pan&scan" +msgstr "Pan&Scan" + +#, fuzzy +msgid "Parent directory" +msgstr "شاخه اصلی" + +msgid "Parental control" +msgstr "کنترل والدین" + +#, fuzzy +msgid "Parental control services editor" +msgstr "ویرایشگر کانال های کنترل والدین" + +msgid "Parental control setup" +msgstr "تنظیمات کنترل والدین" + +msgid "Parental control type" +msgstr "نوع کنترل والدین" + +# +msgid "Password" +msgstr "رمز عبور" + +msgid "Pause" +msgstr "" + +msgid "Pause movie at end" +msgstr "توق٠Ùیلم هنگام پایان" + +#, fuzzy +msgid "Pause playback" +msgstr "ادامه پخش" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "" + +#, fuzzy +msgid "Percentage right" +msgstr "چرخش راست" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "حذ٠دائمی همه ضبط شده ها در سطل زباله ØŸ" + +msgid "Permanently remove all deleted items" +msgstr "حذ٠تمامی موارد حذ٠شده به صورت دائمی" + +msgid "Persian" +msgstr "Ùارسی" + +# +msgid "Phone number" +msgstr "شماره تلÙÙ†" + +#, fuzzy +msgid "PiP setup" +msgstr "تنظیمات تصویر در تصویر" + +msgid "Picon" +msgstr "" + +msgid "Picon and service name" +msgstr "" + +# +#, fuzzy +msgid "Picture player" +msgstr "نمایش دهنده تصاویر" + +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Pillarbox" + +msgid "Pilot" +msgstr "Pilot" + +msgid "Play" +msgstr "پخش" + +msgid "Play DVD" +msgstr "پخش DVD" + +msgid "Play audio in background" +msgstr "پخش صدا در پس زمینه" + +#, fuzzy +msgid "Play audio-CD..." +msgstr "پخش CD صوتی" + +msgid "Play back media files" +msgstr "" + +#, fuzzy +msgid "Play entry" +msgstr "پخش بعدی" + +msgid "Play from next mark or playlist entry" +msgstr "" + +msgid "Play from previous mark or playlist entry" +msgstr "" + +#, fuzzy +msgid "Play music..." +msgstr "پخش موسیقی" + +msgid "Play next" +msgstr "پخش بعدی" + +msgid "Play next (return to movie list)" +msgstr "" + +msgid "Play next (return to previous service)" +msgstr "" + +msgid "Play previous" +msgstr "پخش قبلی" + +msgid "Play recorded movies..." +msgstr "پخش Ùیلم های ضبط شده" + +msgid "Please add titles to the compilation." +msgstr "" + +msgid "Please change recording endtime" +msgstr "لطÙا زمان پایان ضبط کردن را تغییر دهید" + +msgid "Please check your network settings!" +msgstr "لطÙا تنظیمات شبکه خود را بررسی کنید" + +msgid "Please choose an extension..." +msgstr "لطÙا یک بسته انتخاب کنید" + +# +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" + +# +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" + +msgid "Please connect your receiver to the internet" +msgstr "" + +msgid "Please do not change any values unless you know what you are doing!" +msgstr "" + +msgid "Please enter a name for the new bouquet" +msgstr "لطÙا یک نام برای لیست جدید وارد کنید" + +msgid "Please enter a name for the new marker" +msgstr "لطÙا یک نام برای علامت جدید وارد کنید" + +msgid "Please enter a new filename" +msgstr "لطÙا یک نام جدید برای Ùایل وارد کنید" + +msgid "Please enter filename (empty = use current date)" +msgstr "لطÙا نام Ùایل را وارد کنید (خالی = استÙاده از تاریخ Ùعلی)" + +msgid "Please enter name of the new directory" +msgstr "لطÙا نام پوشه جدید را وارد کنید" + +msgid "Please enter new name:" +msgstr "" + +msgid "Please enter the correct pin code" +msgstr "لطÙا رمز درست را وارد کنید" + +msgid "Please enter the old PIN code" +msgstr "لطÙا رمز قبلی را وارد کنید" + +msgid "Please follow the instructions on the TV" +msgstr "لطÙا دستورالعمل هایی Ú©Ù‡ در تلوزیون مشاهده میکنید را دنبال کنید" + +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "" + +msgid "Please press OK to continue." +msgstr "لطÙا دکمه OK را برای ادامه دادن Ùشار دهید" + +msgid "Please select a default EPG type..." +msgstr "" + +msgid "Please select a playlist to delete..." +msgstr "لطÙا یک لیست پخش را برای حذ٠شدن انتخاب کنید" + +msgid "Please select a playlist..." +msgstr "لطÙا یک لیست پخش انتخاب کنید" + +#, fuzzy +msgid "Please select a sub service..." +msgstr "لطÙا یک کانال Ùرعی انتخاب کنید" + +msgid "Please select a subservice to record..." +msgstr "لطÙا یک کانال Ùرعی را برای ضبط انتخاب کنید" + +msgid "Please select a subservice..." +msgstr "لطÙا یک کانال Ùرعی انتخاب کنید" + +msgid "Please select an NFI file and press green key to flash!" +msgstr "" + +#, fuzzy +msgid "Please select medium to be scanned" +msgstr "لطÙا یک رسانه را برای اسکن انتخاب کنید" + +msgid "Please select medium to use as backup location" +msgstr "لطÙا یک وسیله را برای استÙاده به عنوان محل نسخه پشتیبان انتخاب کنید" + +msgid "Please select tag to filter..." +msgstr "" + +msgid "Please select the movie path..." +msgstr "لطÙا مسیر Ùیلم را انتخاب کنید" + +# +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" + +# +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" + +#, fuzzy +msgid "Please set up tuner A" +msgstr "لطÙا تیونر دوم را تنظیم کنید" + +msgid "Please set up tuner B" +msgstr "لطÙا تیونر دوم را تنظیم کنید" + +msgid "Please set up tuner C" +msgstr "لطÙا تیونر سوم را تنظیم کنید" + +msgid "Please set up tuner D" +msgstr "لطÙا تیونر چهارم را تنظیم کنید" + +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" + +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "لطÙا از کلید های بالا Ùˆ پایین برای انتخاب زبان خود استÙاده کنید ØŒ سپس دکمه OK را Ùشار دهید" + +msgid "Please wait" +msgstr "" + +#, fuzzy +msgid "Please wait (downloading channel list)" +msgstr "لطÙا صبر کنید - در حال آماده سازی لیست" + +#, fuzzy +msgid "Please wait (downloading softcam)" +msgstr "لطÙا صبر کنید - در حال آماده سازی لیست" + +msgid "Please wait (updating packages)" +msgstr "" + +# +msgid "Please wait for activation of your network configuration..." +msgstr "لطÙا صبر کنید تا پیکربندی شبکه شما Ùعال شود" + +msgid "Please wait while scanning is in progress..." +msgstr "وقتی اسکن در حال انجام است لطÙا صبر کنید" + +msgid "Please wait while we configure your network..." +msgstr "لطÙا صبر کنید ØŒ ما در حال پیکربندی شبکه شما هستیم" + +# +msgid "Please wait while we prepare your network interfaces..." +msgstr "لطÙا صبر کنید تا رابط های شبکه شما آماده شوند" + +# +msgid "Please wait while we test your network..." +msgstr "لطÙا صبر کنید تا شبکه شما تست شود" + +msgid "Please wait while your network is restarting..." +msgstr "راه اندازی دوباره شبکه شما ØŒ لطÙا صبر کنید" + +msgid "Please wait..." +msgstr "لطÙا صبر کنید" + +msgid "Please wait... Loading list..." +msgstr "لطÙا صبر کنید - در حال آماده سازی لیست" + +msgid "Plugin browser" +msgstr "مرورگر پلاگین" + +# +msgid "Plugin manager activity information" +msgstr "اطلاعات Ùعالیت مدیریت پلاگین" + +# +msgid "Plugin manager help" +msgstr "راهنمای مدیریت پلاگین" + +msgid "Plugins" +msgstr "پلاگین ها" + +msgid "Polarisation" +msgstr "Polarisation" + +msgid "Polarisation:" +msgstr "" + +msgid "Polarization" +msgstr "قطبش" + +msgid "Polish" +msgstr "لهستانی" + +msgid "Port A" +msgstr "پورت A" + +msgid "Port B" +msgstr "پورت B" + +msgid "Port C" +msgstr "پورت C" + +msgid "Port D" +msgstr "پورت D" + +msgid "Portuguese" +msgstr "پرتغالی" + +msgid "Position of completed timers in timerlist" +msgstr "" + +msgid "Position stored at index" +msgstr "" + +msgid "Positioner" +msgstr "مکان یاب" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "" + +msgid "Positioner setup" +msgstr "تنظیمات مکان یاب" + +msgid "Power threshold in mA" +msgstr "آستانه قدرت به میلی آمپر" + +msgid "Predefined transponder" +msgstr "ترانسپوندر از قبل تعری٠شده" + +#, fuzzy +msgid "Prefer AC3 track" +msgstr "ترجیح دادن AC3" + +msgid "Prefer AC3+ track" +msgstr "" + +#, fuzzy +msgid "Prefer audio track stored by service" +msgstr "ترجیح دادن جریان صوتی ذخیره شده توسط کانال" + +#, fuzzy +msgid "Prefer graphical DVB subtitles" +msgstr "ترجیح دادن زیرنویس های گراÙیکی DVB" + +#, fuzzy +msgid "Prefer subtitles for hearing impaired" +msgstr "ترجیح دادن زیرنویس ذخیره شده توسط کانال" + +#, fuzzy +msgid "Prefer subtitles stored by service" +msgstr "ترجیح دادن زیرنویس ذخیره شده توسط کانال" + +msgid "Preferred tuner" +msgstr "تیونر ترجیحی" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "" + +msgid "Preparing... Please wait" +msgstr "در حال آماده سازی - لطÙا صبر کنید" + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "دکمه INFO روی ریموت کنترل را برای مشاهده اطلاعات اضاÙÛŒ Ùشار دهید" + +msgid "Press MENU on your remote control for additional options." +msgstr "دکمه MENU روی ریموت کنترل را برای گزینه های اضاÙÛŒ Ùشار دهید" + +msgid "Press OK on your remote control to continue." +msgstr "دکمه OK را برای ادامه دادن Ùشار دهید" + +msgid "Press OK to activate the selected skin." +msgstr "دکمه OK را برای Ùعال کردن پوسته انتخاب شده Ùشار دهید" + +msgid "Press OK to activate the settings." +msgstr "دکمه OK را برای Ùعال کردن تنظیمات Ùشار دهید" + +msgid "Press OK to edit the settings." +msgstr "دکمه OK را برای ویرایش تنظیمات Ùشار دهید" + +#, python-format +msgid "Press OK to get further details for %s" +msgstr "دکمه OK را برای دریاÙت جزئیات بیشتر %s Ùشار دهید" + +msgid "Press OK to scan" +msgstr "دکمه OK را برای اسکن Ùشار دهید" + +#, fuzzy +msgid "Press OK to select a provider." +msgstr "دکمه OK را برای انتخاب ارائه دهنده Ùشار دهید" + +msgid "Press OK to select satellites" +msgstr "" + +# +msgid "Press OK to select/deselect a CAId." +msgstr "دکمه OK را برای انتخاب کردن یا نکردن CAId Ùشار دهید" + +msgid "Press OK to start the scan" +msgstr "دکمه OK را برای شروع اسکن Ùشار دهید" + +msgid "Press OK to toggle the selection" +msgstr "" + +msgid "Press OK to toggle the selection." +msgstr "دکمه OK را برای toggle انتخاب Ùشار دهید" + +# +msgid "Press yellow to set this interface as default interface." +msgstr "دکمه زرد را برای تنظیم این رابط به عنوان رابط پیش Ùرض Ùشار دهید" + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "" + +msgid "Preview" +msgstr "پیش نمایش" + +msgid "Preview menu" +msgstr "منوی قبلی" + +msgid "Preview selected channel" +msgstr "" + +msgid "Primary DNS" +msgstr "DNS اول" + +msgid "Priority" +msgstr "اولویت" + +msgid "Process" +msgstr "پردازش" + +msgid "Progress" +msgstr "پیشرÙت" + +#, fuzzy +msgid "Progress bar left" +msgstr "پیشرÙت Ú©ÙˆÚ†Ú©" + +#, fuzzy +msgid "Progress bar right" +msgstr "پیشرÙت Ú©ÙˆÚ†Ú©" + +msgid "Properties of current title" +msgstr "مشخصات عنوان Ùعلی" + +msgid "Protect services" +msgstr "محاÙظت از کانال ها" + +msgid "Protect setup" +msgstr "محاÙظت از تنظیمات" + +msgid "Provider" +msgstr "ارائه کننده" + +msgid "Provider to scan" +msgstr "اسکن ارائه کننده" + +msgid "Providers" +msgstr "ارائه کنندگان" + +msgid "Put TV in standby" +msgstr "قرار دادن تلوزیون در خاموشی موقت" + +msgid "Put receiver in standby" +msgstr "قرار دادن دستگاه در خاموشی موقت" + +msgid "Python frontend for /tmp/mmi.socket" +msgstr "Python frontend برای /tmp/mmi.socket" + +msgid "Quick" +msgstr "سریع" + +#, fuzzy +msgid "Quick zap" +msgstr "جابجایی سریع" + +msgid "RF output" +msgstr "خروجی RF" + +msgid "RGB" +msgstr "RGB" + +msgid "Radio" +msgstr "رادیو" + +#, fuzzy +msgid "Ram disk" +msgstr "دیسک رم" + +msgid "Random" +msgstr "تصادÙÛŒ" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "" + +msgid "Rating undefined" +msgstr "" + +msgid "Really close without saving settings?" +msgstr "خروج بدون ذخیره کردن تنظیمات ØŸ" + +msgid "Really delete done timers?" +msgstr "زمان های انجام شده حذ٠شوند ØŸ" + +msgid "Really exit the subservices quickzap?" +msgstr "" + +msgid "Really reboot now?" +msgstr "راه اندازی مجدد هم اکنون؟" + +msgid "Really restart now?" +msgstr "راه اندازی مجدد هم اکنون؟" + +msgid "Really shutdown now?" +msgstr "خاموش کردن هم اکنون؟" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "پردازنده جلو به روز رسانی Ùˆ هم اکنون راه اندازی مجدد شود ØŸ" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "دستگاه شما به روز رسانی Ùˆ هم اکنون راه اندازی مجدد شود ØŸ" + +msgid "Reboot" +msgstr "راه اندازی مجدد" + +msgid "Rec" +msgstr "ضبط" + +#, fuzzy +msgid "Reception settings" +msgstr "تنظیمات دریاÙت" + +msgid "Record" +msgstr "ضبط" + +# +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "" + +msgid "Recorded files..." +msgstr "Ùایل های ضبط شده" + +msgid "Recording" +msgstr "در حال ضبط" + +msgid "Recording in progress" +msgstr "ضبط در حال پیشرÙت" + +msgid "Recording paths" +msgstr "مسیر های ضبط کردن" + +msgid "Recording type" +msgstr "نوع ضبط" + +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "" + +msgid "Recordings" +msgstr "ضبط شده ها" + +msgid "Recordings always have priority" +msgstr "ضبط کردن همیشه اولویت داشته باشد" + +msgid "Red button..." +msgstr "دکمه قرمز" + +msgid "Reenter new PIN" +msgstr "رمز جدید را دوباره وارد کنید" + +#, fuzzy +msgid "Refresh rate" +msgstr "میزان تجدید" + +msgid "Refresh rate selection." +msgstr "انتخاب میزان تجدید" + +msgid "Regard deep standby as standby" +msgstr "" + +msgid "Relative" +msgstr "" + +msgid "Reload" +msgstr "بازنگری" + +# +#, fuzzy +msgid "Reload black-/white lists" +msgstr "بازنگری لیست سÙید Ùˆ سیاه" + +msgid "Reloading bouquets and services..." +msgstr "بارگذاری مجدد لیست ها Ùˆ کانال ها" + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "به یاد داشتن رمز کانال" + +msgid "Remember these settings for each folder" +msgstr "به خاطر سپردن این تنظیمات برای هر پوشه" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "" + +#, fuzzy +msgid "Remote control type" +msgstr "نوع کنترل والدین" + +#, fuzzy +msgid "Removal has completed." +msgstr "حذ٠ناموÙÙ‚" + +msgid "Remove" +msgstr "حذÙ" + +msgid "Remove a mark" +msgstr "حذ٠علامت" + +msgid "Remove a nameserver entry" +msgstr "" + +#, fuzzy +msgid "Remove bookmark" +msgstr "حذ٠علامت" + +#, fuzzy +msgid "Remove completed timers after (days)" +msgstr "حذ٠موارد از سطل زباله بعد از (روز)" + +msgid "Remove currently selected title" +msgstr "حذ٠عنوان انتخاب شده Ùعلی" + +#, fuzzy +msgid "Remove items from trash can after (days)" +msgstr "حذ٠موارد از سطل زباله بعد از (روز)" + +msgid "Remove plugins" +msgstr "حذ٠پلاگین ها" + +msgid "Remove title" +msgstr "حذ٠عنوان" + +msgid "Removing" +msgstr "در حال حذ٠کردن" + +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "حذ٠پوشه %s ناموÙÙ‚ بود (شاید پوشه خالی نیست)" + +#, fuzzy +msgid "Removing partition table" +msgstr "بازخوانی جدول پارتیشن" + +msgid "Rename" +msgstr "تغییر نام" + +msgid "Repeat" +msgstr "" + +#, fuzzy +msgid "Repeat type" +msgstr "نوع تکرار" + +msgid "Repeating event currently recording... What do you want to do?" +msgstr "" + +msgid "Repeats" +msgstr "تکرار ها" + +msgid "Require authentication for http streams" +msgstr "" + +# +msgid "Required medium type:" +msgstr "نوع رسانه مورد نیاز:" + +#, fuzzy +msgid "Rereading partition table" +msgstr "بازخوانی جدول پارتیشن" + +msgid "Reserved" +msgstr "" + +msgid "Reset" +msgstr "بازنشانی" + +msgid "Reset and renumerate title names" +msgstr "بازنشانی Ùˆ عدد دهی دوباره به نام های عنوان" + +msgid "Reset playback position" +msgstr "بازنشانی مکان پخش" + +# +msgid "Reset video enhancement settings to system defaults?" +msgstr "بازنشانی تنظیمات بهینه تصویر به پیش Ùرض سیستم ØŸ" + +# +msgid "Reset video enhancement settings to your last configuration?" +msgstr "بازنشانی تنظیمات بهینه تصویر به آخرین پیکربندی شما ØŸ" + +msgid "Resolution" +msgstr "تÙکیک پذیری Ùˆ دقت" + +msgid "Restart" +msgstr "راه اندازی دوباره" + +msgid "Restart GUI now?" +msgstr "راه اندازی مجدد رابط گراÙیک کاربری؟" + +msgid "Restart enigma" +msgstr "راه اندازی مجدد انیگما" + +msgid "Restart network" +msgstr "راه اندازی دوباره شبکه" + +msgid "Restart test" +msgstr "راه اندازی دوباره تست" + +msgid "Restart your network connection and interfaces.\n" +msgstr "راه اندازی دوباره ارتباط شبکه شما Ùˆ رابط های آن\n" + +msgid "Restore" +msgstr "بازگردانی" + +msgid "Restore backups" +msgstr "بازگردانی نسخه های پشتیبان" + +# +msgid "Restore is running..." +msgstr "بازگردانی در حال اجرا است" + +msgid "Restore system settings" +msgstr "بازگردانی تنظیمات سیستم" + +# +#, fuzzy +msgid "Restoring..." +msgstr "بازگردانی در حال اجرا است" + +msgid "Resume from last position" +msgstr "ادامه از مکان قبلی" + +# +#, python-format +msgid "Resume position at %s" +msgstr "ادامه دادن مکان در %s" + +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "ادامه پخش" + +msgid "Return to movie list" +msgstr "بازگشت به لیست Ùیلم" + +msgid "Return to previous service" +msgstr "بازگشت به کانال قبلی" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +msgid "Rewind speeds" +msgstr "سرعت های بازگشت:" + +msgid "Rewrap teletext subtitles" +msgstr "" + +msgid "Right" +msgstr "راست" + +msgid "Right from servicename" +msgstr "" + +msgid "Roll-off" +msgstr "Roll-off" + +msgid "Romanian" +msgstr "رومانیایی" + +msgid "Root directory" +msgstr "پوشه root" + +msgid "Rotor step position:" +msgstr "" + +msgid "Rotor turning speed" +msgstr "سرعت چرخش موتور" + +msgid "Round start time on" +msgstr "" + +msgid "Russian" +msgstr "روسی" + +msgid "S-Video" +msgstr "S-Video" + +msgid "SID" +msgstr "SID" + +# +msgid "SINGLE LAYER DVD" +msgstr "DVD یک لایه ای" + +msgid "SNR" +msgstr "Ú©ÛŒÙیت سیگنال" + +msgid "SNR:" +msgstr "Ú©ÛŒÙیت سیگنال:" + +# +msgid "SSID:" +msgstr "SSID:" + +msgid "Same resolution as skin" +msgstr "" + +msgid "Sat" +msgstr "ماهواره" + +msgid "Satellite" +msgstr "ماهواره" + +#, fuzzy +msgid "Satellite dish setup" +msgstr "تنظیم تجهیزات ماهواره" + +msgid "Satellite equipment" +msgstr "تجهیزات ماهواره" + +#, fuzzy +msgid "Satellite equipment setup" +msgstr "تنظیم تجهیزات ماهواره" + +msgid "Satellite longitude:" +msgstr "طول جغراÙیایی ماهواره:" + +msgid "Satellites" +msgstr "ماهواره ها" + +msgid "Satfinder" +msgstr "ماهواره یاب" + +msgid "Sats" +msgstr "ماهواره ها" + +msgid "Saturation" +msgstr "اشباع" + +msgid "Saturday" +msgstr "شنبه" + +msgid "Save" +msgstr "ذخیره" + +#, fuzzy +msgid "Save playlist" +msgstr "ذخیره لیست پخش" + +msgid "Save timeshift file" +msgstr "" + +msgid "Save timeshift file in movie directory" +msgstr "" + +# +msgid "Scaler sharpness" +msgstr "Scaler sharpness" + +#, fuzzy +msgid "Scaling mode" +msgstr "حالت Scaling" + +msgid "Scan" +msgstr "" + +msgid "Scan " +msgstr "اسکن" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, fuzzy, python-format +msgid "Scan %s" +msgstr "اسکن" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, fuzzy, python-format +msgid "Scan %s band" +msgstr "اسکن باند EU MID" + +msgid "Scan additional SR" +msgstr "" + +#, fuzzy +msgid "Scan files..." +msgstr "اسکن Ùایل ها" + +#, fuzzy +msgid "Scan wireless networks" +msgstr "اسکن شبکه های بدون سیم" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "اسکن شبکه شما برای نقاط دسترسی بدون سیم Ùˆ اتصال به آنها با استÙاده از وسیله بدون سیم انتخاب شده توسط شما\n" + +#, python-format +msgid "Scanning %s..." +msgstr "در حال اسکن %s" + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, fuzzy, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "اسکن کامل شد ØŒ %d کانال یاÙت شد" + +#, fuzzy, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "اسکن کامل شد ØŒ %d کانال یاÙت شد" + +msgid "Scanning failed!" +msgstr "اسکن ناموÙÙ‚" + +msgid "Scanning..." +msgstr "در حال اسکن" + +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "" + +msgid "Search east" +msgstr "جستجوی شرق" + +msgid "Search west" +msgstr "جستجوی غرب" + +msgid "Searching" +msgstr "در حال جستجو" + +msgid "Searching east ..." +msgstr "جستجوی شرق" + +msgid "Searching for available updates. Please wait..." +msgstr "در حال جستجو برای به آپدیت های در Ùعال ØŒ لطÙا صبر کنید" + +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "جستجو برای بسته هایی Ú©Ù‡ به تازگی نصب یا حذ٠شده اند ØŒ لطÙا صبر کنید" + +msgid "Searching west ..." +msgstr "جستجوی غرب" + +msgid "Second cable of motorized LNB" +msgstr "" + +msgid "Secondary DNS" +msgstr "DNS دوم" + +msgid "Seek" +msgstr "به دنبال" + +msgid "Seek backward" +msgstr "" + +msgid "Seek backward (enter time)" +msgstr "" + +msgid "Seek forward" +msgstr "" + +msgid "Seek forward (enter time)" +msgstr "" + +msgid "Select" +msgstr "انتخاب" + +#, fuzzy +msgid "Select CAId" +msgstr "انتخاب" + +msgid "Select HDD" +msgstr "انتخاب دیسک سخت" + +#, fuzzy +msgid "Select a bouquet" +msgstr "انتخاب Ùیلم" + +msgid "Select a movie" +msgstr "انتخاب Ùیلم" + +#, fuzzy +msgid "Select a network adapter" +msgstr "انتخاب آداپتور شبکه" + +#, fuzzy +msgid "Select a skin" +msgstr "انتخاب Ùیلم" + +#, fuzzy +msgid "Select a tuner" +msgstr "انتخاب Ùیلم" + +#, fuzzy +msgid "Select a wireless network" +msgstr "انتخاب شبکه بدون سیم" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +#, fuzzy +msgid "Select an image to be downloaded" +msgstr "انتخاب ایمیج برای دانلود" + +msgid "Select audio track" +msgstr "انتخاب آهنگ صوتی" + +#, fuzzy +msgid "Select backup files" +msgstr "انتخاب Ùایل های نسخه پشتیبان" + +#, fuzzy +msgid "Select backup location" +msgstr "انتخاب محل نسخه پشتیبان" + +msgid "Select channel to record from" +msgstr "انتخاب کانال برای ضبط کردن از" + +msgid "Select copy destination for:" +msgstr "انتخاب مقصد رونوشت برای:" + +msgid "Select default EPG type..." +msgstr "" + +msgid "Select desired image from feed list" +msgstr "انتخاب ایمیج درخواستی از لیست" + +msgid "Select destination for:" +msgstr "انتخاب مقصد برای:" + +msgid "Select files for backup." +msgstr "انتخاب Ùایل برای تهیه نسخه پشتیبان" + +# +msgid "Select files/folders to backup" +msgstr "انتخاب Ùایل Ùˆ پوشه ها برای تهیه نسخه پشتیبان" + +msgid "Select input device" +msgstr "انتخاب وسیله ورودی" + +msgid "Select input device." +msgstr "انتخاب وسیله ورودی" + +msgid "Select interface" +msgstr "انتخاب رابط" + +#, fuzzy +msgid "Select location" +msgstr "انتخاب محل" + +#, fuzzy +msgid "Select movie" +msgstr "انتخاب Ùیلم" + +msgid "Select provider to add..." +msgstr "انتخاب ارائه دهنده برای اضاÙÙ‡ کردن" + +msgid "Select refresh rate" +msgstr "انتخاب نرخ تجدید" + +msgid "Select satellites" +msgstr "" + +msgid "Select service to add..." +msgstr "انتخاب کانال برای اضاÙÙ‡ شدن" + +msgid "Select sort method:" +msgstr "" + +#, fuzzy +msgid "Select target folder" +msgstr "انتخاب پوشه مقصد" + +#, fuzzy +msgid "Select the movie path" +msgstr "لطÙا مسیر Ùیلم را انتخاب کنید" + +#, fuzzy +msgid "Select upgrade source" +msgstr "انتخاب منبع به روز رسانی برای ویرایش" + +msgid "Select upgrade source to edit." +msgstr "انتخاب منبع به روز رسانی برای ویرایش" + +msgid "Select video input with up/down buttons" +msgstr "انتخاب ورودی تصویر توسط کلید های بالا/پایین" + +msgid "Select video mode" +msgstr "انتخاب حالت تصویر" + +msgid "Select wireless network" +msgstr "انتخاب شبکه بدون سیم" + +msgid "Select your provider, and press OK to start the scan" +msgstr "" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +# +msgid "Send DiSEqC only on satellite change" +msgstr "ارسال DiSEqC Ùقط هنگام تغییر ماهواره" + +msgid "Separate titles with a main menu" +msgstr "جدا کردن عناوین با یک منوی اصلی" + +msgid "Sequence repeat" +msgstr "تکرار دنباله" + +msgid "Serbian" +msgstr "صربستانی" + +msgid "Service" +msgstr "کانال" + +msgid "Service has been added to the favourites." +msgstr "کانال به مورد علاقه اضاÙÙ‡ شد" + +msgid "Service has been added to the selected bouquet." +msgstr "کانال به لیست انتخاب شده اضاÙÙ‡ شد" + +#, fuzzy +msgid "Service info" +msgstr "اطلاعات کانال" + +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"کانال نامعتبر است\n" +"(مهلت خواندن PMT پایان یاÙت)" + +#, fuzzy +msgid "Service name" +msgstr "نام وسیله:" + +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"کانال یاÙت نشد\n" +"(SID در PAT یاÙت نشد)" + +msgid "Service reference" +msgstr "ارجاع کانال" + +msgid "Service scan" +msgstr "جستجوی کانال" + +#, fuzzy +msgid "Service searching" +msgstr "جستجوی کانال" + +#, fuzzy +msgid "Service title mode" +msgstr "انتخاب حالت تصویر" + +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"کانال در دسترس نیست\n" +"تنظیمات تیونر را بررسی کنید" + +msgid "Services" +msgstr "کانال ها" + +msgid "Set default" +msgstr "" + +#, fuzzy +msgid "Set end time" +msgstr "تنظیم زمان پایان" + +msgid "Set fixed" +msgstr "تنظیم ثابت" + +msgid "Set fps for external subtitles" +msgstr "" + +# +msgid "Set interface as default Interface" +msgstr "تنظیم رابط به عنوان رابط پیش Ùرض" + +#, fuzzy +msgid "Set limits" +msgstr "تنظیم محدودیت ها" + +# +#, fuzzy +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "نمایش پیشرÙت رویداد در انتخاب کانال" + +msgid "Set time window to 1 hour" +msgstr "تنظیم پنجره زمان تا 1 ساعت" + +msgid "Set time window to 2 hours" +msgstr "تنظیم پنجره زمان تا 2 ساعت" + +msgid "Set time window to 3 hours" +msgstr "تنظیم پنجره زمان تا 3 ساعت" + +msgid "Set time window to 4 hours" +msgstr "تنظیم پنجره زمان تا 4 ساعت" + +msgid "Set time window to 5 hours" +msgstr "تنظیم پنجره زمان تا 5 ساعت" + +msgid "Set time window to 6 hours" +msgstr "" + +# +#, fuzzy +msgid "Set voltage and 22KHz" +msgstr "تنظیم ولتاژ Ùˆ 22KHz" + +msgid "Settings" +msgstr "تنظیمات" + +msgid "Setup" +msgstr "تنظیمات" + +msgid "Setup menu" +msgstr "منوی تنظیمات" + +#, fuzzy +msgid "Setup mode" +msgstr "حالت تنظیمات" + +msgid "Setup your positioner" +msgstr "تنظیم مکان یاب شما" + +#, fuzzy +msgid "Setup your satellite equipment" +msgstr "تجهیزات ماهواره" + +# +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "" + +# +msgid "Sharpness" +msgstr "Sharpness" + +msgid "Short filenames" +msgstr "نام های کوتاه Ùایل" + +msgid "Show EIT now/next in infobar" +msgstr "نمایش EIT الان/بعدی در نوار اطلاعات" + +#, fuzzy +msgid "Show EPG for current channel..." +msgstr "نمایش نوار اطلاعات هنگام تعویض رخداد" + +msgid "Show EPG..." +msgstr "" + +msgid "Show Games show" +msgstr "" + +msgid "Show SNR percentage instead of dB value" +msgstr "" + +msgid "Show VCR scart on main menu" +msgstr "" + +#, fuzzy +msgid "Show WLAN status" +msgstr "نمایش وضعیت شبکه بدون سیم" + +msgid "Show animation while busy" +msgstr "نمایش انیمیشن هنگام کار" + +#, fuzzy +msgid "Show background in radio mode" +msgstr "نمایش تصویر پس زمینه در حالت رادیو" + +msgid "Show bouquet selection menu" +msgstr "نمایش منوی انتخاب لیست" + +msgid "Show busy indicator when the system is busy." +msgstr "" + +msgid "Show channel numbers in channel selection" +msgstr "نمایش شماره کانال ها در انتخاب کانال" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "نمایش اطلاعات کد گذاری در نوار اطلاعات" + +msgid "Show detailed event info" +msgstr "نمایش اطلاعات همراه جزئیات رخداد" + +msgid "Show event details" +msgstr "" + +# +msgid "Show event-progress in channel selection" +msgstr "نمایش پیشرÙت رویداد در انتخاب کانال" + +msgid "Show extended description" +msgstr "" + +#, fuzzy +msgid "Show extensions..." +msgstr "بسته ها" + +msgid "Show icon for new/unseen items" +msgstr "" + +msgid "Show in extensions menu" +msgstr "" + +#, fuzzy +msgid "Show info" +msgstr "نمایش اطلاعات" + +#, fuzzy +msgid "Show info line" +msgstr "نمایش اطلاعات" + +msgid "Show infobar on channel change" +msgstr "نمایش نوار اطلاعات هنگام تعویض کانال" + +msgid "Show infobar on event change" +msgstr "نمایش نوار اطلاعات هنگام تعویض رخداد" + +msgid "Show infobar on skip forward/backward" +msgstr "" + +msgid "Show latest commits on sourceforge" +msgstr "" + +# +#, fuzzy +msgid "Show message when recording starts" +msgstr "نمایش پیام هنگامی Ú©Ù‡ ضبط کردن شروع میشود" + +#, fuzzy +msgid "Show movie lengths in movielist" +msgstr "آماده سازی طول Ùیلم ها در لیست Ùیلم" + +msgid "Show multi channel EPG" +msgstr "" + +msgid "Show picons in channel list" +msgstr "" + +msgid "Show positioner movement" +msgstr "نمایش گردش مکان یاب" + +msgid "Show screensaver" +msgstr "" + +msgid "Show second infobar" +msgstr "نمایش نوار اطلاعات دوم" + +msgid "Show service type icons" +msgstr "" + +msgid "Show services beginning with" +msgstr "نمایش کانال های Ú©Ù‡ شروع میشوند با" + +#, fuzzy +msgid "Show shutdown menu" +msgstr "نمایش منوی انتخاب لیست" + +msgid "Show single service EPG" +msgstr "" + +msgid "Show status icons in Movielist" +msgstr "" + +msgid "Show status icons in movie list" +msgstr "" + +msgid "Show status icons in movielist" +msgstr "" + +#, fuzzy +msgid "Show tag menu" +msgstr "منوی تنظیمات" + +msgid "Show the radio player..." +msgstr "نمایش پخش کننده رادیو" + +msgid "Show the tv player..." +msgstr "نمایش پخش کننده تلوزیون" + +msgid "Show warning when timeshift is stopped" +msgstr "" + +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "نمایش وضعیت اتصال شبکه بدون سیم شما\n" + +#, fuzzy +msgid "Shuffle playlist" +msgstr "ذخیره لیست پخش" + +msgid "Shutdown" +msgstr "خاموش کردن" + +msgid "Shutdown when in Standby" +msgstr "" + +#, fuzzy +msgid "Side by side" +msgstr "پهلو به پهلو" + +msgid "Signal OK, proceeding" +msgstr "" + +msgid "Signal quality" +msgstr "Ú©ÛŒÙیت سیگنال" + +# +#, fuzzy +msgid "Signal strength:" +msgstr "قدرت سیگنال:" + +# +msgid "Signal: " +msgstr "سیگنال:" + +msgid "Similar" +msgstr "شبیه" + +msgid "Similar broadcasts:" +msgstr "" + +msgid "Simple" +msgstr "ساده" + +# +msgid "Simple titleset (compatibility for legacy players)" +msgstr "" + +msgid "Single" +msgstr "یک" + +msgid "Single EPG" +msgstr "یک EPG" + +msgid "Single satellite" +msgstr "یک ماهواره" + +#, fuzzy +msgid "Single step (GOP)" +msgstr "یک ماهواره" + +msgid "Single transponder" +msgstr "یک Ùرستنده" + +msgid "Site latitude" +msgstr "عرض جغراÙیایی سایت" + +msgid "Site longitude" +msgstr "طول جغراÙیایی سایت" + +msgid "Skin" +msgstr "پوسته" + +msgid "Skins" +msgstr "پوسته ها" + +#, fuzzy +msgid "Skip empty services" +msgstr "نادیده گرÙتن کانال های خالی" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "" + +#, fuzzy +msgid "Sleep timer" +msgstr "زمان خواب" + +msgid "SleepTimer Configuration" +msgstr "" + +msgid "Sleeptimer" +msgstr "" + +msgid "Slide picture in loop" +msgstr "" + +msgid "Slide show interval (sec.)" +msgstr "" + +#, python-format +msgid "Slot %d" +msgstr "شکا٠%d" + +msgid "Slovak" +msgstr "اسلواکی" + +# +msgid "Slovenian" +msgstr "اسلوونیایی" + +msgid "Slow" +msgstr "آهسته" + +#, fuzzy +msgid "Slow motion speeds" +msgstr "سرعت حرکت آهسته" + +#, fuzzy +msgid "Small progress" +msgstr "در حال اجرا" + +msgid "Social/Political/Economics" +msgstr "" + +msgid "SoftCam / CI" +msgstr "SoftCam / CI" + +#, fuzzy +msgid "Softcam type" +msgstr "نرم اÙزار" + +msgid "Software" +msgstr "نرم اÙزار" + +msgid "Software management" +msgstr "مدیریت نرم اÙزار" + +msgid "Software manager setup" +msgstr "تنظیمات مدیریت نرم اÙزار" + +msgid "Software restore" +msgstr "بازگردانی نرم اÙزار" + +# +msgid "Software update" +msgstr "به روز رسانی نرم اÙزار" + +msgid "Softwaremanager information" +msgstr "اطلاعات مدیریت نرم اÙزار" + +msgid "Some plugins are not available:\n" +msgstr "بعضی از پلاگین ها در دسترس نیستند:\n" + +# +#, fuzzy, python-format +msgid "Sorry, %s has not been installed!" +msgstr "متاسÙانه MediaScanner نصب نشده است" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "" + +# +#, fuzzy +msgid "Sorry, no backups found!" +msgstr "متاسÙانه هیچ نسخه پشتیبانی یاÙت نشد" + +# +#, fuzzy +msgid "Sorry, no details available!" +msgstr "متاسÙانه هیچ جزئیاتی در دسترس نیست" + +# +#, fuzzy +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"متاسÙانه مقصد نسخه پشتیبان شما قابل نوشتن نیست\n" +"لطÙا محل دیگری را انتخاب کنید" + +msgid "Sort" +msgstr "چیدن" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "چیدمان A-Z" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +#, fuzzy +msgid "Sort time" +msgstr "چیدمان بر اساس زمان" + +msgid "Sound" +msgstr "صدا" + +#, fuzzy +msgid "Sound carrier" +msgstr "حمل کننده صدا" + +msgid "Source request" +msgstr "درخواست منبع" + +msgid "South" +msgstr "جنوب" + +msgid "Spanish" +msgstr "اسپانیایی" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +msgid "Split preview mode" +msgstr "حالت پیش نمایش جدا" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "" + +#, fuzzy +msgid "Standard" +msgstr "خاموشی موقت" + +msgid "Standart list" +msgstr "" + +msgid "Standby" +msgstr "خاموشی موقت" + +#, fuzzy +msgid "Standby / restart" +msgstr "خاموشی موقت / راه اندازی مجدد" + +msgid "Standby after current event" +msgstr "" + +# +#, fuzzy, python-format +msgid "Standby fan %d PWM" +msgstr "خاموشی موقت ÙÙ† %d PWM" + +# +#, fuzzy, python-format +msgid "Standby fan %d voltage" +msgstr "خاموشی موقت ÙÙ† %d ولتاژ" + +msgid "Standby in " +msgstr "" + +msgid "StandbyLED" +msgstr "" + +msgid "Start from the beginning" +msgstr "شروع از ابتدای کار" + +msgid "Start offline decode" +msgstr "شروع رمز گشایی Ø¢Ùلاین" + +msgid "Start recording?" +msgstr "شروع ضبط کردن؟" + +msgid "Start test" +msgstr "شروع تست" + +#, fuzzy +msgid "Start time" +msgstr "زمان شروع" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +#, fuzzy +msgid "Start timeshift" +msgstr "شروع تست" + +msgid "Start with list screen" +msgstr "" + +msgid "Starting on" +msgstr "شروع در" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +msgid "Step east" +msgstr "یک درجه به شرق" + +msgid "Step west" +msgstr "یک درجه به غرب" + +msgid "Stepped east" +msgstr "به شرق جابجا شد" + +msgid "Stepped west" +msgstr "به غرب جابجا شد" + +msgid "Stop" +msgstr "توقÙ" + +#, fuzzy +msgid "Stop PiP" +msgstr "توقÙ" + +msgid "Stop current event and disable coming events" +msgstr "توق٠رخداد Ùعلی Ùˆ غیر Ùعال کردن رخداد های بعدی" + +msgid "Stop current event but not coming events" +msgstr "توق٠رخداد Ùعلی بدون توجه به رخداد های بعدی" + +#, fuzzy +msgid "Stop entry" +msgstr "توق٠تست" + +msgid "Stop playing this movie?" +msgstr "توق٠پخش این Ùیلم؟" + +msgid "Stop recording" +msgstr "توق٠ضبط کردن" + +msgid "Stop recording and delete" +msgstr "توق٠ضبط Ùˆ حذ٠آن" + +msgid "Stop service on return to movie list" +msgstr "" + +msgid "Stop test" +msgstr "توق٠تست" + +# +msgid "Stop testing plane after # failed transponders" +msgstr "" + +# +msgid "Stop testing plane after # successful transponders" +msgstr "" + +msgid "Stop timer recording" +msgstr "" + +#, fuzzy +msgid "Stop timeshift" +msgstr "توق٠تغییر زمان ØŸ" + +#, fuzzy +msgid "Stop timeshift?" +msgstr "توق٠تغییر زمان ØŸ" + +msgid "Stopped" +msgstr "متوق٠شده" + +msgid "Store at index" +msgstr "" + +msgid "Store position" +msgstr "ذخیره مکان" + +msgid "Stored position" +msgstr "مکان ذخیره شد" + +#, fuzzy +msgid "Stream" +msgstr "درخواست جریان" + +msgid "Stream request" +msgstr "درخواست جریان" + +msgid "Strongest position" +msgstr "قوی ترین مکان" + +msgid "Subservice list..." +msgstr "لیست کانال های Ùرعی" + +msgid "Subservices" +msgstr "کانال های Ùرعی" + +msgid "Subtitle Quickmenu" +msgstr "" + +#, fuzzy +msgid "Subtitle alignment" +msgstr "تراز متن سÙارشی" + +#, fuzzy +msgid "Subtitle border width" +msgstr "پهنای حاشیه نوشته" + +msgid "Subtitle delay when timing is bad" +msgstr "" + +msgid "Subtitle delay when timing lacks" +msgstr "" + +#, fuzzy +msgid "Subtitle font size" +msgstr "اندازه قلم نوشته" + +msgid "Subtitle language selection 1" +msgstr "انتخاب زبان زیرنویس 1" + +msgid "Subtitle language selection 2" +msgstr "انتخاب زبان زیرنویس 2" + +msgid "Subtitle language selection 3" +msgstr "انتخاب زبان زیرنویس 3" + +msgid "Subtitle language selection 4" +msgstr "انتخاب زبان زیرنویس 4" + +#, fuzzy +msgid "Subtitle position" +msgstr "انتخاب زیرنویس" + +msgid "Subtitle selection" +msgstr "انتخاب زیرنویس" + +msgid "Subtitle selection..." +msgstr "انتخاب زیرنویس" + +msgid "Subtitle settings" +msgstr "تنظیمات زیرنویس" + +msgid "Subtitles" +msgstr "زیرنویس ها" + +msgid "Sun" +msgstr "یکشنبه" + +msgid "Sunday" +msgstr "یکشنبه" + +msgid "Swap PiP and main picture" +msgstr "" + +#, fuzzy +msgid "Swap services" +msgstr "جابجایی کانال ها" + +msgid "Swedish" +msgstr "سوئدی" + +msgid "Switch TV to correct input" +msgstr "" + +msgid "Switch between filelist/playlist" +msgstr "" + +msgid "Switch between normal mode and list mode" +msgstr "" + +msgid "Switch to HDMI in mode" +msgstr "" + +msgid "Switch to filelist" +msgstr "" + +msgid "Switch to next channel" +msgstr "" + +msgid "Switch to next channel in history" +msgstr "" + +#, fuzzy +msgid "Switch to next sub service" +msgstr "جابجایی به کانال Ùرعی بعدی" + +msgid "Switch to playlist" +msgstr "" + +#, fuzzy +msgid "Switch to previous channel" +msgstr "جابجایی به کانال Ùرعی قبلی" + +#, fuzzy +msgid "Switch to previous channel in history" +msgstr "جابجایی به کانال Ùرعی قبلی" + +#, fuzzy +msgid "Switch to previous sub service" +msgstr "جابجایی به کانال Ùرعی قبلی" + +# +msgid "Switchable tuner types:" +msgstr "انواع تیونر های قابل تعویض:" + +msgid "Symbol rate" +msgstr "سیمبل ریت" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "" + +msgid "System" +msgstr "سیستم" + +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "اطلاعات مترجم" + +# +msgid "TS file is too large for ISO9660 level 1!" +msgstr "Ùایل TS بسیار بزرگ است برای ISO9660 level 1" + +msgid "TSID" +msgstr "TSID" + +msgid "TV physical address report" +msgstr "" + +msgid "TXT PID" +msgstr "TXT PID" + +msgid "Table of contents for collection" +msgstr "" + +# +msgid "Tags" +msgstr "برچسب ها" + +msgid "Teletext subtitle color" +msgstr "رنگ زیرنویس تله تکست" + +#, fuzzy +msgid "Temperature and fan control" +msgstr "کنترل دما Ùˆ ÙÙ†" + +msgid "Terrestrial" +msgstr "Terrestrial" + +msgid "Terrestrial provider" +msgstr "ارائه کننده Terrestrial" + +msgid "Test DiSEqC settings" +msgstr "تست تنظیمات DiSEqC" + +msgid "Test mode" +msgstr "حالت تست" + +msgid "Test the network configuration of your receiver.\n" +msgstr "" + +#, fuzzy +msgid "Test type" +msgstr "نوع تست" + +#, fuzzy +msgid "Text color" +msgstr "رنگ زیرنویس تله تکست" + +msgid "Thai" +msgstr "تایلندی" + +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"برای استÙاده از هدایتگر تشکر میکنیم\n" +"برای ادامه دادن دکمه OK را Ùشار دهید" + +#, fuzzy +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"برای استÙاده از هدایتگر تشکر میکنیم\n" +"برای ادامه دادن دکمه OK را Ùشار دهید" + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "" + +msgid "The PIN code has been changed successfully." +msgstr "رمز با موÙقیت تغییر کرد" + +msgid "The PIN codes you entered are different." +msgstr "رمز های وارد شده متÙاوت هستند" + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" + +msgid "The backup failed. Please choose a different backup location." +msgstr "" + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" + +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" + +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" + +msgid "The following files were found..." +msgstr "" + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "" + +# +#, fuzzy +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"بسته هدایتگر شبکه نصب نشده است\n" +"لطÙا آن را نصب کنید" + +#, python-format +msgid "The path %s already exists." +msgstr "" + +msgid "The pin code you entered is wrong." +msgstr "" + +#, python-format +msgid "The results have been written to %s." +msgstr "" + +msgid "The sleep timer has been activated." +msgstr "" + +msgid "The sleep timer has been disabled." +msgstr "" + +# +#, fuzzy +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"بسته مدیریت نرم اÙزار نصب نشده است\n" +"لطÙا آن را نصب کنید" + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "" + +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "" + +#, fuzzy +msgid "The user interface of your receiver is restarting" +msgstr "رابط کاربری دستگاه شما در حال راه اندازی مجدد است" + +#, fuzzy +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "رابط کاربری دستگاه شما در حال راه اندازی مجدد است" + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" + +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "" + +msgid "The wizard is finished now." +msgstr "" + +msgid "There are at least " +msgstr "" + +# +#, fuzzy, python-format +msgid "There are at least %s updates available." +msgstr "به روز رسانی های در دسترس" + +msgid "There are currently no outstanding actions." +msgstr "" + +msgid "There are no updates available." +msgstr "" + +msgid "There is no signal to lock on !" +msgstr "" + +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" + +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "" + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" + +msgid "This plugin is installed." +msgstr "" + +msgid "This plugin is not installed." +msgstr "" + +msgid "This plugin will be installed." +msgstr "" + +msgid "This plugin will be removed." +msgstr "" + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "" + +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" + +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" + +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" + +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" + +msgid "This test detects your configured LAN adapter." +msgstr "" + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" + +msgid "Three" +msgstr "" + +msgid "Threshold" +msgstr "" + +msgid "Thu" +msgstr "" + +msgid "Thumbnails" +msgstr "" + +msgid "Thursday" +msgstr "" + +msgid "Time" +msgstr "" + +msgid "Time scale" +msgstr "" + +msgid "Timer" +msgstr "" + +msgid "Timer Overview" +msgstr "" + +msgid "Timer edit" +msgstr "" + +#, fuzzy +msgid "Timer editor" +msgstr "خروج از ویرایشگر" + +msgid "Timer entry" +msgstr "" + +msgid "Timer log" +msgstr "" + +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" + +msgid "Timer overview" +msgstr "" + +#, fuzzy +msgid "Timer recording location" +msgstr "مکان ضبط کردن Ùوری" + +msgid "Timer sanity error" +msgstr "" + +msgid "Timer selection" +msgstr "" + +msgid "Timer selection..." +msgstr "" + +#, fuzzy +msgid "Timer type" +msgstr "نوع لیست" + +msgid "Timeshift" +msgstr "" + +msgid "Timeshift Live" +msgstr "" + +msgid "Timeshift location" +msgstr "" + +msgid "Timeshift not possible!" +msgstr "" + +msgid "Timezone" +msgstr "" + +msgid "Title" +msgstr "" + +msgid "Title properties" +msgstr "" + +msgid "Titleset mode" +msgstr "" + +msgid "To audio selection" +msgstr "" + +msgid "To subtitle selection" +msgstr "" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" + +msgid "Today" +msgstr "" + +msgid "Toggle a cut mark at the current position" +msgstr "" + +#, fuzzy +msgid "Tone amplitude" +msgstr "طول جغراÙیایی" + +msgid "Tone mode" +msgstr "" + +msgid "Toneburst" +msgstr "" + +msgid "Toneburst A/B" +msgstr "" + +msgid "Top and bottom" +msgstr "" + +msgid "Track" +msgstr "" + +msgid "Translation" +msgstr "" + +msgid "Translation:" +msgstr "" + +msgid "Translations" +msgstr "" + +msgid "Transmission mode" +msgstr "" + +msgid "Transponder" +msgstr "" + +#, fuzzy +msgid "Transponder type" +msgstr "Ùرستنده Ùعلی" + +msgid "Trash can" +msgstr "" + +msgid "Tries left:" +msgstr "" + +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "" + +msgid "Trying to download a new packetlist. Please wait..." +msgstr "" + +msgid "Tue" +msgstr "" + +msgid "Tuesday" +msgstr "" + +msgid "Tune" +msgstr "" + +msgid "Tune and focus" +msgstr "" + +msgid "Tune failed!" +msgstr "" + +msgid "Tuner" +msgstr "" + +msgid "Tuner configuration" +msgstr "" + +msgid "Tuner is not supported" +msgstr "" + +msgid "Tuner slot" +msgstr "" + +msgid "Tuner status" +msgstr "" + +#, python-format +msgid "Tuner status %s" +msgstr "" + +msgid "Tuner type" +msgstr "" + +msgid "Turkish" +msgstr "" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +msgid "Two" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Type of scan" +msgstr "" + +msgid "USALS" +msgstr "" + +msgid "USALS calibration" +msgstr "" + +msgid "USB stick" +msgstr "" + +msgid "USB stick wizard" +msgstr "" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +msgid "Undo install" +msgstr "" + +msgid "Undo uninstall" +msgstr "" + +msgid "Unencrypted" +msgstr "" + +msgid "UnhandledKey" +msgstr "" + +msgid "Unicable" +msgstr "" + +msgid "Unicable LNB" +msgstr "" + +msgid "Unicable Martix" +msgstr "" + +msgid "Uninstall" +msgstr "" + +msgid "Universal LNB" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Unmount" +msgstr "" + +msgid "Unsupported" +msgstr "" + +msgid "Update" +msgstr "" + +msgid "Update and ask to reboot" +msgstr "" + +msgid "Update and reboot (recommended)" +msgstr "" + +#, fuzzy +msgid "Update channel list only" +msgstr "منوی لیست کانال" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "" + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "" + +msgid "Update has completed." +msgstr "" + +msgid "Updatefeed not available." +msgstr "" + +msgid "Updating software catalog" +msgstr "" + +msgid "Upgrading" +msgstr "" + +msgid "Use" +msgstr "" + +msgid "Use DHCP" +msgstr "" + +msgid "Use EIT EPG information when it is available." +msgstr "" + +msgid "Use FreeSat EPG information when it is available." +msgstr "" + +msgid "Use MHW EPG information when it is available." +msgstr "" + +msgid "Use Netmed EPG information when it is available." +msgstr "" + +msgid "Use TV remote control" +msgstr "" + +msgid "Use USALS for this sat" +msgstr "" + +msgid "Use ViaSat EPG information when it is available." +msgstr "" + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +msgid "Use a gateway" +msgstr "" + +msgid "Use fastscan channel names" +msgstr "" + +msgid "Use fastscan channel numbering" +msgstr "" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "" + +#, fuzzy +msgid "Use interface" +msgstr "انتخاب رابط" + +msgid "Use official channel numbering" +msgstr "" + +msgid "Use original DVB subtitle position" +msgstr "" + +msgid "Use original teletext position" +msgstr "" + +msgid "Use power measurement" +msgstr "" + +msgid "Use the network wizard to configure selected network adapter" +msgstr "" + +#, fuzzy +msgid "Use the network wizard to configure your network\n" +msgstr "لطÙا صبر کنید ØŒ ما در حال پیکربندی شبکه شما هستیم" + +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "" + +msgid "Use the wizard to set up basic features" +msgstr "" + +#, fuzzy +msgid "Use these input device settings?" +msgstr "خروج از انتخاب وسیله ورودی" + +#, fuzzy +msgid "Use these settings?" +msgstr "بازگردانی تنظیمات سیستم" + +msgid "Use this video enhancement settings?" +msgstr "" + +#, fuzzy +msgid "Use trash can in movielist" +msgstr "بازگشت به لیست Ùیلم" + +msgid "Used service scan type" +msgstr "" + +msgid "User - bouquets" +msgstr "" + +msgid "User defined" +msgstr "" + +msgid "User defined transponder" +msgstr "" + +#, fuzzy +msgid "User interface" +msgstr "انتخاب رابط" + +msgid "Username" +msgstr "" + +#, python-format +msgid "Using LNB %d" +msgstr "" + +msgid "Using fixed address" +msgstr "" + +#, python-format +msgid "Using tuner %s" +msgstr "" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "" + +msgid "VCR scart" +msgstr "" + +msgid "VMGM (intro trailer)" +msgstr "" + +msgid "Vertical" +msgstr "" + +msgid "Vertical turning speed" +msgstr "" + +msgid "Video PID" +msgstr "" + +msgid "Video enhancement preview" +msgstr "" + +msgid "Video enhancement settings" +msgstr "" + +msgid "Video enhancement setup" +msgstr "" + +msgid "Video fine tuning" +msgstr "" + +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" + +msgid "Video mode selection." +msgstr "" + +#, fuzzy +msgid "Video output" +msgstr "خروجی 12 ولت" + +#, fuzzy +msgid "Video setup" +msgstr "تنظیمات شبکه" + +#, fuzzy +msgid "Video wizard" +msgstr "خروج از هدایتگر" + +#, python-format +msgid "Video: %s fps" +msgstr "" + +msgid "VideoMode" +msgstr "" + +msgid "Videocodec" +msgstr "" + +msgid "Videoformat" +msgstr "" + +msgid "Videosize" +msgstr "" + +msgid "View Rass interactive..." +msgstr "" + +msgid "View details" +msgstr "" + +msgid "View list of available " +msgstr "" + +msgid "View list of available CommonInterface extensions" +msgstr "" + +msgid "View list of available EPG extensions." +msgstr "" + +msgid "View list of available Satellite equipment extensions." +msgstr "" + +msgid "View list of available communication extensions." +msgstr "" + +msgid "View list of available default settings" +msgstr "" + +msgid "View list of available display and userinterface extensions." +msgstr "" + +msgid "View list of available multimedia extensions." +msgstr "" + +msgid "View list of available networking extensions" +msgstr "" + +msgid "View list of available recording extensions" +msgstr "" + +msgid "View list of available skins" +msgstr "" + +msgid "View list of available software extensions" +msgstr "" + +msgid "View list of available system extensions" +msgstr "" + +#, fuzzy +msgid "View photos..." +msgstr "تنظیمات صدا" + +msgid "View teletext..." +msgstr "" + +msgid "View video CD..." +msgstr "" + +msgid "Virtual keyboard" +msgstr "" + +msgid "Voltage mode" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "W" +msgstr "" + +msgid "WEP" +msgstr "" + +msgid "WLAN connection" +msgstr "" + +msgid "WPA" +msgstr "" + +msgid "WPA or WPA2" +msgstr "" + +msgid "WPA2" +msgstr "" + +msgid "WSS on 4:3" +msgstr "" + +msgid "Waiting" +msgstr "" + +msgid "Waiting for mount" +msgstr "" + +#, fuzzy +msgid "Waiting for partition" +msgstr "در حال جابجایی به موقعیت" + +msgid "Wakeup" +msgstr "" + +msgid "Wakeup TV from standby" +msgstr "" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "" + +msgid "Wakeup signal from TV" +msgstr "" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "" + +#, fuzzy +msgid "Watch movies..." +msgstr "پخش Ùیلم های ضبط شده" + +#, fuzzy +msgid "Watch recordings..." +msgstr "شروع ضبط کردن؟" + +msgid "Wed" +msgstr "" + +msgid "Wednesday" +msgstr "" + +msgid "Weekday" +msgstr "" + +msgid "Weighted position" +msgstr "" + +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" + +msgid "Welcome..." +msgstr "" + +msgid "West" +msgstr "" + +msgid "West limit set" +msgstr "" + +msgid "What do you want to scan?" +msgstr "" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "" + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "" + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "" + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "" + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "" + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "" + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "" + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "" + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "" + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "" + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "" + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "" + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "" + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "" + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "" + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "" + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "" + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "" + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "" + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "" + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "" + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "" + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "" + +msgid "When enabled, number markers will be hiden." +msgstr "" + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "" + +#, fuzzy +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "نمایش شماره کانال ها در انتخاب کانال" + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "" + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "" + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "" + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "" + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "" + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "" + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "" + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "" + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "" + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "" + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "" + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "" + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "" + +msgid "When enabled, use DHCP for the IP configuration." +msgstr "" + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "" + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "" + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "" + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "" + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "" + +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" + +msgid "Where do you want to backup your settings?" +msgstr "" + +msgid "Where to save temporary timeshift recordings?" +msgstr "" + +msgid "Wireless LAN" +msgstr "" + +#, fuzzy +msgid "Wireless network" +msgstr "اسکن شبکه های بدون سیم" + +#, fuzzy +msgid "Wireless network configuration..." +msgstr "پیکربندی شبکه" + +msgid "Wireless network connection setup" +msgstr "" + +msgid "Wireless network connection setup." +msgstr "" + +msgid "Wireless network state" +msgstr "" + +msgid "With popup" +msgstr "" + +msgid "Without popup" +msgstr "" + +msgid "Would you like to install a softcam?" +msgstr "" + +msgid "Write error while recording. Disk full?\n" +msgstr "" + +msgid "Write failed!" +msgstr "" + +msgid "YPbPr" +msgstr "" + +msgid "Year" +msgstr "" + +msgid "Yellow DVB subtitles" +msgstr "" + +msgid "Yes" +msgstr "" + +msgid "Yes and save" +msgstr "" + +msgid "Yes and save in movie dir" +msgstr "" + +msgid "Yes to all" +msgstr "" + +msgid "Yes, always" +msgstr "" + +msgid "Yes, and delete this movie" +msgstr "" + +msgid "Yes, backup my settings!" +msgstr "" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +msgid "Yes, do a manual scan now" +msgstr "" + +msgid "Yes, do an automatic scan now" +msgstr "" + +msgid "Yes, do another manual scan now" +msgstr "" + +msgid "Yes, perform a shutdown now." +msgstr "" + +msgid "Yes, restore the settings now" +msgstr "" + +msgid "Yes, returning to movie list" +msgstr "" + +msgid "Yesterday" +msgstr "" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" + +msgid "You can cancel the installation." +msgstr "" + +msgid "You can cancel the removal." +msgstr "" + +msgid "You can continue watching TV etc. while this is running." +msgstr "" + +msgid "You can install this plugin." +msgstr "" + +msgid "You can only burn receiver recordings!" +msgstr "" + +msgid "You can remove this plugin." +msgstr "" + +msgid "You cannot delete this!" +msgstr "" + +msgid "You didn't select a channel to record from." +msgstr "" + +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "" + +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "" + +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "" + +#, python-format +msgid "You have to wait %s!" +msgstr "" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" + +msgid "You system does not support ext4" +msgstr "" + +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "" + +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "" + +msgid "Your current collection will get lost!" +msgstr "" + +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "" + +msgid "Your network configuration has been activated." +msgstr "" + +msgid "Your receiver does not have an internet connection" +msgstr "" + +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" + +msgid "Your receiver is rebooting" +msgstr "" + +msgid "Your receiver is shutting down" +msgstr "" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "" + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "" + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "" + +msgid "Your receiver will got to standby due to inactivity." +msgstr "" + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "" + +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" + +msgid "Zap" +msgstr "" + +msgid "Zap back to previously tuned service?" +msgstr "" + +msgid "Zap back to service before positioner setup?" +msgstr "" + +msgid "Zap back to service before tuner setup?" +msgstr "" + +msgid "Zap focus to Picture in Picture" +msgstr "" + +msgid "Zap focus to main screen" +msgstr "" + +msgid "Zap mode" +msgstr "" + +msgid "Zap to selected channel" +msgstr "" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "" + +msgid "[alternative edit]" +msgstr "" + +msgid "[bouquet edit]" +msgstr "" + +msgid "[favourite edit]" +msgstr "" + +msgid "[move mode]" +msgstr "" + +msgid "a gui to assign services/providers to common interface modules" +msgstr "" + +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "" + +msgid "abort alternatives edit" +msgstr "" + +msgid "abort bouquet edit" +msgstr "" + +msgid "abort favourites edit" +msgstr "" + +msgid "about to start" +msgstr "" + +msgid "activate network adapter configuration" +msgstr "" + +msgid "add alternatives" +msgstr "" + +msgid "add bookmark" +msgstr "" + +msgid "add bouquet" +msgstr "" + +msgid "add marker" +msgstr "" + +msgid "add service to bouquet" +msgstr "" + +msgid "add service to favourites" +msgstr "" + +msgid "add to parental protection" +msgstr "" + +msgid "adult movie/drama" +msgstr "" + +msgid "advanced" +msgstr "" + +msgid "adventure/western/war" +msgstr "" + +msgid "advertisement/shopping" +msgstr "" + +msgid "after " +msgstr "" + +msgid "alphabetic" +msgstr "" + +msgid "alphabetic reverse" +msgstr "" + +msgid "alternative" +msgstr "" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "" + +msgid "arts/culture magazine" +msgstr "" + +msgid "athletics" +msgstr "" + +msgid "audio tracks" +msgstr "" + +msgid "auto" +msgstr "" + +#, fuzzy +msgid "automatic" +msgstr "خودکار" + +msgid "back" +msgstr "" + +msgid "background image" +msgstr "" + +msgid "ballet" +msgstr "" + +#, python-format +msgid "bc%s" +msgstr "" + +msgid "better" +msgstr "" + +msgid "black" +msgstr "" + +msgid "black & white" +msgstr "" + +msgid "blacklist" +msgstr "" + +msgid "blue" +msgstr "" + +msgid "broadcasting/press" +msgstr "" + +msgid "by date" +msgstr "" + +msgid "cartoon/puppets" +msgstr "" + +msgid "center" +msgstr "" + +msgid "centered" +msgstr "" + +msgid "centered, wrapped" +msgstr "" + +msgid "chapters" +msgstr "" + +msgid "childrens's/youth program (general)" +msgstr "" + +msgid "circular left" +msgstr "" + +msgid "circular right" +msgstr "" + +msgid "comedy" +msgstr "" + +msgid "complex" +msgstr "" + +msgid "config menu" +msgstr "" + +msgid "confirmed" +msgstr "" + +msgid "connected" +msgstr "" + +msgid "continue" +msgstr "" + +msgid "cooking" +msgstr "" + +msgid "copy to bouquets" +msgstr "" + +msgid "create directory" +msgstr "" + +#, python-format +msgid "currently installed image: %s" +msgstr "" + +msgid "daily" +msgstr "" + +msgid "day" +msgstr "" + +#, fuzzy +msgid "default" +msgstr "پیش Ùرض" + +msgid "delete cut" +msgstr "" + +msgid "delete..." +msgstr "" + +msgid "descramble and record ecm" +msgstr "" + +msgid "detective/thriller" +msgstr "" + +msgid "disable" +msgstr "" + +msgid "disable move mode" +msgstr "" + +msgid "disabled" +msgstr "" + +msgid "disconnected" +msgstr "" + +msgid "discussion/interview/debate" +msgstr "" + +msgid "do nothing" +msgstr "" + +msgid "documentary" +msgstr "" + +msgid "don't descramble, record ecm" +msgstr "" + +msgid "done!" +msgstr "" + +msgid "east" +msgstr "" + +msgid "economics/social advisory" +msgstr "" + +msgid "edit alternatives" +msgstr "" + +msgid "education/science/factual topics (general)" +msgstr "" + +msgid "empty" +msgstr "" + +msgid "enable" +msgstr "" + +msgid "enable bouquet edit" +msgstr "" + +msgid "enable favourite edit" +msgstr "" + +msgid "enable move mode" +msgstr "" + +msgid "enabled" +msgstr "" + +msgid "end alternatives edit" +msgstr "" + +msgid "end bouquet edit" +msgstr "" + +msgid "end cut here" +msgstr "" + +msgid "end favourites edit" +msgstr "" + +msgid "entertainment (10-16 year old)" +msgstr "" + +msgid "entertainment (6-14 year old)" +msgstr "" + +msgid "equal to" +msgstr "" + +msgid "equestrian" +msgstr "" + +msgid "exit DVD player or return to file browser" +msgstr "" + +msgid "exit movielist" +msgstr "" + +msgid "exit network adapter configuration" +msgstr "" + +msgid "exit networkadapter setup menu" +msgstr "" + +msgid "experimental film/video" +msgstr "" + +msgid "false" +msgstr "" + +msgid "fashion" +msgstr "" + +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "" + +msgid "filename" +msgstr "" + +msgid "film/cinema" +msgstr "" + +msgid "fine arts" +msgstr "" + +msgid "fine-tune your display" +msgstr "" + +msgid "fitness & health" +msgstr "" + +msgid "flat alphabetic" +msgstr "" + +msgid "flat alphabetic reverse" +msgstr "" + +msgid "folk/traditional music" +msgstr "" + +msgid "football/soccer" +msgstr "" + +msgid "foreign countries/expeditions" +msgstr "" + +msgid "forward to the next chapter" +msgstr "" + +msgid "free" +msgstr "" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "" + +msgid "game show/quiz/contest" +msgstr "" + +msgid "gardening" +msgstr "" + +msgid "go to deep standby" +msgstr "" + +msgid "go to standby" +msgstr "" + +msgid "grab this frame as bitmap" +msgstr "" + +msgid "green" +msgstr "" + +msgid "handicraft" +msgstr "" + +msgid "height" +msgstr "" + +msgid "help..." +msgstr "" + +msgid "horizontal" +msgstr "" + +msgid "information/education/school program" +msgstr "" + +msgid "init module" +msgstr "" + +msgid "init modules" +msgstr "" + +msgid "insert mark here" +msgstr "" + +msgid "invalid type" +msgstr "" + +msgid "jazz" +msgstr "" + +msgid "jump back to the previous title" +msgstr "" + +msgid "jump forward to the next title" +msgstr "" + +msgid "languages" +msgstr "" + +msgid "leave movie player..." +msgstr "" + +msgid "left" +msgstr "" + +msgid "left, wrapped" +msgstr "" + +msgid "leisure hobbies (general)" +msgstr "" + +msgid "length" +msgstr "" + +msgid "limit ..., aborting !" +msgstr "" + +msgid "list style compact" +msgstr "" + +msgid "list style compact with description" +msgstr "" + +msgid "list style default" +msgstr "" + +msgid "list style single line" +msgstr "" + +msgid "literature" +msgstr "" + +msgid "live broadcast" +msgstr "" + +msgid "locked" +msgstr "" + +msgid "loopthrough to" +msgstr "" + +msgid "magazines/reports/documentary" +msgstr "" + +msgid "manual" +msgstr "" + +msgid "martial sports" +msgstr "" + +msgid "medicine/physiology/psychology" +msgstr "" + +msgid "menu" +msgstr "" + +msgid "mins" +msgstr "" + +msgid "minutes" +msgstr "" + +msgid "month" +msgstr "" + +msgid "motor sport" +msgstr "" + +msgid "motoring" +msgstr "" + +msgid "move down to last entry" +msgstr "" + +msgid "move down to next entry" +msgstr "" + +msgid "move up to first entry" +msgstr "" + +msgid "move up to previous entry" +msgstr "" + +msgid "movie/drama (general)" +msgstr "" + +msgid "multinorm" +msgstr "" + +msgid "music/ballet/dance (general)" +msgstr "" + +msgid "musical/opera" +msgstr "" + +msgid "nature/animals/environment" +msgstr "" + +msgid "never" +msgstr "" + +msgid "new media" +msgstr "" + +msgid "news magazine" +msgstr "" + +msgid "news/current affairs (general)" +msgstr "" + +msgid "news/weather report" +msgstr "" + +msgid "no" +msgstr "" + +msgid "no CAId selected" +msgstr "" + +msgid "no CI slots found" +msgstr "" + +msgid "no module found" +msgstr "" + +msgid "no storage devices found" +msgstr "" + +msgid "none" +msgstr "" + +msgid "normal" +msgstr "" + +msgid "not configured" +msgstr "" + +msgid "not locked" +msgstr "" + +msgid "not supported" +msgstr "" + +msgid "not used" +msgstr "" + +msgid "nothing connected" +msgstr "" + +msgid "of a DUAL layer medium used." +msgstr "" + +msgid "of a SINGLE layer medium used." +msgstr "" + +msgid "off" +msgstr "" + +msgid "offset is" +msgstr "" + +msgid "on" +msgstr "" + +msgid "on READ ONLY medium." +msgstr "" + +msgid "on end of movie" +msgstr "" + +msgid "once" +msgstr "" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +msgid "open nameserver configuration" +msgstr "" + +msgid "original" +msgstr "" + +msgid "original language" +msgstr "" + +msgid "pass" +msgstr "" + +msgid "performing arts" +msgstr "" + +msgid "play as picture in picture" +msgstr "" + +msgid "play in mainwindow" +msgstr "" + +msgid "please press OK when ready" +msgstr "" + +msgid "please wait, loading picture..." +msgstr "" + +msgid "popular culture/traditional arts" +msgstr "" + +msgid "pre-school children's program" +msgstr "" + +msgid "receiver software because updates are available." +msgstr "" + +msgid "record" +msgstr "" + +msgid "recording..." +msgstr "" + +msgid "red" +msgstr "" + +msgid "religion" +msgstr "" + +msgid "remarkable people" +msgstr "" + +msgid "remove after this position" +msgstr "" + +msgid "remove all alternatives" +msgstr "" + +msgid "remove all new found flags" +msgstr "" + +msgid "remove before this position" +msgstr "" + +msgid "remove bookmark" +msgstr "" + +msgid "remove directory" +msgstr "" + +msgid "remove entry" +msgstr "" + +msgid "remove from parental protection" +msgstr "" + +msgid "remove new found flag" +msgstr "" + +msgid "remove selected satellite" +msgstr "" + +msgid "remove this mark" +msgstr "" + +msgid "rename entry" +msgstr "" + +msgid "repeat playlist" +msgstr "" + +msgid "repeated" +msgstr "" + +msgid "reverse by date" +msgstr "" + +msgid "rewind to the previous chapter" +msgstr "" + +msgid "right" +msgstr "" + +msgid "right, wrapped" +msgstr "" + +msgid "rock/pop" +msgstr "" + +msgid "romance" +msgstr "" + +msgid "save last directory on exit" +msgstr "" + +msgid "save playlist on exit" +msgstr "" + +msgid "scan state" +msgstr "" + +msgid "science fiction/fantasy/horror" +msgstr "" + +msgid "second cable of motorized LNB" +msgstr "" + +msgid "seconds" +msgstr "" + +msgid "select" +msgstr "" + +msgid "select CAId's" +msgstr "" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +msgid "select menu entry" +msgstr "" + +msgid "select movie" +msgstr "" + +msgid "select the movie path" +msgstr "" + +msgid "serious music/classic music" +msgstr "" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "" + +msgid "service PIN" +msgstr "" + +msgid "set as startup service" +msgstr "" + +msgid "setup PIN" +msgstr "" + +msgid "show DVD main menu" +msgstr "" + +msgid "show all tags" +msgstr "" + +msgid "show alternatives" +msgstr "" + +msgid "show event details" +msgstr "" + +msgid "show extended description" +msgstr "" + +msgid "show mediaplayer on mainmenu" +msgstr "" + +msgid "show softwaremanager in setup menu" +msgstr "" + +msgid "show softwaremanager on blue button" +msgstr "" + +msgid "show tag menu" +msgstr "" + +msgid "show transponder info" +msgstr "" + +msgid "show/game show (general)" +msgstr "" + +msgid "shuffle" +msgstr "" + +msgid "shut down" +msgstr "" + +msgid "simple" +msgstr "" + +msgid "skip backward" +msgstr "" + +msgid "skip forward" +msgstr "" + +msgid "soap/melodram/folkloric" +msgstr "" + +msgid "social/political issues/economics (general)" +msgstr "" + +msgid "social/spiritual science" +msgstr "" + +msgid "sorting of playlists" +msgstr "" + +msgid "special characters" +msgstr "" + +msgid "special events" +msgstr "" + +msgid "special format data DVD (HDTV compatible)" +msgstr "" + +msgid "sports (general)" +msgstr "" + +msgid "sports magazine" +msgstr "" + +msgid "standard" +msgstr "" + +msgid "start cut here" +msgstr "" + +msgid "start directory" +msgstr "" + +msgid "stepsize" +msgstr "" + +msgid "stereo" +msgstr "" + +msgid "stop using as startup service" +msgstr "" + +msgid "switch to bookmarks" +msgstr "" + +msgid "switch to filelist" +msgstr "" + +msgid "switch to the next angle" +msgstr "" + +msgid "switch to the next audio track" +msgstr "" + +msgid "switch to the next subtitle language" +msgstr "" + +msgid "talk show" +msgstr "" + +msgid "team sports" +msgstr "" + +msgid "technology/natural science" +msgstr "" + +msgid "template file" +msgstr "" + +msgid "tennis/squash" +msgstr "" + +msgid "this recording" +msgstr "" + +msgid "this service is protected by a parental control pin" +msgstr "" + +msgid "toggle time, chapter, audio, subtitle info" +msgstr "" + +msgid "top" +msgstr "" + +msgid "tourism/travel" +msgstr "" + +msgid "true" +msgstr "" + +msgid "unavailable" +msgstr "" + +msgid "unconfirmed" +msgstr "" + +msgid "undefined" +msgstr "" + +msgid "unknown" +msgstr "" + +msgid "unknown service" +msgstr "" + +msgid "unpublished" +msgstr "" + +msgid "until standby/restart" +msgstr "" + +msgid "user defined" +msgstr "" + +msgid "variety show" +msgstr "" + +msgid "vertical" +msgstr "" + +msgid "wait for ci..." +msgstr "" + +msgid "wait for mmi..." +msgstr "" + +msgid "waiting" +msgstr "" + +msgid "water sport" +msgstr "" + +msgid "weekly" +msgstr "" + +msgid "west" +msgstr "" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "" + +msgid "whitelist" +msgstr "" + +msgid "width" +msgstr "" + +msgid "winter sport" +msgstr "" + +msgid "wireless network interface" +msgstr "" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "" + +msgid "working" +msgstr "" + +msgid "yellow" +msgstr "" + +msgid "yes" +msgstr "" + +msgid "yes (keep feeds)" +msgstr "" + +msgid "zap" +msgstr "" + +msgid "zap and record" +msgstr "" + +msgid "zapped" +msgstr "" + +#~ msgid "AA" +#~ msgstr "AA" + +#~ msgid "AB" +#~ msgstr "AB" + +#, fuzzy +#~ msgid "Activate PiP" +#~ msgstr "Ùعال کردن تصویر در تصویر" + +#, fuzzy +#~ msgid "Add/remove timer for current event" +#~ msgstr "اضاÙÙ‡/حذ٠زمان از رخداد Ùعلی" + +#~ msgid "Adjust HDMI CEC settings" +#~ msgstr "تنظیمات HDMI CEC" + +#, fuzzy +#~ msgid "All satellites" +#~ msgstr "همه ماهواره ها" + +#~ msgid "BA" +#~ msgstr "BA" + +#~ msgid "BB" +#~ msgstr "BB" + +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "عملکرد دکمه توق٠هنگام متوق٠شدن" + +#~ msgid "Committed DiSEqC command" +#~ msgstr "Ùرمان سپرده شده DiSEqC" + +#~ msgid "DiSEqC repeats" +#~ msgstr "DiSEqC تکرار" + +#~ msgid "Goto specific data/time" +#~ msgstr "مراجعه به تاریخ/زمان مشخص" + +#~ msgid "Remove timer" +#~ msgstr "حذ٠زمان" + +#~ msgid "Send DiSEqC" +#~ msgstr "ارسال DiSEqC" + +#, fuzzy +#~ msgid "Switch next channel" +#~ msgstr "جابجایی به کانال Ùرعی بعدی" diff --git a/po/fi.po b/po/fi.po new file mode 100644 index 0000000..f3bb110 --- /dev/null +++ b/po/fi.po @@ -0,0 +1,9985 @@ +# Finnish translations for Enigma2. +# +msgid "" +msgstr "" +"Project-Id-Version: enigma2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2013-10-15 19:32+0200\n" +"Last-Translator: BoxFreak\n" +"Language-Team: none\n" +"Language: fi\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-Generator: Poedit 1.5.7\n" + +# +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"Laajennetut valinnat ja asetukset." + +# +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"Kun olet painanut OK-näppäintä, odota!" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" +"\n" +"Varmuuskopioi vastaanottimesi asetukset." + +# +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"Muokkaa päivityslähteen osoitetta." + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" +"\n" +"Hallitse lisäosia tai plugineja vastaanottimesessasi" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" +"\n" +"Päivitä verkosta vastaanottimesi ohjelmisto." + +# +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"\n" +"Jatka painamalla OK-näppäintä." + +# +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"Palauta varmuuskopiot päivän mukaan." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" +"\n" +"Palauta vastaanottimesi asetukset." + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" +"\n" +"Palauta vastaanottimesi uudelle firmwarelle." + +# +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"Etsi paikallisia lisäosia ja asenna ne." + +# +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Valitse tallennuspaikka varmuuskopiolle.\n" +"Nykyinen valinta: " + +# +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"Lisää ja poista ohjelmapaketteja." + +msgid " (PiP)" +msgstr " (PiP)" + +msgid " (Radio)" +msgstr " (Radio)" + +msgid " (TV)" +msgstr " (TV)" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +msgid " extensions." +msgstr " lisäosaa." + +msgid " ms" +msgstr " ms" + +msgid " packages selected." +msgstr " pakettia valittu." + +msgid " updates available." +msgstr " päivitystä." + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "%2d:%02d" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "%2d:%02d:%02d" + +msgid "%A %d %B" +msgstr "%A %d %B" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "%A %e. %Bta" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "%A %e. %Bta %Y" + +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "%a %e.%-m" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "%a %e.%-m %-H:%M" + +# +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "%d kanava löydetty" +msgstr[1] "%d kanavaa löydetty" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "%d tiedosto" +msgstr[1] "%d tiedostoa" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d tunti" +msgstr[1] "%d tuntia" + +# +#, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d työ on taustalla käynnissä!" +msgstr[1] "%d työtä on taustalla käynnissä!" + +# +#, python-format +msgid "%d min" +msgstr "%d min" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minuutti" +msgstr[1] "%d minuuttia" + +#, python-format +msgid "%d minutes" +msgstr "%d minuuttia" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d sekunti" +msgstr[1] "%d sekuntia" + +#, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "%d alihakemisto" +msgstr[1] "%d alihakemistoa" + +# +#, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "%d WLAN-verkko löytyi!" +msgstr[1] "%d WLAN-verkkoa löytyi!" + +msgid "%d-%b-%Y %-H:%M" +msgstr "%d-%b-%Y %-H:%M" + +msgid "%d-%m" +msgstr "%d-%m" + +# +msgid "%d.%B %Y" +msgstr "%d.%m.%Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "%k:%M %e.%-m" + +# +#, python-format +msgid "%s %s free disk space" +msgstr "%s %s vapaata levytilaa" + +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "%s ei enää käytetä. Pitäisikö se poistaa?" + +#, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "%s päivitetty paketti saatavilla." +msgstr[1] " %s päivitettyä pakettia saatavilla." + +# +#, python-format +msgid "%s%d min" +msgstr "%s%d min" + +#, python-format +msgid "%s/%s: %s" +msgstr "%s/%s: %s" + +# +msgid "(ZAP)" +msgstr "(Kanavanvaihto)" + +# +msgid "(empty)" +msgstr "(tyhjä)" + +# +msgid "(show optional DVD audio menu)" +msgstr "(näytä DVD-äänen lisävalikko)" + +# +msgid "* Only available if more than one interface is active." +msgstr "* Käytettävissä vain kun useampi kuin yksi sovitin on aktiivinen." + +msgid "/s" +msgstr "/s" + +msgid "0" +msgstr "0" + +msgid "1" +msgstr "1" + +# +msgid "1.0" +msgstr "1.0" + +# +msgid "1.1" +msgstr "1.1" + +# +msgid "1.2" +msgstr "1.2" + +# +msgid "12V output" +msgstr "12V ulostulo" + +# +msgid "13 V" +msgstr "13 V" + +msgid "16:10" +msgstr "16:10" + +# +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +# +msgid "16:10 PanScan" +msgstr "16:10 Pan&Scan" + +# +msgid "16:9" +msgstr "16:9" + +# +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +# +msgid "16:9 always" +msgstr "16:9 Automatiikka" + +# +msgid "18 V" +msgstr "18 V" + +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "23.976" + +msgid "24" +msgstr "24" + +msgid "25" +msgstr "25" + +msgid "29.97" +msgstr "29.97" + +msgid "3" +msgstr "3" + +msgid "30" +msgstr "30" + +msgid "3d mode" +msgstr "3D-tila" + +msgid "4" +msgstr "4" + +msgid "4:3" +msgstr "4:3" + +# +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +# +msgid "4:3 PanScan" +msgstr "4:3 Pan&Scan" + +msgid "5" +msgstr "5" + +msgid "6" +msgstr "6" + +msgid "7" +msgstr "7" + +msgid "8" +msgstr "8" + +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +msgid "<Current movielist location>" +msgstr "<Nykyinen tallennushakemisto>" + +msgid "<Default movie location>" +msgstr "<Oletushakemisto>" + +msgid "<Last timer location>" +msgstr "<Viimeisin ajastushakemisto>" + +# +msgid "<unknown>" +msgstr "<tuntematon>" + +# +msgid "??" +msgstr "??" + +# +msgid "A" +msgstr "A" + +# +#, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"Asetustiedostoa (%s) on muokattu asennuksen jälkeen.\n" +"Haluatko säilyttää oman versiosi?" + +# +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"Asetustiedostoa (%s) on muokattu asennuksen jälkeen.\n" +"Haluatko säilyttää oman versiosi?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"Päättynyt ajastus haluaa asettaa vastaanottimesi\n" +"valmiustilaan. Tehdäänkö niin nyt?" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"Päättynyt ajastus haluaa sammuttaa\n" +"vastaanottimesi. Sammutetaanko nyt?" + +# +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "Graafinen ohjelmaopas kaikille suosikkilistan kanaville" + +# +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"Tallennus on alkanut:\n" +"%s" + +# +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"Tallennus on parhaillaan käynnissä.\n" +"Mitä haluat tehdä?" + +# +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "" +"Tallennus on parhaillaan käynnissä. Pysäytä tallennus\n" +"ennen kuin yrität muokata kääntömoottorin asetuksia." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "Tallennus on käynnissä. Lopeta tallennus ennen kuin käytät hakua." + +# +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "" +"Tallennus on parhaillaan käynnissä. Pysäytä tallennus\n" +"ennen kuin käynnistät satelliittietsimen." + +# +#, python-format +msgid "A required tool (%s) was not found." +msgstr "Tarvittavaa osaa (%s) ei löytynyt." + +msgid "A search for available updates is currently in progress." +msgstr "Päivityksien haku on käynnissä." + +# +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"Toinen määritetty verkkosovitin löytyi.\n" +"\n" +"Kytketäänkö se pois päältä?" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"Uniajastin haluaa asettaa vastaanottimesi\n" +"valmiustilaan. Tehdäänkö niin nyt?" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"Uniajastin haluaan sammuttaa vastaanottimesi.\n" +"Sammutetaanko nyt?" + +msgid "A small overview of the available icon states and actions." +msgstr "Lyhyt kuvaus kuvakkeiden tiloista ja toiminnoista." + +# +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"Ajastettu tallennus epäonnistui!\n" +"Sallitko kanavanvaihdon, jotta tallennusta\n" +"voidaan yrittää uudelleen?\n" + +# +msgid "A/V settings" +msgstr "Ääni- ja kuvalähtöjen asetukset" + +msgid "AC3/DTS downmix" +msgstr "AC3/DTS muunnos stereoksi" + +# +msgid "Abort" +msgstr "Keskeytä" + +# +msgid "About" +msgstr "Tietoja" + +# +msgid "About..." +msgstr "Tietoja..." + +# +msgid "Accesspoint:" +msgstr "Tukiasema:" + +# +msgid "Action on long powerbutton press" +msgstr "Sammutusnapin pitkä painallus" + +msgid "Action on short powerbutton press" +msgstr "Sammutusnapin lyhyt painallus" + +# +msgid "Activate Picture in Picture" +msgstr "Avaa PiP-kuva" + +# +msgid "Activate current configuration" +msgstr "Aktivoi nykyiset asetukset" + +# +msgid "Activate network settings" +msgstr "Ota verkkoasetukset käyttöön" + +# +msgid "Activate the configured network settings." +msgstr "Ota tekemäsi verkkoasetukset käyttöön." + +# +msgid "Adapter settings" +msgstr "Sovittimen asetukset" + +# +msgid "Add" +msgstr "Lisää" + +# +msgid "Add Bookmark" +msgstr "Kirjanmerkki" + +# +msgid "Add a mark" +msgstr "Lisää merkki" + +# +msgid "Add a nameserver entry" +msgstr "Lisää nimipalvelin" + +# +msgid "Add a new title" +msgstr "Lisää uusi tallenne" + +# +msgid "Add bookmark" +msgstr "Lisää kirjanmerkki" + +# +msgid "Add directory to playlist" +msgstr "Lisää hakemisto soittolistalle" + +# +msgid "Add file to playlist" +msgstr "Lisää tiedosto soittolistalle" + +# +msgid "Add files to playlist" +msgstr "Lisää tiedostot soittolistalle" + +msgid "Add more details to the crash log" +msgstr "Lisää enemmän yksityiskohtia kaatumislokiin." + +# +msgid "Add provider" +msgstr "Lisää palveluntarjoaja" + +# +msgid "Add recording (enter recording duration)" +msgstr "Tallenna (syötä tallennuksen kesto)" + +# +msgid "Add recording (enter recording endtime)" +msgstr "Tallenna (syötä tallennuksen päättymisaika)" + +# +msgid "Add recording (indefinitely)" +msgstr "Tallenna (jatkuva tallennus)" + +# +msgid "Add recording (stop after current event)" +msgstr "Tallenna (lopeta nykyisen ohjelman jälkeen)" + +# +msgid "Add service" +msgstr "Lisää kanava" + +# +msgid "Add timer" +msgstr "Lisää ajastus" + +# +msgid "Add title" +msgstr "Lisää" + +# +msgid "Add to bouquet" +msgstr "Lisää suosikkilistalle" + +# +msgid "Add to favourites" +msgstr "Lisää suosikkilistalle" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "Säädä 3D-asetuksia" + +# +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "" +"Säädä värikylläisyys siten, että kaikki sävyt erottuvat ja ovat mahdollisimman\n" +"kylläisiä.\n" +"\n" +"Kun olet tyytyväinen tulokseen, sulje testikuva painamalla OK tai valitse numeronäppäimillä 1-6 joku muu testikuva." + +msgid "Advanced" +msgstr "" + +# +msgid "Advanced options" +msgstr "Laajennetut valinnat" + +# +msgid "Advanced restore" +msgstr "Laajennettu palautus" + +msgid "Advanced software" +msgstr "Laajemmat ohjelmistovalinnat" + +msgid "Advanced software plugin" +msgstr "Laajemmat lisäosavalinnat" + +msgid "Advanced video enhancement setup" +msgstr "Laajemmat kuvanparannukset asetukset" + +# +msgid "Advanced video setup" +msgstr "Laajennetut video-asetukset" + +# +msgid "After event" +msgstr "Ajastuksen jälkeen" + +# +msgid "Album" +msgstr "Albumi" + +msgid "Alignment of events" +msgstr "Ohjelmien kohdistus" + +msgid "Alignment of service names" +msgstr "Kanavien nimien kohdistus" + +# +msgid "All" +msgstr "Kaikki" + +msgid "All ages" +msgstr "Kaikenikäisille" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "Varaa" + +msgid "Allocate unused memory index" +msgstr "Varaa vapaa muisti-indeksi" + +msgid "Allow quit movieplayer with exit" +msgstr "Salli tallenteista poistuminen exit-napilla" + +msgid "Allow subtitle language to equal audio language" +msgstr "Salli tekstityskielen vastata äänivalintaa" + +msgid "Allow subtitles for hearing impaired" +msgstr "Salli kuulovammaisten tekstitys" + +# +msgid "Alpha" +msgstr "Alpha" + +# +msgid "Alternative" +msgstr "Vaihtoehtoisten kanavien lisäys ja poisto" + +# +msgid "Alternative numbering mode" +msgstr "TV-tyylinen radiokanavien numerointi" + +# +msgid "Alternative services tuner priority" +msgstr "Virittimien prioriteetti" + +msgid "Always ask" +msgstr "Kysy aina" + +msgid "Always hide infobar" +msgstr "" + +# +msgid "An empty filename is illegal." +msgstr "Tyhjä nimi ei ole sallittu" + +# +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "Tapahtui virhe ladattaessa IPKG-ohjelmapakettiluetteloa. Yritä uudestaan." + +# +msgid "An unknown error occurred!" +msgstr "Tuntematon virhe tapahtui!" + +msgid "And will put your receiver in standby over " +msgstr "Ja asettaa vastaanottimen valmiustilaan" + +msgid "Any activity" +msgstr "Mikä tahansa toiminta" + +# +msgid "Arabic" +msgstr "Arabia" + +msgid "Are you sure to remove this entry?" +msgstr "" + +# +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"Haluatko aktivoida nämä verkkoasetukset?\n" +"\n" + +# +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"Oletko varma, että haluat poistaa\n" +"seuraavan varmuuskopion:\n" + +msgid "Are you sure you want to exit this wizard?" +msgstr "Haluatko lopettaa avustustoiminnon?" + +# +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"Haluatko käynnistää verkkosovittimet uudelleen?\n" +"\n" + +# +#, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Oletko varma, että haluat palauttaa\n" +"seuraavan varmuuskopion:\n" +"%s\n" +"Vastaanotin käynnistyy uudelleen varmuuskopion palautuksen jälkeen!" + +# +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Oletko varma, että haluat palauttaa varmuuskopion?\n" +"Vastaanotin käynnistyy uudelleen varmuuskopion palautuksen jälkeen!" + +# +msgid "Artist" +msgstr "Esittäjä" + +msgid "Arts/Culture" +msgstr "Taide/Kulttuuri" + +# +msgid "Ask user" +msgstr "Kysy käyttäjältä" + +# +msgid "Aspect ratio" +msgstr "Kuvasuhde" + +msgid "Assigned CAIds:" +msgstr "Määritetyt CAId:t:" + +# +msgid "Assigned services/provider:" +msgstr "Määritetyt kanavat/palveluntarjoajat:" + +msgid "At beginning" +msgstr "Alussa" + +msgid "At end" +msgstr "Lopussa" + +# +msgid "Audio" +msgstr "Ääni" + +msgid "Audio PID" +msgstr "Ääni-PID" + +msgid "Audio language selection 1" +msgstr "Äänen kielivalinta 1" + +msgid "Audio language selection 2" +msgstr "Äänen kielivalinta 2" + +msgid "Audio language selection 3" +msgstr "Äänen kielivalinta 3" + +msgid "Audio language selection 4" +msgstr "Äänen kielivalinta 4" + +# +msgid "Audio options..." +msgstr "Äänivalinnat..." + +# +#, python-format +msgid "Audio track (%s) format" +msgstr "Ääniraidan (%s) formaatti" + +# +#, python-format +msgid "Audio track (%s) language" +msgstr "Ääniraidan (%s) kieli" + +# +msgid "Author: " +msgstr "Tekijä: " + +# +msgid "Authoring mode" +msgstr "Toimintatapa" + +# +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Automaattinen" + +# +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Automaattinen kappalejako joka ? min välein (0=ei koskaan)" + +# +msgid "Auto flesh" +msgstr "Ihonvärin korostus" + +msgid "Auto focus" +msgstr "Automaattitarkennus" + +msgid "Auto focus commencing ..." +msgstr "Automaattitarkennus käynnistyy ..." + +msgid "Auto language selection" +msgstr "Automaattinen kielivalinta" + +# +msgid "Auto scart switching" +msgstr "Autom. SCARTin kytkentä" + +# +msgid "Automatic" +msgstr "Automaattinen" + +# +msgid "Automatic scan" +msgstr "Automaattihaku" + +msgid "Automatically start timeshift after" +msgstr "Automaattisesti käynnistä ajansiirto kun kulunut" + +msgid "Automatically turn on external subtitles" +msgstr "Käynnistä automaattisesti teksti-tv tekstitys." + +# +msgid "Available format variables" +msgstr "Formaatti-muuttujat" + +# +msgid "B" +msgstr "B" + +msgid "BER" +msgstr "BER" + +# +msgid "BER:" +msgstr "BER:" + +# +msgid "Back" +msgstr "Takaisin" + +# +msgid "Background" +msgstr "Tausta" + +# +msgid "Background color" +msgstr "Taustan väri" + +msgid "Background delete option" +msgstr "Taustalla poistaminen" + +msgid "Background delete speed" +msgstr "Taustalla poistamisen nopeus" + +# +msgid "Backup completed." +msgstr "Varmuuskopiointi valmis." + +# +msgid "Backup failed." +msgstr "Varmuuskopiointi epäonnistui." + +# +msgid "Backup is running..." +msgstr "Varmuuskopiointi käynnissä" + +# +msgid "Backup system settings" +msgstr "Varmuuskopioi asetukset" + +# +msgid "Band" +msgstr "Taajuusalue" + +# +msgid "Bandwidth" +msgstr "Kaistanleveys" + +msgid "Basque" +msgstr "Baski" + +# +msgid "Begin time" +msgstr "Aloitusaika" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +# +msgid "Behavior of 0 key in PiP-mode" +msgstr "0-näppäimen toiminta PiP-tilassa" + +# +msgid "Behavior when a movie is started" +msgstr "Toiminto toiston alussa" + +# +msgid "Behavior when a movie is stopped" +msgstr "Toiminto kun toisto pysäytetään" + +# +msgid "Behavior when a movie reaches the end" +msgstr "Toiminto kun tallenne loppuu" + +msgid "Big PiP" +msgstr "" + +# +msgid "Bitrate:" +msgstr "Nopeus:" + +msgid "Black screen" +msgstr "Musta ruutu" + +msgid "Black screen till locked" +msgstr "Musta ruutu kunnes lukittu" + +# +msgid "Block noise reduction" +msgstr "Pakkausneliöiden pehmennys" + +# +msgid "Blue boost" +msgstr "Sinisen korostus" + +# +msgid "Bookmarks" +msgstr "Kirjanmerkit" + +# +msgid "Brightness" +msgstr "Kirkkaus" + +msgid "Bulgarian" +msgstr "Bulgaria" + +# +msgid "Burn DVD" +msgstr "Polta DVD" + +# +#, python-format +msgid "Burn audio track (%s)" +msgstr "Polta ääniraita (%s)" + +msgid "Burn existing image to DVD" +msgstr "Polta olemassa oleva levykuva DVD:lle" + +msgid "Burn to DVD" +msgstr "Polta DVD:lle..." + +# +msgid "Bus: " +msgstr "Väylä: " + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "Oletuksena SNR näytetään dB:nä (jos viritin tukee tätä). Tämä asetus sen sijaan pakoittaa SNR:n näkymään prosentteina." + +msgid "C" +msgstr "C" + +# +msgid "C-Band" +msgstr "C-taajuusalue" + +msgid "CH" +msgstr "" + +# +msgid "CI assignment" +msgstr "CI-määritys" + +# +msgid "CVBS" +msgstr "Komposiitti (CVBS)" + +# +msgid "Cable" +msgstr "Kaapeli (DVB-C)" + +msgid "Cable Scan" +msgstr "Kaapelihaku" + +# +msgid "Cache thumbnails" +msgstr "Tallenna esikatselukuvat välimuistiin" + +msgid "Calculate" +msgstr "Laske" + +msgid "Calculate all positions" +msgstr "Laske kaikki sijainnit" + +msgid "Calculation complete" +msgstr "Laskenta valmis" + +msgid "Calibrate" +msgstr "Kalibroi" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "Voidaan käyttää jos on eri fps teksti-tv tekstityksen ja kuvan välillä." + +# +msgid "Cancel" +msgstr "Peruuta" + +msgid "Cannot determine" +msgstr "Ei varmaa" + +msgid "Cannot find any signal ..., aborting !" +msgstr "Signaalia ei löydy ..., keskeytetään !" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "Tiedostoja ei voida siirtää toisella levyllä tai järjestelmästä roskakoriin" + +msgid "Cannot move to trash can" +msgstr "Ei voida siirtää roskakoriin" + +# +msgid "Capacity: " +msgstr "Kapasiteetti:" + +# +msgid "Card" +msgstr "Kortti" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "Keskitä DVB-tekstit" + +msgid "Center time-labels and remove date" +msgstr "Keskitä aikaleimat ja poista päiväys" + +# +msgid "Change bouquets in quickzap" +msgstr "Suosikkilistan vaihto listan lopussa" + +# +msgid "Change pin code" +msgstr "Vaihda tunnusluku" + +# +msgid "Change recording (duration)" +msgstr "Muuta tallennuksen kestoa" + +# +msgid "Change recording (endtime)" +msgstr "Muuta tallennuksen päättymisaikaa" + +msgid "Change repeat and delay settings?" +msgstr "Muuta toiston ja viiveen asetuksia?" + +msgid "Change service PIN" +msgstr "Muuta kanavan PIN" + +msgid "Change service PINs" +msgstr "Muuta kanavan PIN:it" + +msgid "Change setup PIN" +msgstr "Muuta asetuksien PIN" + +# +msgid "Change step size" +msgstr "Muuta askelkokoa" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "Muutosloki" + +# +msgid "Channel" +msgstr "Kanava" + +# +msgid "Channel list type" +msgstr "Kanavalistan muokkaus" + +# +msgid "Channel not in services list" +msgstr "Kanava ei ole kanavalistalla" + +# +msgid "Channel selection" +msgstr "Kanavien valinta" + +# +msgid "Channel:" +msgstr "Kanava:" + +# +msgid "Channellist menu" +msgstr "Kanavalistan muokkaus" + +# +msgid "Chap." +msgstr "Osa" + +# +msgid "Chapter" +msgstr "Kappale" + +# +msgid "Chapter:" +msgstr "Kappale:" + +# +msgid "Check" +msgstr "Tarkista" + +msgid "Check the internet connection" +msgstr "Tarkista internet yhteys" + +msgid "Check the internet connection again" +msgstr "Tarkista internet yhteys uudestaan" + +# +msgid "Checking filesystem..." +msgstr "Tarkistetaan tiedostojärjestelmää..." + +msgid "Checking the internet connection" +msgstr "Tarkistan internet yhteyttä" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" +"Tarkistetaan viritin %d\n" +"DiSEqC portti %s / %s" + +msgid "Children/Youth" +msgstr "Lapset/Nuoriso" + +msgid "Choose which tuner to configure." +msgstr "Valitse minkä virittimen tahdot määrittää." + +# +msgid "Circular left" +msgstr "Kiertopol. vasen" + +# +msgid "Circular right" +msgstr "Kiertopol. oikea" + +# +msgid "Cleanup" +msgstr "Poista vanhat" + +msgid "Clear" +msgstr "Tyhjennä" + +# +# Ohjatun asennuksen (Startup Wizard) kutosruudun valintateksti +# Tekstin pitää ilmeisesti olla melko lyhyt, koska käyttäjän +# valittavaksi annetut vaihtoehdot lyhentävät tilaa toisesta +# päästä. +msgid "Clear before scan" +msgstr "Tyhjennä kanavalista" + +msgid "Clear fixed" +msgstr "Tyhjennä kiinteät" + +# +msgid "Clear log" +msgstr "Tyhjennä loki" + +# +msgid "Clear playlist" +msgstr "Tyhjennä soittolista" + +# +msgid "Close" +msgstr "Sulje" + +# +msgid "Close PiP on exit" +msgstr "Sulje PiP poistuttaessa" + +msgid "Close title selection" +msgstr "Sulje otsikon valinta" + +msgid "Code rate HP" +msgstr "Koodinopeus HP" + +msgid "Code rate LP" +msgstr "Koodinopeus LP" + +# +msgid "Coderate HP" +msgstr "Koodinopeus (HP)" + +# +msgid "Coderate LP" +msgstr "Koodinopeus (LP)" + +# +msgid "Collection name" +msgstr "Kokoelman nimi" + +# +msgid "Collection settings" +msgstr "Kokoelman asetukset" + +# +msgid "Color format" +msgstr "Videolähtö (TV-SCART)" + +# +msgid "Command execution..." +msgstr "Komennon suoritus..." + +# +msgid "Command order" +msgstr "Käskyjen järjestys" + +# +msgid "Common Interface" +msgstr "CI-liitäntä/CAM" + +# +msgid "Common Interface assignment" +msgstr "CI-määritykset" + +msgid "Communication" +msgstr "Kommunikointi" + +# +msgid "Compact flash" +msgstr "CompactFlash" + +# +msgid "Complete" +msgstr "Täysi" + +# +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "Laajennettu (useita ääniraitoja ja kuvasuhteita)" + +msgid "Composition of the recording filenames" +msgstr "Tallennusnimien rakenne" + +msgid "Configuration mode" +msgstr "Toimintatila" + +#, python-format +msgid "Configuration mode: %s" +msgstr "Toimintatila: %s" + +# +msgid "Configuration..." +msgstr "Määritykset..." + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "Määrittele lisäviive saadaksesi teksti-tv tekstityksen paremmin kohdistettua. " + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "Määrittele lisäviive saadaksesi tekstityksen paremmin kohdistettua." + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "Määrittää kuinka kauan tietopalkki on näkyvissä käynnistyksen jälkeen." + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "Määrittää kuinka monta minuuttia päättyneiden ohjelmien ohjelmatietoja pidetään näkyvillä ohjelmaoppaassa. Käytännöllinen kun haluat tietoja ohjelmasta joka on juuri päättynyt tai ohjelma on viivästynyt." + +msgid "Configure how recording filenames are constructed." +msgstr "Määrittää kuinka tallennuksen tiedostonimet luodaan." + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +# +msgid "Configure interface" +msgstr "Määritä verkkosovitin" + +# +msgid "Configure nameservers" +msgstr "Määritä nimipalvelimet" + +msgid "Configure on which devices the background delete option should be used." +msgstr "Määrittää mihin laitteisiin taustalla poistamismahdollisuutta tulisi käyttää." + +msgid "Configure remote control type" +msgstr "Määritä kauko-ohjaiem tyyppi" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "Määrittää tämän LNB:n DiSEqC tilan." + +# +msgid "Configure the IP address." +msgstr "Määritä IP osoite." + +msgid "Configure the aspect ratio of the screen." +msgstr "Määrittää näytön kuvasuhteen." + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +# +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "Määrittää toiminnan kun tallenteen toisto pysäytetään käyttäjän toimesta." + +# +msgid "Configure the behavior when movie playback is started." +msgstr "Määrittää toiminnan tallenteen toiston alussa." + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "Määrittää käyttäytymisen ohjelman päättyessä ohjelmien toistotilassa. " + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "Määrittää tekstityksen reunan leveyden. Tumma reuna tekee tekstityksestä luettavampaa vaaleaa taustaa vasten." + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "Määrittää etupaneelin näytön kirkkaden valmiustilassa." + +msgid "Configure the brightness level of the front panel display." +msgstr "Määrittää etupaneelin näytön kirkkauden." + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "Määrittele teksti-tv tekstityksen väri, vaihtoehtoinen (normaali valkoisella, kursivoitu keltaisella, lihavoitu sinivihreällä, alleviivattu vihreällä), valkoinen tai keltainen." + +msgid "Configure the color of the teletext subtitles." +msgstr "Määrittää teksti-tv:stä tulevan tekstityksen värin." + +msgid "Configure the contrast level of the front panel display." +msgstr "Määrittää etupaneelin näytön kontrastin." + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "Määrittele näytönsäästäjän aika minuuteissa." + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "Määrittele kesto milloin vastaanottimen pitäisi sammua, jos vastaanotin on valmiustilassa." + +msgid "Configure the first audio language (highest priority)." +msgstr "Määrittää ensisijaisen äänen kielen (korkein prioriteetti)." + +msgid "Configure the first subtitle language (highest priority)." +msgstr "Määrittää ensisijaisen tekstityksen kielen (korkein prioriteetti)." + +msgid "Configure the font size of the subtitles." +msgstr "Määrittää tekstityksen koon." + +msgid "Configure the fourth audio language." +msgstr "Määrittää neljännen äänen kielen." + +# +msgid "Configure the fourth subtitle language." +msgstr "Määrittää neljännen tekstityskielen." + +msgid "Configure the function of a long press on the power button." +msgstr "Määrittää toiminnan, kun virtanäppäintä painetaan pitkään." + +msgid "Configure the function of a short press on the power button." +msgstr "Määrittää toiminnan, kun virtanäppäintä painetaan lyhyesti." + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "Määrittää '0' näppäimen toiminnan PiP-tilassa." + +# +msgid "Configure the gateway." +msgstr "Määritä verkon yhdyskäytävä." + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "Määrittää yleisen äänen viiveen Dolby Digital ääniraidoille." + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "Määrittää yleisen äänen viiveen stereo ääniraidoille." + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "Määrittää kovalevyn sammutuksen asetetun toimettomuusajan jälkeen." + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "Määrittää tekstityksen sijainin vaakasuunnassa." + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "Määrittää oletus eteenpäin kelausnopeuden. Kun painat kelausnappia, eteenpäin kelaus aloitetaan tällä nopeudella." + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "Määrittää oletus taakseppäin kelausnopeuden. Kun painat kelausnappia, taakseppäin kelaus aloitetaan tällä nopeudella." + +msgid "Configure the latitude of your location." +msgstr "Määritä sijaintisi leveysaste." + +msgid "Configure the longitude of your location." +msgstr "Määritä sijaintisi pituusaste." + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "Määrittää pienimmän kovalevyn tyhjän tilan tallennuksia varten. Kun kovalevyn tyhjä tila menee alle tämän arvon, poistetut tiedostot tyhjennetään roskakorista." + +# +msgid "Configure the nameserver (DNS)." +msgstr "Määritä nimipalvelin (DNS)." + +# +msgid "Configure the netmask." +msgstr "Määritä verkkomaski." + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "Määrittää kuinka monen päivän jälkeen tiedostot tyhjennetään automaattisesti roskakorista." + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "Määrittää kuinka monen päivän jälkeen vanhat ajastukset poistetaan ajastuslistasta automaattisesti." + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "Määrittää offline-purun viiveen millisekunteina. Määritettyä viivettä seurataan jokaisesta ohjaussanan pariteetin muutoksesta. " + +msgid "Configure the possible fast forward speeds." +msgstr "Määrittää mahdolliset eteenpäinkelauksen nopeudet." + +msgid "Configure the possible rewind speeds." +msgstr "Määrittää mahdolliset taakseppäinkelauksen nopeudet." + +msgid "Configure the primary EPG language." +msgstr "Määrittää ensisijaisen ohjelmaoppaan kielen." + +msgid "Configure the refresh rate of the screen." +msgstr "Määrittää näytön virkistystaajuuden." + +msgid "Configure the screen resolution in PC output mode." +msgstr "Määrittää näytön tarkkuuden PC ulostulo tilassa." + +msgid "Configure the second audio language." +msgstr "Määrittää toissijaisen äänen kielen." + +# +msgid "Configure the second subtitle language." +msgstr "Määrittää toissijaisen tekstityskielen." + +msgid "Configure the secondary EPG language." +msgstr "Määrittää toissijaisen ohjelmaoppaan kielen." + +msgid "Configure the sharpness of the video scaling." +msgstr "Määrittää video-skaalauksen terävyyden." + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "Määrittää hypyn pituuden '1'/'3' näppäimille." + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "Määrittää hypyn pituuden '4'/'6' näppäimille." + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "Määrittää hypyn pituuden '7'/'9' näppäimille." + +# +msgid "Configure the slow motion speeds." +msgstr "Määrittää hidastusnopeudet." + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "Määrittää taustalla tuhoamis-prosessin nopeus. Matalampi nopeus rasittaa vähemmän kovalevyn suorituskykyä." + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "Määrittää tekstityksen viiveen, kun ajoitustietoa ei ole saatavilla." + +msgid "Configure the third audio language." +msgstr "Määrittää kolmannen äänen kielen." + +# +msgid "Configure the third subtitle language." +msgstr "Määrittää kolmannen tekstityskielen." + +msgid "Configure the transparency of the OSD." +msgstr "Määrittää valikoiden läpinäkyvyyden." + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "Määrittää DVB-tekstityksen mustan taustavärin läpinäkyvyyden." + +msgid "Configure the tuner mode." +msgstr "Määrittää virittimen toimintatilan." + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "Määrittää näytettävien tilaikonien tyyppin tallenneluettelossa." + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "Määrittää tekstityksen kohdan pystysuunnassa, mitattuna kuvaruudun alalaidasta." + +msgid "Configure the video output mode (or resolution)." +msgstr "Määrittää video ulostulon tyypin (tai resoluution)." + +msgid "Configure the way in which the receiver changes channels." +msgstr "Määrittää kuinka vastaanotin vaihtaa kanavia." + +msgid "Configure where completed timers show up in the timer list." +msgstr "Määrittää missä jo päättyneet ajastukset näytetään ajastuslistalla." + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "Määrittää josko (ja kuinka kauan) toinen tietopalkki näytetään kun OK-näppäintä painetaan kahdesti. Toinen tietopalkki sisältää lisätietoja valitusta kanavasta." + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "Määrittää jos haluat että monikanavaääni miksataan stereoääneksi." + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "Määrittelee haluatko kuvakkeen näytettäväksi kun kääntömoottoria käännetään. " + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "Määrittelee millaisilla käyttäjäoikeuksilla pääsee asetusvalikkoon. Expert tason oikeudet sallii pääsyn kaikkiin asetuksiin." + +msgid "Configure which color format should be used on the SCART output." +msgstr "Määrittää mitä värimallia tulisi käyttää SCART lähdössä." + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "Määrittää minkä tyyppistä viritintä suositaan, kun sama kanava on saatavilla eri lähteistä." + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "Määrittää mitä viritintä suositaan, kun enemmän kuin yksi viritin on vapaana. Jos asetettu 'auto'-tilaan järjestelmä antaa prioriteetin virittimelle jolla on vähiten kanavia/satelliittejä." + +# +msgid "Configure your internal LAN" +msgstr "Määritä LAN-asetukset" + +# +msgid "Configure your network again" +msgstr "Määrittele verkko uudelleen" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "Määritä verkkoasetukset ja aloita haku painamalla OK" + +# +msgid "Configure your wireless LAN again" +msgstr "Määritä WLAN-asetukset uudelleen" + +msgid "Configures which video output connector will be used." +msgstr "Määrittelee mitä videolähtöä käytetään." + +# +msgid "Configuring" +msgstr "Muokataan" + +# +msgid "Conflicting timer" +msgstr "Ristiriita ajastusten välillä" + +# +msgid "Connect" +msgstr "Yhdistä" + +# +msgid "Connect to a wireless network" +msgstr "Yhdistä WLAN-verkkoon" + +msgid "Connected satellites" +msgstr "" + +# +msgid "Connected to" +msgstr "Kytketty virittimestä" + +msgid "Connected!" +msgstr "Yhdistetty!" + +# +msgid "Constellation" +msgstr "Modulaatio" + +# +msgid "Content does not fit on DVD!" +msgstr "Sisältö ei mahdu DVD:lle!" + +msgid "Continue" +msgstr "Jatka" + +# +msgid "Continue in background" +msgstr "Jatka taustalla" + +# +msgid "Continue playback" +msgstr "Jatka toistoa" + +# +msgid "Continue playing" +msgstr "Jatka toistoa" + +msgid "Continues play (loop)" +msgstr "Jatkuva toisto (loop)" + +# +msgid "Contrast" +msgstr "Kontrasti" + +msgid "Convert ext3 filesystem to ext4" +msgstr "Muunna ext3 tiedostojärjestelmästä ext4:ään" + +msgid "Convert ext3 to ext4" +msgstr "Muunna ext3:sta ext4:ään" + +msgid "Converting ext3 to ext4..." +msgstr "Muunnetaan ext3:sta ext4:ään..." + +msgid "Copy" +msgstr "Kopioi" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "Ei yhteyttä .NFI ohjelmistoa tarjoavaan palvelimeen:" + +msgid "Could not find installed channel list." +msgstr "Asennettua kanavaluetteloa ei löytynyt." + +# +msgid "Could not load medium! No disc inserted?" +msgstr "Levyä ei voitu ladata! Levy puuttuu?" + +msgid "Could not open Picture in Picture" +msgstr "PiP-kuvaa ei voitu avata" + +# +#, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "Ajastusristiriidan takia ei voitu tallentaa %s" + +#, python-format +msgid "Could not record due to invalid service %s" +msgstr "Ei voitu tallentaa virheellisen kanavan takia %s" + +# +msgid "Create DVD-ISO" +msgstr "Luo DVD-ISO" + +msgid "Create more detailed crash log" +msgstr "Luo täsmällinen kaatumisloki" + +# +#, python-format +msgid "Creating directory %s failed." +msgstr "Hakemiston %s luominen epäonnistui." + +msgid "Creating filesystem" +msgstr "Tiedostojärjestelmää luodaan" + +msgid "Creating partition" +msgstr "Osiota luodaan" + +# +msgid "Croatian" +msgstr "Kroatia" + +msgid "Current CEC address" +msgstr "Nykyinen CEC-osoite" + +msgid "Current device: " +msgstr "Nykyinen laite: " + +msgid "Current event EPG" +msgstr "Nykyisen tapahtuman ohjelmaopas" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +# +msgid "Current settings:" +msgstr "Nykyiset asetukset:" + +# +msgid "Current transponder" +msgstr "Nykyinen lähetin" + +# +msgid "Current value: " +msgstr "Nykyinen arvo: " + +# +msgid "Current version:" +msgstr "Nykyinen versio:" + +msgid "Currently installed image" +msgstr "Nykyinen ohjelmisto" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +# +msgid "Custom skip time for '1'/'3' buttons" +msgstr "'1'/'3'-näppäimien hypyn pituus" + +# +msgid "Custom skip time for '4'/'6' buttons" +msgstr "'4'/'6'-näppäimien hypyn pituus" + +# +msgid "Custom skip time for '7'/'9' buttons" +msgstr "'7'/'9'-näppäimien hypyn pituus" + +# +msgid "Customize" +msgstr "Toimintojen mukautus" + +msgid "Customize channel list cursor behavior" +msgstr "" + +# +msgid "Cut" +msgstr "Leikkaa" + +# +# Tallennevalikko +msgid "Cutlist editor..." +msgstr "Määritä leikkauskohdat..." + +# +msgid "Czech" +msgstr "TÅ¡ekki" + +msgid "D" +msgstr "D" + +msgid "DHCP" +msgstr "DCHP" + +# +msgid "DMM advanced" +msgstr "Laaja" + +msgid "DMM normal" +msgstr "Normaali" + +msgid "DUAL LAYER DVD" +msgstr "DUAL LAYER DVD" + +msgid "DVB subtitle black transparency" +msgstr "DVB-tekstin mustan reunan läpinäkyvyys" + +msgid "DVB-C" +msgstr "DVB-C" + +msgid "DVB-C ANNEX C" +msgstr "DVB-C ANNEX C" + +# +msgid "DVB-S" +msgstr "DVB-S" + +# +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "DVB-T" + +msgid "DVB-T2" +msgstr "DVB-T2" + +msgid "DVD data format" +msgstr "DVD tiedostomuoto" + +# +msgid "DVD file browser" +msgstr "DVD-tiedostoselain" + +# +msgid "DVD media toolbox" +msgstr "DVD-levyn työkalut" + +# +msgid "DVD player" +msgstr "DVD-soitin" + +# +msgid "DVD titlelist" +msgstr "DVD-otsikkoluettelo" + +# +msgid "Danish" +msgstr "Tanska" + +# +msgid "Date" +msgstr "Päiväys" + +# +msgid "Date/time input" +msgstr "Ajan/Päivän syöttö" + +# +msgid "Deep standby" +msgstr "Virransäästötila" + +# +msgid "Default" +msgstr "Oletus" + +msgid "Default movie location" +msgstr "Oletushakemisto tallennuksille" + +# +msgid "Default settings" +msgstr "Oletusasetukset" + +msgid "Delay before key repeat starts:" +msgstr "Viive ennen kuin näppäimen toisto alkaa" + +msgid "Delay for external subtitles" +msgstr "Teksti-tv tekstityksen viive" + +# +msgid "Delete" +msgstr "Poista" + +# +msgid "Delete entry" +msgstr "Poista valinta" + +# +msgid "Delete failed!" +msgstr "Poisto epäonnistui!" + +# +msgid "Delete file" +msgstr "Poista tiedosto" + +# +msgid "Delete playlist entry" +msgstr "Poista soittolistan valinta" + +# +msgid "Delete saved playlist" +msgstr "Poista tallennettu soittolista" + +msgid "Delete timer" +msgstr "" + +# +# Teksti esiintyy vain tallenteiden käsittelyvalikossa +# Kolme pistettä ovat turhia, tästä aukeaa vain +# varmistusikkuna, ei alivalikkoa tai asetusruutua. +msgid "Delete..." +msgstr "Poista tallenne" + +msgid "Deleted" +msgstr "Poistetut" + +msgid "Deleted items" +msgstr "Poistetut kohteet" + +msgid "Depth" +msgstr "Syvyys" + +msgid "Descramble http streams" +msgstr "Pura http-streameja" + +# +msgid "Description" +msgstr "Kuvaus" + +# +msgid "Deselect" +msgstr "Ei valittu" + +msgid "Details for plugin: " +msgstr "Lisäosan tiedot: " + +# +msgid "Detected HDD:" +msgstr "Kiintolevy:" + +# +msgid "Detected NIMs:" +msgstr "Virittimet:" + +msgid "Devicename:" +msgstr "Laitenimi:" + +msgid "Devide" +msgstr "" + +# +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +# +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +# +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +# +msgid "DiSEqC mode" +msgstr "DiSEqC-tila" + +# +#, python-format +msgid "DiSEqC port %s: %s" +msgstr "DiSEqC portti %s: %s" + +# +msgid "DiSEqC-tester settings" +msgstr "DiSEqC-testin asetukset" + +msgid "Dialing:" +msgstr "Soitto:" + +# +msgid "Digital contour removal" +msgstr "Ääriviivakorostumien poisto" + +# +msgid "Direct playback of linked titles without menu" +msgstr "Linkitettyjen tallenteiden toisto ilman valikkoa" + +msgid "Directory" +msgstr "Hakemisto" + +# +#, python-format +msgid "Directory %s does not exist." +msgstr "Hakemistoa %s ei löydy." + +# +#, python-format +msgid "Directory %s nonexistent." +msgstr "Hakemistoa %s ei löydy." + +# +msgid "Directory browser" +msgstr "Hakemistoselain" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "Hakemisto sisältää %d tiedostoa ja %d alihakemistoa.\n" + +#, python-format +msgid "Directory contains %s and %s." +msgstr "Hakemisto sisältää %s ja %s." + +# +msgid "Disable" +msgstr "Keskeytä" + +# +msgid "Disable Picture in Picture" +msgstr "Sulje PiP-kuva" + +msgid "Disable background scanning" +msgstr "Poista taustahaku käytöstä" + +# +msgid "Disable timer" +msgstr "Poista käytöstä" + +# +msgid "Disabled" +msgstr "Ei käytössä" + +# +msgid "Disconnect" +msgstr "Katkaise yhteys" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "Tallenteille varattu levytila (GB)" + +# +msgid "Display 16:9 content as" +msgstr "Näytä 16:9 sisältö" + +# +msgid "Display 4:3 content as" +msgstr "Näytä 4:3 sisältö" + +# +msgid "Display >16:9 content as" +msgstr "Näytä >16:9 sisältö" + +# +msgid "Display and userinterface" +msgstr "Näyttö ja käyttöliittymä" + +msgid "Display message before playing next movie" +msgstr "Näytä viesti ennen seuraavaa elokuvaa" + +msgid "Display setup" +msgstr "Etupaneelin näytön asetus" + +# +msgid "Do not change" +msgstr "Älä muuta" + +# +msgid "Do not record" +msgstr "Älä tallenna" + +# +msgid "Do nothing" +msgstr "Älä tee mitään" + +# +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Haluatko tarkistaa tiedostojärjetelmän?\n" +"Tarkistus saattaa kestää kauan!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" +"Haluatko varmasti muuntaa tämän tiedostojärjestelmän?\n" +"Et voi palata takaisin entiseen!" + +# +#, python-format +msgid "Do you really want to delete %s?" +msgstr "" +"Haluatko poistaa\n" +"\"%s\"?" + +# +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"Haluatko ladata\n" +"lisäosan \"%s\"?" + +msgid "Do you really want to exit?" +msgstr "Haluatko lopettaa?" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" +"Haluatko todellakin alustaa tämän laitteen?\n" +"Kaikki tiedostot katoaa!" + +# +#, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"Haluatko todella poistaa\n" +"lisäosan \"%s\"?" + +# +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Haluatko poistaa levyltä hakemiston %s?" + +# +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Haluatko poistaa kirjanmerkin %s?" + +msgid "Do you want this?" +msgstr "Haluatko tehdä niin?" + +# +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Haluatko polttaa tämän kokoelman DVD:lle?" + +# +msgid "Do you want to do a service scan?" +msgstr "Haluatko tehdä kanavahaun?" + +# +msgid "Do you want to do another manual service scan?" +msgstr "Haluatko tehdä uuden manuaalihaun?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "Haluatko ladata ohjelmistopäivityksen %s :lle ?" + +# +msgid "Do you want to install a channel list?" +msgstr "Haluatko asentaa kanavalistan?" + +# +msgid "Do you want to install the package:\n" +msgstr "Haluatko asentaa IPKG-paketin:\n" + +# +msgid "Do you want to play DVD in drive?" +msgstr "Haluatko toistaa asemassa olevan DVD:n?" + +# +msgid "Do you want to preview this DVD before burning?" +msgstr "Haluatko esikatsella tämän DVD:n ennen polttoa?" + +msgid "Do you want to reboot your receiver?" +msgstr "Haluatko uudelleenkäynnistää vastaanottimesi?" + +# +msgid "Do you want to remove the package:\n" +msgstr "Haluatko poistaa ohjelmapaketin:\n" + +# +msgid "Do you want to restore your settings?" +msgstr "Haluatko palauttaa asetukset?" + +# +msgid "Do you want to resume this playback?" +msgstr "Jatketaanko kohdasta, johon katselu viimeksi jäi?" + +#, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Haluatko päivittää vastaanottimeesi %s?" + +msgid "Do you want to update your receiver?" +msgstr "Haluatko päivittää vastaanottimesi?" + +# +msgid "Do you want to upgrade the package:\n" +msgstr "Haluatko päivittää ohjelmapaketin:\n" + +# +msgid "Don't stop current event but disable coming events" +msgstr "Älä pysäytä tallennusta, mutta estä tulevat ajastukset" + +# +#, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "Valmis - asennettu, päivitetty tai poistettu %d paketti (%s)" +msgstr[1] "Valmis - asennettu, päivitetty tai poistettu %d pakettia (%s) " + +# +msgid "Download" +msgstr "Lataa" + +#, python-format +msgid "Download %s from server" +msgstr "Lataa %s palvelimelta" + +# +msgid "Download .NFI-files for USB-flasher" +msgstr "Lataa .NFI-tiedostoja USB-päivitysohjelmaa varten" + +# +msgid "Download plugins" +msgstr "Lataa lisäosia" + +# +msgid "Downloadable new plugins" +msgstr "Uusia ladattavia lisäosia" + +# +msgid "Downloadable plugins" +msgstr "Ladattavia lisäosia" + +# +msgid "Downloading" +msgstr "Ladataan" + +# +msgid "Downloading plugin information. Please wait..." +msgstr "Ladataan tietoja lisäosista. Odota..." + +# +msgid "Dutch" +msgstr "Hollanti" + +# +msgid "Dynamic contrast" +msgstr "Dynaaminen kontrasti" + +# +msgid "E" +msgstr "E" + +msgid "EPG" +msgstr "Ohjelmaopas" + +msgid "EPG language selection 1" +msgstr "Ohjelmaoppaan kielen valinta 1" + +msgid "EPG language selection 2" +msgstr "Ohjelmaoppaan kielen valinta 2" + +# +msgid "EPG selection" +msgstr "Ohjelmaoppaan valinta" + +msgid "EPG settings" +msgstr "Ohjelmaoppaan asetukset" + +# +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "VIRHE - haku epäonnistui (%s)!" + +# +msgid "East" +msgstr "Itä" + +msgid "East limit set" +msgstr "Itäraja asetettu" + +# +msgid "Edit" +msgstr "Muokkaa" + +# +msgid "Edit DNS" +msgstr "Muuta DNS" + +msgid "Edit bouquets list" +msgstr "Muokkaa suosikkilistaa" + +# +msgid "Edit chapters of current title" +msgstr "Muokkaa kappaleita" + +# +msgid "Edit services list" +msgstr "Muokkaa kanavalistaa" + +# +msgid "Edit settings" +msgstr "Muokkaa asetuksia" + +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "Muokkaa nimipalvelimen asetuksia vastaanottimessasi.\n" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "Muokkaa verkkoasetuksia vastaanottimessasi.\n" + +msgid "Edit timer" +msgstr "" + +# +msgid "Edit title" +msgstr "Editoi" + +# +msgid "Edit upgrade source url." +msgstr "Muokkaa päivitys-URL:ia." + +msgid "Education/Science/..." +msgstr "Koulutus/Tiede/..." + +# +msgid "Electronic Program Guide" +msgstr "Ohjelmaopas" + +# +msgid "Enable" +msgstr "Ota käyttöön" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +# +msgid "Enable 5V for active antenna" +msgstr "Syötä 5 voltin käyttöjännite aktiiviantennille" + +msgid "Enable EIT EPG" +msgstr "Ota käyttöön EIT EPG" + +msgid "Enable MHW EPG" +msgstr "Ota käyttöön MHW EPG" + +msgid "Enable Netmed EPG" +msgstr "Ota käyttöön Netmed EPG" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "Ota käyttöön ViaSat EPG" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +msgid "Enable bouquet selection in multi-EPG" +msgstr "Käytä suosikkilistojen valintaa useammassa ohjelmaoppaassa " + +msgid "Enable freesat EPG" +msgstr "Ota käyttöön Freesat EPG" + +# +msgid "Enable multiple bouquets" +msgstr "Salli useiden suosikkilistojen luonti ja käyttö" + +# +msgid "Enable parental control" +msgstr "Ota lapsilukko käyttöön" + +msgid "Enable teletext caching" +msgstr "Ota käyttöön teksti-tv:n välimuisti" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +# +msgid "Enabled" +msgstr "Käytössä" + +msgid "Encrypted: " +msgstr "Salattu: " + +# +msgid "Encryption" +msgstr "Suojaus" + +# +msgid "Encryption key" +msgstr "Salausavain" + +# +msgid "Encryption key type" +msgstr "Salausavaimen tyyppi" + +# +msgid "Encryption:" +msgstr "Salaus:" + +# +msgid "End time" +msgstr "Lopetusaika" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "Pois päältä olon päättymisaika" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +# +msgid "English" +msgstr "Englanti" + +# +msgid "Enigma2 skin selector" +msgstr "Enigma2 teeman valinta" + +# +msgid "Enter main menu..." +msgstr "Mene päävalikkoon..." + +msgid "Enter pin code" +msgstr "Syötä PIN-koodi" + +# +msgid "Enter the service pin" +msgstr "Syötä kanavan tunnusluku" + +msgid "Equal to" +msgstr "" + +# +msgid "Error" +msgstr "Virhe" + +msgid "Error code" +msgstr "Virhekoodi" + +# +msgid "Error executing plugin" +msgstr "Virhe plugin-lisäosan suorittamisessa" + +# +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Virhe: %s\n" +"Yritä uudelleen?" + +# +msgid "Estonian" +msgstr "Viro" + +msgid "Ethernet network interface" +msgstr "Verkkokortti" + +msgid "Event font size (relative to skin size)" +msgstr "Ohjelmantiedon tekstikoko (suhteessa teeman kokoon)" + +# +msgid "Event view" +msgstr "Ohjelmatiedot" + +msgid "Event view menu" +msgstr "Ohjelmatietojen valikko" + +msgid "Everywhere" +msgstr "Kaikkialla" + +msgid "Exceeds dual layer medium!" +msgstr "Ylittää kaksikerroslevyn tilavuuden!" + +# +msgid "Execution finished!!" +msgstr "Tehtävä suoritettu, paina OK" + +# +msgid "Execution progress:" +msgstr "Tehtävän edistyminen:" + +msgid "Exif" +msgstr "Exif" + +# +msgid "Exit" +msgstr "Poistu" + +msgid "Exit EPG" +msgstr "Sulje ohjelmaopas" + +# +msgid "Exit editor" +msgstr "Poistu editorista" + +msgid "Exit input device selection." +msgstr "Poistu syöttölaitteen valinnasta." + +msgid "Exit media player?" +msgstr "Poistu Mediasoittimesta?" + +msgid "Exit mediaplayer" +msgstr "Poistu Mediasoittimesta" + +# +msgid "Exit movie list" +msgstr "Poistu tallenneluettelosta" + +msgid "Exit movie player?" +msgstr "Poistu tallenteista?" + +# +msgid "Exit nameserver configuration" +msgstr "Lopeta nimipalvelimen määritys" + +# +msgid "Exit network interface list" +msgstr "Poistu verkkosovitinluettelosta" + +# +msgid "Exit network wizard" +msgstr "Poistu verkkoasennuksesta" + +# +# Tämä on imagewizard.xml:stä löytyvä valintateksti +msgid "Exit the wizard" +msgstr "Poistu ohjatusta asennustoiminnosta" + +# +msgid "Expert" +msgstr "Laaja" + +msgid "Extend sleeptimer 15 minutes" +msgstr "Jatka uniajastimen aikaa 15 minuuttia" + +msgid "Extended Software" +msgstr "Laajat ohjelmavalinnat" + +msgid "Extended Software Plugin" +msgstr "Laajat lisäosavalinnat" + +# +msgid "Extended network setup plugin..." +msgstr "Laajennetut verkkoasetukset..." + +# +msgid "Extended setup..." +msgstr "Laajat asetukset..." + +# +msgid "Extensions" +msgstr "Laajennukset" + +msgid "Extensions management" +msgstr "Laajennuksien hallinta" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "Teksti-tv tekstityksen väri" + +msgid "Extra motor options" +msgstr "" + +# +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "FTA" + +# +msgid "Factory reset" +msgstr "Palauta tehdasasetukset" + +# +msgid "Failed" +msgstr "Epäonnistui" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "Kirjoittaminen /tmp/positionersetup.log:iin epäonnistui: " + +#, python-format +msgid "Fan %d" +msgstr "Tuuletin %d" + +#, python-format +msgid "Fan %d PWM" +msgstr "Tuuletin %d PWM" + +#, python-format +msgid "Fan %d voltage" +msgstr "Tuulettimen %d jännite" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +# +msgid "Fast" +msgstr "Nopea" + +# +msgid "Fast DiSEqC" +msgstr "Nopea DiSEqC" + +msgid "Fast Scan" +msgstr "Nopea haku" + +# +msgid "Fast epoch" +msgstr "Nopea päivällä" + +# +msgid "Fast forward speeds" +msgstr "Eteenpäin kelausnopeudet" + +# +msgid "Favourites" +msgstr "Suosikit" + +msgid "File appears to be busy.\n" +msgstr "Tiedosto näyttää olevan käytössä.\n" + +msgid "Filesystem check" +msgstr "Tiedostojärjestelmän tarkistus" + +msgid "Final position at" +msgstr "Lopullinen paikka" + +msgid "Final position at index" +msgstr "Lopullinen paikka indeksissä" + +msgid "Fine movement" +msgstr "Hienosäätö" + +# +msgid "Finetune" +msgstr "Hienosäädä" + +# +msgid "Finished" +msgstr "Päättyi" + +# +msgid "Finished configuring your network" +msgstr "Verkon määrittely suoritettu" + +# +msgid "Finished restarting your network" +msgstr "Verkko käynnistyi uudelleen" + +# +msgid "Finnish" +msgstr "Suomi" + +msgid "Fixed" +msgstr "Kiinteä" + +msgid "Flash" +msgstr "Päivitä" + +# +msgid "Flashing failed" +msgstr "Päivitys epäonnistui" + +msgid "Following tasks will be done after you press OK!" +msgstr "Seuraavat tehtävät suoritetaan kun painat OK!" + +# +msgid "Format" +msgstr "Alusta" + +msgid "Forward volume keys" +msgstr "Välitä äänenvoimakkuusnäppäimet" + +# +msgid "Frame size in full view" +msgstr "Kehyksen koko kokoruudussa" + +# +msgid "French" +msgstr "Ranska" + +# +msgid "Frequency" +msgstr "Taajuus" + +# +msgid "Frequency bands" +msgstr "Taajuusalueet" + +# +msgid "Frequency scan step size(khz)" +msgstr "Taajuushaun askel (khz)" + +# +msgid "Frequency steps" +msgstr "Taajuusaskel" + +# +msgid "Frequency:" +msgstr "Taajuus:" + +# +msgid "Fri" +msgstr "Pe" + +# +msgid "Friday" +msgstr "Perjantai" + +msgid "From :" +msgstr "Mistä:" + +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Etuprosessorin versio: %d" + +msgid "Full transparency" +msgstr "Täysi läpinäkyvyys" + +msgid "Fulview resulution" +msgstr "Kokokuvan resoluutio" + +msgid "Function of OK button" +msgstr "OK näppäimen toiminta" + +msgid "Further Options" +msgstr "" + +# +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"Teema vaihtuu vasta kun laitteen\n" +"käyttöliittymä on käynnistetty uudelleen.\n" +"Haluatko käynnistää käyttöliittymän\n" +"uudelleen nyt?" + +# +msgid "Gateway" +msgstr "Yhdyskäytävä" + +# +msgid "General AC3 delay" +msgstr "AC3-viive (ms)" + +# +msgid "General PCM delay" +msgstr "PCM-viive (ms)" + +# +msgid "Genre" +msgstr "Laji" + +# +msgid "German" +msgstr "Saksa" + +msgid "Get latest experimental image" +msgstr "Hae viimeisin testiversion ohjelmistopäivitys" + +msgid "Get latest release image" +msgstr "Hae viimeisin virallinen ohjelmistopäivitys" + +# +msgid "Getting plugin information. Please wait..." +msgstr "Haetaan tietoja lisäosista. Odota..." + +msgid "Go down the list" +msgstr "Mene luettelossa alaspäin" + +msgid "Go to first movie or last item" +msgstr "Mene ensimmäiseen tallenteeseen tai viimeiseen kohteeseen" + +msgid "Go to first movie or top of list" +msgstr "Mene ensimmäiseen tallenteeseen tai luettelon alkuun" + +msgid "Go to first service" +msgstr "Mene ensimmäiselle kanavalle" + +msgid "Go to last service" +msgstr "Mene viimeiselle kanavalle" + +msgid "Go to next event" +msgstr "Mene seuraavaan ohjelmaan" + +msgid "Go to next page of service" +msgstr "Mene seuraavalle kanavasivulle" + +msgid "Go to previous event" +msgstr "Mene edelliseen ohjelmaan" + +msgid "Go to previous page of service" +msgstr "Mene edelliselle kanavasivulle" + +msgid "Go up the list" +msgstr "Mene luettelossa ylöspäin" + +msgid "Goto" +msgstr "Mene" + +# +msgid "Goto 0" +msgstr "Mene 0" + +msgid "Goto :" +msgstr "Mene :" + +msgid "Goto X" +msgstr "Mene X" + +msgid "Goto index position" +msgstr "Mene indeksiin" + +msgid "Goto next day of events" +msgstr "Mene seuraavan päivän ohjelmiin" + +msgid "Goto next page of events" +msgstr "Mene seuraavalle ohjelmasivulle" + +# +msgid "Goto position" +msgstr "Mene sijaintiin" + +msgid "Goto previous day of events" +msgstr "Mene edellisen päivän ohjelmiin" + +msgid "Goto previous page of events" +msgstr "Mene edelliselle ohjelmasivulle\"" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "MeneX kalibrointi" + +msgid "GraphMultiEpg Settings" +msgstr "Graafisen ohjelmaoppaan asetukset" + +# +msgid "Graphical Multi EPG" +msgstr "Graafinen Kanavaopas" + +# +msgid "Greek" +msgstr "Kreikka" + +# +msgid "Green boost" +msgstr "Vihreän korostus" + +msgid "Guard interval" +msgstr "Guard interval" + +msgid "HD list" +msgstr "HD-luettelo" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "Käsittele sammutuskäsky TV:ltä" + +msgid "Handle wakeup from TV" +msgstr "Käsittele käynnistyskäsky TV:ltä" + +msgid "Hard disk" +msgstr "Kiintolevy" + +# +msgid "Hard disk setup" +msgstr "Kiintolevyn asetukset" + +# +msgid "Hard disk standby after" +msgstr "Kiintolevyn sammutus" + +msgid "Harddisk" +msgstr "Kiintolevy" + +msgid "Hardware: " +msgstr "Järjestelmä: " + +msgid "Hebrew" +msgstr "Heprea" + +msgid "Helps setting up your dish" +msgstr "Auttaa lautasantennisi asennuksessa" + +msgid "Hidden network" +msgstr "Piilotettu verkko" + +msgid "Hide CI messages" +msgstr "Piilota CI-viestit" + +msgid "Hide channel list in radio mode" +msgstr "Piilota kanavaluettelo radio tilassa." + +msgid "Hide known extensions" +msgstr "Piilota tunnetut päätteet" + +# +msgid "Hide number markers" +msgstr "Piilota väliotsikot joilla on kanavanumero" + +# +msgid "Hide player" +msgstr "Piilota soitin" + +msgid "Hide zap errors" +msgstr "Piilota kanavanvaihton virheilmoitukset" + +msgid "Hierarchy info" +msgstr "Hierarkia info" + +# +msgid "Hierarchy information" +msgstr "Hierarkia-tietoja" + +# +msgid "High bitrate support" +msgstr "Suurten bittimäärien tuki" + +msgid "Hold screen" +msgstr "Pidä näyttö" + +msgid "Hold till locked" +msgstr "Pidä kunnes lukittu" + +msgid "Home" +msgstr "Kotihakemisto" + +# +msgid "Horizontal" +msgstr "Horisontaali" + +msgid "Horizontal turning speed" +msgstr "Vaakasuuntainen kääntymisnopeus" + +# +msgid "How many minutes do you want to record?" +msgstr "Kuinka monta minuuttia haluat tallentaa?" + +# +msgid "Hue" +msgstr "Sävy" + +# +msgid "Hungarian" +msgstr "Unkari" + +# +msgid "IP address" +msgstr "IP-osoite" + +# +msgid "ISO file is too large for this filesystem!" +msgstr "ISO-tiedosto on liian suuri tälle tiedostojärjestelmälle!" + +# +msgid "ISO path" +msgstr "ISO-hakemisto" + +msgid "Icons" +msgstr "Kuvakkeet" + +# +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"SCART-liitännässä on ilmennyt ongelma.\n" +"Paina OK palataksesi takaisin." + +# +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"Jos televisiossasi on kirkkauden tai kontrastin automaattisäätö, kytke se pois päältä. Jos kuva-asetuksissa on säätöjä nimeltä \"dynamic\" kytke ne normaaliarvoon. Säädä huoneen valaistus sopivaksi. Säädä television kontrasti alimpaan arvoon.\n" +"\n" +"Säädä television valoisuus niin alas kuin mahdollista ilman, että testikuvan kaksi tumminta sävyä (1 ja 2) muuttuu yhtä tummiksi.\n" +"\n" +"Älä välitä kirkkaista sävyistä, ne säädetään seuraavassa vaiheessa.\n" +"\n" +"Kun olet tyytyväinen tulokseen, paina OK." + +msgid "Image: " +msgstr "Ohjelmisto: " + +# +msgid "Immediate shutdown" +msgstr "Sammuta heti" + +# +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "" +"Pakotettu kanavanvaihto. Ajastettu tallennus\n" +"käynnistyi juuri ja tarvitsi tätä viritintä.\n" + +# +msgid "In progress" +msgstr "Käynnissä" + +# +msgid "Inactivity Sleeptimer" +msgstr "Käyttämättömyysajastin" + +msgid "Include AIT in http streams" +msgstr "Sisällytä AIT http-streameihin" + +msgid "Include ECM in http streams" +msgstr "Sisällytä ECM http-streameihin" + +msgid "Include EIT in http streams" +msgstr "Sisällytä EIT http-streameihin" + +msgid "Incorrect type service for PiP!" +msgstr "" + +# +msgid "Increased voltage" +msgstr "Korotettu LNB-jännite" + +# +msgid "Index" +msgstr "Indeksi" + +msgid "Index allocated:" +msgstr "Indeksi varattu:" + +msgid "Info" +msgstr "Tietoja" + +# +msgid "Info bar" +msgstr "Tietopalkki" + +# +msgid "Info bar timeout" +msgstr "Tietopalkin näyttöaika" + +msgid "Infobar frontend data source" +msgstr "" + +# +msgid "Information" +msgstr "Tietoja" + +# +msgid "Init" +msgstr "Palauta CA-moduulin alkuasetukset" + +msgid "Initial fast forward speed" +msgstr "Eteenpäinkelauksen aloitusnopeus" + +msgid "Initial location in new timers" +msgstr "Uusien ajastuksien oletustallennushakemisto" + +msgid "Initial lock ratio" +msgstr "Alustava lukitussuhde" + +msgid "Initial rewind speed" +msgstr "Taaksepäinkelauksen aloitusnopeus" + +msgid "Initial signal quality" +msgstr "Alustava signaalin laatu" + +msgid "Initial signal quality:" +msgstr "Alustava signaalin laatu:" + +msgid "Initialization" +msgstr "Alustus" + +# +msgid "Initialize" +msgstr "Alusta" + +msgid "Initializing storage device..." +msgstr "Alustetaan tallennusvälinettä" + +# +# Monivalintaikkunoiden otsikkopalkin teksti +msgid "Input" +msgstr "Valitse" + +msgid "Input device setup" +msgstr "Syöttölaitteen asetukset" + +msgid "Input devices" +msgstr "Syöttölaitteet" + +# +msgid "Install" +msgstr "Asenna" + +# +msgid "Install a new image with a USB stick" +msgstr "Päivitä uusi ohjelmisto USB-tikulta" + +# +msgid "Install a new image with your web browser" +msgstr "Päivitä uusi ohjelmisto WWW-selaimella" + +# +msgid "Install channel list" +msgstr "Asenna kanavalista" + +msgid "Install extensions" +msgstr "" + +# +msgid "Install extensions." +msgstr "Asenna laajennukset." + +# +msgid "Install local extension" +msgstr "Asenna paikallinen laajennus" + +msgid "Install picons on" +msgstr "Asenna kanavalogot" + +# +msgid "Install softcam" +msgstr "Asenna softcam..." + +msgid "Installation has completed." +msgstr "Asennus on valmis." + +msgid "Installation or removal has completed." +msgstr "Asennus tai poisto suoritettu." + +# +msgid "Installing" +msgstr "Asennetaan" + +# +msgid "Installing software..." +msgstr "Asennetaan ohjelmistoa..." + +msgid "Instant recording location" +msgstr "Tallennuksen hakemisto" + +msgid "Instant recording..." +msgstr "Tallennus..." + +msgid "Interface: " +msgstr "Liittymä: " + +# +msgid "Intermediate" +msgstr "Keskitaso" + +# +msgid "Internal flash" +msgstr "Sisäinen flash-muisti" + +msgid "Internal hdd only" +msgstr "Vain sisäinen kiintolevy" + +msgid "Interval between keys when repeating:" +msgstr "Viive näppäimen toiston välissä." + +# +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Virheellinen hakemisto valittu: %s" + +# +msgid "Invalid location" +msgstr "Virheellinen sijainti" + +msgid "Invalid transponder data" +msgstr "" + +# +msgid "Inversion" +msgstr "Inversio" + +msgid "Invert" +msgstr "Käänteinen" + +msgid "Ipkg" +msgstr "Ipkg" + +msgid "Is this setting ok?" +msgstr "Käytä näitä asetuksia?" + +# +msgid "Is this video mode ok?" +msgstr "Onko tämä video-tila ok?" + +# +msgid "Italian" +msgstr "Italia" + +msgid "Items per page " +msgstr "Kohdetta sivulla" + +msgid "Items per page for list screen" +msgstr "Merkintöjä per sivu luettelossa" + +# +msgid "Job overview" +msgstr "Työnäkymä" + +msgid "Jump to beginning of list" +msgstr "Hyppää listan alkuun" + +# +msgid "Jump to end of list" +msgstr "Mene listan loppuun" + +# +msgid "Jump to next marked position" +msgstr "Mene seuraavaan merkkiin" + +# +msgid "Jump to previous marked position" +msgstr "Mene edelliseen merkkiin" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +msgid "Just scale" +msgstr "Aina kokoruutu" + +msgid "Keep service" +msgstr "" + +msgid "Kernel version: " +msgstr "Kernelin versio:" + +msgid "Keyboard" +msgstr "Näppäimistö" + +# +msgid "Keyboard map" +msgstr "Näppäinasettelu" + +# +msgid "Keyboard setup" +msgstr "Näppäimistön asetukset" + +# +msgid "LAN adapter" +msgstr "Verkkosovitin" + +msgid "LAN connection" +msgstr "LAN-yhteys" + +# +msgid "LNB" +msgstr "LNB" + +# +msgid "Language" +msgstr "Kielivalinta" + +# +msgid "Language selection" +msgstr "Kielivalinta" + +# +msgid "Last config" +msgstr "Aikais.arvot" + +# +msgid "Last speed" +msgstr "Aikaisempi nopeus" + +msgid "Last upgrade: " +msgstr "Viimeisin päivitys:" + +msgid "Latest Commits" +msgstr "" + +# +msgid "Latitude" +msgstr "Leveysaste" + +# +msgid "Latvian" +msgstr "Latvia" + +# +msgid "Leave DVD player?" +msgstr "Poistutaanko DVD-soittimesta?" + +# +msgid "Left" +msgstr "Vasen" + +msgid "Left from servicename" +msgstr "Vasemmalla kanavan nimestä" + +msgid "Leisure hobbies" +msgstr "Vapaa-ajan harrastukset" + +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Letterbox" + +msgid "Letterbox zoom" +msgstr "Letterbox zoomaus" + +# +msgid "Limit character set for recording filenames" +msgstr "Rajoitettu merkistö tallenteiden nimissä" + +# +msgid "Limit east" +msgstr "Raja itään" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "Rajoita mahdollisia nauhoitusten tiedostonimissä käytettäviä merkkejä (7 bit ascii). Tämä varmistaa yhteensopivuuden rajoitetulla merkistöllä olevien käyttöjärjestelmien tai tiedostojärjestelmien kanssa." + +# +msgid "Limit west" +msgstr "Raja länteen" + +msgid "Limits cancelled" +msgstr "Raja-arvot pois" + +msgid "Limits enabled" +msgstr "Raja-arvott päällä" + +# +msgid "Limits off" +msgstr "Rajat pois" + +# +msgid "Limits on" +msgstr "Rajat päälle" + +# +msgid "Link quality:" +msgstr "Yhteyden laatu:" + +# +msgid "Link:" +msgstr "Tila:" + +# +msgid "Linked titles with a DVD menu" +msgstr "Linkitetyt tallenteet ja DVD-valikko" + +# +msgid "List EPG functions..." +msgstr "EPG-näkymät..." + +msgid "List available networks" +msgstr "Näytä verkot" + +msgid "List mode" +msgstr "Luettelotila" + +# +msgid "List of storage devices" +msgstr "Luettelo tallennusvälineistä" + +msgid "List type" +msgstr "Luettelon tyyppi" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "Luetteloversio %d, löytyi %d kanava" +msgstr[1] "Luetteloversio %d, löytyi %d kanavaa" + +# +msgid "Listen to the radio..." +msgstr "Kuuntele radiota..." + +msgid "Lists reloaded!" +msgstr "" + +# +msgid "Lithuanian" +msgstr "Liettua" + +# +msgid "Load" +msgstr "Lataa" + +# +msgid "Load Length of Movies in Movielist" +msgstr "Lataa tallenteiden pituus tallenneluetteloon" + +# +msgid "Load length of movies in movie list" +msgstr "Lataa tallenteiden pituus tallenneluettelossa" + +# +msgid "Load playlist" +msgstr "Lataa soittolista" + +# +msgid "Local network" +msgstr "Lähiverkko" + +# +msgid "Location" +msgstr "Hakemisto" + +msgid "Location for instant recordings" +msgstr "Tallennuksien hakemisto" + +msgid "Lock ratio" +msgstr "Lukitse suhde" + +# +msgid "Lock:" +msgstr "Lukit." + +# +msgid "Log results to harddisk" +msgstr "Luo lokitiedosto kiintolevylle" + +msgid "Long filenames" +msgstr "Pitkät tiedostonimet" + +# +msgid "Long key press" +msgstr "Pitkä näppäimen painallus" + +# +msgid "Longitude" +msgstr "Pituusaste" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "Luxemburg" + +# +msgid "MMC card" +msgstr "MMC-kortti" + +# +msgid "MORE" +msgstr "LISÄÄ" + +# +msgid "Main menu" +msgstr "Päävalikko" + +msgid "Maintain old EPG data for" +msgstr "Säilytä vanhaa EPG-tietoa" + +# +msgid "Make this mark an 'in' point" +msgstr "Tee tästä merkistä aloituspiste" + +# +msgid "Make this mark an 'out' point" +msgstr "Tee tästä merkistä lopetuspiste" + +# +msgid "Make this mark just a mark" +msgstr "Tee tästä tavallinen merkki" + +msgid "Manage extensions" +msgstr "Hallitse laajennuksia" + +# +msgid "Manage your receiver's software" +msgstr "Hallitse vastaanottimen ohjelmistoa" + +msgid "Manual" +msgstr "" + +# +msgid "Manual Scan" +msgstr "Manuaalihaku" + +msgid "Manual configuration" +msgstr "Manuaalinen määritys" + +# +msgid "Manual scan" +msgstr "Manuaalihaku" + +# +msgid "Manual transponder" +msgstr "Manuaalinen lähetin" + +# +msgid "Manufacturer" +msgstr "Valmistaja" + +# +msgid "Margin after recording (minutes)" +msgstr "Lisäaika tallenteen loppuun (minuuttia)" + +# +msgid "Margin before recording (minutes)" +msgstr "Lisäaika tallenteen alkuun (minuuttia)" + +msgid "Max memory positions" +msgstr "" + +msgid "Max. bitrate: " +msgstr "Maks. bittimäärä: " + +msgid "Media player" +msgstr "Mediasoitin" + +msgid "Media scanner" +msgstr "Mediaskanneri" + +# +msgid "Medium is not a writeable DVD!" +msgstr "Levy ei ole kirjoitettava DVD!" + +# +msgid "Medium is not empty!" +msgstr "Levy ei ole tyhjä!" + +msgid "Memory" +msgstr "Muisti" + +msgid "Memory index" +msgstr "Muisti-indeksi" + +# +msgid "Menu" +msgstr "Valikko" + +# +msgid "Message" +msgstr "Viesti" + +# +msgid "Message..." +msgstr "Viesti..." + +#, python-format +msgid "Minimum age %d years" +msgstr "Alaikäraja %d vuotta" + +msgid "Minimum send interval" +msgstr "Minimi lähetysväli" + +msgid "Missing " +msgstr "Puuttuu" + +# +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Tila" + +# +msgctxt "Video output mode" +msgid "Mode" +msgstr "Tila" + +# +msgid "Model: " +msgstr "Malli: " + +# +msgid "Modulation" +msgstr "Modulaatio" + +# +msgid "Modulator" +msgstr "Modulaattori" + +# +msgid "Mon" +msgstr "Ma" + +# +msgid "Mon-Fri" +msgstr "Ma-Pe" + +# +msgid "Monday" +msgstr "Maanantai" + +# +msgid "Mosquito noise reduction" +msgstr "Mosquito-kohinanvaimennus" + +msgid "Mount" +msgstr "Liitä" + +msgid "Move" +msgstr "Siirrä" + +# +msgid "Move PiP to main picture" +msgstr "Siirrä PiP-kuva pääkuvaksi" + +# +msgid "Move Picture in Picture" +msgstr "Siirrä PiP-kuvaa" + +# +msgid "Move east" +msgstr "Liikuta itään" + +msgid "Move to other directory" +msgstr "Siirrä toiseen hakemistoon" + +msgid "Move to position X" +msgstr "Käännä paikkaan X" + +# +msgid "Move west" +msgstr "Liikuta länteen" + +msgid "Moved to position 0" +msgstr "Käännä paikkaan 0" + +msgid "Moved to position at index" +msgstr "Käännettiin sijaintiin luettelossa" + +msgid "Movement" +msgstr "Liike" + +msgid "Movie List Configuration" +msgstr "Tallenneluettelon asetukset" + +msgid "Movie Selection" +msgstr "Tallenteen valinta" + +msgid "Movie list configuration" +msgstr "Tallenneluettelon asetukset" + +msgid "Movie location" +msgstr "Tallennushakemisto" + +msgid "Movie selection" +msgstr "Tallenteen valinta" + +msgid "Movie/Drama" +msgstr "Elokuva/Draama" + +# +msgid "Movielist menu" +msgstr "Tallenneluettelon valikko" + +msgid "Moving" +msgstr "Kääntyy" + +msgid "Moving east ..." +msgstr "Kääntyy itään ..." + +msgid "Moving to position" +msgstr "Kääntyy sijaintiin" + +msgid "Moving west ..." +msgstr "Kääntyy länteen ..." + +# +msgid "Multi EPG" +msgstr "Kanavaopas" + +msgid "Multi-EPG bouquet selection" +msgstr "Multi-EPG suosikkilistan valinta" + +msgid "Multimedia" +msgstr "Multimedia" + +# +msgid "Multiple service support" +msgstr "Usean kanavan tuki" + +msgid "Multiplex" +msgstr "Multipleksi" + +# +msgid "Multisat" +msgstr "Usea satelliitti" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "Musiikki/Baletti/Tanssi" + +# +msgid "Mute" +msgstr "Mykistä" + +# +msgid "N/A" +msgstr "Ei saatavilla" + +# +msgid "NEXT" +msgstr "SEURAAVA" + +msgid "NFI image flashing" +msgstr "NFI-tiedoston asennus" + +# +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "NFI-päivityksen asennus on suoritettu. Käynnistä uudelleen keltaisella näppäimellä!" + +msgid "NIM" +msgstr "NIM" + +# +msgid "NOW" +msgstr "NYT" + +# +msgid "NTSC" +msgstr "NTSC" + +# +msgid "Name" +msgstr "Nimi" + +# +msgid "Nameserver" +msgstr "Nimipalvelin" + +# +#, python-format +msgid "Nameserver %d" +msgstr "Nimipalvelin %d" + +# +msgid "Nameserver settings" +msgstr "Nimipalvelimen asetukset" + +# +msgid "Nameserver setup" +msgstr "Nimipalvelimen asetukset" + +msgid "Namespace" +msgstr "Nimiavaruus" + +# +msgid "Netmask" +msgstr "Verkkomaski" + +# +msgid "Network" +msgstr "Verkko" + +msgid "Network ID" +msgstr "Verkon ID" + +# +msgid "Network configuration..." +msgstr "Verkon asetukset..." + +# +msgid "Network mount" +msgstr "Verkkojaon nimi" + +# +#, python-format +msgid "Network mount %s" +msgstr "Verkkojaon nimi %s" + +msgid "Network name (SSID)" +msgstr "Verkon nimi (SSID)" + +# +msgid "Network scan" +msgstr "Verkkohaku" + +# +msgid "Network setup" +msgstr "Lähiverkon asetukset" + +# +msgid "Network test" +msgstr "Lähiverkon testi" + +# +msgid "Network test..." +msgstr "Lähiverkon testi..." + +msgid "Network test: " +msgstr "Lähiverkon testi: " + +# +msgid "Network wizard" +msgstr "Ohjattu verkon asennus" + +# +msgid "Network:" +msgstr "Verkko:" + +# +msgid "New" +msgstr "Uusi" + +msgid "New PIN" +msgstr "Uusi PIN" + +# +msgid "New version:" +msgstr "Uusi versio:" + +msgid "News Current Affairs" +msgstr "Uutiset ajankohtaisohjelmat" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "Seuraava" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "Seuraavaksi" + +# +msgid "No" +msgstr "Ei" + +# +msgid "No (supported) DVDROM found!" +msgstr "DVDROM-asemaa ei löytynyt!" + +msgid "No Connection" +msgstr "Ei yhteyttä" + +# +msgid "No HDD found or HDD not initialized!" +msgstr "" +"Kiintolevyä ei löydy tai sitä ei\n" +"ole alustettu." + +# +msgid "No backup needed" +msgstr "Varmuuskopiota ei tarvita" + +msgid "No cable tuner found!" +msgstr "Kaapeliviritintä ei löytynyt!" + +# +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Lähettimessä ei dataa!\n" +"(Aikaraja ylittyi luettaessa PAT)" + +msgid "No delay" +msgstr "Ei viivettä" + +# +msgid "No description available." +msgstr "Kuvausta ei ole saatavilla." + +# +msgid "No details for this image file" +msgstr "Ei tietoja tästä päivityksestä" + +# +msgid "No displayable files on this medium found!" +msgstr "Tiedostoja ei löytynyt!" + +# +msgid "No event info found, recording indefinitely." +msgstr "" +"Lähetyksessä ei ole tietoa ohjelman loppumisajasta.\n" +"Ohjelma tallennetaan jatkuvana tallennuksena." + +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "Pikakelaus ei ole vielä mahdollista... mutta voit hyppiä eteen/taakse numeronäppäimien avulla!" + +msgid "No free index available" +msgstr "Ei vapaata indeksiä" + +# +msgid "No free tuner!" +msgstr "Kaikki virittimet ovat jo käytössä!" + +msgid "No network connection available." +msgstr "Ei verkkoyhteyttä." + +# +msgid "No networks found" +msgstr "Verkkoja ei löytynyt" + +# +msgid "No new plugins found" +msgstr "Uusia lisäosia ei löytynyt" + +# +msgid "No positioner capable frontend found." +msgstr "" +"Laitteessa ei ole satelliittiviritintä,\n" +"joka hallitsisi kääntömoottorin ohjauksen." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +# +msgid "No service" +msgstr "Ei kanavaa" + +# +msgid "No services/providers selected" +msgstr "Palveluja/palveluntarjoajia ei valittu" + +# +msgid "No standby" +msgstr "Ei valmiustilaa" + +msgid "No suitable sat tuner found!" +msgstr "Käyttöön sopivaa viritintä ei löytynyt!" + +# +msgid "No tags are set on these movies." +msgstr "Näissä tallenteissa ei ole avainsanoja." + +# +msgid "No timeout" +msgstr "Ei aikavalvontaa" + +msgid "No to all" +msgstr "Ei kaikkiin" + +msgid "No transparency" +msgstr "Ei läpinäkyvä" + +# +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "" +"Virittimiä ei ole asetettu käyttämään\n" +"DiSEqC-ohjausta." + +# +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Viritintä ei ole määritetty!\n" +"Määritä virittimen asetukset ennen kanavahaun aloittamista." + +msgid "No updates available" +msgstr "Ei päivityksiä saatavilla" + +msgid "No updates available. Please try again later." +msgstr "Päivityksiä ei ole nyt saatavilla. Yritä myöhemmin uudestaan." + +# +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Kanavan lapsilukon tunnuslukua ei löydy!\n" +"Haluatko määrittää kanavan tunnusluvun?\n" +"Jos vastaat 'Ei', kanavaa ei suojata tunnusluvulla." + +# +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Asetuksien tunnuslukua ei löydy!\n" +"Haluatko määrittää asetuksien tunnusluvun?\n" +"Jos vastaat 'Ei', asetuksia ei suojata tunnusluvulla." + +msgid "No wireless networks found! Searching..." +msgstr "WLAN-verkkoja ei löytynyt! Etsitään..." + +# +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"Toimivaa verkkokorttia ei löydy.\n" +"Tarkista, että olet kytkennyt verkkokaapelin ja lähiverkon asetukset ovat oikein." + +# +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"Toimivaa langatonta verkkoliitäntää ei löydy.\n" +"Tarkista, että olet kytkenyt yhteensopivan WLAN-laitteen ja verkko on määritelty oikein." + +# +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"Toimivaa langattoman verkon yhteyttä ei löydy.\n" +"Tarkista, että olet kytkenyt yhteensopivan WLAN-laitteen tai kytke lähiverkko päälle." + +# +msgid "No, but restart from begin" +msgstr "Ei, aloita alusta" + +# +msgid "No, do nothing." +msgstr "Ei, älä tee mitään." + +msgid "No, just start my receiver" +msgstr "Ei, Käynnistä vain vastaanottimeni" + +msgid "No, never" +msgstr "Ei koskaan" + +# +msgid "None" +msgstr "Ei mitään" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Epälineaarinen" + +msgid "Normal mode" +msgstr "Normaalitila" + +# +msgid "North" +msgstr "Pohjoinen" + +# +msgid "Norwegian" +msgstr "Norja" + +msgid "Not associated" +msgstr "Ei liitetty" + +msgid "Not configured" +msgstr "" + +# +#, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Ei riittävästi levytilaa. Vapauta levytilaa ja yritä uudelleen. (%d Mt tarvitaan, %d Mt vapaana)" + +msgid "Nothing connected" +msgstr "" + +# +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Ei ole mitään haettavaa!\n" +"Määritä virittimen asetukset ennen kanavahakua." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "Nyt" + +# +msgid "Now playing" +msgstr "Toistetaan" + +# +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "" +"Säädä kontrastisäädöllä tausta mahdollisimman valkoiseksi.\n" +"\n" +"Varmista, että näet yhä kahden kirkkaimman sävyn (1 ja 2) eron.\n" +"\n" +"Kun olet tyytyväinen tulokseen, paina OK." + +# +msgid "OK" +msgstr "OK" + +# +msgid "OK, guide me through the upgrade process" +msgstr "OK, opasta minua päivityksessä" + +msgid "ONID" +msgstr "ONID" + +msgid "OSD name request" +msgstr "OSD nimen pyyntö" + +# +msgid "OSD settings" +msgstr "Valikkojen asetukset" + +msgid "OSD transparency" +msgstr "Valikon läpinäkyvyys" + +# +msgid "Off" +msgstr "Pois" + +msgid "Offline decode delay (ms)" +msgstr "Offline-purkamisen viive (ms)" + +msgid "Ok" +msgstr "Ok" + +# +msgid "On" +msgstr "Päällä" + +msgid "On end of movie" +msgstr "Tallenteen lopussa" + +msgid "On end of movie (as menu)" +msgstr "" + +# +msgid "One" +msgstr "Yksi" + +msgid "Only extensions." +msgstr "Vain laajennukset." + +# +msgid "Only free scan" +msgstr "Hae vain salaamattomat" + +# +msgid "Open service list" +msgstr "Avaa kanavalista" + +# +msgid "Open the movie list" +msgstr "Avaa tallenneluettelo" + +msgid "Orbital position" +msgstr "Sijainti" + +msgid "Original" +msgstr "Alkuperäinen" + +msgid "Other" +msgstr "Muu" + +msgid "Output" +msgstr "Ulostulo" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "Korvaa asetustiedostot ohjelmistopäivityksen aikana?" + +msgid "Overwrite configuration files?" +msgstr "Korvaa asetustiedostot?" + +# +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "PCR PID" + +# +msgid "PIDs" +msgstr "PIDit" + +# +msgid "PIN code needed" +msgstr "Tarvitaan PIN tunnusluku" + +msgid "PLP ID" +msgstr "PLP ID" + +msgid "PMT PID" +msgstr "PMT PID" + +# +msgid "Package list update" +msgstr "Ohjelmapakettiluettelon päivitys" + +# +msgid "Packet management" +msgstr "Ohjelmapakettien hallinta" + +# +msgid "Packet manager" +msgstr "Ohjelmapakettien hallinta" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +msgid "Pan&scan" +msgstr "Pan&Scan" + +# +msgid "Parent directory" +msgstr "Päähakemisto" + +# +msgid "Parental control" +msgstr "Lapsilukko" + +# +msgid "Parental control services editor" +msgstr "Lapsilukon kanavaeditori" + +# +msgid "Parental control setup" +msgstr "Lapsilukon asetukset" + +# +msgid "Parental control type" +msgstr "Lapsilukon tyyppi" + +# +msgid "Password" +msgstr "Salasana" + +# +msgid "Pause" +msgstr "Tauko" + +# +msgid "Pause movie at end" +msgstr "Pysähdy tallenteen loppuun" + +# +msgid "Pause playback" +msgstr "Keskeytä toisto" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "Prosentti vasemmalle" + +msgid "Percentage right" +msgstr "Prosentti Oikealle" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "Poista kaikki roskakorin tallenteet pysyvästi?" + +msgid "Permanently remove all deleted items" +msgstr "Poista poistetut pysyvästi" + +msgid "Persian" +msgstr "Persia" + +msgid "Phone number" +msgstr "Puhelinnumero" + +# +msgid "PiP setup" +msgstr "PiP-kuvan asetukset" + +msgid "Picon" +msgstr "Kanavalogo" + +msgid "Picon and service name" +msgstr "Kanavalogo ja kanavan nimi" + +# +msgid "Picture player" +msgstr "Kuvien katselu" + +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Pillarbox" + +msgid "Pilot" +msgstr "Pilot" + +# +msgid "Play" +msgstr "Jatka toistoa" + +# +msgid "Play DVD" +msgstr "Toista DVD" + +msgid "Play audio in background" +msgstr "Toista ääni taustalla" + +# +msgid "Play audio-CD..." +msgstr "Toista ääni-CD..." + +msgid "Play back media files" +msgstr "Toista audio/video tiedostoja" + +# +msgid "Play entry" +msgstr "Toista" + +# +msgid "Play from next mark or playlist entry" +msgstr "Toista seuraavasta merkistä tai valinnasta" + +# +msgid "Play from previous mark or playlist entry" +msgstr "Toista edellisestä merkistä tai valinnasta" + +# +msgid "Play music..." +msgstr "Soita musiikkia..." + +msgid "Play next" +msgstr "Toista seuraava" + +msgid "Play next (return to movie list)" +msgstr "Soita seuraava (palaa tallenneluetteloon)" + +msgid "Play next (return to previous service)" +msgstr "Soita seuraava (palaa aiemmalle kanavalle)" + +msgid "Play previous" +msgstr "Toista edellinen" + +# +msgid "Play recorded movies..." +msgstr "Toista tallenteet..." + +msgid "Please add titles to the compilation." +msgstr "Lisää tallenteita kokoelmaan." + +# +msgid "Please change recording endtime" +msgstr "Aseta tallennuksen päättymisaika" + +# +msgid "Please check your network settings!" +msgstr "Tarkista verkkoasetukset!" + +# +msgid "Please choose an extension..." +msgstr "Valitse laajennus..." + +# +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Määritä ja tarkista nimipalvelimien tiedot.\n" +"Paina OK-näppäintä kun olet valmis." + +# +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Määritä lähiverkkoyhteys syöttämällä tarvittavat arvot.\n" +"Paina OK-näppäintä kun olet valmis." + +msgid "Please connect your receiver to the internet" +msgstr "Kytke vastaanottimesi internettiin" + +# +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Älä muuta arvoja, ellet tiedä mitä teet!" + +# +msgid "Please enter a name for the new bouquet" +msgstr "Anna uuden suosikkilistan nimi" + +# +msgid "Please enter a name for the new marker" +msgstr "Anna uuden väliotsikon nimi" + +# +msgid "Please enter a new filename" +msgstr "Syötä uusi nimi" + +# +msgid "Please enter filename (empty = use current date)" +msgstr "Syötä tiedoston nimi (tyhjä = nykyinen päiväys)" + +# +msgid "Please enter name of the new directory" +msgstr "Syötä uuden hakemiston nimi" + +# +msgid "Please enter new name:" +msgstr "Syötä uusi nimi:" + +# +msgid "Please enter the correct pin code" +msgstr "Syötä oikea tunnusluku" + +msgid "Please enter the old PIN code" +msgstr "Syötä vanha PIN-koodi" + +# +msgid "Please follow the instructions on the TV" +msgstr "Seuraa ruudulla näkyviä ohjeita" + +# +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "Huomaa, että oletushakemisto on käytössä, koska aikaisemmin valittuun levyyn ei saatu yhteyttä." + +# +msgid "Please press OK to continue." +msgstr "Paina OK jatkaaksesi." + +msgid "Please select a default EPG type..." +msgstr "Valitse oletus ohjelmaoppaan tyyppi..." + +# +msgid "Please select a playlist to delete..." +msgstr "Valitse poistettava soittolista..." + +# +msgid "Please select a playlist..." +msgstr "Valitse soittolista..." + +# +msgid "Please select a sub service..." +msgstr "Valitse alipalvelu..." + +# +msgid "Please select a subservice to record..." +msgstr "Valitse tallennettava alipalvelu..." + +# +msgid "Please select a subservice..." +msgstr "Valitse alipalvelu..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "Valitse NFI-tiedosto ja aloita päivitys vihreällä näppäimellä." + +# +msgid "Please select medium to be scanned" +msgstr "Valitse lähde josta haetaan" + +# +msgid "Please select medium to use as backup location" +msgstr "Valitse tallennuspaikka varmuuskopiolle" + +# +msgid "Please select tag to filter..." +msgstr "Valitse suodatettava avainsana..." + +# +msgid "Please select the movie path..." +msgstr "Valitse tallennehakemisto..." + +# +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Valitse verkkosovitin jota haluat käyttää lähiverkkoyhteyteen.\n" +"\n" +"Jatka painamalla OK-näppäintä." + +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Valitse WLAN-verkko johon haluat kytkeytyä.\n" +"\n" +"Jatka painamalla OK-näppäintä." + +# +# Ohjatun asennuksen (Startup Wizard) nelosruudun ohjeteksti +msgid "Please set up tuner A" +msgstr "Määritä virittimen A asetukset:" + +# +# Ohjatun asennuksen (Startup Wizard) nelosruudun ohjeteksti +msgid "Please set up tuner B" +msgstr "Määritä virittimen B asetukset:" + +# +msgid "Please set up tuner C" +msgstr "Määritä virittimen C asetukset:" + +# +msgid "Please set up tuner D" +msgstr "Määritä virittimen D asetukset:" + +# +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Siirrä PiP-kuvaa nuolinapeilla.\n" +"Muuta ikkunan kokoa Bouquet +/- napeilla.\n" +"Palaa TV-tilaan OK-näppäimellä tai hylkää siirto EXIT-näppäimellä." + +# +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "Valitse kieli ylös/alas näppäimillä ja paina OK-näppäintä." + +msgid "Please wait" +msgstr "" + +# +msgid "Please wait (downloading channel list)" +msgstr "Kanavaluetteloa ladataan. Odota..." + +# +msgid "Please wait (downloading softcam)" +msgstr "Softcamia ladataan. Odota..." + +# +msgid "Please wait (updating packages)" +msgstr "Paketteja ladataan. Odota..." + +# +msgid "Please wait for activation of your network configuration..." +msgstr "Odota, verkkomääritykset aktivoidaan..." + +# +msgid "Please wait while scanning is in progress..." +msgstr "Odota, haku on käynnissä..." + +# +msgid "Please wait while we configure your network..." +msgstr "Odota, verkkoa määritetään..." + +# +msgid "Please wait while we prepare your network interfaces..." +msgstr "Odota, valmistelemme verkkosovittimia..." + +# +msgid "Please wait while we test your network..." +msgstr "Odota, testaamme verkkoa..." + +# +msgid "Please wait while your network is restarting..." +msgstr "Odota, verkko käynnistetään uudelleen..." + +# +msgid "Please wait..." +msgstr "Odota..." + +# +msgid "Please wait... Loading list..." +msgstr "Odota... Luetteloa ladataan..." + +# +msgid "Plugin browser" +msgstr "Asennetut Plugin-lisäosat" + +# +msgid "Plugin manager activity information" +msgstr "Lisäosien hallinnan asennustiedot" + +# +msgid "Plugin manager help" +msgstr "Lisäosien hallinan ohje" + +# +msgid "Plugins" +msgstr "Plugin-lisäosat" + +msgid "Polarisation" +msgstr "Polarisaatio" + +msgid "Polarisation:" +msgstr "Polarisaatio:" + +# +msgid "Polarization" +msgstr "Polarisaatio" + +# +msgid "Polish" +msgstr "Puola" + +# +msgid "Port A" +msgstr "Portti A" + +# +msgid "Port B" +msgstr "Portti B" + +# +msgid "Port C" +msgstr "Portti C" + +# +msgid "Port D" +msgstr "Portti D" + +# +msgid "Portuguese" +msgstr "Portugali" + +msgid "Position of completed timers in timerlist" +msgstr "Tallennettujen ajastuksien paikka ajastusluettelossa" + +msgid "Position stored at index" +msgstr "Paikka tallennettu luetteloon" + +# +msgid "Positioner" +msgstr "Kääntömoottori" + +msgid "Positioner (selecting satellites)" +msgstr "" + +# +msgid "Positioner Setup" +msgstr "Kääntömoottorin asetukset" + +# +msgid "Positioner setup" +msgstr "Kääntömoottorin asetukset" + +# +msgid "Power threshold in mA" +msgstr "Tunnistusvirta mA" + +# +msgid "Predefined transponder" +msgstr "Ennalta määritelty lähetin" + +msgid "Prefer AC3 track" +msgstr "Suosi AC3 ääniraitaa" + +msgid "Prefer AC3+ track" +msgstr "" + +msgid "Prefer audio track stored by service" +msgstr "Suosi kanavakohtaista ääniasetusta" + +msgid "Prefer graphical DVB subtitles" +msgstr "Suosi DVB-tekstitystä" + +msgid "Prefer subtitles for hearing impaired" +msgstr "Suosi kuulovammaisten tekstitystä" + +msgid "Prefer subtitles stored by service" +msgstr "Suosi kanavakohtaisesti tallennettua tekstitystä" + +msgid "Preferred tuner" +msgstr "Ensisijainen viritin" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "Alusta toinen USB-muistitikku päivitystä varten" + +# +msgid "Preparing... Please wait" +msgstr "Valmistellaan... Odota hetki!" + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "Katso lisätietoja painamalla INFO-näppäintä." + +msgid "Press MENU on your remote control for additional options." +msgstr "Avaa lisäasetukset painamalla MENU-näppäintä." + +# +msgid "Press OK on your remote control to continue." +msgstr "Jatka painamalla OK-näppäintä." + +# +msgid "Press OK to activate the selected skin." +msgstr "Ota valittu teema käyttöön painamalla OK." + +# +msgid "Press OK to activate the settings." +msgstr "Ota käyttöön painamalla OK." + +# +msgid "Press OK to edit the settings." +msgstr "Muokkaa painamalla OK." + +# +#, python-format +msgid "Press OK to get further details for %s" +msgstr "Katso %s lisätietoja OK-näppäimellä" + +# +msgid "Press OK to scan" +msgstr "Aloita haku painamalla OK" + +# +msgid "Press OK to select a provider." +msgstr "Valitse palveluntarjoaja painamalla OK." + +msgid "Press OK to select satellites" +msgstr "" + +# +msgid "Press OK to select/deselect a CAId." +msgstr "Valitse/poista CAId:t OK-näppäimellä" + +# +msgid "Press OK to start the scan" +msgstr "Aloita haku painamalla OK" + +msgid "Press OK to toggle the selection" +msgstr "" + +# +msgid "Press OK to toggle the selection." +msgstr "Muuta valintaa OK-näppäimellä." + +# +msgid "Press yellow to set this interface as default interface." +msgstr "Määritä tämä liitäntä oletukseksi keltaisella näppäimellä." + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "Edellinen" + +msgid "Preview" +msgstr "Esikatselu" + +# +msgid "Preview menu" +msgstr "Esikatsele valikkoa" + +msgid "Preview selected channel" +msgstr "Esikatsele valittua kanavaa" + +# +msgid "Primary DNS" +msgstr "Ensisijainen DNS" + +# +msgid "Priority" +msgstr "Prioriteetti" + +# +msgid "Process" +msgstr "Suorita" + +msgid "Progress" +msgstr "Eteneminen" + +msgid "Progress bar left" +msgstr "Etenemispalkki vasen" + +msgid "Progress bar right" +msgstr "Etenemispalkki oikea" + +# +msgid "Properties of current title" +msgstr "Omaisuudet" + +# +msgid "Protect services" +msgstr "Suojaa kanavat" + +# +msgid "Protect setup" +msgstr "Suojaa asetukset" + +# +msgid "Provider" +msgstr "Palveluntarjoaja" + +# +msgid "Provider to scan" +msgstr "Hae palveluntarjoajalta" + +# +msgid "Providers" +msgstr "Palveluntarjoajat" + +msgid "Put TV in standby" +msgstr "Laita TV valmiustilaan" + +msgid "Put receiver in standby" +msgstr "Laita vastaanotin valmiustilaan" + +msgid "Python frontend for /tmp/mmi.socket" +msgstr "Python-liittymä /tmp/mmi.socket:ille" + +# +msgid "Quick" +msgstr "Nopea" + +# +msgid "Quick zap" +msgstr "Pika kanavanvaihto" + +# +msgid "RF output" +msgstr "RF-ulostulo" + +# +msgid "RGB" +msgstr "RGB" + +msgid "Radio" +msgstr "Radio" + +# +msgid "Ram disk" +msgstr "RAM-levy" + +# +msgid "Random" +msgstr "Satunnainen" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "Kanavan määrittelemä ikäraja - %d" + +msgid "Rating undefined" +msgstr "Ikärajaa ei määritelty" + +# +msgid "Really close without saving settings?" +msgstr "Haluatko poistua tallentamatta asetuksia?" + +# +msgid "Really delete done timers?" +msgstr "Poistetaanko tallennetut ajastukset?" + +# +msgid "Really exit the subservices quickzap?" +msgstr "Poistu alipalveluiden pika kanavanvaihdosta?" + +# +msgid "Really reboot now?" +msgstr "Haluatko silti käynnistää uudelleen?" + +# +msgid "Really restart now?" +msgstr "Haluatko silti käynnistää uudelleen?" + +# +msgid "Really shutdown now?" +msgstr "Haluatko silti sammuttaa?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "Päivitetäänkö etuprosessori nyt ja käynnistetään uudelleen?" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "Päivitetäänkö vastaanotin nyt ja käynnistetään uudelleen?" + +# +msgid "Reboot" +msgstr "Käynnistä uudelleen" + +msgid "Rec" +msgstr "Tallenna" + +# +msgid "Reception settings" +msgstr "Virittimen asetukset" + +# +msgid "Record" +msgstr "Tallennus" + +# +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "Ajastusaika rajoitettu, koska ristiriita ajastukseen %s" + +# +msgid "Recorded files..." +msgstr "Tallenteet..." + +# +msgid "Recording" +msgstr "Tallennus" + +msgid "Recording in progress" +msgstr "Tallennus käynnissä" + +msgid "Recording paths" +msgstr "Tallennushakemistot" + +msgid "Recording type" +msgstr "Tallennuksen tyyppi" + +# +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "Tallennuksia on käynnissä tai käynnistymässä!" + +# +msgid "Recordings" +msgstr "Tallenteet" + +# +msgid "Recordings always have priority" +msgstr "Tallennukset saavat keskeyttää suoran katselun" + +msgid "Red button..." +msgstr "Punainen näppäin..." + +msgid "Reenter new PIN" +msgstr "Syötä uusi PIN uudelleen" + +# +msgid "Refresh rate" +msgstr "Virkistystaajuus" + +# +msgid "Refresh rate selection." +msgstr "Virkistystaajuuden valinta." + +msgid "Regard deep standby as standby" +msgstr "Käytä virransäätötilaa valmiustilana" + +msgid "Relative" +msgstr "Suhteellinen" + +# +msgid "Reload" +msgstr "Päivitä" + +msgid "Reload black-/white lists" +msgstr "Lataa esto-/sallilistat uudestaan" + +msgid "Reloading bouquets and services..." +msgstr "Ladataan suosikkeja ja kanavia uudelleen..." + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "Muista kanavan PIN" + +msgid "Remember these settings for each folder" +msgstr "Muista nämä asetuksen jokaiselle hakemistolle" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "Muistutus, halusit tallentaa ajansiirtotiedoston." + +# +msgid "Remote control type" +msgstr "Kaukosäätimen tyyppi" + +# +msgid "Removal has completed." +msgstr "Poistaminen on valmis." + +# +msgid "Remove" +msgstr "Poista" + +# +msgid "Remove a mark" +msgstr "Poista merkki" + +# +msgid "Remove a nameserver entry" +msgstr "Poista nimipalvelin" + +# +msgid "Remove bookmark" +msgstr "Poista kirjanmerkki" + +msgid "Remove completed timers after (days)" +msgstr "Poista tallennetut ajastukset (päivän jälkeen)" + +# +msgid "Remove currently selected title" +msgstr "Poista valittu otsikko" + +msgid "Remove items from trash can after (days)" +msgstr "Tyhjennä roskakori (päivän jälkeen)" + +# +msgid "Remove plugins" +msgstr "Poista lisäosia" + +# +msgid "Remove title" +msgstr "Poista" + +# +msgid "Removing" +msgstr "Poistetaan" + +# +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Hakemiston %s poisto epäonnistui. (Ei ehkä ole tyhjä.)" + +msgid "Removing partition table" +msgstr "Poistetaan levyn osiotaulu" + +# +msgid "Rename" +msgstr "Muuta nimi" + +# +msgid "Repeat" +msgstr "Toista" + +# +msgid "Repeat type" +msgstr "Ajastus toistetaan" + +# +msgid "Repeating event currently recording... What do you want to do?" +msgstr "Toistuvaa ajastusta tallennetaan... Mitä haluat tehdä?" + +# +msgid "Repeats" +msgstr "Toistokerrat" + +msgid "Require authentication for http streams" +msgstr "" + +msgid "Required medium type:" +msgstr "Tarvittava tallennusmedia:" + +msgid "Rereading partition table" +msgstr "Luetaan levyn osiotaulukko uudelleen" + +msgid "Reserved" +msgstr "Varattu" + +# +msgid "Reset" +msgstr "Käynnistä CA-moduuli uudelleen" + +# +msgid "Reset and renumerate title names" +msgstr "Nollaa ja uudelleenjärjestä otsikot" + +msgid "Reset playback position" +msgstr "Nollaa toiston aloituskohta" + +# +msgid "Reset video enhancement settings to system defaults?" +msgstr "Nollaa kuvanparannus oletusarvoihin?" + +# +msgid "Reset video enhancement settings to your last configuration?" +msgstr "Nollaa kuvanparannus aikaisempiin arvoihin?" + +# +msgid "Resolution" +msgstr "Tarkkuus" + +# +msgid "Restart" +msgstr "Käynnistä uudelleen" + +# +msgid "Restart GUI now?" +msgstr "Käynnistetäänkö käyttöliittymä uudelleen?" + +msgid "Restart enigma" +msgstr "Käynnistä enigma uudelleen" + +# +msgid "Restart network" +msgstr "Käynnistä verkko uudelleen" + +# +msgid "Restart test" +msgstr "Käynnistä testi uudelleen" + +# +msgid "Restart your network connection and interfaces.\n" +msgstr "Käynnistä verkkokortti ja yhteys uudelleen.\n" + +# +msgid "Restore" +msgstr "Palauta" + +# +msgid "Restore backups" +msgstr "Palauta varmistus" + +# +msgid "Restore is running..." +msgstr "Palautus käynnissä..." + +# +msgid "Restore system settings" +msgstr "Palauta asetukset" + +# +msgid "Restoring..." +msgstr "Palautetaan..." + +# +msgid "Resume from last position" +msgstr "Jatka viimeksi katsotusta kohdasta" + +#, python-format +msgid "Resume position at %s" +msgstr "Jatka kohdasta %s" + +# +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Toisto jatkuu viimeksi katsotusta kohdasta" + +# +msgid "Return to movie list" +msgstr "Avaa tallenneluettelo" + +# +msgid "Return to previous service" +msgstr "Palaa TV-kanavalle" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +# +msgid "Rewind speeds" +msgstr "Kelausnopeudet taaksepäin" + +msgid "Rewrap teletext subtitles" +msgstr "Uudelleenrivitä teksti-tv tekstitys" + +# +msgid "Right" +msgstr "Oikea" + +msgid "Right from servicename" +msgstr "Oikealla kanavan nimestä" + +msgid "Roll-off" +msgstr "Roll-off" + +msgid "Romanian" +msgstr "Romania" + +msgid "Root directory" +msgstr "Päähakemisto" + +msgid "Rotor step position:" +msgstr "Moottorin askeleen paikka:" + +# +msgid "Rotor turning speed" +msgstr "Moottorin kääntönopeus" + +msgid "Round start time on" +msgstr "Pyöristä aloitusaika" + +# +msgid "Russian" +msgstr "Venäjä" + +# +msgid "S-Video" +msgstr "S-video (Y/C)" + +msgid "SID" +msgstr "SID" + +msgid "SINGLE LAYER DVD" +msgstr "SINGLE LAYER DVD" + +# +msgid "SNR" +msgstr "SNR" + +# +msgid "SNR:" +msgstr "SNR:" + +msgid "SSID:" +msgstr "SSID:" + +# +msgid "Same resolution as skin" +msgstr "Sama resoluutio kuin teemassa" + +# +msgid "Sat" +msgstr "La" + +# +msgid "Satellite" +msgstr "Satelliitti" + +# +msgid "Satellite dish setup" +msgstr "Satelliittilautasen asetukset" + +msgid "Satellite equipment" +msgstr "Satelliittilaitteet" + +# +msgid "Satellite equipment setup" +msgstr "Satelliittilaitteiden asetukset" + +msgid "Satellite longitude:" +msgstr "Satelliitin pituusaste:" + +# +msgid "Satellites" +msgstr "Satelliitit" + +# +msgid "Satfinder" +msgstr "Satelliittietsin" + +msgid "Sats" +msgstr "Sat." + +# +msgid "Saturation" +msgstr "Värikylläisyys" + +# +msgid "Saturday" +msgstr "Lauantai" + +# +msgid "Save" +msgstr "Tallennus" + +# +msgid "Save playlist" +msgstr "Tallenna soittolista" + +# +msgid "Save timeshift file" +msgstr "Tallenna ajansiirtotiedosto" + +msgid "Save timeshift file in movie directory" +msgstr "Tallenna ajansiirtotiedosto tallenne hakemistoon." + +# +msgid "Scaler sharpness" +msgstr "Skaalaimen terävyys" + +# +msgid "Scaling mode" +msgstr "Skaalaustila" + +# +msgid "Scan" +msgstr "Hae " + +# +msgid "Scan " +msgstr "Hae " + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, python-format +msgid "Scan %s" +msgstr "Hae %s" + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, python-format +msgid "Scan %s band" +msgstr "Hae alue %s" + +msgid "Scan additional SR" +msgstr "Hae muita SR:iä" + +# +msgid "Scan files..." +msgstr "Hae tiedostoja..." + +# +msgid "Scan wireless networks" +msgstr "Hae langattomia verkkoja" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "Hae WLAN-tukiasemia ja kytkeydy niihin valittua WLAN-laitetta käyttäen.\n" + +#, python-format +msgid "Scanning %s..." +msgstr "Haetaan %s..." + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "Haetaan - %d%% haettu" +msgstr[1] "Haetaan - %d%% haettu " + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "Haku valmis, %d kanava löytyi" +msgstr[1] "Haku valmis, %d kanavaa löytyi" + +msgid "Scanning failed!" +msgstr "Haku epäonnistui" + +msgid "Scanning..." +msgstr "Haetaan..." + +# +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "Hakee oletuskanavalistan satelliittijärjestyksessä käyttäen kytkettyä antennimoottoria" + +# +msgid "Search east" +msgstr "Etsintä itään" + +# +msgid "Search west" +msgstr "Etsintä länteen" + +msgid "Searching" +msgstr "Etsitään" + +msgid "Searching east ..." +msgstr "Etsitään itään ..." + +# +msgid "Searching for available updates. Please wait..." +msgstr "Haetaan saatavilla olevia päivityksiä. Odota..." + +# +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "Etsitään asennettuja tai poistettuja ohjelmapaketteja. Odota..." + +msgid "Searching west ..." +msgstr "Etsitään länteen ..." + +msgid "Second cable of motorized LNB" +msgstr "" + +# +msgid "Secondary DNS" +msgstr "Toissijainen DNS" + +# +msgid "Seek" +msgstr "Etsi" + +# +msgid "Seek backward" +msgstr "Siirry taaksepäin" + +# +msgid "Seek backward (enter time)" +msgstr "Siirry taaksepäin (syötä aika)" + +# +msgid "Seek forward" +msgstr "Siirry eteenpäin" + +# +msgid "Seek forward (enter time)" +msgstr "Siirry eteenpäin (syötä aika)" + +# +msgid "Select" +msgstr "Valitse" + +# +msgid "Select CAId" +msgstr "Valitse CAId" + +# +msgid "Select HDD" +msgstr "Valitse kiintolevy" + +# +msgid "Select a bouquet" +msgstr "Tallennetut ohjelmat" + +# +msgid "Select a movie" +msgstr "Tallennetut ohjelmat" + +# +msgid "Select a network adapter" +msgstr "Valitse verkkosovitin" + +# +msgid "Select a skin" +msgstr "Valitse teema" + +# +msgid "Select a tuner" +msgstr "Valitse viritin" + +# +msgid "Select a wireless network" +msgstr "Valitse WLAN-verkko" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +msgid "Select an image to be downloaded" +msgstr "Valitse ladattava ohjelmistopäivitys" + +# +msgid "Select audio track" +msgstr "Valitse ääniraita" + +# +msgid "Select backup files" +msgstr "Valitse varmuuskopioitavat tiedostot" + +# +msgid "Select backup location" +msgstr "Valitse varmuuskopion sijainti" + +# +msgid "Select channel to record from" +msgstr "Valitse tallennettava kanava" + +msgid "Select copy destination for:" +msgstr "Valitse kohde kopioinnille:" + +msgid "Select default EPG type..." +msgstr "Valitse oletus ohjelmaoppaan tyyppi" + +msgid "Select desired image from feed list" +msgstr "Valitse haluamasi ohjelmistopäivitys feed-luettelosta" + +msgid "Select destination for:" +msgstr "Valitse kohde:" + +msgid "Select files for backup." +msgstr "Valitse varmistettavat tiedostot." + +# +msgid "Select files/folders to backup" +msgstr "Valitse varmistettavat tiedostot/kansiot" + +msgid "Select input device" +msgstr "Valitse syöttölaite" + +msgid "Select input device." +msgstr "Valitse syöttölaite." + +# +msgid "Select interface" +msgstr "Valitse verkkosovitin" + +# +msgid "Select location" +msgstr "Valitse sijainti" + +# +msgid "Select movie" +msgstr "Valitse tallenne" + +# +msgid "Select provider to add..." +msgstr "Valitse lisättävä palveluntarjoaja..." + +# +msgid "Select refresh rate" +msgstr "Valitse virkistystaajuus" + +msgid "Select satellites" +msgstr "" + +# +msgid "Select service to add..." +msgstr "Valitse lisättävä kanava..." + +msgid "Select sort method:" +msgstr "" + +# +msgid "Select target folder" +msgstr "Valitse kohdehakemisto" + +# +msgid "Select the movie path" +msgstr "Valitse tallennehakemisto" + +# +msgid "Select upgrade source" +msgstr "Valitse päivityslähde" + +# +msgid "Select upgrade source to edit." +msgstr "Valitse muokattava päivityslähde." + +# +msgid "Select video input with up/down buttons" +msgstr "Valitse video-sisäänmeno ylös/alas-näppäimillä" + +# +msgid "Select video mode" +msgstr "Valitse video-tila" + +# +msgid "Select wireless network" +msgstr "Valitse WLAN-verkko" + +msgid "Select your provider, and press OK to start the scan" +msgstr "Valitse palveluntarjoaja ja aloita haku painamalla OK" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +# +msgid "Send DiSEqC only on satellite change" +msgstr "Lähetä DiSEqC vain satelliitin vaihdossa" + +# +msgid "Separate titles with a main menu" +msgstr "Erilliset tallenteet ja päävalikko" + +# +msgid "Sequence repeat" +msgstr "Jakson toisto" + +# +msgid "Serbian" +msgstr "Serbia" + +# +msgid "Service" +msgstr "Kanava" + +# +msgid "Service has been added to the favourites." +msgstr "Kanava on lisätty suosikkeihin." + +# +msgid "Service has been added to the selected bouquet." +msgstr "Kanava on lisätty valitulle suosikkilistalle." + +# +msgid "Service info" +msgstr "Kanavatiedot" + +# +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Valittua kanavaa ei löydy.\n" +"(Aikaraja ylittyi Program Map\n" +"Tablea luettaessa.)" + +msgid "Service name" +msgstr "Kanavan nimi" + +# +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Valittua kanavaa ei löydy.\n" +"(Kanavan Service ID:tä ei löydy\n" +"Program Association Tablesta.)" + +msgid "Service reference" +msgstr "Kanavan viite" + +# +msgid "Service scan" +msgstr "Kanavahaku" + +# +msgid "Service searching" +msgstr "Kanavien haku" + +msgid "Service title mode" +msgstr "Palvelun Otsikkotila" + +# +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"Ei kanavaa,\n" +"tarkista virittimen asetukset" + +# +msgid "Services" +msgstr "Kanavat" + +msgid "Set default" +msgstr "" + +# +msgid "Set end time" +msgstr "Aseta loppumisaika" + +msgid "Set fixed" +msgstr "Aseta kiinteäksi" + +msgid "Set fps for external subtitles" +msgstr "Aseta fps teksti-tv tekstitykselle" + +# +msgid "Set interface as default Interface" +msgstr "Määritä sovitin oletussovittimeksi" + +msgid "Set limits" +msgstr "Aseta raja-arvot" + +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "Määritä ohjelman pituuden osoittamisen tyyppi kanavien valintalistassa." + +msgid "Set time window to 1 hour" +msgstr "Aseta aikaikkuna 1 tuntiin" + +msgid "Set time window to 2 hours" +msgstr "Aseta aikaikkuna 2 tuntiin" + +msgid "Set time window to 3 hours" +msgstr "Aseta aikaikkuna 3 tuntiin" + +msgid "Set time window to 4 hours" +msgstr "Aseta aikaikkuna 4 tuntiin" + +msgid "Set time window to 5 hours" +msgstr "Aseta aikaikkuna 5 tuntiin" + +msgid "Set time window to 6 hours" +msgstr "Aseta aikaikkuna 6 tuntiin" + +# +msgid "Set voltage and 22KHz" +msgstr "Aseta jännite ja 22KHz" + +# +msgid "Settings" +msgstr "Asetukset" + +# +msgid "Setup" +msgstr "Asetukset" + +msgid "Setup menu" +msgstr "Asetusvalikko" + +# +msgid "Setup mode" +msgstr "Asetusten laajuus" + +msgid "Setup your positioner" +msgstr "Asenna kääntömoottori" + +msgid "Setup your satellite equipment" +msgstr "Asenna satelliittilaitteesi" + +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "Saako USB-muistiavustaja jatkaa ja kirjoittaa päivityksen %s flash-muistiin?" + +# +msgid "Sharpness" +msgstr "Terävyys" + +msgid "Short filenames" +msgstr "Lyhyet tiedostonimet" + +msgid "Show EIT now/next in infobar" +msgstr "Näytä EIT nyt/seuraava tietopalkissa" + +# +msgid "Show EPG for current channel..." +msgstr "Näytä tietopalkki ohjelman vaihtuessa" + +# +msgid "Show EPG..." +msgstr "Näytä ohjelmaopas..." + +msgid "Show Games show" +msgstr "Show Visailu" + +msgid "Show SNR percentage instead of dB value" +msgstr "Näytä SNR prosentteina dB arvon sijaan" + +# +msgid "Show VCR scart on main menu" +msgstr "Näytä Videonauhurin scart päävalikossa" + +# +msgid "Show WLAN status" +msgstr "Näytä WLAN:in tila" + +msgid "Show animation while busy" +msgstr "Näytä animaatio (rattaat) kun varattu" + +msgid "Show background in radio mode" +msgstr "Näytä taustakuva radiotilassa" + +msgid "Show bouquet selection menu" +msgstr "Näytä valikko suosikkilistojen valinnalle" + +msgid "Show busy indicator when the system is busy." +msgstr "Näytä animaatio(rattaat) kun järjestelmä on varattu." + +msgid "Show channel numbers in channel selection" +msgstr "Näytä kanavanvalinnassa kanavanumerot" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "Näytä salaustyyppi tietopalkissa" + +msgid "Show detailed event info" +msgstr "Näytä laajempi ohjelmatieto" + +# +msgid "Show event details" +msgstr "Näytä ohjelman tarkemmat tiedot" + +msgid "Show event-progress in channel selection" +msgstr "Näytä ohjelman pituus kanavien valintalistassa" + +# +msgid "Show extended description" +msgstr "Näytä laajennettu ohjelmakuvaus" + +# +msgid "Show extensions..." +msgstr "Näytä laajennukset..." + +msgid "Show icon for new/unseen items" +msgstr "Näytä kuvake uusille/katselemattomille" + +# +msgid "Show in extensions menu" +msgstr "Näytä laajennusvalikossa" + +# +msgid "Show info" +msgstr "Näytä tiedot" + +# +msgid "Show info line" +msgstr "Näytä tietopalkki" + +# +msgid "Show infobar on channel change" +msgstr "Näytä tietopalkki kanavaa vaihdettaessa" + +# +msgid "Show infobar on event change" +msgstr "Näytä tietopalkki ohjelman vaihtuessa" + +# +msgid "Show infobar on skip forward/backward" +msgstr "Näytä tietopalkki kelauksien/hyppyjen aikana" + +msgid "Show latest commits on sourceforge" +msgstr "" + +msgid "Show message when recording starts" +msgstr "Näytä ilmoitus tallennuksen alkamisesta" + +msgid "Show movie lengths in movielist" +msgstr "Näytä tallenteen pituus tallenneluettelossa" + +msgid "Show multi channel EPG" +msgstr "Näytä useamman kanavan ohjelmaopas" + +msgid "Show picons in channel list" +msgstr "" + +# +msgid "Show positioner movement" +msgstr "Näytä kuvake kääntömoottorin liikkuessa" + +msgid "Show screensaver" +msgstr "Näytä näytönsäästäjä" + +msgid "Show second infobar" +msgstr "Näytä toinen tietopalkki" + +# +msgid "Show service type icons" +msgstr "Näytä kanavatyypin kuvakkeet" + +# +msgid "Show services beginning with" +msgstr "Näytä kanavat jotka alkavat" + +# +msgid "Show shutdown menu" +msgstr "Näytä sammutusvalikko" + +msgid "Show single service EPG" +msgstr "Näytä yhden kanavan ohjelmaopas" + +msgid "Show status icons in Movielist" +msgstr "Näytä tilakuvakkeet tallenneluettelossa" + +msgid "Show status icons in movie list" +msgstr "Näytä tilakuvakkeet tallenneluettelossa" + +msgid "Show status icons in movielist" +msgstr "Näytä tilakuvakkeet tallenneluettelossa" + +# +msgid "Show tag menu" +msgstr "Näytä avainsanavalikko" + +# +msgid "Show the radio player..." +msgstr "Näytä radio..." + +# +msgid "Show the tv player..." +msgstr "Näytä tv..." + +# +msgid "Show warning when timeshift is stopped" +msgstr "Näytä varoitus kun ajansiirto lopetetaan" + +# +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Näyttää WLAN-yhteyden tilan.\n" + +# +msgid "Shuffle playlist" +msgstr "Arvo soittolista" + +# +msgid "Shutdown" +msgstr "Sammuta" + +msgid "Shutdown when in Standby" +msgstr "Sammuta valmiustilasta" + +msgid "Side by side" +msgstr "Rinnakkain" + +msgid "Signal OK, proceeding" +msgstr "Signaali OK, jatketaan" + +msgid "Signal quality" +msgstr "Signaalin laatu" + +# +msgid "Signal strength:" +msgstr "Signaalinvoimakkuus:" + +# +msgid "Signal: " +msgstr "Signaali:" + +# +msgid "Similar" +msgstr "Samanlaiset" + +# +msgid "Similar broadcasts:" +msgstr "Samanlaiset lähetykset:" + +# +msgid "Simple" +msgstr "Suppea" + +# +msgid "Simple titleset (compatibility for legacy players)" +msgstr "Suppea (yhteensopiva vanhojen soittimien kanssa)" + +# +msgid "Single" +msgstr "Yksi" + +# +msgid "Single EPG" +msgstr "Ohjelmaopas" + +# +msgid "Single satellite" +msgstr "Yksi satelliitti" + +# +msgid "Single step (GOP)" +msgstr "Kuva-kuvalta (GOP)" + +# +msgid "Single transponder" +msgstr "Yksi lähetin" + +msgid "Site latitude" +msgstr "Paikan leveysaste" + +msgid "Site longitude" +msgstr "Paikan pituusaste" + +msgid "Skin" +msgstr "Teema" + +# +msgid "Skins" +msgstr "Teema" + +msgid "Skip empty services" +msgstr "Ohita tyhjät kanavat" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "Ohita internet yhteyden tarkistus (poistaa automaattisen pakettien asennuksen käytöstä)" + +# +msgid "Sleep timer" +msgstr "Uniajastin" + +# +msgid "SleepTimer Configuration" +msgstr "Uniajastimen asetukset" + +# +msgid "Sleeptimer" +msgstr "Uniajastin" + +# +msgid "Slide picture in loop" +msgstr "Kuvien jatkuva toisto" + +# +msgid "Slide show interval (sec.)" +msgstr "Kuvien näyttöaika (sekuntia)" + +# +#, python-format +msgid "Slot %d" +msgstr "Portti %d" + +msgid "Slovak" +msgstr "Slovakia" + +# +msgid "Slovenian" +msgstr "Slovenia" + +# +msgid "Slow" +msgstr "Hidas" + +# +msgid "Slow motion speeds" +msgstr "Hidastusnopeudet" + +# +msgid "Small progress" +msgstr "Käynnissä" + +msgid "Social/Political/Economics" +msgstr "Sosiaali/Politiikka/Talous" + +msgid "SoftCam / CI" +msgstr "SoftCam / CI" + +# +msgid "Softcam type" +msgstr "Softcamin tyyppi" + +# +msgid "Software" +msgstr "Ohjelmisto" + +msgid "Software management" +msgstr "Ohjelmiston hallinta" + +msgid "Software manager setup" +msgstr "Ohjelmiston hallinnan asetukset" + +# +msgid "Software restore" +msgstr "Ohjelmiston palautus" + +# +msgid "Software update" +msgstr "Ohjelmiston päivitys" + +msgid "Softwaremanager information" +msgstr "Ohjelmistonhallinnan tiedot" + +# +msgid "Some plugins are not available:\n" +msgstr "Seuraavat lisäosat eivät ole saatavilla:\n" + +# +#, python-format +msgid "Sorry, %s has not been installed!" +msgstr "%s ei ole asennettu!" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "Pahoittelen, hakemistojen tuhoaminen voidaan tehdä vain roskakorin kautta (toistaiseksi)." + +# +msgid "Sorry, no backups found!" +msgstr "Varmuuskopioita ei löytynyt!" + +# +msgid "Sorry, no details available!" +msgstr "Lisätietoja ei ole saatavilla!" + +# +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"Varmuuskopion kohdehakemisto on kirjoitussuojattu.\n" +"Valitse toinen hakemisto." + +msgid "Sort" +msgstr "Järjestä" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Aakkosjärj." + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort time" +msgstr "Aikajärj." + +# +msgid "Sound" +msgstr "Ääni" + +# +msgid "Sound carrier" +msgstr "Äänikantoaallon taajuus" + +msgid "Source request" +msgstr "Lähteen pyynti" + +# +msgid "South" +msgstr "Etelä" + +# +msgid "Spanish" +msgstr "Espanja" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "Määrittele lopetusaika mihin saakka käyttämättömyysajastinta ei huomioida" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "Määrittele aloitusaika mistä lähtien käyttämättömyysajastinta ei huomioida." + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "Käyttämättömyysajastin pois päältä aikavälillä" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +# +msgid "Split preview mode" +msgstr "Jaettu esikatseluruutu" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "Urheilu" + +# +msgid "Standard" +msgstr "Vakio" + +msgid "Standart list" +msgstr "" + +# +msgid "Standby" +msgstr "Valmiustila" + +# +msgid "Standby / restart" +msgstr "Sammutusvalikko" + +# +msgid "Standby after current event" +msgstr "Aseta valmiustilaan menossa olevan ohjelman jälkeen" + +#, python-format +msgid "Standby fan %d PWM" +msgstr "Valmiustilan tuuletin %d PWM" + +#, python-format +msgid "Standby fan %d voltage" +msgstr "Valmiustilan tuuletin %d jännite" + +# +msgid "Standby in " +msgstr "Valmiustilaan kun kulunut " + +msgid "StandbyLED" +msgstr "" + +# +msgid "Start from the beginning" +msgstr "Aloita alusta" + +msgid "Start offline decode" +msgstr "Aloita offline-purku" + +# +# Suoratallennusikkuna. +msgid "Start recording?" +msgstr "Aloitetaanko tallennus tältä kanavalta?" + +# +msgid "Start test" +msgstr "Aloita testi" + +# +msgid "Start time" +msgstr "Aloitusaika" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "Pois päältä olon aloitusaika" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +# +msgid "Start timeshift" +msgstr "Aloita ajansiirtotallennus" + +msgid "Start with list screen" +msgstr "Käynnistä luettelotilaan" + +# +msgid "Starting on" +msgstr "Alkaen" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +# +msgid "Step east" +msgstr "Askel itään" + +# +msgid "Step west" +msgstr "Askel länteen" + +msgid "Stepped east" +msgstr "Askel itään" + +msgid "Stepped west" +msgstr "Askel länteen" + +# +msgid "Stop" +msgstr "Pysäytä" + +# +msgid "Stop PiP" +msgstr "Sulje PiP-kuva" + +# +msgid "Stop current event and disable coming events" +msgstr "Pysäytä tallennus ja estä tulevat ajastukset" + +# +msgid "Stop current event but not coming events" +msgstr "Pysäytä tallennus, mutta älä estä tulevia ajastuksia" + +# +msgid "Stop entry" +msgstr "Pysäytä" + +# +msgid "Stop playing this movie?" +msgstr "Lopetetaanko tallenteen toistaminen?" + +msgid "Stop recording" +msgstr "Pysäytä tallennus" + +msgid "Stop recording and delete" +msgstr "Lopeta tallennus ja poista" + +msgid "Stop service on return to movie list" +msgstr "" + +# +msgid "Stop test" +msgstr "Lopeta testi" + +msgid "Stop testing plane after # failed transponders" +msgstr "Lopeta testaus # toimimattoman lähettimen jälkeen" + +msgid "Stop testing plane after # successful transponders" +msgstr "Lopeta testaus # toimivan lähettimen jälkeen" + +msgid "Stop timer recording" +msgstr "Pysäytä ajastettu tallennus" + +# +msgid "Stop timeshift" +msgstr "Lopeta ajansiirtotallennus" + +# +msgid "Stop timeshift?" +msgstr "Lopetetaanko ajansiirto?" + +msgid "Stopped" +msgstr "Pysäytetty" + +msgid "Store at index" +msgstr "Tallenna indeksiin" + +# +msgid "Store position" +msgstr "Tallenna sijainti" + +# +msgid "Stored position" +msgstr "Sijainnin muistipaikka" + +msgid "Stream" +msgstr "Streamin pyyntö" + +msgid "Stream request" +msgstr "Streamin pyyntö" + +msgid "Strongest position" +msgstr "Vahvin suunta" + +# +msgid "Subservice list..." +msgstr "Alipalvelulista..." + +# +msgid "Subservices" +msgstr "Alipalvelut" + +msgid "Subtitle Quickmenu" +msgstr "Tekstityksen Pikavalikko" + +msgid "Subtitle alignment" +msgstr "Tekstityksen kohdistus" + +msgid "Subtitle border width" +msgstr "Tekstityksen reunan leveys" + +msgid "Subtitle delay when timing is bad" +msgstr "Tekstityksen viive kun ajoitus on huono" + +msgid "Subtitle delay when timing lacks" +msgstr "Tekstityksen näyttöaika kun poistoajoitus puuttuu" + +msgid "Subtitle font size" +msgstr "Tekstityksen koko" + +msgid "Subtitle language selection 1" +msgstr "Tekstityskielen valinta 1" + +msgid "Subtitle language selection 2" +msgstr "Tekstityskielen valinta 2" + +msgid "Subtitle language selection 3" +msgstr "Tekstityskielen valinta 3" + +msgid "Subtitle language selection 4" +msgstr "Tekstityskielen valinta 4" + +# +msgid "Subtitle position" +msgstr "Tekstityksen sijainti" + +# +msgid "Subtitle selection" +msgstr "Tekstitysvalinta" + +msgid "Subtitle selection..." +msgstr "Tekstityksen valinta..." + +msgid "Subtitle settings" +msgstr "Tekstityksen asetukset" + +# +msgid "Subtitles" +msgstr "Tekstitys" + +# +msgid "Sun" +msgstr "Su" + +# +msgid "Sunday" +msgstr "Sunnuntai" + +# +msgid "Swap PiP and main picture" +msgstr "Vaihda PiP- ja pääkuva" + +# +msgid "Swap services" +msgstr "Vaihda PiP- ja pääkuva keskenään" + +# +msgid "Swedish" +msgstr "Ruotsi" + +msgid "Switch TV to correct input" +msgstr "Vaihda TV oikealle sisäänmenolle" + +# +msgid "Switch between filelist/playlist" +msgstr "Vaihda tiedosto-/soittoluettelon välillä" + +msgid "Switch between normal mode and list mode" +msgstr "Vaihda normaalista luettelotilaan" + +msgid "Switch to HDMI in mode" +msgstr "" + +# +msgid "Switch to filelist" +msgstr "Vaihda tiedostoluetteloon" + +msgid "Switch to next channel" +msgstr "" + +# +msgid "Switch to next channel in history" +msgstr "Vaihda seuraavalle jo katsotulle kanavalle" + +# +msgid "Switch to next sub service" +msgstr "Vaihda seuraavaan alipalveluun" + +# +msgid "Switch to playlist" +msgstr "Vaihda soittolistaan" + +# +msgid "Switch to previous channel" +msgstr "Vaihda edelliselle kanavalle" + +# +msgid "Switch to previous channel in history" +msgstr "Vaihda edelliselle jo katsotulle kanavalle" + +# +msgid "Switch to previous sub service" +msgstr "Vaihda edelliseen alipalveluun" + +msgid "Switchable tuner types:" +msgstr "Vaihdettavat viritintyypit:" + +msgid "Symbol rate" +msgstr "Symbol rate" + +msgid "Symbol rate:" +msgstr "Symbolinopeus:" + +msgid "Sync failure moving back to origin !" +msgstr "Synkronointivirhe, palataan takaisin alkuperäiseen !" + +# +msgid "System" +msgstr "Järjestelmä" + +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "" +"Suomenkielinen käännös: Timo Järvenpää\n" +"timojarvenpaa@hotmail.com\n" +"Päivitys: BoxFreak 14.10.2013\n" +"http://huoltovalikko.keskustelupalstat.com" + +# +msgid "TS file is too large for ISO9660 level 1!" +msgstr "TS-tiedosto on liian suuri ISO9660 1-tasolle!" + +msgid "TSID" +msgstr "TSID" + +msgid "TV physical address report" +msgstr "TV:n fyysisen osoitteen raportti" + +msgid "TXT PID" +msgstr "TXT PID" + +# +msgid "Table of contents for collection" +msgstr "Kokoelman hakemisto" + +# +msgid "Tags" +msgstr "Avainsanat" + +msgid "Teletext subtitle color" +msgstr "Teksti-tv tekstityksen väri" + +msgid "Temperature and fan control" +msgstr "Lämpötilan ja tuulettimen ohjaus" + +# +msgid "Terrestrial" +msgstr "Antennivastaanotto (DVB-T)" + +# +msgid "Terrestrial provider" +msgstr "Antenniverkon palveluntarjoaja" + +# +msgid "Test DiSEqC settings" +msgstr "Testaa DiSEqC-asetukset" + +# +msgid "Test mode" +msgstr "Virityskuvan lähetys" + +msgid "Test the network configuration of your receiver.\n" +msgstr "Testaa vastaanottimesi verkkomääritykset.\n" + +# +msgid "Test type" +msgstr "Testin tyyppi" + +# +msgid "Text color" +msgstr "Tekstin väri" + +msgid "Thai" +msgstr "Thai" + +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"Ohjattu verkkoasennus on päättynyt.\n" +"Jatka painamalla OK-näppäintä." + +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"Kiitos että käytit avustajaa. Vastaanottimesi on nyt valmis käyttöön.\n" +"Paina OK aloittaaksesi käytön." + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "DVD standardi ei tue H.264 (HDTV) videota. Haluatko luoda erikoisformaattisen data DVD:n (jota ei voi soittaa normaaleilla DVD soittimilla) sen sijaan?" + +msgid "The PIN code has been changed successfully." +msgstr "PIN-koodin vaihto onnistui." + +msgid "The PIN codes you entered are different." +msgstr "Syöttämäsi PIN-koodit olivat erilaiset." + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" +"USB-tikusta tehtiin automaattisesti käynnistyvä.\n" +"Voit nyt ladata NFI-tiedoston." + +# +msgid "The backup failed. Please choose a different backup location." +msgstr "Varmuuskopiointi epäonnistui. Valitse toinen varmuuskopiointipaikka." + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" +"Nykyinen beta-ohjelmisto ei välttämättä ole vakaa.\n" +"Katso lisätietoja %s." + +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "Hakemistoon %s ei voida tallentaa.\\Valitse hakemisto johon voidaan tallentaa." + +# +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"Seuraava laite löytyi:\n" +"\n" +"%s\n" +"\n" +"Haluatko tallentaa ohjelmistopäivitysohjelman tälle USB-muistille?" + +# +msgid "The following files were found..." +msgstr "Seuraavat tiedostot löytyi..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "MD5-tarkistus epäonnistui, tiedosto voi olla vioittunut!" + +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"Verkkoavustajaa ei ole asennettu!\n" +"Asenna se." + +# +#, python-format +msgid "The path %s already exists." +msgstr "Hakemisto %s on jo olemassa." + +# +msgid "The pin code you entered is wrong." +msgstr "Syötit virheellisen tunnusluvun." + +# +#, python-format +msgid "The results have been written to %s." +msgstr "Tulokset kirjoitettiin %s." + +# +msgid "The sleep timer has been activated." +msgstr "Uniajastin on kytketty päälle." + +# +msgid "The sleep timer has been disabled." +msgstr "Uniajastin on kytketty pois päältä." + +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"Ohjelmistohallinnan lisäosaa ei ole asennettu!\n" +"Asenna se." + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "Nykyisen beta-ohjelmiston tilaa ei voitu tarkistaa koska %s osoitteeseen ei saatu yhteyttä." + +# +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "Ajastusluettelo (timers.xml) on korruptoitunut eikä sitä voida ladata" + +msgid "The user interface of your receiver is restarting" +msgstr "Vastaanottimesi käyttöliittymä käynnistyy uudelleen" + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" +"Vastaanottimesi käyttöliittymä käynnistyy uudelleen\n" +"johtuen virheestä mytest.py tiedostossa" + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"WLAN-lisäosaa ei ole asennettu!\n" +"Asenna se ja valitse mitä haluat tehdä seuraavaksi." + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"WLAN-lisäosaa ei ole asennettu!\n" +"Asenna se." + +# +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "Avustaja voi kopioida nykyiset asetuksesi. Haluatko varmuuskopioida asetukset?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "Avustaja löysi asetusten varmuuskopion. Haluatko, että vanhat asetukset palautetaan tiedostosta %s?" + +# +msgid "The wizard is finished now." +msgstr "Avustaja on lopettanut. Paina OK." + +msgid "There are at least " +msgstr "Saatavilla ainakin " + +#, python-format +msgid "There are at least %s updates available." +msgstr "Saatavilla vähintään %s päivitystä." + +msgid "There are currently no outstanding actions." +msgstr "Ei suorittamattomia tehtäviä." + +msgid "There are no updates available." +msgstr "Päivityksiä ei ole saatavilla." + +msgid "There is no signal to lock on !" +msgstr "Ei signaalia johon voisi lukittua !" + +# +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"Kiintolevyn osiolla ei välttämättä ole riittävästi tilaa.\n" +"Haluatko varmasti jatkaa?" + +# +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "Tämä DVD-RW levy on jo alustettu - uudelleenalustus tuhoaa levyn kaiken sisällön." + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" +"Tämä plugin luo USB tikun jota voidaan käyttää vastaanottimesi ohjemiston päivittämiseen ilman verkko- tai WLAN-yhteyttä.\n" +"Ensiksi, USB tikku tulee alustaa niin että siitä tulee boottaava.\n" +"Seuraavaksi, NFI ohjelmatiedosto voidaan ladata päivityspalvelimelta ja tallentaa USB tikulle.\n" +"Jos olet jo valmistellut boottaavan USB tikun, liitä se vastaanottimeesi nyt. Muussa tapauksessa liitä USB tikku jonka koko on vähintään 64 MB!" + +# +msgid "This plugin is installed." +msgstr "Tämä lisäosa on asennettu." + +# +msgid "This plugin is not installed." +msgstr "Tätä lisäosaa ei ole asennettu." + +# +msgid "This plugin will be installed." +msgstr "Tämä lisäosa asennetaan." + +# +msgid "This plugin will be removed." +msgstr "Tämä lisäosa poistetaan." + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "Tämä vastaanotin ei osaa purkaa %s striimejä!" + +# +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"Tämä testi tarkistaa määritellyt nimipalvelimet.\n" +"Jos näet \"vahvistamaton\" ilmoituksen:\n" +"- tarkista DHCP, kaapelointi ja Sovittimen asetukset\n" +"- jos määrittelit nimipalvelimet käsin, tarkista arvot \"Nimipalvelimen asetukset\" kohdassa" + +# +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Tämä testi tarkistaa, onko verkkokaapeli kytketty verkkokorttiin.\n" +"Jos näet \"ei kytketty\" ilmoituksen:\n" +"- tarkista, että kaapeli on kytketty\n" +"- tarkista, ettei kaapeli ole vaurioitunut" + +# +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Tämä testi tarkistaa, onko verkkosovittimella toimiva IP-osoite.\n" +"Jos näet \"vahvistamaton\" ilmoituksen:\n" +"- toimivaa IP-osoitetta ei löytynyt\n" +"- tarkista DHCP, kaapeli ja verkkosovittimen asetukset" + +# +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"Tämä testi tarkistaa, onko verkkosovittimelle määritetty automaattinen IP-osoite DHCP:n kautta.\n" +"Jos näet \"ei käytössä\" ilmoituksen:\n" +"- verkkosovitin on määritelty käyttämään kiinteää IP-osoitetta\n" +"- tarkista, että olet syöttänyt oikeat IP-tiedot Sovittimen asetukset -kohdassa.\n" +"Jos näet \"käytössä\" ilmoituksen:\n" +"- tarkista, että sinulla on lähiverkossasi toimiva ja oikein määritelty DCHP-palvelin." + +# +msgid "This test detects your configured LAN adapter." +msgstr "Tämä testi tunnistaa määrittelemäsi verkkosovittimen." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" +"Tämä (uudelleen)laskee kaikki kääntömoottorin sijainnit ja voi poistaa aikaisemmin tallennettuja sijainteja ja hienosäätöjä!\n" +"Haluta varmasti jatkaa?" + +# +msgid "Three" +msgstr "Kolme" + +# +msgid "Threshold" +msgstr "Kynnys" + +# +msgid "Thu" +msgstr "To" + +# +msgid "Thumbnails" +msgstr "Esikats.kuvat" + +# +msgid "Thursday" +msgstr "Torstai" + +# +msgid "Time" +msgstr "Aika" + +msgid "Time scale" +msgstr "Aika-asteikko" + +# +msgid "Timer" +msgstr "Ajastukset" + +msgid "Timer Overview" +msgstr "" + +# +msgid "Timer edit" +msgstr "Ajastuksen muokkaus" + +# +msgid "Timer editor" +msgstr "Ajastusten muokkaus" + +# +# Ajastusikkunan otsikkopalkin teksti +msgid "Timer entry" +msgstr "Ajastettava ohjelma" + +# +msgid "Timer log" +msgstr "Ajastinloki" + +# +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"Ajastusten päällekkäisyys havaittu!\n" +"Tarkista ajastusasetukset!" + +msgid "Timer overview" +msgstr "Ajastukset" + +msgid "Timer recording location" +msgstr "Ajastuksien tallennushakemisto" + +# +msgid "Timer sanity error" +msgstr "Päällekkäinen ajastus" + +# +msgid "Timer selection" +msgstr "Ajastinvalinta" + +# +msgid "Timer selection..." +msgstr "Ajastusvalinta..." + +# +# Asetuksen nimi ajastusikkunassa +msgid "Timer type" +msgstr "Ajastuksen tyyppi" + +# +msgid "Timeshift" +msgstr "Ajansiirto" + +msgid "Timeshift Live" +msgstr "" + +msgid "Timeshift location" +msgstr "Ajansiirron tallennushakemisto" + +# +msgid "Timeshift not possible!" +msgstr "Ajansiirtotallennusta ei voida käyttää." + +# +msgid "Timezone" +msgstr "Aikavyöhyke" + +# +msgid "Title" +msgstr "Otsikko" + +# +msgid "Title properties" +msgstr "Ominaisuudet" + +# +msgid "Titleset mode" +msgstr "Tila" + +msgid "To audio selection" +msgstr "Avaa äänivalinta" + +msgid "To subtitle selection" +msgstr "Avaa tekstitysvalinta" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" +"Päivittääksesi vastaanottimesi, toimi seuraavasti:\n" +"1) Katkaise virta vastaanottimesi takana olevasta katkaisijasta ja laita boottaava USB tikku paikoilleen.\n" +"2) Laita virta takaisin päälle ja paina ALAS näppäintä vastaanottimesi etupaneelissa 10 sekunnin ajan.\n" +"3) Odota käynnistymistä ja seuraa avustajan ohjeita." + +# +msgid "Today" +msgstr "Tänään" + +# +msgid "Toggle a cut mark at the current position" +msgstr "Vaihda leikkausmerkki nykyiseen kohtaan" + +# +msgid "Tone amplitude" +msgstr "22KHz äänenvoimakkuus" + +# +msgid "Tone mode" +msgstr "22KHz-ääni" + +# +msgid "Toneburst" +msgstr "Äänipurske" + +# +msgid "Toneburst A/B" +msgstr "Äänipurske A/B" + +msgid "Top and bottom" +msgstr "Ylä ja ala" + +# +msgid "Track" +msgstr "Raita" + +# +msgid "Translation" +msgstr "Käännös" + +# +msgid "Translation:" +msgstr "Käännös:" + +# +msgid "Translations" +msgstr "Käännökset" + +# +msgid "Transmission mode" +msgstr "Lähetystapa" + +# +msgid "Transponder" +msgstr "Lähetin" + +# +msgid "Transponder type" +msgstr "Lähettimen tyyppi" + +msgid "Trash can" +msgstr "Roskakori" + +# +msgid "Tries left:" +msgstr "Yrityksiä jäljellä:" + +# +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Haetaan kaapeliverkon lähetystaajuuksia... odota..." + +# +msgid "Trying to download a new packetlist. Please wait..." +msgstr "Ladataan uusinta IPKG-ohjelmapakettiluetteloa. Odota..." + +# +msgid "Tue" +msgstr "Ti" + +# +msgid "Tuesday" +msgstr "Tiistai" + +# +msgid "Tune" +msgstr "Viritys" + +msgid "Tune and focus" +msgstr "Viritä ja hienosäädä" + +# +msgid "Tune failed!" +msgstr "Viritys epäonnistui!" + +# +msgid "Tuner" +msgstr "Viritin" + +# +msgid "Tuner configuration" +msgstr "Virittimien asetukset" + +msgid "Tuner is not supported" +msgstr "" + +# +msgid "Tuner slot" +msgstr "Viritinpaikka" + +# +msgid "Tuner status" +msgstr "Virittimen tila" + +# +#, python-format +msgid "Tuner status %s" +msgstr "Virittimen tila %s" + +msgid "Tuner type" +msgstr "Virittimen tyyppi" + +# +msgid "Turkish" +msgstr "Turkki" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +# +msgid "Two" +msgstr "Kaksi" + +# +msgid "Type" +msgstr "Tyyppi" + +# +msgid "Type of scan" +msgstr "Hakutapa" + +# +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "USALS-kalibrointi" + +# +msgid "USB stick" +msgstr "USB-muisti" + +# +msgid "USB stick wizard" +msgstr "USB-muistiavustaja" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Automaattinen päivitys käynnissä\n" +"Odota kunnes vastaanotin käynnistyy uudelleen\n" +"Tämä voi kestää muutaman minuutin" + +# +msgid "Undo install" +msgstr "Kumoa asennus" + +# +msgid "Undo uninstall" +msgstr "Kumoa as.poisto" + +msgid "Unencrypted" +msgstr "Salaamaton" + +msgid "UnhandledKey" +msgstr "TuntematonNäppäin" + +msgid "Unicable" +msgstr "Unicable" + +msgid "Unicable LNB" +msgstr "Unicable LNB" + +msgid "Unicable Martix" +msgstr "Unicable Matrix" + +# +msgid "Uninstall" +msgstr "Poista asennus" + +# +msgid "Universal LNB" +msgstr "Universaali LNB" + +msgid "Unknown" +msgstr "Tuntematon" + +msgid "Unmount" +msgstr "Poista liitos" + +# +msgid "Unsupported" +msgstr "Ei tuettu" + +# +msgid "Update" +msgstr "Päivitä" + +msgid "Update and ask to reboot" +msgstr "Päivitä ja kysy uudelleenkäynnistystä" + +msgid "Update and reboot (recommended)" +msgstr "Päivitä ja uudelleenkäynnistä (suositeltava)" + +# +msgid "Update channel list only" +msgstr "Päivitä ainoastaan kanavalista" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "Päivitys valmis, %d paketti asennettiin." +msgstr[1] "Päivitys valmis, %d pakettia asennettiin." + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "Päivitys asennettu. Haluatko uudelleenkäynnistää vastaanottimesi?" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "Päivitys epäonnistui. Vastaanottimellasi ei ole toimivaa internet yhteyttä." + +msgid "Update has completed." +msgstr "Päivitys on valmis." + +msgid "Updatefeed not available." +msgstr "Päivityslähde ei ole saatavilla." + +msgid "Updating software catalog" +msgstr "Päivitetään ohjelmistoluetteloa" + +# +msgid "Upgrading" +msgstr "Päivitetään" + +# +msgid "Use" +msgstr "Käytä" + +# +msgid "Use DHCP" +msgstr "Käytä DHCP:tä" + +msgid "Use EIT EPG information when it is available." +msgstr "Käytä EIT ohjelmaoppaan tietoja, milloin saatavilla." + +msgid "Use FreeSat EPG information when it is available." +msgstr "Käytä FreeSat ohjelmaoppaan tietoja, milloin saatavilla." + +msgid "Use MHW EPG information when it is available." +msgstr "Käytä MHW ohjelmaoppaan tietoja, milloin saatavilla." + +msgid "Use Netmed EPG information when it is available." +msgstr "Käytä Netmed ohjelmaoppaan tietoja, milloin saatavilla." + +msgid "Use TV remote control" +msgstr "Käytä TV kauko-ohjausta" + +# +msgid "Use USALS for this sat" +msgstr "Käytä USALS:ia tälle satelliitille" + +msgid "Use ViaSat EPG information when it is available." +msgstr "Käytä ViaSat ohjelmaoppaan tietoja, milloin saatavilla." + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +# +msgid "Use a gateway" +msgstr "Käytä yhdyskäytävää" + +msgid "Use fastscan channel names" +msgstr "Käytä pikahaun kanavanimiä" + +msgid "Use fastscan channel numbering" +msgstr "Käytä pikahaun kanavanumeroita" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "Käytä joka hakemistolle yksilöllisiä asetuksia" + +# +msgid "Use interface" +msgstr "Sovitin käytössä" + +msgid "Use official channel numbering" +msgstr "Käytä virallista kanavanumerointia" + +msgid "Use original DVB subtitle position" +msgstr "Käytä alkuperäisen DVB-tekstityksen paikkaa" + +msgid "Use original teletext position" +msgstr "Käytä alkuperäistä teksti-tv tekstin paikkaa " + +# +msgid "Use power measurement" +msgstr "Käytä virran mittausta" + +msgid "Use the network wizard to configure selected network adapter" +msgstr "Muokkaa valitun verkkosovittimen asetuksia verkkoavustajan opastamana" + +# +msgid "Use the network wizard to configure your network\n" +msgstr "Muokkaa lähiverkon asetuksia verkkoavustajan opastamana\n" + +# +# Ohjatun asennuksen (Start Wizard) toinen ruutu. Teksti on rivitetty +# tilaansa käsin. Hyödyksi käytetään Unicode-nuolisymboleja. +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "" +"Valitse haluamasi vaihtoehto\n" +"kaukosäätimen nuolinäppäimillä\n" +"(▲▼).\n" +"\n" +"Hyväksy valinta sen jälkeen\n" +"OK-näppäimellä." + +# +# Ohjatun asennuksen (Start Wizard) kakkosruudun valintateksti. +# Alkutekstin "basic features" ei tarvinne suomennetussa versiossa +# erillistä mainintaa: asia käy samalta ruudulta ilmi muutenkin, +# ja tekstiä on muuten vaikea saada sopimaan ruudulle luontevasti. +msgid "Use the wizard to set up basic features" +msgstr "Käytä ohjattua asennusta perusasetuksiin" + +msgid "Use these input device settings?" +msgstr "Käytetäänkö näitä syöttölaitteen asetuksia?" + +msgid "Use these settings?" +msgstr "Käytä näitä asetuksia?" + +# +msgid "Use this video enhancement settings?" +msgstr "Käytä näitä kuvanparannuksen asetuksia?" + +msgid "Use trash can in movielist" +msgstr "Käytä roskakoria tallenneluettelossa" + +# +msgid "Used service scan type" +msgstr "Käytetty kanavahakutyyppi" + +msgid "User - bouquets" +msgstr "Käyttäjä - suosikit" + +# +msgid "User defined" +msgstr "Käyttäjän määrittelemä" + +# +msgid "User defined transponder" +msgstr "Käyttäjän määrittelemä lähetin" + +msgid "User interface" +msgstr "Käyttöliittymä" + +# +msgid "Username" +msgstr "Käyttäjänimi" + +#, python-format +msgid "Using LNB %d" +msgstr "Käytetään LNB %d:tä" + +msgid "Using fixed address" +msgstr "Käytetään kiinteää osoitetta" + +#, python-format +msgid "Using tuner %s" +msgstr "Käytetään viritintä %s" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "Yleensä kun tekstityksen kieli on sama kuin äänen kieli, tekstityksiä ei näytetä. Kun tämä optio on päällä tekstitys näytetään myös silloin." + +# +# Päävalikon VCR-SCART-toiminnon nimi +msgid "VCR scart" +msgstr "SCART-läpivienti" + +msgid "VMGM (intro trailer)" +msgstr "VMGM (intro trailer)" + +# +msgid "Vertical" +msgstr "Vertikaali" + +msgid "Vertical turning speed" +msgstr "Pystysuuntainen kääntymisnopeus" + +msgid "Video PID" +msgstr "Video PID" + +# +msgid "Video enhancement preview" +msgstr "Kuvanparannuksen esikatselu" + +msgid "Video enhancement settings" +msgstr "Kuvasäädöt" + +msgid "Video enhancement setup" +msgstr "Kuvansäätöjen asetukset" + +msgid "Video fine tuning" +msgstr "TV-kuvan hienosäätö" + +# +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Video-sisäänmenon valinta\n" +"\n" +"Paina OK jos näet tämän ruudun TV:ssä (tai valitse TV:stä toinen sisäänmeno)\n" +"\n" +"Seuraavaa sisäänmenoa tunnistetaan automaattisesti 20 sekunnin kuluttua." + +# +msgid "Video mode selection." +msgstr "Video-tilan valinta." + +# +msgid "Video output" +msgstr "Video-ulostulo" + +# +msgid "Video setup" +msgstr "Video-asetukset" + +# +msgid "Video wizard" +msgstr "Video-avustaja" + +# +#, python-format +msgid "Video: %s fps" +msgstr "Video: %s fps" + +msgid "VideoMode" +msgstr "Kuvatila" + +msgid "Videocodec" +msgstr "Videokoodekki" + +msgid "Videoformat" +msgstr "Videoformaatti" + +msgid "Videosize" +msgstr "Videon koko" + +msgid "View Rass interactive..." +msgstr "Näytä Rass interactive..." + +msgid "View details" +msgstr "Lisätiedot" + +# +msgid "View list of available " +msgstr "Näytä saatavilla olevat" + +# +msgid "View list of available CommonInterface extensions" +msgstr "Näytä saatavilla olevat CI-laajennukset" + +# +msgid "View list of available EPG extensions." +msgstr "Näytä saatavilla olevat EPG-laajennukset" + +msgid "View list of available Satellite equipment extensions." +msgstr "Näytä saatavilla olevat satelliittilaitteistojen laajennukset" + +# +msgid "View list of available communication extensions." +msgstr "Näytä saatavilla olevat tietoliikennelaajennukset" + +# +msgid "View list of available default settings" +msgstr "Näytä saatavilla olevat oletusasetukset" + +msgid "View list of available display and userinterface extensions." +msgstr "Näytä saatavilla olevat näyttö- ja käyttöliittymälaajennukset." + +# +msgid "View list of available multimedia extensions." +msgstr "Näytä saatavilla olevat multimedia-laajennukset" + +# +msgid "View list of available networking extensions" +msgstr "Näytä saatavilla olevat verkkolaajennukset" + +# +msgid "View list of available recording extensions" +msgstr "Näytä saatavilla olevat tallennuslaajennukset" + +# +msgid "View list of available skins" +msgstr "Näytä saatavilla olevat teemat" + +# +msgid "View list of available software extensions" +msgstr "Näytä saatavilla olevat ohjelmistolaajennukset" + +# +msgid "View list of available system extensions" +msgstr "Näytä saatavilla olevat järjestelmälaajennukset" + +# +msgid "View photos..." +msgstr "Katso kuvia..." + +# +msgid "View teletext..." +msgstr "Näytä teksti-tv..." + +# +msgid "View video CD..." +msgstr "Katso Video-CD..." + +# +msgid "Virtual keyboard" +msgstr "Virtuaalinen näppäimistö" + +# +msgid "Voltage mode" +msgstr "13/18V-jännite" + +# +msgid "Volume" +msgstr "Äänenvoimakkuus" + +# +msgid "W" +msgstr "W" + +# +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "WLAN-yhteys" + +# +msgid "WPA" +msgstr "WPA" + +# +msgid "WPA or WPA2" +msgstr "WPA tai WPA2" + +# +msgid "WPA2" +msgstr "WPA2" + +# +msgid "WSS on 4:3" +msgstr "WSS-kuvasuhdesignaali" + +# +msgid "Waiting" +msgstr "Odottaa" + +msgid "Waiting for mount" +msgstr "Odotetaan liittämistä" + +msgid "Waiting for partition" +msgstr "Odotetaan osiointia" + +msgid "Wakeup" +msgstr "Käynnisty" + +msgid "Wakeup TV from standby" +msgstr "Käynnistä TV valmiustilasta" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "Käynnistä vastaanotin valmiustilasta" + +msgid "Wakeup signal from TV" +msgstr "Käynnisty TV-signaalista" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "Varoitus: ei LNB:tä, käytetään tehdasasetuksia." + +# +msgid "Watch movies..." +msgstr "Toista tallenteet..." + +# +msgid "Watch recordings..." +msgstr "Tallennetaan..." + +# +msgid "Wed" +msgstr "Ke" + +# +msgid "Wednesday" +msgstr "Keskiviikko" + +# +msgid "Weekday" +msgstr "Viikonpäivä" + +msgid "Weighted position" +msgstr "Painotettu sijainti" + +# +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"Tervetuloa leikkauskohtien muokkaukseen.\n" +"\n" +"Hae kohta, josta haluat aloittaa poisleikkauksen. Paina OK-näppäintä ja valitse 'Aloita leikkaus'.\n" +"\n" +"Hae seuraavaksi kohta, johon haluat lopettaa leikkauksen. Paina OK-näppäintä ja valitse 'Lopeta leikkaus'." + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "Tervetuloa ohjelmiston päivitysavustajaan. Avustaja ohjaa sinua vastaanottimesi ohjelmiston päivityksessä tarjoten nykyisten asetusten varmuuskopiointi mahdollisuuden ja lyhyen selityksen siitä kuinka päivittää vastaanottimesi ohjelmisto." + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" +"Tervetuloa.\n" +"\n" +"Jos haluat kytkeä vastaanottimesi Internettiin tämä avustaja ohjaa sinua perus verkkoasetusten teossa vastaanottimeesi.\n" +"\n" +"Paina OK näppäintä aloittaaksesi verkkomäärityksien teon." + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" +"Tervetuloa.\n" +"\n" +"Tämä avustaja ohjaa sinua perus asetusten teossa vastaanottimeesi.\n" +"Paina OK nappia kaukosäätimessäsi siirtyäksesi seuraavaan vaiheeseen." + +# +msgid "Welcome..." +msgstr "Tervetuloa..." + +# +msgid "West" +msgstr "Länsi" + +msgid "West limit set" +msgstr "Lännen raja-arvo asetettu" + +# +# Ohjatun asennuksen (Start Wizard) kutosruudun ohjeteksti +# Alkukielinen teksti on tilanteeseen nähden aika pösilö. +msgid "What do you want to scan?" +msgstr "Kanavahaun lisäasetukset:" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "Kun päällä, PiP voidaan sulkea exit-napilla." + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "Kun päällä, voit määritellä aikaikkunan milloin käyttämättömyysajastin on pois päältä. Käytön tunnistaminen on kuitenkin päällä, vain aikakatkaisua ei tehdä." + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "Kun päällä, AIT tiedot lähetetään http streameissä. Tämä mahdollistaa että vastaanottaja voi käyttää HbbTV:tä." + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "Kun päällä, ECM tiedot lähetetään http streameissä. Tämä mahdollistaa että vastaanottaja voi purkaa salauksen." + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "Kun päällä, EIT tiedot lähetetään http streameissä. Tämä mahdollistaa että vastaanottaja voi käyttää ohjelmaopasta." + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "Kun päällä, näytetään viesti-ikkuna kun tallenne loppuu ja seuraava alkaa." + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "Kun päällä, näytetään viesti kun nauhoitus alkaa." + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "Kun päällä, radion taustakuva näytetään radiokanavaa kuunneltaessa." + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "Kun päällä, nauhoitus saa keskeyttää TV:n katselun, kun vapaita virittimiä ei ole saatavilla." + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "Kun päällä, näytetään varoitus ja käyttäjällä on mahdollisuus pysäyttää tai jatkaa ajansiirtoa." + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "Kun päällä, suosikkilistojen kanavanumerointi alkaa joka listassa alusta '1':destä." + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "Kun päällä, lähteen 4:3 kuvasuhteen kuva venytetään koko näytölle." + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "Kun päällä, siirrytään kanavanvaihdolla suosikkilistan viimeiseltä kanavalta eteenpäin seuraavaan suosikkilistaan." + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "Kun päällä, poistetut tallenteet siirretään roskakoriin, sen sijaan että ne tuhottaisiin välittömästi." + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "Kun päällä, näytetään EIT:n nyt/seuraava ohjelmatieto tietopalkissa. Kun pois päältä, näytetään nyt/seuraava ohjelmatieto ohjelmaoppaan välimuistista sen sijaan." + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "Kun päällä, salaustieto näytetään tietopalkissa (mikäli teema tukee tätä)." + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "Kun päällä, CI-moduuliin liittyviä virheilmoituksia ei näytetä." + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "Kun päällä, kanavanvaihtoon liittyviä virhe ilmoituksia ei näytetä." + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "Kun päällä, teksti-tv pohjaiset tekstitykset näytetään aina tallennetta toistettaessa." + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "Kun päällä, DVB-tekstitystä suositaan teksti-tv pohjaisen tekstityksen sijaan, kun molemmat ovat saatavilla." + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "Kun päällä, DVB-tekstitys näytetään vaakasuunnassa keskitetysti. " + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "Kun päällä, DVB-tekstitys näytetään alkuperäisellä paikallaan." + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "Kun päällä, DVB-tekstitys näytetään keltaisena alkuperäisen värin sijaan." + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "Kun päällä, http striimien salaus puretaan palvelimen päässä. Vastaanottajan ei tarvitse tehdä salauksenpurkua." + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "Kun päällä, on mahdollista poistua tallenteista exit-napilla." + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "Kun päällä, mitataan virrankulutusta että voidaan havaita kun kääntömoottori pysähtyy (jos viritin tukee tätä)." + +msgid "When enabled, number markers will be hiden." +msgstr "Kun päällä, suosikkilistan väliotsikot joilla on kanavanumero piilotetaan." + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "Kun päällä, kanavat voidaan ryhmitellä useisiin suosikkilistoihin." + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "Kun päällä, näytä kanavanvalinnassa kanavanumerot" + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "Kun päällä, kuulovammaisten tekstitystä voidaan käyttää." + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "Kun päällä, kuulovammaisten tekstitystä suositaan tavallisen tekstityksen sijaan, kun molemmat ovat saatavilla." + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "Kun päällä, teksti-tv:n sivut ladataan muistiin ja ne ovat nopeammin käytettävissä." + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "Kun päällä, teksti-tv pohjaiset tekstitykset näytetään alkuperäisellä paikallaan." + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "Kun päällä, Videonauhurin scart vaihtoehto näytetään päävalikossa." + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "Kun päällä, kanavien valintalista on piilossa kun kuunnellaan radiokanavaa." + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "Kun päällä, tietopalkki näytetään kun uusi ohjelma alkaa." + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "Kun päällä, tietopalkki näytetään kanavaa vaihdettaessa." + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "Kun päällä, tietopalkki näytetään kun hypitään eteen/taakseppäin tiedostoa toistettaessa." + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "Kun päällä, tallenteiden pituus näytetään tallenneluettelossa (tämä voi aiheuttaa tallenneluettelon latausajan pitenemisen)." + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "Kun päällä, alkuperäisessä teksti-tv pohjaisessa tekstityksessä olevat rivinvaihdot poistetaan." + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "Kun päällä, vastaanotin käyttää kanavalle aiemmin valitsemaasi ääniraitaa automaattisesti." + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "Kun päällä, vastaanotin käyttää kanavalle aiemmin valitsemaasi tekstitystä automaattisesti." + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "Kun päällä, vastaanotin ei enää monitoroi viritettyä lähetintä mahdollisten muutosten varalta. Älä käytä tätä optiota ellet tiedä mitä olet tekemässä." + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "Kun päällä, vastaanotin käyttää AC3 ääniraitaa (milloin saatavilla)." + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "Kun päällä, ajansiirto alkaa automaattisesti taustalla määritellyn ajan jälkeen." + +# +msgid "When enabled, use DHCP for the IP configuration." +msgstr "Kun päällä, käytä DHCP:tä IP-osoitteen saamiseksi." + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "Kun päällä, vastaanotin tunnistaa signaalin VCR SCART liitännästä." + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "Kun arvo ei ole nolla, tallennus alkaa aiemmin kuin ohjelmaoppaassa oleva aloitusaika." + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "Kun arvo ei ole nolla, tallennus päättyy myöhemmin kuin ohjelmaoppaassa oleva lopetusaika." + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "Kun lähteen kuvasuhde on 16:9, valitse skaalataanko vai venytetäänkö kuvaa näytölle. " + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "Kun lähteen kuvasuhde on 4:3, valitse skaalataanko vai venytetäänkö kuvaa näytölle. " + +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"Jos palautat tehdasasetukset, häviää kaikki tekemäsi omat asetukset\n" +"(sisältäen suosikkilistat, kanavat, satelliitit ...)\n" +"Tehdasasetusten palautuksen jälkeen vastaanotin käynnistyy automaattisesti uudelleen!\n" +"\n" +"Haluatko palauttaa tehdasasetukset?" + +# +msgid "Where do you want to backup your settings?" +msgstr "Minne haluat varmuuskopioida asetukset?" + +# +msgid "Where to save temporary timeshift recordings?" +msgstr "Minne ajansiirron väliaikainen tiedosto tallennetaan?" + +# +msgid "Wireless LAN" +msgstr "WLAN-verkko" + +# +msgid "Wireless network" +msgstr "Langaton verkko" + +# +msgid "Wireless network configuration..." +msgstr "Langattoman verkon asetukset..." + +msgid "Wireless network connection setup" +msgstr "WLAN-verkon asetukset" + +msgid "Wireless network connection setup." +msgstr "WLAN-verkon asetukset." + +msgid "Wireless network state" +msgstr "WLAN-verkon tila" + +msgid "With popup" +msgstr "Ponnahdusikkunalla" + +msgid "Without popup" +msgstr "Ilman ponnahdusikkunaa" + +msgid "Would you like to install a softcam?" +msgstr "Haluatko asentaa softcam:in?" + +# +msgid "Write error while recording. Disk full?\n" +msgstr "Kirjoitusvirhe tallennuksessa. Levy täynnä?\n" + +# +msgid "Write failed!" +msgstr "Kirjoitus epäonnistui!" + +# +msgid "YPbPr" +msgstr "Komponentti (YPbPr)" + +# +msgid "Year" +msgstr "Vuosi" + +msgid "Yellow DVB subtitles" +msgstr "Keltainen DVB-tekstitys" + +# +msgid "Yes" +msgstr "Kyllä" + +msgid "Yes and save" +msgstr "Kyllä ja tallenna" + +# +msgid "Yes and save in movie dir" +msgstr "Kyllä ja tallenna tallennehakemistoon" + +msgid "Yes to all" +msgstr "Kyllä kaikkiin" + +msgid "Yes, always" +msgstr "Kyllä, aina" + +# +msgid "Yes, and delete this movie" +msgstr "Kyllä ja poista tämä tallenne" + +# +msgid "Yes, backup my settings!" +msgstr "Kyllä, varmuuskopioi asetukset!" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +# +msgid "Yes, do a manual scan now" +msgstr "Kyllä, tee manuaalihaku nyt" + +# +msgid "Yes, do an automatic scan now" +msgstr "Kyllä, tee automaattihaku nyt" + +# +msgid "Yes, do another manual scan now" +msgstr "Kyllä, tee toinen manuaalihaku nyt" + +# +msgid "Yes, perform a shutdown now." +msgstr "Kyllä, sammuta nyt." + +# +msgid "Yes, restore the settings now" +msgstr "Kyllä, palauta asetukset nyt" + +# +msgid "Yes, returning to movie list" +msgstr "Kyllä, palataan tallenneluetteloon" + +msgid "Yesterday" +msgstr "Eilen" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" +"Sinulla on jo kanavalista asennettu,\n" +"haluatko poistaa\n" +"\"%s\"?" + +# +msgid "You can cancel the installation." +msgstr "Voi keskeyttää asennuksen." + +# +msgid "You can cancel the removal." +msgstr "Voit keskeyttää poiston." + +msgid "You can continue watching TV etc. while this is running." +msgstr "Voit jatkaa TV:n katselua sillä aikaa kun tätä suoritetaan" + +# +msgid "You can install this plugin." +msgstr "Voit asentaa tämän lisäosan." + +msgid "You can only burn receiver recordings!" +msgstr "Sinä voit polttaa ainoastaan vastaanottimesi nauhoituksia!" + +# +msgid "You can remove this plugin." +msgstr "Voit poistaa tämän lisäosan." + +# +msgid "You cannot delete this!" +msgstr "Et voi poistaa tätä!" + +msgid "You didn't select a channel to record from." +msgstr "Et valinnut tallennuskanavaa." + +# +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "Valitsit asetusten varmuuskopioinnin. Aloita painamalla OK-näppäintä." + +# +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "Olet valinnut .NFI-päivitysohjelman asennuksen USB-muistille. Tämä toiminto osioi USB-muistin ja tuhoaa siltä kaikki tiedostot." + +# +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "Valitsit asetusten palautuksen. Enigma2 käynnistyy uudelleen palautuksen jälkeen. Aloita painamalla OK-näppäintä." + +# +#, python-format +msgid "You have to wait %s!" +msgstr "Sinun täytyy odottaa %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" +"Tarvitset PC:ltä yhteyden vastaanottimeesi. Jos tarvitset lisäohjeita, vieraile verkkosivulla http://www.dm7025.de.\n" +"Vastaanottimesi pysäytetään nyt. Kun olet suorittanut päivityksen verkkosivun päivitysohjeen mukaan, vastaanottimesi uusi ohjelmisto kysyy sinulta asetusten palauttamista." + +msgid "You system does not support ext4" +msgstr "Järjetelmä ei tue ext4-tiedostojärjestelmää" + +# +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "Varmuuskopiointi onnistui. Päivitys jatkuu eteenpäin." + +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "Tallenteet eivät mahdu yksipuoliselle DVD:lle, tarvitset tyhjän dual layer DVD-levyn." + +msgid "Your current collection will get lost!" +msgstr "Nykyinen kokoelma häviää!" + +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"Etuprosessorin ohjelmisto on päivitettävä.\n" +"Paina OK aloittaaksesi päivityksen." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Etuprosessorin ohjelmisto päivitetään.\n" +"Odota kunnes viritin käynnistyy uudellee\n" +"Tämä saattaa kestää muutaman minuutin" + +# +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"Lähiverkkoyhteys ei toimi!\n" +"Valitse mitä haluat tehdä seuraavaksi." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "Internet yhteytesi toimii (ip: %s)" + +# +msgid "Your network configuration has been activated." +msgstr "Verkkoasetukset on aktivoitu." + +msgid "Your receiver does not have an internet connection" +msgstr "Vastaanottimellasi ei ole internet yhteyttä" + +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"Vastaanottimesi on nyt valmis käyttöön.\n" +"\n" +"Internet yhteytesi toimii.\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Vastaanottimesi on valmiina käyttöön.\n" +"\n" +"Internet yhteytesi toimii nyt.\n" +"\n" +"Paina OK jatkaaksesi." + +msgid "Your receiver is rebooting" +msgstr "Vastaanotin käynnistyy uudelleen" + +msgid "Your receiver is shutting down" +msgstr "Vastaanotin sammutetaan" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "Vastaanotintasi sammutetaan. Odota..." + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "Vastaanottimesi saattaa olla nyt poissa käytöstä. Lue käsikirjasta lisäohjeita ennenkuin uudelleenkäynnistät vastaanottimesi." + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "Uniajastin laittaa vastaanottimesi valmiustilaan." + +msgid "Your receiver will got to standby due to inactivity." +msgstr "Käyttämättömyysajastin laittaa vastaanottimesi valmiustilaan." + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "Vastaanottimesi uudelleenkäynnistyy kun painat OK näppäintä kaukosäätimessäsi." + +# +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"WLAN-yhteyttä ei voitu käynnistää!\n" +"Oletko kytkenyt USB WLAN-tikun?\n" +"\n" +"Valitse mitä haluat tehdä seuraavaksi." + +msgid "Zap" +msgstr "Kanavanvaihto" + +msgid "Zap back to previously tuned service?" +msgstr "Palataanko aikaisemmalle kanavalle?" + +msgid "Zap back to service before positioner setup?" +msgstr "" +"Vaihdetaanko takaisin kanavalle, jota katsottiin\n" +"ennen moottoriasetuksien muutosta?" + +msgid "Zap back to service before tuner setup?" +msgstr "" +"Vaihdetaanko takaisin kanavalle, jota katsottiin\n" +"ennen viritinasetuksien muutosta?" + +msgid "Zap focus to Picture in Picture" +msgstr "Kanavavaihto PiP-kuvassa" + +msgid "Zap focus to main screen" +msgstr "Kanavavaihto pääkuvassa" + +msgid "Zap mode" +msgstr "Kanavanvaihdon toiminta" + +msgid "Zap to selected channel" +msgstr "Vaihda valitulle kanavalle" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "Katso valittua kanavaa tai näytä laajempi ohjelmatieto (riippuen asetuksistasi)" + +# +msgid "[alternative edit]" +msgstr "[Vaihtoehtojen lisäys ja poisto]" + +# +msgid "[bouquet edit]" +msgstr "[Kanavalistojen lisäys ja poisto]" + +# +msgid "[favourite edit]" +msgstr "[Suosikkien lisäys ja poisto]" + +# +msgid "[move mode]" +msgstr "[Suosikkien järjestely]" + +msgid "a gui to assign services/providers to common interface modules" +msgstr "Käyttöliittymä kanavien/palvelutarjoajien määrittämiseen CI-moduuleille" + +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "Käyttöliittymä kanavien/palvelutarjoajien/CAId:en määrittämiseen CI-moduuleille" + +# +msgid "abort alternatives edit" +msgstr "Peruuta muutokset ja poistu" + +# +msgid "abort bouquet edit" +msgstr "Peruuta muutokset ja poistu" + +# +msgid "abort favourites edit" +msgstr "Peruuta muutokset ja poistu" + +# +msgid "about to start" +msgstr "alkaa juuri" + +msgid "activate network adapter configuration" +msgstr "aktivoi verkkosovittimen asetukset" + +# +msgid "add alternatives" +msgstr "Vaihtoehtoisten kanavien lisäys" + +# +msgid "add bookmark" +msgstr "lisää kirjanmerkki" + +# +msgid "add bouquet" +msgstr "Lisää uusi suosikkilista" + +# +msgid "add marker" +msgstr "Lisää väliotsikko" + +# +msgid "add service to bouquet" +msgstr "Lisää kanava suosikkilistalle" + +# +msgid "add service to favourites" +msgstr "Lisää kanava suosikkeihin" + +# +msgid "add to parental protection" +msgstr "lisää lapsilukkoon" + +msgid "adult movie/drama" +msgstr "aikuisviihde" + +# +msgid "advanced" +msgstr "Laaja" + +msgid "adventure/western/war" +msgstr "seikkailu/länkkäri/sota" + +msgid "advertisement/shopping" +msgstr "mainos/ostos" + +msgid "after " +msgstr "Kun kulunut " + +# +msgid "alphabetic" +msgstr "Aakkosjärjestys (hakemistot ensin)" + +msgid "alphabetic reverse" +msgstr "Aakkosittain käänteinen (hakemistot ensin)" + +# +msgid "alternative" +msgstr "Vaihtoehtoinen" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "taide/kulttuuri (ilman musiikkia, yleinen)" + +msgid "arts/culture magazine" +msgstr "taide/kulttuuri makasiini" + +msgid "athletics" +msgstr "yleisurheilu" + +# +msgid "audio tracks" +msgstr "ääniraidat" + +# +msgid "auto" +msgstr "autom." + +# +msgid "automatic" +msgstr "automaattinen" + +# +# Tämä teksti näytetään monessa valikossa EXIT-napin +# kaltaisena poistumistoimintona. +msgid "back" +msgstr "takaisin" + +# +msgid "background image" +msgstr "taustakuva" + +msgid "ballet" +msgstr "baletti" + +#, python-format +msgid "bc%s" +msgstr "bc%s" + +# +msgid "better" +msgstr "parempi" + +# +msgid "black" +msgstr "musta" + +msgid "black & white" +msgstr "mustavalkoinen" + +# +msgid "blacklist" +msgstr "kielletyt" + +# +msgid "blue" +msgstr "sininen" + +msgid "broadcasting/press" +msgstr "lähetys/lehdistö" + +# +msgid "by date" +msgstr "Aikajärjestys" + +msgid "cartoon/puppets" +msgstr "piirretty/nukke" + +msgid "center" +msgstr "keskellä" + +msgid "centered" +msgstr "Keskitetty" + +msgid "centered, wrapped" +msgstr "Keskitetty, tiivistetty" + +# +msgid "chapters" +msgstr "kappaleet" + +msgid "childrens's/youth program (general)" +msgstr "lasten/nuorten ohjelma (yleinen)" + +# +msgid "circular left" +msgstr "kiertopolarisaatio vasen" + +# +msgid "circular right" +msgstr "kiertopolarisaatio oikea" + +msgid "comedy" +msgstr "komedia" + +# +msgid "complex" +msgstr "monimutkainen" + +# +msgid "config menu" +msgstr "asetusvalikko" + +# +msgid "confirmed" +msgstr "Vahvistettu" + +# +msgid "connected" +msgstr "Kytketty" + +# +msgid "continue" +msgstr "jatka" + +msgid "cooking" +msgstr "ruuanlaitto" + +# +msgid "copy to bouquets" +msgstr "kopioi suosikkilistalle" + +# +msgid "create directory" +msgstr "Luo hakemisto" + +#, python-format +msgid "currently installed image: %s" +msgstr "nykyinen ohjelmisto: %s" + +# +msgid "daily" +msgstr "joka päivä" + +# +msgid "day" +msgstr "päivä" + +# +msgid "default" +msgstr "Oletus" + +# +msgid "delete cut" +msgstr "Poista leikkausmääritys" + +# +# Teksti esiintyy vain tallenteiden käsittelyvalikossa +# Kolme pistettä ovat turhia, tästä aukeaa vain +# varmistusikkuna, ei alivalikkoa tai asetusruutua. +msgid "delete..." +msgstr "Poista..." + +msgid "descramble and record ecm" +msgstr "pura salaus ja tallenna" + +msgid "detective/thriller" +msgstr "salapoliisi/jännitys" + +# +msgid "disable" +msgstr "Pois" + +# +msgid "disable move mode" +msgstr "Poistu siirtotilasta" + +# +msgid "disabled" +msgstr "Pois päältä" + +# +msgid "disconnected" +msgstr "Ei kytketty" + +msgid "discussion/interview/debate" +msgstr "keskustelu/haastattelu/väittely" + +# +msgid "do nothing" +msgstr "älä tee mitään" + +msgid "documentary" +msgstr "dokumentti" + +msgid "don't descramble, record ecm" +msgstr "älä pura, tallenna salattuna" + +# +msgid "done!" +msgstr "tallennettu" + +msgid "east" +msgstr "itä" + +msgid "economics/social advisory" +msgstr "talous/sosiaalinen neuvonta" + +# +msgid "edit alternatives" +msgstr "Vaihtoehtoisten kanavien lisäys ja poisto" + +msgid "education/science/factual topics (general)" +msgstr "koulutus/tiede/tosiasiat (yleinen)" + +# +msgid "empty" +msgstr "tyhjä" + +# +msgid "enable" +msgstr "Päällä" + +# +msgid "enable bouquet edit" +msgstr "Kanavalistojen lisäys ja poisto" + +# +msgid "enable favourite edit" +msgstr "Suosikkien lisäys ja poisto" + +# +msgid "enable move mode" +msgstr "Suosikkien järjestely" + +# +msgid "enabled" +msgstr "Päällä" + +# +msgid "end alternatives edit" +msgstr "tallenna muutokset ja poistu" + +# +msgid "end bouquet edit" +msgstr "tallenna muutokset ja poistu" + +# +msgid "end cut here" +msgstr "lopeta leikkaus tähän" + +# +msgid "end favourites edit" +msgstr "tallenna muutokset ja poistu" + +msgid "entertainment (10-16 year old)" +msgstr "viihde (10-16 vuotiaille)" + +msgid "entertainment (6-14 year old)" +msgstr "viihde (6-14 vuotiaille)" + +# +msgid "equal to" +msgstr "sama kuin" + +msgid "equestrian" +msgstr "ratsastus" + +# +msgid "exit DVD player or return to file browser" +msgstr "poistu DVD-soittimesta tai palaa tiedostonhallintaan" + +# +msgid "exit movielist" +msgstr "Poistu tallenneluettelosta" + +# +msgid "exit network adapter configuration" +msgstr "poistu verkkosovittimen asetuksista" + +# +msgid "exit networkadapter setup menu" +msgstr "poistu verkkosovittimen asetusvalikosta" + +msgid "experimental film/video" +msgstr "kokeellinen elokuva/video" + +msgid "false" +msgstr "epätosi" + +msgid "fashion" +msgstr "muoti" + +# +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "tiedostomuodot (BMP, PNG, JPG, GIF)" + +# +msgid "filename" +msgstr "tiedostonimi" + +msgid "film/cinema" +msgstr "elokuva" + +msgid "fine arts" +msgstr "kuvataide" + +# +msgid "fine-tune your display" +msgstr "hienosäädä näyttöä" + +msgid "fitness & health" +msgstr "kuntoilu ja terveys" + +# +msgid "flat alphabetic" +msgstr "Aakkosjärjestys" + +msgid "flat alphabetic reverse" +msgstr "Käänteinen aakkosjärjestys" + +msgid "folk/traditional music" +msgstr "kansan/perinteinen musiikki" + +msgid "football/soccer" +msgstr "jalkapallo" + +msgid "foreign countries/expeditions" +msgstr "ulkomaat/tutkimusmatkat" + +# +msgid "forward to the next chapter" +msgstr "eteenpäin seuraavaan kappaleeseen" + +# +msgid "free" +msgstr "vapaana" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "jatkokoulutus" + +msgid "game show/quiz/contest" +msgstr "visailu/tietovisa/kilpailu" + +msgid "gardening" +msgstr "puutarhanhoito" + +# +msgid "go to deep standby" +msgstr "siirry virransäästötilaan" + +# +msgid "go to standby" +msgstr "siirry valmiustilaan" + +# +msgid "grab this frame as bitmap" +msgstr "tallenna tämä ruutu kuvatiedostoksi" + +# +msgid "green" +msgstr "Vihreä" + +msgid "handicraft" +msgstr "käsityö" + +msgid "height" +msgstr "korkeus" + +# +msgid "help..." +msgstr "apua..." + +# +msgid "horizontal" +msgstr "horisontaali" + +msgid "information/education/school program" +msgstr "tiedotus/koulutus/koulu ohjelma" + +# +msgid "init module" +msgstr "alusta moduuli" + +# +msgid "init modules" +msgstr "alusta moduulit" + +# +msgid "insert mark here" +msgstr "aseta merkki tähän" + +msgid "invalid type" +msgstr "epäkelpo tyyppi" + +msgid "jazz" +msgstr "jazz" + +# +msgid "jump back to the previous title" +msgstr "hyppää taaksepäin edelliseen kappaleeseen" + +# +msgid "jump forward to the next title" +msgstr "hyppää eteenpäin seuraavaan kappaleeseen" + +msgid "languages" +msgstr "kielet" + +# +msgid "leave movie player..." +msgstr "poistu videotoistimesta..." + +# +msgid "left" +msgstr "Vasen" + +msgid "left, wrapped" +msgstr "Vasen, tiivistetty" + +msgid "leisure hobbies (general)" +msgstr "vapaa-ajan harrastukset (yleinen)" + +# +msgid "length" +msgstr "pituus" + +msgid "limit ..., aborting !" +msgstr "raja ..., keskeytetään!" + +# +msgid "list style compact" +msgstr "Luettelon tyyli: Tiivistetty" + +# +msgid "list style compact with description" +msgstr "Luettelon tyyli: Tiivistetty kuvaustekstillä" + +# +msgid "list style default" +msgstr "Luettelon tyyli: Vakio" + +# +msgid "list style single line" +msgstr "Luettelon tyyli: yksi rivi" + +msgid "literature" +msgstr "kirjallisuus" + +msgid "live broadcast" +msgstr "suora lähetys" + +# +msgid "locked" +msgstr "lukittu" + +# +msgid "loopthrough to" +msgstr "Läpisyöttö" + +msgid "magazines/reports/documentary" +msgstr "makasiini/raportti/dokumentti" + +# +msgid "manual" +msgstr "manuaalinen" + +msgid "martial sports" +msgstr "kamppailulajit" + +msgid "medicine/physiology/psychology" +msgstr "lääketiede/fysiologia/psykologia" + +# +msgid "menu" +msgstr "Valikko" + +# +msgid "mins" +msgstr "minuuttia" + +# +msgid "minutes" +msgstr "minuuttia" + +# +msgid "month" +msgstr "kuukausi" + +msgid "motor sport" +msgstr "moottoriurheilu" + +msgid "motoring" +msgstr "autoilu" + +# +msgid "move down to last entry" +msgstr "siirry viimeiseen kohtaan" + +# +msgid "move down to next entry" +msgstr "siirry seuraavaan kohtaan" + +# +msgid "move up to first entry" +msgstr "siirry ensimmäiseen kohtaan" + +# +msgid "move up to previous entry" +msgstr "siirry edelliseen kohtaan" + +msgid "movie/drama (general)" +msgstr "elokuva/draama (yleinen)" + +# +msgid "multinorm" +msgstr "moninormi" + +msgid "music/ballet/dance (general)" +msgstr "musiikki/baletti/tanssi (yleinen)" + +msgid "musical/opera" +msgstr "musikaali/ooppera" + +msgid "nature/animals/environment" +msgstr "luonto/eläimet/ympäristö" + +# +msgid "never" +msgstr "ei koskaan" + +msgid "new media" +msgstr "uusmedia" + +msgid "news magazine" +msgstr "uutismakasiini" + +msgid "news/current affairs (general)" +msgstr "uutiset/ajankohtaisohjelmat (yleinen)" + +msgid "news/weather report" +msgstr "uutiset/sää" + +# +msgid "no" +msgstr "Ei" + +# +msgid "no CAId selected" +msgstr "Ei CAId:tä valittu" + +# +msgid "no CI slots found" +msgstr "CI-portteja ei löytynyt" + +# +msgid "no module found" +msgstr "(ei CA-moduulia)" + +msgid "no storage devices found" +msgstr "tallennusvälineitä ei löytynyt" + +# +msgid "none" +msgstr "ei mitään" + +msgid "normal" +msgstr "normaali" + +# +msgid "not configured" +msgstr "ei määritetty" + +# +msgid "not locked" +msgstr "ei lukittu" + +msgid "not supported" +msgstr "ei tuettu" + +# +msgid "not used" +msgstr "ei käyt." + +# +msgid "nothing connected" +msgstr "Ei kytketty" + +# +msgid "of a DUAL layer medium used." +msgstr "DL-DVD-levystä käytetty." + +# +msgid "of a SINGLE layer medium used." +msgstr "DVD-levystä käytetty." + +# +msgid "off" +msgstr "Pois" + +msgid "offset is" +msgstr "erotus on" + +# +msgid "on" +msgstr "Päällä" + +# +msgid "on READ ONLY medium." +msgstr "vain-luku levystä." + +msgid "on end of movie" +msgstr "Tallenteen lopussa" + +# +msgid "once" +msgstr "kerran" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +# +msgid "open nameserver configuration" +msgstr "avaan nimipalvelimen asetus" + +msgid "original" +msgstr "Alkuperäinen" + +msgid "original language" +msgstr "Alkuperäinen kieli" + +# +msgid "pass" +msgstr "hyväksytty" + +msgid "performing arts" +msgstr "esittävä taide" + +msgid "play as picture in picture" +msgstr "Toista kuva-kuvassa (PiP)" + +msgid "play in mainwindow" +msgstr "toista pääikkunassa" + +# +msgid "please press OK when ready" +msgstr "paina OK kun olet valmis" + +# +msgid "please wait, loading picture..." +msgstr "kuvaa ladataan. Odota..." + +msgid "popular culture/traditional arts" +msgstr "populäärikulttuuri/perinteinen taide" + +msgid "pre-school children's program" +msgstr "esikouluikäisten lasten ohjelma" + +msgid "receiver software because updates are available." +msgstr "vastaanottimen ohjelmisto, koska päivityksiä on saatavilla." + +# +msgid "record" +msgstr "tallennus" + +# +msgid "recording..." +msgstr "tallennetaan..." + +# +msgid "red" +msgstr "Punainen" + +msgid "religion" +msgstr "uskonto" + +msgid "remarkable people" +msgstr "merkittäviä ihmisiä" + +# +msgid "remove after this position" +msgstr "Poista tämän kohdan jälkeen" + +# +msgid "remove all alternatives" +msgstr "Poista kaikki vaihtoehtoiset kanavat" + +# +msgid "remove all new found flags" +msgstr "Poista kaikki uusi kanava-liput" + +# +msgid "remove before this position" +msgstr "Poista kaikki ennen tätä kohtaa" + +# +msgid "remove bookmark" +msgstr "Poista kirjanmerkki" + +# +msgid "remove directory" +msgstr "Poista hakemisto" + +# +msgid "remove entry" +msgstr "Poista valittu" + +# +msgid "remove from parental protection" +msgstr "Poista lapsilukosta" + +# +msgid "remove new found flag" +msgstr "Poista uusi kanava-lippu" + +# +msgid "remove selected satellite" +msgstr "Poista valittu satelliitti" + +# +msgid "remove this mark" +msgstr "Poista tämä merkki" + +# +msgid "rename entry" +msgstr "Uudelleennimeä valittu" + +# +msgid "repeat playlist" +msgstr "toista soittolista" + +# +msgid "repeated" +msgstr "useita kertoja" + +msgid "reverse by date" +msgstr "Käänteinen päivän mukaan" + +# +msgid "rewind to the previous chapter" +msgstr "kelaa edelliseen kappaleeseen" + +# +msgid "right" +msgstr "Oikea" + +msgid "right, wrapped" +msgstr "Oikea, tiivistetty" + +msgid "rock/pop" +msgstr "rock/pop" + +msgid "romance" +msgstr "romantiikka" + +# +msgid "save last directory on exit" +msgstr "tallenna viimeisin hakemisto suljettaessa" + +# +msgid "save playlist on exit" +msgstr "tallenna soittolista suljettaessa" + +# +msgid "scan state" +msgstr "haun tila" + +msgid "science fiction/fantasy/horror" +msgstr "scifi/fantasia/kauhu" + +# +msgid "second cable of motorized LNB" +msgstr "kääntyvän antennin twin-LNB:n toinen kaapeli" + +# +msgid "seconds" +msgstr "sekuntia" + +# +msgid "select" +msgstr "valitse" + +# +msgid "select CAId's" +msgstr "valitse CAId:t" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +# +msgid "select menu entry" +msgstr "valitse valikon kohta" + +# +msgid "select movie" +msgstr "Valitse tallenne" + +# +msgid "select the movie path" +msgstr "Valitse tallennehakemisto" + +msgid "serious music/classic music" +msgstr "vakava musiikki/klassinen musiikki" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "vakava/klassinen/uskonnollinen/historiallinen elokuva/draama" + +msgid "service PIN" +msgstr "Kanavan PIN" + +msgid "set as startup service" +msgstr "Aseta käynnistyskanavaksi" + +msgid "setup PIN" +msgstr "Määrittele PIN" + +# +msgid "show DVD main menu" +msgstr "Näytä DVD:n päävalikko" + +msgid "show all tags" +msgstr "Näytä kaikki avainsanat" + +# +msgid "show alternatives" +msgstr "Näytä vaihtoehtoiset kanavat" + +# +msgid "show event details" +msgstr "Näytä ohjelman tarkemmat tiedot" + +# +msgid "show extended description" +msgstr "Näytä laajennettu ohjelmakuvaus" + +msgid "show mediaplayer on mainmenu" +msgstr "Näytä Mediasoitin päävalikossa" + +msgid "show softwaremanager in setup menu" +msgstr "Näytä ohjelmistonhallinta asetusvalikossa" + +msgid "show softwaremanager on blue button" +msgstr "Näytä ohjelmistonhallinta sinisestä napista" + +# +msgid "show tag menu" +msgstr "Näytä avainsanavalikko" + +# +msgid "show transponder info" +msgstr "Näytä lähettimen tietoja" + +msgid "show/game show (general)" +msgstr "show/visailu (yleinen)" + +msgid "shuffle" +msgstr "Satunnainen" + +# +msgid "shut down" +msgstr "Sammuta" + +# +msgid "simple" +msgstr "suppea" + +# +msgid "skip backward" +msgstr "siirry taaksepäin" + +# +msgid "skip forward" +msgstr "siirry eteenpäin" + +msgid "soap/melodram/folkloric" +msgstr "saippuasarja/melodraama/folkloristiikka" + +msgid "social/political issues/economics (general)" +msgstr "sosiaaliset/poliittiset aiheet/talous (yleinen)" + +msgid "social/spiritual science" +msgstr "sosiaalinen/hengellinen tiede" + +msgid "sorting of playlists" +msgstr "soittolistojen järjestely" + +# +msgid "special characters" +msgstr "erikoismerkit" + +msgid "special events" +msgstr "erikoistapahtumat" + +msgid "special format data DVD (HDTV compatible)" +msgstr "erikoisformaattinen DVD (HDTV yhteensopiva)" + +msgid "sports (general)" +msgstr "urheilu (yleinen)" + +msgid "sports magazine" +msgstr "urheilumakasiini" + +# +msgid "standard" +msgstr "Vakio" + +# +msgid "start cut here" +msgstr "aloita leikkaus tästä" + +# +msgid "start directory" +msgstr "aloitushakemisto" + +msgid "stepsize" +msgstr "askelkoko" + +# +msgid "stereo" +msgstr "stereo" + +msgid "stop using as startup service" +msgstr "lopeta käyttämästä käynnistyskanavana" + +# +msgid "switch to bookmarks" +msgstr "vaihda kirjanmerkkeihin" + +# +msgid "switch to filelist" +msgstr "vaihda tiedostoluetteloon" + +# +msgid "switch to the next angle" +msgstr "vaihda seuraavaan kuvakulmaan" + +# +msgid "switch to the next audio track" +msgstr "vaihda seuraavalle ääniraidalle" + +# +msgid "switch to the next subtitle language" +msgstr "vaihda seuraavalle tekstityskielelle" + +msgid "talk show" +msgstr "keskusteluohjelma" + +msgid "team sports" +msgstr "joukkueurheilu" + +msgid "technology/natural science" +msgstr "teknologia/luonnontiede" + +# +msgid "template file" +msgstr "Mallitiedosto" + +msgid "tennis/squash" +msgstr "tennis/squash" + +# +msgid "this recording" +msgstr "tämä tallennus" + +# +msgid "this service is protected by a parental control pin" +msgstr "tämä kanava on suojattu lapsilukolla" + +# +msgid "toggle time, chapter, audio, subtitle info" +msgstr "valitse aika, kappale, ääni, tekstitys" + +msgid "top" +msgstr "ylä" + +msgid "tourism/travel" +msgstr "turismi/matkailu" + +msgid "true" +msgstr "tosi" + +# +msgid "unavailable" +msgstr "ei saatavilla" + +# +msgid "unconfirmed" +msgstr "Vahvistamaton" + +msgid "undefined" +msgstr "määrittämätön" + +# +msgid "unknown" +msgstr "tuntematon" + +# +msgid "unknown service" +msgstr "tuntematon kanava" + +msgid "unpublished" +msgstr "julkaisematon" + +# +msgid "until standby/restart" +msgstr "valmiustilaan/uudelleenkäynnistykseen asti" + +# +msgid "user defined" +msgstr "käyttäjän määrittelemä" + +msgid "variety show" +msgstr "varietee" + +# +msgid "vertical" +msgstr "vertikaali" + +# +msgid "wait for ci..." +msgstr "Odotetaan ci:tä..." + +# +msgid "wait for mmi..." +msgstr "Odotetaan mmi:tä..." + +# +msgid "waiting" +msgstr "Odottaa" + +msgid "water sport" +msgstr "vesiurheilu" + +# +msgid "weekly" +msgstr "viikoittain" + +msgid "west" +msgstr "länsi" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "Valkoinen" + +# +msgid "whitelist" +msgstr "hyväksytyt" + +msgid "width" +msgstr "leveys" + +msgid "winter sport" +msgstr "talviurheilu" + +msgid "wireless network interface" +msgstr "WLAN-yhteys" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "%d virhe" +msgstr[1] "%d virhettä" + +# +msgid "working" +msgstr "työskentelee" + +# +msgid "yellow" +msgstr "Keltainen" + +# +msgid "yes" +msgstr "Kyllä" + +# +msgid "yes (keep feeds)" +msgstr "Kyllä (pidä feedit)" + +# +msgid "zap" +msgstr "Kanavanvaihto" + +# +msgid "zap and record" +msgstr "Katso ja tallenna" + +# +msgid "zapped" +msgstr "Vaihdettu" + +# +#~ msgid "" +#~ "\n" +#~ "System will restart after the restore!" +#~ msgstr "" +#~ "\n" +#~ "Järjestelmä käynnistyy uudelleen palautuksen jälkeen!" + +# +#~ msgid " wireless networks found!" +#~ msgstr "WLAN-verkkoja löytyi!" + +# +#~ msgid "/usr/share/enigma2 directory" +#~ msgstr "/usr/share/enigma2-hakemisto" + +# +#~ msgid "/var directory" +#~ msgstr "â€/varâ€-hakemisto" + +#~ msgid "A demo plugin for TPM usage." +#~ msgstr "Demo-lisäosa TPM:n käyttöön" + +# +#~ msgid "AA" +#~ msgstr "AA" + +# +#~ msgid "AB" +#~ msgstr "AB" + +# +#~ msgid "AC3 downmix" +#~ msgstr "AC3 muunnos stereoksi" + +# +#~ msgid "Action:" +#~ msgstr "Toiminto:" + +#~ msgid "Activate PiP" +#~ msgstr "Aktivoi PiP-kuva" + +# +#~ msgid "Add WLAN configuration?" +#~ msgstr "Lisää tiedot WLAN-verkosta?" + +# +#~ msgid "Add network configuration?" +#~ msgstr "Lisää tiedot lähiverkosta?" + +#~ msgid "Add/remove timer for current event" +#~ msgstr "Lisää/poista ajastus tähän ohjelmaan" + +# +#~ msgid "Adds network configuration if enabled." +#~ msgstr "Jos valittu, lisätään tiedot lähiverkosta." + +# +#~ msgid "Adds wlan configuration if enabled." +#~ msgstr "Jos valittu, lisätään tiedot WLAN-verkosta." + +#~ msgid "Adjust HDMI CEC settings" +#~ msgstr "Säädä HDMI CEC-asetuksia" + +#~ msgid "After pressing OK, please wait!" +#~ msgstr "Odota OK:n painamisen jälkeen" + +# +#~ msgid "All satellites" +#~ msgstr "Kaikki satelliitit" + +# +#~ msgid "Always ask before sending" +#~ msgstr "Kysy aina ennen lähettämistä" + +#~ msgid "And will shutdown your receiver over " +#~ msgstr "Ja sammuttaa vastaanottimen yli" + +# +#~ msgid "Anonymize crashlog?" +#~ msgstr "Anonyymi kaatumisloki?" + +# +#~ msgid "" +#~ "Are you sure you want to restore\n" +#~ "following backup:\n" +#~ msgstr "" +#~ "Oletko varma, että haluat palauttaa seuraavan\n" +#~ "varmuuskopion:\n" + +#~ msgid "Auto-focus" +#~ msgstr "Automaattikohdistus" + +# +#~ msgid "BA" +#~ msgstr "BA" + +# +#~ msgid "BB" +#~ msgstr "BB" + +# +#~ msgid "Backup" +#~ msgstr "Luo" + +# +#~ msgid "Backup Location" +#~ msgstr "Mihin tallennetaan" + +# +#~ msgid "Backup Mode" +#~ msgstr "Mitä tallennetaan" + +# +#~ msgid "Backup done." +#~ msgstr "Varmuuskopiointi suoritettu." + +# +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "Pause-näppäimen toiminto" + +# +#~ msgid "By pressing the OK Button on your remote control, the info bar is being displayed." +#~ msgstr "Painamalla kaukosäätimen OK-näppäintä, näet tietopalkin." + +# +#~ msgid "CF Drive" +#~ msgstr "CompactFlash-kortti" + +# +#~ msgid "Choose Tuner" +#~ msgstr "Valitse viritin" + +#~ msgid "Choose a wireless network" +#~ msgstr "Valitse WLAN-verkko" + +# +#~ msgid "Choose bouquet" +#~ msgstr "Valitse suosikkilista" + +# +#~ msgid "Choose upgrade source" +#~ msgstr "Valitse päivityslähde" + +# +#~ msgid "Choose your Skin" +#~ msgstr "Valitse teema" + +# +#~ msgid "Cleanup Wizard" +#~ msgstr "Puhdistusavustaja" + +# +#~ msgid "Cleanup Wizard settings" +#~ msgstr "Puhdistusavustajan asetukset" + +# +#~ msgid "CleanupWizard" +#~ msgstr "Puhdistusavustaja" + +# +#~ msgid "Committed DiSEqC command" +#~ msgstr "Committed DiSEqC-käsky" + +#~ msgid "CommonInterface" +#~ msgstr "Common Interface" + +# +#~ msgid "Configuration Mode" +#~ msgstr "Toimintatila" + +#~ msgid "Configure if and how service type icons will be shown." +#~ msgstr "Määrittele näytetäänkö ja kuinka näytetään kanavatyypin kuvakkeet" + +#~ msgid "Configure if service picons will be shown in the servicelist." +#~ msgstr "Määrittele näytetäänkö kanavalogot kanavalistassa. " + +#~ msgid "Configure the behavior of the 'pause' key when movie playback is already paused." +#~ msgstr "Määrittää 'Tauko' näppäimen toiminnan kun tallenteen toisto on jo taukotilassa." + +#~ msgid "Configure the duration in hours and action, which could be shut down or standby, when the receiver is not controlled." +#~ msgstr "Määrittele kesto tunneissa ja toiminta, mikä voi olla sammuta tai aseta valmiustilaan, kun vastaanottimella ei tehdä mitään." + +#~ msgid "Configure the duration in minutes and action, which could be shut down or standby, for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +#~ msgstr "Määrittele uniajastimelle kesto minuuteissa ja toiminta, mikä voi olla sammuta tai aseta valmiustilaan.Valitse tämä rivi ja paina OK tai vihreää nappia käynnistääksesi tai sammuttaksesi uniajastimen." + +# +#~ msgid "Confirm shutdown:" +#~ msgstr "Kysy varmistus ennen sammutusta:" + +# +#~ msgid "Crashlog settings" +#~ msgstr "Kaatumislokin asetukset" + +# +#~ msgid "CrashlogAutoSubmit" +#~ msgstr "Kaatumislokien automaattilähetys" + +# +#~ msgid "CrashlogAutoSubmit settings" +#~ msgstr "Kaatumislokien automaattilähetys" + +# +#~ msgid "CrashlogAutoSubmit settings..." +#~ msgstr "Kaatumislokien automaattilähetys..." + +#~ msgid "Custom text position" +#~ msgstr "Muokattu tekstin paikka" + +#~ msgid "DTS downmix" +#~ msgstr "DTS muunnos stereoksi" + +# +#~ msgid "Decide if you want to enable or disable the Cleanup Wizard." +#~ msgstr "Valitse haluatko ottaa puhdistusavustajan käyttöön." + +# +#~ msgid "Decide what should be done when crashlogs are found." +#~ msgstr "Valitse mitä tehdään kun kaatumislokeja löytyy." + +# +#~ msgid "Decide what should happen to the crashlogs after submission." +#~ msgstr "Valitse mitä kaatumislokeille tehdään lähettämisen jälkeen." + +# +#~ msgid "Delete crashlogs" +#~ msgstr "Poista kaatumislokit" + +# +#~ msgid "" +#~ "Delete no more configured satellite\n" +#~ "%s?" +#~ msgstr "" +#~ "Poistetaanko ei määritelty satelliitti\n" +#~ "%s?" + +# +#~ msgid "DiSEqC repeats" +#~ msgstr "DiSEqC-toistoja" + +# +#~ msgid "Disable crashlog reporting" +#~ msgstr "Raportointi pois käytöstä" + +# +#~ msgid "Dish" +#~ msgstr "Antenni" + +# +#~ msgid "" +#~ "Do you really want to REMOVE\n" +#~ "the plugin \"%s\"?" +#~ msgstr "" +#~ "Haluatko poistaa\n" +#~ "lisäosan \"%s\"?" + +# +#~ msgid "" +#~ "Do you want to backup now?\n" +#~ "After pressing OK, please wait!" +#~ msgstr "" +#~ "Haluatko luoda varmuuskopion?\n" +#~ "Paina OK ja odota!" + +# +#~ msgid "Do you want to submit your email address and name so that we can contact you if needed?" +#~ msgstr "Haluatko lähettää sähköpostiosoitteesi ja nimesi mahdollista yhteydenottoa varten?" + +# +#~ msgid "Do you want to view a tutorial?" +#~ msgstr "Haluatko katsoa opasohjelman?" + +# +#~ msgid "Don't ask, just send" +#~ msgstr "Lähetä ilman kysymystä" + +# +#~ msgid "Done - Installed or upgraded %d packages" +#~ msgstr "Valmis - asennettu tai päivitetty %d lisäosaa" + +# +#~ msgid "Edit Title" +#~ msgstr "Editoi" + +# +#~ msgid "Enable Cleanup Wizard?" +#~ msgstr "Käytä puhdistusavustajaa?" + +# +#~ msgid "Enable timer" +#~ msgstr "Ajastin päälle" + +# +#~ msgid "EndTime" +#~ msgstr "Lopetusaika" + +#~ msgid "" +#~ "Enigma2 Skinselector\n" +#~ "\n" +#~ "If you experience any problems please contact\n" +#~ "stephan@reichholf.net\n" +#~ "\n" +#~ "© 2006 - Stephan Reichholf" +#~ msgstr "" +#~ "Enigma2 teemavalitsin\n" +#~ "\n" +#~ "Ongelmatapauksissa ota yhteyttä\n" +#~ "stephan@reichholf.net\n" +#~ "\n" +#~ "© 2006 - Stephan Reichholf" + +# +#~ msgid "Enter your email address so that we can contact you if needed." +#~ msgstr "Syötä sähköpostiosoitteesi jotta voimme tarvittaessa ottaa yhteyttä." + +# +#~ msgid "Exit the cleanup wizard" +#~ msgstr "Lopeta puhdistusavustaja" + +# +# Ohjatun asennustoiminnon kakkosruudun valintateksti +#~ msgid "Exit wizard" +#~ msgstr "Poistu (määritä kaikki asetukset käsin)" + +#~ msgid "For more information see www.openpli.org" +#~ msgstr "Lisätietoja katso www.openpli.org" + +#~ msgid "General AC3 delay (ms)" +#~ msgstr "AC3-viive (ms)" + +#~ msgid "General PCM delay (ms)" +#~ msgstr "PCM-viive (ms)" + +#~ msgid "Goto specific data/time" +#~ msgstr "Mene määrättyy tietoon/aikaan" + +# +#~ msgid "Guard Interval" +#~ msgstr "Suojaväli" + +# +#~ msgid "How to handle found crashlogs?" +#~ msgstr "Mitä löydetyille lokeille tehdään?" + +# +#~ msgid "Include your email and name (optional) in the mail?" +#~ msgstr "Lisää lähetykseen sähköpostiosoite ja nimi?" + +# +#~ msgid "Install settings, skins, software..." +#~ msgstr "Asenna asetuksia, teemoja, ohjelmistoja..." + +# +#~ msgid "Installation finished." +#~ msgstr "Asennus suoritettu." + +# +#~ msgid "Installing default sat lists... Please wait..." +#~ msgstr "Asennetaan oletussatelliittilistat.. Odota..." + +# +#~ msgid "Installing defaults... Please wait..." +#~ msgstr "Asennetaan oletukset...Odota..." + +# +#~ msgid "Installing package content... Please wait..." +#~ msgstr "Asennetaan paketin sisältö...Odota..." + +#~ msgid "Keep old timers for how many days" +#~ msgstr "Säilytä vanhoja ajastuksia (päivää)" + +#~ msgid "Kill partition table" +#~ msgstr "Poista osiotaulukko" + +# +#~ msgid "LOF" +#~ msgstr "LOF" + +# +#~ msgid "LOF/H" +#~ msgstr "LOF/H" + +# +#~ msgid "LOF/L" +#~ msgstr "LOF/L" + +#~ msgid "Letzeburgesch" +#~ msgstr "Letzeburgesch" + +# +#~ msgid "Mainmenu" +#~ msgstr "Päävalikko" + +# +#~ msgid "Margin after record" +#~ msgstr "Lisäaika tallenteen loppuun (minuuttia)" + +#~ msgid "MediaPlayer" +#~ msgstr "Mediasoitin" + +# +#~ msgid "Memory positions" +#~ msgstr "Muistipaikat" + +# +#~ msgid "Network Setup" +#~ msgstr "Lähiverkon asetukset" + +# +#~ msgid "NetworkWizard" +#~ msgstr "Verkkoavustaja" + +#, fuzzy +#~ msgid "Next" +#~ msgstr "Seuraava" + +# +#~ msgid "No packages were upgraded yet. So you can check your network and try again." +#~ msgstr "" +#~ "Ohjelmistoja ei ole vielä päivitetty.\n" +#~ "Voit tarkistaa verkkoasetukset ja yrittää uudelleen." + +# +#~ msgid "No picture on TV? Press EXIT and retry." +#~ msgstr "Ei kuvaa TV:ssä? Paina EXIT ja yritä uudelleen." + +#~ msgid "No sat tuner found!" +#~ msgstr "Satelliittiviritintä ei löytynyt!" + +# +#~ msgid "No satellite frontend found!!" +#~ msgstr "Laitteessa ei ole satelliittiviritintä." + +# +#~ msgid "No, but restart from beginning" +#~ msgstr "Ei, mutta aloita alusta" + +# +#~ msgid "No, not now" +#~ msgstr "Ei, ei nyt" + +# +# Ohjatun asennuksen (Startup Wizard) kutosruudun valintateksti +#~ msgid "No, scan later manually" +#~ msgstr "Ei, kanavat haetaan myöhemmin manuaalisesti" + +# +#~ msgid "No, send them never" +#~ msgstr "Ei, älä lähetä koskaan" + +#~ msgid "Nothing to upgrade" +#~ msgstr "Ei päivitettävää" + +# +#~ msgid "OK, remove another extensions" +#~ msgstr "OK, poista toinen laajennus" + +# +#~ msgid "OK, remove some extensions" +#~ msgstr "OK, poista joitain laajennuksia" + +# +#~ msgid "OSD visibility" +#~ msgstr "OSD:n läpinäkyvyys" + +#~ msgid "Open service list and select next channel" +#~ msgstr "Avaa kanavalista ja valitse seuraava kanava" + +#~ msgid "Open service list and select previous channel" +#~ msgstr "Avaa kanavalista ja valitse edellinen kanava" + +# +#~ msgid "Optionally enter your name if you want to." +#~ msgstr "Jos haluat, lisää nimesi." + +# +#~ msgid "Orbital Position" +#~ msgstr "Sijainti" + +#~ msgid "Package removal failed.\n" +#~ msgstr "Ohjelmapaketin poisto epäonnistui.\n" + +#~ msgid "Package removed successfully.\n" +#~ msgstr "Ohjelmapaketin poisto onnistui.\n" + +#~ msgid "Packages" +#~ msgstr "Paketit" + +#~ msgid "Please be aware, that anyone can disable the parental control, if you have not set a PIN." +#~ msgstr "Huomaa, että kuka tahansa voi poistaa lapsilukon jos et aseta PIN-koodia." + +# +#~ msgid "Please choose he package..." +#~ msgstr "Valitse ohjelmapaketti..." + +# +#~ msgid "Please choose the default services lists you want to install." +#~ msgstr "Valitse oletuskanavalistat jotka haluat asentaa ja paina OK." + +# +#~ msgid "Please enter your email address here:" +#~ msgstr "Syötä sähköpostiosoitteesi:" + +# +#~ msgid "Please enter your name here (optional):" +#~ msgstr "Syötä nimesi (ei pakollinen):" + +# +#~ msgid "Please press OK!" +#~ msgstr "Paina OK." + +# +#~ msgid "Please select an extension to remove." +#~ msgstr "Valitse poistettava lisäosa." + +# +#~ msgid "Please select an option below." +#~ msgstr "Valitse jokin vaihtoehto." + +# +#~ msgid "Please wait while removing selected package..." +#~ msgstr "Odota, valittua pakettia poistetaan..." + +# +#~ msgid "Please wait while searching for removable packages..." +#~ msgstr "Odota, poistettavia paketteja haetaan..." + +#~ msgid "Press '0' to toggle internal/external PiP." +#~ msgstr "Vaihda sisäisen/ulkoisen PiP-kuvan välillä painamalla 0-näppäintä" + +#, fuzzy +#~ msgid "Prev" +#~ msgstr "Edellinen" + +#, fuzzy +#~ msgid "Recording data sync size" +#~ msgstr "Tallennuksen tyyppi" + +# +#~ msgid "Remove timer" +#~ msgstr "Poista ajastus" + +# +#~ msgid "Send DiSEqC" +#~ msgstr "Lähetä DiSEqC" + +#~ msgid "Show picons in servicelist" +#~ msgstr "Näytä kanavalogot kanavaluettelossa" + +# +#~ msgid "Shutdown after current event" +#~ msgstr "Sammuta menossa olevan ohjelman jälkeen" + +# +#~ msgid "Shutdown in " +#~ msgstr "Sammuta kun kulunut " + +# +#~ msgid "Sleep timer action:" +#~ msgstr "Uniajastintoiminta:" + +# +#~ msgid "Switch next channel" +#~ msgstr "Vaihda seuraavalle kanavalle" + +# +#~ msgid "Timer status:" +#~ msgstr "Ajastimen tila:" + +#~ msgid "Tuning step size" +#~ msgstr "Viritysaskeleen koko" + +# +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Uncommitted DiSEqC-käsky" + +# +#~ msgid "Use time of currently running service" +#~ msgstr "käytä katseltavan kanavan aikaa" + +#~ msgid "When enabled, external subtitles (in media files) will be displayed in yellow, instead of the original color." +#~ msgstr "Kun päällä, ulkoiset tekstitykset (media tiedostoissa) näytetään keltaisella alkuperäisen värin sijaan." + +#~ msgid "Your receiver will shutdown due to inactivity." +#~ msgstr "Käyttämättömyysajastin sammuttaa vastaanottimen. " + +#~ msgid "Your receiver will shutdown due to the sleeptimer." +#~ msgstr "Uniajastin sammuttaa vastaanottimesi." + +# +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "" +#~ "Vaihdetaanko takaisin kanavalle, jota katsottiin\n" +#~ "ennen satelliittietsimen käyttöä?" + +#~ msgid "dreambox advanced remote control (native)" +#~ msgstr "Laajennettu kauko-ohjain (alkup.)" + +#~ msgid "dreambox front panel" +#~ msgstr "etupaneeli" + +#~ msgid "dreambox ir keyboard" +#~ msgstr "IR-näppäimistö" + +#~ msgid "dreambox ir mouse" +#~ msgstr "IR-hiiri" + +#~ msgid "dreambox remote control (native)" +#~ msgstr "Kauko-ohjain (alkup.)" + +# +#~ msgid "play from next mark or playlist entry" +#~ msgstr "toista seuraavasta merkistä tai valinnasta" + +# +#~ msgid "play from previous mark or playlist entry" +#~ msgstr "toista edellisestä merkistä tai valinnasta" + +# +#~ msgid "shutdown" +#~ msgstr "sammuta" + +# +#~ msgid "standby" +#~ msgstr "valmiustila" + +#~ msgid "tuner is not supported" +#~ msgstr "viritin ei ole tuettu" diff --git a/po/fr.po b/po/fr.po new file mode 100644 index 0000000..b935d5a --- /dev/null +++ b/po/fr.po @@ -0,0 +1,8063 @@ +msgid "" +msgstr "" +"Project-Id-Version: enigma2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2014-05-27 19:36+0100\n" +"Last-Translator: Pr2 <>\n" +"Language-Team: french\n" +"Language: fr\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-Generator: Poedit 1.6.5\n" + +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"Options avancées et paramètres." + +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"Après avoir appuyé sur OK, veuillez patienter !" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" +"\n" +"Sauvegardez les réglages du récepteur." + +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"Éditer l'adresse d'origine de la mise à jour." + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" +"\n" +"Gérer les extensions ou plugins pour votre récepteur" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" +"\n" +"Mise à jour en ligne du logiciel de votre récepteur." + +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"Pressez OK sur la télécommande pour continuer." + +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"Restaurer vos sauvegardes par date." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" +"\n" +"Restaurer les réglages de votre récepteur." + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" +"\n" +"Restaurer votre récepteur avec un nouveau firmware." + +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"Scanner les extensions locales et les installer." + +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Choix périphérique sauvegarde.\n" +"périphérique actuel :" + +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"Visualiser, installer et retirer paquets disponibles ou installés." + +msgid " (PiP)" +msgstr " (PiP)" + +msgid " (Radio)" +msgstr " (Radio)" + +msgid " (TV)" +msgstr " (TV)" + +msgid " (disabled)" +msgstr "(Désactivé)" + +msgid " (higher than any auto)" +msgstr "(supérieur à n'importe quel auto)" + +msgid " (higher than rotor any auto)" +msgstr "(supérieur à n'importe quel rotor auto)" + +msgid " (lower than any auto)" +msgstr "(inférieur à n'importe quel auto)" + +msgid " extensions." +msgstr " Extensions." + +msgid " ms" +msgstr " ms" + +msgid " packages selected." +msgstr " Paquets sélectionnés." + +msgid " updates available." +msgstr " Mise à jour disponibles." + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "%2d:%02d" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "%2d:%02d:%02d" + +msgid "%A %d %B" +msgstr "%A %d %B" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "%A %e %B" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "%A %e %B %Y" + +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "%a %e/%m" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "%a %e/%m %-H:%M" + +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "%d chaine trouvée" +msgstr[1] "%d chaines trouvées" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "%d fichier" +msgstr[1] "%d fichiers" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d heure" +msgstr[1] "%d heures" + +#, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d tâche fonctionne en arrière-plan !" +msgstr[1] "%d taches fonctionnent en arrière-plan !" + +#, python-format +msgid "%d min" +msgstr "%d min" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minute" +msgstr[1] "%d minutes" + +#, python-format +msgid "%d minutes" +msgstr "%d Minutes" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d seconde" +msgstr[1] "%d secondes" + +#, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "%d sous-répertoire" +msgstr[1] "%d sous-répertoires" + +#, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "%d réseau sans fil trouvé !" +msgstr[1] "%d réseaux sans fil trouvés !" + +msgid "%d-%b-%Y %-H:%M" +msgstr "%d-%b-%Y %-H:%M" + +msgid "%d-%m" +msgstr "%d-%m" + +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "%k:%M %e/%m" + +#, python-format +msgid "%s %s free disk space" +msgstr "%s %s espace disque libre" + +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "%s n'est plus utilisé. Doit-il être supprimé ?" + +#, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "%s mise à jour disponible." +msgstr[1] "%s mise à jour disponibles." + +#, python-format +msgid "%s%d min" +msgstr "%s%d min" + +#, python-format +msgid "%s/%s: %s" +msgstr "%s/%s: %s" + +msgid "(ZAP)" +msgstr "(ZAP)" + +msgid "(empty)" +msgstr "(Vide)" + +msgid "(show optional DVD audio menu)" +msgstr "(Afficher menu audio DVD optionnel)" + +msgid "* Only available if more than one interface is active." +msgstr "* Seulement disponible si plus d'une interface est active." + +msgid "/s" +msgstr "/s" + +msgid "0" +msgstr "0" + +msgid "1" +msgstr "1" + +msgid "1.0" +msgstr "1.0" + +msgid "1.1" +msgstr "1.1" + +msgid "1.2" +msgstr "1.2" + +msgid "12V output" +msgstr "Sortie 12V" + +msgid "13 V" +msgstr "13 V" + +msgid "16:10" +msgstr "16:10" + +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +msgid "16:9" +msgstr "16:9" + +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +msgid "16:9 always" +msgstr "16:9 toujours" + +msgid "18 V" +msgstr "18 V" + +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "23.976" + +msgid "24" +msgstr "24" + +msgid "25" +msgstr "25" + +msgid "29.97" +msgstr "29.97" + +msgid "3" +msgstr "3" + +msgid "30" +msgstr "30" + +msgid "3d mode" +msgstr "Mode 3D" + +msgid "4" +msgstr "4" + +msgid "4:3" +msgstr "4:3" + +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +msgid "5" +msgstr "5" + +msgid "6" +msgstr "6" + +msgid "7" +msgstr "7" + +msgid "8" +msgstr "8" + +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr ": %s" + +msgid "<Current movielist location>" +msgstr "<Emplacement actuel liste film>" + +msgid "<Default movie location>" +msgstr "<Emplacement par défaut film>" + +msgid "<Last timer location>" +msgstr "<Emplacement dernière programmation>" + +msgid "<unknown>" +msgstr "<inconnu>" + +msgid "??" +msgstr "??" + +msgid "A" +msgstr "A" + +#, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"Un fichier de configuration (%s) a été modifié depuis qu'il a été installé.\n" +"Voulez-vous conserver vos modifications ?" + +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"Un fichier de configuration (%s) a été modifié depuis l'installation.\n" +"Voulez-vous garder votre version ?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"Un enregistrement terminé souhaite mettre votre\n" +"récepteur en mode veille. Voulez vous le faire maintenant ?" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"Un enregistrement terminé souhaite éteindre\n" +"votre récepteur. Voulez vous le faire maintenant ?" + +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "Un EPG graphique pour tous les services d'un bouquet spécifique" + +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"Un enregistrement a été démarré:\n" +"%s" + +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"Un enregistrement est en cours.\n" +"Que voulez-vous faire ?" + +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "Un enregistrement est en cours. Veuillez arrêter l'enregistrement avant d'essayer de configurer le positionneur." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "Un enregistrement est en cours. Veuillez arrêter l'enregistrement avant d'essayer de scanner." + +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "Un enregistrement est en cours. Veuillez arrêter l'enregistrement avant de démarrer la recherche satellites." + +#, python-format +msgid "A required tool (%s) was not found." +msgstr "Un outil (%s) nécessaire n'a pas été trouvé" + +msgid "A search for available updates is currently in progress." +msgstr "Une recherche pour les mises à jour disponibles est actuellement en cours." + +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"Une seconde interface configurée a été trouvée.\n" +"\n" +"Voulez-vous désactiver la seconde interface réseau ?" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"Une minuterie programmé souhaite mettre votre\n" +"récepteur en mode veille. Voulez vous le faire maintenant ?" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"Une minuterie programmé souhaite éteindre\n" +"votre récepteur. Voulez vous le faire maintenant ?" + +msgid "A small overview of the available icon states and actions." +msgstr "Une vue d'ensemble des icônes d'états et d'actions disponibles." + +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"Une programmation n'a pas pu se lancer pour enregistrer !\n" +"Désactiver la TV et réessayer ?\n" + +msgid "A/V settings" +msgstr "Paramètres A/V" + +msgid "AC3/DTS downmix" +msgstr "Downmix AC3/DTS" + +msgid "Abort" +msgstr "Abandon" + +msgid "About" +msgstr "A propos" + +msgid "About..." +msgstr "A propos..." + +msgid "Accesspoint:" +msgstr "Point d'accès :" + +msgid "Action on long powerbutton press" +msgstr "Action appui long sur bouton éteindre" + +msgid "Action on short powerbutton press" +msgstr "Action appui court sur bouton éteindre" + +msgid "Activate Picture in Picture" +msgstr "Activer l'incrustation d'image" + +msgid "Activate current configuration" +msgstr "Activer la configuration actuelle" + +msgid "Activate network settings" +msgstr "Activer les paramètres réseau" + +msgid "Activate the configured network settings." +msgstr "Activer les paramètres réseau configurés." + +msgid "Adapter settings" +msgstr "Paramètres adaptateur" + +msgid "Add" +msgstr "Ajouter" + +msgid "Add Bookmark" +msgstr "Ajouter Marque-page" + +msgid "Add a mark" +msgstr "Ajouter un marqueur" + +msgid "Add a nameserver entry" +msgstr "Ajouter une entrée serveur de nom" + +msgid "Add a new title" +msgstr "Ajouter un nouveau titre" + +msgid "Add bookmark" +msgstr "Ajouter marque page" + +msgid "Add directory to playlist" +msgstr "Ajouter le répertoire à la liste de lecture" + +msgid "Add file to playlist" +msgstr "Ajouter le fichier à la liste de lecture" + +msgid "Add files to playlist" +msgstr "Ajouter les fichiers à la liste de lecture" + +msgid "Add more details to the crash log" +msgstr "Créer un crash log plus détaillé" + +msgid "Add provider" +msgstr "Ajouter Opérateur" + +msgid "Add recording (enter recording duration)" +msgstr "Ajout d'enregistrement (saisir durée d'enregistrement)" + +msgid "Add recording (enter recording endtime)" +msgstr "Ajout d'enregistrement (saisir heure de fin)" + +msgid "Add recording (indefinitely)" +msgstr "Ajout d'enregistrement (indéfiniment)" + +msgid "Add recording (stop after current event)" +msgstr "Ajout d'enregistrement (stopper après l'émission)" + +msgid "Add service" +msgstr "Ajouter Service" + +msgid "Add timer" +msgstr "Programmer" + +msgid "Add title" +msgstr "Ajouter titre" + +msgid "Add to bouquet" +msgstr "Ajouter au bouquet" + +msgid "Add to favourites" +msgstr "Ajouter aux favoris" + +msgid "Add/remove change timer for current event" +msgstr "Ajouter/Enlever la programmation pour l'évènement en cours" + +msgid "Adjust 3D settings" +msgstr "Ajuster les paramètres 3D" + +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "Ajustez les paramètres de couleurs de sorte que toutes les nuances de couleurs soient visibles, mais apparaissent saturées autant que possible. Si vous êtes content du résultat, pressez OK pour fermer le réglage vidéo avancé, ou utilisez les touches numérique pour choisir d'autres écrans de test." + +msgid "Advanced" +msgstr "Avancé" + +msgid "Advanced options" +msgstr "Options Avancées" + +msgid "Advanced restore" +msgstr "Restauration avancée" + +msgid "Advanced software" +msgstr "Logiciel Avancé" + +msgid "Advanced software plugin" +msgstr "Plugin Logiciel Avancé" + +msgid "Advanced video enhancement setup" +msgstr "Paramètres Vidéo Améliorée Avancés" + +msgid "Advanced video setup" +msgstr "Paramètres Vidéo Avancés" + +msgid "After event" +msgstr "Après l'émission" + +msgid "Album" +msgstr "Album" + +msgid "Alignment of events" +msgstr "Alignement des évènements" + +msgid "Alignment of service names" +msgstr "Alignement des noms de service" + +msgid "All" +msgstr "Toutes" + +msgid "All ages" +msgstr "Tous les âges" + +msgid "All satellites 1 (USALS)" +msgstr "Tous satellites 1 (USALS)" + +msgid "All satellites 2 (USALS)" +msgstr "Tous satellites 2 (USALS)" + +msgid "All satellites 3 (USALS)" +msgstr "Tous satellites 3 (USALS)" + +msgid "All satellites 4 (USALS)" +msgstr "Tous satellites 4 (USALS)" + +msgid "Allocate" +msgstr "Allouer" + +msgid "Allocate unused memory index" +msgstr "Allouer indice de la mémoire inutilisée" + +msgid "Allow quit movieplayer with exit" +msgstr "Autoriser de quitter Movieplayer avec exit" + +msgid "Allow subtitle language to equal audio language" +msgstr "Autoriser les sous-titres identique à la sélection audio" + +msgid "Allow subtitles for hearing impaired" +msgstr "Autoriser les sous-titres pour malentendants" + +msgid "Alpha" +msgstr "Transparence" + +msgid "Alternative" +msgstr "Ajouter les alternatifs" + +msgid "Alternative numbering mode" +msgstr "Mode radio alternatif" + +msgid "Alternative services tuner priority" +msgstr "Priorité tuner services alternatifs" + +msgid "Always ask" +msgstr "Toujours demander" + +msgid "Always hide infobar" +msgstr "Toujours cacher la barre d'infos" + +msgid "An empty filename is illegal." +msgstr "Un nom de fichier vide est illégal." + +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "Une erreur s'est produite lors du téléchargement de la liste paquet. S'il vous plaît essayez de nouveau." + +msgid "An unknown error occurred!" +msgstr "Une erreur inconnue est survenue !" + +msgid "And will put your receiver in standby over " +msgstr "Et va mettre votre récepteur en veiller après" + +msgid "Any activity" +msgstr "Pour toute activité" + +msgid "Arabic" +msgstr "Arabe" + +msgid "Are you sure to remove this entry?" +msgstr "Êtes-vous sûr de vouloir supprimer cette entrée?" + +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"Êtes-vous sûr de vouloir activer cette configuration réseau ?\n" +"\n" + +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"Êtes-vous sûr de vouloir effacer\n" +"la sauvegarde suivante :\n" + +msgid "Are you sure you want to exit this wizard?" +msgstr "Êtes-vous sûr de vouloir quitter cet assistant ?" + +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"Êtes-vous sûr de vouloir redémarrer votre interface réseau ?\n" +"\n" + +#, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Êtes-vous sûr de vouloir restaurer\n" +"la sauvegarde suivante :\n" +"%s\n" +"Votre récepteur redémarra après la restauration !" + +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Êtes-vous sûr de vouloir restaurer la sauvegarde ?\n" +"Votre récepteur redémarra après la restauration !" + +msgid "Artist" +msgstr "Artistes" + +msgid "Arts/Culture" +msgstr "Arts/Culture" + +msgid "Ask user" +msgstr "Demander à l'utilisateur" + +msgid "Aspect ratio" +msgstr "Format d'image" + +msgid "Assigned CAIds:" +msgstr "CAIds assignés :" + +msgid "Assigned services/provider:" +msgstr "Services/Opérateurs assignés :" + +msgid "At beginning" +msgstr "Au début" + +msgid "At end" +msgstr "À la fin" + +msgid "Audio" +msgstr "Audio" + +msgid "Audio PID" +msgstr "PID Audio" + +msgid "Audio language selection 1" +msgstr "Sélection de la langue audio 1" + +msgid "Audio language selection 2" +msgstr "Sélection de la langue audio 2" + +msgid "Audio language selection 3" +msgstr "Sélection de la langue audio 3" + +msgid "Audio language selection 4" +msgstr "Sélection de la langue audio 4" + +msgid "Audio options..." +msgstr "Options Audio..." + +#, python-format +msgid "Audio track (%s) format" +msgstr "Format piste audio (%s)" + +#, python-format +msgid "Audio track (%s) language" +msgstr "Langue piste audio (%s)" + +msgid "Author: " +msgstr "Auteur : " + +msgid "Authoring mode" +msgstr "Mode création" + +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Auto" + +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Auto diviser chaque chapitre ? minutes (0 = jamais)" + +msgid "Auto flesh" +msgstr "Correction couleurs auto (Auto flesh)" + +msgid "Auto focus" +msgstr "Mise au point auto" + +msgid "Auto focus commencing ..." +msgstr "Démarrage Mise au point auto ..." + +msgid "Auto language selection" +msgstr "Auto sélection de la langue" + +msgid "Auto scart switching" +msgstr "Commutation auto péritel" + +msgid "Automatic" +msgstr "Automatique" + +msgid "Automatic scan" +msgstr "Analyse Automatique" + +msgid "Automatically start timeshift after" +msgstr "Automatiquement démarrer le timeshift après" + +msgid "Automatically turn on external subtitles" +msgstr "Activer automatiquement les sous-titres externes" + +msgid "Available format variables" +msgstr "Format variables disponibles" + +msgid "B" +msgstr "B" + +msgid "BER" +msgstr "BER" + +msgid "BER:" +msgstr "BER :" + +msgid "Back" +msgstr "Arrière" + +msgid "Background" +msgstr "Arrière-plan" + +msgid "Background color" +msgstr "Couleur de fond" + +msgid "Background delete option" +msgstr "Option de suppression en arrière-plan" + +msgid "Background delete speed" +msgstr "Vitesse de suppression en arrière-plan" + +msgid "Backup completed." +msgstr "Sauvegarde terminée." + +msgid "Backup failed." +msgstr "Échec de la sauvegarde." + +msgid "Backup is running..." +msgstr "Sauvegarde en cours..." + +msgid "Backup system settings" +msgstr "Sauver paramètres système" + +msgid "Band" +msgstr "Bande" + +msgid "Bandwidth" +msgstr "Bande passante" + +msgid "Basque" +msgstr "Basque" + +msgid "Begin time" +msgstr "Heure début" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +msgid "Behavior of 0 key in PiP-mode" +msgstr "Effet touche 0 en mode PiP" + +msgid "Behavior when a movie is started" +msgstr "Action lorsqu'un film est démarré" + +msgid "Behavior when a movie is stopped" +msgstr "Action lorsqu'un film est arrêté" + +msgid "Behavior when a movie reaches the end" +msgstr "Action lorsqu'un film atteint la fin" + +msgid "Big PiP" +msgstr "" + +msgid "Bitrate:" +msgstr "Bitrate :" + +msgid "Black screen" +msgstr "Ecran noir" + +msgid "Black screen till locked" +msgstr "Ecran noir jusqu'au vérouillage" + +msgid "Block noise reduction" +msgstr "Bloc réduction bruit" + +msgid "Blue boost" +msgstr "Intensifier le bleu" + +msgid "Bookmarks" +msgstr "Marque-pages" + +msgid "Brightness" +msgstr "Luminosité" + +msgid "Bulgarian" +msgstr "Bulgare" + +msgid "Burn DVD" +msgstr "Graver le DVD" + +#, python-format +msgid "Burn audio track (%s)" +msgstr "Graver piste audio (%s)" + +msgid "Burn existing image to DVD" +msgstr "Graver l'image existante sur DVD" + +msgid "Burn to DVD" +msgstr "Graver sur DVD" + +msgid "Bus: " +msgstr "Bus: " + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "Par défaut, le SNR sera affiché en dB (quand supporté par le tuner). Si activé, le SNR sera affiché en pourcentage." + +msgid "C" +msgstr "C" + +msgid "C-Band" +msgstr "Bande C" + +msgid "CH" +msgstr "CH" + +msgid "CI assignment" +msgstr "Assignation CI" + +msgid "CVBS" +msgstr "CVBS" + +msgid "Cable" +msgstr "Câble" + +msgid "Cable Scan" +msgstr "Scan du Cable" + +msgid "Cache thumbnails" +msgstr "Cache vignettes" + +msgid "Calculate" +msgstr "Calculer" + +msgid "Calculate all positions" +msgstr "Calculer toutes les positions" + +msgid "Calculation complete" +msgstr "Calcul terminé" + +msgid "Calibrate" +msgstr "Calibrer" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "Peut-être utilisé pour différents fps entre les sous-titres externes et la vidéo" + +msgid "Cancel" +msgstr "Annuler" + +msgid "Cannot determine" +msgstr "Impossible à déterminer" + +msgid "Cannot find any signal ..., aborting !" +msgstr "Impossible de trouver un signal ..., abandon !" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "Impossible de déplacer les fichiers sur un disque ou système différent dans la corbeille" + +msgid "Cannot move to trash can" +msgstr "Impossible de déplacer dans la corbeille" + +msgid "Capacity: " +msgstr "Capacité : " + +msgid "Card" +msgstr "Carte" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "Sous-titres DVB centrés" + +msgid "Center time-labels and remove date" +msgstr "Centrer les time-labels et supprimer la date" + +msgid "Change bouquets in quickzap" +msgstr "Changer les bouquets en zapping rapide" + +msgid "Change pin code" +msgstr "Changer code pin" + +msgid "Change recording (duration)" +msgstr "Modifier un enregistrement (durée)" + +msgid "Change recording (endtime)" +msgstr "Modifier un enregistrement (heure de fin)" + +msgid "Change repeat and delay settings?" +msgstr "Changer répétition et retarder les paramètres ?" + +msgid "Change service PIN" +msgstr "Changer PIN service" + +msgid "Change service PINs" +msgstr "Changer PINs service" + +msgid "Change setup PIN" +msgstr "Changer PIN paramètres" + +msgid "Change step size" +msgstr "Changer taille de pas" + +msgid "Change timer" +msgstr "Changer programmation" + +msgid "Changelog" +msgstr "Changelog" + +msgid "Channel" +msgstr "Canal" + +msgid "Channel list type" +msgstr "Liste des chaînes" + +msgid "Channel not in services list" +msgstr "Chaîne absente de la liste services" + +msgid "Channel selection" +msgstr "Sélection de la chaîne" + +msgid "Channel:" +msgstr "Chaîne :" + +msgid "Channellist menu" +msgstr "Liste des chaînes" + +msgid "Chap." +msgstr "Chap." + +msgid "Chapter" +msgstr "Chapitre" + +msgid "Chapter:" +msgstr "Chapitre:" + +msgid "Check" +msgstr "Vérification" + +msgid "Check the internet connection" +msgstr "Vérifiez la connexion internet" + +msgid "Check the internet connection again" +msgstr "Vérifiez à nouveau la connexion Internet" + +msgid "Checking filesystem..." +msgstr "Vérification du Système de fichiers..." + +msgid "Checking the internet connection" +msgstr "Vérification de la connexion internet" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" +"Vérification tuner %d\n" +"DiSEqC port %s pour %s" + +msgid "Children/Youth" +msgstr "Enfant/Jeune" + +msgid "Choose which tuner to configure." +msgstr "Choisissez le tuner à configurer." + +msgid "Circular left" +msgstr "Circulaire gauche" + +msgid "Circular right" +msgstr "Circulaire droit" + +msgid "Cleanup" +msgstr "Nettoyage" + +msgid "Clear" +msgstr "Effacer" + +msgid "Clear before scan" +msgstr "Effacer avant d'analyser" + +msgid "Clear fixed" +msgstr "Nouvelle adresse" + +msgid "Clear log" +msgstr "Effacer le log" + +msgid "Clear playlist" +msgstr "Effacer liste de lecture" + +msgid "Close" +msgstr "Fermer" + +msgid "Close PiP on exit" +msgstr "Fermer PiP en quittant" + +msgid "Close title selection" +msgstr "Fermer sélection titre" + +msgid "Code rate HP" +msgstr "Fréquence code Haut" + +msgid "Code rate LP" +msgstr "Fréquence code Bas" + +msgid "Coderate HP" +msgstr "Fréquence code haut" + +msgid "Coderate LP" +msgstr "Fréquence code bas" + +msgid "Collection name" +msgstr "Nom de la collection" + +msgid "Collection settings" +msgstr "Paramètres de la collection" + +msgid "Color format" +msgstr "Format de Couleur" + +msgid "Command execution..." +msgstr "Exécution de la commande..." + +msgid "Command order" +msgstr "Ordre de la commande" + +msgid "Common Interface" +msgstr "Interface Commune" + +msgid "Common Interface assignment" +msgstr "Assignation Interface Commune" + +msgid "Communication" +msgstr "Communication" + +msgid "Compact flash" +msgstr "Compact Flash" + +msgid "Complete" +msgstr "Terminé" + +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "Complexe (autorise mélange pistes audio et aspects)" + +msgid "Composition of the recording filenames" +msgstr "Composition noms de fichiers d'enregistrement" + +msgid "Configuration mode" +msgstr "Mode de configuration" + +#, python-format +msgid "Configuration mode: %s" +msgstr "Mode de configuration : %s" + +msgid "Configuration..." +msgstr "Configuration..." + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "Configurez un délai additionnel pour améliorer la synchronisation des sous-titres externes." + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "Configurez un délai additionnel pour améliorer la synchronisation des sous-titres." + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "Configurez combien de temps la barre d'informations demeurent visibles après activation." + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "Configurez combien de temps un événements terminé doit rester visible dans l'EPG. Utile lorsque vous avez besoin d'informations sur un événement qui vient de se terminer, ou a été retardé." + +msgid "Configure how recording filenames are constructed." +msgstr "Configurez la façon dont les noms de fichiers d'enregistrement sont construits." + +msgid "Configure how the fan should operate" +msgstr "Configurer l'activité du ventilateur." + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "Configurer si et où les picons d'encryption seront affichés dans la liste des chaînes." + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "Configurer si et où les picons de service seront affichés dans la liste des chaînes." + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "Configurer si les picons des services seront affichés dans la liste des chaînes." + +msgid "Configure interface" +msgstr "Configurez interface" + +msgid "Configure nameservers" +msgstr "Configurez serveurs de noms" + +msgid "Configure on which devices the background delete option should be used." +msgstr "Configurez sur lequel des dispositifs l'option de suppression d'arrière-plan doit être utilisé." + +msgid "Configure remote control type" +msgstr "Configurez le type de télécommande" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "Configurez le mode DiSEqC pour cette LNB." + +msgid "Configure the IP address." +msgstr "Configurez l'adresse IP." + +msgid "Configure the aspect ratio of the screen." +msgstr "Configurez le format d'image de l'écran." + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "Configurez le comportement lorsqu'un film est arrêté volontairement." + +msgid "Configure the behavior when movie playback is started." +msgstr "Configurez le comportement lorsqu'un film est démarré." + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "Configurez le comportement en atteignant la fin d'un film, pendant la lecture du film." + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "Configurez la largeur de bordure des sous-titres. La bordure noire rend les sous-titres faciles à lire sur un fond clair." + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "Configurez le niveau de luminosité de l'affichage du panneau avant en mode veille." + +msgid "Configure the brightness level of the front panel display." +msgstr "Configurez le niveau de luminosité de l'affichage du panneau avant." + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "Configurez la couleur des sous-titres externes, Alternatif (normal en blanc, italic en jaune, gras en cyan, sous-ligné en vert), Blanc ou Jaune." + +msgid "Configure the color of the teletext subtitles." +msgstr "Configurez la couleur des sous-titres télétexte." + +msgid "Configure the contrast level of the front panel display." +msgstr "Configurez le niveau de contraste de l'affichage du panneau avant." + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "Configurer le comportement du curseur dans la liste de sélection des chaînes. Lorsque vous ouvrez la liste de sélection des chaînes vous pouvez garder la position du service actuel ou déjà sélectionner le serveur haut/bas et vous pouvez inverser les touches B+/B-." + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "Configurez la durée en minutes de l'économiseur d'écran." + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "Configurez la durée après laquelle le récepteur doit s'éteindre lorsqu'il est en mode veille." + +msgid "Configure the first audio language (highest priority)." +msgstr "Configurez la première langue audio (priorité la plus élevée)." + +msgid "Configure the first subtitle language (highest priority)." +msgstr "Configurez la première langue des sous-titres (priorité la plus élevée)." + +msgid "Configure the font size of the subtitles." +msgstr "Configurez la taille de police des sous-titres." + +msgid "Configure the fourth audio language." +msgstr "Configurez la quatrième langue audio." + +msgid "Configure the fourth subtitle language." +msgstr "Configurez la quatrième langue des sous-titres." + +msgid "Configure the function of a long press on the power button." +msgstr "Configurez la fonction 'appui long' sur le bouton d'alimentation." + +msgid "Configure the function of a short press on the power button." +msgstr "Configurez la fonction 'appui court' sur le bouton d'alimentation." + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "Configurez la fonction du '0 'quand le bouton PIP est actif." + +msgid "Configure the gateway." +msgstr "Configurez la passerelle." + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "Configurez le retard général des pistes audio Dolby Digital." + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "Configurez le retard général des pistes audio stéréo." + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "Configurez le disque dur pour passer en mode veille après la durée spécifiée d'inactivité." + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "Configurez l'alignement horizontal des sous-titres." + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "Configurez la vitesse d'avance rapide. Lorsque vous appuyez sur le bouton d'avance rapide, la lecture débutera à cette vitesse." + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "Configurez la vitesse de rembobinage. Lorsque vous appuyez sur le bouton de rembobinage, la lecture arrière débutera à cette vitesse." + +msgid "Configure the latitude of your location." +msgstr "Configurez la latitude de votre position." + +msgid "Configure the longitude of your location." +msgstr "Configurez la longitude de votre position." + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "Configurez le niveau minimum d'espace disque disponible pour les enregistrements. Lorsque la quantité d'espace descend en dessous de cette valeur, les éléments supprimés seront supprimés de la corbeille." + +msgid "Configure the nameserver (DNS)." +msgstr "Configurez serveur de nom (DNS)." + +msgid "Configure the netmask." +msgstr "Configurez le masque de réseau." + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "Configurez le nombre de jours après lequel les éléments sont automatiquement retirée de la corbeille." + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "Configurez le nombre de jours d'archivage des anciennes programmations avant qu'elles ne soient automatiquement supprimés de la liste des programmations." + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "Configurez le délai de déconnection du décodage en millisecondes. Le retard configuré est observé à chaque changement de parité." + +msgid "Configure the possible fast forward speeds." +msgstr "Configurez les vitesses d'avance Rapide possibles." + +msgid "Configure the possible rewind speeds." +msgstr "Configurez les vitesses de rembobinage possibles." + +msgid "Configure the primary EPG language." +msgstr "Configurez la première langue EPG." + +msgid "Configure the refresh rate of the screen." +msgstr "Configurez la fréquence de rafraîchissement de l'écran." + +msgid "Configure the screen resolution in PC output mode." +msgstr "Configurez la résolution de l'écran en mode de sortie PC." + +msgid "Configure the second audio language." +msgstr "Configurez la deuxième langue audio." + +msgid "Configure the second subtitle language." +msgstr "Configurez la deuxième langue des sous-titres." + +msgid "Configure the secondary EPG language." +msgstr "Configurez la deuxième langue EPG." + +msgid "Configure the sharpness of the video scaling." +msgstr "Configurez la netteté de l'échelle vidéo." + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "Configurez l'intervalle de temps de saut pour les boutons '1 '/ '3'." + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "Configurez l'intervalle de temps de saut pour les boutons '4 '/ '6'." + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "Configurez l'intervalle de temps de saut pour les boutons '7 '/ '9'." + +msgid "Configure the slow motion speeds." +msgstr "Configurez les vitesses de ralenti." + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "Configurer la source de donnée du frontend affiché dans la barre d'infos. 'Paramètres' est comme stocké dans les paramètres. 'Tuner' est comme retourné par le tuner." + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "Configurez la vitesse du processus de suppression d'arrière-plan. Une vitesse basse consommera moins les performances du disque dur." + +msgid "Configure the speed of the fan" +msgstr "Configurer la vitesse du ventilateur." + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "Configurez le délai des sous-titres lorsque les informations de synchronisation ne sont pas disponible." + +msgid "Configure the third audio language." +msgstr "Configurez la troisième langue audio." + +msgid "Configure the third subtitle language." +msgstr "Configurez la troisième langue des sous-titres." + +msgid "Configure the transparency of the OSD." +msgstr "Configurez la transparence de l'OSD." + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "Configurez la transparence du fond noir des sous-titres DVB." + +msgid "Configure the tuner mode." +msgstr "Configurez le mode tuner." + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "Configurez le type d'icônes d'indication d'état figurant dans la liste des films." + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "Configurez la position verticale des sous-titres, mesurée à partir du bas de l'écran." + +msgid "Configure the video output mode (or resolution)." +msgstr "Configurez le mode de sortie vidéo (ou résolution)." + +msgid "Configure the way in which the receiver changes channels." +msgstr "Configurez la façon dont le récepteur change les chaines." + +msgid "Configure where completed timers show up in the timer list." +msgstr "Configurez comment les programmations terminées apparaissent dans la liste des programmations." + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "Configurez si (et pour combien de temps) une deuxième barre d'informations s'affiche lorsque vous appuyez sur OK à deux reprises. La seconde barre contient des informations supplémentaires sur le canal actuel." + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "Permet de configurer si plusieurs pistes sonores doivent être remixées en stéréo." + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "Configurez si oui ou non une icône doit apparaître lorsque votre parabole motorisée est en mouvement." + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "Configurez les niveaux d'accès à utiliser pour le menu de configuration. Niveau expert donne accès à tous les paramètres." + +msgid "Configure which color format should be used on the SCART output." +msgstr "Configurez si le format couleur doit être utilisée sur la sortie Péritel." + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "Configurer le tuner qui sera préféré pour enregistrer, lorsque plus d'un tuner est disponible." + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "Configurez le type de tuner qui sera préféré, lorsque le même service est disponible sur différents types de tuners." + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "Configurez quel tuner sera préféré, lorsque plus d'un tuner est disponible. S'il est réglé sur «auto» le système accordera la priorité au tuner ayant le plus faible nombre de chaines/satellites." + +msgid "Configure your internal LAN" +msgstr "Configurez votre réseau interne" + +msgid "Configure your network again" +msgstr "Configurez votre réseau encore" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "Configurez vos paramètres réseau, puis appuyez sur OK pour lancer le scan" + +msgid "Configure your wireless LAN again" +msgstr "Configurez votre LAN sans fil encore" + +msgid "Configures which video output connector will be used." +msgstr "Configurez le type de sortie vidéo qui sera utilisé." + +msgid "Configuring" +msgstr "Configuration" + +msgid "Conflicting timer" +msgstr "Programmation conflictuelle" + +msgid "Connect" +msgstr "Connecter" + +msgid "Connect to a wireless network" +msgstr "Connecter à un réseau sans fil" + +msgid "Connected satellites" +msgstr "" + +msgid "Connected to" +msgstr "Connecté à" + +msgid "Connected!" +msgstr "Connecté !" + +msgid "Constellation" +msgstr "Constellation" + +msgid "Content does not fit on DVD!" +msgstr "Le contenu ne tient pas sur le DVD !" + +msgid "Continue" +msgstr "Continuer" + +msgid "Continue in background" +msgstr "Continuer en arrière plan" + +msgid "Continue playback" +msgstr "Lecture continue" + +msgid "Continue playing" +msgstr "Lecture continue" + +msgid "Continues play (loop)" +msgstr "Continue la lecture (boucle)" + +msgid "Contrast" +msgstr "Contraste" + +msgid "Convert ext3 filesystem to ext4" +msgstr "Convertir fichier système ext3 vers ext4" + +msgid "Convert ext3 to ext4" +msgstr "Convertir ext3 vers ext4" + +msgid "Converting ext3 to ext4..." +msgstr "Convertir ext3 vers ext4..." + +msgid "Copy" +msgstr "Copier" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "Impossible de connecter le recepteur au serveur d'image .NFI :" + +msgid "Could not find installed channel list." +msgstr "Impossible de trouver la liste des chaînes installées." + +msgid "Could not load medium! No disc inserted?" +msgstr "Impossible de charger le support ! Aucun disque inséré ?" + +msgid "Could not open Picture in Picture" +msgstr "N'a pu ouvrir l'incrusation d'image" + +#, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "Impossible d'enregistrer en raison d'un conflit de programmation %s" + +#, python-format +msgid "Could not record due to invalid service %s" +msgstr "Impossible d'enregistrer en raison d'un service non valide %s" + +msgid "Create DVD-ISO" +msgstr "Créer DVD-ISO" + +msgid "Create more detailed crash log" +msgstr "Créer un crash log plus détaillé" + +#, python-format +msgid "Creating directory %s failed." +msgstr "Échec création répertoire %s." + +msgid "Creating filesystem" +msgstr "Création du système de fichier" + +msgid "Creating partition" +msgstr "Création de partition" + +msgid "Croatian" +msgstr "Croate" + +msgid "Current CEC address" +msgstr "Adresse actuelle CEC" + +msgid "Current device: " +msgstr "Périphérique actuel : " + +msgid "Current event EPG" +msgstr "Évènement EPG en cours" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +msgid "Current settings:" +msgstr "Paramètres actuels :" + +msgid "Current transponder" +msgstr "Transpondeur actuel" + +msgid "Current value: " +msgstr "Valeur actuelle : " + +msgid "Current version:" +msgstr "Version actuelle :" + +msgid "Currently installed image" +msgstr "Image installé actuellement" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +msgid "Custom skip time for '1'/'3' buttons" +msgstr "Personnaliser délai saut pour touches '1'/'3'" + +msgid "Custom skip time for '4'/'6' buttons" +msgstr "Personnaliser délai saut pour touches '4'/'6'" + +msgid "Custom skip time for '7'/'9' buttons" +msgstr "Personnaliser délai saut pour touches '7'/'9'" + +msgid "Customize" +msgstr "Personnaliser" + +msgid "Customize channel list cursor behavior" +msgstr "Comportement du curseur dans la liste des chaînes" + +msgid "Cut" +msgstr "Couper" + +msgid "Cutlist editor..." +msgstr "Éditeur monter/couper..." + +msgid "Czech" +msgstr "Tchèque" + +msgid "D" +msgstr "D" + +msgid "DHCP" +msgstr "DHCP" + +msgid "DMM advanced" +msgstr "DMM avancée" + +msgid "DMM normal" +msgstr "DMM normal" + +msgid "DUAL LAYER DVD" +msgstr "DVD DOUBLE COUCHE" + +msgid "DVB subtitle black transparency" +msgstr "Transparence des sous-titres DVB" + +msgid "DVB-C" +msgstr "DVB-C" + +msgid "DVB-C ANNEX C" +msgstr "DVB-C ANNEX C" + +msgid "DVB-S" +msgstr "DVB-S" + +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "DVB-T" + +msgid "DVB-T2" +msgstr "DVB-T2" + +msgid "DVD data format" +msgstr "Format de données DVD" + +msgid "DVD file browser" +msgstr "Explorateur de fichier DVD" + +msgid "DVD media toolbox" +msgstr "Boite outils média DVD" + +msgid "DVD player" +msgstr "Lecteur DVD" + +msgid "DVD titlelist" +msgstr "Liste titres DVD" + +msgid "Danish" +msgstr "Danois" + +msgid "Date" +msgstr "Date" + +msgid "Date/time input" +msgstr "Entrée Date/Heure" + +msgid "Deep standby" +msgstr "Veille profonde" + +msgid "Default" +msgstr "Par défaut" + +msgid "Default movie location" +msgstr "Emplacement standard films" + +msgid "Default settings" +msgstr "Paramètres par défaut" + +msgid "Delay before key repeat starts:" +msgstr "Délai avant que la répétition des touches commence :" + +msgid "Delay for external subtitles" +msgstr "Délai pour les sous-titres externes" + +msgid "Delete" +msgstr "Effacer" + +msgid "Delete entry" +msgstr "Retire entrée" + +msgid "Delete failed!" +msgstr "L'effacement a échoué !" + +msgid "Delete file" +msgstr "Effacer fichier" + +msgid "Delete playlist entry" +msgstr "Effacer enrée liste lecture" + +msgid "Delete saved playlist" +msgstr "Effacer liste lecture sauvée" + +msgid "Delete timer" +msgstr "Effacer programmation" + +msgid "Delete..." +msgstr "Effacer..." + +msgid "Deleted" +msgstr "Supprimé" + +msgid "Deleted items" +msgstr "Eléments supprimés" + +msgid "Depth" +msgstr "Profondeur" + +msgid "Descramble http streams" +msgstr "Décrypter les flux HTTP" + +msgid "Description" +msgstr "Description" + +msgid "Deselect" +msgstr "Désélectionner" + +msgid "Details for plugin: " +msgstr "Détails pour plugin : " + +msgid "Detected HDD:" +msgstr "DD détecté : " + +msgid "Detected NIMs:" +msgstr "Tuners détectés :" + +msgid "Devicename:" +msgstr "Nom du périphérique :" + +msgid "Devide" +msgstr "" + +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "DiSEqC 1.0 commande" + +msgid "DiSEqC 1.1 command" +msgstr "DiSEqC 1.1 commande" + +msgid "DiSEqC 1.1 repeats" +msgstr "DiSEqC 1.1 Répétitions" + +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +msgid "DiSEqC mode" +msgstr "Mode DiSEqC" + +#, python-format +msgid "DiSEqC port %s: %s" +msgstr "DiSEqC port %s : %s" + +msgid "DiSEqC-tester settings" +msgstr "Paramètres Testeur-DiSEqC" + +msgid "Dialing:" +msgstr "Appel :" + +msgid "Digital contour removal" +msgstr "Retrait contour digital" + +msgid "Direct playback of linked titles without menu" +msgstr "Lecture direct des titres liés sans menu" + +msgid "Directory" +msgstr "Répertoire" + +#, python-format +msgid "Directory %s does not exist." +msgstr "Répertoire %s n'existe pas." + +#, python-format +msgid "Directory %s nonexistent." +msgstr "Répertoire %s n'existe pas." + +msgid "Directory browser" +msgstr "Navigateur répertoire" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "Le répertoire contient %d fichier(s) et %d sous-répertoire(s).\n" + +#, python-format +msgid "Directory contains %s and %s." +msgstr "Répertoire contient %s et %s." + +msgid "Disable" +msgstr "Désactiver" + +msgid "Disable Picture in Picture" +msgstr "Désactiver l'incrustation d'image" + +msgid "Disable background scanning" +msgstr "Désactiver l'analyse en arrière-plan" + +msgid "Disable timer" +msgstr "Désactiver programmation" + +msgid "Disabled" +msgstr "Désactivé" + +msgid "Disconnect" +msgstr "Déconnecter" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "Espace disque à réserver pour les enregistrements (en Go)" + +msgid "Display 16:9 content as" +msgstr "Afficher contenu 16:9 comme" + +msgid "Display 4:3 content as" +msgstr "Afficher contenu 4:3 comme" + +msgid "Display >16:9 content as" +msgstr "Afficher contenu >16:9 comme" + +msgid "Display and userinterface" +msgstr "Affichage et interface utilisateur" + +msgid "Display message before playing next movie" +msgstr "Afficher un message avant de lancer le prochain film" + +msgid "Display setup" +msgstr "Paramètres d'affichage" + +msgid "Do not change" +msgstr "Ne pas changer" + +msgid "Do not record" +msgstr "Ne pas enregistrer" + +msgid "Do nothing" +msgstr "Ne rien faire" + +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Voulez-vous vraiment vérifier le système de fichiers ?\n" +"Cela pourrait prendre beaucoup de temps!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" +"Voulez-vous vraiment convertir le système de fichiers ?\n" +"Vous ne pourrez pas revenir en arrière !" + +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Voulez-vous vraiment effacer %s ?" + +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"Voulez-vous vraiment télécharger\n" +"le plugin \"%s\"?" + +msgid "Do you really want to exit?" +msgstr "Voulez-vous vraiment quitter ?" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" +"Voulez-vous vraiment initialiser le périphérique ?\n" +"Toutes les données du disque seront perdues !" + +#, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"Voulez-vous vraiment enlever\n" +"le plugin \"%s\" ?" + +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Voulez-vous vraiment retirer le répertoire %s du disque ?" + +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Voulez-vous vraiment retirer votre marque page %s ?" + +msgid "Do you want this?" +msgstr "Voulez-vous ceci?" + +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Voulez-vous graver cette collection sur le DVD ?" + +msgid "Do you want to do a service scan?" +msgstr "Voulez-vous faire une analyse des services ?" + +msgid "Do you want to do another manual service scan?" +msgstr "Voulez-vous faire une autre analyse manuelle des services ?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "Voulez-vous télécharger l'image vers %s ?" + +msgid "Do you want to install a channel list?" +msgstr "Voulez-vous installer la liste des chaines ?" + +msgid "Do you want to install the package:\n" +msgstr "Voulez-vous installer le paquet :\n" + +msgid "Do you want to play DVD in drive?" +msgstr "Voulez-vous lire le DVD dans le lecteur ?" + +msgid "Do you want to preview this DVD before burning?" +msgstr "Voulez-vous une prévisualisation du DVD avant de le graver ?" + +msgid "Do you want to reboot your receiver?" +msgstr "Voulez-vous redémarrer votre récepteur ?" + +msgid "Do you want to remove the package:\n" +msgstr "Voulez-vous retirer le paquet :\n" + +msgid "Do you want to restore your settings?" +msgstr "Voulez-vous restaurer vos paramètres ?" + +msgid "Do you want to resume this playback?" +msgstr "Voulez-vous reprendre cette lecture ?" + +#, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Voulez-vous mettre à jour votre récepteur vers %s ?" + +msgid "Do you want to update your receiver?" +msgstr "Voulez-vous mettre à jour votre récepteur ?" + +msgid "Do you want to upgrade the package:\n" +msgstr "Voulez-vous mettre à jour le paquet :\n" + +msgid "Don't stop current event but disable coming events" +msgstr "Ne pas stopper événement actuel, mais désactiver les prochains" + +#, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "Terminé - Installé, mis à jour ou retiré %d paquet (%s)" +msgstr[1] "Terminé - Installé, mis à jour ou retiré %d paquets (%s)" + +msgid "Download" +msgstr "Télécharge" + +#, python-format +msgid "Download %s from server" +msgstr "Télécharger %s depuis le Serveur" + +msgid "Download .NFI-files for USB-flasher" +msgstr "Téléchargement fichiers .NFI pour USB-flasheur" + +msgid "Download plugins" +msgstr "Télécharger plugins" + +msgid "Downloadable new plugins" +msgstr "Nouvelles extensions téléchargables" + +msgid "Downloadable plugins" +msgstr "Extensions téléchargeables" + +msgid "Downloading" +msgstr "Téléchargement" + +msgid "Downloading plugin information. Please wait..." +msgstr "Téléchargement des informations sur les extensions. Patientez SVP..." + +msgid "Dutch" +msgstr "Néerlandais" + +msgid "Dynamic contrast" +msgstr "Contraste dynamique" + +msgid "E" +msgstr "E" + +msgid "EPG" +msgstr "EPG" + +msgid "EPG language selection 1" +msgstr "Sélection de la langue EPG 1" + +msgid "EPG language selection 2" +msgstr "Sélection de la langue EPG 2" + +msgid "EPG selection" +msgstr "Sélection EPG" + +msgid "EPG settings" +msgstr "Paramètres EPG" + +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "ERREUR - échec lors de l'analyse (%s) !" + +msgid "East" +msgstr "Est" + +msgid "East limit set" +msgstr "Fixer limite Est" + +msgid "Edit" +msgstr "Éditer" + +msgid "Edit DNS" +msgstr "Éditer DNS" + +msgid "Edit bouquets list" +msgstr "Éditer liste bouquets" + +msgid "Edit chapters of current title" +msgstr "Éditer chapitres titre actuel" + +msgid "Edit services list" +msgstr "Éditer liste services" + +msgid "Edit settings" +msgstr "Éditer paramètres" + +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "Modifier la configuration du serveur de nom de votre récepteur.\n" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "Modifier la configuration réseau de votre récepteur.\n" + +msgid "Edit timer" +msgstr "Éditer programmation" + +msgid "Edit title" +msgstr "Éditer titre" + +msgid "Edit upgrade source url." +msgstr "Éditer url source mise à jour." + +msgid "Education/Science/..." +msgstr "Éducation/Science/..." + +msgid "Electronic Program Guide" +msgstr "Guide électronique programme" + +msgid "Enable" +msgstr "Activer" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +msgid "Enable 5V for active antenna" +msgstr "Autoriser 5V pour antenne active" + +msgid "Enable EIT EPG" +msgstr "Activer EPG EIT" + +msgid "Enable MHW EPG" +msgstr "Activer EPG MHW" + +msgid "Enable Netmed EPG" +msgstr "Activer EPG Netmed" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "Activer EPG ViaSat" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "Actvier auto fast scan" + +msgid "Enable bouquet selection in multi-EPG" +msgstr "Activer la sélection bouquet multi-EPG" + +msgid "Enable freesat EPG" +msgstr "Activer EPG freesat" + +msgid "Enable multiple bouquets" +msgstr "Activer bouquets multiples" + +msgid "Enable parental control" +msgstr "Activer contrôle parental" + +msgid "Enable teletext caching" +msgstr "Activer la mise en cache du télétexte" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +msgid "Enabled" +msgstr "Activer" + +msgid "Encrypted: " +msgstr "Crypté : " + +msgid "Encryption" +msgstr "Cryptage" + +msgid "Encryption key" +msgstr "Clés cryptage" + +msgid "Encryption key type" +msgstr "Type de clé cryptage" + +msgid "Encryption:" +msgstr "Cryptage :" + +msgid "End time" +msgstr "Heure fin" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "Heure de fin pour ignorer l'arrêt automatique" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +msgid "English" +msgstr "Anglais" + +msgid "Enigma2 skin selector" +msgstr "Enigma2 sélection du skin" + +msgid "Enter main menu..." +msgstr "Entrer dans le menu principal..." + +msgid "Enter pin code" +msgstr "Saisir code PIN" + +msgid "Enter the service pin" +msgstr "Entrer le pin service" + +msgid "Equal to" +msgstr "Égale au" + +msgid "Error" +msgstr "Erreur" + +msgid "Error code" +msgstr "Code d'erreur" + +msgid "Error executing plugin" +msgstr "Erreur d'exécution de l'extension" + +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Erreur : %s\n" +"Réessayer ?" + +msgid "Estonian" +msgstr "Estonien" + +msgid "Ethernet network interface" +msgstr "Interface réseau Ethernet" + +msgid "Event font size (relative to skin size)" +msgstr "Taille de la police de l'événement (par rapport à la taille du skin)" + +msgid "Event view" +msgstr "Programme TV" + +msgid "Event view menu" +msgstr "Menu d'affichage de l'événement" + +msgid "Everywhere" +msgstr "Partout" + +msgid "Exceeds dual layer medium!" +msgstr "Dépasse la capacité du support double couche !" + +msgid "Execution finished!!" +msgstr "Exécution terminée !!" + +msgid "Execution progress:" +msgstr "Avancement de l'exécution :" + +msgid "Exif" +msgstr "Exif" + +msgid "Exit" +msgstr "Quitter" + +msgid "Exit EPG" +msgstr "Quitter l'EPG" + +msgid "Exit editor" +msgstr "Quitter éditeur" + +msgid "Exit input device selection." +msgstr "Quitter sélection périphériques entrée" + +msgid "Exit media player?" +msgstr "Quitter media player?" + +msgid "Exit mediaplayer" +msgstr "Quitter lecteur média" + +msgid "Exit movie list" +msgstr "Quitter liste film" + +msgid "Exit movie player?" +msgstr "Quitter lecteur média ?" + +msgid "Exit nameserver configuration" +msgstr "Quitter configuration du serveur de nom" + +msgid "Exit network interface list" +msgstr "Quitter liste interface réseau" + +msgid "Exit network wizard" +msgstr "Quitter assistant réseau" + +msgid "Exit the wizard" +msgstr "Quitter l'assistant" + +msgid "Expert" +msgstr "Expert" + +msgid "Extend sleeptimer 15 minutes" +msgstr "Étendre l'arrêt automatique de 15 minutes" + +msgid "Extended Software" +msgstr "Logiciel étendu" + +msgid "Extended Software Plugin" +msgstr "Plugin logiciel étendu" + +msgid "Extended network setup plugin..." +msgstr "Extension paramètre réseau avancée..." + +msgid "Extended setup..." +msgstr "Paramètre avancé..." + +msgid "Extensions" +msgstr "Extensions" + +msgid "Extensions management" +msgstr "Gestionnaire extensions" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "Couleur des sous-titres externes" + +msgid "Extra motor options" +msgstr "Options moteur supplémentaires" + +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "En Clair" + +msgid "Factory reset" +msgstr "Réinitialisation usine" + +msgid "Failed" +msgstr "Échoué" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "Échec de l'écriture/tmp/positionersetup.log :" + +#, python-format +msgid "Fan %d" +msgstr "%d ventilateur" + +#, python-format +msgid "Fan %d PWM" +msgstr "%d ventilateur PWM" + +#, python-format +msgid "Fan %d voltage" +msgstr "%d ventilateur voltage" + +msgid "Fan operation" +msgstr "Activité du ventilateur" + +msgid "Fan speed" +msgstr "Vitesse du ventilateur" + +msgid "Fast" +msgstr "Rapide" + +msgid "Fast DiSEqC" +msgstr "DiSEqC rapide" + +msgid "Fast Scan" +msgstr "Scan Rapide" + +msgid "Fast epoch" +msgstr "Époque rapide" + +msgid "Fast forward speeds" +msgstr "Vitesses avance rapide" + +msgid "Favourites" +msgstr "Favoris" + +msgid "File appears to be busy.\n" +msgstr "Le fichier semble être occupé.\n" + +msgid "Filesystem check" +msgstr "Vérification du système de fichiers" + +msgid "Final position at" +msgstr "Position finale à" + +msgid "Final position at index" +msgstr "Position finale à l'indice" + +msgid "Fine movement" +msgstr "Contrôle fin" + +msgid "Finetune" +msgstr "Réglage avancé" + +msgid "Finished" +msgstr "Terminé" + +msgid "Finished configuring your network" +msgstr "Termine la configuration de votre réseau" + +msgid "Finished restarting your network" +msgstr "Termine le redémarrage de votre réseau" + +msgid "Finnish" +msgstr "Finlandais" + +msgid "Fixed" +msgstr "Fixé" + +msgid "Flash" +msgstr "Flash" + +msgid "Flashing failed" +msgstr "Échec du flash" + +msgid "Following tasks will be done after you press OK!" +msgstr "Le suivi des tâches suivantes sera fait après avoir appuyé sur OK !" + +msgid "Format" +msgstr "Format" + +msgid "Forward volume keys" +msgstr "Faire suivre les touches du volume" + +msgid "Frame size in full view" +msgstr "Taille du cadre en plein écran" + +msgid "French" +msgstr "Français" + +msgid "Frequency" +msgstr "Fréquence" + +msgid "Frequency bands" +msgstr "Bandes fréquence" + +msgid "Frequency scan step size(khz)" +msgstr "Taille du seuil pour scan fréquence (khz)" + +msgid "Frequency steps" +msgstr "Seuils des fréquences" + +msgid "Frequency:" +msgstr "Fréquence:" + +msgid "Fri" +msgstr "Ven" + +msgid "Friday" +msgstr "Vendredi" + +msgid "From :" +msgstr "De :" + +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Version du frontprocessor : %d" + +msgid "Full transparency" +msgstr "Transparence complète" + +msgid "Fulview resulution" +msgstr "Résolution plein écran" + +msgid "Function of OK button" +msgstr "Fonction de la touche OK" + +msgid "Further Options" +msgstr "Options supplémentaires" + +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"L'interface doit redémarrer pour appliquer ce thème\n" +"Voulez-vous relancer l'interface maintenant ?" + +msgid "Gateway" +msgstr "Passerelle" + +msgid "General AC3 delay" +msgstr "Délai général AC3" + +msgid "General PCM delay" +msgstr "Délai général PCM" + +msgid "Genre" +msgstr "Genre" + +msgid "German" +msgstr "Allemand" + +msgid "Get latest experimental image" +msgstr "Obtenir la dernière image expérimental" + +msgid "Get latest release image" +msgstr "Obtenir la dernière image publiée" + +msgid "Getting plugin information. Please wait..." +msgstr "Récupération des informations du plugin. Veuillez patienter..." + +msgid "Go down the list" +msgstr "Aller en bas de la liste" + +msgid "Go to first movie or last item" +msgstr "Aller au premier film ou au dernier élément" + +msgid "Go to first movie or top of list" +msgstr "Aller au premier film ou en haut de liste" + +msgid "Go to first service" +msgstr "Aller au premier service" + +msgid "Go to last service" +msgstr "Aller au dernier service" + +msgid "Go to next event" +msgstr "Aller à l'évènement suivant" + +msgid "Go to next page of service" +msgstr "Aller à la page suivante des services" + +msgid "Go to previous event" +msgstr "Aller à l'évènement précédent" + +msgid "Go to previous page of service" +msgstr "Aller à la page précédente des services" + +msgid "Go up the list" +msgstr "Remonter la liste" + +msgid "Goto" +msgstr "Aller vers" + +msgid "Goto 0" +msgstr "Aller à 0" + +msgid "Goto :" +msgstr "Aller à :" + +msgid "Goto X" +msgstr "Aller sur X" + +msgid "Goto index position" +msgstr "Aller sur indice de position" + +msgid "Goto next day of events" +msgstr "Aller au jour suivant des évènements" + +msgid "Goto next page of events" +msgstr "Aller à la page suivante des évènements" + +msgid "Goto position" +msgstr "Aller à la position" + +msgid "Goto previous day of events" +msgstr "Aller au jour précédent des évènements" + +msgid "Goto previous page of events" +msgstr "Aller à la page précédente des évènements" + +msgid "Goto specific date/time" +msgstr "Aller à une date/heure précise" + +msgid "GotoX calibration" +msgstr "Aller sur X calibration" + +msgid "GraphMultiEpg Settings" +msgstr "Paramètres GraphMultiEpg" + +msgid "Graphical Multi EPG" +msgstr "Multi EPG Graphique" + +msgid "Greek" +msgstr "Grèque" + +msgid "Green boost" +msgstr "Intensifier le vert" + +msgid "Guard interval" +msgstr "Intervalle de garde" + +msgid "HD list" +msgstr "Liste HD" + +msgid "HDMI-CEC setup" +msgstr "Configurer HDMI-CEC" + +msgid "Handle standby from TV" +msgstr "Gérer le mode veille de la TV" + +msgid "Handle wakeup from TV" +msgstr "Gérer le mode réveil de la TV" + +msgid "Hard disk" +msgstr "Disque dur" + +msgid "Hard disk setup" +msgstr "Paramètres du disque dur" + +msgid "Hard disk standby after" +msgstr "Disque dur en veille après" + +msgid "Harddisk" +msgstr "Disque dur" + +msgid "Hardware: " +msgstr "Matériel : " + +msgid "Hebrew" +msgstr "Hébreu" + +msgid "Helps setting up your dish" +msgstr "Vous aide à configurer votre antenne" + +msgid "Hidden network" +msgstr "Réseau caché" + +msgid "Hide CI messages" +msgstr "Masquer les messages CI" + +msgid "Hide channel list in radio mode" +msgstr "Cacher la liste des chaînes en mode radio" + +msgid "Hide known extensions" +msgstr "Cacher les extensions connues" + +msgid "Hide number markers" +msgstr "Cacher les nombres des marqueurs" + +msgid "Hide player" +msgstr "Masquer le lecteur" + +msgid "Hide zap errors" +msgstr "Masquer les erreurs de zap" + +msgid "Hierarchy info" +msgstr "Info hiérarchie" + +msgid "Hierarchy information" +msgstr "Hiérarchie de l'Information" + +msgid "High bitrate support" +msgstr "Support \"Hight bitrate\"" + +msgid "Hold screen" +msgstr "Vérouiller l'écran" + +msgid "Hold till locked" +msgstr "Bloquer l'écran jusqu'au vérouillage" + +msgid "Home" +msgstr "Accueil" + +msgid "Horizontal" +msgstr "Horizontal" + +msgid "Horizontal turning speed" +msgstr "Vitesse rotation horizontale" + +msgid "How many minutes do you want to record?" +msgstr "Combien de minutes voulez-vous enregistrer ?" + +msgid "Hue" +msgstr "Teinte" + +msgid "Hungarian" +msgstr "Hongrois" + +msgid "IP address" +msgstr "Adresse IP" + +msgid "ISO file is too large for this filesystem!" +msgstr "Le fichier ISO est trop grand pour ce système de fichiers !" + +msgid "ISO path" +msgstr "Chemin ISO" + +msgid "Icons" +msgstr "Icônes" + +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"Si vous voyez ceci, quelque chose fonctionne\n" +"mal avec la péritel. Veuillez presser OK\n" +"pour continuer." + +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "Si votre TV a un perfectionnement de luminosité ou de contraste, neutralisez-le. S'il y a quelque chose appelé \"dynamique\", positionnez le sur standard. Ajustez le niveau de contre-jour sur une valeur convenant à votre goût. Baissez le contraste sur votre TV autant que possible. Puis baissez les paramètres luminosité aussi bas que possible, mais assurez-vous que les deux nuances les plus plus basses de gris soient distinguable. Ne pas s'inquiéter des nuances luminosité maintenant. Elles seront fixées dans la prochaine étape. si vous êtes satisfait du résultat, pressez OK." + +msgid "Image: " +msgstr "Image : " + +msgid "Immediate shutdown" +msgstr "Extinction immédiate" + +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "Afin d'enregistrer une émission programmée, la TV zappera sur la chaîne enregistrée !\n" + +msgid "In progress" +msgstr "En progression" + +msgid "Inactivity Sleeptimer" +msgstr "Arrêt automatique en cas d'inactivité" + +msgid "Include AIT in http streams" +msgstr "Inclure AIT dans les flux HTTP" + +msgid "Include ECM in http streams" +msgstr "Inclure ECM dans les flux HTTP" + +msgid "Include EIT in http streams" +msgstr "Inclure EIT dans les flux HTTP" + +msgid "Incorrect type service for PiP!" +msgstr "Type de service incorrect pour PiP (image-dans-image)!" + +msgid "Increased voltage" +msgstr "Augmenter la tension" + +msgid "Index" +msgstr "Index" + +msgid "Index allocated:" +msgstr "Indice attribué :" + +msgid "Info" +msgstr "Info" + +msgid "Info bar" +msgstr "Barre d'infos" + +msgid "Info bar timeout" +msgstr "Délai d'affichage de la barre d'infos" + +msgid "Infobar frontend data source" +msgstr "Source des données du frontend dans la barre d'infos" + +msgid "Information" +msgstr "Informations" + +msgid "Init" +msgstr "Initialiser" + +msgid "Initial fast forward speed" +msgstr "Vitesse initiale d'Avance Rapide" + +msgid "Initial location in new timers" +msgstr "Emplacement initial pour les nouveaux enregistrements" + +msgid "Initial lock ratio" +msgstr "Ratio initial de vérouillage" + +msgid "Initial rewind speed" +msgstr "Vitesse initiale de Retour Rapide" + +msgid "Initial signal quality" +msgstr "Qualité du signal initial" + +msgid "Initial signal quality:" +msgstr "Qualité du signal initial :" + +msgid "Initialization" +msgstr "Initialisation" + +msgid "Initialize" +msgstr "Initialiser" + +msgid "Initializing storage device..." +msgstr "Initialiser le périphérique de stockage..." + +msgid "Input" +msgstr "Entrée" + +msgid "Input device setup" +msgstr "Paramètres du périphérique entrée" + +msgid "Input devices" +msgstr "Périphériques entrée" + +msgid "Install" +msgstr "Installer" + +msgid "Install a new image with a USB stick" +msgstr "Installer une nouvelle image avec la clé USB" + +msgid "Install a new image with your web browser" +msgstr "Installer une nouvelle image avec votre navigateur web" + +msgid "Install channel list" +msgstr "Installer liste des chaînes" + +msgid "Install extensions" +msgstr "Installer des extensions" + +msgid "Install extensions." +msgstr "Installer extensions." + +msgid "Install local extension" +msgstr "Installer extension locale" + +msgid "Install picons on" +msgstr "Installer les picons sur" + +msgid "Install softcam" +msgstr "Installer softcam" + +msgid "Installation has completed." +msgstr "L'installation est terminée." + +msgid "Installation or removal has completed." +msgstr "L'installation ou le retrait est terminé." + +msgid "Installing" +msgstr "Installation" + +msgid "Installing software..." +msgstr "Installation du logiciel..." + +msgid "Instant recording location" +msgstr "Emplacement enregistrements immédiats" + +msgid "Instant recording..." +msgstr "Enregistrement Immédiat..." + +msgid "Interface: " +msgstr "Interface : " + +msgid "Intermediate" +msgstr "Intermédiaire" + +msgid "Internal flash" +msgstr "Flash interne" + +msgid "Internal hdd only" +msgstr "Disque dur interne seulement" + +msgid "Interval between keys when repeating:" +msgstr "Intervalle entre les touches lorsque répétition :" + +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Répertoire sélectionné non valide : %s" + +msgid "Invalid location" +msgstr "Emplacement non valide" + +msgid "Invalid transponder data" +msgstr "Donnée du transpondeur non valide" + +msgid "Inversion" +msgstr "Inversion" + +msgid "Invert" +msgstr "Inverser" + +msgid "Ipkg" +msgstr "Ipkg" + +msgid "Is this setting ok?" +msgstr "Voulez-vous utiliser ce paramètre ?" + +msgid "Is this video mode ok?" +msgstr "Est-ce que ce mode vidéo est OK ?" + +msgid "Italian" +msgstr "Italien" + +msgid "Items per page " +msgstr "Éléments par Page " + +msgid "Items per page for list screen" +msgstr "Éléments par page pour la liste écran" + +msgid "Job overview" +msgstr "Vue travail" + +msgid "Jump to beginning of list" +msgstr "Aller au début de la liste" + +msgid "Jump to end of list" +msgstr "Se rendre à la fin de liste" + +msgid "Jump to next marked position" +msgstr "Se rendre à la position marquée suivante" + +msgid "Jump to previous marked position" +msgstr "Se rendre à la position marquée précédente" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +msgid "Just scale" +msgstr "Juste mettre à l'échelle" + +msgid "Keep service" +msgstr "Garder le service" + +msgid "Kernel version: " +msgstr "Version du Noyau : " + +msgid "Keyboard" +msgstr "Clavier" + +msgid "Keyboard map" +msgstr "Agencement du clavier" + +msgid "Keyboard setup" +msgstr "Paramétrage du clavier" + +msgid "LAN adapter" +msgstr "Adaptateur réseau local" + +msgid "LAN connection" +msgstr "Connexion LAN" + +msgid "LNB" +msgstr "LNB" + +msgid "Language" +msgstr "Langue" + +msgid "Language selection" +msgstr "Sélection de la langue" + +msgid "Last config" +msgstr "Dernière config" + +msgid "Last speed" +msgstr "Dernière vitesse" + +msgid "Last upgrade: " +msgstr "Dernière Mise à jour : " + +msgid "Latest Commits" +msgstr "Derniers commits" + +msgid "Latitude" +msgstr "Latitude" + +msgid "Latvian" +msgstr "Letton" + +msgid "Leave DVD player?" +msgstr "Quitter le lecteur DVD ?" + +msgid "Left" +msgstr "Gauche" + +msgid "Left from servicename" +msgstr "À la gauche du nom du service" + +msgid "Leisure hobbies" +msgstr "Passe-temps/loisirs" + +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Letterbox" + +msgid "Letterbox zoom" +msgstr "Letterbox zoom" + +msgid "Limit character set for recording filenames" +msgstr "Jeu de caractères limité pour noms de fichier enregistré" + +msgid "Limit east" +msgstr "Limite est" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "Limiter les caractères qui peuvent être utilisés dans les noms de fichiers d'enregistrement à (7 bits) ascii. Cela garantit la compatibilité avec les systèmes d'exploitation ou des systèmes de fichiers avec des jeux de caractères limités." + +msgid "Limit west" +msgstr "Limite ouest" + +msgid "Limits cancelled" +msgstr "Limites à ne pas appliquer" + +msgid "Limits enabled" +msgstr "Limites activées" + +msgid "Limits off" +msgstr "Désactiver les limites" + +msgid "Limits on" +msgstr "Limites activées" + +msgid "Link quality:" +msgstr "Qualité du lien :" + +msgid "Link:" +msgstr "Lien :" + +msgid "Linked titles with a DVD menu" +msgstr "Titres liés avec un menu DVD" + +msgid "List EPG functions..." +msgstr "Liste fonctions EPG..." + +msgid "List available networks" +msgstr "Liste des réseaux disponibles" + +msgid "List mode" +msgstr "Mode liste" + +msgid "List of storage devices" +msgstr "Liste des Périphériques de Stockage" + +msgid "List type" +msgstr "Liste de type" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "Liste version %d, %d chaîne trouvée" +msgstr[1] "Liste version %d, %d chaînes trouvées" + +msgid "Listen to the radio..." +msgstr "Écouter la radio..." + +msgid "Lists reloaded!" +msgstr "" + +msgid "Lithuanian" +msgstr "Lituanien" + +msgid "Load" +msgstr "Charger" + +msgid "Load Length of Movies in Movielist" +msgstr "Charger la durée des films dans la liste des films" + +msgid "Load length of movies in movie list" +msgstr "Charger longueur des films dans liste des films" + +msgid "Load playlist" +msgstr "Charger liste lecture" + +msgid "Local network" +msgstr "Réseau local" + +msgid "Location" +msgstr "Emplacement" + +msgid "Location for instant recordings" +msgstr "Emplacement pour les enregistrements instantanés" + +msgid "Lock ratio" +msgstr "Verrouiller rapport" + +msgid "Lock:" +msgstr "Verrouiller :" + +msgid "Log results to harddisk" +msgstr "Sauver log sur disque dur" + +msgid "Long filenames" +msgstr "Nom de fichiers long" + +msgid "Long key press" +msgstr "Appui long sur touche" + +msgid "Longitude" +msgstr "Longitude" + +msgid "Loop through to" +msgstr "Rebouclé par" + +msgid "Luxembourgish" +msgstr "Luxembourgeois" + +msgid "MMC card" +msgstr "Carte MMC" + +msgid "MORE" +msgstr "PLUS" + +msgid "Main menu" +msgstr "Menu principal" + +msgid "Maintain old EPG data for" +msgstr "Maintenir les anciennes données EPG (min)" + +msgid "Make this mark an 'in' point" +msgstr "Faire de cette marque un point 'en'" + +msgid "Make this mark an 'out' point" +msgstr "Faire de cette marque un point 'hors'" + +msgid "Make this mark just a mark" +msgstr "Faire de cette marque juste une marque" + +msgid "Manage extensions" +msgstr "Gestionnaire des extensions" + +msgid "Manage your receiver's software" +msgstr "Gestion de votre logiciel récepteur" + +msgid "Manual" +msgstr "Manuel" + +msgid "Manual Scan" +msgstr "Analyse Manuelle" + +msgid "Manual configuration" +msgstr "Configuration manuelle" + +msgid "Manual scan" +msgstr "Analyse Manuelle" + +msgid "Manual transponder" +msgstr "Transpondeur manuel" + +msgid "Manufacturer" +msgstr "Constructeur" + +msgid "Margin after recording (minutes)" +msgstr "Marge après l'enregistrement (min)" + +msgid "Margin before recording (minutes)" +msgstr "Marge avant l'enregistrement (min)" + +msgid "Max memory positions" +msgstr "Positions mémoires max" + +msgid "Max. bitrate: " +msgstr "Bitrate Max : " + +msgid "Media player" +msgstr "Lecteur de médias" + +msgid "Media scanner" +msgstr "Media scanner" + +msgid "Medium is not a writeable DVD!" +msgstr "Ce support n'est pas un DVD enregistrable !" + +msgid "Medium is not empty!" +msgstr "Ce support n'est pas vide !" + +msgid "Memory" +msgstr "Mémoire" + +msgid "Memory index" +msgstr "Index mémoire" + +msgid "Menu" +msgstr "Menu" + +msgid "Message" +msgstr "Message" + +msgid "Message..." +msgstr "Message..." + +#, python-format +msgid "Minimum age %d years" +msgstr "Age minimum %d ans" + +msgid "Minimum send interval" +msgstr "Intervalle minimum d'envoi" + +msgid "Missing " +msgstr "Manquant " + +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Mode" + +msgctxt "Video output mode" +msgid "Mode" +msgstr "Mode" + +msgid "Model: " +msgstr "Modèle : " + +msgid "Modulation" +msgstr "Modulation" + +msgid "Modulator" +msgstr "Modulateur" + +msgid "Mon" +msgstr "Lun" + +msgid "Mon-Fri" +msgstr "Lun-Ven" + +msgid "Monday" +msgstr "Lundi" + +msgid "Mosquito noise reduction" +msgstr "Réduction bruit pixelisation" + +msgid "Mount" +msgstr "Monter" + +msgid "Move" +msgstr "Déplacer" + +msgid "Move PiP to main picture" +msgstr "Déplacer PiP vers principale" + +msgid "Move Picture in Picture" +msgstr "Déplacer l'incrustation d'image" + +msgid "Move east" +msgstr "Déplacer vers l'est" + +msgid "Move to other directory" +msgstr "Déplacer vers un autre répertoire" + +msgid "Move to position X" +msgstr "Déplacer vers position X" + +msgid "Move west" +msgstr "Déplacer vers l'ouest" + +msgid "Moved to position 0" +msgstr "Déplacer vers position 0" + +msgid "Moved to position at index" +msgstr "Déplacer vers l'indice de position" + +msgid "Movement" +msgstr "Déplacement" + +msgid "Movie List Configuration" +msgstr "Configuration de la liste des films" + +msgid "Movie Selection" +msgstr "Sélection d'un film" + +msgid "Movie list configuration" +msgstr "Configuration de la Liste des Films" + +msgid "Movie location" +msgstr "Emplacement des films" + +msgid "Movie selection" +msgstr "Sélection des films" + +msgid "Movie/Drama" +msgstr "Film/Fiction" + +msgid "Movielist menu" +msgstr "Menu liste des films" + +msgid "Moving" +msgstr "En mouvement" + +msgid "Moving east ..." +msgstr "Déplacement vers l'est ..." + +msgid "Moving to position" +msgstr "Déplacement vers position" + +msgid "Moving west ..." +msgstr "Déplacement vers l'ouest ..." + +msgid "Multi EPG" +msgstr "Multi EPG" + +msgid "Multi-EPG bouquet selection" +msgstr "Sélection bouquet Multi-EPG" + +msgid "Multimedia" +msgstr "Multimédia" + +msgid "Multiple service support" +msgstr "Support service multiple" + +msgid "Multiplex" +msgstr "Multiplex" + +msgid "Multisat" +msgstr "Multisat" + +msgid "Multisat all select" +msgstr "Sélectionner tous les multisat" + +msgid "Music/Ballet/Dance" +msgstr "Musique/Ballet/Danse" + +msgid "Mute" +msgstr "Sourdine" + +msgid "N/A" +msgstr "N/A" + +msgid "NEXT" +msgstr "SUIVANT" + +msgid "NFI image flashing" +msgstr "Flash de l'image NFI" + +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "Flash de l'image NFI terminé. Presser le bouton Jaune pour Redémarrer !" + +msgid "NIM" +msgstr "Tuner" + +msgid "NOW" +msgstr "MAINTENANT" + +msgid "NTSC" +msgstr "NTSC" + +msgid "Name" +msgstr "Nom" + +msgid "Nameserver" +msgstr "Serveur de nom" + +#, python-format +msgid "Nameserver %d" +msgstr "Serveur de nom %d" + +msgid "Nameserver settings" +msgstr "Paramètres serveur de nom" + +msgid "Nameserver setup" +msgstr "Paramètres serveur de nom" + +msgid "Namespace" +msgstr "Espace nom" + +msgid "Netmask" +msgstr "Masque sous-réseau" + +msgid "Network" +msgstr "Réseau" + +msgid "Network ID" +msgstr "ID Réseau" + +msgid "Network configuration..." +msgstr "Configuration réseau..." + +msgid "Network mount" +msgstr "Monter réseau" + +#, python-format +msgid "Network mount %s" +msgstr "Monter réseau %s" + +msgid "Network name (SSID)" +msgstr "Nom du réseau (SSID)" + +msgid "Network scan" +msgstr "Analyse du réseau" + +msgid "Network setup" +msgstr "Paramètres du réseau" + +msgid "Network test" +msgstr "Test du réseau" + +msgid "Network test..." +msgstr "Test du réseau..." + +msgid "Network test: " +msgstr "Test du réseau : " + +msgid "Network wizard" +msgstr "Assistant Réseau" + +msgid "Network:" +msgstr "Réseau : " + +msgid "New" +msgstr "Nouvelle" + +msgid "New PIN" +msgstr "Nouveau PIN" + +msgid "New version:" +msgstr "Nouvelle version :" + +msgid "News Current Affairs" +msgstr "Actualités/Courant/Affaires" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "Suivant" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "Suivant" + +msgid "No" +msgstr "Non" + +msgid "No (supported) DVDROM found!" +msgstr "Aucun lecteur DVD (supporté) trouvé !" + +msgid "No Connection" +msgstr "Pas de connexion" + +msgid "No HDD found or HDD not initialized!" +msgstr "Aucun disque dur trouvé, ou disque dur non initialisé !" + +msgid "No backup needed" +msgstr "Pas de sauvegarde nécessaire" + +msgid "No cable tuner found!" +msgstr "Aucun tuner câble trouvé !" + +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Aucune donnée sur le transpondeur !\n" +"(Délai dépassé en lisant PAT)" + +msgid "No delay" +msgstr "Aucun délai" + +msgid "No description available." +msgstr "Description non disponible." + +msgid "No details for this image file" +msgstr "Aucun détails pour ce fichier image" + +msgid "No displayable files on this medium found!" +msgstr "Aucun fichiers affichables trouvés sur ce support !" + +msgid "No event info found, recording indefinitely." +msgstr "Aucune information trouvée sur l'émission, enregistrement indéfini." + +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "Aucun passage rapide possible encore. Cependant, vous pouvez sauter avec les boutons numériques avant/arrière !" + +msgid "No free index available" +msgstr "Aucun index libre disponible" + +msgid "No free tuner!" +msgstr "Aucun tuner de libre" + +msgid "No network connection available." +msgstr "Aucune connexion réseau disponible." + +msgid "No networks found" +msgstr "Aucun réseau trouvé" + +msgid "No new plugins found" +msgstr "Aucun nouveau plugin trouvé" + +msgid "No positioner capable frontend found." +msgstr "Aucun positionneur tuner détecté." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "Aucun satellite configuré. Merci de vérifier la configuration de votre tuner." + +msgid "No service" +msgstr "Pas de service" + +msgid "No services/providers selected" +msgstr "Aucun Services/Opérateurs sélectionnés" + +msgid "No standby" +msgstr "Pas de veille" + +msgid "No suitable sat tuner found!" +msgstr "Aucun tuner sat approprié trouvé!" + +msgid "No tags are set on these movies." +msgstr "Aucun pointeur réglé sur ces films." + +msgid "No timeout" +msgstr "Pas de délai dépassé" + +msgid "No to all" +msgstr "Non à tout" + +msgid "No transparency" +msgstr "Aucune transparence" + +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "Aucun tuner n'est configuré pour utiliser un positionneur DiSEqC !" + +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Aucun tuner est activé !\n" +"Veuillez paramétrer vos tuner avant de lancer l'analyse des services." + +msgid "No updates available" +msgstr "Aucune mise à jour disponible" + +msgid "No updates available. Please try again later." +msgstr "Pas de mises à jour disponibles. S'il vous plaît réessayer plus tard." + +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Aucun Service-PIN trouvé !\n" +"Voulez-vous changer le Service-PIN maintenant ?\n" +"Si vous répondez 'NON', la protection de service restera désactivé !" + +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Aucun Réglages-PIN trouvé !\n" +"Voulez-vous changer le Réglages-PIN maintenant ?\n" +"Si vous répondez 'NON', la protection des Réglages restera désactivé !" + +msgid "No wireless networks found! Searching..." +msgstr "Aucun réseau sans fil trouvé ! Recherche en cours..." + +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "Aucun adaptateur réseau fonctionnel trouvé.Veuillez vérifier que vous avez connecté un câble réseau et que le réseau est configuré correctement." + +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"Aucun adaptateur réseau sans fil trouvé.\n" +"Veuillez vérifier que vous avez inséré un périphérique WLAN compatible et que votre réseau est configuré correctement." + +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"Aucun adaptateur réseau sans fil trouvé.\n" +"Veuillez vérifier que vous avez inséré un périphérique WLAN compatible ou activer votre interface réseau locale." + +msgid "No, but restart from begin" +msgstr "Non, mais relancer depuis le début" + +msgid "No, do nothing." +msgstr "Non, ne rien faire." + +msgid "No, just start my receiver" +msgstr "Non, il suffit de démarrer mon récepteur" + +msgid "No, never" +msgstr "Non, jamais" + +msgid "None" +msgstr "Aucun" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Non Linéaire" + +msgid "Normal mode" +msgstr "Mode Normal" + +msgid "North" +msgstr "Nord" + +msgid "Norwegian" +msgstr "Norvégien" + +msgid "Not associated" +msgstr "Non-Associé" + +msgid "Not configured" +msgstr "Pas configuré" + +#, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Espace disque insufisant. Veuillez libérer de l'espace disque et réessayer. (%d MB requis, %d MB disponible)" + +msgid "Nothing connected" +msgstr "Rien n'est connecté" + +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Rien à analyser !\n" +"Veuillez paramétrer votre tuner avant de démarrer une analyse de chaînes." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "Maintenant" + +msgid "Now playing" +msgstr "Lecture en cours" + +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Maintenant, utilisez les paramètres de contraste pour indiquer la luminosité du fond autant que possible, mais assurez-vous que vous pouvez toujours voir la différence entre les deux niveaux les plus lumineux des nuances. Si vous avez fait cela, pressez OK." + +msgid "OK" +msgstr "OK" + +msgid "OK, guide me through the upgrade process" +msgstr "D'accord, guidez moi à travers la procédure de mise à jour" + +msgid "ONID" +msgstr "ONID" + +msgid "OSD name request" +msgstr "Demande de nom de l'OSD" + +msgid "OSD settings" +msgstr "Paramètres OSD" + +msgid "OSD transparency" +msgstr "Transparence OSD" + +msgid "Off" +msgstr "Arrêt" + +msgid "Offline decode delay (ms)" +msgstr "Délai décodage hors ligne (ms)" + +msgid "Ok" +msgstr "Ok" + +msgid "On" +msgstr "Marche" + +msgid "On end of movie" +msgstr "Sur la fin du film" + +msgid "On end of movie (as menu)" +msgstr "À la fin du film (comme menu)" + +msgid "One" +msgstr "Un" + +msgid "Only extensions." +msgstr "Extensions seules" + +msgid "Only free scan" +msgstr "Scanner seulement libre" + +msgid "Open service list" +msgstr "Ouvrir liste service" + +msgid "Open the movie list" +msgstr "Ouvrir la liste des films" + +msgid "Orbital position" +msgstr "Position orbitale" + +msgid "Original" +msgstr "Original" + +msgid "Other" +msgstr "Autre" + +msgid "Output" +msgstr "Sortie" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "Ecraser fichiers configuration pendant mise à jour logicielle ?" + +msgid "Overwrite configuration files?" +msgstr "Ecraser les fichiers de configuration ?" + +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "PID PCR" + +msgid "PIDs" +msgstr "PIDs" + +msgid "PIN code needed" +msgstr "Code Pin requis" + +msgid "PLP ID" +msgstr "PLP ID" + +msgid "PMT PID" +msgstr "PID PMT" + +msgid "Package list update" +msgstr "Mise à jour de la liste des paquets" + +msgid "Packet management" +msgstr "Gestion des paquets" + +msgid "Packet manager" +msgstr "Gestionnaire des paquets" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +msgid "Pan&scan" +msgstr "Pan&Scan" + +msgid "Parent directory" +msgstr "Répertoire Parent" + +msgid "Parental control" +msgstr "Contrôle parental" + +msgid "Parental control services editor" +msgstr "Éditeur des services avec contrôle parental" + +msgid "Parental control setup" +msgstr "Paramètres du contrôle parental" + +msgid "Parental control type" +msgstr "Type du contrôle parental" + +msgid "Password" +msgstr "Mot de passe" + +msgid "Pause" +msgstr "Pause" + +msgid "Pause movie at end" +msgstr "Mettre en pause le film à la fin" + +msgid "Pause playback" +msgstr "Reprise de la lecture" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "Pourcentage gauche" + +msgid "Percentage right" +msgstr "Pourcentage droite" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "Supprimer définitivement tous les enregistrements dans la corbeille ?" + +msgid "Permanently remove all deleted items" +msgstr "Supprimer définitivement tous les éléments supprimés" + +msgid "Persian" +msgstr "Iranien" + +msgid "Phone number" +msgstr "Numéro de téléphone" + +msgid "PiP setup" +msgstr "Paramètres PiP" + +msgid "Picon" +msgstr "Picon" + +msgid "Picon and service name" +msgstr "Picon et nom du service" + +msgid "Picture player" +msgstr "Visualisateur" + +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Bandes noires" + +msgid "Pilot" +msgstr "Pilote" + +msgid "Play" +msgstr "Lire" + +msgid "Play DVD" +msgstr "Lire DVD..." + +msgid "Play audio in background" +msgstr "Lecture audio en arrière-plan" + +msgid "Play audio-CD..." +msgstr "Lire CD-Audio..." + +msgid "Play back media files" +msgstr "Lecture des fichiers multimédia" + +msgid "Play entry" +msgstr "Lire entrée" + +msgid "Play from next mark or playlist entry" +msgstr "Lire à partir de la prochaine marque ou playlist entrée" + +msgid "Play from previous mark or playlist entry" +msgstr "Lire à partir de la précédente marque ou playlist entrée" + +msgid "Play music..." +msgstr "Lire Musique..." + +msgid "Play next" +msgstr "Lire suivant" + +msgid "Play next (return to movie list)" +msgstr "Prochaine lecture (retour à la liste des films)" + +msgid "Play next (return to previous service)" +msgstr "Prochaine lecture (retourner au service antérieur)" + +msgid "Play previous" +msgstr "Lire précédent" + +msgid "Play recorded movies..." +msgstr "Lire les films enregistrés..." + +msgid "Please add titles to the compilation." +msgstr "Veuillez ajouter les titres à la compilation." + +msgid "Please change recording endtime" +msgstr "Veuillez changer l'heure de fin de l'enregistrement" + +msgid "Please check your network settings!" +msgstr "Veuillez vérifier vos paramètres réseau !" + +msgid "Please choose an extension..." +msgstr "Veuillez choisir une extension..." + +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Veuillez configurer ou vérifier vos Serveurs de noms en renseignant les valeurs nécessaires.\n" +"Quand vous serez prêt, pressez OK pour continuer." + +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Veuillez configurer votre connexion internet en renseignant les valeurs nécessaires.\n" +"Quand vous serez prêt, pressez OK pour continuer." + +msgid "Please connect your receiver to the internet" +msgstr "Veuillez connecter votre récepteur à Internet" + +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Veuillez ne changer aucune valeur si vous ne savez pas ce que vous faites !" + +msgid "Please enter a name for the new bouquet" +msgstr "Veuillez saisir un nom pour le bouquet" + +msgid "Please enter a name for the new marker" +msgstr "Veuillez saisir un nom pour le nouveau marqueur" + +msgid "Please enter a new filename" +msgstr "Veuillez saisir un nouveau nom de fichier" + +msgid "Please enter filename (empty = use current date)" +msgstr "Veuillez saisir le nom de fichier (vide = utilise la date du jour)" + +msgid "Please enter name of the new directory" +msgstr "Veuillez saisir le nom du nouveau répertoire" + +msgid "Please enter new name:" +msgstr "Merci d'entrer un nouveau nom:" + +msgid "Please enter the correct pin code" +msgstr "Veuillez saisir le code pin correcte" + +msgid "Please enter the old PIN code" +msgstr "Veuillez saisir l'ancien code pin" + +msgid "Please follow the instructions on the TV" +msgstr "Veuillez suivre les instructions sur la TV" + +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "Veuillez noter que le média sélectionné précédent n'est pas accessible, par conséquent, le répertoire par défaut sera utilisé à la place." + +msgid "Please press OK to continue." +msgstr "Veuillez presser OK pour continuer." + +msgid "Please select a default EPG type..." +msgstr "S'il vous plaît sélectionner un type d'EPG par défaut ..." + +msgid "Please select a playlist to delete..." +msgstr "Veuillez choisir une liste de lecture à effacer..." + +msgid "Please select a playlist..." +msgstr "Veuillez choisir une liste de lecture..." + +msgid "Please select a sub service..." +msgstr "Veuillez choisir un sous-service..." + +msgid "Please select a subservice to record..." +msgstr "Veuillez choisir un sous-service à enregistrer..." + +msgid "Please select a subservice..." +msgstr "Veuillez choisir un sous-service..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "Veuillez choisir un fichier NFI et presser le bouton vert pour flasher !" + +msgid "Please select medium to be scanned" +msgstr "Veuillez choisir le média à scanner" + +msgid "Please select medium to use as backup location" +msgstr "Veuillez choisir le support pour la sauvegarde" + +msgid "Please select tag to filter..." +msgstr "Veuillez choisir un pointeur pour filtrer..." + +msgid "Please select the movie path..." +msgstr "Veuillez choisir le chemin du film..." + +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Veuillez sélectionner l'interface réseau que vous voulez utiliser pour votre connexion internet.\n" +"\n" +"Veuillez presser OK pour continuer." + +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Veuillez sélectionner le réseau sans fil auquel se connecter.\n" +"\n" +"Veuillez presser OK pour continuer." + +msgid "Please set up tuner A" +msgstr "Veuillez paramétrer le tuner A" + +msgid "Please set up tuner B" +msgstr "Veuillez paramétrer le tuner B" + +msgid "Please set up tuner C" +msgstr "Veuillez paramétrer le tuner C" + +msgid "Please set up tuner D" +msgstr "Veuillez paramétrer le tuner D" + +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Veuillez utiliser les touches direction pour bouger la fenêtre PiP.\n" +"Presser Bouquet +/- pour redimensionner la fenêtre.\n" +"Presser OK pour revenir au mode TV ou EXIT pour annuler le déplacement." + +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "Veuillez utiliser les touches HAUT et BAS pour choisir votre langue. Ensuite pressez le bouton OK." + +msgid "Please wait" +msgstr "Veuillez attendre." + +msgid "Please wait (downloading channel list)" +msgstr "Veuillez patienter (téléchargement de la liste des chaînes)" + +msgid "Please wait (downloading softcam)" +msgstr "Veuillez patienter (téléchargement du softcam)" + +msgid "Please wait (updating packages)" +msgstr "Veuillez patienter (Mise à jour des paquets)" + +msgid "Please wait for activation of your network configuration..." +msgstr "Veuillez attendre l'activation de votre configuration réseau..." + +msgid "Please wait while scanning is in progress..." +msgstr "Veuillez attendre pendant l'analyse en cours..." + +msgid "Please wait while we configure your network..." +msgstr "Veuillez attendre pendant que nous configurons votre réseau..." + +msgid "Please wait while we prepare your network interfaces..." +msgstr "Veuillez patienter pendant la préparation des interfaces réseau..." + +msgid "Please wait while we test your network..." +msgstr "Veuillez patienter pendant le test de votre réseau..." + +msgid "Please wait while your network is restarting..." +msgstr "Veuillez attendre pendant le redémarrage de votre réseau..." + +msgid "Please wait..." +msgstr "Veuillez attendre..." + +msgid "Please wait... Loading list..." +msgstr "Veuillez patienter... Chargement de la liste..." + +msgid "Plugin browser" +msgstr "Navigateur d'extensions" + +msgid "Plugin manager activity information" +msgstr "Information d'activité gestionnaire plugin" + +msgid "Plugin manager help" +msgstr "Aide au gestionnaire plugin" + +msgid "Plugins" +msgstr "Plugins" + +msgid "Polarisation" +msgstr "Polarisation" + +msgid "Polarisation:" +msgstr "Polarisation:" + +msgid "Polarization" +msgstr "Polarisation" + +msgid "Polish" +msgstr "Polonais" + +msgid "Port A" +msgstr "Port A" + +msgid "Port B" +msgstr "Port B" + +msgid "Port C" +msgstr "Port C" + +msgid "Port D" +msgstr "Port D" + +msgid "Portuguese" +msgstr "Portugais" + +msgid "Position of completed timers in timerlist" +msgstr "Position programmations terminées dans liste des prog." + +msgid "Position stored at index" +msgstr "Position enregistrée à l'indice" + +msgid "Positioner" +msgstr "Positionneur" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "Paramètres positionneur" + +msgid "Positioner setup" +msgstr "Paramètres positionneur" + +msgid "Power threshold in mA" +msgstr "Seuil de puissance en mA" + +msgid "Predefined transponder" +msgstr "Transpondeur prédéfini" + +msgid "Prefer AC3 track" +msgstr "Préférer piste AC3" + +msgid "Prefer AC3+ track" +msgstr "Préférer piste AC3+" + +msgid "Prefer audio track stored by service" +msgstr "Préférer le flux audio stocké pour le service" + +msgid "Prefer graphical DVB subtitles" +msgstr "Préférer les sous-titres DVB-graphique" + +msgid "Prefer subtitles for hearing impaired" +msgstr "Préférer les sous-titres pour les malentendants" + +msgid "Prefer subtitles stored by service" +msgstr "Préférer les sous-titres stockés pour le service" + +msgid "Preferred tuner" +msgstr "Tuner préféré" + +msgid "Preferred tuner for recordings" +msgstr "Tuner préféré pour enregistrer" + +msgid "Prepare another USB stick for image flashing" +msgstr "Préparer une nouvelle clé USB pour flasher l'image" + +msgid "Preparing... Please wait" +msgstr "Préparation... Veuillez patienter" + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "Pressez sur INFO de votre télécommande pour plus d'informations." + +msgid "Press MENU on your remote control for additional options." +msgstr "Pressez MENU sur la télécommande pour d'autres options." + +msgid "Press OK on your remote control to continue." +msgstr "Pressez OK sur la télécommande pour continuer." + +msgid "Press OK to activate the selected skin." +msgstr "Pressez OK pour activer le thème sélectionné" + +msgid "Press OK to activate the settings." +msgstr "Pressez OK pour activer les paramètres." + +msgid "Press OK to edit the settings." +msgstr "Pressez OK pour éditer les paramètres." + +#, python-format +msgid "Press OK to get further details for %s" +msgstr "Pressez OK pour avoir des détails sur %s" + +msgid "Press OK to scan" +msgstr "Pressez OK pour analyser" + +msgid "Press OK to select a provider." +msgstr "Pressez OK pour sélectionner un opérateur." + +msgid "Press OK to select satellites" +msgstr "" + +msgid "Press OK to select/deselect a CAId." +msgstr "Pressez OK pour sélectionner/désélectionner un CAId." + +msgid "Press OK to start the scan" +msgstr "Pressez OK pour commencer l'analyse" + +msgid "Press OK to toggle the selection" +msgstr "" + +msgid "Press OK to toggle the selection." +msgstr "Pressez OK pour basculer le choix" + +msgid "Press yellow to set this interface as default interface." +msgstr "Pressez le bouton Jaune pour choisir l'interface comme interface standard." + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "Précédent" + +msgid "Preview" +msgstr "Aperçu" + +msgid "Preview menu" +msgstr "Menu aperçu" + +msgid "Preview selected channel" +msgstr "Aperçu de la chaine sélectionné" + +msgid "Primary DNS" +msgstr "DNS primaire" + +msgid "Priority" +msgstr "Priorité" + +msgid "Process" +msgstr "Processus" + +msgid "Progress" +msgstr "Progression" + +msgid "Progress bar left" +msgstr "Barre de progression à gauche" + +msgid "Progress bar right" +msgstr "Barre de progression à droite" + +msgid "Properties of current title" +msgstr "Propriétés du titre courant" + +msgid "Protect services" +msgstr "Services protégés" + +msgid "Protect setup" +msgstr "Paramètres protection" + +msgid "Provider" +msgstr "Opérateur" + +msgid "Provider to scan" +msgstr "Opérateur à analyser" + +msgid "Providers" +msgstr "Opérateurs" + +msgid "Put TV in standby" +msgstr "Mettre la TV en veille" + +msgid "Put receiver in standby" +msgstr "Mettre le récepteur en veille" + +msgid "Python frontend for /tmp/mmi.socket" +msgstr "\"Frontend\" Python pour /tmp/mmi.socket" + +msgid "Quick" +msgstr "Rapide" + +msgid "Quick zap" +msgstr "Zap rapide" + +msgid "RF output" +msgstr "Sortie RF" + +msgid "RGB" +msgstr "RGB" + +msgid "Radio" +msgstr "Radio" + +msgid "Ram disk" +msgstr "Disque RAM" + +msgid "Random" +msgstr "Aléatoire" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "Rating définis par le diffuseur - %d" + +msgid "Rating undefined" +msgstr "Rating indéfini" + +msgid "Really close without saving settings?" +msgstr "Voulez-vous vraiment fermer sans sauver les paramètres ?" + +msgid "Really delete done timers?" +msgstr "Enlever les programmations effectué ?" + +msgid "Really exit the subservices quickzap?" +msgstr "Voulez-vous vraiment quitter le QuickZap ?" + +msgid "Really reboot now?" +msgstr "Voulez-vous vraiment rebooter maintenant ?" + +msgid "Really restart now?" +msgstr "Voulez-vous vraiment redémarrer maintenant ?" + +msgid "Really shutdown now?" +msgstr "Voulez-vous vraiment éteindre maintenant ?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "Voulez-vous vraiment mettre à jour le frontprocessor et redémarrer maintenant ?" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "Voulez-vous vraiment mettre à jour votre décodeur et redémarrer maintenant ?" + +msgid "Reboot" +msgstr "Reboot" + +msgid "Rec" +msgstr "Enr" + +msgid "Reception settings" +msgstr "Paramètres réception" + +msgid "Record" +msgstr "Enregistrer" + +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "Temps d'enregistrement limité à cause d'un conflit de programmations %s" + +msgid "Recorded files..." +msgstr "Fichiers enregistrés..." + +msgid "Recording" +msgstr "Enregistrement" + +msgid "Recording in progress" +msgstr "Enregistrement en cours" + +msgid "Recording paths" +msgstr "Chemins pour enregistrer" + +msgid "Recording type" +msgstr "Type d'enregistrement" + +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "Des enregistrement(s) sont en cours ou se terminent dans quelques secondes !" + +msgid "Recordings" +msgstr "Enregistrements" + +msgid "Recordings always have priority" +msgstr "Enregistrements toujours prioritaires" + +msgid "Red button..." +msgstr "Bouton rouge..." + +msgid "Reenter new PIN" +msgstr "Re-saisir nouveau PIN" + +msgid "Refresh rate" +msgstr "Vitesse de Rafraîchissement" + +msgid "Refresh rate selection." +msgstr "Sélection de vitesse de rafraîchissement " + +msgid "Regard deep standby as standby" +msgstr "Gérer la mise en 'veille profonde' comme 'en veille'" + +msgid "Relative" +msgstr "Relatif" + +msgid "Reload" +msgstr "Recharger" + +msgid "Reload black-/white lists" +msgstr "Recharger listes noire/blanche" + +msgid "Reloading bouquets and services..." +msgstr "Recharger les bouquets et services..." + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "Enregistrer PIN service" + +msgid "Remember these settings for each folder" +msgstr "Se rappeler de ces paramètres pour chaque dossier" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "Rappel, vous avez choisi de sauvegarder votre fichier timeshift." + +msgid "Remote control type" +msgstr "Type de télécommande" + +msgid "Removal has completed." +msgstr "Suppression terminée." + +msgid "Remove" +msgstr "Retirer" + +msgid "Remove a mark" +msgstr "Retirer un marqueur" + +msgid "Remove a nameserver entry" +msgstr "Retirer une entrée serveur de nom" + +msgid "Remove bookmark" +msgstr "Retirer marque page" + +msgid "Remove completed timers after (days)" +msgstr "Enlever les programmations terminées après (jours)" + +msgid "Remove currently selected title" +msgstr "Retirer le titre actuellement sélectionné" + +msgid "Remove items from trash can after (days)" +msgstr "Enlever éléments de la corbeille après (jours)" + +msgid "Remove plugins" +msgstr "Enlever plugins" + +msgid "Remove title" +msgstr "Retirer titre" + +msgid "Removing" +msgstr "Retrait en cours..." + +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Échec du retrait du répertoire %s. (Peut-être non vide.)" + +msgid "Removing partition table" +msgstr "Retrait de la table de partition" + +msgid "Rename" +msgstr "Renommer" + +msgid "Repeat" +msgstr "Répéter" + +msgid "Repeat type" +msgstr "Type de répétition" + +msgid "Repeating event currently recording... What do you want to do?" +msgstr "Répétition de l'événement en enregistrement... Que voulez-vous faire?" + +msgid "Repeats" +msgstr "Répétitions" + +msgid "Require authentication for http streams" +msgstr "Exiger une authentification pour les flux HTTP" + +msgid "Required medium type:" +msgstr "Type de média requis :" + +msgid "Rereading partition table" +msgstr "Relecture de la table de partition" + +msgid "Reserved" +msgstr "Réservé" + +msgid "Reset" +msgstr "Réinitialiser" + +msgid "Reset and renumerate title names" +msgstr "Réinitialiser et renuméroter les titres" + +msgid "Reset playback position" +msgstr "Réinitialiser la position de reprise de lecture" + +msgid "Reset video enhancement settings to system defaults?" +msgstr "Réinitialiser les paramètres d'amélioration vidéo aux valeurs par défaut du système ?" + +msgid "Reset video enhancement settings to your last configuration?" +msgstr "Réinitialiser les paramètres d'amélioration vidéo sur votre dernière configuration ?" + +msgid "Resolution" +msgstr "Résolution" + +msgid "Restart" +msgstr "Redémarrer" + +msgid "Restart GUI now?" +msgstr "Redémarrer l'interface graphique maintenant ?" + +msgid "Restart enigma" +msgstr "Redémarrer enigma" + +msgid "Restart network" +msgstr "Relancer le réseau" + +msgid "Restart test" +msgstr "Relancer le test" + +msgid "Restart your network connection and interfaces.\n" +msgstr "Relancer votre connexion réseau et vos interfaces.\n" + +msgid "Restore" +msgstr "Restaurer" + +msgid "Restore backups" +msgstr "Restaurer sauvegardes" + +msgid "Restore is running..." +msgstr "Restauration en cours..." + +msgid "Restore system settings" +msgstr "Restaurer paramètres système" + +msgid "Restoring..." +msgstr "Restauration ..." + +msgid "Resume from last position" +msgstr "Reprendre à la dernière position" + +#, python-format +msgid "Resume position at %s" +msgstr "Reprendre position à %s" + +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Reprise de la lecture" + +msgid "Return to movie list" +msgstr "Retour vers liste des films" + +msgid "Return to previous service" +msgstr "Retour service précédent" + +msgid "Reverse bouquet buttons" +msgstr "Inverse les touches bouquets" + +msgid "Reverse list" +msgstr "" + +msgid "Rewind speeds" +msgstr "Vitesses rembobinage" + +msgid "Rewrap teletext subtitles" +msgstr "Envelopper les sous-titres télétexte" + +msgid "Right" +msgstr "Droite" + +msgid "Right from servicename" +msgstr "À la droite du nom de service" + +msgid "Roll-off" +msgstr "Sortie" + +msgid "Romanian" +msgstr "Roumain" + +msgid "Root directory" +msgstr "Répertoire racine" + +msgid "Rotor step position:" +msgstr "Etape de position du rotor :" + +msgid "Rotor turning speed" +msgstr "Vitesse rotation rotor" + +msgid "Round start time on" +msgstr "Heure de début de rotation" + +msgid "Russian" +msgstr "Russe" + +msgid "S-Video" +msgstr "S-Vidéo" + +msgid "SID" +msgstr "SID" + +msgid "SINGLE LAYER DVD" +msgstr "SIMPLE COUCHE DVD" + +msgid "SNR" +msgstr "SNR" + +msgid "SNR:" +msgstr "SNR :" + +msgid "SSID:" +msgstr "SSID :" + +msgid "Same resolution as skin" +msgstr "Même résolution que le skin" + +msgid "Sat" +msgstr "Sam" + +msgid "Satellite" +msgstr "Satellite" + +msgid "Satellite dish setup" +msgstr "Paramètres antenne satellite" + +msgid "Satellite equipment" +msgstr "Equipement satellite" + +msgid "Satellite equipment setup" +msgstr "Paramètres équipement satellite" + +msgid "Satellite longitude:" +msgstr "Longitude satellite :" + +msgid "Satellites" +msgstr "Satellites" + +msgid "Satfinder" +msgstr "Pointeur satellites" + +msgid "Sats" +msgstr "Sats" + +msgid "Saturation" +msgstr "Saturation" + +msgid "Saturday" +msgstr "Samedi" + +msgid "Save" +msgstr "Sauver" + +msgid "Save playlist" +msgstr "Sauver liste lecture" + +msgid "Save timeshift file" +msgstr "Sauvegarder le fichier de timeshift" + +msgid "Save timeshift file in movie directory" +msgstr "Sauvegarder le fichier de timeshift dans le répertoire des films" + +msgid "Scaler sharpness" +msgstr "Niveau netteté" + +msgid "Scaling mode" +msgstr "Mode Mise à l'Echelle" + +msgid "Scan" +msgstr "Scan" + +msgid "Scan " +msgstr "Analyser " + +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, python-format +msgid "Scan %s" +msgstr "Analyser %s " + +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, python-format +msgid "Scan %s band" +msgstr "Analyser bande %s " + +msgid "Scan additional SR" +msgstr "Analyser additional SR" + +msgid "Scan files..." +msgstr "Parcourir les fichiers..." + +msgid "Scan wireless networks" +msgstr "Scanner réseaux sans fil" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "Analyser votre réseau pour lister les points d'accès sans fil et se connecter en utilisant votre périphérique sans fil.\n" + +#, python-format +msgid "Scanning %s..." +msgstr "Analyse en cours %s..." + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "Balayage - %d%% terminé" +msgstr[1] "Balayage - %d%% terminés" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "Analyse complète, %d chaînes trouvées" +msgstr[1] "Analyse complète, %d chaînes trouvées" + +msgid "Scanning failed!" +msgstr "Echec de l'analyse !" + +msgid "Scanning..." +msgstr "Analyse en cours..." + +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "Scanne lamedbs standards triés par satellite avec un positionneur parabole connecté" + +msgid "Search east" +msgstr "Rechercher à l'est" + +msgid "Search west" +msgstr "Rechercher à l'ouest" + +msgid "Searching" +msgstr "Recherche en cours" + +msgid "Searching east ..." +msgstr "Recherche à l'est ..." + +msgid "Searching for available updates. Please wait..." +msgstr "Recherche des mises à jour disponibles. Patienter..." + +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "Recherche des nouveaux paquets installés ou retirés. Patienter..." + +msgid "Searching west ..." +msgstr "Recherche à l'ouest ..." + +msgid "Second cable of motorized LNB" +msgstr "Deuxième câble d'un LNB motorisé" + +msgid "Secondary DNS" +msgstr "DNS secondaire" + +msgid "Seek" +msgstr "Sauter" + +msgid "Seek backward" +msgstr "Retour rapide" + +msgid "Seek backward (enter time)" +msgstr "Retour rapide (saisir temps)" + +msgid "Seek forward" +msgstr "Avance rapide" + +msgid "Seek forward (enter time)" +msgstr "Avance rapide (saisir temps)" + +msgid "Select" +msgstr "Sélectionner" + +msgid "Select CAId" +msgstr "Sélection CAId" + +msgid "Select HDD" +msgstr "Choisir le Disque dur" + +msgid "Select a bouquet" +msgstr "Choisir un bouquet" + +msgid "Select a movie" +msgstr "Choisir un film" + +msgid "Select a network adapter" +msgstr "Choisir Adaptateur Réseau" + +msgid "Select a skin" +msgstr "Choisir un skin" + +msgid "Select a tuner" +msgstr "Choisir un tuner" + +msgid "Select a wireless network" +msgstr "Choisir un réseau sans fil" + +msgid "Select action" +msgstr "Choisir une action" + +#, python-format +msgid "Select action for timer %s:" +msgstr "Sélectionner une action pour la programmation %s:" + +msgid "Select all" +msgstr "" + +msgid "Select an image to be downloaded" +msgstr "Choisir l'image à télécharger" + +msgid "Select audio track" +msgstr "Choisir la piste audio" + +msgid "Select backup files" +msgstr "Choisir les fichiers de sauvegarde" + +msgid "Select backup location" +msgstr "Choisir l'emplacement de sauvegarde" + +msgid "Select channel to record from" +msgstr "Choisir la chaîne à enregistrer" + +msgid "Select copy destination for:" +msgstr "Sélectionnez la destination de copie pour :" + +msgid "Select default EPG type..." +msgstr "Sélectionnez le type d'EPG par défaut ..." + +msgid "Select desired image from feed list" +msgstr "Choisir l'image désirée depuis liste feed" + +msgid "Select destination for:" +msgstr "Sélectionnez une destination pour :" + +msgid "Select files for backup." +msgstr "Choisir fichiers pour la sauvegarde." + +msgid "Select files/folders to backup" +msgstr "Choisir fichiers/dossiers pour sauvegarde" + +msgid "Select input device" +msgstr "Choisir le périphérique entrée" + +msgid "Select input device." +msgstr "Choisir le périphérique entrée." + +msgid "Select interface" +msgstr "Sélectionner l'interface" + +msgid "Select location" +msgstr "Choisir l'Emplacement" + +msgid "Select movie" +msgstr "Choisir un film" + +msgid "Select provider to add..." +msgstr "Choisir opérateur à ajouter..." + +msgid "Select refresh rate" +msgstr "Choisir vitesse rafraîchissement" + +msgid "Select satellites" +msgstr "" + +msgid "Select service to add..." +msgstr "Choisir service à ajouter..." + +msgid "Select sort method:" +msgstr "" + +msgid "Select target folder" +msgstr "Choisir le dossier cible" + +msgid "Select the movie path" +msgstr "Choisir le chemin film" + +msgid "Select upgrade source" +msgstr "Sélectionnez la source de mise à jour" + +msgid "Select upgrade source to edit." +msgstr "Choisissez la source de mise à niveau pour éditer." + +msgid "Select video input with up/down buttons" +msgstr "Choisir l'entrée vidéo avec touches haut/bas" + +msgid "Select video mode" +msgstr "Choisir le mode vidéo" + +msgid "Select wireless network" +msgstr "Sélectionner l'interface sans fil" + +msgid "Select your provider, and press OK to start the scan" +msgstr "Sélectionnez votre opérateur, et pressez OK pour lancer l'analyse" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +msgid "Send DiSEqC only on satellite change" +msgstr "Envoyer DiSEqC seulement pour changement satellite" + +msgid "Separate titles with a main menu" +msgstr "Titres séparés avec un menu principal" + +msgid "Sequence repeat" +msgstr "Répéter la séquence" + +msgid "Serbian" +msgstr "Serbe" + +msgid "Service" +msgstr "Service" + +msgid "Service has been added to the favourites." +msgstr "Le service a été ajouté aux favoris." + +msgid "Service has been added to the selected bouquet." +msgstr "Le service a été ajouté au bouquet sélectionné." + +msgid "Service info" +msgstr "Info service" + +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Service non valide !\n" +"(Délai dépassé en lisant PMT)" + +msgid "Service name" +msgstr "Nom du service" + +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Aucun service trouvé !\n" +"(aucun SID trouvé dans PAT)" + +msgid "Service reference" +msgstr "Référence service:" + +msgid "Service scan" +msgstr "Analyse des services" + +msgid "Service searching" +msgstr "Recherche des services" + +msgid "Service title mode" +msgstr "Mode titre de service" + +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"Service indisponible !\n" +"Vérifier la configuration du tuner !" + +msgid "Services" +msgstr "Services" + +msgid "Set default" +msgstr "" + +msgid "Set end time" +msgstr "Régler l'heure de fin" + +msgid "Set fixed" +msgstr "Réglage de l'adresse" + +msgid "Set fps for external subtitles" +msgstr "Régler le fps pour les sous-titres externes" + +msgid "Set interface as default Interface" +msgstr "Utiliser l'interface comme interface par défaut" + +msgid "Set limits" +msgstr "Fixer les limites" + +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "Afficher progression événement dans sélection de chaîne" + +msgid "Set time window to 1 hour" +msgstr "Réglez la fenêtre de temps de 1 heure" + +msgid "Set time window to 2 hours" +msgstr "Réglez la fenêtre de temps de 2 heures" + +msgid "Set time window to 3 hours" +msgstr "Réglez la fenêtre de temps de 3 heures" + +msgid "Set time window to 4 hours" +msgstr "Réglez la fenêtre de temps de 4 heures" + +msgid "Set time window to 5 hours" +msgstr "Réglez la fenêtre de temps de 5 heures" + +msgid "Set time window to 6 hours" +msgstr "Réglez la fenêtre de temps de 6 heures" + +msgid "Set voltage and 22KHz" +msgstr "Utiliser Voltage et 22KHz" + +msgid "Settings" +msgstr "Paramètres" + +msgid "Setup" +msgstr "Paramétrer" + +msgid "Setup menu" +msgstr "Menu configuration" + +msgid "Setup mode" +msgstr "Mode de configuration" + +msgid "Setup your positioner" +msgstr "Configurez votre positionneur" + +msgid "Setup your satellite equipment" +msgstr "Configurez votre équipement satellite" + +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "L'assistant clé USB doit-il procéder et programmer le dossier d'image %s dans la mémoire Flash ?" + +msgid "Sharpness" +msgstr "Netteté" + +msgid "Short filenames" +msgstr "Noms de fichiers court" + +msgid "Show EIT now/next in infobar" +msgstr "Afficher EIT maintenant/suivant dans barre d'infos" + +msgid "Show EPG for current channel..." +msgstr "Afficher EPG de la chaine actuel ..." + +msgid "Show EPG..." +msgstr "Afficher EPG..." + +msgid "Show Games show" +msgstr "Voir les jeux" + +msgid "Show SNR percentage instead of dB value" +msgstr "Afficher SNR en pourcentage au lieu de la valeur dB" + +msgid "Show VCR scart on main menu" +msgstr "Afficher le menu péritel magnétoscope sur l'écran principal" + +msgid "Show WLAN status" +msgstr "Afficher le status WLAN" + +msgid "Show animation while busy" +msgstr "Afficher l'animation si occupé" + +msgid "Show background in radio mode" +msgstr "Afficher l'arrière-plan en Mode Radio" + +msgid "Show bouquet selection menu" +msgstr "Afficher le menu sélection de bouquet" + +msgid "Show busy indicator when the system is busy." +msgstr "Afficher l'indicateur occupé lorsque le système est occupé." + +msgid "Show channel numbers in channel selection" +msgstr "Afficher numéro des chaînes dans sélection de chaîne" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "Afficher les icônes d'encryption" + +msgid "Show crypto info in infobar" +msgstr "Afficher infos de cryptage dans barre d'infos" + +msgid "Show detailed event info" +msgstr "Afficher les infos détaillée de l'événement" + +msgid "Show event details" +msgstr "Afficher détails de l'événement" + +msgid "Show event-progress in channel selection" +msgstr "Afficher progression événement dans sélection de chaîne" + +msgid "Show extended description" +msgstr "Afficher description étendue" + +msgid "Show extensions..." +msgstr "Voir les extensions..." + +msgid "Show icon for new/unseen items" +msgstr "Afficher l'icône pour les nouveaux éléments" + +msgid "Show in extensions menu" +msgstr "Afficher les extensions dans le menu" + +msgid "Show info" +msgstr "Afficher Info" + +msgid "Show info line" +msgstr "Afficher informations" + +msgid "Show infobar on channel change" +msgstr "Afficher barre d'infos en changeant de chaîne" + +msgid "Show infobar on event change" +msgstr "Afficher barre d'infos en changeant d'émission" + +msgid "Show infobar on skip forward/backward" +msgstr "Afficher barre d'infos sur saut avant/arrière" + +msgid "Show latest commits on sourceforge" +msgstr "Afficher les derniers 'commits' sur sourceforge" + +msgid "Show message when recording starts" +msgstr "Afficher un message en démarrant l'enregistrement" + +msgid "Show movie lengths in movielist" +msgstr "Afficher longueur des films dans liste de films" + +msgid "Show multi channel EPG" +msgstr "Afficher l'EPG multi chaîne" + +msgid "Show picons in channel list" +msgstr "Afficher les picons dans la liste des chaînes" + +msgid "Show positioner movement" +msgstr "Afficher le mouvement du positionneur" + +msgid "Show screensaver" +msgstr "Afficher l'économiseur d'écran" + +msgid "Show second infobar" +msgstr "Afficher deuxième barre d'infos" + +msgid "Show service type icons" +msgstr "Afficher les icônes du type de service" + +msgid "Show services beginning with" +msgstr "Afficher les services commençant par" + +msgid "Show shutdown menu" +msgstr "Afficher menu éteindre" + +msgid "Show single service EPG" +msgstr "Afficher l'EPG simple du service" + +msgid "Show status icons in Movielist" +msgstr "Afficher l'icône du statut dans la liste des films" + +msgid "Show status icons in movie list" +msgstr "Afficher icônes d'état dans liste des films" + +msgid "Show status icons in movielist" +msgstr "Afficher icônes d'état dans liste des films" + +msgid "Show tag menu" +msgstr "Afficher menu étiquette" + +msgid "Show the radio player..." +msgstr "Afficher le lecteur radio..." + +msgid "Show the tv player..." +msgstr "Afficher l'image TV..." + +msgid "Show warning when timeshift is stopped" +msgstr "Afficher un avertissement quand le timeshift est arrêté" + +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Afficher l'état de votre connexion LAN sans fil.\n" + +msgid "Shuffle playlist" +msgstr "Mélanger liste lecture" + +msgid "Shutdown" +msgstr "Éteindre" + +msgid "Shutdown when in Standby" +msgstr "Éteindre lorsqu'il est en veille" + +msgid "Side by side" +msgstr "Côte à Côte" + +msgid "Signal OK, proceeding" +msgstr "Signal OK, continuer" + +msgid "Signal quality" +msgstr "Qualité du signal" + +msgid "Signal strength:" +msgstr "Force du Signal :" + +msgid "Signal: " +msgstr "Signal : " + +msgid "Similar" +msgstr "Similaire" + +msgid "Similar broadcasts:" +msgstr "Emissions semblables :" + +msgid "Simple" +msgstr "Simple" + +msgid "Simple titleset (compatibility for legacy players)" +msgstr "Jeu titre simple (compatibilité descendante lecteurs)" + +msgid "Single" +msgstr "Unique" + +msgid "Single EPG" +msgstr "EPG Unique" + +msgid "Single satellite" +msgstr "Satellite unique" + +msgid "Single step (GOP)" +msgstr "Pas unique (GOP)" + +msgid "Single transponder" +msgstr "Transpondeur unique" + +msgid "Site latitude" +msgstr "Alignement latitude" + +msgid "Site longitude" +msgstr "Alignement longitude" + +msgid "Skin" +msgstr "Thème" + +msgid "Skins" +msgstr "Thèmes" + +msgid "Skip empty services" +msgstr "Services protégés" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "Passer la vérification de la connexion internet (désactive l'installation automatique du package)" + +msgid "Sleep timer" +msgstr "Arrêt automatique" + +msgid "SleepTimer Configuration" +msgstr "Configuration de l'arrêt automatique" + +msgid "Sleeptimer" +msgstr "Arrêt automatique" + +msgid "Slide picture in loop" +msgstr "Afficher images en boucle" + +msgid "Slide show interval (sec.)" +msgstr "Intervalle Diaporama (sec.)" + +#, python-format +msgid "Slot %d" +msgstr "Slot %d" + +msgid "Slovak" +msgstr "Slovaque" + +msgid "Slovenian" +msgstr "Slovène" + +msgid "Slow" +msgstr "Lent" + +msgid "Slow motion speeds" +msgstr "Vitesses du ralenti" + +msgid "Small progress" +msgstr "Faible progression" + +msgid "Social/Political/Economics" +msgstr "Société/Politique/Economie" + +msgid "SoftCam / CI" +msgstr "Lecteur de cartes" + +msgid "Softcam type" +msgstr "Type softcam" + +msgid "Software" +msgstr "Logiciel" + +msgid "Software management" +msgstr "Gestionnaire logiciel" + +msgid "Software manager setup" +msgstr "Paramètres gestionnaire logiciel" + +msgid "Software restore" +msgstr "Restauration logiciel" + +msgid "Software update" +msgstr "Mise à jour logiciel" + +msgid "Softwaremanager information" +msgstr "Informations gestionnaire logiciel" + +msgid "Some plugins are not available:\n" +msgstr "Des plugins ne sont pas disponible :\n" + +#, python-format +msgid "Sorry, %s has not been installed!" +msgstr "Désolé,%s n'a pas été installé !" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "Désolé, la suppression des répertoires peut (pour l'instant) se faire qu'à travers la corbeille." + +msgid "Sorry, no backups found!" +msgstr "Désolé pas de sauvegardes trouvées !" + +msgid "Sorry, no details available!" +msgstr "Désolé, aucuns détails disponibles !" + +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"Désolé, emplacement de sauvegarde non inscriptible!\n" +"Veuillez en choisir un autre." + +msgid "Sort" +msgstr "Trier" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Tri A-Z" + +msgid "Sort by" +msgstr "Trier par" + +msgid "Sort list:" +msgstr "Liste de tri:" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort time" +msgstr "Tri heures" + +msgid "Sound" +msgstr "Son" + +msgid "Sound carrier" +msgstr "Porteuse sonore" + +msgid "Source request" +msgstr "Demande d'entrée" + +msgid "South" +msgstr "Sud" + +msgid "Spanish" +msgstr "Espagnol" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "Heure de fin pour ne pas tenir compte de l'arrêt automatique." + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "Heure de début pour ne pas tenir compte de l'arrêt automatique." + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "Spécifiez la plage pendant laquelle ignorer l'arrêt automatique" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +msgid "Split preview mode" +msgstr "Mode prévue séparée" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "Sports" + +msgid "Standard" +msgstr "Standard" + +msgid "Standart list" +msgstr "" + +msgid "Standby" +msgstr "Veille" + +msgid "Standby / restart" +msgstr "Veille / Redémarrage" + +msgid "Standby after current event" +msgstr "Mise en veille après l'évènement actuel" + +#, python-format +msgid "Standby fan %d PWM" +msgstr "PWM Fan en veille %d" + +#, python-format +msgid "Standby fan %d voltage" +msgstr "Voltage Fan en veille %d" + +msgid "Standby in " +msgstr "Mise en veille dans " + +msgid "StandbyLED" +msgstr "LED de veille" + +msgid "Start from the beginning" +msgstr "Démarrer depuis le début" + +msgid "Start offline decode" +msgstr "Démarrer le décodage hors ligne" + +msgid "Start recording?" +msgstr "Démarrer l'enregistrement ?" + +msgid "Start test" +msgstr "Lancer le test" + +msgid "Start time" +msgstr "heure début" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "Heure de début pour ignorer l'arrêt automatique" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +msgid "Start timeshift" +msgstr "Lancer PauseDirect" + +msgid "Start with list screen" +msgstr "Commencer avec liste écran" + +msgid "Starting on" +msgstr "Démarre sur" + +msgid "Startup the set top box in standby" +msgstr "Démarrer le récepteur en mode veille" + +msgid "Startup to Standby" +msgstr "Démarrer en veille" + +msgid "Step east" +msgstr "Un pas vers l'Est" + +msgid "Step west" +msgstr "Un pas vers l'Ouest" + +msgid "Stepped east" +msgstr "Ajusté à l'Est" + +msgid "Stepped west" +msgstr "Ajusté à l'Ouest" + +msgid "Stop" +msgstr "Stop" + +msgid "Stop PiP" +msgstr "Arrêter PiP" + +msgid "Stop current event and disable coming events" +msgstr "Stopper événement courant et désactiver les prochains" + +msgid "Stop current event but not coming events" +msgstr "Stopper événement courant mais pas les prochains" + +msgid "Stop entry" +msgstr "Arrêter entrée" + +msgid "Stop playing this movie?" +msgstr "Arrêter la lecture du film ?" + +msgid "Stop recording" +msgstr "Arrêter l'enregistrement" + +msgid "Stop recording and delete" +msgstr "Arrêter l'enregistrement et supprimer" + +msgid "Stop service on return to movie list" +msgstr "" + +msgid "Stop test" +msgstr "Stopper le test" + +msgid "Stop testing plane after # failed transponders" +msgstr "Stopper le test à partir # échec transpondeurs" + +msgid "Stop testing plane after # successful transponders" +msgstr "Stopper le test à partir # succès transpondeurs" + +msgid "Stop timer recording" +msgstr "Programmation arrêt enregistrement" + +msgid "Stop timeshift" +msgstr "Arrêter PauseDirect" + +msgid "Stop timeshift?" +msgstr "Arrêter le PauseDirect ?" + +msgid "Stopped" +msgstr "Arrêté" + +msgid "Store at index" +msgstr "Enregistrer sur l'indice" + +msgid "Store position" +msgstr "Enregistrer la position" + +msgid "Stored position" +msgstr "Position enregistrée" + +msgid "Stream" +msgstr "Demande de flux" + +msgid "Stream request" +msgstr "Demande de flux" + +msgid "Strongest position" +msgstr "Meilleure position" + +msgid "Subservice list..." +msgstr "Liste des sous-services..." + +msgid "Subservices" +msgstr "Sous-services" + +msgid "Subtitle Quickmenu" +msgstr "Menu rapide des sous-titres" + +msgid "Subtitle alignment" +msgstr "Alignement des sous-titres" + +msgid "Subtitle border width" +msgstr "Largeur de la bordure des sous-titres" + +msgid "Subtitle delay when timing is bad" +msgstr "Délai des sous-titres lorsque le timing est mauvais" + +msgid "Subtitle delay when timing lacks" +msgstr "Délai des sous-titres pour synchroniser avec l'image" + +msgid "Subtitle font size" +msgstr "Taille de la police des sous-titres" + +msgid "Subtitle language selection 1" +msgstr "Sélection de la langue sous-titres 1" + +msgid "Subtitle language selection 2" +msgstr "Sélection de la langue sous-titres 2" + +msgid "Subtitle language selection 3" +msgstr "Sélection de la langue sous-titres 3" + +msgid "Subtitle language selection 4" +msgstr "Sélection de la langue sous-titres 4" + +msgid "Subtitle position" +msgstr "Position des sous-titres" + +msgid "Subtitle selection" +msgstr "Sélection des sous-titres" + +msgid "Subtitle selection..." +msgstr "Sélection des sous-titres..." + +msgid "Subtitle settings" +msgstr "Paramètres sous-titres" + +msgid "Subtitles" +msgstr "Sous-titres" + +msgid "Sun" +msgstr "Dim" + +msgid "Sunday" +msgstr "Dimanche" + +msgid "Swap PiP and main picture" +msgstr "Inverser PiP et image principale" + +msgid "Swap services" +msgstr "Inverser fenêtres services" + +msgid "Swedish" +msgstr "Suédois" + +msgid "Switch TV to correct input" +msgstr "Basculer la TV sur la bonne entrée" + +msgid "Switch between filelist/playlist" +msgstr "Permuter entre la liste des fichiers/liste de lecture" + +msgid "Switch between normal mode and list mode" +msgstr "Basculer entre le mode normal et le mode liste" + +msgid "Switch to HDMI in mode" +msgstr "Basculer sur HDMI en mode" + +msgid "Switch to filelist" +msgstr "Basculer vers la liste des fichiers" + +msgid "Switch to next channel" +msgstr "" + +msgid "Switch to next channel in history" +msgstr "Basculer vers la chaîne suivante dans l'historique" + +msgid "Switch to next sub service" +msgstr "Basculer vers sous-service suivant" + +msgid "Switch to playlist" +msgstr "Basculer vers la liste de lecture" + +msgid "Switch to previous channel" +msgstr "Basculer vers la chaîne précédente" + +msgid "Switch to previous channel in history" +msgstr "Basculer vers la chaîne précédente dans l'historique" + +msgid "Switch to previous sub service" +msgstr "Basculer vers sous-service précédent" + +msgid "Switchable tuner types:" +msgstr "Types de tuner permutables :" + +msgid "Symbol rate" +msgstr "Fréq. symbole" + +msgid "Symbol rate:" +msgstr "Fréq. symbole:" + +msgid "Sync failure moving back to origin !" +msgstr "Erreur de syncho pour revenir à l'origine !" + +msgid "System" +msgstr "Système" + +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "" +"Traduction Française\n" +"Enigma2 - OpenPLi\n" +"Support: www.openpli.org\n" +"Dernière MAJ: Mai 2014" + +msgid "TS file is too large for ISO9660 level 1!" +msgstr "Fichier TS trop grand pour le niveau 1 ISO9660 !" + +msgid "TSID" +msgstr "TSID" + +msgid "TV physical address report" +msgstr "Rapport adresse physique TV" + +msgid "TXT PID" +msgstr "PID TXT" + +msgid "Table of contents for collection" +msgstr "Table des matières pour la collection" + +msgid "Tags" +msgstr "Etiq." + +msgid "Teletext subtitle color" +msgstr "Couleur des sous-titres télétexte" + +msgid "Temperature and fan control" +msgstr "Contrôle Fan et Température" + +msgid "Terrestrial" +msgstr "Terrestre" + +msgid "Terrestrial provider" +msgstr "Opérateur terrestre" + +msgid "Test DiSEqC settings" +msgstr "Test configuration DiSEqC" + +msgid "Test mode" +msgstr "Mode test" + +msgid "Test the network configuration of your receiver.\n" +msgstr "Tester la configuration réseau de votre récepteur.\n" + +msgid "Test type" +msgstr "Type test" + +msgid "Text color" +msgstr "Couleur texte" + +msgid "Thai" +msgstr "Thaï" + +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"Merci d'utiliser l'assistant.\n" +"Veuillez presser OK pour continuer." + +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"Merci d'utiliser l'assistant. Votre récepteur est maintenant prêt à être utilisé.\n" +"Appuyez sur OK pour commencer à utiliser votre récepteur." + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "La norme DVD ne prend pas en charge les flux vidéo H.264 (HDTV). Voulez-vous créer un format spécial DVD de données (qui ne fonctionnera pas dans les lecteurs de DVD autonomes) à la place ?" + +msgid "The PIN code has been changed successfully." +msgstr "Le code PIN a été changé avec succès." + +msgid "The PIN codes you entered are different." +msgstr "Les codes PIN saisis sont différents." + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" +"La clé USB à été préparé pour être bootable.\n" +"Maintenant vous pouvez télécharger un fichier image NFI !" + +msgid "The backup failed. Please choose a different backup location." +msgstr "La sauvegarde a échoué. Veuillez choisir un autre emplacement." + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" +"L'image bêta actuelle pourrait ne pas être stable.\n" +"Pour plus d'informations, voir %s." + +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"Le répertoire %s n'est pas inscriptible.\n" +"Vérifier d'avoir choisi un répertoire inscriptible à la place." + +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"Le périphérique suivant à été trouvé:\n" +"\n" +"%s\n" +"\n" +"Souhaitez-vous écrire le flasheur USB sur cette clef ?" + +msgid "The following files were found..." +msgstr "Les fichiers suivant ont été trouvés..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "La validation md5sum a échoué, le fichier est peut être corrompu !" + +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"L'extension Assistant Réseau n'est pas installée !\n" +"Veuillez l'installer." + +#, python-format +msgid "The path %s already exists." +msgstr "Le chemin %s existe déjà." + +msgid "The pin code you entered is wrong." +msgstr "Le code pin saisi est mauvais" + +#, python-format +msgid "The results have been written to %s." +msgstr "Les résultats ont été écrit sur %s." + +msgid "The sleep timer has been activated." +msgstr "La veille programmée a été activée" + +msgid "The sleep timer has been disabled." +msgstr "La veille programmée a été désactivée" + +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"L'extension Gestionnaire Logiciel n'est pas installée !\n" +"Veuillez l'installer." + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "Le statut de l'image bêta actuelle n'a pas pu être vérifié, car %s ne peut pas être atteint." + +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "Le fichier programmation (timers.xml) est corrompu et ne peut-être chargé." + +msgid "The user interface of your receiver is restarting" +msgstr "L'interface utilisateur de votre récepteur redémarre" + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" +"L'interface utilisateur de votre récepteur redémarre\n" +"en raison d'une erreur dans 'mytest.py'" + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"L'extension LAN sans fil n'est pas installée !\n" +"Veuillez l'installer et choisir ce que vous voulez faire ensuite." + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"L'extension LAN sans fil n'est pas installée !\n" +"Veuillez l'installer." + +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "L'assistant peut sauvegarder vos paramètres actuels. Voulez-vous sauvegarder maintenant ?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "L'assistant à trouvé une configuration sauvegarde. Voulez-vous restaurer vosanciens paramètres depuis %s ?" + +msgid "The wizard is finished now." +msgstr "L'assistant est terminé." + +msgid "There are at least " +msgstr "Il y a au moins " + +#, python-format +msgid "There are at least %s updates available." +msgstr "Il y a au moins %s mises à jour disponibles." + +msgid "There are currently no outstanding actions." +msgstr "Il n'y a actuellement aucune action marquante." + +msgid "There are no updates available." +msgstr "Il n'y a pas de mise à jour disponible" + +msgid "There is no signal to lock on !" +msgstr "Il n'y a aucun signal à vérouiller !" + +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"Il n'y aura pas assez de place sur la partition sélectionnée.\n" +"Souhaitez-vous vraiment continuer ?" + +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "Ce support DVD RW est déjà formaté - le reformater effacera tout le contenu sur le disque." + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" +"Ce plugin crée une clé USB qui peut être utilisé pour mettre à jour le firmware de votre récepteur sans avoir besoin d'une connexion réseau ou WLAN.\n" +"Tout d'abord, une clé USB doit être préparée de sorte qu'elle soit bootable.\n" +"Dans l'étape suivante, un fichier image NFI peut être téléchargé à partir du serveur de mise à jour et sauvegardé sur la clé USB.\n" +"Si vous avez déjà une clé USB bootable préparé, s'il vous plaît insérez-la maintenant. Sinon, branchez une clé USB avec une taille minimum de 64 Mo!" + +msgid "This plugin is installed." +msgstr "Ce plugin est installé." + +msgid "This plugin is not installed." +msgstr "Ce plugin n'est pas installé." + +msgid "This plugin will be installed." +msgstr "Ce plugin sera installé." + +msgid "This plugin will be removed." +msgstr "Ce plugin sera retiré." + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "Ce récepteur ne peut pas décoder des flux %s !" + +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"Ce test vérifie la configuration noms serveurs.\n" +"Si vous obtenez un message \"non confirmé\" :\n" +"- S'il vous plaît vérifier votre DHCP, le câblage et l'adaptateur de configuration\n" +"- Si vous avez configuré vos serveurs de noms manuellement vérifier vos entrées." + +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Ce test vérifie si un câble réseau est bien connecté à votre adaptateur LAN.\n" +"Si vous obtenez le message \"déconnecté\" :\n" +"- Vérifiez qu'un câble est bien connecté\n" +"- Vérifiez que le câble n'est pas détérioré" + +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Ce test vérifie qu'une adresse IP valide est trouvée pour votre adaptateur LAN.\n" +"Si vous obtenez le message \"Non confirmé\" :\n" +"- Aucune adresse IP valide na été trouvée\n" +"- Veuillez vérifier votre DHCP, paramètres câblage et adaptateur" + +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"Ce test vérifie que votre adaptateur réseau est configuré en adresse IP automatique configuration avec serveur DHCP.\n" +"Si vous obtenez le message \"Désactivé\" :\n" +"- Votre adaptateur LAN est configuré en adresse IP manuelle\n" +"- Vérifiez que vous avez entré les informations IP correctes dans le menu paramètres adaptateur\n" +"Si vous obtenez le message \"Activé\" :\n" +"- Vérifiez que vous avez configuré un serveur DHCP dans votre réseau" + +msgid "This test detects your configured LAN adapter." +msgstr "Ce test détecte votre adaptateur LAN configuré." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" +"Cela permettra de (re) calculer toutes les positions de votre rotor et peut effacer les positions mémorisées auparavant !\n" +"Êtes-vous sûr ?" + +msgid "Three" +msgstr "Trois" + +msgid "Threshold" +msgstr "Seuil" + +msgid "Thu" +msgstr "Jeu" + +msgid "Thumbnails" +msgstr "Miniatures" + +msgid "Thursday" +msgstr "Jeudi" + +msgid "Time" +msgstr "Heure" + +msgid "Time scale" +msgstr "Echelle de temps" + +msgid "Timer" +msgstr "Programmation" + +msgid "Timer Overview" +msgstr "Aperçu des programmations" + +msgid "Timer edit" +msgstr "Édition des programmations" + +msgid "Timer editor" +msgstr "Éditeur programmations" + +msgid "Timer entry" +msgstr "Saisir programmation" + +msgid "Timer log" +msgstr "Journal des enregistrements" + +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"Chevauchement temporisateur dans timers.xml détecté !\n" +"Veuiller le re-vérifier !" + +msgid "Timer overview" +msgstr "Aperçu des programmations" + +msgid "Timer recording location" +msgstr "Emplacement enregistrements programmés" + +msgid "Timer sanity error" +msgstr "Erreur de programmation" + +msgid "Timer selection" +msgstr "Sélection de programmation" + +msgid "Timer selection..." +msgstr "Sélection de programmation..." + +msgid "Timer type" +msgstr "Type programmation" + +msgid "Timeshift" +msgstr "PauseDirect" + +msgid "Timeshift Live" +msgstr "" + +msgid "Timeshift location" +msgstr "Emplacement PauseDirect" + +msgid "Timeshift not possible!" +msgstr "PauseDirect impossible !" + +msgid "Timezone" +msgstr "Fuseau horaire" + +msgid "Title" +msgstr "Titre" + +msgid "Title properties" +msgstr "Propriétés titre" + +msgid "Titleset mode" +msgstr "Mode jeu titre" + +msgid "To audio selection" +msgstr "Vers sélection piste audio" + +msgid "To subtitle selection" +msgstr "Vers sélection sous-titres" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" +"Pour mettre à jour le firmware de votre récepteur, s'il vous plaît suivez ces étapes :\n" +"1) Eteignez votre recepteur avec l'interrupteur arrière et assurez-vous que la clé USB bootable est branché\n" +"2) Allumer votre récepteur et maintenez le bouton DOWN sur la face avant pendant 10 secondes.\n" +"3) Attendre le démarrage et suivez les instructions de l'assistant." + +msgid "Today" +msgstr "Aujourd'hui" + +msgid "Toggle a cut mark at the current position" +msgstr "Commuter un marqueur coupé à cette position" + +msgid "Tone amplitude" +msgstr "Amplitude tonalité" + +msgid "Tone mode" +msgstr "Mode tonalité" + +msgid "Toneburst" +msgstr "Toneburst" + +msgid "Toneburst A/B" +msgstr "Toneburst A/B" + +msgid "Top and bottom" +msgstr "Haut et Bas" + +msgid "Track" +msgstr "Piste" + +msgid "Translation" +msgstr "Traduction" + +msgid "Translation:" +msgstr "Traduction :" + +msgid "Translations" +msgstr "Traductions" + +msgid "Transmission mode" +msgstr "Mode de transmission" + +msgid "Transponder" +msgstr "Transpondeur" + +msgid "Transponder type" +msgstr "Type transpondeur" + +msgid "Trash can" +msgstr "Corbeille" + +msgid "Tries left:" +msgstr "Essais annulés :" + +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Essai de trouver transpondeurs utilisés sur réseau câble... Veuillez patienter..." + +msgid "Trying to download a new packetlist. Please wait..." +msgstr "Essai téléchargement nouvelle liste paquet. Veuillez patienter..." + +msgid "Tue" +msgstr "Mar" + +msgid "Tuesday" +msgstr "Mardi" + +msgid "Tune" +msgstr "Accorder" + +msgid "Tune and focus" +msgstr "Accord et mise au point" + +msgid "Tune failed!" +msgstr "Echec accord !" + +msgid "Tuner" +msgstr "Tuner" + +msgid "Tuner configuration" +msgstr "Configuration tuner" + +msgid "Tuner is not supported" +msgstr "Le tuner n'est pas supporté" + +msgid "Tuner slot" +msgstr "Slot tuner" + +msgid "Tuner status" +msgstr "Status tuner" + +#, python-format +msgid "Tuner status %s" +msgstr "Status tuner %s" + +msgid "Tuner type" +msgstr "Type Tuner" + +msgid "Turkish" +msgstr "Turc" + +msgid "Turn on the power LED during standby." +msgstr "Allumer la LED power pendant le standby." + +msgid "Turning step size" +msgstr "Taille du pas de rotation" + +msgid "Two" +msgstr "Deux" + +msgid "Type" +msgstr "Type" + +msgid "Type of scan" +msgstr "Type d'analyse" + +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "Calibrage USALS" + +msgid "USB stick" +msgstr "Clé USB" + +msgid "USB stick wizard" +msgstr "Assistant clé USB" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Mise à jour automatique en cours\n" +"Veuillez attendre que votre récepteur redémarre\n" +"Cela peut prendre quelques minutes" + +msgid "Undo install" +msgstr "Défaire installation" + +msgid "Undo uninstall" +msgstr "Défaire désinstallation" + +msgid "Unencrypted" +msgstr "Non crypté" + +msgid "UnhandledKey" +msgstr "Clé non prise en charge" + +msgid "Unicable" +msgstr "Unicable" + +msgid "Unicable LNB" +msgstr "Unicable LNB" + +msgid "Unicable Martix" +msgstr "Unicable Martix" + +msgid "Uninstall" +msgstr "Désinstaller" + +msgid "Universal LNB" +msgstr "LNB universel" + +msgid "Unknown" +msgstr "Inconnu" + +msgid "Unmount" +msgstr "Démonter" + +msgid "Unsupported" +msgstr "Non supporté" + +msgid "Update" +msgstr "Mise à jour" + +msgid "Update and ask to reboot" +msgstr "Mettre à jour et demander de redémarrer" + +msgid "Update and reboot (recommended)" +msgstr "Mise à jour et redémarrage (recommandé)" + +msgid "Update channel list only" +msgstr "Mettre à jour seulement liste des chaînes" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "Mise à jour terminée, %d paquet a été installé." +msgstr[1] "Mise à jour terminée, %d paquets ont été installés." + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "Mise à jour terminée. Voulez-vous redémarrer votre récepteur ?" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "La mise à jour a échoué. Votre récepteur ne dispose pas de connexion Internet." + +msgid "Update has completed." +msgstr "La mise à jour est terminée." + +msgid "Updatefeed not available." +msgstr "MAJ feed non disponible." + +msgid "Updating software catalog" +msgstr "Mise à jour du catalogue logiciel" + +msgid "Upgrading" +msgstr "Mise à jour en cours" + +msgid "Use" +msgstr "Utiliser" + +msgid "Use DHCP" +msgstr "Utiliser DHCP" + +msgid "Use EIT EPG information when it is available." +msgstr "Utiliser l'information EIT EPG quand elle est disponible." + +msgid "Use FreeSat EPG information when it is available." +msgstr "Utiliser l'information FreeSat EPG quand elle est disponible." + +msgid "Use MHW EPG information when it is available." +msgstr "Utiliser l'information MHW EPG quand elle est disponible." + +msgid "Use Netmed EPG information when it is available." +msgstr "Utiliser l'information Netmed EPG quand elle est disponible." + +msgid "Use TV remote control" +msgstr "Utiliser la télécommande de la TV" + +msgid "Use USALS for this sat" +msgstr "Utiliser USALS pour ce satellite" + +msgid "Use ViaSat EPG information when it is available." +msgstr "Utiliser l'information ViaSat EPG quand elle est disponible." + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +msgid "Use a gateway" +msgstr "Utiliser la passerelle" + +msgid "Use fastscan channel names" +msgstr "Utiliser le scan rapide des noms des chaînes" + +msgid "Use fastscan channel numbering" +msgstr "Utiliser le scan rapide pour la numérotation des chaînes" + +msgid "Use frequency or channel" +msgstr "Utiliser fréquence ou chaîne" + +msgid "Use individual settings for each directory" +msgstr "Utiliser les paramétres individuels pour chaque répertoire" + +msgid "Use interface" +msgstr "Utiliser l'interface" + +msgid "Use official channel numbering" +msgstr "Utiliser la numérotation officielle des chaînes" + +msgid "Use original DVB subtitle position" +msgstr "Utiliser la position des sous-titres DVB" + +msgid "Use original teletext position" +msgstr "Utiliser la position d'origine du télétexte" + +msgid "Use power measurement" +msgstr "Utiliser la mesure de puissance" + +msgid "Use the network wizard to configure selected network adapter" +msgstr "Utiliser l'asistant réseau pour configurer l'adaptateur réseau" + +msgid "Use the network wizard to configure your network\n" +msgstr "Utiliser l'Assistant réseau pour configurer votre Réseau\n" + +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "Utiliser les boutons haut/bas de votre télécommande pour sélectionner une option. Après cela, appuyez sur OK." + +msgid "Use the wizard to set up basic features" +msgstr "Utiliser l'assistant pour les réglages de base" + +msgid "Use these input device settings?" +msgstr "Utiliser ces paramètres périphérique entrée ?" + +msgid "Use these settings?" +msgstr "Voulez-vous utiliser ces paramètres ?" + +msgid "Use this video enhancement settings?" +msgstr "Utiliser ces paramètres vidéo améliorés ?" + +msgid "Use trash can in movielist" +msgstr "Utiliser la corbeille dans liste des films" + +msgid "Used service scan type" +msgstr "Type d'analyse de service utilisé" + +msgid "User - bouquets" +msgstr "Perso - bouquets" + +msgid "User defined" +msgstr "Défini par l'utilisateur" + +msgid "User defined transponder" +msgstr "Transpondeur défini par l'utilisateur" + +msgid "User interface" +msgstr "Interface utilisateur" + +msgid "Username" +msgstr "Nom utilisateur" + +#, python-format +msgid "Using LNB %d" +msgstr "Utilisation LNB %d" + +msgid "Using fixed address" +msgstr "Utilisation d'adresse fixe" + +#, python-format +msgid "Using tuner %s" +msgstr "Utilisation du tuner %s " + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "Habituellement, lorsque la langue des sous-titres est la même que la langue audio, les sous-titres ne seront pas utilisées. Activez cette option pour permettre à ces sous-titres d'être utiliser." + +msgid "VCR scart" +msgstr "Péritel magnétoscope" + +msgid "VMGM (intro trailer)" +msgstr "VMGM (intro bande-annonce)" + +msgid "Vertical" +msgstr "Vertical" + +msgid "Vertical turning speed" +msgstr "Vitesse rotation verticale" + +msgid "Video PID" +msgstr "PID Video" + +msgid "Video enhancement preview" +msgstr "Aperçu pour vidéo améliorée" + +msgid "Video enhancement settings" +msgstr "Paramètres pour vidéo améliorée" + +msgid "Video enhancement setup" +msgstr "Configuration pour vidéo améliorée" + +msgid "Video fine tuning" +msgstr "Réglage Vidéo avancé" + +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Sélection entrée vidéo\n" +"\n" +"Veuillez presser OK si vous pouvez voir cette page sur la TV (ou choisir un port d'entrée différent).\n" +"\n" +"Le port entrée suivant sera automatiquement scanné dans 20 secondes." + +msgid "Video mode selection." +msgstr "Sélection du mode vidéo." + +msgid "Video output" +msgstr "Sortie vidéo" + +msgid "Video setup" +msgstr "Paramètres vidéo" + +msgid "Video wizard" +msgstr "Assistant Vidéo" + +#, python-format +msgid "Video: %s fps" +msgstr "Vidéo: %s fps" + +msgid "VideoMode" +msgstr "Mode Vidéo" + +msgid "Videocodec" +msgstr "Codec vidéo" + +msgid "Videoformat" +msgstr "Format vidéo" + +msgid "Videosize" +msgstr "Taille vidéo" + +msgid "View Rass interactive..." +msgstr "Afficher Rass interactif..." + +msgid "View details" +msgstr "Voir les détails" + +msgid "View list of available " +msgstr "Voir la liste des disponibles" + +msgid "View list of available CommonInterface extensions" +msgstr "Voir liste des Common Interface disponibles." + +msgid "View list of available EPG extensions." +msgstr "Voir liste extensions EPG disponibles." + +msgid "View list of available Satellite equipment extensions." +msgstr "Voir liste extensions dispositif satellitaire disponibles." + +msgid "View list of available communication extensions." +msgstr "Voir liste extensions communication disponibles." + +msgid "View list of available default settings" +msgstr "Voir liste configurations prédéfinies disponibles." + +msgid "View list of available display and userinterface extensions." +msgstr "Voir liste extensions affichages/interface utilisateur disponibles." + +msgid "View list of available multimedia extensions." +msgstr "Voir liste extensions multimédias disponibles." + +msgid "View list of available networking extensions" +msgstr "Voir liste extensions du réseau disponibles." + +msgid "View list of available recording extensions" +msgstr "Voir liste extensions d'enregistrements disponibles." + +msgid "View list of available skins" +msgstr "Voir liste thèmes disponibles." + +msgid "View list of available software extensions" +msgstr "Voir liste extensions logiciels disponibles." + +msgid "View list of available system extensions" +msgstr "Voir liste extensions des systèmes disponibles." + +msgid "View photos..." +msgstr "Voir Photos..." + +msgid "View teletext..." +msgstr "Afficher télétexte..." + +msgid "View video CD..." +msgstr "Voir Vidéo CD..." + +msgid "Virtual keyboard" +msgstr "Clavier virtuel" + +msgid "Voltage mode" +msgstr "Mode voltage" + +msgid "Volume" +msgstr "Volume" + +msgid "W" +msgstr "O" + +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "Connexion WLAN" + +msgid "WPA" +msgstr "WPA" + +msgid "WPA or WPA2" +msgstr "WPA ou WPA2" + +msgid "WPA2" +msgstr "WPA2" + +msgid "WSS on 4:3" +msgstr "WSS sur 4:3" + +msgid "Waiting" +msgstr "Attendez" + +msgid "Waiting for mount" +msgstr "Attendre pour monter" + +msgid "Waiting for partition" +msgstr "Attendre pour partitionner" + +msgid "Wakeup" +msgstr "Réveil" + +msgid "Wakeup TV from standby" +msgstr "Réveil de la TV depuis le mode veille" + +msgid "Wakeup receiver for start timer" +msgstr "Réveil du récepteur pour une programmation de démarrage" + +msgid "Wakeup receiver from standby" +msgstr "Réveil du récepteur depuis le mode veille" + +msgid "Wakeup signal from TV" +msgstr "Signal du réveil de la TV" + +msgid "Wakeup type" +msgstr "Type de réveil" + +msgid "Warning: no LNB; using factory defaults." +msgstr "Attention : pas de LNB; utiliser la configuration par défaut." + +msgid "Watch movies..." +msgstr "Lire les films..." + +msgid "Watch recordings..." +msgstr "Lire enregistrements..." + +msgid "Wed" +msgstr "Mer" + +msgid "Wednesday" +msgstr "Mercredi" + +msgid "Weekday" +msgstr "Jours ouvrables" + +msgid "Weighted position" +msgstr "Position pondérée" + +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"Bienvenue dans l'éditeur Cutlist.\n" +"\n" +"Rechercher le départ de la partie que vous voulez couper. Presser OK, sélectionner 'départ de coupe'.\n" +"\n" +"Puis rechercher la fin, presser OK, sélectionner 'fin de coupe'. C'est fait." + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "Bienvenue dans l'assistant de mise à niveau d'image. L'assistant va vous aider à mettre à niveau le micrologiciel de votre récepteur en offrant un service de sauvegarde de vos paramètres actuels et une courte explication de la façon de mettre à jour votre firmware." + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" +"Bienvenue.\n" +"\n" +"Si vous souhaitez connecter votre récepteur à Internet, cet assistant vous guidera à travers la configuration réseau de base de votre récepteur.\n" +"\n" +"Appuyez sur OK pour commencer à configurer votre réseau" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" +"Bienvenue.\n" +"\n" +"Cet assistant de démarrage vous guidera à travers la configuration de base de votre récepteur.\n" +"Appuyez sur le bouton OK de votre télécommande pour passer à l'étape suivante." + +msgid "Welcome..." +msgstr "Bienvenue..." + +msgid "West" +msgstr "Ouest" + +msgid "West limit set" +msgstr "Fixer limite Ouest" + +msgid "What do you want to scan?" +msgstr "Que voulez-vous analyser ?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "Lorsqu'elle est activé le PiP peut être fermé avec le bouton exit." + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "Lorsqu'elle est activée vous pouvez spécifier une plage horaire pendant laquelle l'arrêt automatique pour inactivité est ignoré. La détection n'est pas désactivée pendant cette période, juste le timer d'inactivité est désactivé." + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "Lorsqu'elle est activée, les données de l'AIT seront inclus dans les flux http. Cela permet à un récepteur client d'utiliser HbbTV." + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "Lorsqu'elle est activée, les données ECM seront inclus dans les flux http. Cela permet à un récepteur client de faire le décryptage." + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "Lorsqu'elle est activée, les données EIT seront inclus dans les flux http. Cela permet à un récepteur clients d'afficher l'EPG." + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "Lorsqu'elle est activée, un message contextuel s'affiche quand un film est terminé et que le prochain va commencer." + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "Lorsqu'elle est activée, un message contextuel s'affiche lorsque l'enregistrement commence." + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "Lorsqu'elle est activée, une image de fond radio sera visible pendant que vous écoutez une station de radio." + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "Lorsqu'elle est activée, un enregistrement est autorisé à interrompre la télévision en direct, quand il n'y a pas de tuners libres." + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "Lorsqu'elle est activée, un avertissement sera affiché et l'utilisateur aura l'option d'arrêter ou de continuer le timeshift." + +msgid "When enabled, authentication is required to watch http streams." +msgstr "Lorsque c'est activé, une authentification est nécessaire pour regarder les flux (streams) http" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "Lorsqu'elle est activée, la numérotation des chaînes démarre à '1 'pour chaque bouquet." + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "Lorsqu'elle est activée, le contenu d'un rapport d'aspect de 4:3 sera étirée pour remplir l'écran." + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "Lorsqu'elle est activée, passez au prochain bouquet quand la dernière chaîne du bouquet en cour est atteint tout en changeant de chaines." + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "Lorsqu'elle est activée, les enregistrements supprimés sont déplacés dans la corbeille, au lieu d'être supprimé immédiatement." + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "Lorsqu'elle est activée, les événements maintenant/suivant de l'EIT seront affichés dans la barre d'info. Lorsqu'elle est désactivé, les événements maintenant/suivant seront affichés dans la barre à partir du cache EPG." + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "Lorsqu'elle est activée, les informations d'encryption seront affichés dans la barre d'information (lorsqu'elle est soutenue par le skin)." + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "Lorsqu'elle est activée, les messages d'erreur relatifs au module d'interface commune ne sera pas affiché." + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "Lorsqu'elle est activée, les messages d'erreurs liés au zapping ne seront pas affichés." + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "Lorsqu'elle est activée, les sous-titres externes seront toujours activés lors de la lecture d'un film." + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "Lorsqu'elle est activée, les sous-titres graphiques DVB seront préférés aux sous-titres télétexte, lorsque les deux types sont disponibles." + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "Lorsqu'elle est activée, les sous-titres graphiques DVB seront centrés horizontalement." + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "Lorsqu'elle est activée, les sous-titres graphiques DVB seront affichées à leur position d'origine." + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "Lorsqu'elle est activée, les sous-titres graphiques DVB seront affichés en jaune, au lieu de la couleur d'origine." + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "Lorsqu'elle est activée, les flux http sont décryptés du côté serveur. Le récepteur client (distant) n'aura pas a décrypter." + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "Lorsqu'elle est activée, il est possible de quitter le lecteur de film avec exit." + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "Lorsqu'elle est activée, la consommation d'énergie sera mesuré pour détecter le moment où le rotor ne tourne pas (lorsqu'elle est supportée par le tuner)." + +msgid "When enabled, number markers will be hiden." +msgstr "Lorsqu'elle est activée, le numéro des marqueurs sera caché." + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "Lorsqu'elle est activée, les services peuvent être regroupées en bouquets multiples." + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "Lorsqu'elle est activée, afficher les numéros des chaines dans l'écran de sélection des chaines." + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "Lorsqu'elle est activée, les sous-titres pour les malentendants peuvent être utilisés." + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "Lorsqu'elle est activée, les sous-titres pour les malentendants seront préférés aux sous-titres normaux, lorsque les deux types sont disponibles." + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "Lorsqu'elle est activée, les pages télétexte seront mise en cache, ce qui permet un accès plus rapide." + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "Lorsqu'elle est activée, les sous-titres télétexte seront affichés à leur position d'origine." + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "Lorsqu'elle est activée, l'option péritel magnétoscope sera affichée dans l'écran principal" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "Lorsqu'elle est activée, la liste des chaînes sera cachée pendant l'écoute d'une station de radio" + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "Lorsqu'elle est activée, la barre d'informations s'affiche quand un nouvel événement commence." + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "Lorsqu'elle est activée, la barre d'informations s'affiche lors du changement de chaînes." + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "Lorsqu'elle est activée, la barre d'informations s'affiche lors du saut avant / arrière pendant la lecture des médias." + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "Lorsqu'elle est activée, la longueur de chaque enregistrement sera affiché dans la Liste Des Films (ce qui peut provoquer un certain temps de chargement supplémentaire)." + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "Lorsqu'elle est activée, les sauts de lignes originales seront retirés des sous-titres télétexte." + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "Lorsqu'elle est activée, le récepteur utilisera automatiquement la piste audio que vous avez sélectionnée auparavant." + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "Lorsqu'elle est activée, le récepteur utilisera automatiquement les sous-titres que vous avez sélectionnés avant." + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "Lorsqu'elle est activée, le récepteur ne sera plus suivre les éventuelles modifications du transpondeur. N'utiliser cette option que si vous savez ce que vous faites." + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "Lorsqu'elle est activée, le récepteur sélectionne une piste AC3 (si disponible)." + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "Lorsqu'elle est activée, le récepteur sélectionne une piste AC3+ (si disponible)." + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "Lorsqu'elle est activée, le timeshift démarre automatiquement en tâche de fond après le temps spécifié." + +msgid "When enabled, use DHCP for the IP configuration." +msgstr "Lorsqu'elle est activée, utiliser DHCP pour la configuration IP." + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "Lorsqu'elle est activée, le récepteur détecte l'activité sur l'entrée péritel magnétoscope." + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "Lorsque différent de zéro, un enregistrement commence plus tôt que l'heure de départ indiquée par le guide des programmes." + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "Lorsque différent de zéro, un enregistrement s'arrêtera plus tard que l'heure de fin indiquée par l'EPG." + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "Lorsque le contenu a un rapport d'aspect de 16:9, choisir de redimensionner/étirer l'image." + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "Lorsque le contenu a un rapport d'aspect de 4:3, choisir de redimensionner/étirer l'image." + +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"En faisant une réinitialisation usine, vous perdrez TOUTES vos données configurées\n" +"(y compris bouquets, services, données satellite ...)\n" +"Lorsque la réinitialisation usine sera accomplie, votre récepteur redémarrera automatiquement!\n" +"\n" +"Voulez-vous vraiment faire une réinitialisation usine ?" + +msgid "Where do you want to backup your settings?" +msgstr "Où voulez-vous sauver vos paramètres ?" + +msgid "Where to save temporary timeshift recordings?" +msgstr "Où sauver les enregistrements temporaires PauseDirect ?" + +msgid "Wireless LAN" +msgstr "LAN sans fil" + +msgid "Wireless network" +msgstr "Réseau sans fil" + +msgid "Wireless network configuration..." +msgstr "Configuration connexion réseau sans fil." + +msgid "Wireless network connection setup" +msgstr "Configuration connexion réseau sans fil" + +msgid "Wireless network connection setup." +msgstr "Configuration connexion réseau sans fil." + +msgid "Wireless network state" +msgstr "État du réseau sans fil" + +msgid "With popup" +msgstr "Avec le popup" + +msgid "Without popup" +msgstr "Sans le popup" + +msgid "Would you like to install a softcam?" +msgstr "Voulez-vous installer un softcam ?" + +msgid "Write error while recording. Disk full?\n" +msgstr "Erreur d'écriture lors de l'enregistrement. Disque plein ?\n" + +msgid "Write failed!" +msgstr "Échec d'écriture !" + +msgid "YPbPr" +msgstr "YPbPr" + +msgid "Year" +msgstr "Année" + +msgid "Yellow DVB subtitles" +msgstr "Sous-titres DVB jaune" + +msgid "Yes" +msgstr "Oui" + +msgid "Yes and save" +msgstr "Oui et sauvegarder" + +msgid "Yes and save in movie dir" +msgstr "Oui et sauvegarder dans le répertoire des films" + +msgid "Yes to all" +msgstr "Oui à tout" + +msgid "Yes, always" +msgstr "Oui, toujours" + +msgid "Yes, and delete this movie" +msgstr "Oui, et effacer ce film" + +msgid "Yes, backup my settings!" +msgstr "Oui, sauvegarder mes paramètres !" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +msgid "Yes, do a manual scan now" +msgstr "Oui, faire une analyse manuelle maintenant" + +msgid "Yes, do an automatic scan now" +msgstr "Oui, faire une analyse automatique maintenant" + +msgid "Yes, do another manual scan now" +msgstr "Oui, faire une autre analyse manuelle maintenant" + +msgid "Yes, perform a shutdown now." +msgstr "Oui, éteindre maintenant." + +msgid "Yes, restore the settings now" +msgstr "Oui, restaurer les paramètres maintenant" + +msgid "Yes, returning to movie list" +msgstr "Oui, retour vers liste des films" + +msgid "Yesterday" +msgstr "Hier" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" +"Vous avez déjà une liste de chaînes installée,\n" +"voulez-vous enlever\n" +"\"%s\" ?" + +msgid "You can cancel the installation." +msgstr "Vous pouvez annuler l'installation." + +msgid "You can cancel the removal." +msgstr "Vous pouvez annuler le retrait." + +msgid "You can continue watching TV etc. while this is running." +msgstr "Vous pouvez continuer de regarder la TV pendant le processus." + +msgid "You can install this plugin." +msgstr "Vous pouvez installer le plugin." + +msgid "You can only burn receiver recordings!" +msgstr "Vous pouvez uniquement graver les enregistrements du recepteur !" + +msgid "You can remove this plugin." +msgstr "Vous pouvez retirer ce plugin." + +msgid "You cannot delete this!" +msgstr "Vous ne pouvez pas effacer ceci !" + +msgid "You didn't select a channel to record from." +msgstr "Vous n'avez pas sélectionné une chaîne à enregistrer." + +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "Vous avez choisi de sauvegarder vos paramètres. Veuillez appuyer sur OK pour commencer la sauvegarde." + +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "Vous avez choisi de créer une nouvelle clef USB flasheur bootable .NFI. Ceci repartitionnera la clef USB et par conséquant effacera toutes données dessus." + +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "Vous avez choisi de restaurer vos paramètres. Enigma2 redémarrera après la restauration. Veuillez appuyer sur OK pour démarrer la restauration." + +#, python-format +msgid "You have to wait %s!" +msgstr "Vous devez attendre %s !" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" +"Vous avez besoin d'un PC relié à votre récepteur. Si vous avez besoin de plus amples instructions, s'il vous plaît visitez le site Web de http://www.dm7025.de.\n" +"Votre récepteur va maintenant être arrêté. Après avoir exécuté les instructions de mise à jour du site web, votre nouveau firmware vous demandera de restaurer vos paramètres." + +msgid "You system does not support ext4" +msgstr "Votre système ne supporte pas ext4" + +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "Votre sauvegarde a réussi. Nous allons continuer à expliquer la procédure de mise à jour." + +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "Votre collection dépasse la taille d'un support simple couche, vous aurez besoin d'un DVD double couche vierge !" + +msgid "Your current collection will get lost!" +msgstr "Votre collection actuelle sera perdue !" + +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"Le logiciel de votre frontprocessor doit être mis à jour.\n" +"Veuillez appuyer sur OK pour commencer la mise à jour." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Votre frontprocessor sera mis à jour\n" +"S'il vous plaît attendez le redémarrage de votre récepteur\n" +"Cela peut prendre quelques minutes" + +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"Votre connexion internet ne fonctionne pas!\n" +"Veuillez choisir ce que vous voulez faire ensuite." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "Votre connexion Internet fonctionne (ip: %s)" + +msgid "Your network configuration has been activated." +msgstr "Votre configuration réseau a été activée." + +msgid "Your receiver does not have an internet connection" +msgstr "Votre récepteur ne dispose pas d'une connexion Internet" + +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"Votre récepteur est maintenant prêt à être utilisé.\n" +"\n" +"Votre connexion Internet fonctionne.\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Votre récepteur est maintenant prêt à être utilisé.\n" +"\n" +"Votre connexion Internet fonctionne maintenant.\n" +"\n" +"S'il vous plaît appuyez sur OK pour continuer." + +msgid "Your receiver is rebooting" +msgstr "Votre récepteur redémarre" + +msgid "Your receiver is shutting down" +msgstr "Votre récepteur s'arrête" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "Votre récepteur s'arrête. Please stand by..." + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "Votre récepteur peut être inutilisable maintenant. S'il vous plaît consulter le manuel pour obtenir de l'aide avant de redémarrer votre récepteur." + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "Votre récepteur va se mettre en veille sur base du timer d'inactivité (sleeptimer)." + +msgid "Your receiver will got to standby due to inactivity." +msgstr "Votre récepteur va se mettre en veille faute d'activité." + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "Votre récepteur va redémarrer après avoir appuyé sur OK de votre télécommande." + +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"Votre connexion internet LAN sans fil ne peut démarrer!\n" +"Avez-vous connecté correctement votre clé USB WLAN?\n" +"\n" +"Veuillez choisir ce que vous voulez faire ensuite." + +msgid "Zap" +msgstr "Zapper" + +msgid "Zap back to previously tuned service?" +msgstr "Revenir sur le service précédemment réglé?" + +msgid "Zap back to service before positioner setup?" +msgstr "Revenir sur le service avant le réglage positionneur?" + +msgid "Zap back to service before tuner setup?" +msgstr "Revenir sur le service avant le réglage tuner?" + +msgid "Zap focus to Picture in Picture" +msgstr "Zap focus image dans l'image" + +msgid "Zap focus to main screen" +msgstr "Zap focus écran principal" + +msgid "Zap mode" +msgstr "Mode de zap" + +msgid "Zap to selected channel" +msgstr "Zapper sur le canal sélectionné" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "Zapper sur le canal sélectionné, ou afficher l'information d'événement détaillé (selon la configuration)" + +msgid "[alternative edit]" +msgstr "[Édition alternatif]" + +msgid "[bouquet edit]" +msgstr "[Édtion des bouquets]" + +msgid "[favourite edit]" +msgstr "[Edition des favoris]" + +msgid "[move mode]" +msgstr "[Mode déplacement]" + +msgid "a gui to assign services/providers to common interface modules" +msgstr "Une interface graphique pour attribuer des services/fournisseurs aux modules d'interface commune" + +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "Une interface graphique pour attribuer des services/opérateurs/caïds aux modules d'interface commune" + +msgid "abort alternatives edit" +msgstr "Abandonner l'édition des alternatifs" + +msgid "abort bouquet edit" +msgstr "Abandonner l'édition des bouquets" + +msgid "abort favourites edit" +msgstr "Abandonner l'édition des favoris" + +msgid "about to start" +msgstr "Sur le point de commencer" + +msgid "activate network adapter configuration" +msgstr "Activer la configuration de l'adaptateur réseau" + +msgid "add alternatives" +msgstr "Ajouter les alternatifs" + +msgid "add bookmark" +msgstr "Ajouter marque page" + +msgid "add bouquet" +msgstr "Ajouter bouquet" + +msgid "add marker" +msgstr "Ajouter marqueur" + +msgid "add service to bouquet" +msgstr "Ajouter ce service au bouquet" + +msgid "add service to favourites" +msgstr "Ajouter ce service aux favoris" + +msgid "add to parental protection" +msgstr "Ajouter à la protection parentale" + +msgid "adult movie/drama" +msgstr "Film adulte/drame" + +msgid "advanced" +msgstr "Avancé" + +msgid "adventure/western/war" +msgstr "Aventure/western/guerre" + +msgid "advertisement/shopping" +msgstr "Publicité/shopping" + +msgid "after " +msgstr "Après " + +msgid "alphabetic" +msgstr "Alphabétique" + +msgid "alphabetic reverse" +msgstr "Inverser alphabet" + +msgid "alternative" +msgstr "Alternatif" + +msgid "always" +msgstr "toujours" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "Arts/Culture (sans musique, général)" + +msgid "arts/culture magazine" +msgstr "Arts/culture magazines" + +msgid "athletics" +msgstr "Athlétisme" + +msgid "audio tracks" +msgstr "Pistes audio" + +msgid "auto" +msgstr "Auto" + +msgid "automatic" +msgstr "Automatique" + +msgid "back" +msgstr "Retour" + +msgid "background image" +msgstr "Image d'arrière plan" + +msgid "ballet" +msgstr "Ballet" + +#, python-format +msgid "bc%s" +msgstr "bc%s" + +msgid "better" +msgstr "Meilleur" + +msgid "black" +msgstr "Noir" + +msgid "black & white" +msgstr "Noir & Blanc" + +msgid "blacklist" +msgstr "Liste interdit (blacklist)" + +msgid "blue" +msgstr "Bleu" + +msgid "broadcasting/press" +msgstr "Diffusion/Presse" + +msgid "by date" +msgstr "Par date" + +msgid "cartoon/puppets" +msgstr "Dessin animé/Marionnettes" + +msgid "center" +msgstr "Centré" + +msgid "centered" +msgstr "Centré" + +msgid "centered, wrapped" +msgstr "Centré, enveloppé" + +msgid "chapters" +msgstr "Chapitres" + +msgid "childrens's/youth program (general)" +msgstr "Enfants/programme pour les jeunes (général)" + +msgid "circular left" +msgstr "Circulaire à gauche" + +msgid "circular right" +msgstr "Circulaire à droite" + +msgid "comedy" +msgstr "Comédie" + +msgid "complex" +msgstr "Complexe" + +msgid "config menu" +msgstr "Menu de configuration" + +msgid "confirmed" +msgstr "Confirmé" + +msgid "connected" +msgstr "Connecté" + +msgid "continue" +msgstr "Continuer" + +msgid "cooking" +msgstr "Cuisine" + +msgid "copy to bouquets" +msgstr "Copier vers bouquets" + +msgid "create directory" +msgstr "Création répertoire" + +#, python-format +msgid "currently installed image: %s" +msgstr "Image actuellement installée : %s" + +msgid "daily" +msgstr "Quotidien" + +msgid "day" +msgstr "Jour" + +msgid "default" +msgstr "Par défaut" + +msgid "delete cut" +msgstr "Effacer coupe" + +msgid "delete..." +msgstr "Efface..." + +msgid "descramble and record ecm" +msgstr "Décoder et enregistrer ecm" + +msgid "detective/thriller" +msgstr "Policier/thriller" + +msgid "disable" +msgstr "Désactiver" + +msgid "disable move mode" +msgstr "Désactiver le mode déplacement" + +msgid "disabled" +msgstr "Désactivé" + +msgid "disconnected" +msgstr "Déconnecté" + +msgid "discussion/interview/debate" +msgstr "Discussion/interview/débat" + +msgid "do nothing" +msgstr "Ne rien faire" + +msgid "documentary" +msgstr "Documentaire" + +msgid "don't descramble, record ecm" +msgstr "Ne pas décoder et enregistrer ecm" + +msgid "done!" +msgstr "Terminé !" + +msgid "east" +msgstr "Est" + +msgid "economics/social advisory" +msgstr "Économie/Social" + +msgid "edit alternatives" +msgstr "Éditer les alternatifs" + +msgid "education/science/factual topics (general)" +msgstr "Éducation/Science/Sujets factuels (général)" + +msgid "empty" +msgstr "Vide" + +msgid "enable" +msgstr "Activer" + +msgid "enable bouquet edit" +msgstr "Activer l'édition des bouquets" + +msgid "enable favourite edit" +msgstr "Activer l'édition des favoris" + +msgid "enable move mode" +msgstr "Activer le mode déplacement" + +msgid "enabled" +msgstr "Activé" + +msgid "end alternatives edit" +msgstr "Fin d'édition alternatifs" + +msgid "end bouquet edit" +msgstr "Terminer l'édition des bouquets" + +msgid "end cut here" +msgstr "Fin de coupe ici" + +msgid "end favourites edit" +msgstr "Terminer l'édition des favoris" + +msgid "entertainment (10-16 year old)" +msgstr "Divertissement (10-16 ans)" + +msgid "entertainment (6-14 year old)" +msgstr "Divertissement (6-14 ans)" + +msgid "equal to" +msgstr "Égale au" + +msgid "equestrian" +msgstr "Équestre" + +msgid "exit DVD player or return to file browser" +msgstr "Quitter le lecteur DVD ou retourner au sélecteur de fichiers" + +msgid "exit movielist" +msgstr "Quitter liste des films" + +msgid "exit network adapter configuration" +msgstr "Quitter configuration adaptateur réseau" + +msgid "exit networkadapter setup menu" +msgstr "Quitter menu réglages adaptateur réseau" + +msgid "experimental film/video" +msgstr "Film expérimental/Vidéo" + +msgid "false" +msgstr "Faux" + +msgid "fashion" +msgstr "Mode" + +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "Formats de fichiers (BMP, PNG, JPG, GIF)" + +msgid "filename" +msgstr "Nom de fichier" + +msgid "film/cinema" +msgstr "Film/Cinéma" + +msgid "fine arts" +msgstr "Beaux arts" + +msgid "fine-tune your display" +msgstr "Réglage avancé de votre affichage" + +msgid "fitness & health" +msgstr "Culture physique et santé" + +msgid "flat alphabetic" +msgstr "Tri alphabetique" + +msgid "flat alphabetic reverse" +msgstr "Tri alphabetique inversé" + +msgid "folk/traditional music" +msgstr "Folk/Musique traditionnelle" + +msgid "football/soccer" +msgstr "Football/Foot" + +msgid "foreign countries/expeditions" +msgstr "Pays étrangers/Expéditions" + +msgid "forward to the next chapter" +msgstr "Avancer au chapitre suivant" + +msgid "free" +msgstr "Libre" + +msgid "from" +msgstr "de" + +msgid "further education" +msgstr "Formation continue" + +msgid "game show/quiz/contest" +msgstr "Émission de jeu/Quiz/Concours" + +msgid "gardening" +msgstr "Jardinage" + +msgid "go to deep standby" +msgstr "Mettre en veille profonde" + +msgid "go to standby" +msgstr "Mettre en veille" + +msgid "grab this frame as bitmap" +msgstr "Saisir cette frame commme bitmap" + +msgid "green" +msgstr "Vert" + +msgid "handicraft" +msgstr "Artisanat" + +msgid "height" +msgstr "Hauteur" + +msgid "help..." +msgstr "Aide..." + +msgid "horizontal" +msgstr "Horizontale" + +msgid "information/education/school program" +msgstr "Information/Education/Programme scolaire" + +msgid "init module" +msgstr "Initialiser le module" + +msgid "init modules" +msgstr "Initialiser modules" + +msgid "insert mark here" +msgstr "Insérer un marqueur ici" + +msgid "invalid type" +msgstr "Type non valide" + +msgid "jazz" +msgstr "Jazz" + +msgid "jump back to the previous title" +msgstr "Se rendre vers le titre précédent" + +msgid "jump forward to the next title" +msgstr "Se rendre vers le titre suivant" + +msgid "languages" +msgstr "Langues" + +msgid "leave movie player..." +msgstr "Quitter le lecteur..." + +msgid "left" +msgstr "Gauche" + +msgid "left, wrapped" +msgstr "Gauche, enveloppé" + +msgid "leisure hobbies (general)" +msgstr "Passe-temps, loisirs (général)" + +msgid "length" +msgstr "Longueur" + +msgid "limit ..., aborting !" +msgstr "Limite ..., abandon !" + +msgid "list style compact" +msgstr "Style liste compacte" + +msgid "list style compact with description" +msgstr "Style liste compacte avec description" + +msgid "list style default" +msgstr "Style liste standard" + +msgid "list style single line" +msgstr "Style liste ligne unique" + +msgid "literature" +msgstr "Littérature" + +msgid "live broadcast" +msgstr "Diffusion en direct" + +msgid "locked" +msgstr "Verrouillé" + +msgid "loopthrough to" +msgstr "Rebouclé par" + +msgid "magazines/reports/documentary" +msgstr "Magazines/Rapports/Documentaires" + +msgid "manual" +msgstr "Manuel" + +msgid "martial sports" +msgstr "Sports martiaux" + +msgid "medicine/physiology/psychology" +msgstr "Médecine/Physiologie/Psychologie" + +msgid "menu" +msgstr "Menu" + +msgid "mins" +msgstr "Mins" + +msgid "minutes" +msgstr "Minutes" + +msgid "month" +msgstr "Mois" + +msgid "motor sport" +msgstr "Sport automobile" + +msgid "motoring" +msgstr "Automobile" + +msgid "move down to last entry" +msgstr "Déplacer en bas dernière entrée" + +msgid "move down to next entry" +msgstr "Déplacer en bas entrée suivante" + +msgid "move up to first entry" +msgstr "Déplacer en haut première entrée" + +msgid "move up to previous entry" +msgstr "Déplacer en haut entrée précédente" + +msgid "movie/drama (general)" +msgstr "Film/Théâtre (général)" + +msgid "multinorm" +msgstr "Multinorme" + +msgid "music/ballet/dance (general)" +msgstr "Musique/Ballet/Danse (général)" + +msgid "musical/opera" +msgstr "Musical/Opéra" + +msgid "nature/animals/environment" +msgstr "Nature/Animaux/Environnement" + +msgid "never" +msgstr "Jamais" + +msgid "new media" +msgstr "Nouveaux médias" + +msgid "news magazine" +msgstr "Magazine de nouvelles" + +msgid "news/current affairs (general)" +msgstr "Nouvelles/Actualités (général)" + +msgid "news/weather report" +msgstr "Nouvelles/Bulletin météorologique" + +msgid "no" +msgstr "Non" + +msgid "no CAId selected" +msgstr "Aucun CAId sélectionné !" + +msgid "no CI slots found" +msgstr "Aucun slots CI trouvés" + +msgid "no module found" +msgstr "Aucun module trouvé" + +msgid "no storage devices found" +msgstr "Aucun périphérique de stockage trouvé" + +msgid "none" +msgstr "Aucun" + +msgid "normal" +msgstr "Normal" + +msgid "not configured" +msgstr "Pas configuré" + +msgid "not locked" +msgstr "Pas verrouillé" + +msgid "not supported" +msgstr "Pas supporté" + +msgid "not used" +msgstr "Pas utilisé" + +msgid "nothing connected" +msgstr "Rien n'est connecté" + +msgid "of a DUAL layer medium used." +msgstr "Pour un double couche utilisé." + +msgid "of a SINGLE layer medium used." +msgstr "Pour un simple couche utilisé." + +msgid "off" +msgstr "Arrêt" + +msgid "offset is" +msgstr "Position finale sur" + +msgid "on" +msgstr "Marche" + +msgid "on READ ONLY medium." +msgstr "Sur support en LECTURE SEULE" + +msgid "on end of movie" +msgstr "À la fin du film" + +msgid "once" +msgstr "Une fois" + +msgid "only from deep standby" +msgstr "Seulement depuis la veille profonde" + +msgid "only from standby" +msgstr "seulement depuis la veille" + +msgid "open EPG..." +msgstr "Afficher EPG..." + +msgid "open Info..." +msgstr "Ouvrir Info..." + +msgid "open nameserver configuration" +msgstr "Ouvrir configuration serveur de nom" + +msgid "original" +msgstr "Original" + +msgid "original language" +msgstr "Langue Originale" + +msgid "pass" +msgstr "Passe" + +msgid "performing arts" +msgstr "Arts de la scène" + +msgid "play as picture in picture" +msgstr "Lire en incrustation d'image" + +msgid "play in mainwindow" +msgstr "Lire dans la fenêtre principale" + +msgid "please press OK when ready" +msgstr "Veuillez appuyer sur OK quand vous êtes prêt(e)" + +msgid "please wait, loading picture..." +msgstr "Veuillez patienter, chargement de l'image..." + +msgid "popular culture/traditional arts" +msgstr "Culture populaire/Arts traditionnels" + +msgid "pre-school children's program" +msgstr "Programme enfants d'âge préscolaire" + +msgid "receiver software because updates are available." +msgstr "Logiciel du récepteur, les mises à jour sont disponibles." + +msgid "record" +msgstr "Enregistrer" + +msgid "recording..." +msgstr "Enregistrement..." + +msgid "red" +msgstr "Rouge" + +msgid "religion" +msgstr "Religion" + +msgid "remarkable people" +msgstr "Des gens remarquables" + +msgid "remove after this position" +msgstr "Retirer après cette position" + +msgid "remove all alternatives" +msgstr "Retirer tous les alternatifs" + +msgid "remove all new found flags" +msgstr "Enlever tous les nouveaux indicateurs" + +msgid "remove before this position" +msgstr "Retirer avant cette position" + +msgid "remove bookmark" +msgstr "Retirer marque page" + +msgid "remove directory" +msgstr "Retirer répertoire" + +msgid "remove entry" +msgstr "Retirer l'entrée" + +msgid "remove from parental protection" +msgstr "Retirer de la protection parentale" + +msgid "remove new found flag" +msgstr "Enlever le nouvel indicateur trouvé" + +msgid "remove selected satellite" +msgstr "Enlever le satellite sélectionné" + +msgid "remove this mark" +msgstr "Retirer ce marqueur" + +msgid "rename entry" +msgstr "Renommer entrée" + +msgid "repeat playlist" +msgstr "Répéter liste lecture" + +msgid "repeated" +msgstr "Répété" + +msgid "reverse by date" +msgstr "Inverser par date" + +msgid "rewind to the previous chapter" +msgstr "Retour au chapitre précédant" + +msgid "right" +msgstr "Droite" + +msgid "right, wrapped" +msgstr "Droite, enveloppé" + +msgid "rock/pop" +msgstr "Rock/Pop" + +msgid "romance" +msgstr "Romance" + +msgid "save last directory on exit" +msgstr "Sauver dernier répertoire en sortant" + +msgid "save playlist on exit" +msgstr "Sauver liste lecture en sortant" + +msgid "scan state" +msgstr "Etat de l'analyse" + +msgid "science fiction/fantasy/horror" +msgstr "Science-fiction/Fantastique/Horreur" + +msgid "second cable of motorized LNB" +msgstr "Deuxième câble du LNB motorisé" + +msgid "seconds" +msgstr "Secondes" + +msgid "select" +msgstr "Sélectionner" + +msgid "select CAId's" +msgstr "Sélectionner CAId's" + +msgid "select EPG..." +msgstr "Sélectionner EPG..." + +msgid "select Info..." +msgstr "Sélection Info..." + +msgid "select menu entry" +msgstr "Sélectionner entrée menu" + +msgid "select movie" +msgstr "Choisir un film" + +msgid "select the movie path" +msgstr "Sélectionner le chemin des films" + +msgid "serious music/classic music" +msgstr "Musique classique" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "Classique/Religieux/Film historiques/Théâtre" + +msgid "service PIN" +msgstr "Pin service" + +msgid "set as startup service" +msgstr "Choisir comme service de démarrage" + +msgid "setup PIN" +msgstr "PIN paramètres" + +msgid "show DVD main menu" +msgstr "Afficher menu DVD principal" + +msgid "show all tags" +msgstr "Voir toutes les étiquettes" + +msgid "show alternatives" +msgstr "Afficher alternatifs" + +msgid "show event details" +msgstr "Afficher détails événement" + +msgid "show extended description" +msgstr "Afficher la description étendue" + +msgid "show mediaplayer on mainmenu" +msgstr "Afficher le lecteur multimédia dans le menu principal" + +msgid "show softwaremanager in setup menu" +msgstr "Montrer le gestionnaire de logiciels dans le menu configuration" + +msgid "show softwaremanager on blue button" +msgstr "Montrer le gestionnaire de logiciels sur le bouton bleu" + +msgid "show tag menu" +msgstr "Afficher le menu des marqueurs" + +msgid "show transponder info" +msgstr "Afficher info transpondeur" + +msgid "show/game show (general)" +msgstr "Variétés/Jeux (général)" + +msgid "shuffle" +msgstr "Aléatoire" + +msgid "shut down" +msgstr "Éteindre" + +msgid "simple" +msgstr "Simple" + +msgid "skip backward" +msgstr "Retour rapide" + +msgid "skip forward" +msgstr "Avance rapide" + +msgid "soap/melodram/folkloric" +msgstr "Soap/Melodrame/Folklorique" + +msgid "social/political issues/economics (general)" +msgstr "Questions sociales/Politiques/Economie (général)" + +msgid "social/spiritual science" +msgstr "Science sociale/Spirituelle" + +msgid "sorting of playlists" +msgstr "Tri des listes de lecture" + +msgid "special characters" +msgstr "Caractères spéciaux" + +msgid "special events" +msgstr "Évènements spéciaux" + +msgid "special format data DVD (HDTV compatible)" +msgstr "Format spécial données DVD (compatible HDTV)" + +msgid "sports (general)" +msgstr "Sport (général)" + +msgid "sports magazine" +msgstr "Sports magazine" + +msgid "standard" +msgstr "Standard" + +msgid "start cut here" +msgstr "Départ de coupe ici" + +msgid "start directory" +msgstr "Répertoire départ" + +msgid "stepsize" +msgstr "Taille du pas" + +msgid "stereo" +msgstr "Stéréo" + +msgid "stop using as startup service" +msgstr "Arrêter d'utiliser comme service de démarrage" + +msgid "switch to bookmarks" +msgstr "Basculer vers marque page" + +msgid "switch to filelist" +msgstr "Basculer vers la liste des fichiers" + +msgid "switch to the next angle" +msgstr "Basculer vers l'angle suivant" + +msgid "switch to the next audio track" +msgstr "Basculer vers piste audio suivante" + +msgid "switch to the next subtitle language" +msgstr "Basculer vers le langage sous-titre suivant" + +msgid "talk show" +msgstr "Talk show" + +msgid "team sports" +msgstr "Sports d'équipe" + +msgid "technology/natural science" +msgstr "Technologie/Sciences de la nature" + +msgid "template file" +msgstr "Fichier modèle" + +msgid "tennis/squash" +msgstr "Tennis/Squash" + +msgid "this recording" +msgstr "Cet enregistrement" + +msgid "this service is protected by a parental control pin" +msgstr "Ce service est protégé par un pin contrôle parental" + +msgid "toggle time, chapter, audio, subtitle info" +msgstr "Commuter temps, chapitre, audio, info sous-titres" + +msgid "top" +msgstr "Haut" + +msgid "tourism/travel" +msgstr "Tourisme/Voyages" + +msgid "true" +msgstr "Vrai" + +msgid "unavailable" +msgstr "Indisponible" + +msgid "unconfirmed" +msgstr "Non confirmé" + +msgid "undefined" +msgstr "Indéfini" + +msgid "unknown" +msgstr "Inconnu" + +msgid "unknown service" +msgstr "Service inconnu" + +msgid "unpublished" +msgstr "Non publié" + +msgid "until standby/restart" +msgstr "Jusqu'à veille/redémarrage" + +msgid "user defined" +msgstr "Défini par l'utilisateur" + +msgid "variety show" +msgstr "Spectacle de variété" + +msgid "vertical" +msgstr "Verticale" + +msgid "wait for ci..." +msgstr "Attente pour ci..." + +msgid "wait for mmi..." +msgstr "Attente pour mmi..." + +msgid "waiting" +msgstr "En attente" + +msgid "water sport" +msgstr "Sport nautique" + +msgid "weekly" +msgstr "Hebdomadaire" + +msgid "west" +msgstr "Ouest" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "Blanc" + +msgid "whitelist" +msgstr "Liste autorisée (whitelist)" + +msgid "width" +msgstr "Largeur" + +msgid "winter sport" +msgstr "Sports d'hiver" + +msgid "wireless network interface" +msgstr "Interface réseau sans fil" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "Avec %d erreur" +msgstr[1] "Avec %d erreurs" + +msgid "working" +msgstr "Travail en cours..." + +msgid "yellow" +msgstr "Jaune" + +msgid "yes" +msgstr "Oui" + +msgid "yes (keep feeds)" +msgstr "Oui (garder feeds)" + +msgid "zap" +msgstr "Zapper" + +msgid "zap and record" +msgstr "Zapper et enregistrer" + +msgid "zapped" +msgstr "Zappé" + +#~ msgid "AA" +#~ msgstr "AA" + +#~ msgid "AB" +#~ msgstr "AB" + +#~ msgid "Activate PiP" +#~ msgstr "Activer l'incrustation d'image" + +#~ msgid "Adjust HDMI CEC settings" +#~ msgstr "Ajuster les paramètres HDMI CEC" + +#~ msgid "And will shutdown your receiver over " +#~ msgstr "Et va éteindre votre récepteur après" + +#~ msgid "BA" +#~ msgstr "BA" + +#~ msgid "BB" +#~ msgstr "BB" + +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "Comportement de 'pause' si déjà en pause" + +#~ msgid "Configure if and how service type icons will be shown." +#~ msgstr "Configurez si et comment les icônes de type de service seront affichés." + +#~ msgid "Configure the behavior of the 'pause' key when movie playback is already paused." +#~ msgstr "Configurez le comportement de la touche «pause» quand la lecture du film est déjà en pause." + +#~ msgid "Configure the duration in hours and action, which could be shut down or standby, when the receiver is not controlled." +#~ msgstr "Configure la durée en heures et l'action, qui peut être éteindre ou mettre en veille, lorsque le récepteur n'est pas utilisé." + +#~ msgid "Configure the duration in minutes and action, which could be shut down or standby, for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +#~ msgstr "Configure la durée en minutes et l'action, qui peut être éteindre ou mettre en veille, pour l'arrêt automatique. Sélectionnez cette entrée et cliquez sur OK ou VERT pour démarrer/arrêter l'arrêt automatique." + +#~ msgid "Currently the commit log cannot be retreived - please try later again" +#~ msgstr "Actuellement le log des commits ne peut pas être récupéré - merci de réessayer plus tard " + +#~ msgid "DVB_C" +#~ msgstr "DVB_C" + +#~ msgid "No satellite frontend found!!" +#~ msgstr "Aucun tuner satellite trouvé !!" + +#~ msgid "Open service list and select next channel" +#~ msgstr "Ouvrir la liste des services et sélectionner la chaine suivante" + +#~ msgid "Open service list and select previous channel" +#~ msgstr "Ouvrir la liste des services et sélectionner la chaine précédente" + +#~ msgid "Press '0' to toggle internal/external PiP." +#~ msgstr "Appuyez sur '0' pour basculer PiP (interne/externe)." + +#~ msgid "Remove timer" +#~ msgstr "Retirer programmation" + +#~ msgid "Send DiSEqC" +#~ msgstr "Envoyer DiSEqC" + +#~ msgid "Shutdown after current event" +#~ msgstr "Arrêter après l'évènement actuel" + +#~ msgid "Shutdown in " +#~ msgstr "Éteindre dans " + +#~ msgid "Switch next channel" +#~ msgstr "Basculer vers la chaîne suivante" + +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Commande DiSEqC non validée" + +#~ msgid "Your receiver will shutdown due to inactivity." +#~ msgstr "Votre récepteur va s'éteindre faute d'activité." + +#~ msgid "Your receiver will shutdown due to the sleeptimer." +#~ msgstr "Votre récepteur va s'éteindre à cause du timer d'inactivité (sleeptimer)." + +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "Revenir sur le service avant le pointage?" diff --git a/po/fy.po b/po/fy.po new file mode 100644 index 0000000..4154a15 --- /dev/null +++ b/po/fy.po @@ -0,0 +1,9648 @@ +# Frisian translations for Enigma2. +# +# Gerrit <gerrit@nedlinux.nl>, 2007, 2008. +# gerrit <gerrit@nedlinux.nl>, 2008. +msgid "" +msgstr "" +"Project-Id-Version: enigma2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2008-12-29 16:22+0100\n" +"Last-Translator: gerrit <gerrit@nedlinux.nl>\n" +"Language-Team: gerrit <fy@li.org>\n" +"Language: \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-Poedit-Language: Nederlands\n" +"X-Poedit-Country: NEDERLAND\n" +"X-Poedit-SourceCharset: iso-8859-15\n" +"X-Generator: KBabel 1.11.4\n" + +# +msgid "" +"\n" +"Advanced options and settings." +msgstr "" + +# +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" + +# +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" + +# +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" + +# +msgid "" +"\n" +"Restore your backups by date." +msgstr "" + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" + +# +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" + +# +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" + +# +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" + +msgid " (PiP)" +msgstr "" + +msgid " (Radio)" +msgstr "" + +msgid " (TV)" +msgstr "" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +# +msgid " extensions." +msgstr "" + +msgid " ms" +msgstr "" + +# +msgid " packages selected." +msgstr "" + +# +msgid " updates available." +msgstr "" + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "" + +msgid "%A %d %B" +msgstr "" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "" + +# +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "" + +# +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, fuzzy, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "%d services fûn" +msgstr[1] "%d services fûn" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" + +# +#, fuzzy, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d processen rinne op 'e eftergrûn" +msgstr[1] "%d processen rinne op 'e eftergrûn" + +# +#, python-format +msgid "%d min" +msgstr "%d min" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d minutes" +msgstr "" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "" +msgstr[1] "" + +# +#, fuzzy, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "/var map" +msgstr[1] "/var map" + +# +#, fuzzy, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "Triidloas netwurk" +msgstr[1] "Triidloas netwurk" + +msgid "%d-%b-%Y %-H:%M" +msgstr "" + +msgid "%d-%m" +msgstr "" + +# +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "" + +# +#, fuzzy, python-format +msgid "%s %s free disk space" +msgstr "freie skiif rûmte" + +# +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "" + +#, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%s%d min" +msgstr "" + +#, python-format +msgid "%s/%s: %s" +msgstr "" + +# +msgid "(ZAP)" +msgstr "(ZAP)" + +# +msgid "(empty)" +msgstr "(leech)" + +# +msgid "(show optional DVD audio menu)" +msgstr "(opsje DVD lûd menu sjen litte)" + +# +msgid "* Only available if more than one interface is active." +msgstr "* Allinne beskikber by meer dan ien aktieve ynterfaces" + +msgid "/s" +msgstr "" + +# +msgid "0" +msgstr "0" + +# +msgid "1" +msgstr "1" + +# +msgid "1.0" +msgstr "1.0" + +# +msgid "1.1" +msgstr "1.1" + +# +msgid "1.2" +msgstr "1.2" + +# +msgid "12V output" +msgstr "12V útgong" + +# +msgid "13 V" +msgstr "13 V" + +# +msgid "16:10" +msgstr "16:10" + +# +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +# +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +# +msgid "16:9" +msgstr "16:9" + +# +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +# +msgid "16:9 always" +msgstr "altiid 16:9" + +# +msgid "18 V" +msgstr "18 V" + +# +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "" + +msgid "24" +msgstr "" + +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +# +msgid "3" +msgstr "3" + +msgid "30" +msgstr "" + +msgid "3d mode" +msgstr "" + +# +msgid "4" +msgstr "4" + +# +msgid "4:3" +msgstr "4:3" + +# +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +# +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +# +msgid "5" +msgstr "5" + +# +msgid "6" +msgstr "6" + +# +msgid "7" +msgstr "7" + +# +msgid "8" +msgstr "8" + +# +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +# +msgid "<Current movielist location>" +msgstr "" + +# +msgid "<Default movie location>" +msgstr "" + +# +msgid "<Last timer location>" +msgstr "" + +# +msgid "<unknown>" +msgstr "<net bekend>" + +# +msgid "??" +msgstr "??" + +# +msgid "A" +msgstr "A" + +# +#, fuzzy, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"In konfiguraasje triem (%s) wie feroare nei ynstalaasje.\n" +"Wolle jo jo ferzje hâlde ?" + +# +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"In konfiguraasje triem (%s) wie feroare nei ynstalaasje.\n" +"Wolle jo jo ferzje hâlde ?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +# +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "In grafyske EPG foar alle kanalen fan in spesifyk bouquet" + +# +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"In opnimmen is start:\n" +"%s" + +# +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"In opnimmen is dwaande.\n" +"Wat wolle jo dwaan ?" + +# +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "Opnimmen is dwaande. Stopje it opnimmen earst foar jo de rotor-ynstellingen wizigje." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "" + +# +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "Opnimmen is dwaande. Stopje it opnimmen earst, foar jo de satfyner brûke." + +# +#, python-format +msgid "A required tool (%s) was not found." +msgstr "In benedicht programma (%s) wie net fûn" + +# +msgid "A search for available updates is currently in progress." +msgstr "" + +# +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +# +msgid "A small overview of the available icon states and actions." +msgstr "" + +# +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"In tiidsbarren koe net opnimme!\n" +"TV utskeakelje en opnei besykje ?\n" + +# +#, fuzzy +msgid "A/V settings" +msgstr "A/F ynstellingen" + +msgid "AC3/DTS downmix" +msgstr "" + +# +msgid "Abort" +msgstr "" + +# +msgid "About" +msgstr "Oer" + +# +msgid "About..." +msgstr "Oer...." + +# +msgid "Accesspoint:" +msgstr "" + +# +msgid "Action on long powerbutton press" +msgstr "Aksje by lang yndrukken oanknop" + +# +msgid "Action on short powerbutton press" +msgstr "" + +# +msgid "Activate Picture in Picture" +msgstr "PIP ynskeakelje" + +# +#, fuzzy +msgid "Activate current configuration" +msgstr "Dizze ynstellingen aktief meitsje" + +# +msgid "Activate network settings" +msgstr "Netwurk ynstellingen aktief meitsje" + +# +#, fuzzy +msgid "Activate the configured network settings." +msgstr "Netwurk ynstellingen aktief meitsje" + +# +msgid "Adapter settings" +msgstr "Adapter ynstellingen" + +# +msgid "Add" +msgstr "Tafoegje" + +# +msgid "Add Bookmark" +msgstr "In blêdwizer tafoegje" + +# +msgid "Add a mark" +msgstr "In merker tafoegje" + +# +#, fuzzy +msgid "Add a nameserver entry" +msgstr "In nammeserver tafoegje" + +# +msgid "Add a new title" +msgstr "In nije titel tafoegje" + +# +#, fuzzy +msgid "Add bookmark" +msgstr "boekmerk tafoegje" + +# +#, fuzzy +msgid "Add directory to playlist" +msgstr "map oan ofspiellyst tafoegje" + +# +#, fuzzy +msgid "Add file to playlist" +msgstr "triem oan ofspiellyst tafoegje" + +# +#, fuzzy +msgid "Add files to playlist" +msgstr "triemen tafoegje an ôfspiellyst" + +msgid "Add more details to the crash log" +msgstr "" + +# +#, fuzzy +msgid "Add provider" +msgstr "Leveransier" + +# +#, fuzzy +msgid "Add recording (enter recording duration)" +msgstr "opnimmen tafoegje (opnimtiid)" + +# +#, fuzzy +msgid "Add recording (enter recording endtime)" +msgstr "opnimmen tafoegje (eintiid opnimmen ynjaan)" + +# +#, fuzzy +msgid "Add recording (indefinitely)" +msgstr "opnimmen tafoegje (foar altiid trochgean)" + +# +#, fuzzy +msgid "Add recording (stop after current event)" +msgstr "opnimmen tafoegje (stopje nei dit barren)" + +# +#, fuzzy +msgid "Add service" +msgstr "Kanaal ynfo" + +# +msgid "Add timer" +msgstr "In tiidsbarren tafoegje" + +# +msgid "Add title" +msgstr "In titel tafoegje" + +# +msgid "Add to bouquet" +msgstr "Oan in boeket tafoegje" + +# +msgid "Add to favourites" +msgstr "Oan favorieten tafoegje" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "" + +# +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "Feroarje de ynstellingen sa, da't alle skaad fan 'e kleur fuort is, mar wol fol fan kleur binne. Ot jo lokkig binne mei it einresultaat, druk OK om fideo ôfstellen ôf te slúten, of brûk de nûmmer toetsen foar in oar test skerm." + +msgid "Advanced" +msgstr "" + +# +#, fuzzy +msgid "Advanced options" +msgstr "Afansjearre Fideo Ynstellingen" + +# +msgid "Advanced restore" +msgstr "" + +msgid "Advanced software" +msgstr "" + +msgid "Advanced software plugin" +msgstr "" + +# +#, fuzzy +msgid "Advanced video enhancement setup" +msgstr "Afansjearre Fideo Ynstellingen" + +# +#, fuzzy +msgid "Advanced video setup" +msgstr "Afansjearre Fideo Ynstellingen" + +# +msgid "After event" +msgstr "Nei it barren" + +# +msgid "Album" +msgstr "Album" + +msgid "Alignment of events" +msgstr "" + +msgid "Alignment of service names" +msgstr "" + +# +msgid "All" +msgstr "Alles" + +msgid "All ages" +msgstr "" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "" + +msgid "Allocate unused memory index" +msgstr "" + +msgid "Allow quit movieplayer with exit" +msgstr "" + +msgid "Allow subtitle language to equal audio language" +msgstr "" + +msgid "Allow subtitles for hearing impaired" +msgstr "" + +# +msgid "Alpha" +msgstr "Alpha" + +# +#, fuzzy +msgid "Alternative" +msgstr "alernatief tafoegje" + +# +#, fuzzy +msgid "Alternative numbering mode" +msgstr "Oare Radio mode" + +# +msgid "Alternative services tuner priority" +msgstr "Alternatief kanaal tuner prioriteit" + +msgid "Always ask" +msgstr "" + +msgid "Always hide infobar" +msgstr "" + +# +msgid "An empty filename is illegal." +msgstr "Gjin triemnamme is net tastien" + +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "" + +# +msgid "An unknown error occurred!" +msgstr "In unbekende flater !" + +msgid "And will put your receiver in standby over " +msgstr "" + +msgid "Any activity" +msgstr "" + +# +msgid "Arabic" +msgstr "Arabysk" + +msgid "Are you sure to remove this entry?" +msgstr "" + +# +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"Wolle jo wier dizze netwurk konfiguraasje aktief meitsje ?\n" +"\n" + +# +#, fuzzy +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"witte jo seker dizze werom te setten\n" +"de extra kopie:\n" + +# +msgid "Are you sure you want to exit this wizard?" +msgstr "" + +# +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"Wolle jo de netwurk interfaces nij starte?\n" +"\n" + +#, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" + +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" + +# +msgid "Artist" +msgstr "Artyst" + +msgid "Arts/Culture" +msgstr "" + +# +msgid "Ask user" +msgstr "freechje gebrûker" + +# +#, fuzzy +msgid "Aspect ratio" +msgstr "Aspect ratio" + +msgid "Assigned CAIds:" +msgstr "" + +msgid "Assigned services/provider:" +msgstr "" + +# +#, fuzzy +msgid "At beginning" +msgstr "Start fanôf it begjin" + +msgid "At end" +msgstr "" + +# +msgid "Audio" +msgstr "Lûd" + +msgid "Audio PID" +msgstr "" + +msgid "Audio language selection 1" +msgstr "" + +msgid "Audio language selection 2" +msgstr "" + +msgid "Audio language selection 3" +msgstr "" + +msgid "Audio language selection 4" +msgstr "" + +# +#, fuzzy +msgid "Audio options..." +msgstr "Lûd opsjes..." + +# +#, fuzzy, python-format +msgid "Audio track (%s) format" +msgstr "Lûd spoor (%s) formaat" + +# +#, fuzzy, python-format +msgid "Audio track (%s) language" +msgstr "Lûd spoor (%s) taal" + +# +msgid "Author: " +msgstr "" + +# +msgid "Authoring mode" +msgstr "Authentikaasje troch" + +# +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Auto" + +# +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Haadstik automatysk eltse ? minuten splitse (0=nea)" + +# +msgid "Auto flesh" +msgstr "" + +msgid "Auto focus" +msgstr "" + +msgid "Auto focus commencing ..." +msgstr "" + +msgid "Auto language selection" +msgstr "" + +# +msgid "Auto scart switching" +msgstr "Auto scart skeakelje" + +# +msgid "Automatic" +msgstr "Automatysk" + +# +#, fuzzy +msgid "Automatic scan" +msgstr "Automatysk sykjen" + +msgid "Automatically start timeshift after" +msgstr "" + +msgid "Automatically turn on external subtitles" +msgstr "" + +# +msgid "Available format variables" +msgstr "Beskikbere variabele formaten" + +# +msgid "B" +msgstr "B" + +# +msgid "BER" +msgstr "BER" + +# +msgid "BER:" +msgstr "BER:" + +# +msgid "Back" +msgstr "Werom" + +# +msgid "Background" +msgstr "Eftergrûn" + +# +#, fuzzy +msgid "Background color" +msgstr "Eftergrûn kleur" + +msgid "Background delete option" +msgstr "" + +msgid "Background delete speed" +msgstr "" + +# +#, fuzzy +msgid "Backup completed." +msgstr "Backup Mode" + +# +msgid "Backup failed." +msgstr "" + +# +msgid "Backup is running..." +msgstr "" + +# +msgid "Backup system settings" +msgstr "" + +# +msgid "Band" +msgstr "Bân" + +# +msgid "Bandwidth" +msgstr "Bânbridte" + +msgid "Basque" +msgstr "" + +# +msgid "Begin time" +msgstr "Begjin tiid" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +# +msgid "Behavior of 0 key in PiP-mode" +msgstr "Gedrach fan 0 toets yn PiP mode" + +# +msgid "Behavior when a movie is started" +msgstr "Gedrach wannear in film start is" + +# +msgid "Behavior when a movie is stopped" +msgstr "Gedrach wannear in film stoppe is" + +# +msgid "Behavior when a movie reaches the end" +msgstr "Gedrach wannear in film bijna op syn ein is." + +msgid "Big PiP" +msgstr "" + +# +msgid "Bitrate:" +msgstr "" + +msgid "Black screen" +msgstr "" + +msgid "Black screen till locked" +msgstr "" + +# +msgid "Block noise reduction" +msgstr "" + +# +msgid "Blue boost" +msgstr "" + +# +msgid "Bookmarks" +msgstr "Boekmerkers" + +# +msgid "Brightness" +msgstr "Helderens" + +msgid "Bulgarian" +msgstr "" + +# +msgid "Burn DVD" +msgstr "In DVD brâne" + +# +#, fuzzy, python-format +msgid "Burn audio track (%s)" +msgstr "Audio Titel brâne (%s)" + +# +msgid "Burn existing image to DVD" +msgstr "Besteand Image op DVD skiif brâne" + +# +#, fuzzy +msgid "Burn to DVD" +msgstr "Nei DVD brâne" + +# +msgid "Bus: " +msgstr "Bus: " + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "" + +# +msgid "C" +msgstr "C" + +# +msgid "C-Band" +msgstr "C-Bân" + +msgid "CH" +msgstr "" + +# +msgid "CI assignment" +msgstr "" + +# +msgid "CVBS" +msgstr "CVBS" + +# +msgid "Cable" +msgstr "Kabel" + +msgid "Cable Scan" +msgstr "" + +# +#, fuzzy +msgid "Cache thumbnails" +msgstr "Cache Plaatsjes" + +msgid "Calculate" +msgstr "" + +msgid "Calculate all positions" +msgstr "" + +msgid "Calculation complete" +msgstr "" + +msgid "Calibrate" +msgstr "" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "" + +# +msgid "Cancel" +msgstr "Ôfbrekke" + +msgid "Cannot determine" +msgstr "" + +msgid "Cannot find any signal ..., aborting !" +msgstr "" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "" + +msgid "Cannot move to trash can" +msgstr "" + +# +msgid "Capacity: " +msgstr "Skiif-grutte:" + +# +msgid "Card" +msgstr "Kaart" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "" + +msgid "Center time-labels and remove date" +msgstr "" + +# +msgid "Change bouquets in quickzap" +msgstr "Feroarje fan boeket yn quickzap" + +# +msgid "Change pin code" +msgstr "Feroarje pinkode" + +# +#, fuzzy +msgid "Change recording (duration)" +msgstr "feroarje opnim tiiden" + +# +#, fuzzy +msgid "Change recording (endtime)" +msgstr "wizigje opnimmen (eintiid)" + +msgid "Change repeat and delay settings?" +msgstr "" + +msgid "Change service PIN" +msgstr "" + +msgid "Change service PINs" +msgstr "" + +msgid "Change setup PIN" +msgstr "" + +# +msgid "Change step size" +msgstr "" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "" + +# +msgid "Channel" +msgstr "Kanaal" + +# +#, fuzzy +msgid "Channel list type" +msgstr "Kanaal-lyst menu" + +# +msgid "Channel not in services list" +msgstr "" + +# +#, fuzzy +msgid "Channel selection" +msgstr "Kanaal seleksje" + +# +msgid "Channel:" +msgstr "Kanaal:" + +# +msgid "Channellist menu" +msgstr "Kanaal-lyst menu" + +# +msgid "Chap." +msgstr "Haads." + +# +msgid "Chapter" +msgstr "Haadstik" + +# +msgid "Chapter:" +msgstr "Haadstik:" + +# +msgid "Check" +msgstr "Neisjen" + +msgid "Check the internet connection" +msgstr "" + +msgid "Check the internet connection again" +msgstr "" + +# +#, fuzzy +msgid "Checking filesystem..." +msgstr "Bestânsysteem neisjen" + +msgid "Checking the internet connection" +msgstr "" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" + +msgid "Children/Youth" +msgstr "" + +msgid "Choose which tuner to configure." +msgstr "" + +# +msgid "Circular left" +msgstr "" + +# +msgid "Circular right" +msgstr "" + +# +msgid "Cleanup" +msgstr "Opskjinje" + +msgid "Clear" +msgstr "" + +# +msgid "Clear before scan" +msgstr "Wiskje foar sykjen ?" + +msgid "Clear fixed" +msgstr "" + +# +msgid "Clear log" +msgstr "Log wiskje" + +# +#, fuzzy +msgid "Clear playlist" +msgstr "ofspiellyst leeg meitsje" + +# +msgid "Close" +msgstr "Slúte" + +msgid "Close PiP on exit" +msgstr "" + +# +msgid "Close title selection" +msgstr "" + +msgid "Code rate HP" +msgstr "" + +msgid "Code rate LP" +msgstr "" + +# +msgid "Coderate HP" +msgstr "Kode faasje HP" + +# +msgid "Coderate LP" +msgstr "Kode faasje LP" + +# +msgid "Collection name" +msgstr "Kolleksje namme" + +# +msgid "Collection settings" +msgstr "Kolleksje ynstellingen" + +# +#, fuzzy +msgid "Color format" +msgstr "Kleur formaat" + +# +msgid "Command execution..." +msgstr "Kommando útfiere" + +# +msgid "Command order" +msgstr "Kommando folgoarde" + +# +msgid "Common Interface" +msgstr "Common Interface" + +# +#, fuzzy +msgid "Common Interface assignment" +msgstr "Common Interface" + +# +msgid "Communication" +msgstr "" + +# +#, fuzzy +msgid "Compact flash" +msgstr "Compact flash" + +# +msgid "Complete" +msgstr "Kompleet" + +# +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "Komplex(lud spoor & aspekt mixen tastien)" + +msgid "Composition of the recording filenames" +msgstr "" + +# +#, fuzzy +msgid "Configuration mode" +msgstr "Ynstellingen modus" + +# +#, fuzzy, python-format +msgid "Configuration mode: %s" +msgstr "Ynstellingen modus" + +# +#, fuzzy +msgid "Configuration..." +msgstr "Netwurk configuraasje" + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "" + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "" + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "" + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "" + +msgid "Configure how recording filenames are constructed." +msgstr "" + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +# +msgid "Configure interface" +msgstr "" + +# +msgid "Configure nameservers" +msgstr "" + +msgid "Configure on which devices the background delete option should be used." +msgstr "" + +# +#, fuzzy +msgid "Configure remote control type" +msgstr "Alderlik tasjoch type" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "" + +msgid "Configure the IP address." +msgstr "" + +msgid "Configure the aspect ratio of the screen." +msgstr "" + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +# +#, fuzzy +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "Gedrach wannear in film stoppe is" + +# +#, fuzzy +msgid "Configure the behavior when movie playback is started." +msgstr "Gedrach wannear in film start is" + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "" + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "" + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "" + +msgid "Configure the brightness level of the front panel display." +msgstr "" + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "" + +msgid "Configure the color of the teletext subtitles." +msgstr "" + +msgid "Configure the contrast level of the front panel display." +msgstr "" + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "" + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "" + +msgid "Configure the first audio language (highest priority)." +msgstr "" + +msgid "Configure the first subtitle language (highest priority)." +msgstr "" + +msgid "Configure the font size of the subtitles." +msgstr "" + +msgid "Configure the fourth audio language." +msgstr "" + +# +#, fuzzy +msgid "Configure the fourth subtitle language." +msgstr "skeakelje nei de folgende undertiteling taal" + +msgid "Configure the function of a long press on the power button." +msgstr "" + +msgid "Configure the function of a short press on the power button." +msgstr "" + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "" + +msgid "Configure the gateway." +msgstr "" + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "" + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "" + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "" + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "" + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "" + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "" + +msgid "Configure the latitude of your location." +msgstr "" + +msgid "Configure the longitude of your location." +msgstr "" + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "" + +msgid "Configure the nameserver (DNS)." +msgstr "" + +msgid "Configure the netmask." +msgstr "" + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "" + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "" + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "" + +msgid "Configure the possible fast forward speeds." +msgstr "" + +msgid "Configure the possible rewind speeds." +msgstr "" + +msgid "Configure the primary EPG language." +msgstr "" + +msgid "Configure the refresh rate of the screen." +msgstr "" + +msgid "Configure the screen resolution in PC output mode." +msgstr "" + +msgid "Configure the second audio language." +msgstr "" + +# +#, fuzzy +msgid "Configure the second subtitle language." +msgstr "skeakelje nei de folgende undertiteling taal" + +msgid "Configure the secondary EPG language." +msgstr "" + +msgid "Configure the sharpness of the video scaling." +msgstr "" + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "" + +# +#, fuzzy +msgid "Configure the slow motion speeds." +msgstr "Langsaam beweechjen faasje" + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "" + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "" + +msgid "Configure the third audio language." +msgstr "" + +# +#, fuzzy +msgid "Configure the third subtitle language." +msgstr "skeakelje nei de folgende undertiteling taal" + +msgid "Configure the transparency of the OSD." +msgstr "" + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "" + +# +#, fuzzy +msgid "Configure the tuner mode." +msgstr "Ynstellingen modus" + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "" + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "" + +msgid "Configure the video output mode (or resolution)." +msgstr "" + +msgid "Configure the way in which the receiver changes channels." +msgstr "" + +msgid "Configure where completed timers show up in the timer list." +msgstr "" + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "" + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "" + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "" + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "" + +msgid "Configure which color format should be used on the SCART output." +msgstr "" + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "" + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "" + +# +msgid "Configure your internal LAN" +msgstr "" + +# +msgid "Configure your network again" +msgstr "" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "" + +# +msgid "Configure your wireless LAN again" +msgstr "" + +msgid "Configures which video output connector will be used." +msgstr "" + +# +msgid "Configuring" +msgstr "Oan it ynstellen" + +# +msgid "Conflicting timer" +msgstr "Tiidsbarren konflikt" + +# +msgid "Connect" +msgstr "" + +# +#, fuzzy +msgid "Connect to a wireless network" +msgstr "Sykje Triitloaze netwerken" + +msgid "Connected satellites" +msgstr "" + +# +msgid "Connected to" +msgstr "Ferbûn mei" + +# +msgid "Connected!" +msgstr "" + +# +msgid "Constellation" +msgstr "Himmel" + +# +msgid "Content does not fit on DVD!" +msgstr "Ynhald past net op in DVD !" + +msgid "Continue" +msgstr "" + +# +msgid "Continue in background" +msgstr "Fjierder gean yn 'e eftergrûn" + +# +#, fuzzy +msgid "Continue playback" +msgstr "Kontinu spielje" + +# +msgid "Continue playing" +msgstr "Kontinu spielje" + +msgid "Continues play (loop)" +msgstr "" + +# +msgid "Contrast" +msgstr "Kontrast" + +msgid "Convert ext3 filesystem to ext4" +msgstr "" + +msgid "Convert ext3 to ext4" +msgstr "" + +msgid "Converting ext3 to ext4..." +msgstr "" + +msgid "Copy" +msgstr "" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "" + +msgid "Could not find installed channel list." +msgstr "" + +# +#, fuzzy +msgid "Could not load medium! No disc inserted?" +msgstr "Koe medium net lade ! Is der wol in disc oanwezig ?" + +# +msgid "Could not open Picture in Picture" +msgstr "" + +#, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "" + +#, python-format +msgid "Could not record due to invalid service %s" +msgstr "" + +# +msgid "Create DVD-ISO" +msgstr "Meitsje DVD-ISO" + +msgid "Create more detailed crash log" +msgstr "" + +# +#, python-format +msgid "Creating directory %s failed." +msgstr "Meitjse fan map %s is mislearre" + +# +#, fuzzy +msgid "Creating filesystem" +msgstr "Bestânsysteem neisjen" + +msgid "Creating partition" +msgstr "" + +# +msgid "Croatian" +msgstr "Kroatysk" + +msgid "Current CEC address" +msgstr "" + +msgid "Current device: " +msgstr "" + +msgid "Current event EPG" +msgstr "" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +# +msgid "Current settings:" +msgstr "Hjoeddeiske ynstellingen:" + +# +#, fuzzy +msgid "Current transponder" +msgstr "Hjoeddeiske Transponder" + +# +msgid "Current value: " +msgstr "" + +# +msgid "Current version:" +msgstr "Hjoeddeiske ferzje :" + +msgid "Currently installed image" +msgstr "" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +# +#, fuzzy +msgid "Custom skip time for '1'/'3' buttons" +msgstr "Brûker spring tiid foar knoppen 1-3" + +# +#, fuzzy +msgid "Custom skip time for '4'/'6' buttons" +msgstr "Brûker spring tiid foar knoppen 4-6" + +# +#, fuzzy +msgid "Custom skip time for '7'/'9' buttons" +msgstr "Brûker spring tiid foar knoppen 7-9" + +# +msgid "Customize" +msgstr "Oanpasse" + +msgid "Customize channel list cursor behavior" +msgstr "" + +# +msgid "Cut" +msgstr "Knip" + +# +msgid "Cutlist editor..." +msgstr "Kniplyst bewurker..." + +# +msgid "Czech" +msgstr "Tsjechysk" + +# +msgid "D" +msgstr "D" + +# +msgid "DHCP" +msgstr "DHCP" + +# +#, fuzzy +msgid "DMM advanced" +msgstr "afansjearre" + +msgid "DMM normal" +msgstr "" + +# +msgid "DUAL LAYER DVD" +msgstr "" + +msgid "DVB subtitle black transparency" +msgstr "" + +msgid "DVB-C" +msgstr "" + +msgid "DVB-C ANNEX C" +msgstr "" + +# +msgid "DVB-S" +msgstr "DVB-S" + +# +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "" + +msgid "DVB-T2" +msgstr "" + +msgid "DVD data format" +msgstr "" + +# +#, fuzzy +msgid "DVD file browser" +msgstr "Ynstekker browser" + +# +msgid "DVD media toolbox" +msgstr "DVD media arkbak" + +# +#, fuzzy +msgid "DVD player" +msgstr "DVD Spieler" + +# +#, fuzzy +msgid "DVD titlelist" +msgstr "wyte lyst" + +# +msgid "Danish" +msgstr "Deensk" + +# +msgid "Date" +msgstr "Datum" + +# +#, fuzzy +msgid "Date/time input" +msgstr "Tiid / Dei ynjefte" + +# +#, fuzzy +msgid "Deep standby" +msgstr "Sliip stand" + +# +msgid "Default" +msgstr "" + +# +msgid "Default movie location" +msgstr "" + +# +#, fuzzy +msgid "Default settings" +msgstr "Wyzigje ynstellingen" + +msgid "Delay before key repeat starts:" +msgstr "" + +msgid "Delay for external subtitles" +msgstr "" + +# +msgid "Delete" +msgstr "Ferwiderje" + +# +msgid "Delete entry" +msgstr "Ferwiderje ynfier" + +# +msgid "Delete failed!" +msgstr "Ferwiderjen mislearre!" + +# +#, fuzzy +msgid "Delete file" +msgstr "triem ferwiderje" + +# +#, fuzzy +msgid "Delete playlist entry" +msgstr "ofspiellyst rigele ferwiderje" + +# +#, fuzzy +msgid "Delete saved playlist" +msgstr "ferwiderje opsleine ofspiellyst" + +msgid "Delete timer" +msgstr "" + +# +#, fuzzy +msgid "Delete..." +msgstr "ferwiderje..." + +msgid "Deleted" +msgstr "" + +msgid "Deleted items" +msgstr "" + +msgid "Depth" +msgstr "" + +msgid "Descramble http streams" +msgstr "" + +# +msgid "Description" +msgstr "Beskriuwing" + +# +msgid "Deselect" +msgstr "" + +msgid "Details for plugin: " +msgstr "" + +# +msgid "Detected HDD:" +msgstr "Fûne hurde skiif:" + +# +msgid "Detected NIMs:" +msgstr "Fûne Tuners:" + +msgid "Devicename:" +msgstr "" + +msgid "Devide" +msgstr "" + +# +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +# +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +# +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +# +msgid "DiSEqC mode" +msgstr "DiSEqC-Mode" + +# +#, fuzzy, python-format +msgid "DiSEqC port %s: %s" +msgstr "DiSEqC herhellingen" + +# +#, fuzzy +msgid "DiSEqC-tester settings" +msgstr "Nammeserver ynstellingen" + +# +msgid "Dialing:" +msgstr "" + +# +msgid "Digital contour removal" +msgstr "" + +# +msgid "Direct playback of linked titles without menu" +msgstr "Direkt ôfspielje fan keppele titels sûnder menu" + +msgid "Directory" +msgstr "" + +# +#, fuzzy, python-format +msgid "Directory %s does not exist." +msgstr "Map %s bestiit net" + +#, python-format +msgid "Directory %s nonexistent." +msgstr "" + +# +msgid "Directory browser" +msgstr "" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "" + +# +#, fuzzy, python-format +msgid "Directory contains %s and %s." +msgstr "Map %s bestiit net" + +# +msgid "Disable" +msgstr "Utskeakelje" + +# +msgid "Disable Picture in Picture" +msgstr "PIP utskeakelje" + +msgid "Disable background scanning" +msgstr "" + +msgid "Disable timer" +msgstr "" + +# +msgid "Disabled" +msgstr "Utskeakele" + +# +msgid "Disconnect" +msgstr "" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "" + +# +msgid "Display 16:9 content as" +msgstr "16:9 ynhâld sjen litte as" + +# +msgid "Display 4:3 content as" +msgstr "4:3 ynhâld sjen litte as" + +# +msgid "Display >16:9 content as" +msgstr "" + +msgid "Display and userinterface" +msgstr "" + +msgid "Display message before playing next movie" +msgstr "" + +# +#, fuzzy +msgid "Display setup" +msgstr "Ynstellingen sjen litte" + +# +#, fuzzy +msgid "Do not change" +msgstr "net feroarje" + +# +#, fuzzy +msgid "Do not record" +msgstr "net opnimme" + +# +#, fuzzy +msgid "Do nothing" +msgstr "doch neat" + +# +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "Wolle jo echt it bestânsysteem neisjen ?<br> Dit kin lang duorje !" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" + +# +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Wolle jo wier %s ferwiderje?" + +# +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "Wolle jo wier de plugin \"%s\" binnenhelje ?" + +# +msgid "Do you really want to exit?" +msgstr "" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" + +# +#, fuzzy, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "Wolle jo wier de plugin \"%s\" binnenhelje ?" + +# +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Wolle jo echt map %s ferwiderje van skiif ?" + +# +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Wolle jo echt boekmerk fan %s ferwiderje ?" + +msgid "Do you want this?" +msgstr "" + +# +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Wolle jo dizze kolleksje nei DVD brâne ?" + +# +msgid "Do you want to do a service scan?" +msgstr "Wolle jo no nei kanalen sykje ?" + +# +msgid "Do you want to do another manual service scan?" +msgstr "Wolle jo opnei mei de hân sykje ?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "" + +# +#, fuzzy +msgid "Do you want to install a channel list?" +msgstr "Wolle jo no nei kanalen sykje ?" + +# +msgid "Do you want to install the package:\n" +msgstr "" + +# +msgid "Do you want to play DVD in drive?" +msgstr "Wolle jo de DVD ôfspielje ?" + +# +msgid "Do you want to preview this DVD before burning?" +msgstr "Wolle jo de DVD besjen foar it brânen ?" + +msgid "Do you want to reboot your receiver?" +msgstr "" + +# +msgid "Do you want to remove the package:\n" +msgstr "" + +# +msgid "Do you want to restore your settings?" +msgstr "Wolle jo jo ynstellingen wêrom sette ?" + +# +msgid "Do you want to resume this playback?" +msgstr "Wolle jo dit opnimmen fjierder ôfspielje ?" + +# +#, fuzzy, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Wolle jo jo ynstellingen wêrom sette ?" + +msgid "Do you want to update your receiver?" +msgstr "" + +# +msgid "Do you want to upgrade the package:\n" +msgstr "" + +# +msgid "Don't stop current event but disable coming events" +msgstr "Dit barren net stopje, maar oankommende barren útskeakelje" + +# +#, fuzzy, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "Dien - %d paket(ten) ynstalllearre of bywurke" +msgstr[1] "Dien - %d paket(ten) ynstalllearre of bywurke" + +# +msgid "Download" +msgstr "Binnenhelje" + +#, python-format +msgid "Download %s from server" +msgstr "" + +msgid "Download .NFI-files for USB-flasher" +msgstr "Binnenhelje fan .NFI triemen foar USB Flasher" + +# +#, fuzzy +msgid "Download plugins" +msgstr "Ynstekkers binnenhelje" + +# +msgid "Downloadable new plugins" +msgstr "Binnen te heljen nije ynstekkers" + +# +msgid "Downloadable plugins" +msgstr "Binnen te heljen ynstekkers" + +# +msgid "Downloading" +msgstr "Binnenheljen fan" + +# +msgid "Downloading plugin information. Please wait..." +msgstr "Binnenheljen fan ynstekker ynformaasje..." + +# +msgid "Dutch" +msgstr "Nederlansk" + +# +msgid "Dynamic contrast" +msgstr "" + +# +msgid "E" +msgstr "E" + +msgid "EPG" +msgstr "" + +msgid "EPG language selection 1" +msgstr "" + +msgid "EPG language selection 2" +msgstr "" + +# +#, fuzzy +msgid "EPG selection" +msgstr "EPG Seleksje" + +msgid "EPG settings" +msgstr "" + +# +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "Flater - Sykjen mislearre (%s)!" + +# +msgid "East" +msgstr "East" + +msgid "East limit set" +msgstr "" + +# +msgid "Edit" +msgstr "Bewurkje" + +# +msgid "Edit DNS" +msgstr "Wyzigje de DNS" + +# +msgid "Edit bouquets list" +msgstr "" + +# +msgid "Edit chapters of current title" +msgstr "Bewurkje haadstik fan dizze titel" + +# +msgid "Edit services list" +msgstr "Wyzigje kanaallyst" + +# +msgid "Edit settings" +msgstr "Wyzigje ynstellingen" + +# +#, fuzzy +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "nammeserver ynstellingen ferlitte" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "" + +msgid "Edit timer" +msgstr "" + +# +msgid "Edit title" +msgstr "Bewukje titel" + +# +msgid "Edit upgrade source url." +msgstr "" + +msgid "Education/Science/..." +msgstr "" + +# +msgid "Electronic Program Guide" +msgstr "Elektroniske Programma Gids" + +# +msgid "Enable" +msgstr "Ynskeakelje" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +# +msgid "Enable 5V for active antenna" +msgstr "5V ynskeakelje foar hjoeddeiske antenne" + +msgid "Enable EIT EPG" +msgstr "" + +msgid "Enable MHW EPG" +msgstr "" + +msgid "Enable Netmed EPG" +msgstr "" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +# +#, fuzzy +msgid "Enable bouquet selection in multi-EPG" +msgstr "bewurkjen boeket oan" + +msgid "Enable freesat EPG" +msgstr "" + +# +msgid "Enable multiple bouquets" +msgstr "Mear boeketten sjen litte" + +# +msgid "Enable parental control" +msgstr "Alderlik tasjoch ynskeakelje" + +msgid "Enable teletext caching" +msgstr "" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +# +msgid "Enabled" +msgstr "Ynskeakele" + +# +msgid "Encrypted: " +msgstr "" + +# +msgid "Encryption" +msgstr "Encryption" + +# +#, fuzzy +msgid "Encryption key" +msgstr "Encryption Kaai" + +# +#, fuzzy +msgid "Encryption key type" +msgstr "Encryption Kaai Type" + +# +msgid "Encryption:" +msgstr "" + +# +msgid "End time" +msgstr "Eintiid" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +# +msgid "English" +msgstr "Engelsk" + +# +#, fuzzy +msgid "Enigma2 skin selector" +msgstr "enigma2 en netwurk" + +# +msgid "Enter main menu..." +msgstr "Nei it haadmenu..." + +# +msgid "Enter pin code" +msgstr "" + +# +msgid "Enter the service pin" +msgstr "Fier de service pin yn" + +msgid "Equal to" +msgstr "" + +# +msgid "Error" +msgstr "Flater" + +msgid "Error code" +msgstr "" + +# +msgid "Error executing plugin" +msgstr "Flater by útfieren fan ynstekker" + +# +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Flater: %s\n" +"Opnei ?" + +# +msgid "Estonian" +msgstr "" + +msgid "Ethernet network interface" +msgstr "" + +msgid "Event font size (relative to skin size)" +msgstr "" + +# +#, fuzzy +msgid "Event view" +msgstr "Barren oersjoch" + +# +#, fuzzy +msgid "Event view menu" +msgstr "Barren oersjoch" + +msgid "Everywhere" +msgstr "" + +# +#, fuzzy +msgid "Exceeds dual layer medium!" +msgstr "te grut foar 2 laags medium!" + +# +msgid "Execution finished!!" +msgstr "Utfiering klear.." + +# +#, fuzzy +msgid "Execution progress:" +msgstr "Utfieren foarutgong:" + +# +msgid "Exif" +msgstr "Exif" + +# +msgid "Exit" +msgstr "ofslúte" + +msgid "Exit EPG" +msgstr "" + +# +msgid "Exit editor" +msgstr "Bewurker ofslúte" + +msgid "Exit input device selection." +msgstr "" + +msgid "Exit media player?" +msgstr "" + +# +#, fuzzy +msgid "Exit mediaplayer" +msgstr "mediaspieler ferlitte" + +# +#, fuzzy +msgid "Exit movie list" +msgstr "filmlyst ferlitte" + +# +#, fuzzy +msgid "Exit movie player?" +msgstr "mediaspieler ferlitte" + +# +#, fuzzy +msgid "Exit nameserver configuration" +msgstr "nammeserver ynstellingen ferlitte" + +# +#, fuzzy +msgid "Exit network interface list" +msgstr "netwurk ynterface lyst ferlitte" + +# +msgid "Exit network wizard" +msgstr "" + +# +msgid "Exit the wizard" +msgstr "De gucheler ofslúte" + +# +msgid "Expert" +msgstr "Avansearre" + +msgid "Extend sleeptimer 15 minutes" +msgstr "" + +# +msgid "Extended Software" +msgstr "" + +# +msgid "Extended Software Plugin" +msgstr "" + +# +#, fuzzy +msgid "Extended network setup plugin..." +msgstr "Utwreide Netwurkynstellingen Ynstekker..." + +# +#, fuzzy +msgid "Extended setup..." +msgstr "Utwreide Ynstellingen..." + +# +msgid "Extensions" +msgstr "Utwreidingen" + +# +msgid "Extensions management" +msgstr "" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "" + +msgid "Extra motor options" +msgstr "" + +# +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "" + +# +msgid "Factory reset" +msgstr "Fabryks ynstellingen" + +# +msgid "Failed" +msgstr "mislearre" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "" + +# +#, python-format +msgid "Fan %d" +msgstr "" + +# +#, python-format +msgid "Fan %d PWM" +msgstr "" + +# +#, fuzzy, python-format +msgid "Fan %d voltage" +msgstr "Ferheeche spanning" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +# +msgid "Fast" +msgstr "Rap" + +# +msgid "Fast DiSEqC" +msgstr "Rappe DiSEqC" + +msgid "Fast Scan" +msgstr "" + +# +msgid "Fast epoch" +msgstr "Snelle epoch" + +# +#, fuzzy +msgid "Fast forward speeds" +msgstr "Rap foarút faasje" + +# +msgid "Favourites" +msgstr "Favoryten" + +msgid "File appears to be busy.\n" +msgstr "" + +msgid "Filesystem check" +msgstr "" + +msgid "Final position at" +msgstr "" + +msgid "Final position at index" +msgstr "" + +msgid "Fine movement" +msgstr "" + +# +msgid "Finetune" +msgstr "Fyn ôfstemme" + +# +msgid "Finished" +msgstr "Ofrûn" + +# +msgid "Finished configuring your network" +msgstr "Klear mei ynstellen fan it netwurk" + +# +msgid "Finished restarting your network" +msgstr "Klear mei it opnei starten fan it netwurk" + +# +msgid "Finnish" +msgstr "Finsk" + +msgid "Fixed" +msgstr "" + +# +msgid "Flash" +msgstr "Flash" + +# +msgid "Flashing failed" +msgstr "Flashen misljearre" + +# +msgid "Following tasks will be done after you press OK!" +msgstr "" + +# +msgid "Format" +msgstr "Formaat" + +msgid "Forward volume keys" +msgstr "" + +# +msgid "Frame size in full view" +msgstr "gedielte yn folslein skerm" + +# +msgid "French" +msgstr "Frans" + +# +msgid "Frequency" +msgstr "Frekwinsje" + +# +msgid "Frequency bands" +msgstr "Frekwinsje bânnen" + +# +msgid "Frequency scan step size(khz)" +msgstr "Frekwinsje sykjen stap grutte(kHz)" + +# +msgid "Frequency steps" +msgstr "Oantal Frekwinsje stappen" + +msgid "Frequency:" +msgstr "" + +# +msgid "Fri" +msgstr "Fre" + +# +msgid "Friday" +msgstr "Freed" + +msgid "From :" +msgstr "" + +# +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Foarprocessor ferzje: %d" + +msgid "Full transparency" +msgstr "" + +msgid "Fulview resulution" +msgstr "" + +msgid "Function of OK button" +msgstr "" + +msgid "Further Options" +msgstr "" + +# +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"De GUI moat opnij starte fan wege de nije skin\n" +"Wolle jo de GUI no opnei starte ?" + +# +msgid "Gateway" +msgstr "Gateway" + +msgid "General AC3 delay" +msgstr "" + +msgid "General PCM delay" +msgstr "" + +# +msgid "Genre" +msgstr "Sjenre" + +# +msgid "German" +msgstr "Dúts" + +msgid "Get latest experimental image" +msgstr "" + +msgid "Get latest release image" +msgstr "" + +# +msgid "Getting plugin information. Please wait..." +msgstr "Binnenhelje fan ynstekker ynformaasje...." + +msgid "Go down the list" +msgstr "" + +msgid "Go to first movie or last item" +msgstr "" + +msgid "Go to first movie or top of list" +msgstr "" + +# +#, fuzzy +msgid "Go to first service" +msgstr "Neit it earste menu item gean" + +# +#, fuzzy +msgid "Go to last service" +msgstr "Befeilich kanalen" + +# +#, fuzzy +msgid "Go to next event" +msgstr "Nei it folgende menu item gean" + +# +#, fuzzy +msgid "Go to next page of service" +msgstr "Gjin nei folgende undersender" + +# +#, fuzzy +msgid "Go to previous event" +msgstr "Nei it foarige menu item " + +# +#, fuzzy +msgid "Go to previous page of service" +msgstr "Werom nei foariche service" + +msgid "Go up the list" +msgstr "" + +msgid "Goto" +msgstr "" + +# +msgid "Goto 0" +msgstr "Gjin nei 0" + +msgid "Goto :" +msgstr "" + +msgid "Goto X" +msgstr "" + +msgid "Goto index position" +msgstr "" + +msgid "Goto next day of events" +msgstr "" + +msgid "Goto next page of events" +msgstr "" + +# +msgid "Goto position" +msgstr "Gjin nei posysje" + +msgid "Goto previous day of events" +msgstr "" + +msgid "Goto previous page of events" +msgstr "" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "" + +msgid "GraphMultiEpg Settings" +msgstr "" + +# +msgid "Graphical Multi EPG" +msgstr "Grafyske Multi EPG" + +# +msgid "Greek" +msgstr "Gryks" + +# +msgid "Green boost" +msgstr "" + +msgid "Guard interval" +msgstr "" + +msgid "HD list" +msgstr "" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "" + +msgid "Handle wakeup from TV" +msgstr "" + +# +#, fuzzy +msgid "Hard disk" +msgstr "Hurde skiif" + +# +#, fuzzy +msgid "Hard disk setup" +msgstr "Hurde skiif ynstellingen" + +# +#, fuzzy +msgid "Hard disk standby after" +msgstr "Hurde skiif yn sliipstand nei" + +# +msgid "Harddisk" +msgstr "Hurde skiif" + +msgid "Hardware: " +msgstr "" + +msgid "Hebrew" +msgstr "" + +msgid "Helps setting up your dish" +msgstr "" + +msgid "Hidden network" +msgstr "" + +msgid "Hide CI messages" +msgstr "" + +msgid "Hide channel list in radio mode" +msgstr "" + +msgid "Hide known extensions" +msgstr "" + +msgid "Hide number markers" +msgstr "" + +# +#, fuzzy +msgid "Hide player" +msgstr "spieler ferbergje" + +msgid "Hide zap errors" +msgstr "" + +msgid "Hierarchy info" +msgstr "" + +# +#, fuzzy +msgid "Hierarchy information" +msgstr "Hiërarchie Ynformaasje" + +# +msgid "High bitrate support" +msgstr "" + +msgid "Hold screen" +msgstr "" + +msgid "Hold till locked" +msgstr "" + +msgid "Home" +msgstr "" + +# +msgid "Horizontal" +msgstr "" + +msgid "Horizontal turning speed" +msgstr "" + +# +msgid "How many minutes do you want to record?" +msgstr "Hoe folle minuten wolle jo opnimme?" + +# +msgid "Hue" +msgstr "" + +# +msgid "Hungarian" +msgstr "Hongaarsk" + +# +#, fuzzy +msgid "IP address" +msgstr "IP Adres" + +# +msgid "ISO file is too large for this filesystem!" +msgstr "ISO triem is te grut foar dit bestânsysteem!" + +# +msgid "ISO path" +msgstr "ISO paad" + +msgid "Icons" +msgstr "" + +# +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"Ot jo dit leze, is der iets raar skeef mei\n" +"jo skart oansluting. Druk OK om werom te gean." + +# +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"Skeakelje in helderens of kontrast ferbettering op jo TV út. Is der iets mei de namme \"dynamysk\", set it nei standert. Set it eftergrûn helderens nivo nei jo eigen smaak. Set it konstrast sa leech mooglik op jo TV.\n" +"Dan, set it helderens nivo sa leech as mooglik, mar soargje dat de twa leechste griistinten krek anwêzig bliuwe\n" +"Meitsje jo net drok om de helderenstinten no. Die komme werom yn de folgende stap\n" +"Binne jo tefreden mei it resultaat, druk OK" + +msgid "Image: " +msgstr "" + +# +#, fuzzy +msgid "Immediate shutdown" +msgstr "direkt útskeakelje" + +# +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "Op in barren op te nimmen, wurd de TV nei opnimmen skeakele!\n" + +# +#, fuzzy +msgid "In progress" +msgstr "Dwaande" + +msgid "Inactivity Sleeptimer" +msgstr "" + +msgid "Include AIT in http streams" +msgstr "" + +msgid "Include ECM in http streams" +msgstr "" + +msgid "Include EIT in http streams" +msgstr "" + +msgid "Incorrect type service for PiP!" +msgstr "" + +# +msgid "Increased voltage" +msgstr "Ferheeche spanning" + +# +msgid "Index" +msgstr "Yndex" + +msgid "Index allocated:" +msgstr "" + +# +msgid "Info" +msgstr "" + +# +#, fuzzy +msgid "Info bar" +msgstr "Ynfobalke" + +# +#, fuzzy +msgid "Info bar timeout" +msgstr "Ynfobalke tiid" + +msgid "Infobar frontend data source" +msgstr "" + +# +msgid "Information" +msgstr "Ynformaasje" + +# +msgid "Init" +msgstr "Initialisearje" + +# +#, fuzzy +msgid "Initial fast forward speed" +msgstr "Rap foarút faasje" + +# +msgid "Initial location in new timers" +msgstr "" + +msgid "Initial lock ratio" +msgstr "" + +# +#, fuzzy +msgid "Initial rewind speed" +msgstr "Werom spiel faasje" + +msgid "Initial signal quality" +msgstr "" + +msgid "Initial signal quality:" +msgstr "" + +# +msgid "Initialization" +msgstr "" + +# +msgid "Initialize" +msgstr "Formattearje HDD" + +msgid "Initializing storage device..." +msgstr "" + +# +msgid "Input" +msgstr "Ynfier" + +msgid "Input device setup" +msgstr "" + +msgid "Input devices" +msgstr "" + +# +msgid "Install" +msgstr "" + +# +msgid "Install a new image with a USB stick" +msgstr "" + +# +msgid "Install a new image with your web browser" +msgstr "" + +# +#, fuzzy +msgid "Install channel list" +msgstr "set folgende kanaal in skiednis" + +msgid "Install extensions" +msgstr "" + +# +msgid "Install extensions." +msgstr "" + +# +msgid "Install local extension" +msgstr "" + +msgid "Install picons on" +msgstr "" + +# +#, fuzzy +msgid "Install softcam" +msgstr "Software oan it ynstallearjen..." + +msgid "Installation has completed." +msgstr "" + +msgid "Installation or removal has completed." +msgstr "" + +# +msgid "Installing" +msgstr "Oan it ynstallearjen" + +# +#, fuzzy +msgid "Installing software..." +msgstr "Software oan it ynstallearjen..." + +# +#, fuzzy +msgid "Instant recording location" +msgstr "feroarje opnim tiiden" + +# +#, fuzzy +msgid "Instant recording..." +msgstr "In direct opnimmen..." + +# +msgid "Interface: " +msgstr "" + +# +msgid "Intermediate" +msgstr "Yntermediate" + +# +#, fuzzy +msgid "Internal flash" +msgstr "Ynterne Flash" + +msgid "Internal hdd only" +msgstr "" + +msgid "Interval between keys when repeating:" +msgstr "" + +# +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Unjildige map selektearre: %s" + +# +#, fuzzy +msgid "Invalid location" +msgstr "Plak net tastien" + +msgid "Invalid transponder data" +msgstr "" + +# +msgid "Inversion" +msgstr "Infertearring" + +msgid "Invert" +msgstr "" + +# +msgid "Ipkg" +msgstr "" + +msgid "Is this setting ok?" +msgstr "" + +# +#, fuzzy +msgid "Is this video mode ok?" +msgstr "Kies fideo moadus" + +# +msgid "Italian" +msgstr "Italiaansk" + +msgid "Items per page " +msgstr "" + +msgid "Items per page for list screen" +msgstr "" + +# +#, fuzzy +msgid "Job overview" +msgstr "Opdracht oansjoch" + +msgid "Jump to beginning of list" +msgstr "" + +# +#, fuzzy +msgid "Jump to end of list" +msgstr "spring nei ein fan lyst" + +# +#, fuzzy +msgid "Jump to next marked position" +msgstr "spring nei folgende index punt" + +# +#, fuzzy +msgid "Jump to previous marked position" +msgstr "spring nei foarige index punt" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +#, fuzzy +msgid "Just scale" +msgstr "Alinne skale" + +msgid "Keep service" +msgstr "" + +# +#, fuzzy +msgid "Kernel version: " +msgstr "Nije ferzje:" + +# +msgid "Keyboard" +msgstr "" + +# +#, fuzzy +msgid "Keyboard map" +msgstr "Toetseboerd Map" + +# +#, fuzzy +msgid "Keyboard setup" +msgstr "Toetseboerd Ynstellingen" + +# +#, fuzzy +msgid "LAN adapter" +msgstr "LAN oanslúting" + +msgid "LAN connection" +msgstr "" + +# +msgid "LNB" +msgstr "LNB" + +# +msgid "Language" +msgstr "Taal" + +# +msgid "Language selection" +msgstr "Taal Kieze" + +# +msgid "Last config" +msgstr "" + +# +msgid "Last speed" +msgstr "Lêste faasje" + +msgid "Last upgrade: " +msgstr "" + +msgid "Latest Commits" +msgstr "" + +# +msgid "Latitude" +msgstr "Bridtegraad" + +# +msgid "Latvian" +msgstr "" + +# +#, fuzzy +msgid "Leave DVD player?" +msgstr "DVD Spieler ôfslúte ?" + +# +msgid "Left" +msgstr "Links" + +msgid "Left from servicename" +msgstr "" + +msgid "Leisure hobbies" +msgstr "" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Letterbox" + +msgid "Letterbox zoom" +msgstr "" + +msgid "Limit character set for recording filenames" +msgstr "" + +# +msgid "Limit east" +msgstr "Limyt east" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "" + +# +msgid "Limit west" +msgstr "Limyt west" + +msgid "Limits cancelled" +msgstr "" + +msgid "Limits enabled" +msgstr "" + +# +msgid "Limits off" +msgstr "Limyten út" + +# +msgid "Limits on" +msgstr "Limyt oan" + +msgid "Link quality:" +msgstr "" + +# +msgid "Link:" +msgstr "Link:" + +# +msgid "Linked titles with a DVD menu" +msgstr "Keppele titels mei in DVD menu" + +msgid "List EPG functions..." +msgstr "" + +msgid "List available networks" +msgstr "" + +msgid "List mode" +msgstr "" + +# +#, fuzzy +msgid "List of storage devices" +msgstr "Lyst Opslach Apparatuur" + +msgid "List type" +msgstr "" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "" +msgstr[1] "" + +# +#, fuzzy +msgid "Listen to the radio..." +msgstr "nei radio harkje..." + +msgid "Lists reloaded!" +msgstr "" + +# +msgid "Lithuanian" +msgstr "Lithuaniansk" + +# +msgid "Load" +msgstr "Laad" + +msgid "Load Length of Movies in Movielist" +msgstr "" + +# +#, fuzzy +msgid "Load length of movies in movie list" +msgstr "Laad lengte fan films yn filmlyst" + +# +#, fuzzy +msgid "Load playlist" +msgstr "ofspiellyst lade" + +# +#, fuzzy +msgid "Local network" +msgstr "Lokaal netwurk" + +# +msgid "Location" +msgstr "Doel" + +# +msgid "Location for instant recordings" +msgstr "" + +msgid "Lock ratio" +msgstr "" + +# +msgid "Lock:" +msgstr "Slot:" + +# +msgid "Log results to harddisk" +msgstr "" + +msgid "Long filenames" +msgstr "" + +# +#, fuzzy +msgid "Long key press" +msgstr "Lang taste yndrukken" + +# +msgid "Longitude" +msgstr "Lingtegraad" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "" + +# +#, fuzzy +msgid "MMC card" +msgstr "MMC kaart" + +# +msgid "MORE" +msgstr "MEER" + +# +msgid "Main menu" +msgstr "Haad menu" + +msgid "Maintain old EPG data for" +msgstr "" + +# +msgid "Make this mark an 'in' point" +msgstr "Markeer dit as in 'yn' punt" + +# +msgid "Make this mark an 'out' point" +msgstr "Markeer dit as in 'út' punt" + +# +msgid "Make this mark just a mark" +msgstr "Meitsje dit in gewoan markeer punt" + +# +msgid "Manage extensions" +msgstr "" + +# +msgid "Manage your receiver's software" +msgstr "" + +msgid "Manual" +msgstr "" + +# +msgid "Manual Scan" +msgstr "Hanmatig sykje" + +msgid "Manual configuration" +msgstr "" + +# +#, fuzzy +msgid "Manual scan" +msgstr "Hanmatig sykje" + +# +msgid "Manual transponder" +msgstr "Hanmatige transponder" + +# +msgid "Manufacturer" +msgstr "" + +# +#, fuzzy +msgid "Margin after recording (minutes)" +msgstr "Extra tiid foar by it opnimmen" + +# +#, fuzzy +msgid "Margin before recording (minutes)" +msgstr "Extra tiid foar by it opnimmen" + +msgid "Max memory positions" +msgstr "" + +msgid "Max. bitrate: " +msgstr "" + +# +msgid "Media player" +msgstr "Media Spieler" + +# +#, fuzzy +msgid "Media scanner" +msgstr "Media Spieler" + +# +msgid "Medium is not a writeable DVD!" +msgstr "Medium is net in skriuwbêre DVD!" + +# +msgid "Medium is not empty!" +msgstr "Medium is net leech!" + +msgid "Memory" +msgstr "" + +msgid "Memory index" +msgstr "" + +# +msgid "Menu" +msgstr "Menu" + +# +msgid "Message" +msgstr "Berjocht" + +# +msgid "Message..." +msgstr "" + +#, python-format +msgid "Minimum age %d years" +msgstr "" + +msgid "Minimum send interval" +msgstr "" + +msgid "Missing " +msgstr "" + +# +#, fuzzy +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Moadus" + +# +#, fuzzy +msgctxt "Video output mode" +msgid "Mode" +msgstr "Moadus" + +# +msgid "Model: " +msgstr "Model: " + +# +msgid "Modulation" +msgstr "Modulaasje" + +# +msgid "Modulator" +msgstr "Modulator" + +# +msgid "Mon" +msgstr "Moan" + +# +msgid "Mon-Fri" +msgstr "Moan - Fre" + +# +msgid "Monday" +msgstr "Moandei" + +# +msgid "Mosquito noise reduction" +msgstr "" + +msgid "Mount" +msgstr "" + +msgid "Move" +msgstr "" + +# +#, fuzzy +msgid "Move PiP to main picture" +msgstr "ferplaats PiP nei haad skerm" + +# +msgid "Move Picture in Picture" +msgstr "Ferpleats Byld yn Byld" + +# +msgid "Move east" +msgstr "Draai nei east" + +msgid "Move to other directory" +msgstr "" + +msgid "Move to position X" +msgstr "" + +# +msgid "Move west" +msgstr "Draai nei west" + +msgid "Moved to position 0" +msgstr "" + +msgid "Moved to position at index" +msgstr "" + +msgid "Movement" +msgstr "" + +msgid "Movie List Configuration" +msgstr "" + +msgid "Movie Selection" +msgstr "" + +# +#, fuzzy +msgid "Movie list configuration" +msgstr "Tuner ynstellingen" + +# +msgid "Movie location" +msgstr "" + +# +#, fuzzy +msgid "Movie selection" +msgstr "Tiidsbarren seleksje" + +msgid "Movie/Drama" +msgstr "" + +# +msgid "Movielist menu" +msgstr "Filmlyst menu" + +msgid "Moving" +msgstr "" + +msgid "Moving east ..." +msgstr "" + +msgid "Moving to position" +msgstr "" + +msgid "Moving west ..." +msgstr "" + +# +msgid "Multi EPG" +msgstr "Multi EPG" + +msgid "Multi-EPG bouquet selection" +msgstr "" + +# +msgid "Multimedia" +msgstr "" + +# +msgid "Multiple service support" +msgstr "Kin meardere utstjoeringen oan" + +msgid "Multiplex" +msgstr "" + +# +msgid "Multisat" +msgstr "Multisat" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "" + +# +msgid "Mute" +msgstr "Mute" + +# +msgid "N/A" +msgstr "Net oanwêzig" + +# +msgid "NEXT" +msgstr "Folgende" + +msgid "NFI image flashing" +msgstr "" + +# +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "NFI image flashen is klear. Druk giel om nei te starten!" + +msgid "NIM" +msgstr "" + +# +msgid "NOW" +msgstr "No" + +# +msgid "NTSC" +msgstr "NTSC" + +# +msgid "Name" +msgstr "Namme" + +# +msgid "Nameserver" +msgstr "Nammeserver" + +# +#, python-format +msgid "Nameserver %d" +msgstr "Nammeserver %d" + +# +msgid "Nameserver settings" +msgstr "Nammeserver ynstellingen" + +# +#, fuzzy +msgid "Nameserver setup" +msgstr "Nammeserver Ynstellingen" + +msgid "Namespace" +msgstr "" + +# +msgid "Netmask" +msgstr "Netmasker" + +# +msgid "Network" +msgstr "" + +msgid "Network ID" +msgstr "" + +# +#, fuzzy +msgid "Network configuration..." +msgstr "Netwurk configuraasje" + +# +#, fuzzy +msgid "Network mount" +msgstr "Netwurk oankeppelingen" + +# +#, fuzzy, python-format +msgid "Network mount %s" +msgstr "Netwurk oankeppelingen" + +msgid "Network name (SSID)" +msgstr "" + +# +msgid "Network scan" +msgstr "Netwurk ôfsykje" + +# +msgid "Network setup" +msgstr "Netwurk ynstellingen" + +# +msgid "Network test" +msgstr "Netwurk test" + +# +msgid "Network test..." +msgstr "Netwurk test..." + +msgid "Network test: " +msgstr "" + +# +#, fuzzy +msgid "Network wizard" +msgstr "Netwurk gûcheler" + +# +msgid "Network:" +msgstr "Netwurk:" + +# +msgid "New" +msgstr "Nij" + +msgid "New PIN" +msgstr "" + +# +msgid "New version:" +msgstr "Nije ferzje:" + +msgid "News Current Affairs" +msgstr "" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "" + +# +msgid "No" +msgstr "Nee" + +# +msgid "No (supported) DVDROM found!" +msgstr "Gjin (ondersteunde) DVDROM fûn!" + +# +msgid "No Connection" +msgstr "" + +# +msgid "No HDD found or HDD not initialized!" +msgstr "Gjin hurde skiif fûn of HDD net formatearre!" + +# +msgid "No backup needed" +msgstr "Gjin backup nedich" + +msgid "No cable tuner found!" +msgstr "" + +# +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Gjin data op transponder\n" +"(tiid fan lêzen PAT)" + +msgid "No delay" +msgstr "" + +# +msgid "No description available." +msgstr "" + +# +msgid "No details for this image file" +msgstr "Gjin details beskikber foar dit image triem" + +# +msgid "No displayable files on this medium found!" +msgstr "" + +# +msgid "No event info found, recording indefinitely." +msgstr "Gjin barren ynfo fûn, giit foar altiid troch mei opnimmen.." + +# +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "" + +msgid "No free index available" +msgstr "" + +# +msgid "No free tuner!" +msgstr "Gjin tuner oer" + +# +msgid "No network connection available." +msgstr "" + +# +msgid "No networks found" +msgstr "" + +msgid "No new plugins found" +msgstr "" + +# +msgid "No positioner capable frontend found." +msgstr "Gjin posysjesyker foarein fûn." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "" + +msgid "No services/providers selected" +msgstr "" + +# +#, fuzzy +msgid "No standby" +msgstr "gjin paraatstand" + +msgid "No suitable sat tuner found!" +msgstr "" + +# +msgid "No tags are set on these movies." +msgstr "Gjin merkers oanwêzig op dizze films" + +# +#, fuzzy +msgid "No timeout" +msgstr "gjin tiidslimyt" + +# +msgid "No to all" +msgstr "" + +msgid "No transparency" +msgstr "" + +# +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "Der is gjin tuner ynsteld foar gebrûk mei in diseqc posysje syker!" + +# +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Gjin tuner aktief!\n" +"Stel dizze earst yn foar jo kanalen sykje kinne." + +msgid "No updates available" +msgstr "" + +msgid "No updates available. Please try again later." +msgstr "" + +# +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Gjin jildige service PIN fûn !\n" +"Wolle jo dizze no ynstelle ?\n" +"By 'nee' wurd de service befeiliging útskeakele !" + +# +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Gjin jildige ynstellingen PIN fûn !\n" +"Wolle jo dizze no ynstelle ?\n" +"By 'nee' wurd de ynstellingen befeiliging útskeakele !" + +msgid "No wireless networks found! Searching..." +msgstr "" + +# +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"Gjin wurkende netwurk adatpter fûn.\n" +"Sjoch nei ot in kabel oanslúten is en it netwurk goed ynsteld is." + +# +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"Gjin wurkende triidloaze netwurk adatpter fûn.\n" +"Sjoch nei ot in WLAN adapter oanslúten is en it netwurk goed ynsteld is." + +# +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"Gjin wurkende triidloaze netwurk adatpter fûn.\n" +"Sjoch nei ot in WLAN adapter oanslúten is of skeakelje de lokale netwurk ynterface yn." + +# +msgid "No, but restart from begin" +msgstr "Nee, mar start fanôf it begjin" + +# +msgid "No, do nothing." +msgstr "Nee, doch neat.." + +msgid "No, just start my receiver" +msgstr "" + +msgid "No, never" +msgstr "" + +# +msgid "None" +msgstr "Gjin" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Net lineair" + +msgid "Normal mode" +msgstr "" + +# +msgid "North" +msgstr "Noard" + +# +msgid "Norwegian" +msgstr "Noarsk" + +msgid "Not associated" +msgstr "" + +msgid "Not configured" +msgstr "" + +# +#, fuzzy, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Net genôch diskrûmte. Rûmje wat rotzooi op en besykje opnei. (%d MB nedich, %d oanwêzich)" + +msgid "Nothing connected" +msgstr "" + +# +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Neat te sykjen\n" +"Earst de tuner ynstellingen dwaan, foar jo senders sykje kinne." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "" + +# +#, fuzzy +msgid "Now playing" +msgstr "No oan it ôfspieljen" + +# +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "No, feroare it helderens nivo en set it sa heech, mar wêz seker dat jo altiid nog it ferskil sjogge tusken de twa helderste skaadnivos.Binne jo klear, druk OK" + +# +msgid "OK" +msgstr "Ok" + +# +msgid "OK, guide me through the upgrade process" +msgstr "Ok, rin troch it bywurkjen proces" + +msgid "ONID" +msgstr "" + +msgid "OSD name request" +msgstr "" + +# +#, fuzzy +msgid "OSD settings" +msgstr "OSD-ynstellingen" + +msgid "OSD transparency" +msgstr "" + +# +msgid "Off" +msgstr "Ut" + +msgid "Offline decode delay (ms)" +msgstr "" + +msgid "Ok" +msgstr "" + +# +msgid "On" +msgstr "Oan" + +msgid "On end of movie" +msgstr "" + +msgid "On end of movie (as menu)" +msgstr "" + +# +msgid "One" +msgstr "Ien" + +# +msgid "Only extensions." +msgstr "" + +# +#, fuzzy +msgid "Only free scan" +msgstr "Allinne Freie útstjoeringen" + +# +#, fuzzy +msgid "Open service list" +msgstr "iepenje kanaallyst" + +# +#, fuzzy +msgid "Open the movie list" +msgstr "Werom nei de film lyst" + +msgid "Orbital position" +msgstr "" + +msgid "Original" +msgstr "" + +msgid "Other" +msgstr "" + +msgid "Output" +msgstr "" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "" + +# +#, fuzzy +msgid "Overwrite configuration files?" +msgstr "Tuner ynstellingen" + +# +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "" + +# +msgid "PIDs" +msgstr "PIDs" + +# +#, fuzzy +msgid "PIN code needed" +msgstr "Pinkode is needich" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "" + +# +msgid "Package list update" +msgstr "Bywurkje pakketlyst " + +# +msgid "Packet management" +msgstr "Pakket beheer" + +# +msgid "Packet manager" +msgstr "" + +# +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +#, fuzzy +msgid "Pan&scan" +msgstr "Pan&Scan" + +# +#, fuzzy +msgid "Parent directory" +msgstr "Boppelizzende map" + +# +msgid "Parental control" +msgstr "Alderlik tasjoch" + +# +#, fuzzy +msgid "Parental control services editor" +msgstr "Alderlik tasjoch bewurker" + +# +msgid "Parental control setup" +msgstr "Alderlik tasjoch" + +# +msgid "Parental control type" +msgstr "Alderlik tasjoch type" + +# +msgid "Password" +msgstr "" + +# +#, fuzzy +msgid "Pause" +msgstr "pause" + +# +msgid "Pause movie at end" +msgstr "Film op pause by ein" + +# +#, fuzzy +msgid "Pause playback" +msgstr "Fierder gean mei ôfspieljen" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "" + +# +#, fuzzy +msgid "Percentage right" +msgstr "circular rjochts" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "" + +msgid "Permanently remove all deleted items" +msgstr "" + +msgid "Persian" +msgstr "" + +# +msgid "Phone number" +msgstr "" + +# +#, fuzzy +msgid "PiP setup" +msgstr "PIP Ynstellingen" + +msgid "Picon" +msgstr "" + +msgid "Picon and service name" +msgstr "" + +# +#, fuzzy +msgid "Picture player" +msgstr "Plaatsje spieler" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Pillar box" + +# +msgid "Pilot" +msgstr "Pilot" + +# +msgid "Play" +msgstr "Ofspylje" + +# +msgid "Play DVD" +msgstr "" + +msgid "Play audio in background" +msgstr "" + +# +#, fuzzy +msgid "Play audio-CD..." +msgstr "Ofspylje fan Audio-CD..." + +msgid "Play back media files" +msgstr "" + +# +#, fuzzy +msgid "Play entry" +msgstr "rigele ofspielje" + +# +#, fuzzy +msgid "Play from next mark or playlist entry" +msgstr "Spielje fanôf it folgende punt of ôfspiellyst rigele" + +# +#, fuzzy +msgid "Play from previous mark or playlist entry" +msgstr "Spielje fanôf it foarige punt of ôfspiellyst rigele" + +# +#, fuzzy +msgid "Play music..." +msgstr "Ofspylje fan Audio-CD..." + +msgid "Play next" +msgstr "" + +msgid "Play next (return to movie list)" +msgstr "" + +msgid "Play next (return to previous service)" +msgstr "" + +msgid "Play previous" +msgstr "" + +# +msgid "Play recorded movies..." +msgstr "Opname films ôfspielje..." + +# +msgid "Please add titles to the compilation." +msgstr "" + +# +msgid "Please change recording endtime" +msgstr "Graach eintiid fan it opnimmen feroarje." + +# +msgid "Please check your network settings!" +msgstr "Graach netwurk ynstellingen neisjen!" + +# +msgid "Please choose an extension..." +msgstr "Kies in uitbreiding..." + +# +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" + +# +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" + +msgid "Please connect your receiver to the internet" +msgstr "" + +# +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Feroarje gjin waarden, wannear jo net witte wat jo dogge!" + +# +msgid "Please enter a name for the new bouquet" +msgstr "Namme ynjefte foar it nije bouquet" + +# +msgid "Please enter a name for the new marker" +msgstr "Namme ynjefte foar in nije markering" + +# +msgid "Please enter a new filename" +msgstr "Jou in nije bestânnamme yn" + +# +msgid "Please enter filename (empty = use current date)" +msgstr "Jou in triemnamme yn (leech = datum fan hjoed)" + +# +msgid "Please enter name of the new directory" +msgstr "Jou in namme yn foar de nije map" + +msgid "Please enter new name:" +msgstr "" + +# +msgid "Please enter the correct pin code" +msgstr "Graach de júste pinkode yn jaan" + +msgid "Please enter the old PIN code" +msgstr "" + +# +msgid "Please follow the instructions on the TV" +msgstr "Folgje de ynstruksjes op TV" + +# +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "Tink der om dat de foarige selektearre media net oansprutsen wurde koe, en dêrom de standert map brûkt wurd." + +# +msgid "Please press OK to continue." +msgstr "Druk OK om fierder te gean." + +msgid "Please select a default EPG type..." +msgstr "" + +# +msgid "Please select a playlist to delete..." +msgstr "Selektearje in ofspiellyst om te ferwiderjen..." + +# +msgid "Please select a playlist..." +msgstr "Selektearje in ofspiellyst" + +# +#, fuzzy +msgid "Please select a sub service..." +msgstr "Selektearje in undersender..." + +# +msgid "Please select a subservice to record..." +msgstr "Jou in undersender op, om op te nimmen." + +# +msgid "Please select a subservice..." +msgstr "Selektearje in undersender..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "" + +# +#, fuzzy +msgid "Please select medium to be scanned" +msgstr "Graach Medium kieze om ôf te sykjen" + +# +msgid "Please select medium to use as backup location" +msgstr "" + +# +msgid "Please select tag to filter..." +msgstr "Selektearje diel foar it filterjen..." + +# +msgid "Please select the movie path..." +msgstr "Selektearje it paad nei de film" + +# +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" + +# +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" + +# +#, fuzzy +msgid "Please set up tuner A" +msgstr "ynstelle fan tuner B" + +# +msgid "Please set up tuner B" +msgstr "ynstelle fan tuner B" + +# +msgid "Please set up tuner C" +msgstr "ynstelle fan tuner C" + +# +msgid "Please set up tuner D" +msgstr "ynstelle fan tuner D" + +# +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Pylkje knoppen om BIB finster te ferskowen.\n" +"Druk Bouquet +/- om finstergrutte te feroarjen" + +# +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "Brúk de op en del toets om jo taal te kiezen. Dernei druk op OK" + +msgid "Please wait" +msgstr "" + +# +#, fuzzy +msgid "Please wait (downloading channel list)" +msgstr "Lyst wurd laden..." + +# +#, fuzzy +msgid "Please wait (downloading softcam)" +msgstr "Lyst wurd laden..." + +# +#, fuzzy +msgid "Please wait (updating packages)" +msgstr "plaatsje wurd laden..." + +# +msgid "Please wait for activation of your network configuration..." +msgstr "Wachtsje op it aktief wurden fan de netwurk konfiguraasje" + +# +msgid "Please wait while scanning is in progress..." +msgstr "" + +# +msgid "Please wait while we configure your network..." +msgstr "Wachtsje oant it netwurk ynstelt wurden is..." + +# +msgid "Please wait while we prepare your network interfaces..." +msgstr "" + +# +msgid "Please wait while we test your network..." +msgstr "" + +# +msgid "Please wait while your network is restarting..." +msgstr "Wachtsje oant it netwurk opnei start is..." + +# +msgid "Please wait..." +msgstr "Graach eefkes wachtsje.." + +# +msgid "Please wait... Loading list..." +msgstr "Lyst wurd laden..." + +# +msgid "Plugin browser" +msgstr "Ynstekker browser" + +# +msgid "Plugin manager activity information" +msgstr "" + +# +msgid "Plugin manager help" +msgstr "" + +# +msgid "Plugins" +msgstr "Ynstekkers" + +msgid "Polarisation" +msgstr "" + +msgid "Polarisation:" +msgstr "" + +# +msgid "Polarization" +msgstr "Polarisaasje" + +# +msgid "Polish" +msgstr "Poolsk" + +# +msgid "Port A" +msgstr "Poort A" + +# +msgid "Port B" +msgstr "Poort B" + +# +msgid "Port C" +msgstr "Poort C" + +# +msgid "Port D" +msgstr "Poort D" + +# +msgid "Portuguese" +msgstr "Portugeesk" + +msgid "Position of completed timers in timerlist" +msgstr "" + +msgid "Position stored at index" +msgstr "" + +# +msgid "Positioner" +msgstr "Rotor" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "" + +# +msgid "Positioner setup" +msgstr "Rotor ynstellingen" + +# +msgid "Power threshold in mA" +msgstr "Stroom nivo yn mA" + +# +msgid "Predefined transponder" +msgstr "Foarôf ynstelde transponder" + +msgid "Prefer AC3 track" +msgstr "" + +msgid "Prefer AC3+ track" +msgstr "" + +msgid "Prefer audio track stored by service" +msgstr "" + +msgid "Prefer graphical DVB subtitles" +msgstr "" + +msgid "Prefer subtitles for hearing impaired" +msgstr "" + +msgid "Prefer subtitles stored by service" +msgstr "" + +msgid "Preferred tuner" +msgstr "" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "" + +# +msgid "Preparing... Please wait" +msgstr "Foarbereide fan... Eefkes wachtsje" + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "" + +msgid "Press MENU on your remote control for additional options." +msgstr "" + +# +msgid "Press OK on your remote control to continue." +msgstr "Druk OK op of ôfstandsbestjinning om fierder te gean." + +# +msgid "Press OK to activate the selected skin." +msgstr "" + +# +msgid "Press OK to activate the settings." +msgstr "Druk Ok om ynstellingen aktief te meitsjen." + +# +msgid "Press OK to edit the settings." +msgstr "Druk OK om dizze ynstellingen te bewurkjen" + +# +#, python-format +msgid "Press OK to get further details for %s" +msgstr "" + +# +msgid "Press OK to scan" +msgstr "Druk Ok om te sykjen" + +# +#, fuzzy +msgid "Press OK to select a provider." +msgstr "Druk Ok om te sykjen" + +msgid "Press OK to select satellites" +msgstr "" + +# +msgid "Press OK to select/deselect a CAId." +msgstr "" + +# +msgid "Press OK to start the scan" +msgstr "Druk Ok om sykjen te starten" + +msgid "Press OK to toggle the selection" +msgstr "" + +# +msgid "Press OK to toggle the selection." +msgstr "" + +# +msgid "Press yellow to set this interface as default interface." +msgstr "" + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "" + +# +msgid "Preview" +msgstr "Foar-oanskouwing" + +# +msgid "Preview menu" +msgstr "Foarige menu" + +msgid "Preview selected channel" +msgstr "" + +# +msgid "Primary DNS" +msgstr "Eerste DNS" + +# +msgid "Priority" +msgstr "" + +# +msgid "Process" +msgstr "" + +msgid "Progress" +msgstr "" + +msgid "Progress bar left" +msgstr "" + +msgid "Progress bar right" +msgstr "" + +# +msgid "Properties of current title" +msgstr "Eigenskippen fan dizze titel" + +# +msgid "Protect services" +msgstr "Befeilich kanalen" + +# +msgid "Protect setup" +msgstr "Ynstellingen befeiligje" + +# +msgid "Provider" +msgstr "Leveransier" + +# +msgid "Provider to scan" +msgstr "Utstjoerder ôfsykje" + +# +msgid "Providers" +msgstr "Providers" + +msgid "Put TV in standby" +msgstr "" + +msgid "Put receiver in standby" +msgstr "" + +# +msgid "Python frontend for /tmp/mmi.socket" +msgstr "" + +# +msgid "Quick" +msgstr "" + +# +#, fuzzy +msgid "Quick zap" +msgstr "Rapzappe" + +# +msgid "RF output" +msgstr "RF Ynstellingen" + +# +msgid "RGB" +msgstr "RGB" + +# +msgid "Radio" +msgstr "Radio" + +# +#, fuzzy +msgid "Ram disk" +msgstr "Ram Disk" + +# +msgid "Random" +msgstr "" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "" + +msgid "Rating undefined" +msgstr "" + +# +msgid "Really close without saving settings?" +msgstr "Slúte sunder op te slaan ?" + +# +msgid "Really delete done timers?" +msgstr "Ferwiderje diene tiidsbarren?" + +# +msgid "Really exit the subservices quickzap?" +msgstr "De undersender rapzap ôfslúte?" + +# +msgid "Really reboot now?" +msgstr "Wier no kompleet opnei starte ?" + +# +msgid "Really restart now?" +msgstr "Wier no nei starte ?" + +# +msgid "Really shutdown now?" +msgstr "Wier no kompleet útskeakelje ?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "" + +# +msgid "Reboot" +msgstr "kompleet nei starte" + +msgid "Rec" +msgstr "" + +# +#, fuzzy +msgid "Reception settings" +msgstr "Untfangst Ynstellingen" + +# +msgid "Record" +msgstr "Opnimme" + +# +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "" + +# +msgid "Recorded files..." +msgstr "Opnâme bestannen..." + +# +msgid "Recording" +msgstr "An it opnimmen" + +msgid "Recording in progress" +msgstr "" + +# +msgid "Recording paths" +msgstr "" + +msgid "Recording type" +msgstr "" + +# +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "In Opnimmen is dwaande of start binnen in pear sekonden!" + +# +msgid "Recordings" +msgstr "" + +# +msgid "Recordings always have priority" +msgstr "Opnimmen hat altiid foarrang" + +msgid "Red button..." +msgstr "" + +msgid "Reenter new PIN" +msgstr "" + +# +#, fuzzy +msgid "Refresh rate" +msgstr "Fernij faasje" + +# +msgid "Refresh rate selection." +msgstr "Fernij faasje seleksje" + +msgid "Regard deep standby as standby" +msgstr "" + +msgid "Relative" +msgstr "" + +# +msgid "Reload" +msgstr "" + +msgid "Reload black-/white lists" +msgstr "" + +msgid "Reloading bouquets and services..." +msgstr "" + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "" + +msgid "Remember these settings for each folder" +msgstr "" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "" + +# +#, fuzzy +msgid "Remote control type" +msgstr "Alderlik tasjoch type" + +msgid "Removal has completed." +msgstr "" + +# +msgid "Remove" +msgstr "" + +# +msgid "Remove a mark" +msgstr "Ferwiderje in Markeerder" + +# +#, fuzzy +msgid "Remove a nameserver entry" +msgstr "Ferwiderje in nammeserver" + +# +#, fuzzy +msgid "Remove bookmark" +msgstr "boekmerk ferwiderje" + +msgid "Remove completed timers after (days)" +msgstr "" + +# +msgid "Remove currently selected title" +msgstr "Ferwiderje it selektearre bestan" + +msgid "Remove items from trash can after (days)" +msgstr "" + +# +msgid "Remove plugins" +msgstr "Ferwiderje ynstekker" + +# +msgid "Remove title" +msgstr "Ferwiderje de titel" + +# +msgid "Removing" +msgstr "" + +# +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Ferwiderje fan map %s mislearre ( miskien is der net leech )" + +# +#, fuzzy +msgid "Removing partition table" +msgstr "Ferwiderje de titel" + +# +msgid "Rename" +msgstr "Omneame" + +msgid "Repeat" +msgstr "" + +# +#, fuzzy +msgid "Repeat type" +msgstr "Herhelje Type" + +# +msgid "Repeating event currently recording... What do you want to do?" +msgstr "Herhelle barren an it opnimmen... Wat wolle jo dwaan ?" + +# +msgid "Repeats" +msgstr "Herhellingen" + +msgid "Require authentication for http streams" +msgstr "" + +# +msgid "Required medium type:" +msgstr "" + +msgid "Rereading partition table" +msgstr "" + +msgid "Reserved" +msgstr "" + +# +msgid "Reset" +msgstr "Reset" + +# +msgid "Reset and renumerate title names" +msgstr "Titel nammen opnei oanmeitsje en nûmerje.." + +msgid "Reset playback position" +msgstr "" + +# +msgid "Reset video enhancement settings to system defaults?" +msgstr "" + +# +msgid "Reset video enhancement settings to your last configuration?" +msgstr "" + +# +msgid "Resolution" +msgstr "Skermresolusje" + +# +msgid "Restart" +msgstr "Opnij starte" + +# +msgid "Restart GUI now?" +msgstr "GUI no opnij starte?" + +msgid "Restart enigma" +msgstr "" + +# +msgid "Restart network" +msgstr "Netwurk nij starte" + +# +msgid "Restart test" +msgstr "Test nij starte" + +# +msgid "Restart your network connection and interfaces.\n" +msgstr "netwurk oanslúting en interfaces nij starte.\n" + +# +msgid "Restore" +msgstr "Werom sette" + +# +msgid "Restore backups" +msgstr "" + +# +msgid "Restore is running..." +msgstr "" + +# +msgid "Restore system settings" +msgstr "" + +# +#, fuzzy +msgid "Restoring..." +msgstr "an it opnimmen..." + +# +msgid "Resume from last position" +msgstr "Fierder gean fanôf lêste posysje" + +# +#, python-format +msgid "Resume position at %s" +msgstr "" + +# +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Fierder gean mei ôfspieljen" + +# +msgid "Return to movie list" +msgstr "Werom nei de film lyst" + +# +msgid "Return to previous service" +msgstr "Werom nei foariche service" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +# +msgid "Rewind speeds" +msgstr "Werom spiel faasje" + +msgid "Rewrap teletext subtitles" +msgstr "" + +# +msgid "Right" +msgstr "Rjochts" + +msgid "Right from servicename" +msgstr "" + +msgid "Roll-off" +msgstr "" + +msgid "Romanian" +msgstr "" + +msgid "Root directory" +msgstr "" + +msgid "Rotor step position:" +msgstr "" + +# +msgid "Rotor turning speed" +msgstr "Rotor rotaasje faasje" + +msgid "Round start time on" +msgstr "" + +# +msgid "Russian" +msgstr "Russysk" + +# +msgid "S-Video" +msgstr "S Video" + +msgid "SID" +msgstr "" + +# +msgid "SINGLE LAYER DVD" +msgstr "" + +# +msgid "SNR" +msgstr "SNR" + +# +msgid "SNR:" +msgstr "SNR:" + +# +msgid "SSID:" +msgstr "" + +msgid "Same resolution as skin" +msgstr "" + +# +msgid "Sat" +msgstr "Sneon" + +# +msgid "Satellite" +msgstr "Satellyt" + +# +#, fuzzy +msgid "Satellite dish setup" +msgstr "Satellyt ynstellingen" + +# +msgid "Satellite equipment" +msgstr "" + +# +#, fuzzy +msgid "Satellite equipment setup" +msgstr "Satellyt ynstellingen" + +msgid "Satellite longitude:" +msgstr "" + +# +msgid "Satellites" +msgstr "Satellyten" + +# +msgid "Satfinder" +msgstr "Sat syker" + +# +msgid "Sats" +msgstr "Sats" + +# +msgid "Saturation" +msgstr "" + +# +msgid "Saturday" +msgstr "Sneon" + +# +msgid "Save" +msgstr "Opslaan" + +# +#, fuzzy +msgid "Save playlist" +msgstr "ofspiellyst opslaan" + +msgid "Save timeshift file" +msgstr "" + +msgid "Save timeshift file in movie directory" +msgstr "" + +# +msgid "Scaler sharpness" +msgstr "" + +# +#, fuzzy +msgid "Scaling mode" +msgstr "Skaal Moadus" + +msgid "Scan" +msgstr "" + +# +msgid "Scan " +msgstr "Sykje" + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, fuzzy, python-format +msgid "Scan %s" +msgstr "Sykje" + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, fuzzy, python-format +msgid "Scan %s band" +msgstr "Sykje op bân EU MID" + +# +msgid "Scan additional SR" +msgstr "Sykje op in oanfullende SR" + +# +#, fuzzy +msgid "Scan files..." +msgstr "Opnâme bestannen..." + +# +#, fuzzy +msgid "Scan wireless networks" +msgstr "Sykje Triitloaze netwerken" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "" + +#, python-format +msgid "Scanning %s..." +msgstr "" + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "" +msgstr[1] "" + +msgid "Scanning failed!" +msgstr "" + +msgid "Scanning..." +msgstr "" + +# +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "Sykje standert lame dbs, neffens de sattelyt mei in oanslúten panne ôfsteller" + +# +msgid "Search east" +msgstr "Sykje east" + +# +msgid "Search west" +msgstr "Sykje west" + +msgid "Searching" +msgstr "" + +msgid "Searching east ..." +msgstr "" + +# +msgid "Searching for available updates. Please wait..." +msgstr "" + +# +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "" + +msgid "Searching west ..." +msgstr "" + +msgid "Second cable of motorized LNB" +msgstr "" + +# +msgid "Secondary DNS" +msgstr "Twadde DNS" + +# +msgid "Seek" +msgstr "Sykje" + +# +#, fuzzy +msgid "Seek backward" +msgstr "efterút oerslaan" + +# +#, fuzzy +msgid "Seek backward (enter time)" +msgstr "efterút oerslaan (tiid ynjaan)" + +# +#, fuzzy +msgid "Seek forward" +msgstr "foarút oerslaan" + +# +#, fuzzy +msgid "Seek forward (enter time)" +msgstr "foarút oerslaan (tiid ynjaan)" + +# +msgid "Select" +msgstr "" + +# +#, fuzzy +msgid "Select CAId" +msgstr "Kies hurde skiif" + +# +msgid "Select HDD" +msgstr "Kies hurde skiif" + +# +#, fuzzy +msgid "Select a bouquet" +msgstr "Kies in film" + +# +msgid "Select a movie" +msgstr "Kies in film" + +# +#, fuzzy +msgid "Select a network adapter" +msgstr "Kies Netwurk Adapter" + +# +#, fuzzy +msgid "Select a skin" +msgstr "Kies in film" + +# +#, fuzzy +msgid "Select a tuner" +msgstr "Kies in film" + +# +#, fuzzy +msgid "Select a wireless network" +msgstr "Sykje Triitloaze netwerken" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +msgid "Select an image to be downloaded" +msgstr "" + +# +msgid "Select audio track" +msgstr "Kies lûd spoor" + +# +#, fuzzy +msgid "Select backup files" +msgstr "Kies in film" + +# +#, fuzzy +msgid "Select backup location" +msgstr "Kies Lokaasje" + +# +msgid "Select channel to record from" +msgstr "Kies kanaal om fan op te nimmen" + +msgid "Select copy destination for:" +msgstr "" + +msgid "Select default EPG type..." +msgstr "" + +msgid "Select desired image from feed list" +msgstr "" + +msgid "Select destination for:" +msgstr "" + +msgid "Select files for backup." +msgstr "" + +# +msgid "Select files/folders to backup" +msgstr "" + +msgid "Select input device" +msgstr "" + +msgid "Select input device." +msgstr "" + +# +msgid "Select interface" +msgstr "" + +# +#, fuzzy +msgid "Select location" +msgstr "Kies Lokaasje" + +# +#, fuzzy +msgid "Select movie" +msgstr "Kies in film" + +# +msgid "Select provider to add..." +msgstr "" + +# +msgid "Select refresh rate" +msgstr "Kies faasje fan fernije" + +msgid "Select satellites" +msgstr "" + +# +msgid "Select service to add..." +msgstr "" + +msgid "Select sort method:" +msgstr "" + +# +#, fuzzy +msgid "Select target folder" +msgstr "Kies doel map" + +# +#, fuzzy +msgid "Select the movie path" +msgstr "kies it film paad" + +# +#, fuzzy +msgid "Select upgrade source" +msgstr "Kies fideo moadus" + +# +msgid "Select upgrade source to edit." +msgstr "" + +# +msgid "Select video input with up/down buttons" +msgstr "" + +# +msgid "Select video mode" +msgstr "Kies fideo moadus" + +# +msgid "Select wireless network" +msgstr "" + +msgid "Select your provider, and press OK to start the scan" +msgstr "" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +# +msgid "Send DiSEqC only on satellite change" +msgstr "Stjoer DiSEqC alline by feroarjen fan satellyt" + +# +msgid "Separate titles with a main menu" +msgstr "Aparte triemen mei in haad menu" + +# +msgid "Sequence repeat" +msgstr "folch oarde herhelling" + +# +msgid "Serbian" +msgstr "" + +# +msgid "Service" +msgstr "Kanaal ynfo" + +# +msgid "Service has been added to the favourites." +msgstr "Kanaal is tafoege oan favorieten." + +# +msgid "Service has been added to the selected bouquet." +msgstr "Kanaal is tafoege oan selektearre bouquet." + +# +#, fuzzy +msgid "Service info" +msgstr "Kanaal ynformaasje" + +# +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Kanaal net jildig!\n" +"(Tiidsoerskriding lêzen fan PMT)" + +# +#, fuzzy +msgid "Service name" +msgstr "Kanaal sykje" + +# +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Service net fûn!\n" +"(SID net fûn yn PAT)" + +msgid "Service reference" +msgstr "" + +# +msgid "Service scan" +msgstr "Kanaal sykje" + +# +#, fuzzy +msgid "Service searching" +msgstr "Kanalen sykje" + +# +#, fuzzy +msgid "Service title mode" +msgstr "Kies fideo moadus" + +# +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "Kanaal net beskikber!<br> Sjoch tuner ynstellingen nei." + +# +msgid "Services" +msgstr "Kanalen" + +msgid "Set default" +msgstr "" + +# +#, fuzzy +msgid "Set end time" +msgstr "Eintiid" + +msgid "Set fixed" +msgstr "" + +msgid "Set fps for external subtitles" +msgstr "" + +# +msgid "Set interface as default Interface" +msgstr "Set ynterface as standerd ynterface" + +msgid "Set limits" +msgstr "" + +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "" + +msgid "Set time window to 1 hour" +msgstr "" + +msgid "Set time window to 2 hours" +msgstr "" + +msgid "Set time window to 3 hours" +msgstr "" + +msgid "Set time window to 4 hours" +msgstr "" + +msgid "Set time window to 5 hours" +msgstr "" + +msgid "Set time window to 6 hours" +msgstr "" + +# +#, fuzzy +msgid "Set voltage and 22KHz" +msgstr "Set spanning en 22 kHz" + +# +msgid "Settings" +msgstr "Ynstellingen" + +# +msgid "Setup" +msgstr "Ynstelle" + +msgid "Setup menu" +msgstr "" + +# +#, fuzzy +msgid "Setup mode" +msgstr "Ynstellingen Moadus" + +msgid "Setup your positioner" +msgstr "" + +# +#, fuzzy +msgid "Setup your satellite equipment" +msgstr "Satellyt ynstellingen" + +# +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "" + +# +msgid "Sharpness" +msgstr "" + +msgid "Short filenames" +msgstr "" + +msgid "Show EIT now/next in infobar" +msgstr "" + +# +#, fuzzy +msgid "Show EPG for current channel..." +msgstr "Ynfobalke sjen litte by barren wiksel" + +# +#, fuzzy +msgid "Show EPG..." +msgstr "EPG sjen litte..." + +msgid "Show Games show" +msgstr "" + +msgid "Show SNR percentage instead of dB value" +msgstr "" + +msgid "Show VCR scart on main menu" +msgstr "" + +# +#, fuzzy +msgid "Show WLAN status" +msgstr "WLAN status sjen litte" + +msgid "Show animation while busy" +msgstr "" + +# +#, fuzzy +msgid "Show background in radio mode" +msgstr "Eftergrûn ôfbylding" + +msgid "Show bouquet selection menu" +msgstr "" + +msgid "Show busy indicator when the system is busy." +msgstr "" + +msgid "Show channel numbers in channel selection" +msgstr "" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "" + +msgid "Show detailed event info" +msgstr "" + +# +#, fuzzy +msgid "Show event details" +msgstr "EPG details sjen litte" + +# +msgid "Show event-progress in channel selection" +msgstr "" + +# +#, fuzzy +msgid "Show extended description" +msgstr "útbreide beskriuwing sjen litte" + +# +#, fuzzy +msgid "Show extensions..." +msgstr "lit útbreidingen sjen..." + +msgid "Show icon for new/unseen items" +msgstr "" + +msgid "Show in extensions menu" +msgstr "" + +# +#, fuzzy +msgid "Show info" +msgstr "Ynformaasje sjen litte" + +# +#, fuzzy +msgid "Show info line" +msgstr "Infolyne sjen litte" + +# +msgid "Show infobar on channel change" +msgstr "Ynfobalke sjen litte by kanaal wiksel" + +# +msgid "Show infobar on event change" +msgstr "Ynfobalke sjen litte by barren wiksel" + +# +msgid "Show infobar on skip forward/backward" +msgstr "Ynfobalke sjen by rap foarút / efterút" + +msgid "Show latest commits on sourceforge" +msgstr "" + +msgid "Show message when recording starts" +msgstr "" + +# +#, fuzzy +msgid "Show movie lengths in movielist" +msgstr "Laad lengte fan films yn filmlyst" + +msgid "Show multi channel EPG" +msgstr "" + +msgid "Show picons in channel list" +msgstr "" + +# +msgid "Show positioner movement" +msgstr "Rotor beweching sjen litte" + +msgid "Show screensaver" +msgstr "" + +msgid "Show second infobar" +msgstr "" + +msgid "Show service type icons" +msgstr "" + +# +msgid "Show services beginning with" +msgstr "Kanalen sjen litte beginnent mei" + +# +#, fuzzy +msgid "Show shutdown menu" +msgstr "útskeakel menu sjen litte" + +msgid "Show single service EPG" +msgstr "" + +msgid "Show status icons in Movielist" +msgstr "" + +msgid "Show status icons in movie list" +msgstr "" + +msgid "Show status icons in movielist" +msgstr "" + +# +#, fuzzy +msgid "Show tag menu" +msgstr "label menu sjen litte" + +# +msgid "Show the radio player..." +msgstr "Radio spieler sjen litte..." + +# +msgid "Show the tv player..." +msgstr "TV Spieler sjen litte..." + +msgid "Show warning when timeshift is stopped" +msgstr "" + +# +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Status fan WLAN sjen litte.\n" + +# +#, fuzzy +msgid "Shuffle playlist" +msgstr "meitsje willekeurige ôfspiellyst" + +# +msgid "Shutdown" +msgstr "" + +msgid "Shutdown when in Standby" +msgstr "" + +msgid "Side by side" +msgstr "" + +msgid "Signal OK, proceeding" +msgstr "" + +msgid "Signal quality" +msgstr "" + +msgid "Signal strength:" +msgstr "" + +# +msgid "Signal: " +msgstr "" + +# +msgid "Similar" +msgstr "Gelykese" + +# +msgid "Similar broadcasts:" +msgstr "Gelykese utsjoeringen" + +# +msgid "Simple" +msgstr "Simpel" + +# +msgid "Simple titleset (compatibility for legacy players)" +msgstr "Simpele titelset (ek geskikt foar standaard spielers)" + +# +msgid "Single" +msgstr "Inkel" + +# +msgid "Single EPG" +msgstr "Inkele EPG" + +# +msgid "Single satellite" +msgstr "Ien satellyt" + +# +#, fuzzy +msgid "Single step (GOP)" +msgstr "Ien stap (GOP)" + +# +msgid "Single transponder" +msgstr "Ien transponder" + +msgid "Site latitude" +msgstr "" + +msgid "Site longitude" +msgstr "" + +# +msgid "Skin" +msgstr "" + +# +msgid "Skins" +msgstr "" + +# +#, fuzzy +msgid "Skip empty services" +msgstr "Befeilich kanalen" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "" + +# +#, fuzzy +msgid "Sleep timer" +msgstr "Tiidstjoering" + +msgid "SleepTimer Configuration" +msgstr "" + +msgid "Sleeptimer" +msgstr "" + +# +#, fuzzy +msgid "Slide picture in loop" +msgstr "Plaatjes efter mekoar sjen litte" + +# +#, fuzzy +msgid "Slide show interval (sec.)" +msgstr "Slide foarstelling tiid (sec.)" + +# +#, python-format +msgid "Slot %d" +msgstr "Slot %d" + +msgid "Slovak" +msgstr "" + +# +msgid "Slovenian" +msgstr "" + +# +msgid "Slow" +msgstr "Langsaam" + +# +#, fuzzy +msgid "Slow motion speeds" +msgstr "Langsaam beweechjen faasje" + +# +#, fuzzy +msgid "Small progress" +msgstr "Dwaande" + +msgid "Social/Political/Economics" +msgstr "" + +msgid "SoftCam / CI" +msgstr "" + +msgid "Softcam type" +msgstr "" + +# +msgid "Software" +msgstr "" + +# +msgid "Software management" +msgstr "" + +msgid "Software manager setup" +msgstr "" + +# +msgid "Software restore" +msgstr "" + +# +msgid "Software update" +msgstr "" + +msgid "Softwaremanager information" +msgstr "" + +# +msgid "Some plugins are not available:\n" +msgstr "Inkele ynstekkers binne net anwêzig:\n" + +#, python-format +msgid "Sorry, %s has not been installed!" +msgstr "" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "" + +msgid "Sorry, no backups found!" +msgstr "" + +msgid "Sorry, no details available!" +msgstr "" + +# +#, fuzzy +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"Sorry.. Jo Reserve kopie plak bestiit net\n" +"\n" +"Kies in oar plak aub..." + +msgid "Sort" +msgstr "" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Sorteer op A-Z" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +#, fuzzy +msgid "Sort time" +msgstr "Sorteer op Tiid" + +# +msgid "Sound" +msgstr "Lûd" + +# +#, fuzzy +msgid "Sound carrier" +msgstr "Lûd-drager" + +msgid "Source request" +msgstr "" + +# +msgid "South" +msgstr "Sud" + +# +msgid "Spanish" +msgstr "Spaans" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +# +msgid "Split preview mode" +msgstr "" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "" + +# +#, fuzzy +msgid "Standard" +msgstr "standert" + +msgid "Standart list" +msgstr "" + +# +msgid "Standby" +msgstr "Paraatmode" + +# +#, fuzzy +msgid "Standby / restart" +msgstr "Paraatmode / Nijstart" + +msgid "Standby after current event" +msgstr "" + +#, python-format +msgid "Standby fan %d PWM" +msgstr "" + +#, python-format +msgid "Standby fan %d voltage" +msgstr "" + +msgid "Standby in " +msgstr "" + +msgid "StandbyLED" +msgstr "" + +# +msgid "Start from the beginning" +msgstr "Start fanôf it begjin" + +msgid "Start offline decode" +msgstr "" + +# +msgid "Start recording?" +msgstr "Start opnimmen?" + +# +msgid "Start test" +msgstr "Start test" + +# +#, fuzzy +msgid "Start time" +msgstr "Starttiid" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +# +#, fuzzy +msgid "Start timeshift" +msgstr "tiidskowen starte" + +msgid "Start with list screen" +msgstr "" + +# +msgid "Starting on" +msgstr "Starte op" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +# +msgid "Step east" +msgstr "Stap nei east" + +# +msgid "Step west" +msgstr "Stap nei west" + +msgid "Stepped east" +msgstr "" + +msgid "Stepped west" +msgstr "" + +# +msgid "Stop" +msgstr "Stop" + +# +#, fuzzy +msgid "Stop PiP" +msgstr "stopje PiP" + +# +msgid "Stop current event and disable coming events" +msgstr "Stopje hjoeddeiske en ankommend barren" + +# +msgid "Stop current event but not coming events" +msgstr "Stopje hjoeddeiske mar net ankommend barren" + +# +#, fuzzy +msgid "Stop entry" +msgstr "stopje rigele" + +# +msgid "Stop playing this movie?" +msgstr "Stopje ôfspieljen fan dizze film?" + +msgid "Stop recording" +msgstr "" + +msgid "Stop recording and delete" +msgstr "" + +msgid "Stop service on return to movie list" +msgstr "" + +# +msgid "Stop test" +msgstr "Stop test" + +# +msgid "Stop testing plane after # failed transponders" +msgstr "" + +# +msgid "Stop testing plane after # successful transponders" +msgstr "" + +msgid "Stop timer recording" +msgstr "" + +# +#, fuzzy +msgid "Stop timeshift" +msgstr "tiidskowen stopje" + +# +#, fuzzy +msgid "Stop timeshift?" +msgstr "Tiidsskowen stopje?" + +msgid "Stopped" +msgstr "" + +msgid "Store at index" +msgstr "" + +# +msgid "Store position" +msgstr "Posysje opslaan" + +# +msgid "Stored position" +msgstr "Opsleine posysje" + +msgid "Stream" +msgstr "" + +msgid "Stream request" +msgstr "" + +msgid "Strongest position" +msgstr "" + +# +msgid "Subservice list..." +msgstr "UnderSender lyst..." + +# +msgid "Subservices" +msgstr "UnderSender" + +msgid "Subtitle Quickmenu" +msgstr "" + +# +#, fuzzy +msgid "Subtitle alignment" +msgstr "Undertitel seleksje" + +msgid "Subtitle border width" +msgstr "" + +msgid "Subtitle delay when timing is bad" +msgstr "" + +msgid "Subtitle delay when timing lacks" +msgstr "" + +# +#, fuzzy +msgid "Subtitle font size" +msgstr "Undertitels" + +msgid "Subtitle language selection 1" +msgstr "" + +msgid "Subtitle language selection 2" +msgstr "" + +msgid "Subtitle language selection 3" +msgstr "" + +msgid "Subtitle language selection 4" +msgstr "" + +# +#, fuzzy +msgid "Subtitle position" +msgstr "Undertitel seleksje" + +# +msgid "Subtitle selection" +msgstr "Undertitel seleksje" + +msgid "Subtitle selection..." +msgstr "" + +msgid "Subtitle settings" +msgstr "" + +# +msgid "Subtitles" +msgstr "Undertitels" + +# +msgid "Sun" +msgstr "Sne" + +# +msgid "Sunday" +msgstr "Snein" + +# +#, fuzzy +msgid "Swap PiP and main picture" +msgstr "Pip en haad skerm wikselje" + +# +#, fuzzy +msgid "Swap services" +msgstr "Kanalen wikselje" + +# +msgid "Swedish" +msgstr "Zweeds" + +msgid "Switch TV to correct input" +msgstr "" + +msgid "Switch between filelist/playlist" +msgstr "" + +msgid "Switch between normal mode and list mode" +msgstr "" + +msgid "Switch to HDMI in mode" +msgstr "" + +# +#, fuzzy +msgid "Switch to filelist" +msgstr "skeakelje nei triemlyst" + +msgid "Switch to next channel" +msgstr "" + +# +#, fuzzy +msgid "Switch to next channel in history" +msgstr "set folgende kanaal in skiednis" + +# +#, fuzzy +msgid "Switch to next sub service" +msgstr "Gjin nei folgende undersender" + +# +#, fuzzy +msgid "Switch to playlist" +msgstr "skeakelje nei ofspiellyst" + +# +#, fuzzy +msgid "Switch to previous channel" +msgstr "Gjin nei foarige undersender" + +# +#, fuzzy +msgid "Switch to previous channel in history" +msgstr "set foarich kanaal yn skiednis" + +# +#, fuzzy +msgid "Switch to previous sub service" +msgstr "Gjin nei foarige undersender" + +# +msgid "Switchable tuner types:" +msgstr "" + +msgid "Symbol rate" +msgstr "" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "" + +# +msgid "System" +msgstr "Systeem" + +# +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "Oersetter ynfo" + +# +msgid "TS file is too large for ISO9660 level 1!" +msgstr "TS triem is te grut foar ISO 9660 level 1!" + +msgid "TSID" +msgstr "" + +msgid "TV physical address report" +msgstr "" + +msgid "TXT PID" +msgstr "" + +# +#, fuzzy +msgid "Table of contents for collection" +msgstr "Ynhalds tabel foar kolleksje" + +# +msgid "Tags" +msgstr "Merkers" + +msgid "Teletext subtitle color" +msgstr "" + +# +#, fuzzy +msgid "Temperature and fan control" +msgstr "Alderlik tasjoch" + +# +msgid "Terrestrial" +msgstr "Ether" + +# +msgid "Terrestrial provider" +msgstr "Ether útstjoerder" + +# +msgid "Test DiSEqC settings" +msgstr "" + +# +msgid "Test mode" +msgstr "Test moadus" + +msgid "Test the network configuration of your receiver.\n" +msgstr "" + +# +#, fuzzy +msgid "Test type" +msgstr "Test moadus" + +# +#, fuzzy +msgid "Text color" +msgstr "tekst kleur" + +msgid "Thai" +msgstr "" + +# +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" + +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "" + +msgid "The PIN code has been changed successfully." +msgstr "" + +msgid "The PIN codes you entered are different." +msgstr "" + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" + +# +msgid "The backup failed. Please choose a different backup location." +msgstr "Backup is mislearre. Kies in oare backup lokaasje." + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" + +# +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" + +# +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"It folgende apparaat wie fûn:\n" +"\n" +"%s\n" +"\n" +"Wolle jo de USB flasher nei dizze stick skriuwe ?" + +# +msgid "The following files were found..." +msgstr "" + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "" + +# +#, fuzzy +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"De WLAN ynstekker is net ynstallearre!\n" +"Ynstallearje dizze earst." + +# +#, python-format +msgid "The path %s already exists." +msgstr "It paad %s bestiit al." + +# +msgid "The pin code you entered is wrong." +msgstr "De ynjûne pinkode is ferkeard." + +# +#, python-format +msgid "The results have been written to %s." +msgstr "" + +# +msgid "The sleep timer has been activated." +msgstr "De sliep tiid klok is aktiveert." + +# +msgid "The sleep timer has been disabled." +msgstr "De sliep tiid klok is útskeakele" + +# +#, fuzzy +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"De WLAN ynstekker is net ynstallearre!\n" +"Ynstallearje dizze earst." + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "" + +# +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "De tiidsbarrenlyst is korrupt en koe net laden wurde." + +# +#, fuzzy +msgid "The user interface of your receiver is restarting" +msgstr "Wachtsje oant it netwurk opnei start is..." + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"De WLAN ynstekker is net ynstallearre!\n" +"Ynstallearje dizze earst." + +# +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "De gucheler kin jo ynstellingen efterút sette. Wolle jo no een backup meitsje ?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "" + +# +msgid "The wizard is finished now." +msgstr "De gucheler is klear." + +# +msgid "There are at least " +msgstr "" + +#, python-format +msgid "There are at least %s updates available." +msgstr "" + +# +msgid "There are currently no outstanding actions." +msgstr "" + +# +msgid "There are no updates available." +msgstr "" + +msgid "There is no signal to lock on !" +msgstr "" + +# +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"Blikber is der net genôch rûmte op de koazen partysje.\n" +"Wolle jo trochgean ?" + +# +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "Dit DVD RW medium is al formattearre. Wer opnei dwaan sil alle gegevens op disk wiskje." + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" + +# +msgid "This plugin is installed." +msgstr "" + +# +msgid "This plugin is not installed." +msgstr "" + +# +msgid "This plugin will be installed." +msgstr "" + +# +msgid "This plugin will be removed." +msgstr "" + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "" + +# +#, fuzzy +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"Dizze test sjocht nei ynstelde nammeservers.\n" +"Krije jo in \"net befestige\" berjocht :\n" +"- Sjoch nei de DHCP, kabels/tridden en adapter ynstellingen\n" +"- By hânmatig ynstellen fan nammeservers, sjoch nei de ynjeftes yn de \"nammeservers\" konfiguraasje" + +# +#, fuzzy +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Dizze test sjocht nei in oanslúten LAN adapter.\n" +"Krije jo in \"net oanslúten\" berjocht :\n" +"- Sjoch nei wol of net oanslúten kabels/tridden\n" +"- Sjoch ot de kabel miskien net brutsen is" + +# +#, fuzzy +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Dizze test sjocht nei ynstelde IP adressen foar de LAN adapter.\n" +"Krije jo in \"net befestige\" berjocht :\n" +"- Is der in jildig IP adres ynstelt ?\n" +"- Sjoch nei de DHCP, kabels/tridden en adapter ynstellingen" + +# +#, fuzzy +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"Dizze test sjocht ot de LAN adapter ynsteld is foar automatysk IP Adres ferkrije troch DHCP.\n" +"Krije jo in \"útskeakele\" berjocht :\n" +"- In hânmatig IP adres is ynstelt ?\n" +"- Is de ynjûne IP ynformaasje goed, yn it Adapterynstellingen menu ?\n" +"Krije jo in \"ynskeakele\" berjocht :\n" +"- Is der ek een DHCP server aktyf yn jo netwurk ?" + +# +#, fuzzy +msgid "This test detects your configured LAN adapter." +msgstr "Dizze test syket nei de ynstelde LAN-Adapter" + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" + +# +msgid "Three" +msgstr "Trije" + +# +msgid "Threshold" +msgstr "Drompel" + +# +msgid "Thu" +msgstr "Tong" + +# +msgid "Thumbnails" +msgstr "Tumkegrutte" + +# +msgid "Thursday" +msgstr "Tongersdei" + +# +msgid "Time" +msgstr "Tiid" + +# +#, fuzzy +msgid "Time scale" +msgstr "Tiidsbarren seleksje" + +# +msgid "Timer" +msgstr "Tiidssjtoering" + +msgid "Timer Overview" +msgstr "" + +# +#, fuzzy +msgid "Timer edit" +msgstr "Tiidsbarren bewurkje" + +# +#, fuzzy +msgid "Timer editor" +msgstr "Tiidsbarren bewurker" + +# +msgid "Timer entry" +msgstr "Tiidsbarren item" + +# +msgid "Timer log" +msgstr "Tiidsbarren log" + +# +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"Tiidstjoerings conflicten fûn yn timers.xml\n" +"Graach nei sjen en meitsje!" + +# +#, fuzzy +msgid "Timer overview" +msgstr "Tiidsbarren item" + +# +#, fuzzy +msgid "Timer recording location" +msgstr "feroarje opnim tiiden" + +# +msgid "Timer sanity error" +msgstr "Tiidsbarren kontrole flater" + +# +msgid "Timer selection" +msgstr "Tiidsbarren seleksje" + +msgid "Timer selection..." +msgstr "" + +# +#, fuzzy +msgid "Timer type" +msgstr "Tiidsbarren type" + +# +msgid "Timeshift" +msgstr "Tiidsskowen" + +msgid "Timeshift Live" +msgstr "" + +# +msgid "Timeshift location" +msgstr "" + +# +msgid "Timeshift not possible!" +msgstr "Tiidsskowen is net mooglik !" + +# +msgid "Timezone" +msgstr "Tiidszone" + +# +msgid "Title" +msgstr "Titel" + +# +msgid "Title properties" +msgstr "Titel eigenskippen" + +# +msgid "Titleset mode" +msgstr "Titelset moadus" + +msgid "To audio selection" +msgstr "" + +msgid "To subtitle selection" +msgstr "" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" + +# +msgid "Today" +msgstr "Hjoed" + +# +#, fuzzy +msgid "Toggle a cut mark at the current position" +msgstr "merker oan/út op dizze posysje" + +# +#, fuzzy +msgid "Tone amplitude" +msgstr "Toan moadus" + +# +msgid "Tone mode" +msgstr "Toan moadus" + +# +msgid "Toneburst" +msgstr "Toan piek" + +# +msgid "Toneburst A/B" +msgstr "Toneburst A/B" + +msgid "Top and bottom" +msgstr "" + +# +msgid "Track" +msgstr "Nummer" + +# +msgid "Translation" +msgstr "Oersetting" + +# +msgid "Translation:" +msgstr "Oersetting:" + +msgid "Translations" +msgstr "" + +# +msgid "Transmission mode" +msgstr "Oerstjoeren type" + +# +msgid "Transponder" +msgstr "Transponder" + +# +#, fuzzy +msgid "Transponder type" +msgstr "Transponder type" + +msgid "Trash can" +msgstr "" + +# +msgid "Tries left:" +msgstr "Oantal kearen besykjen oer:" + +# +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Besykje brûkte transponders te finen yn kabel netwurk.. " + +# +msgid "Trying to download a new packetlist. Please wait..." +msgstr "" + +# +msgid "Tue" +msgstr "Tiis" + +# +msgid "Tuesday" +msgstr "Tiisdei" + +# +msgid "Tune" +msgstr "Ofstimme" + +# +#, fuzzy +msgid "Tune and focus" +msgstr "Tuner status" + +# +msgid "Tune failed!" +msgstr "Ofstimme mislearre !" + +# +msgid "Tuner" +msgstr "Tuner" + +# +msgid "Tuner configuration" +msgstr "Tuner ynstellingen" + +msgid "Tuner is not supported" +msgstr "" + +# +#, fuzzy +msgid "Tuner slot" +msgstr "Tuner Slot" + +# +msgid "Tuner status" +msgstr "Tuner status" + +# +#, fuzzy, python-format +msgid "Tuner status %s" +msgstr "Tuner status" + +# +msgid "Tuner type" +msgstr "" + +# +msgid "Turkish" +msgstr "Turks" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +# +msgid "Two" +msgstr "Twa" + +# +msgid "Type" +msgstr "" + +# +msgid "Type of scan" +msgstr "Type fan sykjen" + +# +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "" + +# +#, fuzzy +msgid "USB stick" +msgstr "USB Stick" + +# +msgid "USB stick wizard" +msgstr "USB stick gûcheler" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +# +msgid "Undo install" +msgstr "" + +# +msgid "Undo uninstall" +msgstr "" + +msgid "Unencrypted" +msgstr "" + +# +msgid "UnhandledKey" +msgstr "" + +# +msgid "Unicable" +msgstr "" + +# +msgid "Unicable LNB" +msgstr "" + +# +msgid "Unicable Martix" +msgstr "" + +# +msgid "Uninstall" +msgstr "" + +# +msgid "Universal LNB" +msgstr "Unifersele LNB" + +msgid "Unknown" +msgstr "" + +msgid "Unmount" +msgstr "" + +# +msgid "Unsupported" +msgstr "" + +# +msgid "Update" +msgstr "Bywurkje" + +msgid "Update and ask to reboot" +msgstr "" + +msgid "Update and reboot (recommended)" +msgstr "" + +# +#, fuzzy +msgid "Update channel list only" +msgstr "set folgende kanaal in skiednis" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "" +msgstr[1] "" + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "" + +msgid "Update has completed." +msgstr "" + +# +msgid "Updatefeed not available." +msgstr "" + +# +msgid "Updating software catalog" +msgstr "" + +# +msgid "Upgrading" +msgstr "An it bywurkjen" + +# +msgid "Use" +msgstr "Brûk" + +# +msgid "Use DHCP" +msgstr "DHCP brûke" + +msgid "Use EIT EPG information when it is available." +msgstr "" + +msgid "Use FreeSat EPG information when it is available." +msgstr "" + +msgid "Use MHW EPG information when it is available." +msgstr "" + +msgid "Use Netmed EPG information when it is available." +msgstr "" + +msgid "Use TV remote control" +msgstr "" + +# +#, fuzzy +msgid "Use USALS for this sat" +msgstr "USALS foar dizze satellyt brûke" + +msgid "Use ViaSat EPG information when it is available." +msgstr "" + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +# +msgid "Use a gateway" +msgstr "In gateway brûke" + +msgid "Use fastscan channel names" +msgstr "" + +msgid "Use fastscan channel numbering" +msgstr "" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "" + +# +#, fuzzy +msgid "Use interface" +msgstr "Brûk ynterface" + +msgid "Use official channel numbering" +msgstr "" + +msgid "Use original DVB subtitle position" +msgstr "" + +msgid "Use original teletext position" +msgstr "" + +# +msgid "Use power measurement" +msgstr "Fermogensmjitting brûke" + +# +#, fuzzy +msgid "Use the network wizard to configure selected network adapter" +msgstr "Bruk de netwurk gûcheler om it netwurk yn te stellen\n" + +# +#, fuzzy +msgid "Use the network wizard to configure your network\n" +msgstr "Bruk de netwurk gûcheler om it netwurk yn te stellen\n" + +# +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "Knoppen op en del brûke om in opsje te kiezen. Dêrnei druk Ok" + +# +#, fuzzy +msgid "Use the wizard to set up basic features" +msgstr "Gucheler foar basis ynstellingen brûke" + +# +#, fuzzy +msgid "Use these input device settings?" +msgstr "Slúte sunder op te slaan ?" + +# +#, fuzzy +msgid "Use these settings?" +msgstr "Nammeserver ynstellingen" + +# +msgid "Use this video enhancement settings?" +msgstr "" + +# +#, fuzzy +msgid "Use trash can in movielist" +msgstr "Werom nei de film lyst" + +# +msgid "Used service scan type" +msgstr "Brukte type kanaal sykjen" + +msgid "User - bouquets" +msgstr "" + +# +msgid "User defined" +msgstr "Gebruker ynstelling" + +msgid "User defined transponder" +msgstr "" + +# +#, fuzzy +msgid "User interface" +msgstr "Brûk ynterface" + +# +msgid "Username" +msgstr "" + +#, python-format +msgid "Using LNB %d" +msgstr "" + +msgid "Using fixed address" +msgstr "" + +#, python-format +msgid "Using tuner %s" +msgstr "" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "" + +# +msgid "VCR scart" +msgstr "VCR scart" + +# +msgid "VMGM (intro trailer)" +msgstr "VMGM (yntro fan film)" + +# +msgid "Vertical" +msgstr "" + +msgid "Vertical turning speed" +msgstr "" + +msgid "Video PID" +msgstr "" + +# +msgid "Video enhancement preview" +msgstr "" + +# +msgid "Video enhancement settings" +msgstr "" + +# +msgid "Video enhancement setup" +msgstr "" + +# +#, fuzzy +msgid "Video fine tuning" +msgstr "Fideo fyn ynstellen" + +# +#, fuzzy +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Fideo yngong seleksje\n" +"\n" +"Druk OK wannear jo dit sjen kinne op jo TV (of kies in oare yngong).\n" +"\n" +"De folgende yngong wurd automatysk probearre yn 10 seconden." + +# +msgid "Video mode selection." +msgstr "Fideo moadus seleksje" + +# +#, fuzzy +msgid "Video output" +msgstr "Fideo útgong" + +# +#, fuzzy +msgid "Video setup" +msgstr "Fideo ynstellingen" + +# +#, fuzzy +msgid "Video wizard" +msgstr "Fideo gucheler" + +#, python-format +msgid "Video: %s fps" +msgstr "" + +msgid "VideoMode" +msgstr "" + +msgid "Videocodec" +msgstr "" + +msgid "Videoformat" +msgstr "" + +msgid "Videosize" +msgstr "" + +# +msgid "View Rass interactive..." +msgstr "Rass interaktief sjen litte" + +# +msgid "View details" +msgstr "" + +# +msgid "View list of available " +msgstr "" + +# +msgid "View list of available CommonInterface extensions" +msgstr "" + +# +msgid "View list of available EPG extensions." +msgstr "" + +# +msgid "View list of available Satellite equipment extensions." +msgstr "" + +# +msgid "View list of available communication extensions." +msgstr "" + +# +msgid "View list of available default settings" +msgstr "" + +msgid "View list of available display and userinterface extensions." +msgstr "" + +# +msgid "View list of available multimedia extensions." +msgstr "" + +# +msgid "View list of available networking extensions" +msgstr "" + +# +msgid "View list of available recording extensions" +msgstr "" + +# +msgid "View list of available skins" +msgstr "" + +# +msgid "View list of available software extensions" +msgstr "" + +# +msgid "View list of available system extensions" +msgstr "" + +# +#, fuzzy +msgid "View photos..." +msgstr "lit útbreidingen sjen..." + +# +msgid "View teletext..." +msgstr "tiletekst toane..." + +msgid "View video CD..." +msgstr "" + +# +#, fuzzy +msgid "Virtual keyboard" +msgstr "Virtueel Toetseboerd" + +# +msgid "Voltage mode" +msgstr "Spanning mode" + +# +msgid "Volume" +msgstr "Lûdsterkte" + +# +msgid "W" +msgstr "W" + +# +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "" + +# +msgid "WPA" +msgstr "WPA" + +# +msgid "WPA or WPA2" +msgstr "WPA of WPA2" + +# +msgid "WPA2" +msgstr "WPA2" + +# +msgid "WSS on 4:3" +msgstr "WSS by 4:3" + +# +msgid "Waiting" +msgstr "Oan it wachtsjen" + +msgid "Waiting for mount" +msgstr "" + +msgid "Waiting for partition" +msgstr "" + +msgid "Wakeup" +msgstr "" + +msgid "Wakeup TV from standby" +msgstr "" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "" + +msgid "Wakeup signal from TV" +msgstr "" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "" + +# +#, fuzzy +msgid "Watch movies..." +msgstr "Opname films ôfspielje..." + +# +#, fuzzy +msgid "Watch recordings..." +msgstr "an it opnimmen..." + +# +msgid "Wed" +msgstr "Woa" + +# +msgid "Wednesday" +msgstr "Woansdei" + +# +msgid "Weekday" +msgstr "Wiekdei" + +msgid "Weighted position" +msgstr "" + +# +#, fuzzy +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"Wolkom by de Cutlist bewurker.\n" +"\n" +"Sykje oant it begjin fan wat jo fuorthelje wolle. Druk OK, kies start cut.\n" +"\n" +"Dan kies oant it ein, druk OK, kies ein cut. Klear.." + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" + +# +msgid "Welcome..." +msgstr "Wolkom..." + +# +msgid "West" +msgstr "West" + +msgid "West limit set" +msgstr "" + +# +msgid "What do you want to scan?" +msgstr "Wat wolle jo ôfsykje ?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "" + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "" + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "" + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "" + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "" + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "" + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "" + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "" + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "" + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "" + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "" + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "" + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "" + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "" + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "" + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "" + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "" + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "" + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "" + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "" + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "" + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "" + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "" + +msgid "When enabled, number markers will be hiden." +msgstr "" + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "" + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "" + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "" + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "" + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "" + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "" + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "" + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "" + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "" + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "" + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "" + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "" + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "" + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "" + +# +#, fuzzy +msgid "When enabled, use DHCP for the IP configuration." +msgstr "Iepenje nammeserver konfiguraasje" + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "" + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "" + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "" + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "" + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "" + +# +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" + +# +msgid "Where do you want to backup your settings?" +msgstr "Wêr wolle jo de gegevens opslaan?" + +# +msgid "Where to save temporary timeshift recordings?" +msgstr "Wêr moatte it opnimmen mei tiidsferskowing opslein wurde ?" + +# +msgid "Wireless LAN" +msgstr "" + +# +#, fuzzy +msgid "Wireless network" +msgstr "Triidloas netwurk" + +# +#, fuzzy +msgid "Wireless network configuration..." +msgstr "Netwurk configuraasje" + +msgid "Wireless network connection setup" +msgstr "" + +msgid "Wireless network connection setup." +msgstr "" + +msgid "Wireless network state" +msgstr "" + +msgid "With popup" +msgstr "" + +msgid "Without popup" +msgstr "" + +msgid "Would you like to install a softcam?" +msgstr "" + +# +msgid "Write error while recording. Disk full?\n" +msgstr "Skriuw flater by it opnimmen. Skiif fol ?\n" + +# +msgid "Write failed!" +msgstr "Skriuw flater!" + +# +msgid "YPbPr" +msgstr "YPbPr" + +# +msgid "Year" +msgstr "Jier" + +msgid "Yellow DVB subtitles" +msgstr "" + +# +msgid "Yes" +msgstr "Ja" + +msgid "Yes and save" +msgstr "" + +msgid "Yes and save in movie dir" +msgstr "" + +# +msgid "Yes to all" +msgstr "" + +msgid "Yes, always" +msgstr "" + +# +msgid "Yes, and delete this movie" +msgstr "Ja, en ferwiderje dizze film" + +# +msgid "Yes, backup my settings!" +msgstr "Ja, myn ynstellingen extra bewarje" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +# +msgid "Yes, do a manual scan now" +msgstr "Ja, no hânmatig sykje" + +# +msgid "Yes, do an automatic scan now" +msgstr "Ja, no automatysk sykje" + +# +msgid "Yes, do another manual scan now" +msgstr "Ja, no nochris hânmatig sykje" + +# +msgid "Yes, perform a shutdown now." +msgstr "Ja, no útskeakelje" + +# +msgid "Yes, restore the settings now" +msgstr "Ja, no de ynstellingen werom sette" + +# +msgid "Yes, returning to movie list" +msgstr "Ja, werom nei de film lyst" + +msgid "Yesterday" +msgstr "" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" + +# +msgid "You can cancel the installation." +msgstr "" + +# +msgid "You can cancel the removal." +msgstr "" + +msgid "You can continue watching TV etc. while this is running." +msgstr "" + +# +msgid "You can install this plugin." +msgstr "" + +msgid "You can only burn receiver recordings!" +msgstr "" + +# +msgid "You can remove this plugin." +msgstr "" + +# +msgid "You cannot delete this!" +msgstr "Jo kinne dit net ferwiderje!" + +msgid "You didn't select a channel to record from." +msgstr "" + +# +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "" + +# +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "Jo hawwe koazen in neie .NFI opstart USB stick te meitsjen. Dit sil de USB opnei partitionearje en sa sil alle data ferlên gean." + +# +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "" + +# +#, python-format +msgid "You have to wait %s!" +msgstr "Jo moatte %s wachtsje!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" + +msgid "You system does not support ext4" +msgstr "" + +# +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "It extra bewarjen is slagge. Wy gjinne jo fierder mei utlizzen fan it bywurk proces." + +# +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "" + +# +msgid "Your current collection will get lost!" +msgstr "" + +# +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"Jo foarprocessor software moat bywurke wurde\n" +"Druk Ok om te begjinnen." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +# +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "" + +# +msgid "Your network configuration has been activated." +msgstr "Netwurk ynstellingen binne no aktief." + +msgid "Your receiver does not have an internet connection" +msgstr "" + +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" + +msgid "Your receiver is rebooting" +msgstr "" + +msgid "Your receiver is shutting down" +msgstr "" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "" + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "" + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "" + +msgid "Your receiver will got to standby due to inactivity." +msgstr "" + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "" + +# +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" + +msgid "Zap" +msgstr "" + +# +msgid "Zap back to previously tuned service?" +msgstr "" + +# +msgid "Zap back to service before positioner setup?" +msgstr "Werom zappe nei kanaal foar rotor ynstellingen?" + +# +msgid "Zap back to service before tuner setup?" +msgstr "" + +msgid "Zap focus to Picture in Picture" +msgstr "" + +msgid "Zap focus to main screen" +msgstr "" + +msgid "Zap mode" +msgstr "" + +msgid "Zap to selected channel" +msgstr "" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "" + +# +msgid "[alternative edit]" +msgstr "[alternatief bewurkje]" + +# +msgid "[bouquet edit]" +msgstr "[bouquet bewurkje]" + +# +msgid "[favourite edit]" +msgstr "[favorieten bewurkje]" + +# +msgid "[move mode]" +msgstr "[Ferpleats moadus]" + +# +msgid "a gui to assign services/providers to common interface modules" +msgstr "" + +# +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "" + +# +msgid "abort alternatives edit" +msgstr "alternatieven bewurkjen ôfbrekke" + +# +msgid "abort bouquet edit" +msgstr "boeket bewurkjen ôfbrekke" + +# +msgid "abort favourites edit" +msgstr "favoriet bewurkje ôfbrekke" + +# +msgid "about to start" +msgstr "op it punt om te starten" + +# +msgid "activate network adapter configuration" +msgstr "" + +# +msgid "add alternatives" +msgstr "alernatief tafoegje" + +# +msgid "add bookmark" +msgstr "boekmerk tafoegje" + +# +msgid "add bouquet" +msgstr "boeket tafoegje" + +# +msgid "add marker" +msgstr "marker tafoegje" + +# +msgid "add service to bouquet" +msgstr "kanaal tafoegje oan bouquet" + +# +msgid "add service to favourites" +msgstr "kanaal tafoegje oan favorieten" + +# +msgid "add to parental protection" +msgstr "âlderlik tasjoch tafoegje " + +msgid "adult movie/drama" +msgstr "" + +# +msgid "advanced" +msgstr "afansjearre" + +msgid "adventure/western/war" +msgstr "" + +msgid "advertisement/shopping" +msgstr "" + +msgid "after " +msgstr "" + +# +#, fuzzy +msgid "alphabetic" +msgstr "sortearje op alfabet" + +msgid "alphabetic reverse" +msgstr "" + +msgid "alternative" +msgstr "" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "" + +msgid "arts/culture magazine" +msgstr "" + +msgid "athletics" +msgstr "" + +# +msgid "audio tracks" +msgstr "audio spoor" + +# +msgid "auto" +msgstr "auto" + +# +#, fuzzy +msgid "automatic" +msgstr "Automatysk" + +# +msgid "back" +msgstr "werom" + +# +msgid "background image" +msgstr "Eftergrûn ôfbylding" + +msgid "ballet" +msgstr "" + +#, python-format +msgid "bc%s" +msgstr "" + +# +msgid "better" +msgstr "better" + +# +msgid "black" +msgstr "swart" + +msgid "black & white" +msgstr "" + +# +msgid "blacklist" +msgstr "swarte lyst" + +# +msgid "blue" +msgstr "blauw" + +msgid "broadcasting/press" +msgstr "" + +# +#, fuzzy +msgid "by date" +msgstr "sortearje op datum" + +msgid "cartoon/puppets" +msgstr "" + +msgid "center" +msgstr "" + +msgid "centered" +msgstr "" + +msgid "centered, wrapped" +msgstr "" + +# +msgid "chapters" +msgstr "Haadstikken" + +msgid "childrens's/youth program (general)" +msgstr "" + +# +msgid "circular left" +msgstr "circular links" + +# +msgid "circular right" +msgstr "circular rjochts" + +msgid "comedy" +msgstr "" + +# +msgid "complex" +msgstr "complex" + +# +msgid "config menu" +msgstr "konfiguraasje menu" + +# +msgid "confirmed" +msgstr "befestigt" + +# +msgid "connected" +msgstr "oanslúten" + +# +msgid "continue" +msgstr "gjea fierder" + +msgid "cooking" +msgstr "" + +# +msgid "copy to bouquets" +msgstr "kopieer nei boeketten" + +# +msgid "create directory" +msgstr "map meitsje" + +#, python-format +msgid "currently installed image: %s" +msgstr "" + +# +msgid "daily" +msgstr "eltse dei" + +# +msgid "day" +msgstr "dei" + +msgid "default" +msgstr "" + +# +msgid "delete cut" +msgstr "ferwiderje stik" + +msgid "delete..." +msgstr "" + +msgid "descramble and record ecm" +msgstr "" + +msgid "detective/thriller" +msgstr "" + +# +msgid "disable" +msgstr "utskeakelje" + +# +msgid "disable move mode" +msgstr "ferpleats modus útskeakelje" + +# +msgid "disabled" +msgstr "útskeakele" + +# +msgid "disconnected" +msgstr "net oanslúten" + +msgid "discussion/interview/debate" +msgstr "" + +# +msgid "do nothing" +msgstr "doch neat" + +msgid "documentary" +msgstr "" + +msgid "don't descramble, record ecm" +msgstr "" + +# +msgid "done!" +msgstr "Klear!" + +msgid "east" +msgstr "" + +msgid "economics/social advisory" +msgstr "" + +# +msgid "edit alternatives" +msgstr "bewurkje alternatief" + +msgid "education/science/factual topics (general)" +msgstr "" + +# +msgid "empty" +msgstr "leeg" + +# +msgid "enable" +msgstr "ynskeakelje" + +# +msgid "enable bouquet edit" +msgstr "bewurkjen boeket oan" + +# +msgid "enable favourite edit" +msgstr "bewurkjen favorieten oan" + +# +msgid "enable move mode" +msgstr "ferpleatsen mode oan" + +# +msgid "enabled" +msgstr "ynskeakele" + +# +msgid "end alternatives edit" +msgstr "bewurkjen alternatief út" + +# +msgid "end bouquet edit" +msgstr "bewurkjen boeket út" + +# +msgid "end cut here" +msgstr "stop stik hjirre" + +# +msgid "end favourites edit" +msgstr "bewurkjen favoriet út" + +msgid "entertainment (10-16 year old)" +msgstr "" + +msgid "entertainment (6-14 year old)" +msgstr "" + +# +msgid "equal to" +msgstr "gelyk oan" + +msgid "equestrian" +msgstr "" + +# +msgid "exit DVD player or return to file browser" +msgstr "DVD spieler ferlitte en werom nei triem browser" + +msgid "exit movielist" +msgstr "" + +# +msgid "exit network adapter configuration" +msgstr "netwurk adapter konfiguraasje ferlitte" + +# +msgid "exit networkadapter setup menu" +msgstr "netwurkadapter ynstellingen menu ferlitte" + +msgid "experimental film/video" +msgstr "" + +msgid "false" +msgstr "" + +msgid "fashion" +msgstr "" + +# +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "triemformaat (BMP, PNG, JPG, GIF)" + +# +msgid "filename" +msgstr "triemnamme" + +msgid "film/cinema" +msgstr "" + +msgid "fine arts" +msgstr "" + +# +msgid "fine-tune your display" +msgstr "it skerm fyn tune" + +msgid "fitness & health" +msgstr "" + +# +#, fuzzy +msgid "flat alphabetic" +msgstr "sortearje op alfabet" + +# +#, fuzzy +msgid "flat alphabetic reverse" +msgstr "sortearje op alfabet" + +msgid "folk/traditional music" +msgstr "" + +msgid "football/soccer" +msgstr "" + +msgid "foreign countries/expeditions" +msgstr "" + +# +msgid "forward to the next chapter" +msgstr "foarút nei it folgende haadstik" + +# +msgid "free" +msgstr "frij" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "" + +msgid "game show/quiz/contest" +msgstr "" + +msgid "gardening" +msgstr "" + +# +msgid "go to deep standby" +msgstr "gean nei djip paraatstand" + +# +msgid "go to standby" +msgstr "gean nei paraatstand" + +# +msgid "grab this frame as bitmap" +msgstr "" + +# +msgid "green" +msgstr "grien" + +msgid "handicraft" +msgstr "" + +msgid "height" +msgstr "" + +# +msgid "help..." +msgstr "help..." + +# +msgid "horizontal" +msgstr "horizontal" + +msgid "information/education/school program" +msgstr "" + +# +msgid "init module" +msgstr "CI-Module initialisearje" + +# +msgid "init modules" +msgstr "" + +# +msgid "insert mark here" +msgstr "tuskenfoegje marker" + +msgid "invalid type" +msgstr "" + +msgid "jazz" +msgstr "" + +# +msgid "jump back to the previous title" +msgstr "werom nei de foarige titel" + +# +msgid "jump forward to the next title" +msgstr "foarút nei de folgende titel" + +msgid "languages" +msgstr "" + +# +msgid "leave movie player..." +msgstr "film ôfspieljen ferlitte..." + +# +msgid "left" +msgstr "links" + +msgid "left, wrapped" +msgstr "" + +msgid "leisure hobbies (general)" +msgstr "" + +# +msgid "length" +msgstr "lengte" + +msgid "limit ..., aborting !" +msgstr "" + +# +msgid "list style compact" +msgstr "lyst styl kompakt" + +# +msgid "list style compact with description" +msgstr "lyst styl kompakt mei beskriuwing" + +# +msgid "list style default" +msgstr "lyst styl standert" + +# +msgid "list style single line" +msgstr "lyst styl ien rigele" + +msgid "literature" +msgstr "" + +msgid "live broadcast" +msgstr "" + +# +msgid "locked" +msgstr "op slot" + +# +msgid "loopthrough to" +msgstr "trochskeakele nei" + +msgid "magazines/reports/documentary" +msgstr "" + +# +msgid "manual" +msgstr "hânmatig" + +msgid "martial sports" +msgstr "" + +msgid "medicine/physiology/psychology" +msgstr "" + +# +msgid "menu" +msgstr "menu" + +# +msgid "mins" +msgstr "min" + +# +msgid "minutes" +msgstr "minuten" + +# +msgid "month" +msgstr "maand" + +msgid "motor sport" +msgstr "" + +msgid "motoring" +msgstr "" + +# +msgid "move down to last entry" +msgstr "Nei it lêste menu item gean" + +# +msgid "move down to next entry" +msgstr "Nei it folgende menu item gean" + +# +msgid "move up to first entry" +msgstr "Neit it earste menu item gean" + +# +msgid "move up to previous entry" +msgstr "Nei it foarige menu item " + +msgid "movie/drama (general)" +msgstr "" + +# +msgid "multinorm" +msgstr "multinorm" + +msgid "music/ballet/dance (general)" +msgstr "" + +msgid "musical/opera" +msgstr "" + +msgid "nature/animals/environment" +msgstr "" + +# +msgid "never" +msgstr "nea" + +msgid "new media" +msgstr "" + +msgid "news magazine" +msgstr "" + +msgid "news/current affairs (general)" +msgstr "" + +msgid "news/weather report" +msgstr "" + +# +msgid "no" +msgstr "nee" + +# +msgid "no CAId selected" +msgstr "" + +# +msgid "no CI slots found" +msgstr "" + +# +msgid "no module found" +msgstr "gjin CI-Module fûn" + +msgid "no storage devices found" +msgstr "" + +# +msgid "none" +msgstr "gjin" + +msgid "normal" +msgstr "" + +# +msgid "not configured" +msgstr "" + +# +msgid "not locked" +msgstr "net op slot" + +msgid "not supported" +msgstr "" + +# +msgid "not used" +msgstr "" + +# +msgid "nothing connected" +msgstr "neat anslúten" + +# +msgid "of a DUAL layer medium used." +msgstr "fan in DUAL layer medium brûkt" + +# +msgid "of a SINGLE layer medium used." +msgstr "fan in SINGLE layer medium brûkt" + +# +msgid "off" +msgstr "uit" + +msgid "offset is" +msgstr "" + +# +msgid "on" +msgstr "oan" + +# +msgid "on READ ONLY medium." +msgstr "fan in ALLINNE-LEZE medium" + +msgid "on end of movie" +msgstr "" + +# +msgid "once" +msgstr "ienmalig" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +# +msgid "open nameserver configuration" +msgstr "Iepenje nammeserver konfiguraasje" + +msgid "original" +msgstr "" + +msgid "original language" +msgstr "" + +# +msgid "pass" +msgstr "trochgean" + +msgid "performing arts" +msgstr "" + +msgid "play as picture in picture" +msgstr "" + +msgid "play in mainwindow" +msgstr "" + +# +msgid "please press OK when ready" +msgstr "druk Ok wanneer klear" + +# +msgid "please wait, loading picture..." +msgstr "plaatsje wurd laden..." + +msgid "popular culture/traditional arts" +msgstr "" + +msgid "pre-school children's program" +msgstr "" + +msgid "receiver software because updates are available." +msgstr "" + +# +msgid "record" +msgstr "opnimme" + +# +msgid "recording..." +msgstr "an it opnimmen..." + +# +msgid "red" +msgstr "read" + +msgid "religion" +msgstr "" + +msgid "remarkable people" +msgstr "" + +# +msgid "remove after this position" +msgstr "nei dizze posysje alles ferwiderje" + +# +msgid "remove all alternatives" +msgstr "ferwiderje alle alternatieven" + +# +msgid "remove all new found flags" +msgstr "ferwiderje nij fûn flaggen" + +# +msgid "remove before this position" +msgstr "foar dizze posysje alles ferwiderje" + +# +msgid "remove bookmark" +msgstr "boekmerk ferwiderje" + +# +msgid "remove directory" +msgstr "map ferwiderje" + +# +msgid "remove entry" +msgstr "ferwiderje yngong" + +# +msgid "remove from parental protection" +msgstr "ferwiderje út alderlik tasjoch" + +# +msgid "remove new found flag" +msgstr "ferwiderje nij fun flagge" + +# +msgid "remove selected satellite" +msgstr "selektearre sat ferwiderje" + +# +msgid "remove this mark" +msgstr "ferwiderje punt" + +msgid "rename entry" +msgstr "" + +# +msgid "repeat playlist" +msgstr "ôfspyllyst opnei spylje" + +# +msgid "repeated" +msgstr "herhelle" + +msgid "reverse by date" +msgstr "" + +# +msgid "rewind to the previous chapter" +msgstr "werom spile nei it foarige haadstik" + +# +msgid "right" +msgstr "rjochts" + +msgid "right, wrapped" +msgstr "" + +msgid "rock/pop" +msgstr "" + +msgid "romance" +msgstr "" + +# +msgid "save last directory on exit" +msgstr "Lêste map opslaan by ôfsluten" + +# +msgid "save playlist on exit" +msgstr "Ofspiellyst opslaan by ôfsluten" + +# +msgid "scan state" +msgstr "sykjen status" + +msgid "science fiction/fantasy/horror" +msgstr "" + +# +msgid "second cable of motorized LNB" +msgstr "twadde kabel fan LNB-motor" + +# +msgid "seconds" +msgstr "seconden" + +# +msgid "select" +msgstr "kies" + +# +msgid "select CAId's" +msgstr "" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +# +msgid "select menu entry" +msgstr "Kies menu item" + +# +msgid "select movie" +msgstr "kies film" + +msgid "select the movie path" +msgstr "" + +msgid "serious music/classic music" +msgstr "" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "" + +msgid "service PIN" +msgstr "" + +msgid "set as startup service" +msgstr "" + +msgid "setup PIN" +msgstr "" + +# +msgid "show DVD main menu" +msgstr "DVD haadmenu sjen litte" + +msgid "show all tags" +msgstr "" + +# +msgid "show alternatives" +msgstr "alternatieven sjen litte" + +# +msgid "show event details" +msgstr "EPG details sjen litte" + +msgid "show extended description" +msgstr "" + +msgid "show mediaplayer on mainmenu" +msgstr "" + +msgid "show softwaremanager in setup menu" +msgstr "" + +msgid "show softwaremanager on blue button" +msgstr "" + +msgid "show tag menu" +msgstr "" + +# +msgid "show transponder info" +msgstr "transponder ynfo sjen litte" + +msgid "show/game show (general)" +msgstr "" + +msgid "shuffle" +msgstr "" + +# +msgid "shut down" +msgstr "" + +# +msgid "simple" +msgstr "simpel" + +# +msgid "skip backward" +msgstr "efterút oerslaan" + +# +msgid "skip forward" +msgstr "foarút oerslaan" + +msgid "soap/melodram/folkloric" +msgstr "" + +msgid "social/political issues/economics (general)" +msgstr "" + +msgid "social/spiritual science" +msgstr "" + +msgid "sorting of playlists" +msgstr "" + +# +msgid "special characters" +msgstr "" + +msgid "special events" +msgstr "" + +msgid "special format data DVD (HDTV compatible)" +msgstr "" + +msgid "sports (general)" +msgstr "" + +msgid "sports magazine" +msgstr "" + +# +msgid "standard" +msgstr "standert" + +# +msgid "start cut here" +msgstr "start stik hjirre" + +# +msgid "start directory" +msgstr "start map" + +msgid "stepsize" +msgstr "" + +# +msgid "stereo" +msgstr "stereo" + +msgid "stop using as startup service" +msgstr "" + +# +msgid "switch to bookmarks" +msgstr "skeakelje nei boekmerkers" + +# +msgid "switch to filelist" +msgstr "skeakelje nei triemlyst" + +# +msgid "switch to the next angle" +msgstr "" + +# +msgid "switch to the next audio track" +msgstr "skeakelje nei it folgende lûd spoor" + +# +msgid "switch to the next subtitle language" +msgstr "skeakelje nei de folgende undertiteling taal" + +msgid "talk show" +msgstr "" + +msgid "team sports" +msgstr "" + +msgid "technology/natural science" +msgstr "" + +# +msgid "template file" +msgstr "sjabloon triem" + +msgid "tennis/squash" +msgstr "" + +# +msgid "this recording" +msgstr "dit opnimmen" + +# +msgid "this service is protected by a parental control pin" +msgstr "dit kanaal is net beskikber troch it alderlik tasjoch." + +# +msgid "toggle time, chapter, audio, subtitle info" +msgstr "tiid, haadstik, lûd en undertiteling ynfo omskeakelje" + +msgid "top" +msgstr "" + +msgid "tourism/travel" +msgstr "" + +msgid "true" +msgstr "" + +msgid "unavailable" +msgstr "" + +# +msgid "unconfirmed" +msgstr "net befestigt" + +msgid "undefined" +msgstr "" + +# +msgid "unknown" +msgstr "" + +# +msgid "unknown service" +msgstr "unbeneame kanaal" + +msgid "unpublished" +msgstr "" + +# +msgid "until standby/restart" +msgstr "" + +# +msgid "user defined" +msgstr "brûkers ynstelling" + +msgid "variety show" +msgstr "" + +# +msgid "vertical" +msgstr "ferticaal" + +# +msgid "wait for ci..." +msgstr "wachtsje op ci..." + +# +msgid "wait for mmi..." +msgstr "wachtsje op mmi" + +# +msgid "waiting" +msgstr "oan it wachtsjen" + +msgid "water sport" +msgstr "" + +# +msgid "weekly" +msgstr "wikeliks" + +msgid "west" +msgstr "" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "" + +# +msgid "whitelist" +msgstr "wyte lyst" + +msgid "width" +msgstr "" + +msgid "winter sport" +msgstr "" + +msgid "wireless network interface" +msgstr "" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "" +msgstr[1] "" + +# +msgid "working" +msgstr "" + +# +msgid "yellow" +msgstr "giel" + +# +msgid "yes" +msgstr "ja" + +# +msgid "yes (keep feeds)" +msgstr "ja (feeds hâlde)" + +# +msgid "zap" +msgstr "knip" + +msgid "zap and record" +msgstr "" + +# +msgid "zapped" +msgstr "knipt" + +# +#~ msgid "AA" +#~ msgstr "AA" + +# +#~ msgid "AB" +#~ msgstr "AB" + +# +#, fuzzy +#~ msgid "Activate PiP" +#~ msgstr "PIP ynskeakelje" + +# +#, fuzzy +#~ msgid "Add/remove timer for current event" +#~ msgstr "opnimmen tafoegje (stopje nei dit barren)" + +# +#, fuzzy +#~ msgid "All satellites" +#~ msgstr "Alle Satellyten" + +# +#~ msgid "BA" +#~ msgstr "BA" + +# +#~ msgid "BB" +#~ msgstr "BB" + +# +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "Gedrach fan 'pause' yn pause mode" + +# +#~ msgid "Committed DiSEqC command" +#~ msgstr "Oanwizen DiSEqC kommando" + +# +#~ msgid "DiSEqC repeats" +#~ msgstr "DiSEqC herhellingen" + +# +#~ msgid "No satellite frontend found!!" +#~ msgstr "Gjin sattelyt foarein fûn." + +# +#~ msgid "Send DiSEqC" +#~ msgstr "Stjoer DiSEqC" + +# +#, fuzzy +#~ msgid "Switch next channel" +#~ msgstr "folgend kanaal" + +# +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Net oanwizen DiSEqC kommando" + +# +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "Werom zappe nei kanaal foar satellytsyker?" diff --git a/po/he.po b/po/he.po new file mode 100644 index 0000000..aa08446 --- /dev/null +++ b/po/he.po @@ -0,0 +1,8876 @@ +# Arabic translations for tuxbox-enigma package. +# Copyright (C) 2005 THE tuxbox-enigma'S COPYRIGHT HOLDER +# This file is distributed under the same license as the tuxbox-enigma package. +# Automatically generated, 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: tuxbox-enigma 0.0.1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2012-03-08 10:40+0330\n" +"Last-Translator: \n" +"Language-Team: Arabic <moustafagamal@hotmail.com>\n" +"Language: he\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-Generator: Pootle 2.0.3\n" +"X-Poedit-Language: Arabic\n" +"X-Poedit-Country: EGYPT\n" +"X-Poedit-SourceCharset: iso-8859-15\n" + +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"×פשרויות מתקדמות והגדרות" + +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"!×חרי לחיצה על ×שר,× × ×”×ž×ª×Ÿ" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" + +# +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"ערוך ×ת כתובת מקור העדכון" + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" + +# +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"לחץ ×שר על השלט בכדי להמשיך" + +# +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"שיחזור ×’×™×‘×•×™×™× ×œ×¤×™ ת×ריך" + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" + +# +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"סרוק לתוספות מקומיות והתקן ×ות×" + +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +".בחר ×ת התקן הגיבוי\n" +":ההתקן הנוכחי " + +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +".הצג, התקן ×ו הסר חבילות זמינות ×ו מותקנות " + +msgid " (PiP)" +msgstr "" + +msgid " (Radio)" +msgstr "" + +msgid " (TV)" +msgstr "" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +# +msgid " extensions." +msgstr "תוספות" + +msgid " ms" +msgstr "ms" + +msgid " packages selected." +msgstr "חבילות נבחרו" + +# +msgid " updates available." +msgstr "×¢×“×›×•× ×™× ×–×ž×™× ×™×" + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "" + +msgid "%A %d %B" +msgstr "" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "" + +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "" + +# +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, fuzzy, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "!×©×™×¨×•×ª×™× × ×ž×¦×ו %d" +msgstr[1] "!×©×™×¨×•×ª×™× × ×ž×¦×ו %d" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" + +# +#, fuzzy, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "!עבודות רצות ברקע %d " +msgstr[1] "!עבודות רצות ברקע %d " + +# +#, python-format +msgid "%d min" +msgstr "דקות %d" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d minutes" +msgstr "" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "" +msgstr[1] "" + +#, fuzzy, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "התחל תיקיה" +msgstr[1] "התחל תיקיה" + +# +#, fuzzy, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "נמצ××” רשת ×לחוטית ×חת" +msgstr[1] "נמצ××” רשת ×לחוטית ×חת" + +msgid "%d-%b-%Y %-H:%M" +msgstr "" + +msgid "%d-%m" +msgstr "" + +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "" + +# +#, fuzzy, python-format +msgid "%s %s free disk space" +msgstr "×ž×§×•× ×¤× ×•×™ בכונן הקשיח" + +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "" + +# +#, fuzzy, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "×¢×“×›×•× ×™× ×–×ž×™× ×™×" +msgstr[1] "×¢×“×›×•× ×™× ×–×ž×™× ×™×" + +#, python-format +msgid "%s%d min" +msgstr "" + +#, python-format +msgid "%s/%s: %s" +msgstr "" + +msgid "(ZAP)" +msgstr "(זיפזופ)" + +msgid "(empty)" +msgstr "(ריק)" + +msgid "(show optional DVD audio menu)" +msgstr "(הצג תפריטי קול ××¤×©×¨×™×™× ×œ×“×™ וי די)" + +msgid "* Only available if more than one interface is active." +msgstr "×פשרי רק מעל לממשק ×חד פעיל *" + +msgid "/s" +msgstr "" + +msgid "0" +msgstr "0" + +msgid "1" +msgstr "1" + +msgid "1.0" +msgstr "1.0" + +msgid "1.1" +msgstr "1.1" + +msgid "1.2" +msgstr "1.2" + +# +msgid "12V output" +msgstr "12V output" + +# +msgid "13 V" +msgstr "13 V" + +msgid "16:10" +msgstr "16:10" + +# +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +# +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +msgid "16:9" +msgstr "16:9" + +# +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +msgid "16:9 always" +msgstr "16:9 תמיד" + +# +msgid "18 V" +msgstr "18 V" + +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "" + +msgid "24" +msgstr "" + +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +msgid "3" +msgstr "3" + +msgid "30" +msgstr "" + +msgid "3d mode" +msgstr "" + +msgid "4" +msgstr "4" + +msgid "4:3" +msgstr "4:3" + +# +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +# +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +msgid "5" +msgstr "5" + +msgid "6" +msgstr "6" + +msgid "7" +msgstr "7" + +msgid "8" +msgstr "8" + +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +# +msgid "<Current movielist location>" +msgstr "<×ž×™×§×•× ×¨×©×™×ž×ª ×¡×¨×˜×™× ×‘×¤×•×¢×œ>" + +# +msgid "<Default movie location>" +msgstr "<×ž×™×§×•× ×¨×©×™×ž×ª ×¡×¨×˜×™× ×‘×¨×™×¨×ª מחדל>" + +# +msgid "<Last timer location>" +msgstr "<×ž×™×§×•× ×חרון לטיימר>" + +msgid "<unknown>" +msgstr "<×œ× ×™×“×•×¢>" + +msgid "??" +msgstr "؟؟" + +# +msgid "A" +msgstr "A" + +#, fuzzy, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"עודכן מ××– ההתקנה (%s) קובץ ההגדרות.\n" +"? ×”×× ×תה מעוניין לשמור על הגירסה שלך" + +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"עודכן מ××– ההתקנה (%s) קובץ ההגדרות.\n" +"? ×”×× ×תה מעוניין לשמור על הגירסה שלך" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "תצוגה גר×פית ל××™.פי.×’×™ לכל התחנות בתיקייה ספציפית" + +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +":הקלטה התחילה\n" +"%s" + +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"הקלטה כרגע פועלת \n" +"? מה ×תה מעוניין לעשות" + +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr ".הקלטה פועלת כרגע, בבקשה עצור ×ת ההקלטה לפני הגדרת הפוזישינר" + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "" + +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr ".הקלטה פועלת כרגע, בבקשה עצור ×ת ההקלטה לפני הפעלת הס×טפיינדר" + +#, python-format +msgid "A required tool (%s) was not found." +msgstr " (%s) :הכלי ×”×‘× - ×œ× × ×ž×¦×" + +# +msgid "A search for available updates is currently in progress." +msgstr "בדיקת ×¢×“×›×•× ×™× ×–×ž×™× ×™× ×‘×¤×•×¢×œ" + +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +".× ×ž×¦× ×ž×ž×©×§ רשת משני מוגדר\n" +"\n" +"×”×× ×‘×¨×¦×•× ×š להשבית ×ת הממשק השני" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +# +msgid "A small overview of the available icon states and actions." +msgstr "" + +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"הטיימר ×œ× ×”×¦×œ×™×— להקליט\n" +"?×”×× ×œ×”×©×‘×™×ª ×ת הטלויזיה ולנסות שוב\n" + +# +#, fuzzy +msgid "A/V settings" +msgstr "A/V הגדרות" + +msgid "AC3/DTS downmix" +msgstr "" + +# +msgid "Abort" +msgstr "חדל" + +# +msgid "About" +msgstr "×ודות" + +# +msgid "About..." +msgstr "...×ודות" + +# +msgid "Accesspoint:" +msgstr ":נקודת גישה" + +# +msgid "Action on long powerbutton press" +msgstr "הפעולה שתתבצע בלחיצה ×רוכה" + +# +msgid "Action on short powerbutton press" +msgstr "הפעולה שתתבצע בלחיצה קצרה" + +# +msgid "Activate Picture in Picture" +msgstr "הפעל תמונה בתוך תמונה" + +#, fuzzy +msgid "Activate current configuration" +msgstr "activate current configuration" + +# +msgid "Activate network settings" +msgstr "הפעל הגדרות רשת" + +# +#, fuzzy +msgid "Activate the configured network settings." +msgstr "הפעל הגדרות רשת" + +# +msgid "Adapter settings" +msgstr "הגדרת מת××" + +# +msgid "Add" +msgstr "הוסף" + +# +msgid "Add Bookmark" +msgstr "הוסף סימניה" + +# +msgid "Add a mark" +msgstr "הוסף סמן" + +#, fuzzy +msgid "Add a nameserver entry" +msgstr "add a nameserver entry" + +# +msgid "Add a new title" +msgstr "הוסף כותרת חדשה" + +#, fuzzy +msgid "Add bookmark" +msgstr "add bookmark" + +#, fuzzy +msgid "Add directory to playlist" +msgstr "add directory to playlist" + +#, fuzzy +msgid "Add file to playlist" +msgstr "add file to playlist" + +#, fuzzy +msgid "Add files to playlist" +msgstr "add files to playlist" + +msgid "Add more details to the crash log" +msgstr "" + +#, fuzzy +msgid "Add provider" +msgstr "add Provider" + +#, fuzzy +msgid "Add recording (enter recording duration)" +msgstr "הקלט - הזן משך ההקלטה" + +#, fuzzy +msgid "Add recording (enter recording endtime)" +msgstr "הקלט - הכנס שעת סיו×" + +#, fuzzy +msgid "Add recording (indefinitely)" +msgstr "הקלט" + +#, fuzzy +msgid "Add recording (stop after current event)" +msgstr "הקלט - עצור ×חרי ×¡×™×•× ×”×ª×•×›× ×™×ª הנוכחית" + +#, fuzzy +msgid "Add service" +msgstr "add Service" + +# +msgid "Add timer" +msgstr "הוסף טיימר" + +msgid "Add title" +msgstr "הוסף כותרת" + +# +msgid "Add to bouquet" +msgstr "הוסף תיקיית ערוצי×" + +# +msgid "Add to favourites" +msgstr "הוסף למועדפי×" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "" + +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "כוונו ×ת הגדרות הצבעי×, כך שכל גווני צבע יר×ו, ×ך ×¨×•×•×™× ×›×›×œ ×”×פשר. במידה ו××ª× ×©×ž×—×™× ×¢× ×”×ª×•×¦××”, לחצו על ×ישור כדי לסגור ×ת הכוונון העדין, ×ו השתמשו במקשי ×”×ž×¡×¤×¨×™× ×‘×›×“×™ לבחור מסכי מבחן ×חרי×." + +msgid "Advanced" +msgstr "" + +# +#, fuzzy +msgid "Advanced options" +msgstr "×פשרויות מתקדמות" + +# +msgid "Advanced restore" +msgstr "שחזור מתקד×" + +# +#, fuzzy +msgid "Advanced software" +msgstr "תוכנות מתקדמות" + +# +#, fuzzy +msgid "Advanced software plugin" +msgstr "פל××’×™× ×™× ×ž×ª×§×“×ž×™× ×œ×ª×•×›× ×”" + +# +#, fuzzy +msgid "Advanced video enhancement setup" +msgstr "הגדרות מתקדמות לשיפור הויד×ו" + +# +#, fuzzy +msgid "Advanced video setup" +msgstr "הגדרות ויד×ו מתקדמות" + +# +msgid "After event" +msgstr "ל×חר התוכנית" + +# +msgid "Album" +msgstr "×לבו×" + +msgid "Alignment of events" +msgstr "" + +msgid "Alignment of service names" +msgstr "" + +# +msgid "All" +msgstr "כול×" + +msgid "All ages" +msgstr "" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "" + +msgid "Allocate unused memory index" +msgstr "" + +msgid "Allow quit movieplayer with exit" +msgstr "" + +msgid "Allow subtitle language to equal audio language" +msgstr "" + +msgid "Allow subtitles for hearing impaired" +msgstr "" + +# +msgid "Alpha" +msgstr "Alpha" + +#, fuzzy +msgid "Alternative" +msgstr "add alternatives" + +# +#, fuzzy +msgid "Alternative numbering mode" +msgstr "Alternative radio mode" + +msgid "Alternative services tuner priority" +msgstr "Alternative services tuner priority" + +msgid "Always ask" +msgstr "" + +msgid "Always hide infobar" +msgstr "" + +# +msgid "An empty filename is illegal." +msgstr "קובץ ריק ×œ× ×—×•×§×™" + +# +#, fuzzy +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "There was an error downloading the packetlist. Please try again." + +msgid "An unknown error occurred!" +msgstr "! ×ירעה שגי××” ×œ× ×™×“×•×¢×”" + +msgid "And will put your receiver in standby over " +msgstr "" + +msgid "Any activity" +msgstr "" + +msgid "Arabic" +msgstr "ערבית" + +msgid "Are you sure to remove this entry?" +msgstr "" + +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"? ×”×× ×תה מעוניין להפעיל ×ת הגדרות הרשת ×”×לו\n" +"\n" + +#, fuzzy +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"×”×× ×תה מעוניין למחוק ×ת\n" +":הגיבוי הב×\n" + +msgid "Are you sure you want to exit this wizard?" +msgstr "? ×”×× ×תה מעוניין לצ×ת מה×שף" + +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"?×”×× ×תה בטוח ש×תה רוצה ל×תחל ×ת ממשקי הרשת\n" +"\n" + +#, fuzzy, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"? ×”×× ×תה בטוח ש×תה רוצה לשחזר ×ת הגיבוי של ×ניגמה2\n" +"×ניגמה2 תופעל מחדש ל×חר שיחזור" + +#, fuzzy +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"? ×”×× ×תה בטוח ש×תה רוצה לשחזר ×ת הגיבוי של ×ניגמה2\n" +"×ניגמה2 תופעל מחדש ל×חר שיחזור" + +msgid "Artist" +msgstr "×ומן" + +msgid "Arts/Culture" +msgstr "" + +msgid "Ask user" +msgstr "ש×ל משתמש" + +#, fuzzy +msgid "Aspect ratio" +msgstr "Aspect Ratio" + +msgid "Assigned CAIds:" +msgstr "" + +msgid "Assigned services/provider:" +msgstr "" + +# +#, fuzzy +msgid "At beginning" +msgstr "התחל מההתחלה" + +msgid "At end" +msgstr "" + +# +msgid "Audio" +msgstr "קול" + +msgid "Audio PID" +msgstr "" + +msgid "Audio language selection 1" +msgstr "" + +msgid "Audio language selection 2" +msgstr "" + +msgid "Audio language selection 3" +msgstr "" + +msgid "Audio language selection 4" +msgstr "" + +#, fuzzy +msgid "Audio options..." +msgstr "...×פשרויות קול" + +# +#, fuzzy, python-format +msgid "Audio track (%s) format" +msgstr "audio tracks" + +#, python-format +msgid "Audio track (%s) language" +msgstr "" + +msgid "Author: " +msgstr ":מחבר" + +# +msgid "Authoring mode" +msgstr "" + +# +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "×וטומטי" + +# +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "" + +# +msgid "Auto flesh" +msgstr "" + +msgid "Auto focus" +msgstr "" + +msgid "Auto focus commencing ..." +msgstr "" + +msgid "Auto language selection" +msgstr "" + +msgid "Auto scart switching" +msgstr "Auto scart switching" + +msgid "Automatic" +msgstr "×וטומטי" + +# +#, fuzzy +msgid "Automatic scan" +msgstr "סריקה ×וטומטית" + +msgid "Automatically start timeshift after" +msgstr "" + +msgid "Automatically turn on external subtitles" +msgstr "" + +msgid "Available format variables" +msgstr "Available format variables" + +# +msgid "B" +msgstr "B" + +# +msgid "BER" +msgstr "BER" + +# +msgid "BER:" +msgstr "BER:" + +msgid "Back" +msgstr "Back" + +msgid "Background" +msgstr "רקע" + +#, fuzzy +msgid "Background color" +msgstr "צבע רקע" + +msgid "Background delete option" +msgstr "" + +msgid "Background delete speed" +msgstr "" + +#, fuzzy +msgid "Backup completed." +msgstr ".הגיבוי נכשל" + +msgid "Backup failed." +msgstr ".הגיבוי נכשל" + +msgid "Backup is running..." +msgstr "...........גיבוי מתבצע" + +msgid "Backup system settings" +msgstr "גיבוי הגדרות מערכת" + +msgid "Band" +msgstr "Band" + +msgid "Bandwidth" +msgstr "רוחב פס" + +msgid "Basque" +msgstr "" + +# +msgid "Begin time" +msgstr "Begin time" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +msgid "Behavior of 0 key in PiP-mode" +msgstr "פעולת מקש ×” - 0 במצב תמונה בתוך תמונה" + +# +msgid "Behavior when a movie is started" +msgstr "הפעולה ×›×שר סרט מתחיל" + +# +msgid "Behavior when a movie is stopped" +msgstr "הפעולה ×›×שר סרט נעצר " + +# +msgid "Behavior when a movie reaches the end" +msgstr "הפעולה ×›×שר סרט מגיע לסוף " + +msgid "Big PiP" +msgstr "" + +# +msgid "Bitrate:" +msgstr "" + +msgid "Black screen" +msgstr "" + +msgid "Black screen till locked" +msgstr "" + +# +msgid "Block noise reduction" +msgstr "Block noise reduction" + +# +msgid "Blue boost" +msgstr "Blue boost" + +msgid "Bookmarks" +msgstr "סימניות" + +# +msgid "Brightness" +msgstr "בהירות" + +msgid "Bulgarian" +msgstr "" + +# +msgid "Burn DVD" +msgstr "צרוב די.וי.די" + +# +#, fuzzy, python-format +msgid "Burn audio track (%s)" +msgstr "audio tracks" + +# +msgid "Burn existing image to DVD" +msgstr "צרוב קובץ מוכן לדי.וי.די" + +# +msgid "Burn to DVD" +msgstr "צרוב לדי.וי.די" + +msgid "Bus: " +msgstr "" + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "" + +msgid "C" +msgstr "C" + +msgid "C-Band" +msgstr "C-Band" + +msgid "CH" +msgstr "" + +# +msgid "CI assignment" +msgstr "" + +# +msgid "CVBS" +msgstr "" + +msgid "Cable" +msgstr "Cable" + +msgid "Cable Scan" +msgstr "" + +msgid "Cache thumbnails" +msgstr "" + +msgid "Calculate" +msgstr "" + +msgid "Calculate all positions" +msgstr "" + +msgid "Calculation complete" +msgstr "" + +msgid "Calibrate" +msgstr "" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "" + +# +msgid "Cancel" +msgstr "בטל" + +msgid "Cannot determine" +msgstr "" + +msgid "Cannot find any signal ..., aborting !" +msgstr "" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "" + +msgid "Cannot move to trash can" +msgstr "" + +# +msgid "Capacity: " +msgstr ":נפח" + +msgid "Card" +msgstr "כרטיס" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "" + +msgid "Center time-labels and remove date" +msgstr "" + +# +msgid "Change bouquets in quickzap" +msgstr "" + +# +msgid "Change pin code" +msgstr "שנה קוד ×בטחה" + +#, fuzzy +msgid "Change recording (duration)" +msgstr "שנה הקלטה - משך הקלטה" + +#, fuzzy +msgid "Change recording (endtime)" +msgstr "שנה הקלטה - שעת סיו×" + +msgid "Change repeat and delay settings?" +msgstr "" + +msgid "Change service PIN" +msgstr "" + +msgid "Change service PINs" +msgstr "" + +msgid "Change setup PIN" +msgstr "" + +# +msgid "Change step size" +msgstr "Change step size" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "" + +# +msgid "Channel" +msgstr "ערוץ" + +#, fuzzy +msgid "Channel list type" +msgstr "תפריט רשימת הערוצי×" + +# +msgid "Channel not in services list" +msgstr "הערוץ ×œ× ×‘×¨×©×™×ž×ª השירותי×" + +# +#, fuzzy +msgid "Channel selection" +msgstr "בחירת ערוץ" + +# +msgid "Channel:" +msgstr ":ערוץ" + +msgid "Channellist menu" +msgstr "תפריט רשימת הערוצי×" + +msgid "Chap." +msgstr "Chap." + +msgid "Chapter" +msgstr "פרק" + +msgid "Chapter:" +msgstr ":פרק" + +msgid "Check" +msgstr "בדוק" + +msgid "Check the internet connection" +msgstr "" + +msgid "Check the internet connection again" +msgstr "" + +#, fuzzy +msgid "Checking filesystem..." +msgstr "...בודק קבצי מערכת" + +msgid "Checking the internet connection" +msgstr "" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" + +msgid "Children/Youth" +msgstr "" + +msgid "Choose which tuner to configure." +msgstr "" + +msgid "Circular left" +msgstr "Circular left" + +msgid "Circular right" +msgstr "Circular right" + +msgid "Cleanup" +msgstr "נקיון" + +msgid "Clear" +msgstr "" + +msgid "Clear before scan" +msgstr "Clear before scan" + +msgid "Clear fixed" +msgstr "" + +# +msgid "Clear log" +msgstr "נקה לוג" + +#, fuzzy +msgid "Clear playlist" +msgstr "clear playlist" + +msgid "Close" +msgstr "סגור" + +msgid "Close PiP on exit" +msgstr "" + +msgid "Close title selection" +msgstr "סגור בחירת כותרת" + +msgid "Code rate HP" +msgstr "" + +msgid "Code rate LP" +msgstr "" + +msgid "Coderate HP" +msgstr "" + +msgid "Coderate LP" +msgstr "" + +msgid "Collection name" +msgstr "×©× ×”×וסף" + +msgid "Collection settings" +msgstr "הגדרות ×”×וסף" + +#, fuzzy +msgid "Color format" +msgstr "תבנית צבע" + +msgid "Command execution..." +msgstr "...הרצת פקודה" + +msgid "Command order" +msgstr "סדר פקודה" + +# +msgid "Common Interface" +msgstr "ממשק משותף" + +#, fuzzy +msgid "Common Interface assignment" +msgstr "הקצ×ת ממשק משותף" + +msgid "Communication" +msgstr "תקשורת" + +#, fuzzy +msgid "Compact flash" +msgstr "Compact Flash" + +msgid "Complete" +msgstr "של×" + +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "Complex (allows mixing audio tracks and aspects)" + +msgid "Composition of the recording filenames" +msgstr "" + +#, fuzzy +msgid "Configuration mode" +msgstr "תצורת הגדרה" + +#, fuzzy, python-format +msgid "Configuration mode: %s" +msgstr "תצורת הגדרה" + +#, fuzzy +msgid "Configuration..." +msgstr "...הגדרת רשת" + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "" + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "" + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "" + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "" + +msgid "Configure how recording filenames are constructed." +msgstr "" + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +msgid "Configure interface" +msgstr "הגדרת ממשק" + +msgid "Configure nameservers" +msgstr "Configure nameservers" + +msgid "Configure on which devices the background delete option should be used." +msgstr "" + +# +#, fuzzy +msgid "Configure remote control type" +msgstr "סוג בקרת הורי×" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "" + +#, fuzzy +msgid "Configure the IP address." +msgstr "הגדרת ממשק" + +msgid "Configure the aspect ratio of the screen." +msgstr "" + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +# +#, fuzzy +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "הפעולה ×›×שר סרט נעצר " + +# +#, fuzzy +msgid "Configure the behavior when movie playback is started." +msgstr "הפעולה ×›×שר סרט מתחיל" + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "" + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "" + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "" + +msgid "Configure the brightness level of the front panel display." +msgstr "" + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "" + +msgid "Configure the color of the teletext subtitles." +msgstr "" + +msgid "Configure the contrast level of the front panel display." +msgstr "" + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "" + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "" + +msgid "Configure the first audio language (highest priority)." +msgstr "" + +msgid "Configure the first subtitle language (highest priority)." +msgstr "" + +msgid "Configure the font size of the subtitles." +msgstr "" + +msgid "Configure the fourth audio language." +msgstr "" + +#, fuzzy +msgid "Configure the fourth subtitle language." +msgstr "העבר לשפת ×ª×¨×’×•× ×”×‘××”" + +msgid "Configure the function of a long press on the power button." +msgstr "" + +msgid "Configure the function of a short press on the power button." +msgstr "" + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "" + +#, fuzzy +msgid "Configure the gateway." +msgstr "הגדרת ממשק" + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "" + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "" + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "" + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "" + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "" + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "" + +msgid "Configure the latitude of your location." +msgstr "" + +msgid "Configure the longitude of your location." +msgstr "" + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "" + +#, fuzzy +msgid "Configure the nameserver (DNS)." +msgstr "Configure nameservers" + +#, fuzzy +msgid "Configure the netmask." +msgstr "הגדרת ממשק" + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "" + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "" + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "" + +msgid "Configure the possible fast forward speeds." +msgstr "" + +msgid "Configure the possible rewind speeds." +msgstr "" + +msgid "Configure the primary EPG language." +msgstr "" + +msgid "Configure the refresh rate of the screen." +msgstr "" + +msgid "Configure the screen resolution in PC output mode." +msgstr "" + +msgid "Configure the second audio language." +msgstr "" + +#, fuzzy +msgid "Configure the second subtitle language." +msgstr "העבר לשפת ×ª×¨×’×•× ×”×‘××”" + +msgid "Configure the secondary EPG language." +msgstr "" + +msgid "Configure the sharpness of the video scaling." +msgstr "" + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "" + +#, fuzzy +msgid "Configure the slow motion speeds." +msgstr "Slow Motion speeds" + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "" + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "" + +msgid "Configure the third audio language." +msgstr "" + +#, fuzzy +msgid "Configure the third subtitle language." +msgstr "העבר לשפת ×ª×¨×’×•× ×”×‘××”" + +msgid "Configure the transparency of the OSD." +msgstr "" + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "" + +#, fuzzy +msgid "Configure the tuner mode." +msgstr "תצורת הגדרה" + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "" + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "" + +msgid "Configure the video output mode (or resolution)." +msgstr "" + +msgid "Configure the way in which the receiver changes channels." +msgstr "" + +msgid "Configure where completed timers show up in the timer list." +msgstr "" + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "" + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "" + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "" + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "" + +msgid "Configure which color format should be used on the SCART output." +msgstr "" + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "" + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "" + +msgid "Configure your internal LAN" +msgstr "הגדרת הרשת הפנימית שלך" + +msgid "Configure your network again" +msgstr "הגדרת הרשת שלך שוב" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "" + +msgid "Configure your wireless LAN again" +msgstr "הגדרת הרשת ×”×לחוטית שוב" + +msgid "Configures which video output connector will be used." +msgstr "" + +msgid "Configuring" +msgstr "מגדיר" + +msgid "Conflicting timer" +msgstr "טיימר מתנגש" + +msgid "Connect" +msgstr "התחבר" + +#, fuzzy +msgid "Connect to a wireless network" +msgstr "התחבר לרשת ×לחוטית" + +msgid "Connected satellites" +msgstr "" + +msgid "Connected to" +msgstr "מחובר ×ל" + +msgid "Connected!" +msgstr "! התחבר" + +msgid "Constellation" +msgstr "Constellation" + +msgid "Content does not fit on DVD!" +msgstr "!תכולה ×œ× ×ž×ª×ימה לדי.וי.די" + +msgid "Continue" +msgstr "" + +msgid "Continue in background" +msgstr "המשך ברקע" + +#, fuzzy +msgid "Continue playback" +msgstr "המשך לנגן" + +msgid "Continue playing" +msgstr "המשך לנגן" + +msgid "Continues play (loop)" +msgstr "" + +msgid "Contrast" +msgstr "ניגודיות" + +msgid "Convert ext3 filesystem to ext4" +msgstr "" + +msgid "Convert ext3 to ext4" +msgstr "" + +msgid "Converting ext3 to ext4..." +msgstr "" + +msgid "Copy" +msgstr "" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "" + +msgid "Could not find installed channel list." +msgstr "" + +# +#, fuzzy +msgid "Could not load medium! No disc inserted?" +msgstr "Could not load Medium! No disc inserted?" + +msgid "Could not open Picture in Picture" +msgstr "×œ× ×™×›×•×œ לפתוח תמונה בתוך תמונה" + +# +#, fuzzy, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "%s ×œ× ×™×›×•×œ להקליט עקב התנגשות בטיימר" + +# +#, fuzzy, python-format +msgid "Could not record due to invalid service %s" +msgstr "%s ×œ× ×™×›×•×œ להקליט עקב התנגשות בטיימר" + +# +msgid "Create DVD-ISO" +msgstr "DVD-ISO צור " + +msgid "Create more detailed crash log" +msgstr "" + +#, python-format +msgid "Creating directory %s failed." +msgstr ".נכשלה %s יצירת תיקייה" + +#, fuzzy +msgid "Creating filesystem" +msgstr "...בודק קבצי מערכת" + +msgid "Creating partition" +msgstr "" + +# +msgid "Croatian" +msgstr "קרו×טית" + +msgid "Current CEC address" +msgstr "" + +msgid "Current device: " +msgstr "" + +msgid "Current event EPG" +msgstr "" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +msgid "Current settings:" +msgstr "Current settings:" + +#, fuzzy +msgid "Current transponder" +msgstr "Current Transponder" + +msgid "Current value: " +msgstr "Current value: " + +msgid "Current version:" +msgstr "Current version:" + +msgid "Currently installed image" +msgstr "" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +msgid "Custom skip time for '1'/'3' buttons" +msgstr "" + +msgid "Custom skip time for '4'/'6' buttons" +msgstr "" + +msgid "Custom skip time for '7'/'9' buttons" +msgstr "" + +msgid "Customize" +msgstr "הת×מה ×ישית" + +msgid "Customize channel list cursor behavior" +msgstr "" + +msgid "Cut" +msgstr "חתוך" + +msgid "Cutlist editor..." +msgstr "Cutlist עורך..." + +msgid "Czech" +msgstr "צ'כית" + +msgid "D" +msgstr "D" + +msgid "DHCP" +msgstr "DHCP" + +#, fuzzy +msgid "DMM advanced" +msgstr "מתקד×" + +msgid "DMM normal" +msgstr "" + +msgid "DUAL LAYER DVD" +msgstr "Dual Layer DVD" + +msgid "DVB subtitle black transparency" +msgstr "" + +msgid "DVB-C" +msgstr "" + +msgid "DVB-C ANNEX C" +msgstr "" + +msgid "DVB-S" +msgstr "DVB-S" + +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "" + +msgid "DVB-T2" +msgstr "" + +msgid "DVD data format" +msgstr "" + +#, fuzzy +msgid "DVD file browser" +msgstr "DVD מציג קבצי" + +# +msgid "DVD media toolbox" +msgstr "DVD media toolbox" + +#, fuzzy +msgid "DVD player" +msgstr "DVD נגן" + +#, fuzzy +msgid "DVD titlelist" +msgstr "DVD Titlelist" + +msgid "Danish" +msgstr "דנית" + +msgid "Date" +msgstr "ת×ריך" + +msgid "Date/time input" +msgstr "" + +#, fuzzy +msgid "Deep standby" +msgstr "המתנה עמוקה" + +msgid "Default" +msgstr "ברירת מחדל" + +msgid "Default movie location" +msgstr "ברירת מחדל ×œ×ž×™×§×•× ×¡×¨×˜×™×" + +#, fuzzy +msgid "Default settings" +msgstr "הגדרות ברירת מחדל" + +msgid "Delay before key repeat starts:" +msgstr "" + +msgid "Delay for external subtitles" +msgstr "" + +# +msgid "Delete" +msgstr "מחק" + +msgid "Delete entry" +msgstr "מחק רשומה" + +# +msgid "Delete failed!" +msgstr "!מחיקה נכשלה" + +#, fuzzy +msgid "Delete file" +msgstr "מחק קובץ" + +#, fuzzy +msgid "Delete playlist entry" +msgstr "delete playlist entry" + +# +#, fuzzy +msgid "Delete saved playlist" +msgstr "delete saved playlist" + +msgid "Delete timer" +msgstr "" + +# +#, fuzzy +msgid "Delete..." +msgstr "...מחק" + +msgid "Deleted" +msgstr "" + +msgid "Deleted items" +msgstr "" + +msgid "Depth" +msgstr "" + +msgid "Descramble http streams" +msgstr "" + +# +msgid "Description" +msgstr "ת×ור" + +msgid "Deselect" +msgstr "בטל בחירה" + +msgid "Details for plugin: " +msgstr "" + +msgid "Detected HDD:" +msgstr "Detected HDD:" + +# +msgid "Detected NIMs:" +msgstr "Detected NIMs:" + +msgid "Devicename:" +msgstr "" + +msgid "Devide" +msgstr "" + +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +# +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +# +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +# +msgid "DiSEqC mode" +msgstr "DiSEqC mode" + +#, fuzzy, python-format +msgid "DiSEqC port %s: %s" +msgstr "DiSEqC repeats" + +#, fuzzy +msgid "DiSEqC-tester settings" +msgstr "Test DiSEqC settings" + +msgid "Dialing:" +msgstr ":מחייג" + +msgid "Digital contour removal" +msgstr "Digital contour removal" + +msgid "Direct playback of linked titles without menu" +msgstr "Direct playback of linked titles without menu" + +msgid "Directory" +msgstr "" + +#, fuzzy, python-format +msgid "Directory %s does not exist." +msgstr " .×œ× ×§×™×™×ž×ª %s הספרייה" + +#, python-format +msgid "Directory %s nonexistent." +msgstr "" + +# +msgid "Directory browser" +msgstr "סייר תיקיות" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "" + +#, fuzzy, python-format +msgid "Directory contains %s and %s." +msgstr " .×œ× ×§×™×™×ž×ª %s הספרייה" + +msgid "Disable" +msgstr "השבת" + +# +msgid "Disable Picture in Picture" +msgstr "השבת תמונה בתוך תמונה" + +msgid "Disable background scanning" +msgstr "" + +msgid "Disable timer" +msgstr "" + +# +msgid "Disabled" +msgstr "הושבת" + +# +msgid "Disconnect" +msgstr "לנתק" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "" + +msgid "Display 16:9 content as" +msgstr "Display 16:9 content as" + +msgid "Display 4:3 content as" +msgstr "Display 4:3 content as" + +# +msgid "Display >16:9 content as" +msgstr "" + +#, fuzzy +msgid "Display and userinterface" +msgstr "תצוגה וממשק משתמש" + +msgid "Display message before playing next movie" +msgstr "" + +#, fuzzy +msgid "Display setup" +msgstr "הצג הגדרות" + +#, fuzzy +msgid "Do not change" +msgstr "do not change" + +#, fuzzy +msgid "Do not record" +msgstr "×ל תקליט" + +#, fuzzy +msgid "Do nothing" +msgstr "do nothing" + +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"? ×”×× ×‘×¨×¦×•× ×š לסמן ×ת קבצי המערכת\n" +"!×–×” עלול לקחת הרבה זמן" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" + +#, python-format +msgid "Do you really want to delete %s?" +msgstr "? %s ×”×× ×‘×¨×¦×•×š למחוק ×ת" + +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"×”×× ×‘×¨×¦×•× ×š להוריד\n" +"×ת הפל×גין \"%s\"?" + +msgid "Do you really want to exit?" +msgstr "? ×”×× ×‘×¨×¦×•× ×š לצ×ת" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" + +#, fuzzy, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"×”×× ×‘×¨×¦×•× ×š להוריד\n" +"×ת הפל×גין \"%s\"?" + +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "? מהכונן %s ×”×× ×‘×¨×¦×•× ×š למחוק ×ת התיקיה" + +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "%s ?×”×× ×‘×¨×¦×•× ×š להסיר ×ת הסימניה " + +msgid "Do you want this?" +msgstr "" + +# +msgid "Do you want to burn this collection to DVD medium?" +msgstr "×”×× ×‘×¨×¦×•× ×š לצרוב ×ת התוכן לדי.וי.די" + +# +msgid "Do you want to do a service scan?" +msgstr "?×”×× ×‘×¨×¦×•× ×š לבצע סריקת שירותי×" + +msgid "Do you want to do another manual service scan?" +msgstr "? ×”×× ×‘×¨×¦×•× ×š לבצע שוב סריקת ×©×™×¨×•×ª×™× ×™×“× ×™×ª" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "" + +#, fuzzy +msgid "Do you want to install a channel list?" +msgstr ":×”×× ×‘×¨×¦×•× ×š להתקין ×ת החבילה\n" + +msgid "Do you want to install the package:\n" +msgstr ":×”×× ×‘×¨×¦×•× ×š להתקין ×ת החבילה\n" + +# +msgid "Do you want to play DVD in drive?" +msgstr "? ×”×× ×‘×¨×¦×•× ×š לנגן ×ת הדי.וי.די שבכונן" + +# +msgid "Do you want to preview this DVD before burning?" +msgstr "?×”×× ×‘×¨×¦×•× ×š להציג ×ת הדי.וי.די לפני הצריבה" + +msgid "Do you want to reboot your receiver?" +msgstr "" + +msgid "Do you want to remove the package:\n" +msgstr "×”×× ×‘×¨×¦×•× ×š להסיר ×ת החבילה\n" + +msgid "Do you want to restore your settings?" +msgstr "? ×”×× ×‘×¨×¦×•× ×š לשחזר ×ת ההגדרות" + +# +msgid "Do you want to resume this playback?" +msgstr "?×”×× ×‘×¨×¦×•× ×š להמשיך ולנגן ×ת ×–×”" + +#, fuzzy, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "? ×”×× ×‘×¨×¦×•× ×š לשחזר ×ת ההגדרות" + +msgid "Do you want to update your receiver?" +msgstr "" + +msgid "Do you want to upgrade the package:\n" +msgstr "?×”×× ×‘×¨×¦×•× ×š לשדרג ×ת החבילה\n" + +msgid "Don't stop current event but disable coming events" +msgstr "×ל תפסיק ×ירוע נוכחי ×ך בטל ×ת כל הב××™× ×‘×ª×•×¨" + +#, fuzzy, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "תקלות %d חבילות ×¢× %d בוצע - הותקנו, עודכנו ×ו הוסרו" +msgstr[1] "תקלות %d חבילות ×¢× %d בוצע - הותקנו, עודכנו ×ו הוסרו" + +msgid "Download" +msgstr "הורד" + +#, python-format +msgid "Download %s from server" +msgstr "" + +msgid "Download .NFI-files for USB-flasher" +msgstr "" + +#, fuzzy +msgid "Download plugins" +msgstr "הורד פל××’×™× ×™×" + +msgid "Downloadable new plugins" +msgstr "פל××’×™× ×™× ×—×“×©×™× ×œ×”×•×¨×“×”" + +msgid "Downloadable plugins" +msgstr "פל××’×™× ×™× ×œ×”×•×¨×“×”" + +msgid "Downloading" +msgstr "מוריד" + +msgid "Downloading plugin information. Please wait..." +msgstr "...מוריד ×¤×¨×˜×™× ×¢×œ הפל×גין, ×× × ×”×ž×ª×Ÿ" + +# +msgid "Dutch" +msgstr "הולנדית" + +msgid "Dynamic contrast" +msgstr "Dynamic contrast" + +msgid "E" +msgstr "" + +msgid "EPG" +msgstr "" + +msgid "EPG language selection 1" +msgstr "" + +msgid "EPG language selection 2" +msgstr "" + +# +#, fuzzy +msgid "EPG selection" +msgstr "EPG בחירת" + +msgid "EPG settings" +msgstr "" + +# +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "(%s) !שגי××” - נכשל בסריקה" + +# +msgid "East" +msgstr "מזרח" + +msgid "East limit set" +msgstr "" + +msgid "Edit" +msgstr "ערוך" + +# +msgid "Edit DNS" +msgstr "DNS ערוך" + +msgid "Edit bouquets list" +msgstr "ערוך רשימת תיקיות ערוצי×" + +msgid "Edit chapters of current title" +msgstr "ערוך ×¤×¨×§×™× ×©×œ הכותרת הנוכחית" + +msgid "Edit services list" +msgstr "ערוך רשימת שירותי×" + +# +msgid "Edit settings" +msgstr "ערוך הגדרות" + +#, fuzzy +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "exit nameserver configuration" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "" + +msgid "Edit timer" +msgstr "" + +msgid "Edit title" +msgstr "ערוך כותרת" + +# +msgid "Edit upgrade source url." +msgstr "Edit upgrade source url." + +msgid "Education/Science/..." +msgstr "" + +msgid "Electronic Program Guide" +msgstr "Electronic Program Guide" + +# +msgid "Enable" +msgstr "×פשר" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +msgid "Enable 5V for active antenna" +msgstr "Enable 5V for active antenna" + +msgid "Enable EIT EPG" +msgstr "" + +msgid "Enable MHW EPG" +msgstr "" + +msgid "Enable Netmed EPG" +msgstr "" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +# +#, fuzzy +msgid "Enable bouquet selection in multi-EPG" +msgstr "enable bouquet edit" + +msgid "Enable freesat EPG" +msgstr "" + +# +msgid "Enable multiple bouquets" +msgstr "×פשר תיקיות ×¢×¨×•×¦×™× ×ž×¨×•×‘×•×ª" + +# +msgid "Enable parental control" +msgstr "×פשר בקרת הורי×" + +msgid "Enable teletext caching" +msgstr "" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +# +msgid "Enabled" +msgstr "×פשר" + +# +msgid "Encrypted: " +msgstr ":קידוד" + +msgid "Encryption" +msgstr "קידוד" + +#, fuzzy +msgid "Encryption key" +msgstr "מפתח קידוד" + +#, fuzzy +msgid "Encryption key type" +msgstr "שיטת מפתח קידוד" + +msgid "Encryption:" +msgstr ":קידוד" + +# +msgid "End time" +msgstr "שעת סיו×" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +# +msgid "English" +msgstr "×נגלית" + +msgid "Enigma2 skin selector" +msgstr "" + +msgid "Enter main menu..." +msgstr "...כנס לתפריט ר×שי" + +msgid "Enter pin code" +msgstr ":הכנס קוד ×בטחה" + +msgid "Enter the service pin" +msgstr "הכנס קוד ×”×בטחה של השירות" + +msgid "Equal to" +msgstr "" + +msgid "Error" +msgstr "שגי××”" + +msgid "Error code" +msgstr "" + +msgid "Error executing plugin" +msgstr "שגי××” בהרצת הפל×גין" + +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"שגי××”: %s\n" +"לנסות שוב?" + +msgid "Estonian" +msgstr "×סטוניה" + +msgid "Ethernet network interface" +msgstr "" + +msgid "Event font size (relative to skin size)" +msgstr "" + +# +#, fuzzy +msgid "Event view" +msgstr "Eventview" + +# +#, fuzzy +msgid "Event view menu" +msgstr "Eventview" + +msgid "Everywhere" +msgstr "" + +# +msgid "Exceeds dual layer medium!" +msgstr "Exceeds dual layer medium!" + +msgid "Execution finished!!" +msgstr "!!הרצה הסתיימה" + +#, fuzzy +msgid "Execution progress:" +msgstr ":הרצה בפעולה" + +msgid "Exif" +msgstr "Exif" + +msgid "Exit" +msgstr "יצי××”" + +msgid "Exit EPG" +msgstr "" + +msgid "Exit editor" +msgstr "יצי××” מהעורך" + +msgid "Exit input device selection." +msgstr "" + +msgid "Exit media player?" +msgstr "" + +#, fuzzy +msgid "Exit mediaplayer" +msgstr "exit mediaplayer" + +#, fuzzy +msgid "Exit movie list" +msgstr "exit movielist" + +#, fuzzy +msgid "Exit movie player?" +msgstr "exit mediaplayer" + +#, fuzzy +msgid "Exit nameserver configuration" +msgstr "exit nameserver configuration" + +#, fuzzy +msgid "Exit network interface list" +msgstr "exit network interface list" + +msgid "Exit network wizard" +msgstr "×¦× ×ž×שף הרשת" + +msgid "Exit the wizard" +msgstr "×¦× ×ž×”×שף" + +msgid "Expert" +msgstr "הגדרות מומחי×" + +msgid "Extend sleeptimer 15 minutes" +msgstr "" + +msgid "Extended Software" +msgstr "Extended Software" + +msgid "Extended Software Plugin" +msgstr "Extended Software פל×גין ל" + +#, fuzzy +msgid "Extended network setup plugin..." +msgstr "...פל×גין הגדרת רשת נרחב" + +#, fuzzy +msgid "Extended setup..." +msgstr "הגדרות נרחבות" + +msgid "Extensions" +msgstr "תוספות" + +msgid "Extensions management" +msgstr "ניהול תוספות" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "" + +msgid "Extra motor options" +msgstr "" + +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "" + +msgid "Factory reset" +msgstr "שיחזור להגדרות יצרן" + +msgid "Failed" +msgstr "נכשל" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "" + +# +#, python-format +msgid "Fan %d" +msgstr " מ×וורר %d" + +# +#, python-format +msgid "Fan %d PWM" +msgstr "" + +# +#, fuzzy, python-format +msgid "Fan %d voltage" +msgstr " מ×וורר %d מתח" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +# +msgid "Fast" +msgstr "מהיר" + +# +msgid "Fast DiSEqC" +msgstr "DiSEqC מהיר" + +msgid "Fast Scan" +msgstr "" + +# +msgid "Fast epoch" +msgstr "" + +#, fuzzy +msgid "Fast forward speeds" +msgstr "מהירות העברה קדימה" + +# +msgid "Favourites" +msgstr "מועדפי×" + +msgid "File appears to be busy.\n" +msgstr "" + +msgid "Filesystem check" +msgstr "" + +msgid "Final position at" +msgstr "" + +msgid "Final position at index" +msgstr "" + +msgid "Fine movement" +msgstr "" + +# +msgid "Finetune" +msgstr "כיוונון עדין" + +msgid "Finished" +msgstr "הסתיי×" + +msgid "Finished configuring your network" +msgstr "הגדרת הרשת הסתיימה" + +msgid "Finished restarting your network" +msgstr "פעולת ×יתחול הרשת הסתיימה" + +msgid "Finnish" +msgstr "פינית" + +msgid "Fixed" +msgstr "" + +msgid "Flash" +msgstr "Flash" + +msgid "Flashing failed" +msgstr "Flashing failed" + +msgid "Following tasks will be done after you press OK!" +msgstr "OK הפעולה הב××” תתבצע ל×חר לחיצה על" + +msgid "Format" +msgstr "פורמט" + +msgid "Forward volume keys" +msgstr "" + +# +msgid "Frame size in full view" +msgstr "" + +# +msgid "French" +msgstr "צרפתית" + +# +msgid "Frequency" +msgstr "תדר" + +msgid "Frequency bands" +msgstr "קבוצת תדרי×" + +# +msgid "Frequency scan step size(khz)" +msgstr "" + +# +msgid "Frequency steps" +msgstr "קפיצות תדרי×" + +msgid "Frequency:" +msgstr "" + +# +msgid "Fri" +msgstr "Fri" + +# +msgid "Friday" +msgstr "שישי" + +msgid "From :" +msgstr "" + +# +#, python-format +msgid "Frontprocessor version: %d" +msgstr "" + +msgid "Full transparency" +msgstr "" + +msgid "Fulview resulution" +msgstr "" + +msgid "Function of OK button" +msgstr "" + +msgid "Further Options" +msgstr "" + +# +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" + +# +msgid "Gateway" +msgstr "" + +msgid "General AC3 delay" +msgstr "" + +msgid "General PCM delay" +msgstr "" + +# +msgid "Genre" +msgstr "" + +# +msgid "German" +msgstr "גרמנית" + +msgid "Get latest experimental image" +msgstr "" + +msgid "Get latest release image" +msgstr "" + +# +msgid "Getting plugin information. Please wait..." +msgstr "...מקבל מידע ×ודות הפל×גין. ×× × ×”×ž×ª×Ÿ" + +msgid "Go down the list" +msgstr "" + +msgid "Go to first movie or last item" +msgstr "" + +msgid "Go to first movie or top of list" +msgstr "" + +#, fuzzy +msgid "Go to first service" +msgstr "move up to first entry" + +#, fuzzy +msgid "Go to last service" +msgstr "Protect services" + +#, fuzzy +msgid "Go to next event" +msgstr "move down to next entry" + +# +#, fuzzy +msgid "Go to next page of service" +msgstr "Switch to next subservice" + +#, fuzzy +msgid "Go to previous event" +msgstr "move up to previous entry" + +#, fuzzy +msgid "Go to previous page of service" +msgstr "Return to previous service" + +msgid "Go up the list" +msgstr "" + +msgid "Goto" +msgstr "" + +# +msgid "Goto 0" +msgstr "Goto 0" + +msgid "Goto :" +msgstr "" + +msgid "Goto X" +msgstr "" + +msgid "Goto index position" +msgstr "" + +msgid "Goto next day of events" +msgstr "" + +msgid "Goto next page of events" +msgstr "" + +msgid "Goto position" +msgstr "Goto position" + +msgid "Goto previous day of events" +msgstr "" + +msgid "Goto previous page of events" +msgstr "" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "" + +msgid "GraphMultiEpg Settings" +msgstr "" + +# +msgid "Graphical Multi EPG" +msgstr " גר×פי Multi EPG" + +msgid "Greek" +msgstr "יוונית" + +msgid "Green boost" +msgstr "Green boost" + +msgid "Guard interval" +msgstr "" + +msgid "HD list" +msgstr "" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "" + +msgid "Handle wakeup from TV" +msgstr "" + +# +#, fuzzy +msgid "Hard disk" +msgstr "כונן קשיח" + +#, fuzzy +msgid "Hard disk setup" +msgstr "הגדרת כונן קשיח" + +#, fuzzy +msgid "Hard disk standby after" +msgstr "מעבר כונן למצב שינה ×חרי" + +# +msgid "Harddisk" +msgstr "כונן קשיח" + +msgid "Hardware: " +msgstr "" + +msgid "Hebrew" +msgstr "" + +msgid "Helps setting up your dish" +msgstr "" + +msgid "Hidden network" +msgstr "" + +msgid "Hide CI messages" +msgstr "" + +msgid "Hide channel list in radio mode" +msgstr "" + +msgid "Hide known extensions" +msgstr "" + +msgid "Hide number markers" +msgstr "" + +#, fuzzy +msgid "Hide player" +msgstr "hide player" + +msgid "Hide zap errors" +msgstr "" + +msgid "Hierarchy info" +msgstr "" + +#, fuzzy +msgid "Hierarchy information" +msgstr "Plugin manager activity information" + +msgid "High bitrate support" +msgstr "High bitrate support" + +msgid "Hold screen" +msgstr "" + +msgid "Hold till locked" +msgstr "" + +msgid "Home" +msgstr "" + +msgid "Horizontal" +msgstr "Horizontal" + +msgid "Horizontal turning speed" +msgstr "" + +msgid "How many minutes do you want to record?" +msgstr "? כמה דקות ×תה מעוניין להקליט" + +msgid "Hue" +msgstr "Hue" + +# +msgid "Hungarian" +msgstr "הונגרית" + +# +#, fuzzy +msgid "IP address" +msgstr "IP כתובת" + +msgid "ISO file is too large for this filesystem!" +msgstr "ISO file is too large for this filesystem!" + +msgid "ISO path" +msgstr "ISO path" + +msgid "Icons" +msgstr "" + +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." + +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." + +msgid "Image: " +msgstr "" + +#, fuzzy +msgid "Immediate shutdown" +msgstr "כיבוי מיידי" + +# +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "!על מנת להקליט ×ת הטיימר, הערוץ עבר לערוץ המוקלט\n" + +# +#, fuzzy +msgid "In progress" +msgstr "בפעולה" + +msgid "Inactivity Sleeptimer" +msgstr "" + +msgid "Include AIT in http streams" +msgstr "" + +msgid "Include ECM in http streams" +msgstr "" + +msgid "Include EIT in http streams" +msgstr "" + +msgid "Incorrect type service for PiP!" +msgstr "" + +# +msgid "Increased voltage" +msgstr "Increased voltage" + +msgid "Index" +msgstr "×ינדקס" + +msgid "Index allocated:" +msgstr "" + +# +msgid "Info" +msgstr "פרטי×" + +# +#, fuzzy +msgid "Info bar" +msgstr "InfoBar" + +#, fuzzy +msgid "Info bar timeout" +msgstr "Infobar timeout" + +msgid "Infobar frontend data source" +msgstr "" + +# +msgid "Information" +msgstr "מידע" + +# +msgid "Init" +msgstr "" + +#, fuzzy +msgid "Initial fast forward speed" +msgstr "מהירות העברה קדימה" + +# +msgid "Initial location in new timers" +msgstr "" + +msgid "Initial lock ratio" +msgstr "" + +#, fuzzy +msgid "Initial rewind speed" +msgstr "מהירות הרצה ×חורנית" + +msgid "Initial signal quality" +msgstr "" + +msgid "Initial signal quality:" +msgstr "" + +msgid "Initialization" +msgstr "" + +# +msgid "Initialize" +msgstr "מ×תחל" + +msgid "Initializing storage device..." +msgstr "" + +msgid "Input" +msgstr "Input" + +msgid "Input device setup" +msgstr "" + +msgid "Input devices" +msgstr "" + +# +msgid "Install" +msgstr "התקן" + +# +msgid "Install a new image with a USB stick" +msgstr "" + +msgid "Install a new image with your web browser" +msgstr "התקן ×ימג' חדש ×¢× ×”×“×¤×“×¤×Ÿ שלך" + +#, fuzzy +msgid "Install channel list" +msgstr "next channel in history" + +msgid "Install extensions" +msgstr "" + +msgid "Install extensions." +msgstr ".התקן תוספות" + +msgid "Install local extension" +msgstr "התקן תוספת מקומית" + +msgid "Install picons on" +msgstr "" + +#, fuzzy +msgid "Install softcam" +msgstr "...מתקין תוכנה" + +#, fuzzy +msgid "Installation has completed." +msgstr ".התקנה הסתיימה" + +#, fuzzy +msgid "Installation or removal has completed." +msgstr ".התקנה ×ו הסרה הסתיימה" + +msgid "Installing" +msgstr "מתקין" + +#, fuzzy +msgid "Installing software..." +msgstr "...מתקין תוכנה" + +#, fuzzy +msgid "Instant recording location" +msgstr "×ž×™×§×•× ×”×§×œ×˜×” מיידית" + +#, fuzzy +msgid "Instant recording..." +msgstr "...הקלטה מיידית" + +msgid "Interface: " +msgstr ":ממשק" + +msgid "Intermediate" +msgstr "ביניי×" + +# +#, fuzzy +msgid "Internal flash" +msgstr " פנימי Flash" + +msgid "Internal hdd only" +msgstr "" + +msgid "Interval between keys when repeating:" +msgstr "" + +#, python-format +msgid "Invalid directory selected: %s" +msgstr "%s :נבחרה תיקיה שגויה" + +#, fuzzy +msgid "Invalid location" +msgstr "×ž×™×§×•× ×©×’×•×™" + +msgid "Invalid transponder data" +msgstr "" + +# +msgid "Inversion" +msgstr "Inversion" + +msgid "Invert" +msgstr "" + +# +msgid "Ipkg" +msgstr "" + +# +#, fuzzy +msgid "Is this setting ok?" +msgstr "? ×”×× ×ž×•×“ הויד×ו ×”×–×” בסדר" + +# +#, fuzzy +msgid "Is this video mode ok?" +msgstr "? ×”×× ×ž×•×“ הויד×ו ×”×–×” בסדר" + +msgid "Italian" +msgstr "×יטלקית" + +msgid "Items per page " +msgstr "" + +msgid "Items per page for list screen" +msgstr "" + +msgid "Job overview" +msgstr "" + +msgid "Jump to beginning of list" +msgstr "" + +#, fuzzy +msgid "Jump to end of list" +msgstr "jump to listend" + +# +#, fuzzy +msgid "Jump to next marked position" +msgstr "Stored position" + +# +#, fuzzy +msgid "Jump to previous marked position" +msgstr "play from previous mark or playlist entry" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +msgid "Just scale" +msgstr "" + +msgid "Keep service" +msgstr "" + +# +#, fuzzy +msgid "Kernel version: " +msgstr ":גרסה חדשה" + +msgid "Keyboard" +msgstr "מקלדת" + +# +#, fuzzy +msgid "Keyboard map" +msgstr "מיפוי מקלדת" + +# +#, fuzzy +msgid "Keyboard setup" +msgstr "הגדרת מקלדת" + +# +#, fuzzy +msgid "LAN adapter" +msgstr "מת×× ×¨×©×ª" + +msgid "LAN connection" +msgstr "חיבור רשת" + +# +msgid "LNB" +msgstr "" + +# +msgid "Language" +msgstr "שפה" + +# +msgid "Language selection" +msgstr "בחירת שפה" + +# +msgid "Last config" +msgstr "הגדרה קודמת" + +# +msgid "Last speed" +msgstr "מהירות קודמת" + +msgid "Last upgrade: " +msgstr "" + +msgid "Latest Commits" +msgstr "" + +# +msgid "Latitude" +msgstr "Latitude" + +# +msgid "Latvian" +msgstr "" + +# +#, fuzzy +msgid "Leave DVD player?" +msgstr "Leave DVD Player?" + +# +msgid "Left" +msgstr "שמ×ל" + +msgid "Left from servicename" +msgstr "" + +msgid "Leisure hobbies" +msgstr "" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "" + +msgid "Letterbox zoom" +msgstr "" + +#, fuzzy +msgid "Limit character set for recording filenames" +msgstr "Limited character set for recording filenames" + +# +msgid "Limit east" +msgstr "הגבל מזרח" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "" + +# +msgid "Limit west" +msgstr "הגבל מערב" + +msgid "Limits cancelled" +msgstr "" + +msgid "Limits enabled" +msgstr "" + +# +msgid "Limits off" +msgstr "" + +# +msgid "Limits on" +msgstr "" + +msgid "Link quality:" +msgstr "" + +# +msgid "Link:" +msgstr "" + +# +msgid "Linked titles with a DVD menu" +msgstr "" + +msgid "List EPG functions..." +msgstr "" + +msgid "List available networks" +msgstr "" + +msgid "List mode" +msgstr "" + +# +#, fuzzy +msgid "List of storage devices" +msgstr "רשימת התקני ×חסון" + +msgid "List type" +msgstr "" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "" +msgstr[1] "" + +#, fuzzy +msgid "Listen to the radio..." +msgstr "hear radio..." + +msgid "Lists reloaded!" +msgstr "" + +# +msgid "Lithuanian" +msgstr "ליט×" + +# +msgid "Load" +msgstr "טען" + +msgid "Load Length of Movies in Movielist" +msgstr "" + +# +#, fuzzy +msgid "Load length of movies in movie list" +msgstr "טען ×ורך הסרט ברשימת הסרטי×" + +#, fuzzy +msgid "Load playlist" +msgstr "load playlist" + +#, fuzzy +msgid "Local network" +msgstr "רשת מקומית" + +msgid "Location" +msgstr "מיקו×" + +msgid "Location for instant recordings" +msgstr "×ž×™×§×•× ×œ×”×§×œ×˜×” מיידית" + +msgid "Lock ratio" +msgstr "" + +# +msgid "Lock:" +msgstr "" + +# +msgid "Log results to harddisk" +msgstr "" + +msgid "Long filenames" +msgstr "" + +# +#, fuzzy +msgid "Long key press" +msgstr "לחיצת מקש ×רוכה" + +# +msgid "Longitude" +msgstr "Longitude" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "" + +msgid "MMC card" +msgstr "" + +msgid "MORE" +msgstr "עוד" + +# +msgid "Main menu" +msgstr "תפריט ר×שי" + +msgid "Maintain old EPG data for" +msgstr "" + +# +msgid "Make this mark an 'in' point" +msgstr "" + +# +msgid "Make this mark an 'out' point" +msgstr "Make this mark an 'out' point" + +# +msgid "Make this mark just a mark" +msgstr "Make this mark just a mark" + +# +msgid "Manage extensions" +msgstr "נהל תוספי×" + +# +msgid "Manage your receiver's software" +msgstr "נהל ×ת תוכנת הממיר שלך" + +msgid "Manual" +msgstr "" + +# +msgid "Manual Scan" +msgstr "סריקה ידנית" + +msgid "Manual configuration" +msgstr "" + +# +#, fuzzy +msgid "Manual scan" +msgstr "סריקה ידנית" + +msgid "Manual transponder" +msgstr " ידני transponder" + +msgid "Manufacturer" +msgstr "יצרן" + +#, fuzzy +msgid "Margin after recording (minutes)" +msgstr "מרווח לפני הקלטה" + +#, fuzzy +msgid "Margin before recording (minutes)" +msgstr "מרווח לפני הקלטה" + +msgid "Max memory positions" +msgstr "" + +msgid "Max. bitrate: " +msgstr "" + +# +msgid "Media player" +msgstr "נגן המוזיקה" + +# +#, fuzzy +msgid "Media scanner" +msgstr "נגן המוזיקה" + +# +msgid "Medium is not a writeable DVD!" +msgstr "" + +msgid "Medium is not empty!" +msgstr "!המדיה ××™× × ×” ריקה" + +msgid "Memory" +msgstr "" + +msgid "Memory index" +msgstr "" + +# +msgid "Menu" +msgstr "תפריט" + +# +msgid "Message" +msgstr "הודעה" + +msgid "Message..." +msgstr "...הודעה" + +#, python-format +msgid "Minimum age %d years" +msgstr "" + +msgid "Minimum send interval" +msgstr "" + +msgid "Missing " +msgstr "" + +# +#, fuzzy +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "מוד" + +# +#, fuzzy +msgctxt "Video output mode" +msgid "Mode" +msgstr "מוד" + +# +msgid "Model: " +msgstr ":דג×" + +# +msgid "Modulation" +msgstr "Modulation" + +# +msgid "Modulator" +msgstr "" + +# +msgid "Mon" +msgstr "שני" + +# +msgid "Mon-Fri" +msgstr "שני-שישי" + +# +msgid "Monday" +msgstr "שני" + +# +msgid "Mosquito noise reduction" +msgstr "" + +msgid "Mount" +msgstr "" + +msgid "Move" +msgstr "" + +#, fuzzy +msgid "Move PiP to main picture" +msgstr "move PiP to main picture" + +msgid "Move Picture in Picture" +msgstr "Move Picture in Picture" + +msgid "Move east" +msgstr "Move east" + +msgid "Move to other directory" +msgstr "" + +msgid "Move to position X" +msgstr "" + +msgid "Move west" +msgstr "Move west" + +msgid "Moved to position 0" +msgstr "" + +msgid "Moved to position at index" +msgstr "" + +msgid "Movement" +msgstr "" + +msgid "Movie List Configuration" +msgstr "" + +msgid "Movie Selection" +msgstr "" + +#, fuzzy +msgid "Movie list configuration" +msgstr "Tuner הגדרת" + +msgid "Movie location" +msgstr "×ž×™×§×•× ×¡×¨×˜×™×" + +#, fuzzy +msgid "Movie selection" +msgstr "×ž×™×§×•× ×¡×¨×˜×™×" + +msgid "Movie/Drama" +msgstr "" + +msgid "Movielist menu" +msgstr "תפריט רשימת הסרטי×" + +msgid "Moving" +msgstr "" + +msgid "Moving east ..." +msgstr "" + +msgid "Moving to position" +msgstr "" + +msgid "Moving west ..." +msgstr "" + +# +msgid "Multi EPG" +msgstr "Multi EPG" + +msgid "Multi-EPG bouquet selection" +msgstr "" + +msgid "Multimedia" +msgstr "מולטימדיה" + +msgid "Multiple service support" +msgstr "Multiple service support" + +msgid "Multiplex" +msgstr "" + +# +msgid "Multisat" +msgstr "Multisat" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "" + +msgid "Mute" +msgstr "השתק" + +# +msgid "N/A" +msgstr "N/A" + +# +msgid "NEXT" +msgstr "הב×" + +# +#, fuzzy +msgid "NFI image flashing" +msgstr "NFI צריבת ×ימג" + +# +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "! הסתיימה. לחץ על הצהוב בכדי ל×תחל NFI צריבת ×ימג" + +msgid "NIM" +msgstr "" + +msgid "NOW" +msgstr "עכשיו" + +# +msgid "NTSC" +msgstr "NTSC" + +# +msgid "Name" +msgstr "ש×" + +msgid "Nameserver" +msgstr "Nameserver" + +#, python-format +msgid "Nameserver %d" +msgstr "Nameserver %d" + +msgid "Nameserver settings" +msgstr "Nameserver settings" + +#, fuzzy +msgid "Nameserver setup" +msgstr "Nameserver Setup" + +msgid "Namespace" +msgstr "" + +msgid "Netmask" +msgstr "Netmask" + +msgid "Network" +msgstr "רשת" + +msgid "Network ID" +msgstr "" + +#, fuzzy +msgid "Network configuration..." +msgstr "...הגדרת רשת" + +# +#, fuzzy +msgid "Network mount" +msgstr "מיפוי רשת" + +# +#, fuzzy, python-format +msgid "Network mount %s" +msgstr "מיפוי רשת" + +#, fuzzy +msgid "Network name (SSID)" +msgstr "Network test: " + +msgid "Network scan" +msgstr "Network scan" + +msgid "Network setup" +msgstr "Network setup" + +msgid "Network test" +msgstr "Network test" + +msgid "Network test..." +msgstr "Network test..." + +msgid "Network test: " +msgstr "Network test: " + +#, fuzzy +msgid "Network wizard" +msgstr "×שף הרשת" + +msgid "Network:" +msgstr ":רשת" + +# +msgid "New" +msgstr "חדש" + +msgid "New PIN" +msgstr "" + +# +msgid "New version:" +msgstr ":גרסה חדשה" + +msgid "News Current Affairs" +msgstr "" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "" + +# +msgid "No" +msgstr "ל×" + +# +msgid "No (supported) DVDROM found!" +msgstr "" + +msgid "No Connection" +msgstr "×ין חיבור" + +# +msgid "No HDD found or HDD not initialized!" +msgstr "! ×œ× × ×ž×¦× ×›×•× ×Ÿ קשיח ×ו ×œ× ×ותחל" + +# +msgid "No backup needed" +msgstr "×œ× × ×“×¨×© גיבוי" + +msgid "No cable tuner found!" +msgstr "" + +# +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" + +msgid "No delay" +msgstr "" + +# +msgid "No description available." +msgstr "×ין מידע נוסף" + +# +msgid "No details for this image file" +msgstr "×ין מידע נוסף ל×ימג' ×”×–×”" + +# +msgid "No displayable files on this medium found!" +msgstr "!×œ× × ×ž×¦×ו ×§×‘×¦×™× ×ž×ª××™×ž×™× ×œ×ª×¦×•×’×” על המדיה הזו" + +# +msgid "No event info found, recording indefinitely." +msgstr "" + +# +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "" + +msgid "No free index available" +msgstr "" + +msgid "No free tuner!" +msgstr "!הטיונר בשימוש" + +# +msgid "No network connection available." +msgstr ".×ין חיבור רשת זמין" + +# +msgid "No networks found" +msgstr "×œ× × ×ž×¦×ו רשתות" + +msgid "No new plugins found" +msgstr "" + +# +msgid "No positioner capable frontend found." +msgstr "" + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "" + +msgid "No services/providers selected" +msgstr "" + +#, fuzzy +msgid "No standby" +msgstr "מצב המתנה" + +msgid "No suitable sat tuner found!" +msgstr "" + +# +msgid "No tags are set on these movies." +msgstr "" + +#, fuzzy +msgid "No timeout" +msgstr "Infobar timeout" + +# +msgid "No to all" +msgstr "×œ× ×œ×”×›×œ" + +msgid "No transparency" +msgstr "" + +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "!×œ× × ×ž×¦× ×˜×™×•× ×¨ המוגדר לעבודה ×¢× ×“×™×™×¡×§ פוזישינר" + +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"!טיונר ×œ× ×ž×•×’×“×¨\n" +".הגדר ×ת הטיונר לפני סריקת תדרי×" + +# +#, fuzzy +msgid "No updates available" +msgstr "×¢×“×›×•× ×™× ×–×ž×™× ×™×" + +msgid "No updates available. Please try again later." +msgstr "" + +# +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" + +# +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" + +msgid "No wireless networks found! Searching..." +msgstr "" + +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." + +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." + +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." + +msgid "No, but restart from begin" +msgstr "ל×, ×ך התחל מחדש" + +msgid "No, do nothing." +msgstr ".ל×, ×œ× ×œ×¢×©×•×ª כלו×" + +msgid "No, just start my receiver" +msgstr "" + +msgid "No, never" +msgstr "" + +# +msgid "None" +msgstr "××£ ×חד" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Nonlinear" + +msgid "Normal mode" +msgstr "" + +# +msgid "North" +msgstr "North" + +# +msgid "Norwegian" +msgstr "נורווגית" + +msgid "Not associated" +msgstr "" + +msgid "Not configured" +msgstr "" + +# +#, fuzzy, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "×ין ×ž×§×•× ×‘×›×•× ×Ÿ הקשיח, פנה מעט ×ž×§×•× ×•× ×¡×” שוב (%d MB required, %d MB available)" + +msgid "Nothing connected" +msgstr "" + +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"!×ין מה לסרוק\n" +".הגדר ×ת הטינר לפני סריקת התדרי×" + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "" + +# +#, fuzzy +msgid "Now playing" +msgstr "כעת מתנגן" + +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." + +# +msgid "OK" +msgstr "×שר" + +msgid "OK, guide me through the upgrade process" +msgstr "בסדר, הדרך ×ותי במהלך השידרוג" + +msgid "ONID" +msgstr "" + +msgid "OSD name request" +msgstr "" + +# +#, fuzzy +msgid "OSD settings" +msgstr " הגדרות OSD" + +msgid "OSD transparency" +msgstr "" + +# +msgid "Off" +msgstr "כבוי" + +msgid "Offline decode delay (ms)" +msgstr "" + +msgid "Ok" +msgstr "" + +# +msgid "On" +msgstr "דלוק" + +msgid "On end of movie" +msgstr "" + +msgid "On end of movie (as menu)" +msgstr "" + +# +msgid "One" +msgstr "×חד" + +msgid "Only extensions." +msgstr ".רק תוספי×" + +# +#, fuzzy +msgid "Only free scan" +msgstr "Only Free scan" + +#, fuzzy +msgid "Open service list" +msgstr "open servicelist" + +#, fuzzy +msgid "Open the movie list" +msgstr "חזור לרשימת הסרטי×" + +msgid "Orbital position" +msgstr "" + +msgid "Original" +msgstr "" + +msgid "Other" +msgstr "" + +msgid "Output" +msgstr "" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "" + +#, fuzzy +msgid "Overwrite configuration files?" +msgstr "Tuner הגדרת" + +# +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "" + +msgid "PIDs" +msgstr "PIDs" + +#, fuzzy +msgid "PIN code needed" +msgstr "קוד נדרש" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "" + +# +msgid "Package list update" +msgstr "עדכון רשימת חבילות" + +msgid "Packet management" +msgstr "Packet management" + +msgid "Packet manager" +msgstr "Packet manager" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +msgid "Pan&scan" +msgstr "" + +# +#, fuzzy +msgid "Parent directory" +msgstr "Parent Directory" + +# +msgid "Parental control" +msgstr "בקרת הורי×" + +#, fuzzy +msgid "Parental control services editor" +msgstr "בקרת הורי×, עריכת שירותי×" + +# +msgid "Parental control setup" +msgstr "הגדרת בקרת הורי×" + +# +msgid "Parental control type" +msgstr "סוג בקרת הורי×" + +# +msgid "Password" +msgstr "סיסמ×" + +#, fuzzy +msgid "Pause" +msgstr "pause" + +msgid "Pause movie at end" +msgstr "עצור סרט בסופו" + +# +#, fuzzy +msgid "Pause playback" +msgstr "Resuming playback" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "" + +#, fuzzy +msgid "Percentage right" +msgstr "Circular right" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "" + +msgid "Permanently remove all deleted items" +msgstr "" + +msgid "Persian" +msgstr "" + +# +msgid "Phone number" +msgstr "מספר טלפון" + +#, fuzzy +msgid "PiP setup" +msgstr "הגדרת תמונה בתוך תמונה" + +msgid "Picon" +msgstr "" + +msgid "Picon and service name" +msgstr "" + +#, fuzzy +msgid "Picture player" +msgstr "נגן התמונות" + +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Pillarbox" + +# +msgid "Pilot" +msgstr "" + +# +msgid "Play" +msgstr "נגן" + +# +msgid "Play DVD" +msgstr "Play DVD" + +msgid "Play audio in background" +msgstr "" + +# +#, fuzzy +msgid "Play audio-CD..." +msgstr "Play Audio-CD..." + +msgid "Play back media files" +msgstr "" + +# +#, fuzzy +msgid "Play entry" +msgstr "נגן רשומה" + +#, fuzzy +msgid "Play from next mark or playlist entry" +msgstr "play from next mark or playlist entry" + +# +#, fuzzy +msgid "Play from previous mark or playlist entry" +msgstr "play from previous mark or playlist entry" + +# +#, fuzzy +msgid "Play music..." +msgstr "...נגן מוזיקה" + +msgid "Play next" +msgstr "" + +msgid "Play next (return to movie list)" +msgstr "" + +msgid "Play next (return to previous service)" +msgstr "" + +msgid "Play previous" +msgstr "" + +# +msgid "Play recorded movies..." +msgstr "...נגן ×¡×¨×˜×™× ×©×”×•×§×œ×˜×•" + +msgid "Please add titles to the compilation." +msgstr "Please add titles to the compilation." + +msgid "Please change recording endtime" +msgstr "×× × ×©× ×” ×ת זמן סוף ההקלטה" + +msgid "Please check your network settings!" +msgstr "Please check your network settings!" + +msgid "Please choose an extension..." +msgstr "Please choose an extension..." + +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." + +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." + +msgid "Please connect your receiver to the internet" +msgstr "" + +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Please do not change any values unless you know what you are doing!" + +msgid "Please enter a name for the new bouquet" +msgstr "בבקשה הכנס ×©× ×œ×ª×™×§×™×ª ×”×¢×¨×•×¦×™× ×”×—×“×©×”" + +msgid "Please enter a name for the new marker" +msgstr "בבקשה הכנס ×©× ×œ×¡×ž×Ÿ החדש" + +msgid "Please enter a new filename" +msgstr "בבקשה הכנס ×©× ×§×•×‘×¥ חדש" + +msgid "Please enter filename (empty = use current date)" +msgstr "Please enter filename (empty = use current date)" + +msgid "Please enter name of the new directory" +msgstr "בבקשה הכנס ×©× ×œ×ª×™×§×™×” החדשה" + +msgid "Please enter new name:" +msgstr "" + +msgid "Please enter the correct pin code" +msgstr "בבקשה הכנס ×ת הקוד המת××™×" + +msgid "Please enter the old PIN code" +msgstr "" + +msgid "Please follow the instructions on the TV" +msgstr "×× × ×¢×§×•×‘ ×חר ההור×ות בטלויזיה" + +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." + +msgid "Please press OK to continue." +msgstr ".×× × ×œ×—×¥ ×שר על מנת להמשיך" + +msgid "Please select a default EPG type..." +msgstr "" + +msgid "Please select a playlist to delete..." +msgstr "...×× × ×‘×—×¨ רשימת שמע למחיקה" + +msgid "Please select a playlist..." +msgstr "...×× × ×‘×—×¨ רשימת שמע " + +# +#, fuzzy +msgid "Please select a sub service..." +msgstr "Please select a subservice..." + +msgid "Please select a subservice to record..." +msgstr "Please select a subservice to record..." + +# +msgid "Please select a subservice..." +msgstr "Please select a subservice..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "" + +#, fuzzy +msgid "Please select medium to be scanned" +msgstr "Please Select Medium to be Scanned" + +msgid "Please select medium to use as backup location" +msgstr "Please select medium to use as backup location" + +# +msgid "Please select tag to filter..." +msgstr "" + +msgid "Please select the movie path..." +msgstr "Please select the movie path..." + +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." + +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." + +#, fuzzy +msgid "Please set up tuner A" +msgstr "Please set up tuner B" + +msgid "Please set up tuner B" +msgstr "Please set up tuner B" + +msgid "Please set up tuner C" +msgstr "Please set up tuner C" + +msgid "Please set up tuner D" +msgstr "Please set up tuner D" + +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." + +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr ".×× × ×‘×—×¨ ×ת השפה, ל×חר מכן לחץ על ×שר" + +msgid "Please wait" +msgstr "" + +#, fuzzy +msgid "Please wait (downloading channel list)" +msgstr "...× × ×”×ž×ª×Ÿ...טוען רשימה" + +#, fuzzy +msgid "Please wait (downloading softcam)" +msgstr "...× × ×”×ž×ª×Ÿ...טוען רשימה" + +#, fuzzy +msgid "Please wait (updating packages)" +msgstr "...× × ×”×ž×ª×Ÿ, טוען תמונה" + +msgid "Please wait for activation of your network configuration..." +msgstr "...× × ×”×ž×ª×Ÿ בזמן הפעלת הגדרות הרשת" + +msgid "Please wait while scanning is in progress..." +msgstr "...× × ×”×ž×ª×Ÿ , הסריקה בעיצומה" + +msgid "Please wait while we configure your network..." +msgstr "...× × ×”×ž×ª×Ÿ בעת הגדרת הרשת שלך" + +msgid "Please wait while we prepare your network interfaces..." +msgstr "...× × ×”×ž×ª×Ÿ בעת הכנת ממשקי הרשת" + +msgid "Please wait while we test your network..." +msgstr "...× × ×”×ž×ª×Ÿ בעת בדיקת הרשת" + +msgid "Please wait while your network is restarting..." +msgstr "...× × ×”×ž×ª×Ÿ בעת ×יתחול הרשת" + +msgid "Please wait..." +msgstr "...× × ×”×ž×ª×Ÿ" + +msgid "Please wait... Loading list..." +msgstr "...× × ×”×ž×ª×Ÿ...טוען רשימה" + +# +msgid "Plugin browser" +msgstr "סייר הפל××’×™× ×™×" + +msgid "Plugin manager activity information" +msgstr "Plugin manager activity information" + +# +msgid "Plugin manager help" +msgstr "Plugin manager help" + +# +msgid "Plugins" +msgstr "פל××’×™× ×™×" + +msgid "Polarisation" +msgstr "" + +msgid "Polarisation:" +msgstr "" + +# +msgid "Polarization" +msgstr "Polarization" + +# +msgid "Polish" +msgstr "פולנית" + +# +msgid "Port A" +msgstr "Port A" + +# +msgid "Port B" +msgstr "Port B" + +# +msgid "Port C" +msgstr "Port C" + +# +msgid "Port D" +msgstr "Port D" + +# +msgid "Portuguese" +msgstr "פורטוגזית" + +msgid "Position of completed timers in timerlist" +msgstr "" + +msgid "Position stored at index" +msgstr "" + +# +msgid "Positioner" +msgstr "Positioner" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "" + +msgid "Positioner setup" +msgstr "Positioner setup" + +# +msgid "Power threshold in mA" +msgstr "" + +# +msgid "Predefined transponder" +msgstr "" + +msgid "Prefer AC3 track" +msgstr "" + +msgid "Prefer AC3+ track" +msgstr "" + +msgid "Prefer audio track stored by service" +msgstr "" + +msgid "Prefer graphical DVB subtitles" +msgstr "" + +msgid "Prefer subtitles for hearing impaired" +msgstr "" + +msgid "Prefer subtitles stored by service" +msgstr "" + +msgid "Preferred tuner" +msgstr "" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "" + +# +msgid "Preparing... Please wait" +msgstr "מכין...× × ×”×ž×ª×Ÿ" + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "" + +msgid "Press MENU on your remote control for additional options." +msgstr "" + +# +msgid "Press OK on your remote control to continue." +msgstr " על השלט על מנת להמשיך OK לחץ " + +msgid "Press OK to activate the selected skin." +msgstr "Press OK to activate the selected skin." + +# +msgid "Press OK to activate the settings." +msgstr "Press OK to activate the settings." + +msgid "Press OK to edit the settings." +msgstr "Press OK to edit the settings." + +#, python-format +msgid "Press OK to get further details for %s" +msgstr "Press OK to get further details for %s" + +# +msgid "Press OK to scan" +msgstr "לחץ ×שר לסריקה" + +#, fuzzy +msgid "Press OK to select a provider." +msgstr "Press OK to select a Provider." + +msgid "Press OK to select satellites" +msgstr "" + +msgid "Press OK to select/deselect a CAId." +msgstr "Press OK to select/deselect a CAId." + +# +msgid "Press OK to start the scan" +msgstr "לחץ ×שר לתחילת הסריקה" + +msgid "Press OK to toggle the selection" +msgstr "" + +msgid "Press OK to toggle the selection." +msgstr "Press OK to toggle the selection." + +msgid "Press yellow to set this interface as default interface." +msgstr "לחץ על הצהוב לקביעת הממשק ×”×–×” כברירת מחדל" + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "" + +msgid "Preview" +msgstr "תצוגה מקדימה" + +msgid "Preview menu" +msgstr "תצוגה מקדימה לתפריט" + +msgid "Preview selected channel" +msgstr "" + +msgid "Primary DNS" +msgstr "Primary DNS" + +msgid "Priority" +msgstr "עדיפות" + +msgid "Process" +msgstr "Process" + +msgid "Progress" +msgstr "" + +msgid "Progress bar left" +msgstr "" + +msgid "Progress bar right" +msgstr "" + +msgid "Properties of current title" +msgstr "Properties of current title" + +msgid "Protect services" +msgstr "Protect services" + +msgid "Protect setup" +msgstr "Protect setup" + +msgid "Provider" +msgstr "Provider" + +msgid "Provider to scan" +msgstr "Provider to scan" + +# +msgid "Providers" +msgstr "Providers" + +msgid "Put TV in standby" +msgstr "" + +msgid "Put receiver in standby" +msgstr "" + +# +msgid "Python frontend for /tmp/mmi.socket" +msgstr "" + +msgid "Quick" +msgstr "מהיר" + +#, fuzzy +msgid "Quick zap" +msgstr "זיפזופ מהיר" + +msgid "RF output" +msgstr "RF output" + +msgid "RGB" +msgstr "RGB" + +msgid "Radio" +msgstr "רדיו" + +# +#, fuzzy +msgid "Ram disk" +msgstr "כונן קשיח" + +msgid "Random" +msgstr "רנדומלי" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "" + +msgid "Rating undefined" +msgstr "" + +msgid "Really close without saving settings?" +msgstr "?לסגור מבלי לשמור ×ת השינויי×" + +msgid "Really delete done timers?" +msgstr "?×”×× ×œ×ž×—×•×§ ×˜×™×™×ž×¨×™× ×©×‘×•×¦×¢×•" + +# +msgid "Really exit the subservices quickzap?" +msgstr "" + +msgid "Really reboot now?" +msgstr "?לבצע ×יתחול עכשיו" + +msgid "Really restart now?" +msgstr "?לבצע ×יתחול עכשיו" + +msgid "Really shutdown now?" +msgstr "?לבצע כיבוי עכשיו" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "" + +msgid "Reboot" +msgstr "×יתחול" + +msgid "Rec" +msgstr "" + +# +#, fuzzy +msgid "Reception settings" +msgstr "Reception Settings" + +# +msgid "Record" +msgstr "הקלטה" + +# +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "%s זמן הקלטה הוגבל עקב התנגשות בין טיימרי×" + +msgid "Recorded files..." +msgstr "...×§×‘×¦×™× ×©×”×•×§×œ×˜×•" + +# +msgid "Recording" +msgstr "מקליט" + +msgid "Recording in progress" +msgstr "" + +msgid "Recording paths" +msgstr "מיקומי הקלטה" + +msgid "Recording type" +msgstr "" + +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "Recording(s) are in progress or coming up in few seconds!" + +msgid "Recordings" +msgstr "הקלטות" + +msgid "Recordings always have priority" +msgstr "Recordings always have priority" + +msgid "Red button..." +msgstr "" + +msgid "Reenter new PIN" +msgstr "" + +#, fuzzy +msgid "Refresh rate" +msgstr "Refresh Rate" + +msgid "Refresh rate selection." +msgstr "Refresh rate selection." + +msgid "Regard deep standby as standby" +msgstr "" + +msgid "Relative" +msgstr "" + +msgid "Reload" +msgstr "טען מחדש" + +# +#, fuzzy +msgid "Reload black-/white lists" +msgstr "Reload Black-/Whitelists" + +msgid "Reloading bouquets and services..." +msgstr "" + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "" + +msgid "Remember these settings for each folder" +msgstr "" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "" + +# +#, fuzzy +msgid "Remote control type" +msgstr "סוג בקרת הורי×" + +#, fuzzy +msgid "Removal has completed." +msgstr ".הסרה נכשלה" + +msgid "Remove" +msgstr "הסר" + +msgid "Remove a mark" +msgstr "הסר סמן" + +# +#, fuzzy +msgid "Remove a nameserver entry" +msgstr "remove a nameserver entry" + +# +#, fuzzy +msgid "Remove bookmark" +msgstr "remove bookmark" + +msgid "Remove completed timers after (days)" +msgstr "" + +msgid "Remove currently selected title" +msgstr "Remove currently selected title" + +msgid "Remove items from trash can after (days)" +msgstr "" + +msgid "Remove plugins" +msgstr "הסר פל××’×™× ×™×" + +msgid "Remove title" +msgstr "הסר כותרת" + +msgid "Removing" +msgstr "מסיר" + +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Removing directory %s failed. (Maybe not empty.)" + +#, fuzzy +msgid "Removing partition table" +msgstr "הסר כותרת" + +msgid "Rename" +msgstr "שנה ש×" + +msgid "Repeat" +msgstr "" + +#, fuzzy +msgid "Repeat type" +msgstr "Repeat Type" + +# +msgid "Repeating event currently recording... What do you want to do?" +msgstr "" + +msgid "Repeats" +msgstr "Repeats" + +msgid "Require authentication for http streams" +msgstr "" + +msgid "Required medium type:" +msgstr "Required medium type:" + +msgid "Rereading partition table" +msgstr "" + +msgid "Reserved" +msgstr "" + +# +msgid "Reset" +msgstr "Reset" + +# +msgid "Reset and renumerate title names" +msgstr "" + +msgid "Reset playback position" +msgstr "" + +msgid "Reset video enhancement settings to system defaults?" +msgstr "Reset video enhancement settings to system defaults?" + +msgid "Reset video enhancement settings to your last configuration?" +msgstr "Reset video enhancement settings to your last configuration?" + +# +msgid "Resolution" +msgstr "" + +# +msgid "Restart" +msgstr "×יתחול" + +msgid "Restart GUI now?" +msgstr "GUI ?×יתחול עכשיו" + +msgid "Restart enigma" +msgstr "" + +msgid "Restart network" +msgstr "×יתחול רשת" + +msgid "Restart test" +msgstr "×יתחול בדיקה" + +msgid "Restart your network connection and interfaces.\n" +msgstr ".×יתחול חיבורי רשת וממשקי×\n" + +msgid "Restore" +msgstr "שחזור" + +msgid "Restore backups" +msgstr "שחזור גיבויי×" + +msgid "Restore is running..." +msgstr "...שחזור בפעולה" + +msgid "Restore system settings" +msgstr "שחזור הגדרות מערכת" + +#, fuzzy +msgid "Restoring..." +msgstr "...מקליט" + +msgid "Resume from last position" +msgstr "Resume from last position" + +#, python-format +msgid "Resume position at %s" +msgstr "Resume position at %s" + +# +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Resuming playback" + +msgid "Return to movie list" +msgstr "חזור לרשימת הסרטי×" + +msgid "Return to previous service" +msgstr "Return to previous service" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +msgid "Rewind speeds" +msgstr "מהירות הרצה ×חורנית" + +msgid "Rewrap teletext subtitles" +msgstr "" + +msgid "Right" +msgstr "ימין" + +msgid "Right from servicename" +msgstr "" + +msgid "Roll-off" +msgstr "" + +msgid "Romanian" +msgstr "" + +msgid "Root directory" +msgstr "" + +msgid "Rotor step position:" +msgstr "" + +# +msgid "Rotor turning speed" +msgstr "Rotor turning speed" + +msgid "Round start time on" +msgstr "" + +# +msgid "Russian" +msgstr "רוסית" + +msgid "S-Video" +msgstr "S-Video" + +msgid "SID" +msgstr "" + +# +msgid "SINGLE LAYER DVD" +msgstr "SINGLE LAYER DVD" + +# +msgid "SNR" +msgstr "SNR" + +# +msgid "SNR:" +msgstr "SNR:" + +# +msgid "SSID:" +msgstr "SSID:" + +msgid "Same resolution as skin" +msgstr "" + +# +msgid "Sat" +msgstr "Sat" + +# +msgid "Satellite" +msgstr "לוויין" + +# +#, fuzzy +msgid "Satellite dish setup" +msgstr "הגדרת ציוד לוויין" + +msgid "Satellite equipment" +msgstr "ציוד לוויין" + +# +#, fuzzy +msgid "Satellite equipment setup" +msgstr "הגדרת ציוד לוויין" + +msgid "Satellite longitude:" +msgstr "" + +# +msgid "Satellites" +msgstr "לווייני×" + +msgid "Satfinder" +msgstr "Satfinder" + +# +msgid "Sats" +msgstr "Sats" + +msgid "Saturation" +msgstr "Saturation" + +# +msgid "Saturday" +msgstr "שבת" + +msgid "Save" +msgstr "שמור" + +#, fuzzy +msgid "Save playlist" +msgstr "save playlist" + +msgid "Save timeshift file" +msgstr "" + +msgid "Save timeshift file in movie directory" +msgstr "" + +# +msgid "Scaler sharpness" +msgstr "" + +#, fuzzy +msgid "Scaling mode" +msgstr "Scaling Mode" + +msgid "Scan" +msgstr "" + +msgid "Scan " +msgstr "סרוק" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, fuzzy, python-format +msgid "Scan %s" +msgstr "סרוק" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, python-format +msgid "Scan %s band" +msgstr "" + +# +msgid "Scan additional SR" +msgstr "Scan additional SR" + +# +#, fuzzy +msgid "Scan files..." +msgstr "...סרוק קבצי×" + +#, fuzzy +msgid "Scan wireless networks" +msgstr "סרוק רשתות ×לחוטיות" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "Scan your network for wireless access points and connect to them using your selected wireless device.\n" + +#, python-format +msgid "Scanning %s..." +msgstr "" + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "" +msgstr[1] "" + +msgid "Scanning failed!" +msgstr "" + +msgid "Scanning..." +msgstr "" + +# +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "" + +msgid "Search east" +msgstr "Search east" + +msgid "Search west" +msgstr "Search west" + +msgid "Searching" +msgstr "" + +msgid "Searching east ..." +msgstr "" + +msgid "Searching for available updates. Please wait..." +msgstr "Searching for available updates. Please wait..." + +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "Searching for new installed or removed packages. Please wait..." + +msgid "Searching west ..." +msgstr "" + +msgid "Second cable of motorized LNB" +msgstr "" + +msgid "Secondary DNS" +msgstr "Secondary DNS" + +# +msgid "Seek" +msgstr "Seek" + +#, fuzzy +msgid "Seek backward" +msgstr "דלג ×חורה" + +#, fuzzy +msgid "Seek backward (enter time)" +msgstr "דלג ×חורה - הכנס זמן" + +#, fuzzy +msgid "Seek forward" +msgstr "דלג קדימה" + +#, fuzzy +msgid "Seek forward (enter time)" +msgstr "דלג קדימה - הכנס זמן" + +msgid "Select" +msgstr "בחר" + +#, fuzzy +msgid "Select CAId" +msgstr "בחר" + +# +msgid "Select HDD" +msgstr "Select HDD" + +# +#, fuzzy +msgid "Select a bouquet" +msgstr "Select a movie" + +# +msgid "Select a movie" +msgstr "Select a movie" + +#, fuzzy +msgid "Select a network adapter" +msgstr "Select Network Adapter" + +# +#, fuzzy +msgid "Select a skin" +msgstr "Select a movie" + +# +#, fuzzy +msgid "Select a tuner" +msgstr "Select a movie" + +#, fuzzy +msgid "Select a wireless network" +msgstr "בחר רשת ×לחוטית" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +msgid "Select an image to be downloaded" +msgstr "" + +msgid "Select audio track" +msgstr "Select audio track" + +#, fuzzy +msgid "Select backup files" +msgstr "בחר קבצי גיבוי" + +#, fuzzy +msgid "Select backup location" +msgstr "בחר ×ž×§×•× ×’×™×‘×•×™" + +# +msgid "Select channel to record from" +msgstr "Select channel to record from" + +msgid "Select copy destination for:" +msgstr "" + +msgid "Select default EPG type..." +msgstr "" + +msgid "Select desired image from feed list" +msgstr "" + +msgid "Select destination for:" +msgstr "" + +msgid "Select files for backup." +msgstr "" + +msgid "Select files/folders to backup" +msgstr "Select files/folders to backup" + +msgid "Select input device" +msgstr "" + +msgid "Select input device." +msgstr "" + +msgid "Select interface" +msgstr "בחר ממשק" + +#, fuzzy +msgid "Select location" +msgstr "Select Location" + +# +#, fuzzy +msgid "Select movie" +msgstr "Select a movie" + +msgid "Select provider to add..." +msgstr "Select provider to add..." + +msgid "Select refresh rate" +msgstr "Select refresh rate" + +msgid "Select satellites" +msgstr "" + +msgid "Select service to add..." +msgstr "Select service to add..." + +msgid "Select sort method:" +msgstr "" + +# +#, fuzzy +msgid "Select target folder" +msgstr "בחר תיקיית יעד" + +#, fuzzy +msgid "Select the movie path" +msgstr "select the movie path" + +#, fuzzy +msgid "Select upgrade source" +msgstr "Select upgrade source to edit." + +msgid "Select upgrade source to edit." +msgstr "Select upgrade source to edit." + +# +msgid "Select video input with up/down buttons" +msgstr "Select video input with up/down buttons" + +msgid "Select video mode" +msgstr "Select video mode" + +msgid "Select wireless network" +msgstr "בחר רשת ×לחוטית" + +msgid "Select your provider, and press OK to start the scan" +msgstr "" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +msgid "Send DiSEqC only on satellite change" +msgstr "Send DiSEqC only on satellite change" + +msgid "Separate titles with a main menu" +msgstr "Separate titles with a main menu" + +msgid "Sequence repeat" +msgstr "Sequence repeat" + +# +msgid "Serbian" +msgstr "סרבית" + +# +msgid "Service" +msgstr "שירות" + +# +msgid "Service has been added to the favourites." +msgstr "Service has been added to the favourites." + +msgid "Service has been added to the selected bouquet." +msgstr "Service has been added to the selected bouquet." + +# +#, fuzzy +msgid "Service info" +msgstr "Serviceinfo" + +# +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" + +# +#, fuzzy +msgid "Service name" +msgstr "סרוקת שירות" + +# +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" + +msgid "Service reference" +msgstr "" + +# +msgid "Service scan" +msgstr "סריקת שירותי×" + +# +#, fuzzy +msgid "Service searching" +msgstr "סורק שירות" + +#, fuzzy +msgid "Service title mode" +msgstr "Select video mode" + +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"!×©×™×¨×•×ª×œ× ×–×ž×™×Ÿ\n" +"בדוק הגדרות טיונר" + +# +msgid "Services" +msgstr "שירותי×" + +msgid "Set default" +msgstr "" + +# +#, fuzzy +msgid "Set end time" +msgstr "כוון זמן סיו×" + +msgid "Set fixed" +msgstr "" + +msgid "Set fps for external subtitles" +msgstr "" + +# +msgid "Set interface as default Interface" +msgstr "Set interface as default Interface" + +msgid "Set limits" +msgstr "" + +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "" + +msgid "Set time window to 1 hour" +msgstr "" + +msgid "Set time window to 2 hours" +msgstr "" + +msgid "Set time window to 3 hours" +msgstr "" + +msgid "Set time window to 4 hours" +msgstr "" + +msgid "Set time window to 5 hours" +msgstr "" + +msgid "Set time window to 6 hours" +msgstr "" + +# +#, fuzzy +msgid "Set voltage and 22KHz" +msgstr "Set Voltage and 22KHz" + +msgid "Settings" +msgstr "הגדרות" + +# +msgid "Setup" +msgstr "הגדרות" + +msgid "Setup menu" +msgstr "" + +#, fuzzy +msgid "Setup mode" +msgstr "Setup Mode" + +msgid "Setup your positioner" +msgstr "" + +#, fuzzy +msgid "Setup your satellite equipment" +msgstr "ציוד לוויין" + +# +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "" + +msgid "Sharpness" +msgstr "חדות" + +msgid "Short filenames" +msgstr "" + +msgid "Show EIT now/next in infobar" +msgstr "" + +#, fuzzy +msgid "Show EPG for current channel..." +msgstr "Show infobar on event change" + +# +#, fuzzy +msgid "Show EPG..." +msgstr " הר××” EPG..." + +msgid "Show Games show" +msgstr "" + +msgid "Show SNR percentage instead of dB value" +msgstr "" + +msgid "Show VCR scart on main menu" +msgstr "" + +# +#, fuzzy +msgid "Show WLAN status" +msgstr "הצג סטטוס רשת ×לחוטית" + +msgid "Show animation while busy" +msgstr "" + +#, fuzzy +msgid "Show background in radio mode" +msgstr "תמונת רקע" + +msgid "Show bouquet selection menu" +msgstr "" + +msgid "Show busy indicator when the system is busy." +msgstr "" + +msgid "Show channel numbers in channel selection" +msgstr "" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "" + +msgid "Show detailed event info" +msgstr "" + +#, fuzzy +msgid "Show event details" +msgstr "הצג מידע על ×”×ירוע" + +# +msgid "Show event-progress in channel selection" +msgstr "" + +#, fuzzy +msgid "Show extended description" +msgstr "הר××” מידע מורחב" + +#, fuzzy +msgid "Show extensions..." +msgstr "...הצג תוספות" + +msgid "Show icon for new/unseen items" +msgstr "" + +msgid "Show in extensions menu" +msgstr "" + +# +#, fuzzy +msgid "Show info" +msgstr "הצג מידע" + +#, fuzzy +msgid "Show info line" +msgstr "show Infoline" + +msgid "Show infobar on channel change" +msgstr "Show infobar on channel change" + +msgid "Show infobar on event change" +msgstr "Show infobar on event change" + +msgid "Show infobar on skip forward/backward" +msgstr "Show infobar on skip forward/backward" + +msgid "Show latest commits on sourceforge" +msgstr "" + +# +#, fuzzy +msgid "Show message when recording starts" +msgstr "הצג הודעה ×›×שר הקלטה מתחילה" + +# +#, fuzzy +msgid "Show movie lengths in movielist" +msgstr "טען ×ורך הסרט ברשימת הסרטי×" + +msgid "Show multi channel EPG" +msgstr "" + +msgid "Show picons in channel list" +msgstr "" + +msgid "Show positioner movement" +msgstr "Show positioner movement" + +msgid "Show screensaver" +msgstr "" + +msgid "Show second infobar" +msgstr "" + +msgid "Show service type icons" +msgstr "" + +# +msgid "Show services beginning with" +msgstr "Show services beginning with" + +#, fuzzy +msgid "Show shutdown menu" +msgstr "הר××” תפריט כיבוי" + +msgid "Show single service EPG" +msgstr "" + +msgid "Show status icons in Movielist" +msgstr "" + +msgid "Show status icons in movie list" +msgstr "" + +msgid "Show status icons in movielist" +msgstr "" + +# +#, fuzzy +msgid "Show tag menu" +msgstr "show DVD main menu" + +# +msgid "Show the radio player..." +msgstr "...הצג ×ת נגן הרדיו" + +# +msgid "Show the tv player..." +msgstr "Show the tv player..." + +msgid "Show warning when timeshift is stopped" +msgstr "" + +# +msgid "Shows the state of your wireless LAN connection.\n" +msgstr ".הצג סטטוס חיבור של הרשת ×”×לחוטית\n" + +#, fuzzy +msgid "Shuffle playlist" +msgstr "clear playlist" + +# +msgid "Shutdown" +msgstr "כיבוי" + +msgid "Shutdown when in Standby" +msgstr "" + +msgid "Side by side" +msgstr "" + +msgid "Signal OK, proceeding" +msgstr "" + +msgid "Signal quality" +msgstr "" + +# +#, fuzzy +msgid "Signal strength:" +msgstr "Signal Strength:" + +# +msgid "Signal: " +msgstr "Signal: " + +# +msgid "Similar" +msgstr "Similar" + +msgid "Similar broadcasts:" +msgstr "Similar broadcasts:" + +# +msgid "Simple" +msgstr "Simple" + +# +msgid "Simple titleset (compatibility for legacy players)" +msgstr "" + +# +msgid "Single" +msgstr "Single" + +msgid "Single EPG" +msgstr " יחיד EPG" + +# +msgid "Single satellite" +msgstr "יחיד satellite" + +# +#, fuzzy +msgid "Single step (GOP)" +msgstr "יחיד satellite" + +# +msgid "Single transponder" +msgstr "Single transponder" + +msgid "Site latitude" +msgstr "" + +msgid "Site longitude" +msgstr "" + +# +msgid "Skin" +msgstr "Skin" + +# +msgid "Skins" +msgstr "Skins" + +#, fuzzy +msgid "Skip empty services" +msgstr "Protect services" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "" + +# +#, fuzzy +msgid "Sleep timer" +msgstr "טיימר שינה" + +msgid "SleepTimer Configuration" +msgstr "" + +msgid "Sleeptimer" +msgstr "" + +#, fuzzy +msgid "Slide picture in loop" +msgstr "הצג תמונות בלול××”" + +#, fuzzy +msgid "Slide show interval (sec.)" +msgstr "משך המצגת (sec.)" + +#, python-format +msgid "Slot %d" +msgstr "Slot %d" + +msgid "Slovak" +msgstr "" + +# +msgid "Slovenian" +msgstr "סלובנית" + +msgid "Slow" +msgstr "Slow" + +#, fuzzy +msgid "Slow motion speeds" +msgstr "Slow Motion speeds" + +# +#, fuzzy +msgid "Small progress" +msgstr "בפעולה" + +msgid "Social/Political/Economics" +msgstr "" + +msgid "SoftCam / CI" +msgstr "" + +#, fuzzy +msgid "Softcam type" +msgstr "תוכנה" + +msgid "Software" +msgstr "תוכנה" + +msgid "Software management" +msgstr "ניהול תוכנה" + +msgid "Software manager setup" +msgstr "" + +msgid "Software restore" +msgstr "שחזור תוכנה" + +msgid "Software update" +msgstr "עדכון תוכנה" + +msgid "Softwaremanager information" +msgstr "" + +msgid "Some plugins are not available:\n" +msgstr "מספר פל××’×™× ×™× ×œ× ×–×ž×™× ×™×:\n" + +#, python-format +msgid "Sorry, %s has not been installed!" +msgstr "" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "" + +#, fuzzy +msgid "Sorry, no backups found!" +msgstr "!×œ× × ×ž×¦×ו גיבויי×" + +# +#, fuzzy +msgid "Sorry, no details available!" +msgstr "!סליחה, ×ין ×¤×¨×˜×™× ×–×ž×™× ×™×" + +#, fuzzy +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +".יעד הגיבוי ×œ× × ×™×ª×Ÿ לכתיבה\n" +".×× × ×‘×—×¨ ×ž×™×§×•× ×חר" + +msgid "Sort" +msgstr "" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Sort A-Z" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +#, fuzzy +msgid "Sort time" +msgstr "Sort Time" + +# +msgid "Sound" +msgstr "קול" + +# +#, fuzzy +msgid "Sound carrier" +msgstr "Soundcarrier" + +msgid "Source request" +msgstr "" + +# +msgid "South" +msgstr "South" + +# +msgid "Spanish" +msgstr "ספרדית" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +# +msgid "Split preview mode" +msgstr "Split preview mode" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "" + +#, fuzzy +msgid "Standard" +msgstr "סטנדרטי" + +msgid "Standart list" +msgstr "" + +msgid "Standby" +msgstr "המתנה" + +#, fuzzy +msgid "Standby / restart" +msgstr " ×יתחול / המתנה" + +msgid "Standby after current event" +msgstr "" + +#, python-format +msgid "Standby fan %d PWM" +msgstr "" + +# +#, fuzzy, python-format +msgid "Standby fan %d voltage" +msgstr " מ×וורר %d מתח" + +msgid "Standby in " +msgstr "" + +msgid "StandbyLED" +msgstr "" + +# +msgid "Start from the beginning" +msgstr "התחל מההתחלה" + +msgid "Start offline decode" +msgstr "" + +# +msgid "Start recording?" +msgstr "?התחל להקליט" + +# +msgid "Start test" +msgstr "התחל בדיקה" + +# +#, fuzzy +msgid "Start time" +msgstr "זמן התחלה" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +#, fuzzy +msgid "Start timeshift" +msgstr "timeshift התחל" + +msgid "Start with list screen" +msgstr "" + +msgid "Starting on" +msgstr "מתחיל ב" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +# +msgid "Step east" +msgstr "Step east" + +# +msgid "Step west" +msgstr "Step west" + +msgid "Stepped east" +msgstr "" + +msgid "Stepped west" +msgstr "" + +# +msgid "Stop" +msgstr "Stop" + +#, fuzzy +msgid "Stop PiP" +msgstr "עצור תמונה בתוך תמונה" + +# +msgid "Stop current event and disable coming events" +msgstr "Stop current event and disable coming events" + +# +msgid "Stop current event but not coming events" +msgstr "Stop current event but not coming events" + +# +#, fuzzy +msgid "Stop entry" +msgstr "עצור בדיקה" + +# +msgid "Stop playing this movie?" +msgstr "?×”×× ×œ×¢×¦×•×¨ ×ת הסרט" + +msgid "Stop recording" +msgstr "" + +msgid "Stop recording and delete" +msgstr "" + +msgid "Stop service on return to movie list" +msgstr "" + +# +msgid "Stop test" +msgstr "עצור בדיקה" + +msgid "Stop testing plane after # failed transponders" +msgstr "Stop testing plane after # failed transponders" + +msgid "Stop testing plane after # successful transponders" +msgstr "Stop testing plane after # successful transponders" + +msgid "Stop timer recording" +msgstr "" + +#, fuzzy +msgid "Stop timeshift" +msgstr "timeshift עצור" + +# +#, fuzzy +msgid "Stop timeshift?" +msgstr "? Timeshift עצור" + +msgid "Stopped" +msgstr "" + +msgid "Store at index" +msgstr "" + +msgid "Store position" +msgstr "Store position" + +# +msgid "Stored position" +msgstr "Stored position" + +msgid "Stream" +msgstr "" + +msgid "Stream request" +msgstr "" + +msgid "Strongest position" +msgstr "" + +# +msgid "Subservice list..." +msgstr "Subservice list..." + +# +msgid "Subservices" +msgstr "Subservices" + +msgid "Subtitle Quickmenu" +msgstr "" + +# +#, fuzzy +msgid "Subtitle alignment" +msgstr "בחירת תרגו×" + +msgid "Subtitle border width" +msgstr "" + +msgid "Subtitle delay when timing is bad" +msgstr "" + +msgid "Subtitle delay when timing lacks" +msgstr "" + +# +#, fuzzy +msgid "Subtitle font size" +msgstr "תרגו×" + +msgid "Subtitle language selection 1" +msgstr "" + +msgid "Subtitle language selection 2" +msgstr "" + +msgid "Subtitle language selection 3" +msgstr "" + +msgid "Subtitle language selection 4" +msgstr "" + +# +#, fuzzy +msgid "Subtitle position" +msgstr "בחירת תרגו×" + +# +msgid "Subtitle selection" +msgstr "בחירת תרגו×" + +msgid "Subtitle selection..." +msgstr "" + +msgid "Subtitle settings" +msgstr "" + +# +msgid "Subtitles" +msgstr "תרגו×" + +# +msgid "Sun" +msgstr "ר×שון" + +# +msgid "Sunday" +msgstr "ר×שון" + +#, fuzzy +msgid "Swap PiP and main picture" +msgstr "move PiP to main picture" + +# +#, fuzzy +msgid "Swap services" +msgstr "שירותי×" + +# +msgid "Swedish" +msgstr "שוודית" + +msgid "Switch TV to correct input" +msgstr "" + +msgid "Switch between filelist/playlist" +msgstr "" + +msgid "Switch between normal mode and list mode" +msgstr "" + +msgid "Switch to HDMI in mode" +msgstr "" + +#, fuzzy +msgid "Switch to filelist" +msgstr "העבר לרשימת הקבצי×" + +msgid "Switch to next channel" +msgstr "" + +#, fuzzy +msgid "Switch to next channel in history" +msgstr "next channel in history" + +# +#, fuzzy +msgid "Switch to next sub service" +msgstr "Switch to next subservice" + +#, fuzzy +msgid "Switch to playlist" +msgstr "העבר לרשימת השמע" + +# +#, fuzzy +msgid "Switch to previous channel" +msgstr "Switch to previous subservice" + +# +#, fuzzy +msgid "Switch to previous channel in history" +msgstr "previous channel in history" + +# +#, fuzzy +msgid "Switch to previous sub service" +msgstr "Switch to previous subservice" + +# +msgid "Switchable tuner types:" +msgstr "" + +msgid "Symbol rate" +msgstr "" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "" + +# +msgid "System" +msgstr "מערכת" + +# +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "" + +# +msgid "TS file is too large for ISO9660 level 1!" +msgstr "" + +msgid "TSID" +msgstr "" + +msgid "TV physical address report" +msgstr "" + +msgid "TXT PID" +msgstr "" + +msgid "Table of contents for collection" +msgstr "" + +msgid "Tags" +msgstr "Tags" + +msgid "Teletext subtitle color" +msgstr "" + +#, fuzzy +msgid "Temperature and fan control" +msgstr "טמפרטורה ובקרת מ×וורר" + +# +msgid "Terrestrial" +msgstr "" + +msgid "Terrestrial provider" +msgstr "Terrestrial provider" + +msgid "Test DiSEqC settings" +msgstr "Test DiSEqC settings" + +# +msgid "Test mode" +msgstr "Test mode" + +msgid "Test the network configuration of your receiver.\n" +msgstr "" + +# +#, fuzzy +msgid "Test type" +msgstr "Test Type" + +#, fuzzy +msgid "Text color" +msgstr "צבע טקסט" + +msgid "Thai" +msgstr "" + +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"Thank you for using the wizard.\n" +"Please press OK to continue." + +#, fuzzy +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"Thank you for using the wizard.\n" +"Please press OK to continue." + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "" + +msgid "The PIN code has been changed successfully." +msgstr "" + +msgid "The PIN codes you entered are different." +msgstr "" + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" + +msgid "The backup failed. Please choose a different backup location." +msgstr "The backup failed. Please choose a different backup location." + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" + +# +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." + +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" + +# +msgid "The following files were found..." +msgstr "The following files were found..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "" + +#, fuzzy +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"The NetworkWizard extension is not installed!\n" +"Please install it." + +#, python-format +msgid "The path %s already exists." +msgstr "The path %s already exists." + +# +msgid "The pin code you entered is wrong." +msgstr ".הקוד שהכנסת שגוי" + +# +#, python-format +msgid "The results have been written to %s." +msgstr "" + +# +msgid "The sleep timer has been activated." +msgstr ".טיימר השינה הופעל" + +# +msgid "The sleep timer has been disabled." +msgstr ".טיימר השינה בוטל" + +#, fuzzy +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"The Softwaremanagement extension is not installed!\n" +"Please install it." + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "" + +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "The timer file (timers.xml) is corrupt and could not be loaded." + +#, fuzzy +msgid "The user interface of your receiver is restarting" +msgstr "...× × ×”×ž×ª×Ÿ בעת ×יתחול הרשת" + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"The wireless LAN plugin is not installed!\n" +"Please install it." + +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "?×”×שף יכול לבצע גיבוי להגדרות. ×”×× ×תה מעוניין לעשות ×–×ת עכשיו" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "" + +msgid "The wizard is finished now." +msgstr "The wizard is finished now." + +msgid "There are at least " +msgstr "There are at least " + +#, fuzzy, python-format +msgid "There are at least %s updates available." +msgstr ".×ין ×¢×“×›×•× ×™× ×–×ž×™× ×™×" + +# +msgid "There are currently no outstanding actions." +msgstr "" + +msgid "There are no updates available." +msgstr ".×ין ×¢×“×›×•× ×™× ×–×ž×™× ×™×" + +msgid "There is no signal to lock on !" +msgstr "" + +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" + +# +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "" + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" + +msgid "This plugin is installed." +msgstr ".הפל×גין ×”×–×” הותקן" + +msgid "This plugin is not installed." +msgstr ".הפל×גין ×”×–×” ×œ× ×”×•×ª×§×Ÿ" + +msgid "This plugin will be installed." +msgstr ".הפל×גין ×”×–×” יותקן" + +msgid "This plugin will be removed." +msgstr ".הפל×גין ×”×–×” יוסר" + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "" + +#, fuzzy +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"This test checks for configured Nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and Adapter setup\n" +"- if you configured your Nameservers manually please verify your entries in the \"Nameserver\" Configuration" + +#, fuzzy +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"This test checks whether a network cable is connected to your LAN-Adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" + +#, fuzzy +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"This test checks whether a valid IP Address is found for your LAN Adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP Address was found\n" +"- please check your DHCP, cabling and adapter setup" + +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" + +#, fuzzy +msgid "This test detects your configured LAN adapter." +msgstr "This test detects your configured LAN-Adapter." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" + +# +msgid "Three" +msgstr "שלוש" + +# +msgid "Threshold" +msgstr "" + +# +msgid "Thu" +msgstr "" + +# +msgid "Thumbnails" +msgstr "" + +# +msgid "Thursday" +msgstr "×™×•× ×—×ž×™×©×™" + +# +msgid "Time" +msgstr "זמן" + +# +#, fuzzy +msgid "Time scale" +msgstr "בחירת טיימר" + +# +msgid "Timer" +msgstr "טיימר" + +msgid "Timer Overview" +msgstr "" + +# +#, fuzzy +msgid "Timer edit" +msgstr "עריכת טיימר" + +# +#, fuzzy +msgid "Timer editor" +msgstr "עורך הטיימר" + +# +msgid "Timer entry" +msgstr "רשומת טיימר" + +msgid "Timer log" +msgstr "טיימר לוג" + +# +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" + +# +#, fuzzy +msgid "Timer overview" +msgstr "רשומת טיימר" + +# +#, fuzzy +msgid "Timer recording location" +msgstr "×ž×™×§×•× ×”×§×œ×˜×” לטיימר" + +# +msgid "Timer sanity error" +msgstr "Timer sanity error" + +# +msgid "Timer selection" +msgstr "בחירת טיימר" + +msgid "Timer selection..." +msgstr "" + +# +#, fuzzy +msgid "Timer type" +msgstr "סוג הטיימר" + +# +msgid "Timeshift" +msgstr "Timeshift" + +msgid "Timeshift Live" +msgstr "" + +# +msgid "Timeshift location" +msgstr "Timeshift ×ž×™×§×•× ×”" + +# +msgid "Timeshift not possible!" +msgstr "Timeshift not possible!" + +# +msgid "Timezone" +msgstr "×יזור זמן" + +# +msgid "Title" +msgstr "כותרת" + +# +msgid "Title properties" +msgstr "מ×פייני הכותרת" + +# +msgid "Titleset mode" +msgstr "" + +msgid "To audio selection" +msgstr "" + +msgid "To subtitle selection" +msgstr "" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" + +# +msgid "Today" +msgstr "היו×" + +msgid "Toggle a cut mark at the current position" +msgstr "" + +# +#, fuzzy +msgid "Tone amplitude" +msgstr "Tone Amplitude" + +# +msgid "Tone mode" +msgstr "Tone mode" + +# +msgid "Toneburst" +msgstr "Toneburst" + +# +msgid "Toneburst A/B" +msgstr "Toneburst A/B" + +msgid "Top and bottom" +msgstr "" + +# +msgid "Track" +msgstr "Track" + +# +msgid "Translation" +msgstr "תרגו×" + +# +msgid "Translation:" +msgstr "תרגו×:" + +msgid "Translations" +msgstr "" + +# +msgid "Transmission mode" +msgstr "Transmission mode" + +# +msgid "Transponder" +msgstr "Transponder" + +# +#, fuzzy +msgid "Transponder type" +msgstr "Transponder" + +msgid "Trash can" +msgstr "" + +# +msgid "Tries left:" +msgstr "" + +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Try to find used transponders in cable network.. please wait..." + +# +msgid "Trying to download a new packetlist. Please wait..." +msgstr "" + +# +msgid "Tue" +msgstr "שלישי" + +# +msgid "Tuesday" +msgstr "×™×•× ×©×œ×™×©×™" + +msgid "Tune" +msgstr "Tune" + +#, fuzzy +msgid "Tune and focus" +msgstr "Tuner מצב ×”" + +msgid "Tune failed!" +msgstr "Tune failed!" + +# +msgid "Tuner" +msgstr "Tuner" + +msgid "Tuner configuration" +msgstr "Tuner הגדרת" + +msgid "Tuner is not supported" +msgstr "" + +#, fuzzy +msgid "Tuner slot" +msgstr "Tuner Slot" + +msgid "Tuner status" +msgstr "Tuner מצב ×”" + +#, fuzzy, python-format +msgid "Tuner status %s" +msgstr "Tuner מצב ×”" + +msgid "Tuner type" +msgstr "Tuner סוג ×”" + +msgid "Turkish" +msgstr "טורקית" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +# +msgid "Two" +msgstr "שתיי×" + +# +msgid "Type" +msgstr "סוג" + +# +msgid "Type of scan" +msgstr "סוג סריקה" + +# +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "" + +msgid "USB stick" +msgstr "" + +# +msgid "USB stick wizard" +msgstr "" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +msgid "Undo install" +msgstr "Undo install" + +msgid "Undo uninstall" +msgstr "Undo uninstall" + +msgid "Unencrypted" +msgstr "" + +# +msgid "UnhandledKey" +msgstr "" + +# +msgid "Unicable" +msgstr "" + +# +msgid "Unicable LNB" +msgstr "" + +# +msgid "Unicable Martix" +msgstr "" + +msgid "Uninstall" +msgstr "הסר" + +# +msgid "Universal LNB" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Unmount" +msgstr "" + +msgid "Unsupported" +msgstr "×œ× × ×ª×ž×š" + +# +msgid "Update" +msgstr "עדכן" + +msgid "Update and ask to reboot" +msgstr "" + +msgid "Update and reboot (recommended)" +msgstr "" + +#, fuzzy +msgid "Update channel list only" +msgstr "next channel in history" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "" +msgstr[1] "" + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "" + +msgid "Update has completed." +msgstr "" + +# +msgid "Updatefeed not available." +msgstr "Updatefeed not available." + +# +msgid "Updating software catalog" +msgstr "מעדכן קטלוג תוכנה" + +# +msgid "Upgrading" +msgstr "משדרג" + +# +msgid "Use" +msgstr "Use" + +# +msgid "Use DHCP" +msgstr "Use DHCP" + +msgid "Use EIT EPG information when it is available." +msgstr "" + +msgid "Use FreeSat EPG information when it is available." +msgstr "" + +msgid "Use MHW EPG information when it is available." +msgstr "" + +msgid "Use Netmed EPG information when it is available." +msgstr "" + +msgid "Use TV remote control" +msgstr "" + +# +#, fuzzy +msgid "Use USALS for this sat" +msgstr "Use usals for this sat" + +msgid "Use ViaSat EPG information when it is available." +msgstr "" + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +# +msgid "Use a gateway" +msgstr "" + +msgid "Use fastscan channel names" +msgstr "" + +msgid "Use fastscan channel numbering" +msgstr "" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "" + +#, fuzzy +msgid "Use interface" +msgstr "Use Interface" + +msgid "Use official channel numbering" +msgstr "" + +msgid "Use original DVB subtitle position" +msgstr "" + +msgid "Use original teletext position" +msgstr "" + +msgid "Use power measurement" +msgstr "Use power measurement" + +#, fuzzy +msgid "Use the network wizard to configure selected network adapter" +msgstr "Use the Networkwizard to configure selected network adapter" + +#, fuzzy +msgid "Use the network wizard to configure your network\n" +msgstr "Use the Networkwizard to configure your Network\n" + +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr ".השתמש במקשי השלט על מנת לבחור ב×פשרות. בסוף, לחץ ×שר" + +#, fuzzy +msgid "Use the wizard to set up basic features" +msgstr "Use wizard to set up basic features" + +#, fuzzy +msgid "Use these input device settings?" +msgstr "Use this video enhancement settings?" + +#, fuzzy +msgid "Use these settings?" +msgstr "שחזור הגדרות מערכת" + +msgid "Use this video enhancement settings?" +msgstr "Use this video enhancement settings?" + +#, fuzzy +msgid "Use trash can in movielist" +msgstr "חזור לרשימת הסרטי×" + +# +msgid "Used service scan type" +msgstr "Used service scan type" + +msgid "User - bouquets" +msgstr "" + +# +msgid "User defined" +msgstr "User defined" + +msgid "User defined transponder" +msgstr "" + +#, fuzzy +msgid "User interface" +msgstr "Use Interface" + +# +msgid "Username" +msgstr "×©× ×ž×©×ª×ž×©" + +#, python-format +msgid "Using LNB %d" +msgstr "" + +msgid "Using fixed address" +msgstr "" + +#, python-format +msgid "Using tuner %s" +msgstr "" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "" + +# +msgid "VCR scart" +msgstr "VCR scart" + +# +msgid "VMGM (intro trailer)" +msgstr "" + +msgid "Vertical" +msgstr "Vertical" + +msgid "Vertical turning speed" +msgstr "" + +msgid "Video PID" +msgstr "" + +msgid "Video enhancement preview" +msgstr "Video enhancement preview" + +msgid "Video enhancement settings" +msgstr "Video enhancement settings" + +msgid "Video enhancement setup" +msgstr "Video enhancement setup" + +#, fuzzy +msgid "Video fine tuning" +msgstr "Video Fine-Tuning" + +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" + +msgid "Video mode selection." +msgstr "Video mode selection." + +# +#, fuzzy +msgid "Video output" +msgstr "Video Output" + +# +#, fuzzy +msgid "Video setup" +msgstr "Video הגדרת" + +# +#, fuzzy +msgid "Video wizard" +msgstr "Video ×שף ×”" + +#, python-format +msgid "Video: %s fps" +msgstr "" + +msgid "VideoMode" +msgstr "" + +msgid "Videocodec" +msgstr "" + +msgid "Videoformat" +msgstr "" + +msgid "Videosize" +msgstr "" + +# +msgid "View Rass interactive..." +msgstr "" + +# +msgid "View details" +msgstr "הצג פרטי×" + +# +msgid "View list of available " +msgstr "" + +# +msgid "View list of available CommonInterface extensions" +msgstr "View list of available CommonInterface extensions" + +# +msgid "View list of available EPG extensions." +msgstr "" + +msgid "View list of available Satellite equipment extensions." +msgstr "View list of available Satellite equipment extensions." + +msgid "View list of available communication extensions." +msgstr "View list of available communication extensions." + +msgid "View list of available default settings" +msgstr "View list of available default settings" + +#, fuzzy +msgid "View list of available display and userinterface extensions." +msgstr "View list of available Display and Userinterface extensions." + +msgid "View list of available multimedia extensions." +msgstr "View list of available multimedia extensions." + +msgid "View list of available networking extensions" +msgstr "View list of available networking extensions" + +msgid "View list of available recording extensions" +msgstr "View list of available recording extensions" + +msgid "View list of available skins" +msgstr "View list of available skins" + +msgid "View list of available software extensions" +msgstr "View list of available software extensions" + +msgid "View list of available system extensions" +msgstr "View list of available system extensions" + +# +#, fuzzy +msgid "View photos..." +msgstr "הצג תמונות" + +# +msgid "View teletext..." +msgstr "" + +# +#, fuzzy +msgid "View video CD..." +msgstr "View Video CD..." + +# +#, fuzzy +msgid "Virtual keyboard" +msgstr "מקלדת וירטו×לית" + +# +msgid "Voltage mode" +msgstr "Voltage mode" + +# +msgid "Volume" +msgstr "Volume" + +# +msgid "W" +msgstr "" + +# +msgid "WEP" +msgstr "" + +msgid "WLAN connection" +msgstr "WLAN connection" + +# +msgid "WPA" +msgstr "WPA" + +# +msgid "WPA or WPA2" +msgstr "WPA or WPA2" + +# +msgid "WPA2" +msgstr "WPA2" + +# +msgid "WSS on 4:3" +msgstr "" + +# +msgid "Waiting" +msgstr "ממתין" + +msgid "Waiting for mount" +msgstr "" + +msgid "Waiting for partition" +msgstr "" + +msgid "Wakeup" +msgstr "" + +msgid "Wakeup TV from standby" +msgstr "" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "" + +msgid "Wakeup signal from TV" +msgstr "" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "" + +# +#, fuzzy +msgid "Watch movies..." +msgstr "...נגן ×¡×¨×˜×™× ×©×”×•×§×œ×˜×•" + +#, fuzzy +msgid "Watch recordings..." +msgstr "...מקליט" + +# +msgid "Wed" +msgstr "רביעי" + +# +msgid "Wednesday" +msgstr "×™×•× ×¨×‘×™×¢×™" + +# +msgid "Weekday" +msgstr "Weekday" + +msgid "Weighted position" +msgstr "" + +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" + +# +msgid "Welcome..." +msgstr "...ברוך הב×" + +# +msgid "West" +msgstr "West" + +msgid "West limit set" +msgstr "" + +# +msgid "What do you want to scan?" +msgstr "?מה ברצונל לסרוק" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "" + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "" + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "" + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "" + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "" + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "" + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "" + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "" + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "" + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "" + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "" + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "" + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "" + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "" + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "" + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "" + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "" + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "" + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "" + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "" + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "" + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "" + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "" + +msgid "When enabled, number markers will be hiden." +msgstr "" + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "" + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "" + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "" + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "" + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "" + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "" + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "" + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "" + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "" + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "" + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "" + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "" + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "" + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "" + +#, fuzzy +msgid "When enabled, use DHCP for the IP configuration." +msgstr "open nameserver configuration" + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "" + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "" + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "" + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "" + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "" + +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" + +msgid "Where do you want to backup your settings?" +msgstr "Where do you want to backup your settings?" + +# +msgid "Where to save temporary timeshift recordings?" +msgstr "Where to save temporary timeshift recordings?" + +msgid "Wireless LAN" +msgstr "Wireless LAN" + +#, fuzzy +msgid "Wireless network" +msgstr "Wireless Network" + +#, fuzzy +msgid "Wireless network configuration..." +msgstr "...הגדרת רשת" + +msgid "Wireless network connection setup" +msgstr "" + +msgid "Wireless network connection setup." +msgstr "" + +msgid "Wireless network state" +msgstr "" + +msgid "With popup" +msgstr "" + +msgid "Without popup" +msgstr "" + +msgid "Would you like to install a softcam?" +msgstr "" + +msgid "Write error while recording. Disk full?\n" +msgstr "Write error while recording. Disk full?\n" + +msgid "Write failed!" +msgstr "Write failed!" + +msgid "YPbPr" +msgstr "YPbPr" + +msgid "Year" +msgstr "שנה" + +msgid "Yellow DVB subtitles" +msgstr "" + +# +msgid "Yes" +msgstr "כן" + +msgid "Yes and save" +msgstr "" + +msgid "Yes and save in movie dir" +msgstr "" + +msgid "Yes to all" +msgstr "כן לכל" + +msgid "Yes, always" +msgstr "" + +msgid "Yes, and delete this movie" +msgstr "כן, ומחק ×ת הסרט ×”×–×”" + +# +msgid "Yes, backup my settings!" +msgstr "!כן, גבה ×ת ההגדרות" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +msgid "Yes, do a manual scan now" +msgstr "Yes, do a manual scan now" + +msgid "Yes, do an automatic scan now" +msgstr "Yes, do an automatic scan now" + +msgid "Yes, do another manual scan now" +msgstr "Yes, do another manual scan now" + +msgid "Yes, perform a shutdown now." +msgstr "Yes, perform a shutdown now." + +msgid "Yes, restore the settings now" +msgstr "Yes, restore the settings now" + +msgid "Yes, returning to movie list" +msgstr "Yes, returning to movie list" + +msgid "Yesterday" +msgstr "" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" + +msgid "You can cancel the installation." +msgstr "You can cancel the installation." + +msgid "You can cancel the removal." +msgstr "You can cancel the removal." + +msgid "You can continue watching TV etc. while this is running." +msgstr "" + +msgid "You can install this plugin." +msgstr "You can install this plugin." + +msgid "You can only burn receiver recordings!" +msgstr "" + +msgid "You can remove this plugin." +msgstr "You can remove this plugin." + +# +msgid "You cannot delete this!" +msgstr "!×ין ×פשרות למחוק ×ת הקובץ ×”×–×”" + +msgid "You didn't select a channel to record from." +msgstr "" + +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "You have chosen to backup your settings. Please press OK to start the backup now." + +# +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "" + +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." + +#, python-format +msgid "You have to wait %s!" +msgstr "You have to wait %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" + +msgid "You system does not support ext4" +msgstr "" + +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "Your backup succeeded. We will now continue to explain the further upgrade process." + +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" + +msgid "Your current collection will get lost!" +msgstr "Your current collection will get lost!" + +# +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "" + +msgid "Your network configuration has been activated." +msgstr "Your network configuration has been activated." + +msgid "Your receiver does not have an internet connection" +msgstr "" + +#, fuzzy +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"Your Dreambox is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" + +msgid "Your receiver is rebooting" +msgstr "" + +msgid "Your receiver is shutting down" +msgstr "" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "" + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "" + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "" + +msgid "Your receiver will got to standby due to inactivity." +msgstr "" + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "" + +# +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" + +msgid "Zap" +msgstr "" + +# +msgid "Zap back to previously tuned service?" +msgstr "?לזפזפ ×חורנית לערוץ הקוד×" + +# +msgid "Zap back to service before positioner setup?" +msgstr "?לזפזפ ×חורנית לערוץ הקוד×" + +# +msgid "Zap back to service before tuner setup?" +msgstr "?לזפזפ ×חורנית לערוץ הקוד×" + +msgid "Zap focus to Picture in Picture" +msgstr "" + +msgid "Zap focus to main screen" +msgstr "" + +msgid "Zap mode" +msgstr "" + +msgid "Zap to selected channel" +msgstr "" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "" + +msgid "[alternative edit]" +msgstr "[alternative edit]" + +msgid "[bouquet edit]" +msgstr "[bouquet edit]" + +msgid "[favourite edit]" +msgstr "[favourite edit]" + +# +msgid "[move mode]" +msgstr "[move mode]" + +# +msgid "a gui to assign services/providers to common interface modules" +msgstr "" + +# +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "" + +msgid "abort alternatives edit" +msgstr "abort alternatives edit" + +# +msgid "abort bouquet edit" +msgstr "abort bouquet edit" + +# +msgid "abort favourites edit" +msgstr "abort favourites edit" + +msgid "about to start" +msgstr "about to start" + +msgid "activate network adapter configuration" +msgstr "activate network adapter configuration" + +msgid "add alternatives" +msgstr "add alternatives" + +msgid "add bookmark" +msgstr "add bookmark" + +msgid "add bouquet" +msgstr "add bouquet" + +msgid "add marker" +msgstr "הוסף סמן" + +# +msgid "add service to bouquet" +msgstr "הוסף ×ת הערוץ לתיקית הערוצי×" + +# +msgid "add service to favourites" +msgstr "הוסף ×ת הערוץ למועדפי×" + +msgid "add to parental protection" +msgstr "הוסף לבקרת הורי×" + +msgid "adult movie/drama" +msgstr "" + +msgid "advanced" +msgstr "מתקד×" + +msgid "adventure/western/war" +msgstr "" + +msgid "advertisement/shopping" +msgstr "" + +msgid "after " +msgstr "" + +#, fuzzy +msgid "alphabetic" +msgstr "alphabetic sort" + +msgid "alphabetic reverse" +msgstr "" + +msgid "alternative" +msgstr "" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "" + +msgid "arts/culture magazine" +msgstr "" + +msgid "athletics" +msgstr "" + +# +msgid "audio tracks" +msgstr "audio tracks" + +msgid "auto" +msgstr "×וטומטי" + +#, fuzzy +msgid "automatic" +msgstr "×וטומטי" + +# +msgid "back" +msgstr "×חורנית" + +msgid "background image" +msgstr "תמונת רקע" + +msgid "ballet" +msgstr "" + +#, python-format +msgid "bc%s" +msgstr "" + +msgid "better" +msgstr "better" + +msgid "black" +msgstr "black" + +msgid "black & white" +msgstr "" + +msgid "blacklist" +msgstr "blacklist" + +msgid "blue" +msgstr "blue" + +msgid "broadcasting/press" +msgstr "" + +#, fuzzy +msgid "by date" +msgstr "מיין לפי ת×ריך" + +msgid "cartoon/puppets" +msgstr "" + +msgid "center" +msgstr "" + +msgid "centered" +msgstr "" + +msgid "centered, wrapped" +msgstr "" + +# +msgid "chapters" +msgstr "chapters" + +msgid "childrens's/youth program (general)" +msgstr "" + +# +msgid "circular left" +msgstr "circular left" + +# +msgid "circular right" +msgstr "circular right" + +msgid "comedy" +msgstr "" + +# +msgid "complex" +msgstr "complex" + +# +msgid "config menu" +msgstr "תפריט הגדרות" + +msgid "confirmed" +msgstr "×ושר" + +msgid "connected" +msgstr "התחבר" + +msgid "continue" +msgstr "המשך" + +msgid "cooking" +msgstr "" + +msgid "copy to bouquets" +msgstr "העתק לתיקית ערוצי×" + +msgid "create directory" +msgstr "צור תיקיה" + +#, python-format +msgid "currently installed image: %s" +msgstr "" + +# +msgid "daily" +msgstr "יומי" + +# +msgid "day" +msgstr "יו×" + +#, fuzzy +msgid "default" +msgstr "ברירת מחדל" + +msgid "delete cut" +msgstr "delete cut" + +msgid "delete..." +msgstr "" + +msgid "descramble and record ecm" +msgstr "" + +msgid "detective/thriller" +msgstr "" + +msgid "disable" +msgstr "הפסק" + +msgid "disable move mode" +msgstr "disable move mode" + +msgid "disabled" +msgstr "disabled" + +msgid "disconnected" +msgstr "disconnected" + +msgid "discussion/interview/debate" +msgstr "" + +msgid "do nothing" +msgstr "do nothing" + +msgid "documentary" +msgstr "" + +msgid "don't descramble, record ecm" +msgstr "" + +msgid "done!" +msgstr "!בוצע" + +msgid "east" +msgstr "" + +msgid "economics/social advisory" +msgstr "" + +msgid "edit alternatives" +msgstr "edit alternatives" + +msgid "education/science/factual topics (general)" +msgstr "" + +msgid "empty" +msgstr "ריק" + +msgid "enable" +msgstr "×פשר" + +# +msgid "enable bouquet edit" +msgstr "enable bouquet edit" + +# +msgid "enable favourite edit" +msgstr "enable favourite edit" + +# +msgid "enable move mode" +msgstr "enable move mode" + +msgid "enabled" +msgstr "×ופשר" + +msgid "end alternatives edit" +msgstr "end alternatives edit" + +# +msgid "end bouquet edit" +msgstr "end bouquet edit" + +msgid "end cut here" +msgstr "end cut here" + +# +msgid "end favourites edit" +msgstr "end favourites edit" + +msgid "entertainment (10-16 year old)" +msgstr "" + +msgid "entertainment (6-14 year old)" +msgstr "" + +msgid "equal to" +msgstr "equal to" + +msgid "equestrian" +msgstr "" + +msgid "exit DVD player or return to file browser" +msgstr "exit DVD player or return to file browser" + +msgid "exit movielist" +msgstr "" + +msgid "exit network adapter configuration" +msgstr "exit network adapter configuration" + +msgid "exit networkadapter setup menu" +msgstr "exit networkadapter setup menu" + +msgid "experimental film/video" +msgstr "" + +msgid "false" +msgstr "" + +msgid "fashion" +msgstr "" + +# +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "" + +msgid "filename" +msgstr "filename" + +msgid "film/cinema" +msgstr "" + +msgid "fine arts" +msgstr "" + +msgid "fine-tune your display" +msgstr "fine-tune your display" + +msgid "fitness & health" +msgstr "" + +#, fuzzy +msgid "flat alphabetic" +msgstr "alphabetic sort" + +#, fuzzy +msgid "flat alphabetic reverse" +msgstr "alphabetic sort" + +msgid "folk/traditional music" +msgstr "" + +msgid "football/soccer" +msgstr "" + +msgid "foreign countries/expeditions" +msgstr "" + +# +msgid "forward to the next chapter" +msgstr "" + +# +msgid "free" +msgstr "" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "" + +msgid "game show/quiz/contest" +msgstr "" + +msgid "gardening" +msgstr "" + +msgid "go to deep standby" +msgstr "go to deep standby" + +msgid "go to standby" +msgstr "go to standby" + +# +msgid "grab this frame as bitmap" +msgstr "" + +msgid "green" +msgstr "ירוק" + +msgid "handicraft" +msgstr "" + +msgid "height" +msgstr "" + +msgid "help..." +msgstr "...עזרה" + +msgid "horizontal" +msgstr "horizontal" + +msgid "information/education/school program" +msgstr "" + +# +msgid "init module" +msgstr "init module" + +# +msgid "init modules" +msgstr "" + +msgid "insert mark here" +msgstr "הכנס סמן ×›×ן" + +msgid "invalid type" +msgstr "" + +msgid "jazz" +msgstr "" + +msgid "jump back to the previous title" +msgstr "jump back to the previous title" + +msgid "jump forward to the next title" +msgstr "jump forward to the next title" + +msgid "languages" +msgstr "" + +# +msgid "leave movie player..." +msgstr "leave movie player..." + +msgid "left" +msgstr "left" + +msgid "left, wrapped" +msgstr "" + +msgid "leisure hobbies (general)" +msgstr "" + +msgid "length" +msgstr "length" + +msgid "limit ..., aborting !" +msgstr "" + +# +msgid "list style compact" +msgstr "" + +# +msgid "list style compact with description" +msgstr "" + +# +msgid "list style default" +msgstr "" + +# +msgid "list style single line" +msgstr "" + +msgid "literature" +msgstr "" + +msgid "live broadcast" +msgstr "" + +msgid "locked" +msgstr "locked" + +msgid "loopthrough to" +msgstr "" + +msgid "magazines/reports/documentary" +msgstr "" + +# +msgid "manual" +msgstr "ידני" + +msgid "martial sports" +msgstr "" + +msgid "medicine/physiology/psychology" +msgstr "" + +msgid "menu" +msgstr "תפריט" + +msgid "mins" +msgstr "דקות" + +msgid "minutes" +msgstr "דקות" + +msgid "month" +msgstr "חודש" + +msgid "motor sport" +msgstr "" + +msgid "motoring" +msgstr "" + +msgid "move down to last entry" +msgstr "move down to last entry" + +msgid "move down to next entry" +msgstr "move down to next entry" + +msgid "move up to first entry" +msgstr "move up to first entry" + +msgid "move up to previous entry" +msgstr "move up to previous entry" + +msgid "movie/drama (general)" +msgstr "" + +msgid "multinorm" +msgstr "multinorm" + +msgid "music/ballet/dance (general)" +msgstr "" + +msgid "musical/opera" +msgstr "" + +msgid "nature/animals/environment" +msgstr "" + +msgid "never" +msgstr "לעול×" + +msgid "new media" +msgstr "" + +msgid "news magazine" +msgstr "" + +msgid "news/current affairs (general)" +msgstr "" + +msgid "news/weather report" +msgstr "" + +# +msgid "no" +msgstr "ל×" + +# +msgid "no CAId selected" +msgstr "" + +# +msgid "no CI slots found" +msgstr "" + +# +msgid "no module found" +msgstr "no module found" + +msgid "no storage devices found" +msgstr "" + +# +msgid "none" +msgstr "none" + +msgid "normal" +msgstr "" + +msgid "not configured" +msgstr "not configured" + +msgid "not locked" +msgstr "not locked" + +msgid "not supported" +msgstr "" + +msgid "not used" +msgstr "×œ× ×‘×©×™×ž×•×©" + +msgid "nothing connected" +msgstr "nothing connected" + +msgid "of a DUAL layer medium used." +msgstr "of a DUAL layer medium used." + +msgid "of a SINGLE layer medium used." +msgstr "of a SINGLE layer medium used." + +# +msgid "off" +msgstr "כבוי" + +msgid "offset is" +msgstr "" + +# +msgid "on" +msgstr "דלוק" + +msgid "on READ ONLY medium." +msgstr "on READ ONLY medium." + +msgid "on end of movie" +msgstr "" + +# +msgid "once" +msgstr "once" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +msgid "open nameserver configuration" +msgstr "open nameserver configuration" + +msgid "original" +msgstr "" + +msgid "original language" +msgstr "" + +msgid "pass" +msgstr "pass" + +msgid "performing arts" +msgstr "" + +msgid "play as picture in picture" +msgstr "" + +msgid "play in mainwindow" +msgstr "" + +msgid "please press OK when ready" +msgstr "please press OK when ready" + +msgid "please wait, loading picture..." +msgstr "...× × ×”×ž×ª×Ÿ, טוען תמונה" + +msgid "popular culture/traditional arts" +msgstr "" + +msgid "pre-school children's program" +msgstr "" + +msgid "receiver software because updates are available." +msgstr "" + +msgid "record" +msgstr "הקלט" + +msgid "recording..." +msgstr "...מקליט" + +msgid "red" +msgstr "×דו×" + +msgid "religion" +msgstr "" + +msgid "remarkable people" +msgstr "" + +# +msgid "remove after this position" +msgstr "remove after this position" + +msgid "remove all alternatives" +msgstr "remove all alternatives" + +msgid "remove all new found flags" +msgstr "remove all new found flags" + +# +msgid "remove before this position" +msgstr "remove before this position" + +# +msgid "remove bookmark" +msgstr "remove bookmark" + +msgid "remove directory" +msgstr "remove directory" + +msgid "remove entry" +msgstr "remove entry" + +msgid "remove from parental protection" +msgstr "remove from parental protection" + +# +msgid "remove new found flag" +msgstr "remove new found flag" + +msgid "remove selected satellite" +msgstr "remove selected satellite" + +msgid "remove this mark" +msgstr "remove this mark" + +msgid "rename entry" +msgstr "" + +msgid "repeat playlist" +msgstr "repeat playlist" + +# +msgid "repeated" +msgstr "repeated" + +msgid "reverse by date" +msgstr "" + +msgid "rewind to the previous chapter" +msgstr "rewind to the previous chapter" + +msgid "right" +msgstr "ימין" + +msgid "right, wrapped" +msgstr "" + +msgid "rock/pop" +msgstr "" + +msgid "romance" +msgstr "" + +msgid "save last directory on exit" +msgstr "save last directory on exit" + +msgid "save playlist on exit" +msgstr "save playlist on exit" + +# +msgid "scan state" +msgstr "מצב סריקה" + +msgid "science fiction/fantasy/horror" +msgstr "" + +# +msgid "second cable of motorized LNB" +msgstr "" + +msgid "seconds" +msgstr "שניות" + +msgid "select" +msgstr "בחר" + +# +msgid "select CAId's" +msgstr "" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +# +msgid "select menu entry" +msgstr "בחר רשומה בתפריט" + +msgid "select movie" +msgstr "בחר סרט" + +msgid "select the movie path" +msgstr "" + +msgid "serious music/classic music" +msgstr "" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "" + +msgid "service PIN" +msgstr "" + +msgid "set as startup service" +msgstr "" + +msgid "setup PIN" +msgstr "" + +# +msgid "show DVD main menu" +msgstr "show DVD main menu" + +msgid "show all tags" +msgstr "" + +msgid "show alternatives" +msgstr "הר××” ×לטרנטיבות" + +msgid "show event details" +msgstr "הצג מידע על ×”×ירוע" + +msgid "show extended description" +msgstr "" + +msgid "show mediaplayer on mainmenu" +msgstr "" + +msgid "show softwaremanager in setup menu" +msgstr "" + +msgid "show softwaremanager on blue button" +msgstr "" + +msgid "show tag menu" +msgstr "" + +msgid "show transponder info" +msgstr "transponder הר××” מידע על ×”" + +msgid "show/game show (general)" +msgstr "" + +msgid "shuffle" +msgstr "" + +msgid "shut down" +msgstr "כיבוי" + +msgid "simple" +msgstr "פשוט" + +msgid "skip backward" +msgstr "דלג ×חורה" + +msgid "skip forward" +msgstr "דלג קדימה" + +msgid "soap/melodram/folkloric" +msgstr "" + +msgid "social/political issues/economics (general)" +msgstr "" + +msgid "social/spiritual science" +msgstr "" + +msgid "sorting of playlists" +msgstr "" + +msgid "special characters" +msgstr "תוויות מיוחדות" + +msgid "special events" +msgstr "" + +msgid "special format data DVD (HDTV compatible)" +msgstr "" + +msgid "sports (general)" +msgstr "" + +msgid "sports magazine" +msgstr "" + +msgid "standard" +msgstr "סטנדרטי" + +msgid "start cut here" +msgstr "התחל גזירה ×›×ן" + +msgid "start directory" +msgstr "התחל תיקיה" + +msgid "stepsize" +msgstr "" + +msgid "stereo" +msgstr "סטרי×ו" + +msgid "stop using as startup service" +msgstr "" + +# +msgid "switch to bookmarks" +msgstr "העבר לסימניות" + +msgid "switch to filelist" +msgstr "העבר לרשימת הקבצי×" + +msgid "switch to the next angle" +msgstr "העבר לזווית הב××”" + +msgid "switch to the next audio track" +msgstr "העבר לפס השמע הב×" + +msgid "switch to the next subtitle language" +msgstr "העבר לשפת ×ª×¨×’×•× ×”×‘××”" + +msgid "talk show" +msgstr "" + +msgid "team sports" +msgstr "" + +msgid "technology/natural science" +msgstr "" + +msgid "template file" +msgstr "קובץ תבנית" + +msgid "tennis/squash" +msgstr "" + +msgid "this recording" +msgstr "ההקלטה הזו" + +msgid "this service is protected by a parental control pin" +msgstr "שירות ×–×” מוגן על ידי בקרת הורי×" + +# +msgid "toggle time, chapter, audio, subtitle info" +msgstr "" + +msgid "top" +msgstr "" + +msgid "tourism/travel" +msgstr "" + +msgid "true" +msgstr "" + +msgid "unavailable" +msgstr "" + +msgid "unconfirmed" +msgstr "×œ× ×ושר" + +msgid "undefined" +msgstr "" + +msgid "unknown" +msgstr "×œ× ×™×“×•×¢" + +# +msgid "unknown service" +msgstr "שירות ×œ× ×™×“×•×¢" + +msgid "unpublished" +msgstr "" + +# +msgid "until standby/restart" +msgstr "until standby/restart" + +# +msgid "user defined" +msgstr "user defined" + +msgid "variety show" +msgstr "" + +# +msgid "vertical" +msgstr "vertical" + +# +msgid "wait for ci..." +msgstr "wait for ci..." + +# +msgid "wait for mmi..." +msgstr "wait for mmi..." + +msgid "waiting" +msgstr "ממתין" + +msgid "water sport" +msgstr "" + +# +msgid "weekly" +msgstr "שבועי" + +msgid "west" +msgstr "" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "" + +msgid "whitelist" +msgstr "רשימה לבנה" + +msgid "width" +msgstr "" + +msgid "winter sport" +msgstr "" + +msgid "wireless network interface" +msgstr "" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "" +msgstr[1] "" + +msgid "working" +msgstr "עובד" + +msgid "yellow" +msgstr "צהוב" + +# +msgid "yes" +msgstr "כן" + +msgid "yes (keep feeds)" +msgstr "כן (שמור פידי×)" + +msgid "zap" +msgstr "זיפזופ" + +msgid "zap and record" +msgstr "" + +msgid "zapped" +msgstr "זופזפ" + +# +#~ msgid "AA" +#~ msgstr "AA" + +# +#~ msgid "AB" +#~ msgstr "AB" + +# +#, fuzzy +#~ msgid "Activate PiP" +#~ msgstr "הפעל תמונה בתוך תמונה" + +#, fuzzy +#~ msgid "Add/remove timer for current event" +#~ msgstr "הקלט - עצור ×חרי ×¡×™×•× ×”×ª×•×›× ×™×ª הנוכחית" + +# +#, fuzzy +#~ msgid "All satellites" +#~ msgstr "כל הלווייני×" + +# +#~ msgid "BA" +#~ msgstr "BA" + +# +#~ msgid "BB" +#~ msgstr "BB" + +#~ msgid "DiSEqC repeats" +#~ msgstr "DiSEqC repeats" + +#~ msgid "No satellite frontend found!!" +#~ msgstr "No satellite frontend found!!" + +#~ msgid "Remove timer" +#~ msgstr "הסר טיימר" + +#~ msgid "Send DiSEqC" +#~ msgstr "Send DiSEqC" + +# +#, fuzzy +#~ msgid "Switch next channel" +#~ msgstr "הערוץ הב×" + +# +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "?לזפזפ ×חורנית לערוץ הקוד×" diff --git a/po/hr.po b/po/hr.po new file mode 100644 index 0000000..84a83d0 --- /dev/null +++ b/po/hr.po @@ -0,0 +1,9455 @@ +# Croatian translations for Enigma2. +# +msgid "" +msgstr "" +"Project-Id-Version: enigma2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2008-01-27 23:38+0100\n" +"Last-Translator: Jurica <jurica@clarkdigital.com>\n" +"Language-Team: <jurica@dream-multimedia.eu>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Croatian\n" +"X-Poedit-Country: CROATIA\n" + +# +msgid "" +"\n" +"Advanced options and settings." +msgstr "" + +# +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" + +# +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" + +# +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" + +# +msgid "" +"\n" +"Restore your backups by date." +msgstr "" + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" + +# +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" + +# +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" + +# +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" + +msgid " (PiP)" +msgstr "" + +msgid " (Radio)" +msgstr "" + +msgid " (TV)" +msgstr "" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +# +msgid " extensions." +msgstr "" + +msgid " ms" +msgstr "" + +# +msgid " packages selected." +msgstr "" + +# +msgid " updates available." +msgstr "" + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "" + +msgid "%A %d %B" +msgstr "" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "" + +# +msgid "%H:%M" +msgstr "%S:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "" + +# +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, fuzzy, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "%d usluga pronaÄ‘eno!" +msgstr[1] "%d usluga pronaÄ‘eno!" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "" +msgstr[1] "" + +# +#, python-format +msgid "%d min" +msgstr "%d min" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d minutes" +msgstr "" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "" +msgstr[1] "" + +# +#, fuzzy, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "/var direktorij" +msgstr[1] "/var direktorij" + +#, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "" +msgstr[1] "" + +msgid "%d-%b-%Y %-H:%M" +msgstr "" + +msgid "%d-%m" +msgstr "" + +# +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "" + +# +#, fuzzy, python-format +msgid "%s %s free disk space" +msgstr "slobodan prostor na disku" + +# +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "" + +#, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%s%d min" +msgstr "" + +#, python-format +msgid "%s/%s: %s" +msgstr "" + +# +msgid "(ZAP)" +msgstr "(ZAP)" + +# +msgid "(empty)" +msgstr "(prazno)" + +# +msgid "(show optional DVD audio menu)" +msgstr "" + +# +msgid "* Only available if more than one interface is active." +msgstr "" + +msgid "/s" +msgstr "" + +# +msgid "0" +msgstr "0" + +# +msgid "1" +msgstr "1" + +# +msgid "1.0" +msgstr "1.0" + +# +msgid "1.1" +msgstr "1.1" + +# +msgid "1.2" +msgstr "1.2" + +# +msgid "12V output" +msgstr "12V izlaz" + +# +msgid "13 V" +msgstr "13 V" + +# +msgid "16:10" +msgstr "" + +# +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +# +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +# +msgid "16:9" +msgstr "16:9" + +# +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +# +msgid "16:9 always" +msgstr "uvijek 16:9 " + +# +msgid "18 V" +msgstr "18 V" + +# +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "" + +msgid "24" +msgstr "" + +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +# +msgid "3" +msgstr "3" + +msgid "30" +msgstr "" + +msgid "3d mode" +msgstr "" + +# +msgid "4" +msgstr "4" + +# +msgid "4:3" +msgstr "" + +# +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +# +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +# +msgid "5" +msgstr "5" + +# +msgid "6" +msgstr "6" + +# +msgid "7" +msgstr "7" + +# +msgid "8" +msgstr "8" + +# +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +# +msgid "<Current movielist location>" +msgstr "" + +# +msgid "<Default movie location>" +msgstr "" + +# +msgid "<Last timer location>" +msgstr "" + +# +msgid "<unknown>" +msgstr "<nepoznato>" + +# +msgid "??" +msgstr "??" + +# +msgid "A" +msgstr "A" + +# +#, fuzzy, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"Datoteka konfiguracije (%s) je bila promjenjena nakon instalacije.\n" +"Želite li zadržati vaÅ¡u verziju?" + +# +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"Datoteka konfiguracije (%s) je bila promjenjena nakon instalacije.\n" +"Želite li zadržati vaÅ¡u verziju?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +# +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "GrafiÄki EPG za sve usluge od specifiÄnog paketa" + +# +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"Snimanje je zapoÄeto:\n" +"%s" + +# +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"Digitalno snimanje je trenutno u tijeku.\n" +"Å to želite uÄiniti?" + +# +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "Snimanje je u tijeku. Molim zaustavite snimanje prije nego pokuÅ¡ate konfigurirati motor." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "" + +# +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "Snimanje je trenutno u tijeku. Molim zaustavite prvo snimanje prije negoli pokrenete Sat tražitelj." + +# +#, python-format +msgid "A required tool (%s) was not found." +msgstr "" + +# +msgid "A search for available updates is currently in progress." +msgstr "" + +# +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +# +msgid "A small overview of the available icon states and actions." +msgstr "" + +# +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"Tajmer je neuspjelo pokuÅ¡ao snimiti!\n" +"Onemogućite TV i pokuÅ¡ati ponovno?\n" + +# +#, fuzzy +msgid "A/V settings" +msgstr "Postavke TV-a" + +msgid "AC3/DTS downmix" +msgstr "" + +# +msgid "Abort" +msgstr "" + +# +msgid "About" +msgstr "O programu" + +# +msgid "About..." +msgstr "O prijemniku..." + +# +msgid "Accesspoint:" +msgstr "" + +# +msgid "Action on long powerbutton press" +msgstr "Djelovanje za dugo pritisnutu tipku paljenja" + +# +msgid "Action on short powerbutton press" +msgstr "" + +# +msgid "Activate Picture in Picture" +msgstr "Aktiviraj Sliku u Slici" + +# +#, fuzzy +msgid "Activate current configuration" +msgstr "Konfiguracija Tunera" + +# +msgid "Activate network settings" +msgstr "Aktiviraj mrežne postavke" + +# +#, fuzzy +msgid "Activate the configured network settings." +msgstr "Aktiviraj mrežne postavke" + +# +msgid "Adapter settings" +msgstr "" + +# +msgid "Add" +msgstr "Dodaj" + +msgid "Add Bookmark" +msgstr "" + +# +msgid "Add a mark" +msgstr "Dodaj oznaku" + +# +#, fuzzy +msgid "Add a nameserver entry" +msgstr "Postavke Nameservera" + +# +msgid "Add a new title" +msgstr "Dodaj novi titl" + +# +#, fuzzy +msgid "Add bookmark" +msgstr "Dodaj oznaku" + +# +#, fuzzy +msgid "Add directory to playlist" +msgstr "dodaj direktorij u playlistu" + +# +#, fuzzy +msgid "Add file to playlist" +msgstr "dodaj datoteku u playlistu" + +# +#, fuzzy +msgid "Add files to playlist" +msgstr "dodaj datoteke u playlistu" + +msgid "Add more details to the crash log" +msgstr "" + +# +#, fuzzy +msgid "Add provider" +msgstr "Pružatelji" + +# +#, fuzzy +msgid "Add recording (enter recording duration)" +msgstr "dodaj snimanje (unesite dužinu snimanja)" + +# +#, fuzzy +msgid "Add recording (enter recording endtime)" +msgstr "dodaj snimanje (unesi zavrÅ¡no vrijeme snimanja)" + +# +#, fuzzy +msgid "Add recording (indefinitely)" +msgstr "dodaj snimanje (nedefinirano)" + +# +#, fuzzy +msgid "Add recording (stop after current event)" +msgstr "dodaj snimanje (zaustavi nakon trenutnog dogaÄ‘aja)" + +# +#, fuzzy +msgid "Add service" +msgstr "Usluge " + +# +msgid "Add timer" +msgstr "Dodaj Tajmer" + +# +msgid "Add title" +msgstr "" + +# +msgid "Add to bouquet" +msgstr "Dodaj u paket" + +# +msgid "Add to favourites" +msgstr "Dodaj u favorite" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "" + +# +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "" + +msgid "Advanced" +msgstr "" + +# +#, fuzzy +msgid "Advanced options" +msgstr "Napredne video postavke" + +# +msgid "Advanced restore" +msgstr "" + +msgid "Advanced software" +msgstr "" + +msgid "Advanced software plugin" +msgstr "" + +# +#, fuzzy +msgid "Advanced video enhancement setup" +msgstr "Napredne video postavke" + +# +#, fuzzy +msgid "Advanced video setup" +msgstr "Napredne video postavke" + +# +msgid "After event" +msgstr "Nakon dogaÄ‘aja" + +# +msgid "Album" +msgstr "Album" + +msgid "Alignment of events" +msgstr "" + +msgid "Alignment of service names" +msgstr "" + +# +msgid "All" +msgstr "Svi" + +msgid "All ages" +msgstr "" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "" + +msgid "Allocate unused memory index" +msgstr "" + +msgid "Allow quit movieplayer with exit" +msgstr "" + +msgid "Allow subtitle language to equal audio language" +msgstr "" + +msgid "Allow subtitles for hearing impaired" +msgstr "" + +# +msgid "Alpha" +msgstr "Alpha" + +# +#, fuzzy +msgid "Alternative" +msgstr "dodaj alternative" + +# +#, fuzzy +msgid "Alternative numbering mode" +msgstr "Alternativni radio mod" + +# +msgid "Alternative services tuner priority" +msgstr "Prioritet alternativnih usluga tunera" + +msgid "Always ask" +msgstr "" + +msgid "Always hide infobar" +msgstr "" + +# +msgid "An empty filename is illegal." +msgstr "" + +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "" + +# +msgid "An unknown error occurred!" +msgstr "" + +msgid "And will put your receiver in standby over " +msgstr "" + +msgid "Any activity" +msgstr "" + +# +msgid "Arabic" +msgstr "Arabski" + +msgid "Are you sure to remove this entry?" +msgstr "" + +# +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" + +# +#, fuzzy +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"Želite li stvarno vratiti sljedeću\n" +"sigurnosnu kopiju:\n" + +# +msgid "Are you sure you want to exit this wizard?" +msgstr "" + +# +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" + +#, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" + +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" + +# +msgid "Artist" +msgstr "IzvoÄ‘aÄ" + +msgid "Arts/Culture" +msgstr "" + +# +msgid "Ask user" +msgstr "" + +# +#, fuzzy +msgid "Aspect ratio" +msgstr "Omjer slike" + +msgid "Assigned CAIds:" +msgstr "" + +msgid "Assigned services/provider:" +msgstr "" + +msgid "At beginning" +msgstr "" + +msgid "At end" +msgstr "" + +# +msgid "Audio" +msgstr "Zvuk" + +msgid "Audio PID" +msgstr "" + +msgid "Audio language selection 1" +msgstr "" + +msgid "Audio language selection 2" +msgstr "" + +msgid "Audio language selection 3" +msgstr "" + +msgid "Audio language selection 4" +msgstr "" + +# +#, fuzzy +msgid "Audio options..." +msgstr "ZvuÄne opcije..." + +#, python-format +msgid "Audio track (%s) format" +msgstr "" + +#, python-format +msgid "Audio track (%s) language" +msgstr "" + +# +msgid "Author: " +msgstr "" + +# +msgid "Authoring mode" +msgstr "" + +# +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Auto" + +# +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "" + +# +msgid "Auto flesh" +msgstr "" + +msgid "Auto focus" +msgstr "" + +msgid "Auto focus commencing ..." +msgstr "" + +msgid "Auto language selection" +msgstr "" + +# +msgid "Auto scart switching" +msgstr "" + +# +msgid "Automatic" +msgstr "" + +# +#, fuzzy +msgid "Automatic scan" +msgstr "Automatsko skeniranje " + +msgid "Automatically start timeshift after" +msgstr "" + +msgid "Automatically turn on external subtitles" +msgstr "" + +# +msgid "Available format variables" +msgstr "" + +# +msgid "B" +msgstr "B" + +# +msgid "BER" +msgstr "BER" + +# +msgid "BER:" +msgstr "BER:" + +# +msgid "Back" +msgstr "" + +# +msgid "Background" +msgstr "" + +msgid "Background color" +msgstr "" + +msgid "Background delete option" +msgstr "" + +msgid "Background delete speed" +msgstr "" + +# +#, fuzzy +msgid "Backup completed." +msgstr "Mod sigurnosne kopije" + +# +msgid "Backup failed." +msgstr "" + +# +msgid "Backup is running..." +msgstr "" + +# +msgid "Backup system settings" +msgstr "" + +# +msgid "Band" +msgstr "Band" + +# +msgid "Bandwidth" +msgstr "Propusnost" + +msgid "Basque" +msgstr "" + +# +msgid "Begin time" +msgstr "PoÄetno vrijeme" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +# +msgid "Behavior of 0 key in PiP-mode" +msgstr "Uloga tipke 0 u PIP-modu" + +# +msgid "Behavior when a movie is started" +msgstr "" + +# +msgid "Behavior when a movie is stopped" +msgstr "" + +# +msgid "Behavior when a movie reaches the end" +msgstr "" + +msgid "Big PiP" +msgstr "" + +# +msgid "Bitrate:" +msgstr "" + +msgid "Black screen" +msgstr "" + +msgid "Black screen till locked" +msgstr "" + +# +msgid "Block noise reduction" +msgstr "" + +# +msgid "Blue boost" +msgstr "" + +# +msgid "Bookmarks" +msgstr "" + +# +msgid "Brightness" +msgstr "Svjetlost" + +msgid "Bulgarian" +msgstr "" + +# +msgid "Burn DVD" +msgstr "Snimi DVD" + +# +#, fuzzy, python-format +msgid "Burn audio track (%s)" +msgstr "Odaberi zvuÄni nosioc" + +# +msgid "Burn existing image to DVD" +msgstr "" + +# +#, fuzzy +msgid "Burn to DVD" +msgstr "Snimi DVD" + +# +msgid "Bus: " +msgstr "Bus:" + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "" + +# +msgid "C" +msgstr "" + +# +msgid "C-Band" +msgstr "C-Band" + +msgid "CH" +msgstr "" + +# +msgid "CI assignment" +msgstr "" + +# +msgid "CVBS" +msgstr "CVBS" + +# +msgid "Cable" +msgstr "Kabel" + +msgid "Cable Scan" +msgstr "" + +# +#, fuzzy +msgid "Cache thumbnails" +msgstr "UÄitaj sliÄice" + +msgid "Calculate" +msgstr "" + +msgid "Calculate all positions" +msgstr "" + +msgid "Calculation complete" +msgstr "" + +msgid "Calibrate" +msgstr "" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "" + +# +msgid "Cancel" +msgstr "Odustani" + +msgid "Cannot determine" +msgstr "" + +msgid "Cannot find any signal ..., aborting !" +msgstr "" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "" + +msgid "Cannot move to trash can" +msgstr "" + +# +msgid "Capacity: " +msgstr "Kapacitet:" + +# +msgid "Card" +msgstr "Kartica" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "" + +msgid "Center time-labels and remove date" +msgstr "" + +# +msgid "Change bouquets in quickzap" +msgstr "Promjeni pakete u brzom prebacivanju" + +# +msgid "Change pin code" +msgstr "Promjeni pin kod" + +# +#, fuzzy +msgid "Change recording (duration)" +msgstr "promjeni dužinu snimanja" + +# +#, fuzzy +msgid "Change recording (endtime)" +msgstr "promjeni snimanje (zavrÅ¡no vijeme)" + +msgid "Change repeat and delay settings?" +msgstr "" + +msgid "Change service PIN" +msgstr "" + +msgid "Change service PINs" +msgstr "" + +msgid "Change setup PIN" +msgstr "" + +# +msgid "Change step size" +msgstr "" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "" + +# +msgid "Channel" +msgstr "Kanal" + +# +#, fuzzy +msgid "Channel list type" +msgstr "Izbornik liste kanala" + +# +msgid "Channel not in services list" +msgstr "" + +# +#, fuzzy +msgid "Channel selection" +msgstr "Sekcija kanala" + +# +msgid "Channel:" +msgstr "Kanal:" + +# +msgid "Channellist menu" +msgstr "Izbornik liste kanala" + +# +msgid "Chap." +msgstr "" + +# +msgid "Chapter" +msgstr "" + +# +msgid "Chapter:" +msgstr "" + +# +msgid "Check" +msgstr "" + +msgid "Check the internet connection" +msgstr "" + +msgid "Check the internet connection again" +msgstr "" + +msgid "Checking filesystem..." +msgstr "" + +msgid "Checking the internet connection" +msgstr "" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" + +msgid "Children/Youth" +msgstr "" + +msgid "Choose which tuner to configure." +msgstr "" + +# +msgid "Circular left" +msgstr "" + +# +msgid "Circular right" +msgstr "" + +# +msgid "Cleanup" +msgstr "ÄŒišćenje" + +msgid "Clear" +msgstr "" + +# +msgid "Clear before scan" +msgstr "ObriÅ¡i prije skeniranja" + +msgid "Clear fixed" +msgstr "" + +# +msgid "Clear log" +msgstr "ObriÅ¡i log" + +# +#, fuzzy +msgid "Clear playlist" +msgstr "oÄisti Playlistu" + +# +msgid "Close" +msgstr "" + +msgid "Close PiP on exit" +msgstr "" + +# +msgid "Close title selection" +msgstr "" + +msgid "Code rate HP" +msgstr "" + +msgid "Code rate LP" +msgstr "" + +# +msgid "Coderate HP" +msgstr "Kodrata HP" + +# +msgid "Coderate LP" +msgstr "Kodrata LP" + +# +msgid "Collection name" +msgstr "" + +# +msgid "Collection settings" +msgstr "" + +# +#, fuzzy +msgid "Color format" +msgstr "Kolor format" + +# +msgid "Command execution..." +msgstr "" + +# +msgid "Command order" +msgstr "Command slijed" + +# +msgid "Common Interface" +msgstr "ZajedniÄko suÄelje" + +# +#, fuzzy +msgid "Common Interface assignment" +msgstr "ZajedniÄko suÄelje" + +# +msgid "Communication" +msgstr "" + +# +#, fuzzy +msgid "Compact flash" +msgstr "Kompakt Flash" + +# +msgid "Complete" +msgstr "Kompletno" + +# +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "" + +msgid "Composition of the recording filenames" +msgstr "" + +# +#, fuzzy +msgid "Configuration mode" +msgstr "Mod Konfiguracije" + +# +#, fuzzy, python-format +msgid "Configuration mode: %s" +msgstr "Mod Konfiguracije" + +# +#, fuzzy +msgid "Configuration..." +msgstr "Mod Konfiguracije" + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "" + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "" + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "" + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "" + +msgid "Configure how recording filenames are constructed." +msgstr "" + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +# +msgid "Configure interface" +msgstr "" + +# +msgid "Configure nameservers" +msgstr "" + +msgid "Configure on which devices the background delete option should be used." +msgstr "" + +# +#, fuzzy +msgid "Configure remote control type" +msgstr "Vrsta roditeljske zaÅ¡tite" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "" + +msgid "Configure the IP address." +msgstr "" + +msgid "Configure the aspect ratio of the screen." +msgstr "" + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "" + +msgid "Configure the behavior when movie playback is started." +msgstr "" + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "" + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "" + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "" + +msgid "Configure the brightness level of the front panel display." +msgstr "" + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "" + +msgid "Configure the color of the teletext subtitles." +msgstr "" + +msgid "Configure the contrast level of the front panel display." +msgstr "" + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "" + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "" + +msgid "Configure the first audio language (highest priority)." +msgstr "" + +msgid "Configure the first subtitle language (highest priority)." +msgstr "" + +msgid "Configure the font size of the subtitles." +msgstr "" + +msgid "Configure the fourth audio language." +msgstr "" + +msgid "Configure the fourth subtitle language." +msgstr "" + +msgid "Configure the function of a long press on the power button." +msgstr "" + +msgid "Configure the function of a short press on the power button." +msgstr "" + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "" + +msgid "Configure the gateway." +msgstr "" + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "" + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "" + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "" + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "" + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "" + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "" + +msgid "Configure the latitude of your location." +msgstr "" + +msgid "Configure the longitude of your location." +msgstr "" + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "" + +msgid "Configure the nameserver (DNS)." +msgstr "" + +msgid "Configure the netmask." +msgstr "" + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "" + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "" + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "" + +msgid "Configure the possible fast forward speeds." +msgstr "" + +msgid "Configure the possible rewind speeds." +msgstr "" + +msgid "Configure the primary EPG language." +msgstr "" + +msgid "Configure the refresh rate of the screen." +msgstr "" + +msgid "Configure the screen resolution in PC output mode." +msgstr "" + +msgid "Configure the second audio language." +msgstr "" + +msgid "Configure the second subtitle language." +msgstr "" + +msgid "Configure the secondary EPG language." +msgstr "" + +msgid "Configure the sharpness of the video scaling." +msgstr "" + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "" + +msgid "Configure the slow motion speeds." +msgstr "" + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "" + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "" + +msgid "Configure the third audio language." +msgstr "" + +msgid "Configure the third subtitle language." +msgstr "" + +msgid "Configure the transparency of the OSD." +msgstr "" + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "" + +# +#, fuzzy +msgid "Configure the tuner mode." +msgstr "Mod Konfiguracije" + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "" + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "" + +msgid "Configure the video output mode (or resolution)." +msgstr "" + +msgid "Configure the way in which the receiver changes channels." +msgstr "" + +msgid "Configure where completed timers show up in the timer list." +msgstr "" + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "" + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "" + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "" + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "" + +msgid "Configure which color format should be used on the SCART output." +msgstr "" + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "" + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "" + +# +msgid "Configure your internal LAN" +msgstr "" + +# +msgid "Configure your network again" +msgstr "" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "" + +# +msgid "Configure your wireless LAN again" +msgstr "" + +msgid "Configures which video output connector will be used." +msgstr "" + +# +msgid "Configuring" +msgstr "Konfiguriram" + +# +msgid "Conflicting timer" +msgstr "Konflikt tajmera" + +# +msgid "Connect" +msgstr "" + +msgid "Connect to a wireless network" +msgstr "" + +msgid "Connected satellites" +msgstr "" + +# +msgid "Connected to" +msgstr "" + +# +msgid "Connected!" +msgstr "" + +# +msgid "Constellation" +msgstr "Konstalacija" + +# +msgid "Content does not fit on DVD!" +msgstr "" + +msgid "Continue" +msgstr "" + +# +msgid "Continue in background" +msgstr "" + +msgid "Continue playback" +msgstr "" + +# +msgid "Continue playing" +msgstr "" + +msgid "Continues play (loop)" +msgstr "" + +# +msgid "Contrast" +msgstr "Kontrast" + +msgid "Convert ext3 filesystem to ext4" +msgstr "" + +msgid "Convert ext3 to ext4" +msgstr "" + +msgid "Converting ext3 to ext4..." +msgstr "" + +msgid "Copy" +msgstr "" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "" + +msgid "Could not find installed channel list." +msgstr "" + +msgid "Could not load medium! No disc inserted?" +msgstr "" + +# +msgid "Could not open Picture in Picture" +msgstr "" + +#, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "" + +#, python-format +msgid "Could not record due to invalid service %s" +msgstr "" + +# +msgid "Create DVD-ISO" +msgstr "" + +msgid "Create more detailed crash log" +msgstr "" + +# +#, python-format +msgid "Creating directory %s failed." +msgstr "" + +msgid "Creating filesystem" +msgstr "" + +msgid "Creating partition" +msgstr "" + +# +msgid "Croatian" +msgstr "Hrvatski" + +msgid "Current CEC address" +msgstr "" + +msgid "Current device: " +msgstr "" + +msgid "Current event EPG" +msgstr "" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +# +msgid "Current settings:" +msgstr "Trenutne postavke" + +# +#, fuzzy +msgid "Current transponder" +msgstr "Trenutni transponder" + +# +msgid "Current value: " +msgstr "" + +# +msgid "Current version:" +msgstr "Trenutna verzija:" + +msgid "Currently installed image" +msgstr "" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +# +#, fuzzy +msgid "Custom skip time for '1'/'3' buttons" +msgstr "Podesivo vrijeme preskoka za '1'/'3'-kljuÄa" + +# +#, fuzzy +msgid "Custom skip time for '4'/'6' buttons" +msgstr "Podesivo vrijeme preskoka za '1'/'3'-kljuÄa" + +# +#, fuzzy +msgid "Custom skip time for '7'/'9' buttons" +msgstr "Podesivo vrijeme preskoka za '1'/'3'-kljuÄa" + +# +msgid "Customize" +msgstr "Prilagodi" + +msgid "Customize channel list cursor behavior" +msgstr "" + +# +msgid "Cut" +msgstr "Odreži" + +# +msgid "Cutlist editor..." +msgstr "Odreži listu editora..." + +# +msgid "Czech" +msgstr "ÄŒeÅ¡ki" + +# +msgid "D" +msgstr "" + +# +msgid "DHCP" +msgstr "" + +# +#, fuzzy +msgid "DMM advanced" +msgstr "napredno" + +msgid "DMM normal" +msgstr "" + +# +msgid "DUAL LAYER DVD" +msgstr "" + +msgid "DVB subtitle black transparency" +msgstr "" + +msgid "DVB-C" +msgstr "" + +msgid "DVB-C ANNEX C" +msgstr "" + +# +msgid "DVB-S" +msgstr "DVB-S" + +# +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "" + +msgid "DVB-T2" +msgstr "" + +msgid "DVD data format" +msgstr "" + +# +#, fuzzy +msgid "DVD file browser" +msgstr "Preglednik dodataka" + +# +msgid "DVD media toolbox" +msgstr "" + +# +#, fuzzy +msgid "DVD player" +msgstr "sakri player" + +# +#, fuzzy +msgid "DVD titlelist" +msgstr "bijelalista" + +# +msgid "Danish" +msgstr "Danski" + +# +msgid "Date" +msgstr "Datum" + +# +#, fuzzy +msgid "Date/time input" +msgstr "Unos Vremena/Datuma" + +# +#, fuzzy +msgid "Deep standby" +msgstr "IskljuÄi Dreambox" + +# +msgid "Default" +msgstr "Tvorni?ko" + +# +msgid "Default movie location" +msgstr "" + +# +#, fuzzy +msgid "Default settings" +msgstr "Trenutne postavke" + +msgid "Delay before key repeat starts:" +msgstr "" + +msgid "Delay for external subtitles" +msgstr "" + +# +msgid "Delete" +msgstr "ObriÅ¡i" + +# +msgid "Delete entry" +msgstr "ObriÅ¡i unos" + +# +msgid "Delete failed!" +msgstr "Brisanje neuspjeÅ¡no!" + +# +#, fuzzy +msgid "Delete file" +msgstr "Brisanje neuspjeÅ¡no!" + +# +#, fuzzy +msgid "Delete playlist entry" +msgstr "obriÅ¡i unos playliste" + +# +#, fuzzy +msgid "Delete saved playlist" +msgstr "obriÅ¡i pohranjenu playlistu" + +msgid "Delete timer" +msgstr "" + +# +#, fuzzy +msgid "Delete..." +msgstr "ObriÅ¡i..." + +msgid "Deleted" +msgstr "" + +msgid "Deleted items" +msgstr "" + +msgid "Depth" +msgstr "" + +msgid "Descramble http streams" +msgstr "" + +# +msgid "Description" +msgstr "Opis" + +# +msgid "Deselect" +msgstr "" + +msgid "Details for plugin: " +msgstr "" + +# +msgid "Detected HDD:" +msgstr "Detektirani Disk:" + +# +msgid "Detected NIMs:" +msgstr "Detektirani NIMs:" + +msgid "Devicename:" +msgstr "" + +msgid "Devide" +msgstr "" + +# +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +# +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +# +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +# +msgid "DiSEqC mode" +msgstr "DiSEqC mod" + +# +#, fuzzy, python-format +msgid "DiSEqC port %s: %s" +msgstr "DiSEqC ponavljanja" + +# +#, fuzzy +msgid "DiSEqC-tester settings" +msgstr "Trenutne postavke" + +# +msgid "Dialing:" +msgstr "" + +# +msgid "Digital contour removal" +msgstr "" + +# +msgid "Direct playback of linked titles without menu" +msgstr "" + +msgid "Directory" +msgstr "" + +#, python-format +msgid "Directory %s does not exist." +msgstr "" + +#, python-format +msgid "Directory %s nonexistent." +msgstr "" + +# +msgid "Directory browser" +msgstr "" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "" + +#, python-format +msgid "Directory contains %s and %s." +msgstr "" + +# +msgid "Disable" +msgstr "Onemogući" + +# +msgid "Disable Picture in Picture" +msgstr "IskljuÄi Sliku u Slici" + +msgid "Disable background scanning" +msgstr "" + +msgid "Disable timer" +msgstr "" + +# +msgid "Disabled" +msgstr "Onemogućeno" + +# +msgid "Disconnect" +msgstr "" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "" + +# +msgid "Display 16:9 content as" +msgstr "" + +# +msgid "Display 4:3 content as" +msgstr "" + +# +msgid "Display >16:9 content as" +msgstr "" + +msgid "Display and userinterface" +msgstr "" + +msgid "Display message before playing next movie" +msgstr "" + +# +#, fuzzy +msgid "Display setup" +msgstr "Postavke prednjeg zaslona" + +# +#, fuzzy +msgid "Do not change" +msgstr "ne mijenjaj" + +# +#, fuzzy +msgid "Do not record" +msgstr "ne snimaj" + +# +#, fuzzy +msgid "Do nothing" +msgstr "niÅ¡ta ne Äini" + +# +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" + +# +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Jeste li sigurni da želite obrisati datoteku %s?" + +# +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" + +# +msgid "Do you really want to exit?" +msgstr "Želite li stvarno izaći?" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" + +# +#, fuzzy, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "Jeste li sigurni da želite obrisati datoteku %s?" + +# +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "" + +# +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "" + +msgid "Do you want this?" +msgstr "" + +# +msgid "Do you want to burn this collection to DVD medium?" +msgstr "" + +# +msgid "Do you want to do a service scan?" +msgstr "Želite li napraviti skeniranje usluga?" + +# +msgid "Do you want to do another manual service scan?" +msgstr "Želite li zapoÄeti drugu ruÄnu pretragu usluga sada?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "" + +# +#, fuzzy +msgid "Do you want to install a channel list?" +msgstr "Želite li napraviti skeniranje usluga?" + +# +msgid "Do you want to install the package:\n" +msgstr "" + +# +msgid "Do you want to play DVD in drive?" +msgstr "" + +# +msgid "Do you want to preview this DVD before burning?" +msgstr "" + +msgid "Do you want to reboot your receiver?" +msgstr "" + +# +msgid "Do you want to remove the package:\n" +msgstr "" + +# +msgid "Do you want to restore your settings?" +msgstr "Želite li vratiti vaÅ¡u listu kanala iz sigurnosne kopije?" + +# +msgid "Do you want to resume this playback?" +msgstr "Želite li nastaviti snimku?" + +# +#, fuzzy, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Želite li vratiti vaÅ¡u listu kanala iz sigurnosne kopije?" + +msgid "Do you want to update your receiver?" +msgstr "" + +# +msgid "Do you want to upgrade the package:\n" +msgstr "" + +# +msgid "Don't stop current event but disable coming events" +msgstr "Ne zaustavljaj trenutni dogaÄ‘aj ali onemogući nadolazeće dogaÄ‘aje" + +# +#, fuzzy, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "UÄinjeno - Instalirano i nadograÄ‘eno %d paketa" +msgstr[1] "UÄinjeno - Instalirano i nadograÄ‘eno %d paketa" + +# +msgid "Download" +msgstr "" + +#, python-format +msgid "Download %s from server" +msgstr "" + +msgid "Download .NFI-files for USB-flasher" +msgstr "" + +# +#, fuzzy +msgid "Download plugins" +msgstr "Skini dodatak" + +# +msgid "Downloadable new plugins" +msgstr "Novi dodaci za skidanje" + +# +msgid "Downloadable plugins" +msgstr "Skini i instaliraj dodatke" + +# +msgid "Downloading" +msgstr "Skidam" + +# +msgid "Downloading plugin information. Please wait..." +msgstr "Skidam informacije o dodacima. Molim priÄekajte..." + +# +msgid "Dutch" +msgstr "Nizozemski" + +# +msgid "Dynamic contrast" +msgstr "" + +# +msgid "E" +msgstr "E" + +msgid "EPG" +msgstr "" + +msgid "EPG language selection 1" +msgstr "" + +msgid "EPG language selection 2" +msgstr "" + +# +#, fuzzy +msgid "EPG selection" +msgstr "EPG selektor " + +msgid "EPG settings" +msgstr "" + +# +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "GREAÅ KA - neuspjelo skeniranje (%s)!" + +# +msgid "East" +msgstr "Istok" + +msgid "East limit set" +msgstr "" + +# +msgid "Edit" +msgstr "" + +# +msgid "Edit DNS" +msgstr "" + +# +msgid "Edit bouquets list" +msgstr "" + +# +msgid "Edit chapters of current title" +msgstr "" + +# +msgid "Edit services list" +msgstr "Editiraj list usluga" + +# +msgid "Edit settings" +msgstr "" + +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "" + +msgid "Edit timer" +msgstr "" + +# +msgid "Edit title" +msgstr "" + +# +msgid "Edit upgrade source url." +msgstr "" + +msgid "Education/Science/..." +msgstr "" + +# +msgid "Electronic Program Guide" +msgstr "ElektroniÄki Programski VodiÄ" + +# +msgid "Enable" +msgstr "Omogući" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +# +msgid "Enable 5V for active antenna" +msgstr "UkljuÄi 5V za aktivnu antenu" + +msgid "Enable EIT EPG" +msgstr "" + +msgid "Enable MHW EPG" +msgstr "" + +msgid "Enable Netmed EPG" +msgstr "" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +# +#, fuzzy +msgid "Enable bouquet selection in multi-EPG" +msgstr "omogući editanje paketa" + +msgid "Enable freesat EPG" +msgstr "" + +# +msgid "Enable multiple bouquets" +msgstr "UkljuÄi viÅ¡estruke pakete" + +# +msgid "Enable parental control" +msgstr "UkljuÄi roditeljsku zaÅ¡titu" + +msgid "Enable teletext caching" +msgstr "" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +# +msgid "Enabled" +msgstr "Omogućeno" + +# +msgid "Encrypted: " +msgstr "" + +# +msgid "Encryption" +msgstr "" + +msgid "Encryption key" +msgstr "" + +msgid "Encryption key type" +msgstr "" + +# +msgid "Encryption:" +msgstr "" + +# +msgid "End time" +msgstr "ZavrÅ¡no vrijeme" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +# +msgid "English" +msgstr "Engleski" + +msgid "Enigma2 skin selector" +msgstr "" + +# +msgid "Enter main menu..." +msgstr "UÄ‘i u Glavni Izbornik" + +# +msgid "Enter pin code" +msgstr "" + +# +msgid "Enter the service pin" +msgstr "Unesite pin za Usluge" + +msgid "Equal to" +msgstr "" + +# +msgid "Error" +msgstr "GreÅ¡ka" + +msgid "Error code" +msgstr "" + +# +msgid "Error executing plugin" +msgstr "" + +# +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" + +# +msgid "Estonian" +msgstr "" + +msgid "Ethernet network interface" +msgstr "" + +msgid "Event font size (relative to skin size)" +msgstr "" + +# +#, fuzzy +msgid "Event view" +msgstr "Pregled dogaÄ‘aja" + +# +#, fuzzy +msgid "Event view menu" +msgstr "Pregled dogaÄ‘aja" + +msgid "Everywhere" +msgstr "" + +# +msgid "Exceeds dual layer medium!" +msgstr "" + +# +msgid "Execution finished!!" +msgstr "IzvoÄ‘enje zavrÅ¡eno!!" + +# +#, fuzzy +msgid "Execution progress:" +msgstr "Tijek izvoÄ‘enja:" + +# +msgid "Exif" +msgstr "" + +# +msgid "Exit" +msgstr "" + +msgid "Exit EPG" +msgstr "" + +# +msgid "Exit editor" +msgstr "IzaÄ‘i iz editora" + +msgid "Exit input device selection." +msgstr "" + +msgid "Exit media player?" +msgstr "" + +# +#, fuzzy +msgid "Exit mediaplayer" +msgstr "IzaÄ‘i iz preglednika medija" + +# +#, fuzzy +msgid "Exit movie list" +msgstr "izaÄ‘i iz izbornika filmova" + +# +#, fuzzy +msgid "Exit movie player?" +msgstr "IzaÄ‘i iz preglednika medija" + +# +#, fuzzy +msgid "Exit nameserver configuration" +msgstr "Konfiguracija Tunera" + +# +#, fuzzy +msgid "Exit network interface list" +msgstr "Editiraj list usluga" + +# +msgid "Exit network wizard" +msgstr "" + +# +msgid "Exit the wizard" +msgstr "IzaÄ‘ite iz Äarobnjaka" + +# +msgid "Expert" +msgstr "Ekspert" + +msgid "Extend sleeptimer 15 minutes" +msgstr "" + +# +msgid "Extended Software" +msgstr "" + +# +msgid "Extended Software Plugin" +msgstr "" + +# +#, fuzzy +msgid "Extended network setup plugin..." +msgstr "ProÅ¡irene postavke..." + +# +#, fuzzy +msgid "Extended setup..." +msgstr "ProÅ¡irene postavke..." + +# +msgid "Extensions" +msgstr "Ekstenzije" + +# +msgid "Extensions management" +msgstr "" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "" + +msgid "Extra motor options" +msgstr "" + +# +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "" + +# +msgid "Factory reset" +msgstr "" + +# +msgid "Failed" +msgstr "" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "" + +# +#, python-format +msgid "Fan %d" +msgstr "" + +# +#, python-format +msgid "Fan %d PWM" +msgstr "" + +# +#, fuzzy, python-format +msgid "Fan %d voltage" +msgstr "Povećani napon" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +# +msgid "Fast" +msgstr "Brzo" + +# +msgid "Fast DiSEqC" +msgstr "Brzi DiSEqC" + +msgid "Fast Scan" +msgstr "" + +# +msgid "Fast epoch" +msgstr "Brza epoha" + +msgid "Fast forward speeds" +msgstr "" + +# +msgid "Favourites" +msgstr "Favoriti" + +msgid "File appears to be busy.\n" +msgstr "" + +msgid "Filesystem check" +msgstr "" + +msgid "Final position at" +msgstr "" + +msgid "Final position at index" +msgstr "" + +msgid "Fine movement" +msgstr "" + +# +msgid "Finetune" +msgstr "Fino pod." + +# +msgid "Finished" +msgstr "" + +# +msgid "Finished configuring your network" +msgstr "" + +# +msgid "Finished restarting your network" +msgstr "" + +# +msgid "Finnish" +msgstr "Finski" + +msgid "Fixed" +msgstr "" + +# +msgid "Flash" +msgstr "" + +# +msgid "Flashing failed" +msgstr "" + +# +msgid "Following tasks will be done after you press OK!" +msgstr "" + +# +msgid "Format" +msgstr "" + +msgid "Forward volume keys" +msgstr "" + +# +msgid "Frame size in full view" +msgstr "" + +# +msgid "French" +msgstr "Francuski" + +# +msgid "Frequency" +msgstr "Frekvencija" + +# +msgid "Frequency bands" +msgstr "Band frekvencije" + +# +msgid "Frequency scan step size(khz)" +msgstr "VeliÄina frekvenskih koraka (khz)" + +# +msgid "Frequency steps" +msgstr "Frekvenski koraci" + +msgid "Frequency:" +msgstr "" + +# +msgid "Fri" +msgstr "Pet" + +# +msgid "Friday" +msgstr "Petak" + +msgid "From :" +msgstr "" + +# +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Verzija Frontprocesora: %d" + +msgid "Full transparency" +msgstr "" + +msgid "Fulview resulution" +msgstr "" + +msgid "Function of OK button" +msgstr "" + +msgid "Further Options" +msgstr "" + +# +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"GUI se treba restartati da se primjeni novo suÄelje\n" +" Želite li restartati GUI sada ?" + +# +msgid "Gateway" +msgstr "Gateway" + +msgid "General AC3 delay" +msgstr "" + +msgid "General PCM delay" +msgstr "" + +# +msgid "Genre" +msgstr "Žanrovi" + +# +msgid "German" +msgstr "NjemaÄki" + +msgid "Get latest experimental image" +msgstr "" + +msgid "Get latest release image" +msgstr "" + +# +msgid "Getting plugin information. Please wait..." +msgstr "Skidam informacije o dodatku. Molim priÄekajte..." + +msgid "Go down the list" +msgstr "" + +msgid "Go to first movie or last item" +msgstr "" + +msgid "Go to first movie or top of list" +msgstr "" + +# +#, fuzzy +msgid "Go to first service" +msgstr "ZaÅ¡titi usluge" + +# +#, fuzzy +msgid "Go to last service" +msgstr "ZaÅ¡titi usluge" + +msgid "Go to next event" +msgstr "" + +# +#, fuzzy +msgid "Go to next page of service" +msgstr "prebaci na sljedeću poduslugu " + +# +#, fuzzy +msgid "Go to previous event" +msgstr "prebaci u predhodnu poduslugu " + +# +#, fuzzy +msgid "Go to previous page of service" +msgstr "prebaci u predhodnu poduslugu " + +msgid "Go up the list" +msgstr "" + +msgid "Goto" +msgstr "" + +# +msgid "Goto 0" +msgstr "PoÄ‘i do 0" + +msgid "Goto :" +msgstr "" + +msgid "Goto X" +msgstr "" + +msgid "Goto index position" +msgstr "" + +msgid "Goto next day of events" +msgstr "" + +msgid "Goto next page of events" +msgstr "" + +# +msgid "Goto position" +msgstr "Goto pozicija" + +msgid "Goto previous day of events" +msgstr "" + +msgid "Goto previous page of events" +msgstr "" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "" + +msgid "GraphMultiEpg Settings" +msgstr "" + +# +msgid "Graphical Multi EPG" +msgstr "GrafiÄki Multi EPG" + +# +msgid "Greek" +msgstr "GrÄki" + +# +msgid "Green boost" +msgstr "" + +msgid "Guard interval" +msgstr "" + +msgid "HD list" +msgstr "" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "" + +msgid "Handle wakeup from TV" +msgstr "" + +# +#, fuzzy +msgid "Hard disk" +msgstr "Tvrdi disk" + +# +#, fuzzy +msgid "Hard disk setup" +msgstr "Postavke tvrdog diska" + +# +#, fuzzy +msgid "Hard disk standby after" +msgstr "IskljuÄi tvrdi disk nakon" + +# +msgid "Harddisk" +msgstr "Tvrdi disk" + +msgid "Hardware: " +msgstr "" + +msgid "Hebrew" +msgstr "" + +msgid "Helps setting up your dish" +msgstr "" + +msgid "Hidden network" +msgstr "" + +msgid "Hide CI messages" +msgstr "" + +msgid "Hide channel list in radio mode" +msgstr "" + +msgid "Hide known extensions" +msgstr "" + +msgid "Hide number markers" +msgstr "" + +# +#, fuzzy +msgid "Hide player" +msgstr "sakri player" + +msgid "Hide zap errors" +msgstr "" + +msgid "Hierarchy info" +msgstr "" + +# +#, fuzzy +msgid "Hierarchy information" +msgstr "Informacije hierhije" + +# +msgid "High bitrate support" +msgstr "" + +msgid "Hold screen" +msgstr "" + +msgid "Hold till locked" +msgstr "" + +msgid "Home" +msgstr "" + +# +msgid "Horizontal" +msgstr "" + +msgid "Horizontal turning speed" +msgstr "" + +# +msgid "How many minutes do you want to record?" +msgstr "Koliko minuta želite snimati ?" + +# +msgid "Hue" +msgstr "" + +# +msgid "Hungarian" +msgstr "MaÄ‘arski" + +# +#, fuzzy +msgid "IP address" +msgstr "IP Adresa" + +# +msgid "ISO file is too large for this filesystem!" +msgstr "" + +# +msgid "ISO path" +msgstr "" + +msgid "Icons" +msgstr "" + +# +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"Ukoliko vidite ovu poruku, neÅ¡to je pogreÅ¡no\n" +"s vaÅ¡im SKART prikljuÄkom. Pritisnite OK za povratak." + +# +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" + +msgid "Image: " +msgstr "" + +# +#, fuzzy +msgid "Immediate shutdown" +msgstr "odmah iskljuÄi" + +# +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "Slijedom da se snimi dogaÄ‘aj postavljen u tajmeru, TV je prebaÄen na uslugu za snimanje!\n" + +# +#, fuzzy +msgid "In progress" +msgstr "Tijek izvoÄ‘enja:" + +msgid "Inactivity Sleeptimer" +msgstr "" + +msgid "Include AIT in http streams" +msgstr "" + +msgid "Include ECM in http streams" +msgstr "" + +msgid "Include EIT in http streams" +msgstr "" + +msgid "Incorrect type service for PiP!" +msgstr "" + +# +msgid "Increased voltage" +msgstr "Povećani napon" + +# +msgid "Index" +msgstr "Index" + +msgid "Index allocated:" +msgstr "" + +# +msgid "Info" +msgstr "" + +# +#, fuzzy +msgid "Info bar" +msgstr "InfoBar " + +# +#, fuzzy +msgid "Info bar timeout" +msgstr "Vrem. istek Infobara" + +msgid "Infobar frontend data source" +msgstr "" + +# +msgid "Information" +msgstr "Informacije" + +# +msgid "Init" +msgstr "Init" + +msgid "Initial fast forward speed" +msgstr "" + +# +msgid "Initial location in new timers" +msgstr "" + +msgid "Initial lock ratio" +msgstr "" + +# +#, fuzzy +msgid "Initial rewind speed" +msgstr "Inicijaliziraj" + +msgid "Initial signal quality" +msgstr "" + +msgid "Initial signal quality:" +msgstr "" + +# +msgid "Initialization" +msgstr "" + +# +msgid "Initialize" +msgstr "Inicijaliziraj" + +msgid "Initializing storage device..." +msgstr "" + +# +msgid "Input" +msgstr "Ulaz " + +msgid "Input device setup" +msgstr "" + +msgid "Input devices" +msgstr "" + +# +msgid "Install" +msgstr "" + +# +msgid "Install a new image with a USB stick" +msgstr "" + +# +msgid "Install a new image with your web browser" +msgstr "" + +# +#, fuzzy +msgid "Install channel list" +msgstr "sljedeći kanal u povijesti" + +msgid "Install extensions" +msgstr "" + +# +msgid "Install extensions." +msgstr "" + +# +msgid "Install local extension" +msgstr "" + +msgid "Install picons on" +msgstr "" + +# +#, fuzzy +msgid "Install softcam" +msgstr "Instaliram Softver..." + +msgid "Installation has completed." +msgstr "" + +msgid "Installation or removal has completed." +msgstr "" + +# +msgid "Installing" +msgstr "Instaliram" + +# +#, fuzzy +msgid "Installing software..." +msgstr "Instaliram Softver..." + +# +#, fuzzy +msgid "Instant recording location" +msgstr "promjeni dužinu snimanja" + +# +#, fuzzy +msgid "Instant recording..." +msgstr "Trenutno Snimanje..." + +# +msgid "Interface: " +msgstr "" + +# +msgid "Intermediate" +msgstr "Srednje" + +# +#, fuzzy +msgid "Internal flash" +msgstr "Unutarnji Flash" + +msgid "Internal hdd only" +msgstr "" + +msgid "Interval between keys when repeating:" +msgstr "" + +# +#, python-format +msgid "Invalid directory selected: %s" +msgstr "" + +msgid "Invalid location" +msgstr "" + +msgid "Invalid transponder data" +msgstr "" + +# +msgid "Inversion" +msgstr "Inverzija" + +# +msgid "Invert" +msgstr "Invertni" + +# +msgid "Ipkg" +msgstr "" + +msgid "Is this setting ok?" +msgstr "" + +msgid "Is this video mode ok?" +msgstr "" + +# +msgid "Italian" +msgstr "Talijanski" + +msgid "Items per page " +msgstr "" + +msgid "Items per page for list screen" +msgstr "" + +msgid "Job overview" +msgstr "" + +msgid "Jump to beginning of list" +msgstr "" + +# +#, fuzzy +msgid "Jump to end of list" +msgstr "skoÄi na kraj liste" + +# +#, fuzzy +msgid "Jump to next marked position" +msgstr "skoÄi do sljedeće oznaÄene pozicije" + +# +#, fuzzy +msgid "Jump to previous marked position" +msgstr "skoÄi do predhodne oznaÄene pozicije" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +msgid "Just scale" +msgstr "" + +msgid "Keep service" +msgstr "" + +# +#, fuzzy +msgid "Kernel version: " +msgstr "Nova verzija:" + +# +msgid "Keyboard" +msgstr "" + +# +#, fuzzy +msgid "Keyboard map" +msgstr "Mapa tipkovnice" + +# +#, fuzzy +msgid "Keyboard setup" +msgstr "Postavke tipkovnice" + +msgid "LAN adapter" +msgstr "" + +msgid "LAN connection" +msgstr "" + +# +msgid "LNB" +msgstr "LNB" + +# +msgid "Language" +msgstr "Jezik" + +# +msgid "Language selection" +msgstr "Odaberite Jezik" + +# +msgid "Last config" +msgstr "" + +# +msgid "Last speed" +msgstr "" + +msgid "Last upgrade: " +msgstr "" + +msgid "Latest Commits" +msgstr "" + +# +msgid "Latitude" +msgstr "Latituda" + +# +msgid "Latvian" +msgstr "" + +# +#, fuzzy +msgid "Leave DVD player?" +msgstr "napusti video ..." + +# +msgid "Left" +msgstr "Lijevo" + +msgid "Left from servicename" +msgstr "" + +msgid "Leisure hobbies" +msgstr "" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "" + +msgid "Letterbox zoom" +msgstr "" + +msgid "Limit character set for recording filenames" +msgstr "" + +# +msgid "Limit east" +msgstr "IstoÄni limit" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "" + +# +msgid "Limit west" +msgstr "Zapadni limit" + +msgid "Limits cancelled" +msgstr "" + +msgid "Limits enabled" +msgstr "" + +# +msgid "Limits off" +msgstr "IskljuÄi limite" + +# +msgid "Limits on" +msgstr "Limite na" + +msgid "Link quality:" +msgstr "" + +# +msgid "Link:" +msgstr "" + +# +msgid "Linked titles with a DVD menu" +msgstr "" + +msgid "List EPG functions..." +msgstr "" + +msgid "List available networks" +msgstr "" + +msgid "List mode" +msgstr "" + +# +#, fuzzy +msgid "List of storage devices" +msgstr "Lista ureÄ‘aja za pohranu" + +msgid "List type" +msgstr "" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "" +msgstr[1] "" + +# +#, fuzzy +msgid "Listen to the radio..." +msgstr "sluÅ¡aj radio..." + +msgid "Lists reloaded!" +msgstr "" + +# +msgid "Lithuanian" +msgstr "Litvanski" + +# +msgid "Load" +msgstr "" + +msgid "Load Length of Movies in Movielist" +msgstr "" + +msgid "Load length of movies in movie list" +msgstr "" + +# +#, fuzzy +msgid "Load playlist" +msgstr "uÄitaj playlistu" + +# +#, fuzzy +msgid "Local network" +msgstr "MreA3a" + +# +msgid "Location" +msgstr "" + +# +msgid "Location for instant recordings" +msgstr "" + +msgid "Lock ratio" +msgstr "" + +# +msgid "Lock:" +msgstr "Lock:" + +# +msgid "Log results to harddisk" +msgstr "" + +msgid "Long filenames" +msgstr "" + +# +#, fuzzy +msgid "Long key press" +msgstr "Dugi pritis tipke" + +# +msgid "Longitude" +msgstr "Longituda" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "" + +# +#, fuzzy +msgid "MMC card" +msgstr "MMC Kartica" + +# +msgid "MORE" +msgstr "VIÅ E" + +# +msgid "Main menu" +msgstr "Glavni izbornik " + +msgid "Maintain old EPG data for" +msgstr "" + +# +msgid "Make this mark an 'in' point" +msgstr "Napravi ovu oznaku kao 'ulaznu' toÄku" + +# +msgid "Make this mark an 'out' point" +msgstr "Napravi ovu oznaku kao 'izlaznu' toÄku" + +# +msgid "Make this mark just a mark" +msgstr "Napravi ovu oznaku samo kao oznaku" + +# +msgid "Manage extensions" +msgstr "" + +# +msgid "Manage your receiver's software" +msgstr "" + +msgid "Manual" +msgstr "" + +# +msgid "Manual Scan" +msgstr "RuÄno skeniranje" + +msgid "Manual configuration" +msgstr "" + +# +#, fuzzy +msgid "Manual scan" +msgstr "RuÄno skeniranje" + +# +msgid "Manual transponder" +msgstr "RuÄno uneseni transponder" + +# +msgid "Manufacturer" +msgstr "" + +# +#, fuzzy +msgid "Margin after recording (minutes)" +msgstr "Rub prije snimanja (u minutama)" + +# +#, fuzzy +msgid "Margin before recording (minutes)" +msgstr "Rub prije snimanja (u minutama)" + +msgid "Max memory positions" +msgstr "" + +msgid "Max. bitrate: " +msgstr "" + +# +msgid "Media player" +msgstr "Preglednik Medija" + +# +#, fuzzy +msgid "Media scanner" +msgstr "Preglednik Medija" + +# +msgid "Medium is not a writeable DVD!" +msgstr "" + +# +msgid "Medium is not empty!" +msgstr "" + +msgid "Memory" +msgstr "" + +msgid "Memory index" +msgstr "" + +# +msgid "Menu" +msgstr "Izbornik " + +# +msgid "Message" +msgstr "Poruka" + +# +msgid "Message..." +msgstr "" + +#, python-format +msgid "Minimum age %d years" +msgstr "" + +msgid "Minimum send interval" +msgstr "" + +msgid "Missing " +msgstr "" + +# +#, fuzzy +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Mod" + +# +#, fuzzy +msgctxt "Video output mode" +msgid "Mode" +msgstr "Mod" + +# +msgid "Model: " +msgstr "Model:" + +# +msgid "Modulation" +msgstr "Modulacija" + +# +msgid "Modulator" +msgstr "Modulator" + +# +msgid "Mon" +msgstr "Pon" + +# +msgid "Mon-Fri" +msgstr "Pon-Pet" + +# +msgid "Monday" +msgstr "Ponedeljak" + +# +msgid "Mosquito noise reduction" +msgstr "" + +msgid "Mount" +msgstr "" + +msgid "Move" +msgstr "" + +# +#, fuzzy +msgid "Move PiP to main picture" +msgstr "premjesti PiP na glavnu sliku" + +# +msgid "Move Picture in Picture" +msgstr "Premjesti Sliku u Slici" + +# +msgid "Move east" +msgstr "Pokreći na istok" + +msgid "Move to other directory" +msgstr "" + +msgid "Move to position X" +msgstr "" + +# +msgid "Move west" +msgstr "Pokreći na zapad" + +msgid "Moved to position 0" +msgstr "" + +msgid "Moved to position at index" +msgstr "" + +msgid "Movement" +msgstr "" + +msgid "Movie List Configuration" +msgstr "" + +msgid "Movie Selection" +msgstr "" + +# +#, fuzzy +msgid "Movie list configuration" +msgstr "Konfiguracija Tunera" + +# +msgid "Movie location" +msgstr "" + +# +#, fuzzy +msgid "Movie selection" +msgstr "Korekcija vremena " + +msgid "Movie/Drama" +msgstr "" + +# +msgid "Movielist menu" +msgstr "Meni izbornika filmova" + +msgid "Moving" +msgstr "" + +msgid "Moving east ..." +msgstr "" + +msgid "Moving to position" +msgstr "" + +msgid "Moving west ..." +msgstr "" + +# +msgid "Multi EPG" +msgstr "Multi EPG" + +msgid "Multi-EPG bouquet selection" +msgstr "" + +# +msgid "Multimedia" +msgstr "" + +# +msgid "Multiple service support" +msgstr "PodrÅ¡ka za viÅ¡estruke usluge" + +msgid "Multiplex" +msgstr "" + +# +msgid "Multisat" +msgstr "Multisat" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "" + +# +msgid "Mute" +msgstr "PriguÅ¡i" + +# +msgid "N/A" +msgstr "N/A" + +# +msgid "NEXT" +msgstr "SLJEDEĆE" + +msgid "NFI image flashing" +msgstr "" + +# +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "" + +msgid "NIM" +msgstr "" + +# +msgid "NOW" +msgstr "SADA" + +# +msgid "NTSC" +msgstr "NTSC" + +# +msgid "Name" +msgstr "Ime" + +# +msgid "Nameserver" +msgstr "Nameserver" + +# +#, python-format +msgid "Nameserver %d" +msgstr "Namerserver %d" + +# +msgid "Nameserver settings" +msgstr "" + +# +#, fuzzy +msgid "Nameserver setup" +msgstr "Postavke Nameservera" + +msgid "Namespace" +msgstr "" + +# +msgid "Netmask" +msgstr "Netmask" + +# +msgid "Network" +msgstr "MreA3a" + +msgid "Network ID" +msgstr "" + +# +#, fuzzy +msgid "Network configuration..." +msgstr "Konfiguracija Tunera" + +# +#, fuzzy +msgid "Network mount" +msgstr "Montiranje mreže" + +# +#, fuzzy, python-format +msgid "Network mount %s" +msgstr "Montiranje mreže" + +msgid "Network name (SSID)" +msgstr "" + +# +msgid "Network scan" +msgstr "Pretraga mreže" + +# +msgid "Network setup" +msgstr "Mrežne postavke " + +# +msgid "Network test" +msgstr "" + +# +msgid "Network test..." +msgstr "" + +msgid "Network test: " +msgstr "" + +# +#, fuzzy +msgid "Network wizard" +msgstr "Pretraga mreže" + +# +msgid "Network:" +msgstr "" + +# +msgid "New" +msgstr "Novo" + +msgid "New PIN" +msgstr "" + +# +msgid "New version:" +msgstr "Nova verzija:" + +msgid "News Current Affairs" +msgstr "" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "" + +# +msgid "No" +msgstr "Ne" + +# +msgid "No (supported) DVDROM found!" +msgstr "" + +# +msgid "No Connection" +msgstr "" + +# +msgid "No HDD found or HDD not initialized!" +msgstr "Disk nije pronaÄ‘en ili neinicijaliziran!" + +# +msgid "No backup needed" +msgstr "Sigurnosna kopija nije potrebana" + +msgid "No cable tuner found!" +msgstr "" + +# +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Nema podataka na transponderu!\n" +"(Isteklo vrijeme Äitanja PAT)" + +msgid "No delay" +msgstr "" + +# +msgid "No description available." +msgstr "" + +# +msgid "No details for this image file" +msgstr "" + +# +msgid "No displayable files on this medium found!" +msgstr "" + +# +msgid "No event info found, recording indefinitely." +msgstr "Informacije o dogaÄ‘aju nisu pronaÄ‘ene, snimanje nedefinirano." + +# +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "" + +msgid "No free index available" +msgstr "" + +# +msgid "No free tuner!" +msgstr "Nema slobodnog tunera!" + +# +msgid "No network connection available." +msgstr "" + +# +msgid "No networks found" +msgstr "" + +msgid "No new plugins found" +msgstr "" + +# +msgid "No positioner capable frontend found." +msgstr "Niti jedan kompatibilan motor nije pronaÄ‘en." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "" + +msgid "No services/providers selected" +msgstr "" + +# +#, fuzzy +msgid "No standby" +msgstr "ne stanje pripravnosti" + +msgid "No suitable sat tuner found!" +msgstr "" + +# +msgid "No tags are set on these movies." +msgstr "" + +# +#, fuzzy +msgid "No timeout" +msgstr "nema vremenskog ograniÄenja" + +# +msgid "No to all" +msgstr "" + +msgid "No transparency" +msgstr "" + +# +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "Niti jedan Tuner nije konfiguriran za rad s DiSEqC motorom!" + +# +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Niti jedan Tuner nije ukljuÄen!\n" +"Molim podesite postavke tunera prije nego poÄnete pretragu usluga." + +msgid "No updates available" +msgstr "" + +msgid "No updates available. Please try again later." +msgstr "" + +# +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Ispravan PIN za 'Usluge' nije pronaÄ‘en!\n" +"Želite li promjeniti PIN sada?\n" +"Ukoliko kažete 'Ne' ovdje, Usluge ostaju nezaÅ¡tićene." + +# +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Ispravan PIN za 'Postavke' nije pronaÄ‘ene!\n" +"Želite li promjeniti PIN sada?\n" +"Ukoliko kažete 'Ne' ovdje, Postavke ureÄ‘aja ostaju nezaÅ¡tićene." + +msgid "No wireless networks found! Searching..." +msgstr "" + +# +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" + +# +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" + +# +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" + +# +msgid "No, but restart from begin" +msgstr "Ne, ali restartaj od poÄetka" + +# +msgid "No, do nothing." +msgstr "Ne, niÅ¡ta ne Äini " + +msgid "No, just start my receiver" +msgstr "" + +msgid "No, never" +msgstr "" + +# +msgid "None" +msgstr "Prazno" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "" + +msgid "Normal mode" +msgstr "" + +# +msgid "North" +msgstr "Sjever" + +# +msgid "Norwegian" +msgstr "NorveÅ¡ki" + +msgid "Not associated" +msgstr "" + +msgid "Not configured" +msgstr "" + +#, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "" + +msgid "Nothing connected" +msgstr "" + +# +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Nema niÅ¡ta za skenirati!\n" +"Molim podesite postavke Tunera prije poÄetka skeniranja." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "" + +# +#, fuzzy +msgid "Now playing" +msgstr "Trenutno pokrenuto" + +# +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "" + +# +msgid "OK" +msgstr "OK" + +# +msgid "OK, guide me through the upgrade process" +msgstr "OK, vodi me kroz postupak nadogradnje" + +msgid "ONID" +msgstr "" + +msgid "OSD name request" +msgstr "" + +# +#, fuzzy +msgid "OSD settings" +msgstr "Postavke OSD" + +msgid "OSD transparency" +msgstr "" + +# +msgid "Off" +msgstr "IskljuÄi" + +msgid "Offline decode delay (ms)" +msgstr "" + +msgid "Ok" +msgstr "" + +# +msgid "On" +msgstr "UkljuÄeno" + +msgid "On end of movie" +msgstr "" + +msgid "On end of movie (as menu)" +msgstr "" + +# +msgid "One" +msgstr "Jedan" + +# +msgid "Only extensions." +msgstr "" + +# +#, fuzzy +msgid "Only free scan" +msgstr "ObriÅ¡i prije skeniranja" + +# +#, fuzzy +msgid "Open service list" +msgstr "otvori listu usluga" + +# +#, fuzzy +msgid "Open the movie list" +msgstr "izaÄ‘i iz izbornika filmova" + +msgid "Orbital position" +msgstr "" + +msgid "Original" +msgstr "" + +msgid "Other" +msgstr "" + +msgid "Output" +msgstr "" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "" + +# +#, fuzzy +msgid "Overwrite configuration files?" +msgstr "Konfiguracija Tunera" + +# +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "" + +# +msgid "PIDs" +msgstr "PIDs" + +# +#, fuzzy +msgid "PIN code needed" +msgstr "Pin kod je potreban" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "" + +# +msgid "Package list update" +msgstr "Nadogradnja liste paketa" + +# +msgid "Packet management" +msgstr "Rukovanje paketima" + +# +msgid "Packet manager" +msgstr "" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +msgid "Pan&scan" +msgstr "" + +# +#, fuzzy +msgid "Parent directory" +msgstr "/var direktorij" + +# +msgid "Parental control" +msgstr "Roditeljska zaÅ¡tita" + +# +#, fuzzy +msgid "Parental control services editor" +msgstr "Editor Usluga za roditeljsku zaÅ¡titu" + +# +msgid "Parental control setup" +msgstr "Postavke roditeljske zaÅ¡tite" + +# +msgid "Parental control type" +msgstr "Vrsta roditeljske zaÅ¡tite" + +# +msgid "Password" +msgstr "" + +# +#, fuzzy +msgid "Pause" +msgstr "pauza" + +# +msgid "Pause movie at end" +msgstr "" + +msgid "Pause playback" +msgstr "" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "" + +# +#, fuzzy +msgid "Percentage right" +msgstr "desni cirkularni" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "" + +msgid "Permanently remove all deleted items" +msgstr "" + +msgid "Persian" +msgstr "" + +# +msgid "Phone number" +msgstr "" + +# +#, fuzzy +msgid "PiP setup" +msgstr "PiPPostavke" + +msgid "Picon" +msgstr "" + +msgid "Picon and service name" +msgstr "" + +# +#, fuzzy +msgid "Picture player" +msgstr "sakri player" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "" + +# +msgid "Pilot" +msgstr "" + +# +msgid "Play" +msgstr "" + +# +msgid "Play DVD" +msgstr "" + +msgid "Play audio in background" +msgstr "" + +msgid "Play audio-CD..." +msgstr "" + +msgid "Play back media files" +msgstr "" + +# +#, fuzzy +msgid "Play entry" +msgstr "pokreni unos" + +# +#, fuzzy +msgid "Play from next mark or playlist entry" +msgstr "obriÅ¡i unos playliste" + +msgid "Play from previous mark or playlist entry" +msgstr "" + +msgid "Play music..." +msgstr "" + +msgid "Play next" +msgstr "" + +msgid "Play next (return to movie list)" +msgstr "" + +msgid "Play next (return to previous service)" +msgstr "" + +msgid "Play previous" +msgstr "" + +# +msgid "Play recorded movies..." +msgstr "Pokreni snimljene filmove..." + +# +msgid "Please add titles to the compilation." +msgstr "" + +# +msgid "Please change recording endtime" +msgstr "Molim promjenite zavrÅ¡no vijeme snimanja" + +# +msgid "Please check your network settings!" +msgstr "" + +# +msgid "Please choose an extension..." +msgstr "Molim odaberite ekstenziju..." + +# +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" + +# +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" + +msgid "Please connect your receiver to the internet" +msgstr "" + +# +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Molim ne mijenjate vrijednosti ukoliko ne znate Å¡to radite!" + +# +msgid "Please enter a name for the new bouquet" +msgstr "Unesi ime za novi paket " + +# +msgid "Please enter a name for the new marker" +msgstr "Molim unesite ime za novu oznaku" + +# +msgid "Please enter a new filename" +msgstr "" + +# +msgid "Please enter filename (empty = use current date)" +msgstr "Molim unesite ime datoteke (prazno = koristi danaÅ¡nji datum)" + +# +msgid "Please enter name of the new directory" +msgstr "" + +msgid "Please enter new name:" +msgstr "" + +# +msgid "Please enter the correct pin code" +msgstr "Molim unesite ispravan pin kod" + +msgid "Please enter the old PIN code" +msgstr "" + +# +msgid "Please follow the instructions on the TV" +msgstr "" + +# +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "" + +# +msgid "Please press OK to continue." +msgstr "" + +msgid "Please select a default EPG type..." +msgstr "" + +# +msgid "Please select a playlist to delete..." +msgstr "Molim odaberite playlistu za brisanje..." + +# +msgid "Please select a playlist..." +msgstr "Molim odaberite playlistu..." + +# +#, fuzzy +msgid "Please select a sub service..." +msgstr "Molim odaberite poduslugu..." + +# +msgid "Please select a subservice to record..." +msgstr "Molim odaberite uslugu za snimanje..." + +# +msgid "Please select a subservice..." +msgstr "Molim odaberite poduslugu..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "" + +# +#, fuzzy +msgid "Please select medium to be scanned" +msgstr "Molim odaberite uslugu za snimanje..." + +# +msgid "Please select medium to use as backup location" +msgstr "" + +# +msgid "Please select tag to filter..." +msgstr "" + +# +msgid "Please select the movie path..." +msgstr "" + +# +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" + +# +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" + +# +#, fuzzy +msgid "Please set up tuner A" +msgstr "Molim podesite tuner B" + +# +msgid "Please set up tuner B" +msgstr "Molim podesite tuner B" + +# +msgid "Please set up tuner C" +msgstr "Molim podesite tuner C" + +# +msgid "Please set up tuner D" +msgstr "Molim podesite tuner D" + +# +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Molim koristite tipke s smjernicama za premjeÅ¡tanje PiP prozora.\n" +"Pritisnite Bouquet +/- tipke za promjenu prozora.\n" +"Pritisnite OK za povratak u TV mod ili EXIT za prekid premjeÅ¡tanja." + +# +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "" + +msgid "Please wait" +msgstr "" + +# +#, fuzzy +msgid "Please wait (downloading channel list)" +msgstr "Molim priÄekajte... UÄitavam listu..." + +# +#, fuzzy +msgid "Please wait (downloading softcam)" +msgstr "Molim priÄekajte... UÄitavam listu..." + +# +#, fuzzy +msgid "Please wait (updating packages)" +msgstr "molim priÄekajte, uÄitavam sliku..." + +# +msgid "Please wait for activation of your network configuration..." +msgstr "" + +# +msgid "Please wait while scanning is in progress..." +msgstr "" + +# +msgid "Please wait while we configure your network..." +msgstr "" + +# +msgid "Please wait while we prepare your network interfaces..." +msgstr "" + +# +msgid "Please wait while we test your network..." +msgstr "" + +# +msgid "Please wait while your network is restarting..." +msgstr "" + +# +msgid "Please wait..." +msgstr "" + +# +msgid "Please wait... Loading list..." +msgstr "Molim priÄekajte... UÄitavam listu..." + +# +msgid "Plugin browser" +msgstr "Preglednik dodataka" + +# +msgid "Plugin manager activity information" +msgstr "" + +# +msgid "Plugin manager help" +msgstr "" + +# +msgid "Plugins" +msgstr "Dodaci" + +msgid "Polarisation" +msgstr "" + +msgid "Polarisation:" +msgstr "" + +# +msgid "Polarization" +msgstr "Polarizacija" + +# +msgid "Polish" +msgstr "Poljski" + +# +msgid "Port A" +msgstr "Port A" + +# +msgid "Port B" +msgstr "Port B" + +# +msgid "Port C" +msgstr "Port C" + +# +msgid "Port D" +msgstr "Port D" + +# +msgid "Portuguese" +msgstr "Portugalski" + +msgid "Position of completed timers in timerlist" +msgstr "" + +msgid "Position stored at index" +msgstr "" + +# +msgid "Positioner" +msgstr "Motor" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "" + +# +msgid "Positioner setup" +msgstr "Postavke Motora" + +# +msgid "Power threshold in mA" +msgstr "Granica snage u mA" + +# +msgid "Predefined transponder" +msgstr "Predefinirani transponder" + +msgid "Prefer AC3 track" +msgstr "" + +msgid "Prefer AC3+ track" +msgstr "" + +msgid "Prefer audio track stored by service" +msgstr "" + +msgid "Prefer graphical DVB subtitles" +msgstr "" + +msgid "Prefer subtitles for hearing impaired" +msgstr "" + +msgid "Prefer subtitles stored by service" +msgstr "" + +msgid "Preferred tuner" +msgstr "" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "" + +# +msgid "Preparing... Please wait" +msgstr "Pripremam... Molim priÄekajte" + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "" + +msgid "Press MENU on your remote control for additional options." +msgstr "" + +# +msgid "Press OK on your remote control to continue." +msgstr "" + +# +msgid "Press OK to activate the selected skin." +msgstr "" + +# +msgid "Press OK to activate the settings." +msgstr "Pritisnite OK za aktiviranje postavki." + +# +msgid "Press OK to edit the settings." +msgstr "" + +# +#, python-format +msgid "Press OK to get further details for %s" +msgstr "" + +# +msgid "Press OK to scan" +msgstr "Pritisnite ok za skeniranje" + +# +#, fuzzy +msgid "Press OK to select a provider." +msgstr "Pritisnite ok za skeniranje" + +msgid "Press OK to select satellites" +msgstr "" + +# +msgid "Press OK to select/deselect a CAId." +msgstr "" + +# +msgid "Press OK to start the scan" +msgstr "Pritisnite ok za poÄetak skeniranja" + +msgid "Press OK to toggle the selection" +msgstr "" + +# +msgid "Press OK to toggle the selection." +msgstr "" + +# +msgid "Press yellow to set this interface as default interface." +msgstr "" + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "" + +# +msgid "Preview" +msgstr "" + +# +msgid "Preview menu" +msgstr "" + +msgid "Preview selected channel" +msgstr "" + +# +msgid "Primary DNS" +msgstr "" + +# +msgid "Priority" +msgstr "" + +# +msgid "Process" +msgstr "" + +msgid "Progress" +msgstr "" + +msgid "Progress bar left" +msgstr "" + +msgid "Progress bar right" +msgstr "" + +# +msgid "Properties of current title" +msgstr "" + +# +msgid "Protect services" +msgstr "ZaÅ¡titi usluge" + +# +msgid "Protect setup" +msgstr "ZaÅ¡tićene postavke" + +# +msgid "Provider" +msgstr "Pružatelji" + +# +msgid "Provider to scan" +msgstr "Pružatelj usluga za skeniranje" + +# +msgid "Providers" +msgstr "Pružatelji" + +msgid "Put TV in standby" +msgstr "" + +msgid "Put receiver in standby" +msgstr "" + +# +msgid "Python frontend for /tmp/mmi.socket" +msgstr "" + +# +msgid "Quick" +msgstr "Brzo" + +# +#, fuzzy +msgid "Quick zap" +msgstr "Brzizap" + +# +msgid "RF output" +msgstr "RF Izlaz" + +# +msgid "RGB" +msgstr "RGB" + +# +msgid "Radio" +msgstr "Radio" + +# +#, fuzzy +msgid "Ram disk" +msgstr "Ram Disk" + +# +msgid "Random" +msgstr "" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "" + +msgid "Rating undefined" +msgstr "" + +# +msgid "Really close without saving settings?" +msgstr "Želite li stvarno zatvoriti bez pohrane ?" + +# +msgid "Really delete done timers?" +msgstr "Želite li stvarno obrisati gotove tajmere?" + +# +msgid "Really exit the subservices quickzap?" +msgstr "Želite li stvarno izaći iz podusluge brzogzap-a?" + +# +msgid "Really reboot now?" +msgstr "" + +# +msgid "Really restart now?" +msgstr "" + +# +msgid "Really shutdown now?" +msgstr "" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "" + +# +msgid "Reboot" +msgstr "" + +msgid "Rec" +msgstr "" + +# +#, fuzzy +msgid "Reception settings" +msgstr "Postavke prijema" + +# +msgid "Record" +msgstr "Snimi " + +# +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "" + +# +msgid "Recorded files..." +msgstr "Snimljene datoteke..." + +# +msgid "Recording" +msgstr "Snimanje" + +msgid "Recording in progress" +msgstr "" + +# +msgid "Recording paths" +msgstr "" + +msgid "Recording type" +msgstr "" + +# +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "" + +# +msgid "Recordings" +msgstr "" + +# +msgid "Recordings always have priority" +msgstr "Snimanje uvijek ima prioritet" + +msgid "Red button..." +msgstr "" + +msgid "Reenter new PIN" +msgstr "" + +# +#, fuzzy +msgid "Refresh rate" +msgstr "Brzina osvježavanja" + +# +msgid "Refresh rate selection." +msgstr "" + +msgid "Regard deep standby as standby" +msgstr "" + +msgid "Relative" +msgstr "" + +# +msgid "Reload" +msgstr "" + +msgid "Reload black-/white lists" +msgstr "" + +msgid "Reloading bouquets and services..." +msgstr "" + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "" + +msgid "Remember these settings for each folder" +msgstr "" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "" + +# +#, fuzzy +msgid "Remote control type" +msgstr "Vrsta roditeljske zaÅ¡tite" + +msgid "Removal has completed." +msgstr "" + +# +msgid "Remove" +msgstr "" + +# +msgid "Remove a mark" +msgstr "ObriÅ¡i oznaku" + +msgid "Remove a nameserver entry" +msgstr "" + +# +#, fuzzy +msgid "Remove bookmark" +msgstr "ObriÅ¡i oznaku" + +msgid "Remove completed timers after (days)" +msgstr "" + +# +msgid "Remove currently selected title" +msgstr "Ukloni trenutno odabrani titl" + +msgid "Remove items from trash can after (days)" +msgstr "" + +# +msgid "Remove plugins" +msgstr "ObriÅ¡i dodatke" + +# +msgid "Remove title" +msgstr "Ukloni titl" + +# +msgid "Removing" +msgstr "" + +# +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "" + +# +#, fuzzy +msgid "Removing partition table" +msgstr "Ukloni titl" + +# +msgid "Rename" +msgstr "" + +msgid "Repeat" +msgstr "" + +# +#, fuzzy +msgid "Repeat type" +msgstr "Tip ponavljanja" + +# +msgid "Repeating event currently recording... What do you want to do?" +msgstr "Snimanje ponovljenog dogaÄ‘aja je u tijeku...Å to želite uÄiniti?" + +# +msgid "Repeats" +msgstr "" + +msgid "Require authentication for http streams" +msgstr "" + +# +msgid "Required medium type:" +msgstr "" + +msgid "Rereading partition table" +msgstr "" + +msgid "Reserved" +msgstr "" + +# +msgid "Reset" +msgstr "Resetiraj" + +# +msgid "Reset and renumerate title names" +msgstr "" + +msgid "Reset playback position" +msgstr "" + +# +msgid "Reset video enhancement settings to system defaults?" +msgstr "" + +# +msgid "Reset video enhancement settings to your last configuration?" +msgstr "" + +# +msgid "Resolution" +msgstr "" + +# +msgid "Restart" +msgstr "Restart" + +# +msgid "Restart GUI now?" +msgstr "Restart GUI sada?" + +msgid "Restart enigma" +msgstr "" + +# +msgid "Restart network" +msgstr "" + +# +msgid "Restart test" +msgstr "" + +# +msgid "Restart your network connection and interfaces.\n" +msgstr "" + +# +msgid "Restore" +msgstr "Vrati u poÄ.stanje" + +# +msgid "Restore backups" +msgstr "" + +# +msgid "Restore is running..." +msgstr "" + +# +msgid "Restore system settings" +msgstr "" + +# +#, fuzzy +msgid "Restoring..." +msgstr "snimanje..." + +# +msgid "Resume from last position" +msgstr "" + +# +#, python-format +msgid "Resume position at %s" +msgstr "" + +# +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "" + +# +msgid "Return to movie list" +msgstr "" + +# +msgid "Return to previous service" +msgstr "" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +# +msgid "Rewind speeds" +msgstr "" + +msgid "Rewrap teletext subtitles" +msgstr "" + +# +msgid "Right" +msgstr "Desno" + +msgid "Right from servicename" +msgstr "" + +msgid "Roll-off" +msgstr "" + +msgid "Romanian" +msgstr "" + +msgid "Root directory" +msgstr "" + +msgid "Rotor step position:" +msgstr "" + +# +msgid "Rotor turning speed" +msgstr "Brzina okretanja rotora" + +msgid "Round start time on" +msgstr "" + +# +msgid "Russian" +msgstr "Ruski" + +# +msgid "S-Video" +msgstr "S-Video" + +msgid "SID" +msgstr "" + +# +msgid "SINGLE LAYER DVD" +msgstr "" + +# +msgid "SNR" +msgstr "SNR" + +# +msgid "SNR:" +msgstr "SNR:" + +# +msgid "SSID:" +msgstr "" + +msgid "Same resolution as skin" +msgstr "" + +# +msgid "Sat" +msgstr "Sat" + +# +msgid "Satellite" +msgstr "Satelit" + +# +#, fuzzy +msgid "Satellite dish setup" +msgstr "Postavke Satelitske Opreme" + +# +msgid "Satellite equipment" +msgstr "" + +# +#, fuzzy +msgid "Satellite equipment setup" +msgstr "Postavke Satelitske Opreme" + +msgid "Satellite longitude:" +msgstr "" + +# +msgid "Satellites" +msgstr "Sateliti" + +# +msgid "Satfinder" +msgstr "Sat tražitelj" + +# +msgid "Sats" +msgstr "" + +# +msgid "Saturation" +msgstr "" + +# +msgid "Saturday" +msgstr "Subota" + +# +msgid "Save" +msgstr "" + +# +#, fuzzy +msgid "Save playlist" +msgstr "pohrani playlistu" + +msgid "Save timeshift file" +msgstr "" + +msgid "Save timeshift file in movie directory" +msgstr "" + +# +msgid "Scaler sharpness" +msgstr "" + +# +#, fuzzy +msgid "Scaling mode" +msgstr "Mod razmjera" + +msgid "Scan" +msgstr "" + +# +msgid "Scan " +msgstr "Skeniraj" + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, fuzzy, python-format +msgid "Scan %s" +msgstr "Skeniraj" + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, fuzzy, python-format +msgid "Scan %s band" +msgstr "Skeniraj band EU MID" + +# +msgid "Scan additional SR" +msgstr "Skeniraj dodatne SR" + +# +#, fuzzy +msgid "Scan files..." +msgstr "Snimljene datoteke..." + +msgid "Scan wireless networks" +msgstr "" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "" + +#, python-format +msgid "Scanning %s..." +msgstr "" + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "" +msgstr[1] "" + +msgid "Scanning failed!" +msgstr "" + +msgid "Scanning..." +msgstr "" + +# +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "" + +# +msgid "Search east" +msgstr "Pretraži istok" + +# +msgid "Search west" +msgstr "Pretraži zapad" + +msgid "Searching" +msgstr "" + +msgid "Searching east ..." +msgstr "" + +# +msgid "Searching for available updates. Please wait..." +msgstr "" + +# +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "" + +msgid "Searching west ..." +msgstr "" + +msgid "Second cable of motorized LNB" +msgstr "" + +# +msgid "Secondary DNS" +msgstr "" + +# +msgid "Seek" +msgstr "Traži" + +# +#, fuzzy +msgid "Seek backward" +msgstr "preskoÄi unazad" + +# +#, fuzzy +msgid "Seek backward (enter time)" +msgstr "preskoÄi unazad (unesi vrijeme)" + +# +#, fuzzy +msgid "Seek forward" +msgstr "preskoÄi unaprijed" + +# +#, fuzzy +msgid "Seek forward (enter time)" +msgstr "preskoÄi naprijed (unesi vrijeme)" + +# +msgid "Select" +msgstr "" + +# +#, fuzzy +msgid "Select CAId" +msgstr "Odaberi Tvrdi Disk" + +# +msgid "Select HDD" +msgstr "Odaberi Tvrdi Disk" + +# +#, fuzzy +msgid "Select a bouquet" +msgstr "Odaberi film" + +# +msgid "Select a movie" +msgstr "Odaberi film" + +# +#, fuzzy +msgid "Select a network adapter" +msgstr "Odaberi Mrežni adapter" + +# +#, fuzzy +msgid "Select a skin" +msgstr "Odaberi film" + +# +#, fuzzy +msgid "Select a tuner" +msgstr "Odaberi film" + +# +#, fuzzy +msgid "Select a wireless network" +msgstr "Odaberi zvuÄni nosioc" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +msgid "Select an image to be downloaded" +msgstr "" + +# +msgid "Select audio track" +msgstr "Odaberi zvuÄni nosioc" + +# +#, fuzzy +msgid "Select backup files" +msgstr "Odaberi film" + +# +#, fuzzy +msgid "Select backup location" +msgstr "Lokacija sigurnosne kopije" + +# +msgid "Select channel to record from" +msgstr "Odaberi Kanal za snimanje od" + +msgid "Select copy destination for:" +msgstr "" + +msgid "Select default EPG type..." +msgstr "" + +msgid "Select desired image from feed list" +msgstr "" + +msgid "Select destination for:" +msgstr "" + +msgid "Select files for backup." +msgstr "" + +# +msgid "Select files/folders to backup" +msgstr "" + +msgid "Select input device" +msgstr "" + +msgid "Select input device." +msgstr "" + +# +msgid "Select interface" +msgstr "" + +# +#, fuzzy +msgid "Select location" +msgstr "EPG selektor " + +# +#, fuzzy +msgid "Select movie" +msgstr "Odaberi film" + +# +msgid "Select provider to add..." +msgstr "" + +# +msgid "Select refresh rate" +msgstr "" + +msgid "Select satellites" +msgstr "" + +# +msgid "Select service to add..." +msgstr "" + +msgid "Select sort method:" +msgstr "" + +# +#, fuzzy +msgid "Select target folder" +msgstr "Odaberi film" + +# +#, fuzzy +msgid "Select the movie path" +msgstr "Odaberi film" + +# +#, fuzzy +msgid "Select upgrade source" +msgstr "Odaberi film" + +# +msgid "Select upgrade source to edit." +msgstr "" + +# +msgid "Select video input with up/down buttons" +msgstr "" + +# +msgid "Select video mode" +msgstr "" + +# +msgid "Select wireless network" +msgstr "" + +msgid "Select your provider, and press OK to start the scan" +msgstr "" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +# +msgid "Send DiSEqC only on satellite change" +msgstr "" + +# +msgid "Separate titles with a main menu" +msgstr "" + +# +msgid "Sequence repeat" +msgstr "Ponovi slijed" + +# +msgid "Serbian" +msgstr "" + +# +msgid "Service" +msgstr "Usluge " + +# +msgid "Service has been added to the favourites." +msgstr "Usluga je dodana u listu favorita." + +# +msgid "Service has been added to the selected bouquet." +msgstr "Usluga je dodana u odabrani paket." + +# +#, fuzzy +msgid "Service info" +msgstr "Info Usluge" + +# +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Neispravna usluga!\n" +"(Isteklo Äitanje PMT)" + +# +#, fuzzy +msgid "Service name" +msgstr "Pretraživanje usluge" + +# +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Usluga nije pronaÄ‘ena!\n" +"(SID nije pronaÄ‘en u PATu)" + +msgid "Service reference" +msgstr "" + +# +msgid "Service scan" +msgstr "Pretraga usluga" + +# +#, fuzzy +msgid "Service searching" +msgstr "Pretraživanje usluga" + +# +#, fuzzy +msgid "Service title mode" +msgstr "Info Usluge" + +# +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"Usluga nije dostupna!\n" +"Provjerite konfiguraciju tunera" + +# +msgid "Services" +msgstr "Usluge" + +msgid "Set default" +msgstr "" + +# +#, fuzzy +msgid "Set end time" +msgstr "ZavrÅ¡no vrijeme" + +msgid "Set fixed" +msgstr "" + +msgid "Set fps for external subtitles" +msgstr "" + +# +msgid "Set interface as default Interface" +msgstr "" + +msgid "Set limits" +msgstr "" + +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "" + +msgid "Set time window to 1 hour" +msgstr "" + +msgid "Set time window to 2 hours" +msgstr "" + +msgid "Set time window to 3 hours" +msgstr "" + +msgid "Set time window to 4 hours" +msgstr "" + +msgid "Set time window to 5 hours" +msgstr "" + +msgid "Set time window to 6 hours" +msgstr "" + +msgid "Set voltage and 22KHz" +msgstr "" + +# +msgid "Settings" +msgstr "Postavke" + +# +msgid "Setup" +msgstr "Postavi" + +msgid "Setup menu" +msgstr "" + +# +#, fuzzy +msgid "Setup mode" +msgstr "Mod Postavki" + +msgid "Setup your positioner" +msgstr "" + +# +#, fuzzy +msgid "Setup your satellite equipment" +msgstr "Postavke Satelitske Opreme" + +# +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "" + +# +msgid "Sharpness" +msgstr "" + +msgid "Short filenames" +msgstr "" + +msgid "Show EIT now/next in infobar" +msgstr "" + +# +#, fuzzy +msgid "Show EPG for current channel..." +msgstr "Prikaži info traku pri promjeni dogaÄ‘aja" + +# +#, fuzzy +msgid "Show EPG..." +msgstr "prikaži EPG..." + +msgid "Show Games show" +msgstr "" + +msgid "Show SNR percentage instead of dB value" +msgstr "" + +msgid "Show VCR scart on main menu" +msgstr "" + +msgid "Show WLAN status" +msgstr "" + +msgid "Show animation while busy" +msgstr "" + +msgid "Show background in radio mode" +msgstr "" + +msgid "Show bouquet selection menu" +msgstr "" + +msgid "Show busy indicator when the system is busy." +msgstr "" + +msgid "Show channel numbers in channel selection" +msgstr "" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "" + +msgid "Show detailed event info" +msgstr "" + +# +#, fuzzy +msgid "Show event details" +msgstr "prikaži proÅ¡irene infor. " + +# +msgid "Show event-progress in channel selection" +msgstr "" + +# +#, fuzzy +msgid "Show extended description" +msgstr "prikaži proÅ¡irene informacije" + +# +#, fuzzy +msgid "Show extensions..." +msgstr "gledaj ekstenzije..." + +msgid "Show icon for new/unseen items" +msgstr "" + +msgid "Show in extensions menu" +msgstr "" + +msgid "Show info" +msgstr "" + +msgid "Show info line" +msgstr "" + +# +msgid "Show infobar on channel change" +msgstr "Prikaži infobar na promjeni kanala" + +# +msgid "Show infobar on event change" +msgstr "Prikaži info traku pri promjeni dogaÄ‘aja" + +# +msgid "Show infobar on skip forward/backward" +msgstr "Prikaži info traku na presk. naprijed/unazad" + +msgid "Show latest commits on sourceforge" +msgstr "" + +msgid "Show message when recording starts" +msgstr "" + +msgid "Show movie lengths in movielist" +msgstr "" + +msgid "Show multi channel EPG" +msgstr "" + +msgid "Show picons in channel list" +msgstr "" + +# +msgid "Show positioner movement" +msgstr "Prikaži kretanje motora" + +msgid "Show screensaver" +msgstr "" + +msgid "Show second infobar" +msgstr "" + +msgid "Show service type icons" +msgstr "" + +# +msgid "Show services beginning with" +msgstr "Prikaži usluge koje poÄinju s" + +# +#, fuzzy +msgid "Show shutdown menu" +msgstr "prikaži izbornik iskljuÄivanja" + +msgid "Show single service EPG" +msgstr "" + +msgid "Show status icons in Movielist" +msgstr "" + +msgid "Show status icons in movie list" +msgstr "" + +msgid "Show status icons in movielist" +msgstr "" + +# +#, fuzzy +msgid "Show tag menu" +msgstr "prikaži citat menia" + +# +msgid "Show the radio player..." +msgstr "Prikaži Radio ..." + +# +msgid "Show the tv player..." +msgstr "Prikaži tv player..." + +msgid "Show warning when timeshift is stopped" +msgstr "" + +# +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "" + +# +#, fuzzy +msgid "Shuffle playlist" +msgstr "sam biraj iz playliste" + +# +msgid "Shutdown" +msgstr "" + +msgid "Shutdown when in Standby" +msgstr "" + +msgid "Side by side" +msgstr "" + +msgid "Signal OK, proceeding" +msgstr "" + +msgid "Signal quality" +msgstr "" + +msgid "Signal strength:" +msgstr "" + +# +msgid "Signal: " +msgstr "" + +# +msgid "Similar" +msgstr "SliÄno" + +# +msgid "Similar broadcasts:" +msgstr "SliÄni pružatelji:" + +# +msgid "Simple" +msgstr "Jednostavno" + +# +msgid "Simple titleset (compatibility for legacy players)" +msgstr "" + +# +msgid "Single" +msgstr "Jedan" + +# +msgid "Single EPG" +msgstr "Jedan EPG" + +# +msgid "Single satellite" +msgstr "Jedan satelit" + +# +#, fuzzy +msgid "Single step (GOP)" +msgstr "Jedan satelit" + +# +msgid "Single transponder" +msgstr "Jedan Transponder" + +msgid "Site latitude" +msgstr "" + +msgid "Site longitude" +msgstr "" + +# +msgid "Skin" +msgstr "" + +# +msgid "Skins" +msgstr "" + +# +#, fuzzy +msgid "Skip empty services" +msgstr "ZaÅ¡titi usluge" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "" + +# +#, fuzzy +msgid "Sleep timer" +msgstr "Tajmer spavanja" + +msgid "SleepTimer Configuration" +msgstr "" + +msgid "Sleeptimer" +msgstr "" + +msgid "Slide picture in loop" +msgstr "" + +# +#, fuzzy +msgid "Slide show interval (sec.)" +msgstr "Interval pokaz.prezentacije(sek.)" + +# +#, python-format +msgid "Slot %d" +msgstr "Utor %d" + +msgid "Slovak" +msgstr "" + +# +msgid "Slovenian" +msgstr "" + +# +msgid "Slow" +msgstr "Usporeno" + +msgid "Slow motion speeds" +msgstr "" + +msgid "Small progress" +msgstr "" + +msgid "Social/Political/Economics" +msgstr "" + +msgid "SoftCam / CI" +msgstr "" + +msgid "Softcam type" +msgstr "" + +# +msgid "Software" +msgstr "" + +# +msgid "Software management" +msgstr "" + +msgid "Software manager setup" +msgstr "" + +# +msgid "Software restore" +msgstr "" + +# +msgid "Software update" +msgstr "" + +msgid "Softwaremanager information" +msgstr "" + +# +msgid "Some plugins are not available:\n" +msgstr "Neki dodaci nisu dostupni:\n" + +#, python-format +msgid "Sorry, %s has not been installed!" +msgstr "" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "" + +msgid "Sorry, no backups found!" +msgstr "" + +msgid "Sorry, no details available!" +msgstr "" + +# +#, fuzzy +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"Oprostite, vaÅ¡a destinacija za sigurnosnu kopiju ne postoji\n" +"\n" +"Molim odaberite drugu lokaciju." + +msgid "Sort" +msgstr "" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Sortiraj A-Z" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +#, fuzzy +msgid "Sort time" +msgstr "Vrijeme Sortiranja" + +# +msgid "Sound" +msgstr "Zvuk" + +# +#, fuzzy +msgid "Sound carrier" +msgstr "ZvuÄni nosioc" + +msgid "Source request" +msgstr "" + +# +msgid "South" +msgstr "Jug" + +# +msgid "Spanish" +msgstr "Å panjolski" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +# +msgid "Split preview mode" +msgstr "" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "" + +# +#, fuzzy +msgid "Standard" +msgstr "standardno" + +msgid "Standart list" +msgstr "" + +# +msgid "Standby" +msgstr "Stanje sprem." + +# +#, fuzzy +msgid "Standby / restart" +msgstr "stanje sprem./ restart" + +msgid "Standby after current event" +msgstr "" + +#, python-format +msgid "Standby fan %d PWM" +msgstr "" + +#, python-format +msgid "Standby fan %d voltage" +msgstr "" + +msgid "Standby in " +msgstr "" + +msgid "StandbyLED" +msgstr "" + +# +msgid "Start from the beginning" +msgstr "" + +msgid "Start offline decode" +msgstr "" + +# +msgid "Start recording?" +msgstr "ZapoÄeti Snimanje?" + +# +msgid "Start test" +msgstr "" + +# +#, fuzzy +msgid "Start time" +msgstr "PoÄetno vrijeme " + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +# +#, fuzzy +msgid "Start timeshift" +msgstr "pokreni vrem.pomak" + +msgid "Start with list screen" +msgstr "" + +# +msgid "Starting on" +msgstr "Pokrećem" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +# +msgid "Step east" +msgstr "Koran na istok" + +# +msgid "Step west" +msgstr "Korak na zapad" + +msgid "Stepped east" +msgstr "" + +msgid "Stepped west" +msgstr "" + +# +msgid "Stop" +msgstr "Zaustavi " + +# +#, fuzzy +msgid "Stop PiP" +msgstr "zaustavi PiP" + +# +msgid "Stop current event and disable coming events" +msgstr "Zaustavi trenutni dogaÄ‘aj i ostale dolazeće takoÄ‘er." + +# +msgid "Stop current event but not coming events" +msgstr "Zaustavi trenutni dogaÄ‘aj ali ne i ostale dolazeće" + +# +#, fuzzy +msgid "Stop entry" +msgstr "zaustavi unos" + +# +msgid "Stop playing this movie?" +msgstr "Zaustaviti ovaj Film?" + +msgid "Stop recording" +msgstr "" + +msgid "Stop recording and delete" +msgstr "" + +msgid "Stop service on return to movie list" +msgstr "" + +# +msgid "Stop test" +msgstr "" + +# +msgid "Stop testing plane after # failed transponders" +msgstr "" + +# +msgid "Stop testing plane after # successful transponders" +msgstr "" + +msgid "Stop timer recording" +msgstr "" + +# +#, fuzzy +msgid "Stop timeshift" +msgstr "zaustavi vrem.pomak" + +# +#, fuzzy +msgid "Stop timeshift?" +msgstr "Zaustaviti vremenski pomak?" + +msgid "Stopped" +msgstr "" + +msgid "Store at index" +msgstr "" + +# +msgid "Store position" +msgstr "Pohrani poziciju" + +# +msgid "Stored position" +msgstr "Pohranjene pozicije" + +msgid "Stream" +msgstr "" + +msgid "Stream request" +msgstr "" + +msgid "Strongest position" +msgstr "" + +# +msgid "Subservice list..." +msgstr "lista podusluga..." + +# +msgid "Subservices" +msgstr "Podusluge " + +msgid "Subtitle Quickmenu" +msgstr "" + +# +#, fuzzy +msgid "Subtitle alignment" +msgstr "Sekcija titlova" + +msgid "Subtitle border width" +msgstr "" + +msgid "Subtitle delay when timing is bad" +msgstr "" + +msgid "Subtitle delay when timing lacks" +msgstr "" + +# +#, fuzzy +msgid "Subtitle font size" +msgstr "Titlovi" + +msgid "Subtitle language selection 1" +msgstr "" + +msgid "Subtitle language selection 2" +msgstr "" + +msgid "Subtitle language selection 3" +msgstr "" + +msgid "Subtitle language selection 4" +msgstr "" + +# +#, fuzzy +msgid "Subtitle position" +msgstr "Sekcija titlova" + +# +msgid "Subtitle selection" +msgstr "Sekcija titlova" + +msgid "Subtitle selection..." +msgstr "" + +msgid "Subtitle settings" +msgstr "" + +# +msgid "Subtitles" +msgstr "Titlovi" + +# +msgid "Sun" +msgstr "Ned" + +# +msgid "Sunday" +msgstr "Nedelja" + +# +#, fuzzy +msgid "Swap PiP and main picture" +msgstr "zamijeni PiP sa glavnom slikom" + +# +#, fuzzy +msgid "Swap services" +msgstr "Zamjeni prozore" + +# +msgid "Swedish" +msgstr "Å vedski" + +msgid "Switch TV to correct input" +msgstr "" + +msgid "Switch between filelist/playlist" +msgstr "" + +msgid "Switch between normal mode and list mode" +msgstr "" + +msgid "Switch to HDMI in mode" +msgstr "" + +# +#, fuzzy +msgid "Switch to filelist" +msgstr "prebaci u datoteknu listu" + +msgid "Switch to next channel" +msgstr "" + +# +#, fuzzy +msgid "Switch to next channel in history" +msgstr "sljedeći kanal u povijesti" + +# +#, fuzzy +msgid "Switch to next sub service" +msgstr "prebaci na sljedeću poduslugu " + +# +#, fuzzy +msgid "Switch to playlist" +msgstr "prebaci u playlistu" + +# +#, fuzzy +msgid "Switch to previous channel" +msgstr "prebaci u predhodnu poduslugu " + +# +#, fuzzy +msgid "Switch to previous channel in history" +msgstr "predhodni kanal u povijesti" + +# +#, fuzzy +msgid "Switch to previous sub service" +msgstr "prebaci u predhodnu poduslugu " + +# +msgid "Switchable tuner types:" +msgstr "" + +msgid "Symbol rate" +msgstr "" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "" + +# +msgid "System" +msgstr "Sistem " + +# +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "" + +# +msgid "TS file is too large for ISO9660 level 1!" +msgstr "" + +msgid "TSID" +msgstr "" + +msgid "TV physical address report" +msgstr "" + +msgid "TXT PID" +msgstr "" + +msgid "Table of contents for collection" +msgstr "" + +# +msgid "Tags" +msgstr "" + +msgid "Teletext subtitle color" +msgstr "" + +# +#, fuzzy +msgid "Temperature and fan control" +msgstr "Roditeljska zaÅ¡tita" + +# +msgid "Terrestrial" +msgstr "Zemaljski" + +# +msgid "Terrestrial provider" +msgstr "Zemaljski pružatelj" + +# +msgid "Test DiSEqC settings" +msgstr "" + +# +msgid "Test mode" +msgstr "Test mod" + +msgid "Test the network configuration of your receiver.\n" +msgstr "" + +# +#, fuzzy +msgid "Test type" +msgstr "Test mod" + +msgid "Text color" +msgstr "" + +msgid "Thai" +msgstr "" + +# +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" + +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "" + +msgid "The PIN code has been changed successfully." +msgstr "" + +msgid "The PIN codes you entered are different." +msgstr "" + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" + +# +msgid "The backup failed. Please choose a different backup location." +msgstr "Neuspjela izrada sigurnosne kopije. Molim odaberite drugu lokaciju." + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" + +# +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" + +# +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" + +# +msgid "The following files were found..." +msgstr "" + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "" + +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" + +# +#, python-format +msgid "The path %s already exists." +msgstr "" + +# +msgid "The pin code you entered is wrong." +msgstr "UneÅ¡eni pin kod je krivi." + +# +#, python-format +msgid "The results have been written to %s." +msgstr "" + +# +msgid "The sleep timer has been activated." +msgstr "Tajmer spavanja je aktiviran." + +# +msgid "The sleep timer has been disabled." +msgstr "Tajmer je onemogućen." + +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "" + +# +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "" + +msgid "The user interface of your receiver is restarting" +msgstr "" + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" + +# +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "ÄŒarobnjak može napraviti sigurnosnu kopiju postavki. Želite li je napraviti sada?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "" + +# +msgid "The wizard is finished now." +msgstr "ÄŒarobnjak je gotov." + +# +msgid "There are at least " +msgstr "" + +#, python-format +msgid "There are at least %s updates available." +msgstr "" + +# +msgid "There are currently no outstanding actions." +msgstr "" + +# +msgid "There are no updates available." +msgstr "" + +msgid "There is no signal to lock on !" +msgstr "" + +# +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" + +# +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "" + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" + +# +msgid "This plugin is installed." +msgstr "" + +# +msgid "This plugin is not installed." +msgstr "" + +# +msgid "This plugin will be installed." +msgstr "" + +# +msgid "This plugin will be removed." +msgstr "" + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "" + +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" + +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" + +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" + +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" + +msgid "This test detects your configured LAN adapter." +msgstr "" + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" + +# +msgid "Three" +msgstr "Tri" + +# +msgid "Threshold" +msgstr "Prag" + +# +msgid "Thu" +msgstr "ÄŒet" + +# +msgid "Thumbnails" +msgstr "" + +# +msgid "Thursday" +msgstr "ÄŒetvrtak" + +# +msgid "Time" +msgstr "Vrijeme" + +# +#, fuzzy +msgid "Time scale" +msgstr "Korekcija vremena " + +# +msgid "Timer" +msgstr "Tajmer" + +msgid "Timer Overview" +msgstr "" + +# +#, fuzzy +msgid "Timer edit" +msgstr "Editiranje tajmera" + +# +#, fuzzy +msgid "Timer editor" +msgstr "Editor tajmera" + +# +msgid "Timer entry" +msgstr "Unos Tajmera" + +# +msgid "Timer log" +msgstr "Tajmer log" + +# +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" + +# +#, fuzzy +msgid "Timer overview" +msgstr "Unos Tajmera" + +# +#, fuzzy +msgid "Timer recording location" +msgstr "promjeni dužinu snimanja" + +# +msgid "Timer sanity error" +msgstr "GreÅ¡ka nerazumnog tajmera" + +# +msgid "Timer selection" +msgstr "Korekcija vremena " + +msgid "Timer selection..." +msgstr "" + +# +#, fuzzy +msgid "Timer type" +msgstr "Tip tajmer" + +# +msgid "Timeshift" +msgstr "Vrem.pomak" + +msgid "Timeshift Live" +msgstr "" + +# +msgid "Timeshift location" +msgstr "" + +# +msgid "Timeshift not possible!" +msgstr "Vremenski pomak nije moguć!" + +# +msgid "Timezone" +msgstr "Vremenska zona" + +# +msgid "Title" +msgstr "Titl" + +# +msgid "Title properties" +msgstr "" + +# +msgid "Titleset mode" +msgstr "" + +msgid "To audio selection" +msgstr "" + +msgid "To subtitle selection" +msgstr "" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" + +# +msgid "Today" +msgstr "Danas" + +# +#, fuzzy +msgid "Toggle a cut mark at the current position" +msgstr "aktiviraj rezanje na trenutno oznaÄenoj poziciji" + +# +#, fuzzy +msgid "Tone amplitude" +msgstr "Ton mod" + +# +msgid "Tone mode" +msgstr "Ton mod" + +# +msgid "Toneburst" +msgstr "Toneburst" + +# +msgid "Toneburst A/B" +msgstr "Toneburst A/B" + +msgid "Top and bottom" +msgstr "" + +# +msgid "Track" +msgstr "" + +# +msgid "Translation" +msgstr "Prijevod" + +# +msgid "Translation:" +msgstr "Prijevod:" + +msgid "Translations" +msgstr "" + +# +msgid "Transmission mode" +msgstr "Mod transmisije" + +# +msgid "Transponder" +msgstr "Transponder" + +# +#, fuzzy +msgid "Transponder type" +msgstr "Tip Transpondera" + +msgid "Trash can" +msgstr "" + +# +msgid "Tries left:" +msgstr "PokuÅ¡aja ostalo:" + +# +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "PokuÅ¡avam pronaći koriÅ¡tene transpondere u kabelskoj mreži.. molim priÄekajte..." + +# +msgid "Trying to download a new packetlist. Please wait..." +msgstr "" + +# +msgid "Tue" +msgstr "Uto" + +# +msgid "Tuesday" +msgstr "Utorak" + +# +msgid "Tune" +msgstr "Tune" + +# +#, fuzzy +msgid "Tune and focus" +msgstr "Status tunera" + +# +msgid "Tune failed!" +msgstr "GreÅ¡ka tunera!" + +# +msgid "Tuner" +msgstr "Tuner" + +# +msgid "Tuner configuration" +msgstr "Konfiguracija Tunera" + +msgid "Tuner is not supported" +msgstr "" + +# +#, fuzzy +msgid "Tuner slot" +msgstr "Utor Tunera" + +# +msgid "Tuner status" +msgstr "Status tunera" + +# +#, fuzzy, python-format +msgid "Tuner status %s" +msgstr "Status tunera" + +# +msgid "Tuner type" +msgstr "" + +# +msgid "Turkish" +msgstr "Turski" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +# +msgid "Two" +msgstr "Dva" + +# +msgid "Type" +msgstr "" + +# +msgid "Type of scan" +msgstr "Tip skeniranja" + +# +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "" + +# +#, fuzzy +msgid "USB stick" +msgstr "USB Disk" + +# +msgid "USB stick wizard" +msgstr "" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +# +msgid "Undo install" +msgstr "" + +# +msgid "Undo uninstall" +msgstr "" + +msgid "Unencrypted" +msgstr "" + +# +msgid "UnhandledKey" +msgstr "" + +# +msgid "Unicable" +msgstr "" + +# +msgid "Unicable LNB" +msgstr "" + +# +msgid "Unicable Martix" +msgstr "" + +# +msgid "Uninstall" +msgstr "" + +# +msgid "Universal LNB" +msgstr "Univerzalni LNB" + +msgid "Unknown" +msgstr "" + +msgid "Unmount" +msgstr "" + +# +msgid "Unsupported" +msgstr "" + +# +msgid "Update" +msgstr "" + +msgid "Update and ask to reboot" +msgstr "" + +msgid "Update and reboot (recommended)" +msgstr "" + +# +#, fuzzy +msgid "Update channel list only" +msgstr "sljedeći kanal u povijesti" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "" +msgstr[1] "" + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "" + +msgid "Update has completed." +msgstr "" + +# +msgid "Updatefeed not available." +msgstr "" + +# +msgid "Updating software catalog" +msgstr "" + +# +msgid "Upgrading" +msgstr "NadograÄ‘ujem" + +# +msgid "Use" +msgstr "" + +# +msgid "Use DHCP" +msgstr "Koristi DHCP" + +msgid "Use EIT EPG information when it is available." +msgstr "" + +msgid "Use FreeSat EPG information when it is available." +msgstr "" + +msgid "Use MHW EPG information when it is available." +msgstr "" + +msgid "Use Netmed EPG information when it is available." +msgstr "" + +msgid "Use TV remote control" +msgstr "" + +# +#, fuzzy +msgid "Use USALS for this sat" +msgstr "Koristi USALS za ovaj satelit" + +msgid "Use ViaSat EPG information when it is available." +msgstr "" + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +# +msgid "Use a gateway" +msgstr "Koristi gateway" + +msgid "Use fastscan channel names" +msgstr "" + +msgid "Use fastscan channel numbering" +msgstr "" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "" + +# +#, fuzzy +msgid "Use interface" +msgstr "ZajedniÄko suÄelje" + +msgid "Use official channel numbering" +msgstr "" + +msgid "Use original DVB subtitle position" +msgstr "" + +msgid "Use original teletext position" +msgstr "" + +# +msgid "Use power measurement" +msgstr "Koristi mjerenje snage" + +msgid "Use the network wizard to configure selected network adapter" +msgstr "" + +msgid "Use the network wizard to configure your network\n" +msgstr "" + +# +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "Koristite gore/dolje tipke na vaÅ¡em bežiÄnom upravljaÄu za odabir opcije. Nakon toga, pritisnite OK." + +# +#, fuzzy +msgid "Use the wizard to set up basic features" +msgstr "ÄŒarobnjaka za postavljanje osnovnih postavki" + +# +#, fuzzy +msgid "Use these input device settings?" +msgstr "Želite li stvarno zatvoriti bez pohrane ?" + +# +#, fuzzy +msgid "Use these settings?" +msgstr "Da, vratite pohranjene postavke sada" + +# +msgid "Use this video enhancement settings?" +msgstr "" + +# +#, fuzzy +msgid "Use trash can in movielist" +msgstr "izaÄ‘i iz izbornika filmova" + +# +msgid "Used service scan type" +msgstr "Vrste koriÅ¡tenih usluga za skeniranje" + +msgid "User - bouquets" +msgstr "" + +# +msgid "User defined" +msgstr "KorisniÄki def" + +msgid "User defined transponder" +msgstr "" + +# +#, fuzzy +msgid "User interface" +msgstr "KorisniÄki def" + +# +msgid "Username" +msgstr "" + +#, python-format +msgid "Using LNB %d" +msgstr "" + +msgid "Using fixed address" +msgstr "" + +#, python-format +msgid "Using tuner %s" +msgstr "" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "" + +# +msgid "VCR scart" +msgstr "VCR skart" + +# +msgid "VMGM (intro trailer)" +msgstr "" + +# +msgid "Vertical" +msgstr "" + +msgid "Vertical turning speed" +msgstr "" + +msgid "Video PID" +msgstr "" + +# +msgid "Video enhancement preview" +msgstr "" + +# +msgid "Video enhancement settings" +msgstr "" + +# +msgid "Video enhancement setup" +msgstr "" + +# +#, fuzzy +msgid "Video fine tuning" +msgstr "Video postavke" + +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" + +# +msgid "Video mode selection." +msgstr "" + +# +#, fuzzy +msgid "Video output" +msgstr "Video izlaz" + +# +#, fuzzy +msgid "Video setup" +msgstr "Video postavke" + +# +#, fuzzy +msgid "Video wizard" +msgstr "Video Äarobnjak" + +#, python-format +msgid "Video: %s fps" +msgstr "" + +msgid "VideoMode" +msgstr "" + +msgid "Videocodec" +msgstr "" + +msgid "Videoformat" +msgstr "" + +msgid "Videosize" +msgstr "" + +# +msgid "View Rass interactive..." +msgstr "Gledaj Rass interaktivno..." + +# +msgid "View details" +msgstr "" + +# +msgid "View list of available " +msgstr "" + +# +msgid "View list of available CommonInterface extensions" +msgstr "" + +# +msgid "View list of available EPG extensions." +msgstr "" + +# +msgid "View list of available Satellite equipment extensions." +msgstr "" + +# +msgid "View list of available communication extensions." +msgstr "" + +# +msgid "View list of available default settings" +msgstr "" + +msgid "View list of available display and userinterface extensions." +msgstr "" + +# +msgid "View list of available multimedia extensions." +msgstr "" + +# +msgid "View list of available networking extensions" +msgstr "" + +# +msgid "View list of available recording extensions" +msgstr "" + +# +msgid "View list of available skins" +msgstr "" + +# +msgid "View list of available software extensions" +msgstr "" + +# +msgid "View list of available system extensions" +msgstr "" + +# +#, fuzzy +msgid "View photos..." +msgstr "gledaj ekstenzije..." + +# +msgid "View teletext..." +msgstr "Pregled teleteksta..." + +msgid "View video CD..." +msgstr "" + +msgid "Virtual keyboard" +msgstr "" + +# +msgid "Voltage mode" +msgstr "Mod Napona" + +# +msgid "Volume" +msgstr "Volumen" + +# +msgid "W" +msgstr "W" + +# +msgid "WEP" +msgstr "" + +msgid "WLAN connection" +msgstr "" + +# +msgid "WPA" +msgstr "" + +# +msgid "WPA or WPA2" +msgstr "" + +# +msgid "WPA2" +msgstr "" + +# +msgid "WSS on 4:3" +msgstr "WSS na 4:3" + +# +msgid "Waiting" +msgstr "" + +msgid "Waiting for mount" +msgstr "" + +msgid "Waiting for partition" +msgstr "" + +msgid "Wakeup" +msgstr "" + +msgid "Wakeup TV from standby" +msgstr "" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "" + +msgid "Wakeup signal from TV" +msgstr "" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "" + +# +#, fuzzy +msgid "Watch movies..." +msgstr "Pokreni snimljene filmove..." + +# +#, fuzzy +msgid "Watch recordings..." +msgstr "snimanje..." + +# +msgid "Wed" +msgstr "Sri" + +# +msgid "Wednesday" +msgstr "Srijeda" + +# +msgid "Weekday" +msgstr "Tjedni dan" + +msgid "Weighted position" +msgstr "" + +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" + +# +msgid "Welcome..." +msgstr "" + +# +msgid "West" +msgstr "Zapad" + +msgid "West limit set" +msgstr "" + +# +msgid "What do you want to scan?" +msgstr "Å to želite skenirati?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "" + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "" + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "" + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "" + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "" + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "" + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "" + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "" + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "" + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "" + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "" + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "" + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "" + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "" + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "" + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "" + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "" + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "" + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "" + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "" + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "" + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "" + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "" + +msgid "When enabled, number markers will be hiden." +msgstr "" + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "" + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "" + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "" + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "" + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "" + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "" + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "" + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "" + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "" + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "" + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "" + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "" + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "" + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "" + +msgid "When enabled, use DHCP for the IP configuration." +msgstr "" + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "" + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "" + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "" + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "" + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "" + +# +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" + +# +msgid "Where do you want to backup your settings?" +msgstr "Gdje želite pohraniti ovu sigurnosnu kopiju liste kanala?" + +# +msgid "Where to save temporary timeshift recordings?" +msgstr "" + +# +msgid "Wireless LAN" +msgstr "" + +msgid "Wireless network" +msgstr "" + +# +#, fuzzy +msgid "Wireless network configuration..." +msgstr "Konfiguracija Tunera" + +msgid "Wireless network connection setup" +msgstr "" + +msgid "Wireless network connection setup." +msgstr "" + +msgid "Wireless network state" +msgstr "" + +msgid "With popup" +msgstr "" + +msgid "Without popup" +msgstr "" + +msgid "Would you like to install a softcam?" +msgstr "" + +# +msgid "Write error while recording. Disk full?\n" +msgstr "GreÅ¡ka tijekom snimanja. Disk Pun?\n" + +# +msgid "Write failed!" +msgstr "" + +# +msgid "YPbPr" +msgstr "YPbPr" + +# +msgid "Year" +msgstr "Godina" + +msgid "Yellow DVB subtitles" +msgstr "" + +# +msgid "Yes" +msgstr "Da" + +msgid "Yes and save" +msgstr "" + +msgid "Yes and save in movie dir" +msgstr "" + +# +msgid "Yes to all" +msgstr "" + +msgid "Yes, always" +msgstr "" + +# +msgid "Yes, and delete this movie" +msgstr "" + +# +msgid "Yes, backup my settings!" +msgstr "Da, napravi sigurnosnu kopiju mojih postavki." + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +# +msgid "Yes, do a manual scan now" +msgstr "Da, zapoÄeti ruÄnu pretragu sada" + +# +msgid "Yes, do an automatic scan now" +msgstr "Da, zapoÄni automatsko pretraživanje sada" + +# +msgid "Yes, do another manual scan now" +msgstr "Da, zapoÄni drugu ruÄnu pretragu sada" + +# +msgid "Yes, perform a shutdown now." +msgstr "Da, zapoÄni iskljuÄivanje sada" + +# +msgid "Yes, restore the settings now" +msgstr "Da, vratite pohranjene postavke sada" + +# +msgid "Yes, returning to movie list" +msgstr "" + +msgid "Yesterday" +msgstr "" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" + +# +msgid "You can cancel the installation." +msgstr "" + +# +msgid "You can cancel the removal." +msgstr "" + +msgid "You can continue watching TV etc. while this is running." +msgstr "" + +# +msgid "You can install this plugin." +msgstr "" + +msgid "You can only burn receiver recordings!" +msgstr "" + +# +msgid "You can remove this plugin." +msgstr "" + +# +msgid "You cannot delete this!" +msgstr "Ne možete obrisati ovo!" + +msgid "You didn't select a channel to record from." +msgstr "" + +# +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "" + +# +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "" + +# +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "" + +# +#, python-format +msgid "You have to wait %s!" +msgstr "Morate priÄekati %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" + +msgid "You system does not support ext4" +msgstr "" + +# +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "Sigurnosna kopija je uspjeÅ¡no napravljena. Sada ćemo dalje objasniti za sljedeći proces nadogradnje." + +# +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "" + +# +msgid "Your current collection will get lost!" +msgstr "" + +# +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"VaÅ¡ softver frontprocesora mora biti nadograÄ‘en.\n" +"Pritisnite OK za poÄetak nadogradnje." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +# +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "" + +# +msgid "Your network configuration has been activated." +msgstr "" + +msgid "Your receiver does not have an internet connection" +msgstr "" + +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" + +msgid "Your receiver is rebooting" +msgstr "" + +msgid "Your receiver is shutting down" +msgstr "" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "" + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "" + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "" + +msgid "Your receiver will got to standby due to inactivity." +msgstr "" + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "" + +# +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" + +msgid "Zap" +msgstr "" + +# +msgid "Zap back to previously tuned service?" +msgstr "" + +# +msgid "Zap back to service before positioner setup?" +msgstr "Prebaciti natrag na zadnju uslugu prije postavki motora?" + +# +msgid "Zap back to service before tuner setup?" +msgstr "" + +msgid "Zap focus to Picture in Picture" +msgstr "" + +msgid "Zap focus to main screen" +msgstr "" + +msgid "Zap mode" +msgstr "" + +msgid "Zap to selected channel" +msgstr "" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "" + +# +msgid "[alternative edit]" +msgstr "[editiranje alternative]" + +# +msgid "[bouquet edit]" +msgstr "[editiranje paketa]" + +# +msgid "[favourite edit]" +msgstr "[editiranje favorita]" + +# +msgid "[move mode]" +msgstr "[mod premjestanja]" + +# +msgid "a gui to assign services/providers to common interface modules" +msgstr "" + +# +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "" + +# +msgid "abort alternatives edit" +msgstr "odustani od editiranja alternative" + +# +msgid "abort bouquet edit" +msgstr "prekini editiranje paketa" + +# +msgid "abort favourites edit" +msgstr "odustani od editiranja favorita" + +# +msgid "about to start" +msgstr "spremni za poÄetak" + +# +msgid "activate network adapter configuration" +msgstr "" + +# +msgid "add alternatives" +msgstr "dodaj alternative" + +# +msgid "add bookmark" +msgstr "" + +# +msgid "add bouquet" +msgstr "dodaj paket" + +# +msgid "add marker" +msgstr "dodaj oznaku" + +# +msgid "add service to bouquet" +msgstr "dodaj uslugu u paket " + +# +msgid "add service to favourites" +msgstr "dodaj uslugu u favorite" + +# +msgid "add to parental protection" +msgstr "dodaj u roditeljsku zaÅ¡titu" + +msgid "adult movie/drama" +msgstr "" + +# +msgid "advanced" +msgstr "napredno" + +msgid "adventure/western/war" +msgstr "" + +msgid "advertisement/shopping" +msgstr "" + +msgid "after " +msgstr "" + +# +#, fuzzy +msgid "alphabetic" +msgstr "sortiraj abecedno" + +msgid "alphabetic reverse" +msgstr "" + +msgid "alternative" +msgstr "" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "" + +msgid "arts/culture magazine" +msgstr "" + +msgid "athletics" +msgstr "" + +# +msgid "audio tracks" +msgstr "" + +# +msgid "auto" +msgstr "" + +# +#, fuzzy +msgid "automatic" +msgstr "Automatsko skeniranje " + +# +msgid "back" +msgstr "natrag" + +# +msgid "background image" +msgstr "" + +msgid "ballet" +msgstr "" + +#, python-format +msgid "bc%s" +msgstr "" + +# +msgid "better" +msgstr "bolje" + +# +msgid "black" +msgstr "" + +msgid "black & white" +msgstr "" + +# +msgid "blacklist" +msgstr "crnalista" + +# +msgid "blue" +msgstr "" + +msgid "broadcasting/press" +msgstr "" + +# +#, fuzzy +msgid "by date" +msgstr "sortiraj po datumu" + +msgid "cartoon/puppets" +msgstr "" + +msgid "center" +msgstr "" + +msgid "centered" +msgstr "" + +msgid "centered, wrapped" +msgstr "" + +# +msgid "chapters" +msgstr "" + +msgid "childrens's/youth program (general)" +msgstr "" + +# +msgid "circular left" +msgstr "lijevi cirkularni" + +# +msgid "circular right" +msgstr "desni cirkularni" + +msgid "comedy" +msgstr "" + +# +msgid "complex" +msgstr "kompleksno" + +# +msgid "config menu" +msgstr "konfiguracijski izbornik" + +# +msgid "confirmed" +msgstr "" + +# +msgid "connected" +msgstr "" + +# +msgid "continue" +msgstr "nastavi" + +msgid "cooking" +msgstr "" + +# +msgid "copy to bouquets" +msgstr "kopiraj u pakete" + +# +msgid "create directory" +msgstr "" + +#, python-format +msgid "currently installed image: %s" +msgstr "" + +# +msgid "daily" +msgstr "dnevno" + +# +msgid "day" +msgstr "" + +# +#, fuzzy +msgid "default" +msgstr "Tvorni?ko" + +# +msgid "delete cut" +msgstr "obriÅ¡i rez" + +msgid "delete..." +msgstr "" + +msgid "descramble and record ecm" +msgstr "" + +msgid "detective/thriller" +msgstr "" + +# +msgid "disable" +msgstr "onemogući" + +# +msgid "disable move mode" +msgstr "onemoguće mod premjeÅ¡tanja" + +# +msgid "disabled" +msgstr "onemogućeno" + +# +msgid "disconnected" +msgstr "" + +msgid "discussion/interview/debate" +msgstr "" + +# +msgid "do nothing" +msgstr "niÅ¡ta ne Äini" + +msgid "documentary" +msgstr "" + +msgid "don't descramble, record ecm" +msgstr "" + +# +msgid "done!" +msgstr "UÄinjeno!" + +msgid "east" +msgstr "" + +msgid "economics/social advisory" +msgstr "" + +# +msgid "edit alternatives" +msgstr "editiraj alternative" + +msgid "education/science/factual topics (general)" +msgstr "" + +# +msgid "empty" +msgstr "prazno" + +# +msgid "enable" +msgstr "omogući" + +# +msgid "enable bouquet edit" +msgstr "omogući editanje paketa" + +# +msgid "enable favourite edit" +msgstr "omogući editiranje favorita" + +# +msgid "enable move mode" +msgstr "ukljuÄi mod za premjeÅ¡tanje" + +# +msgid "enabled" +msgstr "omogućeno" + +# +msgid "end alternatives edit" +msgstr "kraj editiranja alternativa" + +# +msgid "end bouquet edit" +msgstr "zavrÅ¡i editiranje paketa" + +# +msgid "end cut here" +msgstr "zavrÅ¡i rez ovdje" + +# +msgid "end favourites edit" +msgstr "zavrÅ¡i editiranje favorita" + +msgid "entertainment (10-16 year old)" +msgstr "" + +msgid "entertainment (6-14 year old)" +msgstr "" + +# +msgid "equal to" +msgstr "" + +msgid "equestrian" +msgstr "" + +# +msgid "exit DVD player or return to file browser" +msgstr "" + +msgid "exit movielist" +msgstr "" + +# +msgid "exit network adapter configuration" +msgstr "" + +# +msgid "exit networkadapter setup menu" +msgstr "" + +msgid "experimental film/video" +msgstr "" + +msgid "false" +msgstr "" + +msgid "fashion" +msgstr "" + +# +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "" + +# +msgid "filename" +msgstr "" + +msgid "film/cinema" +msgstr "" + +msgid "fine arts" +msgstr "" + +# +msgid "fine-tune your display" +msgstr "" + +msgid "fitness & health" +msgstr "" + +# +#, fuzzy +msgid "flat alphabetic" +msgstr "sortiraj abecedno" + +# +#, fuzzy +msgid "flat alphabetic reverse" +msgstr "sortiraj abecedno" + +msgid "folk/traditional music" +msgstr "" + +msgid "football/soccer" +msgstr "" + +msgid "foreign countries/expeditions" +msgstr "" + +# +msgid "forward to the next chapter" +msgstr "" + +# +msgid "free" +msgstr "" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "" + +msgid "game show/quiz/contest" +msgstr "" + +msgid "gardening" +msgstr "" + +# +msgid "go to deep standby" +msgstr "pokreni IskljuÄivanje Dreamboxa" + +# +msgid "go to standby" +msgstr "poÄ‘i u pripravnost" + +# +msgid "grab this frame as bitmap" +msgstr "" + +# +msgid "green" +msgstr "" + +msgid "handicraft" +msgstr "" + +msgid "height" +msgstr "" + +# +msgid "help..." +msgstr "pomoć..." + +# +msgid "horizontal" +msgstr "horizontala" + +msgid "information/education/school program" +msgstr "" + +# +msgid "init module" +msgstr "init modula" + +# +msgid "init modules" +msgstr "" + +# +msgid "insert mark here" +msgstr "unesi oznaku ovdje" + +msgid "invalid type" +msgstr "" + +msgid "jazz" +msgstr "" + +# +msgid "jump back to the previous title" +msgstr "" + +# +msgid "jump forward to the next title" +msgstr "" + +msgid "languages" +msgstr "" + +# +msgid "leave movie player..." +msgstr "napusti video ..." + +# +msgid "left" +msgstr "lijevi" + +msgid "left, wrapped" +msgstr "" + +msgid "leisure hobbies (general)" +msgstr "" + +# +msgid "length" +msgstr "" + +msgid "limit ..., aborting !" +msgstr "" + +# +msgid "list style compact" +msgstr "kompaktni stil liste" + +# +msgid "list style compact with description" +msgstr "kompaktni stil liste sa opisom" + +# +msgid "list style default" +msgstr "standardne postavke stila liste" + +# +msgid "list style single line" +msgstr "Kompaktni jednostruki stil liste" + +msgid "literature" +msgstr "" + +msgid "live broadcast" +msgstr "" + +# +msgid "locked" +msgstr "prihvaćen" + +# +msgid "loopthrough to" +msgstr "" + +msgid "magazines/reports/documentary" +msgstr "" + +# +msgid "manual" +msgstr "RuÄno" + +msgid "martial sports" +msgstr "" + +msgid "medicine/physiology/psychology" +msgstr "" + +# +msgid "menu" +msgstr "meni" + +# +msgid "mins" +msgstr "mins" + +# +msgid "minutes" +msgstr "minute" + +# +msgid "month" +msgstr "" + +msgid "motor sport" +msgstr "" + +msgid "motoring" +msgstr "" + +# +msgid "move down to last entry" +msgstr "" + +# +msgid "move down to next entry" +msgstr "" + +# +msgid "move up to first entry" +msgstr "" + +# +msgid "move up to previous entry" +msgstr "" + +msgid "movie/drama (general)" +msgstr "" + +# +msgid "multinorm" +msgstr "multinorm" + +msgid "music/ballet/dance (general)" +msgstr "" + +msgid "musical/opera" +msgstr "" + +msgid "nature/animals/environment" +msgstr "" + +# +msgid "never" +msgstr "nikad" + +msgid "new media" +msgstr "" + +msgid "news magazine" +msgstr "" + +msgid "news/current affairs (general)" +msgstr "" + +msgid "news/weather report" +msgstr "" + +# +msgid "no" +msgstr "Ne" + +# +msgid "no CAId selected" +msgstr "" + +# +msgid "no CI slots found" +msgstr "" + +# +msgid "no module found" +msgstr "nema modula " + +msgid "no storage devices found" +msgstr "" + +# +msgid "none" +msgstr "prazno" + +msgid "normal" +msgstr "" + +# +msgid "not configured" +msgstr "" + +# +msgid "not locked" +msgstr "nije prihvaćen" + +msgid "not supported" +msgstr "" + +# +msgid "not used" +msgstr "" + +# +msgid "nothing connected" +msgstr "niÅ¡ta nije spojeno" + +# +msgid "of a DUAL layer medium used." +msgstr "" + +# +msgid "of a SINGLE layer medium used." +msgstr "" + +# +msgid "off" +msgstr "iskljuÄi" + +msgid "offset is" +msgstr "" + +# +msgid "on" +msgstr "ukljuÄi" + +# +msgid "on READ ONLY medium." +msgstr "" + +msgid "on end of movie" +msgstr "" + +# +msgid "once" +msgstr "jednom" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +# +msgid "open nameserver configuration" +msgstr "" + +msgid "original" +msgstr "" + +msgid "original language" +msgstr "" + +# +msgid "pass" +msgstr "lozinka" + +msgid "performing arts" +msgstr "" + +msgid "play as picture in picture" +msgstr "" + +msgid "play in mainwindow" +msgstr "" + +# +msgid "please press OK when ready" +msgstr "pritisni OK kada si spreman" + +# +msgid "please wait, loading picture..." +msgstr "molim priÄekajte, uÄitavam sliku..." + +msgid "popular culture/traditional arts" +msgstr "" + +msgid "pre-school children's program" +msgstr "" + +msgid "receiver software because updates are available." +msgstr "" + +# +msgid "record" +msgstr "Snimi" + +# +msgid "recording..." +msgstr "snimanje..." + +# +msgid "red" +msgstr "" + +msgid "religion" +msgstr "" + +msgid "remarkable people" +msgstr "" + +# +msgid "remove after this position" +msgstr "obriÅ¡i nakon ove pozicije" + +# +msgid "remove all alternatives" +msgstr "obriÅ¡i sve alternative" + +# +msgid "remove all new found flags" +msgstr "obriÅ¡i sve novo naÄ‘ene zastave" + +# +msgid "remove before this position" +msgstr "obriÅ¡i prije ove pozicije" + +# +msgid "remove bookmark" +msgstr "" + +# +msgid "remove directory" +msgstr "" + +# +msgid "remove entry" +msgstr "obriÅ¡i unos" + +# +msgid "remove from parental protection" +msgstr "obriÅ¡i iz roditeljske zaÅ¡tite" + +# +msgid "remove new found flag" +msgstr "obriÅ¡i novo naÄ‘enu zastavu" + +# +msgid "remove selected satellite" +msgstr "" + +# +msgid "remove this mark" +msgstr "obriÅ¡i ovu oznaku" + +msgid "rename entry" +msgstr "" + +# +msgid "repeat playlist" +msgstr "" + +# +msgid "repeated" +msgstr "ponavljam" + +msgid "reverse by date" +msgstr "" + +# +msgid "rewind to the previous chapter" +msgstr "" + +# +msgid "right" +msgstr "desni" + +msgid "right, wrapped" +msgstr "" + +msgid "rock/pop" +msgstr "" + +msgid "romance" +msgstr "" + +# +msgid "save last directory on exit" +msgstr "" + +# +msgid "save playlist on exit" +msgstr "" + +# +msgid "scan state" +msgstr "status skeniranja" + +msgid "science fiction/fantasy/horror" +msgstr "" + +# +msgid "second cable of motorized LNB" +msgstr "drugi kabel od motoriziranog LNB-a" + +# +msgid "seconds" +msgstr "sekundi" + +# +msgid "select" +msgstr "" + +# +msgid "select CAId's" +msgstr "" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +# +msgid "select menu entry" +msgstr "" + +# +msgid "select movie" +msgstr "odaberi film" + +msgid "select the movie path" +msgstr "" + +msgid "serious music/classic music" +msgstr "" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "" + +msgid "service PIN" +msgstr "" + +msgid "set as startup service" +msgstr "" + +msgid "setup PIN" +msgstr "" + +# +msgid "show DVD main menu" +msgstr "" + +msgid "show all tags" +msgstr "" + +# +msgid "show alternatives" +msgstr "prikaži alternative" + +# +msgid "show event details" +msgstr "prikaži proÅ¡irene infor. " + +msgid "show extended description" +msgstr "" + +msgid "show mediaplayer on mainmenu" +msgstr "" + +msgid "show softwaremanager in setup menu" +msgstr "" + +msgid "show softwaremanager on blue button" +msgstr "" + +msgid "show tag menu" +msgstr "" + +# +msgid "show transponder info" +msgstr "prikaži info transpondera" + +msgid "show/game show (general)" +msgstr "" + +msgid "shuffle" +msgstr "" + +# +msgid "shut down" +msgstr "" + +# +msgid "simple" +msgstr "jednostavno" + +# +msgid "skip backward" +msgstr "preskoÄi unazad" + +# +msgid "skip forward" +msgstr "preskoÄi unaprijed" + +msgid "soap/melodram/folkloric" +msgstr "" + +msgid "social/political issues/economics (general)" +msgstr "" + +msgid "social/spiritual science" +msgstr "" + +msgid "sorting of playlists" +msgstr "" + +# +msgid "special characters" +msgstr "" + +msgid "special events" +msgstr "" + +msgid "special format data DVD (HDTV compatible)" +msgstr "" + +msgid "sports (general)" +msgstr "" + +msgid "sports magazine" +msgstr "" + +# +msgid "standard" +msgstr "standardno" + +# +msgid "start cut here" +msgstr "poÄni rez ovdje" + +# +msgid "start directory" +msgstr "" + +msgid "stepsize" +msgstr "" + +# +msgid "stereo" +msgstr "stereo" + +msgid "stop using as startup service" +msgstr "" + +# +msgid "switch to bookmarks" +msgstr "" + +# +msgid "switch to filelist" +msgstr "prebaci u datoteknu listu" + +# +msgid "switch to the next angle" +msgstr "" + +# +msgid "switch to the next audio track" +msgstr "" + +# +msgid "switch to the next subtitle language" +msgstr "" + +msgid "talk show" +msgstr "" + +msgid "team sports" +msgstr "" + +msgid "technology/natural science" +msgstr "" + +# +msgid "template file" +msgstr "" + +msgid "tennis/squash" +msgstr "" + +# +msgid "this recording" +msgstr "ovo snimanje" + +# +msgid "this service is protected by a parental control pin" +msgstr "usluga je zaÅ¡tićena s pin kodom roditeljske kontrole" + +# +msgid "toggle time, chapter, audio, subtitle info" +msgstr "" + +msgid "top" +msgstr "" + +msgid "tourism/travel" +msgstr "" + +msgid "true" +msgstr "" + +msgid "unavailable" +msgstr "" + +# +msgid "unconfirmed" +msgstr "" + +msgid "undefined" +msgstr "" + +# +msgid "unknown" +msgstr "" + +# +msgid "unknown service" +msgstr "Nepoznata usluga" + +msgid "unpublished" +msgstr "" + +# +msgid "until standby/restart" +msgstr "" + +# +msgid "user defined" +msgstr "korisniÄki definirano" + +msgid "variety show" +msgstr "" + +# +msgid "vertical" +msgstr "vertikala" + +# +msgid "wait for ci..." +msgstr "Äekaj ci..." + +# +msgid "wait for mmi..." +msgstr "Äekam mmi..." + +# +msgid "waiting" +msgstr "Äekam" + +msgid "water sport" +msgstr "" + +# +msgid "weekly" +msgstr "tjedno" + +msgid "west" +msgstr "" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "" + +# +msgid "whitelist" +msgstr "bijelalista" + +msgid "width" +msgstr "" + +msgid "winter sport" +msgstr "" + +msgid "wireless network interface" +msgstr "" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "" +msgstr[1] "" + +# +msgid "working" +msgstr "" + +# +msgid "yellow" +msgstr "" + +# +msgid "yes" +msgstr "Da " + +# +msgid "yes (keep feeds)" +msgstr "Da ( zadrži feedove)" + +# +msgid "zap" +msgstr "zap" + +msgid "zap and record" +msgstr "" + +# +msgid "zapped" +msgstr "prebaÄen" + +# +#~ msgid "AA" +#~ msgstr "AA" + +# +#~ msgid "AB" +#~ msgstr "AB" + +# +#, fuzzy +#~ msgid "Activate PiP" +#~ msgstr "Aktiviraj Sliku u Slici" + +# +#, fuzzy +#~ msgid "Add/remove timer for current event" +#~ msgstr "dodaj snimanje (zaustavi nakon trenutnog dogaÄ‘aja)" + +# +#, fuzzy +#~ msgid "All satellites" +#~ msgstr "Sateliti" + +# +#~ msgid "BA" +#~ msgstr "BA" + +# +#~ msgid "BB" +#~ msgstr "BB" + +# +#~ msgid "Committed DiSEqC command" +#~ msgstr "Committed DiSEqC cmd" + +# +#~ msgid "DiSEqC repeats" +#~ msgstr "DiSEqC ponavljanja" + +# +#~ msgid "No satellite frontend found!!" +#~ msgstr "Nije pronaÄ‘en Satelitski tuner!!" + +# +#, fuzzy +#~ msgid "Switch next channel" +#~ msgstr "sljedeći kanal" + +# +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Uncommitted DiSEqC command" + +# +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "Prebaciti natrag na uslugu prije sat. tražitelja?" diff --git a/po/hu.po b/po/hu.po new file mode 100644 index 0000000..7abc3df --- /dev/null +++ b/po/hu.po @@ -0,0 +1,8098 @@ +# English translations for tuxbox-enigma package. +# Copyright (C) 2005 THE tuxbox-enigma'S COPYRIGHT HOLDER +# This file is distributed under the same license as the tuxbox-enigma package. +# Automatically generated, 2005. +msgid "" +msgstr "" +"Project-Id-Version: tuxbox-enigma 0.0.1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2014-02-11 21:04+0100\n" +"Last-Translator: robertut <robertut@yahoo.com>\n" +"Language-Team: Mediavox, robertut <info@mediavox.hu, robertut@yahoo.com>\n" +"Language: hu_HU\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-Generator: Poedit 1.6.4\n" + +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"Haladó beállítási lehetÅ‘ségek." + +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"Az OK gomb lenyomása után, kérem, várjon!" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" +"\n" +"A készülék beállításainak mentése." + +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"A szoftver-frissítési forrás címének módosítása." + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" +"\n" +"Pluginek és bÅ‘vítmények kezelése" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" +"\n" +"A készülék szoftverének frissítése online." + +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"Nyomja le az OK gombot a távírányítón a folytatáshoz." + +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"Visszaállítás dátum szerint." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" +"\n" +"A készülék beállításainak visszaállítása." + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" +"\n" +"A készülék visszaállítása egy új firmware-el." + +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"Helyileg bemásolt bÅ‘vítmények keresése, telepítése." + +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Válasszon célt, a mentéshez.\n" +"Aktuális eszköz: " + +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"Szoftvercsomagok megtekintése, telepítése vagy eltávolítása." + +msgid " (PiP)" +msgstr " (Kép-a-Képben)" + +msgid " (Radio)" +msgstr " (Rádió)" + +msgid " (TV)" +msgstr " (TV)" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +msgid " extensions." +msgstr " bÅ‘vítmény." + +msgid " ms" +msgstr " ms" + +msgid " packages selected." +msgstr " szoftvercsomag kiválasztva." + +msgid " updates available." +msgstr " frissítés elérhetÅ‘." + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "%2d:%02d" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "%2d:%02d:%02d" + +msgid "%A %d %B" +msgstr "%B %d. %A" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "%B %e. %A" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "%Y. %B %e. %A" + +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "%m. %e %a" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "%m. %e %a %-H:%M" + +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "%d talált csatorna" +msgstr[1] "%d talált csatorna" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "%d fájl" +msgstr[1] "%d fájl" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d óra" +msgstr[1] "%d óra" + +#, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d feladat fut a háttérben!" +msgstr[1] "%d feladat fut a háttérben!" + +#, python-format +msgid "%d min" +msgstr "%d perc" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d perc" +msgstr[1] "%d perc" + +#, python-format +msgid "%d minutes" +msgstr "%d perc" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d másodperc" +msgstr[1] "%d másodperc" + +#, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "%d al-mappa" +msgstr[1] "%d al-mappa" + +#, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "%d elérhetÅ‘ vezeték nélküli hálózat!" +msgstr[1] "%d elérhetÅ‘ vezeték nélküli hálózat!" + +msgid "%d-%b-%Y %-H:%M" +msgstr "%m. %e %a %-H:%M" + +msgid "%d-%m" +msgstr "%d-%m" + +msgid "%d.%B %Y" +msgstr "%Y. %B %d." + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "%k:%M %m.%e" + +#, python-format +msgid "%s %s free disk space" +msgstr "%s %s szabad tárterület a háttértáron." + +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "%s nincs többé használatban. TöröhetÅ‘?" + +#, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "%s frissítés elérhetÅ‘." +msgstr[1] "%s frissítés elérhetÅ‘." + +#, python-format +msgid "%s%d min" +msgstr "%s%d perc" + +#, python-format +msgid "%s/%s: %s" +msgstr "%s/%s: %s" + +msgid "(ZAP)" +msgstr "(UGRÃS)" + +msgid "(empty)" +msgstr "(üres)" + +msgid "(show optional DVD audio menu)" +msgstr "(DVD audió menü megjelenítése, ha van)" + +msgid "* Only available if more than one interface is active." +msgstr "* Csak akkor érvényes, ha egynél több interfész aktív." + +msgid "/s" +msgstr "/s" + +msgid "0" +msgstr "0" + +msgid "1" +msgstr "1" + +msgid "1.0" +msgstr "1.0" + +msgid "1.1" +msgstr "1.1" + +msgid "1.2" +msgstr "1.2" + +msgid "12V output" +msgstr "12V kimenet" + +msgid "13 V" +msgstr "13 V" + +msgid "16:10" +msgstr "16:10" + +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +msgid "16:9" +msgstr "16:9" + +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +msgid "16:9 always" +msgstr "mindig 16:9" + +msgid "18 V" +msgstr "18 V" + +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "23.976" + +msgid "24" +msgstr "24" + +msgid "25" +msgstr "25" + +msgid "29.97" +msgstr "29.97" + +msgid "3" +msgstr "3" + +msgid "30" +msgstr "30" + +msgid "3d mode" +msgstr "3D mód" + +msgid "4" +msgstr "4" + +msgid "4:3" +msgstr "4:3" + +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +msgid "5" +msgstr "5" + +msgid "6" +msgstr "6" + +msgid "7" +msgstr "7" + +msgid "8" +msgstr "8" + +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +msgid "<Current movielist location>" +msgstr "<Fájllista aktuális tárhelye>" + +msgid "<Default movie location>" +msgstr "<Felvételek tárhelye>" + +msgid "<Last timer location>" +msgstr "<IdÅ‘zítés utolsó pozíciója>" + +msgid "<unknown>" +msgstr "<ismeretlen>" + +msgid "??" +msgstr "??" + +msgid "A" +msgstr "A" + +#, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"A telepítés óta a (%s) konfigurációs fájl módosítva lett.\n" +"Meg akarja tartani az Ön verzióját?" + +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"A telepítés óta a (%s) konfigurációs fájl módosítva lett.\n" +"Meg akarja tartani az Ön verzióját?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"Egy befejezett idÅ‘zítés le akarja kapcsolni\n" +"a készüléket készenléti módba. Engedélyezi?" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"Egy befejezett idÅ‘zítés ki akarja kapcsolni\n" +"a készüléket. Engedélyezi?" + +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "Grafikus EPG egy adott bouquet összes csatornájához" + +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"A következÅ‘ műsor felvétele elindult:\n" +"%s" + +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"Egy felvétel éppen fut. \n" +"Mit szeretne tenni?" + +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "Egy felvétel éppen folyamatban van. Ha a forgatórendszert be akarja állítani, akkor elötte állítsa meg a felvételt." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "Egy felvétel most folyamatban van. Kérem, elÅ‘bb állítsa azt meg a kereséshez." + +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "Egy felvétel éppen folyamatban van. Ha futtani kívánja a MűholdkeresÅ‘t, akkor elötte állítsa meg a felvételt." + +#, python-format +msgid "A required tool (%s) was not found." +msgstr "A keresett eszköz (%s) nem található." + +msgid "A search for available updates is currently in progress." +msgstr "Az elérhetÅ‘ frissítések keresése folyamatban van." + +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"Egy második bekonfigurált interfész is van a rendszerben.\n" +"\n" +"Le szeretné tiltani a második hálózati interfészt?" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"Az elalvásidÅ‘zítÅ‘ le akarja kapcsolni\n" +"a készüléket készenléti módba. Engedélyezi?" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"Az elalvásidÅ‘zítÅ‘ ki akarja kapcsolni\n" +"a készüléket. Engedélyezi?" + +msgid "A small overview of the available icon states and actions." +msgstr "Egy gyors áttekintés az elérhetÅ‘ ikonokról és állapotokról." + +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"Az idÅ‘zítÅ‘ nem tud felvenni!\n" +"Próbálja újra TV megjelenítés nélkül?\n" + +msgid "A/V settings" +msgstr "A/V beállítások" + +msgid "AC3/DTS downmix" +msgstr "AC3/DTS lekeverés" + +msgid "Abort" +msgstr "Mégsem" + +msgid "About" +msgstr "Névjegy" + +msgid "About..." +msgstr "Névjegy..." + +msgid "Accesspoint:" +msgstr "Hozzáférési pont:" + +msgid "Action on long powerbutton press" +msgstr "Be/Ki gomb hosszan lenyomva" + +msgid "Action on short powerbutton press" +msgstr "Be/Ki gomb röviden lenyomva" + +msgid "Activate Picture in Picture" +msgstr "Kép-a-Képben bekapcsolása" + +msgid "Activate current configuration" +msgstr "Aktuális konfiguráció aktiválása" + +msgid "Activate network settings" +msgstr "Hálózati beállítások aktiválása" + +msgid "Activate the configured network settings." +msgstr "Hálózati beállítások aktiválása" + +msgid "Adapter settings" +msgstr "Adapter beállításai" + +msgid "Add" +msgstr "Hozzáadás" + +msgid "Add Bookmark" +msgstr "Bookmark hozzáadása" + +msgid "Add a mark" +msgstr "JelzÅ‘ hozzáadása" + +msgid "Add a nameserver entry" +msgstr "Névszerver hozzáadása" + +msgid "Add a new title" +msgstr "Új cím hozzáadása" + +msgid "Add bookmark" +msgstr "bookmark hozzáadása" + +msgid "Add directory to playlist" +msgstr "mappa hozzáadása a playlistához" + +msgid "Add file to playlist" +msgstr "fájl hozzáadása a playlistához" + +msgid "Add files to playlist" +msgstr "fájlok hozzáadása a playlistához" + +msgid "Add more details to the crash log" +msgstr "Részletesebb hibanapló generálása fájlba, zöldhalál esetén" + +msgid "Add provider" +msgstr "Szolgáltató hozzáadása" + +msgid "Add recording (enter recording duration)" +msgstr "felvétel hozzáadása (adja meg a felvétel hosszát)" + +msgid "Add recording (enter recording endtime)" +msgstr "felvétel hozzáadása (adja meg a felvétel vége idÅ‘pontját)" + +msgid "Add recording (indefinitely)" +msgstr "felvétel hozzáadása (korlátlan)" + +msgid "Add recording (stop after current event)" +msgstr "felvétel hozzáadása (esemény után leáll)" + +msgid "Add service" +msgstr "Csatorna hozzáadása" + +msgid "Add timer" +msgstr "IdÅ‘zítés" + +msgid "Add title" +msgstr "Cím hozzáadása" + +msgid "Add to bouquet" +msgstr "Hozzáadás a bouquet listához" + +msgid "Add to favourites" +msgstr "Hozzáadás a kedvencekhez" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "3D beállítások" + +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "Ãllítsa be úgy a színeket, hogy a színcsíkok megkülönböztethetÅ‘k legyenek, de a telítettség a lehetÅ‘ legmegfelelÅ‘bb legyen. Ha az eredménnyel elégedett, akkor nyomja meg az OK gombot a video finombeállítások bezárásához, vagy a számgombok segítségével válasszon másik teszt ábrát." + +msgid "Advanced" +msgstr "" + +msgid "Advanced options" +msgstr "Haladó beállítások" + +msgid "Advanced restore" +msgstr "Haladó visszaállítás" + +msgid "Advanced software" +msgstr "Haladó szoftver" + +msgid "Advanced software plugin" +msgstr "Haladó szoftver plugin" + +msgid "Advanced video enhancement setup" +msgstr "Haladó képjavító beállítása " + +msgid "Advanced video setup" +msgstr "Haladó videó beállítások" + +msgid "After event" +msgstr "Esemény után" + +msgid "Album" +msgstr "Album" + +msgid "Alignment of events" +msgstr "Események elrendezése" + +msgid "Alignment of service names" +msgstr "Csatorna nevek elrendezése" + +msgid "All" +msgstr "Összes" + +msgid "All ages" +msgstr "Minden korosztály" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "Hozzárendelés" + +msgid "Allocate unused memory index" +msgstr "Használatlan memóriaindex hozzárendelés" + +msgid "Allow quit movieplayer with exit" +msgstr "Média lejátszó bezárása kilépés gombbal" + +msgid "Allow subtitle language to equal audio language" +msgstr "Azonos nyelvű hangsáv és felirat összerendelése" + +msgid "Allow subtitles for hearing impaired" +msgstr "Hallássérülteknek szánt feliratok engedélyezése" + +msgid "Alpha" +msgstr "Alfa" + +msgid "Alternative" +msgstr "Alternatív" + +msgid "Alternative numbering mode" +msgstr "Alternatív számozás" + +msgid "Alternative services tuner priority" +msgstr "Alternatív csatornák tuner prioritása" + +msgid "Always ask" +msgstr "Mindig rákérdez" + +msgid "Always hide infobar" +msgstr "" + +msgid "An empty filename is illegal." +msgstr "Egy üres fájlnév érvénytelen." + +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "A szoftvercsomag-lista letöltése hiba miatt lehetetlen. Kérem, próbálja meg újra." + +msgid "An unknown error occurred!" +msgstr "Ismeretlen hiba keletkezett!" + +msgid "And will put your receiver in standby over " +msgstr "Készenlétbe kerülés: " + +msgid "Any activity" +msgstr "Bármilyen aktivitás" + +msgid "Arabic" +msgstr "Arab" + +msgid "Are you sure to remove this entry?" +msgstr "" + +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"Biztos benne, hogy aktiválni kívánja ezt a hálózati konfigurációt?\n" +"\n" + +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"Biztos benne, hogy törölni kívánja\n" +"ezt a mentést:\n" + +msgid "Are you sure you want to exit this wizard?" +msgstr "Biztos benne, hogy kilép a Varázslóból?" + +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"Biztos hogy újra akarja indítani a hálózati interfészt?\n" +"\n" + +#, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Biztos benne, hogy vissza szeretné állítani \n" +"az alábbi mentést?\n" +"%s\n" +"A készülék újra fog indulni a visszaállítás után." + +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Biztos benne, hogy vissza szeretné állítani a mentést?\n" +"A készülék újra fog indulni a visszaállítás után." + +msgid "Artist" +msgstr "ElÅ‘adó" + +msgid "Arts/Culture" +msgstr "Művészet/Kultúra" + +msgid "Ask user" +msgstr "Felhasználó kérdezése" + +msgid "Aspect ratio" +msgstr "Kép méretarány" + +msgid "Assigned CAIds:" +msgstr "hozzárendelt CAId-ek:" + +msgid "Assigned services/provider:" +msgstr "hozzárendelt szolgáltató:" + +msgid "At beginning" +msgstr "az elején" + +msgid "At end" +msgstr "a végén" + +msgid "Audio" +msgstr "Hang" + +msgid "Audio PID" +msgstr "Audió PID" + +msgid "Audio language selection 1" +msgstr "ElsÅ‘dleges elÅ‘nyben részesített hangsáv" + +msgid "Audio language selection 2" +msgstr "Másodlagos elÅ‘nyben részesített hangsáv" + +msgid "Audio language selection 3" +msgstr "Harmadlagos elÅ‘nyben részesített hangsáv" + +msgid "Audio language selection 4" +msgstr "Negyedleges elÅ‘nyben részesített hangsáv" + +msgid "Audio options..." +msgstr "Hang beállítások..." + +#, python-format +msgid "Audio track (%s) format" +msgstr "hangsáv (%s) formátuma" + +#, python-format +msgid "Audio track (%s) language" +msgstr "hangsáv (%s) nyelve" + +msgid "Author: " +msgstr "SzerzÅ‘: " + +msgid "Authoring mode" +msgstr "Authoring mód" + +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Automata" + +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Automatikus fejezet készítés ? percenként (0=soha)" + +msgid "Auto flesh" +msgstr "Auto-flash" + +msgid "Auto focus" +msgstr "Autofókusz" + +msgid "Auto focus commencing ..." +msgstr "Autofókusz kezdÅ‘dik..." + +msgid "Auto language selection" +msgstr "Automatikus nyelvválasztás" + +msgid "Auto scart switching" +msgstr "Automatikus SCART átkapcsolás" + +msgid "Automatic" +msgstr "Automatikus" + +msgid "Automatic scan" +msgstr "Automatikus keresés" + +msgid "Automatically start timeshift after" +msgstr "IdÅ‘csúszatás automatikus bekapcsolása ennyi idÅ‘ múlva" + +msgid "Automatically turn on external subtitles" +msgstr "KülsÅ‘ feliratok automatikus megjelenítése" + +msgid "Available format variables" +msgstr "Lehetséges formátum variációk" + +msgid "B" +msgstr "B" + +msgid "BER" +msgstr "BER" + +msgid "BER:" +msgstr "BER:" + +msgid "Back" +msgstr "Vissza" + +msgid "Background" +msgstr "Háttér" + +msgid "Background color" +msgstr "háttér szín" + +msgid "Background delete option" +msgstr "Törlés a háttérben" + +msgid "Background delete speed" +msgstr "Törlés sebessége" + +msgid "Backup completed." +msgstr "Mentés sikertelen." + +msgid "Backup failed." +msgstr "Mentés sikertelen." + +msgid "Backup is running..." +msgstr "Mentés folyamatban..." + +msgid "Backup system settings" +msgstr "Rendszerbeállítás mentése" + +msgid "Band" +msgstr "Sáv" + +msgid "Bandwidth" +msgstr "Sávszélesség" + +msgid "Basque" +msgstr "Baszk" + +msgid "Begin time" +msgstr "Kezdési idÅ‘" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +msgid "Behavior of 0 key in PiP-mode" +msgstr "Kép-a-Képben esetén a 0 gomb jelentése" + +msgid "Behavior when a movie is started" +msgstr "Amikor egy lejátszás elindul" + +msgid "Behavior when a movie is stopped" +msgstr "Amikor egy lejátszás meg van állítva" + +msgid "Behavior when a movie reaches the end" +msgstr "Amikor egy lejátszás a végére ér" + +msgid "Big PiP" +msgstr "" + +msgid "Bitrate:" +msgstr "Bitráta" + +msgid "Black screen" +msgstr "Fekete képernyÅ‘" + +msgid "Black screen till locked" +msgstr "Fekete képernyÅ‘ lezárásig" + +msgid "Block noise reduction" +msgstr "Blokk-zaj csökkentés" + +msgid "Blue boost" +msgstr "Kék erÅ‘sítés" + +msgid "Bookmarks" +msgstr "Bookmark-ok" + +msgid "Brightness" +msgstr "FényerÅ‘" + +msgid "Bulgarian" +msgstr "Bolgár" + +msgid "Burn DVD" +msgstr "DVD írás" + +#, python-format +msgid "Burn audio track (%s)" +msgstr "hangsáv írása (%s)" + +msgid "Burn existing image to DVD" +msgstr "A meglévÅ‘ képfájl DVD-re írása" + +msgid "Burn to DVD" +msgstr "DVD-re kiírás..." + +msgid "Bus: " +msgstr "Busz: " + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "Alapértelmezetten, a Jel/Zaj viszony (SNR) decibelben jeleník meg (ha a tuner támogatja). Ezzel a beállítással mindenképp százalékra kényszerítheti a megjelenítést." + +msgid "C" +msgstr "C" + +msgid "C-Band" +msgstr "C-sáv" + +msgid "CH" +msgstr "" + +msgid "CI assignment" +msgstr "CI hozzárendelés" + +msgid "CVBS" +msgstr "CVBS" + +msgid "Cable" +msgstr "Kábel" + +msgid "Cable Scan" +msgstr "Kábel keresés" + +msgid "Cache thumbnails" +msgstr "Cache ikonok" + +msgid "Calculate" +msgstr "Számítás" + +msgid "Calculate all positions" +msgstr "Minden pozíció kiszámítása" + +msgid "Calculation complete" +msgstr "Számítás kész" + +msgid "Calibrate" +msgstr "Kalibrálás" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "Ha a film és a felirat eltérÅ‘ FPS-el rendelkeznek, akkor itt adható ez meg a felirat számára." + +msgid "Cancel" +msgstr "Mégse" + +msgid "Cannot determine" +msgstr "Nem lehet megállapítani" + +msgid "Cannot find any signal ..., aborting !" +msgstr "Nem található jel... művelet megszakítva!" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "Más meghajtóról származó fájlok nem helyezhetÅ‘k át a kukába" + +msgid "Cannot move to trash can" +msgstr "Nem helyezthetÅ‘ a kukába" + +msgid "Capacity: " +msgstr "Kapacitás:" + +msgid "Card" +msgstr "Kártya" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "Középre zárt DVB felirat" + +msgid "Center time-labels and remove date" +msgstr "IdÅ‘-címkék középre zárása, dátum eltávolítása" + +msgid "Change bouquets in quickzap" +msgstr "Bouquet-ek változtatása a gyors ugrásban" + +msgid "Change pin code" +msgstr "PIN kód megváltoztatása" + +msgid "Change recording (duration)" +msgstr "felvétel módosítása (hossz)" + +msgid "Change recording (endtime)" +msgstr "felvétel módosítása (vége idÅ‘pont)" + +msgid "Change repeat and delay settings?" +msgstr "Billentyű ismétlést/késletletést megváltoztatja?" + +msgid "Change service PIN" +msgstr "Szerviz PIN módosítás" + +msgid "Change service PINs" +msgstr "Szerviz PIN-ek módosítása" + +msgid "Change setup PIN" +msgstr "Beállítások PIN módosítás" + +msgid "Change step size" +msgstr "Lépésmérték módosítása" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "Változási napló" + +msgid "Channel" +msgstr "Csatorna" + +msgid "Channel list type" +msgstr "Csatornalista menü" + +msgid "Channel not in services list" +msgstr "A csatorna nem szerepel a szolgáltatási listában" + +msgid "Channel selection" +msgstr "Csatorna választás" + +msgid "Channel:" +msgstr "Csatorna:" + +msgid "Channellist menu" +msgstr "Csatornalista menü" + +msgid "Chap." +msgstr "Chap." + +msgid "Chapter" +msgstr "Fejezet" + +msgid "Chapter:" +msgstr "Fejezet:" + +msgid "Check" +msgstr "EllenÅ‘rzés" + +msgid "Check the internet connection" +msgstr "Internetkapcsolat ellenÅ‘rzése" + +msgid "Check the internet connection again" +msgstr "Internetkapcsolat ismételt ellenÅ‘rzése" + +msgid "Checking filesystem..." +msgstr "Fájlrendszer ellenÅ‘rzése..." + +msgid "Checking the internet connection" +msgstr "Internetkapcsolat ellenÅ‘rzése..." + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" +"Tuner beállítás: %d\n" +"DiSEqC port %s a %s-bÅ‘l" + +msgid "Children/Youth" +msgstr "Gyermek/Fiatalság" + +msgid "Choose which tuner to configure." +msgstr "Válassza ki a beállítandó tunert." + +msgid "Circular left" +msgstr "Forgó balos" + +msgid "Circular right" +msgstr "Forgó jobbos" + +msgid "Cleanup" +msgstr "Takarítás" + +msgid "Clear" +msgstr "Törlés" + +msgid "Clear before scan" +msgstr "Keresés elött törlés" + +msgid "Clear fixed" +msgstr "Rögzítettek törlése" + +msgid "Clear log" +msgstr "Napló törlése" + +msgid "Clear playlist" +msgstr "playlista törlése" + +msgid "Close" +msgstr "Bezárás" + +msgid "Close PiP on exit" +msgstr "Kép-a-Képben bezárása kilépéskor" + +msgid "Close title selection" +msgstr "Címválasztás bezárása" + +msgid "Code rate HP" +msgstr "HP kódarány" + +msgid "Code rate LP" +msgstr "LP kódarány" + +msgid "Coderate HP" +msgstr "HP kódarány" + +msgid "Coderate LP" +msgstr "LP kódarány" + +msgid "Collection name" +msgstr "Gyűjtemény neve" + +msgid "Collection settings" +msgstr "Gyűjtemény beállítások" + +msgid "Color format" +msgstr "Színformátum" + +msgid "Command execution..." +msgstr "Parancs végrehajtása..." + +msgid "Command order" +msgstr "Parancs sorrend" + +msgid "Common Interface" +msgstr "CI modulfogadó" + +msgid "Common Interface assignment" +msgstr "CI hozzárendelés" + +msgid "Communication" +msgstr "Kommunikáció" + +msgid "Compact flash" +msgstr "Compact Flash" + +msgid "Complete" +msgstr "Kész" + +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "Komplex (engedélyezi a hangfolyamok és méretarányok keverését)" + +msgid "Composition of the recording filenames" +msgstr "A felvételi fájlnevek összeállítása" + +msgid "Configuration mode" +msgstr "Konfigurációs mód: " + +#, python-format +msgid "Configuration mode: %s" +msgstr "Konfigurációs mód: %s" + +msgid "Configuration..." +msgstr "Beállítások..." + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "Extra késleltetés beállítása külsÅ‘ feliratfájl esetén, szinkronizáció hibák korrigálásához." + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "Extra késleltetés beállítása felirathoz, szinkronizáció hibák korrigálásához." + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "Ennyi ideig maradjon látható az információs sáv mejelenítést követÅ‘en." + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "Ennyi percig maradjon látható az EPG-ben a múlt. Hasznos lehet ha egy lejárt, vagy egy elcsúszott műsorról szeretne tájékozódni." + +msgid "Configure how recording filenames are constructed." +msgstr "A felvétel fájl-neveinek összetétele." + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "A csatornák típusának (földi, műholdas, stb.) megjelenítése, és annak módja és csatornalistában." + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "A csatornák pikonjainak megjelenítése a csatornalistában." + +msgid "Configure interface" +msgstr "Interfész konfigurálása" + +msgid "Configure nameservers" +msgstr "Névszerverek konfigurálása" + +msgid "Configure on which devices the background delete option should be used." +msgstr "Milyen eszközökre legyen érvényes a háttérben történÅ‘ törölgetés." + +msgid "Configure remote control type" +msgstr "eredeti távirányító" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "A DiSEqC mód beállítása ehhez az fejhez." + +msgid "Configure the IP address." +msgstr "Interfész konfigurálása" + +msgid "Configure the aspect ratio of the screen." +msgstr "A kép méret-arányának beállítása." + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "Mi történjen amikor egy fájl lejátszása kézzel meg van állítva." + +msgid "Configure the behavior when movie playback is started." +msgstr "Mi történjen amikor egy fájl lejátszása elindul" + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "Mi történjen amikor egy fájl lejátszása véget ér, lejátszás közben." + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "A feliratok körvonalának beállítása. Egy sötét körvonal a betűkön könnyebben olvashatóvá teszi a feliratot." + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "Az elÅ‘lap kijelzÅ‘jének fényereje a készülék kikapcsolt állapotában." + +msgid "Configure the brightness level of the front panel display." +msgstr "Az elÅ‘lap kijelzÅ‘jének fényereje." + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "A külsÅ‘ fájlban lévÅ‘ feliratok színe: fehér, sárga vagy alternatív (normál-fehér, dÅ‘lt-sárga, vastag-cián, aláhúzott-zöld)" + +msgid "Configure the color of the teletext subtitles." +msgstr "A teletextben sugárzott feliratok színe." + +msgid "Configure the contrast level of the front panel display." +msgstr "Az elÅ‘lap kijelzÅ‘jének kontrasztja." + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "A képernyÅ‘kímélÅ‘ várakozási ideje percben." + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "Mennyi idÅ‘ múlva kapcsoljon ki teljesen a készülék készenlétbe térés után." + +msgid "Configure the first audio language (highest priority)." +msgstr "Többnyelvű csatornáknál ezt a hangsávot választja automatikusan, legmagasabb prioritással." + +msgid "Configure the first subtitle language (highest priority)." +msgstr "Többnyelvű csatornáknál ezt a feliratot választja automatikusan, legmagasabb prioritással." + +msgid "Configure the font size of the subtitles." +msgstr "A feliratok betűméretének beállítása." + +msgid "Configure the fourth audio language." +msgstr "Többnyelvű csatornáknál ezt a hangsávot választja automatikusan, negyedik prioritással." + +msgid "Configure the fourth subtitle language." +msgstr "Többnyelvű csatornáknál ezt a feliratot választja automatikusan, negyedik prioritással." + +msgid "Configure the function of a long press on the power button." +msgstr "A Be/Ki kapcsoló gomb működése hosszan tartott lenyomásnál." + +msgid "Configure the function of a short press on the power button." +msgstr "A Be/Ki kapcsoló gomb működése rövid (normális) lenyomásnál." + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "A '0' gomb működése aktív Kép-a-Képben funkció mellett." + +msgid "Configure the gateway." +msgstr "Interfész konfigurálása" + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "A Dolby Digital hangsávok általános késleltetése." + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "A sztereó hangsávok általános késleltetése." + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "A beépített háttértár készenlétbe léptetése ennyi tétlen idÅ‘ után." + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "A feliratok vízszintes elrendezése." + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "Kezdeti elÅ‘re-tekerési sebesség. Amikor elÅ‘re tekeri a felvételt, ennyi lesz a kezdeti sebesség." + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "Kezdeti vissza-tekerési sebesség. Amikor vissza tekeri a felvételt, ennyi lesz a kezdeti sebesség." + +msgid "Configure the latitude of your location." +msgstr "Az antenna telepítés helyének földrajzi szélessége." + +msgid "Configure the longitude of your location." +msgstr "Az antenna telepítés helyének földrajzi hosszúsága." + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "A felvételekhez szükséges minimális szabad tárhely. Ha az elérhetÅ‘ szabad tárterület ennyi alá esik, a kukába helyezett elemek véglegesen törölve lesznek." + +msgid "Configure the nameserver (DNS)." +msgstr "Névszerverek (DNS) konfigurálása." + +msgid "Configure the netmask." +msgstr "Interfész konfigurálása" + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "Ennyi nap után lesznek a kukába helyezett elemek véglegesen törölve." + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "Ennyi nap után lesznek a lejárt idÅ‘zítések véglegesen törölve a listából." + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "Az offline dekódolás késleltetése miliszekundumban. A beállított késleltetés a CW paritásának változásakor vehetÅ‘ észre." + +msgid "Configure the possible fast forward speeds." +msgstr "Kezdeti elÅ‘re-tekerési sebesség" + +msgid "Configure the possible rewind speeds." +msgstr "A lehetséges tekerési sebességek beállítása" + +msgid "Configure the primary EPG language." +msgstr "Többnyelvű EPG-t sugárzó csatornáknál ezt a nyelvet választja automatikusan, legmagasabb prioritással." + +msgid "Configure the refresh rate of the screen." +msgstr "A képernyÅ‘-frissítési gyakoriság beállítása." + +msgid "Configure the screen resolution in PC output mode." +msgstr "A képernyÅ‘ felbontás PC-kimenet módban." + +msgid "Configure the second audio language." +msgstr "Többnyelvű csatornáknál ezt a hangsávot választja automatikusan, második prioritással." + +msgid "Configure the second subtitle language." +msgstr "Többnyelvű csatornáknál ezt a feliratot választja automatikusan, másdik prioritással." + +msgid "Configure the secondary EPG language." +msgstr "Többnyelvű EPG-t sugárzó csatornáknál ezt a nyelvet választja automatikusan, második prioritással." + +msgid "Configure the sharpness of the video scaling." +msgstr "A kép átméretezés utáni élesség." + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "Ennyi idÅ‘t ugrik az '1' (vissza) és a '3' (elÅ‘re) gombok megnyomásakor." + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "Ennyi idÅ‘t ugrik a '4' (vissza) és a '6' (elÅ‘re) gombok megnyomásakor." + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "Ennyi idÅ‘t ugrik a '7' (vissza) és a '9' (elÅ‘re) gombok megnyomásakor." + +msgid "Configure the slow motion speeds." +msgstr "Lassítási sebességek" + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "A törléshez szükséges sebesség korlátozása. Alacsonyabb törlési sebesség mellett több erÅ‘forrás áll rendelkezésre a háttértár részérÅ‘l." + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "A felirat késleltetése, ha nincs benne idÅ‘zítési információ." + +msgid "Configure the third audio language." +msgstr "Többnyelvű csatornáknál ezt a hangsávot választja automatikusan, harmadik prioritással." + +msgid "Configure the third subtitle language." +msgstr "Többnyelvű csatornáknál ezt a feliratot választja automatikusan, harmadik prioritással." + +msgid "Configure the transparency of the OSD." +msgstr "Az OSD menü áttetszÅ‘sége." + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "A DVB grafikus feliratok hátterének áttetszÅ‘sége." + +msgid "Configure the tuner mode." +msgstr "A tuner mód beállítása." + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "A felvételek listájában látható státusz ikonok típusa." + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "A feliratok függÅ‘leges elrendezése, mérve a képernyÅ‘ aljától." + +msgid "Configure the video output mode (or resolution)." +msgstr "A videó kimenet és a felbontás beállítása." + +msgid "Configure the way in which the receiver changes channels." +msgstr "A csatornaváltás módja." + +msgid "Configure where completed timers show up in the timer list." +msgstr "A lejárt idÅ‘zítések megjelenítésének módja a listában." + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "Egy második, bÅ‘vebb információs ablak megjelenítése az aktuális csatornáról és mennyi ideig, ha az 'OK' gombot másodjára nyomjuk meg." + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "A többcsatornás hangsávok (pl. 5.1-es) lekeverése sztereóra." + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "Jelenjen meg egy ikon a képernyÅ‘n, miközben az antenna forgatómotorja dolgozik." + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "Milyen szintű hozzáférése legyen a menürendszernek. A 'Haladó' szint minden menü elemet hozzáférhetÅ‘vé tesz." + +msgid "Configure which color format should be used on the SCART output." +msgstr "Milyen típusú videó jel jelenjen meg a SCART kimeneten." + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "Milyen tuner típus legyen automatikusan választva, ha ugyanaz a csatorna egyszerre több típusú tuneren keresztül is fogható (a csatornának vannak beállított alternatívái)." + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "Melyik tuner legyen választva, ha ugyanaz a csatorna egyszerre több tuneren keresztül is fogható (a csatornának vannak beállított alternatívái). Ha ez 'Automatikus', akkor mindig a legkevesebb csatornákat fogó tuner lesz választva." + +msgid "Configure your internal LAN" +msgstr "A hálózat konfigurálása" + +msgid "Configure your network again" +msgstr "A hálózat újrakonfigurálása" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "Ãllítsa be a hálózati paramétereket, majd nyomja meg az OK gombot a kereséshez" + +msgid "Configure your wireless LAN again" +msgstr "A vezeték nélküli hálózat újrakonfigurálása" + +msgid "Configures which video output connector will be used." +msgstr "Melyik videó kimeneti csatlakozó van bekötve." + +msgid "Configuring" +msgstr "Konfigurálás" + +msgid "Conflicting timer" +msgstr "IdÅ‘zítés ütközés" + +msgid "Connect" +msgstr "Csatlakozás" + +msgid "Connect to a wireless network" +msgstr "Csatlakozás vezeték nélküli hálózathoz" + +msgid "Connected satellites" +msgstr "" + +msgid "Connected to" +msgstr "Csatlakoztatva ehhez: " + +msgid "Connected!" +msgstr "Csatlakoztatva!" + +msgid "Constellation" +msgstr "Együttállás" + +msgid "Content does not fit on DVD!" +msgstr "A tartalom nem fér fel a DVD-re!" + +msgid "Continue" +msgstr "Folytatás" + +msgid "Continue in background" +msgstr "Folytatás a háttérben" + +msgid "Continue playback" +msgstr "Lejátszás folytatása" + +msgid "Continue playing" +msgstr "Lejátszás folytatása" + +msgid "Continues play (loop)" +msgstr "Ismétléses lejátszás" + +msgid "Contrast" +msgstr "Kontraszt" + +msgid "Convert ext3 filesystem to ext4" +msgstr "Fájlrendszer konvertálása ext3-ról ext4-re" + +msgid "Convert ext3 to ext4" +msgstr "Konvertálás ext3-ról ext4-re" + +msgid "Converting ext3 to ext4..." +msgstr "Konvertálás ext3 > ext4" + +msgid "Copy" +msgstr "Másolás" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "Nem lehet csatlakozni az .NFI Image feed szerverhez: " + +msgid "Could not find installed channel list." +msgstr "Nem található telepített csatornalista." + +msgid "Could not load medium! No disc inserted?" +msgstr "Nem lehet betölteni a hordozót! Van bennt lemez?" + +msgid "Could not open Picture in Picture" +msgstr "A Kép-a-Képben funkció nem indítható el" + +#, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "A felvétel nem tud elindulni idÅ‘zítés ütközés miatt: %s" + +#, python-format +msgid "Could not record due to invalid service %s" +msgstr "Az %s érvénytelen csatorna miatt a felvétel nem lehetséges" + +msgid "Create DVD-ISO" +msgstr "DVD képfájl készítés" + +msgid "Create more detailed crash log" +msgstr "Részletesebb hibanapló generálása" + +#, python-format +msgid "Creating directory %s failed." +msgstr "A %s mappa létrehozása nem sikerült." + +msgid "Creating filesystem" +msgstr "Fájlrendszer létrehozása" + +msgid "Creating partition" +msgstr "Partíció létrehozása" + +msgid "Croatian" +msgstr "Horvát" + +msgid "Current CEC address" +msgstr "Aktuális CEC cím" + +msgid "Current device: " +msgstr "Aktuális eszköz: " + +msgid "Current event EPG" +msgstr "Aktuális esemény EPG-je" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +msgid "Current settings:" +msgstr "Aktuális beállítások:" + +msgid "Current transponder" +msgstr "Aktuális transzponder" + +msgid "Current value: " +msgstr "Aktuális érték:" + +msgid "Current version:" +msgstr "Aktuális verzió:" + +msgid "Currently installed image" +msgstr "A telepített image" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +msgid "Custom skip time for '1'/'3' buttons" +msgstr "Ugrás az '1'/'3' gombokkal (másodperc)" + +msgid "Custom skip time for '4'/'6' buttons" +msgstr "Ugrás a '4'/'6' gombokkal (másodperc)" + +msgid "Custom skip time for '7'/'9' buttons" +msgstr "Ugrás a '7'/'9' gombokkal (másodperc)" + +msgid "Customize" +msgstr "Testreszabás" + +msgid "Customize channel list cursor behavior" +msgstr "A csatornalista kurzorának testreszabása" + +msgid "Cut" +msgstr "Vágás" + +msgid "Cutlist editor..." +msgstr "Film-vágó..." + +msgid "Czech" +msgstr "Cseh" + +msgid "D" +msgstr "D" + +msgid "DHCP" +msgstr "DHCP" + +msgid "DMM advanced" +msgstr "haladó" + +msgid "DMM normal" +msgstr "hagyományos" + +msgid "DUAL LAYER DVD" +msgstr "Kétréteges DVD" + +msgid "DVB subtitle black transparency" +msgstr "DVB felirat fekete-áttetszÅ‘ssége" + +msgid "DVB-C" +msgstr "DVB-C" + +msgid "DVB-C ANNEX C" +msgstr "DVB-C Annex C" + +msgid "DVB-S" +msgstr "DVB-S" + +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "DVB-T" + +msgid "DVB-T2" +msgstr "DVB-T2" + +msgid "DVD data format" +msgstr "DVD adat formátum" + +msgid "DVD file browser" +msgstr "DVD FájlkezelÅ‘" + +msgid "DVD media toolbox" +msgstr "DVD media toolbox" + +msgid "DVD player" +msgstr "DVD lejátszó" + +msgid "DVD titlelist" +msgstr "DVD Címlista" + +msgid "Danish" +msgstr "Dán" + +msgid "Date" +msgstr "Dátum" + +msgid "Date/time input" +msgstr "IdÅ‘/Dátum megadása" + +msgid "Deep standby" +msgstr "Mély-készenlét" + +msgid "Default" +msgstr "Alapértelmezett" + +msgid "Default movie location" +msgstr "Felvételek tárhelye" + +msgid "Default settings" +msgstr "Alapértelmezett beállítások" + +msgid "Delay before key repeat starts:" +msgstr "Késleltetés ismétlések elÅ‘tt:" + +msgid "Delay for external subtitles" +msgstr "KülsÅ‘ feliratok késleltetése" + +msgid "Delete" +msgstr "Törlés" + +msgid "Delete entry" +msgstr "Adat törlése" + +msgid "Delete failed!" +msgstr "A törlés sikertelen!" + +msgid "Delete file" +msgstr "fájl törlése" + +msgid "Delete playlist entry" +msgstr "playlista bejegyzés törlése" + +msgid "Delete saved playlist" +msgstr "mentett playlista törlése" + +msgid "Delete timer" +msgstr "" + +msgid "Delete..." +msgstr "törlés..." + +msgid "Deleted" +msgstr "Törölve" + +msgid "Deleted items" +msgstr "Kuka" + +msgid "Depth" +msgstr "Mélység" + +msgid "Descramble http streams" +msgstr "HTTP jelfolyamook dekódolása" + +msgid "Description" +msgstr "Leírás" + +msgid "Deselect" +msgstr "Kijelölés törlése" + +msgid "Details for plugin: " +msgstr "Plugin részletei: " + +msgid "Detected HDD:" +msgstr "Telepített háttértár:" + +msgid "Detected NIMs:" +msgstr "Telepített tunerek:" + +msgid "Devicename:" +msgstr "Eszköznév" + +msgid "Devide" +msgstr "" + +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +msgid "DiSEqC mode" +msgstr "DiSEqC mód" + +#, python-format +msgid "DiSEqC port %s: %s" +msgstr "DiSEqC port %s: %s" + +msgid "DiSEqC-tester settings" +msgstr "DiSEqC-Teszter beállításai" + +msgid "Dialing:" +msgstr "Tárcsázás: " + +msgid "Digital contour removal" +msgstr "Digitális körvonal-eltávolítás" + +msgid "Direct playback of linked titles without menu" +msgstr "Linkelt tételek menü nélküli közvetlen lejátszása" + +msgid "Directory" +msgstr "Mappa" + +#, python-format +msgid "Directory %s does not exist." +msgstr "A %s mappa nem létezik" + +#, python-format +msgid "Directory %s nonexistent." +msgstr "%s mappa nem létezik." + +msgid "Directory browser" +msgstr "Mappa tallózása" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "A mappa %d fájlt és %d al-mappát tartalmaz.\n" + +#, python-format +msgid "Directory contains %s and %s." +msgstr "A mappa tartalma %s és %s." + +msgid "Disable" +msgstr "Letiltás" + +msgid "Disable Picture in Picture" +msgstr "Kép-a-Képben kikapcsolása" + +msgid "Disable background scanning" +msgstr "Háttér-keresés tiltása" + +msgid "Disable timer" +msgstr "" + +msgid "Disabled" +msgstr "Letiltva" + +msgid "Disconnect" +msgstr "Kapcsolat bontása" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "Felvételeknek fenntartott tárterület (GB-ban)" + +msgid "Display 16:9 content as" +msgstr "16:9 tartalom megjelenítése:" + +msgid "Display 4:3 content as" +msgstr "4:3 tartalom megjelenítése:" + +msgid "Display >16:9 content as" +msgstr "16:9-nél szélesebb tartalom megjelenítése:" + +msgid "Display and userinterface" +msgstr "KépernyÅ‘ és felhasználói felület" + +msgid "Display message before playing next movie" +msgstr "A következÅ‘ fájl lejátszása elÅ‘tt üzenet megjelenítése" + +msgid "Display setup" +msgstr "ElÅ‘lapi kijelzÅ‘" + +msgid "Do not change" +msgstr "ne változtassa meg" + +msgid "Do not record" +msgstr "ne vegye fel" + +msgid "Do nothing" +msgstr "ne csináljon semmit" + +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Biztos benne, hogy le szeretné ellenÅ‘rizni a fájlrendszert?\n" +"Ez hosszú ideig is eltarthat!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" +"Biztos benne, hogy konvertálni szeretné a fájlrendszert?\n" +"Ez visszafordíthatatlan lesz!" + +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Biztos benne, hogy törölni szeretné ezt a tételt: %s?" + +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"Biztos benne, hogy hogy le szeretné tölteni\n" +"a \"%s\" plugint?" + +msgid "Do you really want to exit?" +msgstr "Biztos benne, hogy ki szeretne lépni?" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" +"Biztos benne, hogy inicializálni szeretné a háttértárolót?\n" +"Annak összes adata el fog veszni!" + +#, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"Biztos benne, hogy hogy le szeretné tölteni\n" +"a \"%s\" plugint?" + +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Biztos benne, hogy el szeretné távolítani a %s mappaat a háttértárról?" + +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Biztos benne, hogy el szeretné távolítani a %s bolkmark-ot?" + +msgid "Do you want this?" +msgstr "Biztos benne, hogy ezt szeretné?" + +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Fel szeretné írni ezt a gyűjteményt a DVD lemezre?" + +msgid "Do you want to do a service scan?" +msgstr "Szeretne most egy csatornakeresést lefuttatni?" + +msgid "Do you want to do another manual service scan?" +msgstr "Szeretne most egy másik kézi keresést lefuttatni?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "Biztos benne, hogy le szeretné tölteni a %s image-t?" + +msgid "Do you want to install a channel list?" +msgstr "Biztos benne, hogy feltelepíti ezt a csatornalistát?" + +msgid "Do you want to install the package:\n" +msgstr "Biztos benne, hogy feltelepíti ezt a csomagot:\n" + +msgid "Do you want to play DVD in drive?" +msgstr "Le szeretné játszani a behelyezett DVD-t?" + +msgid "Do you want to preview this DVD before burning?" +msgstr "Kiírás elÅ‘tt meg szeretné tekinteni a DVD tartalmat?" + +msgid "Do you want to reboot your receiver?" +msgstr "Szeretné újraindítani a készüléket?" + +msgid "Do you want to remove the package:\n" +msgstr "Biztos benne, hogy eltávolítja ezt a csomagot:\n" + +msgid "Do you want to restore your settings?" +msgstr "Szeretné visszaállítani a beállításait?" + +msgid "Do you want to resume this playback?" +msgstr "Szeretné folytatni ezt a lejátszást?" + +#, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Szeretné frissíteni a készülék szoftverét %s-re?" + +msgid "Do you want to update your receiver?" +msgstr "Szeretné frissíteni a készülék szoftverét?" + +msgid "Do you want to upgrade the package:\n" +msgstr "Biztos benne, hogy frissíteni szeretné ezt a csomagot:\n" + +msgid "Don't stop current event but disable coming events" +msgstr "Ne állítsa le a futó eseményt, inkább kapcsolja le a következÅ‘t" + +#, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "%d szoftvercsomag telepítése, frissítése vagy eltávolítása elkészült (%s)" +msgstr[1] "%d szoftvercsomag telepítése, frissítése vagy eltávolítása elkészült (%s)" + +msgid "Download" +msgstr "Letöltés" + +#, python-format +msgid "Download %s from server" +msgstr "%s letöltése a szerverrÅ‘l" + +msgid "Download .NFI-files for USB-flasher" +msgstr ".NFI fájlok letöltése az USB Flasherhez" + +msgid "Download plugins" +msgstr "Pluginek letöltése" + +msgid "Downloadable new plugins" +msgstr "LetölthetÅ‘ új pluginek" + +msgid "Downloadable plugins" +msgstr "LetölthetÅ‘ pluginek" + +msgid "Downloading" +msgstr "Letöltés" + +msgid "Downloading plugin information. Please wait..." +msgstr "Plugin-lista letöltése. Kérem, várjon..." + +msgid "Dutch" +msgstr "Holland" + +msgid "Dynamic contrast" +msgstr "Dinamikus kontraszt" + +msgid "E" +msgstr "K" + +msgid "EPG" +msgstr "EPG" + +msgid "EPG language selection 1" +msgstr "EPG nyelvválasztás 1." + +msgid "EPG language selection 2" +msgstr "EPG nyelvválasztás 2." + +msgid "EPG selection" +msgstr "Elektronikus műsorújság" + +msgid "EPG settings" +msgstr "EPG beállítások" + +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "HIBA - nem sikerült a keresés (%s)!" + +msgid "East" +msgstr "Kelet" + +msgid "East limit set" +msgstr "Keleti limit beállítás" + +msgid "Edit" +msgstr "Szerkesztés" + +msgid "Edit DNS" +msgstr "DNS módosítása" + +msgid "Edit bouquets list" +msgstr "Bouquet-listák szerkesztése" + +msgid "Edit chapters of current title" +msgstr "Aktuális cím jeleneteinek módosítása" + +msgid "Edit services list" +msgstr "Csatornalista szerkesztése" + +msgid "Edit settings" +msgstr "Beállítások módosítása" + +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "A készülék névszerver beállításainak módosítása.\n" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "A készülék hálózati beállításainak módosítása.\n" + +msgid "Edit timer" +msgstr "" + +msgid "Edit title" +msgstr "Cím módosítása" + +msgid "Edit upgrade source url." +msgstr "A frissítési forrás URL-jének szerkesztése." + +msgid "Education/Science/..." +msgstr "Oktatás/Tudomány" + +msgid "Electronic Program Guide" +msgstr "Elektronikus Műsorújság" + +msgid "Enable" +msgstr "Engedélyezve" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +msgid "Enable 5V for active antenna" +msgstr "5V kimenet az akítv antennához engedélyezve" + +msgid "Enable EIT EPG" +msgstr "EIT EPG engedélyezése" + +msgid "Enable MHW EPG" +msgstr "MHW EPG engedélyezése" + +msgid "Enable Netmed EPG" +msgstr "Netmed EPG engedélyezése" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "ViaSat EPG engedélyezése" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +msgid "Enable bouquet selection in multi-EPG" +msgstr "Bouquet-választás lehetÅ‘sége a Multi-EPG-ben" + +msgid "Enable freesat EPG" +msgstr "Freesat EPG engedélyezése" + +msgid "Enable multiple bouquets" +msgstr "Többszörös bouquetek engedélyezése" + +msgid "Enable parental control" +msgstr "Gyermekzár engedélyezése" + +msgid "Enable teletext caching" +msgstr "Teletext gyorsítótárazása" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +msgid "Enabled" +msgstr "Engedélyezve" + +msgid "Encrypted: " +msgstr "Kódolva: " + +msgid "Encryption" +msgstr "Kódolás" + +msgid "Encryption key" +msgstr "Kódolási kulcs" + +msgid "Encryption key type" +msgstr "Kódolási kulcstípus" + +msgid "Encryption:" +msgstr "Kódolás:" + +msgid "End time" +msgstr "Vége idÅ‘pont" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "Inaktivitás figyelmen kívül hagyása eddig:" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +msgid "English" +msgstr "Angol" + +msgid "Enigma2 skin selector" +msgstr "enigma2 és hálózat" + +msgid "Enter main menu..." +msgstr "Belépés a fÅ‘menübe..." + +msgid "Enter pin code" +msgstr "PIN-Kód:" + +msgid "Enter the service pin" +msgstr "Adja meg a csatornavédelem PIN kódját" + +msgid "Equal to" +msgstr "" + +msgid "Error" +msgstr "Hiba" + +msgid "Error code" +msgstr "Hibakód" + +msgid "Error executing plugin" +msgstr "Plugin indítási hiba" + +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Hiba? %s\n" +"Próbáljam újra?" + +msgid "Estonian" +msgstr "Észt" + +msgid "Ethernet network interface" +msgstr "Ethernet hálózati interfész" + +msgid "Event font size (relative to skin size)" +msgstr "Esemény betűméret (skin-hez relatív)" + +msgid "Event view" +msgstr "Eseménynézet" + +msgid "Event view menu" +msgstr "Esemény-nézet menü" + +msgid "Everywhere" +msgstr "mindenhonnan" + +msgid "Exceeds dual layer medium!" +msgstr "Meghaladja a kétrétegű hordozó kapacitását!" + +msgid "Execution finished!!" +msgstr "Végrehajtás befejezve!" + +msgid "Execution progress:" +msgstr "Végrehajtási állapot:" + +msgid "Exif" +msgstr "Exif" + +msgid "Exit" +msgstr "Kilépés" + +msgid "Exit EPG" +msgstr "Kilépés az EPG-bÅ‘l" + +msgid "Exit editor" +msgstr "Kilépés a szerkesztÅ‘bÅ‘l" + +msgid "Exit input device selection." +msgstr "Kilépés a bemeneti eszközválasztásból." + +msgid "Exit media player?" +msgstr "Kilépés a médialejátszóból?" + +msgid "Exit mediaplayer" +msgstr "kilépés a mediaplayerbÅ‘l" + +msgid "Exit movie list" +msgstr "Kilépés a fájl-listából" + +msgid "Exit movie player?" +msgstr "kilépés a mediaplayerbÅ‘l" + +msgid "Exit nameserver configuration" +msgstr "kliépés a névszerver beállításaiból" + +msgid "Exit network interface list" +msgstr "kliépés a hálózati interfészek listájából" + +msgid "Exit network wizard" +msgstr "Kilépés a Hálózati Varázslóból" + +msgid "Exit the wizard" +msgstr "Kilépés a Varázslóból" + +msgid "Expert" +msgstr "Haladó" + +msgid "Extend sleeptimer 15 minutes" +msgstr "Elalvás idÅ‘zítése 15 perccel késÅ‘bbre" + +msgid "Extended Software" +msgstr "BÅ‘vített Szoftver" + +msgid "Extended Software Plugin" +msgstr "BÅ‘vített Szoftver Plugin" + +msgid "Extended network setup plugin..." +msgstr "BÅ‘vített hálózati beállítások Plugin..." + +msgid "Extended setup..." +msgstr "BÅ‘vített beállítások..." + +msgid "Extensions" +msgstr "BÅ‘vítmények" + +msgid "Extensions management" +msgstr "BÅ‘vítmények kezelése" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "KülsÅ‘ feliratok szine" + +msgid "Extra motor options" +msgstr "" + +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "FTA" + +msgid "Factory reset" +msgstr "Gyári alapbeállítások" + +msgid "Failed" +msgstr "Sikertelen" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "Ãrási hiba a /tmp/positionersetup.log-ba: " + +#, python-format +msgid "Fan %d" +msgstr "%d. Vent." + +#, python-format +msgid "Fan %d PWM" +msgstr "%d. Ventilátor PWM" + +#, python-format +msgid "Fan %d voltage" +msgstr "%d. Ventilátor tápfeszültség" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +msgid "Fast" +msgstr "Gyors" + +msgid "Fast DiSEqC" +msgstr "Gyors DiSEqC" + +msgid "Fast Scan" +msgstr "Szolgáltatói keresés" + +msgid "Fast epoch" +msgstr "Gyors korszak" + +msgid "Fast forward speeds" +msgstr "ElÅ‘re-tekerési sebességek" + +msgid "Favourites" +msgstr "Kedvencek" + +msgid "File appears to be busy.\n" +msgstr "A fájl használatban van.\n" + +msgid "Filesystem check" +msgstr "Fájlrendszer ellenÅ‘rzése" + +msgid "Final position at" +msgstr "Végleges pozíció" + +msgid "Final position at index" +msgstr "Végleges pozíció indexe" + +msgid "Fine movement" +msgstr "Finom mozgatás" + +msgid "Finetune" +msgstr "Finomhangolás" + +msgid "Finished" +msgstr "Kész" + +msgid "Finished configuring your network" +msgstr "A hálózati beállítás befejezÅ‘dött" + +msgid "Finished restarting your network" +msgstr "A hálózati kapcsolat újraindítása befejezÅ‘dött" + +msgid "Finnish" +msgstr "Finn" + +msgid "Fixed" +msgstr "fix" + +msgid "Flash" +msgstr "Flash" + +msgid "Flashing failed" +msgstr "Flashelés sikertelen" + +msgid "Following tasks will be done after you press OK!" +msgstr "Végrehajtás az OK gomb lenyomása után történik" + +msgid "Format" +msgstr "Formázás" + +msgid "Forward volume keys" +msgstr "HangerÅ‘szabályzás továbbítása" + +msgid "Frame size in full view" +msgstr "Képméret teljesképernyÅ‘ nézetbe" + +msgid "French" +msgstr "Francia" + +msgid "Frequency" +msgstr "Frekvencia" + +msgid "Frequency bands" +msgstr "Frekvencia sávok" + +msgid "Frequency scan step size(khz)" +msgstr "Frekvencia léptetés mérete (kHz)" + +msgid "Frequency steps" +msgstr "Frekvencia lépések" + +msgid "Frequency:" +msgstr "Frekvencia:" + +msgid "Fri" +msgstr "Pén" + +msgid "Friday" +msgstr "Péntek" + +msgid "From :" +msgstr "Innen" + +#, python-format +msgid "Frontprocessor version: %d" +msgstr "FÅ‘processzor verziója: %d" + +msgid "Full transparency" +msgstr "Teljesen áttetszÅ‘" + +msgid "Fulview resulution" +msgstr "Teljes képernyÅ‘ felbontás" + +msgid "Function of OK button" +msgstr "Az OK gomb funkciója" + +msgid "Further Options" +msgstr "" + +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"Az új skin betöltéséhez újra kell indítani a kezelÅ‘ felületet.\n" +"Megtörténhet ez most azonnal?" + +msgid "Gateway" +msgstr "Ãtjáró IP címe" + +msgid "General AC3 delay" +msgstr "Ãltalános AC3 késleltetés" + +msgid "General PCM delay" +msgstr "Ãltalános PCM késleltetés" + +msgid "Genre" +msgstr "Zsáner" + +msgid "German" +msgstr "Német" + +msgid "Get latest experimental image" +msgstr "A legújabb kísérleti image megszerzése" + +msgid "Get latest release image" +msgstr "A legújabb hivatalos image megszerzése" + +msgid "Getting plugin information. Please wait..." +msgstr "Plugin-lista letöltése. Kérem, várjon..." + +msgid "Go down the list" +msgstr "A listán lefelé" + +msgid "Go to first movie or last item" +msgstr "Az elsÅ‘ filmre vagy utolsó elemre ugrás" + +msgid "Go to first movie or top of list" +msgstr "Az elsÅ‘ filmre vagy elsÅ‘ elemre ugrás" + +msgid "Go to first service" +msgstr "Ugrás az elsÅ‘ csatornára" + +msgid "Go to last service" +msgstr "Ugrás az utolsó csatornára" + +msgid "Go to next event" +msgstr "Ugrás a következÅ‘ eseményre" + +msgid "Go to next page of service" +msgstr "Ugrás a következÅ‘ csatornalapra" + +msgid "Go to previous event" +msgstr "Ugrás az elÅ‘zÅ‘ eseményre" + +msgid "Go to previous page of service" +msgstr "Ugrás az elÅ‘zÅ‘ csatornalapra" + +msgid "Go up the list" +msgstr "A listán felfelé" + +msgid "Goto" +msgstr "Menj" + +msgid "Goto 0" +msgstr "0-ra" + +msgid "Goto :" +msgstr "Ide:" + +msgid "Goto X" +msgstr "Goto X" + +msgid "Goto index position" +msgstr "Ugrás az indexre" + +msgid "Goto next day of events" +msgstr "KövetkezÅ‘ napra" + +msgid "Goto next page of events" +msgstr "Ugrás a következÅ‘ eseménylapra" + +msgid "Goto position" +msgstr "Pozícióra ugrás" + +msgid "Goto previous day of events" +msgstr "ElÅ‘zÅ‘ napra" + +msgid "Goto previous page of events" +msgstr "Ugrás az elÅ‘zÅ‘ eseménylapra" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "'Goto X' kalibrálása" + +msgid "GraphMultiEpg Settings" +msgstr "Grafikus EPG beállítások" + +msgid "Graphical Multi EPG" +msgstr "Grafikus multi EPG" + +msgid "Greek" +msgstr "Görög" + +msgid "Green boost" +msgstr "Zöld erÅ‘sítés" + +msgid "Guard interval" +msgstr "Védelmi intervallum" + +msgid "HD list" +msgstr "HD csatornák" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "Készenlét fogadása a TV-tÅ‘l" + +msgid "Handle wakeup from TV" +msgstr "Bekapcsolás fogadása a TV-tÅ‘l" + +msgid "Hard disk" +msgstr "Háttértár" + +msgid "Hard disk setup" +msgstr "Háttértár beállítások" + +msgid "Hard disk standby after" +msgstr "Merevlemez leállítása megadott idö után" + +msgid "Harddisk" +msgstr "Háttértár" + +msgid "Hardware: " +msgstr "Hardver: " + +msgid "Hebrew" +msgstr "Héber" + +msgid "Helps setting up your dish" +msgstr "Segítség az antenna beállításhoz" + +msgid "Hidden network" +msgstr "Rejtett hálózat" + +msgid "Hide CI messages" +msgstr "CI-üzenetek elrejtése" + +msgid "Hide channel list in radio mode" +msgstr "A csatornalista elrejtése rádió módban" + +msgid "Hide known extensions" +msgstr "Ismert fájlkiterjesztések elrejtése" + +msgid "Hide number markers" +msgstr "Sorszámozott elválasztók elrejtése" + +msgid "Hide player" +msgstr "lejátszó elrejtése" + +msgid "Hide zap errors" +msgstr "Csatornaváltási hibák elrejtése" + +msgid "Hierarchy info" +msgstr "Hierarchikus mód" + +msgid "Hierarchy information" +msgstr "Hierarchia információk" + +msgid "High bitrate support" +msgstr "Magas bitráta támogatása" + +msgid "Hold screen" +msgstr "KépernyÅ‘ megtartás" + +msgid "Hold till locked" +msgstr "Megtartás hangolásig" + +msgid "Home" +msgstr "Haza" + +msgid "Horizontal" +msgstr "Horrizontális" + +msgid "Horizontal turning speed" +msgstr "Horrizontális fordulási sebesség" + +msgid "How many minutes do you want to record?" +msgstr "Hány percet szeretne felvenni?" + +msgid "Hue" +msgstr "Színárnyalat" + +msgid "Hungarian" +msgstr "Magyar" + +msgid "IP address" +msgstr "IP cím" + +msgid "ISO file is too large for this filesystem!" +msgstr "Az ISO fájl túl nagy ehhez a fájlrendszerhez!" + +msgid "ISO path" +msgstr "ISO útvonala" + +msgid "Icons" +msgstr "Ikonok" + +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"Ha ezt látja, akkor valami nem stimmel a\n" +"scart csatlakozással. OK-val visszaléphet." + +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"Amennyiben a TV készülékében van fényerÅ‘ vagy kontraszt javító opció, akkor azt kérem kapcsolja ki. Ha van valamilyen speciális beállítás mint pl. \"dinamikus\" vagy hasonló, azt állítsa alaphelyzetbe. Ãllítsa be a háttérfény erejét az Önnek megfelelÅ‘ erÅ‘sségüre. Vegye le a kontrasztot a TV készüléken amennyire csak lehetséges.\n" +"Majd vegye le a fényerÅ‘t olyan alacsonyra amennyire csak lehetséges, de figyelje a két legalsó szürke csíkot, hogy azok éppen megkülönböztethetÅ‘ek legyenek.\n" +"Most ne törÅ‘djön a fényes csíkokkal. Ezeket a következÅ‘ lépésben fogjuk beállítani.\n" +"Amennyiben az eredmény megfelelÅ‘, nyomja meg az OK gombot." + +msgid "Image: " +msgstr "Image: " + +msgid "Immediate shutdown" +msgstr "azonnali kikapcsolás" + +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "Az idÅ‘zítés esedékessége miatt átkapcsoltam a beprogramozott csatornára!\n" + +msgid "In progress" +msgstr "Folyamatban" + +msgid "Inactivity Sleeptimer" +msgstr "Elalvás inaktivitás miatt" + +msgid "Include AIT in http streams" +msgstr "Legyen AIT a HTTP jelfolyamba" + +msgid "Include ECM in http streams" +msgstr "Legyen ECM a HTTP jelfolyamba" + +msgid "Include EIT in http streams" +msgstr "Legyen EIT a HTTP jelfolyamba" + +msgid "Incorrect type service for PiP!" +msgstr "" + +msgid "Increased voltage" +msgstr "Magasabb feszültség" + +msgid "Index" +msgstr "Index" + +msgid "Index allocated:" +msgstr "Hozzárendelt index:" + +msgid "Info" +msgstr "Információ" + +msgid "Info bar" +msgstr "Információs sáv" + +msgid "Info bar timeout" +msgstr "Információs sáv megjelenítési ideje" + +msgid "Infobar frontend data source" +msgstr "" + +msgid "Information" +msgstr "Információk" + +msgid "Init" +msgstr "Inicializálás" + +msgid "Initial fast forward speed" +msgstr "Kezdeti elÅ‘re-tekerési sebesség" + +msgid "Initial location in new timers" +msgstr "Kezdeti hely, az új idÅ‘zítÅ‘k esetén" + +msgid "Initial lock ratio" +msgstr "Kezdeti hangolási arány" + +msgid "Initial rewind speed" +msgstr "Kezdeti vissza-tekerési sebesség" + +msgid "Initial signal quality" +msgstr "Eredeti jelminÅ‘ség" + +msgid "Initial signal quality:" +msgstr "Eredeti jelminÅ‘ség:" + +msgid "Initialization" +msgstr "Inicializálás" + +msgid "Initialize" +msgstr "Inicializál" + +msgid "Initializing storage device..." +msgstr "Háttértár inicializálása..." + +msgid "Input" +msgstr "Bevitel" + +msgid "Input device setup" +msgstr "Beviteli eszközök beállítása" + +msgid "Input devices" +msgstr "Beviteli eszközök" + +msgid "Install" +msgstr "Telepítés" + +msgid "Install a new image with a USB stick" +msgstr "Új image telepítése USB meghajtóról" + +msgid "Install a new image with your web browser" +msgstr "Új image telepítése webes felületrÅ‘l" + +msgid "Install channel list" +msgstr "Köv. csatorna az elÅ‘zményekben" + +msgid "Install extensions" +msgstr "" + +msgid "Install extensions." +msgstr "BÅ‘vítmények telepítése." + +msgid "Install local extension" +msgstr "Helyi bÅ‘vítmények telepítése" + +msgid "Install picons on" +msgstr "Pikonok telepítése ide:" + +msgid "Install softcam" +msgstr "Szoftver telepítése..." + +msgid "Installation has completed." +msgstr "Számítás kész" + +msgid "Installation or removal has completed." +msgstr "A telepítés vagy eltávolítás befejezÅ‘dött." + +msgid "Installing" +msgstr "Telepítés" + +msgid "Installing software..." +msgstr "Szoftver telepítése..." + +msgid "Instant recording location" +msgstr "Azonnali felvételek:" + +msgid "Instant recording..." +msgstr "Felvétel azonnali indítása..." + +msgid "Interface: " +msgstr "Interfész: " + +msgid "Intermediate" +msgstr "Középfokú" + +msgid "Internal flash" +msgstr "BelsÅ‘ Flash" + +msgid "Internal hdd only" +msgstr "csak a belsÅ‘ háttértárról" + +msgid "Interval between keys when repeating:" +msgstr "Billentyű-ismétlés idÅ‘köze:" + +#, python-format +msgid "Invalid directory selected: %s" +msgstr "A kiválasztott mappa érvénytelen: %s" + +msgid "Invalid location" +msgstr "Érvénytelen hely" + +msgid "Invalid transponder data" +msgstr "" + +msgid "Inversion" +msgstr "Invertálás" + +msgid "Invert" +msgstr "Invertálás" + +msgid "Ipkg" +msgstr "Ipkg" + +msgid "Is this setting ok?" +msgstr "Ezen beállítások használata?" + +msgid "Is this video mode ok?" +msgstr "MegfelelÅ‘ ez a videómód?" + +msgid "Italian" +msgstr "Olasz" + +msgid "Items per page " +msgstr "elem oldalanként" + +msgid "Items per page for list screen" +msgstr "Elemek oldalanként Listanézetben" + +msgid "Job overview" +msgstr "Folyamat nézet" + +msgid "Jump to beginning of list" +msgstr "Ugrás a lista elejére" + +msgid "Jump to end of list" +msgstr "ugrás a lista végére" + +msgid "Jump to next marked position" +msgstr "ugrás a következÅ‘ megjelölt ponthoz" + +msgid "Jump to previous marked position" +msgstr "ugrás az elÅ‘zÅ‘ megjelölt ponthoz" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +msgid "Just scale" +msgstr "Skálázás (nyújtás)" + +msgid "Keep service" +msgstr "" + +msgid "Kernel version: " +msgstr "Kernel verzió: " + +msgid "Keyboard" +msgstr "Billentyűzet" + +msgid "Keyboard map" +msgstr "Billentyűkiozsztás" + +msgid "Keyboard setup" +msgstr "Billentyűzet beállítása" + +msgid "LAN adapter" +msgstr "Hálózati adapter" + +msgid "LAN connection" +msgstr "Helyi privát" + +msgid "LNB" +msgstr "Fej" + +msgid "Language" +msgstr "KezelÅ‘ felület nyelve" + +msgid "Language selection" +msgstr "Nyelvválasztás" + +msgid "Last config" +msgstr "Utolsó konfiguráció" + +msgid "Last speed" +msgstr "Utolsó sebesség" + +msgid "Last upgrade: " +msgstr "Utolsó frissítés: " + +msgid "Latest Commits" +msgstr "" + +msgid "Latitude" +msgstr "Földrajzi szélességi fok" + +msgid "Latvian" +msgstr "Lett" + +msgid "Leave DVD player?" +msgstr "Kilépés a DVD lejátszóból?" + +msgid "Left" +msgstr "Bal" + +msgid "Left from servicename" +msgstr "A csatornanév bal oldalán" + +msgid "Leisure hobbies" +msgstr "Pihenés/Hobby" + +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Letterbox (fekete csíkok alul/felül)" + +msgid "Letterbox zoom" +msgstr "Letterbox zoom" + +msgid "Limit character set for recording filenames" +msgstr "Korlátozott betűkészlet a felvételek fájlneveiben" + +msgid "Limit east" +msgstr "Keleti limit" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "A fájlnevekben használt karaktertábla (7 bites) ASCII-re legyen korlátozva. Ezáltal a kompatibilitás garantált olyan operációs rendszerekkel is, melyekben limitált a karakterkészlet." + +msgid "Limit west" +msgstr "Nyugati limit" + +msgid "Limits cancelled" +msgstr "Limitek felfüggesztve" + +msgid "Limits enabled" +msgstr "Limitek érvényben" + +msgid "Limits off" +msgstr "Limitek kikapcsolva" + +msgid "Limits on" +msgstr "Limitek bekapcsolva" + +msgid "Link quality:" +msgstr "Kapcsolat minÅ‘sége:" + +msgid "Link:" +msgstr "Kapcsolat:" + +msgid "Linked titles with a DVD menu" +msgstr "DVD menüvel linkelt címek" + +msgid "List EPG functions..." +msgstr "EPG-nézetek listája..." + +msgid "List available networks" +msgstr "ElérhetÅ‘ hálózatok listázása" + +msgid "List mode" +msgstr "Listázás módja" + +msgid "List of storage devices" +msgstr "Tárolóeszközök listája" + +msgid "List type" +msgstr "Típuslista" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "%d listaverzió, %d csatornát találtam" +msgstr[1] "%d listaverzió, %d csatornát találtam" + +msgid "Listen to the radio..." +msgstr "Rádiólista megnyitása..." + +msgid "Lists reloaded!" +msgstr "" + +msgid "Lithuanian" +msgstr "Litván" + +msgid "Load" +msgstr "Betöltés" + +msgid "Load Length of Movies in Movielist" +msgstr "Filmek hosszának betöltése a filmlistában" + +msgid "Load length of movies in movie list" +msgstr "Filmek hosszának betöltése a filmlistában" + +msgid "Load playlist" +msgstr "playlista betöltése" + +msgid "Local network" +msgstr "Helyi hálózat" + +msgid "Location" +msgstr "Tárhely" + +msgid "Location for instant recordings" +msgstr "Azonnali felvételek helye" + +msgid "Lock ratio" +msgstr "Hangolási arány" + +msgid "Lock:" +msgstr "Hangolás:" + +msgid "Log results to harddisk" +msgstr "Eredmények naplózása háttértárra" + +msgid "Long filenames" +msgstr "Hosszú fájlnevek" + +msgid "Long key press" +msgstr "Hosszú gombnyomás" + +msgid "Longitude" +msgstr "Földrajzi hosszúsági fok" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "Luxemburgi" + +msgid "MMC card" +msgstr "MMC kártya" + +msgid "MORE" +msgstr "MÉG" + +msgid "Main menu" +msgstr "FÅ‘menü" + +msgid "Maintain old EPG data for" +msgstr "Múlt EPG adat tárolás eddig:" + +msgid "Make this mark an 'in' point" +msgstr "Legyen ez a kezdési pont" + +msgid "Make this mark an 'out' point" +msgstr "Legyen ez a vége pont" + +msgid "Make this mark just a mark" +msgstr "Legyen ez csak egy jelölÅ‘pont" + +msgid "Manage extensions" +msgstr "BÅ‘vítmények kezelése" + +msgid "Manage your receiver's software" +msgstr "A készülék szoftverének kezelése" + +msgid "Manual" +msgstr "" + +msgid "Manual Scan" +msgstr "Kézi keresés" + +msgid "Manual configuration" +msgstr "Kézi konfiguráció" + +msgid "Manual scan" +msgstr "Kézi keresés" + +msgid "Manual transponder" +msgstr "Kézi transzponder" + +msgid "Manufacturer" +msgstr "Gyártó" + +msgid "Margin after recording (minutes)" +msgstr "Felvétel utáni ráhagyás (perc)" + +msgid "Margin before recording (minutes)" +msgstr "Felvétel elÅ‘tti ráhagyás (perc)" + +msgid "Max memory positions" +msgstr "" + +msgid "Max. bitrate: " +msgstr "Max. Bitráta: " + +msgid "Media player" +msgstr "Médialejátszó" + +msgid "Media scanner" +msgstr "Médialejátszó" + +msgid "Medium is not a writeable DVD!" +msgstr "A hordozó nem írható DVD" + +msgid "Medium is not empty!" +msgstr "A hordozó nem üres!" + +msgid "Memory" +msgstr "Memória" + +msgid "Memory index" +msgstr "Memóriaindex" + +msgid "Menu" +msgstr "Menü" + +msgid "Message" +msgstr "Ãœzenet" + +msgid "Message..." +msgstr "Ãœzenet..." + +#, python-format +msgid "Minimum age %d years" +msgstr "Minimális korhatár %d év" + +msgid "Minimum send interval" +msgstr "Minimális ismétlési idÅ‘köz" + +msgid "Missing " +msgstr "Hiányzó" + +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Mód" + +msgctxt "Video output mode" +msgid "Mode" +msgstr "Felbontás" + +msgid "Model: " +msgstr "Modell:" + +msgid "Modulation" +msgstr "Moduláció" + +msgid "Modulator" +msgstr "Modulátor" + +msgid "Mon" +msgstr "Hét" + +msgid "Mon-Fri" +msgstr "HétfÅ‘tÅ‘l péntekig" + +msgid "Monday" +msgstr "HétfÅ‘" + +msgid "Mosquito noise reduction" +msgstr "Hangya-zajcsökkentés" + +msgid "Mount" +msgstr "Csatlakozás" + +msgid "Move" +msgstr "Ãthelyezés" + +msgid "Move PiP to main picture" +msgstr "Kép-a-Képben váltása a fÅ‘képre" + +msgid "Move Picture in Picture" +msgstr "Kép-A-Képben mozgatása" + +msgid "Move east" +msgstr "Kelet felé" + +msgid "Move to other directory" +msgstr "Ãthelyezés másik mappába" + +msgid "Move to position X" +msgstr "Mozgatás az X pozícióra" + +msgid "Move west" +msgstr "Nyugat felé" + +msgid "Moved to position 0" +msgstr "Mozgatás a 0-ra" + +msgid "Moved to position at index" +msgstr "Mozgatás sorszámra" + +msgid "Movement" +msgstr "Mozgás" + +msgid "Movie List Configuration" +msgstr "Fájllista konfigurációja" + +msgid "Movie Selection" +msgstr "Film választása" + +msgid "Movie list configuration" +msgstr "Fájllista konfigurációja" + +msgid "Movie location" +msgstr "Fájlok tárhelye" + +msgid "Movie selection" +msgstr "Filmválasztás" + +msgid "Movie/Drama" +msgstr "Mozi/Színház" + +msgid "Movielist menu" +msgstr "Fájllista menü" + +msgid "Moving" +msgstr "Mozgatás" + +msgid "Moving east ..." +msgstr "Mozgatás kelet felé..." + +msgid "Moving to position" +msgstr "Mozgatás erre: " + +msgid "Moving west ..." +msgstr "Mozgatás nyugat felé..." + +msgid "Multi EPG" +msgstr "Multi EPG" + +msgid "Multi-EPG bouquet selection" +msgstr "Multi-EPG bouquet-választás" + +msgid "Multimedia" +msgstr "Multimédia" + +msgid "Multiple service support" +msgstr "Több csatorna támogatása" + +msgid "Multiplex" +msgstr "Multiplex" + +msgid "Multisat" +msgstr "Több műholdat" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "Zene/Balett/Tánc" + +msgid "Mute" +msgstr "Némítás" + +msgid "N/A" +msgstr "N/A" + +msgid "NEXT" +msgstr "KÖVETKEZÅ" + +msgid "NFI image flashing" +msgstr "NFI Image Flash-elés" + +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "NFI image flashelése megörtént. Nyomja meg a Sárga gombot az újraindításhoz!" + +msgid "NIM" +msgstr "NIM" + +msgid "NOW" +msgstr "MOST" + +msgid "NTSC" +msgstr "NTSC" + +msgid "Name" +msgstr "Név" + +msgid "Nameserver" +msgstr "Névszerver" + +#, python-format +msgid "Nameserver %d" +msgstr "Névszerver %d" + +msgid "Nameserver settings" +msgstr "Névszerver beállítások" + +msgid "Nameserver setup" +msgstr "Névszerver beállítások" + +msgid "Namespace" +msgstr "Névköz" + +msgid "Netmask" +msgstr "Alhál. maszk" + +msgid "Network" +msgstr "Hálózat" + +msgid "Network ID" +msgstr "Hálózat ID" + +msgid "Network configuration..." +msgstr "Hálózati beállítások..." + +msgid "Network mount" +msgstr "Hálózat felépítése" + +#, python-format +msgid "Network mount %s" +msgstr "Hálózati csatlakozás %s" + +msgid "Network name (SSID)" +msgstr "Hálózatnév (SSID)" + +msgid "Network scan" +msgstr "Hálózat keresése" + +msgid "Network setup" +msgstr "Hálózati beállítások" + +msgid "Network test" +msgstr "Hálózat ellenÅ‘rzése" + +msgid "Network test..." +msgstr "Hálózat ellenÅ‘rzése..." + +msgid "Network test: " +msgstr "Hálózat Varázsló" + +msgid "Network wizard" +msgstr "Hálózati Varázsló" + +msgid "Network:" +msgstr "Hálózat:" + +msgid "New" +msgstr "Új" + +msgid "New PIN" +msgstr "Új PIN" + +msgid "New version:" +msgstr "Új verzió:" + +msgid "News Current Affairs" +msgstr "Hírek/Gazdaság" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "KövetkezÅ‘" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "Következik" + +msgid "No" +msgstr "Nem" + +msgid "No (supported) DVDROM found!" +msgstr "Nincs (támogatott) DVD ROM!" + +msgid "No Connection" +msgstr "Nincs kapcsolat" + +msgid "No HDD found or HDD not initialized!" +msgstr "Nem észlelhetÅ‘ háttértár, vagy az nem lett inicializálva!" + +msgid "No backup needed" +msgstr "Nincs mentésre szükség" + +msgid "No cable tuner found!" +msgstr "Nem található kábeltuner!" + +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Nincs adat a transzponderen!\n" +"(PAT olvasási idÅ‘túllépés)" + +msgid "No delay" +msgstr "nincs késleltetés" + +msgid "No description available." +msgstr "Nincs elérhetÅ‘ leírás" + +msgid "No details for this image file" +msgstr "Ehhez az image fájlhoz nincs leírás" + +msgid "No displayable files on this medium found!" +msgstr "A hordozón nem található lejátszható fájl!" + +msgid "No event info found, recording indefinitely." +msgstr "Nincs esemény infó, felvétel korlátlanul." + +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "Gyorscsévélési lehetÅ‘ség nincs még... de a szám-gombokkal lehet ugranni elÅ‘re vagy hátra!" + +msgid "No free index available" +msgstr "Nincs szabad index" + +msgid "No free tuner!" +msgstr "Nincs szabad tuner!" + +msgid "No network connection available." +msgstr "Nincs elérhetÅ‘ hálózati kapcsolat." + +msgid "No networks found" +msgstr "Nem észlelhetÅ‘ hálózat" + +msgid "No new plugins found" +msgstr "Nincsenek új plug-in-ek" + +msgid "No positioner capable frontend found." +msgstr "Nem találtam forgatómotort támogató tunert." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "Nincs csatorna" + +msgid "No services/providers selected" +msgstr "nincs szolgáltató kiválasztva" + +msgid "No standby" +msgstr "Nincs kikapcsolás" + +msgid "No suitable sat tuner found!" +msgstr "Nincs megfelelÅ‘ sat tuner!" + +msgid "No tags are set on these movies." +msgstr "Ezeknek a felvételekre nincsenek metaadataik." + +msgid "No timeout" +msgstr "Nincs timeout" + +msgid "No to all" +msgstr "Mindenre NEM" + +msgid "No transparency" +msgstr "ÃttetszÅ‘ség" + +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "Az egyik tuner sincs beállítva DiSEqC forgatómotorra!" + +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Nincs engedélyezett tuner!\n" +"Csatornakeresés elÅ‘tt állítsa be a tunereket." + +msgid "No updates available" +msgstr "Nincs elérhetÅ‘ frissítés" + +msgid "No updates available. Please try again later." +msgstr "Nincs elérhetÅ‘ frissítés. Kérem, próbálja meg késÅ‘bb." + +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Nem találtam érvényes csatornavédelem PIN kódot!\n" +"Meg szeretné most változtatni a csatornavédelem PIN kódot?\n" +"Ha 'Nem'-el válaszol, akkor a csatornavédelem kikapcsolva marad!" + +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Nem találtam érvényes menüvédelmi PIN kódot!\n" +"Meg szeretné most változtatni a menüvédelmi PIN kódot?\n" +"Ha 'Nem'-el válaszol, akkor a menüvédelem kikapcsolva marad!" + +msgid "No wireless networks found! Searching..." +msgstr "Nem észlelhetÅ‘ vezeték nélküli hálózat! Keresés..." + +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"Nem található egyetlen működÅ‘képes helyi hálózati illesztÅ‘ sem.\n" +"Kérem, ellenÅ‘rizze, hogy a hálózati kábel csatlakoztatva van, és a hálózati paraméterek megfelelÅ‘en be vannak állítva." + +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"Nem található egyetlen működÅ‘képes vezeték nélküli hálózati illesztÅ‘ sem.\n" +"Kérem, ellenÅ‘rizze, hogy egy kompatibilis vezeték nélküli hálózati illesztÅ‘ csatlakoztatva van, és a hálózati paraméterek megfelelÅ‘en be vannak állítva." + +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"Nem található egyetlen működÅ‘képes vezeték nélküli hálózati illesztÅ‘ sem.\n" +"Kérem, ellenÅ‘rizze, hogy egy kompatibilis vezeték nélküli hálózati illesztÅ‘ csatlakoztatva van, és a hálózati paraméterek megfelelÅ‘en be vannak állítva." + +msgid "No, but restart from begin" +msgstr "Nem, de indítsa elölröl" + +msgid "No, do nothing." +msgstr "Nem, ne csináljon semmit." + +msgid "No, just start my receiver" +msgstr "Nem, csak indítsa el a készüléket" + +msgid "No, never" +msgstr "Nem, soha" + +msgid "None" +msgstr "nincs" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Nem-lineáris (szélek széthúzása)" + +msgid "Normal mode" +msgstr "Hagyományos mód" + +msgid "North" +msgstr "Észak" + +msgid "Norwegian" +msgstr "Norvég" + +msgid "Not associated" +msgstr "Nem-csatlakozott" + +msgid "Not configured" +msgstr "" + +#, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Nincs elég tárhely. Kérem, szabadítson fel némi helyet és próbálja meg újra. (%d MB területre lenne szükség, %d MB hely szabad jelenleg)" + +msgid "Nothing connected" +msgstr "" + +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Nincs mit lekeresni!\n" +"Elöbb állítsa be a tunert mielött elindítja a keresést." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "Most" + +msgid "Now playing" +msgstr "Most " + +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Most a kontraszt beállító funkció segítségével állítsa be a háttér világosságát a lehetÅ‘ legmagasabb értékre, de arra ügyeljen hogy a két világosság csík között lásson különbséget. Ha készen van, nyomja meg az OK gombot." + +msgid "OK" +msgstr "OK" + +msgid "OK, guide me through the upgrade process" +msgstr "OK, vezessen végig a frissítési folyamaton" + +msgid "ONID" +msgstr "ONID" + +msgid "OSD name request" +msgstr "OSD név kérés" + +msgid "OSD settings" +msgstr "OSD beállítások" + +msgid "OSD transparency" +msgstr "OSD áttetszÅ‘ség" + +msgid "Off" +msgstr "Ki" + +msgid "Offline decode delay (ms)" +msgstr "Offline dekódolási késleltetés (ms)" + +msgid "Ok" +msgstr "OK" + +msgid "On" +msgstr "Be" + +msgid "On end of movie" +msgstr "Film végén" + +msgid "On end of movie (as menu)" +msgstr "" + +msgid "One" +msgstr "Egy" + +msgid "Only extensions." +msgstr "Csak bÅ‘vítmények!" + +msgid "Only free scan" +msgstr "Csak FTA keresés" + +msgid "Open service list" +msgstr "Csatornalista megnyitása" + +msgid "Open the movie list" +msgstr "Visszatérés a felvételek listájához" + +msgid "Orbital position" +msgstr "Orbitális pozíció" + +msgid "Original" +msgstr "eredeti" + +msgid "Other" +msgstr "Más" + +msgid "Output" +msgstr "Kimenet" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "Konfigurációs fájlok felülírása szoftverfrissítése alkalmával?" + +msgid "Overwrite configuration files?" +msgstr "Konfigurációs fájlok felülírása?" + +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "PCR PID" + +msgid "PIDs" +msgstr "PID-ek" + +msgid "PIN code needed" +msgstr "PIN-kód szükséges" + +msgid "PLP ID" +msgstr "PLP ID" + +msgid "PMT PID" +msgstr "PMT PID" + +msgid "Package list update" +msgstr "Csomaglista frissítés" + +msgid "Packet management" +msgstr "Szoftvercsomag-kezelÅ‘" + +msgid "Packet manager" +msgstr "Szoftvercsomag-kezelÅ‘" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +msgid "Pan&scan" +msgstr "Pan&Scan (belenagyítva)" + +msgid "Parent directory" +msgstr "SzülÅ‘ mappa" + +msgid "Parental control" +msgstr "Gyermekzár" + +msgid "Parental control services editor" +msgstr "Csatorna editor gyermekzárja" + +msgid "Parental control setup" +msgstr "Gyermekzár beállítások" + +msgid "Parental control type" +msgstr "Gyermekzár típusa" + +msgid "Password" +msgstr "Jelszó" + +msgid "Pause" +msgstr "Szünet" + +msgid "Pause movie at end" +msgstr "Film megállítása a végén" + +msgid "Pause playback" +msgstr "Lejátszás folytatása" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "Százalék hátra" + +msgid "Percentage right" +msgstr "Forgó jobbos" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "A kuka véglegesen kiüríthetÅ‘?" + +msgid "Permanently remove all deleted items" +msgstr "Minden törölt elem végleges eltávolítása" + +msgid "Persian" +msgstr "Perzsa" + +msgid "Phone number" +msgstr "Telefonszám" + +msgid "PiP setup" +msgstr "Kép-a-Képben beállítások" + +msgid "Picon" +msgstr "Pikon" + +msgid "Picon and service name" +msgstr "Pikon és csatornanév" + +msgid "Picture player" +msgstr "Kép lejátszó" + +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Pillarbox (fekete csíkok oldalakon)" + +msgid "Pilot" +msgstr "Pilot" + +msgid "Play" +msgstr "Lejátszás" + +msgid "Play DVD" +msgstr "DVD lejátszás" + +msgid "Play audio in background" +msgstr "Hanglejátszás a háttérben" + +msgid "Play audio-CD..." +msgstr "Audio-CD lejátszás..." + +msgid "Play back media files" +msgstr "Médiafájlok lejátszása" + +msgid "Play entry" +msgstr "bejegyzés lejátszása" + +msgid "Play from next mark or playlist entry" +msgstr "lejátszás a következÅ‘ markertÅ‘l vagy lépjen be a playlistába" + +msgid "Play from previous mark or playlist entry" +msgstr "lejátszás az elÅ‘zÅ‘ markertÅ‘l vagy lépjen be a playlistába" + +msgid "Play music..." +msgstr "Zenelejátszás" + +msgid "Play next" +msgstr "KövetkezÅ‘ lejátszása" + +msgid "Play next (return to movie list)" +msgstr "KövetkezÅ‘ lejátszása (visszatérés a listához)" + +msgid "Play next (return to previous service)" +msgstr "KövetkezÅ‘ lejátszása (visszatérés az elÅ‘zÅ‘ csatornára)" + +msgid "Play previous" +msgstr "ElÅ‘zÅ‘ lejátszása" + +msgid "Play recorded movies..." +msgstr "Felvett filmek lejátszása..." + +msgid "Please add titles to the compilation." +msgstr "Kérem, adjon a válogatáshoz hozzá tételeket." + +msgid "Please change recording endtime" +msgstr "Kérem, változtassa meg a felvétel vége idejét" + +msgid "Please check your network settings!" +msgstr "Kérem, ellenÅ‘rizze a hálózati beállításokat!" + +msgid "Please choose an extension..." +msgstr "Kérem, válasszon egy funkciót..." + +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Kérem, ellenÅ‘rizze vagy állítsa be a névszervereket, a kért adatok kitöltésével.\n" +"Befejezés után, nyomja le az OK gombot a folytatáshoz." + +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Kérem, állítsa be az interket kapcsolatát a kért adatok kitöltésével.\n" +"Befejezés után, nyomja le az OK gombot a folytatáshoz." + +msgid "Please connect your receiver to the internet" +msgstr "Kérem, csatlakoztassa az internethez a készüléket." + +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Ha nem tudja mi mit jelent, akkor kérem, ne változtassa meg az adatokat!" + +msgid "Please enter a name for the new bouquet" +msgstr "Adja meg az új bouquet nevét" + +msgid "Please enter a name for the new marker" +msgstr "Adja meg az új marker nevét" + +msgid "Please enter a new filename" +msgstr "Adja meg az új fájlnevet" + +msgid "Please enter filename (empty = use current date)" +msgstr "Adja meg a fájlnevet (üres = jelenlegi adatok használata)" + +msgid "Please enter name of the new directory" +msgstr "Kérem, adja meg az új mappa nevét" + +msgid "Please enter new name:" +msgstr "Kérem, adja meg az új nevet:" + +msgid "Please enter the correct pin code" +msgstr "Kérem, adja meg a helyes PIN kódot" + +msgid "Please enter the old PIN code" +msgstr "Régi PIN kód" + +msgid "Please follow the instructions on the TV" +msgstr "Kérem, kövesse a képernyÅ‘n megjelenÅ‘ instrukciókat." + +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "Az elÅ‘bb kiválaszott média nem elérhetÅ‘ és ezért inkább az alapmappa lesz használva." + +msgid "Please press OK to continue." +msgstr "A folytatáshoz nyomja le az OK-t." + +msgid "Please select a default EPG type..." +msgstr "Kérem, válasszon egy alapértelmezett EPG típust..." + +msgid "Please select a playlist to delete..." +msgstr "Válasszon egy lejátszási listát amit törölni szeretne..." + +msgid "Please select a playlist..." +msgstr "Válasszon egy lejátszási listát..." + +msgid "Please select a sub service..." +msgstr "Válasszon egy alcsatornát..." + +msgid "Please select a subservice to record..." +msgstr "Válasszon egy alcsatornát a felvételhez..." + +msgid "Please select a subservice..." +msgstr "Válasszon egy alcsatornát..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "Kérem, válasszon egy NFI fájlt, majd nyomja meg a Zöld gombot a flash-eléshez!" + +msgid "Please select medium to be scanned" +msgstr "Kérem, válassza ki a keresendÅ‘ hordozót" + +msgid "Please select medium to use as backup location" +msgstr "Kérem, jelölje ki a biztonsági mentés helyét" + +msgid "Please select tag to filter..." +msgstr "Válassza ki, milyen metaadatok legyenek szűrve..." + +msgid "Please select the movie path..." +msgstr "Válassza ki a felvételek útvonalát..." + +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Kérem, válassza ki azt a hálózati interfészt, amit használni kíván az internet kapcsolathoz.\n" +"\n" +"Nyomja le az OK gombot a folytatáshoz." + +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Kérem, válassza ki a vezeték nélküli hálózatot, amihez csatlakozni kíván.\n" +"\n" +"Nyomja le az OK gombot a folytatáshoz." + +msgid "Please set up tuner A" +msgstr "Ãllítsa be a B tunert" + +msgid "Please set up tuner B" +msgstr "Ãllítsa be a B tunert" + +msgid "Please set up tuner C" +msgstr "Ãllítsa be a C tunert" + +msgid "Please set up tuner D" +msgstr "Ãllítsa be a D tunert" + +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Az iránygombokkal mozgathatja a Kép-a-Képben ablakot.\n" +"A Bouquet +/- gombokkal átméretezheti az ablakot.\n" +"Az OK gombbal visszamehet a TV módra, vagy az EXIT gombbal befejezheti a mozgatást." + +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "Kérem, használja a FEL és LE gombokat a nyelv kiválasztásához. Ez után nyomja le az OK gombot." + +msgid "Please wait" +msgstr "" + +msgid "Please wait (downloading channel list)" +msgstr "Kérem, várjon... Lista betöltése..." + +msgid "Please wait (downloading softcam)" +msgstr "Kérem, várjon... Lista betöltése..." + +msgid "Please wait (updating packages)" +msgstr "kérem vérjon, kép betöltése..." + +msgid "Please wait for activation of your network configuration..." +msgstr "Kérem, várjon, ameddig a hálózati konfiguráció élesedik..." + +msgid "Please wait while scanning is in progress..." +msgstr "Kérem, várjon, ameddig a keresés folyamatban van..." + +msgid "Please wait while we configure your network..." +msgstr "Kérem, várjon, ameddig a hálózati konfiguráció elkészül..." + +msgid "Please wait while we prepare your network interfaces..." +msgstr "Kérem, várjon, ameddig a hálózati interfészek elkészülnek..." + +msgid "Please wait while we test your network..." +msgstr "Kérem, várjon, ameddig a hálózati teszt lezajlik..." + +msgid "Please wait while your network is restarting..." +msgstr "Kérem, várjon, ameddig a hálózati konfiguráció újraindul..." + +msgid "Please wait..." +msgstr "Kérem, várjon" + +msgid "Please wait... Loading list..." +msgstr "Kérem, várjon... Lista betöltése..." + +msgid "Plugin browser" +msgstr "Telepített Pluginek" + +msgid "Plugin manager activity information" +msgstr "BÅ‘vítménykezelÅ‘ - végrehajtási információk" + +msgid "Plugin manager help" +msgstr "BÅ‘vítménykezelÅ‘ - súgó" + +msgid "Plugins" +msgstr "Pluginek" + +msgid "Polarisation" +msgstr "Polarizáció" + +msgid "Polarisation:" +msgstr "Polarizáció:" + +msgid "Polarization" +msgstr "Polarizáció" + +msgid "Polish" +msgstr "Lengyel" + +msgid "Port A" +msgstr "A Port" + +msgid "Port B" +msgstr "B Port" + +msgid "Port C" +msgstr "C Port" + +msgid "Port D" +msgstr "D Port" + +msgid "Portuguese" +msgstr "Portugál" + +msgid "Position of completed timers in timerlist" +msgstr "Befejezett idÅ‘zítések helye az idÅ‘zítések listájában" + +msgid "Position stored at index" +msgstr "Pozíció mentve ide: " + +msgid "Positioner" +msgstr "Forgatómotor" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "Forgatómotor Beálltások" + +msgid "Positioner setup" +msgstr "Forgatómotor beállítás" + +msgid "Power threshold in mA" +msgstr "Ãram határérték (mA)" + +msgid "Predefined transponder" +msgstr "ismert transzponderen" + +msgid "Prefer AC3 track" +msgstr "AC3 hangsáv elÅ‘nyben részesítése" + +msgid "Prefer AC3+ track" +msgstr "" + +msgid "Prefer audio track stored by service" +msgstr "A hangsáv választás mentése csatornánként" + +msgid "Prefer graphical DVB subtitles" +msgstr "DVB (grafikus) feliratok elÅ‘nyben részesítése" + +msgid "Prefer subtitles for hearing impaired" +msgstr "Hallássérülteknek szánt feliratok elÅ‘nyben részesítése" + +msgid "Prefer subtitles stored by service" +msgstr "A felirat választás mentése csatornánként" + +msgid "Preferred tuner" +msgstr "ElÅ‘nyben részesített tuner" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "Egy másuk USB adathordozó elÅ‘készítése készülék-frissítésre." + +msgid "Preparing... Please wait" +msgstr "ElÅ‘készítés... Kérem, várjon." + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "Nyomja le az INFO gombot a távírányítón a részletekért." + +msgid "Press MENU on your remote control for additional options." +msgstr "Nyomja le a MENÃœ gombot a távírányítón további opciókért." + +msgid "Press OK on your remote control to continue." +msgstr "Nyomja le az OK gombot a távirányítón a folytatáshoz." + +msgid "Press OK to activate the selected skin." +msgstr "Nyomja le az OK gombot az új skin aktiválásához." + +msgid "Press OK to activate the settings." +msgstr "Az OK gombbal aktiválhatja a beállításokat." + +msgid "Press OK to edit the settings." +msgstr "Az OK gombbal módosíthatja a beállításokat." + +#, python-format +msgid "Press OK to get further details for %s" +msgstr "Nyomja le az OK gombot több részletért %s kapcsán" + +msgid "Press OK to scan" +msgstr "Az OK gombbal indíthatja a keresést" + +msgid "Press OK to select a provider." +msgstr "Nyomja le az OK gombot egy szolgáltató kiválasztásához." + +msgid "Press OK to select satellites" +msgstr "" + +msgid "Press OK to select/deselect a CAId." +msgstr "Nyomja le az OK gombot a CAId ki/bejelöléséhez." + +msgid "Press OK to start the scan" +msgstr "Az OK gombbal indíthatja a keresést" + +msgid "Press OK to toggle the selection" +msgstr "" + +msgid "Press OK to toggle the selection." +msgstr "Nyomja le az OK gombot a jelölés változtatásához." + +msgid "Press yellow to set this interface as default interface." +msgstr "Nyomja le a sárga gombot, hogy ezt az interfészt jelölje alapértelmezettnek." + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "ElÅ‘zÅ‘" + +msgid "Preview" +msgstr "ElÅ‘nézet" + +msgid "Preview menu" +msgstr "ElÅ‘nézeti menü" + +msgid "Preview selected channel" +msgstr "KijelÅ‘lt csatorna elÅ‘nézete" + +msgid "Primary DNS" +msgstr "ElsÅ‘dl. DNS" + +msgid "Priority" +msgstr "Prioritás" + +msgid "Process" +msgstr "Futtatás" + +msgid "Progress" +msgstr "Folyamat" + +msgid "Progress bar left" +msgstr "Folyamat kicsi" + +msgid "Progress bar right" +msgstr "Folyamat kicsi" + +msgid "Properties of current title" +msgstr "Az aktuális tétel tulajdonságai" + +msgid "Protect services" +msgstr "Csatornák védelme" + +msgid "Protect setup" +msgstr "Menürendszer védelme" + +msgid "Provider" +msgstr "Szolgáltató" + +msgid "Provider to scan" +msgstr "LekeresendÅ‘ szolgáltató" + +msgid "Providers" +msgstr "Szolgáltatók" + +msgid "Put TV in standby" +msgstr "TV kikapcsolása" + +msgid "Put receiver in standby" +msgstr "Készülék kikapcsolása" + +msgid "Python frontend for /tmp/mmi.socket" +msgstr "Python felület a /tmp/mmi.socket-hez" + +msgid "Quick" +msgstr "Gyors" + +msgid "Quick zap" +msgstr "GyorsUGRÃS" + +msgid "RF output" +msgstr "RF kimenet" + +msgid "RGB" +msgstr "RGB" + +msgid "Radio" +msgstr "Rádió" + +msgid "Ram disk" +msgstr "Ram Disk" + +msgid "Random" +msgstr "Véletlenszerű" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "Adás besorolása - %d" + +msgid "Rating undefined" +msgstr "Nincs besorolás" + +msgid "Really close without saving settings?" +msgstr "Bezárjam mentés nélkül?" + +msgid "Really delete done timers?" +msgstr "Töröljem a befejezett idözítéseket?" + +msgid "Really exit the subservices quickzap?" +msgstr "Biztos ki szeretne lépni az alcsatorna gyorsUGRÃS módból?" + +msgid "Really reboot now?" +msgstr "Biztos újraindítsam most?" + +msgid "Really restart now?" +msgstr "Biztos újraindítsam most?" + +msgid "Really shutdown now?" +msgstr "Biztos lekapcsoljam most?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "Biztos benne, hogy frissíteni szeretné a frontprocesszort, majd újraindítani a készüléket?" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "Indulhat a frissítés, majd újraindítás?" + +msgid "Reboot" +msgstr "Újraindítás" + +msgid "Rec" +msgstr "Felvétel" + +msgid "Reception settings" +msgstr "Vételi beállítások" + +msgid "Record" +msgstr "Felvétel" + +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "A felvételi idÅ‘ rövidítve lett idÅ‘zítés ütközés miatt: %s" + +msgid "Recorded files..." +msgstr "Felvett filmek..." + +msgid "Recording" +msgstr "Felvétel" + +msgid "Recording in progress" +msgstr "Felvétel folyamatban" + +msgid "Recording paths" +msgstr "Felvételek tárhelye" + +msgid "Recording type" +msgstr "Felvétel típusa" + +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "Felvétel folyamatban, vagy hamarosan indulni fog!" + +msgid "Recordings" +msgstr "Felvételek" + +msgid "Recordings always have priority" +msgstr "A felvételnek mindíg elsÅ‘bbsége van" + +msgid "Red button..." +msgstr "Piros gomb..." + +msgid "Reenter new PIN" +msgstr "Új PIN-kód mégegyszer" + +msgid "Refresh rate" +msgstr "KépernyÅ‘-frissítés" + +msgid "Refresh rate selection." +msgstr "Frissítés kiválasztása." + +msgid "Regard deep standby as standby" +msgstr "A mély-készenlét legyen az alapértelmezett készenlét" + +msgid "Relative" +msgstr "relatív" + +msgid "Reload" +msgstr "Újratöltés" + +msgid "Reload black-/white lists" +msgstr "Fekete és fehérlisták újratöltése" + +msgid "Reloading bouquets and services..." +msgstr "Bouquet-ek és csatornák újratöltése..." + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "Szerviz-PIN megjegyzése" + +msgid "Remember these settings for each folder" +msgstr "Beállítások megtartása minden mappára" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "Figyelem, azt választotta, hogy az idÅ‘csűsztatás felvétele ne törlÅ‘djön." + +msgid "Remote control type" +msgstr "Gyermekzár típusa" + +msgid "Removal has completed." +msgstr "Az eltávolítás sikertelen." + +msgid "Remove" +msgstr "Eltávolítás" + +msgid "Remove a mark" +msgstr "Egy marker eltávolítása" + +msgid "Remove a nameserver entry" +msgstr "névszerver eltávolítása" + +msgid "Remove bookmark" +msgstr "bookmark eltávolítása" + +msgid "Remove completed timers after (days)" +msgstr "Lejárt idÅ‘zítések törlése ennyi nap után" + +msgid "Remove currently selected title" +msgstr "Kijelölt címek eltávolítása" + +msgid "Remove items from trash can after (days)" +msgstr "Kuka kiürítése ennyi nap után" + +msgid "Remove plugins" +msgstr "Pluginek eltávolítása" + +msgid "Remove title" +msgstr "Cím eltávolítása" + +msgid "Removing" +msgstr "Eltávolítás" + +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "%s mappaak eltávolítása sikertelen. (Lehet nem üres.)" + +msgid "Removing partition table" +msgstr "Partíciótábla újraolvasása" + +msgid "Rename" +msgstr "Ãtnevezés" + +msgid "Repeat" +msgstr "Ismétlés" + +msgid "Repeat type" +msgstr "Ismétlés típusa" + +msgid "Repeating event currently recording... What do you want to do?" +msgstr "IsmétlÅ‘dÅ‘ felvétel megy... Mit csináljak?" + +msgid "Repeats" +msgstr "Ismétlések" + +msgid "Require authentication for http streams" +msgstr "" + +msgid "Required medium type:" +msgstr "Szükséges hordozó típusa" + +msgid "Rereading partition table" +msgstr "Partíciótábla újraolvasása" + +msgid "Reserved" +msgstr "Fenntartva" + +msgid "Reset" +msgstr "Visszaállítás" + +msgid "Reset and renumerate title names" +msgstr "A tételek újraszámozása" + +msgid "Reset playback position" +msgstr "Lejátszási pozíció nullázása" + +msgid "Reset video enhancement settings to system defaults?" +msgstr "Videó-beállítások visszaállítása a gyári értékekre?" + +msgid "Reset video enhancement settings to your last configuration?" +msgstr "Videó-beállítások visszaállítása az elÅ‘bbi értékekre?" + +msgid "Resolution" +msgstr "Felbontás" + +msgid "Restart" +msgstr "Újraindítás" + +msgid "Restart GUI now?" +msgstr "Indítsam újra most a kezelÅ‘ felületet?" + +msgid "Restart enigma" +msgstr "A kezelÅ‘ felület újraindítása" + +msgid "Restart network" +msgstr "Hálózat újraindítása" + +msgid "Restart test" +msgstr "Teszt újraindítása" + +msgid "Restart your network connection and interfaces.\n" +msgstr "Hálózati kapcsolatok és interfészek újraindítása.\n" + +msgid "Restore" +msgstr "Visszaállítás" + +msgid "Restore backups" +msgstr "Mentések visszaállítása" + +msgid "Restore is running..." +msgstr "Visszaállítás folyamatban..." + +msgid "Restore system settings" +msgstr "Rendszerbeállítás visszaállítása" + +msgid "Restoring..." +msgstr "felvétel..." + +msgid "Resume from last position" +msgstr "Folytatás az utolsó pozíciótól" + +#, python-format +msgid "Resume position at %s" +msgstr "Lejátszás folytatása innen: %s" + +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Lejátszás folytatása" + +msgid "Return to movie list" +msgstr "Visszatérés a felvételek listájához" + +msgid "Return to previous service" +msgstr "Visszatérés az elÅ‘zÅ‘ csatornához" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +msgid "Rewind speeds" +msgstr "Visza-tekerési sebességek" + +msgid "Rewrap teletext subtitles" +msgstr "Teletext felirat sorainak átrendezése" + +msgid "Right" +msgstr "Jobb" + +msgid "Right from servicename" +msgstr "A csatornanév jobb oldalán" + +msgid "Roll-off" +msgstr "Roll-off" + +msgid "Romanian" +msgstr "Román" + +msgid "Root directory" +msgstr "Gyökérmappa" + +msgid "Rotor step position:" +msgstr "Motor léptetÅ‘ pozíció: " + +msgid "Rotor turning speed" +msgstr "Fogratómotor sebesség" + +msgid "Round start time on" +msgstr "Kerek kezdési idÅ‘" + +msgid "Russian" +msgstr "Orosz" + +msgid "S-Video" +msgstr "S-Video" + +msgid "SID" +msgstr "SID" + +msgid "SINGLE LAYER DVD" +msgstr "Egyrétegű DVD" + +msgid "SNR" +msgstr "SNR" + +msgid "SNR:" +msgstr "SNR:" + +msgid "SSID:" +msgstr "SSID:" + +msgid "Same resolution as skin" +msgstr "Ugyanaz a felbontás, mint a skin" + +msgid "Sat" +msgstr "Szo" + +msgid "Satellite" +msgstr "Műhold" + +msgid "Satellite dish setup" +msgstr "Műholdvevö eszköz beállítása" + +msgid "Satellite equipment" +msgstr "MűholvevÅ‘-berendezés" + +msgid "Satellite equipment setup" +msgstr "Műholdvevö eszköz beállítása" + +msgid "Satellite longitude:" +msgstr "Műhold pozíció:" + +msgid "Satellites" +msgstr "Műholdak" + +msgid "Satfinder" +msgstr "MűholdkeresÅ‘" + +msgid "Sats" +msgstr "Műholdak" + +msgid "Saturation" +msgstr "Színtelítettség" + +msgid "Saturday" +msgstr "Szombat" + +msgid "Save" +msgstr "Mentés" + +msgid "Save playlist" +msgstr "playlista mentése" + +msgid "Save timeshift file" +msgstr "IdÅ‘csúsztatás felvételének megtartása" + +msgid "Save timeshift file in movie directory" +msgstr "IdÅ‘csúsztatás felvételének megtartása a felvételek mappájában" + +msgid "Scaler sharpness" +msgstr "Skálázó élesség" + +msgid "Scaling mode" +msgstr "Skálázási mód" + +msgid "Scan" +msgstr "Keresés" + +msgid "Scan " +msgstr "Keresés" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, python-format +msgid "Scan %s" +msgstr "%s keresés" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, python-format +msgid "Scan %s band" +msgstr "%s sáv szkennelése" + +msgid "Scan additional SR" +msgstr "Egyéb SR-ek szkennelése" + +msgid "Scan files..." +msgstr "Fájlok keresése..." + +msgid "Scan wireless networks" +msgstr "Vezeték nélküli hálózat keresése" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "Vezeték nélküli hálózatok keresése, és csatlakoztatása a kiválasztott vezeték nélküli adapter segítségével.\n" + +#, python-format +msgid "Scanning %s..." +msgstr "%s keresés..." + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "Keresés folyamatban - %d%% kész" +msgstr[1] "Keresés folyamatban - %d%% kész" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "A keresés befejezÅ‘dött, és %d csatornát talált" +msgstr[1] "A keresés befejezÅ‘dött, és %d csatornát talált" + +msgid "Scanning failed!" +msgstr "A keresés sikertelen!" + +msgid "Scanning..." +msgstr "Keresés..." + +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "Műholdanként rendezett Lamedb keresése csatlakoztatott pozícionerhez" + +msgid "Search east" +msgstr "Léptetés kelet felé" + +msgid "Search west" +msgstr "Léptetés nyugat felé" + +msgid "Searching" +msgstr "Keresés" + +msgid "Searching east ..." +msgstr "Keresés keletre..." + +msgid "Searching for available updates. Please wait..." +msgstr "ElérhetÅ‘ frissítések keresése. Kérem, várjon..." + +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "Újonnan telepített, vagy eltávolított szoftvercsomagok keresése. Kérem, várjon..." + +msgid "Searching west ..." +msgstr "Keresés nyugatra..." + +msgid "Second cable of motorized LNB" +msgstr "" + +msgid "Secondary DNS" +msgstr "Másodl. DNS" + +msgid "Seek" +msgstr "Ugrás" + +msgid "Seek backward" +msgstr "Vissza kihagyása" + +msgid "Seek backward (enter time)" +msgstr "Ugrás visszafelé (adja meg az idÅ‘t)" + +msgid "Seek forward" +msgstr "ElÅ‘re kihagyása" + +msgid "Seek forward (enter time)" +msgstr "Ugrás elÅ‘re (adja meg az idÅ‘t)" + +msgid "Select" +msgstr "Megjelölés" + +msgid "Select CAId" +msgstr "CAId kijelölés" + +msgid "Select HDD" +msgstr "Háttértár kiválasztása" + +msgid "Select a bouquet" +msgstr "Felvétel kiválasztása" + +msgid "Select a movie" +msgstr "Felvétel kiválasztása" + +msgid "Select a network adapter" +msgstr "Válasszon hálózati adaptert" + +msgid "Select a skin" +msgstr "Felvétel kiválasztása" + +msgid "Select a tuner" +msgstr "Felvétel kiválasztása" + +msgid "Select a wireless network" +msgstr "Válasszon vezeték nélküli hálózatot" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +msgid "Select an image to be downloaded" +msgstr "Válasszon egy letöltendÅ‘ image-t" + +msgid "Select audio track" +msgstr "Hangsáv kiválasztása" + +msgid "Select backup files" +msgstr "Válasszon mentés-fájlokat" + +msgid "Select backup location" +msgstr "Válasszon mentés-helyet" + +msgid "Select channel to record from" +msgstr "Csatorna kiválasztása melyrÅ‘l fel szeretne venni" + +msgid "Select copy destination for:" +msgstr "Másolási cél kiválasztása ehhez:" + +msgid "Select default EPG type..." +msgstr "Alapértelmezett EPG típus-választás..." + +msgid "Select desired image from feed list" +msgstr "Válassza ki a listából a kívánt image-et" + +msgid "Select destination for:" +msgstr "Cél kiválasztása ehhez:" + +msgid "Select files for backup." +msgstr "Biztonsági mentésbe helyezendÅ‘ fájlok." + +msgid "Select files/folders to backup" +msgstr "Válasszon fájlokat/mappákat a biztonsági mentéshez" + +msgid "Select input device" +msgstr "Válasszon beviteli eszközt" + +msgid "Select input device." +msgstr "Válasszon beviteli eszközt." + +msgid "Select interface" +msgstr "Interfész kiválasztása" + +msgid "Select location" +msgstr "Válassza ki a helyet" + +msgid "Select movie" +msgstr "Felvétel kiválasztása" + +msgid "Select provider to add..." +msgstr "Válasszon hozzáadandó szolgáltatót..." + +msgid "Select refresh rate" +msgstr "Válassza ki a frissítési arányt" + +msgid "Select satellites" +msgstr "" + +msgid "Select service to add..." +msgstr "Válasszon hozzáadandó csatornát..." + +msgid "Select sort method:" +msgstr "" + +msgid "Select target folder" +msgstr "Válassza ki a célmappaat" + +msgid "Select the movie path" +msgstr "válassza ki a felvételek útvonalát" + +msgid "Select upgrade source" +msgstr "Válasszon szerkesztendÅ‘ frissítési forrást" + +msgid "Select upgrade source to edit." +msgstr "Válasszon szerkesztendÅ‘ frissítési forrást" + +msgid "Select video input with up/down buttons" +msgstr "Válasszon videó bemenetet a FEL/LE gombokkal" + +msgid "Select video mode" +msgstr "Válassza ki a video módot" + +msgid "Select wireless network" +msgstr "Válasszon vezeték nélküli hálózatot" + +msgid "Select your provider, and press OK to start the scan" +msgstr "Válassza ki a szolgáltatóját, nyomja le az OK-t" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +msgid "Send DiSEqC only on satellite change" +msgstr "DiSEqC parancs küldésése csak műholdváltáskor" + +msgid "Separate titles with a main menu" +msgstr "Címek elválasztása egy fÅ‘menüvel" + +msgid "Sequence repeat" +msgstr "Szekvencia ismétlés" + +msgid "Serbian" +msgstr "Szerb" + +msgid "Service" +msgstr "Csatorna információ" + +msgid "Service has been added to the favourites." +msgstr "A csatornát hozzáadtam a kedvencekhez." + +msgid "Service has been added to the selected bouquet." +msgstr "A csatornát hozzáadtam a kiválasztott bouquethez." + +msgid "Service info" +msgstr "Csatorna" + +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Érvénytelen csatorna!\n" +"(PMT olvasási idÅ‘túllépés)" + +msgid "Service name" +msgstr "Csatornanév" + +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"A csatorna nem található!\n" +"(Nincs SID a PAT-ban)" + +msgid "Service reference" +msgstr "Referencia szám" + +msgid "Service scan" +msgstr "Csatornakeresés" + +msgid "Service searching" +msgstr "Csatornakeresés" + +msgid "Service title mode" +msgstr "Csatornanév mód" + +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"A csatorna nem elérhetÅ‘!\n" +"Kérem, ellenÅ‘rizze a tuner beállításokat." + +msgid "Services" +msgstr "Csatornák" + +msgid "Set default" +msgstr "" + +msgid "Set end time" +msgstr "Befejezési idÅ‘" + +msgid "Set fixed" +msgstr "Beállítás fixre" + +msgid "Set fps for external subtitles" +msgstr "KülsÅ‘ feliratokhoz FPS" + +msgid "Set interface as default Interface" +msgstr "Jelölje meg mint alapértelmezett interfészt" + +msgid "Set limits" +msgstr "Limitek beállítása" + +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "Esemény-haladás megjelenítése csatornalistában" + +msgid "Set time window to 1 hour" +msgstr "IdÅ‘ablak beállítása 1 órára" + +msgid "Set time window to 2 hours" +msgstr "IdÅ‘ablak beállítása 2 órára" + +msgid "Set time window to 3 hours" +msgstr "IdÅ‘ablak beállítása 3 órára" + +msgid "Set time window to 4 hours" +msgstr "IdÅ‘ablak beállítása 4 órára" + +msgid "Set time window to 5 hours" +msgstr "IdÅ‘ablak beállítása 5 órára" + +msgid "Set time window to 6 hours" +msgstr "Az idÅ‘ablak " + +msgid "Set voltage and 22KHz" +msgstr "Feszültség és 22KHz beállítása" + +msgid "Settings" +msgstr "Beállítások" + +msgid "Setup" +msgstr "Beállítások" + +msgid "Setup menu" +msgstr "Beállítások menü" + +msgid "Setup mode" +msgstr "Beállítás módja" + +msgid "Setup your positioner" +msgstr "Forgatómotor beállítása" + +msgid "Setup your satellite equipment" +msgstr "MűholvevÅ‘-berendezés" + +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "Biztos benne, hogy az USB meghajtón lévÅ‘ %s image-et flash-elni szeretné a készülékre?" + +msgid "Sharpness" +msgstr "Élesség" + +msgid "Short filenames" +msgstr "Rövid fájlnevek" + +msgid "Show EIT now/next in infobar" +msgstr "Most/Következik információ EIT-bÅ‘l származzon" + +msgid "Show EPG for current channel..." +msgstr "Az aktuális csatorna EPG-jének megjelenítése..." + +msgid "Show EPG..." +msgstr "EPG megnyitása..." + +msgid "Show Games show" +msgstr "Játék/Show" + +msgid "Show SNR percentage instead of dB value" +msgstr "A Jel/Zaj viszony (SNR) megjelenítése százalékban dB helyett" + +msgid "Show VCR scart on main menu" +msgstr "VCR Scart opció megjelenítése a fÅ‘menüben" + +msgid "Show WLAN status" +msgstr "A vezeték nélküli hálózat állapotának megjelenítése" + +msgid "Show animation while busy" +msgstr "Animáció megjelenítése amikor a szoftver foglalt" + +msgid "Show background in radio mode" +msgstr "Rádió módban háttérkép megjelenítése" + +msgid "Show bouquet selection menu" +msgstr "Boquet-választó menü megjelenítése" + +msgid "Show busy indicator when the system is busy." +msgstr "A foglaltság animált ikonnal történÅ‘ megjelenítése." + +msgid "Show channel numbers in channel selection" +msgstr "Csatornaszámok megjelenítése a csatornalistában" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "Kódolási információ megjelenítése az infosorban" + +msgid "Show detailed event info" +msgstr "Részletes esemény információ" + +msgid "Show event details" +msgstr "részletes adatok megjelenítése" + +msgid "Show event-progress in channel selection" +msgstr "Esemény-haladás megjelenítése csatornalistában" + +msgid "Show extended description" +msgstr "bÅ‘vített leírás megjelenítése" + +msgid "Show extensions..." +msgstr "BÅ‘vítmények megtekintése..." + +msgid "Show icon for new/unseen items" +msgstr "Új elemeknél ikon megjelenítése" + +msgid "Show in extensions menu" +msgstr "Megjelenítés a bÅ‘vítmények menüjében" + +msgid "Show info" +msgstr "Info megjelenítése" + +msgid "Show info line" +msgstr "Információs sáv megjelenítése" + +msgid "Show infobar on channel change" +msgstr "Információs sáv megjelenítése csatornaváltáskor" + +msgid "Show infobar on event change" +msgstr "Információs sáv megjelenítése új műsor esetén" + +msgid "Show infobar on skip forward/backward" +msgstr "Információs sáv megjelenítése ElÅ‘re/Hátra ugrás esetén" + +msgid "Show latest commits on sourceforge" +msgstr "A legutolsó változási naplók megtekintése a sourceforge-ról" + +msgid "Show message when recording starts" +msgstr "Ãœzenet megjelenítése amikor a felévtel indul" + +msgid "Show movie lengths in movielist" +msgstr "A felvételek hosszának megjelenítése a felvétel-listában" + +msgid "Show multi channel EPG" +msgstr "Több csatornás EPG megjelenítése" + +msgid "Show picons in channel list" +msgstr "Pikonok mejelenítése a csatornalistában" + +msgid "Show positioner movement" +msgstr "A forgatómotor mozgásának megjelenítése" + +msgid "Show screensaver" +msgstr "KépernyÅ‘kímélÅ‘ megjelenítése" + +msgid "Show second infobar" +msgstr "Második információs sáv megjelenítése" + +msgid "Show service type icons" +msgstr "Csatorna típusának megjelenítése" + +msgid "Show services beginning with" +msgstr "Csatornák, melyek elsÅ‘ betűje" + +msgid "Show shutdown menu" +msgstr "kikapcsolási menü" + +msgid "Show single service EPG" +msgstr "Egy csatorna EPG-jének megjelenítése" + +msgid "Show status icons in Movielist" +msgstr "Státusz ikonok megjelenítése a listában" + +msgid "Show status icons in movie list" +msgstr "Ãllapot-jelzÅ‘ ikonok megjelenítése a felvétel-listában" + +msgid "Show status icons in movielist" +msgstr "Ãllapot-jelzÅ‘ ikonok megjelenítése a felvétel-listában" + +msgid "Show tag menu" +msgstr "cimke menü megjelenítése" + +msgid "Show the radio player..." +msgstr "Rádió csatornalista..." + +msgid "Show the tv player..." +msgstr "TV csatorna lista..." + +msgid "Show warning when timeshift is stopped" +msgstr "Figyelmeztetés idÅ‘csúsztatás megálításakor" + +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Megjeleníti a vezeték nélküli kapcsolat aktuális állapotát.\n" + +msgid "Shuffle playlist" +msgstr "playlista megkeverése" + +msgid "Shutdown" +msgstr "Kikapcsolás" + +msgid "Shutdown when in Standby" +msgstr "Kikapcsolás készenlétbe lépés után" + +msgid "Side by side" +msgstr "Kétoldalt" + +msgid "Signal OK, proceeding" +msgstr "Jelszint rendben, kezdem" + +msgid "Signal quality" +msgstr "JelminÅ‘ség" + +msgid "Signal strength:" +msgstr "JelerÅ‘sség:" + +msgid "Signal: " +msgstr "Jel:" + +msgid "Similar" +msgstr "Ismétlések" + +msgid "Similar broadcasts:" +msgstr "Ismétlések, hasonló adások:" + +msgid "Simple" +msgstr "Egyszerű" + +msgid "Simple titleset (compatibility for legacy players)" +msgstr "Egyszerű tétellista (kompatibilis régebbi lejátszókal)" + +msgid "Single" +msgstr "Egyetlen" + +msgid "Single EPG" +msgstr "Műsorújság" + +msgid "Single satellite" +msgstr "Egyetlen műhold" + +msgid "Single step (GOP)" +msgstr "Lépés (GOP)" + +msgid "Single transponder" +msgstr "Egyetlen transzponder" + +msgid "Site latitude" +msgstr "Földrajzi szélességi fok" + +msgid "Site longitude" +msgstr "Földrajzi hosszúsági fok" + +msgid "Skin" +msgstr "Skin" + +msgid "Skins" +msgstr "Skin-ek" + +msgid "Skip empty services" +msgstr "Ãœres csatornák átugrása" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "Internet-kapcsolat ellenÅ‘rzésének mellÅ‘zése (automatikus csomag-telepítés is tiltva lesz)" + +msgid "Sleep timer" +msgstr "Elalvás idÅ‘zítÅ‘" + +msgid "SleepTimer Configuration" +msgstr "Elalvás idÅ‘zítÅ‘ beállításai" + +msgid "Sleeptimer" +msgstr "Elalvás idÅ‘zítÅ‘" + +msgid "Slide picture in loop" +msgstr "képek megjelenítése végtelenül" + +msgid "Slide show interval (sec.)" +msgstr "Slideshow intervallum (mp.)" + +#, python-format +msgid "Slot %d" +msgstr "%d nyílás" + +msgid "Slovak" +msgstr "Szlovák" + +msgid "Slovenian" +msgstr "Szolvén" + +msgid "Slow" +msgstr "Lassú" + +msgid "Slow motion speeds" +msgstr "Lassítási sebességek" + +msgid "Small progress" +msgstr "Folyamatban" + +msgid "Social/Political/Economics" +msgstr "Szociális/Politika/Gazdaság" + +msgid "SoftCam / CI" +msgstr "SoftCam/CI" + +msgid "Softcam type" +msgstr "Szoftver" + +msgid "Software" +msgstr "Szoftver" + +msgid "Software management" +msgstr "Szoftverkezelés" + +msgid "Software manager setup" +msgstr "Szoftverkezelés" + +msgid "Software restore" +msgstr "Szoftver visszaállítás" + +msgid "Software update" +msgstr "Szoftver frissítés" + +msgid "Softwaremanager information" +msgstr "Szoftverkezeló információ" + +msgid "Some plugins are not available:\n" +msgstr "Egyes pluginek nem elérhetÅ‘ek:\n" + +#, python-format +msgid "Sorry, %s has not been installed!" +msgstr "Sajnálom, a %s nincs feltelepítve!" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "Mappák törlése csak a kukába helyezéssel lehetséges." + +msgid "Sorry, no backups found!" +msgstr "Nem található rendszerbeállítás mentés!" + +msgid "Sorry, no details available!" +msgstr "Nincs több elérhetÅ‘ információ!" + +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"A biztonsági mentés helyén nincs írási jogosultság.\n" +"Kérem, válasszon új mappát." + +msgid "Sort" +msgstr "Rendezés" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Rendez: ABC" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort time" +msgstr "Rendez: IdÅ‘" + +msgid "Sound" +msgstr "Hang" + +msgid "Sound carrier" +msgstr "HangvivÅ‘" + +msgid "Source request" +msgstr "Forrás-kérés" + +msgid "South" +msgstr "Dél" + +msgid "Spanish" +msgstr "Spanyol" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "Az tétlenség figyelmen kívül hagyása eddig az idÅ‘pontig történjen" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "Az tétlenség figyelmen kívül hagyása ettÅ‘l az idÅ‘ponttól történjen" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "Inaktivitás figyelmen kívül hagyása megadott idÅ‘szakban" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +msgid "Split preview mode" +msgstr "Megosztott elÅ‘nézeti mód" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "Sport" + +msgid "Standard" +msgstr "hagyományos" + +msgid "Standart list" +msgstr "" + +msgid "Standby" +msgstr "Készenlét" + +msgid "Standby / restart" +msgstr "Kikapcsolás" + +msgid "Standby after current event" +msgstr "Készenlét az aktuális műsor végén" + +#, python-format +msgid "Standby fan %d PWM" +msgstr "%d. Vent. készenlét PWM" + +#, python-format +msgid "Standby fan %d voltage" +msgstr "%d. Vent. készenlét feszültség" + +msgid "Standby in " +msgstr "Készenlétbe: " + +msgid "StandbyLED" +msgstr "" + +msgid "Start from the beginning" +msgstr "Indítsa az elejétÅ‘l" + +msgid "Start offline decode" +msgstr "Offline dekódolás" + +msgid "Start recording?" +msgstr "Indítsam a felvételt?" + +msgid "Start test" +msgstr "Teszt indítása" + +msgid "Start time" +msgstr "Kezdési idÅ‘pont" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "Inaktivitás figyelmen kívül hagyása ettÅ‘l:" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +msgid "Start timeshift" +msgstr "idÅ‘csúsztatás elindítása" + +msgid "Start with list screen" +msgstr "Indítás lista-nézettel" + +msgid "Starting on" +msgstr "Mely dátumtól?" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +msgid "Step east" +msgstr "Léptetés kelet felé" + +msgid "Step west" +msgstr "Léptetés nyugat felé" + +msgid "Stepped east" +msgstr "Keletre léptetve" + +msgid "Stepped west" +msgstr "Nyugatra léptetve" + +msgid "Stop" +msgstr "Ãllj" + +msgid "Stop PiP" +msgstr "Kép-a-Képben leállítása" + +msgid "Stop current event and disable coming events" +msgstr "Futó idÅ‘zítés és a soron következÅ‘k leállítása" + +msgid "Stop current event but not coming events" +msgstr "Futó idÅ‘zítés leállítása de a soron következÅ‘k futtatása" + +msgid "Stop entry" +msgstr "bejegyzés leállítása" + +msgid "Stop playing this movie?" +msgstr "Megállítsam ezt a lejátszást?" + +msgid "Stop recording" +msgstr "Felvétel leállítása" + +msgid "Stop recording and delete" +msgstr "Felvétel leállítás és törlés" + +msgid "Stop service on return to movie list" +msgstr "" + +msgid "Stop test" +msgstr "Teszt megállítása" + +msgid "Stop testing plane after # failed transponders" +msgstr "Próbálkozások befejezése ennyi sikertelen transzponder után" + +msgid "Stop testing plane after # successful transponders" +msgstr "Próbálkozások befejezése ennyi sikeres transzponder után" + +msgid "Stop timer recording" +msgstr "Az idÅ‘zített felvétel megállítása" + +msgid "Stop timeshift" +msgstr "idÅ‘csúsztatás leállítása" + +msgid "Stop timeshift?" +msgstr "Leállítsam az idÅ‘csúsztatást?" + +msgid "Stopped" +msgstr "Leállítva" + +msgid "Store at index" +msgstr "Mentés ide:" + +msgid "Store position" +msgstr "Pozíció tárolása" + +msgid "Stored position" +msgstr "Tárolt pozíció" + +msgid "Stream" +msgstr "Adatfolyam" + +msgid "Stream request" +msgstr "Adatfolyam kérés" + +msgid "Strongest position" +msgstr "LegerÅ‘sebb pozíció" + +msgid "Subservice list..." +msgstr "Alcsatorna lista..." + +msgid "Subservices" +msgstr "Alcsatornák" + +msgid "Subtitle Quickmenu" +msgstr "Felirat gyorsmenü" + +msgid "Subtitle alignment" +msgstr "Egyedi felirat elrendezés" + +msgid "Subtitle border width" +msgstr "Betűk körvonal-vastagsága" + +msgid "Subtitle delay when timing is bad" +msgstr "Felirat csúsztatása rossz idÅ‘zítés esetén" + +msgid "Subtitle delay when timing lacks" +msgstr "Felirat idÅ‘tartama, ha nincs idÅ‘zítve" + +msgid "Subtitle font size" +msgstr "Betűméret" + +msgid "Subtitle language selection 1" +msgstr "ElsÅ‘dleges elÅ‘nyben részesített felirat" + +msgid "Subtitle language selection 2" +msgstr "Másodlagos elÅ‘nyben részesített felirat" + +msgid "Subtitle language selection 3" +msgstr "Harmadlagos elÅ‘nyben részesített felirat" + +msgid "Subtitle language selection 4" +msgstr "Negyedleges elÅ‘nyben részesített felirat" + +msgid "Subtitle position" +msgstr "Felirat elhelyezése" + +msgid "Subtitle selection" +msgstr "Felirat kiválasztása" + +msgid "Subtitle selection..." +msgstr "Felirat választás..." + +msgid "Subtitle settings" +msgstr "Feliratozás" + +msgid "Subtitles" +msgstr "Feliratok" + +msgid "Sun" +msgstr "Vas" + +msgid "Sunday" +msgstr "Vasárnap" + +msgid "Swap PiP and main picture" +msgstr "Kép-a-Képben és fÅ‘kép megcserélése" + +msgid "Swap services" +msgstr "Csatornák cserélése" + +msgid "Swedish" +msgstr "Svéd" + +msgid "Switch TV to correct input" +msgstr "TV-bemenet kiválasztása" + +msgid "Switch between filelist/playlist" +msgstr "Fájllista és playlista közötti váltás" + +msgid "Switch between normal mode and list mode" +msgstr "Hagyományos / listanézet váltás" + +msgid "Switch to HDMI in mode" +msgstr "" + +msgid "Switch to filelist" +msgstr "Váltás fájllistára" + +msgid "Switch to next channel" +msgstr "" + +msgid "Switch to next channel in history" +msgstr "Köv. csatorna az elÅ‘zményekben" + +msgid "Switch to next sub service" +msgstr "Ugrás a köv. alcsatornára" + +msgid "Switch to playlist" +msgstr "kapcsolás playlistára" + +msgid "Switch to previous channel" +msgstr "Ugrás az elÅ‘zÅ‘ alcsatornára" + +msgid "Switch to previous channel in history" +msgstr "ElÅ‘zÅ‘ csatorna az elÅ‘zményekben" + +msgid "Switch to previous sub service" +msgstr "Ugrás az elÅ‘zÅ‘ alcsatornára" + +msgid "Switchable tuner types:" +msgstr "Váltható tuner típusok:" + +msgid "Symbol rate" +msgstr "Szimbólumsebesség" + +msgid "Symbol rate:" +msgstr "Szimbólumsebesség:" + +msgid "Sync failure moving back to origin !" +msgstr "Szinkronhiba 0-hoz visszatérésk!" + +msgid "System" +msgstr "Rendszer" + +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "" +"Fordította: MediaVox-Team\n" +"Kiegészítette, véglegesítette: robertut\n" +"A magyar nyelvű fájl kiegészítése az OpenPLI projekt-hez készült.\n" +"BÅ‘vebb információ: http://openpli.org" + +msgid "TS file is too large for ISO9660 level 1!" +msgstr "A TS fájl túl nagy az 'ISO9660 level 1' szabvány szerint!" + +msgid "TSID" +msgstr "TSID" + +msgid "TV physical address report" +msgstr "TV fizikai port-cím" + +msgid "TXT PID" +msgstr "Teletext PID" + +msgid "Table of contents for collection" +msgstr "Gyűjtemény tartalmának táblázata" + +msgid "Tags" +msgstr "Metaadatok" + +msgid "Teletext subtitle color" +msgstr "Teletext felirat színe:" + +msgid "Temperature and fan control" +msgstr "HÅ‘mérséklet és ventilátor beállításai" + +msgid "Terrestrial" +msgstr "Földi" + +msgid "Terrestrial provider" +msgstr "Földi szolgáltató" + +msgid "Test DiSEqC settings" +msgstr "DiSEqC beállítások tesztelése" + +msgid "Test mode" +msgstr "Teszt mód" + +msgid "Test the network configuration of your receiver.\n" +msgstr "A készülék hálózati konfigurációjának ellenÅ‘rzése.\n" + +msgid "Test type" +msgstr "Teszt típusa" + +msgid "Text color" +msgstr "szöveg színe" + +msgid "Thai" +msgstr "Thái" + +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"Köszönöm, hogy használta a Varázslót.\n" +"Kérem, nyomja le az OK gombot a folytatáshoz." + +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"Köszönjük hogy használta a Varázslót. A készüléke most már be van állítva.\n" +"Az OK gomb megnyomása után máris használatba veheti a készülékét." + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "A DVD szabvány nem támogatja a H.264 (HDTV) videó streamet. Szeretne ehelyett létrehozni egy speciális formátumú adat DVD-t (mely azonban nem játszható le a hagyományos lejátszókban)?" + +msgid "The PIN code has been changed successfully." +msgstr "A PIN-kódot sikeresen megváltoztatta." + +msgid "The PIN codes you entered are different." +msgstr "A megadott PIN-kódok eltérnek egymástól." + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" +"Az USB meghajtó bootolható lett.\n" +"Most már tölthetÅ‘ rá NFI fájl!" + +msgid "The backup failed. Please choose a different backup location." +msgstr "A mentés nem sikerült. Válasszon másik célt ahova menthetem." + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" +"Az aktuális beta image nem stabil\n" +"BÅ‘vebb információk itt: %s" + +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"%s mappa nem írható.\n" +"Kérem, válasszon egy írási jogosultságokkal rendelkezÅ‘ mappát." + +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"A következÅ‘ eszközt találtam:\n" +"\n" +"%s\n" +"\n" +"Fel szeretné írni az USB flashert erre a stickre?" + +msgid "The following files were found..." +msgstr "Az alábbi fájlokat találta a rendszer..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "Az md5 ellenÅ‘rzés sikertelen, a fájl valószínűleg sérült!" + +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"A NetworkWizard bÅ‘vítmémy nincs feltelepítve!\n" +"Kérem, telepítse fel." + +#, python-format +msgid "The path %s already exists." +msgstr "A %s útvonal már létezik." + +msgid "The pin code you entered is wrong." +msgstr "A megadott PIN kód helytelen." + +#, python-format +msgid "The results have been written to %s." +msgstr "Az eredmények ide lettek kiírva: %s" + +msgid "The sleep timer has been activated." +msgstr "Az elalvás idÅ‘zítÅ‘ aktiválva lett." + +msgid "The sleep timer has been disabled." +msgstr "Az elalvásidÅ‘zítÅ‘ ki van kapcsolva" + +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"A Softwaremanagement bÅ‘vítmémy nincs feltelepítve!\n" +"Kérem, telepítse fel." + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "Az aktuális beta image állapota nem ellenÅ‘rizhetÅ‘, mert a %s oldal nem elérhetÅ‘." + +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "A timer fájl (timers.xml) sérült és nem lehet betölteni." + +msgid "The user interface of your receiver is restarting" +msgstr "A kezelÅ‘felület újraindítása folyamatban van" + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" +"A kezelÅ‘felület újraindítása folyamatban van\n" +"egy, a mytest.py fájlban lévÅ‘ hiba miatt" + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"A vezeték nélküli bÅ‘vítmény nincs telepítve!\n" +"Kérem, telepítse fel elÅ‘bb, majd folytassa." + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"A wireless LAN plugin nincs telepítve!\n" +"Kérem, telepítse." + +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "A varázsló el tudja menteni a jelenlegi beállításait. szeretne most egy mentést csinálni?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "A Varázsló talált egy korábbi mentést. Szeretné visszaállítani a beállításokat %s-bÅ‘l?" + +msgid "The wizard is finished now." +msgstr "A varázsló befejezte feladatát." + +msgid "There are at least " +msgstr "Legalább" + +#, python-format +msgid "There are at least %s updates available." +msgstr "Legalább %s frissítés elérhetÅ‘." + +msgid "There are currently no outstanding actions." +msgstr "Semmilyen kiemelkedÅ‘ esemény nem következik." + +msgid "There are no updates available." +msgstr "Nincs elérhetÅ‘ frissítés." + +msgid "There is no signal to lock on !" +msgstr "Nincs jel!" + +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"Nincs elég hely a kiválasztott partíción.\n" +"Biztos folytatni szeretné?" + +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "Ez a DVD RW medium már meg van formázva - a lemez újraformázásával minden adat el fog veszni." + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" + +msgid "This plugin is installed." +msgstr "A plugin telepítve van." + +msgid "This plugin is not installed." +msgstr "A plugin nincs telepítve." + +msgid "This plugin will be installed." +msgstr "A plugin telepítve lesz." + +msgid "This plugin will be removed." +msgstr "A plugin el lesz távolítva." + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "Ez a készülék nem képes %s folyamokat dekódolni!" + +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"Ez a teszt leellenÅ‘rzi a beállított névszervereket.\n" +"Ha eredményként \"nem igazolt\", akkor:\n" +"- ellenÅ‘rizze a DHCP beállítást, a kábelezért és az adapter beállításait\n" +"- ha a névszervert kézzel állította be, akkor ellenÅ‘rizze a bejegyzéseket a \"Névszerver\" beállításokban" + +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Ez a teszt leellenÅ‘rzi hogy a LAN-Adapterhez van-e hálózati kábel csatlakoztatva.\n" +"Ha válaszként a \"nincs csatlakoztatva\" üzenetet kapja, akkor:\n" +"- van-e kábel csatlakoztatva\n" +"- ellenÅ‘rizze hogy a csatlakoztatott kábel szakadt-e" + +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Ez a teszt leellenÅ‘rzi hogy van-e érvényes IP cím a LAN Adapterben.\n" +"Ha válaszként a \"nem igazolt\" választ kapja, akkor:\n" +"- nem található érvényes IP cím\n" +"- ellenÅ‘rizze a DHCP beállításokat, a kábelezést és az interfész beállításait" + +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"Ez a teszt leellenÅ‘rzi hogy a hálótzati interfész be lett-e állítva az automatikus IP cím lekéréséhez DHCP-vel.\n" +"Ha válaszként a \"kikapcsolva\" üzenetet kapja, akkor:\n" +"- a LAN Adapter csak manuális IP cím megadására lett beállítva\n" +"- ellenÅ‘rizze, hogy helyes IP adatokat adott meg az Adapter beállításaiban\n" +"Ha válaszként a \"engedélyezve\" üzenetet kapja, akkor:\n" +"- ellenÅ‘rizze hogy a hálózatában létezik-e jól beállított és működÅ‘ DHCP szerver." + +msgid "This test detects your configured LAN adapter." +msgstr "Ez a teszt leellenÅ‘rzi a beállított hálótzati adaptert." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" +"Ez által minden pozíció újra lesz számítva a forgatómotorban, az elÅ‘zÅ‘ értékek és finomhangolások elvészhetnek!\n" +"Biztos benne?" + +msgid "Three" +msgstr "Három" + +msgid "Threshold" +msgstr "Threshold" + +msgid "Thu" +msgstr "Csü" + +msgid "Thumbnails" +msgstr "Ikonok" + +msgid "Thursday" +msgstr "Csütörtök" + +msgid "Time" +msgstr "IdÅ‘" + +msgid "Time scale" +msgstr "IdÅ‘skála" + +msgid "Timer" +msgstr "IdÅ‘zítÅ‘" + +msgid "Timer Overview" +msgstr "" + +msgid "Timer edit" +msgstr "IdÅ‘zítÅ‘ módosítása" + +msgid "Timer editor" +msgstr "IdÅ‘zítések" + +msgid "Timer entry" +msgstr "IdÅ‘zítés megadása" + +msgid "Timer log" +msgstr "IdÅ‘zítÅ‘ lognapló" + +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"IdÅ‘zítési átfedést találtam a timers.xml fájlban!\n" +"Kérem, ellenÅ‘rizze!" + +msgid "Timer overview" +msgstr "IdÅ‘zítések áttekintése" + +msgid "Timer recording location" +msgstr "IdÅ‘ztett felvételek:" + +msgid "Timer sanity error" +msgstr "IdÅ‘zítési logikai hiba" + +msgid "Timer selection" +msgstr "IdÅ‘zítés kiválasztása" + +msgid "Timer selection..." +msgstr "IdÅ‘zítés kiválasztása..." + +msgid "Timer type" +msgstr "IdÅ‘zítés típusa" + +msgid "Timeshift" +msgstr "IdÅ‘csúsztatás" + +msgid "Timeshift Live" +msgstr "" + +msgid "Timeshift location" +msgstr "IdÅ‘csúsztatás tárhelye" + +msgid "Timeshift not possible!" +msgstr "IdÅ‘csúsztatás nem lehetséges!" + +msgid "Timezone" +msgstr "IdÅ‘zóna" + +msgid "Title" +msgstr "Cím" + +msgid "Title properties" +msgstr "Tétel tulajdonságai" + +msgid "Titleset mode" +msgstr "Tétel-szett mód" + +msgid "To audio selection" +msgstr "Hangcsatorna kiválasztása" + +msgid "To subtitle selection" +msgstr "Felirat kiválasztása" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" +"A készülék szoftverének frissítéséhez, az alábbi lépéseket tegye meg:\n" +"1) Ãramtalanítsa a készüléket, majd csatlakoztassa az USB-s adathordozót.\n" +"2) Helyezze áram alá a készüléket, közben tartsa lenyomva az elÅ‘lapon a LE gombot 10 másodpercig.\n" +"3) Várjon a boot-olás befejezésére, majd kövesse a Varázsló utasításait." + +msgid "Today" +msgstr "Ma" + +msgid "Toggle a cut mark at the current position" +msgstr "jelenlegi pozícióra vágási jelet tenni" + +msgid "Tone amplitude" +msgstr "HangerÅ‘" + +msgid "Tone mode" +msgstr "Tone" + +msgid "Toneburst" +msgstr "Toneburst" + +msgid "Toneburst A/B" +msgstr "Toneburst A/B" + +msgid "Top and bottom" +msgstr "Teteje és Alja" + +msgid "Track" +msgstr "Sáv" + +msgid "Translation" +msgstr "Fordítás" + +msgid "Translation:" +msgstr "Fordítás:" + +msgid "Translations" +msgstr "Magyar fordítás" + +msgid "Transmission mode" +msgstr "Adási mód" + +msgid "Transponder" +msgstr "Transzponder" + +msgid "Transponder type" +msgstr "Transzponder típusa" + +msgid "Trash can" +msgstr "Törölt tételek" + +msgid "Tries left:" +msgstr "HátralevÅ‘ próbálkozások száma:" + +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Felhasználói transzponderek keresése a kábeles hálózaton.. Kérem, várjon..." + +msgid "Trying to download a new packetlist. Please wait..." +msgstr "Az új csomaglitsa letöltése folyamatban. Kérem, várjon..." + +msgid "Tue" +msgstr "Ked" + +msgid "Tuesday" +msgstr "Kedd" + +msgid "Tune" +msgstr "Hangolás" + +msgid "Tune and focus" +msgstr "Hangolás és Fókusz" + +msgid "Tune failed!" +msgstr "Hangolás sikertelen!" + +msgid "Tuner" +msgstr "Tuner" + +msgid "Tuner configuration" +msgstr "Tuner beállítások" + +msgid "Tuner is not supported" +msgstr "" + +msgid "Tuner slot" +msgstr "Tuner nyílás" + +msgid "Tuner status" +msgstr "Tuner" + +#, python-format +msgid "Tuner status %s" +msgstr "Tuner állapota %s" + +msgid "Tuner type" +msgstr "Tuner típus" + +msgid "Turkish" +msgstr "Török" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +msgid "Two" +msgstr "KettÅ‘" + +msgid "Type" +msgstr "Típus" + +msgid "Type of scan" +msgstr "Keresés típusa" + +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "USALS kalibrálás" + +msgid "USB stick" +msgstr "USB Stick" + +msgid "USB stick wizard" +msgstr "USB-s hordozó Varázsló" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Az automatikus frissítés folyamatban van\n" +"Ez eltarthat néhány percig\n" +"Kérem, várjon, a készüléke hamarosan újraindul" + +msgid "Undo install" +msgstr "Telepítés visszavonása" + +msgid "Undo uninstall" +msgstr "Eltávolítás visszavonása" + +msgid "Unencrypted" +msgstr "Kódolatlan" + +msgid "UnhandledKey" +msgstr "UnhandledKey" + +msgid "Unicable" +msgstr "Unicable" + +msgid "Unicable LNB" +msgstr "Unicable fej" + +msgid "Unicable Martix" +msgstr "Unicable Mátrix" + +msgid "Uninstall" +msgstr "Eltávolítás" + +msgid "Universal LNB" +msgstr "Univerzális fej" + +msgid "Unknown" +msgstr "Ismeretlen" + +msgid "Unmount" +msgstr "Leválasztás" + +msgid "Unsupported" +msgstr "Nem támogatott" + +msgid "Update" +msgstr "Frissítés" + +msgid "Update and ask to reboot" +msgstr "Frissítés, majd rákérdezés az újraindításra" + +msgid "Update and reboot (recommended)" +msgstr "Frissítés és automatikus újraindítás (ajánlott)" + +msgid "Update channel list only" +msgstr "Köv. csatorna az elÅ‘zményekben" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "A frissítés elkészült, %d csaomag lett feltelepítve." +msgstr[1] "A frissítés elkészült, %d csaomag lett feltelepítve." + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "Frissiítés sikeres. Újraindítsam most a készüléket?" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "A frissítés nem sikerült. A készüléknek nincs egy működÅ‘képes kapcsolata az internettel." + +msgid "Update has completed." +msgstr "A frissítés elkészült." + +msgid "Updatefeed not available." +msgstr "FrissítÅ‘ szerver nem elérhetÅ‘" + +msgid "Updating software catalog" +msgstr "Szoftver-katalógus frissítése" + +msgid "Upgrading" +msgstr "Frissítés" + +msgid "Use" +msgstr "Használ" + +msgid "Use DHCP" +msgstr "DHCP használata" + +msgid "Use EIT EPG information when it is available." +msgstr "EPG információk beolvasása a DVB jelfolyamból (EIT)." + +msgid "Use FreeSat EPG information when it is available." +msgstr "EPG információk beolvasása a FreeSat jelfolyamból." + +msgid "Use MHW EPG information when it is available." +msgstr "EPG információk beolvasása az MHW jelfolyamból." + +msgid "Use Netmed EPG information when it is available." +msgstr "EPG információk beolvasása a Netmed jelfolyamból." + +msgid "Use TV remote control" +msgstr "TV-távvezérlÅ‘ használata" + +msgid "Use USALS for this sat" +msgstr "Ennél a műholdnál használja az USALS-t" + +msgid "Use ViaSat EPG information when it is available." +msgstr "EPG információk beolvasása a ViaSat jelfolyamból." + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +msgid "Use a gateway" +msgstr "Ãtjáró használata" + +msgid "Use fastscan channel names" +msgstr "Szolgáltató által megadott csatorna elnevezés" + +msgid "Use fastscan channel numbering" +msgstr "Szolgáltató által megadott csatorna számozás" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "Beállítások mentése egyedileg mappánként" + +msgid "Use interface" +msgstr "Interfész használata" + +msgid "Use official channel numbering" +msgstr "Hivatalos csatornaszámozás használata" + +msgid "Use original DVB subtitle position" +msgstr "DVB feliratok pozíciójának megtartása" + +msgid "Use original teletext position" +msgstr "Eredeti teletext-elhelyezés megtartása" + +msgid "Use power measurement" +msgstr "Teljesítmény-felvétel mérése" + +msgid "Use the network wizard to configure selected network adapter" +msgstr "A hálózati Varázsló használata a kijelölt hálózati interfész konfigurálásához" + +msgid "Use the network wizard to configure your network\n" +msgstr "A hálózat beállításához használja a hálózati Varázslót\n" + +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "A fel/le nyílgombokkal változtathatja az opciót. Ez után nyomja meg az OK-t." + +msgid "Use the wizard to set up basic features" +msgstr "Használja a varázslót az alapbeállításokhoz" + +msgid "Use these input device settings?" +msgstr "Használhatók ezek a beviteli eszköz beállítások?" + +msgid "Use these settings?" +msgstr "Ezen beállítások használata?" + +msgid "Use this video enhancement settings?" +msgstr "Alkalmazhatók a Videó-beállítások?" + +msgid "Use trash can in movielist" +msgstr "Kuka használata a felvétel-listában" + +msgid "Used service scan type" +msgstr "Csatornakeresés típusa" + +msgid "User - bouquets" +msgstr "Felhasználói bouquet-ek" + +msgid "User defined" +msgstr "Felh. által megadva" + +msgid "User defined transponder" +msgstr "alább beállított transzponderen" + +msgid "User interface" +msgstr "Felhasználói felület" + +msgid "Username" +msgstr "Felhasználónév" + +#, python-format +msgid "Using LNB %d" +msgstr "%d fej használatával" + +msgid "Using fixed address" +msgstr "Fix cím használatával" + +#, python-format +msgid "Using tuner %s" +msgstr "%s tuner használatával" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "Amikor egy csatornán a felirat nyelve és a hangsáv nyelve megegyezik, a felirat megjelenítése nem szükséges. Ezzel az opcióval ez részletesen testreszabható." + +msgid "VCR scart" +msgstr "VCR scart" + +msgid "VMGM (intro trailer)" +msgstr "VMGM (Intro trailer)" + +msgid "Vertical" +msgstr "Vertikális" + +msgid "Vertical turning speed" +msgstr "Vertikális fordulási sebesség" + +msgid "Video PID" +msgstr "Videó PID" + +msgid "Video enhancement preview" +msgstr "Videó-beállítások elÅ‘nézete" + +msgid "Video enhancement settings" +msgstr "Videó-beállítások" + +msgid "Video enhancement setup" +msgstr "Videó-beállítások" + +msgid "Video fine tuning" +msgstr "Kép finomhangolás" + +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Video bementi kiválasztás\n" +"\n" +"Nyomja meg az OK-t ha látja ezt a képet a TV képernyÅ‘n (vagy válasszon más bemeneti portot).\n" +"A következÅ‘ bemeneti port automatikusan átkapcsol 10 mp múlva." + +msgid "Video mode selection." +msgstr "Video mód kiválasztás" + +msgid "Video output" +msgstr "Videó kimenet" + +msgid "Video setup" +msgstr "Videó beállítások" + +msgid "Video wizard" +msgstr "Video varázsló" + +#, python-format +msgid "Video: %s fps" +msgstr "Videó: %s fps" + +msgid "VideoMode" +msgstr "Videó mód" + +msgid "Videocodec" +msgstr "Videó kodek" + +msgid "Videoformat" +msgstr "Videó formátum" + +msgid "Videosize" +msgstr "Videó méret" + +msgid "View Rass interactive..." +msgstr "Rass interaktív szolgáltatás használata..." + +msgid "View details" +msgstr "Részletek megtekintése" + +msgid "View list of available " +msgstr "Az elérhetÅ‘k listázása: " + +msgid "View list of available CommonInterface extensions" +msgstr "Az elérhetÅ‘ CI-BÅ‘vítmények listázása" + +msgid "View list of available EPG extensions." +msgstr "Az elérhetÅ‘ EPG-bÅ‘vítmények listája" + +msgid "View list of available Satellite equipment extensions." +msgstr "Az elérhetÅ‘ múholdvevÅ‘-berendezés bÅ‘vítmények listázása" + +msgid "View list of available communication extensions." +msgstr "Az elérhetÅ‘ kommunikációs bÅ‘vítmények listázása" + +msgid "View list of available default settings" +msgstr "Az elérhetÅ‘ csatornalisták listázása" + +msgid "View list of available display and userinterface extensions." +msgstr "Az elérhetÅ‘ képernyÅ‘- és felhasználói felület bÅ‘vítmények listázása" + +msgid "View list of available multimedia extensions." +msgstr "Az elérhetÅ‘ multimédia bÅ‘vítmények listázása" + +msgid "View list of available networking extensions" +msgstr "Az elérhetÅ‘ hálózati bÅ‘vítmények listázása" + +msgid "View list of available recording extensions" +msgstr "Az elérhetÅ‘ felvételi bÅ‘vítmények listázása" + +msgid "View list of available skins" +msgstr "Az elérhetÅ‘ skin-ek listázása" + +msgid "View list of available software extensions" +msgstr "Az elérhetÅ‘ szoftveres bÅ‘vítmények listázása" + +msgid "View list of available system extensions" +msgstr "Az elérhetÅ‘ rendszer-BÅ‘vítmények listázása" + +msgid "View photos..." +msgstr "Képnézés..." + +msgid "View teletext..." +msgstr "Teletext megtekintése..." + +msgid "View video CD..." +msgstr "Videó-CD nézés..." + +msgid "Virtual keyboard" +msgstr "Virtuális Billentyűzet" + +msgid "Voltage mode" +msgstr "Feszültség" + +msgid "Volume" +msgstr "HangerÅ‘" + +msgid "W" +msgstr "Ny" + +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "Vezeték nélküli kapcsolat" + +msgid "WPA" +msgstr "WPA" + +msgid "WPA or WPA2" +msgstr "WPA vagy WPA2" + +msgid "WPA2" +msgstr "WPA2" + +msgid "WSS on 4:3" +msgstr "WSS 4:3-on" + +msgid "Waiting" +msgstr "Várakozás" + +msgid "Waiting for mount" +msgstr "Várakozás a megosztás csatlakozására" + +msgid "Waiting for partition" +msgstr "Várakozás a partícióra" + +msgid "Wakeup" +msgstr "Bekapcsolás" + +msgid "Wakeup TV from standby" +msgstr "A TV bekapcsolása" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "A készülék bekapcsolása" + +msgid "Wakeup signal from TV" +msgstr "Bekapcsolási jelzés a TV-tÅ‘l" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "Figyelem: nincs fej; gyári alapbeállítások használata" + +msgid "Watch movies..." +msgstr "Felvett filmek lejátszása..." + +msgid "Watch recordings..." +msgstr "felvétel..." + +msgid "Wed" +msgstr "Sze" + +msgid "Wednesday" +msgstr "Szerda" + +msgid "Weekday" +msgstr "Hétköznap" + +msgid "Weighted position" +msgstr "Kiegyensúlyzozott pozíció" + +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"Ãœdvözlöm a Vágólista szerkesztÅ‘ben.\n" +"\n" +"Keresse meg a kivágandó rész elejét majd nyomja meg az OK gombot és válassza ki a 'Vágás eleje' opciót.\n" +"\n" +"Majd menjen a kivágandó rész végére, nyomja meg az OK gombot és válassza a \"Vágás vége\" opciót. Ennyi az egész." + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "Ãœdvözlöm az Image frissítés varázslójában. A varázsló segít Önnek a készülékének firmware frissítésében. Ismerteti a mentési tulajdonságokat, így beállításai sem vesznek el, továbbá elmagyarázza hogyan frissítse készülékét az új firmware-el." + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" +"Ãœdvözüljük.\n" +"\n" +"Ha szeretné a készülékét az Internetre csatlakoztatni, ez a Varázsló segíthet Önnek, hogy az alap-konfigurációt létrehozhassa.\n" +"\n" +"Kérem, nyomja le az OK gombot a hákózat konfigurálásához" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" +"Ãœdvözlöm.\n" +"\n" +"Ez az Indítási Varázsló végig fogja Önt vezetni a készülék alapbeállításain.\n" +"Nyomja meg az OK gombot a távirányítón a következÅ‘ lépéshez." + +msgid "Welcome..." +msgstr "Ãœdvözlöm..." + +msgid "West" +msgstr "Nyugat" + +msgid "West limit set" +msgstr "Nyugati limit beállítás" + +msgid "What do you want to scan?" +msgstr "Mit szeretne lekeresni?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "Kép-a-Képben bezárása a távírányító 'Exit' gomb megnyomásakor." + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "Meg lehet adni egy napi idÅ‘szakot, amikor nincs figyelembe véve az inaktivitás, azaz, ebben az idÅ‘szakban tétlenség miatt nem fog kikapcsolni a készülék." + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "A HTTP jelfolyamba kerüljön bele a DVB-bÅ‘l származó AID adatcsomag is. Ezáltal a fogadó készülék képes lesz HbbTV-t is kezelni." + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "A HTTP jelfolyamba kerüljön bele a DVB-bÅ‘l származó ECM adatcsomag is. Ezáltal a fogadó készüléknek kell a dekódolást végezni." + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "A HTTP jelfolyamba kerüljön bele a DVB-bÅ‘l származó EIT adatcsomag is. Ezáltal a fogadó készülék képes lesz EPG-t is megjeleníteni." + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "Egy figyelmeztetÅ‘ buborék jelenjen meg a képernyÅ‘n amikor egy fájl a végéhez ért és a következÅ‘ elindul." + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "Egy figyelmeztetÅ‘ buborék jelenjen meg a képernyÅ‘n amikor a felvétel elindul." + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "Rádiócsatorna hallgatása közben egy háttérkép megjelenítése." + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "Egy felvétel megszakíthatja a TV-nézést, ha nem áll rendelkezésre másik szabad tuner a felvételhez." + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "Egy figyelmeztetés jelenjen meg a képernyÅ‘n választható lehetÅ‘séggel, az idÅ‘csúsztatás megállítása vagy folytatása." + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "Minden egyes bouquet-ben a csatornalista számozása 1-el kezdÅ‘djön." + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "Egy 4:3-as kép méretarányú tartalom szét lesz nyújtva a képernyÅ‘ teljes szélességére." + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "Csatornaváltás közben, ha a bouquet utolsó csatornájához értünk, ugorjon-e a következÅ‘ bouquet-be vagy sem." + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "A törölt fájlok kukába kerüljenek, azonnali megsemmisítés helyett." + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "Az információs sávba közvetlenül az EIT-jelfolyamból származzon a 'Most/Következik' információ, vagy az EPG cache-ból vegye ki." + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "A kódolási információ jelenjen-e meg vagy sem az információs sávban (amennyiben a skin támogatja)." + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "A CI-modullal kapcsolatos hibaüzenetek ne jelenjenek meg a képernyÅ‘n." + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "A csatornaváltással kapcsolatos hibaüzenetek ne jelenjenek meg a képernyÅ‘n." + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "A külön fájlban lévÅ‘ feliratok automatikusan jelenjenek meg film lejátszás esetén." + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "Ha egy csatornán egyszerre elérhetÅ‘ DVB-felirat és Teletext felirat is, mindig a DVB feliratot válassza." + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "A DVB felirat középre zárása." + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "A DVB felirat eredeti helyen történÅ‘ megjelenítése." + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "A DVB felirat átszínezése sárgára, az eredeti szín helyett." + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "A dekódolás a HTTP szerver oldalon történjen. A távoli kliens készülék már nem kell dekódolja a jelfolyamot." + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "Lehessen kilépni a lejátszóból az 'Exit' gomb megnyomásával." + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "Ezzel a funkcióval a motor forgását az áramfelvétel mérésével lehet ellenÅ‘rizni (amennyiben a tuner támogatja)." + +msgid "When enabled, number markers will be hiden." +msgstr "A csatornalistában esetleg lévÅ‘, sorszámozott elválasztó elemek elrejtése." + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "A csatornák lehessenek egyszerre akár több bouquet tagjai." + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "Csatornaszámok megjelenítése a csatornalistában" + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "A hallássérülteknek szánt feliratok megjelenítése." + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "A hallássérülteknek szánt feliratok megjelenítése a normál feliratok helyett, amennyiben mindkettÅ‘ egyszerre elérhetÅ‘ egy csatornán." + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "A teletext-oldalak cache-elése gyorsítótárban, gyorsabb elérés érdekében." + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "A teletext feliratok megjelenítése az eredeti helyükön." + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "Egy 'VCR Scart' menü megjelenítése a fÅ‘menüben." + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "A csatornalista elrejtése rádió hallgatása közben." + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "Az információs sáv automatikus felbukkanása egy új műsor EPG szerinti kezdetekor." + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "Az információs sáv automatikus felbukkanása csatornaváltás után." + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "Az információs sáv megjelenítése elÅ‘re/hátra ugráskor fájl lejátszása közben." + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "Minden egyes fájl hossza jelenjen meg a filmlistában (megnövelheti a listának a betöltési idejét)." + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "Az eredeti sorvégzÅ‘dések eltávolítása a teletext feliratokból." + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "A készülék ugyanazt a hangsávot fogja legközelebb is kiválasztani, amit Ön legutoljára kiválasztott." + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "A készülék ugyanazt a feliratot fogja legközelebb is kiválasztani, amit Ön legutoljára kiválasztott." + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "A készülék nem fogja a behangolt transzpondert figyelni esetleges változásokért. Ne módosítsa ezt az opciót anélkül, hogy pontosan tudná mit szeretne." + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "A készülék egy AC3 hangsávot válasszon mindig, amikor ilyen van a csatornán." + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "Az idÅ‘csúsztatás induljon el automatikusan a háttérben a megadott idÅ‘ után." + +msgid "When enabled, use DHCP for the IP configuration." +msgstr "névszerver konfiguráció megnyítása" + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "A készülék figyelje, hogy történik-e valami a VCR Scart bemenetén." + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "Ennyivel korábban kezdje a felvételt, mint amennyi idÅ‘t mond az EPG." + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "Ennyivel késÅ‘bb fejezze be a felvételt, mint amennyi idÅ‘t mond az EPG." + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "Egy 16:9-es kép méretarányú tartalom nagyítva vagy széthúzva legyen." + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "Egy 4:3-as kép méretarányú tartalom nagyítva vagy széthúzva legyen." + +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"Ha visszaállítja a készüléket a gyári állapotba, minden beállítása el fog veszni\n" +"(beleérve a bouquet-eket, a kedvenceket, lekeresett csatornákat, műholdakat...)!\n" +"A gyári állapotba helyezés után, a készülék automatikusan újra fog indulni.\n" +"\n" +"Biztos benne, hogy gyári állapotba állítja a készüléket?" + +msgid "Where do you want to backup your settings?" +msgstr "Hova szeretné elmenteni a beállításait?" + +msgid "Where to save temporary timeshift recordings?" +msgstr "Hová kerüljenek az átmeneti idÅ‘csúsztatás felvételek?" + +msgid "Wireless LAN" +msgstr "Vezeték nélküli hálózat" + +msgid "Wireless network" +msgstr "Vezeték nélküli hálózat" + +msgid "Wireless network configuration..." +msgstr "Vezeték nélküli hálózat beállítása..." + +msgid "Wireless network connection setup" +msgstr "Vezeték nélküli hálózat beállítása" + +msgid "Wireless network connection setup." +msgstr "Vezeték nélküli hálózat beállítása." + +msgid "Wireless network state" +msgstr "Vezeték nélküli hálózat állapota" + +msgid "With popup" +msgstr "Figyelmeztetéssel" + +msgid "Without popup" +msgstr "Figyelmeztetés nélkül" + +msgid "Would you like to install a softcam?" +msgstr "Szeretne telepíteni egy softcam-et?" + +msgid "Write error while recording. Disk full?\n" +msgstr "Felvétel közben írási hiba történt. Megtelt a lemez?\n" + +msgid "Write failed!" +msgstr "Az írás sikertelen!" + +msgid "YPbPr" +msgstr "YPbPr" + +msgid "Year" +msgstr "Év" + +msgid "Yellow DVB subtitles" +msgstr "DVB feliratok színe: sárga" + +msgid "Yes" +msgstr "Igen" + +msgid "Yes and save" +msgstr "Igen, mentéssel" + +msgid "Yes and save in movie dir" +msgstr "Igen, mentéssel a filmek mappájába" + +msgid "Yes to all" +msgstr "Mindenre IGEN" + +msgid "Yes, always" +msgstr "Igen, mindig" + +msgid "Yes, and delete this movie" +msgstr "Igen, és felvétel törlése" + +msgid "Yes, backup my settings!" +msgstr "Igen, mentse el a beállításaim!" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +msgid "Yes, do a manual scan now" +msgstr "Igen, indítsunk most el egy kézi keresést" + +msgid "Yes, do an automatic scan now" +msgstr "Igen, indítsunk most el egy automatikus keresést" + +msgid "Yes, do another manual scan now" +msgstr "Igen, indítsunk most el egy másik keresést" + +msgid "Yes, perform a shutdown now." +msgstr "Igen, hajtsunk végre most egy kikapcsolást." + +msgid "Yes, restore the settings now" +msgstr "Igen, állítsuk vissza most a beállításokat" + +msgid "Yes, returning to movie list" +msgstr "Igen, térjen vissza a felvételek listájához" + +msgid "Yesterday" +msgstr "Tegnap" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" +"Már van egy csatornalista telepítve,\n" +"biztos benne, hogy el szeretné távolítani\n" +"\"%s\"-t?" + +msgid "You can cancel the installation." +msgstr "A telepítés folyamata leállítható." + +msgid "You can cancel the removal." +msgstr "Az eltávolítás folyamata leállítható." + +msgid "You can continue watching TV etc. while this is running." +msgstr "A készülék használatát folytathatja a megszokott módon." + +msgid "You can install this plugin." +msgstr "A plugin telepíthetÅ‘." + +msgid "You can only burn receiver recordings!" +msgstr "Csak ezzel a készüléktípussal felvett anyagokat lehet kiírni!" + +msgid "You can remove this plugin." +msgstr "A plugin eltávolítható" + +msgid "You cannot delete this!" +msgstr "Ez nem törölheti le!" + +msgid "You didn't select a channel to record from." +msgstr "Nem választott ki csatornát, ahonnan történjen a felvétel." + +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "Ön azt választotta, hogy a beállításairól egy biztonsági másolatot készít. Kérem, nyomja le az OK gombot a folytatáshoz." + +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "Azt választotta hogy létrehoz egy új .NFI flasher bootolható USB sticket. Ez az USB sticket újra fogja partícionálni, ezért az azon található összes adat el fog veszni." + +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "Ön azt választotta, hogy a beállításokat visszaállítja egy koráábi biztonsági mentésbÅ‘l. A folyamat végén, az Enigma2 újra fog indulni. Kérem, nyomja le az OK gombot a folytatáshoz." + +#, python-format +msgid "You have to wait %s!" +msgstr "Várnia kell (%s)!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" + +msgid "You system does not support ext4" +msgstr "Az ön rendszere nem támogatja az ext4-et." + +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "A mentés sikerült. Most folytatjuk és elmagyarázom Önnek a további frissítési folyamatot." + +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "A gyüjteményének mérete meghaladja egy sima rétegű DVD kapacitását, egy dupla-rétegű üres DVD lemezre lesz szüksége!" + +msgid "Your current collection will get lost!" +msgstr "Az aktuális kapcsolata meg fog szűnni!" + +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"Az elÅ‘lapi processzor firmware-jét frissíteni kell.\n" +"Az OK gombbal indíthatja a frissítést." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"A frontprocesszor frissítve lesz.\n" +"Kérem, várjon, míg a készülék újraindul.\n" +"Ez eltarthat néhány percig..." + +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"Az internetkapcsolata nem működik!\n" +"Kérem, válassza ki, mi legyen a teendÅ‘." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "Az internetkapcsolat működik (IP: %s)" + +msgid "Your network configuration has been activated." +msgstr "A hálózati konfiguráció aktiválva lett." + +msgid "Your receiver does not have an internet connection" +msgstr "A készüléknek nincs kapcsolata az internettel." + +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"A készülék most már használható állapotban van.\n" +"\n" +"Az internetkapcsolata működÅ‘képes.\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" +"A készülék most már használható állapotban van.\n" +"\n" +"Az internetkapcsolata működÅ‘képes.\n" +"\n" +"Nyomja le az OK gombot a folytatáshoz." + +msgid "Your receiver is rebooting" +msgstr "A készülék most újraindul" + +msgid "Your receiver is shutting down" +msgstr "A készülék most kikapcsol" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "A készülék most kikapcsol. Kérem, várjon..." + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "A készüléke most lehet, hogy használhatatlanná vált. Kérem, vegye fel a kapcsolatot a szervízzel, vagy szakemberrel újraindítás elött." + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "A készülék most készenlétbe kapcsol elalvás-idÅ‘zítés miatt." + +msgid "Your receiver will got to standby due to inactivity." +msgstr "A készülék most készenlétbe kapcsol inaktivitás miatt." + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "Az OK gomb megnyomása után a készülék újra fog indulni." + +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"A vezeték nélküli hálózati kapcsolata nem hozható létre!\n" +"Csatlakoztatva van az USB-s vezeték nélküli adapter?\n" +"\n" +"Kérem, válassza ki, mi legyen a teendÅ‘." + +msgid "Zap" +msgstr "Ugrás" + +msgid "Zap back to previously tuned service?" +msgstr "Ugorjunk vissza az elöbb nézett csatornára?" + +msgid "Zap back to service before positioner setup?" +msgstr "Ugorjunk vissza a forgatómotor beállítás elött nézett csatornához?" + +msgid "Zap back to service before tuner setup?" +msgstr "Ugorjunk vissza a tuner beállítása elött nézett csatornához?" + +msgid "Zap focus to Picture in Picture" +msgstr "A Kép-a-Képben-ablak kezelése" + +msgid "Zap focus to main screen" +msgstr "A fÅ‘képernyÅ‘ kezelése" + +msgid "Zap mode" +msgstr "Ugrás mód" + +msgid "Zap to selected channel" +msgstr "Ugrás a kijelölt csatornára" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "Ugrás a kijelölt csatornára, vagy részletes műsorinformáció megjelenítése (konfiguráció-függÅ‘)" + +msgid "[alternative edit]" +msgstr "[alternatív módosítás]" + +msgid "[bouquet edit]" +msgstr "[bouquet módosítása]" + +msgid "[favourite edit]" +msgstr "[kedvencek módosítása]" + +msgid "[move mode]" +msgstr "[mozgatás mód]" + +msgid "a gui to assign services/providers to common interface modules" +msgstr "egy felhasználói felület, mely lehetÅ‘vé teszi szolgáltatók/csatornák hozzárendelését CI modulokhoz" + +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "egy felhasználói felület, mely lehetÅ‘vé teszi szolgáltatók/csatornák/CAId-ek hozzárendelését CI modulokhoz" + +msgid "abort alternatives edit" +msgstr "alternatív módosítás megszakítása" + +msgid "abort bouquet edit" +msgstr "bouquet módosítás megszakítása" + +msgid "abort favourites edit" +msgstr "kedvencek módosításának megszakítása" + +msgid "about to start" +msgstr "az indításról" + +msgid "activate network adapter configuration" +msgstr "Hálózati adapter konfiguráció aktiválása" + +msgid "add alternatives" +msgstr "alternatívák hozzáadása" + +msgid "add bookmark" +msgstr "bookmark hozzáadása" + +msgid "add bouquet" +msgstr "bouquet hozzáadása" + +msgid "add marker" +msgstr "marker hozzáadása" + +msgid "add service to bouquet" +msgstr "csatorna hozzáadása a bouquethez" + +msgid "add service to favourites" +msgstr "csatorna hozzáadása a kedvencekhez" + +msgid "add to parental protection" +msgstr "hozzáadás a gyermekzár védelemhez" + +msgid "adult movie/drama" +msgstr "FelnÅ‘tt/Dráma" + +msgid "advanced" +msgstr "haladó" + +msgid "adventure/western/war" +msgstr "Kaland/Western/Háború" + +msgid "advertisement/shopping" +msgstr "Reklám/Televíziós vásárlás" + +msgid "after " +msgstr "kikapcsolás: " + +msgid "alphabetic" +msgstr "ábécé szerinti rendezés" + +msgid "alphabetic reverse" +msgstr "fordított ABC" + +msgid "alternative" +msgstr "alternatív" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "Művészet/Kultúra (prózai, általános)" + +msgid "arts/culture magazine" +msgstr "Művészet/Kultúra magazin" + +msgid "athletics" +msgstr "Atlétika" + +msgid "audio tracks" +msgstr "hangsávok" + +msgid "auto" +msgstr "Automatikus" + +msgid "automatic" +msgstr "Automatikus" + +msgid "back" +msgstr "vissza" + +msgid "background image" +msgstr "háttérkép" + +msgid "ballet" +msgstr "Balett" + +#, python-format +msgid "bc%s" +msgstr "bc%s" + +msgid "better" +msgstr "jobb" + +msgid "black" +msgstr "fekete" + +msgid "black & white" +msgstr "Fekete/Fehér" + +msgid "blacklist" +msgstr "feketelista" + +msgid "blue" +msgstr "kék" + +msgid "broadcasting/press" +msgstr "közvetítés/sajtó" + +msgid "by date" +msgstr "rendezés dátum szerint" + +msgid "cartoon/puppets" +msgstr "Rajzfilm/Báb" + +msgid "center" +msgstr "középre" + +msgid "centered" +msgstr "középre" + +msgid "centered, wrapped" +msgstr "középen sortöréssel" + +msgid "chapters" +msgstr "jelenetek" + +msgid "childrens's/youth program (general)" +msgstr "Ãltalános gyermekműsor" + +msgid "circular left" +msgstr "forgó balos" + +msgid "circular right" +msgstr "forgó jobbos" + +msgid "comedy" +msgstr "vígjáték" + +msgid "complex" +msgstr "komplex" + +msgid "config menu" +msgstr "konfig. menü" + +msgid "confirmed" +msgstr "visszaigazolt" + +msgid "connected" +msgstr "csatlakoztatva" + +msgid "continue" +msgstr "Folytatás" + +msgid "cooking" +msgstr "fÅ‘zés" + +msgid "copy to bouquets" +msgstr "másolás a bouquetek-be" + +msgid "create directory" +msgstr "mappa létrehozása" + +#, python-format +msgid "currently installed image: %s" +msgstr "aktuálisan feltelepített image: %s" + +msgid "daily" +msgstr "naponta" + +msgid "day" +msgstr "nap" + +msgid "default" +msgstr "Alapértelmezett" + +msgid "delete cut" +msgstr "vágópont törlése" + +msgid "delete..." +msgstr "törlés..." + +msgid "descramble and record ecm" +msgstr "ECM felvétel és dekódolás" + +msgid "detective/thriller" +msgstr "dekektív/thriller" + +msgid "disable" +msgstr "letiltás" + +msgid "disable move mode" +msgstr "mozgatási mód letiltása" + +msgid "disabled" +msgstr "kikapcsolva" + +msgid "disconnected" +msgstr "nincs csatlakoztatva" + +msgid "discussion/interview/debate" +msgstr "beszélgetés/interjú/vita" + +msgid "do nothing" +msgstr "ne csináljon semmit" + +msgid "documentary" +msgstr "dokumentum" + +msgid "don't descramble, record ecm" +msgstr "ECM felvétel dekódolás nélkül" + +msgid "done!" +msgstr "kész!" + +msgid "east" +msgstr "kelet" + +msgid "economics/social advisory" +msgstr "gazdaság/szocilális" + +msgid "edit alternatives" +msgstr "alternatívák módosítása" + +msgid "education/science/factual topics (general)" +msgstr "oktatás/tudomány/tényszerü általános" + +msgid "empty" +msgstr "üres" + +msgid "enable" +msgstr "engedélyezés" + +msgid "enable bouquet edit" +msgstr "bouquet módosítás engedélyezése" + +msgid "enable favourite edit" +msgstr "kedvencek módosításának engedélyezése" + +msgid "enable move mode" +msgstr "mozgatási mód engedélyezése" + +msgid "enabled" +msgstr "engedélyezve" + +msgid "end alternatives edit" +msgstr "alternatívák módosításának vége" + +msgid "end bouquet edit" +msgstr "bouquet módosítás vége" + +msgid "end cut here" +msgstr "vágás kilépÅ‘ pontja" + +msgid "end favourites edit" +msgstr "kedvencek módosításának vége" + +msgid "entertainment (10-16 year old)" +msgstr "szórakoztató (10-16 éves korosztály" + +msgid "entertainment (6-14 year old)" +msgstr "szórakoztató (6-14 éves korosztály" + +msgid "equal to" +msgstr "egyenlÅ‘" + +msgid "equestrian" +msgstr "lovaglás" + +msgid "exit DVD player or return to file browser" +msgstr "DVD Player bezárása és visszatérés a keresÅ‘be" + +msgid "exit movielist" +msgstr "Kilépés" + +msgid "exit network adapter configuration" +msgstr "kliépés a hálózati adapter beállításaiból" + +msgid "exit networkadapter setup menu" +msgstr "kliépés a hálózati adapter beállításaiból" + +msgid "experimental film/video" +msgstr "kísérleti filmezés" + +msgid "false" +msgstr "nem" + +msgid "fashion" +msgstr "divat" + +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "fájlformátumok (BMP, PNG, JPG, GIF)" + +msgid "filename" +msgstr "fájlnév" + +msgid "film/cinema" +msgstr "mozi" + +msgid "fine arts" +msgstr "művészet" + +msgid "fine-tune your display" +msgstr "megjelenítÅ‘ finom beállítása" + +msgid "fitness & health" +msgstr "fitnessz / egészség" + +msgid "flat alphabetic" +msgstr "ábécé szerinti rendezés" + +msgid "flat alphabetic reverse" +msgstr "fordított ABC" + +msgid "folk/traditional music" +msgstr "folklór/népzene" + +msgid "football/soccer" +msgstr "futball/foci" + +msgid "foreign countries/expeditions" +msgstr "külföldi országok/kirándulás" + +msgid "forward to the next chapter" +msgstr "ugrás a következÅ‘ fejezethez" + +msgid "free" +msgstr "szabad" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "továbboktatás" + +msgid "game show/quiz/contest" +msgstr "játék/show/kvíz" + +msgid "gardening" +msgstr "kertészet" + +msgid "go to deep standby" +msgstr "lekapcsolás mély-készenléti módba" + +msgid "go to standby" +msgstr "lekapcsolás készenléti módba" + +msgid "grab this frame as bitmap" +msgstr "pillanatkép mentése" + +msgid "green" +msgstr "zöld" + +msgid "handicraft" +msgstr "kézművesség" + +msgid "height" +msgstr "magasság" + +msgid "help..." +msgstr "Súgó..." + +msgid "horizontal" +msgstr "horrizontális" + +msgid "information/education/school program" +msgstr "információ/oktatás/isklola" + +msgid "init module" +msgstr "modul inicializálása" + +msgid "init modules" +msgstr "modul inicializálás" + +msgid "insert mark here" +msgstr "jelzÅ‘ elhelyezése ide" + +msgid "invalid type" +msgstr "helytelen típus" + +msgid "jazz" +msgstr "jazz" + +msgid "jump back to the previous title" +msgstr "vissza az elÅ‘zÅ‘ chapterhez" + +msgid "jump forward to the next title" +msgstr "ugrás a következÅ‘ címhez" + +msgid "languages" +msgstr "nyelvek" + +msgid "leave movie player..." +msgstr "kilépés a lejátszóból..." + +msgid "left" +msgstr "bal" + +msgid "left, wrapped" +msgstr "bal oldalon sortöréssel" + +msgid "leisure hobbies (general)" +msgstr "hobbi/szórakozás (általános)" + +msgid "length" +msgstr "hossz" + +msgid "limit ..., aborting !" +msgstr "limit... abbahagytam!" + +msgid "list style compact" +msgstr "kompakt lista stílus" + +msgid "list style compact with description" +msgstr "kompakt lista stílus leírással" + +msgid "list style default" +msgstr "alapértelmezett lista stílus" + +msgid "list style single line" +msgstr "egyvonalas lista stílus" + +msgid "literature" +msgstr "irodalom" + +msgid "live broadcast" +msgstr "élÅ‘ adás" + +msgid "locked" +msgstr "hangolva" + +msgid "loopthrough to" +msgstr "átfűzés ide" + +msgid "magazines/reports/documentary" +msgstr "magazin/riport/dokumentum" + +msgid "manual" +msgstr "kézi" + +msgid "martial sports" +msgstr "harci sportok" + +msgid "medicine/physiology/psychology" +msgstr "egészség" + +msgid "menu" +msgstr "menü" + +msgid "mins" +msgstr "perc" + +msgid "minutes" +msgstr "perc" + +msgid "month" +msgstr "hónap" + +msgid "motor sport" +msgstr "motorsport" + +msgid "motoring" +msgstr "motor" + +msgid "move down to last entry" +msgstr "ugrás a legutolsó tételhez" + +msgid "move down to next entry" +msgstr "ugrás a következÅ‘ tételhez" + +msgid "move up to first entry" +msgstr "ugrás az elsÅ‘ tételhez" + +msgid "move up to previous entry" +msgstr "ugrás az elÅ‘zÅ‘ tételhez" + +msgid "movie/drama (general)" +msgstr "mozi/színház (általános)" + +msgid "multinorm" +msgstr "többnormás" + +msgid "music/ballet/dance (general)" +msgstr "zene/balett/tánc (általános)" + +msgid "musical/opera" +msgstr "musical/opera" + +msgid "nature/animals/environment" +msgstr "természet/állatvilág/környezet" + +msgid "never" +msgstr "soha" + +msgid "new media" +msgstr "új média" + +msgid "news magazine" +msgstr "hírmagazin" + +msgid "news/current affairs (general)" +msgstr "hírek/gazdaság (általános)" + +msgid "news/weather report" +msgstr "hírek/idÅ‘járás" + +msgid "no" +msgstr "nem" + +msgid "no CAId selected" +msgstr "nincs kijelölt CAId" + +msgid "no CI slots found" +msgstr "nincs található CI foglalat" + +msgid "no module found" +msgstr "nincs behelyezve modul" + +msgid "no storage devices found" +msgstr "nem található semmilyen háttértár" + +msgid "none" +msgstr "nincs" + +msgid "normal" +msgstr "hagyományos" + +msgid "not configured" +msgstr "nem konfigurált" + +msgid "not locked" +msgstr "nem hangolt" + +msgid "not supported" +msgstr "nem támogatott" + +msgid "not used" +msgstr "nem használt" + +msgid "nothing connected" +msgstr "semmi sincs csatlakoztatva" + +msgid "of a DUAL layer medium used." +msgstr "a kétréteges lemezbÅ‘l felhasználva." + +msgid "of a SINGLE layer medium used." +msgstr "egyoldalas (single layer) medium felhasználva." + +msgid "off" +msgstr "ki" + +msgid "offset is" +msgstr "offszett:" + +msgid "on" +msgstr "be" + +msgid "on READ ONLY medium." +msgstr "a csak olvasható hordozón." + +msgid "on end of movie" +msgstr "film lejátszás végén" + +msgid "once" +msgstr "egyszeri" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +msgid "open nameserver configuration" +msgstr "névszerver konfiguráció megnyítása" + +msgid "original" +msgstr "eredeti" + +msgid "original language" +msgstr "eredeti nyelv" + +msgid "pass" +msgstr "művelet" + +msgid "performing arts" +msgstr "ElÅ‘adóművészet" + +msgid "play as picture in picture" +msgstr "megjelenítés Kép-a-Képben" + +msgid "play in mainwindow" +msgstr "lejátszás a fÅ‘képernyÅ‘n" + +msgid "please press OK when ready" +msgstr "nyomja le az OK-t ha kész" + +msgid "please wait, loading picture..." +msgstr "kérem vérjon, kép betöltése..." + +msgid "popular culture/traditional arts" +msgstr "néprajz" + +msgid "pre-school children's program" +msgstr "óvodásoknak" + +msgid "receiver software because updates are available." +msgstr "készülék szoftvere, frisstések elérhetÅ‘k" + +msgid "record" +msgstr "felvétel" + +msgid "recording..." +msgstr "felvétel..." + +msgid "red" +msgstr "piros" + +msgid "religion" +msgstr "vallás" + +msgid "remarkable people" +msgstr "nevezetes emberek" + +msgid "remove after this position" +msgstr "e pont után mindent töröljön" + +msgid "remove all alternatives" +msgstr "összes alternatíva törlése" + +msgid "remove all new found flags" +msgstr "minden újtalálat jelzö törlése" + +msgid "remove before this position" +msgstr "e pont elött mindent töröljön" + +msgid "remove bookmark" +msgstr "bookmark eltávolítása" + +msgid "remove directory" +msgstr "mappa eltávolítása" + +msgid "remove entry" +msgstr "bejegyzés törlése" + +msgid "remove from parental protection" +msgstr "eltávolítás a gyermekzár védelem alól" + +msgid "remove new found flag" +msgstr "'új' jelzÅ‘ eltávolítása" + +msgid "remove selected satellite" +msgstr "kiválasztott műhold törlése" + +msgid "remove this mark" +msgstr "e jelzö eltávolítása" + +msgid "rename entry" +msgstr "átnevezés" + +msgid "repeat playlist" +msgstr "playlista ismétlése" + +msgid "repeated" +msgstr "többszöri" + +msgid "reverse by date" +msgstr "dátum szerint csökkenÅ‘" + +msgid "rewind to the previous chapter" +msgstr "visszatekerés az elÅ‘zÅ‘ chapterhez" + +msgid "right" +msgstr "jobb" + +msgid "right, wrapped" +msgstr "jobb oldalon sortöréssel" + +msgid "rock/pop" +msgstr "rock/pop" + +msgid "romance" +msgstr "románc" + +msgid "save last directory on exit" +msgstr "az utolsó mappa mentése kilépéskor" + +msgid "save playlist on exit" +msgstr "lejátszási lista mentése kilépéskor" + +msgid "scan state" +msgstr "keresési állapot" + +msgid "science fiction/fantasy/horror" +msgstr "szcifi/fantasy/horror" + +msgid "second cable of motorized LNB" +msgstr "forgatós fej második kábele" + +msgid "seconds" +msgstr "másodperc" + +msgid "select" +msgstr "válasszon" + +msgid "select CAId's" +msgstr "CAId-ek kijelölése" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +msgid "select menu entry" +msgstr "válasszon menütételt" + +msgid "select movie" +msgstr "felvétel kiválasztása" + +msgid "select the movie path" +msgstr "válassza ki a felvételek útvonalát" + +msgid "serious music/classic music" +msgstr "komolyzene" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "komolyzene/klasszikus/vallási/történelmi/dráma" + +msgid "service PIN" +msgstr "szerviz-PIN" + +msgid "set as startup service" +msgstr "beállítás indítási csatornának" + +msgid "setup PIN" +msgstr "PIN-kód beállítása" + +msgid "show DVD main menu" +msgstr "DVD fÅ‘menü megjelenítése" + +msgid "show all tags" +msgstr "minden metaadat megjelenítése" + +msgid "show alternatives" +msgstr "alternatívák megjelenítése" + +msgid "show event details" +msgstr "részletes adatok megjelenítése" + +msgid "show extended description" +msgstr "részletes leírás megjelenítése" + +msgid "show mediaplayer on mainmenu" +msgstr "Médialejátszó megjelenítése a fÅ‘menüben" + +msgid "show softwaremanager in setup menu" +msgstr "SzoftverkezelÅ‘ megjelenítése a beállítások menüben" + +msgid "show softwaremanager on blue button" +msgstr "SzoftverkezelÅ‘ megjelenítése a kék-gombos menüben" + +msgid "show tag menu" +msgstr "metaadat menü megjelenítése" + +msgid "show transponder info" +msgstr "transzponder infó megjelenítése" + +msgid "show/game show (general)" +msgstr "show/háték (általános)" + +msgid "shuffle" +msgstr "összekever" + +msgid "shut down" +msgstr "kikapcsolás" + +msgid "simple" +msgstr "egyszerű" + +msgid "skip backward" +msgstr "Vissza kihagyása" + +msgid "skip forward" +msgstr "ElÅ‘re kihagyása" + +msgid "soap/melodram/folkloric" +msgstr "szappan/melodráma" + +msgid "social/political issues/economics (general)" +msgstr "szociális/politikai (általános)" + +msgid "social/spiritual science" +msgstr "szociális/spirituális" + +msgid "sorting of playlists" +msgstr "lejátszási listák rendezése" + +msgid "special characters" +msgstr "speciális karakterek" + +msgid "special events" +msgstr "különleges események" + +msgid "special format data DVD (HDTV compatible)" +msgstr "speciális adat-DVD (HDTV-kompatibilis)" + +msgid "sports (general)" +msgstr "sport (általános)" + +msgid "sports magazine" +msgstr "sportmagazin" + +msgid "standard" +msgstr "hagyományos" + +msgid "start cut here" +msgstr "vágás belépÅ‘ pontja" + +msgid "start directory" +msgstr "Kiindulási mappa" + +msgid "stepsize" +msgstr "lépték mérték" + +msgid "stereo" +msgstr "sztereó" + +msgid "stop using as startup service" +msgstr "beállítás indítási csatornának" + +msgid "switch to bookmarks" +msgstr "átkapcsolás a bookmarkokra" + +msgid "switch to filelist" +msgstr "kapcsolás fájllistára" + +msgid "switch to the next angle" +msgstr "váltás a következÅ‘ nézÅ‘szögre" + +msgid "switch to the next audio track" +msgstr "átkapcsolás a következÅ‘ hangsávra" + +msgid "switch to the next subtitle language" +msgstr "átkapcsolás a következÅ‘ felirat nyelvre" + +msgid "talk show" +msgstr "beszédműsor" + +msgid "team sports" +msgstr "csapat-sport" + +msgid "technology/natural science" +msgstr "technológia/természettudomány" + +msgid "template file" +msgstr "sablon-fájl" + +msgid "tennis/squash" +msgstr "tenisz/fallabda" + +msgid "this recording" +msgstr "ez a felvétel" + +msgid "this service is protected by a parental control pin" +msgstr "a csatorna gyermekzárral védve van" + +msgid "toggle time, chapter, audio, subtitle info" +msgstr "idÅ‘, chapter, hangsáv, feliratsáv választás" + +msgid "top" +msgstr "teteje" + +msgid "tourism/travel" +msgstr "turizmus/utazás" + +msgid "true" +msgstr "igaz" + +msgid "unavailable" +msgstr "nem elérhetÅ‘" + +msgid "unconfirmed" +msgstr "nem igazolt" + +msgid "undefined" +msgstr "nincs meghatározva" + +msgid "unknown" +msgstr "ismeretlen" + +msgid "unknown service" +msgstr "ismeretlen csatorna" + +msgid "unpublished" +msgstr "kiadatlan" + +msgid "until standby/restart" +msgstr "kikapcsolásig/újraindításig" + +msgid "user defined" +msgstr "egyedi meghatározás" + +msgid "variety show" +msgstr "varieté" + +msgid "vertical" +msgstr "vertikális" + +msgid "wait for ci..." +msgstr "várakozás modulra..." + +msgid "wait for mmi..." +msgstr "várakozás mmi-re..." + +msgid "waiting" +msgstr "várakozás" + +msgid "water sport" +msgstr "vizi sport" + +msgid "weekly" +msgstr "hetente" + +msgid "west" +msgstr "nyugat" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "fehér" + +msgid "whitelist" +msgstr "engedélyezett lista" + +msgid "width" +msgstr "szélesség" + +msgid "winter sport" +msgstr "téli sport" + +msgid "wireless network interface" +msgstr "Vezeték nélküli hálózati interfész" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "%d hibával" +msgstr[1] "%d hibákkal" + +msgid "working" +msgstr "működÅ‘képes" + +msgid "yellow" +msgstr "sárga" + +msgid "yes" +msgstr "igen" + +msgid "yes (keep feeds)" +msgstr "igen (feed-ek megtartása)" + +msgid "zap" +msgstr "ugrás" + +msgid "zap and record" +msgstr "ugrás és felvétel" + +msgid "zapped" +msgstr "ugrott" + +#~ msgid "AA" +#~ msgstr "AA" + +#~ msgid "AB" +#~ msgstr "AB" + +#~ msgid "Activate PiP" +#~ msgstr "Kép-a-Képben bekapcsolása" + +#~ msgid "Add/remove timer for current event" +#~ msgstr "Aktuális esemény idÅ‘zítésének kezelése" + +#~ msgid "Adjust HDMI CEC settings" +#~ msgstr "HDMI CEC távvezérlési beállítások" + +#~ msgid "All satellites" +#~ msgstr "Összes műhold" + +#~ msgid "And will shutdown your receiver over " +#~ msgstr "Kikapcsolás:" + +#~ msgid "BA" +#~ msgstr "BA" + +#~ msgid "BB" +#~ msgstr "BB" + +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "A 'szünet' gomb amikor a lejátszás szüneteltetve van" + +#~ msgid "Committed DiSEqC command" +#~ msgstr "Elkötelezett DiSEqC parancs" + +#~ msgid "Configure if and how service type icons will be shown." +#~ msgstr "A csatornák típusának megjelenítésének módja és lehetÅ‘sége a csatornalistában" + +#~ msgid "Configure if service picons will be shown in the servicelist." +#~ msgstr "A csatornák pikonjainak megjelenítésének módja és lehetÅ‘sége a csatornalistában." + +#~ msgid "Configure the behavior of the 'pause' key when movie playback is already paused." +#~ msgstr "A 'szünet' gomb működése abban az esetben, amikor a lejástás már szüneteltetett állapotban van." + +#~ msgid "Configure the duration in hours and action, which could be shut down or standby, when the receiver is not controlled." +#~ msgstr "Ennyi óra tétlenség után mi történjen: kikapcsolás, készenlét." + +#~ msgid "Configure the duration in minutes and action, which could be shut down or standby, for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +#~ msgstr "Ennyi perc után mi történjen: kikapcsolás, készenlét (elalvás idÅ‘zítés). Válassza ezt a menüpontot, majd az OK vagy a zöld gomb lenyomásával aktiválja a beállítást az elalváshoz." + +#~ msgid "DiSEqC repeats" +#~ msgstr "DiSEqC ismétlések" + +#~ msgid "Goto specific data/time" +#~ msgstr "Ugrás bizonyos dátum/idÅ‘re" + +#~ msgid "Hide numbered markers" +#~ msgstr "Sorszámozott elválasztók elrejtése" + +#~ msgid "Memory positions" +#~ msgstr "Pozíció memória" + +#~ msgid "No satellite frontend found!!" +#~ msgstr "Nem találtam műholdas tunert!!" + +#~ msgid "Open service list and select next channel" +#~ msgstr "Csatornalista megnnyítása és a következÅ‘ csatorna választása" + +#~ msgid "Open service list and select previous channel" +#~ msgstr "Csatornalista megnnyítása és az elÅ‘zÅ‘ csatorna választása" + +#~ msgid "PPanels" +#~ msgstr "PPanel-ek" + +#~ msgid "Press '0' to toggle internal/external PiP." +#~ msgstr "A Kép-a-Képben felcserélése a '0' gombbal történik." + +#~ msgid "Remove timer" +#~ msgstr "IdÅ‘zítés eltávolítása" + +#~ msgid "Send DiSEqC" +#~ msgstr "DiSEqC-küldés" + +#~ msgid "Show picons in servicelist" +#~ msgstr "Pikonok mejelenítése a csatornalistában" + +#~ msgid "Shutdown after current event" +#~ msgstr "Kikapcsolás az aktuális műsor végén" + +#~ msgid "Shutdown in " +#~ msgstr "Kikapcsolás: " + +#~ msgid "Switch next channel" +#~ msgstr "KövetkezÅ‘ csatorna" + +#~ msgid "Tuning step size" +#~ msgstr "Hangolás léptéke" + +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Nem elkötelezett DiSEqC parancs" + +#~ msgid "When enabled, numbered markers will be hiden." +#~ msgstr "A csatornalistában esetleg lévÅ‘, sorszámozott elválasztó elemek elrejtése." + +#~ msgid "Your receiver will shutdown due to inactivity." +#~ msgstr "A készülék most kikapcsol inaktivitás miatt." + +#~ msgid "Your receiver will shutdown due to the sleeptimer." +#~ msgstr "A készülék most kikapcsol elalvás-idÅ‘zítés miatt." + +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "Ugorjunk vissza a műholdkeresÅ‘ elött nézett csatornához?" + +#~ msgid "tuner is not supported" +#~ msgstr "nem támogatott tuner" diff --git a/po/is.po b/po/is.po new file mode 100644 index 0000000..ed9d2a0 --- /dev/null +++ b/po/is.po @@ -0,0 +1,9473 @@ +# Icelandic translations for Enigma2. +# +msgid "" +msgstr "" +"Project-Id-Version: enigma2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2011-05-07 12:23+0200\n" +"Last-Translator: Baldur <bsveinsson@gmail.com>\n" +"Language-Team: Polar Team/LT Team <baddi@oreind.is>\n" +"Language: is\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-Generator: Pootle 2.0.3\n" +"X-Poedit-Language: Icelandic\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-Country: ICELAND\n" + +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"Auka sérfræði stillingar." + +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"Bíðið eftir að hafa ýtt á OK!" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" + +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"Breyta veffangi uppfærslu uppruna." + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" + +# +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"Ãtið á OK á fjarstýringunni til að halda áfram." + +# +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"Setja inn stilligar eftir dagsetningu." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" + +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"Leita að viðbótum á móttakara og setja þær upp." + +# +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Veldu afritunar tæki.\n" +"Núverandi tæki:" + +# +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"Skoða, setja inn og taka út hugbúnaðar pakka." + +msgid " (PiP)" +msgstr "" + +msgid " (Radio)" +msgstr "" + +msgid " (TV)" +msgstr "" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +msgid " extensions." +msgstr " viðbætur." + +msgid " ms" +msgstr " ms" + +# +msgid " packages selected." +msgstr " pakkar valdir." + +# +msgid " updates available." +msgstr " uppfærslur tiltækar." + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "" + +msgid "%A %d %B" +msgstr "" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "" + +# +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "" + +# +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, fuzzy, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "%d rásir fundnar!" +msgstr[1] "%d rásir fundnar!" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" + +# +#, fuzzy, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d verk eru í vinnslu í bakgrunni!" +msgstr[1] "%d verk eru í vinnslu í bakgrunni!" + +# +#, python-format +msgid "%d min" +msgstr "%d min" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d minutes" +msgstr "" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "" +msgstr[1] "" + +# +#, fuzzy, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "/var mappa" +msgstr[1] "/var mappa" + +# +#, fuzzy, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "fann 1 þráðlaust net!" +msgstr[1] "fann 1 þráðlaust net!" + +msgid "%d-%b-%Y %-H:%M" +msgstr "" + +msgid "%d-%m" +msgstr "" + +# +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "" + +# +#, fuzzy, python-format +msgid "%s %s free disk space" +msgstr "laust diskpláss" + +# +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "" + +# +#, fuzzy, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] " uppfærslur tiltækar." +msgstr[1] " uppfærslur tiltækar." + +#, python-format +msgid "%s%d min" +msgstr "" + +#, python-format +msgid "%s/%s: %s" +msgstr "" + +# +msgid "(ZAP)" +msgstr "(STÖKK)" + +# +msgid "(empty)" +msgstr "(tómt)" + +# +msgid "(show optional DVD audio menu)" +msgstr "(sýna viðbótar DVD hljóð valmynd)" + +# +msgid "* Only available if more than one interface is active." +msgstr "* Bara virkt ef að fleira en eitt tæki er virkt." + +msgid "/s" +msgstr "" + +# +msgid "0" +msgstr "0" + +# +msgid "1" +msgstr "1" + +# +msgid "1.0" +msgstr "1.0" + +# +msgid "1.1" +msgstr "1.1" + +# +msgid "1.2" +msgstr "1.2" + +# +msgid "12V output" +msgstr "12V út" + +# +msgid "13 V" +msgstr "13 V" + +# +msgid "16:10" +msgstr "16:10" + +# +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +# +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +# +msgid "16:9" +msgstr "16:9" + +# +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +# +msgid "16:9 always" +msgstr "16:9 alltaf" + +# +msgid "18 V" +msgstr "18 V" + +# +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "" + +msgid "24" +msgstr "" + +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +# +msgid "3" +msgstr "3" + +msgid "30" +msgstr "" + +msgid "3d mode" +msgstr "" + +# +msgid "4" +msgstr "4" + +# +msgid "4:3" +msgstr "4:3" + +# +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +# +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +# +msgid "5" +msgstr "5" + +# +msgid "6" +msgstr "6" + +# +msgid "7" +msgstr "7" + +# +msgid "8" +msgstr "8" + +# +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +msgid "<Current movielist location>" +msgstr "<Núverandi staður bíómyndalista>" + +msgid "<Default movie location>" +msgstr "<Sjálfgefinn staður bíómynda>" + +msgid "<Last timer location>" +msgstr "<Síðasti staður tímastillinga>" + +msgid "<unknown>" +msgstr "<óþekkt>" + +msgid "??" +msgstr "??" + +msgid "A" +msgstr "A" + +# +#, fuzzy, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"Stillingaskrá (%s) er breytt síðan uppsetning var gerð.\n" +"Viltu halda þinni útgáfu?" + +# +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"Stillingaskrá (%s) er breytt síðan uppsetning var gerð.\n" +"Viltu halda þinni útgáfu?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +# +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "Myndrænt EPG fyrir allar rásir á ákveðnum rásavendi" + +# +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"Upptaka hefur hafist:\n" +"%s" + +# +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"Upptaka er nú í gangi.\n" +"Hvað viltu núna gera?" + +# +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "Upptaka er nú í gangi. Stoppið vinsamlega upptökuna áður en að þú reynir að stilla staðsetjara." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "" + +# +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "Upptaka er í gangi núna. Stoppaðu upptökuna áður en að þú byrjar gervihnattaleit." + +# +#, python-format +msgid "A required tool (%s) was not found." +msgstr "Nauðsynlegt tól (%s) fannst ekki." + +msgid "A search for available updates is currently in progress." +msgstr "Leit að tiltækum uppfærslum í gangi." + +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"Annað uppsett netkort fannst.\n" +"\n" +"Viltu hætta að nota það?" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +# +msgid "A small overview of the available icon states and actions." +msgstr "Einfalt yfirlit yfir stöðu smámynda og aðgerða." + +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"Tímastillt upptaka mistókst!\n" +"Hætta og reyna aftur?\n" + +# +#, fuzzy +msgid "A/V settings" +msgstr "Stilla hljóð/mynd" + +msgid "AC3/DTS downmix" +msgstr "" + +# +msgid "Abort" +msgstr "Hætta við" + +msgid "About" +msgstr "Um" + +msgid "About..." +msgstr "Um..." + +# +msgid "Accesspoint:" +msgstr "Aðgangspunktur:" + +# +msgid "Action on long powerbutton press" +msgstr "Hvað skal gera ef ýtt er lengi á power takka" + +msgid "Action on short powerbutton press" +msgstr "Hvað skal gera ef ýtt er stutt á straumrofa" + +# +msgid "Activate Picture in Picture" +msgstr "Virkja Mynd í Mynd" + +# +#, fuzzy +msgid "Activate current configuration" +msgstr "virkja núverandi stillingar" + +# +msgid "Activate network settings" +msgstr "Virkja netkerfis stillingar" + +# +#, fuzzy +msgid "Activate the configured network settings." +msgstr "Virkja netkerfis stillingar" + +# +msgid "Adapter settings" +msgstr "Stilling tækis" + +# +msgid "Add" +msgstr "Viðbót" + +# +msgid "Add Bookmark" +msgstr "Bæta við bókamerki" + +# +msgid "Add a mark" +msgstr "Bæta við merki" + +# +#, fuzzy +msgid "Add a nameserver entry" +msgstr "bæta við nafnaþjón" + +# +msgid "Add a new title" +msgstr "Bæta við nýjum titli" + +# +#, fuzzy +msgid "Add bookmark" +msgstr "bæta við bókamerki" + +# +#, fuzzy +msgid "Add directory to playlist" +msgstr "bæta möppu við spilunarlista" + +# +#, fuzzy +msgid "Add file to playlist" +msgstr "bæta skrá við spilunarlista" + +# +#, fuzzy +msgid "Add files to playlist" +msgstr "bæta rásum við spilunarlista" + +msgid "Add more details to the crash log" +msgstr "" + +# +#, fuzzy +msgid "Add provider" +msgstr "bæta við sendanda" + +# +#, fuzzy +msgid "Add recording (enter recording duration)" +msgstr "bæta við upptöku (stilla tíma á upptöku)" + +# +#, fuzzy +msgid "Add recording (enter recording endtime)" +msgstr "bæta við upptöku (velja tímalok upptöku)" + +# +#, fuzzy +msgid "Add recording (indefinitely)" +msgstr "bæta við upptöku (endalaus)" + +# +#, fuzzy +msgid "Add recording (stop after current event)" +msgstr "bæta við upptöku (stoppa eftir núverandi atriði)" + +# +#, fuzzy +msgid "Add service" +msgstr "bæta við rás" + +msgid "Add timer" +msgstr "Taka upp" + +msgid "Add title" +msgstr "Bæta við titli" + +msgid "Add to bouquet" +msgstr "Bæta við rásavönd" + +msgid "Add to favourites" +msgstr "Bæta við eftirlætisrásir" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "" + +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "Stilltu lita stillingar þannig að öll litablæbrigði séu aðgreinanleg og eru eins björt og hægt er. Ef þú ert ánægður með árangurinn, ýttu þá á OK til að loka stillinga skjánum eða ýttu á númeralykil til að velja aðra prufumynd." + +msgid "Advanced" +msgstr "" + +#, fuzzy +msgid "Advanced options" +msgstr "Sérfræði stillingar" + +msgid "Advanced restore" +msgstr "Sérfræði innsetning afrita" + +#, fuzzy +msgid "Advanced software" +msgstr "Hugbúnaður sérfræðinga" + +#, fuzzy +msgid "Advanced software plugin" +msgstr "Sérfræði íforrit" + +#, fuzzy +msgid "Advanced video enhancement setup" +msgstr "Myndstillingar fyrir lengra komna" + +#, fuzzy +msgid "Advanced video setup" +msgstr "Sérfræði myndstillingar" + +msgid "After event" +msgstr "Eftir atriði" + +msgid "Album" +msgstr "Album" + +msgid "Alignment of events" +msgstr "" + +msgid "Alignment of service names" +msgstr "" + +msgid "All" +msgstr "Allt" + +msgid "All ages" +msgstr "" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "" + +msgid "Allocate unused memory index" +msgstr "" + +msgid "Allow quit movieplayer with exit" +msgstr "" + +msgid "Allow subtitle language to equal audio language" +msgstr "" + +msgid "Allow subtitles for hearing impaired" +msgstr "" + +msgid "Alpha" +msgstr "Gegnsæi" + +# +#, fuzzy +msgid "Alternative" +msgstr "bæta við valkosti" + +#, fuzzy +msgid "Alternative numbering mode" +msgstr "Möguleika útvarps stilling" + +msgid "Alternative services tuner priority" +msgstr "Móttakara forgangur við rásaval" + +msgid "Always ask" +msgstr "Spyrja alltaf" + +msgid "Always hide infobar" +msgstr "" + +msgid "An empty filename is illegal." +msgstr "Það þarf að vera skráarnafn." + +# +#, fuzzy +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "Það varð villa við niðurhal pakka listans. Vinsamlega prófaðu aftur." + +msgid "An unknown error occurred!" +msgstr "Óþekkt villa varð!" + +msgid "And will put your receiver in standby over " +msgstr "" + +msgid "Any activity" +msgstr "" + +msgid "Arabic" +msgstr "Arabíska" + +msgid "Are you sure to remove this entry?" +msgstr "" + +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"Ertu viss um að þú viljir virkja þessa net stillingu?\n" +"\n" + +#, fuzzy +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"Ertu viss um að þú viljir eyða\n" +"eftirfarandi afriti:\n" + +msgid "Are you sure you want to exit this wizard?" +msgstr "Ertu viss um að þú viljir hætta í ráðgjafanum?" + +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"Ertu viss um að þú viljir endurræsa netkortið?\n" +"\n" + +#, fuzzy, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Ertu viss um að þú viljir setja inn þetta Enigma2 afrit?\n" +"Enigma2 mun endurræsa eftir innsetningu" + +#, fuzzy +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Ertu viss um að þú viljir setja inn þetta Enigma2 afrit?\n" +"Enigma2 mun endurræsa eftir innsetningu" + +msgid "Artist" +msgstr "Listamaður" + +msgid "Arts/Culture" +msgstr "" + +msgid "Ask user" +msgstr "Spyrja notanda" + +#, fuzzy +msgid "Aspect ratio" +msgstr "Stærðarhlutfall" + +# +#, fuzzy +msgid "Assigned CAIds:" +msgstr "úthlutað CAIds:" + +# +#, fuzzy +msgid "Assigned services/provider:" +msgstr "úthlutaðar rásir/sendendur:" + +#, fuzzy +msgid "At beginning" +msgstr "að byrjun" + +#, fuzzy +msgid "At end" +msgstr "að enda" + +msgid "Audio" +msgstr "Hljóð" + +msgid "Audio PID" +msgstr "Hljóð PID" + +msgid "Audio language selection 1" +msgstr "" + +msgid "Audio language selection 2" +msgstr "" + +msgid "Audio language selection 3" +msgstr "" + +msgid "Audio language selection 4" +msgstr "" + +#, fuzzy +msgid "Audio options..." +msgstr "Hljóð stillingar..." + +# +#, fuzzy, python-format +msgid "Audio track (%s) format" +msgstr "hljóð rás (%s) form" + +# +#, fuzzy, python-format +msgid "Audio track (%s) language" +msgstr "hljóð rás (%s) tungumál" + +msgid "Author: " +msgstr "Höfundur:" + +msgid "Authoring mode" +msgstr "Höfunda hamur" + +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Sjálfvirkt" + +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Skipta í kafla hverja ? mínútu (0=aldrei)" + +msgid "Auto flesh" +msgstr "Sjálfvirkt skinn" + +msgid "Auto focus" +msgstr "" + +msgid "Auto focus commencing ..." +msgstr "" + +msgid "Auto language selection" +msgstr "" + +msgid "Auto scart switching" +msgstr "Sjálfvirk skipting á scarti" + +msgid "Automatic" +msgstr "Sjálfvirkt" + +#, fuzzy +msgid "Automatic scan" +msgstr "Sjálfvirk leit" + +msgid "Automatically start timeshift after" +msgstr "" + +msgid "Automatically turn on external subtitles" +msgstr "" + +msgid "Available format variables" +msgstr "Útfærslur tiltækra forma" + +msgid "B" +msgstr "B" + +msgid "BER" +msgstr "BER" + +msgid "BER:" +msgstr "BER:" + +msgid "Back" +msgstr "Til baka" + +msgid "Background" +msgstr "Bakgrunnur" + +# +#, fuzzy +msgid "Background color" +msgstr "bakgrunnslitur" + +msgid "Background delete option" +msgstr "" + +msgid "Background delete speed" +msgstr "" + +#, fuzzy +msgid "Backup completed." +msgstr "Afritun tókst ekki." + +msgid "Backup failed." +msgstr "Afritun tókst ekki." + +msgid "Backup is running..." +msgstr "Afritun í vinnslu..." + +msgid "Backup system settings" +msgstr "Afrita kerfis stillingar" + +msgid "Band" +msgstr "Tíðnisvið" + +msgid "Bandwidth" +msgstr "Bandbreidd" + +msgid "Basque" +msgstr "" + +msgid "Begin time" +msgstr "Byrjunar tími" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +msgid "Behavior of 0 key in PiP-mode" +msgstr "Virkun 0 hnapps í PiP-ham" + +msgid "Behavior when a movie is started" +msgstr "Aðgerð þegar mynd byrjar" + +msgid "Behavior when a movie is stopped" +msgstr "Aðgerð þegar mynd er stoppuð" + +msgid "Behavior when a movie reaches the end" +msgstr "Aðgerð þegar mynd er búin" + +msgid "Big PiP" +msgstr "" + +msgid "Bitrate:" +msgstr "Bitahraði:" + +msgid "Black screen" +msgstr "" + +msgid "Black screen till locked" +msgstr "" + +msgid "Block noise reduction" +msgstr "Suð deyfing" + +msgid "Blue boost" +msgstr "Auka bláan" + +msgid "Bookmarks" +msgstr "Bókamerki" + +msgid "Brightness" +msgstr "Birta" + +msgid "Bulgarian" +msgstr "" + +msgid "Burn DVD" +msgstr "Brenna DVD" + +# +#, fuzzy, python-format +msgid "Burn audio track (%s)" +msgstr "brenna hljóð rás (%s)" + +msgid "Burn existing image to DVD" +msgstr "Brenna tilbúna mynd á DVD" + +msgid "Burn to DVD" +msgstr "Brenna á DVD" + +msgid "Bus: " +msgstr "Rás:" + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "" + +msgid "C" +msgstr "C" + +msgid "C-Band" +msgstr "C-Band" + +msgid "CH" +msgstr "" + +msgid "CI assignment" +msgstr "CI stillingar" + +msgid "CVBS" +msgstr "CVBS" + +msgid "Cable" +msgstr "Kapalkerfi" + +msgid "Cable Scan" +msgstr "" + +#, fuzzy +msgid "Cache thumbnails" +msgstr "Taka nyndir í skyndiminni" + +msgid "Calculate" +msgstr "" + +msgid "Calculate all positions" +msgstr "" + +msgid "Calculation complete" +msgstr "" + +msgid "Calibrate" +msgstr "" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "" + +msgid "Cancel" +msgstr "Hætta við" + +msgid "Cannot determine" +msgstr "" + +msgid "Cannot find any signal ..., aborting !" +msgstr "" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "" + +msgid "Cannot move to trash can" +msgstr "" + +msgid "Capacity: " +msgstr "Stærð:" + +msgid "Card" +msgstr "Kort" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "" + +msgid "Center time-labels and remove date" +msgstr "" + +msgid "Change bouquets in quickzap" +msgstr "Skipta á milli rása flétta í rásastökki" + +msgid "Change pin code" +msgstr "Breyta aðgangskóða" + +# +#, fuzzy +msgid "Change recording (duration)" +msgstr "breyta upptöku (tíma)" + +# +#, fuzzy +msgid "Change recording (endtime)" +msgstr "breyta upptöku (lokatíma)" + +msgid "Change repeat and delay settings?" +msgstr "" + +msgid "Change service PIN" +msgstr "Breyta aðgangsorði fyrir rásir" + +msgid "Change service PINs" +msgstr "Breyta aðgangsorðum fyrir rásir" + +msgid "Change setup PIN" +msgstr "Breyta aðgangsorði fyrir uppsetningu" + +msgid "Change step size" +msgstr "Breyta skrefa stærð" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "Breytingaskrá" + +msgid "Channel" +msgstr "Rás" + +#, fuzzy +msgid "Channel list type" +msgstr "Valmynd rásalista" + +msgid "Channel not in services list" +msgstr "Rás ekki á rásalista" + +#, fuzzy +msgid "Channel selection" +msgstr "Rása val" + +msgid "Channel:" +msgstr "Rás:" + +msgid "Channellist menu" +msgstr "Valmynd rásalista" + +msgid "Chap." +msgstr "Kafli." + +msgid "Chapter" +msgstr "Kafli" + +msgid "Chapter:" +msgstr "Kafli:" + +msgid "Check" +msgstr "Athuga" + +msgid "Check the internet connection" +msgstr "" + +msgid "Check the internet connection again" +msgstr "" + +#, fuzzy +msgid "Checking filesystem..." +msgstr "Athuga skráarkerfi..." + +msgid "Checking the internet connection" +msgstr "" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" + +msgid "Children/Youth" +msgstr "" + +msgid "Choose which tuner to configure." +msgstr "" + +msgid "Circular left" +msgstr "Hringpólun vinstri" + +msgid "Circular right" +msgstr "Hringpólun hægri" + +msgid "Cleanup" +msgstr "Hreinsa" + +msgid "Clear" +msgstr "" + +msgid "Clear before scan" +msgstr "Eyða fyrir leit" + +msgid "Clear fixed" +msgstr "" + +msgid "Clear log" +msgstr "Tæma lista" + +# +#, fuzzy +msgid "Clear playlist" +msgstr "hreinsa spilunarlista" + +msgid "Close" +msgstr "Loka" + +msgid "Close PiP on exit" +msgstr "" + +msgid "Close title selection" +msgstr "Loka titils vali" + +msgid "Code rate HP" +msgstr "Bitahraði HP" + +msgid "Code rate LP" +msgstr "Bitahraði LP" + +msgid "Coderate HP" +msgstr "Gagnahraði HP" + +msgid "Coderate LP" +msgstr "Gagnahraði LP" + +msgid "Collection name" +msgstr "Nafn safns" + +msgid "Collection settings" +msgstr "Stillingar safns" + +#, fuzzy +msgid "Color format" +msgstr "Lita kerfi" + +msgid "Command execution..." +msgstr "Keyrsla skipunar..." + +msgid "Command order" +msgstr "Röðun skipana" + +msgid "Common Interface" +msgstr "Afruglara tengi" + +#, fuzzy +msgid "Common Interface assignment" +msgstr "Stillingar afruglara tengis" + +msgid "Communication" +msgstr "Samskipti" + +#, fuzzy +msgid "Compact flash" +msgstr "Compact Flash" + +msgid "Complete" +msgstr "Allt" + +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "Flókið (mögulegt að blanda hljóð rásir og stærðar hlutföll)" + +msgid "Composition of the recording filenames" +msgstr "Samsetning nafna á upptökum" + +#, fuzzy +msgid "Configuration mode" +msgstr "Stillinga hamur" + +#, fuzzy, python-format +msgid "Configuration mode: %s" +msgstr "Stillinga hamur" + +# +#, fuzzy +msgid "Configuration..." +msgstr "Stilling nettengingar..." + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "" + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "" + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "" + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "" + +msgid "Configure how recording filenames are constructed." +msgstr "" + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +msgid "Configure interface" +msgstr "Stilla netkort" + +msgid "Configure nameservers" +msgstr "Stilla nafnaþjón" + +msgid "Configure on which devices the background delete option should be used." +msgstr "" + +# +#, fuzzy +msgid "Configure remote control type" +msgstr "Gerð foreldrastýringar" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "" + +#, fuzzy +msgid "Configure the IP address." +msgstr "Stilla netkort" + +msgid "Configure the aspect ratio of the screen." +msgstr "" + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +#, fuzzy +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "Aðgerð þegar mynd er stoppuð" + +#, fuzzy +msgid "Configure the behavior when movie playback is started." +msgstr "Aðgerð þegar mynd byrjar" + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "" + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "" + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "" + +msgid "Configure the brightness level of the front panel display." +msgstr "" + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "" + +msgid "Configure the color of the teletext subtitles." +msgstr "" + +msgid "Configure the contrast level of the front panel display." +msgstr "" + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "" + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "" + +msgid "Configure the first audio language (highest priority)." +msgstr "" + +msgid "Configure the first subtitle language (highest priority)." +msgstr "" + +msgid "Configure the font size of the subtitles." +msgstr "" + +msgid "Configure the fourth audio language." +msgstr "" + +# +#, fuzzy +msgid "Configure the fourth subtitle language." +msgstr "skipta á næsta undirtexta" + +msgid "Configure the function of a long press on the power button." +msgstr "" + +msgid "Configure the function of a short press on the power button." +msgstr "" + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "" + +#, fuzzy +msgid "Configure the gateway." +msgstr "Stilla netkort" + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "" + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "" + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "" + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "" + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "" + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "" + +msgid "Configure the latitude of your location." +msgstr "" + +msgid "Configure the longitude of your location." +msgstr "" + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "" + +#, fuzzy +msgid "Configure the nameserver (DNS)." +msgstr "Stilla nafnaþjón" + +#, fuzzy +msgid "Configure the netmask." +msgstr "Stilla netkort" + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "" + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "" + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "" + +#, fuzzy +msgid "Configure the possible fast forward speeds." +msgstr "Byrjunar hraði hraðspólunar áfram" + +msgid "Configure the possible rewind speeds." +msgstr "" + +msgid "Configure the primary EPG language." +msgstr "" + +msgid "Configure the refresh rate of the screen." +msgstr "" + +msgid "Configure the screen resolution in PC output mode." +msgstr "" + +msgid "Configure the second audio language." +msgstr "" + +# +#, fuzzy +msgid "Configure the second subtitle language." +msgstr "skipta á næsta undirtexta" + +msgid "Configure the secondary EPG language." +msgstr "" + +msgid "Configure the sharpness of the video scaling." +msgstr "" + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "" + +# +#, fuzzy +msgid "Configure the slow motion speeds." +msgstr "Hraði hægspilunar" + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "" + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "" + +msgid "Configure the third audio language." +msgstr "" + +# +#, fuzzy +msgid "Configure the third subtitle language." +msgstr "skipta á næsta undirtexta" + +msgid "Configure the transparency of the OSD." +msgstr "" + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "" + +#, fuzzy +msgid "Configure the tuner mode." +msgstr "Stillinga hamur" + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "" + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "" + +msgid "Configure the video output mode (or resolution)." +msgstr "" + +msgid "Configure the way in which the receiver changes channels." +msgstr "" + +msgid "Configure where completed timers show up in the timer list." +msgstr "" + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "" + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "" + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "" + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "" + +msgid "Configure which color format should be used on the SCART output." +msgstr "" + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "" + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "" + +msgid "Configure your internal LAN" +msgstr "Stilla innbyggt netkort" + +msgid "Configure your network again" +msgstr "Stilla netkortið þitt aftur" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "" + +msgid "Configure your wireless LAN again" +msgstr "Stilla þráðlausa netkortið þitt aftur" + +msgid "Configures which video output connector will be used." +msgstr "" + +msgid "Configuring" +msgstr "Stilli" + +msgid "Conflicting timer" +msgstr "Tímastilling skarast" + +msgid "Connect" +msgstr "Tengi" + +#, fuzzy +msgid "Connect to a wireless network" +msgstr "Tengist við þráðlaust net" + +msgid "Connected satellites" +msgstr "" + +msgid "Connected to" +msgstr "Tengd við" + +msgid "Connected!" +msgstr "Tengdur!" + +msgid "Constellation" +msgstr "Constellation" + +msgid "Content does not fit on DVD!" +msgstr "Innihald passar ekki á DVD!" + +# +msgid "Continue" +msgstr "Ãfram" + +msgid "Continue in background" +msgstr "Halda áfram í bakgrunni" + +#, fuzzy +msgid "Continue playback" +msgstr "Halda áfram að spila" + +msgid "Continue playing" +msgstr "Halda áfram að spila" + +msgid "Continues play (loop)" +msgstr "" + +msgid "Contrast" +msgstr "Skerpa" + +msgid "Convert ext3 filesystem to ext4" +msgstr "" + +msgid "Convert ext3 to ext4" +msgstr "" + +msgid "Converting ext3 to ext4..." +msgstr "" + +msgid "Copy" +msgstr "" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "" + +msgid "Could not find installed channel list." +msgstr "" + +#, fuzzy +msgid "Could not load medium! No disc inserted?" +msgstr "Gat ekki lesið disk! Er enginn diskur í drifi?" + +msgid "Could not open Picture in Picture" +msgstr "Gat ekki opnað mynd í mynd" + +#, fuzzy, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "Gat ekki tekið upp vegna skörunar á tímastillingum %s" + +#, fuzzy, python-format +msgid "Could not record due to invalid service %s" +msgstr "Gat ekki tekið upp vegna þess að rásin %s er ekki í lagi" + +msgid "Create DVD-ISO" +msgstr "Búa til DVD-ISO" + +msgid "Create more detailed crash log" +msgstr "" + +#, python-format +msgid "Creating directory %s failed." +msgstr "Tókst ekki að búa möppuna %s." + +#, fuzzy +msgid "Creating filesystem" +msgstr "Athuga skráarkerfi..." + +msgid "Creating partition" +msgstr "" + +msgid "Croatian" +msgstr "Króatíska" + +msgid "Current CEC address" +msgstr "" + +msgid "Current device: " +msgstr "Núverandi tæki: " + +msgid "Current event EPG" +msgstr "" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +msgid "Current settings:" +msgstr "Núverandi stilling:" + +#, fuzzy +msgid "Current transponder" +msgstr "Núverandi sendir" + +msgid "Current value: " +msgstr "Núverandi val:" + +msgid "Current version:" +msgstr "Núverandi útgáfa:" + +msgid "Currently installed image" +msgstr "Núverandi stýrikerfi" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +#, fuzzy +msgid "Custom skip time for '1'/'3' buttons" +msgstr "Stilltur stökktími fyrir 1 og 3 takka" + +#, fuzzy +msgid "Custom skip time for '4'/'6' buttons" +msgstr "Stilltur stökk fyrir 4 og 6 takka" + +#, fuzzy +msgid "Custom skip time for '7'/'9' buttons" +msgstr "Stilltur stökk fyrir 7 og 9 takka" + +msgid "Customize" +msgstr "Aðrar stillingar" + +msgid "Customize channel list cursor behavior" +msgstr "" + +msgid "Cut" +msgstr "Klippa" + +msgid "Cutlist editor..." +msgstr "Klippingastjóri..." + +msgid "Czech" +msgstr "Tékkneska" + +msgid "D" +msgstr "D" + +msgid "DHCP" +msgstr "DHCP" + +# +#, fuzzy +msgid "DMM advanced" +msgstr "meiri stillingar" + +msgid "DMM normal" +msgstr "" + +msgid "DUAL LAYER DVD" +msgstr "Tveggja laga DVD" + +msgid "DVB subtitle black transparency" +msgstr "" + +msgid "DVB-C" +msgstr "" + +msgid "DVB-C ANNEX C" +msgstr "" + +msgid "DVB-S" +msgstr "DVB-S" + +# +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "" + +msgid "DVB-T2" +msgstr "" + +msgid "DVD data format" +msgstr "" + +#, fuzzy +msgid "DVD file browser" +msgstr "DVD skráar stjóri" + +# +msgid "DVD media toolbox" +msgstr "DVD miðla tól" + +# +#, fuzzy +msgid "DVD player" +msgstr "DVD spilari" + +# +#, fuzzy +msgid "DVD titlelist" +msgstr "DVD titlaskrá" + +# +msgid "Danish" +msgstr "Danska" + +# +msgid "Date" +msgstr "Dags" + +# +#, fuzzy +msgid "Date/time input" +msgstr "Tíma/Dags Innsláttur" + +# +#, fuzzy +msgid "Deep standby" +msgstr "Djúp biðstaða" + +# +msgid "Default" +msgstr "Venjulegt" + +msgid "Default movie location" +msgstr "Sjálfgefin staðsetning bíómynda" + +# +#, fuzzy +msgid "Default settings" +msgstr "Upphafs stillingar" + +msgid "Delay before key repeat starts:" +msgstr "" + +msgid "Delay for external subtitles" +msgstr "" + +# +msgid "Delete" +msgstr "Eyða" + +# +msgid "Delete entry" +msgstr "Eyða innslætti" + +# +msgid "Delete failed!" +msgstr "Tókst ekki að eyða!" + +# +#, fuzzy +msgid "Delete file" +msgstr "eyða skrá" + +# +#, fuzzy +msgid "Delete playlist entry" +msgstr "eyða atriði úr spilunarlista" + +# +#, fuzzy +msgid "Delete saved playlist" +msgstr "eyða vistuðum spilunarlista" + +msgid "Delete timer" +msgstr "" + +# +#, fuzzy +msgid "Delete..." +msgstr "eyða...." + +msgid "Deleted" +msgstr "" + +msgid "Deleted items" +msgstr "" + +msgid "Depth" +msgstr "" + +msgid "Descramble http streams" +msgstr "" + +# +msgid "Description" +msgstr "Lýsing" + +# +msgid "Deselect" +msgstr "Ekki velja" + +msgid "Details for plugin: " +msgstr "Upplýsingar um íforrit:" + +# +msgid "Detected HDD:" +msgstr "Fann harðan disk:" + +# +msgid "Detected NIMs:" +msgstr "Fann NIM:" + +msgid "Devicename:" +msgstr "" + +msgid "Devide" +msgstr "" + +# +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +# +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +# +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +# +msgid "DiSEqC mode" +msgstr "DiSEqC gerð" + +# +#, fuzzy, python-format +msgid "DiSEqC port %s: %s" +msgstr "DiSEqC endurtekning" + +# +#, fuzzy +msgid "DiSEqC-tester settings" +msgstr "DiSEqC prufu stillingar" + +# +msgid "Dialing:" +msgstr "Hringi:" + +# +msgid "Digital contour removal" +msgstr "Fjarlægja stafrænt contour" + +# +msgid "Direct playback of linked titles without menu" +msgstr "Spila beint tengda titla án valmyndar" + +msgid "Directory" +msgstr "" + +# +#, fuzzy, python-format +msgid "Directory %s does not exist." +msgstr "Mappa %s ekki til." + +#, python-format +msgid "Directory %s nonexistent." +msgstr "" + +# +msgid "Directory browser" +msgstr "Möppu vafri" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "" + +# +#, fuzzy, python-format +msgid "Directory contains %s and %s." +msgstr "Mappa %s ekki til." + +# +msgid "Disable" +msgstr "Gera óvirkt" + +# +msgid "Disable Picture in Picture" +msgstr "Gera Mynd í Mynd óvirka" + +msgid "Disable background scanning" +msgstr "" + +msgid "Disable timer" +msgstr "" + +# +msgid "Disabled" +msgstr "Óvirkt" + +# +msgid "Disconnect" +msgstr "Aftengja" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "" + +# +msgid "Display 16:9 content as" +msgstr "Sýna 16:9 innihald sem" + +# +msgid "Display 4:3 content as" +msgstr "Sýna 4:3 innihald sem" + +# +msgid "Display >16:9 content as" +msgstr "Sýna >16:9 efni sem" + +# +#, fuzzy +msgid "Display and userinterface" +msgstr "Skjár og notenda viðmót" + +msgid "Display message before playing next movie" +msgstr "" + +# +#, fuzzy +msgid "Display setup" +msgstr "Uppsetning skjás" + +# +#, fuzzy +msgid "Do not change" +msgstr "ekki breyta" + +# +#, fuzzy +msgid "Do not record" +msgstr "ekki taka upp" + +# +#, fuzzy +msgid "Do nothing" +msgstr "ekki gera neitt" + +# +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Viltu örugglega athuga skráarkerfi?\n" +"Það tekur langan tíma!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" + +# +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Viltu virkilega eyða %s?" + +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"Viltu örugglega hala niður\n" +"íforritinu \"%s\"?" + +# +msgid "Do you really want to exit?" +msgstr "Viltu virkilega hætta?" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" + +#, fuzzy, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"Viltu örugglega hala niður\n" +"íforritinu \"%s\"?" + +# +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Viltu örugglega eyða möppunni %s af diskinum?" + +# +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Viltu örugglega eyða bókamerkinu %s?" + +msgid "Do you want this?" +msgstr "" + +# +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Viltu brenna þessa skráar safn á DVD disk?" + +# +msgid "Do you want to do a service scan?" +msgstr "Viltu leita að rásum?" + +# +msgid "Do you want to do another manual service scan?" +msgstr "Viltu leita aftur handvirkt?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "Viltu hlaða niður stýrikerfinu á %s ?" + +# +#, fuzzy +msgid "Do you want to install a channel list?" +msgstr "Viltu setja inn pakkann:\n" + +# +msgid "Do you want to install the package:\n" +msgstr "Viltu setja inn pakkann:\n" + +# +msgid "Do you want to play DVD in drive?" +msgstr "Viltu spila DVD diskinn sem er í spilaranum?" + +# +msgid "Do you want to preview this DVD before burning?" +msgstr "Viltu forskoða þennan DVD disk fyrir brennslu?" + +msgid "Do you want to reboot your receiver?" +msgstr "" + +# +msgid "Do you want to remove the package:\n" +msgstr "Viltu taka út pakkann:\n" + +# +msgid "Do you want to restore your settings?" +msgstr "Viltu setja inn stillingarnar þínar aftur?" + +# +msgid "Do you want to resume this playback?" +msgstr "Viltu halda áfram að spila þetta?" + +#, fuzzy, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Viltu hlaða niður stýrikerfinu á %s ?" + +msgid "Do you want to update your receiver?" +msgstr "" + +# +msgid "Do you want to upgrade the package:\n" +msgstr "Viltu uppfæra pakkann:\n" + +# +msgid "Don't stop current event but disable coming events" +msgstr "Ekki stoppa núverandi atriði en hætta við næsta" + +# +#, fuzzy, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "Búin, setti inn, uppfærði eða tót út %d pakka með %d villum" +msgstr[1] "Búin, setti inn, uppfærði eða tót út %d pakka með %d villum" + +# +msgid "Download" +msgstr "Hlaða niður" + +#, fuzzy, python-format +msgid "Download %s from server" +msgstr "Hleð niður %s frá vefþjón" + +msgid "Download .NFI-files for USB-flasher" +msgstr "Hlaða niður .NFI skrár fyrir keyranlegt USB" + +#, fuzzy +msgid "Download plugins" +msgstr "Hala niður íforritum" + +msgid "Downloadable new plugins" +msgstr "Niðurhalanleg ný íforrit" + +msgid "Downloadable plugins" +msgstr "Niðurhalanleg íforrit" + +msgid "Downloading" +msgstr "Hleð niður" + +msgid "Downloading plugin information. Please wait..." +msgstr "Hala niður íforrits upplýsingum. Vinsamlega bíðið..." + +# +msgid "Dutch" +msgstr "Hollenska" + +msgid "Dynamic contrast" +msgstr "Dýnamísk skerpa" + +# +msgid "E" +msgstr "E" + +msgid "EPG" +msgstr "" + +msgid "EPG language selection 1" +msgstr "" + +msgid "EPG language selection 2" +msgstr "" + +# +#, fuzzy +msgid "EPG selection" +msgstr "EPG val" + +msgid "EPG settings" +msgstr "" + +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "VILLA - gat ekki leitað (%s)!" + +# +msgid "East" +msgstr "Austur" + +msgid "East limit set" +msgstr "" + +# +msgid "Edit" +msgstr "Breyta" + +# +msgid "Edit DNS" +msgstr "Breyta DNS" + +msgid "Edit bouquets list" +msgstr "Breyta rásavanda lista" + +msgid "Edit chapters of current title" +msgstr "Breyta köflum núverandi titils" + +# +msgid "Edit services list" +msgstr "Breyta rása lista" + +# +msgid "Edit settings" +msgstr "Breyta stillingum" + +# +#, fuzzy +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "fara úr nafnaþjóns stillingum" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "" + +msgid "Edit timer" +msgstr "" + +# +msgid "Edit title" +msgstr "Breyta titili" + +msgid "Edit upgrade source url." +msgstr "Breyta uppfærslu uppruna slóð." + +msgid "Education/Science/..." +msgstr "" + +# +msgid "Electronic Program Guide" +msgstr "Rafrænn dagskrárstjóri (EPG)" + +# +msgid "Enable" +msgstr "Virkja" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +# +msgid "Enable 5V for active antenna" +msgstr "Kveikja á 5V fyrir loftnet með magnara" + +msgid "Enable EIT EPG" +msgstr "" + +msgid "Enable MHW EPG" +msgstr "" + +msgid "Enable Netmed EPG" +msgstr "" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +# +#, fuzzy +msgid "Enable bouquet selection in multi-EPG" +msgstr "byrja féttu breytingu" + +msgid "Enable freesat EPG" +msgstr "" + +# +msgid "Enable multiple bouquets" +msgstr "Virkja marga rásavendi" + +# +msgid "Enable parental control" +msgstr "Virkja foreldra stýringu" + +msgid "Enable teletext caching" +msgstr "" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +# +msgid "Enabled" +msgstr "Virkt" + +msgid "Encrypted: " +msgstr "Kóðun:" + +# +msgid "Encryption" +msgstr "Kóðun" + +# +#, fuzzy +msgid "Encryption key" +msgstr "Kóðunar lykill" + +# +#, fuzzy +msgid "Encryption key type" +msgstr "Kóðunar lykilgerð" + +msgid "Encryption:" +msgstr "Kóðun:" + +# +msgid "End time" +msgstr "Loka tími" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +# +msgid "English" +msgstr "Enska" + +# +#, fuzzy +msgid "Enigma2 skin selector" +msgstr "enigma2 og netkerfi" + +# +msgid "Enter main menu..." +msgstr "Fara í aðal valmynd..." + +msgid "Enter pin code" +msgstr "Slá inn kóða" + +msgid "Enter the service pin" +msgstr "Sláðu inn rása kóða" + +msgid "Equal to" +msgstr "" + +# +msgid "Error" +msgstr "Villa" + +msgid "Error code" +msgstr "" + +msgid "Error executing plugin" +msgstr "Villa við keyrslu íforrits" + +# +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Villa: %s\n" +"Reyna aftur?" + +# +msgid "Estonian" +msgstr "Eistneska" + +msgid "Ethernet network interface" +msgstr "Ethernet netkort" + +msgid "Event font size (relative to skin size)" +msgstr "" + +# +#, fuzzy +msgid "Event view" +msgstr "Skoða atriði" + +# +#, fuzzy +msgid "Event view menu" +msgstr "Skoða atriði" + +msgid "Everywhere" +msgstr "" + +msgid "Exceeds dual layer medium!" +msgstr "Þarf meira en tveggja laga disk!" + +msgid "Execution finished!!" +msgstr "Keyrslu lokið!!" + +# +#, fuzzy +msgid "Execution progress:" +msgstr "Framganga keyrslu:" + +# +msgid "Exif" +msgstr "Exif" + +# +msgid "Exit" +msgstr "Hætta" + +msgid "Exit EPG" +msgstr "" + +# +msgid "Exit editor" +msgstr "Hætta í breytingum" + +msgid "Exit input device selection." +msgstr "Hætta í inntaks tækja vali." + +msgid "Exit media player?" +msgstr "" + +# +#, fuzzy +msgid "Exit mediaplayer" +msgstr "hætta í spilara" + +# +#, fuzzy +msgid "Exit movie list" +msgstr "loka myndalista" + +# +#, fuzzy +msgid "Exit movie player?" +msgstr "hætta í spilara" + +# +#, fuzzy +msgid "Exit nameserver configuration" +msgstr "fara úr nafnaþjóns stillingum" + +# +#, fuzzy +msgid "Exit network interface list" +msgstr "fara út úr netkorta lista" + +msgid "Exit network wizard" +msgstr "Hætta í netkerfis ráðgjafa" + +msgid "Exit the wizard" +msgstr "Hætta í ráðgjafa" + +# +msgid "Expert" +msgstr "Sérfræði" + +msgid "Extend sleeptimer 15 minutes" +msgstr "" + +msgid "Extended Software" +msgstr "Viðbótar forrit" + +msgid "Extended Software Plugin" +msgstr "Viðbótar hugbúnaðar íforrit" + +#, fuzzy +msgid "Extended network setup plugin..." +msgstr "Ãforrit fyrir nánari stillingar netkerfis..." + +#, fuzzy +msgid "Extended setup..." +msgstr "Viðbótar stillingar..." + +# +msgid "Extensions" +msgstr "Viðbætur" + +msgid "Extensions management" +msgstr "Viðbóta umsýsla" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "" + +msgid "Extra motor options" +msgstr "" + +# +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "" + +# +msgid "Factory reset" +msgstr "Verksmiðju stilling" + +# +msgid "Failed" +msgstr "Tókst ekki" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "" + +#, python-format +msgid "Fan %d" +msgstr "Vifta %d" + +#, python-format +msgid "Fan %d PWM" +msgstr "Vifta %d PWM" + +#, fuzzy, python-format +msgid "Fan %d voltage" +msgstr "Viftu %d Spenna" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +# +msgid "Fast" +msgstr "Hratt" + +# +msgid "Fast DiSEqC" +msgstr "Hratt DiSEqC" + +msgid "Fast Scan" +msgstr "" + +# +msgid "Fast epoch" +msgstr "Hratt tímabil" + +# +#, fuzzy +msgid "Fast forward speeds" +msgstr "Hraðspólunar hraði áfram" + +msgid "Favourites" +msgstr "Eftirlætis listar" + +msgid "File appears to be busy.\n" +msgstr "" + +#, fuzzy +msgid "Filesystem check" +msgstr "Skráarkerfis athugun" + +msgid "Final position at" +msgstr "" + +msgid "Final position at index" +msgstr "" + +msgid "Fine movement" +msgstr "" + +# +msgid "Finetune" +msgstr "Fínstilla" + +# +msgid "Finished" +msgstr "Búið" + +# +msgid "Finished configuring your network" +msgstr "Búið að stilla netkerfið" + +# +msgid "Finished restarting your network" +msgstr "Búið að endurræsa netkerfið" + +# +msgid "Finnish" +msgstr "Finnska" + +msgid "Fixed" +msgstr "" + +# +msgid "Flash" +msgstr "Forritun" + +# +msgid "Flashing failed" +msgstr "Forritun tókt ekki" + +msgid "Following tasks will be done after you press OK!" +msgstr "Eftirfarandi aðgerðir verða framkvæmdar eftir að þú ýtir á OK!" + +# +msgid "Format" +msgstr "Forma" + +msgid "Forward volume keys" +msgstr "" + +# +msgid "Frame size in full view" +msgstr "Stærð ramma í fullri stærð" + +# +msgid "French" +msgstr "Franska" + +# +msgid "Frequency" +msgstr "Tíðni" + +# +msgid "Frequency bands" +msgstr "Tíðni bönd" + +# +msgid "Frequency scan step size(khz)" +msgstr "Skref við tíðnileit (khz)" + +# +msgid "Frequency steps" +msgstr "Tíðniskref" + +msgid "Frequency:" +msgstr "" + +# +msgid "Fri" +msgstr "Fös" + +# +msgid "Friday" +msgstr "Föstudagur" + +msgid "From :" +msgstr "" + +# +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Útgáfa framheila: %d" + +msgid "Full transparency" +msgstr "" + +msgid "Fulview resulution" +msgstr "" + +msgid "Function of OK button" +msgstr "" + +msgid "Further Options" +msgstr "" + +# +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"Gluggakerfi þarf að endurræsa til að virkja nýtt skinn\n" +"Viltu endurræsa gluggakerfi núna?" + +# +msgid "Gateway" +msgstr "Beinir" + +# +#, fuzzy +msgid "General AC3 delay" +msgstr "Heildar AC3 seinkun" + +# +#, fuzzy +msgid "General PCM delay" +msgstr "Heildar PCM seinkun" + +# +msgid "Genre" +msgstr "Gerð" + +# +msgid "German" +msgstr "Þýska" + +msgid "Get latest experimental image" +msgstr "Ná í nýjustu prufuútgáfu stýrikerfis" + +msgid "Get latest release image" +msgstr "Ná í nýjasta útgefið stýrikerfi" + +msgid "Getting plugin information. Please wait..." +msgstr "Næ í upplýsingar um íforrit. Vinsamlega bíðið..." + +msgid "Go down the list" +msgstr "" + +msgid "Go to first movie or last item" +msgstr "" + +msgid "Go to first movie or top of list" +msgstr "" + +# +#, fuzzy +msgid "Go to first service" +msgstr "fara upp í fyrsta atriði" + +# +#, fuzzy +msgid "Go to last service" +msgstr "Læsa rásum" + +# +#, fuzzy +msgid "Go to next event" +msgstr "fara niður í næsta atriði" + +# +#, fuzzy +msgid "Go to next page of service" +msgstr "Skipta á næstu undirrás" + +# +#, fuzzy +msgid "Go to previous event" +msgstr "fara upp í næsta atriði" + +# +#, fuzzy +msgid "Go to previous page of service" +msgstr "Til baka á síðustu rás" + +msgid "Go up the list" +msgstr "" + +msgid "Goto" +msgstr "" + +msgid "Goto 0" +msgstr "Fara á 0" + +msgid "Goto :" +msgstr "" + +msgid "Goto X" +msgstr "" + +msgid "Goto index position" +msgstr "" + +msgid "Goto next day of events" +msgstr "" + +msgid "Goto next page of events" +msgstr "" + +# +msgid "Goto position" +msgstr "Fara á staðsetningu" + +msgid "Goto previous day of events" +msgstr "" + +msgid "Goto previous page of events" +msgstr "" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "" + +msgid "GraphMultiEpg Settings" +msgstr "" + +# +msgid "Graphical Multi EPG" +msgstr "Myndrænn dagskrárstjóri (EPG)" + +# +msgid "Greek" +msgstr "Gríska" + +# +msgid "Green boost" +msgstr "Auka grænan" + +msgid "Guard interval" +msgstr "Guard interval" + +msgid "HD list" +msgstr "" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "" + +msgid "Handle wakeup from TV" +msgstr "" + +# +#, fuzzy +msgid "Hard disk" +msgstr "Harður diskur" + +# +#, fuzzy +msgid "Hard disk setup" +msgstr "Uppsetning harða disks" + +# +#, fuzzy +msgid "Hard disk standby after" +msgstr "Harði diskur í biðstöðu eftir" + +# +msgid "Harddisk" +msgstr "Harður diskur" + +msgid "Hardware: " +msgstr "" + +msgid "Hebrew" +msgstr "" + +msgid "Helps setting up your dish" +msgstr "" + +msgid "Hidden network" +msgstr "Falið netkerfi" + +msgid "Hide CI messages" +msgstr "" + +msgid "Hide channel list in radio mode" +msgstr "" + +msgid "Hide known extensions" +msgstr "" + +msgid "Hide number markers" +msgstr "" + +# +#, fuzzy +msgid "Hide player" +msgstr "fela spilara" + +msgid "Hide zap errors" +msgstr "" + +msgid "Hierarchy info" +msgstr "Hierarchy upplýsingar" + +# +#, fuzzy +msgid "Hierarchy information" +msgstr "Stigskipta upplýsingar" + +# +msgid "High bitrate support" +msgstr "Háhraða stuðningur" + +msgid "Hold screen" +msgstr "" + +msgid "Hold till locked" +msgstr "" + +msgid "Home" +msgstr "" + +# +msgid "Horizontal" +msgstr "Lárétt" + +msgid "Horizontal turning speed" +msgstr "" + +# +msgid "How many minutes do you want to record?" +msgstr "à hvað margar mínútur viltu taka upp?" + +# +msgid "Hue" +msgstr "Litatónn" + +# +msgid "Hungarian" +msgstr "Ungverska" + +# +#, fuzzy +msgid "IP address" +msgstr "IP Netfang" + +# +msgid "ISO file is too large for this filesystem!" +msgstr "Iso skrá er of stór fyrir þetta skráarkerfi!" + +# +msgid "ISO path" +msgstr "Slóð ISO skráar" + +msgid "Icons" +msgstr "" + +# +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"Ef þú sérð þetta þá er eitthvað að scart\n" +"tengingunni.Ãttu á OK til að fara til baka." + +# +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"Ef sjónvarpið þitt hefur skerpu aukningu (contrast enhancement), slökktu þá á því. Ef það er með eitthvað kallað \"dynamic\", settu það þá á Standard eða Normal. Stilltu birtu baklýsingar eins og þér finnst best. Minnkaðu skerpu (contrast) stillingu sjónvarpsins eins mikið og hægt er en vertu samt viss um að rétt sjá dekkstu tvo grátónana.\n" +"Ekki hafa áhyggjur af björtum svæðum núna. Þeir verða stilltir næst.\n" +"Ef stillingin er orðin eins og þér finnst best ýttu þá á OK." + +msgid "Image: " +msgstr "" + +# +#, fuzzy +msgid "Immediate shutdown" +msgstr "slökkva strax" + +# +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "Til að taka upp á tíma stillingu þá var sjónvarpið stillt á upptökurás!\n" + +# +#, fuzzy +msgid "In progress" +msgstr "à vinnslu" + +msgid "Inactivity Sleeptimer" +msgstr "" + +msgid "Include AIT in http streams" +msgstr "" + +msgid "Include ECM in http streams" +msgstr "" + +msgid "Include EIT in http streams" +msgstr "" + +msgid "Incorrect type service for PiP!" +msgstr "" + +# +msgid "Increased voltage" +msgstr "Aukin spenna" + +# +msgid "Index" +msgstr "Yfirlit" + +msgid "Index allocated:" +msgstr "" + +# +msgid "Info" +msgstr "Upplýsingar" + +# +#, fuzzy +msgid "Info bar" +msgstr "Upplýsingar" + +# +#, fuzzy +msgid "Info bar timeout" +msgstr "Tími upplýsingaborða" + +msgid "Infobar frontend data source" +msgstr "" + +# +msgid "Information" +msgstr "Upplýsingar" + +# +msgid "Init" +msgstr "Stilli" + +#, fuzzy +msgid "Initial fast forward speed" +msgstr "Byrjunar hraði hraðspólunar áfram" + +msgid "Initial location in new timers" +msgstr "Sjálfgefin staður í nýjum tímastillingum" + +msgid "Initial lock ratio" +msgstr "" + +#, fuzzy +msgid "Initial rewind speed" +msgstr "Byrjunar hraði hraðspólunar afturábak" + +msgid "Initial signal quality" +msgstr "" + +msgid "Initial signal quality:" +msgstr "" + +msgid "Initialization" +msgstr "Frumstilling" + +# +msgid "Initialize" +msgstr "Frumstiling" + +msgid "Initializing storage device..." +msgstr "" + +# +msgid "Input" +msgstr "Inntak" + +msgid "Input device setup" +msgstr "Inntaks tækja uppsetning" + +msgid "Input devices" +msgstr "Inntaks tæki" + +# +msgid "Install" +msgstr "Setja inn" + +# +msgid "Install a new image with a USB stick" +msgstr "Setja inn nýtt stýrikerfi með USB staut" + +# +msgid "Install a new image with your web browser" +msgstr "Setja inn nýtt stýrikerfi með vafra" + +# +#, fuzzy +msgid "Install channel list" +msgstr "næsta rás í sögu" + +msgid "Install extensions" +msgstr "" + +msgid "Install extensions." +msgstr "Setja inn viðbót." + +msgid "Install local extension" +msgstr "Setja inn viðbót af boxi" + +msgid "Install picons on" +msgstr "" + +#, fuzzy +msgid "Install softcam" +msgstr "Set inn hugbúnað..." + +# +#, fuzzy +msgid "Installation has completed." +msgstr "Uppsetning búin." + +# +#, fuzzy +msgid "Installation or removal has completed." +msgstr "Innsetning eða fjarlæging tókst." + +# +msgid "Installing" +msgstr "Set inn" + +#, fuzzy +msgid "Installing software..." +msgstr "Set inn hugbúnað..." + +#, fuzzy +msgid "Instant recording location" +msgstr "Skyndi upptöku staðsetning" + +# +#, fuzzy +msgid "Instant recording..." +msgstr "Skyndi upptaka..." + +msgid "Interface: " +msgstr "Netkort:" + +# +msgid "Intermediate" +msgstr "millistig" + +# +#, fuzzy +msgid "Internal flash" +msgstr "Innra Flash minni" + +msgid "Internal hdd only" +msgstr "" + +msgid "Interval between keys when repeating:" +msgstr "" + +# +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Ógild mappa valin: %s" + +# +#, fuzzy +msgid "Invalid location" +msgstr "Ógildur staður" + +msgid "Invalid transponder data" +msgstr "" + +# +msgid "Inversion" +msgstr "Umbreyting" + +# +msgid "Invert" +msgstr "Snúa við" + +# +msgid "Ipkg" +msgstr "Ipkg" + +#, fuzzy +msgid "Is this setting ok?" +msgstr "Nota þessar stillingar?" + +# +#, fuzzy +msgid "Is this video mode ok?" +msgstr "Er þessi stilling í lagi?" + +# +msgid "Italian" +msgstr "Ãtalska" + +msgid "Items per page " +msgstr "" + +msgid "Items per page for list screen" +msgstr "" + +# +#, fuzzy +msgid "Job overview" +msgstr "Skoða vinnslu" + +msgid "Jump to beginning of list" +msgstr "" + +# +#, fuzzy +msgid "Jump to end of list" +msgstr "fara í enda listans" + +# +#, fuzzy +msgid "Jump to next marked position" +msgstr "fara til næstu merkingar" + +# +#, fuzzy +msgid "Jump to previous marked position" +msgstr "fara til fyrri merkingar" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +#, fuzzy +msgid "Just scale" +msgstr "Bara full mynd" + +msgid "Keep service" +msgstr "" + +# +#, fuzzy +msgid "Kernel version: " +msgstr "Ný útgáfa:" + +# +msgid "Keyboard" +msgstr "Lyklaborð" + +# +#, fuzzy +msgid "Keyboard map" +msgstr "Lyklaborðs stilling" + +# +#, fuzzy +msgid "Keyboard setup" +msgstr "Uppsetning lyklaborðs" + +# +#, fuzzy +msgid "LAN adapter" +msgstr "Netkort" + +msgid "LAN connection" +msgstr "LAN tenging" + +# +msgid "LNB" +msgstr "LNB" + +# +msgid "Language" +msgstr "Tungumál" + +# +msgid "Language selection" +msgstr "Val tungumáls" + +# +msgid "Last config" +msgstr "Síðasta stilling" + +# +msgid "Last speed" +msgstr "Síðasti hraði" + +msgid "Last upgrade: " +msgstr "" + +msgid "Latest Commits" +msgstr "" + +# +msgid "Latitude" +msgstr "Breiddargráða" + +# +msgid "Latvian" +msgstr "Lettneska" + +# +#, fuzzy +msgid "Leave DVD player?" +msgstr "Hætta í DVD spilara?" + +# +msgid "Left" +msgstr "Vinstri" + +msgid "Left from servicename" +msgstr "" + +msgid "Leisure hobbies" +msgstr "" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Letterbox" + +msgid "Letterbox zoom" +msgstr "" + +# +#, fuzzy +msgid "Limit character set for recording filenames" +msgstr "Takmarkað stafa úrval fyrir skráar nöfn á upptökum" + +# +msgid "Limit east" +msgstr "Mörk í austur" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "" + +# +msgid "Limit west" +msgstr "Mörk í vestur" + +msgid "Limits cancelled" +msgstr "" + +msgid "Limits enabled" +msgstr "" + +# +msgid "Limits off" +msgstr "Mörk ekki stillt" + +# +msgid "Limits on" +msgstr "Mörk á" + +# +#, fuzzy +msgid "Link quality:" +msgstr "Gæði tengingar:" + +msgid "Link:" +msgstr "Tenging:" + +# +msgid "Linked titles with a DVD menu" +msgstr "Tengdir titlar við DVD valmynd" + +#, fuzzy +msgid "List EPG functions..." +msgstr "listi EPG skoðunar..." + +msgid "List available networks" +msgstr "Sýna netkerfi í boði" + +msgid "List mode" +msgstr "" + +#, fuzzy +msgid "List of storage devices" +msgstr "Listi geymslu tækja" + +msgid "List type" +msgstr "" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "" +msgstr[1] "" + +# +#, fuzzy +msgid "Listen to the radio..." +msgstr "hlusta á útvarp...." + +msgid "Lists reloaded!" +msgstr "" + +# +msgid "Lithuanian" +msgstr "Litháíska" + +# +msgid "Load" +msgstr "Hleð" + +msgid "Load Length of Movies in Movielist" +msgstr "" + +#, fuzzy +msgid "Load length of movies in movie list" +msgstr "Hlaða inn lengd myndar í myndalista" + +# +#, fuzzy +msgid "Load playlist" +msgstr "hlaða inn spilunarlista" + +# +#, fuzzy +msgid "Local network" +msgstr "Nærnet" + +# +msgid "Location" +msgstr "Staðsetning" + +msgid "Location for instant recordings" +msgstr "Staðsetning fyrir skyndi upptökur" + +msgid "Lock ratio" +msgstr "" + +# +msgid "Lock:" +msgstr "Lás:" + +# +msgid "Log results to harddisk" +msgstr "Skýrslur á harðadisk" + +msgid "Long filenames" +msgstr "Löng skráarnöfn" + +# +#, fuzzy +msgid "Long key press" +msgstr "Ãtt lengi á hnapp" + +# +msgid "Longitude" +msgstr "Lengdargráða" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "" + +# +#, fuzzy +msgid "MMC card" +msgstr "MMC kort" + +# +msgid "MORE" +msgstr "MEIRA" + +# +msgid "Main menu" +msgstr "Aðalvalmynd" + +msgid "Maintain old EPG data for" +msgstr "" + +# +msgid "Make this mark an 'in' point" +msgstr "Gera þetta merki að 'inn' merki" + +# +msgid "Make this mark an 'out' point" +msgstr "Gera þetta merki að 'út' merki" + +# +msgid "Make this mark just a mark" +msgstr "Gera þetta merki bara að merki" + +msgid "Manage extensions" +msgstr "Sýsla með íforrit" + +# +msgid "Manage your receiver's software" +msgstr "Stjórna hugbúnaði móttakarans" + +msgid "Manual" +msgstr "" + +# +msgid "Manual Scan" +msgstr "Handvirk leitun" + +msgid "Manual configuration" +msgstr "Handvirk stilling" + +# +#, fuzzy +msgid "Manual scan" +msgstr "Handvirk leitun" + +# +msgid "Manual transponder" +msgstr "Handvirk leit á sendi" + +# +msgid "Manufacturer" +msgstr "Framleiðandi" + +# +#, fuzzy +msgid "Margin after recording (minutes)" +msgstr "Mörk fyrir upptöku (mínútur)" + +# +#, fuzzy +msgid "Margin before recording (minutes)" +msgstr "Mörk fyrir upptöku (mínútur)" + +msgid "Max memory positions" +msgstr "" + +#, fuzzy +msgid "Max. bitrate: " +msgstr "Mesti bitahraði:" + +# +msgid "Media player" +msgstr "Spilari" + +# +#, fuzzy +msgid "Media scanner" +msgstr "Spilari" + +# +msgid "Medium is not a writeable DVD!" +msgstr "Diskur er ekki skrifanlegur DVD diskur!" + +# +msgid "Medium is not empty!" +msgstr "Diskur er ekki tómur!" + +msgid "Memory" +msgstr "" + +msgid "Memory index" +msgstr "" + +# +msgid "Menu" +msgstr "Valmynd" + +# +msgid "Message" +msgstr "Skilaboð" + +# +msgid "Message..." +msgstr "Skilaboð..." + +#, python-format +msgid "Minimum age %d years" +msgstr "" + +#, fuzzy +msgid "Minimum send interval" +msgstr "Guard interval" + +msgid "Missing " +msgstr "" + +# +#, fuzzy +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Hamur" + +# +#, fuzzy +msgctxt "Video output mode" +msgid "Mode" +msgstr "Hamur" + +# +msgid "Model: " +msgstr "Gerð:" + +# +msgid "Modulation" +msgstr "Mótun" + +# +msgid "Modulator" +msgstr "Mótari" + +# +msgid "Mon" +msgstr "Mán" + +# +msgid "Mon-Fri" +msgstr "Mán-Fös" + +# +msgid "Monday" +msgstr "Mánudagur" + +# +msgid "Mosquito noise reduction" +msgstr "Mosquito suð deyfing" + +msgid "Mount" +msgstr "" + +msgid "Move" +msgstr "" + +# +#, fuzzy +msgid "Move PiP to main picture" +msgstr "nota mynd glugga sem aðal mynd" + +# +msgid "Move Picture in Picture" +msgstr "Færa Mynd í Mynd" + +# +msgid "Move east" +msgstr "Færa austur" + +msgid "Move to other directory" +msgstr "" + +msgid "Move to position X" +msgstr "" + +# +msgid "Move west" +msgstr "Færa vestur" + +msgid "Moved to position 0" +msgstr "" + +msgid "Moved to position at index" +msgstr "" + +msgid "Movement" +msgstr "" + +msgid "Movie List Configuration" +msgstr "" + +msgid "Movie Selection" +msgstr "" + +#, fuzzy +msgid "Movie list configuration" +msgstr "Handvirk stilling" + +msgid "Movie location" +msgstr "Staðsetning bíómynda" + +#, fuzzy +msgid "Movie selection" +msgstr "Staðsetning bíómynda" + +msgid "Movie/Drama" +msgstr "" + +# +msgid "Movielist menu" +msgstr "Bíómynda valmynd" + +msgid "Moving" +msgstr "" + +msgid "Moving east ..." +msgstr "" + +msgid "Moving to position" +msgstr "" + +msgid "Moving west ..." +msgstr "" + +# +msgid "Multi EPG" +msgstr "Mörg EPG" + +msgid "Multi-EPG bouquet selection" +msgstr "Mörg-EPG rásavanda val" + +# +msgid "Multimedia" +msgstr "Margmiðlun" + +# +msgid "Multiple service support" +msgstr "Styður margar rásir" + +msgid "Multiplex" +msgstr "Margar rásir" + +# +msgid "Multisat" +msgstr "Margir gervihnettir" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "" + +# +msgid "Mute" +msgstr "Hljóð Af" + +# +msgid "N/A" +msgstr "Ekki til" + +# +msgid "NEXT" +msgstr "NÆST" + +#, fuzzy +msgid "NFI image flashing" +msgstr "NFI stýrikerfis forritun" + +# +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "NFI forritun er lokið. Ãttu á gulan til að endurræsa!" + +msgid "NIM" +msgstr "NIM" + +# +msgid "NOW" +msgstr "NÚNA" + +# +msgid "NTSC" +msgstr "NTSC" + +# +msgid "Name" +msgstr "Nafn" + +# +msgid "Nameserver" +msgstr "Nafnaþjónn" + +# +#, python-format +msgid "Nameserver %d" +msgstr "Nafnaþjónn %d" + +# +msgid "Nameserver settings" +msgstr "Uppsetning nafnaþjóns" + +# +#, fuzzy +msgid "Nameserver setup" +msgstr "Uppsetning nafnaþjóns" + +msgid "Namespace" +msgstr "Nafnabox" + +# +msgid "Netmask" +msgstr "Netmaski" + +# +msgid "Network" +msgstr "Netkerfi" + +msgid "Network ID" +msgstr "" + +# +#, fuzzy +msgid "Network configuration..." +msgstr "Stilling nettengingar..." + +# +#, fuzzy +msgid "Network mount" +msgstr "Tengingar við netkerfi" + +# +#, fuzzy, python-format +msgid "Network mount %s" +msgstr "Tengingar við netkerfi" + +#, fuzzy +msgid "Network name (SSID)" +msgstr "Netkerfis nafn (SSID)" + +# +msgid "Network scan" +msgstr "Leita netkerfið allt" + +# +msgid "Network setup" +msgstr "Stillingar netkerfis" + +# +msgid "Network test" +msgstr "Prufa nettengingu" + +# +msgid "Network test..." +msgstr "Prufa nettengingu..." + +msgid "Network test: " +msgstr "Prufa nettengingu:" + +#, fuzzy +msgid "Network wizard" +msgstr "Netkerfis ráðgjafi" + +# +msgid "Network:" +msgstr "Nettenging:" + +# +msgid "New" +msgstr "Nýtt" + +msgid "New PIN" +msgstr "Nýtt PIN númer" + +# +msgid "New version:" +msgstr "Ný útgáfa:" + +msgid "News Current Affairs" +msgstr "" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "" + +# +msgid "No" +msgstr "Nei" + +# +msgid "No (supported) DVDROM found!" +msgstr "Enginn (studdur) DVDROM fannst!" + +# +msgid "No Connection" +msgstr "Engin tenging" + +# +msgid "No HDD found or HDD not initialized!" +msgstr "Fann ekki harðan disk eða hann ekki formaður!" + +# +msgid "No backup needed" +msgstr "Afritun óþörf" + +msgid "No cable tuner found!" +msgstr "" + +# +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Engin gögn á sendi!\n" +"(Rann út á tíma við lestur PAT)" + +msgid "No delay" +msgstr "" + +# +msgid "No description available." +msgstr "Engin lýsing tiltæk." + +# +msgid "No details for this image file" +msgstr "Engar upplýsingar um þetta stýrikerfi" + +# +msgid "No displayable files on this medium found!" +msgstr "Engar skrár fundust á þessu tæki!" + +# +msgid "No event info found, recording indefinitely." +msgstr "Engar upplýsingar um atriði fundust, tek upp endalaust." + +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "Ekki mögulegt að hraðspóla enn, þú getur notað númera takkana til að stökkva áfram/afturábak!" + +msgid "No free index available" +msgstr "" + +# +msgid "No free tuner!" +msgstr "Enginn laus móttakari!" + +msgid "No network connection available." +msgstr "Engin nettenging virk." + +# +msgid "No networks found" +msgstr "Ekkert netkerfi fannst" + +msgid "No new plugins found" +msgstr "" + +# +msgid "No positioner capable frontend found." +msgstr "Það fannst ekki móttakari sem styður staðsetjara." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "" + +# +#, fuzzy +msgid "No services/providers selected" +msgstr "engar rásir/sendar valdir" + +# +#, fuzzy +msgid "No standby" +msgstr "ekki biðstaða" + +msgid "No suitable sat tuner found!" +msgstr "" + +# +msgid "No tags are set on these movies." +msgstr "Engin merki sett á þessa mynd." + +# +#, fuzzy +msgid "No timeout" +msgstr "ekki tímalok" + +msgid "No to all" +msgstr "Nei við öllu" + +msgid "No transparency" +msgstr "" + +# +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "Enginn móttakari er stilltur til að nota með staðsetjara!" + +# +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Enginn móttakari er valinn!\n" +"Stilltu móttakara áður er að þú ferð að leita að rásum." + +# +#, fuzzy +msgid "No updates available" +msgstr " uppfærslur tiltækar." + +msgid "No updates available. Please try again later." +msgstr "" + +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Enginn virkur kóði fyrir rásalæsingu fannst!\n" +"Viltu búa til nýjan kóða núna?\n" +"Ef þú svarar \"Nei\" þá er engin læsing virk!" + +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Enginn virkur kóði fyrir uppsetningu fannst!\n" +"Viltu búa til nýjan kóða núna?\n" +"Ef þú svarar \"Nei\" þá er engin læsing virk!" + +msgid "No wireless networks found! Searching..." +msgstr "Ekkert þráðlaust net fannst! Leita..." + +# +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"Ekkert virkt netkort fannst.\n" +"Athugaðu hvort að það sé tengdur netkapallinn og netið sé rétt stillt." + +# +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"Ekkert virkt þráðlaust netkort fannst.\n" +"Athugaðu hvort að það sé tengt samhæft þráðlaust netkort og að það sé rétt stillt." + +# +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"Ekkert virkt þráðlaust netkort fannst.\n" +" Athugaðu hvort að það sé tengt samhæft þráðlaust netkort eða athugaðu með stillingar á því." + +# +msgid "No, but restart from begin" +msgstr "Nei, en byrja frá byrjun" + +# +msgid "No, do nothing." +msgstr "Nei, ekki gera neitt." + +msgid "No, just start my receiver" +msgstr "" + +msgid "No, never" +msgstr "Nei, aldrei" + +# +msgid "None" +msgstr "Enginn" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Teygð mynd" + +msgid "Normal mode" +msgstr "" + +# +msgid "North" +msgstr "Norður" + +# +msgid "Norwegian" +msgstr "Norska" + +#, fuzzy +msgid "Not associated" +msgstr "Ekki tengt" + +msgid "Not configured" +msgstr "" + +# +#, fuzzy, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Ekki nóg diskpláss. Taktu til á diskinum og reyndu aftur. (%d MB þarf, %d MB tiltæk)" + +msgid "Nothing connected" +msgstr "" + +# +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Ekkert til að leita!\n" +"Stilltu inn móttakarann áður en að þú byrjar rása leit." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "" + +# +#, fuzzy +msgid "Now playing" +msgstr "Spila núna" + +# +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Notaðu núna skerpu (contrast) stillingar til að auka birtu bakgrunns eins mikið og hægt er en vertu samt viss um að sjá mun á björtustu tveim hlutum myndarinnar. Þegar þú hefur gert það ýttu þá á OK." + +# +msgid "OK" +msgstr "OK" + +# +msgid "OK, guide me through the upgrade process" +msgstr "Leiðbeindu mér með uppfærsluna" + +msgid "ONID" +msgstr "ONID" + +msgid "OSD name request" +msgstr "" + +# +#, fuzzy +msgid "OSD settings" +msgstr "Stilling valmynda" + +msgid "OSD transparency" +msgstr "" + +# +msgid "Off" +msgstr "Af" + +msgid "Offline decode delay (ms)" +msgstr "" + +msgid "Ok" +msgstr "" + +# +msgid "On" +msgstr "Ã" + +msgid "On end of movie" +msgstr "" + +msgid "On end of movie (as menu)" +msgstr "" + +# +msgid "One" +msgstr "Einn" + +msgid "Only extensions." +msgstr "Bara viðbætur." + +# +#, fuzzy +msgid "Only free scan" +msgstr "Bara fríar rásir" + +# +#, fuzzy +msgid "Open service list" +msgstr "opna rása lista" + +# +#, fuzzy +msgid "Open the movie list" +msgstr "Til baka til mynda lista" + +msgid "Orbital position" +msgstr "Staðsetning hnattar" + +msgid "Original" +msgstr "" + +msgid "Other" +msgstr "" + +msgid "Output" +msgstr "" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "Skrifa yfir stillinga skrár við hugbúnaðar uppfærslu?" + +#, fuzzy +msgid "Overwrite configuration files?" +msgstr "Skrifa yfir stillinga skrár ?" + +# +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "PCR PID" + +# +msgid "PIDs" +msgstr "PIDs" + +# +#, fuzzy +msgid "PIN code needed" +msgstr "Kóða vantar" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "PMT PID" + +# +msgid "Package list update" +msgstr "Listi uppfærðra pakka" + +# +msgid "Packet management" +msgstr "Pakka meðhöndlun" + +# +msgid "Packet manager" +msgstr "Hugbúnaðarpakka stjóri" + +# +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +#, fuzzy +msgid "Pan&scan" +msgstr "Pan&Scan" + +#, fuzzy +msgid "Parent directory" +msgstr "Hýsingar mappa" + +# +msgid "Parental control" +msgstr "Foreldrastýring" + +# +#, fuzzy +msgid "Parental control services editor" +msgstr "Forritun foreldrakóða á rásir" + +# +msgid "Parental control setup" +msgstr "Uppsetning á foreldrastýringu" + +# +msgid "Parental control type" +msgstr "Gerð foreldrastýringar" + +# +msgid "Password" +msgstr "Aðgangsorð" + +# +#, fuzzy +msgid "Pause" +msgstr "pása" + +# +msgid "Pause movie at end" +msgstr "Setja á pásu við enda myndar" + +# +#, fuzzy +msgid "Pause playback" +msgstr "Held áfram spilun" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "" + +#, fuzzy +msgid "Percentage right" +msgstr "Hringpólun hægri" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "" + +msgid "Permanently remove all deleted items" +msgstr "" + +msgid "Persian" +msgstr "Persneska" + +# +msgid "Phone number" +msgstr "Síma númer" + +# +#, fuzzy +msgid "PiP setup" +msgstr "Uppsetning Mynd í Mynd" + +msgid "Picon" +msgstr "" + +msgid "Picon and service name" +msgstr "" + +# +#, fuzzy +msgid "Picture player" +msgstr "Mynd spilari" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Pillarbox" + +# +msgid "Pilot" +msgstr "Stjóri" + +# +msgid "Play" +msgstr "Spila" + +# +msgid "Play DVD" +msgstr "Spila DVD" + +msgid "Play audio in background" +msgstr "" + +# +#, fuzzy +msgid "Play audio-CD..." +msgstr "Spila hljóð disk..." + +msgid "Play back media files" +msgstr "" + +# +#, fuzzy +msgid "Play entry" +msgstr "innsláttur" + +# +#, fuzzy +msgid "Play from next mark or playlist entry" +msgstr "spila frá næsta merki eða atriði úr spilunarlista" + +# +#, fuzzy +msgid "Play from previous mark or playlist entry" +msgstr "spila frá fyrra merki eða atriði úr spilunarlista" + +# +#, fuzzy +msgid "Play music..." +msgstr "Spila tónlist..." + +msgid "Play next" +msgstr "" + +msgid "Play next (return to movie list)" +msgstr "" + +msgid "Play next (return to previous service)" +msgstr "" + +msgid "Play previous" +msgstr "" + +msgid "Play recorded movies..." +msgstr "Spila uppteknar bíómyndir..." + +msgid "Please add titles to the compilation." +msgstr "Vinsamlega bætið við titlum við efnið." + +msgid "Please change recording endtime" +msgstr "Vinsamlega breytið lokatíma upptöku" + +# +msgid "Please check your network settings!" +msgstr "Vinsamlega athugaðu stillingar netkerfis!" + +msgid "Please choose an extension..." +msgstr "Vinsamlega veldu viðbót..." + +# +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Ãttu á stilla eða að athugaðu Nafnaþjóns stillingar.\n" +"Ãttu á OK þegar þú ert búinn." + +# +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Til að stilla nettengingu filltu þá út viðeigandi gildi.\n" +"Ãttu þá á OK til að halda áfram." + +msgid "Please connect your receiver to the internet" +msgstr "" + +# +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Ekki breyta gildum ef þú veist ekki hvað þú ert að gera!" + +# +msgid "Please enter a name for the new bouquet" +msgstr "Settu inn nafn á nýjum rása vendi" + +# +msgid "Please enter a name for the new marker" +msgstr "Sláðu inn nafn fyrir nýja merkingu" + +# +msgid "Please enter a new filename" +msgstr "Sláðu inn nýtt skráarnafn" + +# +msgid "Please enter filename (empty = use current date)" +msgstr "Sláðu inn skráarnafn (tómt = nota núverandi dag)" + +# +msgid "Please enter name of the new directory" +msgstr "Sláðu inn nafn á nýju möppunni" + +msgid "Please enter new name:" +msgstr "" + +# +msgid "Please enter the correct pin code" +msgstr "Sláðu inn réttan kóða" + +msgid "Please enter the old PIN code" +msgstr "Sláðu inn gamla PIN kóðann þinn" + +msgid "Please follow the instructions on the TV" +msgstr "Fylgdu leiðbeiningum á skjá" + +# +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "Vinsamlega athugið að áður valinn diskur er ekki tiltækur núna og þá verður notuð sjálfgefin mappa í staðinn." + +# +msgid "Please press OK to continue." +msgstr "Ãttu á OK til að halda áfram." + +msgid "Please select a default EPG type..." +msgstr "" + +# +msgid "Please select a playlist to delete..." +msgstr "Veldu spilunarlista til að eyða..." + +# +msgid "Please select a playlist..." +msgstr "Vinsamlega veldu spilunarlista..." + +# +#, fuzzy +msgid "Please select a sub service..." +msgstr "Vinsamlega veldu undirrás..." + +# +msgid "Please select a subservice to record..." +msgstr "Velja undirrás til að taka upp..." + +# +msgid "Please select a subservice..." +msgstr "Vinsamlega veldu undirrás..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "Vinsamlega veldu NFI stýrikerfi og ýttu á græna takkann til að setja inn!" + +#, fuzzy +msgid "Please select medium to be scanned" +msgstr "Vinsamlega veljið tæki sem á að leita" + +# +msgid "Please select medium to use as backup location" +msgstr "Vinsamlega veljið tæki til að nota sem afritunar stað" + +# +msgid "Please select tag to filter..." +msgstr "Vinsamlega veldu merki til að sía út..." + +# +msgid "Please select the movie path..." +msgstr "Veldu slóð að mynd..." + +# +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Veldu það netkort sem að þú vilt nota fyrir veraldarvefs tengingu.\n" +"\n" +"Ãttu á OK til að halda áfram." + +# +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Vinsamlegast veldu það þráðlausa net sem að þú vilt tengjast.\n" +"\n" +"Ãttu á OK til að halda áfram." + +# +#, fuzzy +msgid "Please set up tuner A" +msgstr "Vinsamlega settu upp móttakara B" + +# +msgid "Please set up tuner B" +msgstr "Vinsamlega settu upp móttakara B" + +# +msgid "Please set up tuner C" +msgstr "Vinsamlega settu upp móttakara C" + +# +msgid "Please set up tuner D" +msgstr "Vinsamlega settu upp móttakara D" + +# +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Vinsamlega notið örvatakka til að færa Mynd í Mynd glugga.\n" +"Ãttu á Bouquet +/- til að breyta stærð á glugga.\n" +"Ãttu á OK til að fara aftur í venjulega stillingu eða EXIT til að hætta við." + +# +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "Vinsamlega notið UP og NIÃUR takka til að velja tungumál. Ãttu svo á OK til að nota." + +msgid "Please wait" +msgstr "" + +#, fuzzy +msgid "Please wait (downloading channel list)" +msgstr "Vinsamlega bíðið.. les inn lista..." + +#, fuzzy +msgid "Please wait (downloading softcam)" +msgstr "Vinsamlega bíðið.. les inn lista..." + +# +#, fuzzy +msgid "Please wait (updating packages)" +msgstr "hleð inn mynd, vinsamlegast bíðið.." + +# +msgid "Please wait for activation of your network configuration..." +msgstr "Vinsamlega bíðið eftir virkjun á netkerfis stillingum..." + +# +msgid "Please wait while scanning is in progress..." +msgstr "Vinsamlega bíðið á meðan leit fer fram..." + +# +msgid "Please wait while we configure your network..." +msgstr "Vinsamlega bíðið á meðan stilling fer fram á netkerfinu..." + +# +msgid "Please wait while we prepare your network interfaces..." +msgstr "Vinsamlegast bíðið á meðan við stillum netkort..." + +# +msgid "Please wait while we test your network..." +msgstr "Vinsamlega bíðið á meðan við prufum net tengingu..." + +# +msgid "Please wait while your network is restarting..." +msgstr "Vinsamlega bíðið á meðan netkerfið er endurræst..." + +# +msgid "Please wait..." +msgstr "Vinsamlega bíðið..." + +msgid "Please wait... Loading list..." +msgstr "Vinsamlega bíðið.. les inn lista..." + +msgid "Plugin browser" +msgstr "Ãforrita leit" + +msgid "Plugin manager activity information" +msgstr "Ãforritstjóra aðgerða upplýsingar" + +msgid "Plugin manager help" +msgstr "Ãforritsstjóra hjálp" + +msgid "Plugins" +msgstr "Ãforrit" + +msgid "Polarisation" +msgstr "" + +msgid "Polarisation:" +msgstr "" + +# +msgid "Polarization" +msgstr "Pólun" + +# +msgid "Polish" +msgstr "Pólska" + +# +msgid "Port A" +msgstr "Tengi A" + +# +msgid "Port B" +msgstr "Tengi B" + +# +msgid "Port C" +msgstr "Tengi C" + +# +msgid "Port D" +msgstr "Tengi D" + +# +msgid "Portuguese" +msgstr "Portúgalska" + +#, fuzzy +msgid "Position of completed timers in timerlist" +msgstr "Staður lokinna tímastilltra upptaka í listanum" + +msgid "Position stored at index" +msgstr "" + +# +msgid "Positioner" +msgstr "Mótorstýring" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "" + +# +msgid "Positioner setup" +msgstr "Uppsetning mótors" + +# +msgid "Power threshold in mA" +msgstr "Aflmörk í mA" + +# +msgid "Predefined transponder" +msgstr "Fyrirfram forritaður sendir" + +msgid "Prefer AC3 track" +msgstr "" + +msgid "Prefer AC3+ track" +msgstr "" + +msgid "Prefer audio track stored by service" +msgstr "" + +msgid "Prefer graphical DVB subtitles" +msgstr "" + +msgid "Prefer subtitles for hearing impaired" +msgstr "" + +msgid "Prefer subtitles stored by service" +msgstr "" + +msgid "Preferred tuner" +msgstr "" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "Undirbúa annan USB staut fyrir stýrikerfis forritun" + +# +msgid "Preparing... Please wait" +msgstr "Undirbý...vinsamlega bíðið" + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "Ãttu á INFO á fjarstýringunni fyrir nánari upplýsingar." + +msgid "Press MENU on your remote control for additional options." +msgstr "Ãttu á MENU á fjarstýringunni til að sjá meiri möguleika." + +# +msgid "Press OK on your remote control to continue." +msgstr "Ãttu á OK á fjarstýringunni til að halda áfram." + +# +msgid "Press OK to activate the selected skin." +msgstr "Ãttu á OK til að velja valið skinn." + +# +msgid "Press OK to activate the settings." +msgstr "Ãtið á OK til að virkja stillingar." + +# +msgid "Press OK to edit the settings." +msgstr "Ãttu á OK til að breyta stillingum." + +# +#, python-format +msgid "Press OK to get further details for %s" +msgstr "Ãttu á OK til að fá nánari upplýsingar um %s" + +# +msgid "Press OK to scan" +msgstr "Ãtið á OK til að leita" + +# +#, fuzzy +msgid "Press OK to select a provider." +msgstr "Ãttu á OK til að velja sendanda." + +msgid "Press OK to select satellites" +msgstr "" + +# +msgid "Press OK to select/deselect a CAId." +msgstr "Ãttu á OK til að velja eða ekki velja CAId." + +# +msgid "Press OK to start the scan" +msgstr "Ãtið á OK til að byrja að leita" + +msgid "Press OK to toggle the selection" +msgstr "" + +# +msgid "Press OK to toggle the selection." +msgstr "Ãttu á OK til að velja á milli." + +# +msgid "Press yellow to set this interface as default interface." +msgstr "Ãttu á gula til að hafa þetta netkort sem sjálfvalið." + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "" + +msgid "Preview" +msgstr "Forsýn" + +# +msgid "Preview menu" +msgstr "Forskoða valmynd" + +msgid "Preview selected channel" +msgstr "" + +# +msgid "Primary DNS" +msgstr "Aðal DNS" + +# +msgid "Priority" +msgstr "Forgangur" + +# +msgid "Process" +msgstr "Verk" + +msgid "Progress" +msgstr "" + +msgid "Progress bar left" +msgstr "" + +msgid "Progress bar right" +msgstr "" + +# +msgid "Properties of current title" +msgstr "Nánari upplýsingar um titil" + +# +msgid "Protect services" +msgstr "Læsa rásum" + +# +msgid "Protect setup" +msgstr "Læsa valmynd" + +# +msgid "Provider" +msgstr "Sendandi" + +# +msgid "Provider to scan" +msgstr "Sendandi sem leita á" + +# +msgid "Providers" +msgstr "Sendendur" + +msgid "Put TV in standby" +msgstr "" + +msgid "Put receiver in standby" +msgstr "" + +# +msgid "Python frontend for /tmp/mmi.socket" +msgstr "Python framendi fyrir /tmp/mmi.socket" + +# +msgid "Quick" +msgstr "Hratt" + +# +#, fuzzy +msgid "Quick zap" +msgstr "Hraðstökk" + +# +msgid "RF output" +msgstr "Loftnetsrás" + +# +msgid "RGB" +msgstr "RGB" + +# +msgid "Radio" +msgstr "Útvarp" + +# +#, fuzzy +msgid "Ram disk" +msgstr "Ram Diskur" + +# +msgid "Random" +msgstr "Handahóf" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "" + +msgid "Rating undefined" +msgstr "" + +# +msgid "Really close without saving settings?" +msgstr "Viltu loka án þess að vista stillingar?" + +# +msgid "Really delete done timers?" +msgstr "Viltu eyða liðnum tímastillingum?" + +# +msgid "Really exit the subservices quickzap?" +msgstr "Viltu hætta í undirrása hraðstökki?" + +# +msgid "Really reboot now?" +msgstr "Viltu örugglega endurræsa núna?" + +# +msgid "Really restart now?" +msgstr "Viltu örugglega endurræsa núna?" + +# +msgid "Really shutdown now?" +msgstr "Viltu örugglega slökkva núna?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "" + +# +msgid "Reboot" +msgstr "Endurræsi" + +msgid "Rec" +msgstr "" + +# +#, fuzzy +msgid "Reception settings" +msgstr "Stilling móttöku" + +# +msgid "Record" +msgstr "Upptaka" + +# +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "Upptöku tími takmarkaður vegna annarar tímastillingar, %s" + +# +msgid "Recorded files..." +msgstr "Uppteknar skrár..." + +# +msgid "Recording" +msgstr "Upptaka" + +msgid "Recording in progress" +msgstr "" + +msgid "Recording paths" +msgstr "Upptöku slóð" + +msgid "Recording type" +msgstr "" + +# +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "Upptaka (tökur) eru í gangi núna eða eru væntanlegar fljótlega!" + +# +msgid "Recordings" +msgstr "Upptökur" + +# +msgid "Recordings always have priority" +msgstr "Upptaka hefur alltaf forgang" + +msgid "Red button..." +msgstr "" + +msgid "Reenter new PIN" +msgstr "Sláðu aftur inn nýtt PIN" + +# +#, fuzzy +msgid "Refresh rate" +msgstr "Hressingar tíðni" + +# +msgid "Refresh rate selection." +msgstr "Hressingar tíðni val." + +msgid "Regard deep standby as standby" +msgstr "" + +msgid "Relative" +msgstr "" + +# +msgid "Reload" +msgstr "Endurlesa" + +#, fuzzy +msgid "Reload black-/white lists" +msgstr "Endurhlaða svart-/hvítlista" + +msgid "Reloading bouquets and services..." +msgstr "" + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "Muna eftir PIN númeri rásar" + +msgid "Remember these settings for each folder" +msgstr "" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "" + +# +#, fuzzy +msgid "Remote control type" +msgstr "Gerð foreldrastýringar" + +# +#, fuzzy +msgid "Removal has completed." +msgstr "Tókst ekki að taka út." + +# +msgid "Remove" +msgstr "Eyða" + +# +msgid "Remove a mark" +msgstr "Eyða merkingu" + +# +#, fuzzy +msgid "Remove a nameserver entry" +msgstr "taka út nafnaþjón" + +# +#, fuzzy +msgid "Remove bookmark" +msgstr "eyða bókamerki" + +msgid "Remove completed timers after (days)" +msgstr "" + +# +msgid "Remove currently selected title" +msgstr "Taka út þegar valinn titil" + +msgid "Remove items from trash can after (days)" +msgstr "" + +msgid "Remove plugins" +msgstr "Taka út íforrit" + +# +msgid "Remove title" +msgstr "Taka út titil" + +# +msgid "Removing" +msgstr "Eyði" + +# +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Tókst ekki að taka út möppuna %s. (kannski ekki tóm.)" + +# +#, fuzzy +msgid "Removing partition table" +msgstr "Taka út titil" + +# +msgid "Rename" +msgstr "Endurnefna" + +msgid "Repeat" +msgstr "" + +# +#, fuzzy +msgid "Repeat type" +msgstr "Gerð endurtekningar" + +# +msgid "Repeating event currently recording... What do you want to do?" +msgstr "Endurtaka atriði sem er í upptöku.. hvað viltu gera núna?" + +# +msgid "Repeats" +msgstr "Endurtekningar" + +msgid "Require authentication for http streams" +msgstr "" + +msgid "Required medium type:" +msgstr "Þarf gerð disks:" + +msgid "Rereading partition table" +msgstr "" + +msgid "Reserved" +msgstr "" + +# +msgid "Reset" +msgstr "Endursetja" + +# +msgid "Reset and renumerate title names" +msgstr "Endursetja og endurnúmera nöfn titla" + +msgid "Reset playback position" +msgstr "" + +# +msgid "Reset video enhancement settings to system defaults?" +msgstr "Endursetja mynd stillingar á sjálfvaldar kerfis stillingar?" + +# +msgid "Reset video enhancement settings to your last configuration?" +msgstr "Endursetja mynd bóta stillingar á síðast valdar stillingar?" + +# +msgid "Resolution" +msgstr "Upplausn" + +# +msgid "Restart" +msgstr "Endurræsa" + +# +msgid "Restart GUI now?" +msgstr "Endurræsa gluggakerfi núna?" + +msgid "Restart enigma" +msgstr "" + +# +msgid "Restart network" +msgstr "Endurræsi netkort" + +# +msgid "Restart test" +msgstr "Prufa aftur" + +# +msgid "Restart your network connection and interfaces.\n" +msgstr "Endurræsa nettengingu og netkort.\n" + +# +msgid "Restore" +msgstr "Setja inn" + +# +msgid "Restore backups" +msgstr "Setja inn afrit" + +# +msgid "Restore is running..." +msgstr "Set inn afrit..." + +# +msgid "Restore system settings" +msgstr "Setja inn kerfis stillingar" + +# +#, fuzzy +msgid "Restoring..." +msgstr "tek upp...." + +# +msgid "Resume from last position" +msgstr "Halda áfram frá sama stað og síðast" + +#, python-format +msgid "Resume position at %s" +msgstr "Byrja aftur eftir %s" + +# +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Held áfram spilun" + +# +msgid "Return to movie list" +msgstr "Til baka til mynda lista" + +# +msgid "Return to previous service" +msgstr "Til baka á síðustu rás" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +# +msgid "Rewind speeds" +msgstr "Hraði hraðspólunar til baka" + +msgid "Rewrap teletext subtitles" +msgstr "" + +# +msgid "Right" +msgstr "Hægri" + +msgid "Right from servicename" +msgstr "" + +msgid "Roll-off" +msgstr "" + +msgid "Romanian" +msgstr "" + +msgid "Root directory" +msgstr "" + +msgid "Rotor step position:" +msgstr "" + +# +msgid "Rotor turning speed" +msgstr "Hraði mótors" + +msgid "Round start time on" +msgstr "" + +# +msgid "Russian" +msgstr "Rússneska" + +# +msgid "S-Video" +msgstr "S-Video" + +msgid "SID" +msgstr "SID" + +msgid "SINGLE LAYER DVD" +msgstr "SINGLE LAYER DVD" + +# +msgid "SNR" +msgstr "SNR" + +# +msgid "SNR:" +msgstr "SNR:" + +# +msgid "SSID:" +msgstr "SSID:" + +msgid "Same resolution as skin" +msgstr "" + +# +msgid "Sat" +msgstr "Lau" + +# +msgid "Satellite" +msgstr "Gervihnöttur" + +# +#, fuzzy +msgid "Satellite dish setup" +msgstr "Uppsetning Gervihnattabúnaðar" + +msgid "Satellite equipment" +msgstr "Gervihnatta búnaður" + +# +#, fuzzy +msgid "Satellite equipment setup" +msgstr "Uppsetning Gervihnattabúnaðar" + +msgid "Satellite longitude:" +msgstr "" + +# +msgid "Satellites" +msgstr "Gervihnettir" + +# +msgid "Satfinder" +msgstr "Gervihnattaleit" + +msgid "Sats" +msgstr "Gervihn." + +# +msgid "Saturation" +msgstr "Lita mettun" + +# +msgid "Saturday" +msgstr "Laugardagur" + +# +msgid "Save" +msgstr "Vista" + +# +#, fuzzy +msgid "Save playlist" +msgstr "vista spilunarlista" + +msgid "Save timeshift file" +msgstr "" + +msgid "Save timeshift file in movie directory" +msgstr "" + +# +msgid "Scaler sharpness" +msgstr "Skölunar skerpa" + +# +#, fuzzy +msgid "Scaling mode" +msgstr "Kvörðunar aðferð" + +msgid "Scan" +msgstr "" + +# +msgid "Scan " +msgstr "Leita" + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, fuzzy, python-format +msgid "Scan %s" +msgstr "Leita" + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, fuzzy, python-format +msgid "Scan %s band" +msgstr "Leita á bandi EU MID" + +# +msgid "Scan additional SR" +msgstr "Leita á fleiri SR" + +# +#, fuzzy +msgid "Scan files..." +msgstr "Leita að skrám..." + +# +#, fuzzy +msgid "Scan wireless networks" +msgstr "Leita að þráðlausu neti" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "Leita að þráðlausu neti og tengjast þeim með völdu netkorti.\n" + +#, python-format +msgid "Scanning %s..." +msgstr "" + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "" +msgstr[1] "" + +msgid "Scanning failed!" +msgstr "" + +msgid "Scanning..." +msgstr "" + +# +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "Leita sjálfgefna gervihnetti, raðað eftir hnöttum með tengdum mótor" + +# +msgid "Search east" +msgstr "Leita austur" + +msgid "Search west" +msgstr "Leita vestur" + +msgid "Searching" +msgstr "" + +msgid "Searching east ..." +msgstr "" + +msgid "Searching for available updates. Please wait..." +msgstr "Leita að tiltækum uppfærslum. Vinsamlega bíðið..." + +# +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "Leita að nýinnsettum eða fjarlægðum pökkum. Vinsamlega bíðið..." + +msgid "Searching west ..." +msgstr "" + +msgid "Second cable of motorized LNB" +msgstr "" + +# +msgid "Secondary DNS" +msgstr "Vara DNS" + +# +msgid "Seek" +msgstr "Leita" + +# +#, fuzzy +msgid "Seek backward" +msgstr "fara til baka" + +# +#, fuzzy +msgid "Seek backward (enter time)" +msgstr "stökkva til baka (slá inn tíma)" + +# +#, fuzzy +msgid "Seek forward" +msgstr "fara áfram" + +# +#, fuzzy +msgid "Seek forward (enter time)" +msgstr "stökkva áfram (slá inn tíma)" + +# +msgid "Select" +msgstr "Veldu" + +# +#, fuzzy +msgid "Select CAId" +msgstr "veldu CAId" + +# +msgid "Select HDD" +msgstr "Veldu harðadisk" + +# +#, fuzzy +msgid "Select a bouquet" +msgstr "Veldu mynd" + +# +msgid "Select a movie" +msgstr "Veldu mynd" + +# +#, fuzzy +msgid "Select a network adapter" +msgstr "Veldu Netkort" + +# +#, fuzzy +msgid "Select a skin" +msgstr "Veldu mynd" + +# +#, fuzzy +msgid "Select a tuner" +msgstr "Veldu mynd" + +# +#, fuzzy +msgid "Select a wireless network" +msgstr "Veldu þráðlaust net" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +#, fuzzy +msgid "Select an image to be downloaded" +msgstr "Veldu stýrikerfi til að hlaða niður" + +# +msgid "Select audio track" +msgstr "Veldu hljóð rás" + +#, fuzzy +msgid "Select backup files" +msgstr "Veldu afrits skrár" + +#, fuzzy +msgid "Select backup location" +msgstr "Veldu stað fyrir afrit" + +# +msgid "Select channel to record from" +msgstr "Veldu rás til að taka upp frá" + +msgid "Select copy destination for:" +msgstr "" + +msgid "Select default EPG type..." +msgstr "" + +msgid "Select desired image from feed list" +msgstr "Veldu stýrikerfi af listanum" + +msgid "Select destination for:" +msgstr "" + +msgid "Select files for backup." +msgstr "Veldu skrár fyrir afrit." + +# +msgid "Select files/folders to backup" +msgstr "Veldu skrár/möppur til afritunar" + +msgid "Select input device" +msgstr "Veldu inntaks tæki" + +msgid "Select input device." +msgstr "Veldu inntaks tæki." + +# +msgid "Select interface" +msgstr "Veldu netkort" + +# +#, fuzzy +msgid "Select location" +msgstr "Velja staðsetningu" + +# +#, fuzzy +msgid "Select movie" +msgstr "Veldu mynd" + +# +msgid "Select provider to add..." +msgstr "Veldu sendanda til að bæta við..." + +msgid "Select refresh rate" +msgstr "Veldu hressingar tíðni" + +msgid "Select satellites" +msgstr "" + +# +msgid "Select service to add..." +msgstr "Veldur rás til að bæta við..." + +msgid "Select sort method:" +msgstr "" + +#, fuzzy +msgid "Select target folder" +msgstr "Velja úttaks möppu" + +# +#, fuzzy +msgid "Select the movie path" +msgstr "velja slóð að mynd" + +# +#, fuzzy +msgid "Select upgrade source" +msgstr "Veldu upphafs slóð til að breyta." + +# +msgid "Select upgrade source to edit." +msgstr "Veldu upphafs slóð til að breyta." + +# +msgid "Select video input with up/down buttons" +msgstr "Veldu mynd inngang með up/niður tökkum" + +# +msgid "Select video mode" +msgstr "Veldu mynd stillingu" + +# +msgid "Select wireless network" +msgstr "Veldu þráðlaust net" + +msgid "Select your provider, and press OK to start the scan" +msgstr "" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +# +msgid "Send DiSEqC only on satellite change" +msgstr "Senda DiSEqC bara við að skipta á annan gevihnött" + +# +msgid "Separate titles with a main menu" +msgstr "Taka út titla af aðalvalmynd" + +# +msgid "Sequence repeat" +msgstr "Endurtaka runu" + +# +msgid "Serbian" +msgstr "Serneska" + +# +msgid "Service" +msgstr "Rás" + +msgid "Service has been added to the favourites." +msgstr "Rás hefur verið bætt við eftirlætis lista." + +# +msgid "Service has been added to the selected bouquet." +msgstr "Rás hefur verið bætt við valinn rásavöndul." + +# +#, fuzzy +msgid "Service info" +msgstr "Upplýsingar" + +# +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Rás ógild!\n" +"(Rann út á tíma við lestur PMT)" + +# +#, fuzzy +msgid "Service name" +msgstr "Leita að rásum" + +# +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Rás fannst ekki!\n" +"(SID fannst ekki í PAT)" + +msgid "Service reference" +msgstr "Rása upplýsingar" + +# +msgid "Service scan" +msgstr "Rása leit" + +# +#, fuzzy +msgid "Service searching" +msgstr "Leita að rásum" + +# +#, fuzzy +msgid "Service title mode" +msgstr "Veldu mynd stillingu" + +# +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"Rás finnst ekki!\n" +"Athugaðu stillingar móttakara!" + +# +msgid "Services" +msgstr "Rásir" + +msgid "Set default" +msgstr "" + +#, fuzzy +msgid "Set end time" +msgstr "Stilla loka tíma" + +msgid "Set fixed" +msgstr "" + +msgid "Set fps for external subtitles" +msgstr "" + +# +msgid "Set interface as default Interface" +msgstr "Gera að sjálfgefnu korti" + +msgid "Set limits" +msgstr "" + +#, fuzzy +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "Sýna framvindu atriðis við rásaval" + +msgid "Set time window to 1 hour" +msgstr "" + +msgid "Set time window to 2 hours" +msgstr "" + +msgid "Set time window to 3 hours" +msgstr "" + +msgid "Set time window to 4 hours" +msgstr "" + +msgid "Set time window to 5 hours" +msgstr "" + +msgid "Set time window to 6 hours" +msgstr "" + +# +#, fuzzy +msgid "Set voltage and 22KHz" +msgstr "Setja spennu og 22KHz" + +# +msgid "Settings" +msgstr "Stillingar" + +# +msgid "Setup" +msgstr "Uppsetning" + +msgid "Setup menu" +msgstr "" + +# +#, fuzzy +msgid "Setup mode" +msgstr "Uppsetninga hamur" + +msgid "Setup your positioner" +msgstr "" + +#, fuzzy +msgid "Setup your satellite equipment" +msgstr "Gervihnatta búnaður" + +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "à USB stauts ráðgjafi að halda áfram og setja stýrikerfi %s inn í minni móttakarans?" + +# +msgid "Sharpness" +msgstr "Skerpa" + +msgid "Short filenames" +msgstr "Stutt skráarnöfn" + +msgid "Show EIT now/next in infobar" +msgstr "" + +# +#, fuzzy +msgid "Show EPG for current channel..." +msgstr "Sýna upplýsinga borða við breytingu á atriði" + +# +#, fuzzy +msgid "Show EPG..." +msgstr "sýna EPG" + +msgid "Show Games show" +msgstr "" + +msgid "Show SNR percentage instead of dB value" +msgstr "" + +msgid "Show VCR scart on main menu" +msgstr "" + +# +#, fuzzy +msgid "Show WLAN status" +msgstr "Sýna WLAN stöðu" + +msgid "Show animation while busy" +msgstr "" + +# +#, fuzzy +msgid "Show background in radio mode" +msgstr "bakgrunns mynd" + +msgid "Show bouquet selection menu" +msgstr "" + +msgid "Show busy indicator when the system is busy." +msgstr "" + +msgid "Show channel numbers in channel selection" +msgstr "" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "" + +msgid "Show detailed event info" +msgstr "" + +# +#, fuzzy +msgid "Show event details" +msgstr "sýna atriði nánar" + +msgid "Show event-progress in channel selection" +msgstr "Sýna framvindu atriðis við rásaval" + +# +#, fuzzy +msgid "Show extended description" +msgstr "sýna auka upplýsingar" + +#, fuzzy +msgid "Show extensions..." +msgstr "skoða íforrit..." + +msgid "Show icon for new/unseen items" +msgstr "" + +msgid "Show in extensions menu" +msgstr "" + +# +#, fuzzy +msgid "Show info" +msgstr "Sýna upplýsingar" + +# +#, fuzzy +msgid "Show info line" +msgstr "sýna upplýsingalínu" + +# +msgid "Show infobar on channel change" +msgstr "Sýna upplýsingaborða við að skipta um stöð" + +# +msgid "Show infobar on event change" +msgstr "Sýna upplýsinga borða við breytingu á atriði" + +# +msgid "Show infobar on skip forward/backward" +msgstr "Sýna upplýsingaborða við stökk fram eða aftur" + +msgid "Show latest commits on sourceforge" +msgstr "" + +# +#, fuzzy +msgid "Show message when recording starts" +msgstr "Sýna skilaboð við byrjun upptöku" + +#, fuzzy +msgid "Show movie lengths in movielist" +msgstr "Hlaða inn lengd myndar í myndalista" + +msgid "Show multi channel EPG" +msgstr "" + +msgid "Show picons in channel list" +msgstr "" + +# +msgid "Show positioner movement" +msgstr "Sýna færslu mótors" + +msgid "Show screensaver" +msgstr "" + +msgid "Show second infobar" +msgstr "" + +msgid "Show service type icons" +msgstr "" + +# +msgid "Show services beginning with" +msgstr "Sýna rásir sem byrja á" + +# +#, fuzzy +msgid "Show shutdown menu" +msgstr "sýna slökkva valmynd" + +msgid "Show single service EPG" +msgstr "" + +msgid "Show status icons in Movielist" +msgstr "" + +msgid "Show status icons in movie list" +msgstr "" + +msgid "Show status icons in movielist" +msgstr "" + +# +#, fuzzy +msgid "Show tag menu" +msgstr "sýna merkja valmynd" + +# +msgid "Show the radio player..." +msgstr "Sýna útvarpsspilara..." + +msgid "Show the tv player..." +msgstr "Sýna sjónvarpsspilara..." + +msgid "Show warning when timeshift is stopped" +msgstr "" + +# +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Sýnir stöðu þráðlausrar nettenginar.\n" + +# +#, fuzzy +msgid "Shuffle playlist" +msgstr "spila af handahófi úr lista" + +msgid "Shutdown" +msgstr "Slökkva" + +msgid "Shutdown when in Standby" +msgstr "" + +msgid "Side by side" +msgstr "" + +msgid "Signal OK, proceeding" +msgstr "" + +msgid "Signal quality" +msgstr "" + +# +#, fuzzy +msgid "Signal strength:" +msgstr "Styrkur merkis:" + +# +msgid "Signal: " +msgstr "Merki:" + +# +msgid "Similar" +msgstr "Svipað" + +# +msgid "Similar broadcasts:" +msgstr "Svipuð útsending:" + +# +msgid "Simple" +msgstr "Einfalt" + +# +msgid "Simple titleset (compatibility for legacy players)" +msgstr "Einföld valmynd (virkar fyrir flesta spilara)" + +# +msgid "Single" +msgstr "Einn" + +# +msgid "Single EPG" +msgstr "Eitt EPG" + +# +msgid "Single satellite" +msgstr "Einn gervihnöttur" + +# +#, fuzzy +msgid "Single step (GOP)" +msgstr "Eitt skref (GOP)" + +# +msgid "Single transponder" +msgstr "Einn sendir" + +msgid "Site latitude" +msgstr "" + +msgid "Site longitude" +msgstr "" + +# +msgid "Skin" +msgstr "Skinn" + +# +msgid "Skins" +msgstr "Skinn" + +# +#, fuzzy +msgid "Skip empty services" +msgstr "Læsa rásum" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "" + +# +#, fuzzy +msgid "Sleep timer" +msgstr "Tímastilling" + +msgid "SleepTimer Configuration" +msgstr "" + +msgid "Sleeptimer" +msgstr "" + +# +#, fuzzy +msgid "Slide picture in loop" +msgstr "sýna myndir í aftur og aftur" + +# +#, fuzzy +msgid "Slide show interval (sec.)" +msgstr "Tími milli mynda (sek.)" + +# +#, python-format +msgid "Slot %d" +msgstr "Sleði %d" + +msgid "Slovak" +msgstr "" + +# +msgid "Slovenian" +msgstr "Slovenian" + +# +msgid "Slow" +msgstr "Hægt" + +# +#, fuzzy +msgid "Slow motion speeds" +msgstr "Hraði hægspilunar" + +# +#, fuzzy +msgid "Small progress" +msgstr "à vinnslu" + +msgid "Social/Political/Economics" +msgstr "" + +msgid "SoftCam / CI" +msgstr "" + +# +#, fuzzy +msgid "Softcam type" +msgstr "Hugbúnaður" + +# +msgid "Software" +msgstr "Hugbúnaður" + +msgid "Software management" +msgstr "Hugbúnaðar umsýsla" + +msgid "Software manager setup" +msgstr "Uppsetning hugbúnaðar umsýslu" + +# +msgid "Software restore" +msgstr "Hugbúnaðar endurinnsetning" + +# +msgid "Software update" +msgstr "Hugbúnaðar uppfærsla" + +msgid "Softwaremanager information" +msgstr "Upplýsingar hugbúnaðar umsýslu" + +msgid "Some plugins are not available:\n" +msgstr "Sum íforrit eru ekki til:\n" + +# +#, fuzzy, python-format +msgid "Sorry, %s has not been installed!" +msgstr "Þvímiður er Margmiðlunarleitari ekki innsettur!" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "" + +# +#, fuzzy +msgid "Sorry, no backups found!" +msgstr "Þvímiður fannst ekkert afrit!" + +# +#, fuzzy +msgid "Sorry, no details available!" +msgstr "Því miður, engar nánari upplýsingar til!" + +# +#, fuzzy +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"Því miður er ekki hægt að skrifa á valinn afritunar stað.\n" +"Vinsamlega veldu annan stað fyrir afritið." + +msgid "Sort" +msgstr "" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Raða A-Ö" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +#, fuzzy +msgid "Sort time" +msgstr "Raða Tíma" + +# +msgid "Sound" +msgstr "Hljóð" + +# +#, fuzzy +msgid "Sound carrier" +msgstr "Hljóðburðarbylgja" + +msgid "Source request" +msgstr "" + +# +msgid "South" +msgstr "Suður" + +# +msgid "Spanish" +msgstr "Spænska" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +# +msgid "Split preview mode" +msgstr "Skipta forsýn" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "" + +# +#, fuzzy +msgid "Standard" +msgstr "venjulegt" + +msgid "Standart list" +msgstr "" + +# +msgid "Standby" +msgstr "Biðstaða" + +# +#, fuzzy +msgid "Standby / restart" +msgstr "Biðstaða / Endurræsing" + +msgid "Standby after current event" +msgstr "" + +#, fuzzy, python-format +msgid "Standby fan %d PWM" +msgstr "Vifta í biðstöðu %d PWM" + +#, fuzzy, python-format +msgid "Standby fan %d voltage" +msgstr "%d Volt á viftu í biðstöðu " + +msgid "Standby in " +msgstr "" + +msgid "StandbyLED" +msgstr "" + +# +msgid "Start from the beginning" +msgstr "Byrja frá byrjun" + +msgid "Start offline decode" +msgstr "" + +# +msgid "Start recording?" +msgstr "Byrja upptöku?" + +# +msgid "Start test" +msgstr "Byrja prófun" + +# +#, fuzzy +msgid "Start time" +msgstr "Byrjunartími" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +# +#, fuzzy +msgid "Start timeshift" +msgstr "byrja lifandi pásu" + +msgid "Start with list screen" +msgstr "" + +# +msgid "Starting on" +msgstr "Byrja á" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +# +msgid "Step east" +msgstr "Skref austur" + +# +msgid "Step west" +msgstr "Skref vestur" + +msgid "Stepped east" +msgstr "" + +msgid "Stepped west" +msgstr "" + +# +msgid "Stop" +msgstr "Stopp" + +# +#, fuzzy +msgid "Stop PiP" +msgstr "hætta með PiP" + +# +msgid "Stop current event and disable coming events" +msgstr "Stoppa núverandi atriði og hætta við komandi atriði" + +# +msgid "Stop current event but not coming events" +msgstr "Stoppa núverandi atriði en halda komandi atriðum" + +# +#, fuzzy +msgid "Stop entry" +msgstr "hætta innslætti" + +# +msgid "Stop playing this movie?" +msgstr "Stoppa spilun?" + +msgid "Stop recording" +msgstr "" + +msgid "Stop recording and delete" +msgstr "" + +msgid "Stop service on return to movie list" +msgstr "" + +# +msgid "Stop test" +msgstr "Stoppa prófun" + +# +msgid "Stop testing plane after # failed transponders" +msgstr "Hætta að prufa eftir # senda sem fundust ekki" + +# +msgid "Stop testing plane after # successful transponders" +msgstr "Hætta að prufa eftir að # sendar fundust" + +msgid "Stop timer recording" +msgstr "" + +# +#, fuzzy +msgid "Stop timeshift" +msgstr "stoppa lifandi pásu" + +# +#, fuzzy +msgid "Stop timeshift?" +msgstr "Stoppa tímafærslu?" + +msgid "Stopped" +msgstr "" + +msgid "Store at index" +msgstr "" + +# +msgid "Store position" +msgstr "Vista staðsetningu" + +# +msgid "Stored position" +msgstr "Vistuð staða" + +msgid "Stream" +msgstr "" + +msgid "Stream request" +msgstr "" + +msgid "Strongest position" +msgstr "" + +# +msgid "Subservice list..." +msgstr "Listi undirrása..." + +# +msgid "Subservices" +msgstr "Undirþjónusta" + +msgid "Subtitle Quickmenu" +msgstr "" + +# +#, fuzzy +msgid "Subtitle alignment" +msgstr "Velja undirtexta" + +msgid "Subtitle border width" +msgstr "" + +msgid "Subtitle delay when timing is bad" +msgstr "" + +msgid "Subtitle delay when timing lacks" +msgstr "" + +# +#, fuzzy +msgid "Subtitle font size" +msgstr "Undirtextar" + +msgid "Subtitle language selection 1" +msgstr "" + +msgid "Subtitle language selection 2" +msgstr "" + +msgid "Subtitle language selection 3" +msgstr "" + +msgid "Subtitle language selection 4" +msgstr "" + +# +#, fuzzy +msgid "Subtitle position" +msgstr "Velja undirtexta" + +# +msgid "Subtitle selection" +msgstr "Velja undirtexta" + +msgid "Subtitle selection..." +msgstr "" + +msgid "Subtitle settings" +msgstr "" + +# +msgid "Subtitles" +msgstr "Undirtextar" + +# +msgid "Sun" +msgstr "Sun" + +# +msgid "Sunday" +msgstr "Sunnudagur" + +# +#, fuzzy +msgid "Swap PiP and main picture" +msgstr "skipta á PiP og aðal mynd" + +# +#, fuzzy +msgid "Swap services" +msgstr "Skipta á rásum" + +# +msgid "Swedish" +msgstr "Sænskt" + +msgid "Switch TV to correct input" +msgstr "" + +msgid "Switch between filelist/playlist" +msgstr "" + +msgid "Switch between normal mode and list mode" +msgstr "" + +msgid "Switch to HDMI in mode" +msgstr "" + +# +#, fuzzy +msgid "Switch to filelist" +msgstr "skipta í skráarlista" + +msgid "Switch to next channel" +msgstr "" + +# +#, fuzzy +msgid "Switch to next channel in history" +msgstr "næsta rás í sögu" + +# +#, fuzzy +msgid "Switch to next sub service" +msgstr "Skipta á næstu undirrás" + +# +#, fuzzy +msgid "Switch to playlist" +msgstr "skipta í spilunar lista" + +# +#, fuzzy +msgid "Switch to previous channel" +msgstr "Skipta á fyrri undirrás" + +# +#, fuzzy +msgid "Switch to previous channel in history" +msgstr "fyrri rás í sögu" + +# +#, fuzzy +msgid "Switch to previous sub service" +msgstr "Skipta á fyrri undirrás" + +msgid "Switchable tuner types:" +msgstr "Gerðir umskiptanlegra móttakara:" + +msgid "Symbol rate" +msgstr "Bitahraði" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "" + +# +msgid "System" +msgstr "Kerfi" + +# +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "" +"Dreifingaraðili á Ãslandi:\n" +" Öreind sf. Auðbrekka 3\n" +"200 Kópavogur\n" +"\n" +"Email: oreind@oreind.is\n" +"Vefur: http://www.oreind.is" + +# +msgid "TS file is too large for ISO9660 level 1!" +msgstr "TS skrá er of stór fyrir ISO9660 level 1!" + +msgid "TSID" +msgstr "TSID" + +msgid "TV physical address report" +msgstr "" + +msgid "TXT PID" +msgstr "TXT PID" + +# +#, fuzzy +msgid "Table of contents for collection" +msgstr "Efnisyfirlit yfir safn" + +# +msgid "Tags" +msgstr "Merki" + +msgid "Teletext subtitle color" +msgstr "" + +#, fuzzy +msgid "Temperature and fan control" +msgstr "Hiti og viftu stillingar" + +# +msgid "Terrestrial" +msgstr "Stafrænt í lofti" + +# +msgid "Terrestrial provider" +msgstr "Sendandi á landi" + +# +msgid "Test DiSEqC settings" +msgstr "Prufa DiSEqC stillingar" + +# +msgid "Test mode" +msgstr "Prufu hamur" + +msgid "Test the network configuration of your receiver.\n" +msgstr "" + +# +#, fuzzy +msgid "Test type" +msgstr "Prufa gerð" + +# +#, fuzzy +msgid "Text color" +msgstr "textalitur" + +msgid "Thai" +msgstr "" + +# +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"Takk fyrir að nota álfinn.\n" +"Ãttu á OK til að halda áfram." + +# +#, fuzzy +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"Takk fyrir að nota álfinn.\n" +"Ãttu á OK til að halda áfram." + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "" + +msgid "The PIN code has been changed successfully." +msgstr "Það tókst að breyta PIN kóðanum." + +msgid "The PIN codes you entered are different." +msgstr "PIN númerin sem að þú slóst inn eru ekki eins." + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" +"USB stauturinn var gerður ræsanlegur.\n" +"Núna getur þú hlaðið niður NFI stýrikerfis skrá!" + +# +msgid "The backup failed. Please choose a different backup location." +msgstr "Afritun mistókst. Veldu annan stað fyrir afritið." + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" + +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"Mappan %s er ekki skrifanleg.\n" +"Vertu viss um að velja möppu sem má skrifa í." + +# +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"Eftirfarandi tæki fannst:\n" +"\n" +"%s\n" +"\n" +"Viltu skrifa USB keyrslu skrá á þennan staut?" + +# +msgid "The following files were found..." +msgstr "Eftirfarandi skrár fundust..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "Md5sum prufun tókst ekki, skráin er sennilega skemmd!" + +#, fuzzy +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"Netkerfis ráðgjafinn er ekki innsettur!\n" +"Vinsamlega settu hann inn." + +# +#, python-format +msgid "The path %s already exists." +msgstr "Slóðin %s er þegar til." + +# +msgid "The pin code you entered is wrong." +msgstr "Kóðinn sem þú slóst inn er rangur." + +# +#, python-format +msgid "The results have been written to %s." +msgstr "Útkoman hefur verið skrifuð á %s." + +# +msgid "The sleep timer has been activated." +msgstr "Tíma stilling fyrir svefn er virk." + +# +msgid "The sleep timer has been disabled." +msgstr "Tímastilling til að slökkva er óvirkur." + +#, fuzzy +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"Hugbúnaðar umsýslu viðbót er ekki innsett!\n" +"Vinsamlega settu það inn." + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "" + +# +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "Atriða skrá (timer.xml) er skemmd og var ekki hægt að lesa hana." + +# +#, fuzzy +msgid "The user interface of your receiver is restarting" +msgstr "Vinsamlega bíðið á meðan netkerfið er endurræst..." + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"Forrit fyrir þráðlausa net ekki uppsett!\n" +"Settu það inn og veldu hvað þú vilt gera næst." + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"Þráðlausa netkortið er ekki tengt!\n" +"Vinsamlega tengið það." + +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "Ráðgjafinn getur tekið afrit af stillingum þínum. Viltu taka afrit núna?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "Ráðgjafinn fann afrit af stillingum. Viltu setja inn stillingar síðan %s?" + +msgid "The wizard is finished now." +msgstr "Ráðgjafinn er búinn núna." + +# +msgid "There are at least " +msgstr "Það eru allavega " + +#, fuzzy, python-format +msgid "There are at least %s updates available." +msgstr "Það er engin uppfærsla tiltæk." + +msgid "There are currently no outstanding actions." +msgstr "Það er ekkert atriði sem að liggur fyrir." + +msgid "There are no updates available." +msgstr "Það er engin uppfærsla tiltæk." + +msgid "There is no signal to lock on !" +msgstr "" + +# +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"Það gæti verið of lítið pláss á valinni disksneið,\n" +"Viltu örugglega halda áfram?" + +# +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "Þessi DVD RW diskur er þegar formaður - endurformun mun eyða öllum gögnum af honum." + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" + +msgid "This plugin is installed." +msgstr "Þetta íforrit er uppsett." + +msgid "This plugin is not installed." +msgstr "Þetta íforrit er ekki sett upp." + +msgid "This plugin will be installed." +msgstr "Þetta íforrit verður sett inn." + +msgid "This plugin will be removed." +msgstr "Þetta íforrit verður tekið út." + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "" + +# +#, fuzzy +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"Þessi prufun athugar stillingar nafnaþjóns.\n" +"Ef þú færð \"óstaðfest\" skilaboð:\n" +"- athugaðu DHCP þjónustu, tengingar og uppsetningu\n" +"- ef að þú hefur sett upp nafnaþjón handvirkt athugaðu þá þínar nafnaþjóns stillingar." + +# +#, fuzzy +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Þessi prufun athugar hvort að netkapallinn sé tengdur við netkortið þitt.\n" +"Ef þú færð skilaboðin \"ótengt\":\n" +"- athugaðu hvort að kapallinn sé tengur\n" +"- athugaðu hvort að kapallinn sé skemmdur" + +# +#, fuzzy +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Þessi prufun athugar hvort að gild IP tala fannst fyrir þitt netkort.\n" +"Ef þú færð skilaboðin \"óstaðfest\":\n" +"- það fannst ekki gild IP tala\n" +"- athugaðu DHCP uppsetningu, tengingar eða uppsetningu nets" + +# +#, fuzzy +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"Þessi prufun athugar hvort að netkortið þitt sé sett upp fyrir sjálfvirka úthlutun á IP tölu með DHCP þjón.\n" +"Ef þú færð skilaboðiin \"óvirkt\":\n" +"- þá er netkortið stillt fyrir handvirka IP uppsetningu\n" +"- athugaðu hvort að þú hafir sett inn réttar IP uppsetngingar í stillingum netkorts\n" +"Ef þú færð skilaboðin \"virkt\":\n" +"- athugaðu hvort að það sé DHCP þjónn sem úthlutar IP tölum á innra neti þínu" + +# +#, fuzzy +msgid "This test detects your configured LAN adapter." +msgstr "Þessi prufun skynjar innstillt netkort." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" + +# +msgid "Three" +msgstr "Þrír" + +# +msgid "Threshold" +msgstr "Mörk" + +# +msgid "Thu" +msgstr "Fim" + +# +msgid "Thumbnails" +msgstr "Smámyndir" + +# +msgid "Thursday" +msgstr "Fimmtudagur" + +# +msgid "Time" +msgstr "Tími" + +# +#, fuzzy +msgid "Time scale" +msgstr "Tímastillinga val" + +# +msgid "Timer" +msgstr "Tímastilling" + +msgid "Timer Overview" +msgstr "" + +# +#, fuzzy +msgid "Timer edit" +msgstr "Breyta Tímastillingu" + +# +#, fuzzy +msgid "Timer editor" +msgstr "Breyta Tímastillingum" + +# +msgid "Timer entry" +msgstr "Innsláttur tímastilltra atriða" + +# +msgid "Timer log" +msgstr "Tíma skrá" + +# +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"Tímastillingar ná yfir hvorn annan!\n" +"Vinsamlega athugið það!" + +# +#, fuzzy +msgid "Timer overview" +msgstr "Innsláttur tímastilltra atriða" + +#, fuzzy +msgid "Timer recording location" +msgstr "Staður fyrir tímastilltar upptökur" + +# +msgid "Timer sanity error" +msgstr "Villa í tímastillingu" + +# +msgid "Timer selection" +msgstr "Tímastillinga val" + +msgid "Timer selection..." +msgstr "" + +# +#, fuzzy +msgid "Timer type" +msgstr "Gerð Tímastillngar" + +# +msgid "Timeshift" +msgstr "Lifandi pása" + +msgid "Timeshift Live" +msgstr "" + +msgid "Timeshift location" +msgstr "Staður fyrir lifandi pásu" + +# +msgid "Timeshift not possible!" +msgstr "Tímabreyting ekki möguleg!" + +# +msgid "Timezone" +msgstr "Tímabelti" + +# +msgid "Title" +msgstr "Titill" + +# +msgid "Title properties" +msgstr "Upplýsingar titils" + +# +msgid "Titleset mode" +msgstr "Titla stillingar" + +msgid "To audio selection" +msgstr "" + +msgid "To subtitle selection" +msgstr "" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" + +# +msgid "Today" +msgstr "à dag" + +# +#, fuzzy +msgid "Toggle a cut mark at the current position" +msgstr "setja merki á núverandi stað" + +#, fuzzy +msgid "Tone amplitude" +msgstr "Styrkur tóns" + +# +msgid "Tone mode" +msgstr "Tón stilling" + +# +msgid "Toneburst" +msgstr "Tónstýring" + +# +msgid "Toneburst A/B" +msgstr "Tón stýring A/B" + +msgid "Top and bottom" +msgstr "" + +# +msgid "Track" +msgstr "Spor" + +# +msgid "Translation" +msgstr "Þýðing" + +# +msgid "Translation:" +msgstr "Þýðing:" + +msgid "Translations" +msgstr "" + +# +msgid "Transmission mode" +msgstr "Sendi stilling" + +# +msgid "Transponder" +msgstr "Sendir" + +# +#, fuzzy +msgid "Transponder type" +msgstr "Gerð sendis" + +msgid "Trash can" +msgstr "" + +# +msgid "Tries left:" +msgstr "Tilraunir eftir:" + +# +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Reyni að finna sendi í kapalkerfi.. vinsamlega bíðið..." + +# +msgid "Trying to download a new packetlist. Please wait..." +msgstr "Reyni að hlaða niður nýjum pakka lista. Vinsamlega bíðið..." + +# +msgid "Tue" +msgstr "Þri" + +# +msgid "Tuesday" +msgstr "Þriðjudagur" + +# +msgid "Tune" +msgstr "Stilla" + +# +#, fuzzy +msgid "Tune and focus" +msgstr "Móttakari" + +# +msgid "Tune failed!" +msgstr "Tókst ekki að stilla inn!" + +# +msgid "Tuner" +msgstr "Móttakari" + +# +msgid "Tuner configuration" +msgstr "Stilling móttakara" + +msgid "Tuner is not supported" +msgstr "" + +# +#, fuzzy +msgid "Tuner slot" +msgstr "Móttakara tengi" + +# +msgid "Tuner status" +msgstr "Móttakari" + +# +#, fuzzy, python-format +msgid "Tuner status %s" +msgstr "Móttakari" + +msgid "Tuner type" +msgstr "Gerð móttakara" + +# +msgid "Turkish" +msgstr "Tyrkneska" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +# +msgid "Two" +msgstr "Tveir" + +# +msgid "Type" +msgstr "Gerð" + +# +msgid "Type of scan" +msgstr "Gerð leitunar" + +# +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "" + +# +#, fuzzy +msgid "USB stick" +msgstr "USB stautur" + +# +msgid "USB stick wizard" +msgstr "USB stauta stjóri" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +msgid "Undo install" +msgstr "Hætta við innsetningu" + +msgid "Undo uninstall" +msgstr "Hætta við að hætta við" + +msgid "Unencrypted" +msgstr "Opin rás" + +msgid "UnhandledKey" +msgstr "Ónotaður" + +# +msgid "Unicable" +msgstr "Unicable" + +# +msgid "Unicable LNB" +msgstr "Unicable LNB" + +# +msgid "Unicable Martix" +msgstr "Unicable Martix" + +msgid "Uninstall" +msgstr "Taka út" + +# +msgid "Universal LNB" +msgstr "Venjulegt LNB" + +msgid "Unknown" +msgstr "Óþekkt" + +msgid "Unmount" +msgstr "" + +# +msgid "Unsupported" +msgstr "Ekki stutt" + +# +msgid "Update" +msgstr "Uppfæra" + +msgid "Update and ask to reboot" +msgstr "" + +msgid "Update and reboot (recommended)" +msgstr "" + +# +#, fuzzy +msgid "Update channel list only" +msgstr "næsta rás í sögu" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "" +msgstr[1] "" + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "" + +msgid "Update has completed." +msgstr "" + +msgid "Updatefeed not available." +msgstr "Uppfærslur á fæðirásum ekki tiltækar." + +msgid "Updating software catalog" +msgstr "Uppfæri efnisyfirlit hugbúnaðar" + +# +msgid "Upgrading" +msgstr "Uppfæri" + +# +msgid "Use" +msgstr "Nota" + +# +msgid "Use DHCP" +msgstr "Nota DHCP" + +msgid "Use EIT EPG information when it is available." +msgstr "" + +msgid "Use FreeSat EPG information when it is available." +msgstr "" + +msgid "Use MHW EPG information when it is available." +msgstr "" + +msgid "Use Netmed EPG information when it is available." +msgstr "" + +msgid "Use TV remote control" +msgstr "" + +# +#, fuzzy +msgid "Use USALS for this sat" +msgstr "Nota usals fyrir þennan hnött" + +msgid "Use ViaSat EPG information when it is available." +msgstr "" + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +# +msgid "Use a gateway" +msgstr "Nota beini" + +msgid "Use fastscan channel names" +msgstr "" + +msgid "Use fastscan channel numbering" +msgstr "" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "" + +# +#, fuzzy +msgid "Use interface" +msgstr "Nota netkort" + +msgid "Use official channel numbering" +msgstr "" + +msgid "Use original DVB subtitle position" +msgstr "" + +msgid "Use original teletext position" +msgstr "" + +# +msgid "Use power measurement" +msgstr "Nota aflmælingu" + +#, fuzzy +msgid "Use the network wizard to configure selected network adapter" +msgstr "Nota ráðgjafa til að stilla valið netkort" + +# +#, fuzzy +msgid "Use the network wizard to configure your network\n" +msgstr "Nota netkerfis álf til að stilla inn netkerfið\n" + +# +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "Ãttu á up/niður takka á fjarstýringu til að velja. Ãttu svo á OK." + +# +#, fuzzy +msgid "Use the wizard to set up basic features" +msgstr "Nota álfinn til að setja upp grunnstillingar" + +#, fuzzy +msgid "Use these input device settings?" +msgstr "Nota þessar stillingar fyrir inntaks tæki?" + +#, fuzzy +msgid "Use these settings?" +msgstr "Nota þessar stillingar?" + +# +msgid "Use this video enhancement settings?" +msgstr "Nota mynd endurbóta stillingar?" + +# +#, fuzzy +msgid "Use trash can in movielist" +msgstr "Til baka til mynda lista" + +# +msgid "Used service scan type" +msgstr "Notuð leitunaraðferð" + +msgid "User - bouquets" +msgstr "" + +# +msgid "User defined" +msgstr "Stillt af notanda" + +msgid "User defined transponder" +msgstr "" + +# +#, fuzzy +msgid "User interface" +msgstr "Nota netkort" + +# +msgid "Username" +msgstr "Notandanafn" + +#, python-format +msgid "Using LNB %d" +msgstr "" + +msgid "Using fixed address" +msgstr "" + +#, python-format +msgid "Using tuner %s" +msgstr "" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "" + +# +msgid "VCR scart" +msgstr "Vídeó scart" + +# +msgid "VMGM (intro trailer)" +msgstr "VMGM (mynd sýnishorn)" + +# +msgid "Vertical" +msgstr "Lóðrétt" + +msgid "Vertical turning speed" +msgstr "" + +msgid "Video PID" +msgstr "Video PID" + +# +msgid "Video enhancement preview" +msgstr "Mynd endurbóta forsýn" + +# +msgid "Video enhancement settings" +msgstr "Mynd endurbóta stillingar" + +# +msgid "Video enhancement setup" +msgstr "Mynd endurbóta uppsetnging" + +# +#, fuzzy +msgid "Video fine tuning" +msgstr "Mynd fínstillingar" + +# +#, fuzzy +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Mynd inngangs val\n" +" \n" +"Ãttu á OK ef að þú sérð þessa mynd á sjónvarpinu (eða veldu annan inngang).\n" +"\n" +"Næsti inngangur verður prófaður eftir 10 sekúndur." + +# +msgid "Video mode selection." +msgstr "Mynd hams stilling." + +# +#, fuzzy +msgid "Video output" +msgstr "Mynd útgangur" + +# +#, fuzzy +msgid "Video setup" +msgstr "Mynd uppsetning" + +#, fuzzy +msgid "Video wizard" +msgstr "Mynd ráðgjafi" + +#, python-format +msgid "Video: %s fps" +msgstr "" + +msgid "VideoMode" +msgstr "" + +msgid "Videocodec" +msgstr "" + +msgid "Videoformat" +msgstr "" + +msgid "Videosize" +msgstr "" + +# +msgid "View Rass interactive..." +msgstr "Skoða gagnvirkt Útvarp" + +# +msgid "View details" +msgstr "Skoða nánar" + +# +msgid "View list of available " +msgstr "Skoða lista af tiltækum" + +# +msgid "View list of available CommonInterface extensions" +msgstr "Skoða lista af tiltækum CommonInterface viðbótum." + +# +msgid "View list of available EPG extensions." +msgstr "Skoða lista af tiltækum EPG viðbótum." + +msgid "View list of available Satellite equipment extensions." +msgstr "Skoða lista af tiltækum gervihnatta viðbótum." + +# +msgid "View list of available communication extensions." +msgstr "Skoða lista af tiltækum samskipta viðbótum." + +# +msgid "View list of available default settings" +msgstr "Skoða lista af tiltækum sjálfgefnum stillingum" + +# +#, fuzzy +msgid "View list of available display and userinterface extensions." +msgstr "Skoða lista af tiltækum Skjá og viðmóts viðbótum." + +# +msgid "View list of available multimedia extensions." +msgstr "Skoða lista af tiltækum magmiðlunar viðbótum." + +# +msgid "View list of available networking extensions" +msgstr "Skoða lista af tiltækum netkerfis viðbótum" + +# +msgid "View list of available recording extensions" +msgstr "Skoða lista af tiltækum upptöku viðbótum" + +# +msgid "View list of available skins" +msgstr "Skoða lista af tiltækum skinnum" + +# +msgid "View list of available software extensions" +msgstr "Skoða lista af tiltækum hugbúnaðar viðbótum" + +# +msgid "View list of available system extensions" +msgstr "Skoða lista af tiltækum kerfis viðbótum" + +# +#, fuzzy +msgid "View photos..." +msgstr "Skoða ljósmyndir..." + +# +msgid "View teletext..." +msgstr "Skoða textavarp..." + +# +#, fuzzy +msgid "View video CD..." +msgstr "Skoða Video CD..." + +# +#, fuzzy +msgid "Virtual keyboard" +msgstr "Sýndar lyklaborð" + +# +msgid "Voltage mode" +msgstr "Spennu stýring" + +# +msgid "Volume" +msgstr "Styrkur" + +# +msgid "W" +msgstr "W" + +# +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "WLAN nettenging" + +# +msgid "WPA" +msgstr "WPA" + +# +msgid "WPA or WPA2" +msgstr "WPA eða WPA2" + +# +msgid "WPA2" +msgstr "WPA2" + +# +msgid "WSS on 4:3" +msgstr "WSS á 4:3" + +# +msgid "Waiting" +msgstr "Bíð" + +msgid "Waiting for mount" +msgstr "" + +msgid "Waiting for partition" +msgstr "" + +msgid "Wakeup" +msgstr "" + +msgid "Wakeup TV from standby" +msgstr "" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "" + +msgid "Wakeup signal from TV" +msgstr "" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "" + +#, fuzzy +msgid "Watch movies..." +msgstr "Spila uppteknar bíómyndir..." + +# +#, fuzzy +msgid "Watch recordings..." +msgstr "tek upp...." + +# +msgid "Wed" +msgstr "Mið" + +# +msgid "Wednesday" +msgstr "Miðvikudagur" + +# +msgid "Weekday" +msgstr "Vikudagur" + +msgid "Weighted position" +msgstr "" + +# +#, fuzzy +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"Velkominn í klippinga stjórann.\n" +"\n" +"Farðu að byrjun á því sem að þú ætlar að klippa. Ãttu á OK og veldu 'byrja klippingu'.\n" +"\n" +"Farðu þá að enda þess og ýttu á OK, veldu 'enda klippingu'. Það er allt og sumt." + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" + +# +msgid "Welcome..." +msgstr "Velkomin(n)..." + +# +msgid "West" +msgstr "Vestur" + +msgid "West limit set" +msgstr "" + +# +msgid "What do you want to scan?" +msgstr "Að hverju viltu leita?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "" + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "" + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "" + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "" + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "" + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "" + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "" + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "" + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "" + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "" + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "" + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "" + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "" + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "" + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "" + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "" + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "" + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "" + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "" + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "" + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "" + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "" + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "" + +msgid "When enabled, number markers will be hiden." +msgstr "" + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "" + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "" + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "" + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "" + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "" + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "" + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "" + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "" + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "" + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "" + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "" + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "" + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "" + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "" + +# +#, fuzzy +msgid "When enabled, use DHCP for the IP configuration." +msgstr "opna nafnaþjóns stillingar" + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "" + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "" + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "" + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "" + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "" + +# +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"Þegar þú velur verksmiðju stillingu þá missir þú út ALLAR stillingar\n" +"(þar með talið rásavendi, rásir, gervihnattaupplýsingar...)\n" +"Eftir að búið er að setja inn verksmiðju stillingar þá mun móttakarinn endurræsa sig.\n" +"Ertu viss um að þú viljir setja inn verksmiðju stillingar?" + +# +msgid "Where do you want to backup your settings?" +msgstr "Hvar viltu vista afritið?" + +# +msgid "Where to save temporary timeshift recordings?" +msgstr "Hvar á að vista tímabundnar tímafærslu upptökur?" + +# +msgid "Wireless LAN" +msgstr "­Þráðlaust net" + +# +#, fuzzy +msgid "Wireless network" +msgstr "Þráðlaust netkerfi" + +#, fuzzy +msgid "Wireless network configuration..." +msgstr "Uppsetning á þráðlausu neti." + +msgid "Wireless network connection setup" +msgstr "Uppsetning á þráðlausu neti" + +msgid "Wireless network connection setup." +msgstr "Uppsetning á þráðlausu neti." + +msgid "Wireless network state" +msgstr "Staða þráðlausa nets" + +msgid "With popup" +msgstr "" + +msgid "Without popup" +msgstr "" + +msgid "Would you like to install a softcam?" +msgstr "" + +# +msgid "Write error while recording. Disk full?\n" +msgstr "Villla við upptöku. Diskur fullur?\n" + +# +msgid "Write failed!" +msgstr "Tókst ekki að skrifa!" + +# +msgid "YPbPr" +msgstr "YPbPr" + +# +msgid "Year" +msgstr "Ãr" + +msgid "Yellow DVB subtitles" +msgstr "" + +# +msgid "Yes" +msgstr "Já" + +msgid "Yes and save" +msgstr "" + +msgid "Yes and save in movie dir" +msgstr "" + +msgid "Yes to all" +msgstr "Já við allt" + +msgid "Yes, always" +msgstr "Já, alltaf" + +# +msgid "Yes, and delete this movie" +msgstr "Já, og eyða þessari bíómynd" + +# +msgid "Yes, backup my settings!" +msgstr "Já, taka afrit að stilinunum!" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +# +msgid "Yes, do a manual scan now" +msgstr "Já, leita handvirkt núna" + +# +msgid "Yes, do an automatic scan now" +msgstr "Já, leita sjálfvirkt núna" + +# +msgid "Yes, do another manual scan now" +msgstr "Já, leitaðu aftur handvirkt núna" + +# +msgid "Yes, perform a shutdown now." +msgstr "Já, slökkva núna" + +# +msgid "Yes, restore the settings now" +msgstr "Já, settu inn afritið núna" + +# +msgid "Yes, returning to movie list" +msgstr "Já, fara til baka á mynda lista" + +msgid "Yesterday" +msgstr "" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" + +# +msgid "You can cancel the installation." +msgstr "Þú getur hætt við uppsetninguna." + +# +msgid "You can cancel the removal." +msgstr "Þú getur hætt við að fjarlægja." + +msgid "You can continue watching TV etc. while this is running." +msgstr "" + +msgid "You can install this plugin." +msgstr "Þú getur sett inn þetta íforrit." + +msgid "You can only burn receiver recordings!" +msgstr "" + +msgid "You can remove this plugin." +msgstr "Þú getur tekið út þetta íforrit." + +# +msgid "You cannot delete this!" +msgstr "Þú getur ekki eytt þessu!" + +msgid "You didn't select a channel to record from." +msgstr "Þú valdir ekki rás til að taka upp af." + +# +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "Þú hefur valið að taka afrit af stillingum þínum. Ãttu á OK til að byrja að taka afrit núna." + +# +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "Þú hefur valið að búa til nýjan keyranlegan .NFI USB staut. Þetta veldur því að öllum gögnum af USB stautum verður eytt." + +# +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "Þú hefur valið að setja inn eldra afrit. Enigma2 mun endurræsa eftir innsetningu. Ãttu á OK til að byrja að setja inn afritið núna." + +# +#, python-format +msgid "You have to wait %s!" +msgstr "Þú þarf að bíða %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" + +msgid "You system does not support ext4" +msgstr "" + +# +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "Það tókst að taka afrit. Nú höldum við áfram með uppfærsluna." + +# +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "Safn þitt er of stórt fyrir disk með einfalt lag. Þú þarft tóman disk með tveim lögum." + +msgid "Your current collection will get lost!" +msgstr "Núverandi safn þitt mun glatast!" + +# +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"Það þarf að uppfæra heila í framtölvu.\n" +"Ãtið á OK til að byrja uppfærslu." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +# +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"Veraldarvefs tenging virkar ekki!\n" +"Vinsamlega veldu hvað þú vilt gera næst." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "" + +# +msgid "Your network configuration has been activated." +msgstr "Stillingar netkerfis hafa verið gerðar virkar." + +msgid "Your receiver does not have an internet connection" +msgstr "" + +#, fuzzy +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"Dreamboxið þitt er nú tilbúið til notkunar.\n" +"\n" +"Veraldarvefs tengingin er virk núna.\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" + +msgid "Your receiver is rebooting" +msgstr "" + +msgid "Your receiver is shutting down" +msgstr "" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "" + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "" + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "" + +msgid "Your receiver will got to standby due to inactivity." +msgstr "" + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "" + +# +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"Það tókst ekki að ræsa þráðlausu net tenginguna þína!\n" +"Ertu búinn að tengja þráðlausa USB stautinn?\n" +"\n" +"Vinsamlega veldu hvað þú vilt gera næst." + +msgid "Zap" +msgstr "" + +msgid "Zap back to previously tuned service?" +msgstr "Fara aftur á rás sem áður var stillt á?" + +# +msgid "Zap back to service before positioner setup?" +msgstr "Fara aftur á rás fyrir stillingu á mótorstýringu?" + +msgid "Zap back to service before tuner setup?" +msgstr "Fara aftur á rás fyrir stillingu móttakara?" + +msgid "Zap focus to Picture in Picture" +msgstr "" + +msgid "Zap focus to main screen" +msgstr "" + +msgid "Zap mode" +msgstr "" + +msgid "Zap to selected channel" +msgstr "" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "" + +# +msgid "[alternative edit]" +msgstr "[breyta valkostum]" + +# +msgid "[bouquet edit]" +msgstr "[breyta fléttu]" + +msgid "[favourite edit]" +msgstr "[breyta eftirlætis lista]" + +# +msgid "[move mode]" +msgstr "[færslu staða]" + +# +msgid "a gui to assign services/providers to common interface modules" +msgstr "viðmót til að tengja rásir/sendendur við afruglara í tengi fyrir afruglara" + +# +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "viðmót til að tengja rásir/sendendur/caid við afruglara í tengi fyrir afruglara" + +# +msgid "abort alternatives edit" +msgstr "hætta við að breyta valkostum" + +# +msgid "abort bouquet edit" +msgstr "hætta við að breyta fléttu" + +msgid "abort favourites edit" +msgstr "hætta við að breyta eftirlætis lista" + +# +msgid "about to start" +msgstr "er að byrja" + +msgid "activate network adapter configuration" +msgstr "virkja stillingar netkorts" + +# +msgid "add alternatives" +msgstr "bæta við valkosti" + +# +msgid "add bookmark" +msgstr "bæta við bókamerki" + +# +msgid "add bouquet" +msgstr "bæta rásavendi við" + +# +msgid "add marker" +msgstr "bæta við merki" + +# +msgid "add service to bouquet" +msgstr "bæta rás við fléttu" + +msgid "add service to favourites" +msgstr "bæta rás við eftirlætis lista" + +# +msgid "add to parental protection" +msgstr "bæta við foreldra lás" + +msgid "adult movie/drama" +msgstr "" + +# +msgid "advanced" +msgstr "meiri stillingar" + +msgid "adventure/western/war" +msgstr "" + +msgid "advertisement/shopping" +msgstr "" + +msgid "after " +msgstr "" + +# +#, fuzzy +msgid "alphabetic" +msgstr "raða í stafrófsröð" + +msgid "alphabetic reverse" +msgstr "" + +msgid "alternative" +msgstr "" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "" + +msgid "arts/culture magazine" +msgstr "" + +msgid "athletics" +msgstr "" + +# +msgid "audio tracks" +msgstr "hljóð rás" + +# +msgid "auto" +msgstr "sjálfvirkt" + +#, fuzzy +msgid "automatic" +msgstr "Sjálfvirkt" + +# +msgid "back" +msgstr "til baka" + +# +msgid "background image" +msgstr "bakgrunns mynd" + +msgid "ballet" +msgstr "" + +#, python-format +msgid "bc%s" +msgstr "" + +# +msgid "better" +msgstr "betra" + +# +msgid "black" +msgstr "svartur" + +msgid "black & white" +msgstr "" + +# +msgid "blacklist" +msgstr "svarti listi" + +# +msgid "blue" +msgstr "blár" + +msgid "broadcasting/press" +msgstr "" + +# +#, fuzzy +msgid "by date" +msgstr "raða eftir dagsetningu" + +msgid "cartoon/puppets" +msgstr "" + +msgid "center" +msgstr "" + +msgid "centered" +msgstr "" + +msgid "centered, wrapped" +msgstr "" + +# +msgid "chapters" +msgstr "kaflar" + +msgid "childrens's/youth program (general)" +msgstr "" + +# +msgid "circular left" +msgstr "hringpólun vinstri" + +# +msgid "circular right" +msgstr "hringpólun hægri" + +msgid "comedy" +msgstr "" + +# +msgid "complex" +msgstr "flókinn" + +# +msgid "config menu" +msgstr "stillinga valmynd" + +# +msgid "confirmed" +msgstr "staðfest" + +# +msgid "connected" +msgstr "tengt" + +# +msgid "continue" +msgstr "halda áfram" + +msgid "cooking" +msgstr "" + +# +msgid "copy to bouquets" +msgstr "afrita til rásavanda" + +# +msgid "create directory" +msgstr "búa til möppu" + +#, python-format +msgid "currently installed image: %s" +msgstr "núverandi stýrikerfi: %s" + +# +msgid "daily" +msgstr "daglega" + +# +msgid "day" +msgstr "dagur" + +# +#, fuzzy +msgid "default" +msgstr "Venjulegt" + +# +msgid "delete cut" +msgstr "eyða klippingu" + +msgid "delete..." +msgstr "" + +msgid "descramble and record ecm" +msgstr "" + +msgid "detective/thriller" +msgstr "" + +# +msgid "disable" +msgstr "óvirkt" + +# +msgid "disable move mode" +msgstr "hætta í færslu stöðu" + +# +msgid "disabled" +msgstr "óvirkt" + +# +msgid "disconnected" +msgstr "ótengt" + +msgid "discussion/interview/debate" +msgstr "" + +# +msgid "do nothing" +msgstr "ekki gera neitt" + +msgid "documentary" +msgstr "" + +msgid "don't descramble, record ecm" +msgstr "" + +# +msgid "done!" +msgstr "búinn!" + +msgid "east" +msgstr "" + +msgid "economics/social advisory" +msgstr "" + +# +msgid "edit alternatives" +msgstr "breyta valkosti" + +msgid "education/science/factual topics (general)" +msgstr "" + +# +msgid "empty" +msgstr "tómt" + +# +msgid "enable" +msgstr "virkt" + +# +msgid "enable bouquet edit" +msgstr "byrja féttu breytingu" + +msgid "enable favourite edit" +msgstr "virkja breytingu eftirlætis lista" + +# +msgid "enable move mode" +msgstr "virkja færlsu stöðu" + +# +msgid "enabled" +msgstr "virkt" + +# +msgid "end alternatives edit" +msgstr "hætta breytingum valkosta" + +# +msgid "end bouquet edit" +msgstr "hætta að breyta fléttu" + +# +msgid "end cut here" +msgstr "enda klippingu hér" + +msgid "end favourites edit" +msgstr "hætta breytingum eftirlætis lista" + +msgid "entertainment (10-16 year old)" +msgstr "" + +msgid "entertainment (6-14 year old)" +msgstr "" + +# +msgid "equal to" +msgstr "jafnt og" + +msgid "equestrian" +msgstr "" + +# +msgid "exit DVD player or return to file browser" +msgstr "hætta í DVD spilara og fara til baka í skráarvafra" + +msgid "exit movielist" +msgstr "" + +# +msgid "exit network adapter configuration" +msgstr "fara úr netkorts stillingum" + +# +msgid "exit networkadapter setup menu" +msgstr "hætta í netkorts stillingum" + +msgid "experimental film/video" +msgstr "" + +msgid "false" +msgstr "" + +msgid "fashion" +msgstr "" + +# +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "skráarform (BMP, PNG, JPG, GIF)" + +# +msgid "filename" +msgstr "skráarnafn" + +msgid "film/cinema" +msgstr "" + +msgid "fine arts" +msgstr "" + +# +msgid "fine-tune your display" +msgstr "fínstilla sjónvarpið" + +msgid "fitness & health" +msgstr "" + +# +#, fuzzy +msgid "flat alphabetic" +msgstr "raða í stafrófsröð" + +# +#, fuzzy +msgid "flat alphabetic reverse" +msgstr "raða í stafrófsröð" + +msgid "folk/traditional music" +msgstr "" + +msgid "football/soccer" +msgstr "" + +msgid "foreign countries/expeditions" +msgstr "" + +# +msgid "forward to the next chapter" +msgstr "stökkva í næsta kafla" + +# +msgid "free" +msgstr "laust" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "" + +msgid "game show/quiz/contest" +msgstr "" + +msgid "gardening" +msgstr "" + +# +msgid "go to deep standby" +msgstr "fara í djúpsvefn" + +# +msgid "go to standby" +msgstr "fara í biðstöðu" + +# +msgid "grab this frame as bitmap" +msgstr "grípa þennan ramma sem bitmap" + +# +msgid "green" +msgstr "grænn" + +msgid "handicraft" +msgstr "" + +msgid "height" +msgstr "" + +# +msgid "help..." +msgstr "hjálp..." + +# +msgid "horizontal" +msgstr "lárétt" + +msgid "information/education/school program" +msgstr "" + +# +msgid "init module" +msgstr "stilli einingu" + +# +msgid "init modules" +msgstr "stilla einingar" + +# +msgid "insert mark here" +msgstr "setja merki hér" + +msgid "invalid type" +msgstr "" + +msgid "jazz" +msgstr "" + +# +msgid "jump back to the previous title" +msgstr "stökkva til baka í fyrri titil" + +# +msgid "jump forward to the next title" +msgstr "stökkva áfram í næsta titil" + +msgid "languages" +msgstr "" + +# +msgid "leave movie player..." +msgstr "hætta í spilara" + +# +msgid "left" +msgstr "vinstri" + +msgid "left, wrapped" +msgstr "" + +msgid "leisure hobbies (general)" +msgstr "" + +# +msgid "length" +msgstr "lengd" + +msgid "limit ..., aborting !" +msgstr "" + +# +msgid "list style compact" +msgstr "stíll lista lítill" + +# +msgid "list style compact with description" +msgstr "stíll lista lítill með lýsingu" + +# +msgid "list style default" +msgstr "stíll lista venjulegur" + +# +msgid "list style single line" +msgstr "stíll lista, ein lína" + +msgid "literature" +msgstr "" + +msgid "live broadcast" +msgstr "" + +# +msgid "locked" +msgstr "læst" + +# +msgid "loopthrough to" +msgstr "tengt saman við" + +msgid "magazines/reports/documentary" +msgstr "" + +# +msgid "manual" +msgstr "handvirkt" + +msgid "martial sports" +msgstr "" + +msgid "medicine/physiology/psychology" +msgstr "" + +# +msgid "menu" +msgstr "valmynd" + +# +msgid "mins" +msgstr "mín" + +# +msgid "minutes" +msgstr "mínútur" + +# +msgid "month" +msgstr "mánuður" + +msgid "motor sport" +msgstr "" + +msgid "motoring" +msgstr "" + +# +msgid "move down to last entry" +msgstr "fara niður í síðasta atriði" + +# +msgid "move down to next entry" +msgstr "fara niður í næsta atriði" + +# +msgid "move up to first entry" +msgstr "fara upp í fyrsta atriði" + +# +msgid "move up to previous entry" +msgstr "fara upp í næsta atriði" + +msgid "movie/drama (general)" +msgstr "" + +# +msgid "multinorm" +msgstr "fjölkerfa" + +msgid "music/ballet/dance (general)" +msgstr "" + +msgid "musical/opera" +msgstr "" + +msgid "nature/animals/environment" +msgstr "" + +# +msgid "never" +msgstr "aldrei" + +msgid "new media" +msgstr "" + +msgid "news magazine" +msgstr "" + +msgid "news/current affairs (general)" +msgstr "" + +msgid "news/weather report" +msgstr "" + +# +msgid "no" +msgstr "nei" + +# +msgid "no CAId selected" +msgstr "ekkert CAId valið" + +# +msgid "no CI slots found" +msgstr "fann engin CI tengi" + +# +msgid "no module found" +msgstr "fann ekki einingu" + +msgid "no storage devices found" +msgstr "" + +# +msgid "none" +msgstr "engin" + +msgid "normal" +msgstr "" + +msgid "not configured" +msgstr "ekki stillt" + +# +msgid "not locked" +msgstr "ekki læst" + +msgid "not supported" +msgstr "ekki stutt" + +# +msgid "not used" +msgstr "ekki notað" + +# +msgid "nothing connected" +msgstr "ekkert tengt" + +# +msgid "of a DUAL layer medium used." +msgstr "af tveggja laga DVD." + +# +msgid "of a SINGLE layer medium used." +msgstr "af eins lags DVD disk." + +# +msgid "off" +msgstr "af" + +msgid "offset is" +msgstr "" + +# +msgid "on" +msgstr "á" + +# +msgid "on READ ONLY medium." +msgstr "á READ ONLY disk." + +msgid "on end of movie" +msgstr "" + +# +msgid "once" +msgstr "einu sinni" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +# +msgid "open nameserver configuration" +msgstr "opna nafnaþjóns stillingar" + +msgid "original" +msgstr "" + +msgid "original language" +msgstr "" + +# +msgid "pass" +msgstr "í lagi" + +msgid "performing arts" +msgstr "" + +msgid "play as picture in picture" +msgstr "" + +msgid "play in mainwindow" +msgstr "" + +# +msgid "please press OK when ready" +msgstr "vinsamlega ýtið á OK þegar tilbúið" + +# +msgid "please wait, loading picture..." +msgstr "hleð inn mynd, vinsamlegast bíðið.." + +msgid "popular culture/traditional arts" +msgstr "" + +msgid "pre-school children's program" +msgstr "" + +msgid "receiver software because updates are available." +msgstr "" + +# +msgid "record" +msgstr "taka upp" + +# +msgid "recording..." +msgstr "tek upp...." + +# +msgid "red" +msgstr "rauður" + +msgid "religion" +msgstr "" + +msgid "remarkable people" +msgstr "" + +# +msgid "remove after this position" +msgstr "eyða fyrir aftan þetta" + +# +msgid "remove all alternatives" +msgstr "taka út alla valkosti" + +# +msgid "remove all new found flags" +msgstr "eyða öllum merkingum um nýfundna rás" + +# +msgid "remove before this position" +msgstr "eyða fyrir framan þetta" + +# +msgid "remove bookmark" +msgstr "eyða bókamerki" + +# +msgid "remove directory" +msgstr "eyða möppu" + +# +msgid "remove entry" +msgstr "taka út" + +# +msgid "remove from parental protection" +msgstr "taka foreldralæsingu af" + +# +msgid "remove new found flag" +msgstr "eyða merkingu um nýfundna rás" + +# +msgid "remove selected satellite" +msgstr "eyða völdum gervihnetti" + +# +msgid "remove this mark" +msgstr "taka út þetta merki" + +msgid "rename entry" +msgstr "" + +# +msgid "repeat playlist" +msgstr "endurtaka spilunarlista" + +# +msgid "repeated" +msgstr "endurtekinn" + +msgid "reverse by date" +msgstr "" + +# +msgid "rewind to the previous chapter" +msgstr "fara til baka á fyrri kafla" + +# +msgid "right" +msgstr "hægri" + +msgid "right, wrapped" +msgstr "" + +msgid "rock/pop" +msgstr "" + +msgid "romance" +msgstr "" + +# +msgid "save last directory on exit" +msgstr "vista síðustu möppu þegar hætt er" + +# +msgid "save playlist on exit" +msgstr "vista spilunarlista þegar hætt er" + +# +msgid "scan state" +msgstr "leitar staða" + +msgid "science fiction/fantasy/horror" +msgstr "" + +# +msgid "second cable of motorized LNB" +msgstr "annar kapall frá mótorstýrðu LNB" + +# +msgid "seconds" +msgstr "sekúndur" + +# +msgid "select" +msgstr "veldu" + +# +msgid "select CAId's" +msgstr "veldu CAId" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +# +msgid "select menu entry" +msgstr "veldu valmynda atriði" + +# +msgid "select movie" +msgstr "veldu mynd" + +msgid "select the movie path" +msgstr "" + +msgid "serious music/classic music" +msgstr "" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "" + +msgid "service PIN" +msgstr "rása PIN" + +msgid "set as startup service" +msgstr "" + +msgid "setup PIN" +msgstr "valmynda PIN" + +# +msgid "show DVD main menu" +msgstr "sýna aðalvalmynd DVD " + +msgid "show all tags" +msgstr "" + +# +msgid "show alternatives" +msgstr "súna valkosti" + +# +msgid "show event details" +msgstr "sýna atriði nánar" + +msgid "show extended description" +msgstr "" + +msgid "show mediaplayer on mainmenu" +msgstr "" + +msgid "show softwaremanager in setup menu" +msgstr "" + +msgid "show softwaremanager on blue button" +msgstr "" + +msgid "show tag menu" +msgstr "" + +# +msgid "show transponder info" +msgstr "sýna upplýsingar um sendi" + +msgid "show/game show (general)" +msgstr "" + +msgid "shuffle" +msgstr "" + +msgid "shut down" +msgstr "slökkva" + +# +msgid "simple" +msgstr "einfalt" + +# +msgid "skip backward" +msgstr "fara til baka" + +# +msgid "skip forward" +msgstr "fara áfram" + +msgid "soap/melodram/folkloric" +msgstr "" + +msgid "social/political issues/economics (general)" +msgstr "" + +msgid "social/spiritual science" +msgstr "" + +msgid "sorting of playlists" +msgstr "" + +msgid "special characters" +msgstr "sérstafir" + +msgid "special events" +msgstr "" + +msgid "special format data DVD (HDTV compatible)" +msgstr "" + +msgid "sports (general)" +msgstr "" + +msgid "sports magazine" +msgstr "" + +# +msgid "standard" +msgstr "venjulegt" + +msgid "start cut here" +msgstr "byrja klippingu hér" + +# +msgid "start directory" +msgstr "byrjunar mappa" + +msgid "stepsize" +msgstr "" + +# +msgid "stereo" +msgstr "víðóma" + +msgid "stop using as startup service" +msgstr "" + +# +msgid "switch to bookmarks" +msgstr "fara á bókamerki" + +# +msgid "switch to filelist" +msgstr "skipta í skráarlista" + +# +msgid "switch to the next angle" +msgstr "skipta í næstu sýn" + +# +msgid "switch to the next audio track" +msgstr "skipta á næstu hljóð rás" + +# +msgid "switch to the next subtitle language" +msgstr "skipta á næsta undirtexta" + +msgid "talk show" +msgstr "" + +msgid "team sports" +msgstr "" + +msgid "technology/natural science" +msgstr "" + +# +msgid "template file" +msgstr "sniðmáts skrá" + +msgid "tennis/squash" +msgstr "" + +# +msgid "this recording" +msgstr "þessi upptaka" + +# +msgid "this service is protected by a parental control pin" +msgstr "þessi rás er læst með kóða" + +# +msgid "toggle time, chapter, audio, subtitle info" +msgstr "skipta á milli tíma, kafla, undirtexta upplýsingar" + +msgid "top" +msgstr "" + +msgid "tourism/travel" +msgstr "" + +msgid "true" +msgstr "" + +# +msgid "unavailable" +msgstr "ekki tiltækt" + +# +msgid "unconfirmed" +msgstr "óstaðfest" + +msgid "undefined" +msgstr "" + +# +msgid "unknown" +msgstr "óþekktur" + +# +msgid "unknown service" +msgstr "óþekkt rás" + +msgid "unpublished" +msgstr "" + +msgid "until standby/restart" +msgstr "bíða til biðstöðu/endurræsingu" + +# +msgid "user defined" +msgstr "stillt af notanda" + +msgid "variety show" +msgstr "" + +# +msgid "vertical" +msgstr "lóðrétt" + +# +msgid "wait for ci..." +msgstr "bíð eftir afruglara.." + +# +msgid "wait for mmi..." +msgstr "bíð eftir mmi..." + +# +msgid "waiting" +msgstr "bíð" + +msgid "water sport" +msgstr "" + +# +msgid "weekly" +msgstr "vikulega" + +msgid "west" +msgstr "" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "" + +# +msgid "whitelist" +msgstr "hvíti listi" + +msgid "width" +msgstr "" + +msgid "winter sport" +msgstr "" + +msgid "wireless network interface" +msgstr "þráðlaust netkort" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "" +msgstr[1] "" + +# +msgid "working" +msgstr "er að vinna" + +# +msgid "yellow" +msgstr "gulur" + +# +msgid "yes" +msgstr "já" + +# +msgid "yes (keep feeds)" +msgstr "já (halda fæðirásum)" + +# +msgid "zap" +msgstr "stökk" + +msgid "zap and record" +msgstr "" + +# +msgid "zapped" +msgstr "stokkið" + +# +#~ msgid "AA" +#~ msgstr "AA" + +# +#~ msgid "AB" +#~ msgstr "AB" + +# +#, fuzzy +#~ msgid "Activate PiP" +#~ msgstr "Virkja Mynd í Mynd" + +# +#, fuzzy +#~ msgid "Add/remove timer for current event" +#~ msgstr "bæta við upptöku (stoppa eftir núverandi atriði)" + +#, fuzzy +#~ msgid "All satellites" +#~ msgstr "Allir gervihnettir" + +#~ msgid "BA" +#~ msgstr "BA" + +#~ msgid "BB" +#~ msgstr "BB" + +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "Aðgerð þegar ýtt er á pásu" + +#~ msgid "Committed DiSEqC command" +#~ msgstr "Fyrsta DiSEqC rofa stýring" + +# +#~ msgid "DiSEqC repeats" +#~ msgstr "DiSEqC endurtekning" + +# +#~ msgid "No satellite frontend found!!" +#~ msgstr "Það fannst ekki gervihnattamóttakari!!" + +# +#~ msgid "Remove timer" +#~ msgstr "Eyða tímastillingu" + +# +#~ msgid "Send DiSEqC" +#~ msgstr "Senda DiSEqC" + +# +#, fuzzy +#~ msgid "Switch next channel" +#~ msgstr "næsta rás" + +# +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Uncommitted DiSEqC stýring" + +# +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "Fara aftur á rás fyrir rásaleitun?" + +#~ msgid "tuner is not supported" +#~ msgstr "móttakari er ekki studdur" diff --git a/po/it.po b/po/it.po new file mode 100644 index 0000000..39c0c9b --- /dev/null +++ b/po/it.po @@ -0,0 +1,9417 @@ +# Italian translations for OpenPLiEnigma2. +# Signed-off-by: Dario Croci <spaeleus@croci.org> +# +msgid "" +msgstr "" +"Project-Id-Version: OpenPLi-enigma2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2012-12-18 21:51+0100\n" +"Last-Translator: Spaeleus <spaeleus@croci.org>\n" +"Language-Team: www.linsat.net <spaeleus@croci.org>\n" +"Language: it\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-Generator: Pootle 2.0.3\n" +"X-Poedit-Language: Italian\n" +"X-Poedit-SourceCharset: iso-8859-1\n" +"X-Poedit-Country: ITALY\n" + +# +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"Opzioni e Impostazioni avanzate." + +# +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"Dopo aver premuto OK, attendere!" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" +"\n" +"Backup impostazioni ricevitore." + +# +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"Modificare indirizzo sorgenti aggiornamento." + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" +"\n" +"Gestire plugin ed estensioni del ricevitore." + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" +"\n" +"Aggiornare online il software del ricevitore." + +# +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"Premere OK per continuare." + +# +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"Ripristinare i backup per data." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" +"\n" +"Ripristinare le impostazioni del ricevitore." + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" +"\n" +"Ripristinare il ricevitore con un nuovo firmware." + +# +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"Ricercare estensioni locali e installarle." + +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Selezionare il supporto per il backup.\n" +"Supporto corrente: " + +# +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"Elencare, installare e rimuovere i pacchetti disponibili o installati." + +msgid " (PiP)" +msgstr " (PiP)" + +msgid " (Radio)" +msgstr " (Radio)" + +msgid " (TV)" +msgstr " (TV)" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +msgid " extensions." +msgstr " estensioni" + +msgid " ms" +msgstr " ms" + +# +msgid " packages selected." +msgstr " pacchetti selezionati." + +# +msgid " updates available." +msgstr " aggiornamenti disponibili." + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "%2d:%02d" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "%2d:%02d:%02d" + +msgid "%A %d %B" +msgstr "%A %d %B" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "%A %e %B" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "%A %e %B %Y" + +# +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "%a %e/%m" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "%a %e/%m %-H:%M" + +# +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "Trovato %d canale." +msgstr[1] "Trovati %d canali." + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "%d Datei" +msgstr[1] "%d Dateien" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d ora" +msgstr[1] "%d ore" + +# +#, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d processo attivo in background." +msgstr[1] "%d processi attivi in background." + +# +#, python-format +msgid "%d min" +msgstr "%d min" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minuto" +msgstr[1] "%d minuti" + +#, python-format +msgid "%d minutes" +msgstr "%d minuti" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d secondo" +msgstr[1] "%d secondi" + +#, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "%d sottodirectory" +msgstr[1] "%d sottodirectory" + +# +#, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "Rilevata %d rete wireless." +msgstr[1] "Rilevate %d reti wireless." + +msgid "%d-%b-%Y %-H:%M" +msgstr "%d-%b-%Y %-H:%M" + +msgid "%d-%m" +msgstr "%d-%m" + +# +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "%k:%M %e/%m" + +# +#, python-format +msgid "%s %s free disk space" +msgstr "%s %s di spazio libero su disco" + +# +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "%s non è più in uso. Cancellarlo?" + +# +#, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "Disponibile %s pacchetto aggiornato" +msgstr[1] "Disponibili %s pacchetti aggiornati" + +#, python-format +msgid "%s%d min" +msgstr "" + +#, python-format +msgid "%s/%s: %s" +msgstr "%s/%s: %s" + +# +msgid "(ZAP)" +msgstr "(ZAP)" + +# +msgid "(empty)" +msgstr "(vuoto)" + +# +msgid "(show optional DVD audio menu)" +msgstr "(Mostrare il menu opzionale DVD audio)" + +# +msgid "* Only available if more than one interface is active." +msgstr "* Disponibile solo se più di un'interfaccia è attiva." + +msgid "/s" +msgstr "" + +# +msgid "0" +msgstr "0" + +# +msgid "1" +msgstr "1" + +# +msgid "1.0" +msgstr "1.0" + +# +msgid "1.1" +msgstr "1.1" + +# +msgid "1.2" +msgstr "1.2" + +# +msgid "12V output" +msgstr "12V output" + +# +msgid "13 V" +msgstr "13 V" + +# +msgid "16:10" +msgstr "16:10" + +# +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +# +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +# +msgid "16:9" +msgstr "16:9" + +# +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +# +msgid "16:9 always" +msgstr "16:9 sempre" + +# +msgid "18 V" +msgstr "18 V" + +# +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "" + +msgid "24" +msgstr "" + +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +# +msgid "3" +msgstr "3" + +msgid "30" +msgstr "" + +msgid "3d mode" +msgstr "Modalità 3d" + +# +msgid "4" +msgstr "4" + +# +msgid "4:3" +msgstr "4:3" + +# +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +# +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +# +msgid "5" +msgstr "5" + +# +msgid "6" +msgstr "6" + +# +msgid "7" +msgstr "7" + +# +msgid "8" +msgstr "8" + +# +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +# +msgid "<Current movielist location>" +msgstr "<Percorso corrente>" + +# +msgid "<Default movie location>" +msgstr "<Percorso predefinito>" + +# +msgid "<Last timer location>" +msgstr "<Ultimo percorso timer>" + +# +msgid "<unknown>" +msgstr "<sconosciuto>" + +# +msgid "??" +msgstr "??" + +# +msgid "A" +msgstr "A" + +# +#, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"Un file di configurazione originale (%s) è stato modificato.\n" +"Mantenere la propria versione?" + +# +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"Un file di configurazione originale (%s) è stato modificato.\n" +"Mantenere la propria versione?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"Il termine di una registrazione programmata prevede\n" +"di porre il ricevitore in standby. Eseguire?" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"Il termine di una registrazione programmata prevede\n" +"di porre il ricevitore in standby. Eseguire?" + +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "EPG grafico per i canali di uno specifico bouquet" + +# +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"Registrazione avviata:\n" +"%s" + +# +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"Registrazione in corso!\n" +"Cosa si desidera fare?" + +# +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "Registrazioni in corso! Prima di poter configurare il motore, è necessario arrestarle!" + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "Registrazioni in corso. Prima di avviare una ricerca canali, è necessario arrestarle." + +# +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "Registrazioni in corso! Prima di avviare una ricerca satelliti, è necessario arrestarle!" + +# +#, python-format +msgid "A required tool (%s) was not found." +msgstr "Uno strumento richiesto (%s) non è stato rilevato." + +# +msgid "A search for available updates is currently in progress." +msgstr "Ricerca aggiornamenti disponibili in corso." + +# +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"Rilevata una seconda interfaccia di rete configurata.\n" +"\n" +"Disabilitare la seconda interfaccia di rete?" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"Un timer di spegnimento prevede di\n" +"porre in standby il ricevitore. Eseguire?" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"Un timer di spegnimento prevede\n" +"l'arresto del ricevitore. Eseguire?" + +msgid "A small overview of the available icon states and actions." +msgstr "Ecco una rapida panoramica delle icone di stato e delle azioni disponibili." + +# +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"Avvio registrazione programmata fallito!\n" +"Disabilitare la TV e riprovare?\n" + +# +msgid "A/V settings" +msgstr "Impostazioni A/V" + +msgid "AC3/DTS downmix" +msgstr "Downmix AC3/DTS" + +# +msgid "Abort" +msgstr "Annullare" + +# +msgid "About" +msgstr "Info" + +# +msgid "About..." +msgstr "Informazioni..." + +# +msgid "Accesspoint:" +msgstr "Accesspoint:" + +msgid "Action on long powerbutton press" +msgstr "Su press. prolungata tasto power" + +msgid "Action on short powerbutton press" +msgstr "Su press. breve tasto power" + +# +msgid "Activate Picture in Picture" +msgstr "Attivare PiP" + +# +msgid "Activate current configuration" +msgstr "Attivare Le impostazioni correnti" + +# +msgid "Activate network settings" +msgstr "Attivare le impostazioni di rete" + +# +msgid "Activate the configured network settings." +msgstr "Attivare la configurazione di rete impostata." + +# +msgid "Adapter settings" +msgstr "Impostazioni interfaccia" + +# +msgid "Add" +msgstr "Aggiungere" + +msgid "Add Bookmark" +msgstr "" + +# +msgid "Add a mark" +msgstr "Agg. contr." + +# +msgid "Add a nameserver entry" +msgstr "Aggiungere nameserver" + +# +msgid "Add a new title" +msgstr "Aggiungere nuovo titolo" + +# +msgid "Add bookmark" +msgstr "Agg. contrass." + +# +msgid "Add directory to playlist" +msgstr "Aggiungere directory alla playlist" + +# +msgid "Add file to playlist" +msgstr "Aggiungere file alla playlist" + +# +msgid "Add files to playlist" +msgstr "Aggiungere file alla playlist" + +msgid "Add more details to the crash log" +msgstr "Opzione per aggiungere dettagli estesi al crashlog" + +# +msgid "Add provider" +msgstr "Agg. provider" + +# +msgid "Add recording (enter recording duration)" +msgstr "Aggiungere registrazione (inserire durata)" + +# +msgid "Add recording (enter recording endtime)" +msgstr "Aggiungere registrazione (inserire ora termine)" + +# +msgid "Add recording (indefinitely)" +msgstr "Aggiungere registrazione (illimitata)" + +# +msgid "Add recording (stop after current event)" +msgstr "Aggiungere registrazione (evento corrente)" + +# +msgid "Add service" +msgstr "Agg. canale" + +# +msgid "Add timer" +msgstr "Agg. timer" + +# +msgid "Add title" +msgstr "Agg. titolo" + +# +msgid "Add to bouquet" +msgstr "Aggiungere al bouquet" + +# +msgid "Add to favourites" +msgstr "Aggiungere a preferiti" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "Configurare opzioni 3D" + +# +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "Regolare il colore in modo che tutte le sfumature risultino visibili, ma appaiano le più sature possibile. Se il risultato appare soddisfacente, premere Ok per uscire dalla impostazione avanzata video, o utilizzare i tasti numerici per accedere alle altre schermate." + +msgid "Advanced" +msgstr "" + +# +msgid "Advanced options" +msgstr "Opzioni avanzate" + +# +msgid "Advanced restore" +msgstr "Ripristino avanzato" + +# +msgid "Advanced software" +msgstr "Software avanzato" + +# +msgid "Advanced software plugin" +msgstr "Plugin Software avanzato" + +# +msgid "Advanced video enhancement setup" +msgstr "Impostazioni avanzate miglioramento immagine" + +# +msgid "Advanced video setup" +msgstr "Impostazioni avanzate video" + +# +msgid "After event" +msgstr "Dopo l'evento" + +# +msgid "Album" +msgstr "Album" + +msgid "Alignment of events" +msgstr "" + +msgid "Alignment of service names" +msgstr "" + +# +msgid "All" +msgstr "Tutti" + +msgid "All ages" +msgstr "Tutte le età" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "Allocare" + +msgid "Allocate unused memory index" +msgstr "Allocare l'ndice della memoria inutilizzata" + +msgid "Allow quit movieplayer with exit" +msgstr "" + +msgid "Allow subtitle language to equal audio language" +msgstr "Associare la lingua sottotitoli alla lingua audio" + +msgid "Allow subtitles for hearing impaired" +msgstr "Abilitare sottotitoli per non udenti" + +# +msgid "Alpha" +msgstr "Trasparenza" + +# +msgid "Alternative" +msgstr "Alternative" + +# +msgid "Alternative numbering mode" +msgstr "Numerazione alternativa" + +# +msgid "Alternative services tuner priority" +msgstr "Priorità tuner" + +msgid "Always ask" +msgstr "Chiedere sempre" + +msgid "Always hide infobar" +msgstr "" + +# +msgid "An empty filename is illegal." +msgstr "Nome di file vuoto: non consentito!" + +# +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "Errore nel download elenco pacchetti! Riprovare." + +# +msgid "An unknown error occurred!" +msgstr "Si è verificato un errore sconosciuto!" + +msgid "And will put your receiver in standby over " +msgstr "" + +msgid "Any activity" +msgstr "Tutte le attività" + +# +msgid "Arabic" +msgstr "Arabo" + +msgid "Are you sure to remove this entry?" +msgstr "" + +# +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"Attivare queste impostazioni di rete?\n" +"\n" + +# +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"Rimuovere\n" +"questo backup:\n" + +# +msgid "Are you sure you want to exit this wizard?" +msgstr "Uscire da questa configurazione guidata?" + +# +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"Riavviare le interfacce di rete?\n" +"\n" + +# +#, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Ripristinare il seguente backup2?\n" +"\n" +"%s\n" +"Al termine del ripristino, il ricevitore verrà riavviato." + +# +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Ripristinare il backup?\n" +"Al termine del ripristino, il ricevitore verrà riavviato." + +# +msgid "Artist" +msgstr "Artista" + +msgid "Arts/Culture" +msgstr "Arte/Cultura" + +# +msgid "Ask user" +msgstr "Chiedere" + +# +msgid "Aspect ratio" +msgstr "Rapporto d'aspetto" + +# +msgid "Assigned CAIds:" +msgstr "CAIds assegnati:" + +# +msgid "Assigned services/provider:" +msgstr "Canali/Provider assegnati:" + +msgid "At beginning" +msgstr "All'inizio" + +msgid "At end" +msgstr "Alla fine" + +# +msgid "Audio" +msgstr "Audio" + +msgid "Audio PID" +msgstr "PID audio" + +msgid "Audio language selection 1" +msgstr "Lingua audio 1" + +msgid "Audio language selection 2" +msgstr "Lingua audio 2" + +msgid "Audio language selection 3" +msgstr "Lingua audio 3" + +msgid "Audio language selection 4" +msgstr "Lingua audio 4" + +# +msgid "Audio options..." +msgstr "Opzioni audio..." + +# +#, python-format +msgid "Audio track (%s) format" +msgstr "Formato traccia audio (%s)" + +# +#, python-format +msgid "Audio track (%s) language" +msgstr "Lingua traccia audio (%s)" + +msgid "Author: " +msgstr "Autore: " + +msgid "Authoring mode" +msgstr "Modalità authoring" + +# +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Auto" + +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Divisione automatica capitoli ogni x minuti (0=mai)" + +msgid "Auto flesh" +msgstr "Correzione colore automatica (auto flesh)" + +msgid "Auto focus" +msgstr "Auto focus" + +msgid "Auto focus commencing ..." +msgstr "Avvio puntamento automatico..." + +msgid "Auto language selection" +msgstr "Selezione automatica lingua" + +# +msgid "Auto scart switching" +msgstr "Scambio automatico scart" + +# +msgid "Automatic" +msgstr "Automatico" + +# +msgid "Automatic scan" +msgstr "Ricerca automatica" + +msgid "Automatically start timeshift after" +msgstr "" + +msgid "Automatically turn on external subtitles" +msgstr "" + +# +msgid "Available format variables" +msgstr "Formati disponibili" + +# +msgid "B" +msgstr "B" + +# +msgid "BER" +msgstr "BER" + +# +msgid "BER:" +msgstr "BER:" + +# +msgid "Back" +msgstr "Indietro" + +# +msgid "Background" +msgstr "Sfondo" + +# +msgid "Background color" +msgstr "Colore sfondo" + +msgid "Background delete option" +msgstr "Rimozione in background" + +msgid "Background delete speed" +msgstr "Velocità rimozione in background" + +# +msgid "Backup completed." +msgstr "Backup completato." + +# +msgid "Backup failed." +msgstr "Backup fallito!" + +# +msgid "Backup is running..." +msgstr "Backup in corso..." + +# +msgid "Backup system settings" +msgstr "Backup conf. sistema" + +# +msgid "Band" +msgstr "Banda" + +# +msgid "Bandwidth" +msgstr "Banda passante" + +msgid "Basque" +msgstr "Basco" + +# +msgid "Begin time" +msgstr "Ora inizio" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +msgid "Behavior of 0 key in PiP-mode" +msgstr "Effetto tasto 0 in modalità PiP" + +# +msgid "Behavior when a movie is started" +msgstr "Su avvio riproduzione" + +# +msgid "Behavior when a movie is stopped" +msgstr "Su arresto riproduzione" + +# +msgid "Behavior when a movie reaches the end" +msgstr "Su riproduzione terminata" + +msgid "Big PiP" +msgstr "" + +# +msgid "Bitrate:" +msgstr "Bitrate:" + +msgid "Black screen" +msgstr "Schermo nero" + +msgid "Black screen till locked" +msgstr "Schermo nero fino al lock" + +# +msgid "Block noise reduction" +msgstr "Riduzione disturbo blocchi" + +# +msgid "Blue boost" +msgstr "Intensificare il blu" + +# +msgid "Bookmarks" +msgstr "Contrassegni" + +# +msgid "Brightness" +msgstr "Luminosità" + +msgid "Bulgarian" +msgstr "Bulgaro" + +# +msgid "Burn DVD" +msgstr "Masterizzare DVD" + +# +#, python-format +msgid "Burn audio track (%s)" +msgstr "Masterizzare traccia audio (%s)" + +# +msgid "Burn existing image to DVD" +msgstr "Scrivere immagine esistente su DVD" + +msgid "Burn to DVD" +msgstr "Masterizzare su DVD" + +# +msgid "Bus: " +msgstr "Bus: " + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "Opzione per forzare la visualizzazione SNR come percentuale.Come opzione predefinita, il livello di SNR è espresso in dB (se supportato dal tuner). " + +# +msgid "C" +msgstr "C" + +# +msgid "C-Band" +msgstr "Banda C" + +msgid "CH" +msgstr "" + +# +msgid "CI assignment" +msgstr "Assegnazione CI" + +# +msgid "CVBS" +msgstr "CVBS" + +# +msgid "Cable" +msgstr "Cavo" + +msgid "Cable Scan" +msgstr "Scansione su cavo" + +# +msgid "Cache thumbnails" +msgstr "Cache miniature" + +msgid "Calculate" +msgstr "Calcolare" + +msgid "Calculate all positions" +msgstr "Calcolare tutte le posizioni" + +msgid "Calculation complete" +msgstr "Calcolo completato" + +msgid "Calibrate" +msgstr "Calibrare" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "" + +# +msgid "Cancel" +msgstr "Annullare" + +msgid "Cannot determine" +msgstr "Impossibile determinare" + +msgid "Cannot find any signal ..., aborting !" +msgstr "Segnale non rilevato, si annulla." + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "Impossibile spostare nel cestino file che risiedono su disco o sistema differenti" + +msgid "Cannot move to trash can" +msgstr "Impossibile spostare nel cestino" + +# +msgid "Capacity: " +msgstr "Capacità: " + +# +msgid "Card" +msgstr "Card" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "Centrare sottotitoli DVB" + +msgid "Center time-labels and remove date" +msgstr "" + +# +msgid "Change bouquets in quickzap" +msgstr "Cambio di bouquet nello zapping veloce" + +# +msgid "Change pin code" +msgstr "Cambiare codice PIN" + +# +msgid "Change recording (duration)" +msgstr "Cambiare durata registrazione" + +# +msgid "Change recording (endtime)" +msgstr "Cambiare ora fine registrazione" + +msgid "Change repeat and delay settings?" +msgstr "Modificare i valori di ritardo e ripetizione?" + +msgid "Change service PIN" +msgstr "Cambiare il PIN canale" + +msgid "Change service PINs" +msgstr "Cambiare i PIN canale" + +msgid "Change setup PIN" +msgstr "Cambiare il PIN protezione configurazione" + +# +msgid "Change step size" +msgstr "Cambiare dimensioni passo" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "Changelog" + +# +msgid "Channel" +msgstr "Canale" + +# +msgid "Channel list type" +msgstr "Tipo elenco canali" + +# +msgid "Channel not in services list" +msgstr "Canale non in elenco" + +# +msgid "Channel selection" +msgstr "Selezione canale" + +# +msgid "Channel:" +msgstr "Canale:" + +# +msgid "Channellist menu" +msgstr "Menu elenco canali" + +# +msgid "Chap." +msgstr "Cap." + +# +msgid "Chapter" +msgstr "Capitolo" + +# +msgid "Chapter:" +msgstr "Capitolo:" + +# +msgid "Check" +msgstr "Verificare" + +msgid "Check the internet connection" +msgstr "Verificare la connessione a internet" + +msgid "Check the internet connection again" +msgstr "Verificare di nuovo la connessione a internet" + +# +msgid "Checking filesystem..." +msgstr "Verifica filesystem in corso..." + +msgid "Checking the internet connection" +msgstr "Verifica della connessione a internet in corso" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" +"Verifica in corso: tuner %d\n" +"Porta DiSEqC %s per %s" + +msgid "Children/Youth" +msgstr "Bambini/Giovani" + +msgid "Choose which tuner to configure." +msgstr "Selezionare il tuner da configurare." + +# +msgid "Circular left" +msgstr "Circolare a sinistra" + +# +msgid "Circular right" +msgstr "Circolare a destra" + +# +msgid "Cleanup" +msgstr "Ripulire" + +msgid "Clear" +msgstr "Rimuovere" + +# +msgid "Clear before scan" +msgstr "Rimuovere prima di cercare" + +msgid "Clear fixed" +msgstr "Nuovo indirizzo" + +# +msgid "Clear log" +msgstr "Canc. log" + +# +msgid "Clear playlist" +msgstr "Rimuovere playlist" + +# +msgid "Close" +msgstr "Chiudere" + +msgid "Close PiP on exit" +msgstr "" + +# +msgid "Close title selection" +msgstr "Chiudere selezione sottotitoli" + +msgid "Code rate HP" +msgstr "Code rate HP" + +msgid "Code rate LP" +msgstr "Code rate LP" + +# +msgid "Coderate HP" +msgstr "Coderate HP" + +# +msgid "Coderate LP" +msgstr "Coderate LP" + +# +msgid "Collection name" +msgstr "Nome raccolta" + +# +msgid "Collection settings" +msgstr "Impostazione raccolta" + +# +msgid "Color format" +msgstr "Formato colore" + +# +msgid "Command execution..." +msgstr "Esecuzione comando..." + +# +msgid "Command order" +msgstr "Ordine comandi" + +# +msgid "Common Interface" +msgstr "Common Interface" + +# +msgid "Common Interface assignment" +msgstr "Assegnazione Common Interface" + +# +msgid "Communication" +msgstr "Comunicazione" + +# +msgid "Compact flash" +msgstr "Compact Flash" + +# +msgid "Complete" +msgstr "Completo" + +# +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "Complessa (permette mix tracce audio e aspetti)" + +msgid "Composition of the recording filenames" +msgstr "Struttura dei nomi dei file registrazioni" + +# +msgid "Configuration mode" +msgstr "Modalità configurazione" + +# +#, python-format +msgid "Configuration mode: %s" +msgstr "Modalità configurazione: %s" + +# +msgid "Configuration..." +msgstr "Impostazioni..." + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "" + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "" + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "Opzione per impostare la persistenza della barra informazioni." + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "Opzione per impostare la persistenza (in minuti) degli eventi terminati nell'EPG. Utile quando si necessitano informazioni su di un evento appena terminato o ritardato." + +msgid "Configure how recording filenames are constructed." +msgstr "Opzione per impostare la struttura dei nomi di file da assegnare alle registrazioni." + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +# +msgid "Configure interface" +msgstr "Opzione per impostare l'interfaccia" + +# +msgid "Configure nameservers" +msgstr "Opzione per impostare i nameserver" + +msgid "Configure on which devices the background delete option should be used." +msgstr "Opzione per impostare i supporti sui quali attivare l'opzione rimozione in background." + +msgid "Configure remote control type" +msgstr "Opzione per impostare il tipo di telecomando" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "Opzione per impostare la modalità DiSEqC per questo LNB." + +# +msgid "Configure the IP address." +msgstr "Opzione per impostare l'indirizzo IP" + +msgid "Configure the aspect ratio of the screen." +msgstr "Opzione per impostare il rapporto d'aspetto dello schermo." + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +# +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "Opzione per impostare il comportamento del ricevitore quando la riproduzione di una registrazione viene arrestata manualmente." + +# +msgid "Configure the behavior when movie playback is started." +msgstr "Opzione per impostare il comportamento del ricevitore quando viene avviata la riproduzione di una registrazione." + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "Opzione per impostare il comportamento del ricevitore qualora venisse raggiunto il termine di una registrazione durante la sua riproduzione." + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "Opzione per impostare lo spessore bordi dei sottotitoli. Bordi scuri su uno sfondo chiaro renderanno più agevole la loro lettura." + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "Opzione per impostare la luminosità del display del ricevitore quando si trovi in standby." + +msgid "Configure the brightness level of the front panel display." +msgstr "Opzione per impostare la luminosità del display del ricevitore." + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "" + +msgid "Configure the color of the teletext subtitles." +msgstr "Opzione per impostare il colore dei sottotitoli televideo." + +msgid "Configure the contrast level of the front panel display." +msgstr "Opzione per impostare il contrasto del display del ricevitore." + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "" + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "" + +msgid "Configure the first audio language (highest priority)." +msgstr "Opzione per impostare la lingua audio primaria (priorità più alta)." + +msgid "Configure the first subtitle language (highest priority)." +msgstr "Opzione per impostare la lingua sottotitoli primaria (priorità più alta)." + +msgid "Configure the font size of the subtitles." +msgstr "Opzione per impostare la dimensione carattere dei sottotitoli." + +msgid "Configure the fourth audio language." +msgstr "Opzione per impostare la quarta lingua audio." + +# +msgid "Configure the fourth subtitle language." +msgstr "Opzione per impostare la quarta lingua sottotitoli." + +msgid "Configure the function of a long press on the power button." +msgstr "Opzione per impostare la funzione associata alla pressione prolungata del tasto power." + +msgid "Configure the function of a short press on the power button." +msgstr "Opzione per impostare la funzione associata alla pressione breve del tasto power." + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "Opzione per impostare la funzione associata al tasto \"0\" quando la PiP è attiva." + +# +msgid "Configure the gateway." +msgstr "Opzione per impostare il gateway" + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "Opzione per impostare il ritardo generale delle tracce audio Dolby Digital." + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "Opzione per impostare il ritardo generale delle tracce audio Stereo." + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "Opzione per impostare il tempo di inattività trascorso il quale l'harddisk verrà posto in standby." + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "Opzione per impostare l'allineamento orizzontale dei sottotitoli." + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "Opzione per impostare la velocità iniziale per la funzione FFW. Premendo il tasto FFW, l'avanzamento veloce si avvierà a questa velocità." + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "Opzione per impostare la velocità iniziale per la funzione REW. Premendo il tasto REW, il riavvolgimento veloce si avvierà a questa velocità." + +msgid "Configure the latitude of your location." +msgstr "Opzione per impostare la latitudine della propria posizione." + +msgid "Configure the longitude of your location." +msgstr "Opzione per impostare la longitudine della propria posizione." + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "Opzione per impostare lo spazio minimo da lasciare a disposizione delle registrazioni. Qualora lo spazio disponibile scendesse al di sotto di questo valore, verranno rimossi gli elementi eliminati e contenuti nel cestino." + +# +msgid "Configure the nameserver (DNS)." +msgstr "Opzione per impostare i nameserver (DNS)" + +# +msgid "Configure the netmask." +msgstr "Opzione per impostare la netmask" + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "Opzione per impostare il numero di giorni trascorsi i quali gli elementi contenuti nel cestino verranno automaticamente rimossi." + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "Opzione per impostare il numero di giorni trascorsi i quali i timer conclusi verranno automaticamente rimossi dall'elenco." + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "Opzione per impostare il ritardo per la decodifica offline (millisecondi). Il ritardo impostato sarà applicato ad ogni controllo del cambio di parità word." + +msgid "Configure the possible fast forward speeds." +msgstr "Opzione per impostare le velocità FFW disponibili." + +msgid "Configure the possible rewind speeds." +msgstr "Opzione per impostare le velocità REW disponibili." + +msgid "Configure the primary EPG language." +msgstr "Opzione per impostare la lingua primaria per l'EPG." + +msgid "Configure the refresh rate of the screen." +msgstr "Opzione per impostare la frequenza di refresh dello schermo." + +msgid "Configure the screen resolution in PC output mode." +msgstr "Opzione per impostare la risoluzione schermo in modalità PC." + +msgid "Configure the second audio language." +msgstr "Opzione per impostare la lingua audio secondaria." + +# +msgid "Configure the second subtitle language." +msgstr "Opzione per impostare la lingua sottotitoli secondaria." + +msgid "Configure the secondary EPG language." +msgstr "Opzione per impostare la lingua secondaria per l'EPG." + +msgid "Configure the sharpness of the video scaling." +msgstr "Opzione per impostare la nitidezza dello scaling video." + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "Opzione per impostare il salto di tempo personalizzato assegnato ai tasti 1 e 3." + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "Opzione per impostare il salto di tempo personalizzato assegnato ai tasti 4 e 6." + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "Opzione per impostare il salto di tempo personalizzato assegnato ai tasti 7 e 9." + +# +msgid "Configure the slow motion speeds." +msgstr "Opzione per impostare le velocità assegnate alla funzione rallenty." + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "Opzione per impostare la velocità assegnata al processo di rimozione in background. Velocità inferiori incideranno meno sulle prestazione dell'harddisk." + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "Opzione per impostare la temporizzazione dei sottotitoli da utilizzare quando le informazioni di tempo non sono disponibili." + +msgid "Configure the third audio language." +msgstr "Opzione per impostare la terza ligua audio." + +# +msgid "Configure the third subtitle language." +msgstr "Opzione per impostare la terza lingua per i sottotitoli." + +msgid "Configure the transparency of the OSD." +msgstr "Opzione per impostare la trasparenza dell'OSD." + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "Opzione per impostare la trasparenza dello sfondo nero per i sottotitoli grafici DVB." + +# +msgid "Configure the tuner mode." +msgstr "Opzione per impostare la modalità per il tuner." + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "Opzione per impostare il tipo di icone indicanti lo stato da mostrare in elenco registrazioni." + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "Opzione per impostare la posizione dei sottotitoli, misurata rispetto la parte inferiore dello schermo." + +msgid "Configure the video output mode (or resolution)." +msgstr "Opzione per impostare la modalità dell'uscita video (risoluzione)." + +msgid "Configure the way in which the receiver changes channels." +msgstr "Opzione per impostare la modalità di cambio canale del ricevitore." + +msgid "Configure where completed timers show up in the timer list." +msgstr "Opzione per impostare l'ordine di visualizzazione delle voci concluse nell'elenco timer." + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "Opzione per determinare se debba essere visualizzata una seconda barra informazioni su doppia pressione del tasto Ok, e la sua persistenza. Tale barra conterrà informazioni aggiuntive sul canale sintonizzato." + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "Opzione per determinare se debba essere eseguito il downmix stereo dei canali audio multipli." + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "Opzione per abilitare la visualizzazione di un'icona durante il movimento di una parabola motorizzata." + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "Opzione per impostare il livello di accesso al menu impostazioni. Il livello \"Esperto\" consentirà l'accesso completo." + +msgid "Configure which color format should be used on the SCART output." +msgstr "Opzione per impostare il formato colore da utilizzare sull'uscita SCART." + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "Opzione per impostare il tuner preferenziale da utilizzarsi quando lo stesso canale è disponibile su differenti tipologie di tuner." + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "Opzione per impostare il tuner preferenziale, da utilizzarsi quando più di un tuner risultasse disponibile. L'opzione \"Auto\" assegnerà la priorità al tuner sul quale risulta configurato il minor numero di canali/satelliti." + +# +msgid "Configure your internal LAN" +msgstr "Impostare la rete locale (cablata)." + +# +msgid "Configure your network again" +msgstr "Impostare di nuovo la rete locale." + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "Configurare le proprie impostazioni di rete, poi premere Ok per iniziare la ricerca" + +# +msgid "Configure your wireless LAN again" +msgstr "Impostare di nuovo la rete locale wireless." + +msgid "Configures which video output connector will be used." +msgstr "Impostare l'uscita video da utilizzare." + +# +msgid "Configuring" +msgstr "Impostazione in corso" + +# +msgid "Conflicting timer" +msgstr "Timer in conflitto" + +# +msgid "Connect" +msgstr "Connettere" + +# +msgid "Connect to a wireless network" +msgstr "Connettere a rete wireless" + +msgid "Connected satellites" +msgstr "" + +# +msgid "Connected to" +msgstr "Connesso a:" + +# +msgid "Connected!" +msgstr "Connesso." + +# +msgid "Constellation" +msgstr "Costellazione" + +# +msgid "Content does not fit on DVD!" +msgstr "I contenuti superano la capacità del DVD." + +# +msgid "Continue" +msgstr "Proseguire" + +# +msgid "Continue in background" +msgstr "Proseguire in background" + +# +msgid "Continue playback" +msgstr "Proseguire la riproduzione" + +# +msgid "Continue playing" +msgstr "Proseguire la riproduzione" + +msgid "Continues play (loop)" +msgstr "Riproduzione continua (loop)" + +# +msgid "Contrast" +msgstr "Contrasto" + +msgid "Convert ext3 filesystem to ext4" +msgstr "Convertire filesystem ext3 in ext4" + +msgid "Convert ext3 to ext4" +msgstr "ext3 >> ext4" + +msgid "Converting ext3 to ext4..." +msgstr "Conversione da ext3 a ext4 in corso..." + +msgid "Copy" +msgstr "Copiare" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "Impossibile connettersi al server feed immagini .NFI:" + +msgid "Could not find installed channel list." +msgstr "Impossibile trovare l'elenco dei canali installati." + +# +msgid "Could not load medium! No disc inserted?" +msgstr "Impossibile caricare supporto. Disco non inserito?" + +# +msgid "Could not open Picture in Picture" +msgstr "Impossibile attivare PiP" + +# +#, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "Impossibile registrare, timer %s in conflitto." + +#, python-format +msgid "Could not record due to invalid service %s" +msgstr "Impossibile registrare: canale %s non valido" + +# +msgid "Create DVD-ISO" +msgstr "Creare DVD-ISO" + +msgid "Create more detailed crash log" +msgstr "Creare crash log dettagliati" + +# +#, python-format +msgid "Creating directory %s failed." +msgstr "Creazione cartella %s fallita." + +# +msgid "Creating filesystem" +msgstr "Creazione filesystem in corso" + +msgid "Creating partition" +msgstr "Creazione partizione in corso" + +# +msgid "Croatian" +msgstr "Croato" + +msgid "Current CEC address" +msgstr "Indirizzo CEC corrente" + +msgid "Current device: " +msgstr "Dispositivo corrente: " + +msgid "Current event EPG" +msgstr "Evento EPG corrente" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +# +msgid "Current settings:" +msgstr "Impostazioni attuali:" + +# +msgid "Current transponder" +msgstr "Transponder attuale" + +# +msgid "Current value: " +msgstr "Valore attuale: " + +# +msgid "Current version:" +msgstr "Versione attuale:" + +msgid "Currently installed image" +msgstr "Immagine installata attualmente" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +msgid "Custom skip time for '1'/'3' buttons" +msgstr "Salto di tempo per i tasti 1-3" + +msgid "Custom skip time for '4'/'6' buttons" +msgstr "Salto di tempo per i tasti 4-6" + +msgid "Custom skip time for '7'/'9' buttons" +msgstr "Salto di tempo per i tasti 7-9" + +# +msgid "Customize" +msgstr "Personalizzazioni" + +msgid "Customize channel list cursor behavior" +msgstr "" + +# +msgid "Cut" +msgstr "Tagliare" + +# +msgid "Cutlist editor..." +msgstr "Editor elenco tagli..." + +# +msgid "Czech" +msgstr "Ceco" + +# +msgid "D" +msgstr "D" + +# +msgid "DHCP" +msgstr "DHCP" + +# +msgid "DMM advanced" +msgstr "DMM avanzato" + +msgid "DMM normal" +msgstr "DMM normale" + +msgid "DUAL LAYER DVD" +msgstr "DVD doppio strato" + +msgid "DVB subtitle black transparency" +msgstr "Trasparenza nero sottotitoli DVB" + +msgid "DVB-C" +msgstr "DVB-C" + +msgid "DVB-C ANNEX C" +msgstr "DVB-C ANNEX C" + +# +msgid "DVB-S" +msgstr "DVB-S" + +# +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "DVB-T" + +msgid "DVB-T2" +msgstr "DVB-T2" + +msgid "DVD data format" +msgstr "Formato dati DVD" + +# +msgid "DVD file browser" +msgstr "File browser DVD" + +# +msgid "DVD media toolbox" +msgstr "Strumenti DVD" + +# +msgid "DVD player" +msgstr "Player DVD" + +# +msgid "DVD titlelist" +msgstr "Elenco titoli DVD" + +# +msgid "Danish" +msgstr "Danese" + +# +msgid "Date" +msgstr "Data" + +# +msgid "Date/time input" +msgstr "Inserimento Data/Ora" + +# +msgid "Deep standby" +msgstr "Deep standby" + +# +msgid "Default" +msgstr "Predefinito" + +# +msgid "Default movie location" +msgstr "Percorso predefinito registrazioni" + +# +msgid "Default settings" +msgstr "Configurazioni predefinite" + +msgid "Delay before key repeat starts:" +msgstr "Ritardo inizio ripetizione tasto:" + +msgid "Delay for external subtitles" +msgstr "" + +msgid "Delete" +msgstr "Rimuovere" + +# +msgid "Delete entry" +msgstr "Rimuovere la voce" + +# +msgid "Delete failed!" +msgstr "Rimozione fallita!" + +# +msgid "Delete file" +msgstr "Rimuovere file" + +# +msgid "Delete playlist entry" +msgstr "Rimuovere voce dalla playlist" + +# +msgid "Delete saved playlist" +msgstr "Rimuovere la playlist salvata" + +msgid "Delete timer" +msgstr "" + +msgid "Delete..." +msgstr "Rimuovere..." + +msgid "Deleted" +msgstr "Rimosso" + +msgid "Deleted items" +msgstr "Registrazioni rimosse" + +msgid "Depth" +msgstr "Profondità" + +msgid "Descramble http streams" +msgstr "Decodificare stream http" + +# +msgid "Description" +msgstr "Descrizione" + +# +msgid "Deselect" +msgstr "Deselezionare" + +msgid "Details for plugin: " +msgstr "Dettagli per il plugin: " + +# +msgid "Detected HDD:" +msgstr "HDD rilevato:" + +# +msgid "Detected NIMs:" +msgstr "Tuner rilevati:" + +msgid "Devicename:" +msgstr "Nome dispositivo:" + +msgid "Devide" +msgstr "" + +# +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +# +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +# +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +# +msgid "DiSEqC mode" +msgstr "Modalità DiSEqC" + +# +#, python-format +msgid "DiSEqC port %s: %s" +msgstr "Porta DiSEqC %s: %s" + +# +msgid "DiSEqC-tester settings" +msgstr "Impostazioni DiSEqC-Tester" + +# +msgid "Dialing:" +msgstr "Composizione:" + +# +msgid "Digital contour removal" +msgstr "Rimozione contorni" + +# +msgid "Direct playback of linked titles without menu" +msgstr "Riproduzione diretta dei titoli collegati, senza menu" + +msgid "Directory" +msgstr "Directory" + +# +#, python-format +msgid "Directory %s does not exist." +msgstr "La directory %s non esiste." + +#, python-format +msgid "Directory %s nonexistent." +msgstr "" + +# +msgid "Directory browser" +msgstr "Browser cartelle" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "" + +#, python-format +msgid "Directory contains %s and %s." +msgstr "Contenuto directory: %s e %s." + +# +msgid "Disable" +msgstr "Disabilitare" + +# +msgid "Disable Picture in Picture" +msgstr "Disabiltare PiP" + +msgid "Disable background scanning" +msgstr "Disabilitare la ricerca in background" + +msgid "Disable timer" +msgstr "" + +# +msgid "Disabled" +msgstr "Disabilitato" + +# +msgid "Disconnect" +msgstr "Disconnettere" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "Spazio su disco da riservare alle registrazioni (in GB)" + +# +msgid "Display 16:9 content as" +msgstr "Mostrare contenuti in 16:9 come" + +# +msgid "Display 4:3 content as" +msgstr "Mostrare contenuti in 4:3 come" + +# +msgid "Display >16:9 content as" +msgstr "Mostrare contenuti > di 16:9 come" + +# +msgid "Display and userinterface" +msgstr "Display e Interfaccia utente" + +msgid "Display message before playing next movie" +msgstr "Visualizzare un messaggio prima di riprodurre la registrazione successiva" + +# +msgid "Display setup" +msgstr "Impostazioni display" + +# +msgid "Do not change" +msgstr "Non cambiare" + +# +msgid "Do not record" +msgstr "Non registrare" + +# +msgid "Do nothing" +msgstr "Non fare nulla" + +# +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Eseguire una verifica del filesystem?\n" +"Attenzione, potrebbe richiedere molto tempo!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" +"Si conferma la conversione del filesystem?\n" +"Non sarà possibile annullare." + +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Rimuovere %s?" + +# +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"Si conferma il download\n" +"del plugin \"%s\"?" + +msgid "Do you really want to exit?" +msgstr "Si conferma l'uscita?" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" +"Si confema la formattazione del supporto?\n" +"Tutti i dati in esso contenuti verranno persi." + +# +#, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"Rimuovere il plugin\n" +"\"%s\"?" + +# +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Rimuovere la cartella %s dal disco?" + +# +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Rimuovere il contrassegno per %s?" + +msgid "Do you want this?" +msgstr "" + +# +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Masterizzare la raccolta su DVD?" + +# +msgid "Do you want to do a service scan?" +msgstr "Effettuare una ricerca canali?" + +# +msgid "Do you want to do another manual service scan?" +msgstr "Effettuare un'altra ricerca canali manuale?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "Scaricare l'immagine in %s?" + +# +msgid "Do you want to install a channel list?" +msgstr "Installare un elenco canali?" + +# +msgid "Do you want to install the package:\n" +msgstr "Installare il pacchetto:\n" + +# +msgid "Do you want to play DVD in drive?" +msgstr "Riprodurre il DVD inserito?" + +# +msgid "Do you want to preview this DVD before burning?" +msgstr "Mostrare l'anteprima del DVD prima di masterizzare?" + +msgid "Do you want to reboot your receiver?" +msgstr "Riavviare il ricevitore?" + +# +msgid "Do you want to remove the package:\n" +msgstr "Rimuovere il pacchetto?\n" + +# +msgid "Do you want to restore your settings?" +msgstr "Ripristinare le impostazioni?" + +# +msgid "Do you want to resume this playback?" +msgstr "Riprendere la riproduzione?" + +#, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Aggiornare il ricevitore a %s?" + +msgid "Do you want to update your receiver?" +msgstr "Aggiornare il ricevitore?" + +# +msgid "Do you want to upgrade the package:\n" +msgstr "Aggiornare il pacchetto:\n" + +# +msgid "Don't stop current event but disable coming events" +msgstr "Non interrompere l'evento corrente ma annullare i futuri" + +# +#, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "Terminato. Installati, aggiornato o rimosso %d pacchetto (%s)" +msgstr[1] "Terminato. Installati, aggiornati o rimossi %d pacchetti (%s)" + +# +msgid "Download" +msgstr "Download" + +#, python-format +msgid "Download %s from server" +msgstr "Scaricare %s dal server" + +msgid "Download .NFI-files for USB-flasher" +msgstr "Download file .nfi per flasher USB" + +# +msgid "Download plugins" +msgstr "Download plugin" + +# +msgid "Downloadable new plugins" +msgstr "Nuovi plugin scaricabili" + +# +msgid "Downloadable plugins" +msgstr "Plugin scaricabili" + +# +msgid "Downloading" +msgstr "Download in corso" + +# +msgid "Downloading plugin information. Please wait..." +msgstr "Ricerca informazioni sui plugin in corso. Attendere..." + +# +msgid "Dutch" +msgstr "Olandese" + +# +msgid "Dynamic contrast" +msgstr "Contrasto dinamico" + +# +msgid "E" +msgstr "E" + +msgid "EPG" +msgstr "EPG" + +msgid "EPG language selection 1" +msgstr "EPG: lingua 1" + +msgid "EPG language selection 2" +msgstr "EPG: lingua 2" + +# +msgid "EPG selection" +msgstr "Selezione EPG" + +msgid "EPG settings" +msgstr "Impostazioni EPG" + +# +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "ERRORE - Ricerca fallita (%s)!" + +# +msgid "East" +msgstr "Est" + +msgid "East limit set" +msgstr "Conf. limite Est" + +# +msgid "Edit" +msgstr "Modif." + +# +msgid "Edit DNS" +msgstr "Mod. DNS" + +msgid "Edit bouquets list" +msgstr "Modificare elenco bouquet" + +# +msgid "Edit chapters of current title" +msgstr "Modificare capitoli del titolo corrente" + +# +msgid "Edit services list" +msgstr "Modificare elenco canali" + +# +msgid "Edit settings" +msgstr "Mod. configurazione" + +# +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "Modificare le impostazioni nameserver del ricevitore.\n" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "Modificare le impostazioni di rete del ricevitore.\n" + +msgid "Edit timer" +msgstr "" + +# +msgid "Edit title" +msgstr "Mod. titolo" + +# +msgid "Edit upgrade source url." +msgstr "Modificare URL sorgenti aggiornamento." + +msgid "Education/Science/..." +msgstr "Didattica/Scienza/..." + +# +msgid "Electronic Program Guide" +msgstr "Guida Programmi Elettronica" + +# +msgid "Enable" +msgstr "Abilitare" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +# +msgid "Enable 5V for active antenna" +msgstr "Abilitare 5V per antenna attiva" + +msgid "Enable EIT EPG" +msgstr "Abilitare EPG EIT" + +msgid "Enable MHW EPG" +msgstr "Abilitare EPG MHW" + +msgid "Enable Netmed EPG" +msgstr "Abilitare EPG Netmed" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "Abilitare EPG ViaSat" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +# +msgid "Enable bouquet selection in multi-EPG" +msgstr "Abilitare selezione bouquet in multi-EPG" + +msgid "Enable freesat EPG" +msgstr "Abilitare EPG freesat" + +# +msgid "Enable multiple bouquets" +msgstr "Abilitare bouquet multipli" + +msgid "Enable parental control" +msgstr "Attivare il controllo parentale" + +msgid "Enable teletext caching" +msgstr "Abilitare cache televideo" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +# +msgid "Enabled" +msgstr "Abilitato" + +# +msgid "Encrypted: " +msgstr "Codificato: " + +# +msgid "Encryption" +msgstr "Codifica" + +# +msgid "Encryption key" +msgstr "Chiave codifica" + +# +msgid "Encryption key type" +msgstr "Tipo chiave codifica" + +# +msgid "Encryption:" +msgstr "Codifica:" + +# +msgid "End time" +msgstr "Ora fine" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +# +msgid "English" +msgstr "Inglese" + +# +msgid "Enigma2 skin selector" +msgstr "Selezione skin enigma2" + +# +msgid "Enter main menu..." +msgstr "Menu principale..." + +msgid "Enter pin code" +msgstr "Inserire il codice PIN" + +# +msgid "Enter the service pin" +msgstr "Inserire il codice PIN canale" + +msgid "Equal to" +msgstr "" + +# +msgid "Error" +msgstr "Errore" + +msgid "Error code" +msgstr "Codice errore" + +# +msgid "Error executing plugin" +msgstr "Errore in esecuzione plugin!" + +# +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Errore: %s\n" +"Riprovare?" + +# +msgid "Estonian" +msgstr "Estone" + +msgid "Ethernet network interface" +msgstr "Interfaccia di rete Ethernet" + +msgid "Event font size (relative to skin size)" +msgstr "Dimensioni carattere evento (relative alle dimensioni skin)" + +# +msgid "Event view" +msgstr "Vista eventi" + +# +msgid "Event view menu" +msgstr "Menu vista eventi" + +msgid "Everywhere" +msgstr "Ovunque" + +msgid "Exceeds dual layer medium!" +msgstr "Supera la capacità di supporto doppio strato!" + +# +msgid "Execution finished!!" +msgstr "Esecuzione terminata!!" + +# +msgid "Execution progress:" +msgstr "Progresso in esecuzione:" + +# +msgid "Exif" +msgstr "Exif" + +# +msgid "Exit" +msgstr "Uscire" + +msgid "Exit EPG" +msgstr "Uscire dall'EPG" + +# +msgid "Exit editor" +msgstr "Uscire dall'editor" + +msgid "Exit input device selection." +msgstr "Uscire dalla selezione dispositivo di input." + +msgid "Exit media player?" +msgstr "" + +# +msgid "Exit mediaplayer" +msgstr "Uscire da Mediaplayer" + +# +msgid "Exit movie list" +msgstr "Uscire da elenco registrazioni" + +# +msgid "Exit movie player?" +msgstr "Uscire dal movie player" + +# +msgid "Exit nameserver configuration" +msgstr "Uscire da impostazioni nameserver" + +# +msgid "Exit network interface list" +msgstr "Uscire da elenco interfacce di rete" + +# +msgid "Exit network wizard" +msgstr "Uscire da conf. guidata" + +# +msgid "Exit the wizard" +msgstr "Uscire dal wizard" + +# +msgid "Expert" +msgstr "Esperto" + +msgid "Extend sleeptimer 15 minutes" +msgstr "" + +# +msgid "Extended Software" +msgstr "Software esteso" + +# +msgid "Extended Software Plugin" +msgstr "Plugin Software esteso" + +# +msgid "Extended network setup plugin..." +msgstr "Plugin di configurazione avanzata rete..." + +# +msgid "Extended setup..." +msgstr "Impostazioni avanzate..." + +# +msgid "Extensions" +msgstr "Estensioni" + +# +msgid "Extensions management" +msgstr "Gestione delle estensioni" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "" + +msgid "Extra motor options" +msgstr "" + +# +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "FTA" + +# +msgid "Factory reset" +msgstr "Reset configurazioni di fabbrica" + +# +msgid "Failed" +msgstr "Fallito" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "Scrittura su /tmp/positionersetuplog fallita: " + +# +#, python-format +msgid "Fan %d" +msgstr "Ventola %d" + +#, python-format +msgid "Fan %d PWM" +msgstr "PWM ventola %d" + +# +#, python-format +msgid "Fan %d voltage" +msgstr "Tensione ventola %d" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +# +msgid "Fast" +msgstr "Veloce" + +# +msgid "Fast DiSEqC" +msgstr "DiSEqC veloce" + +msgid "Fast Scan" +msgstr "Ricerca veloce" + +# +msgid "Fast epoch" +msgstr "Epoch veloce" + +# +msgid "Fast forward speeds" +msgstr "Velocità FFW" + +# +msgid "Favourites" +msgstr "Preferiti" + +msgid "File appears to be busy.\n" +msgstr "Il file sembra essere occupato.\n" + +msgid "Filesystem check" +msgstr "Verifica filesystem" + +msgid "Final position at" +msgstr "Posizione finale a" + +msgid "Final position at index" +msgstr "Indice posizione finale" + +msgid "Fine movement" +msgstr "Controllo fine" + +# +msgid "Finetune" +msgstr "Sint. fine" + +# +msgid "Finished" +msgstr "Terminato" + +# +msgid "Finished configuring your network" +msgstr "La configurazione di rete è terminata" + +# +msgid "Finished restarting your network" +msgstr "Riavvio rete terminato" + +# +msgid "Finnish" +msgstr "Finlandese" + +msgid "Fixed" +msgstr "Fissa" + +# +msgid "Flash" +msgstr "Flash" + +# +msgid "Flashing failed" +msgstr "Flash fallito!" + +msgid "Following tasks will be done after you press OK!" +msgstr "I processi seguenti saranno eseguiti premendo Ok!" + +msgid "Format" +msgstr "Formattare" + +msgid "Forward volume keys" +msgstr "Riportare i comandi volume" + +# +msgid "Frame size in full view" +msgstr "Dimensione frame in visualizzazione piena" + +# +msgid "French" +msgstr "Francese" + +# +msgid "Frequency" +msgstr "Frequenza" + +# +msgid "Frequency bands" +msgstr "Bande di frequenza" + +# +msgid "Frequency scan step size(khz)" +msgstr "Passo di frequenza ricerca (kHz)" + +# +msgid "Frequency steps" +msgstr "Passi di frequenza" + +msgid "Frequency:" +msgstr "" + +# +msgid "Fri" +msgstr "Ven" + +# +msgid "Friday" +msgstr "Venerdì" + +msgid "From :" +msgstr "Da:" + +# +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Versione frontprocessor: %d" + +msgid "Full transparency" +msgstr "Trasparenza piena" + +msgid "Fulview resulution" +msgstr "" + +msgid "Function of OK button" +msgstr "Funzione assegnata al tasto Ok" + +msgid "Further Options" +msgstr "" + +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"L'attivazione della nuova skin richiede\n" +"il riavvio di enigma2. Riavviare ora?" + +# +msgid "Gateway" +msgstr "Gateway" + +# +msgid "General AC3 delay" +msgstr "Ritardo generale AC3" + +# +msgid "General PCM delay" +msgstr "Ritardo generale PCM" + +# +msgid "Genre" +msgstr "Genere" + +# +msgid "German" +msgstr "Tedesco" + +msgid "Get latest experimental image" +msgstr "Ottenere l'immagine \\\"esperimental\\\" più recente" + +msgid "Get latest release image" +msgstr "Ottenere l'ultima immagine rilasciata" + +# +msgid "Getting plugin information. Please wait..." +msgstr "Ricezione informazioni sul plugin. Attendere..." + +msgid "Go down the list" +msgstr "Elenco giù" + +msgid "Go to first movie or last item" +msgstr "Andare alla prima registrazione o all'ultima voce" + +msgid "Go to first movie or top of list" +msgstr "Andate alla prima registrazione o all'inizio dell'elenco" + +# +msgid "Go to first service" +msgstr "Al primo canale" + +# +msgid "Go to last service" +msgstr "All'ultomo canale" + +# +msgid "Go to next event" +msgstr "Andare all'evento successivo" + +# +msgid "Go to next page of service" +msgstr "Passare alla pagina canali successiva" + +# +msgid "Go to previous event" +msgstr "Tornare all'evento precedente" + +# +msgid "Go to previous page of service" +msgstr "Passare alla pagina canali precedente" + +msgid "Go up the list" +msgstr "Elenco sù" + +msgid "Goto" +msgstr "Goto" + +# +msgid "Goto 0" +msgstr "Goto 0" + +msgid "Goto :" +msgstr "Goto :" + +msgid "Goto X" +msgstr "Goto X" + +msgid "Goto index position" +msgstr "Goto posizione indice" + +msgid "Goto next day of events" +msgstr "" + +msgid "Goto next page of events" +msgstr "Passare alla pagina eventi successiva" + +msgid "Goto position" +msgstr "Posizione goto" + +msgid "Goto previous day of events" +msgstr "" + +msgid "Goto previous page of events" +msgstr "Passare alla pagina eventi precedente" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "Calibrazione GotoX" + +msgid "GraphMultiEpg Settings" +msgstr "Impostazioni GraphMultiEpg" + +# +msgid "Graphical Multi EPG" +msgstr "Multi EPG grafico" + +# +msgid "Greek" +msgstr "Greco" + +# +msgid "Green boost" +msgstr "Intensificare il verde" + +msgid "Guard interval" +msgstr "Intervallo di guardia" + +msgid "HD list" +msgstr "Elenco HD" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "Gestire lo standby dalla TV" + +msgid "Handle wakeup from TV" +msgstr "Gestire l'accensione dalla TV" + +# +msgid "Hard disk" +msgstr "Harddisk" + +# +msgid "Hard disk setup" +msgstr "Impostazioni harddisk" + +# +msgid "Hard disk standby after" +msgstr "Standby harddisk dopo" + +# +msgid "Harddisk" +msgstr "Harddisk" + +msgid "Hardware: " +msgstr "Hardware: " + +msgid "Hebrew" +msgstr "Ebraico" + +msgid "Helps setting up your dish" +msgstr "" + +msgid "Hidden network" +msgstr "Rete nascosta" + +msgid "Hide CI messages" +msgstr "Nascondere i messaggi CI" + +msgid "Hide channel list in radio mode" +msgstr "Nascondere elenco canali in modalità radio" + +msgid "Hide known extensions" +msgstr "" + +msgid "Hide number markers" +msgstr "" + +# +msgid "Hide player" +msgstr "Nascondere il player" + +msgid "Hide zap errors" +msgstr "Nascondere gli errori di zap" + +msgid "Hierarchy info" +msgstr "Informazioni gerarchia" + +# +msgid "Hierarchy information" +msgstr "Informazioni gerarchia" + +# +msgid "High bitrate support" +msgstr "Supporto hight bitrate" + +msgid "Hold screen" +msgstr "Bloccare lo schermo" + +msgid "Hold till locked" +msgstr "Bloccare fino al lock" + +msgid "Home" +msgstr "Home" + +# +msgid "Horizontal" +msgstr "Orizzontale" + +msgid "Horizontal turning speed" +msgstr "Velocità di rotazione orizzontale" + +# +msgid "How many minutes do you want to record?" +msgstr "Durata registrazione (minuti):" + +# +msgid "Hue" +msgstr "Colore" + +# +msgid "Hungarian" +msgstr "Ungherese" + +# +msgid "IP address" +msgstr "Indirizzo IP" + +# +msgid "ISO file is too large for this filesystem!" +msgstr "File ISO troppo grande per questo filesystem!" + +# +msgid "ISO path" +msgstr "Percorso ISO" + +msgid "Icons" +msgstr "Icone" + +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"La connessione SCART non funziona\n" +"correttamente! Premere Ok per uscire." + +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"Se la TV dispone di un controllo per il miglioramento del contrasto, disattivarlo. Se dispone di un controllo definito [Dinamico], impostarlo a standard. Regolare la retro-illuminazione ad un livello di gradimento. Abbassare il più possibile il contrasto.\n" +"Abbassare al minimo la luminosità, assicurandosi tuttavia che le due sfumature più scure di grigio rimangano distinguibili.\n" +"Per il momento non preoccuparsi delle sfumature chiare: saranno regolate successivamente.\n" +"Quando il risultato appare soddisfacente, premere OK." + +msgid "Image: " +msgstr "Immagine:" + +# +msgid "Immediate shutdown" +msgstr "Spegnimento immediato" + +# +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "In seguito a registr. programmata: la TV è stata sintonizzata sul canale da registrare!\n" + +# +msgid "In progress" +msgstr "In corso" + +msgid "Inactivity Sleeptimer" +msgstr "" + +msgid "Include AIT in http streams" +msgstr "Includere AIT negli stream http" + +msgid "Include ECM in http streams" +msgstr "Includere ECM negli stream http" + +msgid "Include EIT in http streams" +msgstr "Includere EIT negli stream http" + +msgid "Incorrect type service for PiP!" +msgstr "" + +# +msgid "Increased voltage" +msgstr "Voltaggio aumentato" + +# +msgid "Index" +msgstr "Indice" + +msgid "Index allocated:" +msgstr "Indice assegnato:" + +# +msgid "Info" +msgstr "Info" + +# +msgid "Info bar" +msgstr "Barra informazioni" + +# +msgid "Info bar timeout" +msgstr "Persistenza barra informazioni" + +msgid "Infobar frontend data source" +msgstr "" + +# +msgid "Information" +msgstr "Informazioni" + +# +msgid "Init" +msgstr "Init" + +msgid "Initial fast forward speed" +msgstr "Velocità iniziale FFW" + +# +msgid "Initial location in new timers" +msgstr "Percorso iniziale nuovi timer" + +msgid "Initial lock ratio" +msgstr "Rapporto iniziale di lock" + +msgid "Initial rewind speed" +msgstr "Velocità iniziale REW" + +msgid "Initial signal quality" +msgstr "Qualità segnale iniziale" + +msgid "Initial signal quality:" +msgstr "Qualità segnale iniziale:" + +msgid "Initialization" +msgstr "Formattazione" + +# +msgid "Initialize" +msgstr "Formattare" + +msgid "Initializing storage device..." +msgstr "Formattazione dispositivo in corso..." + +# +msgid "Input" +msgstr "Input" + +msgid "Input device setup" +msgstr "Impostazioni dispositivo di input" + +msgid "Input devices" +msgstr "Dispositivi di input" + +# +msgid "Install" +msgstr "Installare" + +# +msgid "Install a new image with a USB stick" +msgstr "Installare nuova immagine tramite penna USB" + +# +msgid "Install a new image with your web browser" +msgstr "Installare nuova immagine tramite web browser" + +# +msgid "Install channel list" +msgstr "Installare elenco canali" + +msgid "Install extensions" +msgstr "" + +# +msgid "Install extensions." +msgstr "Installare estensioni" + +# +msgid "Install local extension" +msgstr "Installare estensioni locali" + +msgid "Install picons on" +msgstr "Installare picon su" + +# +msgid "Install softcam" +msgstr "Installare sofcam" + +# +msgid "Installation has completed." +msgstr "Installazione terminata." + +# +msgid "Installation or removal has completed." +msgstr "Installazione/Rimozione terminata." + +# +msgid "Installing" +msgstr "Inst. in corso" + +# +msgid "Installing software..." +msgstr "Installazione software in corso..." + +# +msgid "Instant recording location" +msgstr "Destinazione registrazioni istantanee" + +# +msgid "Instant recording..." +msgstr "Registrazione istantanea..." + +# +msgid "Interface: " +msgstr "Interfaccia: " + +# +msgid "Intermediate" +msgstr "Intermedio" + +# +msgid "Internal flash" +msgstr "Flash interna" + +msgid "Internal hdd only" +msgstr "Solo HDD interno" + +msgid "Interval between keys when repeating:" +msgstr "Intervallo tra i tasti durante la ripetizione:" + +# +#, python-format +msgid "Invalid directory selected: %s" +msgstr "La cartella selezionata non è valida: %s" + +# +msgid "Invalid location" +msgstr "Destinazione non valida" + +msgid "Invalid transponder data" +msgstr "" + +# +msgid "Inversion" +msgstr "Inversione" + +msgid "Invert" +msgstr "Invertire" + +# +msgid "Ipkg" +msgstr "Ipkg" + +msgid "Is this setting ok?" +msgstr "Le impostazioni sono corrette?" + +# +msgid "Is this video mode ok?" +msgstr "La modalità video è corretta?" + +# +msgid "Italian" +msgstr "Italiano" + +msgid "Items per page " +msgstr "Voci per pagina" + +msgid "Items per page for list screen" +msgstr "Voci per pagina negli elenchi" + +# +msgid "Job overview" +msgstr "Panoramica processi" + +msgid "Jump to beginning of list" +msgstr "Saltare all'inizio dell'elenco" + +# +msgid "Jump to end of list" +msgstr "Andare a fine elenco" + +# +msgid "Jump to next marked position" +msgstr "Andare al contrassegno successivo" + +# +msgid "Jump to previous marked position" +msgstr "Andare al contrassegno precedente" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +msgid "Just scale" +msgstr "Scalare solamente" + +msgid "Keep service" +msgstr "" + +# +msgid "Kernel version: " +msgstr "Versione Kernel:" + +# +msgid "Keyboard" +msgstr "Tastiera" + +# +msgid "Keyboard map" +msgstr "Mappa tastiera" + +# +msgid "Keyboard setup" +msgstr "Impostazioni tastiera" + +# +msgid "LAN adapter" +msgstr "Scheda di rete" + +msgid "LAN connection" +msgstr "Connessione LAN" + +# +msgid "LNB" +msgstr "LNB" + +# +msgid "Language" +msgstr "Lingua" + +# +msgid "Language selection" +msgstr "Selezione lingua" + +# +msgid "Last config" +msgstr "Ult. config." + +# +msgid "Last speed" +msgstr "Ultima velocità" + +msgid "Last upgrade: " +msgstr "Ultimo aggiornamento:" + +msgid "Latest Commits" +msgstr "" + +# +msgid "Latitude" +msgstr "Latitudine" + +# +msgid "Latvian" +msgstr "Lettone" + +# +msgid "Leave DVD player?" +msgstr "Uscire dal Player DVD?" + +# +msgid "Left" +msgstr "Sinistra" + +msgid "Left from servicename" +msgstr "" + +msgid "Leisure hobbies" +msgstr "Tempo libero/Hobby" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Letterbox" + +msgid "Letterbox zoom" +msgstr "" + +# +msgid "Limit character set for recording filenames" +msgstr "Set di caratteri limitato per i nomi dei file registrazioni" + +# +msgid "Limit east" +msgstr "Limite est" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "Opzione per limitare i caratteri disponibili per i nomi dei file registrazioni ad ascii (7bit). L'opzione permette di garantire la compatibilità con sistemi operativi o filesystem che dispongano di set di caratteri limitati." + +# +msgid "Limit west" +msgstr "Limite ovest" + +msgid "Limits cancelled" +msgstr "Limiti rimossi" + +msgid "Limits enabled" +msgstr "Limiti abilitati" + +msgid "Limits off" +msgstr "Limiti off" + +msgid "Limits on" +msgstr "Limiti on" + +# +msgid "Link quality:" +msgstr "Qualità link:" + +# +msgid "Link:" +msgstr "Link:" + +# +msgid "Linked titles with a DVD menu" +msgstr "Titoli collegati ad un Menu DVD" + +msgid "List EPG functions..." +msgstr "Elenco funzioni EPG..." + +msgid "List available networks" +msgstr "Elencare le reti disponibili" + +msgid "List mode" +msgstr "Modalità elenco" + +# +msgid "List of storage devices" +msgstr "Elenco supporti memorizzazione" + +msgid "List type" +msgstr "Tipo elenco" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "Versione elenco: %d. %d canale rilevato." +msgstr[1] "Versione elenco: %d. %d canali rilevati." + +# +msgid "Listen to the radio..." +msgstr "Radio..." + +msgid "Lists reloaded!" +msgstr "" + +# +msgid "Lithuanian" +msgstr "Lituano" + +# +msgid "Load" +msgstr "Caricare" + +msgid "Load Length of Movies in Movielist" +msgstr "" + +# +msgid "Load length of movies in movie list" +msgstr "Caricare in elenco la durata registrazioni" + +# +msgid "Load playlist" +msgstr "Caricare la playlist" + +# +msgid "Local network" +msgstr "Rete locale" + +# +msgid "Location" +msgstr "Percorso" + +# +msgid "Location for instant recordings" +msgstr "Percorso per registrazioni istantanee" + +msgid "Lock ratio" +msgstr "Rapporto di lock" + +# +msgid "Lock:" +msgstr "Lock:" + +# +msgid "Log results to harddisk" +msgstr "Salvare log su harddisk" + +msgid "Long filenames" +msgstr "Nomi estesi" + +# +msgid "Long key press" +msgstr "Press. prolungata tasto" + +# +msgid "Longitude" +msgstr "Longitudine" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "Lussemburghese" + +# +msgid "MMC card" +msgstr "Card MMC" + +# +msgid "MORE" +msgstr "SUCCESSIVI" + +# +msgid "Main menu" +msgstr "Menu principale" + +msgid "Maintain old EPG data for" +msgstr "Persistenza dati EPG eventi terminati" + +msgid "Make this mark an 'in' point" +msgstr "Contrassegnare come punto IN" + +msgid "Make this mark an 'out' point" +msgstr "Contrassegnare come punto OUT" + +# +msgid "Make this mark just a mark" +msgstr "Contrassegnare solamente" + +# +msgid "Manage extensions" +msgstr "Gestire le estensioni" + +# +msgid "Manage your receiver's software" +msgstr "Gestire il software del ricevitore" + +msgid "Manual" +msgstr "" + +# +msgid "Manual Scan" +msgstr "Ricerca manuale" + +msgid "Manual configuration" +msgstr "Configurazione manuale" + +# +msgid "Manual scan" +msgstr "Ricerca manuale" + +# +msgid "Manual transponder" +msgstr "Transponder manuale" + +# +msgid "Manufacturer" +msgstr "Costruttore" + +# +msgid "Margin after recording (minutes)" +msgstr "Margine fine registrazione (minuti)" + +# +msgid "Margin before recording (minutes)" +msgstr "Margine inizio registrazione (minuti)" + +msgid "Max memory positions" +msgstr "" + +# +msgid "Max. bitrate: " +msgstr "Bitrate Max: " + +# +msgid "Media player" +msgstr "Media player" + +# +msgid "Media scanner" +msgstr "Media scanner" + +# +msgid "Medium is not a writeable DVD!" +msgstr "Il supporto non è un DVD masterizzabile!" + +# +msgid "Medium is not empty!" +msgstr "Il supporto non è vuoto!" + +msgid "Memory" +msgstr "Memoria" + +msgid "Memory index" +msgstr "Indice memoria" + +# +msgid "Menu" +msgstr "Menu" + +# +msgid "Message" +msgstr "Messaggio" + +# +msgid "Message..." +msgstr "Messaggio..." + +#, python-format +msgid "Minimum age %d years" +msgstr "Età massima anni: %d" + +msgid "Minimum send interval" +msgstr "Intervallo minimo d'invio" + +msgid "Missing " +msgstr "Mancante" + +# +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Modalità" + +# +msgctxt "Video output mode" +msgid "Mode" +msgstr "Modalità" + +# +msgid "Model: " +msgstr "Modello: " + +# +msgid "Modulation" +msgstr "Modulazione" + +# +msgid "Modulator" +msgstr "Modulatore" + +# +msgid "Mon" +msgstr "Lun" + +# +msgid "Mon-Fri" +msgstr "Lun-Ven" + +# +msgid "Monday" +msgstr "Lunedì" + +# +msgid "Mosquito noise reduction" +msgstr "Riduzione sfarfallio" + +msgid "Mount" +msgstr "Mount" + +msgid "Move" +msgstr "Spostare" + +# +msgid "Move PiP to main picture" +msgstr "Inviare PiP a schermo principale" + +# +msgid "Move Picture in Picture" +msgstr "Muovere PiP" + +# +msgid "Move east" +msgstr "Muovere a est" + +msgid "Move to other directory" +msgstr "Spostare in altra directory" + +msgid "Move to position X" +msgstr "Spostare alla posizione X" + +# +msgid "Move west" +msgstr "Muovere a ovest" + +msgid "Moved to position 0" +msgstr "Spostato alla posizione 0" + +msgid "Moved to position at index" +msgstr "Spostato alla posizione all'indice" + +msgid "Movement" +msgstr "Movimento" + +msgid "Movie List Configuration" +msgstr "" + +msgid "Movie Selection" +msgstr "" + +msgid "Movie list configuration" +msgstr "Impostazioni elenco registrazioni" + +# +msgid "Movie location" +msgstr "Percorso registrazione" + +# +msgid "Movie selection" +msgstr "Selezione registrazione" + +msgid "Movie/Drama" +msgstr "Cinema/Teatro" + +# +msgid "Movielist menu" +msgstr "Menu elenco registrazioni" + +msgid "Moving" +msgstr "In movimento" + +msgid "Moving east ..." +msgstr "In movimento verso est..." + +msgid "Moving to position" +msgstr "In movimento verso la posizione" + +msgid "Moving west ..." +msgstr "In movimento verso ovest..." + +# +msgid "Multi EPG" +msgstr "Multi EPG" + +msgid "Multi-EPG bouquet selection" +msgstr "Selezione bouquet Multi-EPG" + +# +msgid "Multimedia" +msgstr "Multimedia" + +# +msgid "Multiple service support" +msgstr "Supporto canali multipli" + +msgid "Multiplex" +msgstr "Multiplex" + +# +msgid "Multisat" +msgstr "Multisat" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "Musica/Balletto/Danza" + +# +msgid "Mute" +msgstr "Muto" + +# +msgid "N/A" +msgstr "N/A" + +# +msgid "NEXT" +msgstr "PROSSIMI" + +# +msgid "NFI image flashing" +msgstr "Flash immagine NFI in corso" + +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "Installazione immagine NFI completata. Giallo >> Riavviare" + +msgid "NIM" +msgstr "NIM" + +# +msgid "NOW" +msgstr "IN ONDA" + +# +msgid "NTSC" +msgstr "NTSC" + +# +msgid "Name" +msgstr "Nome" + +# +msgid "Nameserver" +msgstr "Nameserver" + +# +#, python-format +msgid "Nameserver %d" +msgstr "Nameserver %d" + +# +msgid "Nameserver settings" +msgstr "Impostazioni nameserver" + +# +msgid "Nameserver setup" +msgstr "Configurazione nameserver" + +msgid "Namespace" +msgstr "Spazio dei nomi" + +# +msgid "Netmask" +msgstr "Netmask" + +# +msgid "Network" +msgstr "Rete" + +msgid "Network ID" +msgstr "ID rete" + +# +msgid "Network configuration..." +msgstr "Configurazione rete..." + +# +msgid "Network mount" +msgstr "Mount di rete" + +# +#, python-format +msgid "Network mount %s" +msgstr "Mount di rete %s" + +msgid "Network name (SSID)" +msgstr "Nome rete (SSID)" + +# +msgid "Network scan" +msgstr "Ricerca rete" + +# +msgid "Network setup" +msgstr "Configurazione rete" + +# +msgid "Network test" +msgstr "Test della rete" + +# +msgid "Network test..." +msgstr "Test rete..." + +msgid "Network test: " +msgstr "Test della rete: " + +# +msgid "Network wizard" +msgstr "Conf. guidata rete" + +# +msgid "Network:" +msgstr "Rete:" + +# +msgid "New" +msgstr "Nuovo" + +msgid "New PIN" +msgstr "Nuovo PIN" + +# +msgid "New version:" +msgstr "Nuova versione:" + +msgid "News Current Affairs" +msgstr "Notizie/Attualità" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "Successivo" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "Successivo" + +# +msgid "No" +msgstr "No" + +# +msgid "No (supported) DVDROM found!" +msgstr "Nessun DVD-ROM (supportato) disponibile." + +# +msgid "No Connection" +msgstr "Nessuna connessione" + +# +msgid "No HDD found or HDD not initialized!" +msgstr "HDD non disponbile o non formattato." + +# +msgid "No backup needed" +msgstr "Backup non necessario" + +msgid "No cable tuner found!" +msgstr "Nessun tuner via cavo disponibile." + +# +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Nessuna dato sul transponder!\n" +"(Timeout in lettura PAT)" + +msgid "No delay" +msgstr "Nessun ritardo" + +# +msgid "No description available." +msgstr "Descrizione non disponibile." + +# +msgid "No details for this image file" +msgstr "Dettagli file immagine non disponibili!" + +# +msgid "No displayable files on this medium found!" +msgstr "Il supporto non contiene file riproducibili." + +# +msgid "No event info found, recording indefinitely." +msgstr "Informazioni evento non disponibili, registrazione illimitata." + +# +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "FFW/REW non ancora disponibile... Utilizzare i tasti numerici per avanzare/arretrare nella riproduzione!" + +msgid "No free index available" +msgstr "Nessun indice libero disponibile" + +# +msgid "No free tuner!" +msgstr "Nessun tuner disponibile!" + +# +msgid "No network connection available." +msgstr "Connessione di rete non disponibile." + +# +msgid "No networks found" +msgstr "Nessuna rete rilevata!" + +msgid "No new plugins found" +msgstr "" + +# +msgid "No positioner capable frontend found." +msgstr "Nessun apparato in grado di pilotare un motore è disponibile!" + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "" + +# +msgid "No services/providers selected" +msgstr "Nessun canale/provider selezionato" + +# +msgid "No standby" +msgstr "Nessuno standby" + +msgid "No suitable sat tuner found!" +msgstr "" + +# +msgid "No tags are set on these movies." +msgstr "Nessuna etichetta configurata su queste registrazioni." + +# +msgid "No timeout" +msgstr "Nessun timeout" + +# +msgid "No to all" +msgstr "No a tutto" + +msgid "No transparency" +msgstr "Nessuna trasparenza" + +# +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "Nessun tuner è configurato per l'utilizzo di un motore!" + +# +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Nessun tuner abilitato!\n" +"Configurare i tuner prima di effettuare una ricerca canali." + +# +msgid "No updates available" +msgstr "Nessun aggiornamento disponibile" + +msgid "No updates available. Please try again later." +msgstr "Nessun aggiornamento disponibile. Riprovare più tardi." + +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Nessun codice PIN canale valido trovato!\n" +"Cambiare il codice PIN canale ora?\n" +"Scegliendo NO la protezione del canale sarà disabilitata!" + +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Nessun codice PIN configurazione valido trovato!\n" +"Cambiare il codice PIN configurazione ora?\n" +"Scegliendo NO la protezione configurazione sarà disabilitata!" + +msgid "No wireless networks found! Searching..." +msgstr "Nessuna rete wireless trovata! Ricerca in corso..." + +# +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"Nessuna scheda di rete locate trovata!\n" +"Verificare che il cavo sia collegato e che la rete sia configurata correttamente." + +# +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"Nessun adattatore di rete wireless trovato!\n" +"Verificare di aver collegato un adattatore WLAN compatibile e che la rete sia configurata correttamente." + +# +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"Nessuna interfaccia wireless attiva trovata!\n" +"Verificare di aver collegato un dispositivo WLAN compatibile e di aver abilitato l'interfaccia di rete locale." + +# +msgid "No, but restart from begin" +msgstr "No, ma riprendere dall'inizio" + +# +msgid "No, do nothing." +msgstr "No, non fare nulla." + +msgid "No, just start my receiver" +msgstr "No, avviare il ricevitore" + +msgid "No, never" +msgstr "No, mai" + +# +msgid "None" +msgstr "Nessuno" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Non lineare" + +msgid "Normal mode" +msgstr "Modalità normale" + +# +msgid "North" +msgstr "Nord" + +# +msgid "Norwegian" +msgstr "Norvegese" + +msgid "Not associated" +msgstr "Non associato" + +msgid "Not configured" +msgstr "" + +# +#, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Spazio su disco insufficiente. Liberare spazio sul disco e riprovare. (%d MB richiesti, %d MB disponibili)" + +msgid "Nothing connected" +msgstr "" + +# +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Impossibile effettuare la ricerca!\n" +"Configurare i tuner prima di effettuare una ricerca canali." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "Ora" + +# +msgid "Now playing" +msgstr "In riproduzione" + +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Ora utilizzare il controllo contrasto per aumentare la luminosità dello sfondo il più possibile, ma assicurarsi di poter distinguere la differenza tra le due sfumature più chiare. Alla fine premere OK." + +# +msgid "OK" +msgstr "Ok" + +# +msgid "OK, guide me through the upgrade process" +msgstr "Visualizzare una guida sul processo di aggiornamento" + +msgid "ONID" +msgstr "ONID" + +msgid "OSD name request" +msgstr "Richiesta nome OSD" + +# +msgid "OSD settings" +msgstr "Impostazioni OSD" + +msgid "OSD transparency" +msgstr "Trasparenza OSD" + +# +msgid "Off" +msgstr "Off" + +msgid "Offline decode delay (ms)" +msgstr "Ritardo decodifica offline (ms)" + +msgid "Ok" +msgstr "Ok" + +# +msgid "On" +msgstr "On" + +msgid "On end of movie" +msgstr "Termine registrazione" + +msgid "On end of movie (as menu)" +msgstr "" + +# +msgid "One" +msgstr "Uno" + +# +msgid "Only extensions." +msgstr "Solo estensioni" + +# +msgid "Only free scan" +msgstr "Solo canali in chiaro" + +# +msgid "Open service list" +msgstr "Aprire elenco canali" + +# +msgid "Open the movie list" +msgstr "Aprire a elenco registrazioni" + +msgid "Orbital position" +msgstr "Posizione orbitale" + +msgid "Original" +msgstr "Originale" + +msgid "Other" +msgstr "Altro" + +msgid "Output" +msgstr "Uscita" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "Sovrascrivere i file di configurazione a seguito di un aggiornamento software?" + +msgid "Overwrite configuration files?" +msgstr "Sovrascrivere i file di configurazione?" + +# +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "PID PCR" + +# +msgid "PIDs" +msgstr "PIDs" + +# +msgid "PIN code needed" +msgstr "Richiesto codice PIN" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "PID PMT" + +# +msgid "Package list update" +msgstr "Aggiornamento elenco pacchetti" + +# +msgid "Packet management" +msgstr "Gestione pacchetti" + +# +msgid "Packet manager" +msgstr "Gestore pacchetti" + +# +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +msgid "Pan&scan" +msgstr "Pan&Scan" + +# +msgid "Parent directory" +msgstr "Directory padre" + +# +msgid "Parental control" +msgstr "Controllo parentale" + +# +msgid "Parental control services editor" +msgstr "Editor Controllo parentale canali" + +msgid "Parental control setup" +msgstr "Configurazione controllo parentale" + +msgid "Parental control type" +msgstr "Tipo controllo parentale" + +# +msgid "Password" +msgstr "Password" + +# +msgid "Pause" +msgstr "Pausa" + +# +msgid "Pause movie at end" +msgstr "A termine riproduzione, mettere in pausa" + +# +msgid "Pause playback" +msgstr "Pausa riproduzione" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "Percentuale a Sx" + +# +msgid "Percentage right" +msgstr "Percentuale destra" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "Rimuovere definitivamente tuute le registrazioni dal cestino?" + +msgid "Permanently remove all deleted items" +msgstr "Rimuovere definitivamente tutte le voci cancellate" + +msgid "Persian" +msgstr "Persiano" + +# +msgid "Phone number" +msgstr "Numero telefonico" + +# +msgid "PiP setup" +msgstr "Configurazione PiP" + +msgid "Picon" +msgstr "Picon" + +msgid "Picon and service name" +msgstr "Picon e nome canale" + +# +msgid "Picture player" +msgstr "PicturePlayer" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Pillarbox" + +# +msgid "Pilot" +msgstr "Pilot" + +# +msgid "Play" +msgstr "Play" + +# +msgid "Play DVD" +msgstr "Riprodurre DVD" + +msgid "Play audio in background" +msgstr "Riprodurre audio in background" + +# +msgid "Play audio-CD..." +msgstr "Riprodurre CD audio..." + +msgid "Play back media files" +msgstr "Riproduzione di file multimediali" + +# +msgid "Play entry" +msgstr "Riprodurre voce" + +msgid "Play from next mark or playlist entry" +msgstr "Riprodurre da contrassegno/voce in playlist successiva" + +msgid "Play from previous mark or playlist entry" +msgstr "Riprodurre da contrassegno/voce in playlist precedente" + +# +msgid "Play music..." +msgstr "Riprodurre musica..." + +msgid "Play next" +msgstr "Riprodurre la successiva" + +msgid "Play next (return to movie list)" +msgstr "Riprodurre la successiva (tornare all'elenco registrazioni)" + +msgid "Play next (return to previous service)" +msgstr "Riprodurre la successiva (tornare al canale precedente)" + +msgid "Play previous" +msgstr "Riprodurre la precedente" + +# +msgid "Play recorded movies..." +msgstr "Riprodurre registrazioni..." + +msgid "Please add titles to the compilation." +msgstr "Aggiungere titoli alla collezione" + +# +msgid "Please change recording endtime" +msgstr "Cambiare ora fine registrazione" + +# +msgid "Please check your network settings!" +msgstr "Verificare la configurazione di rete!" + +# +msgid "Please choose an extension..." +msgstr "Selezionare un'estensione..." + +# +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Configurare o verificare i nameserver inserendo i parametri richiesti.\n" +"Quando pronti, premere OK per continuare." + +# +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Configurare la connessione a Internet inserendo i parametri richiesti.\n" +"Quando pronti, premere OK per continuare." + +msgid "Please connect your receiver to the internet" +msgstr "Collegare il ricevitore a internet" + +# +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Non modificare alcun parametro se non si è certi di quello che si sta facendo!" + +# +msgid "Please enter a name for the new bouquet" +msgstr "Inserire un nome per il nuovo bouquet" + +# +msgid "Please enter a name for the new marker" +msgstr "Inserire un nome per il nuovo contrassegno" + +# +msgid "Please enter a new filename" +msgstr "Inserire un nome per il nuovo file" + +# +msgid "Please enter filename (empty = use current date)" +msgstr "Inserire un nome per il file (nulla >>data corrente)" + +# +msgid "Please enter name of the new directory" +msgstr "Inserire un nome per la nuova cartella" + +msgid "Please enter new name:" +msgstr "" + +# +msgid "Please enter the correct pin code" +msgstr "Inserire il codice PIN corretto" + +msgid "Please enter the old PIN code" +msgstr "Inserire il vecchio codice PIN" + +msgid "Please follow the instructions on the TV" +msgstr "Seguire le istruzioni mostrate sullo schermo" + +# +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "Il supporto selezionato in precedenza non è accessibile: sarà utilizzata la cartella predefinita." + +# +msgid "Please press OK to continue." +msgstr "Premere OK per proseguire." + +msgid "Please select a default EPG type..." +msgstr "Selezionare un tipo di EPG predefinito..." + +msgid "Please select a playlist to delete..." +msgstr "Selezionare la playlist da rimuovere..." + +# +msgid "Please select a playlist..." +msgstr "Selezionare una playlist..." + +# +msgid "Please select a sub service..." +msgstr "Selezionare un sottocanale..." + +# +msgid "Please select a subservice to record..." +msgstr "Selezionare un sottocanale da registrare..." + +# +msgid "Please select a subservice..." +msgstr "Selezionare un sottocanale..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "Selezionare un file .NFI, poi premere il tasto verde! " + +# +msgid "Please select medium to be scanned" +msgstr "Selezionare il supporto su cui cercare" + +# +msgid "Please select medium to use as backup location" +msgstr "Selezionare il supporto su cui effettuare il backup" + +# +msgid "Please select tag to filter..." +msgstr "Selezionare una etichetta come filtro..." + +# +msgid "Please select the movie path..." +msgstr "Selezionare cartella video..." + +# +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Selezionare l'interfaccia di rete che verrà utilizzata per la connessione a Internet.\n" +"\n" +"Premere OK per continuare." + +# +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Selezionare la rete wireless a cui connettersi.\n" +"\n" +"Premere OK per continuare." + +# +msgid "Please set up tuner A" +msgstr "Configurare il Tuner A" + +# +msgid "Please set up tuner B" +msgstr "Configurare il Tuner B." + +# +msgid "Please set up tuner C" +msgstr "Configurare il Tuner C." + +# +msgid "Please set up tuner D" +msgstr "Configurare il Tuner D." + +# +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Utilizzare i tasti <|> per muovere la finestra PiP.\n" +"Utilizzare Bouquet +/- per ridimensionare la finestra.\n" +"Premere OK per tornare alla modalità TV o EXIT per annullare lo spostamento." + +# +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "Selezionare la propria lingua utilizzando i tasti Sù/Giù. Premere OK per confermare." + +msgid "Please wait" +msgstr "" + +# +msgid "Please wait (downloading channel list)" +msgstr "Elenco canali in download. Attendere..." + +# +msgid "Please wait (downloading softcam)" +msgstr "Softcam in download. Attendere..." + +# +msgid "Please wait (updating packages)" +msgstr "Immagine in caricamento. Attendere..." + +# +msgid "Please wait for activation of your network configuration..." +msgstr "Attivazione configurazione di rete in corso. Attendere..." + +# +msgid "Please wait while scanning is in progress..." +msgstr "Scansione in corso. Attendere..." + +# +msgid "Please wait while we configure your network..." +msgstr "Configurazione rete in corso. Attendere..." + +# +msgid "Please wait while we prepare your network interfaces..." +msgstr "Configurazione interfacce di rete in corso. Attendere..." + +# +msgid "Please wait while we test your network..." +msgstr "Test della rete in corso. Attendere..." + +# +msgid "Please wait while your network is restarting..." +msgstr "Riavvio della rete in corso. Attendere..." + +# +msgid "Please wait..." +msgstr "Attendere..." + +# +msgid "Please wait... Loading list..." +msgstr "Elenco in caricamento. Attendere..." + +# +msgid "Plugin browser" +msgstr "Browser plugin" + +# +msgid "Plugin manager activity information" +msgstr "Informazioni attività gestore plugin..." + +# +msgid "Plugin manager help" +msgstr "Aiuto gestore plugin..." + +# +msgid "Plugins" +msgstr "Plugin" + +msgid "Polarisation" +msgstr "Polarizzazione" + +msgid "Polarisation:" +msgstr "" + +# +msgid "Polarization" +msgstr "Polarizzazione" + +# +msgid "Polish" +msgstr "Polacco" + +# +msgid "Port A" +msgstr "Porta A" + +# +msgid "Port B" +msgstr "Porta B" + +# +msgid "Port C" +msgstr "Porta C" + +# +msgid "Port D" +msgstr "Porta D" + +# +msgid "Portuguese" +msgstr "Portoghese" + +msgid "Position of completed timers in timerlist" +msgstr "Posizione dei timer conclusi in elenco timer" + +msgid "Position stored at index" +msgstr "Posizione memorizzata all'indice" + +# +msgid "Positioner" +msgstr "Motore" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "" + +# +msgid "Positioner setup" +msgstr "Configurazione motore" + +# +msgid "Power threshold in mA" +msgstr "Limite di potenza in mA" + +# +msgid "Predefined transponder" +msgstr "Transponder predefinito" + +msgid "Prefer AC3 track" +msgstr "Privilegiare le tracce AC3" + +msgid "Prefer AC3+ track" +msgstr "" + +msgid "Prefer audio track stored by service" +msgstr "Privilegiare la traccia audio fornita dal canale" + +msgid "Prefer graphical DVB subtitles" +msgstr "Privilegiare i sottotitoli grafici DVB" + +msgid "Prefer subtitles for hearing impaired" +msgstr "Privilegiare i sottotitoli per non udenti" + +msgid "Prefer subtitles stored by service" +msgstr "Privilegiare i sottotitoli forniti dal canale" + +msgid "Preferred tuner" +msgstr "Tuner preferito" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "Preparare un'altra penna USB per il caricamento immagine" + +# +msgid "Preparing... Please wait" +msgstr "In preparazione. Attendere..." + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "INFO >> Informazioni addizionali" + +msgid "Press MENU on your remote control for additional options." +msgstr "MENU >> Informazioni addizionali" + +# +msgid "Press OK on your remote control to continue." +msgstr "Ok >> continuare." + +# +msgid "Press OK to activate the selected skin." +msgstr "Ok >> attivare la skin selezionata." + +# +msgid "Press OK to activate the settings." +msgstr "Ok >> attivare configurazione." + +# +msgid "Press OK to edit the settings." +msgstr "Ok >> modificare la configurazione." + +# +#, python-format +msgid "Press OK to get further details for %s" +msgstr "Ok >> maggiori dettagli su %s." + +# +msgid "Press OK to scan" +msgstr "Ok >> ricercare" + +# +msgid "Press OK to select a provider." +msgstr "Ok >> Selezionare un provider" + +msgid "Press OK to select satellites" +msgstr "" + +# +msgid "Press OK to select/deselect a CAId." +msgstr "Ok >> commutare la selezione CAid." + +# +msgid "Press OK to start the scan" +msgstr "Ok >> iniziare la ricerca" + +msgid "Press OK to toggle the selection" +msgstr "" + +# +msgid "Press OK to toggle the selection." +msgstr "Ok >> commutare la selezione." + +# +msgid "Press yellow to set this interface as default interface." +msgstr "Giallo >> configurare l'interfaccia come predefinita." + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "Prec." + +# +msgid "Preview" +msgstr "Anteprima" + +# +msgid "Preview menu" +msgstr "Menu anteprima" + +msgid "Preview selected channel" +msgstr "Anteprima del canale selezionato" + +# +msgid "Primary DNS" +msgstr "DNS primario" + +# +msgid "Priority" +msgstr "Priorità" + +# +msgid "Process" +msgstr "Processo" + +msgid "Progress" +msgstr "Progressione" + +msgid "Progress bar left" +msgstr "Barra progressione a Sx" + +msgid "Progress bar right" +msgstr "Barra progressione a Dx" + +# +msgid "Properties of current title" +msgstr "Proprietà titolo corrente" + +# +msgid "Protect services" +msgstr "Proteggere canali" + +# +msgid "Protect setup" +msgstr "Proteggere configurazione" + +# +msgid "Provider" +msgstr "Provider" + +# +msgid "Provider to scan" +msgstr "Provider su cui cercare" + +# +msgid "Providers" +msgstr "Provider" + +msgid "Put TV in standby" +msgstr "Porre la TV in standby" + +msgid "Put receiver in standby" +msgstr "Porre il ricevitore in standby" + +msgid "Python frontend for /tmp/mmi.socket" +msgstr "Frontend python per /tmp/mmi.socket" + +# +msgid "Quick" +msgstr "Veloce" + +# +msgid "Quick zap" +msgstr "Zapping veloce" + +# +msgid "RF output" +msgstr "Output RF" + +# +msgid "RGB" +msgstr "RGB" + +# +msgid "Radio" +msgstr "Radio" + +# +msgid "Ram disk" +msgstr "Disco Ram" + +# +msgid "Random" +msgstr "Casuale" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "Valutazione fornita dal broadcaster - %d" + +msgid "Rating undefined" +msgstr "Valutazione non definita" + +# +msgid "Really close without saving settings?" +msgstr "Chiudere senza salvare le modifiche?" + +msgid "Really delete done timers?" +msgstr "Rimuovere i timer conclusi?" + +# +msgid "Really exit the subservices quickzap?" +msgstr "Uscire dallo zapping veloce sottocanali?" + +# +msgid "Really reboot now?" +msgstr "Riavviare ora?" + +# +msgid "Really restart now?" +msgstr "Riavviare ora?" + +# +msgid "Really shutdown now?" +msgstr "Spegnere ora?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "Aggiornare il frontprocessor e riavviare?" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "Aggiornare il ricevitore e riavviare?" + +# +msgid "Reboot" +msgstr "Riavviare" + +msgid "Rec" +msgstr "Rec" + +# +msgid "Reception settings" +msgstr "Configurazione ricezione" + +# +msgid "Record" +msgstr "Registrazioni" + +# +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "Tempo di registrazione limitato: timer %s in conflitto!" + +# +msgid "Recorded files..." +msgstr "Registrazioni..." + +# +msgid "Recording" +msgstr "Registrazione..." + +msgid "Recording in progress" +msgstr "Registrazione in corso" + +msgid "Recording paths" +msgstr "Percorsi registrazioni" + +msgid "Recording type" +msgstr "Tipo registrazione" + +# +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "Registrazioni in corso o in avvio a breve!" + +# +msgid "Recordings" +msgstr "Registrazioni" + +# +msgid "Recordings always have priority" +msgstr "Le registrazioni hanno sempre la priorità" + +msgid "Red button..." +msgstr "Tasto rosso..." + +msgid "Reenter new PIN" +msgstr "Ripetere il nuovo PIN" + +# +msgid "Refresh rate" +msgstr "Frequenza di refresh" + +# +msgid "Refresh rate selection." +msgstr "Selezione frequenza di refresh." + +msgid "Regard deep standby as standby" +msgstr "Gestire il deep standby come standby" + +msgid "Relative" +msgstr "Relativa" + +# +msgid "Reload" +msgstr "Ricaricare" + +msgid "Reload black-/white lists" +msgstr "Ricaricare black-whitelist" + +msgid "Reloading bouquets and services..." +msgstr "Ricarica bouquet e canali in corso..." + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "Ricordare il PIN canale" + +msgid "Remember these settings for each folder" +msgstr "Memorizzare queste impostazioni per ogni directory" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "" + +msgid "Remote control type" +msgstr "Tipo telecomando" + +# +msgid "Removal has completed." +msgstr "Rimozione completata." + +# +msgid "Remove" +msgstr "Rimuovere" + +# +msgid "Remove a mark" +msgstr "Rim. contr." + +# +msgid "Remove a nameserver entry" +msgstr "Rimuovere voce nameserver" + +# +msgid "Remove bookmark" +msgstr "Rim. contrass." + +msgid "Remove completed timers after (days)" +msgstr "Rimuovere i timer conclusi dopo (giorni)" + +# +msgid "Remove currently selected title" +msgstr "Rimuovere il titolo selezionato" + +msgid "Remove items from trash can after (days)" +msgstr "Rimuovere gli elementi dal cestino dopo (giorni)" + +# +msgid "Remove plugins" +msgstr "Rimuovere plugin" + +# +msgid "Remove title" +msgstr "Rim. titolo" + +# +msgid "Removing" +msgstr "Rimozione in corso..." + +# +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Rimozione cartella %s fallita! (Forse non è vuota!)" + +# +msgid "Removing partition table" +msgstr "Rimuovere tavola partizioni" + +# +msgid "Rename" +msgstr "Rinominare" + +msgid "Repeat" +msgstr "" + +# +msgid "Repeat type" +msgstr "Tipo ripetizione" + +# +msgid "Repeating event currently recording... What do you want to do?" +msgstr "Registrazione in corso di evento ricorrente. Cosa si desidera fare?" + +# +msgid "Repeats" +msgstr "Ripetizioni" + +msgid "Require authentication for http streams" +msgstr "" + +msgid "Required medium type:" +msgstr "Tipo di supporto richiesto:" + +msgid "Rereading partition table" +msgstr "Rilettura tavola partizioni in corso" + +msgid "Reserved" +msgstr "Riservato" + +# +msgid "Reset" +msgstr "Reset" + +# +msgid "Reset and renumerate title names" +msgstr "Reset e nuova numerazione titoli" + +msgid "Reset playback position" +msgstr "Ripristinare la posizione di riproduzione" + +# +msgid "Reset video enhancement settings to system defaults?" +msgstr "Riportare la configurazione miglioramento immagine ai valori predefiniti?" + +# +msgid "Reset video enhancement settings to your last configuration?" +msgstr "Riportare la configurazione miglioramento immagine agli ultimi valori selezionati?" + +# +msgid "Resolution" +msgstr "Risoluzione" + +# +msgid "Restart" +msgstr "Riavviare" + +# +msgid "Restart GUI now?" +msgstr "Riavviare la GUI?" + +msgid "Restart enigma" +msgstr "Riavviare enigma" + +# +msgid "Restart network" +msgstr "Riavviare la rete" + +# +msgid "Restart test" +msgstr "Ripetere il test" + +# +msgid "Restart your network connection and interfaces.\n" +msgstr "Riavviare connessioni di rete e relative interfacce.\n" + +# +msgid "Restore" +msgstr "Ripristinare" + +# +msgid "Restore backups" +msgstr "Ripristino backup." + +# +msgid "Restore is running..." +msgstr "Ripristino in corso..." + +# +msgid "Restore system settings" +msgstr "Ripristino conf. sistema" + +# +msgid "Restoring..." +msgstr "Ripristino in corso..." + +# +msgid "Resume from last position" +msgstr "Riprendere dall'ultima posizione" + +#, python-format +msgid "Resume position at %s" +msgstr "Riprendere dalla posizione %s" + +# +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Riavvio riproduzione..." + +# +msgid "Return to movie list" +msgstr "Tornare a elenco registrazioni" + +# +msgid "Return to previous service" +msgstr "Tornare al canale precedente" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +# +msgid "Rewind speeds" +msgstr "Velocità REW" + +msgid "Rewrap teletext subtitles" +msgstr "Rewrap sottotitoli televideo" + +# +msgid "Right" +msgstr "Destra" + +msgid "Right from servicename" +msgstr "" + +msgid "Roll-off" +msgstr "Roll-off" + +msgid "Romanian" +msgstr "Rumeno" + +msgid "Root directory" +msgstr "Directory root" + +msgid "Rotor step position:" +msgstr "Posizione passo rotore:" + +# +msgid "Rotor turning speed" +msgstr "Velocità rotazione motore" + +msgid "Round start time on" +msgstr "Ora di inizio della rotazione" + +# +msgid "Russian" +msgstr "Russo" + +# +msgid "S-Video" +msgstr "S-Video" + +msgid "SID" +msgstr "SID" + +msgid "SINGLE LAYER DVD" +msgstr "DVD singolo strato" + +# +msgid "SNR" +msgstr "SNR" + +# +msgid "SNR:" +msgstr "SNR:" + +# +msgid "SSID:" +msgstr "SSID:" + +msgid "Same resolution as skin" +msgstr "" + +# +msgid "Sat" +msgstr "Sab" + +# +msgid "Satellite" +msgstr "Satellite" + +# +msgid "Satellite dish setup" +msgstr "Configurazione parabola" + +msgid "Satellite equipment" +msgstr "Dispositivo satellitare" + +# +msgid "Satellite equipment setup" +msgstr "Configurazione dispositivo satellitare" + +msgid "Satellite longitude:" +msgstr "Longitudine satellite:" + +# +msgid "Satellites" +msgstr "Satelliti" + +# +msgid "Satfinder" +msgstr "Satfinder" + +# +msgid "Sats" +msgstr "Satelliti" + +# +msgid "Saturation" +msgstr "Saturazione" + +# +msgid "Saturday" +msgstr "Sabato" + +# +msgid "Save" +msgstr "Salvare" + +# +msgid "Save playlist" +msgstr "Salvare la playlist" + +msgid "Save timeshift file" +msgstr "" + +msgid "Save timeshift file in movie directory" +msgstr "" + +# +msgid "Scaler sharpness" +msgstr "Nitidezza scaler" + +# +msgid "Scaling mode" +msgstr "Modalità scaling" + +msgid "Scan" +msgstr "" + +msgid "Scan " +msgstr "Ricercare su " + +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, python-format +msgid "Scan %s" +msgstr "Ricercare %s" + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, python-format +msgid "Scan %s band" +msgstr "Ricerca su banda %s" + +# +msgid "Scan additional SR" +msgstr "Ricerca su SR aggiuntivi" + +# +msgid "Scan files..." +msgstr "Ricerca file..." + +# +msgid "Scan wireless networks" +msgstr "Ricerca reti wireless" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "Analizzare la rete alla ricerca di access point wireless e collegarsi ad essi tramite l'adattatore WLAN selezionato\n" + +#, python-format +msgid "Scanning %s..." +msgstr "Ricerca in corso su %s..." + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "Suche - %d%% beendet" +msgstr[1] "Suche - %d%% beendet" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "Ricerca completata, rilevato %d canale" +msgstr[1] "Ricerca completata, rilevati %d canali" + +msgid "Scanning failed!" +msgstr "Ricerca fallita." + +msgid "Scanning..." +msgstr "Ricerca in corso..." + +# +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "Ricerca lamedb predefiniti, ordinati per satellite, tramite parabola motorizzata" + +# +msgid "Search east" +msgstr "Cercare a est" + +# +msgid "Search west" +msgstr "Cercare a ovest" + +msgid "Searching" +msgstr "Ricerca in corso" + +msgid "Searching east ..." +msgstr "Ricerca in corso a est..." + +# +msgid "Searching for available updates. Please wait..." +msgstr "Ricerca aggiornamenti disponibili in corso. Attendere..." + +# +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "Ricerca nuovi pacchetti installati o rimossi in corso. Attendere..." + +msgid "Searching west ..." +msgstr "Ricerca in corso a ovest..." + +msgid "Second cable of motorized LNB" +msgstr "" + +# +msgid "Secondary DNS" +msgstr "DNS Secondario" + +# +msgid "Seek" +msgstr "Ricerca" + +# +msgid "Seek backward" +msgstr "Ricercare indietro" + +# +msgid "Seek backward (enter time)" +msgstr "Ricercare indietro (inserire tempo)" + +# +msgid "Seek forward" +msgstr "Ricercare avanti" + +# +msgid "Seek forward (enter time)" +msgstr "Ricercare avanti (inserire tempo)" + +# +msgid "Select" +msgstr "Selezionare" + +# +msgid "Select CAId" +msgstr "Selezionare CAId" + +# +msgid "Select HDD" +msgstr "Selezionare HDD" + +# +msgid "Select a bouquet" +msgstr "Selezionare un bouquet" + +# +msgid "Select a movie" +msgstr "Selezionare una registrazione" + +# +msgid "Select a network adapter" +msgstr "Selezionare adattatore di rete" + +# +msgid "Select a skin" +msgstr "Selezionare una skin" + +# +msgid "Select a tuner" +msgstr "Selezionare un tuner" + +# +msgid "Select a wireless network" +msgstr "Selezionare una rete wireless" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +msgid "Select an image to be downloaded" +msgstr "Selezionare l'immagine da scaricare" + +# +msgid "Select audio track" +msgstr "Selezionare una traccia audio" + +# +msgid "Select backup files" +msgstr "Selezionare file di backup" + +# +msgid "Select backup location" +msgstr "Selezionare destinazione backup" + +# +msgid "Select channel to record from" +msgstr "Selezionare il canale di registrazione" + +msgid "Select copy destination for:" +msgstr "Selezionare la destinazione per la copia di:" + +msgid "Select default EPG type..." +msgstr "Selezionare il tipo di EPG predefinito..." + +msgid "Select desired image from feed list" +msgstr "Selezionare l'immagine desiderata dalla lista feed" + +msgid "Select destination for:" +msgstr "Selezionare la destinazione per:" + +msgid "Select files for backup." +msgstr "Selezionare i file per il backup" + +# +msgid "Select files/folders to backup" +msgstr "Selezionare file/cartelle per il backup." + +msgid "Select input device" +msgstr "Selezionare il dispositivo di input" + +msgid "Select input device." +msgstr "Selezionare il dispositivo di input." + +# +msgid "Select interface" +msgstr "Selezionare l'interfaccia" + +# +msgid "Select location" +msgstr "Selezionare destinazione" + +# +msgid "Select movie" +msgstr "Selezionare registrazione" + +# +msgid "Select provider to add..." +msgstr "Selezionare il provider da aggiungere..." + +# +msgid "Select refresh rate" +msgstr "Selezionare la frequenza di refresh" + +msgid "Select satellites" +msgstr "" + +# +msgid "Select service to add..." +msgstr "Selezionare il canale da aggiungere..." + +msgid "Select sort method:" +msgstr "" + +# +msgid "Select target folder" +msgstr "Selezionare cartella destinazione" + +# +msgid "Select the movie path" +msgstr "Selezionare percorso registrazioni" + +# +msgid "Select upgrade source" +msgstr "Selezionare la sorgente aggiornamento" + +# +msgid "Select upgrade source to edit." +msgstr "Selezionare la sorgente aggiornamento da modificare." + +# +msgid "Select video input with up/down buttons" +msgstr "Selezionare l'ingresso video con i tasti Sù/Giù" + +# +msgid "Select video mode" +msgstr "Selezionare la modalità video" + +# +msgid "Select wireless network" +msgstr "Selezionare una rete wireless" + +msgid "Select your provider, and press OK to start the scan" +msgstr "Selezionare il proprio provider. Ok >> Avviare la ricerca" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +# +msgid "Send DiSEqC only on satellite change" +msgstr "Inviare DiSEqC solo su cambio satellite" + +msgid "Separate titles with a main menu" +msgstr "Separare i titoli con un menu principale" + +# +msgid "Sequence repeat" +msgstr "Ripetizione sequenza" + +# +msgid "Serbian" +msgstr "Serbo" + +# +msgid "Service" +msgstr "Canale" + +# +msgid "Service has been added to the favourites." +msgstr "Canale aggiunto a preferiti!" + +# +msgid "Service has been added to the selected bouquet." +msgstr "Canale aggiunto al bouquet selezionato!" + +msgid "Service info" +msgstr "Info canale" + +# +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Canale non valido!\n" +"(Timeout in lettura PMT)" + +# +msgid "Service name" +msgstr "Nome canale" + +# +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Canale non trovato!\n" +"(SID non trovato in PAT)" + +msgid "Service reference" +msgstr "Rif. canale:" + +# +msgid "Service scan" +msgstr "Ricerca canali" + +# +msgid "Service searching" +msgstr "Ricerca canali" + +# +msgid "Service title mode" +msgstr "Modalità titolo canale" + +# +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"Canale non disponibile!\n" +"Controllare la configurazione tuner!" + +# +msgid "Services" +msgstr "Canali" + +msgid "Set default" +msgstr "" + +msgid "Set end time" +msgstr "Conf. ora fine" + +msgid "Set fixed" +msgstr "Indirizzo statico" + +msgid "Set fps for external subtitles" +msgstr "" + +msgid "Set interface as default Interface" +msgstr ">> interfaccia predefinita" + +msgid "Set limits" +msgstr "Impostare i limiti" + +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "Configurare l'indicatore di progresso in selezione canali." + +msgid "Set time window to 1 hour" +msgstr "Impostare la finestra temporale a 1 ora" + +msgid "Set time window to 2 hours" +msgstr "Impostare la finestra temporale a 2 ore" + +msgid "Set time window to 3 hours" +msgstr "Impostare la finestra temporale a 3 ore" + +msgid "Set time window to 4 hours" +msgstr "Impostare la finestra temporale a 4 ore" + +msgid "Set time window to 5 hours" +msgstr "Impostare la finestra temporale a 5 ore" + +msgid "Set time window to 6 hours" +msgstr "" + +# +msgid "Set voltage and 22KHz" +msgstr "Configurare voltaggio e 22KHz" + +# +msgid "Settings" +msgstr "Config." + +# +msgid "Setup" +msgstr "Impostazioni" + +msgid "Setup menu" +msgstr "Menu impostazioni" + +# +msgid "Setup mode" +msgstr "Livello di accesso impostazioni" + +msgid "Setup your positioner" +msgstr "Configurare il posizionatore" + +msgid "Setup your satellite equipment" +msgstr "Configurazione dispositivo satellitare" + +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "Procedere con la configurazione guidata e installare il file immagine %s nella memoria flash?" + +# +msgid "Sharpness" +msgstr "Nitidezza" + +msgid "Short filenames" +msgstr "Nomi brevi" + +msgid "Show EIT now/next in infobar" +msgstr "Mostrare evento in corso/successivo sulla barra informazioni" + +# +msgid "Show EPG for current channel..." +msgstr "Mostrare EPG per il canale corrente..." + +# +msgid "Show EPG..." +msgstr "Mostrare EPG..." + +msgid "Show Games show" +msgstr "Show/Telequiz" + +msgid "Show SNR percentage instead of dB value" +msgstr "Mostrare la percentuale SNR anzichè il valore in dB" + +msgid "Show VCR scart on main menu" +msgstr "" + +# +msgid "Show WLAN status" +msgstr "Mostrare stato WLAN" + +msgid "Show animation while busy" +msgstr "Mostrare animazione se occupato" + +# +msgid "Show background in radio mode" +msgstr "Mostrare sfondo in modalità radio" + +msgid "Show bouquet selection menu" +msgstr "Mostrare il menu di selezione bouquet" + +msgid "Show busy indicator when the system is busy." +msgstr "Opzione per abilitare la visualizzazione di un indicatore quando il sistema è occupato." + +msgid "Show channel numbers in channel selection" +msgstr "Visualizzare il numero del canale in selezione canali" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "Mostrare informazioni codifica nella barra informazioni." + +msgid "Show detailed event info" +msgstr "Mostrare informazioni dettagliate evento" + +# +msgid "Show event details" +msgstr "Mostrare dettagli evento" + +msgid "Show event-progress in channel selection" +msgstr "Mostrare il progresso evento in selezione canali" + +# +msgid "Show extended description" +msgstr "Mostrare descrizione estesa" + +# +msgid "Show extensions..." +msgstr "Mostrare estensioni..." + +msgid "Show icon for new/unseen items" +msgstr "Visualizzare icona per elementi nuovi/non visti" + +msgid "Show in extensions menu" +msgstr "" + +# +msgid "Show info" +msgstr "Mostrare info" + +msgid "Show info line" +msgstr "Mostrare info" + +# +msgid "Show infobar on channel change" +msgstr "Mostrare barra informazioni su cambio canale" + +# +msgid "Show infobar on event change" +msgstr "Mostrare barra informazioni su cambio evento" + +# +msgid "Show infobar on skip forward/backward" +msgstr "Mostrare barra informazioni su FFW/REW" + +msgid "Show latest commits on sourceforge" +msgstr "" + +# +msgid "Show message when recording starts" +msgstr "Mostrare messaggio su avvio registrazione" + +# +msgid "Show movie lengths in movielist" +msgstr "Caricare durata registrazioni nell'elenco" + +msgid "Show multi channel EPG" +msgstr "" + +msgid "Show picons in channel list" +msgstr "" + +# +msgid "Show positioner movement" +msgstr "Mostrare il movimento motore" + +msgid "Show screensaver" +msgstr "" + +msgid "Show second infobar" +msgstr "Mostrare la seconda barra informazioni per" + +msgid "Show service type icons" +msgstr "" + +# +msgid "Show services beginning with" +msgstr "Mostrare i canali che iniziano per" + +# +msgid "Show shutdown menu" +msgstr "Mostrare menu di arresto" + +msgid "Show single service EPG" +msgstr "" + +msgid "Show status icons in Movielist" +msgstr "" + +msgid "Show status icons in movie list" +msgstr "Mostrare icone di stato in elenco registrazioni" + +msgid "Show status icons in movielist" +msgstr "Mostrare icone di stato in elenco registrazioni" + +# +msgid "Show tag menu" +msgstr "Mostrare il menu etichette" + +# +msgid "Show the radio player..." +msgstr "Radio..." + +# +msgid "Show the tv player..." +msgstr "TV..." + +msgid "Show warning when timeshift is stopped" +msgstr "" + +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Mostrare lo stato della connessione di rete wireless.\n" + +# +msgid "Shuffle playlist" +msgstr "Riproduzione casuale" + +# +msgid "Shutdown" +msgstr "Spegnere" + +msgid "Shutdown when in Standby" +msgstr "" + +msgid "Side by side" +msgstr "Fianco a fianco" + +msgid "Signal OK, proceeding" +msgstr "Segnale Ok, si procede" + +msgid "Signal quality" +msgstr "Qualità segnale" + +# +msgid "Signal strength:" +msgstr "Potenza Segnale:" + +msgid "Signal: " +msgstr "Segnale: " + +# +msgid "Similar" +msgstr "Simile" + +# +msgid "Similar broadcasts:" +msgstr "Programmi simili:" + +# +msgid "Simple" +msgstr "Semplice" + +# +msgid "Simple titleset (compatibility for legacy players)" +msgstr "Set titoli semplice (compatibilità con player legacy)" + +# +msgid "Single" +msgstr "Singolo" + +# +msgid "Single EPG" +msgstr "EPG singolo" + +# +msgid "Single satellite" +msgstr "Satellite singolo" + +# +msgid "Single step (GOP)" +msgstr "Passo-Passo (GOP)" + +# +msgid "Single transponder" +msgstr "Transponder singolo" + +msgid "Site latitude" +msgstr "Latitudine" + +msgid "Site longitude" +msgstr "Longitudine" + +# +msgid "Skin" +msgstr "Skin" + +# +msgid "Skins" +msgstr "Skin..." + +# +msgid "Skip empty services" +msgstr "Trascurare i canali vuoti" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "Omettere la verifica della connessione a internet (disabiliterà l'installazione automatica di pachetti)" + +# +msgid "Sleep timer" +msgstr "Timer di spegnimento" + +msgid "SleepTimer Configuration" +msgstr "" + +msgid "Sleeptimer" +msgstr "" + +# +msgid "Slide picture in loop" +msgstr "Riproduzione continua" + +# +msgid "Slide show interval (sec.)" +msgstr "Intevallo slideshow (sec.)" + +# +#, python-format +msgid "Slot %d" +msgstr "Slot %d" + +msgid "Slovak" +msgstr "Slovacco" + +# +msgid "Slovenian" +msgstr "Sloveno" + +# +msgid "Slow" +msgstr "Lento" + +# +msgid "Slow motion speeds" +msgstr "Velocità rallenty" + +# +msgid "Small progress" +msgstr "Barra progressione (piccola)" + +msgid "Social/Political/Economics" +msgstr "Sociale/Politica/Economia" + +msgid "SoftCam / CI" +msgstr "SoftCam / CI" + +# +msgid "Softcam type" +msgstr "Tipo softcam" + +# +msgid "Software" +msgstr "Software" + +# +msgid "Software management" +msgstr "Gestione software" + +msgid "Software manager setup" +msgstr "Configurazione software manager" + +# +msgid "Software restore" +msgstr "Ripristino software" + +# +msgid "Software update" +msgstr "Aggiornamento software" + +msgid "Softwaremanager information" +msgstr "Informazioni su software manager" + +# +msgid "Some plugins are not available:\n" +msgstr "Alcuni plugin non sono disponibili:\n" + +# +#, python-format +msgid "Sorry, %s has not been installed!" +msgstr "%s non installato." + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "Le directory possono essere cancellate solo attraverso il cestino (per ora)." + +# +msgid "Sorry, no backups found!" +msgstr "Nessun backup trovato." + +# +msgid "Sorry, no details available!" +msgstr "Dettagli non disponibili." + +# +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"Destinazione backup non aggiornabile.\n" +"Selezionarne un'altra." + +msgid "Sort" +msgstr "Ordine" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Ordine A-Z" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort time" +msgstr "Ordine per ora" + +# +msgid "Sound" +msgstr "Audio" + +# +msgid "Sound carrier" +msgstr "Portante audio" + +msgid "Source request" +msgstr "Richiesta sorgente" + +# +msgid "South" +msgstr "Sud" + +# +msgid "Spanish" +msgstr "Spagnolo" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +# +msgid "Split preview mode" +msgstr "Modalità anteprima separata" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "Sport" + +# +msgid "Standard" +msgstr "Predefinito" + +msgid "Standart list" +msgstr "" + +# +msgid "Standby" +msgstr "Standby" + +# +msgid "Standby / restart" +msgstr "Standby / Riavvio" + +msgid "Standby after current event" +msgstr "" + +#, python-format +msgid "Standby fan %d PWM" +msgstr "PWM standby ventola %d" + +#, python-format +msgid "Standby fan %d voltage" +msgstr "Voltaggio standby ventola %d" + +msgid "Standby in " +msgstr "" + +msgid "StandbyLED" +msgstr "" + +# +msgid "Start from the beginning" +msgstr "Partire dall'inizio" + +msgid "Start offline decode" +msgstr "Avviare decodifica offline" + +# +msgid "Start recording?" +msgstr "Avviare la registrazione?" + +# +msgid "Start test" +msgstr "Avviare il test" + +# +msgid "Start time" +msgstr "Ora avvio" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +# +msgid "Start timeshift" +msgstr "Avviare timeshift" + +msgid "Start with list screen" +msgstr "Avviare con schermata elenco" + +# +msgid "Starting on" +msgstr "Avvio il" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +msgid "Step east" +msgstr "Passo a est" + +msgid "Step west" +msgstr "Passo a ovest" + +msgid "Stepped east" +msgstr "Corretto a est" + +msgid "Stepped west" +msgstr "Corretto a ovest" + +# +msgid "Stop" +msgstr "Stop" + +# +msgid "Stop PiP" +msgstr "Chiudere PiP" + +# +msgid "Stop current event and disable coming events" +msgstr "Arrestare l'evento corrente e disabilitare i futuri" + +# +msgid "Stop current event but not coming events" +msgstr "Arrestare l'evento corrente ma non i futuri" + +# +msgid "Stop entry" +msgstr "Arrestare voce" + +# +msgid "Stop playing this movie?" +msgstr "Arrestare la riproduzione?" + +msgid "Stop recording" +msgstr "Arrestare registrazione" + +msgid "Stop recording and delete" +msgstr "Arrestare la registrazione e rimuoverla" + +msgid "Stop service on return to movie list" +msgstr "" + +# +msgid "Stop test" +msgstr "Arrestare il test" + +msgid "Stop testing plane after # failed transponders" +msgstr "Arrestare il test dopo # transponder falliti" + +msgid "Stop testing plane after # successful transponders" +msgstr "Arrestare il test dopo # transponder controllati correttamente" + +msgid "Stop timer recording" +msgstr "" + +# +msgid "Stop timeshift" +msgstr "Arrestare timeshift" + +# +msgid "Stop timeshift?" +msgstr "Arrestare timeshift ?" + +msgid "Stopped" +msgstr "Arrestato" + +msgid "Store at index" +msgstr "Memorizzare all'indice" + +# +msgid "Store position" +msgstr "Memorizzare posizione" + +# +msgid "Stored position" +msgstr "Posizione memorizzata" + +msgid "Stream" +msgstr "Stream" + +msgid "Stream request" +msgstr "Richiesta stream" + +msgid "Strongest position" +msgstr "Miglior posizione" + +# +msgid "Subservice list..." +msgstr "Elenco sottocanali..." + +# +msgid "Subservices" +msgstr "Sottocanali" + +msgid "Subtitle Quickmenu" +msgstr "" + +# +msgid "Subtitle alignment" +msgstr "Allineamento sottotitoli" + +msgid "Subtitle border width" +msgstr "Spessore bordi sottotitoli" + +msgid "Subtitle delay when timing is bad" +msgstr "" + +msgid "Subtitle delay when timing lacks" +msgstr "Ritardo sottotitoli su mancanza temporizzazione" + +# +msgid "Subtitle font size" +msgstr "Dimensione carattere sottotitoli" + +msgid "Subtitle language selection 1" +msgstr "Sottotitoli: lingua 1" + +msgid "Subtitle language selection 2" +msgstr "Sottotitoli: lingua 2" + +msgid "Subtitle language selection 3" +msgstr "Sottotitoli: lingua 3" + +msgid "Subtitle language selection 4" +msgstr "Sottotitoli: lingua 4" + +# +msgid "Subtitle position" +msgstr "Posizione sottotitoli" + +# +msgid "Subtitle selection" +msgstr "Selezione sottotitoli" + +msgid "Subtitle selection..." +msgstr "Selezione sottotitoli..." + +msgid "Subtitle settings" +msgstr "Configurazione sottotitoli" + +# +msgid "Subtitles" +msgstr "Sottotitoli" + +# +msgid "Sun" +msgstr "Dom" + +# +msgid "Sunday" +msgstr "Domenica" + +# +msgid "Swap PiP and main picture" +msgstr "Scambiare PiP e schermo principale" + +msgid "Swap services" +msgstr "Scambiare canali" + +# +msgid "Swedish" +msgstr "Svedese" + +msgid "Switch TV to correct input" +msgstr "Commutare la TV sull'ingresso corretto" + +msgid "Switch between filelist/playlist" +msgstr "" + +msgid "Switch between normal mode and list mode" +msgstr "Commutare tra modalità normale ed elenco" + +msgid "Switch to HDMI in mode" +msgstr "" + +# +msgid "Switch to filelist" +msgstr "Passare all'elenco file" + +msgid "Switch to next channel" +msgstr "" + +# +msgid "Switch to next channel in history" +msgstr "Canale successivo nella cronologia" + +# +msgid "Switch to next sub service" +msgstr "Sottocanale seguente" + +# +msgid "Switch to playlist" +msgstr "Passare alla playlist" + +# +msgid "Switch to previous channel" +msgstr "Sottocanale precedente" + +# +msgid "Switch to previous channel in history" +msgstr "Canale precedente nella cronologia" + +# +msgid "Switch to previous sub service" +msgstr "Sottocanale precedente" + +msgid "Switchable tuner types:" +msgstr "Tipi di tuner commutabili:" + +msgid "Symbol rate" +msgstr "Symbol rate" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "Sincronizzazione fallita tornando all'origine" + +# +msgid "System" +msgstr "Sistema" + +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "" +"Traduzione italiana\n" +"OpenPLi enigma2\n" +"a cura di Dario Croci\n" +"www.linsat.net\n" +"Supporto: spaeleus@croci.org\n" +"aggiornamento: 18 dicembre 2012" + +# +msgid "TS file is too large for ISO9660 level 1!" +msgstr "File TS troppo grande per ISO9660 livello 1!" + +msgid "TSID" +msgstr "TSID" + +msgid "TV physical address report" +msgstr "Riportare l'indirizzo fisico della TV" + +msgid "TXT PID" +msgstr "PID TXT" + +# +msgid "Table of contents for collection" +msgstr "Elenco contenuti raccolta" + +# +msgid "Tags" +msgstr "Etichette" + +msgid "Teletext subtitle color" +msgstr "Colore sottotitoli televideo" + +# +msgid "Temperature and fan control" +msgstr "Controllo temperatura e ventola" + +# +msgid "Terrestrial" +msgstr "Terrestre" + +# +msgid "Terrestrial provider" +msgstr "Provider terrestre" + +# +msgid "Test DiSEqC settings" +msgstr "Test configurazione DiSEqC" + +# +msgid "Test mode" +msgstr "Modalità test" + +msgid "Test the network configuration of your receiver.\n" +msgstr "Verificare la configurazione di rete del ricevitore.\n" + +# +msgid "Test type" +msgstr "Tipo test" + +# +msgid "Text color" +msgstr "Colore testo" + +msgid "Thai" +msgstr "Thai" + +# +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"Grazie per aver utilizzato questa configurazione guidata.\n" +"Premere OK per continuare." + +# +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "Il ricevitore è ora pronto per essere utilizzato./nOK >> continuare." + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "Lo standard DVD non supporta stream video H.264 (HDTV). Creare un DVD con formato dati speciale? (non sarà leggibile da lettori DVD standard)" + +msgid "The PIN code has been changed successfully." +msgstr "Codice PIN aggiornato correttamente." + +msgid "The PIN codes you entered are different." +msgstr "I codici PIN inseriti sono diversi!" + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" +"La penna USB è stata configurata per essere avviabile.\n" +"Ora si può scaricare il file immagine .NFI!" + +# +msgid "The backup failed. Please choose a different backup location." +msgstr "Backup fallito! Selezionare una destinazione differente per il backup." + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" +"L'immagine beta corrente potrebbe non essere stabile.\n" +"Per maggiori informazioni: %s." + +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"La directory %s è in sola lettura.\n" +"Controllare di aver scelto una directory in cui sia possibile scrivere." + +# +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"Rilevato il seguente dispositivo:\n" +"\n" +"%s\n" +"\n" +"Installare il flasher USB su questa penna?" + +# +msgid "The following files were found..." +msgstr "Trovati i seguenti file..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "Verifica md5sum fallita: il file potrebbe essere corrotto!" + +# +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"L'estensione NetworkWizard non è installata.\n" +"Provvedere a installarla." + +# +#, python-format +msgid "The path %s already exists." +msgstr "Percorso %s già esistente." + +# +msgid "The pin code you entered is wrong." +msgstr "Inserito codice PIN errato!" + +# +#, python-format +msgid "The results have been written to %s." +msgstr "Risultati salvati su %s." + +# +msgid "The sleep timer has been activated." +msgstr "Timer di spegnimento attivato!" + +# +msgid "The sleep timer has been disabled." +msgstr "Timer di spegnimento disattivato!" + +# +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"L'estensione Sofwaremanagement non è installata.\n" +"Provvedere a installarla." + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "Lo stato della immagine beta corrente non può essere verificato: %s non raggiungibile." + +# +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "File Timer (timers.xml) corrotto: NON caricabile!" + +# +msgid "The user interface of your receiver is restarting" +msgstr "Riavvio interfaccia utente del ricevitore in corso" + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" +"L'interfaccia utente del ricevitore si sta riavviando\n" +"a causa di un errore in mytest.py" + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"Il plugin WirelessLan non è installato!\n" +"Installarlo per poterlo configurare." + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"Plugin WirelessLAN non installato!\n" +"Installarlo per poterlo abilitare." + +# +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "Il wizard permette di effettuare un backup della configurazione. Farlo ora?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "Il wizard ha rilevato un backup delle configurazioni. Ripristinare le vecchie configurazioni da %s?" + +# +msgid "The wizard is finished now." +msgstr "Il wizard è terminato!" + +# +msgid "There are at least " +msgstr "Sono presenti almeno " + +# +#, python-format +msgid "There are at least %s updates available." +msgstr "Aggiornamenti disponibili: %s (minimo)" + +# +msgid "There are currently no outstanding actions." +msgstr "Nessuna azione in sospeso al momento." + +# +msgid "There are no updates available." +msgstr "Nessun aggiornamento disponibile." + +msgid "There is no signal to lock on !" +msgstr "Lock impossibile: segnale non presente." + +# +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"Potrebbe non esserci spazio sufficiente sulla partizione prescelta.\n" +"Procedere comunque?" + +# +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "Il DVD-RW è già formattato - una nuova formattazione cancellerà tutto il contenuto del disco!" + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" +"Questo plugin permette di configurare una penna USB in modo che possa essere utilizzata per ripristinare il firmware del ricevitore senza l'utilizzo di rete o connessione WLAN.\n" +"Per prima cosa occorre predisporre la penna USB in modo che risulti avviabile.\n" +"Successivamente, un'immagine .NFI potrà essere scaricata dal server aggiornamenti e salvata sulla penna USB.\n" +"Se si dispone di una penna USB già configurata come avviabile, inserirla ora. In caso contrario inserire una penna USB dalla capacità di almeno 64 MB." + +# +msgid "This plugin is installed." +msgstr "Questo plugin è installato." + +# +msgid "This plugin is not installed." +msgstr "Questo plugin non è installato." + +# +msgid "This plugin will be installed." +msgstr "Questo plugin verrà installato." + +# +msgid "This plugin will be removed." +msgstr "Questo plugin verrà rimosso." + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "Impossibile decodificare stream %s." + +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"Questo test verifica la configurazione dei Nameserver.\n" +"Se si ottiene il messaggio \"non confermato\":\n" +"- Verificare la configurazione della scheda, del servizio DHCP e dei cavi;\n" +"- Se i nameserver sono stati configurati manualmente verificare le voci della configurazione Nameserver." + +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Questo test verifica la funzionalità della connessione di rete cablata.\n" +"Se si ottiene il messaggio \"non connesso\":\n" +"- Verificare che il cavo sia collegato correttamente;\n" +"- Verificare che il cavo sia integro e del tipo adatto." + +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Questo test verifica che alla scheda venga assegnato un indirizzo IP valido.\n" +"Se si ottiene il messaggio \"non confermato\":\n" +"- Non è stato trovato un indirizzo valido;\n" +"- Controllare il servizio DHCP, i cavi e la configurazione della scheda." + +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"Questo test verifica se la connessione di rete locale è configurata per l'assegnazione automatica IP tramite DHCP.\n" +"Se si ottiene il messaggio [Disabilitato]:\n" +"- La rete locale è configurata per utilizzare l'assegnazione manuale dell'indirizzo IP;\n" +"- Verificare di aver inserito le informazioni corrette nel menu di configurazione della rete.\n" +"Se si ottiene il messaggio [Abilitato]:\n" +"- Verificare che il servizio DHCP sulla rete sia configurato correttamente e operativo." + +# +msgid "This test detects your configured LAN adapter." +msgstr "Questo test individua la scheda di rete locale installata." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" +"L'operazione (ri)calcolerà tutte le posizioni del rotore e potrebbe rimuovere posizioni già memorizzate in precedenza.\n" +"Eseguire?" + +# +msgid "Three" +msgstr "Tre" + +# +msgid "Threshold" +msgstr "Soglia" + +# +msgid "Thu" +msgstr "Gio" + +# +msgid "Thumbnails" +msgstr "Miniature" + +# +msgid "Thursday" +msgstr "Giovedì" + +# +msgid "Time" +msgstr "Ora" + +# +msgid "Time scale" +msgstr "Scala tempo" + +# +msgid "Timer" +msgstr "Timer" + +msgid "Timer Overview" +msgstr "" + +# +msgid "Timer edit" +msgstr "Mod. timer" + +# +msgid "Timer editor" +msgstr "Editor timer" + +# +msgid "Timer entry" +msgstr "Voce timer" + +# +msgid "Timer log" +msgstr "Log timer" + +# +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"Sovrapposizione timer rilevata in timers.xml!\n" +"Ricontrollare!" + +# +msgid "Timer overview" +msgstr "Panoramica timer" + +# +msgid "Timer recording location" +msgstr "Destinazione timer registrazioni" + +# +msgid "Timer sanity error" +msgstr "Errore congruenza timer!" + +# +msgid "Timer selection" +msgstr "Selezione timer" + +msgid "Timer selection..." +msgstr "" + +# +msgid "Timer type" +msgstr "Tipo timer" + +# +msgid "Timeshift" +msgstr "Timeshift" + +msgid "Timeshift Live" +msgstr "" + +# +msgid "Timeshift location" +msgstr "Percorso timeshift" + +# +msgid "Timeshift not possible!" +msgstr "Timeshift impossibile!" + +# +msgid "Timezone" +msgstr "Fuso orario" + +# +msgid "Title" +msgstr "Titolo" + +# +msgid "Title properties" +msgstr "Proprietà titolo" + +# +msgid "Titleset mode" +msgstr "Modalità set titoli" + +msgid "To audio selection" +msgstr ">> Selezione audio" + +msgid "To subtitle selection" +msgstr ">> Selezione sottotitoli" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" +"Per aggiornare il firmware del ricevitore, seguire le seguenti indicazioni:\n" +"1) Spegnere il ricevitore (interruttore posteriore) e assicurarsi di inserire una penna USB avviabile.\n" +"2) Riaccendere il ricevitore (interrutore posteriore) tenendo premuto il pulsante GIÙ per 10 secondi.\n" +"3) Attendere l'avvio del ricevitore e seguire le istruzioni della procedura guidata." + +# +msgid "Today" +msgstr "Oggi" + +# +msgid "Toggle a cut mark at the current position" +msgstr "Commutare contrassegno di taglio qui" + +# +msgid "Tone amplitude" +msgstr "Ampiezza tono" + +# +msgid "Tone mode" +msgstr "Modalità tono" + +# +msgid "Toneburst" +msgstr "Toneburst" + +# +msgid "Toneburst A/B" +msgstr "Toneburst A/B" + +msgid "Top and bottom" +msgstr "Alto e basso" + +# +msgid "Track" +msgstr "Traccia" + +# +msgid "Translation" +msgstr "Traduzione" + +# +msgid "Translation:" +msgstr "Traduzione:" + +msgid "Translations" +msgstr "" + +# +msgid "Transmission mode" +msgstr "Modalità trasmissione" + +# +msgid "Transponder" +msgstr "Transponder" + +# +msgid "Transponder type" +msgstr "Tipo transponder" + +msgid "Trash can" +msgstr "Cestino" + +# +msgid "Tries left:" +msgstr "Tentativi residui:" + +# +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Ricerca transponder utilizzati sulla rete via cavo. Attendere..." + +# +msgid "Trying to download a new packetlist. Please wait..." +msgstr "Download nuovo elenco pacchetti. Attendere..." + +# +msgid "Tue" +msgstr "Mar" + +# +msgid "Tuesday" +msgstr "Martedì" + +# +msgid "Tune" +msgstr "Sintonizzare" + +# +msgid "Tune and focus" +msgstr "Puntamento e sintonia" + +# +msgid "Tune failed!" +msgstr "Sintonia fallita!" + +# +msgid "Tuner" +msgstr "Tuner" + +# +msgid "Tuner configuration" +msgstr "Configurazione tuner" + +msgid "Tuner is not supported" +msgstr "" + +# +msgid "Tuner slot" +msgstr "Slot tuner" + +# +msgid "Tuner status" +msgstr "Stato tuner" + +# +#, python-format +msgid "Tuner status %s" +msgstr "Stato tuner %s" + +msgid "Tuner type" +msgstr "Tipo tuner" + +# +msgid "Turkish" +msgstr "Turco" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +# +msgid "Two" +msgstr "Due" + +# +msgid "Type" +msgstr "Tipo" + +# +msgid "Type of scan" +msgstr "Tipo ricerca" + +# +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "Calibrazione USALS" + +# +msgid "USB stick" +msgstr "Penna USB" + +# +msgid "USB stick wizard" +msgstr "Wizard penna USB" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Aggiornamento automatico in corso.\n" +"Attendere il riavvio del ricevitore:\n" +"potrebbero essere necessari alcuni minuti." + +# +msgid "Undo install" +msgstr "Annullare inst." + +# +msgid "Undo uninstall" +msgstr "Annull. rimoz." + +msgid "Unencrypted" +msgstr "In chiaro" + +msgid "UnhandledKey" +msgstr "Tasto non gestito" + +# +msgid "Unicable" +msgstr "Unicable" + +# +msgid "Unicable LNB" +msgstr "LNB Unicable" + +# +msgid "Unicable Martix" +msgstr "Matrice Unicable" + +# +msgid "Uninstall" +msgstr "Rimuovere" + +# +msgid "Universal LNB" +msgstr "LNB Universale" + +msgid "Unknown" +msgstr "Sconosciuto" + +msgid "Unmount" +msgstr "Unmount" + +# +msgid "Unsupported" +msgstr "Non supportata" + +# +msgid "Update" +msgstr "Aggiornare" + +msgid "Update and ask to reboot" +msgstr "Aggiornare e al termine chiedere se riavviare" + +msgid "Update and reboot (recommended)" +msgstr "Aggiornare e al termine riavviare (raccomandato)" + +# +msgid "Update channel list only" +msgstr "Aggiornate solamente l'elenco canali" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "Aggiornamento completato. Installato %d pacchetto." +msgstr[1] "Aggiornamento completato. Installati %d pacchetti." + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "Aggiornamento completato. Riavviare il ricevitore?" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "Aggiornamento fallito. La connessione a internet non è attiva." + +msgid "Update has completed." +msgstr "Aggiornamento completato." + +msgid "Updatefeed not available." +msgstr "Feed aggiornamenti non disponibile." + +# +msgid "Updating software catalog" +msgstr "Aggiornamento catalogo software in corso" + +# +msgid "Upgrading" +msgstr "Agg. in corso" + +# +msgid "Use" +msgstr "Utilizzare" + +# +msgid "Use DHCP" +msgstr "Utilizzare DHCP" + +msgid "Use EIT EPG information when it is available." +msgstr "Opzione per abilitare l'utilizzo delle informazioni EPG EIT, quando disponibili." + +msgid "Use FreeSat EPG information when it is available." +msgstr "Opzione per abilitare l'utilizzo delle informazioni EPG FreeSat, quando disponibili." + +msgid "Use MHW EPG information when it is available." +msgstr "Opzione per abilitare l'utilizzo delle informazioni EPG MHW, quando disponibili." + +msgid "Use Netmed EPG information when it is available." +msgstr "Opzione per abilitare l'utilizzo delle informazioni EPG Netmed, quando disponibili." + +msgid "Use TV remote control" +msgstr "Utilizzare il telecomando TV" + +# +msgid "Use USALS for this sat" +msgstr "Utilizzare USALS per questo satellite" + +msgid "Use ViaSat EPG information when it is available." +msgstr "Opzione per abilitare l'utilizzo delle informazioni EPG ViaSat, quando disponibili." + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +# +msgid "Use a gateway" +msgstr "Utilizzare un gateway" + +msgid "Use fastscan channel names" +msgstr "Utilizzare i nomi canale da scansione rapida" + +msgid "Use fastscan channel numbering" +msgstr "Utilizzare i numeri canale da scansione rapida" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "" + +# +msgid "Use interface" +msgstr "Utilizzare l'Interfaccia" + +msgid "Use official channel numbering" +msgstr "Utilizzare la numerazione canale ufficiale" + +msgid "Use original DVB subtitle position" +msgstr "Utlizzare posizione originale sottotitoli DVB" + +msgid "Use original teletext position" +msgstr "Utilizzare la posizione originale televideo" + +# +msgid "Use power measurement" +msgstr "Utilizzare misurazione di potenza" + +msgid "Use the network wizard to configure selected network adapter" +msgstr "Utilizzare NetworkWizard per configurare l'adattatore di rete selezionato" + +# +msgid "Use the network wizard to configure your network\n" +msgstr "Utilizzare la configurazione guidata rete\n" + +# +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "Utilizzare i tasti Sù/Giù del telecomando per selezionare un'opzione, poi premere OK." + +# +msgid "Use the wizard to set up basic features" +msgstr "Configurazione guidata opzioni di base" + +msgid "Use these input device settings?" +msgstr "Utilizzare questa configurazione per il dispositivo di input?" + +msgid "Use these settings?" +msgstr "Utilizzare questa configurazione?" + +# +msgid "Use this video enhancement settings?" +msgstr "Utilizzare questa configurazione per il miglioramento immagine?" + +# +msgid "Use trash can in movielist" +msgstr "Utilizzare cestino in elenco registrazioni" + +# +msgid "Used service scan type" +msgstr "Tipo ricerca canali in uso" + +msgid "User - bouquets" +msgstr "Bouquet personalizzati" + +# +msgid "User defined" +msgstr "Definito dall'utente" + +msgid "User defined transponder" +msgstr "" + +# +msgid "User interface" +msgstr "Interfaccia utente" + +msgid "Username" +msgstr "Nome user" + +#, python-format +msgid "Using LNB %d" +msgstr "LNB in uso: %d" + +msgid "Using fixed address" +msgstr "Indirizzo statico in uso" + +#, python-format +msgid "Using tuner %s" +msgstr "Tuner in uso: %s" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "Normalmente, se la lingua audio e quella dei sottotitoli coincidono, i sottotitoli non vengono utilizzati. Abilitare questa opzione per consentirne l'utilizzo." + +# +msgid "VCR scart" +msgstr "Scart VCR" + +# +msgid "VMGM (intro trailer)" +msgstr "VMGM (trailer introduttivo)" + +# +msgid "Vertical" +msgstr "Verticale" + +msgid "Vertical turning speed" +msgstr "Velocità di rotazione verticale" + +msgid "Video PID" +msgstr "PID Video" + +# +msgid "Video enhancement preview" +msgstr "Anteprima miglioramento immagine" + +# +msgid "Video enhancement settings" +msgstr "Miglioramento immagine" + +# +msgid "Video enhancement setup" +msgstr "Configurazione miglioramento immagine" + +# +msgid "Video fine tuning" +msgstr "Regolazione fine video" + +# +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Selezione ingresso video\n" +"\n" +"Se questa pagina è visibile, premere OK o selezionare un ingresso video differente.\n" +"\n" +"L'ingresso video successivo sarà testato automaticamente tra 10 secondi." + +# +msgid "Video mode selection." +msgstr "Selezione modalità video." + +# +msgid "Video output" +msgstr "Uscita video" + +# +msgid "Video setup" +msgstr "Configurazione video" + +# +msgid "Video wizard" +msgstr "Procedura guidata video" + +#, python-format +msgid "Video: %s fps" +msgstr "" + +msgid "VideoMode" +msgstr "" + +msgid "Videocodec" +msgstr "Codec video" + +msgid "Videoformat" +msgstr "Formato video" + +msgid "Videosize" +msgstr "Risoluzione video:" + +# +msgid "View Rass interactive..." +msgstr "Rass interattivi..." + +# +msgid "View details" +msgstr "Dettagli..." + +msgid "View list of available " +msgstr "Visualizzare elenco disponibilità " + +# +msgid "View list of available CommonInterface extensions" +msgstr "Elenco estensioni Common Interface disponibili." + +# +msgid "View list of available EPG extensions." +msgstr "Elenco estensioni EPG disponibili." + +msgid "View list of available Satellite equipment extensions." +msgstr "Elenco delle estensioni per dispositivo satellitare disponibili." + +# +msgid "View list of available communication extensions." +msgstr "Elenco estensioni comunicazione disponibili." + +# +msgid "View list of available default settings" +msgstr "Elenco configurazioni predefinite disponibili." + +# +msgid "View list of available display and userinterface extensions." +msgstr "Elenco estensioni display e interfaccia utente disponibili." + +# +msgid "View list of available multimedia extensions." +msgstr "Elenco estensioni multimediali disponibili." + +# +msgid "View list of available networking extensions" +msgstr "Elenco estensioni di rete disponibili." + +# +msgid "View list of available recording extensions" +msgstr "Elenco estensioni registrazioni disponibili." + +# +msgid "View list of available skins" +msgstr "Elenco skin disponibili." + +# +msgid "View list of available software extensions" +msgstr "Elenco estensioni software disponibili." + +# +msgid "View list of available system extensions" +msgstr "Elenco estensioni di sistema disponibili." + +# +msgid "View photos..." +msgstr "Visualizzare foto..." + +# +msgid "View teletext..." +msgstr "Televideo..." + +# +msgid "View video CD..." +msgstr "Riprodurre CD video..." + +# +msgid "Virtual keyboard" +msgstr "Tastiera virtuale" + +# +msgid "Voltage mode" +msgstr "Modalità voltaggio" + +# +msgid "Volume" +msgstr "Volume" + +# +msgid "W" +msgstr "O" + +# +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "Connessione WLAN" + +# +msgid "WPA" +msgstr "WPA" + +# +msgid "WPA or WPA2" +msgstr "WPA o WPA2" + +# +msgid "WPA2" +msgstr "WPA2" + +# +msgid "WSS on 4:3" +msgstr "WSS su 4:3" + +# +msgid "Waiting" +msgstr "In attesa" + +msgid "Waiting for mount" +msgstr "In attesa del mount" + +msgid "Waiting for partition" +msgstr "In attesa della partizione" + +msgid "Wakeup" +msgstr "Riattivare" + +msgid "Wakeup TV from standby" +msgstr "Riattivare la TV dallo standby" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "Riattivare il ricevotore dallo standby" + +msgid "Wakeup signal from TV" +msgstr "Segnale di accensione dalla TV" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "Attenzione:nessun LNB. Usati valori predefiniti." + +# +msgid "Watch movies..." +msgstr "Riprodurre registrazioni..." + +# +msgid "Watch recordings..." +msgstr "Riprodurre registrazioni..." + +# +msgid "Wed" +msgstr "Mer" + +# +msgid "Wednesday" +msgstr "Mercoledì" + +# +msgid "Weekday" +msgstr "Giorno della settimana" + +msgid "Weighted position" +msgstr "Posizione pesata" + +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"Plugin che consente di eseguire tagli nelle registrazioni.\n" +"\n" +"Portarsi all'inizio della sequenza da rimuovere. Premere Ok, selezionare \"Inizio taglio\".\n" +"\n" +"Portarsi quindi alla fine della sequenza da rimuovere, premere Ok, selezionare \"Fine taglio\". E' tutto." + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "Benvenuti nella procedura guidata aggiornamento immagine. La procedura fornirà assistenza durante l'aggiornamento tramite un backup guidato delle impostazioni correnti e una breve guida sulla funzione di upgrade del firmware." + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" +"Benvenuti.\n" +"\n" +"Se si desidera collegare il ricevitore a internet, questa procedura guidata fornirà supporto nella configurazione di rete del ricevitore.\n" +"\n" +"Ok >> Iniziare la configurazione della rete." + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" +"Benvenuti.\n" +"\n" +"Questa procedura guidata sarà di supporto nella configurazione iniziale del ricevitore.\n" +"Ok >> Passare alla fase successiva." + +# +msgid "Welcome..." +msgstr "Benvenuti..." + +# +msgid "West" +msgstr "Ovest" + +msgid "West limit set" +msgstr "Conf. limite ovest" + +# +msgid "What do you want to scan?" +msgstr "Cosa si intende cercare?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "" + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "" + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "Opzione per abilitare l'inserimento dei dati AIT negli stream http. Ciò permetterà ad un ricevitore client di utilizzare Hbb TV." + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "Opzione per abilitare l'inserimento dei dati ECM negli stream http, così che un ricevitore client li possa decodificare." + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "Opzione per abilitare l'inserimento dei dati EIT negli stream http, così che un ricevitore client possa visualizzare l'EPG." + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "Opzione per abilitare la visualizzazione di un messaggio popup quando la riproduzione di una registrazione ha termine e viene avviata la riproduzione della successiva." + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "Opzione per visualizzare un messaggio popup all'avvio di una registrazione." + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "Opzione per abiltare la visualizzazione di un'immagine di sfondo durante l'ascolto di un canale radio." + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "Opzione per abilitare la priorità delle registrazioni quando non ci sono tuner disponibili." + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "" + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "Opzione per abilitare la numerazione dei canali ripartendo da 1 in ogni bouquet." + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "Opzione per abilitare il ridimensionamento dell'immagine per adeguarsi allo schermo dei contenuti trasmessi con rapporto d'aspetto di 4:3." + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "Opzione per abilitare il passaggio automatico al bouquet successivo quando si raggiunge l'ultimo canale memorizzato nel bouquet corrente." + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "Opzione per abilitare lo spostamento delle registrazioni rimosse nel cestino anzichè eliminarle immediatamente." + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "Opzione per visualizzare nella barra informazioni gli eventi \"In onda/Successivo\" in base a quanto contenuto nei dati EIT. Se disabilitata, verrà usata la cache EPG." + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "Opzione per abilitare la visualizzazione di informazioni sulla codifica nella barra informazioni (se previste nella skin)." + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "Opzione per disabilitare la visualizzazione di messaggi di errore relativi al modulo Common Interface." + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "Opzione per disabilitare la visualizzazione di messaggi di errore relativi allo zapping." + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "" + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "Opzione per abilitare la prevalenza dei sottotitoli DVB grafici su quelli televideo, qualora entrambi fossero disponibili." + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "Opzione per abilitare la centratura orizzontale dei sottotitoli DVB grafici." + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "Opzione per abilitare la visualizzazione dei sottotitoli DVB grafici nella loro posizione originale." + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "Opzione per abilitare la visualizzazione in giallo dei sottotitoli DVB grafici, anziché nel loro colore originale." + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "Opzione per abilitare la decodifica degli stream http sul server. Il client remoto non dovrà effettuare la decodifica." + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "" + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "Opzione per abilitare la misura dell'assorbimento elettrico del rotore per determinare il momento in cui si arresta. (se supportata dal tuner)." + +msgid "When enabled, number markers will be hiden." +msgstr "" + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "Opzione per abilitare il raggruppamento dei canali in bouquet multipli." + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "Opzione per abilitare la visualizzazione del numero del canale nella schermata di selezione canali." + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "Opzione per abilitare l'utilizzo dei sottotitoli per non udenti." + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "Opzione per abilitare la prevalenza dei sottotitoli per non udenti sui sottotitoli normali, qualora entrambi fossero disponibili" + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "Opzione per abilitare la cache delle pagine televideo, consentendo così un accesso più veloce." + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "Opzione per abilitare la visualizzazione dei sottotitoli televideo nella loro posizione originale." + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "Opzione per nascondere l'elenco canali durante l'ascolto di un canale radio." + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "Opzione per abilitare la visualizzazione della barra informazioni all'inizio di un nuovo evento." + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "Opzione per abilitare la visualizzazione della barra informazioni su un cambio di canale." + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "Opzione per abilitare la visualizzazione della barra informazioni su avanzamento/riavvolgimento veloci durante la riproduzione di una registrazione." + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "Opzione per visualizzare nell'elenco la lunghezza di ogni registrazione (potrebbe rallentare le operazioni di caricamento)." + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "Opzione per rimuovere le interruzioni di linea originali nei sottotitoli televideo." + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "Opzione per abilitare il ricevitore a utilizzare automaticamente la traccia audio selezionata tra le opzioni disponibili e associata al canale." + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "Opzione per abilitare il ricevitore a utilizzare automaticamente i sottotitoli selezionati tra le opzioni disponibili e associati al canale." + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "Opzione per disabilitare il monitoraggio di possibili modifiche nel transponder sintonizzato. Utilizzare l'opzione SOLO se si è certi di quello che si sta facendo." + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "Opzione per abilitare l'utilizzo della traccia audio AC3 (se disponibile)." + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "" + +# +msgid "When enabled, use DHCP for the IP configuration." +msgstr "Opzione per abilitare l'uso di DHCP per le impostazioni IP." + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "Opzione per abilitare la rilevazione di attività sull'ingresso SCRT VCR." + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "Opzione per impostare il margine di anticipo con cui far avviare una registrazione, rispetto all'orario di inizio previsto dall'EPG (in minuti). " + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "Opzione per impostare il margine di ritardo con cui far terminare una registrazione, rispetto all'orario di termine previsto dall'EPG (in minuti). " + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "Opzione per impostare la modalità di scaling/stretch dell'immagine per i contenuti trasmessi con un rapporto d'aspetto di 16:9." + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "Opzione per impostare la modalità di scaling/stretch dell'immagine per i contenuti trasmessi con un rapporto d'aspetto di 4:3." + +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"Con il ripristino alla configurazione di fabbrica,\n" +"tutte le configurazioni personalizzate\n" +"(compresi bouquet, canali, dati satelliti...) saranno perdute.\n" +"Dopo il ripristino il ricevitore sarà automaticamente riavviato!\n" +"\n" +"Procedere comunque con il ripristino?" + +# +msgid "Where do you want to backup your settings?" +msgstr "Destinazione backup configurazione:" + +# +msgid "Where to save temporary timeshift recordings?" +msgstr "Cartella salvataggio registrazioni temporanee timeshift" + +# +msgid "Wireless LAN" +msgstr "LAN Wireless" + +# +msgid "Wireless network" +msgstr "Rete wireless" + +msgid "Wireless network configuration..." +msgstr "Configurazione connessione rete wireless." + +msgid "Wireless network connection setup" +msgstr "Configurazione connessione rete wireless" + +msgid "Wireless network connection setup." +msgstr "Configurazione connessione rete wireless." + +msgid "Wireless network state" +msgstr "Stato rete wireless" + +msgid "With popup" +msgstr "" + +msgid "Without popup" +msgstr "" + +msgid "Would you like to install a softcam?" +msgstr "Installare una softcam?" + +# +msgid "Write error while recording. Disk full?\n" +msgstr "Errore di scrittura in registrazione! Disco pieno?\n" + +# +msgid "Write failed!" +msgstr "Scrittura fallita!" + +# +msgid "YPbPr" +msgstr "YPbPr" + +# +msgid "Year" +msgstr "Anno" + +msgid "Yellow DVB subtitles" +msgstr "Sottotitoli DVB gialli" + +# +msgid "Yes" +msgstr "Sì" + +msgid "Yes and save" +msgstr "" + +msgid "Yes and save in movie dir" +msgstr "" + +# +msgid "Yes to all" +msgstr "Sì a tutto" + +msgid "Yes, always" +msgstr "Sì, sempre" + +msgid "Yes, and delete this movie" +msgstr "Sì, e rimuovere questa registrazione" + +# +msgid "Yes, backup my settings!" +msgstr "Sì, eseguire backup configurazione!" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +# +msgid "Yes, do a manual scan now" +msgstr "Sì, fare una ricerca manuale ora" + +# +msgid "Yes, do an automatic scan now" +msgstr "Sì, fare una ricerca automatica ora" + +# +msgid "Yes, do another manual scan now" +msgstr "Sì, fare un'altra ricerca manuale ora" + +# +msgid "Yes, perform a shutdown now." +msgstr "Sì, spegnere ora." + +# +msgid "Yes, restore the settings now" +msgstr "Sì, ripristinare la configurazione" + +# +msgid "Yes, returning to movie list" +msgstr "Sì, tornare all'elenco registrazioni" + +msgid "Yesterday" +msgstr "Ieri" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" +"Un elenco canali risulta già installato.\n" +"Rimuovere\n" +"%s?" + +# +msgid "You can cancel the installation." +msgstr "E' possibile annullare l'installazione." + +# +msgid "You can cancel the removal." +msgstr "E' possibile annullare la rimozione" + +msgid "You can continue watching TV etc. while this is running." +msgstr "Durante l'esecuzione sarà possibile continuare la visione." + +# +msgid "You can install this plugin." +msgstr "E' possibile installare questo plugin." + +msgid "You can only burn receiver recordings!" +msgstr "È possibile masterizzare solo registrazioni del ricevitore." + +# +msgid "You can remove this plugin." +msgstr "E' possibile rimuovere questo plugin." + +msgid "You cannot delete this!" +msgstr "Impossibile rimuovere!" + +msgid "You didn't select a channel to record from." +msgstr "Non è stato selezionato alcun canale da cui registrare." + +# +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "Si è scelto di effettuare un backup configurazione. Premere OK per iniziare ora." + +# +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "La creazione di un nuovo flasher .nfi avviabile su penna USB richiede la riscrittura delle partizioni. Tutti i dati presenti sulla penna saranno cancellati!" + +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "Si è scelto di ripristinare la configurazione. Enigma2 verrà riavviato dopo il ripristino. Premere OK per iniziare ora" + +# +#, python-format +msgid "You have to wait %s!" +msgstr "Occorre attendere per %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" +"È necessario che un PC sia connesso al ricevitori. Se occorressero maggiori istruzioni, visitare il sito http://www.dm7025.de.\n" +"Il DreamBox sarà arrestato, e al termine delle operazioni il nuovo firmware chiederà di ripristinare le configurazioni." + +msgid "You system does not support ext4" +msgstr "Il sistema non supporta ext4" + +# +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "Backup eseguito correttamente! Ora proseguirà il processo di aggiornamento." + +# +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "La Collezione supera la capacità di un disco singolo strato. Sarà necessario utilizzare un DVD vergine doppio strato!" + +msgid "Your current collection will get lost!" +msgstr "La collezione corrente sarà perduta!" + +# +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"Il firmware del frontprocessor deve essere aggiornato.\n" +"OK >> iniziare l'aggiornamento." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Il frontprocessor sarà aggiornato.\n" +"Attendere il riavvio del ricevitore.\n" +"Potrebbero essere necessari alcuni minuti." + +# +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"La connessione a Internet non funziona!\n" +"Selezionare un'opzione per proseguire." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "La connessione internet è attiva (IP: %s)" + +# +msgid "Your network configuration has been activated." +msgstr "Configurazione di rete attivata correttamente." + +msgid "Your receiver does not have an internet connection" +msgstr "Il ricevitore non dispone di una connessione a internet" + +# +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"Il ricevitore è ora pronto per l'uso.\n" +"\n" +"La connessione a Internet è attiva.\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Il ricevitore è pronto per l'uso.\n" +"\n" +"La connessione a Internet è attiva.\n" +"\n" +"Ok >> Continuare" + +msgid "Your receiver is rebooting" +msgstr "Il ricevitore è in fase di riavvio" + +msgid "Your receiver is shutting down" +msgstr "Il ricevitore è in fase di spegnimento" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "Attendere: ricevitore in fase di spegnimento." + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "Il ricevotore ora potrebbe risultare inutilizzabile. Prima di riavviarlo consultare il manuale per ottenete ulteriori istruzioni." + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "" + +msgid "Your receiver will got to standby due to inactivity." +msgstr "" + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "Ok >> riavviare il ricevitore." + +# +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"La connessione a Internet su rete locale wireless non può essere avviata!\n" +"Controllare che la penna WLAN USB sia collegata correttamente.\n" +"\n" +"Selezionare un'opzione per proseguire." + +msgid "Zap" +msgstr "Zap" + +msgid "Zap back to previously tuned service?" +msgstr "Tornare al canale sintonizzato in precedenza?" + +# +msgid "Zap back to service before positioner setup?" +msgstr "" +"Ritornare al canale attivo\n" +"prima della configurazione motore?" + +msgid "Zap back to service before tuner setup?" +msgstr "Ritornare al canale attivo prima della configurazione tuner?" + +msgid "Zap focus to Picture in Picture" +msgstr "Fuoco zap nella PiP" + +msgid "Zap focus to main screen" +msgstr "Fuoco zap nello schermo principale" + +msgid "Zap mode" +msgstr "Modalità zap" + +msgid "Zap to selected channel" +msgstr "Zap al canale selezionato" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "Zap al canale selezionato, o mostrare informazioni dettagliate evento (secondo configurazione)" + +# +msgid "[alternative edit]" +msgstr "[edit alternative]" + +# +msgid "[bouquet edit]" +msgstr "[edit bouquet]" + +# +msgid "[favourite edit]" +msgstr "[edit preferiti]" + +# +msgid "[move mode]" +msgstr "[modalità muovere]" + +msgid "a gui to assign services/providers to common interface modules" +msgstr "Assegnazione canali/provider a moduli common interface tramite GUI" + +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "Assegnazione canali/provider/CAIDs a moduli common interface tramite GUI" + +# +msgid "abort alternatives edit" +msgstr "Annullare edit alternative" + +# +msgid "abort bouquet edit" +msgstr "Annullare edit bouquet" + +# +msgid "abort favourites edit" +msgstr "Annullare edit preferiti" + +# +msgid "about to start" +msgstr "Avvio in corso" + +# +msgid "activate network adapter configuration" +msgstr "Attivare la configurazione interfaccia di rete" + +# +msgid "add alternatives" +msgstr "Aggiungere alternative" + +# +msgid "add bookmark" +msgstr "Agg. contrass." + +# +msgid "add bouquet" +msgstr "Aggiungere bouquet" + +# +msgid "add marker" +msgstr "Aggiungere contrassegno" + +# +msgid "add service to bouquet" +msgstr "Aggiungere canale al bouquet" + +# +msgid "add service to favourites" +msgstr "Aggiungere canale a preferiti" + +msgid "add to parental protection" +msgstr "Aggiungere al controllo parentale" + +msgid "adult movie/drama" +msgstr "Film per adulti/Drammatici" + +# +msgid "advanced" +msgstr "Avanzato" + +msgid "adventure/western/war" +msgstr "Avventura/Western/Guerra" + +msgid "advertisement/shopping" +msgstr "Pubblicità/Shopping" + +msgid "after " +msgstr "" + +# +msgid "alphabetic" +msgstr "Alfabetico" + +msgid "alphabetic reverse" +msgstr "Alfabetico inverso" + +msgid "alternative" +msgstr "" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "Arte/Cultura (generiche, no musica)" + +msgid "arts/culture magazine" +msgstr "Arte/Magazine di cultura" + +msgid "athletics" +msgstr "Atletica" + +# +msgid "audio tracks" +msgstr "Tracce audio" + +# +msgid "auto" +msgstr "Auto" + +# +msgid "automatic" +msgstr "Automatico" + +# +msgid "back" +msgstr "Indietro" + +# +msgid "background image" +msgstr "Immagine di sfondo" + +msgid "ballet" +msgstr "Balletto" + +#, python-format +msgid "bc%s" +msgstr "bc%s" + +# +msgid "better" +msgstr "Migliore" + +# +msgid "black" +msgstr "Nero" + +msgid "black & white" +msgstr "Bianco e nero" + +# +msgid "blacklist" +msgstr "Lista nera" + +# +msgid "blue" +msgstr "Blu" + +msgid "broadcasting/press" +msgstr "Diffusione radio TV/Stampa" + +# +msgid "by date" +msgstr "Per data (crescente)" + +msgid "cartoon/puppets" +msgstr "Cartoni/Pupazzi" + +msgid "center" +msgstr "Centro" + +msgid "centered" +msgstr "" + +msgid "centered, wrapped" +msgstr "" + +# +msgid "chapters" +msgstr "Capitoli" + +msgid "childrens's/youth program (general)" +msgstr "Bambini/Programmi per giovani (generale)" + +# +msgid "circular left" +msgstr "Circolare a sinistra" + +# +msgid "circular right" +msgstr "Circolare a destra" + +msgid "comedy" +msgstr "Commedia" + +# +msgid "complex" +msgstr "Complesso" + +# +msgid "config menu" +msgstr "Menu configurazione" + +# +msgid "confirmed" +msgstr "Confermato" + +# +msgid "connected" +msgstr "Connesso" + +# +msgid "continue" +msgstr "Continuare" + +msgid "cooking" +msgstr "Cucina" + +# +msgid "copy to bouquets" +msgstr "Copiare nei bouquet" + +# +msgid "create directory" +msgstr "Creare cartella" + +#, python-format +msgid "currently installed image: %s" +msgstr "Immagine installata: %s" + +# +msgid "daily" +msgstr "Giornaliero" + +# +msgid "day" +msgstr "Giorno" + +# +msgid "default" +msgstr "Predefinito" + +# +msgid "delete cut" +msgstr "Rimuovere taglio" + +msgid "delete..." +msgstr "" + +msgid "descramble and record ecm" +msgstr "Decodificare e registrare ecm" + +msgid "detective/thriller" +msgstr "Polizieschi/Triller" + +# +msgid "disable" +msgstr "Disabilitare" + +# +msgid "disable move mode" +msgstr "Disabilitare spostamento" + +# +msgid "disabled" +msgstr "Disabilitato" + +# +msgid "disconnected" +msgstr "Disconnesso" + +msgid "discussion/interview/debate" +msgstr "Conferenze/Interviste/Dibattiti" + +# +msgid "do nothing" +msgstr "Non fare nulla" + +msgid "documentary" +msgstr "Documentari" + +msgid "don't descramble, record ecm" +msgstr "Non decodificare, registrare ecm" + +# +msgid "done!" +msgstr "Fatto!" + +msgid "east" +msgstr "Est" + +msgid "economics/social advisory" +msgstr "Economia/Sociale" + +# +msgid "edit alternatives" +msgstr "Edit alternative" + +msgid "education/science/factual topics (general)" +msgstr "Istruzione/Scienza/Vita reale (generale)" + +# +msgid "empty" +msgstr "Vuoto" + +# +msgid "enable" +msgstr "Abilitare" + +# +msgid "enable bouquet edit" +msgstr "Abilitare edit bouquet" + +# +msgid "enable favourite edit" +msgstr "Abilitare edit preferiti" + +# +msgid "enable move mode" +msgstr "Abilitare spostamento" + +# +msgid "enabled" +msgstr "Abilitato" + +# +msgid "end alternatives edit" +msgstr "Fine edit alternative" + +# +msgid "end bouquet edit" +msgstr "Fine edit bouquet" + +# +msgid "end cut here" +msgstr "Fine taglio" + +# +msgid "end favourites edit" +msgstr "Fine edit preferiti" + +msgid "entertainment (10-16 year old)" +msgstr "Intrattenimento (10-16 anni)" + +msgid "entertainment (6-14 year old)" +msgstr "Intrattenimento (6-14 anni)" + +# +msgid "equal to" +msgstr "Uguale a:" + +msgid "equestrian" +msgstr "Ippica" + +# +msgid "exit DVD player or return to file browser" +msgstr "Uscire dal Player DVD e tornare all'elenco file" + +msgid "exit movielist" +msgstr "" + +# +msgid "exit network adapter configuration" +msgstr "Uscire da configurazione interfaccia di rete" + +# +msgid "exit networkadapter setup menu" +msgstr "Uscire da menu configurazione interfaccia di rete" + +msgid "experimental film/video" +msgstr "Film/video sperimentali" + +msgid "false" +msgstr "Falso" + +msgid "fashion" +msgstr "Moda" + +# +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "Formati file (BMP, PNG, JPG, GIF)" + +# +msgid "filename" +msgstr "Nome file" + +msgid "film/cinema" +msgstr "Film/Cinema" + +msgid "fine arts" +msgstr "Belle arti" + +# +msgid "fine-tune your display" +msgstr "Regolazione fine schermo" + +msgid "fitness & health" +msgstr "Fitness & salute" + +# +msgid "flat alphabetic" +msgstr "Alfabetico stretto" + +# +msgid "flat alphabetic reverse" +msgstr "Alfabetico stretto inverso" + +msgid "folk/traditional music" +msgstr "Musica tradizionale/Folk" + +msgid "football/soccer" +msgstr "Football/Calcio" + +msgid "foreign countries/expeditions" +msgstr "Paesi stranieri/Spedizioni" + +# +msgid "forward to the next chapter" +msgstr "Passare al capitolo successivo" + +# +msgid "free" +msgstr "Libero" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "Formazione continua" + +msgid "game show/quiz/contest" +msgstr "Telequiz/Quiz/Gare" + +msgid "gardening" +msgstr "Giardinaggio" + +msgid "go to deep standby" +msgstr "Spegnimento (deep standby)" + +# +msgid "go to standby" +msgstr "Standby" + +msgid "grab this frame as bitmap" +msgstr "Grab dell'mmagine come bitmap" + +# +msgid "green" +msgstr "Verde" + +msgid "handicraft" +msgstr "Artigianato" + +msgid "height" +msgstr "Altezza" + +# +msgid "help..." +msgstr "Aiuto..." + +# +msgid "horizontal" +msgstr "Orizzontale" + +msgid "information/education/school program" +msgstr "Informazione/Educazione/Programmi scolastici" + +# +msgid "init module" +msgstr "Init modulo" + +# +msgid "init modules" +msgstr "Init moduli" + +# +msgid "insert mark here" +msgstr "Inserire contrassegno" + +msgid "invalid type" +msgstr "Tipo non valido" + +msgid "jazz" +msgstr "jazz" + +# +msgid "jump back to the previous title" +msgstr "Tornare al titolo precedente" + +# +msgid "jump forward to the next title" +msgstr "Passare al titolo successivo" + +msgid "languages" +msgstr "Lingue" + +# +msgid "leave movie player..." +msgstr "Uscire da riproduzione registrazioni..." + +# +msgid "left" +msgstr "Sinistro" + +msgid "left, wrapped" +msgstr "" + +msgid "leisure hobbies (general)" +msgstr "Tempo libero (generale)" + +# +msgid "length" +msgstr "Durata" + +msgid "limit ..., aborting !" +msgstr "Limite... Annullamento in corso." + +# +msgid "list style compact" +msgstr "Elenco compatto" + +# +msgid "list style compact with description" +msgstr "Elenco compatto con descrizioni" + +# +msgid "list style default" +msgstr "Elenco standard" + +# +msgid "list style single line" +msgstr "Elenco su singola riga" + +msgid "literature" +msgstr "Letteratura" + +msgid "live broadcast" +msgstr "Trasmissione dal vivo" + +# +msgid "locked" +msgstr "Bloccato" + +# +msgid "loopthrough to" +msgstr "In cascata da:" + +msgid "magazines/reports/documentary" +msgstr "Riviste/Report/Documentari" + +# +msgid "manual" +msgstr "Manuale" + +msgid "martial sports" +msgstr "Arti marziali" + +msgid "medicine/physiology/psychology" +msgstr "Medicina/Fisiologia/Psicologia" + +# +msgid "menu" +msgstr "Menu" + +# +msgid "mins" +msgstr "Min" + +# +msgid "minutes" +msgstr "Minuti" + +# +msgid "month" +msgstr "Mese" + +msgid "motor sport" +msgstr "Sport motoristici" + +msgid "motoring" +msgstr "Motori" + +# +msgid "move down to last entry" +msgstr "Andare all'ultima voce" + +# +msgid "move down to next entry" +msgstr "Andare alla voce successiva" + +# +msgid "move up to first entry" +msgstr "Andare alla prima voce" + +# +msgid "move up to previous entry" +msgstr "Tornare alla voce precedente" + +msgid "movie/drama (general)" +msgstr "Film/Teatro (generale)" + +# +msgid "multinorm" +msgstr "Multistandard" + +msgid "music/ballet/dance (general)" +msgstr "Musica/Balletto/Danza (generale)" + +msgid "musical/opera" +msgstr "Musical/Opera" + +msgid "nature/animals/environment" +msgstr "Natura/Animali/Ambiente" + +# +msgid "never" +msgstr "Mai" + +msgid "new media" +msgstr "Nuovi media" + +msgid "news magazine" +msgstr "Magazine di informazione" + +msgid "news/current affairs (general)" +msgstr "Notizie/Attualità (generale)" + +msgid "news/weather report" +msgstr "Notizie/Meteo" + +# +msgid "no" +msgstr "No" + +# +msgid "no CAId selected" +msgstr "Nessun CAId selezionato!" + +# +msgid "no CI slots found" +msgstr "Nessun slot CI trovato!" + +# +msgid "no module found" +msgstr "Nessun modulo trovato!" + +msgid "no storage devices found" +msgstr "Nessun supporto di memorizzazione disponibile" + +# +msgid "none" +msgstr "Nessuno" + +msgid "normal" +msgstr "Normale" + +msgid "not configured" +msgstr "non configurato" + +# +msgid "not locked" +msgstr "Non bloccato" + +msgid "not supported" +msgstr "Non supportato" + +# +msgid "not used" +msgstr "Non in uso" + +# +msgid "nothing connected" +msgstr "Non collegato" + +# +msgid "of a DUAL layer medium used." +msgstr "di DVD doppio strato utilizzato." + +# +msgid "of a SINGLE layer medium used." +msgstr "di DVD Singolo strato utilizzato." + +# +msgid "off" +msgstr "Off" + +msgid "offset is" +msgstr "L'offset è" + +# +msgid "on" +msgstr "On" + +# +msgid "on READ ONLY medium." +msgstr "su supporto A SOLA LETTURA." + +msgid "on end of movie" +msgstr "" + +# +msgid "once" +msgstr "Una volta" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +# +msgid "open nameserver configuration" +msgstr "Configurazione nameserver" + +msgid "original" +msgstr "Originale" + +msgid "original language" +msgstr "Lingua originale" + +# +msgid "pass" +msgstr "Pass" + +msgid "performing arts" +msgstr "Performing art" + +msgid "play as picture in picture" +msgstr "Riprodurre nella PiP" + +msgid "play in mainwindow" +msgstr "Riprodurre nella finestra principale" + +# +msgid "please press OK when ready" +msgstr "Premere OK quando pronti" + +# +msgid "please wait, loading picture..." +msgstr "Immagine in caricamento, attendere..." + +msgid "popular culture/traditional arts" +msgstr "Cultura popolare/Arte tradizionale" + +msgid "pre-school children's program" +msgstr "Bambini in età prescolare" + +msgid "receiver software because updates are available." +msgstr "il software del ricevitore perchè sono disponibili aggiornamenti." + +# +msgid "record" +msgstr "Registrare" + +# +msgid "recording..." +msgstr "Registrazione..." + +# +msgid "red" +msgstr "Rosso" + +msgid "religion" +msgstr "Religione" + +msgid "remarkable people" +msgstr "Persone straordinarie" + +# +msgid "remove after this position" +msgstr "Rimuovere dopo questa pos." + +# +msgid "remove all alternatives" +msgstr "Rimuovere tutte le alternative" + +# +msgid "remove all new found flags" +msgstr "Rimuovere tutti i nuovi contrassegni trovati" + +# +msgid "remove before this position" +msgstr "Rimuovere prima di questa pos." + +# +msgid "remove bookmark" +msgstr "Rim. contrass." + +# +msgid "remove directory" +msgstr "Rimuovere cartella" + +# +msgid "remove entry" +msgstr "Rimuovere voce" + +msgid "remove from parental protection" +msgstr "Rimuovere dal controllo parentale" + +# +msgid "remove new found flag" +msgstr "Rimuovere nuovo contrassegno trovato" + +# +msgid "remove selected satellite" +msgstr "Rimuovere il satellite selezionato" + +# +msgid "remove this mark" +msgstr "Rimuovere contrassegno" + +msgid "rename entry" +msgstr "" + +msgid "repeat playlist" +msgstr "Ripetere playlist" + +# +msgid "repeated" +msgstr "Ricorrente" + +msgid "reverse by date" +msgstr "Per data (decrescente)" + +# +msgid "rewind to the previous chapter" +msgstr "Tornare al capitolo precedente" + +# +msgid "right" +msgstr "Destro" + +msgid "right, wrapped" +msgstr "" + +msgid "rock/pop" +msgstr "rock/pop" + +msgid "romance" +msgstr "Romanticismo" + +# +msgid "save last directory on exit" +msgstr "In uscita, salvare l'ultima cartella" + +# +msgid "save playlist on exit" +msgstr "In uscita, salvare la playlist" + +# +msgid "scan state" +msgstr "Stato ricerca" + +msgid "science fiction/fantasy/horror" +msgstr "Fantascienza/Fantasy/Horror" + +# +msgid "second cable of motorized LNB" +msgstr "Cavo secondario da LNB motorizzato" + +# +msgid "seconds" +msgstr "Secondi" + +# +msgid "select" +msgstr "Selezionare" + +# +msgid "select CAId's" +msgstr "Selezionare CAId's" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +# +msgid "select menu entry" +msgstr "Selezionare voce menu" + +msgid "select movie" +msgstr "" + +msgid "select the movie path" +msgstr "" + +msgid "serious music/classic music" +msgstr "Musica impegnata/Musica classica" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "Impegnata/Classica/Religiosa/Film storici/Teatro" + +msgid "service PIN" +msgstr "PIN canale" + +msgid "set as startup service" +msgstr "Impostare come canale di avvio" + +msgid "setup PIN" +msgstr "PIN configurazione" + +# +msgid "show DVD main menu" +msgstr "Mostrare il Menu principale DVD" + +msgid "show all tags" +msgstr "Mostrare tutte le etichette" + +# +msgid "show alternatives" +msgstr "Mostrare alternative" + +# +msgid "show event details" +msgstr "Mostrare dettagli evento" + +msgid "show extended description" +msgstr "" + +msgid "show mediaplayer on mainmenu" +msgstr "Mostrare MediaPlayer nel menu principale" + +msgid "show softwaremanager in setup menu" +msgstr "Mostrare SoftwareManager nel menu impostazioni" + +msgid "show softwaremanager on blue button" +msgstr "Mostrare SoftwareManager su pressione tasto Blu" + +msgid "show tag menu" +msgstr "" + +# +msgid "show transponder info" +msgstr "Informazioni transponder" + +msgid "show/game show (general)" +msgstr "Show/Telequiz (generale)" + +msgid "shuffle" +msgstr "Casuale" + +# +msgid "shut down" +msgstr "Spegnimento" + +# +msgid "simple" +msgstr "Semplice" + +# +msgid "skip backward" +msgstr "Skip indietro" + +# +msgid "skip forward" +msgstr "Skip avanti" + +msgid "soap/melodram/folkloric" +msgstr "Soap/Melodrammi/Folclore" + +msgid "social/political issues/economics (general)" +msgstr "Sociale/Politica/Economia (generale)" + +msgid "social/spiritual science" +msgstr "Sociale/Spiritualità" + +msgid "sorting of playlists" +msgstr "Ordinamento playlist" + +msgid "special characters" +msgstr "Caratteri speciali" + +msgid "special events" +msgstr "Eventi particolari" + +msgid "special format data DVD (HDTV compatible)" +msgstr "DVD dati in formato speciale (compatibile HDTV)" + +msgid "sports (general)" +msgstr "Sport (generale)" + +msgid "sports magazine" +msgstr "Magazine di sport" + +# +msgid "standard" +msgstr "Predefinito" + +# +msgid "start cut here" +msgstr "Inizio taglio" + +# +msgid "start directory" +msgstr "Cartella di avvio" + +msgid "stepsize" +msgstr "Passo" + +# +msgid "stereo" +msgstr "Stereo" + +msgid "stop using as startup service" +msgstr "Non Utilizzare più come canale di avvio" + +# +msgid "switch to bookmarks" +msgstr "Passare ai contrassegni" + +# +msgid "switch to filelist" +msgstr "Passare all'elenco file" + +# +msgid "switch to the next angle" +msgstr "Passare all'angolazione successiva" + +# +msgid "switch to the next audio track" +msgstr "Passare alla traccia audio successiva" + +# +msgid "switch to the next subtitle language" +msgstr "Passare alla lingua sottotitoli successiva" + +msgid "talk show" +msgstr "talk show" + +msgid "team sports" +msgstr "Sport di squadra" + +msgid "technology/natural science" +msgstr "Tecnologia/Scienze naturali" + +# +msgid "template file" +msgstr "File modello" + +msgid "tennis/squash" +msgstr "tennis/squash" + +# +msgid "this recording" +msgstr "Questa registrazione" + +msgid "this service is protected by a parental control pin" +msgstr "Canale protetto da codice PIN (controllo parentale)." + +msgid "toggle time, chapter, audio, subtitle info" +msgstr "Info tempo, capitolo, audio, sottotitoli >> on/off" + +msgid "top" +msgstr "Alto" + +msgid "tourism/travel" +msgstr "Viaggi/Turismo" + +msgid "true" +msgstr "Vero" + +# +msgid "unavailable" +msgstr "non disponibile" + +# +msgid "unconfirmed" +msgstr "Non confermato" + +msgid "undefined" +msgstr "Indefinito" + +# +msgid "unknown" +msgstr "Sconosciuto" + +# +msgid "unknown service" +msgstr "Canale sconosciuto" + +msgid "unpublished" +msgstr "Non pubblicato" + +msgid "until standby/restart" +msgstr "Fino allo standby/riavvio" + +# +msgid "user defined" +msgstr "Definito dall'utente" + +msgid "variety show" +msgstr "Varietà" + +# +msgid "vertical" +msgstr "Verticale" + +# +msgid "wait for ci..." +msgstr "Attendere per la CI..." + +# +msgid "wait for mmi..." +msgstr "Attendere per mmi..." + +# +msgid "waiting" +msgstr "In attesa" + +msgid "water sport" +msgstr "Sport acquatici" + +# +msgid "weekly" +msgstr "Settimanale" + +msgid "west" +msgstr "Ovest" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "Bianco" + +# +msgid "whitelist" +msgstr "Lista bianca" + +msgid "width" +msgstr "Larghezza" + +msgid "winter sport" +msgstr "Sport invernali" + +msgid "wireless network interface" +msgstr "Interfaccia di rete wireless" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "mit %d Fehler" +msgstr[1] "mit %d Fehlern" + +# +msgid "working" +msgstr "Test in corso..." + +# +msgid "yellow" +msgstr "Giallo" + +# +msgid "yes" +msgstr "Sì" + +# +msgid "yes (keep feeds)" +msgstr "Sì (mantenere feed)" + +# +msgid "zap" +msgstr "Zap" + +msgid "zap and record" +msgstr "" + +# +msgid "zapped" +msgstr "Zap eseguito" + +# +#~ msgid "AA" +#~ msgstr "AA" + +# +#~ msgid "AB" +#~ msgstr "AB" + +# +#~ msgid "Activate PiP" +#~ msgstr "Attivare PiP" + +# +#~ msgid "Add/remove timer for current event" +#~ msgstr "Aggiungere/Rimuovere timer per evento corrente" + +#~ msgid "Adjust HDMI CEC settings" +#~ msgstr "Regolare le impostazioni CEC HDMI" + +# +#~ msgid "All satellites" +#~ msgstr "Tutti i satelliti" + +# +#~ msgid "BA" +#~ msgstr "BA" + +# +#~ msgid "BB" +#~ msgstr "BB" + +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "Effetto tasto pausa, quando in pausa" + +# +#~ msgid "Committed DiSEqC command" +#~ msgstr "Comando DiSEqC committed" + +#~ msgid "Configure the behavior of the 'pause' key when movie playback is already paused." +#~ msgstr "Opzione per impostare l'effetto del tasto \"Pausa\" quando una riproduzione si trova già in pausa." + +# +#~ msgid "DiSEqC repeats" +#~ msgstr "Ripetizioni DiSEqC" + +#~ msgid "Goto specific data/time" +#~ msgstr "Andare a data/ora specifiche" + +# +#~ msgid "No satellite frontend found!!" +#~ msgstr "Nessun apparato satellitare trovato!!!" + +#~ msgid "Open service list and select next channel" +#~ msgstr "Aprire l'elenco canali e selezionare il canale successivo" + +#~ msgid "Open service list and select previous channel" +#~ msgstr "Aprire l'elenco canali e selezionare il canale precedente" + +#~ msgid "Press '0' to toggle internal/external PiP." +#~ msgstr "0 >> Commutare PiP interna/esterna" + +# +#~ msgid "Remove timer" +#~ msgstr "Rim. timer" + +# +#~ msgid "Send DiSEqC" +#~ msgstr "Inviare DiSEqC" + +# +#~ msgid "Switch next channel" +#~ msgstr "Canale successivo" + +#~ msgid "Tuning step size" +#~ msgstr "Ampiezza passo" + +# +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Comando DiSEqC uncommitted" + +# +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "" +#~ "Ritornare al canale attivo\n" +#~ "prima della ricerca satelliti?" + +#~ msgid "tuner is not supported" +#~ msgstr "Tuner non supportato" diff --git a/po/ku.po b/po/ku.po new file mode 100644 index 0000000..cd122f2 --- /dev/null +++ b/po/ku.po @@ -0,0 +1,8157 @@ +# English translations for enigma2 package. +# Copyright (C) 2012 THE enigma2'S COPYRIGHT HOLDER +# This file is distributed under the same license as the enigma2 package. +# Automatically generated, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: enigma2 Kurdish translation\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2013-04-22 04:29+0330\n" +"Last-Translator: dimili21\n" +"Language-Team: \n" +"Language: en\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-Generator: Poedit 1.5.5\n" +"X-Poedit-Language: Kurdish\n" +"X-Poedit-Country: IRAQ\n" + +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"Ayaré Zéde " + +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"Pay Ok bine bisekin!" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" +"\n" +"yedeka bigre...." + +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"Upgrate ra Eyaran Çékin" + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" +"\n" +"Manage extensions or plugins for your receiver" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" +"\n" +"Zindi Update bikin" + +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"Ji Kumanda pay Ok bisekin." + +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"backup xwu restore bikin" + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" +"\n" +"Risiver restore bikin" + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" +"\n" +"Restore bikin Firmwaré nu ra" + +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"Giradiye mehali bigeri " + +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Select your backup device.\n" +"Current device: " + +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"View, install and remove available or installed packages." + +msgid " (PiP)" +msgstr " (PiP)" + +msgid " (Radio)" +msgstr " (Radio)" + +msgid " (TV)" +msgstr " (TV)" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +msgid " extensions." +msgstr "Diréji" + +msgid " ms" +msgstr " ms" + +msgid " packages selected." +msgstr " paket binirxine" + +msgid " updates available." +msgstr " updates tuneye" + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "%2d:%02d" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "%2d:%02d:%02d" + +msgid "%A %d %B" +msgstr "%A %d %B" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "%A %e %B" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "%A %e %B %Y" + +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "%a %e/%m" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "%a %e/%m %-H:%M" + +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, fuzzy, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "%d services found!" +msgstr[1] "%d services found!" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d hour" +msgstr[1] "%d hours" + +#, fuzzy, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d jobs are running in the background!" +msgstr[1] "%d jobs are running in the background!" + +#, python-format +msgid "%d min" +msgstr "%d deqa" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minute" +msgstr[1] "%d minutes" + +#, python-format +msgid "%d minutes" +msgstr "%d deqan" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d second" +msgstr[1] "%d seconds" + +#, fuzzy, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "Root directory" +msgstr[1] "Root directory" + +#, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "%d wireless network found!" +msgstr[1] "%d wireless networks found!" + +msgid "%d-%b-%Y %-H:%M" +msgstr "%d-%b-%Y %-H:%M" + +msgid "%d-%m" +msgstr "%d-%m" + +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "%k:%M %e/%m" + +#, python-format +msgid "%s %s free disk space" +msgstr "%s %s nav diké da vekiri" + +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "%s is no longer used. Should it be deleted?" + +#, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "%s updated package available" +msgstr[1] "%s updated packages available" + +#, python-format +msgid "%s%d min" +msgstr "" + +#, python-format +msgid "%s/%s: %s" +msgstr "%s/%s: %s" + +msgid "(ZAP)" +msgstr "(KANAL B)IGERI" + +msgid "(empty)" +msgstr "(vala)" + +msgid "(show optional DVD audio menu)" +msgstr "(show optional DVD dengé menu)" + +msgid "* Only available if more than one interface is active." +msgstr "* Only available if more than one interface is active." + +msgid "/s" +msgstr "" + +msgid "0" +msgstr "0" + +msgid "1" +msgstr "1" + +msgid "1.0" +msgstr "1.0" + +msgid "1.1" +msgstr "1.1" + +msgid "1.2" +msgstr "1.2" + +msgid "12V output" +msgstr "12V derve" + +msgid "13 V" +msgstr "13 V" + +msgid "16:10" +msgstr "16:10" + +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +msgid "16:9" +msgstr "16:9" + +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +msgid "16:9 always" +msgstr "16:9 daim" + +msgid "18 V" +msgstr "18 V" + +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "" + +msgid "24" +msgstr "" + +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +msgid "3" +msgstr "3" + +msgid "30" +msgstr "" + +msgid "3d mode" +msgstr "3d mode" + +msgid "4" +msgstr "4" + +msgid "4:3" +msgstr "4:3" + +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +msgid "5" +msgstr "5" + +msgid "6" +msgstr "6" + +msgid "7" +msgstr "7" + +msgid "8" +msgstr "8" + +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +msgid "<Current movielist location>" +msgstr "<konuma listekén filma>" + +msgid "<Default movie location>" +msgstr "<Default Nava Filma>" + +msgid "<Last timer location>" +msgstr "<Last timer location>" + +msgid "<unknown>" +msgstr "<unknown>" + +msgid "??" +msgstr "??" + +msgid "A" +msgstr "A" + +#, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" + +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" + +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "A graphical EPG for all services of an specific bouquet" + +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"A record has been started:\n" +"%s" + +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"A recording is currently running.\n" +"What do you want to do?" + +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "A recording is currently running. Please stop the recording before trying to configure the positioner." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "A recording is currently running. Please stop the recording before trying to scan." + +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "A recording is currently running. Please stop the recording before trying to start the satfinder." + +#, python-format +msgid "A required tool (%s) was not found." +msgstr "A required tool (%s) was not found." + +msgid "A search for available updates is currently in progress." +msgstr "A search for available updates is currently in progress." + +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" + +msgid "A small overview of the available icon states and actions." +msgstr "A small overview of the available icon states and actions." + +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"A timer failed to record!\n" +"Disable TV and try again?\n" + +msgid "A/V settings" +msgstr "A/V Çékirin" + +msgid "AC3/DTS downmix" +msgstr "AC3/DTS downmix" + +msgid "Abort" +msgstr "Bettal Bike" + +msgid "About" +msgstr "Heqé wi" + +msgid "About..." +msgstr "Heqé wi..." + +msgid "Accesspoint:" +msgstr "Bigehize (Access Point):" + +msgid "Action on long powerbutton press" +msgstr "Diréj pay Qumanda Girtin bike." + +msgid "Action on short powerbutton press" +msgstr "Hédi Pay Qumanda Girtin bike" + +msgid "Activate Picture in Picture" +msgstr "Aktif bike resm o resm" + +msgid "Activate current configuration" +msgstr "Ti dixwazi aktif biki" + +msgid "Activate network settings" +msgstr "Eyare Networké Aktif bike" + +msgid "Activate the configured network settings." +msgstr "Actif bike eyaré networké.." + +msgid "Adapter settings" +msgstr "Adaptör Çéki" + +msgid "Add" +msgstr "Çéki lé giréde" + +msgid "Add Bookmark" +msgstr "" + +msgid "Add a mark" +msgstr "Ä°ÅŸareté léki" + +msgid "Add a nameserver entry" +msgstr "Yek Navé nu léke" + +msgid "Add a new title" +msgstr "Navé Seroki" + +msgid "Add bookmark" +msgstr "Léke bookmark" + +msgid "Add directory to playlist" +msgstr "Listeya Xebatéra dosya léke" + +msgid "Add file to playlist" +msgstr "Listeya Xebatéra dosya léke" + +msgid "Add files to playlist" +msgstr "Listeya Xebatéra dosya léke" + +msgid "Add more details to the crash log" +msgstr "Add more details to the crash log" + +msgid "Add provider" +msgstr "Add provider" + +msgid "Add recording (enter recording duration)" +msgstr "Add recording (enter recording duration)" + +msgid "Add recording (enter recording endtime)" +msgstr "Add recording (enter recording endtime)" + +msgid "Add recording (indefinitely)" +msgstr "Add recording (indefinitely)" + +msgid "Add recording (stop after current event)" +msgstr "Add recording (stop after current event)" + +msgid "Add service" +msgstr "Hizmeté Nu girédi" + +msgid "Add timer" +msgstr "Add timer" + +msgid "Add title" +msgstr "Add title" + +msgid "Add to bouquet" +msgstr "bouqueta nu girédi" + +msgid "Add to favourites" +msgstr "Favoriye Nu Girédi" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "Adjust 3D settings" + +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." + +msgid "Advanced" +msgstr "" + +msgid "Advanced options" +msgstr "Seçeneké Zéde" + +msgid "Advanced restore" +msgstr "Advanced restore" + +msgid "Advanced software" +msgstr "Firmwaré Zéde" + +msgid "Advanced software plugin" +msgstr "Firmwaré Zéde Girédin" + +msgid "Advanced video enhancement setup" +msgstr "Video Eyaré zéde çékin" + +msgid "Advanced video setup" +msgstr "Zéde Video Eyar bikin" + +msgid "After event" +msgstr "After event" + +msgid "Album" +msgstr "Album" + +msgid "Alignment of events" +msgstr "" + +msgid "Alignment of service names" +msgstr "" + +msgid "All" +msgstr "Temami" + +msgid "All ages" +msgstr "Hemu Kes" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "Biqetinin" + +msgid "Allocate unused memory index" +msgstr "Allocate unused memory index" + +msgid "Allow quit movieplayer with exit" +msgstr "" + +msgid "Allow subtitle language to equal audio language" +msgstr "Allow subtitle language to equal audio language" + +msgid "Allow subtitles for hearing impaired" +msgstr "Allow subtitles for hearing impaired" + +msgid "Alpha" +msgstr "Alpha" + +msgid "Alternative" +msgstr "Evé din" + +msgid "Alternative numbering mode" +msgstr "Evé din numara" + +msgid "Alternative services tuner priority" +msgstr "Alternative services tuner priority" + +msgid "Always ask" +msgstr "Always ask" + +msgid "Always hide infobar" +msgstr "" + +msgid "An empty filename is illegal." +msgstr "An empty filename is illegal." + +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "An error occurred while downloading the packetlist. Please try again." + +msgid "An unknown error occurred!" +msgstr "An unknown error occurred!" + +msgid "And will put your receiver in standby over " +msgstr "" + +msgid "Any activity" +msgstr "Any activity" + +msgid "Arabic" +msgstr "Arabi" + +msgid "Are you sure to remove this entry?" +msgstr "" + +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"Are you sure you want to activate this network configuration?\n" +"\n" + +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"Are you sure you want to delete\n" +"the following backup:\n" + +msgid "Are you sure you want to exit this wizard?" +msgstr "Are you sure you want to exit this wizard?" + +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"Are you sure you want to restart your network interfaces?\n" +"\n" + +#, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" + +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" + +msgid "Artist" +msgstr "Artist" + +msgid "Arts/Culture" +msgstr "Sanat u Kultur" + +msgid "Ask user" +msgstr "Xebatkar Pirski" + +msgid "Aspect ratio" +msgstr "Aspect ratio" + +msgid "Assigned CAIds:" +msgstr "Assigned CAIds:" + +msgid "Assigned services/provider:" +msgstr "Assigned services/provider:" + +msgid "At beginning" +msgstr "At beginning" + +msgid "At end" +msgstr "At end" + +msgid "Audio" +msgstr "Deng" + +msgid "Audio PID" +msgstr "Deng PID" + +msgid "Audio language selection 1" +msgstr "Dengé ziman 1" + +msgid "Audio language selection 2" +msgstr "Dengé ziman 2" + +msgid "Audio language selection 3" +msgstr "Dengé ziman 3" + +msgid "Audio language selection 4" +msgstr "Dengé ziman 4" + +msgid "Audio options..." +msgstr "Eyaré deng..." + +#, python-format +msgid "Audio track (%s) format" +msgstr "Deng track (%s) format" + +#, python-format +msgid "Audio track (%s) language" +msgstr "Deng track (%s) language" + +msgid "Author: " +msgstr "Niviskar: " + +msgid "Authoring mode" +msgstr "modé Nivisi" + +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Auto" + +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Auto chapter split every ? minutes (0=never)" + +msgid "Auto flesh" +msgstr "Auto flesh" + +msgid "Auto focus" +msgstr "Auto focus" + +msgid "Auto focus commencing ..." +msgstr "Auto netkirin ..." + +msgid "Auto language selection" +msgstr "Auto Ziman Çékirin" + +msgid "Auto scart switching" +msgstr "Auto scart switching" + +msgid "Automatic" +msgstr "Serbuxwe" + +msgid "Automatic scan" +msgstr "Automatic Légerin" + +msgid "Automatically start timeshift after" +msgstr "" + +msgid "Automatically turn on external subtitles" +msgstr "" + +msgid "Available format variables" +msgstr "Available format variables" + +msgid "B" +msgstr "B" + +msgid "BER" +msgstr "BER" + +msgid "BER:" +msgstr "BER:" + +msgid "Back" +msgstr "PaÅŸ" + +msgid "Background" +msgstr "PaÅŸ Reng" + +msgid "Background color" +msgstr "Rengé PaÅŸi" + +msgid "Background delete option" +msgstr "Rengé paÅŸi paqiÅŸki" + +msgid "Background delete speed" +msgstr "Zu paqiÅŸki" + +msgid "Backup completed." +msgstr "Temami Backup " + +msgid "Backup failed." +msgstr "Backup failed." + +msgid "Backup is running..." +msgstr "Backup bixebtine" + +msgid "Backup system settings" +msgstr "Eyari Backup system" + +msgid "Band" +msgstr "Band" + +msgid "Bandwidth" +msgstr "Frehiya Band" + +msgid "Basque" +msgstr "Basque" + +msgid "Begin time" +msgstr "zeman dest pédike" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +msgid "Behavior of 0 key in PiP-mode" +msgstr "Behavior of 0 key in PiP-mode" + +msgid "Behavior when a movie is started" +msgstr "Behavior when a movie is started" + +msgid "Behavior when a movie is stopped" +msgstr "Behavior when a movie is stopped" + +msgid "Behavior when a movie reaches the end" +msgstr "Behavior when a movie reaches the end" + +msgid "Big PiP" +msgstr "" + +msgid "Bitrate:" +msgstr "Zu leziya Bit:" + +msgid "Black screen" +msgstr "Ekrana ReÅŸ" + +msgid "Black screen till locked" +msgstr "Ekrana reÅŸ kilitke" + +msgid "Block noise reduction" +msgstr "Dengé zéde kémke" + +msgid "Blue boost" +msgstr "PiÅŸgiriya mawi" + +msgid "Bookmarks" +msgstr "Bookmarks" + +msgid "Brightness" +msgstr "Ronahi" + +msgid "Bulgarian" +msgstr "Bulgari" + +msgid "Burn DVD" +msgstr "BiÅŸewiti DVD" + +#, python-format +msgid "Burn audio track (%s)" +msgstr "biÅŸewiti deng temaÅŸe (%s)" + +msgid "Burn existing image to DVD" +msgstr "Burn existing image to DVD" + +msgid "Burn to DVD" +msgstr "Burn to DVD" + +msgid "Bus: " +msgstr "Bus: " + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." + +msgid "C" +msgstr "C" + +msgid "C-Band" +msgstr "C-Band" + +msgid "CH" +msgstr "" + +msgid "CI assignment" +msgstr "CI assignment" + +msgid "CVBS" +msgstr "CVBS" + +msgid "Cable" +msgstr "Qablo" + +msgid "Cable Scan" +msgstr "Cable Légerin" + +msgid "Cache thumbnails" +msgstr "Aqilé piçuk" + +msgid "Calculate" +msgstr "hesab bike" + +msgid "Calculate all positions" +msgstr "Her daim hesab bike" + +msgid "Calculation complete" +msgstr "Temami Hesapki" + +msgid "Calibrate" +msgstr "Eyari bike" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "" + +msgid "Cancel" +msgstr "Berdi" + +msgid "Cannot determine" +msgstr "TiÅŸt çé nebu" + +msgid "Cannot find any signal ..., aborting !" +msgstr "Heta Neha min Sinyal Nedi... Bettal ki!" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "Kutuya Çöp ti nikani valaki" + +msgid "Cannot move to trash can" +msgstr "Cannot move to trash can" + +msgid "Capacity: " +msgstr "Capacity: " + +msgid "Card" +msgstr "Card" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "Center DVB subtitles" + +msgid "Center time-labels and remove date" +msgstr "" + +msgid "Change bouquets in quickzap" +msgstr "Zu Buketa çédki" + +msgid "Change pin code" +msgstr "Kodé pin bedilni" + +msgid "Change recording (duration)" +msgstr "Qeydi bedilni" + +msgid "Change recording (endtime)" +msgstr "Change recording (endtime)" + +msgid "Change repeat and delay settings?" +msgstr "Change repeat and delay settings?" + +msgid "Change service PIN" +msgstr "Kodé Hizmeté PIN" + +msgid "Change service PINs" +msgstr "Kodé Hizmeté PIN" + +msgid "Change setup PIN" +msgstr "Kodé Hizmeté PIN" + +msgid "Change step size" +msgstr "Change step size" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "Tewirna" + +msgid "Channel" +msgstr "Qanal" + +msgid "Channel list type" +msgstr "Qanal Liste " + +msgid "Channel not in services list" +msgstr "Channel not in services list" + +msgid "Channel selection" +msgstr "Channel selection" + +msgid "Channel:" +msgstr "Qenal:" + +msgid "Channellist menu" +msgstr "Menu Qenal Liste" + +msgid "Chap." +msgstr "Mirov" + +msgid "Chapter" +msgstr "Chapter" + +msgid "Chapter:" +msgstr "Chapter:" + +msgid "Check" +msgstr "Qontrol" + +msgid "Check the internet connection" +msgstr "Girédayiya Ä°nterneté Qonrol Bike" + +msgid "Check the internet connection again" +msgstr "Disa Qontrola Ä°nternet Bikin" + +msgid "Checking filesystem..." +msgstr "Sistema dosya binéri" + +msgid "Checking the internet connection" +msgstr "Qontrola Ä°nternet" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" + +msgid "Children/Youth" +msgstr "Zaruk/Xort" + +msgid "Choose which tuner to configure." +msgstr "Çékirina Tuner Binirxine" + +msgid "Circular left" +msgstr "Çepa daira" + +msgid "Circular right" +msgstr "RaÅŸtiya daira" + +msgid "Cleanup" +msgstr "PaqiÅŸi" + +msgid "Clear" +msgstr "PaqiÅŸ" + +msgid "Clear before scan" +msgstr "PaqiÅŸi paÅŸ légerin" + +msgid "Clear fixed" +msgstr "Clear fixed" + +msgid "Clear log" +msgstr "Clear log" + +msgid "Clear playlist" +msgstr "Clear playlist" + +msgid "Close" +msgstr "Veqeti" + +msgid "Close PiP on exit" +msgstr "" + +msgid "Close title selection" +msgstr "Close title selection" + +msgid "Code rate HP" +msgstr "Code rate HP" + +msgid "Code rate LP" +msgstr "Code rate LP" + +msgid "Coderate HP" +msgstr "Coderate HP" + +msgid "Coderate LP" +msgstr "Coderate LP" + +msgid "Collection name" +msgstr "Nav Koleksiyon" + +msgid "Collection settings" +msgstr "Eyara Kolleksiyon" + +msgid "Color format" +msgstr "Formata Renga" + +msgid "Command execution..." +msgstr "Command execution..." + +msgid "Command order" +msgstr "Command order" + +msgid "Common Interface" +msgstr "Qerta Ortax" + +msgid "Common Interface assignment" +msgstr "Common Interface assignment" + +msgid "Communication" +msgstr "Hevra Girédayi" + +msgid "Compact flash" +msgstr "Compact flash" + +msgid "Complete" +msgstr "Temami" + +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "Complex (allows mixing audio tracks and aspects)" + +msgid "Composition of the recording filenames" +msgstr "Composition of the recording filenames" + +msgid "Configuration mode" +msgstr "Çékirina Ru" + +#, python-format +msgid "Configuration mode: %s" +msgstr "Configuration mode: %s" + +msgid "Configuration..." +msgstr "Çékirin..." + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "" + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "" + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "Configure for how long the infobar will remain visible after activation." + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." + +msgid "Configure how recording filenames are constructed." +msgstr "Configure how recording filenames are constructed." + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +msgid "Configure interface" +msgstr "Configure interface" + +msgid "Configure nameservers" +msgstr "Configure nameservers" + +msgid "Configure on which devices the background delete option should be used." +msgstr "Configure on which devices the background delete option should be used." + +msgid "Configure remote control type" +msgstr "Configure remote control type" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "Configure the DiSEqC mode for this LNB." + +msgid "Configure the IP address." +msgstr "Configure the IP address." + +msgid "Configure the aspect ratio of the screen." +msgstr "Configure the aspect ratio of the screen." + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "Configure the behavior when movie playback is manually stopped." + +msgid "Configure the behavior when movie playback is started." +msgstr "Configure the behavior when movie playback is started." + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "Configure the behavior when reaching the end of a movie, during movie playback." + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "Configure the brightness level of the front panel display during standby." + +msgid "Configure the brightness level of the front panel display." +msgstr "Configure the brightness level of the front panel display." + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "" + +msgid "Configure the color of the teletext subtitles." +msgstr "Configure the color of the teletext subtitles." + +msgid "Configure the contrast level of the front panel display." +msgstr "Configure the contrast level of the front panel display." + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "" + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "" + +msgid "Configure the first audio language (highest priority)." +msgstr "Configure the first audio language (highest priority)." + +msgid "Configure the first subtitle language (highest priority)." +msgstr "Configure the first subtitle language (highest priority)." + +msgid "Configure the font size of the subtitles." +msgstr "Configure the font size of the subtitles." + +msgid "Configure the fourth audio language." +msgstr "Configure the fourth audio language." + +msgid "Configure the fourth subtitle language." +msgstr "Configure the fourth subtitle language." + +msgid "Configure the function of a long press on the power button." +msgstr "Configure the function of a long press on the power button." + +msgid "Configure the function of a short press on the power button." +msgstr "Configure the function of a short press on the power button." + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "Configure the function of the '0' button do when PIP is active." + +msgid "Configure the gateway." +msgstr "Configure the gateway." + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "Configure the general audio delay of Dolby Digital sound tracks." + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "Configure the general audio delay of stereo sound tracks." + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "Configure the hard disk drive to go to standby after the specified idle time." + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "Configure the horizontal alignment of the subtitles." + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." + +msgid "Configure the latitude of your location." +msgstr "Configure the latitude of your location." + +msgid "Configure the longitude of your location." +msgstr "Configure the longitude of your location." + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." + +msgid "Configure the nameserver (DNS)." +msgstr "Configure the nameserver (DNS)." + +msgid "Configure the netmask." +msgstr "Configure the netmask." + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "Configure the number of days after which items are automaticaly removed from the trash can." + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "Configure the number of days old timers are kept before they are automatically removed from the timer list." + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." + +msgid "Configure the possible fast forward speeds." +msgstr "Configure the possible fast forward speeds." + +msgid "Configure the possible rewind speeds." +msgstr "Configure the possible rewind speeds." + +msgid "Configure the primary EPG language." +msgstr "Configure the primary EPG language." + +msgid "Configure the refresh rate of the screen." +msgstr "Configure the refresh rate of the screen." + +msgid "Configure the screen resolution in PC output mode." +msgstr "Configure the screen resolution in PC output mode." + +msgid "Configure the second audio language." +msgstr "Configure the second audio language." + +msgid "Configure the second subtitle language." +msgstr "Configure the second subtitle language." + +msgid "Configure the secondary EPG language." +msgstr "Configure the secondary EPG language." + +msgid "Configure the sharpness of the video scaling." +msgstr "Configure the sharpness of the video scaling." + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "Configure the skip time interval for the '1'/'3' buttons." + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "Configure the skip time interval for the '4'/'6' buttons." + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "Configure the skip time interval for the '7'/'9' buttons." + +msgid "Configure the slow motion speeds." +msgstr "Configure the slow motion speeds." + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "Configure the subtitle delay when timing information is not available." + +msgid "Configure the third audio language." +msgstr "Configure the third audio language." + +msgid "Configure the third subtitle language." +msgstr "Configure the third subtitle language." + +msgid "Configure the transparency of the OSD." +msgstr "Configure the transparency of the OSD." + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "Configure the transparency of the black background of graphical DVB subtitles." + +msgid "Configure the tuner mode." +msgstr "Configure the tuner mode." + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "Configure the type of status indication icons shown in the movielist." + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "Configure the vertical position of the subtitles, measured from the bottom of the screen." + +msgid "Configure the video output mode (or resolution)." +msgstr "Configure the video output mode (or resolution)." + +msgid "Configure the way in which the receiver changes channels." +msgstr "Configure the way in which the receiver changes channels." + +msgid "Configure where completed timers show up in the timer list." +msgstr "Configure where completed timers show up in the timer list." + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "Configure whether multi channel sound tracks should be downmixed to stereo." + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "Configure whether or not an icon should be shown when your motorized dish is moving." + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "Configure which access level to use for the configuration menu. Expert level gives access to all items." + +msgid "Configure which color format should be used on the SCART output." +msgstr "Configure which color format should be used on the SCART output." + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "Configure which tuner type will be preferred, when the same service is available on different types of tuners." + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." + +msgid "Configure your internal LAN" +msgstr "Configure your internal LAN" + +msgid "Configure your network again" +msgstr "Configure your network again" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "Configure your network settings, and press OK to start the scan" + +msgid "Configure your wireless LAN again" +msgstr "Configure your wireless LAN again" + +msgid "Configures which video output connector will be used." +msgstr "Configures which video output connector will be used." + +msgid "Configuring" +msgstr "Configuring" + +msgid "Conflicting timer" +msgstr "Conflicting timer" + +msgid "Connect" +msgstr "Giréda" + +msgid "Connect to a wireless network" +msgstr "Girédibi wireless network" + +msgid "Connected satellites" +msgstr "" + +msgid "Connected to" +msgstr "Girédi " + +msgid "Connected!" +msgstr "Girédya!" + +msgid "Constellation" +msgstr "Constellation" + +msgid "Content does not fit on DVD!" +msgstr "Content does not fit on DVD!" + +msgid "Continue" +msgstr "Dowmke" + +msgid "Continue in background" +msgstr "Continue in background" + +msgid "Continue playback" +msgstr "Continue playback" + +msgid "Continue playing" +msgstr "Continue playing" + +msgid "Continues play (loop)" +msgstr "Continues play (loop)" + +msgid "Contrast" +msgstr "Contrast" + +msgid "Convert ext3 filesystem to ext4" +msgstr "Convert ext3 filesystem to ext4" + +msgid "Convert ext3 to ext4" +msgstr "Convert ext3 to ext4" + +msgid "Converting ext3 to ext4..." +msgstr "Converting ext3 to ext4..." + +msgid "Copy" +msgstr "Copy" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "Could not connect to receiver .NFI image feed server:" + +msgid "Could not find installed channel list." +msgstr "Could not find installed channel list." + +msgid "Could not load medium! No disc inserted?" +msgstr "Could not load medium! No disc inserted?" + +msgid "Could not open Picture in Picture" +msgstr "Could not open Picture in Picture" + +#, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "Could not record due to conflicting timer %s" + +#, python-format +msgid "Could not record due to invalid service %s" +msgstr "Could not record due to invalid service %s" + +msgid "Create DVD-ISO" +msgstr "Create DVD-ISO" + +msgid "Create more detailed crash log" +msgstr "Create more detailed crash log" + +#, python-format +msgid "Creating directory %s failed." +msgstr "Creating directory %s failed." + +msgid "Creating filesystem" +msgstr "Creating filesystem" + +msgid "Creating partition" +msgstr "Creating partition" + +msgid "Croatian" +msgstr "Xitwat" + +msgid "Current CEC address" +msgstr "Current CEC address" + +msgid "Current device: " +msgstr "Current device: " + +msgid "Current event EPG" +msgstr "Current event EPG" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +msgid "Current settings:" +msgstr "Current settings:" + +msgid "Current transponder" +msgstr "Current transponder" + +msgid "Current value: " +msgstr "Current value: " + +msgid "Current version:" +msgstr "Current version:" + +msgid "Currently installed image" +msgstr "Currently installed image" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +msgid "Custom skip time for '1'/'3' buttons" +msgstr "Custom skip time for '1'/'3' buttons" + +msgid "Custom skip time for '4'/'6' buttons" +msgstr "Custom skip time for '4'/'6' buttons" + +msgid "Custom skip time for '7'/'9' buttons" +msgstr "Custom skip time for '7'/'9' buttons" + +msgid "Customize" +msgstr "Weki Xwu Çéki" + +msgid "Customize channel list cursor behavior" +msgstr "" + +msgid "Cut" +msgstr "Cut" + +msgid "Cutlist editor..." +msgstr "Cutlist editor..." + +msgid "Czech" +msgstr "Czech" + +msgid "D" +msgstr "D" + +msgid "DHCP" +msgstr "DHCP" + +msgid "DMM advanced" +msgstr "DMM advanced" + +msgid "DMM normal" +msgstr "DMM normal" + +msgid "DUAL LAYER DVD" +msgstr "DUAL LAYER DVD" + +msgid "DVB subtitle black transparency" +msgstr "DVB subtitle black transparency" + +msgid "DVB-C" +msgstr "DVB-C" + +msgid "DVB-C ANNEX C" +msgstr "DVB-C ANNEX C" + +msgid "DVB-S" +msgstr "DVB-S" + +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "DVB-T" + +msgid "DVB-T2" +msgstr "DVB-T2" + +msgid "DVD data format" +msgstr "DVD data format" + +msgid "DVD file browser" +msgstr "DVD file browser" + +msgid "DVD media toolbox" +msgstr "DVD media toolbox" + +msgid "DVD player" +msgstr "DVD player" + +msgid "DVD titlelist" +msgstr "DVD titlelist" + +msgid "Danish" +msgstr "Danish" + +msgid "Date" +msgstr "Dirok" + +msgid "Date/time input" +msgstr "Date/time input" + +msgid "Deep standby" +msgstr "Deep standby" + +msgid "Default" +msgstr "Default" + +msgid "Default movie location" +msgstr "Default movie location" + +msgid "Default settings" +msgstr "Default settings" + +msgid "Delay before key repeat starts:" +msgstr "Delay before key repeat starts:" + +msgid "Delay for external subtitles" +msgstr "" + +msgid "Delete" +msgstr "PaqiÅŸ" + +msgid "Delete entry" +msgstr "Delete entry" + +msgid "Delete failed!" +msgstr "Delete failed!" + +msgid "Delete file" +msgstr "Delete file" + +msgid "Delete playlist entry" +msgstr "Delete playlist entry" + +msgid "Delete saved playlist" +msgstr "Delete saved playlist" + +msgid "Delete timer" +msgstr "" + +msgid "Delete..." +msgstr "PaqiÅŸ...." + +msgid "Deleted" +msgstr "PaqiÅŸi" + +msgid "Deleted items" +msgstr "Deleted items" + +msgid "Depth" +msgstr "Depth" + +msgid "Descramble http streams" +msgstr "Descramble http streams" + +msgid "Description" +msgstr "Description" + +msgid "Deselect" +msgstr "Deselect" + +msgid "Details for plugin: " +msgstr "Details for plugin: " + +msgid "Detected HDD:" +msgstr "Detected HDD:" + +msgid "Detected NIMs:" +msgstr "Detected NIMs:" + +msgid "Devicename:" +msgstr "Devicename:" + +msgid "Devide" +msgstr "" + +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +msgid "DiSEqC mode" +msgstr "DiSEqC mode" + +#, python-format +msgid "DiSEqC port %s: %s" +msgstr "DiSEqC port %s: %s" + +msgid "DiSEqC-tester settings" +msgstr "DiSEqC-tester settings" + +msgid "Dialing:" +msgstr "Dialing:" + +msgid "Digital contour removal" +msgstr "Digital contour removal" + +msgid "Direct playback of linked titles without menu" +msgstr "Direct playback of linked titles without menu" + +msgid "Directory" +msgstr "Directory" + +#, python-format +msgid "Directory %s does not exist." +msgstr "Directory %s does not exist." + +#, python-format +msgid "Directory %s nonexistent." +msgstr "" + +msgid "Directory browser" +msgstr "Directory browser" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "" + +#, fuzzy, python-format +msgid "Directory contains %s and %s." +msgstr "Directory contains %d file(s) and %d sub-directories.\n" + +msgid "Disable" +msgstr "Disable" + +msgid "Disable Picture in Picture" +msgstr "Disable Picture in Picture" + +msgid "Disable background scanning" +msgstr "Disable background scanning" + +msgid "Disable timer" +msgstr "Disable timer" + +msgid "Disabled" +msgstr "Disabled" + +msgid "Disconnect" +msgstr "Veqetya" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "Disk space to reserve for recordings (in GB)" + +msgid "Display 16:9 content as" +msgstr "Display 16:9 content as" + +msgid "Display 4:3 content as" +msgstr "Display 4:3 content as" + +msgid "Display >16:9 content as" +msgstr "Display >16:9 content as" + +msgid "Display and userinterface" +msgstr "Display and userinterface" + +msgid "Display message before playing next movie" +msgstr "Display message before playing next movie" + +msgid "Display setup" +msgstr "Çékirina Roniya Ekran" + +msgid "Do not change" +msgstr "Do not change" + +msgid "Do not record" +msgstr "Do not record" + +msgid "Do nothing" +msgstr "Do nothing" + +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" + +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Do you really want to delete %s?" + +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"Do you really want to download\n" +"the plugin \"%s\"?" + +msgid "Do you really want to exit?" +msgstr "Do you really want to exit?" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" + +#, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"Do you really want to remove\n" +"the plugin \"%s\"?" + +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Do you really want to remove directory %s from the disk?" + +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Do you really want to remove your bookmark of %s?" + +msgid "Do you want this?" +msgstr "" + +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Do you want to burn this collection to DVD medium?" + +msgid "Do you want to do a service scan?" +msgstr "Do you want to do a service scan?" + +msgid "Do you want to do another manual service scan?" +msgstr "Do you want to do another manual service scan?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "Do you want to download the image to %s ?" + +msgid "Do you want to install a channel list?" +msgstr "Do you want to install a channel list?" + +msgid "Do you want to install the package:\n" +msgstr "Do you want to install the package:\n" + +msgid "Do you want to play DVD in drive?" +msgstr "Do you want to play DVD in drive?" + +msgid "Do you want to preview this DVD before burning?" +msgstr "Do you want to preview this DVD before burning?" + +msgid "Do you want to reboot your receiver?" +msgstr "Do you want to reboot your receiver?" + +msgid "Do you want to remove the package:\n" +msgstr "Do you want to remove the package:\n" + +msgid "Do you want to restore your settings?" +msgstr "Do you want to restore your settings?" + +msgid "Do you want to resume this playback?" +msgstr "Do you want to resume this playback?" + +#, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Do you want to update your receiver to %s?" + +msgid "Do you want to update your receiver?" +msgstr "Do you want to update your receiver?" + +msgid "Do you want to upgrade the package:\n" +msgstr "Do you want to upgrade the package:\n" + +msgid "Don't stop current event but disable coming events" +msgstr "Don't stop current event but disable coming events" + +#, fuzzy, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "Done - Installed, upgraded or removed %d packages with %d errors" +msgstr[1] "Done - Installed, upgraded or removed %d packages with %d errors" + +msgid "Download" +msgstr "Dayni" + +#, python-format +msgid "Download %s from server" +msgstr "Download %s from server" + +msgid "Download .NFI-files for USB-flasher" +msgstr "Download .NFI-files for USB-flasher" + +msgid "Download plugins" +msgstr "Dayni Girédayi" + +msgid "Downloadable new plugins" +msgstr "Dayni Girédayiyé nu" + +msgid "Downloadable plugins" +msgstr "Downloadable plugins" + +msgid "Downloading" +msgstr "Girédya" + +msgid "Downloading plugin information. Please wait..." +msgstr "Girédayi ti daxirstin..." + +msgid "Dutch" +msgstr "Xolanda" + +msgid "Dynamic contrast" +msgstr "Dynamic contrast" + +msgid "E" +msgstr "E" + +msgid "EPG" +msgstr "EPG" + +msgid "EPG language selection 1" +msgstr "EPG ziman 1" + +msgid "EPG language selection 2" +msgstr "EPG ziman2" + +msgid "EPG selection" +msgstr "EPG selection" + +msgid "EPG settings" +msgstr "EPG Çékirin" + +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "ERROR - failed to scan (%s)!" + +msgid "East" +msgstr "East" + +msgid "East limit set" +msgstr "East limit set" + +msgid "Edit" +msgstr "Edit" + +msgid "Edit DNS" +msgstr "Edit DNS" + +msgid "Edit bouquets list" +msgstr "Edit bouquets list" + +msgid "Edit chapters of current title" +msgstr "Edit chapters of current title" + +msgid "Edit services list" +msgstr "Edit services list" + +msgid "Edit settings" +msgstr "Edit settings" + +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "Edit the nameserver configuration of your receiver.\n" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "Edit the network configuration of your receiver.\n" + +msgid "Edit timer" +msgstr "" + +msgid "Edit title" +msgstr "Edit title" + +msgid "Edit upgrade source url." +msgstr "Edit upgrade source url." + +msgid "Education/Science/..." +msgstr "Education/Science/..." + +msgid "Electronic Program Guide" +msgstr "Electronic Program Guide" + +msgid "Enable" +msgstr "Enable" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +msgid "Enable 5V for active antenna" +msgstr "Enable 5V for active antenna" + +msgid "Enable EIT EPG" +msgstr "Enable EIT EPG" + +msgid "Enable MHW EPG" +msgstr "Enable MHW EPG" + +msgid "Enable Netmed EPG" +msgstr "Enable Netmed EPG" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "Enable ViaSat EPG" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +msgid "Enable bouquet selection in multi-EPG" +msgstr "Enable bouquet selection in multi-EPG" + +msgid "Enable freesat EPG" +msgstr "Enable freesat EPG" + +msgid "Enable multiple bouquets" +msgstr "Enable multiple bouquets" + +msgid "Enable parental control" +msgstr "Enable parental control" + +msgid "Enable teletext caching" +msgstr "Enable teletext caching" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +msgid "Enabled" +msgstr "Enabled" + +msgid "Encrypted: " +msgstr "Encrypted: " + +msgid "Encryption" +msgstr "Encryption" + +msgid "Encryption key" +msgstr "Encryption key" + +msgid "Encryption key type" +msgstr "Encryption key type" + +msgid "Encryption:" +msgstr "Encryption:" + +msgid "End time" +msgstr "Vext derbas bu" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +msgid "English" +msgstr "Engiliz" + +msgid "Enigma2 skin selector" +msgstr "Enigma2 skin selector" + +msgid "Enter main menu..." +msgstr "Enter main menu..." + +msgid "Enter pin code" +msgstr "Enter pin code" + +msgid "Enter the service pin" +msgstr "Enter the service pin" + +msgid "Equal to" +msgstr "" + +msgid "Error" +msgstr "Error" + +msgid "Error code" +msgstr "Error code" + +msgid "Error executing plugin" +msgstr "Error executing plugin" + +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Error: %s\n" +"Retry?" + +msgid "Estonian" +msgstr "Estonian" + +msgid "Ethernet network interface" +msgstr "Ethernet network interface" + +msgid "Event font size (relative to skin size)" +msgstr "Event font size (relative to skin size)" + +msgid "Event view" +msgstr "Event view" + +msgid "Event view menu" +msgstr "Event view menu" + +msgid "Everywhere" +msgstr "Everywhere" + +msgid "Exceeds dual layer medium!" +msgstr "Exceeds dual layer medium!" + +msgid "Execution finished!!" +msgstr "Execution finished!!" + +msgid "Execution progress:" +msgstr "Execution progress:" + +msgid "Exif" +msgstr "Exif" + +msgid "Exit" +msgstr "Exit" + +msgid "Exit EPG" +msgstr "Exit EPG" + +msgid "Exit editor" +msgstr "Exit editor" + +msgid "Exit input device selection." +msgstr "Exit input device selection." + +msgid "Exit media player?" +msgstr "" + +msgid "Exit mediaplayer" +msgstr "Exit mediaplayer" + +msgid "Exit movie list" +msgstr "Exit movie list" + +msgid "Exit movie player?" +msgstr "Exit movie player?" + +msgid "Exit nameserver configuration" +msgstr "Exit nameserver configuration" + +msgid "Exit network interface list" +msgstr "Exit network interface list" + +msgid "Exit network wizard" +msgstr "Exit network wizard" + +msgid "Exit the wizard" +msgstr "Exit the wizard" + +msgid "Expert" +msgstr "Expert" + +msgid "Extend sleeptimer 15 minutes" +msgstr "" + +msgid "Extended Software" +msgstr "Extended Software" + +msgid "Extended Software Plugin" +msgstr "Extended Software Plugin" + +msgid "Extended network setup plugin..." +msgstr "Extended network setup plugin..." + +msgid "Extended setup..." +msgstr "Extended setup..." + +msgid "Extensions" +msgstr "Extensions" + +msgid "Extensions management" +msgstr "Extensions management" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "" + +msgid "Extra motor options" +msgstr "" + +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "FTA" + +msgid "Factory reset" +msgstr "Reseta Fabrikayé " + +msgid "Failed" +msgstr "Failed" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "Failed to write /tmp/positionersetup.log: " + +#, python-format +msgid "Fan %d" +msgstr "Fan %d" + +#, python-format +msgid "Fan %d PWM" +msgstr "Fan %d PWM" + +#, python-format +msgid "Fan %d voltage" +msgstr "Fan %d voltage" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +msgid "Fast" +msgstr "Fast" + +msgid "Fast DiSEqC" +msgstr "Fast DiSEqC" + +msgid "Fast Scan" +msgstr "Lezi Légerin" + +msgid "Fast epoch" +msgstr "Fast epoch" + +msgid "Fast forward speeds" +msgstr "Fast forward speeds" + +msgid "Favourites" +msgstr "Favourites" + +msgid "File appears to be busy.\n" +msgstr "File appears to be busy.\n" + +msgid "Filesystem check" +msgstr "Filesystem check" + +msgid "Final position at" +msgstr "Final position at" + +msgid "Final position at index" +msgstr "Final position at index" + +msgid "Fine movement" +msgstr "Fine movement" + +msgid "Finetune" +msgstr "Finetune" + +msgid "Finished" +msgstr "Finished" + +msgid "Finished configuring your network" +msgstr "Finished configuring your network" + +msgid "Finished restarting your network" +msgstr "Finished restarting your network" + +msgid "Finnish" +msgstr "Finnish" + +msgid "Fixed" +msgstr "Fixed" + +msgid "Flash" +msgstr "Flash" + +msgid "Flashing failed" +msgstr "Flashing failed" + +msgid "Following tasks will be done after you press OK!" +msgstr "Following tasks will be done after you press OK!" + +msgid "Format" +msgstr "Format" + +msgid "Forward volume keys" +msgstr "Forward volume keys" + +msgid "Frame size in full view" +msgstr "Frame size in full view" + +msgid "French" +msgstr "French" + +msgid "Frequency" +msgstr "Frequency" + +msgid "Frequency bands" +msgstr "Frequency bands" + +msgid "Frequency scan step size(khz)" +msgstr "Frequency scan step size(khz)" + +msgid "Frequency steps" +msgstr "Frequency steps" + +msgid "Frequency:" +msgstr "" + +msgid "Fri" +msgstr "Fri" + +msgid "Friday" +msgstr "Ä°n" + +msgid "From :" +msgstr "From :" + +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Frontprocessor version: %d" + +msgid "Full transparency" +msgstr "Full transparency" + +msgid "Fulview resulution" +msgstr "" + +msgid "Function of OK button" +msgstr "Function of OK button" + +msgid "Further Options" +msgstr "" + +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" + +msgid "Gateway" +msgstr "Gateway" + +msgid "General AC3 delay" +msgstr "General AC3 delay" + +msgid "General PCM delay" +msgstr "General PCM delay" + +msgid "Genre" +msgstr "Genre" + +msgid "German" +msgstr "German" + +msgid "Get latest experimental image" +msgstr "Get latest experimental image" + +msgid "Get latest release image" +msgstr "Get latest release image" + +msgid "Getting plugin information. Please wait..." +msgstr "Getting plugin information. Please wait..." + +msgid "Go down the list" +msgstr "Go down the list" + +msgid "Go to first movie or last item" +msgstr "Go to first movie or last item" + +msgid "Go to first movie or top of list" +msgstr "Go to first movie or top of list" + +msgid "Go to first service" +msgstr "Go to first service" + +msgid "Go to last service" +msgstr "Go to last service" + +msgid "Go to next event" +msgstr "Go to next event" + +msgid "Go to next page of service" +msgstr "Go to next page of service" + +msgid "Go to previous event" +msgstr "Go to previous event" + +msgid "Go to previous page of service" +msgstr "Go to previous page of service" + +msgid "Go up the list" +msgstr "Go up the list" + +msgid "Goto" +msgstr "Goto" + +msgid "Goto 0" +msgstr "Goto 0" + +msgid "Goto :" +msgstr "Goto :" + +msgid "Goto X" +msgstr "Goto X" + +msgid "Goto index position" +msgstr "Goto index position" + +msgid "Goto next day of events" +msgstr "" + +msgid "Goto next page of events" +msgstr "Goto next page of events" + +msgid "Goto position" +msgstr "Goto position" + +msgid "Goto previous day of events" +msgstr "" + +msgid "Goto previous page of events" +msgstr "Goto previous page of events" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "GotoX calibration" + +msgid "GraphMultiEpg Settings" +msgstr "GraphMultiEpg Settings" + +msgid "Graphical Multi EPG" +msgstr "Graphical Multi EPG" + +msgid "Greek" +msgstr "Greek" + +msgid "Green boost" +msgstr "Green boost" + +msgid "Guard interval" +msgstr "Guard interval" + +msgid "HD list" +msgstr "HD list" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "Handle standby from TV" + +msgid "Handle wakeup from TV" +msgstr "Handle wakeup from TV" + +msgid "Hard disk" +msgstr "Hard disk" + +msgid "Hard disk setup" +msgstr "Hard disk setup" + +msgid "Hard disk standby after" +msgstr "Hard disk standby after" + +msgid "Harddisk" +msgstr "Harddisk" + +msgid "Hardware: " +msgstr "Hardware: " + +msgid "Hebrew" +msgstr "Hebrew" + +msgid "Helps setting up your dish" +msgstr "" + +msgid "Hidden network" +msgstr "Hidden network" + +msgid "Hide CI messages" +msgstr "Hide CI messages" + +msgid "Hide channel list in radio mode" +msgstr "Hide channel list in radio mode" + +msgid "Hide known extensions" +msgstr "" + +msgid "Hide number markers" +msgstr "" + +msgid "Hide player" +msgstr "Hide player" + +msgid "Hide zap errors" +msgstr "Hide zap errors" + +msgid "Hierarchy info" +msgstr "Hierarchy info" + +msgid "Hierarchy information" +msgstr "Hierarchy information" + +msgid "High bitrate support" +msgstr "High bitrate support" + +msgid "Hold screen" +msgstr "Hold screen" + +msgid "Hold till locked" +msgstr "Hold till locked" + +msgid "Home" +msgstr "Home" + +msgid "Horizontal" +msgstr "Horizontal" + +msgid "Horizontal turning speed" +msgstr "Horizontal turning speed" + +msgid "How many minutes do you want to record?" +msgstr "How many minutes do you want to record?" + +msgid "Hue" +msgstr "Hue" + +msgid "Hungarian" +msgstr "Hungarian" + +msgid "IP address" +msgstr "IP address" + +msgid "ISO file is too large for this filesystem!" +msgstr "ISO file is too large for this filesystem!" + +msgid "ISO path" +msgstr "ISO path" + +msgid "Icons" +msgstr "Icons" + +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." + +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." + +msgid "Image: " +msgstr "Image: " + +msgid "Immediate shutdown" +msgstr "Immediate shutdown" + +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "In order to record a timer, the TV was switched to the recording service!\n" + +msgid "In progress" +msgstr "In progress" + +msgid "Inactivity Sleeptimer" +msgstr "" + +msgid "Include AIT in http streams" +msgstr "Include AIT in http streams" + +msgid "Include ECM in http streams" +msgstr "Include ECM in http streams" + +msgid "Include EIT in http streams" +msgstr "Include EIT in http streams" + +msgid "Incorrect type service for PiP!" +msgstr "" + +msgid "Increased voltage" +msgstr "Increased voltage" + +msgid "Index" +msgstr "Index" + +msgid "Index allocated:" +msgstr "Index allocated:" + +msgid "Info" +msgstr "Info" + +msgid "Info bar" +msgstr "Info bar" + +msgid "Info bar timeout" +msgstr "Info bar timeout" + +msgid "Infobar frontend data source" +msgstr "" + +msgid "Information" +msgstr "Hakké Ä°magéda" + +msgid "Init" +msgstr "Init" + +msgid "Initial fast forward speed" +msgstr "Initial fast forward speed" + +msgid "Initial location in new timers" +msgstr "Initial location in new timers" + +msgid "Initial lock ratio" +msgstr "Initial lock ratio" + +msgid "Initial rewind speed" +msgstr "Initial rewind speed" + +msgid "Initial signal quality" +msgstr "Initial signal quality" + +msgid "Initial signal quality:" +msgstr "Initial signal quality:" + +msgid "Initialization" +msgstr "Initialization" + +msgid "Initialize" +msgstr "Initialize" + +msgid "Initializing storage device..." +msgstr "Initializing storage device..." + +msgid "Input" +msgstr "Input" + +msgid "Input device setup" +msgstr "Input device setup" + +msgid "Input devices" +msgstr "device girédayi" + +msgid "Install" +msgstr "Install" + +msgid "Install a new image with a USB stick" +msgstr "Install a new image with a USB stick" + +msgid "Install a new image with your web browser" +msgstr "Install a new image with your web browser" + +msgid "Install channel list" +msgstr "Install channel list" + +msgid "Install extensions" +msgstr "" + +msgid "Install extensions." +msgstr "Install extensions." + +msgid "Install local extension" +msgstr "Install local extension" + +msgid "Install picons on" +msgstr "Install picons on" + +msgid "Install softcam" +msgstr "Install softcam" + +msgid "Installation has completed." +msgstr "Installation has completed." + +msgid "Installation or removal has completed." +msgstr "Installation or removal has completed." + +msgid "Installing" +msgstr "Installing" + +msgid "Installing software..." +msgstr "Installing software..." + +msgid "Instant recording location" +msgstr "Instant recording location" + +msgid "Instant recording..." +msgstr "Instant recording..." + +msgid "Interface: " +msgstr "Interface: " + +msgid "Intermediate" +msgstr "Intermediate" + +msgid "Internal flash" +msgstr "Internal flash" + +msgid "Internal hdd only" +msgstr "Internal hdd only" + +msgid "Interval between keys when repeating:" +msgstr "Interval between keys when repeating:" + +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Invalid directory selected: %s" + +msgid "Invalid location" +msgstr "Invalid location" + +msgid "Invalid transponder data" +msgstr "" + +msgid "Inversion" +msgstr "Inversion" + +msgid "Invert" +msgstr "Invert" + +msgid "Ipkg" +msgstr "Ipkg" + +msgid "Is this setting ok?" +msgstr "Is this setting ok?" + +msgid "Is this video mode ok?" +msgstr "Is this video mode ok?" + +msgid "Italian" +msgstr "Italian" + +msgid "Items per page " +msgstr "Items per page " + +msgid "Items per page for list screen" +msgstr "Items per page for list screen" + +msgid "Job overview" +msgstr "Job overview" + +msgid "Jump to beginning of list" +msgstr "Jump to beginning of list" + +msgid "Jump to end of list" +msgstr "Jump to end of list" + +msgid "Jump to next marked position" +msgstr "Jump to next marked position" + +msgid "Jump to previous marked position" +msgstr "Jump to previous marked position" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +msgid "Just scale" +msgstr "Just scale" + +msgid "Keep service" +msgstr "" + +msgid "Kernel version: " +msgstr "Kernel version: " + +msgid "Keyboard" +msgstr "Keyboard" + +msgid "Keyboard map" +msgstr "Keyboard map" + +msgid "Keyboard setup" +msgstr "Keyboard setup" + +msgid "LAN adapter" +msgstr "LAN adapter" + +msgid "LAN connection" +msgstr "LAN connection" + +msgid "LNB" +msgstr "LNB" + +msgid "Language" +msgstr "Ziman" + +msgid "Language selection" +msgstr "Language selection" + +msgid "Last config" +msgstr "Last config" + +msgid "Last speed" +msgstr "Last speed" + +msgid "Last upgrade: " +msgstr "Last upgrade: " + +msgid "Latest Commits" +msgstr "" + +msgid "Latitude" +msgstr "Latitude" + +msgid "Latvian" +msgstr "Latvian" + +msgid "Leave DVD player?" +msgstr "Leave DVD player?" + +msgid "Left" +msgstr "Left" + +msgid "Left from servicename" +msgstr "" + +msgid "Leisure hobbies" +msgstr "Leisure hobbies" + +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Letterbox" + +msgid "Letterbox zoom" +msgstr "" + +msgid "Limit character set for recording filenames" +msgstr "Limit character set for recording filenames" + +msgid "Limit east" +msgstr "Limit east" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." + +msgid "Limit west" +msgstr "Limit west" + +msgid "Limits cancelled" +msgstr "Limits cancelled" + +msgid "Limits enabled" +msgstr "Limits enabled" + +msgid "Limits off" +msgstr "Limits off" + +msgid "Limits on" +msgstr "Limits on" + +msgid "Link quality:" +msgstr "Link quality:" + +msgid "Link:" +msgstr "Link:" + +msgid "Linked titles with a DVD menu" +msgstr "Linked titles with a DVD menu" + +msgid "List EPG functions..." +msgstr "List EPG functions..." + +msgid "List available networks" +msgstr "List available networks" + +msgid "List mode" +msgstr "List mode" + +msgid "List of storage devices" +msgstr "List of storage devices" + +msgid "List type" +msgstr "List type" + +#, fuzzy, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "List version %d, found %d channels" +msgstr[1] "List version %d, found %d channels" + +msgid "Listen to the radio..." +msgstr "Listen to the radio..." + +msgid "Lists reloaded!" +msgstr "" + +msgid "Lithuanian" +msgstr "Lithuanian" + +msgid "Load" +msgstr "Load" + +msgid "Load Length of Movies in Movielist" +msgstr "" + +msgid "Load length of movies in movie list" +msgstr "Load length of movies in movie list" + +msgid "Load playlist" +msgstr "Load playlist" + +msgid "Local network" +msgstr "Local network" + +msgid "Location" +msgstr "Location" + +msgid "Location for instant recordings" +msgstr "Location for instant recordings" + +msgid "Lock ratio" +msgstr "Lock ratio" + +msgid "Lock:" +msgstr "Lock:" + +msgid "Log results to harddisk" +msgstr "Log results to harddisk" + +msgid "Long filenames" +msgstr "Long filenames" + +msgid "Long key press" +msgstr "Long key press" + +msgid "Longitude" +msgstr "Longitude" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "Luxembourgish" + +msgid "MMC card" +msgstr "MMC card" + +msgid "MORE" +msgstr "MORE" + +msgid "Main menu" +msgstr "Main menu" + +msgid "Maintain old EPG data for" +msgstr "Maintain old EPG data for" + +msgid "Make this mark an 'in' point" +msgstr "Make this mark an 'in' point" + +msgid "Make this mark an 'out' point" +msgstr "Make this mark an 'out' point" + +msgid "Make this mark just a mark" +msgstr "Make this mark just a mark" + +msgid "Manage extensions" +msgstr "Manage extensions" + +msgid "Manage your receiver's software" +msgstr "Manage your receiver's software" + +msgid "Manual" +msgstr "" + +msgid "Manual Scan" +msgstr "Bi dest Légerin" + +msgid "Manual configuration" +msgstr "Manual configuration" + +msgid "Manual scan" +msgstr "Manual scan" + +msgid "Manual transponder" +msgstr "Manual transponder" + +msgid "Manufacturer" +msgstr "Manufacturer" + +msgid "Margin after recording (minutes)" +msgstr "Margin after recording (minutes)" + +msgid "Margin before recording (minutes)" +msgstr "Margin before recording (minutes)" + +msgid "Max memory positions" +msgstr "" + +msgid "Max. bitrate: " +msgstr "Max. bitrate: " + +msgid "Media player" +msgstr "Media player" + +msgid "Media scanner" +msgstr "Media scanner" + +msgid "Medium is not a writeable DVD!" +msgstr "Medium is not a writeable DVD!" + +msgid "Medium is not empty!" +msgstr "Medium is not empty!" + +msgid "Memory" +msgstr "Memory" + +msgid "Memory index" +msgstr "Memory index" + +msgid "Menu" +msgstr "Menu" + +msgid "Message" +msgstr "Message" + +msgid "Message..." +msgstr "Message..." + +#, python-format +msgid "Minimum age %d years" +msgstr "Minimum age %d years" + +#, fuzzy +msgid "Minimum send interval" +msgstr "Minimum age %d years" + +msgid "Missing " +msgstr "Missing " + +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Mode" + +msgctxt "Video output mode" +msgid "Mode" +msgstr "Mode" + +msgid "Model: " +msgstr "Model: " + +msgid "Modulation" +msgstr "Modulation" + +msgid "Modulator" +msgstr "Modulator" + +msgid "Mon" +msgstr "Mon" + +msgid "Mon-Fri" +msgstr "Mon-Fri" + +msgid "Monday" +msgstr "YekÅŸem" + +msgid "Mosquito noise reduction" +msgstr "Mosquito noise reduction" + +msgid "Mount" +msgstr "Mount" + +msgid "Move" +msgstr "Move" + +msgid "Move PiP to main picture" +msgstr "Move PiP to main picture" + +msgid "Move Picture in Picture" +msgstr "Move Picture in Picture" + +msgid "Move east" +msgstr "Move east" + +msgid "Move to other directory" +msgstr "Move to other directory" + +msgid "Move to position X" +msgstr "Move to position X" + +msgid "Move west" +msgstr "Move west" + +msgid "Moved to position 0" +msgstr "Moved to position 0" + +msgid "Moved to position at index" +msgstr "Moved to position at index" + +msgid "Movement" +msgstr "Movement" + +msgid "Movie List Configuration" +msgstr "" + +msgid "Movie Selection" +msgstr "" + +msgid "Movie list configuration" +msgstr "Movie list configuration" + +msgid "Movie location" +msgstr "Movie location" + +msgid "Movie selection" +msgstr "Movie selection" + +msgid "Movie/Drama" +msgstr "Movie/Drama" + +msgid "Movielist menu" +msgstr "Movielist menu" + +msgid "Moving" +msgstr "Moving" + +msgid "Moving east ..." +msgstr "Moving east ..." + +msgid "Moving to position" +msgstr "Moving to position" + +msgid "Moving west ..." +msgstr "Moving west ..." + +msgid "Multi EPG" +msgstr "Multi EPG" + +msgid "Multi-EPG bouquet selection" +msgstr "Multi-EPG bouquet selection" + +msgid "Multimedia" +msgstr "Multimedia" + +msgid "Multiple service support" +msgstr "Multiple service support" + +msgid "Multiplex" +msgstr "Multiplex" + +msgid "Multisat" +msgstr "Multisat" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "Music/Ballet/Dance" + +msgid "Mute" +msgstr "Mute" + +msgid "N/A" +msgstr "N/A" + +msgid "NEXT" +msgstr "NEXT" + +msgid "NFI image flashing" +msgstr "NFI image flashing" + +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "NFI image flashing completed. Press Yellow to Reboot!" + +msgid "NIM" +msgstr "NIM" + +msgid "NOW" +msgstr "NOW" + +msgid "NTSC" +msgstr "NTSC" + +msgid "Name" +msgstr "Name" + +msgid "Nameserver" +msgstr "Nameserver" + +#, python-format +msgid "Nameserver %d" +msgstr "Nameserver %d" + +msgid "Nameserver settings" +msgstr "Nameserver settings" + +msgid "Nameserver setup" +msgstr "Nameserver setup" + +msgid "Namespace" +msgstr "Namespace" + +msgid "Netmask" +msgstr "Netmask" + +msgid "Network" +msgstr "Çékirina Network" + +msgid "Network ID" +msgstr "Network ID" + +msgid "Network configuration..." +msgstr "Network configuration..." + +msgid "Network mount" +msgstr "Network mount" + +#, python-format +msgid "Network mount %s" +msgstr "Network mount %s" + +msgid "Network name (SSID)" +msgstr "Network name (SSID)" + +msgid "Network scan" +msgstr "Network scan" + +msgid "Network setup" +msgstr "Network setup" + +msgid "Network test" +msgstr "Network test" + +msgid "Network test..." +msgstr "Network test..." + +msgid "Network test: " +msgstr "Network test: " + +msgid "Network wizard" +msgstr "Network wizard" + +msgid "Network:" +msgstr "Network:" + +msgid "New" +msgstr "New" + +msgid "New PIN" +msgstr "New PIN" + +msgid "New version:" +msgstr "New version:" + +msgid "News Current Affairs" +msgstr "News Current Affairs" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "Next" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "Next" + +msgid "No" +msgstr "No" + +msgid "No (supported) DVDROM found!" +msgstr "No (supported) DVDROM found!" + +msgid "No Connection" +msgstr "No Connection" + +msgid "No HDD found or HDD not initialized!" +msgstr "No HDD found or HDD not initialized!" + +msgid "No backup needed" +msgstr "No backup needed" + +msgid "No cable tuner found!" +msgstr "No cable tuner found!" + +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"No data on transponder!\n" +"(Timeout reading PAT)" + +msgid "No delay" +msgstr "No delay" + +msgid "No description available." +msgstr "No description available." + +msgid "No details for this image file" +msgstr "No details for this image file" + +msgid "No displayable files on this medium found!" +msgstr "No displayable files on this medium found!" + +msgid "No event info found, recording indefinitely." +msgstr "No event info found, recording indefinitely." + +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" + +msgid "No free index available" +msgstr "No free index available" + +msgid "No free tuner!" +msgstr "No free tuner!" + +msgid "No network connection available." +msgstr "No network connection available." + +msgid "No networks found" +msgstr "No networks found" + +msgid "No new plugins found" +msgstr "" + +msgid "No positioner capable frontend found." +msgstr "No positioner capable frontend found." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "" + +msgid "No services/providers selected" +msgstr "No services/providers selected" + +msgid "No standby" +msgstr "No standby" + +msgid "No suitable sat tuner found!" +msgstr "" + +msgid "No tags are set on these movies." +msgstr "No tags are set on these movies." + +msgid "No timeout" +msgstr "No timeout" + +msgid "No to all" +msgstr "No to all" + +msgid "No transparency" +msgstr "No transparency" + +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "No tuner is configured for use with a diseqc positioner!" + +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." + +msgid "No updates available" +msgstr "No updates available" + +msgid "No updates available. Please try again later." +msgstr "No updates available. Please try again later." + +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" + +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" + +msgid "No wireless networks found! Searching..." +msgstr "No wireless networks found! Searching..." + +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." + +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." + +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." + +msgid "No, but restart from begin" +msgstr "No, but restart from begin" + +msgid "No, do nothing." +msgstr "No, do nothing." + +msgid "No, just start my receiver" +msgstr "No, just start my receiver" + +msgid "No, never" +msgstr "No, never" + +msgid "None" +msgstr "None" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Nonlinear" + +msgid "Normal mode" +msgstr "Normal mode" + +msgid "North" +msgstr "North" + +msgid "Norwegian" +msgstr "Norwegian" + +msgid "Not associated" +msgstr "Not associated" + +msgid "Not configured" +msgstr "" + +#, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" + +msgid "Nothing connected" +msgstr "" + +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "Now" + +msgid "Now playing" +msgstr "Now playing" + +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." + +msgid "OK" +msgstr "OK" + +msgid "OK, guide me through the upgrade process" +msgstr "OK, guide me through the upgrade process" + +msgid "ONID" +msgstr "ONID" + +msgid "OSD name request" +msgstr "OSD name request" + +msgid "OSD settings" +msgstr "OSD settings" + +msgid "OSD transparency" +msgstr "OSD transparency" + +msgid "Off" +msgstr "Off" + +msgid "Offline decode delay (ms)" +msgstr "Offline decode delay (ms)" + +msgid "Ok" +msgstr "Ok" + +msgid "On" +msgstr "On" + +msgid "On end of movie" +msgstr "On end of movie" + +msgid "On end of movie (as menu)" +msgstr "" + +msgid "One" +msgstr "One" + +msgid "Only extensions." +msgstr "Only extensions." + +msgid "Only free scan" +msgstr "Only free scan" + +msgid "Open service list" +msgstr "Open service list" + +msgid "Open the movie list" +msgstr "Open the movie list" + +msgid "Orbital position" +msgstr "Orbital position" + +msgid "Original" +msgstr "Original" + +msgid "Other" +msgstr "Other" + +msgid "Output" +msgstr "Output" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "Overwrite configuration files during software upgrade?" + +msgid "Overwrite configuration files?" +msgstr "Overwrite configuration files?" + +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "PCR PID" + +msgid "PIDs" +msgstr "PIDs" + +msgid "PIN code needed" +msgstr "PIN code needed" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "PMT PID" + +msgid "Package list update" +msgstr "Package list update" + +msgid "Packet management" +msgstr "Packet management" + +msgid "Packet manager" +msgstr "Packet manager" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +msgid "Pan&scan" +msgstr "Pan&scan" + +msgid "Parent directory" +msgstr "Parent directory" + +msgid "Parental control" +msgstr "Kilita Gede" + +msgid "Parental control services editor" +msgstr "Parental control services editor" + +msgid "Parental control setup" +msgstr "Parental control setup" + +msgid "Parental control type" +msgstr "Parental control type" + +msgid "Password" +msgstr "Password" + +msgid "Pause" +msgstr "Pause" + +msgid "Pause movie at end" +msgstr "Pause movie at end" + +msgid "Pause playback" +msgstr "Pause playback" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "Percentage left" + +msgid "Percentage right" +msgstr "Percentage right" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "Permanently delete all recordings in the trash can?" + +msgid "Permanently remove all deleted items" +msgstr "Permanently remove all deleted items" + +msgid "Persian" +msgstr "Persian" + +msgid "Phone number" +msgstr "Phone number" + +msgid "PiP setup" +msgstr "PiP setup" + +msgid "Picon" +msgstr "Picon" + +msgid "Picon and service name" +msgstr "Picon and service name" + +msgid "Picture player" +msgstr "Picture player" + +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Pillarbox" + +msgid "Pilot" +msgstr "Pilot" + +msgid "Play" +msgstr "Play" + +msgid "Play DVD" +msgstr "Play DVD" + +msgid "Play audio in background" +msgstr "Play audio in background" + +msgid "Play audio-CD..." +msgstr "Play audio-CD..." + +msgid "Play back media files" +msgstr "Play back media files" + +msgid "Play entry" +msgstr "Play entry" + +msgid "Play from next mark or playlist entry" +msgstr "Play from next mark or playlist entry" + +msgid "Play from previous mark or playlist entry" +msgstr "Play from previous mark or playlist entry" + +msgid "Play music..." +msgstr "Play music..." + +msgid "Play next" +msgstr "Play next" + +msgid "Play next (return to movie list)" +msgstr "Play next (return to movie list)" + +msgid "Play next (return to previous service)" +msgstr "Play next (return to previous service)" + +msgid "Play previous" +msgstr "Play previous" + +msgid "Play recorded movies..." +msgstr "Play recorded movies..." + +msgid "Please add titles to the compilation." +msgstr "Please add titles to the compilation." + +msgid "Please change recording endtime" +msgstr "Please change recording endtime" + +msgid "Please check your network settings!" +msgstr "Please check your network settings!" + +msgid "Please choose an extension..." +msgstr "Please choose an extension..." + +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." + +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." + +msgid "Please connect your receiver to the internet" +msgstr "Please connect your receiver to the internet" + +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Please do not change any values unless you know what you are doing!" + +msgid "Please enter a name for the new bouquet" +msgstr "Please enter a name for the new bouquet" + +msgid "Please enter a name for the new marker" +msgstr "Please enter a name for the new marker" + +msgid "Please enter a new filename" +msgstr "Please enter a new filename" + +msgid "Please enter filename (empty = use current date)" +msgstr "Please enter filename (empty = use current date)" + +msgid "Please enter name of the new directory" +msgstr "Please enter name of the new directory" + +msgid "Please enter new name:" +msgstr "" + +msgid "Please enter the correct pin code" +msgstr "Please enter the correct pin code" + +msgid "Please enter the old PIN code" +msgstr "Please enter the old PIN code" + +msgid "Please follow the instructions on the TV" +msgstr "Please follow the instructions on the TV" + +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." + +msgid "Please press OK to continue." +msgstr "Please press OK to continue." + +msgid "Please select a default EPG type..." +msgstr "Please select a default EPG type..." + +msgid "Please select a playlist to delete..." +msgstr "Please select a playlist to delete..." + +msgid "Please select a playlist..." +msgstr "Please select a playlist..." + +msgid "Please select a sub service..." +msgstr "Please select a sub service..." + +msgid "Please select a subservice to record..." +msgstr "Please select a subservice to record..." + +msgid "Please select a subservice..." +msgstr "Please select a subservice..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "Please select an NFI file and press green key to flash!" + +msgid "Please select medium to be scanned" +msgstr "Please select medium to be scanned" + +msgid "Please select medium to use as backup location" +msgstr "Please select medium to use as backup location" + +msgid "Please select tag to filter..." +msgstr "Please select tag to filter..." + +msgid "Please select the movie path..." +msgstr "Please select the movie path..." + +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." + +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." + +msgid "Please set up tuner A" +msgstr "Please set up tuner A" + +msgid "Please set up tuner B" +msgstr "Please set up tuner B" + +msgid "Please set up tuner C" +msgstr "Please set up tuner C" + +msgid "Please set up tuner D" +msgstr "Please set up tuner D" + +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." + +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." + +msgid "Please wait" +msgstr "" + +msgid "Please wait (downloading channel list)" +msgstr "Please wait (downloading channel list)" + +msgid "Please wait (downloading softcam)" +msgstr "Please wait (downloading softcam)" + +msgid "Please wait (updating packages)" +msgstr "Please wait (updating packages)" + +msgid "Please wait for activation of your network configuration..." +msgstr "Please wait for activation of your network configuration..." + +msgid "Please wait while scanning is in progress..." +msgstr "Please wait while scanning is in progress..." + +msgid "Please wait while we configure your network..." +msgstr "Please wait while we configure your network..." + +msgid "Please wait while we prepare your network interfaces..." +msgstr "Please wait while we prepare your network interfaces..." + +msgid "Please wait while we test your network..." +msgstr "Please wait while we test your network..." + +msgid "Please wait while your network is restarting..." +msgstr "Please wait while your network is restarting..." + +msgid "Please wait..." +msgstr "Please wait..." + +msgid "Please wait... Loading list..." +msgstr "Please wait... Loading list..." + +msgid "Plugin browser" +msgstr "Plugin browser" + +msgid "Plugin manager activity information" +msgstr "Plugin manager activity information" + +msgid "Plugin manager help" +msgstr "Plugin manager help" + +msgid "Plugins" +msgstr "Girédayi" + +msgid "Polarisation" +msgstr "Polarisation" + +msgid "Polarisation:" +msgstr "" + +msgid "Polarization" +msgstr "Polarization" + +msgid "Polish" +msgstr "Polish" + +msgid "Port A" +msgstr "Port A" + +msgid "Port B" +msgstr "Port B" + +msgid "Port C" +msgstr "Port C" + +msgid "Port D" +msgstr "Port D" + +msgid "Portuguese" +msgstr "Portuguese" + +msgid "Position of completed timers in timerlist" +msgstr "Position of completed timers in timerlist" + +msgid "Position stored at index" +msgstr "Position stored at index" + +msgid "Positioner" +msgstr "Positioner" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "" + +msgid "Positioner setup" +msgstr "Pozisyoner Çéki" + +msgid "Power threshold in mA" +msgstr "Power threshold in mA" + +msgid "Predefined transponder" +msgstr "Predefined transponder" + +msgid "Prefer AC3 track" +msgstr "Prefer AC3 track" + +msgid "Prefer AC3+ track" +msgstr "" + +msgid "Prefer audio track stored by service" +msgstr "Prefer audio track stored by service" + +msgid "Prefer graphical DVB subtitles" +msgstr "Prefer graphical DVB subtitles" + +msgid "Prefer subtitles for hearing impaired" +msgstr "Prefer subtitles for hearing impaired" + +msgid "Prefer subtitles stored by service" +msgstr "Prefer subtitles stored by service" + +msgid "Preferred tuner" +msgstr "Preferred tuner" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "Prepare another USB stick for image flashing" + +msgid "Preparing... Please wait" +msgstr "Preparing... Please wait" + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "Press INFO on your remote control for additional information." + +msgid "Press MENU on your remote control for additional options." +msgstr "Press MENU on your remote control for additional options." + +msgid "Press OK on your remote control to continue." +msgstr "Press OK on your remote control to continue." + +msgid "Press OK to activate the selected skin." +msgstr "Press OK to activate the selected skin." + +msgid "Press OK to activate the settings." +msgstr "Press OK to activate the settings." + +msgid "Press OK to edit the settings." +msgstr "Press OK to edit the settings." + +#, python-format +msgid "Press OK to get further details for %s" +msgstr "Press OK to get further details for %s" + +msgid "Press OK to scan" +msgstr "Press OK to scan" + +msgid "Press OK to select a provider." +msgstr "Press OK to select a provider." + +msgid "Press OK to select satellites" +msgstr "" + +msgid "Press OK to select/deselect a CAId." +msgstr "Press OK to select/deselect a CAId." + +msgid "Press OK to start the scan" +msgstr "Press OK to start the scan" + +msgid "Press OK to toggle the selection" +msgstr "" + +msgid "Press OK to toggle the selection." +msgstr "Press OK to toggle the selection." + +msgid "Press yellow to set this interface as default interface." +msgstr "Press yellow to set this interface as default interface." + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "Prev" + +msgid "Preview" +msgstr "Preview" + +msgid "Preview menu" +msgstr "Preview menu" + +msgid "Preview selected channel" +msgstr "Preview selected channel" + +msgid "Primary DNS" +msgstr "Primary DNS" + +msgid "Priority" +msgstr "Priority" + +msgid "Process" +msgstr "Process" + +msgid "Progress" +msgstr "Progress" + +msgid "Progress bar left" +msgstr "Progress bar left" + +msgid "Progress bar right" +msgstr "Progress bar right" + +msgid "Properties of current title" +msgstr "Properties of current title" + +msgid "Protect services" +msgstr "Protect services" + +msgid "Protect setup" +msgstr "Protect setup" + +msgid "Provider" +msgstr "Provider" + +msgid "Provider to scan" +msgstr "Provider to scan" + +msgid "Providers" +msgstr "Providers" + +msgid "Put TV in standby" +msgstr "Put TV in standby" + +msgid "Put receiver in standby" +msgstr "Put receiver in standby" + +msgid "Python frontend for /tmp/mmi.socket" +msgstr "Python frontend for /tmp/mmi.socket" + +msgid "Quick" +msgstr "Quick" + +msgid "Quick zap" +msgstr "Quick zap" + +msgid "RF output" +msgstr "RF output" + +msgid "RGB" +msgstr "RGB" + +msgid "Radio" +msgstr "Radio" + +msgid "Ram disk" +msgstr "Ram disk" + +msgid "Random" +msgstr "Random" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "Rating defined by broadcaster - %d" + +msgid "Rating undefined" +msgstr "Rating undefined" + +msgid "Really close without saving settings?" +msgstr "Really close without saving settings?" + +msgid "Really delete done timers?" +msgstr "Really delete done timers?" + +msgid "Really exit the subservices quickzap?" +msgstr "Really exit the subservices quickzap?" + +msgid "Really reboot now?" +msgstr "Really reboot now?" + +msgid "Really restart now?" +msgstr "Really restart now?" + +msgid "Really shutdown now?" +msgstr "Really shutdown now?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "Really upgrade the frontprocessor and reboot now?" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "Really upgrade your settop box and reboot now?" + +msgid "Reboot" +msgstr "Reboot" + +msgid "Rec" +msgstr "Rec" + +msgid "Reception settings" +msgstr "Reception settings" + +msgid "Record" +msgstr "Qeyd" + +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "Record time limited due to conflicting timer %s" + +msgid "Recorded files..." +msgstr "Recorded files..." + +msgid "Recording" +msgstr "Recording" + +msgid "Recording in progress" +msgstr "Recording in progress" + +msgid "Recording paths" +msgstr "Réya Qeyda" + +msgid "Recording type" +msgstr "Recording type" + +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "Recording(s) are in progress or coming up in few seconds!" + +msgid "Recordings" +msgstr "Recordings" + +msgid "Recordings always have priority" +msgstr "Recordings always have priority" + +msgid "Red button..." +msgstr "Red button..." + +msgid "Reenter new PIN" +msgstr "Reenter new PIN" + +msgid "Refresh rate" +msgstr "Refresh rate" + +msgid "Refresh rate selection." +msgstr "Refresh rate selection." + +msgid "Regard deep standby as standby" +msgstr "Regard deep standby as standby" + +msgid "Relative" +msgstr "Relative" + +msgid "Reload" +msgstr "Reload" + +msgid "Reload black-/white lists" +msgstr "Reload black-/white lists" + +msgid "Reloading bouquets and services..." +msgstr "Reloading bouquets and services..." + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "Remember service PIN" + +msgid "Remember these settings for each folder" +msgstr "Remember these settings for each folder" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "" + +msgid "Remote control type" +msgstr "Remote control type" + +msgid "Removal has completed." +msgstr "Removal has completed." + +msgid "Remove" +msgstr "Remove" + +msgid "Remove a mark" +msgstr "Remove a mark" + +msgid "Remove a nameserver entry" +msgstr "Remove a nameserver entry" + +msgid "Remove bookmark" +msgstr "Remove bookmark" + +msgid "Remove completed timers after (days)" +msgstr "Remove completed timers after (days)" + +msgid "Remove currently selected title" +msgstr "Remove currently selected title" + +msgid "Remove items from trash can after (days)" +msgstr "Remove items from trash can after (days)" + +msgid "Remove plugins" +msgstr "Remove plugins" + +msgid "Remove title" +msgstr "Remove title" + +msgid "Removing" +msgstr "Removing" + +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Removing directory %s failed. (Maybe not empty.)" + +msgid "Removing partition table" +msgstr "Removing partition table" + +msgid "Rename" +msgstr "Rename" + +msgid "Repeat" +msgstr "" + +msgid "Repeat type" +msgstr "Repeat type" + +msgid "Repeating event currently recording... What do you want to do?" +msgstr "Repeating event currently recording... What do you want to do?" + +msgid "Repeats" +msgstr "Repeats" + +msgid "Require authentication for http streams" +msgstr "" + +msgid "Required medium type:" +msgstr "Required medium type:" + +msgid "Rereading partition table" +msgstr "Rereading partition table" + +msgid "Reserved" +msgstr "Reserved" + +msgid "Reset" +msgstr "Reset" + +msgid "Reset and renumerate title names" +msgstr "Reset and renumerate title names" + +msgid "Reset playback position" +msgstr "Reset playback position" + +msgid "Reset video enhancement settings to system defaults?" +msgstr "Reset video enhancement settings to system defaults?" + +msgid "Reset video enhancement settings to your last configuration?" +msgstr "Reset video enhancement settings to your last configuration?" + +msgid "Resolution" +msgstr "Resolution" + +msgid "Restart" +msgstr "Restart" + +msgid "Restart GUI now?" +msgstr "Restart GUI now?" + +msgid "Restart enigma" +msgstr "Restart enigma" + +msgid "Restart network" +msgstr "Restart network" + +msgid "Restart test" +msgstr "Restart test" + +msgid "Restart your network connection and interfaces.\n" +msgstr "Restart your network connection and interfaces.\n" + +msgid "Restore" +msgstr "Restore" + +msgid "Restore backups" +msgstr "Restore backups" + +msgid "Restore is running..." +msgstr "Restore is running..." + +msgid "Restore system settings" +msgstr "Restore system settings" + +msgid "Restoring..." +msgstr "Restoring..." + +msgid "Resume from last position" +msgstr "Resume from last position" + +#, python-format +msgid "Resume position at %s" +msgstr "Resume position at %s" + +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Resuming playback" + +msgid "Return to movie list" +msgstr "Return to movie list" + +msgid "Return to previous service" +msgstr "Return to previous service" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +msgid "Rewind speeds" +msgstr "Rewind speeds" + +msgid "Rewrap teletext subtitles" +msgstr "Rewrap teletext subtitles" + +msgid "Right" +msgstr "Right" + +msgid "Right from servicename" +msgstr "" + +msgid "Roll-off" +msgstr "Roll-off" + +msgid "Romanian" +msgstr "Romanian" + +msgid "Root directory" +msgstr "Root directory" + +msgid "Rotor step position:" +msgstr "Rotor step position:" + +msgid "Rotor turning speed" +msgstr "Rotor turning speed" + +msgid "Round start time on" +msgstr "Round start time on" + +msgid "Russian" +msgstr "Russian" + +msgid "S-Video" +msgstr "S-Video" + +msgid "SID" +msgstr "SID" + +msgid "SINGLE LAYER DVD" +msgstr "SINGLE LAYER DVD" + +msgid "SNR" +msgstr "SNR" + +msgid "SNR:" +msgstr "SNR:" + +msgid "SSID:" +msgstr "SSID:" + +msgid "Same resolution as skin" +msgstr "" + +msgid "Sat" +msgstr "Sat" + +msgid "Satellite" +msgstr "Satellite" + +msgid "Satellite dish setup" +msgstr "Satellite dish setup" + +msgid "Satellite equipment" +msgstr "Satellite equipment" + +msgid "Satellite equipment setup" +msgstr "Satellite equipment setup" + +msgid "Satellite longitude:" +msgstr "Satellite longitude:" + +msgid "Satellites" +msgstr "Satellites" + +msgid "Satfinder" +msgstr "Sat (Uydu) Bine" + +msgid "Sats" +msgstr "Sats" + +msgid "Saturation" +msgstr "Saturation" + +msgid "Saturday" +msgstr "Sift" + +msgid "Save" +msgstr "Save" + +msgid "Save playlist" +msgstr "Save playlist" + +msgid "Save timeshift file" +msgstr "" + +msgid "Save timeshift file in movie directory" +msgstr "" + +msgid "Scaler sharpness" +msgstr "Scaler sharpness" + +msgid "Scaling mode" +msgstr "Scaling mode" + +msgid "Scan" +msgstr "" + +msgid "Scan " +msgstr "Scan " + +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, python-format +msgid "Scan %s" +msgstr "Scan %s" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, python-format +msgid "Scan %s band" +msgstr "Scan %s band" + +msgid "Scan additional SR" +msgstr "Scan additional SR" + +msgid "Scan files..." +msgstr "Scan files..." + +msgid "Scan wireless networks" +msgstr "Scan wireless networks" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "Scan your network for wireless access points and connect to them using your selected wireless device.\n" + +#, python-format +msgid "Scanning %s..." +msgstr "Scanning %s..." + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, fuzzy, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "Scanning completed, %d channels found" +msgstr[1] "Scanning completed, %d channels found" + +#, fuzzy, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "Scanning completed, %d channels found" +msgstr[1] "Scanning completed, %d channels found" + +msgid "Scanning failed!" +msgstr "Scanning failed!" + +msgid "Scanning..." +msgstr "Scanning..." + +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "Scans default lamedbs sorted by satellite with a connected dish positioner" + +msgid "Search east" +msgstr "Search east" + +msgid "Search west" +msgstr "Search west" + +msgid "Searching" +msgstr "Searching" + +msgid "Searching east ..." +msgstr "Searching east ..." + +msgid "Searching for available updates. Please wait..." +msgstr "Searching for available updates. Please wait..." + +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "Searching for new installed or removed packages. Please wait..." + +msgid "Searching west ..." +msgstr "Searching west ..." + +msgid "Second cable of motorized LNB" +msgstr "" + +msgid "Secondary DNS" +msgstr "Secondary DNS" + +msgid "Seek" +msgstr "Seek" + +msgid "Seek backward" +msgstr "Seek backward" + +msgid "Seek backward (enter time)" +msgstr "Seek backward (enter time)" + +msgid "Seek forward" +msgstr "Seek forward" + +msgid "Seek forward (enter time)" +msgstr "Seek forward (enter time)" + +msgid "Select" +msgstr "Select" + +msgid "Select CAId" +msgstr "Select CAId" + +msgid "Select HDD" +msgstr "Select HDD" + +msgid "Select a bouquet" +msgstr "Select a bouquet" + +msgid "Select a movie" +msgstr "Select a movie" + +msgid "Select a network adapter" +msgstr "Select a network adapter" + +msgid "Select a skin" +msgstr "Select a skin" + +msgid "Select a tuner" +msgstr "Select a tuner" + +msgid "Select a wireless network" +msgstr "Select a wireless network" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +msgid "Select an image to be downloaded" +msgstr "Select an image to be downloaded" + +msgid "Select audio track" +msgstr "Select audio track" + +msgid "Select backup files" +msgstr "Select backup files" + +msgid "Select backup location" +msgstr "Select backup location" + +msgid "Select channel to record from" +msgstr "Select channel to record from" + +msgid "Select copy destination for:" +msgstr "Select copy destination for:" + +msgid "Select default EPG type..." +msgstr "Select default EPG type..." + +msgid "Select desired image from feed list" +msgstr "Select desired image from feed list" + +msgid "Select destination for:" +msgstr "Select destination for:" + +msgid "Select files for backup." +msgstr "Select files for backup." + +msgid "Select files/folders to backup" +msgstr "Select files/folders to backup" + +msgid "Select input device" +msgstr "Select input device" + +msgid "Select input device." +msgstr "Select input device." + +msgid "Select interface" +msgstr "Select interface" + +msgid "Select location" +msgstr "Select location" + +msgid "Select movie" +msgstr "Select movie" + +msgid "Select provider to add..." +msgstr "Select provider to add..." + +msgid "Select refresh rate" +msgstr "Select refresh rate" + +msgid "Select satellites" +msgstr "" + +msgid "Select service to add..." +msgstr "Select service to add..." + +msgid "Select sort method:" +msgstr "" + +msgid "Select target folder" +msgstr "Select target folder" + +msgid "Select the movie path" +msgstr "Select the movie path" + +msgid "Select upgrade source" +msgstr "Select upgrade source" + +msgid "Select upgrade source to edit." +msgstr "Select upgrade source to edit." + +msgid "Select video input with up/down buttons" +msgstr "Select video input with up/down buttons" + +msgid "Select video mode" +msgstr "Select video mode" + +msgid "Select wireless network" +msgstr "Select wireless network" + +msgid "Select your provider, and press OK to start the scan" +msgstr "Select your provider, and press OK to start the scan" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +msgid "Send DiSEqC only on satellite change" +msgstr "Send DiSEqC only on satellite change" + +msgid "Separate titles with a main menu" +msgstr "Separate titles with a main menu" + +msgid "Sequence repeat" +msgstr "Sequence repeat" + +msgid "Serbian" +msgstr "Serbian" + +msgid "Service" +msgstr "Hizmeti" + +msgid "Service has been added to the favourites." +msgstr "Service has been added to the favourites." + +msgid "Service has been added to the selected bouquet." +msgstr "Service has been added to the selected bouquet." + +msgid "Service info" +msgstr "Service info" + +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Service invalid!\n" +"(Timeout reading PMT)" + +msgid "Service name" +msgstr "Service name" + +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Service not found!\n" +"(SID not found in PAT)" + +msgid "Service reference" +msgstr "Service reference" + +msgid "Service scan" +msgstr "Service scan" + +msgid "Service searching" +msgstr "Çékirina Anten" + +msgid "Service title mode" +msgstr "Service title mode" + +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"Service unavailable!\n" +"Check tuner configuration!" + +msgid "Services" +msgstr "Services" + +msgid "Set default" +msgstr "" + +msgid "Set end time" +msgstr "Set end time" + +msgid "Set fixed" +msgstr "Set fixed" + +msgid "Set fps for external subtitles" +msgstr "" + +msgid "Set interface as default Interface" +msgstr "Set interface as default Interface" + +msgid "Set limits" +msgstr "Set limits" + +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "Set the type of the progress indication in the channel selection screen." + +msgid "Set time window to 1 hour" +msgstr "Set time window to 1 hour" + +msgid "Set time window to 2 hours" +msgstr "Set time window to 2 hours" + +msgid "Set time window to 3 hours" +msgstr "Set time window to 3 hours" + +msgid "Set time window to 4 hours" +msgstr "Set time window to 4 hours" + +msgid "Set time window to 5 hours" +msgstr "Set time window to 5 hours" + +msgid "Set time window to 6 hours" +msgstr "" + +msgid "Set voltage and 22KHz" +msgstr "Set voltage and 22KHz" + +msgid "Settings" +msgstr "Settings" + +msgid "Setup" +msgstr "Çékirin" + +msgid "Setup menu" +msgstr "Setup menu" + +msgid "Setup mode" +msgstr "Setup mode" + +msgid "Setup your positioner" +msgstr "Setup your positioner" + +msgid "Setup your satellite equipment" +msgstr "Setup your satellite equipment" + +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "Shall the USB stick wizard proceed and program the image file %s into flash memory?" + +msgid "Sharpness" +msgstr "Sharpness" + +msgid "Short filenames" +msgstr "Short filenames" + +msgid "Show EIT now/next in infobar" +msgstr "Show EIT now/next in infobar" + +msgid "Show EPG for current channel..." +msgstr "Show EPG for current channel..." + +msgid "Show EPG..." +msgstr "Show EPG..." + +msgid "Show Games show" +msgstr "Show Games show" + +msgid "Show SNR percentage instead of dB value" +msgstr "Show SNR percentage instead of dB value" + +msgid "Show VCR scart on main menu" +msgstr "" + +msgid "Show WLAN status" +msgstr "Show WLAN status" + +msgid "Show animation while busy" +msgstr "Show animation while busy" + +msgid "Show background in radio mode" +msgstr "Show background in radio mode" + +msgid "Show bouquet selection menu" +msgstr "Show bouquet selection menu" + +msgid "Show busy indicator when the system is busy." +msgstr "Show busy indicator when the system is busy." + +msgid "Show channel numbers in channel selection" +msgstr "Show channel numbers in channel selection" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "Show crypto info in infobar" + +msgid "Show detailed event info" +msgstr "Show detailed event info" + +msgid "Show event details" +msgstr "Show event details" + +msgid "Show event-progress in channel selection" +msgstr "Show event-progress in channel selection" + +msgid "Show extended description" +msgstr "Show extended description" + +msgid "Show extensions..." +msgstr "Show extensions..." + +msgid "Show icon for new/unseen items" +msgstr "Show icon for new/unseen items" + +msgid "Show in extensions menu" +msgstr "" + +msgid "Show info" +msgstr "Show info" + +msgid "Show info line" +msgstr "Show info line" + +msgid "Show infobar on channel change" +msgstr "Show infobar on channel change" + +msgid "Show infobar on event change" +msgstr "Show infobar on event change" + +msgid "Show infobar on skip forward/backward" +msgstr "Show infobar on skip forward/backward" + +msgid "Show latest commits on sourceforge" +msgstr "" + +msgid "Show message when recording starts" +msgstr "Show message when recording starts" + +msgid "Show movie lengths in movielist" +msgstr "Show movie lengths in movielist" + +msgid "Show multi channel EPG" +msgstr "" + +msgid "Show picons in channel list" +msgstr "" + +msgid "Show positioner movement" +msgstr "Show positioner movement" + +msgid "Show screensaver" +msgstr "" + +msgid "Show second infobar" +msgstr "Show second infobar" + +msgid "Show service type icons" +msgstr "" + +msgid "Show services beginning with" +msgstr "Show services beginning with" + +msgid "Show shutdown menu" +msgstr "Show shutdown menu" + +msgid "Show single service EPG" +msgstr "" + +msgid "Show status icons in Movielist" +msgstr "" + +msgid "Show status icons in movie list" +msgstr "Show status icons in movie list" + +msgid "Show status icons in movielist" +msgstr "Show status icons in movielist" + +msgid "Show tag menu" +msgstr "Show tag menu" + +msgid "Show the radio player..." +msgstr "Show the radio player..." + +msgid "Show the tv player..." +msgstr "Show the tv player..." + +msgid "Show warning when timeshift is stopped" +msgstr "" + +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Shows the state of your wireless LAN connection.\n" + +msgid "Shuffle playlist" +msgstr "Shuffle playlist" + +msgid "Shutdown" +msgstr "Shutdown" + +msgid "Shutdown when in Standby" +msgstr "" + +msgid "Side by side" +msgstr "Side by side" + +msgid "Signal OK, proceeding" +msgstr "Signal OK, proceeding" + +msgid "Signal quality" +msgstr "Signal quality" + +msgid "Signal strength:" +msgstr "Signal strength:" + +msgid "Signal: " +msgstr "Signal: " + +msgid "Similar" +msgstr "Similar" + +msgid "Similar broadcasts:" +msgstr "Similar broadcasts:" + +msgid "Simple" +msgstr "Simple" + +msgid "Simple titleset (compatibility for legacy players)" +msgstr "Simple titleset (compatibility for legacy players)" + +msgid "Single" +msgstr "Single" + +msgid "Single EPG" +msgstr "Single EPG" + +msgid "Single satellite" +msgstr "Single satellite" + +msgid "Single step (GOP)" +msgstr "Single step (GOP)" + +msgid "Single transponder" +msgstr "Single transponder" + +msgid "Site latitude" +msgstr "Site latitude" + +msgid "Site longitude" +msgstr "Site longitude" + +msgid "Skin" +msgstr "Ruyé Cihaz" + +msgid "Skins" +msgstr "Skins" + +msgid "Skip empty services" +msgstr "Skip empty services" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "Skip internet connection check (disables automatic package installation)" + +msgid "Sleep timer" +msgstr "Sleep timer" + +msgid "SleepTimer Configuration" +msgstr "" + +msgid "Sleeptimer" +msgstr "" + +msgid "Slide picture in loop" +msgstr "Slide picture in loop" + +msgid "Slide show interval (sec.)" +msgstr "Slide show interval (sec.)" + +#, python-format +msgid "Slot %d" +msgstr "Slot %d" + +msgid "Slovak" +msgstr "Slovak" + +msgid "Slovenian" +msgstr "Slovenian" + +msgid "Slow" +msgstr "Slow" + +msgid "Slow motion speeds" +msgstr "Slow motion speeds" + +msgid "Small progress" +msgstr "Small progress" + +msgid "Social/Political/Economics" +msgstr "Social/Political/Economics" + +msgid "SoftCam / CI" +msgstr "SoftCam / CI" + +msgid "Softcam type" +msgstr "Softcam type" + +msgid "Software" +msgstr "Software" + +msgid "Software management" +msgstr "Software management" + +msgid "Software manager setup" +msgstr "Software manager setup" + +msgid "Software restore" +msgstr "Software restore" + +msgid "Software update" +msgstr "Nisisiya Ä°mage Bine" + +msgid "Softwaremanager information" +msgstr "Softwaremanager information" + +msgid "Some plugins are not available:\n" +msgstr "Some plugins are not available:\n" + +#, python-format +msgid "Sorry, %s has not been installed!" +msgstr "Sorry, %s has not been installed!" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "Sorry, deleting directories can (for now) only be done through the trash can." + +msgid "Sorry, no backups found!" +msgstr "Sorry, no backups found!" + +msgid "Sorry, no details available!" +msgstr "Sorry, no details available!" + +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." + +msgid "Sort" +msgstr "Sort" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Sort A-Z" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort time" +msgstr "Sort time" + +msgid "Sound" +msgstr "Sound" + +msgid "Sound carrier" +msgstr "Sound carrier" + +msgid "Source request" +msgstr "Source request" + +msgid "South" +msgstr "South" + +msgid "Spanish" +msgstr "Spanish" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +msgid "Split preview mode" +msgstr "Split preview mode" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "Sports" + +msgid "Standard" +msgstr "Standard" + +msgid "Standart list" +msgstr "" + +msgid "Standby" +msgstr "Standby" + +msgid "Standby / restart" +msgstr "Bigiri / Nu Vegeri" + +msgid "Standby after current event" +msgstr "" + +#, python-format +msgid "Standby fan %d PWM" +msgstr "Standby fan %d PWM" + +#, python-format +msgid "Standby fan %d voltage" +msgstr "Standby fan %d voltage" + +msgid "Standby in " +msgstr "" + +msgid "StandbyLED" +msgstr "" + +msgid "Start from the beginning" +msgstr "Start from the beginning" + +msgid "Start offline decode" +msgstr "Start offline decode" + +msgid "Start recording?" +msgstr "Start recording?" + +msgid "Start test" +msgstr "Start test" + +msgid "Start time" +msgstr "Start time" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +msgid "Start timeshift" +msgstr "Start timeshift" + +msgid "Start with list screen" +msgstr "Start with list screen" + +msgid "Starting on" +msgstr "Starting on" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +msgid "Step east" +msgstr "Step east" + +msgid "Step west" +msgstr "Step west" + +msgid "Stepped east" +msgstr "Stepped east" + +msgid "Stepped west" +msgstr "Stepped west" + +msgid "Stop" +msgstr "Stop" + +msgid "Stop PiP" +msgstr "Stop PiP" + +msgid "Stop current event and disable coming events" +msgstr "Stop current event and disable coming events" + +msgid "Stop current event but not coming events" +msgstr "Stop current event but not coming events" + +msgid "Stop entry" +msgstr "Stop entry" + +msgid "Stop playing this movie?" +msgstr "Stop playing this movie?" + +msgid "Stop recording" +msgstr "Stop recording" + +msgid "Stop recording and delete" +msgstr "Stop recording and delete" + +msgid "Stop service on return to movie list" +msgstr "" + +msgid "Stop test" +msgstr "Stop test" + +msgid "Stop testing plane after # failed transponders" +msgstr "Stop testing plane after # failed transponders" + +msgid "Stop testing plane after # successful transponders" +msgstr "Stop testing plane after # successful transponders" + +msgid "Stop timer recording" +msgstr "" + +msgid "Stop timeshift" +msgstr "Stop timeshift" + +msgid "Stop timeshift?" +msgstr "Stop timeshift?" + +msgid "Stopped" +msgstr "Stopped" + +msgid "Store at index" +msgstr "Store at index" + +msgid "Store position" +msgstr "Store position" + +msgid "Stored position" +msgstr "Stored position" + +msgid "Stream" +msgstr "Stream" + +msgid "Stream request" +msgstr "Stream request" + +msgid "Strongest position" +msgstr "Strongest position" + +msgid "Subservice list..." +msgstr "Subservice list..." + +msgid "Subservices" +msgstr "Subservices" + +msgid "Subtitle Quickmenu" +msgstr "" + +msgid "Subtitle alignment" +msgstr "Subtitle alignment" + +msgid "Subtitle border width" +msgstr "Subtitle border width" + +msgid "Subtitle delay when timing is bad" +msgstr "" + +msgid "Subtitle delay when timing lacks" +msgstr "Subtitle delay when timing lacks" + +msgid "Subtitle font size" +msgstr "Subtitle font size" + +msgid "Subtitle language selection 1" +msgstr "Subtitle language selection 1" + +msgid "Subtitle language selection 2" +msgstr "Subtitle language selection 2" + +msgid "Subtitle language selection 3" +msgstr "Subtitle language selection 3" + +msgid "Subtitle language selection 4" +msgstr "Subtitle language selection 4" + +msgid "Subtitle position" +msgstr "Subtitle position" + +msgid "Subtitle selection" +msgstr "Subtitle selection" + +msgid "Subtitle selection..." +msgstr "Subtitle selection..." + +msgid "Subtitle settings" +msgstr "Çékirina Bin nivisi" + +msgid "Subtitles" +msgstr "Subtitles" + +msgid "Sun" +msgstr "Sun" + +msgid "Sunday" +msgstr "Bazaar" + +msgid "Swap PiP and main picture" +msgstr "Swap PiP and main picture" + +msgid "Swap services" +msgstr "Swap services" + +msgid "Swedish" +msgstr "Swedish" + +msgid "Switch TV to correct input" +msgstr "Switch TV to correct input" + +msgid "Switch between filelist/playlist" +msgstr "" + +msgid "Switch between normal mode and list mode" +msgstr "Switch between normal mode and list mode" + +msgid "Switch to HDMI in mode" +msgstr "" + +msgid "Switch to filelist" +msgstr "Switch to filelist" + +msgid "Switch to next channel" +msgstr "" + +msgid "Switch to next channel in history" +msgstr "Switch to next channel in history" + +msgid "Switch to next sub service" +msgstr "Switch to next sub service" + +msgid "Switch to playlist" +msgstr "Switch to playlist" + +msgid "Switch to previous channel" +msgstr "Switch to previous channel" + +msgid "Switch to previous channel in history" +msgstr "Switch to previous channel in history" + +msgid "Switch to previous sub service" +msgstr "Switch to previous sub service" + +msgid "Switchable tuner types:" +msgstr "Switchable tuner types:" + +msgid "Symbol rate" +msgstr "Symbol rate" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "Sync failure moving back to origin !" + +msgid "System" +msgstr "Systemé wi" + +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "TRANSLATOR_INFO" + +msgid "TS file is too large for ISO9660 level 1!" +msgstr "TS file is too large for ISO9660 level 1!" + +msgid "TSID" +msgstr "TSID" + +msgid "TV physical address report" +msgstr "TV physical address report" + +msgid "TXT PID" +msgstr "TXT PID" + +msgid "Table of contents for collection" +msgstr "Table of contents for collection" + +msgid "Tags" +msgstr "Tags" + +msgid "Teletext subtitle color" +msgstr "Teletext subtitle color" + +msgid "Temperature and fan control" +msgstr "Temperature and fan control" + +msgid "Terrestrial" +msgstr "Terrestrial" + +msgid "Terrestrial provider" +msgstr "Terrestrial provider" + +msgid "Test DiSEqC settings" +msgstr "Test DiSEqC settings" + +msgid "Test mode" +msgstr "Test mode" + +msgid "Test the network configuration of your receiver.\n" +msgstr "Test the network configuration of your receiver.\n" + +msgid "Test type" +msgstr "Test type" + +msgid "Text color" +msgstr "Text color" + +msgid "Thai" +msgstr "Thai" + +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"Thank you for using the wizard.\n" +"Please press OK to continue." + +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" + +msgid "The PIN code has been changed successfully." +msgstr "The PIN code has been changed successfully." + +msgid "The PIN codes you entered are different." +msgstr "The PIN codes you entered are different." + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" + +msgid "The backup failed. Please choose a different backup location." +msgstr "The backup failed. Please choose a different backup location." + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" +"The current beta image might not be stable.\n" +"For more information see %s." + +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." + +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" + +msgid "The following files were found..." +msgstr "The following files were found..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "The md5sum validation failed, the file may be corrupted!" + +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"The network wizard extension is not installed!\n" +"Please install it." + +#, python-format +msgid "The path %s already exists." +msgstr "The path %s already exists." + +msgid "The pin code you entered is wrong." +msgstr "The pin code you entered is wrong." + +#, python-format +msgid "The results have been written to %s." +msgstr "The results have been written to %s." + +msgid "The sleep timer has been activated." +msgstr "The sleep timer has been activated." + +msgid "The sleep timer has been disabled." +msgstr "The sleep timer has been disabled." + +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"The software management extension is not installed!\n" +"Please install it." + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "The status of the current beta image could not be checked because %s can not be reached." + +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "The timer file (timers.xml) is corrupt and could not be loaded." + +msgid "The user interface of your receiver is restarting" +msgstr "The user interface of your receiver is restarting" + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"The wireless LAN plugin is not installed!\n" +"Please install it." + +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "The wizard can backup your current settings. Do you want to do a backup now?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "The wizard found a configuration backup. Do you want to restore your old settings from %s?" + +msgid "The wizard is finished now." +msgstr "The wizard is finished now." + +msgid "There are at least " +msgstr "There are at least " + +#, python-format +msgid "There are at least %s updates available." +msgstr "There are at least %s updates available." + +msgid "There are currently no outstanding actions." +msgstr "There are currently no outstanding actions." + +msgid "There are no updates available." +msgstr "There are no updates available." + +msgid "There is no signal to lock on !" +msgstr "There is no signal to lock on !" + +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" + +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "This DVD RW medium is already formatted - reformatting will erase all content on the disc." + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" + +msgid "This plugin is installed." +msgstr "This plugin is installed." + +msgid "This plugin is not installed." +msgstr "This plugin is not installed." + +msgid "This plugin will be installed." +msgstr "This plugin will be installed." + +msgid "This plugin will be removed." +msgstr "This plugin will be removed." + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "This receiver cannot decode %s streams!" + +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" + +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" + +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" + +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." + +msgid "This test detects your configured LAN adapter." +msgstr "This test detects your configured LAN adapter." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" + +msgid "Three" +msgstr "Three" + +msgid "Threshold" +msgstr "Threshold" + +msgid "Thu" +msgstr "Thu" + +msgid "Thumbnails" +msgstr "Thumbnails" + +msgid "Thursday" +msgstr "PéncÅŸem" + +msgid "Time" +msgstr "Time" + +msgid "Time scale" +msgstr "Time scale" + +msgid "Timer" +msgstr "Vext" + +msgid "Timer Overview" +msgstr "" + +msgid "Timer edit" +msgstr "Timer edit" + +msgid "Timer editor" +msgstr "Timer editor" + +msgid "Timer entry" +msgstr "Timer entry" + +msgid "Timer log" +msgstr "Timer log" + +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" + +msgid "Timer overview" +msgstr "Timer overview" + +msgid "Timer recording location" +msgstr "Timer recording location" + +msgid "Timer sanity error" +msgstr "Timer sanity error" + +msgid "Timer selection" +msgstr "Timer selection" + +msgid "Timer selection..." +msgstr "" + +msgid "Timer type" +msgstr "Timer type" + +msgid "Timeshift" +msgstr "Timeshift" + +msgid "Timeshift Live" +msgstr "" + +msgid "Timeshift location" +msgstr "Timeshift location" + +msgid "Timeshift not possible!" +msgstr "Timeshift not possible!" + +msgid "Timezone" +msgstr "Wextu Zeman" + +msgid "Title" +msgstr "Title" + +msgid "Title properties" +msgstr "Title properties" + +msgid "Titleset mode" +msgstr "Titleset mode" + +msgid "To audio selection" +msgstr "To audio selection" + +msgid "To subtitle selection" +msgstr "To subtitle selection" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." + +msgid "Today" +msgstr "Today" + +msgid "Toggle a cut mark at the current position" +msgstr "Toggle a cut mark at the current position" + +msgid "Tone amplitude" +msgstr "Tone amplitude" + +msgid "Tone mode" +msgstr "Tone mode" + +msgid "Toneburst" +msgstr "Toneburst" + +msgid "Toneburst A/B" +msgstr "Toneburst A/B" + +msgid "Top and bottom" +msgstr "Top and bottom" + +msgid "Track" +msgstr "Track" + +msgid "Translation" +msgstr "Translation" + +msgid "Translation:" +msgstr "Translation:" + +msgid "Translations" +msgstr "" + +msgid "Transmission mode" +msgstr "Transmission mode" + +msgid "Transponder" +msgstr "Transponder" + +msgid "Transponder type" +msgstr "Transponder type" + +msgid "Trash can" +msgstr "Trash can" + +msgid "Tries left:" +msgstr "Tries left:" + +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Try to find used transponders in cable network.. please wait..." + +msgid "Trying to download a new packetlist. Please wait..." +msgstr "Trying to download a new packetlist. Please wait..." + +msgid "Tue" +msgstr "Tue" + +msgid "Tuesday" +msgstr "DuÅŸem" + +msgid "Tune" +msgstr "Tune" + +msgid "Tune and focus" +msgstr "Tune and focus" + +msgid "Tune failed!" +msgstr "Tune failed!" + +msgid "Tuner" +msgstr "Tuner" + +msgid "Tuner configuration" +msgstr "Çékirina Tuner " + +msgid "Tuner is not supported" +msgstr "" + +msgid "Tuner slot" +msgstr "Tuner slot" + +msgid "Tuner status" +msgstr "Tuner status" + +#, python-format +msgid "Tuner status %s" +msgstr "Tuner status %s" + +msgid "Tuner type" +msgstr "Tuner type" + +msgid "Turkish" +msgstr "Turkish" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +msgid "Two" +msgstr "Two" + +msgid "Type" +msgstr "Type" + +msgid "Type of scan" +msgstr "Type of scan" + +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "USALS calibration" + +msgid "USB stick" +msgstr "USB stick" + +msgid "USB stick wizard" +msgstr "USB stick wizard" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" + +msgid "Undo install" +msgstr "Undo install" + +msgid "Undo uninstall" +msgstr "Undo uninstall" + +msgid "Unencrypted" +msgstr "Unencrypted" + +msgid "UnhandledKey" +msgstr "UnhandledKey" + +msgid "Unicable" +msgstr "Unicable" + +msgid "Unicable LNB" +msgstr "Unicable LNB" + +msgid "Unicable Martix" +msgstr "Unicable Martix" + +msgid "Uninstall" +msgstr "Uninstall" + +msgid "Universal LNB" +msgstr "Universal LNB" + +msgid "Unknown" +msgstr "Unknown" + +msgid "Unmount" +msgstr "Unmount" + +msgid "Unsupported" +msgstr "Unsupported" + +msgid "Update" +msgstr "Update" + +msgid "Update and ask to reboot" +msgstr "Update and ask to reboot" + +msgid "Update and reboot (recommended)" +msgstr "Update and reboot (recommended)" + +msgid "Update channel list only" +msgstr "Update channel list only" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "Update completed, %d package was installed." +msgstr[1] "Update completed, %d packages were installed." + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "Update completed. Do you want to reboot your receiver?" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "Update failed. Your receiver does not have a working internet connection." + +msgid "Update has completed." +msgstr "Update has completed." + +msgid "Updatefeed not available." +msgstr "Updatefeed not available." + +msgid "Updating software catalog" +msgstr "Updating software catalog" + +msgid "Upgrading" +msgstr "Upgrading" + +msgid "Use" +msgstr "Use" + +msgid "Use DHCP" +msgstr "Use DHCP" + +msgid "Use EIT EPG information when it is available." +msgstr "Use EIT EPG information when it is available." + +msgid "Use FreeSat EPG information when it is available." +msgstr "Use FreeSat EPG information when it is available." + +msgid "Use MHW EPG information when it is available." +msgstr "Use MHW EPG information when it is available." + +msgid "Use Netmed EPG information when it is available." +msgstr "Use Netmed EPG information when it is available." + +msgid "Use TV remote control" +msgstr "Use TV remote control" + +msgid "Use USALS for this sat" +msgstr "Use USALS for this sat" + +msgid "Use ViaSat EPG information when it is available." +msgstr "Use ViaSat EPG information when it is available." + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +msgid "Use a gateway" +msgstr "Use a gateway" + +msgid "Use fastscan channel names" +msgstr "Use fastscan channel names" + +msgid "Use fastscan channel numbering" +msgstr "Use fastscan channel numbering" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "" + +msgid "Use interface" +msgstr "Use interface" + +msgid "Use official channel numbering" +msgstr "Use official channel numbering" + +msgid "Use original DVB subtitle position" +msgstr "Use original DVB subtitle position" + +msgid "Use original teletext position" +msgstr "Use original teletext position" + +msgid "Use power measurement" +msgstr "Use power measurement" + +msgid "Use the network wizard to configure selected network adapter" +msgstr "Use the network wizard to configure selected network adapter" + +msgid "Use the network wizard to configure your network\n" +msgstr "Use the network wizard to configure your network\n" + +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "Use the up/down keys on your remote control to select an option. After that, press OK." + +msgid "Use the wizard to set up basic features" +msgstr "Use the wizard to set up basic features" + +msgid "Use these input device settings?" +msgstr "Use these input device settings?" + +msgid "Use these settings?" +msgstr "Use these settings?" + +msgid "Use this video enhancement settings?" +msgstr "Use this video enhancement settings?" + +msgid "Use trash can in movielist" +msgstr "Use trash can in movielist" + +msgid "Used service scan type" +msgstr "Used service scan type" + +msgid "User - bouquets" +msgstr "User - bouquets" + +msgid "User defined" +msgstr "User defined" + +msgid "User defined transponder" +msgstr "" + +msgid "User interface" +msgstr "Çékirina te" + +msgid "Username" +msgstr "Username" + +#, python-format +msgid "Using LNB %d" +msgstr "Using LNB %d" + +msgid "Using fixed address" +msgstr "Using fixed address" + +#, python-format +msgid "Using tuner %s" +msgstr "Using tuner %s" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." + +msgid "VCR scart" +msgstr "VCR scart" + +msgid "VMGM (intro trailer)" +msgstr "VMGM (intro trailer)" + +msgid "Vertical" +msgstr "Vertical" + +msgid "Vertical turning speed" +msgstr "Vertical turning speed" + +msgid "Video PID" +msgstr "Video PID" + +msgid "Video enhancement preview" +msgstr "Video enhancement preview" + +msgid "Video enhancement settings" +msgstr "Video enhancement settings" + +msgid "Video enhancement setup" +msgstr "Video enhancement setup" + +msgid "Video fine tuning" +msgstr "Eyaré Video Tenik" + +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." + +msgid "Video mode selection." +msgstr "Video mode selection." + +msgid "Video output" +msgstr "Video output" + +msgid "Video setup" +msgstr "Video setup" + +msgid "Video wizard" +msgstr "Video wizard" + +#, python-format +msgid "Video: %s fps" +msgstr "" + +msgid "VideoMode" +msgstr "" + +msgid "Videocodec" +msgstr "Videocodec" + +msgid "Videoformat" +msgstr "Videoformat" + +msgid "Videosize" +msgstr "Videosize" + +msgid "View Rass interactive..." +msgstr "View Rass interactive..." + +msgid "View details" +msgstr "View details" + +msgid "View list of available " +msgstr "View list of available " + +msgid "View list of available CommonInterface extensions" +msgstr "View list of available CommonInterface extensions" + +msgid "View list of available EPG extensions." +msgstr "View list of available EPG extensions." + +msgid "View list of available Satellite equipment extensions." +msgstr "View list of available Satellite equipment extensions." + +msgid "View list of available communication extensions." +msgstr "View list of available communication extensions." + +msgid "View list of available default settings" +msgstr "View list of available default settings" + +msgid "View list of available display and userinterface extensions." +msgstr "View list of available display and userinterface extensions." + +msgid "View list of available multimedia extensions." +msgstr "View list of available multimedia extensions." + +msgid "View list of available networking extensions" +msgstr "View list of available networking extensions" + +msgid "View list of available recording extensions" +msgstr "View list of available recording extensions" + +msgid "View list of available skins" +msgstr "View list of available skins" + +msgid "View list of available software extensions" +msgstr "View list of available software extensions" + +msgid "View list of available system extensions" +msgstr "View list of available system extensions" + +msgid "View photos..." +msgstr "View photos..." + +msgid "View teletext..." +msgstr "View teletext..." + +msgid "View video CD..." +msgstr "View video CD..." + +msgid "Virtual keyboard" +msgstr "Virtual keyboard" + +msgid "Voltage mode" +msgstr "Voltage mode" + +msgid "Volume" +msgstr "Volume" + +msgid "W" +msgstr "W" + +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "WLAN connection" + +msgid "WPA" +msgstr "WPA" + +msgid "WPA or WPA2" +msgstr "WPA or WPA2" + +msgid "WPA2" +msgstr "WPA2" + +msgid "WSS on 4:3" +msgstr "WSS on 4:3" + +msgid "Waiting" +msgstr "Waiting" + +msgid "Waiting for mount" +msgstr "Waiting for mount" + +msgid "Waiting for partition" +msgstr "Waiting for partition" + +msgid "Wakeup" +msgstr "Wakeup" + +msgid "Wakeup TV from standby" +msgstr "Wakeup TV from standby" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "Wakeup receiver from standby" + +msgid "Wakeup signal from TV" +msgstr "Wakeup signal from TV" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "Warning: no LNB; using factory defaults." + +msgid "Watch movies..." +msgstr "Watch movies..." + +msgid "Watch recordings..." +msgstr "Watch recordings..." + +msgid "Wed" +msgstr "Wed" + +msgid "Wednesday" +msgstr "ÇarÅŸem" + +msgid "Weekday" +msgstr "Weekday" + +msgid "Weighted position" +msgstr "Weighted position" + +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." + +msgid "Welcome..." +msgstr "Welcome..." + +msgid "West" +msgstr "West" + +msgid "West limit set" +msgstr "West limit set" + +msgid "What do you want to scan?" +msgstr "What do you want to scan?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "" + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "" + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "When enabled, a popup message will be shown when a movie has finished and the next one will start." + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "When enabled, a popup message will be shown when a recording starts." + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "When enabled, a radio background image will be visible while listening to a radio channel." + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "" + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "When enabled, channel numbering will start at '1' for each bouquet." + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "When enabled, encryption info will be shown in the infobar (when supported by the skin)." + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "When enabled, error messages related to the Common Interface module will not be shown." + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "When enabled, error messages related to zapping will not be shown." + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "" + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "When enabled, graphical DVB subtitles will be centered horizontally." + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "When enabled, graphical DVB subtitles will be displayed at their original position." + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "" + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." + +msgid "When enabled, number markers will be hiden." +msgstr "" + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "When enabled, services may be grouped in multiple bouquets." + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "When enabled, show channel numbers in the channel selection screen." + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "When enabled, subtitles for the hearing impaired can be used." + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "When enabled, teletext pages will be cached, allowing faster access." + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "When enabled, teletext subtitles will be displayed at their original position." + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "When enabled, the channel selection list will be hidden while listening to a radio channel" + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "When enabled, the infobar will be displayed when a new event starts." + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "When enabled, the infobar will be displayed when changing channels." + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "When enabled, the original line breaks will be removed from the teletext subtitles." + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "When enabled, the receiver will automatically use the audio track which you selected before." + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "When enabled, the receiver will automatically use the subtitles which you selected before." + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "When enabled, the receiver will select an AC3 track (when available)." + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "" + +msgid "When enabled, use DHCP for the IP configuration." +msgstr "When enabled, use DHCP for the IP configuration." + +#, fuzzy +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "When enabled, the receiver will select an AC3 track (when available)." + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "When nonzero, a recording will start earlier than the starting time indicated by the EPG." + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "When nonzero, a recording will stop later than the ending time indicated by the EPG." + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." + +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" + +msgid "Where do you want to backup your settings?" +msgstr "Where do you want to backup your settings?" + +msgid "Where to save temporary timeshift recordings?" +msgstr "Where to save temporary timeshift recordings?" + +msgid "Wireless LAN" +msgstr "Wireless LAN" + +msgid "Wireless network" +msgstr "Wireless network" + +msgid "Wireless network configuration..." +msgstr "Wireless network configuration..." + +msgid "Wireless network connection setup" +msgstr "Wireless network connection setup" + +msgid "Wireless network connection setup." +msgstr "Wireless network connection setup." + +msgid "Wireless network state" +msgstr "Wireless network state" + +msgid "With popup" +msgstr "" + +msgid "Without popup" +msgstr "" + +msgid "Would you like to install a softcam?" +msgstr "Would you like to install a softcam?" + +msgid "Write error while recording. Disk full?\n" +msgstr "Write error while recording. Disk full?\n" + +msgid "Write failed!" +msgstr "Write failed!" + +msgid "YPbPr" +msgstr "YPbPr" + +msgid "Year" +msgstr "Year" + +msgid "Yellow DVB subtitles" +msgstr "Yellow DVB subtitles" + +msgid "Yes" +msgstr "Yes" + +msgid "Yes and save" +msgstr "" + +msgid "Yes and save in movie dir" +msgstr "" + +msgid "Yes to all" +msgstr "Yes to all" + +msgid "Yes, always" +msgstr "Yes, always" + +msgid "Yes, and delete this movie" +msgstr "Yes, and delete this movie" + +msgid "Yes, backup my settings!" +msgstr "Yes, backup my settings!" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +msgid "Yes, do a manual scan now" +msgstr "Yes, do a manual scan now" + +msgid "Yes, do an automatic scan now" +msgstr "Yes, do an automatic scan now" + +msgid "Yes, do another manual scan now" +msgstr "Yes, do another manual scan now" + +msgid "Yes, perform a shutdown now." +msgstr "Yes, perform a shutdown now." + +msgid "Yes, restore the settings now" +msgstr "Yes, restore the settings now" + +msgid "Yes, returning to movie list" +msgstr "Yes, returning to movie list" + +msgid "Yesterday" +msgstr "Yesterday" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" + +msgid "You can cancel the installation." +msgstr "You can cancel the installation." + +msgid "You can cancel the removal." +msgstr "You can cancel the removal." + +msgid "You can continue watching TV etc. while this is running." +msgstr "You can continue watching TV etc. while this is running." + +msgid "You can install this plugin." +msgstr "You can install this plugin." + +msgid "You can only burn receiver recordings!" +msgstr "You can only burn receiver recordings!" + +msgid "You can remove this plugin." +msgstr "You can remove this plugin." + +msgid "You cannot delete this!" +msgstr "You cannot delete this!" + +msgid "You didn't select a channel to record from." +msgstr "You didn't select a channel to record from." + +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "You have chosen to backup your settings. Please press OK to start the backup now." + +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." + +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." + +#, python-format +msgid "You have to wait %s!" +msgstr "You have to wait %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." + +msgid "You system does not support ext4" +msgstr "You system does not support ext4" + +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "Your backup succeeded. We will now continue to explain the further upgrade process." + +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" + +msgid "Your current collection will get lost!" +msgstr "Your current collection will get lost!" + +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" + +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "Your internet connection is working (ip: %s)" + +msgid "Your network configuration has been activated." +msgstr "Your network configuration has been activated." + +msgid "Your receiver does not have an internet connection" +msgstr "Your receiver does not have an internet connection" + +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." + +msgid "Your receiver is rebooting" +msgstr "Your receiver is rebooting" + +msgid "Your receiver is shutting down" +msgstr "Your receiver is shutting down" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "Your receiver is shutting down. Please stand by..." + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "" + +msgid "Your receiver will got to standby due to inactivity." +msgstr "" + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "Your receiver will restart after pressing OK on your remote control." + +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." + +msgid "Zap" +msgstr "Zap" + +msgid "Zap back to previously tuned service?" +msgstr "Zap back to previously tuned service?" + +msgid "Zap back to service before positioner setup?" +msgstr "Zap back to service before positioner setup?" + +msgid "Zap back to service before tuner setup?" +msgstr "Zap back to service before tuner setup?" + +msgid "Zap focus to Picture in Picture" +msgstr "Zap focus to Picture in Picture" + +msgid "Zap focus to main screen" +msgstr "Zap focus to main screen" + +msgid "Zap mode" +msgstr "Zap mode" + +msgid "Zap to selected channel" +msgstr "Zap to selected channel" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "Zap to selected channel, or show detailed event info (depends on configuration)" + +msgid "[alternative edit]" +msgstr "[alternative edit]" + +msgid "[bouquet edit]" +msgstr "[bouquet edit]" + +msgid "[favourite edit]" +msgstr "[favourite edit]" + +msgid "[move mode]" +msgstr "[move mode]" + +msgid "a gui to assign services/providers to common interface modules" +msgstr "a gui to assign services/providers to common interface modules" + +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "a gui to assign services/providers/caids to common interface modules" + +msgid "abort alternatives edit" +msgstr "abort alternatives edit" + +msgid "abort bouquet edit" +msgstr "abort bouquet edit" + +msgid "abort favourites edit" +msgstr "abort favourites edit" + +msgid "about to start" +msgstr "about to start" + +msgid "activate network adapter configuration" +msgstr "activate network adapter configuration" + +msgid "add alternatives" +msgstr "add alternatives" + +msgid "add bookmark" +msgstr "add bookmark" + +msgid "add bouquet" +msgstr "add bouquet" + +msgid "add marker" +msgstr "add marker" + +msgid "add service to bouquet" +msgstr "add service to bouquet" + +msgid "add service to favourites" +msgstr "add service to favourites" + +msgid "add to parental protection" +msgstr "add to parental protection" + +msgid "adult movie/drama" +msgstr "adult movie/drama" + +msgid "advanced" +msgstr "advanced" + +msgid "adventure/western/war" +msgstr "adventure/western/war" + +msgid "advertisement/shopping" +msgstr "advertisement/shopping" + +msgid "after " +msgstr "" + +msgid "alphabetic" +msgstr "alphabetic" + +msgid "alphabetic reverse" +msgstr "alphabetic reverse" + +msgid "alternative" +msgstr "" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "arts/culture (without music, general)" + +msgid "arts/culture magazine" +msgstr "arts/culture magazine" + +msgid "athletics" +msgstr "athletics" + +msgid "audio tracks" +msgstr "audio tracks" + +msgid "auto" +msgstr "auto" + +msgid "automatic" +msgstr "automatic" + +msgid "back" +msgstr "back" + +msgid "background image" +msgstr "background image" + +msgid "ballet" +msgstr "ballet" + +#, python-format +msgid "bc%s" +msgstr "bc%s" + +msgid "better" +msgstr "better" + +msgid "black" +msgstr "black" + +msgid "black & white" +msgstr "black & white" + +msgid "blacklist" +msgstr "blacklist" + +msgid "blue" +msgstr "blue" + +msgid "broadcasting/press" +msgstr "broadcasting/press" + +msgid "by date" +msgstr "by date" + +msgid "cartoon/puppets" +msgstr "cartoon/puppets" + +msgid "center" +msgstr "center" + +msgid "centered" +msgstr "" + +msgid "centered, wrapped" +msgstr "" + +msgid "chapters" +msgstr "chapters" + +msgid "childrens's/youth program (general)" +msgstr "childrens's/youth program (general)" + +msgid "circular left" +msgstr "circular left" + +msgid "circular right" +msgstr "circular right" + +msgid "comedy" +msgstr "comedy" + +msgid "complex" +msgstr "complex" + +msgid "config menu" +msgstr "config menu" + +msgid "confirmed" +msgstr "confirmed" + +msgid "connected" +msgstr "connected" + +msgid "continue" +msgstr "continue" + +msgid "cooking" +msgstr "cooking" + +msgid "copy to bouquets" +msgstr "copy to bouquets" + +msgid "create directory" +msgstr "create directory" + +#, python-format +msgid "currently installed image: %s" +msgstr "currently installed image: %s" + +msgid "daily" +msgstr "daily" + +msgid "day" +msgstr "day" + +msgid "default" +msgstr "default" + +msgid "delete cut" +msgstr "delete cut" + +msgid "delete..." +msgstr "" + +msgid "descramble and record ecm" +msgstr "descramble and record ecm" + +msgid "detective/thriller" +msgstr "detective/thriller" + +msgid "disable" +msgstr "disable" + +msgid "disable move mode" +msgstr "disable move mode" + +msgid "disabled" +msgstr "disabled" + +msgid "disconnected" +msgstr "disconnected" + +msgid "discussion/interview/debate" +msgstr "discussion/interview/debate" + +msgid "do nothing" +msgstr "do nothing" + +msgid "documentary" +msgstr "documentary" + +msgid "don't descramble, record ecm" +msgstr "don't descramble, record ecm" + +msgid "done!" +msgstr "done!" + +msgid "east" +msgstr "east" + +msgid "economics/social advisory" +msgstr "economics/social advisory" + +msgid "edit alternatives" +msgstr "edit alternatives" + +msgid "education/science/factual topics (general)" +msgstr "education/science/factual topics (general)" + +msgid "empty" +msgstr "empty" + +msgid "enable" +msgstr "enable" + +msgid "enable bouquet edit" +msgstr "enable bouquet edit" + +msgid "enable favourite edit" +msgstr "enable favourite edit" + +msgid "enable move mode" +msgstr "enable move mode" + +msgid "enabled" +msgstr "enabled" + +msgid "end alternatives edit" +msgstr "end alternatives edit" + +msgid "end bouquet edit" +msgstr "end bouquet edit" + +msgid "end cut here" +msgstr "end cut here" + +msgid "end favourites edit" +msgstr "end favourites edit" + +msgid "entertainment (10-16 year old)" +msgstr "entertainment (10-16 year old)" + +msgid "entertainment (6-14 year old)" +msgstr "entertainment (6-14 year old)" + +msgid "equal to" +msgstr "equal to" + +msgid "equestrian" +msgstr "equestrian" + +msgid "exit DVD player or return to file browser" +msgstr "exit DVD player or return to file browser" + +msgid "exit movielist" +msgstr "" + +msgid "exit network adapter configuration" +msgstr "exit network adapter configuration" + +msgid "exit networkadapter setup menu" +msgstr "exit networkadapter setup menu" + +msgid "experimental film/video" +msgstr "experimental film/video" + +msgid "false" +msgstr "false" + +msgid "fashion" +msgstr "fashion" + +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "fileformats (BMP, PNG, JPG, GIF)" + +msgid "filename" +msgstr "filename" + +msgid "film/cinema" +msgstr "film/cinema" + +msgid "fine arts" +msgstr "fine arts" + +msgid "fine-tune your display" +msgstr "fine-tune your display" + +msgid "fitness & health" +msgstr "fitness & health" + +msgid "flat alphabetic" +msgstr "flat alphabetic" + +msgid "flat alphabetic reverse" +msgstr "flat alphabetic reverse" + +msgid "folk/traditional music" +msgstr "folk/traditional music" + +msgid "football/soccer" +msgstr "football/soccer" + +msgid "foreign countries/expeditions" +msgstr "foreign countries/expeditions" + +msgid "forward to the next chapter" +msgstr "forward to the next chapter" + +msgid "free" +msgstr "free" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "further education" + +msgid "game show/quiz/contest" +msgstr "game show/quiz/contest" + +msgid "gardening" +msgstr "gardening" + +msgid "go to deep standby" +msgstr "go to deep standby" + +msgid "go to standby" +msgstr "go to standby" + +msgid "grab this frame as bitmap" +msgstr "grab this frame as bitmap" + +msgid "green" +msgstr "green" + +msgid "handicraft" +msgstr "handicraft" + +msgid "height" +msgstr "height" + +msgid "help..." +msgstr "help..." + +msgid "horizontal" +msgstr "horizontal" + +msgid "information/education/school program" +msgstr "information/education/school program" + +msgid "init module" +msgstr "init module" + +msgid "init modules" +msgstr "init modules" + +msgid "insert mark here" +msgstr "insert mark here" + +msgid "invalid type" +msgstr "invalid type" + +msgid "jazz" +msgstr "jazz" + +msgid "jump back to the previous title" +msgstr "jump back to the previous title" + +msgid "jump forward to the next title" +msgstr "jump forward to the next title" + +msgid "languages" +msgstr "languages" + +msgid "leave movie player..." +msgstr "leave movie player..." + +msgid "left" +msgstr "left" + +msgid "left, wrapped" +msgstr "" + +msgid "leisure hobbies (general)" +msgstr "leisure hobbies (general)" + +msgid "length" +msgstr "length" + +msgid "limit ..., aborting !" +msgstr "limit ..., aborting !" + +msgid "list style compact" +msgstr "list style compact" + +msgid "list style compact with description" +msgstr "list style compact with description" + +msgid "list style default" +msgstr "list style default" + +msgid "list style single line" +msgstr "list style single line" + +msgid "literature" +msgstr "literature" + +msgid "live broadcast" +msgstr "live broadcast" + +msgid "locked" +msgstr "locked" + +msgid "loopthrough to" +msgstr "loopthrough to" + +msgid "magazines/reports/documentary" +msgstr "magazines/reports/documentary" + +msgid "manual" +msgstr "manual" + +msgid "martial sports" +msgstr "martial sports" + +msgid "medicine/physiology/psychology" +msgstr "medicine/physiology/psychology" + +msgid "menu" +msgstr "menu" + +msgid "mins" +msgstr "mins" + +msgid "minutes" +msgstr "minutes" + +msgid "month" +msgstr "month" + +msgid "motor sport" +msgstr "motor sport" + +msgid "motoring" +msgstr "motoring" + +msgid "move down to last entry" +msgstr "move down to last entry" + +msgid "move down to next entry" +msgstr "move down to next entry" + +msgid "move up to first entry" +msgstr "move up to first entry" + +msgid "move up to previous entry" +msgstr "move up to previous entry" + +msgid "movie/drama (general)" +msgstr "movie/drama (general)" + +msgid "multinorm" +msgstr "multinorm" + +msgid "music/ballet/dance (general)" +msgstr "music/ballet/dance (general)" + +msgid "musical/opera" +msgstr "musical/opera" + +msgid "nature/animals/environment" +msgstr "nature/animals/environment" + +msgid "never" +msgstr "never" + +msgid "new media" +msgstr "new media" + +msgid "news magazine" +msgstr "news magazine" + +msgid "news/current affairs (general)" +msgstr "news/current affairs (general)" + +msgid "news/weather report" +msgstr "news/weather report" + +msgid "no" +msgstr "no" + +msgid "no CAId selected" +msgstr "no CAId selected" + +msgid "no CI slots found" +msgstr "no CI slots found" + +msgid "no module found" +msgstr "no module found" + +msgid "no storage devices found" +msgstr "no storage devices found" + +msgid "none" +msgstr "none" + +msgid "normal" +msgstr "normal" + +msgid "not configured" +msgstr "not configured" + +msgid "not locked" +msgstr "not locked" + +msgid "not supported" +msgstr "not supported" + +msgid "not used" +msgstr "not used" + +msgid "nothing connected" +msgstr "nothing connected" + +msgid "of a DUAL layer medium used." +msgstr "of a DUAL layer medium used." + +msgid "of a SINGLE layer medium used." +msgstr "of a SINGLE layer medium used." + +msgid "off" +msgstr "off" + +msgid "offset is" +msgstr "offset is" + +msgid "on" +msgstr "on" + +msgid "on READ ONLY medium." +msgstr "on READ ONLY medium." + +msgid "on end of movie" +msgstr "" + +msgid "once" +msgstr "once" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +msgid "open nameserver configuration" +msgstr "open nameserver configuration" + +msgid "original" +msgstr "original" + +msgid "original language" +msgstr "original language" + +msgid "pass" +msgstr "pass" + +msgid "performing arts" +msgstr "performing arts" + +msgid "play as picture in picture" +msgstr "play as picture in picture" + +msgid "play in mainwindow" +msgstr "play in mainwindow" + +msgid "please press OK when ready" +msgstr "please press OK when ready" + +msgid "please wait, loading picture..." +msgstr "please wait, loading picture..." + +msgid "popular culture/traditional arts" +msgstr "popular culture/traditional arts" + +msgid "pre-school children's program" +msgstr "pre-school children's program" + +msgid "receiver software because updates are available." +msgstr "receiver software because updates are available." + +msgid "record" +msgstr "record" + +msgid "recording..." +msgstr "recording..." + +msgid "red" +msgstr "red" + +msgid "religion" +msgstr "religion" + +msgid "remarkable people" +msgstr "remarkable people" + +msgid "remove after this position" +msgstr "remove after this position" + +msgid "remove all alternatives" +msgstr "remove all alternatives" + +msgid "remove all new found flags" +msgstr "remove all new found flags" + +msgid "remove before this position" +msgstr "remove before this position" + +msgid "remove bookmark" +msgstr "remove bookmark" + +msgid "remove directory" +msgstr "remove directory" + +msgid "remove entry" +msgstr "remove entry" + +msgid "remove from parental protection" +msgstr "remove from parental protection" + +msgid "remove new found flag" +msgstr "remove new found flag" + +msgid "remove selected satellite" +msgstr "remove selected satellite" + +msgid "remove this mark" +msgstr "remove this mark" + +msgid "rename entry" +msgstr "" + +msgid "repeat playlist" +msgstr "repeat playlist" + +msgid "repeated" +msgstr "repeated" + +msgid "reverse by date" +msgstr "reverse by date" + +msgid "rewind to the previous chapter" +msgstr "rewind to the previous chapter" + +msgid "right" +msgstr "right" + +msgid "right, wrapped" +msgstr "" + +msgid "rock/pop" +msgstr "rock/pop" + +msgid "romance" +msgstr "romance" + +msgid "save last directory on exit" +msgstr "save last directory on exit" + +msgid "save playlist on exit" +msgstr "save playlist on exit" + +msgid "scan state" +msgstr "scan state" + +msgid "science fiction/fantasy/horror" +msgstr "science fiction/fantasy/horror" + +msgid "second cable of motorized LNB" +msgstr "second cable of motorized LNB" + +msgid "seconds" +msgstr "seconds" + +msgid "select" +msgstr "select" + +msgid "select CAId's" +msgstr "select CAId's" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +msgid "select menu entry" +msgstr "select menu entry" + +msgid "select movie" +msgstr "" + +msgid "select the movie path" +msgstr "" + +msgid "serious music/classic music" +msgstr "serious music/classic music" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "serious/classical/religious/historical movie/drama" + +msgid "service PIN" +msgstr "service PIN" + +msgid "set as startup service" +msgstr "set as startup service" + +msgid "setup PIN" +msgstr "setup PIN" + +msgid "show DVD main menu" +msgstr "show DVD main menu" + +msgid "show all tags" +msgstr "show all tags" + +msgid "show alternatives" +msgstr "show alternatives" + +msgid "show event details" +msgstr "show event details" + +msgid "show extended description" +msgstr "" + +msgid "show mediaplayer on mainmenu" +msgstr "show mediaplayer on mainmenu" + +msgid "show softwaremanager in setup menu" +msgstr "show softwaremanager in setup menu" + +msgid "show softwaremanager on blue button" +msgstr "show softwaremanager on blue button" + +msgid "show tag menu" +msgstr "" + +msgid "show transponder info" +msgstr "show transponder info" + +msgid "show/game show (general)" +msgstr "show/game show (general)" + +msgid "shuffle" +msgstr "shuffle" + +msgid "shut down" +msgstr "shut down" + +msgid "simple" +msgstr "simple" + +msgid "skip backward" +msgstr "skip backward" + +msgid "skip forward" +msgstr "skip forward" + +msgid "soap/melodram/folkloric" +msgstr "soap/melodram/folkloric" + +msgid "social/political issues/economics (general)" +msgstr "social/political issues/economics (general)" + +msgid "social/spiritual science" +msgstr "social/spiritual science" + +msgid "sorting of playlists" +msgstr "sorting of playlists" + +msgid "special characters" +msgstr "special characters" + +msgid "special events" +msgstr "special events" + +msgid "special format data DVD (HDTV compatible)" +msgstr "special format data DVD (HDTV compatible)" + +msgid "sports (general)" +msgstr "sports (general)" + +msgid "sports magazine" +msgstr "sports magazine" + +msgid "standard" +msgstr "standard" + +msgid "start cut here" +msgstr "start cut here" + +msgid "start directory" +msgstr "start directory" + +msgid "stepsize" +msgstr "stepsize" + +msgid "stereo" +msgstr "stereo" + +msgid "stop using as startup service" +msgstr "stop using as startup service" + +msgid "switch to bookmarks" +msgstr "switch to bookmarks" + +msgid "switch to filelist" +msgstr "switch to filelist" + +msgid "switch to the next angle" +msgstr "switch to the next angle" + +msgid "switch to the next audio track" +msgstr "switch to the next audio track" + +msgid "switch to the next subtitle language" +msgstr "switch to the next subtitle language" + +msgid "talk show" +msgstr "talk show" + +msgid "team sports" +msgstr "team sports" + +msgid "technology/natural science" +msgstr "technology/natural science" + +msgid "template file" +msgstr "template file" + +msgid "tennis/squash" +msgstr "tennis/squash" + +msgid "this recording" +msgstr "this recording" + +msgid "this service is protected by a parental control pin" +msgstr "this service is protected by a parental control pin" + +msgid "toggle time, chapter, audio, subtitle info" +msgstr "toggle time, chapter, audio, subtitle info" + +msgid "top" +msgstr "top" + +msgid "tourism/travel" +msgstr "tourism/travel" + +msgid "true" +msgstr "true" + +msgid "unavailable" +msgstr "unavailable" + +msgid "unconfirmed" +msgstr "unconfirmed" + +msgid "undefined" +msgstr "undefined" + +msgid "unknown" +msgstr "unknown" + +msgid "unknown service" +msgstr "unknown service" + +msgid "unpublished" +msgstr "unpublished" + +msgid "until standby/restart" +msgstr "until standby/restart" + +msgid "user defined" +msgstr "user defined" + +msgid "variety show" +msgstr "variety show" + +msgid "vertical" +msgstr "vertical" + +msgid "wait for ci..." +msgstr "wait for ci..." + +msgid "wait for mmi..." +msgstr "wait for mmi..." + +msgid "waiting" +msgstr "waiting" + +msgid "water sport" +msgstr "water sport" + +msgid "weekly" +msgstr "weekly" + +msgid "west" +msgstr "west" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "white" + +msgid "whitelist" +msgstr "whitelist" + +msgid "width" +msgstr "width" + +msgid "winter sport" +msgstr "winter sport" + +msgid "wireless network interface" +msgstr "wireless network interface" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "" +msgstr[1] "" + +msgid "working" +msgstr "working" + +msgid "yellow" +msgstr "yellow" + +msgid "yes" +msgstr "yes" + +msgid "yes (keep feeds)" +msgstr "yes (keep feeds)" + +msgid "zap" +msgstr "zap" + +msgid "zap and record" +msgstr "" + +msgid "zapped" +msgstr "zapped" + +#~ msgid "A demo plugin for TPM usage." +#~ msgstr "A demo plugin for TPM usage." + +#~ msgid "AA" +#~ msgstr "AA" + +#~ msgid "AB" +#~ msgstr "AB" + +#~ msgid "AC3 downmix" +#~ msgstr "AC3 downmix" + +#~ msgid "Action:" +#~ msgstr "Eylem:" + +#~ msgid "Activate PiP" +#~ msgstr "Aktif bike" + +#~ msgid "Add/remove timer for current event" +#~ msgstr "Add/remove timer for current event" + +#~ msgid "Adjust HDMI CEC settings" +#~ msgstr "Adjust HDMI CEC settings" + +#~ msgid "All satellites" +#~ msgstr "Hemu satellites" + +#~ msgid "BA" +#~ msgstr "BA" + +#~ msgid "BB" +#~ msgstr "BB" + +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "Behavior of 'pause' when paused" + +#~ msgid "Committed DiSEqC command" +#~ msgstr "Qomuta Disegi" + +#~ msgid "Configure the behavior of the 'pause' key when movie playback is already paused." +#~ msgstr "Configure the behavior of the 'pause' key when movie playback is already paused." + +#~ msgid "Confirm shutdown:" +#~ msgstr "Confirm shutdown:" + +#~ msgid "DTS downmix" +#~ msgstr "DTS downmix" + +#~ msgid "DiSEqC repeats" +#~ msgstr "DiSEqC repeats" + +#~ msgid "Dish" +#~ msgstr "Dish" + +#~ msgid "Enable timer" +#~ msgstr "Enable timer" + +#~ msgid "General AC3 delay (ms)" +#~ msgstr "General AC3 delay (ms)" + +#~ msgid "General PCM delay (ms)" +#~ msgstr "General PCM delay (ms)" + +#~ msgid "Goto specific data/time" +#~ msgstr "Goto specific data/time" + +#~ msgid "No sat tuner found!" +#~ msgstr "No sat tuner found!" + +#~ msgid "No satellite frontend found!!" +#~ msgstr "No satellite frontend found!!" + +#~ msgid "No, but restart from beginning" +#~ msgstr "No, but restart from beginning" + +#~ msgid "Open service list and select next channel" +#~ msgstr "Open service list and select next channel" + +#~ msgid "Open service list and select previous channel" +#~ msgstr "Open service list and select previous channel" + +#~ msgid "Press '0' to toggle internal/external PiP." +#~ msgstr "Press '0' to toggle internal/external PiP." + +#~ msgid "Remove timer" +#~ msgstr "Remove timer" + +#~ msgid "Send DiSEqC" +#~ msgstr "Send DiSEqC" + +#~ msgid "Shutdown receiver after" +#~ msgstr "Shutdown receiver after" + +#~ msgid "Sleep timer action:" +#~ msgstr "Sleep timer action:" + +#~ msgid "Standby / Restart" +#~ msgstr "Standby / Restart" + +#~ msgid "Switch next channel" +#~ msgstr "Switch next channel" + +#~ msgid "TV system" +#~ msgstr "TV system" + +#~ msgid "Timer status:" +#~ msgstr "Timer status:" + +#~ msgid "Tuning step size" +#~ msgstr "Tuning step size" + +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Uncommitted DiSEqC command" + +#~ msgid "Use time of currently running service" +#~ msgstr "Use time of currently running service" + +#~ msgid "When enabled, external subtitles (in media files) will be displayed in yellow, instead of the original color." +#~ msgstr "When enabled, external subtitles (in media files) will be displayed in yellow, instead of the original color." + +#~ msgid "When enabled, your TV will automatically select the SCART input when you switch on your receiver." +#~ msgstr "When enabled, your TV will automatically select the SCART input when you switch on your receiver." + +#~ msgid "Yellow external subtitles" +#~ msgstr "Yellow external subtitles" + +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "Zap back to service before satfinder?" + +#~ msgid "dreambox advanced remote control (native)" +#~ msgstr "dreambox advanced remote control (native)" + +#~ msgid "dreambox front panel" +#~ msgstr "dreambox front panel" + +#~ msgid "dreambox ir keyboard" +#~ msgstr "dreambox ir keyboard" + +#~ msgid "dreambox ir mouse" +#~ msgstr "dreambox ir mouse" + +#~ msgid "dreambox remote control (native)" +#~ msgstr "dreambox remote control (native)" + +#~ msgid "play from next mark or playlist entry" +#~ msgstr "play from next mark or playlist entry" + +#~ msgid "play from previous mark or playlist entry" +#~ msgstr "play from previous mark or playlist entry" + +#~ msgid "scan done!" +#~ msgstr "scan done!" + +#~ msgid "scan in progress - %d%% done!" +#~ msgstr "scan in progress - %d%% done!" + +#~ msgid "shutdown" +#~ msgstr "shutdown" + +#~ msgid "standby" +#~ msgstr "standby" + +#~ msgid "tuner is not supported" +#~ msgstr "tuner is not supported" diff --git a/po/lt.po b/po/lt.po new file mode 100644 index 0000000..fa12afb --- /dev/null +++ b/po/lt.po @@ -0,0 +1,8337 @@ +# Copyright (C) 2005 THE tuxbox-enigma'S COPYRIGHT HOLDER +# This file is distributed under the same license as the tuxbox-enigma package. +# Automatically generated, 2005. +msgid "" +msgstr "" +"Project-Id-Version: tuxbox-enigma 0.0.1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2010-04-03 17:28+0200\n" +"Last-Translator: Audronis Grincevicius <audrgrin@takas.lt>\n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-SourceCharset: utf-8\n" + +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"IÅ¡plÄ—stiniai pasirinkimai ir nustatymai." + +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"Paspaudus OK, praÅ¡ome laukti!" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" + +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"Redaguoti atnaujinimo Å¡altinio adresus." + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" + +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"Spauskite OK ant jÅ«sų distancinio valdymo pulto, kad tÄ™sti." + +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"Atkurti jÅ«sų atsarginÄ™ kopijÄ… pagal datÄ…." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" + +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"Skanuoti vietinius paketus ir įdiegti juos." + +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Pasirinkite jÅ«sų atsarginÄ—s kopijos įrenginį.\n" +"Dabartinis įrenginys: " + +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"PeržiÅ«rÄ—kite, įdiekite ir paÅ¡alinkite esamus arba įdiegtus paketus." + +msgid " (PiP)" +msgstr "" + +msgid " (Radio)" +msgstr "" + +msgid " (TV)" +msgstr "" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +msgid " extensions." +msgstr " iÅ¡plÄ—timai." + +msgid " ms" +msgstr " ms" + +msgid " packages selected." +msgstr " paketai iÅ¡sirinkti." + +msgid " updates available." +msgstr " pasiekiami atnaujinimai." + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "" + +msgid "%A %d %B" +msgstr "" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "" + +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "" + +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, fuzzy, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "%d kanalai surasti!" +msgstr[1] "%d kanalai surasti!" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" + +#, fuzzy, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d darbas yra veikiantis fone!" +msgstr[1] "%d darbas yra veikiantis fone!" + +#, python-format +msgid "%d min" +msgstr "%d min" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d minutes" +msgstr "" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "" +msgstr[1] "" + +#, fuzzy, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "/var direktorijÄ…" +msgstr[1] "/var direktorijÄ…" + +#, fuzzy, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "rastas 1 belaidis tinklas!" +msgstr[1] "rastas 1 belaidis tinklas!" + +msgid "%d-%b-%Y %-H:%M" +msgstr "" + +msgid "%d-%m" +msgstr "" + +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "" + +#, fuzzy, python-format +msgid "%s %s free disk space" +msgstr "laisvos vietos diske" + +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "" + +#, fuzzy, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] " pasiekiami atnaujinimai." +msgstr[1] " pasiekiami atnaujinimai." + +#, python-format +msgid "%s%d min" +msgstr "" + +#, python-format +msgid "%s/%s: %s" +msgstr "" + +msgid "(ZAP)" +msgstr "(JUNGTI)" + +msgid "(empty)" +msgstr "(laisva)" + +msgid "(show optional DVD audio menu)" +msgstr "(rodyti pasirenkamÄ… DVD garso meniu)" + +msgid "* Only available if more than one interface is active." +msgstr "*Pasiekiamas tiktai, jei daugiau kaip viena sÄ…saja yra aktyvi." + +msgid "/s" +msgstr "" + +msgid "0" +msgstr "0" + +msgid "1" +msgstr "1" + +msgid "1.0" +msgstr "1.0" + +msgid "1.1" +msgstr "1.1" + +msgid "1.2" +msgstr "1.2" + +msgid "12V output" +msgstr "12V iÅ¡Ä—jimas" + +msgid "13 V" +msgstr "13 V" + +msgid "16:10" +msgstr "16:10" + +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +msgid "16:9" +msgstr "16:9" + +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +msgid "16:9 always" +msgstr "16:9 visada" + +msgid "18 V" +msgstr "18 V" + +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "" + +msgid "24" +msgstr "" + +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +msgid "3" +msgstr "3" + +msgid "30" +msgstr "" + +msgid "3d mode" +msgstr "" + +msgid "4" +msgstr "4" + +msgid "4:3" +msgstr "4:3" + +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +msgid "5" +msgstr "5" + +msgid "6" +msgstr "6" + +msgid "7" +msgstr "7" + +msgid "8" +msgstr "8" + +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +msgid "<Current movielist location>" +msgstr "<DabartinÄ— filmų sÄ…raÅ¡o vieta>" + +msgid "<Default movie location>" +msgstr "<Numatyta filmų vieta>" + +msgid "<Last timer location>" +msgstr "<Paskutinio laikmaÄio vieta>" + +msgid "<unknown>" +msgstr "<nežinomas>" + +msgid "??" +msgstr "??" + +msgid "A" +msgstr "A" + +#, fuzzy, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"KonfigÅ«racijos failas (%s) bus pakeistas pradedant nuo įdiegimo.\n" +"Ar norite iÅ¡saugoti savo versijÄ…?" + +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"KonfigÅ«racijos failas (%s) bus pakeistas pradedant nuo įdiegimo.\n" +"Ar norite iÅ¡saugoti savo versijÄ…?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "Grafinis EPG visiems kanalams iÅ¡ specifinio paketo" + +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"Ä®raÅ¡ymas prasidÄ—s:\n" +"%s" + +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"Vyksta įraÅ¡ymas.\n" +"KÄ… JÅ«s norite padaryti?" + +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "Vyksta įraÅ¡ymas. PraÅ¡ome sustabdyti įraÅ¡ymÄ… prieÅ¡ pozicionieriaus konfigÅ«ravimÄ…." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "" + +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "Vyksta įraÅ¡ymas. PraÅ¡ome sustabdyti įraÅ¡ymÄ… prieÅ¡ pozicionieriaus konfigÅ«ravimÄ…." + +#, python-format +msgid "A required tool (%s) was not found." +msgstr "Reikalingas įrankis (%s) nebuvo surastas." + +msgid "A search for available updates is currently in progress." +msgstr "Vyksta dabar pasiekiamų atnaujinimų paieÅ¡ka." + +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"Rasta antra sukonfigÅ«ruotas sÄ…saja.\n" +"\n" +"JÅ«s norite iÅ¡jungti antrÄ… tinklo sÄ…sajÄ…?" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +msgid "A small overview of the available icon states and actions." +msgstr "ÄŒia yra maža turimų ikonų peržiÅ«ra." + +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"Laikmatis nutraukÄ— įraÅ¡ymÄ…!\n" +"IÅ¡jungti TV ir pakartoti iÅ¡ pradžių?\n" + +#, fuzzy +msgid "A/V settings" +msgstr "Garso / vaizdo nustatymai" + +msgid "AC3/DTS downmix" +msgstr "" + +msgid "Abort" +msgstr "Nutraukti" + +msgid "About" +msgstr "Apie" + +msgid "About..." +msgstr "Apie..." + +msgid "Accesspoint:" +msgstr "Prieigos taÅ¡kas:" + +msgid "Action on long powerbutton press" +msgstr "Veiksmas, ilgai spaudžiant įtampos mygtukÄ…" + +msgid "Action on short powerbutton press" +msgstr "Veiksmas, trumpai spaudžiant įtampos mygtukÄ…" + +msgid "Activate Picture in Picture" +msgstr "Aktyvuoti paveikslÄ—lį paveikslÄ—lyje" + +#, fuzzy +msgid "Activate current configuration" +msgstr "aktyvuokite dabartinÄ™ konfigÅ«racijÄ…" + +msgid "Activate network settings" +msgstr "Aktyvuoti tinklo nustatymus" + +#, fuzzy +msgid "Activate the configured network settings." +msgstr "Aktyvuoti tinklo nustatymus" + +msgid "Adapter settings" +msgstr "Tinklo nustatymai" + +msgid "Add" +msgstr "PridÄ—ti" + +msgid "Add Bookmark" +msgstr "PridÄ—ti žymÄ™" + +msgid "Add a mark" +msgstr "PridÄ—ti žymeklį" + +#, fuzzy +msgid "Add a nameserver entry" +msgstr "pridÄ—kite serverio pavadinimo įėjimÄ…" + +msgid "Add a new title" +msgstr "PridÄ—kite naujÄ… pavadinimÄ…" + +#, fuzzy +msgid "Add bookmark" +msgstr "pridÄ—ti žymÄ™" + +#, fuzzy +msgid "Add directory to playlist" +msgstr "pridÄ—ti direktorijÄ… į grojaraÅ¡tį" + +#, fuzzy +msgid "Add file to playlist" +msgstr "pridÄ—ti failÄ… į grojaraÅ¡tį" + +#, fuzzy +msgid "Add files to playlist" +msgstr "pridÄ—ti failus į grojaraÅ¡tį" + +msgid "Add more details to the crash log" +msgstr "" + +#, fuzzy +msgid "Add provider" +msgstr "pridÄ—ti TiekÄ—jÄ…" + +#, fuzzy +msgid "Add recording (enter recording duration)" +msgstr "pridÄ—ti įraÅ¡Ä… (įraÅ¡ykite įraÅ¡o ilgį)" + +#, fuzzy +msgid "Add recording (enter recording endtime)" +msgstr "pridÄ—ti įraÅ¡Ä… (įraÅ¡ykite įraÅ¡ymo pabaigos laikÄ…) " + +#, fuzzy +msgid "Add recording (indefinitely)" +msgstr "pridÄ—ti įraÅ¡Ä… (identiÅ¡kÄ…)" + +#, fuzzy +msgid "Add recording (stop after current event)" +msgstr "pridÄ—ti įraÅ¡Ä… (stabdyti po esamo įvykio)" + +#, fuzzy +msgid "Add service" +msgstr "pridÄ—ti KanalÄ…" + +msgid "Add timer" +msgstr "Laikmatis" + +msgid "Add title" +msgstr "Pavadinimas" + +msgid "Add to bouquet" +msgstr "PridÄ—ti į paketÄ…" + +msgid "Add to favourites" +msgstr "PridÄ—ti į mÄ—gstamiausius" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "" + +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "Sureguliuokite spalvas taip, kad visos spalvos ir atspalviai bÅ«tų atskiriami, bet atrodytų taip prisotinti, kiek galima. Jei jÅ«s esate patenkinti rezultatu, spauskite OK, kad uždarytumÄ—te vaizdo tikslų suderinimÄ…, ar pasinaudokite skaiÄių mygtukais, kad iÅ¡rinktumÄ—te kitus bandomuosius ekranus." + +msgid "Advanced" +msgstr "" + +#, fuzzy +msgid "Advanced options" +msgstr "IÅ¡plÄ—stiniai nustatymai" + +msgid "Advanced restore" +msgstr "IÅ¡plÄ—stinis atkÅ«rimas" + +#, fuzzy +msgid "Advanced software" +msgstr "IÅ¡plÄ—stinÄ— programinÄ— įranga" + +#, fuzzy +msgid "Advanced software plugin" +msgstr "IÅ¡plÄ—stinÄ— programinÄ—s įrangos papildoma programa" + +#, fuzzy +msgid "Advanced video enhancement setup" +msgstr "IÅ¡plÄ—stas vaizdo stiprinimo valdymas" + +#, fuzzy +msgid "Advanced video setup" +msgstr "IÅ¡plÄ—stiniai vaizdo nustatymai" + +msgid "After event" +msgstr "Po įvykio" + +msgid "Album" +msgstr "Albumas" + +msgid "Alignment of events" +msgstr "" + +msgid "Alignment of service names" +msgstr "" + +msgid "All" +msgstr "Visi" + +msgid "All ages" +msgstr "" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "" + +msgid "Allocate unused memory index" +msgstr "" + +msgid "Allow quit movieplayer with exit" +msgstr "" + +msgid "Allow subtitle language to equal audio language" +msgstr "" + +msgid "Allow subtitles for hearing impaired" +msgstr "" + +msgid "Alpha" +msgstr "Permatoma" + +#, fuzzy +msgid "Alternative" +msgstr "pridÄ—ti kitus" + +#, fuzzy +msgid "Alternative numbering mode" +msgstr "Kitoks radijo bÅ«das" + +msgid "Alternative services tuner priority" +msgstr "Kitų kanalų imtuvo pirmenybÄ—" + +msgid "Always ask" +msgstr "Visada klausti" + +msgid "Always hide infobar" +msgstr "" + +msgid "An empty filename is illegal." +msgstr "TuÅ¡Äias failo pavadinimas negalimas" + +#, fuzzy +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "Ä®vyko klaida, parsisiunÄiant paketo sÄ…raÅ¡Ä…. PraÅ¡ome pabandyti dar kartÄ…." + +msgid "An unknown error occurred!" +msgstr "Ä®vyko nežinoma klaida!" + +msgid "And will put your receiver in standby over " +msgstr "" + +msgid "Any activity" +msgstr "" + +msgid "Arabic" +msgstr "Arabų" + +msgid "Are you sure to remove this entry?" +msgstr "" + +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"JÅ«s esate įsitikinÄ™s, kad jÅ«s norite aktyvuoti Å¡iÄ… tinklo konfigÅ«racijÄ…?\n" +"\n" + +#, fuzzy +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"JÅ«s tikrai norite trinti\n" +"atsarginÄ™ kopijÄ…:\n" + +msgid "Are you sure you want to exit this wizard?" +msgstr "JÅ«s esate įsitikinÄ™s, kad norite iÅ¡jungti šį vedlį?" + +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"JÅ«s esate įsitikinÄ™s, kad norite iÅ¡ naujo paleisti savo tinklo sÄ…sajas? \n" +"\n" + +#, fuzzy, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"JÅ«s esate įsitikinÄ™s, kad norite atkurti savo Enigma2 atsarginÄ™ kopijÄ…?\n" +"Enigma2 iÅ¡ naujo pasileis po atkÅ«rimo" + +#, fuzzy +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"JÅ«s esate įsitikinÄ™s, kad norite atkurti savo Enigma2 atsarginÄ™ kopijÄ…?\n" +"Enigma2 iÅ¡ naujo pasileis po atkÅ«rimo" + +msgid "Artist" +msgstr "AtlikÄ—jas" + +msgid "Arts/Culture" +msgstr "" + +msgid "Ask user" +msgstr "Klausti vartotojo" + +#, fuzzy +msgid "Aspect ratio" +msgstr "Vaizdo formatas" + +#, fuzzy +msgid "Assigned CAIds:" +msgstr "paskirtas CAIds:" + +#, fuzzy +msgid "Assigned services/provider:" +msgstr "paskirtos Kanalai/TiekÄ—jai:" + +#, fuzzy +msgid "At beginning" +msgstr "pradžioje" + +#, fuzzy +msgid "At end" +msgstr "pabaigoje" + +msgid "Audio" +msgstr "Garsas" + +msgid "Audio PID" +msgstr "Garso PID" + +msgid "Audio language selection 1" +msgstr "" + +msgid "Audio language selection 2" +msgstr "" + +msgid "Audio language selection 3" +msgstr "" + +msgid "Audio language selection 4" +msgstr "" + +#, fuzzy +msgid "Audio options..." +msgstr "Garso nustatymai..." + +#, fuzzy, python-format +msgid "Audio track (%s) format" +msgstr "Garso takelio (%s) formatas" + +#, fuzzy, python-format +msgid "Audio track (%s) language" +msgstr "garso takelio (%s) kalba" + +msgid "Author: " +msgstr "Autorius:" + +msgid "Authoring mode" +msgstr "BÅ«do kÅ«rimas" + +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Automatinis" + +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Automatinis skyriaus perskÄ—limas kiekvienÄ…? minutÄ™ (0=niekada)" + +msgid "Auto flesh" +msgstr "Auto minkÅ¡tinimas" + +msgid "Auto focus" +msgstr "" + +msgid "Auto focus commencing ..." +msgstr "" + +msgid "Auto language selection" +msgstr "" + +msgid "Auto scart switching" +msgstr "Automatinis skarto perjungimas" + +msgid "Automatic" +msgstr "Automatinis" + +#, fuzzy +msgid "Automatic scan" +msgstr "AutomatinÄ— paieÅ¡ka" + +msgid "Automatically start timeshift after" +msgstr "" + +msgid "Automatically turn on external subtitles" +msgstr "" + +msgid "Available format variables" +msgstr "Galimi formatai" + +msgid "B" +msgstr "B" + +msgid "BER" +msgstr "BER" + +msgid "BER:" +msgstr "BER:" + +msgid "Back" +msgstr "Atgal" + +msgid "Background" +msgstr "Fonas" + +#, fuzzy +msgid "Background color" +msgstr "foninÄ— spalva" + +msgid "Background delete option" +msgstr "" + +msgid "Background delete speed" +msgstr "" + +#, fuzzy +msgid "Backup completed." +msgstr "AtsarginÄ— kopija nepavyko." + +msgid "Backup failed." +msgstr "AtsarginÄ— kopija nepavyko." + +msgid "Backup is running..." +msgstr "Daroma atsarginÄ— kopija..." + +msgid "Backup system settings" +msgstr "AtsarginÄ— sisteminių nustatymų kopija" + +msgid "Band" +msgstr "Juosta" + +msgid "Bandwidth" +msgstr "Juostos plotis" + +msgid "Basque" +msgstr "" + +msgid "Begin time" +msgstr "Pradžios laikas" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +msgid "Behavior of 0 key in PiP-mode" +msgstr "0 mygtuko padÄ—tis PiP režime" + +msgid "Behavior when a movie is started" +msgstr "Elgsena, kai filmas prasidÄ—jÄ™s" + +msgid "Behavior when a movie is stopped" +msgstr "Elgsena, kai filmas sustabdytas" + +msgid "Behavior when a movie reaches the end" +msgstr "Elgsena, kai filmas pasiekia pabaigÄ…" + +msgid "Big PiP" +msgstr "" + +msgid "Bitrate:" +msgstr "Sparta bitais:" + +msgid "Black screen" +msgstr "" + +msgid "Black screen till locked" +msgstr "" + +msgid "Block noise reduction" +msgstr "Blokuoti triukÅ¡mo mažėjimÄ…" + +msgid "Blue boost" +msgstr "Daugiau mÄ—lynos" + +msgid "Bookmarks" +msgstr "ŽymÄ—s" + +msgid "Brightness" +msgstr "Å viesumas" + +msgid "Bulgarian" +msgstr "" + +msgid "Burn DVD" +msgstr "Ä®raÅ¡yti DVD" + +#, fuzzy, python-format +msgid "Burn audio track (%s)" +msgstr "įraÅ¡yti garso takelį (%s)" + +msgid "Burn existing image to DVD" +msgstr "Ä®raÅ¡yti esamÄ… atvaizdÄ… į DVD" + +msgid "Burn to DVD" +msgstr "Ä®raÅ¡yti į DVD" + +msgid "Bus: " +msgstr "Bus: " + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "" + +msgid "C" +msgstr "C" + +msgid "C-Band" +msgstr "C-juosta" + +msgid "CH" +msgstr "" + +msgid "CI assignment" +msgstr "CI nustatymas" + +msgid "CVBS" +msgstr "CVBS" + +msgid "Cable" +msgstr "KabelinÄ—" + +msgid "Cable Scan" +msgstr "" + +#, fuzzy +msgid "Cache thumbnails" +msgstr "SlÄ—pti nedidelius" + +msgid "Calculate" +msgstr "" + +msgid "Calculate all positions" +msgstr "" + +msgid "Calculation complete" +msgstr "" + +msgid "Calibrate" +msgstr "" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "" + +msgid "Cancel" +msgstr "AtÅ¡aukti" + +msgid "Cannot determine" +msgstr "" + +msgid "Cannot find any signal ..., aborting !" +msgstr "" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "" + +msgid "Cannot move to trash can" +msgstr "" + +msgid "Capacity: " +msgstr "Talpa: " + +msgid "Card" +msgstr "KortelÄ—" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "" + +msgid "Center time-labels and remove date" +msgstr "" + +msgid "Change bouquets in quickzap" +msgstr "Keisti paketus greitai perjungiant" + +msgid "Change pin code" +msgstr "Keisti PIN kodÄ…" + +#, fuzzy +msgid "Change recording (duration)" +msgstr "keisti įraÅ¡ymÄ… (trukmÄ™)" + +#, fuzzy +msgid "Change recording (endtime)" +msgstr "keisti įraÅ¡ymÄ… (pabaigos laikÄ…)" + +msgid "Change repeat and delay settings?" +msgstr "" + +msgid "Change service PIN" +msgstr "Keisti kanalo PIN kodÄ…" + +msgid "Change service PINs" +msgstr "Keisti kanalų PIN kodus" + +msgid "Change setup PIN" +msgstr "Keisti valdymo PIN kodÄ…" + +msgid "Change step size" +msgstr "Keisti žingsnio dydį" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "Pakeitimų sÄ…raÅ¡as" + +msgid "Channel" +msgstr "Kanalas" + +#, fuzzy +msgid "Channel list type" +msgstr "Kanalų meniu sÄ…raÅ¡as" + +msgid "Channel not in services list" +msgstr "Kanalo nÄ—ra kanalų sÄ…raÅ¡e" + +#, fuzzy +msgid "Channel selection" +msgstr "Kanalo pasirinkimas" + +msgid "Channel:" +msgstr "Kanalas:" + +msgid "Channellist menu" +msgstr "Kanalų meniu sÄ…raÅ¡as" + +msgid "Chap." +msgstr "Skyr." + +msgid "Chapter" +msgstr "Skyrius" + +msgid "Chapter:" +msgstr "Skyrius:" + +msgid "Check" +msgstr "Tikrinti" + +msgid "Check the internet connection" +msgstr "" + +msgid "Check the internet connection again" +msgstr "" + +#, fuzzy +msgid "Checking filesystem..." +msgstr "Tikrinti failų sistemÄ…..." + +msgid "Checking the internet connection" +msgstr "" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" + +msgid "Children/Youth" +msgstr "" + +msgid "Choose which tuner to configure." +msgstr "" + +msgid "Circular left" +msgstr "ApskritiminÄ— kairÄ—" + +msgid "Circular right" +msgstr "ApskritiminÄ— deÅ¡inÄ—" + +msgid "Cleanup" +msgstr "IÅ¡valyti" + +msgid "Clear" +msgstr "" + +msgid "Clear before scan" +msgstr "IÅ¡valyti prieÅ¡ skanavimÄ…" + +msgid "Clear fixed" +msgstr "" + +msgid "Clear log" +msgstr "IÅ¡valyti log" + +#, fuzzy +msgid "Clear playlist" +msgstr "iÅ¡valyti grojaraÅ¡tį" + +msgid "Close" +msgstr "Uždaryti" + +msgid "Close PiP on exit" +msgstr "" + +msgid "Close title selection" +msgstr "Uždaryti pavadinimo pasirinkimÄ…" + +msgid "Code rate HP" +msgstr "KodinÄ— norma HP" + +msgid "Code rate LP" +msgstr "KodinÄ— norma LP" + +msgid "Coderate HP" +msgstr "Kodavimo greitis HP" + +msgid "Coderate LP" +msgstr "Kodavimo greitis LP" + +msgid "Collection name" +msgstr "Kolekcijos pavadinimas" + +msgid "Collection settings" +msgstr "Kolekcijos nustatymai" + +#, fuzzy +msgid "Color format" +msgstr "Spalvų formatas" + +msgid "Command execution..." +msgstr "Vykdoma komanda..." + +msgid "Command order" +msgstr "Komandų seka" + +msgid "Common Interface" +msgstr "Ä®statomi moduliai" + +#, fuzzy +msgid "Common Interface assignment" +msgstr "Ä®statomo modulio priskyrimas" + +msgid "Communication" +msgstr "Komunikacija" + +#, fuzzy +msgid "Compact flash" +msgstr "KompaktinÄ— atmintinÄ—" + +msgid "Complete" +msgstr "Ä®vykdyta" + +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "Kompleksas (leidžia sumaiÅ¡yti garso takelius ir aspektus)," + +msgid "Composition of the recording filenames" +msgstr "Ä®raÅ¡o failų sudÄ—tis" + +#, fuzzy +msgid "Configuration mode" +msgstr "KonfigÅ«ravimo bÅ«das" + +#, fuzzy, python-format +msgid "Configuration mode: %s" +msgstr "KonfigÅ«ravimo bÅ«das" + +#, fuzzy +msgid "Configuration..." +msgstr "Tinklo konfigÅ«racija..." + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "" + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "" + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "" + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "" + +msgid "Configure how recording filenames are constructed." +msgstr "" + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +msgid "Configure interface" +msgstr "KonfigÅ«ruokite sÄ…sajÄ…" + +msgid "Configure nameservers" +msgstr "KonfigÅ«ruokite serverių pavadinimus" + +msgid "Configure on which devices the background delete option should be used." +msgstr "" + +#, fuzzy +msgid "Configure remote control type" +msgstr "TÄ—vų kontrolÄ—s rÅ«Å¡is" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "" + +#, fuzzy +msgid "Configure the IP address." +msgstr "KonfigÅ«ruokite sÄ…sajÄ…" + +msgid "Configure the aspect ratio of the screen." +msgstr "" + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +#, fuzzy +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "Elgsena, kai filmas sustabdytas" + +#, fuzzy +msgid "Configure the behavior when movie playback is started." +msgstr "Elgsena, kai filmas prasidÄ—jÄ™s" + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "" + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "" + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "" + +msgid "Configure the brightness level of the front panel display." +msgstr "" + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "" + +msgid "Configure the color of the teletext subtitles." +msgstr "" + +msgid "Configure the contrast level of the front panel display." +msgstr "" + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "" + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "" + +msgid "Configure the first audio language (highest priority)." +msgstr "" + +msgid "Configure the first subtitle language (highest priority)." +msgstr "" + +msgid "Configure the font size of the subtitles." +msgstr "" + +msgid "Configure the fourth audio language." +msgstr "" + +#, fuzzy +msgid "Configure the fourth subtitle language." +msgstr "perjungti į kitÄ… subtitrų kalbÄ…" + +msgid "Configure the function of a long press on the power button." +msgstr "" + +msgid "Configure the function of a short press on the power button." +msgstr "" + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "" + +#, fuzzy +msgid "Configure the gateway." +msgstr "KonfigÅ«ruokite sÄ…sajÄ…" + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "" + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "" + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "" + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "" + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "" + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "" + +msgid "Configure the latitude of your location." +msgstr "" + +msgid "Configure the longitude of your location." +msgstr "" + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "" + +#, fuzzy +msgid "Configure the nameserver (DNS)." +msgstr "KonfigÅ«ruokite serverių pavadinimus" + +#, fuzzy +msgid "Configure the netmask." +msgstr "KonfigÅ«ruokite sÄ…sajÄ…" + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "" + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "" + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "" + +#, fuzzy +msgid "Configure the possible fast forward speeds." +msgstr "Pradinis greito persukimo greitis" + +msgid "Configure the possible rewind speeds." +msgstr "" + +msgid "Configure the primary EPG language." +msgstr "" + +msgid "Configure the refresh rate of the screen." +msgstr "" + +msgid "Configure the screen resolution in PC output mode." +msgstr "" + +msgid "Configure the second audio language." +msgstr "" + +#, fuzzy +msgid "Configure the second subtitle language." +msgstr "perjungti į kitÄ… subtitrų kalbÄ…" + +msgid "Configure the secondary EPG language." +msgstr "" + +msgid "Configure the sharpness of the video scaling." +msgstr "" + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "" + +#, fuzzy +msgid "Configure the slow motion speeds." +msgstr "PalÄ—tinto judÄ—jimo greitis" + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "" + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "" + +msgid "Configure the third audio language." +msgstr "" + +#, fuzzy +msgid "Configure the third subtitle language." +msgstr "perjungti į kitÄ… subtitrų kalbÄ…" + +msgid "Configure the transparency of the OSD." +msgstr "" + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "" + +#, fuzzy +msgid "Configure the tuner mode." +msgstr "KonfigÅ«ravimo bÅ«das" + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "" + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "" + +msgid "Configure the video output mode (or resolution)." +msgstr "" + +msgid "Configure the way in which the receiver changes channels." +msgstr "" + +msgid "Configure where completed timers show up in the timer list." +msgstr "" + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "" + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "" + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "" + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "" + +msgid "Configure which color format should be used on the SCART output." +msgstr "" + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "" + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "" + +msgid "Configure your internal LAN" +msgstr "KonfigÅ«ruokite savo vidinį tinklÄ…" + +msgid "Configure your network again" +msgstr "KonfigÅ«ruokite savo tinklÄ… dar kartÄ…" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "" + +msgid "Configure your wireless LAN again" +msgstr "KonfigÅ«ruokite savo belaidį tinklÄ… dar kartÄ…" + +msgid "Configures which video output connector will be used." +msgstr "" + +msgid "Configuring" +msgstr "KonfigÅ«ruojama" + +msgid "Conflicting timer" +msgstr "LaikmaÄio nesuderinamumas" + +msgid "Connect" +msgstr "Jungtis" + +#, fuzzy +msgid "Connect to a wireless network" +msgstr "Jungtis prie Belaidžio Tinklo" + +msgid "Connected satellites" +msgstr "" + +msgid "Connected to" +msgstr "Prisijungta prie" + +msgid "Connected!" +msgstr "Prisijungta!" + +msgid "Constellation" +msgstr "Žvaigždynas" + +msgid "Content does not fit on DVD!" +msgstr "Turinys netinka dÄ—l DVD!" + +msgid "Continue" +msgstr "TÄ™sti" + +msgid "Continue in background" +msgstr "TÄ™sti fone" + +#, fuzzy +msgid "Continue playback" +msgstr "TÄ™sti žiÅ«rÄ—jimÄ…" + +msgid "Continue playing" +msgstr "TÄ™sti žiÅ«rÄ—jimÄ…" + +msgid "Continues play (loop)" +msgstr "" + +msgid "Contrast" +msgstr "Kontrastas" + +msgid "Convert ext3 filesystem to ext4" +msgstr "" + +msgid "Convert ext3 to ext4" +msgstr "" + +msgid "Converting ext3 to ext4..." +msgstr "" + +msgid "Copy" +msgstr "" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "" + +msgid "Could not find installed channel list." +msgstr "" + +#, fuzzy +msgid "Could not load medium! No disc inserted?" +msgstr "Negalima užkrauti! Joks diskas neįdÄ—tas?" + +msgid "Could not open Picture in Picture" +msgstr "Negalima atidaryti paveikslÄ—lio paveikslÄ—lyje" + +#, fuzzy, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "NeįraÅ¡yta dÄ—l prieÅ¡taringo laikmaÄio %s" + +#, fuzzy, python-format +msgid "Could not record due to invalid service %s" +msgstr "NegalÄ—jo įraÅ¡yti dÄ—l negaliojanÄios paslaugos %s" + +msgid "Create DVD-ISO" +msgstr "Sukurkite DVD-ISO" + +msgid "Create more detailed crash log" +msgstr "" + +#, python-format +msgid "Creating directory %s failed." +msgstr "Direktorijos sukurti %s nepavyko." + +#, fuzzy +msgid "Creating filesystem" +msgstr "Tikrinti failų sistemÄ…..." + +msgid "Creating partition" +msgstr "" + +msgid "Croatian" +msgstr "Kroatų" + +msgid "Current CEC address" +msgstr "" + +msgid "Current device: " +msgstr "Dabartinis prietaisas:" + +msgid "Current event EPG" +msgstr "" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +msgid "Current settings:" +msgstr "Dabartiniai nustatymai:" + +#, fuzzy +msgid "Current transponder" +msgstr "Dabartinis transponderis" + +msgid "Current value: " +msgstr "Einamoji reikÅ¡mÄ—: " + +msgid "Current version:" +msgstr "DabartinÄ— versija:" + +msgid "Currently installed image" +msgstr "Å iuo metu įdiegtas atvaizdas" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +#, fuzzy +msgid "Custom skip time for '1'/'3' buttons" +msgstr "Praleisti laikÄ… pasirinktinai '1'/'3'-mygtukams" + +#, fuzzy +msgid "Custom skip time for '4'/'6' buttons" +msgstr "Praleisti laikÄ… pasirinktinai '4'/'6'-mygtukams" + +#, fuzzy +msgid "Custom skip time for '7'/'9' buttons" +msgstr "Praleisti laikÄ… pasirinktinai '7'/'9'-mygtukams" + +msgid "Customize" +msgstr "Vartotojo pasirinkimai" + +msgid "Customize channel list cursor behavior" +msgstr "" + +msgid "Cut" +msgstr "IÅ¡kirpti" + +msgid "Cutlist editor..." +msgstr "IÅ¡kirpimo redaktorius..." + +msgid "Czech" +msgstr "ÄŒekų" + +msgid "D" +msgstr "D" + +msgid "DHCP" +msgstr "DHCP" + +#, fuzzy +msgid "DMM advanced" +msgstr "IÅ¡plÄ—stas" + +msgid "DMM normal" +msgstr "" + +msgid "DUAL LAYER DVD" +msgstr "DVIGUBAS DVD" + +msgid "DVB subtitle black transparency" +msgstr "" + +msgid "DVB-C" +msgstr "" + +msgid "DVB-C ANNEX C" +msgstr "" + +msgid "DVB-S" +msgstr "DVB-S" + +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "" + +msgid "DVB-T2" +msgstr "" + +msgid "DVD data format" +msgstr "" + +#, fuzzy +msgid "DVD file browser" +msgstr "DVD failų narÅ¡yklÄ—" + +msgid "DVD media toolbox" +msgstr "DVD priemonių komplektas" + +#, fuzzy +msgid "DVD player" +msgstr "DVD grotuvas" + +#, fuzzy +msgid "DVD titlelist" +msgstr "DVD pavadinimo sÄ…raÅ¡as" + +msgid "Danish" +msgstr "Danų" + +msgid "Date" +msgstr "Data" + +#, fuzzy +msgid "Date/time input" +msgstr "Laikas / Data" + +#, fuzzy +msgid "Deep standby" +msgstr "VisiÅ¡kai iÅ¡jungti" + +msgid "Default" +msgstr "Numatyta" + +msgid "Default movie location" +msgstr "Numatyta filmų vieta" + +#, fuzzy +msgid "Default settings" +msgstr "Numatytieji nustatymai" + +msgid "Delay before key repeat starts:" +msgstr "" + +msgid "Delay for external subtitles" +msgstr "" + +msgid "Delete" +msgstr "Trinti" + +msgid "Delete entry" +msgstr "Trinti užduotį" + +msgid "Delete failed!" +msgstr "IÅ¡trinti nepavyko!" + +#, fuzzy +msgid "Delete file" +msgstr "trinti failÄ…" + +#, fuzzy +msgid "Delete playlist entry" +msgstr "trinti įraÅ¡Ä… iÅ¡ grojaraÅ¡Äio " + +#, fuzzy +msgid "Delete saved playlist" +msgstr "trinti iÅ¡saugotÄ… grojaraÅ¡tį" + +msgid "Delete timer" +msgstr "" + +#, fuzzy +msgid "Delete..." +msgstr "trinti..." + +msgid "Deleted" +msgstr "" + +msgid "Deleted items" +msgstr "" + +msgid "Depth" +msgstr "" + +msgid "Descramble http streams" +msgstr "" + +msgid "Description" +msgstr "ApraÅ¡ymas" + +msgid "Deselect" +msgstr "Nepasirinkti" + +msgid "Details for plugin: " +msgstr "Informacija apie priedÄ…:" + +msgid "Detected HDD:" +msgstr "Rastas HDD:" + +msgid "Detected NIMs:" +msgstr "Rasti imtuvai:" + +msgid "Devicename:" +msgstr "" + +msgid "Devide" +msgstr "" + +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +msgid "DiSEqC mode" +msgstr "DiSEqC bÅ«das" + +#, fuzzy, python-format +msgid "DiSEqC port %s: %s" +msgstr "DiSEqC pakartojimai" + +#, fuzzy +msgid "DiSEqC-tester settings" +msgstr "DiSEqC-Tester nustatymai" + +msgid "Dialing:" +msgstr "Telefono numerio surinkimas:" + +msgid "Digital contour removal" +msgstr "Skaitmeninis kontÅ«ro paÅ¡alinimas" + +msgid "Direct playback of linked titles without menu" +msgstr "Tiesioginis atkÅ«rimas sujungtų pavadinimų be meniu" + +msgid "Directory" +msgstr "" + +#, fuzzy, python-format +msgid "Directory %s does not exist." +msgstr "Direktorijos %s nÄ—ra." + +#, python-format +msgid "Directory %s nonexistent." +msgstr "" + +msgid "Directory browser" +msgstr "Direktorijų narÅ¡yklÄ—" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "" + +#, fuzzy, python-format +msgid "Directory contains %s and %s." +msgstr "Direktorijos %s nÄ—ra." + +msgid "Disable" +msgstr "IÅ¡jungti" + +msgid "Disable Picture in Picture" +msgstr "IÅ¡jungti paveikslÄ—lį paveikslÄ—lyje" + +msgid "Disable background scanning" +msgstr "IÅ¡jungti foninį skanavimÄ…" + +msgid "Disable timer" +msgstr "" + +msgid "Disabled" +msgstr "IÅ¡jungtas" + +msgid "Disconnect" +msgstr "Atsijungti" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "Disko talpa įrašų rezervavimui (GB)" + +msgid "Display 16:9 content as" +msgstr "Rodyti kaip 16:9" + +msgid "Display 4:3 content as" +msgstr "Rodyti kaip 4:3 " + +msgid "Display >16:9 content as" +msgstr "Monitorius >16:9 turinys kaip" + +#, fuzzy +msgid "Display and userinterface" +msgstr "Monitorius ir vartotojo sÄ…saja" + +msgid "Display message before playing next movie" +msgstr "" + +#, fuzzy +msgid "Display setup" +msgstr "Monitoriaus parametrai" + +#, fuzzy +msgid "Do not change" +msgstr "nieko nekeisti" + +#, fuzzy +msgid "Do not record" +msgstr "neraÅ¡yti" + +#, fuzzy +msgid "Do nothing" +msgstr "nieko nedaryti" + +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Tikrai norite atlikti failų sistemos tikrinimÄ…?\n" +"Tai gali trukti ilgÄ… laikÄ…!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" + +#, python-format +msgid "Do you really want to delete %s?" +msgstr "JÅ«s tikrai norite paÅ¡alinti %s?" + +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"JÅ«s iÅ¡ tikrųjų norite parsisiųsti\n" +"papildomÄ… programÄ… \"%s \"?" + +msgid "Do you really want to exit?" +msgstr "JÅ«s tikrai norite iÅ¡eiti?" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" +"Tikrai norite atlikti įrenginio inicializavimÄ…?\n" +"Visi duomenys bus prarasti!" + +#, fuzzy, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"JÅ«s iÅ¡ tikrųjų norite parsisiųsti\n" +"papildomÄ… programÄ… \"%s \"?" + +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "JÅ«s iÅ¡ tikrųjų norite paÅ¡alinti direktorijÄ… %s iÅ¡ disko?" + +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "JÅ«s iÅ¡ tikrųjų norite paÅ¡alinti savo %s žymÄ™?" + +msgid "Do you want this?" +msgstr "" + +msgid "Do you want to burn this collection to DVD medium?" +msgstr "JÅ«s norite įraÅ¡yti Å¡iÄ… kolekcijÄ… į DVD?" + +msgid "Do you want to do a service scan?" +msgstr "JÅ«s norite skanuoti palydovÄ…?" + +msgid "Do you want to do another manual service scan?" +msgstr "JÅ«s norite atlikti rankinį kanalų skanavimÄ…?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "JÅ«s norite parsisiųsti atvaizdÄ… į %s ?" + +#, fuzzy +msgid "Do you want to install a channel list?" +msgstr "JÅ«s norite įdiegti paketÄ…:\n" + +msgid "Do you want to install the package:\n" +msgstr "JÅ«s norite įdiegti paketÄ…:\n" + +msgid "Do you want to play DVD in drive?" +msgstr "JÅ«s norite paleisti DVD?" + +msgid "Do you want to preview this DVD before burning?" +msgstr "JÅ«s norite peržiÅ«rÄ—ti šį DVD prieÅ¡ įraÅ¡ymÄ…?" + +msgid "Do you want to reboot your receiver?" +msgstr "" + +msgid "Do you want to remove the package:\n" +msgstr "JÅ«s norite paÅ¡alinti paketÄ…:\n" + +msgid "Do you want to restore your settings?" +msgstr "JÅ«s norite atkurti nustatymus?" + +msgid "Do you want to resume this playback?" +msgstr "JÅ«s norite tÄ™sti šį atkÅ«rimÄ…?" + +#, fuzzy, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "JÅ«s norite parsisiųsti atvaizdÄ… į %s ?" + +msgid "Do you want to update your receiver?" +msgstr "" + +msgid "Do you want to upgrade the package:\n" +msgstr "JÅ«s norite atnaujinti paketÄ…:\n" + +msgid "Don't stop current event but disable coming events" +msgstr "Nestabdyti dabartinÄ—s užduoties, o iÅ¡jungti sekanÄiÄ… užduotį" + +#, fuzzy, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "Baigta - Ä®diegti, patobulinti ar paÅ¡alinti %d paketai su %d klaidomis" +msgstr[1] "Baigta - Ä®diegti, patobulinti ar paÅ¡alinti %d paketai su %d klaidomis" + +msgid "Download" +msgstr "Parsisiuntimas" + +#, fuzzy, python-format +msgid "Download %s from server" +msgstr "Parsisiųsta %s iÅ¡ serverio" + +msgid "Download .NFI-files for USB-flasher" +msgstr "ParsisiunÄiami .NFI failai į USB diegÄ—jÄ…" + +#, fuzzy +msgid "Download plugins" +msgstr "Parsisiųsti papildomas programas" + +msgid "Downloadable new plugins" +msgstr "Galimos įdiegti naujos papildomos programos" + +msgid "Downloadable plugins" +msgstr "Galimos įdiegti papildomos programos" + +msgid "Downloading" +msgstr "ParsisiunÄiama" + +msgid "Downloading plugin information. Please wait..." +msgstr "ParsiunÄiama informacija apie papildomas programas. PraÅ¡ome palaukti..." + +msgid "Dutch" +msgstr "Olandų" + +msgid "Dynamic contrast" +msgstr "DinamiÅ¡kas kontrastas" + +msgid "E" +msgstr "E" + +msgid "EPG" +msgstr "" + +msgid "EPG language selection 1" +msgstr "" + +msgid "EPG language selection 2" +msgstr "" + +#, fuzzy +msgid "EPG selection" +msgstr "EPG pasirinkimas" + +msgid "EPG settings" +msgstr "" + +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "KLAIDA - nenuskanuota (%s)!" + +msgid "East" +msgstr "Rytai" + +msgid "East limit set" +msgstr "" + +msgid "Edit" +msgstr "Redaguoti" + +msgid "Edit DNS" +msgstr "Redaguoti DNS" + +msgid "Edit bouquets list" +msgstr "Redaguoti paketų sÄ…raÅ¡Ä…" + +msgid "Edit chapters of current title" +msgstr "Redaguokite dabartinio pavadinimo skyrius" + +msgid "Edit services list" +msgstr "Redaguoti kanalų sÄ…raÅ¡Ä…" + +msgid "Edit settings" +msgstr "Redaguoti nustatymus" + +#, fuzzy +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "iÅ¡eiti iÅ¡ serverio pavadinimo konfigÅ«racijos" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "" + +msgid "Edit timer" +msgstr "" + +msgid "Edit title" +msgstr "Redaguoti" + +msgid "Edit upgrade source url." +msgstr "Suredaguokite atnaujinimo Å¡altinio url." + +msgid "Education/Science/..." +msgstr "" + +msgid "Electronic Program Guide" +msgstr "Elektroninis programų gidas" + +msgid "Enable" +msgstr "Ä®jungti" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +msgid "Enable 5V for active antenna" +msgstr "Ä®jungti 5V aktyviai antenai" + +msgid "Enable EIT EPG" +msgstr "Ä®jungti EIT EPG" + +msgid "Enable MHW EPG" +msgstr "Ä®jungti MHW EPG" + +msgid "Enable Netmed EPG" +msgstr "" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "Ä®jungti ViaSat EPG" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +#, fuzzy +msgid "Enable bouquet selection in multi-EPG" +msgstr "įjungti paketo redagavimÄ…" + +msgid "Enable freesat EPG" +msgstr "Ä®jungti freesat EPG" + +msgid "Enable multiple bouquets" +msgstr "Ä®jungti daugiau paketų" + +msgid "Enable parental control" +msgstr "Ä®jungti tÄ—vų kontrolÄ™" + +msgid "Enable teletext caching" +msgstr "Ä®jungti teleteksto kaupimÄ…" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +msgid "Enabled" +msgstr "Ä®jungta" + +msgid "Encrypted: " +msgstr "Užšifruota:" + +msgid "Encryption" +msgstr "Užšifravimas" + +#, fuzzy +msgid "Encryption key" +msgstr "Užšifravimo mygtukas" + +#, fuzzy +msgid "Encryption key type" +msgstr "Mygtuko užšifravimo tipas" + +msgid "Encryption:" +msgstr "Užšifravimas:" + +msgid "End time" +msgstr "Pabaigos laikas" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +msgid "English" +msgstr "Anglų" + +#, fuzzy +msgid "Enigma2 skin selector" +msgstr "enigma2 ir tinklas" + +msgid "Enter main menu..." +msgstr "Eiti į pagrindinį meniu..." + +msgid "Enter pin code" +msgstr "Ä®raÅ¡ykite pin kodÄ…" + +msgid "Enter the service pin" +msgstr "Ä®raÅ¡ykite kanalo PIN" + +msgid "Equal to" +msgstr "" + +msgid "Error" +msgstr "Klaida" + +msgid "Error code" +msgstr "" + +msgid "Error executing plugin" +msgstr "Klaida paleidžiant papildomÄ… programÄ…" + +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Klaida: %s\n" +"Kartoti?" + +msgid "Estonian" +msgstr "Estų" + +msgid "Ethernet network interface" +msgstr "Ethernet tinklo sÄ…saja" + +msgid "Event font size (relative to skin size)" +msgstr "" + +#, fuzzy +msgid "Event view" +msgstr "Ä®vykių peržiÅ«ra" + +#, fuzzy +msgid "Event view menu" +msgstr "Ä®vykių peržiÅ«ra" + +msgid "Everywhere" +msgstr "" + +msgid "Exceeds dual layer medium!" +msgstr "VirÅ¡yja dvejų sluoksnių laikmenÄ…!" + +msgid "Execution finished!!" +msgstr "Vykdymas baigtas!!" + +#, fuzzy +msgid "Execution progress:" +msgstr "Vykdymo eiga:" + +msgid "Exif" +msgstr "Exif" + +msgid "Exit" +msgstr "IÅ¡eiti" + +msgid "Exit EPG" +msgstr "" + +msgid "Exit editor" +msgstr "IÅ¡eiti iÅ¡ redaktoriaus" + +msgid "Exit input device selection." +msgstr "IÅ¡eiti iÅ¡ įvesto prietaiso pasirinkimo." + +msgid "Exit media player?" +msgstr "" + +#, fuzzy +msgid "Exit mediaplayer" +msgstr "iÅ¡jungti media grotuvÄ…" + +#, fuzzy +msgid "Exit movie list" +msgstr "uždaryti filmų sÄ…raÅ¡Ä…" + +#, fuzzy +msgid "Exit movie player?" +msgstr "iÅ¡jungti media grotuvÄ…" + +#, fuzzy +msgid "Exit nameserver configuration" +msgstr "iÅ¡eiti iÅ¡ serverio pavadinimo konfigÅ«racijos" + +#, fuzzy +msgid "Exit network interface list" +msgstr "iÅ¡eiti iÅ¡ tinklo sÄ…sajos sÄ…raÅ¡o" + +msgid "Exit network wizard" +msgstr "IÅ¡eiti iÅ¡ tinklo vedlio" + +msgid "Exit the wizard" +msgstr "IÅ¡eiti iÅ¡ nustatymų vedlio" + +msgid "Expert" +msgstr "IÅ¡plÄ—stinis" + +msgid "Extend sleeptimer 15 minutes" +msgstr "" + +msgid "Extended Software" +msgstr "IÅ¡plÄ—sta programinÄ— įranga" + +msgid "Extended Software Plugin" +msgstr "IÅ¡plÄ—sta programinÄ—s įrangos papildoma programa..." + +#, fuzzy +msgid "Extended network setup plugin..." +msgstr "IÅ¡plÄ—sta tinklo nustatymų papildoma programa..." + +#, fuzzy +msgid "Extended setup..." +msgstr "IÅ¡plÄ—stiniai nustatymai..." + +msgid "Extensions" +msgstr "IÅ¡plÄ—timai" + +msgid "Extensions management" +msgstr "IÅ¡plÄ—timų valdymas" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "" + +msgid "Extra motor options" +msgstr "" + +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "" + +msgid "Factory reset" +msgstr "Gamykliniai nustatymai" + +msgid "Failed" +msgstr "Klaidingas" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "" + +#, python-format +msgid "Fan %d" +msgstr "AuÅ¡intuvas %d" + +#, python-format +msgid "Fan %d PWM" +msgstr "AuÅ¡intuvo %d PWM" + +#, fuzzy, python-format +msgid "Fan %d voltage" +msgstr "AuÅ¡intuvo %d įtampa" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +msgid "Fast" +msgstr "Greitas" + +msgid "Fast DiSEqC" +msgstr "Greitas DiSEqC" + +msgid "Fast Scan" +msgstr "" + +msgid "Fast epoch" +msgstr "Greita epocha" + +#, fuzzy +msgid "Fast forward speeds" +msgstr "Greito prasukimo greiÄiai" + +msgid "Favourites" +msgstr "Geriausi" + +msgid "File appears to be busy.\n" +msgstr "" + +#, fuzzy +msgid "Filesystem check" +msgstr "Failų sistemos tikrinimas" + +msgid "Final position at" +msgstr "" + +msgid "Final position at index" +msgstr "" + +msgid "Fine movement" +msgstr "" + +msgid "Finetune" +msgstr "Tiksliau" + +msgid "Finished" +msgstr "Baigtas" + +msgid "Finished configuring your network" +msgstr "Baigtas jÅ«sų tinklo konfigÅ«ravimas" + +msgid "Finished restarting your network" +msgstr "Baigtas jÅ«sų tinklo paleidimas iÅ¡ naujo" + +msgid "Finnish" +msgstr "Suomių" + +msgid "Fixed" +msgstr "" + +msgid "Flash" +msgstr "VidinÄ— atmintis" + +msgid "Flashing failed" +msgstr "Diegimas klaidingas" + +msgid "Following tasks will be done after you press OK!" +msgstr "Kitos užduotys bus atliktos po to, kai jÅ«s paspausite OK!" + +msgid "Format" +msgstr "Formatas" + +msgid "Forward volume keys" +msgstr "" + +msgid "Frame size in full view" +msgstr "Kadro dydis pilname vaizde" + +msgid "French" +msgstr "PrancÅ«zų" + +msgid "Frequency" +msgstr "Dažnis" + +msgid "Frequency bands" +msgstr "Dažnio juostos" + +msgid "Frequency scan step size(khz)" +msgstr "Skanavimo dažnio žingsnio dydis(khz)" + +msgid "Frequency steps" +msgstr "Dažnio žingsniai" + +msgid "Frequency:" +msgstr "" + +msgid "Fri" +msgstr "Pen" + +msgid "Friday" +msgstr "Penktadienis" + +msgid "From :" +msgstr "" + +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Priekinio procesoriaus versija: %d" + +msgid "Full transparency" +msgstr "" + +msgid "Fulview resulution" +msgstr "" + +msgid "Function of OK button" +msgstr "" + +msgid "Further Options" +msgstr "" + +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"Reikia paleisti iÅ¡ naujo Enigma2 ,kad patvirtinti naujÄ… temÄ…\n" +"JÅ«s norite paleisti iÅ¡ naujo Enigma2 dabar?" + +msgid "Gateway" +msgstr "Å liuzas" + +#, fuzzy +msgid "General AC3 delay" +msgstr "Bendras AC3 užlaikymas" + +#, fuzzy +msgid "General PCM delay" +msgstr "Bendras PCM užlaikymas" + +msgid "Genre" +msgstr "Žanras" + +msgid "German" +msgstr "VokieÄių" + +msgid "Get latest experimental image" +msgstr "Gaukite paskutinį bandomÄ…jį atvaizdÄ…" + +msgid "Get latest release image" +msgstr "Gaukite paskutinį atvaizdÄ…" + +msgid "Getting plugin information. Please wait..." +msgstr "Gaunama informacija apie papildomas programas. PraÅ¡ome palaukti..." + +msgid "Go down the list" +msgstr "" + +msgid "Go to first movie or last item" +msgstr "" + +msgid "Go to first movie or top of list" +msgstr "" + +#, fuzzy +msgid "Go to first service" +msgstr "perkelti aukÅ¡tyn prie pirmo įėjimo" + +#, fuzzy +msgid "Go to last service" +msgstr "nustatyti kaip paleidimo kanalÄ…" + +#, fuzzy +msgid "Go to next event" +msgstr "perkelti žemyn prie kito įėjimo" + +#, fuzzy +msgid "Go to next page of service" +msgstr "Perjungti į sekantį subkanalÄ…" + +#, fuzzy +msgid "Go to previous event" +msgstr "perkelti aukÅ¡tyn prie ankstesnio įėjimo" + +#, fuzzy +msgid "Go to previous page of service" +msgstr "Grįžkite į buvusį kanalÄ…" + +msgid "Go up the list" +msgstr "" + +msgid "Goto" +msgstr "" + +msgid "Goto 0" +msgstr "Eiti į 0" + +msgid "Goto :" +msgstr "" + +msgid "Goto X" +msgstr "" + +msgid "Goto index position" +msgstr "" + +msgid "Goto next day of events" +msgstr "" + +msgid "Goto next page of events" +msgstr "" + +msgid "Goto position" +msgstr "Eiti į pozicijÄ…" + +msgid "Goto previous day of events" +msgstr "" + +msgid "Goto previous page of events" +msgstr "" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "" + +msgid "GraphMultiEpg Settings" +msgstr "" + +msgid "Graphical Multi EPG" +msgstr "Grafinis kelių kanalų EPG" + +msgid "Greek" +msgstr "Graikų" + +msgid "Green boost" +msgstr "Žalio didÄ—jimas" + +msgid "Guard interval" +msgstr "Apsaugos intervalas" + +msgid "HD list" +msgstr "" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "" + +msgid "Handle wakeup from TV" +msgstr "" + +#, fuzzy +msgid "Hard disk" +msgstr "Kietas diskas" + +#, fuzzy +msgid "Hard disk setup" +msgstr "Kieto disko nustatymas" + +#, fuzzy +msgid "Hard disk standby after" +msgstr "Kietas diskas iÅ¡sijungs po" + +msgid "Harddisk" +msgstr "Kietas diskas" + +msgid "Hardware: " +msgstr "" + +msgid "Hebrew" +msgstr "" + +msgid "Helps setting up your dish" +msgstr "" + +msgid "Hidden network" +msgstr "PaslÄ—ptas tinklas" + +msgid "Hide CI messages" +msgstr "SlÄ—pti CI praneÅ¡imus" + +msgid "Hide channel list in radio mode" +msgstr "" + +msgid "Hide known extensions" +msgstr "" + +msgid "Hide number markers" +msgstr "" + +#, fuzzy +msgid "Hide player" +msgstr "slÄ—pti grotuvÄ…" + +msgid "Hide zap errors" +msgstr "SlÄ—pti perjungimo klaidas" + +msgid "Hierarchy info" +msgstr "Hierarchijos informacija" + +#, fuzzy +msgid "Hierarchy information" +msgstr "Hierarchijos informacija" + +msgid "High bitrate support" +msgstr "AukÅ¡tos bitų spartos palaikymas" + +msgid "Hold screen" +msgstr "" + +msgid "Hold till locked" +msgstr "" + +msgid "Home" +msgstr "" + +msgid "Horizontal" +msgstr "Horizontalus" + +msgid "Horizontal turning speed" +msgstr "" + +msgid "How many minutes do you want to record?" +msgstr "Kiek minuÄių norite daryti įraÅ¡Ä…?" + +msgid "Hue" +msgstr "Atspalvis" + +msgid "Hungarian" +msgstr "Vengrų" + +#, fuzzy +msgid "IP address" +msgstr "IP adresas" + +msgid "ISO file is too large for this filesystem!" +msgstr "ISO failas yra per didelis Å¡iai failų sistemai!" + +msgid "ISO path" +msgstr "ISO kelias" + +msgid "Icons" +msgstr "" + +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"Jeigu JÅ«s tai skaitote, kažkas negerai su\n" +"jÅ«sų skarto pajungimu. Spauskite OK norint grįžti." + +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"Jeigu jÅ«sų televizorius turi Å¡viesumo arba kontrasto padidinimÄ…, patvirtinkite tai. Jeigu yra kažkas pavadinta kaip \"dinaminis \", tai nustatykite tai, kaip standartÄ…. Nustatykite Å¡viesumo lygį, kuris yra jums tinkamiausias. Nustatykite kontrastÄ… savo televizoriui tiek, kiek tai įmanoma.\n" +"Tada nustatykite Å¡viesumÄ… tiek mažai kiek tai įmanoma, bet įsitikinkite kad du patys žemiausi pilki atspalviai yra atskirti. \n" +"Dabar nebesirÅ«pinkite Å¡viesiais atspalviais . Jie bus nustatyti sekanÄiame žingsnyje.\n" +"Jeigu JÅ«s patenkinti gautu rezultatu, spauskite OK." + +msgid "Image: " +msgstr "" + +#, fuzzy +msgid "Immediate shutdown" +msgstr "neatidÄ—liotinas iÅ¡jungimas" + +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "PradÄ—jus raÅ¡yti pagal pasirinktÄ… laikmatį, TV bus perjungtas į įraÅ¡omÄ… kanalÄ…!\n" + +#, fuzzy +msgid "In progress" +msgstr "Vykdymas" + +msgid "Inactivity Sleeptimer" +msgstr "" + +msgid "Include AIT in http streams" +msgstr "" + +msgid "Include ECM in http streams" +msgstr "" + +msgid "Include EIT in http streams" +msgstr "" + +msgid "Incorrect type service for PiP!" +msgstr "" + +msgid "Increased voltage" +msgstr "Padidinta įtampa" + +msgid "Index" +msgstr "Indeksas" + +msgid "Index allocated:" +msgstr "" + +msgid "Info" +msgstr "Informacija" + +#, fuzzy +msgid "Info bar" +msgstr "Infojuosta" + +#, fuzzy +msgid "Info bar timeout" +msgstr "Infojuosta iÅ¡sijungs po" + +msgid "Infobar frontend data source" +msgstr "" + +msgid "Information" +msgstr "Informacija" + +msgid "Init" +msgstr "Inicializacija" + +#, fuzzy +msgid "Initial fast forward speed" +msgstr "Pradinis greito persukimo greitis" + +msgid "Initial location in new timers" +msgstr "PradinÄ— naujų laikmaÄių vieta" + +msgid "Initial lock ratio" +msgstr "" + +#, fuzzy +msgid "Initial rewind speed" +msgstr "Pradinis atsukimo greitis" + +msgid "Initial signal quality" +msgstr "" + +msgid "Initial signal quality:" +msgstr "" + +msgid "Initialization" +msgstr "Inicializavimas" + +msgid "Initialize" +msgstr "Inicializuoti" + +msgid "Initializing storage device..." +msgstr "Ä®renginio inicializavimas..." + +msgid "Input" +msgstr "Įėjimas" + +msgid "Input device setup" +msgstr "Prietaiso įvesties valdymas" + +msgid "Input devices" +msgstr "Ä®vesties prietaisai" + +msgid "Install" +msgstr "Ä®diegti" + +msgid "Install a new image with a USB stick" +msgstr "Ä®diekite naujÄ… atvaizdÄ… su USB raktu" + +msgid "Install a new image with your web browser" +msgstr "Ä®diekite naujÄ… atvaizdÄ… su savo tinklo narÅ¡ykle" + +#, fuzzy +msgid "Install channel list" +msgstr "kitas kanalas į istorijÄ…" + +msgid "Install extensions" +msgstr "" + +msgid "Install extensions." +msgstr "Ä®diekite iÅ¡plÄ—timus." + +msgid "Install local extension" +msgstr "Ä®diekite vietinį iÅ¡plÄ—timÄ…" + +msgid "Install picons on" +msgstr "" + +#, fuzzy +msgid "Install softcam" +msgstr "Ä®diegiama programinÄ— įranga..." + +#, fuzzy +msgid "Installation has completed." +msgstr "Ä®diegimas baigtas." + +#, fuzzy +msgid "Installation or removal has completed." +msgstr "Ä®diegimas arba paÅ¡alinimas baigtas." + +msgid "Installing" +msgstr "Ä®diegiama" + +#, fuzzy +msgid "Installing software..." +msgstr "Ä®diegiama programinÄ— įranga..." + +#, fuzzy +msgid "Instant recording location" +msgstr "Greito įraÅ¡o vieta" + +#, fuzzy +msgid "Instant recording..." +msgstr "Greitas įraÅ¡as..." + +msgid "Interface: " +msgstr "SÄ…saja:" + +msgid "Intermediate" +msgstr "Normalus" + +#, fuzzy +msgid "Internal flash" +msgstr "VidinÄ— atmintinÄ—" + +msgid "Internal hdd only" +msgstr "" + +msgid "Interval between keys when repeating:" +msgstr "" + +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Negaliojanti pasirinkta direktorija: %s" + +#, fuzzy +msgid "Invalid location" +msgstr "Neteisinga vieta" + +msgid "Invalid transponder data" +msgstr "" + +msgid "Inversion" +msgstr "Pervertimas" + +msgid "Invert" +msgstr "" + +msgid "Ipkg" +msgstr "Ipkg" + +#, fuzzy +msgid "Is this setting ok?" +msgstr "Naudoti Å¡iuos nustatymus?" + +#, fuzzy +msgid "Is this video mode ok?" +msgstr "Å is vaizdo bÅ«das geras?" + +msgid "Italian" +msgstr "Italų" + +msgid "Items per page " +msgstr "" + +msgid "Items per page for list screen" +msgstr "" + +#, fuzzy +msgid "Job overview" +msgstr "Darbo vaizdas" + +msgid "Jump to beginning of list" +msgstr "" + +#, fuzzy +msgid "Jump to end of list" +msgstr "Å¡uolis į pabaigos sÄ…raÅ¡Ä…" + +#, fuzzy +msgid "Jump to next marked position" +msgstr "Å¡uolis į sekanÄiÄ… pažymÄ—tÄ… vietÄ…" + +#, fuzzy +msgid "Jump to previous marked position" +msgstr "Å¡uolis į ankstesnÄ™ pažymÄ—tÄ… vietÄ…" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +#, fuzzy +msgid "Just scale" +msgstr "Tik skalÄ—" + +msgid "Keep service" +msgstr "" + +#, fuzzy +msgid "Kernel version: " +msgstr "Nauja versija:" + +msgid "Keyboard" +msgstr "KlaviatÅ«ra" + +#, fuzzy +msgid "Keyboard map" +msgstr "KlaviatÅ«ros iÅ¡dÄ—stymas" + +#, fuzzy +msgid "Keyboard setup" +msgstr "KlaviatÅ«ros nustatymas" + +#, fuzzy +msgid "LAN adapter" +msgstr "Tinklo adapteris" + +msgid "LAN connection" +msgstr "LAN prisijungimas" + +msgid "LNB" +msgstr "LNB konverteris" + +msgid "Language" +msgstr "Kalba" + +msgid "Language selection" +msgstr "Kalbos pasirinkimas" + +msgid "Last config" +msgstr "Paskutinis config" + +msgid "Last speed" +msgstr "Paskutinis greitis" + +msgid "Last upgrade: " +msgstr "" + +msgid "Latest Commits" +msgstr "" + +msgid "Latitude" +msgstr "Platuma" + +msgid "Latvian" +msgstr "Latvių" + +#, fuzzy +msgid "Leave DVD player?" +msgstr "IÅ¡eiti iÅ¡ DVD grotuvo?" + +msgid "Left" +msgstr "KairÄ—" + +msgid "Left from servicename" +msgstr "" + +msgid "Leisure hobbies" +msgstr "" + +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Letterbox" + +msgid "Letterbox zoom" +msgstr "" + +#, fuzzy +msgid "Limit character set for recording filenames" +msgstr "Ribotas simbolių pasirinkimas , dÄ—l įraÅ¡ytų failų pavadinimų" + +msgid "Limit east" +msgstr "Rytų riba" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "" + +msgid "Limit west" +msgstr "Vakarų riba" + +msgid "Limits cancelled" +msgstr "" + +msgid "Limits enabled" +msgstr "" + +msgid "Limits off" +msgstr "Ribos iÅ¡jungtos" + +msgid "Limits on" +msgstr "Ribos įjungtos" + +#, fuzzy +msgid "Link quality:" +msgstr "SÄ…sajos KokybÄ—:" + +msgid "Link:" +msgstr "SÄ…saja:" + +msgid "Linked titles with a DVD menu" +msgstr "Sujungti pavadinimai su DVD meniu" + +#, fuzzy +msgid "List EPG functions..." +msgstr "EPG vaizdų sÄ…raÅ¡as..." + +msgid "List available networks" +msgstr "Galimų tinklų sÄ…raÅ¡as" + +msgid "List mode" +msgstr "" + +#, fuzzy +msgid "List of storage devices" +msgstr "IÅ¡saugotų įrenginių sÄ…raÅ¡as" + +msgid "List type" +msgstr "" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "" +msgstr[1] "" + +#, fuzzy +msgid "Listen to the radio..." +msgstr "klausytis radijo..." + +msgid "Lists reloaded!" +msgstr "" + +msgid "Lithuanian" +msgstr "Lietuvių" + +msgid "Load" +msgstr "Užkraunama" + +msgid "Load Length of Movies in Movielist" +msgstr "" + +#, fuzzy +msgid "Load length of movies in movie list" +msgstr "Užkrauti kino filmų ilgį filmo sÄ…raÅ¡e" + +#, fuzzy +msgid "Load playlist" +msgstr "užkraunamas grojaraÅ¡tis" + +#, fuzzy +msgid "Local network" +msgstr "Vietinis tinklas" + +msgid "Location" +msgstr "Vieta" + +msgid "Location for instant recordings" +msgstr "Vieta greitiems įraÅ¡ams" + +msgid "Lock ratio" +msgstr "" + +msgid "Lock:" +msgstr "Lock:" + +msgid "Log results to harddisk" +msgstr "Log rezultatus į kietÄ… diskÄ…" + +msgid "Long filenames" +msgstr "Ilgi failų pavadinimai" + +#, fuzzy +msgid "Long key press" +msgstr "Ilgas mygtuko spaudimas" + +msgid "Longitude" +msgstr "Ilguma" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "" + +#, fuzzy +msgid "MMC card" +msgstr "MMC kortelÄ—" + +msgid "MORE" +msgstr "DAUGIAU" + +msgid "Main menu" +msgstr "Pagrindinis meniu" + +msgid "Maintain old EPG data for" +msgstr "" + +msgid "Make this mark an 'in' point" +msgstr "Padarykite šį žymeklį 'įėjimo' taÅ¡ke" + +msgid "Make this mark an 'out' point" +msgstr "Padarykite šį žymeklį 'iÅ¡Ä—jimo' taÅ¡ke" + +msgid "Make this mark just a mark" +msgstr "Padarykite šį žymeklį kaip žymekliu" + +msgid "Manage extensions" +msgstr "IÅ¡plÄ—timų valdymas" + +msgid "Manage your receiver's software" +msgstr "Valdykite savo imtuvo programinÄ™ įrangÄ…" + +msgid "Manual" +msgstr "" + +msgid "Manual Scan" +msgstr "RankinÄ— paieÅ¡ka" + +msgid "Manual configuration" +msgstr "RankinÄ— konfigÅ«racija" + +#, fuzzy +msgid "Manual scan" +msgstr "RankinÄ— paieÅ¡ka" + +msgid "Manual transponder" +msgstr "Rankinis transponderis" + +msgid "Manufacturer" +msgstr "Gamintojas" + +#, fuzzy +msgid "Margin after recording (minutes)" +msgstr "Sujungti prieÅ¡ įraÅ¡ymÄ… (minutÄ—mis)" + +#, fuzzy +msgid "Margin before recording (minutes)" +msgstr "Sujungti prieÅ¡ įraÅ¡ymÄ… (minutÄ—mis)" + +msgid "Max memory positions" +msgstr "" + +#, fuzzy +msgid "Max. bitrate: " +msgstr "Maks. Sparta bitais:" + +msgid "Media player" +msgstr "Media grotuvas" + +#, fuzzy +msgid "Media scanner" +msgstr "Media grotuvas" + +msgid "Medium is not a writeable DVD!" +msgstr "Tai ne įraÅ¡omas DVD!" + +msgid "Medium is not empty!" +msgstr "Ne tuÅ¡Äias!" + +msgid "Memory" +msgstr "" + +msgid "Memory index" +msgstr "" + +msgid "Menu" +msgstr "Meniu" + +msgid "Message" +msgstr "PraneÅ¡imas" + +msgid "Message..." +msgstr "ŽinutÄ—..." + +#, python-format +msgid "Minimum age %d years" +msgstr "" + +#, fuzzy +msgid "Minimum send interval" +msgstr "Apsaugos intervalas" + +msgid "Missing " +msgstr "" + +#, fuzzy +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Pasirinkimas" + +#, fuzzy +msgctxt "Video output mode" +msgid "Mode" +msgstr "Pasirinkimas" + +msgid "Model: " +msgstr "Modelis:" + +msgid "Modulation" +msgstr "PaaukÅ¡tÄ—jimas" + +msgid "Modulator" +msgstr "Moduliatorius" + +msgid "Mon" +msgstr "Pir" + +msgid "Mon-Fri" +msgstr "Pir-Pen" + +msgid "Monday" +msgstr "Pirmadienis" + +msgid "Mosquito noise reduction" +msgstr "Uodo triukÅ¡mo sumažėjimas" + +msgid "Mount" +msgstr "" + +msgid "Move" +msgstr "" + +#, fuzzy +msgid "Move PiP to main picture" +msgstr "perkelti PiP į mano paveikslÄ—lį" + +msgid "Move Picture in Picture" +msgstr "Perkelti paveikslÄ—lį į paveikslÄ—lį" + +msgid "Move east" +msgstr "Sukti į rytus" + +msgid "Move to other directory" +msgstr "" + +msgid "Move to position X" +msgstr "" + +msgid "Move west" +msgstr "Sukti į vakarus" + +msgid "Moved to position 0" +msgstr "" + +msgid "Moved to position at index" +msgstr "" + +msgid "Movement" +msgstr "" + +msgid "Movie List Configuration" +msgstr "" + +msgid "Movie Selection" +msgstr "" + +#, fuzzy +msgid "Movie list configuration" +msgstr "RankinÄ— konfigÅ«racija" + +msgid "Movie location" +msgstr "Filmo vieta" + +#, fuzzy +msgid "Movie selection" +msgstr "Filmo vieta" + +msgid "Movie/Drama" +msgstr "" + +msgid "Movielist menu" +msgstr "Filmų sÄ…raÅ¡o meniu" + +msgid "Moving" +msgstr "" + +msgid "Moving east ..." +msgstr "" + +msgid "Moving to position" +msgstr "" + +msgid "Moving west ..." +msgstr "" + +msgid "Multi EPG" +msgstr "Kanalų EPG" + +msgid "Multi-EPG bouquet selection" +msgstr "Multi-EPG paketų pasirinkimas" + +msgid "Multimedia" +msgstr "Multimedija" + +msgid "Multiple service support" +msgstr "Kelių kanalų palaikymas" + +msgid "Multiplex" +msgstr "SudÄ—tingas" + +msgid "Multisat" +msgstr "Daug palydovų" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "" + +msgid "Mute" +msgstr "Be garso" + +msgid "N/A" +msgstr "N/A" + +msgid "NEXT" +msgstr "KITAS" + +#, fuzzy +msgid "NFI image flashing" +msgstr "NFI atvaizdo įdiegimas" + +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "NFI atvaizdo diegimas baigtas. Spauskite geltonÄ… mygtukÄ…, kad paleisti iÅ¡ naujo!" + +msgid "NIM" +msgstr "NIM" + +msgid "NOW" +msgstr "DABAR" + +msgid "NTSC" +msgstr "NTSC" + +msgid "Name" +msgstr "Pavadinimas" + +msgid "Nameserver" +msgstr "Serverio pavadinimas" + +#, python-format +msgid "Nameserver %d" +msgstr "Serverio pavadinimas %d" + +msgid "Nameserver settings" +msgstr "Serverio pavadinimas" + +#, fuzzy +msgid "Nameserver setup" +msgstr "Serverio nustatymas" + +msgid "Namespace" +msgstr "Pavadinimnų erdvÄ—" + +msgid "Netmask" +msgstr "Potinklio kaukÄ—" + +msgid "Network" +msgstr "Tinklas" + +msgid "Network ID" +msgstr "" + +#, fuzzy +msgid "Network configuration..." +msgstr "Tinklo konfigÅ«racija..." + +#, fuzzy +msgid "Network mount" +msgstr "Pajungti tinklÄ…" + +#, fuzzy, python-format +msgid "Network mount %s" +msgstr "Pajungti tinklÄ…" + +#, fuzzy +msgid "Network name (SSID)" +msgstr "Tinklo pavadinimas (SSID)" + +msgid "Network scan" +msgstr "Tinklo skanavimas" + +msgid "Network setup" +msgstr "Tinklo nustatymas" + +msgid "Network test" +msgstr "Tinklo testavimas" + +msgid "Network test..." +msgstr "Tinklo testavimas..." + +msgid "Network test: " +msgstr "Tinklo bandymas:" + +#, fuzzy +msgid "Network wizard" +msgstr "Tinklo vedlys" + +msgid "Network:" +msgstr "Tinklas:" + +msgid "New" +msgstr "Naujas" + +msgid "New PIN" +msgstr "Naujas PIN" + +msgid "New version:" +msgstr "Nauja versija:" + +msgid "News Current Affairs" +msgstr "" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "" + +msgid "No" +msgstr "Ne" + +msgid "No (supported) DVDROM found!" +msgstr "Palaikomas DVDROM nesurastas!" + +msgid "No Connection" +msgstr "NÄ—ra prisijungimo" + +msgid "No HDD found or HDD not initialized!" +msgstr "Kietas diskas nerastas arba neinicializuotas!" + +msgid "No backup needed" +msgstr "AtsarginÄ—s kopijos nereikia" + +msgid "No cable tuner found!" +msgstr "" + +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"NÄ—ra duomenų iÅ¡ transponderio!\n" +"(Skaitymo pertrauka PAT)" + +msgid "No delay" +msgstr "" + +msgid "No description available." +msgstr "Joks apibÅ«dinimas nepasiekiamas." + +msgid "No details for this image file" +msgstr "NÄ—ra informacijos apie šį atvaizdÄ…" + +msgid "No displayable files on this medium found!" +msgstr "Jokių failų Äia nerasta!" + +msgid "No event info found, recording indefinitely." +msgstr "Informacija apie įvykius nerasta, tÄ™siamas įraÅ¡ymas." + +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "Joks greitas vingiavimas, galimas dar.. bet jÅ«s galite panaudoti skaiÄių mygtukus, kad praleistumÄ—te pirmyn/atgal!" + +msgid "No free index available" +msgstr "" + +msgid "No free tuner!" +msgstr "NÄ—ra laisvo imtuvo!" + +msgid "No network connection available." +msgstr "Joks tinklo ryÅ¡ys nepasiekiamas." + +msgid "No networks found" +msgstr "Jokie tinklai nesurasti" + +msgid "No new plugins found" +msgstr "" + +msgid "No positioner capable frontend found." +msgstr "NÄ—ra pozicionieriaus, kuris rastų priekinį kraÅ¡tÄ…." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "" + +#, fuzzy +msgid "No services/providers selected" +msgstr "jokie Kanalai/TiekÄ—jai neiÅ¡sirinkti" + +#, fuzzy +msgid "No standby" +msgstr "nebudÄ—ti" + +msgid "No suitable sat tuner found!" +msgstr "" + +msgid "No tags are set on these movies." +msgstr "Jokios kortelÄ—s su užraÅ¡u nÄ—ra nustatytos Å¡iems kino filmams" + +#, fuzzy +msgid "No timeout" +msgstr "nedaryti pertraukos" + +msgid "No to all" +msgstr "Ne į visus" + +msgid "No transparency" +msgstr "" + +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "NÄ—ra imtuvo, suderinto naudotis su diseqc pozicionieriumi!" + +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Imtuvas neįjungtas!\n" +"PraÅ¡ome nustatyti JÅ«sų imtuvÄ…, prieÅ¡ pradedant ieÅ¡koti kanalų." + +#, fuzzy +msgid "No updates available" +msgstr " pasiekiami atnaujinimai." + +msgid "No updates available. Please try again later." +msgstr "" + +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Teisingas kanalo PIN nerastas!\n" +"JÅ«s norite pakeisti kanalo PIN dabar?\n" +"Jeigu jÅ«s atsakysite 'NE', tai kanalo apsauga \n" +"nebus įjungta!" + +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Teisingas nustatymų PIN nerastas!\n" +"JÅ«s norite pakeisti nustatymų PIN dabar?\n" +"Jeigu jÅ«s atsakysite 'NE', tai kanalo apsauga \n" +"nebus įjungta!" + +msgid "No wireless networks found! Searching..." +msgstr "Belaidžių tinklų nerasta! Vyksta paieÅ¡ka ..." + +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"Joks veikiantis vietinio tinklo adapteris, nerastas.\n" +"PraÅ¡ome patikrinti, ar jÅ«s prijungÄ—te tinklo kabelį, ir ar jÅ«sų tinklas yra sukonfigÅ«ruotas teisingai." + +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"Joks veikiantis belaidžio tinklo adapteris nerastas.\n" +"PraÅ¡ome patikrinti, ar jÅ«s pridÄ—jote suderinamÄ… WLAN prietaisÄ…, ir ar jÅ«sų tinklas yra sukonfigÅ«ruotas teisingai." + +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"Jokia veikianti belaidžio tinklo sÄ…saja nerasta.\n" +"PraÅ¡ome patikrinti, kad jÅ«s pridÄ—jote suderinamÄ… WLAN prietaisÄ… ar įjungÄ—te jÅ«sų vietinio tinklo sÄ…sajÄ…." + +msgid "No, but restart from begin" +msgstr "Ne, paleisti nuo pradžių" + +msgid "No, do nothing." +msgstr "Ne, nereikia" + +msgid "No, just start my receiver" +msgstr "" + +msgid "No, never" +msgstr "Ne, niekada" + +msgid "None" +msgstr "Joks" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Nelinijinis" + +msgid "Normal mode" +msgstr "" + +msgid "North" +msgstr "Å iaurÄ—" + +msgid "Norwegian" +msgstr "Norvegų" + +#, fuzzy +msgid "Not associated" +msgstr "Ne-Asocijuotas" + +msgid "Not configured" +msgstr "" + +#, fuzzy, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Nepakanka laisvos vietos diske. PraÅ¡ome atlaisvinti vietos diske ir pabandyti dar kartÄ…. (Reikalinga %d MB, %d esama MB)" + +msgid "Nothing connected" +msgstr "" + +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"NÄ—ra ko ieÅ¡koti!\n" +"PraÅ¡ome, suderinkite savo imtuvÄ… prieÅ¡ paleidžiant kanalų skanavimÄ…." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "" + +#, fuzzy +msgid "Now playing" +msgstr "Dabar grojama" + +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Dabar, atlikite kontrasto nustatymÄ…, kad padidinti fono Å¡viesumÄ… tiek kiek įmanoma, bet įsitikinkite, kad jÅ«s galite vis dar pamatyti skirtumÄ… tarp dviejų ryÅ¡kiausių atspalvių lygmenų. Jei jÅ«s baigÄ—te,tai spauskite OK." + +msgid "OK" +msgstr "Gerai" + +msgid "OK, guide me through the upgrade process" +msgstr "Gerai, informuoti mane apie atnaujinimo eigÄ…" + +msgid "ONID" +msgstr "ONID" + +msgid "OSD name request" +msgstr "" + +#, fuzzy +msgid "OSD settings" +msgstr "OSD nustatymai" + +msgid "OSD transparency" +msgstr "" + +msgid "Off" +msgstr "IÅ¡jungta" + +msgid "Offline decode delay (ms)" +msgstr "" + +msgid "Ok" +msgstr "" + +msgid "On" +msgstr "Ä®jungta" + +msgid "On end of movie" +msgstr "" + +msgid "On end of movie (as menu)" +msgstr "" + +msgid "One" +msgstr "Vienas" + +msgid "Only extensions." +msgstr "Tik iÅ¡plÄ—timus." + +#, fuzzy +msgid "Only free scan" +msgstr "Tik nekoduotus" + +#, fuzzy +msgid "Open service list" +msgstr "atidaryti kanalų sÄ…raÅ¡Ä…" + +#, fuzzy +msgid "Open the movie list" +msgstr "Grįžti į filmų sÄ…raÅ¡Ä…" + +msgid "Orbital position" +msgstr "Pozicija orbitoje" + +msgid "Original" +msgstr "" + +msgid "Other" +msgstr "" + +msgid "Output" +msgstr "" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "PerraÅ¡yti konfigÅ«racijos failus per programinÄ—s įrangos atnaujinimÄ…?" + +#, fuzzy +msgid "Overwrite configuration files?" +msgstr "PerraÅ¡yti konfigÅ«racijos failus ?" + +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "PCR PID" + +msgid "PIDs" +msgstr "PIDs" + +#, fuzzy +msgid "PIN code needed" +msgstr "Reikalingas pin kodas" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "PMT PID" + +msgid "Package list update" +msgstr "Paketo sÄ…raÅ¡o atnaujinimas" + +msgid "Packet management" +msgstr "Paketų valdymas" + +msgid "Packet manager" +msgstr "Paketo valdytojas" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +#, fuzzy +msgid "Pan&scan" +msgstr "Pan&Scan" + +#, fuzzy +msgid "Parent directory" +msgstr "PagrindinÄ— direktorija" + +msgid "Parental control" +msgstr "TÄ—vų kontrolÄ—" + +#, fuzzy +msgid "Parental control services editor" +msgstr "TÄ—vų kontrolÄ—s kanalų redaktorius" + +msgid "Parental control setup" +msgstr "TÄ—vų kontrolÄ—s nustatymai" + +msgid "Parental control type" +msgstr "TÄ—vų kontrolÄ—s rÅ«Å¡is" + +msgid "Password" +msgstr "Slaptažodis" + +#, fuzzy +msgid "Pause" +msgstr "pauzÄ—" + +msgid "Pause movie at end" +msgstr "Filmo pauzÄ— pabaigoje" + +#, fuzzy +msgid "Pause playback" +msgstr "TÄ™sti leidimÄ…" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "" + +#, fuzzy +msgid "Percentage right" +msgstr "ApskritiminÄ— deÅ¡inÄ—" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "" + +msgid "Permanently remove all deleted items" +msgstr "" + +msgid "Persian" +msgstr "Persų" + +msgid "Phone number" +msgstr "Telefono numeris" + +#, fuzzy +msgid "PiP setup" +msgstr "PiP nustatymas" + +msgid "Picon" +msgstr "" + +msgid "Picon and service name" +msgstr "" + +#, fuzzy +msgid "Picture player" +msgstr "PaveikslÄ—lių grotuvas" + +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Pillarbox" + +msgid "Pilot" +msgstr "Pilot" + +msgid "Play" +msgstr "Leisti" + +msgid "Play DVD" +msgstr "Leisti DVD" + +msgid "Play audio in background" +msgstr "" + +#, fuzzy +msgid "Play audio-CD..." +msgstr "Paleisti Garso-CD..." + +msgid "Play back media files" +msgstr "" + +#, fuzzy +msgid "Play entry" +msgstr "leisti įraÅ¡Ä…" + +#, fuzzy +msgid "Play from next mark or playlist entry" +msgstr "leisti nuo kito žymeklio arba grojaraÅ¡Äio užduoties" + +#, fuzzy +msgid "Play from previous mark or playlist entry" +msgstr "leisti nuo buvusio žymeklio arba grojaraÅ¡Äio užduoties" + +#, fuzzy +msgid "Play music..." +msgstr "Groti muzikÄ…..." + +msgid "Play next" +msgstr "" + +msgid "Play next (return to movie list)" +msgstr "" + +msgid "Play next (return to previous service)" +msgstr "" + +msgid "Play previous" +msgstr "" + +msgid "Play recorded movies..." +msgstr "Leisti įraÅ¡ytus filmus..." + +msgid "Please add titles to the compilation." +msgstr "PraÅ¡ome pridÄ—ti pavadinimus į kompiliacijÄ…." + +msgid "Please change recording endtime" +msgstr "PraÅ¡ome pakeisti įraÅ¡ymo pabaigos laikÄ…" + +msgid "Please check your network settings!" +msgstr "PraÅ¡ome tikrinti savo tinklo nustatymus!" + +msgid "Please choose an extension..." +msgstr "PraÅ¡ome iÅ¡sirinkti papildymus..." + +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"PraÅ¡ome sukonfigÅ«ruoti savo serverių pavadinimus, užpildydami bÅ«tinas reikÅ¡mes. \n" +"Kai jÅ«s esate pasiruoÅ¡Ä™s, praÅ¡ome spausti OK, kad tÄ™sti." + +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"PraÅ¡ome sukonfigÅ«ruoti savo interneto ryšį, užpildydami bÅ«tinas reikÅ¡mes. \n" +"Kai jÅ«s esate pasiruoÅ¡Ä™s, praÅ¡ome spausti OK, kad tÄ™sti." + +msgid "Please connect your receiver to the internet" +msgstr "" + +msgid "Please do not change any values unless you know what you are doing!" +msgstr "PraÅ¡ome nekeisti reikÅ¡mių, jeigu JÅ«s nežinote kÄ… darote! " + +msgid "Please enter a name for the new bouquet" +msgstr "PraÅ¡ome įraÅ¡yti naujo paketo pavadinimÄ…" + +msgid "Please enter a name for the new marker" +msgstr "PraÅ¡ome įraÅ¡yti naujo žymeklio pavadinimÄ…" + +msgid "Please enter a new filename" +msgstr "PraÅ¡ome įraÅ¡yti naujÄ… failo pavadinimÄ…" + +msgid "Please enter filename (empty = use current date)" +msgstr "PraÅ¡ome įraÅ¡yti failo pavadinimÄ… (tuÅ¡Äias = dabartiniai duomenys)" + +msgid "Please enter name of the new directory" +msgstr "PraÅ¡ome įraÅ¡yti naujos direktorijos pavadinimÄ…" + +msgid "Please enter new name:" +msgstr "" + +msgid "Please enter the correct pin code" +msgstr "PraÅ¡ome įraÅ¡yti teisingÄ… PIN kodÄ…" + +msgid "Please enter the old PIN code" +msgstr "PraÅ¡ome įraÅ¡yti senÄ… PIN kodÄ…" + +msgid "Please follow the instructions on the TV" +msgstr "PraÅ¡ome sekti instrukcijas televizoriuje" + +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "PraÅ¡ome žinoti, kad prie anksÄiau iÅ¡sirinktos medios negalÄ—jote gauti prieigos, ir todÄ—l numatyta direktorija yra naudojama vietoj tos." + +msgid "Please press OK to continue." +msgstr "PraÅ¡ome spausti OK, kad tÄ™sti." + +msgid "Please select a default EPG type..." +msgstr "" + +msgid "Please select a playlist to delete..." +msgstr "PraÅ¡ome iÅ¡sirinkti kÄ… norite trinti iÅ¡ grojaraÅ¡Äio..." + +msgid "Please select a playlist..." +msgstr "PraÅ¡ome iÅ¡sirinkti grojaraÅ¡tį" + +#, fuzzy +msgid "Please select a sub service..." +msgstr "PraÅ¡ome iÅ¡sirinkti subkanalÄ…..." + +msgid "Please select a subservice to record..." +msgstr "PraÅ¡ome iÅ¡sirinkti subkanalÄ… dÄ—l įraÅ¡ymo..." + +msgid "Please select a subservice..." +msgstr "PraÅ¡ome iÅ¡sirinkti subkanalÄ…..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "PraÅ¡ome iÅ¡sirinkti NFI failÄ… ir spauskite žaliÄ… mygtukÄ… atvaizdo užkrovumui!" + +#, fuzzy +msgid "Please select medium to be scanned" +msgstr "PraÅ¡ome iÅ¡sirinkti sritį kuri bus skanuojama" + +msgid "Please select medium to use as backup location" +msgstr "PraÅ¡ome iÅ¡sirinkti tai, kaip atsarginÄ—s kopijos vietÄ…" + +msgid "Please select tag to filter..." +msgstr "PraÅ¡ome iÅ¡sirinkti kortelÄ™ filtravimui..." + +msgid "Please select the movie path..." +msgstr "PraÅ¡ome iÅ¡sirinkti filmo keliÄ…..." + +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"PraÅ¡ome iÅ¡sirinkti tinklo sÄ…sajÄ…, kuriÄ… jÅ«s norite panaudoti jÅ«sų interneto ryÅ¡iui.\n" +"\n" +"PraÅ¡ome spausti OK, kad tÄ™sti." + +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"PraÅ¡ome iÅ¡sirinkti belaidį tinklÄ…, prie kurio norite prisijungti.\n" +"\n" +"PraÅ¡ome spausti OK, kad tÄ™sti." + +#, fuzzy +msgid "Please set up tuner A" +msgstr "PraÅ¡ome nustatyti imtuvÄ… B" + +msgid "Please set up tuner B" +msgstr "PraÅ¡ome nustatyti imtuvÄ… B" + +msgid "Please set up tuner C" +msgstr "PraÅ¡ome nustatyti imtuvÄ… C" + +msgid "Please set up tuner D" +msgstr "PraÅ¡ome nustatyti imtuvÄ… D" + +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"PraÅ¡ome, naudoti valdymo mygtukus dÄ—l PiP lango perkÄ—limo.\n" +"Spauskite Bouquet +/- dÄ—l lango dydžio pakeitimo.\n" +"Spauskite OK norint grįžti į TV arba EXIT norint nutraukti judÄ—jimÄ…." + +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "PraÅ¡ome naudoti AUKÅ TYN IR ŽEMYN mygtukus, kad iÅ¡sirinktumÄ—te savo kalbÄ…. Po to spauskite OK mygtukÄ…." + +msgid "Please wait" +msgstr "" + +#, fuzzy +msgid "Please wait (downloading channel list)" +msgstr "PraÅ¡ome laukti... Užkraunamas sÄ…raÅ¡as..." + +#, fuzzy +msgid "Please wait (downloading softcam)" +msgstr "PraÅ¡ome laukti... Užkraunamas sÄ…raÅ¡as..." + +#, fuzzy +msgid "Please wait (updating packages)" +msgstr "laukite...užkraunamas paveikslÄ—lis" + +msgid "Please wait for activation of your network configuration..." +msgstr "PraÅ¡ome laukti jÅ«sų tinklo konfigÅ«racijos aktyvavimo..." + +msgid "Please wait while scanning is in progress..." +msgstr "PraÅ¡ome laukti kol vyksta skanavimas..." + +msgid "Please wait while we configure your network..." +msgstr "PraÅ¡ome laukti kol konfigÅ«ruojamas jÅ«sų tinklas..." + +msgid "Please wait while we prepare your network interfaces..." +msgstr "PraÅ¡ome laukti kol ruoÅ¡iame jÅ«sų tinklo sÄ…sajas..." + +msgid "Please wait while we test your network..." +msgstr "PraÅ¡ome laukti kol testuojamas jÅ«sų tinklas..." + +msgid "Please wait while your network is restarting..." +msgstr "PraÅ¡ome laukti kol paleidžiamas iÅ¡ naujo jÅ«sų tinklas..." + +msgid "Please wait..." +msgstr "PraÅ¡ome laukti..." + +msgid "Please wait... Loading list..." +msgstr "PraÅ¡ome laukti... Užkraunamas sÄ…raÅ¡as..." + +msgid "Plugin browser" +msgstr "Papildomų programų narÅ¡yklÄ—" + +msgid "Plugin manager activity information" +msgstr "Papildomų programų aktyvumo informacija" + +msgid "Plugin manager help" +msgstr "Papildomų programų valdymo pagalba" + +msgid "Plugins" +msgstr "Papildomos programos" + +msgid "Polarisation" +msgstr "" + +msgid "Polarisation:" +msgstr "" + +msgid "Polarization" +msgstr "Poliarizacija" + +msgid "Polish" +msgstr "Lenkų" + +msgid "Port A" +msgstr "Jungtis A" + +msgid "Port B" +msgstr "Jungtis B" + +msgid "Port C" +msgstr "Jungtis C" + +msgid "Port D" +msgstr "Jungtis D" + +msgid "Portuguese" +msgstr "Portugalų" + +#, fuzzy +msgid "Position of completed timers in timerlist" +msgstr "Baigtų laikmaÄių padÄ—tis laikmaÄio sÄ…raÅ¡e" + +msgid "Position stored at index" +msgstr "" + +msgid "Positioner" +msgstr "Pozicionierius" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "" + +msgid "Positioner setup" +msgstr "Pozicionieriaus nustatymas" + +msgid "Power threshold in mA" +msgstr "Ä®tampos galia mA" + +msgid "Predefined transponder" +msgstr "Nustatytas transponderis" + +msgid "Prefer AC3 track" +msgstr "" + +msgid "Prefer AC3+ track" +msgstr "" + +msgid "Prefer audio track stored by service" +msgstr "" + +msgid "Prefer graphical DVB subtitles" +msgstr "" + +msgid "Prefer subtitles for hearing impaired" +msgstr "" + +msgid "Prefer subtitles stored by service" +msgstr "" + +msgid "Preferred tuner" +msgstr "Imtuvo pirmenybÄ—" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "ParuoÅ¡kite kitÄ… USB laikmenÄ… atvaizdo užkrovimui" + +msgid "Preparing... Please wait" +msgstr "PasiruoÅ¡iama... PraÅ¡ome laukti" + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "Spauskite INFO ant savo distancinio valdymo pulto dÄ—l papildomos informacijos." + +msgid "Press MENU on your remote control for additional options." +msgstr "Spauskite MENU ant savo distancinio valdymo pulto papildomam pasirinkimui." + +msgid "Press OK on your remote control to continue." +msgstr "Spauskite OK savo valdymo pulte ir tÄ™skite." + +msgid "Press OK to activate the selected skin." +msgstr "Spauskite OK, kad aktyvuoti pasirinktÄ… temÄ…." + +msgid "Press OK to activate the settings." +msgstr "Spauskite OK norÄ—dami aktyvuoti nustatymus" + +msgid "Press OK to edit the settings." +msgstr "Spauskite OK ir redaguokite nustatymus." + +#, python-format +msgid "Press OK to get further details for %s" +msgstr "Spauskite OK, kad gautumÄ—te tolimesnes detales dÄ—l %s" + +msgid "Press OK to scan" +msgstr "Spauskite OK paieÅ¡kai." + +#, fuzzy +msgid "Press OK to select a provider." +msgstr "Spauskite OK, kad pasirinkti tiekÄ—jÄ…." + +msgid "Press OK to select satellites" +msgstr "" + +msgid "Press OK to select/deselect a CAId." +msgstr "Spauskite OK, kad pasirinkti/nepasirinkti CAId." + +msgid "Press OK to start the scan" +msgstr "Spauskite OK norÄ—dami pradÄ—ti paieÅ¡kÄ…." + +msgid "Press OK to toggle the selection" +msgstr "" + +msgid "Press OK to toggle the selection." +msgstr "Spauskite OK dÄ—l pasirinkimo." + +msgid "Press yellow to set this interface as default interface." +msgstr "Spauskite geltonÄ…, kad nustatyti Å¡iÄ… sÄ…sajÄ… kaip numatytÄ…jÄ…." + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "" + +msgid "Preview" +msgstr "PeržiÅ«ra" + +msgid "Preview menu" +msgstr "PeržiÅ«ros meniu" + +msgid "Preview selected channel" +msgstr "" + +msgid "Primary DNS" +msgstr "Pirminis DNS" + +msgid "Priority" +msgstr "PirmenybÄ—" + +msgid "Process" +msgstr "Procesas" + +msgid "Progress" +msgstr "" + +msgid "Progress bar left" +msgstr "" + +msgid "Progress bar right" +msgstr "" + +msgid "Properties of current title" +msgstr "Dabartinio pavadinimo ypatybÄ—s" + +msgid "Protect services" +msgstr "Apsaugoti kanalus" + +msgid "Protect setup" +msgstr "Apsaugoti nustatymus" + +msgid "Provider" +msgstr "TiekÄ—jas" + +msgid "Provider to scan" +msgstr "TiekÄ—jas, kurį norite skanuoti" + +msgid "Providers" +msgstr "TiekÄ—jai" + +msgid "Put TV in standby" +msgstr "" + +msgid "Put receiver in standby" +msgstr "" + +msgid "Python frontend for /tmp/mmi.socket" +msgstr "Python pradinÄ— fazÄ— dÄ—l /tmp/mmi.socket" + +msgid "Quick" +msgstr "Greitas" + +#, fuzzy +msgid "Quick zap" +msgstr "Greitas perjungimas" + +msgid "RF output" +msgstr "RF iÅ¡Ä—jimas" + +msgid "RGB" +msgstr "RGB" + +msgid "Radio" +msgstr "Radijas" + +#, fuzzy +msgid "Ram disk" +msgstr "Ram Diskas" + +msgid "Random" +msgstr "Atsitiktinis" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "" + +msgid "Rating undefined" +msgstr "" + +msgid "Really close without saving settings?" +msgstr "Tikrai uždaryti be nustatymų iÅ¡saugojimo ?" + +msgid "Really delete done timers?" +msgstr "Tikrai paÅ¡alinti baigtus laikmaÄius?" + +msgid "Really exit the subservices quickzap?" +msgstr "Tikrai iÅ¡eiti iÅ¡ subkanalų greito perjungimo?" + +msgid "Really reboot now?" +msgstr "Tikrai perjungti dabar?" + +msgid "Really restart now?" +msgstr "Tikrai paleisti iÅ¡ naujo dabar?" + +msgid "Really shutdown now?" +msgstr "Tikrai iÅ¡jungti dabar?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "" + +msgid "Reboot" +msgstr "Paleisti iÅ¡ naujo" + +msgid "Rec" +msgstr "" + +#, fuzzy +msgid "Reception settings" +msgstr "PriÄ—mimo nustatymai" + +msgid "Record" +msgstr "Ä®raÅ¡as" + +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "Ä®raÅ¡o laikas apribotas dÄ—l prieÅ¡taringo laikmaÄio %s" + +msgid "Recorded files..." +msgstr "Ä®raÅ¡yti failai..." + +msgid "Recording" +msgstr "Ä®raÅ¡ymas" + +msgid "Recording in progress" +msgstr "" + +msgid "Recording paths" +msgstr "Ä®rašų keliai" + +msgid "Recording type" +msgstr "" + +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "Ä®raÅ¡as (ai) yra vykdymas arba bus prieinamas po kelių sekundžių!" + +msgid "Recordings" +msgstr "Ä®raÅ¡ai" + +msgid "Recordings always have priority" +msgstr "Ä®raÅ¡ai visada turi pirmenybÄ™" + +msgid "Red button..." +msgstr "" + +msgid "Reenter new PIN" +msgstr "IÅ¡ naujo įraÅ¡ykite naujÄ… PIN" + +#, fuzzy +msgid "Refresh rate" +msgstr "Atnaujinimo norma" + +msgid "Refresh rate selection." +msgstr "Atnaujinkite normos pasirinkimÄ…" + +msgid "Regard deep standby as standby" +msgstr "" + +msgid "Relative" +msgstr "" + +msgid "Reload" +msgstr "Užkrauti" + +#, fuzzy +msgid "Reload black-/white lists" +msgstr "Perkrauti Juodus-/Baltus sÄ…raÅ¡us" + +msgid "Reloading bouquets and services..." +msgstr "" + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "Atsiminti kanalo PIN" + +msgid "Remember these settings for each folder" +msgstr "" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "" + +#, fuzzy +msgid "Remote control type" +msgstr "TÄ—vų kontrolÄ—s rÅ«Å¡is" + +#, fuzzy +msgid "Removal has completed." +msgstr "PaÅ¡alinimas klaidingas." + +msgid "Remove" +msgstr "PaÅ¡alinti" + +msgid "Remove a mark" +msgstr "PaÅ¡alinti žymeklį" + +#, fuzzy +msgid "Remove a nameserver entry" +msgstr "paÅ¡alinkite serverio pavadinimo įėjimÄ…" + +#, fuzzy +msgid "Remove bookmark" +msgstr "paÅ¡alinti žymÄ™" + +#, fuzzy +msgid "Remove completed timers after (days)" +msgstr "PaÅ¡alinti elementus iÅ¡ Å¡iukÅ¡linÄ—s po (dienų)" + +msgid "Remove currently selected title" +msgstr "PaÅ¡alinti dabartinį pasirinktÄ… pavadinimÄ…" + +#, fuzzy +msgid "Remove items from trash can after (days)" +msgstr "PaÅ¡alinti elementus iÅ¡ Å¡iukÅ¡linÄ—s po (dienų)" + +msgid "Remove plugins" +msgstr "PaÅ¡alinti papildomas programas" + +msgid "Remove title" +msgstr "PaÅ¡alinti " + +msgid "Removing" +msgstr "PaÅ¡alinimas" + +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Direktorijos paÅ¡alinimas %s klaidingas. (GalbÅ«t ne tuÅ¡Äia.)" + +#, fuzzy +msgid "Removing partition table" +msgstr "PaÅ¡alinti " + +msgid "Rename" +msgstr "Pervardinti" + +msgid "Repeat" +msgstr "" + +#, fuzzy +msgid "Repeat type" +msgstr "Pakartojimo bÅ«das" + +msgid "Repeating event currently recording... What do you want to do?" +msgstr "Kartojama užduotis dabar įraÅ¡inÄ—jama... JÅ«s norite tai padaryti?" + +msgid "Repeats" +msgstr "Pakartojimai" + +msgid "Require authentication for http streams" +msgstr "" + +msgid "Required medium type:" +msgstr "Reikalingas laikmenos tipas:" + +msgid "Rereading partition table" +msgstr "" + +msgid "Reserved" +msgstr "" + +msgid "Reset" +msgstr "Perjungti" + +msgid "Reset and renumerate title names" +msgstr "Perjungti ir pernumeruoti antraÅ¡tÄ—s pavadinimus" + +msgid "Reset playback position" +msgstr "" + +msgid "Reset video enhancement settings to system defaults?" +msgstr "Perjungti vaizdo stiprinimo nustatymus į sisteminius numatytus?" + +msgid "Reset video enhancement settings to your last configuration?" +msgstr "Perjungti vaizdo stiprinimo nustatymus į jÅ«sų paskutinÄ™ vaizdo konfigÅ«racijÄ…?" + +msgid "Resolution" +msgstr "Rezoliucija" + +msgid "Restart" +msgstr "Paleisti iÅ¡ naujo" + +msgid "Restart GUI now?" +msgstr "Paleisti iÅ¡ naujo GUI dabar?" + +msgid "Restart enigma" +msgstr "Paleisti iÅ¡ naujo Enigma2" + +msgid "Restart network" +msgstr "Paleisti iÅ¡ naujo tinklÄ…" + +msgid "Restart test" +msgstr "Paleisti iÅ¡ naujo testÄ…" + +msgid "Restart your network connection and interfaces.\n" +msgstr "IÅ¡ naujo paleiskite savo tinklo ryšį ir sÄ…sajas. \n" + +msgid "Restore" +msgstr "Atkurti" + +msgid "Restore backups" +msgstr "Atkurti atsargines kopijas" + +msgid "Restore is running..." +msgstr "Vyksta atkÅ«rimas..." + +msgid "Restore system settings" +msgstr "Atkurkite sisteminius nustatymus" + +#, fuzzy +msgid "Restoring..." +msgstr "įraÅ¡oma..." + +msgid "Resume from last position" +msgstr "TÄ™sti nuo paskutinÄ—s pozicijos" + +#, python-format +msgid "Resume position at %s" +msgstr "TÄ™sti pozicijÄ…% s" + +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "TÄ™sti leidimÄ…" + +msgid "Return to movie list" +msgstr "Grįžti į filmų sÄ…raÅ¡Ä…" + +msgid "Return to previous service" +msgstr "Grįžkite į buvusį kanalÄ…" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +msgid "Rewind speeds" +msgstr "Persukimo greitis" + +msgid "Rewrap teletext subtitles" +msgstr "" + +msgid "Right" +msgstr "DeÅ¡inys" + +msgid "Right from servicename" +msgstr "" + +msgid "Roll-off" +msgstr "Roll-off" + +msgid "Romanian" +msgstr "" + +msgid "Root directory" +msgstr "" + +msgid "Rotor step position:" +msgstr "" + +msgid "Rotor turning speed" +msgstr "Pozicionieriaus sukimosi greitis" + +msgid "Round start time on" +msgstr "" + +msgid "Russian" +msgstr "Rusų" + +msgid "S-Video" +msgstr "S-Video" + +msgid "SID" +msgstr "SID" + +msgid "SINGLE LAYER DVD" +msgstr "VIENO SLUOKSNIO DVD" + +msgid "SNR" +msgstr "SNR" + +msgid "SNR:" +msgstr "SNR:" + +msgid "SSID:" +msgstr "SSID:" + +msgid "Same resolution as skin" +msgstr "" + +msgid "Sat" +msgstr "Å eÅ¡" + +msgid "Satellite" +msgstr "Palydovas" + +#, fuzzy +msgid "Satellite dish setup" +msgstr "PalydovinÄ—s įrangos nustatymas" + +msgid "Satellite equipment" +msgstr "PalydovinÄ— įranga" + +#, fuzzy +msgid "Satellite equipment setup" +msgstr "PalydovinÄ—s įrangos nustatymas" + +msgid "Satellite longitude:" +msgstr "" + +msgid "Satellites" +msgstr "Palydovai" + +msgid "Satfinder" +msgstr "Palydovų paieÅ¡ka" + +msgid "Sats" +msgstr "Palydovai" + +msgid "Saturation" +msgstr "Prisotinimas" + +msgid "Saturday" +msgstr "Å eÅ¡tadienis" + +msgid "Save" +msgstr "Saugoti" + +#, fuzzy +msgid "Save playlist" +msgstr "iÅ¡saugoti grojaraÅ¡tį" + +msgid "Save timeshift file" +msgstr "" + +msgid "Save timeshift file in movie directory" +msgstr "" + +msgid "Scaler sharpness" +msgstr "SkalÄ—s aÅ¡trumas" + +#, fuzzy +msgid "Scaling mode" +msgstr "SkalÄ—s režimas" + +msgid "Scan" +msgstr "" + +msgid "Scan " +msgstr "Skanuoti" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, fuzzy, python-format +msgid "Scan %s" +msgstr "Skanuoti" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, fuzzy, python-format +msgid "Scan %s band" +msgstr "Skanuoti diapazonÄ… EU MID" + +msgid "Scan additional SR" +msgstr "Papildomai skanuoti SR" + +#, fuzzy +msgid "Scan files..." +msgstr "Skanuoti failus..." + +#, fuzzy +msgid "Scan wireless networks" +msgstr "Skanuoti Bevielį TinklÄ…" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "PeržiÅ«rÄ—kite savo tinklÄ… belaidžiams prieigos taÅ¡kams ir junkitÄ—s prie jų naudojant jÅ«sų iÅ¡sirinktÄ… belaidžio tinklo įrenginį.\n" + +#, python-format +msgid "Scanning %s..." +msgstr "" + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "" +msgstr[1] "" + +msgid "Scanning failed!" +msgstr "" + +msgid "Scanning..." +msgstr "" + +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "Skanuokite numatytÄ… lamedbs, surÅ«Å¡iuotÄ… pagal palydovÄ… su prijungta prie pozicionieriaus antena" + +msgid "Search east" +msgstr "IeÅ¡kokite rytų" + +msgid "Search west" +msgstr "IeÅ¡kokite vakarų" + +msgid "Searching" +msgstr "" + +msgid "Searching east ..." +msgstr "" + +msgid "Searching for available updates. Please wait..." +msgstr "IeÅ¡koma pasiekiamų atnaujinimų. PraÅ¡ome laukti..." + +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "Naujai įdiegtų ar paÅ¡alintų paketų paieÅ¡ka. PraÅ¡ome laukti..." + +msgid "Searching west ..." +msgstr "" + +msgid "Second cable of motorized LNB" +msgstr "" + +msgid "Secondary DNS" +msgstr "Antrinis DNS" + +msgid "Seek" +msgstr "IeÅ¡koti" + +#, fuzzy +msgid "Seek backward" +msgstr "praleisti sukimÄ… atgal" + +#, fuzzy +msgid "Seek backward (enter time)" +msgstr "praleisti atgal (įraÅ¡ykite laikÄ…)" + +#, fuzzy +msgid "Seek forward" +msgstr "praleisti sukimÄ… į priekį" + +#, fuzzy +msgid "Seek forward (enter time)" +msgstr "praleisti pirmyn (įraÅ¡ykite laikÄ…)" + +msgid "Select" +msgstr "IÅ¡sirinkite" + +#, fuzzy +msgid "Select CAId" +msgstr "iÅ¡sirinkite CAId" + +msgid "Select HDD" +msgstr "IÅ¡sirinkite kietÄ… diskÄ…" + +#, fuzzy +msgid "Select a bouquet" +msgstr "IÅ¡sirinkite filmÄ…" + +msgid "Select a movie" +msgstr "IÅ¡sirinkite filmÄ…" + +#, fuzzy +msgid "Select a network adapter" +msgstr "IÅ¡sirinkite tinklo adapterį" + +#, fuzzy +msgid "Select a skin" +msgstr "IÅ¡sirinkite filmÄ…" + +#, fuzzy +msgid "Select a tuner" +msgstr "IÅ¡sirinkite filmÄ…" + +#, fuzzy +msgid "Select a wireless network" +msgstr "IÅ¡sirinkite bevielį tinklÄ…" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +#, fuzzy +msgid "Select an image to be downloaded" +msgstr "Pasirinkite atvaizdÄ… parsisiuntimui" + +msgid "Select audio track" +msgstr "IÅ¡sirinkite garso takelį" + +#, fuzzy +msgid "Select backup files" +msgstr "IÅ¡sirinkite atsarginÄ—s kopijos failus" + +#, fuzzy +msgid "Select backup location" +msgstr "IÅ¡sirinkite atsarginÄ—s kopijos vietÄ…" + +msgid "Select channel to record from" +msgstr "IÅ¡sirinkite kanalÄ… įraÅ¡ymui" + +msgid "Select copy destination for:" +msgstr "" + +msgid "Select default EPG type..." +msgstr "" + +msgid "Select desired image from feed list" +msgstr "IÅ¡sirinkite pageidaujamÄ… atvaizdÄ… iÅ¡ perdavimo sÄ…raÅ¡o" + +msgid "Select destination for:" +msgstr "" + +msgid "Select files for backup." +msgstr "Pasirinkite failus atsarginei kopijai." + +msgid "Select files/folders to backup" +msgstr "IÅ¡sirinkite failus/aplankus dÄ—l atsarginÄ—s kopijos" + +msgid "Select input device" +msgstr "IÅ¡sirinkite įvesties prietaisÄ…" + +msgid "Select input device." +msgstr "IÅ¡sirinkite įvesties prietaisÄ…." + +msgid "Select interface" +msgstr "IÅ¡srinkite sÄ…sajÄ…" + +#, fuzzy +msgid "Select location" +msgstr "IÅ¡sirinkite vietÄ…" + +#, fuzzy +msgid "Select movie" +msgstr "IÅ¡sirinkite filmÄ…" + +msgid "Select provider to add..." +msgstr "IÅ¡sirinkite tiekÄ—jÄ…, kurį norite pridÄ—ti..." + +msgid "Select refresh rate" +msgstr "IÅ¡sirinkite atnujinimo normÄ…" + +msgid "Select satellites" +msgstr "" + +msgid "Select service to add..." +msgstr "IÅ¡sirinkite kanalÄ…, kurį norite pridÄ—ti..." + +msgid "Select sort method:" +msgstr "" + +#, fuzzy +msgid "Select target folder" +msgstr "IÅ¡sirinkite aplankÄ…" + +#, fuzzy +msgid "Select the movie path" +msgstr "pasirinkite filmo keliÄ…" + +#, fuzzy +msgid "Select upgrade source" +msgstr "IÅ¡sirinkite atnaujinimo Å¡altinį dÄ—l redagavimo." + +msgid "Select upgrade source to edit." +msgstr "IÅ¡sirinkite atnaujinimo Å¡altinį dÄ—l redagavimo." + +msgid "Select video input with up/down buttons" +msgstr "IÅ¡sirinkite vaizdo įėjimÄ… su mygtukais aukÅ¡tyn/žemyn" + +msgid "Select video mode" +msgstr "IÅ¡sirinkite vaizdo bÅ«dÄ…" + +msgid "Select wireless network" +msgstr "IÅ¡sirinkite bevielį tinklÄ…" + +msgid "Select your provider, and press OK to start the scan" +msgstr "" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +msgid "Send DiSEqC only on satellite change" +msgstr "Siųskite DiSEqC tik palydovo pakeitimui" + +msgid "Separate titles with a main menu" +msgstr "Pavadinimai su pagrindiniu meniu" + +msgid "Sequence repeat" +msgstr "Sekos pakartojimas" + +msgid "Serbian" +msgstr "Serbų" + +msgid "Service" +msgstr "Apie kanalÄ…" + +msgid "Service has been added to the favourites." +msgstr "Kanalas buvo įtrauktas į mÄ—gstamiausius." + +msgid "Service has been added to the selected bouquet." +msgstr "Kanalas buvo įtrauktas į pasirinktÄ… paketÄ…." + +#, fuzzy +msgid "Service info" +msgstr "Kanalo informacija" + +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Kanalo nÄ—ra!\n" +"(Skaitymo pertrauka PMT)" + +#, fuzzy +msgid "Service name" +msgstr "Kanalų skanavimas" + +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Kanalas nerastas!\n" +"(SID nÄ—ra PAT)" + +msgid "Service reference" +msgstr "Kanalo nuoroda" + +msgid "Service scan" +msgstr "Kanalo skanavimas" + +#, fuzzy +msgid "Service searching" +msgstr "Kanalų paieÅ¡ka" + +#, fuzzy +msgid "Service title mode" +msgstr "IÅ¡sirinkite vaizdo bÅ«dÄ…" + +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"Kanalas nepasiekiamas!\n" +"Patikrinkite imtuvo nustatymus!" + +msgid "Services" +msgstr "Kanalai" + +msgid "Set default" +msgstr "" + +#, fuzzy +msgid "Set end time" +msgstr "Nustatyti pabaigos laikÄ…" + +msgid "Set fixed" +msgstr "" + +msgid "Set fps for external subtitles" +msgstr "" + +msgid "Set interface as default Interface" +msgstr "Nustatykite sÄ…sajÄ…, kaip numatytÄ… sÄ…sajÄ…" + +msgid "Set limits" +msgstr "" + +#, fuzzy +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "Rodyti atvejo eigÄ… kanalo pasirinkime" + +msgid "Set time window to 1 hour" +msgstr "" + +msgid "Set time window to 2 hours" +msgstr "" + +msgid "Set time window to 3 hours" +msgstr "" + +msgid "Set time window to 4 hours" +msgstr "" + +msgid "Set time window to 5 hours" +msgstr "" + +msgid "Set time window to 6 hours" +msgstr "" + +#, fuzzy +msgid "Set voltage and 22KHz" +msgstr "Nustatyti įtampÄ… ir 22 KHZ" + +msgid "Settings" +msgstr "Nustatymai" + +msgid "Setup" +msgstr "Nustatymai" + +msgid "Setup menu" +msgstr "" + +#, fuzzy +msgid "Setup mode" +msgstr "Valdymo bÅ«das" + +msgid "Setup your positioner" +msgstr "" + +#, fuzzy +msgid "Setup your satellite equipment" +msgstr "PalydovinÄ— įranga" + +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "Ar USB atmintinÄ—s vedliui vykdyti programos atvaizdo failÄ… %s į \"vidinÄ™\" atmintį?" + +msgid "Sharpness" +msgstr "AÅ¡trumas" + +msgid "Short filenames" +msgstr "Trumpi failų pavadinimai" + +msgid "Show EIT now/next in infobar" +msgstr "Rodyti EIT dabar/kitas infojuostoje" + +#, fuzzy +msgid "Show EPG for current channel..." +msgstr "Rodyti infojuostÄ… pasikeiÄiant užduoÄiai" + +#, fuzzy +msgid "Show EPG..." +msgstr "rodyti EPG..." + +msgid "Show Games show" +msgstr "" + +msgid "Show SNR percentage instead of dB value" +msgstr "" + +msgid "Show VCR scart on main menu" +msgstr "" + +#, fuzzy +msgid "Show WLAN status" +msgstr "Rodyti belaidžio tinklo bÅ«senÄ…" + +msgid "Show animation while busy" +msgstr "Rodyti animacijÄ… tuo metu, kai užimta" + +#, fuzzy +msgid "Show background in radio mode" +msgstr "foninis atvaizdas" + +msgid "Show bouquet selection menu" +msgstr "" + +msgid "Show busy indicator when the system is busy." +msgstr "" + +msgid "Show channel numbers in channel selection" +msgstr "" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "Rodyti kodavimo informacijÄ… infojuostoje" + +msgid "Show detailed event info" +msgstr "" + +#, fuzzy +msgid "Show event details" +msgstr "rodyti užduoÄių detales" + +msgid "Show event-progress in channel selection" +msgstr "Rodyti atvejo eigÄ… kanalo pasirinkime" + +#, fuzzy +msgid "Show extended description" +msgstr "rodyti iÅ¡plÄ—stÄ… informacijÄ…" + +#, fuzzy +msgid "Show extensions..." +msgstr "žiÅ«rÄ—ti papildymus" + +msgid "Show icon for new/unseen items" +msgstr "" + +msgid "Show in extensions menu" +msgstr "" + +#, fuzzy +msgid "Show info" +msgstr "Rodyti informacijÄ…" + +#, fuzzy +msgid "Show info line" +msgstr "rodyti informacijos eilutÄ™" + +msgid "Show infobar on channel change" +msgstr "Rodyti infojuostÄ… perjungiant kanalÄ…" + +msgid "Show infobar on event change" +msgstr "Rodyti infojuostÄ… pasikeiÄiant užduoÄiai" + +msgid "Show infobar on skip forward/backward" +msgstr "Rodyti infojuostÄ… praleidžiant į priekį/atgal" + +msgid "Show latest commits on sourceforge" +msgstr "" + +#, fuzzy +msgid "Show message when recording starts" +msgstr "Rodyti žinutÄ™, kai prasideda įraÅ¡ymas" + +#, fuzzy +msgid "Show movie lengths in movielist" +msgstr "Rodyti statuso ikonas filmų sÄ…raÅ¡e" + +msgid "Show multi channel EPG" +msgstr "" + +msgid "Show picons in channel list" +msgstr "" + +msgid "Show positioner movement" +msgstr "Rodyti pozicionieriaus judÄ—jimÄ…" + +msgid "Show screensaver" +msgstr "" + +msgid "Show second infobar" +msgstr "" + +msgid "Show service type icons" +msgstr "" + +msgid "Show services beginning with" +msgstr "Rodyti kanalus, prasidedanÄius su" + +#, fuzzy +msgid "Show shutdown menu" +msgstr "iÅ¡jungimo meniu" + +msgid "Show single service EPG" +msgstr "" + +msgid "Show status icons in Movielist" +msgstr "" + +#, fuzzy +msgid "Show status icons in movie list" +msgstr "Rodyti statuso ikonas filmų sÄ…raÅ¡e" + +#, fuzzy +msgid "Show status icons in movielist" +msgstr "Rodyti statuso ikonas filmų sÄ…raÅ¡e" + +#, fuzzy +msgid "Show tag menu" +msgstr "rodyti etiketÄ—s meniu" + +msgid "Show the radio player..." +msgstr "Rodyti radijo grotuvÄ…..." + +msgid "Show the tv player..." +msgstr "Rodyti TV grotuvÄ… ..." + +msgid "Show warning when timeshift is stopped" +msgstr "" + +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Rodyti jÅ«sų belaidžio tinklo prisijungimo ribas.\n" + +#, fuzzy +msgid "Shuffle playlist" +msgstr "sukeisti vietomis grojaraÅ¡tį" + +msgid "Shutdown" +msgstr "IÅ¡jungti" + +msgid "Shutdown when in Standby" +msgstr "" + +msgid "Side by side" +msgstr "" + +msgid "Signal OK, proceeding" +msgstr "" + +msgid "Signal quality" +msgstr "" + +#, fuzzy +msgid "Signal strength:" +msgstr "Signalo stiprumas:" + +msgid "Signal: " +msgstr "Signalas:" + +msgid "Similar" +msgstr "Kartojama" + +msgid "Similar broadcasts:" +msgstr "Kartojamos laidos:" + +msgid "Simple" +msgstr "Paprastas" + +msgid "Simple titleset (compatibility for legacy players)" +msgstr "Paprastas pavadinimo nustatymas (suderinamas žaidÄ—jams)" + +msgid "Single" +msgstr "Vienintelis" + +msgid "Single EPG" +msgstr "Kanalo EPG" + +msgid "Single satellite" +msgstr "Vienintelis palydovas" + +#, fuzzy +msgid "Single step (GOP)" +msgstr "Vienpakopis (GOP)" + +msgid "Single transponder" +msgstr "Vienintelis transponderis" + +msgid "Site latitude" +msgstr "" + +msgid "Site longitude" +msgstr "" + +msgid "Skin" +msgstr "Tema" + +msgid "Skins" +msgstr "Temos" + +#, fuzzy +msgid "Skip empty services" +msgstr "Apsaugoti kanalus" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "" + +#, fuzzy +msgid "Sleep timer" +msgstr "BudÄ—jimo laikmatis" + +msgid "SleepTimer Configuration" +msgstr "" + +msgid "Sleeptimer" +msgstr "" + +#, fuzzy +msgid "Slide picture in loop" +msgstr "skaidrÄ—s paveikslÄ—lis kontÅ«re" + +#, fuzzy +msgid "Slide show interval (sec.)" +msgstr "PaveikslÄ—lių rodymo tarpas (sеk.)" + +#, python-format +msgid "Slot %d" +msgstr "Modulis %d" + +msgid "Slovak" +msgstr "" + +msgid "Slovenian" +msgstr "SlovÄ—nų" + +msgid "Slow" +msgstr "LÄ—tas" + +#, fuzzy +msgid "Slow motion speeds" +msgstr "PalÄ—tinto judÄ—jimo greitis" + +#, fuzzy +msgid "Small progress" +msgstr "Vykdymas" + +msgid "Social/Political/Economics" +msgstr "" + +msgid "SoftCam / CI" +msgstr "EMU / Ä®statomi moduliai" + +#, fuzzy +msgid "Softcam type" +msgstr "PrograminÄ— įranga" + +msgid "Software" +msgstr "PrograminÄ— įranga" + +msgid "Software management" +msgstr "PrograminÄ—s įrangos valdymas" + +msgid "Software manager setup" +msgstr "PrograminÄ—s įrangos valdymo nustatymas" + +msgid "Software restore" +msgstr "PrograminÄ—s įrangos atkÅ«rimas" + +msgid "Software update" +msgstr "PrograminÄ—s įrangos atnaujinimas" + +msgid "Softwaremanager information" +msgstr "PrograminÄ—s įrangos valdymo informacija" + +msgid "Some plugins are not available:\n" +msgstr "Kai kurių papildomų programų nÄ—ra:\n" + +#, fuzzy, python-format +msgid "Sorry, %s has not been installed!" +msgstr "Gaila MediaScanner nÄ—ra įdiegtas!" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "" + +#, fuzzy +msgid "Sorry, no backups found!" +msgstr "Gaila, jokios atsarginÄ—s kopijos nerastos!" + +#, fuzzy +msgid "Sorry, no details available!" +msgstr "Gaila, smulkesnÄ—s informacijos nÄ—ra!" + +#, fuzzy +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"Gaila, jÅ«sų atsarginÄ—s kopijos pasirinkimas nÄ—ra tinkamas raÅ¡ymui.\n" +"PraÅ¡ome pasirinkti kitÄ…." + +msgid "Sort" +msgstr "" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "RÅ«Å¡iuoti A-Z" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +#, fuzzy +msgid "Sort time" +msgstr "RÅ«Å¡iuoti laikÄ…" + +msgid "Sound" +msgstr "Garsas" + +#, fuzzy +msgid "Sound carrier" +msgstr "Garso neÅ¡anÄioji" + +msgid "Source request" +msgstr "" + +msgid "South" +msgstr "PietÅ«s" + +msgid "Spanish" +msgstr "Ispanų" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +msgid "Split preview mode" +msgstr "Skilimo peržiÅ«ros bÅ«das" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "" + +#, fuzzy +msgid "Standard" +msgstr "standartinis" + +msgid "Standart list" +msgstr "" + +msgid "Standby" +msgstr "BudÄ—jimas" + +#, fuzzy +msgid "Standby / restart" +msgstr "BudÄ—ti / Perkrauti" + +msgid "Standby after current event" +msgstr "" + +#, fuzzy, python-format +msgid "Standby fan %d PWM" +msgstr "AuÅ¡intuvo budÄ—jimo %d PWM" + +#, fuzzy, python-format +msgid "Standby fan %d voltage" +msgstr "AuÅ¡intuvo budÄ—jimo %d įtampa" + +msgid "Standby in " +msgstr "" + +msgid "StandbyLED" +msgstr "" + +msgid "Start from the beginning" +msgstr "Pradžia nuo pradžios" + +msgid "Start offline decode" +msgstr "" + +msgid "Start recording?" +msgstr "PradÄ—ti įraÅ¡ymÄ…?" + +msgid "Start test" +msgstr "PradÄ—ti testÄ…" + +#, fuzzy +msgid "Start time" +msgstr "Paleidimo pradžia" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +#, fuzzy +msgid "Start timeshift" +msgstr "pradÄ—ti laiko poslinkį" + +msgid "Start with list screen" +msgstr "" + +msgid "Starting on" +msgstr "Paleidimas įjungtas" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +msgid "Step east" +msgstr "Žingsnis į rytus" + +msgid "Step west" +msgstr "Žingsnis į vakarus" + +msgid "Stepped east" +msgstr "" + +msgid "Stepped west" +msgstr "" + +msgid "Stop" +msgstr "Stabdyti" + +#, fuzzy +msgid "Stop PiP" +msgstr "stabdyti PiP" + +msgid "Stop current event and disable coming events" +msgstr "Sustabdyti dabartinÄ™ užduotį ir iÅ¡jungti sekanÄiÄ… užduotį" + +msgid "Stop current event but not coming events" +msgstr "Sustabdyti dabartinÄ™ užduotį, nevykdant sekanÄių užduoÄių" + +#, fuzzy +msgid "Stop entry" +msgstr "stabdyti įraÅ¡Ä…" + +msgid "Stop playing this movie?" +msgstr "Sustabdyti Å¡io filmo žiÅ«rÄ—jimÄ… ?" + +msgid "Stop recording" +msgstr "" + +msgid "Stop recording and delete" +msgstr "" + +msgid "Stop service on return to movie list" +msgstr "" + +msgid "Stop test" +msgstr "Stabdyti testavimÄ…" + +msgid "Stop testing plane after # failed transponders" +msgstr "Stabdykite testavimÄ… po to kai # klaidingi transponderiai" + +msgid "Stop testing plane after # successful transponders" +msgstr "Stabdykite testavimÄ… po to kai # pavykÄ™ transponderiai" + +msgid "Stop timer recording" +msgstr "" + +#, fuzzy +msgid "Stop timeshift" +msgstr "iÅ¡jungti laiko poslinkį" + +#, fuzzy +msgid "Stop timeshift?" +msgstr "Sustabdyti laiko poslinkį?" + +msgid "Stopped" +msgstr "" + +msgid "Store at index" +msgstr "" + +msgid "Store position" +msgstr "IÅ¡saugoti padÄ—tį" + +msgid "Stored position" +msgstr "IÅ¡saugota padÄ—tis" + +msgid "Stream" +msgstr "" + +msgid "Stream request" +msgstr "" + +msgid "Strongest position" +msgstr "" + +msgid "Subservice list..." +msgstr "Subkanalų sÄ…raÅ¡as..." + +msgid "Subservices" +msgstr "Subkanalai" + +msgid "Subtitle Quickmenu" +msgstr "" + +#, fuzzy +msgid "Subtitle alignment" +msgstr "Subtitrų pasirinkimas" + +msgid "Subtitle border width" +msgstr "" + +msgid "Subtitle delay when timing is bad" +msgstr "" + +msgid "Subtitle delay when timing lacks" +msgstr "" + +#, fuzzy +msgid "Subtitle font size" +msgstr "Subtitrai" + +msgid "Subtitle language selection 1" +msgstr "" + +msgid "Subtitle language selection 2" +msgstr "" + +msgid "Subtitle language selection 3" +msgstr "" + +msgid "Subtitle language selection 4" +msgstr "" + +#, fuzzy +msgid "Subtitle position" +msgstr "Subtitrų pasirinkimas" + +msgid "Subtitle selection" +msgstr "Subtitrų pasirinkimas" + +msgid "Subtitle selection..." +msgstr "" + +msgid "Subtitle settings" +msgstr "" + +msgid "Subtitles" +msgstr "Subtitrai" + +msgid "Sun" +msgstr "Sek" + +msgid "Sunday" +msgstr "Sekmadienis" + +#, fuzzy +msgid "Swap PiP and main picture" +msgstr "perkelti PiP į mano paveikslÄ—lį" + +#, fuzzy +msgid "Swap services" +msgstr "Keisti kanalus" + +msgid "Swedish" +msgstr "Å vedų" + +msgid "Switch TV to correct input" +msgstr "" + +msgid "Switch between filelist/playlist" +msgstr "" + +msgid "Switch between normal mode and list mode" +msgstr "" + +msgid "Switch to HDMI in mode" +msgstr "" + +#, fuzzy +msgid "Switch to filelist" +msgstr "perjungti į failų sÄ…raÅ¡Ä…" + +msgid "Switch to next channel" +msgstr "" + +#, fuzzy +msgid "Switch to next channel in history" +msgstr "kitas kanalas į istorijÄ…" + +#, fuzzy +msgid "Switch to next sub service" +msgstr "Perjungti į sekantį subkanalÄ…" + +#, fuzzy +msgid "Switch to playlist" +msgstr "perjungti į grojaraÅ¡tį" + +#, fuzzy +msgid "Switch to previous channel" +msgstr "Perjungti į ankstesnį subkanalÄ…" + +#, fuzzy +msgid "Switch to previous channel in history" +msgstr "buvÄ™s kanalas į istorijÄ…" + +#, fuzzy +msgid "Switch to previous sub service" +msgstr "Perjungti į ankstesnį subkanalÄ…" + +msgid "Switchable tuner types:" +msgstr "Perjungiamų imtuvÄ… tipai:" + +msgid "Symbol rate" +msgstr "Simbolių greitis" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "" + +msgid "System" +msgstr "Sistema" + +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "Audronis GrinceviÄius (ADGA) Pasvalys, Lietuva" + +msgid "TS file is too large for ISO9660 level 1!" +msgstr "TS failas yra per didelis ISO9660 lygmeniui 1!" + +msgid "TSID" +msgstr "TSID" + +msgid "TV physical address report" +msgstr "" + +msgid "TXT PID" +msgstr "TXT PID" + +#, fuzzy +msgid "Table of contents for collection" +msgstr "Turinio lentelÄ— dÄ—l kolekcijos" + +msgid "Tags" +msgstr "KortelÄ—s" + +msgid "Teletext subtitle color" +msgstr "" + +#, fuzzy +msgid "Temperature and fan control" +msgstr "TemperatÅ«ros ir auÅ¡intuvo kontrolÄ—" + +msgid "Terrestrial" +msgstr "AntžeminÄ—" + +msgid "Terrestrial provider" +msgstr "Antžeminis tiekÄ—jas" + +msgid "Test DiSEqC settings" +msgstr "Testuoti DiSEqC nustatymus" + +msgid "Test mode" +msgstr "Testuoti" + +msgid "Test the network configuration of your receiver.\n" +msgstr "" + +#, fuzzy +msgid "Test type" +msgstr "Testo tipas" + +#, fuzzy +msgid "Text color" +msgstr "teksto spalva" + +msgid "Thai" +msgstr "" + +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"AÄiÅ«, kad naudojatÄ—s nustatymų vedliu.\n" +"PraÅ¡ome spausti OK, kad tÄ™sti." + +#, fuzzy +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"AÄiÅ«, kad naudojatÄ—s nustatymų vedliu.\n" +"PraÅ¡ome spausti OK, kad tÄ™sti." + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "" + +msgid "The PIN code has been changed successfully." +msgstr "PIN kodas buvo pakeistas sÄ—kmingai." + +msgid "The PIN codes you entered are different." +msgstr "JÅ«sų įvesti PIN kodai yra skirtingi." + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" +"USB laikmena buvo paruoÅ¡ta paleidimui.\n" +"Dabar, jÅ«s galite parsisiųsti NFI atvaizdo failÄ…!" + +msgid "The backup failed. Please choose a different backup location." +msgstr "IÅ¡saugoti nepavyko. Pasirinkite kitÄ… vietÄ… iÅ¡saugojimui. " + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" + +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"Direktorija % s nÄ—ra įraÅ¡oma.\n" +"Ä®sitikinkite, kad pasirinkote raÅ¡ymui tinkamÄ… katalogÄ…." + +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"Surastas įrenginys:\n" +"\n" +"%s\n" +"\n" +"JÅ«s norite įraÅ¡yti USB diegÄ—jÄ… į šį raktelį?" + +msgid "The following files were found..." +msgstr "Kiti failai buvo surasti..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "Md5sum patvirtinimas nepasisekÄ—, failas gali bÅ«ti sugadintas!" + +#, fuzzy +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"Tinklo vedlio programa neįdiegta!\n" +"PraÅ¡ome įdiegti tai." + +#, python-format +msgid "The path %s already exists." +msgstr "Kelias %s jau egzistuoja." + +msgid "The pin code you entered is wrong." +msgstr "Surinktas PIN kodas neteisingas." + +#, python-format +msgid "The results have been written to %s." +msgstr "Rezultatai buvo įraÅ¡yti į %s." + +msgid "The sleep timer has been activated." +msgstr "BudÄ—jimo laikmatis jau aktyvuotas." + +msgid "The sleep timer has been disabled." +msgstr "BudÄ—jimo laikmatis jau iÅ¡jungtas." + +#, fuzzy +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"PrograminÄ—s įrangos valdymo programa neįdiegta!\n" +"PraÅ¡ome įdiegti tai." + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "" + +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "LaikmaÄio failas (timers.xml) yra sugadintas ir nebuvo užkrautas." + +#, fuzzy +msgid "The user interface of your receiver is restarting" +msgstr "PraÅ¡ome laukti kol paleidžiamas iÅ¡ naujo jÅ«sų tinklas..." + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"Belaidžio tinklo programa neįdiegta!\n" +"PraÅ¡ome įdiegti tai ir pasirinkite kÄ… jÅ«s norite daryti vÄ—liau." + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"Belaidžio tinklo programa neįdiegta!\n" +"PraÅ¡ome įdiegti tai." + +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "Nustatymų vedlys gali iÅ¡saugoti JÅ«sų dabartinius nustatymus. JÅ«s norite tai padaryti dabar?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "Vedlys surado konfigÅ«racijos atsarginÄ™ kopijÄ…. JÅ«s norite atkurti savo senus nustatymus iÅ¡ %s?" + +msgid "The wizard is finished now." +msgstr "Nustatymų vedlys baigÄ— darbÄ…." + +msgid "There are at least " +msgstr "Bent jau yra" + +#, fuzzy, python-format +msgid "There are at least %s updates available." +msgstr "NÄ—ra jokių pasiekiamų atnaujinimų." + +msgid "There are currently no outstanding actions." +msgstr "NÄ—ra Å¡iuo metu jokių neatliktų veiksmų." + +msgid "There are no updates available." +msgstr "NÄ—ra jokių pasiekiamų atnaujinimų." + +msgid "There is no signal to lock on !" +msgstr "" + +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"Gali trukti laisvos vietos pasirinktame skaidinyje.\n" +"Ar norite tÄ™sti?" + +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "Å is DVD RW diskas jau yra suformatuotas - formatavimas iÅ¡ naujo, iÅ¡trins visÄ… disko turinį." + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" + +msgid "This plugin is installed." +msgstr "Å i papildoma programa yra įdiegta." + +msgid "This plugin is not installed." +msgstr "Å i papildoma programa nÄ—ra įdiegta." + +msgid "This plugin will be installed." +msgstr "Å i papildoma programa bus įdiegta." + +msgid "This plugin will be removed." +msgstr "Å i papildoma programa jau paÅ¡alinta." + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "" + +#, fuzzy +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"Å is testas tikrina serverių pavadinimų konfigÅ«ravimÄ….\n" +"Jei jÅ«s gaunate \"nepatvirtintas \" praneÅ¡imas:\n" +"- praÅ¡ome tikrinti savo DHCP, kabelio ir adapterio nustatymÄ…\n" +"- jei jÅ«s sukonfigÅ«ravote savo serverių pavadinimus rankomis, praÅ¡ome patikrinti savo įėjimus \"Serverio pavadinimas \" KonfigÅ«racija" + +#, fuzzy +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Å is testas tikrina, ar tinklo kabelis yra prijungtas prie jÅ«sų tinklo adapterio.\n" +"Jei jÅ«s gaunate \"atjungtas \" praneÅ¡imÄ…:\n" +"- patikrina, ar tinklo kabelis yra prijungtas\n" +" - patikrina, ar kabelis nÄ—ra brokuotas" + +#, fuzzy +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Å is testas tikrina, ar galiojantis IP Adresas yra surastas jÅ«sų tinklo adapteriui. \n" +"Jei jÅ«s gaunate \"nepatvirtintas \" praneÅ¡imÄ…:\n" +" - joks galiojantis IP adresas nebuvo rastas\n" +" - praÅ¡ome tikrinti savo DHCP, kabelio ir adapterio nustatymÄ…" + +#, fuzzy +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"Å is testas tikrina, ar jÅ«sų tinklo adapteris yra nustatytas automatinei IP Adreso konfigÅ«racijai su DHCP.\n" +"Jei jÅ«s gaunate \"iÅ¡jungtas \" praneÅ¡imÄ…:\n" +" - tada, jÅ«sų tinklo adapteris yra sukonfigÅ«ruotas rankiniam IP nustatymui\n" +"- patikrina ar jÅ«s įraÅ¡Ä—te teisingas IP informacijas į adapterio nustatymuose. \n" +"Jei jÅ«s gaunate \"įjungtas \" praneÅ¡imÄ…:\n" +"- patikrina, ar jÅ«s turite sukonfigÅ«ruotÄ… ir veikiantį DHCP serverį savo tinkle." + +#, fuzzy +msgid "This test detects your configured LAN adapter." +msgstr "Å is testas aptinka jÅ«sų sukonfigÅ«ruotÄ… tinklo adapterįį." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" + +msgid "Three" +msgstr "Trys" + +msgid "Threshold" +msgstr "Heterodinas" + +msgid "Thu" +msgstr "Ket" + +msgid "Thumbnails" +msgstr "MiniatiÅ«ros" + +msgid "Thursday" +msgstr "Ketvirtadienis" + +msgid "Time" +msgstr "Laikas" + +#, fuzzy +msgid "Time scale" +msgstr "LaikmaÄio pasirinkimas" + +msgid "Timer" +msgstr "Laikmatis" + +msgid "Timer Overview" +msgstr "" + +#, fuzzy +msgid "Timer edit" +msgstr "Redaguoti laikmatį" + +#, fuzzy +msgid "Timer editor" +msgstr "LaikmaÄio redaktorius" + +msgid "Timer entry" +msgstr "LaikmaÄio užduotis" + +msgid "Timer log" +msgstr "LaikmaÄio log" + +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"Aptiktas laikmaÄio timers.xml sutapimas! \n" +" praÅ¡ome iÅ¡ naujo tikrinti tai!" + +#, fuzzy +msgid "Timer overview" +msgstr "LaikmaÄio užduotis" + +#, fuzzy +msgid "Timer recording location" +msgstr "LaikmaÄio įraÅ¡o vieta" + +msgid "Timer sanity error" +msgstr "LaikmaÄio padÄ—ties klaida" + +msgid "Timer selection" +msgstr "LaikmaÄio pasirinkimas" + +msgid "Timer selection..." +msgstr "" + +#, fuzzy +msgid "Timer type" +msgstr "LaikmaÄio bÅ«das" + +msgid "Timeshift" +msgstr "Laiko poslinkis" + +msgid "Timeshift Live" +msgstr "" + +msgid "Timeshift location" +msgstr "Laiko poslinkio vieta" + +msgid "Timeshift not possible!" +msgstr "Laiko poslinkis negalimas!" + +msgid "Timezone" +msgstr "Laiko juosta" + +msgid "Title" +msgstr "AntraÅ¡tÄ—" + +msgid "Title properties" +msgstr "YpatybÄ—s" + +msgid "Titleset mode" +msgstr "Pavadinimo nustatymo bÅ«das" + +msgid "To audio selection" +msgstr "" + +msgid "To subtitle selection" +msgstr "" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" + +msgid "Today" +msgstr "Å iandien" + +#, fuzzy +msgid "Toggle a cut mark at the current position" +msgstr "iÅ¡kirpti žymeklį dabartinÄ—je pozicijoje" + +#, fuzzy +msgid "Tone amplitude" +msgstr "Tono Platumas" + +msgid "Tone mode" +msgstr "Tonas" + +msgid "Toneburst" +msgstr "Tono signalas" + +msgid "Toneburst A/B" +msgstr "Tono signalas A/B" + +msgid "Top and bottom" +msgstr "" + +msgid "Track" +msgstr "Takelis" + +msgid "Translation" +msgstr "Vertimas" + +msgid "Translation:" +msgstr "Vertimas:" + +msgid "Translations" +msgstr "" + +msgid "Transmission mode" +msgstr "Perdavimo bÅ«das" + +msgid "Transponder" +msgstr "Transponderis" + +#, fuzzy +msgid "Transponder type" +msgstr "Transponderio tipas" + +msgid "Trash can" +msgstr "" + +msgid "Tries left:" +msgstr "Bandymo kartų:" + +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Bandoma surasti Transponderius kabeliniuose tinkluose.. praÅ¡ome laukti..." + +msgid "Trying to download a new packetlist. Please wait..." +msgstr "Bandoma parsisiųsti naujÄ… paketo sÄ…raÅ¡Ä…. PraÅ¡ome laukti..." + +msgid "Tue" +msgstr "Ant" + +msgid "Tuesday" +msgstr "Antradienis" + +msgid "Tune" +msgstr "Suderinti" + +#, fuzzy +msgid "Tune and focus" +msgstr "Imtuvo bÅ«sena " + +msgid "Tune failed!" +msgstr "Suderinimas nepavyko!" + +msgid "Tuner" +msgstr "Imtuvas" + +msgid "Tuner configuration" +msgstr "Imtuvo konfigÅ«ravimas" + +msgid "Tuner is not supported" +msgstr "" + +#, fuzzy +msgid "Tuner slot" +msgstr "Imtuvo vieta" + +msgid "Tuner status" +msgstr "Imtuvo bÅ«sena " + +#, fuzzy, python-format +msgid "Tuner status %s" +msgstr "Imtuvo bÅ«sena " + +msgid "Tuner type" +msgstr "Imtuvo tipas" + +msgid "Turkish" +msgstr "Turkų" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +msgid "Two" +msgstr "Du" + +msgid "Type" +msgstr "Tipas" + +msgid "Type of scan" +msgstr "Skanavimo bÅ«das" + +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "" + +#, fuzzy +msgid "USB stick" +msgstr "USB raktas" + +msgid "USB stick wizard" +msgstr "USB rakto vedlys" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +msgid "Undo install" +msgstr "AtÅ¡aukti įdiegimÄ…" + +msgid "Undo uninstall" +msgstr "AtÅ¡aukti Å¡alinimÄ…" + +msgid "Unencrypted" +msgstr "NeÅ¡ifruota" + +msgid "UnhandledKey" +msgstr "Nežinomas mygtukas" + +msgid "Unicable" +msgstr "Unicable" + +msgid "Unicable LNB" +msgstr "Unicable LNB" + +msgid "Unicable Martix" +msgstr "Unicable Martix" + +msgid "Uninstall" +msgstr "Å alinti" + +msgid "Universal LNB" +msgstr "Universali LNB" + +msgid "Unknown" +msgstr "Nežinoma" + +msgid "Unmount" +msgstr "" + +msgid "Unsupported" +msgstr "Nepalaikoma" + +msgid "Update" +msgstr "Atnaujinimas" + +msgid "Update and ask to reboot" +msgstr "" + +msgid "Update and reboot (recommended)" +msgstr "" + +#, fuzzy +msgid "Update channel list only" +msgstr "kitas kanalas į istorijÄ…" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "" +msgstr[1] "" + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "" + +msgid "Update has completed." +msgstr "" + +msgid "Updatefeed not available." +msgstr "Atnaujinimo perdavimas nepasiekiamas." + +msgid "Updating software catalog" +msgstr "PrograminÄ—s įrangos katalogo atnaujinimas" + +msgid "Upgrading" +msgstr "Atnaujinama" + +msgid "Use" +msgstr "Naudoti" + +msgid "Use DHCP" +msgstr "Naudoti DHCP" + +msgid "Use EIT EPG information when it is available." +msgstr "" + +msgid "Use FreeSat EPG information when it is available." +msgstr "" + +msgid "Use MHW EPG information when it is available." +msgstr "" + +msgid "Use Netmed EPG information when it is available." +msgstr "" + +msgid "Use TV remote control" +msgstr "" + +#, fuzzy +msgid "Use USALS for this sat" +msgstr "Naudoti USALS Å¡iam palydovui " + +msgid "Use ViaSat EPG information when it is available." +msgstr "" + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +msgid "Use a gateway" +msgstr "Naudoti Å¡liuzÄ…" + +msgid "Use fastscan channel names" +msgstr "" + +msgid "Use fastscan channel numbering" +msgstr "" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "" + +#, fuzzy +msgid "Use interface" +msgstr "Naudoti sÄ…sajÄ…" + +msgid "Use official channel numbering" +msgstr "" + +msgid "Use original DVB subtitle position" +msgstr "" + +msgid "Use original teletext position" +msgstr "" + +msgid "Use power measurement" +msgstr "Naudoti įtampos iÅ¡matavimus" + +#, fuzzy +msgid "Use the network wizard to configure selected network adapter" +msgstr "Panaudokite Tinklo vedlį, kad sukonfigÅ«ruotumÄ—te savo tinklo plokÅ¡tÄ™" + +#, fuzzy +msgid "Use the network wizard to configure your network\n" +msgstr "Panaudokite Tinklo vedlį, kad sukonfigÅ«ruotumÄ—te savo tinklÄ…\n" + +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "NaudokitÄ—s mygtukais aukÅ¡tyn/žemyn valdymo pulte, nustatymų pasirinkimui. Po to spauskite OK." + +#, fuzzy +msgid "Use the wizard to set up basic features" +msgstr "Naudoti vedlį pagrindiniams nustatymams" + +#, fuzzy +msgid "Use these input device settings?" +msgstr "Naudoti Å¡iuos įvesties prietaiso nustatymus?" + +#, fuzzy +msgid "Use these settings?" +msgstr "Naudoti Å¡iuos nustatymus?" + +msgid "Use this video enhancement settings?" +msgstr "Naudoti Å¡iuos vaizdo stiprinimo nustatymus?" + +#, fuzzy +msgid "Use trash can in movielist" +msgstr "Naudokite Å¡iukÅ¡linÄ™ filmų sÄ…raÅ¡e" + +msgid "Used service scan type" +msgstr "Naudojamas kanalo skanavimo bÅ«das" + +msgid "User - bouquets" +msgstr "" + +msgid "User defined" +msgstr "Vartotojo pasirinktas" + +msgid "User defined transponder" +msgstr "" + +#, fuzzy +msgid "User interface" +msgstr "Naudoti sÄ…sajÄ…" + +msgid "Username" +msgstr "Vartotojas" + +#, python-format +msgid "Using LNB %d" +msgstr "" + +msgid "Using fixed address" +msgstr "" + +#, python-format +msgid "Using tuner %s" +msgstr "" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "" + +msgid "VCR scart" +msgstr "Vaizdo grotuvas" + +msgid "VMGM (intro trailer)" +msgstr "VMGM (įvadas)" + +msgid "Vertical" +msgstr "Vertikalus" + +msgid "Vertical turning speed" +msgstr "" + +msgid "Video PID" +msgstr "Vaizdo PID" + +msgid "Video enhancement preview" +msgstr "Vaizdo pakÄ—limo peržiÅ«ra" + +msgid "Video enhancement settings" +msgstr "Vaizdo pakÄ—limo nustatymai" + +msgid "Video enhancement setup" +msgstr "Vaizdo pakÄ—limo valdymas" + +#, fuzzy +msgid "Video fine tuning" +msgstr "Tikslus vaizdo suderinimas" + +#, fuzzy +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Vaizdo įėjimo pasirinkimas\n" +"\n" +" PraÅ¡ome spausti OK, jei jÅ«s galite matyti šį puslapį savo televizoriuje (ar iÅ¡rinkti skirtingÄ… įėjimo jungtį).\n" +"\n" +"Kita įėjimo jungtis bus automatiÅ¡kai iÅ¡bandyta po 10 sekundžių." + +msgid "Video mode selection." +msgstr "Vaizdo bÅ«do pasirinkimas." + +#, fuzzy +msgid "Video output" +msgstr "Vaizdo iÅ¡Ä—jimas" + +#, fuzzy +msgid "Video setup" +msgstr "Vaizdo nustatymai" + +#, fuzzy +msgid "Video wizard" +msgstr "Vaizdo nustatymo vedlys" + +#, python-format +msgid "Video: %s fps" +msgstr "" + +msgid "VideoMode" +msgstr "" + +msgid "Videocodec" +msgstr "" + +msgid "Videoformat" +msgstr "" + +msgid "Videosize" +msgstr "" + +msgid "View Rass interactive..." +msgstr "ŽiÅ«rÄ—ti Rass interaktyviai..." + +msgid "View details" +msgstr "Smulkiau" + +msgid "View list of available " +msgstr "PeržiÅ«rÄ—ti sÄ…raÅ¡Ä… pasiekiamų" + +msgid "View list of available CommonInterface extensions" +msgstr "PeržiÅ«rÄ—ti sÄ…raÅ¡Ä… galimam Ä®statomų modulių papildymui" + +msgid "View list of available EPG extensions." +msgstr "PeržiÅ«rÄ—ti sÄ…raÅ¡Ä… galimam EPG papildymui." + +msgid "View list of available Satellite equipment extensions." +msgstr "PeržiÅ«rÄ—ti sÄ…raÅ¡Ä… galimam palydovinÄ—s įrangos papildymui." + +msgid "View list of available communication extensions." +msgstr "PeržiÅ«rÄ—ti sÄ…raÅ¡Ä… galimam komunikacijos papildymui." + +msgid "View list of available default settings" +msgstr "PeržiÅ«rÄ—ti sÄ…raÅ¡Ä… galimų numatytų nustatymų" + +#, fuzzy +msgid "View list of available display and userinterface extensions." +msgstr "PeržiÅ«rÄ—ti sÄ…raÅ¡Ä… galimam monitoriaus ir vartotojo sÄ…sajos papildymui." + +msgid "View list of available multimedia extensions." +msgstr "PeržiÅ«rÄ—ti sÄ…raÅ¡Ä… galimam multimedijos papildymui." + +msgid "View list of available networking extensions" +msgstr "PeržiÅ«rÄ—ti sÄ…raÅ¡Ä… galimam tinklo papildymui." + +msgid "View list of available recording extensions" +msgstr "PeržiÅ«rÄ—ti sÄ…raÅ¡Ä… galimam įrašų papildymui." + +msgid "View list of available skins" +msgstr "PeržiÅ«rÄ—ti sÄ…raÅ¡Ä… galimų temų" + +msgid "View list of available software extensions" +msgstr "PeržiÅ«rÄ—ti sÄ…raÅ¡Ä… galimos programinÄ—s įrangos papildymui." + +msgid "View list of available system extensions" +msgstr "PeržiÅ«rÄ—ti sÄ…raÅ¡Ä… galimam sistemos papildymui." + +#, fuzzy +msgid "View photos..." +msgstr "ŽiÅ«rÄ—ti fotografijas..." + +msgid "View teletext..." +msgstr "PeržiÅ«rÄ—ti teletekstÄ…..." + +#, fuzzy +msgid "View video CD..." +msgstr "ŽiÅ«rÄ—ti vaizdo CD..." + +#, fuzzy +msgid "Virtual keyboard" +msgstr "Virtuali KlaviatÅ«ra" + +msgid "Voltage mode" +msgstr "Ä®tampa" + +msgid "Volume" +msgstr "Garsumas" + +msgid "W" +msgstr "W" + +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "RyÅ¡ys su WLAN tinklu" + +msgid "WPA" +msgstr "WPA" + +msgid "WPA or WPA2" +msgstr "WPA arba WPA2" + +msgid "WPA2" +msgstr "WPA2" + +msgid "WSS on 4:3" +msgstr "WSS į 4:3" + +msgid "Waiting" +msgstr "Laukite" + +msgid "Waiting for mount" +msgstr "" + +msgid "Waiting for partition" +msgstr "" + +msgid "Wakeup" +msgstr "" + +msgid "Wakeup TV from standby" +msgstr "" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "" + +msgid "Wakeup signal from TV" +msgstr "" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "" + +#, fuzzy +msgid "Watch movies..." +msgstr "Leisti įraÅ¡ytus filmus..." + +#, fuzzy +msgid "Watch recordings..." +msgstr "įraÅ¡oma..." + +msgid "Wed" +msgstr "Tre" + +msgid "Wednesday" +msgstr "TreÄiadienis" + +msgid "Weekday" +msgstr "SavaitÄ—s diena" + +msgid "Weighted position" +msgstr "" + +#, fuzzy +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"Sveiki atvykÄ™ į Cutlist redaktorių \n" +"\n" +"IeÅ¡kokite pradžios, kuriÄ… jÅ«s norite iÅ¡kirpti. Spauskite OK, iÅ¡sirinkite ' iÅ¡kirpimo pradžiÄ…'.\n" +"\n" +"Tada ieÅ¡kokite pabaigos, spauskite OK, pasirinkite 'iÅ¡kirpimo pabaigÄ…'. Å tai ir viskas." + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" + +msgid "Welcome..." +msgstr "Sveiki atvykÄ™..." + +msgid "West" +msgstr "Vakarai" + +msgid "West limit set" +msgstr "" + +msgid "What do you want to scan?" +msgstr "KÄ… JÅ«s norite skanuoti?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "" + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "" + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "" + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "" + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "" + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "" + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "" + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "" + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "" + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "" + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "" + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "" + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "" + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "" + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "" + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "" + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "" + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "" + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "" + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "" + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "" + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "" + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "" + +msgid "When enabled, number markers will be hiden." +msgstr "" + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "" + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "" + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "" + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "" + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "" + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "" + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "" + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "" + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "" + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "" + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "" + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "" + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "" + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "" + +#, fuzzy +msgid "When enabled, use DHCP for the IP configuration." +msgstr "atidaryti serverio pavadinimo konfigÅ«racijÄ…" + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "" + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "" + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "" + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "" + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "" + +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"Jeigu jÅ«s atkursite gamyklinius nustatymus, jÅ«s prarasite VISUS savo konfigÅ«racijos duomenis\n" +"(įskaitant paketus, kanalus, palydovinius duomenis...) \n" +"Po to, kai bus atkurti gamykliniai nustatymai imtuvas pasileis iÅ¡ naujo automatiÅ¡kai!\n" +"\n" +"IÅ¡ tikrųjų norite atkurti?" + +msgid "Where do you want to backup your settings?" +msgstr "Kur JÅ«s norite iÅ¡saugoti nustatymų atsarginÄ™ kopijÄ…?" + +msgid "Where to save temporary timeshift recordings?" +msgstr "Kur saugoti laikinus laiko poslinkio įraÅ¡us?" + +msgid "Wireless LAN" +msgstr "Belaidis LAN" + +#, fuzzy +msgid "Wireless network" +msgstr "Belaidis tinklas" + +#, fuzzy +msgid "Wireless network configuration..." +msgstr "Belaidžio tinklo prisijungimo nustatymas." + +msgid "Wireless network connection setup" +msgstr "Belaidžio tinklo prisijungimo nustatymas" + +msgid "Wireless network connection setup." +msgstr "Belaidžio tinklo prisijungimo nustatymas." + +msgid "Wireless network state" +msgstr "Belaidžio tinklo bÅ«klÄ—" + +msgid "With popup" +msgstr "" + +msgid "Without popup" +msgstr "" + +msgid "Would you like to install a softcam?" +msgstr "" + +msgid "Write error while recording. Disk full?\n" +msgstr "Ä®raÅ¡ymo klaida. Diskas pilnas?\n" + +msgid "Write failed!" +msgstr "Ä®raÅ¡ymas klaidingas!" + +msgid "YPbPr" +msgstr "YPbPr" + +msgid "Year" +msgstr "Metai" + +msgid "Yellow DVB subtitles" +msgstr "" + +msgid "Yes" +msgstr "Taip" + +msgid "Yes and save" +msgstr "" + +msgid "Yes and save in movie dir" +msgstr "" + +msgid "Yes to all" +msgstr "Taip į visus" + +msgid "Yes, always" +msgstr "Taip, visada" + +msgid "Yes, and delete this movie" +msgstr "Taip, ir trinti šį filmÄ…" + +msgid "Yes, backup my settings!" +msgstr "Taip, padarykite atsarginÄ™ kopijÄ… mano nustatymų!" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +msgid "Yes, do a manual scan now" +msgstr "Taip, atlikti rankinÄ™ paieÅ¡kÄ…" + +msgid "Yes, do an automatic scan now" +msgstr "Taip, atlikti automatinÄ™ paieÅ¡kÄ…" + +msgid "Yes, do another manual scan now" +msgstr "Taip, atlikti dar kitÄ… rankinÄ™ paieÅ¡kÄ…" + +msgid "Yes, perform a shutdown now." +msgstr "Taip, atlikti iÅ¡jungimÄ… dabar." + +msgid "Yes, restore the settings now" +msgstr "Taip, atkurti nustatymus dabar" + +msgid "Yes, returning to movie list" +msgstr "Taip, grįžti į filmų sÄ…raÅ¡Ä…" + +msgid "Yesterday" +msgstr "" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" + +msgid "You can cancel the installation." +msgstr "JÅ«s galite panaikinti įdiegimÄ…." + +msgid "You can cancel the removal." +msgstr "JÅ«s galite panaikinti paÅ¡alinimÄ…." + +msgid "You can continue watching TV etc. while this is running." +msgstr "" + +msgid "You can install this plugin." +msgstr "JÅ«s galite įdiegti Å¡iÄ… papildomÄ… programÄ…." + +msgid "You can only burn receiver recordings!" +msgstr "" + +msgid "You can remove this plugin." +msgstr "JÅ«s galite paÅ¡alinti Å¡iÄ… papildomÄ… programÄ…." + +msgid "You cannot delete this!" +msgstr "JÅ«s negalite to iÅ¡trinti!" + +msgid "You didn't select a channel to record from." +msgstr "JÅ«s nepasirinkote kanalo, kad įraÅ¡yti." + +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "JÅ«s nusprendÄ—te padaryti atsarginÄ™ kopijÄ… savo nustatymų. PraÅ¡ome spausti OK, kad pradÄ—tumÄ—te atsarginÄ™ kopijÄ… dabar." + +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "JÅ«s nusprendÄ—te sukurti naujÄ… .NFI diegÄ—jÄ… USB rakte. Tada bus perdalintas USB raktas ir visi duomenys jame bus iÅ¡trinti." + +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "JÅ«s nusprendÄ—te atkurti savo nustatymus. Enigma2 iÅ¡ naujo pasileis po atkÅ«rimo. PraÅ¡ome spausti OK, kad pradÄ—tumÄ—te atkÅ«rimÄ… dabar." + +#, python-format +msgid "You have to wait %s!" +msgstr "JÅ«s turite laukti %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" + +msgid "You system does not support ext4" +msgstr "" + +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "AtsarginÄ— kopija sukurta. Dabar mes tÄ™sime atnaujinimÄ…. " + +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "JÅ«sų kolekcija virÅ¡yja vieno sluoksnio DVD disko dydį, jums reikÄ—s tuÅ¡Äio dvigubo sluoksnio DVD!" + +msgid "Your current collection will get lost!" +msgstr "JÅ«sų dabartinÄ— kolekcija bus prarasta!" + +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"Reikalingas priekinio procesoriaus atnaujinimas.\n" +"Spauskite OK, kad pradÄ—ti atnaujinimÄ…." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"JÅ«sų interneto prisijungimas neveikia!\n" +"PraÅ¡ome pasirinkti tai, kÄ… jÅ«s norite padaryti vÄ—liau." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "" + +msgid "Your network configuration has been activated." +msgstr "JÅ«sų tinklo konfigÅ«racija aktyvuota." + +msgid "Your receiver does not have an internet connection" +msgstr "" + +#, fuzzy +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"JÅ«sų imtuvas paruoÅ¡tas naudojimui.\n" +"\n" +"JÅ«sų interneto prisijungimas dabar veikia.\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" + +msgid "Your receiver is rebooting" +msgstr "" + +msgid "Your receiver is shutting down" +msgstr "" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "" + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "" + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "" + +msgid "Your receiver will got to standby due to inactivity." +msgstr "" + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "" + +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"JÅ«sų belaidžio LAN interneto prisijungimas neveikia!\n" +"JÅ«s prijungÄ—te savo USB WLAN įrenginį?\n" +"\n" +"PraÅ¡ome pasirinkti tai, kÄ… jÅ«s norite daryti vÄ—liau." + +msgid "Zap" +msgstr "" + +msgid "Zap back to previously tuned service?" +msgstr "Perjungti į ankstesnį suderintÄ… kanalÄ…?" + +msgid "Zap back to service before positioner setup?" +msgstr "Perjungti atgal į kanalÄ… po pozicionieriaus nustatymo?" + +msgid "Zap back to service before tuner setup?" +msgstr "Perjungti atgal į kanalÄ… po imtuvo nustatymo?" + +msgid "Zap focus to Picture in Picture" +msgstr "" + +msgid "Zap focus to main screen" +msgstr "" + +msgid "Zap mode" +msgstr "" + +msgid "Zap to selected channel" +msgstr "" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "" + +msgid "[alternative edit]" +msgstr "[kitų redagavimas]" + +msgid "[bouquet edit]" +msgstr "[paketo redagavimas]" + +msgid "[favourite edit]" +msgstr "[mÄ—gstamiausių redagavimas]" + +msgid "[move mode]" +msgstr "[perkÄ—limas]" + +msgid "a gui to assign services/providers to common interface modules" +msgstr "kad paskirtų kanalus/tiekÄ—jus bendriems įstatomiems moduliams" + +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "kad paskirtų kanalus/tiekÄ—jus/caids bendriems įstatomiems moduliams" + +msgid "abort alternatives edit" +msgstr "nutraukti kitų redagavimÄ…" + +msgid "abort bouquet edit" +msgstr "nutraukti paketo redagavimÄ…" + +msgid "abort favourites edit" +msgstr "nutraukti mÄ—gstamiausių redagavimÄ…" + +msgid "about to start" +msgstr "apie pradžiÄ…" + +msgid "activate network adapter configuration" +msgstr "aktyvuokite tinklo plokÅ¡tÄ—s konfigÅ«racijÄ…" + +msgid "add alternatives" +msgstr "pridÄ—ti kitus" + +msgid "add bookmark" +msgstr "pridÄ—ti žymÄ™" + +msgid "add bouquet" +msgstr "pridÄ—ti paketÄ…" + +msgid "add marker" +msgstr "pridÄ—ti žymeklį" + +msgid "add service to bouquet" +msgstr "pridÄ—ti kanalÄ… į paketÄ…" + +msgid "add service to favourites" +msgstr "pridÄ—ti kanalÄ… į mÄ—gstamiausi" + +msgid "add to parental protection" +msgstr "pridÄ—ti į tÄ—vų kontrolÄ™" + +msgid "adult movie/drama" +msgstr "" + +msgid "advanced" +msgstr "IÅ¡plÄ—stas" + +msgid "adventure/western/war" +msgstr "" + +msgid "advertisement/shopping" +msgstr "" + +msgid "after " +msgstr "" + +#, fuzzy +msgid "alphabetic" +msgstr "pagal abÄ—cÄ—lÄ™" + +msgid "alphabetic reverse" +msgstr "" + +msgid "alternative" +msgstr "" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "" + +msgid "arts/culture magazine" +msgstr "" + +msgid "athletics" +msgstr "" + +msgid "audio tracks" +msgstr "garso takeliai" + +msgid "auto" +msgstr "auto" + +#, fuzzy +msgid "automatic" +msgstr "Automatinis" + +msgid "back" +msgstr "atgal" + +msgid "background image" +msgstr "foninis atvaizdas" + +msgid "ballet" +msgstr "" + +#, python-format +msgid "bc%s" +msgstr "" + +msgid "better" +msgstr "geriau" + +msgid "black" +msgstr "juodas" + +msgid "black & white" +msgstr "" + +msgid "blacklist" +msgstr "juodas sÄ…raÅ¡as" + +msgid "blue" +msgstr "mÄ—lynas" + +msgid "broadcasting/press" +msgstr "" + +#, fuzzy +msgid "by date" +msgstr "rÅ«Å¡iuoti pagal datÄ…" + +msgid "cartoon/puppets" +msgstr "" + +msgid "center" +msgstr "" + +msgid "centered" +msgstr "" + +msgid "centered, wrapped" +msgstr "" + +msgid "chapters" +msgstr "skyriai" + +msgid "childrens's/youth program (general)" +msgstr "" + +msgid "circular left" +msgstr "apskritiminÄ— kairÄ—" + +msgid "circular right" +msgstr "apskritiminÄ— deÅ¡inÄ—" + +msgid "comedy" +msgstr "" + +msgid "complex" +msgstr "sudÄ—tinis" + +msgid "config menu" +msgstr "konfigÅ«racijos meniu" + +msgid "confirmed" +msgstr "patvirtinta" + +msgid "connected" +msgstr "prisijungta" + +msgid "continue" +msgstr "tÄ™sti" + +msgid "cooking" +msgstr "" + +msgid "copy to bouquets" +msgstr "kopijuoti į paketus" + +msgid "create directory" +msgstr "kurti direktorijÄ…" + +#, python-format +msgid "currently installed image: %s" +msgstr "Å¡iuo metu įdiegtas atvaizdas: %s" + +msgid "daily" +msgstr "kasdien" + +msgid "day" +msgstr "diena" + +#, fuzzy +msgid "default" +msgstr "Numatyta" + +msgid "delete cut" +msgstr "trinti iÅ¡kirpimÄ…" + +msgid "delete..." +msgstr "" + +msgid "descramble and record ecm" +msgstr "" + +msgid "detective/thriller" +msgstr "" + +msgid "disable" +msgstr "iÅ¡jungti" + +msgid "disable move mode" +msgstr "iÅ¡jungti perkÄ—limÄ…" + +msgid "disabled" +msgstr "iÅ¡jungtas" + +msgid "disconnected" +msgstr "atsijungta" + +msgid "discussion/interview/debate" +msgstr "" + +msgid "do nothing" +msgstr "nieko nedaryti" + +msgid "documentary" +msgstr "" + +msgid "don't descramble, record ecm" +msgstr "" + +msgid "done!" +msgstr "baigta!" + +msgid "east" +msgstr "" + +msgid "economics/social advisory" +msgstr "" + +msgid "edit alternatives" +msgstr "redaguoti kitus" + +msgid "education/science/factual topics (general)" +msgstr "" + +msgid "empty" +msgstr "tuÅ¡Äias" + +msgid "enable" +msgstr "įjungti" + +msgid "enable bouquet edit" +msgstr "įjungti paketo redagavimÄ…" + +msgid "enable favourite edit" +msgstr "įjungti mÄ—gstamiausių redagavimÄ…" + +msgid "enable move mode" +msgstr "įjungti perkÄ—limÄ…" + +msgid "enabled" +msgstr "įjungtas" + +msgid "end alternatives edit" +msgstr "baigti kitų redagavimÄ…" + +msgid "end bouquet edit" +msgstr "baigti paketo redagavimÄ…" + +msgid "end cut here" +msgstr "kirpimo pabaiga Äia" + +msgid "end favourites edit" +msgstr "baigti mÄ—gstamiausių redagavimÄ…" + +msgid "entertainment (10-16 year old)" +msgstr "" + +msgid "entertainment (6-14 year old)" +msgstr "" + +msgid "equal to" +msgstr "lygus į" + +msgid "equestrian" +msgstr "" + +msgid "exit DVD player or return to file browser" +msgstr "iÅ¡eiti iÅ¡ DVD grotuvo arba sugrįžti į failų narÅ¡yklÄ™" + +msgid "exit movielist" +msgstr "" + +msgid "exit network adapter configuration" +msgstr "iÅ¡eiti iÅ¡ tinklo adapterio konfigÅ«racijos" + +msgid "exit networkadapter setup menu" +msgstr "iÅ¡eiti iÅ¡ tinklo adapterio nustatymų meniu" + +msgid "experimental film/video" +msgstr "" + +msgid "false" +msgstr "" + +msgid "fashion" +msgstr "" + +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "failų formatai (BMP, PNG, JPG, GIF)" + +msgid "filename" +msgstr "failo pavadinimas" + +msgid "film/cinema" +msgstr "" + +msgid "fine arts" +msgstr "" + +msgid "fine-tune your display" +msgstr "tikslus jÅ«sų ekrano suderinimas" + +msgid "fitness & health" +msgstr "" + +#, fuzzy +msgid "flat alphabetic" +msgstr "pagal abÄ—cÄ—lÄ™" + +#, fuzzy +msgid "flat alphabetic reverse" +msgstr "pagal abÄ—cÄ—lÄ™" + +msgid "folk/traditional music" +msgstr "" + +msgid "football/soccer" +msgstr "" + +msgid "foreign countries/expeditions" +msgstr "" + +msgid "forward to the next chapter" +msgstr "persukti į kitÄ… skyrių" + +msgid "free" +msgstr "laisvi" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "" + +msgid "game show/quiz/contest" +msgstr "" + +msgid "gardening" +msgstr "" + +msgid "go to deep standby" +msgstr "eiti į visiÅ¡kÄ… iÅ¡jungimÄ…" + +msgid "go to standby" +msgstr "eiti į iÅ¡jungimÄ…" + +msgid "grab this frame as bitmap" +msgstr "užgriebti šį rÄ—mÄ… kaip taÅ¡kinÄ™ grafikÄ…" + +msgid "green" +msgstr "žalias" + +msgid "handicraft" +msgstr "" + +msgid "height" +msgstr "" + +msgid "help..." +msgstr "pagalba..." + +msgid "horizontal" +msgstr "horizontali" + +msgid "information/education/school program" +msgstr "" + +msgid "init module" +msgstr "aptinkamas modulis" + +msgid "init modules" +msgstr "aptinkami moduliai" + +msgid "insert mark here" +msgstr "įterpkite žymeklį Äia" + +msgid "invalid type" +msgstr "" + +msgid "jazz" +msgstr "" + +msgid "jump back to the previous title" +msgstr "Å¡uolis atgal į ankstesnį pavadinimÄ…" + +msgid "jump forward to the next title" +msgstr "Å¡uolis priekin į kitÄ… pavadinimÄ…" + +msgid "languages" +msgstr "" + +msgid "leave movie player..." +msgstr "palikti grotuvÄ…..." + +msgid "left" +msgstr "kairys" + +msgid "left, wrapped" +msgstr "" + +msgid "leisure hobbies (general)" +msgstr "" + +msgid "length" +msgstr "ilgis" + +msgid "limit ..., aborting !" +msgstr "" + +msgid "list style compact" +msgstr "sÄ…raÅ¡o stilius kompaktiÅ¡kas" + +msgid "list style compact with description" +msgstr "sÄ…raÅ¡o stilius kompaktiÅ¡kas su apraÅ¡ymu" + +msgid "list style default" +msgstr "numatytas sÄ…raÅ¡o stilius" + +msgid "list style single line" +msgstr "sÄ…raÅ¡o stilius viena linija" + +msgid "literature" +msgstr "" + +msgid "live broadcast" +msgstr "" + +msgid "locked" +msgstr "užrakinta" + +msgid "loopthrough to" +msgstr "Å¡iurkÅ¡tus į" + +msgid "magazines/reports/documentary" +msgstr "" + +msgid "manual" +msgstr "rankinis" + +msgid "martial sports" +msgstr "" + +msgid "medicine/physiology/psychology" +msgstr "" + +msgid "menu" +msgstr "meniu" + +msgid "mins" +msgstr "min (ių)" + +msgid "minutes" +msgstr "minuÄių" + +msgid "month" +msgstr "mÄ—nuo" + +msgid "motor sport" +msgstr "" + +msgid "motoring" +msgstr "" + +msgid "move down to last entry" +msgstr "perkelti žemyn prie paskutinio įėjimo" + +msgid "move down to next entry" +msgstr "perkelti žemyn prie kito įėjimo" + +msgid "move up to first entry" +msgstr "perkelti aukÅ¡tyn prie pirmo įėjimo" + +msgid "move up to previous entry" +msgstr "perkelti aukÅ¡tyn prie ankstesnio įėjimo" + +msgid "movie/drama (general)" +msgstr "" + +msgid "multinorm" +msgstr "multinorma" + +msgid "music/ballet/dance (general)" +msgstr "" + +msgid "musical/opera" +msgstr "" + +msgid "nature/animals/environment" +msgstr "" + +msgid "never" +msgstr "niekada" + +msgid "new media" +msgstr "" + +msgid "news magazine" +msgstr "" + +msgid "news/current affairs (general)" +msgstr "" + +msgid "news/weather report" +msgstr "" + +msgid "no" +msgstr "ne" + +msgid "no CAId selected" +msgstr "joks CAId neiÅ¡sirinktas" + +msgid "no CI slots found" +msgstr "jokie CI skaitytuvai nesurasti" + +msgid "no module found" +msgstr "modulis nerastas" + +msgid "no storage devices found" +msgstr "" + +msgid "none" +msgstr "jokio" + +msgid "normal" +msgstr "" + +msgid "not configured" +msgstr "nesukonfigÅ«ruotas" + +msgid "not locked" +msgstr "neužrakintas" + +msgid "not supported" +msgstr "nepalaikomas" + +msgid "not used" +msgstr "nenaudojamas" + +msgid "nothing connected" +msgstr "niekas nepajungta" + +msgid "of a DUAL layer medium used." +msgstr "iÅ¡ DVIEJŲ sluoksnių naudojama." + +msgid "of a SINGLE layer medium used." +msgstr "iÅ¡ VIENO sluoksnio naudojama." + +msgid "off" +msgstr "iÅ¡jungta" + +msgid "offset is" +msgstr "" + +msgid "on" +msgstr "įjungta" + +msgid "on READ ONLY medium." +msgstr "diskas TIK SKAITYMUI." + +msgid "on end of movie" +msgstr "" + +msgid "once" +msgstr "vienÄ… kartÄ…" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +msgid "open nameserver configuration" +msgstr "atidaryti serverio pavadinimo konfigÅ«racijÄ…" + +msgid "original" +msgstr "" + +msgid "original language" +msgstr "" + +msgid "pass" +msgstr "perduoti" + +msgid "performing arts" +msgstr "" + +msgid "play as picture in picture" +msgstr "rodyti paveikslÄ—lį paveikslÄ—lyje" + +msgid "play in mainwindow" +msgstr "" + +msgid "please press OK when ready" +msgstr "praÅ¡ome paspausti OK, kai bÅ«site pasiruoÅ¡Ä™" + +msgid "please wait, loading picture..." +msgstr "laukite...užkraunamas paveikslÄ—lis" + +msgid "popular culture/traditional arts" +msgstr "" + +msgid "pre-school children's program" +msgstr "" + +msgid "receiver software because updates are available." +msgstr "" + +msgid "record" +msgstr "įraÅ¡as" + +msgid "recording..." +msgstr "įraÅ¡oma..." + +msgid "red" +msgstr "raudonas" + +msgid "religion" +msgstr "" + +msgid "remarkable people" +msgstr "" + +msgid "remove after this position" +msgstr "paÅ¡alinti po Å¡ios vietos" + +msgid "remove all alternatives" +msgstr "paÅ¡alinti visus kitus" + +msgid "remove all new found flags" +msgstr "Å¡alinti visus žymeklius 'naujas'" + +msgid "remove before this position" +msgstr "paÅ¡alinti po Å¡ios vietos" + +msgid "remove bookmark" +msgstr "paÅ¡alinti žymÄ™" + +msgid "remove directory" +msgstr "paÅ¡alinti direktorijÄ…" + +msgid "remove entry" +msgstr "paÅ¡alinti" + +msgid "remove from parental protection" +msgstr "panaikinti tÄ—vų kontrolÄ™" + +msgid "remove new found flag" +msgstr "Å¡alinti žymeklį 'naujas'" + +msgid "remove selected satellite" +msgstr "paÅ¡alinti pasirinktÄ… palydovÄ…" + +msgid "remove this mark" +msgstr "Å¡alinti šį žymeklį" + +msgid "rename entry" +msgstr "" + +msgid "repeat playlist" +msgstr "pakartoti grojaraÅ¡tį" + +msgid "repeated" +msgstr "pakartotinis" + +msgid "reverse by date" +msgstr "" + +msgid "rewind to the previous chapter" +msgstr "atsukti į ankstesnį skyrių" + +msgid "right" +msgstr "deÅ¡inys" + +msgid "right, wrapped" +msgstr "" + +msgid "rock/pop" +msgstr "" + +msgid "romance" +msgstr "" + +msgid "save last directory on exit" +msgstr "iÅ¡saugoti paskutinÄ™ direktorijÄ… iÅ¡einant" + +msgid "save playlist on exit" +msgstr "iÅ¡saugoti grojaraÅ¡tį iÅ¡einant" + +msgid "scan state" +msgstr "paieÅ¡kos eiga" + +msgid "science fiction/fantasy/horror" +msgstr "" + +msgid "second cable of motorized LNB" +msgstr "antras kabelis nuo poliarizuotos LNB" + +msgid "seconds" +msgstr "sekundžių" + +msgid "select" +msgstr "pasirinkti" + +msgid "select CAId's" +msgstr "iÅ¡sirinkite CAId's" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +msgid "select menu entry" +msgstr "iÅ¡sirinkite meniu įėjimÄ…" + +msgid "select movie" +msgstr "pasirinkite filmÄ…" + +msgid "select the movie path" +msgstr "" + +msgid "serious music/classic music" +msgstr "" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "" + +msgid "service PIN" +msgstr "kanalo PIN" + +msgid "set as startup service" +msgstr "nustatyti kaip paleidimo kanalÄ…" + +msgid "setup PIN" +msgstr "valdymo PIN" + +msgid "show DVD main menu" +msgstr "rodyti DVD pagrindinį meniu" + +msgid "show all tags" +msgstr "" + +msgid "show alternatives" +msgstr "rodyti kitus" + +msgid "show event details" +msgstr "rodyti užduoÄių detales" + +msgid "show extended description" +msgstr "" + +msgid "show mediaplayer on mainmenu" +msgstr "" + +msgid "show softwaremanager in setup menu" +msgstr "" + +msgid "show softwaremanager on blue button" +msgstr "" + +msgid "show tag menu" +msgstr "" + +msgid "show transponder info" +msgstr "transponderio informacija" + +msgid "show/game show (general)" +msgstr "" + +msgid "shuffle" +msgstr "" + +msgid "shut down" +msgstr "iÅ¡jungti" + +msgid "simple" +msgstr "paprastas" + +msgid "skip backward" +msgstr "praleisti sukimÄ… atgal" + +msgid "skip forward" +msgstr "praleisti sukimÄ… į priekį" + +msgid "soap/melodram/folkloric" +msgstr "" + +msgid "social/political issues/economics (general)" +msgstr "" + +msgid "social/spiritual science" +msgstr "" + +msgid "sorting of playlists" +msgstr "" + +msgid "special characters" +msgstr "ypatingi požymiai" + +msgid "special events" +msgstr "" + +msgid "special format data DVD (HDTV compatible)" +msgstr "" + +msgid "sports (general)" +msgstr "" + +msgid "sports magazine" +msgstr "" + +msgid "standard" +msgstr "standartinis" + +msgid "start cut here" +msgstr "pradÄ—ti iÅ¡kirpimÄ… Äia" + +msgid "start directory" +msgstr "pradÄ—ti direktorijÄ…" + +msgid "stepsize" +msgstr "" + +msgid "stereo" +msgstr "stereo" + +msgid "stop using as startup service" +msgstr "" + +msgid "switch to bookmarks" +msgstr "perjungti į žymes" + +msgid "switch to filelist" +msgstr "perjungti į failų sÄ…raÅ¡Ä…" + +msgid "switch to the next angle" +msgstr "perjunkite į kitÄ… kampÄ…" + +msgid "switch to the next audio track" +msgstr "perjungti į kitÄ… garso takelį" + +msgid "switch to the next subtitle language" +msgstr "perjungti į kitÄ… subtitrų kalbÄ…" + +msgid "talk show" +msgstr "" + +msgid "team sports" +msgstr "" + +msgid "technology/natural science" +msgstr "" + +msgid "template file" +msgstr "Å¡ablono failas" + +msgid "tennis/squash" +msgstr "" + +msgid "this recording" +msgstr "tai įraÅ¡yta" + +msgid "this service is protected by a parental control pin" +msgstr "Å¡is kanalas apsaugotas tÄ—vų kontrolÄ—s PIN kodu" + +msgid "toggle time, chapter, audio, subtitle info" +msgstr "laikas, skyrius, garsas, subtitrų informacija" + +msgid "top" +msgstr "" + +msgid "tourism/travel" +msgstr "" + +msgid "true" +msgstr "" + +msgid "unavailable" +msgstr "nepasiekiamas" + +msgid "unconfirmed" +msgstr "neparvirtintas" + +msgid "undefined" +msgstr "" + +msgid "unknown" +msgstr "nežinoma" + +msgid "unknown service" +msgstr "nežinomas kanalas" + +msgid "unpublished" +msgstr "" + +msgid "until standby/restart" +msgstr "iki budÄ—jimo/paleisti iÅ¡ naujo" + +msgid "user defined" +msgstr "vartotojo nustatytas" + +msgid "variety show" +msgstr "" + +msgid "vertical" +msgstr "vertikali" + +msgid "wait for ci..." +msgstr "laukite atsakymo iÅ¡ CI..." + +msgid "wait for mmi..." +msgstr "laukite atsakymo iÅ¡ mmi..." + +msgid "waiting" +msgstr "laukimas" + +msgid "water sport" +msgstr "" + +msgid "weekly" +msgstr "kas savaitÄ™" + +msgid "west" +msgstr "" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "baltas" + +msgid "whitelist" +msgstr "baltas sÄ…raÅ¡as" + +msgid "width" +msgstr "" + +msgid "winter sport" +msgstr "" + +msgid "wireless network interface" +msgstr "bevielio tinklo sÄ…saja" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "" +msgstr[1] "" + +msgid "working" +msgstr "dirba" + +msgid "yellow" +msgstr "geltonas" + +msgid "yes" +msgstr "taip" + +msgid "yes (keep feeds)" +msgstr "taip (saugoti feeds)" + +msgid "zap" +msgstr "jungti" + +msgid "zap and record" +msgstr "" + +msgid "zapped" +msgstr "įjungta" + +#~ msgid "AA" +#~ msgstr "AA" + +#~ msgid "AB" +#~ msgstr "AB" + +#, fuzzy +#~ msgid "Activate PiP" +#~ msgstr "Aktyvuoti paveikslÄ—lį paveikslÄ—lyje" + +#, fuzzy +#~ msgid "Add/remove timer for current event" +#~ msgstr "pridÄ—ti įraÅ¡Ä… (stabdyti po esamo įvykio)" + +#, fuzzy +#~ msgid "All satellites" +#~ msgstr "Visi palydovai" + +#~ msgid "BA" +#~ msgstr "BA" + +#~ msgid "BB" +#~ msgstr "BB" + +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "PauzÄ—s elgsena, kai daroma pauzÄ—" + +#~ msgid "Committed DiSEqC command" +#~ msgstr "DiSEqC perjungimo komanda" + +#~ msgid "DiSEqC repeats" +#~ msgstr "DiSEqC pakartojimai" + +#~ msgid "No satellite frontend found!!" +#~ msgstr "Nerastas palydovas!!" + +#~ msgid "Remove timer" +#~ msgstr "PaÅ¡alinti laikmatį" + +#~ msgid "Send DiSEqC" +#~ msgstr "Siųskite DiSEqC" + +#, fuzzy +#~ msgid "Switch next channel" +#~ msgstr "kitas kanalas" + +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Perjungimo komanda DiSEqC" + +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "Perjungti atgal į kanalÄ… po palydovo paieÅ¡kos?" + +#~ msgid "tuner is not supported" +#~ msgstr "imtuvas nepalaikomas" diff --git a/po/lv.po b/po/lv.po new file mode 100644 index 0000000..126d770 --- /dev/null +++ b/po/lv.po @@ -0,0 +1,8095 @@ +# Latvian translations for Enigma2. +msgid "" +msgstr "" +"Project-Id-Version: enigma2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2013-11-09 00:59+0200\n" +"Last-Translator: Tapat <taapat@gmail.com>\n" +"Language-Team: Taapat <taapat@gmail.com>\n" +"Language: lv_LV\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Generator: Poedit 1.5.4\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" + +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"Papildus opcijas un iestatÄ«jumi." + +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"PÄ“c OK nospieÅ¡anas uzgaidiet!" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" +"\n" +"Izveidot iestatÄ«jumu dublÄ“jumkopiju." + +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"Rediģēt atjauninÄÅ¡anas avota adresi." + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" +"\n" +"PÄrvaldÄ«t uztvÄ“rÄ“ja paplaÅ¡inÄjumus vai spraudņus" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" +"\n" +"UztvÄ“rÄ“ja programmatÅ«ras atjaunoÅ¡ana no interneta." + +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"Lai turpinÄtu spiediet OK uz tÄlvadÄ«bas pults." + +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"Atjaunot dublÄ“jumkopijas pÄ“c datuma." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" +"\n" +"Atjaunot uztvÄ“rÄ“ja iestatÄ«jumus." + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" +"\n" +"Atjaunot uztvÄ“rÄ“ju ar jauno programaparatÅ«ru." + +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"MeklÄ“t un uzstÄdÄ«t lokÄlos paplaÅ¡inÄjumus." + +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"IzvÄ“lieties dublÄ“jumkopijas ierÄ«ci.\n" +"PaÅ¡reizÄ“jÄ ierÄ«ce: " + +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"SkatÄ«t, uzstÄdÄ«t un dzÄ“st pieejamÄs vai uzstÄdÄ«tÄs pakotnes." + +msgid " (PiP)" +msgstr " (PiP)" + +msgid " (Radio)" +msgstr " (Radio)" + +msgid " (TV)" +msgstr " (TV)" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +msgid " extensions." +msgstr "paplaÅ¡inÄjumi." + +msgid " ms" +msgstr " ms" + +msgid " packages selected." +msgstr "izvÄ“lÄ“tas pakotnes." + +msgid " updates available." +msgstr "atjaunojumi pieejami." + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "%2d:%02d" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "%2d:%02d:%02d" + +msgid "%A %d %B" +msgstr "%A %d %B" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "%A %e %B" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "%A %e %B %Y" + +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "%a %e/%m" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "%a %e/%m %-H:%M" + +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "%d kanÄls atrasts" +msgstr[1] "%d kanÄli atrasti" +msgstr[2] "%d kanÄli atrasti" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "%d fails" +msgstr[1] "%d faili" +msgstr[2] "%d faili" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d stunda" +msgstr[1] "%d stundas" +msgstr[2] "%d stundas" + +#, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d darbs tiek veikts fonÄ!" +msgstr[1] "%d darbi tiek veikti fonÄ!" +msgstr[2] "%d darbi tiek veikti fonÄ!" + +#, python-format +msgid "%d min" +msgstr "%d min" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minÅ«te" +msgstr[1] "%d minÅ«tes" +msgstr[2] "%d minÅ«tes" + +#, python-format +msgid "%d minutes" +msgstr "%d minÅ«tes" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d sekunde" +msgstr[1] "%d sekundes" +msgstr[2] "%d sekundes" + +#, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "%d apakÅ¡mape" +msgstr[1] "%d apakÅ¡mapes" +msgstr[2] "%d apakÅ¡mapes" + +#, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "%d bezvadu tÄ«kls atrasts!" +msgstr[1] "%d bezvadu tÄ«kli atrasti!" +msgstr[2] "%d bezvadu tÄ«kli atrasti!" + +msgid "%d-%b-%Y %-H:%M" +msgstr "%d-%b-%Y %-H:%M" + +msgid "%d-%m" +msgstr "%d-%m" + +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "%k:%M %e/%m" + +#, python-format +msgid "%s %s free disk space" +msgstr "%s %s brÄ«va vieta uz diska" + +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "%s vairs neizmanto. Vai izdzÄ“st?" + +#, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "%s pakotnes atjaunojums pieejams" +msgstr[1] "%s pakotņu atjaunojumi pieejami" +msgstr[2] "%s pakotņu atjaunojumi pieejami" + +#, python-format +msgid "%s%d min" +msgstr "%s%d min" + +#, python-format +msgid "%s/%s: %s" +msgstr "%s/%s: %s" + +msgid "(ZAP)" +msgstr "(PÄ€RSLÄ’GT)" + +msgid "(empty)" +msgstr "(tukÅ¡s)" + +msgid "(show optional DVD audio menu)" +msgstr "(rÄdÄ«t papildu DVD skaņas izvÄ“lni)" + +msgid "* Only available if more than one interface is active." +msgstr "* Pieejams ja ir aktÄ«vs vairÄk nekÄ viens interfeiss." + +msgid "/s" +msgstr "/s" + +msgid "0" +msgstr "0" + +msgid "1" +msgstr "1" + +msgid "1.0" +msgstr "1.0" + +msgid "1.1" +msgstr "1.1" + +msgid "1.2" +msgstr "1.2" + +msgid "12V output" +msgstr "12V izeja" + +msgid "13 V" +msgstr "13 V" + +msgid "16:10" +msgstr "16:10" + +msgid "16:10 Letterbox" +msgstr "16:10 platekrÄns" + +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +msgid "16:9" +msgstr "16:9" + +msgid "16:9 Letterbox" +msgstr "16:9 platekrÄns" + +msgid "16:9 always" +msgstr "16:9 vienmÄ“r" + +msgid "18 V" +msgstr "18 V" + +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "23.976" + +msgid "24" +msgstr "24" + +msgid "25" +msgstr "25" + +msgid "29.97" +msgstr "29.97" + +msgid "3" +msgstr "3" + +msgid "30" +msgstr "30" + +msgid "3d mode" +msgstr "3d režīms" + +msgid "4" +msgstr "4" + +msgid "4:3" +msgstr "4:3" + +msgid "4:3 Letterbox" +msgstr "4:3 platekrÄns" + +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +msgid "5" +msgstr "5" + +msgid "6" +msgstr "6" + +msgid "7" +msgstr "7" + +msgid "8" +msgstr "8" + +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +msgid "<Current movielist location>" +msgstr "<TekoÅ¡Ä filmu saraksta atraÅ¡anÄs vieta>" + +msgid "<Default movie location>" +msgstr "<Filmu atraÅ¡anÄs vieta pÄ“c noklusÄ“juma>" + +msgid "<Last timer location>" +msgstr "<PÄ“dÄ“jÄ taimera atraÅ¡anÄs vieta>" + +msgid "<unknown>" +msgstr "<nezinÄms>" + +msgid "??" +msgstr "??" + +msgid "A" +msgstr "A" + +#, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"KonfigurÄcijas fails (%s) kopÅ¡ uzstÄdÄ«Å¡anas ir izmainÄ«ts.\n" +"Vai vÄ“laties paturÄ“t izmainÄ«to versiju?" + +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"KonfigurÄcijas fails (%s) kopÅ¡ uzstÄdÄ«Å¡anas ir izmainÄ«ts.\n" +"Vai vÄ“laties paturÄ“t izmainÄ«to versiju?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"Taimeris ir beidzis ierakstu un vÄ“las izslÄ“gt\n" +"uzvÄ“rÄ“ju gaidstÄvÄ“. Vai to darÄ«t?" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"Taimeris ir beidzis ierakstu un vÄ“las izslÄ“gt\n" +"uzvÄ“rÄ“ju. Vai izslÄ“gt?" + +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "Grafiskais EPG visiem kanÄliem izvÄ“lÄ“tajÄ buÄ·etÄ“" + +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"Ieraksts ir sÄcies:\n" +"%s" + +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"PaÅ¡reiz notiek ieraksts.\n" +"Ko JÅ«s vÄ“laties darÄ«t?" + +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "PaÅ¡reiz notiek ieraksts. Pirms konfigurÄ“jat pozicionieri lÅ«dzu apturiet ierakstu." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "PaÅ¡reiz notiek ieraksts. Pirms mÄ“Ä£inÄt meklÄ“t lÅ«dzu apturiet ierakstu." + +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "PaÅ¡reiz notiek ieraksts. Pirms startÄ“jiet sat-meklÄ“tÄju lÅ«dzu apturiet ierakstu." + +#, python-format +msgid "A required tool (%s) was not found." +msgstr "VajadzÄ«gais rÄ«ks (%s) netika atrasts." + +msgid "A search for available updates is currently in progress." +msgstr "Notiek pieejamo atjaunojumu meklÄ“Å¡ana." + +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"Atrasta otra nokonfigurÄ“ta tÄ«kla iekÄrta.\n" +"\n" +"Vai vÄ“laties izslÄ“gt otru tÄ«kla iekÄrtu?" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"Miega taimeris vÄ“las uztvÄ“rÄ“ju\n" +"izslÄ“gt gaidstÄvÄ“. Vai to darÄ«t?" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"Miega taimeris vÄ“las izslÄ“gt\n" +"uzvÄ“rÄ“ju. Vai izslÄ“gt?" + +msgid "A small overview of the available icon states and actions." +msgstr "VienkÄrÅ¡s pÄrskats par pieejamÄm ikonÄm un darbÄ«bÄm." + +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"Taimerim neizdevÄs uzsÄkt ierakstu!\n" +"IzslÄ“gt TV un mÄ“Ä£inÄt vÄ“lreiz?\n" + +msgid "A/V settings" +msgstr "A/V iestatÄ«jumi" + +msgid "AC3/DTS downmix" +msgstr "AC3/DTS pÄrveidoÅ¡ana" + +msgid "Abort" +msgstr "Atcelt" + +msgid "About" +msgstr "Par" + +msgid "About..." +msgstr "Par..." + +msgid "Accesspoint:" +msgstr "Piekļuves punkts:" + +msgid "Action on long powerbutton press" +msgstr "IlgstoÅ¡i nospiežot izslÄ“gÅ¡anas taustiņu" + +msgid "Action on short powerbutton press" +msgstr "Īsi nospiežot izslÄ“gÅ¡anas taustiņu" + +msgid "Activate Picture in Picture" +msgstr "AktivizÄ“t funkciju attÄ“ls attÄ“lÄ" + +msgid "Activate current configuration" +msgstr "AktivizÄ“t paÅ¡reizÄ“jo konfigurÄciju" + +msgid "Activate network settings" +msgstr "AktivizÄ“t tÄ«kla iestatÄ«jumus" + +msgid "Activate the configured network settings." +msgstr "AktivizÄ“t nokonfigurÄ“tos tÄ«kla iestatÄ«jumus" + +msgid "Adapter settings" +msgstr "Adaptera iestatÄ«jumi" + +msgid "Add" +msgstr "Pievienot" + +msgid "Add Bookmark" +msgstr "Pievienot grÄmatzÄ«mi" + +msgid "Add a mark" +msgstr "Pievienot iezÄ«mi" + +msgid "Add a nameserver entry" +msgstr "Pievienot DNS ierakstu" + +msgid "Add a new title" +msgstr "Pievienot jaunu nosaukumu" + +msgid "Add bookmark" +msgstr "Pievienot grÄmatzÄ«mi" + +msgid "Add directory to playlist" +msgstr "Pievienot mapi repertuÄram" + +msgid "Add file to playlist" +msgstr "Pievienot failu repertuÄram" + +msgid "Add files to playlist" +msgstr "Pievienot failus repertuÄram" + +msgid "Add more details to the crash log" +msgstr "Pievienot vairÄk informÄcijas avÄrijas logam" + +msgid "Add provider" +msgstr "Pievienot operatoru" + +msgid "Add recording (enter recording duration)" +msgstr "SÄkt ierakstu (ievadÄ«t ieraksta ilgumu)" + +msgid "Add recording (enter recording endtime)" +msgstr "SÄkt ierakstu (ievadÄ«t ieraksta beigu laiku)" + +msgid "Add recording (indefinitely)" +msgstr "SÄkt ierakstu (nenoteikti)" + +msgid "Add recording (stop after current event)" +msgstr "SÄkt ierakstu (apturÄ“t pÄ“c paÅ¡reizÄ“jÄ notikuma)" + +msgid "Add service" +msgstr "Pievienot kanÄlo" + +msgid "Add timer" +msgstr "Pievienot taimeri" + +msgid "Add title" +msgstr "Pievienot nosaukumu" + +msgid "Add to bouquet" +msgstr "Pievienot buÄ·etei" + +msgid "Add to favourites" +msgstr "Pievienot favorÄ«tiem" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "PielÄgot 3D iestatÄ«jumus" + +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "RegulÄ“t krÄsu iestatÄ«jumus tÄ, lai visi krÄsu toņi ir izÅ¡Ä·irami bet, cik iespÄ“jams, piesÄtinÄti. Ja esat apmierinÄti ar rezultÄtu tad spiediet OK, lai aizvÄ“rtu video precizÄ“Å¡anu vai izmantojiet ciparu taustiņus, lai izvÄ“lÄ“tos citus testÄ“Å¡anas attÄ“lus." + +msgid "Advanced" +msgstr "" + +msgid "Advanced options" +msgstr "Papildus iespÄ“jas" + +msgid "Advanced restore" +msgstr "Papildus atjaunoÅ¡ana" + +msgid "Advanced software" +msgstr "Papildus programmatÅ«ra" + +msgid "Advanced software plugin" +msgstr "Papildus programmatÅ«ras spraudnis" + +msgid "Advanced video enhancement setup" +msgstr "Video uzlaboÅ¡anas papildus iestatÄ«jumi" + +msgid "Advanced video setup" +msgstr "Papildus video iestatÄ«jumi" + +msgid "After event" +msgstr "PÄ“c notikuma" + +msgid "Album" +msgstr "Albums" + +msgid "Alignment of events" +msgstr "Notikumu izvietojums" + +msgid "Alignment of service names" +msgstr "KanÄla nosaukumu izvietojums" + +msgid "All" +msgstr "Visi" + +msgid "All ages" +msgstr "Visi vecumi" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "IedalÄ«t" + +msgid "Allocate unused memory index" +msgstr "PieÅ¡Ä·irt neizmantoto atmiņas indeksu" + +msgid "Allow quit movieplayer with exit" +msgstr "Izejot atļut izslÄ“gt filmu atskaņotÄju" + +msgid "Allow subtitle language to equal audio language" +msgstr "Atļaut subtitru valodu vienÄdu ar audio valodu" + +msgid "Allow subtitles for hearing impaired" +msgstr "Atļaut subtitrus dzirdes traucÄ“jumiem" + +msgid "Alpha" +msgstr "Alfa" + +msgid "Alternative" +msgstr "AlternatÄ«vas" + +msgid "Alternative numbering mode" +msgstr "AlternatÄ«vais numuru režīms" + +msgid "Alternative services tuner priority" +msgstr "AlternatÄ«vo uztvÄ“rÄ“ju prioritÄte" + +msgid "Always ask" +msgstr "VienmÄ“r jautÄt" + +msgid "Always hide infobar" +msgstr "vienmÄ“r slÄ“pt infojoslu" + +msgid "An empty filename is illegal." +msgstr "Faila nosaukums nevar bÅ«t tukÅ¡s." + +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "Kļūda lejupielÄdÄ“jot pakotņu sarakstu. LÅ«dzu mÄ“Ä£iniet vÄ“lreiz." + +msgid "An unknown error occurred!" +msgstr "NezinÄma kļūda!" + +msgid "And will put your receiver in standby over " +msgstr "Un iestatÄ«t uztvÄ“rÄ“ju gaidstÄvÄ“ pÄ“c " + +msgid "Any activity" +msgstr "Jebkura aktivitÄte" + +msgid "Arabic" +msgstr "ArÄbu" + +msgid "Are you sure to remove this entry?" +msgstr "Vai tieÅ¡Äm vÄ“laties dzÄ“st Å¡o ierakstu?" + +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"Vai tieÅ¡Äm vÄ“laties aktivizÄ“t Å¡o tÄ«kla konfigurÄciju?\n" +"\n" + +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"Vai tieÅ¡Äm vÄ“laties dzÄ“st\n" +"Å¡o dublÄ“jumkopiju:\n" + +msgid "Are you sure you want to exit this wizard?" +msgstr "Vai tieÅ¡Äm vÄ“laties iziet no Å¡Ä« veidņa?" + +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"Vai tieÅ¡Äm vÄ“laties pÄrstartÄ“t tÄ«kla interfeisus? \n" +"\n" + +#, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Vai tieÅ¡Äm vÄ“laties atjaunot\n" +"Å¡o dublÄ“jumkopiju:\n" +"%s\n" +"UztvÄ“rÄ“js pÄrstartÄ“sies pÄ“c atjaunoÅ¡anas!" + +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Vai tieÅ¡Äm vÄ“laties atjaunot dublÄ“jumkopiju?\n" +"UztvÄ“rÄ“js pÄrstartÄ“sies pÄ“c atjaunoÅ¡anas!" + +msgid "Artist" +msgstr "IzpildÄ«tÄjs" + +msgid "Arts/Culture" +msgstr "MÄksla/KultÅ«ra" + +msgid "Ask user" +msgstr "JautÄt" + +msgid "Aspect ratio" +msgstr "Malu attiecÄ«ba" + +msgid "Assigned CAIds:" +msgstr "PieÅ¡Ä·irtie CAId:" + +msgid "Assigned services/provider:" +msgstr "PieÅ¡Ä·irtie servisi/operatori:" + +msgid "At beginning" +msgstr "SÄkt no sÄkuma" + +msgid "At end" +msgstr "Uz beigÄm" + +msgid "Audio" +msgstr "Skaņa" + +msgid "Audio PID" +msgstr "Audio PID" + +msgid "Audio language selection 1" +msgstr "Audio valodas izvÄ“le 1" + +msgid "Audio language selection 2" +msgstr "Audio valodas izvÄ“le 2" + +msgid "Audio language selection 3" +msgstr "Audio valodas izvÄ“le 3" + +msgid "Audio language selection 4" +msgstr "Audio valodas izvÄ“le 4" + +msgid "Audio options..." +msgstr "Skaņas opcijas..." + +#, python-format +msgid "Audio track (%s) format" +msgstr "Skaņas celiņa (%s) formÄts" + +#, python-format +msgid "Audio track (%s) language" +msgstr "Skaņas celiņa (%s) valoda" + +msgid "Author: " +msgstr "Autors: " + +msgid "Authoring mode" +msgstr "AutorizÄ“Å¡anas režīms" + +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "AutomÄtiski" + +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "AutomÄtiska nodaļu veidoÅ¡ana katras ? minÅ«tes (0=neveidot)" + +msgid "Auto flesh" +msgstr "AutomÄtiska ielÄde" + +msgid "Auto focus" +msgstr "AutomÄtisks fokuss" + +msgid "Auto focus commencing ..." +msgstr "AutomÄtisks fokuss sÄkas ..." + +msgid "Auto language selection" +msgstr "AutomÄtiska valodas izvÄ“le" + +msgid "Auto scart switching" +msgstr "AutomÄtiska SCART pÄrslÄ“gÅ¡ana" + +msgid "Automatic" +msgstr "AutomÄtiski" + +msgid "Automatic scan" +msgstr "AutomÄtiskÄ meklÄ“Å¡ana" + +msgid "Automatically start timeshift after" +msgstr "AutomÄtiski sÄkt laika aizturi pÄ“c" + +msgid "Automatically turn on external subtitles" +msgstr "AutomÄtiski ieslÄ“gt ÄrÄ“jos subtitrus" + +msgid "Available format variables" +msgstr "Pieejamie mainÄ«go formÄti" + +msgid "B" +msgstr "B" + +msgid "BER" +msgstr "BER" + +msgid "BER:" +msgstr "BER:" + +msgid "Back" +msgstr "Atpakaļ" + +msgid "Background" +msgstr "Fons" + +msgid "Background color" +msgstr "Fona krÄsa" + +msgid "Background delete option" +msgstr "DzÄ“Å¡anu fonÄ lieto" + +msgid "Background delete speed" +msgstr "DzÄ“Å¡anas fonÄ Ätrums" + +msgid "Backup completed." +msgstr "DublÄ“jumkopija izveidota." + +msgid "Backup failed." +msgstr "DublÄ“jumkopija neizdevÄs." + +msgid "Backup is running..." +msgstr "Tiek veidota dublÄ“jumkopija..." + +msgid "Backup system settings" +msgstr "Veidot iestatÄ«jumu dublÄ“jumkopiju" + +msgid "Band" +msgstr "Josla" + +msgid "Bandwidth" +msgstr "Joslas platums" + +msgid "Basque" +msgstr "Basku" + +msgid "Begin time" +msgstr "SÄkuma laiks" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +msgid "Behavior of 0 key in PiP-mode" +msgstr "0 taustiņa nozÄ«me PiP režīmÄ" + +msgid "Behavior when a movie is started" +msgstr "Kad filma ir palaista" + +msgid "Behavior when a movie is stopped" +msgstr "Kad filma ir apturÄ“ta" + +msgid "Behavior when a movie reaches the end" +msgstr "Kad filma beidzas" + +msgid "Big PiP" +msgstr "" + +msgid "Bitrate:" +msgstr "Bitreits:" + +msgid "Black screen" +msgstr "Melns ekrÄns" + +msgid "Black screen till locked" +msgstr "Melns ekrÄns lÄ«dz noenkurojies" + +msgid "Block noise reduction" +msgstr "BloÄ·Ä“t trokšņu slÄpÄ“Å¡anu" + +msgid "Blue boost" +msgstr "ZilÄ piesÄtinÄjums" + +msgid "Bookmarks" +msgstr "GrÄmatzÄ«mes" + +msgid "Brightness" +msgstr "Spilgtums" + +msgid "Bulgarian" +msgstr "BulgÄru" + +msgid "Burn DVD" +msgstr "RakstÄ«t DVD" + +#, python-format +msgid "Burn audio track (%s)" +msgstr "RakstÄ«t skaņas celiņu (%s)" + +msgid "Burn existing image to DVD" +msgstr "IerakstÄ«t esoÅ¡o imidžu uz DVD" + +msgid "Burn to DVD" +msgstr "IerakstÄ«t uz DVD" + +msgid "Bus: " +msgstr "Kopne: " + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "PÄ“c noklusÄ“juma SNR tiek attÄ“lots dB (ja atļauj uztvÄ“rÄ“js). Å is iestatÄ«jums ieslÄ“gs SNR attÄ“loÅ¡anu procentos." + +msgid "C" +msgstr "C" + +msgid "C-Band" +msgstr "C-josla" + +msgid "CH" +msgstr "" + +msgid "CI assignment" +msgstr "CI pieÅ¡Ä·irÅ¡ana" + +msgid "CVBS" +msgstr "CVBS" + +msgid "Cable" +msgstr "Kabeļu" + +msgid "Cable Scan" +msgstr "Kabeļu meklÄ“Å¡ana" + +msgid "Cache thumbnails" +msgstr "KeÅ¡ot sÄ«kattÄ“lus" + +msgid "Calculate" +msgstr "Izskaitļot" + +msgid "Calculate all positions" +msgstr "Izskaitļot visas pozÄ«cijas" + +msgid "Calculation complete" +msgstr "IzskaitļoÅ¡ana pabeigta" + +msgid "Calibrate" +msgstr "KalibrÄ“t" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "Tiek lietots dažÄdiem fps starp ÄrÄ“jiem subtitriem un video" + +msgid "Cancel" +msgstr "Atcelt" + +msgid "Cannot determine" +msgstr "Nevar noteikt" + +msgid "Cannot find any signal ..., aborting !" +msgstr "Nevar atrast nevienu signÄlu ..., pÄrtraukts!" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "Nevar pÄrvietot failus uz citu disku vai uz sistÄ“mas miskasti" + +msgid "Cannot move to trash can" +msgstr "Nevar pÄrvietot uz miskasti" + +msgid "Capacity: " +msgstr "IetilpÄ«ba: " + +msgid "Card" +msgstr "Karte" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "CentrÄ“t DVB subtitrus" + +msgid "Center time-labels and remove date" +msgstr "CentrÄ“t laika iezÄ«mes un nomest datumu" + +msgid "Change bouquets in quickzap" +msgstr "MainÄ«t buÄ·etes ÄtrÄs slÄ“gÅ¡anas režīmÄ" + +msgid "Change pin code" +msgstr "MainÄ«t PIN kodu" + +msgid "Change recording (duration)" +msgstr "MainÄ«t ierakstu (ilgumu)" + +msgid "Change recording (endtime)" +msgstr "MainÄ«t ierakstu (beigu laiku)" + +msgid "Change repeat and delay settings?" +msgstr "MainÄ«t atkÄrtoÅ¡anas un aiztures iestatÄ«jumus?" + +msgid "Change service PIN" +msgstr "MainÄ«t kanÄla PIN" + +msgid "Change service PINs" +msgstr "MainÄ«t kanÄlu PINus" + +msgid "Change setup PIN" +msgstr "MainÄ«t iestatÄ«jumu PIN" + +msgid "Change step size" +msgstr "MainÄ«t soļa lielumu" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "Izmaiņas" + +msgid "Channel" +msgstr "KanÄls" + +msgid "Channel list type" +msgstr "KanÄlu saraksta veids" + +msgid "Channel not in services list" +msgstr "KanÄls nav kanÄlu sarakstÄ" + +msgid "Channel selection" +msgstr "KanÄlu izvÄ“le" + +msgid "Channel:" +msgstr "KanÄls:" + +msgid "Channellist menu" +msgstr "KanÄlu saraksta izvÄ“lne" + +msgid "Chap." +msgstr "Nod." + +msgid "Chapter" +msgstr "Nodaļa" + +msgid "Chapter:" +msgstr "Nodaļa:" + +msgid "Check" +msgstr "PÄrbaude" + +msgid "Check the internet connection" +msgstr "PÄrbaudÄ«t interneta savienojumu" + +msgid "Check the internet connection again" +msgstr "PÄrbaudÄ«t interneta savienojumu vÄ“lreiz" + +msgid "Checking filesystem..." +msgstr "PÄrbauda failsistÄ“mu..." + +msgid "Checking the internet connection" +msgstr "PÄrbauda interneta savienojumu" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" +"PÄrbauda uztvÄ“rÄ“ju %d\n" +"DiSEqC ports %s no %s" + +msgid "Children/Youth" +msgstr "BÄ“rni/JaunieÅ¡i" + +msgid "Choose which tuner to configure." +msgstr "IzvÄ“lieties kuru uztvÄ“rÄ“ju konfigurÄ“t" + +msgid "Circular left" +msgstr "CirkulÄrÄ kreisÄ" + +msgid "Circular right" +msgstr "CirkulÄrÄ labÄ" + +msgid "Cleanup" +msgstr "TÄ«rÄ«Å¡ana" + +msgid "Clear" +msgstr "NotÄ«rÄ«t" + +msgid "Clear before scan" +msgstr "NotÄ«rÄ«t pirms meklÄ“Å¡anas" + +msgid "Clear fixed" +msgstr "NotÄ«rÄ«Å¡ana fiksÄ“ta" + +msgid "Clear log" +msgstr "DzÄ“st žurnÄlu" + +msgid "Clear playlist" +msgstr "NotÄ«rÄ«t repertuÄru" + +msgid "Close" +msgstr "AizvÄ“rt" + +msgid "Close PiP on exit" +msgstr "Izejot aizvÄ“t PiP" + +msgid "Close title selection" +msgstr "AizvÄ“rt virsrakstu atlasi" + +msgid "Code rate HP" +msgstr "Koda Ätrums HP" + +msgid "Code rate LP" +msgstr "Koda Ätrums LP" + +msgid "Coderate HP" +msgstr "Koda Ätrums HP" + +msgid "Coderate LP" +msgstr "Koda Ätrums LP" + +msgid "Collection name" +msgstr "Kolekcijas nosaukums" + +msgid "Collection settings" +msgstr "Kolekcijas iestatÄ«jumi" + +msgid "Color format" +msgstr "KrÄsu formÄts" + +msgid "Command execution..." +msgstr "Izpilda komandu..." + +msgid "Command order" +msgstr "Komandu secÄ«ba" + +msgid "Common Interface" +msgstr "Common interfeiss" + +msgid "Common Interface assignment" +msgstr "Common interfeisa pieÅ¡Ä·irÅ¡ana" + +msgid "Communication" +msgstr "KomunikÄcija" + +msgid "Compact flash" +msgstr "Zibatmiņa" + +msgid "Complete" +msgstr "Gatavs" + +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "KomplicÄ“ts (pieļauj skaņas celiņu un aspektu jaukÅ¡anu)" + +msgid "Composition of the recording filenames" +msgstr "Ieraksta faila nosaukuma veidoÅ¡ana" + +msgid "Configuration mode" +msgstr "KonfigurÄ“Å¡anas režīms" + +#, python-format +msgid "Configuration mode: %s" +msgstr "KonfigurÄ“Å¡anas režīms: %s" + +msgid "Configuration..." +msgstr "KonfigurÄcija..." + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "UzstÄda papildus aizturi lai darbotos ÄrÄ“jo subtitru sinhronizÄcija." + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "UzstÄda papildus aizturi lai darbotos subtitru sinhronizÄcija." + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "UzstÄda cik ilgi infojosla paliek redzama pÄ“c aktivizÄcijas." + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "UzstÄda cik minÅ«tes pabeigtiem notikumiem jÄpaliek redzamiem EPG. NoderÄ«gi, ja jums ir nepiecieÅ¡ama informÄcija par kÄdu notikumu, kas tikko ir pabeigts, vai ir atlikts." + +msgid "Configure how recording filenames are constructed." +msgstr "UzstÄda kÄ tiek sastÄdÄ«ti ierakstu failu vÄrdi." + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "UzstÄda vai un kÄ tiks rÄdÄ«tas kanÄlu tipu ikonas kanÄlu srakstÄ." + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "UzstÄda vai kanÄlu pikonas tiks rÄdÄ«tas kanÄlu sarakstÄ." + +msgid "Configure interface" +msgstr "UzstÄdÄ«t interfeisu" + +msgid "Configure nameservers" +msgstr "UzstÄdÄ«t DNS" + +msgid "Configure on which devices the background delete option should be used." +msgstr "UzstÄda uz kuras ierÄ«ces bÅ«tu jÄizmanto fona dzÄ“Å¡anas iespÄ“ja." + +msgid "Configure remote control type" +msgstr "UzstÄdÄ«t vadÄ«bas pults tipu" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "UzstÄdÄ«t DiSEqC veidu Å¡im LNB." + +msgid "Configure the IP address." +msgstr "UzstÄdÄ«t IP adresi." + +msgid "Configure the aspect ratio of the screen." +msgstr "UzstÄdÄ«t ekrÄna proporcijas." + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "UzstÄda darbÄ«bu kad filma ir manuÄli apturÄ“ta." + +msgid "Configure the behavior when movie playback is started." +msgstr "UzstÄda darbÄ«bu, kad filma ir palaista." + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "UzstÄda darbÄ«bu kad atskaņoÅ¡anas laikÄ tiek sasniegtas filmas beigas." + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "UzstÄda apmales platumu subtitriem. TumÅ¡a robeža atļauj vieglÄk lasÄ«t subtitrus uz gaiÅ¡a fona." + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "UzstÄda spilgtuma lÄ«meni priekÅ¡Ä“jÄ paneļa displejÄ gaidÄ«Å¡anas režīmÄ." + +msgid "Configure the brightness level of the front panel display." +msgstr "UzstÄda spilgtuma lÄ«meni priekÅ¡Ä“jÄ paneļa displejÄ." + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "UzstÄda ÄrÄ“jo subtitru krÄsu, altrenatÄ«vi (normÄli balti, slÄ«pi dzelteni, trekni gaiÅ¡i zili, pasvÄ«troti zaļi), balti vai dzelteni." + +msgid "Configure the color of the teletext subtitles." +msgstr "UzstÄda teleteksta subtitru krÄsa." + +msgid "Configure the contrast level of the front panel display." +msgstr "UzstÄda kontrasta lÄ«meni priekÅ¡Ä“jÄ paneļa displejÄ." + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "UzstÄda kursora darbÄ«bu atverot kanÄlu srakstu ar augÅ¡up/lejup taustiņiem. Kad atverat kanÄlu srakstu jÅ«s varat iezÄ«mÄ“t aktÄ«vo kanÄlu, vai iezÄ«mÄ“t un revertÄ“t nÄkoÅ¡o ar B+/B- taustiņiem." + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "UzstÄda laiku minÅ«tÄ“s ekrÄnsaudzÄ“tÄjam." + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "UzstÄda laiku pÄ“c kura uztvÄ“rÄ“jam jÄizslÄ“dzas, ja tas atrodas gaidstÄves režīmÄ." + +msgid "Configure the first audio language (highest priority)." +msgstr "UzstÄda primÄro audio valodu (augstÄkÄ prioritÄte)." + +msgid "Configure the first subtitle language (highest priority)." +msgstr "UzstÄda primÄro subtitru valodu (augstÄkÄ prioritÄte)." + +msgid "Configure the font size of the subtitles." +msgstr "UzstÄda subtitru fontu izmÄ“ru." + +msgid "Configure the fourth audio language." +msgstr "UzstÄda nÄkamo audio valodu." + +msgid "Configure the fourth subtitle language." +msgstr "UzstÄda nÄkamo subtitru valodu." + +msgid "Configure the function of a long press on the power button." +msgstr "UzstÄda baroÅ¡anas pogas ilgstoÅ¡as nospieÅ¡anas funkciju." + +msgid "Configure the function of a short press on the power button." +msgstr "UzstÄda baroÅ¡anas pogas Ä«slaicÄ«gas nospieÅ¡anas funkciju." + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "UzstÄda kÄdu funkciju veic taustiņš '0' ja PiP ir aktÄ«vs." + +msgid "Configure the gateway." +msgstr "UzstÄdÄ«t vÄrteju." + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "UzstÄda vispÄrÄ“jo audio aizturi Dolby Digital skaņu ierakstiem." + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "UzstÄda vispÄrÄ“jo aizturi stereo skaņu ierakstiem." + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "UzstÄda lai cietais disks dodas gaidstÄvÄ“ pÄ“c noteiktÄ laika." + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "UzstÄda subtitru horizontÄlo izlÄ«dzinÄÅ¡anu." + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "UzstÄda sÄkotnÄ“jo pÄrtÄ«Å¡anas uz priekÅ¡u Ätrumu. Kad nospiežat tÄ«t uz priekÅ¡u pogu, pÄrtÄ«Å¡ana sÄksies ar Å¡o Ätrumu." + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "UzstÄda sÄkotnÄ“jo attÄ«Å¡anas Ätrumu. Kad nospiežat tÄ«t atpakaļ pogu, attÄ«Å¡ana sÄksies ar Å¡o Ätrumu." + +msgid "Configure the latitude of your location." +msgstr "UzstÄda JÅ«su atraÅ¡anÄs vietas platumu." + +msgid "Configure the longitude of your location." +msgstr "UzstÄda JÅ«su atraÅ¡anÄs vietas garumu." + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "UzstÄda minimÄlo brÄ«vÄs vietas daudzumu uz diska lai tas bÅ«tu pieejams ierakstiem. Kad vietas apjoms samazinÄs zem Å¡Ä«s vÄ“rtÄ«bas izdzÄ“stÄs vienÄ«bas tiks dzÄ“stas no miskastes." + +msgid "Configure the nameserver (DNS)." +msgstr "UzstÄda domÄ“nu vÄrdu serveri (DNS)." + +msgid "Configure the netmask." +msgstr "UzstÄda tÄ«kla masku." + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "UzstÄda dienu skaitu, pÄ“c kura faili automÄtiski tiks dzÄ“stas no miskastes." + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "UzstÄda dienu skaitu cik ilgi vecie taimeri tiks saglabÄti pirms tie automÄtiski tiks dzÄ“sti no taimeru saraksta." + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "UzstÄda bezsaistes dekodÄ“Å¡anas aizturi milisekundÄ“s. UzstÄdÄ«tais kavÄ“jums ir novÄ“rojams pie katrÄm kontroles vÄrdu paritÄtes izmaiņÄm." + +msgid "Configure the possible fast forward speeds." +msgstr "UzstÄda iespÄ“jamos ÄtrÄs pÄrtÄ«Å¡anas Ätrumus." + +msgid "Configure the possible rewind speeds." +msgstr "UzstÄda iespÄ“jamos ÄtrÄs attÄ«Å¡anas Ätrumus." + +msgid "Configure the primary EPG language." +msgstr "UzstÄda primÄro EPG valodu." + +msgid "Configure the refresh rate of the screen." +msgstr "UzstÄda ekrÄna atjaunoÅ¡anas Ätrumu." + +msgid "Configure the screen resolution in PC output mode." +msgstr "UzstÄda ekrÄna izÅ¡Ä·irtspÄ“ju datora savienojuma režīmÄ." + +msgid "Configure the second audio language." +msgstr "UzstÄda otro audio valodu." + +msgid "Configure the second subtitle language." +msgstr "UzstÄda otro subtitru valodu" + +msgid "Configure the secondary EPG language." +msgstr "UzstÄda otro EPG valodu." + +msgid "Configure the sharpness of the video scaling." +msgstr "UzstÄda video asuma skalu." + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "UzstÄda taustiņu '1'/'3' pÄrlÄ“kÅ¡anas laika intervÄlus." + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "UzstÄda taustiņu '4'/'6' pÄrlÄ“kÅ¡anas laika intervÄlus." + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "UzstÄda taustiņu '7'/'9' pÄrlÄ“kÅ¡anas laika intervÄlus." + +msgid "Configure the slow motion speeds." +msgstr "UzstÄda palÄ“ninÄtÄs kustÄ«bas Ätrumus." + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "UzstÄda Ätrumu fona dzÄ“Å¡anai. ZemÄks Ätrums patÄ“rÄ“ mazÄk cietÄ diska resursus." + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "UzstÄda subtitru parÄdÄ«Å¡anas laika aizturi kad laika aiztures informÄcija nav pieejama." + +msgid "Configure the third audio language." +msgstr "UzstÄda treÅ¡o audio valodu." + +msgid "Configure the third subtitle language." +msgstr "UzstÄda treÅ¡o subtitru valodu" + +msgid "Configure the transparency of the OSD." +msgstr "UzstÄda OSD caurspÄ«dÄ«gumu." + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "UzstÄda grafisko DVB subtitru melnÄ fona caurspÄ«dÄ«gumu." + +msgid "Configure the tuner mode." +msgstr "UzstÄda uztvÄ“rÄ“ja režīmu." + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "UzstÄda statusa indikatora ikonas tipu filmu sarakstÄ." + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "UzstÄda subtitru vertikÄlo pozÄ«ciju no ekrÄna apakÅ¡as." + +msgid "Configure the video output mode (or resolution)." +msgstr "UzstÄda video izejas režīmu (vai izÅ¡Ä·irtspÄ“ju)." + +msgid "Configure the way in which the receiver changes channels." +msgstr "UzstÄda veidu kÄ uztvÄ“rÄ“js pÄrslÄ“dz kanÄlus." + +msgid "Configure where completed timers show up in the timer list." +msgstr "UzstÄda kur pabeigtie taimeri tiek parÄdÄ«ti taimeru sarakstÄ." + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "UzstÄda kur (un cik ilgi) otrais infopanelis tiek attÄ“lots kad divreiz nospiests OK. Otrais infopanelis satur papildus informÄciju par tekoÅ¡o kanÄlu." + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "UzstÄda kÄ daudzkanÄlu skaņu celiņi tiks dekodÄ“ti uz stereo." + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "UzstÄda vai tiks parÄdÄ«ta ikona kad antena ar motoru pÄrvietosies." + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "UzstÄda kÄdu iestatÄ«jumu lÄ«meni lietot iestatÄ«jumu izvÄ“lnÄ“. Eksperta lÄ«menis atļauj piekļuvi visiem iestatÄ«jumiem." + +msgid "Configure which color format should be used on the SCART output." +msgstr "UzstÄda kÄdu krÄsu formÄtu lietot SCART izejÄ." + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "UzstÄda kÄdam uztvÄ“rÄ“ja tipam dot priekÅ¡roku, ja viens un tas pats kanÄls pieejams dažÄdos uztvÄ“rÄ“jos." + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "UzstÄda kuram uztvÄ“rÄ“jam dot priekÅ¡roku ja pieejams vairÄk kÄ viens uztvÄ“rÄ“js. Ja norÄdÄ«siet 'auto', sistÄ“ma izvÄ“lÄ“sies uztvÄ“rÄ“ju ar mazÄko kanÄla/pavadoņa numuru." + +msgid "Configure your internal LAN" +msgstr "UzstÄdÄ«t jÅ«su tÄ«klu (LAN)" + +msgid "Configure your network again" +msgstr "AtkÄrtoti uzstÄdÄ«t jÅ«su tÄ«klu" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "UztÄdiet jÅ«su tÄ«kla iestatÄ«jumus un nospiediet OK lai sÄktu pÄrbaudi" + +msgid "Configure your wireless LAN again" +msgstr "AtkÄrtoti uzstÄda jÅ«su bezvadu tÄ«klu" + +msgid "Configures which video output connector will be used." +msgstr "UzstÄda kura video izeja tiks lietota." + +msgid "Configuring" +msgstr "KonfigurÄ“" + +msgid "Conflicting timer" +msgstr "KonfliktÄ“joÅ¡s taimeris" + +msgid "Connect" +msgstr "Savienoties" + +msgid "Connect to a wireless network" +msgstr "Savienoties ar bezvadu tÄ«klu" + +msgid "Connected satellites" +msgstr "" + +msgid "Connected to" +msgstr "PieslÄ“gts" + +msgid "Connected!" +msgstr "Savienots!" + +msgid "Constellation" +msgstr "ModulÄcijas veids" + +msgid "Content does not fit on DVD!" +msgstr "Saturs neietilpst DVD!" + +msgid "Continue" +msgstr "TurpinÄt" + +msgid "Continue in background" +msgstr "TurpinÄt fonÄ" + +msgid "Continue playback" +msgstr "TurpinÄt atskaņoÅ¡anu" + +msgid "Continue playing" +msgstr "TurpinÄt atskaņoÅ¡anu" + +msgid "Continues play (loop)" +msgstr "NepÄrtraukta atskaņoÅ¡ana (loop)" + +msgid "Contrast" +msgstr "Kontrasts" + +msgid "Convert ext3 filesystem to ext4" +msgstr "KonvertÄ“t ext3 failsistÄ“mu uz ext4" + +msgid "Convert ext3 to ext4" +msgstr "KonvertÄ“t ext3 uz ext4" + +msgid "Converting ext3 to ext4..." +msgstr "KonvertÄ“ ext3 uz ext4..." + +msgid "Copy" +msgstr "KopÄ“t" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "Nevar pieslÄ“gties uztvÄ“rÄ“ja .NFI imidžu serverim:" + +msgid "Could not find installed channel list." +msgstr "Nevar atrast uzstÄdÄ«to kanÄlu sarakstu." + +msgid "Could not load medium! No disc inserted?" +msgstr "Nevar ielÄdÄ“t datu nesÄ“ju! Disks nav ievietots?" + +msgid "Could not open Picture in Picture" +msgstr "Nevar atvÄ“rt attÄ“lu attÄ“lÄ" + +#, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "Nevar ierakstÄ«t dēļ taimeru konflikta %s" + +#, python-format +msgid "Could not record due to invalid service %s" +msgstr "Nevar ierakstÄ«t dēļ kļūdaina kanÄla %s" + +msgid "Create DVD-ISO" +msgstr "Izveidot DVD-ISO" + +msgid "Create more detailed crash log" +msgstr "Izveidot detalizÄ“tÄku avÄrijas logu" + +#, python-format +msgid "Creating directory %s failed." +msgstr "NeizdevÄs izveidot mapi %s." + +msgid "Creating filesystem" +msgstr "Izveido failsistÄ“mu" + +msgid "Creating partition" +msgstr "Izveidot partÄ«ciju" + +msgid "Croatian" +msgstr "HorvÄtu" + +msgid "Current CEC address" +msgstr "PaÅ¡reizÄ“jÄ CEC adrese" + +msgid "Current device: " +msgstr "PaÅ¡reizÄ“jÄ iekÄrta: " + +msgid "Current event EPG" +msgstr "PaÅ¡reizÄ“jÄ notikuma EPG" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +msgid "Current settings:" +msgstr "PaÅ¡reizÄ“jie iestatÄ«jumi:" + +msgid "Current transponder" +msgstr "PaÅ¡reizÄ“jais transponderis" + +msgid "Current value: " +msgstr "PaÅ¡reizÄ“jÄ vÄ“rtÄ«ba: " + +msgid "Current version:" +msgstr "PaÅ¡reizÄ“jÄ versija:" + +msgid "Currently installed image" +msgstr "PaÅ¡reiz uzstÄdÄ«tais imidžs" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +msgid "Custom skip time for '1'/'3' buttons" +msgstr "PÄrlÄ“ciena laiks '1'/'3' taustiņiem" + +msgid "Custom skip time for '4'/'6' buttons" +msgstr "PÄrlÄ“ciena laiks '4'/'6' taustiņiem" + +msgid "Custom skip time for '7'/'9' buttons" +msgstr "PÄrlÄ“ciena laiks '7'/'9' taustiņiem" + +msgid "Customize" +msgstr "IestatÄ«jumi" + +msgid "Customize channel list cursor behavior" +msgstr "Kursora darbÄ«ba atverot kanÄlu srakstu" + +msgid "Cut" +msgstr "Griezt" + +msgid "Cutlist editor..." +msgstr "GrieÅ¡anas redaktors..." + +msgid "Czech" +msgstr "ÄŒehu" + +msgid "D" +msgstr "D" + +msgid "DHCP" +msgstr "DHCP" + +msgid "DMM advanced" +msgstr "DMM paplaÅ¡inÄts" + +msgid "DMM normal" +msgstr "DMM normÄls" + +msgid "DUAL LAYER DVD" +msgstr "DubultslÄņu DVD" + +msgid "DVB subtitle black transparency" +msgstr "DVB subtitru melnÄ caurspÄ«dÄ«gums" + +msgid "DVB-C" +msgstr "DVB-C" + +msgid "DVB-C ANNEX C" +msgstr "DVB-C ANNEX C" + +msgid "DVB-S" +msgstr "DVB-S" + +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "DVB-T" + +msgid "DVB-T2" +msgstr "DVB-T2" + +msgid "DVD data format" +msgstr "DVD datu formÄts" + +msgid "DVD file browser" +msgstr "DVD failu pÄrlÅ«ks" + +msgid "DVD media toolbox" +msgstr "DVD mediju aprÄ«kojums" + +msgid "DVD player" +msgstr "DVD atskaņotÄjs" + +msgid "DVD titlelist" +msgstr "DVD nosaukumi" + +msgid "Danish" +msgstr "DÄņu" + +msgid "Date" +msgstr "Datums" + +msgid "Date/time input" +msgstr "Datuma/laika ievade" + +msgid "Deep standby" +msgstr "DziÄ¼Ä gaidstÄve" + +msgid "Default" +msgstr "NoklusÄ“juma" + +msgid "Default movie location" +msgstr "Filmu atraÅ¡anÄs vieta pÄ“c noklusÄ“juma" + +msgid "Default settings" +msgstr "NoklusÄ“juma iestatÄ«jumi" + +msgid "Delay before key repeat starts:" +msgstr "Aizture pirms taustiņu atkÄrtoÅ¡anas:" + +msgid "Delay for external subtitles" +msgstr "Aizture ÄrÄ“jiem subtitriem" + +msgid "Delete" +msgstr "DzÄ“st" + +msgid "Delete entry" +msgstr "DzÄ“st ierakstu " + +msgid "Delete failed!" +msgstr "DzÄ“Å¡ana neizdevÄs!" + +msgid "Delete file" +msgstr "DzÄ“st failu" + +msgid "Delete playlist entry" +msgstr "DzÄ“st repertuÄra ierakstu" + +msgid "Delete saved playlist" +msgstr "DzÄ“st saglabÄto repertuÄru" + +msgid "Delete timer" +msgstr "" + +msgid "Delete..." +msgstr "DzÄ“Å¡..." + +msgid "Deleted" +msgstr "IzdzÄ“sts" + +msgid "Deleted items" +msgstr "DzÄ“sts" + +msgid "Depth" +msgstr "Dziļi" + +msgid "Descramble http streams" +msgstr "DekodÄ“t http plÅ«smas" + +msgid "Description" +msgstr "Apraksts" + +msgid "Deselect" +msgstr "Atcelt izvÄ“li" + +msgid "Details for plugin: " +msgstr "Spraudņu papildinformÄcija:" + +msgid "Detected HDD:" +msgstr "Atrasts HDD:" + +msgid "Detected NIMs:" +msgstr "Atrasts NIMs:" + +msgid "Devicename:" +msgstr "IekÄrtas nosaukums:" + +msgid "Devide" +msgstr "" + +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +msgid "DiSEqC mode" +msgstr "DiSEqC režīms" + +#, python-format +msgid "DiSEqC port %s: %s" +msgstr "DiSEqC ports: %s: %s" + +msgid "DiSEqC-tester settings" +msgstr "DiSEqC-testera iestatÄ«jumi" + +msgid "Dialing:" +msgstr "Zvana:" + +msgid "Digital contour removal" +msgstr "DigitÄlo kontÅ«ru noņemÅ¡ana" + +msgid "Direct playback of linked titles without menu" +msgstr "SaistÄ«to nosaukumu tieÅ¡Ä atskaņoÅ¡ana bez izvÄ“lnes" + +msgid "Directory" +msgstr "Mape" + +#, python-format +msgid "Directory %s does not exist." +msgstr "Mape %s neeksistÄ“." + +#, python-format +msgid "Directory %s nonexistent." +msgstr "Mape %s neeksistÄ“." + +msgid "Directory browser" +msgstr "Mapju pÄrlÅ«ks" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "Mape satur %d failu(s) un %d apakÅ¡mapes.\n" + +#, python-format +msgid "Directory contains %s and %s." +msgstr "Mape satur %s un %s." + +msgid "Disable" +msgstr "IzslÄ“gt" + +msgid "Disable Picture in Picture" +msgstr "IzslÄ“gt AtÄ“ls AtÄ“lÄ" + +msgid "Disable background scanning" +msgstr "AtslÄ“gt skenÄ“Å¡anu fonÄ" + +msgid "Disable timer" +msgstr "" + +msgid "Disabled" +msgstr "IzslÄ“gts" + +msgid "Disconnect" +msgstr "Atvienot" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "Rezerve ierakstiem diskÄ (GB)" + +msgid "Display 16:9 content as" +msgstr "AttÄ“lot 16:9 saturu" + +msgid "Display 4:3 content as" +msgstr "AttÄ“lot 4:3 saturu" + +msgid "Display >16:9 content as" +msgstr "AttÄ“lot >16:9 saturu" + +msgid "Display and userinterface" +msgstr "AttÄ“la un lietotÄja interfeiss" + +msgid "Display message before playing next movie" +msgstr "ParÄdÄ«t paziņojumu pirms atskaņo nÄkoÅ¡o filmu" + +# ? +msgid "Display setup" +msgstr "Displeja iestatÄ«jumi" + +msgid "Do not change" +msgstr "NemainÄ«t" + +msgid "Do not record" +msgstr "NerakstÄ«t" + +msgid "Do nothing" +msgstr "NedarÄ«t neko" + +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Vai tieÅ¡Äm vÄ“laties pÄrbaudÄ«t failsistÄ“mu?\n" +"Tas var prasÄ«t daudz laika!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" +"Vai tieÅ¡am vÄ“laties konvertÄ“t failu sistÄ“mu?\n" +"Atgriezties nebÅ«s iespÄ“jams!" + +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Vai tieÅ¡Äm vÄ“laties dzÄ“st %s?" + +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"Vai tieÅ¡Äm vÄ“laties lejuplÄdÄ“t\n" +"spraudni \"%s \"?" + +msgid "Do you really want to exit?" +msgstr "Vai tieÅ¡Äm vÄ“laties iziet?" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" +"Vai tieÅ¡Äm vÄ“laties formatÄ“t iekÄrtu?\n" +"Visi dati uz diska tiks zaudÄ“ti!" + +#, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"Vai tieÅ¡Äm vÄ“laties dzÄ“st\n" +"spraudni \"%s \"?" + +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Vai tieÅ¡Äm vÄ“laties dzÄ“st mapi %s no diska?" + +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Vai tieÅ¡Äm vÄ“laties dzÄ“st grÄmatzÄ«mi %s?" + +msgid "Do you want this?" +msgstr "Vai to vÄ“laties?" + +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Vai vÄ“laties ierakstÄ«t Å¡o kolekciju uz DVD nesÄ“ja?" + +msgid "Do you want to do a service scan?" +msgstr "Vai vÄ“laties meklÄ“t kanÄlus?" + +msgid "Do you want to do another manual service scan?" +msgstr "Vai vÄ“laties manuÄli meklÄ“t citus kanÄlus?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "Vai vÄ“laties lejupielÄdÄ“t imidžu uz %s ?" + +msgid "Do you want to install a channel list?" +msgstr "Vai vÄ“laties uzstÄdÄ«t kanÄlu sarakstu?" + +msgid "Do you want to install the package:\n" +msgstr "Vai vÄ“laties uzstÄdÄ«t pakotni:\n" + +msgid "Do you want to play DVD in drive?" +msgstr "Vai vÄ“laties atskaņot DVD?" + +msgid "Do you want to preview this DVD before burning?" +msgstr "Vai vÄ“laties priekÅ¡skatÄ«t Å¡o DVD pirms rakstÄ«Å¡anas?" + +msgid "Do you want to reboot your receiver?" +msgstr "Vai vÄ“laties pÄrstartÄ“t uztvÄ“rÄ“ju?" + +msgid "Do you want to remove the package:\n" +msgstr "Vai vÄ“laties dzÄ“st pakotni:\n" + +msgid "Do you want to restore your settings?" +msgstr "Vai vÄ“laties atjaunot jÅ«su iestatÄ«jumus?" + +msgid "Do you want to resume this playback?" +msgstr "Vai vÄ“laties turpinÄt atskaņoÅ¡anu?" + +#, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Vai vÄ“laties atjaunot uztvÄ“rÄ“ju uz %s?" + +msgid "Do you want to update your receiver?" +msgstr "Vai vÄ“laties atjaunot uztvÄ“rÄ“ju?" + +msgid "Do you want to upgrade the package:\n" +msgstr "Vai vÄ“laties atjauninÄt pakotni:\n" + +msgid "Don't stop current event but disable coming events" +msgstr "NeapturÄ“t paÅ¡reizÄ“jo notikumu bet izslÄ“gt nÄkamos notikumus" + +#, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "Pabeigts - uzstÄdÄ«ta, atjauninÄta vai dzÄ“sta %d pakotne (%s)" +msgstr[1] "Pabeigts - uzstÄdÄ«tas, atjauninÄtas vai dzÄ“stas %d pakotnes (%s)" +msgstr[2] "Pabeigts - uzstÄdÄ«tas, atjauninÄtas vai dzÄ“stas %d pakotnes (%s)" + +msgid "Download" +msgstr "LejuplÄdÄ“t" + +#, python-format +msgid "Download %s from server" +msgstr "LejuplÄdÄ“t %s no servera" + +msgid "Download .NFI-files for USB-flasher" +msgstr "LejuplÄdÄ“t .NFI-failus USB ielÄdei" + +msgid "Download plugins" +msgstr "LejuplÄdÄ“t spraudņus" + +msgid "Downloadable new plugins" +msgstr "LejuplÄdÄ“jamie jaunie spraudņi" + +msgid "Downloadable plugins" +msgstr "LejuplÄdÄ“jamie spraudņi" + +msgid "Downloading" +msgstr "LejuplÄdÄ“" + +msgid "Downloading plugin information. Please wait..." +msgstr "LejuplÄdÄ“ spraudņu informÄciju. LÅ«dzu uzgaidiet..." + +msgid "Dutch" +msgstr "HolandieÅ¡u" + +msgid "Dynamic contrast" +msgstr "Dinamiskais kontrasts" + +msgid "E" +msgstr "E" + +msgid "EPG" +msgstr "EPG" + +msgid "EPG language selection 1" +msgstr "EPG valodas izvÄ“le 1" + +msgid "EPG language selection 2" +msgstr "EPG valodas izvÄ“le 2" + +msgid "EPG selection" +msgstr "EPG izvÄ“le" + +msgid "EPG settings" +msgstr "EPG iestatÄ«jumi" + +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "KĻŪDA - meklÄ“Å¡ana neizdevÄs (%s)!" + +msgid "East" +msgstr "Austrumi" + +msgid "East limit set" +msgstr "UzstÄdÄ«t austrumu limitu" + +msgid "Edit" +msgstr "Rediģēt" + +msgid "Edit DNS" +msgstr "Rediģēt DNS" + +msgid "Edit bouquets list" +msgstr "Rediģēt buÄ·eÅ¡u sarakstu" + +msgid "Edit chapters of current title" +msgstr "Rediģēt paÅ¡reizÄ“jÄ nosaukuma nodaļas" + +msgid "Edit services list" +msgstr "Rediģēt kanÄlu sarakstu" + +msgid "Edit settings" +msgstr "Rediģēt iestatÄ«jumus" + +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "Rediģēt uztvÄ“rÄ“ja DNS uzstÄdÄ«jumus.\n" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "Rediģēt uztvÄ“rÄ“ja tÄ«kla uzstÄdÄ«jumus.\n" + +msgid "Edit timer" +msgstr "" + +msgid "Edit title" +msgstr "Rediģēt nosaukumu" + +msgid "Edit upgrade source url." +msgstr "Rediģēt atjauninÄÅ¡anas avota adresi." + +msgid "Education/Science/..." +msgstr "IzglÄ«tÄ«ba/ZinÄtne/..." + +msgid "Electronic Program Guide" +msgstr "Elektroniskais Programmu Gids" + +msgid "Enable" +msgstr "AktivizÄ“t" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +msgid "Enable 5V for active antenna" +msgstr "AktivizÄ“t 5V aktÄ«vai antenai" + +msgid "Enable EIT EPG" +msgstr "AktivizÄ“t EIT EPG" + +msgid "Enable MHW EPG" +msgstr "AktivizÄ“t MHW EPG" + +msgid "Enable Netmed EPG" +msgstr "AktivizÄ“t Netmed EPG" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "AktivizÄ“t ViaSat EPG" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +msgid "Enable bouquet selection in multi-EPG" +msgstr "AktivizÄ“t buÄ·eÅ¡u izvÄ“li multi-EPG" + +msgid "Enable freesat EPG" +msgstr "AktivizÄ“t freesat EPG" + +msgid "Enable multiple bouquets" +msgstr "AktivizÄ“t vairÄk-buÄ·eÅ¡u režīmu" + +msgid "Enable parental control" +msgstr "AktivizÄ“t vecÄku kontroli" + +msgid "Enable teletext caching" +msgstr "AktivizÄ“t teleteksta keÅ¡oÅ¡anu" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +msgid "Enabled" +msgstr "AktivizÄ“ts" + +msgid "Encrypted: " +msgstr "Å ifrÄ“ts: " + +msgid "Encryption" +msgstr "Å ifrÄ“Å¡ana" + +msgid "Encryption key" +msgstr "Å ifrÄ“Å¡anas atslÄ“ga" + +msgid "Encryption key type" +msgstr "Å ifrÄ“Å¡anas atslÄ“gas veids" + +msgid "Encryption:" +msgstr "Å ifrÄ“Å¡ana:" + +msgid "End time" +msgstr "Beigu laiks" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "Beigu laiks kad ignorÄ“t neaktivitÄtes miega taimeri" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +msgid "English" +msgstr "Angļu" + +msgid "Enigma2 skin selector" +msgstr "Enigma2 Ädiņas izvÄ“le" + +msgid "Enter main menu..." +msgstr "AtvÄ“rt galveno izvÄ“lni..." + +msgid "Enter pin code" +msgstr "Ievadiet pin kodu" + +msgid "Enter the service pin" +msgstr "Ievadiet kanÄla PIN" + +msgid "Equal to" +msgstr "" + +msgid "Error" +msgstr "Kļūda" + +msgid "Error code" +msgstr "Kļūdas kods" + +msgid "Error executing plugin" +msgstr "Kļūda, palaižot spraudni" + +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Kļūda: %s\n" +"AtkÄrtot?" + +msgid "Estonian" +msgstr "Igauņu" + +msgid "Ethernet network interface" +msgstr "Ethernet tÄ«kla interfeiss" + +msgid "Event font size (relative to skin size)" +msgstr "Notikuma fontu izmÄ“rs (salÄ«dzinÄjumÄ ar Ädiņas izmÄ“ru)" + +msgid "Event view" +msgstr "Notikumu skats" + +msgid "Event view menu" +msgstr "Notikumu skata izvÄ“lne" + +msgid "Everywhere" +msgstr "Jebkur" + +msgid "Exceeds dual layer medium!" +msgstr "PÄrsniedz divslÄņu datu nesÄ“ja ietilpÄ«bu!" + +msgid "Execution finished!!" +msgstr "Izpilde pabeigta!!" + +msgid "Execution progress:" +msgstr "Izpildes norise:" + +msgid "Exif" +msgstr "Exif" + +msgid "Exit" +msgstr "Iziet" + +msgid "Exit EPG" +msgstr "Iziet no EPG" + +msgid "Exit editor" +msgstr "Iziet no redaktora" + +msgid "Exit input device selection." +msgstr "Iziet no ievades iekÄrtas izvÄ“lnes." + +msgid "Exit media player?" +msgstr "Iziet no mediju atskaņotÄja?" + +msgid "Exit mediaplayer" +msgstr "Iziet no mediju atskaņotÄja" + +msgid "Exit movie list" +msgstr "Iziet no filmu saraksta" + +msgid "Exit movie player?" +msgstr "Iziet no filmu atskaņotÄja?" + +msgid "Exit nameserver configuration" +msgstr "Iziet no DNS konfigurÄcijas" + +msgid "Exit network interface list" +msgstr "Iziet no tÄ«kla interfeisu saraksta" + +msgid "Exit network wizard" +msgstr "Iziet no tÄ«kla iestatÄ«Å¡anas vedņa" + +msgid "Exit the wizard" +msgstr "Iziet no vedņa" + +msgid "Expert" +msgstr "LietpratÄ“ja" + +msgid "Extend sleeptimer 15 minutes" +msgstr "PaildzinÄt miega taimeri par 15 minÅ«tÄ“m" + +msgid "Extended Software" +msgstr "Papildus programmatÅ«ra" + +msgid "Extended Software Plugin" +msgstr "PaplaÅ¡inÄtÄs programmatÅ«ras spraudnis" + +msgid "Extended network setup plugin..." +msgstr "TÄ«kla papildus iestatÄ«jumu spraudnis..." + +msgid "Extended setup..." +msgstr "Papildus iestatÄ«jumi..." + +msgid "Extensions" +msgstr "PaplaÅ¡inÄjumi" + +msgid "Extensions management" +msgstr "PaplaÅ¡inÄjumu pÄrvaldÄ«Å¡ana" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "Ä€rÄ“jo subtitru krÄsa" + +msgid "Extra motor options" +msgstr "" + +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "FTA" + +msgid "Factory reset" +msgstr "RÅ«pnÄ«cas iestatÄ«jumi" + +msgid "Failed" +msgstr "NeizdevÄs" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "NeizdevÄs ierakstÄ«t /tmp/positionersetup.log:" + +#, python-format +msgid "Fan %d" +msgstr "Ventilators %d" + +#, python-format +msgid "Fan %d PWM" +msgstr "Ventilatora apgriezieni %d" + +#, python-format +msgid "Fan %d voltage" +msgstr "Ventilatora spriegums %d" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +msgid "Fast" +msgstr "Ä€trs" + +msgid "Fast DiSEqC" +msgstr "Ä€trais DiSEqC" + +msgid "Fast Scan" +msgstr "Ä€trÄ meklÄ“Å¡ana" + +msgid "Fast epoch" +msgstr "Ä€trÄ epoha" + +msgid "Fast forward speeds" +msgstr "PÄrtÄ«Å¡anas Ätrumi" + +msgid "Favourites" +msgstr "FavorÄ«ti" + +msgid "File appears to be busy.\n" +msgstr "Fails Å¡Ä·iet aizņemts.\n" + +msgid "Filesystem check" +msgstr "FailsistÄ“mas pÄrbaude" + +msgid "Final position at" +msgstr "Beigu pozÄ«cija" + +msgid "Final position at index" +msgstr "Beigu pozÄ«cija indeksÄ" + +msgid "Fine movement" +msgstr "PrecÄ«zÄ pÄrvietoÅ¡ana" + +msgid "Finetune" +msgstr "PrecÄ«zÄ regulÄ“Å¡ana" + +msgid "Finished" +msgstr "Pabeigts" + +msgid "Finished configuring your network" +msgstr "TÄ«kla konfigurÄ“Å¡ana pabeigta" + +msgid "Finished restarting your network" +msgstr "TÄ«kla pÄrstartÄ“Å¡ana pabeigta" + +msgid "Finnish" +msgstr "Somu" + +msgid "Fixed" +msgstr "FiksÄ“ts" + +msgid "Flash" +msgstr "IekÅ¡Ä“jÄ atmiņa" + +msgid "Flashing failed" +msgstr "PÄrÅ¡Å«Å¡ana neizdevÄs" + +msgid "Following tasks will be done after you press OK!" +msgstr "Å Ädi uzdevumi tiks veikti pÄ“c tam, kad nospiedÄ«siet OK!" + +msgid "Format" +msgstr "FormatÄ“t" + +msgid "Forward volume keys" +msgstr "PÄradresÄ“t skaļuma taustiņus" + +msgid "Frame size in full view" +msgstr "Kadra izmÄ“rs pilnskatÄ" + +msgid "French" +msgstr "FranÄu" + +msgid "Frequency" +msgstr "Frekvence" + +msgid "Frequency bands" +msgstr "FrekvenÄu joslas" + +msgid "Frequency scan step size(khz)" +msgstr "FrekvenÄu skenÄ“Å¡anas solis (khz)" + +msgid "Frequency steps" +msgstr "FrekvenÄu soļi" + +msgid "Frequency:" +msgstr "Frekvence:" + +msgid "Fri" +msgstr "Pk" + +msgid "Friday" +msgstr "Piektdiena" + +msgid "From :" +msgstr "No :" + +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Frontprocesora versija: %d" + +msgid "Full transparency" +msgstr "PilnÄ«gi caurspÄ«dÄ«gs" + +msgid "Fulview resulution" +msgstr "PilnekrÄna izÅ¡Ä·irtspÄ“ja" + +msgid "Function of OK button" +msgstr "OK pogas funkcija" + +msgid "Further Options" +msgstr "" + +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"Lai lietotu jauno Ädiņu nepiecieÅ¡ams pÄrstartÄ“t GUI,\n" +"vai vÄ“laties pÄrstartÄ“t GUI tagad?" + +msgid "Gateway" +msgstr "VÄrteja" + +msgid "General AC3 delay" +msgstr "VispÄrÄ“jÄ AC3 aizture" + +msgid "General PCM delay" +msgstr "VispÄrÄ“jÄ PCM aizture" + +msgid "Genre" +msgstr "Žanrs" + +msgid "German" +msgstr "VÄcu" + +msgid "Get latest experimental image" +msgstr "IegÅ«t jaunÄko eksperimentÄlo imidžu" + +msgid "Get latest release image" +msgstr "IegÅ«t jaunÄko imidža versiju" + +msgid "Getting plugin information. Please wait..." +msgstr "IegÅ«st spraudņa informÄciju. LÅ«dzu gaidiet..." + +msgid "Go down the list" +msgstr "Iet uz saraksta leju" + +msgid "Go to first movie or last item" +msgstr "Iet uz pirmo vai pÄ“dÄ“jo filmu" + +msgid "Go to first movie or top of list" +msgstr "Iet uz pirmo filmu vai augÅ¡Ä“jo sarakstÄ" + +msgid "Go to first service" +msgstr "Iet uz pirmo kanÄlu" + +msgid "Go to last service" +msgstr "Iet uz pÄ“dÄ“jo kanÄlu" + +msgid "Go to next event" +msgstr "Iet uz nÄkamo notikumu" + +msgid "Go to next page of service" +msgstr "Iet uz nÄkamo kanÄlu lapu" + +msgid "Go to previous event" +msgstr "Iet uz iepriekÅ¡Ä“jo notikumu" + +msgid "Go to previous page of service" +msgstr "Iet uz iepriekÅ¡Ä“jo kanÄlu lapu" + +msgid "Go up the list" +msgstr "Iet uz saraksta augÅ¡u" + +msgid "Goto" +msgstr "Iet uz" + +msgid "Goto 0" +msgstr "Iet uz 0" + +msgid "Goto :" +msgstr "Iet uz :" + +msgid "Goto X" +msgstr "Iet uz X" + +msgid "Goto index position" +msgstr "Iet uz indeksa pozÄ«ciju" + +msgid "Goto next day of events" +msgstr "Iet uz nÄkoÅ¡o dienu notikumiem" + +msgid "Goto next page of events" +msgstr "Iet uz nÄkoÅ¡o notikumu lapu" + +msgid "Goto position" +msgstr "Iet uz pozÄ«ciju" + +msgid "Goto previous day of events" +msgstr "Iet uz iepriekÅ¡Ä“jo dienu notikumiem" + +msgid "Goto previous page of events" +msgstr "Iet uz iepriekÅ¡Ä“jo notikumu lapu" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "Iet uz X kalibrÄ“Å¡anu" + +msgid "GraphMultiEpg Settings" +msgstr "GraphMultiEpg iestatÄ«jumi" + +msgid "Graphical Multi EPG" +msgstr "Grafiskais daudzkanÄlu EPG" + +msgid "Greek" +msgstr "GrieÄ·u" + +msgid "Green boost" +msgstr "ZaÄ¼Ä piesÄtinÄjums" + +msgid "Guard interval" +msgstr "Guard intervÄls" + +msgid "HD list" +msgstr "HD saraksts" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "IeslÄ“gt gaidstÄvi no TV" + +msgid "Handle wakeup from TV" +msgstr "IeslÄ“gt pamoÅ¡anos no TV" + +msgid "Hard disk" +msgstr "Cietais disks" + +msgid "Hard disk setup" +msgstr "CietÄ diska iestatÄ«jumi" + +msgid "Hard disk standby after" +msgstr "CietÄ diska gaidstÄve pÄ“c" + +msgid "Harddisk" +msgstr "Cietais disks" + +msgid "Hardware: " +msgstr "AparatÅ«ra:" + +msgid "Hebrew" +msgstr "Ebreju" + +msgid "Helps setting up your dish" +msgstr "PalÄ«dzÄ“s ietstÄ«t jÅ«su antenu" + +msgid "Hidden network" +msgstr "Neredzams tÄ«kls" + +msgid "Hide CI messages" +msgstr "SlÄ“pt CI paziņojumus" + +msgid "Hide channel list in radio mode" +msgstr "SlÄ“pt kanÄlu sarakstu radio režīmÄ" + +msgid "Hide known extensions" +msgstr "SlÄ“pt zinÄmos paplaÅ¡inÄjumus" + +msgid "Hide number markers" +msgstr "SlÄ“pt numurus" + +msgid "Hide player" +msgstr "SlÄ“pt atskaņotÄju" + +msgid "Hide zap errors" +msgstr "SlÄ“pt noskaņoÅ¡anas kļūdas" + +msgid "Hierarchy info" +msgstr "Hierarhijas info" + +msgid "Hierarchy information" +msgstr "Hierarhijas informÄcija" + +msgid "High bitrate support" +msgstr "Augsta bitreita atbalsts" + +msgid "Hold screen" +msgstr "NoturÄ“t ekrÄnu" + +msgid "Hold till locked" +msgstr "NoturÄ“t lÄ«dz noenkurojies" + +msgid "Home" +msgstr "MÄjas" + +msgid "Horizontal" +msgstr "HorizontÄlÄ" + +msgid "Horizontal turning speed" +msgstr "HorizontÄlais noskaņoÅ¡anas Ätrums" + +msgid "How many minutes do you want to record?" +msgstr "Cik minÅ«Å¡u vÄ“laties ierakstÄ«t?" + +msgid "Hue" +msgstr "Tonis" + +msgid "Hungarian" +msgstr "UngÄru" + +msgid "IP address" +msgstr "IP adrese" + +msgid "ISO file is too large for this filesystem!" +msgstr "ISO fails ir par lielu Å¡ai failsistÄ“mai!" + +msgid "ISO path" +msgstr "ISO ceļš" + +msgid "Icons" +msgstr "Ikona" + +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"Ja jÅ«s Å¡o redzat, kaut kas nav kÄrtÄ«bÄ ar\n" +"SCART savienojumu. Spiediet OK, lai atgrieztos." + +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"Ja JÅ«su TV ir ieslÄ“gta spilgtuma vai kontrasta uzlaboÅ¡ana, deaktivizÄ“jiet to. Ja ir iestatÄ«jums ar nosaukumu \"dinamiskÄ \", lietojiet standarta iestatÄ«jumu. NoregulÄ“jiet fona lÄ«meni lÄ«dz jums tÄ«kamai vÄ“rtÄ«bai. NoregulÄ“jiet iespÄ“jami zemu TV kontrastu.\n" +"Tad noregulÄ“jiet iespÄ“jami zemu spilgtuma iestatÄ«jumu, bet pÄrliecinieties, ka divi apakÅ¡Ä“jie pelÄ“kÄ toņi ir izÅ¡Ä·irami.\n" +"PaÅ¡reiz nepievÄ“rsiet uzmanÄ«bu spilgtajiem toņiem. Tie tiks uzstÄdÄ«ti nÄkamajÄ solÄ«.\n" +"Ja esat apmierinÄts ar rezultÄtu, spiediet OK." + +msgid "Image: " +msgstr "Imidžs:" + +msgid "Immediate shutdown" +msgstr "TÅ«lÄ«tÄ“ja izslÄ“gÅ¡ana" + +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "Lai uzsÄktu ierakstu pÄ“c taimera, TV tika pÄrslÄ“gts uz ierakstÄmo kanÄlu!\n" + +msgid "In progress" +msgstr "Izpilda" + +msgid "Inactivity Sleeptimer" +msgstr "NeaktivitÄtes miega taimeris" + +msgid "Include AIT in http streams" +msgstr "Ietvert AIT http plÅ«smÄs" + +msgid "Include ECM in http streams" +msgstr "Ietvert ECM http plÅ«smÄs" + +msgid "Include EIT in http streams" +msgstr "Ietvert EIT http plÅ«smÄs" + +msgid "Incorrect type service for PiP!" +msgstr "" + +msgid "Increased voltage" +msgstr "PalielinÄt spriegumu" + +msgid "Index" +msgstr "Indekss" + +msgid "Index allocated:" +msgstr "Indekss pieÅ¡Ä·irts:" + +msgid "Info" +msgstr "Info" + +msgid "Info bar" +msgstr "Infojosla" + +msgid "Info bar timeout" +msgstr "Infojoslas noildze" + +msgid "Infobar frontend data source" +msgstr "" + +msgid "Information" +msgstr "InformÄcija" + +msgid "Init" +msgstr "Inic" + +msgid "Initial fast forward speed" +msgstr "SÄkotnÄ“jais pÄrtÄ«Å¡anas Ätrums" + +msgid "Initial location in new timers" +msgstr "SÄkotnÄ“jÄ atraÅ¡anÄs vieta jaunam taimerim" + +msgid "Initial lock ratio" +msgstr "SÄkotnÄ“jÄ noenkuroÅ¡anÄs attiecÄ«ba" + +msgid "Initial rewind speed" +msgstr "SÄkotnÄ“jais attÄ«Å¡anas Ätrums" + +msgid "Initial signal quality" +msgstr "SÄkotnÄ“jÄ signÄla kvalitÄte" + +msgid "Initial signal quality:" +msgstr "SÄkotnÄ“jÄ signÄla kvalitÄte:" + +msgid "Initialization" +msgstr "InicializÄcija" + +msgid "Initialize" +msgstr "InicializÄ“t" + +msgid "Initializing storage device..." +msgstr "InicializÄ“t ieraksta ierÄ«ci..." + +msgid "Input" +msgstr "Ievade" + +msgid "Input device setup" +msgstr "Ievades ierÄ«ces iestatÄ«jumi" + +msgid "Input devices" +msgstr "Ievades ierÄ«ces" + +msgid "Install" +msgstr "UzstÄdÄ«t" + +msgid "Install a new image with a USB stick" +msgstr "UzstÄdÄ«t jaunu imidžu no USB zibatmiņas" + +msgid "Install a new image with your web browser" +msgstr "UzstÄdÄ«t jaunu imidžu no tÄ«mekļa pÄrlÅ«ka" + +msgid "Install channel list" +msgstr "UzstÄdÄ«t kanÄlu srakstu" + +msgid "Install extensions" +msgstr "" + +msgid "Install extensions." +msgstr "UzstÄdÄ«t paplaÅ¡inÄjumus." + +msgid "Install local extension" +msgstr "UzstÄdÄ«t lokÄlo paplaÅ¡inÄjumu" + +msgid "Install picons on" +msgstr "UzstÄdÄ«t pikonas" + +msgid "Install softcam" +msgstr "UzstÄda softcam" + +msgid "Installation has completed." +msgstr "UzstÄdÄ«Å¡ana pabeigta." + +msgid "Installation or removal has completed." +msgstr "UzstÄdÄ«Å¡ana vai noņemÅ¡ana pabeigta." + +msgid "Installing" +msgstr "UzstÄdÄ«Å¡ana" + +msgid "Installing software..." +msgstr "UzstÄda programmatÅ«ru..." + +msgid "Instant recording location" +msgstr "SÄkotnÄ“jÄ ieraksta vieta" + +msgid "Instant recording..." +msgstr "TÅ«lÄ«tÄ“js ieraksts..." + +msgid "Interface: " +msgstr "Interfeiss: " + +msgid "Intermediate" +msgstr "VidÄ“js" + +msgid "Internal flash" +msgstr "IekÅ¡Ä“jÄ atmiņa" + +msgid "Internal hdd only" +msgstr "Tikai iekÅ¡Ä“jais hdd" + +msgid "Interval between keys when repeating:" +msgstr "IntervÄls starp taustiņiem, kad atkÄrtojas:" + +#, python-format +msgid "Invalid directory selected: %s" +msgstr "IzvÄ“lÄ“ta nepareiza mape: %s" + +msgid "Invalid location" +msgstr "NederÄ«ga vieta" + +msgid "Invalid transponder data" +msgstr "" + +msgid "Inversion" +msgstr "Inversija" + +msgid "Invert" +msgstr "InvertÄ“t" + +msgid "Ipkg" +msgstr "Ipkg" + +msgid "Is this setting ok?" +msgstr "Vai Å¡ie iestatÄ«jumi der?" + +msgid "Is this video mode ok?" +msgstr "Vai Å¡is video režīms der?" + +msgid "Italian" +msgstr "ItÄļu" + +msgid "Items per page " +msgstr "Daudzums lapÄ" + +msgid "Items per page for list screen" +msgstr "Daudzums lapÄ saraksta logÄ" + +msgid "Job overview" +msgstr "Darbu skats" + +msgid "Jump to beginning of list" +msgstr "PÄrlekt uz saraksta sÄkumu" + +msgid "Jump to end of list" +msgstr "PÄrlÄ“kt uz saraksta beigÄm" + +msgid "Jump to next marked position" +msgstr "PÄrlÄ“kt uz nÄkamo iezÄ«mÄ“to pozÄ«ciju" + +msgid "Jump to previous marked position" +msgstr "PÄrlÄ“kt uz iepriekÅ¡Ä“jo iezÄ«mÄ“to pozÄ«ciju" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +msgid "Just scale" +msgstr "VienkÄrÅ¡i mÄ“rogot" + +msgid "Keep service" +msgstr "PaturÄ“t kanÄlu" + +msgid "Kernel version: " +msgstr "Kerneļa versija:" + +msgid "Keyboard" +msgstr "KlaviatÅ«ra" + +msgid "Keyboard map" +msgstr "KlaviatÅ«ras izkÄrtojums" + +msgid "Keyboard setup" +msgstr "KlaviatÅ«ras iestatÄ«jumi" + +msgid "LAN adapter" +msgstr "TÄ«kla adapteris" + +msgid "LAN connection" +msgstr "TÄ«kla savienojums" + +msgid "LNB" +msgstr "LNB" + +msgid "Language" +msgstr "Valoda" + +msgid "Language selection" +msgstr "Valodas izvÄ“le" + +msgid "Last config" +msgstr "PÄ“dÄ“jie iestatÄ«jumi" + +msgid "Last speed" +msgstr "PÄ“dÄ“jais Ätrums" + +msgid "Last upgrade: " +msgstr "PÄ“dÄ“jÄ atjaunoÅ¡ana:" + +msgid "Latest Commits" +msgstr "PÄ“dÄ“jie kommiti" + +msgid "Latitude" +msgstr "Platums" + +msgid "Latvian" +msgstr "LatvieÅ¡u" + +msgid "Leave DVD player?" +msgstr "Iziet no DVD atskaņotÄja?" + +msgid "Left" +msgstr "Kreisais" + +msgid "Left from servicename" +msgstr "Pa kreisi no kanÄla nosaukuma" + +msgid "Leisure hobbies" +msgstr "BrÄ«vÄ laika hobiji" + +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "PlatekrÄns" + +msgid "Letterbox zoom" +msgstr "PlatekrÄna tuvinÄjums" + +msgid "Limit character set for recording filenames" +msgstr "LimitÄ“t rakstzÄ«mju lietoÅ¡anu ierakstÄmajiem failu vÄrdiem" + +msgid "Limit east" +msgstr "Austrumu limits" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "LimitÄ“t rakstzÄ«mju lietoÅ¡anu ierakstÄmajiem failu vÄrdiem ar (7 bit) ascii. Tas nodroÅ¡ina savietojamÄ«bu ar operÄ“tÄjsistÄ“mÄm vai failu sistÄ“mÄs ar ierobežotÄm rakstzÄ«mju kopÄm." + +msgid "Limit west" +msgstr "Rietumu limits" + +msgid "Limits cancelled" +msgstr "Limiti atcelti" + +msgid "Limits enabled" +msgstr "Limiti iespÄ“joti" + +msgid "Limits off" +msgstr "Limiti izslÄ“gti" + +msgid "Limits on" +msgstr "Limiti ieslÄ“gti" + +msgid "Link quality:" +msgstr "Saites kvalitÄte:" + +msgid "Link:" +msgstr "Saite:" + +msgid "Linked titles with a DVD menu" +msgstr "SaistÄ«tie nosaukumi ar DVD izvÄ“lni" + +msgid "List EPG functions..." +msgstr "EPG funkciju saraksts..." + +msgid "List available networks" +msgstr "SkatÄ«t pieejamos tÄ«klus" + +msgid "List mode" +msgstr "Saraksta režīms" + +msgid "List of storage devices" +msgstr "Atmiņas ierÄ«Äu saraksts" + +msgid "List type" +msgstr "Saraksta tips" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "Saraksta versija %d, atrasts %d kanÄls" +msgstr[1] "Saraksta versija %d, atrasti %d kanÄli" +msgstr[2] "Saraksta versija %d, atrasti %d kanÄli" + +msgid "Listen to the radio..." +msgstr "KlausÄ«ties radio..." + +msgid "Lists reloaded!" +msgstr "" + +msgid "Lithuanian" +msgstr "LietuvieÅ¡u" + +msgid "Load" +msgstr "IelÄdÄ“t" + +msgid "Load Length of Movies in Movielist" +msgstr "IelÄdÄ“t filmu sarakstÄ filmu garumus" + +msgid "Load length of movies in movie list" +msgstr "IelÄdÄ“t filmu sarakstÄ filmu garumus" + +msgid "Load playlist" +msgstr "IelÄdÄ“t repertuÄru" + +msgid "Local network" +msgstr "LokÄlais tÄ«kls" + +msgid "Location" +msgstr "AtraÅ¡anÄs vieta" + +msgid "Location for instant recordings" +msgstr "Ierakstu atraÅ¡anÄs vieta" + +msgid "Lock ratio" +msgstr "NoenkuroÅ¡anÄs attiecÄ«ba" + +msgid "Lock:" +msgstr "Noenkuroties:" + +msgid "Log results to harddisk" +msgstr "ŽurnalÄ“t rezultÄtus uz cietÄ diska" + +msgid "Long filenames" +msgstr "Garie failu vÄrdi" + +msgid "Long key press" +msgstr "IlgstoÅ¡a taustiņa nospieÅ¡ana" + +msgid "Longitude" +msgstr "Garums" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "LuksemburgieÅ¡u" + +msgid "MMC card" +msgstr "MMC karte" + +msgid "MORE" +msgstr "VAIRÄ€K" + +msgid "Main menu" +msgstr "GalvenÄ izvÄ“lne" + +msgid "Maintain old EPG data for" +msgstr "SaglabÄt vecos EPG datus" + +msgid "Make this mark an 'in' point" +msgstr "PadarÄ«t Å¡o zÄ«mi par 'ieejas' punktu" + +msgid "Make this mark an 'out' point" +msgstr "PadarÄ«t Å¡o zÄ«mi par 'izejas' punktu" + +msgid "Make this mark just a mark" +msgstr "PadarÄ«t Å¡o atzÄ«mi vienkÄrÅ¡i par atzÄ«mi" + +msgid "Manage extensions" +msgstr "PÄrvaldÄ«t paplaÅ¡inÄjumus" + +msgid "Manage your receiver's software" +msgstr "PÄrvaldÄ«t uztvÄ“rÄ“ja programmatÅ«ru" + +msgid "Manual" +msgstr "" + +msgid "Manual Scan" +msgstr "ManuÄlÄ meklÄ“Å¡ana" + +msgid "Manual configuration" +msgstr "ManuÄlÄ konfigurÄcija" + +msgid "Manual scan" +msgstr "ManuÄlÄ meklÄ“Å¡ana" + +msgid "Manual transponder" +msgstr "ManuÄls transponderis" + +msgid "Manufacturer" +msgstr "RažotÄjs" + +msgid "Margin after recording (minutes)" +msgstr "Atstarpe pÄ“c ieraksta (minÅ«tÄ“s)" + +msgid "Margin before recording (minutes)" +msgstr "Atstarpe pirms ieraksta (minÅ«tÄ“s)" + +msgid "Max memory positions" +msgstr "" + +msgid "Max. bitrate: " +msgstr "Max. bitreits:" + +msgid "Media player" +msgstr "Mediju atskaņotÄjs" + +msgid "Media scanner" +msgstr "Mediju skanÄ“tÄjs" + +msgid "Medium is not a writeable DVD!" +msgstr "Datu nesÄ“js nav ierakstÄms DVD!" + +msgid "Medium is not empty!" +msgstr "Datu nesÄ“js nav tukÅ¡s!" + +msgid "Memory" +msgstr "Atmiņa" + +msgid "Memory index" +msgstr "Atmiņas indekss" + +msgid "Menu" +msgstr "IzvÄ“lne" + +msgid "Message" +msgstr "Paziņojums" + +msgid "Message..." +msgstr "Paziņojums..." + +#, python-format +msgid "Minimum age %d years" +msgstr "MinimÄlais vecums %d gadi" + +msgid "Minimum send interval" +msgstr "MinimÄlais sÅ«tÄ«Å¡anas intervÄls" + +msgid "Missing " +msgstr "TrÅ«kst" + +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Režīms" + +msgctxt "Video output mode" +msgid "Mode" +msgstr "Režīms" + +msgid "Model: " +msgstr "Modelis: " + +msgid "Modulation" +msgstr "ModulÄcija" + +msgid "Modulator" +msgstr "Modulators" + +msgid "Mon" +msgstr "Pr" + +msgid "Mon-Fri" +msgstr "Pr-Pk" + +msgid "Monday" +msgstr "Pirmdiena" + +msgid "Mosquito noise reduction" +msgstr "Mosquito trokšņu slÄpÄ“Å¡ana" + +msgid "Mount" +msgstr "MontÄ“t" + +msgid "Move" +msgstr "PÄrvietot" + +msgid "Move PiP to main picture" +msgstr "PÄrvietot PiP uz galveno attÄ“lu" + +msgid "Move Picture in Picture" +msgstr "PÄrvietot attÄ“lu attÄ“lÄ" + +msgid "Move east" +msgstr "Griezt uz austrumiem" + +msgid "Move to other directory" +msgstr "Griezt otrÄ virzienÄ" + +msgid "Move to position X" +msgstr "Griezt uz pozÄ«ciju X" + +msgid "Move west" +msgstr "Griezt uz rietumiem" + +msgid "Moved to position 0" +msgstr "Griezt uz pozÄ«ciju 0" + +msgid "Moved to position at index" +msgstr "Griezt uz pozÄ«ciju indeksÄ" + +msgid "Movement" +msgstr "KustÄ«ba" + +msgid "Movie List Configuration" +msgstr "Filmu saraksta konfigurÄcija" + +msgid "Movie Selection" +msgstr "Filmu izvÄ“le" + +msgid "Movie list configuration" +msgstr "Filmu saraksta konfigurÄcija" + +msgid "Movie location" +msgstr "Filmu atraÅ¡anÄs vieta" + +msgid "Movie selection" +msgstr "Filmu izvÄ“le" + +msgid "Movie/Drama" +msgstr "Filma/DrÄma" + +msgid "Movielist menu" +msgstr "Filmu saraksta izvÄ“lne" + +msgid "Moving" +msgstr "Griezt" + +msgid "Moving east ..." +msgstr "Griezt uz austrumiem..." + +msgid "Moving to position" +msgstr "Griezt uz pozÄ«ciju" + +msgid "Moving west ..." +msgstr "Griezt uz rietumiem..." + +msgid "Multi EPG" +msgstr "DaudzkanÄlu EPG" + +msgid "Multi-EPG bouquet selection" +msgstr "DaudzkanÄlu EPG buÄ·etes izvÄ“le" + +msgid "Multimedia" +msgstr "Multimedija" + +msgid "Multiple service support" +msgstr "DaudzkanÄlu atbalsts" + +msgid "Multiplex" +msgstr "Multiplex" + +msgid "Multisat" +msgstr "Daudzpavadoņu" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "MÅ«zika/Balets/Dejas" + +msgid "Mute" +msgstr "KlusÄ“t" + +msgid "N/A" +msgstr "N/A" + +msgid "NEXT" +msgstr "NÄ€KAMAIS" + +msgid "NFI image flashing" +msgstr "NFI imidža pÄrÅ¡Å«Å¡ana" + +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "NFI imidža parÅ¡Å«Å¡ana pabeigta. Spiediet dzelteno pogu, lai pÄrstartÄ“tu!" + +msgid "NIM" +msgstr "NIM" + +msgid "NOW" +msgstr "PAÅ REIZ" + +msgid "NTSC" +msgstr "NTSC" + +msgid "Name" +msgstr "Nosaukums" + +msgid "Nameserver" +msgstr "DomÄ“na vÄrdu serveris" + +#, python-format +msgid "Nameserver %d" +msgstr "DomÄ“na vÄrdu serveris %d" + +msgid "Nameserver settings" +msgstr "DNS iestatÄ«jumi" + +msgid "Nameserver setup" +msgstr "DNS iestatÄ«Å¡ana" + +msgid "Namespace" +msgstr "Namespace" + +msgid "Netmask" +msgstr "TÄ«kla maska" + +msgid "Network" +msgstr "TÄ«kls" + +msgid "Network ID" +msgstr "TÄ«kla ID" + +msgid "Network configuration..." +msgstr "TÄ«kla konfigurÄcija..." + +msgid "Network mount" +msgstr "TÄ«kla montÄ“jumi" + +#, python-format +msgid "Network mount %s" +msgstr "TÄ«kla montÄ“jums %s" + +msgid "Network name (SSID)" +msgstr "TÄ«kla vÄrds (SSID)" + +msgid "Network scan" +msgstr "TÄ«kla meklÄ“Å¡ana" + +msgid "Network setup" +msgstr "TÄ«kla iestatÄ«jumi" + +msgid "Network test" +msgstr "TÄ«kla pÄrbaude" + +msgid "Network test..." +msgstr "TÄ«kla pÄrbaude..." + +msgid "Network test: " +msgstr "TÄ«kla pÄrbaude:" + +msgid "Network wizard" +msgstr "TÄ«kla vednis" + +msgid "Network:" +msgstr "TÄ«kls:" + +msgid "New" +msgstr "Jauns" + +msgid "New PIN" +msgstr "Jauns PIN" + +msgid "New version:" +msgstr "Jauna versija:" + +msgid "News Current Affairs" +msgstr "Jaunumi AktualitÄtes" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "NÄkamais" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "NÄkamais" + +msgid "No" +msgstr "NÄ“" + +msgid "No (supported) DVDROM found!" +msgstr "DVDROM ierÄ«ce netika atrasta (atbalstÄ«ta)!" + +msgid "No Connection" +msgstr "Nav savienojuma" + +msgid "No HDD found or HDD not initialized!" +msgstr "Nav atrasts vai inicializÄ“ts cietais disks!" + +msgid "No backup needed" +msgstr "DublÄ“jumkopija nav neiecieÅ¡ama" + +msgid "No cable tuner found!" +msgstr "Kabeļu uztvÄ“rÄ“js nav atrasts!" + +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Nav datu uz transpondera!\n" +"(PAT lasÄ«Å¡anas noildze)" + +msgid "No delay" +msgstr "Nav aiztures" + +msgid "No description available." +msgstr "Apraksts nav pieejams." + +msgid "No details for this image file" +msgstr "Nav informÄcijas par Å¡o imidža failu" + +msgid "No displayable files on this medium found!" +msgstr "Å inÄ« datu nesÄ“jÄ nav atrasti attÄ“lojami faili!" + +msgid "No event info found, recording indefinitely." +msgstr "Nav atrasta informÄcija par notikumiem, ieraksts uz nenoteiktu laiku." + +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "PÄrtÄ«Å¡ana paÅ¡reiz nav iespÄ“jama.. bet varat lietot ciparu taustiņus lai pÄrlektu uz priekÅ¡u/atpakaļ!" + +msgid "No free index available" +msgstr "Nav pieiejami brÄ«vi indeksi" + +msgid "No free tuner!" +msgstr "Nav brÄ«va uztvÄ“rÄ“ja!" + +msgid "No network connection available." +msgstr "TÄ«kla savienojums nav pieejams." + +msgid "No networks found" +msgstr "TÄ«kli nav atrasti" + +msgid "No new plugins found" +msgstr "Nav atrasti jauni sparudņi" + +msgid "No positioner capable frontend found." +msgstr "Nav atrasts pozicionierim piemÄ“rots pavadonis." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "Nav nokonfigurÄ“tu pavadoņu. LÅ«dzu pÄrbaudiet uztvÄ“rÄ“ja uzstÄdÄ«jumus." + +msgid "No service" +msgstr "Nav kanÄla" + +msgid "No services/providers selected" +msgstr "Nav izvÄ“lÄ“ti kanÄli/operatori" + +msgid "No standby" +msgstr "Nav gaidstÄves" + +msgid "No suitable sat tuner found!" +msgstr "Nav atrasts piemÄ“rots sat uztvÄ“rÄ“js!" + +msgid "No tags are set on these movies." +msgstr "Å Ä«m filmÄm nav pievienotas etiÄ·etes" + +msgid "No timeout" +msgstr "Nav noildzes" + +msgid "No to all" +msgstr "NÄ“ visiem" + +msgid "No transparency" +msgstr "NecaurspÄ«dÄ«gs" + +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "UztvÄ“rÄ“js nav konfigurÄ“ts lietoÅ¡anai ar diseqc pozicionieri!" + +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Nav aktÄ«va uztvÄ“rÄ“ja!\n" +"LÅ«dzu iestatiet uztvÄ“rÄ“ju pirms sÄkat meklÄ“t kanÄlus." + +msgid "No updates available" +msgstr "Atjaunojumi nav pieejami" + +msgid "No updates available. Please try again later." +msgstr "Atjaunojumi nav pieejami. LÅ«dzu mÄ“Ä£iniet vÄ“lÄk." + +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"DerÄ«gs kanÄla PIN netika atrasts!\n" +"Vai vÄ“laties tulÄ«t mainÄ«t kanÄla PIN?\n" +"Ja teiksiet 'NÄ’', kanÄla aizsardzÄ«ba paliks neaktÄ«va!" + +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"DerÄ«gi PIN iestatÄ«jumi netika atrasti!\n" +"Vai vÄ“laties tulÄ«t mainÄ«t PIN iestatÄ«jumus?\n" +"Ja teiksiet 'NÄ’', aizsardzÄ«bas iestatÄ«jumi paliks neaktÄ«vi!" + +msgid "No wireless networks found! Searching..." +msgstr "Bezvadu tÄ«kli nav atrasti! MeklÄ“..." + +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"Netika atrasts strÄdÄjoÅ¡s lokÄlÄ tÄ«kla adapteris.\n" +"LÅ«dzu pÄrliecinieties, ka ir pievienots tÄ«kla kabelis un tÄ«kls ir pareizi uzstÄdÄ«ts." + +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"Netika atrasts strÄdÄjoÅ¡s bezvadu tÄ«kla adapteris.\n" +"LÅ«dzu pÄrliecinieties, ka ir pievienota saderÄ«ga bezvadu tÄ«kla ierÄ«ce un tÄ«kls ir pareizi uzstÄdÄ«ts." + +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"Netika atrasts strÄdÄjoÅ¡s bezvadu tÄ«kls.\n" +" LÅ«dzu pÄrliecinieties, ka ir pievienota saderÄ«ga bezvadu tÄ«kla ierÄ«ce vai aktivizÄ“jiet lokÄlÄ tÄ«kla interfeisu." + +msgid "No, but restart from begin" +msgstr "NÄ“, bet pÄrstartÄ“t no sÄkuma" + +msgid "No, do nothing." +msgstr "NÄ“, nedarÄ«t neko" + +msgid "No, just start my receiver" +msgstr "NÄ“, tikai startÄ“t uztvÄ“rÄ“ju" + +msgid "No, never" +msgstr "NÄ“, nekad" + +msgid "None" +msgstr "Nav" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "NelineÄri mÄ“rogot" + +msgid "Normal mode" +msgstr "NormÄls režīms" + +msgid "North" +msgstr "Ziemeļi" + +msgid "Norwegian" +msgstr "NorvÄ“Ä£u" + +msgid "Not associated" +msgstr "Nav pieÅ¡Ä·irts" + +msgid "Not configured" +msgstr "" + +#, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Nav pietiekami vietas uz diska. LÅ«dzu atbrÄ«vot vietu uz diska un mÄ“Ä£inÄt vÄ“lreiz. (%d MB ir nepiecieÅ¡ami, bet %d MB pieejami)" + +msgid "Nothing connected" +msgstr "" + +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Nav ko meklÄ“t!\n" +"LÅ«dzu iestatiet uztvÄ“rÄ“ju pirms sÄkat meklÄ“t kanÄlus." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "PaÅ¡reiz" + +msgid "Now playing" +msgstr "Atskaņo" + +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Tagad lietojiet kontrasta iestatÄ«Å¡anu lai palielinÄtu fona spilgtumu cik vien iespÄ“jams, bet pÄrliecinieties, ka divi spilgtÄko toņu lÄ«meņi joprojÄm ir izÅ¡Ä·irami. Ja esat to izdarÄ«juÅ¡i, spiediet OK." + +msgid "OK" +msgstr "OK" + +msgid "OK, guide me through the upgrade process" +msgstr "OK, pavadi mani atjauninÄÅ¡anas procesÄ" + +msgid "ONID" +msgstr "ONID" + +msgid "OSD name request" +msgstr "OSD nosaukuma pieprasÄ«jums" + +msgid "OSD settings" +msgstr "OSD iestatÄ«jumi" + +msgid "OSD transparency" +msgstr "OSD caurspÄ«dÄ«gums" + +msgid "Off" +msgstr "IzslÄ“gts" + +msgid "Offline decode delay (ms)" +msgstr "Bezsaistes dekodÄ“Å¡anas aizture (ms)" + +msgid "Ok" +msgstr "Ok" + +msgid "On" +msgstr "IeslÄ“gts" + +msgid "On end of movie" +msgstr "Uz filmas beigÄs" + +msgid "On end of movie (as menu)" +msgstr "" + +msgid "One" +msgstr "Viens" + +msgid "Only extensions." +msgstr "Tikai paplaÅ¡inÄjumi." + +msgid "Only free scan" +msgstr "Tikai nekodÄ“tos" + +msgid "Open service list" +msgstr "AtvÄ“rt kanÄlu sarakstu" + +msgid "Open the movie list" +msgstr "AtvÄ“rt filmu sarakstu" + +msgid "Orbital position" +msgstr "OrbitÄlajÄ pozÄ«cija" + +msgid "Original" +msgstr "OriÄ£inÄls" + +msgid "Other" +msgstr "Cits" + +msgid "Output" +msgstr "Izeja" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "PÄrrakstÄ«t konfigurÄcijas failus atjaunojot programmatÅ«ru?" + +msgid "Overwrite configuration files?" +msgstr "PÄrrakstÄ«t konfigurÄcijas failus?" + +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "PCR PID" + +msgid "PIDs" +msgstr "PIDi" + +msgid "PIN code needed" +msgstr "VajadzÄ«gs PIN kods" + +msgid "PLP ID" +msgstr "PLP ID" + +msgid "PMT PID" +msgstr "PMT PID" + +msgid "Package list update" +msgstr "Pakotņu saraksta atjauninÄÅ¡ana" + +msgid "Packet management" +msgstr "Pakotņu pÄrvaldÄ«ba" + +msgid "Packet manager" +msgstr "Pakotņu pÄrvaldnieks" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +msgid "Pan&scan" +msgstr "Pan&Scan" + +msgid "Parent directory" +msgstr "IepriekÅ¡Ä“jÄ mape" + +msgid "Parental control" +msgstr "VecÄku kontrole" + +msgid "Parental control services editor" +msgstr "VecÄku kontroles kanÄlu redaktors" + +msgid "Parental control setup" +msgstr "VecÄku kontroles iestatÄ«jumi" + +msgid "Parental control type" +msgstr "VecÄku kontroles veids" + +msgid "Password" +msgstr "Parole" + +msgid "Pause" +msgstr "Pauze" + +msgid "Pause movie at end" +msgstr "ApturÄ“t filmas beigÄs" + +msgid "Pause playback" +msgstr "ApturÄ“t atskaņoÅ¡anu" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "Procenti kreisÄ pusÄ“" + +msgid "Percentage right" +msgstr "Procenti labÄ pusÄ“" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "Neatgriezeniski dzÄ“st visus ierakstus miskastÄ“?" + +msgid "Permanently remove all deleted items" +msgstr "Neatgriezeniski dzÄ“st visus dzÄ“stos" + +msgid "Persian" +msgstr "PersieÅ¡u" + +msgid "Phone number" +msgstr "TÄlruņa numurs" + +msgid "PiP setup" +msgstr "PiP iestatÄ«jumi" + +msgid "Picon" +msgstr "Pikona" + +msgid "Picon and service name" +msgstr "Pikona un kanÄla nosaukums" + +msgid "Picture player" +msgstr "AttÄ“lu rÄdÄ«tÄjs" + +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Pillarbox" + +msgid "Pilot" +msgstr "Pilot" + +msgid "Play" +msgstr "Atskaņot" + +msgid "Play DVD" +msgstr "Atskaņot DVD" + +msgid "Play audio in background" +msgstr "Atskaņot audio fonÄ" + +msgid "Play audio-CD..." +msgstr "Atskaņot mÅ«zikas CD..." + +msgid "Play back media files" +msgstr "Atskaņot mediju failus" + +msgid "Play entry" +msgstr "Atskaņot ierakstu" + +msgid "Play from next mark or playlist entry" +msgstr "Atskaņot no nÄkamÄs iezÄ«mes vai repertuÄra ieraksta" + +msgid "Play from previous mark or playlist entry" +msgstr "Atskaņot no iepriekÅ¡Ä“jÄs iezÄ«mes vai repertuÄra ieraksta" + +msgid "Play music..." +msgstr "Atskaņot mÅ«ziku..." + +msgid "Play next" +msgstr "Atskaņot nÄkoÅ¡o" + +msgid "Play next (return to movie list)" +msgstr "Atskaņot nÄkoÅ¡o (atgriesties filmu sarakstÄ)" + +msgid "Play next (return to previous service)" +msgstr "Atskaņot nÄkoÅ¡o (atgriezties iepriekÅ¡Ä“jÄ kanÄlÄ)" + +msgid "Play previous" +msgstr "Atskaņot iepriekÅ¡Ä“jo" + +msgid "Play recorded movies..." +msgstr "Atskaņot ierakstÄ«tÄs filmas..." + +msgid "Please add titles to the compilation." +msgstr "LÅ«dzu pievienot virsrakstus kompilÄcijai." + +msgid "Please change recording endtime" +msgstr "LÅ«dzu nomainiet ieraksta beigu laiku" + +msgid "Please check your network settings!" +msgstr "LÅ«dzu pÄrbaudiet tÄ«kla iestatÄ«jumus!" + +msgid "Please choose an extension..." +msgstr "LÅ«dzu izvÄ“lieties paplaÅ¡inÄjumu..." + +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"LÅ«dzu konfigurÄ“jiet vai pÄrbaudiet DNS aizpildot nepiecieÅ¡amÄs vÄ“rtÄ«bas.\n" +"Kad esat gatavs nospiediet OK, lai turpinÄtu." + +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"LÅ«dzu konfigurÄ“jiet interneta pieslÄ“gumu aizpildot nepiecieÅ¡amÄs vÄ“rtÄ«bas.\n" +"Kad esat gatavs nospiediet OK, lai turpinÄtu." + +msgid "Please connect your receiver to the internet" +msgstr "LÅ«dzu pieslÄ“dziet uztvÄ“rÄ“ju internetam" + +msgid "Please do not change any values unless you know what you are doing!" +msgstr "LÅ«dzu nemainiet jebkÄdas vÄ“rtÄ«bas, izņemot ja skaidri apzinÄties ko darÄt!" + +msgid "Please enter a name for the new bouquet" +msgstr "LÅ«dzu ievadiet jaunÄs buÄ·etes nosaukumu" + +msgid "Please enter a name for the new marker" +msgstr "LÅ«dzu ievadiet jaunÄ marÄ·iera nosaukumu" + +msgid "Please enter a new filename" +msgstr "LÅ«dzu ievadiet jauno faila nosaukumu" + +msgid "Please enter filename (empty = use current date)" +msgstr "LÅ«dzu ievadiet faila nosaukumu (tukÅ¡s = lietot paÅ¡reizÄ“jo datumu)" + +msgid "Please enter name of the new directory" +msgstr "LÅ«dzu ievadiet jaunÄs mapes nosaukumu" + +msgid "Please enter new name:" +msgstr "LÅ«dzu ievadiet jauno nosaukumu:" + +msgid "Please enter the correct pin code" +msgstr "LÅ«dzu ievadiet pareizu PIN kodu" + +msgid "Please enter the old PIN code" +msgstr "LÅ«dzu ievadiet iepriekÅ¡Ä“jo PIN kodu" + +msgid "Please follow the instructions on the TV" +msgstr "LÅ«dzu sekojiet instrukcijÄm TV ekrÄnÄ" + +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "LÅ«dzu ievÄ“rojiet, ka iepriekÅ¡ izvÄ“lÄ“tais datu nesÄ“js nebija pieejams, tÄdēļ tÄ vietÄ tika lietota noklusÄ“tÄ mape." + +msgid "Please press OK to continue." +msgstr "LÅ«dzu spiediet OK, lai turpinÄtu." + +msgid "Please select a default EPG type..." +msgstr "LÅ«dzu izvÄ“lieties noklusÄ“to EPG veidu..." + +msgid "Please select a playlist to delete..." +msgstr "LÅ«dzu izvÄ“lieties repertuÄru dzÄ“Å¡anai..." + +msgid "Please select a playlist..." +msgstr "LÅ«dzu izvÄ“lieties repertuÄru..." + +msgid "Please select a sub service..." +msgstr "LÅ«dzu izvÄ“lieties papildkanÄlu..." + +msgid "Please select a subservice to record..." +msgstr "LÅ«dzu izvÄ“lieties papildkanÄlu ierakstam..." + +msgid "Please select a subservice..." +msgstr "LÅ«dzu izvÄ“lieties papildkanÄlu..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "LÅ«dzu izvÄ“lieties NFI failu un spiediet zaļo taustiņu lai pÄrÅ¡Å«tu!" + +msgid "Please select medium to be scanned" +msgstr "LÅ«dzu izvÄ“lieties datu nesÄ“ju skanÄ“Å¡anai" + +msgid "Please select medium to use as backup location" +msgstr "LÅ«dzu izvÄ“lieties datu nesÄ“ju dublÄ“jumkopijas veidoÅ¡anai" + +msgid "Please select tag to filter..." +msgstr "LÅ«dzu izvÄ“lieties etiÄ·eti filtrÄ“Å¡anai..." + +msgid "Please select the movie path..." +msgstr "LÅ«dzu izvÄ“lieties ceļu filmÄm..." + +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"LÅ«dzu izvÄ“lieties tÄ«kla interfeisu, ko vÄ“laties izmantot savam interneta savienojumam.\n" +"\n" +"LÅ«dzu nospiediet OK, lai turpinÄtu." + +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"LÅ«dzu izvÄ“lieties bezvadu tÄ«klu ar kuru veidot savienojumu.\n" +"\n" +"LÅ«dzu nospiediet OK, lai turpinÄtu." + +msgid "Please set up tuner A" +msgstr "LÅ«dzu iestatiet uztvÄ“rÄ“ju A" + +msgid "Please set up tuner B" +msgstr "LÅ«dzu iestatiet uztvÄ“rÄ“ju B" + +msgid "Please set up tuner C" +msgstr "LÅ«dzu iestatiet uztvÄ“rÄ“ju C" + +msgid "Please set up tuner D" +msgstr "LÅ«dzu iestatiet uztvÄ“rÄ“ju D" + +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"LÅ«dzu lietojiet virzienu taustiņus, lai pÄrvietotu PiP logu.\n" +"Spiediet BuÄ·etes +/- lai mainÄ«tu loga izmÄ“ru.\n" +"Spiediet OK, lai atgrieztos TV režīmÄ vai IZIET, lai atceltu pÄrvietoÅ¡anu." + +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "LÅ«dzu lietojiet AUGÅ UP un LEJUP taustiņus, lai izvÄ“lÄ“tos valodu. PÄ“c tam spiediet OK." + +msgid "Please wait" +msgstr "LÅ«dzu uzgaidiet" + +msgid "Please wait (downloading channel list)" +msgstr "LÅ«dzu uzgaidiet (ielÄdÄ“ kanÄlu sarakstu)" + +msgid "Please wait (downloading softcam)" +msgstr "LÅ«dzu uzgaidiet (ielÄdÄ“ softcam.)" + +msgid "Please wait (updating packages)" +msgstr "LÅ«dzu uzgaidiet (atjauno pakotnes)" + +msgid "Please wait for activation of your network configuration..." +msgstr "LÅ«dzu uzgaidiet kamÄ“r tÄ«kla konfigurÄcija tiek aktivizÄ“ta..." + +msgid "Please wait while scanning is in progress..." +msgstr "LÅ«dzu uzgaidiet kamÄ“r notiek meklÄ“Å¡ana..." + +msgid "Please wait while we configure your network..." +msgstr "LÅ«dzu uzgaidiet kamÄ“r tiek uzstÄdÄ«ts tÄ«kls..." + +msgid "Please wait while we prepare your network interfaces..." +msgstr "LÅ«dzu uzgaidiet kamÄ“r sagatavo tÄ«kla interfeisus..." + +msgid "Please wait while we test your network..." +msgstr "LÅ«dzu uzgaidiet kamÄ“r pÄrbauda tÄ«klu..." + +msgid "Please wait while your network is restarting..." +msgstr "LÅ«dzu uzgaidiet kamÄ“r tÄ«kls tiek pÄrstartÄ“ts..." + +msgid "Please wait..." +msgstr "LÅ«dzu uzgaidiet..." + +msgid "Please wait... Loading list..." +msgstr "LÅ«dzu uzgaidiet... IelÄdÄ“ sarakstu..." + +msgid "Plugin browser" +msgstr "Spraudņu pÄrlÅ«ks" + +msgid "Plugin manager activity information" +msgstr "Spraudņu pÄrlÅ«ka aktivitÄtes informÄcija" + +msgid "Plugin manager help" +msgstr "Spraudņu pÄrlÅ«ka palÄ«dzÄ«ba" + +msgid "Plugins" +msgstr "Spraudņi" + +msgid "Polarisation" +msgstr "PolarizÄcija" + +msgid "Polarisation:" +msgstr "PolarizÄcija:" + +msgid "Polarization" +msgstr "PolarizÄcija" + +msgid "Polish" +msgstr "Poļu" + +msgid "Port A" +msgstr "Ports A" + +msgid "Port B" +msgstr "Ports B" + +msgid "Port C" +msgstr "Ports C" + +msgid "Port D" +msgstr "Ports D" + +msgid "Portuguese" +msgstr "PortugÄļu" + +msgid "Position of completed timers in timerlist" +msgstr "Pabeigto taimeru pozÄ«cija taimeru sarakstÄ" + +msgid "Position stored at index" +msgstr "PozÄ«cija saglabÄta indeksÄ" + +msgid "Positioner" +msgstr "Pozicionieris" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "Pozicioniera iestatÄ«jumi" + +msgid "Positioner setup" +msgstr "Pozicioniera iestatÄ«jumi" + +msgid "Power threshold in mA" +msgstr "BaroÅ¡anas robežvÄ“rtÄ«ba mA" + +msgid "Predefined transponder" +msgstr "DefinÄ“ts transponderis" + +msgid "Prefer AC3 track" +msgstr "Ieteicamais AC3 celiņš" + +msgid "Prefer AC3+ track" +msgstr "" + +msgid "Prefer audio track stored by service" +msgstr "Katram kanÄlam saglabÄt ieteicamo audio celiņu" + +msgid "Prefer graphical DVB subtitles" +msgstr "Ieteicamie grafiskie DVB subtitri" + +msgid "Prefer subtitles for hearing impaired" +msgstr "Ieteicamie subtitri cilvÄ“kiem ar dzirdes traucÄ“jumiem" + +msgid "Prefer subtitles stored by service" +msgstr "Katram kanÄlam saglabÄt ieteicamos subtitrus" + +msgid "Preferred tuner" +msgstr "Ieteicamais uztvÄ“rÄ“js" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "Sagatavo citu USB ierÄ«ci imidža pÄrÅ¡Å«Å¡anai" + +msgid "Preparing... Please wait" +msgstr "Sagatavo... LÅ«dzu uzgaidiet" + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "Papildus informÄcijai spiediet INFO uz tÄlvadÄ«bas pults." + +msgid "Press MENU on your remote control for additional options." +msgstr "Papildus iespÄ“jÄm spiediet MENU uz tÄlvadÄ«bas pults." + +msgid "Press OK on your remote control to continue." +msgstr "Spiediet OK uz tÄlvadÄ«bas pults, lai turpinÄtu." + +msgid "Press OK to activate the selected skin." +msgstr "Spiediet OK lai aktivizÄ“tu izvÄ“lÄ“to Ädiņu." + +msgid "Press OK to activate the settings." +msgstr "Spiediet OK, lai aktivizÄ“tu iestatÄ«jumus." + +msgid "Press OK to edit the settings." +msgstr "Spiediet OK, lai rediģētu iestatÄ«jumus." + +#, python-format +msgid "Press OK to get further details for %s" +msgstr "Spiediet OK turpmÄkai informÄcijai priekÅ¡ %s" + +msgid "Press OK to scan" +msgstr "Spiediet OK, lai meklÄ“tu" + +msgid "Press OK to select a provider." +msgstr "Spiediet OK, lai izvÄ“lÄ“tos operatoru." + +msgid "Press OK to select satellites" +msgstr "" + +msgid "Press OK to select/deselect a CAId." +msgstr "Spiediet OK, lai izvÄ“lÄ“tos/neizvÄ“lÄ“tos CAId." + +msgid "Press OK to start the scan" +msgstr "Spiediet OK, lai uzsÄktu meklÄ“Å¡anu." + +msgid "Press OK to toggle the selection" +msgstr "" + +msgid "Press OK to toggle the selection." +msgstr "Nospiediet OK, lai pÄrslÄ“gtu izvÄ“li." + +msgid "Press yellow to set this interface as default interface." +msgstr "Spiediet dzelteno, lai iestatÄ«tu Å¡o interfeisu kÄ noklusÄ“juma." + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "IepriekÅ¡Ä“jais" + +msgid "Preview" +msgstr "PriekÅ¡skatÄ«jums" + +msgid "Preview menu" +msgstr "PriekÅ¡skatÄ«juma izvÄ“lne" + +msgid "Preview selected channel" +msgstr "IzvÄ“lÄ“tÄ kanÄla priekÅ¡skatÄ«jums" + +msgid "Primary DNS" +msgstr "PrimÄrais DNS" + +msgid "Priority" +msgstr "PrioritÄte" + +msgid "Process" +msgstr "Norise" + +msgid "Progress" +msgstr "Progress" + +msgid "Progress bar left" +msgstr "Progresa josla pa kreisi" + +msgid "Progress bar right" +msgstr "Progresa josla pa labi" + +msgid "Properties of current title" +msgstr "AktÄ«vÄ nosaukuma parametri" + +msgid "Protect services" +msgstr "AizsargÄt kanÄlus" + +msgid "Protect setup" +msgstr "AizsargÄt iestatÄ«jumus" + +msgid "Provider" +msgstr "Operators" + +msgid "Provider to scan" +msgstr "Operators, kuru vÄ“laties meklÄ“t" + +msgid "Providers" +msgstr "Operatori" + +msgid "Put TV in standby" +msgstr "IestatÄ«t TV gaidstÄvÄ“" + +msgid "Put receiver in standby" +msgstr "IestatÄ«t uztvÄ“rÄ“ju gaidstÄvÄ“" + +msgid "Python frontend for /tmp/mmi.socket" +msgstr "Python frontend /tmp/mmi.socket" + +msgid "Quick" +msgstr "Ä€trais" + +msgid "Quick zap" +msgstr "Ä€trÄ pÄrslÄ“gÅ¡ana" + +msgid "RF output" +msgstr "RF izeja" + +msgid "RGB" +msgstr "RGB" + +msgid "Radio" +msgstr "Radio" + +msgid "Ram disk" +msgstr "Ram disks" + +msgid "Random" +msgstr "NejauÅ¡a" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "RaidorganizÄcijas vÄ“rtÄ“jums - %d" + +msgid "Rating undefined" +msgstr "VÄ“rtÄ“jums nav definÄ“ts" + +msgid "Really close without saving settings?" +msgstr "Vai tieÅ¡Äm aizvÄ“rt, nesaglabÄjot iestatÄ«jumus?" + +msgid "Really delete done timers?" +msgstr "Vai tieÅ¡Äm dzÄ“st izpildÄ«tos taimerus?" + +msgid "Really exit the subservices quickzap?" +msgstr "Vai tieÅ¡Äm iziet no papildkanÄlu ÄtrÄs pÄrslÄ“gÅ¡anas režīma?" + +msgid "Really reboot now?" +msgstr "Vai tieÅ¡Äm pÄrstartÄ“t tagad?" + +msgid "Really restart now?" +msgstr "Vai tieÅ¡Äm pÄrstartÄ“t tagad?" + +msgid "Really shutdown now?" +msgstr "Vai tieÅ¡Äm izslÄ“gt tagad?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "Vai tieÅ¡Äm atjaunot frontprocesoru un pÄrstartÄ“t tagad?" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "Vai tieÅ¡Äm atjaunot uztvÄ“rÄ“ju un pÄrstartÄ“t tagad?" + +msgid "Reboot" +msgstr "PÄrstartÄ“t" + +msgid "Rec" +msgstr "Ier" + +msgid "Reception settings" +msgstr "UztverÅ¡anas iestatÄ«jumi" + +msgid "Record" +msgstr "Ieraksta iestatÄ«jumi" + +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "Ierobežots ieraksta laiks dēļ taimera konflikta %s" + +msgid "Recorded files..." +msgstr "IerakstÄ«tie faili..." + +msgid "Recording" +msgstr "Ieraksta" + +msgid "Recording in progress" +msgstr "Ieraksts notiek" + +msgid "Recording paths" +msgstr "IerakstÄ«Å¡anas ceļš" + +msgid "Recording type" +msgstr "Ieraksta tips" + +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "PaÅ¡reiz notiek ieraksts(i), vai tas sÄksies dažu sekunžu laikÄ!" + +msgid "Recordings" +msgstr "Ieraksti" + +msgid "Recordings always have priority" +msgstr "Ierakstiem vienmÄ“r ir prioritÄte" + +msgid "Red button..." +msgstr "SarkanÄ poga..." + +msgid "Reenter new PIN" +msgstr "AtkÄrtoti ievadiet jauno PIN kodu" + +msgid "Refresh rate" +msgstr "AtjauninÄÅ¡anas Ätrums" + +msgid "Refresh rate selection." +msgstr "AtjauninÄÅ¡anas Ätruma izvÄ“le." + +msgid "Regard deep standby as standby" +msgstr "Pieņemt dziļo gaidÄ«Å¡anu kÄ gaidÄ«Å¡anu" + +msgid "Relative" +msgstr "RelatÄ«vs" + +msgid "Reload" +msgstr "PÄrlÄdÄ“t" + +msgid "Reload black-/white lists" +msgstr "PÄrlÄdÄ“t melno-/balto sarakstu" + +msgid "Reloading bouquets and services..." +msgstr "PÄrlÄdÄ“ buÄ·etes un kanÄlus..." + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "AtcerÄ“ties kanÄla PIN" + +msgid "Remember these settings for each folder" +msgstr "AtcerÄ“ties Å¡os iestatÄ«jumus katrai mapei." + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "AtgÄdinÄjums, jums jÄizvÄ“las lai saglabÄtu laika aiztures failu." + +msgid "Remote control type" +msgstr "Pults tips" + +msgid "Removal has completed." +msgstr "DzÄ“Å¡ana pabeigta." + +msgid "Remove" +msgstr "DzÄ“st" + +msgid "Remove a mark" +msgstr "DzÄ“st iezÄ«mi" + +msgid "Remove a nameserver entry" +msgstr "DzÄ“st DNS ierakstu" + +msgid "Remove bookmark" +msgstr "DzÄ“st grÄmatzÄ«mi" + +msgid "Remove completed timers after (days)" +msgstr "DzÄ“st pabeigtos taimerus pÄ“c (dienÄm)" + +msgid "Remove currently selected title" +msgstr "DzÄ“st paÅ¡reiz atlasÄ«to virsrakstu" + +msgid "Remove items from trash can after (days)" +msgstr "DzÄ“st no miskastes pÄ“c (dienÄm)" + +msgid "Remove plugins" +msgstr "DzÄ“st spraudņus" + +msgid "Remove title" +msgstr "DzÄ“st virsrakstu" + +msgid "Removing" +msgstr "DzÄ“Å¡ana" + +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "NeizdevÄs izdzÄ“st mapi %s. (VarbÅ«t nav tukÅ¡a.)" + +msgid "Removing partition table" +msgstr "DzÄ“st partÄ«ciju tabulu" + +msgid "Rename" +msgstr "PÄrsaukt" + +msgid "Repeat" +msgstr "AtkÄrtot" + +msgid "Repeat type" +msgstr "AtkÄrtoÅ¡anas veids" + +msgid "Repeating event currently recording... What do you want to do?" +msgstr "AtkÄrtotais notikums paÅ¡reiz ierakstÄs... Ko vÄ“laties darÄ«t?" + +msgid "Repeats" +msgstr "AtkÄrto" + +msgid "Require authentication for http streams" +msgstr "" + +msgid "Required medium type:" +msgstr "NepiecieÅ¡amais veids:" + +msgid "Rereading partition table" +msgstr "Lasa partÄ«ciju tabulu" + +msgid "Reserved" +msgstr "RezervÄ“ts" + +msgid "Reset" +msgstr "AtstatÄ«t" + +msgid "Reset and renumerate title names" +msgstr "AtstatÄ«t un pÄrnumurÄ“t virsrakstu nosaukumus" + +msgid "Reset playback position" +msgstr "AtstatÄ«t atskaņoÅ¡anas pozÄ«ciju" + +msgid "Reset video enhancement settings to system defaults?" +msgstr "AtstatÄ«t video uzlaboÅ¡anas iestatÄ«jumus uz noklusÄ“juma?" + +msgid "Reset video enhancement settings to your last configuration?" +msgstr "AtstatÄ«t video uzlaboÅ¡anas iestatÄ«jumus uz pÄ“dÄ“jiem uzstÄdÄ«tajiem?" + +msgid "Resolution" +msgstr "IzÅ¡Ä·irtspÄ“ja" + +msgid "Restart" +msgstr "PÄrstartÄ“t" + +msgid "Restart GUI now?" +msgstr "PÄrstartÄ“t GUI tagad?" + +msgid "Restart enigma" +msgstr "PÄrstartÄ“t enigmu" + +msgid "Restart network" +msgstr "PÄrstartÄ“t tÄ«klu" + +msgid "Restart test" +msgstr "AtkÄrtot testu" + +msgid "Restart your network connection and interfaces.\n" +msgstr "PÄrstartÄ“t tÄ«kla savienojumu un interfeisus. \n" + +msgid "Restore" +msgstr "Atjaunot" + +msgid "Restore backups" +msgstr "Atjaunot dublÄ“jumkopiju" + +msgid "Restore is running..." +msgstr "Notiek atjaunoÅ¡ana..." + +msgid "Restore system settings" +msgstr "Atjaunot sistÄ“mas iestatÄ«jumus" + +msgid "Restoring..." +msgstr "Atjauno..." + +msgid "Resume from last position" +msgstr "Turpina no pÄ“dÄ“jÄ stÄvokļa" + +#, python-format +msgid "Resume position at %s" +msgstr "TurpinÄs no vietas %s" + +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Turpina atskaņoÅ¡anu" + +msgid "Return to movie list" +msgstr "Atgriezties uz filmu sarakstu" + +msgid "Return to previous service" +msgstr "Atgriezties uz iepriekÅ¡Ä“jo kanÄlu" + +msgid "Reverse bouquet buttons" +msgstr "ReversÄ“t buÄ·eÅ¡u taustiņus" + +msgid "Reverse list" +msgstr "" + +msgid "Rewind speeds" +msgstr "AttÄ«Å¡anas Ätrumi" + +msgid "Rewrap teletext subtitles" +msgstr "PÄrpakot teleteksta subtitrus" + +msgid "Right" +msgstr "Labais" + +msgid "Right from servicename" +msgstr "Pa labi no kanÄla nosaukuma" + +msgid "Roll-off" +msgstr "SkrullÄ“t-uz" + +msgid "Romanian" +msgstr "RumÄņu" + +msgid "Root directory" +msgstr "Root mape" + +msgid "Rotor step position:" +msgstr "Pozicioniera soļa pozÄ«cija:" + +msgid "Rotor turning speed" +msgstr "Pozicioniera grieÅ¡anÄs Ätrums" + +msgid "Round start time on" +msgstr "Raunda sÄkuma laiks" + +msgid "Russian" +msgstr "Krievu" + +msgid "S-Video" +msgstr "S-Video" + +msgid "SID" +msgstr "SID" + +msgid "SINGLE LAYER DVD" +msgstr "SINGLE LAYER DVD" + +msgid "SNR" +msgstr "SNR" + +msgid "SNR:" +msgstr "SNR:" + +msgid "SSID:" +msgstr "SSID:" + +msgid "Same resolution as skin" +msgstr "TÄda pati izÅ¡Ä·irtspÄ“ja kÄ Ädiņai" + +msgid "Sat" +msgstr "Se" + +msgid "Satellite" +msgstr "Pavadonis" + +msgid "Satellite dish setup" +msgstr "SatelÄ«tantenas iestatÄ«jumi" + +msgid "Satellite equipment" +msgstr "SatelÄ«ta iekÄrtas" + +msgid "Satellite equipment setup" +msgstr "SatelÄ«ta iekÄrtu iestatÄ«jumi" + +msgid "Satellite longitude:" +msgstr "Pavadoņa garuma pozÄ«cija:" + +msgid "Satellites" +msgstr "Pavadoņi" + +msgid "Satfinder" +msgstr "Sat-meklÄ“tÄjs" + +msgid "Sats" +msgstr "Pavad" + +msgid "Saturation" +msgstr "PiesÄtinÄjums" + +msgid "Saturday" +msgstr "Sestdiena" + +msgid "Save" +msgstr "SaglabÄt" + +msgid "Save playlist" +msgstr "SaglabÄt repertuÄru" + +msgid "Save timeshift file" +msgstr "SaglabÄt laika aiztures failu" + +msgid "Save timeshift file in movie directory" +msgstr "SaglabÄt laika aiztures failu filmu mapÄ“" + +msgid "Scaler sharpness" +msgstr "Asuma skala" + +msgid "Scaling mode" +msgstr "MÄ“rogoÅ¡anas režīms" + +msgid "Scan" +msgstr "MeklÄ“t" + +msgid "Scan " +msgstr "MeklÄ“t " + +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, python-format +msgid "Scan %s" +msgstr "MeklÄ“t %s" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, python-format +msgid "Scan %s band" +msgstr "MeklÄ“t %s diapazonÄ" + +msgid "Scan additional SR" +msgstr "MeklÄ“t papildu SR" + +msgid "Scan files..." +msgstr "MeklÄ“ failus..." + +msgid "Scan wireless networks" +msgstr "MeklÄ“t bezvadu tÄ«klus" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "MeklÄ“ jÅ«su bezvadu pieejas punktus un pieslÄ“dzas tiem lietojot jÅ«su izvÄ“lÄ“to bezvadu ierÄ«ci.\n" + +#, python-format +msgid "Scanning %s..." +msgstr "MeklÄ“ %s..." + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "MeklÄ“Å¡ana - %d%% pabeigts" +msgstr[1] "MeklÄ“Å¡ana - %d%% pabeigti" +msgstr[2] "MeklÄ“Å¡ana - %d%% pabeigti" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "MeklÄ“Å¡ana pabeigta, %d kanÄls atrasts" +msgstr[1] "MeklÄ“Å¡ana pabeigta, %d kanÄli atrasti" +msgstr[2] "MeklÄ“Å¡ana pabeigta, %d kanÄli atrasti" + +msgid "Scanning failed!" +msgstr "MeklÄ“Å¡ana pÄrtraukta!" + +msgid "Scanning..." +msgstr "MeklÄ“Å¡ana..." + +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "MeklÄ“ noklusÄ“tos lamedbs, sakÄrtotus pÄ“c pavadoņiem ar pievienotu pozicioniera antenu" + +msgid "Search east" +msgstr "MeklÄ“t austrumos" + +msgid "Search west" +msgstr "MeklÄ“t rietumos" + +msgid "Searching" +msgstr "MeklÄ“" + +msgid "Searching east ..." +msgstr "MeklÄ“ austrumos ..." + +msgid "Searching for available updates. Please wait..." +msgstr "MeklÄ“ pieejamos atjaunojumus. LÅ«dzu uzgaidiet..." + +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "MeklÄ“ no jauna uzstÄdÄ«tÄs vai dzÄ“stÄs pakotnes. LÅ«dzu uzgaidiet..." + +msgid "Searching west ..." +msgstr "MeklÄ“ rietumos ..." + +msgid "Second cable of motorized LNB" +msgstr "" + +msgid "Secondary DNS" +msgstr "SekundÄrais DNS" + +msgid "Seek" +msgstr "MeklÄ“t" + +msgid "Seek backward" +msgstr "PÄrlÄ“kt atpakaļ" + +msgid "Seek backward (enter time)" +msgstr "PÄrlÄ“kt atpakaļ (ievadÄ«t laiku)" + +msgid "Seek forward" +msgstr "PÄrlÄ“kt uz priekÅ¡u" + +msgid "Seek forward (enter time)" +msgstr "PÄrlÄ“kt uz priekÅ¡u (ievadÄ«t laiku)" + +msgid "Select" +msgstr "IzvÄ“lÄ“ties" + +msgid "Select CAId" +msgstr "IzvÄ“lieties CAId" + +msgid "Select HDD" +msgstr "IzvÄ“lieties cieto disku" + +msgid "Select a bouquet" +msgstr "IzvÄ“lieties buÄ·eti" + +msgid "Select a movie" +msgstr "IzvÄ“lieties filmu" + +msgid "Select a network adapter" +msgstr "IzvÄ“lieties tÄ«kla adapteri" + +msgid "Select a skin" +msgstr "IzvÄ“lieties Ädiņu" + +msgid "Select a tuner" +msgstr "IzvÄ“lieties uztvÄ“rÄ“ju" + +msgid "Select a wireless network" +msgstr "IzvÄ“lieties bezvadu tÄ«klu" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +msgid "Select an image to be downloaded" +msgstr "IzvÄ“lieties imidžu, ko lejuplÄdÄ“t" + +msgid "Select audio track" +msgstr "IzvÄ“lieties skaņas celiņu" + +msgid "Select backup files" +msgstr "IzvÄ“lieties dublÄ“jumkopijas failus" + +msgid "Select backup location" +msgstr "IzvÄ“lieties dublÄ“jumkopijas atraÅ¡anÄs vietu" + +msgid "Select channel to record from" +msgstr "IzvÄ“lieties ierakstÄmo kanÄlu" + +msgid "Select copy destination for:" +msgstr "IzvÄ“lieties kopijas mÄ“rÄ·i no:" + +msgid "Select default EPG type..." +msgstr "IzvÄ“lieties noklusÄ“juma EPG tipu..." + +msgid "Select desired image from feed list" +msgstr "IzvÄ“lieties vÄ“lamo imidžu no barotņu saraksta" + +msgid "Select destination for:" +msgstr "IzvÄ“lieties mÄ“rÄ·i no:" + +msgid "Select files for backup." +msgstr "IzvÄ“lieties failus dublÄ“jumkopijai" + +msgid "Select files/folders to backup" +msgstr "IzvÄ“lieties failus/mapes dublÄ“jumkopijai" + +msgid "Select input device" +msgstr "IzvÄ“lieties ievades ierÄ«ci" + +msgid "Select input device." +msgstr "IzvÄ“lieties ievades ierÄ«ci." + +msgid "Select interface" +msgstr "IzvÄ“lieties interfeisu" + +msgid "Select location" +msgstr "IzvÄ“lieties atraÅ¡anÄs vietu" + +msgid "Select movie" +msgstr "IzvÄ“lieties filmu" + +msgid "Select provider to add..." +msgstr "IzvÄ“lieties operatoru kuru pievienot..." + +msgid "Select refresh rate" +msgstr "IzvÄ“lieties atsvaidzinÄÅ¡anas biežumu" + +msgid "Select satellites" +msgstr "" + +msgid "Select service to add..." +msgstr "IzvÄ“lieties kanÄlu kuru pievienot..." + +msgid "Select sort method:" +msgstr "" + +msgid "Select target folder" +msgstr "IzvÄ“lieties mÄ“rÄ·a mapi" + +msgid "Select the movie path" +msgstr "IzvÄ“lieties filmas ceļu" + +msgid "Select upgrade source" +msgstr "IzvÄ“lieties atjauninÄÅ¡anas avotu" + +msgid "Select upgrade source to edit." +msgstr "IzvÄ“lieties atjauninÄÅ¡anas avotu lai rediģētu." + +msgid "Select video input with up/down buttons" +msgstr "IzvÄ“lieties video ieeju ar augÅ¡up/lejup pogÄm" + +msgid "Select video mode" +msgstr "IzvÄ“lieties video režīmu" + +msgid "Select wireless network" +msgstr "IzvÄ“lieties bezvadu tÄ«klu" + +msgid "Select your provider, and press OK to start the scan" +msgstr "IzvÄ“lieties jÅ«su operatoru un nospiediet OK lai sÄktu meklÄ“t" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +msgid "Send DiSEqC only on satellite change" +msgstr "SÅ«tÄ«t DiSEqC tikai mainoties pavadonim" + +msgid "Separate titles with a main menu" +msgstr "AtseviÅ¡Ä·i nosaukumi ar galveno izvÄ“lni" + +msgid "Sequence repeat" +msgstr "SecÄ«bas atkÄrtojums" + +msgid "Serbian" +msgstr "Serbu" + +msgid "Service" +msgstr "KanÄls" + +msgid "Service has been added to the favourites." +msgstr "KanÄls tika pievienots favorÄ«tiem." + +msgid "Service has been added to the selected bouquet." +msgstr "KanÄls tika pievienots izvÄ“lÄ“tajai buÄ·etei." + +msgid "Service info" +msgstr "KanÄla info" + +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"KanÄls neeksistÄ“!\n" +"(PMT lasÄ«Å¡anas noildze)" + +msgid "Service name" +msgstr "KanÄla nosaukums" + +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"KanÄls nav atrasts!\n" +"(SID nav atrasts iekÅ¡ PAT)" + +msgid "Service reference" +msgstr "KanÄla atsauce" + +msgid "Service scan" +msgstr "KanÄlu meklÄ“Å¡ana" + +msgid "Service searching" +msgstr "KanÄlu meklÄ“Å¡ana" + +msgid "Service title mode" +msgstr "IzvÄ“lieties kanÄla attÄ“la režīmu" + +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"KanÄls nav pieejams!\n" +"PÄrbaudiet uztvÄ“rÄ“ja konfigurÄciju!" + +msgid "Services" +msgstr "KanÄli" + +msgid "Set default" +msgstr "" + +msgid "Set end time" +msgstr "IestatÄ«t beigu laiku" + +msgid "Set fixed" +msgstr "FiksÄ“tÄ" + +msgid "Set fps for external subtitles" +msgstr "UzstÄdÄ«t fps ÄrÄ“jiem subtitriem" + +msgid "Set interface as default Interface" +msgstr "IestatÄ«t interfeisu kÄ noklusÄ“to" + +msgid "Set limits" +msgstr "IestatÄ«t limitus" + +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "IestatÄ«t norises indikatora tipu kanÄlu pÄrslÄ“gÅ¡anas logÄ." + +msgid "Set time window to 1 hour" +msgstr "IestatÄ«t laika logu uz 1 stundu" + +msgid "Set time window to 2 hours" +msgstr "IestatÄ«t laika logu uz 2 stundÄm" + +msgid "Set time window to 3 hours" +msgstr "IestatÄ«t laika logu uz 3 stundÄm" + +msgid "Set time window to 4 hours" +msgstr "IestatÄ«t laika logu uz 4 stundÄm" + +msgid "Set time window to 5 hours" +msgstr "IestatÄ«t laika logu uz 5 stundÄm" + +msgid "Set time window to 6 hours" +msgstr "IestatÄ«t laika logu uz 6 stundÄm" + +msgid "Set voltage and 22KHz" +msgstr "IestatÄ«t spriegumu un 22 KHZ" + +msgid "Settings" +msgstr "IestatÄ«jumi" + +msgid "Setup" +msgstr "IestatÄ«jumi" + +msgid "Setup menu" +msgstr "IestatÄ«jumu izvÄ“lne" + +msgid "Setup mode" +msgstr "IestatÄ«jumu režīms" + +msgid "Setup your positioner" +msgstr "Pozicioniera iestatÄ«jumi" + +msgid "Setup your satellite equipment" +msgstr "SatelÄ«ta iekÄrtu iestatÄ«jumi" + +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "Vai USB zibatmiņas vednis var uzstÄdÄ«t imidža failu %s uz fleÅ¡atmiņas?" + +msgid "Sharpness" +msgstr "Asums" + +msgid "Short filenames" +msgstr "Īsie failu nosaukumi" + +msgid "Show EIT now/next in infobar" +msgstr "RÄdÄ«t EIT paÅ¡reiz/nÄkoÅ¡ais infojoslÄ" + +msgid "Show EPG for current channel..." +msgstr "RÄdÄ«t EPG paÅ¡reizÄ“jam kanÄlam..." + +msgid "Show EPG..." +msgstr "RÄdÄ«t EPG..." + +msgid "Show Games show" +msgstr "RÄdÄ«t Games show" + +msgid "Show SNR percentage instead of dB value" +msgstr "RÄdÄ«t SNR procentos dB vietÄ" + +msgid "Show VCR scart on main menu" +msgstr "RÄdÄ«t VCR scart galvenÄ izvÄ“lnÄ“" + +msgid "Show WLAN status" +msgstr "RÄdÄ«t bezvadu tÄ«kla statusu" + +msgid "Show animation while busy" +msgstr "RÄdÄ«t animÄciju kad aizņemts" + +msgid "Show background in radio mode" +msgstr "RÄdÄ«t fona attÄ“lu radio režīmÄ" + +msgid "Show bouquet selection menu" +msgstr "RÄdÄ«t buÄ·eÅ¡u atlases izvÄ“lni" + +msgid "Show busy indicator when the system is busy." +msgstr "RÄdÄ«t aizņemtÄ«bas indikatoru kad sistÄ“ma aizņemta." + +msgid "Show channel numbers in channel selection" +msgstr "RÄdÄ«t kanÄlu numurus kanÄlu izvÄ“lnÄ“" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "RÄdÄ«t Å¡ifrÄ“Å¡anas info infojoslÄ" + +msgid "Show detailed event info" +msgstr "RÄdÄ«t detalizÄ“tu notikumu info" + +msgid "Show event details" +msgstr "RÄdÄ«t notikuma detaļas" + +msgid "Show event-progress in channel selection" +msgstr "RÄdÄ«t notikuma norisi kanÄlu izvÄ“lnÄ“" + +msgid "Show extended description" +msgstr "RÄdÄ«t paplaÅ¡inÄto aprakstu" + +msgid "Show extensions..." +msgstr "SkatÄ«t paplaÅ¡inÄjumus..." + +msgid "Show icon for new/unseen items" +msgstr "RÄdÄ«t ikonu jauniem/neredzÄ“tiem" + +msgid "Show in extensions menu" +msgstr "RÄdÄ«t paplaÅ¡inÄjumu izvÄ“lnÄ“" + +msgid "Show info" +msgstr "RÄdÄ«t informÄciju" + +msgid "Show info line" +msgstr "RÄdÄ«t infojoslu" + +msgid "Show infobar on channel change" +msgstr "RÄdÄ«t infojoslu mainot kanÄlus" + +msgid "Show infobar on event change" +msgstr "RÄdÄ«t infojoslu mainoties notikumiem" + +msgid "Show infobar on skip forward/backward" +msgstr "RÄdÄ«t infojoslu pÄrlÄ“ciena turp/atpakaļ laikÄ" + +msgid "Show latest commits on sourceforge" +msgstr "ParÄdÄ«t pÄ“dÄ“jo sourceforge kommitu" + +msgid "Show message when recording starts" +msgstr "RÄdÄ«t paziņojumu kad ieraksts sÄkas" + +msgid "Show movie lengths in movielist" +msgstr "RÄdÄ«t filmu garumus filmu sarakstÄ" + +msgid "Show multi channel EPG" +msgstr "RÄdÄ«t daudzkanÄlu EPG" + +msgid "Show picons in channel list" +msgstr "RÄdÄ«r pikonas kanÄlu srakstÄ" + +msgid "Show positioner movement" +msgstr "RÄdÄ«t pozicioniera kustÄ«bu" + +msgid "Show screensaver" +msgstr "RÄdÄ«t ekrÄnsaudzÄ“tÄju" + +msgid "Show second infobar" +msgstr "RÄdÄ«t otro infojoslu" + +msgid "Show service type icons" +msgstr "RÄdÄ«t kanÄlu tipu ikonas" + +msgid "Show services beginning with" +msgstr "RÄdÄ«t kanÄlus, kas sÄkas ar" + +msgid "Show shutdown menu" +msgstr "RÄdÄ«t izslÄ“gÅ¡anas izvÄ“lni" + +msgid "Show single service EPG" +msgstr "RÄdÄ«t atseviÅ¡Ä·a kanÄla EPG" + +msgid "Show status icons in Movielist" +msgstr "RÄdÄ«t statusa ikonu filmu sarakstÄ" + +msgid "Show status icons in movie list" +msgstr "Statusa ikona filmu sarakstÄ" + +msgid "Show status icons in movielist" +msgstr "Statusa ikona filmu sarakstÄ" + +msgid "Show tag menu" +msgstr "RÄdÄ«t etiÄ·etes izvÄ“lni" + +msgid "Show the radio player..." +msgstr "KlausÄ«ties radio..." + +msgid "Show the tv player..." +msgstr "SkatÄ«ties TV..." + +msgid "Show warning when timeshift is stopped" +msgstr "RÄdÄ«t brÄ«dinÄjumu kad laika aizture apturÄ“ta" + +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "RÄdÄ«t bezvadu tÄ«kla savienojuma statusu.\n" + +msgid "Shuffle playlist" +msgstr "Jaukts repertuÄrs" + +msgid "Shutdown" +msgstr "IzslÄ“gt" + +msgid "Shutdown when in Standby" +msgstr "IzslÄ“gt kad ir gaidstÄvÄ“" + +msgid "Side by side" +msgstr "SalÄ«dzinÄt pÄ“c satura" + +msgid "Signal OK, proceeding" +msgstr "SignÄls kÄrtÄ«bÄ, turpinu" + +msgid "Signal quality" +msgstr "SignÄla kvalitÄte" + +msgid "Signal strength:" +msgstr "SignÄla stiprums:" + +msgid "Signal: " +msgstr "SignÄls: " + +msgid "Similar" +msgstr "LÄ«dzÄ«gi" + +msgid "Similar broadcasts:" +msgstr "LÄ«dzÄ«gi raidÄ«jumi:" + +msgid "Simple" +msgstr "VienkÄrÅ¡s" + +msgid "Simple titleset (compatibility for legacy players)" +msgstr "VienkÄrÅ¡u simbolu lietojums nosaukumos (savietojamÄ«bai ar parastiem atskaņotÄjiem)" + +msgid "Single" +msgstr "Viens" + +msgid "Single EPG" +msgstr "KanÄla EPG" + +msgid "Single satellite" +msgstr "Viens pavadonis" + +msgid "Single step (GOP)" +msgstr "Viensolis (GOP)" + +msgid "Single transponder" +msgstr "Viens transponderis" + +msgid "Site latitude" +msgstr "Vietas platums" + +msgid "Site longitude" +msgstr "Vietas garums" + +msgid "Skin" +msgstr "Ä€diņa" + +msgid "Skins" +msgstr "Ä€diņas" + +msgid "Skip empty services" +msgstr "Izlaist tukÅ¡os kanÄlus" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "Izlaist interneta savienojuma pÄrbudi (atspÄ“jo automÄtisku pakotņu uzstÄdÄ«Å¡anu)" + +msgid "Sleep timer" +msgstr "Miega taimeris" + +msgid "SleepTimer Configuration" +msgstr "Miega taimera iestatÄ«jumi" + +msgid "Sleeptimer" +msgstr "Miega taimeris" + +msgid "Slide picture in loop" +msgstr "RÄdÄ«t attÄ“lus pa apli" + +msgid "Slide show interval (sec.)" +msgstr "SlÄ«drÄdes intervÄls (sek.)" + +#, python-format +msgid "Slot %d" +msgstr "KarÅ¡u lasÄ«tÄjs %d" + +msgid "Slovak" +msgstr "SlovÄku" + +msgid "Slovenian" +msgstr "Slovēņu" + +msgid "Slow" +msgstr "LÄ“ni" + +msgid "Slow motion speeds" +msgstr "PalÄ“ninÄtÄs kustÄ«bas Ätrumi" + +msgid "Small progress" +msgstr "Izpilda" + +msgid "Social/Political/Economics" +msgstr "SociÄlie/Politika/Ekonomika" + +msgid "SoftCam / CI" +msgstr "SoftCam / CI" + +msgid "Softcam type" +msgstr "Softcam tips" + +msgid "Software" +msgstr "ProgrammatÅ«ra" + +msgid "Software management" +msgstr "ProgrammatÅ«ras pÄrvaldÄ«Å¡ana" + +msgid "Software manager setup" +msgstr "ProgrammatÅ«ras pÄrvaldÄ«Å¡anas iestatÄ«jumi" + +msgid "Software restore" +msgstr "ProgrammatÅ«ras atjaunoÅ¡ana" + +msgid "Software update" +msgstr "ProgrammatÅ«ras atjauninÄÅ¡ana" + +msgid "Softwaremanager information" +msgstr "ProgrammatÅ«ras pÄrvaldnieka informÄcija" + +msgid "Some plugins are not available:\n" +msgstr "Daži spraudņi nav pieejami:\n" + +#, python-format +msgid "Sorry, %s has not been installed!" +msgstr "Atvainojiet, %s nav uzstÄdÄ«ts!" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "Atvainojiet, nodzÄ“stÄs mapes var (paÅ¡reiz) vienÄ«gi caur miskasti." + +msgid "Sorry, no backups found!" +msgstr "Atvainojiet, dublÄ“jumkopijas nav atrastas!" + +msgid "Sorry, no details available!" +msgstr "Atvainojiet, informÄcija nav pieejama!" + +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"IzvÄ“lÄ“tais dublÄ“jumkopijas galamÄ“rÄ·is nav ierakstÄms.\n" +"LÅ«dzu izvÄ“lieties citu." + +msgid "Sort" +msgstr "KÄrtot" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "KÄrtot A-Z" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort time" +msgstr "KÄrt. laiks" + +msgid "Sound" +msgstr "Skaņa" + +msgid "Sound carrier" +msgstr "Skaņas nesÄ“js" + +msgid "Source request" +msgstr "Ðvots" + +msgid "South" +msgstr "Dienvidi" + +msgid "Spanish" +msgstr "SpÄņu" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "IestatÄ«t beigu laiku lÄ«dz kuram neaktivitÄtes miega taimeris tiks ignorÄ“ts" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "IestatÄ«t sÄkuma laiku lÄ«dz kuram neaktivitÄtes miega taimeris tiks ignorÄ“ts" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "IestatÄ«t laiku neaktivitÄtes miega taimeria ignorÄ“Å¡anai" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +msgid "Split preview mode" +msgstr "SadalÄ«t priekÅ¡skatÄ«Å¡anas režīmu" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "Sports" + +msgid "Standard" +msgstr "Standarta" + +msgid "Standart list" +msgstr "" + +msgid "Standby" +msgstr "GaidstÄve" + +msgid "Standby / restart" +msgstr "GaidstÄve / pÄrstartÄ“t" + +msgid "Standby after current event" +msgstr "GaidstÄve pÄ“c paÅ¡reizÄ“jÄ notikuma" + +#, python-format +msgid "Standby fan %d PWM" +msgstr "Ventilatora apgriezieni %d gaidstÄvÄ“" + +#, python-format +msgid "Standby fan %d voltage" +msgstr "Ventilatora spriegums %d gaidstÄvÄ“" + +msgid "Standby in " +msgstr "GaidstÄvÄ“ " + +msgid "StandbyLED" +msgstr "" + +msgid "Start from the beginning" +msgstr "SÄkt no sÄkuma" + +msgid "Start offline decode" +msgstr "SÄkt bezsaistes dekodÄ“Å¡anu" + +msgid "Start recording?" +msgstr "SÄkt ierakstu?" + +msgid "Start test" +msgstr "SÄkt pÄrbaudi" + +msgid "Start time" +msgstr "SÄkuma laiks" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "SÄkuma laiks pÄ“c kura ignorÄ“t neaktivitÄtes miega taimeri" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +msgid "Start timeshift" +msgstr "SÄkt laika aizturi" + +msgid "Start with list screen" +msgstr "SÄkt ar saraksta logu" + +msgid "Starting on" +msgstr "SÄkot ar" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +msgid "Step east" +msgstr "Soli uz austrumiem" + +msgid "Step west" +msgstr "Solis uz rietumiem" + +msgid "Stepped east" +msgstr "Soļo uz austrumiem" + +msgid "Stepped west" +msgstr "Soļo uz rietumiem" + +msgid "Stop" +msgstr "ApturÄ“t" + +msgid "Stop PiP" +msgstr "ApturÄ“t PiP" + +msgid "Stop current event and disable coming events" +msgstr "ApturÄ“t paÅ¡reizÄ“jo notikumu un izslÄ“gt nÄkamos notikumus" + +msgid "Stop current event but not coming events" +msgstr "ApturÄ“t paÅ¡reizÄ“jo notikumu, bet ne nÄkamos notikumus" + +msgid "Stop entry" +msgstr "ApturÄ“t ievadi" + +msgid "Stop playing this movie?" +msgstr "ApturÄ“t filmas atskaņoÅ¡anu?" + +msgid "Stop recording" +msgstr "ApturÄ“t ierakstu" + +msgid "Stop recording and delete" +msgstr "ApturÄ“t ierakstu un nodzÄ“st" + +msgid "Stop service on return to movie list" +msgstr "" + +msgid "Stop test" +msgstr "ApturÄ“t pÄrbaudi" + +msgid "Stop testing plane after # failed transponders" +msgstr "ApturÄ“t testÄ“Å¡anu pÄ“c # neatrastiem transponderiem" + +msgid "Stop testing plane after # successful transponders" +msgstr "ApturÄ“t testÄ“Å¡anu pÄ“c # atrastiem transponderiem" + +msgid "Stop timer recording" +msgstr "ApturÄ“t taimera ierakstu" + +msgid "Stop timeshift" +msgstr "ApturÄ“t laika aizturi" + +msgid "Stop timeshift?" +msgstr "ApturÄ“t laika aizturi?" + +msgid "Stopped" +msgstr "ApturÄ“t" + +msgid "Store at index" +msgstr "SaglabÄt indeksÄ" + +msgid "Store position" +msgstr "SaglabÄt pozÄ«ciju" + +msgid "Stored position" +msgstr "SaglabÄtÄ pozÄ«cija" + +msgid "Stream" +msgstr "PlÅ«sma" + +msgid "Stream request" +msgstr "PlÅ«smas pieprasÄ«jums" + +msgid "Strongest position" +msgstr "CieÅ¡Ä pozÄ«cija" + +msgid "Subservice list..." +msgstr "PapildkanÄlu saraksts..." + +msgid "Subservices" +msgstr "PapildkanÄli" + +msgid "Subtitle Quickmenu" +msgstr "Subtitru ÄtrÄ izvÄ“lne" + +msgid "Subtitle alignment" +msgstr "Subtitru izvÄ“le" + +msgid "Subtitle border width" +msgstr "Subtitru apmales biezums" + +msgid "Subtitle delay when timing is bad" +msgstr "Subtitru aizture ja nav informÄcijas" + +msgid "Subtitle delay when timing lacks" +msgstr "Subtitru aizture kad nav norÄdÄ«ta laika aizture" + +msgid "Subtitle font size" +msgstr "Subtitru fonta izmÄ“rs" + +msgid "Subtitle language selection 1" +msgstr "Subtitru valodas izvÄ“le 1" + +msgid "Subtitle language selection 2" +msgstr "Subtitru valodas izvÄ“le 2" + +msgid "Subtitle language selection 3" +msgstr "Subtitru valodas izvÄ“le 3" + +msgid "Subtitle language selection 4" +msgstr "Subtitru valodas izvÄ“le 4" + +msgid "Subtitle position" +msgstr "Subtitru pozÄ«cija" + +msgid "Subtitle selection" +msgstr "Subtitru izvÄ“le" + +msgid "Subtitle selection..." +msgstr "Subtitru izvÄ“le..." + +msgid "Subtitle settings" +msgstr "Subtitru izvÄ“le" + +msgid "Subtitles" +msgstr "Subtitri" + +msgid "Sun" +msgstr "Sv" + +msgid "Sunday" +msgstr "SvÄ“tdiena" + +msgid "Swap PiP and main picture" +msgstr "MainÄ«t PiP un galveno attÄ“lu" + +msgid "Swap services" +msgstr "SamainÄ«t kanÄlus" + +msgid "Swedish" +msgstr "Zviedru" + +msgid "Switch TV to correct input" +msgstr "PÄrslÄ“gt TV uz pareizu ieeju" + +msgid "Switch between filelist/playlist" +msgstr "PÄrslÄ“gties starp failu/atskaņoÅ¡anas režīmiem" + +msgid "Switch between normal mode and list mode" +msgstr "PÄrslÄ“gties starp normÄlo un saraksta režīmu" + +msgid "Switch to HDMI in mode" +msgstr "" + +msgid "Switch to filelist" +msgstr "Iet uz failu sarakstu" + +msgid "Switch to next channel" +msgstr "" + +msgid "Switch to next channel in history" +msgstr "PÄrslÄ“gt uz nÄkamo kanÄlu vÄ“sturÄ“" + +msgid "Switch to next sub service" +msgstr "PÄrslÄ“gt uz nÄkamo papildkanÄlu" + +msgid "Switch to playlist" +msgstr "PÄrslÄ“gt uz repertuÄru" + +msgid "Switch to previous channel" +msgstr "PÄrslÄ“gt iepriekÅ¡Ä“jo kanÄlu" + +msgid "Switch to previous channel in history" +msgstr "PÄrslÄ“gt uz iepriekÅ¡Ä“jo kanÄlu vÄ“sturÄ“" + +msgid "Switch to previous sub service" +msgstr "PÄrslÄ“gt uz iepriekÅ¡Ä“jo papildkanÄlu" + +msgid "Switchable tuner types:" +msgstr "PÄrslÄ“dzamo uztvÄ“rÄ“ju tipi:" + +msgid "Symbol rate" +msgstr "Simbola vÄ“rtÄ«ba" + +msgid "Symbol rate:" +msgstr "Simbola vÄ“rtÄ«ba:" + +msgid "Sync failure moving back to origin !" +msgstr "SinhronizÄ“Å¡ana pÄrtraukta, atiestata uz oriÄ£inÄlu!" + +msgid "System" +msgstr "SistÄ“ma" + +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "Taapat, Madars Auns Latvija, Talsi" + +msgid "TS file is too large for ISO9660 level 1!" +msgstr "TS fails ir par lielu priekÅ¡ ISO9660 level 1!" + +msgid "TSID" +msgstr "TSID" + +msgid "TV physical address report" +msgstr "TV fiziskÄs adreses ziņojums" + +msgid "TXT PID" +msgstr "TXT PID" + +msgid "Table of contents for collection" +msgstr "Satura rÄdÄ«tÄjs kolekcijai" + +msgid "Tags" +msgstr "EtiÄ·etes" + +msgid "Teletext subtitle color" +msgstr "Teleteksta subtitru krÄsa" + +msgid "Temperature and fan control" +msgstr "TemperatÅ«ras un ventilatora kontrole" + +msgid "Terrestrial" +msgstr "Virszemes" + +msgid "Terrestrial provider" +msgstr "Virszemes operators" + +msgid "Test DiSEqC settings" +msgstr "PÄrbaudÄ«t DiSEqC iestatÄ«jumus" + +msgid "Test mode" +msgstr "Testa režīms" + +msgid "Test the network configuration of your receiver.\n" +msgstr "PÄrbaudÄ«t uztvÄ“rÄ“ja tÄ«kla iestatÄ«jumus.\n" + +msgid "Test type" +msgstr "PÄrbaudes veids" + +msgid "Text color" +msgstr "Teksta krÄsa" + +msgid "Thai" +msgstr "TaieÅ¡u" + +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"Paldies ka izmantojÄt vedni.\n" +"LÅ«dzu nospiediet OK, lai turpinÄtu." + +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"Paldies ka izmantojÄt vedni. JÅ«su uztvÄ“rÄ“js ir gatavs lietoÅ¡anai.\n" +"Nospiediet OK, lai sÄktu lietot savu uztvÄ“rÄ“ju." + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "DVD standarts neatbalsta H.264 (HDTV) video. Vai jÅ«s vÄ“laties izveidot Ä«paÅ¡a formÄta datu DVD (kuru nevarÄ“s atskaņot standarta DVD atskaņotÄji)?" + +msgid "The PIN code has been changed successfully." +msgstr "PIN kods nomainÄ«ts veiksmÄ«gi." + +msgid "The PIN codes you entered are different." +msgstr "IevadÄ«tie PIN kodi atÅ¡Ä·iras." + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" +"USB zibatmiņa izveidota sÄknÄ“jama.\n" +"Tagad varat lejupielÄdÄ“t NFI imidža failu!" + +msgid "The backup failed. Please choose a different backup location." +msgstr "DublÄ“jumkopÄ“Å¡ana neizdevÄs. LÅ«dzu izvÄ“lieties citu vietu dublÄ“jumkopijai. " + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" +"Å is beta imidžs var nebÅ«t stabils.\n" +"VairÄk informÄcijas skatÄ«t %s." + +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"Mape %s nav rakstÄma.\n" +"PÄrliecinieties, ka jÅ«s izvÄ“lieties ierakstÄmu direktoriju." + +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"Atrasta sekojoÅ¡a ierÄ«ce:\n" +"\n" +"%s\n" +"\n" +"Vai vÄ“laties ierakstÄ«t USB lÄdÄ“tÄju Å¡ajÄ atmiņas ierÄ«cÄ“?" + +msgid "The following files were found..." +msgstr "Tika atrasti sekojoÅ¡i faili..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "md5sum validÄcija neizdevÄs, iespÄ“jams, ka fails ir bojÄts!" + +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"Bezvadu tÄ«kla spraudnis nav uzstÄdÄ«ts!\n" +"LÅ«dzu uzstÄdiet to." + +#, python-format +msgid "The path %s already exists." +msgstr "Ceļš %s jau eksistÄ“." + +msgid "The pin code you entered is wrong." +msgstr "JÅ«su ievadÄ«tais PIN kods ir nepareizs." + +#, python-format +msgid "The results have been written to %s." +msgstr "RezultÄti saglabÄti %s." + +msgid "The sleep timer has been activated." +msgstr "Miega taimeris tika aktivizÄ“ts." + +msgid "The sleep timer has been disabled." +msgstr "Miega taimeris tika izslÄ“gts." + +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"ProgrammatÅ«ras pÄrvaldÄ«Å¡anas spraudnis nav uzstÄdÄ«ts!\n" +"LÅ«dzu uzstÄdiet to." + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "EsoÅ¡o beta imidža statusu nevar pÄrbaudÄ«t, jo %s nevar tikt panÄkts." + +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "Taimera fails (timers.xml) ir bojÄts un to nevar ielÄdÄ“t." + +msgid "The user interface of your receiver is restarting" +msgstr "UztvÄ“rÄ“ja lietotÄja interfeiss tiek pÄrstartÄ“ts" + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" +"LietotÄja interfeiss tiek pÄrstartÄ“ts\n" +"dēļ kļūdas failÄ mytest.py" + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"Bezvadu tÄ«kla spraudnis nav uzstÄdÄ«ts!\n" +"LÅ«dzu uzstÄdiet to un izvÄ“lieties ko gribat darÄ«t nÄkamo." + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"Bezvadu tÄ«kla spraudnis nav uzstÄdÄ«ts!\n" +"LÅ«dzu uzstÄdiet to." + +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "Vednis var izveidot paÅ¡reizÄ“jo iestatÄ«jumu dublÄ“jumkopiju. Vai vÄ“laties veidot dublÄ“jumkopiju tulÄ«t?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "Vednis atradis iestatÄ«jumu dublÄ“jumkopiju. Vai vÄ“laties atjaunot iepriekÅ¡Ä“jos iestatÄ«jumus no %s?" + +msgid "The wizard is finished now." +msgstr "Vednis ir pabeidzis darbu." + +msgid "There are at least " +msgstr "PastÄv vismaz " + +#, python-format +msgid "There are at least %s updates available." +msgstr "PastÄv vismaz %s atjaunojumi." + +msgid "There are currently no outstanding actions." +msgstr "PaÅ¡laik nav aktuÄlu darbÄ«bu." + +msgid "There are no updates available." +msgstr "PaÅ¡laik atjauninÄjumi nav pieejami." + +msgid "There is no signal to lock on !" +msgstr "PaÅ¡laik nav signÄla uz ko noenkuroties!" + +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"IzvÄ“lÄ“tajÄ sadaÄ¼Ä var nebÅ«t pietiekami daudz vietas.\n" +"Vai tieÅ¡Äm vÄ“laties turpinÄt?" + +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "Å is DVD RW disks jau ir formatÄ“ts - atkÄrtota formatÄ“Å¡ana dzÄ“sÄ«s visu diska saturu." + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" +"Å is spraudnis izveidos USB zibatmiņu ko var izmantot lai atjauninÄtu uztvÄ“rÄ“ja programatÅ«ru, neizmantojot tÄ«klu vai bezvadu savienojumu.\n" +"Vispirms, USB zibatmiņa ir jÄsagatavo tÄ, lai tÄ bÅ«tu sÄknÄ“jama.\n" +"NÄkamajÄ solÄ«, NFI imidža failu var lejupielÄdÄ“t no atjauninÄjumu servera un saglabÄt uz USB zibatmiņas.\n" +"Ja jums jau ir sagatavota sÄknÄ“jama USB zibatmiņa, lÅ«dzu ievietojiet to tagad. PretÄ“jÄ gadÄ«jumÄ iespraudiet USB zibatmiņu ar minimÄlo izmÄ“ru 64 MB!" + +msgid "This plugin is installed." +msgstr "Å is spraudnis ir uzstÄdÄ«ts." + +msgid "This plugin is not installed." +msgstr "Å is spraudnis nav uzstÄdÄ«ts." + +msgid "This plugin will be installed." +msgstr "Å is spraudnis tiks uzstÄdÄ«s." + +msgid "This plugin will be removed." +msgstr "Å is spraudnis tiks noņemts." + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "UztvÄ“rÄ“js nevar dekodÄ“t %s plÅ«smas!" + +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"Å is tests pÄrbauda domÄ“na vÄrdu serveru (DNS) konfigurÄciju.\n" +"Ja JÅ«s saņemat \"neapstiprinÄts \" paziņojumu:\n" +"- lÅ«dzu pÄrbaudiet DHCP, kabeļus un adaptera iestÄ«jumus\n" +"- ja uzstÄdÄ«jÄt domÄ“na vÄrdu serverus manuÄli, pÄrbaudiet savus ierakstus \"DNS \" uzstÄdÄ«jumi" + +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Å is tests pÄrbauda vai tÄ«kla kabelis ir savienots ar tÄ«kla adapteri.\n" +"Ja JÅ«s saņemat \"atvienots \" paziņojumu:\n" +"- pÄrliecinieties, ka tÄ«kla kabelis ir pievienots\n" +"- pÄrliecinieties, ka kabelis nav bojÄts" + +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Å is tests pÄrbauda vai tÄ«kla adapterim ir atrasta derÄ«ga IP adrese. \n" +"Ja JÅ«s saņemat \"neapstiprinÄts \" paziņojumu:\n" +"- nav atrasta derÄ«ga IP adrese\n" +"- lÅ«dzu pÄrbaudiet DHCP, kabeļus un adaptera iestÄ«jumus" + +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"Å is tests pÄrbauda vai tÄ«kla adapteris ir iestatÄ«ts automÄtiskai IP adreÅ¡u konfigurÄ“Å¡anai ar DHCP.\n" +"Ja saņemat \"neaktÄ«vs \" paziņojumu:\n" +"- tÄ«kla adapteris ir konfigurÄ“ts manuÄlai IP iestatÄ«Å¡anai\n" +"- pÄrbaudiet, vai ir ievadÄ«ta korekta IP informÄcija adaptera iestatÄ«jumu dialoglogÄ. \n" +"Ja saņemat \"aktÄ«vs \" paziņojumu:\n" +"- pÄrbaudiet, vai DHCP serveris ir konfigurÄ“ts un darbojas jÅ«su tÄ«klÄ." + +msgid "This test detects your configured LAN adapter." +msgstr "Å is tests atrod konfigurÄ“to tÄ«kla adapteri." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" +"Å is pÄrrÄ“Ä·ina visas pozÄ«cijas jÅ«su pozicionierim un var nodzÄ“st iepriekÅ¡ iegaumÄ“tas pozÄ«cijas un precizÄ“Å¡anu!\n" +"Vai esat pÄrliecinÄts?" + +msgid "Three" +msgstr "Koks" + +msgid "Threshold" +msgstr "HeterodÄ«ns" + +msgid "Thu" +msgstr "Ce" + +msgid "Thumbnails" +msgstr "SÄ«ktÄ“li" + +msgid "Thursday" +msgstr "Ceturtdiena" + +msgid "Time" +msgstr "Laiks" + +msgid "Time scale" +msgstr "Laika skala" + +msgid "Timer" +msgstr "Taimeris" + +msgid "Timer Overview" +msgstr "" + +msgid "Timer edit" +msgstr "Rediģēt taimeri" + +msgid "Timer editor" +msgstr "Taimera redaktors" + +msgid "Timer entry" +msgstr "Taimera ieraksts" + +msgid "Timer log" +msgstr "Taimera žurnÄls" + +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"KonstatÄ“ta taimeru pÄrklÄÅ¡anÄs failÄ timers.xml! \n" +"LÅ«dzu pÄrbaudiet vÄ“lreiz!" + +msgid "Timer overview" +msgstr "Taimera pÄrskats" + +msgid "Timer recording location" +msgstr "Taimera ieraksta vieta" + +msgid "Timer sanity error" +msgstr "Taimera kļūda" + +msgid "Timer selection" +msgstr "Taimeru izvÄ“le" + +msgid "Timer selection..." +msgstr "Taimeru izvÄ“le..." + +msgid "Timer type" +msgstr "Taimera veids" + +msgid "Timeshift" +msgstr "Laika aizture" + +msgid "Timeshift Live" +msgstr "" + +msgid "Timeshift location" +msgstr "Laika aiztures vieta" + +msgid "Timeshift not possible!" +msgstr "Laika aizture nav iespÄ“jama!" + +msgid "Timezone" +msgstr "Laika josla" + +msgid "Title" +msgstr "Nosaukums" + +msgid "Title properties" +msgstr "Nosaukuma parametri" + +msgid "Titleset mode" +msgstr "Nosaukuma iestatÄ«Å¡anas režīms" + +msgid "To audio selection" +msgstr "Uz audio iestatÄ«Å¡anu" + +msgid "To subtitle selection" +msgstr "Uz subtitru iestatÄ«Å¡anu" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" +"Lai atjauninÄtu savu uztvÄ“rÄ“ja programmatÅ«ru, lÅ«dzu rÄ«kojieties Å¡Ädi:\n" +"1) IzslÄ“dziet uztvÄ“rÄ“ju ar aizmugurÄ“jo baroÅ¡anas slÄ“dzis un pÄrliecinieties ka sÄknÄ“jama USB zibatmiņa ir pieslÄ“gta.\n" +"2) IeslÄ“dziet elektroapgÄdi atpakaļ un turiet DOWN pogu uz priekÅ¡Ä“jÄ paneļa nospiestu 10 sekundes.\n" +"3) Gaidiet sÄknÄ“Å¡anu un sekojiet veidņa norÄdÄ«jumiem." + +msgid "Today" +msgstr "Å odien" + +msgid "Toggle a cut mark at the current position" +msgstr "Ie/izslÄ“gt grieÅ¡anas iezÄ«mi paÅ¡reizÄ“jÄ pozÄ«cijÄ" + +msgid "Tone amplitude" +msgstr "Toņa amplitÅ«da" + +msgid "Tone mode" +msgstr "Toņa režīms" + +msgid "Toneburst" +msgstr "ToņsignÄls" + +msgid "Toneburst A/B" +msgstr "ToņsignÄls A/B" + +msgid "Top and bottom" +msgstr "AugÅ¡Ä“jÄ un apakÅ¡Ä“jÄ" + +msgid "Track" +msgstr "Celiņš" + +msgid "Translation" +msgstr "Tulkojums" + +msgid "Translation:" +msgstr "Tulkojums:" + +msgid "Translations" +msgstr "Tulkojumi" + +msgid "Transmission mode" +msgstr "PÄrraides režīms" + +msgid "Transponder" +msgstr "Transponderis" + +msgid "Transponder type" +msgstr "Transpondera veids" + +msgid "Trash can" +msgstr "Miskaste" + +msgid "Tries left:" +msgstr "AtlikuÅ¡i mÄ“Ä£inÄjumi:" + +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "MÄ“Ä£ina atrast izmantotus transponderus kabeļu tÄ«klÄ.. lÅ«dzu gaidiet..." + +msgid "Trying to download a new packetlist. Please wait..." +msgstr "MÄ“Ä£ina lejuplÄdÄ“t jaunu pakotņu sarakstu. LÅ«dzu gaidiet..." + +msgid "Tue" +msgstr "Ot" + +msgid "Tuesday" +msgstr "Otrdiena" + +msgid "Tune" +msgstr "Uztvert" + +msgid "Tune and focus" +msgstr "UztvÄ“rÄ“ja statuss" + +msgid "Tune failed!" +msgstr "UztverÅ¡ana neizdevÄs!" + +msgid "Tuner" +msgstr "UztvÄ“rÄ“js" + +msgid "Tuner configuration" +msgstr "UztvÄ“rÄ“ja konfigurÄcija" + +msgid "Tuner is not supported" +msgstr "" + +msgid "Tuner slot" +msgstr "UztvÄ“rÄ“ja slots" + +msgid "Tuner status" +msgstr "UztvÄ“rÄ“ja statuss" + +#, python-format +msgid "Tuner status %s" +msgstr "UztvÄ“rÄ“ja statuss %s" + +msgid "Tuner type" +msgstr "UztvÄ“rÄ“ja tips" + +msgid "Turkish" +msgstr "Turku" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +msgid "Two" +msgstr "Divi" + +msgid "Type" +msgstr "Veids" + +msgid "Type of scan" +msgstr "MeklÄ“Å¡anas veids" + +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "USALS kalibrÄ“Å¡ana" + +msgid "USB stick" +msgstr "USB zibatmiņa" + +msgid "USB stick wizard" +msgstr "USB zibatmiņas vednis" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Notiek neuzraudzÄ«ts jauninÄjums\n" +"LÅ«dzu uzgaidiet, kamÄ“r jÅ«su uztvÄ“rÄ“js pÄrstartÄ“jas\n" +"Tas var aizņemt dažas minÅ«tes" + +msgid "Undo install" +msgstr "Atsukt uzstÄdÄ«Å¡anu" + +msgid "Undo uninstall" +msgstr "Atsaukt atinstalÄ“Å¡anu" + +msgid "Unencrypted" +msgstr "NeÅ¡ifrÄ“ts" + +msgid "UnhandledKey" +msgstr "NeapstrÄdÄta poga" + +msgid "Unicable" +msgstr "Vienkabeļa" + +msgid "Unicable LNB" +msgstr "Vienkabeļa LNB" + +msgid "Unicable Martix" +msgstr "Vienkabeļa Martix" + +msgid "Uninstall" +msgstr "AtinstalÄ“t" + +msgid "Universal LNB" +msgstr "UniversÄlÄ LNB" + +msgid "Unknown" +msgstr "NezinÄms" + +msgid "Unmount" +msgstr "AtmontÄ“t" + +msgid "Unsupported" +msgstr "NeatbalstÄms" + +msgid "Update" +msgstr "AtjauninÄt" + +msgid "Update and ask to reboot" +msgstr "AtjauninÄt un jautÄt vai pÄrstartÄ“t" + +msgid "Update and reboot (recommended)" +msgstr "AtjauninÄt un pÄrstartÄ“t (ieteicams)" + +msgid "Update channel list only" +msgstr "AtjauninÄt tikai kanÄlu sarakstu" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "AtjauninÄÅ¡ana pabeigta, %d pakotne uzstÄdÄ«ta." +msgstr[1] "AtjauninÄÅ¡ana pabeigta, %d pakotnes uzstÄdÄ«tas." +msgstr[2] "AtjauninÄÅ¡ana pabeigta, %d pakotnes uzstÄdÄ«tas." + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "AtjauninÄÅ¡ana pabeigta. Vai vÄ“laties pÄrstartÄ“t uztvÄ“rÄ“ju?" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "AtjauninÄÅ¡ana pÄrtraukta. UztvÄ“rÄ“jam nestrÄdÄ interneta savienojums." + +msgid "Update has completed." +msgstr "AtjauninÄÅ¡ana pabeigta." + +msgid "Updatefeed not available." +msgstr "Barotnes nav pieejamas." + +msgid "Updating software catalog" +msgstr "Atjauno programmatÅ«ras katalogu" + +msgid "Upgrading" +msgstr "AtjaunoÅ¡ana" + +msgid "Use" +msgstr "Lietot" + +msgid "Use DHCP" +msgstr "Lietot DHCP" + +msgid "Use EIT EPG information when it is available." +msgstr "Lietot EIT EPG informÄciju kad pieejama." + +msgid "Use FreeSat EPG information when it is available." +msgstr "Lietot FreeSat EPG informÄciju kad pieejama." + +msgid "Use MHW EPG information when it is available." +msgstr "Lietot MHW EPG informÄciju kad pieejama." + +msgid "Use Netmed EPG information when it is available." +msgstr "Lietot Netmed EPG informÄciju kad pieejama." + +msgid "Use TV remote control" +msgstr "Lietot TV tÄlvadÄ«bas pulti." + +msgid "Use USALS for this sat" +msgstr "Lietot USALS Å¡im pavadonim " + +msgid "Use ViaSat EPG information when it is available." +msgstr "Lietot ViaSat EPG informÄciju kad pieejama." + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +msgid "Use a gateway" +msgstr "Lietot vÄrteju" + +msgid "Use fastscan channel names" +msgstr "Lietot ÄtrÄs meklÄ“Å¡anas kanÄlu nosaukumus" + +msgid "Use fastscan channel numbering" +msgstr "Lietot ÄtrÄs meklÄ“Å¡anas kanÄlu numurus" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "Lietot individuÄlus uzstÄdÄ«jumus katrai mapei" + +msgid "Use interface" +msgstr "Lietot interfeisu" + +msgid "Use official channel numbering" +msgstr "Lietot oficiÄlo kanÄlu numurÄ“Å¡nu" + +msgid "Use original DVB subtitle position" +msgstr "Lietot oriÄ£inÄlo DVB subtitru pozÄ«ciju" + +msgid "Use original teletext position" +msgstr "Lietot oriÄ£inÄlo teleteksta pozÄ«ciju" + +msgid "Use power measurement" +msgstr "Lietot sprieguma mÄ“rÄ«Å¡anu" + +msgid "Use the network wizard to configure selected network adapter" +msgstr "Lietot tÄ«kla vedni adaptera uzstÄdÄ«Å¡anai" + +msgid "Use the network wizard to configure your network\n" +msgstr "Lietot vedni tÄ«kla uzstÄdÄ«Å¡anai\n" + +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "Lietojiet tÄlvadÄ«bas pults augÅ¡up/lejup taustiņus, lai izdarÄ«tu izvÄ“li. PÄ“c tam spiediet OK." + +msgid "Use the wizard to set up basic features" +msgstr "Lietot vedni galveno iespÄ“ju iestatÄ«Å¡anai" + +msgid "Use these input device settings?" +msgstr "Lietot Å¡os ievades ierÄ«ces iestatÄ«jumus?" + +msgid "Use these settings?" +msgstr "Lietot Å¡os iestatÄ«jumus?" + +msgid "Use this video enhancement settings?" +msgstr "Lietot Å¡os video uzlaboÅ¡anas iestatÄ«jumus?" + +msgid "Use trash can in movielist" +msgstr "Lietot miskasti filmu sarakstÄ" + +msgid "Used service scan type" +msgstr "Lietotais kanÄlu meklÄ“Å¡anas veids" + +msgid "User - bouquets" +msgstr "LietotÄja - buÄ·etes" + +msgid "User defined" +msgstr "LietotÄja definÄ“ts" + +msgid "User defined transponder" +msgstr "LietotÄja definÄ“ts transponderis" + +msgid "User interface" +msgstr "LietotÄja interfeiss" + +msgid "Username" +msgstr "LietotÄja vÄrds" + +#, python-format +msgid "Using LNB %d" +msgstr "Lietot LNB %d" + +msgid "Using fixed address" +msgstr "Lietot fiksÄ“tu adresi" + +#, python-format +msgid "Using tuner %s" +msgstr "Lietot uztvÄ“rÄ“ju %s" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "Parasti, kad subtitru valoda ir tÄda pati kÄ audio valodu, subtitri netiek izmantoti. IeslÄ“dziet lai atļautu izmantot subtitrus." + +msgid "VCR scart" +msgstr "VCR scart" + +msgid "VMGM (intro trailer)" +msgstr "VMGM (ievada treileris)" + +msgid "Vertical" +msgstr "VertikÄlÄ" + +msgid "Vertical turning speed" +msgstr "VertikÄlÄs noskaņoÅ¡anas Ätrums" + +msgid "Video PID" +msgstr "Video PID" + +msgid "Video enhancement preview" +msgstr "Video uzlaboÅ¡anas priekÅ¡skatÄ«jums" + +msgid "Video enhancement settings" +msgstr "Video uzlaboÅ¡anas iestatÄ«jumi" + +msgid "Video enhancement setup" +msgstr "Video uzlaboÅ¡anas uzstÄdÄ«jumi" + +msgid "Video fine tuning" +msgstr "PrecÄ«zÄ video regulÄ“Å¡ana" + +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"AttÄ“la ieejas izvÄ“le\n" +"\n" +"Ja redzat Å¡o lappusi uz sava TV, spiediet OK (vai izvÄ“lieties citu ieeju).\n" +"\n" +"PÄ“c 20 sekundÄ“m tiks automÄtiski aktivizÄ“ta nÄkamÄ ieeja." + +msgid "Video mode selection." +msgstr "Video režīma izvÄ“le." + +msgid "Video output" +msgstr "Video izeja" + +msgid "Video setup" +msgstr "Video iestatÄ«jumi" + +msgid "Video wizard" +msgstr "Video vednis" + +#, python-format +msgid "Video: %s fps" +msgstr "Video: %s fps" + +msgid "VideoMode" +msgstr "Video režīms" + +msgid "Videocodec" +msgstr "Video kodeks" + +msgid "Videoformat" +msgstr "Video formÄts" + +msgid "Videosize" +msgstr "Video izmÄ“rs" + +msgid "View Rass interactive..." +msgstr "SkatÄ«t Rass interaktÄ«vi..." + +msgid "View details" +msgstr "SkatÄ«t detaļas" + +msgid "View list of available " +msgstr "SkatÄ«t sarakstu ar pieejamiem " + +msgid "View list of available CommonInterface extensions" +msgstr "SkatÄ«t sarakstu ar pieejamiem CommonInterfeisa paplaÅ¡inÄjumiem" + +msgid "View list of available EPG extensions." +msgstr "SkatÄ«t sarakstu ar pieejamiem EPG paplaÅ¡inÄjumiem." + +msgid "View list of available Satellite equipment extensions." +msgstr "SkatÄ«t sarakstu ar pieejamiem satelÄ«tu iekÄrtu paplaÅ¡inÄjumiem." + +msgid "View list of available communication extensions." +msgstr "SkatÄ«t sarakstu ar pieejamiem komunikÄciju paplaÅ¡inÄjumiem" + +msgid "View list of available default settings" +msgstr "SkatÄ«t sarakstu ar pieejamiem noklusÄ“juma iestatÄ«jumiem" + +msgid "View list of available display and userinterface extensions." +msgstr "SkatÄ«t sarakstu ar pieejamiem attÄ“la un lietotÄja interfeisa paplaÅ¡inÄjumiem." + +msgid "View list of available multimedia extensions." +msgstr "SkatÄ«t sarakstu ar pieejamiem multimediju paplaÅ¡inÄjumiem." + +msgid "View list of available networking extensions" +msgstr "SkatÄ«t sarakstu ar pieejamiem tÄ«kla paplaÅ¡inÄjumiem" + +msgid "View list of available recording extensions" +msgstr "SkatÄ«t sarakstu ar pieejamiem ieraksta paplaÅ¡inÄjumiem" + +msgid "View list of available skins" +msgstr "SkatÄ«t sarakstu ar pieejamÄm ÄdiņÄm" + +msgid "View list of available software extensions" +msgstr "SkatÄ«t sarakstu ar pieejamiem programmatÅ«ras paplaÅ¡inÄjumiem" + +msgid "View list of available system extensions" +msgstr "SkatÄ«t sarakstu ar pieejamiem sistÄ“mas paplaÅ¡inÄjumiem" + +msgid "View photos..." +msgstr "SkatÄ«t fotogrÄfijas..." + +msgid "View teletext..." +msgstr "SkatÄ«t teletekstu..." + +msgid "View video CD..." +msgstr "SkatÄ«t video CD..." + +msgid "Virtual keyboard" +msgstr "VirtuÄlÄ klaviatÅ«ra" + +msgid "Voltage mode" +msgstr "Sprieguma režīms" + +msgid "Volume" +msgstr "Skaļums" + +msgid "W" +msgstr "W" + +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "Bezvadu savienojums" + +msgid "WPA" +msgstr "WPA" + +msgid "WPA or WPA2" +msgstr "WPA vai WPA2" + +msgid "WPA2" +msgstr "WPA2" + +msgid "WSS on 4:3" +msgstr "WSS uz 4:3" + +msgid "Waiting" +msgstr "Gaida" + +msgid "Waiting for mount" +msgstr "Gaida montÄ“Å¡anu" + +msgid "Waiting for partition" +msgstr "Gaida partÄ«ciju dalÄ«Å¡anu" + +msgid "Wakeup" +msgstr "PamodinÄt" + +msgid "Wakeup TV from standby" +msgstr "PamodinÄt TV no gidstÄves" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "PamodinÄt uztvÄ“rÄ“ju no gidstÄves" + +msgid "Wakeup signal from TV" +msgstr "PamodinÄÅ¡anas signÄls no TV" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "UzmanÄ«bu: nav LNB; lieto noklusÄ“tos iestatÄ«jumus" + +msgid "Watch movies..." +msgstr "SkatÄ«t filmas..." + +msgid "Watch recordings..." +msgstr "SkatÄ«t ierakstus..." + +msgid "Wed" +msgstr "Tr" + +msgid "Wednesday" +msgstr "TreÅ¡diena" + +msgid "Weekday" +msgstr "Nedēļas diena" + +msgid "Weighted position" +msgstr "PozÄ«cijas nozÄ«mÄ«gums" + +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"SveicinÄti grieÅ¡anas redaktorÄ.\n" +"\n" +"Ejiet uz fragmenta, kuru jÅ«s vÄ“laties izgriezt, sÄkumu. Spiediet OK, lai izvÄ“lÄ“tos 'griezuma sÄkumu'.\n" +"\n" +"Tad ejiet uz beigÄm, spiediet OK, izvÄ“lieties 'griezuma beigas'. Tas arÄ« viss." + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "Laipni lÅ«dzam imidža atjauninÄÅ¡anas vednÄ«. Vednis palÄ«dzÄ“s jums atjaunot uztvÄ“rÄ“ja programmatÅ«ru nodroÅ¡inot dublÄ“jumkopiju paÅ¡reizÄ“jiem iestatÄ«jumiem, kÄ arÄ« Ä«sumÄ izskaidros kÄ veikt programmatÅ«ras atjaunoÅ¡anu." + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" +"Laipni lÅ«dzam.\n" +"\n" +"Ja jÅ«s vÄ“laties, savienot jÅ«su uztvÄ“rÄ“ju ar internetu Å¡is vednis veiks pamata tÄ«kla iestatÄ«Å¡anu.\n" +"\n" +"Nospiediet OK, lai sÄktu sava tÄ«kla konfigurÄ“Å¡anu" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" +"Laipni lÅ«dzam.\n" +"\n" +"Å is starta vednis veiks uztvÄ“rÄ“ja pamata iestatÄ«jumus.\n" +"Nospiediet pogu OK uz tÄlvadÄ«bas pults, lai pÄrietu uz nÄkamo soli." + +msgid "Welcome..." +msgstr "SveicinÄti..." + +msgid "West" +msgstr "Rietumi" + +msgid "West limit set" +msgstr "UzstÄdÄ«t rietumu limitu" + +msgid "What do you want to scan?" +msgstr "Ko JÅ«s vÄ“laties meklÄ“t?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "Ja iespÄ“jots attÄ“ls attÄ“lÄ, var aizvÄ“rt ar exit taustiņu." + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "Ja iespÄ“jots jÅ«s varat iestatÄ«t laiku kad neaktivitÄtes miega taimeris tiks ignorÄ“ts. Å inÄ« laikÄ neaktivitÄtes noteikÅ¡na ir atspÄ“jota bet arÄ« neaktivitÄtes aizture ir atspÄ“jota" + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "Ja iespÄ“jots, AIT dati tiks iekļauti http plÅ«smÄs. Tas atļaus klienta uztvÄ“rÄ“jam lietot HbbTV." + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "Ja iespÄ“jots, ECM dati tiks iekļauti http plÅ«smÄs. Tas atļaus klienta uztvÄ“rÄ“jam tos atkodÄ“t." + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "Ja iespÄ“jots, EIT dati tiks iekļauti http plÅ«smÄs. Tas atļaus klienta uztvÄ“rÄ“jam attÄ“lot EPG." + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "Ja iespÄ“jots, kad filma beigsies tiks parÄdÄ«ts paziņojums, un sÄksies nÄkoÅ¡Ä." + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "Ja iespÄ“jots, tiks parÄdÄ«ts paziņojums kad sÄkas ieraksts." + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "Ja iespÄ“jots, kad skatÄ«sieties radio kanÄlus bÅ«s redzams fona attÄ“ls." + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "Ja iespÄ“jots, tiks atļauts ieraksts ignorÄ“jot tieÅ¡Äs pÄrraides ja nav brÄ«vu uztvÄ“rÄ“ju." + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "Ja iespÄ“jots, tiks parÄdÄ«ts brÄ«dinÄjums un lietotÄjs varÄ“s izvÄ“lÄ“ties vai apstÄdÄ«nÄt, vai turpinÄt laika aizturi." + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "Ja iespÄ“jots, katrÄ buÄ·etÄ“ kanÄlu numerÄcija sÄksies ar '1'." + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "Ja iespÄ“jots, saturs ar izÅ¡Ä·irtspÄ“ju 4:3 bÅ«s izstiepts pa visu ekrÄnu." + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "Ja iespÄ“jots, pÄrslÄ“dzot kanÄlus pÄrslÄ“gÅ¡ana turpinÄsies nÄkoÅ¡ajÄ buÄ·etÄ“, ja beigsies kanÄlu saraksts esoÅ¡ajÄ buÄ·etÄ“." + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "Ja iespÄ“jots, dzÄ“stie ieraksti tiks pÄrvietoti uz miskasti nevis neatgriezeniski dzÄ“sti." + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "Ja iespÄ“jots, attÄ“los paÅ¡reiz/nÄkoÅ¡ais EIT notikumus infojoslÄ. Ja atspÄ“jots paÅ¡reiz/nÄkoÅ¡ais notikumi netiks rÄdÄ«ti no EPG keÅ¡atmiņas." + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "Ja iespÄ“jots, infojoslÄ tiks attÄ“lota kodÄ“Å¡anas informÄcija (ja to uztur Ädiņa)." + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "Ja iespÄ“jots, netiks parÄdÄ«tas kļūdas no common interfeisa moduļa." + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "Ja iespÄ“jots, netiks parÄdÄ«tas kļūdas pÄrslÄ“dzoties kanÄliem." + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "Ja iespÄ“jots, atskaņojot filmas vienmÄ“r tiks izmantoti ÄrÄ“jie subtitri." + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "Ja iespÄ“jots, priekÅ¡roka tiks dota grafiskajiem DVB subtitriem ja pieejami abu tipu subtitri." + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "Ja iespÄ“jots, grafiskie DVB subtitri tiks centrÄ“ti horizontÄli." + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "Ja iespÄ“jots, grafiskie DVB subtitri tiks parÄdÄ«ti to oriÄ£inÄlajÄ pozÄ«cijÄ." + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "Ja iespÄ“jots, grafiskie DVB subtitri tiks rÄdÄ«ti dzeltenÄ krÄsÄ, neatkarÄ«gi no oriÄ£inÄlÄs." + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "Ja iespÄ“jots, http plÅ«smas tiks dekodÄ“tas serverÄ«. AttÄlinÄtiem klientu uztvÄ“rÄ“jiem nebÅ«s jÄdekodÄ“." + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "Ja iespÄ“jots, ir iespÄ“jams iziet no filmu atskaņotÄja ar exit taustiņu." + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "Ja iespÄ“jots, tiks mÄ“rÄ«ta patÄ“rÄ“tÄ jauda lai noskaidrotu kad pozicionieris apstÄjies (ja to uztur uztvÄ“rÄ“js)." + +msgid "When enabled, number markers will be hiden." +msgstr "Ja iespÄ“jots, numuri tiks paslÄ“pti." + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "Ja iespÄ“jots, kanÄli tiks sagrupÄ“ti dažÄdÄs buÄ·etÄ“s." + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "Ja iespÄ“jots, kanÄlu pÄrslÄ“gÅ¡anas logÄ tiks parÄdÄ«ti kanÄlu numuri." + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "Ja iespÄ“jots, tiks lietoti subtitri cilvÄ“kiem ar dzirdes traucÄ“jumiem." + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "Ja iespÄ“jots, ja pieejami vairÄku tipu subtitri, priekÅ¡roka tiks dota subtitriem cilvÄ“kiem ar dzirdes traucÄ“jumiem," + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "Ja iespÄ“jots, teleteksta lapas tiks saglabÄtas keÅ¡atmiÅ†Ä lai bÅ«tu ÄtrÄka piekļuve." + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "Ja iespÄ“jots, teleteksta subtirtri tiks attÄ“loti to oriÄ£inÄlajÄ pozÄ«cijÄ." + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "Ja iespÄ“jots, VCR scart tiks rÄdÄ«ts galvenajÄ izvÄ“lnÄ“" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "Ja iespÄ“jots, klausoties radio kanÄlu pÄrslÄ“gÅ¡anas saraksts netiks rÄdÄ«ts." + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "Ja iespÄ“jots, sÄkoties jaunam notikumam tiks parÄdÄ«ta infojosla." + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "Ja iespÄ“jots, pÄrslÄ“dzot kanÄlus tiks parÄdÄ«ta infojosla." + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "Ja iespÄ“jots, pÄrtinot uz priekÅ¡u vai atpakaļ mediju failus tiks parÄdÄ«ta infojosla." + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "Ja iespÄ“jots, filmu sarakstÄ tiks parÄdÄ«ts katra ieraksta garums (tas prasa zinÄmu ielÄdes laiku)." + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "Ja iespÄ“jots, teletekstu subtitos netiks ņemti vÄ“rÄ oriÄ£inÄlie rindu dalÄ«jumi." + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "Ja iespÄ“jots, uztvÄ“rÄ“js automÄtiski lietos audio celiņu, kuru iepriekÅ¡ norÄdÄ«jÄt." + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "Ja iespÄ“jots, uztvÄ“rÄ“js automÄtiski lietos subtitrus, kurus iepriekÅ¡ norÄdÄ«jÄt." + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "Ja iespÄ“jots, uztvÄ“rÄ“js vairs nesekos iespÄ“jamÄm izmaiņÄm noskaņotajÄ transponderÄ. Neizmantojiet Å¡o iespÄ“ju, ja vien jÅ«s zinÄt, ko jÅ«s darÄt." + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "Ja iespÄ“jots, uztvÄ“rÄ“js izvÄ“lÄ“sies AC3 celiņu (ja pieejams)." + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "Ja iespÄ“jots, pÄ“c norÄdÄ«tÄ laika laika aizture sÄksies fonÄ automÄtiski." + +msgid "When enabled, use DHCP for the IP configuration." +msgstr "Ja iespÄ“jots, lieto DHCP IP konfigurÄcijai" + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "Ja iespÄ“jots, jÅ«su uztvÄ“rÄ“js noteiks aktivitÄti VRC SCART ieejÄ." + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "Ja nav nulle, ieraksts sÄksies ÄtrÄk, nevis laikÄ kas parÄdÄ«ts EPG." + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "Ja nav nulle, ieraksts sÄksies vÄ“lÄk, nevis laikÄ kas parÄdÄ«ts EPG." + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "Ja attÄ“la malu attiecÄ«ba ir 16:9 izvÄ“lieties, kÄ palielinÄt/stiept attÄ“lu." + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "Ja attÄ“la malu attiecÄ«ba ir 4:3 izvÄ“lieties, kÄ palielinÄt/stiept attÄ“lu." + +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"Atjaunojot rÅ«pnÄ«cas iestatÄ«jumus, jÅ«s zaudÄ“siet VISUS konfigurÄcijas datus\n" +"(ieskaitot buÄ·etes, kanÄlus, pavadoņu datus ...)\n" +"PÄ“c rÅ«pnÄ«cas iestatÄ«jumu atjaunoÅ¡anas, ierÄ«ce automÄtiski pÄrstartÄ“sies!\n" +"\n" +"Vai tieÅ¡Äm atjaunot rÅ«pnÄ«cas iestatÄ«jumus?" + +msgid "Where do you want to backup your settings?" +msgstr "Kur JÅ«s vÄ“laties veidot savu iestatÄ«jumu dublÄ“jumkopiju?" + +msgid "Where to save temporary timeshift recordings?" +msgstr "Kur saglabÄt pagaidu laika aiztures ierakstus?" + +msgid "Wireless LAN" +msgstr "Bezvadu tÄ«kls" + +msgid "Wireless network" +msgstr "Bezvadu tÄ«kls" + +msgid "Wireless network configuration..." +msgstr "Bezvadu tÄ«kla konfigurÄcija..." + +msgid "Wireless network connection setup" +msgstr "Bezvadu tÄ«kla savienojuma iestatÄ«jumi" + +msgid "Wireless network connection setup." +msgstr "Bezvadu tÄ«kla savienojuma iestatÄ«jumi." + +msgid "Wireless network state" +msgstr "Bezvadu tÄ«kla statuss" + +msgid "With popup" +msgstr "Ar uznirstoÅ¡o logu" + +msgid "Without popup" +msgstr "Bez uznirstoÅ¡Ä loga" + +msgid "Would you like to install a softcam?" +msgstr "Vai vÄ“laties uzstÄdÄ«t softcam?" + +msgid "Write error while recording. Disk full?\n" +msgstr "RakstÄ«Å¡anas kļūda ieraksta laikÄ. Vai disks ir pilns?\n" + +msgid "Write failed!" +msgstr "RakstÄ«Å¡ana neizdevÄs!" + +msgid "YPbPr" +msgstr "YPbPr" + +msgid "Year" +msgstr "Gads" + +msgid "Yellow DVB subtitles" +msgstr "Dzelteni DVB subtitri" + +msgid "Yes" +msgstr "JÄ" + +msgid "Yes and save" +msgstr "JÄ un saglabÄt" + +msgid "Yes and save in movie dir" +msgstr "JÄ un saglabÄt filmu mapÄ“" + +msgid "Yes to all" +msgstr "JÄ visiem" + +msgid "Yes, always" +msgstr "JÄ vienmÄ“r" + +msgid "Yes, and delete this movie" +msgstr "JÄ, un dzÄ“st Å¡o filmu" + +msgid "Yes, backup my settings!" +msgstr "JÄ, veidot iestatÄ«jumu dublÄ“jumkopiju!" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +msgid "Yes, do a manual scan now" +msgstr "JÄ, veikt manuÄlo meklÄ“Å¡anu tagad" + +msgid "Yes, do an automatic scan now" +msgstr "JÄ, veikt automÄtisko meklÄ“Å¡anu tagad" + +msgid "Yes, do another manual scan now" +msgstr "JÄ, veikt vÄ“l vienu manuÄlo meklÄ“Å¡anu tagad" + +msgid "Yes, perform a shutdown now." +msgstr "JÄ, izslÄ“gt tagad." + +msgid "Yes, restore the settings now" +msgstr "JÄ, atjaunot iestatÄ«jumus tagad" + +msgid "Yes, returning to movie list" +msgstr "JÄ, atgriezties uz filmu sarakstu" + +msgid "Yesterday" +msgstr "Vakar" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" +"JÅ«s jau esat iestatÄ«jis kanÄlu sarakstu,\n" +"vai vÄ“laties to nodzÄ“st\n" +"\"%s\"?" + +msgid "You can cancel the installation." +msgstr "JÅ«s varat atcelt uzstÄdÄ«Å¡anu." + +msgid "You can cancel the removal." +msgstr "JÅ«s varat atcelt nodzÄ“Å¡anu." + +msgid "You can continue watching TV etc. while this is running." +msgstr "JÅ«s varat turpinÄt skatÄ«ties TV kamÄ“r Å¡is notiek." + +msgid "You can install this plugin." +msgstr "JÅ«s varat uzstÄdÄ«t Å¡o spraudni." + +msgid "You can only burn receiver recordings!" +msgstr "JÅ«s varat ierakstÄ«t tikai uztvÄ“rÄ“ja ierakstus!" + +msgid "You can remove this plugin." +msgstr "JÅ«s varat izdzÄ“st Å¡o spraudni." + +msgid "You cannot delete this!" +msgstr "JÅ«s Å¡o nevarat dzÄ“st!" + +msgid "You didn't select a channel to record from." +msgstr "JÅ«s nenorÄdÄ«jÄt ierakstÄmo kanÄlu." + +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "JÅ«s izvÄ“lÄ“jÄties veidot iestatÄ«jumu dublÄ“jumkopiju. LÅ«dzu spiediet OK, lai sÄktu kopijas veidoÅ¡anu." + +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "JÅ«s izvÄ“lÄ“jÄties veidot jaunu .NFI pÄrÅ¡uvÄ“ja sÄknÄ“jamu USB zibatmiņu. Tadēļ USB zibatmiņa tiks pÄrdalÄ«ta un dzÄ“sti visi tajÄ esoÅ¡ie dati." + +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "JÅ«s izvÄ“lÄ“jÄties atjaunot jÅ«su iestatÄ«jumus. Enigma2 pÄ“c atjaunoÅ¡anas pÄrstartÄ“sies. LÅ«dzu nospiediet OK, lai sÄktu atjaunoÅ¡anu." + +#, python-format +msgid "You have to wait %s!" +msgstr "Jums jÄuzgaida %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" +"JÅ«su datoram jÄbÅ« savienotam ar uztvÄ“rÄ“ju. Ja jums nepiecieÅ¡ama papildus informÄcija, lÅ«dzu apmeklÄ“jiet http://openpli.org/.\n" +"JÅ«su uztvÄ“rÄ“js tagad tiks apturÄ“ts. PÄ“c tam, kad ir veiktas atjauninÄÅ¡anas instrukcijas no mÄjas lapas, jÅ«su jaunÄ programmatÅ«ra piedÄvÄs jums atjaunot iestatÄ«jumus." + +msgid "You system does not support ext4" +msgstr "JÅ«su sistÄ“ma neatbalsta ext4" + +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "DublÄ“jumkopija izveidota. Tagad izskaidrosim turpmÄko atjauninÄÅ¡anas procesu. " + +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "JÅ«su kolekcija pÄrsniedz diska lielumu, jums ir nepiecieÅ¡ams tukÅ¡s dubultslÄņa DVD!" + +msgid "Your current collection will get lost!" +msgstr "JÅ«su paÅ¡reizÄ“jÄ kolekcija zudÄ«s!" + +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"JÅ«su fronprocesora programmatÅ«ru nepiecieÅ¡ams atjauninÄt.\n" +"Spiediet OK, lai sÄktu atjauninÄÅ¡anu." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"JÅ«su fronprocesors tiks atjaunots\n" +"LÅ«dzu uzgaidiet kamÄ“r jÅ«su uztvÄ“rÄ“js pÄrstartÄ“sies\n" +"Tas var prasÄ«t kÄdu laiku" + +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"JÅ«su interneta savienojums nestrÄdÄ!\n" +"LÅ«dzu izvÄ“lieties ko vÄ“laties darÄ«t tÄlÄk." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "JÅ«su interneta savienojums strÄdÄ (ip: %s)" + +msgid "Your network configuration has been activated." +msgstr "TÄ«kla konfigurÄcija aktivizÄ“ta." + +msgid "Your receiver does not have an internet connection" +msgstr "JÅ«su uztvÄ“rÄ“jam nav interneta savienojuma" + +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"JÅ«su uztvÄ“rÄ“js ir gatavs lietoÅ¡anai.\n" +"\n" +"JÅ«su interneta savienojums strÄdÄ.\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" +"JÅ«su uztvÄ“rÄ“js ir gatavs lietoÅ¡anai.\n" +"\n" +"JÅ«su interneta savienojums strÄdÄ.\n" +"\n" +"LÅ«dzu nospiediet OK lai turpinÄtu." + +msgid "Your receiver is rebooting" +msgstr "JÅ«su uztvÄ“rÄ“js pÄrstartÄ“jas" + +msgid "Your receiver is shutting down" +msgstr "JÅ«su uztvÄ“rÄ“js izslÄ“dzas" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "JÅ«su uztvÄ“rÄ“js izslÄ“dzas. LÅ«dzu uzgaidiet..." + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "JÅ«su uztvÄ“rÄ“js nav lietojams. Pirms uztvÄ“rÄ“ja pÄrstartÄ“Å¡anas, lai saņemtu palÄ«dzÄ«bu lÅ«dzu izlasiet rokasgrÄmatu." + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "JÅ«su uztvÄ“rÄ“js miega taimera dēļ pÄriet gaidstÄvÄ“." + +msgid "Your receiver will got to standby due to inactivity." +msgstr "JÅ«su uztvÄ“rÄ“js pÄriet gaidstÄvÄ“ jo nav aktivitÄtes." + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "JÅ«su uztvÄ“rÄ“js pÄrstartÄ“sies pÄ“c tam kad nospiedÄ«siet OK uz tÄlvadÄ«bas pults." + +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"JÅ«su bezvadu LAN interneta pieslÄ“gumu nevar uzsÄkt!\n" +"Vai esat pievienots USB WLAN adapteri?\n" +"\n" +"LÅ«dzu izvÄ“lieties, ko jÅ«s vÄ“laties darÄ«t tÄlÄk." + +msgid "Zap" +msgstr "PÄrslÄ“gt" + +msgid "Zap back to previously tuned service?" +msgstr "Atgriezties uz iepriekÅ¡ uztverto kanÄlu?" + +msgid "Zap back to service before positioner setup?" +msgstr "Atgriezties uz kanÄlu pirms pozicioniera iestatÄ«Å¡anas?" + +msgid "Zap back to service before tuner setup?" +msgstr "Atgriezties uz kanÄlu pirms uztvÄ“rÄ“ja iestatÄ«Å¡anas?" + +msgid "Zap focus to Picture in Picture" +msgstr "PÄrslÄ“gties uz AttÄ“lu AttÄ“lÄ" + +msgid "Zap focus to main screen" +msgstr "PÄrslÄ“gties uz pamata ekrÄnu" + +msgid "Zap mode" +msgstr "PÄrslÄ“gÅ¡anÄs režīms" + +msgid "Zap to selected channel" +msgstr "PÄrslÄ“gties uz izvÄ“lÄ“to kanÄlu" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "PÄrslÄ“gties uz izvÄ“lÄ“to kanÄlu, vai parÄdÄ«t detalizÄ“tu notikuma informÄciju (atkarÄ«bÄ no uzstÄdÄ«jumiem)" + +msgid "[alternative edit]" +msgstr "[alternatÄ«vu rediģēšana]" + +msgid "[bouquet edit]" +msgstr "[buÄ·eÅ¡u rediģēšana]" + +msgid "[favourite edit]" +msgstr "[favorÄ«tu rediģēšana]" + +msgid "[move mode]" +msgstr "[pÄrvietoÅ¡anas režīms]" + +msgid "a gui to assign services/providers to common interface modules" +msgstr "gui ko pieÅ¡Ä·irt kanÄliem/operatoriem common interfeisa moduļos" + +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "gui ko pieÅ¡Ä·irt kanÄliem/operatoriem/caidiem common interfeisa moduļos" + +msgid "abort alternatives edit" +msgstr "pÄrtraukt alternatÄ«vu rediģēšanu" + +msgid "abort bouquet edit" +msgstr "pÄrtraukt buÄ·eÅ¡u rediģēšanu" + +msgid "abort favourites edit" +msgstr "pÄrtraukt favorÄ«tu rediģēšanu" + +msgid "about to start" +msgstr "gatavojas sÄkt" + +msgid "activate network adapter configuration" +msgstr "aktivizÄ“t tÄ«kla adaptera konfigurÄciju" + +msgid "add alternatives" +msgstr "pievienot alternatÄ«vas" + +msgid "add bookmark" +msgstr "pievienot grÄmatzÄ«mi" + +msgid "add bouquet" +msgstr "pievienot buÄ·eti" + +msgid "add marker" +msgstr "pievienot marÄ·ieri" + +msgid "add service to bouquet" +msgstr "pievienot kanÄlu buÄ·etei" + +msgid "add service to favourites" +msgstr "pievienot kanÄlu favorÄ«tiem" + +msgid "add to parental protection" +msgstr "pievienot vecÄku kontrolei" + +msgid "adult movie/drama" +msgstr "pieauguÅ¡o filma/drÄma" + +msgid "advanced" +msgstr "paplaÅ¡inÄts" + +msgid "adventure/western/war" +msgstr "piedzÄ«vojumi/vesterns/kara" + +msgid "advertisement/shopping" +msgstr "reklÄma/iepirkÅ¡anÄs" + +msgid "after " +msgstr "pÄ“c" + +msgid "alphabetic" +msgstr "pÄ“c alfabÄ“ta" + +msgid "alphabetic reverse" +msgstr "alfabÄ“tiski reversÄ" + +msgid "alternative" +msgstr "alternatÄ«vi" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "mÄksla/kultÅ«ra (bez mÅ«zikas, kopÄ“jÄ)" + +msgid "arts/culture magazine" +msgstr "mÄksla/kultÅ«ra žurnÄli" + +msgid "athletics" +msgstr "atlÄ“tika" + +msgid "audio tracks" +msgstr "skaņas celiņi" + +msgid "auto" +msgstr "auto" + +msgid "automatic" +msgstr "automÄtiski" + +msgid "back" +msgstr "atpakaļ" + +msgid "background image" +msgstr "fona attÄ“ls" + +msgid "ballet" +msgstr "balets" + +#, python-format +msgid "bc%s" +msgstr "bc%s" + +msgid "better" +msgstr "labÄks" + +msgid "black" +msgstr "melns" + +msgid "black & white" +msgstr "melns un balts" + +msgid "blacklist" +msgstr "melnais saraksts" + +msgid "blue" +msgstr "zilÄ" + +msgid "broadcasting/press" +msgstr "apraide/prese" + +msgid "by date" +msgstr "pÄ“c datuma" + +msgid "cartoon/puppets" +msgstr "multfilmas/leļļu" + +msgid "center" +msgstr "centrs" + +msgid "centered" +msgstr "centrÄ“ti" + +msgid "centered, wrapped" +msgstr "centrÄ“ti, saspiesti" + +msgid "chapters" +msgstr "nodaļas" + +msgid "childrens's/youth program (general)" +msgstr "bÄ“rnu/jaunieÅ¡u programmas (vispÄrÄ«gi)" + +msgid "circular left" +msgstr "cirkulÄrÄ kreisÄ" + +msgid "circular right" +msgstr "cirkulÄrÄ labÄ" + +msgid "comedy" +msgstr "komÄ“dija" + +msgid "complex" +msgstr "komplicÄ“ts" + +msgid "config menu" +msgstr "konfigurÄcijas izvÄ“lne" + +msgid "confirmed" +msgstr "apstiprinÄts" + +msgid "connected" +msgstr "savienots" + +msgid "continue" +msgstr "turpinÄt" + +msgid "cooking" +msgstr "cepÅ¡ana" + +msgid "copy to bouquets" +msgstr "kopÄ“t uz buÄ·etÄ“m" + +msgid "create directory" +msgstr "izveidot mapi" + +#, python-format +msgid "currently installed image: %s" +msgstr "paÅ¡reiz uzstÄdÄ«ts imidžs: %s" + +msgid "daily" +msgstr "ik dienu" + +msgid "day" +msgstr "diena" + +msgid "default" +msgstr "noklusÄ“juma" + +msgid "delete cut" +msgstr "dzÄ“st griezumu" + +msgid "delete..." +msgstr "dzÄ“Å¡..." + +msgid "descramble and record ecm" +msgstr "dekodÄ“t un ierakstÄ«t ecm" + +msgid "detective/thriller" +msgstr "detektÄ«vs/trilleris" + +msgid "disable" +msgstr "izslÄ“gt" + +msgid "disable move mode" +msgstr "izslÄ“gt pÄrvietoÅ¡anas režīmu" + +msgid "disabled" +msgstr "izslÄ“gts" + +msgid "disconnected" +msgstr "atvienots" + +msgid "discussion/interview/debate" +msgstr "diskusijas/intervbijas/debates" + +msgid "do nothing" +msgstr "neko nedarÄ«t" + +msgid "documentary" +msgstr "dokumentÄlais" + +msgid "don't descramble, record ecm" +msgstr "nedekodÄ“t, ierakstÄ«t ecm" + +msgid "done!" +msgstr "gatavs!" + +msgid "east" +msgstr "austrumi" + +msgid "economics/social advisory" +msgstr "ekonomika/sociÄlÄ konsultatÄ«vÄ" + +msgid "edit alternatives" +msgstr "rediģēt alternatÄ«vas" + +msgid "education/science/factual topics (general)" +msgstr "izglÄ«tÄ«ba/zinÄtne/faktiskÄs tÄ“mas (vispÄrÄ«gi)" + +msgid "empty" +msgstr "tukÅ¡s" + +msgid "enable" +msgstr "aktivizÄ“t" + +msgid "enable bouquet edit" +msgstr "aktivizÄ“t buÄ·eÅ¡u rediģēšanu" + +msgid "enable favourite edit" +msgstr "aktivizÄ“t favorÄ«tu rediģēšanu" + +msgid "enable move mode" +msgstr "aktivizÄ“t pÄrvietoÅ¡anas režīmu" + +msgid "enabled" +msgstr "aktivizÄ“ts" + +msgid "end alternatives edit" +msgstr "beigt alternatÄ«vu rediģēšanu" + +msgid "end bouquet edit" +msgstr "beigt buÄ·eÅ¡u rediģēšanu" + +msgid "end cut here" +msgstr "beigt grieÅ¡anu Å¡eit" + +msgid "end favourites edit" +msgstr "beigt favorÄ«tu rediģēšanu" + +msgid "entertainment (10-16 year old)" +msgstr "izklaide (10-16 gadu veciem)" + +msgid "entertainment (6-14 year old)" +msgstr "izklaide (6-14 gadu veciem)" + +msgid "equal to" +msgstr "vienÄds ar" + +msgid "equestrian" +msgstr "jÄtnieka" + +msgid "exit DVD player or return to file browser" +msgstr "iziet no DVD atskaņotÄja un atgriezties failu pÄrlÅ«kÄ" + +msgid "exit movielist" +msgstr "iziet no filmu saraksta" + +msgid "exit network adapter configuration" +msgstr "iziet no tÄ«kla adaptera konfigurÄcijas" + +msgid "exit networkadapter setup menu" +msgstr "iziet no tÄ«kla adaptera iestatÄ«Å¡anas izvÄ“lnes" + +msgid "experimental film/video" +msgstr "eksperimentÄlÄs filmas/video" + +msgid "false" +msgstr "nepatiess" + +msgid "fashion" +msgstr "mode" + +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "failu formÄti (BMP, PNG, JPG, GIF)" + +msgid "filename" +msgstr "faila nosaukums" + +msgid "film/cinema" +msgstr "filmas/kino" + +msgid "fine arts" +msgstr "tÄ“lotÄjmÄksla" + +msgid "fine-tune your display" +msgstr "displeja precÄ«zÄ pieregulÄ“Å¡ana" + +msgid "fitness & health" +msgstr "fitness un veselÄ«ba" + +msgid "flat alphabetic" +msgstr "sakÄrtot pÄ“c alfabÄ“ta" + +msgid "flat alphabetic reverse" +msgstr "sakÄrtot pÄ“c alfabÄ“ta reversi" + +msgid "folk/traditional music" +msgstr "folks/tautas mÅ«zika" + +msgid "football/soccer" +msgstr "futbols" + +msgid "foreign countries/expeditions" +msgstr "Ärvalstis/ekspedÄ«cijas" + +msgid "forward to the next chapter" +msgstr "pÄradresÄ“t uz nÄkamo nodaļu" + +msgid "free" +msgstr "brÄ«vs" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "tÄlÄkizglÄ«tÄ«ba" + +msgid "game show/quiz/contest" +msgstr "spēļu Å¡ovi/viktorÄ«na/konkurss" + +msgid "gardening" +msgstr "dÄrzkopÄ«ba" + +msgid "go to deep standby" +msgstr "iet uz dziļo gaidstÄvi" + +msgid "go to standby" +msgstr "iet uz gaidstÄvi" + +msgid "grab this frame as bitmap" +msgstr "tvert kadru bitmap formÄtÄ" + +msgid "green" +msgstr "zaļÄ" + +msgid "handicraft" +msgstr "rokdarbi" + +msgid "height" +msgstr "augstums" + +msgid "help..." +msgstr "palÄ«dzÄ«ba..." + +msgid "horizontal" +msgstr "horizontÄlÄ" + +msgid "information/education/school program" +msgstr "informÄcija/izglÄ«tÄ«ba/skolas programma" + +msgid "init module" +msgstr "inicializÄ“t moduli" + +msgid "init modules" +msgstr "inicializÄ“t moduļus" + +msgid "insert mark here" +msgstr "ievietot iezÄ«mi" + +msgid "invalid type" +msgstr "nepareizs tips" + +msgid "jazz" +msgstr "džezs" + +msgid "jump back to the previous title" +msgstr "pÄrlÄ“kt uz iepriekÅ¡Ä“jo nosaukumu" + +msgid "jump forward to the next title" +msgstr "pÄrlÄ“kt uz nÄkamo nosaukumu" + +msgid "languages" +msgstr "valodas" + +msgid "leave movie player..." +msgstr "iziet no filmu atskaņotÄja..." + +msgid "left" +msgstr "kreisÄ" + +msgid "left, wrapped" +msgstr "pa kreisi, saspiesti" + +msgid "leisure hobbies (general)" +msgstr "atpÅ«tas hobiji (vispÄrÄ«gi)" + +msgid "length" +msgstr "garums" + +msgid "limit ..., aborting !" +msgstr "limits ..., pÄrtrauc !" + +msgid "list style compact" +msgstr "kompakts saraksta stils" + +msgid "list style compact with description" +msgstr "kompakts saraksta stils ar aprakstu" + +msgid "list style default" +msgstr "noklusÄ“tais saraksta stils" + +msgid "list style single line" +msgstr "vienlÄ«nijas saraksta stils" + +msgid "literature" +msgstr "literatÅ«ra" + +msgid "live broadcast" +msgstr "dzÄ«vais raidÄ«jums" + +msgid "locked" +msgstr "noenkurojies" + +msgid "loopthrough to" +msgstr "loopthrough to" + +msgid "magazines/reports/documentary" +msgstr "avÄ«zes/atskaites/dokumentÄlais" + +msgid "manual" +msgstr "manuÄls" + +msgid "martial sports" +msgstr "cīņas sports" + +msgid "medicine/physiology/psychology" +msgstr "medicÄ«na/fizioloÄ£ija/psiholoÄ£ija" + +msgid "menu" +msgstr "izvÄ“lne" + +msgid "mins" +msgstr "min." + +msgid "minutes" +msgstr "minÅ«tÄ“m" + +msgid "month" +msgstr "mÄ“nesis" + +msgid "motor sport" +msgstr "motosports" + +msgid "motoring" +msgstr "autosports" + +msgid "move down to last entry" +msgstr "pÄrvietot lejup uz pÄ“dÄ“jo ierakstu" + +msgid "move down to next entry" +msgstr "pÄrvietot lejup uz nÄkamo ierakstu" + +msgid "move up to first entry" +msgstr "pÄrvietot augÅ¡up uz pirmo ierakstu" + +msgid "move up to previous entry" +msgstr "pÄrvietot augÅ¡up uz iepriekÅ¡Ä“jo ierakstu" + +msgid "movie/drama (general)" +msgstr "filmas/drÄma (vispÄrÄ«gi)" + +msgid "multinorm" +msgstr "multinorma" + +msgid "music/ballet/dance (general)" +msgstr "mÅ«zika/balets/dejas (vispÄrÄ«gi)" + +msgid "musical/opera" +msgstr "mÅ«zika/opera" + +msgid "nature/animals/environment" +msgstr "daba/dzÄ«vnieki/vide" + +msgid "never" +msgstr "nekad" + +msgid "new media" +msgstr "jauni mÄ“diji" + +msgid "news magazine" +msgstr "ziņas žurnÄli" + +msgid "news/current affairs (general)" +msgstr "jaunumi/aktualitÄtes (vispÄrÄ«gi)" + +msgid "news/weather report" +msgstr "jaunumi/laika ziņas" + +msgid "no" +msgstr "nÄ“" + +msgid "no CAId selected" +msgstr "nav izvÄ“lÄ“ts CAId" + +msgid "no CI slots found" +msgstr "nav atrasti CI sloti" + +msgid "no module found" +msgstr "modulis nav atrasts" + +msgid "no storage devices found" +msgstr "atmiņas ierÄ«ce nav atrasta" + +msgid "none" +msgstr "nav" + +msgid "normal" +msgstr "normÄli" + +msgid "not configured" +msgstr "nav uzstÄdÄ«ts" + +msgid "not locked" +msgstr "nav noenkurojies" + +msgid "not supported" +msgstr "nav atbalstÄ«ts" + +msgid "not used" +msgstr "neizmantots" + +msgid "nothing connected" +msgstr "nekas nav pievienots" + +msgid "of a DUAL layer medium used." +msgstr "no lietotÄ DIVSLĀŅU datu nesÄ“ja." + +msgid "of a SINGLE layer medium used." +msgstr "no lietotÄ VIENSLĀŅA datu nesÄ“ja." + +msgid "off" +msgstr "izslÄ“gts" + +msgid "offset is" +msgstr "kompensÄ“" + +msgid "on" +msgstr "ieslÄ“gts" + +msgid "on READ ONLY medium." +msgstr "uz TIKAI LASÄ€MA datu nesÄ“ja." + +msgid "on end of movie" +msgstr "uz filmas beigÄm" + +msgid "once" +msgstr "vienreiz" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +msgid "open nameserver configuration" +msgstr "atvÄ“rt DNS konfigurÄciju" + +msgid "original" +msgstr "oriÄ£inÄls" + +msgid "original language" +msgstr "oriÄ£inÄlÄ valoda" + +msgid "pass" +msgstr "Å¡obrÄ«d" + +msgid "performing arts" +msgstr "skatuves mÄksla" + +msgid "play as picture in picture" +msgstr "atskaņot kÄ attÄ“lu attÄ“lÄ" + +msgid "play in mainwindow" +msgstr "atskaņot pamatlogÄ" + +msgid "please press OK when ready" +msgstr "kad gatavs, lÅ«dzu spiediet OK" + +msgid "please wait, loading picture..." +msgstr "lÅ«dzu uzgaidiet, ielÄdÄ“ attÄ“lu..." + +msgid "popular culture/traditional arts" +msgstr "tautas kultÅ«ra/tradicionÄlÄ mÄksla" + +msgid "pre-school children's program" +msgstr "pirmskolas bÄ“rnu programma" + +msgid "receiver software because updates are available." +msgstr "uztvÄ“rÄ“ja programmatÅ«ru jo atjaunojumi pieejami." + +msgid "record" +msgstr "ierakstÄ«t" + +msgid "recording..." +msgstr "ieraksta..." + +msgid "red" +msgstr "sarkanÄ" + +msgid "religion" +msgstr "reliÄ£ija" + +msgid "remarkable people" +msgstr "ievÄ“rojami cilvÄ“ki" + +msgid "remove after this position" +msgstr "dzÄ“st pÄ“c Å¡Ä«s pozÄ«cijas" + +msgid "remove all alternatives" +msgstr "dzÄ“st visas alternatÄ«vas" + +msgid "remove all new found flags" +msgstr "dzÄ“st visus 'jaunatrasts' marÄ·Ä“jumus" + +msgid "remove before this position" +msgstr "dzÄ“st pirms Å¡Ä«s pozÄ«cijas" + +msgid "remove bookmark" +msgstr "dzÄ“st grÄmatzÄ«mi" + +msgid "remove directory" +msgstr "dzÄ“st mapi" + +msgid "remove entry" +msgstr "dzÄ“st ierakstu" + +msgid "remove from parental protection" +msgstr "dzÄ“st no vecÄku kontroles" + +msgid "remove new found flag" +msgstr "dzÄ“st 'jaunatrasts' marÄ·Ä“jumu" + +msgid "remove selected satellite" +msgstr "dzÄ“st izvÄ“lÄ“to pavadoni" + +msgid "remove this mark" +msgstr "dzÄ“st iezÄ«mi" + +msgid "rename entry" +msgstr "pÄrsaukt ierakstu" + +msgid "repeat playlist" +msgstr "atkÄrtot repertuÄru" + +msgid "repeated" +msgstr "atkÄrtots" + +msgid "reverse by date" +msgstr "otrÄdi pÄ“c datuma" + +msgid "rewind to the previous chapter" +msgstr "atgriezties uz iepriekÅ¡Ä“jo nodaļu" + +msgid "right" +msgstr "labÄ" + +msgid "right, wrapped" +msgstr "pa labi, saspiesti" + +msgid "rock/pop" +msgstr "roks/pops" + +msgid "romance" +msgstr "romance" + +msgid "save last directory on exit" +msgstr "izejot, saglabÄt pÄ“dÄ“jo mapi" + +msgid "save playlist on exit" +msgstr "izejot, saglabÄt repertuÄru" + +msgid "scan state" +msgstr "meklÄ“Å¡anas statuss" + +msgid "science fiction/fantasy/horror" +msgstr "zinÄtniskÄ fantastika/fantÄzijas/Å¡ausmu" + +msgid "second cable of motorized LNB" +msgstr "otrs motorizÄ“tÄs LNB kabelis" + +msgid "seconds" +msgstr "sekundes" + +msgid "select" +msgstr "izvÄ“lÄ“ties" + +msgid "select CAId's" +msgstr "izvÄ“lieties CAIdus" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +msgid "select menu entry" +msgstr "norÄdÄ«t izvÄ“lnes ierakstu" + +msgid "select movie" +msgstr "izvÄ“lÄ“ties filmu" + +msgid "select the movie path" +msgstr "izvÄ“lÄ“ties ceļu uz filmÄm" + +msgid "serious music/classic music" +msgstr "nopietnÄ mÅ«zika/klasiskÄ mÅ«zika" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "nopietnÄ/klasiskÄ/reliÄ£iskÄ/vÄ“sturiskÄ filma/drÄma" + +msgid "service PIN" +msgstr "kanÄla PIN" + +msgid "set as startup service" +msgstr "uzstÄdÄ«t kÄ starta kanÄlu" + +msgid "setup PIN" +msgstr "iestatÄ«jumu PIN" + +msgid "show DVD main menu" +msgstr "rÄdÄ«t DVD galveno izvÄ“lni" + +msgid "show all tags" +msgstr "rÄdÄ«t visas etiÄ·etes" + +msgid "show alternatives" +msgstr "rÄdÄ«t alternatÄ«vas" + +msgid "show event details" +msgstr "rÄdÄ«t notikuma detaļas" + +msgid "show extended description" +msgstr "rÄdÄ«t paplaÅ¡inÄto aprakstu" + +msgid "show mediaplayer on mainmenu" +msgstr "parÄdÄ«t mediju atskaņotÄju pamata izvÄ“lnÄ“" + +msgid "show softwaremanager in setup menu" +msgstr "parÄdÄ«t programmatÅ«ras pÄrvaldnieku iestatÄ«jumu izvÄ“lnÄ“" + +msgid "show softwaremanager on blue button" +msgstr "parÄdÄ«t programmatÅ«ras pÄrvaldnieku ar zilo pogu" + +msgid "show tag menu" +msgstr "rdÄ«t etiÄ·etes izvÄ“lni" + +msgid "show transponder info" +msgstr "rÄdÄ«t transpondera informÄciju" + +msgid "show/game show (general)" +msgstr "Å¡ovi/spēļu Å¡ovi (vispÄrÄ«gi)" + +msgid "shuffle" +msgstr "jaukts" + +msgid "shut down" +msgstr "izslÄ“gt" + +msgid "simple" +msgstr "vienkÄrÅ¡s" + +msgid "skip backward" +msgstr "pÄrlÄ“kt atpakaļ" + +msgid "skip forward" +msgstr "pÄrlÄ“kt uz priekÅ¡u" + +msgid "soap/melodram/folkloric" +msgstr "ziepju opera/melodrÄma/folklora" + +msgid "social/political issues/economics (general)" +msgstr "sociÄlie/politiskie jautÄjumi/ekonomika (vispÄrÄ«gi)" + +msgid "social/spiritual science" +msgstr "sociÄlie/garÄ«gÄ zinÄtne" + +msgid "sorting of playlists" +msgstr "kÄrtot atskaņoÅ¡anas sarakstu" + +msgid "special characters" +msgstr "speciÄlÄs rakstzÄ«mes" + +msgid "special events" +msgstr "speciÄlie notikumi" + +msgid "special format data DVD (HDTV compatible)" +msgstr "Ä«paÅ¡a formÄta datu DVD (HDTV)" + +msgid "sports (general)" +msgstr "sprts (vispÄrÄ«gi)" + +msgid "sports magazine" +msgstr "sporta žurnÄls" + +msgid "standard" +msgstr "standarta" + +msgid "start cut here" +msgstr "sÄkt grieÅ¡anu Å¡eit" + +msgid "start directory" +msgstr "sÄkuma mape" + +msgid "stepsize" +msgstr "soļa lielums" + +msgid "stereo" +msgstr "stereo" + +msgid "stop using as startup service" +msgstr "pÄrtraukt lietot kÄ ieslÄ“gÅ¡anas kanÄlu" + +msgid "switch to bookmarks" +msgstr "iet uz grÄmatzÄ«mÄ“m" + +msgid "switch to filelist" +msgstr "pÄriet uz failu sarakstu" + +msgid "switch to the next angle" +msgstr "pÄrslÄ“gt uz nÄkamo leņķi" + +msgid "switch to the next audio track" +msgstr "pÄrslÄ“gt uz nÄkoÅ¡o skaņas celiņu" + +msgid "switch to the next subtitle language" +msgstr "pÄrslÄ“gt uz nÄkamo subtitru valodu" + +msgid "talk show" +msgstr "runu Å¡ovi" + +msgid "team sports" +msgstr "komandu sports" + +msgid "technology/natural science" +msgstr "tehnoloÄ£ijas/dabaszinÄtna" + +msgid "template file" +msgstr "Å¡ablona fails" + +msgid "tennis/squash" +msgstr "teniss/skvoÅ¡s" + +msgid "this recording" +msgstr "Å¡im ierakstam" + +msgid "this service is protected by a parental control pin" +msgstr "Å¡is kanÄls ir aizsargÄts ar vecÄku kontroles PIN kodu" + +msgid "toggle time, chapter, audio, subtitle info" +msgstr "Ie/izslÄ“gt laiku, nodaļu, skaņu, subtitru informÄciju" + +msgid "top" +msgstr "augÅ¡a" + +msgid "tourism/travel" +msgstr "tÅ«risma/ceļoÅ¡ana" + +msgid "true" +msgstr "patiesÄ«ba" + +msgid "unavailable" +msgstr "nepieejams" + +msgid "unconfirmed" +msgstr "neapstiprinÄts" + +msgid "undefined" +msgstr "nedefinÄts" + +msgid "unknown" +msgstr "nezinÄms" + +msgid "unknown service" +msgstr "nezinÄms kanÄls" + +msgid "unpublished" +msgstr "nepublicÄ“ts" + +msgid "until standby/restart" +msgstr "lÄ«dz gaidstÄvei/pÄrstartÄ“Å¡anai" + +msgid "user defined" +msgstr "lietotÄja definÄ“ts" + +msgid "variety show" +msgstr "varietÄ“ Å¡ovi" + +msgid "vertical" +msgstr "vertikÄlÄ" + +msgid "wait for ci..." +msgstr "gaidiet atbildi no CI..." + +msgid "wait for mmi..." +msgstr "gaidiet atbildi no mmi..." + +msgid "waiting" +msgstr "gaida" + +msgid "water sport" +msgstr "Å«dens sports" + +msgid "weekly" +msgstr "ik nedēļu" + +msgid "west" +msgstr "rietumi" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "balts" + +msgid "whitelist" +msgstr "baltais saraksts" + +msgid "width" +msgstr "platums" + +msgid "winter sport" +msgstr "ziemas sports" + +msgid "wireless network interface" +msgstr "bezvadu tÄ«kla interfeiss" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "ar %d kļūdu" +msgstr[1] "ar %d kļūdÄm" +msgstr[2] "ar %d kļūdÄm" + +msgid "working" +msgstr "darbojas" + +msgid "yellow" +msgstr "dzeltenÄ" + +msgid "yes" +msgstr "jÄ" + +msgid "yes (keep feeds)" +msgstr "jÄ (paturÄ“t barotnes)" + +msgid "zap" +msgstr "pÄrslÄ“gt" + +msgid "zap and record" +msgstr "pÄrslÄ“gt un ierakstÄ«t" + +msgid "zapped" +msgstr "pÄrslÄ“gts" + +#~ msgid "AA" +#~ msgstr "AA" + +#~ msgid "AB" +#~ msgstr "AB" + +#~ msgid "Activate PiP" +#~ msgstr "AktivizÄ“t PiP" + +#~ msgid "Add/remove timer for current event" +#~ msgstr "Pievienot/noņemt taimeri paÅ¡reizÄ“jam notikumam" + +#~ msgid "Adjust HDMI CEC settings" +#~ msgstr "PielÄgot HDMI CEC iestatÄ«jumus" + +#~ msgid "All satellites" +#~ msgstr "Visi pavadoņi" + +#~ msgid "And will shutdown your receiver over " +#~ msgstr "Un izslÄ“gt uztvÄ“rÄ“ju pÄ“c " + +#~ msgid "BA" +#~ msgstr "BA" + +#~ msgid "BB" +#~ msgstr "BB" + +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "PauzÄ“ nospiežot taustiņu 'pauze'" + +#~ msgid "Committed DiSEqC command" +#~ msgstr "AktÄ«vÄ DiSEqC komanda" + +#~ msgid "Configure the behavior of the 'pause' key when movie playback is already paused." +#~ msgstr "UzstÄda pauzes taustiņa darbÄ«bu, kad filmas atskaņoÅ¡ana ir nopauzÄ“ta." + +#~ msgid "Configure the duration in hours and action, which could be shut down or standby, when the receiver is not controlled." +#~ msgstr "UzstÄda laiku stundÄs un darbÄ«bu- vai bÅ«s izslÄ“gÅ¡ana vai gaidstÄve, ja uztvÄ“rÄ“ju nekontrolÄ“." + +#~ msgid "Configure the duration in minutes and action, which could be shut down or standby, for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +#~ msgstr "UzstÄda laiku minÅ«tÄ“s un darbÄ«bu miega taimerim- vai bÅ«s izslÄ“gÅ¡ana vai gaidstÄve. IzvÄ“lieties Å¡o ierakstu un nospiediet OK vai zaļo lai palaistu/apstÄdinÄtu miega taimeri" + +#~ msgid "Currently the commit log cannot be retreived - please try later again" +#~ msgstr "PaÅ¡reiz kommitu logs nav pieejams - lÅ«dzu mÄ“giniet vÄ“lÄk" + +#~ msgid "DiSEqC repeats" +#~ msgstr "DiSEqC atkÄrtojums" + +#~ msgid "Goto specific data/time" +#~ msgstr "Iet uz noteiktu datumu/laiku" + +#~ msgid "Memory positions" +#~ msgstr "Atmiņas pozÄ«cijas" + +#~ msgid "Open service list and select next channel" +#~ msgstr "AtvÄ“rt kanÄlu sarakstu un izvÄ“lÄ“ties nÄkamo kanÄlu" + +#~ msgid "Open service list and select previous channel" +#~ msgstr "AtvÄ“rt kanÄlu sarakstu un izvÄ“lÄ“ties iepriekÅ¡Ä“jo kanÄlu" + +#~ msgid "Press '0' to toggle internal/external PiP." +#~ msgstr "Spiediet '0', lai pÄrslÄ“gtu iekÅ¡Ä“jo/ÄrÄ“jo PiP." + +#~ msgid "Remove timer" +#~ msgstr "DzÄ“st taimeri" + +#~ msgid "Send DiSEqC" +#~ msgstr "SÅ«tÄ«t DiSEqC" + +#~ msgid "Shutdown after current event" +#~ msgstr "IzslÄ“gt pÄ“c paÅ¡reizÄ“jÄ notikuma" + +#~ msgid "Shutdown in " +#~ msgstr "IzslÄ“gt " + +#~ msgid "Switch next channel" +#~ msgstr "PÄrslÄ“gt uz nÄkamo kanÄlu" + +#~ msgid "Tuning step size" +#~ msgstr "NoskaņoÅ¡anas soļa izmÄ“rs" + +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "PasÄ«vÄ DiSEqC komanda" + +#~ msgid "Your receiver will shutdown due to inactivity." +#~ msgstr "JÅ«su uztvÄ“rÄ“js izslÄ“gsies jo nav aktivitÄtes." + +#~ msgid "Your receiver will shutdown due to the sleeptimer." +#~ msgstr "JÅ«su uztvÄ“rÄ“js izslÄ“dzas dēļ miega taimera." + +#~ msgid "tuner is not supported" +#~ msgstr "uztvÄ“rÄ“js netiek atbalstÄ«ts" diff --git a/po/nl.po b/po/nl.po new file mode 100644 index 0000000..0fb1213 --- /dev/null +++ b/po/nl.po @@ -0,0 +1,8992 @@ +msgid "" +msgstr "" +"Project-Id-Version: enigma\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: \n" +"Last-Translator: Tech <tech@openpli.org>\n" +"Language-Team: PLiteam <translators@openpli.org>\n" +"Language: nl\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-Generator: Poedit 1.6.7\n" + +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"Geavanceerde opties en instellingen." + +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"Na indrukken van OK, een moment geduld aub!" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" +"\n" +"Backup de ontvangerinstellingen." + +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"Wijzig het bronadres voor de upgrade." + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" +"\n" +"Beheer applicaties of plugins voor uw ontvanger" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" +"\n" +"Online update van de ontvangersoftware." + +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"Druk op de OK toets om door te gaan." + +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"Zet een backup van een bepaalde datum terug." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" +"\n" +"Herstel de ontvangerinstellingen" + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" +"\n" +"Herstel de ontvanger met nieuwe firmware." + +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"Zoek naar locale applicaties en installeer deze." + +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Kies een apparaat voor de backup.\n" +"Huidig apparaat: " + +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"Bekijk, installeer en verwijder beschikbare of geïnstalleerde pakketten." + +msgid " (PiP)" +msgstr "(PiP)" + +msgid " (Radio)" +msgstr "(Radio)" + +msgid " (TV)" +msgstr "(TV)" + +msgid " (disabled)" +msgstr "(uitgeschakeld)" + +msgid " (higher than any auto)" +msgstr " (hoger dan elke 'auto')" + +msgid " (higher than rotor any auto)" +msgstr "(hoger dan de rotor van elke 'auto')" + +msgid " (lower than any auto)" +msgstr "(lager dan elke auto)" + +msgid " extensions." +msgstr " applicaties." + +msgid " ms" +msgstr "ms" + +msgid " packages selected." +msgstr "geselecteerde pakketten." + +msgid " updates available." +msgstr "updates beschikbaar." + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "%2d:%02d" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "%2d:%02d:%02d" + +msgid "%A %d %B" +msgstr "%A %d %B" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "%A %e %B" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "%A %e %B %Y" + +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "%a %e/%m" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "%a %e/%m %-H:%M" + +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "%d kanaal gevonden" +msgstr[1] "%d kanalen gevonden" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "%d bestand" +msgstr[1] "%d bestanden" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d uur" +msgstr[1] "%d uren" + +#, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d opdracht draait op de achtergrond." +msgstr[1] "%d opdrachten draaien op de achtergrond." + +#, python-format +msgid "%d min" +msgstr "%d min" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minuut" +msgstr[1] "%d minuten" + +#, python-format +msgid "%d minutes" +msgstr "%d minuten" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "%d pixelbreedte" +msgstr[1] "%d pixels breed" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d seconde" +msgstr[1] "%d seconden" + +#, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "%d subdirectory" +msgstr[1] "%d subdirectories" + +#, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "%d draadloos netwerk gevonden!" +msgstr[1] "%d draadloze netwerken gevonden!" + +msgid "%d-%b-%Y %-H:%M" +msgstr "%d-%b/%Y %-H:%M" + +msgid "%d-%m" +msgstr "%d-%m" + +msgid "%d.%B %Y" +msgstr "%d-%m-%Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "%k:%M %e/%m" + +#, python-format +msgid "%s %s free disk space" +msgstr "%s %s beschikbare schijfruimte" + +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "%s wordt niet langer gebruikt. Kan deze verwijderd worden?" + +#, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "%s nieuw pakket beschikbaar" +msgstr[1] "%s nieuwe pakketten beschikbaar" + +#, python-format +msgid "%s%d min" +msgstr "%s%d min" + +#, python-format +msgid "%s/%s: %s" +msgstr "%s/%s: %s" + +msgid "(ZAP)" +msgstr "(ZAP)" + +msgid "(empty)" +msgstr "(leeg)" + +msgid "(show optional DVD audio menu)" +msgstr "(optioneel DVD audio menu weergeven)" + +msgid "* Only available if more than one interface is active." +msgstr "* Alleen beschikbaar indien meer dan één interface is geactiveerd." + +msgid "/s" +msgstr "/s" + +msgid "0" +msgstr "0" + +msgid "1" +msgstr "1" + +msgid "1.0" +msgstr "1.0" + +msgid "1.1" +msgstr "1.1" + +msgid "1.2" +msgstr "1.2" + +msgid "12V output" +msgstr "12V uitgang" + +msgid "13 V" +msgstr "13V" + +msgid "16:10" +msgstr "16:10" + +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +msgid "16:9" +msgstr "16:9" + +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +msgid "16:9 always" +msgstr "Altijd 16:9" + +msgid "18 V" +msgstr "18V" + +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "23.976" + +msgid "24" +msgstr "24" + +msgid "25" +msgstr "25" + +msgid "29.97" +msgstr "29.97" + +msgid "3" +msgstr "3" + +msgid "30" +msgstr "30" + +msgid "3d mode" +msgstr "3d mode" + +msgid "4" +msgstr "4" + +msgid "4:3" +msgstr "4:3" + +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +msgid "5" +msgstr "5" + +msgid "6" +msgstr "6" + +msgid "7" +msgstr "7" + +msgid "8" +msgstr "8" + +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr ":%s" + +msgid "<Current movielist location>" +msgstr "<Huidige opnamelijstlocatie>" + +msgid "<Default movie location>" +msgstr "<Standaard opnamelocatie>" + +msgid "<Last timer location>" +msgstr "<Laatste timerlocatie>" + +msgid "<unknown>" +msgstr "<onbekend>" + +msgid "??" +msgstr "??" + +msgid "A" +msgstr "A" + +#, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"Een configuratiebestand (%s) is sinds de installatie gewijzigd.\n" +"Wilt u uw aanpassingen behouden?" + +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"Een configuratiebestand (%s) is sinds de installatie gewijzigd.\n" +"Wilt u uw versie behouden?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"Een opname die gereed is wil de ontvanger\n" +"in standby zetten. Wilt u dat?" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"Een opname die gereed is wil de ontvanger\n" +"uitschakelen. Wilt u dat?" + +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "Grafische EPG voor alle zenders uit een specifiek bouquet" + +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"Een opname is gestart:\n" +"%s" + +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"Bezig met opnemen.\n" +"Wat wilt u doen?" + +msgid "" +"A recording is currently running. Please stop the recording before trying to " +"configure the positioner." +msgstr "" +"U bent aan het opnemen. Stop de opname voordat u de rotorinstellingen " +"probeert te wijzigen." + +msgid "" +"A recording is currently running. Please stop the recording before trying to " +"scan." +msgstr "Een opname is nu bezig. Stop de opname voor u gaat scannen." + +msgid "" +"A recording is currently running. Please stop the recording before trying to " +"start the satfinder." +msgstr "" +"U bent aan het opnemen. Stop de opname voordat u de signaalmeting start." + +#, python-format +msgid "A required tool (%s) was not found." +msgstr "Een noodzakelijke tool (%s) is niet gevonden." + +msgid "A search for available updates is currently in progress." +msgstr "Bezig met zoeken naar updates." + +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"Er is een tweede geconfigureerde interface gevonden.\n" +"\n" +"Wilt u de tweede netwerkinterface uitschakelen?" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"Een slaaptimer wil de ontvanger\n" +"in standby zetten. Wilt u dat?" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"Een slaaptimer wil de ontvanger\n" +"uitschakelen. Nu uitschakelen?" + +msgid "A small overview of the available icon states and actions." +msgstr "Een beperkt overzicht van beschikbare icon-statussen en acties." + +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"Timer opname mislukt!\n" +"Verander van zender en probeer het opnieuw.\n" + +msgid "A/V settings" +msgstr "A/V instellingen" + +msgid "AC3/DTS downmix" +msgstr "AC3/DTS downmix" + +msgid "Abort" +msgstr "Afbreken" + +msgid "About" +msgstr "Uw ontvanger" + +msgid "About..." +msgstr "Informatie over uw ontvanger" + +msgid "Accesspoint:" +msgstr "Accesspoint:" + +msgid "Action on long powerbutton press" +msgstr "Actie bij lang indrukken van de aan / uit toets" + +msgid "Action on short powerbutton press" +msgstr "Actie na het kort indrukken van de aan / uit toets" + +msgid "Activate Picture in Picture" +msgstr "Activeer Picture In Picture" + +msgid "Activate current configuration" +msgstr "Activeer de huidige configuratie" + +msgid "Activate network settings" +msgstr "Activeer de netwerkinstellingen" + +msgid "Activate the configured network settings." +msgstr "Activeer de geconfigureerde netwerkinstellingen" + +msgid "Adapter settings" +msgstr "Adapterinstellingen" + +msgid "Add" +msgstr "Voeg toe" + +msgid "Add Bookmark" +msgstr "markeerpunt toevoegen" + +msgid "Add a mark" +msgstr "Plaats een markering" + +msgid "Add a nameserver entry" +msgstr "Voeg een nameserver toe" + +msgid "Add a new title" +msgstr "Voeg een nieuwe titel toe" + +msgid "Add bookmark" +msgstr "Maak markeerpunt" + +msgid "Add directory to playlist" +msgstr "Voeg de map aan de afspeellijst toe" + +msgid "Add file to playlist" +msgstr "Voeg het bestand toe aan de afspeellijst" + +msgid "Add files to playlist" +msgstr "Voeg de bestanden toe aan de afspeellijst" + +msgid "Add more details to the crash log" +msgstr "" +"Indien geactiveerd, dan worden er extra details aan het crashlog toegevoegd." + +msgid "Add provider" +msgstr "Provider toevoegen" + +msgid "Add recording (enter recording duration)" +msgstr "Voeg een opname toe (voer de opnameduur in)" + +msgid "Add recording (enter recording endtime)" +msgstr "Voeg een opname toe (voer de eindtijd in)" + +msgid "Add recording (indefinitely)" +msgstr "Voeg een opname toe (doorlopend)" + +msgid "Add recording (stop after current event)" +msgstr "Voeg een opname toe (stop na huidige uitzending)" + +msgid "Add service" +msgstr "Voeg een zender toe" + +msgid "Add timer" +msgstr "Timer toevoegen" + +msgid "Add title" +msgstr "Voeg titel toe" + +msgid "Add to bouquet" +msgstr "Voeg toe aan een bouquet" + +msgid "Add to favourites" +msgstr "Voeg toe aan favorieten" + +msgid "Add/remove change timer for current event" +msgstr "Voeg toe / verwijder een timerwijziging voor het huidige programma" + +msgid "Adjust 3D settings" +msgstr "3D instellingen aanpassen" + +msgid "" +"Adjust the color settings so that all the color shades are distinguishable, " +"but appear as saturated as possible. If you are happy with the result, press " +"OK to close the video fine-tuning, or use the number keys to select other " +"test screens." +msgstr "" +"Wijzig de kleuren zodanig dat alle tinten te onderscheiden zijn, maar wel zo " +"verzadigd mogelijk zijn. Zodra het resultaat u bevalt, drukt u op OK om dit " +"menu af te sluiten of selecteert u een ander testscherm d.m.v. de " +"nummertoetsen." + +msgid "Advanced" +msgstr "geavanceerd" + +msgid "Advanced options" +msgstr "Geavanceerde opties" + +msgid "Advanced restore" +msgstr "Geavanceerd herstellen" + +msgid "Advanced software" +msgstr "Geavanceerde software" + +msgid "Advanced software plugin" +msgstr "Geavanceerde software plugin" + +msgid "Advanced video enhancement setup" +msgstr "Geavanceerde videoverbeteringsinstellingen" + +msgid "Advanced video setup" +msgstr "Geavanceerde videoinstellingen" + +msgid "After event" +msgstr "Na opname" + +msgid "Album" +msgstr "Album" + +msgid "Alignment of events" +msgstr "Uitlijnen van gebeurtenissen" + +msgid "Alignment of service names" +msgstr "Uitlijnen van services" + +msgid "All" +msgstr "Alles" + +msgid "All ages" +msgstr "Alle leeftijden" + +msgid "All satellites 1 (USALS)" +msgstr "Alle satellieten 1 (USALS)" + +msgid "All satellites 2 (USALS)" +msgstr "Alle satellieten 2 (USALS)" + +msgid "All satellites 3 (USALS)" +msgstr "Alle satellieten 3 (USALS)" + +msgid "All satellites 4 (USALS)" +msgstr "Alle satellieten 4 (USALS)" + +msgid "Allocate" +msgstr "Toewijzen" + +msgid "Allocate unused memory index" +msgstr "Wijs de ongebruikte memory index toe" + +msgid "Allow quit movieplayer with exit" +msgstr "Verlaat de movieplayer d.m.v. de 'exit' toets" + +msgid "Allow subtitle language to equal audio language" +msgstr "Sta toe dat de ondertiteling gelijk is aan de audio-instelling" + +msgid "Allow subtitles for hearing impaired" +msgstr "Sta de ondertiteling voor doven en slechthorenden toe" + +msgid "Alpha" +msgstr "Transparantie" + +msgid "Alternative" +msgstr "Alternatieven" + +msgid "Alternative numbering mode" +msgstr "Alternatieve telmodus" + +msgid "Alternative services tuner priority" +msgstr "Alternatieve tunerprioriteit" + +msgid "Always ask" +msgstr "Altijd vragen" + +msgid "Always hide infobar" +msgstr "Infobalk altijd verbergen" + +msgid "An empty filename is illegal." +msgstr "Een lege bestandsnaam is ongeldig." + +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "" +"Er is een fout opgetreden bij het downloaden van de pakketlijst. Probeer het " +"aub opnieuw." + +msgid "An unknown error occurred!" +msgstr "Er heeft zich een onbekende fout voorgedaan!" + +msgid "And will put your receiver in standby over " +msgstr "En zet uw ontvanger in standby na " + +msgid "Any activity" +msgstr "Elke activiteit" + +msgid "Arabic" +msgstr "Arabisch" + +msgid "Are you sure to remove this entry?" +msgstr "Weet u zeker dat u dit item wilt verwijderen?" + +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"Wilt u deze netwerkconfiguratie nu activeren?\n" +"\n" + +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"Weet u zeker dat u deze backup\n" +"wilt verwijderen:\n" + +msgid "Are you sure you want to exit this wizard?" +msgstr "Wilt u deze wizard afsluiten?" + +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"Weet u zeker dat u de netwerkinterface wilt herstarten?\n" +"\n" + +#, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Weet u zeker dat u deze backup wilt terugplaatsen?\n" +"%s\n" +"Uw ontvanger zal herstarten nadat herstel van de backup gereed is. " + +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Weet u zeker dat u de backup wilt terugplaatsen?\n" +"Uw ontvanger zal herstarten nadat herstel van de backup gereed is." + +msgid "Artist" +msgstr "Artiest" + +msgid "Arts/Culture" +msgstr "kunst / cultuur" + +msgid "Ask user" +msgstr "Vraag gebruiker" + +msgid "Aspect ratio" +msgstr "Beeldverhouding" + +msgid "Assigned CAIds:" +msgstr "Toegewezen CAIds:" + +msgid "Assigned services/provider:" +msgstr "Toegewezen zenders/providers" + +msgid "At beginning" +msgstr "Bovenaan de lijst" + +msgid "At end" +msgstr "Onderaan de lijst" + +msgid "Attempt to recover lost mounts (in background)" +msgstr "Probeer verbroken mounts te herstellen (achtergrond proces) " + +msgid "Audio" +msgstr "Audio" + +msgid "Audio PID" +msgstr "Audio PID" + +msgid "Audio language selection 1" +msgstr "Audio taalkeuze 1" + +msgid "Audio language selection 2" +msgstr "Audio taalkeuze 2" + +msgid "Audio language selection 3" +msgstr "Audio taalkeuze 3" + +msgid "Audio language selection 4" +msgstr "Audio taalkeuze 4" + +msgid "Audio options..." +msgstr "Audio opties..." + +#, python-format +msgid "Audio track (%s) format" +msgstr "Audiospoor (%s) formaat" + +#, python-format +msgid "Audio track (%s) language" +msgstr "Audiospoor (%s) taal" + +msgid "Author: " +msgstr "Auteur:" + +msgid "Authoring mode" +msgstr "Creatiewijze" + +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Auto" + +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Automatisch hoofdstuk splitsen elke ? min (0=nooit)" + +msgid "Auto flesh" +msgstr "Automatische huidskleurtint" + +msgid "Auto focus" +msgstr "Auto focus" + +msgid "Auto focus commencing ..." +msgstr "Starten van de auto focus..." + +msgid "Auto language selection" +msgstr "Automatische taalkeuzeselectie" + +msgid "Auto scart switching" +msgstr "Automatisch scart schakelen" + +msgid "Automatic" +msgstr "Automatisch" + +msgid "Automatic scan" +msgstr "Automatisch zoeken" + +msgid "Automatically start timeshift after" +msgstr "Timeshift automatisch starten na" + +msgid "Automatically turn on external subtitles" +msgstr "Schakel de externe ondertitel automatisch in" + +msgid "Available format variables" +msgstr "Beschikbare formaten" + +msgid "B" +msgstr "B" + +msgid "BER" +msgstr "BER" + +msgid "BER:" +msgstr "BER:" + +msgid "Back" +msgstr "Terug" + +msgid "Background" +msgstr "Achtergrond" + +msgid "Background color" +msgstr "Achtergrondkleur" + +msgid "Background delete option" +msgstr "Wisoptie (achtergrondproces)" + +msgid "Background delete speed" +msgstr "Wissnelheid (achtergrondproces)" + +msgid "Backup completed." +msgstr "Backup voltooid." + +msgid "Backup failed." +msgstr "Backup is mislukt." + +msgid "Backup is running..." +msgstr "Backup wordt uitgevoerd..." + +msgid "Backup system settings" +msgstr "Backup uw instellingen" + +msgid "Band" +msgstr "Band" + +msgid "Bandwidth" +msgstr "Bandbreedte" + +msgid "Basque" +msgstr "Baskisch" + +msgid "Begin time" +msgstr "Starttijd" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "Het gedrag van de 'pauze en ok toets' indien gepauzeerd" + +msgid "Behavior of 0 key in PiP-mode" +msgstr "Functie van de 0-toets in PiP-modus" + +msgid "Behavior when a movie is started" +msgstr "Actie na 'start afspelen'" + +msgid "Behavior when a movie is stopped" +msgstr "Actie na 'stop afspelen'" + +msgid "Behavior when a movie reaches the end" +msgstr "Actie bij het einde van de opname" + +msgid "Big PiP" +msgstr "Grote PIP" + +msgid "Bitrate:" +msgstr "Bitrate:" + +msgid "Black screen" +msgstr "Zwart beeld" + +msgid "Black screen till locked" +msgstr "Zwart beeld totdat de zender 'gelockt' is" + +msgid "Block noise reduction" +msgstr "Blokruisvermindering" + +msgid "Blue boost" +msgstr "Blauwe impuls" + +msgid "Bookmarks" +msgstr "Markeerpunten" + +msgid "Brightness" +msgstr "Helderheid" + +msgid "Bulgarian" +msgstr "Bulgaars" + +msgid "Burn DVD" +msgstr "Brand DVD" + +#, python-format +msgid "Burn audio track (%s)" +msgstr "Brandt geluidstrack (%s)" + +msgid "Burn existing image to DVD" +msgstr "Brand deze image op DVD" + +msgid "Burn to DVD" +msgstr "Naar DVD branden" + +msgid "Bus: " +msgstr "Bus: " + +msgid "" +"By default, SNR will be shown in dB (when supported by the tuner). This " +"setting forces SNR to be shown as a percentage instead." +msgstr "" +"Indien geactiveerd, dan wijzigt de waarde van de weergave van het signaal " +"in dB. Standaard wordt de signaalwaarde getoond in procenten. Dit werkt " +"alleen indien dit door de tuner wordt ondersteund." + +msgid "C" +msgstr "C" + +msgid "C-Band" +msgstr "C-Band" + +msgid "CH" +msgstr "CH" + +msgid "CI assignment" +msgstr "CI toewijzing" + +msgid "CVBS" +msgstr "CVBS" + +msgid "Cable" +msgstr "Kabel" + +msgid "Cable Scan" +msgstr "Kabel scan" + +msgid "Cache thumbnails" +msgstr "Cachen van miniatuurafbeeldingen" + +msgid "Calculate" +msgstr "Berekenen" + +msgid "Calculate all positions" +msgstr "Bereken alle posities" + +msgid "Calculation complete" +msgstr "Berekening gereed" + +msgid "Calibrate" +msgstr "Calibreren" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "" +"Met deze optie stelt u de verschillende fps in voor een verbeterde " +"synchronisatie tussen de externe ondertitels en video.\n" +"\n" +"U kunt dit instellen met de cursor R / L toetsen. U kunt hierbij kiezen van " +"origineel of een waarde instellen van 23.976 - 30 fps." + +msgid "Cancel" +msgstr "Annuleren" + +msgid "Cannot determine" +msgstr "Kan niet vaststellen" + +msgid "Cannot find any signal ..., aborting !" +msgstr "Kan geen signaal vinden..., gestopt!" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "" +"Kan geen bestanden van een andere schijf of systeem naar de prullenbak " +"verplaatsen" + +msgid "Cannot move to trash can" +msgstr "Kan geen bestanden naar de prullenbak verplaatsen" + +msgid "Capacity: " +msgstr "Capaciteit: " + +msgid "Card" +msgstr "Kaart" + +msgid "Cascade PiP" +msgstr "Trapsgewijze PIP" + +msgid "Center DVB subtitles" +msgstr "Centreer DVB ondertitels" + +msgid "Center time-labels and remove date" +msgstr "Centreer de tijds-labels en verwijder de datum" + +msgid "Change bouquets in quickzap" +msgstr "Verander van bouquet tijdens zappen" + +msgid "Change pin code" +msgstr "Verander pincode" + +msgid "Change recording (duration)" +msgstr "Wijzig de opname (tijdsduur)" + +msgid "Change recording (endtime)" +msgstr "Wijzig opname (eindtijd)" + +msgid "Change repeat and delay settings?" +msgstr "Verander herhalings- en vertragingsinstellingen?" + +msgid "Change service PIN" +msgstr "Wijzig de service pincode" + +msgid "Change service PINs" +msgstr "Wijzig de service pincodes" + +msgid "Change setup PIN" +msgstr "Wijzig de setup pincode" + +msgid "Change step size" +msgstr "Wijzig stapgrootte" + +msgid "Change timer" +msgstr "Wijzig timer" + +msgid "Changelog" +msgstr "Changelog" + +msgid "Channel" +msgstr "Kanaal" + +msgid "Channel list type" +msgstr "Zenderlijsttype" + +msgid "Channel not in services list" +msgstr "Kanaal komt niet voor in de zenderlijst" + +msgid "Channel selection" +msgstr "Zenderkeuze" + +msgid "Channel:" +msgstr "Zender:" + +msgid "Channellist menu" +msgstr "Zenderlijstmenu" + +msgid "Chap." +msgstr "Hfdst." + +msgid "Chapter" +msgstr "Hoofdstuk" + +msgid "Chapter:" +msgstr "Hoofdstuk:" + +msgid "Check" +msgstr "Controleer" + +msgid "Check the internet connection" +msgstr "Controleer of u een internetverbinding heeft" + +msgid "Check the internet connection again" +msgstr "Controleer nogmaals of u een internetverbinding heeft" + +msgid "Checking filesystem..." +msgstr "Controleert bestandssysteem..." + +msgid "Checking the internet connection" +msgstr "Controleert de internetverbinding" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" +"Controleert tuner %d\n" +"DiSEqC poort %s voor %s" + +msgid "Children/Youth" +msgstr "kinderen / jeugd" + +msgid "Choose which tuner to configure." +msgstr "Kies de in te stellen tuner." + +msgid "Circular left" +msgstr "Circulaire links" + +msgid "Circular right" +msgstr "Circulaire rechts" + +msgid "Cleanup" +msgstr "Opruimen" + +msgid "Clear" +msgstr "Wissen" + +msgid "Clear before scan" +msgstr "Voor zoeken alle zenders wissen?" + +msgid "Clear fixed" +msgstr "Wis fixed" + +msgid "Clear log" +msgstr "Log wissen" + +msgid "Clear playlist" +msgstr "Afspeellijst leeg maken" + +msgid "Close" +msgstr "Sluiten" + +msgid "Close PiP on exit" +msgstr "Sluit PIP met 'exit'" + +msgid "Close title selection" +msgstr "Sluit titelselectie" + +msgid "Code rate HP" +msgstr "Code rate HP" + +msgid "Code rate LP" +msgstr "Code rate LP" + +msgid "Coderate HP" +msgstr "Coderate HP" + +msgid "Coderate LP" +msgstr "Coderate LP" + +msgid "Collection name" +msgstr "DVD naam" + +msgid "Collection settings" +msgstr "Verzamelinstellingen" + +msgid "Color format" +msgstr "Kleurformaat" + +msgid "Command execution..." +msgstr "Commando uitvoeren..." + +msgid "Command order" +msgstr "Commando volgorde" + +msgid "Common Interface" +msgstr "Common Interface" + +msgid "Common Interface assignment" +msgstr "Common Interface taken" + +msgid "Communication" +msgstr "Mededeling" + +msgid "Compact flash" +msgstr "Compact flash" + +msgid "Complete" +msgstr "Compleet" + +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "Complex (mixen audio sporen en aspecten)" + +msgid "Composition of the recording filenames" +msgstr "Samenstelling van de bestandsnamen" + +msgid "Configuration mode" +msgstr "Configuratiemodus" + +#, python-format +msgid "Configuration mode: %s" +msgstr "Configuratiemodus: %s" + +msgid "Configuration..." +msgstr "Configuratie..." + +msgid "" +"Configure an additional delay to improve external subtitle synchronisation." +msgstr "" +"Met deze optie stelt u een extra vertraging in ter verbetering van de " +"synchronisatie van de externe ondertitels.\n" +"\n" +"U kunt dit instellen met de cursor R / L toetsen tussen -10 en +20 sec. De " +"standaardwaarde is 'geen vertraging'." + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "" +"Met deze optie configureert u een extra vertraging ter verbetering van de " +"synchronisatie van de ondertitels.\n" +"\n" +"U kunt dit instellen met de cursor R / L toetsen van -10 tot +20 sec. De " +"standaardwaarde is 'geen vertraging'." + +msgid "" +"Configure for how long the infobar will remain visible after activation." +msgstr "" +"Met deze optie stelt u in hoe lang de informatiebalk zichtbaar blijft indien " +"deze geactiveerd is. Deze kan ook zichtbaar blijven totdat (opnieuw) op 'ok' " +"gedrukt wordt. Kies dan voor 'geen timeout'.\n" +"\n" +"U kunt kiezen tussen 'geen timeout' of van 1 tot 11 sec." + +msgid "" +"Configure for how many minutes finished events should remain visible in the " +"EPG. Useful when you need information about an event which has just " +"finished, or has been delayed." +msgstr "" +"Configureer hoe lang afgelopen programma's zichtbaar moet blijven in de EPG. " +"Dit is vooral handig indien u informatie wenst over een programma wat net " +"afgelopen is, of vertraagd is.\n" +"\n" +"U kunt kiezen tussen 0-120 min in stappen van 15 min." + +msgid "Configure how recording filenames are constructed." +msgstr "" +"Met deze optie stelt u in op welke wijze de bestandsnamen van opnames " +"samengesteld worden.\n" +"\n" +"U kunt kiezen uit, standaard, korte bestandsnamen of lange bestandsnamen." + +msgid "Configure how the fan should operate" +msgstr "" +"Met deze optie stelt u in hoe de ventilator dient te functioneren.\n" +"\n" +"U kunt kiezen uit automatisch, aan of uit." + +msgid "" +"Configure if and how crypto icons will be shown in the channel selection " +"list." +msgstr "" +"Indien geactiveerd kunt u aangeven of en waar het \"gecodeerd\" icoon " +"weergegeven wordt in de zenderlijst.\n" +"\n" +"U kunt kiezen uit links of rechts van de kanaalnaam, of geen weergave." + +msgid "" +"Configure if and how long the latest service in the PiP will be remembered." +msgstr "" +"Hiermee stel je in of en hoe lang het laatste kanaal in de PIP wordt " +"onthouden.\n" +"U kunt een keuze maken uit Gedeactiveerd, Geen timeout of tussen 1-60 " +"minuten." + +msgid "" +"Configure if and how the record indicator will be shown in the channel " +"selection list." +msgstr "" +"Indien geactiveerd kunt u aangeven of en waar de \"opname\" indicatie " +"weergegeven wordt in de zenderlijst.\n" +"\n" +"U kunt kiezen uit links of rechts van de zendernaam, rode zendernaam of geen " +"weergave." + +msgid "" +"Configure if and how service type icons will be shown in the channel " +"selection list." +msgstr "" +"Indien geactiveerd kunt u aangeven of en hoe de \"service iconen\" " +"weergegeven worden in de zenderlijst.\n" +"\n" +"U kunt kiezen uit links of rechts van de kanaalnaam, of geen weergave." + +msgid "" +"Configure if and how wide columns will be shown in the channel selection " +"list." +msgstr "" +"Indien geactiveerd kunt u aangeven of en hoe breed de kolommen weergegeven " +"worden in de zenderlijst.\n" +"\n" +"U kunt kiezen tussen 100 - 1200 pixels, verdelen of uitschakelen." + +msgid "" +"Configure if service picons will be shown in the channel selection list." +msgstr "" +"Indien geactiveerd, dan worden de picons weergegeven in de zenderlijst." + +msgid "Configure interface" +msgstr "Configureer interface" + +msgid "Configure nameservers" +msgstr "Configureer nameservers" + +msgid "Configure on which devices the background delete option should be used." +msgstr "" +"Met deze optie stelt u in op welk apparaat de optie 'verwijder opnames op de " +"achtergrond' gebruikt wordt.\n" +"\n" +"U kunt kiezen uit, alleen de interne harddisk, overal of n.v.t." + +msgid "Configure remote control type" +msgstr "Configureer het type afstandbediening" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "Configureer de DiSEqC modus voor deze LNB." + +msgid "Configure the IP address." +msgstr "Configureer het IP-adres" + +msgid "Configure the aspect ratio of the screen." +msgstr "Configureer de beeldverhouding van het scherm." + +msgid "" +"Configure the behavior of the 'pause and ok' key when movie playback is " +"already paused." +msgstr "" +"Met deze optie stelt u het gedrag van de 'pauze en ok toets' in als de film " +"gepauzeerd is.\n" +"\n" +" U kunt kiezen uit 'afspelen', 'stap voor stap (GOP)' of 'laatste snelheid'." + +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "" +"Met deze optie stelt u in wat er gebeurt indien het afspelen van films " +"handmatig wordt gestopt.\n" +"\n" +"U kunt kiezen uit de volgende opties. Terug naar de opnamelijst, terug naar " +"de laatste zender of vraag het de gebruiker." + +msgid "Configure the behavior when movie playback is started." +msgstr "" +"Met deze optie stelt u in wat er gebeurt indien een film gestart wordt.\n" +"\n" +"U kunt kiezen uit de volgende opties. Ga door op laatste positie, start " +"vanaf het begin of vraag het de gebruiker." + +msgid "" +"Configure the behavior when reaching the end of a movie, during movie " +"playback." +msgstr "" +"Met deze optie stelt u in wat er gebeurt aan het eind van de weergave van " +"een film.\n" +"\n" +"U kunt kiezen uit de volgende opties. Terug naar de opnamelijst, terug naar " +"de laatste zender, pauzeer de weergave, speel de volgende (terug naar de " +"lijst), speel de volgende (terug naar Live TV), continu afspelen of vraag " +"het de gebruiker." + +msgid "" +"Configure the border width of the subtitles. The dark border makes the " +"subtitles easier to read on a light background." +msgstr "" +"Met deze optie stelt u de randdikte van de ondertitels in. Een donkere rand " +"maakt de ondertiteling makkelijker leesbaar op een lichte achtergrond.\n" +"\n" +"U kunt hier een waarde kiezen van 1- 5 mm. De standaardwaarde is 3 mm." + +msgid "" +"Configure the brightness level of the front panel display during standby." +msgstr "" +"Met deze optie stelt u traploos de helderheid van het display in tijdens " +"standby." + +msgid "Configure the brightness level of the front panel display." +msgstr "Met deze optie stelt u traploos de helderheid van het display in." + +msgid "" +"Configure the color of the external subtitles, alternative (normal in white, " +"italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "" +"Met deze optie stelt u de kleur van de externe ondertitels in.\n" +"\n" +"Met de cursor R / L toetsen kiest u tussen alternatief, standaard in het " +"wit, italic in geel, vet in cyaan, understreept in groen, wit of geel. De " +"standaardwaarde is 'alternatief'." + +msgid "Configure the color of the teletext subtitles." +msgstr "" +"Met deze optie stelt u de kleur van de teletekst ondertitels in.\n" +"\n" +"U kunt hier kiezen uit de volgende kleuren. Origineel, geel of wit. De " +"standaardkleur is wit." + +msgid "Configure the contrast level of the front panel display." +msgstr "Stel het contrast van het display in." + +msgid "" +"Configure the cursor behaviour in the channel selection list. When opening " +"the channel selection list you can keep on the current service or already " +"select up/down and you are able to revert the B+/B- buttons." +msgstr "" +"Met deze optie stelt u het gedrag van de cursor in de zenderlijst in. U kunt " +"de huidige zender behouden of alvast met omhoog / omlaag een zender " +"selecteren en u kunt het gedrag van de B+ / B- toetsen omkeren." + +msgid "" +"Configure the duration in hours the receiver should go to standby when the " +"receiver is not controlled." +msgstr "" +"Stel de tijdsduur (in uren en lopende activiteit) in waarna de STB wordt " +"afgesloten of naar standby gaat, indien de ontvanger niet wordt bediend." + +msgid "Configure the duration in minutes for the screensaver." +msgstr "" +"Met deze optie kunt u de screensaver activeren en stelt u tevens de tijd in " +"na hoeveel minuten deze start.\n" +"\n" +"U kunt kiezen om dit tussen 0 - 60 minuten in te stellen." + +msgid "" +"Configure the duration in minutes for the sleeptimer. Select this entry and " +"click OK or green to start/stop the sleeptimer" +msgstr "" +"Stel tijd in minuten in voor de sleeptimer. Selecteer deze invoer en druk op " +"OK of de groene toets om de sleeptimer te starten / stoppen." + +msgid "" +"Configure the duration when the receiver should go to shut down in case the " +"receiver is in standby mode." +msgstr "" +"Configureer na hoeveel tijd de ontvanger moet afsluiten in het geval dat " +"deze in standby staat." + +msgid "Configure the first audio language (highest priority)." +msgstr "Stel de eerste audio taal in (hoogste prioriteit)." + +msgid "Configure the first subtitle language (highest priority)." +msgstr "Stel de eerste ondertitel taal in (hoogste prioriteit)." + +msgid "Configure the font size of the subtitles." +msgstr "" +"Met deze optie stelt u de fontgrootte van de ondertitels in.\n" +"\n" +"U kunt de grootte instellen met de cursor R / L toets van 18-54. De " +"standaardgrootte is 34." + +msgid "Configure the fourth audio language." +msgstr "Stel de vierde audio taal in." + +msgid "Configure the fourth subtitle language." +msgstr "Bepaal de vierde ondertitel taalselectie" + +msgid "Configure the function of a long press on the power button." +msgstr "" +"Met deze optie stelt u de functie in van het lang indrukken van de aan / uit-" +"toet.\n" +"\n" +"U kunt kiezen uit, het afsluitmenu weergeven, direct uitschakelen of ga naar " +"standby." + +msgid "Configure the function of a short press on the power button." +msgstr "" +"Met deze optie stelt u de functie in van het kort indrukken van de aan / uit-" +"toets.\n" +"\n" +"U kunt kiezen uit, ga naar standby, het afsluitmenu weergeven of direct " +"uitschakelen." + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "" +"Met deze optie stelt u de functie in van de '0' toets indien PIP actief is.\n" +"\n" +"U kunt kiezen uit, standaard, wisselen tussen PIP en het hoofdscherm, " +"verplaats het PIP scherm naar het hoofdscherm of beëindig de PIP functie." + +msgid "Configure the gateway." +msgstr "Configureer de gateway." + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "" +"Met deze optie stelt u de algemene audio vertraging van Dolby digital geluid " +"in." + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "" +"Met deze optie stelt u de algemene audio vertraging van stereo geluid in." + +msgid "" +"Configure the hard disk drive to go to standby after the specified idle time." +msgstr "Stel in binnen welk tijdsbestek de harde schijf in standby gaat." + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "" +"Met deze optie stelt u de horizontale uitlijning van de ondertitels in.\n" +"\n" +"U kunt hier kiezen tussen links, rechts of gecentreerd. De standaardwaarde " +"is gecentreerd." + +msgid "" +"Configure the initial fast forward speed. When you press the fast forward " +"button, winding will start at this speed." +msgstr "" +"Met deze optie stelt u de initiële voorwaartse spoelsnelheid in. Zodra u, " +"tijdens een weergave, op FF drukt zal het spoelen starten met deze " +"snelheid. \n" +"\n" +"Instellen met de cursor naar rechts / links toetsen en bevestigen met ok. De " +"standaardwaarde is 2x. " + +msgid "" +"Configure the initial rewind speed. When you press the rewind button, " +"winding will start at this speed." +msgstr "" +"Met deze optie stelt u de initiële achterwaartse spoelsnelheid in. Zodra u, " +"tijdens een weergave, op REW drukt zal het spoelen starten met deze " +"snelheid. \n" +"\n" +"U kunt dit instellen met de cursor rechts / links toetsen tussen 2x en 128x, " +"en bevestigen met ok. De standaardwaarde bedraagt 2x" + +msgid "Configure the latitude of your location." +msgstr "Stel de breedtegraad van uw locatie in." + +msgid "Configure the longitude of your location." +msgstr "Stel de lengtegraad van uw locatie in." + +msgid "" +"Configure the minimum amount of disk space to be available for recordings. " +"When the amount of space drops below this value, deleted items will be " +"removed from the trash can." +msgstr "" +"Met deze optie stelt u de minimaal beschikbare ruimte voor opnames in. Zodra " +"de vrije ruimte kleiner is dan deze waarde, dan worden de te wissen opnames " +"uit de prullenmand verwijderd.\n" +"\n" +"U kunt hier zelf een waarde ingeven. De standaardwaarde is 40 Gb" + +msgid "Configure the nameserver (DNS)." +msgstr "Configureer de naamserver (DNS)" + +msgid "Configure the netmask." +msgstr "Configureer netmask." + +msgid "" +"Configure the number of days after which items are automaticaly removed from " +"the trash can." +msgstr "" +"Met deze optie stelt in na hoeveel dagen te wissen items automatisch uit de " +"prullenmand verwijderd worden.\n" +"\n" +"U kunt hier zelf een waarde ingeven. De standaardwaarde is 8 dagen." + +msgid "" +"Configure the number of days old timers are kept before they are " +"automatically removed from the timer list." +msgstr "" +"Met deze optie stelt u in hoeveel dagen de gebruikte timers bewaard blijven, " +"voordat deze automatisch uit de timerlijst verwijderd worden.\n" +"\n" +"U kunt hier zelf een waarde ingeven. De standaardwaarde is 7 dagen." + +msgid "" +"Configure the offline decoding delay in milliseconds. The configured delay " +"is observed at each control word parity change." +msgstr "" +"Met deze optie stelt u de vertraging van de 'offline decoding' in msec in. " +"De vertraging wordt bepaald bij iedere wijziging van het CW.\n" +"\n" +"U kunt hier zelf een waarde in msec ingeven. De standaardwaarde is 1000 ms" + +msgid "Configure the possible fast forward speeds." +msgstr "" +"Met deze optie stelt u de mogelijke voorwaartse spoelsnelheid in.\n" +"(De snelheden variëren van 2x - 128x)\n" +"\n" +"Stel dit in met cursur naar rechts en bevestig met ok." + +msgid "Configure the possible rewind speeds." +msgstr "" +"Met deze optie stelt u de mogelijke achterwaartse spoelsnelheid in.\n" +"(De snelheden variëren van 2x - 128x)\n" +"\n" +"Stel dit in met cursur naar rechts en bevestig met ok." + +msgid "Configure the primary EPG language." +msgstr "Stel de eerste EPG taal in." + +msgid "Configure the refresh rate of the screen." +msgstr "" +"Met deze optie stelt u de verversingssnelheid van het scherm in.\n" +"\n" +"U kunt kiezen voor multi, 50Hz of 60Hz." + +msgid "Configure the screen resolution in PC output mode." +msgstr "Met deze optie stelt u de schermresolutie in bij de PC output modus." + +msgid "Configure the second audio language." +msgstr "Stel de tweede audio taal in." + +msgid "Configure the second subtitle language." +msgstr "Bepaal de tweede ondertitel taalselectie" + +msgid "Configure the secondary EPG language." +msgstr "Stel de tweede EPG taal in." + +msgid "Configure the sharpness of the video scaling." +msgstr "Met deze optie stelt u scherpte van de videoconverting in." + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "" +"Met deze optie stelt u in hoeveel minuten u met één druk op de toetsen " +"'1'/'3' verder of terug kunt gaan in een lopende weergave.\n" +"\n" +"U kunt hier zelf een waarde ingeven. De standaardwaarde is 15 sec." + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "" +"Met deze optie stelt u in hoeveel minuten u met één druk op de toetsen " +"'4'/'6' verder of terug kunt gaan in een lopende weergave.\n" +"\n" +"U kunt hier zelf en waarde ingeven. De standaardwaarde is 60 sec." + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "" +"Met deze optie stelt u in hoeveel minuten u met één druk op de toetsen " +"'7'/'9' verder of terug kunt gaan in een lopende weergave.\n" +"\n" +"U kunt hier zelf een waarde ingeven. De standaardwaarde is 300 sec / 5 min." + +msgid "Configure the slow motion speeds." +msgstr "" +"Met deze optie stelt u de slowmotion snelheden in.\n" +"(De snelheden variëren van 1/2, 1/4 - 1/25 van de normale weergave)\n" +"\n" +"Stel dit in met cursur naar rechts en bevestig met ok." + +msgid "" +"Configure the source of the frontend data as shown on the infobars. " +"'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" +"Configureer de bron van de frontend data zoals deze te zien is in de " +"informatiebalk.\n" +"\n" +"U kunt kiezen uit:\n" +"'Settings' zoals deze is opgeslagen in de settings, of voor 'Tuner' zoals " +"deze doorgegeven wordt door de tuner." + +msgid "" +"Configure the speed of the background deletion process. Lower speed will " +"consume less hard disk drive performance." +msgstr "" +"Met deze optie stelt u de snelheid in van het op de achtergrond verwijderen " +"van opnames. Een lagere snelheid zal minder performance van de harde schijf " +"eisen.\n" +"\n" +"U kunt hier een waarde kiezen tussen 10 - 100Mb/sec. De standaardwaarde is " +"20 Mb." + +msgid "Configure the speed of the fan" +msgstr "Met deze optie stelt u traploos de snelheid van de ventilator in." + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "" +"Met deze optie stelt u de vertraging van de ondertitels in indien er geen " +"timinginformatie beschikbaar is.\n" +"\n" +"U kunt dit instellen met de cursor R / L toetsen tussen -10 tot +20 sec in " +"stappen van 0.5 sec. De standaardwaarde is 3.5 sec." + +msgid "Configure the third audio language." +msgstr "Stel de derde audiotaal in." + +msgid "Configure the third subtitle language." +msgstr "Stel de derde ondertitel taalselectie in." + +msgid "Configure the transparency of the OSD." +msgstr "Met deze optie stelt u de transparantie van de OSD in." + +msgid "" +"Configure the transparency of the black background of graphical DVB " +"subtitles." +msgstr "" +"Met deze optie stelt u de transparantie in van de zwarte achtergrond van de " +"grafische ondertitels.\n" +"\n" +"U kunt dit instellen met cursor R / L van geen transparantie tot volledig, " +"in stappen van 10%. De standaardwaarde is geen." + +msgid "Configure the tuner mode." +msgstr "Bepaal de tuner modus." + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "" +"Met deze optie stelt u de weergave van het statusicoon in bij weergave van " +"de opnamelijst.\n" +"\n" +"Uit kunt kiezen uit de volgende opties. Uit, voortgang, kleine stapjes " +"voorwaarts of de iconen." + +msgid "" +"Configure the vertical position of the subtitles, measured from the bottom " +"of the screen." +msgstr "" +"Met deze optie stelt u de verticale positie van de ondertitels in. Dit is " +"gemeten vanaf de onderzijde van het scherm.\n" +"\n" +"U kunt hier een waarde kiezen van 0 - 450 pixels. De standaardwaarde is 50 " +"pixels." + +msgid "Configure the video output mode (or resolution)." +msgstr "" +"Stel de modus (resolutie) van de videouitgang in.\n" +"\n" +"U kunt, afhankelijk van uw ontvanger, kiezen uit 1080P, 1080i, 576p, 480p, " +"576i, 480i of 720p" + +msgid "Configure the way in which the receiver changes channels." +msgstr "" +"Met deze optie stelt u in hoe het beeld weergegeven wordt tijdens het " +"zappen.\n" +"\n" +"U kunt kiezen uit een zwart of een stilstaand beeld, al dan niet afhankelijk " +"van een lock van de betreffende zender." + +msgid "Configure where completed timers show up in the timer list." +msgstr "" +"Met deze optie stelt u in waar in het timeroverzicht de uitgevoerde timers " +"getoond worden.\n" +"\n" +"U kunt kiezen tussen bovenaan of onderaan de lijst. " + +msgid "" +"Configure whether (and for how long) a second infobar will be shown when OK " +"is pressed twice. The second infobar contains additional information about " +"the current channel." +msgstr "" +"Met deze optie stelt u in of, en zo ja, hoe lang het uitgebreide " +"informatiescherm getoond moet worden. Het uitgebreide informatiescherm toont " +"aanvullende informatie betreffende de huidige zender.\n" +"\n" +"U kunt kiezen uit, geen weergave, geen timeout, tussen 1-11 sec of bij een " +"EPG update." + +msgid "" +"Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "" +"Indien geactiveerd stelt u in of zenders met meerdere geluidskananelen, of " +"deze kanalen omgezet moeten worden naar stereo." + +msgid "" +"Configure whether or not an icon should be shown when your motorized dish is " +"moving." +msgstr "" +"Indien geactiveerd, dan is de activiteit van de DiSEqC-motor zichtbaar. " + +msgid "" +"Configure which access level to use for the configuration menu. Expert level " +"gives access to all items." +msgstr "" +"Met deze optie stelt u het toegangsniveau in van het het instellingsmenu van " +"uw ontvanger. De expertmodus geeft toegang tot alle instellingen.\n" +"\n" +"U kunt kiezen uit standaard, gevorderd of de expertmodus." + +msgid "Configure which color format should be used on the SCART output." +msgstr "Stel in welk kleurformaat gebruikt wordt bij weergave via de scart." + +msgid "" +"Configure which tuner for recordings will be preferred, when more than one " +"tuner is available." +msgstr "" +"Met deze optie stelt u in welke tuner de voorkeurstuner is voor opnames " +"indien er meerdere tuners beschikbaar zijn.\n" +"\n" +"U kunt, afhankelijk van het aantal beschikbare tuners, kiezen uit " +"automatisch of de handmatig door u gekozen tuner." + +msgid "" +"Configure which tuner type will be preferred, when the same service is " +"available on different types of tuners." +msgstr "" +"Met deze optie stelt u in welke tuner de voorkeurstuner is indien de " +"betreffende zender op verschillende (type) tuners beschikbaar is.\n" +"\n" +"U kunt kiezen uit de volgende mogelijkheden:\n" +"DVB-S/-C/-T, DVB-S/-T/-C, DVB-C/-S/-T, \n" +"DVB-C/-T/-S, DVB-T/-C/-S of DVB-T/-S/-C." + +msgid "" +"Configure which tuner will be preferred, when more than one tuner is " +"available. If set to 'auto' the system will give priority to the tuner " +"having the lowest number of channels/satellites." +msgstr "" +"Met deze optie stelt u in welke tuner de voorkeurstuner is indien er " +"meerdere tuners beschikbaar zijn. Indien gekozen wordt voor 'auto' zal er " +"gekozen worden voor de tuner met het minste aantal zenders / satellieten. " + +msgid "Configure your internal LAN" +msgstr "Configureer uw interne netwerk" + +msgid "Configure your network again" +msgstr "Configureer uw netwerk opnieuw" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "Configureer uw netwerkinstellingen en druk OK om de scan te starten" + +msgid "Configure your wireless LAN again" +msgstr "Configureer uw draadloos netwerk opnieuw" + +msgid "Configures which video output connector will be used." +msgstr "" +"Met deze optie kiest u de gewenste videouitgang.\n" +"\n" +"U kunt kiezen uit HDMI (default), component of scart." + +msgid "Configuring" +msgstr "Configureren" + +msgid "Conflicting timer" +msgstr "Timer conflict!" + +msgid "Connect" +msgstr "Verbinden" + +msgid "Connect to a wireless network" +msgstr "Verbind met een draadloos netwerk" + +msgid "Connected satellites" +msgstr "Verbonden satellieten" + +msgid "Connected to" +msgstr "Verbonden met" + +msgid "Connected!" +msgstr "Verbonden!" + +msgid "Constellation" +msgstr "Constellatie" + +msgid "Content does not fit on DVD!" +msgstr "De inhoud past niet op deze DVD!" + +msgid "Continue" +msgstr "Doorgaan" + +msgid "Continue in background" +msgstr "Verder op de achtergrond" + +msgid "Continue playback" +msgstr "Doorlopend afspelen" + +msgid "Continue playing" +msgstr "Afspelen voortzetten" + +msgid "Continues play (loop)" +msgstr "Continu afspelen (lus)" + +msgid "Contrast" +msgstr "Contrast" + +msgid "Convert ext3 filesystem to ext4" +msgstr "Converteer het bestandssysteem van ext3 naar ext4" + +msgid "Convert ext3 to ext4" +msgstr "Converteer ext3 naar ext 4" + +msgid "Converting ext3 to ext4..." +msgstr "Converteert ext3 naar ext4...." + +msgid "Copy" +msgstr "Kopieër " + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "Kan geen verbinding maken met .NFI Image bronserver:" + +msgid "Could not find installed channel list." +msgstr "Ik kon geen geïnstalleerde zenderlijst vinden." + +msgid "Could not load medium! No disc inserted?" +msgstr "Kon het medium niet laden! Is er geen schijf geplaatst?" + +msgid "Could not open Picture in Picture" +msgstr "Kan Picture In Picture niet openen" + +#, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "Kon niet opnemen vanwege conflicterende timer %s" + +#, python-format +msgid "Could not record due to invalid service %s" +msgstr "Kon niet opnemen vanwege een ongeldige service %s" + +msgid "Create DVD-ISO" +msgstr "DVD-ISO maken" + +msgid "Create more detailed crash log" +msgstr "Extra informatie toevoegen aan het crashlog" + +#, python-format +msgid "Creating directory %s failed." +msgstr "Het aanmaken van de map %s is mislukt." + +msgid "Creating filesystem" +msgstr "Maakt bestandssysteem" + +msgid "Creating partition" +msgstr "Maakt een partitie" + +msgid "Croatian" +msgstr "Kroatisch" + +msgid "Current CEC address" +msgstr "Huidig CEC adres" + +msgid "Current device: " +msgstr "Huidig apparaat:" + +msgid "Current event EPG" +msgstr "Huidige programma EPG" + +#, python-format +msgid "Current mode: %s \n" +msgstr "Huidige modus: %s \n" + +msgid "Current settings:" +msgstr "Huidige instellingen:" + +msgid "Current transponder" +msgstr "Huidige transponder" + +msgid "Current value: " +msgstr "Huidige waarde:" + +msgid "Current version:" +msgstr "Huidige versie:" + +msgid "Currently installed image" +msgstr "Huidig geïnstalleerde image" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" +"Op dit moment kan het commitlog niet bereikt worden - probeer het later " +"opnieuw" + +msgid "Custom skip time for '1'/'3' buttons" +msgstr "Aangepaste skiptijd voor de '1'/'3'-toetsen" + +msgid "Custom skip time for '4'/'6' buttons" +msgstr "Aangepaste skiptijd voor de '4'/'6'-toetsen" + +msgid "Custom skip time for '7'/'9' buttons" +msgstr "Aangepaste skiptijd voor de '7'/'9'-toetsen" + +msgid "Customize" +msgstr "Diverse instellingen" + +msgid "Customize channel list cursor behavior" +msgstr "Pas het gedrag van de zenderlijst cursor aan" + +msgid "Cut" +msgstr "Knip" + +msgid "Cutlist editor..." +msgstr "Cutlijst editor" + +msgid "Czech" +msgstr "Tsjechisch" + +msgid "D" +msgstr "D" + +msgid "DHCP" +msgstr "DHCP" + +msgid "DMM advanced" +msgstr "DMM geavanceerd" + +msgid "DMM normal" +msgstr "DMM normaal" + +msgid "DUAL LAYER DVD" +msgstr "DUAL LAYER DVD" + +msgid "DVB subtitle black transparency" +msgstr "Zwarte transparantie van DVB ondertitels" + +msgid "DVB-C" +msgstr "DVB-C" + +msgid "DVB-C ANNEX C" +msgstr "DVB-C ANNEX C" + +msgid "DVB-S" +msgstr "DVB-S" + +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "DVB-T" + +msgid "DVB-T2" +msgstr "DVB-T2" + +msgid "DVD data format" +msgstr "DVD dataformaat" + +msgid "DVD file browser" +msgstr "DVD bestandszoeker" + +msgid "DVD media toolbox" +msgstr "DVD medium gereedschap" + +msgid "DVD player" +msgstr "DVD-speler" + +msgid "DVD titlelist" +msgstr "DVD titellijst" + +msgid "Danish" +msgstr "Deens" + +msgid "Date" +msgstr "Datum" + +msgid "Date/time input" +msgstr "Tijd / Datum invoer" + +msgid "Deep standby" +msgstr "Volledig uitschakelen" + +msgid "Default" +msgstr "Standaard" + +msgid "Default movie location" +msgstr "Standaard opnamelocatie" + +msgid "Default settings" +msgstr "Standaard instellingen" + +msgid "Delay before key repeat starts:" +msgstr "Wachttijd voor toetsherhaling begint:" + +msgid "Delay for external subtitles" +msgstr "Vertraging voor externe ondertitels" + +msgid "Delete" +msgstr "Verwijderen" + +msgid "Delete entry" +msgstr "Verwijder invoer" + +msgid "Delete failed!" +msgstr "Verwijderen mislukt!" + +msgid "Delete file" +msgstr "Verwijder bestand" + +msgid "Delete playlist entry" +msgstr "Verwijder een item uit de afspeellijst" + +msgid "Delete saved playlist" +msgstr "Verwijder een opgeslagen afspeellijst" + +msgid "Delete timer" +msgstr "Verwijder timer" + +msgid "Delete..." +msgstr "Verwijder..." + +msgid "Deleted" +msgstr "Verwijderd" + +msgid "Deleted items" +msgstr "Verwijderde bestanden" + +msgid "Depth" +msgstr "Diepte" + +msgid "Descramble http streams" +msgstr "Decoderen van http streams" + +msgid "Description" +msgstr "Beschrijving" + +msgid "Deselect" +msgstr "Deselecteer" + +msgid "Details for plugin: " +msgstr "Plugin details:" + +msgid "Detected HDD:" +msgstr "Gedetecteerde harde schijf:" + +msgid "Detected NIMs:" +msgstr "Gedetecteerde tuners:" + +msgid "Devicename:" +msgstr "Apparaatnaam:" + +msgid "Devide" +msgstr "Verdelen" + +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "DiSEqC 1.0 commando" + +msgid "DiSEqC 1.1 command" +msgstr "DiSEqC 1.1 commando" + +msgid "DiSEqC 1.1 repeats" +msgstr "DiSEqC 1.1 herhalingen" + +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +msgid "DiSEqC mode" +msgstr "DiSEqC-modus" + +#, python-format +msgid "DiSEqC port %s: %s" +msgstr "DiSEqC poort %s: %s" + +msgid "DiSEqC-tester settings" +msgstr "DiSEqC tester instellingen" + +msgid "Dialing:" +msgstr "Kiezen:" + +msgid "Digital contour removal" +msgstr "Digitale contour verwijderen" + +msgid "Direct playback of linked titles without menu" +msgstr "Direct afspelen van titels zonder menu" + +msgid "Directory" +msgstr "Map" + +#, python-format +msgid "Directory %s does not exist." +msgstr "Map %s bestaat niet." + +#, python-format +msgid "Directory %s nonexistent." +msgstr "Directory %s bestaat niet." + +msgid "Directory browser" +msgstr "Bestandsverkenner" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "Deze directory bevat %d bestand(en) en %d sub-directories.\n" + +#, python-format +msgid "Directory contains %s and %s." +msgstr "Directory bevat %s en %s." + +msgid "Disable" +msgstr "Uit" + +msgid "Disable Picture in Picture" +msgstr "Picture In Picture uitschakelen" + +msgid "Disable background scanning" +msgstr "Achtergrondscan uitschakelen" + +msgid "Disable timer" +msgstr "Timer uitschakelen" + +msgid "Disabled" +msgstr "Gedeactiveerd" + +msgid "Disconnect" +msgstr "Verbreken" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "Te reserveren schijfruimte voor opnames (in GB)" + +msgid "Display 16:9 content as" +msgstr "Toon 16:9 materiaal als" + +msgid "Display 4:3 content as" +msgstr "Toon 4:3 materiaal als" + +msgid "Display >16:9 content as" +msgstr "Toon >16:9 materiaal als" + +msgid "Display and userinterface" +msgstr "Display en gebruikersinterface" + +msgid "Display message before playing next movie" +msgstr "Een bericht weergeven voordat de volgende film start" + +msgid "Display setup" +msgstr "Instellingen voor het display" + +msgid "Do not change" +msgstr "Niet wijzigen" + +msgid "Do not record" +msgstr "Niet opnemen" + +msgid "Do nothing" +msgstr "Geen actie" + +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Wilt u het bestandssysteem echt controleren?\n" +"Dit kan heel lang duren!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" +"Bent u er zeker van dat u het bestandssysteem wilt converteren?\n" +"Er is geen weg terug!" + +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Wilt u %s echt wissen?" + +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"Wilt u echt de plugin \n" +"\"%s\" downloaden?" + +msgid "Do you really want to exit?" +msgstr "Echt afbreken?" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" +"Wilt u het apparaat echt initialiseren?\n" +"Alle gegevens worden dan verwijderd!" + +#, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"Wilt u de \"%s\" plugin\n" +"echt verwijderen ?" + +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Weet u zeker dat u map %s van de harde schijf wilt wissen?" + +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Weet u zeker dat u de het markeerpunt van %s wilt wissen?" + +msgid "Do you want this?" +msgstr "Wilt u dit doen?" + +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Wilt u deze selectie op een DVD branden?" + +msgid "Do you want to do a service scan?" +msgstr "Wilt u nu zenders gaan zoeken?" + +msgid "Do you want to do another manual service scan?" +msgstr "Wilt u opnieuw handmatig zoeken?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "Wilt u de image naar %s downloaden?" + +msgid "Do you want to install a channel list?" +msgstr "Wilt u een zenderlijst installeren?" + +msgid "Do you want to install the package:\n" +msgstr "Wilt u dit pakket installeren:\n" + +msgid "Do you want to play DVD in drive?" +msgstr "Wilt u de DVD in de speler afspelen?" + +msgid "Do you want to preview this DVD before burning?" +msgstr "Wilt u de DVD bekijken alvorens deze te branden?" + +msgid "Do you want to reboot your receiver?" +msgstr "Wilt u de ontvanger opnieuw opstarten?" + +msgid "Do you want to remove the package:\n" +msgstr "Wilt u dit pakket verwijderen:\n" + +msgid "Do you want to restore your settings?" +msgstr "Wilt u uw instellingen nu terugzetten?" + +msgid "Do you want to resume this playback?" +msgstr "Wilt u het afspelen vervolgen?" + +#, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Wilt u uw ontvanger updaten naar %s?" + +msgid "Do you want to update your receiver?" +msgstr "Wilt u de ontvanger updaten?" + +msgid "Do you want to upgrade the package:\n" +msgstr "Wilt u een upgrade van dit pakket:\n" + +msgid "Don't stop current event but disable coming events" +msgstr "Huidige timer niet stoppen, maar toekomstige timers uitschakelen" + +#, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "Gereed - %d pakket geïnstalleerd, vervangen of verwijderd (%s)" +msgstr[1] "Gereed - %d pakketten geïnstalleerd, vervangen of verwijderd (%s)" + +msgid "Download" +msgstr "Downloaden" + +#, python-format +msgid "Download %s from server" +msgstr "Download %s van de server" + +msgid "Download .NFI-files for USB-flasher" +msgstr "Download .NFI-bestanden voor USB-flasher" + +msgid "Download plugins" +msgstr "Downloaden" + +msgid "Downloadable new plugins" +msgstr "Beschikbare plugins" + +msgid "Downloadable plugins" +msgstr "Beschikbare plugins" + +msgid "Downloading" +msgstr "Bezig met downloaden" + +msgid "Downloading plugin information. Please wait..." +msgstr "Applicatie informatie ophalen. Een ogenblik aub..." + +msgid "Dutch" +msgstr "Nederlands" + +msgid "Dynamic contrast" +msgstr "Dynamisch contrast" + +msgid "E" +msgstr "O" + +msgid "EPG" +msgstr "EPG" + +msgid "EPG language selection 1" +msgstr "EPG taalselectie 1" + +msgid "EPG language selection 2" +msgstr "EPG taalselectie 2" + +msgid "EPG selection" +msgstr "EPG selectie" + +msgid "EPG settings" +msgstr "EPG instellingen" + +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "Fout - zoeken mislukt (%s)!" + +msgid "East" +msgstr "Oost" + +msgid "East limit set" +msgstr "Oost-limiet gezet" + +msgid "Edit" +msgstr "Bewerk" + +msgid "Edit DNS" +msgstr "DNS wijzigen" + +msgid "Edit bouquets list" +msgstr "Bouquetlijst aanpassen" + +msgid "Edit chapters of current title" +msgstr "Wijzig hoofdstuk van de huidige titel" + +msgid "Edit services list" +msgstr "Wijzig zenderlijst" + +msgid "Edit settings" +msgstr "Instellingen wijzigen" + +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "" +"Pas de nameserver-configuratie van uw ontvanger aan.\n" +"\n" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "" +"Pas de netwerk-configuratie aan.\n" +"\n" + +msgid "Edit timer" +msgstr "Wijzig timer" + +msgid "Edit title" +msgstr "Wijzig titel" + +msgid "Edit upgrade source url." +msgstr "Upgrade url bewerken." + +msgid "Education/Science/..." +msgstr "educatie/wetenschap/..." + +msgid "Electronic Program Guide" +msgstr "Elektronische Programma Gids" + +msgid "Enable" +msgstr "Aan" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "Kanaalkeuze volgens de 'neutrino stijl' aktiveren " + +msgid "Enable 'neutrino' style zap controlling" +msgstr "Gebruik de 'neutrino' manier om te zappen" + +msgid "Enable 5V for active antenna" +msgstr "5V voor actieve antenne inschakelen" + +msgid "Enable EIT EPG" +msgstr "EIT EPG inschakelen" + +msgid "Enable MHW EPG" +msgstr "MHW EPG inschakelen" + +msgid "Enable Netmed EPG" +msgstr "Netmed EPG inschakelen" + +msgid "Enable OK for channel selection" +msgstr "Zenderlijst via OK openen" + +msgid "Enable ViaSat EPG" +msgstr "Viasat EPG inschakelen" + +msgid "Enable Virgin EPG" +msgstr "Virgin EPG inschakelen" + +msgid "Enable Wake On LAN" +msgstr "Activeer Wake On LAN" + +msgid "Enable auto fast scan" +msgstr "Activeer auto fastscan" + +msgid "Enable bouquet selection in multi-EPG" +msgstr "" +"Indien geactiveerd, dan wordt het bouquet selectiemenu weergegeven in de " +"multi-EPG." + +msgid "Enable freesat EPG" +msgstr "Freesat EPG inschakelen" + +msgid "Enable multiple bouquets" +msgstr "Zenders in meerdere bouquetten toestaan" + +msgid "Enable parental control" +msgstr "Kinderslot inschakelen" + +msgid "Enable teletext caching" +msgstr "Teletext caching inschakelen" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "Zappen met de CH +/-, B +/-, P +/- inschakelen" + +msgid "Enabled" +msgstr "Ingeschakeld" + +msgid "Encrypted: " +msgstr "Gecodeerd" + +msgid "Encryption" +msgstr "Codering" + +msgid "Encryption key" +msgstr "Coderingssleutel" + +msgid "Encryption key type" +msgstr "Coderingssleuteltype" + +msgid "Encryption:" +msgstr "Codering:" + +msgid "End time" +msgstr "Eindtijd" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "De eindtijd die de inactiviteit sleeptimer negeert" + +msgid "End time to ignore shutdown in standby" +msgstr "Eind tijd om in standby gaan te negeren" + +msgid "English" +msgstr "Engels" + +msgid "Enigma2 skin selector" +msgstr "Enigma2 skinkeuze" + +msgid "Enter main menu..." +msgstr "Ga naar hoofdmenu..." + +msgid "Enter pin code" +msgstr "Voer pincode in" + +msgid "Enter the service pin" +msgstr "Voer de zender pincode in" + +msgid "Equal to" +msgstr "gelijk aan" + +msgid "Error" +msgstr "Fout" + +msgid "Error code" +msgstr "Foutcode" + +msgid "Error executing plugin" +msgstr "Fout bij uitvoeren plugin" + +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Fout: %s\n" +"Opnieuw?" + +msgid "Estonian" +msgstr "Ests" + +msgid "Ethernet network interface" +msgstr "Ethernet netwerkinterface" + +msgid "Event font size (relative to skin size)" +msgstr "Fontgrootte van de programmaomschrijving (skinafhankelijke grootte)" + +msgid "Event view" +msgstr "Programmaoverzicht" + +msgid "Event view menu" +msgstr "Programmaoverzichtsmenu" + +msgid "Everywhere" +msgstr "Overal" + +msgid "Exceeds dual layer medium!" +msgstr "Overschrijdt een dual layer schijf" + +msgid "Execution finished!!" +msgstr "Voortgang voltooid!" + +msgid "Execution progress:" +msgstr "Voortgang extern commando:" + +msgid "Exif" +msgstr "Exif" + +msgid "Exit" +msgstr "Afsluiten" + +msgid "Exit EPG" +msgstr "EPG afsluiten" + +msgid "Exit editor" +msgstr "Editor afsluiten" + +msgid "Exit input device selection." +msgstr "Beëindig invoerapparaatselectie" + +msgid "Exit media player?" +msgstr "Mediaplayer afsluiten?" + +msgid "Exit mediaplayer" +msgstr "Mediaspeler afsluiten" + +msgid "Exit movie list" +msgstr "Verlaten van de opnamelijst" + +msgid "Exit movie player?" +msgstr "Movieplayer beëindigen?" + +msgid "Exit nameserver configuration" +msgstr "Verlaat de naamserver configuratie" + +msgid "Exit network interface list" +msgstr "Verlaat het netwerkinterfaceoverzicht" + +msgid "Exit network wizard" +msgstr "Verlaat netwerkwizard" + +msgid "Exit the wizard" +msgstr "Wizard afsluiten" + +msgid "Expert" +msgstr "Expert" + +msgid "Extend sleeptimer 15 minutes" +msgstr "Verleng de sleeptimer met 15 minuten" + +msgid "Extended Software" +msgstr "Uitgebreide software" + +msgid "Extended Software Plugin" +msgstr "Uitgebreide software plugin" + +msgid "Extended network setup plugin..." +msgstr "Uitgebreide netwerkinstellingen plugin..." + +msgid "Extended setup..." +msgstr "Uitgebreide instellingen..." + +msgid "Extensions" +msgstr "Applicaties" + +msgid "Extensions management" +msgstr "Beheer Applicaties" + +msgid "External PiP" +msgstr "Externe PIP" + +msgid "External subtitle color" +msgstr "Kleur van de externe ondertitel" + +msgid "Extra motor options" +msgstr "Extra motor opties" + +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "FTA" + +msgid "Factory reset" +msgstr "Fabrieksinstellingen" + +msgid "Failed" +msgstr "Mislukt" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "Kan niet naar /tmp/positionersetup.log schrijven: " + +#, python-format +msgid "Fan %d" +msgstr "Ventilator %d" + +#, python-format +msgid "Fan %d PWM" +msgstr "Ventilator %d PWM" + +#, python-format +msgid "Fan %d voltage" +msgstr "Ventilator %d voltage" + +msgid "Fan operation" +msgstr "Ventilator " + +msgid "Fan speed" +msgstr "Ventilator snelheid" + +msgid "Fast" +msgstr "Snel" + +msgid "Fast DiSEqC" +msgstr "Snelle DiSEqC" + +msgid "Fast Scan" +msgstr "Fast Scan" + +msgid "Fast epoch" +msgstr "Snel spoelen" + +msgid "Fast forward speeds" +msgstr "Vooruitspoelsnelheden" + +msgid "Favourites" +msgstr "Favorieten" + +msgid "File appears to be busy.\n" +msgstr "Bestand mogelijk in gebruik door ander proces.\n" + +msgid "Filesystem check" +msgstr "Bestandssysteemcontrole" + +msgid "Final position at" +msgstr "Eindpositie op" + +msgid "Final position at index" +msgstr "Eindpositie op index" + +msgid "Fine movement" +msgstr "Exact positioneren" + +msgid "Finetune" +msgstr "Fijn afst." + +msgid "Finished" +msgstr "Voltooid" + +msgid "Finished configuring your network" +msgstr "Klaar met het configureren van uw netwerk" + +msgid "Finished restarting your network" +msgstr "Herstarten van uw netwerk is voltooid" + +msgid "Finnish" +msgstr "Fins" + +msgid "Fixed" +msgstr "Vast" + +msgid "Flash" +msgstr "Flash" + +msgid "Flashing failed" +msgstr "Flashen mislukt" + +msgid "Following tasks will be done after you press OK!" +msgstr "Nadat u op OK drukt worden de volgende taken uitgevoerd!" + +msgid "Format" +msgstr "Formaat" + +msgid "Forward volume keys" +msgstr "Volumetoetsen doorsturen" + +msgid "Frame size in full view" +msgstr "Framegrootte in vol beeld" + +msgid "French" +msgstr "Frans" + +msgid "Frequency" +msgstr "Frequentie" + +msgid "Frequency bands" +msgstr "Frequentiebanden" + +msgid "Frequency scan step size(khz)" +msgstr "Frequentie scan stapgrootte(kHz)" + +msgid "Frequency steps" +msgstr "Frequentie stappen" + +msgid "Frequency:" +msgstr "Frequentie:" + +msgid "Fri" +msgstr "Vr" + +msgid "Friday" +msgstr "Vrijdag" + +msgid "From :" +msgstr "Van:" + +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Frontprocessor versie: %d" + +msgid "Full transparency" +msgstr "Volledige transparantie" + +msgid "Fulview resulution" +msgstr "Resolutie van de volledige beeldgrootte" + +msgid "Function of OK button" +msgstr "De functie van de OK toets" + +msgid "Further Options" +msgstr "Extra opties" + +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"De gebruikersinterface moet herstart worden om\n" +"de nieuwe skin te activeren. Nu herstarten?" + +msgid "Gateway" +msgstr "Gateway" + +msgid "General AC3 delay" +msgstr "Algehele AC3 vertraging" + +msgid "General PCM delay" +msgstr "Algehele PCM vertraging" + +msgid "Genre" +msgstr "Genre" + +msgid "German" +msgstr "Duits" + +msgid "Get latest experimental image" +msgstr "Haal de laatste experimentele image" + +msgid "Get latest release image" +msgstr "Haal de laatste release image" + +msgid "Getting plugin information. Please wait..." +msgstr "Gegevens worden opgehaald. Een ogenblik geduld aub..." + +msgid "Go down the list" +msgstr "Ga naar beneden" + +msgid "Go to first movie or last item" +msgstr "Ga naar de eerste film of einde van de lijst" + +msgid "Go to first movie or top of list" +msgstr "Ga naar de eerste film of begin van de lijst" + +msgid "Go to first service" +msgstr "Ga naar het eerste kanaal" + +msgid "Go to last service" +msgstr "Ga naar het laatste kanaal" + +msgid "Go to next event" +msgstr "Ga naar de volgende EPG info" + +msgid "Go to next page of service" +msgstr "Ga naar volgende pagina met kanalen" + +msgid "Go to previous event" +msgstr "Ga naar de vorige EPG info" + +msgid "Go to previous page of service" +msgstr "Ga naar de vorige pagina met kanalen" + +msgid "Go up the list" +msgstr "Ga naar boven" + +msgid "Goto" +msgstr "Ga naar" + +msgid "Goto 0" +msgstr "Naar 0 positie" + +msgid "Goto :" +msgstr "Ga naar:" + +msgid "Goto X" +msgstr "Goto X" + +msgid "Goto index position" +msgstr "Naar indexpositie" + +msgid "Goto next day of events" +msgstr "Ga naar de gebeurtenissen van de volgende dag " + +msgid "Goto next page of events" +msgstr "Naar de volgende pagina met EPG info" + +msgid "Goto position" +msgstr "Naar positie draaien" + +msgid "Goto previous day of events" +msgstr "Ga naar de gebeurtenissen van de vorige dag" + +msgid "Goto previous page of events" +msgstr "Naar vorige pagina met EPG info" + +msgid "Goto specific date/time" +msgstr "ga naar een specifieke datum / tijd" + +msgid "GotoX calibration" +msgstr "GotoX calibratie" + +msgid "GraphMultiEpg Settings" +msgstr "GraphMultiEPG instellingen" + +msgid "Graphical Multi EPG" +msgstr "Grafische Multi EPG" + +msgid "Greek" +msgstr "Grieks" + +msgid "Green boost" +msgstr "Groene impuls" + +msgid "Guard interval" +msgstr "Guard interval" + +msgid "HD list" +msgstr "HD lijst" + +msgid "HDMI-CEC setup" +msgstr "HDMI-CEC instellingen" + +msgid "Handle standby from TV" +msgstr "Reageer op TV standby" + +msgid "Handle wakeup from TV" +msgstr "Reageer op TV aanzetten" + +msgid "Hard disk" +msgstr "Harde schijf " + +msgid "Hard disk setup" +msgstr "Harde schijfinstellingen" + +msgid "Hard disk standby after" +msgstr "Harde schijf gaat in standby na" + +msgid "Harddisk" +msgstr "Harde schijf" + +msgid "Hardware: " +msgstr "Hardware: " + +msgid "Hebrew" +msgstr "Hebreeuws" + +msgid "Helps setting up your dish" +msgstr "Helpt u uw schotel in te stellen" + +msgid "Hidden network" +msgstr "Verborgen netwerk" + +msgid "Hide CI messages" +msgstr "Verberg CI meldingen" + +msgid "Hide channel list in radio mode" +msgstr "Verberg de zenderlijst gedurende radiomodus" + +msgid "Hide known extensions" +msgstr "Verberg bekende extenties" + +msgid "Hide number markers" +msgstr "Verberg de numerieke markeringen" + +msgid "Hide player" +msgstr "Afspelen op de achtergrond" + +msgid "Hide zap errors" +msgstr "Verberg zap fouten" + +msgid "Hierarchy info" +msgstr "Hiërarchie-info" + +msgid "Hierarchy information" +msgstr "Hiërarchie-informatie" + +msgid "High bitrate support" +msgstr "Hoge bitrate-ondersteuning" + +msgid "Hold screen" +msgstr "Stilstaand beeld" + +msgid "Hold till locked" +msgstr "Stilstaand beeld totdat de zender gelockt is" + +msgid "Home" +msgstr "Home" + +msgid "Horizontal" +msgstr "Horizontaal" + +msgid "Horizontal turning speed" +msgstr "Horizontale draaisnelheid" + +msgid "How many minutes do you want to record?" +msgstr "Hoeveel minuten wilt u opnemen?" + +msgid "Hue" +msgstr "Tint" + +msgid "Hungarian" +msgstr "Hongaars" + +msgid "IP address" +msgstr "IP-adres" + +msgid "ISO file is too large for this filesystem!" +msgstr "ISO betand is te groot voor dit bestandsysteem!" + +msgid "ISO path" +msgstr "ISO pad" + +msgid "Icons" +msgstr "Iconen" + +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"Wanneer u dit ziet, is er iets mis met uw\n" +"scart aansluiting. Druk op OK om terug te keren." + +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is " +"something called \"dynamic\", set it to standard. Adjust the backlight level " +"to a value suiting your taste. Turn down contrast on your TV as much as " +"possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the " +"two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next " +"step.\n" +"If you are happy with the result, press OK." +msgstr "" +"Indien uw TV over contrast- of helderheidsoptimalisatie opties en andere " +"'beeldverbeteraars' beschikt, zet deze dan uit!\n" +"Instellingen als 'Dynamic', op standaard instellen.\n" +"Stel bij een LCD TV de achtergrondverlichting op een niveau in dat u " +"bevalt.\n" +"Zet het 'contrast' zo laag mogelijk.\n" +"Daarna de 'helderheid' zo laag mogelijk instellen, maar wel zodanig dat ook " +"de donkerste grijstinten zichtbaar zijn.\n" +"Let nu even niet op de heldere vlakken. Die worden pas bij de volgende stap " +"ingesteld.\n" +"\n" +"Indien het resultaat nu goed is, drukt u op OK." + +msgid "Image: " +msgstr "Image: " + +msgid "Immediate shutdown" +msgstr "Direct uitschakelen" + +msgid "" +"In order to record a timer, the TV was switched to the recording service!\n" +msgstr "Vanwege een geplande opname is naar het juiste kanaal geschakeld!\n" + +msgid "In progress" +msgstr "Is bezig" + +msgid "Inactivity Sleeptimer" +msgstr "Inactiviteits Sleeptimer" + +msgid "Include AIT in http streams" +msgstr "Neem AIT op in http streams" + +msgid "Include ECM in http streams" +msgstr "Neem ECM op in http streams" + +msgid "Include EIT in http streams" +msgstr "Neem EIT op in http streams" + +msgid "Incorrect type service for PiP!" +msgstr "Onjuist service type voor PIP!" + +msgid "Increased voltage" +msgstr "Verhoogd voltage" + +msgid "Index" +msgstr "Index" + +msgid "Index allocated:" +msgstr "Index gespecificeerd:" + +msgid "Info" +msgstr "Informatie" + +msgid "Info bar" +msgstr "Informatiebalk" + +msgid "Info bar timeout" +msgstr "Informatiebalk time-out" + +msgid "Infobar frontend data source" +msgstr "Infobalk data bron" + +msgid "Information" +msgstr "Informatie" + +msgid "Init" +msgstr "Initialiseren" + +msgid "Initial fast forward speed" +msgstr "Initiële vooruitspoelsnelheid" + +msgid "Initial location in new timers" +msgstr "Initiële plaats in nieuwe timers" + +msgid "Initial lock ratio" +msgstr "Initiële lock verhouding" + +msgid "Initial rewind speed" +msgstr "Initiële terugspoelsnelheid" + +msgid "Initial signal quality" +msgstr "Initiële signaalkwaliteit" + +msgid "Initial signal quality:" +msgstr "Initiële signaalkwaliteit:" + +msgid "Initialization" +msgstr "Initialiseren" + +msgid "Initialize" +msgstr "Initialiseer" + +msgid "Initializing storage device..." +msgstr "Opslagapparaat initialiseren" + +msgid "Input" +msgstr "Invoer" + +msgid "Input device setup" +msgstr "Invoerapparaat setup" + +msgid "Input devices" +msgstr "Invoerapparaten" + +msgid "Install" +msgstr "Installeer" + +msgid "Install a new image with a USB stick" +msgstr "Installeer een nieuwe image d.m.v. een USB-stick" + +msgid "Install a new image with your web browser" +msgstr "Installeer een nieuwe image via uw browser" + +msgid "Install channel list" +msgstr "Plaats een zenderlijst" + +msgid "Install extensions" +msgstr "Installeer applicaties" + +msgid "Install extensions." +msgstr "Installeer applicaties." + +msgid "Install local extension" +msgstr "Installeer plugins lokaal" + +msgid "Install picons on" +msgstr "Installeer picons op" + +msgid "Install softcam" +msgstr "Installeer softcam" + +msgid "Installation has completed." +msgstr "Installatie is gereed" + +msgid "Installation or removal has completed." +msgstr "Het installeren of verwijderen is voltooid." + +msgid "Installing" +msgstr "Installeert" + +msgid "Installing software..." +msgstr "De software wordt geïnstalleerd..." + +msgid "Instant recording location" +msgstr "Opnamelocatie directe opnames" + +msgid "Instant recording..." +msgstr "Directe opname..." + +msgid "Interface: " +msgstr "Interface: " + +msgid "Intermediate" +msgstr "Gevorderde" + +msgid "Internal flash" +msgstr "Intern geheugen" + +msgid "Internal hdd only" +msgstr "Alleen interne harddisk" + +msgid "Interval between keys when repeating:" +msgstr "Tijd tussen toetsherhaling" + +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Ongeldige map geselecteerd: %s" + +msgid "Invalid location" +msgstr "Ongeldige locatie" + +msgid "Invalid transponder data" +msgstr "Onjuiste transponder data" + +msgid "Inversion" +msgstr "Inversie" + +msgid "Invert" +msgstr "Iverteer" + +msgid "Ipkg" +msgstr "Ipkg" + +msgid "Is this setting ok?" +msgstr "Zijn deze instellingen correct?" + +msgid "Is this video mode ok?" +msgstr "Is deze videomode correct?" + +msgid "Italian" +msgstr "Italiaans" + +msgid "Items per page " +msgstr "Items per pagina" + +msgid "Items per page for list screen" +msgstr "Aantal regels in de lijstmode" + +msgid "Job overview" +msgstr "Voortgang" + +msgid "Jump to beginning of list" +msgstr "Spring naar het begin van de lijst" + +msgid "Jump to end of list" +msgstr "Stap naar het eind van de lijst" + +msgid "Jump to next marked position" +msgstr "Spring naar de volgende markering" + +msgid "Jump to previous marked position" +msgstr "Spring naar de vorige markering" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +msgid "Just scale" +msgstr "Alleen schalen" + +msgid "Keep service" +msgstr "Behoud service" + +msgid "Kernel version: " +msgstr "Kernel versie: " + +msgid "Keyboard" +msgstr "Toetsenbord..." + +msgid "Keyboard map" +msgstr "Toetsenbordlayout" + +msgid "Keyboard setup" +msgstr "Toetsenbordinstelling" + +msgid "LAN adapter" +msgstr "LANadapter" + +msgid "LAN connection" +msgstr "LAN verbinding" + +msgid "LNB" +msgstr "LNB" + +msgid "Language" +msgstr "Taal" + +msgid "Language selection" +msgstr "Taalkeuze" + +msgid "Last config" +msgstr "Laatste configuratie" + +msgid "Last speed" +msgstr "Laatste snelheid" + +msgid "Last upgrade: " +msgstr "Laatste upgrade: " + +msgid "Latest Commits" +msgstr "Laatste Commits" + +msgid "Latitude" +msgstr "Breedtegraad" + +msgid "Latvian" +msgstr "Lets" + +msgid "Leave DVD player?" +msgstr "Verlaat de DVD-speler?" + +msgid "Left" +msgstr "Links" + +msgid "Left from servicename" +msgstr "Links van de kanaalnaam" + +msgid "Leisure hobbies" +msgstr "Vrijetijd hobbies" + +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Letterbox" + +msgid "Letterbox zoom" +msgstr "Letterbox zoom" + +msgid "Limit character set for recording filenames" +msgstr "Beperk de tekenset voor de namen van de opnames" + +msgid "Limit east" +msgstr "Limiet oost" + +msgid "" +"Limit the characters that can be used in recording filenames to (7 bit) " +"ascii. This ensures compatibility with operating systems or file systems " +"with limited character sets." +msgstr "" +"Indien geactiveerd beperkt u het aantal karakters wat gebruikt wordt voor de " +"namen van de opnames (7 bit ascii). Dit zorgt ervoor dat de compatibiliteit " +"tussen besturings-systemen of bestandssystemen met een beperkte tekenset " +"gewaarborgd is." + +msgid "Limit west" +msgstr "Limiet west" + +msgid "Limits cancelled" +msgstr "Limieten afgebroken" + +msgid "Limits enabled" +msgstr "Limieten aangezet" + +msgid "Limits off" +msgstr "Limieten uit" + +msgid "Limits on" +msgstr "Limieten aan" + +msgid "Link quality:" +msgstr "Kwaliteit van de verbinding:" + +msgid "Link:" +msgstr "Verbinding:" + +msgid "Linked titles with a DVD menu" +msgstr "Verbind titels met een DVD menu" + +msgid "List EPG functions..." +msgstr "Overzicht van EPG functies..." + +msgid "List available networks" +msgstr "Toon beschikbare netwerken" + +msgid "List mode" +msgstr "Lijstmode" + +msgid "List of storage devices" +msgstr "Overzicht van opslagmedia" + +msgid "List type" +msgstr "Lijsttype" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "Lijstversie %d, %d zender gevonden" +msgstr[1] "Lijstversie %d, %d zenders gevonden" + +msgid "Listen to the radio..." +msgstr "Luister naar de radio..." + +msgid "Lists reloaded!" +msgstr "Lijsten opnieuw ingeladen!" + +msgid "Lithuanian" +msgstr "Litouws" + +msgid "Load" +msgstr "Laden" + +msgid "Load Length of Movies in Movielist" +msgstr "Laadt de tijdsduur van de films in de opnamelijst" + +msgid "Load length of movies in movie list" +msgstr "Toon lengte van opnames in opnamemenu" + +msgid "Load playlist" +msgstr "Afspeellijst laden" + +msgid "Local network" +msgstr "Locaal netwerk" + +msgid "Location" +msgstr "Locatie" + +msgid "Location for instant recordings" +msgstr "Opnamelocatie directe opnames" + +msgid "Lock ratio" +msgstr "Lock verhouding" + +msgid "Lock:" +msgstr "Lock:" + +msgid "Log results to harddisk" +msgstr "Schrijf resultaten naar de harde schijf" + +msgid "Long filenames" +msgstr "Lange bestandsnamen" + +msgid "Long key press" +msgstr "Lange toetsdruk" + +msgid "Longitude" +msgstr "Lengtegraad" + +msgid "Loop through to" +msgstr "doorlus naar" + +msgid "Luxembourgish" +msgstr "Luxemburgs" + +msgid "MMC card" +msgstr "MMC kaart" + +msgid "MORE" +msgstr "MEER" + +msgid "Main menu" +msgstr "Hoofdmenu" + +msgid "Maintain old EPG data for" +msgstr "Oude EPG data bewaren voor" + +msgid "Make this mark an 'in' point" +msgstr "Markeer dit als 'in' punt" + +msgid "Make this mark an 'out' point" +msgstr "Markeer dit als 'uit' punt" + +msgid "Make this mark just a mark" +msgstr "Universele markering" + +msgid "Manage extensions" +msgstr "Beheer applicaties" + +msgid "Manage your receiver's software" +msgstr "Beheer de software van uw ontvanger" + +msgid "Manual" +msgstr "Handmatig" + +msgid "Manual Scan" +msgstr "Handmatig zoeken" + +msgid "Manual configuration" +msgstr "Handmatige configuratie" + +msgid "Manual scan" +msgstr "Handmatig zoeken" + +msgid "Manual transponder" +msgstr "Transponder handmatig" + +msgid "Manufacturer" +msgstr "Fabrikant" + +msgid "Margin after recording (minutes)" +msgstr "Marge na een opname (minuten)" + +msgid "Margin before recording (minutes)" +msgstr "Marge voor een opname (minuten)" + +msgid "Max memory positions" +msgstr "Maximale aantal geheugenposities" + +msgid "Max. bitrate: " +msgstr "Max. bitrate: " + +msgid "Media player" +msgstr "Mediaspeler" + +msgid "Media scanner" +msgstr "Mediascanner" + +msgid "Medium is not a writeable DVD!" +msgstr "Dit medium is geen beschrijfbare DVD!" + +msgid "Medium is not empty!" +msgstr "Medium is niet leeg!" + +msgid "Memory" +msgstr "Geheugen" + +msgid "Memory index" +msgstr "Geheugenindex" + +msgid "Menu" +msgstr "Menu" + +msgid "Message" +msgstr "Bericht" + +msgid "Message..." +msgstr "Bericht..." + +#, python-format +msgid "Minimum age %d years" +msgstr "Minimumleeftijd %d jaar" + +msgid "Minimum send interval" +msgstr "Minimum verzend interval" + +msgid "Missing " +msgstr "Ontbrekend" + +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Modus " + +msgctxt "Video output mode" +msgid "Mode" +msgstr "Modus " + +msgid "Model: " +msgstr "Model: " + +msgid "Modulation" +msgstr "Modulatie" + +msgid "Modulator" +msgstr "Modulator" + +msgid "Mon" +msgstr "Ma" + +msgid "Mon-Fri" +msgstr "Ma - Vr" + +msgid "Monday" +msgstr "Maandag" + +msgid "Mosquito noise reduction" +msgstr "Omgevingsgeluidonderdrukking" + +msgid "Mount" +msgstr "Mount" + +msgid "Mount again" +msgstr "Opnieuw mounten" + +msgid "Move" +msgstr "Verplaats" + +msgid "Move PiP to main picture" +msgstr "Verplaats het PiP beeld naar het hoofdbeeld" + +msgid "Move Picture in Picture" +msgstr "Verplaats het PiP scherm" + +msgid "Move east" +msgstr "Draai oost" + +msgid "Move to other directory" +msgstr "Verplaats naar andere directory" + +msgid "Move to position X" +msgstr "Ga naar positie X" + +msgid "Move west" +msgstr "Draai west" + +msgid "Moved to position 0" +msgstr "Naar positie 0 gedraaid" + +msgid "Moved to position at index" +msgstr "Gedraaid naar positie op index" + +msgid "Movement" +msgstr "Verdraaiing" + +msgid "Movie List Configuration" +msgstr "Opnamelijst configuratie" + +msgid "Movie Selection" +msgstr "Filmkeuze" + +msgid "Movie list configuration" +msgstr "Configuratie van de opnamelijst" + +msgid "Movie location" +msgstr "Opnamelocatie" + +msgid "Movie selection" +msgstr "Filmselectie" + +msgid "Movie/Drama" +msgstr "film / drama" + +msgid "Movielist menu" +msgstr "Opnamelijstmenu" + +msgid "Moving" +msgstr "Draaien" + +msgid "Moving east ..." +msgstr "Draaien naar oost ..." + +msgid "Moving to position" +msgstr "Draaien naar positie" + +msgid "Moving west ..." +msgstr "Draaien naar west ..." + +msgid "Multi EPG" +msgstr "Multi EPG" + +msgid "Multi-EPG bouquet selection" +msgstr "Multi-EPG bouquet selectie" + +msgid "Multimedia" +msgstr "Multimedia" + +msgid "Multiple service support" +msgstr "Geschikt voor meervoudig decoderen" + +msgid "Multiplex" +msgstr "Multiplex" + +msgid "Multisat" +msgstr "Multisat. Handmatig" + +msgid "Multisat all select" +msgstr "Multisat, alles geselecteerd" + +msgid "Music/Ballet/Dance" +msgstr "muziek / ballet / dans" + +msgid "Mute" +msgstr "Geluid uit" + +msgid "N/A" +msgstr "Niet beschikbaar" + +msgid "NEXT" +msgstr "VOLGENDE" + +msgid "NFI image flashing" +msgstr "NFI image flashen" + +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "NFI image schrijven is gereed. Druk op gele toets om te herstarten!" + +msgid "NIM" +msgstr "NIM" + +msgid "NOW" +msgstr "NU" + +msgid "NTSC" +msgstr "NTSC" + +msgid "Name" +msgstr "Naam" + +msgid "Nameserver" +msgstr "Nameserver" + +#, python-format +msgid "Nameserver %d" +msgstr "Nameserver %d" + +msgid "Nameserver settings" +msgstr "Nameserver-instellingen" + +msgid "Nameserver setup" +msgstr "Instellingen van de nameserver" + +msgid "Namespace" +msgstr "Ruimte voor naam" + +msgid "Netmask" +msgstr "Netmask" + +msgid "Network" +msgstr "Netwerk" + +msgid "Network ID" +msgstr "Netwerk ID" + +msgid "Network configuration..." +msgstr "Netwerkconfiguratie..." + +msgid "Network mount" +msgstr "Netwerkmount" + +#, python-format +msgid "Network mount %s" +msgstr "Netwerkmount %s" + +msgid "Network name (SSID)" +msgstr "Netwerknaam (SSID)" + +msgid "Network scan" +msgstr "Netwerk doorzoeken" + +msgid "Network setup" +msgstr "Netwerkinstellingen" + +msgid "Network test" +msgstr "Netwerktest" + +msgid "Network test..." +msgstr "Netwerktest..." + +msgid "Network test: " +msgstr "Netwerktest: " + +msgid "Network wizard" +msgstr "Netwerkwizard" + +msgid "Network:" +msgstr "Netwerk:" + +msgid "New" +msgstr "Nieuw" + +msgid "New PIN" +msgstr "Nieuwe pincode" + +msgid "New version:" +msgstr "Nieuwe versie:" + +msgid "News Current Affairs" +msgstr "nieuws / actualiteiten" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "Volgende" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "Straks" + +msgid "No" +msgstr "Nee" + +msgid "No (supported) DVDROM found!" +msgstr "Geen (ondersteunde) DVDROM gevonden!" + +msgid "No Connection" +msgstr "Geen verbinding" + +msgid "No HDD found or HDD not initialized!" +msgstr "Geen harde schijf gevonden of de harde schijf is niet geïnitialiseerd!" + +msgid "No backup needed" +msgstr "Geen backup nodig" + +msgid "No cable tuner found!" +msgstr "Geen kabeltuner gevonden!" + +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Geen data op de transponder!\n" +"(Timeout reading PAT)" + +msgid "No delay" +msgstr "Geen vertraging" + +msgid "No description available." +msgstr "Geen beschrijving beschikbaar." + +msgid "No details for this image file" +msgstr "Geen details voor dit bestand:" + +msgid "No displayable files on this medium found!" +msgstr "Geen weer te geven bestanden op dit medium gevonden!" + +msgid "No event info found, recording indefinitely." +msgstr "Geen EPG gegevens gevonden. Opname voor onbepaalde tijd." + +msgid "" +"No fast winding possible yet.. but you can use the number buttons to skip " +"forward/backward!" +msgstr "" +"Snel spoelen is nog niet mogelijk.... u kunt echter de cijfertoetsen " +"gebruiken om te springen" + +msgid "No free index available" +msgstr "Geen vrije index beschikbaar" + +msgid "No free tuner!" +msgstr "Geen vrije tuner!" + +msgid "No network connection available." +msgstr "Geen netwerkverbinding beschikbaar" + +msgid "No networks found" +msgstr "Geen netwerken gevonden" + +msgid "No new plugins found" +msgstr "Geen nieuwe plugins gevonden" + +msgid "No positioner capable frontend found." +msgstr "Geen geschikte positioner gevonden." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "Geen satellieten ingesteld. Controleer uw tunerinstellingen." + +msgid "No service" +msgstr "Geen uitzending" + +msgid "No services/providers selected" +msgstr "Geen zender / provider gekozen" + +msgid "No standby" +msgstr "Geen standby" + +msgid "No suitable sat tuner found!" +msgstr "Geen passende satelliettuner gevonden!" + +msgid "No tags are set on these movies." +msgstr "Geen markeringen geplaatst op deze opnames." + +msgid "No timeout" +msgstr "Geen timeout" + +msgid "No to all" +msgstr "Nee op alles" + +msgid "No transparency" +msgstr "Geen transparantie" + +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "Er is geen tuner ingesteld voor gebruik van een DiSEqC motor!" + +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Geen tuner geactiveerd!\n" +"Controleer uw tunerinstellingen alvorens zenders te zoeken." + +msgid "No updates available" +msgstr " Geen updates beschikbaar." + +msgid "No updates available. Please try again later." +msgstr "Geen update beschikbaar. Probeer het later nogmaals." + +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Ongeldige pincode!\n" +"Wilt u de pincode nu wijzigen?\n" +"Indien u 'nee' kiest, blijft de zender onbeveiligd!" + +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Ongeldige menupincode!\n" +"Wilt u de menu pincode nu wijzigen?\n" +"Indien u 'nee' kiest, blijft het menu onbeveiligd!" + +msgid "No wireless networks found! Searching..." +msgstr "Geen draadloze netwerken gevonden! Zoeken..." + +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is " +"configured correctly." +msgstr "" +"Geen werkende locale netwerkadapter gevonden.\n" +"Controleer of er een netwerkkabel is aangesloten en of uw netwerk correct is " +"geconfigureerd." + +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your " +"network is configured correctly." +msgstr "" +"Geen werkende WIFI-adapter gevonden.\n" +"Controleer of er een compatibel WLAN apparaat is geplaatst en uw netwerk " +"correct is geconfigureerd." + +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable " +"your local network interface." +msgstr "" +"Geen werkende draadloze netwerkinterface gevonden.\n" +"Controleer of er een compatibel WLAN apparaat is geplaatst of activeer uw " +"locale netwerkinterface." + +msgid "No, but restart from begin" +msgstr "Nee, maar start opnieuw" + +msgid "No, do nothing." +msgstr "Nee, geen actie." + +msgid "No, just start my receiver" +msgstr "Nee, start de ontvanger." + +msgid "No, never" +msgstr "Nee, nooit" + +msgid "None" +msgstr "Geen" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Nonlineair" + +msgid "Normal mode" +msgstr "Normale mode" + +msgid "North" +msgstr "Noord" + +msgid "Norwegian" +msgstr "Noors" + +msgid "Not associated" +msgstr "Geen verband" + +msgid "Not configured" +msgstr "niet ingesteld" + +#, python-format +msgid "" +"Not enough disk space. Please free up some disk space and try again. (%d MB " +"required, %d MB available)" +msgstr "" +"Onvoldoende schijfruimte. Maak ruimte vrij en probeer het opnieuw (%d MB " +"noodzakelijk, %d MB beschikbaar)" + +msgid "Nothing connected" +msgstr "Niets aangesloten" + +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Niets gevonden!\n" +"Vóór het zoeken dient uw tuner correct ingesteld te zijn." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "Nu" + +msgid "Now playing" +msgstr "Huidige weergave" + +msgid "" +"Now, use the contrast setting to turn up the brightness of the background as " +"much as possible, but make sure that you can still see the difference " +"between the two brightest levels of shades.If you have done that, press OK." +msgstr "" +"Gebruik nu 'contrast' om de helderheid van de achtergrond zo hoog mogelijk " +"in te stellen, maar zorg er wel voor dat u nog steeds de helderste grijze " +"vlakken van elkaar kunt onderscheiden.\n" +"\n" +"Indien het resultaat goed is, drukt u op OK." + +msgid "OK" +msgstr "Bevestigen" + +msgid "OK, guide me through the upgrade process" +msgstr "OK, mij tijdens de software update begeleiden" + +msgid "ONID" +msgstr "ONID" + +msgid "OSD name request" +msgstr "OSD naam aanvragen" + +msgid "OSD settings" +msgstr "OSD instellingen" + +msgid "OSD transparency" +msgstr "OSD transparantie" + +msgid "Off" +msgstr "Uit" + +msgid "Offline decode delay (ms)" +msgstr "Vertraging voor achteraf decoderen (ms)" + +msgid "Ok" +msgstr "Ok" + +msgid "On" +msgstr "Aan" + +msgid "On end of movie" +msgstr "Op het einde van de opname" + +msgid "On end of movie (as menu)" +msgstr "Aan het einde van de film (conform menu)" + +msgid "One" +msgstr "Een" + +msgid "Only extensions." +msgstr "Alleen applicaties." + +msgid "Only free scan" +msgstr "Alleen FTA zenders scannen" + +msgid "Open service list" +msgstr "Open de zenderlijst" + +msgid "Open the movie list" +msgstr "Open de opnamelijst" + +msgid "Orbital position" +msgstr "Orbit positie" + +msgid "Original" +msgstr "Origineel" + +msgid "Other" +msgstr "Anders" + +msgid "Output" +msgstr "Uitgang" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "Configuratie bestanden tijdens de software update overschrijven?" + +msgid "Overwrite configuration files?" +msgstr "Configuratie bestanden overschrijven?" + +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "PCR PID" + +msgid "PIDs" +msgstr "PIDs" + +msgid "PIN code needed" +msgstr "Pincode benodigd" + +msgid "PLP ID" +msgstr "PLP ID" + +msgid "PMT PID" +msgstr "PMT PID" + +msgid "Package list update" +msgstr "Pakketlijst vernieuwen" + +msgid "Packet management" +msgstr "Pakketbeheer" + +msgid "Packet manager" +msgstr "Pakketbeheer" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +msgid "Pan&scan" +msgstr "Pan & Scan" + +msgid "Parent directory" +msgstr "Bovengelegen map" + +msgid "Parental control" +msgstr "Kinderslot" + +msgid "Parental control services editor" +msgstr "Kinderslot zendereditor" + +msgid "Parental control setup" +msgstr "Kinderslotinstellingen" + +msgid "Parental control type" +msgstr "Kinderslottype" + +msgid "Password" +msgstr "Wachtwoord" + +msgid "Pause" +msgstr "Pauze" + +msgid "Pause movie at end" +msgstr "Pauzeer afspelen aan het einde" + +msgid "Pause playback" +msgstr "Zet de weergave op pauze" + +msgid "Pauze/Continue playback" +msgstr "Pauze / Hervat afspelen" + +msgid "Percentage left" +msgstr "Percentage links" + +msgid "Percentage right" +msgstr "Percentage rechts" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "Alle bestanden in de prullenbak nu permanent verwijderen?" + +msgid "Permanently remove all deleted items" +msgstr "Prullenbak leegmaken" + +msgid "Persian" +msgstr "Perzisch" + +msgid "Phone number" +msgstr "Telefoonnummer" + +msgid "PiP setup" +msgstr "PiP instellingen" + +msgid "Picon" +msgstr "Picon" + +msgid "Picon and service name" +msgstr "Picon en zendernaam" + +msgid "Picture player" +msgstr "Slideshow" + +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Pillarbox" + +msgid "Pilot" +msgstr "Navigatie" + +msgid "Play" +msgstr "Afspelen" + +msgid "Play DVD" +msgstr "DVD afspelen" + +msgid "Play audio in background" +msgstr "Audio op de achtergrond afspelen" + +msgid "Play audio-CD..." +msgstr "Muziek CD afspelen..." + +msgid "Play back media files" +msgstr "Speel mediabestanden af" + +msgid "Play entry" +msgstr "Afspelen" + +msgid "Play from next mark or playlist entry" +msgstr "Afspelen vanaf het volgende markeerpunt of de volgende opname" + +msgid "Play from previous mark or playlist entry" +msgstr "Afspelen vanaf het vorige markeerpunt of de vorige opname" + +msgid "Play music..." +msgstr "Muziek afspelen..." + +msgid "Play next" +msgstr "Volgende afspelen" + +msgid "Play next (return to movie list)" +msgstr "Speel volgende (terug naar lijst)" + +msgid "Play next (return to previous service)" +msgstr "Speel volgende (terug naar live TV)" + +msgid "Play previous" +msgstr "Vorige afspelen" + +msgid "Play recorded movies..." +msgstr "Opname afspelen..." + +msgid "Please add titles to the compilation." +msgstr "Voeg aub titels toe aan de compilatie" + +msgid "Please change recording endtime" +msgstr "Wijzig de opname eindtijd aub." + +msgid "Please check your network settings!" +msgstr "Controleer uw netwerkinstellingen aub.!" + +msgid "Please choose an extension..." +msgstr "Kies een plugin aub..." + +msgid "" +"Please configure or verify your Nameservers by filling out the required " +"values.\n" +"When you are ready press OK to continue." +msgstr "" +"Configureer of controleer uw nameservers door de verplichte velden in te " +"vullen.\n" +"Druk op OK om verder te gaan." + +msgid "" +"Please configure your internet connection by filling out the required " +"values.\n" +"When you are ready press OK to continue." +msgstr "" +"Configureer uw internetverbinding door de verplichte velden in te vullen.\n" +"Druk op OK om verder te gaan." + +msgid "Please connect your receiver to the internet" +msgstr "Verbind uw ontvanger aub met het internet" + +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Wijzig hier geen instellingen tenzij u precies weet wat u doet" + +msgid "Please enter a name for the new bouquet" +msgstr "Voer de naam voor uw nieuwe bouquet in" + +msgid "Please enter a name for the new marker" +msgstr "Voer de naam voor uw nieuwe markeerpunt in" + +msgid "Please enter a new filename" +msgstr "Voer aub een bestandsnaam in " + +msgid "Please enter filename (empty = use current date)" +msgstr "Voer een bestandsnaam in (leeg= huidige datum)" + +msgid "Please enter name of the new directory" +msgstr "Voer de naam van de nieuwe map in aub." + +msgid "Please enter new name:" +msgstr "Geef aub een nieuwe naam in:" + +msgid "Please enter the correct pin code" +msgstr "Gelieve de juiste pincode in te voeren" + +msgid "Please enter the old PIN code" +msgstr "Toets de oude pincode in aub." + +msgid "Please follow the instructions on the TV" +msgstr "Volg nu de instructies op uw TV" + +msgid "" +"Please note that the previously selected media could not be accessed and " +"therefore the default directory is being used instead." +msgstr "" +"Het eerder geselecteerde medium kon niet worden benaderd en om die reden " +"wordt nu de standaard map gebruikt." + +msgid "Please press OK to continue." +msgstr "Druk op OK om door te gaan." + +msgid "Please select a default EPG type..." +msgstr "Selecteer een standaard EPG type aub..." + +msgid "Please select a playlist to delete..." +msgstr "Selecteer de afspeellijst die u wilt verwijderen..." + +msgid "Please select a playlist..." +msgstr "Selecteer een afspeellijst..." + +msgid "Please select a sub service..." +msgstr "Selecteer aub een subzender..." + +msgid "Please select a subservice to record..." +msgstr "Selecteer een subzender voor opname aub..." + +msgid "Please select a subservice..." +msgstr "Selecteer een subzender..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "" +"Kies een NFI bestand en druk op de groene toets om het flashproces te " +"starten!" + +msgid "Please select medium to be scanned" +msgstr "Selecteer het te scannen medium..." + +msgid "Please select medium to use as backup location" +msgstr "Selecteer het te gebruiken medium als backuplocatie..." + +msgid "Please select tag to filter..." +msgstr "Selecteer markering om te filteren..." + +msgid "Please select the movie path..." +msgstr "Selecteer het opnamepad..." + +msgid "" +"Please select the network interface that you want to use for your internet " +"connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Selecteer de netwerkinterface die u wilt gebruiken voor uw " +"internetverbinding.\n" +"\n" +"Druk op OK om verder te gaan." + +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Selecteer het draadloze netwerk dat u wenst te gebruiken.\n" +"\n" +"Druk op OK om verder te gaan." + +msgid "Please set up tuner A" +msgstr "Stel aub Tuner A in" + +msgid "Please set up tuner B" +msgstr "Instellingen voor Tuner B" + +msgid "Please set up tuner C" +msgstr "Instellingen voor Tuner C" + +msgid "Please set up tuner D" +msgstr "Instellingen voor Tuner D" + +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Gebruik de pijltoetsen om het PiP venster te verplaatsen.\n" +"Druk op bouquet +/- om PiP venster te vergroten of verkleinen.\n" +"Druk op OK om terug te gaan naar TV modus of EXIT na verplaatsen." + +msgid "" +"Please use the UP and DOWN keys to select your language. Afterwards press " +"the OK button." +msgstr "" +"Gebruik de omhoog/omlaag toetsen om de gewenste taal te selecteren. Druk " +"daarna op OK." + +msgid "Please wait" +msgstr "Even geduld aub" + +msgid "Please wait (downloading channel list)" +msgstr "Even geduld... (de zenderlijst wordt gedownload)" + +msgid "Please wait (downloading softcam)" +msgstr "Even geduld... (de softcam wordt gedownload)" + +msgid "Please wait (updating packages)" +msgstr "Een ogenblik geduld (de pakketten worden geactualiseerd)" + +msgid "Please wait for activation of your network configuration..." +msgstr "Een ogenblikje geduld terwijl we uw netwerk activeren..." + +msgid "Please wait while scanning is in progress..." +msgstr "Een ogenblikje geduld, zoeken is bezig..." + +msgid "Please wait while we configure your network..." +msgstr "Een ogenblik geduld aub terwijl we uw netwerk configureren..." + +msgid "Please wait while we prepare your network interfaces..." +msgstr "Een ogenblik geduld aub terwijl we uw netwerkinterface prepareren..." + +msgid "Please wait while we test your network..." +msgstr "Een ogenblik geduld aub terwijl uw netwerk getest wordt..." + +msgid "Please wait while your network is restarting..." +msgstr "Een ogenblik geduld aub terwijl uw netwerk wordt herstart..." + +msgid "Please wait..." +msgstr "Even geduld aub..." + +msgid "Please wait... Loading list..." +msgstr "Even geduld... De lijst wordt geladen..." + +msgid "Plugin browser" +msgstr "Plugin browser" + +msgid "Plugin manager activity information" +msgstr "Pluginmanager achtergrondinformatie" + +msgid "Plugin manager help" +msgstr "Pluginmanager helpfunctie" + +msgid "Plugins" +msgstr "Applicaties" + +msgid "Polarisation" +msgstr "Polarisatie" + +msgid "Polarisation:" +msgstr "Polarisatie:" + +msgid "Polarization" +msgstr "Polarisatie" + +msgid "Polish" +msgstr "Pools" + +msgid "Port A" +msgstr "Poort A" + +msgid "Port B" +msgstr "Poort B" + +msgid "Port C" +msgstr "Poort C" + +msgid "Port D" +msgstr "Poort D" + +msgid "Portuguese" +msgstr "Portugees" + +msgid "Position of completed timers in timerlist" +msgstr "Positie van de uitgevoerde timers in de timerlijst" + +msgid "Position stored at index" +msgstr "Positie opgeslagen op index" + +msgid "Positioner" +msgstr "Rotor" + +msgid "Positioner (selecting satellites)" +msgstr "Rotor (selecteert satellieten)" + +msgid "Positioner Setup" +msgstr "Instellen DiSEqC-motor" + +msgid "Positioner setup" +msgstr "Rotorinstellingen" + +msgid "Power threshold in mA" +msgstr "Drempel stroomverbruik in mA" + +msgid "Predefined transponder" +msgstr "Vooraf ingestelde transponder" + +msgid "Prefer AC3 track" +msgstr "AC3 voorkeur" + +msgid "Prefer AC3+ track" +msgstr "AC3+ voorkeur" + +msgid "Prefer audio track stored by service" +msgstr "Voorkeur voor het geluidsspoor zoals dit per zender opgeslagen is" + +msgid "Prefer graphical DVB subtitles" +msgstr "Voorkeur voor de grafische DVB ondertitels" + +msgid "Prefer subtitles for hearing impaired" +msgstr "Voorkeur voor ondertitels voor doven en slechthorenden" + +msgid "Prefer subtitles stored by service" +msgstr "Voorkeur voor ondertitels zoals deze per zender opgeslagen zijn" + +msgid "Preferred tuner" +msgstr "Voorkeurstuner" + +msgid "Preferred tuner for recordings" +msgstr "Voorkeurstuner voor opnames" + +msgid "Prepare another USB stick for image flashing" +msgstr "Bereid een andere USB stick voor om de image te flashen" + +msgid "Preparing... Please wait" +msgstr "Voorbereiden... Een ogenblik geduld aub." + +msgid "Press '0' to toggle PiP mode" +msgstr "Druk '0' om tussen de PiP modes te schakelen." + +msgid "Press INFO on your remote control for additional information." +msgstr "Druk INFO op uw afstandsbediening voor meer informatie." + +msgid "Press MENU on your remote control for additional options." +msgstr "Druk MENU op uw afstandsbediening voor meer opties." + +msgid "Press OK on your remote control to continue." +msgstr "Druk OK op uw afstandsbediening om verder te gaan." + +msgid "Press OK to activate the selected skin." +msgstr "Druk op OK om de geselecteerde skin te activeren." + +msgid "Press OK to activate the settings." +msgstr "Druk op OK om op te slaan" + +msgid "Press OK to edit the settings." +msgstr "Druk op OK om te wijzigen." + +#, python-format +msgid "Press OK to get further details for %s" +msgstr "Druk op OK voor meer detail over: %s" + +msgid "Press OK to scan" +msgstr "Druk OK om te zoeken." + +msgid "Press OK to select a provider." +msgstr "Druk op OK om een provider te kiezen." + +msgid "Press OK to select satellites" +msgstr "Druk OK om de satellieten te selecteren" + +msgid "Press OK to select/deselect a CAId." +msgstr "Druk op OK om de CAId aan/uit te zetten." + +msgid "Press OK to start the scan" +msgstr "Druk OK om te zoeken." + +msgid "Press OK to toggle the selection" +msgstr "Druk OK om uw keuze te wijzigen" + +msgid "Press OK to toggle the selection." +msgstr "Druk op OK om de selectie te de/activeren." + +msgid "Press yellow to set this interface as default interface." +msgstr "Druk op geel om deze interface als standaard in te stellen." + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "Vorige" + +msgid "Preview" +msgstr "Voorbeeld" + +msgid "Preview menu" +msgstr "Voorbeeld menu" + +msgid "Preview selected channel" +msgstr "Preview geselecteerd kanaal" + +msgid "Primary DNS" +msgstr "Primaire DNS" + +msgid "Priority" +msgstr "Prioriteit" + +msgid "Process" +msgstr "Proces" + +msgid "Progress" +msgstr "Voortgang" + +msgid "Progress bar left" +msgstr "Voortgangsbalk links" + +msgid "Progress bar right" +msgstr "Voortgangsbalk rechts" + +msgid "Properties of current title" +msgstr "Eigenschappen van huidige titel" + +msgid "Protect services" +msgstr "Beveilig zenders" + +msgid "Protect setup" +msgstr "Beveilig menu" + +msgid "Provider" +msgstr "Provider" + +msgid "Provider to scan" +msgstr "Zoek op provider" + +msgid "Providers" +msgstr "Providers" + +msgid "Put TV in standby" +msgstr "Zet de TV in standby" + +msgid "Put receiver in standby" +msgstr "Zet de receiver in standby" + +msgid "Python frontend for /tmp/mmi.socket" +msgstr "Python frontend voor /tmp/mmi.socket" + +msgid "Quick" +msgstr "Snel" + +msgid "Quick zap" +msgstr "Snelzap" + +msgid "RF output" +msgstr "RF modulator" + +msgid "RGB" +msgstr "RGB" + +msgid "Radio" +msgstr "Radio" + +msgid "Ram disk" +msgstr "Ramdisk" + +msgid "Random" +msgstr "Willekeurig" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "Beoordeling door provider - %d" + +msgid "Rating undefined" +msgstr "Beoordeling niet gedefinieerd" + +msgid "Really close without saving settings?" +msgstr "Afsluiten zonder opslaan?" + +msgid "Really delete done timers?" +msgstr "Wilt u de gebruikte timers echt wissen?" + +msgid "Really exit the subservices quickzap?" +msgstr "Subzenders snelzap verlaten?" + +msgid "Really reboot now?" +msgstr "Nu herstarten?" + +msgid "Really restart now?" +msgstr "Nu herstarten?" + +msgid "Really shutdown now?" +msgstr "Nu uitschakelen?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "Wilt u de frontprocessor nu echt updaten en herstarten?" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "Wilt u de ontvanger werkelijk updaten en herstarten?" + +msgid "Reboot" +msgstr "Herstarten" + +msgid "Rec" +msgstr "Rec" + +msgid "Reception settings" +msgstr "Ontvangstinstellingen" + +msgid "Record" +msgstr "Opname" + +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "Opnametijd beperkt vanwege conflicterende timer %s" + +msgid "Recorded files..." +msgstr "Opnames..." + +msgid "Recording" +msgstr "Opname" + +msgid "Recording in progress" +msgstr "Opnemen bezig" + +msgid "Recording paths" +msgstr "Opnamelocaties" + +msgid "Recording type" +msgstr "Opnamesoort" + +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "Een opname is bezig of kan elk moment aanvangen!" + +msgid "Recordings" +msgstr "Opnames" + +msgid "Recordings always have priority" +msgstr "Een opname heeft altijd voorrang" + +msgid "Red button..." +msgstr "Rode toets..." + +msgid "Red colored" +msgstr "Rood gekleurd" + +msgid "Reenter new PIN" +msgstr "Voer nieuwe pincode nogmaals in" + +msgid "Refresh rate" +msgstr "Herhaalfrequentie" + +msgid "Refresh rate selection." +msgstr "Herhalingsfrequentie" + +msgid "Regard deep standby as standby" +msgstr "Beschouw de diepe standby als normale standby" + +msgid "Relative" +msgstr "Relatief" + +msgid "Reload" +msgstr "Herlaad" + +msgid "Reload black-/white lists" +msgstr "Herladen van de black-/whitelists" + +msgid "Reloading bouquets and services..." +msgstr "Bouquetten en zenders opnieuw inladen" + +msgid "Remember last service in PiP" +msgstr "Onthoudt de laatste gekozen zender in PIP" + +msgid "Remember service PIN" +msgstr "Onthoud zender pincode" + +msgid "Remember these settings for each folder" +msgstr "Onthoud deze instellingen voor elke map" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "Herinnering, u heeft ervoor gekozen om de timeshiftopname op te slaan." + +msgid "Remote control type" +msgstr "Type afstandsbediening" + +msgid "Removal has completed." +msgstr "Verwijderen is afgerond." + +msgid "Remove" +msgstr "Verwijderen" + +msgid "Remove a mark" +msgstr "Wis markeerpunt" + +msgid "Remove a nameserver entry" +msgstr "Verwijder een nameserver ingave " + +msgid "Remove bookmark" +msgstr "Wis markeerpunt" + +msgid "Remove completed timers after (days)" +msgstr "Verwijder de afgeronde timers na X dagen" + +msgid "Remove currently selected title" +msgstr "Verwijder de huidig geselecteerde titel" + +msgid "Remove items from trash can after (days)" +msgstr "Verwijder opnames uit de prullenbak na X dagen" + +msgid "Remove plugins" +msgstr "Verwijderen" + +msgid "Remove title" +msgstr "Titel verwijderen" + +msgid "Removing" +msgstr "Bezig met verwijderen" + +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Verwijderen van map %s mislukt (map niet leeg?)." + +msgid "Removing partition table" +msgstr "Verwijderd de partitietabel" + +msgid "Rename" +msgstr "Hernoemen" + +msgid "Repeat" +msgstr "Herhaal" + +msgid "Repeat type" +msgstr "Herhaal type" + +msgid "Repeating event currently recording... What do you want to do?" +msgstr "Een herhaalde timer maakt nu een opname... Wat wilt u doen?" + +msgid "Repeats" +msgstr "Herhalingen" + +msgid "Require authentication for http streams" +msgstr "Authenticatie voor http streams noodzakelijk" + +msgid "Required medium type:" +msgstr "Benodigd medium type" + +msgid "Rereading partition table" +msgstr "Lees de partitietabel opnieuw" + +msgid "Reserved" +msgstr "Gereserveerd" + +msgid "Reset" +msgstr "Herstel" + +msgid "Reset and renumerate title names" +msgstr "Herstel en renumerate titel namen" + +msgid "Reset playback position" +msgstr "Zet afspeelpunt terug naar begin" + +msgid "Reset video enhancement settings to system defaults?" +msgstr "Herstel videoverbetering-instellingen naar de standaard?" + +msgid "Reset video enhancement settings to your last configuration?" +msgstr "Herstel videoverbetering-instellingen naar de laatste configuratie?" + +msgid "Resolution" +msgstr "Resolutie" + +msgid "Restart" +msgstr "Herstarten" + +msgid "Restart GUI now?" +msgstr "Herstart Enigma2 nu?" + +msgid "Restart enigma" +msgstr "Herstart enigma" + +msgid "Restart network" +msgstr "Netwerk herstarten" + +msgid "Restart test" +msgstr "Herstart test" + +msgid "Restart your network connection and interfaces.\n" +msgstr "" +"Herstart het netwerk en alle adapters.\n" +"\n" + +msgid "Restore" +msgstr "Herstellen" + +msgid "Restore backups" +msgstr "Backups terugzetten" + +msgid "Restore is running..." +msgstr "Herstellen wordt uitgevoerd..." + +msgid "Restore system settings" +msgstr "Herstel uw instellingen" + +msgid "Restoring..." +msgstr "Herstellen..." + +msgid "Resume from last position" +msgstr "Ga door op laatste positie" + +#, python-format +msgid "Resume position at %s" +msgstr "Hervat positie op %s" + +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Afspelen wordt hervat" + +msgid "Return to movie list" +msgstr "Terug naar de opnamelijst" + +msgid "Return to previous service" +msgstr "Terug naar laatste zender" + +msgid "Reverse bouquet buttons" +msgstr "Keer bouquet knoppen om" + +msgid "Reverse list" +msgstr "Omgekeerde volgorde" + +msgid "Rewind speeds" +msgstr "Terugspoelsnelheid" + +msgid "Rewrap teletext subtitles" +msgstr "Teletext ondertitels opnieuw indelen" + +msgid "Right" +msgstr "Rechts" + +msgid "Right from servicename" +msgstr "Rechts van de kanaalnaam" + +msgid "Roll-off" +msgstr "Roll-off" + +msgid "Romanian" +msgstr "Roemeens" + +msgid "Root directory" +msgstr "Hoofddirectory" + +msgid "Rotor step position:" +msgstr "Rotor stappositie:" + +msgid "Rotor turning speed" +msgstr "Rotor draaisnelheid" + +msgid "Round start time on" +msgstr "Starttijd afronden op" + +msgid "Russian" +msgstr "Russisch" + +msgid "S-Video" +msgstr "S-Video" + +msgid "SID" +msgstr "SID" + +msgid "SINGLE LAYER DVD" +msgstr "SINGLE LAYER DVD" + +msgid "SNR" +msgstr "SNR" + +msgid "SNR:" +msgstr "SNR:" + +msgid "SSID:" +msgstr "SSID:" + +msgid "Same resolution as skin" +msgstr "Identieke resolutie als de skin" + +msgid "Sat" +msgstr "Za" + +msgid "Satellite" +msgstr "Satelliet" + +msgid "Satellite dish setup" +msgstr "Schotelconfiguratie" + +msgid "Satellite equipment" +msgstr "Satellietapparatuur" + +msgid "Satellite equipment setup" +msgstr "Satellietapparatuur instellingen" + +msgid "Satellite longitude:" +msgstr "Lengtegraad satelliet:" + +msgid "Satellites" +msgstr "Satellieten" + +msgid "Satfinder" +msgstr "Signaalzoeker" + +msgid "Sats" +msgstr "Satellieten" + +msgid "Saturation" +msgstr "Verzadiging" + +msgid "Saturday" +msgstr "Zaterdag" + +msgid "Save" +msgstr "Opslaan" + +msgid "Save playlist" +msgstr "Sla de afspeellijst op" + +msgid "Save timeshift file" +msgstr "Sla de timeshiftopname op" + +msgid "Save timeshift file in movie directory" +msgstr "Sla de timeshiftopname in de movie directory op" + +msgid "Scaler sharpness" +msgstr "Scaler scherpte" + +msgid "Scaling mode" +msgstr "Schaalmodus" + +msgid "Scan" +msgstr "Scan" + +msgid "Scan " +msgstr "Zoeken" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, python-format +msgid "Scan %s" +msgstr "Zoeken %s" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, python-format +msgid "Scan %s band" +msgstr "Zoek %s band" + +msgid "Scan additional SR" +msgstr "Zoek tevens op SR" + +msgid "Scan files..." +msgstr "Zoek bestanden..." + +msgid "Scan wireless networks" +msgstr "Zoek naar WiFi netwerken" + +msgid "" +"Scan your network for wireless access points and connect to them using your " +"selected wireless device.\n" +msgstr "" +"Scan in uw netwerk naar accesspoints en maak een verbinding met het door u " +"geselecteerde draadloze apparaat.\n" + +#, python-format +msgid "Scanning %s..." +msgstr "Zoeken %s..." + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "Zoeken - %d%% voltooid" +msgstr[1] "Zoeken - %d%% voltooid" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "Zoeken voltooid, %d zender gevonden" +msgstr[1] "Zoeken voltooid, %d zenders gevonden" + +msgid "Scanning failed!" +msgstr "Zoeken mislukt!" + +msgid "Scanning..." +msgstr "Zoeken..." + +msgid "" +"Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "" +"Doorzoekt standaard lamedbs gesorteerd op satelliet met een DiSEqC rotor" + +msgid "Search east" +msgstr "Zoek oost" + +msgid "Search west" +msgstr "Zoek west" + +msgid "Searching" +msgstr "Zoeken" + +msgid "Searching east ..." +msgstr "Oost zoeken ..." + +msgid "Searching for available updates. Please wait..." +msgstr "Zoeken naar update's. Een moment aub." + +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "" +"Zoeken naar nieuw geïnstalleerde of verwijderde pakketten. Een ogenblikje..." + +msgid "Searching west ..." +msgstr "West zoeken ..." + +msgid "Second cable of motorized LNB" +msgstr "Tweede kabel van een draaibare LNB" + +msgid "Secondary DNS" +msgstr "Secondaire DNS" + +msgid "Seek" +msgstr "Zoeken" + +msgid "Seek backward" +msgstr "Achteruit springen" + +msgid "Seek backward (enter time)" +msgstr "Spring achterwaarts (tijd invoeren)" + +msgid "Seek forward" +msgstr "Vooruit springen" + +msgid "Seek forward (enter time)" +msgstr "Spring voorwaarts (tijd invoeren)" + +msgid "Select" +msgstr "Selecteer" + +msgid "Select CAId" +msgstr "Selecteer CAId" + +msgid "Select HDD" +msgstr "Kies harde schijf" + +msgid "Select a bouquet" +msgstr "Kies een bouquet" + +msgid "Select a movie" +msgstr "Kies een opname" + +msgid "Select a network adapter" +msgstr "Kies een netwerkadapter" + +msgid "Select a skin" +msgstr "Kies een skin" + +msgid "Select a tuner" +msgstr "Kies een tuner" + +msgid "Select a wireless network" +msgstr "Secteer draadloos netwerk" + +msgid "Select action" +msgstr "Maak uw keuze" + +#, python-format +msgid "Select action for timer %s:" +msgstr "Selecteer wat u moet doen bij de timer %s:" + +msgid "Select all" +msgstr "Markeer alles" + +msgid "Select an image to be downloaded" +msgstr "Kies de image die u wilt downloaden" + +msgid "Select audio track" +msgstr "Kies audiospoor" + +msgid "Select backup files" +msgstr "Kies backupbestanden" + +msgid "Select backup location" +msgstr "Kies een backuplocatie" + +msgid "Select channel to record from" +msgstr "Kies de juiste zender om van op te nemen" + +msgid "Select copy destination for:" +msgstr "Kies kopieerbestemming voor:" + +msgid "Select default EPG type..." +msgstr "Selecteer voorkeur EPG type..." + +msgid "Select desired image from feed list" +msgstr "Selecteer de gewenste image uit feed lijst" + +msgid "Select destination for:" +msgstr "Selecteer bestemming voor:" + +msgid "Select files for backup." +msgstr "Selecteer backup bestanden." + +msgid "Select files/folders to backup" +msgstr "Kies bestanden / mappen voor de backup" + +msgid "Select input device" +msgstr "Kies invoerapparaat" + +msgid "Select input device." +msgstr "Kies invoerapparaat." + +msgid "Select interface" +msgstr "Selecteer interface" + +msgid "Select location" +msgstr "Kies een locatie" + +msgid "Select movie" +msgstr "Kies een film" + +msgid "Select provider to add..." +msgstr "Selecteer provider om toe te voegen..." + +msgid "Select refresh rate" +msgstr "Selecteer herhalingsfrequentie" + +msgid "Select satellites" +msgstr "Kies de satellieten" + +msgid "Select service to add..." +msgstr "Selecteer zender om toe te voegen..." + +msgid "Select sort method:" +msgstr "Kies de sorteermethode:" + +msgid "Select target folder" +msgstr "Kies de doelmap" + +msgid "Select the movie path" +msgstr "Selecteer het opnamepad" + +msgid "Select upgrade source" +msgstr "Kies de bron om te upgraden" + +msgid "Select upgrade source to edit." +msgstr "Kies de te wijzigen upgradefeed." + +msgid "Select video input with up/down buttons" +msgstr "Selecteer video-ingang met de omhoog / omlaag toetsen" + +msgid "Select video mode" +msgstr "Selecteer videomodus" + +msgid "Select wireless network" +msgstr "Secteer draadloos netwerk" + +msgid "Select your provider, and press OK to start the scan" +msgstr "Kies uw provider en druk OK om de scan te starten" + +msgid "Selecting satellites 1 (USALS)" +msgstr "Kies satelieten1 (USALS)" + +msgid "Selecting satellites 2 (USALS)" +msgstr "Kies satellieten2 (USALS)" + +msgid "Send DiSEqC only on satellite change" +msgstr "Verstuur DiSEqC enkel bij satellietwijziging" + +msgid "Separate titles with a main menu" +msgstr "Scheid titels met een hoofdmenu" + +msgid "Sequence repeat" +msgstr "Herhaal sequence" + +msgid "Serbian" +msgstr "Servisch" + +msgid "Service" +msgstr "Zender" + +msgid "Service has been added to the favourites." +msgstr "De zender is toegevoegd aan de favorieten." + +msgid "Service has been added to the selected bouquet." +msgstr "De zender is toegevoegd aan het geselecteerd bouquet." + +msgid "Service info" +msgstr "Zenderinfo" + +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Zender ongeldig!\n" +"(Timeout reading PMT)" + +msgid "Service name" +msgstr "Zendernaam" + +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Zender niet gevonden!\n" +"(SID not found in PAT)" + +msgid "Service reference" +msgstr "Zenderreferentie" + +msgid "Service scan" +msgstr "Zenders zoeken" + +msgid "Service searching" +msgstr "Zenders zoeken" + +msgid "Service title mode" +msgstr "Zenders titel mode" + +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"Zender niet beschikbaar\n" +"Controleer uw tuner configuratie!" + +msgid "Services" +msgstr "Kanalen" + +msgid "Set default" +msgstr "Zet als standaard" + +msgid "Set end time" +msgstr "Stel de eindtijd in" + +msgid "Set fixed" +msgstr "Zet vast" + +msgid "Set fps for external subtitles" +msgstr "Stel de fps in voor de externe ondertitels" + +msgid "Set interface as default Interface" +msgstr "Stel deze interface in als standaard" + +msgid "Set limits" +msgstr "Zet de limieten" + +msgid "" +"Set the type of the progress indication in the channel selection screen." +msgstr "" +"Met deze optie stelt u de weergave van de programmavoortgangindicatie in het " +"kanaalselectiescherm in.\n" +"\n" +"U kunt kiezen uit, geen voortgang, voortgang rechts weergeven, voortgang " +"links weergeven, programma-percentage rechts weergeven of programma-" +"percentage links weergeven." + +msgid "Set time window to 1 hour" +msgstr "Tijdinterval 1 uur" + +msgid "Set time window to 2 hours" +msgstr "Tijdinterval 2 uur" + +msgid "Set time window to 3 hours" +msgstr "Tijdinterval 3 uur" + +msgid "Set time window to 4 hours" +msgstr "Tijdinterval 4 uur" + +msgid "Set time window to 5 hours" +msgstr "Tijdinterval 5 uur" + +msgid "Set time window to 6 hours" +msgstr "Zet tijdsduur op 6 uur" + +msgid "Set voltage and 22KHz" +msgstr "Stel de spanning en 22kHz optie in" + +msgid "Settings" +msgstr "Settings" + +msgid "Setup" +msgstr "Instellingen" + +msgid "Setup menu" +msgstr "Instellingen menu" + +msgid "Setup mode" +msgstr "Toegangsniveau instellen" + +msgid "Setup your positioner" +msgstr "Instellen rotor" + +msgid "Setup your satellite equipment" +msgstr "Stel uw satellietapparatuur in" + +#, python-format +msgid "" +"Shall the USB stick wizard proceed and program the image file %s into flash " +"memory?" +msgstr "" +"Moet de USB-stick wizzard doorgaan en het imagebestand %s naar de flash " +"schrijven?" + +msgid "Sharpness" +msgstr "Scherpte" + +msgid "Short filenames" +msgstr "Korte bestandsnamen" + +msgid "Show EIT now/next in infobar" +msgstr "Toon EIT nu / straks in informatiebalk" + +msgid "Show EPG for current channel..." +msgstr "Toon de EPG van de huidige zender" + +msgid "Show EPG..." +msgstr "Toon de EPG..." + +msgid "Show Games show" +msgstr "show / quiz" + +msgid "Show SNR percentage instead of dB value" +msgstr "Toon SNR in percentage i.p.v. de waarde in dB" + +msgid "Show VCR scart on main menu" +msgstr "Toon VCR scart in het hoofdmenu" + +msgid "Show WLAN status" +msgstr "WIFIstatus weergeven" + +msgid "Show animation while busy" +msgstr "Laat een animatie zien bij lopende activiteiten" + +msgid "Show background in radio mode" +msgstr "De radioachtergrond weergeven" + +msgid "Show bouquet selection menu" +msgstr "Bouquet selectiemenu weergeven" + +msgid "Show busy indicator when the system is busy." +msgstr "" +"Indien geactiveerd, dan worden de tandwielen getoond zolang er activiteiten " +"plaats vinden." + +msgid "Show channel numbers in channel selection" +msgstr "Toon kanaalnummers in zender selectie" + +msgid "Show columns" +msgstr "Toon / wijzig de kolommen" + +msgid "Show crypto icons" +msgstr "Toon icoon indien gecodeerd" + +msgid "Show crypto info in infobar" +msgstr "Laat gebruikte kaartlezer zien in informatiebalk" + +msgid "Show detailed event info" +msgstr "Gedetailleerde EPG info weergeven" + +msgid "Show event details" +msgstr "EPG details weergeven" + +msgid "Show event-progress in channel selection" +msgstr "Toon programmavoortgang in kanaalselectie" + +msgid "Show extended description" +msgstr "Weergave met uitgebreide informatie" + +msgid "Show extensions..." +msgstr "Toon de applicaties ..." + +msgid "Show icon for new/unseen items" +msgstr "Icoon tonen voor nieuw- of niet bekeken items" + +msgid "Show in extensions menu" +msgstr "In applicatie-menu tonen" + +msgid "Show info" +msgstr "Toon de informatie" + +msgid "Show info line" +msgstr "Toon de infolijn" + +msgid "Show infobar on channel change" +msgstr "Informatiebalk zichtbaar na zenderwissel" + +msgid "Show infobar on event change" +msgstr "Informatiebalk weergeven zodra een programma begint" + +msgid "Show infobar on skip forward/backward" +msgstr "Informatiebalk zichtbaar na overslaan, vooruit / achteruit" + +msgid "Show latest commits on sourceforge" +msgstr "Toon laatste commits op sourceforge" + +msgid "Show message when recording starts" +msgstr "Toon een bericht zodra de opname start" + +msgid "Show movie lengths in movielist" +msgstr "Laat de opnamelengte zien in opnamelijst" + +msgid "Show multi channel EPG" +msgstr "Toon de meerkanaals EPG" + +msgid "Show picons in channel list" +msgstr "Toon de picons in de zenderlijst" + +msgid "Show positioner movement" +msgstr "Rotorbewegingen zichtbaar" + +msgid "Show record indicator" +msgstr "Toon opname indicatie" + +msgid "Show screensaver" +msgstr "Screensaver tonen na" + +msgid "Show second infobar" +msgstr "Uitgebreid informatiescherm weergeven" + +msgid "Show service type icons" +msgstr "Toon iconen van het type service " + +msgid "Show services beginning with" +msgstr "Laat zenders zien die beginnen met" + +msgid "Show shutdown menu" +msgstr "Afsluitmenu weergeven" + +msgid "Show single service EPG" +msgstr "Toon de EPG van een enkel kanaal" + +msgid "Show status icons in Movielist" +msgstr "Toon de statusiconen in de opnamelijst" + +msgid "Show status icons in movie list" +msgstr "Laat de statusiconen in opnamelijst zien" + +msgid "Show status icons in movielist" +msgstr "Laat de statusiconen in de opnamelijst zien" + +msgid "Show tag menu" +msgstr "Markeringsmenu weergeven" + +msgid "Show the radio player..." +msgstr "Radio weergave modus..." + +msgid "Show the tv player..." +msgstr "TV weergave modus..." + +msgid "Show warning when timeshift is stopped" +msgstr "Toon een waarschuwing indien de timeshift is gestopt" + +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Geeft de status van uw WiFi verbinding weer.\n" + +msgid "Shuffle playlist" +msgstr "Afspeellijst in willekeurige volgorde" + +msgid "Shutdown" +msgstr "Afsluiten" + +msgid "Shutdown when in Standby" +msgstr "Sluit af indien in Standby" + +msgid "Side by side" +msgstr "Naast elkaar" + +msgid "Signal OK, proceeding" +msgstr "Signaal ok, doorgaan" + +msgid "Signal quality" +msgstr "Signaalkwaliteit" + +msgid "Signal strength:" +msgstr "Signaalsterkte:" + +msgid "Signal: " +msgstr "Signaal:" + +msgid "Similar" +msgstr "Gelijksoortig" + +msgid "Similar broadcasts:" +msgstr "Gelijksoortige uitzendingen:" + +msgid "Simple" +msgstr "Standaardgebruiker" + +msgid "Simple titleset (compatibility for legacy players)" +msgstr "Eenvoudige titelset (compatibel met gewone spelers)" + +msgid "Single" +msgstr "Enkel" + +msgid "Single EPG" +msgstr "Zender EPG" + +msgid "Single satellite" +msgstr "Eén satelliet" + +msgid "Single step (GOP)" +msgstr "Stap voor stap (GOP)" + +msgid "Single transponder" +msgstr "Eén transponder" + +msgid "Site latitude" +msgstr "Breedtegraad van de locatie" + +msgid "Site longitude" +msgstr "Lengtegraad van de locatie" + +msgid "Skin" +msgstr "Skin selectie" + +msgid "Skins" +msgstr "Skins" + +msgid "Skip empty services" +msgstr "Sla de lege kanalen over" + +msgid "" +"Skip internet connection check (disables automatic package installation)" +msgstr "" +"Sla de internet controle over (hiermee vervalt de automatische installatie " +"van pakketten)" + +msgid "Sleep timer" +msgstr "Sleeptimer" + +msgid "SleepTimer Configuration" +msgstr "Configuratie van de sleeptimer" + +msgid "Sleeptimer" +msgstr "Sleeptimer" + +msgid "Sleeptimer (not activated)" +msgstr "Sleeptimer (inaktief)" + +msgid "Slide picture in loop" +msgstr "Toon foto's opnieuw aan het eind" + +msgid "Slide show interval (sec.)" +msgstr "Diavoorstelling interval in (sec.)" + +#, python-format +msgid "Slot %d" +msgstr "Slot %d" + +msgid "Slovak" +msgstr "Slovaaks" + +msgid "Slovenian" +msgstr "Sloveens" + +msgid "Slow" +msgstr "Langzaam" + +msgid "Slow motion speeds" +msgstr "Slowmotion snelheden" + +msgid "Small progress" +msgstr "Kleine stapjes voorwaarts" + +msgid "Social/Political/Economics" +msgstr "Sociaal / politiek / economisch" + +msgid "SoftCam / CI" +msgstr "Softcam / CI" + +msgid "Softcam type" +msgstr "Softcamtype" + +msgid "Software" +msgstr "Software" + +msgid "Software management" +msgstr "Softwarebeheer" + +msgid "Software manager setup" +msgstr "Softwarebeheer setup" + +msgid "Software restore" +msgstr "Software herstellen" + +msgid "Software update" +msgstr "Software update" + +msgid "Softwaremanager information" +msgstr "Softwarebeheerinformatie" + +msgid "Some plugins are not available:\n" +msgstr "Enkele plugins zijn niet beschikbaar:\n" + +#, python-format +msgid "Sorry, %s has not been installed!" +msgstr "Sorry, %s is niet geïnstalleerd!" + +msgid "" +"Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "Sorry, verwijderen van mappen kan (momenteel) enkel via de afvalbak." + +msgid "Sorry, no backups found!" +msgstr "Sorry, er zijn geen backups gevonden!" + +msgid "Sorry, no details available!" +msgstr "Sorry, er zijn geen details beschikbaar!" + +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"Sorry, uw backupbestemming is niet beschrijfbaar.\n" +"Kies aub een andere locatie." + +msgid "Sort" +msgstr "Sorteren" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Sorteer A-Z" + +msgid "Sort by" +msgstr "Sorteren op ..." + +msgid "Sort list:" +msgstr "Sorteren op:" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort time" +msgstr "Sorteertijd" + +msgid "Sound" +msgstr "Geluid" + +msgid "Sound carrier" +msgstr "Geluidskanaal" + +msgid "Source request" +msgstr "Verzoek bron" + +msgid "South" +msgstr "Zuid" + +msgid "Spanish" +msgstr "Spaans" + +msgid "" +"Specify the end time to ignore the shutdown timer when the receiver is in " +"standby mode" +msgstr "" +"Specificeer de eind tijd wanneer de uitschakeltimer genegeerd moet worden " +"wanneer de ontvanger in standby is." + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "" +"Selecteer het eind tijdstip vanaf wanneer de sleeptimer moet worden genegeerd" + +msgid "" +"Specify the start time to ignore the shutdown timer when the receiver is in " +"standby mode" +msgstr "" +"Specificeer de start tijd wanneer de uitschakeltimer genegeerd moet worden " +"wanneer de ontvanger in standby is." + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "" +"Selecteer het start tijdstip vanaf wanneer de sleeptimer moet worden " +"genegeerd" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "Geef de tijdperiode op waarin de sleeptimer wordt genegeerd" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "Specificeer tijdsruimte om in standby te gaan te negeren" + +msgid "Split preview mode" +msgstr "Splits preview-modus" + +msgid "Splitscreen" +msgstr "Gedeeld scherm" + +msgid "Sports" +msgstr "sport" + +msgid "Standard" +msgstr "Standaard" + +msgid "Standart list" +msgstr "Standaard lijst" + +msgid "Standby" +msgstr "Standby" + +msgid "Standby / restart" +msgstr "Standby / herstart" + +msgid "Standby after current event" +msgstr "Standby na de huidige actie" + +#, python-format +msgid "Standby fan %d PWM" +msgstr "Standby Ventilator %d PWM" + +#, python-format +msgid "Standby fan %d voltage" +msgstr "Standby ventilator %d spanning" + +msgid "Standby in " +msgstr "Standby over " + +msgid "StandbyLED" +msgstr "StandbyLED" + +msgid "Start from the beginning" +msgstr "Start vanaf het begin" + +msgid "Start offline decode" +msgstr "Start achteraf decoderen" + +msgid "Start recording?" +msgstr "Start opname?" + +msgid "Start test" +msgstr "Start test" + +msgid "Start time" +msgstr "Starttijd" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "Tijdsduur hoe lang de inactiviteitssleeptimer genegeerd wordt" + +msgid "Start time to ignore shutdown in standby" +msgstr "Start tijd om in standby gaan te negeren" + +msgid "Start timeshift" +msgstr "Start de timeshift" + +msgid "Start with list screen" +msgstr "Start met een zichtbare lijst" + +msgid "Starting on" +msgstr "Start op" + +msgid "Startup the set top box in standby" +msgstr "" +"Met deze optie stelt u in, of de ontvanger naar standby moet gaan na het " +"opstarten." + +msgid "Startup to Standby" +msgstr "Opstarten en naar standby" + +msgid "Step east" +msgstr "Stap > oost" + +msgid "Step west" +msgstr "Stap > west" + +msgid "Stepped east" +msgstr "Naar oost gestapt" + +msgid "Stepped west" +msgstr "Naar west gestapt" + +msgid "Stop" +msgstr "Stop" + +msgid "Stop PiP" +msgstr "Beëindig de PiP" + +msgid "Stop current event and disable coming events" +msgstr "Stop huidige timer en annuleer de volgende timers" + +msgid "Stop current event but not coming events" +msgstr "Stop de huidige timer, maar alle volgende timers toestaan" + +msgid "Stop entry" +msgstr "Stop de invoer" + +msgid "Stop playing this movie?" +msgstr "Stop afspelen van deze opname?" + +msgid "Stop recording" +msgstr "Stop opname" + +msgid "Stop recording and delete" +msgstr "Stop opname en wis deze" + +msgid "Stop service on return to movie list" +msgstr "Stop Zender bij terugkeren naar opname lijst" + +msgid "Stop test" +msgstr "Stop test" + +msgid "Stop testing plane after # failed transponders" +msgstr "Stop testen na # falende transponders" + +msgid "Stop testing plane after # successful transponders" +msgstr "Stop testen na # succesvolle transponders" + +msgid "Stop timer recording" +msgstr "Stop timeropname" + +msgid "Stop timeshift" +msgstr "Beëindig de timeshift" + +msgid "Stop timeshift?" +msgstr "Beëindig de timeshift?" + +msgid "Stopped" +msgstr "Gestopt" + +msgid "Store at index" +msgstr "Opslaan op index" + +msgid "Store position" +msgstr "Sla positie op" + +msgid "Stored position" +msgstr "Opgeslagen positie" + +msgid "Stream" +msgstr "Stream" + +msgid "Stream request" +msgstr "Stream verzoek" + +msgid "Strongest position" +msgstr "Sterkste positie" + +msgid "Subservice list..." +msgstr "Subzenderlijst..." + +msgid "Subservices" +msgstr "Subkanalen" + +msgid "Subtitle Quickmenu" +msgstr "Ondertitel Snelmenu" + +msgid "Subtitle alignment" +msgstr "Uitlijning van ondertitels" + +msgid "Subtitle border width" +msgstr "Randdikte van de ondertitels" + +msgid "Subtitle delay when timing is bad" +msgstr "Vertraging van de ondertitels indien de timing slecht is" + +msgid "Subtitle delay when timing lacks" +msgstr "Ondertitel vertraging indien timing ontbreekt" + +msgid "Subtitle font size" +msgstr "Lettergrootte van de ondertitels" + +msgid "Subtitle language selection 1" +msgstr "Ondertitel taalkeuze 1" + +msgid "Subtitle language selection 2" +msgstr "Ondertitel taalkeuze 2" + +msgid "Subtitle language selection 3" +msgstr "Ondertitel taalkeuze 3" + +msgid "Subtitle language selection 4" +msgstr "Ondertitel taalkeuze 4" + +msgid "Subtitle position" +msgstr "Positie van de ondertitels" + +msgid "Subtitle selection" +msgstr "Ondertitelselectie" + +msgid "Subtitle selection..." +msgstr "Ondertitelselectie..." + +msgid "Subtitle settings" +msgstr "Ondertitelinstellingen" + +msgid "Subtitles" +msgstr "Ondertitels" + +msgid "Sun" +msgstr "Zo" + +msgid "Sunday" +msgstr "Zondag" + +msgid "Swap PiP and main picture" +msgstr "Wissel tussen PiP & hoofdscherm" + +msgid "Swap services" +msgstr "Zenders omwisselen" + +msgid "Swedish" +msgstr "Zweeds" + +msgid "Switch TV to correct input" +msgstr "Schakel de TV naar de juiste ingang" + +msgid "Switch between filelist/playlist" +msgstr "Schakel tussen de bestandenlijst / afspeellijst" + +msgid "Switch between normal mode and list mode" +msgstr "Wissel tussen de normale en de lijstmode" + +msgid "Switch to HDMI in mode" +msgstr "Schakel naar de HDMI in modus" + +msgid "Switch to filelist" +msgstr "Ga naar de bestandenlijst" + +msgid "Switch to next channel" +msgstr "Ga naar de volgende zender" + +msgid "Switch to next channel in history" +msgstr "Ga naar de volgende zender in de geschiedenis" + +msgid "Switch to next sub service" +msgstr "Ga naar het volgende subkanaal" + +msgid "Switch to playlist" +msgstr "Ga naar afspeellijst" + +msgid "Switch to previous channel" +msgstr "Ga naar de vorige zender" + +msgid "Switch to previous channel in history" +msgstr "Schakel naar de vorige zender in de geschiedenis" + +msgid "Switch to previous sub service" +msgstr "Ga naar het vorige subkanaal" + +msgid "Switchable tuner types:" +msgstr "Schakelbare tunertypes:" + +msgid "Symbol rate" +msgstr "Symbolrate" + +msgid "Symbol rate:" +msgstr "Symbol rate:" + +msgid "Sync failure moving back to origin !" +msgstr "Sync probleem bij draaiing naar nulpunt !" + +msgid "System" +msgstr "Systeem" + +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "" +"Deze vertaling wordt u aangeboden door :\n" +"- het OpenPLi team\n" +"\n" +"- Voor aanvullingen en opmerkingen stuurt u een mail naar:\n" +" translators@openpli.org" + +msgid "TS file is too large for ISO9660 level 1!" +msgstr "TS bestand is te groot voor ISO9660 level1!" + +msgid "TSID" +msgstr "TSID" + +msgid "TV physical address report" +msgstr "TV fysiek adres overzicht" + +msgid "TXT PID" +msgstr "TXT PID" + +msgid "Table of contents for collection" +msgstr "Inhoudsoverzicht voor de verzameling" + +msgid "Tags" +msgstr "Markeringen" + +msgid "Teletext subtitle color" +msgstr "Teletekst kleur van de ondertitel" + +msgid "Temperature and fan control" +msgstr "Temperatuur- en ventilatorcontrole" + +msgid "Terrestrial" +msgstr "Terrestrial" + +msgid "Terrestrial provider" +msgstr "Regio" + +msgid "Test DiSEqC settings" +msgstr "Test DiSEqC instellingen" + +msgid "Test mode" +msgstr "Test modus" + +msgid "Test the network configuration of your receiver.\n" +msgstr "" +"Test de netwerkconfiguratie.\n" +"\n" + +msgid "Test type" +msgstr "Testtype" + +msgid "Text color" +msgstr "Tekstkleur" + +msgid "Thai" +msgstr "Thais" + +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"Bedankt voor het gebruik van deze wizard.\n" +"Druk op OK om verder te gaan." + +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"Bedankt voor het gebruik van de wizard. Uw ontvanger is nu gebruiksklaar.\n" +"Druk op OK om uw ontvanger in gebruik te nemen." + +msgid "" +"The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to " +"create a special format data DVD (which will not play in stand-alone DVD " +"players) instead?" +msgstr "" +"De DVD standaard support geen H.264 (HDTV). Wilt u een speciaal dataformaat " +"DVD aanmaken (veel DVD spelers kunnen dat niet afspelen)?" + +msgid "The PIN code has been changed successfully." +msgstr "De pincode is gewijzigd." + +msgid "The PIN codes you entered are different." +msgstr "De ingevoerde pincodes zijn niet gelijk." + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" +"De USB stick is geschikt gemaakt om van te booten.\n" +"U kunt nu een NFI image bestand downloaden! " + +msgid "The backup failed. Please choose a different backup location." +msgstr "Backup is mislukt. Kies een andere back-uplocatie aub." + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" +"De huidige beta image kan onstabiel zijn.\n" +"Voor aanvullende informatie kijk op %s" + +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"De %s directory is niet beschrijfbaar.\n" +"Zorg ervoor dat u een beschrijfbare directory kiest. " + +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"Het volgende apparaat is gevonden:\n" +"\n" +"%s\n" +"\n" +"Wilt u de USB flasher op deze stick te schrijven?" + +msgid "The following files were found..." +msgstr "De volgende bestanden werden gevonden..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "De md5sum validatie is mislukt, het bestand kan beschadigd zijn!" + +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"De netwerkwizard-plugin is niet geïnstalleerd!\n" +"Installeer deze aub." + +#, python-format +msgid "The path %s already exists." +msgstr "Het pad %s bestaat al." + +msgid "The pin code you entered is wrong." +msgstr "De ingevoerde pincode is onjuist." + +#, python-format +msgid "The results have been written to %s." +msgstr "De resultaten zijn bewaard op %s." + +msgid "The sleep timer has been activated." +msgstr "De slaaptimer is geactiveerd." + +msgid "The sleep timer has been disabled." +msgstr "De slaaptimer is uitgeschakeld." + +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"De Softwaremanagement plugin is niet geïnstalleerd!\n" +"Installeer deze aub." + +#, python-format +msgid "" +"The status of the current beta image could not be checked because %s can not " +"be reached." +msgstr "" +"De status van de huidige beta image kan niet worden bepaald omdat %s om " +"onbekende reden niet te bereiken is." + +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "" +"Het timer bestand (timer.xml) is beschadigd en kan niet worden geladen." + +msgid "The user interface of your receiver is restarting" +msgstr "De gebruikersomgeving van uw ontvanger wordt herstart." + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" +"De gebruikersomgeving van uw ontvanger wordt opnieuw opgestart\n" +"als gevolg van een geconstateerd probleem in mytest.py" + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"De WIFI plugin is niet geïnstalleerd!\n" +"Installeer deze en kies wat u vervolgens wilt doen." + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"De WiFi plugin is niet geïnstalleerd. Deze plugin eerst installeren aub." + +msgid "" +"The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "" +"De wizard kan uw huidige instellingen opslaan. Wilt u nu een backup maken?" + +#, python-format +msgid "" +"The wizard found a configuration backup. Do you want to restore your old " +"settings from %s?" +msgstr "" +"De wizard heeft een configuratie backup gevonden. Wilt u uw instellingen van " +"%s herstellen?" + +msgid "The wizard is finished now." +msgstr "De wizard is nu gereed." + +msgid "There are at least " +msgstr "Er zijn ten minste" + +#, python-format +msgid "There are at least %s updates available." +msgstr "Er zijn minimaal %s updates beschikbaar" + +msgid "There are currently no outstanding actions." +msgstr "Er zijn geen uitstaande acties" + +msgid "There are no updates available." +msgstr "Er zijn momenteel geen updates beschikbaar" + +msgid "There is no signal to lock on !" +msgstr "Er is geen signaal om te locken !" + +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"Er is mogelijk niet genoeg ruimte vrij op de geselecteerde partitie.\n" +"Weet u zeker dat u wilt doorgaan?" + +msgid "" +"This DVD RW medium is already formatted - reformatting will erase all " +"content on the disc." +msgstr "" +"Dit DVD-RW medium is reeds geformatteerd - herformatteren zal alles wissen " +"op deze disk." + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of " +"your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server " +"and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. " +"Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" +"Deze plugin creëert een USB stick die gebruikt kan worden om de firmware te " +"updaten zonder noodzaak van een netwerkverbinding. Bekabeld of via wifi. " +"Allereerst moet de stick bootable gemaakt worden.\n" +"Bij de volgende stap kan je een NFI image downloaden van de updateserver. " +"Sla deze vervolgens op de stick op.\n" +"Indien je al een voorbereide en bootable USBstick gereed hebt, steek deze nu " +"in de receiver. Anders plaats een USB stick met een minimale ruimte van " +"64MB! " + +msgid "This plugin is installed." +msgstr "Deze plugin is geïnstalleerd." + +msgid "This plugin is not installed." +msgstr "Deze plugin is niet geïnstalleerd." + +msgid "This plugin will be installed." +msgstr "Deze plugin wordt geïnstalleerd." + +msgid "This plugin will be removed." +msgstr "Deze plugin wordt verwijderd." + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "Deze ontvanger kan geen %s streams decoderen!" + +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in " +"the \"Nameserver\" configuration" +msgstr "" +"Deze test controleert de nameservers.\n" +"Indien u een bericht \" niet bevestigd\" ziet:\n" +"- controleer dan uw DHCP server, kabels en instellingen\n" +"- Indien de nameservers handmatig ingesteld zijn, controleer deze dan." + +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Deze test controleert of er een netwerkkabel met uw LAN adapter verbonden " +"is.\n" +"Indien u een melding \"niets verbonden\" ziet:\n" +"- controleer dan of de netwerkkabel goed aangesloten is\n" +"- of controleer of de kabel niet defect is." + +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Deze test controleert of er voor uw LAN adapter een geldig IP adres gevonden " +"is.\n" +"Indien u de melding \"niet bevestigd\" ziet:\n" +"- dan is er geen geldig IP adres gevonden\n" +"- U dient uw DHCP server, kabels en instellingen te controleren" + +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address " +"configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup " +"dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"Deze test controleert of uw LAN adapter automatisch via DHCP zijn IPadres " +"verkrijgt.\n" +"Indien u de melding \"uitgeschakeld\" krijgt:\n" +" - dan is uw LAN ingesteld om handmatig geconfigureerd te worden\n" +"- controleer of u de juiste IP informatie ingegeven heeft in de setup van de " +"LAN adapter.\n" +"Als u de melding \"ingeschakeld\" ziet:\n" +"-controleer dan of u een correct werkende DHCP server in uw netwerk heeft." + +msgid "This test detects your configured LAN adapter." +msgstr "Deze test detecteert uw ingestelde LAN adapter." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove " +"previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" +"Alle posities van de rotor worden opnieuw berekend. Hierdoor kunnen oude " +"instellingen en optimalisaties verloren gaan!\n" +"Doorgaan?" + +msgid "Three" +msgstr "Drie" + +msgid "Threshold" +msgstr "Drempelwaarde" + +msgid "Thu" +msgstr "Do" + +msgid "Thumbnails" +msgstr "Voorbeelden" + +msgid "Thursday" +msgstr "Donderdag" + +msgid "Time" +msgstr "Tijd" + +msgid "Time scale" +msgstr "Tijdschaal" + +msgid "Timer" +msgstr "Timer" + +msgid "Timer Overview" +msgstr "Timeroverzicht" + +msgid "Timer edit" +msgstr "Timer bewerken" + +msgid "Timer editor" +msgstr "Timereditor" + +msgid "Timer entry" +msgstr "Timerinvoer" + +msgid "Timer log" +msgstr "Timerlog" + +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"Overlappende timers gevonden in timers.xml!\n" +"Controleer deze!" + +msgid "Timer overview" +msgstr "Timeroverzicht" + +msgid "Timer recording location" +msgstr "Opnamelocatie timeropnames" + +msgid "Timer sanity error" +msgstr "Timerlogica fout" + +msgid "Timer selection" +msgstr "Timerselectie" + +msgid "Timer selection..." +msgstr "Timerselectie" + +msgid "Timer type" +msgstr "Timer type" + +msgid "Timeshift" +msgstr "Timeshift" + +msgid "Timeshift Live" +msgstr "Live timeshift" + +msgid "Timeshift location" +msgstr "Opnamelocatie timeshift opnames" + +msgid "Timeshift not possible!" +msgstr "Timeshift is niet mogelijk!" + +msgid "Timezone" +msgstr "Tijdzone" + +msgid "Title" +msgstr "Titel" + +msgid "Title properties" +msgstr "Titelinstellingen" + +msgid "Titleset mode" +msgstr "Titelset modus" + +msgid "To audio selection" +msgstr "Naar audioselectie" + +msgid "To subtitle selection" +msgstr "Naar ondertitelselectie" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable " +"USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed " +"for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" +"Voer de volgende handelingen uit om uw ontvanger te voorzien van nieuwe " +"firmware:\n" +"1: Schakel de spanning uit met de schakelaar aan de achterzijde en plaats " +"vervolgens de USB stick.\n" +"2: Schakel de spanning in en druk en houd gedurende 10 sec de DOWN knop op " +"het voorpaneel ingedrukt.\n" +"3: Wacht tot de receiver gaat opstarten en volg daarna de instructies op het " +"display op." + +msgid "Today" +msgstr "Vandaag" + +msgid "Toggle a cut mark at the current position" +msgstr "Op de huidige positie een snijmarkering aanbrengen" + +msgid "Tone amplitude" +msgstr "Toonhoogte" + +msgid "Tone mode" +msgstr "Tone modus" + +msgid "Toneburst" +msgstr "Toneburst" + +msgid "Toneburst A/B" +msgstr "Toneburst A/B" + +msgid "Top and bottom" +msgstr "Boven en onderzijde" + +msgid "Track" +msgstr "Spoor" + +msgid "Translation" +msgstr "Vertaling" + +msgid "Translation:" +msgstr "Vertaling:" + +msgid "Translations" +msgstr "Vertalingen" + +msgid "Transmission mode" +msgstr "Transmissiemodus" + +msgid "Transponder" +msgstr "Transponder" + +msgid "Transponder type" +msgstr "Transpondertype" + +msgid "Trash can" +msgstr "Prullenbak" + +msgid "Tries left:" +msgstr "Aantal pogingen over:" + +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "" +"Probeert gebruikte transponders op het kabelnetwerk te vinden. Een ogenblik " +"aub..." + +msgid "Trying to download a new packetlist. Please wait..." +msgstr "Probeert een nieuwe pakketlijst te downloaden. Een ogenblik aub..." + +msgid "Tue" +msgstr "Di" + +msgid "Tuesday" +msgstr "Dinsdag" + +msgid "Tune" +msgstr "Afstemmen" + +msgid "Tune and focus" +msgstr "Afstemmen en focussen" + +msgid "Tune failed!" +msgstr "Afstemmen mislukt!" + +msgid "Tuner" +msgstr "Tuner" + +msgid "Tuner configuration" +msgstr "Tunerconfiguratie" + +msgid "Tuner is not supported" +msgstr "De tuner wordt niet ondersteund" + +msgid "Tuner slot" +msgstr "Tunerslot" + +msgid "Tuner status" +msgstr "Tunerstatus" + +#, python-format +msgid "Tuner status %s" +msgstr "Tunerstatus %s" + +msgid "Tuner type" +msgstr "Tunertype" + +msgid "Turkish" +msgstr "Turks" + +msgid "Turn on the power LED during standby." +msgstr "" +"Met deze optie bepaalt u of de Power Led brandt als de ontvanger standby " +"staat." + +msgid "Turning step size" +msgstr "Stap voor stap draaien" + +msgid "Two" +msgstr "Twee" + +msgid "Type" +msgstr "Type" + +msgid "Type of scan" +msgstr "Zoekmodus" + +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "USALS calibratie" + +msgid "USB stick" +msgstr "USB stick" + +msgid "USB stick wizard" +msgstr "USB stick wizard" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Er is een update actief zonder statusmeldingen\n" +"Wacht aub tot de ontvanger opnieuw opstart\n" +"Dit kan een paar minuten in beslag nemen." + +msgid "Undo install" +msgstr "Installatie ongedaan maken" + +msgid "Undo uninstall" +msgstr "Maak de-instaleren ongedaan" + +msgid "Unencrypted" +msgstr "Ongecodeerd" + +msgid "UnhandledKey" +msgstr "Ongeldige toets" + +msgid "Unicable" +msgstr "Unicable" + +msgid "Unicable LNB" +msgstr "Unicable LNB" + +msgid "Unicable Martix" +msgstr "Unicable Martix" + +msgid "Uninstall" +msgstr "De-installeer" + +msgid "Universal LNB" +msgstr "Universeel LNB" + +msgid "Unknown" +msgstr "Onbekend" + +msgid "Unmount" +msgstr "Ontkoppel" + +msgid "Unsupported" +msgstr "Niet ondersteund" + +msgid "Update" +msgstr "Update" + +msgid "Update and ask to reboot" +msgstr "Updaten en daarna vragen om te herstarten" + +msgid "Update and reboot (recommended)" +msgstr "Update en herstart (aanbevolen)" + +msgid "Update channel list only" +msgstr "Alleen de zenderlijst updaten" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "De update is gereed, %d pakket geinstalleerd." +msgstr[1] "De update is gereed, %d pakketten geinstalleerd." + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "De update is gereed. Wilt u uw ontvanger herstarten?" + +msgid "" +"Update failed. Your receiver does not have a working internet connection." +msgstr "Update mislukt. Uw ontvanger heeft geen actieve internetaansluiting." + +msgid "Update has completed." +msgstr "De update is gereed." + +msgid "Updatefeed not available." +msgstr "Updatefeed niet beschikbaar." + +msgid "Updating software catalog" +msgstr "Software catalogus wordt geüpdatet" + +msgid "Upgrading" +msgstr "Bezig met update" + +msgid "Use" +msgstr "Gebruik" + +msgid "Use DHCP" +msgstr "Automatisch IP verkrijgen (DHCP)" + +msgid "Use EIT EPG information when it is available." +msgstr "" +"Indien geactiveerd kunt u, indien deze beschikbaar is, de EIT EPG informatie " +"inschakelen." + +msgid "Use FreeSat EPG information when it is available." +msgstr "" +"Indien geactiveerd kunt u, indien deze beschikbaar is, de Freesat EPG " +"informatie inschakelen." + +msgid "Use MHW EPG information when it is available." +msgstr "" +"Indien geactiveerd kunt u, indien deze beschikbaar is, de MHW EPG informatie " +"inschakelen." + +msgid "Use Netmed EPG information when it is available." +msgstr "" +"Indien geactiveerd kunt u, indien deze beschikbaar is, de Netmed EPG " +"informatie inschakelen." + +msgid "Use TV remote control" +msgstr "Gebruik de afstandsbediening van de TV" + +msgid "Use USALS for this sat" +msgstr "Gebruik USALS voor de satelliet" + +msgid "Use ViaSat EPG information when it is available." +msgstr "" +"Indien geactiveerd kunt u, indien deze beschikbaar is, de Viasat EPG " +"informatie inschakelen." + +msgid "Use Virgin EPG information when it is available." +msgstr "" +"Indien geactiveerd kunt u, indien deze beschikbaar is, de Virgin EPG " +"informatie inschakelen." + +msgid "Use a gateway" +msgstr "Gateway gebruiken" + +msgid "Use fastscan channel names" +msgstr "Gebruik fastscan kanaalnamen" + +msgid "Use fastscan channel numbering" +msgstr "Gebruik fastscan zendervolgorde" + +msgid "Use frequency or channel" +msgstr "Gebruik frequentie of kanaal" + +msgid "Use individual settings for each directory" +msgstr "Gebruik afzonderlijke instellingen voor iedere directory" + +msgid "Use interface" +msgstr "Netwerk interface inschakelen" + +msgid "Use official channel numbering" +msgstr "Gebruik officiële kanaalvolgorde" + +msgid "Use original DVB subtitle position" +msgstr "Gebruik de oorspronkelijk positie van DVB ondertitels" + +msgid "Use original teletext position" +msgstr "Originele teletextpositie gebruiken" + +msgid "Use power measurement" +msgstr "Meet stroomopname" + +msgid "Use the network wizard to configure selected network adapter" +msgstr "" +"Gebruik de netwerkwizard om de geselecteerde netwerkadapter te configureren" + +msgid "Use the network wizard to configure your network\n" +msgstr "Gebruik de netwerkwizard om uw netwerk in te stellen\n" + +msgid "" +"Use the up/down keys on your remote control to select an option. After that, " +"press OK." +msgstr "" +"U kunt met de omhoog / omlaag toets op uw afstandsbediening een optie " +"kiezen. Druk daarna op OK." + +msgid "Use the wizard to set up basic features" +msgstr "Start de wizard voor de basisinstellingen" + +msgid "Use these input device settings?" +msgstr "Instellingen voor dit apparaat gebruiken?" + +msgid "Use these settings?" +msgstr "Deze instellingen gebruiken?" + +msgid "Use this video enhancement settings?" +msgstr "Gebruik deze videoverbeteringsinstellingen?" + +msgid "Use trash can in movielist" +msgstr "Gebruik de prullenbak in de opnamelijst" + +msgid "Used service scan type" +msgstr "Gebruikte zoekmethode" + +msgid "User - bouquets" +msgstr "Gebruiker - bouquets" + +msgid "User defined" +msgstr "Door u ingesteld" + +msgid "User defined transponder" +msgstr "Gebruikergedefinieerde transponder" + +msgid "User interface" +msgstr "Gebruikersinterface" + +msgid "Username" +msgstr "Gebruikersnaam" + +#, python-format +msgid "Using LNB %d" +msgstr "Gebruik LNB %d" + +msgid "Using fixed address" +msgstr "Gebruik vast ingesteld adres" + +#, python-format +msgid "Using tuner %s" +msgstr "Gebruik tuner %s" + +msgid "" +"Usually when the subtitle language is the same as the audio language, the " +"subtitles will not be used. Enable this option to allow these subtitles to " +"be used." +msgstr "" +"Standaard, indien de taal van de ondertitels identiek is aan de taal van het " +"geluidsspoor, dan worden de ondertitels niet weergegeven. Activeer deze " +"optie om weergave van ondertitels alsnog mogelijk te maken." + +msgid "VCR scart" +msgstr "VCR scart" + +msgid "VMGM (intro trailer)" +msgstr "VMGM (intro trailer)" + +msgid "Vertical" +msgstr "Verticaal" + +msgid "Vertical turning speed" +msgstr "Verticale draaisnelheid" + +msgid "Video PID" +msgstr "Video PID" + +msgid "Video enhancement preview" +msgstr "Videoverbetering preview" + +msgid "Video enhancement settings" +msgstr "Videoverbeteringsinstellingen..." + +msgid "Video enhancement setup" +msgstr "Videoverbeteringsinstelling..." + +msgid "Video fine tuning" +msgstr "Video fijnafstellingen" + +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different " +"input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Videouitgangsselectie\n" +"\n" +"Druk op OK zodra u dit bericht kunt zien (of selecteer een andere uitgang).\n" +"De volgende videooptie wordt over +/- 10 seconden automatisch geprobeerd." + +msgid "Video mode selection." +msgstr "Videomodeselectie" + +msgid "Video output" +msgstr "Video uitgang" + +msgid "Video setup" +msgstr "Video instellingen" + +msgid "Video wizard" +msgstr "Video wizard" + +#, python-format +msgid "Video: %s fps" +msgstr "Video: %s fps" + +msgid "VideoMode" +msgstr "VideoModus" + +msgid "Videocodec" +msgstr "Videocodec" + +msgid "Videoformat" +msgstr "Videoformaat" + +msgid "Videosize" +msgstr "Videogrootte" + +msgid "View Rass interactive..." +msgstr "Rass Interactive weergeven" + +msgid "View details" +msgstr "Bekijk details" + +msgid "View list of available " +msgstr "Bekijk de lijst met beschikbare " + +msgid "View list of available CommonInterface extensions" +msgstr "Bekijk de lijst met beschikbare Common-Interface plugins" + +msgid "View list of available EPG extensions." +msgstr "Bekijk de lijst met beschikbare EPG applicaties." + +msgid "View list of available Satellite equipment extensions." +msgstr "Bekijk lijst met beschikbare satellietapparatuur applicaties." + +msgid "View list of available communication extensions." +msgstr "Bekijk de lijst met beschikbare communicatie applicaties." + +msgid "View list of available default settings" +msgstr "Bekijk de lijst met beschikbare standaardinstellingen" + +msgid "View list of available display and userinterface extensions." +msgstr "" +"Bekijk het overzicht van de beschikbare display- en gebruikersinterface " +"applicaties." + +msgid "View list of available multimedia extensions." +msgstr "Bekijk de lijst van beschikbare multimedia-applicaties." + +msgid "View list of available networking extensions" +msgstr "Bekijk de lijst met beschikbare netwerk-applicaties" + +msgid "View list of available recording extensions" +msgstr "Bekijk de lijst met beschikbare opname applicaties" + +msgid "View list of available skins" +msgstr "Bekijk de lijst met beschikbare skins" + +msgid "View list of available software extensions" +msgstr "Bekijk de lijst met beschikbare softwareplugins" + +msgid "View list of available system extensions" +msgstr "Bekijk de lijst met beschikbare systeemplugins" + +msgid "View photos..." +msgstr "Bekijk foto's..." + +msgid "View teletext..." +msgstr "Teletekst weergeven..." + +msgid "View video CD..." +msgstr "Bekijk Video CD..." + +msgid "Virtual keyboard" +msgstr "Virtueel toetsenbord" + +msgid "Voltage mode" +msgstr "Spanningsmodus" + +msgid "Volume" +msgstr "Volume" + +msgid "W" +msgstr "W" + +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "WLAN connectie" + +msgid "WPA" +msgstr "WPA" + +msgid "WPA or WPA2" +msgstr "WPA of WPA2" + +msgid "WPA2" +msgstr "WPA2" + +msgid "WSS on 4:3" +msgstr "WSS bij 4:3" + +msgid "Waiting" +msgstr "Wacht..." + +msgid "Waiting for mount" +msgstr "Wachten op de mount" + +msgid "Waiting for partition" +msgstr "Wacht op een verdeelpunt" + +msgid "Wakeup" +msgstr "Actief worden" + +msgid "Wakeup TV from standby" +msgstr "Activeer de TV vanuit standby" + +msgid "Wakeup receiver for start timer" +msgstr "Haal de ontvanger uit standby om een timeropname te starten" + +msgid "Wakeup receiver from standby" +msgstr "Activeer de ontvanger vanuit standby" + +msgid "Wakeup signal from TV" +msgstr "Activeer het signaal van TV" + +msgid "Wakeup type" +msgstr "Type 'Wakeup'" + +msgid "Warning: no LNB; using factory defaults." +msgstr "Waarschuwing: geen LNB; standaardwaardes worden gebruikt." + +msgid "Watch movies..." +msgstr "Films bekijken....." + +msgid "Watch recordings..." +msgstr "Opnames bekijken..." + +msgid "Wed" +msgstr "Wo" + +msgid "Wednesday" +msgstr "Woensdag" + +msgid "Weekday" +msgstr "Dag van de week" + +msgid "Weighted position" +msgstr "Gewogen positie" + +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start " +"cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"Welkom bij de Cutlist editor.\n" +"\n" +"Start met zoeken welke passage u wenst te verwijderen. Druk op OK, selecteer " +"'start'.\n" +"\n" +"Ga naar het einde, druk op OK, selecteer 'eindpunt'. Eenvoudiger kan niet." + +msgid "" +"Welcome to the image upgrade wizard. The wizard will assist you in upgrading " +"the firmware of your receiver by providing a backup facility for your " +"current settings and a short explanation of how to upgrade your firmware." +msgstr "" +"Welkom bij de software updatewizard. De wizard assisteert u bij het " +"opwaarderen van de software van uw ontvanger door u een backupmogelijkheid " +"aan te bieden voor uw huidige instellingen, gecombineerd met een korte " +"uitleg hoe u de software kunt updaten." + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide " +"you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" +"Welkom.\n" +"\n" +"Indien u uw ontvanger aan het internet wilt koppelen zal de wizard u daarbij " +"begeleiden om de basis netwerksettings te plaatsen.\n" +"\n" +"Druk OK om te beginnen met de configuratie van uw netwerk." + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" +"Welkom.\n" +"\n" +"Deze opstarthulp voert u langs de basis instellingen van uw ontvanger.\n" +"Druk de OK toets op uw afstandsbediening om naar de volgende stap te gaan." + +msgid "Welcome..." +msgstr "Welkom..." + +msgid "West" +msgstr "West" + +msgid "West limit set" +msgstr "Westlimiet gezet" + +msgid "What do you want to scan?" +msgstr "Wat wilt u zoeken?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "" +"Met deze optie stelt u in op welke wijze de PiP beëindigd kan worden met de " +"exit knop.\n" +"\n" +"U kunt kiezen uit, niet mogelijk, zonder popup of met popup." + +msgid "" +"When enabled the arrow buttons around the OK button will follow the " +"'neutrino' style zap controls instead of the enigma2 style." +msgstr "" +"Indien geactiveerd dan functioneren de toetsen rondom de OK toets zoals in " +"de 'neutrino stijl' in plaats van de 'enigma2 stijl'." + +msgid "" +"When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the " +"'neutrino' style zap controls instead of the enigma2 style." +msgstr "" +"Indien geactiveerd, dan werken de links, rechts, CH +/-, B +/-, P +/- " +"toetsen in de 'neutrino stijl' in plaats van de 'enigma2 stijl'." + +msgid "" +"When enabled you can specify a timeframe to ignore the shutdown timer when " +"the receiver is in standby mode" +msgstr "" +"Indien geactiveerd dan kan een tijdsruimte worden gespecificeerd waarbinnen " +"de uitschakel timer wordt genegeerd wanneer de tuner al in standby is." + +msgid "" +"When enabled you can specify a timeframe were the inactivity sleeptimer is " +"ignored. Not the detection is disabled during this timeframe but the " +"inactivity timeout is disabled" +msgstr "" +"Je kunt een periode opgeven waarin de inactiviteits sleeptimer wordt " +"genegeerd. De detectie wordt niet uitgeschakeld maar de inactiviteits " +"timeout wordt uitgeschakeld." + +msgid "" +"When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons " +"instead of opening the channel selection list." +msgstr "" +"Indien geactiveerd, dan kan er gezapt worden met de CH +/-, B +/-, P +/- " +"knoppen in plaats van het openen zenderkeuze lijst." + +msgid "" +"When enabled you get the channel selection list via the OK button, the " +"infobar toggle is then transfered to exit button" +msgstr "" +"Indien geactiveerd opent de kanalenlijst met de 'Ok' toets. De " +"informatiebalk opent met de 'exit' toets." + +msgid "" +"When enabled, AIT data will be included in http streams. This allows a " +"client receiver to use HbbTV." +msgstr "" +"Indien geactiveerd, dan zal de AIT data worden toegevoegd aan de http " +"streams. Hiermee kan een cliënt-ontvanger HbbTV gebruiken." + +msgid "" +"When enabled, ECM data will be included in http streams. This allows a " +"client receiver to do the descrambling." +msgstr "" +"Indien geactiveerd, dan zal de ECM data worden toegevoegd aan de http " +"streams. Hiermee kan een cliënt-ontvanger de decodering uitvoeren." + +msgid "" +"When enabled, EIT data will be included in http streams. This allows a " +"client receiver to show EPG." +msgstr "" +"Indien geactiveerd, dan zal de EIT data toegevoegd worden aan de http " +"streams. Hiermee kan ook een cliënt-ontvanger de EPG tonen." + +msgid "" +"When enabled, a popup message will be shown when a movie has finished and " +"the next one will start." +msgstr "" +"Indien geactiveerd, dan zal er een bericht op het scherm getoond worden " +"zodra een film afgelopen is en een nieuwe zal starten." + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "" +"Indien geactiveerd, dan zal er een bericht getoond worden bij het starten " +"van een opname." + +msgid "" +"When enabled, a radio background image will be visible while listening to a " +"radio channel." +msgstr "" +"Indien geactiveerd, dan zal er een achtergrondafbeelding getoond worden bij " +"het beluisteren van de radio." + +msgid "" +"When enabled, a recording is allowed to interrupt live tv, when there are no " +"free tuners." +msgstr "" +"Indien geactiveerd, dan kan een opname live TV onderbreken indien er geen " +"vrije tuners meer beschikbaar zijn." + +msgid "" +"When enabled, a warning will be displayed and the user will get an option to " +"stop or to continue the timeshift." +msgstr "" +"Indien geactiveerd, dan zal de gebruiker de optie worden getoond om de " +"timeshift te stoppen of door te laten lopen." + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" +"Indien geactiveerd, dan dient u een wachtwoord in te vullen om http streams " +"te kunnen zien." + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "" +"Indien geactiveerd, dan zullen de kanaalnummers van ieder bouquet beginnen " +"bij '1'." + +msgid "" +"When enabled, content with an aspect ratio of 4:3 will be stretched to fit " +"the screen." +msgstr "" +"Indien geactiveerd, dan zal een 4:3 weergave omgezet worden tot een passend " +"beeld op het scherm." + +msgid "" +"When enabled, continue to the next bouquet when the last channel of the " +"current bouquet is reached while changing channels." +msgstr "" +"Indien geactiveerd, dan kunt u doorzappen naar het volgende bouquet indien " +"de laatste zender uit het huidige bouquet bereikt is." + +msgid "" +"When enabled, deleted recordings are moved to the trash can, instead of " +"being deleted immediately." +msgstr "" +"Indien geactiveerd, dan zullen gewiste opnames verplaatst worden naar de " +"prullenmand i.p.v. dat deze direct verwijderd worden." + +msgid "" +"When enabled, display the EIT now/next eventdata in infobar. When disabled, " +"display now/next eventdata from the EPG cache instead." +msgstr "" +"Indien geactiveerd, dan wordt de EIT nu / straks informatie in de " +"informatiebalk getoond. Zo niet, toon dan de nu / straks informatie vanuit " +"de EPG cache." + +msgid "" +"When enabled, encryption info will be shown in the infobar (when supported " +"by the skin)." +msgstr "" +"Indien geactiveerd, dan wordt de gebruikte kaartlezer + de coderingsinfo " +"getoond in de informatiebalk." + +msgid "" +"When enabled, error messages related to the Common Interface module will not " +"be shown." +msgstr "" +"Indien geactiveerd, dan worden de Common Interface gerelateerde meldingen " +"niet meer weergegeven. " + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "" +"Indien geactiveerd, dan worden fouten a.g.v. zappen niet meer weergegeven." + +msgid "" +"When enabled, external subtitles will be always turned on for playback movie." +msgstr "" +"Indien geactiveerd, dan zullen de externe ondertitels altijd worden " +"weergegeven tijdens het afspelen van een film. " + +msgid "" +"When enabled, graphical DVB subtitles are preferred over teletext subtitles, " +"when both types are available." +msgstr "" +"Indien geactiveerd, dan wordt, indien beide types ondertitels beschikbaar " +"zijn, de voorkeur gegeven aan de grafische DVB ondertitels t.o.v. de " +"teletext ondertitels." + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "" +"Indien geactiveerd, dan worden de grafische DVB ondertitels horizontaal " +"gecentreerd." + +msgid "" +"When enabled, graphical DVB subtitles will be displayed at their original " +"position." +msgstr "" +"Indien geactiveerd, dan worden de grafische DVB ondertitels op hun " +"oorspronkelijke locatie weergegeven.\n" +"\n" +"U kunt dit instellen met de cursor R / L toetsen tussen origineel, vast of " +"relatief. De standaardwaarde is relatief." + +msgid "" +"When enabled, graphical DVB subtitles will be displayed in yellow, instead " +"of the original color." +msgstr "" +"Indien geactiveerd, dan worden de grafische DVB ondertitels in geel " +"weergegeven i.p.v. in de originele kleur." + +msgid "" +"When enabled, http streams are descrambled on the server side. The (remote) " +"client receiver does not have to do descrambling." +msgstr "" +"Indien geactiveerd, dan worden de http streams aan de serverzijde " +"gedecodeerd. De cliënt-ontvanger hoeft deze dan niet meer te decoderen. " + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "" +"Met deze optie stelt u in of de 'exit' toets gebruikt mag worden om de " +"movieplayer te sluiten, en zo ja, op welke manier.\n" +"\n" +"U kunt kiezen uit niet mogelijk, met popup of zonder popup." + +msgid "" +"When enabled, measure power consumption to detect when the rotor stops " +"turning (when supported by the tuner)." +msgstr "" +"Indien geactiveerd, dan wordt het door de rotor opgenomen vermogen " +"gedetecteerd indien deze stopt met draaien. (indien door de tuner " +"ondersteund)" + +msgid "When enabled, number markers will be hiden." +msgstr "" +"Indien geactiveerd, zullen de kanaalnummers van lege zenders niet in de " +"zenderlijst worden getoond.\n" +"\n" +"Deze optie is alleen van toepassing op een zenderlijst of bouquet, gemaakt " +"met de FastScan en/of KabelScan optie." + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "" +"Indien geactiveerd, dan worden zenders in verschillende bouquetten " +"gegroepeerd." + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "Indien geactiveerd, toon dan de kanaalnummers in de zenderselectie." + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "" +"Indien geactiveerd, dan kunnen de ondertitels t.b.v. gehoorgestoorden " +"gebruikt worden." + +msgid "" +"When enabled, subtitles for the hearing impaired will be preferred over " +"normal subtitles, when both types are available." +msgstr "" +"Indien geactiveerd, dan wordt er, indien beide types beschikbaar, de " +"voorkeur gegeven aan de ondertitels voor gehoorgestoorden tegen de normale " +"ondertitels. " + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "" +"Indien geactiveerd, dan wordt de teletext informatie gecached waardoor er " +"sneller door de teletext pagina's gebladerd kan worden." + +msgid "" +"When enabled, teletext subtitles will be displayed at their original " +"position." +msgstr "" +"Indien geactiveerd, dan worden teletext ondertitels op hun oorspronkelijk " +"locatie weergegeven." + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "" +"Indien geactiveerd, dan zullen de VCR scartopties weergegeven worden in het " +"hoofdmenu." + +msgid "" +"When enabled, the channel selection list will be hidden while listening to a " +"radio channel" +msgstr "" +"Indien geactiveerd, dan wordt de zenderlijst niet weergegeven tijdens het " +"luisteren naar de radio." + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "" +"Indien geactiveerd, dan wordt de informatiebalk weergegeven indien een nieuw " +"programma start." + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "" +"Indien geactiveerd, dan wordt de informatiebalk weergegeven bij wisseling " +"van zenders." + +msgid "" +"When enabled, the infobar will be displayed when skipping forwards/backwards " +"during media playback." +msgstr "" +"Indien geactiveerd, dan wordt de informatiebalk weergegeven tijdens het " +"voorwaarts / achterwaarts spoelen tijdens het afspelen van mediabestanden." + +msgid "" +"When enabled, the lenght of each recording will be shown in the movielist " +"(this might cause some additional loading time)." +msgstr "" +"Indien geactiveerd, dan wordt de lengte van iedere opname weergegeven in de " +"opnamelijst. (Hierdoor kan de laadtijd van de opnamelijst toenemen)." + +msgid "" +"When enabled, the original line breaks will be removed from the teletext " +"subtitles." +msgstr "" +"Indien geactiveerd, dan worden de originele CR verwijderd vanuit de teletext " +"ondertitels." + +msgid "" +"When enabled, the receiver will automatically use the audio track which you " +"selected before." +msgstr "" +"Indien geactiveerd, dan zal de tuner automatisch het eerder geselecteerde " +"audiospoor gebruiken." + +msgid "" +"When enabled, the receiver will automatically use the subtitles which you " +"selected before." +msgstr "" +"Indien geactiveerd, dan zal de ontvanger automatisch de eerder gekozen " +"ondertitels gebruiken." + +msgid "" +"When enabled, the receiver will no longer monitor the tuned transponder for " +"possible changes. Do not use this option unless you know what you are doing." +msgstr "" +"Indien geactiveerd, dan zal de ontvanger de huidige transponder niet meer " +"automatisch scannen op mogelijke wijzigingen. Gebruik deze optie niet indien " +"u deze optie niet exact begrijpt. " + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "" +"Indien geactiveerd, dan selecteert de ontvanger een AC3 spoor indien deze " +"beschikbaar is." + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" +"Indien geactiveerd, dan selecteert de ontvanger een AC3+ spoor indien deze " +"beschikbaar is." + +msgid "" +"When enabled, timeshift starts automatically in background after specified " +"time." +msgstr "" +"Met deze optie stelt u de tijdsduur in na hoeveel tijd de functie timeshift " +"automatisch op de achtergrond gestart wordt.\n" +"\n" +"U kunt kiezen tussen 0 - 5 minuten maximaal." + +msgid "When enabled, use DHCP for the IP configuration." +msgstr "Indien geactiveerd, gebruik dan DHCP om uw IPadres te bepalen." + +msgid "" +"When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "" +"Indien geactiveerd, herkent de ontvanger een signaal op de VCR SCART ingang." + +msgid "" +"When nonzero, a recording will start earlier than the starting time " +"indicated by the EPG." +msgstr "" +"Met deze optie stelt u het aantal minuten in dat de opname eerder moet " +"starten t.o.v. het in de EPG of uw papieren TV gids aangegeven tijdsstip.\n" +"\n" +"U kunt hier zelf een waarde ingeven. " + +msgid "" +"When nonzero, a recording will stop later than the ending time indicated by " +"the EPG." +msgstr "" +"Met deze optie stelt u het aantal minuten in dat de lopende opname later " +"moet eindigen t.o.v. het in de EPG of uw papieren TV gids aangegeven " +"tijdsstip.\n" +"\n" +"U kunt hier zelf een waarde ingeven." + +msgid "" +"When the content has an aspect ratio of 16:9, choose whether to scale/" +"stretch the picture." +msgstr "" +"Indien het beeld een beeldverhouding heeft van >16:9, kies dan of je het " +"beeld geschaald of uitgerekt wenst te zien.\n" +"\n" +"U kunt kiezen uit letterbox, schalen, automatisch of pan & scan." + +msgid "" +"When the content has an aspect ratio of 4:3, choose whether to scale/stretch " +"the picture." +msgstr "" +"Indien het beeld een beeldverhouding heeft van 4:3, kies dan of je het beeld " +"geschaald of uitgerekt wenst te zien.\n" +"\n" +"U kunt kiezen uit pillarbox, schalen, automatisch, non liniair of pan & scan." + +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart " +"automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"Wanneer u terug gaat naar de fabrieksinstellingen verliest u al uw " +"instellingen\n" +"(inclusief bouquetten, zenders, satellietdata, etc ...)\n" +"Na het terugzetten van de fabrieksinstellingen zal uw ontvanger automatisch " +"herstarten!\n" +"\n" +"Wilt u deze actie daadwerkelijk uitvoeren?" + +msgid "Where do you want to backup your settings?" +msgstr "Waar wilt u de backup van uw instellingen opslaan?" + +msgid "Where to save temporary timeshift recordings?" +msgstr "Waar wilt u de tijdelijke timeshift opnames opslaan?" + +msgid "Wireless LAN" +msgstr "Draadloos netwerk" + +msgid "Wireless network" +msgstr "WIFI netwerk" + +msgid "Wireless network configuration..." +msgstr "WIFI netwerk instellingen..." + +msgid "Wireless network connection setup" +msgstr "Installatie van het draadloos netwerk" + +msgid "Wireless network connection setup." +msgstr "Installatie van het draadloos netwerk." + +msgid "Wireless network state" +msgstr "Status draadloos netwerk" + +msgid "With popup" +msgstr "Met popup" + +msgid "Without popup" +msgstr "Zonder popup" + +msgid "Would you like to install a softcam?" +msgstr "Wilt u een softcam installeren?" + +msgid "Write error while recording. Disk full?\n" +msgstr "Schrijffout tijdens opname. Harde schijf vol?\n" + +msgid "Write failed!" +msgstr "Schrijven mislukt!" + +msgid "YPbPr" +msgstr "Component" + +msgid "Year" +msgstr "Jaar" + +msgid "Yellow DVB subtitles" +msgstr "Gele DVB ondertiteling" + +msgid "Yes" +msgstr "Ja" + +msgid "Yes and save" +msgstr "Ja en sla op" + +msgid "Yes and save in movie dir" +msgstr "Ja en sla op in de opnamedirectory" + +msgid "Yes to all" +msgstr "Ja op alles" + +msgid "Yes, always" +msgstr "Ja, altijd" + +msgid "Yes, and delete this movie" +msgstr "Ja, en verwijder dit bestand" + +msgid "Yes, backup my settings!" +msgstr "Ja, ik wil een backup maken van mijn instellingen!" + +msgid "Yes, delete this movie and return to movie list" +msgstr "Ja, verwijder deze opname en keer terug naar het opnameoverzicht" + +msgid "Yes, do a manual scan now" +msgstr "Ja, voer nu de handmatige zoekfunctie uit" + +msgid "Yes, do an automatic scan now" +msgstr "Ja, voer nu de automatische zoekfunctie uit" + +msgid "Yes, do another manual scan now" +msgstr "Ja, ik wil nogmaals handmatig zoeken" + +msgid "Yes, perform a shutdown now." +msgstr "Ja, ik wil nu afsluiten." + +msgid "Yes, restore the settings now" +msgstr "Ja, de gegevens nu terugplaatsen" + +msgid "Yes, returning to movie list" +msgstr "Ja, terug naar de opname lijst" + +msgid "Yesterday" +msgstr "Gisteren" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" +"Er is al een kanalenlijst geïnstalleerd.\n" +"Mag die verwijderd worden\n" +"\"%s\"?" + +msgid "You can cancel the installation." +msgstr "De installatie kan worden geannuleerd." + +msgid "You can cancel the removal." +msgstr "Verwijderen kan worden geannuleerd." + +msgid "You can continue watching TV etc. while this is running." +msgstr "U kunt TV enz. blijven kijken terwijl deze actie loopt." + +msgid "You can install this plugin." +msgstr "Deze plugin kunt u installeren." + +msgid "You can only burn receiver recordings!" +msgstr "U kunt enkel opnames branden die door uw receiver gemaakt zijn!" + +msgid "You can remove this plugin." +msgstr "Deze plugin kunt u verwijderen." + +msgid "You cannot delete this!" +msgstr "U kunt dit niet wissen!" + +msgid "You didn't select a channel to record from." +msgstr "U heeft geen kanaal geselecteerd om van op te nemen." + +msgid "" +"You have chosen to backup your settings. Please press OK to start the backup " +"now." +msgstr "" +"U heeft gekozen een backup van uw instellingen te maken. Druk op OK om te " +"beginnen." + +msgid "" +"You have chosen to create a new .NFI flasher bootable USB stick. This will " +"repartition the USB stick and therefore all data on it will be erased." +msgstr "" +"U heeft gekozen om een nieuwe .NFI flasher opstart USB stick aan te maken. " +"Alle data op de USB stick gaat onherroepelijk verloren." + +msgid "" +"You have chosen to restore your settings. Enigma2 will restart after " +"restore. Please press OK to start the restore now." +msgstr "" +"U heeft gekozen om uw instellingen te herstellen. Enigma2 zal herstarten na " +"het herstel. Druk op OK om te beginnen met het herstel." + +#, python-format +msgid "You have to wait %s!" +msgstr "Wacht op %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, " +"please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update " +"instructions from the website, your new firmware will ask you to restore " +"your settings." +msgstr "" +"U heeft een PC nodig die met uw ontvanger verbonden is. Voor verdere " +"instructies brengt u een bezoek aan de website http://openpli.org/wiki/" +"HomePage.\n" +"Uw ontvanger stopt nu. Zodra u de juiste update instructies van de website " +"gevolgd hebt zal uw nieuwe firmware u vragen of uw voormalige settings " +"teruggeplaatst moeten worden. " + +msgid "You system does not support ext4" +msgstr "Uw systeem ondersteunt geen ext4" + +msgid "" +"Your backup succeeded. We will now continue to explain the further upgrade " +"process." +msgstr "" +"De backup is geslaagd. U krijgt nu een korte uitleg over het vervolg van het " +"update proces." + +msgid "" +"Your collection exceeds the size of a single layer medium, you will need a " +"blank dual layer DVD!" +msgstr "" +"Uw verzameling is groter dan wat erop een single layer medium past, u heeft " +"een lege dual layer DVD nodig!" + +msgid "Your current collection will get lost!" +msgstr "Uw huidige collectie zal verloren gaan!" + +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"De frontprocessor firmware moet vernieuwd worden.\n" +"Druk op OK, om dit proces te starten." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Uw frontprocessor zal opgewaardeerd worden.\n" +"Wacht aub totdat uw ontvanger herstart.\n" +"Dit kan enige minuten duren." + +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"Uw internetverbinding werkt helaas niet!\n" +"Kies wat u hierna wilt te doen." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "Uw internetverbinding is actief. Uw Ipadres is (ip: %s) " + +msgid "Your network configuration has been activated." +msgstr "De configuratie van uw netwerk is geactiveerd." + +msgid "Your receiver does not have an internet connection" +msgstr "Uw ontvanger heeft geen (actieve) internetverbinding." + +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"Uw ontvanger is nu gereed voor gebruik.\n" +"\n" +"Uw internetverbinding werkt correct.\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Uw ontvanger is gereed voor gebruik.\n" +"\n" +"Uw internetverbinding is nu actief.\n" +"\n" +"Druk OK om verder te gaan." + +msgid "Your receiver is rebooting" +msgstr "De ontvanger wordt herstart." + +msgid "Your receiver is shutting down" +msgstr "De ontvanger gaat uit" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "De ontvanger wordt uitgeschakeld. Even geduld AUB..." + +msgid "" +"Your receiver might be unusable now. Please consult the manual for further " +"assistance before rebooting your receiver." +msgstr "" +"Uw ontvanger kan nu onbruikbaar zijn. Lees eerst de handleiding voor extra " +"informatie voordat u de ontvanger herstart." + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "Uw ontvanger wordt door de sleeptimer in standby geschakeld." + +msgid "Your receiver will got to standby due to inactivity." +msgstr "Uw ontvanger wordt vanwege inaktiviteit, naar standby geschakeld." + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "De ontvanger zal herstarten nadat u op OK gedrukt heeft." + +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"Uw WIFI internetverbinding kan niet gestart worden!\n" +"Heeft u de USB WLAN Stick in de box geplaatst?\n" +"\n" +"Kies wat u vervolgens wilt doen." + +msgid "Zap" +msgstr "Zap" + +msgid "Zap back to previously tuned service?" +msgstr "Wilt u terug naar het vorige kanaal?" + +msgid "Zap back to service before positioner setup?" +msgstr "Wilt u terugkeren naar de vorige zender?" + +msgid "Zap back to service before tuner setup?" +msgstr "Wilt u terug naar het vorige kanaal" + +msgid "Zap focus to Picture in Picture" +msgstr "Zappen in PiP scherm" + +msgid "Zap focus to main screen" +msgstr "Zappen in hoofdscherm" + +msgid "Zap mode" +msgstr "Zapmodus" + +msgid "Zap to selected channel" +msgstr "Ga naar het geselecteerde kanaal" + +msgid "" +"Zap to selected channel, or show detailed event info (depends on " +"configuration)" +msgstr "" +"Zap naar de gekozen zender of toon gedetailleerde programmainformatie (dit " +"hangt van de configuratie af) " + +msgid "[alternative edit]" +msgstr "[alternatieven bewerken]" + +msgid "[bouquet edit]" +msgstr "[bouquetten bewerken]" + +msgid "[favourite edit]" +msgstr "[favorieten bewerken]" + +msgid "[move mode]" +msgstr "[verplaats modus]" + +msgid "a gui to assign services/providers to common interface modules" +msgstr "een GUI om zenders / providers aan de CI modules toe te voegen" + +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "een GUI om zenders / providers/ caids aan de CI modules toe te voegen" + +msgid "abort alternatives edit" +msgstr "Alternatieven bewerken afsluiten" + +msgid "abort bouquet edit" +msgstr "Bouquet bewerken afsluiten" + +msgid "abort favourites edit" +msgstr "Favorieten bewerken afsluiten" + +msgid "about to start" +msgstr "start zodadelijk" + +msgid "activate network adapter configuration" +msgstr "start de netwerkadapter configuratie" + +msgid "add alternatives" +msgstr "Alternatieven toevoegen" + +msgid "add bookmark" +msgstr "Markeerpunt toevoegen" + +msgid "add bouquet" +msgstr "bouquet toevoegen" + +msgid "add marker" +msgstr "Markeerpunt invoegen" + +msgid "add service to bouquet" +msgstr "Zender toevoegen aan bouquet" + +msgid "add service to favourites" +msgstr "Zender toevoegen aan favorieten" + +msgid "add to parental protection" +msgstr "Zender op kinderslot zetten" + +msgid "adult movie/drama" +msgstr "erotiek / drama" + +msgid "advanced" +msgstr "geavanceerd" + +msgid "adventure/western/war" +msgstr "avontuur / western / oorlog" + +msgid "advertisement/shopping" +msgstr "reclame / shopping" + +msgid "after " +msgstr "na " + +msgid "alphabetic" +msgstr "alfabetisch" + +msgid "alphabetic reverse" +msgstr "alfabetisch terug" + +msgid "alternative" +msgstr "Alternatief" + +msgid "always" +msgstr "altijd" + +msgid "and select next channel" +msgstr "en kies volgende zender" + +msgid "and select previous channel" +msgstr "en kies vorige zender" + +msgid "arts/culture (without music, general)" +msgstr "kunst / cultuur (algemeen)" + +msgid "arts/culture magazine" +msgstr "kunst / cultuurmagazine" + +msgid "athletics" +msgstr "atletiek" + +msgid "audio tracks" +msgstr "audiosporen" + +msgid "auto" +msgstr "auto" + +msgid "automatic" +msgstr "automatisch" + +msgid "back" +msgstr "terug" + +msgid "background image" +msgstr "achtergrondafbeelding" + +msgid "ballet" +msgstr "ballet" + +#, python-format +msgid "bc%s" +msgstr "bc%s" + +msgid "better" +msgstr "beter" + +msgid "black" +msgstr "zwart" + +msgid "black & white" +msgstr "zwart & wit" + +msgid "blacklist" +msgstr "zwarte lijst" + +msgid "blue" +msgstr "blauw" + +msgid "broadcasting/press" +msgstr "feeds / pers" + +msgid "by date" +msgstr "op datum" + +msgid "cartoon/puppets" +msgstr "tekenfilm / animatie" + +msgid "center" +msgstr "Centreer" + +msgid "centered" +msgstr "gecentreerd" + +msgid "centered, wrapped" +msgstr "gecentreerd, gedraaid" + +msgid "chapters" +msgstr "hoofdstukken" + +msgid "childrens's/youth program (general)" +msgstr "kinderen / jeugd (algemeen)" + +msgid "circular left" +msgstr "circular links" + +msgid "circular right" +msgstr "circular rechts" + +msgid "comedy" +msgstr "komedie" + +msgid "complex" +msgstr "complex" + +msgid "config menu" +msgstr "configuratiemenu" + +msgid "confirmed" +msgstr "bevestigd" + +msgid "connected" +msgstr "verbonden" + +msgid "continue" +msgstr "doorgaan" + +msgid "cooking" +msgstr "kookprogramma" + +msgid "copy to bouquets" +msgstr "Kopieer naar bouquetten" + +msgid "create directory" +msgstr "Map aanmaken" + +#, python-format +msgid "currently installed image: %s" +msgstr "huidig geïnstalleerde image: %s" + +msgid "daily" +msgstr "dagelijks" + +msgid "day" +msgstr "dag" + +msgid "default" +msgstr "standaard" + +msgid "delete cut" +msgstr "Wis snijpunt" + +msgid "delete..." +msgstr "verwijder..." + +msgid "descramble and record ecm" +msgstr "ecm decoderen en opnemen" + +msgid "detective/thriller" +msgstr "detective / thriller" + +msgid "disable" +msgstr "deactiveren" + +msgid "disable move mode" +msgstr "Verplaatsmode deactiveren" + +msgid "disabled" +msgstr "gedeactiveerd" + +msgid "disconnected" +msgstr "Verbroken" + +msgid "discussion/interview/debate" +msgstr "discussie / interview / debatten" + +msgid "do nothing" +msgstr "Geen actie" + +msgid "documentary" +msgstr "documentaire" + +msgid "don't descramble, record ecm" +msgstr "ecm niet decoderen maar wel opnemen" + +msgid "done!" +msgstr "gereed!" + +msgid "east" +msgstr "oost" + +msgid "economics/social advisory" +msgstr "economisch / sociaal" + +msgid "edit alternatives" +msgstr "Alternatieven bewerken" + +msgid "education/science/factual topics (general)" +msgstr "educatief / wetenschap / feiten (algemeen)" + +msgid "empty" +msgstr "leeg" + +msgid "enable" +msgstr "activeren" + +msgid "enable bouquet edit" +msgstr "Bouquet bewerken activeren" + +msgid "enable favourite edit" +msgstr "Favorieten bewerken activeren" + +msgid "enable move mode" +msgstr "Verplaatsmodus activeren" + +msgid "enabled" +msgstr "geactiveerd" + +msgid "end alternatives edit" +msgstr "Alternatieven bewerken stoppen" + +msgid "end bouquet edit" +msgstr "Bouquet bewerken stoppen" + +msgid "end cut here" +msgstr "Stop snijpunt hier" + +msgid "end favourites edit" +msgstr "Favorieten bewerken stoppen " + +msgid "entertainment (10-16 year old)" +msgstr "amusement (10-16 jaar)" + +msgid "entertainment (6-14 year old)" +msgstr "amusement (6-14 jaar)" + +msgid "equal to" +msgstr "gelijk aan" + +msgid "equestrian" +msgstr "ruitersport" + +msgid "exit DVD player or return to file browser" +msgstr "DVD speler afsluiten of terug naar bestandslijst" + +msgid "exit movielist" +msgstr "verlaat het opname overzicht" + +msgid "exit network adapter configuration" +msgstr "verlaat de netwerkadapter configuratie" + +msgid "exit networkadapter setup menu" +msgstr "verlaat het netwerkadapter instellingenmenu" + +msgid "experimental film/video" +msgstr "experimentele films / video" + +msgid "false" +msgstr "incorrect" + +msgid "fashion" +msgstr "mode" + +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "Bestandsformaat (BMP, PNG, JPG, GIF)" + +msgid "filename" +msgstr "bestandnaam" + +msgid "film/cinema" +msgstr "film / bioscoop" + +msgid "fine arts" +msgstr "fijne kunst" + +msgid "fine-tune your display" +msgstr "Uw scherm secuur afstellen" + +msgid "find currently played service" +msgstr "zoek service welke momenteel speelt" + +msgid "fitness & health" +msgstr "fitness & gezondheid" + +msgid "flat alphabetic" +msgstr "enkel alfabetisch" + +msgid "flat alphabetic reverse" +msgstr "enkel alfabetisch achterwaarts" + +msgid "folk/traditional music" +msgstr "Folk / Traditionele muziek" + +msgid "football/soccer" +msgstr "voetbal" + +msgid "foreign countries/expeditions" +msgstr "onbekende landen / expedities" + +msgid "forward to the next chapter" +msgstr "Verder naar het volgende hoofdstuk" + +msgid "free" +msgstr "vrij" + +msgid "from" +msgstr "van" + +msgid "further education" +msgstr "meer educatie" + +msgid "game show/quiz/contest" +msgstr "speshow / quiz / wedstrijd" + +msgid "gardening" +msgstr "tuinieren" + +msgid "go to deep standby" +msgstr "uitschakelen" + +msgid "go to standby" +msgstr "standby" + +msgid "grab this frame as bitmap" +msgstr "Maak van dit scherm een screenshot" + +msgid "green" +msgstr "groen" + +msgid "handicraft" +msgstr "ambacht" + +msgid "height" +msgstr "hoogte" + +msgid "help..." +msgstr "Help..." + +msgid "horizontal" +msgstr "horizontaal" + +msgid "information/education/school program" +msgstr "informatie / educatief / school TV" + +msgid "init module" +msgstr "module initialiseren" + +msgid "init modules" +msgstr "initialiseer modules" + +msgid "insert mark here" +msgstr "Markeerpunt invoegen" + +msgid "invalid type" +msgstr "ongeldig type" + +msgid "jazz" +msgstr "jazz" + +msgid "jump back to the previous title" +msgstr "terug naar vorige titel" + +msgid "jump forward to the next title" +msgstr "vooruit naar volgende titel" + +msgid "languages" +msgstr "talen" + +msgid "leave movie player..." +msgstr "PVR afsluiten" + +msgid "left" +msgstr "links" + +msgid "left, wrapped" +msgstr "links, eromheen" + +msgid "leisure hobbies (general)" +msgstr "ontspanning / hobbies (algemeen)" + +msgid "length" +msgstr "lengte" + +msgid "limit ..., aborting !" +msgstr "limiet niet bepalen. Stoppen!" + +msgid "list style compact" +msgstr "Weergave: Compact" + +msgid "list style compact with description" +msgstr "Weergave: Compact met omschrijving" + +msgid "list style default" +msgstr "Weergave: Standaard" + +msgid "list style single line" +msgstr "Weergave: Enkele regel" + +msgid "literature" +msgstr "literatuur" + +msgid "live broadcast" +msgstr "live uitzending" + +msgid "locked" +msgstr "locked" + +msgid "loopthrough to" +msgstr "Doorlus naar" + +msgid "magazines/reports/documentary" +msgstr "magazines / verslagen / documentaires" + +msgid "manual" +msgstr "handmatig" + +msgid "martial sports" +msgstr "vechtsport" + +msgid "medicine/physiology/psychology" +msgstr "geneeskunde / physiologie / psychologie" + +msgid "menu" +msgstr "menu" + +msgid "mins" +msgstr "min" + +msgid "minutes" +msgstr "minuten" + +msgid "month" +msgstr "maand" + +msgid "motor sport" +msgstr "motorsport" + +msgid "motoring" +msgstr "motors" + +msgid "move down to last entry" +msgstr "verplaats omlaag naar laatste ingave" + +msgid "move down to next entry" +msgstr "verplaats omlaag naar volgende ingave" + +msgid "move up to first entry" +msgstr "verplaats omhoog naar eerste ingave" + +msgid "move up to previous entry" +msgstr "verplaats omhoog naar vorige ingave" + +msgid "movie/drama (general)" +msgstr "film / drama (algemeen)" + +msgid "multinorm" +msgstr "multinorm" + +msgid "music/ballet/dance (general)" +msgstr "muziek / ballet / dans (algemeen)" + +msgid "musical/opera" +msgstr "musical / opera" + +msgid "nature/animals/environment" +msgstr "natuur / dieren / milieu" + +msgid "never" +msgstr "nooit" + +msgid "new media" +msgstr "nieuwe media" + +msgid "news magazine" +msgstr "nieuwsmagazine" + +msgid "news/current affairs (general)" +msgstr "nieuws / actualiteiten (algemeen)" + +msgid "news/weather report" +msgstr "nieuws / weer" + +msgid "no" +msgstr "nee" + +msgid "no CAId selected" +msgstr "Geen CAId geselecteerd" + +msgid "no CI slots found" +msgstr "Geen CI slots gevonden" + +msgid "no module found" +msgstr "Geen module gevonden" + +msgid "no storage devices found" +msgstr "geen opslagmedia gevonden" + +msgid "none" +msgstr "geen" + +msgid "normal" +msgstr "normaal" + +msgid "not configured" +msgstr "niet ingesteld" + +msgid "not locked" +msgstr "niet gelockt" + +msgid "not supported" +msgstr "niet ondersteund" + +msgid "not used" +msgstr "niet gebruikt" + +msgid "nothing connected" +msgstr "niets aangesloten" + +msgid "of a DUAL layer medium used." +msgstr "op een DUAL layer medium gebruikt." + +msgid "of a SINGLE layer medium used." +msgstr "op een SINGLE layer medium gebruikt." + +msgid "off" +msgstr "uit" + +msgid "offset is" +msgstr "afstand is" + +msgid "on" +msgstr "aan" + +msgid "on READ ONLY medium." +msgstr "op ALLEEN LEZEN medium." + +msgid "on end of movie" +msgstr "aan het einde van de opname" + +msgid "once" +msgstr "éénmalig" + +msgid "only from deep standby" +msgstr "enkel vanuit 'deep standby'" + +msgid "only from standby" +msgstr "enkel vanuit 'standby'" + +msgid "open EPG..." +msgstr "open EPG..." + +msgid "open Info..." +msgstr "open Info..." + +msgid "open nameserver configuration" +msgstr "Open nameserver configuratie" + +msgid "original" +msgstr "origineel" + +msgid "original language" +msgstr "orginele taal" + +msgid "pass" +msgstr "passage" + +msgid "performing arts" +msgstr "uitvoerende kunsten" + +msgid "play as picture in picture" +msgstr "speel als picture in picture" + +msgid "play in mainwindow" +msgstr "afspelen in hoofdscherm" + +msgid "please press OK when ready" +msgstr "druk op OK als u gereed bent" + +msgid "please wait, loading picture..." +msgstr "Een ogenblik geduld, de foto wordt geladen..." + +msgid "popular culture/traditional arts" +msgstr "moderne cultuur / traditionele kunst" + +msgid "pre-school children's program" +msgstr "peuter / kinderprogramma" + +msgid "receiver software because updates are available." +msgstr "ontvanger software omdat updates verkrijgbaar zijn." + +msgid "record" +msgstr "opname" + +msgid "recording..." +msgstr "opnemen..." + +msgid "red" +msgstr "rood" + +msgid "religion" +msgstr "religie" + +msgid "remarkable people" +msgstr "opmerkelijke personen" + +msgid "remove after this position" +msgstr "Verwijder achter deze positie" + +msgid "remove all alternatives" +msgstr "Verwijder alle alternatieven" + +msgid "remove all new found flags" +msgstr "verwijder alle 'nieuw gevonden' markeringen" + +msgid "remove before this position" +msgstr "Verwijder voor deze positie" + +msgid "remove bookmark" +msgstr "Markeerpunt verwijderen" + +msgid "remove directory" +msgstr "Map verwijderen" + +msgid "remove entry" +msgstr "Invoer verwijderen" + +msgid "remove from parental protection" +msgstr "Verwijder kinderslot" + +msgid "remove new found flag" +msgstr "verwijder 'nieuw gevonden' markering" + +msgid "remove selected satellite" +msgstr "Deze satelliet verwijderen" + +msgid "remove this mark" +msgstr "verwijder deze markering" + +msgid "rename entry" +msgstr "hernoem de ingave" + +msgid "repeat playlist" +msgstr "Herhaal afspeellijst" + +msgid "repeated" +msgstr "herhalen" + +msgid "reverse by date" +msgstr "terug op datum" + +msgid "rewind to the previous chapter" +msgstr "terugspoelen naar vorig hoofdstuk" + +msgid "right" +msgstr "rechts" + +msgid "right, wrapped" +msgstr "rechts, gedraaid" + +msgid "rock/pop" +msgstr "rock / pop" + +msgid "romance" +msgstr "romantiek" + +msgid "save last directory on exit" +msgstr "Bewaar laatste map bij het beëindigen" + +msgid "save playlist on exit" +msgstr "Bewaar afspeellijst bij het beëindigen" + +msgid "scan state" +msgstr "zoekstatus" + +msgid "science fiction/fantasy/horror" +msgstr "science fiction / fantasie / horror" + +msgid "second cable of motorized LNB" +msgstr "2e kabel van gemotoriseerde LNB" + +msgid "seconds" +msgstr "seconden" + +msgid "select" +msgstr "selecteer" + +msgid "select CAId's" +msgstr "Selecteer CAId's" + +msgid "select EPG..." +msgstr "kies de EPG..." + +msgid "select Info..." +msgstr "kies de Info..." + +msgid "select menu entry" +msgstr "selecteer menuitem" + +msgid "select movie" +msgstr "kies de opname" + +msgid "select the movie path" +msgstr "kies de opname map" + +msgid "serious music/classic music" +msgstr "serieuse / klassieke muziek" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "serieuze / klassiek / religieus / historische film / drama" + +msgid "service PIN" +msgstr "service pincode" + +msgid "set as startup service" +msgstr "kanaal kiezen bij opstarten" + +msgid "setup PIN" +msgstr "Stel pincode in" + +msgid "show DVD main menu" +msgstr "DVD hoofdmenu weergeven" + +msgid "show all tags" +msgstr "Laat alle tags zien" + +msgid "show alternatives" +msgstr "Alternatieven weergeven" + +msgid "show event details" +msgstr "EPG details weergeven" + +msgid "show extended description" +msgstr "toon de uitgebreide omschrijving" + +msgid "show mediaplayer on mainmenu" +msgstr "mediaplayer op hoofdmenu tonen" + +msgid "show softwaremanager in setup menu" +msgstr "Softwaremanager zichtbaar in setup menu" + +msgid "show softwaremanager on blue button" +msgstr "Softwaremanager zichtbaar onder blauwe knop" + +msgid "show tag menu" +msgstr "toon het tag menu" + +msgid "show transponder info" +msgstr "Transponder info weergeven" + +msgid "show/game show (general)" +msgstr "show / quiz (algemeen)" + +msgid "shuffle" +msgstr "willekeurig" + +msgid "shut down" +msgstr "uitschakelen" + +msgid "simple" +msgstr "eenvoudig" + +msgid "skip backward" +msgstr "Achteruit springen" + +msgid "skip forward" +msgstr "Vooruit springen" + +msgid "soap/melodram/folkloric" +msgstr "soap / melodrama / folklore" + +msgid "social/political issues/economics (general)" +msgstr "sociaal / politiek / economisch (algemeen)" + +msgid "social/spiritual science" +msgstr "sociale / geestelijke wetenschap" + +msgid "sorting of playlists" +msgstr "sorteren van afspeellijsten" + +msgid "special characters" +msgstr "speciale tekens" + +msgid "special events" +msgstr "speciale gebeurtenissen" + +msgid "special format data DVD (HDTV compatible)" +msgstr "speciaal formaat data DVD (HDTV compatible)" + +msgid "sports (general)" +msgstr "sport (algemeen)" + +msgid "sports magazine" +msgstr "sportmagazine" + +msgid "standard" +msgstr "Standaard" + +msgid "start cut here" +msgstr "Start knippen hier" + +msgid "start directory" +msgstr "Start map" + +msgid "stepsize" +msgstr "stapgrootte" + +msgid "stereo" +msgstr "stereo" + +msgid "stop using as startup service" +msgstr "stop met het gebruiken als opstartzender" + +msgid "switch to bookmarks" +msgstr "Ga naar markeerpunten" + +msgid "switch to filelist" +msgstr "Ga naar bestandenlijst" + +msgid "switch to the next angle" +msgstr "schakel naar de volgende hoek" + +msgid "switch to the next audio track" +msgstr "Volgend audiospoor" + +msgid "switch to the next subtitle language" +msgstr "Volgende ondertiteltaal" + +msgid "talk show" +msgstr "talkshow" + +msgid "team sports" +msgstr "teamsporten" + +msgid "technology/natural science" +msgstr "technologisch / natuurwetenschappen" + +msgid "template file" +msgstr "sjabloonbestand" + +msgid "tennis/squash" +msgstr "tennis / squash" + +msgid "this recording" +msgstr "deze opname" + +msgid "this service is protected by a parental control pin" +msgstr "Dit kanaal is beveiligd met een kinderslot" + +msgid "toggle time, chapter, audio, subtitle info" +msgstr "Tijd, hoofdstuk, audio en ondertitels instellen" + +msgid "top" +msgstr "top" + +msgid "tourism/travel" +msgstr "toerisme / reizen" + +msgid "true" +msgstr "juist" + +msgid "unavailable" +msgstr "niet beschikbaar" + +msgid "unconfirmed" +msgstr "onbevestigd" + +msgid "undefined" +msgstr "geen gedefinieerd" + +msgid "unknown" +msgstr "onbekend" + +msgid "unknown service" +msgstr "onbekende zender" + +msgid "unpublished" +msgstr "niet gepubliceerd" + +msgid "until standby/restart" +msgstr "tot standby / herstart" + +msgid "user defined" +msgstr "door u gedefinieerd" + +msgid "variety show" +msgstr "variété / show" + +msgid "vertical" +msgstr "verticaal" + +msgid "wait for ci..." +msgstr "wacht op CI..." + +msgid "wait for mmi..." +msgstr "wacht op mmi..." + +msgid "waiting" +msgstr "ingepland" + +msgid "water sport" +msgstr "watersport" + +msgid "weekly" +msgstr "wekelijks" + +msgid "west" +msgstr "west" + +msgid "when PiPzap enabled zap channel down..." +msgstr "indien PIPzap actief is, zap naar een lager kanaal..." + +msgid "when PiPzap enabled zap channel up..." +msgstr "indien PIPzap actief is, zap naar een hoger kanaal..." + +msgid "white" +msgstr "wit" + +msgid "whitelist" +msgstr "witte lijst" + +msgid "width" +msgstr "breedte" + +msgid "winter sport" +msgstr "wintersport" + +msgid "wireless network interface" +msgstr "draadloze netwerkinterface" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "met %d fout" +msgstr[1] "met %d fouten" + +msgid "working" +msgstr "bezig" + +msgid "yellow" +msgstr "geel" + +msgid "yes" +msgstr "ja" + +msgid "yes (keep feeds)" +msgstr "ja (bewaar feeds)" + +msgid "zap" +msgstr "zap" + +msgid "zap and record" +msgstr "zap en neem op" + +msgid "zapped" +msgstr "zapte" + +msgid "(not activated)" +msgstr "(gedeactiveerd)" + +msgid "(activated +%d min)" +msgstr "(geactiveerd +%d min)" + +#~ msgid "AA" +#~ msgstr "AA" + +#~ msgid "AB" +#~ msgstr "AB" + +#~ msgid "Activate PiP" +#~ msgstr "Activeer PiP" + +#~ msgid "Add/remove timer for current event" +#~ msgstr "Verwijderen of voeg een timer toe voor het huidige programma" + +#~ msgid "Adjust HDMI CEC settings" +#~ msgstr "HDMI CEC instellingen aanpassen" + +#~ msgid "All satellites" +#~ msgstr "Alle satellieten" + +#~ msgid "And will shutdown your receiver over " +#~ msgstr "En sluit uw ontvanger af na" + +#~ msgid "BA" +#~ msgstr "BA" + +#~ msgid "BB" +#~ msgstr "BB" + +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "Functie van de 'pauzetoets' gedurende pauze" + +#~ msgid "Choose your Skin" +#~ msgstr "Skin selectie" + +#~ msgid "Committed DiSEqC command" +#~ msgstr "Vastgelegd DiSEqC commando" + +#~ msgid "Configure if and how service type icons will be shown." +#~ msgstr "" +#~ "Configureer of en hoe de picons weergegeven worden in de zenderlijst" + +#~ msgid "Configure if service picons will be shown in the servicelist." +#~ msgstr "Configureer of de picons weergegeven worden in de zenderlijst." + +#~ msgid "" +#~ "Configure of and how long the latest service in the PiP will be " +#~ "remembered." +#~ msgstr "" +#~ "Hiermee stelt u in hoe lang de laatst gebruikte zender zender in PIP " +#~ "onthouden blijft." + +#~ msgid "" +#~ "Configure the behavior of the 'pause' key when movie playback is already " +#~ "paused." +#~ msgstr "" +#~ "Met deze optie stelt u in hoe de \"pauzetoets\" reageert indien een film " +#~ "al gepauzeerd is.\n" +#~ "\n" +#~ "U kunt kiezen uit afspelen, stap voor stap of afspelen met de laatste " +#~ "snelheid." + +#~ msgid "" +#~ "Configure the duration in hours and action, which could be shut down or " +#~ "standby, when the receiver is not controlled." +#~ msgstr "" +#~ "Stel de tijdsduur (in uren en lopende activiteit) in waarna de STB wordt " +#~ "afgesloten of naar standby gaat, indien de ontvanger niet wordt bediend." + +#~ msgid "" +#~ "Configure the duration in minutes and action, which could be shut down or " +#~ "standby, for the sleeptimer. Select this entry and click OK or green to " +#~ "start/stop the sleeptimer" +#~ msgstr "" +#~ "Met deze optie stelt u de tijdsduur in minuten of lopende acties in voor " +#~ "de sleeptimer, waarna de STB wordt afgesloten of naar standby gaat. Kies " +#~ "de gewenste waarde en druk op OK of de groene toets om de sleeptimer te " +#~ "starten/stoppen. " + +#~ msgid "Current mode:" +#~ msgstr "Huidige mode:" + +#~ msgid "Delete mount" +#~ msgstr "Verwijder mount" + +#~ msgid "DiSEqC repeats" +#~ msgstr "DiSEqC herhaling" + +#~ msgid "Enable neutrino style zap controlling" +#~ msgstr "Kies voor de 'neutrino' manier van zappen" + +#~ msgid "Goto specific data/time" +#~ msgstr "Naar een specifieke datum/tijd" + +#~ msgid "Memory positions" +#~ msgstr "Geheugenposities" + +#~ msgid "Nameserver Setup" +#~ msgstr "Instellingen van de nameserver" + +#~ msgid "Network Configuration" +#~ msgstr "Netwerkconfiguratie" + +#~ msgid "Network Setup" +#~ msgstr "Netwerkinstellingen" + +#~ msgid "No satellite frontend found!!" +#~ msgstr "Geen satelliettuner gevonden." + +#~ msgid "Press '0' to toggle internal/external PiP." +#~ msgstr "Druk '0' om tussen de interne/externe PiP te schakelen." + +#~ msgid "Remove timer" +#~ msgstr "Verwijder timer" + +#~ msgid "Select Network Adapter" +#~ msgstr "Selecteer Netwerk Adapter" + +#~ msgid "Select action for timer " +#~ msgstr "Selecteer actie voor timer " + +#~ msgid "Send DiSEqC" +#~ msgstr "Verstuur DiSEqC" + +#~ msgid "Show picons in servicelist" +#~ msgstr "Toon picons in de zenderlijst" + +#~ msgid "Show softcam setup in extensions menu" +#~ msgstr "Toon softcam instelling in uitbreidings menu" + +#~ msgid "Shutdown after current event" +#~ msgstr "Sluit de ontvanger af na de huidige actie" + +#~ msgid "Shutdown in " +#~ msgstr "Sluit af na" + +#~ msgid "Switch next channel" +#~ msgstr "Ga naar het volgende kanaal" + +#~ msgid "Toggle InfoBar" +#~ msgstr "Open / sluit Informatiebalk" + +#~ msgid "Tuning step size" +#~ msgstr "Afstemmen, stapgrootte" + +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Uncommitted DiSEqC commando" + +#~ msgid "" +#~ "When enabled the arrow buttons around the OK button will follow the " +#~ "neutrino style zap controls instead of the enigma2 style." +#~ msgstr "" +#~ "Indien geactiveerd, dan werken de pijltoetsen rond de OK knop volgens de " +#~ "oude 'Neutrino' manier in plaats van Enigma2." + +#~ msgid "" +#~ "When enabled you get the channel selection list via the OK button, the " +#~ "infobar toggle is then transfered to the CH+/-, B+/-, P+/- buttons" +#~ msgstr "" +#~ "Indien geactiveerd, dan kan met de OK toets de zenderlijst geopend " +#~ "worden. Met de CH +/-, B +/-, P +/- toetsen kan dan de informatiebalk " +#~ "getoond worden." + +#~ msgid "Your receiver will shutdown due to inactivity." +#~ msgstr "Uw ontvanger wordt vanwege inaktiviteit, uitgeschakeld." + +#~ msgid "Your receiver will shutdown due to the sleeptimer." +#~ msgstr "Uw ontvanger zal afsluiten als gevolg van een sleeptimer." + +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "Wilt u terugkeren naar de vorige zender?" + +#~ msgid "pixels wide" +#~ msgstr "pixels breed" + +#~ msgid "tuner is not supported" +#~ msgstr "tuner wordt niet ondersteund" diff --git a/po/no.po b/po/no.po new file mode 100644 index 0000000..dee4d8f --- /dev/null +++ b/po/no.po @@ -0,0 +1,9156 @@ +# Norwegian translations for Enigma2. +# +msgid "" +msgstr "" +"Project-Id-Version: enigma2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2013-10-23 19:15+0100\n" +"Last-Translator: andy1 <dmmm8000pvr@gmail.com>\n" +"Language-Team: none\n" +"Language: \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-Poedit-SourceCharset: iso-8859-15\n" +"X-Generator: Poedit 1.5.7\n" +"X-Poedit-Bookmarks: -1,-1,-1,-1,-1,31,1959,-1,-1,-1\n" + +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"Utvidede alternativer og innstillinger." + +# +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"Etter Ã¥ ha trykket OK, vennligst vent!" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" +"\n" +"Ta sikkerhetskopi av mottakerinnstillinger." + +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"Endre oppdateringsadresse." + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" +"\n" +"Administrere programvare utvidelser til mottakeren." + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" +"\n" +"Online oppdatering av din mottaker" + +# +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"Trykk OK pÃ¥ fjernkontrollen for Ã¥ fortsette." + +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"Gjenopprette sikkerhetskopier etter dato." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" +"\n" +"Gjenopprette mottakeren." + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" +"\n" +"Gjenopprette mottakeren med ny programvare." + +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"Søke etter og installere lokale utvidelser." + +# +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Velg din sikkerhetskopi.\n" +"NÃ¥værende kopi:" + +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"Se gjennom, installere/ avinstallere programpakker." + +msgid " (PiP)" +msgstr "" + +msgid " (Radio)" +msgstr "" + +msgid " (TV)" +msgstr "" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +# +msgid " extensions." +msgstr " utvidelser." + +msgid " ms" +msgstr "" + +msgid " packages selected." +msgstr " valgte pakker." + +msgid " updates available." +msgstr " oppdateringer er tilgjengelig." + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "" + +msgid "%A %d %B" +msgstr "" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "" + +msgid "%H:%M" +msgstr "" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "" + +# +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "%d kanal funnet!" +msgstr[1] "%d kanaler funnet!" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "%d mappe" +msgstr[1] "%d mapper" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d time" +msgstr[1] "%d timer" + +#, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d arbeid pÃ¥gÃ¥r i bakgrunnen!" +msgstr[1] "%d arbeider pÃ¥gÃ¥r i bakgrunnen!" + +# +#, python-format +msgid "%d min" +msgstr "" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minutt" +msgstr[1] "%d minutter" + +#, python-format +msgid "%d minutes" +msgstr "%d minutter" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d sekund" +msgstr[1] "%d sekunder" + +#, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "%d rotkatalog" +msgstr[1] "%d rotkataloger" + +# +#, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "%d trÃ¥dløst nettverk er funnet!" +msgstr[1] "%d trÃ¥dløse nettverk er funnet!" + +msgid "%d-%b-%Y %-H:%M" +msgstr "" + +msgid "%d-%m" +msgstr "" + +msgid "%d.%B %Y" +msgstr "" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "" + +#, python-format +msgid "%s %s free disk space" +msgstr "%s %s ledig diskplass" + +#, python-format +msgid "%s (%s)\n" +msgstr "" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "%s er ikke lenger i bruk. Skal den slettes?" + +#, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "%s oppdatert programvare er tilgjengelig" +msgstr[1] "%s oppdaterte programvarepakker er tilgjengelig" + +# +#, python-format +msgid "%s%d min" +msgstr "" + +#, python-format +msgid "%s/%s: %s" +msgstr "" + +msgid "(ZAP)" +msgstr "(GÃ… TIL)" + +# +msgid "(empty)" +msgstr "(tom)" + +# +msgid "(show optional DVD audio menu)" +msgstr "(vis alternativ DVD lydmeny)" + +msgid "* Only available if more than one interface is active." +msgstr "* Bare tilgjengelig hvis en eller flere grensesnitt er aktive." + +msgid "/s" +msgstr "" + +# +msgid "0" +msgstr "" + +# +msgid "1" +msgstr "" + +# +msgid "1.0" +msgstr "" + +# +msgid "1.1" +msgstr "" + +# +msgid "1.2" +msgstr "" + +# +msgid "12V output" +msgstr "12V utgang" + +# +msgid "13 V" +msgstr "" + +# +msgid "16:10" +msgstr "" + +# +msgid "16:10 Letterbox" +msgstr "" + +msgid "16:10 PanScan" +msgstr "" + +# +msgid "16:9" +msgstr "" + +msgid "16:9 Letterbox" +msgstr "" + +# +msgid "16:9 always" +msgstr "16:9 alltid" + +# +msgid "18 V" +msgstr "" + +# +msgid "2" +msgstr "" + +msgid "23.976" +msgstr "" + +# +msgid "24" +msgstr "" + +# +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +# +msgid "3" +msgstr "" + +# +msgid "30" +msgstr "" + +msgid "3d mode" +msgstr "3d valg" + +# +msgid "4" +msgstr "" + +# +msgid "4:3" +msgstr "" + +# +msgid "4:3 Letterbox" +msgstr "" + +msgid "4:3 PanScan" +msgstr "" + +# +msgid "5" +msgstr "" + +# +msgid "6" +msgstr "" + +# +msgid "7" +msgstr "" + +# +msgid "8" +msgstr "" + +# +msgid "9" +msgstr "" + +#, python-format +msgid ": %s" +msgstr "" + +msgid "<Current movielist location>" +msgstr "<Gjeldende spilliste>" + +msgid "<Default movie location>" +msgstr "<Standard spilliste>" + +msgid "<Last timer location>" +msgstr "<Siste plassering av tidtaker>" + +# +msgid "<unknown>" +msgstr "<ukjent>" + +# +msgid "??" +msgstr "" + +# +msgid "A" +msgstr "" + +# +#, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"En konfigurasjonsfil (%s) har blitt endret siden installering.\n" +"Vil du beholde dine endringer?" + +# +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"En konfigurasjonsfil (%s) har blitt endret siden installering.\n" +"Vil du bruke din versjon ?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"Et tidtakeropptak er ferdig og ønsker Ã¥ sette\n" +"mottakeren i standby. Gjøre det nÃ¥?" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"Et tidtakeropptak er ferdig og ønsker Ã¥ slÃ¥ av\n" +"mottakeren. SlÃ¥ av nÃ¥?" + +# +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "Grafisk EPG for alle kanaler i en bestemt kanalliste" + +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"Et opptak har startet:\n" +"%s" + +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"Et opptak er igang.\n" +"Hva vil du gjøre?" + +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "Et opptak er igang. Vennligst stopp opptaket før du konfigurerer motoren." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "Et opptak er igang. Vennligst stopp opptaket før du starter et søk." + +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "Et opptak er igang. Vennligst stopp opptaket før du starter et satellittsøk." + +# +#, python-format +msgid "A required tool (%s) was not found." +msgstr "Et nødvendig verktøy (%s) ble ikke funnet." + +msgid "A search for available updates is currently in progress." +msgstr "Søker etter tilgjengelige oppdateringer.." + +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"Et annet nettverkskort ble funnet.\n" +"Vil du frakoble det andre nettverksortet?" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"En tidtaker ønsker Ã¥ slÃ¥\n" +"mottakeren i standby. Gjøre det nÃ¥?" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"En tidtaker ønsker Ã¥ slÃ¥ av\n" +"mottakeren. SlÃ¥ av nÃ¥?" + +msgid "A small overview of the available icon states and actions." +msgstr "Et lite overblikk over tilgjengelige status varsler og handlinger." + +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"En tidtaker startet ikke opptak.\n" +"Skifte program og prøve igjen?\n" + +msgid "A/V settings" +msgstr "A/V-innstilling" + +msgid "AC3/DTS downmix" +msgstr "AC3/DTS blanding" + +# +msgid "Abort" +msgstr "Avbryt" + +# +msgid "About" +msgstr "Om" + +# +msgid "About..." +msgstr "Om..." + +# +msgid "Accesspoint:" +msgstr "Tilgangspunkt:" + +# +msgid "Action on long powerbutton press" +msgstr "Handling ved langt trykk pÃ¥ strømknappen" + +# +msgid "Action on short powerbutton press" +msgstr "Handling ved kort trykk pÃ¥ strømknappen" + +# +msgid "Activate Picture in Picture" +msgstr "Aktivere bilde i bilde" + +# +msgid "Activate current configuration" +msgstr "Aktivere gjeldende konfigurasjon" + +# +msgid "Activate network settings" +msgstr "Aktivere nettverksinnstillinger" + +msgid "Activate the configured network settings." +msgstr "Aktivere nettverksinnstillinger." + +# +msgid "Adapter settings" +msgstr "Nettverksinstillinger" + +# +msgid "Add" +msgstr "Legge til" + +# +msgid "Add Bookmark" +msgstr "Legge til bokmerke" + +# +msgid "Add a mark" +msgstr "Legge til markør" + +# +msgid "Add a nameserver entry" +msgstr "Legge til navneserver inngang" + +# +msgid "Add a new title" +msgstr "Legge til nytt navn" + +# +msgid "Add bookmark" +msgstr "Legge til bokmerke" + +msgid "Add directory to playlist" +msgstr "Legge til katalog i spilliste" + +# +msgid "Add file to playlist" +msgstr "Legge til fil i spilliste" + +# +msgid "Add files to playlist" +msgstr "Legge til filer i spilliste" + +msgid "Add more details to the crash log" +msgstr "Legge til flere detaljer i krasj logg" + +# +msgid "Add provider" +msgstr "Legge til leverandør" + +msgid "Add recording (enter recording duration)" +msgstr "Legge til et opptak (velg opptaks lengde)" + +msgid "Add recording (enter recording endtime)" +msgstr "Legge til et opptak (velg opptaks sluttid)" + +# +msgid "Add recording (indefinitely)" +msgstr "Legge til et opptak (uendelig)" + +# +msgid "Add recording (stop after current event)" +msgstr "Legge til opptak (stop etter nÃ¥værende program)" + +# +msgid "Add service" +msgstr "Legge til kanal" + +# +msgid "Add timer" +msgstr "Legg til tidtaker" + +# +msgid "Add title" +msgstr "Legge til navn" + +# +msgid "Add to bouquet" +msgstr "Legge til i kanalliste" + +# +msgid "Add to favourites" +msgstr "Legge til i favoritter" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "Justere 3D settinger" + +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "Justere fargene i testbildet slik at de kan skilles mellom. Alle bør blir sÃ¥ gjennomtrengende som mulig. Trykk OK eller nummerknappene for flere testbilder.Trykk exit knappen nÃ¥r du er ferdig" + +msgid "Advanced" +msgstr "" + +msgid "Advanced options" +msgstr "Alternativer" + +msgid "Advanced restore" +msgstr "Velg sikkerhetskopi etter dato" + +msgid "Advanced software" +msgstr "Programvare" + +msgid "Advanced software plugin" +msgstr "Programvaretillegg" + +msgid "Advanced video enhancement setup" +msgstr "Oppsett for ekstra videoutstyr" + +msgid "Advanced video setup" +msgstr "Video oppsett" + +# +msgid "After event" +msgstr "Etter program" + +# +msgid "Album" +msgstr "Album" + +msgid "Alignment of events" +msgstr "Programjusteringer" + +msgid "Alignment of service names" +msgstr "Plassering av kanal navn" + +# +msgid "All" +msgstr "Alle" + +msgid "All ages" +msgstr "Alle aldre" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "Tildele" + +msgid "Allocate unused memory index" +msgstr "Tildele ubrukt minneregister" + +msgid "Allow quit movieplayer with exit" +msgstr "Tillate Ã¥ avslutte mediespiller med exit knapp" + +msgid "Allow subtitle language to equal audio language" +msgstr "Tillate at undertekst sprÃ¥k er samme som lyd sprÃ¥k" + +msgid "Allow subtitles for hearing impaired" +msgstr "Tillate underteksting for hørselshemmede" + +# +msgid "Alpha" +msgstr "Alfa" + +# +msgid "Alternative" +msgstr "Alternativ" + +# +msgid "Alternative numbering mode" +msgstr "Alternativt nummervalg" + +# +msgid "Alternative services tuner priority" +msgstr "Alternativt tunervalg for kanaler" + +msgid "Always ask" +msgstr "Alltid spørre" + +msgid "Always hide infobar" +msgstr "" + +# +msgid "An empty filename is illegal." +msgstr "Et tomt filnavn er ikke tillatt" + +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "En feil oppstod under nedlasting av programvare. Vennligst prøv igjen." + +# +msgid "An unknown error occurred!" +msgstr "En ukjent feil oppstod!" + +msgid "And will put your receiver in standby over " +msgstr "Og mottakeren vil slÃ¥es av etter" + +msgid "Any activity" +msgstr "Noe aktivitet" + +# +msgid "Arabic" +msgstr "Arabisk" + +msgid "Are you sure to remove this entry?" +msgstr "" + +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"Vil du bruke dette nettverksoppsettet?\n" +"\n" + +# +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"Vil du slette\n" +"følgende backup:\n" + +# +msgid "Are you sure you want to exit this wizard?" +msgstr "Vil du avslutte veiviseren?" + +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "Vil du starte nettverkskortet pÃ¥ nytt?\n" + +#, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Vil du gjenopprette\n" +"følgende sikkerhetskopi:\n" +"%s\n" +"Mottakeren vil starte pÃ¥ nytt nÃ¥r sikkerhetskopien har blitt gjenopprettet!" + +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Vil du gjenopprette sikkerhetskopien?\n" +"Mottakeren vil starte pÃ¥ nytt nÃ¥r sikkerhetskopien har blitt gjenopprettet!" + +# +msgid "Artist" +msgstr "" + +msgid "Arts/Culture" +msgstr "kunst/kultur" + +# +msgid "Ask user" +msgstr "Spør bruker" + +# +msgid "Aspect ratio" +msgstr "Sideforhold" + +msgid "Assigned CAIds:" +msgstr "Tildelte CAId:" + +msgid "Assigned services/provider:" +msgstr "Tildelte kanaler/leverandører:" + +# +msgid "At beginning" +msgstr "Ved begynnelsen" + +msgid "At end" +msgstr "Ved slutten" + +# +msgid "Audio" +msgstr "Lyd" + +msgid "Audio PID" +msgstr "Lyd PID" + +msgid "Audio language selection 1" +msgstr "SprÃ¥kvalg 1" + +msgid "Audio language selection 2" +msgstr "SprÃ¥kvalg 2" + +msgid "Audio language selection 3" +msgstr "SprÃ¥kvalg 3" + +msgid "Audio language selection 4" +msgstr "SprÃ¥kvalg 4" + +# +msgid "Audio options..." +msgstr "Lyd valg..." + +#, python-format +msgid "Audio track (%s) format" +msgstr "Lyd (%s) format" + +#, python-format +msgid "Audio track (%s) language" +msgstr "Lyd (%s) sprÃ¥k" + +# +msgid "Author: " +msgstr "Forfatter:" + +# +msgid "Authoring mode" +msgstr "Administrator modus" + +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "" + +# +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Auto oppdeling hvert ? minutter (0=aldri)" + +# +msgid "Auto flesh" +msgstr "Auto rens" + +msgid "Auto focus" +msgstr "Auto fokus" + +msgid "Auto focus commencing ..." +msgstr "Auto fokus begynner ..." + +msgid "Auto language selection" +msgstr "SprÃ¥kvalg innstilling" + +# +msgid "Auto scart switching" +msgstr "Auto scart bytte" + +# +msgid "Automatic" +msgstr "Automatisk" + +msgid "Automatic scan" +msgstr "Automatisk søk" + +msgid "Automatically start timeshift after" +msgstr "Start automatisk timeshift etter" + +msgid "Automatically turn on external subtitles" +msgstr "Automatisk pÃ¥slÃ¥tt tekst-TV undertekst" + +# +msgid "Available format variables" +msgstr "Tilgjengelige format" + +# +msgid "B" +msgstr "" + +# +msgid "BER" +msgstr "" + +# +msgid "BER:" +msgstr "" + +# +msgid "Back" +msgstr "Tilbake" + +# +msgid "Background" +msgstr "Bakgrunn" + +msgid "Background color" +msgstr "Bakgrunnsfarge" + +msgid "Background delete option" +msgstr "Valg for bakgrunnssletting" + +msgid "Background delete speed" +msgstr "Hastighet for bakgrunnssletting" + +# +msgid "Backup completed." +msgstr "Sikkerhetskopi fullført." + +# +msgid "Backup failed." +msgstr "Sikkerhetskopi feilet." + +# +msgid "Backup is running..." +msgstr "Sikkerhetskopi kjører..." + +# +msgid "Backup system settings" +msgstr "Sikkerhetskopier system innstillinger" + +# +msgid "Band" +msgstr "BÃ¥nd" + +# +msgid "Bandwidth" +msgstr "BÃ¥ndbredde" + +msgid "Basque" +msgstr "Baskisk" + +# +msgid "Begin time" +msgstr "Starttid" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +# +msgid "Behavior of 0 key in PiP-mode" +msgstr "Innstilling for 0 knapp i PiP (bilde i bilde modus)" + +msgid "Behavior when a movie is started" +msgstr "Innstilling nÃ¥r en film startes" + +msgid "Behavior when a movie is stopped" +msgstr "Innstilling nÃ¥r en film stoppes" + +msgid "Behavior when a movie reaches the end" +msgstr "Innstilling nÃ¥r en film er ferdig" + +msgid "Big PiP" +msgstr "" + +# +msgid "Bitrate:" +msgstr "Bithastighet:" + +msgid "Black screen" +msgstr "Sort skjerm" + +msgid "Black screen till locked" +msgstr "Sort skjerm lÃ¥st" + +# +msgid "Block noise reduction" +msgstr "Blokkere støy reduksjon" + +# +msgid "Blue boost" +msgstr "BlÃ¥ boost" + +# +msgid "Bookmarks" +msgstr "Bokmerker" + +# +msgid "Brightness" +msgstr "Lysstyrke" + +msgid "Bulgarian" +msgstr "Bulgarsk" + +# +msgid "Burn DVD" +msgstr "Brenne DVD" + +# +#, python-format +msgid "Burn audio track (%s)" +msgstr "Brenne lydspor (%s)" + +# +msgid "Burn existing image to DVD" +msgstr "Brenne eksisternde bilde pÃ¥ DVD" + +# +msgid "Burn to DVD" +msgstr "Brenne pÃ¥ DVD" + +# +msgid "Bus: " +msgstr "Buss: " + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "Som standard vil SNR (signalstyrke) vises i dB (desibel) hvis tuneren støtter dette. Med denne innstillingen vises SNR i prosent." + +# +msgid "C" +msgstr "" + +# +msgid "C-Band" +msgstr "C-bÃ¥nd" + +msgid "CH" +msgstr "" + +# +msgid "CI assignment" +msgstr "CI tildeling" + +# +msgid "CVBS" +msgstr "" + +# +msgid "Cable" +msgstr "Kabel" + +msgid "Cable Scan" +msgstr "Kabel-TV søk" + +# +msgid "Cache thumbnails" +msgstr "Mellomlagre miniatyrbilder" + +msgid "Calculate" +msgstr "Kalkulere" + +msgid "Calculate all positions" +msgstr "Kalkulere alle posisjoner" + +msgid "Calculation complete" +msgstr "Kalkulasjonen er ferdig" + +msgid "Calibrate" +msgstr "Kalibrere" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "Kan brukes for forskjellig fps (bilde per sekund) mellom tekst-TV undertekster og bilde" + +# +msgid "Cancel" +msgstr "Avbryt" + +msgid "Cannot determine" +msgstr "Kan ikke fastslÃ¥" + +msgid "Cannot find any signal ..., aborting !" +msgstr "Finner ikke signal..., avbryter!" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "Kan ikke flytte filer med forskjellige filsystem til papirkurven" + +msgid "Cannot move to trash can" +msgstr "Kan ikke flytte til papirkurv" + +# +msgid "Capacity: " +msgstr "Kapasitet: " + +# +msgid "Card" +msgstr "Kort" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "Sentrere DVB undertekst" + +msgid "Center time-labels and remove date" +msgstr "Sentrere tidsangivelse og fjerne dato" + +# +msgid "Change bouquets in quickzap" +msgstr "Bytte kanallister i hurtigvalg" + +msgid "Change pin code" +msgstr "Endre PIN kode" + +# +msgid "Change recording (duration)" +msgstr "Endre opptaks (lengde)" + +# +msgid "Change recording (endtime)" +msgstr "Endre opptaks (sluttid)" + +msgid "Change repeat and delay settings?" +msgstr "Endre forsinkelses innstilling?" + +msgid "Change service PIN" +msgstr "Endre PIN kode for kanal" + +msgid "Change service PINs" +msgstr "Endre PIN kode for kanaler" + +msgid "Change setup PIN" +msgstr "Endre oppsetts PIN" + +# +msgid "Change step size" +msgstr "Endre steg lengde" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "Endringslogg" + +# +msgid "Channel" +msgstr "Kanal" + +# +msgid "Channel list type" +msgstr "Kanalliste-valg" + +# +msgid "Channel not in services list" +msgstr "Kanalen er ikke i listen" + +msgid "Channel selection" +msgstr "Kanalvalg" + +# +msgid "Channel:" +msgstr "Kanal:" + +# +msgid "Channellist menu" +msgstr "Kanalliste-meny" + +# +msgid "Chap." +msgstr "Kap." + +# +msgid "Chapter" +msgstr "Kapittel" + +# +msgid "Chapter:" +msgstr "Kapittel:" + +# +msgid "Check" +msgstr "Kontroller" + +msgid "Check the internet connection" +msgstr "Undersøk internett forbindelsen" + +msgid "Check the internet connection again" +msgstr "Undersøk internett forbindelsen igjen" + +# +msgid "Checking filesystem..." +msgstr "Undersøker filsystem..." + +msgid "Checking the internet connection" +msgstr "Undersøker internett forbindelsen" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" +"Undersøker mottakeren %d\n" +"DiSEqC port %s for %s" + +msgid "Children/Youth" +msgstr "barn/ungdom" + +msgid "Choose which tuner to configure." +msgstr "Velg tuner som skal stilles inn." + +# +msgid "Circular left" +msgstr "Sirkulær venstre" + +# +msgid "Circular right" +msgstr "Sirkulær høyre" + +msgid "Cleanup" +msgstr "Rydde opp" + +msgid "Clear" +msgstr "Klar" + +msgid "Clear before scan" +msgstr "Slett kanaler før søk" + +msgid "Clear fixed" +msgstr "Klargjort" + +# +msgid "Clear log" +msgstr "Tøm logg" + +# +msgid "Clear playlist" +msgstr "Tøm spilliste" + +# +msgid "Close" +msgstr "Lukke" + +msgid "Close PiP on exit" +msgstr "SlÃ¥ av PiP (bilde i bilde) med exit knapp" + +# +msgid "Close title selection" +msgstr "Lukke navnevalg" + +msgid "Code rate HP" +msgstr "Kode hastighet HP" + +msgid "Code rate LP" +msgstr "Kode hastighet LP" + +# +msgid "Coderate HP" +msgstr "Kode hastighet HP" + +# +msgid "Coderate LP" +msgstr "Kode hastighet LP" + +# +msgid "Collection name" +msgstr "Navnesamling" + +# +msgid "Collection settings" +msgstr "Samlingsinnstilling" + +# +msgid "Color format" +msgstr "Farge format" + +# +msgid "Command execution..." +msgstr "Kommando utføres..." + +# +msgid "Command order" +msgstr "Kommando rekkefølge" + +# +msgid "Common Interface" +msgstr "Common Interface" + +msgid "Common Interface assignment" +msgstr "Common Interface" + +# +msgid "Communication" +msgstr "Kommunikasjon" + +# +msgid "Compact flash" +msgstr "Kompakt flash minne" + +# +msgid "Complete" +msgstr "Komplett" + +# +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "Kompleks (tillater blanding av lyd spor)" + +msgid "Composition of the recording filenames" +msgstr "Sammensetning pÃ¥ opptakenes filnavn" + +msgid "Configuration mode" +msgstr "Oppsettstype" + +# +#, python-format +msgid "Configuration mode: %s" +msgstr "Oppsettstype: %s" + +# +msgid "Configuration..." +msgstr "Konfigurasjon..." + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "Still inn ekstra forsinkelse for Ã¥ forbedre tekst-TV undertekst synkronisering." + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "Still inn ekstra forsinkelse for Ã¥ forbedre undertekst synkronisering." + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "Still inn hvor lenge informasjonslinjen skal være synlig etter aktivering." + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "Still inn hvor mange minutter avsluttede program skal vises i EPG. Nyttig nÃ¥r du trenger informasjon om et program som akkurat er ferdig eller har blitt forsinket." + +msgid "Configure how recording filenames are constructed." +msgstr "Still inn lengden pÃ¥ filnavn som skal brukes til opptak." + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +# +msgid "Configure interface" +msgstr "Still inn grensesnitt" + +# +msgid "Configure nameservers" +msgstr "Still inn navnetjenerne" + +msgid "Configure on which devices the background delete option should be used." +msgstr "Still inn pÃ¥ hvilke enheter bakgrunnssletting skal benyttes." + +# +msgid "Configure remote control type" +msgstr "Still inn fjernkontroll valg" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "Still inn DiSEqC valg for denne LNB." + +msgid "Configure the IP address." +msgstr "Still inn IP adresse." + +msgid "Configure the aspect ratio of the screen." +msgstr "Still inn sideforholdet pÃ¥ skjermen." + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "Still inn oppførsel nÃ¥r en avspilling stoppes manuelt." + +msgid "Configure the behavior when movie playback is started." +msgstr "Still inn oppførsel nÃ¥r avspilling startes." + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "Still inn oppførsel nÃ¥r en avspilling slutter." + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "Still inn kontrast pÃ¥ undertekster. Den mørke fargen gjør tekstingen lettere Ã¥ lese pÃ¥ lys bakgrunn." + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "Still inn lysstyrken pÃ¥ frontpanelets display nÃ¥r mottakeren er avslÃ¥tt." + +msgid "Configure the brightness level of the front panel display." +msgstr "Still inn lysstyrken pÃ¥ frontpanelets display nÃ¥r mottakeren er pÃ¥slÃ¥tt." + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "Still inn fargen pÃ¥ tekst-TV undertekster. Alternativ (normal pÃ¥ hvit, kursiv pÃ¥ gul, fet pÃ¥ cyan, understrek pÃ¥ grønn) hvit eller gul." + +msgid "Configure the color of the teletext subtitles." +msgstr "Still inn fargen pÃ¥ tekst-TV undertekst." + +msgid "Configure the contrast level of the front panel display." +msgstr "Still inn lysstyrken pÃ¥ frontpanel." + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "Still inn skjermsparerens varighet i minutter." + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "Still inn tiden mottakeren skal bruke pÃ¥ Ã¥ slÃ¥ helt av i tilfelle mottakeren er satt i vanlig standby stilling." + +msgid "Configure the first audio language (highest priority)." +msgstr "Still inn førstevalg pÃ¥ lyd sprÃ¥k (høyeste prioritet)." + +msgid "Configure the first subtitle language (highest priority)." +msgstr "Still inn førstevalg pÃ¥ undertekst sprÃ¥k (høyeste prioritet)." + +msgid "Configure the font size of the subtitles." +msgstr "Still inn skriftstørrelse pÃ¥ undertekster." + +msgid "Configure the fourth audio language." +msgstr "Still inn fjerdevalg pÃ¥ lyd sprÃ¥k." + +msgid "Configure the fourth subtitle language." +msgstr "Still inn fjerdevalg pÃ¥ undertekst sprÃ¥k." + +msgid "Configure the function of a long press on the power button." +msgstr "Still inn funksjonen et langt trykk pÃ¥ strømknappen." + +msgid "Configure the function of a short press on the power button." +msgstr "Still inn funksjonen et kort trykk pÃ¥ strømknappen." + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "Still inn funksjonen for '0' knappen nÃ¥r PiP (bilde i bilde) er aktiv." + +msgid "Configure the gateway." +msgstr "Still inn inngangsport." + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "Still inn standard lyd forsinkelse i Dolby Digital lyd." + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "Still inn ønsket lydforsinkelse for stereo lyd spor." + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "Still inn nÃ¥r disk skal Ã¥ gÃ¥ i hvilestilling etter angitt inaktiv tid." + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "Still inn horisontal justering av undertekster." + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "Still inn hurtigspolingshastighet framover. NÃ¥r du trykker pÃ¥ framoverspolings knappen, vil hastigheten starte pÃ¥ denne fart." + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "Still inn hurtigspolingshastighet bakover. NÃ¥r du trykker pÃ¥ tilbakespolings knappen, vil hastigheten starte pÃ¥ denne fart." + +msgid "Configure the latitude of your location." +msgstr "Still inn breddegraden pÃ¥ stedet." + +msgid "Configure the longitude of your location." +msgstr "Still inn lengdegraden pÃ¥ stedet." + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "Still inn minimum diskplass som skal være tilgjengelig for opptak. NÃ¥r mengden av plass nærmer seg denne verdien, vil papirkurven tømmes." + +msgid "Configure the nameserver (DNS)." +msgstr "Still inn navnetjener (DNS)." + +msgid "Configure the netmask." +msgstr "Still inn nettmaske." + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "Still inn antall dager elementer holdes før de automatisk slettes fra papirkurven." + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "Still inn antall dager gamle tidtakere holdes før de automatisk fjernes fra tidtakerlisten." + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "Still inn avkodingsforsinkelsen i millisekunder.(offline). Den innstilte forsinkelsen iakttas ved hver paritetsendring" + +msgid "Configure the possible fast forward speeds." +msgstr "Still inn de ønskede hastighetstrinn for hurtigspoling framover." + +msgid "Configure the possible rewind speeds." +msgstr "Still inn de ønskede hastighetstrinn for hurtigspoling bakover." + +msgid "Configure the primary EPG language." +msgstr "Still inn førstevalg for EPG sprÃ¥k (høyeste prioritet)." + +msgid "Configure the refresh rate of the screen." +msgstr "Velg oppfriskningsrate for TV skjerm" + +msgid "Configure the screen resolution in PC output mode." +msgstr "Still inn skjermoppløsning for PC utgang" + +msgid "Configure the second audio language." +msgstr "Still inn andrevalg pÃ¥ lyd sprÃ¥k." + +msgid "Configure the second subtitle language." +msgstr "Still inn andrevalg pÃ¥ undertekst sprÃ¥k." + +msgid "Configure the secondary EPG language." +msgstr "Still inn andrevalg pÃ¥ EPG sprÃ¥k." + +msgid "Configure the sharpness of the video scaling." +msgstr "Still inn skarpheten pÃ¥ bildet." + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "Still inn hopptid for '1'/'3' knappene." + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "Still inn hopptid for '4'/'6' knappene." + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "Still inn hopptid for '7'/'9' knappene." + +msgid "Configure the slow motion speeds." +msgstr "Still inn hastighet for saktefilm." + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "Still inn hastighetsprosessen for bakgrunnssletting. Lavere hastighet vil bruke mindre disk ytelse." + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "Still inn forsinkelse pÃ¥ undertekst nÃ¥r tidtakingsinformasjon mangler." + +msgid "Configure the third audio language." +msgstr "Still inn tredjevalg pÃ¥ lyd sprÃ¥k." + +msgid "Configure the third subtitle language." +msgstr "Still inn tredjevalg pÃ¥ undertekst sprÃ¥k." + +msgid "Configure the transparency of the OSD." +msgstr "Still inn lysstyrken pÃ¥ skjermmeny." + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "Still inn sort-visningsnivÃ¥ pÃ¥ DVB undertekster." + +# +msgid "Configure the tuner mode." +msgstr "Still inn tunervalg." + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "Still inn hvordan avspillingsindikatoren skal vises i opptakslisten." + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "Still inn vertikal plassering av undertekster, mÃ¥lt fra bunnen av skjermen." + +msgid "Configure the video output mode (or resolution)." +msgstr "Velg videoutgang (eller oppløsning)." + +msgid "Configure the way in which the receiver changes channels." +msgstr "Still inn metoden mottakeren benytter mellom kanalskifte." + +msgid "Configure where completed timers show up in the timer list." +msgstr "Velg hvor fullførte tidtakere skal vises i tidtakerlisten." + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "Velg om (og hvor lenge) ekstra informasjonslinje skal vises nÃ¥r du trykker OK to ganger. Den ekstra informasjonslinjen inneholder tilleggsinformasjon om den aktuelle kanalen." + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "Velg om flerkanals lyd skal blandes til stereolyd." + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "Velg om et varsel skal vises nÃ¥r motorisert parabol er i bevegelse." + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "Velg tilgangsnivÃ¥et som skal brukes pÃ¥ meny oppsettet. Ekspert nivÃ¥ gir tilgang til alle elementer." + +msgid "Configure which color format should be used on the SCART output." +msgstr "Still inn fargeformatet som skal brukes pÃ¥ SCART-utgang." + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "Velg tuneren som skal foretrekkes nÃ¥r samme kanal er tilgjengelig pÃ¥ flere tunertyper." + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "Velg den tuneren som skal foretrekkes nÃ¥r flere tunere er tilgjengelige. Hvis satt til 'auto', vil systemet gi prioritet til den tuneren som har lavest antall kanaler/satellitter." + +# +msgid "Configure your internal LAN" +msgstr "Still inn ditt lokale LAN nettverk" + +# +msgid "Configure your network again" +msgstr "Still inn nettverket pÃ¥ nytt" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "Still inn nettverksinnstillingene, og trykk OK for Ã¥ starte søket" + +msgid "Configure your wireless LAN again" +msgstr "Still inn det trÃ¥dløse nettverket igjen" + +msgid "Configures which video output connector will be used." +msgstr "Velg videoutgang som skal brukes." + +# +msgid "Configuring" +msgstr "Stiller inn" + +# +msgid "Conflicting timer" +msgstr "Tidtakerkollisjon" + +# +msgid "Connect" +msgstr "Koble til" + +# +msgid "Connect to a wireless network" +msgstr "Koble til et trÃ¥dløst nettverk" + +msgid "Connected satellites" +msgstr "" + +# +msgid "Connected to" +msgstr "Koblet til" + +# +msgid "Connected!" +msgstr "Sammenkoblet!" + +# +msgid "Constellation" +msgstr "Konstellasjon" + +# +msgid "Content does not fit on DVD!" +msgstr "Innholdet passer ikke pÃ¥ DVD!" + +msgid "Continue" +msgstr "Fortsett" + +# +msgid "Continue in background" +msgstr "Fortsett i bakgrunnen" + +# +msgid "Continue playback" +msgstr "Fortsett avspillingen" + +# +msgid "Continue playing" +msgstr "Fortsett avspilling" + +msgid "Continues play (loop)" +msgstr "Fortsetter Ã¥ spille (om igjen)" + +# +msgid "Contrast" +msgstr "Kontrast" + +msgid "Convert ext3 filesystem to ext4" +msgstr "Konvertere ext3 filsystem til ext4" + +msgid "Convert ext3 to ext4" +msgstr "Konvertere ext3 til ext4" + +msgid "Converting ext3 to ext4..." +msgstr "Konverterer ext3 til ext4..." + +msgid "Copy" +msgstr "Kopi" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "Kunne ikke koble til mottakeren. NFI image feed server:" + +msgid "Could not find installed channel list." +msgstr "Kunne ikke finne kanallisten." + +msgid "Could not load medium! No disc inserted?" +msgstr "Kunne ikke laste medium! Ingen plate er satt inn?" + +msgid "Could not open Picture in Picture" +msgstr "Kunne ikke Ã¥pne bilde i bilde" + +#, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "Kunne ikke spille inn pÃ¥ grunn av motstridende tidtaker%s" + +#, python-format +msgid "Could not record due to invalid service %s" +msgstr "Kunne ikke spille inn pÃ¥ grunn av utilgjengelig kanal %s" + +# +msgid "Create DVD-ISO" +msgstr "Lag DVD-ISO" + +msgid "Create more detailed crash log" +msgstr "Lage mer detaljert krasj logg" + +#, python-format +msgid "Creating directory %s failed." +msgstr "Oppretter katalog %s mislyktes." + +# +msgid "Creating filesystem" +msgstr "Oppretter filsystem" + +msgid "Creating partition" +msgstr "Oppretter partisjon" + +# +msgid "Croatian" +msgstr "Kroatisk" + +msgid "Current CEC address" +msgstr "Gjeldende CEC adresse" + +msgid "Current device: " +msgstr "Gjeldende enhet:" + +msgid "Current event EPG" +msgstr "Aktuell EPG programoversikt" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +# +msgid "Current settings:" +msgstr "NÃ¥værende innstilling:" + +# +msgid "Current transponder" +msgstr "Gjeldende transponder" + +# +msgid "Current value: " +msgstr "Gjeldende verdi:" + +# +msgid "Current version:" +msgstr "Gjeldende versjon:" + +msgid "Currently installed image" +msgstr "Gjeldende installerte image" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +msgid "Custom skip time for '1'/'3' buttons" +msgstr "Egendefinert hopptid for '1'/'3'-knappene" + +msgid "Custom skip time for '4'/'6' buttons" +msgstr "Egendefinert hopptid for '4'/'6'-knappene" + +msgid "Custom skip time for '7'/'9' buttons" +msgstr "Egendefinert hopptid for '7'/'9'-knappene" + +# +msgid "Customize" +msgstr "Tilpasse" + +msgid "Customize channel list cursor behavior" +msgstr "" + +# +msgid "Cut" +msgstr "Klipp" + +# +msgid "Cutlist editor..." +msgstr "Klippliste editor..." + +# +msgid "Czech" +msgstr "Tjekkisk" + +# +msgid "D" +msgstr "" + +# +msgid "DHCP" +msgstr "" + +# +msgid "DMM advanced" +msgstr "DMM avansert" + +msgid "DMM normal" +msgstr "" + +# +msgid "DUAL LAYER DVD" +msgstr "To lags DVD" + +msgid "DVB subtitle black transparency" +msgstr "Sort-visningsnivÃ¥ for DVB undertekst" + +msgid "DVB-C" +msgstr "" + +msgid "DVB-C ANNEX C" +msgstr "DVB-C VEDLEGG C" + +# +msgid "DVB-S" +msgstr "" + +# +msgid "DVB-S2" +msgstr "" + +msgid "DVB-T" +msgstr "" + +msgid "DVB-T2" +msgstr "" + +msgid "DVD data format" +msgstr "" + +# +msgid "DVD file browser" +msgstr "DVD fil leser" + +# +msgid "DVD media toolbox" +msgstr "DVD medie verktøykasse" + +# +msgid "DVD player" +msgstr "DVD spiller" + +# +msgid "DVD titlelist" +msgstr "DVD navneliste" + +# +msgid "Danish" +msgstr "Dansk" + +# +msgid "Date" +msgstr "Dato" + +msgid "Date/time input" +msgstr "Still inn tid/dato" + +msgid "Deep standby" +msgstr "SlÃ¥ helt av" + +# +msgid "Default" +msgstr "Standard" + +msgid "Default movie location" +msgstr "Standard opptaksliste" + +# +msgid "Default settings" +msgstr "Standardinnstilling" + +msgid "Delay before key repeat starts:" +msgstr "Tidsforsinkelse før repeterende tast starter:" + +msgid "Delay for external subtitles" +msgstr "Forsinkelse for tekst-TV undertekst" + +# +msgid "Delete" +msgstr "Slette" + +# +msgid "Delete entry" +msgstr "Slette tidtaker" + +# +msgid "Delete failed!" +msgstr "Sletting feilet!" + +# +msgid "Delete file" +msgstr "Slette fil" + +# +msgid "Delete playlist entry" +msgstr "Slette oppføring i spilliste" + +# +msgid "Delete saved playlist" +msgstr "Slette lagret spilliste" + +msgid "Delete timer" +msgstr "" + +# +msgid "Delete..." +msgstr "Slette..." + +msgid "Deleted" +msgstr "Slettet" + +msgid "Deleted items" +msgstr "Slettede elementer" + +msgid "Depth" +msgstr "Dybde" + +msgid "Descramble http streams" +msgstr "Dekode http data" + +# +msgid "Description" +msgstr "Beskrivelse" + +# +msgid "Deselect" +msgstr "Angre" + +msgid "Details for plugin: " +msgstr "Programtillegg detaljer:" + +# +msgid "Detected HDD:" +msgstr "Gjenkjent lagring:" + +# +msgid "Detected NIMs:" +msgstr "Gjenkjent modul:" + +msgid "Devicename:" +msgstr "Enhetsnavn:" + +msgid "Devide" +msgstr "" + +msgid "DiSEqC" +msgstr "DiSEqC (Digital Satellite Equipment Control)" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +msgid "DiSEqC mode" +msgstr "DiSEqC type" + +#, python-format +msgid "DiSEqC port %s: %s" +msgstr "DiSEqC port %s: %s" + +msgid "DiSEqC-tester settings" +msgstr "DiSEqC testinnstilling" + +# +msgid "Dialing:" +msgstr "Ringer opp:" + +# +msgid "Digital contour removal" +msgstr "Fjerne digital støy" + +# +msgid "Direct playback of linked titles without menu" +msgstr "Direkte avspilling av navn pÃ¥ DVD'en, uten menybruk" + +msgid "Directory" +msgstr "katalog" + +#, python-format +msgid "Directory %s does not exist." +msgstr "Katalog %s finnes ikke." + +#, python-format +msgid "Directory %s nonexistent." +msgstr "Katalog %s ikke eksisterende." + +msgid "Directory browser" +msgstr "Søk i kataloger" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "Katalogen inneholder %d fil(er) og %d under-kataloger.\n" + +#, python-format +msgid "Directory contains %s and %s." +msgstr "Katalogen inneholder %s og %s." + +# +msgid "Disable" +msgstr "Deaktivere" + +msgid "Disable Picture in Picture" +msgstr "Stopp bilde i bilde funksjon" + +msgid "Disable background scanning" +msgstr "Deaktivere bakgrunnssøk" + +msgid "Disable timer" +msgstr "" + +# +msgid "Disabled" +msgstr "Deaktivert" + +# +msgid "Disconnect" +msgstr "Frakoble" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "Diskplass avsatt til opptak (i GB)" + +# +msgid "Display 16:9 content as" +msgstr "Vis 16:9 innhold som" + +# +msgid "Display 4:3 content as" +msgstr "Vis 4:3 innhold som" + +# +msgid "Display >16:9 content as" +msgstr "Vis 16:9 innhold som" + +msgid "Display and userinterface" +msgstr "Skjerm og oppsett" + +msgid "Display message before playing next movie" +msgstr "Vis melding før neste avspilling starter" + +msgid "Display setup" +msgstr "Frontpanel" + +# +msgid "Do not change" +msgstr "Ikke endre" + +# +msgid "Do not record" +msgstr "Ikke ta opp" + +# +msgid "Do nothing" +msgstr "Gjør ingenting" + +# +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Er du sikker pÃ¥ at du vil sjekke filsystemet?\n" +"Det kan ta veldig lang tid!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" +"Er du sikker pÃ¥ at du vil konvertere filsystemet?\n" +"Du kan ikke angre!" + +# +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Er du sikker pÃ¥ at du vil slette %s" + +# +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"Er du sikker pÃ¥ at du vil laste ned\n" +"dette programtillegg \"%s\"?" + +# +msgid "Do you really want to exit?" +msgstr "Er du sikker pÃ¥ at du vil avslutte?" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" +"Er du sikker pÃ¥ at du vil klargjøre enheten?\n" +"Alle data pÃ¥ disken vil gÃ¥ tapt!" + +# +#, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"Er du sikker pÃ¥ at du vil slette\n" +"dette programtillegg\"%s\"?" + +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Er du sikker pÃ¥ at du vil fjerne katalog%s fra disken?" + +# +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Er du sikker pÃ¥ at du vil fjerne bokmerket %s?" + +# +msgid "Do you want this?" +msgstr "Ønsker du dette?" + +# +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Vil du brenne denne samlingen pÃ¥l DVD?" + +msgid "Do you want to do a service scan?" +msgstr "Vil du gjøre et kanalsøk?" + +msgid "Do you want to do another manual service scan?" +msgstr "Vil du gjøre enda et manuelt kanalsøk?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "Vil du laste ned bildet til %s ?" + +# +msgid "Do you want to install a channel list?" +msgstr "Vil du legge til en kanalliste?" + +# +msgid "Do you want to install the package:\n" +msgstr "Vil du installerere pakken:\n" + +# +msgid "Do you want to play DVD in drive?" +msgstr "Vil du spille DVD?" + +# +msgid "Do you want to preview this DVD before burning?" +msgstr "Vil du forhÃ¥ndsvise denne DVD før brenning?" + +msgid "Do you want to reboot your receiver?" +msgstr "Vil du starte mottakeren pÃ¥ nytt?" + +# +msgid "Do you want to remove the package:\n" +msgstr "Vil du fjerne pakken:\n" + +# +msgid "Do you want to restore your settings?" +msgstr "Vil du gjenopprette dine innstillinger?" + +# +msgid "Do you want to resume this playback?" +msgstr "Vil du gjenoppta avspillingen ?" + +# +#, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Vil du oppdatere mottaker til %s?" + +msgid "Do you want to update your receiver?" +msgstr "Vil du oppdatere din mottaker?" + +# +msgid "Do you want to upgrade the package:\n" +msgstr "Vil du oppdatere pakken:\n" + +msgid "Don't stop current event but disable coming events" +msgstr "Ikke stopp nÃ¥værende program men slÃ¥ av neste program" + +# +#, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "Ferdig - Installert, oppdatert eller fjernet %d pakke (%s)" +msgstr[1] "Ferdig - Installert, oppdatert eller fjernet %d pakker (%s)" + +# +msgid "Download" +msgstr "Last ned" + +#, python-format +msgid "Download %s from server" +msgstr "Last ned %s fra server" + +msgid "Download .NFI-files for USB-flasher" +msgstr "Last ned .NFI-filer for USB-flasher" + +# +msgid "Download plugins" +msgstr "Last ned proramvaretillegg" + +# +msgid "Downloadable new plugins" +msgstr "Nye programtillegg til nedlasting" + +# +msgid "Downloadable plugins" +msgstr "Programtillegg til nedlasting" + +# +msgid "Downloading" +msgstr "Laster ned" + +# +msgid "Downloading plugin information. Please wait..." +msgstr "Henter informasjon om programtillegg. Vennligst vent..." + +msgid "Dutch" +msgstr "Nederlandsk" + +# +msgid "Dynamic contrast" +msgstr "Dynamisk kontrast" + +# +msgid "E" +msgstr "" + +msgid "EPG" +msgstr "" + +msgid "EPG language selection 1" +msgstr "EPG sprÃ¥kvalg 1" + +msgid "EPG language selection 2" +msgstr "EPG sprÃ¥kvalg 2" + +# +msgid "EPG selection" +msgstr "EPG valg" + +msgid "EPG settings" +msgstr "EPG innstilling" + +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "FEIL - kunne ikke søke (%s)!" + +# +msgid "East" +msgstr "Øst" + +msgid "East limit set" +msgstr "Sett øst grense" + +msgid "Edit" +msgstr "Endre" + +# +msgid "Edit DNS" +msgstr "Endre DNS" + +msgid "Edit bouquets list" +msgstr "Redigere kanallister" + +msgid "Edit chapters of current title" +msgstr "Redigere gjeldende navn i katalog" + +msgid "Edit services list" +msgstr "Redigere kanallister" + +msgid "Edit settings" +msgstr "Redigere innstillinger" + +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "Endre mottakerens navneserverinnstilling.\n" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "Endre mottakerens nettverksinnstilling.\n" + +msgid "Edit timer" +msgstr "" + +msgid "Edit title" +msgstr "Endre navn" + +msgid "Edit upgrade source url." +msgstr "Endre oppdateringens internettadresse." + +msgid "Education/Science/..." +msgstr "utdanning/vitenskap/..." + +# +msgid "Electronic Program Guide" +msgstr "Elektronisk Program Guide" + +# +msgid "Enable" +msgstr "Aktivere" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +# +msgid "Enable 5V for active antenna" +msgstr "Aktivere 5V for aktiv antenne" + +msgid "Enable EIT EPG" +msgstr "Aktivere EIT EPG" + +msgid "Enable MHW EPG" +msgstr "Aktivere MHW EPG" + +msgid "Enable Netmed EPG" +msgstr "Aktivere Netmed EPG" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "Aktivere ViaSat EPG" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +# +msgid "Enable bouquet selection in multi-EPG" +msgstr "Aktivere kanalliste utvalg i multi-EPG" + +msgid "Enable freesat EPG" +msgstr "Aktivere freesat EPG" + +# +msgid "Enable multiple bouquets" +msgstr "Aktivere flere kanallister" + +# +msgid "Enable parental control" +msgstr "Aktivere foreldrekontroll" + +msgid "Enable teletext caching" +msgstr "Aktivere tekst-TV lagring" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +# +msgid "Enabled" +msgstr "Aktivert" + +# +msgid "Encrypted: " +msgstr "Kryptert:" + +# +msgid "Encryption" +msgstr "Kryptering" + +# +msgid "Encryption key" +msgstr "Krypteringsnøkkel" + +# +msgid "Encryption key type" +msgstr "Krypteringsnøkkel type" + +# +msgid "Encryption:" +msgstr "Kryptering:" + +# +msgid "End time" +msgstr "Slutt tid" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "Sluttid til ignorering av inaktiv tidtaker" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +# +msgid "English" +msgstr "Engelsk" + +msgid "Enigma2 skin selector" +msgstr "Enigma2 skin velger" + +# +msgid "Enter main menu..." +msgstr "Ã…pne hovedmenyen" + +# +msgid "Enter pin code" +msgstr "Tast inn pin kode" + +# +msgid "Enter the service pin" +msgstr "Skriv inn kanal pin" + +msgid "Equal to" +msgstr "" + +# +msgid "Error" +msgstr "Feil" + +msgid "Error code" +msgstr "Feil kode" + +# +msgid "Error executing plugin" +msgstr "Feil under kjøring av programtillegg" + +# +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Feil: %s\n" +"Prøve pÃ¥ nytt?" + +# +msgid "Estonian" +msgstr "Estlandsk" + +msgid "Ethernet network interface" +msgstr "Ethernet nettverkskort" + +msgid "Event font size (relative to skin size)" +msgstr "Program- skriftstørrelse (i forhold til skin størrelse)" + +# +msgid "Event view" +msgstr "Programoversikt" + +# +msgid "Event view menu" +msgstr "Meny programoversikt" + +msgid "Everywhere" +msgstr "Overalt" + +# +msgid "Exceeds dual layer medium!" +msgstr "OvergÃ¥r to lags medium!" + +# +msgid "Execution finished!!" +msgstr "Utførelse ferdig!" + +# +msgid "Execution progress:" +msgstr "Utførelse pÃ¥gÃ¥r:" + +# +msgid "Exif" +msgstr "" + +# +msgid "Exit" +msgstr "Avslutte" + +msgid "Exit EPG" +msgstr "Avslutte EPG" + +# +msgid "Exit editor" +msgstr "Avslutte redigerer" + +msgid "Exit input device selection." +msgstr "Avslutte inndataenhet." + +# +msgid "Exit media player?" +msgstr "Avslutte mediespiller?" + +# +msgid "Exit mediaplayer" +msgstr "Avslutte mediespiller" + +msgid "Exit movie list" +msgstr "Avslutte opptaksliste" + +msgid "Exit movie player?" +msgstr "Avslutte mediespiller?" + +# +msgid "Exit nameserver configuration" +msgstr "Avslutte innstilling for navnetjener" + +# +msgid "Exit network interface list" +msgstr "Avslutte nettverksgrensesnitt" + +# +msgid "Exit network wizard" +msgstr "Avslutte nettverksveiviseren" + +# +msgid "Exit the wizard" +msgstr "Avslutte veiviseren" + +# +msgid "Expert" +msgstr "Ekspert" + +msgid "Extend sleeptimer 15 minutes" +msgstr "Utvide tidtakerlengde med 15 minutter" + +# +msgid "Extended Software" +msgstr "Utvidet programvare" + +# +msgid "Extended Software Plugin" +msgstr "Utvidet programvaretillegg" + +# +msgid "Extended network setup plugin..." +msgstr "Utvidet innstilling for nettverksoppsett..." + +# +msgid "Extended setup..." +msgstr "Utvidet oppsett..." + +# +msgid "Extensions" +msgstr "Utvidelser" + +# +msgid "Extensions management" +msgstr "Utvidelsessenter" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "Tekst-TV undertekstfarge" + +msgid "Extra motor options" +msgstr "" + +# +msgid "FEC" +msgstr "" + +msgid "FTA" +msgstr "" + +msgid "Factory reset" +msgstr "Gjenopprette mottaker" + +# +msgid "Failed" +msgstr "Feilet" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "Kunne ikke skrive til /tmp/positionersetup.log:" + +# +#, python-format +msgid "Fan %d" +msgstr "Vifte %d" + +# +#, python-format +msgid "Fan %d PWM" +msgstr "Vifte %d PWM" + +# +#, python-format +msgid "Fan %d voltage" +msgstr "Vifte %d spenning" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +# +msgid "Fast" +msgstr "Hurtig" + +msgid "Fast DiSEqC" +msgstr "Hurtig DiSEqC" + +msgid "Fast Scan" +msgstr "Hurtigsøk" + +msgid "Fast epoch" +msgstr "Hurtig epoch" + +# +msgid "Fast forward speeds" +msgstr "Framoverspolings hastigheter" + +# +msgid "Favourites" +msgstr "Favorittliste" + +msgid "File appears to be busy.\n" +msgstr "Filen ser ut til Ã¥ være opptatt.\n" + +msgid "Filesystem check" +msgstr "Sjekk av filsystem" + +msgid "Final position at" +msgstr "Siste posisjon ved" + +msgid "Final position at index" +msgstr "Siste posisjon i liste" + +msgid "Fine movement" +msgstr "Sakte bevegelse" + +msgid "Finetune" +msgstr "Fininnstilling" + +# +msgid "Finished" +msgstr "Ferdig" + +msgid "Finished configuring your network" +msgstr "Nettverksoppsettet er konfigurert" + +msgid "Finished restarting your network" +msgstr "Nettverket ble startet pÃ¥ nytt" + +# +msgid "Finnish" +msgstr "Finsk" + +msgid "Fixed" +msgstr "Løst" + +msgid "Flash" +msgstr "Flash" + +# +msgid "Flashing failed" +msgstr "Flashing feilet" + +msgid "Following tasks will be done after you press OK!" +msgstr "Følgende oppgaver vil bli utført etter at du trykker OK!" + +# +msgid "Format" +msgstr "Format" + +msgid "Forward volume keys" +msgstr "Volumtaster opp" + +# +msgid "Frame size in full view" +msgstr "Rammestørrelse i fullvisning" + +# +msgid "French" +msgstr "Fransk" + +# +msgid "Frequency" +msgstr "Frekvens" + +# +msgid "Frequency bands" +msgstr "FrekvensbÃ¥nd" + +msgid "Frequency scan step size(khz)" +msgstr "Frekvenssøking steg størrelse(khz)" + +# +msgid "Frequency steps" +msgstr "Frekvens steg" + +# +msgid "Frequency:" +msgstr "Frekvens:" + +# +msgid "Fri" +msgstr "Fre" + +# +msgid "Friday" +msgstr "Fredag" + +msgid "From :" +msgstr "Fra:" + +# +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Frontprosessor versjon: %d" + +msgid "Full transparency" +msgstr "Maksimal gjennomsiktighet" + +msgid "Fulview resulution" +msgstr "Fullskjermsoppløsning" + +msgid "Function of OK button" +msgstr "Funksjon for OK knapp" + +msgid "Further Options" +msgstr "" + +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"GUI skal startes pÃ¥ nytt for aktivering av nytt skin\n" +"Vil du starte pÃ¥ nytt nÃ¥?" + +# +msgid "Gateway" +msgstr "Gateway" + +msgid "General AC3 delay" +msgstr "AC3 forsinkelse" + +msgid "General PCM delay" +msgstr "PCM forsinkelse" + +# +msgid "Genre" +msgstr "Sjanger" + +# +msgid "German" +msgstr "Tysk" + +msgid "Get latest experimental image" +msgstr "Hente det siste eksperimentelle image" + +msgid "Get latest release image" +msgstr "Hente det nyeste image" + +# +msgid "Getting plugin information. Please wait..." +msgstr "Henter informasjon om programtillegg. Vennligst vent..." + +msgid "Go down the list" +msgstr "GÃ¥ nedover listen" + +msgid "Go to first movie or last item" +msgstr "GÃ¥ til første film eller siste opptak" + +msgid "Go to first movie or top of list" +msgstr "GÃ¥ til første opptak eller øverst pÃ¥ listen" + +# +msgid "Go to first service" +msgstr "GÃ¥ til første kanal" + +# +msgid "Go to last service" +msgstr "GÃ¥ til siste kanal" + +msgid "Go to next event" +msgstr "GÃ¥ til neste program" + +# +msgid "Go to next page of service" +msgstr "GÃ¥ til neste kanal side" + +# +msgid "Go to previous event" +msgstr "GÃ¥ til forrige program" + +# +msgid "Go to previous page of service" +msgstr "GÃ¥ til forrige kanal side" + +msgid "Go up the list" +msgstr "GÃ¥ oppover listen" + +msgid "Goto" +msgstr "Valg" + +# +msgid "Goto 0" +msgstr "GÃ¥ til 0" + +msgid "Goto :" +msgstr "GÃ¥ til :" + +msgid "Goto X" +msgstr "GÃ¥ til X" + +msgid "Goto index position" +msgstr "GÃ¥ til startposisjon" + +msgid "Goto next day of events" +msgstr "GÃ¥ til neste dags program" + +msgid "Goto next page of events" +msgstr "GÃ¥ til neste programside" + +# +msgid "Goto position" +msgstr "GÃ¥ til posisjon" + +msgid "Goto previous day of events" +msgstr "GÃ¥ til forrige dags program" + +msgid "Goto previous page of events" +msgstr "GÃ¥ til forrige programside" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "GÃ¥ til X kalibrering" + +msgid "GraphMultiEpg Settings" +msgstr "Grafisk multi EPG innstilling" + +# +msgid "Graphical Multi EPG" +msgstr "Grafisk multi EPG" + +# +msgid "Greek" +msgstr "Gresk" + +# +msgid "Green boost" +msgstr "Green boost" + +msgid "Guard interval" +msgstr "Guard interval" + +msgid "HD list" +msgstr "HD liste" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "HÃ¥ndtere 'slÃ¥ av' fra TV" + +msgid "Handle wakeup from TV" +msgstr "HÃ¥ndtere 'oppvÃ¥kning' fra TV" + +msgid "Hard disk" +msgstr "Disk" + +msgid "Hard disk setup" +msgstr "Disk oppsett" + +msgid "Hard disk standby after" +msgstr "SlÃ¥ av disk etter" + +msgid "Harddisk" +msgstr "Disk" + +msgid "Hardware: " +msgstr "Maskinvare:" + +msgid "Hebrew" +msgstr "Hebraisk" + +msgid "Helps setting up your dish" +msgstr "Hjelper til med ditt paraboloppsett" + +msgid "Hidden network" +msgstr "Skjult nettverk" + +msgid "Hide CI messages" +msgstr "Skjul CI beskjeder" + +msgid "Hide channel list in radio mode" +msgstr "Skjul kanalliste i radiomodus" + +# +msgid "Hide known extensions" +msgstr "Skjul kjente utvidelser" + +msgid "Hide number markers" +msgstr "Skjul nummermarkører" + +# +msgid "Hide player" +msgstr "Skjul spiller" + +msgid "Hide zap errors" +msgstr "Skjul hopp feil" + +msgid "Hierarchy info" +msgstr "Hierarki info" + +# +msgid "Hierarchy information" +msgstr "Hierarki informasjon" + +# +msgid "High bitrate support" +msgstr "Høy bitrate støtte" + +msgid "Hold screen" +msgstr "Hold skjermen" + +msgid "Hold till locked" +msgstr "Hold til lÃ¥st" + +msgid "Home" +msgstr "Hjem" + +# +msgid "Horizontal" +msgstr "Horisontal" + +msgid "Horizontal turning speed" +msgstr "Horisontal dreiehastighet" + +# +msgid "How many minutes do you want to record?" +msgstr "Hvor mange minutter vil du ta opp?" + +# +msgid "Hue" +msgstr "Fargetone" + +# +msgid "Hungarian" +msgstr "Ungarsk" + +# +msgid "IP address" +msgstr "IP adresse" + +# +msgid "ISO file is too large for this filesystem!" +msgstr "ISO-fil er for stor til dette filsystemet!" + +# +msgid "ISO path" +msgstr "ISO bane" + +msgid "Icons" +msgstr "Varsler" + +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"Hvis du ser dette, er det noe galt med\n" +"din scart forbindelse. Trykk OK for Ã¥ gÃ¥ tilbake." + +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"Hvis din TV har lysstyrke eller kontrastforbedring anbefales denne avslÃ¥tt. Finnes en 'dynamisk' innstilling anbefales denne satt til standard. Juster baklys nivÃ¥et til en innstilling som ser bra ut og bruk sÃ¥ lite kontrast som mulig.\n" +"Sett lysstyrken sÃ¥ lavt som mulig, men pass pÃ¥ at de to laveste grÃ¥ nivÃ¥ene kan skilles.\n" +"Ikke ta hensyn til de lyse nivÃ¥ene. De blir justert i neste trinn.\n" +"Trykk OK nÃ¥r du er ferdig." + +msgid "Image: " +msgstr "Image:" + +msgid "Immediate shutdown" +msgstr "SlÃ¥ helt av" + +# +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "Et tidtakeropptak startet og TV kanalen skiftet over til opptaket!\n" + +# +msgid "In progress" +msgstr "PÃ¥gÃ¥r" + +msgid "Inactivity Sleeptimer" +msgstr "Inaktivitets tidtaker" + +msgid "Include AIT in http streams" +msgstr "Inkludere AIT i http dataprotokoll" + +msgid "Include ECM in http streams" +msgstr "Inkludere ECM i http dataprotokoll" + +msgid "Include EIT in http streams" +msgstr "Inkludere EIT i http dataprotokoll" + +msgid "Incorrect type service for PiP!" +msgstr "" + +# +msgid "Increased voltage" +msgstr "Økt spenning" + +# +msgid "Index" +msgstr "Innholdsfortegnelse" + +msgid "Index allocated:" +msgstr "Innholdsfortegnelse tildelt:" + +# +msgid "Info" +msgstr "Info" + +# +msgid "Info bar" +msgstr "Informasjonslinje" + +# +msgid "Info bar timeout" +msgstr "Tidsavbrudd pÃ¥ informasjonslinje" + +msgid "Infobar frontend data source" +msgstr "" + +# +msgid "Information" +msgstr "Informasjon" + +# +msgid "Init" +msgstr "Igangsette" + +# +msgid "Initial fast forward speed" +msgstr "Hurtigspoling framover" + +# +msgid "Initial location in new timers" +msgstr "Plassering av nye tidtakere" + +msgid "Initial lock ratio" +msgstr "NÃ¥værende lÃ¥se forhold" + +# +msgid "Initial rewind speed" +msgstr "Hurtigspoling bakover" + +msgid "Initial signal quality" +msgstr "NÃ¥værende signal kvalitet" + +msgid "Initial signal quality:" +msgstr "NÃ¥værende signal kvalitet:" + +# +msgid "Initialization" +msgstr "Diskoppstarting" + +# +msgid "Initialize" +msgstr "Igangkjøre" + +msgid "Initializing storage device..." +msgstr "Igangkjører lagringsenhet ..." + +# +msgid "Input" +msgstr "Inngang" + +msgid "Input device setup" +msgstr "Inndata oppsett" + +msgid "Input devices" +msgstr "Mottaker enheter" + +# +msgid "Install" +msgstr "Installere" + +# +msgid "Install a new image with a USB stick" +msgstr "Installere et nytt image ved hjelp av en USB pinne" + +# +msgid "Install a new image with your web browser" +msgstr "Installere et nytt image ved hjelp av din nettleser" + +# +msgid "Install channel list" +msgstr "Installere kanalliste" + +msgid "Install extensions" +msgstr "" + +# +msgid "Install extensions." +msgstr "Installere utvidelser." + +# +msgid "Install local extension" +msgstr "Installere lokal utvidelse" + +msgid "Install picons on" +msgstr "Installere picons pÃ¥" + +# +msgid "Install softcam" +msgstr "Installere softcam" + +msgid "Installation has completed." +msgstr "Installasjonen er ferdig" + +msgid "Installation or removal has completed." +msgstr "Installasjonen/avinstalleringen er ferdig." + +# +msgid "Installing" +msgstr "Installerer" + +# +msgid "Installing software..." +msgstr "Installerer programvare..." + +# +msgid "Instant recording location" +msgstr "Plassering for direkteopptak" + +# +msgid "Instant recording..." +msgstr "Direkte opptak..." + +# +msgid "Interface: " +msgstr "Grensesnitt:" + +# +msgid "Intermediate" +msgstr "MellomnivÃ¥" + +# +msgid "Internal flash" +msgstr "Internt flash" + +msgid "Internal hdd only" +msgstr "Bare for intern hdd/ssd" + +msgid "Interval between keys when repeating:" +msgstr "Tidsintervall mellom repeterende tastetrykk" + +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Ugyldig katalog valgt:%s" + +# +msgid "Invalid location" +msgstr "Ugyldig plassering" + +msgid "Invalid transponder data" +msgstr "" + +msgid "Inversion" +msgstr "Krenging" + +msgid "Invert" +msgstr "Vend" + +# +msgid "Ipkg" +msgstr "" + +msgid "Is this setting ok?" +msgstr "Er denne innstilling OK?" + +# +msgid "Is this video mode ok?" +msgstr "Er denne videoinnstilling OK?" + +# +msgid "Italian" +msgstr "Italiensk" + +msgid "Items per page " +msgstr "Kanaler pr. side" + +msgid "Items per page for list screen" +msgstr "Kanaler pr. side pÃ¥ skjermmeny" + +# +msgid "Job overview" +msgstr "Arbeidsoversikt" + +msgid "Jump to beginning of list" +msgstr "GÃ¥ til begynnelse av listen" + +# +msgid "Jump to end of list" +msgstr "GÃ¥ til slutten av listen" + +# +msgid "Jump to next marked position" +msgstr "GÃ¥ til neste markerte posisjon" + +# +msgid "Jump to previous marked position" +msgstr "GÃ¥ til forrige markerte posisjon" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +msgid "Just scale" +msgstr "Bare skalere" + +msgid "Keep service" +msgstr "" + +# +msgid "Kernel version: " +msgstr "Linuxkjerne versjon: " + +# +msgid "Keyboard" +msgstr "Tastatur" + +# +msgid "Keyboard map" +msgstr "TastatursprÃ¥k" + +# +msgid "Keyboard setup" +msgstr "Tastaturoppsett" + +# +msgid "LAN adapter" +msgstr "LAN adapter" + +msgid "LAN connection" +msgstr "LAN oppkobling" + +# +msgid "LNB" +msgstr "" + +# +msgid "Language" +msgstr "SprÃ¥k" + +# +msgid "Language selection" +msgstr "SprÃ¥kvalg" + +# +msgid "Last config" +msgstr "Siste innstilling" + +# +msgid "Last speed" +msgstr "Siste hastighet" + +msgid "Last upgrade: " +msgstr "Siste oppdatering:" + +msgid "Latest Commits" +msgstr "" + +# +msgid "Latitude" +msgstr "Breddegrad" + +# +msgid "Latvian" +msgstr "Latvisk" + +# +msgid "Leave DVD player?" +msgstr "Avslutte DVD spiller?" + +# +msgid "Left" +msgstr "Venstre" + +# +msgid "Left from servicename" +msgstr "Venstre for kanalnavn" + +msgid "Leisure hobbies" +msgstr "fritidssysler" + +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Brevformat" + +msgid "Letterbox zoom" +msgstr "Letterbox forstørrelse" + +msgid "Limit character set for recording filenames" +msgstr "Begrense antall tegn pÃ¥ opptaksnavn" + +# +msgid "Limit east" +msgstr "Østgrense" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "Begrense antall tegn som skal brukes i opptaksnavn til (7 bit) ascii. Dette sikrer kompatibilitet med operativsystem eller filsystemer med begrenset antall tegnsett." + +# +msgid "Limit west" +msgstr "Vestgrense" + +msgid "Limits cancelled" +msgstr "Grenser kansellert" + +msgid "Limits enabled" +msgstr "Grenser aktivert" + +# +msgid "Limits off" +msgstr "Grenser av" + +# +msgid "Limits on" +msgstr "Grenser pÃ¥" + +msgid "Link quality:" +msgstr "Signalstyrke:" + +# +msgid "Link:" +msgstr "Signal:" + +# +msgid "Linked titles with a DVD menu" +msgstr "Koblede navn med en DVD-meny" + +msgid "List EPG functions..." +msgstr "Vis EPG funksjoner..." + +msgid "List available networks" +msgstr "Vis tilgjengelige nettverk" + +msgid "List mode" +msgstr "Vis liste" + +# +msgid "List of storage devices" +msgstr "Liste over lagringsenheter" + +msgid "List type" +msgstr "Vis type" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "Vis versjon %d, funnet %d kanal" +msgstr[1] "Vis versjon %d, funnet %d kanaler" + +# +msgid "Listen to the radio..." +msgstr "Lytte til radio..." + +msgid "Lists reloaded!" +msgstr "" + +# +msgid "Lithuanian" +msgstr "Litauisk" + +# +msgid "Load" +msgstr "Last inn" + +msgid "Load Length of Movies in Movielist" +msgstr "Vis opptakslengde i listen" + +msgid "Load length of movies in movie list" +msgstr "Last inn opptakslengden i opptaksliste" + +# +msgid "Load playlist" +msgstr "Last inn spilliste" + +# +msgid "Local network" +msgstr "Lokalt nettverk" + +# +msgid "Location" +msgstr "Plassering" + +# +msgid "Location for instant recordings" +msgstr "Plassering for direkte opptak" + +msgid "Lock ratio" +msgstr "LÃ¥sforhold" + +# +msgid "Lock:" +msgstr "LÃ¥s:" + +msgid "Log results to harddisk" +msgstr "Lagre resultatene til hdd/ssd" + +msgid "Long filenames" +msgstr "Lange filnavn" + +# +msgid "Long key press" +msgstr "Langt tastetrykk" + +# +msgid "Longitude" +msgstr "Lengdegrad" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "Luxemburgsk" + +# +msgid "MMC card" +msgstr "MMC kort" + +# +msgid "MORE" +msgstr "" + +# +msgid "Main menu" +msgstr "Hovedmeny" + +msgid "Maintain old EPG data for" +msgstr "Oppretthold gamle EPG data i" + +# +msgid "Make this mark an 'in' point" +msgstr "Gjør denne markør til et 'inn' punkt" + +# +msgid "Make this mark an 'out' point" +msgstr "Gjør denne markør til et 'ut' punkt" + +# +msgid "Make this mark just a mark" +msgstr "Gjør dette merke til bare et merke" + +# +msgid "Manage extensions" +msgstr "Administrer utvidelser" + +# +msgid "Manage your receiver's software" +msgstr "Administrer din mottakers programvare" + +msgid "Manual" +msgstr "" + +msgid "Manual Scan" +msgstr "Manuelt søk" + +msgid "Manual configuration" +msgstr "Manuell innstilling" + +msgid "Manual scan" +msgstr "Manuelt søk" + +# +msgid "Manual transponder" +msgstr "Manuell transponder" + +# +msgid "Manufacturer" +msgstr "Produsent" + +# +msgid "Margin after recording (minutes)" +msgstr "Stopptid etter opptak (minutter)" + +# +msgid "Margin before recording (minutes)" +msgstr "Starttid før opptak (minutter)" + +msgid "Max memory positions" +msgstr "" + +msgid "Max. bitrate: " +msgstr "Maksimal bithastighet:" + +# +msgid "Media player" +msgstr "Mediespiller" + +msgid "Media scanner" +msgstr "Mediesøker" + +# +msgid "Medium is not a writeable DVD!" +msgstr "Mediet er en ikke skrivbar DVD!" + +# +msgid "Medium is not empty!" +msgstr "Mediet er ikke tomt!" + +msgid "Memory" +msgstr "Minne" + +msgid "Memory index" +msgstr "Minne oversikt" + +msgid "Menu" +msgstr "Meny" + +msgid "Message" +msgstr "Beskjed" + +msgid "Message..." +msgstr "Beskjed..." + +#, python-format +msgid "Minimum age %d years" +msgstr "Minimumsalder %d Ã¥r" + +msgid "Minimum send interval" +msgstr "Minimum sendingsintervall" + +msgid "Missing " +msgstr "Savnet" + +# +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Type" + +# +msgctxt "Video output mode" +msgid "Mode" +msgstr "Type" + +# +msgid "Model: " +msgstr "Modell:" + +# +msgid "Modulation" +msgstr "Modulasjon" + +# +msgid "Modulator" +msgstr "Modulator" + +# +msgid "Mon" +msgstr "Man" + +# +msgid "Mon-Fri" +msgstr "Man-Fre" + +# +msgid "Monday" +msgstr "Mandag" + +# +msgid "Mosquito noise reduction" +msgstr "Moskito- støyreduksjon" + +msgid "Mount" +msgstr "Montere" + +msgid "Move" +msgstr "Kjøre" + +# +msgid "Move PiP to main picture" +msgstr "Flytt PiP (bilde i bilde) til hovedvindu" + +# +msgid "Move Picture in Picture" +msgstr "Flytt Bilde i Bilde" + +# +msgid "Move east" +msgstr "Kjør østover" + +msgid "Move to other directory" +msgstr "Flytt til annen katalog" + +msgid "Move to position X" +msgstr "Flyttet til posisjon X" + +# +msgid "Move west" +msgstr "Kjør vestover" + +msgid "Moved to position 0" +msgstr "Flyttet til posisjon 0" + +msgid "Moved to position at index" +msgstr "Flyttet til startposisjon" + +msgid "Movement" +msgstr "Bevegelse" + +msgid "Movie List Configuration" +msgstr "Innstilling for opptaksliste" + +msgid "Movie Selection" +msgstr "Opptaksvalg" + +msgid "Movie list configuration" +msgstr "Innstilling for opptaksliste" + +msgid "Movie location" +msgstr "Plassering av opptak" + +msgid "Movie selection" +msgstr "Opptaksvalg" + +msgid "Movie/Drama" +msgstr "film/drama" + +msgid "Movielist menu" +msgstr "Opptaksliste" + +msgid "Moving" +msgstr "Kjører" + +msgid "Moving east ..." +msgstr "Kjører østover..." + +msgid "Moving to position" +msgstr "Kjører til posisjon" + +msgid "Moving west ..." +msgstr "Kjører vestover..." + +# +msgid "Multi EPG" +msgstr "Fullstendig EPG" + +msgid "Multi-EPG bouquet selection" +msgstr "Fullstendig EPG kanallisteutvalg" + +# +msgid "Multimedia" +msgstr "" + +# +msgid "Multiple service support" +msgstr "Flerkanal støtte" + +msgid "Multiplex" +msgstr "Multiplex" + +# +msgid "Multisat" +msgstr "Multisat" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "musikk/ballett/dans" + +# +msgid "Mute" +msgstr "Demp" + +msgid "N/A" +msgstr "N/A" + +# +msgid "NEXT" +msgstr "NESTE" + +msgid "NFI image flashing" +msgstr "NFI image flashing" + +# +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "NFI image flashing er ferdig. Trykk Gul knapp for Ã¥ starte pÃ¥ nytt!" + +msgid "NIM" +msgstr "Tuner" + +# +msgid "NOW" +msgstr "NÃ…" + +# +msgid "NTSC" +msgstr "NTSC" + +# +msgid "Name" +msgstr "Navn" + +# +msgid "Nameserver" +msgstr "Navneserver" + +# +#, python-format +msgid "Nameserver %d" +msgstr "Navneserver %d" + +# +msgid "Nameserver settings" +msgstr "Navneserver innstillinger" + +# +msgid "Nameserver setup" +msgstr "Oppsett for navneserver" + +msgid "Namespace" +msgstr "NavneomrÃ¥de" + +# +msgid "Netmask" +msgstr "Nettverksmaske" + +# +msgid "Network" +msgstr "Nettverk" + +msgid "Network ID" +msgstr "Nettverks ID" + +# +msgid "Network configuration..." +msgstr "Nettverksinnstilling..." + +# +msgid "Network mount" +msgstr "Nettverks mount" + +# +#, python-format +msgid "Network mount %s" +msgstr "Nettverks mount %s" + +msgid "Network name (SSID)" +msgstr "Nettverksnavn (SSID)" + +msgid "Network scan" +msgstr "Nettverkssøk" + +# +msgid "Network setup" +msgstr "Nettverksinstillinger" + +# +msgid "Network test" +msgstr "Nettverkstest" + +# +msgid "Network test..." +msgstr "Nettverkstest..." + +msgid "Network test: " +msgstr "Nettverkstest:" + +# +msgid "Network wizard" +msgstr "Nettverksveiviser" + +# +msgid "Network:" +msgstr "Nettverk:" + +# +msgid "New" +msgstr "Ny" + +msgid "New PIN" +msgstr "Ny PIN" + +# +msgid "New version:" +msgstr "Ny versjon:" + +msgid "News Current Affairs" +msgstr "Nyheter aktuelle saker" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "Neste" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "Neste" + +# +msgid "No" +msgstr "Nei" + +# +msgid "No (supported) DVDROM found!" +msgstr "Ingen (støttet) DVD-ROM funnet!" + +# +msgid "No Connection" +msgstr "Ingen forbindelse" + +msgid "No HDD found or HDD not initialized!" +msgstr "" +"Ingen hdd/ssd er funnet eller\n" +"hdd/ssd er ikke klargjort!" + +# +msgid "No backup needed" +msgstr "Ingen sikkerhetskopi er nødvendig" + +msgid "No cable tuner found!" +msgstr "Ingen kabel-TV tuner er funnet!" + +# +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Ingen data pÃ¥ transponder!\n" +"(Tidsavbrudd ved lesing av PAT)" + +msgid "No delay" +msgstr "Ingen forsinkelse" + +# +msgid "No description available." +msgstr "Ingen forklaring er tilgjengelig." + +# +msgid "No details for this image file" +msgstr "Ingen detaljer for denne bilde fil" + +# +msgid "No displayable files on this medium found!" +msgstr "Ingen visbare filer pÃ¥ dette mediet funnet!" + +# +msgid "No event info found, recording indefinitely." +msgstr "Ingen kanalinfo er funnet, innspiller pÃ¥ ubestemt tid." + +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "Ingen hurtigspoling er mulig nÃ¥ .. men du kan bruke talltastene til Ã¥ hoppe framover/bakover!" + +msgid "No free index available" +msgstr "Ingen innholdsfortegnelse er tilgjengelig" + +# +msgid "No free tuner!" +msgstr "Ingen ledig tuner!" + +# +msgid "No network connection available." +msgstr "Ingen nettverksforbindelse er tilgjengelig." + +# +msgid "No networks found" +msgstr "Ingen nettverk ble funnet" + +# +msgid "No new plugins found" +msgstr "Ingen nye programtillegg ble funnet" + +# +msgid "No positioner capable frontend found." +msgstr "Ingen brukbar posisjon ble funnet." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +# +msgid "No service" +msgstr "Ingen service" + +msgid "No services/providers selected" +msgstr "Ingen kanaler/leverandører er valgt" + +# +msgid "No standby" +msgstr "Ingen standby" + +msgid "No suitable sat tuner found!" +msgstr "Ingen passende sat tuner ble funnet!" + +msgid "No tags are set on these movies." +msgstr "Ingen tagger er satt pÃ¥ disse opptakene." + +# +msgid "No timeout" +msgstr "Ingen tidsavbrudd" + +# +msgid "No to all" +msgstr "Nei til alle" + +msgid "No transparency" +msgstr "Ingen gjennomsiktighet" + +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "Ingen tuner er satt opp til bruk av DiSEqC motor!" + +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Ingen tuner er aktivert!\n" +"Vennligst still inn tuner før du starter kanalsøk." + +msgid "No updates available" +msgstr "Det finnes ingen nye oppdateringer" + +msgid "No updates available. Please try again later." +msgstr "Det finnes ingen nye oppdateringer. Vennligst prøv igjen senere." + +# +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Ingen gyldig PIN kode ble funnet!\n" +"Vil du endre kanal PIN nÃ¥?\n" +"Velger du 'Nei' vil kanal beskyttelsen være deaktivert!" + +# +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Ingen gyldig PIN kode ble funnet!\n" +"Vil du endre PIN kode nÃ¥?\n" +"Velger du 'Nei' vil oppsetts beskyttelsen være deaktivert!" + +msgid "No wireless networks found! Searching..." +msgstr "Ingen trÃ¥dløse nettverk ble funnet! Søker..." + +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"Finner ikke noe nettverkskort.\n" +"Kontroller at du har tilkoblet en nettverkskabel og at alt er riktig innstilt." + +# +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"Finner ikke noe trÃ¥dløst nettverkskort.\n" +"Kontroller at du har tilkoblet en kompatibel WLAN-enhet og at nettverket er satt opp riktig." + +# +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"Finner ikke noe trÃ¥dløst nettverkskort.\n" +" Kontroller at du har tilkoblet en kompatibel WLAN-enhet eller aktiver ditt lokale nettverkskort." + +msgid "No, but restart from begin" +msgstr "Nei, men start pÃ¥ nytt" + +# +msgid "No, do nothing." +msgstr "Nei, gjør ingenting" + +msgid "No, just start my receiver" +msgstr "Nei, bare start min mottaker" + +msgid "No, never" +msgstr "Nei, aldri" + +# +msgid "None" +msgstr "Ingen" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Ikke lineær" + +msgid "Normal mode" +msgstr "Normal type" + +# +msgid "North" +msgstr "Nord" + +# +msgid "Norwegian" +msgstr "Norsk" + +msgid "Not associated" +msgstr "Ikke tilknyttet" + +msgid "Not configured" +msgstr "" + +#, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Ikke nok diskplass. Vennligst frigjør litt diskplass og prøv pÃ¥ nytt. (%d MB nødvendig, %d MB tilgjengelig)" + +msgid "Nothing connected" +msgstr "" + +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Ikke noe Ã¥ søke!\n" +"Vennligst still inn tuner før søking etter kanaler." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "NÃ¥" + +# +msgid "Now playing" +msgstr "NÃ¥ spilles" + +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Bruk kontrastinstillningen pÃ¥ din TV for Ã¥ justere opp lysstyrken sÃ¥ mye som mulig. Pass pÃ¥ at du fortsatt kan skille mellom de to lyseste skyggenivÃ¥ene. Trykk OK nÃ¥r du er ferdig." + +# +msgid "OK" +msgstr "" + +msgid "OK, guide me through the upgrade process" +msgstr "OK, ta meg gjennom oppdateringsprosessen" + +msgid "ONID" +msgstr "" + +msgid "OSD name request" +msgstr "OSD navn forespørsel" + +# +msgid "OSD settings" +msgstr "OSD instillinger" + +msgid "OSD transparency" +msgstr "OSD visning" + +# +msgid "Off" +msgstr "Av" + +msgid "Offline decode delay (ms)" +msgstr "Frakoblet dekodingsforsinkelse (ms)" + +msgid "Ok" +msgstr "" + +# +msgid "On" +msgstr "PÃ¥" + +msgid "On end of movie" +msgstr "PÃ¥ slutten av filmen" + +msgid "On end of movie (as menu)" +msgstr "" + +# +msgid "One" +msgstr "En" + +# +msgid "Only extensions." +msgstr "Bare utvidelser." + +msgid "Only free scan" +msgstr "Bare søk etter gratis kanaler" + +# +msgid "Open service list" +msgstr "Ã…pne kanallisten" + +msgid "Open the movie list" +msgstr "Ã…pne spillisten" + +msgid "Orbital position" +msgstr "Baneposisjon" + +msgid "Original" +msgstr "Original" + +msgid "Other" +msgstr "Annen" + +msgid "Output" +msgstr "Utgang" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "Overskrive konfigurerte filer under programvareoppdateringen?" + +# +msgid "Overwrite configuration files?" +msgstr "Overskrive innstilte filer?" + +# +msgid "PAL" +msgstr "" + +msgid "PCR PID" +msgstr "" + +# +msgid "PIDs" +msgstr "" + +# +msgid "PIN code needed" +msgstr "PIN-kode er nødvendig" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "" + +# +msgid "Package list update" +msgstr "Oppdaterer programvare" + +msgid "Packet management" +msgstr "Velg programpakker" + +msgid "Packet manager" +msgstr "Pakkeforvalter" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +msgid "Pan&scan" +msgstr "" + +msgid "Parent directory" +msgstr "Overordnet katalog" + +# +msgid "Parental control" +msgstr "Foreldrekontroll" + +# +msgid "Parental control services editor" +msgstr "Foreldrekontroll og kanalinnstillinger" + +# +msgid "Parental control setup" +msgstr "Foreldrekontroll oppsett" + +# +msgid "Parental control type" +msgstr "Foreldrekontroll type" + +# +msgid "Password" +msgstr "Passord" + +# +msgid "Pause" +msgstr "" + +msgid "Pause movie at end" +msgstr "Stopp opptak ved slutt" + +# +msgid "Pause playback" +msgstr "Pause avspilling" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "Prosent venstre" + +# +msgid "Percentage right" +msgstr "Prosent høyre" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "Permanent slette alle opptak som ligger i papirkurven?" + +msgid "Permanently remove all deleted items" +msgstr "Permanent fjerne alle slettede elementer" + +msgid "Persian" +msgstr "Persisk" + +# +msgid "Phone number" +msgstr "Tlf. nr." + +# +msgid "PiP setup" +msgstr "PiP-bilde i bilde oppsett" + +msgid "Picon" +msgstr "" + +msgid "Picon and service name" +msgstr "Picon og kanal navn" + +# +msgid "Picture player" +msgstr "Bildeviser" + +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Sorte kanter" + +# +msgid "Pilot" +msgstr "" + +# +msgid "Play" +msgstr "Spille av" + +# +msgid "Play DVD" +msgstr "Spille DVD" + +msgid "Play audio in background" +msgstr "Spille av lyd i bakgrunnen" + +msgid "Play audio-CD..." +msgstr "Spille av lyd CD..." + +msgid "Play back media files" +msgstr "Spille av mediefiler" + +# +msgid "Play entry" +msgstr "Spilloppføring" + +# +msgid "Play from next mark or playlist entry" +msgstr "Spille fra neste markør i spilliste" + +# +msgid "Play from previous mark or playlist entry" +msgstr "Spille fra siste markør i spilliste" + +msgid "Play music..." +msgstr "Spille musikk..." + +msgid "Play next" +msgstr "Spille neste" + +msgid "Play next (return to movie list)" +msgstr "Spille neste (gÃ¥ tilbake til spilliste)" + +msgid "Play next (return to previous service)" +msgstr "Spille neste (gÃ¥ tilbake til siste kanal)" + +msgid "Play previous" +msgstr "Spille siste" + +msgid "Play recorded movies..." +msgstr "Spille av opptak..." + +# +msgid "Please add titles to the compilation." +msgstr "Vennligst legg til navn i samlingen." + +# +msgid "Please change recording endtime" +msgstr "Vennligst endre sluttid for opptak" + +# +msgid "Please check your network settings!" +msgstr "Vennligst kontroller nettverksinnstillingene!" + +# +msgid "Please choose an extension..." +msgstr "Vennligst velg en utvidelse" + +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Vennligst skriv inn nødvendig informasjon for dine navnetjenere.\n" +"NÃ¥r du er klar, trykk OK for Ã¥ fortsette." + +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Vennligst skriv inn nødvendig informasjon for internett-oppkoblingen.\n" +"NÃ¥r du er klar, trykk OK for Ã¥ fortsette." + +msgid "Please connect your receiver to the internet" +msgstr "Vennligst, koble mottakeren til internett" + +# +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Vennligst ikke endre verdier, hvis du ikke vet hva du gjør!" + +# +msgid "Please enter a name for the new bouquet" +msgstr "Vennligst skriv et navn pÃ¥ den nye kanalliste" + +# +msgid "Please enter a name for the new marker" +msgstr "Vennligst skriv navn for den nye markøren" + +# +msgid "Please enter a new filename" +msgstr "Vennligst skriv et nytt filnavn" + +# +msgid "Please enter filename (empty = use current date)" +msgstr "Vennligst skriv filnavn (tomt= bruker nÃ¥værende dato)" + +msgid "Please enter name of the new directory" +msgstr "Vennligst skriv navnet pÃ¥ den nye katalogen" + +# +msgid "Please enter new name:" +msgstr "Vennligst skriv et nytt navn" + +msgid "Please enter the correct pin code" +msgstr "Vennligst tast inn riktig pin kode" + +msgid "Please enter the old PIN code" +msgstr "Vennligst tast inn den gamle PIN koden" + +msgid "Please follow the instructions on the TV" +msgstr "Vennligst følg instruksjonene pÃ¥ TV skjermen" + +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "Vær oppmerksom at tidligere valgt medie ikke kunne nÃ¥es. Istedenfor brukes standard katalog." + +msgid "Please press OK to continue." +msgstr "Vennligst trykk OK for Ã¥ fortsette." + +msgid "Please select a default EPG type..." +msgstr "Vennligst velg standard EPG..." + +# +msgid "Please select a playlist to delete..." +msgstr "Vennligst velg spilliste Ã¥ slette..." + +# +msgid "Please select a playlist..." +msgstr "Vennligst velg en spilliste" + +# +msgid "Please select a sub service..." +msgstr "Vennligst velg en underkanal..." + +# +msgid "Please select a subservice to record..." +msgstr "Vennligst velg en underkanal til opptak" + +# +msgid "Please select a subservice..." +msgstr "Vennligst velg en underkanal" + +msgid "Please select an NFI file and press green key to flash!" +msgstr "Vennligst velg en NFI fil og trykk grønn knapp for Ã¥ flashe!" + +msgid "Please select medium to be scanned" +msgstr "Vennligst velg medium som skal gjennomsøkes" + +# +msgid "Please select medium to use as backup location" +msgstr "Vennligst velg hvor du skal lagre sikkerhetskopi" + +# +msgid "Please select tag to filter..." +msgstr "Vennligst velg en markør til filter..." + +msgid "Please select the movie path..." +msgstr "Vennligst velg sti for lagring av opptak..." + +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Vennligst velg nettverksgrensesnittet du vil bruke for Internett-tilkobling.\n" +"\n" +"Vennligst trykk OK for Ã¥ fortsette." + +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Vennligst velg trÃ¥dløst nettverk som du vil koble til.\n" +"\n" +"Vennligst trykk OK for Ã¥ fortsette." + +msgid "Please set up tuner A" +msgstr "Vennligst still inn tuner A" + +msgid "Please set up tuner B" +msgstr "Vennligst still inn tuner B" + +msgid "Please set up tuner C" +msgstr "Vennligst still inn tuner C" + +msgid "Please set up tuner D" +msgstr "Vennligst still inn tuner D" + +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Vennligst bruk pilknappene for Ã¥ flytte PiP vinduet.\n" +"Trykk Bouquet +/- for Ã¥ endre vindustørrelse.\n" +"Trykk OK for Ã¥ gÃ¥ tilbake til TV eller EXIT for ikke Ã¥ utføre flytting." + +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "Vennligst bruk OPP og NED-knappene for Ã¥ velge sprÃ¥k. EtterpÃ¥ trykker du OK." + +msgid "Please wait" +msgstr "" + +# +msgid "Please wait (downloading channel list)" +msgstr "Vennligst vent (laster ned kanalliste)" + +# +msgid "Please wait (downloading softcam)" +msgstr "Vennligst vent (laster ned softcam)" + +# +msgid "Please wait (updating packages)" +msgstr "Vennligst vent (oppdaterer pakker)" + +# +msgid "Please wait for activation of your network configuration..." +msgstr "Vennligst vent til nettverksaktivering er klar..." + +msgid "Please wait while scanning is in progress..." +msgstr "Vennligst vent mens søking pÃ¥gÃ¥r..." + +# +msgid "Please wait while we configure your network..." +msgstr "Vennligst vent mens vi stiller inn nettverket..." + +# +msgid "Please wait while we prepare your network interfaces..." +msgstr "Vennligst vent mens vi forbereder nettverksgrensesnitt..." + +# +msgid "Please wait while we test your network..." +msgstr "Vennligst vent mens vi tester nettverket..." + +msgid "Please wait while your network is restarting..." +msgstr "Vennligst vent mens nettverket starter pÃ¥ nytt ..." + +# +msgid "Please wait..." +msgstr "Vennligst vent..." + +# +msgid "Please wait... Loading list..." +msgstr "Vennligst vent... henter liste..." + +# +msgid "Plugin browser" +msgstr "Oversikt over programtillegg" + +msgid "Plugin manager activity information" +msgstr "Aktivitets informasjon for programtillegg" + +msgid "Plugin manager help" +msgstr "Hjelp for programtillegg" + +# +msgid "Plugins" +msgstr "Programtillegg" + +msgid "Polarisation" +msgstr "Polarisasjon" + +msgid "Polarisation:" +msgstr "Polarisasjon:" + +# +msgid "Polarization" +msgstr "Polarisasjon" + +# +msgid "Polish" +msgstr "Polsk" + +# +msgid "Port A" +msgstr "Inngang A" + +# +msgid "Port B" +msgstr "Inngang B" + +# +msgid "Port C" +msgstr "Inngang C" + +# +msgid "Port D" +msgstr "Inngang D" + +# +msgid "Portuguese" +msgstr "Portugisisk" + +msgid "Position of completed timers in timerlist" +msgstr "Plassering av fullførte tidtakere i liste" + +msgid "Position stored at index" +msgstr "Posisjon lagret i tabell" + +# +msgid "Positioner" +msgstr "Motor" + +msgid "Positioner (selecting satellites)" +msgstr "" + +# +msgid "Positioner Setup" +msgstr "Posisjons oppsett" + +# +msgid "Positioner setup" +msgstr "Motoroppsett" + +msgid "Power threshold in mA" +msgstr "Strømverdi i mA" + +# +msgid "Predefined transponder" +msgstr "ForhÃ¥ndsdefinert transponder" + +msgid "Prefer AC3 track" +msgstr "Foretrekk AC3 lyd" + +msgid "Prefer AC3+ track" +msgstr "" + +msgid "Prefer audio track stored by service" +msgstr "Foretrekk lyd utsendt av kanal" + +msgid "Prefer graphical DVB subtitles" +msgstr "Foretrekk DVB undertekster" + +msgid "Prefer subtitles for hearing impaired" +msgstr "Foretrekk undertekster beregnet for hørselshemmede" + +msgid "Prefer subtitles stored by service" +msgstr "Foretrekk undertekster utsendt av kanal" + +msgid "Preferred tuner" +msgstr "Foretrukket tuner" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "Forberede en USB minnepinne for image brenning" + +# +msgid "Preparing... Please wait" +msgstr "Forbereder.. vennligst vent" + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "Trykk INFO pÃ¥ fjernkontrollen for ytterligere informasjon." + +msgid "Press MENU on your remote control for additional options." +msgstr "Trykk pÃ¥ MENU pÃ¥ fjernkontrollen for flere alternativer." + +msgid "Press OK on your remote control to continue." +msgstr "Trykk OK for Ã¥ fortsette." + +msgid "Press OK to activate the selected skin." +msgstr "Trykk OK for Ã¥ ta i bruk det valgte skin." + +msgid "Press OK to activate the settings." +msgstr "Trykk OK for Ã¥ aktivere instillingene" + +msgid "Press OK to edit the settings." +msgstr "Trykk OK for Ã¥ endre innstillinger." + +#, python-format +msgid "Press OK to get further details for %s" +msgstr "Trykk OK for Ã¥ fÃ¥ ytterligere detaljer for %s" + +msgid "Press OK to scan" +msgstr "Trykk OK for Ã¥ søke." + +msgid "Press OK to select a provider." +msgstr "Trykk OK for Ã¥ velge en leverandør." + +msgid "Press OK to select satellites" +msgstr "" + +msgid "Press OK to select/deselect a CAId." +msgstr "Trykk OK for Ã¥ velge/fjerne en CAId." + +msgid "Press OK to start the scan" +msgstr "Trykk OK for Ã¥ starte søk." + +msgid "Press OK to toggle the selection" +msgstr "" + +msgid "Press OK to toggle the selection." +msgstr "Trykk OK for Ã¥ veksle mellom valgene." + +msgid "Press yellow to set this interface as default interface." +msgstr "Trykk gul for Ã¥ velge dette som standard grensesnitt." + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "Forrige" + +# +msgid "Preview" +msgstr "ForhÃ¥ndsvisning" + +# +msgid "Preview menu" +msgstr "ForhÃ¥ndsvisning meny" + +msgid "Preview selected channel" +msgstr "ForhÃ¥ndsvis valgte kanal" + +# +msgid "Primary DNS" +msgstr "Primær DNS" + +# +msgid "Priority" +msgstr "Prioritet" + +# +msgid "Process" +msgstr "Prosess" + +msgid "Progress" +msgstr "Framdrift" + +msgid "Progress bar left" +msgstr "Framdriftslinje venstre" + +msgid "Progress bar right" +msgstr "Framdriftslinje høyre" + +# +msgid "Properties of current title" +msgstr "Egenskaper for gjeldende navn" + +# +msgid "Protect services" +msgstr "Beskytte kanaler" + +# +msgid "Protect setup" +msgstr "Beskytte oppsett" + +# +msgid "Provider" +msgstr "Leverandører" + +msgid "Provider to scan" +msgstr "Søke leverandører" + +# +msgid "Providers" +msgstr "Leverandører" + +msgid "Put TV in standby" +msgstr "SlÃ¥ av TV" + +msgid "Put receiver in standby" +msgstr "SlÃ¥ av mottaker" + +msgid "Python frontend for /tmp/mmi.socket" +msgstr "" + +# +msgid "Quick" +msgstr "Hurtig" + +# +msgid "Quick zap" +msgstr "Hurtig bytte" + +# +msgid "RF output" +msgstr "RF utgang" + +# +msgid "RGB" +msgstr "RGB" + +# +msgid "Radio" +msgstr "Radio" + +# +msgid "Ram disk" +msgstr "" + +# +msgid "Random" +msgstr "Tilfeldig" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "Rangering definert av kringkasteren -%d" + +msgid "Rating undefined" +msgstr "Rangering udefinert" + +# +msgid "Really close without saving settings?" +msgstr "Vil du lukke uten Ã¥ lagre?" + +# +msgid "Really delete done timers?" +msgstr "Vil du slette ferdige tidtakere?" + +# +msgid "Really exit the subservices quickzap?" +msgstr "Vil du avslutte hurtigbytte i underkanaler" + +# +msgid "Really reboot now?" +msgstr "Starte pÃ¥ nytt nÃ¥?" + +msgid "Really restart now?" +msgstr "Starte pÃ¥ nytt nÃ¥?" + +msgid "Really shutdown now?" +msgstr "SlÃ¥ av nÃ¥?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "Vil du oppdatere frontprosessor og starte pÃ¥ nytt nÃ¥?" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "Vil du oppdatere mottakeren og starte pÃ¥ nytt nÃ¥?" + +msgid "Reboot" +msgstr "Starte pÃ¥ nytt" + +msgid "Rec" +msgstr "Opptak" + +# +msgid "Reception settings" +msgstr "Mottakerfohold" + +msgid "Record" +msgstr "Opptaks innstilling" + +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "Opptakstid begrenset pÃ¥ grunn av motstridende tidtaker %s" + +msgid "Recorded files..." +msgstr "Opptaks mapper..." + +# +msgid "Recording" +msgstr "Tar opp" + +msgid "Recording in progress" +msgstr "Opptak pÃ¥gÃ¥r" + +msgid "Recording paths" +msgstr "Opptaksbaner" + +msgid "Recording type" +msgstr "Opptakstype" + +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "Opptak starter opp om fÃ¥ sekunder!" + +msgid "Recordings" +msgstr "Opptak innstilling" + +msgid "Recordings always have priority" +msgstr "Opptak har alltid prioritet" + +msgid "Red button..." +msgstr "Rød knapp..." + +msgid "Reenter new PIN" +msgstr "Skriv inn PIN kode pÃ¥ nytt" + +# +msgid "Refresh rate" +msgstr "Oppfriskningsrate" + +# +msgid "Refresh rate selection." +msgstr "Valg av oppfriskningsrate" + +msgid "Regard deep standby as standby" +msgstr "Betrakt 'helt slÃ¥tt av' samme som 'avslÃ¥tt'" + +msgid "Relative" +msgstr "Forhold" + +msgid "Reload" +msgstr "Restart" + +msgid "Reload black-/white lists" +msgstr "Restart sort-/hvit lister" + +msgid "Reloading bouquets and services..." +msgstr "Restarter kanallister..." + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "Lagre PIN kode" + +msgid "Remember these settings for each folder" +msgstr "Lagre disse innstillinger for hver mappe" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "PÃ¥minnelse, du har valgt Ã¥ lagre en timeshift fil" + +# +msgid "Remote control type" +msgstr "Fjernkontroll type" + +msgid "Removal has completed." +msgstr "Sletting er fullført." + +# +msgid "Remove" +msgstr "Slette" + +# +msgid "Remove a mark" +msgstr "Slette en markør" + +msgid "Remove a nameserver entry" +msgstr "Slette en navnetjener" + +# +msgid "Remove bookmark" +msgstr "Slett bokmerke" + +msgid "Remove completed timers after (days)" +msgstr "Slette fullførte tidtakere etter (dager)" + +# +msgid "Remove currently selected title" +msgstr "Slette den valgte tittelen" + +msgid "Remove items from trash can after (days)" +msgstr "Tøm papirkurven etter (dager)" + +# +msgid "Remove plugins" +msgstr "Slette programtillegg" + +# +msgid "Remove title" +msgstr "Slette overskrift" + +# +msgid "Removing" +msgstr "Sletter" + +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Sletting av katalog %s mislyktes. (Kanskje ikke tom.)" + +msgid "Removing partition table" +msgstr "Sletter partisjonstabellen" + +# +msgid "Rename" +msgstr "Gi nytt navn" + +# +msgid "Repeat" +msgstr "Gjenta" + +# +msgid "Repeat type" +msgstr "Gjentagelsestype" + +# +msgid "Repeating event currently recording... What do you want to do?" +msgstr "Gjentakende program spiller inn... Hva vil du gjøre?" + +# +msgid "Repeats" +msgstr "Gjentakelser" + +msgid "Require authentication for http streams" +msgstr "" + +# +msgid "Required medium type:" +msgstr "Nødvendig medium:" + +msgid "Rereading partition table" +msgstr "Leser partisjonstabellen pÃ¥ nytt" + +msgid "Reserved" +msgstr "Reservert" + +# +msgid "Reset" +msgstr "Tilbakestill" + +# +msgid "Reset and renumerate title names" +msgstr "Tilbakestill og nummerere navn pÃ¥ nytt" + +msgid "Reset playback position" +msgstr "Tilbakestill avspillingsposisjon" + +# +msgid "Reset video enhancement settings to system defaults?" +msgstr "Skal video innstillingene tilbakestilles til systemets standardinnstillinger?" + +# +msgid "Reset video enhancement settings to your last configuration?" +msgstr "Skal video innstillingene tilbakestilles til din siste innstilling?" + +# +msgid "Resolution" +msgstr "Oppløsning" + +msgid "Restart" +msgstr "Start pÃ¥ nytt" + +msgid "Restart GUI now?" +msgstr "Starte GUI pÃ¥ nytt?" + +msgid "Restart enigma" +msgstr "Starte enigma2 pÃ¥ nytt" + +msgid "Restart network" +msgstr "Starte nettverk pÃ¥ nytt" + +msgid "Restart test" +msgstr "Starte pÃ¥ nytt- test" + +msgid "Restart your network connection and interfaces.\n" +msgstr "Starte nettverksforbindelse pÃ¥ nytt.\n" + +# +msgid "Restore" +msgstr "Gjenopprette" + +# +msgid "Restore backups" +msgstr "Gjenopprette sikkerhetskopier" + +# +msgid "Restore is running..." +msgstr "Gjenopprettingen er igang..." + +# +msgid "Restore system settings" +msgstr "Gjenopprette systeminnstillinger" + +# +msgid "Restoring..." +msgstr "Gjenoppretter..." + +# +msgid "Resume from last position" +msgstr "Fortsette fra siste posisjon" + +# +#, python-format +msgid "Resume position at %s" +msgstr "Gjenoppta posisjonen ved %s" + +# +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Fortsetter avspilling" + +msgid "Return to movie list" +msgstr "GÃ¥ tilbake til spilliste" + +msgid "Return to previous service" +msgstr "GÃ¥ tilbake til forrige kanal" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +# +msgid "Rewind speeds" +msgstr "Tilbakespolings hastigheter" + +msgid "Rewrap teletext subtitles" +msgstr "Bryt tekst-TV undertekst" + +# +msgid "Right" +msgstr "Høyre" + +msgid "Right from servicename" +msgstr "Høyre for kanalnavn" + +msgid "Roll-off" +msgstr "" + +msgid "Romanian" +msgstr "Rumensk" + +msgid "Root directory" +msgstr "Rotkatalog" + +msgid "Rotor step position:" +msgstr "Motorposisjon:" + +msgid "Rotor turning speed" +msgstr "Motorhastighet" + +msgid "Round start time on" +msgstr "Rundetid pÃ¥" + +# +msgid "Russian" +msgstr "Russisk" + +# +msgid "S-Video" +msgstr "" + +msgid "SID" +msgstr "" + +# +msgid "SINGLE LAYER DVD" +msgstr "ETTLAGS DVD" + +# +msgid "SNR" +msgstr "" + +# +msgid "SNR:" +msgstr "" + +# +msgid "SSID:" +msgstr "" + +# +msgid "Same resolution as skin" +msgstr "Samme oppløsning som skin" + +# +msgid "Sat" +msgstr "Lør" + +msgid "Satellite" +msgstr "Satellittliste" + +msgid "Satellite dish setup" +msgstr "Paraboloppsett" + +msgid "Satellite equipment" +msgstr "Satellittutstyr (DiSEqC)" + +msgid "Satellite equipment setup" +msgstr "DiSEqC oppsett" + +msgid "Satellite longitude:" +msgstr "Satellitt lengdegrad:" + +msgid "Satellites" +msgstr "Distributører" + +msgid "Satfinder" +msgstr "Satellittsøker" + +# +msgid "Sats" +msgstr "" + +# +msgid "Saturation" +msgstr "Metning" + +# +msgid "Saturday" +msgstr "Lørdag" + +# +msgid "Save" +msgstr "Lagre" + +msgid "Save playlist" +msgstr "Lagre spilliste" + +# +msgid "Save timeshift file" +msgstr "Lagre timeshift fil" + +msgid "Save timeshift file in movie directory" +msgstr "Lagre timeshift filen i film katalogen" + +# +msgid "Scaler sharpness" +msgstr "Juster skarphet" + +# +msgid "Scaling mode" +msgstr "Fininnstilling" + +msgid "Scan" +msgstr "Søk" + +msgid "Scan " +msgstr "Søk" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, python-format +msgid "Scan %s" +msgstr "Søk %s" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, python-format +msgid "Scan %s band" +msgstr "Søk %s bÃ¥nd" + +msgid "Scan additional SR" +msgstr "Søk etter flere SR" + +msgid "Scan files..." +msgstr "Søker filer..." + +msgid "Scan wireless networks" +msgstr "Søk etter trÃ¥dløse nettverk" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "Søker i nettverket etter trÃ¥dløse aksesspunkter og kobler til den valgte trÃ¥dløse enheten.\n" + +#, python-format +msgid "Scanning %s..." +msgstr "Søker %s..." + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "Søker %d%% er ferdig" +msgstr[1] "Søker %d%% er ferdig" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "Søket er ferdig, %d kanal er funnet" +msgstr[1] "Søket er ferdig, %d kanaler er funnet" + +msgid "Scanning failed!" +msgstr "Søket feilet!" + +msgid "Scanning..." +msgstr "Søker..." + +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "Søker standard satellittrekkefølge med en tilsluttet parabolmotor" + +# +msgid "Search east" +msgstr "Søk øst" + +# +msgid "Search west" +msgstr "Søk vest" + +msgid "Searching" +msgstr "Søker" + +msgid "Searching east ..." +msgstr "Søker østover..." + +msgid "Searching for available updates. Please wait..." +msgstr "Søker etter tilgjengelige oppdateringer. Vennligst vent ..." + +# +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "Søker etter nye installerte eller avinstallerte pakker. Vennligst vent ..." + +msgid "Searching west ..." +msgstr "Søker vestover..." + +msgid "Second cable of motorized LNB" +msgstr "" + +# +msgid "Secondary DNS" +msgstr "Sekundær DNS" + +# +msgid "Seek" +msgstr "Søk" + +# +msgid "Seek backward" +msgstr "Søk bakover" + +# +msgid "Seek backward (enter time)" +msgstr "Søk bakover (skriv inn tid)" + +# +msgid "Seek forward" +msgstr "Søk framover" + +# +msgid "Seek forward (enter time)" +msgstr "Søk framover (skriv inn tid)" + +# +msgid "Select" +msgstr "Velg" + +# +msgid "Select CAId" +msgstr "Velg CAId" + +msgid "Select HDD" +msgstr "Velg hdd/ssd" + +# +msgid "Select a bouquet" +msgstr "Velg en kanalliste" + +msgid "Select a movie" +msgstr "Velg en film" + +# +msgid "Select a network adapter" +msgstr "Velg et nettverkskort" + +# +msgid "Select a skin" +msgstr "Velg et skin" + +# +msgid "Select a tuner" +msgstr "Velg tuner" + +# +msgid "Select a wireless network" +msgstr "Velg et trÃ¥dløst nettverk" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +msgid "Select an image to be downloaded" +msgstr "Velg et image som skal lastes ned" + +# +msgid "Select audio track" +msgstr "Velg lydspor" + +# +msgid "Select backup files" +msgstr "Velg sikkerhetskopifiler" + +msgid "Select backup location" +msgstr "Velg sikkerhetskopi" + +msgid "Select channel to record from" +msgstr "Velg kanal for opptak" + +msgid "Select copy destination for:" +msgstr "Velg kopierings mÃ¥l for:" + +msgid "Select default EPG type..." +msgstr "Velg standard EPG..." + +msgid "Select desired image from feed list" +msgstr "Velg ønsket image fra menyliste" + +msgid "Select destination for:" +msgstr "Velg mÃ¥let for:" + +msgid "Select files for backup." +msgstr "Velg filer for sikkerhetskopiering." + +msgid "Select files/folders to backup" +msgstr "Velg filer/mapper for sikkerhetskopiering" + +msgid "Select input device" +msgstr "Velg enhet" + +msgid "Select input device." +msgstr "Velg enhet." + +# +msgid "Select interface" +msgstr "Velg grensesnitt" + +# +msgid "Select location" +msgstr "Velg plassering" + +msgid "Select movie" +msgstr "Velg opptak" + +# +msgid "Select provider to add..." +msgstr "Velg leverandør Ã¥ legge til..." + +msgid "Select refresh rate" +msgstr "Velg frekvensrate" + +msgid "Select satellites" +msgstr "" + +# +msgid "Select service to add..." +msgstr "Velg kanal som skal legges til..." + +msgid "Select sort method:" +msgstr "" + +# +msgid "Select target folder" +msgstr "Velg mÃ¥lmappe" + +msgid "Select the movie path" +msgstr "Velg mÃ¥lmappe for opptak" + +msgid "Select upgrade source" +msgstr "Velg oppdateringssted" + +msgid "Select upgrade source to edit." +msgstr "Velg og endre oppdateringssted." + +msgid "Select video input with up/down buttons" +msgstr "Velg videoinngang med opp/ned tastene" + +# +msgid "Select video mode" +msgstr "Velg video modus" + +# +msgid "Select wireless network" +msgstr "Velg trÃ¥dløst nettverk" + +msgid "Select your provider, and press OK to start the scan" +msgstr "Velg leverandør og trykk OK for Ã¥ starte søk" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +msgid "Send DiSEqC only on satellite change" +msgstr "Send DiSEqC bare ved satellittskifte" + +# +msgid "Separate titles with a main menu" +msgstr "Del opp navn i hovedmeny" + +msgid "Sequence repeat" +msgstr "Sekvens gjentakelse" + +# +msgid "Serbian" +msgstr "Serbisk" + +# +msgid "Service" +msgstr "Kanal" + +msgid "Service has been added to the favourites." +msgstr "Kanalen ble lagt til i favorittlisten." + +msgid "Service has been added to the selected bouquet." +msgstr "Kanal ble lagt til i den valgte kanallisten." + +msgid "Service info" +msgstr "Kanalinfo" + +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Kanalfeil!\n" +"(Tidsavbrudd ved lesing av PMT)" + +# +msgid "Service name" +msgstr "Kanalnavn" + +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Kanalen ble ikke funnet!\n" +"(SID ikke funnet i PAT)" + +msgid "Service reference" +msgstr "Kanalreferanse" + +msgid "Service scan" +msgstr "Kanalsøk" + +msgid "Service searching" +msgstr "Kanalsøk" + +# +msgid "Service title mode" +msgstr "Kanalvalg" + +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"Kanal utilgjengelig!\n" +"Kontroller tuner konfigurasjon!" + +# +msgid "Services" +msgstr "Kanaler" + +msgid "Set default" +msgstr "" + +# +msgid "Set end time" +msgstr "Sett slutt tid" + +msgid "Set fixed" +msgstr "Sett fast" + +msgid "Set fps for external subtitles" +msgstr "Still inn fps (bilde per sekund) for tekst-TV undertekst" + +msgid "Set interface as default Interface" +msgstr "Bruk dette som standard" + +msgid "Set limits" +msgstr "Sett grenser" + +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "Angi framdriftstype pÃ¥ kanalvalgs skjermen." + +msgid "Set time window to 1 hour" +msgstr "Still tidsvinduet til 1 time" + +msgid "Set time window to 2 hours" +msgstr "Still tidsvinduet til 2 timer" + +msgid "Set time window to 3 hours" +msgstr "Still tidsvinduet til 3 timer" + +msgid "Set time window to 4 hours" +msgstr "Still tidsvinduet til 4 timer" + +msgid "Set time window to 5 hours" +msgstr "Still tidsvinduet til 5 timer" + +msgid "Set time window to 6 hours" +msgstr "Velg tidsvindu til 6 timer" + +msgid "Set voltage and 22KHz" +msgstr "Still inn spenning og 22kHz" + +msgid "Settings" +msgstr "Innstillinger" + +# +msgid "Setup" +msgstr "Innstilling" + +msgid "Setup menu" +msgstr "Menyoppsett" + +# +msgid "Setup mode" +msgstr "Menyoppsett" + +msgid "Setup your positioner" +msgstr "Posisjonsoppsett" + +msgid "Setup your satellite equipment" +msgstr "Satellittoppsett" + +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "Skal veiviseren for USB minnepinne fortsette Ã¥ programmere image filen%s til flash-minnet?" + +# +msgid "Sharpness" +msgstr "Skarphet" + +msgid "Short filenames" +msgstr "Korte filnavn" + +msgid "Show EIT now/next in infobar" +msgstr "Vis EIT nÃ¥/neste pÃ¥ informasjonslinjen" + +# +msgid "Show EPG for current channel..." +msgstr "Vis EPG for nÃ¥værende kanal..." + +# +msgid "Show EPG..." +msgstr "Vis EPG..." + +msgid "Show Games show" +msgstr "Vis Games show" + +msgid "Show SNR percentage instead of dB value" +msgstr "Vis SNR i prosent i stedenfor dB i verdi" + +# +msgid "Show VCR scart on main menu" +msgstr "Vis VCR scart pÃ¥ hovedmenyen" + +# +msgid "Show WLAN status" +msgstr "Vis WLAN status" + +msgid "Show animation while busy" +msgstr "Vis varsel nÃ¥r opptatt" + +msgid "Show background in radio mode" +msgstr "Vis bakgrunn ved radiolytting" + +msgid "Show bouquet selection menu" +msgstr "Vis kanalliste menyen" + +msgid "Show busy indicator when the system is busy." +msgstr "Vis opptattvarsel nÃ¥r systemet er opptatt." + +msgid "Show channel numbers in channel selection" +msgstr "Vis kanalnummer i kanalvalg" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "Vis krypteringsinfo pÃ¥ informasjonslinjen" + +msgid "Show detailed event info" +msgstr "Vis detaljert programinformasjon" + +# +msgid "Show event details" +msgstr "Vis programdetaljer" + +msgid "Show event-progress in channel selection" +msgstr "Vis programbasert framgang i kanalvalg" + +# +msgid "Show extended description" +msgstr "Vis utvidet beskrivelse" + +# +msgid "Show extensions..." +msgstr "Vis utvidelser..." + +msgid "Show icon for new/unseen items" +msgstr "Vis varsel for nye/ukjente elementer" + +# +msgid "Show in extensions menu" +msgstr "Vis i utvidet meny" + +# +msgid "Show info" +msgstr "Vis info" + +# +msgid "Show info line" +msgstr "Vis informasjonslinje" + +# +msgid "Show infobar on channel change" +msgstr "Vis informasjonslinje ved kanalbytte" + +# +msgid "Show infobar on event change" +msgstr "Vis informasjonslinje ved programbytte" + +msgid "Show infobar on skip forward/backward" +msgstr "Vis informasjonslinje ved kanalhopp framover/bakover" + +msgid "Show latest commits on sourceforge" +msgstr "" + +msgid "Show message when recording starts" +msgstr "Vis melding nÃ¥r opptaket starter" + +msgid "Show movie lengths in movielist" +msgstr "Vis opptakslengde i liste " + +msgid "Show multi channel EPG" +msgstr "Vis utvidet kanal EPG" + +msgid "Show picons in channel list" +msgstr "" + +# +msgid "Show positioner movement" +msgstr "Vis motorbevegelse" + +msgid "Show screensaver" +msgstr "Vis skjermsparer" + +msgid "Show second infobar" +msgstr "Vis ekstra informasjonslinje" + +# +msgid "Show service type icons" +msgstr "Vis kanal picons" + +# +msgid "Show services beginning with" +msgstr "Vis kanaler som begynner med" + +msgid "Show shutdown menu" +msgstr "Vis av/pÃ¥ meny" + +msgid "Show single service EPG" +msgstr "Vis enkel kanal EPG" + +msgid "Show status icons in Movielist" +msgstr "Vis framgangs status i opptaksliste" + +msgid "Show status icons in movie list" +msgstr "Vis programbasert framgang i opptaksliste" + +msgid "Show status icons in movielist" +msgstr "Vis programbasert framgang i opptaksliste" + +# +msgid "Show tag menu" +msgstr "Vis tag meny" + +# +msgid "Show the radio player..." +msgstr "Vis radiospilleren" + +# +msgid "Show the tv player..." +msgstr "Vis TV spilleren..." + +msgid "Show warning when timeshift is stopped" +msgstr "Vis en advarsel nÃ¥r timeshift stoppes" + +# +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Viser status for din trÃ¥dløse LAN forbindelse.\n" + +# +msgid "Shuffle playlist" +msgstr "Miks spilliste" + +msgid "Shutdown" +msgstr "SlÃ¥ av" + +msgid "Shutdown when in Standby" +msgstr "SlÃ¥ helt av ved standby" + +msgid "Side by side" +msgstr "Side om side" + +msgid "Signal OK, proceeding" +msgstr "Signal OK, fortsetter" + +msgid "Signal quality" +msgstr "Signalkvalitet" + +msgid "Signal strength:" +msgstr "Signalstyrke:" + +# +msgid "Signal: " +msgstr "Signal:" + +# +msgid "Similar" +msgstr "Samme" + +# +msgid "Similar broadcasts:" +msgstr "Like utsendelser" + +# +msgid "Simple" +msgstr "Enkel" + +# +msgid "Simple titleset (compatibility for legacy players)" +msgstr "Enkel navneinnstilling(kompatibilitet for eldre spillere)" + +# +msgid "Single" +msgstr "Enkel" + +# +msgid "Single EPG" +msgstr "Enkel EPG" + +msgid "Single satellite" +msgstr "En satellitt" + +# +msgid "Single step (GOP)" +msgstr "Enkeltrinn (GOP)" + +# +msgid "Single transponder" +msgstr "En transponder" + +msgid "Site latitude" +msgstr "Din breddegrad" + +msgid "Site longitude" +msgstr "Din lengdegrad" + +# +msgid "Skin" +msgstr "" + +# +msgid "Skins" +msgstr "" + +# +msgid "Skip empty services" +msgstr "Hopp over ubrukte kanaler" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "Hopp over internett tilkobling (automatisk pakke installasjon deaktiveres)" + +msgid "Sleep timer" +msgstr "SlÃ¥ av med hjelp av tidtaker" + +msgid "SleepTimer Configuration" +msgstr "Tidtaker innstilling" + +msgid "Sleeptimer" +msgstr "Tidtaker" + +msgid "Slide picture in loop" +msgstr "Vis bilde om igjen" + +# +msgid "Slide show interval (sec.)" +msgstr "Bildevisnings intervall (sek.)" + +# +#, python-format +msgid "Slot %d" +msgstr "Spor %d" + +msgid "Slovak" +msgstr "Slovakisk" + +# +msgid "Slovenian" +msgstr "Slovensk" + +# +msgid "Slow" +msgstr "Langsom" + +msgid "Slow motion speeds" +msgstr "Hastighet for saktefilm" + +# +msgid "Small progress" +msgstr "Lite framgang" + +msgid "Social/Political/Economics" +msgstr "sosial/politisk/økonomisk" + +msgid "SoftCam / CI" +msgstr "" + +msgid "Softcam type" +msgstr "" + +# +msgid "Software" +msgstr "Programvare" + +# +msgid "Software management" +msgstr "Programvareadministrasjon" + +msgid "Software manager setup" +msgstr "Programvare oppsett" + +# +msgid "Software restore" +msgstr "Gjenopprette programvare" + +msgid "Software update" +msgstr "Programvareoppdatering" + +msgid "Softwaremanager information" +msgstr "Programvareadministrasjon" + +# +msgid "Some plugins are not available:\n" +msgstr "Noen programtillegg er ikke tilgjengelig:\n" + +#, python-format +msgid "Sorry, %s has not been installed!" +msgstr "Beklager, %s har ikke blitt installert!" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "Beklager, kataloger kan bare slettes i papirkurven. (fra nÃ¥ av)" + +msgid "Sorry, no backups found!" +msgstr "Beklager, fant ingen sikkerhetskopi!" + +msgid "Sorry, no details available!" +msgstr "Beklager, ingen detaljer er tilgjengelig!" + +# +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"Beklager, sikkerhetskopien er ikke skrivbar.\n" +"Vennligst velg en annen." + +msgid "Sort" +msgstr "Sortere" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Sortere A-Z" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort time" +msgstr "Sortere tid" + +# +msgid "Sound" +msgstr "Lyd" + +# +msgid "Sound carrier" +msgstr "Lydbærer" + +msgid "Source request" +msgstr "Server forespørsel" + +# +msgid "South" +msgstr "Sør" + +# +msgid "Spanish" +msgstr "Spansk" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "Sett sluttid nÃ¥r inaktiv tidtaker skal oversees" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "Sett starttid nÃ¥r inaktiv tidtaker skal oversees" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "Sett tidsrommet nÃ¥r inaktiv tidtaker skal oversees" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +# +msgid "Split preview mode" +msgstr "Del forhÃ¥ndsvisning" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "Sport" + +# +msgid "Standard" +msgstr "Standard" + +msgid "Standart list" +msgstr "" + +msgid "Standby" +msgstr "SlÃ¥ av" + +msgid "Standby / restart" +msgstr "Av/pÃ¥ strømvalg" + +# +msgid "Standby after current event" +msgstr "SlÃ¥ av etter nÃ¥værende program" + +#, python-format +msgid "Standby fan %d PWM" +msgstr "Standby vifte %d PWM (hastighetsregulering)" + +#, python-format +msgid "Standby fan %d voltage" +msgstr "Standby vifte %d spenning" + +msgid "Standby in " +msgstr "SlÃ¥ av om" + +msgid "StandbyLED" +msgstr "" + +# +msgid "Start from the beginning" +msgstr "Starte fra begynnelsen" + +msgid "Start offline decode" +msgstr "Starte offline dekoding" + +msgid "Start recording?" +msgstr "Start opptak?" + +# +msgid "Start test" +msgstr "" + +# +msgid "Start time" +msgstr "Starttid" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "Starttid til ignorering av inaktiv tidtaker" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +# +msgid "Start timeshift" +msgstr "Starte tidsskift" + +msgid "Start with list screen" +msgstr "Start med listevisning" + +# +msgid "Starting on" +msgstr "Starter pÃ¥" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +# +msgid "Step east" +msgstr "GÃ¥ østover" + +# +msgid "Step west" +msgstr "GÃ¥ vestover" + +msgid "Stepped east" +msgstr "GÃ¥ trinnvis østover" + +msgid "Stepped west" +msgstr "GÃ¥ trinnvis vestover" + +# +msgid "Stop" +msgstr "Stoppe" + +# +msgid "Stop PiP" +msgstr "Stoppe PiP (bilde i bilde)" + +# +msgid "Stop current event and disable coming events" +msgstr "Stoppe nÃ¥værende og kommende program" + +# +msgid "Stop current event but not coming events" +msgstr "Stoppe nÃ¥værende program men ikke stopp kommende" + +# +msgid "Stop entry" +msgstr "Stoppe oppføring" + +msgid "Stop playing this movie?" +msgstr "Stoppe avspillingen?" + +msgid "Stop recording" +msgstr "Stoppe opptak" + +msgid "Stop recording and delete" +msgstr "Stoppe opptak og slette" + +msgid "Stop service on return to movie list" +msgstr "" + +# +msgid "Stop test" +msgstr "Stoppe test" + +msgid "Stop testing plane after # failed transponders" +msgstr "Stoppe testing etter # mislykkede transpondere" + +msgid "Stop testing plane after # successful transponders" +msgstr "Stoppe testing etter # vellykkede transpondere" + +msgid "Stop timer recording" +msgstr "Stoppe tidtaker opptak" + +# +msgid "Stop timeshift" +msgstr "Stoppe tidsskift" + +# +msgid "Stop timeshift?" +msgstr "Stoppe tidsskift?" + +msgid "Stopped" +msgstr "Stoppet" + +msgid "Store at index" +msgstr "Lagre i meny" + +# +msgid "Store position" +msgstr "Lagre posisjon" + +# +msgid "Stored position" +msgstr "Lagret posisjon" + +msgid "Stream" +msgstr "Datastrøm" + +msgid "Stream request" +msgstr "Datastrøm forespørsel" + +msgid "Strongest position" +msgstr "Sterkeste posisjon" + +# +msgid "Subservice list..." +msgstr "Underkanal liste..." + +# +msgid "Subservices" +msgstr "Underkanaler" + +msgid "Subtitle Quickmenu" +msgstr "Hurtigmeny for undertekst" + +msgid "Subtitle alignment" +msgstr "Undertekst justering" + +msgid "Subtitle border width" +msgstr "Undertekst kontrast" + +msgid "Subtitle delay when timing is bad" +msgstr "Undertekst forsinkelse nÃ¥r tidtakingen er dÃ¥rlig" + +msgid "Subtitle delay when timing lacks" +msgstr "Undertekst forsinkelse nÃ¥r tidtaking mangler" + +msgid "Subtitle font size" +msgstr "Undertekst skriftstørrelse" + +msgid "Subtitle language selection 1" +msgstr "Undertekst sprÃ¥kvalg 1" + +msgid "Subtitle language selection 2" +msgstr "Undertekst sprÃ¥kvalg 2" + +msgid "Subtitle language selection 3" +msgstr "Undertekst sprÃ¥kvalg 3" + +msgid "Subtitle language selection 4" +msgstr "Undertekst sprÃ¥kvalg 4" + +msgid "Subtitle position" +msgstr "Undertekst plassering" + +msgid "Subtitle selection" +msgstr "Undertekst valg" + +msgid "Subtitle selection..." +msgstr "Undertekst valg..." + +msgid "Subtitle settings" +msgstr "Undertekst innstilling" + +msgid "Subtitles" +msgstr "Undertekster" + +# +msgid "Sun" +msgstr "Søn" + +# +msgid "Sunday" +msgstr "Søndag" + +# +msgid "Swap PiP and main picture" +msgstr "Bytt PiP (bilde i bilde) med hovedbildet" + +# +msgid "Swap services" +msgstr "Bytte kanaler" + +# +msgid "Swedish" +msgstr "Svensk" + +msgid "Switch TV to correct input" +msgstr "Bytte til riktig TV inngang" + +# +msgid "Switch between filelist/playlist" +msgstr "Skifte mellom mappeliste og avspillingsliste" + +msgid "Switch between normal mode and list mode" +msgstr "Bytte mellom normal eller listemodus" + +msgid "Switch to HDMI in mode" +msgstr "" + +# +msgid "Switch to filelist" +msgstr "GÃ¥ til mappe liste" + +msgid "Switch to next channel" +msgstr "" + +# +msgid "Switch to next channel in history" +msgstr "GÃ¥ til neste kanal i listen" + +# +msgid "Switch to next sub service" +msgstr "GÃ¥ til neste subservice" + +# +msgid "Switch to playlist" +msgstr "GÃ¥ til spilliste" + +# +msgid "Switch to previous channel" +msgstr "GÃ¥ til forrige kanal" + +# +msgid "Switch to previous channel in history" +msgstr "GÃ¥ til forrige kanal i listen" + +# +msgid "Switch to previous sub service" +msgstr "GÃ¥ til forrige subservice" + +# +msgid "Switchable tuner types:" +msgstr "Valgbare tuner typer:" + +msgid "Symbol rate" +msgstr "Symbolrate" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "Synkroniseringsfeil, gÃ¥r tilbake til start!" + +# +msgid "System" +msgstr "System" + +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "Norsk bokmÃ¥lsoversettelse. 24.10.2013" + +# +msgid "TS file is too large for ISO9660 level 1!" +msgstr "TS filen er for stor for ISO9660 nivÃ¥ 1!" + +msgid "TSID" +msgstr "TSID" + +msgid "TV physical address report" +msgstr "TV fysiske adresse" + +msgid "TXT PID" +msgstr "" + +msgid "Table of contents for collection" +msgstr "Innholdsfortegnelse" + +# +msgid "Tags" +msgstr "Tagger" + +msgid "Teletext subtitle color" +msgstr "Tekst-TV undertekstfarge" + +# +msgid "Temperature and fan control" +msgstr "Temperatur og viftestyring" + +# +msgid "Terrestrial" +msgstr "Bakkenett" + +# +msgid "Terrestrial provider" +msgstr "Bakkenett leverandør" + +# +msgid "Test DiSEqC settings" +msgstr "Testinnstilling for DiSEqC" + +# +msgid "Test mode" +msgstr "Testmodus" + +msgid "Test the network configuration of your receiver.\n" +msgstr "Test nettverksinnstillinger til mottakeren.\n" + +# +msgid "Test type" +msgstr "Test type" + +msgid "Text color" +msgstr "Tekst farge" + +msgid "Thai" +msgstr "Thailandsk" + +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"Takk for at du bruker veiviseren.\n" +"Vennligst trykk OK for Ã¥ fortsette." + +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"Takk for at du bruker veiviseren. Mottakeren er nÃ¥ klar til bruk.\n" +"Trykk OK for Ã¥ starte bruk av mottakeren." + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "DVD-standarden støtter ikke H.264 (HDTV) video. Vil du heller opprette et spesielt dataformat for DVD? (dette vil ikke kunne spille i frittstÃ¥ende DVD-spillere)" + +msgid "The PIN code has been changed successfully." +msgstr "PIN-koden har blitt endret." + +msgid "The PIN codes you entered are different." +msgstr "Du har tastet inn feil PIN kode" + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" +"USB minnepinnen ble klargjort til Ã¥ være oppstartbar.\n" +"NÃ¥ kan du laste ned en NFI image fil!" + +# +msgid "The backup failed. Please choose a different backup location." +msgstr "Sikkerhetskopien feilet. Vennligst velg en annen." + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" +"Den nyeste beta programvaren kan være ustabilt.\n" +"For mer informasjon se %s." + +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"Katalogen%s er ikke skrivbar.\n" +"Pass pÃ¥ at du velger en skrivbar katalog." + +# +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"Følgende enhet ble funnet:\n" +"\n" +"%s\n" +"\n" +"Vil du Ã¥ lagre pÃ¥ denne USB minnepinnen?" + +# +msgid "The following files were found..." +msgstr "Følgende filer ble funnet..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "md5 valideringssum mislyktes. Filen kan være skadet!" + +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"Utvidelsen for nettverksveiviseren er ikke installert!\n" +"Vennligst installer den." + +# +#, python-format +msgid "The path %s already exists." +msgstr "Banen %s finnes allerede." + +# +msgid "The pin code you entered is wrong." +msgstr "Pin koden er feil." + +# +#, python-format +msgid "The results have been written to %s." +msgstr "Resultatene har blitt skrevet til %s." + +# +msgid "The sleep timer has been activated." +msgstr "Tidtaker har blitt aktivert:" + +# +msgid "The sleep timer has been disabled." +msgstr "Tidtaker har blitt deaktivert:" + +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"Programutvidelsen er ikke installert!\n" +"Vennligst installer den." + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "Status for dagens beta programvare kan ikke kontrolleres fordi %s kan ikke nÃ¥es." + +# +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "Tidtakerfilen (timers.xml) feilet og kunne ikke lastes." + +msgid "The user interface of your receiver is restarting" +msgstr "Enigma2 starter pÃ¥ nytt" + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" +"Mottakerens brukergrensesnitt mÃ¥ startes pÃ¥ nytt\n" +"pÃ¥ grunn av en feil i mytest.py" + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"Det trÃ¥dløse LAN programtillegg er ikke installert!\n" +"Vennligst installer det og velg hva som skal gjøres videre." + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"Det trÃ¥dløse LAN programtillegg er ikke installert!\n" +"Vennligst installer det." + +# +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "Veiviseren kan ta sikkerhetskopi av dine nÃ¥værende innstillinger. Vil du sikkerhetskopiere nÃ¥?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "Veiviseren fant en sikkerhetskopi. Vil du gjenopprette de gamle innstillingene fra %s?" + +# +msgid "The wizard is finished now." +msgstr "Veiviseren er ferdig." + +# +msgid "There are at least " +msgstr "Det finnes minst" + +#, python-format +msgid "There are at least %s updates available." +msgstr "Det er minst %s oppdateringer tilgjengelig." + +# +msgid "There are currently no outstanding actions." +msgstr "Det er for tiden ingen utestÃ¥ende handlinger." + +msgid "There are no updates available." +msgstr "Det er ingen oppdateringer tilgjengelig." + +msgid "There is no signal to lock on !" +msgstr "Det finnes ikke noe signal og lÃ¥se seg pÃ¥!" + +# +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"Det er muligens ikke nok plass pÃ¥ den valgte partisjonen.\n" +"Vil du fortsette likevel?" + +# +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "Denne DVD RW er allerede formatert - reformatering sletter alt innhold pÃ¥ platen." + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" +"Dette programtillegget bruker en USB minnepinne til Ã¥ oppdatere programvaren pÃ¥ mottakeren uten behov for nettverk eller WLAN tilkobling.\n" +"Først mÃ¥ en USB minnepinne være forberedt slik at den blir oppstartbar.\n" +"I neste trinn, kan en NFI bildefil lastes ned fra serveren og lagres pÃ¥ USB-pinnen.\n" +"Hvis du allerede har forberedt en oppstartbar USB minnepinne kan du sette den inn nÃ¥. USB minnepinnen mÃ¥ være pÃ¥ minimum 64MB!" + +# +msgid "This plugin is installed." +msgstr "Dette programtillegget er installert." + +# +msgid "This plugin is not installed." +msgstr "Dette programtillegget er ikke installert." + +# +msgid "This plugin will be installed." +msgstr "Dette programtillegget vil bli installert." + +# +msgid "This plugin will be removed." +msgstr "Dette programtillegget vil bli fjernet." + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "Denne mottakeren kan ikke dekode %s datastrømmer!" + +# +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"Denne testen søker opp navnetjenere.\n" +"Hvis du fÃ¥r en \"ubekreftet\"-melding:\n" +"- vennligst kontroller DHCP, kabling og nettverksoppsett\n" +"- hvis navnetjenere er satt opp manuelt mÃ¥ du bekrefte oppføringene i \"Navnetjener\" innstilling" + +# +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Denne testen sjekker om nettverkskabelen er koblet til nettverkskortet.\n" +"Hvis du fÃ¥r en \"frakoblet\" melding:\n" +"- bekreft at nettverkskabelen er tilkoblet\n" +"- kontroller at kabelen ikke er skadet" + +# +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Denne testen sjekker om nettverkskortet har en gyldig IP-adresse.\n" +"Hvis du fÃ¥r en \"ubekreftet\" melding:\n" +"- ingen gyldig IP adresse ble funnet\n" +"- vennligst sjekk din DHCP, kabling og nettverksinnstilling" + +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"Denne testen sjekker om nettverkskortet er satt opp med automatisk DHCP IP-adresse.\n" +"Hvis du fÃ¥r en \"deaktivert\" melding:\n" +" - eller om nettverkskortet er satt opp med manuelt IP oppsett\n" +"- sjekk at du har tastet inn riktig IP informasjon i nettverksinnstillingen\n" +"Hvis du fÃ¥r en \"aktiver\" melding:\n" +"-kontroller at du har en fungerende DHCP server/ruter i nettverket ditt." + +# +msgid "This test detects your configured LAN adapter." +msgstr "Denne testen søker opp nettverkskortet." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" +"Dette vil beregne alle posisjoner (pÃ¥ nytt) for motor og kan fjerne tidligere lagrede posisjoner og finjusteringer!\n" +"Er du sikker?" + +# +msgid "Three" +msgstr "Tre" + +# +msgid "Threshold" +msgstr "Grense" + +# +msgid "Thu" +msgstr "Tors" + +# +msgid "Thumbnails" +msgstr "Miniatyrbilder" + +# +msgid "Thursday" +msgstr "Torsdag" + +# +msgid "Time" +msgstr "Tid" + +# +msgid "Time scale" +msgstr "Tids mÃ¥ler" + +# +msgid "Timer" +msgstr "Tidtaker" + +msgid "Timer Overview" +msgstr "" + +# +msgid "Timer edit" +msgstr "Tidtaker innstilling" + +# +msgid "Timer editor" +msgstr "Tidtaker innstiller" + +# +msgid "Timer entry" +msgstr "Tidtaker innstilling" + +# +msgid "Timer log" +msgstr "Tidtaker logg" + +# +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"Tidtaker overlapping i timers.xml oppdaget!\n" +"Vennligst kontroller det pÃ¥ nytt!" + +# +msgid "Timer overview" +msgstr "Tidtaker oversikt" + +msgid "Timer recording location" +msgstr "Tidtaker opptak" + +# +msgid "Timer sanity error" +msgstr "Tidtaker feil" + +# +msgid "Timer selection" +msgstr "Tidtaker valg" + +# +msgid "Timer selection..." +msgstr "Tidtaker valg..." + +# +msgid "Timer type" +msgstr "Tidtaker type" + +# +msgid "Timeshift" +msgstr "" + +msgid "Timeshift Live" +msgstr "" + +# +msgid "Timeshift location" +msgstr "Timeshift plassering" + +# +msgid "Timeshift not possible!" +msgstr "Timeshift er ikke mulig!" + +# +msgid "Timezone" +msgstr "Tidssone" + +# +msgid "Title" +msgstr "Navn" + +# +msgid "Title properties" +msgstr "Egenskaper" + +# +msgid "Titleset mode" +msgstr "Navnevalg" + +msgid "To audio selection" +msgstr "Til lyd utvalg" + +msgid "To subtitle selection" +msgstr "Til valg av undertekster" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" +"For Ã¥ oppdatere mottakerens programvare, følger du disse trinnene:\n" +"1) SlÃ¥ av boksen med bakre strømbryter. Sørg for at oppstartbar USB minnepinne er satt inn.\n" +"2) SlÃ¥ strøm pÃ¥ igjen og hold NED-knappen pÃ¥ frontpanelet inne i 10 sekunder.\n" +"3) Vent til oppstart og følg instruksjonen i veiviseren." + +# +msgid "Today" +msgstr "Idag" + +# +msgid "Toggle a cut mark at the current position" +msgstr "Bytte mellom klipp pÃ¥ den aktuelle posisjonen" + +# +msgid "Tone amplitude" +msgstr "Tone amplityde" + +msgid "Tone mode" +msgstr "Tone modus" + +msgid "Toneburst" +msgstr "Tonekontroll" + +msgid "Toneburst A/B" +msgstr "Tonekontroll A/B" + +msgid "Top and bottom" +msgstr "Topp og bunn" + +# +msgid "Track" +msgstr "Spor" + +# +msgid "Translation" +msgstr "Oversetting" + +# +msgid "Translation:" +msgstr "Oversetting:" + +# +msgid "Translations" +msgstr "Oversettinger" + +# +msgid "Transmission mode" +msgstr "Sendingstype" + +# +msgid "Transponder" +msgstr "" + +# +msgid "Transponder type" +msgstr "" + +msgid "Trash can" +msgstr "Papirkurv" + +# +msgid "Tries left:" +msgstr "Forsøk igjen:" + +# +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Leter etter transpondere i kabel-TV nettverket.. vennligst vent..." + +# +msgid "Trying to download a new packetlist. Please wait..." +msgstr "Leter etter ny pakkeliste. Vennligst vent..." + +# +msgid "Tue" +msgstr "Tir" + +# +msgid "Tuesday" +msgstr "Tirsdag" + +# +msgid "Tune" +msgstr "Søk" + +# +msgid "Tune and focus" +msgstr "Søke inn og skarpstille" + +# +msgid "Tune failed!" +msgstr "Søking feilet!" + +# +msgid "Tuner" +msgstr "Tuner" + +msgid "Tuner configuration" +msgstr "Tuneroppsett" + +msgid "Tuner is not supported" +msgstr "" + +# +msgid "Tuner slot" +msgstr "Tuner spalte" + +# +msgid "Tuner status" +msgstr "Tuner status" + +# +#, python-format +msgid "Tuner status %s" +msgstr "Tuner status %s" + +# +msgid "Tuner type" +msgstr "Tuner type" + +# +msgid "Turkish" +msgstr "Tyrkisk" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +# +msgid "Two" +msgstr "To" + +# +msgid "Type" +msgstr "Type" + +msgid "Type of scan" +msgstr "Søketype" + +# +msgid "USALS" +msgstr "" + +msgid "USALS calibration" +msgstr "USALS kalibrering" + +# +msgid "USB stick" +msgstr "USB minnepinne" + +# +msgid "USB stick wizard" +msgstr "Veiviser for USB minnepinne " + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Oppdatering pÃ¥gÃ¥r\n" +"Vennligst vent til mottakeren starter pÃ¥ nytt\n" +"Dette kan ta flere minutter" + +# +msgid "Undo install" +msgstr "Angre installering" + +# +msgid "Undo uninstall" +msgstr "Angre avinstallering" + +msgid "Unencrypted" +msgstr "Ukryptert" + +# +msgid "UnhandledKey" +msgstr "Ubrukt tast" + +# +msgid "Unicable" +msgstr "Unikabel" + +# +msgid "Unicable LNB" +msgstr "Unikabel LNB" + +# +msgid "Unicable Martix" +msgstr "Unikabel Martix" + +# +msgid "Uninstall" +msgstr "Avinstallere" + +# +msgid "Universal LNB" +msgstr "" + +msgid "Unknown" +msgstr "Ukjent" + +msgid "Unmount" +msgstr "Demonter" + +# +msgid "Unsupported" +msgstr "Ikke støttet" + +msgid "Update" +msgstr "Oppdater" + +msgid "Update and ask to reboot" +msgstr "Oppdater og start pÃ¥ nytt manuelt" + +msgid "Update and reboot (recommended)" +msgstr "Oppdater og start pÃ¥ nytt automatisk (anbefalt)" + +# +msgid "Update channel list only" +msgstr "Oppdater kun kanallisten" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "Oppdateringen er ferdig, %d pakke ble installert." +msgstr[1] "Oppdateringen er ferdig, %d pakker ble installert." + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "Oppdateringen er ferdig. Mottakeren mÃ¥ startes pÃ¥ nytt for at endringene skal tre i kraft." + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "Oppdateringen mislyktes. Mottakeren mangler internettforbindelse." + +msgid "Update has completed." +msgstr "Oppdateringen er ferdig." + +msgid "Updatefeed not available." +msgstr "Oppdateringsstedet er ikke tilgjengelig." + +# +msgid "Updating software catalog" +msgstr "Oppdaterer programvare katalog" + +# +msgid "Upgrading" +msgstr "Oppdaterer" + +# +msgid "Use" +msgstr "Bruk" + +# +msgid "Use DHCP" +msgstr "Motta IP-adresse (DHCP)" + +msgid "Use EIT EPG information when it is available." +msgstr "Bruk EIT (Event Information Table) EPG informasjon nÃ¥r den er tilgjengelig." + +msgid "Use FreeSat EPG information when it is available." +msgstr "Bruk FreeSat EPG informasjon nÃ¥r den er tilgjengelig." + +msgid "Use MHW EPG information when it is available." +msgstr "Bruk MHW (Media High Way) EPG informasjon nÃ¥r den er tilgjengelig." + +msgid "Use Netmed EPG information when it is available." +msgstr "Bruk Netmed EPG informasjon nÃ¥r den er tilgjengelig." + +msgid "Use TV remote control" +msgstr "Bruk fjernkontroll tilhørende TV" + +msgid "Use USALS for this sat" +msgstr "Bruk USALS for satellittposisjonering" + +msgid "Use ViaSat EPG information when it is available." +msgstr "Bruk ViaSat EPG informasjon nÃ¥r den er tilgjengelig." + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +msgid "Use a gateway" +msgstr "Bruk gateway" + +msgid "Use fastscan channel names" +msgstr "Bruk kanaler beregnet for 'fastscan'" + +msgid "Use fastscan channel numbering" +msgstr "Bruk kanalnummerering beregnet for 'fastscan'" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "Bruke egne innstillinger for hver katalog" + +# +msgid "Use interface" +msgstr "Bruk nettverkskort" + +msgid "Use official channel numbering" +msgstr "Bruk standard kanalnummerering" + +msgid "Use original DVB subtitle position" +msgstr "Bruk standard DVB undertekst posisjon" + +msgid "Use original teletext position" +msgstr "Bruk standard tekst-TV posisjon" + +msgid "Use power measurement" +msgstr "Bruk strøm-mÃ¥ling" + +# +msgid "Use the network wizard to configure selected network adapter" +msgstr "Bruk nettverksveiviseren for oppsett av nettverkskortet" + +# +msgid "Use the network wizard to configure your network\n" +msgstr "Bruk nettverksveiviseren for oppsett av nettverket\n" + +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "Bruk pil opp/ned pÃ¥ fjernkontrollen for Ã¥ velge. Trykk deretter OK." + +# +msgid "Use the wizard to set up basic features" +msgstr "Bruk veiviseren for Ã¥ sette opp grunnleggende funksjoner" + +# +msgid "Use these input device settings?" +msgstr "Bruke disse innstillinger for inndataenheter?" + +# +msgid "Use these settings?" +msgstr "Bruke disse innstillinger?" + +# +msgid "Use this video enhancement settings?" +msgstr "Bruke disse video innstillinger?" + +msgid "Use trash can in movielist" +msgstr "Bruk papirkurven i opptaksliste" + +msgid "Used service scan type" +msgstr "Kanalsøksvalg" + +msgid "User - bouquets" +msgstr "Kanallister" + +# +msgid "User defined" +msgstr "Brukerdefinert" + +# +msgid "User defined transponder" +msgstr "Brukerdefinert transponder" + +# +msgid "User interface" +msgstr "Innstilling" + +# +msgid "Username" +msgstr "Brukernavn" + +#, python-format +msgid "Using LNB %d" +msgstr "Bruker LNB %d" + +msgid "Using fixed address" +msgstr "Bruker fast adresse" + +#, python-format +msgid "Using tuner %s" +msgstr "Bruker tuner %s" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "NÃ¥r undertekstsprÃ¥ket er det samme som lydsprÃ¥ket vil tekstingen normalt ikke brukes. Aktiver dette for Ã¥ tillate bruk av undertekstene." + +msgid "VCR scart" +msgstr "" + +msgid "VMGM (intro trailer)" +msgstr "VMGM (intro trailer)" + +# +msgid "Vertical" +msgstr "Vertikal" + +msgid "Vertical turning speed" +msgstr "Vertikal dreiehastighet" + +msgid "Video PID" +msgstr "Bilde PID" + +# +msgid "Video enhancement preview" +msgstr "Video forhÃ¥ndsvisning" + +# +msgid "Video enhancement settings" +msgstr "Video innstillinger" + +# +msgid "Video enhancement setup" +msgstr "Video oppsett" + +# +msgid "Video fine tuning" +msgstr "Finjustering av bilde" + +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Video inngangsvalg\n" +"\n" +"Vennligst trykk OK hvis TV kan vise denne siden (eller velg en annen inngang).\n" +"\n" +"Den neste inngangen vil automatisk bli analysert i 20 sekunder." + +msgid "Video mode selection." +msgstr "Videoinnstilling" + +# +msgid "Video output" +msgstr "Videoutgang" + +# +msgid "Video setup" +msgstr "Videooppsett" + +# +msgid "Video wizard" +msgstr "Video veiviser" + +# +#, python-format +msgid "Video: %s fps" +msgstr "Bilde: %s fps" + +msgid "VideoMode" +msgstr "Bildevisning" + +msgid "Videocodec" +msgstr "Videokoding" + +msgid "Videoformat" +msgstr "Videoformat" + +msgid "Videosize" +msgstr "Videostørrelse" + +# +msgid "View Rass interactive..." +msgstr "Vis Rass interaktiv..." + +msgid "View details" +msgstr "Se detaljer" + +msgid "View list of available " +msgstr "Vis tilgjengelighet" + +msgid "View list of available CommonInterface extensions" +msgstr "Vis en liste over alle Common Interface-valg" + +msgid "View list of available EPG extensions." +msgstr "Vis en liste over alle EPG valg." + +msgid "View list of available Satellite equipment extensions." +msgstr "Vis en liste over alle satellittinnstillinger." + +msgid "View list of available communication extensions." +msgstr "Vis en liste over alle kommunikasjonsvalg." + +msgid "View list of available default settings" +msgstr "Vis en liste over alle standardinnstillinger" + +msgid "View list of available display and userinterface extensions." +msgstr "Vis en liste over alle brukergrensesnitt og skjermvalg" + +msgid "View list of available multimedia extensions." +msgstr "Vis en liste over alle multimediavalg." + +msgid "View list of available networking extensions" +msgstr "Vis en liste over alle nettverksvalg" + +msgid "View list of available recording extensions" +msgstr "Vis en liste over alle opptaksvalg" + +msgid "View list of available skins" +msgstr "Vis en liste over alle skin" + +msgid "View list of available software extensions" +msgstr "Vis en liste over alle programvaretillegg" + +msgid "View list of available system extensions" +msgstr "Vis en liste over alle systemvalg" + +# +msgid "View photos..." +msgstr "Vis fotografier..." + +# +msgid "View teletext..." +msgstr "Se tekst-TV..." + +msgid "View video CD..." +msgstr "Se video CD..." + +msgid "Virtual keyboard" +msgstr "Virtuelt tastatur" + +# +msgid "Voltage mode" +msgstr "Volt modus" + +# +msgid "Volume" +msgstr "Volum" + +# +msgid "W" +msgstr "" + +# +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "WLAN oppkobling" + +# +msgid "WPA" +msgstr "" + +# +msgid "WPA or WPA2" +msgstr "WPA eller WPA2" + +# +msgid "WPA2" +msgstr "" + +# +msgid "WSS on 4:3" +msgstr "WSS pÃ¥ 4:3" + +# +msgid "Waiting" +msgstr "Venter" + +msgid "Waiting for mount" +msgstr "Venter pÃ¥ mount" + +msgid "Waiting for partition" +msgstr "Venter pÃ¥ partisjon" + +msgid "Wakeup" +msgstr "VÃ¥kne" + +msgid "Wakeup TV from standby" +msgstr "VÃ¥kne TV fra avslÃ¥tt stilling" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "VÃ¥kne mottakeren fra avslÃ¥tt stilling" + +msgid "Wakeup signal from TV" +msgstr "VÃ¥kne signal fra TV" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "Advarsel: ingen LNB; bruker standardinnstillinger." + +msgid "Watch movies..." +msgstr "Se filmer..." + +msgid "Watch recordings..." +msgstr "Se pÃ¥ opptak..." + +# +msgid "Wed" +msgstr "Ons" + +# +msgid "Wednesday" +msgstr "Onsdag" + +# +msgid "Weekday" +msgstr "Ukedag" + +msgid "Weighted position" +msgstr "Hovedposisjon" + +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"Velkommen til klipp og redigering.\n" +"\n" +"GÃ¥ til starten av det du ønsker Ã¥ klippe bort. Trykk OK, velg 'start klipp'.\n" +"\n" +"Deretter gÃ¥ til slutten, trykk OK, velg 'klipp slutt'. Det var det hele." + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "Velkommen til veiviseren. Denne vil hjelpe deg med Ã¥ oppdatere programvare og sikkerhetskopiere dine innstillinger-" + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" +"Velkommen.\n" +"\n" +"Hvis du vil koble mottakeren til internett, vil veiviseren hjelpe deg med Ã¥ sette opp de vanligste innstillingene av mottakerens nettverk.\n" +"\n" +"Trykk OK for Ã¥ komme igang." + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" +"Velkommen.\n" +"\n" +"Denne veiviseren vil hjelpe deg gjennom det grunnleggende oppsettet av mottakeren.\n" +"Trykk OK for Ã¥ komme igang." + +msgid "Welcome..." +msgstr "Velkommen..." + +# +msgid "West" +msgstr "Vest" + +msgid "West limit set" +msgstr "Sett vest grense" + +msgid "What do you want to scan?" +msgstr "Hva vil du søke etter?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "NÃ¥r dette er valgt, kan PiP (bilde i bilde) bli avsluttet med exit knappen." + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "NÃ¥r dette er valgt, kan du stille inn et tidsrom den inaktive tidtakeren ignoreres. Det er ikke deteksjonen som frakobles men den inaktive sluttid som frakobles i tidsrommet" + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "NÃ¥r dette er valgt, vil AIT data (Application Information Table) inngÃ¥ i http dataprotokoll. Dette tillater en klient mottaker Ã¥ bruke HbbTV. (Hybrid broadcast broadband TV)" + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "NÃ¥r dette er valgt, vil ECM data inngÃ¥ i http datastrømmen . Dette tillater en klient mottaker Ã¥ gjøre dekoding." + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "NÃ¥r dette er valgt, vil EIT data (Event Information Table) inngÃ¥ i http datastrømmen. Dette tillater en klient mottaker Ã¥ vise EPG." + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "NÃ¥r dette er valgt, vil et skjermvarsel vises nÃ¥r en avspilling er ferdig og den neste starter." + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "NÃ¥r dette er valgt, vil et skjermvarsel vises nÃ¥r opptak starter." + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "NÃ¥r dette er valgt, vil et bakgrunnsbilde vises pÃ¥ skjermen ved radiolytting." + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "NÃ¥r dette er valgt, vil et opptak kunne avbryte direktesendt TV nÃ¥r det ikke finnes ledige tunere." + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "NÃ¥r dette er valgt, vil et skjermvarsel vises med valget stoppe eller fortsette timeshift." + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "NÃ¥r dette er valgt, vil kanal nummereringen starte pÃ¥ '1' for hver kanalliste." + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "NÃ¥r dette er valgt, vil et 4:3 bilde strekkes ut for Ã¥ tilpasse seg skjermen." + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "NÃ¥r dette er valgt, fortsettes automatisk til neste kanalliste nÃ¥r den siste kanalen i nÃ¥værende liste er nÃ¥dd." + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "NÃ¥r dette er valgt, flyttes slettede opptak til papirkurven i stedet for Ã¥ bli slettet umiddelbart." + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "NÃ¥r dette er valgt, vises EIT nÃ¥/neste programdata pÃ¥ informasjonslinjen. Hvis deaktivert, vises nÃ¥/neste programdata fra EPG minne." + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "NÃ¥r dette er valgt, vises krypteringsinfo pÃ¥ informasjonslinjen (nÃ¥r det støttes av skin)." + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "NÃ¥r dette er valgt, skjules feilmeldinger knyttet til Common Interface modulen." + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "NÃ¥r dette er valgt, skjules feilmeldinger knyttet til kanalbytte." + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "NÃ¥r dette er valgt, vises tekst-TV undertekst pÃ¥ opptak." + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "NÃ¥r dette er valgt, foretrekkes DVB undertekst framfor tekst-TV undertekst nÃ¥r begge typer er tilgjengelig." + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "NÃ¥r dette er valgt, vil DVB underteksten være sentrert horisontalt." + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "NÃ¥r dette er valgt, vises DVB underteksten pÃ¥ sin opprinnelige posisjon." + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "NÃ¥r dette er valgt, vises DVB underteksten i gult i stedet for den opprinnelige fargen." + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "NÃ¥r dette er valgt, vil http dataprotokoll bli dekodet pÃ¥ serversiden. (Ekstern) Klient mottaker trenger ikke Ã¥ gjøre dekoding." + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "NÃ¥r dette er valgt, kan mediespilleren avsluttes med exit knappen." + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "NÃ¥r dette er valgt, vil motorens strømforbruk bli mÃ¥lt for Ã¥ oppdage nÃ¥r motorbevegelsen stopper (hvis det støttes av tuner)." + +msgid "When enabled, number markers will be hiden." +msgstr "NÃ¥r dette er valgt, skjules nummermarkører." + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "NÃ¥r dette er valgt, vil kanalene kunne grupperes i flere kanallister." + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "NÃ¥r dette er valgt, vises kanalnummer pÃ¥ kanalvalgs skjermen" + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "NÃ¥r dette er valgt, kan undertekst for hørselshemmede brukes." + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "NÃ¥r dette er valgt, foretrekkes undertekst for hørselshemmede framfor vanlig undertekst, nÃ¥r begge typer er tilgjengelig." + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "NÃ¥r dette er valgt, lagres tekst-TV sider for raskere tilgang." + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "NÃ¥r dette er valgt, vises tekst-TV undertekst pÃ¥ sin opprinnelige posisjon." + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "NÃ¥r dette er valgt, vises VCR scart innstillingen pÃ¥ hovedmenyen." + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "NÃ¥r dette er valgt, vil kanalinfo være skjult ved radiolytting" + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "NÃ¥r dette er valgt, vises informasjonslinjen nÃ¥r neste program starter." + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "NÃ¥r dette er valgt, vises informasjonslinjen ved kanalbytte." + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "NÃ¥r dette er valgt, vises informasjonslinjen ved hopping framover/bakover under medie avspilling." + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "NÃ¥r dette er valgt, vises lengden pÃ¥ hvert opptak i opptakslisten (dette kan medføre noe ekstra laste tid)." + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "NÃ¥r dette er valgt, vil opprinnelig linjeskift automatisk bli fjernet fra tekst-TV undertekst." + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "NÃ¥r dette er valgt, vil mottakeren automatisk bruke lyd som tidligere ble aktivert." + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "NÃ¥r dette er valgt, vil mottakeren automatisk bruke undertekst som tidligere ble aktivert." + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "NÃ¥r dette er valgt, vil transponder endringer ikke bli overvÃ¥ket av tuner. Ikke bruk dette alternativet hvis du er i tvil." + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "NÃ¥r dette er valgt, vil mottakeren bruke AC3 lyd (nÃ¥r tilgjengelig)." + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "NÃ¥r dette er valgt, vil timeshift starte automatisk i bakgrunnen etter en forhÃ¥ndsdefinert tid." + +msgid "When enabled, use DHCP for the IP configuration." +msgstr "NÃ¥r dette er valgt, vil DHCP brukes til IP-konfigurasjon." + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "NÃ¥r dette er valgt, vil mottakeren oppdage aktivitet pÃ¥ VCR SCART inngangen." + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "NÃ¥r annet enn null er valgt vil et opptak starte tidligere enn starttidspunktet angitt av EPG." + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "NÃ¥r annet enn null er valgt vil et opptak stoppe senere enn sluttidspunktet angitt av EPG." + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "NÃ¥r innholdet har et sideforhold pÃ¥ 16:9, velg om bildet skal skaleres/strekkes ut." + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "NÃ¥r innholdet har et sideforhold pÃ¥ 4:3, velg om bildet skal skaleres/strekkes ut." + +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"Hvis du velger Ã¥ gjenopprette mottakeren vil ALLE innstilte data gÃ¥ tapt\n" +"(inkludert kanallister, tjenester, satellittdata ...)\n" +"NÃ¥r gjenopprettingen er ferdig vil mottakeren automatisk starte pÃ¥ nytt!\n" +"\n" +"Er du helt sikker pÃ¥ Ã¥ gjenopprette?" + +# +msgid "Where do you want to backup your settings?" +msgstr "Hvor skal sikkerhetskopien lagres?" + +msgid "Where to save temporary timeshift recordings?" +msgstr "Hvor skal midlertidige tidtakeropptak lagres?" + +# +msgid "Wireless LAN" +msgstr "TrÃ¥dløst LAN" + +# +msgid "Wireless network" +msgstr "TrÃ¥dløst nettverk" + +# +msgid "Wireless network configuration..." +msgstr "TrÃ¥dløst nettverksoppsett..." + +msgid "Wireless network connection setup" +msgstr "TrÃ¥dløst nettverksoppsett" + +msgid "Wireless network connection setup." +msgstr "TrÃ¥dløst nettverksoppsett." + +msgid "Wireless network state" +msgstr "TrÃ¥dløs nettverkstilstand" + +msgid "With popup" +msgstr "Med varsel" + +msgid "Without popup" +msgstr "Uten varsel" + +msgid "Would you like to install a softcam?" +msgstr "Vil du installere en softcam?" + +msgid "Write error while recording. Disk full?\n" +msgstr "Skrivefeil under opptak. Er disken full?\n" + +# +msgid "Write failed!" +msgstr "Skriving feilet!" + +# +msgid "YPbPr" +msgstr "" + +# +msgid "Year" +msgstr "Ã…r" + +msgid "Yellow DVB subtitles" +msgstr "Gul DVB undertekst" + +# +msgid "Yes" +msgstr "Ja" + +msgid "Yes and save" +msgstr "Ja og lagre" + +msgid "Yes and save in movie dir" +msgstr "Ja, og lagre i innspillingskatalog" + +# +msgid "Yes to all" +msgstr "Ja til alt" + +msgid "Yes, always" +msgstr "Ja, alltid" + +msgid "Yes, and delete this movie" +msgstr "Ja, og slett denne filmen" + +# +msgid "Yes, backup my settings!" +msgstr "Ja, ta sikkerhetskopi av innstillingene!" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +msgid "Yes, do a manual scan now" +msgstr "Ja, gjør et manuelt søk nÃ¥" + +msgid "Yes, do an automatic scan now" +msgstr "Ja, gjør et automatisk søk nÃ¥" + +msgid "Yes, do another manual scan now" +msgstr "Ja, gjør et nytt manuelt søk nÃ¥" + +msgid "Yes, perform a shutdown now." +msgstr "Ja, slÃ¥ av nÃ¥." + +# +msgid "Yes, restore the settings now" +msgstr "Ja, legg tilbake innstillingene nÃ¥" + +msgid "Yes, returning to movie list" +msgstr "Ja, returnerer til opptaksliste" + +msgid "Yesterday" +msgstr "I gÃ¥r" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" +"Du har allerede installert en kanalliste,\n" +"vil du fjerne\n" +"\"%s\"?" + +# +msgid "You can cancel the installation." +msgstr "Du kan avbryte installasjonen." + +# +msgid "You can cancel the removal." +msgstr "Du kan avbryte slettingen." + +msgid "You can continue watching TV etc. while this is running." +msgstr "Du kan fortsette Ã¥ se pÃ¥ TV mens dette pÃ¥gÃ¥r." + +# +msgid "You can install this plugin." +msgstr "Du kan installere dette programtillegg." + +msgid "You can only burn receiver recordings!" +msgstr "Du kan bare brenne opptak som er gjort av mottakeren!" + +# +msgid "You can remove this plugin." +msgstr "Du kan fjerne dette programtillegg." + +# +msgid "You cannot delete this!" +msgstr "Du kan ikke slette dette!" + +msgid "You didn't select a channel to record from." +msgstr "Du har ikke valgt kanal for opptak." + +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "Du har valgt Ã¥ sikkerhetskopiere innstillingene. Vennligst trykk OK for Ã¥ starte sikkerhetskopieringen." + +# +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "Du har valgt Ã¥ opprette en ny NFI oppstartbar USB minnepinne. USB minnepinnen vil bli partisjonert pÃ¥ nytt og alle data vil bli slettet." + +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "Du har valgt Ã¥ gjenopprette innstillingene dine. Enigma2 vil starte pÃ¥ nytt etter gjenoppretting. Vennligst trykk OK for Ã¥ starte gjenopprettingen nÃ¥." + +# +#, python-format +msgid "You have to wait %s!" +msgstr "Du mÃ¥ vente %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" +"En PC mÃ¥ kobles til mottakeren. For ytterligere instruksjoner, besøk nettstedet http://www.dm7025.de.\n" +"Mottakeren vil bli stanset. Etter Ã¥ ha utført oppdateringsinstrukser fra nettsiden, vil den nye proramvaren be deg om Ã¥ gjenopprette innstillingene." + +msgid "You system does not support ext4" +msgstr "Systemet ditt støtter ikke ext4" + +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "Din sikkerhetskopi er OK. Vi vil nÃ¥ hjelpe deg videre i oppdateringsprosessen." + +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "Samlingen din overstiger plassen du har tilgjengelig pÃ¥ enkeltlagsplaten, du trenger en tolags DVD!" + +# +msgid "Your current collection will get lost!" +msgstr "Din nÃ¥værende samling vil gÃ¥ tapt!" + +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"Frontprosessorens programvare mÃ¥ oppdateres.\n" +"Trykk OK for Ã¥ starte oppdatering." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Frontprosessoren vil bli oppdatert\n" +"Vennligst vent til mottakeren starter pÃ¥ nytt\n" +"Dette kan ta flere minutter" + +# +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"Internettforbindelsen fungerer ikke!\n" +"Velg hva du vil gjøre videre." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "Internettforbindelsen fungerer (ip:%s)" + +# +msgid "Your network configuration has been activated." +msgstr "Nettverksoppsettet er aktivert." + +msgid "Your receiver does not have an internet connection" +msgstr "Mottakeren mangler internettforbindelse" + +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"Mottakeren er klar til bruk.\n" +"\n" +"Internettforbindelsen fungerer.\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Mottakeren er klar til bruk.\n" +"\n" +"Internett forbindelsen fungerer.\n" +"\n" +"Vennligst trykk OK for Ã¥ fortsette." + +msgid "Your receiver is rebooting" +msgstr "Mottakeren starter pÃ¥ nytt" + +msgid "Your receiver is shutting down" +msgstr "Mottakeren blir slÃ¥tt av" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "Mottakeren blir slÃ¥tt av. Vennligst vent..." + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "Mottakeren kan være ubrukelig. SlÃ¥ opp i hÃ¥ndboken for Ã¥ fÃ¥ hjelp før omstart av mottakeren." + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "Mottakeren vil nÃ¥ bli slÃ¥tt av etter fastsatt tidtakerinnstilling" + +msgid "Your receiver will got to standby due to inactivity." +msgstr "Mottakeren vil nÃ¥ bli slÃ¥tt av pÃ¥ grunn av inaktivitet" + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "Mottakeren starter pÃ¥ nytt nÃ¥r du har trykket OK pÃ¥ fjernkontrollen." + +# +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"Din trÃ¥dløse LAN internett tilkobling kan ikke startes!\n" +"Har du koblet til din USB WLAN minnepinne?\n" +"\n" +"Velg hva du vil gjøre videre." + +msgid "Zap" +msgstr "GÃ¥ til" + +# +msgid "Zap back to previously tuned service?" +msgstr "GÃ¥ tilbake til forrige kanal?" + +# +msgid "Zap back to service before positioner setup?" +msgstr "GÃ¥ tilbake til kanal før motoroppsett?" + +# +msgid "Zap back to service before tuner setup?" +msgstr "GÃ¥ tilbake til kanal før oppsett av tuner?" + +msgid "Zap focus to Picture in Picture" +msgstr "GÃ¥ til Bilde i Bilde (PiP)" + +msgid "Zap focus to main screen" +msgstr "GÃ¥ til hovedmeny" + +msgid "Zap mode" +msgstr "GÃ¥ til" + +msgid "Zap to selected channel" +msgstr "GÃ¥ til valgt kanal" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "GÃ¥ til til valgt kanal, eller vis detaljert program info (avhengig av innstilling)" + +# +msgid "[alternative edit]" +msgstr "[alternativ redigering]" + +# +msgid "[bouquet edit]" +msgstr "[kanalliste redigering]" + +# +msgid "[favourite edit]" +msgstr "[favorittliste redigering]" + +# +msgid "[move mode]" +msgstr "[flyttemodus]" + +msgid "a gui to assign services/providers to common interface modules" +msgstr "et grafisk brukergrensesnitt for Ã¥ tildele kanaler/leverandører til common interface moduler" + +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "et grafisk brukergrensesnitt for Ã¥ tildele kanaler/leverandører/caids til common interface moduler" + +msgid "abort alternatives edit" +msgstr "avbryt alternativ redigering" + +# +msgid "abort bouquet edit" +msgstr "avbryt redigering av kanalliste" + +# +msgid "abort favourites edit" +msgstr "avbryt favorittliste redigering" + +# +msgid "about to start" +msgstr "starter opp" + +# +msgid "activate network adapter configuration" +msgstr "aktiver nettverksinnstilling" + +# +msgid "add alternatives" +msgstr "legge til alternativer" + +# +msgid "add bookmark" +msgstr "legge til bokmerker" + +# +msgid "add bouquet" +msgstr "legge til kanalliste" + +msgid "add marker" +msgstr "legge til markør" + +msgid "add service to bouquet" +msgstr "legge til kanal i kanalliste" + +msgid "add service to favourites" +msgstr "legge til kanal i favorittliste" + +# +msgid "add to parental protection" +msgstr "legge til i foreldrekontrollen" + +msgid "adult movie/drama" +msgstr "voksenfilm/drama" + +# +msgid "advanced" +msgstr "utvidet" + +msgid "adventure/western/war" +msgstr "eventyr/western/krig" + +msgid "advertisement/shopping" +msgstr "reklame/shopping" + +# +msgid "after " +msgstr "etter" + +# +msgid "alphabetic" +msgstr "alfabetisk" + +msgid "alphabetic reverse" +msgstr "alfabetisk bakover" + +# +msgid "alternative" +msgstr "alternativ" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "kunst/kultur (uten musikk, generelt)" + +msgid "arts/culture magazine" +msgstr "kunst/kultur magasin" + +msgid "athletics" +msgstr "friidrett" + +# +msgid "audio tracks" +msgstr "lydfiler" + +# +msgid "auto" +msgstr "auto" + +# +msgid "automatic" +msgstr "automatisk" + +# +msgid "back" +msgstr "tilbake" + +# +msgid "background image" +msgstr "bakgrunns bilde" + +msgid "ballet" +msgstr "ballett" + +#, python-format +msgid "bc%s" +msgstr "bc%s" + +# +msgid "better" +msgstr "best" + +# +msgid "black" +msgstr "sort" + +msgid "black & white" +msgstr "sort & hvitt" + +msgid "blacklist" +msgstr "svarteliste" + +# +msgid "blue" +msgstr "blÃ¥" + +msgid "broadcasting/press" +msgstr "kringkasting/presse" + +# +msgid "by date" +msgstr "etter dato" + +msgid "cartoon/puppets" +msgstr "tegneserie/dukker" + +msgid "center" +msgstr "sentrum" + +msgid "centered" +msgstr "sentrert" + +msgid "centered, wrapped" +msgstr "sentrert, brytning" + +# +msgid "chapters" +msgstr "kapitler" + +msgid "childrens's/youth program (general)" +msgstr "barne/ungdomsprogram (generelt)" + +# +msgid "circular left" +msgstr "sirkulær venstre" + +# +msgid "circular right" +msgstr "sirkulær høyre" + +msgid "comedy" +msgstr "komedie" + +msgid "complex" +msgstr "kompleks" + +# +msgid "config menu" +msgstr "innstillingsmeny" + +# +msgid "confirmed" +msgstr "bekreftet" + +# +msgid "connected" +msgstr "tilkoblet" + +# +msgid "continue" +msgstr "fortsett" + +msgid "cooking" +msgstr "matlaging" + +# +msgid "copy to bouquets" +msgstr "kopiere til kanallister" + +msgid "create directory" +msgstr "opprette katalog" + +#, python-format +msgid "currently installed image: %s" +msgstr "installerte image: %s" + +# +msgid "daily" +msgstr "daglig" + +# +msgid "day" +msgstr "dag" + +# +msgid "default" +msgstr "standard" + +# +msgid "delete cut" +msgstr "slette klipp" + +# +msgid "delete..." +msgstr "slett..." + +msgid "descramble and record ecm" +msgstr "dekode og ta opp ecm" + +msgid "detective/thriller" +msgstr "detektime/spenning" + +# +msgid "disable" +msgstr "deaktivere" + +msgid "disable move mode" +msgstr "slÃ¥ av flytte modus" + +# +msgid "disabled" +msgstr "deaktivert" + +# +msgid "disconnected" +msgstr "frakoblet" + +msgid "discussion/interview/debate" +msgstr "diskusjon/intervju/debatt" + +# +msgid "do nothing" +msgstr "ikke gjør noe" + +msgid "documentary" +msgstr "dokumentar" + +msgid "don't descramble, record ecm" +msgstr "ikke dekode, ta opp ecm" + +# +msgid "done!" +msgstr "ferdig!" + +msgid "east" +msgstr "øst" + +msgid "economics/social advisory" +msgstr "økonomi/sosial rÃ¥dgivende" + +msgid "edit alternatives" +msgstr "alternativer" + +msgid "education/science/factual topics (general)" +msgstr "utdanning/vitenskap/faktaprogram (generelt)" + +# +msgid "empty" +msgstr "tom" + +# +msgid "enable" +msgstr "aktivere" + +# +msgid "enable bouquet edit" +msgstr "aktivere kanalliste redigering" + +# +msgid "enable favourite edit" +msgstr "aktivere favorittliste redigering" + +# +msgid "enable move mode" +msgstr "aktivere flytte modus" + +# +msgid "enabled" +msgstr "aktivert" + +# +msgid "end alternatives edit" +msgstr "avslutte redigering" + +# +msgid "end bouquet edit" +msgstr "avslutt redigering av kanalliste" + +# +msgid "end cut here" +msgstr "avslutt klippet her" + +# +msgid "end favourites edit" +msgstr "avslutte favorittliste redigering" + +msgid "entertainment (10-16 year old)" +msgstr "underholdning (10-16 Ã¥r)" + +msgid "entertainment (6-14 year old)" +msgstr "underholdning (6-14 Ã¥r)" + +# +msgid "equal to" +msgstr "lik" + +msgid "equestrian" +msgstr "hestesport" + +# +msgid "exit DVD player or return to file browser" +msgstr "avslutt DVD spiller eller gÃ¥ til til fil søker" + +msgid "exit movielist" +msgstr "Avslutte opptaksliste" + +# +msgid "exit network adapter configuration" +msgstr "avslutt nettverksinnstilling" + +# +msgid "exit networkadapter setup menu" +msgstr "avslutt nettverksmeny" + +msgid "experimental film/video" +msgstr "Eksperimentell film/Video" + +msgid "false" +msgstr "falsk" + +msgid "fashion" +msgstr "mote" + +# +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "filformat (BMP, PNG, JPG, GIF)" + +# +msgid "filename" +msgstr "filnavn" + +msgid "film/cinema" +msgstr "film/kino" + +msgid "fine arts" +msgstr "kunst" + +# +msgid "fine-tune your display" +msgstr "fininnstill din skjerm" + +msgid "fitness & health" +msgstr "trening & helse" + +# +msgid "flat alphabetic" +msgstr "sorter alfabetisk" + +# +msgid "flat alphabetic reverse" +msgstr "sorter alfabetisk baklengs" + +msgid "folk/traditional music" +msgstr "folk/tradisjonell musikk" + +msgid "football/soccer" +msgstr "fotball" + +msgid "foreign countries/expeditions" +msgstr "utland/ekspedisjoner" + +# +msgid "forward to the next chapter" +msgstr "framover til neste kapittel" + +# +msgid "free" +msgstr "ledig" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "videreutdanning" + +msgid "game show/quiz/contest" +msgstr "game show/spørrekonkurranse" + +msgid "gardening" +msgstr "hagearbeid" + +# +msgid "go to deep standby" +msgstr "slÃ¥ helt av" + +msgid "go to standby" +msgstr "slÃ¥ av" + +# +msgid "grab this frame as bitmap" +msgstr "grip denne rammen som bitmap" + +# +msgid "green" +msgstr "grønn" + +msgid "handicraft" +msgstr "hÃ¥ndverk" + +msgid "height" +msgstr "høyde" + +# +msgid "help..." +msgstr "hjelp..." + +# +msgid "horizontal" +msgstr "horisontal" + +msgid "information/education/school program" +msgstr "informasjon/utdanning/skoleprogram" + +msgid "init module" +msgstr "igangsett modul" + +# +msgid "init modules" +msgstr "igangsette moduler" + +msgid "insert mark here" +msgstr "sett markør her" + +msgid "invalid type" +msgstr "ugyldig type" + +msgid "jazz" +msgstr "jazz" + +# +msgid "jump back to the previous title" +msgstr "gÃ¥ tilbake til forrige tittel" + +# +msgid "jump forward to the next title" +msgstr "gÃ¥ framover til neste tittel" + +msgid "languages" +msgstr "sprÃ¥k" + +msgid "leave movie player..." +msgstr "avslutte mediespiller..." + +# +msgid "left" +msgstr "venstre" + +msgid "left, wrapped" +msgstr "venstre, brytning" + +msgid "leisure hobbies (general)" +msgstr "fritidshobby (generelt)" + +# +msgid "length" +msgstr "lengde" + +msgid "limit ..., aborting !" +msgstr "grense ..., avbryter!" + +# +msgid "list style compact" +msgstr "kompakt liste" + +# +msgid "list style compact with description" +msgstr "kompakt liste med beskrivelse" + +# +msgid "list style default" +msgstr "standard liste" + +# +msgid "list style single line" +msgstr "enkel liste" + +msgid "literature" +msgstr "litteratur" + +msgid "live broadcast" +msgstr "direktesending" + +# +msgid "locked" +msgstr "lÃ¥st" + +msgid "loopthrough to" +msgstr "gjennomgang til" + +msgid "magazines/reports/documentary" +msgstr "magasiner/rapporter/dokumentarer" + +# +msgid "manual" +msgstr "brukerveiledning" + +msgid "martial sports" +msgstr "kampsport" + +msgid "medicine/physiology/psychology" +msgstr "medisin/fysiologi/psykologi" + +# +msgid "menu" +msgstr "meny" + +# +msgid "mins" +msgstr "min" + +# +msgid "minutes" +msgstr "minutter" + +# +msgid "month" +msgstr "mÃ¥ned" + +msgid "motor sport" +msgstr "Motorsport" + +msgid "motoring" +msgstr "kjører" + +# +msgid "move down to last entry" +msgstr "gÃ¥ til til siste oppføring" + +# +msgid "move down to next entry" +msgstr "gÃ¥ til til neste oppføring" + +# +msgid "move up to first entry" +msgstr "gÃ¥ til til første oppføring" + +# +msgid "move up to previous entry" +msgstr "gÃ¥ til til forrige oppføring" + +msgid "movie/drama (general)" +msgstr "film/drama (generelt)" + +# +msgid "multinorm" +msgstr "multinorm" + +msgid "music/ballet/dance (general)" +msgstr "musikk/ballett/dans (generelt)" + +msgid "musical/opera" +msgstr "musikal/opera" + +msgid "nature/animals/environment" +msgstr "natur/dyr/miljø" + +# +msgid "never" +msgstr "aldri" + +msgid "new media" +msgstr "ny media" + +msgid "news magazine" +msgstr "nyhets magasin" + +msgid "news/current affairs (general)" +msgstr "nyheter/aktuelt (generelt)" + +msgid "news/weather report" +msgstr "nyheter/værmelding" + +# +msgid "no" +msgstr "nei" + +# +msgid "no CAId selected" +msgstr "ingen CAId er valgt" + +# +msgid "no CI slots found" +msgstr "ingen CI slot er funnet" + +# +msgid "no module found" +msgstr "Ingen modul er funnet" + +msgid "no storage devices found" +msgstr "ingen lagringsenheter er funnet" + +# +msgid "none" +msgstr "Ingen" + +msgid "normal" +msgstr "normal" + +# +msgid "not configured" +msgstr "ikke konfigurert" + +# +msgid "not locked" +msgstr "Ikke lÃ¥st" + +msgid "not supported" +msgstr "ikke støttet" + +# +msgid "not used" +msgstr "ikke i bruk" + +# +msgid "nothing connected" +msgstr "ikke noe er tilkoblet" + +# +msgid "of a DUAL layer medium used." +msgstr "av et to lags medium som brukes." + +msgid "of a SINGLE layer medium used." +msgstr "av et enkeltlags medium som brukes." + +# +msgid "off" +msgstr "av" + +msgid "offset is" +msgstr "offset er" + +# +msgid "on" +msgstr "pÃ¥" + +# +msgid "on READ ONLY medium." +msgstr "pÃ¥ READ ONLY medium." + +msgid "on end of movie" +msgstr "pÃ¥ slutten av opptaket" + +# +msgid "once" +msgstr "en gang" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +# +msgid "open nameserver configuration" +msgstr "Ã¥pne innstilling for navneserver " + +msgid "original" +msgstr "original" + +msgid "original language" +msgstr "opprinnelig sprÃ¥k" + +# +msgid "pass" +msgstr "klart" + +msgid "performing arts" +msgstr "scenekunst" + +msgid "play as picture in picture" +msgstr "Vis som bilde i bilde" + +msgid "play in mainwindow" +msgstr "spill av i hovedvinduet" + +msgid "please press OK when ready" +msgstr "vennligst trykk OK for Ã¥ fortsette" + +# +msgid "please wait, loading picture..." +msgstr "vennligst vent, henter bilde" + +msgid "popular culture/traditional arts" +msgstr "populær kultur/tradisjonell kunst" + +msgid "pre-school children's program" +msgstr "førskolebarn/barneprogram" + +msgid "receiver software because updates are available." +msgstr "mottaker programvare fordi oppdateringer er tilgjengelige." + +# +msgid "record" +msgstr "spill inn" + +# +msgid "recording..." +msgstr "spiller inn..." + +# +msgid "red" +msgstr "rød" + +msgid "religion" +msgstr "" + +msgid "remarkable people" +msgstr "bemerkelsesverdige mennesker" + +msgid "remove after this position" +msgstr "slette etter denne posisjon" + +msgid "remove all alternatives" +msgstr "slette alle alternativer" + +msgid "remove all new found flags" +msgstr "slette nye flagg" + +msgid "remove before this position" +msgstr "fjerne før denne posisjonen" + +msgid "remove bookmark" +msgstr "slette bokmerke" + +msgid "remove directory" +msgstr "slette katalog" + +msgid "remove entry" +msgstr "fjerne denne" + +msgid "remove from parental protection" +msgstr "fjerne fra foreldrekontroll" + +msgid "remove new found flag" +msgstr "slette nye flagg" + +msgid "remove selected satellite" +msgstr "slett valgt satellitt" + +msgid "remove this mark" +msgstr "slett markøren" + +msgid "rename entry" +msgstr "endre navn i oppføringen" + +# +msgid "repeat playlist" +msgstr "gjenta spilliste" + +# +msgid "repeated" +msgstr "gjentatt" + +msgid "reverse by date" +msgstr "bakover etter dato" + +# +msgid "rewind to the previous chapter" +msgstr "spol tilbake til forrige kapittel" + +# +msgid "right" +msgstr "høyre" + +msgid "right, wrapped" +msgstr "høyre, brytning" + +msgid "rock/pop" +msgstr "rock/pop" + +msgid "romance" +msgstr "romantikk" + +msgid "save last directory on exit" +msgstr "lagre siste katalog ved avslutning" + +msgid "save playlist on exit" +msgstr "lagre spilliste ved avslutning" + +msgid "scan state" +msgstr "søkestatus" + +msgid "science fiction/fantasy/horror" +msgstr "science fiction/fantasi/skrekk" + +# +msgid "second cable of motorized LNB" +msgstr "sekundær kabel for motorisert LNB" + +# +msgid "seconds" +msgstr "sekunder" + +# +msgid "select" +msgstr "velg" + +# +msgid "select CAId's" +msgstr "velg CAId's" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +# +msgid "select menu entry" +msgstr "velg meny" + +msgid "select movie" +msgstr "Velge opptak" + +msgid "select the movie path" +msgstr "Velg mÃ¥lmappen for opptak" + +msgid "serious music/classic music" +msgstr "seriøs musikk/klassisk musikk" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "seriøs/klassisk/religiøs/historisk film/drama" + +msgid "service PIN" +msgstr "kanal PIN" + +msgid "set as startup service" +msgstr "sett som oppstartskanal" + +msgid "setup PIN" +msgstr "velg PIN" + +# +msgid "show DVD main menu" +msgstr "vis DVD hovedmeny" + +msgid "show all tags" +msgstr "vis alle tagger" + +# +msgid "show alternatives" +msgstr "vis alternativer" + +# +msgid "show event details" +msgstr "vis programdetaljer" + +# +msgid "show extended description" +msgstr "Vis utvidet beskrivelse" + +msgid "show mediaplayer on mainmenu" +msgstr "vis mediespiller pÃ¥ hovedmeny" + +msgid "show softwaremanager in setup menu" +msgstr "vis programvareoppsett" + +msgid "show softwaremanager on blue button" +msgstr "vis programvareoppsett med blÃ¥ knapp" + +# +msgid "show tag menu" +msgstr "Vis tag meny" + +# +msgid "show transponder info" +msgstr "vis transponder info" + +msgid "show/game show (general)" +msgstr "underholdning/game show (generelt)" + +msgid "shuffle" +msgstr "tilfeldig rekkefølge" + +msgid "shut down" +msgstr "slÃ¥ av" + +# +msgid "simple" +msgstr "enkel" + +# +msgid "skip backward" +msgstr "gÃ¥ tilbake" + +# +msgid "skip forward" +msgstr "gÃ¥ framover" + +msgid "soap/melodram/folkloric" +msgstr "sÃ¥pe/melodrama/folklore" + +msgid "social/political issues/economics (general)" +msgstr "sosial/politiske spørsmÃ¥l/økonomi (generelt)" + +msgid "social/spiritual science" +msgstr "sosial/Ã¥ndsvitenskap" + +msgid "sorting of playlists" +msgstr "sortering av spillister" + +# +msgid "special characters" +msgstr "spesial tegn" + +msgid "special events" +msgstr "spesial program" + +msgid "special format data DVD (HDTV compatible)" +msgstr "spesiell data DVD (HDTV-kompatibel)" + +msgid "sports (general)" +msgstr "sport (generelt)" + +msgid "sports magazine" +msgstr "sportsmagasin" + +# +msgid "standard" +msgstr "standard" + +# +msgid "start cut here" +msgstr "start klipp her" + +msgid "start directory" +msgstr "start katalog" + +msgid "stepsize" +msgstr "steg størrelse" + +# +msgid "stereo" +msgstr "" + +msgid "stop using as startup service" +msgstr "slutt og bruke som oppstarttjeneste" + +msgid "switch to bookmarks" +msgstr "gÃ¥ til bokmerker" + +msgid "switch to filelist" +msgstr "gÃ¥ til filliste" + +msgid "switch to the next angle" +msgstr "gÃ¥ til neste posisjon" + +msgid "switch to the next audio track" +msgstr "gÃ¥ til neste lydspor" + +msgid "switch to the next subtitle language" +msgstr "bytt til neste tekstsprÃ¥k" + +msgid "talk show" +msgstr "talk show" + +msgid "team sports" +msgstr "lagidrett" + +msgid "technology/natural science" +msgstr "teknologi/naturvitenskap" + +# +msgid "template file" +msgstr "filformat" + +msgid "tennis/squash" +msgstr "tennis/squash" + +msgid "this recording" +msgstr "dette opptaket" + +# +msgid "this service is protected by a parental control pin" +msgstr "denne kanalen er beskyttet av en foreldrekontroll kode" + +msgid "toggle time, chapter, audio, subtitle info" +msgstr "juster tid, kapittel, lyd, undertekst info" + +msgid "top" +msgstr "topp" + +msgid "tourism/travel" +msgstr "turisme/reise" + +msgid "true" +msgstr "sant" + +msgid "unavailable" +msgstr "utilgjengelig" + +# +msgid "unconfirmed" +msgstr "ubekreftet" + +msgid "undefined" +msgstr "ubestemt" + +# +msgid "unknown" +msgstr "ukjent" + +# +msgid "unknown service" +msgstr "ukjent kanal" + +msgid "unpublished" +msgstr "ikke publisert" + +msgid "until standby/restart" +msgstr "til slÃ¥r av/starter pÃ¥ nytt" + +# +msgid "user defined" +msgstr "brukerbestemt" + +msgid "variety show" +msgstr "varieté show" + +# +msgid "vertical" +msgstr "vertikal" + +# +msgid "wait for ci..." +msgstr "vent pÃ¥ ci..." + +# +msgid "wait for mmi..." +msgstr "venter pÃ¥ mmi..." + +# +msgid "waiting" +msgstr "venter" + +msgid "water sport" +msgstr "Vannsport" + +# +msgid "weekly" +msgstr "ukentlig" + +msgid "west" +msgstr "vest" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "hvit" + +# +msgid "whitelist" +msgstr "hvitliste" + +msgid "width" +msgstr "bredde" + +msgid "winter sport" +msgstr "Vintersport" + +msgid "wireless network interface" +msgstr "trÃ¥dløst nettverk" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "med %d feil" +msgstr[1] "med %d feil" + +# +msgid "working" +msgstr "fungerer" + +# +msgid "yellow" +msgstr "gul" + +# +msgid "yes" +msgstr "ja" + +# +msgid "yes (keep feeds)" +msgstr "ja (behold feeder)" + +# +msgid "zap" +msgstr "gÃ¥ til" + +# +msgid "zap and record" +msgstr " gÃ¥ til og spill inn" + +# +msgid "zapped" +msgstr "gÃ¥tt til" + +#~ msgid "A demo plugin for TPM usage." +#~ msgstr "En test- app til TPM bruk." + +#~ msgid "AC3 downmix" +#~ msgstr "AC3 blanding" + +# +#~ msgid "Activate PiP" +#~ msgstr "Aktivere PiP (bilde i bilde)" + +#~ msgid "Add/remove timer for current event" +#~ msgstr "Legge til/slett tidtaker i nÃ¥værende program" + +#~ msgid "Adjust HDMI CEC settings" +#~ msgstr "Justere HDMI CEC innstillinger" + +#~ msgid "All satellites" +#~ msgstr "Alle satellitter" + +#~ msgid "And will shutdown your receiver over " +#~ msgstr "Og mottakeren vil slÃ¥es helt av etter" + +# +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "Innstilling for 'pause' knappen nÃ¥r satt i pause" + +#~ msgid "Committed DiSEqC command" +#~ msgstr "Utvidet DiSEqC kommando" + +#~ msgid "Configure if and how service type icons will be shown." +#~ msgstr "Still inn om eller hvordan kanal picons skal vises." + +#~ msgid "Configure if service picons will be shown in the servicelist." +#~ msgstr "Still inn om kanal picons skal vises i kanallisten." + +#~ msgid "Configure the behavior of the 'pause' key when movie playback is already paused." +#~ msgstr "Still inn oppførsel til 'pause' knappen nÃ¥r en avspilling er satt i pause." + +#~ msgid "Configure the duration in hours and action, which could be shut down or standby, when the receiver is not controlled." +#~ msgstr "Still inn varigheten i antall timer fra mottakeren er inaktiv til den automatisk skal slÃ¥es av/slÃ¥es helt av." + +#~ msgid "Configure the duration in minutes and action, which could be shut down or standby, for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +#~ msgstr "Still inn varigheten i antall minutter nÃ¥r tidtakeren skal velge Ã¥ slÃ¥ av/slÃ¥ helt av mottakeren. Velg denne oppføringen og klikk OK eller grønn knapp for start/stopp av tidtakeren" + +#~ msgid "DiSEqC repeats" +#~ msgstr "DiSEqC gjentakelse" + +#~ msgid "Goto specific data/time" +#~ msgstr "GÃ¥ til en bestemt data/tid" + +# +#~ msgid "Memory positions" +#~ msgstr "Lagre posisjoner" + +#~ msgid "No satellite frontend found!!" +#~ msgstr "Ingen satellitt posisjon ble funnet!!" + +#~ msgid "Open service list and select next channel" +#~ msgstr "Ã…pne kanallisten og velg neste kanal" + +#~ msgid "Open service list and select previous channel" +#~ msgstr "Ã…pne kanallisten og velg forrige kanal" + +#~ msgid "Press '0' to toggle internal/external PiP." +#~ msgstr "Trykk '0' for Ã¥ bytte internt/eksternt PiP (Bilde i bilde)." + +# +#~ msgid "Remove timer" +#~ msgstr "Slette tidtaker" + +#~ msgid "Send DiSEqC" +#~ msgstr "Send DiSEqC" + +#~ msgid "Show picons in servicelist" +#~ msgstr "Vis picons i kanalliste" + +# +#~ msgid "Shutdown after current event" +#~ msgstr "SlÃ¥ av etter nÃ¥værende program" + +#~ msgid "Shutdown in " +#~ msgstr "SlÃ¥ helt av om" + +# +#~ msgid "Switch next channel" +#~ msgstr "GÃ¥ til neste kanal" + +#~ msgid "Tuning step size" +#~ msgstr "Søketrinnstørrelse" + +# +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Uncommitted DiSEqC kommando" + +#~ msgid "Your receiver will shutdown due to inactivity." +#~ msgstr "Mottakeren slÃ¥es av pÃ¥ grunn av inaktivitet." + +#~ msgid "Your receiver will shutdown due to the sleeptimer." +#~ msgstr "Mottakeren slÃ¥es av etter tidtakerinnstillingen." + +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "GÃ¥ tilbake til kanal og avslutt satellittsøker?" + +#~ msgid "tuner is not supported" +#~ msgstr "tuner er ikke støttet" diff --git a/po/pl.po b/po/pl.po new file mode 100644 index 0000000..219dc51 --- /dev/null +++ b/po/pl.po @@ -0,0 +1,9804 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2014-06-28 16:58+0100\n" +"Last-Translator: blzr <blzr@o2.pl>\n" +"Language-Team: \n" +"Language: pl_PL\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" + +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"Zaawansowane opcje i ustawienia." + +# +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"Po naciÅ›niÄ™ciu OK czekaj!" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" +"\n" +"Wykonaj kopiÄ™ ustawieÅ„." + +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"Edytuj adres aktualizacji." + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" +"\n" +"ZarzÄ…dzaj rozszerzeniami i pluginami" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" +"\n" +"Aktualizacja oprogramowania online." + +# +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"WciÅ›nij OK aby kontynuować." + +# +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"Przywróć backup wedÅ‚ug daty." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" +"\n" +"Przywróć wÅ‚asne ustawienia odbiornika." + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" +"\n" +"Przywróć wÅ‚asne ustawienia odbiornika w nowym sofcie" + +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"Szukaj lokalnych rozszerzeÅ„ i zainstaluj je." + +# +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Wybierz lokalizacjÄ™ dla backupu.\n" +"Aktualna lokalizacja: " + +# +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"Zobacz, zainstaluj lub usuÅ„ dostÄ™pne lub zainstalowane pakiety." + +msgid " (PiP)" +msgstr "" + +msgid " (Radio)" +msgstr " (Radio)" + +msgid " (TV)" +msgstr "" + +# +msgid " (disabled)" +msgstr " (wyÅ‚Ä…czony)" + +msgid " (higher than any auto)" +msgstr " (wyższy niż każdy auto)" + +msgid " (higher than rotor any auto)" +msgstr " (wyższy niż auto dla obrotnicy)" + +msgid " (lower than any auto)" +msgstr " (niższy niż każdy auto)" + +msgid " extensions." +msgstr " rozszerzenia." + +msgid " ms" +msgstr " ms" + +# +msgid " packages selected." +msgstr " pakiety wybrane." + +# +msgid " updates available." +msgstr " aktualizacje dostÄ™pne." + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "" + +msgid "%A %d %B" +msgstr "" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "" + +# +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "" + +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "%d znaleziony kanaÅ‚!" +msgstr[1] "%d znalezione kanaÅ‚y!" +msgstr[2] "%d znalezionych kanałów!" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "%d plik" +msgstr[1] "%d pliki" +msgstr[2] "%d plików" + +# +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d godzina" +msgstr[1] "%d godziny" +msgstr[2] "%d godzin" + +# +#, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d zadanie jest wykonywane w tle!" +msgstr[1] "%d zadania sÄ… wykonywane w tle!" +msgstr[2] "%d zadaÅ„ jest wykonywanych w tle!" + +# +#, python-format +msgid "%d min" +msgstr "%d min" + +# +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minuta" +msgstr[1] "%d minuty" +msgstr[2] "%d minut" + +# +#, python-format +msgid "%d minutes" +msgstr "%d minut" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "%d pikseli" +msgstr[1] "%d piksele" +msgstr[2] "%d pikseli" + +# +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d sekunda" +msgstr[1] "%d sekundy" +msgstr[2] "%d sekund" + +# +#, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "%d podkatalog" +msgstr[1] "%d podkatalogi" +msgstr[2] "%d podkatalogów" + +# +#, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "Znaleziono %d sieć bezprzewodowÄ…!" +msgstr[1] "Znaleziono %d sieci bezprzewodowe!" +msgstr[2] "Znaleziono %d sieci bezprzewodowych!" + +msgid "%d-%b-%Y %-H:%M" +msgstr "" + +msgid "%d-%m" +msgstr "" + +# +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "" + +# +#, python-format +msgid "%s %s free disk space" +msgstr "%s %s wolnej przestrzeni dyskowej" + +# +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "%s nie jest już używany. Usunąć?" + +# +#, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] " %s zaktualizowany pakiet dostÄ™pny." +msgstr[1] " %s zaktualizowane pakiety dostÄ™pne." +msgstr[2] " %s zaktualizowanych pakietów dostÄ™pnych." + +#, python-format +msgid "%s%d min" +msgstr "" + +#, python-format +msgid "%s/%s: %s" +msgstr "" + +# +msgid "(ZAP)" +msgstr "(PrzeÅ‚Ä…cz)" + +# +msgid "(empty)" +msgstr "(puste)" + +# +msgid "(show optional DVD audio menu)" +msgstr "(pokaż opcjonalne menu audio DVD)" + +# +msgid "* Only available if more than one interface is active." +msgstr "* DostÄ™pne tylko gdy wiÄ™cej niż jeden interfejs jest aktywny." + +msgid "/s" +msgstr "" + +# +msgid "0" +msgstr "0" + +# +msgid "1" +msgstr "1" + +# +msgid "1.0" +msgstr "1.0" + +# +msgid "1.1" +msgstr "1.1" + +# +msgid "1.2" +msgstr "1.2" + +# +msgid "12V output" +msgstr "WyjÅ›cie 12V" + +# +msgid "13 V" +msgstr "13 V" + +# +msgid "16:10" +msgstr "16:10" + +# +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +# +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +# +msgid "16:9" +msgstr "16:9" + +# +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +# +msgid "16:9 always" +msgstr "16:9 zawsze" + +# +msgid "18 V" +msgstr "18 V" + +# +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "" + +msgid "24" +msgstr "" + +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +# +msgid "3" +msgstr "3" + +msgid "30" +msgstr "" + +msgid "3d mode" +msgstr "tryb 3d" + +# +msgid "4" +msgstr "4" + +# +msgid "4:3" +msgstr "4:3" + +# +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +# +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +# +msgid "5" +msgstr "5" + +# +msgid "6" +msgstr "6" + +# +msgid "7" +msgstr "7" + +# +msgid "8" +msgstr "8" + +# +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +# +msgid "<Current movielist location>" +msgstr "<Bieżąca lokalizacja nagraÅ„>" + +# +msgid "<Default movie location>" +msgstr "<DomyÅ›lna lokalizacja nagraÅ„>" + +# +msgid "<Last timer location>" +msgstr "<Ostatnia lokalizacja timera>" + +# +msgid "<unknown>" +msgstr "<nieznany>" + +# +msgid "??" +msgstr "??" + +# +msgid "A" +msgstr "A" + +# +#, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"Plik konfiguracyjny (%s) zostaÅ‚ zmodyfikowany od czasu instalacji.\n" +"Chcesz zachować swojÄ… wersjÄ™?" + +# +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"Plik konfiguracyjny (%s) zostaÅ‚ zmodyfikowany od czasu instalacji.\n" +"Chcesz zachować swojÄ… wersjÄ™?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"Wykonany timer nagrywania chce przeÅ‚Ä…czyć\n" +"odbiornik w stan czuwania. Zrobić to teraz?" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"Wykonany timer nagrywania chce wyÅ‚Ä…czyć\n" +"odbiornik. WyÅ‚Ä…czyć teraz?" + +# +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "Graficzny EPG dla wszystkich kanałów danego bukietu" + +# +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"Nagrywanie rozpoczęło siÄ™:\n" +"%s" + +# +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"Nagrywanie w toku...\n" +"Co chcesz zrobić?" + +# +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "Nagrywanie w toku. Zatrzymaj nagrywanie przed rozpoczÄ™ciem ustawiania pozycjonera." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "Trwa nagrywanie. Zatrzymaj nagrywanie zanim rozpoczniesz skanowanie." + +# +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "Nagrywanie w toku . Zatrzymaj nagrywanie przed uruchomieniem miernika sygnaÅ‚u." + +# +#, python-format +msgid "A required tool (%s) was not found." +msgstr "NarzÄ™dzie (%s) nie zostaÅ‚o znalezione." + +# +msgid "A search for available updates is currently in progress." +msgstr "Wyszukiwanie dostÄ™pnych aktualizacji w toku." + +# +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"Drugi skonfigurowany interfejs zostaÅ‚ znaleziony.\n" +"\n" +"Czy chcesz wyÅ‚Ä…czyć drugi interfejs sieciowy?" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"WyÅ‚Ä…cznik czasowy chce przeÅ‚Ä…czyć\n" +"odbiornik w tryb czuwania. Zrobić to teraz?" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"WyÅ‚Ä…cznik czasowy chce wyÅ‚Ä…czyć\n" +"odbiornik. WyÅ‚Ä…czyć teraz?" + +# +msgid "A small overview of the available icon states and actions." +msgstr "PodglÄ…d dostÄ™pnych ikon stanu i dziaÅ‚ania" + +# +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"Nagrywanie z timera nie powiodÅ‚o siÄ™!\n" +"WyÅ‚Ä…czyć TV i spróbować ponownie?\n" + +# +msgid "A/V settings" +msgstr "Audio/Video" + +msgid "AC3/DTS downmix" +msgstr "" + +# +msgid "Abort" +msgstr "Przerwij" + +# +msgid "About" +msgstr "O tunerze..." + +# +msgid "About..." +msgstr "O tunerze..." + +# +msgid "Accesspoint:" +msgstr "Punkt dostÄ™powy:" + +# +msgid "Action on long powerbutton press" +msgstr "Akcja po dÅ‚ugim naciÅ›niÄ™ciu 'Power'" + +# +msgid "Action on short powerbutton press" +msgstr "Akcja po krótkim przyciÅ›niÄ™ciu 'Power'" + +# +msgid "Activate Picture in Picture" +msgstr "WÅ‚Ä…cz PiP" + +# +msgid "Activate current configuration" +msgstr "Aktywuj aktualnÄ… konfiguracjÄ™" + +# +msgid "Activate network settings" +msgstr "Aktywuj ustawienia sieci" + +# +msgid "Activate the configured network settings." +msgstr "Aktywuj ustawienia skonfigurowanej sieci" + +# +msgid "Adapter settings" +msgstr "Ustawienia adaptera" + +# +msgid "Add" +msgstr "Dodaj" + +# +msgid "Add Bookmark" +msgstr "Dodaj zakÅ‚adkÄ™" + +# +msgid "Add a mark" +msgstr "Dodaj znacznik" + +# +msgid "Add a nameserver entry" +msgstr "Dodaj wpis DNS" + +# +msgid "Add a new title" +msgstr "Dodaj nowy tytuÅ‚" + +# +msgid "Add bookmark" +msgstr "Dodaj zakÅ‚adkÄ™" + +# +msgid "Add directory to playlist" +msgstr "Dodaj katalog do playlisty " + +# +msgid "Add file to playlist" +msgstr "Dodaj plik do playlisty" + +# +msgid "Add files to playlist" +msgstr "Dodaj pliki do playlisty" + +# +msgid "Add more details to the crash log" +msgstr "Twórz szczegółowe crashlogi" + +# +msgid "Add provider" +msgstr "Dodaj nadawcÄ™" + +# +msgid "Add recording (enter recording duration)" +msgstr "Nagrywaj (wpisz czas trwania nagrania)" + +# +msgid "Add recording (enter recording endtime)" +msgstr "Nagrywaj (wpisz czas zakoÅ„czenia nagrania)" + +# +msgid "Add recording (indefinitely)" +msgstr "Nagrywaj (czas nieokreÅ›lony)" + +# +msgid "Add recording (stop after current event)" +msgstr "Nagrywaj (zatrzymaj po aktualnym wydarzeniu)" + +# +msgid "Add service" +msgstr "Dodaj kanaÅ‚" + +# +msgid "Add timer" +msgstr "Dodaj timer" + +# +msgid "Add title" +msgstr "Dodaj tytuÅ‚" + +# +msgid "Add to bouquet" +msgstr "Dodaj do bukietu" + +# +msgid "Add to favourites" +msgstr "Dodaj do ulubionych" + +msgid "Add/remove change timer for current event" +msgstr "Dodaj/usuÅ„ timer dla bieżącej audycji" + +msgid "Adjust 3D settings" +msgstr "Dostosuj ustawienia 3d" + +# +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "Dostosuj ustawienia koloru, tak aby wszystkie odcienie byÅ‚y rozróżnialne, ale jak najbardziej nasycone. JeÅ›li jesteÅ› zadowolony z rezultatu wciÅ›nij OK aby wyjść z tego menu lub użyj klawiszy numerycznych aby zobaczyć inne ekrany testowe." + +# +msgid "Advanced" +msgstr "Zaawansowane" + +# +msgid "Advanced options" +msgstr "Opcje zaawansowane" + +# +msgid "Advanced restore" +msgstr "Przywracanie zaawansowane" + +# +msgid "Advanced software" +msgstr "Oprogramowanie zaawansowane" + +# +msgid "Advanced software plugin" +msgstr "Zaawansowane pluginy" + +# +msgid "Advanced video enhancement setup" +msgstr "Zaawansowane ustawienia korekcji obrazu" + +# +msgid "Advanced video setup" +msgstr "Zawansowane ustawienia obrazu" + +# +msgid "After event" +msgstr "Po wydarzeniu" + +# +msgid "Album" +msgstr "Album" + +msgid "Alignment of events" +msgstr "Wyrównanie tytułów audycji" + +msgid "Alignment of service names" +msgstr "Wyrównanie nazw kanałów" + +# +msgid "All" +msgstr "Wszystkie" + +msgid "All ages" +msgstr "b/o" + +# +msgid "All satellites 1 (USALS)" +msgstr "Wszystkie satelity 1 (USALS)" + +# +msgid "All satellites 2 (USALS)" +msgstr "Wszystkie satelity 2 (USALS)" + +# +msgid "All satellites 3 (USALS)" +msgstr "Wszystkie satelity 3 (USALS)" + +# +msgid "All satellites 4 (USALS)" +msgstr "Wszystkie satelity 4 (USALS)" + +msgid "Allocate" +msgstr "Przydziel" + +msgid "Allocate unused memory index" +msgstr "Przydziel nieużywany indeks pamiÄ™ci" + +msgid "Allow quit movieplayer with exit" +msgstr "Pozwól na wyjÅ›cie z odtwarzacza klawiszem exit" + +# +msgid "Allow subtitle language to equal audio language" +msgstr "Zezwalaj na napisy jak Å›cieżka audio" + +# +msgid "Allow subtitles for hearing impaired" +msgstr "Zezwalaj na napisy dla niesÅ‚yszÄ…cych" + +# +msgid "Alpha" +msgstr "Przezroczystość" + +# +msgid "Alternative" +msgstr "Alternatywne" + +# +msgid "Alternative numbering mode" +msgstr "Alternatywny tryb numerowania" + +# +msgid "Alternative services tuner priority" +msgstr "Priorytet tunera dla serwisów alternatywnych" + +msgid "Always ask" +msgstr "Zawsze pytaj" + +msgid "Always hide infobar" +msgstr "Zawsze ukrywaj infobar" + +# +msgid "An empty filename is illegal." +msgstr "Pusta nazwa pliku jest niedozwolona." + +# +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "WystÄ…piÅ‚ bÅ‚Ä…d podczas pobierania listy pakietów. Spróbuj ponownie." + +# +msgid "An unknown error occurred!" +msgstr "WystÄ…piÅ‚ nieznany bÅ‚Ä…d!" + +msgid "And will put your receiver in standby over " +msgstr "Odbiornik przejdzie w stan czuwania za" + +# +msgid "Any activity" +msgstr "Każda aktywność" + +# +msgid "Arabic" +msgstr "Arabski" + +# +msgid "Are you sure to remove this entry?" +msgstr "JesteÅ› pewien, że chcesz usunąć?" + +# +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"Czy chcesz aktywować konfiguracjÄ™ sieci?\n" +"\n" + +# +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"JesteÅ› pewien, że chcesz usunąć\n" +"nastÄ™pujÄ…cy backup:\n" + +# +msgid "Are you sure you want to exit this wizard?" +msgstr "JesteÅ› pewien, że chcesz wyjść?" + +# +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"Chcesz zrestartować interfejs sieciowy?\n" +"\n" + +# +#, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"JesteÅ› pewien, że chcesz przywrócić\n" +"nastÄ™pujÄ…cy backup:\n" +"%s\n" +"Odbiornik zrestartuje siÄ™ po przywróceniu backupu!" + +# +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"JesteÅ› pewien że chcesz przywrócić backup?\n" +"Odbiornik zrestartuje siÄ™ po przywróceniu backupu!" + +# +msgid "Artist" +msgstr "Artysta" + +msgid "Arts/Culture" +msgstr "Kultura/Sztuka" + +# +msgid "Ask user" +msgstr "Zapytaj użytkownika" + +msgid "Aspect ratio" +msgstr "" + +# +msgid "Assigned CAIds:" +msgstr "PrzyporzÄ…dkowane CAIDy:" + +# +msgid "Assigned services/provider:" +msgstr "PrzyporzÄ…dkowane kanaÅ‚y/nadawcy" + +# +msgid "At beginning" +msgstr "Na poczÄ…tku" + +# +msgid "At end" +msgstr "Na koÅ„cu" + +# +msgid "Audio" +msgstr "DźwiÄ™k" + +msgid "Audio PID" +msgstr "" + +# +msgid "Audio language selection 1" +msgstr "Preferowana Å›cieżka audio 1" + +# +msgid "Audio language selection 2" +msgstr "Preferowana Å›cieżka audio 2" + +# +msgid "Audio language selection 3" +msgstr "Preferowana Å›cieżka audio 3" + +# +msgid "Audio language selection 4" +msgstr "Preferowana Å›cieżka audio 4" + +# +msgid "Audio options..." +msgstr "Opcje dźwiÄ™ku..." + +# +#, python-format +msgid "Audio track (%s) format" +msgstr "Format Å›cieżki audio (%s)" + +# +#, python-format +msgid "Audio track (%s) language" +msgstr "JÄ™zyk Å›cieżki audio (%s)" + +# +msgid "Author: " +msgstr "Autor: " + +# +msgid "Authoring mode" +msgstr "Tryb tworzenia" + +# +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Auto" + +# +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Automatyczny podziaÅ‚ rozdziałów co ? minuty (0=nigdy)" + +# +msgid "Auto flesh" +msgstr "Auto flesh" + +msgid "Auto focus" +msgstr "Auto wyostrzanie" + +msgid "Auto focus commencing ..." +msgstr "Auto wyostrzanie rozpoczÄ™te..." + +# +msgid "Auto language selection" +msgstr "Automatyczny wybór jÄ™zyka" + +# +msgid "Auto scart switching" +msgstr "Automatyczne przeÅ‚Ä…czanie 'scart'" + +# +msgid "Automatic" +msgstr "Automatycznie" + +# +msgid "Automatic scan" +msgstr "Skanowanie automatyczne" + +msgid "Automatically start timeshift after" +msgstr "Automatycznie uruchom timeshift po" + +msgid "Automatically turn on external subtitles" +msgstr "Automatycznie wÅ‚Ä…cz napisy zewnÄ™trzne" + +# +msgid "Available format variables" +msgstr "DostÄ™pne zmienne formatu" + +# +msgid "B" +msgstr "B" + +# +msgid "BER" +msgstr "BER" + +# +msgid "BER:" +msgstr "BER:" + +# +msgid "Back" +msgstr "Powrót" + +# +msgid "Background" +msgstr "TÅ‚o" + +# +msgid "Background color" +msgstr "Kolor tÅ‚a" + +# +msgid "Background delete option" +msgstr "Usuwanie plików w tle" + +# +msgid "Background delete speed" +msgstr "Szybkość usuwania plików w tle" + +# +msgid "Backup completed." +msgstr "ZakoÅ„czono tworzenie backupu." + +# +msgid "Backup failed." +msgstr "Tworzenie backupu bie powiódÅ‚o siÄ™." + +# +msgid "Backup is running..." +msgstr "Tworzenie backupu..." + +# +msgid "Backup system settings" +msgstr "Backup ustawieÅ„ systemowych" + +# +msgid "Band" +msgstr "Pasmo" + +# +msgid "Bandwidth" +msgstr "Pasmo" + +msgid "Basque" +msgstr "Baskijski" + +# +msgid "Begin time" +msgstr "Czas rozpoczÄ™cia" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +# +msgid "Behavior of 0 key in PiP-mode" +msgstr "Zachowanie przycisku 0 w trybie PiP" + +# +msgid "Behavior when a movie is started" +msgstr "Zachowanie przy rozpoczÄ™ciu odtwarzania" + +# +msgid "Behavior when a movie is stopped" +msgstr "Zachowanie po zastopowaniu odtwarzania" + +# +msgid "Behavior when a movie reaches the end" +msgstr "Zachowanie gdy film osiÄ…ga koniec" + +msgid "Big PiP" +msgstr "" + +# +msgid "Bitrate:" +msgstr "" + +msgid "Black screen" +msgstr "" + +msgid "Black screen till locked" +msgstr "" + +# +msgid "Block noise reduction" +msgstr "Blokowa redukcja szumów" + +# +msgid "Blue boost" +msgstr "Niebieski" + +# +msgid "Bookmarks" +msgstr "ZakÅ‚adki" + +# +msgid "Brightness" +msgstr "Jasność" + +msgid "Bulgarian" +msgstr "BuÅ‚garski" + +# +msgid "Burn DVD" +msgstr "Nagraj DVD" + +# +#, python-format +msgid "Burn audio track (%s)" +msgstr "Nagraj Å›cieżkÄ™ audio (%s)" + +# +msgid "Burn existing image to DVD" +msgstr "Nagraj istniejÄ…cy 'obraz' na DVD" + +msgid "Burn to DVD" +msgstr "Nagraj na DVD..." + +# +msgid "Bus: " +msgstr "Bus:" + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "DomyÅ›lnie SNR jest wyÅ›wietlana w dB (jeÅ›li wspierane przez tuner). To ustawienie wymusza wyÅ›wietlanie SNR w procentach." + +# +msgid "C" +msgstr "C" + +# +msgid "C-Band" +msgstr "Pasmo C" + +# +msgid "CH" +msgstr "" + +# +msgid "CI assignment" +msgstr "Zadania CI" + +# +msgid "CVBS" +msgstr "CVBS" + +# +msgid "Cable" +msgstr "Kablówka" + +# +msgid "Cable Scan" +msgstr "Skanowanie kablówki" + +# +msgid "Cache thumbnails" +msgstr "Trzymaj (w cache) miniatury " + +msgid "Calculate" +msgstr "Oblicz" + +msgid "Calculate all positions" +msgstr "Skalkuluj wszystkie pozycje" + +msgid "Calculation complete" +msgstr "Kalkulowanie zakoÅ„czone" + +msgid "Calibrate" +msgstr "Kalibruj" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "Można użyć tej opcji gdy fps w napisach zewnÄ™trznych i w filmie różni siÄ™" + +# +msgid "Cancel" +msgstr "Anuluj" + +msgid "Cannot determine" +msgstr "Nie można okreÅ›lić" + +msgid "Cannot find any signal ..., aborting !" +msgstr "Brak sygnaÅ‚u...., przerywam!" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "Plików z innego dysku/systemu nie można przenieść do kosza." + +# +msgid "Cannot move to trash can" +msgstr "Nie można przenieść do 'Kosza'" + +# +msgid "Capacity: " +msgstr "Pojemność:" + +# +msgid "Card" +msgstr "Karta" + +msgid "Cascade PiP" +msgstr "" + +# +msgid "Center DVB subtitles" +msgstr "WyÅ›rodkuj napisy DVB" + +msgid "Center time-labels and remove date" +msgstr "WyÅ›rodkuj etykiety czasu i usuÅ„ datÄ™" + +# +msgid "Change bouquets in quickzap" +msgstr "Automatyczna zmiana bukietów" + +# +msgid "Change pin code" +msgstr "ZmieÅ„ kod pin" + +# +msgid "Change recording (duration)" +msgstr "ZmieÅ„ czas trwania nagrania" + +# +msgid "Change recording (endtime)" +msgstr "ZmieÅ„ czas zakoÅ„czenia nagrania" + +msgid "Change repeat and delay settings?" +msgstr "Zmienić ustawienia powtórzeÅ„ i opóźnienia?" + +# +msgid "Change service PIN" +msgstr "Zmien PIN kanaÅ‚u" + +# +msgid "Change service PINs" +msgstr "ZmieÅ„ PIN kanałów" + +# +msgid "Change setup PIN" +msgstr "ZmieÅ„ PIN ustawieÅ„" + +# +msgid "Change step size" +msgstr "ZmieÅ„ rozmiar kroku" + +# +msgid "Change timer" +msgstr "ZmieÅ„ timer" + +msgid "Changelog" +msgstr "" + +# +msgid "Channel" +msgstr "KanaÅ‚" + +# +msgid "Channel list type" +msgstr "Typ listy kanałów" + +# +msgid "Channel not in services list" +msgstr "KanaÅ‚u nie ma na liÅ›cie serwisów" + +# +msgid "Channel selection" +msgstr "Wybór kanałów" + +# +msgid "Channel:" +msgstr "KanaÅ‚:" + +# +msgid "Channellist menu" +msgstr "Menu listy kanałów" + +# +msgid "Chap." +msgstr "Rozdz." + +# +msgid "Chapter" +msgstr "RozdziaÅ‚" + +# +msgid "Chapter:" +msgstr "RozdziaÅ‚:" + +# +msgid "Check" +msgstr "Sprawdź" + +msgid "Check the internet connection" +msgstr "Sprawdź poÅ‚Ä…czenie internetowe" + +msgid "Check the internet connection again" +msgstr "Sprawdź poÅ‚Ä…czenie internetowe ponownie" + +# +msgid "Checking filesystem..." +msgstr "Sprawdzanie systemu plików..." + +msgid "Checking the internet connection" +msgstr "Sprawdzanie poÅ‚Ä…czenia internetowego" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" +"Sprawdzanie tunera %d\n" +"DiSEqC port %s dla %s" + +msgid "Children/Youth" +msgstr "Dla dzieci/mÅ‚odzieży" + +msgid "Choose which tuner to configure." +msgstr "Wybierz tuner do skonfigurowania" + +# +msgid "Circular left" +msgstr "KoÅ‚owa lewa" + +# +msgid "Circular right" +msgstr "KoÅ‚owa prawa" + +# +msgid "Cleanup" +msgstr "Czyszczenie" + +msgid "Clear" +msgstr "Czyść" + +# +msgid "Clear before scan" +msgstr "Czyść przed skanowaniem" + +# +msgid "Clear fixed" +msgstr "Wyczyść staÅ‚y" + +# +msgid "Clear log" +msgstr "Wyczyść log" + +# +msgid "Clear playlist" +msgstr "Wyczyść playlistÄ™" + +# +msgid "Close" +msgstr "Zamknij" + +msgid "Close PiP on exit" +msgstr "WyÅ‚Ä…czaj PiP klawiszem exit" + +# +msgid "Close title selection" +msgstr "Zamknij wybór tytuÅ‚u" + +msgid "Code rate HP" +msgstr "" + +msgid "Code rate LP" +msgstr "" + +# +msgid "Coderate HP" +msgstr "Coderate HP" + +# +msgid "Coderate LP" +msgstr "Coderate LP" + +# +msgid "Collection name" +msgstr "Nazwa kolekcji" + +# +msgid "Collection settings" +msgstr "Ustawienia kolekcji" + +# +msgid "Color format" +msgstr "Format koloru" + +# +msgid "Command execution..." +msgstr "Wykonywanie polecenia..." + +# +msgid "Command order" +msgstr "Kolejność poleceÅ„" + +# +msgid "Common Interface" +msgstr "ModuÅ‚ dostÄ™pu CI" + +# +msgid "Common Interface assignment" +msgstr "Zadania ModuÅ‚u CI" + +# +msgid "Communication" +msgstr "Komunikacja" + +# +msgid "Compact flash" +msgstr "Compact flash" + +# +msgid "Complete" +msgstr "ZakoÅ„cz" + +# +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "Kompleksowe (pozwala mixować Å›cieżki i rodzaje audio)" + +# +msgid "Composition of the recording filenames" +msgstr "SkÅ‚adnia nazw nagraÅ„" + +msgid "Configuration mode" +msgstr "Tryb konfiguracji" + +#, python-format +msgid "Configuration mode: %s" +msgstr "Tryb konfiguracji: %s" + +# +msgid "Configuration..." +msgstr "Konfiguracja..." + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "Ustaw dodatkowe opóźnienie, aby polepszyć synchronizacjÄ™ napisów zewnÄ™trznych" + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "Ustaw dodatkowe opóźnienie, aby polepszyć synchronizacjÄ™ napisów" + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "Skonfiguruj czas wyÅ›wietlania paska info" + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "Skonfiguruj przez ile minut zakoÅ„czone audycje pozostanÄ… widoczne w EPG. Przydatne, gdy potrzebujesz informacji o programie, który wÅ‚aÅ›nie siÄ™ zakoÅ„czyÅ‚ lub opóźniÅ‚ siÄ™ ." + +msgid "Configure how recording filenames are constructed." +msgstr "Skonfiguruj jak majÄ… wyglÄ…dać nazwy plików nagraÅ„." + +msgid "Configure how the fan should operate" +msgstr "Skonfiguruj tryb pracy wentylatora" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "Skonfiguruj czy i jak wyÅ›wietlać w liÅ›cie ikony informujÄ…ce o tym, że kanaÅ‚ jest kodowany." + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "Skonfiguruj czy i jak wyÅ›wietlać ikony typu w liÅ›cie kanałów." + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "Skonfiguruj czy i jakiej szerokoÅ›ci wyÅ›wietlać kolumny w liÅ›cie wyboru kanałów. Liczba pikseli wyznacza szerokość kolumny z nazwami kanałów" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "Skonfiguruj czy wyÅ›wietlać pikony w liÅ›cie kanałów." + +# +msgid "Configure interface" +msgstr "Konfiguracja interfejsu" + +# +msgid "Configure nameservers" +msgstr "Konfiguracja DNS" + +msgid "Configure on which devices the background delete option should be used." +msgstr "Skonfiguruj dla jakich urzÄ…dzeÅ„ opcja usuwania w tle ma być użyta." + +# +msgid "Configure remote control type" +msgstr "Skonfiguruj typ pilota zdalnego sterowania" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "Skonfiguruj tryb DiSEqC dla tego LNB." + +# +msgid "Configure the IP address." +msgstr "Ustaw adres IP" + +msgid "Configure the aspect ratio of the screen." +msgstr "Skonfiguruj aspect ratio." + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +# +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "Skonfiguruj zachowanie po zastopowaniu odtwarzania." + +# +msgid "Configure the behavior when movie playback is started." +msgstr "Skonfiguruj zachowanie przy rozpoczÄ™ciu odtwarzania." + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "Skonfiguruj zachowanie gdy odtwarzanie filmu osiÄ…gnie koniec." + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "Skonfiguruj szerokość obramowania napisów. Ciemne obramowanie sprawia, że napisy sÄ… bardziej czytelne na jasnym tle. " + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "Skonfiguruj jasność wyÅ›wietlacza w trybie standby." + +msgid "Configure the brightness level of the front panel display." +msgstr "Sknfiguruj jasność wyÅ›wietlacza na panelu frontowym." + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "Wybierz kolor napisów zewnÄ™trznych: alternatywny (normalne - biaÅ‚e, kursywa- żółte, pogrubione - niebieskie), biaÅ‚y lub żółty." + +msgid "Configure the color of the teletext subtitles." +msgstr "Skonfiguruj kolor napisów teletext," + +msgid "Configure the contrast level of the front panel display." +msgstr "Skonfiguruj kontrast wyÅ›wietlacza na frontowym panelu." + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "Skonfiguruj zachowanie kursora w liÅ›cie wyboru kanałów. Można skonfigurować aby kursor byÅ‚ zawsze na aktualnie wÅ‚Ä…czonym kanale przy wejÅ›ciu w listÄ™ kanałów strzaÅ‚kami góra/dół; można także odwrócić przeÅ‚Ä…czanie bukietów klawiszami B+/B- w liÅ›cie." + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "Ustaw czas (w godzinach) po jakim odbiornik przeÅ‚Ä…czy siÄ™ w tryb czuwania, gdy pozostaje nieaktywny." + +msgid "Configure the duration in minutes for the screensaver." +msgstr "Ustaw w minutach czas po jakim pojawi siÄ™ wygaszacz ekranu." + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "Ustaw czas (w minutach) dla wyÅ‚Ä…cznika czasowego. Wybierz opcjÄ™ i wciÅ›nij OK lub zielony aby uruchomić/zatrzymać sleeptimer. " + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "Ustaw czas przebywania w trybie czuwania, po jakim odbiornik automatycznie wyÅ‚Ä…czy siÄ™." + +msgid "Configure the first audio language (highest priority)." +msgstr "Skonfiguruj pierwszy jÄ™zyk Å›cieżki audio (najwyższy priorytet)" + +msgid "Configure the first subtitle language (highest priority)." +msgstr "Skonfiguruj pierwszy jÄ™zyk napisów (najwyższy priorytet)" + +msgid "Configure the font size of the subtitles." +msgstr "Skonfiguruj rozmiar czcionki napisów teletext." + +msgid "Configure the fourth audio language." +msgstr "Skonfiguruj jÄ™zyk czwartej Å›cieżki audio," + +# +msgid "Configure the fourth subtitle language." +msgstr "Skonfiguruj czwarty jÄ™zyk napisów" + +msgid "Configure the function of a long press on the power button." +msgstr "Skonfiguruj zachowanie przycisku 'power' przy dÅ‚ugim naciÅ›niÄ™ciu." + +msgid "Configure the function of a short press on the power button." +msgstr "Skonfiguruj zachowanie przycisku 'power' przy krótkim naciÅ›niÄ™ciu." + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "Skonfiguruj zachowanie przycisku '0' gdy PiP jest aktywny. " + +# +msgid "Configure the gateway." +msgstr "Skonfiguruj ustawienia 'bramy'." + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "Skonfiguruj ogólne opóźnienie dla Å›cieżek audio Dolby Digital." + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "Skonfiguruj ogólne opóźnienie dla Å›cieżek audio stereo." + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "Skonfiguruj czas po jakim dysk twardy ma przechodzić w tryb uÅ›pienia." + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "Skonfiguruj poziome wyrównanie napisów." + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "Skonfiguruj poczÄ…tkowÄ… prÄ™dkość przewijania w przód. Gdy wciÅ›niesz przycisk [>>] przewijanie rozpocznie siÄ™ z tÄ… prÄ™dkoÅ›ciÄ…." + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "Skonfiguruj poczÄ…tkowÄ… prÄ™dkość przewijania wstecz. Gdy wciÅ›niesz przycisk [<<] przewijanie rozpocznie siÄ™ z tÄ… prÄ™dkoÅ›ciÄ…." + +msgid "Configure the latitude of your location." +msgstr "Skonfiguruj szerokość geograficznÄ… dla swojej lokalizacji." + +msgid "Configure the longitude of your location." +msgstr "Skonfiguruj dÅ‚ugość geograficznÄ… swojej lokalizacji." + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "OkreÅ›l minimalnÄ… przestrzeÅ„ dyskowej zarezerwowanÄ… dla nagraÅ„. W przypadku spadku poniżej tego progu, usuniÄ™te pliki zostanÄ… wykasowane z kosza." + +# +msgid "Configure the nameserver (DNS)." +msgstr "Skonfiguruj nameserver (DNS)." + +# +msgid "Configure the netmask." +msgstr "Skonfiguruj maskÄ™ sieci." + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "Skonfiguruj ilość dni po których kosz zostaje automatycznie opróżniony." + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "Skonfiguruj ilość dni przez jakÄ… sÄ… trzymane wykonane timery, zanim zostanÄ… automatycznie usuniÄ™te z listy." + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "Skonfiguruj opóźnienie dekodowania offline w milisekundach. Opóźnienie jest uwzglÄ™dniane przy każdej zmianie CW." + +# +msgid "Configure the possible fast forward speeds." +msgstr "Skonfiguruj dostÄ™pne prÄ™dkoÅ›ci przewijania w przód" + +msgid "Configure the possible rewind speeds." +msgstr "Skonfiguruj dostÄ™pne prÄ™dkoÅ›ci przewijania w tyÅ‚." + +msgid "Configure the primary EPG language." +msgstr "Skonfiguruj pierwszy jÄ™zyk EPG." + +msgid "Configure the refresh rate of the screen." +msgstr "Skonfiguruj wartość odÅ›wieżania ekranu." + +msgid "Configure the screen resolution in PC output mode." +msgstr "Skonfiguruj rozdzielczość ekranu w trybie PC." + +msgid "Configure the second audio language." +msgstr "Skonfiguruj jÄ™zyk drugiej Å›cieżki audio." + +# +msgid "Configure the second subtitle language." +msgstr "Skonfiguruj drugi jÄ™zyk napisów." + +msgid "Configure the secondary EPG language." +msgstr "Skonfiguruj drugi jÄ™zyk EPG." + +msgid "Configure the sharpness of the video scaling." +msgstr "Skonfiguruj ostrość skalowania video" + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "Skonfiguruj czas przeskoku dla klawiszy '1'/'3'." + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "Skonfiguruj czas przeskoku dla klawiszy '4'/'6'." + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "Skonfiguruj czas przeskoku dla klawiszy '7'/'9'." + +# +msgid "Configure the slow motion speeds." +msgstr "PrÄ™dkoÅ›ci odtwarzanie w zwolnionym tempie" + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "Skonfiguruj źródÅ‚o danych frontend pokazywanych na pasku info: 'Ustawienia'- tak jak zapisane w liÅ›cie kanałów, 'Tuner' - tak jak zgÅ‚aszane przez tuner." + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "Skonfiguruj prÄ™dkość usuwania plików w tle. Niższa prÄ™dkość bÄ™dzie w mniejszym stopniu ograniczać wydajność dysku." + +msgid "Configure the speed of the fan" +msgstr "Skonfiguruj prÄ™dkość pracy wentylatora" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "Skonfiguruj opóźnienie napisów, gdy brak informacje o timingu. " + +msgid "Configure the third audio language." +msgstr "Skonfiguruj trzeci jÄ™zyk Å›cieżki audio." + +# +msgid "Configure the third subtitle language." +msgstr "Skonfiguruj trzeci jÄ™zyk napisów." + +msgid "Configure the transparency of the OSD." +msgstr "Skonfiguruj przezroczystość OSD." + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "Skonfiguruj przezroczystość czarnego tÅ‚a napisów DVB." + +msgid "Configure the tuner mode." +msgstr "Skonfiguruj tryb tunera." + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "Skonfiguruj rodzaj ikon statusu wyÅ›wietlanych w liscie nagraÅ„." + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "Skonfiguruj pionowe poÅ‚ożenie napisów, mierzone od doÅ‚u ekranu." + +msgid "Configure the video output mode (or resolution)." +msgstr "Skonfiguruj tryb wyjÅ›cia video (lub rozdzielczość)." + +msgid "Configure the way in which the receiver changes channels." +msgstr "Skonfiguruj tryb zmiany kanałów." + +msgid "Configure where completed timers show up in the timer list." +msgstr "Skonfiguruj gdzie wykonane timery majÄ… być wyÅ›wietlane w liÅ›cie." + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "Skonfiguruj czy (i jak dÅ‚ugo) 'second infobar' bÄ™dzie wyÅ›wietlany po dwukrotnym naciÅ›niÄ™ciu OK. 'Second infobar' zawiera dodatkowe informacje o aktualnie oglÄ…danym kanale." + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "Skonfiguruj czy wielokanaÅ‚owe Å›cieżki audio majÄ… być downmix'owane do stereo." + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "Skonfiguruj czy podczas ruchu obrotnicy, ma być wyÅ›wietlana ikonka." + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "Skonfiguruj poziom dostÄ™pu do menu konfiguracyjnego. Poziom 'Expert' daje dostÄ™p do wszystkich opcji." + +msgid "Configure which color format should be used on the SCART output." +msgstr "Skonfiguruj jaki format koloru ma być użyty na wyjÅ›ciu SCART." + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "Skonfiguruj, który tuner ma być preferowany dla nagrywania, jeżeli wiÄ™cej niż jeden tuner jest dostÄ™pny." + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "Skonfiguruj który tuner ma być preferowany, jeżeli kanaÅ‚ jest dostÄ™pny z różnych typów tunerów." + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "Skonfiguruj który tuner bÄ™dzie preferowany gdy wiÄ™cej niż jeden jest dostÄ™pny. Gdy ustawione na 'auto', priorytet bÄ™dzie nadany tunerowi z najniższÄ… iloÅ›ciÄ… kanałów/satelit." + +# +msgid "Configure your internal LAN" +msgstr "Konfiguracja wewnÄ™trznej sieci LAN" + +# +msgid "Configure your network again" +msgstr "Skonfiguruj sieć ponownie" + +# +msgid "Configure your network settings, and press OK to start the scan" +msgstr "Skonfiguruj ustawienia sieci i wciÅ›nij OK aby rozpocząć skanowanie " + +# +msgid "Configure your wireless LAN again" +msgstr "Skonfiguruj ponownie sieć bezprzewodowÄ…" + +msgid "Configures which video output connector will be used." +msgstr "Skonfiguruj które wyÅ›cie wideo ma być użyte." + +# +msgid "Configuring" +msgstr "Konfigurowanie" + +# +msgid "Conflicting timer" +msgstr "Konflikt timera" + +# +msgid "Connect" +msgstr "PoÅ‚Ä…cz" + +# +msgid "Connect to a wireless network" +msgstr "PoÅ‚Ä…cz z sieciÄ… bezprzewodowÄ…" + +# +msgid "Connected satellites" +msgstr "PodÅ‚Ä…czone satelity" + +# +msgid "Connected to" +msgstr "PodÅ‚Ä…czony do" + +# +msgid "Connected!" +msgstr "PoÅ‚Ä…czony!" + +# +msgid "Constellation" +msgstr "Konstelacja" + +# +msgid "Content does not fit on DVD!" +msgstr "Zawartość nie pasuje do DVD!" + +# +msgid "Continue" +msgstr "Kontynuuj" + +# +msgid "Continue in background" +msgstr "Kontynuuj w tle" + +# +msgid "Continue playback" +msgstr "Kontynuuj odtwarzanie" + +# +msgid "Continue playing" +msgstr "Kontynuuj odtwarzanie" + +msgid "Continues play (loop)" +msgstr "Odtwarzaj kolejne (w pÄ™tli)" + +# +msgid "Contrast" +msgstr "Kontrast" + +msgid "Convert ext3 filesystem to ext4" +msgstr "Konwertuj ext3 do ext4" + +msgid "Convert ext3 to ext4" +msgstr "Konwertuj ext3 do ext4" + +msgid "Converting ext3 to ext4..." +msgstr "Konwertuje ext3 do ext4..." + +# +msgid "Copy" +msgstr "Kopiuj" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "" + +msgid "Could not find installed channel list." +msgstr "Nie znaleziono zainstalowanej listy kanałów. " + +# +msgid "Could not load medium! No disc inserted?" +msgstr "Nie można odczytać noÅ›nika. Czy pÅ‚yta jest w napÄ™dzie?" + +# +msgid "Could not open Picture in Picture" +msgstr "Nie mozna otworzyć PiP" + +# +#, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "Nie można nagrać z powodu konfliktu timera %s" + +# +#, python-format +msgid "Could not record due to invalid service %s" +msgstr "Nie można nagrywać z powodu nieprawidÅ‚owego %s kanaÅ‚u" + +# +msgid "Create DVD-ISO" +msgstr "Utwórz DVD-ISO" + +# +msgid "Create more detailed crash log" +msgstr "Twórz szczegółowe crashlogi" + +# +#, python-format +msgid "Creating directory %s failed." +msgstr "Tworzenie katalogu %s nie powiodÅ‚o siÄ™." + +msgid "Creating filesystem" +msgstr "Tworzenie systemu plików" + +msgid "Creating partition" +msgstr "Tworzenie partycji" + +# +msgid "Croatian" +msgstr "Chorwacki" + +# +msgid "Current CEC address" +msgstr "Aktualny adres CEC" + +# +msgid "Current device: " +msgstr "Bieżące urzÄ…dzenie:" + +msgid "Current event EPG" +msgstr "EPG aktualego wydarzenia" + +# +#, python-format +msgid "Current mode: %s \n" +msgstr "Aktualny tryb: %s \n" + +# +msgid "Current settings:" +msgstr "Aktualne ustawienia:" + +# +msgid "Current transponder" +msgstr "Aktualny transponder" + +# +msgid "Current value: " +msgstr "Aktualna wartość:" + +# +msgid "Current version:" +msgstr "Aktualna wersja:" + +# +msgid "Currently installed image" +msgstr "Aktualnie zainstalowane image" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "Commit log nie może zostać teraz pobrany - spróbuj ponownie później" + +# +msgid "Custom skip time for '1'/'3' buttons" +msgstr "Czas przeskoku dla klawiszy '1'/'3'" + +# +msgid "Custom skip time for '4'/'6' buttons" +msgstr "Czas przeskoku dla klawiszy '4'/'6'" + +# +msgid "Custom skip time for '7'/'9' buttons" +msgstr "Czas przeskoku dla klawiszy '7'/'9'" + +# +msgid "Customize" +msgstr "Konfiguracja" + +msgid "Customize channel list cursor behavior" +msgstr "Zachowanie kursora w liÅ›cie kanałów" + +# +msgid "Cut" +msgstr "Wytnij" + +# +msgid "Cutlist editor..." +msgstr "Edytor ciÄ™cia filmu" + +# +msgid "Czech" +msgstr "Czeski" + +# +msgid "D" +msgstr "D" + +# +msgid "DHCP" +msgstr "DHCP" + +# +msgid "DMM advanced" +msgstr "DMM zaawansowane" + +msgid "DMM normal" +msgstr "" + +# +msgid "DUAL LAYER DVD" +msgstr "DUAL LAYER DVD" + +# +msgid "DVB subtitle black transparency" +msgstr "Przezroczystość tÅ‚a napisów DVB" + +msgid "DVB-C" +msgstr "" + +msgid "DVB-C ANNEX C" +msgstr "" + +# +msgid "DVB-S" +msgstr "DVB-S" + +# +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "" + +msgid "DVB-T2" +msgstr "" + +msgid "DVD data format" +msgstr "Frormat danych DVD" + +# +msgid "DVD file browser" +msgstr "PrzeglÄ…darka DVD" + +# +msgid "DVD media toolbox" +msgstr "NarzÄ™dzia DVD" + +# +msgid "DVD player" +msgstr "Odtwarzacz DVD" + +# +msgid "DVD titlelist" +msgstr "TytuÅ‚y DVD" + +# +msgid "Danish" +msgstr "DuÅ„ski" + +# +msgid "Date" +msgstr "Data" + +# +msgid "Date/time input" +msgstr "Czas / Data" + +# +msgid "Deep standby" +msgstr "GÅ‚Ä™bokie czuwanie" + +# +msgid "Default" +msgstr "DomyÅ›lny" + +# +msgid "Default movie location" +msgstr "DomyÅ›lna lokalizacja nagraÅ„" + +# +msgid "Default settings" +msgstr "Ustawienia domyÅ›lne" + +msgid "Delay before key repeat starts:" +msgstr "Opóźnienie przed rozpoczÄ™ciem powtórzenia klawisza:" + +msgid "Delay for external subtitles" +msgstr "Opóźnienie dla napisów zewnÄ™trznych" + +# +msgid "Delete" +msgstr "UsuÅ„" + +# +msgid "Delete entry" +msgstr "Skasuj wpis" + +# +msgid "Delete failed!" +msgstr "UsuniÄ™cie nie powiodÅ‚o siÄ™!" + +# +msgid "Delete file" +msgstr "UsuÅ„ plik" + +# +msgid "Delete playlist entry" +msgstr "UsuÅ„ pozycjÄ™ playlisty" + +# +msgid "Delete saved playlist" +msgstr "UsuÅ„ zachowanÄ… playlistÄ™" + +# +msgid "Delete timer" +msgstr "UsuÅ„ timer" + +# +msgid "Delete..." +msgstr "UsuÅ„..." + +# +msgid "Deleted" +msgstr "UsuniÄ™to" + +# +msgid "Deleted items" +msgstr "UsuniÄ™te pliki" + +msgid "Depth" +msgstr "GÅ‚Ä™bia" + +# +msgid "Descramble http streams" +msgstr "Dekoduj stream http" + +# +msgid "Description" +msgstr "Opis" + +# +msgid "Deselect" +msgstr "Odznacz" + +msgid "Details for plugin: " +msgstr "Szczegóły dotyczÄ…ce wtyczki:" + +# +msgid "Detected HDD:" +msgstr "Wykryto HDD:" + +# +msgid "Detected NIMs:" +msgstr "Wykryto tunery:" + +msgid "Devicename:" +msgstr "Nazwa urzÄ…dzenia:" + +msgid "Devide" +msgstr "Podziel" + +# +msgid "DiSEqC" +msgstr "DiSEqC" + +# +msgid "DiSEqC 1.0 command" +msgstr "Komenda DiSEqC 1.0" + +# +msgid "DiSEqC 1.1 command" +msgstr "Komenda DiSEqC 1.1" + +# +msgid "DiSEqC 1.1 repeats" +msgstr "Powtórzenia DiSEqC 1.1" + +# +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +# +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +# +msgid "DiSEqC mode" +msgstr "Tryb DiSEqC" + +# +#, python-format +msgid "DiSEqC port %s: %s" +msgstr "Port DiSEqC %s: %s" + +# +msgid "DiSEqC-tester settings" +msgstr "DiSEqC - ustawienia testera" + +# +msgid "Dialing:" +msgstr "Wybieranie:" + +# +msgid "Digital contour removal" +msgstr "Cyfrowe usuniÄ™cie konturu" + +# +msgid "Direct playback of linked titles without menu" +msgstr "BezpoÅ›rednie odtwarzanie tytułów bez menu" + +msgid "Directory" +msgstr "Katalog" + +# +#, python-format +msgid "Directory %s does not exist." +msgstr "Katalog %s nie istnieje." + +# +#, python-format +msgid "Directory %s nonexistent." +msgstr "Katalog %s nie istnieje." + +# +msgid "Directory browser" +msgstr "PrzeglÄ…darka katalogów" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "Katalog zawiera %d plików i %d podkatalogów.\n" + +#, python-format +msgid "Directory contains %s and %s." +msgstr "Katalog zawiera %s i %s." + +# +msgid "Disable" +msgstr "WyÅ‚Ä…cz" + +# +msgid "Disable Picture in Picture" +msgstr "WyÅ‚Ä…cz PiP" + +# +msgid "Disable background scanning" +msgstr "WyÅ‚Ä…cz skanowanie w tle" + +# +msgid "Disable timer" +msgstr "WyÅ‚Ä…cz timer" + +# +msgid "Disabled" +msgstr "WyÅ‚Ä…czone" + +# +msgid "Disconnect" +msgstr "RozÅ‚Ä…cz" + +# +msgid "Disk space to reserve for recordings (in GB)" +msgstr "PrzestrzeÅ„ dyskowa zarezerwowana dla nagraÅ„ (w GB)" + +# +msgid "Display 16:9 content as" +msgstr "WyÅ›wietlaj zawartość 16:9 jako" + +# +msgid "Display 4:3 content as" +msgstr "WyÅ›wietlaj zawartość 4:3 jako" + +# +msgid "Display >16:9 content as" +msgstr "WyÅ›wietlaj zawartość >16:9 jako" + +# +msgid "Display and userinterface" +msgstr "WyÅ›wietlacz i interfejs użytkownika" + +msgid "Display message before playing next movie" +msgstr "WyÅ›wietlaj info przed odtworzeniem kolejnego filmu" + +# +msgid "Display setup" +msgstr "WyÅ›wietlacz" + +# +msgid "Do not change" +msgstr "Nie zmieniaj" + +# +msgid "Do not record" +msgstr "Nie nagrywaj" + +# +msgid "Do nothing" +msgstr "Nic nie rób" + +# +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Czy chcesz sprawdzić sysem plików?\n" +"To może zająć dużo czasu!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" +"Czy na pewno chcesz zmienić system plików?\n" +"Operacja jest nieodwracalna!" + +# +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Czy na pewno chcesz usunąć %s?" + +# +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"Czy chcesz pobrać\n" +"plugin \"%s\" ?" + +# +msgid "Do you really want to exit?" +msgstr "Czy na pewno chcesz wyjść?" + +# +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" +"Czy na pewno chcesz zainicjalizować urzÄ…dzenie?\n" +"Wszystkie dane zostanÄ… utracone!" + +# +#, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"Czy chcesz usunąć\n" +"plugin \"%s\" ?" + +# +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Czy na pewno chcesz usunąć katalog %s z dysku?" + +# +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Czy na pewno chcesz usunąć zakÅ‚adkÄ™ %s?" + +msgid "Do you want this?" +msgstr "Czy tego chcesz?" + +# +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Czy chcesz nagrać tÄ… kolekcjÄ™ na DVD?" + +# +msgid "Do you want to do a service scan?" +msgstr "Czy chcesz wykonać skanowanie kanałów?" + +# +msgid "Do you want to do another manual service scan?" +msgstr "Czy chcesz wykonać kolejne rÄ™czne skanowanie?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "Czy chcesz pobrać image do %s ?" + +# +msgid "Do you want to install a channel list?" +msgstr "Chcesz zainstalować listÄ™ kanałów?" + +# +msgid "Do you want to install the package:\n" +msgstr "Chcesz zainstalować pakiet:\n" + +# +msgid "Do you want to play DVD in drive?" +msgstr "Czy chcesz odtworzyć DVD znajdujÄ…ce siÄ™ w napÄ™dzie?" + +# +msgid "Do you want to preview this DVD before burning?" +msgstr "Czy chcesz obejrzeć DVD przed jego nagraniem?" + +msgid "Do you want to reboot your receiver?" +msgstr "Chcesz uruchomić ponownie odbiornik?" + +# +msgid "Do you want to remove the package:\n" +msgstr "Chcesz usunąć pakiet:\n" + +# +msgid "Do you want to restore your settings?" +msgstr "Czy chcesz przywrócić wÅ‚asne ustawienia?" + +# +msgid "Do you want to resume this playback?" +msgstr "Czy chcesz wznowić odtwarzanie?" + +#, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Chcesz zaktualizować oprogramowanie odbiornika do %s?" + +msgid "Do you want to update your receiver?" +msgstr "Chcesz zaktualizować oprogramowanie odbiornika?" + +# +msgid "Do you want to upgrade the package:\n" +msgstr "Chcesz zaktualizować pakiet:\n" + +# +msgid "Don't stop current event but disable coming events" +msgstr "Nie zatrzymuj aktualnego wydarzenia ale wyÅ‚Ä…cz przyszÅ‚e" + +# +#, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "Gotowe - zainstalowano, zaktualizowano lub usuniÄ™to %d pakiet (%s)" +msgstr[1] "Gotowe - zainstalowano, zaktualizowano lub usuniÄ™to %d pakiety (%s)" +msgstr[2] "Gotowe - zainstalowano, zaktualizowano lub usuniÄ™to %d pakietów (%s)" + +# +msgid "Download" +msgstr "Pobierz" + +# +#, python-format +msgid "Download %s from server" +msgstr "Pobierz %s z serwera" + +msgid "Download .NFI-files for USB-flasher" +msgstr "" + +# +msgid "Download plugins" +msgstr "Pobierz pluginy" + +# +msgid "Downloadable new plugins" +msgstr "Nowe pluginy do pobrania" + +# +msgid "Downloadable plugins" +msgstr "Pluginy do pobrania" + +# +msgid "Downloading" +msgstr "Pobieranie" + +# +msgid "Downloading plugin information. Please wait..." +msgstr "Pobieranie informacji o pluginach. ProszÄ™ czekać..." + +# +msgid "Dutch" +msgstr "Holenderski" + +# +msgid "Dynamic contrast" +msgstr "Dynamiczny kontrast" + +# +msgid "E" +msgstr "E" + +msgid "EPG" +msgstr "" + +# +msgid "EPG language selection 1" +msgstr "Preferowany jÄ™zyk EPG 1" + +# +msgid "EPG language selection 2" +msgstr "Preferowany jÄ™zyk EPG 2" + +# +msgid "EPG selection" +msgstr "Wybór EPG" + +msgid "EPG settings" +msgstr "EPG" + +# +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "BÅÄ„D - skanowanie (%s) nie powiodÅ‚o siÄ™!" + +# +msgid "East" +msgstr "Wschód" + +msgid "East limit set" +msgstr "Ustaw limit East" + +# +msgid "Edit" +msgstr "Edytuj" + +# +msgid "Edit DNS" +msgstr "Edytuj DNS" + +# +msgid "Edit bouquets list" +msgstr "Edytuj listÄ™ bukietów" + +# +msgid "Edit chapters of current title" +msgstr "Edycja rozdziałów bieżącego tytuÅ‚u" + +# +msgid "Edit services list" +msgstr "Edytuj listÄ™ kanałów" + +# +msgid "Edit settings" +msgstr "Edytuj ustawienia" + +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "Edytuj ustawienia DNS odbiornika.\n" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "Edytuj ustawienia sieci.\n" + +# +msgid "Edit timer" +msgstr "Edytuj timer" + +# +msgid "Edit title" +msgstr "Edytuj tytuÅ‚" + +# +msgid "Edit upgrade source url." +msgstr "Edytuj adres aktualizacji" + +msgid "Education/Science/..." +msgstr "Edukacja/Nauka" + +# +msgid "Electronic Program Guide" +msgstr "EPG" + +# +msgid "Enable" +msgstr "WÅ‚Ä…cz" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +# +msgid "Enable 5V for active antenna" +msgstr "WÅ‚Ä…cz 5V dla aktywnej anteny" + +# +msgid "Enable EIT EPG" +msgstr "WÅ‚Ä…cz EIT EPG" + +# +msgid "Enable MHW EPG" +msgstr "WÅ‚Ä…cz MHW EPG" + +# +msgid "Enable Netmed EPG" +msgstr "WÅ‚Ä…cz Netmed EPG" + +# +msgid "Enable OK for channel selection" +msgstr "WywoÅ‚anie listy kanałów klawiszem OK" + +# +msgid "Enable ViaSat EPG" +msgstr "WÅ‚Ä…cz Viasat EPG" + +# +msgid "Enable Virgin EPG" +msgstr "WÅ‚Ä…cz Virgin EPG" + +msgid "Enable Wake On LAN" +msgstr "WÅ‚Ä…cz Wake On LAN" + +msgid "Enable auto fast scan" +msgstr "WÅ‚Ä…cz automatyczny fast scan" + +msgid "Enable bouquet selection in multi-EPG" +msgstr "WÅ‚Ä…cz wybór bukietów w multi-EPG" + +# +msgid "Enable freesat EPG" +msgstr "WÅ‚Ä…cz freesat EPG" + +# +msgid "Enable multiple bouquets" +msgstr "WÅ‚Ä…cz tryb wielu bukietów" + +# +msgid "Enable parental control" +msgstr "WÅ‚Ä…cz kontrolÄ™ rodzicielskÄ…" + +# +msgid "Enable teletext caching" +msgstr "WÅ‚Ä…cz pamięć telegazety" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "WÅ‚Ä…cz przeÅ‚Ä…czanie kanałów przyciskami CH+/-, B+/-, P+/-" + +# +msgid "Enabled" +msgstr "WÅ‚Ä…czone" + +# +msgid "Encrypted: " +msgstr "Szyfrowany:" + +# +msgid "Encryption" +msgstr "Szyfrowanie" + +# +msgid "Encryption key" +msgstr "Klucz szyfrujÄ…cy" + +# +msgid "Encryption key type" +msgstr "Typ klucza szyfrujÄ…cego" + +# +msgid "Encryption:" +msgstr "Szyfrowanie:" + +# +msgid "End time" +msgstr "Czas zakoÅ„czenia" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "Koniec czasu ignorowania sleeptimera bezczynnoÅ›ci" + +msgid "End time to ignore shutdown in standby" +msgstr "Koniec ignorowania 'timera wyÅ‚Ä…czania' w standby" + +# +msgid "English" +msgstr "Angielski" + +# +msgid "Enigma2 skin selector" +msgstr "Enigma2 wybór skina" + +# +msgid "Enter main menu..." +msgstr "Wejdź do menu głównego..." + +# +msgid "Enter pin code" +msgstr "Wpisz PIN" + +# +msgid "Enter the service pin" +msgstr "Wpisz PIN kanaÅ‚u" + +# +msgid "Equal to" +msgstr "Równy" + +# +msgid "Error" +msgstr "BÅ‚Ä…d" + +msgid "Error code" +msgstr "Kod bÅ‚Ä™du" + +# +msgid "Error executing plugin" +msgstr "BÅ‚Ä…d podczas uruchamiania pluginu" + +# +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"BÅ‚Ä…d: %s\n" +"Ponowić?" + +# +msgid "Estonian" +msgstr "EstoÅ„ski" + +msgid "Ethernet network interface" +msgstr "Interfejs sieciowy ethernet" + +msgid "Event font size (relative to skin size)" +msgstr "Wielkość czcionki (w stos. do czcionki w skinie)" + +# +msgid "Event view" +msgstr "Opis wydarzenia" + +msgid "Event view menu" +msgstr "Menu opisu wydarzenia" + +# +msgid "Everywhere" +msgstr "WszÄ™dzie" + +msgid "Exceeds dual layer medium!" +msgstr "Przekroczona pojemność noÅ›nika dual layer!" + +# +msgid "Execution finished!!" +msgstr "Wykonywanie zakoÅ„czone!" + +# +msgid "Execution progress:" +msgstr "PostÄ™p wykonywania:" + +# +msgid "Exif" +msgstr "" + +# +msgid "Exit" +msgstr "WyjÅ›cie" + +msgid "Exit EPG" +msgstr "Wyjdź z EPG" + +# +msgid "Exit editor" +msgstr "Opuść edytor" + +# +msgid "Exit input device selection." +msgstr "Opuść wybór urzÄ…dzenia wejÅ›ciowego." + +msgid "Exit media player?" +msgstr "Wyjść z odtwarzacza?" + +# +msgid "Exit mediaplayer" +msgstr "Wyjdź z mediaplayera" + +# +msgid "Exit movie list" +msgstr "Wyjdź z listy filmów" + +# +msgid "Exit movie player?" +msgstr "Wyjść z odtwarzacza?" + +# +msgid "Exit nameserver configuration" +msgstr "Zamknij menu konfiguracji DNS" + +# +msgid "Exit network interface list" +msgstr "Zamknij listÄ™ interfejsów sieciowych" + +# +msgid "Exit network wizard" +msgstr "Opuść konfiguracjÄ™ sieci" + +# +msgid "Exit the wizard" +msgstr "Opuść kreatora" + +# +msgid "Expert" +msgstr "Ekspert" + +msgid "Extend sleeptimer 15 minutes" +msgstr "WydÅ‚uż sleeptimer o 15 minut" + +# +msgid "Extended Software" +msgstr "Rozszerzone oprogramowanie" + +# +msgid "Extended Software Plugin" +msgstr "Rozszerzony plugin" + +# +msgid "Extended network setup plugin..." +msgstr "Plugin do zaawansowanych ustawieÅ„ sieci..." + +# +msgid "Extended setup..." +msgstr "Ustawienia zaawansowane..." + +# +msgid "Extensions" +msgstr "Rozszerzenia" + +# +msgid "Extensions management" +msgstr "ZarzÄ…dzanie dodatkami" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "Kolor napisów zewnÄ™trznych" + +msgid "Extra motor options" +msgstr "Dodatkowe ustawienia obrotnicy" + +# +msgid "FEC" +msgstr "" + +msgid "FTA" +msgstr "" + +# +msgid "Factory reset" +msgstr "Ustawienia fabryczne" + +# +msgid "Failed" +msgstr "BÅ‚Ä…d" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "Zapis do /tmp/positionersetup.log nieudany:" + +# +#, python-format +msgid "Fan %d" +msgstr "" + +# +#, python-format +msgid "Fan %d PWM" +msgstr "" + +# +#, python-format +msgid "Fan %d voltage" +msgstr " NapiÄ™cie wentylatora %d" + +# +msgid "Fan operation" +msgstr "Tryb pracy wentylatora" + +# +msgid "Fan speed" +msgstr "PrÄ™dkość wentylatora" + +# +msgid "Fast" +msgstr "Szybko" + +# +msgid "Fast DiSEqC" +msgstr "Szybki DiSEqC" + +msgid "Fast Scan" +msgstr "" + +# +msgid "Fast epoch" +msgstr "Szybkie odtwarzanie" + +# +msgid "Fast forward speeds" +msgstr "PrÄ™dkoÅ›ci przewijania w przód" + +# +msgid "Favourites" +msgstr "Ulubione" + +msgid "File appears to be busy.\n" +msgstr "Plik wydaje siÄ™ zajÄ™ty.\n" + +# +msgid "Filesystem check" +msgstr "Sprawdzanie systemu plików" + +msgid "Final position at" +msgstr "KoÅ„cowa pozycja na" + +msgid "Final position at index" +msgstr "Koncowa pozycja z indeksem" + +msgid "Fine movement" +msgstr "Precyzyjne ruchy" + +# +msgid "Finetune" +msgstr "Dostrajanie" + +# +msgid "Finished" +msgstr "SkoÅ„czone" + +# +msgid "Finished configuring your network" +msgstr "ZakoÅ„czono konfigurowanie sieci" + +msgid "Finished restarting your network" +msgstr "ZakoÅ„czono restert sieci" + +# +msgid "Finnish" +msgstr "FiÅ„ski" + +# +msgid "Fixed" +msgstr "StaÅ‚a" + +# +msgid "Flash" +msgstr "Flash" + +# +msgid "Flashing failed" +msgstr "Flashowanie nie powiodÅ‚o siÄ™" + +# +msgid "Following tasks will be done after you press OK!" +msgstr "Poniższe zadania bÄ™dÄ… wykonane po wciÅ›niÄ™ciu OK!" + +# +msgid "Format" +msgstr "Format" + +# +msgid "Forward volume keys" +msgstr "Przekazuj klawisze gÅ‚oÅ›noÅ›ci" + +# +msgid "Frame size in full view" +msgstr "Rozmiar ramki w peÅ‚nym widoku" + +# +msgid "French" +msgstr "Francuski" + +# +msgid "Frequency" +msgstr "CzÄ™stotliwość" + +# +msgid "Frequency bands" +msgstr "Pasma czÄ™stotliwoÅ›ci" + +# +msgid "Frequency scan step size(khz)" +msgstr "Rozmiar kroku skanowania (khz)" + +# +msgid "Frequency steps" +msgstr "Kroki czÄ™stotliwoÅ›ci" + +msgid "Frequency:" +msgstr "CzÄ™stotliwość:" + +# +msgid "Fri" +msgstr "PiÄ…" + +# +msgid "Friday" +msgstr "PiÄ…tek" + +msgid "From :" +msgstr "Z:" + +# +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Wersja frontprocesora: %d" + +# +msgid "Full transparency" +msgstr "PeÅ‚na przezroczystość" + +msgid "Fulview resulution" +msgstr "Rozdzielczość w peÅ‚nym widoku" + +msgid "Function of OK button" +msgstr "Funkcje klawisza OK" + +msgid "Further Options" +msgstr "Opcje dodatkowe" + +# +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"GUI musi zostać zrestartowane, aby zastosować nowy skin\n" +"Czy chcesz zrobić restart teraz?" + +# +msgid "Gateway" +msgstr "Brama" + +# +msgid "General AC3 delay" +msgstr "Ogólne opóźnienie AC3" + +# +msgid "General PCM delay" +msgstr "Ogólne opóźnienie PCM" + +# +msgid "Genre" +msgstr "Gatunek" + +# +msgid "German" +msgstr "Niemiecki" + +msgid "Get latest experimental image" +msgstr "" + +msgid "Get latest release image" +msgstr "" + +# +msgid "Getting plugin information. Please wait..." +msgstr "Pobieranie info o pluginach. ProszÄ™ czekać..." + +msgid "Go down the list" +msgstr "Przejdź w dół listy" + +msgid "Go to first movie or last item" +msgstr "Idź do pierwszego filmu lub ostatniej pozycji" + +msgid "Go to first movie or top of list" +msgstr "Idź do pierwszego filmu lub na poczÄ…tek listy" + +msgid "Go to first service" +msgstr "Idż do pierwszego kanaÅ‚u" + +msgid "Go to last service" +msgstr "Idż do ostatniego kanaÅ‚u" + +msgid "Go to next event" +msgstr "Idź do nastÄ™pnej audycji" + +msgid "Go to next page of service" +msgstr "Idź do nastÄ™pnej strony z audycjami" + +msgid "Go to previous event" +msgstr "Idź do poprzedniej audycji" + +msgid "Go to previous page of service" +msgstr "Idź do poprzedniej strony z audycjami" + +msgid "Go up the list" +msgstr "Idź w górÄ™ listy" + +# +msgid "Goto" +msgstr "" + +# +msgid "Goto 0" +msgstr "" + +msgid "Goto :" +msgstr "" + +msgid "Goto X" +msgstr "" + +msgid "Goto index position" +msgstr "" + +msgid "Goto next day of events" +msgstr "Idź do nastÄ™pnego dnia wydarzeÅ„" + +msgid "Goto next page of events" +msgstr "Idź do nastÄ™pnej strony z audycjami" + +# +msgid "Goto position" +msgstr "Idź na pozycjÄ™" + +msgid "Goto previous day of events" +msgstr "Idź do poprzedniego dnia wydarzeÅ„" + +msgid "Goto previous page of events" +msgstr "Idź do poprzedniej strony z audycjami" + +msgid "Goto specific date/time" +msgstr "Idź do konkretnej daty/godziny" + +msgid "GotoX calibration" +msgstr "" + +msgid "GraphMultiEpg Settings" +msgstr "Ustawienia GraphMultiEpg" + +# +msgid "Graphical Multi EPG" +msgstr "Graficzny Multi EPG" + +# +msgid "Greek" +msgstr "Grecki" + +# +msgid "Green boost" +msgstr "Zielony" + +msgid "Guard interval" +msgstr "" + +# +msgid "HD list" +msgstr "Lista HD" + +msgid "HDMI-CEC setup" +msgstr "Ustawienia HDMI-CEC" + +# +msgid "Handle standby from TV" +msgstr "ObsÅ‚uguj komendÄ™ 'standby' z TV" + +# +msgid "Handle wakeup from TV" +msgstr "ObsÅ‚uguj komendÄ™ 'wakeup' z TV" + +# +msgid "Hard disk" +msgstr "Dysk twardy" + +# +msgid "Hard disk setup" +msgstr "Ustawienia dysku HDD" + +# +msgid "Hard disk standby after" +msgstr "'UÅ›pij' dysk twardy po" + +# +msgid "Harddisk" +msgstr "Dysk twardy" + +msgid "Hardware: " +msgstr "" + +msgid "Hebrew" +msgstr "Hebrajski" + +msgid "Helps setting up your dish" +msgstr "Pomaga ustawić antenÄ™ SAT" + +# +msgid "Hidden network" +msgstr "Ukryta sieć" + +# +msgid "Hide CI messages" +msgstr "Ukryj komunikaty CI" + +msgid "Hide channel list in radio mode" +msgstr "Ukryj listÄ™ wyboru kanałów w trybie radio" + +msgid "Hide known extensions" +msgstr "Ukryj znane rozszerzenia" + +msgid "Hide number markers" +msgstr "Ukryj markery numeryczne" + +# +msgid "Hide player" +msgstr "Ukryj odtwarzacz" + +# +msgid "Hide zap errors" +msgstr "Ukryj komunikaty bÅ‚Ä™dów przy przeÅ‚Ä…czaniu" + +# +msgid "Hierarchy info" +msgstr "Informacje o hierarchii" + +# +msgid "Hierarchy information" +msgstr "Informacja hierarchii" + +# +msgid "High bitrate support" +msgstr "ObsÅ‚uga wysokiego bitrate" + +msgid "Hold screen" +msgstr "" + +msgid "Hold till locked" +msgstr "" + +# +msgid "Home" +msgstr "" + +# +msgid "Horizontal" +msgstr "Pozioma (H)" + +msgid "Horizontal turning speed" +msgstr "PrÄ™dkość obrotu w poziomie" + +# +msgid "How many minutes do you want to record?" +msgstr "Ile minut ma trwać nagranie?" + +# +msgid "Hue" +msgstr "OdcieÅ„" + +# +msgid "Hungarian" +msgstr "WÄ™gierski" + +# +msgid "IP address" +msgstr "Adres IP" + +# +msgid "ISO file is too large for this filesystem!" +msgstr "Plik ISO jest za duży dla tego systemu plików!" + +# +msgid "ISO path" +msgstr "Åšcieżka ISO" + +# +msgid "Icons" +msgstr "Ikony" + +# +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"JeÅ›li widzisz ten komunikat, coÅ› jest nie tak\n" +"z poÅ‚Ä…czeniem 'scart'. NaciÅ›nij OK aby powrócić." + +# +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"JeÅ›li Twój TV posiada poprawÄ™ jasnoÅ›ci i kontrastu, wyÅ‚Ä…cz je. JeÅ›li masz wÅ‚Ä…czonÄ… opcjÄ™ \"Dynamiczne\", zmieÅ„ jÄ… na standardowÄ…. Dostosuj poziom jasnoÅ›ci do wÅ‚asnych upodobaÅ„. Zmniejsz kontrast w TV jak tylko możliwe.\n" +"NastÄ™pnie ustaw jak najniżej poziom jasnoÅ›ci, ale tak, aby dwa najniższe odcienie szaroÅ›ci byÅ‚y rozróżnialne.\n" +"Na razie nie troszcz siÄ™ o odcienie jasnoÅ›ci. ZostanÄ… ustawione w kolejnym kroku.\n" +"JeÅ›li jesteÅ› zadowolony z rezultatu wciÅ›nij OK." + +msgid "Image: " +msgstr "" + +# +msgid "Immediate shutdown" +msgstr "Natychmiastowe wyÅ‚Ä…czenie" + +# +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "Aby nagrywać z timera, TV zostaÅ‚ przeÅ‚Ä…czony na nagrywany kanaÅ‚!\n" + +# +msgid "In progress" +msgstr "W toku" + +msgid "Inactivity Sleeptimer" +msgstr "Sleeptimer bezczynnoÅ›ci" + +# +msgid "Include AIT in http streams" +msgstr "AIT w streamie http" + +# +msgid "Include ECM in http streams" +msgstr "ECMy w streamie http" + +# +msgid "Include EIT in http streams" +msgstr "EIT w streamie http" + +msgid "Incorrect type service for PiP!" +msgstr "Typ serwisu nieobsÅ‚ugiwany w PiP!" + +# +msgid "Increased voltage" +msgstr "ZwiÄ™kszone napiÄ™cie" + +# +msgid "Index" +msgstr "Indeks" + +msgid "Index allocated:" +msgstr "Indeks przypisany:" + +# +msgid "Info" +msgstr "Info" + +# +msgid "Info bar" +msgstr "Pasek info" + +# +msgid "Info bar timeout" +msgstr "Czas wyÅ›wietlania paska info" + +msgid "Infobar frontend data source" +msgstr "ŹródÅ‚o danych frontend dla infobar" + +# +msgid "Information" +msgstr "Informacje" + +# +msgid "Init" +msgstr "Init" + +# +msgid "Initial fast forward speed" +msgstr "PoczÄ…tkowa prÄ™dkość przewijania w przód" + +# +msgid "Initial location in new timers" +msgstr "PoczÄ…tkowa lokalizacja nowego timera" + +msgid "Initial lock ratio" +msgstr "" + +# +msgid "Initial rewind speed" +msgstr "PoczÄ…tkowa prÄ™dkość przewijania wstecz" + +msgid "Initial signal quality" +msgstr "" + +msgid "Initial signal quality:" +msgstr "" + +# +msgid "Initialization" +msgstr "Inicjalizacja" + +# +msgid "Initialize" +msgstr "Inicjuj" + +msgid "Initializing storage device..." +msgstr "Inicjalizacja urzÄ…dzenia..." + +# +msgid "Input" +msgstr "WejÅ›cie" + +msgid "Input device setup" +msgstr "Konfiguracjia urzÄ…dzenia wejÅ›ciowego" + +# +msgid "Input devices" +msgstr "UrzÄ…dzenia wejÅ›cia" + +# +msgid "Install" +msgstr "Instalacja" + +# +msgid "Install a new image with a USB stick" +msgstr "Instaluj nowe image z pamiÄ™ci USB" + +# +msgid "Install a new image with your web browser" +msgstr "Instaluj nowe image z przeglÄ…darki www" + +# +msgid "Install channel list" +msgstr "Zainstaluj listÄ™ kanałów" + +# +msgid "Install extensions" +msgstr "Instaluj rozszerzenia" + +# +msgid "Install extensions." +msgstr "Instaluj rozszerzenia" + +# +msgid "Install local extension" +msgstr "Instaluj lokalny pakiet" + +# +msgid "Install picons on" +msgstr "Zainstaluj picony na" + +# +msgid "Install softcam" +msgstr "Zainstaluj softcam" + +msgid "Installation has completed." +msgstr "Instalacja zakoÅ„czona." + +# +msgid "Installation or removal has completed." +msgstr "Instalacja lub usuwanie zakoÅ„czone." + +# +msgid "Installing" +msgstr "Instalowanie" + +# +msgid "Installing software..." +msgstr "Instalowanie oprogramowania..." + +# +msgid "Instant recording location" +msgstr "Lokalizacja 'natychmiastowego' nagrania" + +# +msgid "Instant recording..." +msgstr "Natychmiastowe nagranie..." + +# +msgid "Interface: " +msgstr "Interfejs: " + +# +msgid "Intermediate" +msgstr "PoÅ›redni" + +# +msgid "Internal flash" +msgstr "WewnÄ™trzny flash" + +# +msgid "Internal hdd only" +msgstr "Tylko wewnÄ™trzny hdd" + +msgid "Interval between keys when repeating:" +msgstr "InterwaÅ‚ pomiÄ™dzy klawiszami przy powtarzaniu:" + +# +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Wybrano niewÅ‚aÅ›ciwy katalog: %s" + +# +msgid "Invalid location" +msgstr "NieprawidÅ‚owa lokalizacja" + +# +msgid "Invalid transponder data" +msgstr "BÅ‚Ä™dne dane transpondera" + +# +msgid "Inversion" +msgstr "Inwersja" + +msgid "Invert" +msgstr "Odwróć" + +# +msgid "Ipkg" +msgstr "Ipkg" + +msgid "Is this setting ok?" +msgstr "Użyć tych ustawieÅ„?" + +# +msgid "Is this video mode ok?" +msgstr "Czy ten tryb video jest ok?" + +# +msgid "Italian" +msgstr "WÅ‚oski" + +msgid "Items per page " +msgstr "Linii na stronie" + +msgid "Items per page for list screen" +msgstr "Linii na stronie (tryb listy)" + +# +msgid "Job overview" +msgstr "PodglÄ…d zadaÅ„" + +msgid "Jump to beginning of list" +msgstr "Skocz do poczÄ…tku listy" + +# +msgid "Jump to end of list" +msgstr "Skocz do koÅ„ca listy" + +# +msgid "Jump to next marked position" +msgstr "Skocz do nastÄ™pnej zaznaczonej pozycji" + +# +msgid "Jump to previous marked position" +msgstr "Skocz do poprzedniej zaznaczonej pozycji" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +msgid "Just scale" +msgstr "Po prostu skaluj" + +msgid "Keep service" +msgstr "Zostaw na aktualnym" + +msgid "Kernel version: " +msgstr "Wersja kernela:" + +# +msgid "Keyboard" +msgstr "Klawiatura" + +# +msgid "Keyboard map" +msgstr "UkÅ‚ad klawiatury" + +# +msgid "Keyboard setup" +msgstr "Ustawienia klawiatury" + +# +msgid "LAN adapter" +msgstr "Adapter LAN" + +msgid "LAN connection" +msgstr "PoÅ‚Ä…czenie LAN" + +# +msgid "LNB" +msgstr "LNB" + +# +msgid "Language" +msgstr "JÄ™zyk" + +# +msgid "Language selection" +msgstr "Wybór jÄ™zyka" + +# +msgid "Last config" +msgstr "Ostatnie ustawienia" + +# +msgid "Last speed" +msgstr "Ostatnia prÄ™dkość" + +msgid "Last upgrade: " +msgstr "Ostatnia aktualizacja:" + +msgid "Latest Commits" +msgstr "Ostatnie commit'y" + +# +msgid "Latitude" +msgstr "Szerokość geogr." + +# +msgid "Latvian" +msgstr "Åotewski" + +# +msgid "Leave DVD player?" +msgstr "OpuÅ›cić odtwarzacz DVD?" + +# +msgid "Left" +msgstr "Lewy" + +msgid "Left from servicename" +msgstr "Na lewo od nazwy kanaÅ‚u" + +msgid "Leisure hobbies" +msgstr "Hobby/czas wolny" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Letterbox" + +msgid "Letterbox zoom" +msgstr "" + +# +msgid "Limit character set for recording filenames" +msgstr "Limit znaków w nazwie nagrania" + +# +msgid "Limit east" +msgstr "Limit wschodni" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "Ogranicz znaki które mogÄ… być użyte w nazwach nagraÅ„ do (7bit) ascii. To zapewnia kompatybilność z systemami operacyjnymi lub systemami plików z ograniczonymi zestawami znaków." + +# +msgid "Limit west" +msgstr "Limit zachodni" + +msgid "Limits cancelled" +msgstr "Limity wyÅ‚aczone" + +msgid "Limits enabled" +msgstr "Limity wÅ‚aczone" + +# +msgid "Limits off" +msgstr "Limity wyÅ‚Ä…czone" + +# +msgid "Limits on" +msgstr "Limity wÅ‚Ä…czone" + +# +msgid "Link quality:" +msgstr "Jakość sygnaÅ‚u:" + +# +msgid "Link:" +msgstr "PoÅ‚Ä…czenie:" + +# +msgid "Linked titles with a DVD menu" +msgstr "DostÄ™pne tytuÅ‚y DVD z menu" + +# +msgid "List EPG functions..." +msgstr "Lista rodzajów EPG..." + +# +msgid "List available networks" +msgstr "Lista dostÄ™pnych sieci" + +msgid "List mode" +msgstr "Tryb listy" + +# +msgid "List of storage devices" +msgstr "Lista urzÄ…dzeÅ„ przechowywania danych" + +msgid "List type" +msgstr "Typ listy" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "Wersja listy %d, znaleziono %d kanaÅ‚" +msgstr[1] "Wersja listy %d, znaleziono %d kanaÅ‚y" +msgstr[2] "Wersja listy %d, znaleziono %d kanałów" + +# +msgid "Listen to the radio..." +msgstr "SÅ‚uchaj radia..." + +msgid "Lists reloaded!" +msgstr "" + +# +msgid "Lithuanian" +msgstr "Litewski" + +# +msgid "Load" +msgstr "Otwórz" + +# +msgid "Load Length of Movies in Movielist" +msgstr "WyÅ›wietlaj dÅ‚ugoÅ›ci filmów w liÅ›cie" + +# +msgid "Load length of movies in movie list" +msgstr "WyÅ›wietlaj dÅ‚ugoÅ›ci filmów w liÅ›cie" + +# +msgid "Load playlist" +msgstr "ZaÅ‚aduj playlistÄ™" + +# +msgid "Local network" +msgstr "Sieć lokalna" + +# +msgid "Location" +msgstr "Lokalizacja" + +# +msgid "Location for instant recordings" +msgstr "Lokalizacja dla 'natychmiastowych' nagraÅ„" + +msgid "Lock ratio" +msgstr "" + +# +msgid "Lock:" +msgstr "" + +# +msgid "Log results to harddisk" +msgstr "Zapisuj log na HDD" + +# +msgid "Long filenames" +msgstr "DÅ‚ugie nazwy plików" + +# +msgid "Long key press" +msgstr "DÅ‚ugie naciÅ›niÄ™cie klawisza" + +# +msgid "Longitude" +msgstr "DÅ‚ugość geogr." + +# +msgid "Loop through to" +msgstr "Przez przelotkÄ™ do" + +msgid "Luxembourgish" +msgstr "luxemburski" + +# +msgid "MMC card" +msgstr "Karta MMC" + +# +msgid "MORE" +msgstr "WiÄ™cej" + +# +msgid "Main menu" +msgstr "Menu główne" + +msgid "Maintain old EPG data for" +msgstr "Trzymaj stare dane EPG przez (w min.)" + +# +msgid "Make this mark an 'in' point" +msgstr "Traktuj znacznik jako punkt 'wejÅ›cia'" + +# +msgid "Make this mark an 'out' point" +msgstr "Traktuj znacznik jako punkt 'wyjÅ›cia'" + +# +msgid "Make this mark just a mark" +msgstr "Znacznik uniwersalny" + +# +msgid "Manage extensions" +msgstr "ZarzÄ…dzaj rozszerzeniami" + +# +msgid "Manage your receiver's software" +msgstr "ZarzÄ…dzaj oprogramowaniem odbiornika" + +# +msgid "Manual" +msgstr "RÄ™cznie" + +# +msgid "Manual Scan" +msgstr "Skanowanie rÄ™czne" + +# +msgid "Manual configuration" +msgstr "RÄ™czna konfiguracja" + +# +msgid "Manual scan" +msgstr "Skanowanie rÄ™czne" + +# +msgid "Manual transponder" +msgstr "WÅ‚asny transponder" + +# +msgid "Manufacturer" +msgstr "Producent" + +# +msgid "Margin after recording (minutes)" +msgstr "Margines po nagraniu (w min)" + +# +msgid "Margin before recording (minutes)" +msgstr "Margines przed nagraniem (w min)" + +# +msgid "Max memory positions" +msgstr "Max. pozycji pamiÄ™ci" + +msgid "Max. bitrate: " +msgstr "" + +# +msgid "Media player" +msgstr "Odtwarzacz" + +# +msgid "Media scanner" +msgstr "" + +# +msgid "Medium is not a writeable DVD!" +msgstr "NoÅ›nik nie jest zapisywalnym DVD!" + +# +msgid "Medium is not empty!" +msgstr "NoÅ›nik nie jest pusty!" + +msgid "Memory" +msgstr "Pamięć" + +msgid "Memory index" +msgstr "Indeks pamiÄ™ci" + +# +msgid "Menu" +msgstr "Menu" + +# +msgid "Message" +msgstr "Wiadomość" + +# +msgid "Message..." +msgstr "Wiadomość..." + +#, python-format +msgid "Minimum age %d years" +msgstr "Wiek minimalny %d lat" + +msgid "Minimum send interval" +msgstr "Minimalny interwaÅ‚ wysyÅ‚ania" + +# +msgid "Missing " +msgstr "Brak" + +# +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Tryb" + +# +msgctxt "Video output mode" +msgid "Mode" +msgstr "Tryb" + +# +msgid "Model: " +msgstr "Model: " + +# +msgid "Modulation" +msgstr "Modulacja" + +# +msgid "Modulator" +msgstr "Modulator" + +# +msgid "Mon" +msgstr "Pon" + +# +msgid "Mon-Fri" +msgstr "Pon-PiÄ…" + +# +msgid "Monday" +msgstr "PoniedziaÅ‚ek" + +# +msgid "Mosquito noise reduction" +msgstr "Punktowa redukcja szumów" + +msgid "Mount" +msgstr "Podmontuj" + +# +msgid "Move" +msgstr "PrzenieÅ›" + +# +msgid "Move PiP to main picture" +msgstr "PrzeÅ‚Ä…cz PiP do głównego ekranu" + +# +msgid "Move Picture in Picture" +msgstr "PrzesuÅ„ PiP" + +# +msgid "Move east" +msgstr "PrzesuÅ„ na wschód" + +# +msgid "Move to other directory" +msgstr "PrzenieÅ› do innego folderu" + +msgid "Move to position X" +msgstr "Idź do pozycji X" + +# +msgid "Move west" +msgstr "PrzesuÅ„ na zachód" + +msgid "Moved to position 0" +msgstr "PrzesuniÄ™to na pozycjÄ™ 0" + +msgid "Moved to position at index" +msgstr "PrzesuniÄ™to na pozycjÄ™ z indeksem" + +msgid "Movement" +msgstr "Ruch" + +msgid "Movie List Configuration" +msgstr "Konfiguracja listy nagraÅ„" + +msgid "Movie Selection" +msgstr "Filmy / Multimedia" + +msgid "Movie list configuration" +msgstr "Konfiguracja listy kanałów" + +# +msgid "Movie location" +msgstr "Lokalizacja nagraÅ„" + +msgid "Movie selection" +msgstr "Filmy / Multimedia" + +msgid "Movie/Drama" +msgstr "Film/Dramat" + +# +msgid "Movielist menu" +msgstr "Menu listy nagraÅ„" + +msgid "Moving" +msgstr "Dojazd" + +msgid "Moving east ..." +msgstr "Idzie na wscód" + +msgid "Moving to position" +msgstr "Idzie na pozycjÄ™" + +msgid "Moving west ..." +msgstr "Idzie na zachód" + +# +msgid "Multi EPG" +msgstr "" + +# +msgid "Multi-EPG bouquet selection" +msgstr "Wybór bukietów w Multi EPG" + +# +msgid "Multimedia" +msgstr "" + +# +msgid "Multiple service support" +msgstr "Wsparcie wielokronego dekodowania" + +msgid "Multiplex" +msgstr "" + +# +msgid "Multisat" +msgstr "" + +# +msgid "Multisat all select" +msgstr "Multisat wybierz wszystkie" + +msgid "Music/Ballet/Dance" +msgstr "Muzyka/Balet/Taniec" + +# +msgid "Mute" +msgstr "Wycisz" + +# +msgid "N/A" +msgstr "N/A" + +# +msgid "NEXT" +msgstr "NastÄ™pny" + +msgid "NFI image flashing" +msgstr "" + +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "" + +# +msgid "NIM" +msgstr "Tuner" + +# +msgid "NOW" +msgstr "Teraz" + +# +msgid "NTSC" +msgstr "" + +# +msgid "Name" +msgstr "Nazwa" + +# +msgid "Nameserver" +msgstr "Nameserver (DNS)" + +# +#, python-format +msgid "Nameserver %d" +msgstr "Nameserver %d" + +# +msgid "Nameserver settings" +msgstr "Ustawienia DNS" + +# +msgid "Nameserver setup" +msgstr "Ustawienia DNS" + +msgid "Namespace" +msgstr "Nazwa" + +# +msgid "Netmask" +msgstr "Maska sieci" + +# +msgid "Network" +msgstr "Sieć" + +# +msgid "Network ID" +msgstr "ID sieci" + +# +msgid "Network configuration..." +msgstr "Konfiguracja sieci..." + +# +msgid "Network mount" +msgstr "UdziaÅ‚ sieciowy" + +# +#, python-format +msgid "Network mount %s" +msgstr "UdziaÅ‚ sieciowy %s" + +msgid "Network name (SSID)" +msgstr "Nazwa sieci (SSID)" + +# +msgid "Network scan" +msgstr "Skanowanie sieci" + +# +msgid "Network setup" +msgstr "Ustawienia sieci" + +# +msgid "Network test" +msgstr "Test sieci" + +# +msgid "Network test..." +msgstr "Test poÅ‚Ä…czenia sieciowego..." + +msgid "Network test: " +msgstr "Test sieci:" + +# +msgid "Network wizard" +msgstr "Wizard konfiguracji sieci" + +# +msgid "Network:" +msgstr "Sieć:" + +# +msgid "New" +msgstr "Nowe" + +# +msgid "New PIN" +msgstr "Nowy PIN" + +# +msgid "New version:" +msgstr "Nowa wersja:" + +msgid "News Current Affairs" +msgstr "WiadomoÅ›ci / AktualnoÅ›ci" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "NastÄ™pny" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "NastÄ™pnie" + +# +msgid "No" +msgstr "Nie" + +# +msgid "No (supported) DVDROM found!" +msgstr "Nie znaleziono (obsÅ‚ugiwanego) napÄ™du DVDROM!" + +# +msgid "No Connection" +msgstr "Brak poÅ‚Ä…czenia" + +# +msgid "No HDD found or HDD not initialized!" +msgstr "Nie znaleziono HDD lub dysk nie jest zainicjowany!" + +# +msgid "No backup needed" +msgstr "Kopia zapasowa nie jest potrzebna" + +msgid "No cable tuner found!" +msgstr "Nie znaleziono tunera kablowego" + +# +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Brak danych na transponderze!\n" +"(Koniec czasu czytania PAT)" + +# +msgid "No delay" +msgstr "Brak" + +# +msgid "No description available." +msgstr "Brak dostÄ™pnego opisu." + +# +msgid "No details for this image file" +msgstr "Brak opisu dla tego image" + +# +msgid "No displayable files on this medium found!" +msgstr "Brak plików do wyÅ›wietlenia na tym noÅ›niku!" + +# +msgid "No event info found, recording indefinitely." +msgstr "Nie znaleziono informacji o wydarzeniu, nagrywanie na czas nieokreÅ›lony." + +# +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "'Przewijanie' nie dostÄ™pne (jeszcze)... można użyć klawiszy numerycznych aby przeskoczyć w przód/tyÅ‚!" + +msgid "No free index available" +msgstr "Brak wolnego indeksu" + +# +msgid "No free tuner!" +msgstr "Brak wolnego tunera!" + +# +msgid "No network connection available." +msgstr "Brak poÅ‚Ä…czenia z sieciÄ…." + +# +msgid "No networks found" +msgstr "Nie znaleziono sieci" + +msgid "No new plugins found" +msgstr "Nie znaleziono nowych pluginów" + +# +msgid "No positioner capable frontend found." +msgstr "Nie znaleziono pozycjonera." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "Brak skonfigurowanych satelitów. Sprawdź ustawienia." + +msgid "No service" +msgstr "Brak kanaÅ‚u" + +# +msgid "No services/providers selected" +msgstr "Brak wybranych kanałów/nadawców" + +# +msgid "No standby" +msgstr "Bez stanu czuwania" + +msgid "No suitable sat tuner found!" +msgstr "Nie znaleziono odpowiedniej gÅ‚owicy sat!" + +# +msgid "No tags are set on these movies." +msgstr "Brak 'tagów' na tych filmach." + +# +msgid "No timeout" +msgstr "Bez koÅ„ca" + +# +msgid "No to all" +msgstr "Nie dla wszystkich" + +# +msgid "No transparency" +msgstr "Brak" + +# +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "Brak skonfigurowanego tunera do współpracy z pozycjonerem diseqc!" + +# +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Brak wÅ‚Ä…czonego tunera!\n" +"Skonfiguruj tuner przed rozpoczÄ™ciem skanowania." + +# +msgid "No updates available" +msgstr "Brak dostÄ™pnych aktualizacji." + +msgid "No updates available. Please try again later." +msgstr "Brak aktualizacji. Spróbuj ponownie później." + +# +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Nie znaleziono kodu PIN dla kanaÅ‚u!\n" +"Czy chcesz zmienić PIN kanaÅ‚u?\n" +"Gdy wciÅ›niesz NIE ochrona kanaÅ‚u pozostanie wyÅ‚Ä…czona!" + +# +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Nie znaleziono kodu PIN ustawieÅ„!\n" +"Czy chcesz zmienić PIN ustawieÅ„?\n" +"Gdy wciÅ›niesz NIE ochrona ustawieÅ„ zostanie wyÅ‚Ä…czona!" + +msgid "No wireless networks found! Searching..." +msgstr "Nie znaleziono sieci bezprzewodowych! Wyszukiwanie..." + +# +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"Nie znaleziono dziaÅ‚ajÄ…cego adaptera sieciowego.\n" +"Sprawdź czy podÅ‚Ä…czyÅ‚eÅ› kabel sieciowy i czy twoja sieć jest poprawnie skonfigurowana." + +# +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"Nie znaleziono dziaÅ‚ajÄ…cego adaptera sieci bezprzewowej.\n" +"Sprawdź czy podÅ‚Ä…czyÅ‚eÅ› kompatybilne urzÄ…dzenie WLAN i czy twoja sieć jest poprawnie skonfigurowana." + +# +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"Nie znaleziono dziaÅ‚ajÄ…cego interfejsu sieci bezprzewodowej.\n" +" Sprawdź czy podÅ‚Ä…czyÅ‚eÅ› kompatybilne urzÄ…dzenie WLAN lub czy wÅ‚Ä…czyÅ‚eÅ› twój lokalny interfejs sieciowy." + +# +msgid "No, but restart from begin" +msgstr "Nie, ale odtwórz od poczÄ…tku" + +# +msgid "No, do nothing." +msgstr "Nie, nie rób nic." + +msgid "No, just start my receiver" +msgstr "Nie, po prostu wÅ‚Ä…cz odbiornik" + +msgid "No, never" +msgstr "Nie, nigdy" + +# +msgid "None" +msgstr "Brak" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Nielinearny" + +msgid "Normal mode" +msgstr "Tryb standardowy" + +# +msgid "North" +msgstr "Północ" + +# +msgid "Norwegian" +msgstr "Norweski" + +msgid "Not associated" +msgstr "Nie powiÄ…zane" + +# +msgid "Not configured" +msgstr "Nieskonfigurowany" + +# +#, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Nie wystarczajÄ…ca ilość przestrzeni dyskowej. Zwolnij miejsce na dysku i spróbuj ponownie. (%d MB wymagane, %d MB dostÄ™pne)" + +# +msgid "Nothing connected" +msgstr "Nic nie podÅ‚Ä…czono" + +# +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Nic do skanowania!\n" +"Skonfiguruj tuner przed rozpoczeciem skanowania." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "Teraz" + +# +msgid "Now playing" +msgstr "Teraz odtwarzane" + +# +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Teraz użyj ustawieÅ„ kontrastu aby ustawić jak nawiÄ™kszÄ… jasność tÅ‚a, ale tak, żeby nadal widać byÅ‚o różnicÄ™ pomiÄ™dzy dwoma najjaÅ›niejszymi odcieniami, JeÅ›li skoÅ„czyÅ‚eÅ›, wciÅ›nij OK." + +# +msgid "OK" +msgstr "OK" + +# +msgid "OK, guide me through the upgrade process" +msgstr "OK, przeprowadź mnie poprzez proces aktualizacji" + +msgid "ONID" +msgstr "" + +# +msgid "OSD name request" +msgstr "Żądanie nazwy OSD" + +# +msgid "OSD settings" +msgstr "Ustawienia OSD" + +# +msgid "OSD transparency" +msgstr "Przezroczystość OSD" + +# +msgid "Off" +msgstr "WyÅ‚Ä…cz" + +msgid "Offline decode delay (ms)" +msgstr "Opóźnienie dekodowania offline (ms)" + +msgid "Ok" +msgstr "" + +# +msgid "On" +msgstr "WÅ‚Ä…cz" + +msgid "On end of movie" +msgstr "Na koÅ„cu filmu" + +msgid "On end of movie (as menu)" +msgstr "Na koÅ„cu (menu)" + +# +msgid "One" +msgstr "Jeden" + +# +msgid "Only extensions." +msgstr "Tylko rozszerzenia." + +# +msgid "Only free scan" +msgstr "Skanuj tylko FTA" + +# +msgid "Open service list" +msgstr "Otwórz listÄ™ kanałów" + +# +msgid "Open the movie list" +msgstr "Powrót do listy filmów" + +msgid "Orbital position" +msgstr "Pozycja sat" + +msgid "Original" +msgstr "Oryginalny" + +# +msgid "Other" +msgstr "Inne" + +msgid "Output" +msgstr "WyjÅ›cie" + +# +msgid "Overwrite configuration files during software upgrade?" +msgstr "Nadpisać pliki konfiguracyjne podczas aktualizacji?" + +# +msgid "Overwrite configuration files?" +msgstr "Nadpisać pliki konfiguracyjne?" + +# +msgid "PAL" +msgstr "" + +msgid "PCR PID" +msgstr "" + +# +msgid "PIDs" +msgstr "PIDy" + +# +msgid "PIN code needed" +msgstr "Wymagany kod PIN" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "" + +# +msgid "Package list update" +msgstr "Aktualizacja listy pakietów" + +# +msgid "Packet management" +msgstr "ZarzÄ…dzanie pakietami" + +# +msgid "Packet manager" +msgstr "Menadżer pakietów" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +msgid "Pan&scan" +msgstr "" + +# +msgid "Parent directory" +msgstr "Katalog nadrzÄ™dny" + +# +msgid "Parental control" +msgstr "Kontrola rodzicielska" + +# +msgid "Parental control services editor" +msgstr "Edytor kanałów objÄ™tych kontrolÄ™ rodzicielskÄ…" + +# +msgid "Parental control setup" +msgstr "Ustawienia kontroli rodzicielskiej" + +# +msgid "Parental control type" +msgstr "Typ kontroli rodzicielskiej" + +# +msgid "Password" +msgstr "HasÅ‚o" + +# +msgid "Pause" +msgstr "Pauza" + +# +msgid "Pause movie at end" +msgstr "Zatrzymaj film na koÅ„cu" + +# +msgid "Pause playback" +msgstr "Wstrzymaj odtwarzanie" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "Procenty po lewej" + +# +msgid "Percentage right" +msgstr "Procenty po prawej" + +# +msgid "Permanently delete all recordings in the trash can?" +msgstr "Trwale usunąć wszystkie nagrania z 'Kosza'?" + +# +msgid "Permanently remove all deleted items" +msgstr "UsuÅ„ wszystkie pliki z 'Kosza'" + +# +msgid "Persian" +msgstr "Perski" + +# +msgid "Phone number" +msgstr "Numer telefonu" + +# +msgid "PiP setup" +msgstr "Ustawienia PiP" + +msgid "Picon" +msgstr "" + +msgid "Picon and service name" +msgstr "Picon i nazwa" + +# +msgid "Picture player" +msgstr "Odtwarzacz zdjęć" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "" + +# +msgid "Pilot" +msgstr "Pilot" + +# +msgid "Play" +msgstr "Odtwarzaj" + +# +msgid "Play DVD" +msgstr "Odtwórz DVD" + +# +msgid "Play audio in background" +msgstr "Odtwarzaj audio w tle" + +# +msgid "Play audio-CD..." +msgstr "Odtwórz CD-Audio..." + +msgid "Play back media files" +msgstr "Odtwórz pliki multimedialne" + +# +msgid "Play entry" +msgstr "Odtwórz" + +# +msgid "Play from next mark or playlist entry" +msgstr "Odtwórz od nastÄ™pnego zaznaczenia lub pozycji playlisty" + +# +msgid "Play from previous mark or playlist entry" +msgstr "Odtwórz od poprzedniego zaznaczenia lub pozycji playlisty" + +# +msgid "Play music..." +msgstr "Odtwórz muzykÄ™..." + +msgid "Play next" +msgstr "Odtwórz nastÄ™pny" + +msgid "Play next (return to movie list)" +msgstr "Odtwarzaj kolejne...>| wróć do listy" + +msgid "Play next (return to previous service)" +msgstr "Odtwarzaj kolejne...>| wróć do TV" + +msgid "Play previous" +msgstr "Odtwórz poprzedni" + +# +msgid "Play recorded movies..." +msgstr "Odtwórz nagrane filmy..." + +# +msgid "Please add titles to the compilation." +msgstr "Dodaj tytuÅ‚y do kompilacji." + +# +msgid "Please change recording endtime" +msgstr "ZmieÅ„ czas zkoÅ„czenia nagrywania" + +# +msgid "Please check your network settings!" +msgstr "Sprawdź ustawienia sieci!" + +# +msgid "Please choose an extension..." +msgstr "Menu rozszerzeÅ„" + +# +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Skonfiguruj lub sprawdź dane nameserver (DNS).\n" +"NastÄ™pnie, aby kontynuować wciÅ›nij OK" + +# +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Skonfiguruj poÅ‚Ä…czenie z internetem.\n" +"NastÄ™pnie, aby kontynuować wciÅ›nij OK" + +msgid "Please connect your receiver to the internet" +msgstr "PodÅ‚Ä…cz odbiornik do internetu" + +# +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Nie zmieniaj żadnych wartoÅ›ci (chyba, że wiesz co robisz...)!" + +# +msgid "Please enter a name for the new bouquet" +msgstr "Wpisz nazwÄ™ dla nowego bukietu" + +# +msgid "Please enter a name for the new marker" +msgstr "Wpisz nazwÄ™ dla nowego znacznika" + +# +msgid "Please enter a new filename" +msgstr "Wpisz nowÄ… nazwÄ™ pliku" + +# +msgid "Please enter filename (empty = use current date)" +msgstr "Wpisz nazwÄ™ pliku (pusty = aktualna data)" + +# +msgid "Please enter name of the new directory" +msgstr "Podaj nazwÄ™ dla nowego katalogu" + +msgid "Please enter new name:" +msgstr "Wpisz nowÄ… nazwÄ™:" + +# +msgid "Please enter the correct pin code" +msgstr "Wpisz poprawny kod pin" + +# +msgid "Please enter the old PIN code" +msgstr "Wpisz poprzedni kod PIN" + +# +msgid "Please follow the instructions on the TV" +msgstr "Podążaj za instrukcjami na TV" + +# +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "Brak dostÄ™pu do uprzednio wybranych plików. Użyto katalogu domyÅ›lnego." + +# +msgid "Please press OK to continue." +msgstr "NaciÅ›nij OK aby kontynuować." + +msgid "Please select a default EPG type..." +msgstr "Wybierz domyÅ›lny typ EPG..." + +# +msgid "Please select a playlist to delete..." +msgstr "Wybierz playlistÄ™ do usuniÄ™cia..." + +# +msgid "Please select a playlist..." +msgstr "Wybierz playlistÄ™..." + +# +msgid "Please select a sub service..." +msgstr "Wybierz subserwis..." + +# +msgid "Please select a subservice to record..." +msgstr "Wybierz subserwis do nagrania..." + +# +msgid "Please select a subservice..." +msgstr "Wybierz subserwis..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "" + +# +msgid "Please select medium to be scanned" +msgstr "Wybierz noÅ›nik do przeszukania" + +# +msgid "Please select medium to use as backup location" +msgstr "Wybierz noÅ›nik do użycia jako miejsce backupu" + +# +msgid "Please select tag to filter..." +msgstr "Wybierz 'tag' do filtrowania..." + +# +msgid "Please select the movie path..." +msgstr "Wybierz Å›cieżkÄ™ do filmu..." + +# +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Wybierz interfejs za pomocÄ… którego bÄ™dziesz siÄ™ Å‚Ä…czyÅ‚ z internetem.\n" +"Wcisnij OK aby kontynuować" + +# +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Wybierz sieć WiFi z którÄ… chcesz siÄ™ poÅ‚Ä…czyć.\n" +"\n" +"Wcisnij OK aby kontynuować." + +# +msgid "Please set up tuner A" +msgstr "Skonfiguruj tuner A" + +# +msgid "Please set up tuner B" +msgstr "Skonfiguruj Tuner B" + +# +msgid "Please set up tuner C" +msgstr "Skonfiguruj Tuner C" + +# +msgid "Please set up tuner D" +msgstr "Skonfiguruj Tuner D" + +# +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Użyj przycisków 'strzaÅ‚ek', aby przesunąć okno PiP.\n" +"WciÅ›nij 'Bouquet +/-' (lub 'Channel+/-') aby zmienić rozmiar okna.\n" +"WciÅ›nij OK aby wrócić do trybu TV lub EXIT aby przerwać przesuwanie." + +# +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "W celu wyboru jÄ™zyka użyj klawiszy GÓRA i DÓÅ. Nastepnie nacisnij przycisk OK." + +# +msgid "Please wait" +msgstr "Czekaj..." + +# +msgid "Please wait (downloading channel list)" +msgstr "Czekaj (pobieranie listy kanałów)" + +# +msgid "Please wait (downloading softcam)" +msgstr "Czekaj (pobieranie softcamu)" + +# +msgid "Please wait (updating packages)" +msgstr "Czekaj (aktualizacja pakietów)" + +# +msgid "Please wait for activation of your network configuration..." +msgstr "Poczekaj na aktywacjÄ™ twojej konfiguracji sieci..." + +# +msgid "Please wait while scanning is in progress..." +msgstr "Czekaj, trwa skanowanie..." + +# +msgid "Please wait while we configure your network..." +msgstr "Czekaj, trwa konfuguracja sieci..." + +# +msgid "Please wait while we prepare your network interfaces..." +msgstr "Czekaj, trwa przygotowanie karty sieciowej..." + +# +msgid "Please wait while we test your network..." +msgstr "Czekaj, trwa test sieci..." + +msgid "Please wait while your network is restarting..." +msgstr "Czekaj, sieć jest restartowana..." + +# +msgid "Please wait..." +msgstr "Czekaj..." + +# +msgid "Please wait... Loading list..." +msgstr "Czekaj... Åadowanie listy..." + +# +msgid "Plugin browser" +msgstr "PrzeglÄ…darka pluginów" + +# +msgid "Plugin manager activity information" +msgstr "Informacja o dziaÅ‚aniu menadżera pluginów" + +# +msgid "Plugin manager help" +msgstr "Menedżer pluginów - pomoc" + +# +msgid "Plugins" +msgstr "Pluginy" + +msgid "Polarisation" +msgstr "Polaryzacja" + +msgid "Polarisation:" +msgstr "Polaryzacja:" + +# +msgid "Polarization" +msgstr "Polaryzacja" + +# +msgid "Polish" +msgstr "Polski" + +# +msgid "Port A" +msgstr "Port A" + +# +msgid "Port B" +msgstr "Port B" + +# +msgid "Port C" +msgstr "Port C" + +# +msgid "Port D" +msgstr "Port D" + +# +msgid "Portuguese" +msgstr "Portugalski" + +# +msgid "Position of completed timers in timerlist" +msgstr "Pozycja wykonanych timerów w liÅ›cie" + +msgid "Position stored at index" +msgstr "Pozycja zapisana z indeksem" + +# +msgid "Positioner" +msgstr "Pozycjoner" + +# +msgid "Positioner (selecting satellites)" +msgstr "Obrotnica (wybór satelitów)" + +msgid "Positioner Setup" +msgstr "Ustawienia pozycjonera" + +# +msgid "Positioner setup" +msgstr "Ustawienia pozycjonera" + +# +msgid "Power threshold in mA" +msgstr "Próg mocy w mA" + +# +msgid "Predefined transponder" +msgstr "Pre-definiowany transponder" + +# +msgid "Prefer AC3 track" +msgstr "Preferuj AC3" + +# +msgid "Prefer AC3+ track" +msgstr "Preferuj AC3+" + +# +msgid "Prefer audio track stored by service" +msgstr "Preferuj Å›cieżkÄ™ audio zapamiÄ™tanÄ… dla kanaÅ‚u" + +# +msgid "Prefer graphical DVB subtitles" +msgstr "Preferuj napisy DVB" + +# +msgid "Prefer subtitles for hearing impaired" +msgstr "Preferuj napisy dla niesÅ‚yszÄ…cych" + +# +msgid "Prefer subtitles stored by service" +msgstr "Preferuj napisy zapamiÄ™tane dla kanaÅ‚u" + +# +msgid "Preferred tuner" +msgstr "Tuner preferowany" + +# +msgid "Preferred tuner for recordings" +msgstr "Tuner preferowany dla nagrywania" + +# +msgid "Prepare another USB stick for image flashing" +msgstr "Przygotuj inny pen USB do flash'owania" + +# +msgid "Preparing... Please wait" +msgstr "Przygotowywanie... Prosze czekać" + +msgid "Press '0' to toggle PiP mode" +msgstr "WciÅ›nij '0' aby przeÅ‚Ä…czać tryby PiP" + +# +msgid "Press INFO on your remote control for additional information." +msgstr "WciÅ›nij INFO aby uzyskać dodatkowe informacje" + +# +msgid "Press MENU on your remote control for additional options." +msgstr "WciÅ›nij MENU aby mieć dostÄ™p do dodatkowych opcji" + +# +msgid "Press OK on your remote control to continue." +msgstr "WciÅ›nij OK, aby kontynuować." + +# +msgid "Press OK to activate the selected skin." +msgstr "WciÅ›nij OK, aby aktywować wybrany skin." + +# +msgid "Press OK to activate the settings." +msgstr "WciÅ›nij OK, aby aktywować ustawienia" + +# +msgid "Press OK to edit the settings." +msgstr "Aby edytować ustawienia, wciÅ›nij OK." + +# +#, python-format +msgid "Press OK to get further details for %s" +msgstr "WciÅ›nij OK, aby uzyskać wiÄ™cej info o %s" + +# +msgid "Press OK to scan" +msgstr "WciÅ›nij OK, aby skanować" + +# +msgid "Press OK to select a provider." +msgstr "WciÅ›nij OK, aby wybrać nadawcÄ™." + +# +msgid "Press OK to select satellites" +msgstr "WciÅ›nij OK, aby wybrać satelity." + +# +msgid "Press OK to select/deselect a CAId." +msgstr "WciÅ›nij OK, aby wybrać/usunąć CAId" + +# +msgid "Press OK to start the scan" +msgstr "WciÅ›nij OK, aby rozpocząć skanowanie" + +# +msgid "Press OK to toggle the selection" +msgstr "WciÅ›nij OK, aby wybrać lub 'odznaczyć'" + +# +msgid "Press OK to toggle the selection." +msgstr "WciÅ›nij OK, aby zmienić wybór" + +# +msgid "Press yellow to set this interface as default interface." +msgstr "WciÅ›nij 'żółty', aby ustawić ten interfejs jako domyÅ›lny" + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "Poprzedni" + +# +msgid "Preview" +msgstr "PodglÄ…d" + +# +msgid "Preview menu" +msgstr "Menu podglÄ…du" + +msgid "Preview selected channel" +msgstr "PodglÄ…d wybranego kanaÅ‚u" + +# +msgid "Primary DNS" +msgstr "Pierwszy DNS" + +# +msgid "Priority" +msgstr "Priorytet konwertera" + +# +msgid "Process" +msgstr "Proces" + +# +msgid "Progress" +msgstr "Pasek postÄ™pu" + +# +msgid "Progress bar left" +msgstr "Pasek postÄ™pu z lewej" + +# +msgid "Progress bar right" +msgstr "Pasek postÄ™pu z prawej" + +# +msgid "Properties of current title" +msgstr "WÅ‚aÅ›ciwoÅ›ci aktualnego tytuÅ‚u" + +# +msgid "Protect services" +msgstr "Zabezpiecz kanaÅ‚y" + +# +msgid "Protect setup" +msgstr "Zabezpiecz ustawienia" + +# +msgid "Provider" +msgstr "Nadawcy" + +# +msgid "Provider to scan" +msgstr "Nadawca do skanowania" + +# +msgid "Providers" +msgstr "Nadawcy" + +# +msgid "Put TV in standby" +msgstr "PrzeÅ‚Ä…czaj TV w stan czuwania" + +# +msgid "Put receiver in standby" +msgstr "PrzeÅ‚Ä…czaj odbiornik w stan czuwania" + +# +msgid "Python frontend for /tmp/mmi.socket" +msgstr "Python frontend dla /tmp/mmi.socket" + +# +msgid "Quick" +msgstr "Szybko" + +# +msgid "Quick zap" +msgstr "Szybkie przeÅ‚Ä…czanie" + +# +msgid "RF output" +msgstr "WyjÅ›cie RF" + +# +msgid "RGB" +msgstr "" + +# +msgid "Radio" +msgstr "" + +# +msgid "Ram disk" +msgstr "" + +# +msgid "Random" +msgstr "Losowo" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "Ograniczenie nadawcy - %d" + +msgid "Rating undefined" +msgstr "Ograniczenie niezdefiniowane" + +# +msgid "Really close without saving settings?" +msgstr "Wyjść bez zapisywania ustawieÅ„?" + +# +msgid "Really delete done timers?" +msgstr "Usunąć wykonane timery?" + +# +msgid "Really exit the subservices quickzap?" +msgstr "Wyjść z subserwisów?" + +# +msgid "Really reboot now?" +msgstr "Wykonać reboot teraz?" + +# +msgid "Really restart now?" +msgstr "Zrestartować teraz?" + +# +msgid "Really shutdown now?" +msgstr "WyÅ‚Ä…czyć teraz?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "Wykonać teraz upgrade frontprocesora i zrestartować STB?" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "Wykonać upgrade odbiornika i zrestartować?" + +# +msgid "Reboot" +msgstr "Reboot" + +msgid "Rec" +msgstr "" + +# +msgid "Reception settings" +msgstr "Ustawienia odbioru" + +# +msgid "Record" +msgstr "Nagrania" + +# +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "Czas nagrywania ograniczony z powodu konfliktu timera %s" + +# +msgid "Recorded files..." +msgstr "Nagrane pliki..." + +# +msgid "Recording" +msgstr "Nagranie" + +msgid "Recording in progress" +msgstr "Nagrywanie w toku" + +# +msgid "Recording paths" +msgstr "Lokalizacja nagraÅ„" + +msgid "Recording type" +msgstr "Typ nagrania" + +# +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "Nagrywanie(a) jest w toku lub rozpocznie siÄ™ za kilka sekund!" + +# +msgid "Recordings" +msgstr "Nagrania" + +# +msgid "Recordings always have priority" +msgstr "Nagrywanie zawsze ma priorytet" + +msgid "Red button..." +msgstr "Czerwony..." + +# +msgid "Reenter new PIN" +msgstr "Wpisz ponownie nowy PIN" + +# +msgid "Refresh rate" +msgstr "CzÄ™stotliwość odÅ›wieżania" + +# +msgid "Refresh rate selection." +msgstr "Wybór czÄ™stotliwoÅ›ci odÅ›wieżania" + +# +msgid "Regard deep standby as standby" +msgstr "Traktuj gÅ‚Ä™bokie czuwanie jak standby" + +# +msgid "Relative" +msgstr "WzglÄ™dna" + +# +msgid "Reload" +msgstr "PrzeÅ‚aduj" + +# +msgid "Reload black-/white lists" +msgstr "PrzeÅ‚aduj Black-/White lists" + +# +msgid "Reloading bouquets and services..." +msgstr "PrzeÅ‚adowanie bukietów i kanałów" + +# +msgid "Remember last service in PiP" +msgstr "PamiÄ™taj ostatni kanaÅ‚ w PiP" + +# +msgid "Remember service PIN" +msgstr "PamiÄ™taj PIN kanaÅ‚u" + +msgid "Remember these settings for each folder" +msgstr "" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "Pamietaj, wybraÅ‚eÅ› zapisywanie pliku timeshift." + +# +msgid "Remote control type" +msgstr "Typ pilota" + +# +msgid "Removal has completed." +msgstr "Usuwanie zakoÅ„czone." + +# +msgid "Remove" +msgstr "UsuÅ„" + +# +msgid "Remove a mark" +msgstr "UsuÅ„ znacznik" + +# +msgid "Remove a nameserver entry" +msgstr "UsuÅ„ wpis DNS" + +# +msgid "Remove bookmark" +msgstr "UsuÅ„ zakÅ‚adkÄ™" + +# +msgid "Remove completed timers after (days)" +msgstr "UsuÅ„ wykonane timery po (dni)" + +# +msgid "Remove currently selected title" +msgstr "UsuÅ„ aktualnie wybrany tytuÅ‚" + +# +msgid "Remove items from trash can after (days)" +msgstr "UsuÅ„ pliki z 'Kosza' po (dni)" + +# +msgid "Remove plugins" +msgstr "UsuÅ„ pluginy" + +# +msgid "Remove title" +msgstr "UsuÅ„ tytuÅ‚" + +# +msgid "Removing" +msgstr "Usuwanie" + +# +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Usuniecie katalogu %s nie powiodÅ‚o siÄ™. (Być może nie jest pusty?)" + +msgid "Removing partition table" +msgstr "Usuwanie tablicy partycji" + +# +msgid "Rename" +msgstr "ZmieÅ„ nazwÄ™" + +msgid "Repeat" +msgstr "Powtórz" + +# +msgid "Repeat type" +msgstr "Rozdzaj powtórzeÅ„" + +# +msgid "Repeating event currently recording... What do you want to do?" +msgstr "Powtarzane wydarzenie wÅ‚aÅ›nie jest nagrywane... Co chcesz zrobić?" + +# +msgid "Repeats" +msgstr "Powtórzenia" + +msgid "Require authentication for http streams" +msgstr "Wymagaj uwierzytelnienia dla streamów http" + +# +msgid "Required medium type:" +msgstr "Wymagany typ noÅ›nika:" + +msgid "Rereading partition table" +msgstr "Ponowne odczytywanie tablicy partycji" + +msgid "Reserved" +msgstr "Zarezerwowany" + +# +msgid "Reset" +msgstr "Resetuj" + +# +msgid "Reset and renumerate title names" +msgstr "Zresetuj i zmieÅ„ numeracjÄ™ nazw tytułów" + +# +msgid "Reset playback position" +msgstr "Resetuj pozycjÄ™ startu odtwarzania" + +# +msgid "Reset video enhancement settings to system defaults?" +msgstr "Zresetować ustawienia do domyÅ›lnych?" + +# +msgid "Reset video enhancement settings to your last configuration?" +msgstr "Zresetować ustawienia do poprzedniej konfiguracji?" + +# +msgid "Resolution" +msgstr "Rozdzielczość" + +# +msgid "Restart" +msgstr "Restart odbiornika" + +# +msgid "Restart GUI now?" +msgstr "Zrestartować GUI teraz?" + +# +msgid "Restart enigma" +msgstr "Restart enigmy" + +# +msgid "Restart network" +msgstr "Restartuj sieć" + +# +msgid "Restart test" +msgstr "Powtórz test" + +# +msgid "Restart your network connection and interfaces.\n" +msgstr "Restart adaptera i poÅ‚Ä…czenia sieciowego.\n" + +# +msgid "Restore" +msgstr "Przywróć" + +# +msgid "Restore backups" +msgstr "Przywróć backup" + +# +msgid "Restore is running..." +msgstr "Trwa przywracanie..." + +# +msgid "Restore system settings" +msgstr "Przywróć ustawienia systemowe" + +# +msgid "Restoring..." +msgstr "Przywracanie..." + +# +msgid "Resume from last position" +msgstr "Wznów od ostatniej pozycji" + +# +#, python-format +msgid "Resume position at %s" +msgstr "Pozycja wznowienia na %s" + +# +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Wznawianie odtwarzania" + +# +msgid "Return to movie list" +msgstr "Powrót do listy filmów" + +# +msgid "Return to previous service" +msgstr "Powrót do poprzedniego kanaÅ‚u" + +msgid "Reverse bouquet buttons" +msgstr "ZamieÅ„ przyciski bukietów" + +# +msgid "Reverse list" +msgstr "Odwróć listÄ™" + +# +msgid "Rewind speeds" +msgstr "PrÄ™dkoÅ›ci przewijania w tyÅ‚" + +# +msgid "Rewrap teletext subtitles" +msgstr "Poprawiaj rozÅ‚ożenie napisów teletekst" + +# +msgid "Right" +msgstr "Prawo" + +msgid "Right from servicename" +msgstr "Na prawo od nazwy kanaÅ‚u" + +msgid "Roll-off" +msgstr "" + +msgid "Romanian" +msgstr "RumuÅ„ski" + +# +msgid "Root directory" +msgstr "Katalog root" + +msgid "Rotor step position:" +msgstr "Pozycja kroku obrotnicy:" + +# +msgid "Rotor turning speed" +msgstr "PrÄ™dkość obrotu rotora" + +msgid "Round start time on" +msgstr "ZaokrÄ…glaj czas startu do" + +# +msgid "Russian" +msgstr "Rosyjski" + +# +msgid "S-Video" +msgstr "" + +msgid "SID" +msgstr "" + +# +msgid "SINGLE LAYER DVD" +msgstr "Jednowarstwowe DVD" + +# +msgid "SNR" +msgstr "" + +# +msgid "SNR:" +msgstr "" + +# +msgid "SSID:" +msgstr "" + +msgid "Same resolution as skin" +msgstr "Taka sama rozdzielczość jak skina" + +# +msgid "Sat" +msgstr "Sob" + +# +msgid "Satellite" +msgstr "Satelita" + +# +msgid "Satellite dish setup" +msgstr "Ustawienia anteny" + +# +msgid "Satellite equipment" +msgstr "Wyposażenie sat" + +# +msgid "Satellite equipment setup" +msgstr "Ustawienia wyposażenia SAT" + +msgid "Satellite longitude:" +msgstr "DÅ‚ugość geogr. satelity:" + +# +msgid "Satellites" +msgstr "Satelity" + +# +msgid "Satfinder" +msgstr "Miernik sygnaÅ‚u" + +# +msgid "Sats" +msgstr "Satelity" + +# +msgid "Saturation" +msgstr "Nasycenie" + +# +msgid "Saturday" +msgstr "Sobota" + +# +msgid "Save" +msgstr "Zapisz" + +# +msgid "Save playlist" +msgstr "Zapisz playlistÄ™" + +msgid "Save timeshift file" +msgstr "Zapisz plik timeshift" + +msgid "Save timeshift file in movie directory" +msgstr "Zapisz plik timeshift w katalogu movie" + +# +msgid "Scaler sharpness" +msgstr "Ostrość skalera" + +# +msgid "Scaling mode" +msgstr "Tryb skalowania" + +msgid "Scan" +msgstr "Skanuj" + +# +msgid "Scan " +msgstr "Skanuj" + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, python-format +msgid "Scan %s" +msgstr "Skanuj %s" + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, python-format +msgid "Scan %s band" +msgstr "Skanuj pasmo %s" + +# +msgid "Scan additional SR" +msgstr "Skanuj dodatkowy SR" + +# +msgid "Scan files..." +msgstr "Przeszukaj pliki..." + +# +msgid "Scan wireless networks" +msgstr "Skanuj sieci bezprzewodowe" + +# +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "Skanuj sieć w poszukiwaniu punktów dostÄ™pu i poÅ‚Ä…cz z nimi używajÄ…c wybranego urzÄ…dzenia.\n" + +#, python-format +msgid "Scanning %s..." +msgstr "Skanowanie %s..." + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "Skanowanie - ukoÅ„czono %d%%" +msgstr[1] "Skanowanie - ukoÅ„czono %d%%" +msgstr[2] "Skanowanie - ukoÅ„czono %d%%" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "Skanowanie zakoÅ„czone, znaleziono %d kanaÅ‚" +msgstr[1] "Skanowanie zakoÅ„czone, znaleziono %d kanaÅ‚y" +msgstr[2] "Skanowanie zakoÅ„czone, znaleziono %d kanałów" + +# +msgid "Scanning failed!" +msgstr "Skanowanie nie powiodÅ‚o siÄ™!" + +# +msgid "Scanning..." +msgstr "Skanowanie..." + +# +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "DomyÅ›lne skanuje lamedbs wg satelit z podÅ‚Ä…czonym pozycjonerem" + +# +msgid "Search east" +msgstr "Szukaj na wschód" + +# +msgid "Search west" +msgstr "Szukaj na zachód" + +msgid "Searching" +msgstr "Szukanie" + +msgid "Searching east ..." +msgstr "Przeszukuje wschód (E)..." + +# +msgid "Searching for available updates. Please wait..." +msgstr "Wyszukiwanie dostÄ™pnych aktualizacji. ProszÄ™ czekać..." + +# +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "Wyszukiwanie nowo zainstalowanych lub usuniÄ™tych pakietów. ProszÄ™ czekać..." + +msgid "Searching west ..." +msgstr "Przeszukuje zachód (W)" + +# +msgid "Second cable of motorized LNB" +msgstr "Drugi kabel zmotoryzowanego LNB" + +# +msgid "Secondary DNS" +msgstr "Drugi DNS" + +# +msgid "Seek" +msgstr "Wyszukiwanie" + +# +msgid "Seek backward" +msgstr "Skocz wstecz" + +# +msgid "Seek backward (enter time)" +msgstr "Skocz wstecz (wpisz czas)" + +# +msgid "Seek forward" +msgstr "Skocz w przód" + +# +msgid "Seek forward (enter time)" +msgstr "Skocz w przód (wpisz czas)" + +# +msgid "Select" +msgstr "Wybierz" + +# +msgid "Select CAId" +msgstr "Wybierz CAId" + +# +msgid "Select HDD" +msgstr "Wybierz HDD" + +# +msgid "Select a bouquet" +msgstr "Wybierz bukiet" + +# +msgid "Select a movie" +msgstr "Wybierz film" + +# +msgid "Select a network adapter" +msgstr "Wybierz adapter sieciowy" + +# +msgid "Select a skin" +msgstr "Wybierz skin" + +# +msgid "Select a tuner" +msgstr "Wybierz tuner" + +# +msgid "Select a wireless network" +msgstr "Wybierz sieć bezprzewodowÄ…" + +# +msgid "Select action" +msgstr "Wybierz dziaÅ‚anie" + +# +#, python-format +msgid "Select action for timer %s:" +msgstr "Wybierz dziaÅ‚anie dla timera %s:" + +# +msgid "Select all" +msgstr "Wybierz wszystkie" + +# +msgid "Select an image to be downloaded" +msgstr "Wybierz image do pobrania" + +# +msgid "Select audio track" +msgstr "Wybierz Å›cieżkÄ™ audio" + +# +msgid "Select backup files" +msgstr "Wybierz pliki do backupu" + +# +msgid "Select backup location" +msgstr "Wybierz lokalizacjÄ™ backupu" + +# +msgid "Select channel to record from" +msgstr "Wybierz kanaÅ‚ z którego nagrywać" + +msgid "Select copy destination for:" +msgstr "Wybierz miejsce docelowe kopii dla:" + +msgid "Select default EPG type..." +msgstr "Wybierz domyÅ›lny typ EPG..." + +# +msgid "Select desired image from feed list" +msgstr "Wybierz image z listy" + +# +msgid "Select destination for:" +msgstr "Wybierz miejsce dla:" + +# +msgid "Select files for backup." +msgstr "Wybierz pliki do backupu" + +# +msgid "Select files/folders to backup" +msgstr "Wybierz pliki/foldery do backupu" + +# +msgid "Select input device" +msgstr "Wybierz urzÄ…dzenie wejÅ›cia" + +msgid "Select input device." +msgstr "Wybierz urzÄ…dzenie wejÅ›ciowe." + +# +msgid "Select interface" +msgstr "Wybierz interfejs" + +# +msgid "Select location" +msgstr "Wybierz lokalizacjÄ™" + +# +msgid "Select movie" +msgstr "Wybierz film" + +# +msgid "Select provider to add..." +msgstr "Wybierz nadawcÄ™ do dodania..." + +# +msgid "Select refresh rate" +msgstr "Wybierz czÄ™stotliwość odÅ›wieżania" + +# +msgid "Select satellites" +msgstr "Wybierz satelity" + +# +msgid "Select service to add..." +msgstr "Wybierz kanaÅ‚ do dodania..." + +# +msgid "Select sort method:" +msgstr "Sposób sortowania:" + +# +msgid "Select target folder" +msgstr "Wybierz folder docelowy" + +# +msgid "Select the movie path" +msgstr "Wybierz Å›cieżkÄ™ do filmu" + +# +msgid "Select upgrade source" +msgstr "Wybierz źródÅ‚o aktualizacji" + +# +msgid "Select upgrade source to edit." +msgstr "Wybierz źródÅ‚o aktualizacji do edycji" + +# +msgid "Select video input with up/down buttons" +msgstr "Wybierz wejÅ›cie video przyciskami góra/dół" + +# +msgid "Select video mode" +msgstr "Wybierz tryb wideo" + +# +msgid "Select wireless network" +msgstr "Wybierz sieć bezprzewodowÄ…" + +msgid "Select your provider, and press OK to start the scan" +msgstr "Wybierz nadawcÄ™ i wciÅ›nij OK aby rozpocząć skanowanie" + +# +msgid "Selecting satellites 1 (USALS)" +msgstr "Wybór satelitów 1 (USALS)" + +# +msgid "Selecting satellites 2 (USALS)" +msgstr "Wybór satelitów 2 (USALS)" + +# +msgid "Send DiSEqC only on satellite change" +msgstr "WyÅ›lij DiSEqC tylko podczas zmiany satelity" + +# +msgid "Separate titles with a main menu" +msgstr "Oddziel tytuÅ‚y posiadjÄ…ce menu" + +# +msgid "Sequence repeat" +msgstr "Powtórka sekwencji" + +# +msgid "Serbian" +msgstr "Serbski" + +# +msgid "Service" +msgstr "O serwisie..." + +# +msgid "Service has been added to the favourites." +msgstr "KanaÅ‚ zostaÅ‚ dodany do ulubionych." + +# +msgid "Service has been added to the selected bouquet." +msgstr "KanaÅ‚ zostaÅ‚ dodany do wybranego bukietu." + +# +msgid "Service info" +msgstr "O serwisie..." + +# +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"KanaÅ‚ nieprawidÅ‚owy!\n" +"(Koniec czasu czytania PMT)" + +msgid "Service name" +msgstr "Nazwa kanaÅ‚u" + +# +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"KanaÅ‚ nie znaleziony!\n" +"(SID nie znaleziony w PAT)" + +# +msgid "Service reference" +msgstr "" + +# +msgid "Service scan" +msgstr "Skanowanie kanałów" + +# +msgid "Service searching" +msgstr "Szukanie kanałów" + +msgid "Service title mode" +msgstr "Identyfikacja kanaÅ‚u" + +# +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"KanaÅ‚ niedostÄ™pny!\n" +"Sprawdź konfiguracjÄ™ tunera!" + +# +msgid "Services" +msgstr "KanaÅ‚y" + +# +msgid "Set default" +msgstr "Ustaw domyÅ›lny" + +# +msgid "Set end time" +msgstr "Ustaw czas zakoÅ„czenia" + +msgid "Set fixed" +msgstr "Ustaw staÅ‚y" + +msgid "Set fps for external subtitles" +msgstr "FPS dla zewnÄ™trznych napisów" + +# +msgid "Set interface as default Interface" +msgstr "Ustaw interfejs jako domyÅ›lny" + +msgid "Set limits" +msgstr "Ustaw limity" + +# +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "Ustaw typ paska postÄ™pu wydarzenia w liÅ›cie wyboru kanałów." + +msgid "Set time window to 1 hour" +msgstr "Ustaw przedziaÅ‚ czasowy na 1 godzinÄ™" + +msgid "Set time window to 2 hours" +msgstr "Ustaw przedziaÅ‚ czasowy na 2 godziny" + +msgid "Set time window to 3 hours" +msgstr "Ustaw przedziaÅ‚ czasowy na 3 godziny" + +msgid "Set time window to 4 hours" +msgstr "Ustaw przedziaÅ‚ czasowy na 4 godziny" + +msgid "Set time window to 5 hours" +msgstr "Ustaw przedziaÅ‚ czasowy na 5 godzin" + +msgid "Set time window to 6 hours" +msgstr "Ustaw przedziaÅ‚ czasowy na 6 godzin" + +# +msgid "Set voltage and 22KHz" +msgstr "Ustaw napiÄ™cie i 22KHz" + +# +msgid "Settings" +msgstr "Ustawienia" + +# +msgid "Setup" +msgstr "Ustawienia" + +msgid "Setup menu" +msgstr "Menu ustawieÅ„" + +# +msgid "Setup mode" +msgstr "Tryb konfiguracji" + +msgid "Setup your positioner" +msgstr "Konfiguracja pozycjonera" + +# +msgid "Setup your satellite equipment" +msgstr "Ustawienia wyposażenie SAT" + +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "Czy kreator pamiÄ™ci USB powinien rozpocząć proces instalacji image %s do pamiÄ™ci flash?" + +# +msgid "Sharpness" +msgstr "Ostrość" + +# +msgid "Short filenames" +msgstr "Krótkie nazwy plików" + +# +msgid "Show EIT now/next in infobar" +msgstr "Dane EIT teraz/nastÄ™pny na pasku info" + +# +msgid "Show EPG for current channel..." +msgstr "Pokaż EPG dla aktualnego kanaÅ‚u..." + +# +msgid "Show EPG..." +msgstr "Pokaż EPG..." + +msgid "Show Games show" +msgstr "Rozrywka" + +msgid "Show SNR percentage instead of dB value" +msgstr "SNR w procentach zamiast dB" + +msgid "Show VCR scart on main menu" +msgstr "VCR scart w głównym menu" + +# +msgid "Show WLAN status" +msgstr "Pokaż status WLAN" + +# +msgid "Show animation while busy" +msgstr "WyÅ›wietl 'trybiki' gdy zajÄ™ty" + +# +msgid "Show background in radio mode" +msgstr "Tapeta w trybie radio" + +msgid "Show bouquet selection menu" +msgstr "Pokaż menu listy bukietów" + +msgid "Show busy indicator when the system is busy." +msgstr "WyÅ›wietl 'trybiki' gdy system jest zajÄ™ty." + +# +msgid "Show channel numbers in channel selection" +msgstr "Numery kanaÅ‚ow w liÅ›cie" + +msgid "Show columns" +msgstr "Kolumny w liÅ›cie wyboru kanałów" + +msgid "Show crypto icons" +msgstr "Ikony kodowania kanaÅ‚u" + +# +msgid "Show crypto info in infobar" +msgstr "System kodowania na pasku info" + +msgid "Show detailed event info" +msgstr "Pokaż szczegółowy opis audycji" + +# +msgid "Show event details" +msgstr "Pokaż szczegóły wydarzenia" + +# +msgid "Show event-progress in channel selection" +msgstr "Pasek postÄ™pu wydarzenia w liÅ›cie kanałów" + +# +msgid "Show extended description" +msgstr "Pokaż rozszerzony opis" + +# +msgid "Show extensions..." +msgstr "WyÅ›wietl rozszerzenia..." + +# +msgid "Show icon for new/unseen items" +msgstr "Ikony dla nowych/nieoglÄ…danych filmów" + +msgid "Show in extensions menu" +msgstr "WyÅ›wietl w menu rozszerzeÅ„" + +# +msgid "Show info" +msgstr "Pokaż info" + +# +msgid "Show info line" +msgstr "Pokaż pasek Info" + +# +msgid "Show infobar on channel change" +msgstr "Pokaż pasek info przy zmianie kanaÅ‚u" + +# +msgid "Show infobar on event change" +msgstr "Pokaż pasek info przy zmianie wydarzenia" + +# +msgid "Show infobar on skip forward/backward" +msgstr "Pokaż pasek info przy przewijaniu przód/tyÅ‚" + +msgid "Show latest commits on sourceforge" +msgstr "Pokaż ostatnie commit'y na sourceforge" + +# +msgid "Show message when recording starts" +msgstr "Pokaż info przy rozpoczÄ™ciu nagrywania" + +# +msgid "Show movie lengths in movielist" +msgstr "DÅ‚ugość filmów w liÅ›cie" + +msgid "Show multi channel EPG" +msgstr "WyÅ›wietl EPG dla wielu kanałów" + +msgid "Show picons in channel list" +msgstr "Pikony w liÅ›cie kanałów" + +# +msgid "Show positioner movement" +msgstr "Pokaż ruchy pozycjonera" + +msgid "Show screensaver" +msgstr "Wygaszacz ekranu" + +# +msgid "Show second infobar" +msgstr "WyÅ›wietlanie SecondInfobar" + +msgid "Show service type icons" +msgstr "Ikony typu kanaÅ‚u" + +# +msgid "Show services beginning with" +msgstr "Pokaż kanaÅ‚y rozpoczynajÄ…ce siÄ™ na" + +# +msgid "Show shutdown menu" +msgstr "Pokaż menu wyÅ‚Ä…czania" + +msgid "Show single service EPG" +msgstr "WyÅ›wietl EPG pojedynczego kanaÅ‚u" + +# +msgid "Show status icons in Movielist" +msgstr "Ikony stanu w liÅ›cie filmów" + +# +msgid "Show status icons in movie list" +msgstr "Ikony stanu w liÅ›cie filmów" + +# +msgid "Show status icons in movielist" +msgstr "Ikony stanu w liÅ›cie filmów" + +# +msgid "Show tag menu" +msgstr "Pokaż menu tagów" + +# +msgid "Show the radio player..." +msgstr "Przejdź w tryb radio..." + +# +msgid "Show the tv player..." +msgstr "Przejdź w tryb TV..." + +msgid "Show warning when timeshift is stopped" +msgstr "Ostrzeżenie przy zatrzymywaniu timeshiftu" + +# +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Pokazuje status poÅ‚Ä…czenia bezprzewodowego LAN.\n" + +# +msgid "Shuffle playlist" +msgstr "Odtwórz w losowej kolejnoÅ›ci" + +# +msgid "Shutdown" +msgstr "WyÅ‚Ä…cz" + +msgid "Shutdown when in Standby" +msgstr "WyÅ‚Ä…czaj, gdy w trybie czuwania" + +msgid "Side by side" +msgstr "" + +msgid "Signal OK, proceeding" +msgstr "SygnaÅ‚ OK, wykonujÄ™" + +msgid "Signal quality" +msgstr "Jakość sygnaÅ‚u" + +# +msgid "Signal strength:" +msgstr "SiÅ‚a sygnaÅ‚u:" + +# +msgid "Signal: " +msgstr "SygnaÅ‚:" + +# +msgid "Similar" +msgstr "Podobne" + +# +msgid "Similar broadcasts:" +msgstr "Podobne audycje:" + +# +msgid "Simple" +msgstr "Prosty" + +# +msgid "Simple titleset (compatibility for legacy players)" +msgstr "Proste tytuÅ‚y (kompatybilne z odtwarzaczami)" + +# +msgid "Single" +msgstr "Pojedynczy" + +# +msgid "Single EPG" +msgstr "ZwykÅ‚e EPG" + +# +msgid "Single satellite" +msgstr "Jeden satelita" + +# +msgid "Single step (GOP)" +msgstr "Pojedynczy krok (GOP)" + +# +msgid "Single transponder" +msgstr "Jeden transponder" + +msgid "Site latitude" +msgstr "Szerokość gegraficzna" + +msgid "Site longitude" +msgstr "DÅ‚ugość geograficzna" + +# +msgid "Skin" +msgstr "Skiny" + +# +msgid "Skins" +msgstr "Skiny" + +msgid "Skip empty services" +msgstr "Pomijaj puste serwisy" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "PomiÅ„ sprawdzenie poÅ‚Ä…czenia internetowego (wyÅ‚Ä…cza automatycznÄ… instalacjÄ™ pakietów)" + +# +msgid "Sleep timer" +msgstr "WyÅ‚Ä…cznik czasowy" + +msgid "SleepTimer Configuration" +msgstr "Ustawienia sleeptimer'a" + +msgid "Sleeptimer" +msgstr "WyÅ‚Ä…cznik czasowy" + +# +msgid "Slide picture in loop" +msgstr "ZapÄ™tlony pokaz slajdów" + +# +msgid "Slide show interval (sec.)" +msgstr "OdstÄ™py w pokazie slajdów (w sek.)" + +# +#, python-format +msgid "Slot %d" +msgstr "" + +msgid "Slovak" +msgstr "SÅ‚owacki" + +# +msgid "Slovenian" +msgstr "SÅ‚oweÅ„ski" + +# +msgid "Slow" +msgstr "Wolno" + +# +msgid "Slow motion speeds" +msgstr "PrÄ™dkoÅ›ci odtwarzanie w zwolnionym tempie" + +# +msgid "Small progress" +msgstr "PostÄ™p (maÅ‚y)" + +msgid "Social/Political/Economics" +msgstr "Polityka/Ekonomia/SpoÅ‚eczny" + +# +msgid "SoftCam / CI" +msgstr "Softcam / CI" + +# +msgid "Softcam type" +msgstr "Typ softcamu" + +# +msgid "Software" +msgstr "Oprogramowanie" + +# +msgid "Software management" +msgstr "ZarzÄ…dzanie oprogramowaniem" + +# +msgid "Software manager setup" +msgstr "Ustawienia 'Software manager'" + +# +msgid "Software restore" +msgstr "Przywracanie oprogramowania" + +# +msgid "Software update" +msgstr "Aktualizacja oprogramowania" + +# +msgid "Softwaremanager information" +msgstr "Informacje Softwaremanagera" + +# +msgid "Some plugins are not available:\n" +msgstr "Niektóre pluginy sÄ… niedostÄ™pne:\n" + +# +#, python-format +msgid "Sorry, %s has not been installed!" +msgstr "Niestety, %s nie zostaÅ‚ zainstalowany!" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "Niestety usuwanie katalogów możliwe (na razie) tylko przez 'kosz'. " + +# +msgid "Sorry, no backups found!" +msgstr "Nie znaleziono kopii zapasowych!" + +# +msgid "Sorry, no details available!" +msgstr "Szczegółowy opis niedostÄ™pny!" + +# +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"Wybrane miejsce na backup jest niezapisywalne.\n" +"Wybierz innÄ… loklizacjÄ™." + +# +msgid "Sort" +msgstr "Sortowanie" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Sortuj A-Z" + +# +msgid "Sort by" +msgstr "Sortuj wg" + +# +msgid "Sort list:" +msgstr "Sortuj listÄ™:" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort time" +msgstr "Sortuj wg czasu" + +# +msgid "Sound" +msgstr "DźwiÄ™k" + +# +msgid "Sound carrier" +msgstr "Transporter dźwiÄ™ku" + +# +msgid "Source request" +msgstr "Żądanie źródÅ‚a" + +# +msgid "South" +msgstr "PoÅ‚udnie" + +# +msgid "Spanish" +msgstr "HiszpaÅ„ski" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "Ustaw koniec czasu ignorowania 'timera wyÅ‚Ä…czania' gdy odbiornik jest w trybie czuwania." + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "OkreÅ›l koniec przedziaÅ‚u czasowego, w którym sleeptimer bezczynnoÅ›ci ma być ignorowany." + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "Ustaw poczÄ…tek czasu ignorowania 'timera wyÅ‚Ä…czania' gdy odbiornik jest w trybie czuwania." + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "OkreÅ›l poczÄ…tek przedziaÅ‚u czasowego, w którym sleeptimer bezczynnoÅ›ci ma być ignorowany" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "PrzedziaÅ‚ czasowy, gdy sleeptimer bezczynnoÅ›ci ma być ignorowany" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "PrzedziaÅ‚ czasowy, gdy 'timer wyÅ‚Ä…czania' ma być ignorowany." + +# +msgid "Split preview mode" +msgstr "Podzielony tryb podglÄ…du" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "Sport" + +# +msgid "Standard" +msgstr "Standardowe" + +# +msgid "Standart list" +msgstr "Lista standardowa" + +# +msgid "Standby" +msgstr "Czuwanie" + +# +msgid "Standby / restart" +msgstr "Czuwanie / Restart" + +msgid "Standby after current event" +msgstr "Przejdź w tryb czuwania po bieżącym wydarzeniu" + +# +#, python-format +msgid "Standby fan %d PWM" +msgstr "Wiatrak w standby %d PWM" + +# +#, python-format +msgid "Standby fan %d voltage" +msgstr "Wiatrak w standby %d napiÄ™cie" + +msgid "Standby in " +msgstr "Tryb czuwania za" + +# +msgid "StandbyLED" +msgstr "Dioda w trybie czuwania" + +# +msgid "Start from the beginning" +msgstr "Rozpocznij od poczÄ…tku" + +msgid "Start offline decode" +msgstr "Rozpocznij dekodowanie offline" + +# +msgid "Start recording?" +msgstr "Rozpocząć nagrywanie?" + +# +msgid "Start test" +msgstr "Testuj" + +# +msgid "Start time" +msgstr "Czas rozpoczÄ™cia" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "PoczÄ…tek ignorowania sleeptimera bezczynnoÅ›ci" + +msgid "Start time to ignore shutdown in standby" +msgstr "PoczÄ…tek ignorowania 'timera wyÅ‚Ä…czania' w standby" + +# +msgid "Start timeshift" +msgstr "Rozpocznij timeshift" + +msgid "Start with list screen" +msgstr "Rozpocznij ekranem z listÄ…" + +# +msgid "Starting on" +msgstr "Rozpocznij od" + +msgid "Startup the set top box in standby" +msgstr "Po uruchomieniu odbiornika przejdź w tryb czuwania" + +# +msgid "Startup to Standby" +msgstr "" + +# +msgid "Step east" +msgstr "Krok na wschód" + +# +msgid "Step west" +msgstr "Krok na zachód" + +msgid "Stepped east" +msgstr "Krok na wschód (E)" + +msgid "Stepped west" +msgstr "Krok na zachód (W)" + +# +msgid "Stop" +msgstr "Zatrzymaj" + +# +msgid "Stop PiP" +msgstr "Zatrzymaj PiP" + +# +msgid "Stop current event and disable coming events" +msgstr "Zatrzymaj aktualne wydarzenie i wyÅ‚Ä…cz nadchodzÄ…ce wydarzenia" + +# +msgid "Stop current event but not coming events" +msgstr "Zatrzymaj aktualne wydarzenie, ale nie nadchodzÄ…ce" + +# +msgid "Stop entry" +msgstr "Zatrzymaj" + +# +msgid "Stop playing this movie?" +msgstr "Zatrzymać odtwarzanie tego filmu?" + +msgid "Stop recording" +msgstr "Zatrzymaj nagrywanie" + +msgid "Stop recording and delete" +msgstr "Zatrzymaj nagrywanie i usuÅ„" + +# +msgid "Stop service on return to movie list" +msgstr "Zatrzymaj podglÄ…d kanaÅ‚u przy powrocie do listy filmów" + +# +msgid "Stop test" +msgstr "ZakoÅ„cz test" + +# +msgid "Stop testing plane after # failed transponders" +msgstr "Zatrzymaj testowanie poziomu po # nieudanych transponderach" + +# +msgid "Stop testing plane after # successful transponders" +msgstr "Zatrzymaj testowanie poziomu po # udanych transponderach" + +msgid "Stop timer recording" +msgstr "Zatrzymaj nagrywanie z timera" + +# +msgid "Stop timeshift" +msgstr "Zatrzymaj timeshift" + +# +msgid "Stop timeshift?" +msgstr "Zatrzymać timeshift?" + +msgid "Stopped" +msgstr "Zatrzymany" + +msgid "Store at index" +msgstr "Zapisz z indeksem" + +# +msgid "Store position" +msgstr "ZapamiÄ™taj pozycjÄ™" + +# +msgid "Stored position" +msgstr "Pozycja zapamiÄ™tana" + +# +msgid "Stream" +msgstr "StrumieÅ„" + +# +msgid "Stream request" +msgstr "Żądanie strumienia" + +msgid "Strongest position" +msgstr "Najmocniejsza pozycja" + +# +msgid "Subservice list..." +msgstr "Lista subserwisów..." + +# +msgid "Subservices" +msgstr "Subserwisy" + +msgid "Subtitle Quickmenu" +msgstr "'Szybkie' menu napisów" + +# +msgid "Subtitle alignment" +msgstr "Wyrównanie napisów" + +# +msgid "Subtitle border width" +msgstr "Szerokość obramowania napisów" + +msgid "Subtitle delay when timing is bad" +msgstr "Opóźnienie napisów gdy zÅ‚y timing" + +# +msgid "Subtitle delay when timing lacks" +msgstr "Opóźnienie napisów gdy nie niezsynchronizowane" + +# +msgid "Subtitle font size" +msgstr "Rozmiar czcionki napisów" + +# +msgid "Subtitle language selection 1" +msgstr "Preferowany jÄ™zyk napisów 1" + +# +msgid "Subtitle language selection 2" +msgstr "Preferowany jÄ™zyk napisów 2" + +# +msgid "Subtitle language selection 3" +msgstr "Preferowany jÄ™zyk napisów 3" + +# +msgid "Subtitle language selection 4" +msgstr "Preferowany jÄ™zyk napisów 4" + +# +msgid "Subtitle position" +msgstr "Pozycja napisów" + +# +msgid "Subtitle selection" +msgstr "Wybór napisów" + +# +msgid "Subtitle selection..." +msgstr "Wybór napisów..." + +# +msgid "Subtitle settings" +msgstr "Napisy" + +# +msgid "Subtitles" +msgstr "Napisy" + +# +msgid "Sun" +msgstr "Nie" + +# +msgid "Sunday" +msgstr "Niedziela" + +# +msgid "Swap PiP and main picture" +msgstr "ZamieÅ„ PiP z ekranem głównym" + +# +msgid "Swap services" +msgstr "ZamieÅ„ kanaÅ‚y" + +# +msgid "Swedish" +msgstr "Szwedzki" + +# +msgid "Switch TV to correct input" +msgstr "PrzeÅ‚Ä…czaj TV na odpowiednie wejÅ›cie" + +msgid "Switch between filelist/playlist" +msgstr "PrzeÅ‚Ä…cz pomiÄ™dzy listÄ… plików / listÄ… odtwarzania" + +msgid "Switch between normal mode and list mode" +msgstr "PrzeÅ‚Ä…cz z trybu standard na tryb listy" + +# +msgid "Switch to HDMI in mode" +msgstr "PrzeÅ‚Ä…cz na HDMI w trybie" + +# +msgid "Switch to filelist" +msgstr "Przjdź do listy plików" + +# +msgid "Switch to next channel" +msgstr "PrzeÅ‚Ä…cz na nastÄ™pny kanaÅ‚" + +# +msgid "Switch to next channel in history" +msgstr "NastÄ™pny kanaÅ‚ w historii" + +# +msgid "Switch to next sub service" +msgstr "PrzeÅ‚Ä…cz na nastÄ™pny subserwis" + +# +msgid "Switch to playlist" +msgstr "Przejdź do playlisty" + +# +msgid "Switch to previous channel" +msgstr "PrzeÅ‚Ä…cz na poprzedni kanaÅ‚" + +# +msgid "Switch to previous channel in history" +msgstr "Poprzedni kanaÅ‚ w historii" + +# +msgid "Switch to previous sub service" +msgstr "PrzeÅ‚Ä…cz na poprzedni subserwis" + +# +msgid "Switchable tuner types:" +msgstr "Wymienne typy tunerów:" + +msgid "Symbol rate" +msgstr "Wartość SR" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "BÅ‚Ä…d synchronizacji, powrót do punktu wyjÅ›cia!" + +# +msgid "System" +msgstr "" + +# +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "" +"specjalnie dla OpenPLi - @blzr\n" +"http://openpli.org/forums\n" +"ostatnia aktualizacja 2014.06.22" + +# +msgid "TS file is too large for ISO9660 level 1!" +msgstr "Plik TS jest za duży dla ISO9660 level 1!" + +msgid "TSID" +msgstr "" + +msgid "TV physical address report" +msgstr "Raportuj fizyczny adres TV" + +msgid "TXT PID" +msgstr "" + +# +msgid "Table of contents for collection" +msgstr "Lista zawartoÅ›ci dla kolekcji" + +# +msgid "Tags" +msgstr "Tagi" + +# +msgid "Teletext subtitle color" +msgstr "Kolor napisów teletekst" + +# +msgid "Temperature and fan control" +msgstr "Sterowanie temperaturÄ… i wentylatorem" + +# +msgid "Terrestrial" +msgstr "Naziemna" + +# +msgid "Terrestrial provider" +msgstr "Nadawca DVB-T" + +# +msgid "Test DiSEqC settings" +msgstr "Test ustawieÅ„ DiSEqC" + +# +msgid "Test mode" +msgstr "Tryb testowy" + +msgid "Test the network configuration of your receiver.\n" +msgstr "Testuj konfiguracjiÄ™ sieci.\n" + +# +msgid "Test type" +msgstr "Typ testu" + +# +msgid "Text color" +msgstr "Kolor tekstu" + +msgid "Thai" +msgstr "Tajski" + +# +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"DziekujÄ™ za skorzystanie z kreatora.\n" +"WciÅ›nij OK aby kontynuować" + +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"DziÄ™kujÄ™ za skorzystanie z wizarda. Odbiornik jest już gotowy do użycia.\n" +"WciÅ›nij OK aby kontynuować." + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "Standard DVD nie wspiera strumienia video H.264 (HDTV). Czy zamiast tego nagrać dane w formacie data DVD? Dane nie bÄ™dÄ… czytane w stacjonarnych odtwarzaczach DVD." + +# +msgid "The PIN code has been changed successfully." +msgstr "Kod PIN zostaÅ‚ zmieniony pomyÅ›lnie." + +# +msgid "The PIN codes you entered are different." +msgstr "Kody PIN które wpisaÅ‚eÅ› różniÄ… siÄ™." + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" + +# +msgid "The backup failed. Please choose a different backup location." +msgstr "Tworzenie backupu nie powiodÅ‚o siÄ™. Wybierz inna lokalizacje dla kopii." + +# +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" +"Aktualne beta image może być niestabilne.\n" +"Aby uzyskać wiÄ™cej informacji zobacz %s." + +# +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"Katalog %s jest niezapisywalny.\n" +"Upewnij siÄ™, że zamiast niego wybraÅ‚eÅ› zapisywalny katalog." + +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" + +# +msgid "The following files were found..." +msgstr "NastÄ™pujÄ…ce pliki zostaÅ‚y znalezione..." + +# +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "Suma kontrolna md5sum nieprawidÅ‚owa, plik może być uszkodzony!" + +# +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"Wizard sieci nie jest zainstalowany!\n" +"Zainstaluj go najpierw." + +# +#, python-format +msgid "The path %s already exists." +msgstr "Åšcieżka %s już istnieje." + +# +msgid "The pin code you entered is wrong." +msgstr "Wpisany kod PIN jest niepoprawny." + +# +#, python-format +msgid "The results have been written to %s." +msgstr "Wyniki zostaÅ‚y zapisane w %s." + +# +msgid "The sleep timer has been activated." +msgstr "WyÅ‚Ä…cznik czasowy zostaÅ‚ aktywowany." + +# +msgid "The sleep timer has been disabled." +msgstr "WyÅ‚Ä…cznik czasowy zostaÅ‚ wyÅ‚Ä…czony." + +# +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"Rozszerzenie 'ZarzÄ…dzanie oprogramowaniem' nie jest zainstalowane!\n" +"Zainstaluj je najpierw." + +# +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "Status aktualnego beta image nie może zostać zweryfikowany ze wzglÄ™du na brak dostÄ™pu do %s." + +# +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "Plik Timera (timers.xml) jest uszkodzony i nie może być zaÅ‚adowany." + +msgid "The user interface of your receiver is restarting" +msgstr "Trwa restart GUI odbiornika" + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" +"Trwa restart GUI odbiornika\n" +"z powodu bÅ‚Ä™du w mytest.py" + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"Plugin sieci bezprzewodowej nie jest zainstalowany! \n" +"Zainstaluj go i wybierz co dalej." + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"Plugin sieci bezprzewodowej nie jest zainstalowany!\n" +"Zainstaluj go." + +# +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "Kreator może utworzyć backup aktualnych ustawieÅ„. Chcesz zrobić kopiÄ™ teraz?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "Kreator znalazÅ‚ backup plików konfiguracyjnych, Przywrócić stare ustawienia z %s?" + +# +msgid "The wizard is finished now." +msgstr "DziaÅ‚anie kreatora zakoÅ„czone." + +# +msgid "There are at least " +msgstr "Jest co namniej" + +# +#, python-format +msgid "There are at least %s updates available." +msgstr "DostÄ™pnych co najmniej %s aktualizacji." + +# +msgid "There are currently no outstanding actions." +msgstr "Obecnie nie ma zalegÅ‚ych dziaÅ‚aÅ„." + +# +msgid "There are no updates available." +msgstr "Brak dostÄ™pnych aktualizacji" + +msgid "There is no signal to lock on !" +msgstr "Brak sygnaÅ‚u do zÅ‚apania!" + +# +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"Nie ma wystarczajÄ…cej iloÅ›ci miejsca na wybranej partycji.\n" +"Czy kontynuować?" + +# +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "Nosnik DVD RW jest już sformatowany - jego ponowny format spowoduje utratÄ™ wszystkich danych." + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" + +# +msgid "This plugin is installed." +msgstr "Plugin zainstalowany" + +# +msgid "This plugin is not installed." +msgstr "Plugin nie zainstalowany" + +# +msgid "This plugin will be installed." +msgstr "Plugin zostanie zainstalowany" + +# +msgid "This plugin will be removed." +msgstr "Plugin zostanie usuniÄ™ty" + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "Ten odbiornik nie może zdekodować %s strumieni!" + +# +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"Ten test sprawdzi poprawność konfiguracji nameservera.\n" +"JeÅ›li zobaczysz informacjÄ™:\"niepotwierdzony\"\n" +"- sprawdź ustawienia DHCP, przewody i ustawienia adaptera sieciowego\n" +"- jeÅ›li dokonaÅ‚eÅ› rÄ™cznej konfiguracji serwera nazw sprawdź ponownie wpisy w konfiguracji \"Nameserver\"" + +# +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Ten test sprawdzi czy podÅ‚Ä…czono kabel sieciowy.\n" +"JeÅ›li zobaczysz \"rozÅ‚Ä…czony\":\n" +"- sprawdź czy kabel sieciowy jest podÅ‚Ä…czony\n" +"- sprawdź czy kabel sieciowy nie jest uszkodzony" + +# +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Ten test sprawdzi poprawność adresu IP przypisanego do adaptera LAN.\n" +"JeÅ›li otrzymasz wiadomość \"niepotwierdzony\":\n" +"- nie znaleziono poprawnego adresu IP\n" +"- sprawdź DHCP, kabel i adapter sieciowy" + +# +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"Ten test sprawdzi czy adapter LAN jest ustawiony w tryb DHCP.\n" +"JeÅ›li otrzymasz komunikat \"wyÅ‚Ä…czony\":\n" +"- adapter LAN jest ustawiony na 'rÄ™czne' IP\n" +"- sprawdź czy wpisano poprawne IP w oknie ustawieÅ„ adaptera sieciowego\n" +"Jesli otrzymasz wiadomość \"wÅ‚Ä…czony\":\n" +"- sprawdź czy w sieci znajduje siÄ™ skonfigurowany i wÅ‚Ä…czony serwer DHCP." + +# +msgid "This test detects your configured LAN adapter." +msgstr "Test wykrywa skonfigurowany adapter sieci LAN." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" +"Wszystkie pozycje dla twojej obrotnicy zostanÄ… przekalkulowane, to może usunąć wczeÅ›niej zapisane pozycje i dostrojenie!\n" +"Chcesz kontynuować?" + +# +msgid "Three" +msgstr "Trzy" + +# +msgid "Threshold" +msgstr "Próg" + +# +msgid "Thu" +msgstr "Czw" + +# +msgid "Thumbnails" +msgstr "Miniatury" + +# +msgid "Thursday" +msgstr "Czwartek" + +# +msgid "Time" +msgstr "Czas" + +msgid "Time scale" +msgstr "PrzedziaÅ‚ czasowy" + +# +msgid "Timer" +msgstr "Timery" + +msgid "Timer Overview" +msgstr "Lista timerów" + +# +msgid "Timer edit" +msgstr "Edycja timera" + +# +msgid "Timer editor" +msgstr "Edytor timera" + +# +msgid "Timer entry" +msgstr "Szczegóły timera" + +# +msgid "Timer log" +msgstr "Log timera" + +# +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"W pliku timer.xml wykryto 'nakÅ‚adanie siÄ™' timerów!\n" +"Sprawdź to!" + +msgid "Timer overview" +msgstr "Opis timera" + +# +msgid "Timer recording location" +msgstr "Lokalizacja nagraÅ„ z timera" + +# +msgid "Timer sanity error" +msgstr "BÅ‚Ä…d timera" + +# +msgid "Timer selection" +msgstr "Wybór timera" + +msgid "Timer selection..." +msgstr "Wybór timera..." + +# +msgid "Timer type" +msgstr "Typ timera" + +# +msgid "Timeshift" +msgstr "" + +msgid "Timeshift Live" +msgstr "" + +# +msgid "Timeshift location" +msgstr "Lokalizacja timeshift" + +# +msgid "Timeshift not possible!" +msgstr "Timeshift niemożliwy!" + +# +msgid "Timezone" +msgstr "Strefa czasowa" + +# +msgid "Title" +msgstr "TytuÅ‚" + +# +msgid "Title properties" +msgstr "WÅ‚aÅ›ciwoÅ›ci tytuÅ‚u" + +# +msgid "Titleset mode" +msgstr "Tryb tytułów" + +# +msgid "To audio selection" +msgstr "Przejdź do wyboru Å›cieżki audio" + +# +msgid "To subtitle selection" +msgstr "Przejdź do wyboru napisów" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" + +# +msgid "Today" +msgstr "Dzisiaj" + +# +msgid "Toggle a cut mark at the current position" +msgstr "Wstaw znacznik ciÄ™cia w aktualnej pozycji" + +# +msgid "Tone amplitude" +msgstr "" + +# +msgid "Tone mode" +msgstr "" + +# +msgid "Toneburst" +msgstr "" + +# +msgid "Toneburst A/B" +msgstr "" + +msgid "Top and bottom" +msgstr "" + +# +msgid "Track" +msgstr "Åšcieżka" + +# +msgid "Translation" +msgstr "TÅ‚umaczenie" + +# +msgid "Translation:" +msgstr "TÅ‚umaczenie:" + +msgid "Translations" +msgstr "TÅ‚umaczenie" + +# +msgid "Transmission mode" +msgstr "Tryb transmisji" + +# +msgid "Transponder" +msgstr "" + +# +msgid "Transponder type" +msgstr "Typ transpondera" + +msgid "Trash can" +msgstr "Kosz" + +# +msgid "Tries left:" +msgstr "PozostaÅ‚o prób:" + +# +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Próbuje odnaleźć transpondery używane w sieci kablowej... ProszÄ™ czekać..." + +# +msgid "Trying to download a new packetlist. Please wait..." +msgstr "Próbuje pobrać nowÄ… listÄ™ pakietów. ProszÄ™ czekać..." + +# +msgid "Tue" +msgstr "Wto" + +# +msgid "Tuesday" +msgstr "Wtorek" + +# +msgid "Tune" +msgstr "Ustawienia" + +# +msgid "Tune and focus" +msgstr "" + +# +msgid "Tune failed!" +msgstr "Dostrojenie nie powiodÅ‚o siÄ™!" + +# +msgid "Tuner" +msgstr "" + +# +msgid "Tuner configuration" +msgstr "Konfiguracja tunera" + +msgid "Tuner is not supported" +msgstr "Tuner nieobsÅ‚ugiwany" + +# +msgid "Tuner slot" +msgstr "Slot tunera" + +# +msgid "Tuner status" +msgstr "Status tunera" + +# +#, python-format +msgid "Tuner status %s" +msgstr "Status tunera %s" + +# +msgid "Tuner type" +msgstr "Typ tunera" + +# +msgid "Turkish" +msgstr "Turecki" + +msgid "Turn on the power LED during standby." +msgstr "WÅ‚Ä…czaj diodÄ™ zasilania w trybie czuwania" + +msgid "Turning step size" +msgstr "Rozmiar kroku obrotu" + +# +msgid "Two" +msgstr "Dwa" + +# +msgid "Type" +msgstr "Typ" + +# +msgid "Type of scan" +msgstr "Typ skanowania" + +# +msgid "USALS" +msgstr "" + +msgid "USALS calibration" +msgstr "Kalibracja USALS" + +# +msgid "USB stick" +msgstr "Pen USB" + +# +msgid "USB stick wizard" +msgstr "Kreator pena USB" + +# +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Trwa aktualizacja\n" +"Czekaj aż nastÄ…pi restart odbiornika\n" +"To może potrwać kilka minut" + +# +msgid "Undo install" +msgstr "Anuluj instalacjÄ™" + +# +msgid "Undo uninstall" +msgstr "Anuluj odinstalowanie" + +msgid "Unencrypted" +msgstr "Nieszyfrowane" + +# +msgid "UnhandledKey" +msgstr "Klawisz nieobsÅ‚ugiwany" + +# +msgid "Unicable" +msgstr "" + +# +msgid "Unicable LNB" +msgstr "" + +# +msgid "Unicable Martix" +msgstr "" + +# +msgid "Uninstall" +msgstr "Odinstaluj" + +# +msgid "Universal LNB" +msgstr "Uniwersalny LNB" + +msgid "Unknown" +msgstr "Nieznany" + +# +msgid "Unmount" +msgstr "Odmontuj" + +# +msgid "Unsupported" +msgstr "NieobsÅ‚ugiwany" + +# +msgid "Update" +msgstr "Aktualizacja" + +# +msgid "Update and ask to reboot" +msgstr "Zaktualizuj i zapytaj o restart" + +msgid "Update and reboot (recommended)" +msgstr "Zaktualizuj i zrestartuj (rekomendowane)" + +# +msgid "Update channel list only" +msgstr "Zaktualizuj tylko listÄ™ kanałów" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "Aktualizacja zakoÅ„czona, zainstalowano %d pakiet." +msgstr[1] "Aktualizacja zakoÅ„czona, zainstalowano %d pakiety." +msgstr[2] "Aktualizacja zakoÅ„czona, zainstalowano %d pakietów." + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "Aktualizacja zakoÅ„czona. Czy chcesz zrestartować odbiornik?" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "Aktualizacja nie powiodÅ‚a siÄ™. Brak dziaÅ‚ajÄ…cego poÅ‚Ä…czenia internetowego." + +msgid "Update has completed." +msgstr "Aktualizacja zakoÅ„czona." + +# +msgid "Updatefeed not available." +msgstr "Aktualizacje nie dostÄ™pne." + +# +msgid "Updating software catalog" +msgstr "Aktualizowanie katalogu oprogramowania" + +# +msgid "Upgrading" +msgstr "Aktualizowanie" + +# +msgid "Use" +msgstr "Użyj" + +# +msgid "Use DHCP" +msgstr "Użyj DHCP" + +msgid "Use EIT EPG information when it is available." +msgstr "Użyj informacji EIT EPG gdy dostÄ™pne." + +msgid "Use FreeSat EPG information when it is available." +msgstr "Użyj informacji EPG FreeSat gdy dostÄ™pne." + +msgid "Use MHW EPG information when it is available." +msgstr "Użyj informacji EPG MHW gdy dostÄ™pne." + +msgid "Use Netmed EPG information when it is available." +msgstr "Użyj informacji EPG Netmed gdy dostÄ™pne." + +# +msgid "Use TV remote control" +msgstr "Użyj pilota od TV" + +# +msgid "Use USALS for this sat" +msgstr "Użyj USALS dla tego satelity" + +msgid "Use ViaSat EPG information when it is available." +msgstr "Użyj informacji EPG Viasat gdy dostÄ™pne." + +msgid "Use Virgin EPG information when it is available." +msgstr "Użyj informacji EPG Virgin gdy dostÄ™pne." + +# +msgid "Use a gateway" +msgstr "Użyj bramy" + +msgid "Use fastscan channel names" +msgstr "Użyj nazw kanałów z Fastscan" + +msgid "Use fastscan channel numbering" +msgstr "Użyj numeracji kanałów z Fastscan" + +msgid "Use frequency or channel" +msgstr "Użyj czÄ™stotliwoÅ›ci lub kanaÅ‚u" + +msgid "Use individual settings for each directory" +msgstr "Użyj osobnych ustawieÅ„ dla każdego folderu" + +# +msgid "Use interface" +msgstr "Użyj intrefejsu" + +# +msgid "Use official channel numbering" +msgstr "Użyj oficjalnej numeracji kanałów" + +# +msgid "Use original DVB subtitle position" +msgstr "Użyj oryginalnej pozycji napisów DVB" + +# +msgid "Use original teletext position" +msgstr "Użyj oryginalnej pozycji jak w teletekst" + +# +msgid "Use power measurement" +msgstr "Użyj pomiaru mocy" + +# +msgid "Use the network wizard to configure selected network adapter" +msgstr "Użyj wizarda sieci do konfiguracji wybranego adaptera" + +# +msgid "Use the network wizard to configure your network\n" +msgstr "Użyj wizarda, aby skonfigurować sieć\n" + +# +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "Użyj przycisków góra/dół aby wybrać opcje. NastÄ™pnie wciÅ›nij OK." + +# +msgid "Use the wizard to set up basic features" +msgstr "Użyj wizarda aby ustawić podstawowe funkcje" + +# +msgid "Use these input device settings?" +msgstr "Użyć tych ustawieÅ„ dla urzÄ…dzenia?" + +msgid "Use these settings?" +msgstr "Użyć tych ustawieÅ„?" + +# +msgid "Use this video enhancement settings?" +msgstr "Użyć tych ustawieÅ„ korekcji obrazu?" + +# +msgid "Use trash can in movielist" +msgstr "Użyj 'Kosza' w liÅ›cie filmów" + +# +msgid "Used service scan type" +msgstr "Używany typ skanowania kanałów" + +msgid "User - bouquets" +msgstr "Bukiety" + +# +msgid "User defined" +msgstr "Zdefiniowany przez użytkownika" + +msgid "User defined transponder" +msgstr "Transponder zdefiniowany przez użytkownika" + +msgid "User interface" +msgstr "Interfejs użytkownika" + +# +msgid "Username" +msgstr "Nazwa użytkownika" + +#, python-format +msgid "Using LNB %d" +msgstr "Używany LNB %d" + +# +msgid "Using fixed address" +msgstr "Użyty staÅ‚y adres" + +#, python-format +msgid "Using tuner %s" +msgstr "Używany tuner %s" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "Normalnie gdy jÄ™zyk napisów jest taki sam jak Å›cieżka audio napisy nie sÄ… wyÅ›wietlane. WÅ‚Ä…czenie tej opcji pozwala wyÅ›wietlić napisy w takiej sytuacji." + +# +msgid "VCR scart" +msgstr "" + +msgid "VMGM (intro trailer)" +msgstr "" + +# +msgid "Vertical" +msgstr "Pionowa (V)" + +msgid "Vertical turning speed" +msgstr "PrÄ™dkość obrotu w pionie" + +msgid "Video PID" +msgstr "Video PID" + +# +msgid "Video enhancement preview" +msgstr "PodglÄ…d korekcji obrazu" + +# +msgid "Video enhancement settings" +msgstr "Korekcja obrazu" + +# +msgid "Video enhancement setup" +msgstr "Ustawienia korekcji obrazu" + +# +msgid "Video fine tuning" +msgstr "Ustawienia obrazu" + +# +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Wybór wejÅ›cia video\n" +"\n" +"WciÅ›nij OK, jeÅ›li widzisz tÄ… stronÄ™ na ekranie TV (lub wybierz inne wejÅ›cie).\n" +"\n" +"Kolejne wejÅ›cie bÄ™dzie wypróbowane za 20 sekund." + +# +msgid "Video mode selection." +msgstr "Wybór trybu wideo" + +# +msgid "Video output" +msgstr "WyjÅ›cie video" + +# +msgid "Video setup" +msgstr "Ustawienia video" + +# +msgid "Video wizard" +msgstr "" + +#, python-format +msgid "Video: %s fps" +msgstr "" + +msgid "VideoMode" +msgstr "" + +# +msgid "Videocodec" +msgstr "" + +msgid "Videoformat" +msgstr "" + +msgid "Videosize" +msgstr "" + +msgid "View Rass interactive..." +msgstr "" + +# +msgid "View details" +msgstr "Pokaż szczegóły" + +# +msgid "View list of available " +msgstr "Zobacz listÄ™ dostÄ™pnych" + +# +msgid "View list of available CommonInterface extensions" +msgstr "Zobacz listÄ™ dostÄ™pnych rozszerzeÅ„ dla ModuÅ‚u CI" + +# +msgid "View list of available EPG extensions." +msgstr "Zobacz listÄ™ dostÄ™pnych rozszerzeÅ„ dla EPG" + +# +msgid "View list of available Satellite equipment extensions." +msgstr "Zobacz listÄ™ dostÄ™pnych rozszerzeÅ„ dla wyposażenia sat." + +# +msgid "View list of available communication extensions." +msgstr "Zobacz listÄ™ dostÄ™pnych rozszerzeÅ„ dla komunikacji" + +# +msgid "View list of available default settings" +msgstr "Zobacz listÄ™ dostÄ™pnych ustawieÅ„ domyÅ›lnych" + +# +msgid "View list of available display and userinterface extensions." +msgstr "Zobacz listÄ™ dostÄ™pnych rozszerzeÅ„ dla wyÅ›wietlacza i GUI" + +# +msgid "View list of available multimedia extensions." +msgstr "Zobacz listÄ™ dostÄ™pnych rozszerzeÅ„ dla multimediów" + +# +msgid "View list of available networking extensions" +msgstr "Zobacz listÄ™ dostÄ™pnych rozszerzeÅ„ sieci" + +# +msgid "View list of available recording extensions" +msgstr "Zobacz listÄ™ dostÄ™pnych rozszerzeÅ„ nagrywania" + +# +msgid "View list of available skins" +msgstr "Zobacz listÄ™ dostÄ™pnych skinów" + +# +msgid "View list of available software extensions" +msgstr "Zobacz listÄ™ dostÄ™pnych rozszerzeÅ„ oprogramowania" + +# +msgid "View list of available system extensions" +msgstr "Zobacz listÄ™ dostÄ™pnych rozszerzeÅ„ systemu" + +# +msgid "View photos..." +msgstr "WyÅ›wietl zdjÄ™cia..." + +# +msgid "View teletext..." +msgstr "WyÅ›wietl teletext..." + +# +msgid "View video CD..." +msgstr "Odtwórz video CD..." + +# +msgid "Virtual keyboard" +msgstr "Wirtualna klawiatura" + +# +msgid "Voltage mode" +msgstr "Tryb napiÄ™cia" + +# +msgid "Volume" +msgstr "GÅ‚oÅ›ność" + +# +msgid "W" +msgstr "W" + +# +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "PoÅ‚Ä…czenie WLAN." + +# +msgid "WPA" +msgstr "WPA" + +# +msgid "WPA or WPA2" +msgstr "WPA lub WPA2" + +# +msgid "WPA2" +msgstr "WPA2" + +# +msgid "WSS on 4:3" +msgstr "WSS na 4:3" + +# +msgid "Waiting" +msgstr "Oczekiwanie" + +msgid "Waiting for mount" +msgstr "Czekaj na podmontowanie" + +msgid "Waiting for partition" +msgstr "Czekaj na utworzenie partycji" + +# +msgid "Wakeup" +msgstr "Wybudzenie" + +# +msgid "Wakeup TV from standby" +msgstr "Wybudzaj TV ze stanu czuwania" + +# +msgid "Wakeup receiver for start timer" +msgstr "Wybudzaj odbiornik aby uruchomić timer" + +# +msgid "Wakeup receiver from standby" +msgstr "Wybudzaj odbiornik ze stanu czuwania" + +# +msgid "Wakeup signal from TV" +msgstr "SygnaÅ‚ wybudzenia z TV" + +# +msgid "Wakeup type" +msgstr "Typ wybudzania" + +msgid "Warning: no LNB; using factory defaults." +msgstr "UWAGA: brak LNB; użyto ustawieÅ„ domyÅ›lnych" + +# +msgid "Watch movies..." +msgstr "OglÄ…daj filmy..." + +# +msgid "Watch recordings..." +msgstr "OglÄ…daj nagrania..." + +# +msgid "Wed" +msgstr "Åšro" + +# +msgid "Wednesday" +msgstr "Åšroda" + +# +msgid "Weekday" +msgstr "DzieÅ„ tygodnia" + +msgid "Weighted position" +msgstr "Pozycja ważona" + +# +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"Witamy w edytorze ciÄ™cia filmu.\n" +"\n" +"Przejdź do miejsca, które ma być nowym poczÄ…tkiem pliku. NaciÅ›nij OK, wybierz 'poczÄ…tek ciÄ™cia'.\n" +"\n" +"Przejdź do miejsca, które ma być nowym koÅ„cem pliku. NaciÅ›nij OK, wybierz 'koniec ciÄ™cia'. To wszystko." + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "Witaj w wizardzie aktualizacji oprogramowania. Wizard bÄ™dzie asystowaÅ‚ przy aktualizacji oprogramowania odbiornika uÅ‚atwiajÄ…c backup aktualnych ustawieÅ„ i krótko wyjaÅ›ni jak zaktualizować oprogramowanie." + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" +"Witam. \n" +"\n" +"JeÅ›li chcesz siÄ™ poÅ‚Ä…czyć z internetem, ten kreator przeprowdzi ciÄ™ przez uproszczonÄ… konfiguracjÄ™ odbiornika. \n" +"Nacisnij OK aby rozpocząć konfiguracjÄ™ sieci." + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" +"Witaj.\n" +"\n" +"Ten kreator przeprowadzi CiÄ™ przez podstawowe ustawienia odbiornika.\n" +"WciÅ›nij OK, aby przejść do kolejnego kroku." + +# +msgid "Welcome..." +msgstr "Witaj..." + +# +msgid "West" +msgstr "Zachód" + +msgid "West limit set" +msgstr "Limit zachodni (W) ustawiony" + +# +msgid "What do you want to scan?" +msgstr "Co chcesz skanować?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "Gdy wÅ‚Ä…czone, PiP może być wyÅ‚Ä…czony klawiszem exit" + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "Gdy wÅ‚Ä…czone, można okreÅ›lić przedziaÅ‚ czasowy, w którym 'timer wyÅ‚Ä…czania' ma być ignorowany, gdy odbiornik jest w trybie czuwania." + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "Gdy wÅ‚Ä…czone, można okreÅ›lić przedziaÅ‚ czasowy w któym sleeptimer bezczynnoÅ›ci bÄ™dzie ignorowany." + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "Gdy wÅ‚Ä…czone, przyciski CH+/-, B+/-, P+/- przeÅ‚Ä…czajÄ… kanaÅ‚y, a nie otwierajÄ… listÄ™ wyboru kanałów." + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "Gdy wÅ‚Ä…czone, lista wyboru kanałów jest wywoÅ‚ywana przyciskiem OK, natomiast za wyÅ›wietlanie/ukrywanie paska info odpowiada przycisk exit." + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "Gdy wÅ‚Ä…czone, dane AIT bÄ™dÄ… zawarte w streamach http. To pozwala używać HbbTV na odbiorniku 'kliencie'." + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "Gdy wÅ‚Ä…czone, dane ECM bÄ™dÄ… zawarte w streamach http. To pozwala wykonać odkodowanie na odbiorniku 'kliencie'." + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "Gdy wÅ‚Ä…czone, dane EIT bÄ™dÄ… zawarte w streamach http. To pozwala wyÅ›wietlić EPG na odbiorniku 'kliencie'." + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "Gdy wÅ‚Ä…czone, gdy film siÄ™ zakoÅ„czy i nastÄ™pny rozpocznie, na ekranie zostanie wyÅ›wietlona wiadomość." + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "Gdy wÅ‚Ä…czone, gdy rozpocznie siÄ™ nagrywanie, na ekranie zostanie wyÅ›wietlona wiadomość." + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "Gdy wÅ‚Ä…czone, radio logo bÄ™dzie wyÅ›witlane jako tÅ‚o podczas sÅ‚uchania." + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "Gdy wÅ‚Ä…czone, nagrywanie może przerwać oglÄ…danie 'na żywo', gdy brak wolnego tunera." + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "Gdy wÅ‚aczone, wyÅ›wietli siÄ™ ostrzeżenie i użytkownik bÄ™dzie miaÅ‚ możliwość wyboru czy zatrzymać czy kontynuować timeshift" + +msgid "When enabled, authentication is required to watch http streams." +msgstr "Gdy wÅ‚Ä…czone, aby uruchmić stream http z odbiornika wymagane bÄ™dzie uwierzytelnienie." + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "Gdy wÅ‚Ä…czone, numerowanie kanałów bÄ™dzie zaczynać siÄ™ od '1' dla każdego bukietu." + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "Gdy wÅ‚Ä…czone, zawartość z aspect ratio 4:3 bÄ™dzie rozciÄ…gana aby dopasować do ekranu." + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "Gdy wÅ‚Ä…czone, po dojÅ›ciu do ostatniego kanaÅ‚u w danym bukiecie podczas przeÅ‚Ä…czania, automatycznie nastÄ…pi przejÅ›cie do kolejnego bukietu." + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "Gdy wÅ‚Ä…czone, usuniÄ™te nagrania zostanÄ… przeniesione do 'Kosza', zamiast natychmiastowego usuniÄ™cia." + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "Gdy wÅ‚Ä…czone, w paski info sÄ… wyÅ›wietlane dane EIT teraz/nastÄ™pnie dla danej audycji. Gdy wyÅ‚Ä…czone, wyÅ›wietlane sÄ… dane z cache EPG." + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "Gdy wÅ‚Ä…czone, info o kodowaniu bÄ™dzie wyÅ›wietlane w pasku info (jeÅ›li wspierane przez skin)." + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "Gdy wÅ‚Ä…czone, komunikaty bÅ‚Ä™dów zwiÄ…zanych z moduÅ‚em CI nie bÄ™dÄ… wyÅ›wietlane." + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "Gdy wÅ‚Ä…czone, komunikaty bÅ‚Ä™dów zwiÄ…zanych z przeÅ‚Ä…czaniem kanałów nie bÄ™dÄ… wyÅ›wietlane." + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "Gdy wÅ‚Ä…czone, napisy zewnÄ™trzne bÄ™dÄ… zawsze uruchamiane automatycznie przy odtwarzaniu filmu" + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "Gdy wÅ‚Ä…czone, graficzne napisy DVB bÄ™dÄ… preferowane przed napisami teletekst, gdy oba rodzaje sÄ… dostÄ™pne." + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "Gdy wÅ‚Ä…czone, graficzne napisy DVB bÄ™dÄ… wyÅ›rodkowane poziomo." + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "Gdy wÅ‚Ä…czone, graficzne napisy DVB bÄ™dÄ… wyÅ›wietlane w oryginalnym poÅ‚ożeniu." + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "Gdy wÅ‚Ä…czone, graficzne napisy DVB bÄ™dÄ… wyÅ›wietlane na żółto zamiast oryginalnego koloru." + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "Gdy wÅ‚Ä…czone, streamy http bÄ™dÄ… odkodowywane po stronie serwera. Zdalny odbiornik (klient) nie bÄ™dzie musiaÅ‚ wykonywać odkodowywania." + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "Gdy wÅ‚aczone, można wyjść z odtwarzacza za pomocÄ… klawisza exit" + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "Gdy wÅ‚Ä…czone, pobierana moc bÄ™dzie mierzona w celu wykrycia czy obrotnica zakoÅ„czyÅ‚a ruch (jeżeli wspierane przez tuner)." + +msgid "When enabled, number markers will be hiden." +msgstr "Gdy wÅ‚Ä…czone, markery numeryczne bÄ™dÄ… ukryte " + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "Gdy wÅ‚Ä…czone, kanaÅ‚y mogÄ… być grupowane w wiele bukietów." + +# +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "Gdy wÅ‚Ä…czone, wyÅ›wietla numery w liÅ›cie wyboru kanałów" + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "Gdy wÅ‚Ä…czone, napisy dla niesÅ‚yszÄ…cych mogÄ… być wyÅ›wietlane." + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "Gdy wÅ‚Ä…czone, napisy dla niesÅ‚yszÄ…cych bÄ™dÄ… preferowane przed normalnymi napisami, jeżeli oba rodzaje sÄ… dostÄ™pne. " + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "Gdy wÅ‚Ä…czone, strony teletextu bÄ™dÄ… cache'owane, co pozwoli na szybszy dostÄ™p." + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "Gdy wÅ‚Ä…czone, napisy teletext bÄ™dÄ… wyÅ›wietlane w oryginalnym poÅ‚ożeniu." + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "Gdy wÅ‚Ä…czone, opcja VCR scart bÄ™dzie wyÅ›wietlana w menu głównym " + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "Gdy wÅ‚Ä…czone, lista wyboru kanałów bÄ™dzie ukryta podczas sÅ‚uchania radia." + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "Gdy wÅ‚Ä…czone, infobar bÄ™dzie wyÅ›wietlany przy starcie nowej audycji." + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "Gdy wÅ‚Ä…czone, infobar bÄ™dzie wyÅ›wietlany przy zmianie kanałów." + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "Gdy wÅ‚Ä…czone, infobar bÄ™dzie wyÅ›wietlany przy przewijaniu w przód/tyÅ‚ podczas odtwarzania." + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "Gdy wÅ‚Ä…czone, dÅ‚ugość każdego nagrania bÄ™dzie pokazywana w liÅ›cie filmów (może to wydÅ‚użyć czas Å‚adowania listy)." + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "Gdy wÅ‚Ä…czone, oryginalne podziaÅ‚y linii zostanÄ… usuniÄ™te z napisów teletext." + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "Gdy wÅ‚Ä…czone, automatycznie zostanie wÅ‚Ä…czona Å›cieżka audio ostatnio wybrana na danym kanale." + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "Gdy wÅ‚Ä…czone, automatycznie zostanÄ… wÅ‚Ä…czone napisy ostatnio wybrane na danym kanale." + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "Gdy wÅ‚Ä…czone, odbiornik nie bÄ™dzie automatycznie przeszukiwaÅ‚ bieżącego transpondera w poszukiwaniu zmian. Użyj tej opcji TYLKO jeżeli wiesz co robisz ;-)..." + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "Gdy wÅ‚Ä…czone, automatycznie zostanie wybrana Å›cieżka audio AC3 (gdy dostÄ™pna)." + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "Gdy wÅ‚Ä…czone, automatycznie zostanie wybrana Å›cieżka audio AC3+ (gdy dostÄ™pna)." + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "Gdy wÅ‚Ä…czone, timeshift zostanie uruchomiony w tle po okreÅ›lonym czasie" + +# +msgid "When enabled, use DHCP for the IP configuration." +msgstr "Gdy wÅ‚Ä…czone, używa DHCP do konfiguracji IP." + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "Gdy wÅ‚Ä…czone, odbiornik automatycznie wykryje urzÄ…dzenia na wejÅ›ciu VCR SCART." + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "Gdy różne od 0, nagranie wystartuje wczeÅ›niej niż czas rozpoczÄ™cia okreÅ›lony w EPG." + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "Gdy różne od 0, nagranie zatrzyma siÄ™ później niż czas zakoÅ„czenia okreÅ›lony w EPG." + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "Wybierz czy skalować/rozciÄ…gać zawartość z aspect ratio 16:9." + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "Wybierz czy skalować/rozciÄ…gać zawartość z aspect ratio 4:3." + +# +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"Gdy wybierzesz powrót do ustawieÅ„ fabrycznych, utracisz wszystkie dane konfiguracyjne\n" +"(w tym bukiety, kanaÅ‚y, satelity...)\n" +"Po przywróceniu ustawieÅ„ fabrycznych twój tuner zrestartuje siÄ™!\n" +"\n" +"Czy chcesz przywrócić ustawienia fabryczne?" + +# +msgid "Where do you want to backup your settings?" +msgstr "Gdzie chcesz umieÅ›cić kopie zapasowÄ… ustawieÅ„?" + +# +msgid "Where to save temporary timeshift recordings?" +msgstr "Gdzie zapisywać tymczasowe nagrania timeshift?" + +# +msgid "Wireless LAN" +msgstr "Sieć bezprzewodowa" + +# +msgid "Wireless network" +msgstr "Sieć bezprzewodowa" + +# +msgid "Wireless network configuration..." +msgstr "Konfiguracja sieci bezprzewodowej..." + +# +msgid "Wireless network connection setup" +msgstr "Konfiguracjia sieci bezprzewodowej" + +# +msgid "Wireless network connection setup." +msgstr "Konfiguracjia sieci bezprzewodowej." + +# +msgid "Wireless network state" +msgstr "Status sieci bezprzewodowej" + +msgid "With popup" +msgstr "WyÅ›wietl popup" + +msgid "Without popup" +msgstr "Bez ostrzeżenia" + +msgid "Would you like to install a softcam?" +msgstr "Czy chcesz zainstalować softcam?" + +# +msgid "Write error while recording. Disk full?\n" +msgstr "BÅ‚Ä…d zapisu podczas nagrywania. Dysk jest peÅ‚ny?\n" + +# +msgid "Write failed!" +msgstr "BÅ‚Ä…d zapisu!" + +# +msgid "YPbPr" +msgstr "Component" + +# +msgid "Year" +msgstr "Rok" + +# +msgid "Yellow DVB subtitles" +msgstr "Żółte napisy DVB" + +# +msgid "Yes" +msgstr "Tak" + +msgid "Yes and save" +msgstr "Tak i zapisz" + +msgid "Yes and save in movie dir" +msgstr "Tak, i zapisz w katalogu movie" + +# +msgid "Yes to all" +msgstr "Tak dla wszystkich" + +msgid "Yes, always" +msgstr "Tak, zawsze" + +# +msgid "Yes, and delete this movie" +msgstr "Tak, i usuÅ„ ten film" + +# +msgid "Yes, backup my settings!" +msgstr "Tak, zrób kopie moich ustawieÅ„!" + +# +msgid "Yes, delete this movie and return to movie list" +msgstr "Tak, usuÅ„ i wróć do listy filmów" + +# +msgid "Yes, do a manual scan now" +msgstr "Tak, rozpocznij rÄ™czne skanowanie" + +# +msgid "Yes, do an automatic scan now" +msgstr "Tak, rozpocznij automatyczne skanowanie" + +# +msgid "Yes, do another manual scan now" +msgstr "Tak, rozpocznij kolejne rÄ™czne skanowanie" + +# +msgid "Yes, perform a shutdown now." +msgstr "Tak, wyÅ‚Ä…cz teraz." + +# +msgid "Yes, restore the settings now" +msgstr "Tak, przywróć ustawienia teraz" + +# +msgid "Yes, returning to movie list" +msgstr "Tak, powróć do listy filmów" + +# +msgid "Yesterday" +msgstr "Wczoraj" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" +"Masz już zainstalowanÄ… listÄ™ kanałów,\n" +"czy chcesz usunąć\n" +"\"%s\"?" + +# +msgid "You can cancel the installation." +msgstr "Możesz anulować instalacjÄ™" + +# +msgid "You can cancel the removal." +msgstr "Możesz anulować usuwanie" + +msgid "You can continue watching TV etc. while this is running." +msgstr "Możesz nadal oglÄ…dać tv itd. w trakcie..." + +# +msgid "You can install this plugin." +msgstr "Możesz zainstalować ten plugin" + +msgid "You can only burn receiver recordings!" +msgstr "\"Możesz wypalać tylko nagrania!" + +# +msgid "You can remove this plugin." +msgstr "Możesz usunąć ten plugin" + +# +msgid "You cannot delete this!" +msgstr "Tego nie można usunąć!" + +msgid "You didn't select a channel to record from." +msgstr "Nie wybraÅ‚eÅ› kanaÅ‚u z którego nagrywać" + +# +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "WybraÅ‚eÅ› utworzenie backupu swoich ustawieÅ„. WciÅ›nij OK aby rozpocząć." + +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "" + +# +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "WybraÅ‚eÅ› przywrócenie swoich ustawieÅ„. Enigma zostanie zrestartowana po przywróceniu. WciÅ›nij OK aby rozpocząć." + +# +#, python-format +msgid "You have to wait %s!" +msgstr "Musisz poczekać na %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" +"Potrzebujesz PC poÅ‚Ä…czonego z odbiornikiem. WiÄ™cej informacji na stronie http://www.dm7025.de.\n" +"Teraz odbiornik zostanie wyÅ‚Ä…czony. Po wykonaniu instrukcji aktualizacji ze strony, nowe oprogramowanie zapyta czy przywrócić ustawienia." + +msgid "You system does not support ext4" +msgstr "Twój system nie wspiera ext4" + +# +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "Backup zostaÅ‚ utworzony. BÄ™dziemy kontynuować wyjaÅ›nianie procesu aktualizacji." + +# +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "Twoja kolekcja przekracza rozmiar zwykÅ‚ego noÅ›nika DVD, bÄ™dziesz potrzebowaÅ‚ czystegodwuwarstwowego DVD!" + +# +msgid "Your current collection will get lost!" +msgstr "Twoja obecna kolekcja zostanie utracona!" + +# +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"Frontprocessor musi zostać zaktualizowany.\n" +"NaciÅ›nij OK aby rozpocząć aktualizacjÄ™." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"NastÄ…pi upgrade frontprocesora\n" +"Czekaj aż odbiornik zrestartuje siÄ™\n" +"To może potrwać kilka minut" + +# +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"Brak poÅ‚Ä…czenia internetowego! \n" +"Wybierz co chcesz zrobić dalej." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "PoÅ‚Ä…czenie internetowe aktywne (IP: %s)" + +# +msgid "Your network configuration has been activated." +msgstr "Konfiguracja sieci zostaÅ‚a aktywowana." + +msgid "Your receiver does not have an internet connection" +msgstr "Brak poÅ‚Ä…czenia internetowego" + +# +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"Odbiornik jest gotowy do użytku.\n" +"\n" +"PoÅ‚Ä…czenie z internetem jest aktywne.\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Odbiornik jest gotowy do użytku.\n" +"\n" +"PoÅ‚Ä…czenie z internetem jest aktywne.\n" +"\n" +"WciÅ›nij OK aby kontynuować" + +msgid "Your receiver is rebooting" +msgstr "Trwa restart odbiornika" + +msgid "Your receiver is shutting down" +msgstr "Trwa wyÅ‚Ä…czanie odbiornika" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "Trwa wyÅ‚Ä…czanie odbiornika" + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "Odbiornik może być teraz niezdatny do użytku. Zajrzyj do instrukcji użytkownika przed ponownym uruchomieniem." + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "Sleeptimer przeÅ‚Ä…czy odbiornik w tryb czuwania" + +msgid "Your receiver will got to standby due to inactivity." +msgstr "Odbiornik przejdzie w tryb czuwania z powodu bezczynnoÅ›ci" + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "Odbiornik zostanie zrestartowany po wciÅ›niÄ™ciu OK." + +# +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"PoÅ‚Ä…czenie bezprzewodowe z internetem nie może zostać zainicjowane \n" +"PodÅ‚Ä…czyÅ‚eÅ› USB WLAN? \n" +"\n" +"Wybierz co chcesz zrobić dalej." + +msgid "Zap" +msgstr "PrzeÅ‚Ä…cz" + +# +msgid "Zap back to previously tuned service?" +msgstr "PrzeÅ‚Ä…czyć z powrotem na poprzedni kanaÅ‚?" + +# +msgid "Zap back to service before positioner setup?" +msgstr "Powrócić na kanaÅ‚ sprzed ustawiania pozycjonera?" + +# +msgid "Zap back to service before tuner setup?" +msgstr "Powrócić na kanaÅ‚ sprzed konfiguracji tunera?" + +# +msgid "Zap focus to Picture in Picture" +msgstr "PrzeÅ‚Ä…czanie w oknie PiP" + +# +msgid "Zap focus to main screen" +msgstr "PrzeÅ‚Ä…czanie w głównym oknie" + +msgid "Zap mode" +msgstr " Tryb przeÅ‚Ä…czania kanałów" + +msgid "Zap to selected channel" +msgstr "PrzeÅ‚Ä…cz na wybrany kanaÅ‚" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "PrzeÅ‚Ä…cz na wybrany kanaÅ‚ lub pokaż info o audycji (w zależnoÅ›ci od konfiguracji)" + +# +msgid "[alternative edit]" +msgstr "[edycja alternatywnych]" + +# +msgid "[bouquet edit]" +msgstr "[edycja bukietu]" + +# +msgid "[favourite edit]" +msgstr "[edycja ulubionych]" + +# +msgid "[move mode]" +msgstr "[tryb przenoszenia]" + +# +msgid "a gui to assign services/providers to common interface modules" +msgstr "Menu do przyporzÄ…dkowywania kanałów/nadawców dla modułów CI" + +# +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "Menu do przyporzÄ…dkowywania kanałów/nadawców/CAIDów dla modułów CI" + +# +msgid "abort alternatives edit" +msgstr "Przerwij edycjÄ™ alternatywnych" + +# +msgid "abort bouquet edit" +msgstr "Przerwij edycjÄ™ bukietów" + +# +msgid "abort favourites edit" +msgstr "Przerwij edycjÄ™ ulubionych" + +# +msgid "about to start" +msgstr "zaraz siÄ™ rozpocznie" + +# +msgid "activate network adapter configuration" +msgstr "Aktywuj konfiguracjÄ™ adaptera sieciowego" + +# +msgid "add alternatives" +msgstr "Dodaj alternatywne kanaÅ‚y" + +# +msgid "add bookmark" +msgstr "Dodaj zakÅ‚adkÄ™" + +# +msgid "add bouquet" +msgstr "Dodaj bukiet" + +# +msgid "add marker" +msgstr "Dodaj znacznik" + +# +msgid "add service to bouquet" +msgstr "Dodaj kanaÅ‚ do bukietu" + +# +msgid "add service to favourites" +msgstr "Dodaj kanaÅ‚ do ulubionych" + +# +msgid "add to parental protection" +msgstr "Dodaj do kontroli rodzicielskiej" + +msgid "adult movie/drama" +msgstr "Film/Dramat dla dorosÅ‚ych" + +# +msgid "advanced" +msgstr "Zaawansowane" + +msgid "adventure/western/war" +msgstr "Przygoda/Wojenny/Western" + +msgid "advertisement/shopping" +msgstr "Reaklama/Zakupy" + +msgid "after " +msgstr "po" + +# +msgid "alphabetic" +msgstr "Alfabetycznie" + +msgid "alphabetic reverse" +msgstr "Alfabetycznie (Z>A)" + +msgid "alternative" +msgstr "alternatywny" + +# +msgid "always" +msgstr "zawsze" + +msgid "and select next channel" +msgstr "i wybierz kolejny kanaÅ‚" + +msgid "and select previous channel" +msgstr "i wybierz poprzedni kanaÅ‚." + +msgid "arts/culture (without music, general)" +msgstr "Kultura/Sztuka (bez muzyki, ogólna)" + +msgid "arts/culture magazine" +msgstr "Magazyn kulturalny" + +msgid "athletics" +msgstr "Sport" + +# +msgid "audio tracks" +msgstr "Åšcieżki audio" + +# +msgid "auto" +msgstr "Auto" + +# +msgid "automatic" +msgstr "Automatycznie" + +# +msgid "back" +msgstr "Wróć" + +# +msgid "background image" +msgstr "Obraz tÅ‚a" + +msgid "ballet" +msgstr "Balet" + +#, python-format +msgid "bc%s" +msgstr "" + +# +msgid "better" +msgstr "Lepszy" + +# +msgid "black" +msgstr "Czarny" + +msgid "black & white" +msgstr "Czrno-biaÅ‚y" + +# +msgid "blacklist" +msgstr "Blacklist" + +# +msgid "blue" +msgstr "Niebieski" + +msgid "broadcasting/press" +msgstr "Relacja" + +# +msgid "by date" +msgstr "Wg daty" + +msgid "cartoon/puppets" +msgstr "Animowany" + +# +msgid "center" +msgstr "Åšrodek" + +msgid "centered" +msgstr "wyÅ›rodkowane" + +msgid "centered, wrapped" +msgstr "wyÅ›rodkowane, zawiÅ„" + +# +msgid "chapters" +msgstr "RozdziaÅ‚y" + +msgid "childrens's/youth program (general)" +msgstr "Dla dzieci/mÅ‚odzieży" + +# +msgid "circular left" +msgstr "KoÅ‚owa lewa" + +# +msgid "circular right" +msgstr "KoÅ‚owa prawa" + +msgid "comedy" +msgstr "Komedia" + +# +msgid "complex" +msgstr "ZÅ‚ożony" + +# +msgid "config menu" +msgstr "Menu konfiguracji" + +# +msgid "confirmed" +msgstr "Potwierdzony" + +# +msgid "connected" +msgstr "PoÅ‚Ä…czony" + +# +msgid "continue" +msgstr "Kontynuuj" + +msgid "cooking" +msgstr "Gotowanie" + +# +msgid "copy to bouquets" +msgstr "Kopiuj do bukietów" + +# +msgid "create directory" +msgstr "Utwórz katalog" + +#, python-format +msgid "currently installed image: %s" +msgstr "Aktualnie zainstalowane image: %s" + +# +msgid "daily" +msgstr "Codziennie" + +# +msgid "day" +msgstr "DzieÅ„" + +# +msgid "default" +msgstr "DomyÅ›lny" + +# +msgid "delete cut" +msgstr "UsuÅ„ ciÄ™cie" + +# +msgid "delete..." +msgstr "UsuÅ„..." + +msgid "descramble and record ecm" +msgstr "Dekoduj i nagrywaj ECM" + +msgid "detective/thriller" +msgstr "KryminaÅ‚/Thriler" + +# +msgid "disable" +msgstr "WyÅ‚Ä…cz" + +# +msgid "disable move mode" +msgstr "WyÅ‚Ä…cz tryb przenoszenia" + +# +msgid "disabled" +msgstr "WyÅ‚Ä…czony" + +# +msgid "disconnected" +msgstr "RozÅ‚Ä…czone" + +msgid "discussion/interview/debate" +msgstr "Rozmowa/Wywiad/Debata" + +# +msgid "do nothing" +msgstr "Nic nie rób" + +msgid "documentary" +msgstr "Dokument" + +msgid "don't descramble, record ecm" +msgstr "Nie dekoduj, nagrywaj ECM" + +# +msgid "done!" +msgstr "Zrobione!" + +msgid "east" +msgstr "wschód" + +msgid "economics/social advisory" +msgstr "Porady ekonomiczne/spoÅ‚eczne" + +# +msgid "edit alternatives" +msgstr "Edytuj alternatywne kanaÅ‚y" + +msgid "education/science/factual topics (general)" +msgstr "Edukacja/Nauka/Fakty" + +# +msgid "empty" +msgstr "Pusty" + +# +msgid "enable" +msgstr "WÅ‚Ä…cz" + +# +msgid "enable bouquet edit" +msgstr "WÅ‚Ä…cz edycjÄ™ bukietu" + +# +msgid "enable favourite edit" +msgstr "WÅ‚Ä…cz edycjÄ™ ulubionych" + +# +msgid "enable move mode" +msgstr "WÅ‚Ä…cz tryb przenoszenia" + +# +msgid "enabled" +msgstr "WÅ‚Ä…czone" + +# +msgid "end alternatives edit" +msgstr "Koniec edycji alternatywnych" + +# +msgid "end bouquet edit" +msgstr "Koniec edycji bukietów" + +# +msgid "end cut here" +msgstr "Koniec ciÄ™cia tutaj" + +# +msgid "end favourites edit" +msgstr "Koniec edycji ulubionych" + +msgid "entertainment (10-16 year old)" +msgstr "Rozrywka (10-16 lat)" + +msgid "entertainment (6-14 year old)" +msgstr "Rozrywka (6-14 lat)" + +# +msgid "equal to" +msgstr "Równy" + +msgid "equestrian" +msgstr "Jeździectwo" + +# +msgid "exit DVD player or return to file browser" +msgstr "Zamknij odtwarzacz DVD lub powróć do przeglÄ…darki plików" + +# +msgid "exit movielist" +msgstr "Wyjdź z listy filmów" + +# +msgid "exit network adapter configuration" +msgstr "Zamknij menu konfiguracji adaptera sieciowego" + +# +msgid "exit networkadapter setup menu" +msgstr "Zamknij menu konfiguracji adaptera sieciowego" + +msgid "experimental film/video" +msgstr "Film eksprymentalny" + +# +msgid "false" +msgstr "nie" + +msgid "fashion" +msgstr "Moda" + +# +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "Formaty plików (BMP, PNG, JPG, GIF)" + +# +msgid "filename" +msgstr "Nazwa pliku" + +msgid "film/cinema" +msgstr "Film/Kino" + +msgid "fine arts" +msgstr "Sztuki piÄ™kne" + +# +msgid "fine-tune your display" +msgstr "Dostrajanie ustawieÅ„ ekranu" + +msgid "fitness & health" +msgstr "Fittness i zdrowie" + +# +msgid "flat alphabetic" +msgstr "Alfabetycznie (+katalogi)" + +msgid "flat alphabetic reverse" +msgstr "Alfabetycznie (+ katalogi) Z>A" + +msgid "folk/traditional music" +msgstr "Folk/Muzyka tradycyjna" + +msgid "football/soccer" +msgstr "PiÅ‚ka nożna" + +msgid "foreign countries/expeditions" +msgstr "Wyprawy/Podróże" + +# +msgid "forward to the next chapter" +msgstr "Przeskocz do nastepnego rozdziaÅ‚u" + +# +msgid "free" +msgstr "Wolne" + +msgid "from" +msgstr "z" + +msgid "further education" +msgstr "Edukacja" + +msgid "game show/quiz/contest" +msgstr "Teleturniej/Quiz/Konkurs" + +msgid "gardening" +msgstr "Ogród" + +# +msgid "go to deep standby" +msgstr "Przejdź do gÅ‚Ä™bokiego czuwania" + +# +msgid "go to standby" +msgstr "Przejdź do stanu czuwania" + +# +msgid "grab this frame as bitmap" +msgstr "Zrób screenshot (.bmp)" + +# +msgid "green" +msgstr "Zielony" + +msgid "handicraft" +msgstr "RÄ™kodzieÅ‚o" + +# +msgid "height" +msgstr "Wysokość" + +# +msgid "help..." +msgstr "Pomoc..." + +# +msgid "horizontal" +msgstr "Pozioma (H)" + +msgid "information/education/school program" +msgstr "Program edukacyjny" + +# +msgid "init module" +msgstr "Zainicjuj moduÅ‚" + +# +msgid "init modules" +msgstr "Zainicjuj moduÅ‚y" + +# +msgid "insert mark here" +msgstr "Wstaw znacznik tutaj" + +msgid "invalid type" +msgstr "nieprawidÅ‚owy typ" + +msgid "jazz" +msgstr "Jazz" + +# +msgid "jump back to the previous title" +msgstr "Powróć do poprzedniego tytuÅ‚u" + +# +msgid "jump forward to the next title" +msgstr "Przeskocz do nastÄ™pnego tytuÅ‚u" + +msgid "languages" +msgstr "JÄ™zyki" + +# +msgid "leave movie player..." +msgstr "Zamknij odtwarzacz filmów..." + +# +msgid "left" +msgstr "Lewo" + +msgid "left, wrapped" +msgstr "do lewej, zawiÅ„" + +msgid "leisure hobbies (general)" +msgstr "Hobby" + +# +msgid "length" +msgstr "DÅ‚ugość" + +msgid "limit ..., aborting !" +msgstr "limit..., przerywam!" + +# +msgid "list style compact" +msgstr "Styl listy: kompaktowy " + +# +msgid "list style compact with description" +msgstr "Styl listy: kompaktowy z opisem" + +# +msgid "list style default" +msgstr "Styl listy: domyÅ›lny" + +# +msgid "list style single line" +msgstr "Styl listy: pojedyncza linia" + +msgid "literature" +msgstr "Literatura" + +msgid "live broadcast" +msgstr "Na żywo" + +# +msgid "locked" +msgstr "Zablokowany" + +# +msgid "loopthrough to" +msgstr "Przez przelotkÄ™ do" + +msgid "magazines/reports/documentary" +msgstr "Reportaż/Dokument/Mgazyn" + +# +msgid "manual" +msgstr "RÄ™cznie" + +msgid "martial sports" +msgstr "Sporty walki" + +msgid "medicine/physiology/psychology" +msgstr "Medycyna/Fizjologia/Psychologia" + +# +msgid "menu" +msgstr "Menu" + +# +msgid "mins" +msgstr "min" + +# +msgid "minutes" +msgstr "minuty" + +# +msgid "month" +msgstr "miesiÄ…c" + +msgid "motor sport" +msgstr "Sporty motorowe" + +msgid "motoring" +msgstr "Motoryzacja" + +# +msgid "move down to last entry" +msgstr "Przejdź w dół do ostatniej pozycji" + +# +msgid "move down to next entry" +msgstr "Przejdź w do nastÄ™pnej pozycji" + +# +msgid "move up to first entry" +msgstr "Przejdź w górÄ™ do pierwszej pozycji" + +# +msgid "move up to previous entry" +msgstr "Przejdź w górÄ™ do poprzedniej pozycji" + +msgid "movie/drama (general)" +msgstr "Film/Dramat" + +# +msgid "multinorm" +msgstr "Multinorm" + +msgid "music/ballet/dance (general)" +msgstr "Muzyka/Balet/Taniec" + +msgid "musical/opera" +msgstr "Musical/Opera" + +msgid "nature/animals/environment" +msgstr "Natura/ZwierzÄ™ta/Åšrodowisko" + +# +msgid "never" +msgstr "Nigdy" + +msgid "new media" +msgstr "Nowe media" + +msgid "news magazine" +msgstr "Magazyn informacyjny" + +msgid "news/current affairs (general)" +msgstr "WiadomoÅ›ci" + +msgid "news/weather report" +msgstr "WiadomoÅ›ci/Pogoda" + +# +msgid "no" +msgstr "Nie" + +# +msgid "no CAId selected" +msgstr "Brak wybranego CAId" + +# +msgid "no CI slots found" +msgstr "Nie znaleziono slotu CI" + +# +msgid "no module found" +msgstr "Nie znaleziono moduÅ‚u" + +# +msgid "no storage devices found" +msgstr "Brak urzÄ…dzeÅ„ przechowywania danych" + +# +msgid "none" +msgstr "Brak" + +msgid "normal" +msgstr "ZwykÅ‚y" + +# +msgid "not configured" +msgstr "Nieskonfigurowany" + +# +msgid "not locked" +msgstr "Nie zablokowany" + +msgid "not supported" +msgstr "NieobsÅ‚ugiwany" + +# +msgid "not used" +msgstr "Nie wykorzystywany" + +# +msgid "nothing connected" +msgstr "Nic nie podÅ‚Ä…czono" + +# +msgid "of a DUAL layer medium used." +msgstr "noÅ›nika dual layer zużyto." + +# +msgid "of a SINGLE layer medium used." +msgstr "noÅ›nika single layer zużyto." + +# +msgid "off" +msgstr "WyÅ‚Ä…czony" + +msgid "offset is" +msgstr "offset jest" + +# +msgid "on" +msgstr "WÅ‚Ä…czony" + +# +msgid "on READ ONLY medium." +msgstr "NoÅ›nik tylko do odczytu." + +msgid "on end of movie" +msgstr "Na koÅ„cu filmu" + +# +msgid "once" +msgstr "Raz" + +# +msgid "only from deep standby" +msgstr "tyko z gÅ‚Ä™bokiego czuwania" + +# +msgid "only from standby" +msgstr "tylko ze stanu czuwania" + +# +msgid "open EPG..." +msgstr "Pokaż EPG..." + +msgid "open Info..." +msgstr "Pokaż info" + +# +msgid "open nameserver configuration" +msgstr "Otwórz konfiguracjÄ™ DNS" + +# +msgid "original" +msgstr "Oryginalny" + +msgid "original language" +msgstr "JÄ™zyk oryginalny" + +# +msgid "pass" +msgstr "PrzejÅ›cie" + +msgid "performing arts" +msgstr "Sztuka" + +# +msgid "play as picture in picture" +msgstr "Odtwórz w PiP" + +# +msgid "play in mainwindow" +msgstr "Odtwórz w ekranie głównym" + +# +msgid "please press OK when ready" +msgstr "WciÅ›nij OK gdy gotowe" + +# +msgid "please wait, loading picture..." +msgstr "Czekaj, Å‚adowanie obrazu..." + +msgid "popular culture/traditional arts" +msgstr "Popkultura/Sztuka tradycyjna" + +msgid "pre-school children's program" +msgstr "Dla przedszkolaków" + +msgid "receiver software because updates are available." +msgstr "Oprogramowanie odbiornika ponieważ aktualizacje sÄ… dostÄ™pne." + +# +msgid "record" +msgstr "Nagraj" + +# +msgid "recording..." +msgstr "Nagrywanie..." + +# +msgid "red" +msgstr "Czerwony" + +msgid "religion" +msgstr "Religia" + +msgid "remarkable people" +msgstr "SÅ‚awni ludzie" + +# +msgid "remove after this position" +msgstr "UsuÅ„ po tej pozycji" + +# +msgid "remove all alternatives" +msgstr "UsuÅ„ wszystkie alternatywne" + +# +msgid "remove all new found flags" +msgstr "UsuÅ„ wszystkie flagi 'nowo znalezione'" + +# +msgid "remove before this position" +msgstr "UsuÅ„ przed tÄ… pozycjÄ…" + +# +msgid "remove bookmark" +msgstr "UsuÅ„ zakÅ‚adkÄ™" + +# +msgid "remove directory" +msgstr "UsuÅ„ katalog" + +# +msgid "remove entry" +msgstr "UsuÅ„" + +# +msgid "remove from parental protection" +msgstr "UsuÅ„ z kontroli rodzicielskiej" + +# +msgid "remove new found flag" +msgstr "UsuÅ„ flagÄ™ 'nowo znaleziony'" + +# +msgid "remove selected satellite" +msgstr "UsuÅ„ wybranego satelitÄ™" + +# +msgid "remove this mark" +msgstr "UsuÅ„ ten znacznik" + +msgid "rename entry" +msgstr "ZmieÅ„ nazwÄ™" + +# +msgid "repeat playlist" +msgstr "Powtórz playlistÄ™" + +# +msgid "repeated" +msgstr "Powtórzone" + +msgid "reverse by date" +msgstr "Wg daty (od najstarszego)" + +# +msgid "rewind to the previous chapter" +msgstr "Cofnij do poprzedniego rozdziaÅ‚u" + +# +msgid "right" +msgstr "Prawy" + +msgid "right, wrapped" +msgstr "do prawej, zawiÅ„" + +msgid "rock/pop" +msgstr "Rock/Pop" + +msgid "romance" +msgstr "Romans" + +# +msgid "save last directory on exit" +msgstr "Zapisz ostatni katalog przy wyjÅ›ciu" + +# +msgid "save playlist on exit" +msgstr "Zapisz playlistÄ™ przy wyjÅ›ciu" + +# +msgid "scan state" +msgstr "Status skanowania" + +msgid "science fiction/fantasy/horror" +msgstr "SF/Fantasy/Horror" + +# +msgid "second cable of motorized LNB" +msgstr "Drugi kabel zmotoryzowanego LNB" + +# +msgid "seconds" +msgstr "sekundy" + +# +msgid "select" +msgstr "Wybierz" + +# +msgid "select CAId's" +msgstr "Wybierz CAId'y" + +# +msgid "select EPG..." +msgstr "Wybierz akcjÄ™ dla przycisku EPG" + +msgid "select Info..." +msgstr "Wybierz akcjÄ™ dla przycisku Info" + +# +msgid "select menu entry" +msgstr "Wybierz pozycjÄ™ menu" + +# +msgid "select movie" +msgstr "Wybierz film" + +# +msgid "select the movie path" +msgstr "Wybierz Å›cieżkÄ™ do filmu" + +msgid "serious music/classic music" +msgstr "Muzyka klasyczna" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "Film klasyka/historia/religia" + +# +msgid "service PIN" +msgstr "PIN kanaÅ‚u" + +# +msgid "set as startup service" +msgstr "Ustaw jako kanaÅ‚ startowy" + +# +msgid "setup PIN" +msgstr "PIN ustawieÅ„" + +# +msgid "show DVD main menu" +msgstr "Pokaż główne menu DVD" + +msgid "show all tags" +msgstr "Pokaż wszystkie tagi" + +# +msgid "show alternatives" +msgstr "Pokaż alternatywne kanaÅ‚y" + +# +msgid "show event details" +msgstr "Pokaż szczegóły wydarzenia" + +# +msgid "show extended description" +msgstr "Pokaż rozszerzony opis" + +msgid "show mediaplayer on mainmenu" +msgstr "Pokaż Mediaplayer w menu głównym" + +msgid "show softwaremanager in setup menu" +msgstr "Software Manager w menu/ustawienia" + +msgid "show softwaremanager on blue button" +msgstr "Software Manager pod niebieskim" + +# +msgid "show tag menu" +msgstr "Pokaż menu tagów" + +# +msgid "show transponder info" +msgstr "Pokaż info transpondera" + +msgid "show/game show (general)" +msgstr "Rozrywka" + +msgid "shuffle" +msgstr "Wymieszaj" + +# +msgid "shut down" +msgstr "WyÅ‚Ä…cz" + +# +msgid "simple" +msgstr "Prosty" + +# +msgid "skip backward" +msgstr "Skocz wstecz" + +# +msgid "skip forward" +msgstr "Skocz w przód" + +msgid "soap/melodram/folkloric" +msgstr "Serial/Melodramat" + +msgid "social/political issues/economics (general)" +msgstr "Poltyka/SpoÅ‚eczeÅ„stwo/Ekonomia" + +msgid "social/spiritual science" +msgstr "Nauki spoÅ‚eczne" + +msgid "sorting of playlists" +msgstr "Sortowanie listy odtwarzania" + +# +msgid "special characters" +msgstr "Znaki specjalne" + +msgid "special events" +msgstr "Wydarzenia specjalne" + +msgid "special format data DVD (HDTV compatible)" +msgstr "Format danych DVD (kompatybilny z HDTV)" + +msgid "sports (general)" +msgstr "Sport" + +msgid "sports magazine" +msgstr "Magazyn sportowy" + +# +msgid "standard" +msgstr "Standardowe" + +# +msgid "start cut here" +msgstr "Rozpocznij ciÄ™cie tutaj" + +# +msgid "start directory" +msgstr "Katalog poczÄ…tkowy" + +msgid "stepsize" +msgstr "Rozmiar kroku" + +# +msgid "stereo" +msgstr "Stereo" + +msgid "stop using as startup service" +msgstr "PrzestaÅ„ używać jako kanaÅ‚ startowy" + +# +msgid "switch to bookmarks" +msgstr "Przejdź do zakÅ‚adek" + +# +msgid "switch to filelist" +msgstr "Przjdź do listy plików" + +# +msgid "switch to the next angle" +msgstr "Przejdź do nastÄ™pnego rogu" + +# +msgid "switch to the next audio track" +msgstr "PrzeÅ‚Ä…cz na nastÄ™pnÄ… Å›cieżkÄ™ audio" + +# +msgid "switch to the next subtitle language" +msgstr "PrzeÅ‚Ä…cz na nastÄ™pny jÄ™zyk napisów" + +msgid "talk show" +msgstr "Talk show" + +msgid "team sports" +msgstr "Sporty zespoÅ‚owe" + +msgid "technology/natural science" +msgstr "Technika/Nauka" + +# +msgid "template file" +msgstr "Szablon" + +msgid "tennis/squash" +msgstr "Tennis/Squash" + +# +msgid "this recording" +msgstr "to nagranie" + +# +msgid "this service is protected by a parental control pin" +msgstr "Ten serwis jest chroniony kodem PIN" + +# +msgid "toggle time, chapter, audio, subtitle info" +msgstr "Czas odtwarzania, rozdziaÅ‚, audio, informacja o napisach" + +# +msgid "top" +msgstr "Góra" + +msgid "tourism/travel" +msgstr "Podróże/Turystyka" + +# +msgid "true" +msgstr "tak" + +msgid "unavailable" +msgstr "NiedostÄ™pny" + +# +msgid "unconfirmed" +msgstr "Niepotwierdzony" + +msgid "undefined" +msgstr "Niezdefiniowany" + +# +msgid "unknown" +msgstr "Nieznany" + +# +msgid "unknown service" +msgstr "Nieznany serwis" + +msgid "unpublished" +msgstr "Niepublikowany" + +# +msgid "until standby/restart" +msgstr "Do standby/restartu" + +# +msgid "user defined" +msgstr "Zdefiniowane przez użytkownika" + +msgid "variety show" +msgstr "Rozrywka" + +# +msgid "vertical" +msgstr "Pionowa (V)" + +# +msgid "wait for ci..." +msgstr "Czekaj na CI..." + +# +msgid "wait for mmi..." +msgstr "Czekaj na MMI..." + +# +msgid "waiting" +msgstr "Oczekiwanie" + +msgid "water sport" +msgstr "Sporty wodne" + +# +msgid "weekly" +msgstr "Co tydzieÅ„" + +msgid "west" +msgstr "zachód" + +msgid "when PiPzap enabled zap channel down..." +msgstr "Przy wÅ‚Ä…czonym PiPzap przeÅ‚Ä…cz w oknie PiP na poprzedni kanaÅ‚" + +msgid "when PiPzap enabled zap channel up..." +msgstr "Przy wÅ‚Ä…czonym PiPzap przeÅ‚Ä…cz w oknie PiP na nastÄ™pny kanaÅ‚" + +# +msgid "white" +msgstr "BiaÅ‚y" + +# +msgid "whitelist" +msgstr "Whitelist" + +# +msgid "width" +msgstr "Szerokość" + +msgid "winter sport" +msgstr "Sporty zimowe" + +# +msgid "wireless network interface" +msgstr "interfejs sieci bezprzewodowej" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "z %d bÅ‚Ä™dem" +msgstr[1] "z %d bÅ‚Ä™dami" +msgstr[2] "z %d bÅ‚Ä™dami" + +# +msgid "working" +msgstr "Pracuje" + +# +msgid "yellow" +msgstr "Żółty" + +# +msgid "yes" +msgstr "Tak" + +# +msgid "yes (keep feeds)" +msgstr "Tak (trzymaj feedy)" + +# +msgid "zap" +msgstr "PrzeÅ‚Ä…cz" + +msgid "zap and record" +msgstr "PrzeÅ‚Ä…cz i nagraj" + +# +msgid "zapped" +msgstr "PrzeÅ‚Ä…czony" + +# +#, fuzzy +#~ msgid "AA" +#~ msgstr "A" + +# +#, fuzzy +#~ msgid "AB" +#~ msgstr "A" + +# +#, fuzzy +#~ msgid "Activate PiP" +#~ msgstr "WÅ‚Ä…cz PiP" + +#, fuzzy +#~ msgid "Add/remove timer for current event" +#~ msgstr "Dodaj/usuÅ„ timer dla bieżącej audycji" + +#, fuzzy +#~ msgid "Adjust HDMI CEC settings" +#~ msgstr "Dostosuj ustawienia 3d" + +# +#, fuzzy +#~ msgid "All satellites" +#~ msgstr "Wybierz satelity" + +#, fuzzy +#~ msgid "And will shutdown your receiver over " +#~ msgstr "Odbiornik przejdzie w stan czuwania za" + +# +#, fuzzy +#~ msgid "BA" +#~ msgstr "A" + +# +#, fuzzy +#~ msgid "BB" +#~ msgstr "B" + +# +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "Zachowanie 'pauzy' gdy zatrzymany" + +# +#, fuzzy +#~ msgid "Committed DiSEqC command" +#~ msgstr "Komenda DiSEqC 1.0" + +#~ msgid "Configure of and how long the latest service in the PiP will be remembered." +#~ msgstr "Skonfiguruj jak dÅ‚ugo ma być pamiÄ™tany kanaÅ‚ ostatnio uruchomiony w PiP." + +#~ msgid "Configure the behavior of the 'pause' key when movie playback is already paused." +#~ msgstr "skonfiguruj zachowanie klawisza 'pauza' gdy odtwarzanie filmu jest już wstrzymane." + +#, fuzzy +#~ msgid "Configure the duration in hours and action, which could be shut down or standby, when the receiver is not controlled." +#~ msgstr "Ustaw czas (w godzinach) po jakim odbiornik przeÅ‚Ä…czy siÄ™ w tryb czuwania, gdy pozostaje nieaktywny." + +#, fuzzy +#~ msgid "Configure the duration in minutes and action, which could be shut down or standby, for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +#~ msgstr "Ustaw czas (w minutach) dla wyÅ‚Ä…cznika czasowego. Wybierz opcjÄ™ i wciÅ›nij OK lub zielony aby uruchomić/zatrzymać sleeptimer. " + +#, fuzzy +#~ msgid "Currently the commit log cannot be retreived - please try later again" +#~ msgstr "Commit log nie może zostać teraz pobrany - spróbuj ponownie później" + +# +#, fuzzy +#~ msgid "DiSEqC repeats" +#~ msgstr "Powtórzenia DiSEqC 1.1" + +# +#~ msgid "Enable neutrino style zap controlling" +#~ msgstr "Sterowanie przeÅ‚Ä…czaniem kanałów jak w neutrino" + +#, fuzzy +#~ msgid "Goto specific data/time" +#~ msgstr "Idź do konkretnej daty/godziny" + +#, fuzzy +#~ msgid "Open service list and select next channel" +#~ msgstr "i wybierz kolejny kanaÅ‚" + +#, fuzzy +#~ msgid "Open service list and select previous channel" +#~ msgstr "i wybierz poprzedni kanaÅ‚." + +#, fuzzy +#~ msgid "Press '0' to toggle internal/external PiP." +#~ msgstr "WciÅ›nij '0' aby przeÅ‚Ä…czać tryby PiP" + +# +#, fuzzy +#~ msgid "Remove timer" +#~ msgstr "UsuÅ„ tytuÅ‚" + +# +#, fuzzy +#~ msgid "Send DiSEqC" +#~ msgstr "DiSEqC" + +#, fuzzy +#~ msgid "Shutdown after current event" +#~ msgstr "Przejdź w tryb czuwania po bieżącym wydarzeniu" + +# +#, fuzzy +#~ msgid "Shutdown in " +#~ msgstr "WyÅ‚Ä…cz" + +# +#, fuzzy +#~ msgid "Switch next channel" +#~ msgstr "PrzeÅ‚Ä…cz na nastÄ™pny kanaÅ‚" + +#~ msgid "Toggle InfoBar" +#~ msgstr "WyÅ›wietl / ukryj pasek info" + +#, fuzzy +#~ msgid "Tuning step size" +#~ msgstr "Rozmiar kroku obrotu" + +# +#, fuzzy +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Komenda DiSEqC 1.0" + +#~ msgid "When enabled the arrow buttons around the OK button will follow the neutrino style zap controls instead of the enigma2 style." +#~ msgstr "Gdy wÅ‚Ä…czone, strzaÅ‚ki wokół przycisku OK na pilocie bÄ™dÄ… zachowywać siÄ™ jak w neutrino." + +#, fuzzy +#~ msgid "Your receiver will shutdown due to inactivity." +#~ msgstr "Odbiornik przejdzie w tryb czuwania z powodu bezczynnoÅ›ci" + +#, fuzzy +#~ msgid "Your receiver will shutdown due to the sleeptimer." +#~ msgstr "Sleeptimer przeÅ‚Ä…czy odbiornik w tryb czuwania" + +#, fuzzy +#~ msgid "tuner is not supported" +#~ msgstr "Tuner nieobsÅ‚ugiwany" diff --git a/po/pt.po b/po/pt.po new file mode 100644 index 0000000..2658b72 --- /dev/null +++ b/po/pt.po @@ -0,0 +1,9775 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: enigma2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2012-04-03 22:30-0000\n" +"Last-Translator: Phenom <phenomxy@gmail.com>\n" +"Language-Team: Muaitai <muaitai@gmail.com>\n" +"Language: 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-Poedit-Country: PORTUGAL\n" +"X-Poedit-SourceCharset: iso-8859-15\n" + +# +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"Opções avançadas." + +# +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"Depois de carregar OK, aguarde por favor!" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" + +# +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"Editar o endereço da fonte de actualização." + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" + +# +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"Prima OK para continuar." + +# +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"Restaurar os backups por data." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" + +# +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"Procurar extensões locais e instalá-las." + +# +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Selecione o dispositivo para backup.\n" +"Dispositivo actual:" + +# +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"Ver, instalar e remover pacotes instalados ou disponíveis." + +msgid " (PiP)" +msgstr " (PiP)" + +msgid " (Radio)" +msgstr " (Radio)" + +msgid " (TV)" +msgstr " (TV)" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +# +msgid " extensions." +msgstr "extenções." + +msgid " ms" +msgstr "ms" + +# +msgid " packages selected." +msgstr "pacotes selecionados." + +# +msgid " updates available." +msgstr "actualizações desponiveis." + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "%2d:%02d" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "%2d:%02d:%02d" + +msgid "%A %d %B" +msgstr "" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "%A %e %B" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "%A %e %B %Y" + +# +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "%a %e/%m" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "%a %e/%m %-H:%M" + +# +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, fuzzy, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "%d serviços encontrados!" +msgstr[1] "%d serviços encontrados!" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d hora" +msgstr[1] "%d horas" + +# +#, fuzzy, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d tarefas estão a decorrer no background!" +msgstr[1] "%d tarefas estão a decorrer no background!" + +# +#, python-format +msgid "%d min" +msgstr "%d min" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minuto" +msgstr[1] "%d minutos" + +#, python-format +msgid "%d minutes" +msgstr "%d minutos" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d segundo" +msgstr[1] "%d segundos" + +#, fuzzy, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "Pasta raíz" +msgstr[1] "Pasta raíz" + +# +#, fuzzy, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "1 rede sem fios encontrada!" +msgstr[1] "1 rede sem fios encontrada!" + +#, fuzzy +msgid "%d-%b-%Y %-H:%M" +msgstr "%a %e/%m %-H:%M" + +msgid "%d-%m" +msgstr "" + +# +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "%k:%M %e/%m" + +# +#, fuzzy, python-format +msgid "%s %s free disk space" +msgstr "Espaço livre" + +# +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "" + +# +#, fuzzy, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "actualizações desponiveis." +msgstr[1] "actualizações desponiveis." + +#, python-format +msgid "%s%d min" +msgstr "" + +#, python-format +msgid "%s/%s: %s" +msgstr "" + +# +msgid "(ZAP)" +msgstr "(ZAP)" + +# +msgid "(empty)" +msgstr "(vazio)" + +# +msgid "(show optional DVD audio menu)" +msgstr "(mostrar menu audio opcional do DVD)" + +# +msgid "* Only available if more than one interface is active." +msgstr "* Só disponivél se houver mais que um interface activo." + +msgid "/s" +msgstr "" + +msgid "0" +msgstr "" + +msgid "1" +msgstr "" + +msgid "1.0" +msgstr "" + +msgid "1.1" +msgstr "" + +msgid "1.2" +msgstr "" + +# +msgid "12V output" +msgstr "saída 12V" + +msgid "13 V" +msgstr "" + +msgid "16:10" +msgstr "" + +# +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +# +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +msgid "16:9" +msgstr "" + +# +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +# +msgid "16:9 always" +msgstr "16:9 Sempre" + +msgid "18 V" +msgstr "" + +msgid "2" +msgstr "" + +msgid "23.976" +msgstr "" + +msgid "24" +msgstr "" + +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +msgid "3" +msgstr "" + +msgid "30" +msgstr "" + +# +msgid "3d mode" +msgstr "modo 3D" + +msgid "4" +msgstr "" + +msgid "4:3" +msgstr "" + +# +msgid "4:3 Letterbox" +msgstr "4:3 pal plus" + +# +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +msgid "5" +msgstr "" + +msgid "6" +msgstr "" + +msgid "7" +msgstr "" + +msgid "8" +msgstr "" + +msgid "9" +msgstr "" + +#, python-format +msgid ": %s" +msgstr "" + +# +msgid "<Current movielist location>" +msgstr "<Localização actual da lista de gravações>" + +# +msgid "<Default movie location>" +msgstr "<Localização padrão>" + +# +msgid "<Last timer location>" +msgstr "<Ultima localização de gravação>" + +# +msgid "<unknown>" +msgstr "<desconhecido>" + +msgid "??" +msgstr "" + +msgid "A" +msgstr "" + +# +#, fuzzy, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"Alguns ficheiros (%s) foram alterados depois da instalação.\n" +"Deseja manter a sua configuração?" + +# +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"Alguns ficheiros (%s) foram alterados depois da instalação.\n" +"Deseja manter a sua configuração?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +# +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "Um EPG gráfico para uma lista de favoritos" + +# +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"Iniciou a gravação de:\n" +"%s" + +# +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"A gravação está a decorrer\n" +"O que deseja fazer?" + +# +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "Uma gravação está a decorrer.Por favor páre a gravação antes de tentar configurar o posicionador" + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "Uma gravação está em progresso. Por favor páre antes de tentar uma busca." + +# +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "Uma gravação está a decorrer.Por favor páre a gravação antes de iniciar a busca de satelites" + +# +#, python-format +msgid "A required tool (%s) was not found." +msgstr "Uma ferramenta necessária (%s) não foi encontrada." + +# +msgid "A search for available updates is currently in progress." +msgstr "Está a decorrer uma pesquisa por actualizações disponíveis." + +# +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"Um segundo interface configurado foi encontrado.\n" +"\n" +"Deseja desabilitar o segubdo interface de rede? " + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +# +msgid "A small overview of the available icon states and actions." +msgstr "Uma pequena amostra dos disponíveis estados de ícones e acções." + +# +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"Uma gravação agendada falhou!\n" +"Tentar de novo?\n" + +# +#, fuzzy +msgid "A/V settings" +msgstr "Definições A/V" + +msgid "AC3/DTS downmix" +msgstr "Downmix AC3/DTS" + +# +msgid "Abort" +msgstr "Abortar" + +# +msgid "About" +msgstr "Sobre" + +# +msgid "About..." +msgstr "Sobre..." + +# +msgid "Accesspoint:" +msgstr "Pono de Acesso:" + +# +msgid "Action on long powerbutton press" +msgstr "Acção ao premir longo do botão power" + +# +msgid "Action on short powerbutton press" +msgstr "Acção ao curto primir do botão desligar" + +# +msgid "Activate Picture in Picture" +msgstr "Activar Imagem na Imagem" + +# +#, fuzzy +msgid "Activate current configuration" +msgstr "activar configuração actual" + +# +msgid "Activate network settings" +msgstr "Activar definições de rede" + +# +#, fuzzy +msgid "Activate the configured network settings." +msgstr "Activar definições de rede" + +# +msgid "Adapter settings" +msgstr "Opções de Adaptador" + +# +msgid "Add" +msgstr "Adicionar" + +# +msgid "Add Bookmark" +msgstr "Adicionar Marcador" + +# +msgid "Add a mark" +msgstr "Adicionar marca" + +# +#, fuzzy +msgid "Add a nameserver entry" +msgstr "adicionar servidor de DNS" + +# +msgid "Add a new title" +msgstr "Adicionar novo titulo" + +# +#, fuzzy +msgid "Add bookmark" +msgstr "adicionar marcador" + +# +#, fuzzy +msgid "Add directory to playlist" +msgstr "adicionar pasta à lista" + +# +#, fuzzy +msgid "Add file to playlist" +msgstr "adicionar ficheiro á lista" + +# +#, fuzzy +msgid "Add files to playlist" +msgstr "adicionar á lista de reprodução" + +#, fuzzy +msgid "Add more details to the crash log" +msgstr "Criar relatório de erros mais detalhados" + +# +#, fuzzy +msgid "Add provider" +msgstr "adicionar Provider" + +# +#, fuzzy +msgid "Add recording (enter recording duration)" +msgstr "Iniciar gravação (inserir tempo de gravção)" + +# +#, fuzzy +msgid "Add recording (enter recording endtime)" +msgstr "adicionar gravação ( introduza o tempo final)" + +# +#, fuzzy +msgid "Add recording (indefinitely)" +msgstr "Iniciar gravação (indefinido)" + +# +#, fuzzy +msgid "Add recording (stop after current event)" +msgstr "Iniciar gravação (terminar no final deste programa) " + +# +#, fuzzy +msgid "Add service" +msgstr "adicionar Service" + +# +msgid "Add timer" +msgstr "Gravar" + +# +msgid "Add title" +msgstr "Adicionar título" + +# +msgid "Add to bouquet" +msgstr "Adicionar aos Bouquets" + +# +msgid "Add to favourites" +msgstr "Adicionar aos favoritos" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "Ajustar opções 3D" + +# +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "Ajuste as cores para que as sombras fiquem visiveis, mas apareçam o mais saturado possivel. Se estiver satisfeito com o resultado, carregue OK para sair, ou use as teclas com números para selecionar outros Ecrãs." + +msgid "Advanced" +msgstr "" + +# +#, fuzzy +msgid "Advanced options" +msgstr "Opções Avançadas" + +# +msgid "Advanced restore" +msgstr "Restauro avançado" + +# +#, fuzzy +msgid "Advanced software" +msgstr "Software Avançado" + +# +#, fuzzy +msgid "Advanced software plugin" +msgstr "Plugin de Software Avançado" + +# +#, fuzzy +msgid "Advanced video enhancement setup" +msgstr "Opções de Imagem avançadas" + +# +#, fuzzy +msgid "Advanced video setup" +msgstr "Definições de Video Avançadas" + +# +msgid "After event" +msgstr "Depois do evento" + +# +msgid "Album" +msgstr "Album" + +msgid "Alignment of events" +msgstr "" + +msgid "Alignment of service names" +msgstr "" + +# +msgid "All" +msgstr "Todos" + +msgid "All ages" +msgstr "" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "" + +msgid "Allocate unused memory index" +msgstr "" + +msgid "Allow quit movieplayer with exit" +msgstr "" + +#, fuzzy +msgid "Allow subtitle language to equal audio language" +msgstr "Permitir legendas iguais ao audio" + +#, fuzzy +msgid "Allow subtitles for hearing impaired" +msgstr "Permitir audiodescrição" + +# +msgid "Alpha" +msgstr "Alpha" + +# +#, fuzzy +msgid "Alternative" +msgstr "adicionar alternativas" + +# +#, fuzzy +msgid "Alternative numbering mode" +msgstr "Modo radio alternativo" + +# +msgid "Alternative services tuner priority" +msgstr "Prioridade dos serviços do Tuner" + +msgid "Always ask" +msgstr "Perguntar sempre" + +msgid "Always hide infobar" +msgstr "" + +# +msgid "An empty filename is illegal." +msgstr "Um ficheiro vazio é ilegal." + +# +#, fuzzy +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "Ocurreu um erro ao fazer o download da lista de pacotes. Por favor tente de novo." + +# +msgid "An unknown error occurred!" +msgstr "Ocorreu um erro desconhecido!" + +msgid "And will put your receiver in standby over " +msgstr "" + +msgid "Any activity" +msgstr "Qualquer actividade" + +# +msgid "Arabic" +msgstr "Arabe" + +msgid "Are you sure to remove this entry?" +msgstr "" + +# +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"Tem a certeza que quer activar esta configuração de rede?\n" +"\n" + +# +#, fuzzy +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"Tem a certeza que quer apagar\n" +"este backup:\n" + +# +msgid "Are you sure you want to exit this wizard?" +msgstr "Tem a certeza que quer sair deste wizard?" + +# +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"Tem a certeza que quer reiniciar o interface de rede?\n" +"\n" + +# +#, fuzzy, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Tem a certeza que quer restaurar o backup de Enigma2?\n" +"O Enigma2 vai reiniciar depois do restauro" + +# +#, fuzzy +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Tem a certeza que quer restaurar o backup de Enigma2?\n" +"O Enigma2 vai reiniciar depois do restauro" + +# +msgid "Artist" +msgstr "Artista" + +msgid "Arts/Culture" +msgstr "" + +# +msgid "Ask user" +msgstr "Consultar Utilizador" + +# +#, fuzzy +msgid "Aspect ratio" +msgstr "Aspect Ratio" + +# +#, fuzzy +msgid "Assigned CAIds:" +msgstr "CAIds atribuídos:" + +# +#, fuzzy +msgid "Assigned services/provider:" +msgstr "Services/Provider atribuídos:" + +#, fuzzy +msgid "At beginning" +msgstr "no inicio" + +#, fuzzy +msgid "At end" +msgstr "no fim" + +# +msgid "Audio" +msgstr "Audio" + +msgid "Audio PID" +msgstr "" + +msgid "Audio language selection 1" +msgstr "Idioma de audio 1" + +msgid "Audio language selection 2" +msgstr "Idioma de audio 2" + +msgid "Audio language selection 3" +msgstr "Idioma de audio 3" + +msgid "Audio language selection 4" +msgstr "Idioma de audio 4" + +# +#, fuzzy +msgid "Audio options..." +msgstr "Opções de Audio" + +# +#, fuzzy, python-format +msgid "Audio track (%s) format" +msgstr "faixa de audio (%s) formato" + +# +#, fuzzy, python-format +msgid "Audio track (%s) language" +msgstr "faixa de audio (%s) linguagem" + +# +msgid "Author: " +msgstr "Autor:" + +# +msgid "Authoring mode" +msgstr "modo de criação" + +# +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Auto" + +# +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Auto separação de capítulos ? minutos(0=nunca)" + +# +msgid "Auto flesh" +msgstr "Matéria auto" + +msgid "Auto focus" +msgstr "Auto focagem" + +msgid "Auto focus commencing ..." +msgstr "A iniciar auto focagem ..." + +msgid "Auto language selection" +msgstr "Selecção de Idioma Auto" + +# +msgid "Auto scart switching" +msgstr "UsarAuto Scart" + +# +msgid "Automatic" +msgstr "Automatico" + +# +#, fuzzy +msgid "Automatic scan" +msgstr "Busca automatica" + +msgid "Automatically start timeshift after" +msgstr "" + +msgid "Automatically turn on external subtitles" +msgstr "" + +# +msgid "Available format variables" +msgstr "Formato de variaveis disponíveis" + +msgid "B" +msgstr "" + +msgid "BER" +msgstr "" + +msgid "BER:" +msgstr "" + +# +msgid "Back" +msgstr "Voltar" + +# +msgid "Background" +msgstr "Fundo" + +# +#, fuzzy +msgid "Background color" +msgstr "cor de fundo" + +msgid "Background delete option" +msgstr "Apagar em segundo plano" + +msgid "Background delete speed" +msgstr "Velocidade ao apagar em segundo plano" + +# +#, fuzzy +msgid "Backup completed." +msgstr "Backup falhou!" + +# +msgid "Backup failed." +msgstr "Backup falhou!" + +# +msgid "Backup is running..." +msgstr "Backup a decorrer..." + +# +msgid "Backup system settings" +msgstr "Fazer backup das configurações do sistema" + +# +msgid "Band" +msgstr "Banda" + +# +msgid "Bandwidth" +msgstr "Largura de Banda" + +msgid "Basque" +msgstr "Basco" + +# +msgid "Begin time" +msgstr "Tempo de inicio" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +# +msgid "Behavior of 0 key in PiP-mode" +msgstr "comportamento da tecla 0 no modo PiP" + +# +msgid "Behavior when a movie is started" +msgstr "Comportamento ao iniciar um Filme" + +# +msgid "Behavior when a movie is stopped" +msgstr "Comportamento ao parar o Filme" + +# +msgid "Behavior when a movie reaches the end" +msgstr "Comportamento do Filme ao Terminar" + +msgid "Big PiP" +msgstr "" + +msgid "Bitrate:" +msgstr "" + +# +msgid "Black screen" +msgstr "Ecrã preto" + +msgid "Black screen till locked" +msgstr "Ecrã preto até trancar" + +# +msgid "Block noise reduction" +msgstr "Bloquear a redução de ruído" + +# +msgid "Blue boost" +msgstr "Boost Azul" + +# +msgid "Bookmarks" +msgstr "Marcadores" + +# +msgid "Brightness" +msgstr "Brilho" + +msgid "Bulgarian" +msgstr "Bulgaro" + +# +msgid "Burn DVD" +msgstr "Gravar DVD" + +# +#, fuzzy, python-format +msgid "Burn audio track (%s)" +msgstr "gravar faixa de audio (%s)" + +# +msgid "Burn existing image to DVD" +msgstr "Gravar imagen existente para DVD" + +msgid "Burn to DVD" +msgstr "Gravar DVD" + +msgid "Bus: " +msgstr "" + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "" + +msgid "C" +msgstr "" + +# +msgid "C-Band" +msgstr "Banda C" + +msgid "CH" +msgstr "" + +# +msgid "CI assignment" +msgstr "Escolha de CI" + +msgid "CVBS" +msgstr "" + +# +msgid "Cable" +msgstr "Cabo" + +msgid "Cable Scan" +msgstr "Busca Cabo" + +# +#, fuzzy +msgid "Cache thumbnails" +msgstr "Cache Thumbnails" + +msgid "Calculate" +msgstr "Calcular" + +msgid "Calculate all positions" +msgstr "Calcular todas as posições" + +msgid "Calculation complete" +msgstr "Calculação completa" + +msgid "Calibrate" +msgstr "Calibrar" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "" + +# +msgid "Cancel" +msgstr "Cancelar" + +msgid "Cannot determine" +msgstr "Impossivél determitar" + +msgid "Cannot find any signal ..., aborting !" +msgstr "Sem sinal ..., a abortar !" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "Impossível mover os ficheiros " + +msgid "Cannot move to trash can" +msgstr "Impossível apagar" + +# +msgid "Capacity: " +msgstr "Capacidade" + +# +msgid "Card" +msgstr "Cartão" + +msgid "Cascade PiP" +msgstr "" + +#, fuzzy +msgid "Center DVB subtitles" +msgstr "Legendas DVB centradas" + +msgid "Center time-labels and remove date" +msgstr "" + +# +msgid "Change bouquets in quickzap" +msgstr "Muda de bouquets no zap rápido" + +# +msgid "Change pin code" +msgstr "Alterar o PIN" + +# +#, fuzzy +msgid "Change recording (duration)" +msgstr "alterar a gravação (duração)" + +# +#, fuzzy +msgid "Change recording (endtime)" +msgstr "mudar na gravação (tempo final)" + +msgid "Change repeat and delay settings?" +msgstr "Mudar as configurações de repetição e atraso?" + +msgid "Change service PIN" +msgstr "Mudar o PIN do serviço" + +msgid "Change service PINs" +msgstr "Mudar os PINs do serviço" + +msgid "Change setup PIN" +msgstr "Mudar o PIN das configurações" + +# +msgid "Change step size" +msgstr "Mudar o tamanho do passo" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "Registo de actividade" + +# +msgid "Channel" +msgstr "Canal" + +# +#, fuzzy +msgid "Channel list type" +msgstr "Menu da Lista de Canais" + +# +msgid "Channel not in services list" +msgstr "O canal não está na lista de serviços" + +# +#, fuzzy +msgid "Channel selection" +msgstr "Selecção de Canal" + +# +msgid "Channel:" +msgstr "Canal" + +# +msgid "Channellist menu" +msgstr "Menu da Lista de Canais" + +# +msgid "Chap." +msgstr "cap." + +# +msgid "Chapter" +msgstr "Capítulo" + +# +msgid "Chapter:" +msgstr "Capítulo:" + +# +msgid "Check" +msgstr "Verificar" + +msgid "Check the internet connection" +msgstr "" + +msgid "Check the internet connection again" +msgstr "" + +# +#, fuzzy +msgid "Checking filesystem..." +msgstr "Verificar sistema de ficheiros" + +msgid "Checking the internet connection" +msgstr "" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" + +msgid "Children/Youth" +msgstr "" + +msgid "Choose which tuner to configure." +msgstr "" + +# +msgid "Circular left" +msgstr "Circular esquerda" + +# +msgid "Circular right" +msgstr "Circular direita" + +# +msgid "Cleanup" +msgstr "Limpar" + +msgid "Clear" +msgstr "Limpar" + +# +msgid "Clear before scan" +msgstr "Eliminar antes da Busca" + +msgid "Clear fixed" +msgstr "Limpar fixo" + +# +msgid "Clear log" +msgstr "Limpar registo" + +# +#, fuzzy +msgid "Clear playlist" +msgstr "Limpar lista" + +# +msgid "Close" +msgstr "Fechar" + +msgid "Close PiP on exit" +msgstr "" + +# +msgid "Close title selection" +msgstr "Fechar a selecção de título" + +msgid "Code rate HP" +msgstr "Rate de código HP" + +msgid "Code rate LP" +msgstr "Rate de código LP" + +# +msgid "Coderate HP" +msgstr "Coderate HP" + +# +msgid "Coderate LP" +msgstr "Coderate LP" + +# +msgid "Collection name" +msgstr "Nome da coleção" + +# +msgid "Collection settings" +msgstr "Definições da coleção" + +# +#, fuzzy +msgid "Color format" +msgstr "Formato da cor" + +# +msgid "Command execution..." +msgstr "Execução de comando..." + +# +msgid "Command order" +msgstr "Ordem de comando" + +# +msgid "Common Interface" +msgstr "Interface Comum" + +# +#, fuzzy +msgid "Common Interface assignment" +msgstr "Escolha do Interface Comum" + +# +msgid "Communication" +msgstr "Comunicação" + +# +#, fuzzy +msgid "Compact flash" +msgstr "Compact Flash" + +# +msgid "Complete" +msgstr "Completo" + +# +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "Complexo (permite misturar faixas de audio e aspetos)" + +msgid "Composition of the recording filenames" +msgstr "Composição do nome das gravações" + +# +#, fuzzy +msgid "Configuration mode" +msgstr "Modo de configuração" + +# +#, fuzzy, python-format +msgid "Configuration mode: %s" +msgstr "Modo de configuração" + +# +#, fuzzy +msgid "Configuration..." +msgstr "Configuração de Rede..." + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "" + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "" + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "" + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "" + +msgid "Configure how recording filenames are constructed." +msgstr "" + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +# +msgid "Configure interface" +msgstr "Configurar interface" + +# +msgid "Configure nameservers" +msgstr "Configurar servidor DNS" + +msgid "Configure on which devices the background delete option should be used." +msgstr "" + +#, fuzzy +msgid "Configure remote control type" +msgstr "comando de dreambox (nativo)" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "" + +# +#, fuzzy +msgid "Configure the IP address." +msgstr "Configurar interface" + +msgid "Configure the aspect ratio of the screen." +msgstr "" + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +# +#, fuzzy +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "Comportamento ao parar o Filme" + +# +#, fuzzy +msgid "Configure the behavior when movie playback is started." +msgstr "Comportamento ao iniciar um Filme" + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "" + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "" + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "" + +msgid "Configure the brightness level of the front panel display." +msgstr "" + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "" + +msgid "Configure the color of the teletext subtitles." +msgstr "" + +msgid "Configure the contrast level of the front panel display." +msgstr "" + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "" + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "" + +msgid "Configure the first audio language (highest priority)." +msgstr "" + +msgid "Configure the first subtitle language (highest priority)." +msgstr "" + +msgid "Configure the font size of the subtitles." +msgstr "" + +msgid "Configure the fourth audio language." +msgstr "" + +# +#, fuzzy +msgid "Configure the fourth subtitle language." +msgstr "mudar para a proxima lingua de legenda" + +msgid "Configure the function of a long press on the power button." +msgstr "" + +msgid "Configure the function of a short press on the power button." +msgstr "" + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "" + +# +#, fuzzy +msgid "Configure the gateway." +msgstr "Configurar interface" + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "" + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "" + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "" + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "" + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "" + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "" + +msgid "Configure the latitude of your location." +msgstr "" + +msgid "Configure the longitude of your location." +msgstr "" + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "" + +# +#, fuzzy +msgid "Configure the nameserver (DNS)." +msgstr "Configurar servidor DNS" + +# +#, fuzzy +msgid "Configure the netmask." +msgstr "Configurar interface" + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "" + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "" + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "" + +#, fuzzy +msgid "Configure the possible fast forward speeds." +msgstr "Velocidade de avançar inicial" + +msgid "Configure the possible rewind speeds." +msgstr "" + +msgid "Configure the primary EPG language." +msgstr "" + +msgid "Configure the refresh rate of the screen." +msgstr "" + +msgid "Configure the screen resolution in PC output mode." +msgstr "" + +msgid "Configure the second audio language." +msgstr "" + +# +#, fuzzy +msgid "Configure the second subtitle language." +msgstr "mudar para a proxima lingua de legenda" + +msgid "Configure the secondary EPG language." +msgstr "" + +msgid "Configure the sharpness of the video scaling." +msgstr "" + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "" + +# +#, fuzzy +msgid "Configure the slow motion speeds." +msgstr "Velocidades do modo camera lenta" + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "" + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "" + +msgid "Configure the third audio language." +msgstr "" + +# +#, fuzzy +msgid "Configure the third subtitle language." +msgstr "mudar para a proxima lingua de legenda" + +msgid "Configure the transparency of the OSD." +msgstr "" + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "" + +# +#, fuzzy +msgid "Configure the tuner mode." +msgstr "Modo de configuração" + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "" + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "" + +msgid "Configure the video output mode (or resolution)." +msgstr "" + +msgid "Configure the way in which the receiver changes channels." +msgstr "" + +msgid "Configure where completed timers show up in the timer list." +msgstr "" + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "" + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "" + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "" + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "" + +msgid "Configure which color format should be used on the SCART output." +msgstr "" + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "" + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "" + +# +msgid "Configure your internal LAN" +msgstr "Configure a sua rede LAN interna" + +# +msgid "Configure your network again" +msgstr "Configure a sua rede outra vez" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "Configure as opções de rede, prima OK para iniciar a busca" + +# +msgid "Configure your wireless LAN again" +msgstr "Configure a sua rede sem fios outra vez" + +msgid "Configures which video output connector will be used." +msgstr "" + +# +msgid "Configuring" +msgstr "A configurar" + +# +msgid "Conflicting timer" +msgstr "Conflito de gravações" + +# +msgid "Connect" +msgstr "Ligar" + +# +#, fuzzy +msgid "Connect to a wireless network" +msgstr "Ligar a Rede Wireless" + +msgid "Connected satellites" +msgstr "" + +# +msgid "Connected to" +msgstr "Ligado a" + +# +msgid "Connected!" +msgstr "Ligado!" + +# +msgid "Constellation" +msgstr "Constelação" + +# +msgid "Content does not fit on DVD!" +msgstr "O contiudo não cabe no DVD!" + +msgid "Continue" +msgstr "Continuar" + +# +msgid "Continue in background" +msgstr "Continuar em segundo plano" + +# +#, fuzzy +msgid "Continue playback" +msgstr "Continuar a reproduzir" + +# +msgid "Continue playing" +msgstr "Continuar a reproduzir" + +msgid "Continues play (loop)" +msgstr "" + +# +msgid "Contrast" +msgstr "Contraste" + +#, fuzzy +msgid "Convert ext3 filesystem to ext4" +msgstr "Converte o sitema de ficheiros ext3 em ext4" + +msgid "Convert ext3 to ext4" +msgstr "Converter ext3 em ext4" + +#, fuzzy +msgid "Converting ext3 to ext4..." +msgstr "Converter ext3 em ext4..." + +msgid "Copy" +msgstr "Copiar" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "" + +msgid "Could not find installed channel list." +msgstr "" + +# +#, fuzzy +msgid "Could not load medium! No disc inserted?" +msgstr "Foi impossível carregar a media! Disco não inserido?" + +# +msgid "Could not open Picture in Picture" +msgstr "Foi impossível abrir o PiP" + +# +#, fuzzy, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "Foi impossível grvar devido a um conflito de gravações %s" + +#, fuzzy, python-format +msgid "Could not record due to invalid service %s" +msgstr "Foi impossível grvar devido ao canal não ser valido %s" + +# +msgid "Create DVD-ISO" +msgstr "Criar DVD-ISO" + +msgid "Create more detailed crash log" +msgstr "Criar relatório de erros mais detalhados" + +# +#, python-format +msgid "Creating directory %s failed." +msgstr "A criação da pasta %s falhou." + +#, fuzzy +msgid "Creating filesystem" +msgstr "Criar sistema de ficheiros" + +#, fuzzy +msgid "Creating partition" +msgstr "Criar Partição" + +# +msgid "Croatian" +msgstr "Croata" + +msgid "Current CEC address" +msgstr "Endereço actual de CEC" + +msgid "Current device: " +msgstr "Dispositivo actual:" + +msgid "Current event EPG" +msgstr "" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +# +msgid "Current settings:" +msgstr "Definições actuais:" + +# +#, fuzzy +msgid "Current transponder" +msgstr "Transponder actual" + +# +msgid "Current value: " +msgstr "Valor Actual:" + +# +msgid "Current version:" +msgstr "Versão instalada" + +msgid "Currently installed image" +msgstr "Imagem instalada actualmente" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +# +#, fuzzy +msgid "Custom skip time for '1'/'3' buttons" +msgstr "Tempo definido pelo utilizador, teclas- '1'/'3'" + +# +#, fuzzy +msgid "Custom skip time for '4'/'6' buttons" +msgstr "Definir o tempo para as teclas '4'/'6'" + +# +#, fuzzy +msgid "Custom skip time for '7'/'9' buttons" +msgstr "Definir o tempo para as teclas '7'/'9'" + +# +msgid "Customize" +msgstr "Personalizar" + +msgid "Customize channel list cursor behavior" +msgstr "" + +# +msgid "Cut" +msgstr "Cortar" + +# +msgid "Cutlist editor..." +msgstr "Editor de corte das listas" + +# +msgid "Czech" +msgstr "Checo" + +msgid "D" +msgstr "" + +msgid "DHCP" +msgstr "" + +# +#, fuzzy +msgid "DMM advanced" +msgstr "Avançados" + +#, fuzzy +msgid "DMM normal" +msgstr "normal" + +# +msgid "DUAL LAYER DVD" +msgstr "DVD de dupla face" + +msgid "DVB subtitle black transparency" +msgstr "Transparência do preto das legendas dvb" + +msgid "DVB-C" +msgstr "" + +msgid "DVB-C ANNEX C" +msgstr "" + +# +msgid "DVB-S" +msgstr "DVB-S" + +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "" + +msgid "DVB-T2" +msgstr "" + +msgid "DVD data format" +msgstr "Formato do DVD" + +# +#, fuzzy +msgid "DVD file browser" +msgstr "Explorador de fecheiros do DVD" + +# +msgid "DVD media toolbox" +msgstr "Ferramentas de media do DVD" + +# +#, fuzzy +msgid "DVD player" +msgstr "Reprodutor de DVD" + +# +#, fuzzy +msgid "DVD titlelist" +msgstr "Lista de títulos do DVD" + +# +msgid "Danish" +msgstr "Dinamarquês" + +# +msgid "Date" +msgstr "Data" + +# +#, fuzzy +msgid "Date/time input" +msgstr "Introduzir a Hora/Data" + +# +#, fuzzy +msgid "Deep standby" +msgstr "Desligar" + +# +msgid "Default" +msgstr "Padrão" + +# +msgid "Default movie location" +msgstr "Localização padrão das gravações" + +# +#, fuzzy +msgid "Default settings" +msgstr "Configurações Padrão" + +msgid "Delay before key repeat starts:" +msgstr "Atraso antes da repetição da tecla:" + +msgid "Delay for external subtitles" +msgstr "" + +# +msgid "Delete" +msgstr "Apagar" + +# +msgid "Delete entry" +msgstr "Apagar" + +# +msgid "Delete failed!" +msgstr "Falhou o apagar" + +# +#, fuzzy +msgid "Delete file" +msgstr "apagar ficheiro" + +# +#, fuzzy +msgid "Delete playlist entry" +msgstr "apagar entradads na lista" + +# +#, fuzzy +msgid "Delete saved playlist" +msgstr "apagar lista gravada" + +msgid "Delete timer" +msgstr "" + +# +#, fuzzy +msgid "Delete..." +msgstr "eliminar..." + +msgid "Deleted" +msgstr "Apagado" + +msgid "Deleted items" +msgstr "Gravações Apagadas" + +msgid "Depth" +msgstr "Profundidade" + +msgid "Descramble http streams" +msgstr "Descodificar streams http" + +# +msgid "Description" +msgstr "Descrição" + +# +msgid "Deselect" +msgstr "Deselecionar" + +msgid "Details for plugin: " +msgstr "Detalhes do plugin:" + +# +msgid "Detected HDD:" +msgstr "Disco rígido detectado:" + +# +msgid "Detected NIMs:" +msgstr "NIMs detectado:" + +msgid "Devicename:" +msgstr "Dispositivo:" + +msgid "Devide" +msgstr "" + +msgid "DiSEqC" +msgstr "" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +msgid "DiSEqC A/B" +msgstr "" + +msgid "DiSEqC A/B/C/D" +msgstr "" + +# +msgid "DiSEqC mode" +msgstr "Modo DiSEqC" + +# +#, fuzzy, python-format +msgid "DiSEqC port %s: %s" +msgstr "Repetições DiSEqC" + +# +#, fuzzy +msgid "DiSEqC-tester settings" +msgstr "DiSEqC-Configurações de teste" + +# +msgid "Dialing:" +msgstr "Marcação:" + +# +msgid "Digital contour removal" +msgstr "Remoção de contorno digital" + +# +msgid "Direct playback of linked titles without menu" +msgstr "Reprodução directa de títulos ligados sem menu" + +msgid "Directory" +msgstr "Pasta" + +# +#, fuzzy, python-format +msgid "Directory %s does not exist." +msgstr "A pasta %s não existe." + +#, python-format +msgid "Directory %s nonexistent." +msgstr "" + +# +msgid "Directory browser" +msgstr "Explorador de pastas" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "" + +#, fuzzy, python-format +msgid "Directory contains %s and %s." +msgstr "A pasta contem %d ficheiro(s) e %d sub-pastas.\n" + +# +msgid "Disable" +msgstr "Desabilitar" + +# +msgid "Disable Picture in Picture" +msgstr "Desabilitar Imagem na Imagem" + +msgid "Disable background scanning" +msgstr "Desactivar busca de segundo plano" + +msgid "Disable timer" +msgstr "" + +# +msgid "Disabled" +msgstr "Desabilitado" + +# +msgid "Disconnect" +msgstr "Desligado" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "Espaço reservado no disco para gravações (GB) " + +# +msgid "Display 16:9 content as" +msgstr "Mostrar 16:9 como" + +# +msgid "Display 4:3 content as" +msgstr "Mostrar 4:3 como" + +# +msgid "Display >16:9 content as" +msgstr "Mostrar 16:9 como" + +# +#, fuzzy +msgid "Display and userinterface" +msgstr "Ecrã e Interface de Utilizador" + +msgid "Display message before playing next movie" +msgstr "" + +# +#, fuzzy +msgid "Display setup" +msgstr "Definições do Display" + +# +#, fuzzy +msgid "Do not change" +msgstr "Não alterar" + +# +#, fuzzy +msgid "Do not record" +msgstr "não gravar" + +# +#, fuzzy +msgid "Do nothing" +msgstr "espere" + +# +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Deseja mesmo verificar o sistema de ficheiros?\n" +"Pode levar algum tempo!!!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" +"Deseja mesmo converter o sistema de ficheiros?\n" +"Depois não pode voltar atrás!" + +# +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Deseja mesmo apagar %s?" + +# +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"Deseja mesmo fazer o download\n" +"do plugin \"%s\"?" + +# +msgid "Do you really want to exit?" +msgstr "Deseja realmente sair?" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" +"Deseja mesmo iniciar o dispositivo?\n" +"Tudo contido no disco será perdido!" + +# +#, fuzzy, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"Deseja mesmo fazer o download\n" +"do plugin \"%s\"?" + +# +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Deseja mesmo remover a pasta %s do disco?" + +# +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Deseja mesmo remover o marcador de %s?" + +msgid "Do you want this?" +msgstr "" + +# +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Deseja gravar esta colecção para DVD?" + +# +msgid "Do you want to do a service scan?" +msgstr "Deseja fazer uma busca de canais?" + +# +msgid "Do you want to do another manual service scan?" +msgstr "Deseja fazer outra busca manual?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "Deseja fazer o download da imagem para %s ?" + +# +#, fuzzy +msgid "Do you want to install a channel list?" +msgstr "Deseja instalar o pacote:\n" + +# +msgid "Do you want to install the package:\n" +msgstr "Deseja instalar o pacote:\n" + +# +msgid "Do you want to play DVD in drive?" +msgstr "Deseja reproduzir o DVD inserido?" + +# +msgid "Do you want to preview this DVD before burning?" +msgstr "Deseja previsualizar este DVD antes de gravar?" + +msgid "Do you want to reboot your receiver?" +msgstr "" + +# +msgid "Do you want to remove the package:\n" +msgstr "Deseja remover o pacote:\n" + +# +msgid "Do you want to restore your settings?" +msgstr "Deseja fazer um restauro ás definições?" + +# +msgid "Do you want to resume this playback?" +msgstr "Deseja continuar?" + +#, fuzzy, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Deseja fazer o download da imagem para %s ?" + +msgid "Do you want to update your receiver?" +msgstr "" + +# +msgid "Do you want to upgrade the package:\n" +msgstr "Deseja actualizar o pacote:\n" + +# +msgid "Don't stop current event but disable coming events" +msgstr "Não parar o programa actual mas desbilitar novos programas" + +# +#, fuzzy, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "Terminado - Instalados, actualizados, ou removidos %d pacotes com %d erros" +msgstr[1] "Terminado - Instalados, actualizados, ou removidos %d pacotes com %d erros" + +msgid "Download" +msgstr "" + +#, fuzzy, python-format +msgid "Download %s from server" +msgstr "Download %s do Servidor" + +msgid "Download .NFI-files for USB-flasher" +msgstr "Download ficheiros .NFI para PEN Drive" + +# +#, fuzzy +msgid "Download plugins" +msgstr "Descarregar Plugins" + +# +msgid "Downloadable new plugins" +msgstr "Instalar plugins" + +# +msgid "Downloadable plugins" +msgstr "Plugins para descarregar" + +msgid "Downloading" +msgstr "" + +# +msgid "Downloading plugin information. Please wait..." +msgstr "A descarregar novos plugins. Por favor espere..." + +# +msgid "Dutch" +msgstr "Holandês" + +# +msgid "Dynamic contrast" +msgstr "Contraste dinâmico" + +msgid "E" +msgstr "" + +msgid "EPG" +msgstr "" + +msgid "EPG language selection 1" +msgstr "Idioma de EPG 1" + +msgid "EPG language selection 2" +msgstr "Idioma de EPG 2" + +# +#, fuzzy +msgid "EPG selection" +msgstr "Selecção do EPG" + +msgid "EPG settings" +msgstr "" + +# +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "ERRO - falha na busca (%s)!" + +# +msgid "East" +msgstr "Este" + +msgid "East limit set" +msgstr "Definir o limite a Este" + +# +msgid "Edit" +msgstr "Editar" + +# +msgid "Edit DNS" +msgstr "Editar o DNS" + +# +msgid "Edit bouquets list" +msgstr "Editar a lista de favoritos" + +# +msgid "Edit chapters of current title" +msgstr "Editar capítulos do título actual" + +# +msgid "Edit services list" +msgstr "Editar lista de canais" + +# +msgid "Edit settings" +msgstr "Editar defenições" + +# +#, fuzzy +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "sair da configuração do servidor de DNS" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "" + +msgid "Edit timer" +msgstr "" + +# +msgid "Edit title" +msgstr "Editar o título" + +# +msgid "Edit upgrade source url." +msgstr "Editar o url da fonte de actualização." + +msgid "Education/Science/..." +msgstr "" + +# +msgid "Electronic Program Guide" +msgstr "Electronic Program Guide" + +# +msgid "Enable" +msgstr "Activar" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +# +msgid "Enable 5V for active antenna" +msgstr "Activar saída de 5V para a antena" + +msgid "Enable EIT EPG" +msgstr "Activar EPG EIT" + +msgid "Enable MHW EPG" +msgstr "Activar EPG MHW" + +msgid "Enable Netmed EPG" +msgstr "Activar EPG Netmed" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "Activar EPG Viasat" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +#, fuzzy +msgid "Enable bouquet selection in multi-EPG" +msgstr "Mostrar o menu de selecção de favoritos" + +msgid "Enable freesat EPG" +msgstr "Activar EPG freesat" + +# +msgid "Enable multiple bouquets" +msgstr "Activar Bouquets multiplos" + +# +msgid "Enable parental control" +msgstr "Activar Controle Paternal" + +msgid "Enable teletext caching" +msgstr "Activar cache de teletexto" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +# +msgid "Enabled" +msgstr "Activar" + +# +msgid "Encrypted: " +msgstr "Encriptado:" + +# +msgid "Encryption" +msgstr "Encriptação" + +# +#, fuzzy +msgid "Encryption key" +msgstr "Chave de Encriptação" + +# +#, fuzzy +msgid "Encryption key type" +msgstr "Tipo de Chave de Encriptação" + +# +msgid "Encryption:" +msgstr "Encriptação:" + +# +msgid "End time" +msgstr "Tempo final" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +# +msgid "English" +msgstr "Inglês" + +#, fuzzy +msgid "Enigma2 skin selector" +msgstr "enigma2 e rede" + +# +msgid "Enter main menu..." +msgstr "Menu Principal" + +# +msgid "Enter pin code" +msgstr "Insira o codigo PIN" + +# +msgid "Enter the service pin" +msgstr "Introduzir o PIN" + +msgid "Equal to" +msgstr "" + +# +msgid "Error" +msgstr "Erro" + +msgid "Error code" +msgstr "Código de erro" + +# +msgid "Error executing plugin" +msgstr "Erro ao executar o plugin" + +# +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Erro: %s\n" +"Tentar de novoy?" + +# +msgid "Estonian" +msgstr "Estoniano" + +msgid "Ethernet network interface" +msgstr "Interface de rede ethernet" + +#, fuzzy +msgid "Event font size (relative to skin size)" +msgstr "Tamanho de Letra (relativo ao tamanho do tema)" + +# +#, fuzzy +msgid "Event view" +msgstr "Ver Evento" + +#, fuzzy +msgid "Event view menu" +msgstr "Menu de Eventos" + +msgid "Everywhere" +msgstr "Todo Lado" + +# +msgid "Exceeds dual layer medium!" +msgstr "É maior que a media de duapla face!" + +# +msgid "Execution finished!!" +msgstr "Terminado" + +# +#, fuzzy +msgid "Execution progress:" +msgstr "Progresso" + +msgid "Exif" +msgstr "" + +# +msgid "Exit" +msgstr "Sair" + +msgid "Exit EPG" +msgstr "Sair do EPG" + +# +msgid "Exit editor" +msgstr "Sair do Editor" + +msgid "Exit input device selection." +msgstr "Sair da selecção de dispositivos de entrada" + +msgid "Exit media player?" +msgstr "" + +# +#, fuzzy +msgid "Exit mediaplayer" +msgstr "Saír do mediaplayer" + +# +#, fuzzy +msgid "Exit movie list" +msgstr "Saír da lista de filmes" + +# +#, fuzzy +msgid "Exit movie player?" +msgstr "Saír do mediaplayer" + +# +#, fuzzy +msgid "Exit nameserver configuration" +msgstr "sair da configuração do servidor de DNS" + +# +#, fuzzy +msgid "Exit network interface list" +msgstr "sair da lista de interface de rede" + +# +msgid "Exit network wizard" +msgstr "Sair do assistente de Rede" + +# +msgid "Exit the wizard" +msgstr "Sair" + +msgid "Expert" +msgstr "" + +msgid "Extend sleeptimer 15 minutes" +msgstr "" + +# +msgid "Extended Software" +msgstr "Software Avançado" + +# +msgid "Extended Software Plugin" +msgstr "Plugin de Software Avançado" + +# +#, fuzzy +msgid "Extended network setup plugin..." +msgstr "Plugin de Configuração de Rede Avançado" + +# +#, fuzzy +msgid "Extended setup..." +msgstr "Configurações Avançadas" + +# +msgid "Extensions" +msgstr "Extensões" + +# +msgid "Extensions management" +msgstr "Gestor de extensões" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "" + +msgid "Extra motor options" +msgstr "" + +msgid "FEC" +msgstr "" + +msgid "FTA" +msgstr "" + +# +msgid "Factory reset" +msgstr "Restauro de Fabrica" + +# +msgid "Failed" +msgstr "Falha" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "" + +# +#, python-format +msgid "Fan %d" +msgstr "Ventilador %d" + +# +#, python-format +msgid "Fan %d PWM" +msgstr "Ventilador %d PWM" + +# +#, fuzzy, python-format +msgid "Fan %d voltage" +msgstr "Ventilador %d Tensão" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +# +msgid "Fast" +msgstr "Rápido" + +# +msgid "Fast DiSEqC" +msgstr "DiSEqC rápido" + +msgid "Fast Scan" +msgstr "Busca Rápida" + +# +msgid "Fast epoch" +msgstr "Epoch Rapido" + +# +#, fuzzy +msgid "Fast forward speeds" +msgstr "Velocidade de avançar rápida" + +# +msgid "Favourites" +msgstr "Favoritos" + +msgid "File appears to be busy.\n" +msgstr "Parece que o ficheiro está ocupado.\n" + +# +#, fuzzy +msgid "Filesystem check" +msgstr "Verificação do sistema de ficheiros" + +msgid "Final position at" +msgstr "Posição final em" + +msgid "Final position at index" +msgstr "Posição final no indice" + +msgid "Fine movement" +msgstr "Ajuste fino" + +# +msgid "Finetune" +msgstr "Sintonizar fino" + +# +msgid "Finished" +msgstr "Terminado" + +# +msgid "Finished configuring your network" +msgstr "Terminou a configuração de rede" + +# +msgid "Finished restarting your network" +msgstr "Terminou a reiniciação de rede" + +# +msgid "Finnish" +msgstr "Finlandês" + +#, fuzzy +msgid "Fixed" +msgstr "seguro" + +msgid "Flash" +msgstr "" + +# +msgid "Flashing failed" +msgstr "Falhou o Flash" + +# +msgid "Following tasks will be done after you press OK!" +msgstr "A tarefas vão terminar depois de primir OK!" + +# +msgid "Format" +msgstr "Formato" + +msgid "Forward volume keys" +msgstr "Avançar teclas de volume " + +# +msgid "Frame size in full view" +msgstr "Tamanho da janela em tamanho grande" + +# +msgid "French" +msgstr "Francês" + +# +msgid "Frequency" +msgstr "Frequencia" + +# +msgid "Frequency bands" +msgstr "bandas de frequência" + +# +msgid "Frequency scan step size(khz)" +msgstr "Tamanho das etapas de frequência(khz)" + +# +msgid "Frequency steps" +msgstr "Etapas da frequência " + +msgid "Frequency:" +msgstr "" + +# +msgid "Fri" +msgstr "Sex" + +# +msgid "Friday" +msgstr "Sexta feira" + +msgid "From :" +msgstr "De :" + +# +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Versão do Processador: %d" + +#, fuzzy +msgid "Full transparency" +msgstr "transparência total" + +msgid "Fulview resulution" +msgstr "" + +msgid "Function of OK button" +msgstr "" + +msgid "Further Options" +msgstr "" + +# +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"Gui necessita reiniciar para aplicar a nova Skin\n" +"Deseja reiniciar agora? " + +msgid "Gateway" +msgstr "" + +# +#, fuzzy +msgid "General AC3 delay" +msgstr "Atraso AC3 geral" + +# +#, fuzzy +msgid "General PCM delay" +msgstr "Atraso PCM geral" + +# +msgid "Genre" +msgstr "Genero" + +# +msgid "German" +msgstr "Alemão" + +msgid "Get latest experimental image" +msgstr "Receba a ultima imagem experimental" + +msgid "Get latest release image" +msgstr "Receba a ultima imagem" + +# +msgid "Getting plugin information. Please wait..." +msgstr "Adquirir a info do plugin.Por favor espere" + +msgid "Go down the list" +msgstr "Ir para baixo na lista" + +msgid "Go to first movie or last item" +msgstr "Ir para a primeira gravação ou ultimo iten" + +msgid "Go to first movie or top of list" +msgstr "Ir para a primeira gravação ou topo da lista" + +#, fuzzy +msgid "Go to first service" +msgstr "Ir para o primeiro canal" + +#, fuzzy +msgid "Go to last service" +msgstr "Ir para o ultimo canal" + +#, fuzzy +msgid "Go to next event" +msgstr "Ir para o evento seguinte" + +#, fuzzy +msgid "Go to next page of service" +msgstr "Ir para a próxima pagina de serviços" + +#, fuzzy +msgid "Go to previous event" +msgstr "Ir para o evento seguinte" + +#, fuzzy +msgid "Go to previous page of service" +msgstr "Ir para a pagina anterior de serviços" + +msgid "Go up the list" +msgstr "Ir para o" + +msgid "Goto" +msgstr "Ir Para" + +# +msgid "Goto 0" +msgstr "Ir para 0" + +msgid "Goto :" +msgstr "Ir Para :" + +msgid "Goto X" +msgstr "Ir Para X" + +msgid "Goto index position" +msgstr "Ir para a posição de indice" + +msgid "Goto next day of events" +msgstr "" + +msgid "Goto next page of events" +msgstr "Ir para a próxima pagina de eventos" + +# +msgid "Goto position" +msgstr "Ir para posição" + +msgid "Goto previous day of events" +msgstr "" + +msgid "Goto previous page of events" +msgstr "Ir para a pagina anterior de eventos" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "Ir para a calibração X" + +msgid "GraphMultiEpg Settings" +msgstr "" + +# +msgid "Graphical Multi EPG" +msgstr "Multi EPG Gráfico" + +# +msgid "Greek" +msgstr "Grego" + +# +msgid "Green boost" +msgstr "Boost verde" + +msgid "Guard interval" +msgstr "Inervalo de segurança" + +msgid "HD list" +msgstr "Lista HD" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "Controlar o standby a partir da TV" + +msgid "Handle wakeup from TV" +msgstr "Controlar o ligar a partir da TV" + +# +#, fuzzy +msgid "Hard disk" +msgstr "Disco rigido" + +# +#, fuzzy +msgid "Hard disk setup" +msgstr "Configuração Disco Rigido" + +# +#, fuzzy +msgid "Hard disk standby after" +msgstr "Disco rigido suspenso após " + +# +msgid "Harddisk" +msgstr "Disco rigido" + +msgid "Hardware: " +msgstr "" + +msgid "Hebrew" +msgstr "Hebraico" + +msgid "Helps setting up your dish" +msgstr "" + +msgid "Hidden network" +msgstr "Rede oculta" + +msgid "Hide CI messages" +msgstr "Ocultar mensagens do CI" + +msgid "Hide channel list in radio mode" +msgstr "" + +msgid "Hide known extensions" +msgstr "" + +msgid "Hide number markers" +msgstr "" + +# +#, fuzzy +msgid "Hide player" +msgstr "Esconder reprodutor" + +msgid "Hide zap errors" +msgstr "Ocultar erros no zapping" + +msgid "Hierarchy info" +msgstr "Informação de hierarquia" + +# +#, fuzzy +msgid "Hierarchy information" +msgstr "Informação hierarquica" + +# +msgid "High bitrate support" +msgstr "Suporte para Alto bitrate" + +msgid "Hold screen" +msgstr "Manter ecrã" + +msgid "Hold till locked" +msgstr "Manter até estabilizar" + +msgid "Home" +msgstr "Origem" + +# +msgid "Horizontal" +msgstr "Horizontal" + +msgid "Horizontal turning speed" +msgstr "Velocidade de viragem horizontal" + +# +msgid "How many minutes do you want to record?" +msgstr "Quantos minutos deseja gravar?" + +# +msgid "Hue" +msgstr "Tom" + +# +msgid "Hungarian" +msgstr "Hungaro" + +# +#, fuzzy +msgid "IP address" +msgstr "Endereço IP" + +# +msgid "ISO file is too large for this filesystem!" +msgstr "O ficheiro ISO é demasiado grande para este formato! " + +# +msgid "ISO path" +msgstr "Pasta ISO" + +msgid "Icons" +msgstr "Icones" + +# +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"Se está a ver isto, algo está mal com a sua ligação Scart.\n" +"Carregue OK." + +# +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"Se a sua TV tiver ajuste de brilho ou contraste, desligue.Se tiver algo com o nome\"dinà¢mico\", ajuste para Standard. Ajuste o nivel da luz de fundo para um valor a seu gosto. Baixe o contraste da sua o maximo possível.\n" +"Depois ajuste o brilho para o mais baixo possivel, mas certifique-se de que as duas escalas de sombra cinza mais baixas, sejam visiveis.\n" +"Não se preocupe com as sombras brilhantes agora.Serão ajustadas no próximo passo.\n" +"Se os ajustes estão bem, carregue OK." + +msgid "Image: " +msgstr "Imagem:" + +# +#, fuzzy +msgid "Immediate shutdown" +msgstr "Desligar imediatamente" + +# +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "Para proceder a uma gravação agendada, a TV mudou para o canal desejado!\n" + +# +#, fuzzy +msgid "In progress" +msgstr "Em Progresso" + +msgid "Inactivity Sleeptimer" +msgstr "" + +msgid "Include AIT in http streams" +msgstr "Incluir AIT nos streams http" + +msgid "Include ECM in http streams" +msgstr "Incluir ECM nos streams http" + +msgid "Include EIT in http streams" +msgstr "Incluir EIT nos streams http" + +msgid "Incorrect type service for PiP!" +msgstr "" + +# +msgid "Increased voltage" +msgstr "Aumento de tensão" + +# +msgid "Index" +msgstr "Indice" + +msgid "Index allocated:" +msgstr "" + +msgid "Info" +msgstr "" + +# +#, fuzzy +msgid "Info bar" +msgstr "Barra de Info" + +# +#, fuzzy +msgid "Info bar timeout" +msgstr "Tempo da Barra de Info " + +msgid "Infobar frontend data source" +msgstr "" + +# +msgid "Information" +msgstr "Informação" + +# +msgid "Init" +msgstr "Inicio" + +#, fuzzy +msgid "Initial fast forward speed" +msgstr "Velocidade de avançar inicial" + +# +msgid "Initial location in new timers" +msgstr "Localização inicial para novos agendamentos" + +msgid "Initial lock ratio" +msgstr "Racio inicial de estabelização" + +#, fuzzy +msgid "Initial rewind speed" +msgstr "Velocidade de Rewind inicial" + +msgid "Initial signal quality" +msgstr "Qualidade de sinal inicial" + +msgid "Initial signal quality:" +msgstr "Qualidade de sinal inicial:" + +# +msgid "Initialization" +msgstr "Inicialização" + +# +msgid "Initialize" +msgstr "Iniciado" + +msgid "Initializing storage device..." +msgstr "A iniciar dispositivo de armazenamento..." + +# +msgid "Input" +msgstr "Entrada" + +msgid "Input device setup" +msgstr "Definições dos dispositivos de entrada" + +msgid "Input devices" +msgstr "Dispositivos" + +# +msgid "Install" +msgstr "Instalar" + +# +msgid "Install a new image with a USB stick" +msgstr "Instalar uma nova imagem por USB" + +# +msgid "Install a new image with your web browser" +msgstr "Instalar uma nova imagem por web browser" + +# +#, fuzzy +msgid "Install channel list" +msgstr "proxima canal na memoria" + +msgid "Install extensions" +msgstr "" + +# +msgid "Install extensions." +msgstr "Instalar extensões." + +# +msgid "Install local extension" +msgstr "Instalar extensão local" + +msgid "Install picons on" +msgstr "Instalar picons em" + +# +#, fuzzy +msgid "Install softcam" +msgstr "A instalar o software..." + +#, fuzzy +msgid "Installation has completed." +msgstr "Calculação completa" + +# +#, fuzzy +msgid "Installation or removal has completed." +msgstr "Instalação ou Desinstalação terminou." + +# +msgid "Installing" +msgstr "A instalar" + +# +#, fuzzy +msgid "Installing software..." +msgstr "A instalar o software..." + +# +#, fuzzy +msgid "Instant recording location" +msgstr "Localização das gravações instantâneas" + +# +#, fuzzy +msgid "Instant recording..." +msgstr "Gravar agora..." + +msgid "Interface: " +msgstr "" + +# +msgid "Intermediate" +msgstr "Intermediario" + +# +#, fuzzy +msgid "Internal flash" +msgstr "Flash Interna" + +msgid "Internal hdd only" +msgstr "Só disco interno" + +msgid "Interval between keys when repeating:" +msgstr "Intervalo entre teclas quando a repetir:" + +# +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Pasta invalida: %s" + +# +#, fuzzy +msgid "Invalid location" +msgstr "Localização Inválida" + +msgid "Invalid transponder data" +msgstr "" + +# +msgid "Inversion" +msgstr "Inversão" + +msgid "Invert" +msgstr "Inverter" + +msgid "Ipkg" +msgstr "" + +#, fuzzy +msgid "Is this setting ok?" +msgstr "Usar estas definições?" + +# +#, fuzzy +msgid "Is this video mode ok?" +msgstr "Este modo de video está correcto?" + +# +msgid "Italian" +msgstr "Italiano" + +#, fuzzy +msgid "Items per page " +msgstr "Itens por Pagina" + +#, fuzzy +msgid "Items per page for list screen" +msgstr "Itens por Pagina" + +# +#, fuzzy +msgid "Job overview" +msgstr "Vista de tarefas" + +msgid "Jump to beginning of list" +msgstr "" + +# +#, fuzzy +msgid "Jump to end of list" +msgstr "saltar parea o fim da lista" + +# +#, fuzzy +msgid "Jump to next marked position" +msgstr "saltar para a próxima marca" + +# +#, fuzzy +msgid "Jump to previous marked position" +msgstr "saltar para posição marcada anteriormente" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +#, fuzzy +msgid "Just scale" +msgstr "Modo Escala" + +msgid "Keep service" +msgstr "" + +#, fuzzy +msgid "Kernel version: " +msgstr "Versão do Kernel:" + +# +msgid "Keyboard" +msgstr "Teclado" + +# +#, fuzzy +msgid "Keyboard map" +msgstr "Mapa do Teclado" + +# +#, fuzzy +msgid "Keyboard setup" +msgstr "Config. do Teclado" + +# +#, fuzzy +msgid "LAN adapter" +msgstr "Adaptador LAN" + +msgid "LAN connection" +msgstr "Ligação LAN" + +msgid "LNB" +msgstr "" + +# +msgid "Language" +msgstr "Idioma" + +# +msgid "Language selection" +msgstr "Selecção do Idioma" + +# +msgid "Last config" +msgstr "Ultima configuração" + +# +msgid "Last speed" +msgstr "Ultima velocidade" + +#, fuzzy +msgid "Last upgrade: " +msgstr "Ultima actualização:" + +msgid "Latest Commits" +msgstr "" + +# +msgid "Latitude" +msgstr "Latitude" + +# +msgid "Latvian" +msgstr "Letão" + +# +#, fuzzy +msgid "Leave DVD player?" +msgstr "Sair do Reprodutor de DVD?" + +# +msgid "Left" +msgstr "Esquerda" + +msgid "Left from servicename" +msgstr "" + +msgid "Leisure hobbies" +msgstr "" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Letterbox" + +msgid "Letterbox zoom" +msgstr "" + +# +#, fuzzy +msgid "Limit character set for recording filenames" +msgstr "Limite de caracteres para o nome das gravações" + +# +msgid "Limit east" +msgstr "Limite a Este" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "" + +# +msgid "Limit west" +msgstr "Limite a Oeste" + +msgid "Limits cancelled" +msgstr "Limites desactivos" + +msgid "Limits enabled" +msgstr "Limites activos" + +# +msgid "Limits off" +msgstr "Desligar limites" + +# +msgid "Limits on" +msgstr "Ligar limites" + +# +#, fuzzy +msgid "Link quality:" +msgstr "Qualidade de Ligação:" + +# +msgid "Link:" +msgstr "Ligação:" + +# +msgid "Linked titles with a DVD menu" +msgstr "Corresponder títulos a menu de DVD" + +# +#, fuzzy +msgid "List EPG functions..." +msgstr "lista de vistas EPG..." + +msgid "List available networks" +msgstr "Lista de redes disponíveis" + +msgid "List mode" +msgstr "" + +# +#, fuzzy +msgid "List of storage devices" +msgstr "Lista de dispositivos de armazenamento" + +msgid "List type" +msgstr "Tipo de lista" + +#, fuzzy, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "Versão de lista %d, encontrados %d canais" +msgstr[1] "Versão de lista %d, encontrados %d canais" + +# +#, fuzzy +msgid "Listen to the radio..." +msgstr "Ouvir radio..." + +msgid "Lists reloaded!" +msgstr "" + +# +msgid "Lithuanian" +msgstr "Lituano" + +# +msgid "Load" +msgstr "Carregar" + +msgid "Load Length of Movies in Movielist" +msgstr "" + +# +#, fuzzy +msgid "Load length of movies in movie list" +msgstr "Carregar o tamanho das gravações na lista de Gravações" + +# +#, fuzzy +msgid "Load playlist" +msgstr "carregar lista" + +# +#, fuzzy +msgid "Local network" +msgstr "Rede Local" + +# +msgid "Location" +msgstr "Localização" + +# +msgid "Location for instant recordings" +msgstr "Localização das gravações instatâneas" + +msgid "Lock ratio" +msgstr "Bloquear racio" + +# +msgid "Lock:" +msgstr "Estabelecer:" + +# +msgid "Log results to harddisk" +msgstr "Resultados do relatório para o disco" + +msgid "Long filenames" +msgstr "Nome de ficheiros longos" + +# +#, fuzzy +msgid "Long key press" +msgstr "Mantenha a tecla pressionada" + +# +msgid "Longitude" +msgstr "Longitude" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "" + +# +#, fuzzy +msgid "MMC card" +msgstr "Cartão MMC" + +# +msgid "MORE" +msgstr "MAIS" + +# +msgid "Main menu" +msgstr "Menu Principal" + +msgid "Maintain old EPG data for" +msgstr "Guardar EPG antigo por (min)" + +# +msgid "Make this mark an 'in' point" +msgstr "Marcar como ponto de entrada" + +# +msgid "Make this mark an 'out' point" +msgstr "Marcar como ponto de saída" + +# +msgid "Make this mark just a mark" +msgstr "Marcar Somente" + +# +msgid "Manage extensions" +msgstr "Gerir extensões" + +# +msgid "Manage your receiver's software" +msgstr "Gerir o software do receptor" + +msgid "Manual" +msgstr "" + +# +msgid "Manual Scan" +msgstr "Busca Manual" + +msgid "Manual configuration" +msgstr "Configuração manual" + +# +#, fuzzy +msgid "Manual scan" +msgstr "Busca Manual" + +# +msgid "Manual transponder" +msgstr "Transponder Manual" + +# +msgid "Manufacturer" +msgstr "Fabricante" + +# +#, fuzzy +msgid "Margin after recording (minutes)" +msgstr "Margem antes de gravar(minutos)" + +# +#, fuzzy +msgid "Margin before recording (minutes)" +msgstr "Margem antes de gravar(minutos)" + +msgid "Max memory positions" +msgstr "" + +# +#, fuzzy +msgid "Max. bitrate: " +msgstr "Bitrate máximo: " + +# +msgid "Media player" +msgstr "Reprodutor de Media" + +# +#, fuzzy +msgid "Media scanner" +msgstr "Reprodutor de Media" + +# +msgid "Medium is not a writeable DVD!" +msgstr "A media não é gravável no DVD!" + +# +msgid "Medium is not empty!" +msgstr "Media está vazia!" + +msgid "Memory" +msgstr "Memoria" + +msgid "Memory index" +msgstr "Indice de memoria" + +msgid "Menu" +msgstr "" + +# +msgid "Message" +msgstr "Mensagem" + +# +msgid "Message..." +msgstr "Mensagem..." + +#, python-format +msgid "Minimum age %d years" +msgstr "" + +#, fuzzy +msgid "Minimum send interval" +msgstr "Inervalo de segurança" + +msgid "Missing " +msgstr "Em Falta" + +# +#, fuzzy +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Modo" + +# +#, fuzzy +msgctxt "Video output mode" +msgid "Mode" +msgstr "Modo" + +# +msgid "Model: " +msgstr "Modelo:" + +# +msgid "Modulation" +msgstr "Modulação" + +# +msgid "Modulator" +msgstr "Modelador" + +# +msgid "Mon" +msgstr "Seg" + +# +msgid "Mon-Fri" +msgstr "Seg-Sex" + +# +msgid "Monday" +msgstr "Segunda-feira" + +# +msgid "Mosquito noise reduction" +msgstr "Redução de mosquitos" + +msgid "Mount" +msgstr "Montagen" + +msgid "Move" +msgstr "Mover" + +# +#, fuzzy +msgid "Move PiP to main picture" +msgstr "mover o PiP para a imagem principal" + +# +msgid "Move Picture in Picture" +msgstr "Mover Imagem na Imagem" + +# +msgid "Move east" +msgstr "Mover Este" + +msgid "Move to other directory" +msgstr "Mover para outra pasta" + +msgid "Move to position X" +msgstr "Mover para posição X" + +# +msgid "Move west" +msgstr "Mover Oeste" + +msgid "Moved to position 0" +msgstr "Movido para posição 0" + +msgid "Moved to position at index" +msgstr "movido para a posição de indice" + +msgid "Movement" +msgstr "Movimento" + +msgid "Movie List Configuration" +msgstr "" + +msgid "Movie Selection" +msgstr "" + +#, fuzzy +msgid "Movie list configuration" +msgstr "Configuração da Lista de Gravações" + +# +msgid "Movie location" +msgstr "Localização das gravações" + +#, fuzzy +msgid "Movie selection" +msgstr "Selecção de Gravação" + +msgid "Movie/Drama" +msgstr "" + +# +msgid "Movielist menu" +msgstr "Menu da lista de filmes" + +msgid "Moving" +msgstr "A mover" + +msgid "Moving east ..." +msgstr "A mover para este ..." + +msgid "Moving to position" +msgstr "A mover para a posição" + +msgid "Moving west ..." +msgstr "A mover para oeste ..." + +# +msgid "Multi EPG" +msgstr "EPG Multi" + +msgid "Multi-EPG bouquet selection" +msgstr "Multi-EPG na selecção de favoritos" + +msgid "Multimedia" +msgstr "" + +# +msgid "Multiple service support" +msgstr "Suporte para Serviços Multiplos" + +msgid "Multiplex" +msgstr "Frequência" + +# +msgid "Multisat" +msgstr "Satelites Multiplos" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "" + +# +msgid "Mute" +msgstr "Sem som" + +msgid "N/A" +msgstr "" + +# +msgid "NEXT" +msgstr "Próximo" + +# +#, fuzzy +msgid "NFI image flashing" +msgstr "Flash de Imagem NFI" + +# +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "Flash de Imagem NFI completo. Prima Amarelo para Reiniciar!" + +msgid "NIM" +msgstr "" + +msgid "NOW" +msgstr "" + +# +msgid "NTSC" +msgstr "NTSC" + +# +msgid "Name" +msgstr "Nome" + +# +msgid "Nameserver" +msgstr "Servidor DNS" + +# +#, python-format +msgid "Nameserver %d" +msgstr "Servidor DNS %d" + +# +msgid "Nameserver settings" +msgstr "Definições de servidor DNS" + +# +#, fuzzy +msgid "Nameserver setup" +msgstr "Configuração de servidor DNS" + +msgid "Namespace" +msgstr "Espaço do nome" + +# +msgid "Netmask" +msgstr "Máscara" + +# +msgid "Network" +msgstr "Rede" + +msgid "Network ID" +msgstr "ID de Rede" + +# +#, fuzzy +msgid "Network configuration..." +msgstr "Configuração de Rede..." + +# +#, fuzzy +msgid "Network mount" +msgstr "Montagem de Rede" + +# +#, fuzzy, python-format +msgid "Network mount %s" +msgstr "Montagem de Rede" + +#, fuzzy +msgid "Network name (SSID)" +msgstr "Nome de Rede (SSID)" + +# +msgid "Network scan" +msgstr "Busca de rede" + +# +msgid "Network setup" +msgstr "Config.de rede" + +# +msgid "Network test" +msgstr "Teste de Rede" + +# +msgid "Network test..." +msgstr "Teste de Rede..." + +msgid "Network test: " +msgstr "Teste de Rede:" + +# +#, fuzzy +msgid "Network wizard" +msgstr "Assistente de Rede" + +# +msgid "Network:" +msgstr "Rede:" + +# +msgid "New" +msgstr "Novo" + +msgid "New PIN" +msgstr "Novo PIN" + +# +msgid "New version:" +msgstr "Nova Versão:" + +msgid "News Current Affairs" +msgstr "" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "" + +# +msgid "No" +msgstr "Não" + +# +msgid "No (supported) DVDROM found!" +msgstr "Nenhum DVD (suportado) encontrado!" + +# +msgid "No Connection" +msgstr "Sem Ligação" + +# +msgid "No HDD found or HDD not initialized!" +msgstr "HDD não encontrado ou Falha ao Iniciar" + +# +msgid "No backup needed" +msgstr "Não necessita de BackUp" + +msgid "No cable tuner found!" +msgstr "Tuner de cabo não encontrado!" + +# +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Nenhuns dados no transponder!\n" +"(Timeout reading PAT)" + +#, fuzzy +msgid "No delay" +msgstr "Sem Atraso" + +# +msgid "No description available." +msgstr "Descrição não disponível." + +# +msgid "No details for this image file" +msgstr "Não existem detalhes para este ficheiro de imagem" + +# +msgid "No displayable files on this medium found!" +msgstr "Não foram encontrados ficheiros reproduzíveis!" + +# +msgid "No event info found, recording indefinitely." +msgstr "Não encontrou o evento, gravar indefinidamente" + +# +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "Não é possivél avançar rápidamente ainda...mas pode usar as teclas de número para avançar/retroceder! " + +msgid "No free index available" +msgstr "" + +# +msgid "No free tuner!" +msgstr "Nenhum tuner livre!" + +# +msgid "No network connection available." +msgstr "Não existe nenhuma ligação de rede disponível." + +# +msgid "No networks found" +msgstr "Não foram encontradas redes" + +msgid "No new plugins found" +msgstr "" + +# +msgid "No positioner capable frontend found." +msgstr "Não encontrou posicionador." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "" + +# +#, fuzzy +msgid "No services/providers selected" +msgstr "sem Services/Providers selecionados" + +# +#, fuzzy +msgid "No standby" +msgstr "não em modo espera" + +msgid "No suitable sat tuner found!" +msgstr "" + +# +msgid "No tags are set on these movies." +msgstr "Não existem etiquetas para estas gravações." + +# +#, fuzzy +msgid "No timeout" +msgstr "no timeout" + +# +msgid "No to all" +msgstr "Não para todos" + +#, fuzzy +msgid "No transparency" +msgstr "sem transparência" + +# +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "Nenhum receptor encontrado para usar como posicionador de diseqc!" + +# +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Nenhum tuner activo!\n" +"Configure o seu tuner antes de iniciar a busca de canais." + +# +#, fuzzy +msgid "No updates available" +msgstr "actualizações desponiveis." + +msgid "No updates available. Please try again later." +msgstr "" + +# +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"PIN invalido!\n" +"Deseja alterar o PIN do canal agora?\n" +"Se responder 'NàƒO' a protecção do canal fica desabilitada!" + +# +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"PIN invalido!\n" +"Deseja alterar o PIN do canal agora?\n" +"Se responder 'NàƒO' a protecção do canal fica desabilitada!" + +msgid "No wireless networks found! Searching..." +msgstr "Não foram encontradas redes sem fios! Em procura..." + +# +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"Não foi encontrado nenhum adaptador de rede.\n" +"Por favor verifique se o cabo de rede está bem ligado e se a rede está bem configurada." + +# +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"Não foi encontrado nenhum adaptador de rede sem fios.\n" +"Por favor verifique se o adptador é compativél e se a rede está bem configurada." + +# +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"Não foi encontrado nenhum adaptador de rede sem fios.\n" +"Por favor verifique se o adptador é compativél e se a rede está bem configurada." + +# +msgid "No, but restart from begin" +msgstr "Não, reiniciar do inicio" + +# +msgid "No, do nothing." +msgstr "Não." + +msgid "No, just start my receiver" +msgstr "" + +msgid "No, never" +msgstr "Não, nunca" + +# +msgid "None" +msgstr "Nenhum" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Não Linear" + +msgid "Normal mode" +msgstr "" + +# +msgid "North" +msgstr "Norte" + +# +msgid "Norwegian" +msgstr "Norueguês" + +#, fuzzy +msgid "Not associated" +msgstr "Não-Associado" + +msgid "Not configured" +msgstr "" + +# +#, fuzzy, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Não existe espaço suficiente no disco. Por favor liberte algum espaço e tente de novo. (%d MB necessário, %d MB disponível)" + +msgid "Nothing connected" +msgstr "" + +# +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Nada para pesquisar!\n" +"Por favor configure o receptor antes de iniciar uma busca." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "" + +# +#, fuzzy +msgid "Now playing" +msgstr "A Reproduzir" + +# +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Agora use o ajuste do contraste para aumentar o brilho da luz de fundo, o maximo possivel, mas certifique-se de que consegue ver adiferença entre os dois niveis de brilho mais altos. Quando terminar carregue OK." + +msgid "OK" +msgstr "" + +# +msgid "OK, guide me through the upgrade process" +msgstr "OK, ajude-me no processo de update" + +msgid "ONID" +msgstr "" + +msgid "OSD name request" +msgstr "Solicitação do nome de OSD" + +# +#, fuzzy +msgid "OSD settings" +msgstr "Definições OSD" + +#, fuzzy +msgid "OSD transparency" +msgstr "sem transparência" + +# +msgid "Off" +msgstr "Desligado" + +msgid "Offline decode delay (ms)" +msgstr "Atraso da descodificação Offline (ms)" + +msgid "Ok" +msgstr "" + +# +msgid "On" +msgstr "Ligado" + +msgid "On end of movie" +msgstr "" + +msgid "On end of movie (as menu)" +msgstr "" + +# +msgid "One" +msgstr "Um" + +# +msgid "Only extensions." +msgstr "Só as extensões." + +# +#, fuzzy +msgid "Only free scan" +msgstr "Buscar só serviços livres" + +# +#, fuzzy +msgid "Open service list" +msgstr "Abrir lista de canais" + +# +#, fuzzy +msgid "Open the movie list" +msgstr "Voltar à lista de filmes" + +msgid "Orbital position" +msgstr "Posição orbital" + +msgid "Original" +msgstr "Original" + +msgid "Other" +msgstr "Outra" + +msgid "Output" +msgstr "Saída" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "Substituir os ficheiros de configuração durante a actualização de software?" + +#, fuzzy +msgid "Overwrite configuration files?" +msgstr "Substituir os ficheiros de configuração ?" + +msgid "PAL" +msgstr "" + +msgid "PCR PID" +msgstr "" + +msgid "PIDs" +msgstr "" + +# +#, fuzzy +msgid "PIN code needed" +msgstr "Necessita do PIN" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "" + +# +msgid "Package list update" +msgstr "Lista de pacotes actualizada" + +# +msgid "Packet management" +msgstr "Gestor dos Pacotes" + +# +msgid "Packet manager" +msgstr "Gestor de Pacotes" + +# +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +#, fuzzy +msgid "Pan&scan" +msgstr "Pan&Scan" + +# +#, fuzzy +msgid "Parent directory" +msgstr "Pasta Superior" + +# +msgid "Parental control" +msgstr "Controle Paternal" + +# +#, fuzzy +msgid "Parental control services editor" +msgstr "Editor de Canais Controle Paternal" + +# +msgid "Parental control setup" +msgstr "Editor do Controle Paternal" + +# +msgid "Parental control type" +msgstr "Tipo de Controle Paternal" + +# +msgid "Password" +msgstr "Palavra-Passe" + +# +#, fuzzy +msgid "Pause" +msgstr "pausa" + +# +msgid "Pause movie at end" +msgstr "Pausar o filme quando terminar" + +# +#, fuzzy +msgid "Pause playback" +msgstr "A retomar... " + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "" + +# +#, fuzzy +msgid "Percentage right" +msgstr "Circular direita" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "Apagar definitivamente todas as gravações na reciclagem?" + +msgid "Permanently remove all deleted items" +msgstr "Apagar definitivamente todos os itens apagados" + +msgid "Persian" +msgstr "Persa" + +# +msgid "Phone number" +msgstr "Número de telefone" + +# +#, fuzzy +msgid "PiP setup" +msgstr "Configurar PiP" + +msgid "Picon" +msgstr "" + +msgid "Picon and service name" +msgstr "" + +# +#, fuzzy +msgid "Picture player" +msgstr "Visualizador de Imagens" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Pillarbox" + +# +msgid "Pilot" +msgstr "Piloto" + +# +msgid "Play" +msgstr "Play" + +# +msgid "Play DVD" +msgstr "Reproduzir DVD" + +msgid "Play audio in background" +msgstr "Reproduzir audio em segundo plano" + +# +#, fuzzy +msgid "Play audio-CD..." +msgstr "Reproduzir CD-Audio..." + +msgid "Play back media files" +msgstr "" + +# +#, fuzzy +msgid "Play entry" +msgstr "iniciar" + +# +#, fuzzy +msgid "Play from next mark or playlist entry" +msgstr "Iniciar na proxima MARCA ou entrada na lista " + +# +#, fuzzy +msgid "Play from previous mark or playlist entry" +msgstr "Iniciar na ultima MARCA ou entrada na lista " + +# +#, fuzzy +msgid "Play music..." +msgstr "Reproduzir Musica..." + +msgid "Play next" +msgstr "Reproduzir seguinte" + +msgid "Play next (return to movie list)" +msgstr "" + +msgid "Play next (return to previous service)" +msgstr "" + +msgid "Play previous" +msgstr "Reproduzir anterior" + +# +msgid "Play recorded movies..." +msgstr "Reproduzir filmes gravados..." + +# +msgid "Please add titles to the compilation." +msgstr "Por favor adicione títulos à compilação" + +# +msgid "Please change recording endtime" +msgstr "Altere o tempo final da gravação" + +# +msgid "Please check your network settings!" +msgstr "Por favor verifique as suas definições de rede!" + +# +msgid "Please choose an extension..." +msgstr "Por favor escolha uma extensão" + +# +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Por favor configure ou veriique o servidor DNS preenchedo os valores requeridos.\n" +"Quando estiver pronto prima OK." + +# +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Por favor configure a ligação de internet preenchendo os valores necessários.\n" +"Quando estiver preparado prima OK para continuar." + +msgid "Please connect your receiver to the internet" +msgstr "" + +# +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Por favor não altere os valores se não tem a certeza do que vai fazer!" + +# +msgid "Please enter a name for the new bouquet" +msgstr "Escreva o nome do novo Bouquet" + +# +msgid "Please enter a name for the new marker" +msgstr "Escreva o nome da nova marca" + +# +msgid "Please enter a new filename" +msgstr "Introduza um nome novo para o ficheiro" + +# +msgid "Please enter filename (empty = use current date)" +msgstr "Introduza o nome do ficheiro (vazio = usra data actual)" + +# +msgid "Please enter name of the new directory" +msgstr "Por favor introduza o nome da nova pasta" + +msgid "Please enter new name:" +msgstr "" + +# +msgid "Please enter the correct pin code" +msgstr "Escreva o PIN correcto" + +msgid "Please enter the old PIN code" +msgstr "Por favor intoduza o codigo PIN antigo" + +# +msgid "Please follow the instructions on the TV" +msgstr "Siga as instruções na TV" + +# +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "Por favor note que a media anteriormente selecionada não pôde ser assedida e por isso a pasta padrão está a ser usada." + +# +msgid "Please press OK to continue." +msgstr "Por favor prima OK para continuar." + +msgid "Please select a default EPG type..." +msgstr "" + +# +msgid "Please select a playlist to delete..." +msgstr "Seleccione uma lista para apagar..." + +# +msgid "Please select a playlist..." +msgstr "seleciona uma lista" + +# +#, fuzzy +msgid "Please select a sub service..." +msgstr "Selecione um subserviço..." + +# +msgid "Please select a subservice to record..." +msgstr "Selecione um subserviço para gravar..." + +# +msgid "Please select a subservice..." +msgstr "Selecione um subserviço..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "Por favor escolha um ficheiro .NFI e prima verde para iniciar o flash!" + +# +#, fuzzy +msgid "Please select medium to be scanned" +msgstr "Selecione o dispositivo a procurar" + +# +msgid "Please select medium to use as backup location" +msgstr "Por favor selecione uma localização para backup" + +# +msgid "Please select tag to filter..." +msgstr "Por favor teste o filtro de etiquetas..." + +# +msgid "Please select the movie path..." +msgstr "Por favor seleccione a pasta da gravação..." + +# +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Por favor selecione um interface de rede para usar como ligação de internet.\n" +"\n" +"Prima OK para continuar" + +# +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Por favor escolha a Rede sem fios ao qual se quer ligar.\n" +"\n" +"Por favor prima OK para continuar." + +# +#, fuzzy +msgid "Please set up tuner A" +msgstr "Por favor selecione o tuner B" + +# +msgid "Please set up tuner B" +msgstr "Por favor selecione o tuner B" + +# +msgid "Please set up tuner C" +msgstr "Configure tuner C" + +# +msgid "Please set up tuner D" +msgstr "Configure tuner D" + +# +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Por favor use as teclas direcionais para mover a janela PiP.\n" +"Carregue em Bouquet +/- para redimensionara janela.\n" +"OK para voltar ao Modo TV ou EXIT para cancelar." + +# +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "Por favor use as teclas de Cima e Baixi para selecionar a sua língua. Depois prima OK." + +msgid "Please wait" +msgstr "" + +# +#, fuzzy +msgid "Please wait (downloading channel list)" +msgstr "Por favor espere...a carregar a lista..." + +# +#, fuzzy +msgid "Please wait (downloading softcam)" +msgstr "Por favor espere...a carregar a lista..." + +# +#, fuzzy +msgid "Please wait (updating packages)" +msgstr "Por favor espere, a carregar a imagem" + +# +msgid "Please wait for activation of your network configuration..." +msgstr "Por favor aguarde pela activação das configurações de rede..." + +# +msgid "Please wait while scanning is in progress..." +msgstr "Por favor aguarde enquato a busca está em progresso..." + +# +msgid "Please wait while we configure your network..." +msgstr "Por favor aguarde enquanto a rede é configurada..." + +# +msgid "Please wait while we prepare your network interfaces..." +msgstr "Por favor aguarde enquanto os interfaces de rede se preparam..." + +# +msgid "Please wait while we test your network..." +msgstr "Por favor aguarde enquanto a rede é testada..." + +# +msgid "Please wait while your network is restarting..." +msgstr "Por favor aguarde enquanto a rede reinicia..." + +# +msgid "Please wait..." +msgstr "Por favor aguarde..." + +# +msgid "Please wait... Loading list..." +msgstr "Por favor espere...a carregar a lista..." + +# +msgid "Plugin browser" +msgstr "Plugins Instalados" + +# +msgid "Plugin manager activity information" +msgstr "Informação de actividade do Gestor de Plugins" + +# +msgid "Plugin manager help" +msgstr "Ajuda do gestor de plugins" + +# +msgid "Plugins" +msgstr "Plugins" + +msgid "Polarisation" +msgstr "Polarização" + +msgid "Polarisation:" +msgstr "" + +# +msgid "Polarization" +msgstr "Polarização" + +# +msgid "Polish" +msgstr "Polaco" + +# +msgid "Port A" +msgstr "Porta A" + +# +msgid "Port B" +msgstr "Porta B" + +# +msgid "Port C" +msgstr "Porta C" + +# +msgid "Port D" +msgstr "Porta D" + +# +msgid "Portuguese" +msgstr "Português" + +#, fuzzy +msgid "Position of completed timers in timerlist" +msgstr "Posição das gravações terminadas na agenda de gravações" + +msgid "Position stored at index" +msgstr "Posição guardada no indice" + +# +msgid "Positioner" +msgstr "Posicionador" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "" + +# +msgid "Positioner setup" +msgstr "Definições do Posicionador" + +# +msgid "Power threshold in mA" +msgstr "Power em mA" + +# +msgid "Predefined transponder" +msgstr "Transponder pré-definido" + +#, fuzzy +msgid "Prefer AC3 track" +msgstr "Preferir AC3" + +msgid "Prefer AC3+ track" +msgstr "" + +#, fuzzy +msgid "Prefer audio track stored by service" +msgstr "Preferir audio do canal" + +#, fuzzy +msgid "Prefer graphical DVB subtitles" +msgstr "Preferir legendas DVB" + +#, fuzzy +msgid "Prefer subtitles for hearing impaired" +msgstr "Preferir audiodescrição a legendas" + +#, fuzzy +msgid "Prefer subtitles stored by service" +msgstr "Preferir legendas do canal" + +msgid "Preferred tuner" +msgstr "Tuner preferido" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "Prepare outra PEN Drive parao flash de imagem" + +# +msgid "Preparing... Please wait" +msgstr "Em preparação… Por favor espere " + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "Prima Info no comando remoto para informações adicionais." + +msgid "Press MENU on your remote control for additional options." +msgstr "Prima Menu no comando remoto para opções adicionais." + +# +msgid "Press OK on your remote control to continue." +msgstr "Prima OK para continuar." + +# +msgid "Press OK to activate the selected skin." +msgstr "Prima OK para activar o tema selecionado." + +# +msgid "Press OK to activate the settings." +msgstr "Carregue Ok para Activar" + +# +msgid "Press OK to edit the settings." +msgstr "Prima OK para editar as opções." + +# +#, python-format +msgid "Press OK to get further details for %s" +msgstr "Prima OK para receber detalhes de %s" + +# +msgid "Press OK to scan" +msgstr "Carregue Ok para Busca" + +# +#, fuzzy +msgid "Press OK to select a provider." +msgstr "Prima OK para selecionar um Operador." + +msgid "Press OK to select satellites" +msgstr "" + +# +msgid "Press OK to select/deselect a CAId." +msgstr "Prima OK para (de)selecional a CAId." + +# +msgid "Press OK to start the scan" +msgstr "Carregue Ok para Iniciar Busca" + +msgid "Press OK to toggle the selection" +msgstr "" + +# +msgid "Press OK to toggle the selection." +msgstr "Prima OK para mudar de selecção." + +# +msgid "Press yellow to set this interface as default interface." +msgstr "Prima amarelo para definir este interface como padrão." + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "" + +# +msgid "Preview" +msgstr "Previsualizar" + +# +msgid "Preview menu" +msgstr "Menu de previsualização" + +msgid "Preview selected channel" +msgstr "" + +# +msgid "Primary DNS" +msgstr "DNS Primário" + +# +msgid "Priority" +msgstr "Prioridade" + +# +msgid "Process" +msgstr "Processo" + +msgid "Progress" +msgstr "Progresso" + +#, fuzzy +msgid "Progress bar left" +msgstr "Progresso Pequeno" + +#, fuzzy +msgid "Progress bar right" +msgstr "Progresso Pequeno" + +# +msgid "Properties of current title" +msgstr "Propriedades do título actual" + +# +msgid "Protect services" +msgstr "Proteger Serviços" + +# +msgid "Protect setup" +msgstr "Definições de Protecção" + +# +msgid "Provider" +msgstr "Operador" + +# +msgid "Provider to scan" +msgstr "Operador a procurar" + +# +msgid "Providers" +msgstr "Operadores" + +msgid "Put TV in standby" +msgstr "Colocar TV em standby" + +msgid "Put receiver in standby" +msgstr "Colocar receptor em standby" + +# +msgid "Python frontend for /tmp/mmi.socket" +msgstr "Interface Python para /tmp/mmi.socket" + +# +msgid "Quick" +msgstr "Rápido" + +# +#, fuzzy +msgid "Quick zap" +msgstr "Zap Rápido" + +# +msgid "RF output" +msgstr "Saida RF" + +# +msgid "RGB" +msgstr "RGB" + +# +msgid "Radio" +msgstr "Radio" + +# +#, fuzzy +msgid "Ram disk" +msgstr "Disco Ram" + +# +msgid "Random" +msgstr "Aleatória" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "" + +msgid "Rating undefined" +msgstr "" + +# +msgid "Really close without saving settings?" +msgstr "Deseja Sair sem Gravar?" + +# +msgid "Really delete done timers?" +msgstr "Deseja apagar as gravações já realizadas?" + +# +msgid "Really exit the subservices quickzap?" +msgstr "Deseja realmente sair?" + +# +msgid "Really reboot now?" +msgstr "Reiniciar agora?" + +# +msgid "Really restart now?" +msgstr "Reiniciar agora?" + +# +msgid "Really shutdown now?" +msgstr "Desligar agora?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "Actualizar o frontprocessor e reiniciar agora?" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "Actualizar o receptor e reiniciar agora?" + +# +msgid "Reboot" +msgstr "Reiniciar" + +msgid "Rec" +msgstr "Rec" + +# +#, fuzzy +msgid "Reception settings" +msgstr "Definições de recepção" + +# +msgid "Record" +msgstr "Gravar" + +# +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "Tempo de gravação limitado devido a conflito %s" + +# +msgid "Recorded files..." +msgstr "Gravações..." + +# +msgid "Recording" +msgstr "A gravar" + +msgid "Recording in progress" +msgstr "Gravação em progresso" + +# +msgid "Recording paths" +msgstr "Pasta de Gravações" + +msgid "Recording type" +msgstr "Tipo de gravação" + +# +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "Gravações em progresso ou a iniciarem brevemente!" + +# +msgid "Recordings" +msgstr "Gravações" + +# +msgid "Recordings always have priority" +msgstr "Gravações têm sempre prioridade" + +msgid "Red button..." +msgstr "Botão vermelho..." + +msgid "Reenter new PIN" +msgstr "Repetir novo PIN" + +# +#, fuzzy +msgid "Refresh rate" +msgstr "Refresh Rate" + +# +msgid "Refresh rate selection." +msgstr "Selecção do refresh rate" + +msgid "Regard deep standby as standby" +msgstr "Considerar suspensão como standby" + +#, fuzzy +msgid "Relative" +msgstr "relativo" + +# +msgid "Reload" +msgstr "Recarregar" + +# +#, fuzzy +msgid "Reload black-/white lists" +msgstr "Recarregar Listas Pretas-/Brancas" + +msgid "Reloading bouquets and services..." +msgstr "A recarregar a lista de canais..." + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "Lembrar do PIN do serviço" + +msgid "Remember these settings for each folder" +msgstr "Memorizar estas configurações para cada pasta" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "" + +# +#, fuzzy +msgid "Remote control type" +msgstr "Tipo de Controle Paternal" + +# +#, fuzzy +msgid "Removal has completed." +msgstr "Remoção falhou." + +# +msgid "Remove" +msgstr "Remover" + +# +msgid "Remove a mark" +msgstr "Remover Marca" + +# +#, fuzzy +msgid "Remove a nameserver entry" +msgstr "apagar servidor de DNS" + +# +#, fuzzy +msgid "Remove bookmark" +msgstr "apagar marcador" + +#, fuzzy +msgid "Remove completed timers after (days)" +msgstr "Apagar gravações da reciclagem após (dias)" + +# +msgid "Remove currently selected title" +msgstr "Remover o título actualmente selecionado " + +#, fuzzy +msgid "Remove items from trash can after (days)" +msgstr "Apagar gravações da reciclagem após (dias)" + +# +msgid "Remove plugins" +msgstr "Remover plugins" + +# +msgid "Remove title" +msgstr "Remover o título" + +# +msgid "Removing" +msgstr "A remover" + +# +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "A Remoção da pasta %s falhou.(Talvez não esteja vazia.)" + +#, fuzzy +msgid "Removing partition table" +msgstr "Ler novamente a tabela de partições" + +# +msgid "Rename" +msgstr "Renomear" + +msgid "Repeat" +msgstr "" + +# +#, fuzzy +msgid "Repeat type" +msgstr "Tempo de repetição" + +# +msgid "Repeating event currently recording... What do you want to do?" +msgstr "A repetir o programa que está a gravar actualmente… Continuar? " + +# +msgid "Repeats" +msgstr "Repetições" + +msgid "Require authentication for http streams" +msgstr "" + +# +msgid "Required medium type:" +msgstr "Formato de media requerido:" + +#, fuzzy +msgid "Rereading partition table" +msgstr "Ler novamente a tabela de partições" + +msgid "Reserved" +msgstr "" + +# +msgid "Reset" +msgstr "Reset" + +# +msgid "Reset and renumerate title names" +msgstr "Reiniciar e renumerar os títulos" + +msgid "Reset playback position" +msgstr "Reiniciar a posição da reprodução" + +# +msgid "Reset video enhancement settings to system defaults?" +msgstr "Reiniciar a opções de imagem para as padrão de sistema?" + +# +msgid "Reset video enhancement settings to your last configuration?" +msgstr "Reiniciar a opções de imagem para as suas ultimas configurações?" + +# +msgid "Resolution" +msgstr "Resolução" + +# +msgid "Restart" +msgstr "Reiniciar" + +# +msgid "Restart GUI now?" +msgstr "Reiniciar GUI?" + +msgid "Restart enigma" +msgstr "Reiniciar o enigma" + +# +msgid "Restart network" +msgstr "Reiniciar a rede" + +# +msgid "Restart test" +msgstr "Teste de Reinicio" + +# +msgid "Restart your network connection and interfaces.\n" +msgstr "Reiniciar a ligação de rede e interfaces.\n" + +# +msgid "Restore" +msgstr "Restaurar" + +# +msgid "Restore backups" +msgstr "Restauro de backups" + +# +msgid "Restore is running..." +msgstr "Restauro em progresso..." + +# +msgid "Restore system settings" +msgstr "Restaurar configurações do sistema" + +# +#, fuzzy +msgid "Restoring..." +msgstr "a gravar..." + +# +msgid "Resume from last position" +msgstr "Iniciar a partir da ultima posição" + +# +#, python-format +msgid "Resume position at %s" +msgstr "Posição de resume em %s" + +# +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "A retomar... " + +# +msgid "Return to movie list" +msgstr "Voltar à lista de filmes" + +# +msgid "Return to previous service" +msgstr "Voltar ao canal anterior" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +# +msgid "Rewind speeds" +msgstr "Velocidade de retrocesso" + +msgid "Rewrap teletext subtitles" +msgstr "Repartir legendas de teletexto" + +# +msgid "Right" +msgstr "Direita" + +msgid "Right from servicename" +msgstr "" + +msgid "Roll-off" +msgstr "" + +msgid "Romanian" +msgstr "Roméno" + +msgid "Root directory" +msgstr "Pasta raíz" + +msgid "Rotor step position:" +msgstr "Posição de passo do motor:" + +# +msgid "Rotor turning speed" +msgstr "velocidade do motor" + +msgid "Round start time on" +msgstr "Arredondar o tempo de inicio em" + +# +msgid "Russian" +msgstr "Russo" + +# +msgid "S-Video" +msgstr "S-Video" + +msgid "SID" +msgstr "SID" + +# +msgid "SINGLE LAYER DVD" +msgstr "SINGLE LAYER DVD" + +# +msgid "SNR" +msgstr "SNR" + +# +msgid "SNR:" +msgstr "SNR:" + +# +msgid "SSID:" +msgstr "SSID:" + +msgid "Same resolution as skin" +msgstr "" + +# +msgid "Sat" +msgstr "Sab" + +# +msgid "Satellite" +msgstr "Satelite" + +# +#, fuzzy +msgid "Satellite dish setup" +msgstr "Definições do Equipamento de Satelite" + +# +msgid "Satellite equipment" +msgstr "Equipamento satélite" + +# +#, fuzzy +msgid "Satellite equipment setup" +msgstr "Definições do Equipamento de Satelite" + +msgid "Satellite longitude:" +msgstr "Longitude do satélite:" + +# +msgid "Satellites" +msgstr "Satelites" + +# +msgid "Satfinder" +msgstr "Busca Satelites" + +# +msgid "Sats" +msgstr "Sats" + +# +msgid "Saturation" +msgstr "Saturação" + +# +msgid "Saturday" +msgstr "Sábado" + +# +msgid "Save" +msgstr "Guardar" + +# +#, fuzzy +msgid "Save playlist" +msgstr "guardar lista" + +msgid "Save timeshift file" +msgstr "" + +msgid "Save timeshift file in movie directory" +msgstr "" + +# +msgid "Scaler sharpness" +msgstr "Nitidez" + +# +#, fuzzy +msgid "Scaling mode" +msgstr "Mode de Escala" + +msgid "Scan" +msgstr "" + +# +msgid "Scan " +msgstr "Busca" + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, fuzzy, python-format +msgid "Scan %s" +msgstr "Busca" + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, fuzzy, python-format +msgid "Scan %s band" +msgstr "Scan band EU MID" + +# +msgid "Scan additional SR" +msgstr "Scan additional SR" + +# +#, fuzzy +msgid "Scan files..." +msgstr "Buscar Ficheiros..." + +# +#, fuzzy +msgid "Scan wireless networks" +msgstr "Procurar Redes sem fios" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "Procurar pontos de acesso sem fios e ligar o dispositivo wireless a eles.\n" + +#, python-format +msgid "Scanning %s..." +msgstr "Em Pesquisa %s..." + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, fuzzy, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "Pesquisa completa, %d canais encontrados" +msgstr[1] "Pesquisa completa, %d canais encontrados" + +#, fuzzy, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "Pesquisa completa, %d canais encontrados" +msgstr[1] "Pesquisa completa, %d canais encontrados" + +msgid "Scanning failed!" +msgstr "Pesquisa falhou!" + +msgid "Scanning..." +msgstr "Em Pesquisa..." + +# +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "Busca lamedbs padrões ordenados por satélites com posicionador" + +# +msgid "Search east" +msgstr "Procura Este" + +# +msgid "Search west" +msgstr "Procura Oeste" + +msgid "Searching" +msgstr "A procurar" + +msgid "Searching east ..." +msgstr "A procurar a este ..." + +# +msgid "Searching for available updates. Please wait..." +msgstr "À procura de actualizações disponíveis. Por favor aguarde..." + +# +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "Em pesquisa de novos pacotes instalados ou removidos. Por favor aguarde..." + +msgid "Searching west ..." +msgstr "A procurar a oeste ..." + +msgid "Second cable of motorized LNB" +msgstr "" + +# +msgid "Secondary DNS" +msgstr "DNS secundário" + +# +msgid "Seek" +msgstr "Busca" + +# +#, fuzzy +msgid "Seek backward" +msgstr "Retroceder" + +# +#, fuzzy +msgid "Seek backward (enter time)" +msgstr "retroceder (inserir tempo)" + +# +#, fuzzy +msgid "Seek forward" +msgstr "Avançar" + +# +#, fuzzy +msgid "Seek forward (enter time)" +msgstr "avançar (inserir tempo)" + +# +msgid "Select" +msgstr "Selecionar" + +# +#, fuzzy +msgid "Select CAId" +msgstr "selecionar CAId" + +# +msgid "Select HDD" +msgstr "Seleccione o Disco" + +# +#, fuzzy +msgid "Select a bouquet" +msgstr "Selecione um filme" + +# +msgid "Select a movie" +msgstr "Selecione um filme" + +# +#, fuzzy +msgid "Select a network adapter" +msgstr "Selecione adaptador de rede" + +# +#, fuzzy +msgid "Select a skin" +msgstr "Selecione um filme" + +# +#, fuzzy +msgid "Select a tuner" +msgstr "Selecione um filme" + +# +#, fuzzy +msgid "Select a wireless network" +msgstr "Selecionar Rede sem fios" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +#, fuzzy +msgid "Select an image to be downloaded" +msgstr "Escolha uma imagem para download" + +# +msgid "Select audio track" +msgstr "Selecção de audio" + +# +#, fuzzy +msgid "Select backup files" +msgstr "Escolha ficheiros de backup" + +# +#, fuzzy +msgid "Select backup location" +msgstr "Escolha um destino para backup" + +# +msgid "Select channel to record from" +msgstr "Selecione o canal que deseja gravar" + +msgid "Select copy destination for:" +msgstr "Selecione o destino para copiar:" + +msgid "Select default EPG type..." +msgstr "" + +msgid "Select desired image from feed list" +msgstr "Selecione a imagem desejada da lista" + +msgid "Select destination for:" +msgstr "Selecione um destino para:" + +msgid "Select files for backup." +msgstr "Selecione ficheiros para backup." + +# +msgid "Select files/folders to backup" +msgstr "Selecione ficheiros/pastas para backup" + +msgid "Select input device" +msgstr "Selecionar dispositivo de entrada" + +msgid "Select input device." +msgstr "Selecionar dispositivo de entrada." + +# +msgid "Select interface" +msgstr "Selecionar interface" + +# +#, fuzzy +msgid "Select location" +msgstr "Seleccione Localização" + +# +#, fuzzy +msgid "Select movie" +msgstr "Selecione um filme" + +# +msgid "Select provider to add..." +msgstr "Selecionar operador para adicionar..." + +# +msgid "Select refresh rate" +msgstr "Seleccione o Refresh Rate" + +msgid "Select satellites" +msgstr "" + +# +msgid "Select service to add..." +msgstr "Selecionar serviço para adicionar..." + +msgid "Select sort method:" +msgstr "" + +# +#, fuzzy +msgid "Select target folder" +msgstr "Seleccione " + +# +#, fuzzy +msgid "Select the movie path" +msgstr "seleccione a pasta de gracações" + +# +#, fuzzy +msgid "Select upgrade source" +msgstr "Selecionar fonte de actualizações para editar." + +# +msgid "Select upgrade source to edit." +msgstr "Selecionar fonte de actualizações para editar." + +# +msgid "Select video input with up/down buttons" +msgstr "Selecionar entrada de video com os botões de cima/baixo" + +# +msgid "Select video mode" +msgstr "Seleccione modo de Video" + +# +msgid "Select wireless network" +msgstr "Selecionar Rede sem fios" + +msgid "Select your provider, and press OK to start the scan" +msgstr "Selecione o seu operador, e primaOK para iniciar a busca" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +# +msgid "Send DiSEqC only on satellite change" +msgstr "Só enviar comando DISEqC ao mudar de satélite" + +# +msgid "Separate titles with a main menu" +msgstr "Separar títulos com um menu principal" + +# +msgid "Sequence repeat" +msgstr "Repita a Sequência" + +# +msgid "Serbian" +msgstr "Sérvio" + +# +msgid "Service" +msgstr "Canal" + +# +msgid "Service has been added to the favourites." +msgstr "Adicionado aos Favoritos" + +# +msgid "Service has been added to the selected bouquet." +msgstr "Adicionado ao Bouquet selecionado" + +# +#, fuzzy +msgid "Service info" +msgstr "Info " + +# +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Canal invalido!\n" +"(Timeout reading PMT)" + +#, fuzzy +msgid "Service name" +msgstr "Dispositivo:" + +# +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Canal não encontrado!\n" +"(SID not found in PAT)" + +msgid "Service reference" +msgstr "Referência" + +# +msgid "Service scan" +msgstr "Busca de Canais" + +# +#, fuzzy +msgid "Service searching" +msgstr "Procura de Canais" + +# +#, fuzzy +msgid "Service title mode" +msgstr "Seleccione modo de Video" + +# +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"Serviço indisponivel!\n" +"Verifique o Tuner!" + +# +msgid "Services" +msgstr "Serviços" + +msgid "Set default" +msgstr "" + +# +#, fuzzy +msgid "Set end time" +msgstr "Definir tempo final" + +msgid "Set fixed" +msgstr "Definir fixo" + +msgid "Set fps for external subtitles" +msgstr "" + +# +msgid "Set interface as default Interface" +msgstr "Definir interface como padrão" + +#, fuzzy +msgid "Set limits" +msgstr "Definir limites" + +# +#, fuzzy +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "Mostrar progresso dos eventos na lista de canais" + +msgid "Set time window to 1 hour" +msgstr "Definir janela de tempo para 1 hora" + +msgid "Set time window to 2 hours" +msgstr "Definir janela de tempo para 2 hora" + +msgid "Set time window to 3 hours" +msgstr "Definir janela de tempo para 3 hora" + +msgid "Set time window to 4 hours" +msgstr "Definir janela de tempo para 4 hora" + +msgid "Set time window to 5 hours" +msgstr "Definir janela de tempo para 5 hora" + +msgid "Set time window to 6 hours" +msgstr "" + +# +#, fuzzy +msgid "Set voltage and 22KHz" +msgstr "Defenir Tensão e 22KHz" + +# +msgid "Settings" +msgstr "Definições" + +# +msgid "Setup" +msgstr "Definições" + +msgid "Setup menu" +msgstr "Menu de Definições" + +# +#, fuzzy +msgid "Setup mode" +msgstr "Modo configuração" + +msgid "Setup your positioner" +msgstr "Programe o seu posicionador" + +# +#, fuzzy +msgid "Setup your satellite equipment" +msgstr "Equipamento satélite" + +# +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "Decerá o Assistente de PEN Drive proceder e programar o ficheiro de imagem %s na memoria flash?" + +# +msgid "Sharpness" +msgstr "Nitidez" + +msgid "Short filenames" +msgstr "Nomes curtos de ficheiros" + +msgid "Show EIT now/next in infobar" +msgstr "Mostrar EIT agora/próximo na infobar" + +# +#, fuzzy +msgid "Show EPG for current channel..." +msgstr "Mostrar infobar ao mudar de canal" + +# +#, fuzzy +msgid "Show EPG..." +msgstr "Mostar EPG..." + +msgid "Show Games show" +msgstr "" + +msgid "Show SNR percentage instead of dB value" +msgstr "" + +msgid "Show VCR scart on main menu" +msgstr "" + +# +#, fuzzy +msgid "Show WLAN status" +msgstr "Mostrar o estado da Rede sem fios" + +msgid "Show animation while busy" +msgstr "Mostrar animação enquanto ocupado" + +#, fuzzy +msgid "Show background in radio mode" +msgstr "Mostrar fundo no Modo de Radio" + +msgid "Show bouquet selection menu" +msgstr "Mostrar o menu de selecção de favoritos" + +msgid "Show busy indicator when the system is busy." +msgstr "" + +msgid "Show channel numbers in channel selection" +msgstr "Mostrar a numeração dos canais na lista de canais" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "Mostrar a encriptação na infobar" + +msgid "Show detailed event info" +msgstr "Mostrar informação detalhada dos enventos" + +# +#, fuzzy +msgid "Show event details" +msgstr "Mostrar detalhes do programa" + +# +msgid "Show event-progress in channel selection" +msgstr "Mostrar progresso dos eventos na lista de canais" + +# +#, fuzzy +msgid "Show extended description" +msgstr "Mostrar descrição extensa" + +# +#, fuzzy +msgid "Show extensions..." +msgstr "ver extensões" + +msgid "Show icon for new/unseen items" +msgstr "Mostrar ícone para grvações novas/sem visualizações" + +msgid "Show in extensions menu" +msgstr "" + +# +#, fuzzy +msgid "Show info" +msgstr "Mostrar Info" + +# +#, fuzzy +msgid "Show info line" +msgstr "mostrar Infoline" + +# +msgid "Show infobar on channel change" +msgstr "Mostrar Info ao mudar de canal normal" + +# +msgid "Show infobar on event change" +msgstr "Mostrar infobar ao mudar de canal" + +# +msgid "Show infobar on skip forward/backward" +msgstr "Mostrar Info ao mudar de canal rapido < >" + +msgid "Show latest commits on sourceforge" +msgstr "" + +# +#, fuzzy +msgid "Show message when recording starts" +msgstr "Mostrar uma mensagem quando uma gravação iniciar" + +#, fuzzy +msgid "Show movie lengths in movielist" +msgstr "Mostrar ícones de estado na lista de gravações " + +msgid "Show multi channel EPG" +msgstr "" + +msgid "Show picons in channel list" +msgstr "" + +# +msgid "Show positioner movement" +msgstr "Mostrar movimento do posicionador" + +msgid "Show screensaver" +msgstr "" + +msgid "Show second infobar" +msgstr "Mostrar segunda infobar" + +msgid "Show service type icons" +msgstr "" + +# +msgid "Show services beginning with" +msgstr "Mostrar canais que comecem por..." + +# +#, fuzzy +msgid "Show shutdown menu" +msgstr "Mostrar menu desligar" + +msgid "Show single service EPG" +msgstr "" + +msgid "Show status icons in Movielist" +msgstr "" + +#, fuzzy +msgid "Show status icons in movie list" +msgstr "Mostrar ícones de estado na lista de gravações " + +#, fuzzy +msgid "Show status icons in movielist" +msgstr "Mostrar ícones de estado na lista de gravações " + +# +#, fuzzy +msgid "Show tag menu" +msgstr "mostrar menu de marcas" + +# +msgid "Show the radio player..." +msgstr "Mostrar o Radio" + +# +msgid "Show the tv player..." +msgstr "Mostrar TV" + +msgid "Show warning when timeshift is stopped" +msgstr "" + +# +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Mostra o estado da Rede sem fios.\n" + +# +#, fuzzy +msgid "Shuffle playlist" +msgstr "modo aleatório" + +# +msgid "Shutdown" +msgstr "Desligar" + +msgid "Shutdown when in Standby" +msgstr "" + +#, fuzzy +msgid "Side by side" +msgstr "Lado a Lado" + +msgid "Signal OK, proceeding" +msgstr "Sinal OK, a proceder" + +msgid "Signal quality" +msgstr "Qualidade do sinal" + +# +#, fuzzy +msgid "Signal strength:" +msgstr "Força do sinal:" + +# +msgid "Signal: " +msgstr "Sinal:" + +# +msgid "Similar" +msgstr "Igual" + +# +msgid "Similar broadcasts:" +msgstr "Emissões Identicas:" + +# +msgid "Simple" +msgstr "Simples" + +# +msgid "Simple titleset (compatibility for legacy players)" +msgstr "Definição simples de título (compatibilidade para os reprodutores antigos)" + +# +msgid "Single" +msgstr "Unico" + +# +msgid "Single EPG" +msgstr "EPG unico" + +# +msgid "Single satellite" +msgstr "Só um Satelite" + +# +#, fuzzy +msgid "Single step (GOP)" +msgstr "Singlestep (GOP)" + +# +msgid "Single transponder" +msgstr "Transponder unico" + +msgid "Site latitude" +msgstr "Latitude local" + +msgid "Site longitude" +msgstr "Longitude local" + +# +msgid "Skin" +msgstr "Tema" + +# +msgid "Skins" +msgstr "Temas" + +#, fuzzy +msgid "Skip empty services" +msgstr "Saltar Canais sem Programação" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "" + +# +#, fuzzy +msgid "Sleep timer" +msgstr "Temporizador" + +msgid "SleepTimer Configuration" +msgstr "" + +msgid "Sleeptimer" +msgstr "" + +# +#, fuzzy +msgid "Slide picture in loop" +msgstr "imagem de slide em loop" + +# +#, fuzzy +msgid "Slide show interval (sec.)" +msgstr "Intervalo do visualizador de imagens (seg.)" + +# +#, python-format +msgid "Slot %d" +msgstr "Slot %d" + +msgid "Slovak" +msgstr "Eslovaco" + +# +msgid "Slovenian" +msgstr "Esloveno" + +# +msgid "Slow" +msgstr "Lento" + +# +#, fuzzy +msgid "Slow motion speeds" +msgstr "Velocidades do modo camera lenta" + +# +#, fuzzy +msgid "Small progress" +msgstr "Em Progresso" + +msgid "Social/Political/Economics" +msgstr "" + +msgid "SoftCam / CI" +msgstr "" + +msgid "Softcam type" +msgstr "" + +msgid "Software" +msgstr "" + +# +msgid "Software management" +msgstr "Gestor de Software" + +msgid "Software manager setup" +msgstr "Opções de Instalação" + +# +msgid "Software restore" +msgstr "Restauro de Software" + +# +msgid "Software update" +msgstr "Actualização de Software" + +msgid "Softwaremanager information" +msgstr "Informação do gestor de software" + +# +msgid "Some plugins are not available:\n" +msgstr "Alguns plugins não estão disponiveis:\n" + +# +#, fuzzy, python-format +msgid "Sorry, %s has not been installed!" +msgstr "Desculpe mas o MediaScanner não está instalado!" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "" + +# +#, fuzzy +msgid "Sorry, no backups found!" +msgstr "Desculpe mas não foram encontrados backups!" + +# +#, fuzzy +msgid "Sorry, no details available!" +msgstr "Desculpe, detalhes não disponíveis!" + +# +#, fuzzy +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"Desculpe, o seu destino para backup não é acessivél.\n" +"Por favor escolha outro destino." + +msgid "Sort" +msgstr "Ordenar" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Ordenar A-Z" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +#, fuzzy +msgid "Sort time" +msgstr "Ordenar por tempo" + +# +msgid "Sound" +msgstr "Som" + +# +#, fuzzy +msgid "Sound carrier" +msgstr "Soundcarrier" + +msgid "Source request" +msgstr "Requesito de fonte" + +# +msgid "South" +msgstr "Sul" + +# +msgid "Spanish" +msgstr "Catalão" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +# +msgid "Split preview mode" +msgstr "Dividir modo de previsualização" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "" + +# +#, fuzzy +msgid "Standard" +msgstr "standard" + +msgid "Standart list" +msgstr "" + +# +msgid "Standby" +msgstr "Standby" + +# +#, fuzzy +msgid "Standby / restart" +msgstr "Stanby / Reiniciar" + +msgid "Standby after current event" +msgstr "" + +# +#, fuzzy, python-format +msgid "Standby fan %d PWM" +msgstr "Ventilador em standby %d PWM" + +# +#, fuzzy, python-format +msgid "Standby fan %d voltage" +msgstr "Tensão do ventilador em standby %d" + +msgid "Standby in " +msgstr "" + +msgid "StandbyLED" +msgstr "" + +# +msgid "Start from the beginning" +msgstr "Começar no inicio" + +msgid "Start offline decode" +msgstr "Iniciar desencriptação offline" + +# +msgid "Start recording?" +msgstr "Iniciar a gravação?" + +# +msgid "Start test" +msgstr "Iniciar teste" + +# +#, fuzzy +msgid "Start time" +msgstr "Tempo de Inicio" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +# +#, fuzzy +msgid "Start timeshift" +msgstr "Iniciar timeshift" + +msgid "Start with list screen" +msgstr "" + +# +msgid "Starting on" +msgstr "A Iniciar" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +# +msgid "Step east" +msgstr "Avançar Este" + +# +msgid "Step west" +msgstr "Avançar Oeste" + +msgid "Stepped east" +msgstr "Passo para este" + +msgid "Stepped west" +msgstr "Passo para oeste" + +# +msgid "Stop" +msgstr "Stop" + +# +#, fuzzy +msgid "Stop PiP" +msgstr "stop PiP" + +# +msgid "Stop current event and disable coming events" +msgstr "Parar programa actual e desabilitar novos programas" + +# +msgid "Stop current event but not coming events" +msgstr "Parar programa actual, mas não desabilitar novos programas" + +# +#, fuzzy +msgid "Stop entry" +msgstr "parar" + +# +msgid "Stop playing this movie?" +msgstr "Parar a reprodução?" + +msgid "Stop recording" +msgstr "Parar a gravação" + +msgid "Stop recording and delete" +msgstr "Parar e apagar a gravação" + +msgid "Stop service on return to movie list" +msgstr "" + +# +msgid "Stop test" +msgstr "Parar teste" + +# +msgid "Stop testing plane after # failed transponders" +msgstr "Parar de testar o plano depois dos # transponders falharem" + +# +msgid "Stop testing plane after # successful transponders" +msgstr "Parar de testar o plano depois dos # transponders terem sucesso" + +msgid "Stop timer recording" +msgstr "" + +# +#, fuzzy +msgid "Stop timeshift" +msgstr "Parar timeshift" + +# +#, fuzzy +msgid "Stop timeshift?" +msgstr "Parar o Timeshift?" + +msgid "Stopped" +msgstr "Parado" + +msgid "Store at index" +msgstr "Guardar no indice" + +# +msgid "Store position" +msgstr "Guardar posição" + +# +msgid "Stored position" +msgstr "Posição Guardada" + +#, fuzzy +msgid "Stream" +msgstr "Pedido de stream" + +msgid "Stream request" +msgstr "Pedido de stream" + +msgid "Strongest position" +msgstr "Posição mais forte" + +# +msgid "Subservice list..." +msgstr "Lista de Subserviços... " + +# +msgid "Subservices" +msgstr "Subserviços" + +msgid "Subtitle Quickmenu" +msgstr "" + +#, fuzzy +msgid "Subtitle alignment" +msgstr "Alinhamento das legendas" + +#, fuzzy +msgid "Subtitle border width" +msgstr "Tamanho de rebordo" + +msgid "Subtitle delay when timing is bad" +msgstr "" + +msgid "Subtitle delay when timing lacks" +msgstr "Atraso na legenda quando o tempo falha" + +#, fuzzy +msgid "Subtitle font size" +msgstr "Tamanho de letra" + +msgid "Subtitle language selection 1" +msgstr "Idioma de legenda 1" + +msgid "Subtitle language selection 2" +msgstr "Idioma de legenda 2" + +msgid "Subtitle language selection 3" +msgstr "Idioma de legenda 3" + +msgid "Subtitle language selection 4" +msgstr "Idioma de legenda 4" + +# +#, fuzzy +msgid "Subtitle position" +msgstr "Selecção de Legendas" + +# +msgid "Subtitle selection" +msgstr "Selecção de Legendas" + +msgid "Subtitle selection..." +msgstr "Selecção de Legendas..." + +msgid "Subtitle settings" +msgstr "Legendas" + +# +msgid "Subtitles" +msgstr "Legendas" + +# +msgid "Sun" +msgstr "Dom" + +# +msgid "Sunday" +msgstr "Domingo" + +# +#, fuzzy +msgid "Swap PiP and main picture" +msgstr "alterar PiP com imagem principal" + +# +#, fuzzy +msgid "Swap services" +msgstr "Troca entrecanais" + +# +msgid "Swedish" +msgstr "Sueco" + +msgid "Switch TV to correct input" +msgstr "Mudar a TV para a entrada correcta" + +msgid "Switch between filelist/playlist" +msgstr "" + +msgid "Switch between normal mode and list mode" +msgstr "" + +msgid "Switch to HDMI in mode" +msgstr "" + +# +#, fuzzy +msgid "Switch to filelist" +msgstr "Ver lista de ficheiros" + +msgid "Switch to next channel" +msgstr "" + +# +#, fuzzy +msgid "Switch to next channel in history" +msgstr "proxima canal na memoria" + +# +#, fuzzy +msgid "Switch to next sub service" +msgstr "Mudar para o proximo canal" + +# +#, fuzzy +msgid "Switch to playlist" +msgstr "Ver a lista" + +# +#, fuzzy +msgid "Switch to previous channel" +msgstr "Mudar para o canal anterior" + +# +#, fuzzy +msgid "Switch to previous channel in history" +msgstr "canal anterior na memória" + +# +#, fuzzy +msgid "Switch to previous sub service" +msgstr "Mudar para o canal anterior" + +# +msgid "Switchable tuner types:" +msgstr "Tipos de tuner selecionáveis" + +msgid "Symbol rate" +msgstr "" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "Sincronização falhou, a voltar para a origem !" + +# +msgid "System" +msgstr "Sistema" + +# +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "TRANSLATOR_INFO" + +# +msgid "TS file is too large for ISO9660 level 1!" +msgstr "O ficheiro TS é grande demais para ISO9660 level 1!" + +msgid "TSID" +msgstr "" + +msgid "TV physical address report" +msgstr "" + +msgid "TXT PID" +msgstr "" + +# +#, fuzzy +msgid "Table of contents for collection" +msgstr "Tabela de conteudos da colecção" + +# +msgid "Tags" +msgstr "Etiquetas" + +msgid "Teletext subtitle color" +msgstr "Cor das legendas de teletexto" + +# +#, fuzzy +msgid "Temperature and fan control" +msgstr "Controlo de temperatura e ventilador" + +# +msgid "Terrestrial" +msgstr "Terrestre" + +# +msgid "Terrestrial provider" +msgstr "Provedor Terrestre" + +# +msgid "Test DiSEqC settings" +msgstr "Testar as definições de DISEqC" + +# +msgid "Test mode" +msgstr "Modo de teste" + +msgid "Test the network configuration of your receiver.\n" +msgstr "" + +# +#, fuzzy +msgid "Test type" +msgstr "Tipo de teste" + +# +#, fuzzy +msgid "Text color" +msgstr "cor do texto" + +msgid "Thai" +msgstr "Tailandês" + +# +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"Obrigado por usar o Assistente.\n" +"Por favor prima OK para continuar." + +# +#, fuzzy +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"Obrigado por usar o Assistente.\n" +"Por favor prima OK para continuar." + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "" + +msgid "The PIN code has been changed successfully." +msgstr "O código PIN foi alterado com sucesso." + +msgid "The PIN codes you entered are different." +msgstr "Os códigos PIN que introduzio são diferentes." + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" +"A PEN Drive foi preparada para ser bootable.\n" +"Agora pode fazer o download de uma imagem NFI!" + +# +msgid "The backup failed. Please choose a different backup location." +msgstr "O restauro falhou. Por favor faça o restauro noutra pasta." + +#, fuzzy, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "A imagem beta actual não poderá não estar estável" + +# +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"Não é possivél escrever na pasta %s.\n" +"Selecione uma pasta que possa ser escrita." + +# +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"O seguinte dispositivo não foi encontrado:\n" +"\n" +"%s\n" +"\n" +"Deseja escrever o USB flasher para esta PEN Drive?" + +# +msgid "The following files were found..." +msgstr "Os seguintes ficheiros não foram encontrados..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "A validação md5 falhou, o ficheiro deverá estar corrupto." + +# +#, fuzzy +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"A extensão Assistente de Rede não está instalada!\n" +"Por favor instale-a." + +# +#, python-format +msgid "The path %s already exists." +msgstr "A pasta %s já existe." + +# +msgid "The pin code you entered is wrong." +msgstr "o PIN que introduziu está errado." + +# +#, python-format +msgid "The results have been written to %s." +msgstr "Os resultados foram escritos em %s." + +# +msgid "The sleep timer has been activated." +msgstr "O temporizador foi activado." + +# +msgid "The sleep timer has been disabled." +msgstr "Desactivou o temporizador" + +# +#, fuzzy +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"A eztensão Gestor de Software não está instalada!\n" +"Por favor intale-a." + +#, fuzzy, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "O estado da imagem beta actual não pôde ser verificado porque o websie www.openpli.org não pode ser aberto por alguma razão" + +# +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "O ficheiro Timer (timers.xml) esta corrompido e não pode ser carregado." + +#, fuzzy +msgid "The user interface of your receiver is restarting" +msgstr "O interface visual está a reiniciar!" + +#, fuzzy +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" +"O enigma2 está a reiniciar\n" +"devido a um erro em mytest.py" + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"Este plugin de Rede sem fios não está instalado!\n" +"Por favor instale-o e escolha o que fazer a seguir." + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"Este plugin de Rede sem fios não está instalado!\n" +"Por favor instale-o." + +# +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "O assistente pode guardar os seus dados.Deseja guardá-los agora?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "O Assistente encontrou um backup de configurções. Deseja restaurar a configurações antigas presentes em %s?" + +# +msgid "The wizard is finished now." +msgstr "O assitente terminou." + +# +msgid "There are at least " +msgstr "Existem pelo menos" + +# +#, fuzzy, python-format +msgid "There are at least %s updates available." +msgstr "Não existem plugins disponíveis." + +# +msgid "There are currently no outstanding actions." +msgstr "Atualmente não existem acções pendentes." + +# +msgid "There are no updates available." +msgstr "Não existem plugins disponíveis." + +msgid "There is no signal to lock on !" +msgstr "Não há sinal para establecer!" + +# +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"Não existe espaço suficiente na partiçaõ seleccionada.\n" +"Deseja continuar?" + +# +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "Este DVD RW já está formatado - reformatar irá apagar todo o conteudo do disco." + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" + +# +msgid "This plugin is installed." +msgstr "Este plugin está instalado." + +# +msgid "This plugin is not installed." +msgstr "Este plugin não está instalado." + +# +msgid "This plugin will be installed." +msgstr "Este pluginvai ser instalado." + +# +msgid "This plugin will be removed." +msgstr "Este plugin vai ser removido." + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "" + +# +#, fuzzy +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"Este teste verifica os servidores DNS.\n" +"Se receber uma mensagem \"não confirmada\":\n" +"-por favor verifique o DHCP, opçoes do adaptador e o cabo de rede\n" +"-se configurou o servidor DNS manualmente verifique as entradas na Configurações de \"Servidor DNS\" " + +# +#, fuzzy +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Este teste verifica se um cabo de rede está ligado ao seu adaptador-LAN.\n" +"Se receber uma mensagem \"desligado\":\n" +"- verifique se o cabo está ligado\n" +"- verifique se o cabo não está partido" + +# +#, fuzzy +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Este teste verifica se um IP valido foi encontrado para o Adaptador-LAN.\n" +"Se receber uma mensagem \"não confirmado\":\n" +"- não foi encontrado nenhum endereço de IP valido\n" +"- verificar se tem o servidor DHCP configurado e a funcionar na sua rede." + +# +#, fuzzy +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"Este teste verifica se um adaptador-LAN define um IP automaticamente com DHCP.\n" +"Se receber uma mensagem \"desabilitado\":\n" +"- Então o adaptador LAN está configurado para configuração de IP manual\n" +"- Verificar se introduziu o IP na caixa de diálogo Definições do Adaptador.\n" +"Se receber um \"activo\" mensagem:\n" +"- Verificar se tem o servidor DHCP configurado e a funcionar na sua rede." + +# +#, fuzzy +msgid "This test detects your configured LAN adapter." +msgstr "Este teste detecta as configurações do Adaptador-LAN." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" +"Isto irá (re)calcular todas as posições do motor e poderá remover posições anteriormente memorizadas e finamente afinadas!\n" +"Tem a certeza?" + +# +msgid "Three" +msgstr "Três." + +# +msgid "Threshold" +msgstr "Threshold" + +# +msgid "Thu" +msgstr "Qui" + +# +msgid "Thumbnails" +msgstr "Miniaturas" + +# +msgid "Thursday" +msgstr "Quinta-Feira" + +# +msgid "Time" +msgstr "Hora" + +#, fuzzy +msgid "Time scale" +msgstr "Escala de Tempo" + +# +msgid "Timer" +msgstr "Gravações" + +msgid "Timer Overview" +msgstr "" + +# +#, fuzzy +msgid "Timer edit" +msgstr "Editar o Temporizador" + +# +#, fuzzy +msgid "Timer editor" +msgstr "Editor do Temporizador" + +# +msgid "Timer entry" +msgstr "Agendar Gravação" + +# +msgid "Timer log" +msgstr "Registo da Gravação" + +# +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"Sobreposição de temporizadores em timers.xml detectada!\n" +"Por favor verifique isso!" + +#, fuzzy +msgid "Timer overview" +msgstr "Gravações Agendadas" + +# +#, fuzzy +msgid "Timer recording location" +msgstr "Localização das gravações" + +# +msgid "Timer sanity error" +msgstr "Erro do Temporizador" + +# +msgid "Timer selection" +msgstr "Selecção do Temporizador" + +msgid "Timer selection..." +msgstr "" + +# +#, fuzzy +msgid "Timer type" +msgstr "Tipo de Temporizador" + +# +msgid "Timeshift" +msgstr "Timeshift" + +msgid "Timeshift Live" +msgstr "" + +# +msgid "Timeshift location" +msgstr "Localização para Timeshift" + +# +msgid "Timeshift not possible!" +msgstr "Timeshift não permitido!" + +# +msgid "Timezone" +msgstr "Zona Horária" + +# +msgid "Title" +msgstr "Título" + +# +msgid "Title properties" +msgstr "Propriedades de título" + +# +msgid "Titleset mode" +msgstr "Modo de definição de título" + +msgid "To audio selection" +msgstr "Voltar à selecção de audio" + +msgid "To subtitle selection" +msgstr "Legendas" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" + +# +msgid "Today" +msgstr "Hoje" + +# +#, fuzzy +msgid "Toggle a cut mark at the current position" +msgstr "marcar na posição actual" + +# +#, fuzzy +msgid "Tone amplitude" +msgstr "Modo de amplitude" + +# +msgid "Tone mode" +msgstr "Modo de sintonia" + +# +msgid "Toneburst" +msgstr "Toneburst" + +# +msgid "Toneburst A/B" +msgstr "Toneburst A/B" + +#, fuzzy +msgid "Top and bottom" +msgstr "Topo e Fundo" + +# +msgid "Track" +msgstr "Faixa" + +# +msgid "Translation" +msgstr "Tradução" + +# +msgid "Translation:" +msgstr "Tradução:" + +msgid "Translations" +msgstr "" + +# +msgid "Transmission mode" +msgstr "Modo de Transmissão" + +# +msgid "Transponder" +msgstr "Transponder" + +# +#, fuzzy +msgid "Transponder type" +msgstr "Tipo deTransponder" + +#, fuzzy +msgid "Trash can" +msgstr "Reciclagem" + +# +msgid "Tries left:" +msgstr "Tries restantes:" + +# +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Tentar encontrar transponders usados na rede do cabo. esperar por favor…" + +# +msgid "Trying to download a new packetlist. Please wait..." +msgstr "A tentar o download de uma nova lista de pacotes. Por favor aguarde..." + +# +msgid "Tue" +msgstr "Ter" + +# +msgid "Tuesday" +msgstr "Terça-Feira" + +# +msgid "Tune" +msgstr "Sintonizar " + +#, fuzzy +msgid "Tune and focus" +msgstr "Sintonização e focagem" + +# +msgid "Tune failed!" +msgstr "Falhou!" + +# +msgid "Tuner" +msgstr "Tuner" + +# +msgid "Tuner configuration" +msgstr "Definições do Tuner" + +msgid "Tuner is not supported" +msgstr "" + +# +#, fuzzy +msgid "Tuner slot" +msgstr "Entrada do tuner" + +# +msgid "Tuner status" +msgstr "Estado do Tuner" + +# +#, fuzzy, python-format +msgid "Tuner status %s" +msgstr "Estado do Tuner" + +# +msgid "Tuner type" +msgstr "Tipo de tuner" + +# +msgid "Turkish" +msgstr "Turco" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +# +msgid "Two" +msgstr "Dois" + +# +msgid "Type" +msgstr "Tipo" + +# +msgid "Type of scan" +msgstr "Tipo de Busca" + +# +msgid "USALS" +msgstr "USALS" + +#, fuzzy +msgid "USALS calibration" +msgstr "Calibração USALS" + +# +#, fuzzy +msgid "USB stick" +msgstr "USB Stick" + +# +msgid "USB stick wizard" +msgstr "Assistente de USB Drive" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Actualização sem interface visual em progresso\n" +"Por favor aguarde até o receptor reiniciar\n" +"Isto poderá demorar alguns minutos" + +# +msgid "Undo install" +msgstr "Reverter instalação" + +# +msgid "Undo uninstall" +msgstr "Reverter desinstalação" + +msgid "Unencrypted" +msgstr "Desencriptado" + +# +msgid "UnhandledKey" +msgstr "r" + +# +msgid "Unicable" +msgstr "Cabo unico" + +# +msgid "Unicable LNB" +msgstr "LNB de cabo unico" + +# +msgid "Unicable Martix" +msgstr "Matriz de cabo unico" + +# +msgid "Uninstall" +msgstr "Desinstalar" + +# +msgid "Universal LNB" +msgstr "LNB Universal " + +msgid "Unknown" +msgstr "Desconhecido" + +msgid "Unmount" +msgstr "Desmontar" + +# +msgid "Unsupported" +msgstr "Não suportado" + +# +msgid "Update" +msgstr "Actualizar" + +#, fuzzy +msgid "Update and ask to reboot" +msgstr "Actualizar e perguntar para reiniciar" + +msgid "Update and reboot (recommended)" +msgstr "" + +# +#, fuzzy +msgid "Update channel list only" +msgstr "proxima canal na memoria" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "" +msgstr[1] "" + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "" + +msgid "Update has completed." +msgstr "" + +# +msgid "Updatefeed not available." +msgstr "Servidor de actualizações não disponével" + +# +msgid "Updating software catalog" +msgstr "A actualizar o catalogo de software" + +# +msgid "Upgrading" +msgstr "A actualizar" + +# +msgid "Use" +msgstr "Usar" + +# +msgid "Use DHCP" +msgstr "Usar DHCP" + +msgid "Use EIT EPG information when it is available." +msgstr "" + +msgid "Use FreeSat EPG information when it is available." +msgstr "" + +msgid "Use MHW EPG information when it is available." +msgstr "" + +msgid "Use Netmed EPG information when it is available." +msgstr "" + +msgid "Use TV remote control" +msgstr "Usar o comando remoto da TV" + +# +#, fuzzy +msgid "Use USALS for this sat" +msgstr "Usar usals para este satelite" + +msgid "Use ViaSat EPG information when it is available." +msgstr "" + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +# +msgid "Use a gateway" +msgstr "Use gateway" + +msgid "Use fastscan channel names" +msgstr "Usar o nome dos canais da busca rapida" + +msgid "Use fastscan channel numbering" +msgstr "Usar o número dos canais da busca rapida" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "" + +# +#, fuzzy +msgid "Use interface" +msgstr "Interface de Uso" + +msgid "Use official channel numbering" +msgstr "Usar a númeração oficial dos canais" + +#, fuzzy +msgid "Use original DVB subtitle position" +msgstr "Usar a posição original das legendas DVB" + +msgid "Use original teletext position" +msgstr "Usar a posição original do teletexto" + +# +msgid "Use power measurement" +msgstr "Usar controlo da alimentação" + +# +#, fuzzy +msgid "Use the network wizard to configure selected network adapter" +msgstr "Usar o Assistente de Rede para configurar o adaptador de rede" + +# +#, fuzzy +msgid "Use the network wizard to configure your network\n" +msgstr "Usar o Assistente de Rede para configurar a sua Rede\n" + +# +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "" +"Use os botões cima/baixo do seu comando para selecionar.\n" +"Depois carregue OK" + +# +#, fuzzy +msgid "Use the wizard to set up basic features" +msgstr "Utilizar o assistente" + +#, fuzzy +msgid "Use these input device settings?" +msgstr "Usar estas definições deste dispositivo de entrada?" + +#, fuzzy +msgid "Use these settings?" +msgstr "Usar estas definições?" + +# +msgid "Use this video enhancement settings?" +msgstr "Usar estas opções de imagem?" + +#, fuzzy +msgid "Use trash can in movielist" +msgstr "Usar reciclagem na lista de Gravações" + +# +msgid "Used service scan type" +msgstr "Tipo usado na busca" + +msgid "User - bouquets" +msgstr "Favoritos" + +# +msgid "User defined" +msgstr "Definições do utilizador" + +msgid "User defined transponder" +msgstr "" + +# +#, fuzzy +msgid "User interface" +msgstr "Interface de Uso" + +# +msgid "Username" +msgstr "Utilizador" + +#, python-format +msgid "Using LNB %d" +msgstr "" + +msgid "Using fixed address" +msgstr "Usar endereço fixo" + +#, python-format +msgid "Using tuner %s" +msgstr "" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "" + +# +msgid "VCR scart" +msgstr "Entrada VCR" + +# +msgid "VMGM (intro trailer)" +msgstr "VMGM (trailer de intro)" + +# +msgid "Vertical" +msgstr "Vertical" + +msgid "Vertical turning speed" +msgstr "Velocidade de viragem vertical" + +msgid "Video PID" +msgstr "" + +# +msgid "Video enhancement preview" +msgstr "Previsualizar Opções de Imagem" + +# +msgid "Video enhancement settings" +msgstr "Opções de Imagem" + +# +msgid "Video enhancement setup" +msgstr "Opções de Imagem" + +# +#, fuzzy +msgid "Video fine tuning" +msgstr "Sintonia fina de Video" + +# +#, fuzzy +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Selecção da entrada de video\n" +"\n" +"Por favor carregue OK se consegue ver esta página (ou seleccione outra porta de entrada).\n" +"\n" +"A porta seleccionada será usada automaticamente dentro de 10 segundos." + +# +msgid "Video mode selection." +msgstr "Selecção do modo de video" + +# +#, fuzzy +msgid "Video output" +msgstr "Saída de Video" + +# +#, fuzzy +msgid "Video setup" +msgstr "Definições de Video" + +# +#, fuzzy +msgid "Video wizard" +msgstr "Assistente de Video" + +#, python-format +msgid "Video: %s fps" +msgstr "" + +msgid "VideoMode" +msgstr "" + +msgid "Videocodec" +msgstr "Codec" + +msgid "Videoformat" +msgstr "Formato de Video" + +msgid "Videosize" +msgstr "Resolução" + +# +msgid "View Rass interactive..." +msgstr "Ver Rass interactivo..." + +# +msgid "View details" +msgstr "Ver detalhes" + +# +msgid "View list of available " +msgstr "Ver lista de disponíveis" + +# +msgid "View list of available CommonInterface extensions" +msgstr "Ver lista de extensões do Interface Comum disponíveis" + +# +msgid "View list of available EPG extensions." +msgstr "Ver lista de extensões de EPG disponíveis" + +# +msgid "View list of available Satellite equipment extensions." +msgstr "Ver lista de extensões de Equipamento de Satélite disponíveis" + +# +msgid "View list of available communication extensions." +msgstr "Ver lista de extensões de Comunicação disponíveis" + +# +msgid "View list of available default settings" +msgstr "Ver lista de configurações padrão disponíveis" + +# +#, fuzzy +msgid "View list of available display and userinterface extensions." +msgstr "Ver lista de extensões de Ecrã e Interface de Utilizador disponíveis" + +# +msgid "View list of available multimedia extensions." +msgstr "Ver lista de extensões de Multimedia disponíveis" + +# +msgid "View list of available networking extensions" +msgstr "Ver lista de extensões de Rede disponíveis" + +# +msgid "View list of available recording extensions" +msgstr "Ver lista de extensões de Gravações disponíveis" + +# +msgid "View list of available skins" +msgstr "Ver lista de Temas disponíveis" + +# +msgid "View list of available software extensions" +msgstr "Ver lista de extensões de Software disponíveis" + +# +msgid "View list of available system extensions" +msgstr "Ver lista de extensões de Sistema disponíveis" + +# +#, fuzzy +msgid "View photos..." +msgstr "Ver Fotos..." + +# +msgid "View teletext..." +msgstr "Ver teletexto..." + +# +#, fuzzy +msgid "View video CD..." +msgstr "Ver CD de Video..." + +# +#, fuzzy +msgid "Virtual keyboard" +msgstr "Teclado no Ecrã" + +# +msgid "Voltage mode" +msgstr "Modo de tensão" + +# +msgid "Volume" +msgstr "Volume" + +# +msgid "W" +msgstr "W" + +# +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "Ligação de rede sem fios" + +# +msgid "WPA" +msgstr "WPA" + +# +msgid "WPA or WPA2" +msgstr "WPA or WPA2" + +# +msgid "WPA2" +msgstr "WPA2" + +# +msgid "WSS on 4:3" +msgstr "WSS em 4:3" + +# +msgid "Waiting" +msgstr "À espera" + +#, fuzzy +msgid "Waiting for mount" +msgstr "Esperar pela montagem" + +#, fuzzy +msgid "Waiting for partition" +msgstr "Esperar por partição" + +msgid "Wakeup" +msgstr "Acordar" + +msgid "Wakeup TV from standby" +msgstr "Acordar TV do standby" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "Acordar o receptor do standby" + +msgid "Wakeup signal from TV" +msgstr "Sinal de acordar da TV" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "" + +# +#, fuzzy +msgid "Watch movies..." +msgstr "Reproduzir filmes gravados..." + +# +#, fuzzy +msgid "Watch recordings..." +msgstr "a gravar..." + +# +msgid "Wed" +msgstr "Qua" + +# +msgid "Wednesday" +msgstr "Quarta-Feira" + +# +msgid "Weekday" +msgstr "Dia de Semana" + +msgid "Weighted position" +msgstr "Posição pesada" + +# +#, fuzzy +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"Bem-vindo ao editor Cutlist.\n" +"\n" +"Procure o inicio das coisas que quer cortar. Pressione OK, selecione 'iniciar cortar'.\n" +"\n" +"De seguida, procurar até ao fim, primir OK, selecionar \"corte final\". E é só isso." + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" + +# +msgid "Welcome..." +msgstr "Bem Vindo..." + +# +msgid "West" +msgstr "Oeste" + +msgid "West limit set" +msgstr "Definir o limite a Oeste" + +# +msgid "What do you want to scan?" +msgstr "O que deseja procurar?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "" + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "" + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "" + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "" + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "" + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "" + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "" + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "" + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "" + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "" + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "" + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "" + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "" + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "" + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "" + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "" + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "" + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "" + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "" + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "" + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "" + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "" + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "" + +msgid "When enabled, number markers will be hiden." +msgstr "" + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "" + +#, fuzzy +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "Mostrar a numeração dos canais na lista de canais" + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "" + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "" + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "" + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "" + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "" + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "" + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "" + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "" + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "" + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "" + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "" + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "" + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "" + +# +#, fuzzy +msgid "When enabled, use DHCP for the IP configuration." +msgstr "abrir a configuração do servidor de DNS" + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "" + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "" + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "" + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "" + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "" + +# +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"Quando é feito um restauro de fabrica, todas as configurações são perdidas\n" +"(includindo lista de canais, configurações do tuner, entre outras ...)\n" +"Depois do restauro de fabrica, o receptor vai reiniciar automaticamente!\n" +"\n" +"Continuar para o restauro de fabrica?" + +# +msgid "Where do you want to backup your settings?" +msgstr "Onde deseja guardar as suas definições?" + +# +msgid "Where to save temporary timeshift recordings?" +msgstr "Onde guardar as gravações temporárias do Timeshifth?" + +# +msgid "Wireless LAN" +msgstr "Rede sem fios" + +# +#, fuzzy +msgid "Wireless network" +msgstr "Rede sem fios" + +#, fuzzy +msgid "Wireless network configuration..." +msgstr "Opções da Rede sem fios." + +msgid "Wireless network connection setup" +msgstr "Opções da Rede sem fios" + +msgid "Wireless network connection setup." +msgstr "Opções da Rede sem fios." + +msgid "Wireless network state" +msgstr "Estado da Rede sem fios" + +msgid "With popup" +msgstr "" + +msgid "Without popup" +msgstr "" + +msgid "Would you like to install a softcam?" +msgstr "" + +# +msgid "Write error while recording. Disk full?\n" +msgstr "Erro ao gravar.Disco cheio?\n" + +# +msgid "Write failed!" +msgstr "Escritura falhou!" + +# +msgid "YPbPr" +msgstr "YPbPr" + +# +msgid "Year" +msgstr "Ano" + +msgid "Yellow DVB subtitles" +msgstr "Legendas DVB em amarelo" + +# +msgid "Yes" +msgstr "Sim" + +msgid "Yes and save" +msgstr "" + +msgid "Yes and save in movie dir" +msgstr "" + +# +msgid "Yes to all" +msgstr "Sim para todos" + +msgid "Yes, always" +msgstr "Sim, sempre" + +# +msgid "Yes, and delete this movie" +msgstr "Sim, e apagar este filme" + +# +msgid "Yes, backup my settings!" +msgstr "Sim, guarde as minhas definições!" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +# +msgid "Yes, do a manual scan now" +msgstr "Sim, iniciar busca manual" + +# +msgid "Yes, do an automatic scan now" +msgstr "Sim, iniciar busca automática" + +# +msgid "Yes, do another manual scan now" +msgstr "Sim, continuar busca manual" + +# +msgid "Yes, perform a shutdown now." +msgstr "Sim, desligar agora" + +# +msgid "Yes, restore the settings now" +msgstr "Sim, guardar as definições" + +# +msgid "Yes, returning to movie list" +msgstr "Sim, voltar à lista de filmes" + +msgid "Yesterday" +msgstr "Ontem" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" +"Já tem uma lista e canais insytalada,\n" +"deseja remove-la\n" +"\"%s\"?" + +# +msgid "You can cancel the installation." +msgstr "Pode cancelar a instalação." + +# +msgid "You can cancel the removal." +msgstr "Pode cancelar a remoção." + +msgid "You can continue watching TV etc. while this is running." +msgstr "Pode continuar a ver TV etc. enquabto isto decorre." + +# +msgid "You can install this plugin." +msgstr "Pode instalar este plugin." + +msgid "You can only burn receiver recordings!" +msgstr "" + +# +msgid "You can remove this plugin." +msgstr "Pode remover este plugin." + +# +msgid "You cannot delete this!" +msgstr "Não é possivel apagar" + +msgid "You didn't select a channel to record from." +msgstr "Não selecionou um canal para gravar." + +# +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "Escolheu fazer um backup de configurações. Por favor prima ok para fazer o backup agora." + +# +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "Escolheu criar um novo .NFI flasher bootable USB PEN Drive. Isto irá reparticionar a PEN Drive e por isso todos os dados nela contidos eram ser apagados." + +# +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "Escolheu restaurar as configurações. O enigma2 irá reiniciar depois do restauro. Por favor prima OK para iniciar o restauro." + +# +#, python-format +msgid "You have to wait %s!" +msgstr "Espere por favor %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" + +msgid "You system does not support ext4" +msgstr "O seu sistema não suporta ext4" + +# +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "Operação bem sucedida.Continuar a explicar o processo de actualização." + +# +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "A colecção exede o tamanho de uma unica face de um DVD, vai ser necessário um DVD de dupla face!" + +# +msgid "Your current collection will get lost!" +msgstr "A sua colecção actual irá perder-se!" + +# +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"O seu processador deve ser actualizado.\n" +"Carregue OK para iniciar" + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"O frontprocessor irá ser actualizado\n" +"Por favor espere até o receptor reiniciar\n" +"Isto poderá demorar alguns minutos" + +# +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"A ligação à Internet não está a funcionar!\n" +"Por favor escolha o que fazer a seguir." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "" + +# +msgid "Your network configuration has been activated." +msgstr "A configuração de rede foi actvada." + +msgid "Your receiver does not have an internet connection" +msgstr "" + +# +#, fuzzy +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"A Dreambox está pronta a funcionar.\n" +"\n" +"A ligação à iternet está agora a funcionar.\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" + +msgid "Your receiver is rebooting" +msgstr "A Reiniciar..." + +msgid "Your receiver is shutting down" +msgstr "A Desligar..." + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "" + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "" + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "" + +msgid "Your receiver will got to standby due to inactivity." +msgstr "" + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "" + +# +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"A ligação sem fios de internet não foi establecida!\n" +"A Pen USB WLAN foi inserida?\n" +"\n" +"Por favor escolha o que fazer a seguir." + +msgid "Zap" +msgstr "" + +# +msgid "Zap back to previously tuned service?" +msgstr "Zap para o canal sintonizado anteriormente?" + +# +msgid "Zap back to service before positioner setup?" +msgstr "Voltar ao canal antes de definir o posicionador?" + +# +msgid "Zap back to service before tuner setup?" +msgstr "Zap para o canal anterior à configuração do tuner?" + +msgid "Zap focus to Picture in Picture" +msgstr "Zap para janela PiP" + +msgid "Zap focus to main screen" +msgstr "Zap para janela principal" + +msgid "Zap mode" +msgstr "modo Zap" + +msgid "Zap to selected channel" +msgstr "Zap para o canal selecionado" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "" + +# +msgid "[alternative edit]" +msgstr "[alternative edit]" + +# +msgid "[bouquet edit]" +msgstr "[editar bouquet]" + +# +msgid "[favourite edit]" +msgstr "[editar favorito]" + +# +msgid "[move mode]" +msgstr "[modo desloca]" + +# +msgid "a gui to assign services/providers to common interface modules" +msgstr "um interfave visual para atribuir serviços/operadores a um modulo CI" + +# +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "um interfave visual para atribuir serviços/operadores/caids a um modulo CI" + +# +msgid "abort alternatives edit" +msgstr "abortar a edição de alternativas" + +# +msgid "abort bouquet edit" +msgstr "Cancelar a edição" + +# +msgid "abort favourites edit" +msgstr "Cancelar a edição" + +# +msgid "about to start" +msgstr "A iniciar" + +# +msgid "activate network adapter configuration" +msgstr "activar configuração do adaptador de rede" + +# +msgid "add alternatives" +msgstr "adicionar alternativas" + +# +msgid "add bookmark" +msgstr "adicionar marcador" + +# +msgid "add bouquet" +msgstr "adicionar bouquet" + +# +msgid "add marker" +msgstr "adicionar marca" + +# +msgid "add service to bouquet" +msgstr "Adicionar ao bouquet" + +# +msgid "add service to favourites" +msgstr "Adicionar aos favoritos" + +# +msgid "add to parental protection" +msgstr "Adicionar ao controle paternal" + +msgid "adult movie/drama" +msgstr "" + +# +msgid "advanced" +msgstr "Avançados" + +msgid "adventure/western/war" +msgstr "" + +msgid "advertisement/shopping" +msgstr "" + +msgid "after " +msgstr "" + +# +#, fuzzy +msgid "alphabetic" +msgstr "oedenar alfabeticamente" + +msgid "alphabetic reverse" +msgstr "alfabética invertida" + +msgid "alternative" +msgstr "" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "" + +msgid "arts/culture magazine" +msgstr "" + +msgid "athletics" +msgstr "" + +# +msgid "audio tracks" +msgstr "faixas de audio" + +# +msgid "auto" +msgstr "auto" + +# +#, fuzzy +msgid "automatic" +msgstr "Automatico" + +# +msgid "back" +msgstr "voltar" + +# +msgid "background image" +msgstr "imagem de fundo" + +msgid "ballet" +msgstr "" + +#, python-format +msgid "bc%s" +msgstr "" + +# +msgid "better" +msgstr "melhor" + +# +msgid "black" +msgstr "preto" + +msgid "black & white" +msgstr "" + +# +msgid "blacklist" +msgstr "Lista negra" + +# +msgid "blue" +msgstr "Azul" + +msgid "broadcasting/press" +msgstr "" + +# +#, fuzzy +msgid "by date" +msgstr "ordenar por data" + +msgid "cartoon/puppets" +msgstr "" + +msgid "center" +msgstr "centro" + +msgid "centered" +msgstr "" + +msgid "centered, wrapped" +msgstr "" + +# +msgid "chapters" +msgstr "capítulos" + +msgid "childrens's/youth program (general)" +msgstr "" + +# +msgid "circular left" +msgstr "circular esquerda" + +# +msgid "circular right" +msgstr "circular direita" + +msgid "comedy" +msgstr "" + +# +msgid "complex" +msgstr "complexo" + +# +msgid "config menu" +msgstr "Menu de configuração" + +# +msgid "confirmed" +msgstr "confimado" + +# +msgid "connected" +msgstr "conectado" + +# +msgid "continue" +msgstr "continuar" + +msgid "cooking" +msgstr "" + +# +msgid "copy to bouquets" +msgstr "copiar para bouquets" + +# +msgid "create directory" +msgstr "Criar pasta" + +#, python-format +msgid "currently installed image: %s" +msgstr "imagem instalada de momento: %s" + +# +msgid "daily" +msgstr "diário" + +# +msgid "day" +msgstr "dia" + +# +#, fuzzy +msgid "default" +msgstr "Padrão" + +# +msgid "delete cut" +msgstr "eliminar corte" + +msgid "delete..." +msgstr "" + +msgid "descramble and record ecm" +msgstr " desencriptar e gravar ecm" + +msgid "detective/thriller" +msgstr "" + +# +msgid "disable" +msgstr "desactivar" + +# +msgid "disable move mode" +msgstr "desactivar modo deslocar" + +# +msgid "disabled" +msgstr "desactivar" + +# +msgid "disconnected" +msgstr "desconectado" + +msgid "discussion/interview/debate" +msgstr "" + +# +msgid "do nothing" +msgstr "espere" + +msgid "documentary" +msgstr "" + +msgid "don't descramble, record ecm" +msgstr "não desencriptar, gravar ecm" + +# +msgid "done!" +msgstr "concluido!" + +msgid "east" +msgstr "este" + +msgid "economics/social advisory" +msgstr "" + +# +msgid "edit alternatives" +msgstr "editar alternativas" + +msgid "education/science/factual topics (general)" +msgstr "" + +# +msgid "empty" +msgstr "vazio" + +# +msgid "enable" +msgstr "activar" + +# +msgid "enable bouquet edit" +msgstr "activar a edição dos bouquets" + +# +msgid "enable favourite edit" +msgstr "activar a edição dos favoritos" + +# +msgid "enable move mode" +msgstr "activar modo deslocar" + +# +msgid "enabled" +msgstr "activo" + +# +msgid "end alternatives edit" +msgstr "terminar edições alternativas" + +# +msgid "end bouquet edit" +msgstr "terminar edição de bouquets" + +# +msgid "end cut here" +msgstr "terminar corte aqui" + +# +msgid "end favourites edit" +msgstr "Terminar edição de favoritos" + +msgid "entertainment (10-16 year old)" +msgstr "" + +msgid "entertainment (6-14 year old)" +msgstr "" + +# +msgid "equal to" +msgstr "igual a" + +msgid "equestrian" +msgstr "" + +# +msgid "exit DVD player or return to file browser" +msgstr "sair do reprodutor de DVD ou voltar à lista de ficheiros" + +msgid "exit movielist" +msgstr "" + +# +msgid "exit network adapter configuration" +msgstr "sair da configuração do network adapter " + +# +msgid "exit networkadapter setup menu" +msgstr "sair do menu de configuração networkadapter" + +msgid "experimental film/video" +msgstr "" + +msgid "false" +msgstr "falso" + +msgid "fashion" +msgstr "" + +# +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "formatos (BMP, PNG, JPG, GIF)" + +# +msgid "filename" +msgstr "nome do ficheiro" + +msgid "film/cinema" +msgstr "" + +msgid "fine arts" +msgstr "" + +# +msgid "fine-tune your display" +msgstr "Ajuste fino o seu Ecrã" + +msgid "fitness & health" +msgstr "" + +# +#, fuzzy +msgid "flat alphabetic" +msgstr "oedenar alfabeticamente" + +#, fuzzy +msgid "flat alphabetic reverse" +msgstr "alfabética invertida" + +msgid "folk/traditional music" +msgstr "" + +msgid "football/soccer" +msgstr "" + +msgid "foreign countries/expeditions" +msgstr "" + +# +msgid "forward to the next chapter" +msgstr "ir para o próximo capítulo" + +# +msgid "free" +msgstr "livre" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "" + +msgid "game show/quiz/contest" +msgstr "" + +msgid "gardening" +msgstr "" + +# +msgid "go to deep standby" +msgstr "Suspender" + +# +msgid "go to standby" +msgstr "Ir para Standy" + +# +msgid "grab this frame as bitmap" +msgstr "usar este frame como bitmap" + +# +msgid "green" +msgstr "Verde" + +msgid "handicraft" +msgstr "" + +msgid "height" +msgstr "altura" + +# +msgid "help..." +msgstr "ajuda..." + +# +msgid "horizontal" +msgstr "horizontal" + +msgid "information/education/school program" +msgstr "" + +# +msgid "init module" +msgstr "iniciar modulo" + +# +msgid "init modules" +msgstr "modulos de inicio" + +# +msgid "insert mark here" +msgstr "inserir marca" + +msgid "invalid type" +msgstr "tipo inválido" + +msgid "jazz" +msgstr "" + +# +msgid "jump back to the previous title" +msgstr "ir para o título anterior" + +# +msgid "jump forward to the next title" +msgstr "ir para o título seguinte" + +msgid "languages" +msgstr "" + +# +msgid "leave movie player..." +msgstr "Sair do reprodutor de media" + +# +msgid "left" +msgstr "esquerda" + +msgid "left, wrapped" +msgstr "" + +msgid "leisure hobbies (general)" +msgstr "" + +# +msgid "length" +msgstr "comprimento" + +msgid "limit ..., aborting !" +msgstr "limite ..., a abortar !" + +# +msgid "list style compact" +msgstr "estilo de lista compacto" + +# +msgid "list style compact with description" +msgstr "estilo de lista compacto com descrição" + +# +msgid "list style default" +msgstr "estilo da lista normal " + +# +msgid "list style single line" +msgstr "estilo de lista de linha única" + +msgid "literature" +msgstr "" + +msgid "live broadcast" +msgstr "" + +# +msgid "locked" +msgstr "Sintonizado" + +# +msgid "loopthrough to" +msgstr "loopthrough para" + +msgid "magazines/reports/documentary" +msgstr "" + +# +msgid "manual" +msgstr "manual" + +msgid "martial sports" +msgstr "" + +msgid "medicine/physiology/psychology" +msgstr "" + +# +msgid "menu" +msgstr "menu" + +# +msgid "mins" +msgstr "mins" + +# +msgid "minutes" +msgstr "minutos" + +# +msgid "month" +msgstr "mês" + +msgid "motor sport" +msgstr "" + +msgid "motoring" +msgstr "" + +# +msgid "move down to last entry" +msgstr "ir para a ultima entrada" + +# +msgid "move down to next entry" +msgstr "ir para a entrada seguinte" + +# +msgid "move up to first entry" +msgstr "ir para a primeira entrada" + +# +msgid "move up to previous entry" +msgstr "ir para a entrada anterior" + +msgid "movie/drama (general)" +msgstr "" + +# +msgid "multinorm" +msgstr "multinorma" + +msgid "music/ballet/dance (general)" +msgstr "" + +msgid "musical/opera" +msgstr "" + +msgid "nature/animals/environment" +msgstr "" + +# +msgid "never" +msgstr "nunca" + +msgid "new media" +msgstr "" + +msgid "news magazine" +msgstr "" + +msgid "news/current affairs (general)" +msgstr "" + +msgid "news/weather report" +msgstr "" + +# +msgid "no" +msgstr "não" + +# +msgid "no CAId selected" +msgstr "CAId não selecionado" + +# +msgid "no CI slots found" +msgstr "slots CI não encontrados" + +# +msgid "no module found" +msgstr "Nenhum modulo detectado" + +msgid "no storage devices found" +msgstr "despositivos de armazenamento não encontrados " + +# +msgid "none" +msgstr "nenhum" + +msgid "normal" +msgstr "normal" + +# +msgid "not configured" +msgstr "não configurado" + +# +msgid "not locked" +msgstr "Não esta sintonizado" + +msgid "not supported" +msgstr "não suportado" + +# +msgid "not used" +msgstr "não usado" + +# +msgid "nothing connected" +msgstr "Não conectado" + +# +msgid "of a DUAL layer medium used." +msgstr "de uma camada media DUAL usada." + +# +msgid "of a SINGLE layer medium used." +msgstr "de uma camada media SIMPLE usada." + +# +msgid "off" +msgstr "desligado" + +msgid "offset is" +msgstr "o desvio é" + +# +msgid "on" +msgstr "ligado" + +# +msgid "on READ ONLY medium." +msgstr "em SÓ LEITURA medio." + +msgid "on end of movie" +msgstr "" + +# +msgid "once" +msgstr "Uma só vez" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +# +msgid "open nameserver configuration" +msgstr "abrir a configuração do servidor de DNS" + +msgid "original" +msgstr "original" + +msgid "original language" +msgstr "" + +# +msgid "pass" +msgstr "passar" + +msgid "performing arts" +msgstr "" + +msgid "play as picture in picture" +msgstr "reproduzir como PiP" + +msgid "play in mainwindow" +msgstr "reproduzir na janela principal" + +# +msgid "please press OK when ready" +msgstr "Carregue OK quando terminar" + +# +msgid "please wait, loading picture..." +msgstr "Por favor espere, a carregar a imagem" + +msgid "popular culture/traditional arts" +msgstr "" + +msgid "pre-school children's program" +msgstr "" + +msgid "receiver software because updates are available." +msgstr "" + +# +msgid "record" +msgstr "gravar" + +# +msgid "recording..." +msgstr "a gravar..." + +# +msgid "red" +msgstr "Vermelho" + +msgid "religion" +msgstr "" + +msgid "remarkable people" +msgstr "" + +# +msgid "remove after this position" +msgstr "remover depois desta posição" + +# +msgid "remove all alternatives" +msgstr "remover todas alternativas" + +# +msgid "remove all new found flags" +msgstr "remover as novas flags" + +# +msgid "remove before this position" +msgstr "remover antes desta posição" + +# +msgid "remove bookmark" +msgstr "apagar marcador" + +# +msgid "remove directory" +msgstr "apagar pasta" + +# +msgid "remove entry" +msgstr "remover entrada" + +# +msgid "remove from parental protection" +msgstr "remover do controle paternal" + +# +msgid "remove new found flag" +msgstr "remover a nova flag" + +# +msgid "remove selected satellite" +msgstr "apagar o satélite selecionado" + +# +msgid "remove this mark" +msgstr "Remover esta marca" + +msgid "rename entry" +msgstr "" + +# +msgid "repeat playlist" +msgstr "repetir lista de reprodução" + +# +msgid "repeated" +msgstr "repetido" + +msgid "reverse by date" +msgstr "reservar por data" + +# +msgid "rewind to the previous chapter" +msgstr "voltar ao capítulo anterior" + +# +msgid "right" +msgstr "direita" + +msgid "right, wrapped" +msgstr "" + +msgid "rock/pop" +msgstr "" + +msgid "romance" +msgstr "" + +# +msgid "save last directory on exit" +msgstr "memorizar ultima pasta ao sair" + +# +msgid "save playlist on exit" +msgstr "memorizar lista de reprodução ao sair" + +# +msgid "scan state" +msgstr "estado da busca" + +msgid "science fiction/fantasy/horror" +msgstr "" + +# +msgid "second cable of motorized LNB" +msgstr "segundo cabo do LNB motorizado" + +# +msgid "seconds" +msgstr "segundos" + +# +msgid "select" +msgstr "selecionar" + +# +msgid "select CAId's" +msgstr "selecionar CAId's" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +# +msgid "select menu entry" +msgstr "selecionar entrada de menu" + +# +msgid "select movie" +msgstr "seleccione o filme" + +msgid "select the movie path" +msgstr "" + +msgid "serious music/classic music" +msgstr "" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "" + +msgid "service PIN" +msgstr "serviço PIN" + +msgid "set as startup service" +msgstr "marcar com canal inicial" + +msgid "setup PIN" +msgstr "definir PIN" + +# +msgid "show DVD main menu" +msgstr "mostrar menu de DVD" + +msgid "show all tags" +msgstr "mostrar todas as marcas" + +# +msgid "show alternatives" +msgstr "ver alternativas" + +# +msgid "show event details" +msgstr "Mostrar detalhes do programa" + +msgid "show extended description" +msgstr "" + +msgid "show mediaplayer on mainmenu" +msgstr "mostrar mediaplayer no menu principal" + +msgid "show softwaremanager in setup menu" +msgstr "" + +msgid "show softwaremanager on blue button" +msgstr "" + +msgid "show tag menu" +msgstr "" + +# +msgid "show transponder info" +msgstr "mostrar a info do transponder " + +msgid "show/game show (general)" +msgstr "" + +msgid "shuffle" +msgstr "baralhar" + +# +msgid "shut down" +msgstr "desligar" + +# +msgid "simple" +msgstr "simples" + +# +msgid "skip backward" +msgstr "Retroceder" + +# +msgid "skip forward" +msgstr "Avançar" + +msgid "soap/melodram/folkloric" +msgstr "" + +msgid "social/political issues/economics (general)" +msgstr "" + +msgid "social/spiritual science" +msgstr "" + +msgid "sorting of playlists" +msgstr "ordem de listas de reprodução" + +# +msgid "special characters" +msgstr "caracteres especiais" + +msgid "special events" +msgstr "" + +msgid "special format data DVD (HDTV compatible)" +msgstr "" + +msgid "sports (general)" +msgstr "" + +msgid "sports magazine" +msgstr "" + +# +msgid "standard" +msgstr "standard" + +# +msgid "start cut here" +msgstr "Iniciar o corte aqui" + +# +msgid "start directory" +msgstr "pasta inicial" + +msgid "stepsize" +msgstr "tamanho de passo" + +# +msgid "stereo" +msgstr "Estereo" + +msgid "stop using as startup service" +msgstr "deixar de usar como canal inicial" + +# +msgid "switch to bookmarks" +msgstr "mudar para favoritos" + +# +msgid "switch to filelist" +msgstr "Ver lista de ficheiros" + +# +msgid "switch to the next angle" +msgstr "mudar para o proximo ângulo" + +# +msgid "switch to the next audio track" +msgstr "mudar para a proxima faixa" + +# +msgid "switch to the next subtitle language" +msgstr "mudar para a proxima lingua de legenda" + +msgid "talk show" +msgstr "" + +msgid "team sports" +msgstr "" + +msgid "technology/natural science" +msgstr "" + +# +msgid "template file" +msgstr "ficheiro modelo" + +msgid "tennis/squash" +msgstr "" + +# +msgid "this recording" +msgstr "esta gravção" + +# +msgid "this service is protected by a parental control pin" +msgstr "Este canal está protegido por PIN " + +# +msgid "toggle time, chapter, audio, subtitle info" +msgstr "tempo de alternância, capítulo, áudio, info da legenda" + +msgid "top" +msgstr "topo" + +msgid "tourism/travel" +msgstr "" + +msgid "true" +msgstr "verdadeiro" + +msgid "unavailable" +msgstr "" + +# +msgid "unconfirmed" +msgstr "não confirmado" + +msgid "undefined" +msgstr "" + +# +msgid "unknown" +msgstr "desconhecido" + +# +msgid "unknown service" +msgstr "Desconhecido" + +msgid "unpublished" +msgstr "" + +# +msgid "until standby/restart" +msgstr "até standby/reiniciar" + +# +msgid "user defined" +msgstr "Definido pelo utilizador" + +msgid "variety show" +msgstr "" + +# +msgid "vertical" +msgstr "vertical" + +# +msgid "wait for ci..." +msgstr "espere pela ci..." + +# +msgid "wait for mmi..." +msgstr "espere pelo mmi..." + +# +msgid "waiting" +msgstr "em espera" + +msgid "water sport" +msgstr "" + +# +msgid "weekly" +msgstr "Semanal" + +msgid "west" +msgstr "oeste" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "branco" + +# +msgid "whitelist" +msgstr "Lista Branca" + +msgid "width" +msgstr "largura" + +msgid "winter sport" +msgstr "" + +msgid "wireless network interface" +msgstr "interface de rede sem fios" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "" +msgstr[1] "" + +# +msgid "working" +msgstr "a trabalhar" + +# +msgid "yellow" +msgstr "Amarelo" + +# +msgid "yes" +msgstr "Sim" + +# +msgid "yes (keep feeds)" +msgstr "Sim (mantenha os feeds)" + +# +msgid "zap" +msgstr "zap" + +msgid "zap and record" +msgstr "" + +# +msgid "zapped" +msgstr "zapped" + +# +#~ msgid "AA" +#~ msgstr "AA" + +# +#~ msgid "AB" +#~ msgstr "AB" + +#, fuzzy +#~ msgid "Activate PiP" +#~ msgstr "activar PiP" + +#, fuzzy +#~ msgid "Add/remove timer for current event" +#~ msgstr "Adicionar/Remover gravação do evento actual " + +#~ msgid "Adjust HDMI CEC settings" +#~ msgstr "Ajustar opções HDMI CEC" + +# +#, fuzzy +#~ msgid "All satellites" +#~ msgstr "Todos os Satélites" + +# +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "Comporatmento da pausa, quando pausado" + +# +#~ msgid "Committed DiSEqC command" +#~ msgstr "Comando de DiSEqC comprometido" + +# +#~ msgid "DiSEqC repeats" +#~ msgstr "Repetições DiSEqC" + +#~ msgid "Goto specific data/time" +#~ msgstr "Ir para a data/tempo especificado" + +# +#~ msgid "No satellite frontend found!!" +#~ msgstr "Não encontrou o Satelite." + +#~ msgid "Press '0' to toggle internal/external PiP." +#~ msgstr "Prima '0' para trocar entre PiP interno e externo." + +# +#~ msgid "Remove timer" +#~ msgstr "Remover temporizador" + +# +#~ msgid "Send DiSEqC" +#~ msgstr "Enviar DISEqC" + +# +#, fuzzy +#~ msgid "Switch next channel" +#~ msgstr "proximo canal" + +#~ msgid "Tuning step size" +#~ msgstr "Tamanho do passo de viragem" + +# +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Instrução de DiSEqC não permitida" + +# +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "Voltar ao canal antes da busca de satélites?" + +#~ msgid "tuner is not supported" +#~ msgstr "tuner não é suportado" diff --git a/po/pt_BR.po b/po/pt_BR.po new file mode 100644 index 0000000..1bf34aa --- /dev/null +++ b/po/pt_BR.po @@ -0,0 +1,8720 @@ +# Diogo <pingflood@gmail.com>, 2013. +# Frank <franksrviana@gmail.com>, 2012. +# Samuel <samuel_leiro@hotmail.com>, 2012. +msgid "" +msgstr "" +"Project-Id-Version: enigma2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2013-10-20 19:13-0300\n" +"Last-Translator: Diogo <pingflood@gmail.com>\n" +"Language-Team: Traduzido por Frank Viana <franksrviana@gmail.com>\n" +"Language: pt_BR\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-Generator: Poedit 1.5.4\n" +"X-Poedit-SourceCharset: iso-8859-15\n" + +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"Configurações e opções avançadas." + +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"Após pressionar OK, aguarde..." + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" +"\n" +"Faça um backup das configurações." + +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"Editar o endereço do repositório de atualizações." + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" +"\n" +"Gerenciador de extensões ou plugins para o receptor" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" +"\n" +"Atualização online do software do receptor." + +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"Pressione OK para continuar." + +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"Restaurar os backups por data." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" +"\n" +"Restaurar as configurações do receptor." + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" +"\n" +"Restaurar o receptor com um firmware novo." + +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"Buscar e instalar extensões locais." + +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Selecione o dispositivo para backup.\n" +"Dispositivo atual: " + +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"Ver, instalar e remover pacotes instalados ou disponíveis." + +msgid " (PiP)" +msgstr "" + +msgid " (Radio)" +msgstr " (Rádio)" + +msgid " (TV)" +msgstr "" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +msgid " extensions." +msgstr "extensões." + +msgid " ms" +msgstr "" + +msgid " packages selected." +msgstr "pacotes selecionados." + +msgid " updates available." +msgstr "atualizações disponíveis." + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "" + +msgid "%A %d %B" +msgstr "" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "%A, %e de %B" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "%A, %e de %B de %Y" + +msgid "%H:%M" +msgstr "" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "" + +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "%d canal encontrado" +msgstr[1] "%d canais encontrados" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "%d arquivo" +msgstr[1] "%d arquivos" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d hora" +msgstr[1] "%d horas" + +#, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d tarefa rodando em segundo plano!" +msgstr[1] "%d tarefas rodando em segundo plano!" + +#, python-format +msgid "%d min" +msgstr "" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minuto" +msgstr[1] "%d minutos" + +#, python-format +msgid "%d minutes" +msgstr "%d minutos" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d segundo" +msgstr[1] "%d segundos" + +#, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "%d subdiretório" +msgstr[1] "%d subdiretórios" + +#, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "%d rede sem fio encontrada!" +msgstr[1] "%d redes sem fio encontradas!" + +msgid "%d-%b-%Y %-H:%M" +msgstr "%d-%b-%Y %-H:%M" + +msgid "%d-%m" +msgstr "" + +msgid "%d.%B %Y" +msgstr "" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "" + +#, python-format +msgid "%s %s free disk space" +msgstr "%s %s de espaço livre" + +#, python-format +msgid "%s (%s)\n" +msgstr "" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "%s não é mais usado. Remover?" + +#, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "%s atualização disponível" +msgstr[1] "%s atualizações disponíveis" + +#, python-format +msgid "%s%d min" +msgstr "" + +#, python-format +msgid "%s/%s: %s" +msgstr "" + +msgid "(ZAP)" +msgstr "(Assistir)" + +msgid "(empty)" +msgstr "(vazio)" + +msgid "(show optional DVD audio menu)" +msgstr "(exibir menu opcional de áudio do DVD)" + +msgid "* Only available if more than one interface is active." +msgstr "* Disponível apenas se houver mais de uma interface ativa." + +msgid "/s" +msgstr "" + +msgid "0" +msgstr "" + +msgid "1" +msgstr "" + +msgid "1.0" +msgstr "" + +msgid "1.1" +msgstr "" + +msgid "1.2" +msgstr "" + +msgid "12V output" +msgstr "Saída 12V" + +msgid "13 V" +msgstr "" + +msgid "16:10" +msgstr "" + +msgid "16:10 Letterbox" +msgstr "" + +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +msgid "16:9" +msgstr "" + +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +msgid "16:9 always" +msgstr "16:9 Sempre" + +msgid "18 V" +msgstr "" + +msgid "2" +msgstr "" + +msgid "23.976" +msgstr "" + +msgid "24" +msgstr "" + +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +msgid "3" +msgstr "" + +msgid "30" +msgstr "" + +msgid "3d mode" +msgstr "Modo 3D" + +msgid "4" +msgstr "" + +msgid "4:3" +msgstr "" + +msgid "4:3 Letterbox" +msgstr "" + +msgid "4:3 PanScan" +msgstr "" + +msgid "5" +msgstr "" + +msgid "6" +msgstr "" + +msgid "7" +msgstr "" + +msgid "8" +msgstr "" + +msgid "9" +msgstr "" + +#, python-format +msgid ": %s" +msgstr "" + +msgid "<Current movielist location>" +msgstr "<Diretório atual da lista de gravações>" + +msgid "<Default movie location>" +msgstr "<Diretório padrão das gravações>" + +msgid "<Last timer location>" +msgstr "<Último diretório de gravação>" + +msgid "<unknown>" +msgstr "<Desconhecido>" + +msgid "??" +msgstr "" + +msgid "A" +msgstr "" + +#, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"Um arquivo de configuração (%s) foi alterado desde que foi instalado.\n" +"Deseja manter as alterações?" + +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"Um arquivo de configuração (%s) foi alterado desde que foi instalado.\n" +"Deseja manter as alterações?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"O temporizador vai colocar o \n" +"receptor em StandBy. Continuar?" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"O temporizador vai desligar \n" +"o receptor. Continuar?" + +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "Um EPG gráfico para os canais de um grupo de favoritos" + +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"Gravação iniciada:\n" +"%s" + +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"Há uma gravação em andamento.\n" +"O que deseja fazer?" + +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "Uma gravação está em andamento. Pare a gravação antes de tentar configurar o posicionador." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "Uma gravação está em andamento. Pare a gravação antes de realizar uma busca." + +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "Uma gravação está em andamento. Pare a gravação antes de usar o localizador de satélites." + +#, python-format +msgid "A required tool (%s) was not found." +msgstr "Uma ferramenta necessária (%s) não foi encontrada." + +msgid "A search for available updates is currently in progress." +msgstr "Uma busca por atualizações disponíveis está em andamento." + +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"Há outra interface de rede configurada.\n" +"\n" +"Desativar a outra interface de rede?" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"O temporizador vai colocar o \n" +"receptor em StandBy. Continuar?" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"O temporizador vai desligar \n" +"o receptor. Continuar?" + +msgid "A small overview of the available icon states and actions." +msgstr "Uma pequena amostra dos ícones de estado e ações disponíveis." + +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"Uma gravação agendada falhou!\n" +"Tentar de novo?\n" + +msgid "A/V settings" +msgstr "Ãudio e vídeo" + +msgid "AC3/DTS downmix" +msgstr "Downmix AC3/DTS" + +msgid "Abort" +msgstr "Cancelar" + +msgid "About" +msgstr "Sobre" + +msgid "About..." +msgstr "Sobre" + +msgid "Accesspoint:" +msgstr "Ponto de acesso:" + +msgid "Action on long powerbutton press" +msgstr "Ação ao manter pressionado o botão Power" + +msgid "Action on short powerbutton press" +msgstr "Ação ao pressionar o botão Power" + +msgid "Activate Picture in Picture" +msgstr "Ativar PiP" + +msgid "Activate current configuration" +msgstr "Ativar configuração atual" + +msgid "Activate network settings" +msgstr "Ativar configurações de rede" + +msgid "Activate the configured network settings." +msgstr "Ativar a configuração de rede realizada." + +msgid "Adapter settings" +msgstr "Configurar adaptador" + +msgid "Add" +msgstr "Adicionar" + +msgid "Add Bookmark" +msgstr "Adicionar marcador" + +msgid "Add a mark" +msgstr "Adicionar marcador" + +msgid "Add a nameserver entry" +msgstr "Adicionar servidor DNS" + +msgid "Add a new title" +msgstr "Adicionar novo título" + +msgid "Add bookmark" +msgstr "Adicionar favorito" + +msgid "Add directory to playlist" +msgstr "Adicionar diretório à lista de reprodução" + +msgid "Add file to playlist" +msgstr "Adicionar arquivo à lista de reprodução" + +msgid "Add files to playlist" +msgstr "Adicionar arquivos à lista de reprodução" + +msgid "Add more details to the crash log" +msgstr "Adicionar mais detalhes ao relatório de erros" + +msgid "Add provider" +msgstr "Adicionar operadora" + +msgid "Add recording (enter recording duration)" +msgstr "Gravar com duração determinada" + +msgid "Add recording (enter recording endtime)" +msgstr "Gravar com final determinado" + +msgid "Add recording (indefinitely)" +msgstr "Gravar indefinidamente" + +msgid "Add recording (stop after current event)" +msgstr "Gravar até o fim do evento atual" + +msgid "Add service" +msgstr "Adicionar serviço" + +msgid "Add timer" +msgstr "Agendar" + +msgid "Add title" +msgstr "Adicionar título" + +msgid "Add to bouquet" +msgstr "Adicionar ao grupo de favoritos" + +msgid "Add to favourites" +msgstr "Adicionar aos favoritos" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "Ajustar configurações 3D" + +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "Ajuste as cores para que as graduações fiquem visíveis, mas apareçam o mais saturado possível. Quando estiver satisfeito com o resultado pressione OK para sair ou use os botões numéricos para selecionar outras telas." + +msgid "Advanced" +msgstr "" + +msgid "Advanced options" +msgstr "Opções avançadas" + +msgid "Advanced restore" +msgstr "Restauração avançada" + +msgid "Advanced software" +msgstr "Configuração avançada de software" + +msgid "Advanced software plugin" +msgstr "Configuração avançada de plugin" + +msgid "Advanced video enhancement setup" +msgstr "Configuração avançada de imagem" + +msgid "Advanced video setup" +msgstr "Configuração avançada de vídeo" + +msgid "After event" +msgstr "Ao finalizar" + +msgid "Album" +msgstr "Ãlbum" + +msgid "Alignment of events" +msgstr "Alinhamento de eventos" + +msgid "Alignment of service names" +msgstr "Alinhamento de serviços" + +msgid "All" +msgstr "Todos" + +msgid "All ages" +msgstr "Todas as idades" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "Alocar" + +msgid "Allocate unused memory index" +msgstr "Alocar índice de memória não utilizada" + +msgid "Allow quit movieplayer with exit" +msgstr "Allow quit movieplayer with exit" + +msgid "Allow subtitle language to equal audio language" +msgstr "Permitir legenda igual ao áudio" + +msgid "Allow subtitles for hearing impaired" +msgstr "Permitir legendas para deficientes auditivos" + +msgid "Alpha" +msgstr "" + +msgid "Alternative" +msgstr "Adicionar alternativas" + +msgid "Alternative numbering mode" +msgstr "Modo numeração alternativa" + +msgid "Alternative services tuner priority" +msgstr "Prioridade dos serviços do tuner" + +msgid "Always ask" +msgstr "Perguntar sempre" + +msgid "Always hide infobar" +msgstr "" + +msgid "An empty filename is illegal." +msgstr "Um nome de arquivo vazio é inválido." + +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "Ocorreu um erro ao obter a lista de pacotes. Tente novamente." + +msgid "An unknown error occurred!" +msgstr "Ocorreu um erro desconhecido!" + +msgid "And will put your receiver in standby over " +msgstr "E colocará o receptor em espera após" + +msgid "Any activity" +msgstr "Qualquer atividade" + +msgid "Arabic" +msgstr "Ãrabe" + +msgid "Are you sure to remove this entry?" +msgstr "" + +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"Ativar esta configuração de rede?\n" +"\n" + +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "Remover o seguinte backup:\n" + +msgid "Are you sure you want to exit this wizard?" +msgstr "Sair do assistente?" + +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"Reiniciar a interface de rede?\n" +"\n" + +#, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Restaurar o seguinte backup:\n" +"%s\n" +"O receptor será reiniciado após a restauração!" + +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Restaurar o backup?\n" +"O receptor será reiniciado após a restauração!" + +msgid "Artist" +msgstr "Artista" + +msgid "Arts/Culture" +msgstr "Arte/Cultura" + +msgid "Ask user" +msgstr "Consultar usuário" + +msgid "Aspect ratio" +msgstr "Proporção" + +msgid "Assigned CAIds:" +msgstr "CAIDS atribuídos:" + +msgid "Assigned services/provider:" +msgstr "Serviços/operadores atribuídos:" + +msgid "At beginning" +msgstr "No início" + +msgid "At end" +msgstr "No fim" + +msgid "Audio" +msgstr "Ãudio" + +msgid "Audio PID" +msgstr "Ãudio PID" + +msgid "Audio language selection 1" +msgstr "Idioma de áudio 1" + +msgid "Audio language selection 2" +msgstr "Idioma de áudio 2" + +msgid "Audio language selection 3" +msgstr "Idioma de áudio 3" + +msgid "Audio language selection 4" +msgstr "Idioma de áudio 4" + +msgid "Audio options..." +msgstr "Opções de áudio" + +#, python-format +msgid "Audio track (%s) format" +msgstr "Formato da trilha de áudio (%s)" + +#, python-format +msgid "Audio track (%s) language" +msgstr "Idioma da trilha de áudio (%s)" + +msgid "Author: " +msgstr "Autor:" + +msgid "Authoring mode" +msgstr "Modo de criação" + +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "" + +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Dividir capítulos automaticamente (em minutos, 0 = não dividir)" + +msgid "Auto flesh" +msgstr "" + +msgid "Auto focus" +msgstr "Auto-foco" + +msgid "Auto focus commencing ..." +msgstr "Iniciando auto-foco..." + +msgid "Auto language selection" +msgstr "Idioma de mídia" + +msgid "Auto scart switching" +msgstr "Usar auto-scart" + +msgid "Automatic" +msgstr "Automático" + +msgid "Automatic scan" +msgstr "Busca automática" + +msgid "Automatically start timeshift after" +msgstr "Iniciar timeshift automaticamente após" + +msgid "Automatically turn on external subtitles" +msgstr "Ativar automaticamente legendas externas" + +msgid "Available format variables" +msgstr "Formato de variáveis disponíveis" + +msgid "B" +msgstr "" + +msgid "BER" +msgstr "" + +msgid "BER:" +msgstr "" + +msgid "Back" +msgstr "Voltar" + +msgid "Background" +msgstr "Segundo plano" + +msgid "Background color" +msgstr "Cor de fundo" + +msgid "Background delete option" +msgstr "Remover em segundo plano" + +msgid "Background delete speed" +msgstr "Velocidade ao remover em segundo plano" + +msgid "Backup completed." +msgstr "Backup concluído." + +msgid "Backup failed." +msgstr "Falha no backup." + +msgid "Backup is running..." +msgstr "Backup em andamento..." + +msgid "Backup system settings" +msgstr "Salvar configurações do sistema" + +msgid "Band" +msgstr "Banda" + +msgid "Bandwidth" +msgstr "Largura de banda" + +msgid "Basque" +msgstr "Basco" + +msgid "Begin time" +msgstr "Hora de início" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +msgid "Behavior of 0 key in PiP-mode" +msgstr "Comportamento do botão 0 no modo PiP" + +msgid "Behavior when a movie is started" +msgstr "Comportamento ao iniciar um vídeo" + +msgid "Behavior when a movie is stopped" +msgstr "Comportamento ao parar um vídeo" + +msgid "Behavior when a movie reaches the end" +msgstr "Comportamento ao terminar um vídeo" + +msgid "Big PiP" +msgstr "" + +msgid "Bitrate:" +msgstr "" + +msgid "Black screen" +msgstr "Tela preta" + +msgid "Black screen till locked" +msgstr "Tela preta até travar" + +msgid "Block noise reduction" +msgstr "" + +msgid "Blue boost" +msgstr "" + +msgid "Bookmarks" +msgstr "Marcadores" + +msgid "Brightness" +msgstr "Brilho" + +msgid "Bulgarian" +msgstr "Búlgaro" + +msgid "Burn DVD" +msgstr "Gravar DVD" + +#, python-format +msgid "Burn audio track (%s)" +msgstr "Gravar trilha de áudio (%s)" + +msgid "Burn existing image to DVD" +msgstr "Gravar imagem existente para DVD" + +msgid "Burn to DVD" +msgstr "Gravar DVD" + +msgid "Bus: " +msgstr "" + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "Por padrão, o SNR será exibido em dB (quando suportado pelo tuner). Essa configuração força o SNR a ser exibido como um percentual." + +msgid "C" +msgstr "" + +msgid "C-Band" +msgstr "Banda C" + +msgid "CH" +msgstr "" + +msgid "CI assignment" +msgstr "Definição de CI" + +msgid "CVBS" +msgstr "" + +msgid "Cable" +msgstr "Cabo" + +msgid "Cable Scan" +msgstr "Busca via cabo" + +msgid "Cache thumbnails" +msgstr "Salvar miniaturas" + +msgid "Calculate" +msgstr "Calcular" + +msgid "Calculate all positions" +msgstr "Calcular todas as posições" + +msgid "Calculation complete" +msgstr "Cálculo concluído" + +msgid "Calibrate" +msgstr "Calibrar" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "Pode ser usada para diferentes FPS entre as legendas externas e o vídeo." + +msgid "Cancel" +msgstr "Cancelar" + +msgid "Cannot determine" +msgstr "Impossível determinar" + +msgid "Cannot find any signal ..., aborting !" +msgstr "Sem sinal. Cancelando..." + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "Impossível mover os arquivos" + +msgid "Cannot move to trash can" +msgstr "Não foi possível mover para a lixeira" + +msgid "Capacity: " +msgstr "Capacidade:" + +msgid "Card" +msgstr "Cartão" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "Centralizar legendas DVB" + +msgid "Center time-labels and remove date" +msgstr "Centralizar etiqueta de tempo e remover data" + +msgid "Change bouquets in quickzap" +msgstr "Mudar grupo de favoritos no zap rápido" + +msgid "Change pin code" +msgstr "Alterar a senha" + +msgid "Change recording (duration)" +msgstr "Alterar a duração da gravação" + +msgid "Change recording (endtime)" +msgstr "Alterar o tempo final da gravação" + +msgid "Change repeat and delay settings?" +msgstr "Alterar as configurações de repetição e atraso?" + +msgid "Change service PIN" +msgstr "Alterar senha dos canais" + +msgid "Change service PINs" +msgstr "Alterar senhas do serviço" + +msgid "Change setup PIN" +msgstr "Alterar senha das configurações" + +msgid "Change step size" +msgstr "Alterar tamanho do passo" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "Histórico de atividade" + +msgid "Channel" +msgstr "Canal" + +msgid "Channel list type" +msgstr "Lista de canais" + +msgid "Channel not in services list" +msgstr "O canal não está na lista de serviços" + +msgid "Channel selection" +msgstr "Canais" + +msgid "Channel:" +msgstr "Canal:" + +msgid "Channellist menu" +msgstr "Menu da lista de canais" + +msgid "Chap." +msgstr "Cap." + +msgid "Chapter" +msgstr "Capítulo" + +msgid "Chapter:" +msgstr "Capítulo:" + +msgid "Check" +msgstr "Verificar" + +msgid "Check the internet connection" +msgstr "Verificar conexão de internet" + +msgid "Check the internet connection again" +msgstr "Verificar conexão de internet novamente" + +msgid "Checking filesystem..." +msgstr "Verificando sistema de arquivos..." + +msgid "Checking the internet connection" +msgstr "Verificando a conexão de internet" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" +"Verificando tuner %d\n" +"Porta DiSEqC %s para %s" + +msgid "Children/Youth" +msgstr "Crianças/Jovens" + +msgid "Choose which tuner to configure." +msgstr "Escolha qual tuner configurar." + +msgid "Circular left" +msgstr "Circular esquerda" + +msgid "Circular right" +msgstr "Circular direita" + +msgid "Cleanup" +msgstr "Limpar" + +msgid "Clear" +msgstr "Remover" + +msgid "Clear before scan" +msgstr "Remover antes de buscar" + +msgid "Clear fixed" +msgstr "" + +msgid "Clear log" +msgstr "Limpar registro" + +msgid "Clear playlist" +msgstr "Limpar lista de reprodução" + +msgid "Close" +msgstr "Fechar" + +msgid "Close PiP on exit" +msgstr "Fechar PiP ao sair" + +msgid "Close title selection" +msgstr "Fechar a seleção de título" + +msgid "Code rate HP" +msgstr "" + +msgid "Code rate LP" +msgstr "" + +msgid "Coderate HP" +msgstr "" + +msgid "Coderate LP" +msgstr "" + +msgid "Collection name" +msgstr "Nome da coleção" + +msgid "Collection settings" +msgstr "Configurar coleção" + +msgid "Color format" +msgstr "Formato da cor" + +msgid "Command execution..." +msgstr "Execução de comando..." + +msgid "Command order" +msgstr "Ordem dos comandos" + +msgid "Common Interface" +msgstr "Interface Comum (CI)" + +msgid "Common Interface assignment" +msgstr "Escolher Interface Comum" + +msgid "Communication" +msgstr "Comunicação" + +msgid "Compact flash" +msgstr "Compact Flash" + +msgid "Complete" +msgstr "Completo" + +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "Complexo (permite misturar trilhas de áudio e aspectos)" + +msgid "Composition of the recording filenames" +msgstr "Composição do nome das gravações" + +msgid "Configuration mode" +msgstr "Modo de configuração" + +#, python-format +msgid "Configuration mode: %s" +msgstr "Modo de configuração: %s" + +msgid "Configuration..." +msgstr "Configurar" + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "Configurar um atraso adicional para melhorar a sincronização das legendas externas." + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "Configurar um atraso adicional para melhorar a sincronização das legendas." + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "Configurar por quanto tempo a barra de informações permanecerá visível." + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "Configurar por quantos minutos os eventos passados devem permanecer visíveis no EPG. Útil quando você precisar de informações sobre um evento recém finalizado ou atrasado." + +msgid "Configure how recording filenames are constructed." +msgstr "Configurar como os nomes de arquivos de gravação são construídos." + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +msgid "Configure interface" +msgstr "Configurar interface" + +msgid "Configure nameservers" +msgstr "Configurar servidor DNS" + +msgid "Configure on which devices the background delete option should be used." +msgstr "Configurar em quais dispositivos a opção de remoção em segundo plano deve ser utilizada." + +msgid "Configure remote control type" +msgstr "Configurar o tipo de controle remoto" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "Configurar o modo de DiSEqC para este LNB." + +msgid "Configure the IP address." +msgstr "Configurar endreço IP." + +msgid "Configure the aspect ratio of the screen." +msgstr "Configurar proporção da tela." + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "Configurar o comportamento quando um vídeo é parado manualmente." + +msgid "Configure the behavior when movie playback is started." +msgstr "Configurar o comportamento ao iniciar um vídeo." + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "Configurar a ação ao terminar um vídeo." + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "Configurar a largura da borda das legendas. A borda escura faz com que as legendas fiquem mais fáceis de ler em um fundo claro." + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "Configurar o brilho do visor do painel frontal durante o modo de espera." + +msgid "Configure the brightness level of the front panel display." +msgstr "Configurar o brilho do visor do painel frontal." + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "Configurar a cor das legendas externas. Alternativa (normal em branco, italico em amarelo, negrito em ciano, sublinhado em verde), branco ou amarelo." + +msgid "Configure the color of the teletext subtitles." +msgstr "Configurar a cor das legendas do teletexto." + +msgid "Configure the contrast level of the front panel display." +msgstr "Configurar o nível de contraste do painel frontal." + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "Configurar o intervalo em minutos para a proteção de tela." + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "Configurar o intervalo em que o receptor deve ser desligado após ter entrado no modo de espera." + +msgid "Configure the first audio language (highest priority)." +msgstr "Configurar o primeiro idioma de áudio (prioridade alta)." + +msgid "Configure the first subtitle language (highest priority)." +msgstr "Configurar o primeiro idioma da legenda (prioridade alta)." + +msgid "Configure the font size of the subtitles." +msgstr "Configurar o tamanho da fonte das legendas." + +msgid "Configure the fourth audio language." +msgstr "Configurar o quarto idioma de áudio." + +msgid "Configure the fourth subtitle language." +msgstr "Configurar o quarto idioma da legenda." + +msgid "Configure the function of a long press on the power button." +msgstr "Configurar a função ao manter pressionado o botão Power." + +msgid "Configure the function of a short press on the power button." +msgstr "Configurar a função ao pressionar brevemente o botão Power." + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "Configurar a função do botão 0 quando o PiP está ativo." + +msgid "Configure the gateway." +msgstr "Configurar o gateway." + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "Configurar o atraso geral das trilhas de áudio Dolby Digital." + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "Configurar o atraso geral das trilhas de áudio em estéreo." + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "Configurar a unidade de disco rígido para ir ao modo de espera após o tempo ocioso especificado." + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "Configurar o alinhamento horizontal das legendas." + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "Configurar a velocidade inicial de avanço rápido. Ao pressionar o botão de avanço, começará nesta velocidade." + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "Configurar a velocidade inicial de retorno. Ao pressionar o botão de retorno, começará nesta velocidade." + +msgid "Configure the latitude of your location." +msgstr "Configurar a latitude de sua localização." + +msgid "Configure the longitude of your location." +msgstr "Configurar a longitude de sua localização." + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "Configurar o limite mínimo de espaço em disco disponível para as gravações. Quando a quantidade de espaço ultrapassar esse valor, itens serão removidos da lixeira." + +msgid "Configure the nameserver (DNS)." +msgstr "Configurar servidor DNS." + +msgid "Configure the netmask." +msgstr "Configurar máscara de rede." + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "Configurar o número de dias após o qual os itens são automaticamente removidos da lixeira." + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "Configurar o número de dias que temporizadores antigos são mantidos antes de serem automaticamente removidos da lista." + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "Configurar o atraso da decodificação offline em milissegundos. O atraso configurado é observado em cada mudança de paridade." + +msgid "Configure the possible fast forward speeds." +msgstr "Configurar a velocidade de avanço rápido." + +msgid "Configure the possible rewind speeds." +msgstr "Configurar a velocidade de retorno rápido." + +msgid "Configure the primary EPG language." +msgstr "Configurar o idioma primário do EPG." + +msgid "Configure the refresh rate of the screen." +msgstr "Configurar a taxa de atualização da tela." + +msgid "Configure the screen resolution in PC output mode." +msgstr "Configurar a resolução da tela no modo de saída VGA." + +msgid "Configure the second audio language." +msgstr "Configurar o segundo idioma de áudio." + +msgid "Configure the second subtitle language." +msgstr "Configurar o segundo idioma da legenda." + +msgid "Configure the secondary EPG language." +msgstr "Configurar o idioma secundário do EPG." + +msgid "Configure the sharpness of the video scaling." +msgstr "Configurar a nitidez do vídeo redimensionado." + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "Configurar o intervalo de tempo para os botões 1/3." + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "Configurar o intervalo de tempo para os botões 4/6." + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "Configurar o intervalo de tempo para os botões 7/9." + +msgid "Configure the slow motion speeds." +msgstr "Configurar as velocidades da câmera lenta." + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "Configurar a velocidade do processo de remoção em segundo plano. Velocidades menores consumirão menos desempenho do disco rígido." + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "Configurar o atraso da legenda quando informações de tempo não estão disponíveis." + +msgid "Configure the third audio language." +msgstr "Configurar o terceiro idioma de áudio." + +msgid "Configure the third subtitle language." +msgstr "Configurar o terceiro idioma da legenda." + +msgid "Configure the transparency of the OSD." +msgstr "Configurar a transparência do OSD." + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "Configurar a transparência do fundo preto de legendas DVB gráficas." + +msgid "Configure the tuner mode." +msgstr "Configurar o modo do tuner." + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "Configurar o tipo de ícones exibidos na lista de vídeos." + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "Configurar a posição vertical das legendas, medido a partir do limite inferior da tela." + +msgid "Configure the video output mode (or resolution)." +msgstr "Configurar o modo de saída de vídeo (ou resolução)." + +msgid "Configure the way in which the receiver changes channels." +msgstr "Configurar a maneira em que as mudanças de canais ocorrem no receptor." + +msgid "Configure where completed timers show up in the timer list." +msgstr "Configurar onde temporizadores concluídos aparecem na lista." + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "Configurar se (e por quanto tempo) a barra de informações secundária será exibida. A barra de informações secundária contém informações adicionais sobre o canal atual." + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "Configurar se trilhas de áudio multicanais devem ser mixadas em estéreo." + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "Configurar se um ícone deve ser exibido quando sua antena motorizada está se movendo." + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "Configurar o nível de acesso para utilizar o menu de configuração. Nível Expert dá acesso a todos os itens." + +msgid "Configure which color format should be used on the SCART output." +msgstr "Configurar qual formato de cor deve ser usado na saída SCART." + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "Configurar o tipo de tuner preferido, quando o mesmo serviço estiver disponível em diferentes tipos de tuners." + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "Configurar a prioridade do tuner, quando mais de um tuner estiver disponível. Se for definido como automático, o sistema dará prioridade para o tuner que tiver o menor número de canais/satélites." + +msgid "Configure your internal LAN" +msgstr "Configurar rede LAN" + +msgid "Configure your network again" +msgstr "Configurar a rede novamente" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "Configure a rede e pressione OK para iniciar a busca" + +msgid "Configure your wireless LAN again" +msgstr "Configurar rede sem fio novamente" + +msgid "Configures which video output connector will be used." +msgstr "Configurar qual conector de saída de vídeo será usado." + +msgid "Configuring" +msgstr "Configurando" + +msgid "Conflicting timer" +msgstr "Conflito de temporizador" + +msgid "Connect" +msgstr "Conectar" + +msgid "Connect to a wireless network" +msgstr "Conectar a uma rede sem fio" + +msgid "Connected satellites" +msgstr "" + +msgid "Connected to" +msgstr "Conectado a" + +msgid "Connected!" +msgstr "Conectado!" + +msgid "Constellation" +msgstr "Constelação" + +msgid "Content does not fit on DVD!" +msgstr "O conteúdo não cabe no DVD!" + +msgid "Continue" +msgstr "Continuar" + +msgid "Continue in background" +msgstr "Continuar em segundo plano" + +msgid "Continue playback" +msgstr "Reprodução contínua" + +msgid "Continue playing" +msgstr "Continuar reproduzindo" + +msgid "Continues play (loop)" +msgstr "Reprodução contínua (loop)" + +msgid "Contrast" +msgstr "Contraste" + +msgid "Convert ext3 filesystem to ext4" +msgstr "Converte o sistema de arquivos EXT3 em EXT4" + +msgid "Convert ext3 to ext4" +msgstr "Converter EXT3 em EXT4" + +msgid "Converting ext3 to ext4..." +msgstr "Convertendo EXT3 em EXT4..." + +msgid "Copy" +msgstr "Copiar" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "Impossível conectar com o servidor de imagem .NFI" + +msgid "Could not find installed channel list." +msgstr "Não foi possível encontrar a lista de canais instalados." + +msgid "Could not load medium! No disc inserted?" +msgstr "Não foi possível carregar a mídia! O disco foi inserido?" + +msgid "Could not open Picture in Picture" +msgstr "Não foi possível abrir o PiP" + +#, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "Não foi possível gravar devido a um conflito com o temporizador %s" + +#, python-format +msgid "Could not record due to invalid service %s" +msgstr "Não foi possível gravar. Canal inválido %s" + +msgid "Create DVD-ISO" +msgstr "Criar DVD-ISO" + +msgid "Create more detailed crash log" +msgstr "Criar relatório de erros mais detalhados" + +#, python-format +msgid "Creating directory %s failed." +msgstr "Falha ao criar diretório %s ." + +msgid "Creating filesystem" +msgstr "Criando sistema de arquivos" + +msgid "Creating partition" +msgstr "Criando partição" + +msgid "Croatian" +msgstr "Croata" + +msgid "Current CEC address" +msgstr "Endereço atual de CEC" + +msgid "Current device: " +msgstr "Dispositivo atual: " + +msgid "Current event EPG" +msgstr "EPG atual" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +msgid "Current settings:" +msgstr "Configurações atuais:" + +msgid "Current transponder" +msgstr "Transponder atual" + +msgid "Current value: " +msgstr "Valor atual: " + +msgid "Current version:" +msgstr "Versão instalada:" + +msgid "Currently installed image" +msgstr "Imagem instalada atualmente" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +msgid "Custom skip time for '1'/'3' buttons" +msgstr "Tempo de salto para os botões 1/3" + +msgid "Custom skip time for '4'/'6' buttons" +msgstr "Tempo de salto para os botões 4/6" + +msgid "Custom skip time for '7'/'9' buttons" +msgstr "Tempo de salto para os botões 7/9" + +msgid "Customize" +msgstr "Personalizar" + +msgid "Customize channel list cursor behavior" +msgstr "" + +msgid "Cut" +msgstr "Cortar" + +msgid "Cutlist editor..." +msgstr "Editor de cortes" + +msgid "Czech" +msgstr "Checo" + +msgid "D" +msgstr "" + +msgid "DHCP" +msgstr "" + +msgid "DMM advanced" +msgstr "DMM avançado" + +msgid "DMM normal" +msgstr "DMM normal" + +msgid "DUAL LAYER DVD" +msgstr "DVD Dupla Camada" + +msgid "DVB subtitle black transparency" +msgstr "Transparência do preto da legenda DVB" + +msgid "DVB-C" +msgstr "" + +msgid "DVB-C ANNEX C" +msgstr "" + +msgid "DVB-S" +msgstr "" + +msgid "DVB-S2" +msgstr "" + +msgid "DVB-T" +msgstr "" + +msgid "DVB-T2" +msgstr "" + +msgid "DVD data format" +msgstr "Formato do DVD" + +msgid "DVD file browser" +msgstr "Explorador de arquivos do DVD" + +msgid "DVD media toolbox" +msgstr "Ferramentas de mídia do DVD" + +msgid "DVD player" +msgstr "Reprodutor de DVD" + +msgid "DVD titlelist" +msgstr "Lista de títulos do DVD" + +msgid "Danish" +msgstr "Dinamarquês" + +msgid "Date" +msgstr "Data" + +msgid "Date/time input" +msgstr "Informe a data/hora" + +msgid "Deep standby" +msgstr "Desligar" + +msgid "Default" +msgstr "Padrão" + +msgid "Default movie location" +msgstr "Diretório padrão das gravações" + +msgid "Default settings" +msgstr "Configuração padrão" + +msgid "Delay before key repeat starts:" +msgstr "Atraso antes da repetição da tecla:" + +msgid "Delay for external subtitles" +msgstr "Atraso para legendas externas" + +msgid "Delete" +msgstr "Remover" + +msgid "Delete entry" +msgstr "Remover item" + +msgid "Delete failed!" +msgstr "Falha ao remover!" + +msgid "Delete file" +msgstr "Remover arquivo" + +msgid "Delete playlist entry" +msgstr "Remover item da lista de reprodução" + +msgid "Delete saved playlist" +msgstr "Remover lista de reprodução salva" + +msgid "Delete timer" +msgstr "" + +msgid "Delete..." +msgstr "Remover" + +msgid "Deleted" +msgstr "Removido" + +msgid "Deleted items" +msgstr "Itens removidos" + +msgid "Depth" +msgstr "Profundidade" + +msgid "Descramble http streams" +msgstr "Decodificar streams HTTP" + +msgid "Description" +msgstr "Descrição" + +msgid "Deselect" +msgstr "Desmarcar" + +msgid "Details for plugin: " +msgstr "Detalhes do plugin:" + +msgid "Detected HDD:" +msgstr "Disco rígido detectado:" + +msgid "Detected NIMs:" +msgstr "NIMs detectado:" + +msgid "Devicename:" +msgstr "Dispositivo:" + +msgid "Devide" +msgstr "" + +msgid "DiSEqC" +msgstr "" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +msgid "DiSEqC A/B" +msgstr "" + +msgid "DiSEqC A/B/C/D" +msgstr "" + +msgid "DiSEqC mode" +msgstr "Protocolo DiSEqC" + +#, python-format +msgid "DiSEqC port %s: %s" +msgstr "Porta DiSEqC %s: %s" + +msgid "DiSEqC-tester settings" +msgstr "Configurar DiSEqC-tester" + +msgid "Dialing:" +msgstr "Discando:" + +msgid "Digital contour removal" +msgstr "Remover contorno digital" + +msgid "Direct playback of linked titles without menu" +msgstr "Reproduzir diretamente títulos sem menu" + +msgid "Directory" +msgstr "Diretório" + +#, python-format +msgid "Directory %s does not exist." +msgstr "O diretório %s não existe." + +#, python-format +msgid "Directory %s nonexistent." +msgstr "O diretório %s não existe." + +msgid "Directory browser" +msgstr "Navegador de arquivos" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "O diretório contém %d arquivo(s) e %d subdiretório(s).\n" + +#, python-format +msgid "Directory contains %s and %s." +msgstr "O diretório contém %s e %s." + +msgid "Disable" +msgstr "Desativar" + +msgid "Disable Picture in Picture" +msgstr "Desativar PiP" + +msgid "Disable background scanning" +msgstr "Desativar busca em segundo plano" + +msgid "Disable timer" +msgstr "Desativar temporizador" + +msgid "Disabled" +msgstr "Desativado" + +msgid "Disconnect" +msgstr "Desconectado" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "Espaço reservado no disco para gravações (GB) " + +msgid "Display 16:9 content as" +msgstr "Exibir 16:9 como" + +msgid "Display 4:3 content as" +msgstr "Exibir 4:3 como" + +msgid "Display >16:9 content as" +msgstr "Exibir 16:9 como" + +msgid "Display and userinterface" +msgstr "Tela e interface visual" + +msgid "Display message before playing next movie" +msgstr "Exibir mensagem antes do próximo vídeo" + +msgid "Display setup" +msgstr "Painel frontal" + +msgid "Do not change" +msgstr "Não alterar" + +msgid "Do not record" +msgstr "Não gravar" + +msgid "Do nothing" +msgstr "Não fazer nada" + +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Verificar o sistema de arquivos?\n" +"Isto pode levar muito tempo!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" +"Converter o sistema de arquivos?\n" +"Esta alteração não poderá ser desfeita!" + +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Remover %s?" + +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"Instalar o plugin\n" +"\"%s\"?" + +msgid "Do you really want to exit?" +msgstr "Deseja realmente sair?" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" +"Tem certeza de que deseja FORMATAR o dispositivo?\n" +"Todo o conteúdo do disco será perdido!" + +#, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"Deseja realmente remover\n" +"o plugin \"%s\"?" + +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Tem certeza de que deseja remover o diretório %s do disco?" + +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Remover o favorito de %s?" + +msgid "Do you want this?" +msgstr "Está certo disto?" + +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Gravar esta coleção para DVD?" + +msgid "Do you want to do a service scan?" +msgstr "Realizar uma busca de canais?" + +msgid "Do you want to do another manual service scan?" +msgstr "Realizar outra busca manual?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "Realizar o download da imagem para %s ?" + +msgid "Do you want to install a channel list?" +msgstr "Deseja instalar uma lista de canais?" + +msgid "Do you want to install the package:\n" +msgstr "Deseja instalar o pacote:\n" + +msgid "Do you want to play DVD in drive?" +msgstr "Reproduzir o DVD inserido no drive?" + +msgid "Do you want to preview this DVD before burning?" +msgstr "Deseja revisar o DVD antes de gravar?" + +msgid "Do you want to reboot your receiver?" +msgstr "Deseja reiniciar o receptor?" + +msgid "Do you want to remove the package:\n" +msgstr "Deseja remover o pacote:\n" + +msgid "Do you want to restore your settings?" +msgstr "Restaurar um backup de configurações anteriores?" + +msgid "Do you want to resume this playback?" +msgstr "Continuar da posição anterior?" + +#, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Atualizar o receptor para %s?" + +msgid "Do you want to update your receiver?" +msgstr "Deseja atualizar o receptor?" + +msgid "Do you want to upgrade the package:\n" +msgstr "Deseja atualizar o pacote:\n" + +msgid "Don't stop current event but disable coming events" +msgstr "Não parar o programa atual mas desativar novos eventos" + +#, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "Terminado - Instalado, atualizado ou removido %d pacote (%s)" +msgstr[1] "Terminado - Instalados, atualizados ou removidos %d pacotes (%s)" + +msgid "Download" +msgstr "" + +#, python-format +msgid "Download %s from server" +msgstr "Baixar %s do servidor" + +msgid "Download .NFI-files for USB-flasher" +msgstr "Baixar arquivos .NFI para pendrive" + +msgid "Download plugins" +msgstr "Obter plugins" + +msgid "Downloadable new plugins" +msgstr "Lista de plugins" + +msgid "Downloadable plugins" +msgstr "Plugins disponíveis" + +msgid "Downloading" +msgstr "Fazendo o download" + +msgid "Downloading plugin information. Please wait..." +msgstr "Obtendo informações. Aguarde..." + +msgid "Dutch" +msgstr "Holandês" + +msgid "Dynamic contrast" +msgstr "Contraste dinâmico" + +msgid "E" +msgstr "" + +msgid "EPG" +msgstr "" + +msgid "EPG language selection 1" +msgstr "Idioma de EPG 1" + +msgid "EPG language selection 2" +msgstr "Idioma de EPG 2" + +msgid "EPG selection" +msgstr "Selecionar EPG" + +msgid "EPG settings" +msgstr "EPG" + +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "ERRO - Falha na busca (%s)!" + +msgid "East" +msgstr "Leste" + +msgid "East limit set" +msgstr "Definir o limite leste" + +msgid "Edit" +msgstr "Editar" + +msgid "Edit DNS" +msgstr "Configurar DNS" + +msgid "Edit bouquets list" +msgstr "Editar lista de grupos" + +msgid "Edit chapters of current title" +msgstr "Editar capítulos do título atual" + +msgid "Edit services list" +msgstr "Editar lista de canais" + +msgid "Edit settings" +msgstr "Editar configurações" + +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "Edita a configuração do servidor DNS.\n" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "Edita a configuração de rede do receptor.\n" + +msgid "Edit timer" +msgstr "" + +msgid "Edit title" +msgstr "Editar título" + +msgid "Edit upgrade source url." +msgstr "Editar URL da fonte de atualização." + +msgid "Education/Science/..." +msgstr "Educação/Ciência" + +msgid "Electronic Program Guide" +msgstr "" + +msgid "Enable" +msgstr "Ativar" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +msgid "Enable 5V for active antenna" +msgstr "Ativar saída de 5V para a antena" + +msgid "Enable EIT EPG" +msgstr "Ativar EPG EIT" + +msgid "Enable MHW EPG" +msgstr "Ativar EPG MHW" + +msgid "Enable Netmed EPG" +msgstr "Ativar EPG Netmed" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "Ativar EPG Viasat" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +msgid "Enable bouquet selection in multi-EPG" +msgstr "Ativar seleção de grupo de favoritos no Multi EPG" + +msgid "Enable freesat EPG" +msgstr "Ativar EPG Freesat" + +msgid "Enable multiple bouquets" +msgstr "Ativar grupos favoritos múltiplos" + +msgid "Enable parental control" +msgstr "Ativar controle de acesso" + +msgid "Enable teletext caching" +msgstr "Ativar cache de teletexto" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +msgid "Enabled" +msgstr "Ativar" + +msgid "Encrypted: " +msgstr "Encriptado:" + +msgid "Encryption" +msgstr "Encriptação" + +msgid "Encryption key" +msgstr "Chave de encriptação" + +msgid "Encryption key type" +msgstr "Tipo de chave de encriptação" + +msgid "Encryption:" +msgstr "Encriptação:" + +msgid "End time" +msgstr "Hora do fim" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "Ignorar o temporizador de inatividade até" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +msgid "English" +msgstr "Inglês" + +msgid "Enigma2 skin selector" +msgstr "Selecionar tema" + +msgid "Enter main menu..." +msgstr "Menu principal" + +msgid "Enter pin code" +msgstr "Informe a senha" + +msgid "Enter the service pin" +msgstr "Informe a senha" + +msgid "Equal to" +msgstr "" + +msgid "Error" +msgstr "Erro" + +msgid "Error code" +msgstr "Código de erro" + +msgid "Error executing plugin" +msgstr "Erro ao executar o plugin" + +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Erro: %s\n" +"Tentar de novo?" + +msgid "Estonian" +msgstr "Estoniano" + +msgid "Ethernet network interface" +msgstr "Interface de rede ethernet" + +msgid "Event font size (relative to skin size)" +msgstr "Tamanho de letra (relativo ao tema)" + +msgid "Event view" +msgstr "Ver evento" + +msgid "Event view menu" +msgstr "Menu de eventos" + +msgid "Everywhere" +msgstr "Em tudo" + +msgid "Exceeds dual layer medium!" +msgstr "É maior que a mídia de dupla face!" + +msgid "Execution finished!!" +msgstr "Pronto!" + +msgid "Execution progress:" +msgstr "Progresso:" + +msgid "Exif" +msgstr "EXIF" + +msgid "Exit" +msgstr "Sair" + +msgid "Exit EPG" +msgstr "Sair do EPG" + +msgid "Exit editor" +msgstr "Sair do editor" + +msgid "Exit input device selection." +msgstr "Sair da seleção de dispositivos de entrada" + +msgid "Exit media player?" +msgstr "Sair do reprodutor de mídia?" + +msgid "Exit mediaplayer" +msgstr "Sair do reprodutor de mídia" + +msgid "Exit movie list" +msgstr "Sair da lista de vídeos" + +msgid "Exit movie player?" +msgstr "Sair do reprodutor de mídia?" + +msgid "Exit nameserver configuration" +msgstr "Sair da configuração do servidor DNS" + +msgid "Exit network interface list" +msgstr "Sair da lista de interface de rede" + +msgid "Exit network wizard" +msgstr "Sair do assistente de rede" + +msgid "Exit the wizard" +msgstr "Sair do assistente" + +msgid "Expert" +msgstr "Expert" + +msgid "Extend sleeptimer 15 minutes" +msgstr "Estender o temporizador por 15 minutos" + +msgid "Extended Software" +msgstr "Software avançado" + +msgid "Extended Software Plugin" +msgstr "Plugin de software avançado" + +msgid "Extended network setup plugin..." +msgstr "Plugin de configuração de rede avançado" + +msgid "Extended setup..." +msgstr "Configurações avançadas" + +msgid "Extensions" +msgstr "Extensões" + +msgid "Extensions management" +msgstr "Gerenciar extensões" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "Cor da legenda externa" + +msgid "Extra motor options" +msgstr "" + +msgid "FEC" +msgstr "" + +msgid "FTA" +msgstr "" + +msgid "Factory reset" +msgstr "Padrão de fábrica" + +msgid "Failed" +msgstr "Falha" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "Falha na escrita /tmp/positionersetup.log:" + +#, python-format +msgid "Fan %d" +msgstr "Vent. %d" + +#, python-format +msgid "Fan %d PWM" +msgstr "Vent. %d PWM" + +#, python-format +msgid "Fan %d voltage" +msgstr "Vent. %d Tensão" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +msgid "Fast" +msgstr "Rápido" + +msgid "Fast DiSEqC" +msgstr "DiSEqC rápida" + +msgid "Fast Scan" +msgstr "Buscar operadora" + +msgid "Fast epoch" +msgstr "Epoch rápido" + +msgid "Fast forward speeds" +msgstr "Velocidades de avanço rápido" + +msgid "Favourites" +msgstr "Favoritos" + +msgid "File appears to be busy.\n" +msgstr "Arquivo está em uso.\n" + +msgid "Filesystem check" +msgstr "Verificar sistema de arquivos" + +msgid "Final position at" +msgstr "Posição final em" + +msgid "Final position at index" +msgstr "Posição final no índice" + +msgid "Fine movement" +msgstr "Ajuste fino" + +msgid "Finetune" +msgstr "Sintonia fina" + +msgid "Finished" +msgstr "Pronto" + +msgid "Finished configuring your network" +msgstr "Configuração de rede finalizada" + +msgid "Finished restarting your network" +msgstr "Rede reiniciada" + +msgid "Finnish" +msgstr "Finlandês" + +msgid "Fixed" +msgstr "Fixo" + +msgid "Flash" +msgstr "" + +msgid "Flashing failed" +msgstr "A gravação falhou" + +msgid "Following tasks will be done after you press OK!" +msgstr "As tarefas irão terminar após pressionar OK!" + +msgid "Format" +msgstr "Formato" + +msgid "Forward volume keys" +msgstr "Avançar teclas de volume" + +msgid "Frame size in full view" +msgstr "Janela em tamanho grande" + +msgid "French" +msgstr "Francês" + +msgid "Frequency" +msgstr "Frequência" + +msgid "Frequency bands" +msgstr "Bandas de frequência" + +msgid "Frequency scan step size(khz)" +msgstr "Passo de frequência (kHz)" + +msgid "Frequency steps" +msgstr "Passos de frequência" + +msgid "Frequency:" +msgstr "Frequência:" + +msgid "Fri" +msgstr "Sex" + +msgid "Friday" +msgstr "Sexta-feira" + +msgid "From :" +msgstr "De:" + +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Versão do processador: %d" + +msgid "Full transparency" +msgstr "Transparência total" + +msgid "Fulview resulution" +msgstr "Resolução de tela cheia" + +msgid "Function of OK button" +msgstr "Função do botão OK" + +msgid "Further Options" +msgstr "" + +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"Interface necessita reiniciar para aplicar o novo tema.\n" +"Reiniciar agora?" + +msgid "Gateway" +msgstr "Gateway" + +msgid "General AC3 delay" +msgstr "Atraso AC3 geral" + +msgid "General PCM delay" +msgstr "Atraso PCM geral" + +msgid "Genre" +msgstr "Gênero" + +msgid "German" +msgstr "Alemão" + +msgid "Get latest experimental image" +msgstr "Obter imagem experimental mais recente" + +msgid "Get latest release image" +msgstr "Obter imagem mais recente" + +msgid "Getting plugin information. Please wait..." +msgstr "Obtendo informações. Aguarde..." + +msgid "Go down the list" +msgstr "Ir para baixo na lista" + +msgid "Go to first movie or last item" +msgstr "Ir para a primeira gravação ou último item" + +msgid "Go to first movie or top of list" +msgstr "Ir para a primeira gravação ou topo da lista" + +msgid "Go to first service" +msgstr "Ir para o primeiro canal" + +msgid "Go to last service" +msgstr "Ir para o último canal" + +msgid "Go to next event" +msgstr "Ir para o próximo evento" + +msgid "Go to next page of service" +msgstr "Ir para a próxima página de serviços" + +msgid "Go to previous event" +msgstr "Ir para o evento anterior" + +msgid "Go to previous page of service" +msgstr "Ir para a página anterior de serviços" + +msgid "Go up the list" +msgstr "Ir para o topo da lista" + +msgid "Goto" +msgstr "Ir para" + +msgid "Goto 0" +msgstr "Ir para 0" + +msgid "Goto :" +msgstr "Ir para:" + +msgid "Goto X" +msgstr "Ir para X" + +msgid "Goto index position" +msgstr "Ir para a posição de índice" + +msgid "Goto next day of events" +msgstr "Próximo dia de eventos" + +msgid "Goto next page of events" +msgstr "Próxima página de eventos" + +msgid "Goto position" +msgstr "Ir para posição" + +msgid "Goto previous day of events" +msgstr "Dia anterior de eventos" + +msgid "Goto previous page of events" +msgstr "Página anterior de eventos" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "Calibrar 'Ir para X'" + +msgid "GraphMultiEpg Settings" +msgstr "Configurar Multi EPG Gráfico" + +msgid "Graphical Multi EPG" +msgstr "Multi EPG Gráfico" + +msgid "Greek" +msgstr "Grego" + +msgid "Green boost" +msgstr "" + +msgid "Guard interval" +msgstr "Inervalo de segurança" + +msgid "HD list" +msgstr "Lista HD" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "Controlar modo de espera a partir da TV" + +msgid "Handle wakeup from TV" +msgstr "Controlar ativação a partir da TV" + +msgid "Hard disk" +msgstr "Disco rígido" + +msgid "Hard disk setup" +msgstr "Configurar disco rígido" + +msgid "Hard disk standby after" +msgstr "Desligar disco rígido após" + +msgid "Harddisk" +msgstr "Disco rígido" + +msgid "Hardware: " +msgstr "" + +msgid "Hebrew" +msgstr "Hebraico" + +msgid "Helps setting up your dish" +msgstr "Ajuda a configurar sua antena" + +msgid "Hidden network" +msgstr "Rede oculta" + +msgid "Hide CI messages" +msgstr "Ocultar mensagens do CI" + +msgid "Hide channel list in radio mode" +msgstr "Esconder lista de canais no modo rádio" + +msgid "Hide known extensions" +msgstr "Ocultar extensões conhecidas." + +msgid "Hide number markers" +msgstr "Ocultar marcadores numéricos" + +msgid "Hide player" +msgstr "Esconder reprodutor" + +msgid "Hide zap errors" +msgstr "Ocultar erros no zapping" + +msgid "Hierarchy info" +msgstr "Informação hierárquica" + +msgid "Hierarchy information" +msgstr "Informação hierárquica" + +msgid "High bitrate support" +msgstr "Suporte para bitrate alto" + +msgid "Hold screen" +msgstr "Manter tela" + +msgid "Hold till locked" +msgstr "Manter até estabilizar" + +msgid "Home" +msgstr "Origem" + +msgid "Horizontal" +msgstr "Horizontal" + +msgid "Horizontal turning speed" +msgstr "Velocidade de rotação horizontal" + +msgid "How many minutes do you want to record?" +msgstr "Gravar por quantos minutos?" + +msgid "Hue" +msgstr "Tom" + +msgid "Hungarian" +msgstr "Húngaro" + +msgid "IP address" +msgstr "Endereço IP" + +msgid "ISO file is too large for this filesystem!" +msgstr "Arquivo ISO muito grande para o sistema de arquivos!" + +msgid "ISO path" +msgstr "Caminho ISO" + +msgid "Icons" +msgstr "Ãcones" + +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"Há algum problema com a conexão SCART.\n" +"Pressione OK para voltar." + +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"Se a TV tiver ajuste de brilho ou contraste, desligue. Se tiver alguma função como \"ajuste dinâmico\", ajuste para \"padrão\". Ajuste o nível da luz de fundo para um valor a seu gosto. Baixe o contraste da TV o máximo possível.\n" +"Depois ajuste o brilho para o mais baixo possível, mas certifique-se de que as duas escalas de cinza mais baixas sejam visíveis.\n" +"Não se preocupe com os níveis de brilho agora. Serão ajustadas no próximo passo.\n" +"Pressione OK para continuar." + +msgid "Image: " +msgstr "Imagem:" + +msgid "Immediate shutdown" +msgstr "Desligar imediatamente" + +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "Para iniciar uma gravação agendada, o canal foi alterado!\n" + +msgid "In progress" +msgstr "Em andamento" + +msgid "Inactivity Sleeptimer" +msgstr "Evento pro inatividade" + +msgid "Include AIT in http streams" +msgstr "Incluir AIT nos streams HTTP" + +msgid "Include ECM in http streams" +msgstr "Incluir ECM nos streams HTTP" + +msgid "Include EIT in http streams" +msgstr "Incluir EIT nos streams HTTP" + +msgid "Incorrect type service for PiP!" +msgstr "" + +msgid "Increased voltage" +msgstr "Aumento de tensão" + +msgid "Index" +msgstr "Ãndice" + +msgid "Index allocated:" +msgstr "Ãndice alocado:" + +msgid "Info" +msgstr "Informações" + +msgid "Info bar" +msgstr "Barra de informações" + +msgid "Info bar timeout" +msgstr "Tempo da barra de informações" + +msgid "Infobar frontend data source" +msgstr "" + +msgid "Information" +msgstr "Informação" + +msgid "Init" +msgstr "Início" + +msgid "Initial fast forward speed" +msgstr "Velocidade inicial de avançar" + +msgid "Initial location in new timers" +msgstr "Localização inicial para novos agendamentos" + +msgid "Initial lock ratio" +msgstr "" + +msgid "Initial rewind speed" +msgstr "Velocidade inicial de retorno" + +msgid "Initial signal quality" +msgstr "Qualidade de sinal inicial" + +msgid "Initial signal quality:" +msgstr "Qualidade de sinal inicial:" + +msgid "Initialization" +msgstr "Formatar disco rígido" + +msgid "Initialize" +msgstr "Iniciado" + +msgid "Initializing storage device..." +msgstr "Iniciando dispositivo de armazenamento..." + +msgid "Input" +msgstr "Entrada" + +msgid "Input device setup" +msgstr "Configurar dispositivos de entrada" + +msgid "Input devices" +msgstr "Dispositivos de entrada" + +msgid "Install" +msgstr "Instalar" + +msgid "Install a new image with a USB stick" +msgstr "Instalar nova imagem a partir de um pendrive" + +msgid "Install a new image with your web browser" +msgstr "Instalar uma nova imagem com o navegador" + +msgid "Install channel list" +msgstr "Instalar lista de canais" + +msgid "Install extensions" +msgstr "" + +msgid "Install extensions." +msgstr "Instalar extensões." + +msgid "Install local extension" +msgstr "Instalar extensão local" + +msgid "Install picons on" +msgstr "Instalar picons em" + +msgid "Install softcam" +msgstr "Instalar softcam" + +msgid "Installation has completed." +msgstr "Instalação concluída." + +msgid "Installation or removal has completed." +msgstr "Instalação ou desinstalação concluida." + +msgid "Installing" +msgstr "Instalando..." + +msgid "Installing software..." +msgstr "Instalando o software..." + +msgid "Instant recording location" +msgstr "Diretório das gravações instantâneas" + +msgid "Instant recording..." +msgstr "Gravação instantânea" + +msgid "Interface: " +msgstr "Interface de uso" + +msgid "Intermediate" +msgstr "Intermediário" + +msgid "Internal flash" +msgstr "Flash interna" + +msgid "Internal hdd only" +msgstr "Somente disco interno" + +msgid "Interval between keys when repeating:" +msgstr "Intervalo entre teclas quando repetir:" + +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Diretório inválido: %s" + +msgid "Invalid location" +msgstr "Diretório inválido" + +msgid "Invalid transponder data" +msgstr "" + +msgid "Inversion" +msgstr "Inversão" + +msgid "Invert" +msgstr "Inverter" + +msgid "Ipkg" +msgstr "" + +msgid "Is this setting ok?" +msgstr "Usar estas configurações?" + +msgid "Is this video mode ok?" +msgstr "Este modo de vídeo está correto?" + +msgid "Italian" +msgstr "Italiano" + +msgid "Items per page " +msgstr "Itens por página" + +msgid "Items per page for list screen" +msgstr "Itens por página na lista" + +msgid "Job overview" +msgstr "Ver tarefas" + +msgid "Jump to beginning of list" +msgstr "Ir para o início da lista" + +msgid "Jump to end of list" +msgstr "Ir para o fim da lista" + +msgid "Jump to next marked position" +msgstr "Ir para a próxima marca" + +msgid "Jump to previous marked position" +msgstr "Ir para marca anterior" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +msgid "Just scale" +msgstr "Modo escala" + +msgid "Keep service" +msgstr "" + +msgid "Kernel version: " +msgstr "Versão do Kernel:" + +msgid "Keyboard" +msgstr "Teclado" + +msgid "Keyboard map" +msgstr "Mapa do teclado" + +msgid "Keyboard setup" +msgstr "Configuração do teclado" + +msgid "LAN adapter" +msgstr "Adaptador LAN" + +msgid "LAN connection" +msgstr "Conexão LAN" + +msgid "LNB" +msgstr "" + +msgid "Language" +msgstr "Idioma" + +msgid "Language selection" +msgstr "Selecione o idioma" + +msgid "Last config" +msgstr "Última configuração" + +msgid "Last speed" +msgstr "Última velocidade" + +msgid "Last upgrade: " +msgstr "Última atualização:" + +msgid "Latest Commits" +msgstr "" + +msgid "Latitude" +msgstr "" + +msgid "Latvian" +msgstr "Letão" + +msgid "Leave DVD player?" +msgstr "Sair do reprodutor de DVD?" + +msgid "Left" +msgstr "Esquerda" + +msgid "Left from servicename" +msgstr "Esquerda do nome do serviço" + +msgid "Leisure hobbies" +msgstr "Lazer" + +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "" + +msgid "Letterbox zoom" +msgstr "" + +msgid "Limit character set for recording filenames" +msgstr "Limite de caracteres para o nome das gravações" + +msgid "Limit east" +msgstr "Limite leste" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "Limitar os caracteres que podem ser usados ​​em nomes de gravação a (7 bits) ASCII. Isso garante a compatibilidade com sistemas operacionais, sistemas de arquivos com conjuntos de caracteres limitados." + +msgid "Limit west" +msgstr "Limite oeste" + +msgid "Limits cancelled" +msgstr "Limites cancelados" + +msgid "Limits enabled" +msgstr "Limites ativos" + +msgid "Limits off" +msgstr "Desligar limites" + +msgid "Limits on" +msgstr "Ligar limites" + +msgid "Link quality:" +msgstr "Qualidade de conexão:" + +msgid "Link:" +msgstr "Conexão:" + +msgid "Linked titles with a DVD menu" +msgstr "Corresponder títulos a menu de DVD" + +msgid "List EPG functions..." +msgstr "Listar opções do EPG" + +msgid "List available networks" +msgstr "Listar redes disponíveis" + +msgid "List mode" +msgstr "Lista" + +msgid "List of storage devices" +msgstr "Dispositivos de armazenamento" + +msgid "List type" +msgstr "Listar tipo" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "Versão de lista %d, encontrado %d canal" +msgstr[1] "Versão de lista %d, encontrados %d canais" + +msgid "Listen to the radio..." +msgstr "Ouvir rádio" + +msgid "Lists reloaded!" +msgstr "" + +msgid "Lithuanian" +msgstr "Lituano" + +msgid "Load" +msgstr "Carregar" + +msgid "Load Length of Movies in Movielist" +msgstr "Carregar o tamanho dos vídeos na lista" + +msgid "Load length of movies in movie list" +msgstr "Carregar o tamanho das gravações" + +msgid "Load playlist" +msgstr "Carregar lista de reprodução" + +msgid "Local network" +msgstr "Rede Local" + +msgid "Location" +msgstr "Caminho" + +msgid "Location for instant recordings" +msgstr "Diretório das gravações instantâneas" + +msgid "Lock ratio" +msgstr "" + +msgid "Lock:" +msgstr "Sinal:" + +msgid "Log results to harddisk" +msgstr "Resultados do relatório para o disco" + +msgid "Long filenames" +msgstr "Nomes longos de arquivos" + +msgid "Long key press" +msgstr "Manter tecla pressionada" + +msgid "Longitude" +msgstr "" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "Luxemburguês" + +msgid "MMC card" +msgstr "Cartão MMC" + +msgid "MORE" +msgstr "Mais" + +msgid "Main menu" +msgstr "Menu principal" + +msgid "Maintain old EPG data for" +msgstr "Manter EPG antigo (minutos)" + +msgid "Make this mark an 'in' point" +msgstr "Marcar como ponto de entrada" + +msgid "Make this mark an 'out' point" +msgstr "Marcar como ponto de saída" + +msgid "Make this mark just a mark" +msgstr "Somente marcar" + +msgid "Manage extensions" +msgstr "Gerenciar extensões" + +msgid "Manage your receiver's software" +msgstr "Gerenciar o software do receptor" + +msgid "Manual" +msgstr "" + +msgid "Manual Scan" +msgstr "Busca avançada" + +msgid "Manual configuration" +msgstr "Configuração manual" + +msgid "Manual scan" +msgstr "Busca avançada" + +msgid "Manual transponder" +msgstr "Transponder manual" + +msgid "Manufacturer" +msgstr "Fabricante" + +msgid "Margin after recording (minutes)" +msgstr "Margem após gravar (minutos)" + +msgid "Margin before recording (minutes)" +msgstr "Margem antes de gravar (minutos)" + +msgid "Max memory positions" +msgstr "" + +msgid "Max. bitrate: " +msgstr "Bitrate máximo: " + +msgid "Media player" +msgstr "Reprodutor de mídia" + +msgid "Media scanner" +msgstr "Buscar mídia" + +msgid "Medium is not a writeable DVD!" +msgstr "A mídia não é um DVD gravável!" + +msgid "Medium is not empty!" +msgstr "A mídia não está vazia!" + +msgid "Memory" +msgstr "Memória" + +msgid "Memory index" +msgstr "Ãndice de memória" + +msgid "Menu" +msgstr "Menu" + +msgid "Message" +msgstr "Mensagem" + +msgid "Message..." +msgstr "Mensagem" + +#, python-format +msgid "Minimum age %d years" +msgstr "Classificação: %d anos" + +msgid "Minimum send interval" +msgstr "Intervalo mínimo de envio" + +msgid "Missing " +msgstr "Faltando" + +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Modo" + +msgctxt "Video output mode" +msgid "Mode" +msgstr "Modo" + +msgid "Model: " +msgstr "Modelo:" + +msgid "Modulation" +msgstr "Modulação" + +msgid "Modulator" +msgstr "Modulador" + +msgid "Mon" +msgstr "Seg" + +msgid "Mon-Fri" +msgstr "Seg-Sex" + +msgid "Monday" +msgstr "Segunda-feira" + +msgid "Mosquito noise reduction" +msgstr "" + +msgid "Mount" +msgstr "Montagem" + +msgid "Move" +msgstr "Mover" + +msgid "Move PiP to main picture" +msgstr "Mover PiP para imagem principal" + +msgid "Move Picture in Picture" +msgstr "Mover PiP" + +msgid "Move east" +msgstr "Mover leste" + +msgid "Move to other directory" +msgstr "Mover para outro diretório" + +msgid "Move to position X" +msgstr "Mover para posição X" + +msgid "Move west" +msgstr "Mover oeste" + +msgid "Moved to position 0" +msgstr "Movido para posição 0" + +msgid "Moved to position at index" +msgstr "Movido para a posição de índice" + +msgid "Movement" +msgstr "Movimento" + +msgid "Movie List Configuration" +msgstr "Configurar lista de vídeos" + +msgid "Movie Selection" +msgstr "Selecionar vídeos" + +msgid "Movie list configuration" +msgstr "Configurar lista de vídeos" + +msgid "Movie location" +msgstr "Diretório das gravações" + +msgid "Movie selection" +msgstr "Selecionar vídeos" + +msgid "Movie/Drama" +msgstr "Filme/Drama" + +msgid "Movielist menu" +msgstr "Menu da lista de vídeos" + +msgid "Moving" +msgstr "Movendo..." + +msgid "Moving east ..." +msgstr "Movendo para leste..." + +msgid "Moving to position" +msgstr "Movendo para a posição" + +msgid "Moving west ..." +msgstr "Movendo para oeste..." + +msgid "Multi EPG" +msgstr "" + +msgid "Multi-EPG bouquet selection" +msgstr "Grupos Favoritos Multi EPG" + +msgid "Multimedia" +msgstr "Multimídia" + +msgid "Multiple service support" +msgstr "Suporte para serviços múltiplos" + +msgid "Multiplex" +msgstr "Mux" + +msgid "Multisat" +msgstr "Múltiplos satélites" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "Música/Balé/Dança" + +msgid "Mute" +msgstr "Mudo" + +msgid "N/A" +msgstr "" + +msgid "NEXT" +msgstr "Próximo" + +msgid "NFI image flashing" +msgstr "Flash de imagem NFI" + +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "Flash de imagem NFI concluído. Pressione Amarelo para reiniciar!" + +msgid "NIM" +msgstr "" + +msgid "NOW" +msgstr "Agora" + +msgid "NTSC" +msgstr "" + +msgid "Name" +msgstr "Nome" + +msgid "Nameserver" +msgstr "Servidor DNS" + +#, python-format +msgid "Nameserver %d" +msgstr "Servidor DNS %d" + +msgid "Nameserver settings" +msgstr "Configurar DNS" + +msgid "Nameserver setup" +msgstr "Configurar DNS" + +msgid "Namespace" +msgstr "" + +msgid "Netmask" +msgstr "Máscara" + +msgid "Network" +msgstr "Rede" + +msgid "Network ID" +msgstr "ID de rede" + +msgid "Network configuration..." +msgstr "Configurar rede" + +msgid "Network mount" +msgstr "Montagem de rede" + +#, python-format +msgid "Network mount %s" +msgstr "Montagem de rede %s" + +msgid "Network name (SSID)" +msgstr "Nome da rede (SSID)" + +msgid "Network scan" +msgstr "Busca de rede (NIT)" + +msgid "Network setup" +msgstr "Configurar rede" + +msgid "Network test" +msgstr "Teste de rede" + +msgid "Network test..." +msgstr "Teste de rede" + +msgid "Network test: " +msgstr "Teste de rede:" + +msgid "Network wizard" +msgstr "Assistente de rede" + +msgid "Network:" +msgstr "Rede:" + +msgid "New" +msgstr "Novo" + +msgid "New PIN" +msgstr "Nova senha" + +msgid "New version:" +msgstr "Nova versão:" + +msgid "News Current Affairs" +msgstr "Notícias atuais" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "Próximo" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "A seguir" + +msgid "No" +msgstr "Não" + +msgid "No (supported) DVDROM found!" +msgstr "Nenhum DVD suportado encontrado!" + +msgid "No Connection" +msgstr "Sem conexão" + +msgid "No HDD found or HDD not initialized!" +msgstr "Disco rígido não encontrado ou não formatado!" + +msgid "No backup needed" +msgstr "Não fazer backup" + +msgid "No cable tuner found!" +msgstr "Tuner de cabo não encontrado!" + +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Sem dados no transponder!\n" +"(Timeout reading PAT)" + +msgid "No delay" +msgstr "Sem atraso" + +msgid "No description available." +msgstr "Descrição indisponível." + +msgid "No details for this image file" +msgstr "Não há detalhes para este arquivo" + +msgid "No displayable files on this medium found!" +msgstr "Nenhum arquivo compatível foi encontrado!" + +msgid "No event info found, recording indefinitely." +msgstr "Informações do evento indisponíveis. Gravando indefinidamente." + +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "Avanço rápido indisponível. Utilize os botões numéricos para avançar/retornar!" + +msgid "No free index available" +msgstr "Nenhum índice disponível." + +msgid "No free tuner!" +msgstr "Nenhum tuner livre!" + +msgid "No network connection available." +msgstr "Nenhuma conexão de rede disponível." + +msgid "No networks found" +msgstr "Nenhuma rede encontrada" + +msgid "No new plugins found" +msgstr "Nenhum plugin novo encontrado" + +msgid "No positioner capable frontend found." +msgstr "Nenhum posicionador encontrado." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "Sem serviço" + +msgid "No services/providers selected" +msgstr "Nenhum serviço/operadora selecionado" + +msgid "No standby" +msgstr "Sem StandBy" + +msgid "No suitable sat tuner found!" +msgstr "Nenhum tuner de satélite encontrado!" + +msgid "No tags are set on these movies." +msgstr "Não existem etiquetas para estas gravações." + +msgid "No timeout" +msgstr "Sem timeout" + +msgid "No to all" +msgstr "Não para todos" + +msgid "No transparency" +msgstr "Sem transparência" + +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "Nenhum tuner configurado para usar posicionador DiSEqC" + +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Nenhum tuner ativo!\n" +"Configure o tuner antes de iniciar a busca de canais." + +msgid "No updates available" +msgstr "Nenhuma atualização disponível." + +msgid "No updates available. Please try again later." +msgstr "Nenhuma atualização disponível. Tente novamente mais tarde." + +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Senha de canais não definida!\n" +"Alterar a senha de canais agora?\n" +"Se escolher 'Não' os canais ficarão desprotegidos!" + +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Senha de configurações não definida!\n" +"Alterar a senha de configurações agora?\n" +"Se escolher 'Não' as configurações ficarão desprotegidas!" + +msgid "No wireless networks found! Searching..." +msgstr "Nenhuma rede sem fio encontrada! Buscando..." + +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"Nenhuma rede local ativa foi encontrada.\n" +"Verifique as conexões e as configurações de rede." + +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"Nenhuma rede sem fio ativa foi encontrada.\n" +"Verifique se o adaptador é compatível e se a rede está configurada adequadamente." + +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"Nenhuma rede sem fio ativa foi encontrada.\n" +"Verifique se o adaptador é compatível e se a rede está configurada adequadamente." + +msgid "No, but restart from begin" +msgstr "Não, voltar ao início" + +msgid "No, do nothing." +msgstr "Não fazer nada" + +msgid "No, just start my receiver" +msgstr "Não, apenas iniciar o receptor" + +msgid "No, never" +msgstr "Nunca" + +msgid "None" +msgstr "Nenhum" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Não linear" + +msgid "Normal mode" +msgstr "Modo normal" + +msgid "North" +msgstr "Norte" + +msgid "Norwegian" +msgstr "Norueguês" + +msgid "Not associated" +msgstr "Não associado" + +msgid "Not configured" +msgstr "" + +#, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Espaço insuficiente no disco. Libere espaço e tente novamente. (%d MB necessário, %d MB disponível)" + +msgid "Nothing connected" +msgstr "" + +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Nada para buscar!\n" +"Configure o tuner antes de iniciar uma busca." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "Agora" + +msgid "Now playing" +msgstr "Reproduzindo" + +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Agora ajuste o contraste para aumentar o máximo possível o brilho da luz de fundo, mas certifique-se de que consegue notar diferenças entre os dois níveis de brilho mais altos. Pressione OK para continuar" + +msgid "OK" +msgstr "" + +msgid "OK, guide me through the upgrade process" +msgstr "OK, guie-me no processo de atualização" + +msgid "ONID" +msgstr "" + +msgid "OSD name request" +msgstr "" + +msgid "OSD settings" +msgstr "Configurar OSD" + +msgid "OSD transparency" +msgstr "Transparência OSD" + +msgid "Off" +msgstr "Desligado" + +msgid "Offline decode delay (ms)" +msgstr "Atraso da decodificação offline (ms)" + +msgid "Ok" +msgstr "OK" + +msgid "On" +msgstr "Ligado" + +msgid "On end of movie" +msgstr "No fim do vídeo" + +msgid "On end of movie (as menu)" +msgstr "" + +msgid "One" +msgstr "Um" + +msgid "Only extensions." +msgstr "Apenas extensões." + +msgid "Only free scan" +msgstr "Apenas FTA" + +msgid "Open service list" +msgstr "Abrir lista de canais" + +msgid "Open the movie list" +msgstr "Abrir lista de vídeos" + +msgid "Orbital position" +msgstr "Posição orbital" + +msgid "Original" +msgstr "" + +msgid "Other" +msgstr "Outra" + +msgid "Output" +msgstr "Saída" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "Substituir os arquivos de configuração durante a atualização de software?" + +msgid "Overwrite configuration files?" +msgstr "Substituir os arquivos de configuração?" + +msgid "PAL" +msgstr "" + +msgid "PCR PID" +msgstr "" + +msgid "PIDs" +msgstr "" + +msgid "PIN code needed" +msgstr "A senha é necessária" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "" + +msgid "Package list update" +msgstr "Atualizando a lista de pacotes." + +msgid "Packet management" +msgstr "Gerenciar pacotes" + +msgid "Packet manager" +msgstr "Gerenciar pacotes" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +msgid "Pan&scan" +msgstr "Pan & Scan" + +msgid "Parent directory" +msgstr "Diretório acima" + +msgid "Parental control" +msgstr "Controle de acesso" + +msgid "Parental control services editor" +msgstr "Editor de canais do controle de acesso" + +msgid "Parental control setup" +msgstr "Controle de acesso" + +msgid "Parental control type" +msgstr "Tipo de proteção" + +msgid "Password" +msgstr "Senha" + +msgid "Pause" +msgstr "Pausa" + +msgid "Pause movie at end" +msgstr "Pausar vídeo ao terminar" + +msgid "Pause playback" +msgstr "Pausar" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "Porcentagem à esquerda" + +msgid "Percentage right" +msgstr "Porcentagem à direita" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "Deseja remover permanentemente todas os itens da lixeira?" + +msgid "Permanently remove all deleted items" +msgstr "Limpar lixeira" + +msgid "Persian" +msgstr "Persa" + +msgid "Phone number" +msgstr "Número de telefone" + +msgid "PiP setup" +msgstr "Configurar PiP" + +msgid "Picon" +msgstr "" + +msgid "Picon and service name" +msgstr "Picon e nome do serviço" + +msgid "Picture player" +msgstr "Visualizador de imagens" + +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "" + +msgid "Pilot" +msgstr "Piloto" + +msgid "Play" +msgstr "Reproduzir" + +msgid "Play DVD" +msgstr "Reproduzir DVD" + +msgid "Play audio in background" +msgstr "Reproduzir áudio em segundo plano" + +msgid "Play audio-CD..." +msgstr "Reproduzir CD de Ãudio" + +msgid "Play back media files" +msgstr "Reproduz arquivos de mídia" + +msgid "Play entry" +msgstr "Reproduzir" + +msgid "Play from next mark or playlist entry" +msgstr "Iniciar na próxima marca ou entrada na lista" + +msgid "Play from previous mark or playlist entry" +msgstr "Iniciar na última marca ou entrada na lista " + +msgid "Play music..." +msgstr "Reproduzir música" + +msgid "Play next" +msgstr "Reproduzir próximo" + +msgid "Play next (return to movie list)" +msgstr "Reproduzir próximo (voltar à lista de vídeos)" + +msgid "Play next (return to previous service)" +msgstr "Reproduzir próximo (voltar ao canal anterior)" + +msgid "Play previous" +msgstr "Reproduzir anterior" + +msgid "Play recorded movies..." +msgstr "Reproduzir vídeos gravados" + +msgid "Please add titles to the compilation." +msgstr "Adicione títulos à compilação" + +msgid "Please change recording endtime" +msgstr "Altere o tempo final da gravação" + +msgid "Please check your network settings!" +msgstr "Verifique as configurações de rede!" + +msgid "Please choose an extension..." +msgstr "Escolha uma extensão" + +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Configure ou verifique o servidor DNS preenchendo os valores necessários.\n" +"Quando estiver pronto pressione OK." + +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Configure a conexão de rede preenchendo os valores necessários.\n" +"Quando estiver pronto pressione OK." + +msgid "Please connect your receiver to the internet" +msgstr "Configure a conexão de internet" + +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Não altere os valores se não tiver certeza do que está fazendo!" + +msgid "Please enter a name for the new bouquet" +msgstr "Informe o nome do novo grupo de favoritos" + +msgid "Please enter a name for the new marker" +msgstr "Informe o nome do novo marcador" + +msgid "Please enter a new filename" +msgstr "Informe o nome do novo arquivo" + +msgid "Please enter filename (empty = use current date)" +msgstr "Informe o nome do arquivo (vazio = data atual)" + +msgid "Please enter name of the new directory" +msgstr "Informe o nome do novo diretório" + +msgid "Please enter new name:" +msgstr "Informe o novo nome:" + +msgid "Please enter the correct pin code" +msgstr "Informe a senha" + +msgid "Please enter the old PIN code" +msgstr "Informe a senha antiga" + +msgid "Please follow the instructions on the TV" +msgstr "Siga as instruções na tela" + +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "Note que a mídia anteriormente selecionada não pôde ser acessada e, portanto, o diretório padrão está sendo usado." + +msgid "Please press OK to continue." +msgstr "Pressione OK para continuar." + +msgid "Please select a default EPG type..." +msgstr "Definir padrão de EPG" + +msgid "Please select a playlist to delete..." +msgstr "Selecione uma lista para remover" + +msgid "Please select a playlist..." +msgstr "Selecione uma lista de reprodução" + +msgid "Please select a sub service..." +msgstr "Selecione um subserviço" + +msgid "Please select a subservice to record..." +msgstr "Selecione um subserviço para gravar" + +msgid "Please select a subservice..." +msgstr "Selecione um subserviço" + +msgid "Please select an NFI file and press green key to flash!" +msgstr "Selecione um arquivo .NFI e pressione Verde para iniciar o a gravação!" + +msgid "Please select medium to be scanned" +msgstr "Selecione o dispositivo para examinar" + +msgid "Please select medium to use as backup location" +msgstr "Selecione um dispositivo para backup" + +msgid "Please select tag to filter..." +msgstr "Selecione o marcador para filtrar" + +msgid "Please select the movie path..." +msgstr "Selecione o diretório de gravações" + +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Selecione uma interface de rede para conectar à internet.\n" +"\n" +"Pressione OK para continuar." + +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Escolha a rede sem fio que deseja conectar.\n" +"\n" +"Pressione OK para continuar" + +msgid "Please set up tuner A" +msgstr "Configure o tuner A" + +msgid "Please set up tuner B" +msgstr "Configure o tuner B" + +msgid "Please set up tuner C" +msgstr "Configure o tuner C" + +msgid "Please set up tuner D" +msgstr "Configure o tuner D" + +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Use os botões direcionais para mover a janela PiP.\n" +"Pressione bouquet ou CH +/- para redimensionar a janela.\n" +"Pressione OK para voltar ao modo TV ou EXIT para cancelar." + +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "" +"Use os botões cima/baixo para selecionar o idioma.\n" +"Pressione OK para continuar." + +msgid "Please wait" +msgstr "" + +msgid "Please wait (downloading channel list)" +msgstr "Obtendo lista de canais. Aguarde..." + +msgid "Please wait (downloading softcam)" +msgstr "Obtendo softcam. Aguarde..." + +msgid "Please wait (updating packages)" +msgstr "Atualizando pacotes. Aguarde..." + +msgid "Please wait for activation of your network configuration..." +msgstr "Ativando as configurações de rede. Aguarde..." + +msgid "Please wait while scanning is in progress..." +msgstr "Busca em andamento. Aguarde..." + +msgid "Please wait while we configure your network..." +msgstr "Configurando a rede. Aguarde..." + +msgid "Please wait while we prepare your network interfaces..." +msgstr "Configurando as interfaces de rede. Aguarde..." + +msgid "Please wait while we test your network..." +msgstr "Testando configurações de rede. Aguarde..." + +msgid "Please wait while your network is restarting..." +msgstr "Reiniciando a rede. Aguarde..." + +msgid "Please wait..." +msgstr "Aguarde..." + +msgid "Please wait... Loading list..." +msgstr "Carregando lista. Aguarde..." + +msgid "Plugin browser" +msgstr "Plugins" + +msgid "Plugin manager activity information" +msgstr "Informação de atividade do gerenciador de plugins" + +msgid "Plugin manager help" +msgstr "Ajuda do gerenciador de plugins" + +msgid "Plugins" +msgstr "Plugins" + +msgid "Polarisation" +msgstr "Polarização" + +msgid "Polarisation:" +msgstr "Polarização:" + +msgid "Polarization" +msgstr "Polarização" + +msgid "Polish" +msgstr "Polaco" + +msgid "Port A" +msgstr "Porta A" + +msgid "Port B" +msgstr "Porta B" + +msgid "Port C" +msgstr "Porta C" + +msgid "Port D" +msgstr "Porta D" + +msgid "Portuguese" +msgstr "Português" + +msgid "Position of completed timers in timerlist" +msgstr "Gravações finalizadas na lista" + +msgid "Position stored at index" +msgstr "Posição guardada no índice" + +msgid "Positioner" +msgstr "Posicionador" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "Configurar posicionador" + +msgid "Positioner setup" +msgstr "Posicionador DiSEqC" + +msgid "Power threshold in mA" +msgstr "" + +msgid "Predefined transponder" +msgstr "Transponder predefinido" + +msgid "Prefer AC3 track" +msgstr "Preferir AC3" + +msgid "Prefer AC3+ track" +msgstr "" + +msgid "Prefer audio track stored by service" +msgstr "Preferir áudio do canal" + +msgid "Prefer graphical DVB subtitles" +msgstr "Preferir legendas DVB gráficas" + +msgid "Prefer subtitles for hearing impaired" +msgstr "Preferir legendas para deficientes auditivos" + +msgid "Prefer subtitles stored by service" +msgstr "Preferir legendas do canal" + +msgid "Preferred tuner" +msgstr "Tuner prioritário" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "Prepare outro pendrive para flash de imagem" + +msgid "Preparing... Please wait" +msgstr "Preparando. Aguarde..." + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "Pressione Info para informações adicionais." + +msgid "Press MENU on your remote control for additional options." +msgstr "Pressione Menu para opções adicionais." + +msgid "Press OK on your remote control to continue." +msgstr "Pressione OK para continuar." + +msgid "Press OK to activate the selected skin." +msgstr "Pressione OK para ativar o tema selecionado." + +msgid "Press OK to activate the settings." +msgstr "Pressione OK para ativar as configurações." + +msgid "Press OK to edit the settings." +msgstr "Pressione OK para editar as configurações." + +#, python-format +msgid "Press OK to get further details for %s" +msgstr "Pressione OK para mais detalhes de %s" + +msgid "Press OK to scan" +msgstr "Pressione OK para buscar." + +msgid "Press OK to select a provider." +msgstr "Pressione OK para selecionar uma operadora." + +msgid "Press OK to select satellites" +msgstr "" + +msgid "Press OK to select/deselect a CAId." +msgstr "Pressione OK para marcar/desmarcar um CAId." + +msgid "Press OK to start the scan" +msgstr "Pressione OK para buscar." + +msgid "Press OK to toggle the selection" +msgstr "" + +msgid "Press OK to toggle the selection." +msgstr "Pressione OK para alternar a seleção." + +msgid "Press yellow to set this interface as default interface." +msgstr "Pressione Amarelo para definir esta interface como padrão." + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "Anterior" + +msgid "Preview" +msgstr "Pré-visualizar" + +msgid "Preview menu" +msgstr "Menu de pré-visualização" + +msgid "Preview selected channel" +msgstr "Pré-visualizar canal selecionado" + +msgid "Primary DNS" +msgstr "DNS 1" + +msgid "Priority" +msgstr "Prioridade" + +msgid "Process" +msgstr "Processo" + +msgid "Progress" +msgstr "Barra de progresso" + +msgid "Progress bar left" +msgstr "Progr. peq. (esquerda)" + +msgid "Progress bar right" +msgstr "Progr. peq. (direita)" + +msgid "Properties of current title" +msgstr "Propriedades do título atual" + +msgid "Protect services" +msgstr "Proteger canais" + +msgid "Protect setup" +msgstr "Proteger configurações" + +msgid "Provider" +msgstr "Operadora" + +msgid "Provider to scan" +msgstr "Operadora para buscar" + +msgid "Providers" +msgstr "Operadoras" + +msgid "Put TV in standby" +msgstr "Colocar a TV em espera" + +msgid "Put receiver in standby" +msgstr "Colocar o receptor em espera" + +msgid "Python frontend for /tmp/mmi.socket" +msgstr "Interface Python para /tmp/mmi.socket" + +msgid "Quick" +msgstr "Rápido" + +msgid "Quick zap" +msgstr "Zap rápido" + +msgid "RF output" +msgstr "Conexão RF" + +msgid "RGB" +msgstr "" + +msgid "Radio" +msgstr "Rádio" + +msgid "Ram disk" +msgstr "Disco Ram" + +msgid "Random" +msgstr "Aleatória" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "Classificação definida na transmissão - %d" + +msgid "Rating undefined" +msgstr "Classificação indefinida" + +msgid "Really close without saving settings?" +msgstr "Sair sem salvar as configurações?" + +msgid "Really delete done timers?" +msgstr "Remover temporizadores concluídos?" + +msgid "Really exit the subservices quickzap?" +msgstr "Deseja realmente sair?" + +msgid "Really reboot now?" +msgstr "Reiniciar agora?" + +msgid "Really restart now?" +msgstr "Reiniciar agora?" + +msgid "Really shutdown now?" +msgstr "Desligar agora?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "Atualizar o processador e reiniciar agora?" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "Atualizar o receptor e reiniciar agora?" + +msgid "Reboot" +msgstr "Reiniciar receptor" + +msgid "Rec" +msgstr "" + +msgid "Reception settings" +msgstr "Configurar recepção" + +msgid "Record" +msgstr "Gravações" + +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "Tempo de gravação limitado devido a conflito com %s" + +msgid "Recorded files..." +msgstr "Arquivos gravados:" + +msgid "Recording" +msgstr "Gravando..." + +msgid "Recording in progress" +msgstr "Gravação em andamento" + +msgid "Recording paths" +msgstr "Diretórios de gravações" + +msgid "Recording type" +msgstr "Tipo de gravação" + +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "Há gravações em andamento ou iniciando nos próximos instantes!" + +msgid "Recordings" +msgstr "Gravações" + +msgid "Recordings always have priority" +msgstr "Gravações têm sempre prioridade" + +msgid "Red button..." +msgstr "Botão vermelho" + +msgid "Reenter new PIN" +msgstr "Repita a nova senha" + +msgid "Refresh rate" +msgstr "Frequência de atualização" + +msgid "Refresh rate selection." +msgstr "Selecionar frequência de atualização." + +msgid "Regard deep standby as standby" +msgstr "Considerar Desligar como StandBy" + +msgid "Relative" +msgstr "Relativo" + +msgid "Reload" +msgstr "Recarregar" + +msgid "Reload black-/white lists" +msgstr "Recarregar lista negra/branca" + +msgid "Reloading bouquets and services..." +msgstr "Recarregando a lista de canais..." + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "Lembrar senha" + +msgid "Remember these settings for each folder" +msgstr "Lembrar configurações para todos os diretórios" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "Lembre-se, você escolheu salvar o arquivo do timeshift." + +msgid "Remote control type" +msgstr "Tipo de controle remoto" + +msgid "Removal has completed." +msgstr "Remoção concluída." + +msgid "Remove" +msgstr "Remover" + +msgid "Remove a mark" +msgstr "Remover marca" + +msgid "Remove a nameserver entry" +msgstr "Remover entrada de servidor DNS" + +msgid "Remove bookmark" +msgstr "Remover favorito" + +msgid "Remove completed timers after (days)" +msgstr "Remover gravações concluídas após (dias)" + +msgid "Remove currently selected title" +msgstr "Remover o título atualmente selecionado" + +msgid "Remove items from trash can after (days)" +msgstr "Remover gravações da lixeira após (dias)" + +msgid "Remove plugins" +msgstr "Remover plugins" + +msgid "Remove title" +msgstr "Remover título" + +msgid "Removing" +msgstr "Removendo" + +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "A remoção do diretório %s falhou. (Talvez não esteja vazio)" + +msgid "Removing partition table" +msgstr "Removendo tabela de partições" + +msgid "Rename" +msgstr "Renomear" + +msgid "Repeat" +msgstr "Repetir" + +msgid "Repeat type" +msgstr "Repetição" + +msgid "Repeating event currently recording... What do you want to do?" +msgstr "Repetindo o evento em gravação. Continuar?" + +msgid "Repeats" +msgstr "Frequência" + +msgid "Require authentication for http streams" +msgstr "" + +msgid "Required medium type:" +msgstr "Formato de mídia requerido:" + +msgid "Rereading partition table" +msgstr "Ler novamente a tabela de partições" + +msgid "Reserved" +msgstr "Reservado" + +msgid "Reset" +msgstr "Redefinir" + +msgid "Reset and renumerate title names" +msgstr "Redefinir e renumerar os títulos" + +msgid "Reset playback position" +msgstr "Redefinir posição de reprodução" + +msgid "Reset video enhancement settings to system defaults?" +msgstr "Redefinir configurações de imagem para padrão de fábrica?" + +msgid "Reset video enhancement settings to your last configuration?" +msgstr "Redefinir configurações de imagem para configuração anterior?" + +msgid "Resolution" +msgstr "Resolução" + +msgid "Restart" +msgstr "Reiniciar receptor" + +msgid "Restart GUI now?" +msgstr "Reiniciar interface?" + +msgid "Restart enigma" +msgstr "Reiniciar interface" + +msgid "Restart network" +msgstr "Reiniciar rede" + +msgid "Restart test" +msgstr "Reiniciar teste" + +msgid "Restart your network connection and interfaces.\n" +msgstr "Reinicia a conexão e interfaces de rede.\n" + +msgid "Restore" +msgstr "Restaurar" + +msgid "Restore backups" +msgstr "Restaurar backups" + +msgid "Restore is running..." +msgstr "Restauração em andamento..." + +msgid "Restore system settings" +msgstr "Restaurar configurações do sistema" + +msgid "Restoring..." +msgstr "Restaurando..." + +msgid "Resume from last position" +msgstr "Continuar da última posição" + +#, python-format +msgid "Resume position at %s" +msgstr "Continuar a partir de %s" + +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Continuando..." + +msgid "Return to movie list" +msgstr "Voltar à lista de vídeos" + +msgid "Return to previous service" +msgstr "Voltar ao canal anterior" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +msgid "Rewind speeds" +msgstr "Velocidades de retorno" + +msgid "Rewrap teletext subtitles" +msgstr "Dividir legendas de teletexto" + +msgid "Right" +msgstr "Direita" + +msgid "Right from servicename" +msgstr "Direita do nome do serviço" + +msgid "Roll-off" +msgstr "" + +msgid "Romanian" +msgstr "Romeno" + +msgid "Root directory" +msgstr "Diretório raiz" + +msgid "Rotor step position:" +msgstr "Posição de passo do motor:" + +msgid "Rotor turning speed" +msgstr "Velocidade de giro do motor" + +msgid "Round start time on" +msgstr "Arredondar o tempo de início em" + +msgid "Russian" +msgstr "Russo" + +msgid "S-Video" +msgstr "" + +msgid "SID" +msgstr "" + +msgid "SINGLE LAYER DVD" +msgstr "DVD Camada Simples" + +msgid "SNR" +msgstr "" + +msgid "SNR:" +msgstr "" + +msgid "SSID:" +msgstr "" + +msgid "Same resolution as skin" +msgstr "Mesma resolução do tema" + +msgid "Sat" +msgstr "Sáb" + +msgid "Satellite" +msgstr "Satélite" + +msgid "Satellite dish setup" +msgstr "Configurar antena" + +msgid "Satellite equipment" +msgstr "Equipamento de satélite" + +msgid "Satellite equipment setup" +msgstr "Configurar receptor de satélite" + +msgid "Satellite longitude:" +msgstr "Longitude do satélite:" + +msgid "Satellites" +msgstr "Satélites" + +msgid "Satfinder" +msgstr "Localizador de satélites" + +msgid "Sats" +msgstr "" + +msgid "Saturation" +msgstr "Saturação" + +msgid "Saturday" +msgstr "Sábado" + +msgid "Save" +msgstr "Salvar" + +msgid "Save playlist" +msgstr "Salvar lista de reprodução" + +msgid "Save timeshift file" +msgstr "Salvar arquivo do timeshift" + +msgid "Save timeshift file in movie directory" +msgstr "Salvar arquivo do timeshift no diretório de vídeos" + +msgid "Scaler sharpness" +msgstr "Nitidez" + +msgid "Scaling mode" +msgstr "Modo de escala" + +msgid "Scan" +msgstr "Buscar" + +msgid "Scan " +msgstr "Buscar " + +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, python-format +msgid "Scan %s" +msgstr "Busca %s" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, python-format +msgid "Scan %s band" +msgstr "Busca Banda %s" + +msgid "Scan additional SR" +msgstr "Busca SR adicional" + +msgid "Scan files..." +msgstr "Buscar arquivos" + +msgid "Scan wireless networks" +msgstr "Buscar redes sem fio" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "Busca e conecta à pontos de acesso sem fio.\n" + +#, python-format +msgid "Scanning %s..." +msgstr "Buscando %s" + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "Buscando: %d%% concluído" +msgstr[1] "Buscando: %d%% concluído" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "Busca concluída. %d canal encontrado" +msgstr[1] "Busca concluída. %d canais encontrados" + +msgid "Scanning failed!" +msgstr "A busca falhou!" + +msgid "Scanning..." +msgstr "Buscando..." + +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "Busca no banco de dados satélites conectados ao posicionador" + +msgid "Search east" +msgstr "Buscar leste" + +msgid "Search west" +msgstr "Buscar oeste" + +msgid "Searching" +msgstr "Buscando" + +msgid "Searching east ..." +msgstr "Buscando a leste..." + +msgid "Searching for available updates. Please wait..." +msgstr "Buscando atualizações disponíveis. Aguarde..." + +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "Buscando pacotes instalados ou removidos. Aguarde..." + +msgid "Searching west ..." +msgstr "Buscando a oeste..." + +msgid "Second cable of motorized LNB" +msgstr "" + +msgid "Secondary DNS" +msgstr "DNS 2" + +msgid "Seek" +msgstr "Busca" + +msgid "Seek backward" +msgstr "Retornar" + +msgid "Seek backward (enter time)" +msgstr "Retornar (inserir tempo)" + +msgid "Seek forward" +msgstr "Avançar" + +msgid "Seek forward (enter time)" +msgstr "Avançar (inserir tempo)" + +msgid "Select" +msgstr "Selecionar" + +msgid "Select CAId" +msgstr "Selecione o CAId" + +msgid "Select HDD" +msgstr "Selecione o disco rígido" + +msgid "Select a bouquet" +msgstr "Selecione um grupo de favoritos" + +msgid "Select a movie" +msgstr "Selecione um vídeo" + +msgid "Select a network adapter" +msgstr "Selecione um adaptador de rede" + +msgid "Select a skin" +msgstr "Selecione um tema" + +msgid "Select a tuner" +msgstr "Selecione um tuner" + +msgid "Select a wireless network" +msgstr "Selecione uma rede sem fio" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +msgid "Select an image to be downloaded" +msgstr "Selecione uma imagem para download" + +msgid "Select audio track" +msgstr "Trilha de áudio" + +msgid "Select backup files" +msgstr "Arquivos de backup" + +msgid "Select backup location" +msgstr "Destino do backup" + +msgid "Select channel to record from" +msgstr "Selecione o canal a ser gravado" + +msgid "Select copy destination for:" +msgstr "Selecione o destino para copiar:" + +msgid "Select default EPG type..." +msgstr "Selecione o tipo padrão de EPG" + +msgid "Select desired image from feed list" +msgstr "Selecione a imagem desejada da lista" + +msgid "Select destination for:" +msgstr "Selecione um destino para:" + +msgid "Select files for backup." +msgstr "Selecione arquivos para backup." + +msgid "Select files/folders to backup" +msgstr "Selecione arquivos/diretórios para backup" + +msgid "Select input device" +msgstr "Selecione o dispositivo de entrada" + +msgid "Select input device." +msgstr "Selecione o dispositivo de entrada." + +msgid "Select interface" +msgstr "Selecione a interface" + +msgid "Select location" +msgstr "Selecione o caminho" + +msgid "Select movie" +msgstr "Selecione um vídeo" + +msgid "Select provider to add..." +msgstr "Selecione a operadora para adicionar" + +msgid "Select refresh rate" +msgstr "Selecione a taxa de atualização" + +msgid "Select satellites" +msgstr "" + +msgid "Select service to add..." +msgstr "Selecione o serviço para adicionar" + +msgid "Select sort method:" +msgstr "" + +msgid "Select target folder" +msgstr "Selecione o diretório de destino" + +msgid "Select the movie path" +msgstr "Selecione o diretório de gravações" + +msgid "Select upgrade source" +msgstr "Servidores de atualizações" + +msgid "Select upgrade source to edit." +msgstr "Selecione a fonte de atualizações para editar" + +msgid "Select video input with up/down buttons" +msgstr "Selecione a entrada de vídeo com os botões de cima/baixo" + +msgid "Select video mode" +msgstr "Selecione o modo de vídeo" + +msgid "Select wireless network" +msgstr "Selecione a rede sem fio" + +msgid "Select your provider, and press OK to start the scan" +msgstr "Selecione a operadora e pressione OK para buscar." + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +msgid "Send DiSEqC only on satellite change" +msgstr "DiSEqC apenas ao mudar satélite" + +msgid "Separate titles with a main menu" +msgstr "Separar títulos com um menu principal " + +msgid "Sequence repeat" +msgstr "Repetir sequência de comandos" + +msgid "Serbian" +msgstr "Sérvio" + +msgid "Service" +msgstr "Canal" + +msgid "Service has been added to the favourites." +msgstr "Adicionado aos favoritos" + +msgid "Service has been added to the selected bouquet." +msgstr "Adicionado ao grupo de favoritos." + +msgid "Service info" +msgstr "Informações do canal" + +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Canal inválido!\n" +"(Timeout reading PMT)" + +msgid "Service name" +msgstr "Serviço" + +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Canal não encontrado!\n" +"(SID not found in PAT)" + +msgid "Service reference" +msgstr "Referência" + +msgid "Service scan" +msgstr "Busca de canais" + +msgid "Service searching" +msgstr "Tuner e serviços" + +msgid "Service title mode" +msgstr "" + +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"Serviço indisponível!\n" +"Verifique o tuner!" + +msgid "Services" +msgstr "Serviços" + +msgid "Set default" +msgstr "" + +msgid "Set end time" +msgstr "Definir hora final" + +msgid "Set fixed" +msgstr "Definir fixo" + +msgid "Set fps for external subtitles" +msgstr "Definir FPS das legendas externas" + +msgid "Set interface as default Interface" +msgstr "Definir como interface padrão" + +msgid "Set limits" +msgstr "Definir limites" + +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "Progresso dos eventos na lista de canais." + +msgid "Set time window to 1 hour" +msgstr "Definir intervalo de tempo para 1 hora" + +msgid "Set time window to 2 hours" +msgstr "Definir intervalo de tempo para 2 horas" + +msgid "Set time window to 3 hours" +msgstr "Definir intervalo de tempo para 3 horas" + +msgid "Set time window to 4 hours" +msgstr "Definir intervalo de tempo para 4 horas" + +msgid "Set time window to 5 hours" +msgstr "Definir intervalo de tempo para 5 horas" + +msgid "Set time window to 6 hours" +msgstr "Definir intervalo de tempo para 6 horas" + +msgid "Set voltage and 22KHz" +msgstr "Ativar tensão e 22KHz" + +msgid "Settings" +msgstr "Configurações" + +msgid "Setup" +msgstr "Configurar" + +msgid "Setup menu" +msgstr "Configurações" + +msgid "Setup mode" +msgstr "Modo de configuração" + +msgid "Setup your positioner" +msgstr "Configure o posicionador" + +msgid "Setup your satellite equipment" +msgstr "Configure o receptor de satélite" + +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "Deseja continuar e gravar o arquivo de imagem %s na memoria flash?" + +msgid "Sharpness" +msgstr "Nitidez" + +msgid "Short filenames" +msgstr "Nomes curtos de arquivos" + +msgid "Show EIT now/next in infobar" +msgstr "Exibir EIT agora/próximo na barra de informações" + +msgid "Show EPG for current channel..." +msgstr "EPG do canal atual" + +msgid "Show EPG..." +msgstr "Exibir EPG" + +msgid "Show Games show" +msgstr "Exibir Games Show" + +msgid "Show SNR percentage instead of dB value" +msgstr "Exibir percentual SNR em vez do valor dB" + +msgid "Show VCR scart on main menu" +msgstr "Exibir VCR Scart no menu" + +msgid "Show WLAN status" +msgstr "Exibir o estado da rede sem fio" + +msgid "Show animation while busy" +msgstr "Exibir animação quando ocupado" + +msgid "Show background in radio mode" +msgstr "Exibir fundo no modo de rádio" + +msgid "Show bouquet selection menu" +msgstr "Exibir o menu de seleção de grupo de favoritos" + +msgid "Show busy indicator when the system is busy." +msgstr "Exibir o indicador de ocupado quando o sistema estiver ocupado." + +msgid "Show channel numbers in channel selection" +msgstr "Exibir numeração dos canais na lista de canais" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "Exibir encriptação na barra de informações" + +msgid "Show detailed event info" +msgstr "Exibir informação detalhada do evento" + +msgid "Show event details" +msgstr "Exibir detalhes do evento" + +msgid "Show event-progress in channel selection" +msgstr "Exibir andamento dos eventos na lista de canais" + +msgid "Show extended description" +msgstr "Exibir descrição estendida" + +msgid "Show extensions..." +msgstr "Ver extensões" + +msgid "Show icon for new/unseen items" +msgstr "Exibir ícone para gravações novas" + +msgid "Show in extensions menu" +msgstr "Exibir no menu de extensões" + +msgid "Show info" +msgstr "Exibir informações" + +msgid "Show info line" +msgstr "Exibir linha de informações" + +msgid "Show infobar on channel change" +msgstr "Barra de informações ao mudar de canal" + +msgid "Show infobar on event change" +msgstr "Barra de informações ao mudar o evento" + +msgid "Show infobar on skip forward/backward" +msgstr "Barra de informações ao avançar/retornar" + +msgid "Show latest commits on sourceforge" +msgstr "" + +msgid "Show message when recording starts" +msgstr "Exibir mensagem quando uma gravação iniciar" + +msgid "Show movie lengths in movielist" +msgstr "Exibir tamanho dos vídeos na lista de gravações" + +msgid "Show multi channel EPG" +msgstr "Exibir EPG múltiplo" + +msgid "Show picons in channel list" +msgstr "" + +msgid "Show positioner movement" +msgstr "Exibir movimento do posicionador" + +msgid "Show screensaver" +msgstr "Exibir protetor de tela" + +msgid "Show second infobar" +msgstr "Exibir barra de informações secundária" + +msgid "Show service type icons" +msgstr "Exibir ícones do tipo de serviço" + +msgid "Show services beginning with" +msgstr "Exibir canais que comecem por" + +msgid "Show shutdown menu" +msgstr "Exibir menu Desligar" + +msgid "Show single service EPG" +msgstr "Exibir EPG simples" + +msgid "Show status icons in Movielist" +msgstr "Exibir ícones de estado na lista de vídeos" + +msgid "Show status icons in movie list" +msgstr "Exibir ícones de estado na lista" + +msgid "Show status icons in movielist" +msgstr "Exibir ícones de estado na lista de gravações" + +msgid "Show tag menu" +msgstr "Exibir menu de marcas" + +msgid "Show the radio player..." +msgstr "Reprodutor de rádio" + +msgid "Show the tv player..." +msgstr "Reprodutor de TV" + +msgid "Show warning when timeshift is stopped" +msgstr "Exibir aviso ao parar o timeshift" + +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Exibe o estado da rede sem fio.\n" + +msgid "Shuffle playlist" +msgstr "Modo aleatório" + +msgid "Shutdown" +msgstr "Desligar" + +msgid "Shutdown when in Standby" +msgstr "Desligar quando em espera" + +msgid "Side by side" +msgstr "Lado a lado" + +msgid "Signal OK, proceeding" +msgstr "Sinal OK. Procedendo..." + +msgid "Signal quality" +msgstr "Qualidade do sinal" + +msgid "Signal strength:" +msgstr "Força do sinal:" + +msgid "Signal: " +msgstr "Sinal:" + +msgid "Similar" +msgstr "Similares" + +msgid "Similar broadcasts:" +msgstr "Programas similares:" + +msgid "Simple" +msgstr "Simples" + +msgid "Simple titleset (compatibility for legacy players)" +msgstr "Título simples (compatibilidade com reprodutores antigos)" + +msgid "Single" +msgstr "Um satélite" + +msgid "Single EPG" +msgstr "EPG simples" + +msgid "Single satellite" +msgstr "Satélite" + +msgid "Single step (GOP)" +msgstr "" + +msgid "Single transponder" +msgstr "Transponder" + +msgid "Site latitude" +msgstr "Latitude local" + +msgid "Site longitude" +msgstr "Longitude local" + +msgid "Skin" +msgstr "Temas" + +msgid "Skins" +msgstr "Temas" + +msgid "Skip empty services" +msgstr "Saltar canais vazios" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "Não testar (desativa instalação automática de pacotes)" + +msgid "Sleep timer" +msgstr "Temporizador" + +msgid "SleepTimer Configuration" +msgstr "Configurar temporizador" + +msgid "Sleeptimer" +msgstr "Temporizador" + +msgid "Slide picture in loop" +msgstr "Repetir slide de imagens" + +msgid "Slide show interval (sec.)" +msgstr "Intervalo na troca de imagens (seg)" + +#, python-format +msgid "Slot %d" +msgstr "" + +msgid "Slovak" +msgstr "Eslovaco" + +msgid "Slovenian" +msgstr "Esloveno" + +msgid "Slow" +msgstr "Lento" + +msgid "Slow motion speeds" +msgstr "Velocidades da câmera lenta" + +msgid "Small progress" +msgstr "Bar. Progr. pequena" + +msgid "Social/Political/Economics" +msgstr "Social/Política/Econômica" + +msgid "SoftCam / CI" +msgstr "" + +msgid "Softcam type" +msgstr "Tipo de softcam" + +msgid "Software" +msgstr "" + +msgid "Software management" +msgstr "Gerenciar software" + +msgid "Software manager setup" +msgstr "Opções de instalação" + +msgid "Software restore" +msgstr "Restaurar software" + +msgid "Software update" +msgstr "Atualizar software" + +msgid "Softwaremanager information" +msgstr "Informação do gerenciador de software" + +msgid "Some plugins are not available:\n" +msgstr "Os seguintes plugins não estão disponíveis:\n" + +#, python-format +msgid "Sorry, %s has not been installed!" +msgstr "%s não foi instalado." + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "Somente é possível remover diretórios através da lixeira." + +msgid "Sorry, no backups found!" +msgstr "Nenhum backup encontrado." + +msgid "Sorry, no details available!" +msgstr "Nenhum detalhe disponível." + +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"O diretório de backup não está acessível.\n" +"Escolha outro diretório." + +msgid "Sort" +msgstr "Ordenar" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Alfabético" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort time" +msgstr "Cronológico" + +msgid "Sound" +msgstr "Som" + +msgid "Sound carrier" +msgstr "Portadora" + +msgid "Source request" +msgstr "Requesito de fonte" + +msgid "South" +msgstr "Sul" + +msgid "Spanish" +msgstr "Espanhol" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "Defina a hora final em que o temporizador de inatividade deve ser ignorado" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "Defina a hora inicial em que o temporizador de inatividade deve ser ignorado" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "Somente intervalo" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +msgid "Split preview mode" +msgstr "Modo de pré-visualização dividido" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "Esportes" + +msgid "Standard" +msgstr "Padrão" + +msgid "Standart list" +msgstr "" + +msgid "Standby" +msgstr "Espera/StandBy" + +msgid "Standby / restart" +msgstr "Desligar" + +msgid "Standby after current event" +msgstr "Em espera após o evento atual" + +#, python-format +msgid "Standby fan %d PWM" +msgstr "Vent. em StandBy %d PWM" + +#, python-format +msgid "Standby fan %d voltage" +msgstr "Tensão do vent. em StandBy %d" + +msgid "Standby in " +msgstr "Em espera em " + +msgid "StandbyLED" +msgstr "" + +msgid "Start from the beginning" +msgstr "Começar do início" + +msgid "Start offline decode" +msgstr "Iniciar decodificação offline" + +msgid "Start recording?" +msgstr "Iniciar gravação?" + +msgid "Start test" +msgstr "Iniciar teste" + +msgid "Start time" +msgstr "Hora de início" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "Ignorar o temporizador de inatividade após" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +msgid "Start timeshift" +msgstr "Iniciar timeshift" + +msgid "Start with list screen" +msgstr "Iniciar com a lista" + +msgid "Starting on" +msgstr "Iniciar em" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +msgid "Step east" +msgstr "Passo leste" + +msgid "Step west" +msgstr "Passo oeste" + +msgid "Stepped east" +msgstr "Passo para leste" + +msgid "Stepped west" +msgstr "Passo para oeste" + +msgid "Stop" +msgstr "Parar" + +msgid "Stop PiP" +msgstr "Parar PiP" + +msgid "Stop current event and disable coming events" +msgstr "Parar programa atual e desativar novos eventos" + +msgid "Stop current event but not coming events" +msgstr "Parar programa atual, mas não desativar novos eventos" + +msgid "Stop entry" +msgstr "Parar" + +msgid "Stop playing this movie?" +msgstr "Parar a reprodução?" + +msgid "Stop recording" +msgstr "Parar gravação" + +msgid "Stop recording and delete" +msgstr "Parar e remover a gravação" + +msgid "Stop service on return to movie list" +msgstr "" + +msgid "Stop test" +msgstr "Parar teste" + +msgid "Stop testing plane after # failed transponders" +msgstr "Parar teste após a falha de # TPs" + +msgid "Stop testing plane after # successful transponders" +msgstr "Parar teste após a confirmação de # TPs" + +msgid "Stop timer recording" +msgstr "Parar gravação agendada" + +msgid "Stop timeshift" +msgstr "Parar timeshift" + +msgid "Stop timeshift?" +msgstr "Parar timeshift?" + +msgid "Stopped" +msgstr "Parado" + +msgid "Store at index" +msgstr "Salvar no índice" + +msgid "Store position" +msgstr "Salvar posição" + +msgid "Stored position" +msgstr "Posição guardada" + +msgid "Stream" +msgstr "" + +msgid "Stream request" +msgstr "Pedido de stream" + +msgid "Strongest position" +msgstr "Posição mais forte" + +msgid "Subservice list..." +msgstr "Lista de subserviços" + +msgid "Subservices" +msgstr "Subserviços" + +msgid "Subtitle Quickmenu" +msgstr "Menu de legendas" + +msgid "Subtitle alignment" +msgstr "Alinhamento da legenda" + +msgid "Subtitle border width" +msgstr "Tamanho da borda da legenda" + +msgid "Subtitle delay when timing is bad" +msgstr "Duração da legenda com tempo incorreto" + +msgid "Subtitle delay when timing lacks" +msgstr "Duração da legenda se o tempo não é informado" + +msgid "Subtitle font size" +msgstr "Tamanho da fonte da legenda" + +msgid "Subtitle language selection 1" +msgstr "Idioma da legenda 1" + +msgid "Subtitle language selection 2" +msgstr "Idioma da legenda 2" + +msgid "Subtitle language selection 3" +msgstr "Idioma da legenda 3" + +msgid "Subtitle language selection 4" +msgstr "Idioma da legenda 4" + +msgid "Subtitle position" +msgstr "Posição da legenda" + +msgid "Subtitle selection" +msgstr "Selecionar legenda" + +msgid "Subtitle selection..." +msgstr "Selecionar legenda" + +msgid "Subtitle settings" +msgstr "Legendas" + +msgid "Subtitles" +msgstr "Legendas" + +msgid "Sun" +msgstr "Dom" + +msgid "Sunday" +msgstr "Domingo" + +msgid "Swap PiP and main picture" +msgstr "Alternar PiP com imagem principal" + +msgid "Swap services" +msgstr "Alternar canais" + +msgid "Swedish" +msgstr "Sueco" + +msgid "Switch TV to correct input" +msgstr "Mudar a TV para a entrada correta" + +msgid "Switch between filelist/playlist" +msgstr "Alternar entre arquivos/playlist" + +msgid "Switch between normal mode and list mode" +msgstr "Alternar entre modo normal e modo de lista" + +msgid "Switch to HDMI in mode" +msgstr "" + +msgid "Switch to filelist" +msgstr "Ver lista de arquivos" + +msgid "Switch to next channel" +msgstr "" + +msgid "Switch to next channel in history" +msgstr "Próximo canal na memória" + +msgid "Switch to next sub service" +msgstr "Mudar para o próximo canal" + +msgid "Switch to playlist" +msgstr "Ver lista de reprodução" + +msgid "Switch to previous channel" +msgstr "Mudar para o canal anterior" + +msgid "Switch to previous channel in history" +msgstr "Canal anterior na memória" + +msgid "Switch to previous sub service" +msgstr "Mudar para o canal anterior" + +msgid "Switchable tuner types:" +msgstr "Tipos de tuner alternáveis:" + +msgid "Symbol rate" +msgstr "Symbol Rate" + +msgid "Symbol rate:" +msgstr "Symbol Rate:" + +msgid "Sync failure moving back to origin !" +msgstr "A sincronia falhou. Voltando à origem..." + +msgid "System" +msgstr "Sistema" + +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "" + +msgid "TS file is too large for ISO9660 level 1!" +msgstr "O arquivo TS é muito grande para ISO9660 level 1!" + +msgid "TSID" +msgstr "" + +msgid "TV physical address report" +msgstr "Relatório de endereço físico da TV" + +msgid "TXT PID" +msgstr "" + +msgid "Table of contents for collection" +msgstr "Tabela de conteúdos da coleção" + +msgid "Tags" +msgstr "Etiquetas" + +msgid "Teletext subtitle color" +msgstr "Cor da legenda de teletexto" + +msgid "Temperature and fan control" +msgstr "Controle de temperatura e ventoinha" + +msgid "Terrestrial" +msgstr "Terrestre" + +msgid "Terrestrial provider" +msgstr "Operadora terrestre" + +msgid "Test DiSEqC settings" +msgstr "Testar configurações da DiSEqC" + +msgid "Test mode" +msgstr "Modo de teste" + +msgid "Test the network configuration of your receiver.\n" +msgstr "Testa a configuração de rede do receptor.\n" + +msgid "Test type" +msgstr "Tipo de teste" + +msgid "Text color" +msgstr "Cor do texto" + +msgid "Thai" +msgstr "Tailandês" + +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"Obrigado por usar o assistente.\n" +"Pressione OK para continuar." + +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"O receptor está pronto para uso.\n" +"Pressione OK para continuar." + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "O padrão de DVD não suporta vídeo H.264 (HDTV). Deseja criar DVD de dados (que poderá ser incompatível com outros reprodutores)?" + +msgid "The PIN code has been changed successfully." +msgstr "Senha alterada com sucesso." + +msgid "The PIN codes you entered are different." +msgstr "Senhas informadas não combinam." + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" +"O pendrive foi preparado para ser bootável.\n" +"Agora pode fazer o download de uma imagem NFI!" + +msgid "The backup failed. Please choose a different backup location." +msgstr "O backup falhou. Escolha outro diretório de backup e tente novamente." + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" +"A imagem beta atual pode não estar estável.\n" +"Para maiores informações veja %s." + +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"Não é possivél escrever no diretório %s.\n" +"Selecione um diretório com permissões de escrita." + +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"O seguinte dispositivo foi encontrado:\n" +"\n" +"%s\n" +"\n" +"Deseja copiar o USB flasher para este pendrive?" + +msgid "The following files were found..." +msgstr "Arquivos de mídia encontrados" + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "A validação MD5 falhou! O arquivo pode estar corrompido." + +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"O assistente de rede não está instalado!\n" +"Instale o assistente de rede e tente novamente." + +#, python-format +msgid "The path %s already exists." +msgstr "O diretório %s já existe." + +msgid "The pin code you entered is wrong." +msgstr "Senha informada está incorreta." + +#, python-format +msgid "The results have been written to %s." +msgstr "Os resultados foram escritos em %s." + +msgid "The sleep timer has been activated." +msgstr "O temporizador foi ativado." + +msgid "The sleep timer has been disabled." +msgstr "O temporizador foi desativado." + +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"Gerenciador de software não está instalado!\n" +"Instale o gerenciador de software e tente novamente." + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "Não foi possível verificar o estado da imagem beta atual. %s está inacessível." + +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "Não foi possível carregar os temporizadores. Arquivo timers.xml está corrompido." + +msgid "The user interface of your receiver is restarting" +msgstr "Reiniciando interface. Aguarde..." + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" +"A interface do receptor está reiniciando\n" +"devido a um erro em mytest.py" + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"O plugin de rede sem fio não está instalado!\n" +"Instale o plugin de rede sem fio e tente novamente." + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"O plugin de rede sem fio não está instalado!\n" +"Instale o plugin de rede sem fio e tente novamente." + +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "O assistente pode fazer um backup das configurações. Fazer um backup agora?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "O assistente encontrou um backup das configurações. Restaurar as configurações antigas de %s?" + +msgid "The wizard is finished now." +msgstr "O assistente de configuração está concluído." + +msgid "There are at least " +msgstr "Existem ao menos" + +#, python-format +msgid "There are at least %s updates available." +msgstr "Existem ao menos %s atualizações disponíveis." + +msgid "There are currently no outstanding actions." +msgstr "Atualmente não existem ações pendentes." + +msgid "There are no updates available." +msgstr "Não existem plugins disponíveis." + +msgid "There is no signal to lock on !" +msgstr "Não há sinal para estabelecer!" + +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"Não existe espaço suficiente na partição selecionada.\n" +"Deseja continuar?" + +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "Este DVD RW já está formatado. Reformatar irá remover todo o conteúdo do disco." + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" +"Este plugin cria um pendrive que pode ser usado para atualizar o firmware do receptor sem a necessidade de uma conexão de rede ou WLAN.\n" +"Primeiro, um pendrive precisa ser preparado para que se torne inicializável.\n" +"Na próxima etapa, um arquivo de imagem NFI pode ser baixado a partir do servidor de atualização e salvo no pendrive.\n" +"Se já existe um pendrive inicializável preparado, insira-o agora. Caso contrário, conecte um pendrive com um tamanho mínimo de 64 MB!" + +msgid "This plugin is installed." +msgstr "Este plugin está instalado." + +msgid "This plugin is not installed." +msgstr "Este plugin não está instalado." + +msgid "This plugin will be installed." +msgstr "Este plugin será instalado." + +msgid "This plugin will be removed." +msgstr "Este plugin será removido." + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "Este receptor não decodifica streams %s!" + +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"Este teste verifica os servidores DNS.\n" +"Se receber uma mensagem \"não confirmada\":\n" +"- Verifique o DHCP, nas opções do adaptador de rede\n" +"- Se configurou um servidor DNS manualmente verifique nas configurações de \"Servidor DNS\"" + +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Este teste verifica se um cabo de rede está conectado ao adaptador LAN.\n" +"Se receber uma mensagem \"desligado\":\n" +"- Verifique se o cabo está conectado\n" +"- Verifique se o cabo não está danificado" + +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Este teste verifica se um IP válido foi encontrado para o adaptador LAN.\n" +"Se receber uma mensagem \"não confirmado\":\n" +"- Não foi encontrado nenhum endereço de IP válido\n" +"- Verifique se o servidor DHCP está configurado e funcionando corretamente." + +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"Este teste verifica se o adaptador de rede obtém um IP automaticamente com DHCP.\n" +"Se receber uma mensagem \"inativo\":\n" +"- O adaptador de rede deve estar configurado para configuração de IP manual\n" +"- Verifique se introduziu o IP na caixa de diálogo 'Configurações do adaptador'.\n" +"Se receber uma mensagem \"ativo\":\n" +"- Verifique se o servidor DHCP está configurado e funcionando corretamente." + +msgid "This test detects your configured LAN adapter." +msgstr "Este teste detecta as configurações do adaptador de rede." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" +"Todas as posições do motor serão recalculadas e posições anteriormente memorizadas com ajuste fino poderão ser perdidas!\n" +"Tem certeza de que deseja continuar?" + +msgid "Three" +msgstr "Três" + +msgid "Threshold" +msgstr "" + +msgid "Thu" +msgstr "Qui" + +msgid "Thumbnails" +msgstr "Miniaturas" + +msgid "Thursday" +msgstr "Quinta-feira" + +msgid "Time" +msgstr "Hora" + +msgid "Time scale" +msgstr "Escala de tempo" + +msgid "Timer" +msgstr "Temporizador" + +msgid "Timer Overview" +msgstr "" + +msgid "Timer edit" +msgstr "Editar temporizador" + +msgid "Timer editor" +msgstr "Editor de temporizador" + +msgid "Timer entry" +msgstr "Agendar" + +msgid "Timer log" +msgstr "Histórico de temporizador" + +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"Sobreposição de temporizadores em timers.xml detectada!\n" +"Verifique os temporizadores conflitantes." + +msgid "Timer overview" +msgstr "Temporizador" + +msgid "Timer recording location" +msgstr "Diretório das gravações agendadas" + +msgid "Timer sanity error" +msgstr "Erro do temporizador" + +msgid "Timer selection" +msgstr "Selecionar temporizador" + +msgid "Timer selection..." +msgstr "Selecionar temporizador" + +msgid "Timer type" +msgstr "Ação do temporizador" + +msgid "Timeshift" +msgstr "" + +msgid "Timeshift Live" +msgstr "" + +msgid "Timeshift location" +msgstr "Diretório para o timeshift" + +msgid "Timeshift not possible!" +msgstr "Timeshift não permitido!" + +msgid "Timezone" +msgstr "Fuso horário" + +msgid "Title" +msgstr "Título" + +msgid "Title properties" +msgstr "Propriedades de título" + +msgid "Titleset mode" +msgstr "Modo de título" + +msgid "To audio selection" +msgstr "Selecionar áudio" + +msgid "To subtitle selection" +msgstr "Selecionar legenda" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" +"Para atualizar o firmware do receptor, siga estes passos:\n" +"1) Desligue o receptor no interruptor de energia traseira e verifique se o pendrive inicializável foi conectado.\n" +"2) Mantenha o botão no painel frontal pressionado por 10 segundos.\n" +"3) Aguarde o o receptor ligar e siga as instruções do assistente." + +msgid "Today" +msgstr "Hoje" + +msgid "Toggle a cut mark at the current position" +msgstr "Marcar na posição atual" + +msgid "Tone amplitude" +msgstr "Amplitude do sinal" + +msgid "Tone mode" +msgstr "Sinal 22KHz" + +msgid "Toneburst" +msgstr "" + +msgid "Toneburst A/B" +msgstr "" + +msgid "Top and bottom" +msgstr "Topo e rodapé" + +msgid "Track" +msgstr "Trilha" + +msgid "Translation" +msgstr "Tradução" + +msgid "Translation:" +msgstr "Tradução:" + +msgid "Translations" +msgstr "Traduções" + +msgid "Transmission mode" +msgstr "Modo de transmissão" + +msgid "Transponder" +msgstr "" + +msgid "Transponder type" +msgstr "Tipo de transponder" + +msgid "Trash can" +msgstr "Lixeira" + +msgid "Tries left:" +msgstr "Tentativas restantes:" + +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Buscando TPs. Aguarde..." + +msgid "Trying to download a new packetlist. Please wait..." +msgstr "Obtendo lista de pacotes. Aguarde..." + +msgid "Tue" +msgstr "Ter" + +msgid "Tuesday" +msgstr "Terça-feira" + +msgid "Tune" +msgstr "Sintonizar" + +msgid "Tune and focus" +msgstr "Sintonia e foco" + +msgid "Tune failed!" +msgstr "Falhou!" + +msgid "Tuner" +msgstr "Tuner" + +msgid "Tuner configuration" +msgstr "Configurar tuner" + +msgid "Tuner is not supported" +msgstr "" + +msgid "Tuner slot" +msgstr "Entrada do tuner" + +msgid "Tuner status" +msgstr "Tuner" + +#, python-format +msgid "Tuner status %s" +msgstr "Estado do tuner %s" + +msgid "Tuner type" +msgstr "Tipo de tuner" + +msgid "Turkish" +msgstr "Turco" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +msgid "Two" +msgstr "Dois" + +msgid "Type" +msgstr "Tipo" + +msgid "Type of scan" +msgstr "Tipo de busca" + +msgid "USALS" +msgstr "" + +msgid "USALS calibration" +msgstr "Calibração USALS" + +msgid "USB stick" +msgstr "Pendrive" + +msgid "USB stick wizard" +msgstr "Assistente de pendrive" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Atualização sem interface visual em andamento...\n" +"Aguarde até o receptor reiniciar.\n" +"Isto poderá demorar alguns minutos." + +msgid "Undo install" +msgstr "Reverter instalação" + +msgid "Undo uninstall" +msgstr "Reverter desinstalação" + +msgid "Unencrypted" +msgstr "Decodificado" + +msgid "UnhandledKey" +msgstr "" + +msgid "Unicable" +msgstr "" + +msgid "Unicable LNB" +msgstr "" + +msgid "Unicable Martix" +msgstr "" + +msgid "Uninstall" +msgstr "Desinstalar" + +msgid "Universal LNB" +msgstr "LNB Universal" + +msgid "Unknown" +msgstr "Desconhecido" + +msgid "Unmount" +msgstr "Desmontar" + +msgid "Unsupported" +msgstr "Não suportado" + +msgid "Update" +msgstr "Atualizar" + +msgid "Update and ask to reboot" +msgstr "Atualizar e reiniciar manualmente" + +msgid "Update and reboot (recommended)" +msgstr "Atualizar e reiniciar automaticamente (recomendado)" + +msgid "Update channel list only" +msgstr "Atualizar apenas a lista de canais" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "Atualização concluída. %d pacote instalado." +msgstr[1] "Atualização concluída. %d pacotes instalados." + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "Atualização concluída. Reiniciar o receptor?" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "Falha na atualização. O receptor não está conectado à internet." + +msgid "Update has completed." +msgstr "Atualização concluída." + +msgid "Updatefeed not available." +msgstr "Servidor de atualizações não disponível." + +msgid "Updating software catalog" +msgstr "Atualizando o catálogo de software..." + +msgid "Upgrading" +msgstr "Atualizando..." + +msgid "Use" +msgstr "Usar" + +msgid "Use DHCP" +msgstr "Usar DHCP" + +msgid "Use EIT EPG information when it is available." +msgstr "Usar informação EIT EPG quando disponível." + +msgid "Use FreeSat EPG information when it is available." +msgstr "Usar informação Freesat EPG quando disponível." + +msgid "Use MHW EPG information when it is available." +msgstr "Usar informação MHW EPG quando disponível." + +msgid "Use Netmed EPG information when it is available." +msgstr "Usar informação Netmed EPG quando disponível." + +msgid "Use TV remote control" +msgstr "Usar o controle remoto da TV" + +msgid "Use USALS for this sat" +msgstr "Usar USALS neste satélite" + +msgid "Use ViaSat EPG information when it is available." +msgstr "Usar informação ViaSat EPG quando disponível." + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +msgid "Use a gateway" +msgstr "Usar um gateway" + +msgid "Use fastscan channel names" +msgstr "Usar o nome dos canais da operadora" + +msgid "Use fastscan channel numbering" +msgstr "Usar o número dos canais da operadora" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "Usar configurações individuais para cada diretório" + +msgid "Use interface" +msgstr "Usar interface" + +msgid "Use official channel numbering" +msgstr "Usar a numeração oficial dos canais" + +msgid "Use original DVB subtitle position" +msgstr "Usar a posição original da legenda DVB" + +msgid "Use original teletext position" +msgstr "Usar a posição original do teletexto" + +msgid "Use power measurement" +msgstr "Usar controle da alimentação" + +msgid "Use the network wizard to configure selected network adapter" +msgstr "Configurar o adaptador de rede" + +msgid "Use the network wizard to configure your network\n" +msgstr "Usar o assistente para configurar a rede\n" + +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "" +"Use os botões cima/baixo do controle remoto para selecionar.\n" +"Pressione OK para continuar." + +msgid "Use the wizard to set up basic features" +msgstr "Configurar as funções básicas" + +msgid "Use these input device settings?" +msgstr "Usar estas configurações de dispositivo de entrada?" + +msgid "Use these settings?" +msgstr "Usar estas configurações?" + +msgid "Use this video enhancement settings?" +msgstr "Usar estas configurações de imagem?" + +msgid "Use trash can in movielist" +msgstr "Usar lixeira na lista de gravações" + +msgid "Used service scan type" +msgstr "Tipo usado na busca" + +msgid "User - bouquets" +msgstr "Favoritos" + +msgid "User defined" +msgstr "Manual" + +msgid "User defined transponder" +msgstr "Transponder predefinido" + +msgid "User interface" +msgstr "Interface visual" + +msgid "Username" +msgstr "Usuário" + +#, python-format +msgid "Using LNB %d" +msgstr "Usando LNB %d" + +msgid "Using fixed address" +msgstr "Usando endereço fixo" + +#, python-format +msgid "Using tuner %s" +msgstr "Usando tuner %s" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "Quando o idioma da legenda é o mesmo idioma do áudio, as legendas não serão usadas. Ative essa opção para ativar as legendas com o mesmo idioma do áudio." + +msgid "VCR scart" +msgstr "VCR Scart" + +msgid "VMGM (intro trailer)" +msgstr "" + +msgid "Vertical" +msgstr "Vertical" + +msgid "Vertical turning speed" +msgstr "Velocidade de rotação vertical" + +msgid "Video PID" +msgstr "Vídeo PID" + +msgid "Video enhancement preview" +msgstr "Pré-visualização de vídeo" + +msgid "Video enhancement settings" +msgstr "Configurar imagem" + +msgid "Video enhancement setup" +msgstr "Configurar imagem" + +msgid "Video fine tuning" +msgstr "Ajuste de imagem" + +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Seleção da entrada de vídeo\n" +"\n" +"Pressione OK se esta tela está sendo exibida corretamente, ou selecione outra entrada.\n" +"\n" +"A próxima entrada será testada automaticamente em 20 segundos." + +msgid "Video mode selection." +msgstr "Selecionar modo de vídeo" + +msgid "Video output" +msgstr "Saída de vídeo" + +msgid "Video setup" +msgstr "Configurar vídeo" + +msgid "Video wizard" +msgstr "Assistente de vídeo" + +#, python-format +msgid "Video: %s fps" +msgstr "Vídeo: %s FPS" + +msgid "VideoMode" +msgstr "Modo de vídeo" + +msgid "Videocodec" +msgstr "Codec de vídeo" + +msgid "Videoformat" +msgstr "Formato de vídeo" + +msgid "Videosize" +msgstr "Resolução" + +msgid "View Rass interactive..." +msgstr "Ver Rass interativo" + +msgid "View details" +msgstr "Ver detalhes" + +msgid "View list of available " +msgstr "Ver disponíveis" + +msgid "View list of available CommonInterface extensions" +msgstr "Ver extensões de CI disponíveis" + +msgid "View list of available EPG extensions." +msgstr "Ver extensões de EPG disponíveis" + +msgid "View list of available Satellite equipment extensions." +msgstr "Ver extensões de equipamento de satélite disponíveis" + +msgid "View list of available communication extensions." +msgstr "Ver extensões de comunicação disponíveis." + +msgid "View list of available default settings" +msgstr "Ver lista de opções de fábrica disponíveis" + +msgid "View list of available display and userinterface extensions." +msgstr "Ver extensões de tela e interface do usuário disponíveis." + +msgid "View list of available multimedia extensions." +msgstr "Ver extensões de multimídia disponíveis" + +msgid "View list of available networking extensions" +msgstr "Ver extensões de rede disponíveis" + +msgid "View list of available recording extensions" +msgstr "Ver extensões de gravações disponíveis" + +msgid "View list of available skins" +msgstr "Ver temas disponíveis" + +msgid "View list of available software extensions" +msgstr "Ver extensões de software disponíveis" + +msgid "View list of available system extensions" +msgstr "Ver extensões de sistema disponíveis" + +msgid "View photos..." +msgstr "Ver fotos" + +msgid "View teletext..." +msgstr "Ver teletexto" + +msgid "View video CD..." +msgstr "Ver CD de vídeo" + +msgid "Virtual keyboard" +msgstr "Teclado virtual" + +msgid "Voltage mode" +msgstr "Modo de tensão" + +msgid "Volume" +msgstr "Volume" + +msgid "W" +msgstr "" + +msgid "WEP" +msgstr "" + +msgid "WLAN connection" +msgstr "Conexão sem fio" + +msgid "WPA" +msgstr "" + +msgid "WPA or WPA2" +msgstr "WPA ou WPA2" + +msgid "WPA2" +msgstr "" + +msgid "WSS on 4:3" +msgstr "WSS em 4:3" + +msgid "Waiting" +msgstr "Aguardando" + +msgid "Waiting for mount" +msgstr "Aguardando montagem" + +msgid "Waiting for partition" +msgstr "Aguardando partição" + +msgid "Wakeup" +msgstr "Acordar" + +msgid "Wakeup TV from standby" +msgstr "Ligar a TV do StandBy" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "Ligar o receptor do StandBy" + +msgid "Wakeup signal from TV" +msgstr "Sinal de ligar a partir da TV" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "Atenção: sem LNB; usando opções de fábrica." + +msgid "Watch movies..." +msgstr "Ver vídeos" + +msgid "Watch recordings..." +msgstr "Ver gravações" + +msgid "Wed" +msgstr "Qua" + +msgid "Wednesday" +msgstr "Quarta-feira" + +msgid "Weekday" +msgstr "Dia de semana" + +msgid "Weighted position" +msgstr "Posição pesada" + +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"Bem-vindo ao editor de cortes.\n" +"\n" +"Vá ao o início do conteúdo que deseja cortar, pressione OK e selecione 'iniciar corte'.\n" +"\n" +"Em seguida, vá até o fim do conteúdo, pressione OK e selecione \"finalizar corte\"." + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "Bem-vindo ao assistente de atualização do receptor. O assistente irá guiá-lo na atualização de firmware do receptor, fornecendo opções de backup de suas configurações e uma breve explicação sobre como atualizar o firmware." + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" +"Bem-vindo.\n" +"\n" +"Se deseja conectar o receptor à internet, este assistente irá guiá-lo através da configuração básica de rede.\n" +"\n" +"Pressione OK para configurar a rede." + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" +"Bem-vindo.\n" +"\n" +"Este assistente irá guiá-lo na configuração do receptor.\n" +"Pressione OK para continuar." + +msgid "Welcome..." +msgstr "Bem-vindo..." + +msgid "West" +msgstr "Oeste" + +msgid "West limit set" +msgstr "Definir limite oeste" + +msgid "What do you want to scan?" +msgstr "O que deseja buscar?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "Quando ativado, o PiP pode ser fechado com o botão Sair." + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "Quando ativado, pode-se definir um intervalo onde o temporizador de inatividade é ignorado." + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "Quando ativado, os dados AIT serão incluídos nos streams HTTP. Isto permite que um receptor de cliente possa utilizar HbbTV." + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "Quando ativado, os dados de ECM serão incluídos nos streams HTTP. Isto permite que um receptor de cliente possa fazer a decodificação." + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "Quando ativado, os dados do IET serão incluídos nos streams HTTP. Isto permite que um receptor cliente possa exibir EPG." + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "Quando ativado, uma mensagem será exibida quando um evento terminar ou quando o próximo começar." + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "Quando ativado, uma mensagem será exibida ao iniciar uma gravação." + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "Quando ativado, uma imagem de fundo será exibida ao ouvir um canal de rádio." + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "Quando ativado, uma gravação pode interromper a TV ao vivo, quando não existem sintonizadores disponíveis." + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "Quando ativado, uma mensagem será exibida e o usuário terá a opção de parar ou continuar o timeshift." + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "Quando ativado, a numeração de canais inicia em 1 para cada grupo de favoritos." + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "Quando ativado, o conteúdo com proporção de 4:3 será esticada para preencher a tela." + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "Quando ativado, continua no próximo grupo de favoritos quando o último canal do grupo atual for selecionado." + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "Quando ativado, gravações removidas são movidas para a lixeira, ao invés de serem imediatamente excluídas." + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "Quando ativado, exibirá o agora/próximo do IET na barra de informações. Quando desativada, exibirá agora/próximo do cache EPG." + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "Quando ativado, informações de encriptação serão exibidas na barra de informações (quando suportado pelo tema)." + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "Quando ativado, mensagens de erro relacionadas com o módulo de Interface Comum não serão exibidas." + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "Quando ativado, mensagens de erro relacionadas ao zapping não serão exibidas." + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "Quando ativado, as legendas externas serão sempre exibidas ao reproduzir um vídeo." + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "Quando ativado, legendas gráficas DVB têm preferência sobre as legendas de teletexto, quando ambos os tipos estiverem disponíveis." + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "Quando ativado, legendas gráficas DVB serão centralizadas horizontalmente." + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "Quando ativado, legendas gráficas DVB serão exibidas em sua posição original." + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "Quando ativado, legendas gráficas DVB serão sempre exibidas em amarelo." + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "Quando ativado, streams HTTP são decodificados no servidor. O receptor do cliente (remoto) não tem que fazer a decodificação." + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "Quando ativado, é possível sair do reprodutor de vídeos com o Exit." + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "Quando ativado, mede o consumo de energia para detectar quando o motor para de girar (quando suportado pelo tuner)." + +msgid "When enabled, number markers will be hiden." +msgstr "Quando ativado, marcadores numéricos não serão exibidos." + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "Quando ativado, os canais podem ser categorizados em diferentes grupos de favoritos." + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "Quando ativado, exibe a numeração dos canais na lista de canais." + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "Quando ativado, legendas para os deficientes auditivos podem ser usadas." + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "Quando ativado, legendas para os deficientes auditivos serão escolhidas sobre legendas normais, quando ambos os tipos estiverem disponíveis." + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "Quando ativado, páginas de teletexto serão armazenadas na memória, permitindo um acesso mais rápido." + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "Quando ativado, as legendas de teletexto serão exibidas em sua posição original." + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "Quando ativado, a opção VCR Scart será exibida no menu principal" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "Quando ativado, a lista de canais ficará oculta ao ouvir um canal de rádio" + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "Quando ativado, a barra de informações será exibida quando um novo evento começar." + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "Quando ativado, a barra de informações será exibida ao mudar de canal." + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "Quando ativado, a barra de informações será exibida ao avançar/retornar durante a reprodução de mídia." + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "Quando ativado, a duração de cada gravação será exibida na lista de vídeos (isso pode aumentar o tempo de carregamento)." + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "Quando ativado, as quebras de linha originais serão removidas das legendas de teletexto." + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "Quando ativado, o receptor usará automaticamente a trilha de áudio selecionada anteriormente." + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "Quando ativado, o receptor usará automaticamente a legenda selecionada anteriormente." + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "Quando ativado, o receptor não vai mais monitorar mudanças no transponder sintonizado. Use esta opção somente se souber o que está fazendo." + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "Quando ativado, o receptor irá selecionar uma trilha AC3 (quando disponível)." + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "Quando ativado, o timeshift inicia automaticamente após um tempo determinado." + +msgid "When enabled, use DHCP for the IP configuration." +msgstr "Quando ativado, DHCP é usado para a configuração de IP." + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "Quando ativado, o receptor irá detectar atividade na entrada VCR SCART." + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "Quando diferente de zero, uma gravação vai começar mais cedo do que o horário de início indicado pelo EPG." + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "Quando diferente de zero, uma gravação vai parar mais tarde do que a hora de término indicada pelo EPG." + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "Quando o conteúdo tem uma proporção de 16:9, escolha se deseja dimensionar/esticar a imagem." + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "Quando o conteúdo tem uma proporção de 4:3, escolha se deseja dimensionar/esticar a imagem." + +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"Quando é feita uma restauração aos padrões de fábrica, todas as configurações são perdidas (lista de canais, configurações do tuner, entre outras).\n" +"Depois da restauração, o receptor será reiniciado.\n" +"\n" +"Restaurar padrões de fábrica?" + +msgid "Where do you want to backup your settings?" +msgstr "Onde salvar o backup das configurações?" + +msgid "Where to save temporary timeshift recordings?" +msgstr "Onde salvar as gravações temporárias do timeshift?" + +msgid "Wireless LAN" +msgstr "Rede sem fio" + +msgid "Wireless network" +msgstr "Rede sem fio" + +msgid "Wireless network configuration..." +msgstr "Configuração de rede sem fio" + +msgid "Wireless network connection setup" +msgstr "Configurar rede sem fio" + +msgid "Wireless network connection setup." +msgstr "Configurar rede sem fio." + +msgid "Wireless network state" +msgstr "Estado da rede sem fio" + +msgid "With popup" +msgstr "Com popup" + +msgid "Without popup" +msgstr "Sem popup" + +msgid "Would you like to install a softcam?" +msgstr "Deseja instalar uma softcam?" + +msgid "Write error while recording. Disk full?\n" +msgstr "Erro ao gravar. Disco cheio?\n" + +msgid "Write failed!" +msgstr "A gravação falhou!" + +msgid "YPbPr" +msgstr "" + +msgid "Year" +msgstr "Ano" + +msgid "Yellow DVB subtitles" +msgstr "Legendas DVB em amarelo" + +msgid "Yes" +msgstr "Sim" + +msgid "Yes and save" +msgstr "Sim e salvar" + +msgid "Yes and save in movie dir" +msgstr "Sim, e salvar no diretório de vídeos" + +msgid "Yes to all" +msgstr "Sim para todos" + +msgid "Yes, always" +msgstr "Sim, sempre" + +msgid "Yes, and delete this movie" +msgstr "Sim, e remover este vídeo" + +msgid "Yes, backup my settings!" +msgstr "Sim, salve as configurações" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +msgid "Yes, do a manual scan now" +msgstr "Sim, realizar uma busca avançada" + +msgid "Yes, do an automatic scan now" +msgstr "Sim, realizar uma busca automática" + +msgid "Yes, do another manual scan now" +msgstr "Sim, fazer outra busca avançada" + +msgid "Yes, perform a shutdown now." +msgstr "Sim, desligar agora" + +msgid "Yes, restore the settings now" +msgstr "Sim, restaurar configurações" + +msgid "Yes, returning to movie list" +msgstr "Sim, e voltar à lista de vídeos" + +msgid "Yesterday" +msgstr "Ontem" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" +"Já existe uma lista de canais instalada.\n" +"Deseja remover\n" +"\"%s\"?" + +msgid "You can cancel the installation." +msgstr "A instalação pode ser cancelada." + +msgid "You can cancel the removal." +msgstr "A remoção pode ser cancelada." + +msgid "You can continue watching TV etc. while this is running." +msgstr "Pode continuar usando o receptor durante o processo." + +msgid "You can install this plugin." +msgstr "Pode instalar este plugin." + +msgid "You can only burn receiver recordings!" +msgstr "Apenas gravações são permitidas!" + +msgid "You can remove this plugin." +msgstr "Este plugin pode ser removido." + +msgid "You cannot delete this!" +msgstr "Não é possível remover" + +msgid "You didn't select a channel to record from." +msgstr "Nenhum canal foi selecionado." + +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "Foi escolhido realizar um backup das configurações. Pressione OK para fazer o backup agora." + +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "Foi escolhido criar um novo flasher .NFI inicializável para pendrive. Isto irá reparticionar o pendrive e todos os dados contidos nele serão removidos." + +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "Foi escolhido restaurar as configurações. O receptor irá reiniciar após a restauração. Pressione OK para restaurar agora." + +#, python-format +msgid "You have to wait %s!" +msgstr "Aguarde %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" +"É necessário um computador conectado ao receptor. Se você necessitar instruções adicionais, visite o website http://www.dm7025.de.\n" +"O receptor será reiniciado. Após seguir as instruções de atualização do site, o novo firmware irá solicitar a restauração das configurações." + +msgid "You system does not support ext4" +msgstr "O sistema não suporta EXT4." + +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "Operação completada com sucesso. Continuando o processo de atualização..." + +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "A coleção excede o tamanho de um DVD de camada simples. Será necessário um DVD camada dupla." + +msgid "Your current collection will get lost!" +msgstr "A coleção atual será descartada!" + +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"O firmware do processador frontal deve ser atualizado.\n" +"Pressione OK para iniciar a atualização." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"O processador frontal será atualizado.\n" +"Aguarde o receptor reiniciar.\n" +"Isto poderá demorar alguns minutos" + +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"A conexão de internet não está funcionando!\n" +"Escolha o que fazer a seguir." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "Internet ativa. IP: %s" + +msgid "Your network configuration has been activated." +msgstr "A configuração de rede foi ativada." + +msgid "Your receiver does not have an internet connection" +msgstr "O receptor não está conectado à internet" + +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"O receptor está pronto para uso.\n" +"\n" +"A conexão de internet está ativa.\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" +"O receptor está pronto para uso.\n" +"\n" +"A conexão de internet está ativa.\n" +"\n" +"Pressione OK para continuar." + +msgid "Your receiver is rebooting" +msgstr "Reiniciando o receptor. Aguarde..." + +msgid "Your receiver is shutting down" +msgstr "Desligando o receptor. Aguarde..." + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "Desligando o receptor. Aguarde..." + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "O receptor pode estar inutilizado agora. Consulte o manual para obter mais informações antes de reiniciar o receptor." + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "O receptor será colocado em espera por um temporizador." + +msgid "Your receiver will got to standby due to inactivity." +msgstr "O receptor será colocado em espera por inatividade." + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "Pressione OK para reiniciar o receptor." + +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"A conexão de internet sem fio não pôde ser iniciada!\n" +"Há um adaptador wireless compatível conectado?\n" +"\n" +"Escolha o que fazer a seguir." + +msgid "Zap" +msgstr "Assistir" + +msgid "Zap back to previously tuned service?" +msgstr "Voltar ao canal sintonizado anteriormente?" + +msgid "Zap back to service before positioner setup?" +msgstr "Voltar ao canal anterior à configuração do posicionador DiSEqC?" + +msgid "Zap back to service before tuner setup?" +msgstr "Voltar ao canal anterior à configuração do tuner?" + +msgid "Zap focus to Picture in Picture" +msgstr "Zap para janela PiP" + +msgid "Zap focus to main screen" +msgstr "Zap para janela principal" + +msgid "Zap mode" +msgstr "Modo Zap" + +msgid "Zap to selected channel" +msgstr "Assiste o canal selecionado" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "Assiste o canal selecionado, ou exibe informações detalhadas do evento (depende da configuração)" + +msgid "[alternative edit]" +msgstr "[editar alternativas]" + +msgid "[bouquet edit]" +msgstr "[editar grupo de favoritos]" + +msgid "[favourite edit]" +msgstr "[edição de favoritos]" + +msgid "[move mode]" +msgstr "[modo mover]" + +msgid "a gui to assign services/providers to common interface modules" +msgstr "Uma interface visual para atribuir serviços/operadoras a um módulo CI" + +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "Uma interface visual para atribuir serviços/operadoras/CAIDs a um módulo CI" + +msgid "abort alternatives edit" +msgstr "Cancelar modificações" + +msgid "abort bouquet edit" +msgstr "Cancelar modificações" + +msgid "abort favourites edit" +msgstr "Cancelar modificações" + +msgid "about to start" +msgstr "iniciando em breve" + +msgid "activate network adapter configuration" +msgstr "Ativar configuração do adaptador de rede" + +msgid "add alternatives" +msgstr "Adicionar alternativas" + +msgid "add bookmark" +msgstr "Adicionar marcador" + +msgid "add bouquet" +msgstr "Adicionar grupo de favoritos" + +msgid "add marker" +msgstr "Adicionar marcador" + +msgid "add service to bouquet" +msgstr "Adicionar ao grupo de favoritos" + +msgid "add service to favourites" +msgstr "Adicionar aos favoritos" + +msgid "add to parental protection" +msgstr "Adicionar ao controle de acesso" + +msgid "adult movie/drama" +msgstr "Filme/Drama adulto" + +msgid "advanced" +msgstr "Avançado" + +msgid "adventure/western/war" +msgstr "Aventura/Velho Oeste/Guerra" + +msgid "advertisement/shopping" +msgstr "Propagandas/Compras" + +msgid "after " +msgstr "após " + +msgid "alphabetic" +msgstr "Ordenar alfabeticamente" + +msgid "alphabetic reverse" +msgstr "Ordem alfabética invertida" + +msgid "alternative" +msgstr "Alternativo" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "Arte/Cultura (sem música, geral)" + +msgid "arts/culture magazine" +msgstr "Artes/Revista de cultura" + +msgid "athletics" +msgstr "Atletismo" + +msgid "audio tracks" +msgstr "Trilhas de áudio" + +msgid "auto" +msgstr "Auto" + +msgid "automatic" +msgstr "Automático" + +msgid "back" +msgstr "Voltar" + +msgid "background image" +msgstr "Imagem de fundo" + +msgid "ballet" +msgstr "Balé" + +#, python-format +msgid "bc%s" +msgstr "bc%s" + +msgid "better" +msgstr "Melhor" + +msgid "black" +msgstr "Preto" + +msgid "black & white" +msgstr "Preto e Branco" + +msgid "blacklist" +msgstr "Lista negra" + +msgid "blue" +msgstr "Azul" + +msgid "broadcasting/press" +msgstr "Transmissão/Imprensa" + +msgid "by date" +msgstr "Por data" + +msgid "cartoon/puppets" +msgstr "Desenhos/Fantoches" + +msgid "center" +msgstr "Centro" + +msgid "centered" +msgstr "Centralizado" + +msgid "centered, wrapped" +msgstr "centralizado" + +msgid "chapters" +msgstr "Capítulos" + +msgid "childrens's/youth program (general)" +msgstr "Infantil/Adolescentes (geral)" + +msgid "circular left" +msgstr "Circular esquerda" + +msgid "circular right" +msgstr "Circular direita" + +msgid "comedy" +msgstr "Comédia" + +msgid "complex" +msgstr "Complexo" + +msgid "config menu" +msgstr "Menu de configuração" + +msgid "confirmed" +msgstr "Confirmado" + +msgid "connected" +msgstr "Conectado" + +msgid "continue" +msgstr "Continuar" + +msgid "cooking" +msgstr "Cozinha" + +msgid "copy to bouquets" +msgstr "Copiar para grupo de favoritos" + +msgid "create directory" +msgstr "Criar diretório" + +#, python-format +msgid "currently installed image: %s" +msgstr "Imagem instalada no momento: %s" + +msgid "daily" +msgstr "Diário" + +msgid "day" +msgstr "Dia" + +msgid "default" +msgstr "Padrão" + +msgid "delete cut" +msgstr "Eliminar corte" + +msgid "delete..." +msgstr "Remover" + +msgid "descramble and record ecm" +msgstr "Decodificar e gravar ECM" + +msgid "detective/thriller" +msgstr "Detetive/Thriller" + +msgid "disable" +msgstr "Desativar" + +msgid "disable move mode" +msgstr "Salvar modificações" + +msgid "disabled" +msgstr "Desativado" + +msgid "disconnected" +msgstr "Desconectado" + +msgid "discussion/interview/debate" +msgstr "Discussão/Entrevista/Debate" + +msgid "do nothing" +msgstr "Não fazer nada" + +msgid "documentary" +msgstr "Documentário" + +msgid "don't descramble, record ecm" +msgstr "Não decodificar, gravar ECM" + +msgid "done!" +msgstr "Concluído" + +msgid "east" +msgstr "Leste" + +msgid "economics/social advisory" +msgstr "Economia social/Consultivo" + +msgid "edit alternatives" +msgstr "Editar alternativas" + +msgid "education/science/factual topics (general)" +msgstr "Educação/Ciência/Temas factuais (geral)" + +msgid "empty" +msgstr "Vazio" + +msgid "enable" +msgstr "Ativar" + +msgid "enable bouquet edit" +msgstr "Editar grupo de favoritos" + +msgid "enable favourite edit" +msgstr "Editar favoritos" + +msgid "enable move mode" +msgstr "Organizar/mover itens" + +msgid "enabled" +msgstr "Ativo" + +msgid "end alternatives edit" +msgstr "Salvar modificações" + +msgid "end bouquet edit" +msgstr "Salvar modificações" + +msgid "end cut here" +msgstr "Terminar corte aqui" + +msgid "end favourites edit" +msgstr "Salvar modificações" + +msgid "entertainment (10-16 year old)" +msgstr "Entretenimento (10-16 anos)" + +msgid "entertainment (6-14 year old)" +msgstr "Entretenimento (6-14 anos)" + +msgid "equal to" +msgstr "igual a" + +msgid "equestrian" +msgstr "Equestre" + +msgid "exit DVD player or return to file browser" +msgstr "Sair do reprodutor de DVD ou voltar à lista de arquivos" + +msgid "exit movielist" +msgstr "Sair da lista de vídeos" + +msgid "exit network adapter configuration" +msgstr "Sair da configuração de rede" + +msgid "exit networkadapter setup menu" +msgstr "Sair da configuração de rede" + +msgid "experimental film/video" +msgstr "Filme/vídeo experimental " + +msgid "false" +msgstr "Falso" + +msgid "fashion" +msgstr "Moda" + +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "Formatos (BMP, PNG, JPG, GIF)" + +msgid "filename" +msgstr "Nome do arquivo" + +msgid "film/cinema" +msgstr "Filme/Cinema" + +msgid "fine arts" +msgstr "Belas artes" + +msgid "fine-tune your display" +msgstr "Ajuste fino da imagem" + +msgid "fitness & health" +msgstr "Fitness e Saúde" + +msgid "flat alphabetic" +msgstr "Ordenar alfabeticamente" + +msgid "flat alphabetic reverse" +msgstr "Ordem alfabética invertida" + +msgid "folk/traditional music" +msgstr "Folk/Música tradicional" + +msgid "football/soccer" +msgstr "Futebol" + +msgid "foreign countries/expeditions" +msgstr "Países estrangeiros/Expedições" + +msgid "forward to the next chapter" +msgstr "Próximo capítulo" + +msgid "free" +msgstr "Livre" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "Educação" + +msgid "game show/quiz/contest" +msgstr "Game show/Quiz/Concurso" + +msgid "gardening" +msgstr "Jardinagem" + +msgid "go to deep standby" +msgstr "Desligar" + +msgid "go to standby" +msgstr "Ir para StandBy" + +msgid "grab this frame as bitmap" +msgstr "Usar esta imagem como bitmap" + +msgid "green" +msgstr "Verde" + +msgid "handicraft" +msgstr "Artesanato" + +msgid "height" +msgstr "Altura" + +msgid "help..." +msgstr "Ajuda" + +msgid "horizontal" +msgstr "Horizontal" + +msgid "information/education/school program" +msgstr "Informação/Educação/Escola" + +msgid "init module" +msgstr "Módulo de início" + +msgid "init modules" +msgstr "Módulos de início" + +msgid "insert mark here" +msgstr "Inserir marcador aqui" + +msgid "invalid type" +msgstr "Tipo inválido" + +msgid "jazz" +msgstr "Jazz" + +msgid "jump back to the previous title" +msgstr "Título anterior" + +msgid "jump forward to the next title" +msgstr "Próximo título" + +msgid "languages" +msgstr "Idiomas" + +msgid "leave movie player..." +msgstr "Sair do reprodutor de mídia" + +msgid "left" +msgstr "Esquerda" + +msgid "left, wrapped" +msgstr "à esquerda" + +msgid "leisure hobbies (general)" +msgstr "Lazer/Hobbies (geral)" + +msgid "length" +msgstr "comprimento" + +msgid "limit ..., aborting !" +msgstr "limite. Cancelando..." + +msgid "list style compact" +msgstr "Lista compacta" + +msgid "list style compact with description" +msgstr "Lista compacta com descrição" + +msgid "list style default" +msgstr "Lista normal" + +msgid "list style single line" +msgstr "Lista em linha simples" + +msgid "literature" +msgstr "Literatura" + +msgid "live broadcast" +msgstr "Transmissão ao-vivo" + +msgid "locked" +msgstr "Sintonizado" + +msgid "loopthrough to" +msgstr "loopthrough para" + +msgid "magazines/reports/documentary" +msgstr "Revistas/Documentário" + +msgid "manual" +msgstr "Manual" + +msgid "martial sports" +msgstr "Esportes marciais" + +msgid "medicine/physiology/psychology" +msgstr "Medicina/Fisiologia/Psicologia" + +msgid "menu" +msgstr "Menu" + +msgid "mins" +msgstr "mins" + +msgid "minutes" +msgstr "minutos" + +msgid "month" +msgstr "mês" + +msgid "motor sport" +msgstr "Esporte a motor" + +msgid "motoring" +msgstr "Automobilismo" + +msgid "move down to last entry" +msgstr "Ir para a última entrada" + +msgid "move down to next entry" +msgstr "Ir para a entrada seguinte" + +msgid "move up to first entry" +msgstr "Ir para a primeira entrada" + +msgid "move up to previous entry" +msgstr "Ir para a entrada anterior" + +msgid "movie/drama (general)" +msgstr "Filme/Drama (geral)" + +msgid "multinorm" +msgstr "Multinorma" + +msgid "music/ballet/dance (general)" +msgstr "Música/Balé/Dança (geral)" + +msgid "musical/opera" +msgstr "Musical/Ópera" + +msgid "nature/animals/environment" +msgstr "Natureza/Animais/Ambiente" + +msgid "never" +msgstr "Nunca" + +msgid "new media" +msgstr "Nova mídia" + +msgid "news magazine" +msgstr "Revista de notícias" + +msgid "news/current affairs (general)" +msgstr "Notícias/Assuntos atuais (geral)" + +msgid "news/weather report" +msgstr "Notícias/Relatório do tempo" + +msgid "no" +msgstr "Não" + +msgid "no CAId selected" +msgstr "Nenhum CAID selecionado" + +msgid "no CI slots found" +msgstr "Nenhum slots CI encontrado" + +msgid "no module found" +msgstr "Nenhum modulo detectado" + +msgid "no storage devices found" +msgstr "Nenhum dispositivo de armazenamento encontrados " + +msgid "none" +msgstr "Nenhum" + +msgid "normal" +msgstr "Normal" + +msgid "not configured" +msgstr "Não configurado" + +msgid "not locked" +msgstr "Não sintonizado" + +msgid "not supported" +msgstr "Não suportado" + +msgid "not used" +msgstr "Não usado" + +msgid "nothing connected" +msgstr "Desconectado" + +msgid "of a DUAL layer medium used." +msgstr "de uma mídia com camada dupla usada." + +msgid "of a SINGLE layer medium used." +msgstr "de uma mídia com camada simples usada." + +msgid "off" +msgstr "Desligado" + +msgid "offset is" +msgstr "o desvio é" + +msgid "on" +msgstr "Ligado" + +msgid "on READ ONLY medium." +msgstr "na mídia SOMENTE LEITURA." + +msgid "on end of movie" +msgstr "No fim do vídeo" + +msgid "once" +msgstr "Uma vez" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +msgid "open nameserver configuration" +msgstr "Abrir a configuração do servidor DNS" + +msgid "original" +msgstr "Original" + +msgid "original language" +msgstr "Idioma original" + +msgid "pass" +msgstr "Passar" + +msgid "performing arts" +msgstr "Artes Cênicas" + +msgid "play as picture in picture" +msgstr "Reproduzir como PiP" + +msgid "play in mainwindow" +msgstr "Reproduzir na janela principal" + +msgid "please press OK when ready" +msgstr "Pressione OK quando estiver pronto." + +msgid "please wait, loading picture..." +msgstr "Carregando a imagem. Aguarde..." + +msgid "popular culture/traditional arts" +msgstr "Cultura popular/Artes tradicionais" + +msgid "pre-school children's program" +msgstr "Programa infantil pré-escolar" + +msgid "receiver software because updates are available." +msgstr "software do receptor porque há atualizações disponíveis." + +msgid "record" +msgstr "Gravar" + +msgid "recording..." +msgstr "Gravando..." + +msgid "red" +msgstr "Vermelho" + +msgid "religion" +msgstr "Religião" + +msgid "remarkable people" +msgstr "Celebridades" + +msgid "remove after this position" +msgstr "Remover após esta posição" + +msgid "remove all alternatives" +msgstr "Remover todas as alternativas" + +msgid "remove all new found flags" +msgstr "Remover todas as marcas de \"Novo\"" + +msgid "remove before this position" +msgstr "Remover antes desta posição" + +msgid "remove bookmark" +msgstr "Remover favorito" + +msgid "remove directory" +msgstr "Remover diretório" + +msgid "remove entry" +msgstr "Remover item" + +msgid "remove from parental protection" +msgstr "Remover do controle de acesso" + +msgid "remove new found flag" +msgstr "Remover marca de \"Novo\"" + +msgid "remove selected satellite" +msgstr "Remover satélite selecionado" + +msgid "remove this mark" +msgstr "Remover esta marca" + +msgid "rename entry" +msgstr "Renomear item" + +msgid "repeat playlist" +msgstr "Repetir lista de reprodução" + +msgid "repeated" +msgstr "Repetir" + +msgid "reverse by date" +msgstr "Invertido por data" + +msgid "rewind to the previous chapter" +msgstr "Voltar ao capítulo anterior" + +msgid "right" +msgstr "Direita" + +msgid "right, wrapped" +msgstr "à direita" + +msgid "rock/pop" +msgstr "Rock/Pop" + +msgid "romance" +msgstr "Romance" + +msgid "save last directory on exit" +msgstr "Lembrar diretório ao sair" + +msgid "save playlist on exit" +msgstr "Salvar lista de reprodução ao sair" + +msgid "scan state" +msgstr "Estado da busca" + +msgid "science fiction/fantasy/horror" +msgstr "Ficção científica/Fantasia/Terror" + +msgid "second cable of motorized LNB" +msgstr "Segundo cabo do LNB motorizado" + +msgid "seconds" +msgstr "Segundos" + +msgid "select" +msgstr "Selecionar" + +msgid "select CAId's" +msgstr "Selecionar CAID's" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +msgid "select menu entry" +msgstr "Selecionar entrada de menu" + +msgid "select movie" +msgstr "selecione o filme" + +msgid "select the movie path" +msgstr "Selecione o diretório de gravações" + +msgid "serious music/classic music" +msgstr "Música clássica" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "Clássico/Religioso/Filme histórico/Drama" + +msgid "service PIN" +msgstr "Senha do canal" + +msgid "set as startup service" +msgstr "Ligar sempre neste canal" + +msgid "setup PIN" +msgstr "Configurar senha" + +msgid "show DVD main menu" +msgstr "Exibir menu de DVD" + +msgid "show all tags" +msgstr "Exibir todas as marcas" + +msgid "show alternatives" +msgstr "Ver alternativas" + +msgid "show event details" +msgstr "Exibir detalhes do evento" + +msgid "show extended description" +msgstr "Exibir descrição estendida" + +msgid "show mediaplayer on mainmenu" +msgstr "Exibir reprodutor de mídia no menu principal" + +msgid "show softwaremanager in setup menu" +msgstr "Exibir configuração de software no menu" + +msgid "show softwaremanager on blue button" +msgstr "Exibir configuração de software no botão azul" + +msgid "show tag menu" +msgstr "Exibir menu de marcadores" + +msgid "show transponder info" +msgstr "Informações do transponder" + +msgid "show/game show (general)" +msgstr "Show/Game show (geral)" + +msgid "shuffle" +msgstr "Aleatório" + +msgid "shut down" +msgstr "Desligar" + +msgid "simple" +msgstr "Simples" + +msgid "skip backward" +msgstr "Retornar" + +msgid "skip forward" +msgstr "Avançar" + +msgid "soap/melodram/folkloric" +msgstr "Novelas/Melodramas/Popular" + +msgid "social/political issues/economics (general)" +msgstr "Questões sociais/Políticas/Economia (geral)" + +msgid "social/spiritual science" +msgstr "Ciência social/espiritual" + +msgid "sorting of playlists" +msgstr "Ordenar listas de reprodução" + +msgid "special characters" +msgstr "Caracteres especiais" + +msgid "special events" +msgstr "Eventos especiais" + +msgid "special format data DVD (HDTV compatible)" +msgstr "Formato especial de DVD de dados (compatível com HDTV)" + +msgid "sports (general)" +msgstr "Esportes (geral)" + +msgid "sports magazine" +msgstr "Revista de esportes" + +msgid "standard" +msgstr "Padrão" + +msgid "start cut here" +msgstr "Iniciar corte aqui" + +msgid "start directory" +msgstr "Diretório inicial" + +msgid "stepsize" +msgstr "Tamanho do passo" + +msgid "stereo" +msgstr "Estéreo" + +msgid "stop using as startup service" +msgstr "Não usar como canal inicial" + +msgid "switch to bookmarks" +msgstr "Ir para favoritos" + +msgid "switch to filelist" +msgstr "Ir para lista de arquivos" + +msgid "switch to the next angle" +msgstr "Ver próximo ângulo" + +msgid "switch to the next audio track" +msgstr "Próxima trilha de áudio" + +msgid "switch to the next subtitle language" +msgstr "Próximo idioma de legenda" + +msgid "talk show" +msgstr "Talk show" + +msgid "team sports" +msgstr "Esportes de equipe" + +msgid "technology/natural science" +msgstr "Tecnologia/Ciências Naturais" + +msgid "template file" +msgstr "Arquivo modelo" + +msgid "tennis/squash" +msgstr "Tênis/Squash" + +msgid "this recording" +msgstr "esta gravação" + +msgid "this service is protected by a parental control pin" +msgstr "Canal protegido com senha" + +msgid "toggle time, chapter, audio, subtitle info" +msgstr "Alterna tempo, capítulo, áudio, informações da legenda" + +msgid "top" +msgstr "Topo" + +msgid "tourism/travel" +msgstr "Turismo/Viagens" + +msgid "true" +msgstr "Verdadeiro" + +msgid "unavailable" +msgstr "Indisponível" + +msgid "unconfirmed" +msgstr "Não confirmado" + +msgid "undefined" +msgstr "Indefinido" + +msgid "unknown" +msgstr "Desconhecido" + +msgid "unknown service" +msgstr "Serviço desconhecido" + +msgid "unpublished" +msgstr "Não publicado" + +msgid "until standby/restart" +msgstr "até standby/reiniciar" + +msgid "user defined" +msgstr "Manual" + +msgid "variety show" +msgstr "Show de variedades" + +msgid "vertical" +msgstr "Vertical" + +msgid "wait for ci..." +msgstr "Aguardando CI..." + +msgid "wait for mmi..." +msgstr "Aguardando MMI..." + +msgid "waiting" +msgstr "Aguardando" + +msgid "water sport" +msgstr "Esporte aquático" + +msgid "weekly" +msgstr "Semanal" + +msgid "west" +msgstr "Oeste" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "Branco" + +msgid "whitelist" +msgstr "Lista branca" + +msgid "width" +msgstr "largura" + +msgid "winter sport" +msgstr "Esporte de inverno" + +msgid "wireless network interface" +msgstr "Interface de rede sem fio" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "com %d de erro" +msgstr[1] "com %d de erros" + +msgid "working" +msgstr "trabalhando" + +msgid "yellow" +msgstr "Amarelo" + +msgid "yes" +msgstr "Sim" + +msgid "yes (keep feeds)" +msgstr "Sim (manter os feeds)" + +msgid "zap" +msgstr "Zap" + +msgid "zap and record" +msgstr "Assistir e gravar" + +msgid "zapped" +msgstr "zapped" + +#~ msgid "" +#~ "\n" +#~ "System will restart after the restore!" +#~ msgstr "" +#~ "\n" +#~ "O sistema vai reiniciar depois da restauração!" + +#~ msgid " wireless networks found!" +#~ msgstr "redes sem fios encontradas!" + +#~ msgid "/usr/share/enigma2 directory" +#~ msgstr "Pasta /usr/share/enigma2" + +#~ msgid "/var directory" +#~ msgstr "Pasta /var " + +#~ msgid "A demo plugin for TPM usage." +#~ msgstr "Demonstração de uso do plugin TPM." + +#~ msgid "AC3 downmix" +#~ msgstr "AC3 downmix" + +#~ msgid "Action:" +#~ msgstr "Ação:" + +#~ msgid "Activate PiP" +#~ msgstr "Ativar PiP" + +#~ msgid "Add WLAN configuration?" +#~ msgstr "Adicionar configuração de WLAN?" + +#~ msgid "Add network configuration?" +#~ msgstr "Adicionar configuração de rede?" + +#~ msgid "Add/remove timer for current event" +#~ msgstr "Ad/Rem temporizador do evento atual" + +#~ msgid "Adds wlan configuration if enabled." +#~ msgstr "Adiciona a configuração de rede sem fios, se ativada." + +#~ msgid "Adjust HDMI CEC settings" +#~ msgstr "Ajustar configurações HDMI CEC" + +#~ msgid "After pressing OK, please wait!" +#~ msgstr "Depois de pressionar 'OK', aguarde por favor!" + +#~ msgid "All satellites" +#~ msgstr "Todos os satélites" + +#~ msgid "Always ask before sending" +#~ msgstr "Perguntar sempre antes de enviar" + +#~ msgid "And will shutdown your receiver over " +#~ msgstr "E desligará o receptor após" + +#~ msgid "Anonymize crashlog?" +#~ msgstr "Enviar relatório de erros anônimo?" + +#~ msgid "" +#~ "Are you sure you want to restore\n" +#~ "following backup:\n" +#~ msgstr "" +#~ "Tem certeza que quer restaurar\n" +#~ "este backup:\n" + +#~ msgid "Auto-focus" +#~ msgstr "Focagem-auto" + +#~ msgid "Backup" +#~ msgstr "Backup" + +#~ msgid "Backup Location" +#~ msgstr "Local do backup" + +#~ msgid "Backup Mode" +#~ msgstr "Modo do backup" + +#~ msgid "Backup done." +#~ msgstr "O backup terminou." + +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "Comportamento do Pause, quando pausado" + +#~ msgid "By pressing the OK Button on your remote control, the info bar is being displayed." +#~ msgstr "Ao pressionar 'OK' do seu controle remoto, a barra de info irá aparecer." + +#~ msgid "CF Drive" +#~ msgstr "Drive de Compact Flash" + +#~ msgid "Choose Tuner" +#~ msgstr "Escolha o tuner" + +#~ msgid "Choose a wireless network" +#~ msgstr "Escolha uma rede sem fios" + +#~ msgid "Choose bouquet" +#~ msgstr "Escolha o bouquet" + +#~ msgid "Choose upgrade source" +#~ msgstr "Escolha um fonte de atualização" + +#~ msgid "Choose your Skin" +#~ msgstr "Escolha de tema" + +#~ msgid "Cleanup Wizard" +#~ msgstr "Assistente de limpeza" + +#~ msgid "Cleanup Wizard settings" +#~ msgstr "Configurações do assistente de limpeza" + +#~ msgid "CleanupWizard" +#~ msgstr "Assistente de limpeza" + +#~ msgid "Committed DiSEqC command" +#~ msgstr "Porta da DiSEqC (Committed)" + +#~ msgid "CommonInterface" +#~ msgstr "Interface comum" + +#~ msgid "Configure if and how service type icons will be shown." +#~ msgstr "Configurar como os icones do serviço serão exibidos." + +#~ msgid "Configure if service picons will be shown in the servicelist." +#~ msgstr "Configurar se os ícones de serviço serão exibidos na lista." + +#~ msgid "Configure the behavior of the 'pause' key when movie playback is already paused." +#~ msgstr "Configurar o comportamento do botão Pause quando a reprodução já está pausada." + +#~ msgid "Configure the duration in hours and action, which could be shut down or standby, when the receiver is not controlled." +#~ msgstr "Configurar a duração em horas e a ação, que pode ser desligar ou em espera, quando o receptor está inativo." + +#~ msgid "Configure the duration in minutes and action, which could be shut down or standby, for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +#~ msgstr "Configurar a duração em minutos e a ação, que pode ser desligar ou em espera, usando o temporizador. Selecione a opção desejada e pressione Verde ou OK para iniciar/parar o temporizador." + +#~ msgid "Confirm shutdown:" +#~ msgstr "Confirmar antes de desligar:" + +#~ msgid "Crashlog settings" +#~ msgstr "Definições de relatórios de erros" + +#~ msgid "CrashlogAutoSubmit" +#~ msgstr "Submissão automática de relatórios de erros" + +#~ msgid "CrashlogAutoSubmit settings" +#~ msgstr "Configurações de submissão automática de relatórios de erros" + +#~ msgid "CrashlogAutoSubmit settings..." +#~ msgstr "Configurações de submissão automática de relatórios de erros..." + +#~ msgid "Custom text position" +#~ msgstr "Posição das legendas" + +#~ msgid "DTS downmix" +#~ msgstr "Downmix DTS" + +#~ msgid "Decide if you want to enable or disable the Cleanup Wizard." +#~ msgstr "Decida se quer ativar ou desativar o assistente de limpeza." + +#~ msgid "Decide what should be done when crashlogs are found." +#~ msgstr "Decida o que fazer quando relatórios de erros forem encontrados." + +#~ msgid "Decide what should happen to the crashlogs after submission." +#~ msgstr "Decida o que deve acontecer aos relatórios de erros após a sua submissão." + +#~ msgid "Delete crashlogs" +#~ msgstr "Apagar os relatórios de erros" + +#~ msgid "" +#~ "Delete no more configured satellite\n" +#~ "%s?" +#~ msgstr "" +#~ "Apagar os satélites não configurados\n" +#~ "%s?" + +#~ msgid "DiSEqC repeats" +#~ msgstr "Repetir comando DiSEqC" + +#~ msgid "Disable crashlog reporting" +#~ msgstr "Desabilitar o reporte de relatórios de erros" + +#~ msgid "Dish" +#~ msgstr "Antena" + +#~ msgid "" +#~ "Do you really want to REMOVE\n" +#~ "the plugin \"%s\"?" +#~ msgstr "" +#~ "Deseja mesmo REMOVER\n" +#~ "o plugin \"%s\"?" + +#~ msgid "" +#~ "Do you want to backup now?\n" +#~ "After pressing OK, please wait!" +#~ msgstr "" +#~ "Deseja fazer o backup agora?\n" +#~ "Depois de pressionar 'OK',espere por favor!" + +#~ msgid "Do you want to submit your email address and name so that we can contact you if needed?" +#~ msgstr "Deseja enviar o seu endereço de e-mail e nome para o contactarmos se preciso?" + +#~ msgid "Do you want to view a tutorial?" +#~ msgstr "Deseja ver o manual?" + +#~ msgid "Don't ask, just send" +#~ msgstr "Não perguntar, só enviar" + +#~ msgid "Done - Installed or upgraded %d packages" +#~ msgstr "'OK' - %d pacotes instalados ou atualizados" + +#~ msgid "Edit Title" +#~ msgstr "Editar o título" + +#~ msgid "Enable Cleanup Wizard?" +#~ msgstr "Ativar \"Gestor de limpeza\"?" + +#~ msgid "Enable timer" +#~ msgstr "Temporizador ativo" + +#~ msgid "EndTime" +#~ msgstr "Terminado" + +#~ msgid "Enter your email address so that we can contact you if needed." +#~ msgstr "Insira o seu endereço de e-mail para o contactarmos se preciso." + +#~ msgid "Exit the cleanup wizard" +#~ msgstr "Sair do assistente de limpeza" + +#~ msgid "Exit wizard" +#~ msgstr "Sair" + +#~ msgid "For more information see www.openpli.org" +#~ msgstr "Para mais informações visite \"www.openpli.org\"" + +#~ msgid "General AC3 delay (ms)" +#~ msgstr "Atraso AC3 geral (ms)" + +#~ msgid "General PCM delay (ms)" +#~ msgstr "Atraso PCM geral (ms)" + +#~ msgid "Goto specific data/time" +#~ msgstr "Ir para a data/tempo específico" + +#~ msgid "Guard Interval" +#~ msgstr "Intervalo" + +#~ msgid "How to handle found crashlogs?" +#~ msgstr "O que fazer com relatórios de erros encontrados?" + +#~ msgid "Include your email and name (optional) in the mail?" +#~ msgstr "Incluir seu e-mail e nome (opcional) no e-mail?" + +#~ msgid "Install settings, skins, software..." +#~ msgstr "Instalar settings, skins, software..." + +#~ msgid "Installation finished." +#~ msgstr "Instalação terminada." + +#~ msgid "Installing default sat lists... Please wait..." +#~ msgstr "Instalando lista de canais padrão... Por favor aguarde..." + +#~ msgid "Installing defaults... Please wait..." +#~ msgstr "Instalando padrões... Por favor aguarde..." + +#~ msgid "Installing package content... Please wait..." +#~ msgstr "Instalando pacote... Por favor aguarde..." + +#~ msgid "Keep old timers for how many days" +#~ msgstr "Manter agendamentos antigos por quantos dias" + +#~ msgid "Kill partition table" +#~ msgstr "Eliminar a tabela de partições" + +#~ msgid "Letzeburgesch" +#~ msgstr "Luxemburguês" + +#~ msgid "Mainmenu" +#~ msgstr "Menu principal" + +#~ msgid "Margin after record" +#~ msgstr "Margem depois de gravar" + +#~ msgid "MediaPlayer" +#~ msgstr "Reproduzir mídia" + +#~ msgid "Memory positions" +#~ msgstr "Posições de memória" + +#~ msgid "Network Setup" +#~ msgstr "Config. de rede" + +#~ msgid "NetworkWizard" +#~ msgstr "Assistente de Rede" + +#~ msgid "No packages were upgraded yet. So you can check your network and try again." +#~ msgstr "Nenhum pacote atualizado. Verifique a sua rede e tente outra vez." + +#~ msgid "No picture on TV? Press EXIT and retry." +#~ msgstr "Sem imagem na TV? Pressione 'EXIT' e tente de novo." + +#~ msgid "No sat tuner found!" +#~ msgstr "Tuner de satélite não encontrado!" + +#~ msgid "No satellite frontend found!!" +#~ msgstr "Nenhum satélite encontrado." + +#~ msgid "No, but restart from beginning" +#~ msgstr "Não, voltar ao início" + +#~ msgid "No, not now" +#~ msgstr "Agora não" + +#~ msgid "No, scan later manually" +#~ msgstr "Não. Busca manual depois." + +#~ msgid "No, send them never" +#~ msgstr "Nunca enviar" + +#~ msgid "Nothing to upgrade" +#~ msgstr "Sem atualizações!" + +#~ msgid "OK, remove another extensions" +#~ msgstr "'OK', remova outras extensões" + +#~ msgid "OK, remove some extensions" +#~ msgstr "'OK', remova algumas extensões" + +#~ msgid "OSD visibility" +#~ msgstr "Visibilidade do OSD" + +#~ msgid "Open service list and select next channel" +#~ msgstr "Abrir a lista de canais e selecionar próximo canal" + +#~ msgid "Open service list and select previous channel" +#~ msgstr "Abrir a lista de canais e selecionar canal anterior" + +#~ msgid "Optionally enter your name if you want to." +#~ msgstr "Opcionalmente introduza o seu nome, se desejado." + +#~ msgid "Orbital Position" +#~ msgstr "Posição orbital" + +#~ msgid "Package removal failed.\n" +#~ msgstr "A remoção de pacote falhou.\n" + +#~ msgid "Package removed successfully.\n" +#~ msgstr "Pacote removido com sucesso.\n" + +#~ msgid "Packages" +#~ msgstr "Pacotes" + +#~ msgid "Please be aware, that anyone can disable the parental control, if you have not set a PIN." +#~ msgstr "Por favor tenha atenção! Qualquer um pode desabilitar o controle de pais se não definir um PIN." + +#~ msgid "Please choose the default services lists you want to install." +#~ msgstr "Por favor escolha a lista padrão que deseja instalar." + +#~ msgid "Please enter your email address here:" +#~ msgstr "Por favor introduza o seu endereço de e-mail aqui (opcional):" + +#~ msgid "Please enter your name here (optional):" +#~ msgstr "Por favor introduza o seu nome aqui (opcional):" + +#~ msgid "Please press OK!" +#~ msgstr "Pressione 'OK'!" + +#~ msgid "Please select an extension to remove." +#~ msgstr "Por favor escolha uma extensão a ser removida." + +#~ msgid "Please select an option below." +#~ msgstr "Por favor selecione uma das seguintes opções." + +#~ msgid "Please wait while removing selected package..." +#~ msgstr "Por favor aguarde enquanto o pacote selecionado é removido..." + +#~ msgid "Please wait while searching for removable packages..." +#~ msgstr "Por favor aguarde enquanto pocotes removíveis são procurados..." + +#~ msgid "Press '0' to toggle internal/external PiP." +#~ msgstr "Pressione 0 para alternar entre PiP interno/externo." + +#~ msgid "Remove Bookmark" +#~ msgstr "Remover marcador" + +#~ msgid "Remove Plugins" +#~ msgstr "Remover plugins" + +#~ msgid "Remove finished." +#~ msgstr "A remoção acabou." + +#~ msgid "Remove timer" +#~ msgstr "Remover temporizador" + +#~ msgid "Removed successfully." +#~ msgstr "A remoção foi feita com sucesso." + +#~ msgid "Rename crashlogs" +#~ msgstr "Renomear relatórios de erros" + +#~ msgid "Restore running" +#~ msgstr "Restauração em progresso" + +#~ msgid "Sat / Dish Setup" +#~ msgstr "Definições Sat / Antena" + +#~ msgid "Save Playlist" +#~ msgstr "Gravar lista" + +#~ msgid "Scan QAM128" +#~ msgstr "Scan QAM128" + +#~ msgid "Scan QAM16" +#~ msgstr "Scan QAM16" + +#~ msgid "Scan QAM256" +#~ msgstr "Scan QAM256" + +#~ msgid "Scan QAM32" +#~ msgstr "Scan QAM32" + +#~ msgid "Scan QAM64" +#~ msgstr "Scan QAM64" + +#~ msgid "Scan SR6875" +#~ msgstr "Scan SR6875" + +#~ msgid "Scan SR6900" +#~ msgstr "Scan SR6900" + +#~ msgid "Scan band EU HYPER" +#~ msgstr "Scan band EU HYPER" + +#~ msgid "Scan band EU SUPER" +#~ msgstr "Scan band EU SUPER" + +#~ msgid "Scan band EU UHF IV" +#~ msgstr "Scan band EU UHF IV" + +#~ msgid "Scan band EU UHF V" +#~ msgstr "Scan band EU UHF V" + +#~ msgid "Scan band EU VHF I" +#~ msgstr "Scan band EU VHF I" + +#~ msgid "Scan band EU VHF III" +#~ msgstr "Scan band EU VHF III" + +#~ msgid "Scan band US HIGH" +#~ msgstr "Scan band US HIGH" + +#~ msgid "Scan band US HYPER" +#~ msgstr "Scan band US HYPER" + +#~ msgid "Scan band US LOW" +#~ msgstr "Scan band US LOW" + +#~ msgid "Scan band US MID" +#~ msgstr "Scan band US MID" + +#~ msgid "Scan band US SUPER" +#~ msgstr "Scan band US SUPER" + +#~ msgid "Select package" +#~ msgstr "Selecionar pacote" + +#~ msgid "Send DiSEqC" +#~ msgstr "Enviar comando DiSEqC" + +#~ msgid "Service Scan" +#~ msgstr "Busca de canais" + +#~ msgid "Set available internal memory threshold for the warning." +#~ msgstr "Definir limite de memória interna disponível para aviso." + +#~ msgid "Show picons in servicelist" +#~ msgstr "Exibir ícones na lista de serviços" + +#~ msgid "Shutdown after current event" +#~ msgstr "Desligar após o evento atual" + +#~ msgid "Shutdown in " +#~ msgstr "Desligar em " + +#~ msgid "Sleep timer action:" +#~ msgstr "Ação do temporizador:" + +#~ msgid "" +#~ "Sorry your Backup destination does not exist\n" +#~ "\n" +#~ "Please choose an other one." +#~ msgstr "" +#~ "Desculpe mas o seu backup não existe\n" +#~ "\n" +#~ "Por favor selecione outro." + +#~ msgid "" +#~ "Sorry, your backup destination is not writeable.\n" +#~ "\n" +#~ "Please choose another one." +#~ msgstr "" +#~ "Desculpe, o seu destino para backup não é acessível.\n" +#~ "\n" +#~ "Por favor escolha outro destino." + +#~ msgid "Standby / Restart" +#~ msgstr "Standby / Reiniciar" + +#~ msgid "Swap SNR in db with SNR in percentage on OSD" +#~ msgstr "Trocar o SNR em dB por porcentagem na infobar" + +#~ msgid "Switch next channel" +#~ msgstr "Próximo canal" + +#~ msgid "TV system" +#~ msgstr "Sistema de TV" + +#~ msgid "Test-Messagebox?" +#~ msgstr "Testar caixa de mensagens?" + +#~ msgid "" +#~ "The input port should be configured now.\n" +#~ "You can now configure the screen by displaying some test pictures. Do you want to do that now?" +#~ msgstr "" +#~ "A porta de entrada deve ser configurada agora.\n" +#~ "Pode agora configurar a tela, ao exibir algumas imagens de testes. Deseja continuar?" + +#~ msgid "The installation of the default services lists is finished." +#~ msgstr "A instalação da lista de canais padrão foi concluída." + +#~ msgid "The package doesn't contain anything." +#~ msgstr "O pacote está vazio." + +#~ msgid "The package:" +#~ msgstr "O pacote:" + +#~ msgid "There are no default services lists in your image." +#~ msgstr "Não existem listas de canais padrão na sua imagem." + +#~ msgid "There are no default settings in your image." +#~ msgstr "Não existem configurações padrão na sua imagem." + +#~ msgid "There are now " +#~ msgstr "Agora existem" + +#~ msgid "There was an error. The package:" +#~ msgstr "Ocorreu um erro. O pacote:" + +#~ msgid "This is step number 2." +#~ msgstr "Passo 2." + +#~ msgid "Timer status:" +#~ msgstr "Estado do temporizador:" + +#~ msgid "Transmission Mode" +#~ msgstr "Modo de transmissão" + +#~ msgid "Try to find used Transponders in cable network.. please wait..." +#~ msgstr "Tentando encontrar transponders usados na rede do cabo. Espere por favor..." + +#~ msgid "Tuner " +#~ msgstr "Tuner" + +#~ msgid "Tuning step size" +#~ msgstr "Tamanho do passo" + +#~ msgid "Unattended upgrade without GUI and reboot system" +#~ msgstr "Atualizar sem interface visual e reiniciar o sistema" + +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Porta da DiSEqC (Uncommitted)" + +#~ msgid "Updating finished. Here is the result:" +#~ msgstr "Atualização terminada. Resultado:" + +#~ msgid "Updating... Please wait... This can take some minutes..." +#~ msgstr "Atualizando... Espere por favor... Pode levar alguns minutos..." + +#~ msgid "Upgrade finished." +#~ msgstr "A atualização terminou." + +#~ msgid "Use Power Measurement" +#~ msgstr "Usar medidor de potência" + +#~ msgid "" +#~ "Use the left and right buttons to change an option.\n" +#~ "\n" +#~ "Please set up tuner A" +#~ msgstr "" +#~ "Use os botões direita e esquerda para selecionar.\n" +#~ "\n" +#~ "Selecione o tuner A" + +#~ msgid "Use time of currently running service" +#~ msgstr "Ao fim do programa atual" + +#~ msgid "Video Fine-Tuning Wizard" +#~ msgstr "Assistente de sintonia fina de vídeo" + +#~ msgid "Videoenhancement Setup" +#~ msgstr "Opções de imagem" + +#~ msgid "View Movies..." +#~ msgstr "Ver gravações" + +#~ msgid "Warn if free space drops below (kB):" +#~ msgstr "Avisar se o espaço livre for menos de (kB):" + +#~ msgid "What to do with submitted crashlogs?" +#~ msgstr "O que fazer com os relatórios de erros enviados?" + +#~ msgid "When enabled, external subtitles (in media files) will be displayed in yellow, instead of the original color." +#~ msgstr "Quando ativado, legendas externas (em arquivos de mídia) serão exibidas em amarelo, em vez da cor original." + +#~ msgid "When enabled, your TV will automatically select the SCART input when you switch on your receiver." +#~ msgstr "Quando ativado, a TV vai selecionar automaticamente a entrada SCART quando você ligar o seu receptor." + +#~ msgid "Yes, and don't ask again" +#~ msgstr "Sim, e não perguntar novamente" + +#~ msgid "Yes, view the tutorial" +#~ msgstr "Sim, ver o tutorial" + +#~ msgid "You can choose some default settings now. Please select the settings you want to be installed." +#~ msgstr "Pode escolher algumas configurações padrão agora. Por favor selecione as configurações a serem instaladas." + +#~ msgid "You can choose, what you want to install..." +#~ msgstr "Pode escolher o que quer instalar..." + +#~ msgid "You chose not to install any default services lists." +#~ msgstr "Escolheu não instalar nenhuma lista de canais padrão." + +#~ msgid "You chose not to install any default settings. You can however install the default settings later in the settings menu." +#~ msgstr "Escolheu não instalar nenhuma configuração. Pode instalar uma configuração depois no menu de definições." + +#~ msgid "You chose not to install anything. Please press OK finish the install wizard." +#~ msgstr "Escolheu não instalar nada. Pressione 'OK' para terminar o assistente de instalação." + +#~ msgid "" +#~ "You need to set a PIN code and hide it from your children.\n" +#~ "\n" +#~ "Do you want to set the pin now?" +#~ msgstr "" +#~ "É necessário definir um código PIN e escondê-lo das crianças.\n" +#~ "\n" +#~ "Quer definir um PIN agora?" + +#~ msgid "Your email address:" +#~ msgstr "Seu endereço de e-mail:" + +#~ msgid "Your name (optional):" +#~ msgstr "Nome (opcional):" + +#~ msgid "Your receiver will shutdown due to inactivity." +#~ msgstr "O receptor será desligado por inatividade." + +#~ msgid "Your receiver will shutdown due to the sleeptimer." +#~ msgstr "O receptor será desligado pelo temporizador." + +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "Voltar ao canal anterior à busca de satélites?" + +#~ msgid "" +#~ "are you sure you want to restore\n" +#~ "following backup:\n" +#~ msgstr "" +#~ "deseja instalar\n" +#~ "arquivo guardado:\n" + +#~ msgid "could not be removed" +#~ msgstr "não foi possível remover" + +#~ msgid "dreambox advanced remote control (native)" +#~ msgstr "Controle remoto avançado de DreamBox (nativo)" + +#~ msgid "dreambox front panel" +#~ msgstr "Painel frontal do DreamBox" + +#~ msgid "dreambox ir keyboard" +#~ msgstr "Teclado IR de DreamBox" + +#~ msgid "dreambox ir mouse" +#~ msgstr "Mouse IR de DreamBox" + +#~ msgid "dreambox remote control (native)" +#~ msgstr "Controle de DreamBox (nativo)" + +#~ msgid "jump to listbegin" +#~ msgstr "saltar para o início da lista" + +#~ msgid "movie list" +#~ msgstr "lista de filmes" + +#~ msgid "open servicelist(down)" +#~ msgstr "abrir lista de canais (baixo)" + +#~ msgid "open servicelist(up)" +#~ msgstr "abrir lista de canais (cima)" + +#~ msgid "play from next mark or playlist entry" +#~ msgstr "Iniciar na próxima marca ou próxima entrada na lista de reprodução" + +#~ msgid "play from previous mark or playlist entry" +#~ msgstr "Iniciar marca anterior ou entrada anterior na lista de reprodução" + +#~ msgid "previous channel" +#~ msgstr "canal anterior" + +#~ msgid "scan done!" +#~ msgstr "busca completa!" + +#~ msgid "scan in progress - %d%% done!" +#~ msgstr "scan em progresso - %d%% pronto!" + +#~ msgid "select interface" +#~ msgstr "selecionar interface" + +#~ msgid "shutdown" +#~ msgstr "Desligar" + +#~ msgid "standby" +#~ msgstr "Espera/StandBy" + +#~ msgid "stop recording" +#~ msgstr "parar a gravação" + +#~ msgid "tuner is not supported" +#~ msgstr "Tuner não suportado" + +#~ msgid "view recordings..." +#~ msgstr "ver gravações..." + +#~ msgid "was removed successfully" +#~ msgstr "foi removido com sucesso" diff --git a/po/ro.po b/po/ro.po new file mode 100644 index 0000000..1c9e2a6 --- /dev/null +++ b/po/ro.po @@ -0,0 +1,8251 @@ +# Romanian translations for tuxbox-enigma package. +# Copyright (C) 2005 THE tuxbox-enigma'S COPYRIGHT HOLDER +# This file is distributed under the same license as the tuxbox-enigma package. +# Automatically generated, 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: tuxbox-enigma 0.0.1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2010-03-09 21:03+0100\n" +"Last-Translator: \n" +"Language-Team: HDTV ROMANIA(superonic,costel_mbc,neutrin,otheitis,cipy_1982,neutrin,runcanion)\n" +"Language: \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" + +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"Optiuni avansate si setarile" + +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"Dupa apasarea OK, va rog asteptati!" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" + +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"Editati pe adresa de upgrade." + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" + +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"Apasati Ok pe telecomanda pentru a continua." + +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"Restaurare backups dupa data." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" + +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" + +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Alege pe backup device. \n" +"Curent device: " + +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"Vezi,instalati si sa scoateti pachetele dinsponibile sau instalate" + +msgid " (PiP)" +msgstr "" + +msgid " (Radio)" +msgstr "" + +msgid " (TV)" +msgstr "" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +msgid " extensions." +msgstr "" + +msgid " ms" +msgstr "" + +msgid " packages selected." +msgstr "" + +msgid " updates available." +msgstr "" + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "" + +msgid "%A %d %B" +msgstr "" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "" + +msgid "%H:%M" +msgstr "" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "" + +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, fuzzy, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "%d servicii gasite!" +msgstr[1] "%d servicii gasite!" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" + +#, fuzzy, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d lucruri se executa in fundal!" +msgstr[1] "%d lucruri se executa in fundal!" + +#, python-format +msgid "%d min" +msgstr "" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d minutes" +msgstr "" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "" +msgstr[1] "" + +#, fuzzy, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "/var director" +msgstr[1] "/var director" + +#, fuzzy, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "Wireless Network" +msgstr[1] "Wireless Network" + +msgid "%d-%b-%Y %-H:%M" +msgstr "" + +msgid "%d-%m" +msgstr "" + +msgid "%d.%B %Y" +msgstr "" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "" + +#, fuzzy, python-format +msgid "%s %s free disk space" +msgstr "spatiu liber pe disk" + +#, python-format +msgid "%s (%s)\n" +msgstr "" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "" + +#, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%s%d min" +msgstr "" + +#, python-format +msgid "%s/%s: %s" +msgstr "" + +msgid "(ZAP)" +msgstr "" + +msgid "(empty)" +msgstr "(gol)" + +msgid "(show optional DVD audio menu)" +msgstr "(afiseaza optional pe DVD audio menu)" + +msgid "* Only available if more than one interface is active." +msgstr "* Disponibil doar in cazul in care mai mult de o interfata este activa." + +msgid "/s" +msgstr "" + +msgid "0" +msgstr "" + +msgid "1" +msgstr "" + +msgid "1.0" +msgstr "" + +msgid "1.1" +msgstr "" + +msgid "1.2" +msgstr "" + +msgid "12V output" +msgstr "" + +msgid "13 V" +msgstr "" + +msgid "16:10" +msgstr "" + +msgid "16:10 Letterbox" +msgstr "" + +msgid "16:10 PanScan" +msgstr "" + +msgid "16:9" +msgstr "" + +msgid "16:9 Letterbox" +msgstr "" + +msgid "16:9 always" +msgstr "16:9 mereu" + +msgid "18 V" +msgstr "" + +msgid "2" +msgstr "" + +msgid "23.976" +msgstr "" + +msgid "24" +msgstr "" + +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +msgid "3" +msgstr "" + +msgid "30" +msgstr "" + +msgid "3d mode" +msgstr "" + +msgid "4" +msgstr "" + +msgid "4:3" +msgstr "" + +msgid "4:3 Letterbox" +msgstr "" + +msgid "4:3 PanScan" +msgstr "" + +msgid "5" +msgstr "" + +msgid "6" +msgstr "" + +msgid "7" +msgstr "" + +msgid "8" +msgstr "" + +msgid "9" +msgstr "" + +#, python-format +msgid ": %s" +msgstr "" + +msgid "<Current movielist location>" +msgstr "" + +msgid "<Default movie location>" +msgstr "" + +msgid "<Last timer location>" +msgstr "" + +msgid "<unknown>" +msgstr "<necunoscut>" + +msgid "??" +msgstr "" + +msgid "A" +msgstr "" + +#, fuzzy, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"Un file de configuratia (%s) a fost modificat de la instalare.\n" +"Vrei sa tinem pe versiuna?" + +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"Un file de configuratia (%s) a fost modificat de la instalare.\n" +"Vrei sa tinem pe versiuna?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "Un EPG cu grafice pt toate servicii de la un buchet" + +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"O registrare a inceput:\n" +"%s" + +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"O registrare este acuma activa.\n" +"Ce doresti sa facem?" + +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "O registrare acuma este activa. Te rog opreste pe registrare inainte sa incerci Sa configurezi pe pozitioner." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "" + +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "O registrare acuma este activa. Te rog opreste pe registrare inainte sa incerci Sa pornesti pe satfinder." + +#, python-format +msgid "A required tool (%s) was not found." +msgstr "Un tool necesar (%s) nu a fost gasit." + +msgid "A search for available updates is currently in progress." +msgstr "" + +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +msgid "A small overview of the available icon states and actions." +msgstr "" + +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"Un timer a esuat sa registreze!\n" +"Dezactiveaza TV si incearca din nou?\n" + +#, fuzzy +msgid "A/V settings" +msgstr "Setarile A/V" + +msgid "AC3/DTS downmix" +msgstr "" + +msgid "Abort" +msgstr "" + +msgid "About" +msgstr "Despre" + +msgid "About..." +msgstr "Despre..." + +msgid "Accesspoint:" +msgstr "" + +msgid "Action on long powerbutton press" +msgstr "Actiune cind apasam prelungit butonul power" + +msgid "Action on short powerbutton press" +msgstr "" + +msgid "Activate Picture in Picture" +msgstr "Activeaza PIP" + +#, fuzzy +msgid "Activate current configuration" +msgstr "activeaza configurarea curenta" + +msgid "Activate network settings" +msgstr "Activeaza setari retea" + +#, fuzzy +msgid "Activate the configured network settings." +msgstr "Activeaza setari retea" + +msgid "Adapter settings" +msgstr "Adaptare setari" + +msgid "Add" +msgstr "Adauga" + +msgid "Add Bookmark" +msgstr "Adauga Bookmark" + +msgid "Add a mark" +msgstr "Adauga un mark" + +#, fuzzy +msgid "Add a nameserver entry" +msgstr "adauga intrare de nameserver" + +msgid "Add a new title" +msgstr "Adauga un nou titlu" + +#, fuzzy +msgid "Add bookmark" +msgstr "adauga bookmark" + +#, fuzzy +msgid "Add directory to playlist" +msgstr "adauga director la playlist" + +#, fuzzy +msgid "Add file to playlist" +msgstr "adauga file la playlist" + +#, fuzzy +msgid "Add files to playlist" +msgstr "adauga file-uri la playlist" + +msgid "Add more details to the crash log" +msgstr "" + +#, fuzzy +msgid "Add provider" +msgstr "adauga Provider" + +#, fuzzy +msgid "Add recording (enter recording duration)" +msgstr "adauga inregistrare (pune durata inregistrarii)" + +#, fuzzy +msgid "Add recording (enter recording endtime)" +msgstr "adauga inregistrare (pune sfarsitul inregistrarii)" + +#, fuzzy +msgid "Add recording (indefinitely)" +msgstr "adauga inregistrare (indefinit)" + +#, fuzzy +msgid "Add recording (stop after current event)" +msgstr "adauga inregistrare (opreste dupa evenimentul curent)" + +#, fuzzy +msgid "Add service" +msgstr "adauga Serviciu" + +msgid "Add timer" +msgstr "Adauga timer " + +msgid "Add title" +msgstr "adauga un titlu" + +msgid "Add to bouquet" +msgstr "Adauga la buchet" + +msgid "Add to favourites" +msgstr "Adauga la favorite " + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "" + +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "Ajustati setarile de culoare,astfel incat toate nuantele de culoare se distingDaca sunteti multumit de rezultat apasati Ok pentru a inchide video fine-tuning, sau foloseste pe tastele numerice pentru a selecta altetestarea screens." + +msgid "Advanced" +msgstr "" + +#, fuzzy +msgid "Advanced options" +msgstr "Optiuni avansate" + +msgid "Advanced restore" +msgstr "Restaurare avansata" + +#, fuzzy +msgid "Advanced software" +msgstr "Restaurare avansata" + +#, fuzzy +msgid "Advanced software plugin" +msgstr "Restaurare avansata" + +#, fuzzy +msgid "Advanced video enhancement setup" +msgstr "Setarile video avansate" + +#, fuzzy +msgid "Advanced video setup" +msgstr "Setarile video avansate" + +msgid "After event" +msgstr "Dupa eventul" + +msgid "Album" +msgstr "Album" + +msgid "Alignment of events" +msgstr "" + +msgid "Alignment of service names" +msgstr "" + +msgid "All" +msgstr "Toate" + +msgid "All ages" +msgstr "" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "" + +msgid "Allocate unused memory index" +msgstr "" + +msgid "Allow quit movieplayer with exit" +msgstr "" + +msgid "Allow subtitle language to equal audio language" +msgstr "" + +msgid "Allow subtitles for hearing impaired" +msgstr "" + +msgid "Alpha" +msgstr "Alpha" + +#, fuzzy +msgid "Alternative" +msgstr "adauga alternative" + +#, fuzzy +msgid "Alternative numbering mode" +msgstr "Modul radio alternativ" + +msgid "Alternative services tuner priority" +msgstr "Prioritate tuner servicii alternative" + +msgid "Always ask" +msgstr "" + +msgid "Always hide infobar" +msgstr "" + +msgid "An empty filename is illegal." +msgstr "Este illegal un gol filename." + +#, fuzzy +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "A intervenit o eroare in timpul descarcarii listei. Va rugam incercati din nou." + +msgid "An unknown error occurred!" +msgstr "S-a produs o eroare necunoscuta!" + +msgid "And will put your receiver in standby over " +msgstr "" + +msgid "Any activity" +msgstr "" + +msgid "Arabic" +msgstr "Arabic" + +msgid "Are you sure to remove this entry?" +msgstr "" + +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"Esti sigur ca vrei sa activezi asta configuratia de retea?\n" +"\n" + +#, fuzzy +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"Esti sigur ca vrei sa stergi\n" +"urmarire backup:\n" + +msgid "Are you sure you want to exit this wizard?" +msgstr "" + +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"Esti sigur vrei sa restartezi interfata retelei?\n" +"\n" + +#, fuzzy, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Esti sigur ca vrei sa restaurezi backup-ul Enigma2?\n" +"Enigma2 va reporni dupa restaurare" + +#, fuzzy +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Esti sigur ca vrei sa restaurezi backup-ul Enigma2?\n" +"Enigma2 va reporni dupa restaurare" + +msgid "Artist" +msgstr "Artist" + +msgid "Arts/Culture" +msgstr "" + +msgid "Ask user" +msgstr "Intreaba pe user" + +#, fuzzy +msgid "Aspect ratio" +msgstr "Aspect Ratio" + +msgid "Assigned CAIds:" +msgstr "" + +msgid "Assigned services/provider:" +msgstr "" + +#, fuzzy +msgid "At beginning" +msgstr "Incepe de la capat" + +msgid "At end" +msgstr "" + +msgid "Audio" +msgstr "Audio" + +msgid "Audio PID" +msgstr "" + +msgid "Audio language selection 1" +msgstr "" + +msgid "Audio language selection 2" +msgstr "" + +msgid "Audio language selection 3" +msgstr "" + +msgid "Audio language selection 4" +msgstr "" + +#, fuzzy +msgid "Audio options..." +msgstr "Optiune de audio..." + +#, fuzzy, python-format +msgid "Audio track (%s) format" +msgstr "track audio (%s) format" + +#, fuzzy, python-format +msgid "Audio track (%s) language" +msgstr "track audio (%s) limba" + +msgid "Author: " +msgstr "Autor: " + +msgid "Authoring mode" +msgstr "Mod de authoring" + +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Auto" + +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Auto chapter se imparte la fiecare ? minute (0=niciodate)" + +msgid "Auto flesh" +msgstr "" + +msgid "Auto focus" +msgstr "" + +msgid "Auto focus commencing ..." +msgstr "" + +msgid "Auto language selection" +msgstr "" + +msgid "Auto scart switching" +msgstr "Auto scart switching" + +msgid "Automatic" +msgstr "Automat" + +#, fuzzy +msgid "Automatic scan" +msgstr "Scanare automata" + +msgid "Automatically start timeshift after" +msgstr "" + +msgid "Automatically turn on external subtitles" +msgstr "" + +msgid "Available format variables" +msgstr "Disponibile formate viariaza" + +msgid "B" +msgstr "B" + +msgid "BER" +msgstr "BER" + +msgid "BER:" +msgstr "BER:" + +msgid "Back" +msgstr "Inapoi" + +msgid "Background" +msgstr "Fond" + +#, fuzzy +msgid "Background color" +msgstr "colorit fundal" + +msgid "Background delete option" +msgstr "" + +msgid "Background delete speed" +msgstr "" + +#, fuzzy +msgid "Backup completed." +msgstr "Backup esuat." + +msgid "Backup failed." +msgstr "Backup esuat." + +msgid "Backup is running..." +msgstr "" + +msgid "Backup system settings" +msgstr "Copie de siguranta a setarilor de sistem" + +msgid "Band" +msgstr "Banda" + +msgid "Bandwidth" +msgstr "Latime de banda" + +msgid "Basque" +msgstr "" + +msgid "Begin time" +msgstr "Momentul inceperii" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +msgid "Behavior of 0 key in PiP-mode" +msgstr "Efectul butonului 0 in modul PiP (imagine in imagine)" + +msgid "Behavior when a movie is started" +msgstr "Cand un film este pornit" + +msgid "Behavior when a movie is stopped" +msgstr "Cand un film este oprit" + +msgid "Behavior when a movie reaches the end" +msgstr "Cand un film ajunge la final" + +msgid "Big PiP" +msgstr "" + +msgid "Bitrate:" +msgstr "" + +msgid "Black screen" +msgstr "" + +msgid "Black screen till locked" +msgstr "" + +msgid "Block noise reduction" +msgstr "" + +msgid "Blue boost" +msgstr "" + +msgid "Bookmarks" +msgstr "Semne de carte" + +msgid "Brightness" +msgstr "Luminozitate" + +msgid "Bulgarian" +msgstr "" + +msgid "Burn DVD" +msgstr "Scrie DVD" + +#, fuzzy, python-format +msgid "Burn audio track (%s)" +msgstr "burn track audio (%s)" + +msgid "Burn existing image to DVD" +msgstr "Scrie imaginea existenta pe DVD" + +msgid "Burn to DVD" +msgstr "" + +msgid "Bus: " +msgstr "Magistrala: " + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "" + +msgid "C" +msgstr "C" + +msgid "C-Band" +msgstr "Banda C" + +msgid "CH" +msgstr "" + +msgid "CI assignment" +msgstr "Asignarea CI" + +msgid "CVBS" +msgstr "CVBS" + +msgid "Cable" +msgstr "Cablu" + +msgid "Cable Scan" +msgstr "" + +#, fuzzy +msgid "Cache thumbnails" +msgstr "Memoreaza miniaturile imaginilor" + +msgid "Calculate" +msgstr "" + +msgid "Calculate all positions" +msgstr "" + +msgid "Calculation complete" +msgstr "" + +msgid "Calibrate" +msgstr "" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "" + +msgid "Cancel" +msgstr "Anuleaza" + +msgid "Cannot determine" +msgstr "" + +msgid "Cannot find any signal ..., aborting !" +msgstr "" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "" + +msgid "Cannot move to trash can" +msgstr "" + +msgid "Capacity: " +msgstr "Capacitate: " + +msgid "Card" +msgstr "Card" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "" + +msgid "Center time-labels and remove date" +msgstr "" + +msgid "Change bouquets in quickzap" +msgstr "Permite schimbarea buchetului prin zapping" + +msgid "Change pin code" +msgstr "Schimba codul pin" + +#, fuzzy +msgid "Change recording (duration)" +msgstr "schimba inregistrare (durata)" + +#, fuzzy +msgid "Change recording (endtime)" +msgstr "schimbare inregistrare (sfarsit)" + +msgid "Change repeat and delay settings?" +msgstr "" + +msgid "Change service PIN" +msgstr "" + +msgid "Change service PINs" +msgstr "" + +msgid "Change setup PIN" +msgstr "" + +msgid "Change step size" +msgstr "" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "" + +msgid "Channel" +msgstr "Canal" + +#, fuzzy +msgid "Channel list type" +msgstr "Meniul lista de canale" + +msgid "Channel not in services list" +msgstr "Canalul nu se gaseste in lista de servicii" + +#, fuzzy +msgid "Channel selection" +msgstr "Selectie canal" + +msgid "Channel:" +msgstr "Canal:" + +msgid "Channellist menu" +msgstr "Meniul lista de canale" + +msgid "Chap." +msgstr "Cap." + +msgid "Chapter" +msgstr "Capitol" + +msgid "Chapter:" +msgstr "Capitolul:" + +msgid "Check" +msgstr "Verifica" + +msgid "Check the internet connection" +msgstr "" + +msgid "Check the internet connection again" +msgstr "" + +#, fuzzy +msgid "Checking filesystem..." +msgstr "Se verifica sistemul de fisiere..." + +msgid "Checking the internet connection" +msgstr "" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" + +msgid "Children/Youth" +msgstr "" + +msgid "Choose which tuner to configure." +msgstr "" + +msgid "Circular left" +msgstr "Circular stang" + +msgid "Circular right" +msgstr "Circular drept" + +msgid "Cleanup" +msgstr "Curatenie" + +msgid "Clear" +msgstr "" + +msgid "Clear before scan" +msgstr "Goleste lista inainte de scanare" + +msgid "Clear fixed" +msgstr "" + +msgid "Clear log" +msgstr "Sterge logul" + +#, fuzzy +msgid "Clear playlist" +msgstr "sterge playlist" + +msgid "Close" +msgstr "Inchide" + +msgid "Close PiP on exit" +msgstr "" + +msgid "Close title selection" +msgstr "" + +msgid "Code rate HP" +msgstr "" + +msgid "Code rate LP" +msgstr "" + +msgid "Coderate HP" +msgstr "Rata de codificare HP" + +msgid "Coderate LP" +msgstr "Rata de codificare LP" + +msgid "Collection name" +msgstr "Nume colectie" + +msgid "Collection settings" +msgstr "Setari colectie" + +#, fuzzy +msgid "Color format" +msgstr "Format color" + +msgid "Command execution..." +msgstr "Executia comenzii..." + +msgid "Command order" +msgstr "Ordinea comenzilor" + +msgid "Common Interface" +msgstr "Common Interface" + +#, fuzzy +msgid "Common Interface assignment" +msgstr "Atribuirea pentru Common Interface" + +msgid "Communication" +msgstr "Comunicare" + +#, fuzzy +msgid "Compact flash" +msgstr "Compact Flash" + +msgid "Complete" +msgstr "Incheiat" + +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "Complex (permite orice combinatie de canale audio si aspecte)" + +msgid "Composition of the recording filenames" +msgstr "" + +#, fuzzy +msgid "Configuration mode" +msgstr "Mod configurare" + +#, fuzzy, python-format +msgid "Configuration mode: %s" +msgstr "Mod configurare" + +#, fuzzy +msgid "Configuration..." +msgstr "Configurare retea..." + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "" + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "" + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "" + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "" + +msgid "Configure how recording filenames are constructed." +msgstr "" + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +msgid "Configure interface" +msgstr "" + +msgid "Configure nameservers" +msgstr "" + +msgid "Configure on which devices the background delete option should be used." +msgstr "" + +#, fuzzy +msgid "Configure remote control type" +msgstr "Tip control parental" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "" + +msgid "Configure the IP address." +msgstr "" + +msgid "Configure the aspect ratio of the screen." +msgstr "" + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +#, fuzzy +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "Cand un film este oprit" + +#, fuzzy +msgid "Configure the behavior when movie playback is started." +msgstr "Cand un film este pornit" + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "" + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "" + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "" + +msgid "Configure the brightness level of the front panel display." +msgstr "" + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "" + +msgid "Configure the color of the teletext subtitles." +msgstr "" + +msgid "Configure the contrast level of the front panel display." +msgstr "" + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "" + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "" + +msgid "Configure the first audio language (highest priority)." +msgstr "" + +msgid "Configure the first subtitle language (highest priority)." +msgstr "" + +msgid "Configure the font size of the subtitles." +msgstr "" + +msgid "Configure the fourth audio language." +msgstr "" + +#, fuzzy +msgid "Configure the fourth subtitle language." +msgstr "mergi la urmatoarea limba pentru subtitrari" + +msgid "Configure the function of a long press on the power button." +msgstr "" + +msgid "Configure the function of a short press on the power button." +msgstr "" + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "" + +msgid "Configure the gateway." +msgstr "" + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "" + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "" + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "" + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "" + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "" + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "" + +msgid "Configure the latitude of your location." +msgstr "" + +msgid "Configure the longitude of your location." +msgstr "" + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "" + +msgid "Configure the nameserver (DNS)." +msgstr "" + +msgid "Configure the netmask." +msgstr "" + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "" + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "" + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "" + +msgid "Configure the possible fast forward speeds." +msgstr "" + +msgid "Configure the possible rewind speeds." +msgstr "" + +msgid "Configure the primary EPG language." +msgstr "" + +msgid "Configure the refresh rate of the screen." +msgstr "" + +msgid "Configure the screen resolution in PC output mode." +msgstr "" + +msgid "Configure the second audio language." +msgstr "" + +#, fuzzy +msgid "Configure the second subtitle language." +msgstr "mergi la urmatoarea limba pentru subtitrari" + +msgid "Configure the secondary EPG language." +msgstr "" + +msgid "Configure the sharpness of the video scaling." +msgstr "" + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "" + +#, fuzzy +msgid "Configure the slow motion speeds." +msgstr "Viteza imagine cu incetinitorul" + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "" + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "" + +msgid "Configure the third audio language." +msgstr "" + +#, fuzzy +msgid "Configure the third subtitle language." +msgstr "mergi la urmatoarea limba pentru subtitrari" + +msgid "Configure the transparency of the OSD." +msgstr "" + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "" + +#, fuzzy +msgid "Configure the tuner mode." +msgstr "Mod configurare" + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "" + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "" + +msgid "Configure the video output mode (or resolution)." +msgstr "" + +msgid "Configure the way in which the receiver changes channels." +msgstr "" + +msgid "Configure where completed timers show up in the timer list." +msgstr "" + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "" + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "" + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "" + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "" + +msgid "Configure which color format should be used on the SCART output." +msgstr "" + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "" + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "" + +msgid "Configure your internal LAN" +msgstr "" + +msgid "Configure your network again" +msgstr "" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "" + +msgid "Configure your wireless LAN again" +msgstr "" + +msgid "Configures which video output connector will be used." +msgstr "" + +msgid "Configuring" +msgstr "Se configureaza" + +msgid "Conflicting timer" +msgstr "Programare aflata in conflict" + +msgid "Connect" +msgstr "" + +#, fuzzy +msgid "Connect to a wireless network" +msgstr "Scanare retele wireless" + +msgid "Connected satellites" +msgstr "" + +msgid "Connected to" +msgstr "Conectat la" + +msgid "Connected!" +msgstr "" + +msgid "Constellation" +msgstr "Constelatie" + +msgid "Content does not fit on DVD!" +msgstr "Continutul este in cantitate prea mare pentru un DVD!" + +msgid "Continue" +msgstr "" + +msgid "Continue in background" +msgstr "Continua in fundal" + +#, fuzzy +msgid "Continue playback" +msgstr "Continua redarea" + +msgid "Continue playing" +msgstr "Continua redarea" + +msgid "Continues play (loop)" +msgstr "" + +msgid "Contrast" +msgstr "Contrast" + +msgid "Convert ext3 filesystem to ext4" +msgstr "" + +msgid "Convert ext3 to ext4" +msgstr "" + +msgid "Converting ext3 to ext4..." +msgstr "" + +msgid "Copy" +msgstr "" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "" + +msgid "Could not find installed channel list." +msgstr "" + +#, fuzzy +msgid "Could not load medium! No disc inserted?" +msgstr "Nu s-a putut incarca! E vreun disc introdus?" + +msgid "Could not open Picture in Picture" +msgstr "" + +#, fuzzy, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "Nu s-a putut porni inregistrarea din cauza programarii %s aflate in conflict" + +#, fuzzy, python-format +msgid "Could not record due to invalid service %s" +msgstr "Nu s-a putut porni inregistrarea din cauza programarii %s aflate in conflict" + +msgid "Create DVD-ISO" +msgstr "Creeaza DVD-ISO" + +msgid "Create more detailed crash log" +msgstr "" + +#, python-format +msgid "Creating directory %s failed." +msgstr "Crearea directorului %s a esuat" + +#, fuzzy +msgid "Creating filesystem" +msgstr "Se verifica sistemul de fisiere..." + +msgid "Creating partition" +msgstr "" + +msgid "Croatian" +msgstr "Croata" + +msgid "Current CEC address" +msgstr "" + +msgid "Current device: " +msgstr "" + +msgid "Current event EPG" +msgstr "" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +msgid "Current settings:" +msgstr "Setarile curente:" + +#, fuzzy +msgid "Current transponder" +msgstr "Transponderul curent" + +msgid "Current value: " +msgstr "" + +msgid "Current version:" +msgstr "Versiunea curenta:" + +msgid "Currently installed image" +msgstr "" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +#, fuzzy +msgid "Custom skip time for '1'/'3' buttons" +msgstr "Butoanele '1'/'3' produc saltul cu" + +#, fuzzy +msgid "Custom skip time for '4'/'6' buttons" +msgstr "Butoanele '4'/'6' produc saltul cu" + +#, fuzzy +msgid "Custom skip time for '7'/'9' buttons" +msgstr "Butoanele '7'/'9' produc saltul cu" + +msgid "Customize" +msgstr "Personalizare" + +msgid "Customize channel list cursor behavior" +msgstr "" + +msgid "Cut" +msgstr "Taie" + +msgid "Cutlist editor..." +msgstr "Editor montaj..." + +msgid "Czech" +msgstr "Ceha" + +msgid "D" +msgstr "D" + +msgid "DHCP" +msgstr "DHCP" + +#, fuzzy +msgid "DMM advanced" +msgstr "avansat" + +msgid "DMM normal" +msgstr "" + +msgid "DUAL LAYER DVD" +msgstr "" + +msgid "DVB subtitle black transparency" +msgstr "" + +msgid "DVB-C" +msgstr "" + +msgid "DVB-C ANNEX C" +msgstr "" + +msgid "DVB-S" +msgstr "DVB-S" + +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "" + +msgid "DVB-T2" +msgstr "" + +msgid "DVD data format" +msgstr "" + +#, fuzzy +msgid "DVD file browser" +msgstr "Browser-ul plugin" + +msgid "DVD media toolbox" +msgstr "Instrumente DVD" + +#, fuzzy +msgid "DVD player" +msgstr "Player DVD" + +#, fuzzy +msgid "DVD titlelist" +msgstr "lista alba" + +msgid "Danish" +msgstr "Daneza" + +msgid "Date" +msgstr "Data" + +#, fuzzy +msgid "Date/time input" +msgstr "Intrare Ora/Data" + +#, fuzzy +msgid "Deep standby" +msgstr "Oprire completa" + +msgid "Default" +msgstr "" + +msgid "Default movie location" +msgstr "" + +#, fuzzy +msgid "Default settings" +msgstr "Setari implicite" + +msgid "Delay before key repeat starts:" +msgstr "" + +msgid "Delay for external subtitles" +msgstr "" + +msgid "Delete" +msgstr "Sterge" + +msgid "Delete entry" +msgstr "Sterge articol" + +msgid "Delete failed!" +msgstr "Stergere esuata!" + +#, fuzzy +msgid "Delete file" +msgstr "sterge file" + +#, fuzzy +msgid "Delete playlist entry" +msgstr "sterge intrare playlist" + +#, fuzzy +msgid "Delete saved playlist" +msgstr "sterge playlist salvat" + +msgid "Delete timer" +msgstr "" + +#, fuzzy +msgid "Delete..." +msgstr "sterge..." + +msgid "Deleted" +msgstr "" + +msgid "Deleted items" +msgstr "" + +msgid "Depth" +msgstr "" + +msgid "Descramble http streams" +msgstr "" + +msgid "Description" +msgstr "Descriere" + +msgid "Deselect" +msgstr "Deselectare" + +msgid "Details for plugin: " +msgstr "" + +msgid "Detected HDD:" +msgstr "HDD detectat:" + +msgid "Detected NIMs:" +msgstr "NIMuri detectate:" + +msgid "Devicename:" +msgstr "" + +msgid "Devide" +msgstr "" + +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +msgid "DiSEqC mode" +msgstr "Mod DiSEqC" + +#, fuzzy, python-format +msgid "DiSEqC port %s: %s" +msgstr "DiSEqC in cascada" + +#, fuzzy +msgid "DiSEqC-tester settings" +msgstr "Test setari DiSEqC" + +msgid "Dialing:" +msgstr "" + +msgid "Digital contour removal" +msgstr "" + +msgid "Direct playback of linked titles without menu" +msgstr "Redare directa a titlurilor fara meniu" + +msgid "Directory" +msgstr "" + +#, fuzzy, python-format +msgid "Directory %s does not exist." +msgstr "Directorul %s nu exista." + +#, python-format +msgid "Directory %s nonexistent." +msgstr "" + +msgid "Directory browser" +msgstr "" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "" + +#, fuzzy, python-format +msgid "Directory contains %s and %s." +msgstr "Directorul %s nu exista." + +msgid "Disable" +msgstr "Dezactivare" + +msgid "Disable Picture in Picture" +msgstr "Dezactiveaza PiP (Imagine in Imagine)" + +msgid "Disable background scanning" +msgstr "" + +msgid "Disable timer" +msgstr "" + +msgid "Disabled" +msgstr "Dezactivat" + +msgid "Disconnect" +msgstr "" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "" + +msgid "Display 16:9 content as" +msgstr "Afiseaza continutul format 16:9 ca" + +msgid "Display 4:3 content as" +msgstr "Afiseaza continutul format 4:3 ca" + +msgid "Display >16:9 content as" +msgstr "Afiseaza continutul format >16:9 ca" + +#, fuzzy +msgid "Display and userinterface" +msgstr "Afisaj si interfata utilizator" + +msgid "Display message before playing next movie" +msgstr "" + +#, fuzzy +msgid "Display setup" +msgstr "Configurare afisaj" + +#, fuzzy +msgid "Do not change" +msgstr "nu schimba" + +#, fuzzy +msgid "Do not record" +msgstr "nu inregistra" + +#, fuzzy +msgid "Do nothing" +msgstr "nu face nimic" + +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Confirmati verificarea sistemului de fisiere?\n" +"Aceasta operatiune ar putea dura foarte mult" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" + +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Confirmati stergerea %s?" + +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"Confirmati descarcarea\n" +"pluginului \"%s\"?" + +msgid "Do you really want to exit?" +msgstr "" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" + +#, fuzzy, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"Confirmati descarcarea\n" +"pluginului \"%s\"?" + +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Confirmati stergerea directorului %s de pe disc?" + +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Confirmati stergerea semnului de carte %s?" + +msgid "Do you want this?" +msgstr "" + +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Doriti scrierea acestei colectii pe discul DVD?" + +msgid "Do you want to do a service scan?" +msgstr "Doriti efectuarea unei scanari a serviciilor?" + +msgid "Do you want to do another manual service scan?" +msgstr "Doriti efectuarea unei alte operatiuni de scanare manuala?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "" + +#, fuzzy +msgid "Do you want to install a channel list?" +msgstr "Doriti sa instalati pachetul:\n" + +msgid "Do you want to install the package:\n" +msgstr "Doriti sa instalati pachetul:\n" + +msgid "Do you want to play DVD in drive?" +msgstr "Doriti redarea DVD-ului introdus?" + +msgid "Do you want to preview this DVD before burning?" +msgstr "Doriti sa previzualizati acest DVD inainte de a fi scris?" + +msgid "Do you want to reboot your receiver?" +msgstr "" + +msgid "Do you want to remove the package:\n" +msgstr "Doriti sa stergeti pachetul:\n" + +msgid "Do you want to restore your settings?" +msgstr "Doriti restaurarea setarilor dvs?" + +msgid "Do you want to resume this playback?" +msgstr "Doriti continuarea redarii acestei inregistrari?" + +#, fuzzy, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Doriti restaurarea setarilor dvs?" + +msgid "Do you want to update your receiver?" +msgstr "" + +msgid "Do you want to upgrade the package:\n" +msgstr "Doriti actualizarea pachetului:\n" + +msgid "Don't stop current event but disable coming events" +msgstr "Nu opri evenimentul curent dar anuleaza evenimentele urmatoare" + +#, fuzzy, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "S-a finalizat instalarea, actualizarea sau stergerea a %d pachete cu %d erori" +msgstr[1] "S-a finalizat instalarea, actualizarea sau stergerea a %d pachete cu %d erori" + +msgid "Download" +msgstr "Descarcare" + +#, python-format +msgid "Download %s from server" +msgstr "" + +msgid "Download .NFI-files for USB-flasher" +msgstr "Descarca fisiere .NFI pentru USB-Flasher" + +#, fuzzy +msgid "Download plugins" +msgstr "Descarca Pluginuri" + +msgid "Downloadable new plugins" +msgstr "Noi Pluginuri disponibile la descarcare" + +msgid "Downloadable plugins" +msgstr "Pluginuri disponibile pentru descarcare" + +msgid "Downloading" +msgstr "Se descarca" + +msgid "Downloading plugin information. Please wait..." +msgstr "Se descarca informatiile Pluginului. Va rog sa asteptati..." + +msgid "Dutch" +msgstr "Olandeza" + +msgid "Dynamic contrast" +msgstr "" + +msgid "E" +msgstr "E" + +msgid "EPG" +msgstr "" + +msgid "EPG language selection 1" +msgstr "" + +msgid "EPG language selection 2" +msgstr "" + +#, fuzzy +msgid "EPG selection" +msgstr "Selectie EPG" + +msgid "EPG settings" +msgstr "" + +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "EROARE - scanare esuata (%s)!" + +msgid "East" +msgstr "Est" + +msgid "East limit set" +msgstr "" + +msgid "Edit" +msgstr "Editare" + +msgid "Edit DNS" +msgstr "Editare DNS" + +msgid "Edit bouquets list" +msgstr "" + +msgid "Edit chapters of current title" +msgstr "Editarea capitolelor titlului curent" + +msgid "Edit services list" +msgstr "Editare lista de servicii" + +msgid "Edit settings" +msgstr "Editare setari" + +#, fuzzy +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "iesire configurare nameserver" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "" + +msgid "Edit timer" +msgstr "" + +msgid "Edit title" +msgstr "Editare titlu" + +msgid "Edit upgrade source url." +msgstr "" + +msgid "Education/Science/..." +msgstr "" + +msgid "Electronic Program Guide" +msgstr "Ghid Electronic de Programe (EPG)" + +msgid "Enable" +msgstr "Activeaza" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +msgid "Enable 5V for active antenna" +msgstr "Activeaza 5V pentru antena activa" + +msgid "Enable EIT EPG" +msgstr "" + +msgid "Enable MHW EPG" +msgstr "" + +msgid "Enable Netmed EPG" +msgstr "" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +#, fuzzy +msgid "Enable bouquet selection in multi-EPG" +msgstr "activeaza editare bouquet" + +msgid "Enable freesat EPG" +msgstr "" + +msgid "Enable multiple bouquets" +msgstr "Activeaza buchete multiple" + +msgid "Enable parental control" +msgstr "Activeaza controlul parental" + +msgid "Enable teletext caching" +msgstr "" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +msgid "Enabled" +msgstr "Activat" + +msgid "Encrypted: " +msgstr "" + +msgid "Encryption" +msgstr "Criptare" + +#, fuzzy +msgid "Encryption key" +msgstr "Cheie de criptare" + +#, fuzzy +msgid "Encryption key type" +msgstr "Tipul cheii de criptare" + +msgid "Encryption:" +msgstr "" + +msgid "End time" +msgstr "Momentul incheierii" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +msgid "English" +msgstr "Engleza" + +#, fuzzy +msgid "Enigma2 skin selector" +msgstr "enigma2 si retea" + +msgid "Enter main menu..." +msgstr "Intrati in meniul principal..." + +msgid "Enter pin code" +msgstr "" + +msgid "Enter the service pin" +msgstr "Introduceti pinul serviciului" + +msgid "Equal to" +msgstr "" + +msgid "Error" +msgstr "Eroare" + +msgid "Error code" +msgstr "" + +msgid "Error executing plugin" +msgstr "Eroare la executia pluginului" + +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Eroare: %s\n" +"Mai incerc o data?" + +msgid "Estonian" +msgstr "" + +msgid "Ethernet network interface" +msgstr "" + +msgid "Event font size (relative to skin size)" +msgstr "" + +#, fuzzy +msgid "Event view" +msgstr "Detalii eveniment" + +#, fuzzy +msgid "Event view menu" +msgstr "Detalii eveniment" + +msgid "Everywhere" +msgstr "" + +msgid "Exceeds dual layer medium!" +msgstr "" + +msgid "Execution finished!!" +msgstr "Executie finalizata!!" + +#, fuzzy +msgid "Execution progress:" +msgstr "Rezumat progres:" + +msgid "Exif" +msgstr "Exif" + +msgid "Exit" +msgstr "Iesire" + +msgid "Exit EPG" +msgstr "" + +msgid "Exit editor" +msgstr "Iesire din editor" + +msgid "Exit input device selection." +msgstr "" + +msgid "Exit media player?" +msgstr "" + +#, fuzzy +msgid "Exit mediaplayer" +msgstr "iesire mediaplayer" + +#, fuzzy +msgid "Exit movie list" +msgstr "iesire lista filme" + +#, fuzzy +msgid "Exit movie player?" +msgstr "iesire mediaplayer" + +#, fuzzy +msgid "Exit nameserver configuration" +msgstr "iesire configurare nameserver" + +#, fuzzy +msgid "Exit network interface list" +msgstr "iesire interfata retea" + +msgid "Exit network wizard" +msgstr "" + +msgid "Exit the wizard" +msgstr "Iesi din ajutorul de configurare" + +msgid "Expert" +msgstr "Expert" + +msgid "Extend sleeptimer 15 minutes" +msgstr "" + +msgid "Extended Software" +msgstr "" + +msgid "Extended Software Plugin" +msgstr "" + +#, fuzzy +msgid "Extended network setup plugin..." +msgstr "Plugin pentru setari de retea extinse..." + +#, fuzzy +msgid "Extended setup..." +msgstr "Setari extinse..." + +msgid "Extensions" +msgstr "Extensii" + +msgid "Extensions management" +msgstr "" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "" + +msgid "Extra motor options" +msgstr "" + +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "" + +msgid "Factory reset" +msgstr "Restaurare setari de fabrica" + +msgid "Failed" +msgstr "Esuat" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "" + +#, python-format +msgid "Fan %d" +msgstr "" + +#, python-format +msgid "Fan %d PWM" +msgstr "" + +#, fuzzy, python-format +msgid "Fan %d voltage" +msgstr "Voltaj marit" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +msgid "Fast" +msgstr "Rapid" + +msgid "Fast DiSEqC" +msgstr "DiSEqC rapid" + +msgid "Fast Scan" +msgstr "" + +msgid "Fast epoch" +msgstr "Epoch rapid" + +#, fuzzy +msgid "Fast forward speeds" +msgstr "Vitezele pentru Repede Inainte" + +msgid "Favourites" +msgstr "Favorite" + +msgid "File appears to be busy.\n" +msgstr "" + +msgid "Filesystem check" +msgstr "" + +msgid "Final position at" +msgstr "" + +msgid "Final position at index" +msgstr "" + +msgid "Fine movement" +msgstr "" + +msgid "Finetune" +msgstr "Reglaj fin" + +msgid "Finished" +msgstr "Finalizat" + +msgid "Finished configuring your network" +msgstr "S-a finalizat configurarea retelei dvs" + +msgid "Finished restarting your network" +msgstr "Reteaua dvs a fost repornita" + +msgid "Finnish" +msgstr "Finlandeza" + +msgid "Fixed" +msgstr "" + +msgid "Flash" +msgstr "Flash" + +msgid "Flashing failed" +msgstr "Operatia de flash a esuat" + +msgid "Following tasks will be done after you press OK!" +msgstr "" + +msgid "Format" +msgstr "Formatare" + +msgid "Forward volume keys" +msgstr "" + +msgid "Frame size in full view" +msgstr "Dimensiunea cadrului la vizualizarea completa" + +msgid "French" +msgstr "Franceza" + +msgid "Frequency" +msgstr "Frecventa" + +msgid "Frequency bands" +msgstr "Benzi de frecventa" + +msgid "Frequency scan step size(khz)" +msgstr "Marimea pasului de frecventa(khz)" + +msgid "Frequency steps" +msgstr "Pasi de frecventa" + +msgid "Frequency:" +msgstr "" + +msgid "Fri" +msgstr "Vin" + +msgid "Friday" +msgstr "Vineri" + +msgid "From :" +msgstr "" + +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Versiune frontprocesor: %d" + +msgid "Full transparency" +msgstr "" + +msgid "Fulview resulution" +msgstr "" + +msgid "Function of OK button" +msgstr "" + +msgid "Further Options" +msgstr "" + +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "Interfata grafica necesita repornirea pentru aplicarea noilor decoratiuniDoriti repornirea interfetei grafice acum?" + +msgid "Gateway" +msgstr "Gateway" + +#, fuzzy +msgid "General AC3 delay" +msgstr "Intarziere AC3 generala" + +#, fuzzy +msgid "General PCM delay" +msgstr "Intarziere PCM generala" + +msgid "Genre" +msgstr "Gen" + +msgid "German" +msgstr "Germana" + +msgid "Get latest experimental image" +msgstr "" + +msgid "Get latest release image" +msgstr "" + +msgid "Getting plugin information. Please wait..." +msgstr "Se descarca informatiile despre plugin. Va rog sa asteptati..." + +msgid "Go down the list" +msgstr "" + +msgid "Go to first movie or last item" +msgstr "" + +msgid "Go to first movie or top of list" +msgstr "" + +#, fuzzy +msgid "Go to first service" +msgstr "muta sus la prima intrare" + +#, fuzzy +msgid "Go to last service" +msgstr "Servicii de protectie" + +#, fuzzy +msgid "Go to next event" +msgstr "muta jos la urmatoarea intrare" + +#, fuzzy +msgid "Go to next page of service" +msgstr "Schimba la urmatorul subserviciu" + +#, fuzzy +msgid "Go to previous event" +msgstr "muta sus la anterioara intrare" + +#, fuzzy +msgid "Go to previous page of service" +msgstr "Revenire la serviciul anterior" + +msgid "Go up the list" +msgstr "" + +msgid "Goto" +msgstr "" + +msgid "Goto 0" +msgstr "Goto 0" + +msgid "Goto :" +msgstr "" + +msgid "Goto X" +msgstr "" + +msgid "Goto index position" +msgstr "" + +msgid "Goto next day of events" +msgstr "" + +msgid "Goto next page of events" +msgstr "" + +msgid "Goto position" +msgstr "Goto pozitie" + +msgid "Goto previous day of events" +msgstr "" + +msgid "Goto previous page of events" +msgstr "" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "" + +msgid "GraphMultiEpg Settings" +msgstr "" + +msgid "Graphical Multi EPG" +msgstr "Multi-EPG grafic" + +msgid "Greek" +msgstr "Greaca" + +msgid "Green boost" +msgstr "" + +msgid "Guard interval" +msgstr "" + +msgid "HD list" +msgstr "" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "" + +msgid "Handle wakeup from TV" +msgstr "" + +#, fuzzy +msgid "Hard disk" +msgstr "Hard disc" + +#, fuzzy +msgid "Hard disk setup" +msgstr "Configurare hard disc" + +#, fuzzy +msgid "Hard disk standby after" +msgstr "Comuta hard discul in standby dupa" + +msgid "Harddisk" +msgstr "Hard disc" + +msgid "Hardware: " +msgstr "" + +msgid "Hebrew" +msgstr "" + +msgid "Helps setting up your dish" +msgstr "" + +msgid "Hidden network" +msgstr "" + +msgid "Hide CI messages" +msgstr "" + +msgid "Hide channel list in radio mode" +msgstr "" + +msgid "Hide known extensions" +msgstr "" + +msgid "Hide number markers" +msgstr "" + +#, fuzzy +msgid "Hide player" +msgstr "ascunde player" + +msgid "Hide zap errors" +msgstr "" + +msgid "Hierarchy info" +msgstr "" + +#, fuzzy +msgid "Hierarchy information" +msgstr "Informatii despre ierarhie" + +msgid "High bitrate support" +msgstr "Sprijin pentru bitrate rapid" + +msgid "Hold screen" +msgstr "" + +msgid "Hold till locked" +msgstr "" + +msgid "Home" +msgstr "" + +msgid "Horizontal" +msgstr "Orizontal" + +msgid "Horizontal turning speed" +msgstr "" + +msgid "How many minutes do you want to record?" +msgstr "Pentru cate minute doriti sa inregistrati?" + +msgid "Hue" +msgstr "" + +msgid "Hungarian" +msgstr "Maghiara" + +#, fuzzy +msgid "IP address" +msgstr "IP Address" + +msgid "ISO file is too large for this filesystem!" +msgstr "Fisierul ISO este prea mare pentru acest sistem de fisiere!" + +msgid "ISO path" +msgstr "Calea ISO" + +msgid "Icons" +msgstr "" + +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"Daca acest mesaj este vizibil, ceva nu este in regula\n" +"cu conexiunea dvs scart. Apasati OK pentru revenire." + +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" + +msgid "Image: " +msgstr "" + +#, fuzzy +msgid "Immediate shutdown" +msgstr "shutdown imediat" + +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "Pentru a putea porni inregistrarea programata,s-a comutat pe canalul respectiv!\n" + +#, fuzzy +msgid "In progress" +msgstr "In curs de desfasurare" + +msgid "Inactivity Sleeptimer" +msgstr "" + +msgid "Include AIT in http streams" +msgstr "" + +msgid "Include ECM in http streams" +msgstr "" + +msgid "Include EIT in http streams" +msgstr "" + +msgid "Incorrect type service for PiP!" +msgstr "" + +msgid "Increased voltage" +msgstr "Voltaj marit" + +msgid "Index" +msgstr "Index" + +msgid "Index allocated:" +msgstr "" + +msgid "Info" +msgstr "" + +#, fuzzy +msgid "Info bar" +msgstr "Bara de informatii" + +#, fuzzy +msgid "Info bar timeout" +msgstr "Timeout bara de informatii" + +msgid "Infobar frontend data source" +msgstr "" + +msgid "Information" +msgstr "Informatii" + +msgid "Init" +msgstr "Initializare" + +#, fuzzy +msgid "Initial fast forward speed" +msgstr "Vitezele pentru Repede Inainte" + +msgid "Initial location in new timers" +msgstr "" + +msgid "Initial lock ratio" +msgstr "" + +#, fuzzy +msgid "Initial rewind speed" +msgstr "Viteze de derulare" + +msgid "Initial signal quality" +msgstr "" + +msgid "Initial signal quality:" +msgstr "" + +msgid "Initialization" +msgstr "" + +msgid "Initialize" +msgstr "Se initializeaza" + +msgid "Initializing storage device..." +msgstr "" + +msgid "Input" +msgstr "Intrare" + +msgid "Input device setup" +msgstr "" + +msgid "Input devices" +msgstr "" + +msgid "Install" +msgstr "Instalare" + +msgid "Install a new image with a USB stick" +msgstr "Instalare imagine noua cu un stick USB" + +msgid "Install a new image with your web browser" +msgstr "Instalare imagine noua cu browser-ul web" + +#, fuzzy +msgid "Install channel list" +msgstr "canalul urmator in istoric" + +msgid "Install extensions" +msgstr "" + +msgid "Install extensions." +msgstr "" + +msgid "Install local extension" +msgstr "" + +msgid "Install picons on" +msgstr "" + +#, fuzzy +msgid "Install softcam" +msgstr "Instaleaza software" + +#, fuzzy +msgid "Installation has completed." +msgstr "Instalare terminata" + +#, fuzzy +msgid "Installation or removal has completed." +msgstr "Instaleaza sau elimina fisierele terminate" + +msgid "Installing" +msgstr "Instaleaza" + +#, fuzzy +msgid "Installing software..." +msgstr "Instaleaza software" + +#, fuzzy +msgid "Instant recording location" +msgstr "schimba inregistrare (durata)" + +#, fuzzy +msgid "Instant recording..." +msgstr "Inregistrare instant" + +msgid "Interface: " +msgstr "" + +msgid "Intermediate" +msgstr "Intermediar" + +#, fuzzy +msgid "Internal flash" +msgstr "Memorie Flash interna" + +msgid "Internal hdd only" +msgstr "" + +msgid "Interval between keys when repeating:" +msgstr "" + +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Director selectat nevalid: %s" + +#, fuzzy +msgid "Invalid location" +msgstr "Locatie nevalida" + +msgid "Invalid transponder data" +msgstr "" + +msgid "Inversion" +msgstr "Inversare" + +msgid "Invert" +msgstr "" + +msgid "Ipkg" +msgstr "Ipkg" + +msgid "Is this setting ok?" +msgstr "" + +#, fuzzy +msgid "Is this video mode ok?" +msgstr "Selectati modul vieo" + +msgid "Italian" +msgstr "Italiana" + +msgid "Items per page " +msgstr "" + +msgid "Items per page for list screen" +msgstr "" + +#, fuzzy +msgid "Job overview" +msgstr "Vedere serviciu" + +msgid "Jump to beginning of list" +msgstr "" + +#, fuzzy +msgid "Jump to end of list" +msgstr "dai la sfarsitul listei" + +#, fuzzy +msgid "Jump to next marked position" +msgstr "dai la urmatoarea pozitie marcata" + +#, fuzzy +msgid "Jump to previous marked position" +msgstr "dai la pozitia marcata anterior" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +#, fuzzy +msgid "Just scale" +msgstr "Doar dimensiune" + +msgid "Keep service" +msgstr "" + +#, fuzzy +msgid "Kernel version: " +msgstr "Versiune noua:" + +msgid "Keyboard" +msgstr "Tastatura" + +#, fuzzy +msgid "Keyboard map" +msgstr "Harta tastatura" + +#, fuzzy +msgid "Keyboard setup" +msgstr "Configurare tastatura" + +#, fuzzy +msgid "LAN adapter" +msgstr "Adaptor LAN" + +msgid "LAN connection" +msgstr "" + +msgid "LNB" +msgstr "LNB" + +msgid "Language" +msgstr "" + +msgid "Language selection" +msgstr "Selectare limba" + +msgid "Last config" +msgstr "" + +msgid "Last speed" +msgstr "Ultima viteza" + +msgid "Last upgrade: " +msgstr "" + +msgid "Latest Commits" +msgstr "" + +msgid "Latitude" +msgstr "Latitudine" + +msgid "Latvian" +msgstr "Letona" + +#, fuzzy +msgid "Leave DVD player?" +msgstr "Parasiti player-ul DVD?" + +msgid "Left" +msgstr "Stanga" + +msgid "Left from servicename" +msgstr "" + +msgid "Leisure hobbies" +msgstr "" + +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Letterbox" + +msgid "Letterbox zoom" +msgstr "" + +#, fuzzy +msgid "Limit character set for recording filenames" +msgstr "Caractere limitate pentru inregistrarea numelor fisierelor" + +msgid "Limit east" +msgstr "Limita estica" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "" + +msgid "Limit west" +msgstr "Limita vestica" + +msgid "Limits cancelled" +msgstr "" + +msgid "Limits enabled" +msgstr "" + +msgid "Limits off" +msgstr "Limite dezactivate" + +msgid "Limits on" +msgstr "Limite activate" + +msgid "Link quality:" +msgstr "" + +msgid "Link:" +msgstr "Link:" + +msgid "Linked titles with a DVD menu" +msgstr "Titluri legate cu un meniu DVD" + +msgid "List EPG functions..." +msgstr "" + +msgid "List available networks" +msgstr "" + +msgid "List mode" +msgstr "" + +#, fuzzy +msgid "List of storage devices" +msgstr "Lista cu dispozitive de stocare" + +msgid "List type" +msgstr "" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "" +msgstr[1] "" + +#, fuzzy +msgid "Listen to the radio..." +msgstr "auzi radio" + +msgid "Lists reloaded!" +msgstr "" + +msgid "Lithuanian" +msgstr "Lituaniana" + +msgid "Load" +msgstr "Incarca" + +msgid "Load Length of Movies in Movielist" +msgstr "" + +#, fuzzy +msgid "Load length of movies in movie list" +msgstr "Incarca durata filmelor in lista cu filme" + +#, fuzzy +msgid "Load playlist" +msgstr "incarca playlist" + +#, fuzzy +msgid "Local network" +msgstr "Retea locala" + +msgid "Location" +msgstr "Locatie" + +msgid "Location for instant recordings" +msgstr "" + +msgid "Lock ratio" +msgstr "" + +msgid "Lock:" +msgstr "Blocat" + +msgid "Log results to harddisk" +msgstr "Inregistrare rezultate pe harddisk" + +msgid "Long filenames" +msgstr "" + +#, fuzzy +msgid "Long key press" +msgstr "Apasare lunga pe tasta" + +msgid "Longitude" +msgstr "Longitudine" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "" + +#, fuzzy +msgid "MMC card" +msgstr "Card MMC" + +msgid "MORE" +msgstr "MULT" + +msgid "Main menu" +msgstr "Meniu principal" + +msgid "Maintain old EPG data for" +msgstr "" + +msgid "Make this mark an 'in' point" +msgstr "Fa acest semn un punct de intrare" + +msgid "Make this mark an 'out' point" +msgstr "Fa acest semn un punct de iesire" + +msgid "Make this mark just a mark" +msgstr "Fa acest semn doar un semn" + +msgid "Manage extensions" +msgstr "" + +msgid "Manage your receiver's software" +msgstr "Gestioneaza software-ul receiverului tau" + +msgid "Manual" +msgstr "" + +msgid "Manual Scan" +msgstr "Scanare manuala" + +msgid "Manual configuration" +msgstr "" + +#, fuzzy +msgid "Manual scan" +msgstr "Scanare manuala" + +msgid "Manual transponder" +msgstr "Transponder manual" + +msgid "Manufacturer" +msgstr "Fabricant" + +#, fuzzy +msgid "Margin after recording (minutes)" +msgstr "Creaza margini inainte de inregistrare (minute)" + +#, fuzzy +msgid "Margin before recording (minutes)" +msgstr "Creaza margini inainte de inregistrare (minute)" + +msgid "Max memory positions" +msgstr "" + +msgid "Max. bitrate: " +msgstr "" + +msgid "Media player" +msgstr "Media player" + +#, fuzzy +msgid "Media scanner" +msgstr "Media player" + +msgid "Medium is not a writeable DVD!" +msgstr "Mediul nu este un DVD inscriptibil!" + +msgid "Medium is not empty!" +msgstr "Mediul nu este gol!" + +msgid "Memory" +msgstr "" + +msgid "Memory index" +msgstr "" + +msgid "Menu" +msgstr "Meniu" + +msgid "Message" +msgstr "Mesaj" + +msgid "Message..." +msgstr "Mesaj..." + +#, python-format +msgid "Minimum age %d years" +msgstr "" + +msgid "Minimum send interval" +msgstr "" + +msgid "Missing " +msgstr "" + +#, fuzzy +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Mod" + +#, fuzzy +msgctxt "Video output mode" +msgid "Mode" +msgstr "Mod" + +msgid "Model: " +msgstr "Model:" + +msgid "Modulation" +msgstr "Modulatie" + +msgid "Modulator" +msgstr "Modulator" + +msgid "Mon" +msgstr "Lun" + +msgid "Mon-Fri" +msgstr "Lun-Vin" + +msgid "Monday" +msgstr "Luni" + +msgid "Mosquito noise reduction" +msgstr "" + +msgid "Mount" +msgstr "" + +msgid "Move" +msgstr "" + +#, fuzzy +msgid "Move PiP to main picture" +msgstr "muta pip la imagine principala" + +msgid "Move Picture in Picture" +msgstr "Muta picture in picture" + +msgid "Move east" +msgstr "Misca spre est" + +msgid "Move to other directory" +msgstr "" + +msgid "Move to position X" +msgstr "" + +msgid "Move west" +msgstr "Misca spre vest" + +msgid "Moved to position 0" +msgstr "" + +msgid "Moved to position at index" +msgstr "" + +msgid "Movement" +msgstr "" + +msgid "Movie List Configuration" +msgstr "" + +msgid "Movie Selection" +msgstr "" + +#, fuzzy +msgid "Movie list configuration" +msgstr "Configurare tuner" + +msgid "Movie location" +msgstr "" + +#, fuzzy +msgid "Movie selection" +msgstr "Selectare timer" + +msgid "Movie/Drama" +msgstr "" + +msgid "Movielist menu" +msgstr "Meniu lista filme" + +msgid "Moving" +msgstr "" + +msgid "Moving east ..." +msgstr "" + +msgid "Moving to position" +msgstr "" + +msgid "Moving west ..." +msgstr "" + +msgid "Multi EPG" +msgstr "Multi EPG" + +msgid "Multi-EPG bouquet selection" +msgstr "" + +msgid "Multimedia" +msgstr "Multimedia" + +msgid "Multiple service support" +msgstr "Suport pentru servicii multiple" + +msgid "Multiplex" +msgstr "" + +msgid "Multisat" +msgstr "Multisat" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "" + +msgid "Mute" +msgstr "Mut" + +msgid "N/A" +msgstr "N/A" + +msgid "NEXT" +msgstr "URMATORUL" + +msgid "NFI image flashing" +msgstr "" + +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "Flashing complet pentru imaginea NFI. Apasati butonul galben pentru reboot!" + +msgid "NIM" +msgstr "" + +msgid "NOW" +msgstr "ACUM" + +msgid "NTSC" +msgstr "NTSC" + +msgid "Name" +msgstr "Nume" + +msgid "Nameserver" +msgstr "Nameserver" + +#, python-format +msgid "Nameserver %d" +msgstr "Numele server-ului %d" + +msgid "Nameserver settings" +msgstr "Setari nume server" + +#, fuzzy +msgid "Nameserver setup" +msgstr "Configurare nume server" + +msgid "Namespace" +msgstr "" + +msgid "Netmask" +msgstr "Netmask" + +msgid "Network" +msgstr "Retea" + +msgid "Network ID" +msgstr "" + +#, fuzzy +msgid "Network configuration..." +msgstr "Configurare retea..." + +#, fuzzy +msgid "Network mount" +msgstr "Network mount" + +#, fuzzy, python-format +msgid "Network mount %s" +msgstr "Network mount" + +msgid "Network name (SSID)" +msgstr "" + +msgid "Network scan" +msgstr "Scanare retea" + +msgid "Network setup" +msgstr "Configurare retea" + +msgid "Network test" +msgstr "Test retea" + +msgid "Network test..." +msgstr "Test retea..." + +msgid "Network test: " +msgstr "" + +#, fuzzy +msgid "Network wizard" +msgstr "Wizard de retea" + +msgid "Network:" +msgstr "Retea" + +msgid "New" +msgstr "Nou" + +msgid "New PIN" +msgstr "" + +msgid "New version:" +msgstr "Versiune noua:" + +msgid "News Current Affairs" +msgstr "" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "" + +msgid "No" +msgstr "Nu" + +msgid "No (supported) DVDROM found!" +msgstr "Nu s-a gasit niciun DVDROM (suportat)!" + +msgid "No Connection" +msgstr "" + +msgid "No HDD found or HDD not initialized!" +msgstr "Nu s-a gasit niciun HDD sau HDD neinitializat!" + +msgid "No backup needed" +msgstr "Nu este nevoie de backup" + +msgid "No cable tuner found!" +msgstr "" + +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Nu exista date pe transponder!\n" +" (Timeout reading PAT)" + +msgid "No delay" +msgstr "" + +msgid "No description available." +msgstr "Descrierea nu este disponibila" + +msgid "No details for this image file" +msgstr "Nu exista detalii despre acest fisier imagine" + +msgid "No displayable files on this medium found!" +msgstr "Nu au fost gasite fisiere pe acest mediu de stocare!" + +msgid "No event info found, recording indefinitely." +msgstr "Nu s-au gasit informatii despre eveniment, inregistrare nesfarsita." + +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "" + +msgid "No free index available" +msgstr "" + +msgid "No free tuner!" +msgstr "Nu exista tuner disponibil!" + +msgid "No network connection available." +msgstr "" + +msgid "No networks found" +msgstr "" + +msgid "No new plugins found" +msgstr "" + +msgid "No positioner capable frontend found." +msgstr "Nu a fost gasit niciun pozitioner" + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "" + +msgid "No services/providers selected" +msgstr "" + +#, fuzzy +msgid "No standby" +msgstr "fara standby" + +msgid "No suitable sat tuner found!" +msgstr "" + +msgid "No tags are set on these movies." +msgstr "Nu exista tag-uri stabilite pentru aceste filme." + +#, fuzzy +msgid "No timeout" +msgstr "fara timeout" + +msgid "No to all" +msgstr "" + +msgid "No transparency" +msgstr "" + +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "Niciun tuner nu este configurat pentru a fi folosit cu un pozitioner diseqc!" + +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Niciun tuner nu este activat!\n" +"Va rugam configurati setarile tuner-ului inainte de a incepe o scanare noua." + +#, fuzzy +msgid "No updates available" +msgstr "Descrierea nu este disponibila" + +msgid "No updates available. Please try again later." +msgstr "" + +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Nu a fost gasit un PIN valid!\n" +"Vreti sa schimbati PIN-ul acum?\n" +"Cand spuneti 'Nu' aici serviciul de protectie ramane dezactivat!" + +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Nu a fost gasit niciun PIN de configurare valid!\n" +"Doriti sa schimbati PIN-ul de configurare acum?\n" +"Cand spuneti 'Nu' aici serviciul de protectie ramane dezactivat!" + +msgid "No wireless networks found! Searching..." +msgstr "" + +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"Nu a fost gasit un adaptor de retea locala functional.\n" +"Va rugam verificati daca ati conectat un cablu de retea si daca reteaua esteconfigurata corect." + +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"Nu a fost gasit un adaptor de retea wireless functional.\n" +"Va rugam verificati daca ati conectat un dispozitiv WLAN compatibil si reteaua este configurata corect" + +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"Nu a fost gasita o interfata de retea wireless functionala.\n" +"Va rugam verificati daca ati conectat un dispozitiv WLAN compatibilsi reteaua este configurata corect" + +msgid "No, but restart from begin" +msgstr "Nu, dar reluati de la capat" + +msgid "No, do nothing." +msgstr "Nu, nu face nimic." + +msgid "No, just start my receiver" +msgstr "" + +msgid "No, never" +msgstr "" + +msgid "None" +msgstr "Niciunul" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Nelinear" + +msgid "Normal mode" +msgstr "" + +msgid "North" +msgstr "Nord" + +msgid "Norwegian" +msgstr "Norvegiana" + +msgid "Not associated" +msgstr "" + +msgid "Not configured" +msgstr "" + +#, fuzzy, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Nu este spatiu suficient. Va rugam eliberati din spatiu si incercati din nou. (%d MB necesari, %d MB disponibili)" + +msgid "Nothing connected" +msgstr "" + +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Nu este nimic de scanat!\n" +"Va rugam configurati setarile tuner-ului inainte de a incepe o scanare." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "" + +#, fuzzy +msgid "Now playing" +msgstr "In redare acum" + +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Acum, folositi setarile pentru contrast pentru a ridica luminozitatea de fundalcat mai mult posibil, dar asigurati-va ca pueti vedea inca diferentaintre umbrele cele mai luminoase. Daca ati facut aceasta, apasati OK." + +msgid "OK" +msgstr "OK" + +msgid "OK, guide me through the upgrade process" +msgstr "OK, ghideaza-ma prin procesul de actualizare" + +msgid "ONID" +msgstr "" + +msgid "OSD name request" +msgstr "" + +#, fuzzy +msgid "OSD settings" +msgstr "Setari OSD" + +msgid "OSD transparency" +msgstr "" + +msgid "Off" +msgstr "Oprit" + +msgid "Offline decode delay (ms)" +msgstr "" + +msgid "Ok" +msgstr "" + +msgid "On" +msgstr "Pornit" + +msgid "On end of movie" +msgstr "" + +msgid "On end of movie (as menu)" +msgstr "" + +msgid "One" +msgstr "Unu" + +msgid "Only extensions." +msgstr "" + +#, fuzzy +msgid "Only free scan" +msgstr "Numai scanare la programele libere" + +#, fuzzy +msgid "Open service list" +msgstr "deschide servicelist" + +#, fuzzy +msgid "Open the movie list" +msgstr "Revenire la lista de filme" + +msgid "Orbital position" +msgstr "" + +msgid "Original" +msgstr "" + +msgid "Other" +msgstr "" + +msgid "Output" +msgstr "" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "" + +#, fuzzy +msgid "Overwrite configuration files?" +msgstr "Configurare tuner" + +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "" + +msgid "PIDs" +msgstr "PID-uri" + +#, fuzzy +msgid "PIN code needed" +msgstr "Este nevoie de codul pin" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "" + +msgid "Package list update" +msgstr "Actualizare lista pachet" + +msgid "Packet management" +msgstr "Administrare pachet" + +msgid "Packet manager" +msgstr "Manager pachet" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +#, fuzzy +msgid "Pan&scan" +msgstr "Pan&Scan" + +#, fuzzy +msgid "Parent directory" +msgstr "Directorul sursa" + +msgid "Parental control" +msgstr "Control parental" + +#, fuzzy +msgid "Parental control services editor" +msgstr "Editor servicii control parental" + +msgid "Parental control setup" +msgstr "Configurare control parental" + +msgid "Parental control type" +msgstr "Tip control parental" + +msgid "Password" +msgstr "" + +#, fuzzy +msgid "Pause" +msgstr "pauza" + +msgid "Pause movie at end" +msgstr "Opreste filmul la sfarsit" + +#, fuzzy +msgid "Pause playback" +msgstr "Reluare redare" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "" + +#, fuzzy +msgid "Percentage right" +msgstr "Circular drept" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "" + +msgid "Permanently remove all deleted items" +msgstr "" + +msgid "Persian" +msgstr "" + +msgid "Phone number" +msgstr "" + +#, fuzzy +msgid "PiP setup" +msgstr "Configurare PiP" + +msgid "Picon" +msgstr "" + +msgid "Picon and service name" +msgstr "" + +#, fuzzy +msgid "Picture player" +msgstr "PicturePlayer" + +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Pillarbox" + +msgid "Pilot" +msgstr "Pilot" + +msgid "Play" +msgstr "Redare" + +msgid "Play DVD" +msgstr "Redare DVD" + +msgid "Play audio in background" +msgstr "" + +#, fuzzy +msgid "Play audio-CD..." +msgstr "Redare Audio-CD..." + +msgid "Play back media files" +msgstr "" + +#, fuzzy +msgid "Play entry" +msgstr "deschide selectarea" + +#, fuzzy +msgid "Play from next mark or playlist entry" +msgstr "deschide de la urmatoarea sau selectarea playlist" + +#, fuzzy +msgid "Play from previous mark or playlist entry" +msgstr "deschide de la anterioara sau selectarea playlist" + +#, fuzzy +msgid "Play music..." +msgstr "Redare Muzica..." + +msgid "Play next" +msgstr "" + +msgid "Play next (return to movie list)" +msgstr "" + +msgid "Play next (return to previous service)" +msgstr "" + +msgid "Play previous" +msgstr "" + +msgid "Play recorded movies..." +msgstr "Redare filme inregistrate..." + +msgid "Please add titles to the compilation." +msgstr "" + +msgid "Please change recording endtime" +msgstr "Va rugam schimbati timpul final pentru inregistrare" + +msgid "Please check your network settings!" +msgstr "Va rugam verificati setarile de retea!" + +msgid "Please choose an extension..." +msgstr "Va rugam alegeti o extensie..." + +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" + +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" + +msgid "Please connect your receiver to the internet" +msgstr "" + +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Va rugam nu modificati nicio valoare numai daca sunteti sigur de ceea ce faceti!" + +msgid "Please enter a name for the new bouquet" +msgstr "Va rugam introduceti un nume pentru noul pachet" + +msgid "Please enter a name for the new marker" +msgstr "Va rugam introduceti un nume pentru marker-ul nou" + +msgid "Please enter a new filename" +msgstr "Va rugam introduceti un nou nume de fisier" + +msgid "Please enter filename (empty = use current date)" +msgstr "Va rugam introduceti numele fisierului (gol = foloseste data curenta)" + +msgid "Please enter name of the new directory" +msgstr "Va rugam introduceti numele noului director" + +msgid "Please enter new name:" +msgstr "" + +msgid "Please enter the correct pin code" +msgstr "Va rugam introduceti codul pin corect" + +msgid "Please enter the old PIN code" +msgstr "" + +msgid "Please follow the instructions on the TV" +msgstr "Va rugam sa urmati instructiunile de pe ecranul TV-ului" + +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "Va rugam sa retineti ca sursa media selectata anterior nu a putut fi accesata sidirectorul implicit este folosit in locul acesteia." + +msgid "Please press OK to continue." +msgstr "Va rugam apasati OK pentru a continua" + +msgid "Please select a default EPG type..." +msgstr "" + +msgid "Please select a playlist to delete..." +msgstr "Va rugam selectati o lista de redare pentru a fi stearsa..." + +msgid "Please select a playlist..." +msgstr "Va rugam selectati o lista de redare..." + +#, fuzzy +msgid "Please select a sub service..." +msgstr "Va rugam selectati un subserviciu..." + +msgid "Please select a subservice to record..." +msgstr "Va rugam selectati un subserviciu pentru a fi inregistrat..." + +msgid "Please select a subservice..." +msgstr "Va rugam selectati un subserviciu..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "" + +#, fuzzy +msgid "Please select medium to be scanned" +msgstr "Va rugam selectati mediul de scanat" + +msgid "Please select medium to use as backup location" +msgstr "Va rugam selectati mediul de stocare care va fi folosit ca locatie de rezerva" + +msgid "Please select tag to filter..." +msgstr "Va rugam selectati tag-ul care va fi filtrat..." + +msgid "Please select the movie path..." +msgstr "Va rugam selectati calea pentru film..." + +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" + +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" + +#, fuzzy +msgid "Please set up tuner A" +msgstr "Va rugam configurati tuner-ul B" + +msgid "Please set up tuner B" +msgstr "Va rugam configurati tuner-ul B" + +msgid "Please set up tuner C" +msgstr "Va rugam configurati tuner-ul C" + +msgid "Please set up tuner D" +msgstr "Va rugam configurati tuner-ul D" + +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Va rugam utilizati tastele de directie pentru a misca fereastra PiP.\n" +"Apasati Pachet +/- pentru a redimensiona fereastra.\n" +"Apasati OK pentru a reveni in modul TV sau EXIT pentru a anula miscarea." + +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "Va rugam folositi tastele SUS si JOS pentru a selecta limba. Dupa aceea apasatitasta OK." + +msgid "Please wait" +msgstr "" + +#, fuzzy +msgid "Please wait (downloading channel list)" +msgstr "Va rugam asteptati... Se incarca lista..." + +#, fuzzy +msgid "Please wait (downloading softcam)" +msgstr "Va rugam asteptati... Se incarca lista..." + +#, fuzzy +msgid "Please wait (updating packages)" +msgstr "te rog asteapta, se incarca imagine" + +msgid "Please wait for activation of your network configuration..." +msgstr "Va rugam asteptati activarea configurarilor de retea..." + +msgid "Please wait while scanning is in progress..." +msgstr "Va rugam asteptati cat are loc scanarea..." + +msgid "Please wait while we configure your network..." +msgstr "Va rugam asteptati pana cand se configureaza reteaua..." + +msgid "Please wait while we prepare your network interfaces..." +msgstr "" + +msgid "Please wait while we test your network..." +msgstr "" + +msgid "Please wait while your network is restarting..." +msgstr "Va rugam asteptati pana cand reteaua se va restarta..." + +msgid "Please wait..." +msgstr "Va rugam asteptati..." + +msgid "Please wait... Loading list..." +msgstr "Va rugam asteptati... Se incarca lista..." + +msgid "Plugin browser" +msgstr "Browser-ul plugin" + +msgid "Plugin manager activity information" +msgstr "" + +msgid "Plugin manager help" +msgstr "" + +msgid "Plugins" +msgstr "Plugin-uri" + +msgid "Polarisation" +msgstr "" + +msgid "Polarisation:" +msgstr "" + +msgid "Polarization" +msgstr "Polarizare" + +msgid "Polish" +msgstr "Poloneza" + +msgid "Port A" +msgstr "Portul A" + +msgid "Port B" +msgstr "Portul B" + +msgid "Port C" +msgstr "Portul C" + +msgid "Port D" +msgstr "Portul D" + +msgid "Portuguese" +msgstr "Portugheza" + +msgid "Position of completed timers in timerlist" +msgstr "" + +msgid "Position stored at index" +msgstr "" + +msgid "Positioner" +msgstr "Pozitioner" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "" + +msgid "Positioner setup" +msgstr "Configurare Pozitioner" + +msgid "Power threshold in mA" +msgstr "Prag de putere in mA" + +msgid "Predefined transponder" +msgstr "Transponder predefinit" + +msgid "Prefer AC3 track" +msgstr "" + +msgid "Prefer AC3+ track" +msgstr "" + +msgid "Prefer audio track stored by service" +msgstr "" + +msgid "Prefer graphical DVB subtitles" +msgstr "" + +msgid "Prefer subtitles for hearing impaired" +msgstr "" + +msgid "Prefer subtitles stored by service" +msgstr "" + +msgid "Preferred tuner" +msgstr "" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "" + +msgid "Preparing... Please wait" +msgstr "Se pregateste... Va rugam asteptati" + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "" + +msgid "Press MENU on your remote control for additional options." +msgstr "" + +msgid "Press OK on your remote control to continue." +msgstr "Va rugam apasati OK de pe telecomanda pentru a continua" + +msgid "Press OK to activate the selected skin." +msgstr "" + +msgid "Press OK to activate the settings." +msgstr "Apasati OK pentru a activa setarile" + +msgid "Press OK to edit the settings." +msgstr "Apasati OK pentru a edita setarile." + +#, python-format +msgid "Press OK to get further details for %s" +msgstr "Apasati OK pentru a primi detaliile urmatoare pentru %s" + +msgid "Press OK to scan" +msgstr "Apasati OK pentru scanare" + +#, fuzzy +msgid "Press OK to select a provider." +msgstr "Apasati OK pentru scanare" + +msgid "Press OK to select satellites" +msgstr "" + +msgid "Press OK to select/deselect a CAId." +msgstr "" + +msgid "Press OK to start the scan" +msgstr "Apasati OK pentru a incepe scanarea" + +msgid "Press OK to toggle the selection" +msgstr "" + +msgid "Press OK to toggle the selection." +msgstr "" + +msgid "Press yellow to set this interface as default interface." +msgstr "" + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "" + +msgid "Preview" +msgstr "" + +msgid "Preview menu" +msgstr "Meniu previzualizare" + +msgid "Preview selected channel" +msgstr "" + +msgid "Primary DNS" +msgstr "DNS Primar" + +msgid "Priority" +msgstr "Prioritate" + +msgid "Process" +msgstr "" + +msgid "Progress" +msgstr "" + +msgid "Progress bar left" +msgstr "" + +msgid "Progress bar right" +msgstr "" + +msgid "Properties of current title" +msgstr "Proprietatile titlului curent" + +msgid "Protect services" +msgstr "Servicii de protectie" + +msgid "Protect setup" +msgstr "Configurare protectie" + +msgid "Provider" +msgstr "Furnizor" + +msgid "Provider to scan" +msgstr "Furnizor ce urmeaza a fi scanat" + +msgid "Providers" +msgstr "Furnizori" + +msgid "Put TV in standby" +msgstr "" + +msgid "Put receiver in standby" +msgstr "" + +msgid "Python frontend for /tmp/mmi.socket" +msgstr "Python frontend pentru /tmp/mni.socket" + +msgid "Quick" +msgstr "Rapid" + +#, fuzzy +msgid "Quick zap" +msgstr "Zap rapid" + +msgid "RF output" +msgstr "Iesire RF" + +msgid "RGB" +msgstr "RGB" + +msgid "Radio" +msgstr "Radio" + +#, fuzzy +msgid "Ram disk" +msgstr "Disk Ram" + +msgid "Random" +msgstr "Aleator" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "" + +msgid "Rating undefined" +msgstr "" + +msgid "Really close without saving settings?" +msgstr "Inchideti fara sa salvati setarile?" + +msgid "Really delete done timers?" +msgstr "Stergeti timpii de terminare?" + +msgid "Really exit the subservices quickzap?" +msgstr "Iesiti din subserviciul zap rapid?" + +msgid "Really reboot now?" +msgstr "Reporniti sistemul acum?" + +msgid "Really restart now?" +msgstr "Restartati acum?" + +msgid "Really shutdown now?" +msgstr "Inchideti acum?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "" + +msgid "Reboot" +msgstr "Repornire sistem" + +msgid "Rec" +msgstr "" + +#, fuzzy +msgid "Reception settings" +msgstr "Setari receptie" + +msgid "Record" +msgstr "Inregistrare" + +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "Timp e inregistrare limitat datorat conflictului de timer %s" + +msgid "Recorded files..." +msgstr "Fisiere inregistrate" + +msgid "Recording" +msgstr "Inregistrare" + +msgid "Recording in progress" +msgstr "" + +msgid "Recording paths" +msgstr "" + +msgid "Recording type" +msgstr "" + +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "Inregistrarea este in curs sau incepe in cateva secunde!" + +msgid "Recordings" +msgstr "Inregistrari" + +msgid "Recordings always have priority" +msgstr "Inregistrarile au intotdeauna prioritate" + +msgid "Red button..." +msgstr "" + +msgid "Reenter new PIN" +msgstr "" + +#, fuzzy +msgid "Refresh rate" +msgstr "Rata de reimprospatare" + +msgid "Refresh rate selection." +msgstr "Selectie rata de reimprospatare" + +msgid "Regard deep standby as standby" +msgstr "" + +msgid "Relative" +msgstr "" + +msgid "Reload" +msgstr "Reincarcare" + +msgid "Reload black-/white lists" +msgstr "" + +msgid "Reloading bouquets and services..." +msgstr "" + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "" + +msgid "Remember these settings for each folder" +msgstr "" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "" + +#, fuzzy +msgid "Remote control type" +msgstr "Tip control parental" + +msgid "Removal has completed." +msgstr "" + +msgid "Remove" +msgstr "Eliminare" + +msgid "Remove a mark" +msgstr "Eliminare semn" + +#, fuzzy +msgid "Remove a nameserver entry" +msgstr "elimina o intrare de nameserver" + +#, fuzzy +msgid "Remove bookmark" +msgstr "elimina bookmark-ul" + +msgid "Remove completed timers after (days)" +msgstr "" + +msgid "Remove currently selected title" +msgstr "Eliminare titlu curent selectat" + +msgid "Remove items from trash can after (days)" +msgstr "" + +msgid "Remove plugins" +msgstr "Eliminare plugin-uri" + +msgid "Remove title" +msgstr "Stergere titlu" + +msgid "Removing" +msgstr "Stergere" + +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Stergere drector %s esuata. (Probabil nu este gol.)" + +#, fuzzy +msgid "Removing partition table" +msgstr "Stergere titlu" + +msgid "Rename" +msgstr "Redenumire" + +msgid "Repeat" +msgstr "" + +#, fuzzy +msgid "Repeat type" +msgstr "Tip repetare" + +msgid "Repeating event currently recording... What do you want to do?" +msgstr "Repetare eveniment care se inregistreaza...Ce doriti a faceti?" + +msgid "Repeats" +msgstr "Repeta" + +msgid "Require authentication for http streams" +msgstr "" + +msgid "Required medium type:" +msgstr "" + +msgid "Rereading partition table" +msgstr "" + +msgid "Reserved" +msgstr "" + +msgid "Reset" +msgstr "Resetare" + +msgid "Reset and renumerate title names" +msgstr "Resetare si renumarare nume titluri" + +msgid "Reset playback position" +msgstr "" + +msgid "Reset video enhancement settings to system defaults?" +msgstr "" + +msgid "Reset video enhancement settings to your last configuration?" +msgstr "" + +msgid "Resolution" +msgstr "Rezolutie" + +msgid "Restart" +msgstr "Restart" + +msgid "Restart GUI now?" +msgstr "Restart GUI acum?" + +msgid "Restart enigma" +msgstr "" + +msgid "Restart network" +msgstr "Restart retea" + +msgid "Restart test" +msgstr "Test restart" + +msgid "Restart your network connection and interfaces.\n" +msgstr "Restartati conexiunea la retea si interfata \n" + +msgid "Restore" +msgstr "Revenire" + +msgid "Restore backups" +msgstr "" + +msgid "Restore is running..." +msgstr "" + +msgid "Restore system settings" +msgstr "Revenire la setarile sistemului" + +#, fuzzy +msgid "Restoring..." +msgstr "se inregistreaza" + +msgid "Resume from last position" +msgstr "Reluare de la ultima pozitie" + +#, python-format +msgid "Resume position at %s" +msgstr "" + +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Reluare redare" + +msgid "Return to movie list" +msgstr "Revenire la lista de filme" + +msgid "Return to previous service" +msgstr "Revenire la serviciul anterior" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +msgid "Rewind speeds" +msgstr "Viteze de derulare" + +msgid "Rewrap teletext subtitles" +msgstr "" + +msgid "Right" +msgstr "Dreapta" + +msgid "Right from servicename" +msgstr "" + +msgid "Roll-off" +msgstr "" + +msgid "Romanian" +msgstr "" + +msgid "Root directory" +msgstr "" + +msgid "Rotor step position:" +msgstr "" + +msgid "Rotor turning speed" +msgstr "Viteza de intoarcere a rotorului" + +msgid "Round start time on" +msgstr "" + +msgid "Russian" +msgstr "Rusa" + +msgid "S-Video" +msgstr "S-Video" + +msgid "SID" +msgstr "" + +msgid "SINGLE LAYER DVD" +msgstr "" + +msgid "SNR" +msgstr "SNR" + +msgid "SNR:" +msgstr "SNR:" + +msgid "SSID:" +msgstr "" + +msgid "Same resolution as skin" +msgstr "" + +msgid "Sat" +msgstr "Sat" + +msgid "Satellite" +msgstr "Satelit" + +#, fuzzy +msgid "Satellite dish setup" +msgstr "Configurare Echipament Satelit" + +msgid "Satellite equipment" +msgstr "" + +#, fuzzy +msgid "Satellite equipment setup" +msgstr "Configurare Echipament Satelit" + +msgid "Satellite longitude:" +msgstr "" + +msgid "Satellites" +msgstr "Sateliti" + +msgid "Satfinder" +msgstr "Satfinder" + +msgid "Sats" +msgstr "Sateliti" + +msgid "Saturation" +msgstr "" + +msgid "Saturday" +msgstr "Sambata" + +msgid "Save" +msgstr "Salvare" + +#, fuzzy +msgid "Save playlist" +msgstr "salveaza playlist" + +msgid "Save timeshift file" +msgstr "" + +msgid "Save timeshift file in movie directory" +msgstr "" + +msgid "Scaler sharpness" +msgstr "" + +#, fuzzy +msgid "Scaling mode" +msgstr "Mod de scalare" + +msgid "Scan" +msgstr "" + +msgid "Scan " +msgstr "Scanare" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, fuzzy, python-format +msgid "Scan %s" +msgstr "Scanare" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, fuzzy, python-format +msgid "Scan %s band" +msgstr "Scanare banda EU MID" + +msgid "Scan additional SR" +msgstr "Scanare SR aditional" + +#, fuzzy +msgid "Scan files..." +msgstr "Scanare fisiere..." + +#, fuzzy +msgid "Scan wireless networks" +msgstr "Scanare retele wireless" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "" + +#, python-format +msgid "Scanning %s..." +msgstr "" + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "" +msgstr[1] "" + +msgid "Scanning failed!" +msgstr "" + +msgid "Scanning..." +msgstr "" + +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "lamedbs implicicit sortat dupa satelit cu un pozitioner conectat" + +msgid "Search east" +msgstr "Cautati spre est" + +msgid "Search west" +msgstr "Cautati spre vest" + +msgid "Searching" +msgstr "" + +msgid "Searching east ..." +msgstr "" + +msgid "Searching for available updates. Please wait..." +msgstr "" + +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "Cautare pachete nou instalate sau sterse. Va rugam asteptati..." + +msgid "Searching west ..." +msgstr "" + +msgid "Second cable of motorized LNB" +msgstr "" + +msgid "Secondary DNS" +msgstr "DNS Secundar" + +msgid "Seek" +msgstr "Cautare" + +#, fuzzy +msgid "Seek backward" +msgstr "skin inapoi" + +#, fuzzy +msgid "Seek backward (enter time)" +msgstr "skin inapoi (seteaza ceas)" + +#, fuzzy +msgid "Seek forward" +msgstr "skin inainte" + +#, fuzzy +msgid "Seek forward (enter time)" +msgstr "skin inainte (seteaza ceas)" + +msgid "Select" +msgstr "Selectare" + +#, fuzzy +msgid "Select CAId" +msgstr "selecteaza CAId" + +msgid "Select HDD" +msgstr "Selectare HDD" + +#, fuzzy +msgid "Select a bouquet" +msgstr "Alegeti un film" + +msgid "Select a movie" +msgstr "Alegeti un film" + +#, fuzzy +msgid "Select a network adapter" +msgstr "Selectare Adaptor Retea" + +#, fuzzy +msgid "Select a skin" +msgstr "Alegeti un film" + +#, fuzzy +msgid "Select a tuner" +msgstr "Alegeti un film" + +#, fuzzy +msgid "Select a wireless network" +msgstr "Scanare retele wireless" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +msgid "Select an image to be downloaded" +msgstr "" + +msgid "Select audio track" +msgstr "Selectare pista audio" + +#, fuzzy +msgid "Select backup files" +msgstr "Selecteaza fisierele copii de siguranta" + +#, fuzzy +msgid "Select backup location" +msgstr "Alege locatia copiei de siguranta" + +msgid "Select channel to record from" +msgstr "Selectare canal de inregistrat" + +msgid "Select copy destination for:" +msgstr "" + +msgid "Select default EPG type..." +msgstr "" + +msgid "Select desired image from feed list" +msgstr "" + +msgid "Select destination for:" +msgstr "" + +msgid "Select files for backup." +msgstr "" + +msgid "Select files/folders to backup" +msgstr "" + +msgid "Select input device" +msgstr "" + +msgid "Select input device." +msgstr "" + +msgid "Select interface" +msgstr "" + +#, fuzzy +msgid "Select location" +msgstr "Alege locatia" + +#, fuzzy +msgid "Select movie" +msgstr "Alegeti un film" + +msgid "Select provider to add..." +msgstr "Alegeti furnizor pentru a fi adaugat..." + +msgid "Select refresh rate" +msgstr "Selectati rata de reimprospatare" + +msgid "Select satellites" +msgstr "" + +msgid "Select service to add..." +msgstr "Selectati serviciul care sa fie adaugat..." + +msgid "Select sort method:" +msgstr "" + +#, fuzzy +msgid "Select target folder" +msgstr "Alege directorul destinatie" + +#, fuzzy +msgid "Select the movie path" +msgstr "selecteaza calea filmului" + +#, fuzzy +msgid "Select upgrade source" +msgstr "Alege sursa de actualizare" + +msgid "Select upgrade source to edit." +msgstr "" + +msgid "Select video input with up/down buttons" +msgstr "Selectati intrarea vieo cu tastele sus/jos" + +msgid "Select video mode" +msgstr "Selectati modul vieo" + +msgid "Select wireless network" +msgstr "" + +msgid "Select your provider, and press OK to start the scan" +msgstr "" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +msgid "Send DiSEqC only on satellite change" +msgstr "Trimite DiSEqC numai la schimbarea satelitului" + +msgid "Separate titles with a main menu" +msgstr "Titluri separate cu meniu princpial" + +msgid "Sequence repeat" +msgstr "Repetare secventa" + +msgid "Serbian" +msgstr "" + +msgid "Service" +msgstr "Serviciu" + +msgid "Service has been added to the favourites." +msgstr "Serviciul a fost adaugat la favorite" + +msgid "Service has been added to the selected bouquet." +msgstr "Serviciul a fost adaugat in pachetul selectat" + +#, fuzzy +msgid "Service info" +msgstr "Info serviciu" + +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Serviciu nevalid!\n" +"(Timeout reading PMT)" + +#, fuzzy +msgid "Service name" +msgstr "Scanare Serviciu" + +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Serviciul nu a fost gasit!\n" +"(SID nu a fost gasit in PAT)" + +msgid "Service reference" +msgstr "" + +msgid "Service scan" +msgstr "Scanare serviciu" + +#, fuzzy +msgid "Service searching" +msgstr "Cautare Serviciu" + +#, fuzzy +msgid "Service title mode" +msgstr "Selectati modul vieo" + +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"Serviciul nu este valabil!\n" +"Verificati setarile tunerului!" + +msgid "Services" +msgstr "Servicii" + +msgid "Set default" +msgstr "" + +#, fuzzy +msgid "Set end time" +msgstr "Momentul incheierii" + +msgid "Set fixed" +msgstr "" + +msgid "Set fps for external subtitles" +msgstr "" + +msgid "Set interface as default Interface" +msgstr "Setare interfata ca interfata implicita" + +msgid "Set limits" +msgstr "" + +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "" + +msgid "Set time window to 1 hour" +msgstr "" + +msgid "Set time window to 2 hours" +msgstr "" + +msgid "Set time window to 3 hours" +msgstr "" + +msgid "Set time window to 4 hours" +msgstr "" + +msgid "Set time window to 5 hours" +msgstr "" + +msgid "Set time window to 6 hours" +msgstr "" + +#, fuzzy +msgid "Set voltage and 22KHz" +msgstr "Setare Voltaj si 22KHz" + +msgid "Settings" +msgstr "Setari" + +msgid "Setup" +msgstr "Configurare" + +msgid "Setup menu" +msgstr "" + +#, fuzzy +msgid "Setup mode" +msgstr "Mod configurare" + +msgid "Setup your positioner" +msgstr "" + +#, fuzzy +msgid "Setup your satellite equipment" +msgstr "Configurare Echipament Satelit" + +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "" + +msgid "Sharpness" +msgstr "" + +msgid "Short filenames" +msgstr "" + +msgid "Show EIT now/next in infobar" +msgstr "" + +#, fuzzy +msgid "Show EPG for current channel..." +msgstr "Arata bara de informatii la schimbarea evenimentelor" + +#, fuzzy +msgid "Show EPG..." +msgstr "arata EPG..." + +msgid "Show Games show" +msgstr "" + +msgid "Show SNR percentage instead of dB value" +msgstr "" + +msgid "Show VCR scart on main menu" +msgstr "" + +#, fuzzy +msgid "Show WLAN status" +msgstr "Arata stare WLAN" + +msgid "Show animation while busy" +msgstr "" + +#, fuzzy +msgid "Show background in radio mode" +msgstr "imagine fundal" + +msgid "Show bouquet selection menu" +msgstr "" + +msgid "Show busy indicator when the system is busy." +msgstr "" + +msgid "Show channel numbers in channel selection" +msgstr "" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "" + +msgid "Show detailed event info" +msgstr "" + +#, fuzzy +msgid "Show event details" +msgstr "arata detaliile evenimentului" + +msgid "Show event-progress in channel selection" +msgstr "" + +#, fuzzy +msgid "Show extended description" +msgstr "arata descriere extinsa" + +#, fuzzy +msgid "Show extensions..." +msgstr "arata extensii..." + +msgid "Show icon for new/unseen items" +msgstr "" + +msgid "Show in extensions menu" +msgstr "" + +#, fuzzy +msgid "Show info" +msgstr "Arata Informatii" + +#, fuzzy +msgid "Show info line" +msgstr "arata Infoline" + +msgid "Show infobar on channel change" +msgstr "Arata bara de informatii la schimbarea canalelor" + +msgid "Show infobar on event change" +msgstr "Arata bara de informatii la schimbarea evenimentelor" + +msgid "Show infobar on skip forward/backward" +msgstr "Arata bara de informatii la saltul inainte/inapoi" + +msgid "Show latest commits on sourceforge" +msgstr "" + +msgid "Show message when recording starts" +msgstr "" + +#, fuzzy +msgid "Show movie lengths in movielist" +msgstr "Incarca durata filmelor in lista cu filme" + +msgid "Show multi channel EPG" +msgstr "" + +msgid "Show picons in channel list" +msgstr "" + +msgid "Show positioner movement" +msgstr "Arata miscarea pozitionerului" + +msgid "Show screensaver" +msgstr "" + +msgid "Show second infobar" +msgstr "" + +msgid "Show service type icons" +msgstr "" + +msgid "Show services beginning with" +msgstr "Arata serviciile incepand cu" + +#, fuzzy +msgid "Show shutdown menu" +msgstr "arata meniul de shutdown" + +msgid "Show single service EPG" +msgstr "" + +msgid "Show status icons in Movielist" +msgstr "" + +msgid "Show status icons in movie list" +msgstr "" + +msgid "Show status icons in movielist" +msgstr "" + +#, fuzzy +msgid "Show tag menu" +msgstr "arata meniul de tag-uri" + +msgid "Show the radio player..." +msgstr "Arata player-ul radio" + +msgid "Show the tv player..." +msgstr "Arata player-ul tv" + +msgid "Show warning when timeshift is stopped" +msgstr "" + +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Arata statusul conexiunii LAN wireless.\n" + +#, fuzzy +msgid "Shuffle playlist" +msgstr "amesteca plylist" + +msgid "Shutdown" +msgstr "" + +msgid "Shutdown when in Standby" +msgstr "" + +msgid "Side by side" +msgstr "" + +msgid "Signal OK, proceeding" +msgstr "" + +msgid "Signal quality" +msgstr "" + +msgid "Signal strength:" +msgstr "" + +msgid "Signal: " +msgstr "" + +msgid "Similar" +msgstr "Similar" + +msgid "Similar broadcasts:" +msgstr "Transmisii similare" + +msgid "Simple" +msgstr "Simplu" + +msgid "Simple titleset (compatibility for legacy players)" +msgstr "Titlu simplu (compatibilitate pentru playerele legacy)" + +msgid "Single" +msgstr "Individual" + +msgid "Single EPG" +msgstr "EPG Individual" + +msgid "Single satellite" +msgstr "Satelit individual" + +#, fuzzy +msgid "Single step (GOP)" +msgstr "Singlestep (GOP)" + +msgid "Single transponder" +msgstr "Transponder individual" + +msgid "Site latitude" +msgstr "" + +msgid "Site longitude" +msgstr "" + +msgid "Skin" +msgstr "" + +msgid "Skins" +msgstr "Skinuri" + +#, fuzzy +msgid "Skip empty services" +msgstr "Servicii de protectie" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "" + +#, fuzzy +msgid "Sleep timer" +msgstr "Sleep timer" + +msgid "SleepTimer Configuration" +msgstr "" + +msgid "Sleeptimer" +msgstr "" + +#, fuzzy +msgid "Slide picture in loop" +msgstr "pune poza in loop" + +#, fuzzy +msgid "Slide show interval (sec.)" +msgstr "Interval prezentare (sec.)" + +#, python-format +msgid "Slot %d" +msgstr "Slot %d" + +msgid "Slovak" +msgstr "" + +msgid "Slovenian" +msgstr "" + +msgid "Slow" +msgstr "Incet" + +#, fuzzy +msgid "Slow motion speeds" +msgstr "Viteza imagine cu incetinitorul" + +#, fuzzy +msgid "Small progress" +msgstr "In curs de desfasurare" + +msgid "Social/Political/Economics" +msgstr "" + +msgid "SoftCam / CI" +msgstr "" + +#, fuzzy +msgid "Softcam type" +msgstr "Software" + +msgid "Software" +msgstr "Software" + +msgid "Software management" +msgstr "" + +msgid "Software manager setup" +msgstr "" + +msgid "Software restore" +msgstr "Revenire la softul anterior" + +msgid "Software update" +msgstr "Actualizare software" + +msgid "Softwaremanager information" +msgstr "" + +msgid "Some plugins are not available:\n" +msgstr "Anumite plugin-uri nu sunt disponibile:\n" + +#, fuzzy, python-format +msgid "Sorry, %s has not been installed!" +msgstr "MediaScanner nu este instalat!" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "" + +#, fuzzy +msgid "Sorry, no backups found!" +msgstr "Nu au fost gasite fisiere backup!" + +#, fuzzy +msgid "Sorry, no details available!" +msgstr "Detaliile nu sunt disponibile!" + +#, fuzzy +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"Destinatia aleasa pentru fisierele backup nu poate fi creata.\n" +"Va rugam alegeti alta destinatie." + +msgid "Sort" +msgstr "" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Sortare A-Z" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +#, fuzzy +msgid "Sort time" +msgstr "Timpul de sortare" + +msgid "Sound" +msgstr "Sunet" + +#, fuzzy +msgid "Sound carrier" +msgstr "Purtatoare audio" + +msgid "Source request" +msgstr "" + +msgid "South" +msgstr "Sud" + +msgid "Spanish" +msgstr "Spaniola" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +msgid "Split preview mode" +msgstr "" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "" + +#, fuzzy +msgid "Standard" +msgstr "standard" + +msgid "Standart list" +msgstr "" + +msgid "Standby" +msgstr "Asteptare" + +#, fuzzy +msgid "Standby / restart" +msgstr "Asteptare / Restart" + +msgid "Standby after current event" +msgstr "" + +#, python-format +msgid "Standby fan %d PWM" +msgstr "" + +#, python-format +msgid "Standby fan %d voltage" +msgstr "" + +msgid "Standby in " +msgstr "" + +msgid "StandbyLED" +msgstr "" + +msgid "Start from the beginning" +msgstr "Incepe de la capat" + +msgid "Start offline decode" +msgstr "" + +msgid "Start recording?" +msgstr "Incepe inregistrarea?" + +msgid "Start test" +msgstr "Incepe test" + +#, fuzzy +msgid "Start time" +msgstr "Ora de incepere" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +#, fuzzy +msgid "Start timeshift" +msgstr "start timeshift" + +msgid "Start with list screen" +msgstr "" + +msgid "Starting on" +msgstr "Incepand de la" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +msgid "Step east" +msgstr "Un pas catre est" + +msgid "Step west" +msgstr "Un pas catre vest" + +msgid "Stepped east" +msgstr "" + +msgid "Stepped west" +msgstr "" + +msgid "Stop" +msgstr "Stop" + +#, fuzzy +msgid "Stop PiP" +msgstr "stop pip" + +msgid "Stop current event and disable coming events" +msgstr "Oprire eveniment curent si dezactivare evenimente urmatoare" + +msgid "Stop current event but not coming events" +msgstr "Oprire eveniment curent dar nu si evenimentele urmatoare" + +#, fuzzy +msgid "Stop entry" +msgstr "stop intrarea" + +msgid "Stop playing this movie?" +msgstr "Opriti redarea filmului?" + +msgid "Stop recording" +msgstr "" + +msgid "Stop recording and delete" +msgstr "" + +msgid "Stop service on return to movie list" +msgstr "" + +msgid "Stop test" +msgstr "Oprire test" + +msgid "Stop testing plane after # failed transponders" +msgstr "Oprire testare dupa # transpondere esuate" + +msgid "Stop testing plane after # successful transponders" +msgstr "Oprire testare dupa # transpondere reusite" + +msgid "Stop timer recording" +msgstr "" + +#, fuzzy +msgid "Stop timeshift" +msgstr "stop timeshift" + +#, fuzzy +msgid "Stop timeshift?" +msgstr "Oprire Timeshift" + +msgid "Stopped" +msgstr "" + +msgid "Store at index" +msgstr "" + +msgid "Store position" +msgstr "Memoreaza pozitia" + +msgid "Stored position" +msgstr "Pozitie memorata" + +msgid "Stream" +msgstr "" + +msgid "Stream request" +msgstr "" + +msgid "Strongest position" +msgstr "" + +msgid "Subservice list..." +msgstr "Lista subserviciilor..." + +msgid "Subservices" +msgstr "Subservicii" + +msgid "Subtitle Quickmenu" +msgstr "" + +#, fuzzy +msgid "Subtitle alignment" +msgstr "Selectare subtitrare" + +msgid "Subtitle border width" +msgstr "" + +msgid "Subtitle delay when timing is bad" +msgstr "" + +msgid "Subtitle delay when timing lacks" +msgstr "" + +#, fuzzy +msgid "Subtitle font size" +msgstr "Subtitrari" + +msgid "Subtitle language selection 1" +msgstr "" + +msgid "Subtitle language selection 2" +msgstr "" + +msgid "Subtitle language selection 3" +msgstr "" + +msgid "Subtitle language selection 4" +msgstr "" + +#, fuzzy +msgid "Subtitle position" +msgstr "Selectare subtitrare" + +msgid "Subtitle selection" +msgstr "Selectare subtitrare" + +msgid "Subtitle selection..." +msgstr "" + +msgid "Subtitle settings" +msgstr "" + +msgid "Subtitles" +msgstr "Subtitrari" + +msgid "Sun" +msgstr "Dum" + +msgid "Sunday" +msgstr "Duminica" + +#, fuzzy +msgid "Swap PiP and main picture" +msgstr "schimba pip si imagine principala" + +#, fuzzy +msgid "Swap services" +msgstr "Schimbare servicii" + +msgid "Swedish" +msgstr "Suedeza" + +msgid "Switch TV to correct input" +msgstr "" + +msgid "Switch between filelist/playlist" +msgstr "" + +msgid "Switch between normal mode and list mode" +msgstr "" + +msgid "Switch to HDMI in mode" +msgstr "" + +#, fuzzy +msgid "Switch to filelist" +msgstr "mergi la filelist" + +msgid "Switch to next channel" +msgstr "" + +#, fuzzy +msgid "Switch to next channel in history" +msgstr "canalul urmator in istoric" + +#, fuzzy +msgid "Switch to next sub service" +msgstr "Schimba la urmatorul subserviciu" + +#, fuzzy +msgid "Switch to playlist" +msgstr "mergi la filelist" + +#, fuzzy +msgid "Switch to previous channel" +msgstr "Schimba la subserviciul anterior" + +#, fuzzy +msgid "Switch to previous channel in history" +msgstr "canalul anterior din istoric" + +#, fuzzy +msgid "Switch to previous sub service" +msgstr "Schimba la subserviciul anterior" + +msgid "Switchable tuner types:" +msgstr "" + +msgid "Symbol rate" +msgstr "" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "" + +msgid "System" +msgstr "Sistem" + +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "TRANSLATOR_INFO" + +msgid "TS file is too large for ISO9660 level 1!" +msgstr "Fisierul TS este prea mare pentru standardul ISO9660 nivelul 1!" + +msgid "TSID" +msgstr "" + +msgid "TV physical address report" +msgstr "" + +msgid "TXT PID" +msgstr "" + +#, fuzzy +msgid "Table of contents for collection" +msgstr "Lista continuturilor pentru colectie" + +msgid "Tags" +msgstr "Tag-uri" + +msgid "Teletext subtitle color" +msgstr "" + +#, fuzzy +msgid "Temperature and fan control" +msgstr "Control parental" + +msgid "Terrestrial" +msgstr "Terestru" + +msgid "Terrestrial provider" +msgstr "Furnizor terestru" + +msgid "Test DiSEqC settings" +msgstr "Test setari DiSEqC" + +msgid "Test mode" +msgstr "Mod de testare" + +msgid "Test the network configuration of your receiver.\n" +msgstr "" + +#, fuzzy +msgid "Test type" +msgstr "Tipul de test" + +#, fuzzy +msgid "Text color" +msgstr "textcolor" + +msgid "Thai" +msgstr "" + +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" + +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "" + +msgid "The PIN code has been changed successfully." +msgstr "" + +msgid "The PIN codes you entered are different." +msgstr "" + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" + +msgid "The backup failed. Please choose a different backup location." +msgstr "Operatiunea backup nu a reusit. Va rugam alegeti o alta locatie pentru fisierele backup." + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" + +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" + +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"Urmatorul dispozitiv nu a fost gasit: \n" +"\n" +"%s\n" +"\n" +"Doriti sa scrieti flasher-ul USB pe stick?" + +msgid "The following files were found..." +msgstr "Urmatoarele fisiere nu au fost gasite..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "" + +#, fuzzy +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"Plugin-ul LAN wireless nu este instalat!\n" +"Va rugam sa-l instalati." + +#, python-format +msgid "The path %s already exists." +msgstr "Directia %s exista deja." + +msgid "The pin code you entered is wrong." +msgstr "Codul pin introdus este gresit." + +#, python-format +msgid "The results have been written to %s." +msgstr "Rezultatele au fost scrise in %s." + +msgid "The sleep timer has been activated." +msgstr "Sleep timer a fost activat." + +msgid "The sleep timer has been disabled." +msgstr "Sleep timer a fost dezactivat." + +#, fuzzy +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"Plugin-ul LAN wireless nu este instalat!\n" +"Va rugam sa-l instalati." + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "" + +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "Fisierul timer (timer.xml) este corupt si nu a putut fi incarcat." + +#, fuzzy +msgid "The user interface of your receiver is restarting" +msgstr "Va rugam asteptati pana cand reteaua se va restarta..." + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"Plugin-ul LAN wireless nu este instalat!\n" +"Va rugam sa-l instalati." + +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "Aplicatia poate crea un backup pentru setarile actuale. Doriti sa faceti un backup acum?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "" + +msgid "The wizard is finished now." +msgstr "Aplicatia s-a incheiat." + +msgid "There are at least " +msgstr "" + +#, python-format +msgid "There are at least %s updates available." +msgstr "" + +msgid "There are currently no outstanding actions." +msgstr "" + +msgid "There are no updates available." +msgstr "" + +msgid "There is no signal to lock on !" +msgstr "" + +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"S-ar putea sa nu existe spatiu suficient pe partitia selectata.\n" +"Doriti sa continuati?" + +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "Acest DVD RW este deja formatat - reformatarea presupune stergerea tuturorfisierelor de pe disc." + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" + +msgid "This plugin is installed." +msgstr "" + +msgid "This plugin is not installed." +msgstr "" + +msgid "This plugin will be installed." +msgstr "" + +msgid "This plugin will be removed." +msgstr "" + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "" + +#, fuzzy +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"Acest test verifica nume de servere configurate.\n" +"Daca primiti un mesaj \"neconfirmat\":\n" +"- va rugam verificati DHCP, conexiunile si configurarea adaptorului\n" +"- daca ati configurat numele serverelor manual va rugam verificati inregistrarile facute in\"Nume server\" Configurare" + +#, fuzzy +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Acest test verifica daca un cablu de retea este conectat la adaptorul LAN.\n" +"Daca primiti mesajul \"deconectat\":\n" +"- verificati daca un cablu de retea este conectat\n" +"- verificati daca nu cumva cablul este defect" + +#, fuzzy +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Acest test verifica daca o adresa IP valida este gasita pentru adaptorul LAN.\n" +"Daca primiti mesajul \"neconfirmat\":\n" +"- nu a fost gasita o adresa IP valida\n" +"- va rugam verificati DHCP, conexiunile si configurarea adaptorului" + +#, fuzzy +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"Acest test verifica daca adaptorul LAN este setat pentru configurarea automata a adresei IP cu DHCP.\n" +"Daca primiti mesajul \"dezactivat\":\n" +"- adaptorul LAN este configurat pentru configurare IP manual\n" +"- verificati daca ati introdus informatiile corecte despre IP in configurarea adaptorului" + +#, fuzzy +msgid "This test detects your configured LAN adapter." +msgstr "Acest test detecteaza Adaptorul-LAN configurat." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" + +msgid "Three" +msgstr "Trei" + +msgid "Threshold" +msgstr "Prag" + +msgid "Thu" +msgstr "Joi" + +msgid "Thumbnails" +msgstr "Thumbnails" + +msgid "Thursday" +msgstr "Joi" + +msgid "Time" +msgstr "Ora" + +#, fuzzy +msgid "Time scale" +msgstr "Selectare timer" + +msgid "Timer" +msgstr "Timer" + +msgid "Timer Overview" +msgstr "" + +#, fuzzy +msgid "Timer edit" +msgstr "Editare timer" + +#, fuzzy +msgid "Timer editor" +msgstr "Editor Timer" + +msgid "Timer entry" +msgstr "Intrare timer" + +msgid "Timer log" +msgstr "Inregistrare timer" + +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"Suprapunere timer detectata in timers.xml!\n" +"Te rog verifica din nou!" + +#, fuzzy +msgid "Timer overview" +msgstr "Intrare timer" + +#, fuzzy +msgid "Timer recording location" +msgstr "schimba inregistrare (durata)" + +msgid "Timer sanity error" +msgstr "Eroare timer" + +msgid "Timer selection" +msgstr "Selectare timer" + +msgid "Timer selection..." +msgstr "" + +#, fuzzy +msgid "Timer type" +msgstr "Tip Timer" + +msgid "Timeshift" +msgstr "Timeshift" + +msgid "Timeshift Live" +msgstr "" + +msgid "Timeshift location" +msgstr "" + +msgid "Timeshift not possible!" +msgstr "Timeshift nu este posibil!" + +msgid "Timezone" +msgstr "Zona de fus orar" + +msgid "Title" +msgstr "Titlu" + +msgid "Title properties" +msgstr "Proprietati titlu" + +msgid "Titleset mode" +msgstr "Mod titlu" + +msgid "To audio selection" +msgstr "" + +msgid "To subtitle selection" +msgstr "" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" + +msgid "Today" +msgstr "Astazi" + +#, fuzzy +msgid "Toggle a cut mark at the current position" +msgstr "schimba o marcare la pozitia curenta" + +#, fuzzy +msgid "Tone amplitude" +msgstr "Mod ton" + +msgid "Tone mode" +msgstr "Mod ton" + +msgid "Toneburst" +msgstr "Toneburst" + +msgid "Toneburst A/B" +msgstr "Toneburst A/B" + +msgid "Top and bottom" +msgstr "" + +msgid "Track" +msgstr "Piesa" + +msgid "Translation" +msgstr "Traducere" + +msgid "Translation:" +msgstr "Traducere:" + +msgid "Translations" +msgstr "" + +msgid "Transmission mode" +msgstr "Mod transmisie" + +msgid "Transponder" +msgstr "Transponder" + +#, fuzzy +msgid "Transponder type" +msgstr "Tip transponder" + +msgid "Trash can" +msgstr "" + +msgid "Tries left:" +msgstr "Incercari ramase:" + +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Cautare transpondere folosite in reteaua de cablu...va rugam asteptati..." + +msgid "Trying to download a new packetlist. Please wait..." +msgstr "Descarcare a unei noi liste de pachete. Va rugam asteptati..." + +msgid "Tue" +msgstr "Mar" + +msgid "Tuesday" +msgstr "Marti" + +msgid "Tune" +msgstr "Acordare" + +#, fuzzy +msgid "Tune and focus" +msgstr "Stare tuner" + +msgid "Tune failed!" +msgstr "Acordare esuata!" + +msgid "Tuner" +msgstr "Tuner" + +msgid "Tuner configuration" +msgstr "Configurare tuner" + +msgid "Tuner is not supported" +msgstr "" + +#, fuzzy +msgid "Tuner slot" +msgstr "Slot tuner" + +msgid "Tuner status" +msgstr "Stare tuner" + +#, fuzzy, python-format +msgid "Tuner status %s" +msgstr "Stare tuner" + +msgid "Tuner type" +msgstr "" + +msgid "Turkish" +msgstr "Turca" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +msgid "Two" +msgstr "Doi" + +msgid "Type" +msgstr "Tip" + +msgid "Type of scan" +msgstr "Tipul scanarii" + +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "" + +#, fuzzy +msgid "USB stick" +msgstr "USB Stick" + +msgid "USB stick wizard" +msgstr "Expert USB stick" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +msgid "Undo install" +msgstr "" + +msgid "Undo uninstall" +msgstr "" + +msgid "Unencrypted" +msgstr "" + +msgid "UnhandledKey" +msgstr "" + +msgid "Unicable" +msgstr "Unicable" + +msgid "Unicable LNB" +msgstr "Unicable LNB" + +msgid "Unicable Martix" +msgstr "Unicable Martix" + +msgid "Uninstall" +msgstr "" + +msgid "Universal LNB" +msgstr "LNBUniversal " + +msgid "Unknown" +msgstr "" + +msgid "Unmount" +msgstr "" + +msgid "Unsupported" +msgstr "" + +msgid "Update" +msgstr "Updateza" + +msgid "Update and ask to reboot" +msgstr "" + +msgid "Update and reboot (recommended)" +msgstr "" + +#, fuzzy +msgid "Update channel list only" +msgstr "canalul urmator in istoric" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "" +msgstr[1] "" + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "" + +msgid "Update has completed." +msgstr "" + +msgid "Updatefeed not available." +msgstr "" + +msgid "Updating software catalog" +msgstr "" + +msgid "Upgrading" +msgstr "Upgradare" + +msgid "Use" +msgstr "Foloseste" + +msgid "Use DHCP" +msgstr "Foloseste DHCP" + +msgid "Use EIT EPG information when it is available." +msgstr "" + +msgid "Use FreeSat EPG information when it is available." +msgstr "" + +msgid "Use MHW EPG information when it is available." +msgstr "" + +msgid "Use Netmed EPG information when it is available." +msgstr "" + +msgid "Use TV remote control" +msgstr "" + +#, fuzzy +msgid "Use USALS for this sat" +msgstr "Foloseste usals pentru acest satelit" + +msgid "Use ViaSat EPG information when it is available." +msgstr "" + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +msgid "Use a gateway" +msgstr "Foloseste un gateway" + +msgid "Use fastscan channel names" +msgstr "" + +msgid "Use fastscan channel numbering" +msgstr "" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "" + +#, fuzzy +msgid "Use interface" +msgstr "Foloseste Interfata" + +msgid "Use official channel numbering" +msgstr "" + +msgid "Use original DVB subtitle position" +msgstr "" + +msgid "Use original teletext position" +msgstr "" + +msgid "Use power measurement" +msgstr "Foloseste Masurarea Energiei" + +#, fuzzy +msgid "Use the network wizard to configure selected network adapter" +msgstr "Foloseste expertul de retea, pentru a configura reteaua\n" + +#, fuzzy +msgid "Use the network wizard to configure your network\n" +msgstr "Foloseste expertul de retea, pentru a configura reteaua\n" + +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "Foloseste tastele sus/jos pentru a selecta optiunile. Dopa asta, apasa OK." + +#, fuzzy +msgid "Use the wizard to set up basic features" +msgstr "Foloseste expertul pentru setarile de baza" + +#, fuzzy +msgid "Use these input device settings?" +msgstr "Inchideti fara sa salvati setarile?" + +#, fuzzy +msgid "Use these settings?" +msgstr "Revenire la setarile sistemului" + +msgid "Use this video enhancement settings?" +msgstr "" + +#, fuzzy +msgid "Use trash can in movielist" +msgstr "Revenire la lista de filme" + +msgid "Used service scan type" +msgstr "Tipul serviciului folosit pentru scanare" + +msgid "User - bouquets" +msgstr "" + +msgid "User defined" +msgstr "Userul ales" + +msgid "User defined transponder" +msgstr "" + +#, fuzzy +msgid "User interface" +msgstr "Foloseste Interfata" + +msgid "Username" +msgstr "" + +#, python-format +msgid "Using LNB %d" +msgstr "" + +msgid "Using fixed address" +msgstr "" + +#, python-format +msgid "Using tuner %s" +msgstr "" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "" + +msgid "VCR scart" +msgstr "VCR scart" + +msgid "VMGM (intro trailer)" +msgstr "VMGM (intro trailer)" + +msgid "Vertical" +msgstr "Vertical" + +msgid "Vertical turning speed" +msgstr "" + +msgid "Video PID" +msgstr "" + +msgid "Video enhancement preview" +msgstr "" + +msgid "Video enhancement settings" +msgstr "" + +msgid "Video enhancement setup" +msgstr "" + +#, fuzzy +msgid "Video fine tuning" +msgstr "Acord fin video" + +#, fuzzy +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Selectare intrare video\n" +"\n" +"Te rugam apasa Ok daca vezi aceasta pagina pe TV-ul tau(sau selecteaza un port de intrare diferit).\n" +"\n" +"Urmatorul port de intrare va fi automat probat in 10 secunde." + +msgid "Video mode selection." +msgstr "Selectare MOD VIDEO" + +#, fuzzy +msgid "Video output" +msgstr "Iesire video" + +#, fuzzy +msgid "Video setup" +msgstr "Video Setup" + +#, fuzzy +msgid "Video wizard" +msgstr "Expert Video" + +#, python-format +msgid "Video: %s fps" +msgstr "" + +msgid "VideoMode" +msgstr "" + +msgid "Videocodec" +msgstr "" + +msgid "Videoformat" +msgstr "" + +msgid "Videosize" +msgstr "" + +msgid "View Rass interactive..." +msgstr "Vezi Rass interactive..." + +msgid "View details" +msgstr "" + +msgid "View list of available " +msgstr "" + +msgid "View list of available CommonInterface extensions" +msgstr "Vezi lista cu estensiile CommonInterface disponibile" + +msgid "View list of available EPG extensions." +msgstr "Vezi lista extensiilor EPG disponible" + +msgid "View list of available Satellite equipment extensions." +msgstr "" + +msgid "View list of available communication extensions." +msgstr "Vezi lista comunicatiilor disponibile" + +msgid "View list of available default settings" +msgstr "Vezi lista setarilor predefinite disponibile" + +#, fuzzy +msgid "View list of available display and userinterface extensions." +msgstr "Vezi lista cu Display disponibile si extemsiile Interfata user" + +msgid "View list of available multimedia extensions." +msgstr "Vezi lista extensiilor multimedia disponibile " + +msgid "View list of available networking extensions" +msgstr "Vezi lista estensiilor de retea disponibile" + +msgid "View list of available recording extensions" +msgstr "Vezi lista extensiilor inregistrate disponibile" + +msgid "View list of available skins" +msgstr "Vezi lista cu skin-urile disponibile" + +msgid "View list of available software extensions" +msgstr "Vezi lista estensiilor software disponibile" + +msgid "View list of available system extensions" +msgstr "Vezi lista estensiilor sistemului disponibile" + +#, fuzzy +msgid "View photos..." +msgstr "Vezi Pozele..." + +msgid "View teletext..." +msgstr "Vezi teletext ..." + +#, fuzzy +msgid "View video CD..." +msgstr "Vezi video CD..." + +#, fuzzy +msgid "Virtual keyboard" +msgstr "Tastatura Virtuala" + +msgid "Voltage mode" +msgstr "Mod Voltaj" + +msgid "Volume" +msgstr "Volum" + +msgid "W" +msgstr "W" + +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "" + +msgid "WPA" +msgstr "WPA" + +msgid "WPA or WPA2" +msgstr "WPA sau WPA2" + +msgid "WPA2" +msgstr "WPA2" + +msgid "WSS on 4:3" +msgstr "WSS on 4:3" + +msgid "Waiting" +msgstr "Asteaptare" + +msgid "Waiting for mount" +msgstr "" + +msgid "Waiting for partition" +msgstr "" + +msgid "Wakeup" +msgstr "" + +msgid "Wakeup TV from standby" +msgstr "" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "" + +msgid "Wakeup signal from TV" +msgstr "" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "" + +#, fuzzy +msgid "Watch movies..." +msgstr "Redare filme inregistrate..." + +#, fuzzy +msgid "Watch recordings..." +msgstr "se inregistreaza" + +msgid "Wed" +msgstr "Wed" + +msgid "Wednesday" +msgstr "Miercuri\t" + +msgid "Weekday" +msgstr "Saptamanal" + +msgid "Weighted position" +msgstr "" + +#, fuzzy +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"Bine ai venit la editarea Cutlist.\n" +"\n" +"Cauta inceputul listei care vrei sa o editezi. Apasa Ok pt a incepe cut'.\n" +"\n" +"Cauta sfarsitul listei.Apasa ok, apoi selecteaza 'end cut'. Asta este tot" + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" + +msgid "Welcome..." +msgstr "Bine ai venit..." + +msgid "West" +msgstr "Vest" + +msgid "West limit set" +msgstr "" + +msgid "What do you want to scan?" +msgstr "Ce vrei sa scanezi" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "" + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "" + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "" + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "" + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "" + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "" + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "" + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "" + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "" + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "" + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "" + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "" + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "" + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "" + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "" + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "" + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "" + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "" + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "" + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "" + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "" + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "" + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "" + +msgid "When enabled, number markers will be hiden." +msgstr "" + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "" + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "" + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "" + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "" + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "" + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "" + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "" + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "" + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "" + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "" + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "" + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "" + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "" + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "" + +#, fuzzy +msgid "When enabled, use DHCP for the IP configuration." +msgstr "deschide configurarea nameserverului" + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "" + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "" + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "" + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "" + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "" + +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"Cand faci resetare de fabrica, o sa pierzi Toate Setarile\n" +"(inclusiv Bouquets, servicii, sateliti ...)\n" +"Dupa resetare receiverul tau va reporni automat!\n" +"\n" +"Esti sigur ca vrei sa faci setari de fabrica?" + +msgid "Where do you want to backup your settings?" +msgstr "Unde vrei sa salvezi datele" + +msgid "Where to save temporary timeshift recordings?" +msgstr "Unde salvam inregistrarile temporate timeshift?" + +msgid "Wireless LAN" +msgstr "" + +#, fuzzy +msgid "Wireless network" +msgstr "Wireless Network" + +#, fuzzy +msgid "Wireless network configuration..." +msgstr "Configurare retea..." + +msgid "Wireless network connection setup" +msgstr "" + +msgid "Wireless network connection setup." +msgstr "" + +msgid "Wireless network state" +msgstr "" + +msgid "With popup" +msgstr "" + +msgid "Without popup" +msgstr "" + +msgid "Would you like to install a softcam?" +msgstr "" + +msgid "Write error while recording. Disk full?\n" +msgstr "Inregistrare esusta. Disk plin?\n" + +msgid "Write failed!" +msgstr "Scriere esuata" + +msgid "YPbPr" +msgstr "YPbPr" + +msgid "Year" +msgstr "An" + +msgid "Yellow DVB subtitles" +msgstr "" + +msgid "Yes" +msgstr "Da" + +msgid "Yes and save" +msgstr "" + +msgid "Yes and save in movie dir" +msgstr "" + +msgid "Yes to all" +msgstr "" + +msgid "Yes, always" +msgstr "" + +msgid "Yes, and delete this movie" +msgstr "Da si sterge acest film" + +msgid "Yes, backup my settings!" +msgstr "Da, salveaza-mi setarile" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +msgid "Yes, do a manual scan now" +msgstr "Da, scaneaza manual acum" + +msgid "Yes, do an automatic scan now" +msgstr "Da, scaneaza automat acum" + +msgid "Yes, do another manual scan now" +msgstr "Da, scaneaza inca odata manual" + +msgid "Yes, perform a shutdown now." +msgstr "Da, inchide acum" + +msgid "Yes, restore the settings now" +msgstr "Da, restaureaza setari acum" + +msgid "Yes, returning to movie list" +msgstr "Da, rintoarcere la lista filme" + +msgid "Yesterday" +msgstr "" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" + +msgid "You can cancel the installation." +msgstr "" + +msgid "You can cancel the removal." +msgstr "" + +msgid "You can continue watching TV etc. while this is running." +msgstr "" + +msgid "You can install this plugin." +msgstr "" + +msgid "You can only burn receiver recordings!" +msgstr "" + +msgid "You can remove this plugin." +msgstr "" + +msgid "You cannot delete this!" +msgstr "Nu poti sterge asta!" + +msgid "You didn't select a channel to record from." +msgstr "" + +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "Ai ales sa faci backup la setari. Apasa OK pentru inceperea backup-uluiacum." + +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "Ai ales sa creezi un usb stick .NFI flasher bootabil. Acesta va repartitiona stickul usb asadar datele de pe el vor fi sterse." + +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "Ai ales sa faci restore la setari. Enigma2 se va restarta dupa restore. Apasa OK pentru a face restore acum." + +#, python-format +msgid "You have to wait %s!" +msgstr "Ai de asteptat %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" + +msgid "You system does not support ext4" +msgstr "" + +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "A avut loc un backup. Acum vom continua sa explicam procesul de upgrade." + +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "Colectia ta excede marimea unui sigle layer medium, vei avea nevoie de un blank dual layer DVD!" + +msgid "Your current collection will get lost!" +msgstr "" + +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"Firmware-ul de la procesor trebuie upgradat.\n" +"Apasa OK pentru a incepe." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "" + +msgid "Your network configuration has been activated." +msgstr "Configurarea retelei a fost activata." + +msgid "Your receiver does not have an internet connection" +msgstr "" + +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" + +msgid "Your receiver is rebooting" +msgstr "" + +msgid "Your receiver is shutting down" +msgstr "" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "" + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "" + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "" + +msgid "Your receiver will got to standby due to inactivity." +msgstr "" + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "" + +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" + +msgid "Zap" +msgstr "" + +msgid "Zap back to previously tuned service?" +msgstr "" + +msgid "Zap back to service before positioner setup?" +msgstr "Treci inapoi la serviciul inainte de setarea pozitionerului?" + +msgid "Zap back to service before tuner setup?" +msgstr "" + +msgid "Zap focus to Picture in Picture" +msgstr "" + +msgid "Zap focus to main screen" +msgstr "" + +msgid "Zap mode" +msgstr "" + +msgid "Zap to selected channel" +msgstr "" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "" + +msgid "[alternative edit]" +msgstr "[editare alternativa]" + +msgid "[bouquet edit]" +msgstr "[editare bouquet]" + +msgid "[favourite edit]" +msgstr "[editare favorite]" + +msgid "[move mode]" +msgstr "[mod mutare]" + +msgid "a gui to assign services/providers to common interface modules" +msgstr "un gui sa repartizeze servicii/provideri la modulele common interface" + +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "un gui sa repartizeze servicii/provideri/caid-uri la modulele common interface" + +msgid "abort alternatives edit" +msgstr "renunta la editarea alternativelor" + +msgid "abort bouquet edit" +msgstr "renunta la editarea bouquetelor" + +msgid "abort favourites edit" +msgstr "renunta la editarea favoritelor" + +msgid "about to start" +msgstr "in curs de incepere" + +msgid "activate network adapter configuration" +msgstr "" + +msgid "add alternatives" +msgstr "adauga alternative" + +msgid "add bookmark" +msgstr "adauga bookmark" + +msgid "add bouquet" +msgstr "adauga bouquet" + +msgid "add marker" +msgstr "adauga marker" + +msgid "add service to bouquet" +msgstr "adauga serviciu la bouquet" + +msgid "add service to favourites" +msgstr "adauga serviciu la favorite" + +msgid "add to parental protection" +msgstr "adauga la protectie parentala" + +msgid "adult movie/drama" +msgstr "" + +msgid "advanced" +msgstr "avansat" + +msgid "adventure/western/war" +msgstr "" + +msgid "advertisement/shopping" +msgstr "" + +msgid "after " +msgstr "" + +#, fuzzy +msgid "alphabetic" +msgstr "sortare alfabetica" + +msgid "alphabetic reverse" +msgstr "" + +msgid "alternative" +msgstr "" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "" + +msgid "arts/culture magazine" +msgstr "" + +msgid "athletics" +msgstr "" + +msgid "audio tracks" +msgstr "track-uri audio" + +msgid "auto" +msgstr "auto" + +#, fuzzy +msgid "automatic" +msgstr "Automat" + +msgid "back" +msgstr "inapoi" + +msgid "background image" +msgstr "imagine fundal" + +msgid "ballet" +msgstr "" + +#, python-format +msgid "bc%s" +msgstr "" + +msgid "better" +msgstr "mai bine" + +msgid "black" +msgstr "negru" + +msgid "black & white" +msgstr "" + +msgid "blacklist" +msgstr "lista neagra" + +msgid "blue" +msgstr "albastru" + +msgid "broadcasting/press" +msgstr "" + +#, fuzzy +msgid "by date" +msgstr "sorteaza dupa data" + +msgid "cartoon/puppets" +msgstr "" + +msgid "center" +msgstr "" + +msgid "centered" +msgstr "" + +msgid "centered, wrapped" +msgstr "" + +msgid "chapters" +msgstr "capitole" + +msgid "childrens's/youth program (general)" +msgstr "" + +msgid "circular left" +msgstr "circular stanga" + +msgid "circular right" +msgstr "circular dreapta" + +msgid "comedy" +msgstr "" + +msgid "complex" +msgstr "complex" + +msgid "config menu" +msgstr "meniu configurari" + +msgid "confirmed" +msgstr "confirmat" + +msgid "connected" +msgstr "conectat" + +msgid "continue" +msgstr "continua" + +msgid "cooking" +msgstr "" + +msgid "copy to bouquets" +msgstr "copiaza in bouquete" + +msgid "create directory" +msgstr "creaza director" + +#, python-format +msgid "currently installed image: %s" +msgstr "" + +msgid "daily" +msgstr "zilnic" + +msgid "day" +msgstr "ziua" + +msgid "default" +msgstr "" + +msgid "delete cut" +msgstr "sterge decupare" + +msgid "delete..." +msgstr "" + +msgid "descramble and record ecm" +msgstr "" + +msgid "detective/thriller" +msgstr "" + +msgid "disable" +msgstr "dezactiveaza" + +msgid "disable move mode" +msgstr "dezactiveaza mod mutare" + +msgid "disabled" +msgstr "dezactivat" + +msgid "disconnected" +msgstr "deconectat" + +msgid "discussion/interview/debate" +msgstr "" + +msgid "do nothing" +msgstr "nu face nimic" + +msgid "documentary" +msgstr "" + +msgid "don't descramble, record ecm" +msgstr "" + +msgid "done!" +msgstr "gata!" + +msgid "east" +msgstr "" + +msgid "economics/social advisory" +msgstr "" + +msgid "edit alternatives" +msgstr "editeaza alternative" + +msgid "education/science/factual topics (general)" +msgstr "" + +msgid "empty" +msgstr "gol" + +msgid "enable" +msgstr "activeaza" + +msgid "enable bouquet edit" +msgstr "activeaza editare bouquet" + +msgid "enable favourite edit" +msgstr "activeaza editare favorite" + +msgid "enable move mode" +msgstr "activeaza mod mutare" + +msgid "enabled" +msgstr "activat" + +msgid "end alternatives edit" +msgstr "sfarsit editare alternative" + +msgid "end bouquet edit" +msgstr "sfarsit editare bouquet" + +msgid "end cut here" +msgstr "sfarsit decupare aici" + +msgid "end favourites edit" +msgstr "sfarsit editare favorite" + +msgid "entertainment (10-16 year old)" +msgstr "" + +msgid "entertainment (6-14 year old)" +msgstr "" + +msgid "equal to" +msgstr "egal cu" + +msgid "equestrian" +msgstr "" + +msgid "exit DVD player or return to file browser" +msgstr "iesire DVD player sau inapoi la file browser" + +msgid "exit movielist" +msgstr "" + +msgid "exit network adapter configuration" +msgstr "iesire configurare retea" + +msgid "exit networkadapter setup menu" +msgstr "iesire meniu setari adaptor retea" + +msgid "experimental film/video" +msgstr "" + +msgid "false" +msgstr "" + +msgid "fashion" +msgstr "" + +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "file formaturi (BMP, PNG, JPG, GIF)" + +msgid "filename" +msgstr "filename" + +msgid "film/cinema" +msgstr "" + +msgid "fine arts" +msgstr "" + +msgid "fine-tune your display" +msgstr "reglati fin display-ul" + +msgid "fitness & health" +msgstr "" + +#, fuzzy +msgid "flat alphabetic" +msgstr "sortare alfabetica" + +#, fuzzy +msgid "flat alphabetic reverse" +msgstr "sortare alfabetica" + +msgid "folk/traditional music" +msgstr "" + +msgid "football/soccer" +msgstr "" + +msgid "foreign countries/expeditions" +msgstr "" + +msgid "forward to the next chapter" +msgstr "inainte la capitolul urmator" + +msgid "free" +msgstr "liber" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "" + +msgid "game show/quiz/contest" +msgstr "" + +msgid "gardening" +msgstr "" + +msgid "go to deep standby" +msgstr "treci la deep standby" + +msgid "go to standby" +msgstr "intra in standby" + +msgid "grab this frame as bitmap" +msgstr "capteaza imaginea ca bitmap" + +msgid "green" +msgstr "verde" + +msgid "handicraft" +msgstr "" + +msgid "height" +msgstr "" + +msgid "help..." +msgstr "ajutor..." + +msgid "horizontal" +msgstr "orizontal" + +msgid "information/education/school program" +msgstr "" + +msgid "init module" +msgstr "init modul" + +msgid "init modules" +msgstr "init module" + +msgid "insert mark here" +msgstr "introdu semn aici" + +msgid "invalid type" +msgstr "" + +msgid "jazz" +msgstr "" + +msgid "jump back to the previous title" +msgstr "inapoi la titlul anterior" + +msgid "jump forward to the next title" +msgstr "inainte la urmatorul titlu " + +msgid "languages" +msgstr "" + +msgid "leave movie player..." +msgstr "iesi din movie player" + +msgid "left" +msgstr "stanga" + +msgid "left, wrapped" +msgstr "" + +msgid "leisure hobbies (general)" +msgstr "" + +msgid "length" +msgstr "lungime" + +msgid "limit ..., aborting !" +msgstr "" + +msgid "list style compact" +msgstr "listeaza stilul compact" + +msgid "list style compact with description" +msgstr "listeaza stilul compact cu descriere" + +msgid "list style default" +msgstr "listeaza stilul default" + +msgid "list style single line" +msgstr "listeaza stilul cu linie singura" + +msgid "literature" +msgstr "" + +msgid "live broadcast" +msgstr "" + +msgid "locked" +msgstr "inchis" + +msgid "loopthrough to" +msgstr "treci la" + +msgid "magazines/reports/documentary" +msgstr "" + +msgid "manual" +msgstr "manual" + +msgid "martial sports" +msgstr "" + +msgid "medicine/physiology/psychology" +msgstr "" + +msgid "menu" +msgstr "meniu" + +msgid "mins" +msgstr "min" + +msgid "minutes" +msgstr "minute" + +msgid "month" +msgstr "luna" + +msgid "motor sport" +msgstr "" + +msgid "motoring" +msgstr "" + +msgid "move down to last entry" +msgstr "muta jos la ultima intrare" + +msgid "move down to next entry" +msgstr "muta jos la urmatoarea intrare" + +msgid "move up to first entry" +msgstr "muta sus la prima intrare" + +msgid "move up to previous entry" +msgstr "muta sus la anterioara intrare" + +msgid "movie/drama (general)" +msgstr "" + +msgid "multinorm" +msgstr "multinorma" + +msgid "music/ballet/dance (general)" +msgstr "" + +msgid "musical/opera" +msgstr "" + +msgid "nature/animals/environment" +msgstr "" + +msgid "never" +msgstr "niciodata" + +msgid "new media" +msgstr "" + +msgid "news magazine" +msgstr "" + +msgid "news/current affairs (general)" +msgstr "" + +msgid "news/weather report" +msgstr "" + +msgid "no" +msgstr "nu" + +msgid "no CAId selected" +msgstr "niciun CAID selectat" + +msgid "no CI slots found" +msgstr "niciun slot CI gasit" + +msgid "no module found" +msgstr "niciun modul gasit" + +msgid "no storage devices found" +msgstr "" + +msgid "none" +msgstr "nimic" + +msgid "normal" +msgstr "" + +msgid "not configured" +msgstr "" + +msgid "not locked" +msgstr "neinchis" + +msgid "not supported" +msgstr "" + +msgid "not used" +msgstr "nefolosit" + +msgid "nothing connected" +msgstr "nimic conectat" + +msgid "of a DUAL layer medium used." +msgstr "la un DUAL layer folosit mediu" + +msgid "of a SINGLE layer medium used." +msgstr "la un SINGLE layer folosit mediu" + +msgid "off" +msgstr "oprit" + +msgid "offset is" +msgstr "" + +msgid "on" +msgstr "pornit" + +msgid "on READ ONLY medium." +msgstr "la READ ONLY mediu" + +msgid "on end of movie" +msgstr "" + +msgid "once" +msgstr "odata" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +msgid "open nameserver configuration" +msgstr "deschide configurarea nameserverului" + +msgid "original" +msgstr "" + +msgid "original language" +msgstr "" + +msgid "pass" +msgstr "pass" + +msgid "performing arts" +msgstr "" + +msgid "play as picture in picture" +msgstr "" + +msgid "play in mainwindow" +msgstr "" + +msgid "please press OK when ready" +msgstr "te rog apasa OK cand esti gata" + +msgid "please wait, loading picture..." +msgstr "te rog asteapta, se incarca imagine" + +msgid "popular culture/traditional arts" +msgstr "" + +msgid "pre-school children's program" +msgstr "" + +msgid "receiver software because updates are available." +msgstr "" + +msgid "record" +msgstr "inregistrare" + +msgid "recording..." +msgstr "se inregistreaza" + +msgid "red" +msgstr "rosu" + +msgid "religion" +msgstr "" + +msgid "remarkable people" +msgstr "" + +msgid "remove after this position" +msgstr "elimina dupa aceasta pozitie" + +msgid "remove all alternatives" +msgstr "elimina toate alternativele" + +msgid "remove all new found flags" +msgstr "elimina toate steagurile nou gasite" + +msgid "remove before this position" +msgstr "elimina inainte de aceasta pozitie" + +msgid "remove bookmark" +msgstr "elimina bookmark-ul" + +msgid "remove directory" +msgstr "elimina directorul" + +msgid "remove entry" +msgstr "elimina intrarea" + +msgid "remove from parental protection" +msgstr "elimina din protectie parentala" + +msgid "remove new found flag" +msgstr "elimina insemnul nou" + +msgid "remove selected satellite" +msgstr "elimina satelitul selectat" + +msgid "remove this mark" +msgstr "elimina aceasta marcare" + +msgid "rename entry" +msgstr "" + +msgid "repeat playlist" +msgstr "repeta playlist" + +msgid "repeated" +msgstr "repetat" + +msgid "reverse by date" +msgstr "" + +msgid "rewind to the previous chapter" +msgstr "deruleaza la capitolul anterior" + +msgid "right" +msgstr "dreapta" + +msgid "right, wrapped" +msgstr "" + +msgid "rock/pop" +msgstr "" + +msgid "romance" +msgstr "" + +msgid "save last directory on exit" +msgstr "salveaza ultimul director la iesire" + +msgid "save playlist on exit" +msgstr "salveaza playlist la iesire" + +msgid "scan state" +msgstr "starea scanarii" + +msgid "science fiction/fantasy/horror" +msgstr "" + +msgid "second cable of motorized LNB" +msgstr "cablul secund de la LNB motorizat" + +msgid "seconds" +msgstr "secunde" + +msgid "select" +msgstr "selectat" + +msgid "select CAId's" +msgstr "selecteaza CAId-uri" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +msgid "select menu entry" +msgstr "selecteaza intrarea meniu" + +msgid "select movie" +msgstr "selecteaza film" + +msgid "select the movie path" +msgstr "" + +msgid "serious music/classic music" +msgstr "" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "" + +msgid "service PIN" +msgstr "" + +msgid "set as startup service" +msgstr "" + +msgid "setup PIN" +msgstr "" + +msgid "show DVD main menu" +msgstr "arata meniul principal DVD" + +msgid "show all tags" +msgstr "" + +msgid "show alternatives" +msgstr "arata alternative" + +msgid "show event details" +msgstr "arata detaliile evenimentului" + +msgid "show extended description" +msgstr "" + +msgid "show mediaplayer on mainmenu" +msgstr "" + +msgid "show softwaremanager in setup menu" +msgstr "" + +msgid "show softwaremanager on blue button" +msgstr "" + +msgid "show tag menu" +msgstr "" + +msgid "show transponder info" +msgstr "arata info despre transponder" + +msgid "show/game show (general)" +msgstr "" + +msgid "shuffle" +msgstr "" + +msgid "shut down" +msgstr "" + +msgid "simple" +msgstr "simplu" + +msgid "skip backward" +msgstr "skin inapoi" + +msgid "skip forward" +msgstr "skin inainte" + +msgid "soap/melodram/folkloric" +msgstr "" + +msgid "social/political issues/economics (general)" +msgstr "" + +msgid "social/spiritual science" +msgstr "" + +msgid "sorting of playlists" +msgstr "" + +msgid "special characters" +msgstr "" + +msgid "special events" +msgstr "" + +msgid "special format data DVD (HDTV compatible)" +msgstr "" + +msgid "sports (general)" +msgstr "" + +msgid "sports magazine" +msgstr "" + +msgid "standard" +msgstr "standard" + +msgid "start cut here" +msgstr "incepe decupare aici" + +msgid "start directory" +msgstr "start director" + +msgid "stepsize" +msgstr "" + +msgid "stereo" +msgstr "stereo" + +msgid "stop using as startup service" +msgstr "" + +msgid "switch to bookmarks" +msgstr "mergi la bookmarks" + +msgid "switch to filelist" +msgstr "mergi la filelist" + +msgid "switch to the next angle" +msgstr "mergi la urmatorul unghi" + +msgid "switch to the next audio track" +msgstr "mergi la urmatorul track audio" + +msgid "switch to the next subtitle language" +msgstr "mergi la urmatoarea limba pentru subtitrari" + +msgid "talk show" +msgstr "" + +msgid "team sports" +msgstr "" + +msgid "technology/natural science" +msgstr "" + +msgid "template file" +msgstr "fisier template" + +msgid "tennis/squash" +msgstr "" + +msgid "this recording" +msgstr "aceasta inregistrare" + +msgid "this service is protected by a parental control pin" +msgstr "acest serviciu este protejat de pin pentru control parental" + +msgid "toggle time, chapter, audio, subtitle info" +msgstr "schimba ceas, capitol, audio, info sutitrari" + +msgid "top" +msgstr "" + +msgid "tourism/travel" +msgstr "" + +msgid "true" +msgstr "" + +msgid "unavailable" +msgstr "" + +msgid "unconfirmed" +msgstr "neconfirmat" + +msgid "undefined" +msgstr "" + +msgid "unknown" +msgstr "necunoscut" + +msgid "unknown service" +msgstr "serviciu necunoscut" + +msgid "unpublished" +msgstr "" + +msgid "until standby/restart" +msgstr "" + +msgid "user defined" +msgstr "user definit" + +msgid "variety show" +msgstr "" + +msgid "vertical" +msgstr "vertical" + +msgid "wait for ci..." +msgstr "asteapta ci..." + +msgid "wait for mmi..." +msgstr "asteapta mmi..." + +msgid "waiting" +msgstr "in asteptare" + +msgid "water sport" +msgstr "" + +msgid "weekly" +msgstr "saptamanal" + +msgid "west" +msgstr "" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "" + +msgid "whitelist" +msgstr "lista alba" + +msgid "width" +msgstr "" + +msgid "winter sport" +msgstr "" + +msgid "wireless network interface" +msgstr "" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "" +msgstr[1] "" + +msgid "working" +msgstr "lucreaza" + +msgid "yellow" +msgstr "galben" + +msgid "yes" +msgstr "da" + +msgid "yes (keep feeds)" +msgstr "da (pastreaza feed-uri)" + +msgid "zap" +msgstr "zap" + +msgid "zap and record" +msgstr "" + +msgid "zapped" +msgstr "zapped" + +#, fuzzy +#~ msgid "Activate PiP" +#~ msgstr "Activeaza PIP" + +#, fuzzy +#~ msgid "Add/remove timer for current event" +#~ msgstr "adauga inregistrare (opreste dupa evenimentul curent)" + +#, fuzzy +#~ msgid "All satellites" +#~ msgstr "Toti Sateliti" + +#~ msgid "BA" +#~ msgstr "BA" + +#~ msgid "BB" +#~ msgstr "BB" + +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "Efectul butonului 'pauza' cand e pe pauza" + +#~ msgid "Committed DiSEqC command" +#~ msgstr "Comanda DiSEqC-ului selectat" + +#~ msgid "DiSEqC repeats" +#~ msgstr "DiSEqC in cascada" + +#~ msgid "No satellite frontend found!!" +#~ msgstr "Nu a fost gasit niciun satelit!" + +#~ msgid "Remove timer" +#~ msgstr "Eliminare timer" + +#~ msgid "Send DiSEqC" +#~ msgstr "Trimite DiSEqC" + +#, fuzzy +#~ msgid "Switch next channel" +#~ msgstr "canalul urmator" + +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Uncommitted DiSEqC command" + +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "Treci inapoi la serviciul inainte de satfinder?" diff --git a/po/ru.po b/po/ru.po new file mode 100644 index 0000000..5a93b35 --- /dev/null +++ b/po/ru.po @@ -0,0 +1,8111 @@ +msgid "" +msgstr "" +"Project-Id-Version: enigma2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2013-10-05 09:57+0200\n" +"Last-Translator: Dima73 <Dima-73@inbox.lv>\n" +"Language-Team: Dima73 <Dima-73@inbox.lv>\n" +"Language: ru\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-Generator: Poedit 1.5.5\n" +"X-Poedit-SourceCharset: iso-8859-5\n" + +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"Дополнительные параметры и наÑтройки." + +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"ПоÑле Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸ ОК, пожалуйÑта подождите!" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" +"\n" +"БÑкап наÑтроек вашего реÑивера." + +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"Редактировать Ð°Ð´Ñ€ÐµÑ Ð¸Ñточника обновлениÑ." + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" +"\n" +"Управление дополнениÑми и плагинами вашего реÑивера" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" +"\n" +"Онлайн обновление Ñофта вашего реÑивера." + +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"Ðажмите ОК на пульте Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ." + +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"ВоÑÑтановить резервные копии по дате." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" +"\n" +"ВоÑÑтановить наÑтройки вашего реÑивера." + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" +"\n" +"ВоÑÑтановить ваш реÑивер Ñ Ð½Ð¾Ð²Ð¾Ð¹ прошивкой." + +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"Сканирование и уÑтановка локальных дополнений." + +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Выберите уÑтройÑтво Ð´Ð»Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð³Ð¾ копированиÑ.\n" +"Текущее уÑтройÑтво: " + +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"ПроÑмотр, уÑтановка и удаление доÑтупных или уÑтановленных пакетов." + +msgid " (PiP)" +msgstr " (PiP)" + +msgid " (Radio)" +msgstr " (Радио)" + +msgid " (TV)" +msgstr " (ТВ)" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +msgid " extensions." +msgstr " дополнений." + +msgid " ms" +msgstr " мÑ" + +msgid " packages selected." +msgstr " пакетов выбрано." + +msgid " updates available." +msgstr " доÑтупных обновлений." + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "%2d:%02d" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "%2d:%02d:%02d" + +msgid "%A %d %B" +msgstr "%A %d %B" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "%A %d %B" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "%A %e %B %Y" + +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "%a %e/%m" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "%a %e/%m %-H:%M" + +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "%d канал найден" +msgstr[1] "%d канала найдено" +msgstr[2] "%d каналов найдено" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "%d файл" +msgstr[1] "%d файла" +msgstr[2] "%d файлов" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d чаÑ" +msgstr[1] "%d чаÑа" +msgstr[2] "%d чаÑов" + +#, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d процеÑÑ Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½ в фоновом режиме!" +msgstr[1] "%d процеÑÑа запущено в фоновом режиме!" +msgstr[2] "%d процеÑÑов запущено в фоновом режиме!" + +#, python-format +msgid "%d min" +msgstr "%d мин" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d минута" +msgstr[1] "%d минуты" +msgstr[2] "%d минут" + +#, python-format +msgid "%d minutes" +msgstr "%d минут" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d Ñекунда" +msgstr[1] "%d Ñекунды" +msgstr[2] "%d Ñекунд" + +#, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "%d директориÑ" +msgstr[1] "%d директории" +msgstr[2] "%d директорий" + +#, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "%d беÑÐ¿Ñ€Ð¾Ð²Ð¾Ð´Ð½Ð°Ñ Ñеть найдена!" +msgstr[1] "%d беÑпроводные Ñети найдены!" +msgstr[2] "%d беÑпроводных Ñетей найдено!" + +msgid "%d-%b-%Y %-H:%M" +msgstr "%d-%b-%Y %-H:%M" + +msgid "%d-%m" +msgstr "%d-%m" + +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "%k:%M %e/%m" + +#, python-format +msgid "%s %s free disk space" +msgstr "%s %s Ñвободное меÑто на диÑке" + +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "%s больше не иÑпользуетÑÑ. Должен ли он быть удален?" + +#, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "%s обновленный пакет доÑтупен" +msgstr[1] "%s обновленных пакета доÑтупно" +msgstr[2] "%s обновленных пакетов доÑтупно" + +#, python-format +msgid "%s%d min" +msgstr "%s%d мин" + +#, python-format +msgid "%s/%s: %s" +msgstr "%s/%s: %s" + +msgid "(ZAP)" +msgstr "(Перейти)" + +msgid "(empty)" +msgstr "(пуÑто)" + +msgid "(show optional DVD audio menu)" +msgstr "(показать опцион. DVD аудио меню)" + +msgid "* Only available if more than one interface is active." +msgstr "* ДоÑтупно еÑли активно более одного интерфейÑа." + +msgid "/s" +msgstr "/Ñ" + +msgid "0" +msgstr "0" + +msgid "1" +msgstr "1" + +msgid "1.0" +msgstr "1.0" + +msgid "1.1" +msgstr "1.1" + +msgid "1.2" +msgstr "1.2" + +msgid "12V output" +msgstr "12V выход" + +msgid "13 V" +msgstr "13 V" + +msgid "16:10" +msgstr "16:10" + +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +msgid "16:9" +msgstr "16:9" + +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +msgid "16:9 always" +msgstr "16:9 вÑегда" + +msgid "18 V" +msgstr "18 V" + +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "" + +msgid "24" +msgstr "" + +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +msgid "3" +msgstr "3" + +msgid "30" +msgstr "" + +msgid "3d mode" +msgstr "Режим 3D" + +msgid "4" +msgstr "4" + +msgid "4:3" +msgstr "4:3" + +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +msgid "5" +msgstr "5" + +msgid "6" +msgstr "6" + +msgid "7" +msgstr "7" + +msgid "8" +msgstr "8" + +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +msgid "<Current movielist location>" +msgstr "<Текущее меÑто ÑпиÑка видео>" + +msgid "<Default movie location>" +msgstr "<МеÑто видео по дефолту>" + +msgid "<Last timer location>" +msgstr "<МеÑто поÑледнего таймера>" + +msgid "<unknown>" +msgstr "<неизвеÑтный>" + +msgid "??" +msgstr "??" + +msgid "A" +msgstr "A" + +#, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"Конфигурационный файл (%s) был изменен в процеÑÑе уÑтановки.\n" +"Сохранить вашу модификацию?" + +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"Конфигурационный файл (%s) был изменен в процеÑÑе уÑтановки.\n" +"Сохранить вашу верÑию?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"ЗапиÑÑŒ по таймеру завершена, реÑивер будет переведен в режим ожиданиÑ.\n" +"Сделать Ñто ÑейчаÑ?" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"ЗапиÑÑŒ по таймеру закончена, ваш реÑивер будет выключен.\n" +"Выключить ÑейчаÑ?" + +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "ГрафичеÑкий EPG Ð´Ð»Ñ Ð²Ñех ÑервиÑов в выбранных фаворитах" + +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"ЗапиÑÑŒ была начата:\n" +"%s" + +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"Ð’ текущее Ð²Ñ€ÐµÐ¼Ñ Ð¸Ð´ÐµÑ‚ запиÑÑŒ.\n" +"Что вы хотите Ñделать?" + +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "Ð’ текущее Ð²Ñ€ÐµÐ¼Ñ Ð¸Ð´ÐµÑ‚ запиÑÑŒ. ПожалуйÑта оÑтановите запиÑÑŒ перед попыткой наÑтроить позиционер." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "Ð’ текущее Ð²Ñ€ÐµÐ¼Ñ Ð¸Ð´ÐµÑ‚ запиÑÑŒ.ПожалуйÑта, оÑтановите запиÑÑŒ, прежде чем попытатьÑÑ Ñканировать." + +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "Ð’ текущее Ð²Ñ€ÐµÐ¼Ñ Ð¸Ð´ÐµÑ‚ запиÑÑŒ. ОÑтановите запиÑÑŒ перед поиÑком Ñпутника." + +#, python-format +msgid "A required tool (%s) was not found." +msgstr "Ðужный инÑтрумент (%s), не найден." + +msgid "A search for available updates is currently in progress." +msgstr "ПоиÑк доÑтупных обновлений. ПожалуйÑта, подождите ..." + +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"Второй наÑтроенный Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð±Ñ‹Ð» найден.\n" +"\n" +"Ð’Ñ‹ хотите отключить второй Ñетевой интерфейÑ?" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"Таймер Ñна хочет перевеÑти ваш\n" +"реÑивер в режим ожиданиÑ. Сделать Ñто ÑейчаÑ?" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"Таймер Ñна хочет выключить\n" +"ваш реÑивер. Выключить ÑейчаÑ?" + +msgid "A small overview of the available icon states and actions." +msgstr "Ðебольшой обзор доÑтупных ÑоÑтоÑний иконок и дейÑтвий." + +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"Таймер не может начать запиÑÑŒ!\n" +"Отключить текущий ÑÐµÑ€Ð²Ð¸Ñ Ð¸ попробовать еще раз?\n" + +msgid "A/V settings" +msgstr "Ðудио/Видео наÑтройки" + +msgid "AC3/DTS downmix" +msgstr "AC3/DTS микширование" + +msgid "Abort" +msgstr "Прервать" + +msgid "About" +msgstr "ИнформациÑ" + +msgid "About..." +msgstr "ИнформациÑ..." + +msgid "Accesspoint:" +msgstr "Точка доÑтупа:" + +msgid "Action on long powerbutton press" +msgstr "Длительное нажатие кнопки питаниÑ" + +msgid "Action on short powerbutton press" +msgstr "Короткое нажатие кнопки питаниÑ" + +msgid "Activate Picture in Picture" +msgstr "Включить картинку в картинке" + +msgid "Activate current configuration" +msgstr "Ðктивировать текущие наÑтройки" + +msgid "Activate network settings" +msgstr "Ðктивировать Ñетевые уÑтановки" + +msgid "Activate the configured network settings." +msgstr "Ðктивировать выбранные наÑтройки Ñети." + +msgid "Adapter settings" +msgstr "ÐаÑтройка адаптера" + +msgid "Add" +msgstr "Добавить" + +msgid "Add Bookmark" +msgstr "Добавить закладку" + +msgid "Add a mark" +msgstr "Добавить метку" + +msgid "Add a nameserver entry" +msgstr "Добавить DNS Ñервер" + +msgid "Add a new title" +msgstr "Добавить новое название" + +msgid "Add bookmark" +msgstr "добавить закладку" + +msgid "Add directory to playlist" +msgstr "добавить папку к ÑпиÑку воÑпроизведениÑ" + +msgid "Add file to playlist" +msgstr "добавить файл к ÑпиÑку воÑпроизведениÑ" + +msgid "Add files to playlist" +msgstr "добавить файлы в плейлиÑÑ‚" + +msgid "Add more details to the crash log" +msgstr "Добавить подробноÑти в крÑш-лог" + +msgid "Add provider" +msgstr "Добавить провайдера" + +msgid "Add recording (enter recording duration)" +msgstr "Ðачать запиÑÑŒ (введите длительноÑÑ‚ÑŒ запиÑи)" + +msgid "Add recording (enter recording endtime)" +msgstr "Ðачать запиÑÑŒ (введите Ð²Ñ€ÐµÐ¼Ñ Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ)" + +msgid "Add recording (indefinitely)" +msgstr "Ðачать запиÑÑŒ (окончание неопределено)" + +msgid "Add recording (stop after current event)" +msgstr "Ðачать запиÑÑŒ (Ñтоп поÑле текущего ÑобытиÑ)" + +msgid "Add service" +msgstr "Добавить ÑервиÑ" + +msgid "Add timer" +msgstr "Добавить таймер" + +msgid "Add title" +msgstr "Добавить название" + +msgid "Add to bouquet" +msgstr "Добавить в пакет" + +msgid "Add to favourites" +msgstr "Добавить в фавориты" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "Ð’Ñ‹Ñтавите наÑтройки 3D" + +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "ÐаÑтройте параметры цвета, так чтобы вÑе оттенки цветов были макÑимально видны, наÑколько Ñто возможно. ЕÑли вы довольны результатом, нажмите кнопку ОК Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð²Ð¸Ð´ÐµÐ¾ наÑтроек, или иÑпользуйте цифровые клавиши Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð° других теÑтов Ñкрана " + +msgid "Advanced" +msgstr "" + +msgid "Advanced options" +msgstr "РаÑширенные опции" + +msgid "Advanced restore" +msgstr "РаÑширенное воÑÑтановление" + +msgid "Advanced software" +msgstr "РаÑширенное воÑÑтановление" + +msgid "Advanced software plugin" +msgstr "РаÑширенный плагин Ñофта" + +msgid "Advanced video enhancement setup" +msgstr "Меню дополнительных видео наÑтроек" + +msgid "Advanced video setup" +msgstr "РаÑÑˆÐ¸Ñ€ÐµÐ½Ð½Ð°Ñ Ð½Ð°Ñтройка видео" + +msgid "After event" +msgstr "ПоÑле ÑобытиÑ" + +msgid "Album" +msgstr "Ðльбом" + +msgid "Alignment of events" +msgstr "Выравнивание Ñобытий" + +msgid "Alignment of service names" +msgstr "Выравнивание имени ÑервиÑа" + +msgid "All" +msgstr "Ð’Ñе" + +msgid "All ages" +msgstr "Ð’Ñе категории" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "Выделить" + +msgid "Allocate unused memory index" +msgstr "Выделить неиÑпользуемый номер памÑти" + +msgid "Allow quit movieplayer with exit" +msgstr "Разрешить выйти из видеоплеера кнопкой выход" + +msgid "Allow subtitle language to equal audio language" +msgstr "Показывать Ñубтитры при Ñовпадении Ñ Ñзыком аудио" + +msgid "Allow subtitles for hearing impaired" +msgstr "Субтитры Ð´Ð»Ñ Ð»ÑŽÐ´ÐµÐ¹ Ñ Ð¾Ñлабленным Ñлухом" + +msgid "Alpha" +msgstr "ПрозрачноÑÑ‚ÑŒ" + +msgid "Alternative" +msgstr "Ðльтернативный ДÐС" + +msgid "Alternative numbering mode" +msgstr "Ðльтернативный режим нумерации каналов" + +msgid "Alternative services tuner priority" +msgstr "Приоритет тюнера в альтернативных ÑервиÑах" + +msgid "Always ask" +msgstr "Ð’Ñегда Ñпрашивать" + +msgid "Always hide infobar" +msgstr "" + +msgid "An empty filename is illegal." +msgstr "ПуÑтое Ð¸Ð¼Ñ Ð½ÐµÐ´Ð¾Ð¿ÑƒÑтимо." + +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "Ошибка загрузки ÑпиÑка пакетов. ПожалуйÑта, попробуйте еще раз." + +msgid "An unknown error occurred!" +msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°!" + +msgid "And will put your receiver in standby over " +msgstr "И переведет ваш реÑивер в режим Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ñ‡ÐµÑ€ÐµÐ· " + +msgid "Any activity" +msgstr "Ð›ÑŽÐ±Ð°Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾ÑÑ‚ÑŒ" + +msgid "Arabic" +msgstr "ÐрабÑкий" + +msgid "Are you sure to remove this entry?" +msgstr "" + +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"Ð’Ñ‹ уверены, что хотите активировать Ñту конфигурацию Ñети?\n" +"\n" + +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"Ð’Ñ‹ уверены, что хотите удалить\n" +"Ñледующий бекап:\n" + +msgid "Are you sure you want to exit this wizard?" +msgstr "Ð’Ñ‹ уверены, что хотите выйти из Ñтого маÑтера?" + +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"Ð’Ñ‹ уверены, что хотите перезагрузить Ñетевые интерфейÑÑ‹?\n" +"\n" + +#, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Ð’Ñ‹ уверены, что хотите воÑÑтановить Ñтот бÑкап:\n" +"%s\n" +"Ваш реÑивер будет перезагружен поÑле воÑÑтановлениÑ!" + +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Ð’Ñ‹ уверены, что хотите воÑÑтановить бÑкап?\n" +"Ваш реÑивер будет перезагружен поÑле воÑÑтановлениÑ!" + +msgid "Artist" +msgstr "ÐртиÑÑ‚" + +msgid "Arts/Culture" +msgstr "ИÑкуÑÑтво/Культура" + +msgid "Ask user" +msgstr "СпроÑить пользователÑ" + +msgid "Aspect ratio" +msgstr "Соотношение Ñторон" + +msgid "Assigned CAIds:" +msgstr "Ðазначены CAID:" + +msgid "Assigned services/provider:" +msgstr "Ðазначены каналы/провайдеры:" + +msgid "At beginning" +msgstr "в начале" + +msgid "At end" +msgstr "в конце" + +msgid "Audio" +msgstr "Ðудио" + +msgid "Audio PID" +msgstr "Ðудио PID" + +msgid "Audio language selection 1" +msgstr "Выбор Ñзыка аудио 1" + +msgid "Audio language selection 2" +msgstr "Выбор Ñзыка аудио 2" + +msgid "Audio language selection 3" +msgstr "Выбор Ñзыка аудио 3" + +msgid "Audio language selection 4" +msgstr "Выбор Ñзыка аудио 4" + +msgid "Audio options..." +msgstr "ÐаÑтройки аудио..." + +#, python-format +msgid "Audio track (%s) format" +msgstr "Ð—Ð²ÑƒÐºÐ¾Ð²Ð°Ñ Ð´Ð¾Ñ€Ð¾Ð¶ÐºÐ° (%s) формат" + +#, python-format +msgid "Audio track (%s) language" +msgstr "Ð·Ð²ÑƒÐºÐ¾Ð²Ð°Ñ Ð´Ð¾Ñ€Ð¾Ð¶ÐºÐ° (%s) Ñзык" + +msgid "Author: " +msgstr "Ðвтор: " + +msgid "Authoring mode" +msgstr "Режим авторизации" + +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Ðвто" + +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "ÐвтоматичеÑки разделÑÑ‚ÑŒ на главы каждые ? минут (0 =никогда)" + +msgid "Auto flesh" +msgstr "Ðвто flesh" + +msgid "Auto focus" +msgstr "ÐвтофокуÑировка" + +msgid "Auto focus commencing ..." +msgstr "ÐвтофокуÑировка началаÑÑŒ ..." + +msgid "Auto language selection" +msgstr "Ðвто выбор Ñзыка" + +msgid "Auto scart switching" +msgstr "ÐвтоматичеÑкое переключение SCART" + +msgid "Automatic" +msgstr "ÐвтоматичеÑки" + +msgid "Automatic scan" +msgstr "ÐвтоматичеÑкий поиÑк" + +msgid "Automatically start timeshift after" +msgstr "ÐвтоматичеÑкий Ñтарт таймшифта через" + +msgid "Automatically turn on external subtitles" +msgstr "ÐвтоматичеÑкое включение внешних Ñубтитров" + +msgid "Available format variables" +msgstr "ДоÑтупные форматы переменных" + +msgid "B" +msgstr "B" + +msgid "BER" +msgstr "BER" + +msgid "BER:" +msgstr "BER:" + +msgid "Back" +msgstr "Ðазад" + +msgid "Background" +msgstr "Фон" + +msgid "Background color" +msgstr "Цвет фона" + +msgid "Background delete option" +msgstr "Удаление в фоновом режиме" + +msgid "Background delete speed" +msgstr "СкороÑÑ‚ÑŒ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð² фоновом режиме" + +msgid "Backup completed." +msgstr "Бекап завершен." + +msgid "Backup failed." +msgstr "Сохранение не удалоÑÑŒ." + +msgid "Backup is running..." +msgstr "ВыполнÑетÑÑ Ñохранение наÑтроек..." + +msgid "Backup system settings" +msgstr "БÑкап ÑиÑтемных наÑтроек" + +msgid "Band" +msgstr "Диапазон" + +msgid "Bandwidth" +msgstr "ПропуÑÐºÐ½Ð°Ñ ÑпоÑобноÑÑ‚ÑŒ" + +msgid "Basque" +msgstr "БаÑкÑкий" + +msgid "Begin time" +msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð½Ð°Ñ‡Ð°Ð»Ð°" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +msgid "Behavior of 0 key in PiP-mode" +msgstr "Поведение кнопки 0 в режиме PiP" + +msgid "Behavior when a movie is started" +msgstr "Поведение при начале воÑпр. видео" + +msgid "Behavior when a movie is stopped" +msgstr "Поведение при оÑтановке воÑпр. видео" + +msgid "Behavior when a movie reaches the end" +msgstr "Поведение при окончании видео" + +msgid "Big PiP" +msgstr "" + +msgid "Bitrate:" +msgstr "Битрейт:" + +msgid "Black screen" +msgstr "Черный Ñкран" + +msgid "Black screen till locked" +msgstr "Черный Ñкран-заблокировано" + +msgid "Block noise reduction" +msgstr "Понижение блочных шумов" + +msgid "Blue boost" +msgstr "Добавить Ñиний" + +msgid "Bookmarks" +msgstr "Закладки" + +msgid "Brightness" +msgstr "ЯркоÑÑ‚ÑŒ" + +msgid "Bulgarian" +msgstr "ВенгерÑкий" + +msgid "Burn DVD" +msgstr "Прожечь DVD" + +#, python-format +msgid "Burn audio track (%s)" +msgstr "прожечь аудио дорожку (%s)" + +msgid "Burn existing image to DVD" +msgstr "Прожечь ÑущеÑтвующий образ на DVD" + +msgid "Burn to DVD" +msgstr "Прожечь на DVD" + +msgid "Bus: " +msgstr "Шина:" + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "По умолчанию, SNR показываетÑÑ Ð² дБ (еÑли поддерживает тюнер). При включении параметра SNR будет показыватьÑÑ Ð² процентах." + +msgid "C" +msgstr "С" + +msgid "C-Band" +msgstr "C-Диапазон" + +msgid "CH" +msgstr "" + +msgid "CI assignment" +msgstr "Ðазначение CI" + +msgid "CVBS" +msgstr "CVBS" + +msgid "Cable" +msgstr "Кабельное тв" + +msgid "Cable Scan" +msgstr "Кабельное Ñканирование" + +msgid "Cache thumbnails" +msgstr "Кешировать ЭÑкизы" + +msgid "Calculate" +msgstr "РаÑчет" + +msgid "Calculate all positions" +msgstr "РаÑÑчитать вÑе позиции" + +msgid "Calculation complete" +msgstr "РаÑчет окончен" + +msgid "Calibrate" +msgstr "Калибровка" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "Может быть иÑпользован Ð´Ð»Ñ Ð½Ð°Ð±Ð¾Ñ€Ð° кадров в Ñекунду между внешними Ñубтитрами и видео." + +msgid "Cancel" +msgstr "Отмена" + +msgid "Cannot determine" +msgstr "Ðевозможно определить" + +msgid "Cannot find any signal ..., aborting !" +msgstr "Ðе могу найти любой Ñигнал ...,прерываем !" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "Ðевозможно перемеÑтить файлы на различных диÑках или в ÑиÑтеме в корзину" + +msgid "Cannot move to trash can" +msgstr "Ðевозможно перемеÑтить в корзину" + +msgid "Capacity: " +msgstr "ЕмкоÑÑ‚ÑŒ: " + +msgid "Card" +msgstr "Карта" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "Субтитры DVB по центру" + +msgid "Center time-labels and remove date" +msgstr "Отметка времени по центру без даты" + +msgid "Change bouquets in quickzap" +msgstr "Сменить букеты при быÑтром переключении" + +msgid "Change pin code" +msgstr "Сменить PIN-код" + +msgid "Change recording (duration)" +msgstr "Изменить запиÑÑŒ (продолжительноÑÑ‚ÑŒ)" + +msgid "Change recording (endtime)" +msgstr "Изменить запиÑÑŒ (окончание)" + +msgid "Change repeat and delay settings?" +msgstr "Изменить наÑтройки задержки и повтора?" + +msgid "Change service PIN" +msgstr "Изменить PIN-код ÑервиÑа" + +msgid "Change service PINs" +msgstr "Изменить PIN-коды ÑервиÑов" + +msgid "Change setup PIN" +msgstr "Изменить PIN-код наÑтроек" + +msgid "Change step size" +msgstr "Изменение размера шага" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "лог изменений" + +msgid "Channel" +msgstr "Канал" + +msgid "Channel list type" +msgstr "Тип ÑпиÑка каналов" + +msgid "Channel not in services list" +msgstr "Канала нет в ÑпиÑке ÑервиÑов" + +msgid "Channel selection" +msgstr "Селектор каналов" + +msgid "Channel:" +msgstr "Канал:" + +msgid "Channellist menu" +msgstr "Меню ÑпиÑка каналов" + +msgid "Chap." +msgstr "Глава." + +msgid "Chapter" +msgstr "Раздел" + +msgid "Chapter:" +msgstr "Раздел:" + +msgid "Check" +msgstr "Проверка" + +msgid "Check the internet connection" +msgstr "Проверьте интернет-Ñоединение" + +msgid "Check the internet connection again" +msgstr "Проверьте интернет-Ñоединение Ñнова" + +msgid "Checking filesystem..." +msgstr "проверка Файловой ÑиÑтема..." + +msgid "Checking the internet connection" +msgstr "Проверка интернет ÑоединениÑ" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" +"Проверка тюнера %d\n" +"DiSEqC порт %s Ð´Ð»Ñ %s" + +msgid "Children/Youth" +msgstr "Дети/Молодежь" + +msgid "Choose which tuner to configure." +msgstr "Выберите тюнер Ð´Ð»Ñ Ð½Ð°Ñтройки." + +msgid "Circular left" +msgstr "ÐšÑ€ÑƒÐ³Ð¾Ð²Ð°Ñ Ð»ÐµÐ²Ð°Ñ" + +msgid "Circular right" +msgstr "ÐšÑ€ÑƒÐ³Ð¾Ð²Ð°Ñ Ð¿Ñ€Ð°Ð²Ð°Ñ" + +msgid "Cleanup" +msgstr "ОчиÑтить" + +msgid "Clear" +msgstr "ОчиÑтка" + +msgid "Clear before scan" +msgstr "ОчиÑтка перед Ñканированием" + +msgid "Clear fixed" +msgstr "ОчиÑтка ФикÑированного" + +msgid "Clear log" +msgstr "ОчиÑтить лог" + +msgid "Clear playlist" +msgstr "очиÑтить ÑпиÑок воÑпроизведениÑ" + +msgid "Close" +msgstr "Закрыть" + +msgid "Close PiP on exit" +msgstr "Закрыть PiP кнопкой выход" + +msgid "Close title selection" +msgstr "Закрыть выбор названий" + +msgid "Code rate HP" +msgstr "СкороÑÑ‚ÑŒ ÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ HP" + +msgid "Code rate LP" +msgstr "СкороÑÑ‚ÑŒ ÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ LP" + +msgid "Coderate HP" +msgstr "СкороÑÑ‚ÑŒ ÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ HP" + +msgid "Coderate LP" +msgstr "СкороÑÑ‚ÑŒ ÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ LP" + +msgid "Collection name" +msgstr "Ðазвание коллекции" + +msgid "Collection settings" +msgstr "ÐаÑтройки коллекции" + +msgid "Color format" +msgstr "Формат цвета" + +msgid "Command execution..." +msgstr "Выполнение команды..." + +msgid "Command order" +msgstr "ПоÑледовательноÑÑ‚ÑŒ команд" + +msgid "Common Interface" +msgstr "Ð˜Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð¼Ð¾Ð´ÑƒÐ»ÐµÐ¹" + +msgid "Common Interface assignment" +msgstr "Ð˜Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð½Ð°Ñтроек модулей" + +msgid "Communication" +msgstr "СвÑзь" + +msgid "Compact flash" +msgstr "Компакт-флÑш" + +msgid "Complete" +msgstr "Полное" + +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "ÐšÐ¾Ð¼Ð¿Ð»ÐµÐºÑ (микширование звуковых дорожек и Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð²Ð¸Ð´ÐµÐ¾)" + +msgid "Composition of the recording filenames" +msgstr "Содержание названий файлов запиÑей" + +msgid "Configuration mode" +msgstr "Режим конфигурации" + +#, python-format +msgid "Configuration mode: %s" +msgstr "Режим конфигурации: %s" + +msgid "Configuration..." +msgstr "КонфигурациÑ..." + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "ÐаÑтройка дополнительной задержки Ð´Ð»Ñ ÑƒÐ»ÑƒÑ‡ÑˆÐµÐ½Ð¸Ñ Ñинхронизации внешних Ñубтитров." + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "ÐаÑтройка дополнительной задержки Ð´Ð»Ñ ÑƒÐ»ÑƒÑ‡ÑˆÐµÐ½Ð¸Ñ Ñинхронизации Ñубтитров." + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "Укажите, как долго инфобар будет оÑтаватьÑÑ Ð²Ð¸Ð´Ð¸Ð¼Ñ‹Ð¼ поÑле его активации." + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "ПозволÑет показать данные EPG о прошедших ÑобытиÑÑ…. Удобно когда хотите знать что-то о передаче, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð²Ð¾Ñ‚-вот закончитÑÑ Ð»Ð¸Ð±Ð¾ только что закончилаÑÑŒ (в минутах)." + +msgid "Configure how recording filenames are constructed." +msgstr "ÐаÑтройка ÑпоÑоба ÑоÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð¼ÐµÐ½ запиÑываемых файлов." + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +msgid "Configure interface" +msgstr "ÐаÑтройка интерфейÑа" + +msgid "Configure nameservers" +msgstr "ÐаÑтройка DNS" + +msgid "Configure on which devices the background delete option should be used." +msgstr "Укажите, на каких уÑтройÑтвах Ñледует иÑпользовать опцию фонового удалениÑ." + +msgid "Configure remote control type" +msgstr "Выбор пульта Д/У" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "ÐаÑтройте режим DiSEqC Ð´Ð»Ñ Ñтой LNB." + +msgid "Configure the IP address." +msgstr "ÐаÑтройка IP-адреÑа." + +msgid "Configure the aspect ratio of the screen." +msgstr "ÐаÑтройка ÑÐ¾Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ Ñторон Ñкрана." + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "Укажите, что делать когда воÑпроизведение оÑтановлено вручную." + +msgid "Configure the behavior when movie playback is started." +msgstr "Укажите, что делать при начале воÑпроизведениÑ." + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "Укажите, что делать при окончании воÑпроизведениÑ." + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "ÐаÑтройте ширину границы Ñубтитров. Ð¢ÐµÐ¼Ð½Ð°Ñ Ð³Ñ€Ð°Ð½ÑŒ делает Ñубтитры легко читаемыми на Ñветлом фоне." + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "УÑтановите уровень ÑркоÑти диÑÐ¿Ð»ÐµÑ Ð² режиме ожиданиÑ." + +msgid "Configure the brightness level of the front panel display." +msgstr "УÑтановите уровень ÑркоÑти Ð´Ð»Ñ Ð½Ð¾Ñ€Ð¼Ð°Ð»ÑŒÐ½Ð¾Ð¹ работы диÑплеÑ." + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "ÐаÑтройте цвет внешних Ñубтитров, альтернативный (нормальный белый, желтый курÑив, отчетливо голубой, подчеркнутый зеленый), белый или желтый." + +msgid "Configure the color of the teletext subtitles." +msgstr "ÐаÑтройка цвета телетекÑта Ñубтитров." + +msgid "Configure the contrast level of the front panel display." +msgstr "УÑтановите уровень контраÑтноÑти Ð´Ð»Ñ Ð´Ð¸ÑплеÑ." + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "ÐаÑтройка продолжительноÑти в минутах Ð´Ð»Ñ Ð·Ð°Ñтавки(хранитель Ñкрана)." + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "ÐаÑтройте продолжительноÑÑ‚ÑŒ времени Ð´Ð»Ñ Ð²Ñ‹ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ñ€ÐµÑивера, еÑли реÑивер находитÑÑ Ð² режиме ожиданиÑ." + +msgid "Configure the first audio language (highest priority)." +msgstr "ÐаÑтройка первого Ñзыка аудио (наивыÑший приоритет)" + +msgid "Configure the first subtitle language (highest priority)." +msgstr "ÐаÑтройка первого Ñзыка Ñубтитров(наивыÑший приоритет)" + +msgid "Configure the font size of the subtitles." +msgstr "ÐаÑтройка размера шрифта Ñубтитров." + +msgid "Configure the fourth audio language." +msgstr "ÐаÑтройка четвертого Ñзыка аудио." + +msgid "Configure the fourth subtitle language." +msgstr "ÐаÑтройка четвертого Ñзыка Ñубтитров." + +msgid "Configure the function of a long press on the power button." +msgstr "ÐаÑтройка функции длинного Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸ питаниÑ." + +msgid "Configure the function of a short press on the power button." +msgstr "ÐаÑтройка функции короткого Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸ питаниÑ." + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "ÐаÑтройте функцию кнопки '0' когда окно PIP активно." + +msgid "Configure the gateway." +msgstr "Ð’Ñ‹ можете наÑтроить шлюз." + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "ÐаÑтройка общей задержки звуковых дорожек Ñо звуком Dolby Digital." + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "ÐаÑтройка общей задержки звуковых дорожек Ñо Ñтереозвуком." + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "ÐаÑтройка жеÑткого диÑка, чтобы перевеÑти в режим Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾Ñле определенного времени проÑтоÑ." + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "ÐаÑтройка горизонтального Ð²Ñ‹Ñ€Ð°Ð²Ð½Ð¸Ð²Ð°Ð½Ð¸Ñ Ñубтитров." + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "Выберите начальную ÑкороÑÑ‚ÑŒ перемотки вперед." + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "Выберите начальную ÑкороÑÑ‚ÑŒ перемотки назад." + +msgid "Configure the latitude of your location." +msgstr "УÑтановите долготу вашего меÑтоположениÑ." + +msgid "Configure the longitude of your location." +msgstr "УÑтановить широту вашего меÑтоположениÑ." + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "ÐаÑтройка минимального объема диÑкового проÑтранÑтва, которое должно быть доÑтупно Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи. Когда количеÑтво проÑтранÑтва падает ниже Ñтого значениÑ, запиÑи будут удалены из корзины." + +msgid "Configure the nameserver (DNS)." +msgstr "Ð’Ñ‹ можете уÑтановить Ð¸Ð¼Ñ Ñервера." + +msgid "Configure the netmask." +msgstr "Ð’Ñ‹ можете задать Ñетевую маÑку." + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "ÐаÑтройка количеÑтва дней, через которые запиÑи будут автоматичеÑки удалены из корзины" + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "ÐаÑтройка количеÑтва дней, Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñтарых таймеров и затем автоматичеÑкого ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¸Ð· ÑпиÑка таймеров." + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "ÐаÑтройка задержки оффлайн-Ð´ÐµÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² миллиÑекундах" + +msgid "Configure the possible fast forward speeds." +msgstr "ÐаÑтройка возможных ÑкороÑтей при быÑтрой перемотке вперед." + +msgid "Configure the possible rewind speeds." +msgstr "ÐаÑтройка возможных ÑкороÑтей при перемотке назад." + +msgid "Configure the primary EPG language." +msgstr "ÐаÑтройка оÑновного Ñзыка EPG." + +msgid "Configure the refresh rate of the screen." +msgstr "ÐаÑтройка чаÑтоты Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñкрана." + +msgid "Configure the screen resolution in PC output mode." +msgstr "ÐаÑтройка Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ñкрана в режиме ПК выход." + +msgid "Configure the second audio language." +msgstr "ÐаÑтройка второго Ñзыка аудио" + +msgid "Configure the second subtitle language." +msgstr "ÐаÑтройка второго Ñзыка Ñубтитров" + +msgid "Configure the secondary EPG language." +msgstr "ÐаÑтройка вторичного Ñзыка EPG." + +msgid "Configure the sharpness of the video scaling." +msgstr "ÐаÑтройка резкоÑти маÑÑˆÑ‚Ð°Ð±Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ð¸Ð´ÐµÐ¾." + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "ÐаÑтройте Ð²Ñ€ÐµÐ¼Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑка при нажатии клавиш '1'/'3'" + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "ÐаÑтройте Ð²Ñ€ÐµÐ¼Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑка при нажатии клавиш '4'/'6'" + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "ÐаÑтройте Ð²Ñ€ÐµÐ¼Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑка при нажатии клавиш '7'/'9'" + +msgid "Configure the slow motion speeds." +msgstr "ÐаÑтройка низких ÑкороÑтей." + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "ÐаÑтройка ÑкороÑти процеÑÑа ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð² фоновом режиме. ÐÐ¸Ð·ÐºÐ°Ñ ÑкороÑÑ‚ÑŒ будет иметь меньшее влиÑние на производительноÑÑ‚ÑŒ жеÑткого диÑка." + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "ÐаÑтройте задержку Ñубтитров, когда Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ времени не доÑтупна." + +msgid "Configure the third audio language." +msgstr "ÐаÑтройка третьего Ñзыка аудио" + +msgid "Configure the third subtitle language." +msgstr "ÐаÑтройка третьего Ñзыка Ñубтитров" + +msgid "Configure the transparency of the OSD." +msgstr "ÐаÑтройка прозрачноÑти Ñкранного меню." + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "ÐаÑтройка прозрачноÑти на черном фоне графичеÑких Ñубтитров DVB." + +msgid "Configure the tuner mode." +msgstr "УÑтановите режим тюнера." + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "ÐаÑтройка вида значков индикации ÑоÑтоÑниÑ, при показе в ÑпиÑке фильмов." + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "ÐаÑтройка вертикального Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ñубтитров, измерÑетÑÑ Ð¾Ñ‚ нижней чаÑти Ñкрана." + +msgid "Configure the video output mode (or resolution)." +msgstr "ÐаÑтройка режима видеовыхода (или разрешение)." + +# -------------------------------------------------------------------------- +msgid "Configure the way in which the receiver changes channels." +msgstr "ÐаÑтройте поведение реÑивера при переключении каналов." + +msgid "Configure where completed timers show up in the timer list." +msgstr "Укажите, в каком меÑте ÑпиÑка таймеров должны находитьÑÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ‹Ðµ задачи." + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "Ðужно ли показать(и как долго) второй инфобар при нажатии кнопки OK дважды. Второй инфобар Ñодержит дополнительную информацию о текущем канале." + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "Выберите, Ñледует ли многоканальную звуковую дорожку декодировать в Ñтереозвук." + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "Выберите, нужно ли показать иконку при движении антенны Ñ Ð¼Ð¾Ñ‚Ð¾Ð¿Ð¾Ð´Ð²ÐµÑом." + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "ÐаÑтройка ÑƒÑ€Ð¾Ð²Ð½Ñ Ð´Ð¾Ñтупа Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² меню конфигурации. ЭкÑпертный уровень дает доÑтуп к другим Ñлементам." + +msgid "Configure which color format should be used on the SCART output." +msgstr "Укажите, какой формат цвета должен иÑпользоватьÑÑ Ð½Ð° выходе SCART." + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "Укажите, какой тип тюнера предпочтительнее, еÑли ÑÐµÑ€Ð²Ð¸Ñ Ð´Ð¾Ñтупен на различных типах тюнеров." + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "Укажите, какой тюнер предпочтительнее, еÑли доÑтупны неÑколько тюнеров. ЕÑли уÑтановлено значение 'Ðвто', то ÑиÑтема будет отдавать приоритет тюнеру Ñ Ð½Ð°Ð¸Ð¼ÐµÐ½ÑŒÑˆÐ¸Ð¼ чиÑлом каналов/Ñпутников." + +msgid "Configure your internal LAN" +msgstr "ÐаÑтройка LAN" + +msgid "Configure your network again" +msgstr "Повторить наÑтройку Ñети" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "ÐаÑтройте параметры Ñети, а затем нажмите OK, чтобы начать поиÑк" + +msgid "Configure your wireless LAN again" +msgstr "Повторить наÑтройку беÑпроводной Ñети" + +msgid "Configures which video output connector will be used." +msgstr "Укажите, какой разъем видеовыхода будет иÑпользован." + +msgid "Configuring" +msgstr "ÐаÑтройка" + +msgid "Conflicting timer" +msgstr "Конфликт таймеров" + +msgid "Connect" +msgstr "Подключить" + +msgid "Connect to a wireless network" +msgstr "" + +msgid "Connected satellites" +msgstr "" + +msgid "Connected to" +msgstr "Подключено к" + +msgid "Connected!" +msgstr "Подключено!" + +msgid "Constellation" +msgstr "Созвездие" + +msgid "Content does not fit on DVD!" +msgstr "Содержание не помещаетÑÑ Ð½Ð° DVD!" + +msgid "Continue" +msgstr "Продолжить" + +msgid "Continue in background" +msgstr "Продолжить в фоновом режиме" + +msgid "Continue playback" +msgstr "Продолжить воÑпроизведение" + +msgid "Continue playing" +msgstr "Продолжить воÑпроизведение" + +msgid "Continues play (loop)" +msgstr "Продолжить воÑпр. (цикл)" + +msgid "Contrast" +msgstr "КонтраÑтноÑÑ‚ÑŒ" + +msgid "Convert ext3 filesystem to ext4" +msgstr "Конвертер ext3 в ext4" + +msgid "Convert ext3 to ext4" +msgstr "Конвертер ext3 в ext4" + +msgid "Converting ext3 to ext4..." +msgstr "Конвертер ext3 в ext4..." + +msgid "Copy" +msgstr "Копирование" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "Ðе удалоÑÑŒ подключитьÑÑ Ðº реÑиверу. NFI имидж Ñервер фида:" + +msgid "Could not find installed channel list." +msgstr "Ðевозможно открыть ÑпиÑок каналов." + +msgid "Could not load medium! No disc inserted?" +msgstr "Ðе удалоÑÑŒ загрузить ноÑитель! Проверьте, вÑтавлен ли диÑк?" + +msgid "Could not open Picture in Picture" +msgstr "Ðевозможно открыть картинку в картинке" + +#, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "ЗапиÑÑŒ невозможна - конфликт таймеров %s" + +#, python-format +msgid "Could not record due to invalid service %s" +msgstr "ЗапиÑÑŒ невозможна - недейÑтвительный ÑÐµÑ€Ð²Ð¸Ñ %s" + +msgid "Create DVD-ISO" +msgstr "Создать DVD-ISO" + +msgid "Create more detailed crash log" +msgstr "ЗапиÑывать детали в крÑш-лог" + +#, python-format +msgid "Creating directory %s failed." +msgstr "Ðе удалоÑÑŒ Ñоздать каталог %s" + +msgid "Creating filesystem" +msgstr "Создание файловой ÑиÑтемы" + +msgid "Creating partition" +msgstr "Создание разделов" + +msgid "Croatian" +msgstr "ХорватÑкий" + +msgid "Current CEC address" +msgstr "" + +msgid "Current device: " +msgstr "Текущее уÑÑ‚Ñ€-во:" + +msgid "Current event EPG" +msgstr "Текущее Ñобытие EPG" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +msgid "Current settings:" +msgstr "Текущие наÑтройки:" + +msgid "Current transponder" +msgstr "Текущий транÑпондер" + +msgid "Current value: " +msgstr "Текущее значение: " + +msgid "Current version:" +msgstr "Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ð²ÐµÑ€ÑиÑ:" + +msgid "Currently installed image" +msgstr "Текущий уÑтановленный имидж" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +msgid "Custom skip time for '1'/'3' buttons" +msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑка Ð´Ð»Ñ ÐºÐ½Ð¾Ð¿Ð¾Ðº '1'/'3'" + +msgid "Custom skip time for '4'/'6' buttons" +msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑка Ð´Ð»Ñ ÐºÐ½Ð¾Ð¿Ð¾Ðº '4'/'6'" + +msgid "Custom skip time for '7'/'9' buttons" +msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑка Ð´Ð»Ñ ÐºÐ½Ð¾Ð¿Ð¾Ðº '7'/'9'" + +msgid "Customize" +msgstr "Индивидуальные наÑтройки" + +msgid "Customize channel list cursor behavior" +msgstr "" + +msgid "Cut" +msgstr "Урезать" + +msgid "Cutlist editor..." +msgstr "Видео редактор..." + +msgid "Czech" +msgstr "ЧешÑкий" + +msgid "D" +msgstr "D" + +msgid "DHCP" +msgstr "DHCP" + +msgid "DMM advanced" +msgstr "DMM раÑширенный" + +msgid "DMM normal" +msgstr "DMM нормальный" + +msgid "DUAL LAYER DVD" +msgstr "ДвухÑлойный ДВД" + +msgid "DVB subtitle black transparency" +msgstr "Ð§ÐµÑ€Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð·Ñ€Ð°Ñ‡Ð½Ð¾ÑÑ‚ÑŒ DVB Ñубтитров" + +msgid "DVB-C" +msgstr "DVB-C" + +msgid "DVB-C ANNEX C" +msgstr "DVB-C ANNEX C" + +msgid "DVB-S" +msgstr "DVB-S" + +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "DVB-T" + +msgid "DVB-T2" +msgstr "DVB-T2" + +msgid "DVD data format" +msgstr "Видеоформат" + +msgid "DVD file browser" +msgstr "ВернутьÑÑ Ð² проводник" + +msgid "DVD media toolbox" +msgstr "DVD медиа-инÑтрументы" + +msgid "DVD player" +msgstr "DVD плеер" + +msgid "DVD titlelist" +msgstr "белый ÑпиÑок" + +msgid "Danish" +msgstr "ДатÑкий" + +msgid "Date" +msgstr "Дата" + +msgid "Date/time input" +msgstr "Ввод ВремÑ/Дата " + +msgid "Deep standby" +msgstr "Глубокий режим ожиданиÑ" + +msgid "Default" +msgstr "По умолчанию" + +msgid "Default movie location" +msgstr "Дефолтное меÑто запиÑей" + +msgid "Default settings" +msgstr "Дефолтные наÑтройки" + +msgid "Delay before key repeat starts:" +msgstr "Задержка между Ñтартом повтора:" + +msgid "Delay for external subtitles" +msgstr "Задержка Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½Ð¸Ñ… Ñубтитров" + +msgid "Delete" +msgstr "Удалить" + +msgid "Delete entry" +msgstr "удалить выбранное" + +msgid "Delete failed!" +msgstr "ÐÐµÐ»ÑŒÐ·Ñ ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ!" + +msgid "Delete file" +msgstr "удалить файл" + +msgid "Delete playlist entry" +msgstr "удалить запиÑÑŒ из плейлиÑта" + +msgid "Delete saved playlist" +msgstr "удалить Ñохраненный плейлиÑÑ‚" + +msgid "Delete timer" +msgstr "" + +msgid "Delete..." +msgstr "удалить..." + +msgid "Deleted" +msgstr "Удалено" + +msgid "Deleted items" +msgstr "Удаленные" + +msgid "Depth" +msgstr "Глубина" + +msgid "Descramble http streams" +msgstr "Декодировать http Ñтрим" + +msgid "Description" +msgstr "ОпиÑание" + +msgid "Deselect" +msgstr "Отменить" + +msgid "Details for plugin: " +msgstr "Подробнее о плагине: " + +msgid "Detected HDD:" +msgstr "Ðайден HDD:" + +msgid "Detected NIMs:" +msgstr "Ðайден тюнер:" + +msgid "Devicename:" +msgstr "Ð˜Ð¼Ñ ÑƒÑтройÑтва:" + +msgid "Devide" +msgstr "" + +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +msgid "DiSEqC mode" +msgstr "DiSEqC режим" + +#, python-format +msgid "DiSEqC port %s: %s" +msgstr "DiSEqC порт %s: %s" + +msgid "DiSEqC-tester settings" +msgstr "ТеÑÑ‚ наÑтроек DiSEqC" + +msgid "Dialing:" +msgstr "Ðабор номера:" + +msgid "Digital contour removal" +msgstr "Цифровое удаление контура" + +msgid "Direct playback of linked titles without menu" +msgstr "ВоÑпроизводить ÑвÑзанные Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ð±ÐµÐ· меню" + +msgid "Directory" +msgstr "Каталог" + +#, python-format +msgid "Directory %s does not exist." +msgstr "Каталог %s отÑутÑтвует." + +#, python-format +msgid "Directory %s nonexistent." +msgstr "" + +msgid "Directory browser" +msgstr "Ð”Ð¸Ñ€ÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð°" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "" + +#, python-format +msgid "Directory contains %s and %s." +msgstr " Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ñодержит %s и %s." + +msgid "Disable" +msgstr "Отключить" + +msgid "Disable Picture in Picture" +msgstr "Отключить картинку в картинке" + +msgid "Disable background scanning" +msgstr "Отключить фоновое Ñканирование" + +msgid "Disable timer" +msgstr "" + +msgid "Disabled" +msgstr "Отключен" + +msgid "Disconnect" +msgstr "Отключить" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "Резервировать меÑто на диÑке Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñей (в GB)" + +msgid "Display 16:9 content as" +msgstr "Показывать 16:9 контент как" + +msgid "Display 4:3 content as" +msgstr "Показывать 4:3 контент как" + +msgid "Display >16:9 content as" +msgstr "Показывать >16:9 контент как" + +msgid "Display and userinterface" +msgstr "Экран и интерфейÑ" + +msgid "Display message before playing next movie" +msgstr "Сообщение перед воÑпр. Ñледующей запиÑи" + +msgid "Display setup" +msgstr "ÐаÑтройка диÑплеÑ" + +msgid "Do not change" +msgstr "не изменÑÑ‚ÑŒ" + +msgid "Do not record" +msgstr "Ðе запиÑывать" + +msgid "Do nothing" +msgstr "Ðичего не делать" + +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Ð’Ñ‹ дейÑтвительно хотите проверить файловую ÑиÑтему на ошибки?\n" +"Это займет некоторое времÑ!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" +"Ð’Ñ‹ дейÑтвительно хотите преобразовать файловую ÑиÑтему?\n" +"Ð’Ñ‹ не Ñможете вернутьÑÑ Ð½Ð°Ð·Ð°Ð´!" + +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Ð’Ñ‹ дейÑтвительно хотите удалить %s?" + +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"Ð’Ñ‹ дейÑтвительно хотите загрузить\n" +"плагин \"%s\"?" + +msgid "Do you really want to exit?" +msgstr "Ð’Ñ‹ дейÑтвительно хотите выйти?" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" +"Ð’Ñ‹ дейÑтвительно хотите инициализировать уÑтройÑтво?\n" +"Ð’Ñе данные на диÑке будут потерÑны!" + +#, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"Ð’Ñ‹ дейÑтвительно хотите удалить\n" +"плагин \"%s\"?" + +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Ð’Ñ‹ дейÑтвительно хотите удалить каталог %s Ñ Ð´Ð¸Ñка?" + +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Ð’Ñ‹ дейÑтвительно хотите удалить закладку %s?" + +msgid "Do you want this?" +msgstr "" + +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Ð’Ñ‹ хотите прожечь Ñту коллекцию на DVD ноÑитель?" + +msgid "Do you want to do a service scan?" +msgstr "Ð’Ñ‹ хотите начать Ñканирование?" + +msgid "Do you want to do another manual service scan?" +msgstr "Ð’Ñ‹ хотитеÑделать еще одно ручное Ñканирование?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "Ð’Ñ‹ дейÑтвительно хотите загрузить имидж %s ?" + +msgid "Do you want to install a channel list?" +msgstr "Ð’Ñ‹ дейÑтвительно хотите уÑтановить ÑпиÑок каналов?" + +msgid "Do you want to install the package:\n" +msgstr "Ð’Ñ‹ хотите уÑтановить пакет:\n" + +msgid "Do you want to play DVD in drive?" +msgstr "Ð’Ñ‹ хотите воÑпроизвеÑти DVD в приводе?" + +msgid "Do you want to preview this DVD before burning?" +msgstr "Ð’Ñ‹ хотите проÑмотреть DVD перед прожигом?" + +msgid "Do you want to reboot your receiver?" +msgstr "Ð’Ñ‹ хотите перезагрузить ваш реÑивер?" + +msgid "Do you want to remove the package:\n" +msgstr "Ð’Ñ‹ хотите удалить пакет:\n" + +msgid "Do you want to restore your settings?" +msgstr "Ð’Ñ‹ хотите воÑÑтановить ваши уÑтановки?" + +msgid "Do you want to resume this playback?" +msgstr "Ð’Ñ‹ хотите продолжить воÑпроизведение?" + +#, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Ð’Ñ‹ хотите обновить ваш реÑивер от %s?" + +msgid "Do you want to update your receiver?" +msgstr "Ð’Ñ‹ хотите обновить ваш реÑивер?" + +msgid "Do you want to upgrade the package:\n" +msgstr "Ð’Ñ‹ хотите обновить пакеты:\n" + +msgid "Don't stop current event but disable coming events" +msgstr "Ðе оÑтанавливать текущее Ñобытие, но отключить Ñледующие ÑобытиÑ" + +#, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "Выполнено - УÑтановлен, обновлен или удален %d пакет (%s)" +msgstr[1] "Выполнено - УÑтановлено, обновлено или удалено %d пакета (%s)" +msgstr[2] "Выполнено - УÑтановлено, обновлено или удалено %d пакетов (%s)" + +msgid "Download" +msgstr "Загрузить" + +#, python-format +msgid "Download %s from server" +msgstr "Загрузить %s Ñ Ñервера" + +msgid "Download .NFI-files for USB-flasher" +msgstr "Загрузить .NFI-файлы Ð´Ð»Ñ USB-флешера" + +msgid "Download plugins" +msgstr "Скачать плагины" + +msgid "Downloadable new plugins" +msgstr "ДоÑтупные новые плагины" + +msgid "Downloadable plugins" +msgstr "ДоÑтупные плагины" + +msgid "Downloading" +msgstr "Загрузка" + +msgid "Downloading plugin information. Please wait..." +msgstr "Загрузка информации о плагинах. Ждите..." + +msgid "Dutch" +msgstr "ÐидерландÑкий" + +msgid "Dynamic contrast" +msgstr "ДинамичеÑÐºÐ°Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð°ÑтноÑÑ‚ÑŒ" + +msgid "E" +msgstr "E" + +msgid "EPG" +msgstr "EPG" + +msgid "EPG language selection 1" +msgstr "Выбор Ñзыка EPG 1" + +msgid "EPG language selection 2" +msgstr "Выбор Ñзыка EPG 2" + +msgid "EPG selection" +msgstr "Выбор EPG" + +msgid "EPG settings" +msgstr "ÐаÑтройки EPG" + +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "Ошибка - невозможно Ñканирование (%s)!" + +msgid "East" +msgstr "ВоÑток" + +msgid "East limit set" +msgstr "Включить ограничение на воÑток" + +msgid "Edit" +msgstr "Редактировать" + +msgid "Edit DNS" +msgstr "Изменить DNS" + +msgid "Edit bouquets list" +msgstr "Редактировать ÑпиÑок фаворитов" + +msgid "Edit chapters of current title" +msgstr "Редактировать главы текущего заголовка" + +msgid "Edit services list" +msgstr "Редактировать ÑпиÑок ÑервиÑов" + +msgid "Edit settings" +msgstr "Изменить наÑтройки" + +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "Редактировать Ñервер DNS вашего реÑивера.\n" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "Редактировать конфигурацию Ñети вашего реÑивера.\n" + +msgid "Edit timer" +msgstr "" + +msgid "Edit title" +msgstr "Редактировать заголовок" + +msgid "Edit upgrade source url." +msgstr "Изменить URL-Ð°Ð´Ñ€ÐµÑ Ð¸Ñточника обновлениÑ" + +msgid "Education/Science/..." +msgstr "Образование/Ðаука/..." + +msgid "Electronic Program Guide" +msgstr "Электронный программный гид" + +msgid "Enable" +msgstr "Включить" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +msgid "Enable 5V for active antenna" +msgstr "Включить 5V Ð´Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ð¹ антенны" + +msgid "Enable EIT EPG" +msgstr "Включить EIT EPG" + +msgid "Enable MHW EPG" +msgstr "Включить MHW EPG" + +msgid "Enable Netmed EPG" +msgstr "Включить Netmed EPG" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "Включить ViaSat EPG" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +msgid "Enable bouquet selection in multi-EPG" +msgstr "Включить выбор букетов при запуÑке мульти-ЕПГ" + +msgid "Enable freesat EPG" +msgstr "Включить freesat EPG" + +msgid "Enable multiple bouquets" +msgstr "Разрешить мульти-букеты" + +msgid "Enable parental control" +msgstr "Включить родительÑкий контроль" + +msgid "Enable teletext caching" +msgstr "Включить кÑширование телетекÑта" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +msgid "Enabled" +msgstr "Включен" + +msgid "Encrypted: " +msgstr "Шифрование:" + +msgid "Encryption" +msgstr "Кодировка" + +msgid "Encryption key" +msgstr "Ключ шифрованиÑ" + +msgid "Encryption key type" +msgstr "Тип ключа шифрованиÑ" + +msgid "Encryption:" +msgstr "Шифрование:" + +msgid "End time" +msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "Окончание периода Ð¸Ð³Ð½Ð¾Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð°Ð¹Ð¼ÐµÑ€Ð° неактивноÑти" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +msgid "English" +msgstr "ÐнглийÑкий" + +msgid "Enigma2 skin selector" +msgstr "Селектор Ñкинов Enigma2" + +msgid "Enter main menu..." +msgstr "Войти в главное меню..." + +msgid "Enter pin code" +msgstr "Сменить PIN-код" + +msgid "Enter the service pin" +msgstr "Введите PIN-код Ð´Ð»Ñ ÑервиÑа" + +msgid "Equal to" +msgstr "" + +msgid "Error" +msgstr "Ошибка" + +msgid "Error code" +msgstr "Код ошибки" + +msgid "Error executing plugin" +msgstr "Ошибка запуÑка плагина" + +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Ошибка: %s\n" +"Повторить?" + +msgid "Estonian" +msgstr "ЭÑтонÑкий" + +msgid "Ethernet network interface" +msgstr "Интернет Ñетевой интерфейÑ" + +msgid "Event font size (relative to skin size)" +msgstr "Размер шрифта Ñобытий (по отношению к Ñкину)" + +msgid "Event view" +msgstr "Обзор ÑобытиÑ" + +msgid "Event view menu" +msgstr "Меню обзора ÑобытиÑ..." + +msgid "Everywhere" +msgstr "Везде" + +msgid "Exceeds dual layer medium!" +msgstr "превышает двухÑлойный ноÑитель" + +msgid "Execution finished!!" +msgstr "Выполнение закончено!" + +msgid "Execution progress:" +msgstr "ПроцеÑÑ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ:" + +msgid "Exif" +msgstr "Exif" + +msgid "Exit" +msgstr "Выйти" + +msgid "Exit EPG" +msgstr "Выход из EPG" + +msgid "Exit editor" +msgstr "Выйти из редактора" + +msgid "Exit input device selection." +msgstr "Выход из выбора уÑтройÑтва ввода" + +msgid "Exit media player?" +msgstr "Выход из медиаплеера?" + +msgid "Exit mediaplayer" +msgstr "закрыть медиаплеер" + +msgid "Exit movie list" +msgstr "закрыть ÑпиÑок фильмов" + +msgid "Exit movie player?" +msgstr "Выйти из видеоплеера?" + +msgid "Exit nameserver configuration" +msgstr "закрыть конфигуратор DNS" + +msgid "Exit network interface list" +msgstr "закрыть ÑпиÑок Ñетевых интерфейÑов" + +msgid "Exit network wizard" +msgstr "Выйти из маÑтера" + +msgid "Exit the wizard" +msgstr "Выйти из маÑтера наÑтроек" + +msgid "Expert" +msgstr "ЭкÑперт" + +msgid "Extend sleeptimer 15 minutes" +msgstr "Добавить к таймеру Ñна 15 минут" + +msgid "Extended Software" +msgstr "РаÑширенный лог" + +msgid "Extended Software Plugin" +msgstr "РаÑширенный плагин наÑтроек Ñети..." + +msgid "Extended network setup plugin..." +msgstr "РаÑширенный плагин наÑтроек Ñети..." + +msgid "Extended setup..." +msgstr "РаÑширенные наÑтройки..." + +msgid "Extensions" +msgstr "РаÑширениÑ" + +msgid "Extensions management" +msgstr "Управление дополнениÑми" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "Цвет внешних Ñубтитров" + +msgid "Extra motor options" +msgstr "" + +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "FTA" + +msgid "Factory reset" +msgstr "ЗаводÑкие уÑтановки" + +msgid "Failed" +msgstr "Ðеудачный" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "Ðе удалоÑÑŒ запиÑать /tmp/positionersetup.log: " + +#, python-format +msgid "Fan %d" +msgstr "ВентилÑтор %d" + +#, python-format +msgid "Fan %d PWM" +msgstr "ВентилÑтор %d PWM" + +#, python-format +msgid "Fan %d voltage" +msgstr "ВентилÑтор %d напрÑжение" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +msgid "Fast" +msgstr "БыÑтро" + +msgid "Fast DiSEqC" +msgstr "БыÑтрый DiSEqC" + +msgid "Fast Scan" +msgstr "БыÑтрый поиÑк по провайдеру" + +msgid "Fast epoch" +msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð´Ð»Ñ Ð±Ñ‹Ñтрой ÑкороÑти" + +msgid "Fast forward speeds" +msgstr "СкороÑÑ‚ÑŒ перемотки вперед" + +msgid "Favourites" +msgstr "Фавориты" + +msgid "File appears to be busy.\n" +msgstr "Файл оказалÑÑ Ð·Ð°Ð½Ñтым.\n" + +msgid "Filesystem check" +msgstr "Проверка файловой ÑиÑтемы" + +msgid "Final position at" +msgstr "Ð˜Ñ‚Ð¾Ð³Ð¾Ð²Ð°Ñ Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ" + +msgid "Final position at index" +msgstr "Ðомер итоговой позиции" + +msgid "Fine movement" +msgstr "Тонкое перемещение" + +msgid "Finetune" +msgstr "Точно" + +msgid "Finished" +msgstr "Завершено" + +msgid "Finished configuring your network" +msgstr "ÐаÑтройка Ñети закончена" + +msgid "Finished restarting your network" +msgstr "Перезагрузка вашей Ñети завершена" + +msgid "Finnish" +msgstr "ФинÑкий" + +msgid "Fixed" +msgstr "фикÑированнаÑ" + +msgid "Flash" +msgstr "Прошивка" + +msgid "Flashing failed" +msgstr "Прошивка не удалаÑÑŒ" + +msgid "Following tasks will be done after you press OK!" +msgstr "Выполнение начнетÑÑ Ð¿Ð¾Ñле того, как вы нажмете ОК!" + +msgid "Format" +msgstr "Формат" + +msgid "Forward volume keys" +msgstr "Передать кнопки звука" + +msgid "Frame size in full view" +msgstr "Размер рамки при проÑмотре во веÑÑŒ Ñкран" + +msgid "French" +msgstr "ФранцузÑкий" + +msgid "Frequency" +msgstr "ЧаÑтота" + +msgid "Frequency bands" +msgstr "ЧаÑтотные диапазоны" + +msgid "Frequency scan step size(khz)" +msgstr "Шаг чаÑтоты ÑканированиÑ(khz)" + +msgid "Frequency steps" +msgstr "Шаг чаÑтоты" + +msgid "Frequency:" +msgstr "ЧаÑтота:" + +msgid "Fri" +msgstr "Пт" + +msgid "Friday" +msgstr "ПÑтница" + +msgid "From :" +msgstr "От :" + +#, python-format +msgid "Frontprocessor version: %d" +msgstr "ВерÑÐ¸Ñ Ñ„Ñ€Ð¾Ð½Ñ‚Ð¿Ñ€Ð¾Ñ†ÐµÑÑора: %d" + +msgid "Full transparency" +msgstr "ÐŸÐ¾Ð»Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð·Ñ€Ð°Ñ‡Ð½Ð¾ÑÑ‚ÑŒ" + +msgid "Fulview resulution" +msgstr "Полное разрешение проÑмотра" + +msgid "Function of OK button" +msgstr "Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸ OK" + +msgid "Further Options" +msgstr "" + +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ нового Ñкина необходим реÑтарт GUI.\n" +"Ð’Ñ‹ хотите Ñделать Ñто ÑейчаÑ?" + +msgid "Gateway" +msgstr "Шлюз" + +msgid "General AC3 delay" +msgstr "ÐžÐ±Ñ‰Ð°Ñ Ð·Ð°Ð´ÐµÑ€Ð¶ÐºÐ° AC3" + +msgid "General PCM delay" +msgstr "ÐžÐ±Ñ‰Ð°Ñ Ð·Ð°Ð´ÐµÑ€Ð¶ÐºÐ° PCM" + +msgid "Genre" +msgstr "Жанр" + +msgid "German" +msgstr "Ðемецкий" + +msgid "Get latest experimental image" +msgstr "" + +msgid "Get latest release image" +msgstr "Получить поÑледний выпущенный имидж" + +msgid "Getting plugin information. Please wait..." +msgstr "Получение информации о плагине. ПожалуйÑта ждите..." + +msgid "Go down the list" +msgstr "перемеÑтить вниз к поÑледней запиÑи" + +msgid "Go to first movie or last item" +msgstr "Перейти к первому видео или к поÑледней Ñтроке" + +msgid "Go to first movie or top of list" +msgstr "Перейти к первому видео или на вверх ÑпиÑка" + +msgid "Go to first service" +msgstr "Перейти на первый ÑервиÑ" + +msgid "Go to last service" +msgstr "Перейти на поÑледний ÑервиÑ" + +msgid "Go to next event" +msgstr "Перейти на Ñлед. Ñобытие" + +msgid "Go to next page of service" +msgstr "Перейти на Ñлед. Ñтраницу ÑервиÑов" + +msgid "Go to previous event" +msgstr "Перейти на пред. Ñобытие" + +msgid "Go to previous page of service" +msgstr "Перейти на пред. Ñтраницу ÑервиÑов" + +msgid "Go up the list" +msgstr "перейти в конец ÑпиÑка" + +msgid "Goto" +msgstr "Переход" + +msgid "Goto 0" +msgstr "Переход на позицию 0" + +msgid "Goto :" +msgstr "Куда :" + +msgid "Goto X" +msgstr "Переход на позицию Ð¥" + +msgid "Goto index position" +msgstr "Ðомер позиции" + +msgid "Goto next day of events" +msgstr "Перейти на Ñледущий день Ñобытий" + +msgid "Goto next page of events" +msgstr "Перейти на Ñлед. Ñтраницу Ñобытий" + +msgid "Goto position" +msgstr "Перейти на позицию" + +msgid "Goto previous day of events" +msgstr "Перейти на предыдущий день Ñобытий" + +msgid "Goto previous page of events" +msgstr "Перейти на пред. Ñтраницу Ñобытий" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "Калибровка позиции Ð¥" + +msgid "GraphMultiEpg Settings" +msgstr "ÐаÑтройки графичеÑкого мульти-EPG" + +msgid "Graphical Multi EPG" +msgstr "ГрафичеÑкий мульти-EPG" + +msgid "Greek" +msgstr "ГречеÑкий" + +msgid "Green boost" +msgstr "Повышение зеленого" + +msgid "Guard interval" +msgstr "Интервал защиты" + +msgid "HD list" +msgstr "HD лиÑÑ‚" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "Режим Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸ выключении ТВ" + +msgid "Handle wakeup from TV" +msgstr "Включить при включении ТВ" + +msgid "Hard disk" +msgstr "ЖеÑткий диÑк" + +msgid "Hard disk setup" +msgstr "ÐаÑтройка диÑка" + +msgid "Hard disk standby after" +msgstr "Отключение HDD через" + +msgid "Harddisk" +msgstr "ЖеÑткий диÑк" + +msgid "Hardware: " +msgstr "Ðппаратура: " + +msgid "Hebrew" +msgstr "Иврит" + +msgid "Helps setting up your dish" +msgstr "" + +msgid "Hidden network" +msgstr "Ð¡ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ñеть" + +msgid "Hide CI messages" +msgstr "СпрÑтать ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ CI" + +msgid "Hide channel list in radio mode" +msgstr "Скрыть ÑпиÑок каналов в режиме радио" + +msgid "Hide known extensions" +msgstr "Скрыть извеÑтные раÑширениÑ" + +msgid "Hide number markers" +msgstr "Скрывать номера маркеров" + +msgid "Hide player" +msgstr "Скрыть проигрыватель" + +msgid "Hide zap errors" +msgstr "СпрÑтать ошибки при переключении каналов" + +msgid "Hierarchy info" +msgstr "Ð˜ÐµÑ€Ð°Ñ€Ñ…Ð¸Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¸" + +msgid "Hierarchy information" +msgstr "Ð˜ÐµÑ€Ð°Ñ€Ñ…Ð¸Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¸" + +msgid "High bitrate support" +msgstr "Поддержка выÑокого битрейта" + +msgid "Hold screen" +msgstr "СохранÑÑ‚ÑŒ Ñкран" + +msgid "Hold till locked" +msgstr "СохранÑÑ‚ÑŒ Ñкран-заблокировано" + +msgid "Home" +msgstr "ДомашнÑÑ" + +msgid "Horizontal" +msgstr "ГоризонтальнаÑ" + +msgid "Horizontal turning speed" +msgstr "ПолÑÑ€Ð¸Ð·Ð°Ñ†Ð¸Ñ (H) - ÑкороÑÑ‚ÑŒ поворота" + +msgid "How many minutes do you want to record?" +msgstr "Сколько минут вы хотите запиÑать?" + +msgid "Hue" +msgstr "Оттенок" + +msgid "Hungarian" +msgstr "ВенгерÑкий" + +msgid "IP address" +msgstr "IP адреÑ" + +msgid "ISO file is too large for this filesystem!" +msgstr "ISO файл Ñлишком велик Ð´Ð»Ñ Ñтой файловой ÑиÑтемы!" + +msgid "ISO path" +msgstr "ISO путь" + +msgid "Icons" +msgstr "Иконка" + +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"ЕÑли вы видите Ñто, то что-то не так Ñ Ð²Ð°ÑˆÐ¸Ð¼\n" +"SCART Ñоединением. Ðажмите кнопку ОК, чтобы вернутьÑÑ." + +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"ЕÑли в Вашем телевизоре наблюдаетÑÑ Ð¿Ñ€ÐµÐ²Ñ‹ÑˆÐµÐ½Ð¸Ðµ ÑркоÑти или контраÑтноÑти, уÑтраните Ñто. ЕÑли в Вашем TB выбран один из режимов наÑтроек изображениÑ,например \"динамичный\", ÑброÑьте наÑтройки в Ñтандартные .Уменьшите контраÑтноÑÑ‚ÑŒ Вашего ТВ на макÑимально возможное значение.\n" +"Теперь уменьшите ÑркоÑÑ‚ÑŒ на макÑимально низкое значение, на Ñколько Ñто возможно, но при Ñтом Ñледите, чтобы два Ñамых нижних оттенка былиразличимы.\n" +"Ðе беÑпокойтеÑÑŒ о Ñрких оттенках, они будут наÑтроены на Ñледующем Ñтапе.\n" +"ЕÑли Ð’Ð°Ñ ÑƒÑтраивает результат, нажмите OK." + +msgid "Image: " +msgstr "Имидж: " + +msgid "Immediate shutdown" +msgstr "глубокий режим ожиданиÑ" + +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "" +"Ð”Ð»Ñ Ñтарта запиÑи по таймеру,\n" +" переключаем на запиÑываемый ÑервиÑ!\n" + +msgid "In progress" +msgstr "Ð’ прогреÑÑе" + +msgid "Inactivity Sleeptimer" +msgstr "Таймер неактивноÑти" + +msgid "Include AIT in http streams" +msgstr "Включать AIT в http Ñтрим" + +msgid "Include ECM in http streams" +msgstr "Включать ECM в http Ñтрим" + +msgid "Include EIT in http streams" +msgstr "Включать EIT в http Ñтрим" + +msgid "Incorrect type service for PiP!" +msgstr "" + +msgid "Increased voltage" +msgstr "Повышенное напрÑжение" + +msgid "Index" +msgstr "ИндекÑ" + +msgid "Index allocated:" +msgstr "Выделен номер:" + +msgid "Info" +msgstr "Инфо" + +msgid "Info bar" +msgstr "Инфобар" + +msgid "Info bar timeout" +msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð¿Ð¾ÐºÐ°Ð·Ð° инфобара" + +msgid "Infobar frontend data source" +msgstr "" + +msgid "Information" +msgstr "ИнформациÑ" + +msgid "Init" +msgstr "ИнициализациÑ" + +msgid "Initial fast forward speed" +msgstr "ÐŸÐµÑ€Ð²Ð¾Ð½Ð°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ ÑкороÑÑ‚ÑŒ перемотки вперед" + +msgid "Initial location in new timers" +msgstr "Ðачальное меÑто новых таймеров" + +msgid "Initial lock ratio" +msgstr "Ðачальное Ñоотношение захвата" + +msgid "Initial rewind speed" +msgstr "ÐŸÐµÑ€Ð²Ð¾Ð½Ð°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ ÑкороÑÑ‚ÑŒ перемотки назад" + +msgid "Initial signal quality" +msgstr "Ðачальное качеÑтво Ñигнала" + +msgid "Initial signal quality:" +msgstr "Ðачальное качеÑтво Ñигнала:" + +msgid "Initialization" +msgstr "Ð˜Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ (формат.)" + +msgid "Initialize" +msgstr "ИнициализациÑ" + +msgid "Initializing storage device..." +msgstr "Ð˜Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¶ÐµÑткого диÑка..." + +msgid "Input" +msgstr "Вход" + +msgid "Input device setup" +msgstr "ÐаÑтройки уÑтройÑтва ввода" + +msgid "Input devices" +msgstr "ÐаÑтройки пульта" + +msgid "Install" +msgstr "УÑтановить" + +msgid "Install a new image with a USB stick" +msgstr "УÑтановить новый имидж Ñ USB Ñтика" + +msgid "Install a new image with your web browser" +msgstr "УÑтановить новый имидж через web браузер" + +msgid "Install channel list" +msgstr "ИнÑталлировать ÑпиÑок каналов" + +msgid "Install extensions" +msgstr "" + +msgid "Install extensions." +msgstr "УÑтановить дополнениÑ." + +msgid "Install local extension" +msgstr "ИнÑталлÑÑ†Ð¸Ñ Ð»Ð¾ÐºÐ°Ð». пакетов" + +msgid "Install picons on" +msgstr "УÑтановка пиконов в" + +msgid "Install softcam" +msgstr "ИнÑталлÑÑ†Ð¸Ñ ÑмулÑтора" + +msgid "Installation has completed." +msgstr "ИнÑталлÑÑ†Ð¸Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð°." + +msgid "Installation or removal has completed." +msgstr "ИнÑталлÑÑ†Ð¸Ñ Ð¸Ð»Ð¸ удаление завершено." + +msgid "Installing" +msgstr "ИнÑталлÑциÑ" + +msgid "Installing software..." +msgstr "ИнÑталлÑÑ†Ð¸Ñ Ð¿Ð°ÐºÐµÑ‚Ð¾Ð²..." + +msgid "Instant recording location" +msgstr "МеÑто немедленной запиÑи" + +msgid "Instant recording..." +msgstr "Меню немедленной запиÑи..." + +msgid "Interface: " +msgstr "ИнтерфейÑ: " + +msgid "Intermediate" +msgstr "Промежуточный" + +msgid "Internal flash" +msgstr "ВнутреннÑÑ Ñ„Ð»ÐµÑˆÑŒ" + +msgid "Internal hdd only" +msgstr "Только внутр. жеÑткий диÑк" + +msgid "Interval between keys when repeating:" +msgstr "Интервал между повторами кнопок:" + +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Выбран неправильный каталог: %s" + +msgid "Invalid location" +msgstr "Ðеправильное раÑположение" + +msgid "Invalid transponder data" +msgstr "" + +msgid "Inversion" +msgstr "ИнверÑиÑ" + +msgid "Invert" +msgstr "Выбрать вÑе" + +msgid "Ipkg" +msgstr "Ipkg" + +msgid "Is this setting ok?" +msgstr "Этот вариант наÑтройки Ð²Ð°Ñ ÑƒÑтраивает?" + +msgid "Is this video mode ok?" +msgstr "УÑтановить данный видеорежим?" + +msgid "Italian" +msgstr "ИтальÑнÑкий" + +msgid "Items per page " +msgstr "Кол-во ÑервиÑов на Ñтраницу " + +msgid "Items per page for list screen" +msgstr "Кол-во ÑервиÑов на Ñтраницу в режиме ÑпиÑка" + +msgid "Job overview" +msgstr "ПроÑмотр заданиÑ" + +msgid "Jump to beginning of list" +msgstr "Перейти в начало ÑпиÑка" + +msgid "Jump to end of list" +msgstr "перейти в конец ÑпиÑка" + +msgid "Jump to next marked position" +msgstr "Перейти к Ñледующей метке" + +msgid "Jump to previous marked position" +msgstr "Перейти к предыдущей метке" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +msgid "Just scale" +msgstr "Только маÑштаб" + +msgid "Keep service" +msgstr "" + +msgid "Kernel version: " +msgstr "ВерÑÐ¸Ñ Ñдра: " + +msgid "Keyboard" +msgstr "Клавиатура" + +msgid "Keyboard map" +msgstr "РаÑкладка клавиатуры" + +msgid "Keyboard setup" +msgstr "ÐаÑтройки клавиатуры" + +msgid "LAN adapter" +msgstr "LAN адаптер" + +msgid "LAN connection" +msgstr "LAN Ñоединение" + +msgid "LNB" +msgstr "LNB" + +msgid "Language" +msgstr "Выбор Ñзыка" + +msgid "Language selection" +msgstr "СпиÑок Ñзыков" + +msgid "Last config" +msgstr "ПоÑледнии наÑтройки" + +msgid "Last speed" +msgstr "ПоÑледнÑÑ ÑкороÑÑ‚ÑŒ" + +msgid "Last upgrade: " +msgstr "ПоÑледнее обновление: " + +msgid "Latest Commits" +msgstr "" + +msgid "Latitude" +msgstr "Широта" + +msgid "Latvian" +msgstr "ЛатвийÑкий" + +msgid "Leave DVD player?" +msgstr "Выйти из DVD плеера?" + +msgid "Left" +msgstr "Левый" + +msgid "Left from servicename" +msgstr "Ñлева от Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ ÑервиÑа" + +msgid "Leisure hobbies" +msgstr "Хобби на отдыхе" + +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Letterbox" + +msgid "Letterbox zoom" +msgstr "" + +msgid "Limit character set for recording filenames" +msgstr "Ограничить набор Ñимволов в именах запиÑей" + +msgid "Limit east" +msgstr "Ограничение на воÑток" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "Ограничьте знаки, которые могут иÑпользоватьÑÑ Ð² запиÑи имен файлов (7 бит) ASCII. Это обеÑпечивает ÑовмеÑтимоÑÑ‚ÑŒ Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ñ‹Ð¼Ð¸ ÑиÑтемами или файловыми ÑиÑтемами Ñ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð½Ñ‹Ð¼ набором Ñимволов." + +msgid "Limit west" +msgstr "Ограничение на запад" + +msgid "Limits cancelled" +msgstr "ÐžÐ³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð¼ÐµÐ½ÐµÐ½Ñ‹" + +msgid "Limits enabled" +msgstr "ÐžÐ³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ñ‹" + +msgid "Limits off" +msgstr "Выключить ограничениÑ" + +msgid "Limits on" +msgstr "Включить ограничениÑ" + +msgid "Link quality:" +msgstr "КачеÑтво ÑвÑзи:" + +msgid "Link:" +msgstr "СÑылка:" + +msgid "Linked titles with a DVD menu" +msgstr "Заголовки ÑвÑзанные Ñ DVD меню" + +msgid "List EPG functions..." +msgstr "СпиÑок функций EPG..." + +msgid "List available networks" +msgstr "ПроÑмотр ÑпиÑка доÑтупных Ñетей" + +msgid "List mode" +msgstr "Режим ÑпиÑка" + +msgid "List of storage devices" +msgstr "СпиÑок уÑтройÑтв хранениÑ" + +msgid "List type" +msgstr "Вид ÑпиÑка" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "СпиÑок верÑии %d, найден %d канал" +msgstr[1] "СпиÑок верÑии %d, найдено %d канала" +msgstr[2] "СпиÑок верÑии %d, найдено %d каналов" + +msgid "Listen to the radio..." +msgstr "Слушать радио..." + +msgid "Lists reloaded!" +msgstr "" + +msgid "Lithuanian" +msgstr "ЛитовÑкий" + +msgid "Load" +msgstr "Загрузить" + +msgid "Load Length of Movies in Movielist" +msgstr "" + +msgid "Load length of movies in movie list" +msgstr "Загружать длительноÑÑ‚ÑŒ видео в ÑпиÑке видео" + +msgid "Load playlist" +msgstr "загрузить плейлиÑÑ‚" + +msgid "Local network" +msgstr "Ð›Ð¾ÐºÐ°Ð»ÑŒÐ½Ð°Ñ Ñеть" + +msgid "Location" +msgstr "РаÑположение" + +msgid "Location for instant recordings" +msgstr "РаÑположение моментальных запиÑей" + +msgid "Lock ratio" +msgstr "КачеÑтво захвата" + +msgid "Lock:" +msgstr "Захват:" + +msgid "Log results to harddisk" +msgstr "ЗапиÑывать журнал на диÑк" + +msgid "Long filenames" +msgstr "Длинное название" + +msgid "Long key press" +msgstr "Длинное нажатие" + +msgid "Longitude" +msgstr "Долгота" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "ЛюкÑембургÑкий" + +msgid "MMC card" +msgstr "MMC карта" + +msgid "MORE" +msgstr "ЗÐТЕМ" + +msgid "Main menu" +msgstr "Главное меню" + +msgid "Maintain old EPG data for" +msgstr "СохранÑÑ‚ÑŒ прошедшие данные EPG Ð´Ð»Ñ (мин)" + +msgid "Make this mark an 'in' point" +msgstr "Отметить Ñту точку как 'начало'" + +msgid "Make this mark an 'out' point" +msgstr "Отметить Ñту точку как 'конец'" + +msgid "Make this mark just a mark" +msgstr "Создать проÑтую метку" + +msgid "Manage extensions" +msgstr "Менеджер дополнений" + +msgid "Manage your receiver's software" +msgstr "Менеджер ПО реÑивера" + +msgid "Manual" +msgstr "" + +msgid "Manual Scan" +msgstr "Ручной поиÑк" + +msgid "Manual configuration" +msgstr "Ð ÑƒÑ‡Ð½Ð°Ñ Ð½Ð°Ñтройка" + +msgid "Manual scan" +msgstr "Ручной поиÑк" + +msgid "Manual transponder" +msgstr "ТранÑпондер вручную" + +msgid "Manufacturer" +msgstr "Производитель" + +msgid "Margin after recording (minutes)" +msgstr "Объединить поÑле запиÑи (в минутах)" + +msgid "Margin before recording (minutes)" +msgstr "Объединить перед запиÑью (в минутах)" + +msgid "Max memory positions" +msgstr "" + +msgid "Max. bitrate: " +msgstr "МакÑ. битрейт:" + +msgid "Media player" +msgstr "Медиаплеер" + +msgid "Media scanner" +msgstr "Медиа Ñканнер" + +msgid "Medium is not a writeable DVD!" +msgstr "ÐоÑитель не запиÑываемый DVD!" + +msgid "Medium is not empty!" +msgstr "ÐоÑитель не пуÑтой!" + +msgid "Memory" +msgstr "ПамÑÑ‚ÑŒ" + +msgid "Memory index" +msgstr "Ðомер в памÑти" + +msgid "Menu" +msgstr "Меню" + +msgid "Message" +msgstr "Сообщение" + +msgid "Message..." +msgstr "Сообщение..." + +#, python-format +msgid "Minimum age %d years" +msgstr "ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ Ð¼Ð¸Ð½Ð¸Ð¼ÑƒÐ¼ %d лет" + +msgid "Minimum send interval" +msgstr "Минимальный интервал отправки" + +msgid "Missing " +msgstr "ОтÑутÑтвует " + +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Режим" + +msgctxt "Video output mode" +msgid "Mode" +msgstr "Режим" + +msgid "Model: " +msgstr "Модель: " + +msgid "Modulation" +msgstr "МодулÑциÑ" + +msgid "Modulator" +msgstr "МодулÑтор" + +msgid "Mon" +msgstr "Пн" + +msgid "Mon-Fri" +msgstr "Пн-Пт" + +msgid "Monday" +msgstr "Понедельник" + +msgid "Mosquito noise reduction" +msgstr "Подавление моÑкитного шума" + +msgid "Mount" +msgstr "ПроÑмотр подключений" + +msgid "Move" +msgstr "Перемещение" + +msgid "Move PiP to main picture" +msgstr "ПеремеÑтить PiP на оÑновной Ñкран" + +msgid "Move Picture in Picture" +msgstr "ПеремеÑтить картинку в картинке" + +msgid "Move east" +msgstr "Перемещение на воÑток" + +msgid "Move to other directory" +msgstr "Выбор начального каталога" + +msgid "Move to position X" +msgstr "Перемещение к позиции Ð¥" + +msgid "Move west" +msgstr "Перемещение на запад" + +msgid "Moved to position 0" +msgstr "Перемещение к позиции Ð¥" + +msgid "Moved to position at index" +msgstr "Перемещение к позиции номера" + +msgid "Movement" +msgstr "Перемещение" + +msgid "Movie List Configuration" +msgstr "" + +msgid "Movie Selection" +msgstr "" + +msgid "Movie list configuration" +msgstr "ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ ÑпиÑка видео" + +msgid "Movie location" +msgstr "РаÑположение видео" + +msgid "Movie selection" +msgstr "Выбор видео" + +msgid "Movie/Drama" +msgstr "Фильмы/Драма" + +msgid "Movielist menu" +msgstr "Меню ÑпиÑка видео" + +msgid "Moving" +msgstr "Перемещаем" + +msgid "Moving east ..." +msgstr "Перемещаем на воÑток ..." + +msgid "Moving to position" +msgstr "Перемещаем на позицию" + +msgid "Moving west ..." +msgstr "Перемещаем на запад ..." + +msgid "Multi EPG" +msgstr "Мульти EPG" + +msgid "Multi-EPG bouquet selection" +msgstr "Выбор букетов при Ñтарте мульти-EPG" + +msgid "Multimedia" +msgstr "Мультмедиа" + +msgid "Multiple service support" +msgstr "Поддержка мультиÑервиÑов" + +msgid "Multiplex" +msgstr "МультиплекÑ" + +msgid "Multisat" +msgstr "ÐеÑколько Ñпутников" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "Музыка/Балет/Танец" + +msgid "Mute" +msgstr "без зыука" + +msgid "N/A" +msgstr "N/A" + +msgid "NEXT" +msgstr "ДÐЛЕЕ" + +msgid "NFI image flashing" +msgstr "УÑтановка прошивки NFI" + +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "NFI имидж удачно уÑтановлен. Ðажмите ЖЕЛТЫЙ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸!" + +msgid "NIM" +msgstr "Тюнер" + +msgid "NOW" +msgstr "СЕЙЧÐС" + +msgid "NTSC" +msgstr "NTSC" + +msgid "Name" +msgstr "ИмÑ" + +msgid "Nameserver" +msgstr "DNS Ñервер" + +#, python-format +msgid "Nameserver %d" +msgstr "DNS Ñервер %d" + +msgid "Nameserver settings" +msgstr "ÐаÑтройки DNS" + +msgid "Nameserver setup" +msgstr "" + +msgid "Namespace" +msgstr "Namespace" + +msgid "Netmask" +msgstr "МаÑка подÑети" + +msgid "Network" +msgstr "Сеть и Ñетевые подключениÑ" + +msgid "Network ID" +msgstr "ID Ñети" + +msgid "Network configuration..." +msgstr "ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ñети..." + +msgid "Network mount" +msgstr "Сетевые подключениÑ" + +#, python-format +msgid "Network mount %s" +msgstr "Сетевые Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ %s" + +msgid "Network name (SSID)" +msgstr "Сетевое Ð¸Ð¼Ñ (SSID)" + +msgid "Network scan" +msgstr "Сканирование Ñети" + +msgid "Network setup" +msgstr "ÐаÑтройка Ñети" + +msgid "Network test" +msgstr "ТеÑÑ‚ Ñети" + +msgid "Network test..." +msgstr "ТеÑÑ‚ Ñети..." + +msgid "Network test: " +msgstr "ТеÑÑ‚ Ñети: " + +msgid "Network wizard" +msgstr "МаÑтер наÑтройки Ñети" + +msgid "Network:" +msgstr "Сеть:" + +msgid "New" +msgstr "Ðовый" + +msgid "New PIN" +msgstr "Ðовый PIN-код" + +msgid "New version:" +msgstr "ÐÐ¾Ð²Ð°Ñ Ð²ÐµÑ€ÑиÑ:" + +msgid "News Current Affairs" +msgstr "ÐовоÑти текущего ÑобытиÑ" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "Далее" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "Далее" + +msgid "No" +msgstr "Ðет" + +msgid "No (supported) DVDROM found!" +msgstr "Ðе найден (поддерживаемый) DVDROM!" + +msgid "No Connection" +msgstr "Ðет ÑоединениÑ" + +msgid "No HDD found or HDD not initialized!" +msgstr "HDD не найден или HDD не уÑтановлен!" + +msgid "No backup needed" +msgstr "Резервное копирование не требуетÑÑ" + +msgid "No cable tuner found!" +msgstr "Ðе найден кабельный тюнер!" + +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Ðет данных на транÑпондер!\n" +"(Тайм-аут Ñ‡Ñ‚ÐµÐ½Ð¸Ñ PAT)" + +msgid "No delay" +msgstr "без задержки" + +msgid "No description available." +msgstr "Обновлений пока нет." + +msgid "No details for this image file" +msgstr "Ðет деталей об Ñтом файле имиджа" + +msgid "No displayable files on this medium found!" +msgstr "Ðет отображаемых файлов на Ñтом ноÑителе!" + +msgid "No event info found, recording indefinitely." +msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ Ñобытии не найдена, запиÑÑŒ на неопределенное времÑ." + +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "Ðет быÑтрой перемотки возможно еще... но вы можете иÑпользовать цифровые кнопки Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ð° вперед/назад!" + +msgid "No free index available" +msgstr "Ðет Ñвободного номера памÑти" + +msgid "No free tuner!" +msgstr "Ðет Ñвободного тюнера!" + +msgid "No network connection available." +msgstr "Ðет доÑтупного Ñетевого подключениÑ." + +msgid "No networks found" +msgstr "Сети не найдены" + +msgid "No new plugins found" +msgstr "Ðе найдены новые плагины" + +msgid "No positioner capable frontend found." +msgstr "Ðет фронтÑнда Ñ Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ð¾Ð½ÐµÑ€Ð¾Ð¼" + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "" + +msgid "No services/providers selected" +msgstr "Ðе выбраны каналы/провайдеры" + +msgid "No standby" +msgstr "не переходить в режим ожиданиÑ" + +msgid "No suitable sat tuner found!" +msgstr "" + +msgid "No tags are set on these movies." +msgstr "Ðет тегов Ð´Ð»Ñ Ñтого видео." + +msgid "No timeout" +msgstr "нет таймаута" + +msgid "No to all" +msgstr "Ðет - Ð´Ð»Ñ Ð²Ñех" + +msgid "No transparency" +msgstr "нет прозрачноÑти" + +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "Ðет тюнера, наÑтроенного Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ diseqc позиционером!" + +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Ðет включенного тюнера!\n" +"ПожалуйÑта наÑтройте ваш тюнер перед поиÑком каналов." + +msgid "No updates available" +msgstr "Обновлений пока нет" + +msgid "No updates available. Please try again later." +msgstr "Обновлений пока нет. ПожалуйÑта попробуйте позже." + +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Ðе валидный PIN ÑервиÑа!\n" +"Ð’Ñ‹ хотите изменить PIN-код ÑервиÑа ÑейчаÑ?\n" +"ЕÑли вы ответите 'ÐЕТ', то защита ÑервиÑа \n" +"не будет включена!" + +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Ðе валидный PIN наÑтроек!\n" +"Ð’Ñ‹ хотите изменить PIN-код наÑтроек ÑейчаÑ?\n" +"ЕÑли вы ответите 'ÐЕТ', то защита наÑтроек \n" +"не будет включена!" + +msgid "No wireless networks found! Searching..." +msgstr "Ðе обнаружены беÑпроводные Ñети! Идет поиÑк..." + +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"Ðет рабочего локального Ñетевого адаптера.\n" +"ПожалуйÑта, убедитеÑÑŒ, что Ñетевой кабель подключен и ваша Ñеть наÑтроена правильно." + +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"Ðе найден рабочий беÑпроводный адаптер.\n" +"ПожалуйÑта, убедитеÑÑŒ, что ÑовмеÑтимый беÑпроводной адаптер подключен и ваша Ñеть наÑтроена правильно." + +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"Ðе найден рабочий беÑпроводный интерфейÑ.\n" +" УбедитеÑÑŒ что вы подключили ÑовмеÑтимое уÑтройÑтво WLAN или включите локальный Ñетевой интерфейÑ." + +msgid "No, but restart from begin" +msgstr "Ðет, реÑтарт и начать Ñначала" + +msgid "No, do nothing." +msgstr "Ðет, ничего не делать." + +msgid "No, just start my receiver" +msgstr "Ðет, включить мой реÑивер" + +msgid "No, never" +msgstr "Ðет, никогда" + +msgid "None" +msgstr "нет" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Ðелинейный" + +msgid "Normal mode" +msgstr "Стандарт" + +msgid "North" +msgstr "Север" + +msgid "Norwegian" +msgstr "ÐорвежÑкий" + +msgid "Not associated" +msgstr "Ðет аÑÑоциаций" + +msgid "Not configured" +msgstr "" + +#, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Ðет меÑта на диÑке. ПожалуйÑта оÑвободите немного меÑта и попробуйте Ñнова. (%d MB требуетÑÑ, %d MB доÑтупно)" + +msgid "Nothing connected" +msgstr "" + +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Ðечего Ñканировать!\n" +"ПожалуйÑта, наÑтройте ваш тюнер перед началом ÑканированиÑ." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "СейчаÑ" + +msgid "Now playing" +msgstr "ВоÑпроизвеÑти" + +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Теперь иÑпользуйте наÑтройки контраÑтноÑти Ð´Ð»Ñ Ð¿Ð¾Ð´Ð½ÑÑ‚Ð¸Ñ Ñ„Ð¾Ð½Ð° в макÑимально возможный уровень, но при Ñтом необходимо Ñледить,чтобы Ð’Ñ‹ могли видеть Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ Ð´Ð²ÑƒÐ¼Ñ Ñамыми Ñркими уровнÑми оттенков.ЕÑли вÑе нормально нажмите OK." + +msgid "OK" +msgstr "OK" + +msgid "OK, guide me through the upgrade process" +msgstr "OK, подÑказывать мне в процеÑÑе обновлениÑ" + +msgid "ONID" +msgstr "ONID" + +msgid "OSD name request" +msgstr "OSD Ð¸Ð¼Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñа" + +msgid "OSD settings" +msgstr "OSD уÑтановки" + +msgid "OSD transparency" +msgstr "ПрозрачноÑÑ‚ÑŒ OSD" + +msgid "Off" +msgstr "Выкл." + +msgid "Offline decode delay (ms)" +msgstr "Задержка отложенного Ð´ÐµÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ (мÑ)" + +msgid "Ok" +msgstr "Ок" + +msgid "On" +msgstr "Вкл." + +msgid "On end of movie" +msgstr "Ð’ конце фильма" + +msgid "On end of movie (as menu)" +msgstr "" + +msgid "One" +msgstr "Один" + +msgid "Only extensions." +msgstr "Только дополнениÑ." + +msgid "Only free scan" +msgstr "Только беÑплатные" + +msgid "Open service list" +msgstr "Открыть ÑпиÑок ÑервиÑов" + +msgid "Open the movie list" +msgstr "Открыть ÑпиÑок видео" + +msgid "Orbital position" +msgstr "Орбит. позициÑ" + +msgid "Original" +msgstr "Оригинал" + +msgid "Other" +msgstr "ДругаÑ" + +msgid "Output" +msgstr "Видеовыход" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "ПерезапиÑать конф. файлы во Ð²Ñ€ÐµÐ¼Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐŸÐž?" + +msgid "Overwrite configuration files?" +msgstr "ПерепиÑать файлы конфигурации " + +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "PCR PID" + +msgid "PIDs" +msgstr "ПИДы" + +msgid "PIN code needed" +msgstr "Ðеобходим PIN-код" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "РМТ PID" + +msgid "Package list update" +msgstr "СпиÑок пакетов обновлениÑ" + +msgid "Packet management" +msgstr "Управление пакетами" + +msgid "Packet manager" +msgstr "Менеджер пакетов" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +msgid "Pan&scan" +msgstr "Pan&Scan" + +msgid "Parent directory" +msgstr "РодительÑкий каталог" + +msgid "Parental control" +msgstr "РодительÑкий контроль" + +msgid "Parental control services editor" +msgstr "Редактор ÑервиÑов родительÑкого контролÑ" + +msgid "Parental control setup" +msgstr "УÑтановки родительÑкого контролÑ" + +msgid "Parental control type" +msgstr "Тип родительÑкого контролÑ" + +msgid "Password" +msgstr "Пароль" + +msgid "Pause" +msgstr "Пауза" + +msgid "Pause movie at end" +msgstr "Пауза в конце фильма" + +msgid "Pause playback" +msgstr "Пауза воÑпроизведениÑ" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "проценты Ñлева" + +msgid "Percentage right" +msgstr "проценты Ñправа" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "Окончательное удаление вÑех запиÑей в корзине?" + +msgid "Permanently remove all deleted items" +msgstr "ОчиÑтка корзины" + +msgid "Persian" +msgstr "ФризÑкий" + +msgid "Phone number" +msgstr "Ðомер набора" + +msgid "PiP setup" +msgstr "ÐаÑтройки PiP" + +msgid "Picon" +msgstr "Пикон" + +msgid "Picon and service name" +msgstr "Пикон и название ÑервиÑа" + +msgid "Picture player" +msgstr "ПроÑмотр фото" + +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Pillarbox" + +msgid "Pilot" +msgstr "Пилот" + +msgid "Play" +msgstr "ВоÑпроизвеÑти" + +msgid "Play DVD" +msgstr "ВоÑпроизвеÑти DVD" + +msgid "Play audio in background" +msgstr "ВоÑпр. аудио в фоновом режиме" + +msgid "Play audio-CD..." +msgstr "ВоÑпроизвеÑти аудио-CD" + +msgid "Play back media files" +msgstr "Проигрыватель медиа файлов" + +msgid "Play entry" +msgstr "воÑпроизвеÑти запиÑÑŒ" + +msgid "Play from next mark or playlist entry" +msgstr "воÑпроизвеÑти Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñо Ñледующей метки или запиÑи в плейлиÑте" + +msgid "Play from previous mark or playlist entry" +msgstr "воÑпроизвеÑти Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰ÐµÐ¹ метки или запиÑи в плейлиÑте" + +msgid "Play music..." +msgstr "ВоÑпроизвеÑти музыку..." + +msgid "Play next" +msgstr "Играть Ñледующее видео" + +msgid "Play next (return to movie list)" +msgstr "След. воÑпр.(возврат к ÑпиÑку видео)" + +msgid "Play next (return to previous service)" +msgstr "След. воÑпр.(возврат на пред. ÑервиÑ)" + +msgid "Play previous" +msgstr "Играть Ñледующее видео" + +msgid "Play recorded movies..." +msgstr "ВоÑпроизвеÑти запиÑанное видео..." + +msgid "Please add titles to the compilation." +msgstr "ПожалуйÑта добавьте Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ðº компилÑции" + +msgid "Please change recording endtime" +msgstr "ПожалуйÑта, измените Ð²Ñ€ÐµÐ¼Ñ Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñи" + +msgid "Please check your network settings!" +msgstr "ПожалуйÑта, проверьте наÑтройки Ñети!" + +msgid "Please choose an extension..." +msgstr "ПожалуйÑта, выберите дополнение..." + +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"ПожалуйÑта, наÑтройте или проверьте конфигурацию DNS заполнив нужные данные\n" +"Когда будете готовы - нажмите ОК Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ." + +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"ПожалуйÑта, наÑтройте интернет Ñоединение заполнив нужные данные\n" +"Когда будете готовы - нажмите ОК Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ." + +msgid "Please connect your receiver to the internet" +msgstr "ПожалуйÑта, подключите ваш реÑивер к интернету" + +msgid "Please do not change any values unless you know what you are doing!" +msgstr "ПожалуйÑта, не изменÑйте любые параметры, пока не знаете что делаете!" + +msgid "Please enter a name for the new bouquet" +msgstr "ПожалуйÑта, введите Ð¸Ð¼Ñ Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ пакета" + +msgid "Please enter a name for the new marker" +msgstr "ПожалуйÑта, введите Ð¸Ð¼Ñ Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ маркера" + +msgid "Please enter a new filename" +msgstr "ПожалуйÑта, введите новое Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°" + +msgid "Please enter filename (empty = use current date)" +msgstr "ПожалуйÑта, введите Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°(пуÑто = Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ð´Ð°Ñ‚Ð°)" + +msgid "Please enter name of the new directory" +msgstr "ПожалуйÑта, введите Ð¸Ð¼Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ каталога" + +msgid "Please enter new name:" +msgstr "ПожалуйÑта, введите новое имÑ:" + +msgid "Please enter the correct pin code" +msgstr "ПожалуйÑта, введите правильный PIN-код" + +msgid "Please enter the old PIN code" +msgstr "ПожалуйÑта, введите Ñтарый PIN-код" + +msgid "Please follow the instructions on the TV" +msgstr "ПожалуйÑта, Ñледуйте инÑтрукциÑм на ТВ" + +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "ПожалуйÑта, обратите внимание, что ранее выбранный ноÑитель недоÑтупен, и вмеÑто него будет иÑпользован каталог по умолчанию" + +msgid "Please press OK to continue." +msgstr "ПожалуйÑта, нажмите ОК Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ." + +msgid "Please select a default EPG type..." +msgstr "ПожалуйÑта, выберите тип EPG по умолчанию..." + +msgid "Please select a playlist to delete..." +msgstr "ПожалуйÑта, выберите плейлиÑÑ‚ Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ..." + +msgid "Please select a playlist..." +msgstr "ПожалуйÑта, выберите плейлиÑÑ‚..." + +msgid "Please select a sub service..." +msgstr "ПожалуйÑта, выберите подÑервиÑ..." + +msgid "Please select a subservice to record..." +msgstr "ПожалуйÑта, выберите подÑÐµÑ€Ð²Ð¸Ñ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи..." + +msgid "Please select a subservice..." +msgstr "ПожалуйÑта, выберите подÑервиÑ..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "ПожалуйÑта, выберите файл NFI, и нажмите зеленую кнопку!" + +msgid "Please select medium to be scanned" +msgstr "ПожалуйÑта, выберите директорию Ð´Ð»Ñ ÑканированиÑ" + +msgid "Please select medium to use as backup location" +msgstr "ПожалуйÑта, выберите директорию Ð´Ð»Ñ Ñ€ÐµÐ·ÐµÑ€Ð½Ð¾Ð³Ð¾ копированиÑ" + +msgid "Please select tag to filter..." +msgstr "ПожалуйÑта, выберите Ñ‚Ñг Ð´Ð»Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð°..." + +msgid "Please select the movie path..." +msgstr "ПожалуйÑта, выберите путь Ð´Ð»Ñ Ð²Ð¸Ð´ÐµÐ¾ ..." + +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"ПожалуйÑта, выберите Ñетевой Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¹ будет иÑпользован Ð´Ð»Ñ Ð²Ñ‹Ñ…Ð¾Ð´Ð° в интернет\n" +"\n" +"Ðажмите ОК Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ." + +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"ПожалуйÑта, выберите беÑпроводную Ñеть Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ.\n" +"\n" +"Ðажмите ОК Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ." + +msgid "Please set up tuner A" +msgstr "ÐаÑтройте тюнер Ð" + +msgid "Please set up tuner B" +msgstr "ÐаÑтройте тюнер B" + +msgid "Please set up tuner C" +msgstr "ÐаÑтройте тюнер C" + +msgid "Please set up tuner D" +msgstr "ÐаÑтройте тюнер D" + +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"ПожалуйÑта, иÑпользуйте клавиши навигации Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ñкрана PiP.\n" +"Ðажмите Bouquet +/- Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð¾Ð² Ñкрана.\n" +"Ðажмите ОК Ð´Ð»Ñ Ð¿Ð¾Ð´Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¸ перехода в режим TV или EXIT Ð´Ð»Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ñ‹." + +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "ПожалуйÑта, иÑпользуйте кнопки ВВЕРХ и Ð’ÐИЗ Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð° Ñзыка. Далее нажмите ОК." + +msgid "Please wait" +msgstr "" + +msgid "Please wait (downloading channel list)" +msgstr "Подождите (загружаетÑÑ ÑпиÑок каналов)" + +msgid "Please wait (downloading softcam)" +msgstr "Подождите (загружаем ÑмулÑтор)" + +msgid "Please wait (updating packages)" +msgstr "Подождите (обновлÑем пакеты)" + +msgid "Please wait for activation of your network configuration..." +msgstr "Подождите, идет Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ñ Ð²Ð°ÑˆÐµÐ¹ Ñетевой конфигурации ..." + +msgid "Please wait while scanning is in progress..." +msgstr "ПожалуйÑта подождите, пока идет Ñканирование..." + +msgid "Please wait while we configure your network..." +msgstr "ПожалуйÑта подождите, пока мы наÑтроим Ñеть ..." + +msgid "Please wait while we prepare your network interfaces..." +msgstr "Подождите, подготовка Ñетевых интерфейÑов..." + +msgid "Please wait while we test your network..." +msgstr "Подождите пока идет проверка вашей Ñети..." + +msgid "Please wait while your network is restarting..." +msgstr "ПожалуйÑта подождите, пока идет перезагрузка Ñети..." + +msgid "Please wait..." +msgstr "ПожалуйÑта подождите..." + +msgid "Please wait... Loading list..." +msgstr "ПожалуйÑта подождите...ЗагружаетÑÑ ÑпиÑок" + +msgid "Plugin browser" +msgstr "Браузер плагинов" + +msgid "Plugin manager activity information" +msgstr "Менеджер плагинов - информациÑ" + +msgid "Plugin manager help" +msgstr "Менеджер плагинов - помощь" + +msgid "Plugins" +msgstr "Плагины" + +msgid "Polarisation" +msgstr "ПолÑризациÑ" + +msgid "Polarisation:" +msgstr "" + +msgid "Polarization" +msgstr "ПолÑризациÑ" + +msgid "Polish" +msgstr "ПольÑкий" + +msgid "Port A" +msgstr "Порт Ð" + +msgid "Port B" +msgstr "Порт B" + +msgid "Port C" +msgstr "Порт C" + +msgid "Port D" +msgstr "Порт D" + +msgid "Portuguese" +msgstr "ПортугальÑкий" + +msgid "Position of completed timers in timerlist" +msgstr "ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ‹Ñ… таймеров в ÑпиÑке таймеров" + +msgid "Position stored at index" +msgstr "Сохраненный номер позиции" + +msgid "Positioner" +msgstr "Позиционер" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "" + +msgid "Positioner setup" +msgstr "ÐаÑтройка позиционера" + +msgid "Power threshold in mA" +msgstr "Порог тока в mA" + +msgid "Predefined transponder" +msgstr "Предопределенный транÑпондер" + +msgid "Prefer AC3 track" +msgstr "Приоритет аудио дорожки AC3" + +msgid "Prefer AC3+ track" +msgstr "" + +msgid "Prefer audio track stored by service" +msgstr "ÐŸÑ€Ð¸Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð°Ñ Ð°ÑƒÐ´Ð¸Ð¾ дорожка ÑервиÑа" + +msgid "Prefer graphical DVB subtitles" +msgstr "Приоритет графичеÑких DVB Ñубтитров" + +msgid "Prefer subtitles for hearing impaired" +msgstr "Приоритет Ñубтитров Ð´Ð»Ñ Ð»ÑŽÐ´ÐµÐ¹ Ñ Ð½Ð°Ñ€ÑƒÑˆÐµÐ½Ð¸Ñми Ñлуха" + +msgid "Prefer subtitles stored by service" +msgstr "Приоритет Ñубтитров, Ñохраненных ÑервиÑом" + +msgid "Preferred tuner" +msgstr "Приоритетный тюнер" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "Подготовка другогой USB-флешки Ð´Ð»Ñ Ð¸Ð½ÑталлÑции ÑиÑтемы" + +msgid "Preparing... Please wait" +msgstr "Подготовка ... ПожалуйÑта, подождите" + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "Ðажмите кнопку INFO на пульте Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации." + +msgid "Press MENU on your remote control for additional options." +msgstr "Ðажмите кнопку MENU на пульте Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации." + +msgid "Press OK on your remote control to continue." +msgstr "Ðажмите OK на пульте, чтобы продолжить." + +msgid "Press OK to activate the selected skin." +msgstr "Ðажмите OK Ð´Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ выбранного Ñкина." + +msgid "Press OK to activate the settings." +msgstr "Ðажмите OK Ð´Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ наÑтроек." + +msgid "Press OK to edit the settings." +msgstr "Ðажмите OK, чтобы изменить наÑтройки." + +#, python-format +msgid "Press OK to get further details for %s" +msgstr "Ðажмите ОК, чтобы получить подробную информацию Ð´Ð»Ñ %s" + +msgid "Press OK to scan" +msgstr "Ðажмите OK Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка." + +msgid "Press OK to select a provider." +msgstr "Ðажмите ОК Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð° провайдера." + +msgid "Press OK to select satellites" +msgstr "" + +msgid "Press OK to select/deselect a CAId." +msgstr "Ðажмите OK, чтобы выбрать/отменить CAId." + +msgid "Press OK to start the scan" +msgstr "Ðажмите OK Ð´Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° поиÑка." + +msgid "Press OK to toggle the selection" +msgstr "" + +msgid "Press OK to toggle the selection." +msgstr "Ðажмите ОК Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ отмены." + +msgid "Press yellow to set this interface as default interface." +msgstr "УÑтановка интерфейÑа по умолчанию - Ð¶ÐµÐ»Ñ‚Ð°Ñ ÐºÐ½Ð¾Ð¿ÐºÐ°." + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "Предыдущий" + +msgid "Preview" +msgstr "Превью" + +msgid "Preview menu" +msgstr "Меню превью" + +msgid "Preview selected channel" +msgstr "Превью выбранного канала" + +msgid "Primary DNS" +msgstr "Первичный DNS" + +msgid "Priority" +msgstr "ОчередноÑÑ‚ÑŒ" + +msgid "Process" +msgstr "ПроцеÑÑ" + +msgid "Progress" +msgstr "ПрогреÑÑ" + +msgid "Progress bar left" +msgstr "прогреÑÑ-бар Ñлева" + +msgid "Progress bar right" +msgstr "прогреÑÑ-бар Ñправа" + +msgid "Properties of current title" +msgstr "СвойÑтва текущего названиÑ" + +msgid "Protect services" +msgstr "Защитить ÑервиÑÑ‹" + +msgid "Protect setup" +msgstr "Защитить уÑтановки" + +msgid "Provider" +msgstr "Провайдер" + +msgid "Provider to scan" +msgstr "Провайдер Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка" + +msgid "Providers" +msgstr "Провайдеры" + +msgid "Put TV in standby" +msgstr "Переход ТВ в режим ожиданиÑ" + +msgid "Put receiver in standby" +msgstr "Переход реÑивера в режим ожиданиÑ" + +msgid "Python frontend for /tmp/mmi.socket" +msgstr "Python Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð´Ð»Ñ /tmp/mmi.socket" + +msgid "Quick" +msgstr "БыÑтро" + +msgid "Quick zap" +msgstr "БыÑтрое переключение" + +msgid "RF output" +msgstr "RF выход" + +msgid "RGB" +msgstr "RGB" + +msgid "Radio" +msgstr "Радио" + +msgid "Ram disk" +msgstr "Ram диÑк" + +msgid "Random" +msgstr "Случайно" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "Рейтинг определен - %d" + +msgid "Rating undefined" +msgstr "Рейтинг неопределен" + +msgid "Really close without saving settings?" +msgstr "ДейÑтвительно закрыть без ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð½Ð°Ñтроек?" + +msgid "Really delete done timers?" +msgstr "ДейÑтвительно удалить выполненные таймеры?" + +msgid "Really exit the subservices quickzap?" +msgstr "ДейÑтвительно выйти из меню ÑубÑервиÑов?" + +msgid "Really reboot now?" +msgstr "ДейÑтвительно перезагрузить ÑейчаÑ?" + +msgid "Really restart now?" +msgstr "ДейÑтвительно реÑтарт ÑейчаÑ?" + +msgid "Really shutdown now?" +msgstr "ДейÑтвительно выключить ÑейчаÑ?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "Обновить фронтпроцеÑÑор и перезагрузить ÑейчаÑ?" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "Обновить ваш реÑивер и перезагрузить ÑейчаÑ?" + +msgid "Reboot" +msgstr "Перезагрузка" + +msgid "Rec" +msgstr "ЗапиÑÑŒ" + +msgid "Reception settings" +msgstr "" + +msgid "Record" +msgstr "ЗапиÑÑŒ" + +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð·Ð°Ð¿Ð¸Ñи ограничено из-за конфликта таймера %s" + +msgid "Recorded files..." +msgstr "ЗапиÑанные файлы..." + +msgid "Recording" +msgstr "ЗапиÑÑŒ" + +msgid "Recording in progress" +msgstr "Идет запиÑÑŒ" + +msgid "Recording paths" +msgstr "МеÑто запиÑей, таймшифта" + +msgid "Recording type" +msgstr "Тип запиÑи" + +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "ЗапиÑÑŒ(и) идет или начнетÑÑ Ð² ближайшие неÑколько Ñекунд!" + +msgid "Recordings" +msgstr "ЗапиÑи" + +msgid "Recordings always have priority" +msgstr "ЗапиÑи вÑегда имеют приоритет" + +msgid "Red button..." +msgstr "КраÑÐ½Ð°Ñ ÐºÐ½Ð¾Ð¿ÐºÐ°..." + +msgid "Reenter new PIN" +msgstr "Повторите новый PIN-код" + +msgid "Refresh rate" +msgstr "ЧаÑтота обновлениÑ" + +msgid "Refresh rate selection." +msgstr "Выбор чаÑтоты обновлениÑ" + +msgid "Regard deep standby as standby" +msgstr "Считать выключение как режим ожиданиÑ" + +msgid "Relative" +msgstr "отноÑительнаÑ" + +msgid "Reload" +msgstr "Обновить" + +msgid "Reload black-/white lists" +msgstr "Обновить черный-/белый ÑпиÑок" + +msgid "Reloading bouquets and services..." +msgstr "Обновление фаворитов и ÑервиÑов...." + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "Помнить PIN-код ÑервиÑа" + +msgid "Remember these settings for each folder" +msgstr "Помнить Ñти наÑтройки Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ папки" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "Ðапоминаем, вы выбрали Ñохранение файла таймшифта." + +msgid "Remote control type" +msgstr "Тип пульта ДУ" + +msgid "Removal has completed." +msgstr "Обновление завершено." + +msgid "Remove" +msgstr "Удаление" + +msgid "Remove a mark" +msgstr "Удалить метку" + +msgid "Remove a nameserver entry" +msgstr "удалить данные DNS" + +msgid "Remove bookmark" +msgstr "удалить закладку" + +msgid "Remove completed timers after (days)" +msgstr "Удаление завершенных таймеров через (в днÑÑ…)" + +msgid "Remove currently selected title" +msgstr "Удалить выбранный заголовок" + +msgid "Remove items from trash can after (days)" +msgstr "УдалÑÑ‚ÑŒ запиÑи из корзины через (в днÑÑ…)" + +msgid "Remove plugins" +msgstr "Удаление плагинов" + +msgid "Remove title" +msgstr "Удалить опиÑание" + +msgid "Removing" +msgstr "Удаление" + +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Ошибка ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ %s каталога. (Возможно он не пуÑÑ‚.)" + +msgid "Removing partition table" +msgstr "Ðе удалоÑÑŒ Ñоздать раздел" + +msgid "Rename" +msgstr "Переименовать" + +msgid "Repeat" +msgstr "Повтор" + +msgid "Repeat type" +msgstr "Тип повтора" + +msgid "Repeating event currently recording... What do you want to do?" +msgstr "ПовторÑющееÑÑ Ñобытие ÑÐµÐ¹Ñ‡Ð°Ñ Ð·Ð°Ð¿Ð¸ÑываетÑÑ... Что вы хотите Ñделать?" + +msgid "Repeats" +msgstr "Повторы" + +msgid "Require authentication for http streams" +msgstr "" + +msgid "Required medium type:" +msgstr "Требуемый тип ноÑителÑ:" + +msgid "Rereading partition table" +msgstr "Ðе удалоÑÑŒ Ñоздать раздел" + +msgid "Reserved" +msgstr "Зарезервировано" + +msgid "Reset" +msgstr "СброÑ" + +msgid "Reset and renumerate title names" +msgstr "СброÑить и перенумеровать имена названий" + +msgid "Reset playback position" +msgstr "Ð¡Ð±Ñ€Ð¾Ñ Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ð¸ воÑпроизведениÑ" + +msgid "Reset video enhancement settings to system defaults?" +msgstr "Ð¡Ð±Ñ€Ð¾Ñ Ð½Ð°Ñтроек видео по умолчанию?" + +msgid "Reset video enhancement settings to your last configuration?" +msgstr "Ð¡Ð±Ñ€Ð¾Ñ Ð½Ð°Ñтроек видео к поÑледней конфигурации?" + +msgid "Resolution" +msgstr "Разрешение" + +msgid "Restart" +msgstr "Перезагрузка" + +msgid "Restart GUI now?" +msgstr "РеÑтарт GUI ÑейчаÑ?" + +msgid "Restart enigma" +msgstr "РеÑтарт Ñнигма" + +msgid "Restart network" +msgstr "ПерезапуÑтить Ñеть" + +msgid "Restart test" +msgstr "ПерезапуÑтить теÑÑ‚" + +msgid "Restart your network connection and interfaces.\n" +msgstr "Перезагрузка Ñетевых подключений и интерфейÑов.\n" + +msgid "Restore" +msgstr "ВоÑÑтановить" + +msgid "Restore backups" +msgstr "ВоÑтановление резрвных копий" + +msgid "Restore is running..." +msgstr "ВыполнÑетÑÑ Ð²Ð¾ÑÑтановление..." + +msgid "Restore system settings" +msgstr "ВоÑÑтановить ÑиÑтемные наÑтройки" + +msgid "Restoring..." +msgstr "ВоÑтановление..." + +msgid "Resume from last position" +msgstr "Возобновить Ñ Ð¿Ð¾Ñледней позиции" + +#, python-format +msgid "Resume position at %s" +msgstr "Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ %s" + +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Возобновление воÑпроизведениÑ" + +msgid "Return to movie list" +msgstr "ВернутьÑÑ Ðº ÑпиÑку фильмов" + +msgid "Return to previous service" +msgstr "ВернутьÑÑ Ð½Ð° предыдущий ÑервиÑ" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +msgid "Rewind speeds" +msgstr "СкороÑÑ‚ÑŒ перемотки назад" + +msgid "Rewrap teletext subtitles" +msgstr "Перепаковать телетекÑÑ‚ Ñубтитров" + +msgid "Right" +msgstr "Правый" + +msgid "Right from servicename" +msgstr "Ñправа от Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ ÑервиÑа" + +msgid "Roll-off" +msgstr "Roll-off фактор" + +msgid "Romanian" +msgstr "РумынÑкий" + +msgid "Root directory" +msgstr "Корневой каталог" + +msgid "Rotor step position:" +msgstr "Шаг позиции ротора:" + +msgid "Rotor turning speed" +msgstr "СкороÑÑ‚ÑŒ Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¼Ð¾Ñ‚Ð¾Ñ€Ð°" + +msgid "Round start time on" +msgstr "Вокруг времени начала на" + +msgid "Russian" +msgstr "РуÑÑкий" + +msgid "S-Video" +msgstr "S-Видео" + +msgid "SID" +msgstr "SID" + +msgid "SINGLE LAYER DVD" +msgstr "ОдноÑлойный ДВД" + +msgid "SNR" +msgstr "SNR" + +msgid "SNR:" +msgstr "SNR:" + +msgid "SSID:" +msgstr "SSID:" + +msgid "Same resolution as skin" +msgstr "разрешение как в Ñкине" + +msgid "Sat" +msgstr "Сб" + +msgid "Satellite" +msgstr "Спутник" + +msgid "Satellite dish setup" +msgstr "ÐаÑтройки Ñпут. оборудованиÑ" + +msgid "Satellite equipment" +msgstr "Спутниковое оборудование" + +msgid "Satellite equipment setup" +msgstr "ÐаÑтройки Ñпут. оборудованиÑ" + +msgid "Satellite longitude:" +msgstr "Долгота Ñпутника:" + +msgid "Satellites" +msgstr "Спутники" + +msgid "Satfinder" +msgstr "ПоиÑк Ñпутника" + +msgid "Sats" +msgstr "Спутники" + +msgid "Saturation" +msgstr "ÐаÑыщеноÑÑ‚ÑŒ" + +msgid "Saturday" +msgstr "Суббота" + +msgid "Save" +msgstr "Сохранить" + +msgid "Save playlist" +msgstr "Ñохранить плейлиÑÑ‚" + +msgid "Save timeshift file" +msgstr "Сохранить файл таймшифта" + +msgid "Save timeshift file in movie directory" +msgstr "Сохранить файл таймшифта в каталог movie" + +msgid "Scaler sharpness" +msgstr "ЧёткоÑÑ‚ÑŒ" + +msgid "Scaling mode" +msgstr "Режим вычиÑлениÑ" + +msgid "Scan" +msgstr "Сканирование" + +msgid "Scan " +msgstr "Сканирование " + +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, python-format +msgid "Scan %s" +msgstr "Сканирование %s" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, python-format +msgid "Scan %s band" +msgstr "Диапазон %s ÑканированиÑ" + +msgid "Scan additional SR" +msgstr "Сканировать дополн. SR" + +msgid "Scan files..." +msgstr "Сканировать файлы..." + +msgid "Scan wireless networks" +msgstr "Сканировать беÑпроводные Ñети" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "Сканирование Ñети Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка беÑпроводных точек доÑтупа и Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ðº выбранному уÑтройÑтву.\n" + +#, python-format +msgid "Scanning %s..." +msgstr "Сканирование %s..." + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "Сканирование - %d%% завершено" +msgstr[1] "Сканирование - %d%% завершено" +msgstr[2] "Сканирование - %d%% завершено" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "Сканирование завершено, %d канал найден" +msgstr[1] "Сканирование завершено, %d канала найдено" +msgstr[2] "Сканирование завершено, %d каналов найдено" + +msgid "Scanning failed!" +msgstr "Ошибка ÑканированиÑ!" + +msgid "Scanning..." +msgstr "Сканирование..." + +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "Сканировать lamedb по Ñпутникам Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ‹Ð¼ мотоподвеÑом" + +msgid "Search east" +msgstr "ПоиÑк на воÑтоке" + +msgid "Search west" +msgstr "ПоиÑк на западе" + +msgid "Searching" +msgstr "ПоиÑк" + +msgid "Searching east ..." +msgstr "ПоиÑк на воÑтоке ..." + +msgid "Searching for available updates. Please wait..." +msgstr "ПоиÑк доÑтупных обновлений. ПожалуйÑта подождите ..." + +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "ПоиÑк новых пакетов,уÑтановки или удалениÑ. ПожалуйÑта подождите ..." + +msgid "Searching west ..." +msgstr "ПоиÑк на западе ..." + +msgid "Second cable of motorized LNB" +msgstr "" + +msgid "Secondary DNS" +msgstr "Вторичный DNS" + +msgid "Seek" +msgstr "Перемотка" + +msgid "Seek backward" +msgstr "Перемотка назад" + +msgid "Seek backward (enter time)" +msgstr "Перемотать назад (введите времÑ)" + +msgid "Seek forward" +msgstr "Перемотка вперед" + +msgid "Seek forward (enter time)" +msgstr "Перемотать вперед (введите времÑ)" + +msgid "Select" +msgstr "Выбрать" + +msgid "Select CAId" +msgstr "Выбор CAId" + +msgid "Select HDD" +msgstr "Выбрать HDD" + +msgid "Select a bouquet" +msgstr "Выбрать букет" + +msgid "Select a movie" +msgstr "Выбрать видео" + +msgid "Select a network adapter" +msgstr "Выбор Ñетевого адаптера" + +msgid "Select a skin" +msgstr "Выбрать Ñкин" + +msgid "Select a tuner" +msgstr "Выбрать тюнер" + +msgid "Select a wireless network" +msgstr "Выберите беÑпроводную Ñеть" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +msgid "Select an image to be downloaded" +msgstr "Выберите прошивку Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸" + +msgid "Select audio track" +msgstr "Выбор аудио дорожки" + +msgid "Select backup files" +msgstr "Выбрать файлы бÑкапа" + +msgid "Select backup location" +msgstr "Выбрать раÑположение бÑкапа" + +msgid "Select channel to record from" +msgstr "Выбрать канал Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи Ñ" + +msgid "Select copy destination for:" +msgstr "Выбор меÑта Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸:" + +msgid "Select default EPG type..." +msgstr "Выбор типа EPG по умолчанию..." + +msgid "Select desired image from feed list" +msgstr "Выберите желаемый имидж из ÑпиÑка" + +msgid "Select destination for:" +msgstr "Выбор меÑта длÑ:" + +msgid "Select files for backup." +msgstr "Выбор файлов Ð´Ð»Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð³Ð¾ копированиÑ." + +msgid "Select files/folders to backup" +msgstr "Выбор файлов/папок Ð´Ð»Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð³Ð¾ копированиÑ." + +msgid "Select input device" +msgstr "Выберите уÑтройÑтва ввода" + +msgid "Select input device." +msgstr "Выбор уÑтройÑтва ввода" + +msgid "Select interface" +msgstr "Выберите интерфейÑ" + +msgid "Select location" +msgstr "Выбор раÑположениÑ" + +msgid "Select movie" +msgstr "Выбор видео" + +msgid "Select provider to add..." +msgstr "Выбор провайдера Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ..." + +msgid "Select refresh rate" +msgstr "Выберите чаÑтоту обновлениÑ" + +msgid "Select satellites" +msgstr "" + +msgid "Select service to add..." +msgstr "Выбор ÑервиÑа Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ..." + +msgid "Select sort method:" +msgstr "" + +msgid "Select target folder" +msgstr "Выбрать целевую папку" + +msgid "Select the movie path" +msgstr "выбрать путь к видео" + +msgid "Select upgrade source" +msgstr "Выбор иÑточника обновлениÑ" + +msgid "Select upgrade source to edit." +msgstr "Выбор иÑточника Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ." + +msgid "Select video input with up/down buttons" +msgstr "Выберите видеовход кнопками вверх/вниз" + +msgid "Select video mode" +msgstr "Выберите видеорежим" + +msgid "Select wireless network" +msgstr "Выберите беÑпроводную Ñеть" + +msgid "Select your provider, and press OK to start the scan" +msgstr "Выберите провайдера и нажмите ОК Ð´Ð»Ñ ÑканированиÑ" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +msgid "Send DiSEqC only on satellite change" +msgstr "Отправить DiSEqC только при Ñмене Ñпутника" + +msgid "Separate titles with a main menu" +msgstr "Отдельные главы в главном меню" + +msgid "Sequence repeat" +msgstr "ПоÑледовательноÑÑ‚ÑŒ повторениÑ" + +msgid "Serbian" +msgstr "СербÑкий" + +msgid "Service" +msgstr "СервиÑ" + +msgid "Service has been added to the favourites." +msgstr "Ð¡ÐµÑ€Ð²Ð¸Ñ Ð±Ñ‹Ð» добавлен в фавориты." + +msgid "Service has been added to the selected bouquet." +msgstr "Ð¡ÐµÑ€Ð²Ð¸Ñ Ð±Ñ‹Ð» добавлен в выбранный пакет." + +msgid "Service info" +msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ ÑервиÑе" + +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"ÐедейÑтвительный ÑервиÑ!\n" +"(Тайм-аут Ñ‡Ñ‚ÐµÐ½Ð¸Ñ PMT)" + +msgid "Service name" +msgstr "Ðазвание ÑервиÑа" + +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Ð¡ÐµÑ€Ð²Ð¸Ñ Ð½Ðµ найден!\n" +"(SID не найден в PAT)" + +msgid "Service reference" +msgstr "РеференÑ" + +msgid "Service scan" +msgstr "Сканирование ÑервиÑов" + +msgid "Service searching" +msgstr "ПоиÑк ÑервиÑов" + +msgid "Service title mode" +msgstr "Режим Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ ÑервиÑа" + +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"Ð¡ÐµÑ€Ð²Ð¸Ñ Ð½Ðµ доÑтупен!\n" +"Проверьте наÑтройки тюнера!" + +msgid "Services" +msgstr "СервиÑÑ‹" + +msgid "Set default" +msgstr "" + +msgid "Set end time" +msgstr "УÑтановить Ð²Ñ€ÐµÐ¼Ñ Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ" + +msgid "Set fixed" +msgstr "ФикÑировать" + +msgid "Set fps for external subtitles" +msgstr "Ðабор кадров в Ñекунду Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½Ð¸Ñ… Ñубтитров" + +msgid "Set interface as default Interface" +msgstr "УÑтановить Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÐºÐ°Ðº дефолтный" + +msgid "Set limits" +msgstr "Ðабор ограничений" + +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "УÑтановите тип Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð³Ñ€ÐµÑÑа в меню выбора каналов." + +msgid "Set time window to 1 hour" +msgstr "УÑтановка времени окна на 1 чаÑ" + +msgid "Set time window to 2 hours" +msgstr "УÑтановка времени окна на 2 чаÑа" + +msgid "Set time window to 3 hours" +msgstr "УÑтановка времени окна на 3 чаÑа" + +msgid "Set time window to 4 hours" +msgstr "УÑтановка времени окна на 4 чаÑа" + +msgid "Set time window to 5 hours" +msgstr "УÑтановка времени окна на 5 чаÑов" + +msgid "Set time window to 6 hours" +msgstr "УÑтановка времени окна на 6 чаÑов" + +msgid "Set voltage and 22KHz" +msgstr "УÑтановить напрÑжение и 22КГц" + +msgid "Settings" +msgstr "УÑтановки" + +msgid "Setup" +msgstr "ÐаÑтройка" + +msgid "Setup menu" +msgstr "Меню наÑтроек" + +msgid "Setup mode" +msgstr "Режим наÑтроек" + +msgid "Setup your positioner" +msgstr "ÐаÑтройки вашего позиционера" + +msgid "Setup your satellite equipment" +msgstr "ÐаÑтройки Ñпутникового оборудованиÑ" + +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "Должен ли маÑтер USB-флеша уÑтановить имидж %s во внутреннюю флеш-памÑÑ‚ÑŒ?" + +msgid "Sharpness" +msgstr "РезкоÑÑ‚ÑŒ" + +msgid "Short filenames" +msgstr "Короткое название" + +msgid "Show EIT now/next in infobar" +msgstr "Показать EIT ÑейчаÑ/далее в инфобаре" + +msgid "Show EPG for current channel..." +msgstr "Показать EPG текущего канала..." + +msgid "Show EPG..." +msgstr "Показать EPG..." + +msgid "Show Games show" +msgstr "Показ игровых шоу" + +msgid "Show SNR percentage instead of dB value" +msgstr "Показать проценты SNR вмеÑто Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ dB в инфобаре" + +msgid "Show VCR scart on main menu" +msgstr "Показать 'Видеомагнитофон' в главном меню" + +msgid "Show WLAN status" +msgstr "Показать ÑоÑтоÑние WLAN" + +msgid "Show animation while busy" +msgstr "Показывать анимацию(Ñпиннер), когда ÑиÑтема занÑта" + +msgid "Show background in radio mode" +msgstr "Показать фоновую заÑтавку в режиме радио" + +msgid "Show bouquet selection menu" +msgstr "Показать меню выбора фаворитов" + +msgid "Show busy indicator when the system is busy." +msgstr "Показывать индикатор на Ñкране при занÑтоÑти ÑиÑтемы." + +msgid "Show channel numbers in channel selection" +msgstr "Показать номер канала в Ñелекторе каналов" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "Показать крипто данные ÑмулÑтора в инфобаре" + +msgid "Show detailed event info" +msgstr "Показать детально инфо ÑобытиÑ" + +msgid "Show event details" +msgstr "Показать детали ÑобытиÑ" + +msgid "Show event-progress in channel selection" +msgstr "Вид прогреÑÑа ÑÐ¾Ð±Ñ‹Ñ‚Ð¸Ñ Ð² Ñелекторе каналов" + +msgid "Show extended description" +msgstr "показать раÑширенное опиÑание" + +msgid "Show extensions..." +msgstr "Показать дополнениÑ..." + +msgid "Show icon for new/unseen items" +msgstr "Показ иконки Ð´Ð»Ñ Ð½Ð¾Ð²Ñ‹Ñ…/невидимых Ñлементов" + +msgid "Show in extensions menu" +msgstr "Показать плагин в меню дополнений" + +msgid "Show info" +msgstr "Показать инфо" + +msgid "Show info line" +msgstr "показать инфолинию" + +msgid "Show infobar on channel change" +msgstr "Показать инфобар при Ñмене каналов" + +msgid "Show infobar on event change" +msgstr "Показать инфобар при Ñмене Ñобытий" + +msgid "Show infobar on skip forward/backward" +msgstr "Показать инфобар при перемотке вперед/назад" + +msgid "Show latest commits on sourceforge" +msgstr "" + +msgid "Show message when recording starts" +msgstr "Показать Ñообщение при начале запиÑи" + +msgid "Show movie lengths in movielist" +msgstr "Показать длительноÑÑ‚ÑŒ видео в ÑпиÑке видео" + +msgid "Show multi channel EPG" +msgstr "" + +msgid "Show picons in channel list" +msgstr "" + +msgid "Show positioner movement" +msgstr "Показать движение позиционера" + +msgid "Show screensaver" +msgstr "ЗапуÑтить хранитель Ñкрана через" + +msgid "Show second infobar" +msgstr "Показать второй инфобар" + +msgid "Show service type icons" +msgstr "Показать иконки типа ÑервиÑа" + +msgid "Show services beginning with" +msgstr "Показывать ÑервиÑÑ‹ начинающиеÑÑ Ñ" + +msgid "Show shutdown menu" +msgstr "показать меню выключениÑ" + +msgid "Show single service EPG" +msgstr "" + +msgid "Show status icons in Movielist" +msgstr "Показать иконку ÑтатуÑа в ÑпиÑке видео" + +msgid "Show status icons in movie list" +msgstr "Показать иконку ÑтатуÑа в ÑпиÑке видео" + +msgid "Show status icons in movielist" +msgstr "Показать иконку ÑтатуÑа в ÑпиÑке видео" + +msgid "Show tag menu" +msgstr "показать меню тегов" + +msgid "Show the radio player..." +msgstr "Перейти на радио плеер..." + +msgid "Show the tv player..." +msgstr "Перейти на тв плеер..." + +msgid "Show warning when timeshift is stopped" +msgstr "Показать предупреждение при оÑтановке таймшифта" + +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Показывает ÑоÑтоÑние вашего беÑпроводного ÑоединениÑ.\n" + +msgid "Shuffle playlist" +msgstr "перемешать плейлиÑÑ‚" + +msgid "Shutdown" +msgstr "Выключить" + +msgid "Shutdown when in Standby" +msgstr "Выключение в режиме ожиданиÑ" + +msgid "Side by side" +msgstr "Лево и право" + +msgid "Signal OK, proceeding" +msgstr "Сигнал ОК,в процеÑÑе" + +msgid "Signal quality" +msgstr "КачеÑтво Ñигнала" + +msgid "Signal strength:" +msgstr "Сила Ñигнала:" + +msgid "Signal: " +msgstr "Сигнал: " + +msgid "Similar" +msgstr "Ðналогичный" + +msgid "Similar broadcasts:" +msgstr "Ðналогичные передачи:" + +msgid "Simple" +msgstr "ПроÑтой" + +msgid "Simple titleset (compatibility for legacy players)" +msgstr "ПроÑтой заголовок (ÑовмеÑтимоÑÑ‚ÑŒ Ñ DVD плеерами)" + +msgid "Single" +msgstr "Одиночный" + +msgid "Single EPG" +msgstr "Одиночное EPG" + +msgid "Single satellite" +msgstr "Один Ñпутник" + +msgid "Single step (GOP)" +msgstr "Один шаг (GOP)" + +msgid "Single transponder" +msgstr "Один транÑпондер" + +msgid "Site latitude" +msgstr "Широта по Ñайту" + +msgid "Site longitude" +msgstr "Долгота по Ñайту" + +msgid "Skin" +msgstr "Выбор Ñкина" + +msgid "Skins" +msgstr "Скины" + +msgid "Skip empty services" +msgstr "ПропуÑкать пуÑтые ÑервиÑÑ‹" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "ПропуÑтить проверку интернет ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ (отключает автоматичеÑкую уÑтановку пакетов)" + +msgid "Sleep timer" +msgstr "Таймер Ñна" + +msgid "SleepTimer Configuration" +msgstr "ÐаÑтройки таймера Ñна" + +msgid "Sleeptimer" +msgstr "Таймер Ñна" + +msgid "Slide picture in loop" +msgstr "цикличеÑкий показ Ñлайдов" + +msgid "Slide show interval (sec.)" +msgstr "Интервал Ñлайдшоу (Ñек.)" + +#, python-format +msgid "Slot %d" +msgstr "Слот %d" + +msgid "Slovak" +msgstr "Словацкий" + +msgid "Slovenian" +msgstr "СловенÑкий" + +msgid "Slow" +msgstr "Медленно" + +msgid "Slow motion speeds" +msgstr "ÐÐ¸Ð·ÐºÐ°Ñ ÑкороÑÑ‚ÑŒ" + +msgid "Small progress" +msgstr "маленький прогреÑÑ" + +msgid "Social/Political/Economics" +msgstr "Социальное/Политика/Экономика" + +msgid "SoftCam / CI" +msgstr "Эму менеджер / CI" + +msgid "Softcam type" +msgstr "Тип ÑмулÑтора" + +msgid "Software" +msgstr "Софт" + +msgid "Software management" +msgstr "Менеджер ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñофтом" + +msgid "Software manager setup" +msgstr "ÐаÑтройки менеджера Ñофта" + +msgid "Software restore" +msgstr "ВоÑÑтановление Ñофта" + +msgid "Software update" +msgstr "Обновление Ñофта" + +msgid "Softwaremanager information" +msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ€Ð° Ñофта" + +msgid "Some plugins are not available:\n" +msgstr "Ðекоторые плагины недоÑтупны:\n" + +#, python-format +msgid "Sorry, %s has not been installed!" +msgstr "Извините, %s не уÑтановлен!" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "Извините, удаление директорий может (пока) быть Ñделано только через корзину," + +msgid "Sorry, no backups found!" +msgstr "Ðе найдены резервные копии!" + +msgid "Sorry, no details available!" +msgstr "Извините, нет детального опиÑаниÑ!" + +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"МеÑто ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð½Ðµ доÑтупно к запиÑи.\n" +"ПожалуйÑта,выберите другое." + +msgid "Sort" +msgstr "Сортировка" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Сортировка Ð-Я" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort time" +msgstr "По времени" + +msgid "Sound" +msgstr "Звук" + +msgid "Sound carrier" +msgstr "Звук ноÑителÑ" + +msgid "Source request" +msgstr "Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¸Ñточника" + +msgid "South" +msgstr "Юг" + +msgid "Spanish" +msgstr "ИÑпанÑкий" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "УÑтановите окончание периода Ð´Ð»Ñ Ð¸Ð³Ð½Ð¾Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´ÐµÐ¹ÑÑ‚Ð²Ð¸Ñ Ñ‚Ð°Ð¹Ð¼ÐµÑ€Ð° неактивноÑти." + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "УÑтановите начало периода Ð´Ð»Ñ Ð¸Ð³Ð½Ð¾Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´ÐµÐ¹ÑÑ‚Ð²Ð¸Ñ Ñ‚Ð°Ð¹Ð¼ÐµÑ€Ð° неактивноÑти." + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "Период времени Ð¸Ð³Ð½Ð¾Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð°Ð¹Ð¼ÐµÑ€Ð° неактивноÑти" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +msgid "Split preview mode" +msgstr "Режим предварительного проÑмотра" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "Спорт" + +msgid "Standard" +msgstr "Cтандарт" + +msgid "Standart list" +msgstr "" + +msgid "Standby" +msgstr "Режим ожиданиÑ" + +msgid "Standby / restart" +msgstr "Меню выключениÑ" + +msgid "Standby after current event" +msgstr "Режим Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾Ñле текущего ÑобытиÑ" + +#, python-format +msgid "Standby fan %d PWM" +msgstr "Режим Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð²ÐµÐ½Ñ‚Ð¸Ð»Ñтора %d PWM" + +#, python-format +msgid "Standby fan %d voltage" +msgstr "" + +msgid "Standby in " +msgstr "Режим Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ñ‡ÐµÑ€ÐµÐ· " + +msgid "StandbyLED" +msgstr "" + +msgid "Start from the beginning" +msgstr "Ðачать Ñ Ñамого начала" + +msgid "Start offline decode" +msgstr "Старт отложенного декодированиÑ" + +msgid "Start recording?" +msgstr "Ðачать запиÑÑŒ?" + +msgid "Start test" +msgstr "Ðачать теÑÑ‚" + +msgid "Start time" +msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð½Ð°Ñ‡Ð°Ð»Ð°" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "Ðачало периода Ð¸Ð³Ð½Ð¾Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð°Ð¹Ð¼ÐµÑ€Ð° неактивноÑти" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +msgid "Start timeshift" +msgstr "Ðачать таймшифт" + +msgid "Start with list screen" +msgstr "Ðачало Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ð° ÑпиÑка" + +msgid "Starting on" +msgstr "ÐÐ°Ñ‡Ð¸Ð½Ð°Ñ Ñ" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +msgid "Step east" +msgstr "Шаг на воÑток" + +msgid "Step west" +msgstr "Шаг на запад" + +msgid "Stepped east" +msgstr "Шаг на воÑток" + +msgid "Stepped west" +msgstr "Шаг на запад" + +msgid "Stop" +msgstr "Стоп" + +msgid "Stop PiP" +msgstr "отключить PiP" + +msgid "Stop current event and disable coming events" +msgstr "ОÑтановить текущее Ñобытие и отключить Ñледующие ÑобытиÑ" + +msgid "Stop current event but not coming events" +msgstr "ОÑтановить текущее Ñобытие, но не Ñледующие ÑобытиÑ" + +msgid "Stop entry" +msgstr "оÑтановить вход" + +msgid "Stop playing this movie?" +msgstr "ОÑтановить воÑпроизведение Ñтого видео?" + +msgid "Stop recording" +msgstr "ОÑтановить запиÑÑŒ" + +msgid "Stop recording and delete" +msgstr "ОÑтановить и удалить запиÑÑŒ" + +msgid "Stop service on return to movie list" +msgstr "" + +msgid "Stop test" +msgstr "ОÑтановить теÑÑ‚" + +msgid "Stop testing plane after # failed transponders" +msgstr "ОÑтановить теÑтирование поÑле # ошибки транÑпондера" + +msgid "Stop testing plane after # successful transponders" +msgstr "ОÑтановить теÑтирование поÑле # иÑправного транÑпондера" + +msgid "Stop timer recording" +msgstr "ОÑтановка запиÑей по таймеру" + +msgid "Stop timeshift" +msgstr "ОÑтановить таймшифт" + +msgid "Stop timeshift?" +msgstr "ОÑтановить таймшифт?" + +msgid "Stopped" +msgstr "ОÑтановлено" + +msgid "Store at index" +msgstr "Сохранить номер" + +msgid "Store position" +msgstr "Сохранить позицию" + +msgid "Stored position" +msgstr "Сохраненное положение" + +msgid "Stream" +msgstr "Порт Ñтриминга" + +msgid "Stream request" +msgstr "Порт Ñтриминга" + +msgid "Strongest position" +msgstr "Ð›ÑƒÑ‡ÑˆÐ°Ñ Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ" + +msgid "Subservice list..." +msgstr "СпиÑок Ñуб ÑервиÑов..." + +msgid "Subservices" +msgstr "Суб ÑервиÑÑ‹" + +msgid "Subtitle Quickmenu" +msgstr "ÐаÑтройки Ñубтитров" + +msgid "Subtitle alignment" +msgstr "Выравнивание Ñубтитров" + +msgid "Subtitle border width" +msgstr "Ширина каемки Ñубтитров" + +msgid "Subtitle delay when timing is bad" +msgstr "Задержка Ñубтитров при неправильном времени" + +msgid "Subtitle delay when timing lacks" +msgstr "Задержка Ñубтитров при нехватке времени" + +msgid "Subtitle font size" +msgstr "Размер шрифта Ñубтитров" + +msgid "Subtitle language selection 1" +msgstr "Выбор Ñзыка Ñубтитров 1" + +msgid "Subtitle language selection 2" +msgstr "Выбор Ñзыка Ñубтитров 2" + +msgid "Subtitle language selection 3" +msgstr "Выбор Ñзыка Ñубтитров 3" + +msgid "Subtitle language selection 4" +msgstr "Выбор Ñзыка Ñубтитров 4" + +msgid "Subtitle position" +msgstr "ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ Ñубтитров" + +msgid "Subtitle selection" +msgstr "Выбор Ñубтитров" + +msgid "Subtitle selection..." +msgstr "Выбор Ñубтитров" + +msgid "Subtitle settings" +msgstr "Меню наÑтройки Ñубтитров" + +msgid "Subtitles" +msgstr "Субтитры" + +msgid "Sun" +msgstr "Ð’Ñ" + +msgid "Sunday" +msgstr "ВоÑкреÑенье" + +msgid "Swap PiP and main picture" +msgstr "ПоменÑÑ‚ÑŒ PiP и оÑновное изображение" + +msgid "Swap services" +msgstr "ПоменÑÑ‚ÑŒ меÑтами ÑервиÑÑ‹" + +msgid "Swedish" +msgstr "ШведÑкий" + +msgid "Switch TV to correct input" +msgstr "Переключить ТВ на корректный вход" + +msgid "Switch between filelist/playlist" +msgstr "Сменить ÑпиÑок файлов/плейлиÑÑ‚" + +msgid "Switch between normal mode and list mode" +msgstr "Переход от нормального режима к ÑпиÑку" + +msgid "Switch to HDMI in mode" +msgstr "" + +msgid "Switch to filelist" +msgstr "переключить на ÑпиÑок файлов" + +msgid "Switch to next channel" +msgstr "" + +msgid "Switch to next channel in history" +msgstr "Переключить на Ñледующий канал в иÑтории" + +msgid "Switch to next sub service" +msgstr "Перейти на Ñледующий Ñуб ÑервиÑ" + +msgid "Switch to playlist" +msgstr "переключить на плейлиÑÑ‚" + +msgid "Switch to previous channel" +msgstr "Переключить на предыдущий канал" + +msgid "Switch to previous channel in history" +msgstr "Переключить на предыдущий канал в иÑтории" + +msgid "Switch to previous sub service" +msgstr "Перейти на предыдущий Ñуб ÑервиÑ" + +msgid "Switchable tuner types:" +msgstr "Переключаемые типы тюнеров:" + +msgid "Symbol rate" +msgstr "СкороÑÑ‚ÑŒ потока" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "Сбой Ñинхронизации,возврат к оригиналу!" + +msgid "System" +msgstr "СиÑтема" + +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "Dima-73 <Dima-73@inbox.lv>" + +msgid "TS file is too large for ISO9660 level 1!" +msgstr "TS файл Ñлишком большой Ð´Ð»Ñ ISO9660 level 1!" + +msgid "TSID" +msgstr "TSID" + +msgid "TV physical address report" +msgstr "Оповещение физичеÑкого адреÑа ТВ" + +msgid "TXT PID" +msgstr "TXT ПИД" + +msgid "Table of contents for collection" +msgstr "Содержание коллекции" + +msgid "Tags" +msgstr "Теги" + +msgid "Teletext subtitle color" +msgstr "Цвет телетекÑта Ñубтитров" + +msgid "Temperature and fan control" +msgstr "РодительÑкий контроль" + +msgid "Terrestrial" +msgstr "Ðаземный" + +msgid "Terrestrial provider" +msgstr "Ðаземный провайдер" + +msgid "Test DiSEqC settings" +msgstr "ТеÑÑ‚ наÑтроек DiSEqC" + +msgid "Test mode" +msgstr "Режим теÑта" + +msgid "Test the network configuration of your receiver.\n" +msgstr "ТеÑÑ‚ Ñетевой конфигурации вашего реÑивера.\n" + +msgid "Test type" +msgstr "Тип теÑта" + +msgid "Text color" +msgstr "цвет текÑта" + +msgid "Thai" +msgstr "ТайÑкий" + +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"СпаÑибо Вам за иÑпользование маÑтера.\n" +"Ðажмите ОК Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ." + +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"СпаÑибо Вам за иÑпользование маÑтера. Ваш реÑивер готов к работе.\n" +"ПожалуйÑта, нажмите OK Ð´Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° работы вашего реÑивера." + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "DVD Ñтандарт не поддерживает H.264 (HDTV) видео потоков. Ð’Ñ‹ хотите Ñоздать Ñпециальный формат DVD (который возможно не будет проигрыватьÑÑ Ð² Ñтационарных DVD проигрывателÑÑ…)?" + +msgid "The PIN code has been changed successfully." +msgstr "ПИÐ-код уÑпешно изменен." + +msgid "The PIN codes you entered are different." +msgstr "Введенный PIN код не верный" + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" +"USB-флеш подготовлен как загрузочный.\n" +"Теперь Ð’Ñ‹ можете уÑтановить NFI образ!" + +msgid "The backup failed. Please choose a different backup location." +msgstr "Сохранение не выполнено. Выберите другое меÑто реÑположениÑ. " + +#, fuzzy, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ð±ÐµÑ‚Ð° верÑÐ¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ быть не Ñтабильна" + +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"Ð’ Ñту папку %s запиÑать нельзÑ.\n" +"УбедитеÑÑŒ, что взамен выбрали нужную папку." + +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"Ðайдено уÑтройÑтво:\n" +"\n" +"%s\n" +"\n" +"Хотите уÑтановить USB flasher на Ñто уÑтройÑтво?" + +msgid "The following files were found..." +msgstr "Следующие файлы были найдены ..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "MD5 Ñумма файла неверна, файл вероÑтно поврежден!" + +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"Плагин Witeless LAN не уÑтановлен!\n" +"ПожалуйÑта, уÑтановите его." + +#, python-format +msgid "The path %s already exists." +msgstr "Этот путь %s уже ÑущеÑтвует." + +msgid "The pin code you entered is wrong." +msgstr "Введенный PIN-код неверный." + +#, python-format +msgid "The results have been written to %s." +msgstr "Результаты были запиÑаны в %s." + +msgid "The sleep timer has been activated." +msgstr "Таймер Ñна был включен." + +msgid "The sleep timer has been disabled." +msgstr "Таймер Ñна был выключен." + +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"Плагин Witeless LAN не уÑтановлен!\n" +"ПожалуйÑта, уÑтановите его." + +#, fuzzy, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ бета верÑии не может быть проверен,одна из причин,www.pli-images.org не отвечает" + +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "Файл таймеров (timers.xml) поврежден и не может быть загружен." + +msgid "The user interface of your receiver is restarting" +msgstr "РеÑтарт GUI реÑивера" + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" +"РеÑтарт GUI реÑивера\n" +"из-за ошибки в mytest.py" + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"Плагин Wireless LAN не уÑтановлен!\n" +"ПожалуйÑта, уÑтановите его и выберите, что делать далее." + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"Плагин Witeless LAN не уÑтановлен!\n" +"ПожалуйÑта, уÑтановите его." + +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "МаÑтер может Ñохранить Ваши текущие наÑтройки. Ð’Ñ‹ хотите Ñделать Ñто ÑейчаÑ?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "" + +msgid "The wizard is finished now." +msgstr "МаÑтер закончил работу." + +msgid "There are at least " +msgstr "Ðайдено по крайней мере " + +#, python-format +msgid "There are at least %s updates available." +msgstr "%s доÑтупных обновлений Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ реÑивера." + +msgid "There are currently no outstanding actions." +msgstr "Ð’ текущий момент нет новых обновлений." + +msgid "There are no updates available." +msgstr " доÑтупных обновлений." + +msgid "There is no signal to lock on !" +msgstr "Ðет Ñигнала по Ñтому захвату!" + +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"Возможно недоÑтаточно меÑта на выбранном разделе. \n" +"Ð’Ñ‹ дейÑтвительно хотите продолжить?" + +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "Этот DVD RW уже отформатирован - переформатирование может удалить вÑе Ñодержимое диÑка." + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" +"Этот плагин Ñоздает USB-флеш, который может иÑпользоватьÑÑ, чтобы обновить прошивку вашего реÑивера без Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ðº интернету.\n" +"Во-первых, USB должен быть Ñамозагрузочным.\n" +"Затем файл имиджа NFI нужно загрузить Ñ Ñервера Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ Ñохранить на USB.\n" +"ЕÑли у Ð’Ð°Ñ ÑƒÐ¶Ðµ еÑÑ‚ÑŒ загрузочный USB, пожалуйÑта, вÑтавьте. Обьем USB должен быть не менее 64 Мб!" + +msgid "This plugin is installed." +msgstr "Плагин уÑтановлен." + +msgid "This plugin is not installed." +msgstr "" +"Плагин Witeless LAN не уÑтановлен!\n" +"ПожалуйÑта, уÑтановите его." + +msgid "This plugin will be installed." +msgstr "Плагин будет уÑтановлен." + +msgid "This plugin will be removed." +msgstr "Плагин будет удален." + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "Этот реÑивер не может декодировать %s потоки!" + +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"Этот теÑÑ‚ проверÑет конфигурацию DNS Ñерверов.\n" +"При поÑвлении ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ \"не приÑвоен\":\n" +"- пожалуйÑта проверьте наÑтройки DHCP, Ñетевого адаптера и ÑоÑтоÑние Ñетевого кабелÑ\n" +"- ЕÑли Ð’Ñ‹ пропиÑали вручную DNS Ñервера, пожалуйÑта проверьте конфигурацию \"DNS Ñервер\"" + +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Этот теÑÑ‚ проверÑет наличие Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ñетевого ÐºÐ°Ð±ÐµÐ»Ñ Ðº Ñетевому адаптеру.\n" +"При поÑвлении ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ \" нет ÑоединениÑ\":\n" +"- проверьте, что Ñетевой кабель подключен\n" +"- проверьте, что Ñетевой кабель не оборван" + +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Этот теÑÑ‚ проверÑет приÑвоен ли IP Ð°Ð´Ñ€ÐµÑ Ñетевому адаптеру..\n" +"При поÑвлении ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ \" не приÑвоен\":\n" +"- IP Ð°Ð´Ñ€ÐµÑ Ð½Ðµ был найден\n" +"- пожалуйÑта проверьте наÑтройки DHCP, Ñетевого адаптера и ÑоÑтоÑние Ñетевого кабелÑ" + +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"Этот теÑÑ‚ проверÑет,включен ли DHCP в наÑтройках Ñетевого адаптера, Ð´Ð»Ñ Ð¿Ñ€Ð¸ÑÐ²Ð¾ÐµÐ½Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкого IP.\n" +"При поÑвлении ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ \" отключен\":\n" +"- введите вручную IP Ð°Ð´Ñ€ÐµÑ Ð¿Ñ€Ð¸ наÑтройке Ñетевого адаптера .\n" +"- проверьте,что Ð’Ñ‹ ввели корректную информацию в меню наÑтройка Ñети.\n" +"При поÑвлении ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ \" подключен\":\n" +"- Ñто подтверждает, что Ñформирован рабочий DHCP Ñервер в Вашей Ñети." + +msgid "This test detects your configured LAN adapter." +msgstr "Данный теÑÑ‚ определит ваш Ñетевой-адаптер." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" +"Произойдет (пере-)раÑчет вÑех позиций позиционера и вÑе Ñохранненые позиции и наÑтройки могут быть утерÑны!\n" +"Ð’Ñ‹ уверены в продолжении?" + +msgid "Three" +msgstr "Три" + +msgid "Threshold" +msgstr "Гетеродин" + +msgid "Thu" +msgstr "Чт" + +msgid "Thumbnails" +msgstr "ЭÑкизы" + +msgid "Thursday" +msgstr "Четверг" + +msgid "Time" +msgstr "ВремÑ" + +msgid "Time scale" +msgstr "Временной маÑштаб Ñетки" + +msgid "Timer" +msgstr "Таймер" + +msgid "Timer Overview" +msgstr "" + +msgid "Timer edit" +msgstr "Редактирование таймера" + +msgid "Timer editor" +msgstr "Редактор таймеров" + +msgid "Timer entry" +msgstr "Ввод таймера" + +msgid "Timer log" +msgstr "Лог таймера" + +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"Конфликт таймеров обнаружен в timers.xml!\n" +"ПожалуйÑта, перепроверьте Ñто!" + +msgid "Timer overview" +msgstr "Обзор таймеров" + +msgid "Timer recording location" +msgstr "МеÑто запиÑи по таймеру" + +msgid "Timer sanity error" +msgstr "Ошибка ÑоÑтоÑÐ½Ð¸Ñ Ñ‚Ð°Ð¹Ð¼ÐµÑ€Ð°" + +msgid "Timer selection" +msgstr "Выбор таймера" + +msgid "Timer selection..." +msgstr "Выбор таймера..." + +msgid "Timer type" +msgstr "Тип таймера" + +msgid "Timeshift" +msgstr "Таймшифт" + +msgid "Timeshift Live" +msgstr "" + +msgid "Timeshift location" +msgstr "РаÑположение таймшифта" + +msgid "Timeshift not possible!" +msgstr "Таймшифт не возможен!" + +msgid "Timezone" +msgstr "ЧаÑовой поÑÑ" + +msgid "Title" +msgstr "Ðазвание" + +msgid "Title properties" +msgstr "СвойÑтва заголовка" + +msgid "Titleset mode" +msgstr "Режим уÑтановки заголовка" + +msgid "To audio selection" +msgstr "Выбор звука" + +msgid "To subtitle selection" +msgstr "Выбор Ñубтитров" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" +"Чтобы обновить ваш реÑивер, пожалуйÑта выполните Ñледующие дейÑтвиÑ:\n" +"1) Выключите реÑивер тумблером Ñзади и убедитеÑÑŒ, что загрузочный USB подключен.\n" +"2) Включите реÑивер и нажмите кнопку Ð’ÐИЗ на передней панели реÑивера около 10 Ñекунд.\n" +"ДождитеÑÑŒ загрузки и Ñледуйте указаниÑм МаÑтера." + +msgid "Today" +msgstr "СегоднÑ" + +msgid "Toggle a cut mark at the current position" +msgstr "РаÑположить метку обработки в текущей позиции" + +msgid "Tone amplitude" +msgstr "Тоновый режим" + +msgid "Tone mode" +msgstr "Тоновый режим" + +msgid "Toneburst" +msgstr "Тоновый Ñигнал" + +msgid "Toneburst A/B" +msgstr "тоновый Ñигнал A/B" + +msgid "Top and bottom" +msgstr "Верх и низ" + +msgid "Track" +msgstr "Дорожка" + +msgid "Translation" +msgstr "Перевод" + +msgid "Translation:" +msgstr "Перевод:" + +msgid "Translations" +msgstr "" + +msgid "Transmission mode" +msgstr "Режим передачи" + +msgid "Transponder" +msgstr "ТранÑпондер" + +msgid "Transponder type" +msgstr "Тип транÑпондера" + +msgid "Trash can" +msgstr "Корзина" + +msgid "Tries left:" +msgstr "ОÑталоÑÑŒ попыток:" + +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "ПытаемÑÑ Ð½Ð°Ð¹Ñ‚Ð¸ транÑпондеры, иÑпользуемые в кабельной Ñети .. ПожалуйÑта, подождите ..." + +msgid "Trying to download a new packetlist. Please wait..." +msgstr "ПытаемÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¸Ñ‚ÑŒ новый ÑпиÑок пакетов. ПожалуйÑта, подождите..." + +msgid "Tue" +msgstr "Ð’Ñ‚" + +msgid "Tuesday" +msgstr "Вторник" + +msgid "Tune" +msgstr "ÐаÑтройка" + +msgid "Tune and focus" +msgstr "ÐаÑтройка и фокуÑировка" + +msgid "Tune failed!" +msgstr "Сбой вещаниÑ!" + +msgid "Tuner" +msgstr "Тюнер" + +msgid "Tuner configuration" +msgstr "ÐаÑтройка тюнера" + +msgid "Tuner is not supported" +msgstr "" + +msgid "Tuner slot" +msgstr "Слот тюнера" + +msgid "Tuner status" +msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ñ‚ÑŽÐ½ÐµÑ€Ð°" + +#, python-format +msgid "Tuner status %s" +msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ñ‚ÑŽÐ½ÐµÑ€Ð° %s" + +msgid "Tuner type" +msgstr "Тюнер" + +msgid "Turkish" +msgstr "Турецкий" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +msgid "Two" +msgstr "Два" + +msgid "Type" +msgstr "Тип" + +msgid "Type of scan" +msgstr "Тип ÑканированиÑ" + +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "Калибровка USALS" + +msgid "USB stick" +msgstr "USB флешь" + +msgid "USB stick wizard" +msgstr "МаÑтер USB" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"ÐвтоматичеÑкое обновление в процеÑÑе\n" +"ДождитеÑÑŒ перезагрузки реÑивера\n" +"Это может занÑÑ‚ÑŒ неÑколько минут" + +msgid "Undo install" +msgstr "Отмена уÑтановки" + +msgid "Undo uninstall" +msgstr "Отмена удалениÑ" + +msgid "Unencrypted" +msgstr "Декодирован" + +msgid "UnhandledKey" +msgstr "Ðе обработанный ключ" + +msgid "Unicable" +msgstr "Unicable" + +msgid "Unicable LNB" +msgstr "Unicable LNB" + +msgid "Unicable Martix" +msgstr "Unicable Martix" + +msgid "Uninstall" +msgstr "Удалить" + +msgid "Universal LNB" +msgstr "универÑальный-LNB" + +msgid "Unknown" +msgstr "<неизвеÑтный>" + +msgid "Unmount" +msgstr "Ошибка отключениÑ" + +msgid "Unsupported" +msgstr "ÐеизвеÑтнаÑ" + +msgid "Update" +msgstr "Обновление" + +msgid "Update and ask to reboot" +msgstr "Обновить и ÑпроÑить о перезагрузке" + +msgid "Update and reboot (recommended)" +msgstr "Обновить и перезагрузить (рекомендуетÑÑ)" + +msgid "Update channel list only" +msgstr "Обновить только ÑпиÑок каналов" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "Обновление завершено, %d пакет уÑтановлен." +msgstr[1] "Обновление завершено, %d пакета уÑтановлено." +msgstr[2] "Обновление завершено, %d пакетов уÑтановлено." + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "Обновление завершено. Хотите перезагрузить реÑивер?" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "Обновление не удалоÑÑŒ. Ð’ вашем реÑивере нет работающего интернет-ÑоединениÑ." + +msgid "Update has completed." +msgstr "Обновление завершено." + +msgid "Updatefeed not available." +msgstr "ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ Ñ„Ð¸Ð´Ð° недоÑтупны." + +msgid "Updating software catalog" +msgstr "Обновление каталога Ñофта" + +msgid "Upgrading" +msgstr "Обновление" + +msgid "Use" +msgstr "ИÑпользовать" + +msgid "Use DHCP" +msgstr "ИÑпользовать DHCP" + +msgid "Use EIT EPG information when it is available." +msgstr "ИÑпользовать информацию EIT EPG, когда она ÑущеÑтвует." + +msgid "Use FreeSat EPG information when it is available." +msgstr "ИÑпользовать информацию FreeSat EPG, когда она ÑущеÑтвует." + +msgid "Use MHW EPG information when it is available." +msgstr "ИÑпользовать информацию MHW EPG, когда она ÑущеÑтвует." + +msgid "Use Netmed EPG information when it is available." +msgstr "ИÑпользовать информацию Netmed EPG, когда она ÑущеÑтвует." + +msgid "Use TV remote control" +msgstr "Тип пульта ДУ" + +msgid "Use USALS for this sat" +msgstr "ИÑпользовать USALS Ð´Ð»Ñ Ñтого Ñпутника" + +msgid "Use ViaSat EPG information when it is available." +msgstr "ИÑпользовать информацию ViaSat EPG, когда она ÑущеÑтвует." + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +msgid "Use a gateway" +msgstr "ИÑпользовать шлюз" + +msgid "Use fastscan channel names" +msgstr "ÐÐ°Ð·Ð²Ð°Ð½Ð¸Ñ ÐºÐ°Ð½Ð°Ð»Ð¾Ð² из быÑтрого поиÑка" + +msgid "Use fastscan channel numbering" +msgstr "ÐÑƒÐ¼ÐµÑ€Ð°Ñ†Ð¸Ñ ÐºÐ°Ð½Ð°Ð»Ð¾Ð² из быÑтрого поиÑка" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "Индивид. наÑтройки Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ каталога" + +msgid "Use interface" +msgstr "ИÑпользовать интерфейÑ" + +msgid "Use official channel numbering" +msgstr "ÐžÑ„Ð¸Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð°Ñ Ð½ÑƒÐ¼ÐµÑ€Ð°Ñ†Ð¸Ñ ÐºÐ°Ð½Ð°Ð»Ð¾Ð²" + +msgid "Use original DVB subtitle position" +msgstr "ИÑпользовать оригинальную позицию DVB Ñубтитров" + +msgid "Use original teletext position" +msgstr "ИÑпользовать иÑходное положение телетекÑта" + +msgid "Use power measurement" +msgstr "ИÑпользовать измерение мощноÑти" + +msgid "Use the network wizard to configure selected network adapter" +msgstr "ИÑпользовать маÑтер Ð´Ð»Ñ Ð½Ð°Ñтройки Ñети" + +msgid "Use the network wizard to configure your network\n" +msgstr "ИÑпользовать маÑтер Ð´Ð»Ñ Ð½Ð°Ñтройки Ñети\n" + +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "ИÑпользуйте кнопки вверх и вниз на пульте Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð° опций. ПоÑле Ñтого нажмите OK." + +msgid "Use the wizard to set up basic features" +msgstr "ПользуйтеÑÑŒ маÑтером Ð´Ð»Ñ Ð½Ð°Ñтройки оÑновных параметров" + +msgid "Use these input device settings?" +msgstr "ИÑпользовать Ñти параметры уÑтройÑтва ввода?" + +msgid "Use these settings?" +msgstr "ИÑпользовать Ñти наÑтройки?" + +msgid "Use this video enhancement settings?" +msgstr "ИÑпользовать Ñти видео наÑтройки?" + +msgid "Use trash can in movielist" +msgstr "ИÑпользование корзины в ÑпиÑке фильмов" + +msgid "Used service scan type" +msgstr "ИÑпользуемый тип ÑканированиÑ" + +msgid "User - bouquets" +msgstr "СпиÑок фаворитов" + +msgid "User defined" +msgstr "Определены пользователем" + +msgid "User defined transponder" +msgstr "" + +msgid "User interface" +msgstr "Ð˜Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ" + +msgid "Username" +msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ" + +#, python-format +msgid "Using LNB %d" +msgstr "ИÑпользуемый LNB %d" + +msgid "Using fixed address" +msgstr "ИÑпользовать фикÑированнный адреÑ" + +#, python-format +msgid "Using tuner %s" +msgstr "ИÑпользуемый тюнер %s" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "Обычно когда Ñзык Ñубтитров Ñовпадает Ñ Ñзыком аудио, Ñубтитры не показываютÑÑ. Этот выбор позволÑет показывать Ñубтитры, когда они Ñовпадают." + +msgid "VCR scart" +msgstr "Видеомагнитофон" + +msgid "VMGM (intro trailer)" +msgstr "VMGM (трейлер)" + +msgid "Vertical" +msgstr "ВертикальнаÑ" + +msgid "Vertical turning speed" +msgstr "ПолÑÑ€Ð¸Ð·Ð°Ñ†Ð¸Ñ (V) - ÑкороÑÑ‚ÑŒ поворота" + +msgid "Video PID" +msgstr "Видео PID" + +msgid "Video enhancement preview" +msgstr "ПредпроÑмотр видео наÑтроек" + +msgid "Video enhancement settings" +msgstr "Тонкие наÑтройки видео" + +msgid "Video enhancement setup" +msgstr "Меню видео наÑтроек" + +msgid "Video fine tuning" +msgstr "ÐаÑтройка Ñкрана" + +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Выбор видео входа\n" +"\n" +"Ðажмите ОК еÑли вы видите Ñту Ñтраницу на Ñкране ТВ (или выберите другой вход).\n" +"\n" +"Следующий вход будет автоматичеÑки выбран через 10 Ñек." + +msgid "Video mode selection." +msgstr "Выбор режима видео" + +msgid "Video output" +msgstr "Видеовыход" + +msgid "Video setup" +msgstr "ÐаÑтройка видео" + +msgid "Video wizard" +msgstr "МаÑтер видеонаÑтроек" + +#, python-format +msgid "Video: %s fps" +msgstr "Видео: %s fps" + +msgid "VideoMode" +msgstr "" + +msgid "Videocodec" +msgstr "Видеокодек" + +msgid "Videoformat" +msgstr "Видеоформат" + +msgid "Videosize" +msgstr "Видеоразмер" + +msgid "View Rass interactive..." +msgstr "Интерактивный проÑмотр RASS" + +msgid "View details" +msgstr "Показать детали" + +msgid "View list of available " +msgstr "ПроÑмотр ÑпиÑка доÑтупных " + +msgid "View list of available CommonInterface extensions" +msgstr "ПроÑмотр ÑпиÑка доÑтупных дополнений картридера" + +msgid "View list of available EPG extensions." +msgstr "ПроÑмотр ÑпиÑка доÑтупных дополнений EPG" + +msgid "View list of available Satellite equipment extensions." +msgstr "ПроÑмотр ÑпиÑка доÑтупных дополнений Ñпутниковых наÑтроек" + +msgid "View list of available communication extensions." +msgstr "ПроÑмотр ÑпиÑка доÑтупных дополнений ÑвÑзи" + +msgid "View list of available default settings" +msgstr "ПроÑмотр ÑпиÑка доÑтупных дефолтных наÑтроек" + +msgid "View list of available display and userinterface extensions." +msgstr "ПроÑмотр ÑпиÑка доÑтупных дополнений наÑтроек Ñкрана и интерфейÑа" + +msgid "View list of available multimedia extensions." +msgstr "ПроÑмотр ÑпиÑка доÑтупных дополнений мультимедиа" + +msgid "View list of available networking extensions" +msgstr "ПроÑмотр ÑпиÑка доÑтупных Ñетевых дополнений" + +msgid "View list of available recording extensions" +msgstr "ПроÑмотр ÑпиÑка доÑтупных дополнений Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи" + +msgid "View list of available skins" +msgstr "ПроÑмотр ÑпиÑка доÑтупных Ñкинов" + +msgid "View list of available software extensions" +msgstr "ПроÑмотр ÑпиÑока доÑтупных программных дополнений" + +msgid "View list of available system extensions" +msgstr "ПроÑмотр ÑпиÑока доÑтупных ÑиÑтемных дополнений" + +msgid "View photos..." +msgstr "ПроÑмотр фотографий..." + +msgid "View teletext..." +msgstr "Смотреть телетекÑÑ‚" + +msgid "View video CD..." +msgstr "Смотреть Video CD..." + +msgid "Virtual keyboard" +msgstr "Ð’Ð¸Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð°Ñ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÑ€Ð°" + +msgid "Voltage mode" +msgstr "Режим напрÑжениÑ" + +msgid "Volume" +msgstr "ГромкоÑÑ‚ÑŒ" + +msgid "W" +msgstr "W" + +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "WLAN Ñоединение" + +msgid "WPA" +msgstr "WPA" + +msgid "WPA or WPA2" +msgstr "WPA или WPA2" + +msgid "WPA2" +msgstr "WPA2" + +msgid "WSS on 4:3" +msgstr "WSS on 4:3" + +msgid "Waiting" +msgstr "Ожидание" + +msgid "Waiting for mount" +msgstr "Ожидание монтированиÑ" + +msgid "Waiting for partition" +msgstr "Ðе удалоÑÑŒ Ñоздать раздел" + +msgid "Wakeup" +msgstr "Включение ТВ" + +msgid "Wakeup TV from standby" +msgstr "Пробудить ТВ из режима ожиданиÑ" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "ПоднÑÑ‚ÑŒ реÑивер из режима ожиданиÑ" + +msgid "Wakeup signal from TV" +msgstr "Сигнал проÑÑ‹Ð¿Ð°Ð½Ð¸Ñ Ð¾Ñ‚ телевизора" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "Предупреждение: нет LNB; иÑпользуютÑÑ Ð·Ð°Ð²Ð¾Ð´Ñкие наÑтройки." + +msgid "Watch movies..." +msgstr "ВоÑпроизвеÑти запиÑанное видео..." + +msgid "Watch recordings..." +msgstr "запиÑÑŒ..." + +msgid "Wed" +msgstr "Ср" + +msgid "Wednesday" +msgstr "Среда" + +msgid "Weekday" +msgstr "День недели" + +msgid "Weighted position" +msgstr "Ðнализируем позицию" + +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"Добро пожаловать в редактор видео.\n" +"\n" +"Отметьте меÑто Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ вы хотите начать редактирование. Ðажмите OK, выберите 'начало редактированиÑ'.\n" +"\"\n" +"\"ПоÑле, отметьте точку Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ, нажмите OK, выберите 'конец редактированиÑ'. Вот и вÑе;)" + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "Добро пожаловать в маÑтер Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð¼Ð¸Ð´Ð¶Ð°. МаÑтер поможет вам в обновлении программного обеÑÐ¿ÐµÑ‡ÐµÐ½Ð¸Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ реÑивера путем ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð²Ð°ÑˆÐ¸Ñ… текущих наÑтроек и коротких подÑказок по процеÑÑу обновлениÑ." + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" +"Добро пожаловать.\n" +"\n" +"ЕÑли вы хотите подключить ваш реÑивер к интернету, Ñтот маÑтер проведет Ð²Ð°Ñ Ñ‡ÐµÑ€ÐµÐ· оÑновные наÑтройки Ñети вашего реÑивера.\n" +"\n" +"Ðажмите ОК Ð´Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° наÑтройки Ñети." + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" +"Добро пожаловать.\n" +"\n" +"Этот маÑтер поможет Вам наÑтроить оÑновные параметры вашего реÑивера.\n" +"Ðажмите OK на пульте ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ð° к Ñледующему шагу." + +msgid "Welcome..." +msgstr "Добро пожаловать..." + +msgid "West" +msgstr "Запад" + +msgid "West limit set" +msgstr "Включить ограничение на запад" + +msgid "What do you want to scan?" +msgstr "Что Ð’Ñ‹ хотите найти?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "ЕÑли включено, то можно закрыть Ñкран PiP Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ кнопки выход." + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "ЕÑли включено, то уÑтановите период времени Ð¸Ð³Ð½Ð¾Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´ÐµÐ¹ÑÑ‚Ð²Ð¸Ñ Ð´Ð»Ñ Ñ‚Ð°Ð¹Ð¼ÐµÑ€Ð° неактивноÑти." + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "Когда Ñта Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°, AIT данные будут включены в в http Ñтрим. Это позволит оборудованию клиента иÑпользовать HbbTV." + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "Когда Ñта Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°, ECM данные будут включены в http Ñтрим. Это позволит оборудованию клиента выполнÑÑ‚ÑŒ декодирование." + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "Когда Ñта Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°, EIT данные будут включены в http Ñтрим. Это позволит оборудованию клиента увидеть даннные EPG." + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "Показать вÑплывающее окно, когда видео закончилоÑÑŒ, а Ñледующее начинаетÑÑ." + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "ЕÑли включено, то поÑвитÑÑ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ðµ при начале запиÑи." + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "Показать фоновое изображение и ÑпиÑок каналов, во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ñ€Ð¾ÑÐ»ÑƒÑˆÐ¸Ð²Ð°Ð½Ð¸Ñ Ñ€Ð°Ð´Ð¸Ð¾ каналов." + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "ЕÑли включено, то при Ñтарте таймера запиÑи, передача в прÑмом Ñфире будет прервана, еÑли нет Ñвободных тюнеров." + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "ЕÑли включено, будет показано предупреждение и пользователь получит возможноÑÑ‚ÑŒ оÑтановить или продолжить таймшифт." + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "ЕÑли включено, Ð½ÑƒÐ¼ÐµÑ€Ð°Ñ†Ð¸Ñ ÐºÐ°Ð½Ð°Ð»Ð¾Ð² в каждом фаворитном ÑпиÑке будет начинатÑÑ Ñ '1' номера" + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "Когда изображение на канале имеет Ñоотношение Ñторон 4:3, выберите, будет ли раÑÑ‚Ñнута картинка на веÑÑŒ Ñкран." + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "ЕÑли включено, при переключении каналов будет переход к Ñледующему фавориту, когда поÑледний канал текущего фаворита будет доÑтигнут." + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "Когда Ñта Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°, удаленные запиÑи будут перемещены в корзину, вмеÑто безвозратного удалениÑ." + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "ЕÑли включено, ÑÐ¾Ð±Ñ‹Ñ‚Ð¸Ñ ÑейчаÑ/далее из DVB EPG будут показаны в инфобаре. При отключении, данные ÑÐ¾Ð±Ñ‹Ñ‚Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ показыватьÑÑ Ð¸Ð· файла кеша EPG." + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "Показать информацию о декодировании на инфобаре (еÑли Ñто поддерживаетÑÑ Ñкином)." + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "Скрыть ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð± ошибках от CI модулÑ." + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "Ðе показывать любые ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð± ошибках при переключении каналов." + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "ЕÑли Ñто активировано, то внешние Ñубтитры будут вÑегда включены Ð´Ð»Ñ Ð²Ð¾ÑÐ¿Ñ€Ð¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð²Ð¸Ð´ÐµÐ¾." + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "Предпочтение графичеÑким Ñубтитрам DVB, чем телетекÑÑ‚-Ñубтитрам, когда оба типа имеютÑÑ." + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "ЕÑли включено, графичеÑкие DVB Ñубтитры будут ÑоÑредоточены горизонтально." + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "ЕÑли включено, графичеÑкие DVB Ñубтитры будут показаны в их иÑходном положении." + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "ЕÑли включено, графичеÑкие DVB Ñубтитры будут отображатьÑÑ Ð¶ÐµÐ»Ñ‚Ñ‹Ð¼, а не иÑходным цветом." + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "Когда Ñта Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°, http Ñтрим декодируетÑÑ Ð½Ð° Ñтороне Ñервера. Оборудованию удаленного клиента не надо выполнÑÑ‚ÑŒ декодирование." + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "ЕÑли включено, то можно закрыть видеоплеер Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ кнопки выход." + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "ЕÑли включено, иÑпользуетÑÑ Ð¸Ð·Ð¼ÐµÑ€ÐµÐ½Ð¸Ðµ мощноÑти Ð´Ð»Ñ Ð¾Ð±Ð½Ð°Ñ€ÑƒÐ¶ÐµÐ½Ð¸Ñ, когда ротор переÑтал поворачиватьÑÑ (еÑли еÑÑ‚ÑŒ поддержка в реÑивере)." + +msgid "When enabled, number markers will be hiden." +msgstr "ЕÑли включено, то номера маркеров не будут показаны в ÑпиÑке каналов." + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "ЕÑли включено, ÑервиÑÑ‹ могут быть Ñгруппированы в неÑколько букетов." + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "ЕÑли включено, показываетÑÑ Ð½Ð¾Ð¼ÐµÑ€ канала в окне выбора каналов." + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "Включение Ñубтитров Ð´Ð»Ñ Ð»ÑŽÐ´ÐµÐ¹ Ñ Ð½Ð°Ñ€ÑƒÑˆÐµÐ½Ð¸Ñми Ñлуха" + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "Предпочтение Ñубтитрам Ð´Ð»Ñ Ð»ÑŽÐ´ÐµÐ¹ Ñ Ð½Ð°Ñ€ÑƒÑˆÐµÐ½Ð¸Ñми Ñлуха, чем обычным Ñубтитрам, когда оба типа имеютÑÑ." + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "Когда Ñта Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°, Ñтраницы телетекÑта будет хранитьÑÑ Ð² кÑше, что позволÑет уÑкорить доÑтуп." + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "ЕÑли включено, телетекÑÑ‚ Ñубтитров будет отображатьÑÑ Ð² иÑходном положении." + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "При включении Ñтой опции 'Видеомагнитофон' будет показан в главном меню." + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "ЕÑли уÑтановлено значение 'да', то ÑпиÑок выбора каналов будет Ñкрыт во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ñ€Ð¾ÑÐ»ÑƒÑˆÐ¸Ð²Ð°Ð½Ð¸Ñ Ñ€Ð°Ð´Ð¸Ð¾ каналов" + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "ЕÑли включено, при начале нового ÑÐ¾Ð±Ñ‹Ñ‚Ð¸Ñ EPG на текущем канале, поÑвитÑÑ Ð¸Ð½Ñ„Ð¾Ð±Ð°Ñ€." + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "ЕÑли включено, инфобар будет поÑвлÑÑ‚ÑÑ Ð¿Ñ€Ð¸ переключении каналов." + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "ЕÑли включено, инфобар будет поÑвлÑÑ‚ÑÑ Ð²Ð¾ Ð²Ñ€ÐµÐ¼Ñ Ð¿ÐµÑ€ÐµÐ¼Ð¾Ñ‚ÐºÐµ медиафайлов вперед/назад." + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "Показать длину запиÑей в ÑпиÑке фильмов (может понадобитьÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ðµ Ð²Ñ€ÐµÐ¼Ñ Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ ÑпиÑка)" + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "ЕÑли включено, оригинальные разрывы Ñтроки будут удалены из телетекÑта Ñубтитров." + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "ЕÑли включено, реÑивер будет иÑпользовать Ñубтитры, которые были выбраны ранее" + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "ЕÑли включено, реÑивер будет иÑпользовать Ñубтитры, которые были выбраны ранее" + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "При включении, реÑивер больше не будет Ñледить за возможными изменениÑми на транÑпондере. Ðе изменÑйте Ñту опцию, еÑли не знаете, что делаете." + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "ЕÑли уÑтановлено значение 'да', то реÑивер будет иÑпользовать AC3 звук (еÑли доÑтупно)." + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "ЕÑли Ñта Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°, таймшифт запуÑкаетÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки в фоновом режиме поÑле указанного времени." + +msgid "When enabled, use DHCP for the IP configuration." +msgstr "Выберите, чтобы включить или отключить DHCP." + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "ЕÑли Ñто включено, Ваш реÑивер будет определÑÑ‚ÑŒ активноÑÑ‚ÑŒ на входе VCR SCART." + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "Укажите на Ñколько минут раньше начинать запиÑÑŒ, чем Ð²Ñ€ÐµÐ¼Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° запиÑи по EPG." + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "Укажите на Ñколько минут позже закончить запиÑÑŒ, чем Ð²Ñ€ÐµÐ¼Ñ Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñи по EPG." + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "Когда изображение на канале имеет Ñоотношение Ñторон 16:9, выберите, Ñледует ли маÑштабировать/раÑÑ‚Ñнуть картинку." + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "Когда изображение на канале имеет Ñоотношение Ñторон 4:3, выберите, Ñледует ли маÑштабировать/раÑÑ‚Ñнуть картинку." + +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"При ÑброÑе на заводÑкие уÑтановки будут удалены вÑе конфигурационные данные\n" +"(Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¿Ð°ÐºÐµÑ‚Ñ‹, каналы, данные Ñпутников...)\n" +"ПоÑле Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ ÑброÑа, ваш реÑивер будет автоматичеÑки перезагружен!\n" +"\n" +"ДейÑтвительно выполнить ÑÐ±Ñ€Ð¾Ñ Ð½Ð° заводÑкие уÑтановки?" + +msgid "Where do you want to backup your settings?" +msgstr "Где вы хотите Ñохранить уÑтановки?" + +msgid "Where to save temporary timeshift recordings?" +msgstr "Куда Ñохранить временные файлы отложенного проÑмотра?" + +msgid "Wireless LAN" +msgstr "БеÑÐ¿Ñ€Ð¾Ð²Ð¾Ð´Ð½Ð°Ñ Ñеть" + +msgid "Wireless network" +msgstr "БеÑÐ¿Ñ€Ð¾Ð²Ð¾Ð´Ð½Ð°Ñ Ñеть" + +msgid "Wireless network configuration..." +msgstr "ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ñети..." + +msgid "Wireless network connection setup" +msgstr "СтатиÑтика беÑпроводной Ñети" + +msgid "Wireless network connection setup." +msgstr "СтатиÑтика беÑпроводной Ñети" + +msgid "Wireless network state" +msgstr "СтатиÑтика беÑпроводной Ñети" + +msgid "With popup" +msgstr "Ñ Ñообщением" + +msgid "Without popup" +msgstr "без ÑообщениÑ" + +msgid "Would you like to install a softcam?" +msgstr "Ð’Ñ‹ хотите уÑтановить ÑмулÑтор??" + +msgid "Write error while recording. Disk full?\n" +msgstr "Ошибка во Ð²Ñ€ÐµÐ¼Ñ Ð·Ð°Ð¿Ð¸Ñи. ДиÑк переполнен?\n" + +msgid "Write failed!" +msgstr "ЗапиÑÑŒ неудачна!" + +msgid "YPbPr" +msgstr "YPbPr" + +msgid "Year" +msgstr "Год" + +msgid "Yellow DVB subtitles" +msgstr "Желтые DVB Ñубтитры" + +msgid "Yes" +msgstr "Да" + +msgid "Yes and save" +msgstr "да и Ñохранить" + +msgid "Yes and save in movie dir" +msgstr "да и Ñохранить в каталог movie" + +msgid "Yes to all" +msgstr "Да - Ð´Ð»Ñ Ð²Ñех" + +msgid "Yes, always" +msgstr "Да, вÑегда" + +msgid "Yes, and delete this movie" +msgstr "Да, удалить Ñту запиÑÑŒ" + +msgid "Yes, backup my settings!" +msgstr "Да, Ñохранить мои уÑтановки!" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +msgid "Yes, do a manual scan now" +msgstr "Да, выполнить ручной поиÑк" + +msgid "Yes, do an automatic scan now" +msgstr "Да, выполнить автоматичеÑкий поиÑк" + +msgid "Yes, do another manual scan now" +msgstr "Да, выполнить еще ручной поиÑк" + +msgid "Yes, perform a shutdown now." +msgstr "Да, выключить ÑейчаÑ." + +msgid "Yes, restore the settings now" +msgstr "Да, воÑÑтановить уÑтановки ÑейчаÑ" + +msgid "Yes, returning to movie list" +msgstr "Да, вернутьÑÑ Ðº ÑпиÑку запиÑей" + +msgid "Yesterday" +msgstr "Вчера" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" +"СпиÑок каналов уже уÑтановлен,\n" +"Удалить\n" +"\"%s\"?" + +msgid "You can cancel the installation." +msgstr "Ð’Ñ‹ можете отменить уÑтановку." + +msgid "You can cancel the removal." +msgstr "Ð’Ñ‹ можете отменить удаление." + +msgid "You can continue watching TV etc. while this is running." +msgstr "Ð’Ñ‹ можете продолжить проÑмотр ТВ и Ñ‚.д., пока процеÑÑ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÑетÑÑ." + +msgid "You can install this plugin." +msgstr "Ð’Ñ‹ можете уÑтановить Ñтот плагин." + +msgid "You can only burn receiver recordings!" +msgstr "Ð’Ñ‹ можете прожечь только запиÑи реÑивера!" + +msgid "You can remove this plugin." +msgstr "Ð’Ñ‹ можете удалить Ñто плагин." + +msgid "You cannot delete this!" +msgstr "Ð’Ñ‹ не можете удалить Ñто!" + +msgid "You didn't select a channel to record from." +msgstr "Ввы не выбрали канал запиÑи." + +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "Ð’Ñ‹ выбрали резервное копирование наÑтроек. ПожалуйÑта, нажмите кнопку ОК Ð´Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° резервного копированиÑ." + +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "Ð’Ñ‹ выбрали Ñоздание нового загрузочного внешнего USB накопителÑ. USB накопитель будет отформатирован и вÑе данные будут утерÑны." + +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "Ð’Ñ‹ выбрали воÑÑтановление наÑтроек. Enigma2 будет перезапущена Ñразу поÑле воÑÑтановлениÑ. Ðажмите ОК Ð´Ð»Ñ Ð²Ð¾ÑÑтановлениÑ." + +#, python-format +msgid "You have to wait %s!" +msgstr "Ðеобходимо подождать %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" +"Вам потребуетÑÑ ÐºÐ¾Ð¼Ð¿ÑŒÑŽÑ‚ÐµÑ€ подÑоединенный к вашему реÑиверу. ЕÑли вам необходимы дополнительные инÑтрукции, пожалуйÑта, поÑетите Ñайт http://www.dm7025.de.\n" +"Ваш реÑивер должен быть оÑтановлен. ПоÑле Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð’Ð°Ð¼Ð¸ инÑтрукций по обновлению Ñ Ñайта, новое ПО запроÑит воÑÑтановление Ваших уÑтановок. " + +msgid "You system does not support ext4" +msgstr "Ваша ÑиÑтема не поддерживает ext4" + +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "Ð ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ñоздана. Теперь мы продолжим процеÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ. " + +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "Ваша ÐºÐ¾Ð»Ð»ÐµÐºÑ†Ð¸Ñ Ð¿Ñ€ÐµÐ²Ñ‹ÑˆÐ°ÐµÑ‚ размер одноÑлойного диÑка. Вам нужен чиÑтый двухÑлойный DVD!" + +msgid "Your current collection will get lost!" +msgstr "Ваша Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ ÐºÐ¾Ð»Ð»ÐµÐºÑ†Ð¸Ñ Ð±ÑƒÐ´ÐµÑ‚ утерÑна!" + +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"ТребуетÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ðµ фронтпроцеÑÑора.\n" +"Ðажмите OK Ð´Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° обновлениÑ." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Ваш фронтпроцеÑÑор обновлÑетÑÑ​​\n" +"ДождитеÑÑŒ перезагрузки реÑивера\n" +"Это может занÑÑ‚ÑŒ неÑколько минут" + +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"Ваше интернет Ñоединение не работает.\n" +"Выберите, что будете делать дальше." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "Ваше интернет Ñоединение работает (ip: %s)" + +msgid "Your network configuration has been activated." +msgstr "Ваши Ñетевые наÑтройки активированы." + +msgid "Your receiver does not have an internet connection" +msgstr "Обновление не удалоÑÑŒ. Ð’ вашем реÑивере нет работающего интернет-ÑоединениÑ." + +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +" Ваш реÑивер готов к работе.\n" +"\n" +"Интернет Ñоединение уже работает.\n" +"\n" +"Ðажмите ОК Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ.\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" +" Ваш реÑивер готов к работе.\n" +"\n" +"Интернет Ñоединение уже работает.\n" +"\n" +"Ðажмите ОК Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ." + +msgid "Your receiver is rebooting" +msgstr "Перезагрузка реÑивера" + +msgid "Your receiver is shutting down" +msgstr "Ваш реÑивер переходит в глубокий режим ожиданиÑ" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "Ваш реÑивер выключаетÑÑ. ПожалуйÑта, подождите..." + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ð²Ð°Ñˆ реÑивер может быть непригодным Ð´Ð»Ñ Ð¸ÑпользованиÑ. ОбратитеÑÑŒ к руководÑтву Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ помощи до его перезагрузки." + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "Ваш реÑивер будет выключен по таймеру Ñна." + +msgid "Your receiver will got to standby due to inactivity." +msgstr "Ваш реÑивер будет переведен в режим Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¸Ð·-за бездейÑтвиÑ." + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "Ваш реÑивер будет перезагружен поÑле Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸ OK на пульте." + +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"Ваше беÑпроводное интернет Ñоединение не может быть активировано.\n" +"Ð’Ñ‹ подключили USB WLAN адаптер?\n" +"\n" +"Выберите, что будете делать дальше." + +msgid "Zap" +msgstr "Переключение" + +msgid "Zap back to previously tuned service?" +msgstr "ПереключитьÑÑ Ð½Ð° предыдущий ÑервиÑ?" + +msgid "Zap back to service before positioner setup?" +msgstr "ВернутÑÑ Ð½Ð° предыдущий ÑÐµÑ€Ð²Ð¸Ñ ?" + +msgid "Zap back to service before tuner setup?" +msgstr "ВернутÑÑ Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ð¾ к наÑтройкам тюнер?" + +msgid "Zap focus to Picture in Picture" +msgstr "Переключение в Ñкране PiP" + +msgid "Zap focus to main screen" +msgstr "Переключение в главном Ñкране" + +msgid "Zap mode" +msgstr "Режимы Ñкрана при переключении" + +msgid "Zap to selected channel" +msgstr "Переключение на выбраный канал" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "Переключить на выбранный канал, или показать подробный ЕПГ (завиÑит от конфигурации)" + +msgid "[alternative edit]" +msgstr "[редактирование альтернативы]" + +msgid "[bouquet edit]" +msgstr "[редактирование букетов]" + +msgid "[favourite edit]" +msgstr "[редактирование фаворитов]" + +msgid "[move mode]" +msgstr "[режим перемещениÑ]" + +msgid "a gui to assign services/providers to common interface modules" +msgstr "Скрыть ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð± ошибках от CI модулÑ." + +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "Ð˜Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð´Ð»Ñ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ ÑервиÑов/провайдеров/идентов на CAM-модули" + +msgid "abort alternatives edit" +msgstr "прервать редактирование альтернативы" + +msgid "abort bouquet edit" +msgstr "прервать редактирование букета" + +msgid "abort favourites edit" +msgstr "прервать редактирование фаворитов" + +msgid "about to start" +msgstr "начинаетÑÑ" + +msgid "activate network adapter configuration" +msgstr "закрыть конфигуратор Ñети" + +msgid "add alternatives" +msgstr "добавить альтернативу" + +msgid "add bookmark" +msgstr "добавить закладку" + +msgid "add bouquet" +msgstr "добавить фаворит" + +msgid "add marker" +msgstr "добавить маркер" + +msgid "add service to bouquet" +msgstr "добавить ÑÐµÑ€Ð²Ð¸Ñ Ð² фаворит" + +msgid "add service to favourites" +msgstr "добавить ÑÐµÑ€Ð²Ð¸Ñ Ð² фавориты" + +msgid "add to parental protection" +msgstr "добавить в родительÑкий контроль" + +msgid "adult movie/drama" +msgstr "ÑротичеÑкий фтльм/драма" + +msgid "advanced" +msgstr "РаÑширенный" + +msgid "adventure/western/war" +msgstr "приключениÑ/веÑтерн/военный" + +msgid "advertisement/shopping" +msgstr "реклама/шоппинг" + +msgid "after " +msgstr "через " + +msgid "alphabetic" +msgstr "Ñортировать по алфавиту" + +msgid "alphabetic reverse" +msgstr "по обратному алфавиту" + +msgid "alternative" +msgstr "альтернативный" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "иÑкуÑÑтво/культура (без музыки, общее)" + +msgid "arts/culture magazine" +msgstr "иÑкуÑÑтво/культура журнал" + +msgid "athletics" +msgstr "атлетика" + +msgid "audio tracks" +msgstr "Ð·Ð²ÑƒÐºÐ¾Ð²Ð°Ñ Ð´Ð¾Ñ€Ð¾Ð¶ÐºÐ¸" + +msgid "auto" +msgstr "авто" + +msgid "automatic" +msgstr "автоматичеÑки" + +msgid "back" +msgstr "назад" + +msgid "background image" +msgstr "фоновое изображение" + +msgid "ballet" +msgstr "балет" + +#, python-format +msgid "bc%s" +msgstr "bc%s" + +msgid "better" +msgstr "лучше" + +msgid "black" +msgstr "черный" + +msgid "black & white" +msgstr "черное & белое" + +msgid "blacklist" +msgstr "черный ÑпиÑок" + +msgid "blue" +msgstr "Ñиний" + +msgid "broadcasting/press" +msgstr "вещание/преÑÑа" + +msgid "by date" +msgstr "Ñортировать по дате" + +msgid "cartoon/puppets" +msgstr "мультфильм/куклы" + +msgid "center" +msgstr "центр" + +msgid "centered" +msgstr "центр" + +msgid "centered, wrapped" +msgstr "центр, завернутый" + +msgid "chapters" +msgstr "разделы" + +msgid "childrens's/youth program (general)" +msgstr "детÑкие/молодежные программы (общее)" + +msgid "circular left" +msgstr "ÐºÑ€ÑƒÐ³Ð¾Ð²Ð°Ñ Ð»ÐµÐ²Ð°Ñ" + +msgid "circular right" +msgstr "ÐºÑ€ÑƒÐ³Ð¾Ð²Ð°Ñ Ð¿Ñ€Ð°Ð²Ð°Ñ" + +msgid "comedy" +msgstr "комедиÑ" + +msgid "complex" +msgstr "комплекÑ" + +msgid "config menu" +msgstr "меню конфигурации" + +msgid "confirmed" +msgstr "приÑвоен" + +msgid "connected" +msgstr "подключено" + +msgid "continue" +msgstr "Продолжить" + +msgid "cooking" +msgstr "приготовление" + +msgid "copy to bouquets" +msgstr "копировать в пакет" + +msgid "create directory" +msgstr "Ñоздать каталог" + +#, python-format +msgid "currently installed image: %s" +msgstr "текущий уÑтановленный имидж: %s" + +msgid "daily" +msgstr "ежедневно" + +msgid "day" +msgstr "день" + +msgid "default" +msgstr "По умолчанию" + +msgid "delete cut" +msgstr "удалить вырезанное" + +msgid "delete..." +msgstr "" + +msgid "descramble and record ecm" +msgstr "декодирование и запиÑÑŒ ECM (отл. декодирование)" + +msgid "detective/thriller" +msgstr "детектив/триллер" + +msgid "disable" +msgstr "выключить" + +msgid "disable move mode" +msgstr "выключить режим перемещениÑ" + +msgid "disabled" +msgstr "отключено" + +msgid "disconnected" +msgstr "отключено" + +msgid "discussion/interview/debate" +msgstr "обÑуждение/интервью/диÑкуÑÑии" + +msgid "do nothing" +msgstr "не делать ничего" + +msgid "documentary" +msgstr "документальный фильм" + +msgid "don't descramble, record ecm" +msgstr "не декодировать, только запиÑÑŒ ECM (отл. декодирование)" + +msgid "done!" +msgstr "выполнено!" + +msgid "east" +msgstr "Перемещение на воÑток" + +msgid "economics/social advisory" +msgstr "Ñкономика/ÑÐ¾Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð°Ñ ÐºÐ¾Ð½ÑультациÑ" + +msgid "edit alternatives" +msgstr "изменить альтернативу" + +msgid "education/science/factual topics (general)" +msgstr "образование/наука/факты (общее)" + +msgid "empty" +msgstr "пуÑтой" + +msgid "enable" +msgstr "включить" + +msgid "enable bouquet edit" +msgstr "включить редактирование фаворита" + +msgid "enable favourite edit" +msgstr "включить редактирование фаворитов" + +msgid "enable move mode" +msgstr "включить режим перемещениÑ" + +msgid "enabled" +msgstr "включено" + +msgid "end alternatives edit" +msgstr "закончить редактирование альтернативы" + +msgid "end bouquet edit" +msgstr "закончить редактирование букета" + +msgid "end cut here" +msgstr "конец редактированиÑ" + +msgid "end favourites edit" +msgstr "закончить редактирование фаворитов" + +msgid "entertainment (10-16 year old)" +msgstr "Ñ€Ð°Ð·Ð²Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ (10-16 лет)" + +msgid "entertainment (6-14 year old)" +msgstr "Ñ€Ð°Ð·Ð²Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ (6-14 лет)" + +msgid "equal to" +msgstr "также как" + +msgid "equestrian" +msgstr "конный Ñпорт" + +msgid "exit DVD player or return to file browser" +msgstr "Закрыть DVD плеер и вернутьÑÑ Ð² проводник" + +msgid "exit movielist" +msgstr "" + +msgid "exit network adapter configuration" +msgstr "закрыть конфигуратор Ñети" + +msgid "exit networkadapter setup menu" +msgstr "закрыть наÑтройки Ñетевого адаптера" + +msgid "experimental film/video" +msgstr "ÑкÑпериментальный фильм/видео" + +msgid "false" +msgstr "нет" + +msgid "fashion" +msgstr "мода" + +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "формат файла (BMP, PNG, JPG, GIF)" + +msgid "filename" +msgstr "Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°" + +msgid "film/cinema" +msgstr "фильм/кино" + +msgid "fine arts" +msgstr "изобразительные иÑкуÑÑтва" + +msgid "fine-tune your display" +msgstr "Ñ‚Ð¾Ñ‡Ð½Ð°Ñ Ð½Ð°Ñтройка диÑплеÑ" + +msgid "fitness & health" +msgstr "Ñ„Ð¸Ñ‚Ð½ÐµÑ & здоровье" + +msgid "flat alphabetic" +msgstr "Ñортировать по алфавиту" + +msgid "flat alphabetic reverse" +msgstr "по обратному алфавиту" + +msgid "folk/traditional music" +msgstr "народнаÑ/Ñ‚Ñ€Ð°Ð´Ð¸Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ Ð¼ÑƒÐ·Ñ‹ÐºÐ°" + +msgid "football/soccer" +msgstr "футбол" + +msgid "foreign countries/expeditions" +msgstr "зарубежные Ñтраны/ÑкÑпедиции" + +msgid "forward to the next chapter" +msgstr "вперед к Ñледующему разделу" + +msgid "free" +msgstr "Ñвободно" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "дальнейшее образование" + +msgid "game show/quiz/contest" +msgstr "игра шоу/викторина/конкурÑ" + +msgid "gardening" +msgstr "ÑадоводÑтво" + +msgid "go to deep standby" +msgstr "перейти в глубокий режим ожиданиÑ" + +msgid "go to standby" +msgstr "перейти в режим ожиданиÑ" + +msgid "grab this frame as bitmap" +msgstr "Ñохранить фрейм как раÑтровое изображение" + +msgid "green" +msgstr "зеленый" + +msgid "handicraft" +msgstr "ремеÑло" + +msgid "height" +msgstr "выÑота" + +msgid "help..." +msgstr "помощь..." + +msgid "horizontal" +msgstr "горизонтальнаÑ" + +msgid "information/education/school program" +msgstr "информациÑ/образование/ÑˆÐºÐ¾Ð»ÑŒÐ½Ð°Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð°" + +msgid "init module" +msgstr "init модуль" + +msgid "init modules" +msgstr "init модуль" + +msgid "insert mark here" +msgstr "вÑтавить метку" + +msgid "invalid type" +msgstr "недейÑтвительный тип" + +msgid "jazz" +msgstr "джаз" + +msgid "jump back to the previous title" +msgstr "перейти к предыдущей главе" + +msgid "jump forward to the next title" +msgstr "перейти к Ñледующей главе" + +msgid "languages" +msgstr "Ñзыки" + +msgid "leave movie player..." +msgstr "выйти из видеоплеера..." + +msgid "left" +msgstr "Ñлево" + +msgid "left, wrapped" +msgstr "Ñлево, завернутый" + +msgid "leisure hobbies (general)" +msgstr "доÑуг/хобби (общее)" + +msgid "length" +msgstr "длина" + +msgid "limit ..., aborting !" +msgstr "лимит ..., прерван !" + +msgid "list style compact" +msgstr "компактный ÑпиÑок" + +msgid "list style compact with description" +msgstr "компактный ÑпиÑок опиÑанием" + +msgid "list style default" +msgstr "ÑпиÑок по умолчанию" + +msgid "list style single line" +msgstr "ÑпиÑок в одну Ñтроку" + +msgid "literature" +msgstr "литература" + +msgid "live broadcast" +msgstr "прÑÐ¼Ð°Ñ Ñ‚Ñ€Ð°Ð½ÑлÑциÑ" + +msgid "locked" +msgstr "захвачено" + +msgid "loopthrough to" +msgstr "Ð¿ÐµÑ‚Ð»Ñ Ðº" + +msgid "magazines/reports/documentary" +msgstr "журналы/репортажы/документальный" + +msgid "manual" +msgstr "ручной" + +msgid "martial sports" +msgstr "единоборÑтво" + +msgid "medicine/physiology/psychology" +msgstr "медицина/физиологиÑ/пÑихологиÑ" + +msgid "menu" +msgstr "меню" + +msgid "mins" +msgstr "мин" + +msgid "minutes" +msgstr "минут" + +msgid "month" +msgstr "меÑÑц" + +msgid "motor sport" +msgstr "мотоÑпорт" + +msgid "motoring" +msgstr "автомобили" + +msgid "move down to last entry" +msgstr "перемеÑтить вниз к поÑледней запиÑи" + +msgid "move down to next entry" +msgstr "перемеÑтить вниз к Ñледующей запиÑи" + +msgid "move up to first entry" +msgstr "перемеÑтить вверх к первой запиÑи" + +msgid "move up to previous entry" +msgstr "перемеÑтить вверх к предыдущей запиÑи" + +msgid "movie/drama (general)" +msgstr "фильмы/драма (общее)" + +msgid "multinorm" +msgstr "мультинорм" + +msgid "music/ballet/dance (general)" +msgstr "музыка/балет/танец (общее)" + +msgid "musical/opera" +msgstr "музыка/опера" + +msgid "nature/animals/environment" +msgstr "природа/животные/Ð¾ÐºÑ€ÑƒÐ¶Ð°ÑŽÑ‰Ð°Ñ Ñреда" + +msgid "never" +msgstr "никогда" + +msgid "new media" +msgstr "новые media" + +msgid "news magazine" +msgstr "новоÑтной журнал" + +msgid "news/current affairs (general)" +msgstr "новоÑти/текущие ÑÐ¾Ð±Ñ‹Ñ‚Ð¸Ñ (общее)" + +msgid "news/weather report" +msgstr "новоÑти/прогноз погоды" + +msgid "no" +msgstr "нет" + +msgid "no CAId selected" +msgstr "показать вторую выбранную метку" + +msgid "no CI slots found" +msgstr "не найден модуль" + +msgid "no module found" +msgstr "не найден модуль" + +msgid "no storage devices found" +msgstr "Сетевые уÑтройÑтва не обнаружены!" + +msgid "none" +msgstr "никакой" + +msgid "normal" +msgstr "Ð½Ð¾Ñ€Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ (декодирование)" + +msgid "not configured" +msgstr "нет конфигурации" + +msgid "not locked" +msgstr "не захвачен" + +msgid "not supported" +msgstr "ÐеизвеÑтнаÑ" + +msgid "not used" +msgstr "не иÑпользовано" + +msgid "nothing connected" +msgstr "ничего не подключено" + +msgid "of a DUAL layer medium used." +msgstr "иÑпользуемого двухÑлойного ноÑителÑ." + +msgid "of a SINGLE layer medium used." +msgstr "иÑпользуемого одноÑлойного ноÑителÑ." + +msgid "off" +msgstr "выкл." + +msgid "offset is" +msgstr "Ñмещение" + +msgid "on" +msgstr "вкл." + +msgid "on READ ONLY medium." +msgstr "на диÑк только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ." + +msgid "on end of movie" +msgstr "в конце фильма" + +msgid "once" +msgstr "один раз" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +msgid "open nameserver configuration" +msgstr "открыть конфигуратор DNS" + +msgid "original" +msgstr "оригинал" + +msgid "original language" +msgstr "Ñзык оригинала" + +msgid "pass" +msgstr "передать" + +msgid "performing arts" +msgstr "иÑполнительÑкие виды иÑкуÑÑтва" + +msgid "play as picture in picture" +msgstr "включить как картинку в картинке" + +msgid "play in mainwindow" +msgstr "включить на оÑновном Ñкране" + +msgid "please press OK when ready" +msgstr "пожалуйÑта, нажмите OK когда будете готовы" + +msgid "please wait, loading picture..." +msgstr "Подождите, загрузка изображений..." + +msgid "popular culture/traditional arts" +msgstr "популÑрные культура/традиции иÑкуÑÑтва" + +msgid "pre-school children's program" +msgstr "дошкольные детÑкие программы" + +msgid "receiver software because updates are available." +msgstr "доÑтупно обновление Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ реÑивера." + +msgid "record" +msgstr "запиÑÑŒ" + +msgid "recording..." +msgstr "запиÑÑŒ..." + +msgid "red" +msgstr "краÑный" + +msgid "religion" +msgstr "религиÑ" + +msgid "remarkable people" +msgstr "замечательные люди" + +msgid "remove after this position" +msgstr "удалить поÑле Ñтой позиции" + +msgid "remove all alternatives" +msgstr "удалить вÑе альтернативы" + +msgid "remove all new found flags" +msgstr "удалить вÑе новые найденные флаги" + +msgid "remove before this position" +msgstr "удалить перед Ñтой позицией" + +msgid "remove bookmark" +msgstr "удалить закладку" + +msgid "remove directory" +msgstr "удалить каталог" + +msgid "remove entry" +msgstr "удалить выбранное" + +msgid "remove from parental protection" +msgstr "удалить из родительÑкого контролÑ" + +msgid "remove new found flag" +msgstr "удалить флаг новый найденный " + +msgid "remove selected satellite" +msgstr "удалить выбранный Ñпутник" + +msgid "remove this mark" +msgstr "удалить метку" + +msgid "rename entry" +msgstr "переименовать выбранное" + +msgid "repeat playlist" +msgstr "повторить плейлиÑÑ‚" + +msgid "repeated" +msgstr "повторный" + +msgid "reverse by date" +msgstr "по обратной дате" + +msgid "rewind to the previous chapter" +msgstr "назад на предыдущую главу" + +msgid "right" +msgstr "право" + +msgid "right, wrapped" +msgstr "право, завернутый" + +msgid "rock/pop" +msgstr "рок/поп" + +msgid "romance" +msgstr "романÑ" + +msgid "save last directory on exit" +msgstr "Ñохранить поÑледний каталог при выходе" + +msgid "save playlist on exit" +msgstr "Ñохранить плейлиÑÑ‚ при выходе" + +msgid "scan state" +msgstr "ÑоÑтоÑние поиÑка" + +msgid "science fiction/fantasy/horror" +msgstr "Ð½Ð°ÑƒÑ‡Ð½Ð°Ñ Ñ„Ð°Ð½Ñ‚Ð°Ñтика/Ñ„Ñнтези/ужаÑÑ‹" + +msgid "second cable of motorized LNB" +msgstr "второй кабель от ЛÐБ на моторе" + +msgid "seconds" +msgstr "Ñекунд" + +msgid "select" +msgstr "выбрать" + +msgid "select CAId's" +msgstr "выбрать" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +msgid "select menu entry" +msgstr "выбрать из меню" + +msgid "select movie" +msgstr "выбрать фильм" + +msgid "select the movie path" +msgstr "" + +msgid "serious music/classic music" +msgstr "клаÑÑичеÑÐºÐ°Ñ Ð¼ÑƒÐ·Ñ‹ÐºÐ°" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "Ñерьезный/клаÑÑичеÑкий/религиозный/иÑторичеÑкий фильм/драма" + +msgid "service PIN" +msgstr "Изменить PIN-код ÑервиÑа" + +msgid "set as startup service" +msgstr "Ñделать ÑÐµÑ€Ð²Ð¸Ñ Ñтартовым" + +msgid "setup PIN" +msgstr "Изменить PIN-код наÑтроек" + +msgid "show DVD main menu" +msgstr "показать DVD в главном меню" + +msgid "show all tags" +msgstr "показать вÑе теги" + +msgid "show alternatives" +msgstr "показать альтернативу" + +msgid "show event details" +msgstr "показать детали ÑобытиÑ" + +msgid "show extended description" +msgstr "" + +msgid "show mediaplayer on mainmenu" +msgstr "Показать медиаплеер в главном меню" + +msgid "show softwaremanager in setup menu" +msgstr "Показать менеджер Ñофта в меню наÑтроек" + +msgid "show softwaremanager on blue button" +msgstr "Показать менеджер Ñофта в меню дополнений" + +msgid "show tag menu" +msgstr "" + +msgid "show transponder info" +msgstr "показать инфо транÑпондера" + +msgid "show/game show (general)" +msgstr "показ/игровых шоу (общее)" + +msgid "shuffle" +msgstr "Ñлучайный порÑдок" + +msgid "shut down" +msgstr "Выключить" + +msgid "simple" +msgstr "проÑтой" + +msgid "skip backward" +msgstr "Перемотка назад" + +msgid "skip forward" +msgstr "Перемотка вперед" + +msgid "soap/melodram/folkloric" +msgstr "Ð¼Ñ‹Ð»ÑŒÐ½Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°/мелодрама/фольклор" + +msgid "social/political issues/economics (general)" +msgstr "Ñоциальные/политичеÑкие вопроÑÑ‹/Ñкономика (общее)" + +msgid "social/spiritual science" +msgstr "ÑоциальнаÑ/Ð´ÑƒÑ…Ð¾Ð²Ð½Ð°Ñ Ð½Ð°ÑƒÐºÐ°" + +msgid "sorting of playlists" +msgstr "Ñортировка плейлиÑтов" + +msgid "special characters" +msgstr "Ñпециальное Ñобытие" + +msgid "special events" +msgstr "Ñпециальное Ñобытие" + +msgid "special format data DVD (HDTV compatible)" +msgstr "Ñпецмальный формат данных DVD (ÑовмеÑтимый Ñ HDTV)" + +msgid "sports (general)" +msgstr "Ñпорт (общее)" + +msgid "sports magazine" +msgstr "Ñпортивный магазин" + +msgid "standard" +msgstr "Ñтандарт" + +msgid "start cut here" +msgstr "начало редактированиÑ" + +msgid "start directory" +msgstr "начальный каталог" + +msgid "stepsize" +msgstr "размер шага" + +msgid "stereo" +msgstr "Ñтерео" + +msgid "stop using as startup service" +msgstr "отключить от автоÑтарта ÑервиÑ" + +msgid "switch to bookmarks" +msgstr "перейти на закладки" + +msgid "switch to filelist" +msgstr "переключить на ÑпиÑок файлов" + +msgid "switch to the next angle" +msgstr "перейти в Ñледующей угол" + +msgid "switch to the next audio track" +msgstr "перейти к Ñледующей звуковой дорожке" + +msgid "switch to the next subtitle language" +msgstr "переключитьÑÑ Ð½Ð° Ñледующий Ñзык Ñубтитров" + +msgid "talk show" +msgstr "шоу беÑеда" + +msgid "team sports" +msgstr "командные виды Ñпорта" + +msgid "technology/natural science" +msgstr "технологии/еÑтеÑтвознание" + +msgid "template file" +msgstr "Шаблон файла" + +msgid "tennis/squash" +msgstr "тенниÑ/Ñквош" + +msgid "this recording" +msgstr "Ñто запиÑано" + +msgid "this service is protected by a parental control pin" +msgstr "Ñтот ÑÐµÑ€Ð²Ð¸Ñ Ð·Ð°Ñ‰Ð¸Ñ‰ÐµÐ½ PIN-кодом родительÑкого контролÑ" + +msgid "toggle time, chapter, audio, subtitle info" +msgstr "Ð²Ñ€ÐµÐ¼Ñ Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ, разделы, аудио, Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ñубтитров" + +msgid "top" +msgstr "вверх" + +msgid "tourism/travel" +msgstr "туризм/путешеÑтвиÑ" + +msgid "true" +msgstr "да" + +msgid "unavailable" +msgstr "недоÑтупно" + +msgid "unconfirmed" +msgstr "не приÑвоен" + +msgid "undefined" +msgstr "определен пользователем" + +msgid "unknown" +msgstr "<неизвеÑтный>" + +msgid "unknown service" +msgstr "неизвеÑтный ÑервиÑ" + +msgid "unpublished" +msgstr "неопубликованное" + +msgid "until standby/restart" +msgstr "до режима ожиданиÑ/перезагрузки" + +msgid "user defined" +msgstr "определен пользователем" + +msgid "variety show" +msgstr "шоу варьете" + +msgid "vertical" +msgstr "вертикальнаÑ" + +msgid "wait for ci..." +msgstr "ожидание ci..." + +msgid "wait for mmi..." +msgstr "ожидание mmi..." + +msgid "waiting" +msgstr "ожидание" + +msgid "water sport" +msgstr "водный Ñпорт" + +msgid "weekly" +msgstr "Еженедельно" + +msgid "west" +msgstr "Перемещение на запад" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "белый" + +msgid "whitelist" +msgstr "белый ÑпиÑок" + +msgid "width" +msgstr "ширина" + +msgid "winter sport" +msgstr "зимний Ñпорт" + +msgid "wireless network interface" +msgstr "Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð±ÐµÑпроводной Ñети" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "Ñ %d ошибкой" +msgstr[1] "Ñ %d ошибками" +msgstr[2] "Ñ %d ошибками" + +msgid "working" +msgstr "работающий" + +msgid "yellow" +msgstr "желтый" + +msgid "yes" +msgstr "да" + +msgid "yes (keep feeds)" +msgstr "да (хранить каналы)" + +msgid "zap" +msgstr "перейти" + +msgid "zap and record" +msgstr "перейти и запиÑать" + +msgid "zapped" +msgstr "переключено" + +#~ msgid "AA" +#~ msgstr "AA" + +#~ msgid "AB" +#~ msgstr "AB" + +#~ msgid "Activate PiP" +#~ msgstr "Ðктивировать PIP" + +#~ msgid "Add/remove timer for current event" +#~ msgstr "Добавить/удалить таймер Ð´Ð»Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ³Ð¾ ÑобытиÑ" + +#~ msgid "Adjust HDMI CEC settings" +#~ msgstr "Ð’Ñ‹Ñтавите наÑтройки 3D" + +#~ msgid "All satellites" +#~ msgstr "Ð’Ñе Ñпутники" + +#~ msgid "And will shutdown your receiver over " +#~ msgstr "И выключит ваш реÑивер через " + +#~ msgid "BA" +#~ msgstr "BA" + +#~ msgid "BB" +#~ msgstr "BB" + +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "Поведение 'пауза' во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð°ÑƒÐ·Ñ‹" + +#~ msgid "Committed DiSEqC command" +#~ msgstr "Команда Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ DiSEqC" + +#~ msgid "Configure if and how service type icons will be shown." +#~ msgstr "ÐаÑтройка Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ð° иконок типа ÑервиÑа в ÑпиÑке ÑервиÑов." + +#~ msgid "Configure if service picons will be shown in the servicelist." +#~ msgstr "ÐаÑтройка Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ð° пиконов ÑервиÑов в ÑпиÑке ÑервиÑов." + +#~ msgid "Configure the behavior of the 'pause' key when movie playback is already paused." +#~ msgstr "ÐаÑтройка Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸ 'пауза', когда видео уже Ñтоит на паузе." + +#~ msgid "Configure the duration in hours and action, which could be shut down or standby, when the receiver is not controlled." +#~ msgstr "ÐаÑтройка продолжительноÑти в чаÑах и дейÑтвиÑ, выключение или режим ожиданиÑ, когда реÑивер без управлениÑ." + +#~ msgid "Configure the duration in minutes and action, which could be shut down or standby, for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +#~ msgstr "ÐаÑтройка продолжительноÑти в минутах и дейÑÑ‚Ð²Ð¸Ñ (выключение или режим ожиданиÑ) Ð´Ð»Ñ Ñ‚Ð°Ð¹Ð¼ÐµÑ€Ð° Ñна. Выберите Ñту Ñтроку и нажмите ОК или зеленую кнопку Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка/оÑтановки таймера Ñна." + +#~ msgid "DiSEqC repeats" +#~ msgstr "DiSEqC повтор" + +#~ msgid "Goto specific data/time" +#~ msgstr "Перейти на конкретное дата/времÑ" + +#~ msgid "Memory positions" +#~ msgstr "ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ Ð¿Ð°Ð¼Ñти" + +#~ msgid "No satellite frontend found!!" +#~ msgstr "Ðе найден Ñпутниковый интерфейÑ!" + +#~ msgid "Open service list and select next channel" +#~ msgstr "Открыть ÑпиÑок ÑервиÑов и выбрать Ñледующий канал" + +# ----------------------------------------- +#~ msgid "Open service list and select previous channel" +#~ msgstr "Открыть ÑпиÑок ÑервиÑов и выбрать предыдущий канал" + +#~ msgid "Press '0' to toggle internal/external PiP." +#~ msgstr "Ðажмите '0' Ð´Ð»Ñ Ñмены внутреннего/внешнего PiP." + +#~ msgid "Remove timer" +#~ msgstr "Удалить таймер" + +#~ msgid "Send DiSEqC" +#~ msgstr "Отправить DiSEqC" + +#~ msgid "Show picons in servicelist" +#~ msgstr "Показать пиконы в ÑпиÑке ÑервиÑов" + +#~ msgid "Shutdown after current event" +#~ msgstr "Выключение поÑле текущего ÑобытиÑ" + +#~ msgid "Shutdown in " +#~ msgstr "Выключение через " + +#~ msgid "Switch next channel" +#~ msgstr "Переключить на Ñледующий канал" + +#~ msgid "Tuning step size" +#~ msgstr "Размер шага поворота" + +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Команда Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ DiSEqC" + +#~ msgid "Your receiver will shutdown due to inactivity." +#~ msgstr "Ваш реÑивер будет выключен из-за бездейÑтвиÑ." + +#~ msgid "Your receiver will shutdown due to the sleeptimer." +#~ msgstr "Ваш реÑивер будет переведен в режим Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾ таймеру Ñна." + +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "Переключить на предыдущий ÑервиÑ?" + +#~ msgid "tuner is not supported" +#~ msgstr "ÐеизвеÑтнаÑ" diff --git a/po/sk.po b/po/sk.po new file mode 100644 index 0000000..a3712c2 --- /dev/null +++ b/po/sk.po @@ -0,0 +1,8351 @@ +# Slovak translations for Enigma2. +# +msgid "" +msgstr "" +"Project-Id-Version: enigma2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2010-05-12 13:09+0200\n" +"Last-Translator: acid-burn <>\n" +"Language-Team: none\n" +"Language: sk\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-Generator: Pootle 2.0.3\n" +"X-Poedit-Language: Slovak\n" +"X-Poedit-Country: SLOVAKIA\n" + +# +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"Rozšírené voľby a nastavenia." + +# +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"Po stlaÄení tlaÄidla OK poÄkajte!" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" + +# +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"UpraviÅ¥ adresu zdroja aktualizácií." + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" + +# +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"Pre pokraÄovanie stlaÄte tlaÄidlo OK na diaľkovom ovládaÄi." + +# +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"ObnoviÅ¥ zo zálohy podľa dátumu." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" + +# +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"PrehľadaÅ¥ miestne balíÄky a nainÅ¡talovaÅ¥ ich." + +# +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Zvoľte zariadenie pre zálohovanie.\n" +"Aktuálne zariadenie: " + +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"ZobraziÅ¥, nainÅ¡talovaÅ¥ a odstrániÅ¥ dostupné alebo nainÅ¡talované balíÄky." + +msgid " (PiP)" +msgstr "" + +msgid " (Radio)" +msgstr "" + +msgid " (TV)" +msgstr "" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +msgid " extensions." +msgstr " rozšírenia." + +msgid " ms" +msgstr " ms" + +msgid " packages selected." +msgstr " balíÄkov zvolených." + +msgid " updates available." +msgstr " aktualizácie k dispozícii." + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "" + +msgid "%A %d %B" +msgstr "" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "" + +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "" + +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, fuzzy, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "Nájdených %d staníc!" +msgstr[1] "Nájdených %d staníc!" +msgstr[2] "Nájdených %d staníc!" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, fuzzy, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d úloh beží na pozadí!" +msgstr[1] "%d úloh beží na pozadí!" +msgstr[2] "%d úloh beží na pozadí!" + +#, python-format +msgid "%d min" +msgstr "%d min" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "%d minutes" +msgstr "" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, fuzzy, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "poÄiatoÄný adresár" +msgstr[1] "poÄiatoÄný adresár" +msgstr[2] "poÄiatoÄný adresár" + +#, fuzzy, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "Nájdená 1 bezdrôtová sieÅ¥." +msgstr[1] "Nájdená 1 bezdrôtová sieÅ¥." +msgstr[2] "Nájdená 1 bezdrôtová sieÅ¥." + +msgid "%d-%b-%Y %-H:%M" +msgstr "" + +msgid "%d-%m" +msgstr "" + +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "" + +#, fuzzy, python-format +msgid "%s %s free disk space" +msgstr "voľného miesta na disku" + +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "" + +#, fuzzy, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] " aktualizácie k dispozícii." +msgstr[1] " aktualizácie k dispozícii." +msgstr[2] " aktualizácie k dispozícii." + +#, python-format +msgid "%s%d min" +msgstr "" + +#, python-format +msgid "%s/%s: %s" +msgstr "" + +msgid "(ZAP)" +msgstr "(Prepnúť)" + +msgid "(empty)" +msgstr "(prázdne)" + +msgid "(show optional DVD audio menu)" +msgstr "(zobraziÅ¥ voliteľné menu zvuku DVD)" + +msgid "* Only available if more than one interface is active." +msgstr "* Dostupné, len ak je aktívnych viac rozhraní než jedno." + +msgid "/s" +msgstr "" + +msgid "0" +msgstr "0" + +msgid "1" +msgstr "1" + +msgid "1.0" +msgstr "1,0" + +msgid "1.1" +msgstr "1,1" + +msgid "1.2" +msgstr "1,2" + +msgid "12V output" +msgstr "12 V výstup" + +msgid "13 V" +msgstr "13 V" + +msgid "16:10" +msgstr "16:10" + +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +msgid "16:9" +msgstr "16:9" + +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +msgid "16:9 always" +msgstr "vždy 16:9" + +msgid "18 V" +msgstr "18 V" + +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "" + +msgid "24" +msgstr "" + +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +msgid "3" +msgstr "3" + +msgid "30" +msgstr "" + +msgid "3d mode" +msgstr "" + +msgid "4" +msgstr "4" + +msgid "4:3" +msgstr "4:3" + +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +msgid "5" +msgstr "5" + +msgid "6" +msgstr "6" + +msgid "7" +msgstr "7" + +msgid "8" +msgstr "8" + +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +msgid "<Current movielist location>" +msgstr "<Aktuálne umiestnenie zoznamu filmov>" + +msgid "<Default movie location>" +msgstr "<Predvolené umiestnenie filmov>" + +msgid "<Last timer location>" +msgstr "<Umiestnenie poslednej Äasovej nahrávky>" + +msgid "<unknown>" +msgstr "<neznámy>" + +msgid "??" +msgstr "??" + +msgid "A" +msgstr "A" + +#, fuzzy, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"KonfiguraÄný súbor (%s) bol od inÅ¡talácie zmenený.\n" +"Chcete zachovaÅ¥ svoju verziu?" + +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"KonfiguraÄný súbor (%s) bol od inÅ¡talácie zmenený.\n" +"Chcete zachovaÅ¥ svoju verziu?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "Grafické EPG pre vÅ¡etky stanice urÄitého buketu" + +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"Nahrávanie zaÄalo:\n" +"%s" + +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"Práve sa nahráva.\n" +"ÄŒo chcete urobiÅ¥?" + +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "Práve sa nahráva. Zastavte nahrávanie pred nastavovaním motora." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "" + +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "Práve sa nahráva. Zastavte nahrávanie pred spustením vyhľadávaÄa satelitov." + +#, python-format +msgid "A required tool (%s) was not found." +msgstr "Požadovaný nástroj (%s) sa nenaÅ¡iel." + +msgid "A search for available updates is currently in progress." +msgstr "Práve prebieha vyhľadávanie dostupných aktualizácií." + +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"Bolo nájdené druhé nakonfigurované rozhranie.\n" +"Chcete vypnúť druhé sieÅ¥ové rozhranie?" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +msgid "A small overview of the available icon states and actions." +msgstr "Tu je malý prehľad dostupných ikon Å¡tátov a Äinností." + +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"Zlyhalo Äasovanie nahrávania!\n" +"Vypnúť TV a skúsiÅ¥ znova?\n" + +#, fuzzy +msgid "A/V settings" +msgstr "Nastavenia A/V" + +msgid "AC3/DTS downmix" +msgstr "" + +msgid "Abort" +msgstr "ZruÅ¡iÅ¥" + +msgid "About" +msgstr "O Dreamboxe" + +msgid "About..." +msgstr "O Dreamboxe..." + +msgid "Accesspoint:" +msgstr "Prístupový bod:" + +msgid "Action on long powerbutton press" +msgstr "ÄŒinnosÅ¥ pri dlhom stlaÄení vypínaÄa" + +msgid "Action on short powerbutton press" +msgstr "ÄŒinnosÅ¥ po krátkom stlaÄení sieÅ¥ového vypínaÄa" + +msgid "Activate Picture in Picture" +msgstr "Zapnúť obraz v obraze" + +#, fuzzy +msgid "Activate current configuration" +msgstr "aktivovaÅ¥ aktuálne nastavenie" + +msgid "Activate network settings" +msgstr "AktivovaÅ¥ nastavenia siete" + +#, fuzzy +msgid "Activate the configured network settings." +msgstr "AktivovaÅ¥ nastavenia siete" + +msgid "Adapter settings" +msgstr "Nastavenia adaptéra" + +msgid "Add" +msgstr "PridaÅ¥" + +msgid "Add Bookmark" +msgstr "PridaÅ¥ záložku" + +msgid "Add a mark" +msgstr "PridaÅ¥ znaÄku" + +#, fuzzy +msgid "Add a nameserver entry" +msgstr "pridaÅ¥ DNS" + +msgid "Add a new title" +msgstr "PridaÅ¥ nový titul" + +#, fuzzy +msgid "Add bookmark" +msgstr "pridaÅ¥ záložku" + +#, fuzzy +msgid "Add directory to playlist" +msgstr "pridaÅ¥ adresár do zoznamu prehrávok" + +#, fuzzy +msgid "Add file to playlist" +msgstr "pridaÅ¥ súbor do zoznamu prehrávok" + +#, fuzzy +msgid "Add files to playlist" +msgstr "pridaÅ¥ súbory do zoznamu prehrávok" + +msgid "Add more details to the crash log" +msgstr "" + +#, fuzzy +msgid "Add provider" +msgstr "pridaÅ¥ poskytovateľa" + +#, fuzzy +msgid "Add recording (enter recording duration)" +msgstr "pridaÅ¥ nahrávanie (zadajte dobu záznamu)" + +#, fuzzy +msgid "Add recording (enter recording endtime)" +msgstr "pridaÅ¥ nahrávanie (zadajte Äas ukonÄenia)" + +#, fuzzy +msgid "Add recording (indefinitely)" +msgstr "pridaÅ¥ nahrávanie (nekoneÄné)" + +#, fuzzy +msgid "Add recording (stop after current event)" +msgstr "pridaÅ¥ nahrávanie (zastaviÅ¥ po aktuálnom programe)" + +#, fuzzy +msgid "Add service" +msgstr "pridaÅ¥ stanicu" + +msgid "Add timer" +msgstr "PridaÅ¥ ÄasovaÄ" + +msgid "Add title" +msgstr "PridaÅ¥ titul" + +msgid "Add to bouquet" +msgstr "PridaÅ¥ do buketu" + +msgid "Add to favourites" +msgstr "PridaÅ¥ do obľúbených" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "" + +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "Nastavte farby tak, aby boli jednotlivé odtiene dobre rozlíšiteľné, ale zároveň Äo najsýtejÅ¡ie. Ak ste s výsledkom spokojní, stlaÄením tlaÄidla OK ukonÄite jemné ladenie obrazu alebo Äíslicovými tlaÄidlami zvoľte iný testovací obrazec." + +msgid "Advanced" +msgstr "" + +#, fuzzy +msgid "Advanced options" +msgstr "Rozšírené voľby" + +msgid "Advanced restore" +msgstr "Rozšírené obnovenie" + +#, fuzzy +msgid "Advanced software" +msgstr "VylepÅ¡ený softvér" + +#, fuzzy +msgid "Advanced software plugin" +msgstr "Modul vylepÅ¡eného softvéru" + +#, fuzzy +msgid "Advanced video enhancement setup" +msgstr "Rozšírené nastavenie obrazu" + +#, fuzzy +msgid "Advanced video setup" +msgstr "Rozšírené nastavenie obrazu" + +msgid "After event" +msgstr "Po udalosti" + +msgid "Album" +msgstr "Album" + +msgid "Alignment of events" +msgstr "" + +msgid "Alignment of service names" +msgstr "" + +msgid "All" +msgstr "VÅ¡etky" + +msgid "All ages" +msgstr "" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "" + +msgid "Allocate unused memory index" +msgstr "" + +msgid "Allow quit movieplayer with exit" +msgstr "" + +msgid "Allow subtitle language to equal audio language" +msgstr "" + +msgid "Allow subtitles for hearing impaired" +msgstr "" + +msgid "Alpha" +msgstr "Alfa" + +#, fuzzy +msgid "Alternative" +msgstr "pridaÅ¥ alternatívy" + +#, fuzzy +msgid "Alternative numbering mode" +msgstr "Alternatívny režim rádia" + +msgid "Alternative services tuner priority" +msgstr "Priorita tunera pri alternatívnych staniciach" + +msgid "Always ask" +msgstr "Vždy sa spýtaÅ¥" + +msgid "Always hide infobar" +msgstr "" + +msgid "An empty filename is illegal." +msgstr "Prázdny názov súboru je neplatný." + +#, fuzzy +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "Chyba pri sÅ¥ahovaní zoznamu paketov. Zopakujte." + +msgid "An unknown error occurred!" +msgstr "Objavila sa neznáma chyba!" + +msgid "And will put your receiver in standby over " +msgstr "" + +msgid "Any activity" +msgstr "" + +msgid "Arabic" +msgstr "ArabÄina" + +msgid "Are you sure to remove this entry?" +msgstr "" + +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"Naozaj chcete aktivovaÅ¥ túto konfiguráciu siete?\n" +"\n" + +#, fuzzy +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"Naozaj chcete zmazaÅ¥\n" +"túto zálohu:\n" + +msgid "Are you sure you want to exit this wizard?" +msgstr "Naozaj chcete ukonÄiÅ¥ tohto spirevodcu?" + +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"Naozaj chcete reÅ¡tartovaÅ¥ sieÅ¥ové rozhrania?\n" +"\n" + +#, fuzzy, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Naozaj chcete obnoviÅ¥ Enigma2 zo zálohy?\n" +"Enigma2 sa po obnovení reÅ¡tartuje" + +#, fuzzy +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Naozaj chcete obnoviÅ¥ Enigma2 zo zálohy?\n" +"Enigma2 sa po obnovení reÅ¡tartuje" + +msgid "Artist" +msgstr "Umelec" + +msgid "Arts/Culture" +msgstr "" + +msgid "Ask user" +msgstr "opýtaÅ¥ sa" + +#, fuzzy +msgid "Aspect ratio" +msgstr "Pomer strán" + +#, fuzzy +msgid "Assigned CAIds:" +msgstr "Priradené CAIdy:" + +#, fuzzy +msgid "Assigned services/provider:" +msgstr "Priradené služby a poskytovatelia:" + +#, fuzzy +msgid "At beginning" +msgstr "Na zaÄiatku" + +#, fuzzy +msgid "At end" +msgstr "Na konci" + +msgid "Audio" +msgstr "Zvuk" + +msgid "Audio PID" +msgstr "Zvukový PID" + +msgid "Audio language selection 1" +msgstr "" + +msgid "Audio language selection 2" +msgstr "" + +msgid "Audio language selection 3" +msgstr "" + +msgid "Audio language selection 4" +msgstr "" + +#, fuzzy +msgid "Audio options..." +msgstr "Voľby zvuku ..." + +#, fuzzy, python-format +msgid "Audio track (%s) format" +msgstr "formát zvukovej stopy (%s)" + +#, fuzzy, python-format +msgid "Audio track (%s) language" +msgstr "jazyk zvukovej stopy (%s)" + +msgid "Author: " +msgstr "Autor: " + +msgid "Authoring mode" +msgstr "Režim autorizácie" + +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Auto" + +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Automaticky rozdeľovaÅ¥ kapitoly každých ? minút (0 = nikdy)" + +msgid "Auto flesh" +msgstr "Automatické fleÅ¡ovanie" + +msgid "Auto focus" +msgstr "" + +msgid "Auto focus commencing ..." +msgstr "" + +msgid "Auto language selection" +msgstr "" + +msgid "Auto scart switching" +msgstr "Automatické prepnutie scartu" + +msgid "Automatic" +msgstr "Automaticky" + +#, fuzzy +msgid "Automatic scan" +msgstr "Automatické vyhľadávanie" + +msgid "Automatically start timeshift after" +msgstr "" + +msgid "Automatically turn on external subtitles" +msgstr "" + +msgid "Available format variables" +msgstr "Dostupné premenné formátu" + +msgid "B" +msgstr "B" + +msgid "BER" +msgstr "BER" + +msgid "BER:" +msgstr "BER:" + +msgid "Back" +msgstr "Späť" + +msgid "Background" +msgstr "Pozadie" + +#, fuzzy +msgid "Background color" +msgstr "farba pozadia" + +msgid "Background delete option" +msgstr "" + +msgid "Background delete speed" +msgstr "" + +#, fuzzy +msgid "Backup completed." +msgstr "Zálohovanie zlyhalo." + +msgid "Backup failed." +msgstr "Zálohovanie zlyhalo." + +msgid "Backup is running..." +msgstr "Zálohovanie beží..." + +msgid "Backup system settings" +msgstr "ZálohovaÅ¥ nastavenia systému" + +msgid "Band" +msgstr "Pásmo" + +msgid "Bandwidth" +msgstr "Šírka pásma" + +msgid "Basque" +msgstr "" + +msgid "Begin time" +msgstr "ÄŒas zaÄiatku" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +msgid "Behavior of 0 key in PiP-mode" +msgstr "Funkcia tlaÄidla 0 v režime obraz v obraze" + +msgid "Behavior when a movie is started" +msgstr "ÄŒinnosÅ¥ po spustení filmu" + +msgid "Behavior when a movie is stopped" +msgstr "ÄŒinnosÅ¥ po zastavení filmu" + +msgid "Behavior when a movie reaches the end" +msgstr "ÄŒinnosÅ¥ po skonÄení filmu" + +msgid "Big PiP" +msgstr "" + +msgid "Bitrate:" +msgstr "Dátový tok:" + +msgid "Black screen" +msgstr "" + +msgid "Black screen till locked" +msgstr "" + +msgid "Block noise reduction" +msgstr "PotlaÄenie blokového Å¡umu" + +msgid "Blue boost" +msgstr "ZosilniÅ¥ modrú" + +msgid "Bookmarks" +msgstr "Záložky" + +msgid "Brightness" +msgstr "Jas" + +msgid "Bulgarian" +msgstr "" + +msgid "Burn DVD" +msgstr "NapáliÅ¥ DVD" + +#, fuzzy, python-format +msgid "Burn audio track (%s)" +msgstr "napáliÅ¥ zvukovú stopu (%s)" + +msgid "Burn existing image to DVD" +msgstr "NapáliÅ¥ existujúci image na DVD" + +msgid "Burn to DVD" +msgstr "NapáliÅ¥ na DVD..." + +msgid "Bus: " +msgstr "Zbernica:" + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "" + +msgid "C" +msgstr "C" + +msgid "C-Band" +msgstr "Pásmo C" + +msgid "CH" +msgstr "" + +msgid "CI assignment" +msgstr "Priradenie CI" + +msgid "CVBS" +msgstr "CVBS" + +msgid "Cable" +msgstr "Kábel" + +msgid "Cable Scan" +msgstr "" + +#, fuzzy +msgid "Cache thumbnails" +msgstr "UchovaÅ¥ zmenÅ¡eniny" + +msgid "Calculate" +msgstr "" + +msgid "Calculate all positions" +msgstr "" + +msgid "Calculation complete" +msgstr "" + +msgid "Calibrate" +msgstr "" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "" + +msgid "Cancel" +msgstr "ZruÅ¡iÅ¥" + +msgid "Cannot determine" +msgstr "" + +msgid "Cannot find any signal ..., aborting !" +msgstr "" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "" + +msgid "Cannot move to trash can" +msgstr "" + +msgid "Capacity: " +msgstr "Kapacita:" + +msgid "Card" +msgstr "Karta" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "" + +msgid "Center time-labels and remove date" +msgstr "" + +msgid "Change bouquets in quickzap" +msgstr "ZmeniÅ¥ bukety pri rýchlom prepínaní" + +msgid "Change pin code" +msgstr "ZmeniÅ¥ kód PIN" + +#, fuzzy +msgid "Change recording (duration)" +msgstr "zmeniÅ¥ nahrávanie (trvanie)" + +#, fuzzy +msgid "Change recording (endtime)" +msgstr "zmeniÅ¥ nahrávanie (Äas ukonÄenia)" + +msgid "Change repeat and delay settings?" +msgstr "" + +msgid "Change service PIN" +msgstr "ZmeniÅ¥ PIN stanice" + +msgid "Change service PINs" +msgstr "ZmeniÅ¥ PINy staníc" + +msgid "Change setup PIN" +msgstr "ZmeniÅ¥ PIN nastavení" + +msgid "Change step size" +msgstr "ZmeniÅ¥ veľkosÅ¥ kroku" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "Protokol zmien" + +msgid "Channel" +msgstr "Stanica" + +#, fuzzy +msgid "Channel list type" +msgstr "Menu zoznamu staníc" + +msgid "Channel not in services list" +msgstr "Stanica nie je v zozname staníc" + +#, fuzzy +msgid "Channel selection" +msgstr "Voľba stanice" + +msgid "Channel:" +msgstr "Stanica:" + +msgid "Channellist menu" +msgstr "Menu zoznamu staníc" + +msgid "Chap." +msgstr "Kap." + +msgid "Chapter" +msgstr "Kapitola" + +msgid "Chapter:" +msgstr "Kapitola:" + +msgid "Check" +msgstr "SkontrolovaÅ¥" + +msgid "Check the internet connection" +msgstr "" + +msgid "Check the internet connection again" +msgstr "" + +#, fuzzy +msgid "Checking filesystem..." +msgstr "Kontrolujem systém súborov..." + +msgid "Checking the internet connection" +msgstr "" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" + +msgid "Children/Youth" +msgstr "" + +msgid "Choose which tuner to configure." +msgstr "" + +msgid "Circular left" +msgstr "Kruhová ľavá" + +msgid "Circular right" +msgstr "Kruhová pravá" + +msgid "Cleanup" +msgstr "VyÄistiÅ¥" + +msgid "Clear" +msgstr "" + +msgid "Clear before scan" +msgstr "VymazaÅ¥ pred skenovaním" + +msgid "Clear fixed" +msgstr "" + +msgid "Clear log" +msgstr "VymazaÅ¥ log" + +#, fuzzy +msgid "Clear playlist" +msgstr "vymazaÅ¥ zoznam prehrávok" + +msgid "Close" +msgstr "ZatvoriÅ¥" + +msgid "Close PiP on exit" +msgstr "" + +msgid "Close title selection" +msgstr "ZatvoriÅ¥ výber titulkov" + +msgid "Code rate HP" +msgstr "" + +msgid "Code rate LP" +msgstr "" + +msgid "Coderate HP" +msgstr "RýchlosÅ¥ HP" + +msgid "Coderate LP" +msgstr "RýchlosÅ¥ LP" + +msgid "Collection name" +msgstr "Názov zostavy" + +msgid "Collection settings" +msgstr "Nastavenia zostavy" + +#, fuzzy +msgid "Color format" +msgstr "Formát farby" + +msgid "Command execution..." +msgstr "Vykonávanie príkazu..." + +msgid "Command order" +msgstr "Poradie príkazov" + +msgid "Common Interface" +msgstr "Common Interface" + +#, fuzzy +msgid "Common Interface assignment" +msgstr "Priradenie CI" + +msgid "Communication" +msgstr "Komunikácia" + +#, fuzzy +msgid "Compact flash" +msgstr "Compact Flash" + +msgid "Complete" +msgstr "Kompletné" + +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "Komplexné (umožňuje mieÅ¡anie rôznych zvukových a obrazových formátov)" + +msgid "Composition of the recording filenames" +msgstr "Zloženie názvov súborov nahrávok" + +#, fuzzy +msgid "Configuration mode" +msgstr "Možnosti nastavenia" + +#, fuzzy, python-format +msgid "Configuration mode: %s" +msgstr "Možnosti nastavenia" + +#, fuzzy +msgid "Configuration..." +msgstr "Konfigurácia siete..." + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "" + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "" + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "" + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "" + +msgid "Configure how recording filenames are constructed." +msgstr "" + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +msgid "Configure interface" +msgstr "Nakonfigurujte rozhranie" + +msgid "Configure nameservers" +msgstr "Nastavte názvy serverov" + +msgid "Configure on which devices the background delete option should be used." +msgstr "" + +#, fuzzy +msgid "Configure remote control type" +msgstr "Typ rodiÄovskej zámky" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "" + +#, fuzzy +msgid "Configure the IP address." +msgstr "Nakonfigurujte rozhranie" + +msgid "Configure the aspect ratio of the screen." +msgstr "" + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +#, fuzzy +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "ÄŒinnosÅ¥ po zastavení filmu" + +#, fuzzy +msgid "Configure the behavior when movie playback is started." +msgstr "ÄŒinnosÅ¥ po spustení filmu" + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "" + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "" + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "" + +msgid "Configure the brightness level of the front panel display." +msgstr "" + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "" + +msgid "Configure the color of the teletext subtitles." +msgstr "" + +msgid "Configure the contrast level of the front panel display." +msgstr "" + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "" + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "" + +msgid "Configure the first audio language (highest priority)." +msgstr "" + +msgid "Configure the first subtitle language (highest priority)." +msgstr "" + +msgid "Configure the font size of the subtitles." +msgstr "" + +msgid "Configure the fourth audio language." +msgstr "" + +#, fuzzy +msgid "Configure the fourth subtitle language." +msgstr "prepnúť na nasledujúci jazyk podtitulkov" + +msgid "Configure the function of a long press on the power button." +msgstr "" + +msgid "Configure the function of a short press on the power button." +msgstr "" + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "" + +#, fuzzy +msgid "Configure the gateway." +msgstr "Nakonfigurujte rozhranie" + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "" + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "" + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "" + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "" + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "" + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "" + +msgid "Configure the latitude of your location." +msgstr "" + +msgid "Configure the longitude of your location." +msgstr "" + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "" + +#, fuzzy +msgid "Configure the nameserver (DNS)." +msgstr "Nastavte názvy serverov" + +#, fuzzy +msgid "Configure the netmask." +msgstr "Nakonfigurujte rozhranie" + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "" + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "" + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "" + +#, fuzzy +msgid "Configure the possible fast forward speeds." +msgstr "PoÄiatoÄná rýchlosÅ¥ prevíjania vpred" + +msgid "Configure the possible rewind speeds." +msgstr "" + +msgid "Configure the primary EPG language." +msgstr "" + +msgid "Configure the refresh rate of the screen." +msgstr "" + +msgid "Configure the screen resolution in PC output mode." +msgstr "" + +msgid "Configure the second audio language." +msgstr "" + +#, fuzzy +msgid "Configure the second subtitle language." +msgstr "prepnúť na nasledujúci jazyk podtitulkov" + +msgid "Configure the secondary EPG language." +msgstr "" + +msgid "Configure the sharpness of the video scaling." +msgstr "" + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "" + +#, fuzzy +msgid "Configure the slow motion speeds." +msgstr "Rýchlosti Äasovej lupy" + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "" + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "" + +msgid "Configure the third audio language." +msgstr "" + +#, fuzzy +msgid "Configure the third subtitle language." +msgstr "prepnúť na nasledujúci jazyk podtitulkov" + +msgid "Configure the transparency of the OSD." +msgstr "" + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "" + +#, fuzzy +msgid "Configure the tuner mode." +msgstr "Možnosti nastavenia" + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "" + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "" + +msgid "Configure the video output mode (or resolution)." +msgstr "" + +msgid "Configure the way in which the receiver changes channels." +msgstr "" + +msgid "Configure where completed timers show up in the timer list." +msgstr "" + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "" + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "" + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "" + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "" + +msgid "Configure which color format should be used on the SCART output." +msgstr "" + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "" + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "" + +msgid "Configure your internal LAN" +msgstr "Nakonfigurujte internú LAN" + +msgid "Configure your network again" +msgstr "Znova nakonfigurujte sieÅ¥" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "" + +msgid "Configure your wireless LAN again" +msgstr "Znova nakonfigurujte bezdrôtovú sieÅ¥" + +msgid "Configures which video output connector will be used." +msgstr "" + +msgid "Configuring" +msgstr "Konfigurujem" + +msgid "Conflicting timer" +msgstr "ÄŒasovanie sa prekrýva" + +msgid "Connect" +msgstr "PripojiÅ¥" + +#, fuzzy +msgid "Connect to a wireless network" +msgstr "PripojiÅ¥ k bezdrôtovej sieti" + +msgid "Connected satellites" +msgstr "" + +msgid "Connected to" +msgstr "Pripojené k " + +msgid "Connected!" +msgstr "Pripojené!" + +msgid "Constellation" +msgstr "Zostava" + +msgid "Content does not fit on DVD!" +msgstr "Obsah sa nezmestí na DVD!" + +msgid "Continue" +msgstr "PokraÄovaÅ¥" + +msgid "Continue in background" +msgstr "PokraÄovaÅ¥ v pozadí" + +#, fuzzy +msgid "Continue playback" +msgstr "PokraÄovaÅ¥ v prehrávaní" + +msgid "Continue playing" +msgstr "PokraÄovaÅ¥ v prehrávaní" + +msgid "Continues play (loop)" +msgstr "" + +msgid "Contrast" +msgstr "Kontrast" + +msgid "Convert ext3 filesystem to ext4" +msgstr "" + +msgid "Convert ext3 to ext4" +msgstr "" + +msgid "Converting ext3 to ext4..." +msgstr "" + +msgid "Copy" +msgstr "" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "" + +msgid "Could not find installed channel list." +msgstr "" + +#, fuzzy +msgid "Could not load medium! No disc inserted?" +msgstr "Nemôžem použiÅ¥ médium. Je vložený disk?" + +msgid "Could not open Picture in Picture" +msgstr "Nedá sa otvoriÅ¥ obraz v obraze" + +#, fuzzy, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "Nedalo sa nahrávaÅ¥ - prekrýva sa Äasovanie %s" + +#, fuzzy, python-format +msgid "Could not record due to invalid service %s" +msgstr "Nedalo sa nahraÅ¥ pre neplatnú stanicu %s" + +msgid "Create DVD-ISO" +msgstr "VytvoriÅ¥ disk DVD-ISO" + +msgid "Create more detailed crash log" +msgstr "" + +#, python-format +msgid "Creating directory %s failed." +msgstr "Nepodarilo sa vytvoriÅ¥ adresár %s." + +#, fuzzy +msgid "Creating filesystem" +msgstr "Kontrolujem systém súborov..." + +msgid "Creating partition" +msgstr "" + +msgid "Croatian" +msgstr "ChorvátÄina" + +msgid "Current CEC address" +msgstr "" + +msgid "Current device: " +msgstr "Aktuálne zariadenie:" + +msgid "Current event EPG" +msgstr "" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +msgid "Current settings:" +msgstr "Aktuálne nastavenia:" + +#, fuzzy +msgid "Current transponder" +msgstr "Aktuálny transpondér" + +msgid "Current value: " +msgstr "Aktuálna hodnota:" + +msgid "Current version:" +msgstr "Aktuálna verzia:" + +msgid "Currently installed image" +msgstr "Aktuálne nainÅ¡talovaný image" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +#, fuzzy +msgid "Custom skip time for '1'/'3' buttons" +msgstr "Vlastný posun Äasu pre tlaÄidlá 1 a 3" + +#, fuzzy +msgid "Custom skip time for '4'/'6' buttons" +msgstr "Vlastný posun Äasu pre tlaÄidlá 4 a 6" + +#, fuzzy +msgid "Custom skip time for '7'/'9' buttons" +msgstr "Vlastný posun Äasu pre tlaÄidlá 7 a 9" + +msgid "Customize" +msgstr "UpraviÅ¥" + +msgid "Customize channel list cursor behavior" +msgstr "" + +msgid "Cut" +msgstr "Strih" + +msgid "Cutlist editor..." +msgstr "Editor strihov..." + +msgid "Czech" +msgstr "ÄŒeÅ¡tina" + +msgid "D" +msgstr "D" + +msgid "DHCP" +msgstr "DHCP" + +#, fuzzy +msgid "DMM advanced" +msgstr "rozšírené" + +msgid "DMM normal" +msgstr "" + +msgid "DUAL LAYER DVD" +msgstr "DVOJVRSTVOVÉ DVD" + +msgid "DVB subtitle black transparency" +msgstr "" + +msgid "DVB-C" +msgstr "" + +msgid "DVB-C ANNEX C" +msgstr "" + +msgid "DVB-S" +msgstr "DVB-S" + +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "" + +msgid "DVB-T2" +msgstr "" + +msgid "DVD data format" +msgstr "" + +#, fuzzy +msgid "DVD file browser" +msgstr "PrehliadaÄ súborov DVD" + +msgid "DVD media toolbox" +msgstr "Nástroje pre DVD" + +#, fuzzy +msgid "DVD player" +msgstr "PrehrávaÄ DVD" + +#, fuzzy +msgid "DVD titlelist" +msgstr "Zoznam titulov DVD" + +msgid "Danish" +msgstr "DánÄina" + +msgid "Date" +msgstr "Dátum" + +#, fuzzy +msgid "Date/time input" +msgstr "Nastavenie dátumu a Äasu" + +#, fuzzy +msgid "Deep standby" +msgstr "Vypnúť" + +msgid "Default" +msgstr "Predvolené" + +msgid "Default movie location" +msgstr "Predvolené umiestnenie filmov" + +#, fuzzy +msgid "Default settings" +msgstr "Predvolené nastavenia" + +msgid "Delay before key repeat starts:" +msgstr "" + +msgid "Delay for external subtitles" +msgstr "" + +msgid "Delete" +msgstr "VymazaÅ¥" + +msgid "Delete entry" +msgstr "VymazaÅ¥ zadanie" + +msgid "Delete failed!" +msgstr "Vymazanie zlyhalo!" + +#, fuzzy +msgid "Delete file" +msgstr "zmazaÅ¥ súbor" + +#, fuzzy +msgid "Delete playlist entry" +msgstr "zmazaÅ¥ položku zoznamu prehrávok" + +#, fuzzy +msgid "Delete saved playlist" +msgstr "zmazaÅ¥ uložený zoznam prehrávok" + +msgid "Delete timer" +msgstr "" + +#, fuzzy +msgid "Delete..." +msgstr "zmazaÅ¥..." + +msgid "Deleted" +msgstr "" + +msgid "Deleted items" +msgstr "" + +msgid "Depth" +msgstr "" + +msgid "Descramble http streams" +msgstr "" + +msgid "Description" +msgstr "Opis" + +msgid "Deselect" +msgstr "ZruÅ¡iÅ¥ výber" + +msgid "Details for plugin: " +msgstr "Údaje o module:" + +msgid "Detected HDD:" +msgstr "Zistený pevný disk:" + +msgid "Detected NIMs:" +msgstr "Zistené tunery:" + +msgid "Devicename:" +msgstr "" + +msgid "Devide" +msgstr "" + +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +msgid "DiSEqC mode" +msgstr "Režim DiSEqC" + +#, fuzzy, python-format +msgid "DiSEqC port %s: %s" +msgstr "Opakovania DiSEqC" + +#, fuzzy +msgid "DiSEqC-tester settings" +msgstr "Nastavenia testovaÄa DiSEqC" + +msgid "Dialing:" +msgstr "VytáÄam:" + +msgid "Digital contour removal" +msgstr "Odstránenie digitálnych obrysov" + +msgid "Direct playback of linked titles without menu" +msgstr "Priame prehrávanie prepojených titulov bez menu" + +msgid "Directory" +msgstr "" + +#, fuzzy, python-format +msgid "Directory %s does not exist." +msgstr "Adresár %s neexistuje." + +#, python-format +msgid "Directory %s nonexistent." +msgstr "" + +msgid "Directory browser" +msgstr "PrehľadávaÄ adresárov" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "" + +#, fuzzy, python-format +msgid "Directory contains %s and %s." +msgstr "Adresár %s neexistuje." + +msgid "Disable" +msgstr "Vypnúť" + +msgid "Disable Picture in Picture" +msgstr "Vypnúť obraz v obraze" + +msgid "Disable background scanning" +msgstr "" + +msgid "Disable timer" +msgstr "" + +msgid "Disabled" +msgstr "Vypnuté" + +msgid "Disconnect" +msgstr "OdpojiÅ¥" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "" + +msgid "Display 16:9 content as" +msgstr "Obraz 16:9 zobraziÅ¥ ako" + +msgid "Display 4:3 content as" +msgstr "Obraz 4:3 zobraziÅ¥ ako" + +msgid "Display >16:9 content as" +msgstr "Obraz >16:9 zobraziÅ¥ ako" + +#, fuzzy +msgid "Display and userinterface" +msgstr "Displej a užívateľské rozhranie" + +msgid "Display message before playing next movie" +msgstr "" + +#, fuzzy +msgid "Display setup" +msgstr "Nastavenie displeja" + +#, fuzzy +msgid "Do not change" +msgstr "nemeniÅ¥" + +#, fuzzy +msgid "Do not record" +msgstr "nenahrávaÅ¥" + +#, fuzzy +msgid "Do nothing" +msgstr "niÄ nerobiÅ¥" + +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Naozaj chcete skontrolovaÅ¥ systém súborov?\n" +"Môže to trvaÅ¥ dosÅ¥ dlho!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" + +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Naozaj chcete zmazaÅ¥ %s?" + +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"Naozaj chcete stiahnuÅ¥\n" +"modul \"%s\"?" + +msgid "Do you really want to exit?" +msgstr "Naozaj chcete skonÄiÅ¥?" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" + +#, fuzzy, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"Naozaj chcete stiahnuÅ¥\n" +"modul \"%s\"?" + +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Naozaj chcete z disku odstrániÅ¥ adresár %s?" + +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Naozaj chcete odstrániÅ¥ záložku %s?" + +msgid "Do you want this?" +msgstr "" + +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Chcete túto zostavu napáliÅ¥ na DVD?" + +msgid "Do you want to do a service scan?" +msgstr "Chcete vyhľadaÅ¥ stanice?" + +msgid "Do you want to do another manual service scan?" +msgstr "Chcete urobiÅ¥ ÄalÅ¡ie ruÄné vyhľadávanie staníc?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "Chcete stiahnuÅ¥ image na %s?" + +#, fuzzy +msgid "Do you want to install a channel list?" +msgstr "Chcete nainÅ¡talovaÅ¥ balíÄek:\n" + +msgid "Do you want to install the package:\n" +msgstr "Chcete nainÅ¡talovaÅ¥ balíÄek:\n" + +msgid "Do you want to play DVD in drive?" +msgstr "Chcete prehraÅ¥ DVD v mechanike?" + +msgid "Do you want to preview this DVD before burning?" +msgstr "Chcete si toto DVD prezrieÅ¥ pred napálením?" + +msgid "Do you want to reboot your receiver?" +msgstr "" + +msgid "Do you want to remove the package:\n" +msgstr "Chcete odstrániÅ¥ balíÄek:\n" + +msgid "Do you want to restore your settings?" +msgstr "Chcete obnoviÅ¥ nastavenia?" + +msgid "Do you want to resume this playback?" +msgstr "Chcete pokraÄovaÅ¥ v prehrávaní?" + +#, fuzzy, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Chcete stiahnuÅ¥ image na %s?" + +msgid "Do you want to update your receiver?" +msgstr "" + +msgid "Do you want to upgrade the package:\n" +msgstr "Chcete aktualizovaÅ¥ balíÄek:\n" + +msgid "Don't stop current event but disable coming events" +msgstr "NezastaviÅ¥ aktuálny záznam, ale vypnúť nasledujúce záznamy." + +#, fuzzy, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "Hotovo - %d nainÅ¡talovaných, aktualizovaných alebo odstránených balíÄkov s %d chybami" +msgstr[1] "Hotovo - %d nainÅ¡talovaných, aktualizovaných alebo odstránených balíÄkov s %d chybami" +msgstr[2] "Hotovo - %d nainÅ¡talovaných, aktualizovaných alebo odstránených balíÄkov s %d chybami" + +msgid "Download" +msgstr "StiahnuÅ¥" + +#, fuzzy, python-format +msgid "Download %s from server" +msgstr "StiahnuÅ¥ %s zo servera" + +msgid "Download .NFI-files for USB-flasher" +msgstr "StiahnuÅ¥ súbory .NFI pre USB-Flasher" + +#, fuzzy +msgid "Download plugins" +msgstr "StiahnuÅ¥ prídavné moduly" + +msgid "Downloadable new plugins" +msgstr "Nové moduly na stiahnutie" + +msgid "Downloadable plugins" +msgstr "Moduly na stiahnutie" + +msgid "Downloading" +msgstr "SÅ¥ahovanie" + +msgid "Downloading plugin information. Please wait..." +msgstr "SÅ¥ahujem informácie o moduloch. ÄŒakajte..." + +msgid "Dutch" +msgstr "HolandÄina" + +msgid "Dynamic contrast" +msgstr "Dynamický kontrast" + +msgid "E" +msgstr "V" + +msgid "EPG" +msgstr "" + +msgid "EPG language selection 1" +msgstr "" + +msgid "EPG language selection 2" +msgstr "" + +#, fuzzy +msgid "EPG selection" +msgstr "Voľba EPG" + +msgid "EPG settings" +msgstr "" + +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "CHYBA - zlyhalo vyhľadávanie (%s)!" + +msgid "East" +msgstr "východne" + +msgid "East limit set" +msgstr "" + +msgid "Edit" +msgstr "UpraviÅ¥" + +msgid "Edit DNS" +msgstr "UpraviÅ¥ DNS" + +msgid "Edit bouquets list" +msgstr "UpraviÅ¥ zoznam buketov" + +msgid "Edit chapters of current title" +msgstr "UpraviÅ¥ kapitoly aktuálneho titulu" + +msgid "Edit services list" +msgstr "UpraviÅ¥ zoznam staníc" + +msgid "Edit settings" +msgstr "UpraviÅ¥ nastavenia" + +#, fuzzy +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "zatvoriÅ¥ nastavovanie DNS" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "" + +msgid "Edit timer" +msgstr "" + +msgid "Edit title" +msgstr "UpraviÅ¥ titul" + +msgid "Edit upgrade source url." +msgstr "UpraviÅ¥ URL zdroja aktualizácie." + +msgid "Education/Science/..." +msgstr "" + +msgid "Electronic Program Guide" +msgstr "Elektronický programový sprievodca" + +msgid "Enable" +msgstr "Zapnúť" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +msgid "Enable 5V for active antenna" +msgstr "Zapnúť 5 V pre aktívnu anténu" + +msgid "Enable EIT EPG" +msgstr "" + +msgid "Enable MHW EPG" +msgstr "" + +msgid "Enable Netmed EPG" +msgstr "" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +#, fuzzy +msgid "Enable bouquet selection in multi-EPG" +msgstr "zapnúť úpravu buketu" + +msgid "Enable freesat EPG" +msgstr "" + +msgid "Enable multiple bouquets" +msgstr "Zapnúť viacnásobné bukety" + +msgid "Enable parental control" +msgstr "Zapnúť rodiÄovskú zámku" + +msgid "Enable teletext caching" +msgstr "" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +msgid "Enabled" +msgstr "Zapnuté" + +msgid "Encrypted: " +msgstr "Å ifrované:" + +msgid "Encryption" +msgstr "Å ifrovanie" + +#, fuzzy +msgid "Encryption key" +msgstr "Å ifrovací kÄ¾ÃºÄ WLAN" + +#, fuzzy +msgid "Encryption key type" +msgstr "Druh Å¡ifrovacieho kľúÄa" + +msgid "Encryption:" +msgstr "Å ifrovanie:" + +msgid "End time" +msgstr "ÄŒas ukonÄenia" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +msgid "English" +msgstr "AngliÄtina" + +msgid "Enigma2 skin selector" +msgstr "" + +msgid "Enter main menu..." +msgstr "OtvoriÅ¥ hlavné menu..." + +msgid "Enter pin code" +msgstr "Zadajte kód PIN" + +msgid "Enter the service pin" +msgstr "Zadajte PIN stanice" + +msgid "Equal to" +msgstr "" + +msgid "Error" +msgstr "Chyba" + +msgid "Error code" +msgstr "" + +msgid "Error executing plugin" +msgstr "Chyba pri spustení modulu" + +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Chyba: %s\n" +"ZopakovaÅ¥?" + +msgid "Estonian" +msgstr "EstónÄina" + +msgid "Ethernet network interface" +msgstr "Rozhranie siete Eternet" + +msgid "Event font size (relative to skin size)" +msgstr "" + +#, fuzzy +msgid "Event view" +msgstr "Prehľad programov" + +#, fuzzy +msgid "Event view menu" +msgstr "Prehľad programov" + +msgid "Everywhere" +msgstr "" + +msgid "Exceeds dual layer medium!" +msgstr "Presahuje kapacitu dvojvrstvového DVD!" + +msgid "Execution finished!!" +msgstr "SkonÄené!!" + +#, fuzzy +msgid "Execution progress:" +msgstr "Priebeh vykonávania:" + +msgid "Exif" +msgstr "Exif" + +msgid "Exit" +msgstr "UkonÄiÅ¥" + +msgid "Exit EPG" +msgstr "" + +msgid "Exit editor" +msgstr "UkonÄiÅ¥ editor" + +msgid "Exit input device selection." +msgstr "UkonÄiÅ¥ výber vstupného zariadenia." + +msgid "Exit media player?" +msgstr "" + +#, fuzzy +msgid "Exit mediaplayer" +msgstr "zatvoriÅ¥ prehrávaÄ médií" + +#, fuzzy +msgid "Exit movie list" +msgstr "zatvoriÅ¥ zoznam filmov" + +#, fuzzy +msgid "Exit movie player?" +msgstr "zatvoriÅ¥ prehrávaÄ médií" + +#, fuzzy +msgid "Exit nameserver configuration" +msgstr "zatvoriÅ¥ nastavovanie DNS" + +#, fuzzy +msgid "Exit network interface list" +msgstr "zatvoriÅ¥ zoznam sieÅ¥ových rozhraní" + +msgid "Exit network wizard" +msgstr "UkonÄiÅ¥ sprievodcu sieÅ¥ou" + +msgid "Exit the wizard" +msgstr "UkonÄiÅ¥ sprievodcu" + +msgid "Expert" +msgstr "expertný" + +msgid "Extend sleeptimer 15 minutes" +msgstr "" + +msgid "Extended Software" +msgstr "Rozšírený softvér" + +msgid "Extended Software Plugin" +msgstr "Modul rozšíreného softvéru" + +#, fuzzy +msgid "Extended network setup plugin..." +msgstr "Modul rozšíreného nastavenia siete..." + +#, fuzzy +msgid "Extended setup..." +msgstr "Rozšírené nastavenie..." + +msgid "Extensions" +msgstr "Rozšírenia" + +msgid "Extensions management" +msgstr "Správa rozšírení" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "" + +msgid "Extra motor options" +msgstr "" + +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "" + +msgid "Factory reset" +msgstr "Továrenské nastavenia" + +msgid "Failed" +msgstr "Zlyhalo" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "" + +#, python-format +msgid "Fan %d" +msgstr "Ventilítor %d" + +#, python-format +msgid "Fan %d PWM" +msgstr "PWM ventilátora %d" + +#, fuzzy, python-format +msgid "Fan %d voltage" +msgstr "Napätie na ventilátore %d" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +msgid "Fast" +msgstr "rýchlo" + +msgid "Fast DiSEqC" +msgstr "Rýchly DiSEqC" + +msgid "Fast Scan" +msgstr "" + +msgid "Fast epoch" +msgstr "rýchla doba" + +#, fuzzy +msgid "Fast forward speeds" +msgstr "Rýchlosti prevíjania vpred" + +msgid "Favourites" +msgstr "Obľúbené" + +msgid "File appears to be busy.\n" +msgstr "" + +#, fuzzy +msgid "Filesystem check" +msgstr "Kontrola systému súborov" + +msgid "Final position at" +msgstr "" + +msgid "Final position at index" +msgstr "" + +msgid "Fine movement" +msgstr "" + +msgid "Finetune" +msgstr "Jemné nastavenie" + +msgid "Finished" +msgstr "SkonÄené" + +msgid "Finished configuring your network" +msgstr "Nastavenie siete je skonÄené" + +msgid "Finished restarting your network" +msgstr "ReÅ¡tartovanie siete je skonÄené" + +msgid "Finnish" +msgstr "FínÄina" + +msgid "Fixed" +msgstr "" + +msgid "Flash" +msgstr "FleÅ¡ovaÅ¥" + +msgid "Flashing failed" +msgstr "FleÅ¡ovanie zlyhalo" + +msgid "Following tasks will be done after you press OK!" +msgstr "Po stlaÄení OK sa vykonajú tieto úlohy." + +msgid "Format" +msgstr "Formát" + +msgid "Forward volume keys" +msgstr "" + +msgid "Frame size in full view" +msgstr "VeľkosÅ¥ obrazu pri plnom zobrazení" + +msgid "French" +msgstr "FrancúzÅ¡tina" + +msgid "Frequency" +msgstr "KmitoÄet" + +msgid "Frequency bands" +msgstr "KmitoÄtové pásma" + +msgid "Frequency scan step size(khz)" +msgstr "KmitoÄtový krok pri vyhľadávaní (kHz)" + +msgid "Frequency steps" +msgstr "KmitoÄtové kroky" + +msgid "Frequency:" +msgstr "" + +msgid "Fri" +msgstr "Pi" + +msgid "Friday" +msgstr "Piatok" + +msgid "From :" +msgstr "" + +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Verzia frontprocesora: %d" + +msgid "Full transparency" +msgstr "" + +msgid "Fulview resulution" +msgstr "" + +msgid "Function of OK button" +msgstr "" + +msgid "Further Options" +msgstr "" + +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"Pre použitie nového vzhľadu sa musí reÅ¡tartovaÅ¥ GUI\n" +"Chcete teraz reÅ¡tartovaÅ¥ GUI?" + +msgid "Gateway" +msgstr "Brána" + +#, fuzzy +msgid "General AC3 delay" +msgstr "Oneskorenie AC3" + +#, fuzzy +msgid "General PCM delay" +msgstr "Oneskorenie PCM" + +msgid "Genre" +msgstr "Žáner" + +msgid "German" +msgstr "NemÄina" + +msgid "Get latest experimental image" +msgstr "ZískaÅ¥ najnovší experimentálny image" + +msgid "Get latest release image" +msgstr "ZískaÅ¥ najnovší hotový image" + +msgid "Getting plugin information. Please wait..." +msgstr "Získavam informácie o module. ÄŒakajte..." + +msgid "Go down the list" +msgstr "" + +msgid "Go to first movie or last item" +msgstr "" + +msgid "Go to first movie or top of list" +msgstr "" + +#, fuzzy +msgid "Go to first service" +msgstr "nahor na prvú položku" + +#, fuzzy +msgid "Go to last service" +msgstr "OchrániÅ¥ stanice" + +#, fuzzy +msgid "Go to next event" +msgstr "nadol na nasledujúcu položku" + +#, fuzzy +msgid "Go to next page of service" +msgstr "Prepnúť na nasledujúci podkanál" + +#, fuzzy +msgid "Go to previous event" +msgstr "nahor na predchádzajúcu položku" + +#, fuzzy +msgid "Go to previous page of service" +msgstr "Návrat na predchádzajúcu stanicu" + +msgid "Go up the list" +msgstr "" + +msgid "Goto" +msgstr "" + +msgid "Goto 0" +msgstr "OtoÄiÅ¥ na 0" + +msgid "Goto :" +msgstr "" + +msgid "Goto X" +msgstr "" + +msgid "Goto index position" +msgstr "" + +msgid "Goto next day of events" +msgstr "" + +msgid "Goto next page of events" +msgstr "" + +msgid "Goto position" +msgstr "OtoÄiÅ¥ do pozície" + +msgid "Goto previous day of events" +msgstr "" + +msgid "Goto previous page of events" +msgstr "" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "" + +msgid "GraphMultiEpg Settings" +msgstr "" + +msgid "Graphical Multi EPG" +msgstr "Grafický Multi EPG" + +msgid "Greek" +msgstr "GréÄtina" + +msgid "Green boost" +msgstr "ZosilniÅ¥ zelenú" + +msgid "Guard interval" +msgstr "Interval ochrany" + +msgid "HD list" +msgstr "" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "" + +msgid "Handle wakeup from TV" +msgstr "" + +#, fuzzy +msgid "Hard disk" +msgstr "Pevný disk" + +#, fuzzy +msgid "Hard disk setup" +msgstr "Nastavenie pevného disku" + +#, fuzzy +msgid "Hard disk standby after" +msgstr "UspaÅ¥ disk po" + +msgid "Harddisk" +msgstr "Pevný disk" + +msgid "Hardware: " +msgstr "" + +msgid "Hebrew" +msgstr "" + +msgid "Helps setting up your dish" +msgstr "" + +msgid "Hidden network" +msgstr "Skrytá sieÅ¥" + +msgid "Hide CI messages" +msgstr "" + +msgid "Hide channel list in radio mode" +msgstr "" + +msgid "Hide known extensions" +msgstr "" + +msgid "Hide number markers" +msgstr "" + +#, fuzzy +msgid "Hide player" +msgstr "skryÅ¥ prehrávaÄ" + +msgid "Hide zap errors" +msgstr "" + +msgid "Hierarchy info" +msgstr "" + +#, fuzzy +msgid "Hierarchy information" +msgstr "Hierarchické informácie" + +msgid "High bitrate support" +msgstr "Spracuje vysoký dátový tok" + +msgid "Hold screen" +msgstr "" + +msgid "Hold till locked" +msgstr "" + +msgid "Home" +msgstr "" + +msgid "Horizontal" +msgstr "Vodorovná" + +msgid "Horizontal turning speed" +msgstr "" + +msgid "How many minutes do you want to record?" +msgstr "Koľko minút chcete nahrávaÅ¥?" + +msgid "Hue" +msgstr "Odtieň" + +msgid "Hungarian" +msgstr "MaÄarÄina" + +#, fuzzy +msgid "IP address" +msgstr "Adresa IP" + +msgid "ISO file is too large for this filesystem!" +msgstr "Súbor ISO je pre tento súborový systém príliÅ¡ veľký!" + +msgid "ISO path" +msgstr "Cesta ISO" + +msgid "Icons" +msgstr "" + +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"Ak vidíte toto, nieÄo nie je v poriadku\n" +"s pripojením scart. Vráťte sa stlaÄením tlaÄidla OK." + +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"Ak máte na televízore zdôraznenie jasu alebo kontrastu, zruÅ¡te ho. Ak je v nastaveniach nieÄo ako „dynamický režim“, nastavte ho na Å¡tandardnú hodnotu. Podsvietenie nastavte na hodnotu, ktorá vám vyhovuje. Stiahnite kontrast televízora na najnižšiu hodnotu.\n" +"Potom nastavte jas na najnižšiu možnú hodnotu, ale tak, aby dva najtmavÅ¡ie odtiene sivej zostali rozlíšiteľné.\n" +"V tejto chvíli sa nestarajte o svetlé odtiene. Tie nastavíte v ÄalÅ¡om kroku.\n" +"Ak ste spokojní s výsledkom, stlaÄte tlaÄidlo OK." + +msgid "Image: " +msgstr "" + +#, fuzzy +msgid "Immediate shutdown" +msgstr "ihneÄ vypnúť" + +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "Aby sa mohol nahraÅ¥ naÄasovaný program, preplo sa na nahrávanú stanicu!\n" + +#, fuzzy +msgid "In progress" +msgstr "Prebieha" + +msgid "Inactivity Sleeptimer" +msgstr "" + +msgid "Include AIT in http streams" +msgstr "" + +msgid "Include ECM in http streams" +msgstr "" + +msgid "Include EIT in http streams" +msgstr "" + +msgid "Incorrect type service for PiP!" +msgstr "" + +msgid "Increased voltage" +msgstr "Zvýšené napätie" + +msgid "Index" +msgstr "Index" + +msgid "Index allocated:" +msgstr "" + +msgid "Info" +msgstr "InformaÄná liÅ¡ta" + +#, fuzzy +msgid "Info bar" +msgstr "InformaÄná liÅ¡ta" + +#, fuzzy +msgid "Info bar timeout" +msgstr "Doba zobrazovania informaÄnej liÅ¡ty" + +msgid "Infobar frontend data source" +msgstr "" + +msgid "Information" +msgstr "Informácie" + +msgid "Init" +msgstr "Inic." + +#, fuzzy +msgid "Initial fast forward speed" +msgstr "PoÄiatoÄná rýchlosÅ¥ prevíjania vpred" + +msgid "Initial location in new timers" +msgstr "Úvodné umiestnenie nových Äasových nahrávok" + +msgid "Initial lock ratio" +msgstr "" + +#, fuzzy +msgid "Initial rewind speed" +msgstr "PoÄiatoÄná rýchlosÅ¥ prevíjania vzad" + +msgid "Initial signal quality" +msgstr "" + +msgid "Initial signal quality:" +msgstr "" + +msgid "Initialization" +msgstr "Inicializácia" + +msgid "Initialize" +msgstr "InicializovaÅ¥" + +msgid "Initializing storage device..." +msgstr "" + +msgid "Input" +msgstr "Vstup" + +msgid "Input device setup" +msgstr "Nastavenie vstupného zariadenia" + +msgid "Input devices" +msgstr "Vstupné zariadenia" + +msgid "Install" +msgstr "InÅ¡talovaÅ¥" + +msgid "Install a new image with a USB stick" +msgstr "InÅ¡talovaÅ¥ nový image z kľúÄa USB" + +msgid "Install a new image with your web browser" +msgstr "InÅ¡talovaÅ¥ nový image cez webový prehliadaÄ" + +#, fuzzy +msgid "Install channel list" +msgstr "Nasledujúca stanica v histórii" + +msgid "Install extensions" +msgstr "" + +msgid "Install extensions." +msgstr "InÅ¡talovaÅ¥ rozšírenia." + +msgid "Install local extension" +msgstr "InÅ¡talovaÅ¥ miestne rozšírenie" + +msgid "Install picons on" +msgstr "" + +#, fuzzy +msgid "Install softcam" +msgstr "InÅ¡talujem softvér..." + +#, fuzzy +msgid "Installation has completed." +msgstr "InÅ¡talácia je skonÄená." + +#, fuzzy +msgid "Installation or removal has completed." +msgstr "InÅ¡talácia alebo odstránenie skonÄené." + +msgid "Installing" +msgstr "InÅ¡talujem" + +#, fuzzy +msgid "Installing software..." +msgstr "InÅ¡talujem softvér..." + +#, fuzzy +msgid "Instant recording location" +msgstr "Umiestnenie okamžitého záznamu" + +#, fuzzy +msgid "Instant recording..." +msgstr "Okamžité nahrávanie..." + +msgid "Interface: " +msgstr "Rozhranie:" + +msgid "Intermediate" +msgstr "stredný" + +#, fuzzy +msgid "Internal flash" +msgstr "Interná pamäť flash" + +msgid "Internal hdd only" +msgstr "" + +msgid "Interval between keys when repeating:" +msgstr "" + +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Zvolený neplatný adresár: %s" + +#, fuzzy +msgid "Invalid location" +msgstr "Neplatné umiestnenie" + +msgid "Invalid transponder data" +msgstr "" + +msgid "Inversion" +msgstr "Inverzia" + +msgid "Invert" +msgstr "" + +msgid "Ipkg" +msgstr "Ipkg" + +#, fuzzy +msgid "Is this setting ok?" +msgstr "PoužiÅ¥ toto nastavenie?" + +#, fuzzy +msgid "Is this video mode ok?" +msgstr "Je tento režim obrazu OK?" + +msgid "Italian" +msgstr "TalianÄina" + +msgid "Items per page " +msgstr "" + +msgid "Items per page for list screen" +msgstr "" + +#, fuzzy +msgid "Job overview" +msgstr "Prehľad úloh" + +msgid "Jump to beginning of list" +msgstr "" + +#, fuzzy +msgid "Jump to end of list" +msgstr "skok na koniec zoznamu" + +#, fuzzy +msgid "Jump to next marked position" +msgstr "skok na nasledujúce oznaÄené miesto" + +#, fuzzy +msgid "Jump to previous marked position" +msgstr "skok na predchádzajúce oznaÄené miesto" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +#, fuzzy +msgid "Just scale" +msgstr "Na celú obrazovku (bez pomeru strán)" + +msgid "Keep service" +msgstr "" + +#, fuzzy +msgid "Kernel version: " +msgstr "Nová verzia:" + +msgid "Keyboard" +msgstr "Klávesnica" + +#, fuzzy +msgid "Keyboard map" +msgstr "Rozloženie klávesov" + +#, fuzzy +msgid "Keyboard setup" +msgstr "Nastavenie klávesnice" + +#, fuzzy +msgid "LAN adapter" +msgstr "Adaptér LAN" + +msgid "LAN connection" +msgstr "Pripojenie LAN" + +msgid "LNB" +msgstr "LNB" + +msgid "Language" +msgstr "Jazyk" + +msgid "Language selection" +msgstr "Voľba jazyka" + +msgid "Last config" +msgstr "Posledné nastavenie" + +msgid "Last speed" +msgstr "Posledná rýchlosÅ¥" + +msgid "Last upgrade: " +msgstr "" + +msgid "Latest Commits" +msgstr "" + +msgid "Latitude" +msgstr "Zem. šírka" + +msgid "Latvian" +msgstr "LotyÅ¡Äina" + +#, fuzzy +msgid "Leave DVD player?" +msgstr "UkonÄiÅ¥ DVD prehrávaÄ?" + +msgid "Left" +msgstr "Doľava" + +msgid "Left from servicename" +msgstr "" + +msgid "Leisure hobbies" +msgstr "" + +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Letterbox" + +msgid "Letterbox zoom" +msgstr "" + +#, fuzzy +msgid "Limit character set for recording filenames" +msgstr "Obmedzená znaková sada pre názvy záznamov" + +msgid "Limit east" +msgstr "Východný limit" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "" + +msgid "Limit west" +msgstr "Západný limit" + +msgid "Limits cancelled" +msgstr "" + +msgid "Limits enabled" +msgstr "" + +msgid "Limits off" +msgstr "Vypnúť limity" + +msgid "Limits on" +msgstr "Zapnúť limity" + +#, fuzzy +msgid "Link quality:" +msgstr "Kvalita spojenia:" + +msgid "Link:" +msgstr "Spojenie:" + +msgid "Linked titles with a DVD menu" +msgstr "Tituly prepojené s menu DVD" + +#, fuzzy +msgid "List EPG functions..." +msgstr "Zoznam zobrazení EPG..." + +msgid "List available networks" +msgstr "Zoznam dostupných sietí" + +msgid "List mode" +msgstr "" + +#, fuzzy +msgid "List of storage devices" +msgstr "Zoznam záznamových zariadení" + +msgid "List type" +msgstr "" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, fuzzy +msgid "Listen to the radio..." +msgstr "PoÄúvaÅ¥ rádio..." + +msgid "Lists reloaded!" +msgstr "" + +msgid "Lithuanian" +msgstr "LitovÄina" + +msgid "Load" +msgstr "NatiahnuÅ¥" + +msgid "Load Length of Movies in Movielist" +msgstr "" + +#, fuzzy +msgid "Load length of movies in movie list" +msgstr "PrevziaÅ¥ dĺžku filmov do zoznamu filmov" + +#, fuzzy +msgid "Load playlist" +msgstr "otvoriÅ¥ zoznam prehrávok" + +#, fuzzy +msgid "Local network" +msgstr "Miestna sieÅ¥" + +msgid "Location" +msgstr "Umiestnenie" + +msgid "Location for instant recordings" +msgstr "Umiestnenie okamžitých záznamov" + +msgid "Lock ratio" +msgstr "" + +msgid "Lock:" +msgstr "Signál:" + +msgid "Log results to harddisk" +msgstr "ZaznamenaÅ¥ výsledky na pevný disk" + +msgid "Long filenames" +msgstr "Dlhé názvy súborov" + +#, fuzzy +msgid "Long key press" +msgstr "Dlhé stlaÄenie tlaÄidla" + +msgid "Longitude" +msgstr "Zem. dĺžka" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "" + +#, fuzzy +msgid "MMC card" +msgstr "Karta MMC" + +msgid "MORE" +msgstr "VIAC" + +msgid "Main menu" +msgstr "Hlavné menu" + +msgid "Maintain old EPG data for" +msgstr "" + +msgid "Make this mark an 'in' point" +msgstr "UrobiÅ¥ z tejto znaÄky vstupný bod („in“)" + +msgid "Make this mark an 'out' point" +msgstr "UrobiÅ¥ z tejto znaÄky výstupný bod („out“)" + +msgid "Make this mark just a mark" +msgstr "UrobiÅ¥ z tejto znaÄky len znaÄku." + +msgid "Manage extensions" +msgstr "SpravovaÅ¥ rozšírenia" + +msgid "Manage your receiver's software" +msgstr "SpravovaÅ¥ softvér ptijímaÄa" + +msgid "Manual" +msgstr "" + +msgid "Manual Scan" +msgstr "RuÄné vyhľadávanie" + +msgid "Manual configuration" +msgstr "RuÄná konfigurácia" + +#, fuzzy +msgid "Manual scan" +msgstr "RuÄné vyhľadávanie" + +msgid "Manual transponder" +msgstr "Transpondér ruÄne" + +msgid "Manufacturer" +msgstr "Výrobca" + +#, fuzzy +msgid "Margin after recording (minutes)" +msgstr "Rezerva pred zaÄiatkom programu (min)" + +#, fuzzy +msgid "Margin before recording (minutes)" +msgstr "Rezerva pred zaÄiatkom programu (min)" + +msgid "Max memory positions" +msgstr "" + +#, fuzzy +msgid "Max. bitrate: " +msgstr "Max. dátový tok:" + +msgid "Media player" +msgstr "PrehrávaÄ médií" + +#, fuzzy +msgid "Media scanner" +msgstr "PrehrávaÄ médií" + +msgid "Medium is not a writeable DVD!" +msgstr "Médium nie je zapisovateľný disk DVD!" + +msgid "Medium is not empty!" +msgstr "Médium nie je prázdne!" + +msgid "Memory" +msgstr "" + +msgid "Memory index" +msgstr "" + +msgid "Menu" +msgstr "Menu" + +msgid "Message" +msgstr "Správa" + +msgid "Message..." +msgstr "Správa..." + +#, python-format +msgid "Minimum age %d years" +msgstr "" + +#, fuzzy +msgid "Minimum send interval" +msgstr "Interval ochrany" + +msgid "Missing " +msgstr "" + +#, fuzzy +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Režim" + +#, fuzzy +msgctxt "Video output mode" +msgid "Mode" +msgstr "Režim" + +msgid "Model: " +msgstr "Model: " + +msgid "Modulation" +msgstr "Modulácia" + +msgid "Modulator" +msgstr "Modulátor" + +msgid "Mon" +msgstr "Po" + +msgid "Mon-Fri" +msgstr "Po-Pi" + +msgid "Monday" +msgstr "Pondelok" + +msgid "Mosquito noise reduction" +msgstr "PotlaÄenie Å¡umu na hranách" + +msgid "Mount" +msgstr "" + +msgid "Move" +msgstr "" + +#, fuzzy +msgid "Move PiP to main picture" +msgstr "presunúť PiP do hlavného obrazu" + +msgid "Move Picture in Picture" +msgstr "PremiestniÅ¥ obraz v obraze" + +msgid "Move east" +msgstr "PootoÄiÅ¥ východne" + +msgid "Move to other directory" +msgstr "" + +msgid "Move to position X" +msgstr "" + +msgid "Move west" +msgstr "PootoÄiÅ¥ západne" + +msgid "Moved to position 0" +msgstr "" + +msgid "Moved to position at index" +msgstr "" + +msgid "Movement" +msgstr "" + +msgid "Movie List Configuration" +msgstr "" + +msgid "Movie Selection" +msgstr "" + +#, fuzzy +msgid "Movie list configuration" +msgstr "RuÄná konfigurácia" + +msgid "Movie location" +msgstr "Umiestenie filmu" + +#, fuzzy +msgid "Movie selection" +msgstr "Umiestenie filmu" + +msgid "Movie/Drama" +msgstr "" + +msgid "Movielist menu" +msgstr "Menu filmov" + +msgid "Moving" +msgstr "" + +msgid "Moving east ..." +msgstr "" + +msgid "Moving to position" +msgstr "" + +msgid "Moving west ..." +msgstr "" + +msgid "Multi EPG" +msgstr "Multi EPG" + +msgid "Multi-EPG bouquet selection" +msgstr "" + +msgid "Multimedia" +msgstr "Multimédiá" + +msgid "Multiple service support" +msgstr "Dekóduje viac staníc" + +msgid "Multiplex" +msgstr "" + +msgid "Multisat" +msgstr "viac satelitov" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "" + +msgid "Mute" +msgstr "UmlÄovaÄ" + +msgid "N/A" +msgstr "Nie je k dispozícii" + +msgid "NEXT" +msgstr "NASLED." + +#, fuzzy +msgid "NFI image flashing" +msgstr "FleÅ¡ovanie image NFI" + +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "FleÅ¡ovanie image .NFI skonÄené. StlaÄením žltého tlaÄidla reÅ¡tartujte." + +msgid "NIM" +msgstr "Tuner" + +msgid "NOW" +msgstr "TERAZ" + +msgid "NTSC" +msgstr "NTSC" + +msgid "Name" +msgstr "Názov" + +msgid "Nameserver" +msgstr "Nameserver" + +#, python-format +msgid "Nameserver %d" +msgstr "DNS (nameserver) %d" + +msgid "Nameserver settings" +msgstr "Nastavenie DNS" + +#, fuzzy +msgid "Nameserver setup" +msgstr "Nastavenie DNS" + +msgid "Namespace" +msgstr "" + +msgid "Netmask" +msgstr "Maska siete" + +msgid "Network" +msgstr "SieÅ¥" + +msgid "Network ID" +msgstr "" + +#, fuzzy +msgid "Network configuration..." +msgstr "Konfigurácia siete..." + +#, fuzzy +msgid "Network mount" +msgstr "SieÅ¥ový prístup" + +#, fuzzy, python-format +msgid "Network mount %s" +msgstr "SieÅ¥ový prístup" + +#, fuzzy +msgid "Network name (SSID)" +msgstr "Názov siete (SSID)" + +msgid "Network scan" +msgstr "VyhľadaÅ¥ sieÅ¥" + +msgid "Network setup" +msgstr "Nastavenie siete" + +msgid "Network test" +msgstr "Test siete" + +msgid "Network test..." +msgstr "Test siete..." + +msgid "Network test: " +msgstr "Test siete:" + +#, fuzzy +msgid "Network wizard" +msgstr "Sprievodca sieÅ¥ou" + +msgid "Network:" +msgstr "SieÅ¥:" + +msgid "New" +msgstr "Nové" + +msgid "New PIN" +msgstr "Nový PIN" + +msgid "New version:" +msgstr "Nová verzia:" + +msgid "News Current Affairs" +msgstr "" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "" + +msgid "No" +msgstr "Nie" + +msgid "No (supported) DVDROM found!" +msgstr "Nenájdený (podporovaný) DVDROM!" + +msgid "No Connection" +msgstr "Nie je spojenie" + +msgid "No HDD found or HDD not initialized!" +msgstr "Pevný disk nebol nájdený alebo nebol inicializovaný." + +msgid "No backup needed" +msgstr "Nie je treba zálohovaÅ¥" + +msgid "No cable tuner found!" +msgstr "" + +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Žiadne dáta na transpondéri!\n" +"(ÄŒas vyprÅ¡al pri Äítaní PAT)" + +msgid "No delay" +msgstr "" + +msgid "No description available." +msgstr "Opis nie je k dispozícii." + +msgid "No details for this image file" +msgstr "Žiadne podrobnosti k tomuto súboru image" + +msgid "No displayable files on this medium found!" +msgstr "Na tomto médiu sa nenaÅ¡li žiadne zobraziteľné súbory!" + +msgid "No event info found, recording indefinitely." +msgstr "Žiadne informácie EPG, spúšťam nekoneÄné nahrávanie." + +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "EÅ¡te nie je možné prevíjanie, ale pomocou Äíselných tlaÄidiel môžete skoÄiÅ¥ dopredu alebo dozadu." + +msgid "No free index available" +msgstr "" + +msgid "No free tuner!" +msgstr "Nie je voľný tuner!" + +msgid "No network connection available." +msgstr "Nie je dostupné sieÅ¥ové pripojenie." + +msgid "No networks found" +msgstr "Nenájdená žiadna sieÅ¥" + +msgid "No new plugins found" +msgstr "" + +msgid "No positioner capable frontend found." +msgstr "Nebol nájdený tuner vhodný pre motor." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "" + +#, fuzzy +msgid "No services/providers selected" +msgstr "Žiadne služby a poskytovatelia nie sú zvolené" + +#, fuzzy +msgid "No standby" +msgstr "žiadny pohotovostný režim" + +msgid "No suitable sat tuner found!" +msgstr "" + +msgid "No tags are set on these movies." +msgstr "Na týchto filmoch nie sú nastavené žiadne Å¡títky." + +#, fuzzy +msgid "No timeout" +msgstr "žiadny Äasový limit" + +msgid "No to all" +msgstr "Nie pre vÅ¡etky" + +msgid "No transparency" +msgstr "" + +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "Žiadny tuner nie je nastavený na použitie motora DiSEqC." + +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Žiadny tuner nie je zapnutý!\n" +"Nastavte tuner pred spustením vyhľadávania staníc." + +#, fuzzy +msgid "No updates available" +msgstr " aktualizácie k dispozícii." + +msgid "No updates available. Please try again later." +msgstr "" + +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Nenájdený platný PIN stanice!\n" +"Chcete teraz zmeniÅ¥ PIN stanice?\n" +"KeÄ zvolíte „Nie“, ochrana stanice zostane vypnutá!" + +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Nenájdený platný PIN nastavení!\n" +"Chcete teraz zmeniÅ¥ PIN nastavení?\n" +"KeÄ zvolíte „Nie“, ochrana nastavení zostane vypnutá!" + +msgid "No wireless networks found! Searching..." +msgstr "Nenájdená bezdrôtová sieÅ¥. Hľadám ..." + +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"Nenájdená funkÄný miestny sieÅ¥ový adaptér.\n" +"Skontrolujte, Äi máte pripojený sieÅ¥ový kábel a Äi máte sieÅ¥ správne nastavenú." + +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"Nenájdený funkÄný bezdrôtový sieÅ¥ový adaptér.\n" +"Skontrolujte, Äi máte pripojené kompatibilné zariadenie WLAN a Äi máte sieÅ¥ správne nastavenú." + +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"Nenájdené funkÄné bezdrôtové sieÅ¥ové rozhranie.\n" +"Skontrolujte, Äi máte pripojené kompatibilné zariadenie WLAN alebo zapnite miestne sieÅ¥ové rozhranie." + +msgid "No, but restart from begin" +msgstr "Nie, ale zaÄaÅ¥ od zaÄiatku." + +msgid "No, do nothing." +msgstr "Nie, niÄ neurobiÅ¥." + +msgid "No, just start my receiver" +msgstr "" + +msgid "No, never" +msgstr "Nie, nikdy" + +msgid "None" +msgstr "Žiadne" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Nelineárne" + +msgid "Normal mode" +msgstr "" + +msgid "North" +msgstr "severne" + +msgid "Norwegian" +msgstr "NórÄina" + +msgid "Not associated" +msgstr "" + +msgid "Not configured" +msgstr "" + +#, fuzzy, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Nie je dosÅ¥ miesta na disku. Uvoľnite miesto a skúste znova. (Je treba %d MB, ale je len %d MB.)" + +msgid "Nothing connected" +msgstr "" + +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"NiÄ na vyhľadávanie!\n" +"Pred zaÄatím vyhľadávania nastavte tuner ." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "" + +#, fuzzy +msgid "Now playing" +msgstr "Beží prehrávanie" + +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Teraz kontrastom zvýšte svetlosÅ¥ pozadia Äo najviac, ale tak, aby ste stále rozlíšili dva najjasnejÅ¡ie prúžky sivej. KeÄ skonÄíte, stlaÄte tlaÄidlo OK." + +msgid "OK" +msgstr "OK" + +msgid "OK, guide me through the upgrade process" +msgstr "OK, poveÄ ma procesom aktualizácie." + +msgid "ONID" +msgstr "" + +msgid "OSD name request" +msgstr "" + +#, fuzzy +msgid "OSD settings" +msgstr "Nastavenia OSD" + +msgid "OSD transparency" +msgstr "" + +msgid "Off" +msgstr "Vypnúť" + +msgid "Offline decode delay (ms)" +msgstr "" + +msgid "Ok" +msgstr "" + +msgid "On" +msgstr "Zapnúť" + +msgid "On end of movie" +msgstr "" + +msgid "On end of movie (as menu)" +msgstr "" + +msgid "One" +msgstr "Jeden" + +msgid "Only extensions." +msgstr "Len rozšírenia." + +#, fuzzy +msgid "Only free scan" +msgstr "VyhľadaÅ¥ len FTA" + +#, fuzzy +msgid "Open service list" +msgstr "OtvoriÅ¥ zoznam staníc" + +#, fuzzy +msgid "Open the movie list" +msgstr "Návrat do zoznamu filmov" + +msgid "Orbital position" +msgstr "Orbitálna pozícia" + +msgid "Original" +msgstr "" + +msgid "Other" +msgstr "" + +msgid "Output" +msgstr "" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "PrepísaÅ¥ konfiguraÄné súbory pri aktualizácii softvéru? " + +#, fuzzy +msgid "Overwrite configuration files?" +msgstr "PrepísaÅ¥ konfiguraÄné súbory?" + +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "" + +msgid "PIDs" +msgstr "PIDy" + +#, fuzzy +msgid "PIN code needed" +msgstr "Treba kód PIN" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "" + +msgid "Package list update" +msgstr "AktualizovaÅ¥ zoznam balíÄkov" + +msgid "Packet management" +msgstr "Správa balíÄkov" + +msgid "Packet manager" +msgstr "Správca balíÄkov" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +#, fuzzy +msgid "Pan&scan" +msgstr "Pan&Scan" + +#, fuzzy +msgid "Parent directory" +msgstr "Vyšší adresár" + +msgid "Parental control" +msgstr "RodiÄovská zámka" + +#, fuzzy +msgid "Parental control services editor" +msgstr "Editor staníc rodiÄovskej zámky" + +msgid "Parental control setup" +msgstr "Nastavenie rodiÄovskej zámky" + +msgid "Parental control type" +msgstr "Typ rodiÄovskej zámky" + +msgid "Password" +msgstr "Heslo" + +#, fuzzy +msgid "Pause" +msgstr "pauza" + +msgid "Pause movie at end" +msgstr "Na konci filmu pozastaviÅ¥" + +#, fuzzy +msgid "Pause playback" +msgstr "PokraÄujem v prehrávaní" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "" + +#, fuzzy +msgid "Percentage right" +msgstr "Kruhová pravá" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "" + +msgid "Permanently remove all deleted items" +msgstr "" + +msgid "Persian" +msgstr "PerzÅ¡tina" + +msgid "Phone number" +msgstr "Telefónne Äíslo" + +#, fuzzy +msgid "PiP setup" +msgstr "Nastavenie obrazu v obraze" + +msgid "Picon" +msgstr "" + +msgid "Picon and service name" +msgstr "" + +#, fuzzy +msgid "Picture player" +msgstr "PrehrávaÄ obrázkov" + +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Pillarbox" + +msgid "Pilot" +msgstr "" + +msgid "Play" +msgstr "PrehraÅ¥" + +msgid "Play DVD" +msgstr "PrehraÅ¥ DVD" + +msgid "Play audio in background" +msgstr "" + +#, fuzzy +msgid "Play audio-CD..." +msgstr "PrehraÅ¥ Audio-CD..." + +msgid "Play back media files" +msgstr "" + +#, fuzzy +msgid "Play entry" +msgstr "prehraÅ¥" + +#, fuzzy +msgid "Play from next mark or playlist entry" +msgstr "PrehraÅ¥ od nasledujúcej znaÄky alebo položky zoznamu prehrávok" + +#, fuzzy +msgid "Play from previous mark or playlist entry" +msgstr "PrehraÅ¥ od predchádzajúcej znaÄky alebo položky zoznamu prehrávok" + +#, fuzzy +msgid "Play music..." +msgstr "PrehraÅ¥ hudbu..." + +msgid "Play next" +msgstr "" + +msgid "Play next (return to movie list)" +msgstr "" + +msgid "Play next (return to previous service)" +msgstr "" + +msgid "Play previous" +msgstr "" + +msgid "Play recorded movies..." +msgstr "PrehraÅ¥ nahrané filmy..." + +msgid "Please add titles to the compilation." +msgstr "Pridajte titulky do kompilácie." + +msgid "Please change recording endtime" +msgstr "Zmeňte koniec nahrávania" + +msgid "Please check your network settings!" +msgstr "Skontrolujte nastavenia siete!" + +msgid "Please choose an extension..." +msgstr "Zvoľte rozšírenie..." + +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Nakonfigurujte alebo skontrolujte názvy serverov vyplnením požadovaných hodnôt.\n" +"Po skonÄení stlaÄte OK a pokraÄujte." + +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Nakonfigurujte si internetové pripojenie vyplnením požadovaných hodnôt.\n" +"Po skonÄení stlaÄte OK a pokraÄujte." + +msgid "Please connect your receiver to the internet" +msgstr "" + +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Nemeňte žiadne hodnoty, ak neviete, Äo tým spôsobíte!" + +msgid "Please enter a name for the new bouquet" +msgstr "Zadajte názov nového buketu." + +msgid "Please enter a name for the new marker" +msgstr "Zadajte názov novej znaÄky." + +msgid "Please enter a new filename" +msgstr "Zadajte nový názov súboru" + +msgid "Please enter filename (empty = use current date)" +msgstr "Zadajte názov súboru (prázdny = dneÅ¡ný dátum)" + +msgid "Please enter name of the new directory" +msgstr "Zadajte názov nového adresára" + +msgid "Please enter new name:" +msgstr "" + +msgid "Please enter the correct pin code" +msgstr "Zadajte správny kód PIN" + +msgid "Please enter the old PIN code" +msgstr "Zadajte starý kód PIN" + +msgid "Please follow the instructions on the TV" +msgstr "RiaÄte sa pokynmi na televíznej obrazovke" + +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "Nie je prístup k predtým zvolenému médiu, preto sa namiesto neho použije predvolený adresár." + +msgid "Please press OK to continue." +msgstr "Pre pokraÄovanie stlaÄte tlaÄidlo OK." + +msgid "Please select a default EPG type..." +msgstr "" + +msgid "Please select a playlist to delete..." +msgstr "Zvoľte zoznam prehrávok, ktorý sa má zmazaÅ¥..." + +msgid "Please select a playlist..." +msgstr "Zvoľte zoznam prehrávok..." + +#, fuzzy +msgid "Please select a sub service..." +msgstr "Zvoľte podkanál..." + +msgid "Please select a subservice to record..." +msgstr "Zvoľte podkanál pre nahrávanie..." + +msgid "Please select a subservice..." +msgstr "Zvoľte podkanál..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "Zvoľte súbor NFI a stlaÄením zeleného tlaÄidla spusÅ¥te flash!" + +#, fuzzy +msgid "Please select medium to be scanned" +msgstr "Vyberte médium na prehľadanie" + +msgid "Please select medium to use as backup location" +msgstr "Zvoľte médium, ktoré sa použije ako umiestnenie zálohy" + +msgid "Please select tag to filter..." +msgstr "Zvoľte Å¡títok na filtrovanie..." + +msgid "Please select the movie path..." +msgstr "Zvoľte cestu k filmu..." + +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Zvoľte sieÅ¥ové rozhranie, ktoré chcete použiÅ¥ na pripojenie do internetu.\n" +"\n" +"PokraÄujte stlaÄením OK." + +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Zvoľte bezdrôtovú sieÅ¥, ku ktorej sa chcete pripojiÅ¥.\n" +"\n" +"PokraÄujte stlaÄením OK." + +#, fuzzy +msgid "Please set up tuner A" +msgstr "Nastavte tuner B" + +msgid "Please set up tuner B" +msgstr "Nastavte tuner B" + +msgid "Please set up tuner C" +msgstr "Nastavte tuner C" + +msgid "Please set up tuner D" +msgstr "Nastavte tuner D" + +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Na presúvanie okna PiP použite kurzorové tlaÄidlá.\n" +"StlaÄením tlaÄidla Bouquet +/- zmeníte veľkosÅ¥ okna.\n" +"StlaÄením OK sa vrátite do režimu TV alebo stlaÄením EXIT zrušíte presúvanie." + +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "TlaÄidlami NAHOR alebo NADOL zvoľte jazyk. Potom stlaÄte tlaÄidlo OK." + +msgid "Please wait" +msgstr "" + +#, fuzzy +msgid "Please wait (downloading channel list)" +msgstr "ÄŒakajte... Otvára sa zoznam..." + +#, fuzzy +msgid "Please wait (downloading softcam)" +msgstr "ÄŒakajte... Otvára sa zoznam..." + +#, fuzzy +msgid "Please wait (updating packages)" +msgstr "ÄŒakajte, nahrávam obraz..." + +msgid "Please wait for activation of your network configuration..." +msgstr "VyÄkajte na aktivovanie nastavenia siete..." + +msgid "Please wait while scanning is in progress..." +msgstr "ÄŒakajte, kým prebieha vyhľadávanie..." + +msgid "Please wait while we configure your network..." +msgstr "ÄŒakajte, kým sa nastavuje sieÅ¥..." + +msgid "Please wait while we prepare your network interfaces..." +msgstr "ÄŒakajte, kým sa pripravujú sieÅ¥ové rozhrania..." + +msgid "Please wait while we test your network..." +msgstr "ÄŒakajte, kým sa testuje sieÅ¥..." + +msgid "Please wait while your network is restarting..." +msgstr "ÄŒakajte, kým sa sieÅ¥ reÅ¡tartuje..." + +msgid "Please wait..." +msgstr "ÄŒakajte..." + +msgid "Please wait... Loading list..." +msgstr "ÄŒakajte... Otvára sa zoznam..." + +msgid "Plugin browser" +msgstr "PrehliadaÄ modulov" + +msgid "Plugin manager activity information" +msgstr "Informácie o Äinnosti správcu modulov" + +msgid "Plugin manager help" +msgstr "Pomocník správcu modulov" + +msgid "Plugins" +msgstr "Moduly" + +msgid "Polarisation" +msgstr "" + +msgid "Polarisation:" +msgstr "" + +msgid "Polarization" +msgstr "Polarizácia" + +msgid "Polish" +msgstr "Poľština" + +msgid "Port A" +msgstr "Port A" + +msgid "Port B" +msgstr "Port B" + +msgid "Port C" +msgstr "Port C" + +msgid "Port D" +msgstr "Port D" + +msgid "Portuguese" +msgstr "PortugalÄina" + +#, fuzzy +msgid "Position of completed timers in timerlist" +msgstr "Umiestnenie skonÄených ÄasovaÄov v zozname ÄasovaÄov" + +msgid "Position stored at index" +msgstr "" + +msgid "Positioner" +msgstr "motor" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "" + +msgid "Positioner setup" +msgstr "Nastavenie motora" + +msgid "Power threshold in mA" +msgstr "Prah prúdu v mA" + +msgid "Predefined transponder" +msgstr "Preddefinovaný transpondér" + +msgid "Prefer AC3 track" +msgstr "" + +msgid "Prefer AC3+ track" +msgstr "" + +msgid "Prefer audio track stored by service" +msgstr "" + +msgid "Prefer graphical DVB subtitles" +msgstr "" + +msgid "Prefer subtitles for hearing impaired" +msgstr "" + +msgid "Prefer subtitles stored by service" +msgstr "" + +msgid "Preferred tuner" +msgstr "" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "Pripravte si iný kÄ¾ÃºÄ USB na flashovanie image" + +msgid "Preparing... Please wait" +msgstr "Pripravujem... ÄŒakajte..." + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "StlaÄením INFO na DO si zobrazíte ÄalÅ¡ie informácie." + +msgid "Press MENU on your remote control for additional options." +msgstr "StlaÄením MENU na DO si zobrazíte ÄalÅ¡ie možnosti." + +msgid "Press OK on your remote control to continue." +msgstr "Ak chcete pokraÄovaÅ¥, stlaÄte tlaÄidlo OK na diaľkovom ovládaÄi." + +msgid "Press OK to activate the selected skin." +msgstr "StlaÄením OK zapnete zvolený vzhľad." + +msgid "Press OK to activate the settings." +msgstr "StlaÄením OK aktivujte nastavenia." + +msgid "Press OK to edit the settings." +msgstr "StlaÄte OK pre zmenu nastavení." + +#, python-format +msgid "Press OK to get further details for %s" +msgstr "Pre ÄalÅ¡ie informácie o %s stlaÄte tlaÄidlo OK." + +msgid "Press OK to scan" +msgstr "Pre vyhľadávanie stlaÄte OK." + +#, fuzzy +msgid "Press OK to select a provider." +msgstr "StlaÄením OK zvolíte poskytovateľa." + +msgid "Press OK to select satellites" +msgstr "" + +msgid "Press OK to select/deselect a CAId." +msgstr "StlaÄením OK zvoľte alebo zruÅ¡te CAId." + +msgid "Press OK to start the scan" +msgstr "StlaÄením tlaÄidla OK spustíte vyhľadávanie" + +msgid "Press OK to toggle the selection" +msgstr "" + +msgid "Press OK to toggle the selection." +msgstr "StlaÄte OK pre prepnutie výberu." + +msgid "Press yellow to set this interface as default interface." +msgstr "StlaÄením žltého tlaÄidla nastavíte toto rozhranie ako predvolené." + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "" + +msgid "Preview" +msgstr "Náhľad" + +msgid "Preview menu" +msgstr "PrezrieÅ¥ menu" + +msgid "Preview selected channel" +msgstr "" + +msgid "Primary DNS" +msgstr "Primárny DNS" + +msgid "Priority" +msgstr "Priorita" + +msgid "Process" +msgstr "Procesy" + +msgid "Progress" +msgstr "" + +msgid "Progress bar left" +msgstr "" + +msgid "Progress bar right" +msgstr "" + +msgid "Properties of current title" +msgstr "Vlastnosti aktuálneho titulu" + +msgid "Protect services" +msgstr "OchrániÅ¥ stanice" + +msgid "Protect setup" +msgstr "OchrániÅ¥ nastavenia" + +msgid "Provider" +msgstr "Poskytovateľ" + +msgid "Provider to scan" +msgstr "Poskytovatelia na vyhľadávanie" + +msgid "Providers" +msgstr "Poskytovatelia" + +msgid "Put TV in standby" +msgstr "" + +msgid "Put receiver in standby" +msgstr "" + +msgid "Python frontend for /tmp/mmi.socket" +msgstr "Python frontend pre /tmp/mmi.socket" + +msgid "Quick" +msgstr "Rýchlo" + +#, fuzzy +msgid "Quick zap" +msgstr "Rýchle prepínanie" + +msgid "RF output" +msgstr "VF výstup" + +msgid "RGB" +msgstr "RGB" + +msgid "Radio" +msgstr "Rádio" + +#, fuzzy +msgid "Ram disk" +msgstr "Ram Disk" + +msgid "Random" +msgstr "Náhodne" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "" + +msgid "Rating undefined" +msgstr "" + +msgid "Really close without saving settings?" +msgstr "Naozaj zatvoriÅ¥ bez uloženia nastavení?" + +msgid "Really delete done timers?" +msgstr "Naozaj zmazaÅ¥ dokonÄené ÄasovaÄe?" + +msgid "Really exit the subservices quickzap?" +msgstr "Naozaj ukonÄiÅ¥ rýchle prepínanie podkanálov?" + +msgid "Really reboot now?" +msgstr "Naozaj mám teraz reÅ¡tartovaÅ¥?" + +msgid "Really restart now?" +msgstr "Naozaj mám teraz reÅ¡tartovaÅ¥?" + +msgid "Really shutdown now?" +msgstr "Naozaj teraz vypnúť?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "" + +msgid "Reboot" +msgstr "ReÅ¡tartovaÅ¥" + +msgid "Rec" +msgstr "" + +#, fuzzy +msgid "Reception settings" +msgstr "Nastavenia príjmu" + +msgid "Record" +msgstr "NahraÅ¥" + +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "Doba nahrávania je obmedzená, lebo sa prekrývajú ÄasovaÄe %s" + +msgid "Recorded files..." +msgstr "Nahrané súbory..." + +msgid "Recording" +msgstr "Nahrávanie" + +msgid "Recording in progress" +msgstr "" + +msgid "Recording paths" +msgstr "Záznamové cesty" + +msgid "Recording type" +msgstr "" + +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "Nahrávanie prebieha alebo o pár sekúnd zaÄne!" + +msgid "Recordings" +msgstr "Nahrávky" + +msgid "Recordings always have priority" +msgstr "Nahrávanie má vždy prednosÅ¥" + +msgid "Red button..." +msgstr "" + +msgid "Reenter new PIN" +msgstr "Znova zadajte nový PIN." + +#, fuzzy +msgid "Refresh rate" +msgstr "Obnovovací kmitoÄet" + +msgid "Refresh rate selection." +msgstr "Voľba obnovovacieho kmitoÄtu." + +msgid "Regard deep standby as standby" +msgstr "" + +msgid "Relative" +msgstr "" + +msgid "Reload" +msgstr "Znova natiahnuÅ¥" + +#, fuzzy +msgid "Reload black-/white lists" +msgstr "Znova natiahnuÅ¥ Äierne a biele listiny" + +msgid "Reloading bouquets and services..." +msgstr "" + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "ZapamätaÅ¥ PIN stanice" + +msgid "Remember these settings for each folder" +msgstr "" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "" + +#, fuzzy +msgid "Remote control type" +msgstr "Typ rodiÄovskej zámky" + +#, fuzzy +msgid "Removal has completed." +msgstr "Odstraňovanie zlyhalo." + +msgid "Remove" +msgstr "OdstrániÅ¥" + +msgid "Remove a mark" +msgstr "OdstrániÅ¥ znaÄku" + +#, fuzzy +msgid "Remove a nameserver entry" +msgstr "OdstrániÅ¥ DNS" + +#, fuzzy +msgid "Remove bookmark" +msgstr "odstrániÅ¥ záložku" + +msgid "Remove completed timers after (days)" +msgstr "" + +msgid "Remove currently selected title" +msgstr "OdstrániÅ¥ aktuálne zvolený titul" + +msgid "Remove items from trash can after (days)" +msgstr "" + +msgid "Remove plugins" +msgstr "OdstrániÅ¥ moduly" + +msgid "Remove title" +msgstr "OdstrániÅ¥ titul" + +msgid "Removing" +msgstr "Odstraňujem" + +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Vymazanie adresára %s zlyhalo. (Možno nie je prázdny.)" + +#, fuzzy +msgid "Removing partition table" +msgstr "OdstrániÅ¥ titul" + +msgid "Rename" +msgstr "PremenovaÅ¥" + +msgid "Repeat" +msgstr "" + +#, fuzzy +msgid "Repeat type" +msgstr "Druh opakovania" + +msgid "Repeating event currently recording... What do you want to do?" +msgstr "Práve sa nahráva opakovaná udalosÅ¥... ÄŒo chcete urobiÅ¥?" + +msgid "Repeats" +msgstr "Opakovania" + +msgid "Require authentication for http streams" +msgstr "" + +msgid "Required medium type:" +msgstr "Požadovaný druh média:" + +msgid "Rereading partition table" +msgstr "" + +msgid "Reserved" +msgstr "" + +msgid "Reset" +msgstr "ResetovaÅ¥" + +msgid "Reset and renumerate title names" +msgstr "ResetovaÅ¥ a preÄíslovaÅ¥ názvy titulov" + +msgid "Reset playback position" +msgstr "" + +msgid "Reset video enhancement settings to system defaults?" +msgstr "VrátiÅ¥ rozšírené nastavenia obrazu na systémové predvolené hodnoty?" + +msgid "Reset video enhancement settings to your last configuration?" +msgstr "VrátiÅ¥ rozšírené nastavenia obrazu na poslednú konfiguráciu?" + +msgid "Resolution" +msgstr "Rozlíšenie" + +msgid "Restart" +msgstr "ReÅ¡tartovaÅ¥" + +msgid "Restart GUI now?" +msgstr "Teraz reÅ¡tartovaÅ¥ GUI?" + +msgid "Restart enigma" +msgstr "" + +msgid "Restart network" +msgstr "ReÅ¡tartovaÅ¥ sieÅ¥" + +msgid "Restart test" +msgstr "ZopakovaÅ¥ test" + +msgid "Restart your network connection and interfaces.\n" +msgstr "ReÅ¡tartujte sieÅ¥ové pripojenie a rozhrania.\n" + +msgid "Restore" +msgstr "ObnoviÅ¥" + +msgid "Restore backups" +msgstr "ObnoviÅ¥ zálohy" + +msgid "Restore is running..." +msgstr "Prebieha obnova..." + +msgid "Restore system settings" +msgstr "ObnoviÅ¥ systémové nastavenia" + +#, fuzzy +msgid "Restoring..." +msgstr "nahrávam..." + +msgid "Resume from last position" +msgstr "PokraÄovaÅ¥ od poslednej pozície" + +#, python-format +msgid "Resume position at %s" +msgstr "PokraÄovaÅ¥ v polohe %s" + +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "PokraÄujem v prehrávaní" + +msgid "Return to movie list" +msgstr "Návrat do zoznamu filmov" + +msgid "Return to previous service" +msgstr "Návrat na predchádzajúcu stanicu" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +msgid "Rewind speeds" +msgstr "Rýchlosti prevíjania vzad" + +msgid "Rewrap teletext subtitles" +msgstr "" + +msgid "Right" +msgstr "Doprava" + +msgid "Right from servicename" +msgstr "" + +msgid "Roll-off" +msgstr "" + +msgid "Romanian" +msgstr "" + +msgid "Root directory" +msgstr "" + +msgid "Rotor step position:" +msgstr "" + +msgid "Rotor turning speed" +msgstr "RýchlosÅ¥ otáÄania motora" + +msgid "Round start time on" +msgstr "" + +msgid "Russian" +msgstr "RuÅ¡tina" + +msgid "S-Video" +msgstr "S-Video" + +msgid "SID" +msgstr "" + +msgid "SINGLE LAYER DVD" +msgstr "JEDNOVRSTVOVÉ DVD" + +msgid "SNR" +msgstr "SNR" + +msgid "SNR:" +msgstr "SNR:" + +msgid "SSID:" +msgstr "SSID:" + +msgid "Same resolution as skin" +msgstr "" + +msgid "Sat" +msgstr "So" + +msgid "Satellite" +msgstr "Satelit" + +#, fuzzy +msgid "Satellite dish setup" +msgstr "Nastavenia satelitného zariadenia" + +msgid "Satellite equipment" +msgstr "Satelitné zariadenie" + +#, fuzzy +msgid "Satellite equipment setup" +msgstr "Nastavenia satelitného zariadenia" + +msgid "Satellite longitude:" +msgstr "" + +msgid "Satellites" +msgstr "Satelity" + +msgid "Satfinder" +msgstr "HľadaÄ satelitov" + +msgid "Sats" +msgstr "" + +msgid "Saturation" +msgstr "SýtosÅ¥" + +msgid "Saturday" +msgstr "Sobota" + +msgid "Save" +msgstr "UložiÅ¥" + +#, fuzzy +msgid "Save playlist" +msgstr "uložiÅ¥ zoznam prehrávok" + +msgid "Save timeshift file" +msgstr "" + +msgid "Save timeshift file in movie directory" +msgstr "" + +msgid "Scaler sharpness" +msgstr "OstrosÅ¥ Å¡kálovania" + +#, fuzzy +msgid "Scaling mode" +msgstr "Å kálovací režim" + +msgid "Scan" +msgstr "" + +msgid "Scan " +msgstr "VyhľadaÅ¥" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, fuzzy, python-format +msgid "Scan %s" +msgstr "VyhľadaÅ¥" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, fuzzy, python-format +msgid "Scan %s band" +msgstr "PrehľadaÅ¥ pásmo EU MID" + +msgid "Scan additional SR" +msgstr "PrehľadaÅ¥ ÄalÅ¡ie SR" + +#, fuzzy +msgid "Scan files..." +msgstr "VyhľadaÅ¥ súbory..." + +#, fuzzy +msgid "Scan wireless networks" +msgstr "VyhľadaÅ¥ bezdrôt. siete" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "VyhľadaÅ¥ v sieti bezdrôtové prístupové body a pripojiÅ¥ ich zvoleným bezdrôtovýmn zariadením\n" + +#, python-format +msgid "Scanning %s..." +msgstr "" + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +msgid "Scanning failed!" +msgstr "" + +msgid "Scanning..." +msgstr "" + +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "PrehľadaÅ¥ predvolené lamedb zotriedené podľa satelitov a pripojeného motora" + +msgid "Search east" +msgstr "HľadaÅ¥ východne" + +msgid "Search west" +msgstr "HľadaÅ¥ západne" + +msgid "Searching" +msgstr "" + +msgid "Searching east ..." +msgstr "" + +msgid "Searching for available updates. Please wait..." +msgstr "Hľadám dostupné aktualizácie. ÄŒakajte..." + +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "Hľadám novoinÅ¡talované alebo odstránené balíÄky. ÄŒakajte..." + +msgid "Searching west ..." +msgstr "" + +msgid "Second cable of motorized LNB" +msgstr "" + +msgid "Secondary DNS" +msgstr "Sekundárny DNS" + +msgid "Seek" +msgstr "Hľadanie" + +#, fuzzy +msgid "Seek backward" +msgstr "skok vzad" + +#, fuzzy +msgid "Seek backward (enter time)" +msgstr "skok vzad (zadajte Äas)" + +#, fuzzy +msgid "Seek forward" +msgstr "skok vpred" + +#, fuzzy +msgid "Seek forward (enter time)" +msgstr "skok vpred (zadajte Äas)" + +msgid "Select" +msgstr "ZvoliÅ¥" + +#, fuzzy +msgid "Select CAId" +msgstr "zvoliÅ¥ CAId" + +msgid "Select HDD" +msgstr "Zvoľte pevný disk" + +#, fuzzy +msgid "Select a bouquet" +msgstr "Zvoľte film" + +msgid "Select a movie" +msgstr "Zvoľte film" + +#, fuzzy +msgid "Select a network adapter" +msgstr "Zvoľte sieÅ¥ový adaptér" + +#, fuzzy +msgid "Select a skin" +msgstr "Zvoľte film" + +#, fuzzy +msgid "Select a tuner" +msgstr "Zvoľte film" + +#, fuzzy +msgid "Select a wireless network" +msgstr "Zvoľte bezdrôtovú sieÅ¥" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +#, fuzzy +msgid "Select an image to be downloaded" +msgstr "Zvoľte image na stiahnutie" + +msgid "Select audio track" +msgstr "Zvoľte zvukovú stopu" + +#, fuzzy +msgid "Select backup files" +msgstr "ZvoliÅ¥ súbory zálohy" + +#, fuzzy +msgid "Select backup location" +msgstr "ZvoliÅ¥ umiestnenie zálohy" + +msgid "Select channel to record from" +msgstr "Zvoľte stanicu na nahrávanie" + +msgid "Select copy destination for:" +msgstr "" + +msgid "Select default EPG type..." +msgstr "" + +msgid "Select desired image from feed list" +msgstr "Zvoľte požadovaný image zo zoznamu" + +msgid "Select destination for:" +msgstr "" + +msgid "Select files for backup." +msgstr "Zvoľte súbory na zálohovanie" + +msgid "Select files/folders to backup" +msgstr "Zvoľte súbory a adresáre na zálohovanie" + +msgid "Select input device" +msgstr "Zvoľte vstupné zariadenie" + +msgid "Select input device." +msgstr "Zvoľte vstupné zariadenie." + +msgid "Select interface" +msgstr "Zvoľte rozhranie" + +#, fuzzy +msgid "Select location" +msgstr "Zvoľte umiestnenie" + +#, fuzzy +msgid "Select movie" +msgstr "Zvoľte film" + +msgid "Select provider to add..." +msgstr "Zvoľte poskytovateľa, ktorého chcete pridaÅ¥..." + +msgid "Select refresh rate" +msgstr "Zvoľte obnovovací kmitoÄet" + +msgid "Select satellites" +msgstr "" + +msgid "Select service to add..." +msgstr "Zvoľte stanicu, ktorú chcete pridaÅ¥..." + +msgid "Select sort method:" +msgstr "" + +#, fuzzy +msgid "Select target folder" +msgstr "ZvoliÅ¥ cieľový adresár" + +#, fuzzy +msgid "Select the movie path" +msgstr "zvoliÅ¥ cestu k filmu" + +#, fuzzy +msgid "Select upgrade source" +msgstr "Zvoľte zdroj aktualizácie, ktorý chcete upraviÅ¥." + +msgid "Select upgrade source to edit." +msgstr "Zvoľte zdroj aktualizácie, ktorý chcete upraviÅ¥." + +msgid "Select video input with up/down buttons" +msgstr "TlaÄidlami nahor a nadol zvoľte vstup obrazu" + +msgid "Select video mode" +msgstr "Zvoľte režim obrazu" + +msgid "Select wireless network" +msgstr "Zvoľte bezdrôtovú sieÅ¥" + +msgid "Select your provider, and press OK to start the scan" +msgstr "" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +msgid "Send DiSEqC only on satellite change" +msgstr "PoslaÅ¥ DiSEqC len pri zmene satelitu" + +msgid "Separate titles with a main menu" +msgstr "Samostatné tituly s hlavným menu" + +msgid "Sequence repeat" +msgstr "Opakovanie sekvencie" + +msgid "Serbian" +msgstr "SrbÄina" + +msgid "Service" +msgstr "Stanica" + +msgid "Service has been added to the favourites." +msgstr "Stanica bola pridaná do obľúbených" + +msgid "Service has been added to the selected bouquet." +msgstr "Stanica bola pridaná do zvoleného buketu" + +#, fuzzy +msgid "Service info" +msgstr "Informácie o stanici" + +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Stanica je neplatná!\n" +"(ÄŒas vyprÅ¡al pri Äítaní PMT)" + +#, fuzzy +msgid "Service name" +msgstr "Vyhľadávanie staníc" + +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Stanica nebola nájdená!\n" +"(SID nenájdený v PAT)" + +msgid "Service reference" +msgstr "" + +msgid "Service scan" +msgstr "Vyhľadávanie staníc" + +#, fuzzy +msgid "Service searching" +msgstr "Vyhľadávanie staníc" + +#, fuzzy +msgid "Service title mode" +msgstr "Zvoľte režim obrazu" + +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"Stanica je nedostupná!\n" +"Skontrolujte nastavenie tunera!" + +msgid "Services" +msgstr "Stanice" + +msgid "Set default" +msgstr "" + +#, fuzzy +msgid "Set end time" +msgstr "Nastavte Äas konca" + +msgid "Set fixed" +msgstr "" + +msgid "Set fps for external subtitles" +msgstr "" + +msgid "Set interface as default Interface" +msgstr "NastaviÅ¥ rozhranie ako predvolené" + +msgid "Set limits" +msgstr "" + +#, fuzzy +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "Vo výbere staníc zobraziÅ¥ priebeh programu" + +msgid "Set time window to 1 hour" +msgstr "" + +msgid "Set time window to 2 hours" +msgstr "" + +msgid "Set time window to 3 hours" +msgstr "" + +msgid "Set time window to 4 hours" +msgstr "" + +msgid "Set time window to 5 hours" +msgstr "" + +msgid "Set time window to 6 hours" +msgstr "" + +#, fuzzy +msgid "Set voltage and 22KHz" +msgstr "NastaviÅ¥ napätie a 22 kHz" + +msgid "Settings" +msgstr "Nastavenia" + +msgid "Setup" +msgstr "Nastavenia" + +msgid "Setup menu" +msgstr "" + +#, fuzzy +msgid "Setup mode" +msgstr "Režim nastavení" + +msgid "Setup your positioner" +msgstr "" + +#, fuzzy +msgid "Setup your satellite equipment" +msgstr "Satelitné zariadenie" + +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "Má sorievodca kľúÄom USB pokraÄovaÅ¥ a naprogramovaÅ¥ súbor image %s do pamäte flash?" + +msgid "Sharpness" +msgstr "OstrosÅ¥" + +msgid "Short filenames" +msgstr "Krátke názvy súborov" + +msgid "Show EIT now/next in infobar" +msgstr "" + +#, fuzzy +msgid "Show EPG for current channel..." +msgstr "ZobraziÅ¥ informácie pri zmene programu" + +#, fuzzy +msgid "Show EPG..." +msgstr "zobraziÅ¥ EPG..." + +msgid "Show Games show" +msgstr "" + +msgid "Show SNR percentage instead of dB value" +msgstr "" + +msgid "Show VCR scart on main menu" +msgstr "" + +#, fuzzy +msgid "Show WLAN status" +msgstr "ZobraziÅ¥ stav WLAN" + +msgid "Show animation while busy" +msgstr "" + +#, fuzzy +msgid "Show background in radio mode" +msgstr "obraz v pozadí" + +msgid "Show bouquet selection menu" +msgstr "" + +msgid "Show busy indicator when the system is busy." +msgstr "" + +msgid "Show channel numbers in channel selection" +msgstr "" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "" + +msgid "Show detailed event info" +msgstr "" + +#, fuzzy +msgid "Show event details" +msgstr "zobraziÅ¥ údaje o programe" + +msgid "Show event-progress in channel selection" +msgstr "Vo výbere staníc zobraziÅ¥ priebeh programu" + +#, fuzzy +msgid "Show extended description" +msgstr "zobraziÅ¥ rozšírený opis" + +#, fuzzy +msgid "Show extensions..." +msgstr "zobraziÅ¥ rozšírenia..." + +msgid "Show icon for new/unseen items" +msgstr "" + +msgid "Show in extensions menu" +msgstr "" + +#, fuzzy +msgid "Show info" +msgstr "ZobraziÅ¥ informácie" + +#, fuzzy +msgid "Show info line" +msgstr "zobraziÅ¥ informácie" + +msgid "Show infobar on channel change" +msgstr "ZobraziÅ¥ informácie pri zmene stanice" + +msgid "Show infobar on event change" +msgstr "ZobraziÅ¥ informácie pri zmene programu" + +msgid "Show infobar on skip forward/backward" +msgstr "ZobraziÅ¥ informácie pri skoku vpred, vzad" + +msgid "Show latest commits on sourceforge" +msgstr "" + +#, fuzzy +msgid "Show message when recording starts" +msgstr "ZobraziÅ¥ správu pri zaÄatí nahrávania." + +#, fuzzy +msgid "Show movie lengths in movielist" +msgstr "PrevziaÅ¥ dĺžku filmov do zoznamu filmov" + +msgid "Show multi channel EPG" +msgstr "" + +msgid "Show picons in channel list" +msgstr "" + +msgid "Show positioner movement" +msgstr "ZobraziÅ¥ otáÄanie motora" + +msgid "Show screensaver" +msgstr "" + +msgid "Show second infobar" +msgstr "" + +msgid "Show service type icons" +msgstr "" + +msgid "Show services beginning with" +msgstr "ZobraziÅ¥ stanice zaÄínajúce na" + +#, fuzzy +msgid "Show shutdown menu" +msgstr "zobraziÅ¥ menu vypnutia" + +msgid "Show single service EPG" +msgstr "" + +msgid "Show status icons in Movielist" +msgstr "" + +msgid "Show status icons in movie list" +msgstr "" + +msgid "Show status icons in movielist" +msgstr "" + +#, fuzzy +msgid "Show tag menu" +msgstr "zobraziÅ¥ menu Å¡títkov" + +msgid "Show the radio player..." +msgstr "Prehrávanie rádia..." + +msgid "Show the tv player..." +msgstr "Prehrávanie TV..." + +msgid "Show warning when timeshift is stopped" +msgstr "" + +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Zobrazuje stav pripojenia bezdrôtovej LAN.\n" + +#, fuzzy +msgid "Shuffle playlist" +msgstr "premieÅ¡aÅ¥ zoznam prehrávok" + +msgid "Shutdown" +msgstr "Vypnúť" + +msgid "Shutdown when in Standby" +msgstr "" + +msgid "Side by side" +msgstr "" + +msgid "Signal OK, proceeding" +msgstr "" + +msgid "Signal quality" +msgstr "" + +#, fuzzy +msgid "Signal strength:" +msgstr "Sila signálu:" + +msgid "Signal: " +msgstr "Signál:" + +msgid "Similar" +msgstr "Podobné" + +msgid "Similar broadcasts:" +msgstr "Podobné programy:" + +msgid "Simple" +msgstr "jednoduchý" + +msgid "Simple titleset (compatibility for legacy players)" +msgstr "Jednoduchá sada titulov (kompatibilita so staršími prehrávaÄmi)" + +msgid "Single" +msgstr "Jeden" + +msgid "Single EPG" +msgstr "Jeden EPG" + +msgid "Single satellite" +msgstr "jeden satelit" + +#, fuzzy +msgid "Single step (GOP)" +msgstr "Jeden krok (GOP)" + +msgid "Single transponder" +msgstr "jeden transpondér" + +msgid "Site latitude" +msgstr "" + +msgid "Site longitude" +msgstr "" + +msgid "Skin" +msgstr "Vzhľad" + +msgid "Skins" +msgstr "Vzhľady" + +#, fuzzy +msgid "Skip empty services" +msgstr "OchrániÅ¥ stanice" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "" + +#, fuzzy +msgid "Sleep timer" +msgstr "ÄŒasovaÄ vypnutia" + +msgid "SleepTimer Configuration" +msgstr "" + +msgid "Sleeptimer" +msgstr "" + +#, fuzzy +msgid "Slide picture in loop" +msgstr "premietaÅ¥ obrázky v sluÄke" + +#, fuzzy +msgid "Slide show interval (sec.)" +msgstr "Interval prezentácie (s)" + +#, python-format +msgid "Slot %d" +msgstr "Slot %d" + +msgid "Slovak" +msgstr "" + +msgid "Slovenian" +msgstr "SlovinÄina" + +msgid "Slow" +msgstr "pomaly" + +#, fuzzy +msgid "Slow motion speeds" +msgstr "Rýchlosti Äasovej lupy" + +#, fuzzy +msgid "Small progress" +msgstr "Prebieha" + +msgid "Social/Political/Economics" +msgstr "" + +msgid "SoftCam / CI" +msgstr "" + +#, fuzzy +msgid "Softcam type" +msgstr "Softvér" + +msgid "Software" +msgstr "Softvér" + +msgid "Software management" +msgstr "Správa softvéru" + +msgid "Software manager setup" +msgstr "Nastavenie správcu softvéru" + +msgid "Software restore" +msgstr "ObnoviÅ¥ softvér" + +msgid "Software update" +msgstr "AktualizovaÅ¥ softvér" + +msgid "Softwaremanager information" +msgstr "Informácie správcu softvéru" + +msgid "Some plugins are not available:\n" +msgstr "Niektoré moduly nie sú dostupné:\n" + +#, fuzzy, python-format +msgid "Sorry, %s has not been installed!" +msgstr "Ľutujem, MediaScanner nie je nainÅ¡talovaný!" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "" + +#, fuzzy +msgid "Sorry, no backups found!" +msgstr "Neboli nájdené žiadne zálohy!" + +#, fuzzy +msgid "Sorry, no details available!" +msgstr "Nie sú dostupné žiadne údaje!" + +#, fuzzy +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"Umiestnenie zálohy nie je zapisovateľné\n" +"Zvoľte si iné umiestnenie." + +msgid "Sort" +msgstr "" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "TriediÅ¥ A-Z" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +#, fuzzy +msgid "Sort time" +msgstr "TriediÅ¥ podľa Äasu" + +msgid "Sound" +msgstr "Zvuk" + +#, fuzzy +msgid "Sound carrier" +msgstr "Nosný kmitoÄet zvuku" + +msgid "Source request" +msgstr "" + +msgid "South" +msgstr "južne" + +msgid "Spanish" +msgstr "Å panielÄina" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +msgid "Split preview mode" +msgstr "Režim rozdelenia náhľadu" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "" + +#, fuzzy +msgid "Standard" +msgstr "Å¡tand." + +msgid "Standart list" +msgstr "" + +msgid "Standby" +msgstr "Pohotovostný režim" + +#, fuzzy +msgid "Standby / restart" +msgstr "Vypnúť, reÅ¡tartovaÅ¥" + +msgid "Standby after current event" +msgstr "" + +#, fuzzy, python-format +msgid "Standby fan %d PWM" +msgstr "PohotovosÅ¥, PWM ventilátora %d" + +#, fuzzy, python-format +msgid "Standby fan %d voltage" +msgstr "PohotovosÅ¥, napätie ventilátora %d" + +msgid "Standby in " +msgstr "" + +msgid "StandbyLED" +msgstr "" + +msgid "Start from the beginning" +msgstr "SpustiÅ¥ od zaÄiatku" + +msgid "Start offline decode" +msgstr "" + +msgid "Start recording?" +msgstr "SpustiÅ¥ nahrávanie?" + +msgid "Start test" +msgstr "SpustiÅ¥ test" + +#, fuzzy +msgid "Start time" +msgstr "ZaÄiatok" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +#, fuzzy +msgid "Start timeshift" +msgstr "zaÄaÅ¥ Äasový posun" + +msgid "Start with list screen" +msgstr "" + +msgid "Starting on" +msgstr "ZaÄína od" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +msgid "Step east" +msgstr "Krok východne" + +msgid "Step west" +msgstr "Krok západne" + +msgid "Stepped east" +msgstr "" + +msgid "Stepped west" +msgstr "" + +msgid "Stop" +msgstr "ZastaviÅ¥" + +#, fuzzy +msgid "Stop PiP" +msgstr "zastaviÅ¥ PiP" + +msgid "Stop current event and disable coming events" +msgstr "ZastaviÅ¥ aktuálnu udalosÅ¥ a zruÅ¡iÅ¥ nasledujúce udalosti" + +msgid "Stop current event but not coming events" +msgstr "ZastaviÅ¥ aktuálnu udalosÅ¥, ale nezruÅ¡iÅ¥ nasledujúce udalosti" + +#, fuzzy +msgid "Stop entry" +msgstr "zastaviÅ¥" + +msgid "Stop playing this movie?" +msgstr "ZastaviÅ¥ prehrávanie tohto filmu?" + +msgid "Stop recording" +msgstr "" + +msgid "Stop recording and delete" +msgstr "" + +msgid "Stop service on return to movie list" +msgstr "" + +msgid "Stop test" +msgstr "ZastaviÅ¥ test" + +msgid "Stop testing plane after # failed transponders" +msgstr "ZastaviÅ¥ testovanie po # zlyhaných transpondéroch" + +msgid "Stop testing plane after # successful transponders" +msgstr "ZastaviÅ¥ testovanie po # úspeÅ¡ných transpondéroch" + +msgid "Stop timer recording" +msgstr "" + +#, fuzzy +msgid "Stop timeshift" +msgstr "zastaviÅ¥ Äasový posun" + +#, fuzzy +msgid "Stop timeshift?" +msgstr "ZastaviÅ¥ Äasový posun?" + +msgid "Stopped" +msgstr "" + +msgid "Store at index" +msgstr "" + +msgid "Store position" +msgstr "UložiÅ¥ pozíciu" + +msgid "Stored position" +msgstr "Uložená pozícia" + +msgid "Stream" +msgstr "" + +msgid "Stream request" +msgstr "" + +msgid "Strongest position" +msgstr "" + +msgid "Subservice list..." +msgstr "Zoznam podkanálov..." + +msgid "Subservices" +msgstr "Podkanály" + +msgid "Subtitle Quickmenu" +msgstr "" + +#, fuzzy +msgid "Subtitle alignment" +msgstr "Výber titulkov" + +msgid "Subtitle border width" +msgstr "" + +msgid "Subtitle delay when timing is bad" +msgstr "" + +msgid "Subtitle delay when timing lacks" +msgstr "" + +#, fuzzy +msgid "Subtitle font size" +msgstr "Titulky" + +msgid "Subtitle language selection 1" +msgstr "" + +msgid "Subtitle language selection 2" +msgstr "" + +msgid "Subtitle language selection 3" +msgstr "" + +msgid "Subtitle language selection 4" +msgstr "" + +#, fuzzy +msgid "Subtitle position" +msgstr "Výber titulkov" + +msgid "Subtitle selection" +msgstr "Výber titulkov" + +msgid "Subtitle selection..." +msgstr "" + +msgid "Subtitle settings" +msgstr "" + +msgid "Subtitles" +msgstr "Titulky" + +msgid "Sun" +msgstr "Ne" + +msgid "Sunday" +msgstr "Nedeľa" + +#, fuzzy +msgid "Swap PiP and main picture" +msgstr "vymeniÅ¥ PiP a hlavný obraz" + +#, fuzzy +msgid "Swap services" +msgstr "VymeniÅ¥ stanice" + +msgid "Swedish" +msgstr "Å védÄina" + +msgid "Switch TV to correct input" +msgstr "" + +msgid "Switch between filelist/playlist" +msgstr "" + +msgid "Switch between normal mode and list mode" +msgstr "" + +msgid "Switch to HDMI in mode" +msgstr "" + +#, fuzzy +msgid "Switch to filelist" +msgstr "prepnúť na zoznam súborov" + +msgid "Switch to next channel" +msgstr "" + +#, fuzzy +msgid "Switch to next channel in history" +msgstr "Nasledujúca stanica v histórii" + +#, fuzzy +msgid "Switch to next sub service" +msgstr "Prepnúť na nasledujúci podkanál" + +#, fuzzy +msgid "Switch to playlist" +msgstr "prepnúť na zoznam prehrávok" + +#, fuzzy +msgid "Switch to previous channel" +msgstr "Prepnúť na predchádzajúci podkanál" + +#, fuzzy +msgid "Switch to previous channel in history" +msgstr "Predchádzajúca stanica v histórii" + +#, fuzzy +msgid "Switch to previous sub service" +msgstr "Prepnúť na predchádzajúci podkanál" + +msgid "Switchable tuner types:" +msgstr "Prepínateľné typy tunerov:" + +msgid "Symbol rate" +msgstr "Symbolová rýchlosÅ¥" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "" + +msgid "System" +msgstr "Systém" + +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "PREKLADATEĽ" + +msgid "TS file is too large for ISO9660 level 1!" +msgstr "Súbor TS je príliÅ¡ veľký pre úroveň 1 ISO9660!" + +msgid "TSID" +msgstr "" + +msgid "TV physical address report" +msgstr "" + +msgid "TXT PID" +msgstr "" + +#, fuzzy +msgid "Table of contents for collection" +msgstr "Obsah zostavy" + +msgid "Tags" +msgstr "Å títky" + +msgid "Teletext subtitle color" +msgstr "" + +#, fuzzy +msgid "Temperature and fan control" +msgstr "Teplota a ventilátor" + +msgid "Terrestrial" +msgstr "Pozemné" + +msgid "Terrestrial provider" +msgstr "Poskytovateľ pozemných služieb" + +msgid "Test DiSEqC settings" +msgstr "VyskúšaÅ¥ nastavenia DiSEqC" + +msgid "Test mode" +msgstr "Testovací režim" + +msgid "Test the network configuration of your receiver.\n" +msgstr "" + +#, fuzzy +msgid "Test type" +msgstr "Druh testu" + +#, fuzzy +msgid "Text color" +msgstr "farba textu" + +msgid "Thai" +msgstr "" + +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"ÄŽakujeme, že ste použili sprievodcu.\n" +"PokraÄujte stlaÄením OK." + +#, fuzzy +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"ÄŽakujeme, že ste použili sprievodcu.\n" +"PokraÄujte stlaÄením OK." + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "" + +msgid "The PIN code has been changed successfully." +msgstr "Kód PIN bol úspeÅ¡ne zmenený." + +msgid "The PIN codes you entered are different." +msgstr "Kódy PIN, ktoré ste zadali, sú rôzne." + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" +"KÄ¾ÃºÄ USB je pripravený ako bootovateľný.\n" +"Teraz môžete stiahnuÅ¥ súbor NFI." + +msgid "The backup failed. Please choose a different backup location." +msgstr "Zálohovanie zlyhalo. Zvoľte iné umiestnenie zálohy." + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" + +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"Do adresára %s sa nedá zapisovaÅ¥.\n" +"Zvoľte taký adresár, do ktorého sa dá zapisovaÅ¥." + +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"Bolo nájdené toto zariadenie:\n" +"\n" +"%s\n" +"\n" +"Chcete zapísaÅ¥ USB flasher na tento kľúÄ?" + +msgid "The following files were found..." +msgstr "Boli nájdené tieto súbory..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "Overovanie md5sum zlyhalo. Súbor je asi poruÅ¡ený!" + +#, fuzzy +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"Rozšírenie Sprievodca sieÅ¥ou nie je nainÅ¡talované.\n" +"NainÅ¡talujte si ho." + +#, python-format +msgid "The path %s already exists." +msgstr "Cesta %s už existuje." + +msgid "The pin code you entered is wrong." +msgstr "Zadaný kód PIN je nesprávny." + +#, python-format +msgid "The results have been written to %s." +msgstr "Výsledky boli zapísané do súboru %s." + +msgid "The sleep timer has been activated." +msgstr "ÄŒasovaÄ vypnutia bol zapnutý." + +msgid "The sleep timer has been disabled." +msgstr "ÄŒasovaÄ vypnutia bol vypnutý." + +#, fuzzy +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"Rozšírenie Správa softvéru nie je nainÅ¡talované!\n" +"NainÅ¡talujte si ho." + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "" + +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "Súbor ÄasovaÄa (timers.xml) je poruÅ¡ený a nedá sa otvoriÅ¥." + +#, fuzzy +msgid "The user interface of your receiver is restarting" +msgstr "ÄŒakajte, kým sa sieÅ¥ reÅ¡tartuje..." + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"Modul bezdrôtovej LAN nie je nainÅ¡talovaný.\n" +"NainÅ¡talujte ho a zvoľte, Äo chcete robiÅ¥ Äalej." + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"Modul bezdrôtovej LAN nie je nainÅ¡talovaný!\n" +"NainÅ¡talujte ho." + +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "Sprievodca môže zálohovaÅ¥ aktuálne nastavenia. Chcete teraz zálohovaÅ¥?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "Sprievodca naÅ¡iel zálohu nastavení. Chcete obnoviÅ¥ staré nastavenia z %s?" + +msgid "The wizard is finished now." +msgstr "Sprievodca teraz skonÄil." + +msgid "There are at least " +msgstr "Je aspoň" + +#, fuzzy, python-format +msgid "There are at least %s updates available." +msgstr "Nie sú dostupné žiadne aktualizácie." + +msgid "There are currently no outstanding actions." +msgstr "Žiadne Äinnosti na vykonanie." + +msgid "There are no updates available." +msgstr "Nie sú dostupné žiadne aktualizácie." + +msgid "There is no signal to lock on !" +msgstr "" + +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"Vo zvolenej partícii nemusí byÅ¥ dostatok miesta.\n" +"Naozaj chcete pokraÄovaÅ¥?" + +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "Toto médium DVD RW je už naformátované - opätovným formátovaním sa vymaže celý obsah disku." + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" + +msgid "This plugin is installed." +msgstr "Tento modul je nainÅ¡talovaný." + +msgid "This plugin is not installed." +msgstr "Tento modul nie je nainÅ¡talovaný." + +msgid "This plugin will be installed." +msgstr "Tento modul sa nainÅ¡taluje." + +msgid "This plugin will be removed." +msgstr "Tento modul sa odstráni." + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "" + +#, fuzzy +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"Tento test hľadá nakonfigurované DNS.\n" +"Ak dostanete hlásenie „nepotvrdené“:\n" +"- skontrolujte DHCP, kabeláž a nastavenie adaptéra\n" +"- ak ste DNS konfigurovali ruÄne, skontrolujte údaje v nastavení „konfigurácia servera DNS“" + +#, fuzzy +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Tento test overuje, Äi je sieÅ¥ový kábel pripojený k sieÅ¥ovej karte.\n" +"Ak dostanete hlásenie „odpojené“:\n" +"- skontrolujte, Äi je pripojený sieÅ¥ový kábel\n" +"- skontrolujte, Äi kábel nie je preruÅ¡ený" + +#, fuzzy +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Tento test overuje, Äi je platná IP adresa sieÅ¥ovej karty.\n" +"Ak dostanete hlásenie „nepotvrdené“:\n" +"- nebola nájdená platná IP adresa\n" +"- skontrolujte DHCP, kabeláž a nastavenie karty" + +#, fuzzy +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"Tento test overuje, Äi máte sieÅ¥ovú kartu nastavenú na automatické nastavenie IP adresy z DHCP.\n" +"Ak dostanete hlásenie „vypnuté“:\n" +" - máte sieÅ¥ovú kartu nakonfigurovanú na ruÄné nastavenie IP adresy\n" +"- skontrolujte, Äi ste zadali správne IP údaje v nastavovacom dialógu karty.\n" +"Ak dostanete hlásenie „zapnuté“:\n" +"- skontrolujte, Äi máte v sieti nakonfigurovaný a fungujúci server DHCP." + +#, fuzzy +msgid "This test detects your configured LAN adapter." +msgstr "Tento test zisÅ¥uje nakonfigurovanú sieÅ¥ovú kartu." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" + +msgid "Three" +msgstr "Tri" + +msgid "Threshold" +msgstr "Prah" + +msgid "Thu" +msgstr "Å t" + +msgid "Thumbnails" +msgstr "ZmenÅ¡eniny" + +msgid "Thursday" +msgstr "Å tvrtok" + +msgid "Time" +msgstr "ÄŒas" + +#, fuzzy +msgid "Time scale" +msgstr "Voľba ÄasovaÄa" + +msgid "Timer" +msgstr "ÄŒasovaÄ" + +msgid "Timer Overview" +msgstr "" + +#, fuzzy +msgid "Timer edit" +msgstr "Úprava ÄasovaÄa" + +#, fuzzy +msgid "Timer editor" +msgstr "Editor ÄasovaÄa" + +msgid "Timer entry" +msgstr "Položka ÄasovaÄa" + +msgid "Timer log" +msgstr "Záznam ÄasovaÄa" + +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"Zistené prekrývanie ÄasovaÄov v súbore timers.xml!\n" +"Skontrolujte to!" + +#, fuzzy +msgid "Timer overview" +msgstr "Položka ÄasovaÄa" + +#, fuzzy +msgid "Timer recording location" +msgstr "Umiestnenie nahrávky ÄasovaÄa" + +msgid "Timer sanity error" +msgstr "Nerozumné Äasovanie" + +msgid "Timer selection" +msgstr "Voľba ÄasovaÄa" + +msgid "Timer selection..." +msgstr "" + +#, fuzzy +msgid "Timer type" +msgstr "Úloha ÄasovaÄa" + +msgid "Timeshift" +msgstr "ÄŒasový posun" + +msgid "Timeshift Live" +msgstr "" + +msgid "Timeshift location" +msgstr "Umiestnenie Äasového posunu" + +msgid "Timeshift not possible!" +msgstr "ÄŒasový posun nie je možný!" + +msgid "Timezone" +msgstr "ÄŒasové pásmo" + +msgid "Title" +msgstr "Titul" + +msgid "Title properties" +msgstr "Vlastnosti titulu" + +msgid "Titleset mode" +msgstr "Režim sady titulov" + +msgid "To audio selection" +msgstr "" + +msgid "To subtitle selection" +msgstr "" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" + +msgid "Today" +msgstr "Dnes" + +#, fuzzy +msgid "Toggle a cut mark at the current position" +msgstr "prepnúť znaÄku strihu na aktuálnom mieste" + +#, fuzzy +msgid "Tone amplitude" +msgstr "Amplitúda zvuku" + +msgid "Tone mode" +msgstr "Tónový režim" + +msgid "Toneburst" +msgstr "Tónový impulz" + +msgid "Toneburst A/B" +msgstr "Tónový impulz A/B" + +msgid "Top and bottom" +msgstr "" + +msgid "Track" +msgstr "Stopa" + +msgid "Translation" +msgstr "Preklad" + +msgid "Translation:" +msgstr "Preklad:" + +msgid "Translations" +msgstr "" + +msgid "Transmission mode" +msgstr "Režim prenosu" + +msgid "Transponder" +msgstr "Transpondér" + +#, fuzzy +msgid "Transponder type" +msgstr "Typ transpondéra" + +msgid "Trash can" +msgstr "" + +msgid "Tries left:" +msgstr "Zostávajúce pokusy:" + +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Pokúšam sa nájsÅ¥ použité transpondéry v káblovej sieti... Äakajte..." + +msgid "Trying to download a new packetlist. Please wait..." +msgstr "Pokúšam sa stiahnuÅ¥ nový zoznam paketov. ÄŒakajte..." + +msgid "Tue" +msgstr "Ut" + +msgid "Tuesday" +msgstr "Utorok" + +msgid "Tune" +msgstr "NaladiÅ¥" + +#, fuzzy +msgid "Tune and focus" +msgstr "Stav tunera" + +msgid "Tune failed!" +msgstr "Ladenie zlyhalo!" + +msgid "Tuner" +msgstr "Tuner" + +msgid "Tuner configuration" +msgstr "Nastavenie tunera" + +msgid "Tuner is not supported" +msgstr "" + +#, fuzzy +msgid "Tuner slot" +msgstr "Otvor pre tuner" + +msgid "Tuner status" +msgstr "Stav tunera" + +#, fuzzy, python-format +msgid "Tuner status %s" +msgstr "Stav tunera" + +msgid "Tuner type" +msgstr "Typ tunera" + +msgid "Turkish" +msgstr "TureÄtina" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +msgid "Two" +msgstr "Dva" + +msgid "Type" +msgstr "Typ" + +msgid "Type of scan" +msgstr "Druh vyhľadávania" + +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "" + +#, fuzzy +msgid "USB stick" +msgstr "KÄ¾ÃºÄ USB" + +msgid "USB stick wizard" +msgstr "Sprievodca pre kÄ¾ÃºÄ USB" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +msgid "Undo install" +msgstr "Späť inÅ¡talácia" + +msgid "Undo uninstall" +msgstr "Späť odinÅ¡talácia" + +msgid "Unencrypted" +msgstr "NeÅ¡ifrované" + +msgid "UnhandledKey" +msgstr "" + +msgid "Unicable" +msgstr "Unicable" + +msgid "Unicable LNB" +msgstr "Unicable LNB" + +msgid "Unicable Martix" +msgstr "" + +msgid "Uninstall" +msgstr "OdinÅ¡talovaÅ¥" + +msgid "Universal LNB" +msgstr "Univerzálny LNB" + +msgid "Unknown" +msgstr "Neznáme" + +msgid "Unmount" +msgstr "" + +msgid "Unsupported" +msgstr "Nepodporované" + +msgid "Update" +msgstr "AktualizovaÅ¥" + +msgid "Update and ask to reboot" +msgstr "" + +msgid "Update and reboot (recommended)" +msgstr "" + +#, fuzzy +msgid "Update channel list only" +msgstr "Nasledujúca stanica v histórii" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "" + +msgid "Update has completed." +msgstr "" + +msgid "Updatefeed not available." +msgstr "AktualizaÄný feed je nedostupný." + +msgid "Updating software catalog" +msgstr "Aktualizácia katalógu softvéru" + +msgid "Upgrading" +msgstr "Aktualizujem" + +msgid "Use" +msgstr "PoužiÅ¥" + +msgid "Use DHCP" +msgstr "PoužiÅ¥ DHCP" + +msgid "Use EIT EPG information when it is available." +msgstr "" + +msgid "Use FreeSat EPG information when it is available." +msgstr "" + +msgid "Use MHW EPG information when it is available." +msgstr "" + +msgid "Use Netmed EPG information when it is available." +msgstr "" + +msgid "Use TV remote control" +msgstr "" + +#, fuzzy +msgid "Use USALS for this sat" +msgstr "Pre tento satelit použiÅ¥ USALS" + +msgid "Use ViaSat EPG information when it is available." +msgstr "" + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +msgid "Use a gateway" +msgstr "PoužiÅ¥ bránu" + +msgid "Use fastscan channel names" +msgstr "" + +msgid "Use fastscan channel numbering" +msgstr "" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "" + +#, fuzzy +msgid "Use interface" +msgstr "PoužiÅ¥ sieÅ¥ový adaptér" + +msgid "Use official channel numbering" +msgstr "" + +msgid "Use original DVB subtitle position" +msgstr "" + +msgid "Use original teletext position" +msgstr "" + +msgid "Use power measurement" +msgstr "PoužiÅ¥ meranie spotreby" + +#, fuzzy +msgid "Use the network wizard to configure selected network adapter" +msgstr "PoužiÅ¥ Sprievodcu nastavením siete na nastavenie zvoleného sieÅ¥ového adaptéra" + +#, fuzzy +msgid "Use the network wizard to configure your network\n" +msgstr "Na nastavenie siete použiÅ¥ sprievodcu sieÅ¥ou\n" + +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "Šípkami nahor alebo nadol na diaľkovom ovládaÄi vyberte voľbu. Potom stlaÄte tlaÄidlo OK." + +#, fuzzy +msgid "Use the wizard to set up basic features" +msgstr "PoužiÅ¥ sprievodcu pre nastavenie základných funkcií" + +#, fuzzy +msgid "Use these input device settings?" +msgstr "PoužiÅ¥ nastavenia vstupného zariadenia?" + +#, fuzzy +msgid "Use these settings?" +msgstr "PoužiÅ¥ toto nastavenie?" + +msgid "Use this video enhancement settings?" +msgstr "PoužiÅ¥ toto rozšírené nastavenie obrazu?" + +#, fuzzy +msgid "Use trash can in movielist" +msgstr "Návrat do zoznamu filmov" + +msgid "Used service scan type" +msgstr "Typ vyhľadávania staníc" + +msgid "User - bouquets" +msgstr "" + +msgid "User defined" +msgstr "Užívateľsky definované" + +msgid "User defined transponder" +msgstr "" + +#, fuzzy +msgid "User interface" +msgstr "PoužiÅ¥ sieÅ¥ový adaptér" + +msgid "Username" +msgstr "Užívateľské meno" + +#, python-format +msgid "Using LNB %d" +msgstr "" + +msgid "Using fixed address" +msgstr "" + +#, python-format +msgid "Using tuner %s" +msgstr "" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "" + +msgid "VCR scart" +msgstr "Scart - videorekordér" + +msgid "VMGM (intro trailer)" +msgstr "" + +msgid "Vertical" +msgstr "Zvislá" + +msgid "Vertical turning speed" +msgstr "" + +msgid "Video PID" +msgstr "Obrazový PID" + +msgid "Video enhancement preview" +msgstr "Náhľad rozšíreného nastavenia obrazu" + +msgid "Video enhancement settings" +msgstr "Rozšírené nastavenia obrazu" + +msgid "Video enhancement setup" +msgstr "Rozšírené nastavenie obrazu" + +#, fuzzy +msgid "Video fine tuning" +msgstr "Jemné nastavenie obrazu" + +#, fuzzy +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Voľba obrazového vstupu\n" +"\n" +"StlaÄte tlaÄidlo OK, ak na televízore vidíte túto stranu (alebo zvoľte iný vstup).\n" +"\n" +"Nasledujúci vstup sa automaticky vyskúša o 10 sekúnd." + +msgid "Video mode selection." +msgstr "Voľba režimu obrazu." + +#, fuzzy +msgid "Video output" +msgstr "Výstup obrazu" + +#, fuzzy +msgid "Video setup" +msgstr "Nastavenie obrazu" + +#, fuzzy +msgid "Video wizard" +msgstr "Sprievodca k obrazu" + +#, python-format +msgid "Video: %s fps" +msgstr "" + +msgid "VideoMode" +msgstr "" + +msgid "Videocodec" +msgstr "" + +msgid "Videoformat" +msgstr "" + +msgid "Videosize" +msgstr "" + +msgid "View Rass interactive..." +msgstr "ZobraziÅ¥ RASS interaktívne..." + +msgid "View details" +msgstr "ZobraziÅ¥ podrobnosti" + +msgid "View list of available " +msgstr "ZobraziÅ¥ zoznam dostupných" + +msgid "View list of available CommonInterface extensions" +msgstr "ZobraziÅ¥ zoznam dostupných rozšírení CommonInterface" + +msgid "View list of available EPG extensions." +msgstr "ZobraziÅ¥ zoznam dostupných rozšírení EPG." + +msgid "View list of available Satellite equipment extensions." +msgstr "ZobraziÅ¥ zoznam dostupných rozšírení satelitného zariadenia." + +msgid "View list of available communication extensions." +msgstr "ZobraziÅ¥ zoznam dostupných komunikaÄných rozšírení." + +msgid "View list of available default settings" +msgstr "ZobraziÅ¥ zoznam dostupných predvolených nastavení" + +#, fuzzy +msgid "View list of available display and userinterface extensions." +msgstr "ZobraziÅ¥ zoznam dostupných rozšírení zobrazenia a užívateľského rozhrania" + +msgid "View list of available multimedia extensions." +msgstr "ZobraziÅ¥ zoznam dostupných multimediálnych rozšírení." + +msgid "View list of available networking extensions" +msgstr "ZobraziÅ¥ zoznam dostupných sieÅ¥ových rozšírení" + +msgid "View list of available recording extensions" +msgstr "ZobraziÅ¥ zoznam dostupných rozšírení pre nahrávanie" + +msgid "View list of available skins" +msgstr "ZobraziÅ¥ zoznam dostupných vzhľadov" + +msgid "View list of available software extensions" +msgstr "ZobraziÅ¥ zoznam dostupných softvérových rozšírení" + +msgid "View list of available system extensions" +msgstr "ZobraziÅ¥ zoznam dostupných systémových rozšírení" + +#, fuzzy +msgid "View photos..." +msgstr "ZobraziÅ¥ fotografie..." + +msgid "View teletext..." +msgstr "ZobraziÅ¥ teletext..." + +#, fuzzy +msgid "View video CD..." +msgstr "ZobraziÅ¥ Video CD..." + +#, fuzzy +msgid "Virtual keyboard" +msgstr "Virtuálna klávesnica" + +msgid "Voltage mode" +msgstr "Napäťový režim" + +msgid "Volume" +msgstr "HlasitosÅ¥" + +msgid "W" +msgstr "Z" + +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "Spojenie WLAN" + +msgid "WPA" +msgstr "WPA" + +msgid "WPA or WPA2" +msgstr "WPA alebo WPA2" + +msgid "WPA2" +msgstr "WPA2" + +msgid "WSS on 4:3" +msgstr "WSS pri 4:3" + +msgid "Waiting" +msgstr "ÄŒakám" + +msgid "Waiting for mount" +msgstr "" + +msgid "Waiting for partition" +msgstr "" + +msgid "Wakeup" +msgstr "" + +msgid "Wakeup TV from standby" +msgstr "" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "" + +msgid "Wakeup signal from TV" +msgstr "" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "" + +#, fuzzy +msgid "Watch movies..." +msgstr "PrehraÅ¥ nahrané filmy..." + +#, fuzzy +msgid "Watch recordings..." +msgstr "nahrávam..." + +msgid "Wed" +msgstr "St" + +msgid "Wednesday" +msgstr "Streda" + +msgid "Weekday" +msgstr "Pracovný deň" + +msgid "Weighted position" +msgstr "" + +#, fuzzy +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"Vitajte v strihovom editore.\n" +"\n" +"Nájdite zaÄiatok materiálu, ktorý chcete vystrihnúť. StlaÄte OK, zvoľte „zaÄiatok strihu“\n" +"\n" +"Potom nájdite koniec, stlaÄte OK, zvoľte „koniec strihu“ To je vÅ¡etko." + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" + +msgid "Welcome..." +msgstr "Vitajte..." + +msgid "West" +msgstr "západne" + +msgid "West limit set" +msgstr "" + +msgid "What do you want to scan?" +msgstr "ÄŒo chcete vyhľadaÅ¥?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "" + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "" + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "" + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "" + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "" + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "" + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "" + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "" + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "" + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "" + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "" + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "" + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "" + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "" + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "" + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "" + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "" + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "" + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "" + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "" + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "" + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "" + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "" + +msgid "When enabled, number markers will be hiden." +msgstr "" + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "" + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "" + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "" + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "" + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "" + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "" + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "" + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "" + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "" + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "" + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "" + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "" + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "" + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "" + +#, fuzzy +msgid "When enabled, use DHCP for the IP configuration." +msgstr "OtvoriÅ¥ nastavenia DNS" + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "" + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "" + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "" + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "" + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "" + +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"KeÄ resetujete na továrenské nastavenia, stratíte vÅ¡etky konfiguraÄné dáta\n" +"(vrátane buketov, staníc, údajov o satelitoch...)\n" +"Po skonÄení prechodu na továrenské nastavenia sa prijímaÄ automaticky reÅ¡tartuje!\n" +"\n" +"Naozaj chcete resetovaÅ¥ na továrenské nastavenia?" + +msgid "Where do you want to backup your settings?" +msgstr "Kam chcete zálohovaÅ¥ svoje nastavenia?" + +msgid "Where to save temporary timeshift recordings?" +msgstr "Kam uložiÅ¥ doÄasné záznamy s posunom Äasu?" + +msgid "Wireless LAN" +msgstr "Bezdrôtová LAN" + +#, fuzzy +msgid "Wireless network" +msgstr "Bezdrôtová sieÅ¥" + +#, fuzzy +msgid "Wireless network configuration..." +msgstr "Nastavenie bezdrôtovej siete." + +msgid "Wireless network connection setup" +msgstr "Nastavenie bezdrôtovej siete" + +msgid "Wireless network connection setup." +msgstr "Nastavenie bezdrôtovej siete." + +msgid "Wireless network state" +msgstr "Stav bezdrôtovej siete" + +msgid "With popup" +msgstr "" + +msgid "Without popup" +msgstr "" + +msgid "Would you like to install a softcam?" +msgstr "" + +msgid "Write error while recording. Disk full?\n" +msgstr "Chyba zápisu pri nahrávaní. Plný disk?\n" + +msgid "Write failed!" +msgstr "Zápis zlyhal!" + +msgid "YPbPr" +msgstr "YPbPr" + +msgid "Year" +msgstr "Rok" + +msgid "Yellow DVB subtitles" +msgstr "" + +msgid "Yes" +msgstr "Ãno" + +msgid "Yes and save" +msgstr "" + +msgid "Yes and save in movie dir" +msgstr "" + +msgid "Yes to all" +msgstr "Ãno pre vÅ¡etky" + +msgid "Yes, always" +msgstr "Ãno, vždy" + +msgid "Yes, and delete this movie" +msgstr "Ãno, a zmazaÅ¥ tento film" + +msgid "Yes, backup my settings!" +msgstr "Ãno, zálohovaÅ¥ nastavenia!" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +msgid "Yes, do a manual scan now" +msgstr "Ãno, teraz vyhľadávaÅ¥ ruÄne" + +msgid "Yes, do an automatic scan now" +msgstr "Ãno, teraz vyhľadávaÅ¥ automaticky" + +msgid "Yes, do another manual scan now" +msgstr "Ãno, urobiÅ¥ ÄalÅ¡ie ruÄné vyhľadávanie" + +msgid "Yes, perform a shutdown now." +msgstr "Ãno, teraz vypnúť." + +msgid "Yes, restore the settings now" +msgstr "Ãno, teraz obnoviÅ¥ nastavenia" + +msgid "Yes, returning to movie list" +msgstr "Ãno, vrátiÅ¥ sa do zoznamu filmov" + +msgid "Yesterday" +msgstr "" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" + +msgid "You can cancel the installation." +msgstr "Môžete zruÅ¡iÅ¥ inÅ¡taláciu." + +msgid "You can cancel the removal." +msgstr "Môžete zruÅ¡iÅ¥ odstránenie." + +msgid "You can continue watching TV etc. while this is running." +msgstr "" + +msgid "You can install this plugin." +msgstr "Môžete nainÅ¡talovaÅ¥ tento modul." + +msgid "You can only burn receiver recordings!" +msgstr "" + +msgid "You can remove this plugin." +msgstr "Tento modul môžete odstrániÅ¥!" + +msgid "You cannot delete this!" +msgstr "Toto nemôžete zmazaÅ¥!" + +msgid "You didn't select a channel to record from." +msgstr "Nezvolili ste stanicu, z ktorej sa má nahrávaÅ¥." + +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "Vybrali ste si zálohovanie nastavení. StlaÄením tlaÄidla OK spustíte zálohovanie." + +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "Zvolili ste si vytvorenie nového bootovateľného USB kľúÄa pre zápis .NFI. Pritom sa vytvorí nová partícia na kľúÄi a stratíte vÅ¡etky dáta, ktoré sú na ňom." + +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "Vybrali ste si obnovu nastavení. Po obnovení sa Enigma2 reÅ¡tartuje. StlaÄením tlaÄidla OK spustíte obnovu." + +#, python-format +msgid "You have to wait %s!" +msgstr "Musíte ÄakaÅ¥ %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" + +msgid "You system does not support ext4" +msgstr "" + +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "Zálohovanie sa podarilo.Teraz vysvetlíme Äalší postup pri aktualizácii." + +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "Zostava presahuje kapacitu jednovrstvového média. Potrebujete prázdny dvojvrstvový disk DVD!" + +msgid "Your current collection will get lost!" +msgstr "VaÅ¡a aktuálna zostava sa stratí." + +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"Firmvér frontprocesora sa musí aktualizovaÅ¥.\n" +"StlaÄením tlaÄidla OK spustíte aktualizáciu." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"Internetové pripojenie nefunguje!\n" +"Zvoľte, Äo chcete robiÅ¥ Äalej." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "" + +msgid "Your network configuration has been activated." +msgstr "Nastavenie siete bolo aktivované." + +msgid "Your receiver does not have an internet connection" +msgstr "" + +#, fuzzy +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"Váš Dreambox je teraz pripravený na používanie.\n" +"\n" +"Internetové pripojenie funguje.\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" + +msgid "Your receiver is rebooting" +msgstr "" + +msgid "Your receiver is shutting down" +msgstr "" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "" + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "" + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "" + +msgid "Your receiver will got to standby due to inactivity." +msgstr "" + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "" + +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"Internetové pripojenie bezdrôtovou LAN sa nedá spustiÅ¥!\n" +"Pripojili ste kÄ¾ÃºÄ USB WLAN?\n" +"\n" +"Zvoľte, Äo chcete robiÅ¥ Äalej." + +msgid "Zap" +msgstr "" + +msgid "Zap back to previously tuned service?" +msgstr "Prepnúť späť na predtým naladenú stanicu?" + +msgid "Zap back to service before positioner setup?" +msgstr "Prepnúť späť na stanicu spred nastavovania motora?" + +msgid "Zap back to service before tuner setup?" +msgstr "Prepnúť späť na stanicu spred nastavovania tunera?" + +msgid "Zap focus to Picture in Picture" +msgstr "" + +msgid "Zap focus to main screen" +msgstr "" + +msgid "Zap mode" +msgstr "" + +msgid "Zap to selected channel" +msgstr "" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "" + +msgid "[alternative edit]" +msgstr "[úprava alternatív]" + +msgid "[bouquet edit]" +msgstr "[úprava buketu]" + +msgid "[favourite edit]" +msgstr "[úprava obľúbených]" + +msgid "[move mode]" +msgstr "[presun]" + +msgid "a gui to assign services/providers to common interface modules" +msgstr "GUI na priradenie staníc a poskytovateľov k modulom CI" + +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "GUI na priradenie staníc, poskytovateľov a CAId k modulom CI" + +msgid "abort alternatives edit" +msgstr "zruÅ¡iÅ¥ úpravu alternatív" + +msgid "abort bouquet edit" +msgstr "zruÅ¡iÅ¥ úpravu buketu" + +msgid "abort favourites edit" +msgstr "zruÅ¡iÅ¥ úpravu obľúbených" + +msgid "about to start" +msgstr "hneÄ zaÄne" + +msgid "activate network adapter configuration" +msgstr "aktivovaÅ¥ konfiguráciu sieÅ¥ového adaptéra" + +msgid "add alternatives" +msgstr "pridaÅ¥ alternatívy" + +msgid "add bookmark" +msgstr "pridaÅ¥ záložku" + +msgid "add bouquet" +msgstr "pridaÅ¥ buket" + +msgid "add marker" +msgstr "pridaÅ¥ znaÄku" + +msgid "add service to bouquet" +msgstr "pridaÅ¥ stanicu do buketu" + +msgid "add service to favourites" +msgstr "pridaÅ¥ stanicu do obľúbených" + +msgid "add to parental protection" +msgstr "pridaÅ¥ k rodiÄovskej zámke" + +msgid "adult movie/drama" +msgstr "" + +msgid "advanced" +msgstr "rozšírené" + +msgid "adventure/western/war" +msgstr "" + +msgid "advertisement/shopping" +msgstr "" + +msgid "after " +msgstr "" + +#, fuzzy +msgid "alphabetic" +msgstr "triediÅ¥ podľa abecedy" + +msgid "alphabetic reverse" +msgstr "" + +msgid "alternative" +msgstr "" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "" + +msgid "arts/culture magazine" +msgstr "" + +msgid "athletics" +msgstr "" + +msgid "audio tracks" +msgstr "zvukové stopy" + +msgid "auto" +msgstr "auto" + +#, fuzzy +msgid "automatic" +msgstr "Automaticky" + +msgid "back" +msgstr "späť" + +msgid "background image" +msgstr "obraz v pozadí" + +msgid "ballet" +msgstr "" + +#, python-format +msgid "bc%s" +msgstr "" + +msgid "better" +msgstr "lepÅ¡ie" + +msgid "black" +msgstr "Äierna" + +msgid "black & white" +msgstr "" + +msgid "blacklist" +msgstr "Äierna listina" + +msgid "blue" +msgstr "modrá" + +msgid "broadcasting/press" +msgstr "" + +#, fuzzy +msgid "by date" +msgstr "triediÅ¥ podľa dátumu" + +msgid "cartoon/puppets" +msgstr "" + +msgid "center" +msgstr "" + +msgid "centered" +msgstr "" + +msgid "centered, wrapped" +msgstr "" + +msgid "chapters" +msgstr "kapitoly" + +msgid "childrens's/youth program (general)" +msgstr "" + +msgid "circular left" +msgstr "kruhová ľavá" + +msgid "circular right" +msgstr "kruhová pravá" + +msgid "comedy" +msgstr "" + +msgid "complex" +msgstr "komplexné" + +msgid "config menu" +msgstr "menu nast." + +msgid "confirmed" +msgstr "potvrdené" + +msgid "connected" +msgstr "pripojené" + +msgid "continue" +msgstr "pokraÄ." + +msgid "cooking" +msgstr "" + +msgid "copy to bouquets" +msgstr "skopírovaÅ¥ do buketov" + +msgid "create directory" +msgstr "vytvoriÅ¥ adresár" + +#, python-format +msgid "currently installed image: %s" +msgstr "Aktuálne nainÅ¡talovaný image: %s" + +msgid "daily" +msgstr "denne" + +msgid "day" +msgstr "deň" + +#, fuzzy +msgid "default" +msgstr "Predvolené" + +msgid "delete cut" +msgstr "zmazaÅ¥ strih" + +msgid "delete..." +msgstr "" + +msgid "descramble and record ecm" +msgstr "" + +msgid "detective/thriller" +msgstr "" + +msgid "disable" +msgstr "zruÅ¡iÅ¥" + +msgid "disable move mode" +msgstr "zruÅ¡iÅ¥ presun" + +msgid "disabled" +msgstr "zruÅ¡ené" + +msgid "disconnected" +msgstr "odpojené" + +msgid "discussion/interview/debate" +msgstr "" + +msgid "do nothing" +msgstr "niÄ nerobiÅ¥" + +msgid "documentary" +msgstr "" + +msgid "don't descramble, record ecm" +msgstr "" + +msgid "done!" +msgstr "Hotovo!" + +msgid "east" +msgstr "" + +msgid "economics/social advisory" +msgstr "" + +msgid "edit alternatives" +msgstr "UpraviÅ¥ alternatívy" + +msgid "education/science/factual topics (general)" +msgstr "" + +msgid "empty" +msgstr "prázdne" + +msgid "enable" +msgstr "zapnúť" + +msgid "enable bouquet edit" +msgstr "zapnúť úpravu buketu" + +msgid "enable favourite edit" +msgstr "zapnúť úpravu obľúbených" + +msgid "enable move mode" +msgstr "zapnúť presun" + +msgid "enabled" +msgstr "zapnuté" + +msgid "end alternatives edit" +msgstr "skonÄiÅ¥ úpravu alternatív" + +msgid "end bouquet edit" +msgstr "skonÄiÅ¥ úpravu buketu" + +msgid "end cut here" +msgstr "strih konÄí tu" + +msgid "end favourites edit" +msgstr "skonÄiÅ¥ úpravu obľúbených" + +msgid "entertainment (10-16 year old)" +msgstr "" + +msgid "entertainment (6-14 year old)" +msgstr "" + +msgid "equal to" +msgstr "rovná sa" + +msgid "equestrian" +msgstr "" + +msgid "exit DVD player or return to file browser" +msgstr "zatvoriÅ¥ prehrávaÄ DVD alebo sa vrátiÅ¥ do správcu súborov" + +msgid "exit movielist" +msgstr "" + +msgid "exit network adapter configuration" +msgstr "zatvoriÅ¥ nastavovanie sieÅ¥ového adaptéra" + +msgid "exit networkadapter setup menu" +msgstr "zatvoriÅ¥ menu nastavení sieÅ¥ových rozhraní" + +msgid "experimental film/video" +msgstr "" + +msgid "false" +msgstr "" + +msgid "fashion" +msgstr "" + +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "formáty súborov (BMP, PNG, JPG, GIF)" + +msgid "filename" +msgstr "názov súboru" + +msgid "film/cinema" +msgstr "" + +msgid "fine arts" +msgstr "" + +msgid "fine-tune your display" +msgstr "jemné nastavenie obrazu" + +msgid "fitness & health" +msgstr "" + +#, fuzzy +msgid "flat alphabetic" +msgstr "triediÅ¥ podľa abecedy" + +#, fuzzy +msgid "flat alphabetic reverse" +msgstr "triediÅ¥ podľa abecedy" + +msgid "folk/traditional music" +msgstr "" + +msgid "football/soccer" +msgstr "" + +msgid "foreign countries/expeditions" +msgstr "" + +msgid "forward to the next chapter" +msgstr "preskoÄiÅ¥ na ÄalÅ¡iu kapitolu" + +msgid "free" +msgstr "voľných" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "" + +msgid "game show/quiz/contest" +msgstr "" + +msgid "gardening" +msgstr "" + +msgid "go to deep standby" +msgstr "prejsÅ¥ do vypnutia" + +msgid "go to standby" +msgstr "prejsÅ¥ do pohotovostného režimu" + +msgid "grab this frame as bitmap" +msgstr "ZachytiÅ¥ toto políÄko ako bitmapu" + +msgid "green" +msgstr "zelená" + +msgid "handicraft" +msgstr "" + +msgid "height" +msgstr "" + +msgid "help..." +msgstr "Pomoc..." + +msgid "horizontal" +msgstr "vodorovná" + +msgid "information/education/school program" +msgstr "" + +msgid "init module" +msgstr "inic. modul" + +msgid "init modules" +msgstr "inic. moduly" + +msgid "insert mark here" +msgstr "sem vložiÅ¥ znaÄku" + +msgid "invalid type" +msgstr "" + +msgid "jazz" +msgstr "" + +msgid "jump back to the previous title" +msgstr "skok vzad na predchádzajúci titul" + +msgid "jump forward to the next title" +msgstr "skok vpred na nasledujúci titul" + +msgid "languages" +msgstr "" + +msgid "leave movie player..." +msgstr "ukonÄiÅ¥ prehrávaÄ médií..." + +msgid "left" +msgstr "doľava" + +msgid "left, wrapped" +msgstr "" + +msgid "leisure hobbies (general)" +msgstr "" + +msgid "length" +msgstr "dĺžka" + +msgid "limit ..., aborting !" +msgstr "" + +msgid "list style compact" +msgstr "kompaktný zoznam" + +msgid "list style compact with description" +msgstr "kompaktný zoznam s opisom" + +msgid "list style default" +msgstr "predvolený zoznam" + +msgid "list style single line" +msgstr "jednoriadkový zoznam" + +msgid "literature" +msgstr "" + +msgid "live broadcast" +msgstr "" + +msgid "locked" +msgstr "zachytený" + +msgid "loopthrough to" +msgstr "prepojiÅ¥ s" + +msgid "magazines/reports/documentary" +msgstr "" + +msgid "manual" +msgstr "ruÄne" + +msgid "martial sports" +msgstr "" + +msgid "medicine/physiology/psychology" +msgstr "" + +msgid "menu" +msgstr "menu" + +msgid "mins" +msgstr "min" + +msgid "minutes" +msgstr "minút" + +msgid "month" +msgstr "mesiac" + +msgid "motor sport" +msgstr "" + +msgid "motoring" +msgstr "" + +msgid "move down to last entry" +msgstr "nadol na poslednú položku" + +msgid "move down to next entry" +msgstr "nadol na nasledujúcu položku" + +msgid "move up to first entry" +msgstr "nahor na prvú položku" + +msgid "move up to previous entry" +msgstr "nahor na predchádzajúcu položku" + +msgid "movie/drama (general)" +msgstr "" + +msgid "multinorm" +msgstr "viacnormový" + +msgid "music/ballet/dance (general)" +msgstr "" + +msgid "musical/opera" +msgstr "" + +msgid "nature/animals/environment" +msgstr "" + +msgid "never" +msgstr "nikdy" + +msgid "new media" +msgstr "" + +msgid "news magazine" +msgstr "" + +msgid "news/current affairs (general)" +msgstr "" + +msgid "news/weather report" +msgstr "" + +msgid "no" +msgstr "nie" + +msgid "no CAId selected" +msgstr "nie je zvolený CAId" + +msgid "no CI slots found" +msgstr "nenájdené otvory CI" + +msgid "no module found" +msgstr "Nenájdený modul" + +msgid "no storage devices found" +msgstr "" + +msgid "none" +msgstr "žiadne" + +msgid "normal" +msgstr "" + +msgid "not configured" +msgstr "nenakonfigurované" + +msgid "not locked" +msgstr "nie je signál" + +msgid "not supported" +msgstr "nepodporované" + +msgid "not used" +msgstr "nepoužité" + +msgid "nothing connected" +msgstr "niÄ nie je pripojené" + +msgid "of a DUAL layer medium used." +msgstr "dvojvrstvového média využitých." + +msgid "of a SINGLE layer medium used." +msgstr "jednovrstvového média využitých." + +msgid "off" +msgstr "vyp." + +msgid "offset is" +msgstr "" + +msgid "on" +msgstr "zap." + +msgid "on READ ONLY medium." +msgstr "na nezapisovateľné médium." + +msgid "on end of movie" +msgstr "" + +msgid "once" +msgstr "raz" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +msgid "open nameserver configuration" +msgstr "OtvoriÅ¥ nastavenia DNS" + +msgid "original" +msgstr "" + +msgid "original language" +msgstr "" + +msgid "pass" +msgstr "prechod" + +msgid "performing arts" +msgstr "" + +msgid "play as picture in picture" +msgstr "" + +msgid "play in mainwindow" +msgstr "" + +msgid "please press OK when ready" +msgstr "KeÄ budete pripravení, stlaÄte tlaÄidlo OK." + +msgid "please wait, loading picture..." +msgstr "ÄŒakajte, nahrávam obraz..." + +msgid "popular culture/traditional arts" +msgstr "" + +msgid "pre-school children's program" +msgstr "" + +msgid "receiver software because updates are available." +msgstr "" + +msgid "record" +msgstr "nahraÅ¥" + +msgid "recording..." +msgstr "nahrávam..." + +msgid "red" +msgstr "Äervená" + +msgid "religion" +msgstr "" + +msgid "remarkable people" +msgstr "" + +msgid "remove after this position" +msgstr "odstrániÅ¥ za touto pozíciou" + +msgid "remove all alternatives" +msgstr "odstrániÅ¥ vÅ¡etky alternatívy" + +msgid "remove all new found flags" +msgstr "odstrániÅ¥ vÅ¡etky znaÄky pre novonájdené" + +msgid "remove before this position" +msgstr "odstrániÅ¥ pred touto pozíciou" + +msgid "remove bookmark" +msgstr "odstrániÅ¥ záložku" + +msgid "remove directory" +msgstr "odstrániÅ¥ adresár" + +msgid "remove entry" +msgstr "odstrániÅ¥ položku" + +msgid "remove from parental protection" +msgstr "odstrániÅ¥ z rodiÄovskej zámky" + +msgid "remove new found flag" +msgstr "odstrániÅ¥ znaÄku novonájdenej stanice" + +msgid "remove selected satellite" +msgstr "odstrániÅ¥ zvolený satelit" + +msgid "remove this mark" +msgstr "odstrániÅ¥ túto znaÄku" + +msgid "rename entry" +msgstr "" + +msgid "repeat playlist" +msgstr "zopakovaÅ¥ zoznam prehrávok" + +msgid "repeated" +msgstr "opakované" + +msgid "reverse by date" +msgstr "" + +msgid "rewind to the previous chapter" +msgstr "previnúť na predchádzajúcu kapitolu" + +msgid "right" +msgstr "doprava" + +msgid "right, wrapped" +msgstr "" + +msgid "rock/pop" +msgstr "" + +msgid "romance" +msgstr "" + +msgid "save last directory on exit" +msgstr "pri ukonÄení uložiÅ¥ posledný adresár" + +msgid "save playlist on exit" +msgstr "pri ukonÄení uložiÅ¥ zoznam prehrávok" + +msgid "scan state" +msgstr "stav vyhľadávania" + +msgid "science fiction/fantasy/horror" +msgstr "" + +msgid "second cable of motorized LNB" +msgstr "druhý kábel motorizovaného LNB" + +msgid "seconds" +msgstr "sekúnd" + +msgid "select" +msgstr "zvoliÅ¥" + +msgid "select CAId's" +msgstr "zvoliÅ¥ CAIdy" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +msgid "select menu entry" +msgstr "zvoliÅ¥ položku menu" + +msgid "select movie" +msgstr "zvoliÅ¥ film" + +msgid "select the movie path" +msgstr "" + +msgid "serious music/classic music" +msgstr "" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "" + +msgid "service PIN" +msgstr "PIN stanice" + +msgid "set as startup service" +msgstr "" + +msgid "setup PIN" +msgstr "PIN nastavení" + +msgid "show DVD main menu" +msgstr "zobraziÅ¥ hlavné menu DVD" + +msgid "show all tags" +msgstr "" + +msgid "show alternatives" +msgstr "zobraziÅ¥ alternatívy" + +msgid "show event details" +msgstr "zobraziÅ¥ údaje o programe" + +msgid "show extended description" +msgstr "" + +msgid "show mediaplayer on mainmenu" +msgstr "" + +msgid "show softwaremanager in setup menu" +msgstr "" + +msgid "show softwaremanager on blue button" +msgstr "" + +msgid "show tag menu" +msgstr "" + +msgid "show transponder info" +msgstr "zobraziÅ¥ infor. o transpondéri" + +msgid "show/game show (general)" +msgstr "" + +msgid "shuffle" +msgstr "" + +msgid "shut down" +msgstr "vypnúť" + +msgid "simple" +msgstr "jednoduché" + +msgid "skip backward" +msgstr "skok vzad" + +msgid "skip forward" +msgstr "skok vpred" + +msgid "soap/melodram/folkloric" +msgstr "" + +msgid "social/political issues/economics (general)" +msgstr "" + +msgid "social/spiritual science" +msgstr "" + +msgid "sorting of playlists" +msgstr "" + +msgid "special characters" +msgstr "zvláštne znaky" + +msgid "special events" +msgstr "" + +msgid "special format data DVD (HDTV compatible)" +msgstr "" + +msgid "sports (general)" +msgstr "" + +msgid "sports magazine" +msgstr "" + +msgid "standard" +msgstr "Å¡tand." + +msgid "start cut here" +msgstr "zaÄiatok strihu tu" + +msgid "start directory" +msgstr "poÄiatoÄný adresár" + +msgid "stepsize" +msgstr "" + +msgid "stereo" +msgstr "stereo" + +msgid "stop using as startup service" +msgstr "" + +msgid "switch to bookmarks" +msgstr "prepnúť na záložky" + +msgid "switch to filelist" +msgstr "prepnúť na zoznam súborov" + +msgid "switch to the next angle" +msgstr "prepnúť na nasledujúci uhol kamery" + +msgid "switch to the next audio track" +msgstr "prepnúť na nasledujúcu zvukovú stopu" + +msgid "switch to the next subtitle language" +msgstr "prepnúť na nasledujúci jazyk podtitulkov" + +msgid "talk show" +msgstr "" + +msgid "team sports" +msgstr "" + +msgid "technology/natural science" +msgstr "" + +msgid "template file" +msgstr "Å¡ablóna" + +msgid "tennis/squash" +msgstr "" + +msgid "this recording" +msgstr "táto nahrávka" + +msgid "this service is protected by a parental control pin" +msgstr "táto stanica je chránená rodiÄovskou zámkou" + +msgid "toggle time, chapter, audio, subtitle info" +msgstr "prepnúť informácie o Äase, kapitole, zvuku a podtitulkoch" + +msgid "top" +msgstr "" + +msgid "tourism/travel" +msgstr "" + +msgid "true" +msgstr "" + +msgid "unavailable" +msgstr "nedostupné" + +msgid "unconfirmed" +msgstr "nepotvrdené" + +msgid "undefined" +msgstr "" + +msgid "unknown" +msgstr "neznáme" + +msgid "unknown service" +msgstr "neznáma stanica" + +msgid "unpublished" +msgstr "" + +msgid "until standby/restart" +msgstr "do vypnutia alebo reÅ¡tartu" + +msgid "user defined" +msgstr "užívateľsky definované" + +msgid "variety show" +msgstr "" + +msgid "vertical" +msgstr "zvislá" + +msgid "wait for ci..." +msgstr "ÄakaÅ¥ na ci..." + +msgid "wait for mmi..." +msgstr "ÄakaÅ¥ na mmi..." + +msgid "waiting" +msgstr "Äakám" + +msgid "water sport" +msgstr "" + +msgid "weekly" +msgstr "týždenne" + +msgid "west" +msgstr "" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "" + +msgid "whitelist" +msgstr "biela listina" + +msgid "width" +msgstr "" + +msgid "winter sport" +msgstr "" + +msgid "wireless network interface" +msgstr "rozhranie bezdrôtovej siete" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +msgid "working" +msgstr "pracujem" + +msgid "yellow" +msgstr "žltá" + +msgid "yes" +msgstr "áno" + +msgid "yes (keep feeds)" +msgstr "áno (zachovaÅ¥ feedy)" + +msgid "zap" +msgstr "prepnúť" + +msgid "zap and record" +msgstr "" + +msgid "zapped" +msgstr "prepnuté" + +#~ msgid "AA" +#~ msgstr "AA" + +#~ msgid "AB" +#~ msgstr "AB" + +#, fuzzy +#~ msgid "Activate PiP" +#~ msgstr "Zapnúť obraz v obraze" + +#, fuzzy +#~ msgid "Add/remove timer for current event" +#~ msgstr "pridaÅ¥ nahrávanie (zastaviÅ¥ po aktuálnom programe)" + +#, fuzzy +#~ msgid "All satellites" +#~ msgstr "VÅ¡etky satelity" + +#~ msgid "BA" +#~ msgstr "BA" + +#~ msgid "BB" +#~ msgstr "BB" + +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "Funkcia tlaÄidla Pauza poÄas pauzy" + +#~ msgid "Committed DiSEqC command" +#~ msgstr "Potvrdený príkaz DiSEqC" + +#~ msgid "DiSEqC repeats" +#~ msgstr "Opakovania DiSEqC" + +#~ msgid "No satellite frontend found!!" +#~ msgstr "Nebol nájdený satelitný tuner!" + +#~ msgid "Remove timer" +#~ msgstr "ZmazaÅ¥ ÄasovaÄ" + +#~ msgid "Send DiSEqC" +#~ msgstr "PoslaÅ¥ DiSEqC" + +#, fuzzy +#~ msgid "Switch next channel" +#~ msgstr "Nasledujúca stanica" + +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Nepotvrdený príkaz DiSEqC" + +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "Prepnúť späť na stanicu spred hľadania satelitu?" + +#~ msgid "tuner is not supported" +#~ msgstr "tuner nie je podporovaný" diff --git a/po/sl.po b/po/sl.po new file mode 100644 index 0000000..c32e756 --- /dev/null +++ b/po/sl.po @@ -0,0 +1,9590 @@ +msgid "" +msgstr "" +"Project-Id-Version: ENIGMA 2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2012-12-02 18:21+0100\n" +"Last-Translator: Taykun345 <podpora@linux-sprejemniki.info>\n" +"Language-Team: OldSkul <podpora@linux-sprejemniki.info>\n" +"Language: sl_SI\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 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n" +"X-Generator: Poedit 1.5.4\n" + +# +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"Napredne nastavitve." + +# +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"Po pritisku na OK, poÄakajte!" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" +"\n" +"Varnostno kopiranje nastavitev sprejemnika." + +# +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"Sprememba vira za nadgradnjo sprejemnika." + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" +"\n" +"Upravljanje z razÅ¡iritvami in vtiÄniki sprejemnika." + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" +"\n" +"Nadgradnja sprejemnika preko interneta." + +# +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"Za nadaljevanje pritisnite OK." + +# +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"Obnova varnostne kopije glede na datum." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" +"\n" +"Obnovitev nastavitev sprejemnika." + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" +"\n" +"Obnovitev sprejemnika z novo sliko." + +# +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"Iskanje in nameÅ¡Äanje lokalnih razÅ¡iritev." + +# +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Izberite lokacijo za shranitev nastavitev sprejemnika. \n" +"Trenutna lokacija:" + +# +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"Poglejte, namestite in odstranite pakete, ki so nameÅ¡Äeni oz. so na voljo." + +msgid " (PiP)" +msgstr " (PiP)" + +msgid " (Radio)" +msgstr " (Radio)" + +msgid " (TV)" +msgstr " (TV)" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +msgid " extensions." +msgstr "razÅ¡iritve." + +msgid " ms" +msgstr " ms" + +msgid " packages selected." +msgstr " izbranih paketov." + +msgid " updates available." +msgstr " nadgradenj na voljo." + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "%2d:%02d" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "%2d:%02d:%02d" + +msgid "%A %d %B" +msgstr "%A %d %B" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "%A %e %B" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "%A %e %B %Y" + +# +msgid "%H:%M" +msgstr "%S:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "%a %e/%m" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "%a %e/%m %-H:%M" + +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "Trenutno je najden %d kanal" +msgstr[1] "Trenutno sta najdena %d kanala" +msgstr[2] "Trenutno so najdeni %d kanali" +msgstr[3] "Trenutno je najdenih %d kanalov" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "%d datoteka" +msgstr[1] "%d datoteki" +msgstr[2] "%d datoteke" +msgstr[3] "%d datotek" + +# +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d ura" +msgstr[1] "%d uri" +msgstr[2] "%d ure" +msgstr[3] "%d ure" + +# +#, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d opravilo teÄe v ozadju!" +msgstr[1] "%d opravili teÄeta v ozadju!" +msgstr[2] "%d opravila teÄejo v ozadju!" +msgstr[3] "%d opravil teÄe v ozadju!" + +# +#, python-format +msgid "%d min" +msgstr "%d min" + +# +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minuta" +msgstr[1] "%d minuti" +msgstr[2] "%d minute" +msgstr[3] "%d minut" + +# +#, python-format +msgid "%d minutes" +msgstr "%d minut" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +# +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d sekunda" +msgstr[1] "%d sekundi" +msgstr[2] "%d sekunde" +msgstr[3] "%d sekund" + +#, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "%d pod-mapa" +msgstr[1] "%d pod-mapi" +msgstr[2] "%d pod-mape" +msgstr[3] "%d pod-map" + +# +#, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "Najdeno je %d brezziÄno omrežje!" +msgstr[1] "Najdena sta %d brezziÄna omrežja!" +msgstr[2] "Najdena so %d brezziÄna omrežja!" +msgstr[3] "Najdenih je %d brezziÄnih omrežij!" + +msgid "%d-%b-%Y %-H:%M" +msgstr "%a %e/%m %-H:%M" + +msgid "%d-%m" +msgstr "%d-%m" + +# +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "%k:%M %e/%m" + +# +#, python-format +msgid "%s %s free disk space" +msgstr "%s %s praznega prostora na disku" + +# +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "%s ni veÄ v uporabi. Želite, da izvedem izbris?" + +#, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "%s nadgradnja na voljo." +msgstr[1] "%s nadgradnji na voljo." +msgstr[2] "%s nadgradenje na voljo." +msgstr[3] "%s nadgradenj na voljo." + +#, python-format +msgid "%s%d min" +msgstr "" + +#, python-format +msgid "%s/%s: %s" +msgstr "%s/%s: %s" + +# +msgid "(ZAP)" +msgstr "(preklop)" + +# +msgid "(empty)" +msgstr "(prazno)" + +# +msgid "(show optional DVD audio menu)" +msgstr "(prikaz opcijskega DVD avdio menija)" + +# +msgid "* Only available if more than one interface is active." +msgstr "* Na voljo samo kadar je hkrati aktivnih veÄ vmesnikov." + +msgid "/s" +msgstr "" + +# +msgid "0" +msgstr "0" + +# +msgid "1" +msgstr "1" + +# +msgid "1.0" +msgstr "1.0" + +# +msgid "1.1" +msgstr "1.1" + +# +msgid "1.2" +msgstr "1.2" + +# +msgid "12V output" +msgstr "12V izhod" + +# +msgid "13 V" +msgstr "13 V" + +# +msgid "16:10" +msgstr "16:10" + +# +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +# +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +# +msgid "16:9" +msgstr "16:9" + +# +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +# +msgid "16:9 always" +msgstr "vedno 16:9 " + +# +msgid "18 V" +msgstr "18 V" + +# +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "" + +msgid "24" +msgstr "" + +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +# +msgid "3" +msgstr "3" + +msgid "30" +msgstr "" + +msgid "3d mode" +msgstr "3D naÄin" + +# +msgid "4" +msgstr "4" + +# +msgid "4:3" +msgstr "4:3" + +# +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +# +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +# +msgid "5" +msgstr "5" + +# +msgid "6" +msgstr "6" + +# +msgid "7" +msgstr "7" + +# +msgid "8" +msgstr "8" + +# +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +# +msgid "<Current movielist location>" +msgstr "<Trenutna \"movielist\" lokacija>" + +# +msgid "<Default movie location>" +msgstr "<Privzeta \"movie\" lokacija>" + +# +msgid "<Last timer location>" +msgstr "<PrejÅ¡nja \"timer\" lokacija>" + +# +msgid "<unknown>" +msgstr "<nepoznano>" + +# +msgid "??" +msgstr "??" + +# +msgid "A" +msgstr "A" + +# +#, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"Nastavitvena datoteka (%s) je bila po namestitvi spremenjena.\n" +"Želite obdržati vaÅ¡o razliÄico datoteke?" + +# +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"Datoteka nastavitev (%s) je po namestitvi bila spremenjena.\n" +"Želite obdržati vaÅ¡o razliÄico datoteke?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"ZakljuÄen Äasovnik želi vaÅ¡ sprejemnik\n" +"poslati v stanje pripravljenosti. Naj to stori sedaj?" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"ZakljuÄen Äasovnik želi vaÅ¡ sprejemnik\n" +"poslati v globoko spanje. Naj to stori sedaj?" + +# +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "GrafiÄni EPG za vse kanale izbranega paketa" + +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"PriÄelo se je snemanje kanala:\n" +"%s" + +# +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"Trenutno poteka snemanje kanala.\n" +"Kaj želite storiti?" + +# +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "Trenutno poteka snemanje. ÄŒe želite spreminjati nastavitve, ustavite snemanje trenutnega kanala!" + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "Trenutno v ozadju poteka snemanje. ÄŒe želite priÄeti s pregledovanjem, ustavite snemanje." + +# +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "Trenutno poteka snemanje. ÄŒe želite iskati satelite, ustavite snemanje trenutnega kanala!" + +# +#, python-format +msgid "A required tool (%s) was not found." +msgstr "Zahtevanega orodja (%s) ni mogoÄe najti." + +# +msgid "A search for available updates is currently in progress." +msgstr "Trenutno poteka iskanje nadgradenj ..." + +# +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"Najden je bil Å¡e en vmesnik.\n" +"Ga želite izkljuÄiti?" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"ÄŒasovnik spanja želi vaÅ¡ sprejemnik\n" +"poslati v stanje pripravljenosti. Naj to stori sedaj?" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"ÄŒasovnik spanja želi vaÅ¡ sprejemnik\n" +"poslati v globoko spanje. Naj to stori sedaj?" + +# +msgid "A small overview of the available icon states and actions." +msgstr "" + +# +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"ÄŒasovnik ni uspel zagnati snemanja.\n" +"Poskusim ponovno?\n" + +# +msgid "A/V settings" +msgstr "Zvok/Slika" + +# +msgid "AC3/DTS downmix" +msgstr "Pretvorba AC3/DTS zvoka v stereo" + +# +msgid "Abort" +msgstr "PrekliÄi" + +# +msgid "About" +msgstr "Informacije o OpenPLi sliki" + +# +msgid "About..." +msgstr "O programu" + +# +msgid "Accesspoint:" +msgstr "Dostopna toÄka:" + +# +msgid "Action on long powerbutton press" +msgstr "Dogodek pri dolgem držanju tipke za vklop" + +# +msgid "Action on short powerbutton press" +msgstr "Dogodek pri kratkem držanju tipke za vklop" + +# +msgid "Activate Picture in Picture" +msgstr "Aktivacija Slike v Sliki" + +# +msgid "Activate current configuration" +msgstr "Aktiviranje trenutnih nastavitev" + +# +msgid "Activate network settings" +msgstr "Aktiviranje omrežnih nastavitev" + +# +msgid "Activate the configured network settings." +msgstr "Aktiviranje omrežnih nastavitev" + +# +msgid "Adapter settings" +msgstr "Nastavitve mrežnega vmesnika" + +# +msgid "Add" +msgstr "Dodajanje" + +msgid "Add Bookmark" +msgstr "" + +# +msgid "Add a mark" +msgstr "Nov zaznamek" + +# +msgid "Add a nameserver entry" +msgstr "Nov imenski strežnik" + +# +msgid "Add a new title" +msgstr "Nov naslov" + +# +msgid "Add bookmark" +msgstr "Nov zaznamek" + +# +msgid "Add directory to playlist" +msgstr "Dodajanje mape v seznam za predvajanje" + +# +msgid "Add file to playlist" +msgstr "Dodajanje datoteke v seznam za predvajanje" + +# +msgid "Add files to playlist" +msgstr "Dodajanje datoteke v seznam za predvajanje" + +# +msgid "Add more details to the crash log" +msgstr "Bolj podroben dnevnik napak" + +# +msgid "Add provider" +msgstr "Nov ponudnik" + +# +msgid "Add recording (enter recording duration)" +msgstr "Novo snemanje (potreben je vnos dolžine snemanja)" + +# +msgid "Add recording (enter recording endtime)" +msgstr "Novo snemanje (potreben je vnos Äasa konca snemanja)" + +# +msgid "Add recording (indefinitely)" +msgstr "Novo snemanje (Äas je nedoloÄen)" + +# +msgid "Add recording (stop after current event)" +msgstr "Novo snemanje (snemanje se zakljuÄi po koncu trenutnega dogodka)" + +# +msgid "Add service" +msgstr "Nov kanal" + +# +msgid "Add timer" +msgstr "Nov Äasovnik" + +# +msgid "Add title" +msgstr "Dodajanje naslova" + +# +msgid "Add to bouquet" +msgstr "Dodajanje v paket" + +# +msgid "Add to favourites" +msgstr "Dodajanje med priljubljene" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "" + +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "" + +msgid "Advanced" +msgstr "" + +# +msgid "Advanced options" +msgstr "Napredne nastavitve" + +# +msgid "Advanced restore" +msgstr "Napredna obnovitev" + +# +msgid "Advanced software" +msgstr "Napredna programska oprema" + +# +msgid "Advanced software plugin" +msgstr "Advanced Software vtiÄnik" + +# +msgid "Advanced video enhancement setup" +msgstr "Napredne video nastavitve" + +# +msgid "Advanced video setup" +msgstr "Napredne video nastavitve" + +# +msgid "After event" +msgstr "Po dogodku" + +# +msgid "Album" +msgstr "Album" + +msgid "Alignment of events" +msgstr "" + +msgid "Alignment of service names" +msgstr "" + +# +msgid "All" +msgstr "Vse" + +msgid "All ages" +msgstr "" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "" + +msgid "Allocate unused memory index" +msgstr "" + +msgid "Allow quit movieplayer with exit" +msgstr "" + +# +msgid "Allow subtitle language to equal audio language" +msgstr "Podnapisi naj se ujemajo z zvoÄno sledjo" + +# +msgid "Allow subtitles for hearing impaired" +msgstr "Dovoli podnapise za gluhe osebe" + +# +msgid "Alpha" +msgstr "Alpha" + +# +msgid "Alternative" +msgstr "Dodajanje alternativ" + +# +msgid "Alternative numbering mode" +msgstr "Alternativno Å¡tevilÄenje kanalov" + +# +msgid "Alternative services tuner priority" +msgstr "Vrstni red kanalnikov" + +msgid "Always ask" +msgstr "Vedno vpraÅ¡aj" + +msgid "Always hide infobar" +msgstr "" + +# +msgid "An empty filename is illegal." +msgstr "Prazno ime datoteke ni dovoljeno." + +# +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "PriÅ¡lo je do napake pri prenosu seznama paketov. Poskusite ponovno." + +# +msgid "An unknown error occurred!" +msgstr "Pojavila se je neznana napaka!" + +msgid "And will put your receiver in standby over " +msgstr "" + +msgid "Any activity" +msgstr "" + +# +msgid "Arabic" +msgstr "Arabsko" + +msgid "Are you sure to remove this entry?" +msgstr "" + +# +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"Ste prepriÄani da želite aktivirati te omrežne nastavitve?\n" +"\n" + +# +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"Ste prepriÄani, da želite izbrisati\n" +"izbrano varnostno kopijo:\n" + +# +msgid "Are you sure you want to exit this wizard?" +msgstr "Ste prepriÄani, da želite zapreti Äarovnik?" + +# +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"Ste prepriÄani, da želite ponovno zagnati vaÅ¡e omrežne vmesnike? \n" +"\n" + +# +#, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Ste prepriÄani, da želite obnoviti\n" +"izbrano varnostno kopijo:\n" +"%s\n" +"Po obnovitvi se bo sprejemnik ponovno zagnal!" + +# +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Ste prepriÄani, da želite obnoviti izbrano varnostno kopijo?\n" +"Po obnovitvi se bo sprejemnik ponovno zagnal!" + +# +msgid "Artist" +msgstr "Izvajalec" + +msgid "Arts/Culture" +msgstr "" + +# +msgid "Ask user" +msgstr "VpraÅ¡ajte uporabnika" + +# +msgid "Aspect ratio" +msgstr "Razmerje slike" + +# +msgid "Assigned CAIds:" +msgstr "Dodeljeni CAIdi:" + +# +msgid "Assigned services/provider:" +msgstr "Dodeljeni kanali/ponudniki:" + +# +msgid "At beginning" +msgstr "Na zaÄetku" + +# +msgid "At end" +msgstr "Na koncu" + +# +msgid "Audio" +msgstr "Zvok" + +msgid "Audio PID" +msgstr "Avdio PID" + +# +msgid "Audio language selection 1" +msgstr "Jezik zvoÄne sledi - 1 " + +msgid "Audio language selection 2" +msgstr "Jezik zvoÄne sledi - 2" + +# +msgid "Audio language selection 3" +msgstr "Jezik zvoÄne sledi - 3" + +# +msgid "Audio language selection 4" +msgstr "Jezik zvoÄne sledi - 4" + +# +msgid "Audio options..." +msgstr "Nastavitve zvoka" + +# +#, python-format +msgid "Audio track (%s) format" +msgstr "Tip zvoÄnega zapisa (%s)" + +# +#, python-format +msgid "Audio track (%s) language" +msgstr "Jezik zvoÄnega zapisa (%s)" + +# +msgid "Author: " +msgstr "Avtor:" + +# +msgid "Authoring mode" +msgstr "Odobritveni naÄin" + +# +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Samodejno" + +# +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Samodejna delitev poglavja vsakih ? minut (0=vedno)" + +# +msgid "Auto flesh" +msgstr "" + +msgid "Auto focus" +msgstr "" + +msgid "Auto focus commencing ..." +msgstr "" + +# +msgid "Auto language selection" +msgstr "Samodejna izbira zvoka in podn." + +# +msgid "Auto scart switching" +msgstr "Samodejno preklapljanje SCART" + +# +msgid "Automatic" +msgstr "Samodejno" + +# +msgid "Automatic scan" +msgstr "Samodejno iskanje " + +msgid "Automatically start timeshift after" +msgstr "" + +msgid "Automatically turn on external subtitles" +msgstr "" + +# +msgid "Available format variables" +msgstr "Razpoložljive oblike" + +# +msgid "B" +msgstr "B" + +# +msgid "BER" +msgstr "BER" + +# +msgid "BER:" +msgstr "BER:" + +# +msgid "Back" +msgstr "Nazaj" + +# +msgid "Background" +msgstr "Ozadje" + +# +msgid "Background color" +msgstr "Barva ozadja" + +msgid "Background delete option" +msgstr "Nastavitev brisanja v ozadju" + +msgid "Background delete speed" +msgstr "Hitrost brisanja v ozadju" + +# +msgid "Backup completed." +msgstr "Varnostno kopiranje je zakljuÄeno." + +# +msgid "Backup failed." +msgstr "Varnostno kopiranje ni uspelo." + +# +msgid "Backup is running..." +msgstr "Poteka varnostno kopiranje ..." + +# +msgid "Backup system settings" +msgstr "Shrani glavne nastavitve" + +# +msgid "Band" +msgstr "Skupina" + +# +msgid "Bandwidth" +msgstr "Prepustnost" + +msgid "Basque" +msgstr "" + +# +msgid "Begin time" +msgstr "ZaÄetek" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +# +msgid "Behavior of 0 key in PiP-mode" +msgstr "Odziv tipke 0 v naÄinu \"slika v sliki\"" + +# +msgid "Behavior when a movie is started" +msgstr "Odziv ob predvajanju filma" + +# +msgid "Behavior when a movie is stopped" +msgstr "Odziv ob ustavljenem filmu" + +# +msgid "Behavior when a movie reaches the end" +msgstr "Odziv ob koncu filma" + +msgid "Big PiP" +msgstr "" + +# +msgid "Bitrate:" +msgstr "Bitrate:" + +# +msgid "Black screen" +msgstr "ÄŒrni zaslon" + +msgid "Black screen till locked" +msgstr "" + +# +msgid "Block noise reduction" +msgstr "" + +# +msgid "Blue boost" +msgstr "" + +# +msgid "Bookmarks" +msgstr "Zaznamki" + +# +msgid "Brightness" +msgstr "Svetlost" + +msgid "Bulgarian" +msgstr "" + +# +msgid "Burn DVD" +msgstr "Posnemi DVD" + +# +#, python-format +msgid "Burn audio track (%s)" +msgstr "ZapiÅ¡i zvoÄni zapis (%s)" + +# +msgid "Burn existing image to DVD" +msgstr "Zapis obstojeÄe slike (image) na DVD" + +# +msgid "Burn to DVD" +msgstr "" + +# +msgid "Bus: " +msgstr "Vodilo:" + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "V osnovi je SNR vrednost prikazana v dB (Äe je to podprto). Ta nastavitev pa omogoÄi, da se SNR vrednost prikazuje v odstotkih." + +# +msgid "C" +msgstr "C" + +# +msgid "C-Band" +msgstr "C-Band" + +msgid "CH" +msgstr "" + +# +msgid "CI assignment" +msgstr "CI dodelitev" + +# +msgid "CVBS" +msgstr "CVBS" + +# +msgid "Cable" +msgstr "Kabel" + +msgid "Cable Scan" +msgstr "Iskanje DVBC kanalov" + +# +msgid "Cache thumbnails" +msgstr "Predpolnjenje sliÄic (thumbnails)" + +msgid "Calculate" +msgstr "IzraÄun" + +msgid "Calculate all positions" +msgstr "IzraÄun vseh položajev" + +msgid "Calculation complete" +msgstr "IzraÄun je konÄan" + +msgid "Calibrate" +msgstr "Kalibracija" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "" + +# +msgid "Cancel" +msgstr "Izhod" + +msgid "Cannot determine" +msgstr "Ni možno doloÄiti" + +msgid "Cannot find any signal ..., aborting !" +msgstr "Signala ni možno najti ..., preklicujem!" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "Premik datotek na drugo napravo za shranjevanje ni možen!" + +msgid "Cannot move to trash can" +msgstr "Prenos v smetnjak ni možen!" + +# +msgid "Capacity: " +msgstr "Kapaciteta:" + +# +msgid "Card" +msgstr "Kartica" + +msgid "Cascade PiP" +msgstr "" + +# +msgid "Center DVB subtitles" +msgstr "Centrirani DVB podnapisi" + +msgid "Center time-labels and remove date" +msgstr "" + +# +msgid "Change bouquets in quickzap" +msgstr "Menjava paketov pri hitrem preklapljanju" + +# +msgid "Change pin code" +msgstr "Sprememba PIN kode" + +# +msgid "Change recording (duration)" +msgstr "Sprememba dolžine snemanja (v minutah)" + +# +msgid "Change recording (endtime)" +msgstr "Sprememba zakljuÄka snemanja" + +msgid "Change repeat and delay settings?" +msgstr "Sprememba nastavitve ponavljanja in zamika?" + +msgid "Change service PIN" +msgstr "Spremenite PIN kodo kanala" + +msgid "Change service PINs" +msgstr "Spremenite PIN kode kanala" + +msgid "Change setup PIN" +msgstr "Sprememba nastavitve PIN kode" + +# +msgid "Change step size" +msgstr "" + +msgid "Change timer" +msgstr "" + +# +msgid "Changelog" +msgstr "Dnevnik sprememb" + +# +msgid "Channel" +msgstr "Kanal" + +# +msgid "Channel list type" +msgstr "Tip seznama kanalov" + +# +msgid "Channel not in services list" +msgstr "Kanala ni v seznamu programov" + +# +msgid "Channel selection" +msgstr "Seznam kanalov" + +# +msgid "Channel:" +msgstr "Kanal:" + +# +msgid "Channellist menu" +msgstr "Seznam" + +# +msgid "Chap." +msgstr "Pogl." + +# +msgid "Chapter" +msgstr "Poglavje" + +# +msgid "Chapter:" +msgstr "Poglavje:" + +# +msgid "Check" +msgstr "Preveri" + +msgid "Check the internet connection" +msgstr "Preverite vaÅ¡o internetno povezavo" + +msgid "Check the internet connection again" +msgstr "Ponovno preverite vaÅ¡o internetno povezavo" + +# +msgid "Checking filesystem..." +msgstr "Poteka preverjanje datoteÄnega sistema ..." + +msgid "Checking the internet connection" +msgstr "Poteka preverjanje internetne povezave ..." + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" +"Poteka preverjanje kanalnika %d\n" +"DiSEqC vrata %s za %s" + +msgid "Children/Youth" +msgstr "" + +msgid "Choose which tuner to configure." +msgstr "Izberite ustrezen kanalnik za nastavljanje." + +# +msgid "Circular left" +msgstr "Krožno - levo" + +# +msgid "Circular right" +msgstr "Krožno - desno" + +# +msgid "Cleanup" +msgstr "ÄŒiÅ¡Äenje" + +# +msgid "Clear" +msgstr "Izbris" + +# +msgid "Clear before scan" +msgstr "Pred iskanjem naj se izvede izbris obstojeÄih kanalov" + +msgid "Clear fixed" +msgstr "" + +# +msgid "Clear log" +msgstr "Izbris dnevnika" + +# +msgid "Clear playlist" +msgstr "PoÄisti seznam predvajanja" + +# +msgid "Close" +msgstr "Izhod" + +msgid "Close PiP on exit" +msgstr "" + +# +msgid "Close title selection" +msgstr "Zapri izbirnik imena" + +msgid "Code rate HP" +msgstr "" + +msgid "Code rate LP" +msgstr "" + +# +msgid "Coderate HP" +msgstr "Kodiranje HP" + +# +msgid "Coderate LP" +msgstr "Kodiranje LP" + +# +msgid "Collection name" +msgstr "Ime zbirke" + +# +msgid "Collection settings" +msgstr "Nastavitve zbirke" + +# +msgid "Color format" +msgstr "Barvni format" + +# +msgid "Command execution..." +msgstr "Poteka izvajanje zahteve ..." + +# +msgid "Command order" +msgstr "Zaporedje ukazov" + +# +msgid "Common Interface" +msgstr "Stanje CI vmesnika" + +# +msgid "Common Interface assignment" +msgstr "Stanje CI vmesnika" + +# +msgid "Communication" +msgstr "Komunikacija" + +# +msgid "Compact flash" +msgstr "Compact Flash" + +# +msgid "Complete" +msgstr "KonÄano" + +# +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "Kompleksno (omogoÄa meÅ¡anje audio sledi in pogledov)" + +# +msgid "Composition of the recording filenames" +msgstr "Struktura imena posnetih datotek" + +msgid "Configuration mode" +msgstr "Nastavitveni naÄin: " + +#, python-format +msgid "Configuration mode: %s" +msgstr "Nastavitveni naÄin: %s" + +# +msgid "Configuration..." +msgstr "Nastavitve omrežja" + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "" + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "" + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "Nastavitev dolžine vidnosti informacije vrstice, ki se sicer pojavi po pritisku tipke OK med gledanjem televizije." + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "Nastavitev dolžine vidnosti konÄanih dogodkov v EPG sistemu. To je uporabno takrat, ko zamudite neko oddajo ali film, a bi vseeno želeli izvedeti doloÄene informacije o tem dogodku za nazaj (npr. angleÅ¡ko ime filma)." + +msgid "Configure how recording filenames are constructed." +msgstr "Nastavitev omogoÄa, da doloÄite, kako je sestavljeno ime posnetkov." + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +# +msgid "Configure interface" +msgstr "Nastavi vmesnik" + +# +msgid "Configure nameservers" +msgstr "Nastavite imenske strežnike" + +msgid "Configure on which devices the background delete option should be used." +msgstr "Nastavitev omogoÄa, da doloÄite, na katerih napravah naj bo uporabljeno možnost \"izbrisa v ozadju\"." + +msgid "Configure remote control type" +msgstr "Nastavitve Dreambox daljinskega upravljalnika" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "Nastavitev DiSEqC naÄina za ta LNB." + +# +msgid "Configure the IP address." +msgstr "Nastavitev IP naslova." + +msgid "Configure the aspect ratio of the screen." +msgstr "Nastavitev razmerja slike za zaslon." + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +# +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "Nastavitev obnaÅ¡anja pri roÄno ustavljeni video datoteki." + +# +msgid "Configure the behavior when movie playback is started." +msgstr "Nastavitev obnaÅ¡anja, ko se priÄne predvajanje video datoteke." + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "DoloÄitev obnaÅ¡anja sprejemnika, ko se video posnetek približuje koncu." + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "DoloÄitev Å¡irine obrobe pisave pri podnapisih. TemnejÅ¡a obroba omogoÄi lažje branje podnapisov na svetlejÅ¡i podlagi." + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "DoloÄitev ravni svetlosti sprednjega zaslona sprejemnika, ko se le-ta nahaja v stanju pripravljenosti." + +msgid "Configure the brightness level of the front panel display." +msgstr "DoloÄitev ravni svetlosti sprednjega zaslona sprejemnika." + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "" + +msgid "Configure the color of the teletext subtitles." +msgstr "DoloÄitev barve teletekst podnapisov." + +msgid "Configure the contrast level of the front panel display." +msgstr "DoloÄitev kontrasta sprednjega zaslona sprejemnika." + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "" + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "" + +msgid "Configure the first audio language (highest priority)." +msgstr "DoloÄitev prve zvoÄne sledi (najviÅ¡ja prioriteta)." + +msgid "Configure the first subtitle language (highest priority)." +msgstr "DoloÄitev prvega jezika podnapisov (najviÅ¡ja prioriteta)." + +msgid "Configure the font size of the subtitles." +msgstr "DoloÄitev velikosti pisave podnapisov." + +msgid "Configure the fourth audio language." +msgstr "DoloÄitev Äetrte zvoÄne sledi." + +# +msgid "Configure the fourth subtitle language." +msgstr "Nastavitev Äetrtega jezika podnapisov." + +msgid "Configure the function of a long press on the power button." +msgstr "DoloÄitev funkcije dolgega pritiska tipke za vklop sprejemnika na daljinskem upravljalcu." + +msgid "Configure the function of a short press on the power button." +msgstr "DoloÄitev funkcije kratkega pritiska tipke za vklop sprejemnika na daljinskem upravljalcu." + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "DoloÄitev funkcije tipke '0', ko je aktivna funkcija Slika v Sliki." + +# +msgid "Configure the gateway." +msgstr "Nastavitev prehoda." + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "DoloÄitev zamika zvoka pri Dolby Digital zvoÄnih sledeh." + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "DoloÄitev zamika zvoka pri stereo zvoÄnih sledeh." + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "DoloÄitev Äasa po katerem naj bi trdi disk preÅ¡el v stanje pripravljenosti." + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "DoloÄitev horizontalne poravnave podnapisov." + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "DoloÄitev zaÄetne hitrosti hitrega predvajanje. Ko pritisnete gumb za hitro predvajanja, se bo le-to priÄelo z izbrano hitrostjo." + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "DoloÄitev zaÄetne hitrosti predvajanja nazaj. Ko pritisnite tipko za \"previjanje\", se bo le-to priÄelo z izbrano hitrostjo." + +msgid "Configure the latitude of your location." +msgstr "DoloÄitev zemljepisne Å¡irine glede na vaÅ¡ trenutni položaj." + +msgid "Configure the longitude of your location." +msgstr "DoloÄitev zamljepisne Å¡irine glede na vaÅ¡ trenutni položaj." + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "DoloÄitev najmanjÅ¡ega prostora na shranjevalni napravi, ki je namenjena snemanju. Ko se velikost prostora približa doloÄeni meji, pride do samodejnega izbrisa datotek, ki se nahajajo v smetnjaku." + +# +msgid "Configure the nameserver (DNS)." +msgstr "Nastavitev imenskega strežnika." + +# +msgid "Configure the netmask." +msgstr "Nastavitev omrežne maske." + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "DoloÄitev Å¡tevila dni po katerem se datoteke samodejno izbriÅ¡ejo iz smetnjaka." + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "DoloÄitev Å¡tevila dni ko so stari Äasovniki zadržani. Po tem obdobju se samodejno izbriÅ¡ejo iz seznama." + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "DoloÄitev zamika offline dekodiranja v milisekundah. Ta nastavitev ni bistvena za delovanje vaÅ¡ega sprejemnika." + +# +msgid "Configure the possible fast forward speeds." +msgstr "Nastavitev možne hitrosti hitrega predvajanja naprej." + +msgid "Configure the possible rewind speeds." +msgstr "DoloÄitev hitrosti predvajanja nazaj (previjanje)." + +msgid "Configure the primary EPG language." +msgstr "DoloÄitev primarnega jezika za EPG sistem. PriporoÄena nastavitev je \"Prazno\"." + +msgid "Configure the refresh rate of the screen." +msgstr "DoloÄitev hitrosti osveževanja zaslona. Evropa uporablja PAL sistem, kar pomeni, da je pravilna nastavitev 50Hz." + +msgid "Configure the screen resolution in PC output mode." +msgstr "DoloÄitev loÄljivosti slike kadar se uporablja povezava z raÄunalnikom." + +msgid "Configure the second audio language." +msgstr "DoloÄitev druge zvoÄne sledi. Prva sled ima prednost pred drugo." + +# +msgid "Configure the second subtitle language." +msgstr "Nastavitev drugega jezika podnapisov." + +msgid "Configure the secondary EPG language." +msgstr "DoloÄitev sekundarnega jezika za EPG sistem. PriporoÄena nastavitev je \"Prazno\"." + +msgid "Configure the sharpness of the video scaling." +msgstr "DoloÄitev ostrine slike. Osnovna nastavitev zadostuje za veÄino potreb." + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "DoloÄitev dolžine preskoka Äe se uporabi tipke 1 ali 3." + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "DoloÄitev dolžine preskoka Äe se uporabi tipke 4 ali 6." + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "DoloÄitev dolžine preskoka Äe se uporabi tipke 7 ali 9." + +# +msgid "Configure the slow motion speeds." +msgstr "Nastavitev hitrosti poÄasnega predvajanja." + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "DoloÄitev hitrosti funkcije \"Brisanje v ozadju\". Nižja hitrost omogoÄi veÄjo zmogljivost shranjevalne naprave (npr. trdi disk)." + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "DoloÄitev zamika podnapisov v primeru, da manjkajo potrebne informacije za toÄnost pojavljanja podnapisov." + +msgid "Configure the third audio language." +msgstr "DoloÄitev tretje zvoÄne sledi. Prva in druga zvoÄna sled imata prednost pred tretjo." + +# +msgid "Configure the third subtitle language." +msgstr "Nastavitev tretjega jezika podnapisov." + +msgid "Configure the transparency of the OSD." +msgstr "DoloÄitev prosojnosti menijev oz. uporabniÅ¡kega vmesnika." + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "DoloÄitev prosojnosti Ärne podlage pri DVB podnapisih." + +msgid "Configure the tuner mode." +msgstr "Nastavitev naÄina, v katerem se naj nahaja kanalnik." + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "Doložitev tipa statusne ikone, ki se sicer prikazuje v seznamu (video) datotek." + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "DoloÄitev navpiÄnega položaja podnapisov, merjeno od spodnjega dela zaslona." + +msgid "Configure the video output mode (or resolution)." +msgstr "DoloÄitev loÄljivosti. ÄŒe imate FULL HD televizijo uporabite 1080i, Äe pa imate HD Ready televizijo uporabite 720p." + +msgid "Configure the way in which the receiver changes channels." +msgstr "DoloÄitev naÄina preklopa med posameznimi kanali." + +msgid "Configure where completed timers show up in the timer list." +msgstr "DoloÄitev položaja konÄanih Äasovnikov v seznamu le-teh." + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "DoloÄitev prikaza razÅ¡irjene informacijske vrstice pri drugem pritisku na tipko OK. Prikazane informacije se razlikujejo od uporabljene preobleke. Nekatere preobleke razÅ¡irjene info. vrstice ne podpirajo!" + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "Nastavitev omogoÄa pretvorbo veÄkanalnega tvoka v stereo zvok." + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "DoloÄitev prikaza simboliÄne slike pri premikanju motoriziranega satelitskega krožnika." + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "DoloÄitev ravni prikaza razliÄnih nastavitev v nastavitvenih menijih. Raven \"Expert\" (priporoÄena)omogoÄa, da dostopate do vseh nastavitev." + +msgid "Configure which color format should be used on the SCART output." +msgstr "DoloÄitev barvnega formata pri uporabi SCART izhoda." + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "Kateri kanalnik naj ima prednost pred drugimi kanalniki (Äe jih je veÄ). To velja takrat, ko je enak kanal dostopen na veÄ dazliÄnih kanalnikih." + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "Kateri kanalnik naj ima prednost pred drugimi kanalniki. ÄŒe je uporabljena vrednost \"samodejno\", potem bo sistem dodelil prednost tistemu kanalniku, na katerega je priklopljeno najmanj satelitov oz. ima najmanj kanalov." + +# +msgid "Configure your internal LAN" +msgstr "Nastavite LAN omrežje" + +# +msgid "Configure your network again" +msgstr "Ponovno nastavite omrežje" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "Nastavite mrežne nastavitve in za priÄetek pregledovanja, pritisnite tipko OK." + +# +msgid "Configure your wireless LAN again" +msgstr "Ponovno nastavite brezziÄni vmesnik" + +msgid "Configures which video output connector will be used." +msgstr "Nastavitev omogoÄa izbiro željenega video izhoda. V veÄini primerov je v uporabi HDMI izhod, zatorej je potrebno izbrati \"HDMI\"." + +# +msgid "Configuring" +msgstr "Poteka nastavljanje ..." + +# +msgid "Conflicting timer" +msgstr "Konflikt Äasovnikov" + +# +msgid "Connect" +msgstr "Poveži se" + +# +msgid "Connect to a wireless network" +msgstr "Povezava z brezziÄnim omrežjem" + +msgid "Connected satellites" +msgstr "" + +# +msgid "Connected to" +msgstr "Povezan s" + +# +msgid "Connected!" +msgstr "Povezan!" + +# +msgid "Constellation" +msgstr "Konstalacija" + +# +msgid "Content does not fit on DVD!" +msgstr "Vsebina se ne prilega na DVD!" + +msgid "Continue" +msgstr "Naprej" + +# +msgid "Continue in background" +msgstr "Nadaljuj v ozadju" + +# +msgid "Continue playback" +msgstr "Nadaljevanje predvajanja" + +# +msgid "Continue playing" +msgstr "Nadaljuj predvajanje" + +msgid "Continues play (loop)" +msgstr "" + +# +msgid "Contrast" +msgstr "Kontrast" + +# +msgid "Convert ext3 filesystem to ext4" +msgstr "Pretvorba ext3 datot. sistem v ext4" + +msgid "Convert ext3 to ext4" +msgstr "Pretvorba ext3 v ext4" + +msgid "Converting ext3 to ext4..." +msgstr "Poteka pretvorba ext3 v ext4 ..." + +# +msgid "Copy" +msgstr "Kopiranje" + +# +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "Povezava z .NFI izvornim strežnikom ni uspela:" + +msgid "Could not find installed channel list." +msgstr "" + +# +msgid "Could not load medium! No disc inserted?" +msgstr "Medija ni mogoÄe prebrati! Je v pogon vstavljen ustrezen medij?" + +# +msgid "Could not open Picture in Picture" +msgstr "Ne morem odpreti Slike v Sliki" + +# +#, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "Snemanje ni mogoÄe priÄeti zaradi konflikta s Äasovnikom %s" + +#, python-format +msgid "Could not record due to invalid service %s" +msgstr "Snemanje ni možno zaradi napake kanala %s" + +# +msgid "Create DVD-ISO" +msgstr "Kreiraj DVD-ISO" + +# +msgid "Create more detailed crash log" +msgstr "Bolj podroben dnevnik napak" + +# +#, python-format +msgid "Creating directory %s failed." +msgstr "Ustvarjanje mape %s ni uspelo." + +msgid "Creating filesystem" +msgstr "Izdelava datoteÄnega sistema ..." + +msgid "Creating partition" +msgstr "Izdelava particije ..." + +# +msgid "Croatian" +msgstr "HrvaÅ¡ko" + +msgid "Current CEC address" +msgstr "" + +msgid "Current device: " +msgstr "Trenutna naprava:" + +msgid "Current event EPG" +msgstr "" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +# +msgid "Current settings:" +msgstr "Trenutne nastavitve:" + +# +msgid "Current transponder" +msgstr "Trenutni transponder" + +# +msgid "Current value: " +msgstr "Trenutna vrednost:" + +# +msgid "Current version:" +msgstr "Trenutna razliÄica:" + +msgid "Currently installed image" +msgstr "Trenutna nameÅ¡Äena slika" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +# +msgid "Custom skip time for '1'/'3' buttons" +msgstr "ÄŒasovni preskok za tipke '1'/'3' (v sekundah)" + +# +msgid "Custom skip time for '4'/'6' buttons" +msgstr "ÄŒasovni preskok za tipke '4'/'6' (v sekundah)" + +# +msgid "Custom skip time for '7'/'9' buttons" +msgstr "ÄŒasovni preskok za tipke '7'/'9' (v sekundah)" + +# +msgid "Customize" +msgstr "Ostale nastavitve" + +msgid "Customize channel list cursor behavior" +msgstr "" + +# +msgid "Cut" +msgstr "Izreži" + +# +msgid "Cutlist editor..." +msgstr "Cutlist urejevalnik" + +# +msgid "Czech" +msgstr "ÄŒeÅ¡ko" + +# +msgid "D" +msgstr "D" + +# +msgid "DHCP" +msgstr "DHCP" + +# +msgid "DMM advanced" +msgstr "DMM napredno" + +msgid "DMM normal" +msgstr "DMM normalno" + +# +msgid "DUAL LAYER DVD" +msgstr "Dvo-slojni DVD" + +# +msgid "DVB subtitle black transparency" +msgstr "Prozornost podlage DVB podnapisov" + +msgid "DVB-C" +msgstr "DVB-C" + +msgid "DVB-C ANNEX C" +msgstr "DVB-C ANNEX C" + +msgid "DVB-S" +msgstr "DVB-S" + +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "DVB-T" + +msgid "DVB-T2" +msgstr "DVB-T2" + +msgid "DVD data format" +msgstr "" + +# +msgid "DVD file browser" +msgstr "Raziskovalec" + +# +msgid "DVD media toolbox" +msgstr "DVD medijska orodja" + +# +msgid "DVD player" +msgstr "DVD predvajalnik" + +# +msgid "DVD titlelist" +msgstr "DVD seznam naslovov" + +# +msgid "Danish" +msgstr "Dansko" + +# +msgid "Date" +msgstr "Datum" + +# +msgid "Date/time input" +msgstr "Vnos ÄŒasa/Datuma" + +# +msgid "Deep standby" +msgstr "Globoko spanje" + +# +msgid "Default" +msgstr "Privzeto" + +# +msgid "Default movie location" +msgstr "Privzeta \"movie\" lokacija" + +# +msgid "Default settings" +msgstr "Privzete nastavitve" + +msgid "Delay before key repeat starts:" +msgstr "" + +msgid "Delay for external subtitles" +msgstr "" + +# +msgid "Delete" +msgstr "Izbris" + +# +msgid "Delete entry" +msgstr "Izbris vnosa" + +# +msgid "Delete failed!" +msgstr "Brisanje neuspeÅ¡no!" + +# +msgid "Delete file" +msgstr "izbris datoteke" + +# +msgid "Delete playlist entry" +msgstr "Izbris vnosov v seznamu predvajanja" + +# +msgid "Delete saved playlist" +msgstr "Izbris shranjenega seznama predvajanja" + +msgid "Delete timer" +msgstr "" + +# +msgid "Delete..." +msgstr "Izbris" + +msgid "Deleted" +msgstr "Izbrisano" + +msgid "Deleted items" +msgstr "Izbrisani" + +msgid "Depth" +msgstr "Globina" + +# +msgid "Descramble http streams" +msgstr "Dekodiranje HTTP tokov" + +# +msgid "Description" +msgstr "Opis" + +# +msgid "Deselect" +msgstr "Preklic" + +msgid "Details for plugin: " +msgstr "Dodatne informacije:" + +# +msgid "Detected HDD:" +msgstr "Zaznani pogoni:" + +# +msgid "Detected NIMs:" +msgstr "Zaznani kanalniki:" + +msgid "Devicename:" +msgstr "Ime naprave:" + +msgid "Devide" +msgstr "" + +# +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +# +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +# +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +# +msgid "DiSEqC mode" +msgstr "DiSEqC naÄin" + +# +#, python-format +msgid "DiSEqC port %s: %s" +msgstr "DiSEqC vrata %s: %s" + +# +msgid "DiSEqC-tester settings" +msgstr "DiSEqC-tester nastavitve" + +# +msgid "Dialing:" +msgstr "" + +# +msgid "Digital contour removal" +msgstr "" + +# +msgid "Direct playback of linked titles without menu" +msgstr "Neposredno predvajanje povezanih naslovov" + +msgid "Directory" +msgstr "Mapa" + +# +#, python-format +msgid "Directory %s does not exist." +msgstr "Mapa %s ne obstaja." + +#, python-format +msgid "Directory %s nonexistent." +msgstr "" + +# +msgid "Directory browser" +msgstr "Raziskovalec" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "Mapa vsebuje %d datotek in %d pod-map.\n" + +#, python-format +msgid "Directory contains %s and %s." +msgstr "" + +# +msgid "Disable" +msgstr "Izklop" + +# +msgid "Disable Picture in Picture" +msgstr "Izklop Slike v Sliki" + +# +msgid "Disable background scanning" +msgstr "Izklop pregledovanja (skeniranja) v ozadju" + +msgid "Disable timer" +msgstr "" + +# +msgid "Disabled" +msgstr "OnemogoÄeno" + +# +msgid "Disconnect" +msgstr "Prekini" + +# +msgid "Disk space to reserve for recordings (in GB)" +msgstr "Prostor na disku rezerviran za snemanje (v GB)" + +# +msgid "Display 16:9 content as" +msgstr "Prikaz 16:9 razmerj slike kot" + +# +msgid "Display 4:3 content as" +msgstr "Prikaz 4:3 razmerja slike" + +# +msgid "Display >16:9 content as" +msgstr "Prikaz >16:9 razmerja slike" + +msgid "Display and userinterface" +msgstr "" + +msgid "Display message before playing next movie" +msgstr "Prikaz obvestila pred zaÄetkom predvajanja video datoteke" + +# +msgid "Display setup" +msgstr "Zaslon sprejemnika" + +# +msgid "Do not change" +msgstr "Ne spreminjaj" + +# +msgid "Do not record" +msgstr "Ne snemaj" + +# +msgid "Do nothing" +msgstr "Izhod" + +# +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Res želite preveriti datoteÄni sistem?\n" +"Opravilo lahko traja zelo dolgo!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" +"Res želite pretvoriti datoteÄni sistem?\n" +"Pot nazaj ne obstaja!" + +# +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Res želite odstraniti: %s?" + +# +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"Res želite namestiti\n" +"vtiÄnik \"%s\"?" + +# +msgid "Do you really want to exit?" +msgstr "Ali res želite odditi?" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" +"Želite pripraviti novo napravo?\n" +"Vsi podatki na napravi bodo izbrisani!" + +# +#, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"Res želite odstraniti\n" +"vtiÄnik \"%s\"?" + +# +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Ali res želite odstraniti mapo: %s iz trdega diska?" + +# +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Ali res želite odstraniti zaznamek: %s?" + +msgid "Do you want this?" +msgstr "" + +# +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Ali želite zapisati izbrano zbirko na DVD medij?" + +# +msgid "Do you want to do a service scan?" +msgstr "Želite iskati kanale?" + +# +msgid "Do you want to do another manual service scan?" +msgstr "Želite ponovno roÄno iskati kanale?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "Želite presneti sliko k %s?" + +# +msgid "Do you want to install a channel list?" +msgstr "Želite namestiti seznam kanalov?" + +# +msgid "Do you want to install the package:\n" +msgstr "Želite namestiti ta paket?:\n" + +# +msgid "Do you want to play DVD in drive?" +msgstr "Ali želite predvajati DVD?" + +# +msgid "Do you want to preview this DVD before burning?" +msgstr "Ali želite predogled zbirke pred zapisom na DVD?" + +msgid "Do you want to reboot your receiver?" +msgstr "Želite izvesti ponovni zagon sprejemnika?" + +# +msgid "Do you want to remove the package:\n" +msgstr "Želite odstraniti ta paket:\n" + +# +msgid "Do you want to restore your settings?" +msgstr "Želite povrniti vaÅ¡e nastavitve?" + +# +msgid "Do you want to resume this playback?" +msgstr "Želite nadaljevati s predvajanjem?" + +# +#, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Želite nadgraditi vaÅ¡ sprejemnik na verzijo %s?" + +msgid "Do you want to update your receiver?" +msgstr "Želite posodobiti vaÅ¡ sprejemnik na zadnjo verzijo OpenPLi slike?" + +# +msgid "Do you want to upgrade the package:\n" +msgstr "Želite nadgraditi paket:\n" + +# +msgid "Don't stop current event but disable coming events" +msgstr "Ne ustavi trenutnega dogodka. OnemogoÄi pa prihodnje dogodke" + +# +#, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "KonÄano! NameÅ¡Äen, nadgrajen ali izbrisan je bil %d paket (%s)" +msgstr[1] "KonÄano! NameÅ¡Äena, nadgrajena ali izbrisana sta bila %d paketa (%s)" +msgstr[2] "KonÄano! NameÅ¡Äeni, nadgrajeni ali izbrisani so bili %d paketi (%s)" +msgstr[3] "KonÄano! NameÅ¡Äenih, nadgrajenih ali izbrisanih je bilo %d paketov (%s)" + +# +msgid "Download" +msgstr "Prenesi" + +#, python-format +msgid "Download %s from server" +msgstr "Prenesi %s iz serverja" + +# +msgid "Download .NFI-files for USB-flasher" +msgstr "Prenesi .NFI-datoteke za programsko nadgradnjo preko USB" + +# +msgid "Download plugins" +msgstr "Prenos" + +# +msgid "Downloadable new plugins" +msgstr "Seznam vtiÄnikov" + +# +msgid "Downloadable plugins" +msgstr "Razpoložljivi vtiÄniki" + +# +msgid "Downloading" +msgstr "Nalaganje ..." + +# +msgid "Downloading plugin information. Please wait..." +msgstr "Poteka pridobivanje seznama vtiÄnikov ... Prosim poÄakajte!" + +# +msgid "Dutch" +msgstr "Nizozemsko" + +# +msgid "Dynamic contrast" +msgstr "DinamiÄni kontrast" + +# +msgid "E" +msgstr "E" + +msgid "EPG" +msgstr "EPG" + +# +msgid "EPG language selection 1" +msgstr "Primarni jezik za EPG sistem" + +# +msgid "EPG language selection 2" +msgstr "Sekundarni jezik za EPG sistem" + +# +msgid "EPG selection" +msgstr "EPG izbira" + +msgid "EPG settings" +msgstr "Elektronski programski vodiÄ" + +# +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "NAPAKA - neuspeÅ¡no iskanje (%s)!" + +# +msgid "East" +msgstr "Vzhod" + +msgid "East limit set" +msgstr "Meja na vzhodu" + +# +msgid "Edit" +msgstr "Spremeni" + +# +msgid "Edit DNS" +msgstr "Urejanje DNS" + +# +msgid "Edit bouquets list" +msgstr "Urejanje paketov priljubljenih kanalov" + +# +msgid "Edit chapters of current title" +msgstr "Urejanje poglavja trenutnega naslova" + +# +msgid "Edit services list" +msgstr "Urejanje seznam kanalov" + +# +msgid "Edit settings" +msgstr "Spreminjanje nastavitev" + +# +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "Spremenite nastavitve imenskega strežnika sprejemnika.\n" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "Spremenitve mrežne nastavitve sprejemnika.\n" + +msgid "Edit timer" +msgstr "" + +# +msgid "Edit title" +msgstr "Spremenite naslov" + +# +msgid "Edit upgrade source url." +msgstr "Uredite povezavo vira za nadgradnjo." + +msgid "Education/Science/..." +msgstr "" + +# +msgid "Electronic Program Guide" +msgstr "Elektronski spored programov (EPG)" + +# +msgid "Enable" +msgstr "omogoÄi" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +# +msgid "Enable 5V for active antenna" +msgstr "OmogoÄi 5V za potrebe aktivne antene" + +# +msgid "Enable EIT EPG" +msgstr "EIT EPG sistem" + +# +msgid "Enable MHW EPG" +msgstr "MHW EPG sistem" + +# +msgid "Enable Netmed EPG" +msgstr "Netmed EPG sistem" + +msgid "Enable OK for channel selection" +msgstr "" + +# +msgid "Enable ViaSat EPG" +msgstr "ViaSat EPG sistem" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +msgid "Enable bouquet selection in multi-EPG" +msgstr "Vklop izbire seznamov priljubljenih kanalov v Multi-EPG naÄinu" + +# +msgid "Enable freesat EPG" +msgstr "Freesat EPG sistem" + +# +msgid "Enable multiple bouquets" +msgstr "OmogoÄi sezname priljubljenih kanalov" + +# +msgid "Enable parental control" +msgstr "VkljuÄitev starÅ¡evskega nadzora" + +# +msgid "Enable teletext caching" +msgstr "Predpolnjenje teleteksta" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +# +msgid "Enabled" +msgstr "OmogoÄeno" + +# +msgid "Encrypted: " +msgstr "Kodirano: " + +# +msgid "Encryption" +msgstr "Å ifriranje" + +# +msgid "Encryption key" +msgstr "Å ifrirni kljuÄ" + +# +msgid "Encryption key type" +msgstr "Vrsta kljuÄa za Å¡ifriranje" + +# +msgid "Encryption:" +msgstr "Kodiranje:" + +# +msgid "End time" +msgstr "ZakljuÄek" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +# +msgid "English" +msgstr "AngleÅ¡ko" + +msgid "Enigma2 skin selector" +msgstr "Izbirnik Enigma2 preoblek" + +# +msgid "Enter main menu..." +msgstr "Vstop v glavni meni" + +# +msgid "Enter pin code" +msgstr "Vnesite PIN kodo" + +# +msgid "Enter the service pin" +msgstr "Vnesite PIN kodo za kanale" + +msgid "Equal to" +msgstr "" + +# +msgid "Error" +msgstr "Napaka" + +msgid "Error code" +msgstr "Koda napake" + +# +msgid "Error executing plugin" +msgstr "Napaka pri zagonu vtiÄnika" + +# +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Napaka: %s\n" +"Ponovno?" + +# +msgid "Estonian" +msgstr "Estonsko" + +msgid "Ethernet network interface" +msgstr "Omrežni vmesnik" + +msgid "Event font size (relative to skin size)" +msgstr "Velikost pisave dogodka (v odvisnosti od velikosti preobleke)" + +# +msgid "Event view" +msgstr "Pregled dogodkov" + +# +msgid "Event view menu" +msgstr "Dodatne možnosti" + +msgid "Everywhere" +msgstr "Povsod" + +# +msgid "Exceeds dual layer medium!" +msgstr "" + +# +msgid "Execution finished!!" +msgstr "Izvajanje zakljuÄeno!!" + +# +msgid "Execution progress:" +msgstr "Potek izvajanja:" + +# +msgid "Exif" +msgstr "Exif" + +# +msgid "Exit" +msgstr "Izhod" + +msgid "Exit EPG" +msgstr "Izhod iz EPG" + +# +msgid "Exit editor" +msgstr "Izhod iz urejevalnika" + +msgid "Exit input device selection." +msgstr "Izhod iz izbirnika vhodne naprave" + +msgid "Exit media player?" +msgstr "" + +# +msgid "Exit mediaplayer" +msgstr "Izhod iz predvajalnika vsebin" + +# +msgid "Exit movie list" +msgstr "Izhod iz seznama datotek" + +# +msgid "Exit movie player?" +msgstr "Izhod iz predvajalnika vsebin" + +# +msgid "Exit nameserver configuration" +msgstr "Izhod iz nastavitev imenskega strežnika" + +# +msgid "Exit network interface list" +msgstr "Izhod iz seznama mrežnih vmesnikov" + +# +msgid "Exit network wizard" +msgstr "Izhod iz omrežnega Äarovnika" + +# +msgid "Exit the wizard" +msgstr "Izhod iz Äarovnika" + +# +msgid "Expert" +msgstr "Napredno" + +msgid "Extend sleeptimer 15 minutes" +msgstr "" + +# +msgid "Extended Software" +msgstr "RazÅ¡irjena programska oprema" + +# +msgid "Extended Software Plugin" +msgstr "VtiÄnik Extended Software" + +# +msgid "Extended network setup plugin..." +msgstr "VtiÄnik Extended Networksetup" + +# +msgid "Extended setup..." +msgstr "Napredne nastavitve" + +# +msgid "Extensions" +msgstr "Dodatki" + +# +msgid "Extensions management" +msgstr "Upravljanje vtiÄnikov" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "" + +msgid "Extra motor options" +msgstr "" + +# +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "FTA" + +# +msgid "Factory reset" +msgstr "Ponastavitev nastavitev" + +# +msgid "Failed" +msgstr "Ni uspelo" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "" + +# +#, python-format +msgid "Fan %d" +msgstr "Ventilator %d" + +# +#, python-format +msgid "Fan %d PWM" +msgstr "Ventilator %d PWM" + +# +#, python-format +msgid "Fan %d voltage" +msgstr "Ventilator %d napetost" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +# +msgid "Fast" +msgstr "Hitro" + +# +msgid "Fast DiSEqC" +msgstr "Hiter DiSEqC" + +# +msgid "Fast Scan" +msgstr "Hitro iskanje" + +# +msgid "Fast epoch" +msgstr "Hiter del" + +# +msgid "Fast forward speeds" +msgstr "Hitrosti hitrega predvajanja naprej" + +# +msgid "Favourites" +msgstr "Priljubljene" + +msgid "File appears to be busy.\n" +msgstr "Datoteka je v uporabi.\n" + +# +msgid "Filesystem check" +msgstr "Pregled datoteÄnega sistema" + +msgid "Final position at" +msgstr "" + +msgid "Final position at index" +msgstr "" + +msgid "Fine movement" +msgstr "NatanÄni premiki" + +# +msgid "Finetune" +msgstr "Podrobne nastavitve" + +# +msgid "Finished" +msgstr "ZakljuÄeno" + +# +msgid "Finished configuring your network" +msgstr "Nastavljanje omrežja je zakljuÄeno!" + +msgid "Finished restarting your network" +msgstr "Ponovni zagon omrežja je opravljen" + +# +msgid "Finnish" +msgstr "Finsko" + +msgid "Fixed" +msgstr "Popravljeno" + +# +msgid "Flash" +msgstr "Nadgradi" + +# +msgid "Flashing failed" +msgstr "Nadgradnja ni uspela" + +# +msgid "Following tasks will be done after you press OK!" +msgstr "SledeÄe naloge bodo opravljene, ko pritisnete OK!" + +# +msgid "Format" +msgstr "Formatiraj" + +msgid "Forward volume keys" +msgstr "" + +# +msgid "Frame size in full view" +msgstr "Velikost okvirja v polnem pogledu" + +# +msgid "French" +msgstr "Francosko" + +# +msgid "Frequency" +msgstr "Frekvenca" + +# +msgid "Frequency bands" +msgstr "FrekvenÄni pasovi" + +# +msgid "Frequency scan step size(khz)" +msgstr "Koraki iskanja frekvenc (khz)" + +# +msgid "Frequency steps" +msgstr "FrekvenÄni koraki" + +msgid "Frequency:" +msgstr "" + +# +msgid "Fri" +msgstr "Pet" + +# +msgid "Friday" +msgstr "Petek" + +msgid "From :" +msgstr "Od:" + +# +#, python-format +msgid "Frontprocessor version: %d" +msgstr "RazliÄica Frontprocesorja: %d" + +msgid "Full transparency" +msgstr "Popolna prosojnost" + +msgid "Fulview resulution" +msgstr "" + +msgid "Function of OK button" +msgstr "Funkcija tipke OK" + +msgid "Further Options" +msgstr "" + +# +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"Za spremembo predloge je potrebno ponovno zagnati uporabniÅ¡ki vmesnik (GUI)!\n" +"Želite to storiti sedaj?" + +# +msgid "Gateway" +msgstr "Prehod" + +# +msgid "General AC3 delay" +msgstr "Zamik AC3 zvoka" + +# +msgid "General PCM delay" +msgstr "Zamik PCM zvoka" + +# +msgid "Genre" +msgstr "Žanr" + +# +msgid "German" +msgstr "NemÅ¡ko" + +msgid "Get latest experimental image" +msgstr "Prenesi zadnjo eksperimentalno sliko" + +msgid "Get latest release image" +msgstr "Prenesi zadnjo stabilno sliko" + +# +msgid "Getting plugin information. Please wait..." +msgstr "Poteka pridobivanje informacij o vtiÄniku ... Prosim poÄakajte!" + +msgid "Go down the list" +msgstr "Pojdi dol po seznamu" + +msgid "Go to first movie or last item" +msgstr "Pojdi na prvi posnetek ali zadnjo datoteko" + +msgid "Go to first movie or top of list" +msgstr "Pojdi na prvi posnetek ali na zaÄetek seznama" + +# +msgid "Go to first service" +msgstr "Pojdi na prvi kanal" + +# +msgid "Go to last service" +msgstr "Pojdi na zadnji kanal" + +# +msgid "Go to next event" +msgstr "Pojdi na naslednji dogodek" + +# +msgid "Go to next page of service" +msgstr "Pojdi na naslednjo stran storitve" + +# +msgid "Go to previous event" +msgstr "Pojdi na prejÅ¡nji dogodek" + +# +msgid "Go to previous page of service" +msgstr "Pojdi na prejÅ¡njo stran storitve" + +msgid "Go up the list" +msgstr "Pojdi gor po seznamu" + +msgid "Goto" +msgstr "Pojdi na" + +# +msgid "Goto 0" +msgstr "Pojdi na 0" + +msgid "Goto :" +msgstr "Pojdi na:" + +msgid "Goto X" +msgstr "Pojdi na X" + +msgid "Goto index position" +msgstr "Pojdi na izbirni položaj" + +msgid "Goto next day of events" +msgstr "" + +msgid "Goto next page of events" +msgstr "Pojdi na naslednjo stran dogodkov" + +# +msgid "Goto position" +msgstr "Pojdi na" + +msgid "Goto previous day of events" +msgstr "" + +msgid "Goto previous page of events" +msgstr "Pojdi na prejÅ¡njo stran dogodkov" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "PojdiNaX kalibracija" + +msgid "GraphMultiEpg Settings" +msgstr "GraphMultiEPG nastavitve" + +# +msgid "Graphical Multi EPG" +msgstr "GrafiÄni Multi-EPG sistem" + +# +msgid "Greek" +msgstr "GrÅ¡ko" + +# +msgid "Green boost" +msgstr "" + +msgid "Guard interval" +msgstr "" + +msgid "HD list" +msgstr "HD seznam" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "" + +msgid "Handle wakeup from TV" +msgstr "" + +# +msgid "Hard disk" +msgstr "Trdi disk" + +# +msgid "Hard disk setup" +msgstr "Nastavitve trdega diska" + +# +msgid "Hard disk standby after" +msgstr "Prehod v stanje pripravljenosti (mirovanje) po" + +# +msgid "Harddisk" +msgstr "Trdi disk" + +msgid "Hardware: " +msgstr "Strojna oprema:" + +msgid "Hebrew" +msgstr "" + +msgid "Helps setting up your dish" +msgstr "" + +msgid "Hidden network" +msgstr "Skrito omrežje" + +# +msgid "Hide CI messages" +msgstr "Skrij napake povezane z naroÄniÅ¡kimi karticami" + +msgid "Hide channel list in radio mode" +msgstr "Skrij seznam kanalov v naÄinu RADIO" + +msgid "Hide known extensions" +msgstr "" + +msgid "Hide number markers" +msgstr "" + +# +msgid "Hide player" +msgstr "Skrij predvajalnik" + +# +msgid "Hide zap errors" +msgstr "Skrij napake pri preklapljanju kanalov" + +msgid "Hierarchy info" +msgstr "" + +# +msgid "Hierarchy information" +msgstr "HierarhiÄne informacije" + +# +msgid "High bitrate support" +msgstr "Podpora visokim bitnim hitrostim" + +# +msgid "Hold screen" +msgstr "Ostanek prejÅ¡nje slike" + +msgid "Hold till locked" +msgstr "" + +msgid "Home" +msgstr "Domov" + +# +msgid "Horizontal" +msgstr "Horizontalno" + +msgid "Horizontal turning speed" +msgstr "" + +# +msgid "How many minutes do you want to record?" +msgstr "Koliko minut želite snemati?" + +# +msgid "Hue" +msgstr "Barva" + +# +msgid "Hungarian" +msgstr "MadžarÅ¡Äina" + +msgid "IP address" +msgstr "IP naslov" + +# +msgid "ISO file is too large for this filesystem!" +msgstr "ISO datoteka je prevelika za ta datoteÄni sistem!" + +# +msgid "ISO path" +msgstr "ISO pot" + +# +msgid "Icons" +msgstr "Ikone" + +# +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"ÄŒe vidite naslednje opozorilo, je nekaj narobe\n" +"z vaÅ¡im SCART prikljuÄkom. Pritisnite tipko OK!" + +# +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"OnemogoÄite poudarjanje svetlosti in kontrasta v kolikor ima vaÅ¡ TV to funkcionalnost. V kolikor vsebuje nastavitev \"dinamiÄno\", jo spremenite na standardno. Nastavite osvetlitev ozadja po vaÅ¡i želji. ZmanÅ¡ajte kontrast TV sprejemnika na najnižjo možno raven.\n" +"ZmanÅ¡ajte nastavitev svetlosti na najnižjo možno raven, tako da bodo najnižji odtenki sive ostali razloÄni.\n" +"V tem trenutku ne skrbite za svetle sence na zaslonu, ponastavili jih boste v naslednjih korakih.\n" +"ÄŒe ste zadovoljni z nastavitvami, pritisnite OK." + +msgid "Image: " +msgstr "Slika" + +# +msgid "Immediate shutdown" +msgstr "TakojÅ¡en izklop" + +# +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "Da bi se lahko izvedlo snemanje doloÄeno s Äasovnikom, je bil TV prestavljen v naÄin snemanja!\n" + +# +msgid "In progress" +msgstr "Se izvaja" + +msgid "Inactivity Sleeptimer" +msgstr "" + +# +msgid "Include AIT in http streams" +msgstr "Prisotnost AIT podatkov v HTTP toku" + +# +msgid "Include ECM in http streams" +msgstr "Prisotnost ECM paketkov v HTTP toku" + +# +msgid "Include EIT in http streams" +msgstr "Prisotnost EIT podatkov v HTTP toku" + +msgid "Incorrect type service for PiP!" +msgstr "" + +# +msgid "Increased voltage" +msgstr "PoveÄana napetost" + +# +msgid "Index" +msgstr "Indeks" + +msgid "Index allocated:" +msgstr "" + +# +msgid "Info" +msgstr "Info" + +# +msgid "Info bar" +msgstr "Informacijska vrstica" + +# +msgid "Info bar timeout" +msgstr "Trajanje prikaza informacijske vrstice" + +msgid "Infobar frontend data source" +msgstr "" + +# +msgid "Information" +msgstr "Informacije" + +# +msgid "Init" +msgstr "Inicializacija" + +# +msgid "Initial fast forward speed" +msgstr "ZaÄetna hitrost hitrega predvajanja naprej" + +# +msgid "Initial location in new timers" +msgstr "" + +msgid "Initial lock ratio" +msgstr "" + +# +msgid "Initial rewind speed" +msgstr "ZaÄetna hitrost predvajanja nazaj" + +msgid "Initial signal quality" +msgstr "ZaÄetna kakovost signala" + +msgid "Initial signal quality:" +msgstr "ZaÄetna kakovost signala:" + +# +msgid "Initialization" +msgstr "Ponastavitev diska" + +# +msgid "Initialize" +msgstr "Ponastavitev" + +msgid "Initializing storage device..." +msgstr "Poteka pripravljanje naprave za shranjevanje podatkov ..." + +# +msgid "Input" +msgstr "Seznam" + +msgid "Input device setup" +msgstr "Nastavi vhodne naprave" + +msgid "Input devices" +msgstr "Vhodne naprave" + +# +msgid "Install" +msgstr "Namesti" + +# +msgid "Install a new image with a USB stick" +msgstr "Namestite novo sliko (image) z uporabo USB kljuÄka" + +# +msgid "Install a new image with your web browser" +msgstr "Namestite novo sliko z vaÅ¡im brskalnikom" + +# +msgid "Install channel list" +msgstr "Namestitev seznama kanalov" + +msgid "Install extensions" +msgstr "" + +# +msgid "Install extensions." +msgstr "Namestite razÅ¡iritve." + +# +msgid "Install local extension" +msgstr "Namestitev lokalne razÅ¡iritve" + +msgid "Install picons on" +msgstr "Namestitev piconsev na" + +# +msgid "Install softcam" +msgstr "Namestitev emulatorja" + +msgid "Installation has completed." +msgstr "Namestitev je zakljuÄena." + +# +msgid "Installation or removal has completed." +msgstr "Namestitev ali odstranitev je zakljuÄena." + +# +msgid "Installing" +msgstr "NameÅ¡Äam ..." + +# +msgid "Installing software..." +msgstr "Poteka nameÅ¡Äanje programske opreme ..." + +# +msgid "Instant recording location" +msgstr "Lokacija takojÅ¡njega snemanja" + +# +msgid "Instant recording..." +msgstr "TakojÅ¡nje snemanje" + +# +msgid "Interface: " +msgstr "Vmesnik:" + +# +msgid "Intermediate" +msgstr "Srednje" + +# +msgid "Internal flash" +msgstr "Notranji pomnilnik" + +msgid "Internal hdd only" +msgstr "Samo notranji HDD" + +msgid "Interval between keys when repeating:" +msgstr "Interval med tipkami v primeru ponavljanja:" + +# +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Izbrana neveljavna mapa: %s" + +# +msgid "Invalid location" +msgstr "Neveljavna lokacija" + +msgid "Invalid transponder data" +msgstr "" + +# +msgid "Inversion" +msgstr "Inverzija" + +msgid "Invert" +msgstr "Inverzija" + +# +msgid "Ipkg" +msgstr "Ipkg" + +msgid "Is this setting ok?" +msgstr "Uporabim te nastavitve?" + +# +msgid "Is this video mode ok?" +msgstr "Je izbrana loÄljivost ustrezna?" + +# +msgid "Italian" +msgstr "Italjansko" + +msgid "Items per page " +msgstr "Å t. datotek na stran" + +msgid "Items per page for list screen" +msgstr "Å t. datotek na stran" + +# +msgid "Job overview" +msgstr "Ogled opravila" + +msgid "Jump to beginning of list" +msgstr "SkoÄi na zaÄetek seznama" + +# +msgid "Jump to end of list" +msgstr "SkoÄi na konec seznama" + +# +msgid "Jump to next marked position" +msgstr "SkoÄi do naslednjega oznaÄenega položaja" + +# +msgid "Jump to previous marked position" +msgstr "SkoÄi do prejÅ¡njega oznaÄenega položaja" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +msgid "Just scale" +msgstr "Samodejno" + +msgid "Keep service" +msgstr "" + +msgid "Kernel version: " +msgstr "Verzija jedra:" + +# +msgid "Keyboard" +msgstr "Jezik tipkovnice" + +# +msgid "Keyboard map" +msgstr "Jezik tipkovnice" + +# +msgid "Keyboard setup" +msgstr "Nastavitve tipkovnice" + +# +msgid "LAN adapter" +msgstr "Mrežni vmesnik" + +msgid "LAN connection" +msgstr "Mrežna povezava" + +# +msgid "LNB" +msgstr "LNB" + +# +msgid "Language" +msgstr "Jezik menija" + +# +msgid "Language selection" +msgstr "Izbira jezik" + +# +msgid "Last config" +msgstr "PrejÅ¡nje nastavitve" + +# +msgid "Last speed" +msgstr "Zadnja hitrost" + +msgid "Last upgrade: " +msgstr "Zadnja nadg.:" + +msgid "Latest Commits" +msgstr "" + +# +msgid "Latitude" +msgstr "Zemljepisna Å¡irina [Lat]" + +# +msgid "Latvian" +msgstr "Latvian" + +# +msgid "Leave DVD player?" +msgstr "Želite zapustiti DVD predvajalnik?" + +# +msgid "Left" +msgstr "Levo" + +msgid "Left from servicename" +msgstr "" + +msgid "Leisure hobbies" +msgstr "" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Letterbox" + +msgid "Letterbox zoom" +msgstr "" + +# +msgid "Limit character set for recording filenames" +msgstr "Omejen nabor znakov za imena posnetih datotek" + +# +msgid "Limit east" +msgstr "Omejitev vzhod" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "Omeji znake, ki so uporabljeni v imenih posnetih datotek (7bit ascii). To zagotavlja ustrezno kompatibilnost z operacijskimi sistemi, ki podpirajo samo doloÄen nabor znakov." + +# +msgid "Limit west" +msgstr "Omejitev zahod" + +msgid "Limits cancelled" +msgstr "Omejitve preklicane" + +msgid "Limits enabled" +msgstr "Omejitve vkljuÄene" + +# +msgid "Limits off" +msgstr "Izklop omejitev" + +# +msgid "Limits on" +msgstr "Omejitve vklopljene" + +# +msgid "Link quality:" +msgstr "Kvaliteta povezave:" + +# +msgid "Link:" +msgstr "Stanje:" + +# +msgid "Linked titles with a DVD menu" +msgstr "Povezani naslovi z DVD menujem" + +# +msgid "List EPG functions..." +msgstr "Seznam EPG naÄinov" + +msgid "List available networks" +msgstr "Prikaz razpoložljivih omrežij" + +msgid "List mode" +msgstr "Seznam - naÄin" + +# +msgid "List of storage devices" +msgstr "Seznam naprav za shranjevanje" + +msgid "List type" +msgstr "Tip seznama" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "Verzija seznama %d, najden je %d kanal" +msgstr[1] "Verzija seznama %d, najdena sta %d kanala" +msgstr[2] "Verzija seznama %d, najdeni so %d kanali" +msgstr[3] "Verzija seznama %d, najdenih je %d kanalov" + +# +msgid "Listen to the radio..." +msgstr "PosluÅ¡anje radia" + +msgid "Lists reloaded!" +msgstr "" + +# +msgid "Lithuanian" +msgstr "Litvansko" + +# +msgid "Load" +msgstr "Naloži" + +msgid "Load Length of Movies in Movielist" +msgstr "" + +# +msgid "Load length of movies in movie list" +msgstr "Prikaz dolžine posnetkov v seznamu datotek" + +# +msgid "Load playlist" +msgstr "Naloži seznam za predvajanje" + +# +msgid "Local network" +msgstr "Lokalno omrežje" + +# +msgid "Location" +msgstr "Lokacija" + +# +msgid "Location for instant recordings" +msgstr "Lokacija takojÅ¡njih posnetkov" + +msgid "Lock ratio" +msgstr "" + +# +msgid "Lock:" +msgstr "Zakleni:" + +# +msgid "Log results to harddisk" +msgstr "Shrani rezultate na trdi disk" + +msgid "Long filenames" +msgstr "Dolga imena datotek" + +# +msgid "Long key press" +msgstr "Dolgi pritisk tipke" + +# +msgid "Longitude" +msgstr "Zemljepisna dolžina [Lon]" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "" + +# +msgid "MMC card" +msgstr "MMC kartica" + +# +msgid "MORE" +msgstr "VEÄŒ" + +# +msgid "Main menu" +msgstr "Glavni meni" + +# +msgid "Maintain old EPG data for" +msgstr "Pretekli EPG podatki naj bodo dostopni Å¡e X minut" + +# +msgid "Make this mark an 'in' point" +msgstr "Naredi oznako kot 'vhodno' toÄko" + +# +msgid "Make this mark an 'out' point" +msgstr "Naredi oznako kot 'izhodno' toÄko" + +# +msgid "Make this mark just a mark" +msgstr "Naredi oznako samo kot oznako" + +# +msgid "Manage extensions" +msgstr "Upravljanje vtiÄnikov" + +# +msgid "Manage your receiver's software" +msgstr "Upravljaj s programsko opremo sprejemnika" + +msgid "Manual" +msgstr "" + +# +msgid "Manual Scan" +msgstr "RoÄno iskanje" + +msgid "Manual configuration" +msgstr "RoÄna nastavitev" + +# +msgid "Manual scan" +msgstr "RoÄno iskanje" + +# +msgid "Manual transponder" +msgstr "RoÄno vneÅ¡eni transponder" + +# +msgid "Manufacturer" +msgstr "Proizvajalec" + +# +msgid "Margin after recording (minutes)" +msgstr "Meja pred snemanjem (v minutah)" + +# +msgid "Margin before recording (minutes)" +msgstr "Meja pred snemanjem (v minutah)" + +msgid "Max memory positions" +msgstr "" + +# +msgid "Max. bitrate: " +msgstr "NajveÄja bitna hitrost: " + +# +msgid "Media player" +msgstr "Predvajalnik vsebin" + +# +msgid "Media scanner" +msgstr "Iskalnik datotek" + +# +msgid "Medium is not a writeable DVD!" +msgstr "Medij ni zapisljiv DVD!" + +# +msgid "Medium is not empty!" +msgstr "Medij ni prazen!" + +msgid "Memory" +msgstr "Spomin" + +msgid "Memory index" +msgstr "" + +# +msgid "Menu" +msgstr "Meni" + +# +msgid "Message" +msgstr "Obvestilo" + +# +msgid "Message..." +msgstr "Obestilo" + +#, python-format +msgid "Minimum age %d years" +msgstr "" + +msgid "Minimum send interval" +msgstr "" + +msgid "Missing " +msgstr "ManjkajoÄe" + +# +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "NaÄin" + +# +msgctxt "Video output mode" +msgid "Mode" +msgstr "LoÄljivost slike" + +# +msgid "Model: " +msgstr "Model:" + +# +msgid "Modulation" +msgstr "Modulacija" + +# +msgid "Modulator" +msgstr "Modulator" + +# +msgid "Mon" +msgstr "Pon" + +# +msgid "Mon-Fri" +msgstr "Pon-Pet" + +# +msgid "Monday" +msgstr "Ponedeljek" + +# +msgid "Mosquito noise reduction" +msgstr "" + +msgid "Mount" +msgstr "Pripenjanje" + +# +msgid "Move" +msgstr "Premik" + +# +msgid "Move PiP to main picture" +msgstr "Premik Slike v Sliki v glavno sliko" + +# +msgid "Move Picture in Picture" +msgstr "Prestavi Sliko v Sliki" + +# +msgid "Move east" +msgstr "Premikanje proti vzhodu" + +# +msgid "Move to other directory" +msgstr "Premaknite se v drugo mapo" + +msgid "Move to position X" +msgstr "Premik na položaj X" + +# +msgid "Move west" +msgstr "Premikajte proti zahodu" + +msgid "Moved to position 0" +msgstr "Premik na položaj 0" + +msgid "Moved to position at index" +msgstr "" + +msgid "Movement" +msgstr "Premik" + +msgid "Movie List Configuration" +msgstr "" + +msgid "Movie Selection" +msgstr "" + +msgid "Movie list configuration" +msgstr "Nastavitve seznama posnetkov" + +# +msgid "Movie location" +msgstr "Movie lokacija" + +msgid "Movie selection" +msgstr "Izbirnik posnetkov" + +msgid "Movie/Drama" +msgstr "" + +# +msgid "Movielist menu" +msgstr "Seznam datotek" + +msgid "Moving" +msgstr "Premikanje" + +msgid "Moving east ..." +msgstr "Premikanje na vzhod ..." + +msgid "Moving to position" +msgstr "Premikanje na položaj" + +msgid "Moving west ..." +msgstr "Premikanje na zahod ..." + +# +msgid "Multi EPG" +msgstr "Multi-EPG" + +msgid "Multi-EPG bouquet selection" +msgstr "" + +# +msgid "Multimedia" +msgstr "Multimedija" + +# +msgid "Multiple service support" +msgstr "Podpora veÄ storitvam" + +msgid "Multiplex" +msgstr "Multiplex" + +# +msgid "Multisat" +msgstr "Multisat" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "" + +# +msgid "Mute" +msgstr "Mute" + +# +msgid "N/A" +msgstr "N/A" + +# +msgid "NEXT" +msgstr "NASLEDNJI" + +msgid "NFI image flashing" +msgstr "" + +# +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "NFI nadgradnja programske opreme je konÄana. Za ponovni zagon pritisnite rumeno tipko!" + +msgid "NIM" +msgstr "NIM" + +# +msgid "NOW" +msgstr "SEDAJ" + +# +msgid "NTSC" +msgstr "NTSC" + +# +msgid "Name" +msgstr "Ime" + +# +msgid "Nameserver" +msgstr "Imenski strežnik" + +# +#, python-format +msgid "Nameserver %d" +msgstr "Imenski strežnik %d" + +# +msgid "Nameserver settings" +msgstr "Nastavitve imenskega strežnika" + +# +msgid "Nameserver setup" +msgstr "Nastavitve imenskega strežnika" + +msgid "Namespace" +msgstr "Namespace" + +# +msgid "Netmask" +msgstr "Omrežna maska" + +# +msgid "Network" +msgstr "Mreža" + +msgid "Network ID" +msgstr "Ident. Å¡tevilka omrežja" + +# +msgid "Network configuration..." +msgstr "Nastavitve omrežja" + +# +msgid "Network mount" +msgstr "Dodajanje mrežne naprave" + +# +#, python-format +msgid "Network mount %s" +msgstr "Dodajanje mrežne naprave %s" + +msgid "Network name (SSID)" +msgstr "Ime omrežja (SSID)" + +# +msgid "Network scan" +msgstr "Preverjanje omrežja" + +# +msgid "Network setup" +msgstr "Omrežne nastavitve " + +# +msgid "Network test" +msgstr "Omrežni test" + +# +msgid "Network test..." +msgstr "Omrežni test" + +msgid "Network test: " +msgstr "Test mreže:" + +# +msgid "Network wizard" +msgstr "ÄŒarovnik za mrežo" + +# +msgid "Network:" +msgstr "Omrežje:" + +# +msgid "New" +msgstr "Novo" + +msgid "New PIN" +msgstr "Nova PIN koda" + +# +msgid "New version:" +msgstr "Nova verzija:" + +msgid "News Current Affairs" +msgstr "" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "Naprej" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "Potem" + +# +msgid "No" +msgstr "Ne" + +# +msgid "No (supported) DVDROM found!" +msgstr "Ne najdem (podprte oblike) DVDROM!" + +# +msgid "No Connection" +msgstr "Ni povezave" + +# +msgid "No HDD found or HDD not initialized!" +msgstr "Trdega diska ni mogoÄe dodati!" + +# +msgid "No backup needed" +msgstr "Varnostna kopija ni potrebna" + +msgid "No cable tuner found!" +msgstr "Ni možno najti DVB-C kanalnika!" + +# +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Ni podatkov o transponderju!\n" +"(Potekel Äas branja PAT)" + +msgid "No delay" +msgstr "Brez zamika" + +# +msgid "No description available." +msgstr "Opis ni na voljo." + +# +msgid "No details for this image file" +msgstr "Ni podrobnih podatkov o programski opremi" + +# +msgid "No displayable files on this medium found!" +msgstr "Na pogonu ni datotek, ki jih lahko prikažem!" + +# +msgid "No event info found, recording indefinitely." +msgstr "Ne najdem informacije o dogodku. Trajanje snemanja bo neomejeno." + +# +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "Hitro previjanje Å¡e ni mogoÄe. Namesto tega lahko uporabite Å¡tevilske tipke (npr. 6 ali 9) na vaÅ¡em daljinskem upravljalcu." + +msgid "No free index available" +msgstr "" + +# +msgid "No free tuner!" +msgstr "Ni prostega kanalnika!" + +# +msgid "No network connection available." +msgstr "Mrežna povezava ni na voljo." + +# +msgid "No networks found" +msgstr "Nobeno omrežje ni najdeno" + +msgid "No new plugins found" +msgstr "" + +# +msgid "No positioner capable frontend found." +msgstr "Ne najdem združljive pozicionirne naprave." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "" + +# +msgid "No services/providers selected" +msgstr "Ni izbranih kanalov ali ponudnikov" + +# +msgid "No standby" +msgstr "Ni stanja pripravljenosti" + +msgid "No suitable sat tuner found!" +msgstr "" + +# +msgid "No tags are set on these movies." +msgstr "Ni postavljenih oznak na prikazanih filmih." + +# +msgid "No timeout" +msgstr "Ni Äasovne omejitve" + +# +msgid "No to all" +msgstr "Ne za vse" + +# +msgid "No transparency" +msgstr "Brez prosojnosti" + +# +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "Kanalnik ni nastavljen za delo z DiSEqC rotorjem!" + +# +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Ni možno najti aktivnega kanalnika!\n" +"Preden ponovno zaženete iskanje kanalov, spremenite nastavitve kanalnika." + +msgid "No updates available" +msgstr "Posodobitve niso na voljo!" + +msgid "No updates available. Please try again later." +msgstr "Posodobitve niso na voljo. Prosim, Äe poizkusite kasneje!" + +# +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Ne najdem pravilnega PIN za kanale!\n" +"Želite spremeniti PIN?\n" +"ÄŒe izberete 'Ne', bodo kanali ostali nezaÅ¡Äiteni!" + +# +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Pravilnega PINa za nastavitve ne najdem\n" +"Želite spremeniti PIN?\n" +"ÄŒe izberete 'Ne', bodo nastavitve ostale nezaÅ¡Äitene!" + +msgid "No wireless networks found! Searching..." +msgstr "Ni najdene nobene brezziÄne mreže! Iskanje ..." + +# +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"Ne najdem delujoÄega omrežnega vmesnika.\n" +"Preverite ali ste pravilno prikljuÄili omrežni kabel in nastavili omrežne nastavitve." + +# +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"Ne najdem delujoÄega brezžiÄnega omrežnega vmesnika.\n" +"Preverite ali je brezžiÄna naprava kompatibilna s sprejemnikom in ali ste pravilno nastavili omrežne nastavitve." + +# +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"Ne najdem delujoÄega brezžiÄnega omrežnega vmesnika.\n" +"Preverite ali je brezžiÄna naprava kompatibilna s sprejemnikom in ali ste pravilno nastavili omrežne nastavitve." + +# +msgid "No, but restart from begin" +msgstr "Ne, zaženi ponovno od zaÄetka" + +# +msgid "No, do nothing." +msgstr "Ne stori niÄesar." + +msgid "No, just start my receiver" +msgstr "Ne, samo zaženi sprejemnik" + +msgid "No, never" +msgstr "Ne, nikoli" + +# +msgid "None" +msgstr "Prazno" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Nelinearno" + +msgid "Normal mode" +msgstr "Normalni naÄin" + +# +msgid "North" +msgstr "Sever" + +# +msgid "Norwegian" +msgstr "NorveÅ¡ko" + +msgid "Not associated" +msgstr "Ni povezano" + +msgid "Not configured" +msgstr "" + +# +#, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Ni dovolj prostora! Sprostite prostor na disku in poizkusite ponovno (%d MB zahtevano, %d MB na voljo)" + +msgid "Nothing connected" +msgstr "" + +# +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Iskanje ni možno!\n" +"Pred zaÄetkom iskanja preverite nastavitve kanalnika." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "Zdaj" + +# +msgid "Now playing" +msgstr "Trenutno se predvaja" + +# +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Sedaj spremenite nastavitve kontrasta za zviÅ¡anje svetlosti ozadja kolikor je možno, vendar se prepriÄajte da lahko opazite razliko med dvema nivojema svetlosti. Ko boste zadovoljni z nastavitvami, pritisnite OK. " + +# +msgid "OK" +msgstr "Potrditev" + +# +msgid "OK, guide me through the upgrade process" +msgstr "Prav, vodi me skozi postopek nadgradnje" + +msgid "ONID" +msgstr "ONID" + +msgid "OSD name request" +msgstr "" + +# +msgid "OSD settings" +msgstr "Nastavitve OSD" + +# +msgid "OSD transparency" +msgstr "OSD prosojnost" + +# +msgid "Off" +msgstr "Izklop" + +msgid "Offline decode delay (ms)" +msgstr "Zamik offline dekodiranja (v ms)" + +# +msgid "Ok" +msgstr "Potrdi" + +# +msgid "On" +msgstr "Vklop" + +msgid "On end of movie" +msgstr "Na koncu posnetka" + +msgid "On end of movie (as menu)" +msgstr "" + +# +msgid "One" +msgstr "En" + +# +msgid "Only extensions." +msgstr "Samo razÅ¡iritve." + +# +msgid "Only free scan" +msgstr "Iskanje samo prosto dostopnih kanalov (FTA)" + +# +msgid "Open service list" +msgstr "Odprtje seznama kanalov" + +# +msgid "Open the movie list" +msgstr "Odprtje seznama posnetkov" + +msgid "Orbital position" +msgstr "Položaj satelita" + +msgid "Original" +msgstr "Original" + +msgid "Other" +msgstr "Ostalo" + +msgid "Output" +msgstr "UÄinek" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "Prepis nastavitvenih datotek pri nadgradnji programske opreme?" + +msgid "Overwrite configuration files?" +msgstr "Prepis nastavitvenih datotek?" + +# +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "PCR PID" + +# +msgid "PIDs" +msgstr "PIDs" + +# +msgid "PIN code needed" +msgstr "VpiÅ¡ite PIN kodo" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "PMT PID" + +# +msgid "Package list update" +msgstr "Iskanje posodobitev ..." + +# +msgid "Packet management" +msgstr "Upravljanje paketov" + +# +msgid "Packet manager" +msgstr "Upravljanje paketkov." + +# +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +msgid "Pan&scan" +msgstr "Pan&Scan" + +# +msgid "Parent directory" +msgstr "Prvotna mapa" + +# +msgid "Parental control" +msgstr "StarÅ¡evska zaÅ¡Äita" + +# +msgid "Parental control services editor" +msgstr "Urejanje storitve starÅ¡evske zaÅ¡Äite" + +# +msgid "Parental control setup" +msgstr "Nastavitve starÅ¡evske zaÅ¡Äite" + +# +msgid "Parental control type" +msgstr "Vrsta starÅ¡evske zaÅ¡Äite" + +# +msgid "Password" +msgstr "Geslo" + +# +msgid "Pause" +msgstr "Premor" + +# +msgid "Pause movie at end" +msgstr "Ustavite film na koncu" + +# +msgid "Pause playback" +msgstr "Pavzirajte predvajanje" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "Odstotek na levi strani" + +# +msgid "Percentage right" +msgstr "Odstotek na desni strani" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "Trajno izbriÅ¡em vse posnetke, ki se nahajajo v smetnjaku?" + +msgid "Permanently remove all deleted items" +msgstr "Trajni izbris vseh izbrisanih datotek" + +msgid "Persian" +msgstr "" + +# +msgid "Phone number" +msgstr "Telefonska Å¡tevilka" + +# +msgid "PiP setup" +msgstr "Nastavitve PiP - Slika v Sliki" + +msgid "Picon" +msgstr "SliÄica" + +msgid "Picon and service name" +msgstr "SliÄica in ime kanala" + +# +msgid "Picture player" +msgstr "Prikazovalnik slik" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Pillarbox" + +# +msgid "Pilot" +msgstr "Daljinec" + +# +msgid "Play" +msgstr "Predvajaj" + +# +msgid "Play DVD" +msgstr "Predvajajte DVD" + +msgid "Play audio in background" +msgstr "Predvajanje zvoka v ozadju" + +# +msgid "Play audio-CD..." +msgstr "Predvajajte zvoÄni CD" + +msgid "Play back media files" +msgstr "Predvajanje multimedijskih datotek" + +# +msgid "Play entry" +msgstr "Predvajanje vnosa" + +# +msgid "Play from next mark or playlist entry" +msgstr "Predvajanje od naslednje oznake ali vnosa v seznamu" + +# +msgid "Play from previous mark or playlist entry" +msgstr "Predvajanje od prejÅ¡ne oznake ali vnosa v seznamu" + +# +msgid "Play music..." +msgstr "Predvajanje glasbe" + +msgid "Play next" +msgstr "Predvajaj naslednje" + +msgid "Play next (return to movie list)" +msgstr "Predvajaj naslednje (vrni se na seznam datotek)" + +msgid "Play next (return to previous service)" +msgstr "Predvajaj naslednje (vrni se na prejÅ¡nji kanal)" + +msgid "Play previous" +msgstr "Predvajaj prejÅ¡nje" + +# +msgid "Play recorded movies..." +msgstr "Predvajanje posnetkov" + +# +msgid "Please add titles to the compilation." +msgstr "" + +# +msgid "Please change recording endtime" +msgstr "Spremenite Äas konca snemanja" + +# +msgid "Please check your network settings!" +msgstr "Preverite vaÅ¡e omrežne nastavitve!" + +# +msgid "Please choose an extension..." +msgstr "Izberite razÅ¡iritev:" + +# +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Preverite vaÅ¡e imenske strežnike.\n" +"Ko boste pripravljeni, pritisnite tipko OK." + +# +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Nastavite vaÅ¡o internetno povezavo.\n" +"Po vnosu vseh podatkov, pritisnite OK." + +msgid "Please connect your receiver to the internet" +msgstr "Prosim, povežite vaÅ¡ sprejemnik z internetom!" + +# +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Ne spreminjajte vrednosti Äe niste prepriÄani o rezultatu!" + +# +msgid "Please enter a name for the new bouquet" +msgstr "Vnesite ime za novi paket:" + +# +msgid "Please enter a name for the new marker" +msgstr "Vnesite ime za novo oznako:" + +# +msgid "Please enter a new filename" +msgstr "Vnesite novo ime datoteke:" + +# +msgid "Please enter filename (empty = use current date)" +msgstr "Prosim, da vnesete ime datoteke (prazno = uporabi danaÅ¡nji dan)" + +# +msgid "Please enter name of the new directory" +msgstr "Vnesite ime nove mape:" + +msgid "Please enter new name:" +msgstr "" + +# +msgid "Please enter the correct pin code" +msgstr "Vnesite pravilno PIN kodo;" + +msgid "Please enter the old PIN code" +msgstr "Vnesite prejÅ¡njo PIN kodo" + +# +msgid "Please follow the instructions on the TV" +msgstr "Prosim, da sledite navodilom na TV zaslonu" + +# +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "PrejÅ¡nji izbran medij ni dostopen, uporabljena je privzeta mapa." + +# +msgid "Please press OK to continue." +msgstr "Za nadaljevanje pritisnite tipko OK." + +msgid "Please select a default EPG type..." +msgstr "Prosim, izberite osnovni EPG naÄin!" + +# +msgid "Please select a playlist to delete..." +msgstr "Prosim, da izberete seznam za brisanje." + +# +msgid "Please select a playlist..." +msgstr "Izberite seznam za predvajanje." + +# +msgid "Please select a sub service..." +msgstr "Izbor pod-storitve:" + +# +msgid "Please select a subservice to record..." +msgstr "Izberite snemanje pod-storitve." + +# +msgid "Please select a subservice..." +msgstr "Izberite pod-storitev:" + +msgid "Please select an NFI file and press green key to flash!" +msgstr "Izberite .NFI datoteko in pritisnite zeleno tipko za zaÄetek postopka!" + +# +msgid "Please select medium to be scanned" +msgstr "Izberite medij, ki se ga bo v nadaljevanju pregledalo" + +# +msgid "Please select medium to use as backup location" +msgstr "Izberite ustrezen medij za varnostno kopiranje:" + +# +msgid "Please select tag to filter..." +msgstr "Izberite oznako za filtriranje:" + +# +msgid "Please select the movie path..." +msgstr "Izberite pot do datotek:" + +# +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Izberite mrežni vmesnik, ki ga želite uporabiti za internetno povezavo.\n" +"\n" +"Za nadaljevanje pritisnite OK." + +# +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Izberite brezziÄno mrežo, kamor se želite povezati.\n" +"\n" +"Za nadaljevanje pritisnite OK." + +# +msgid "Please set up tuner A" +msgstr "Nastavite kanalnik B" + +# +msgid "Please set up tuner B" +msgstr "Nastavite kanalnik B" + +# +msgid "Please set up tuner C" +msgstr "Nastavite kanalnik C" + +# +msgid "Please set up tuner D" +msgstr "Nastavite kanalnik D" + +# +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Za prestavljanje okna Slika v Sliki uporabite smerne tipke.\n" +"Za spreminjanje velikosti okna uporabite tipke +/-.\n" +"Pritisnite OK za izhod v TV naÄin ali tipko EXIT za prekinitev premikanja okna." + +# +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "Prosim, da za izbiro jezika uporabite tipke GOR in DOL. Za potrditev pritisnite OK tipko ." + +msgid "Please wait" +msgstr "" + +# +msgid "Please wait (downloading channel list)" +msgstr "Prosim poÄakajte, poteka snemanje seznama kanalov" + +# +msgid "Please wait (downloading softcam)" +msgstr "Prosim poÄakajte, poteka nalaganje emulatorja ..." + +# +msgid "Please wait (updating packages)" +msgstr "Prosim poÄakajte, poteka nalaganje paketov ..." + +# +msgid "Please wait for activation of your network configuration..." +msgstr "PoÄakajte na aktivacijo omrežnih nastavitev ..." + +# +msgid "Please wait while scanning is in progress..." +msgstr "Izvaja se iskanje ... Prosim poÄakajte!" + +# +msgid "Please wait while we configure your network..." +msgstr "Poteka nastavljanje vaÅ¡ega omrežja ... Prosim poÄakajte." + +# +msgid "Please wait while we prepare your network interfaces..." +msgstr "Poteka nastavljanje omrežja ... Prosim poÄakajte!" + +msgid "Please wait while we test your network..." +msgstr "PoÄakajte, da sprejemnik zakljuÄi s testiranjem mreže ..." + +msgid "Please wait while your network is restarting..." +msgstr "PoÄakajte, da se mreža ponovno zažene ..." + +# +msgid "Please wait..." +msgstr "Prosim poÄakajte!" + +# +msgid "Please wait... Loading list..." +msgstr "Nalaganje seznama datotek ..." + +# +msgid "Plugin browser" +msgstr "Seznam vtiÄnikov" + +# +msgid "Plugin manager activity information" +msgstr "" + +# +msgid "Plugin manager help" +msgstr "" + +# +msgid "Plugins" +msgstr "VtiÄniki" + +msgid "Polarisation" +msgstr "Polarizacija" + +msgid "Polarisation:" +msgstr "" + +# +msgid "Polarization" +msgstr "Polarizacija" + +# +msgid "Polish" +msgstr "Poljsko" + +# +msgid "Port A" +msgstr "Vrata A" + +# +msgid "Port B" +msgstr "Vrata B" + +# +msgid "Port C" +msgstr "Vrata C" + +# +msgid "Port D" +msgstr "Vrata D" + +# +msgid "Portuguese" +msgstr "Portugalsko" + +# +msgid "Position of completed timers in timerlist" +msgstr "Položaj konÄanih snemanj v seznamu Äasovnikov" + +msgid "Position stored at index" +msgstr "" + +# +msgid "Positioner" +msgstr "Rotor" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "" + +# +msgid "Positioner setup" +msgstr "Nastavitve rotorja" + +# +msgid "Power threshold in mA" +msgstr "Prag moÄi v mA" + +# +msgid "Predefined transponder" +msgstr "Predefinirani transponder" + +# +msgid "Prefer AC3 track" +msgstr "AC3 zvok naj ima prednost" + +msgid "Prefer AC3+ track" +msgstr "" + +# +msgid "Prefer audio track stored by service" +msgstr "RoÄno izbrana zvoÄna sled naj ima prednost" + +# +msgid "Prefer graphical DVB subtitles" +msgstr "DVB podnapisi naj imajo prednost" + +# +msgid "Prefer subtitles for hearing impaired" +msgstr "Podnapisi za gluhe naj imajo prednost" + +# +msgid "Prefer subtitles stored by service" +msgstr "RoÄno izbran podnapis naj ima prednost" + +# +msgid "Preferred tuner" +msgstr "Prednostni kanalnik" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "" + +# +msgid "Preparing... Please wait" +msgstr "Pripravljam ... Prosim poÄakajte!" + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "Za veÄ informacij pritisnite tipko INFO." + +msgid "Press MENU on your remote control for additional options." +msgstr "Za dodatne nastavitve pritisnite tipko INFO." + +# +msgid "Press OK on your remote control to continue." +msgstr "Za nadaljevanje pritisnite OK." + +# +msgid "Press OK to activate the selected skin." +msgstr "Za aktiviranje izbrane predloge pritisnite OK." + +# +msgid "Press OK to activate the settings." +msgstr "Za aktiviranje nastavitev pritisnite OK." + +# +msgid "Press OK to edit the settings." +msgstr "Za spreminjanje nastavitev pritisnite OK." + +# +#, python-format +msgid "Press OK to get further details for %s" +msgstr "Za podrobnejÅ¡e informacije o %s pritisnite OK." + +# +msgid "Press OK to scan" +msgstr "Za zaÄetek iskanja pritisnite OK" + +# +msgid "Press OK to select a provider." +msgstr "Za izbiro ponudnika pritisnite OK." + +msgid "Press OK to select satellites" +msgstr "" + +# +msgid "Press OK to select/deselect a CAId." +msgstr "Za izbiro/opustitev CAId pritisnite tipko OK." + +# +msgid "Press OK to start the scan" +msgstr "Za zaÄetek iskanja pritisnite OK" + +msgid "Press OK to toggle the selection" +msgstr "" + +# +msgid "Press OK to toggle the selection." +msgstr "Za preklapljanje med izbiro pritisnite tipko OK." + +# +msgid "Press yellow to set this interface as default interface." +msgstr "Pritisnite rumeno tipko za izbor izbranega vmesnika kot privzetega." + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "PrejÅ¡nje" + +# +msgid "Preview" +msgstr "Predogled" + +# +msgid "Preview menu" +msgstr "Predogled meni" + +msgid "Preview selected channel" +msgstr "Predogled izbranega kanala" + +# +msgid "Primary DNS" +msgstr "Primarni DNS" + +# +msgid "Priority" +msgstr "Prioriteta" + +# +msgid "Process" +msgstr "Proces" + +# +msgid "Progress" +msgstr "Napredek" + +# +msgid "Progress bar left" +msgstr "GrafiÄni prikaz napredka na levi" + +# +msgid "Progress bar right" +msgstr "GrafiÄni prikaz napredka na desni" + +# +msgid "Properties of current title" +msgstr "Lastnosti trenutnega naslova" + +# +msgid "Protect services" +msgstr "ZaÅ¡Äiti kanale" + +# +msgid "Protect setup" +msgstr "ZaÅ¡Äiti nastavitve" + +# +msgid "Provider" +msgstr "Ponudniki" + +# +msgid "Provider to scan" +msgstr "Iskanje ponudnika" + +# +msgid "Providers" +msgstr "Ponudniki" + +msgid "Put TV in standby" +msgstr "" + +msgid "Put receiver in standby" +msgstr "" + +# +msgid "Python frontend for /tmp/mmi.socket" +msgstr "" + +# +msgid "Quick" +msgstr "Hitro" + +# +msgid "Quick zap" +msgstr "Hitri preklop" + +# +msgid "RF output" +msgstr "RF Izhod" + +# +msgid "RGB" +msgstr "RGB" + +# +msgid "Radio" +msgstr "Radio" + +# +msgid "Ram disk" +msgstr "Ram Disk" + +# +msgid "Random" +msgstr "NakljuÄno" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "" + +msgid "Rating undefined" +msgstr "" + +# +msgid "Really close without saving settings?" +msgstr "Želite zapreti ne da bi shranili nastavitve?" + +# +msgid "Really delete done timers?" +msgstr "Želite izbrisati konÄane Äasovnike?" + +# +msgid "Really exit the subservices quickzap?" +msgstr "Res želite zapustiti hitri preklop pod-storitev?" + +# +msgid "Really reboot now?" +msgstr "Res želite ponovno zagnati sprejemnik?" + +# +msgid "Really restart now?" +msgstr "Res želite ponovno zagnati sprejemnik?" + +# +msgid "Really shutdown now?" +msgstr "Res želite izklopiti sprejemnik?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "ResniÄno želite nadgraditi frontprocessor in ponovno zagnati sprejemnik?" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "Res želite nadgraditi vaÅ¡ sprejemnik in ponovno zagnati sprejemnik?" + +# +msgid "Reboot" +msgstr "Ponovni zagon" + +msgid "Rec" +msgstr "Rec" + +# +msgid "Reception settings" +msgstr "Nastavitve sprejema" + +# +msgid "Record" +msgstr "Snemanje in seznam datotek" + +# +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "ÄŒas snemanja je omejen zaradi konflikta s Äasovnikom %s" + +# +msgid "Recorded files..." +msgstr "Pot do datotek:" + +# +msgid "Recording" +msgstr "Snemanje" + +msgid "Recording in progress" +msgstr "Trenutno poteka snemanje!" + +# +msgid "Recording paths" +msgstr "Poti snemanja datotek" + +msgid "Recording type" +msgstr "Vrsta snemanja" + +# +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "Snemanje se izvaja ali se bo zaÄelo izvajati v nekaj sekundah!" + +# +msgid "Recordings" +msgstr "Posnetki" + +# +msgid "Recordings always have priority" +msgstr "Snemanje ima vedno viÅ¡jo prioriteto" + +msgid "Red button..." +msgstr "RdeÄa tipka" + +msgid "Reenter new PIN" +msgstr "Ponovni vnos PIN kode" + +# +msgid "Refresh rate" +msgstr "Hitrost osveževanja" + +# +msgid "Refresh rate selection." +msgstr "Izbira osveževanja." + +msgid "Regard deep standby as standby" +msgstr "Obravnavaj globoko spanje kot stanje pripravljenosti" + +msgid "Relative" +msgstr "" + +# +msgid "Reload" +msgstr "Ponovno naloži" + +msgid "Reload black-/white lists" +msgstr "" + +msgid "Reloading bouquets and services..." +msgstr "Poteka ponovno nalaganje priljubljenih seznamov in kanalov ..." + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "Zapomni si PIN kodo kanala" + +msgid "Remember these settings for each folder" +msgstr "Enake nastavitve za vse mape" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "" + +# +msgid "Remote control type" +msgstr "Vrsta starÅ¡evske zaÅ¡Äite" + +# +msgid "Removal has completed." +msgstr "Odstranitev je bila uspeÅ¡na." + +# +msgid "Remove" +msgstr "Odstrani" + +# +msgid "Remove a mark" +msgstr "Odstrani oznako" + +# +msgid "Remove a nameserver entry" +msgstr "Odstranitev imenskega strežnika" + +# +msgid "Remove bookmark" +msgstr "Odstranitev zaznamka" + +# +msgid "Remove completed timers after (days)" +msgstr "Odstranitev datotek iz smetnjaka po X dnevih" + +# +msgid "Remove currently selected title" +msgstr "Odstrani izbrane naslove" + +# +msgid "Remove items from trash can after (days)" +msgstr "Odstranitev datotek iz smetnjaka po X dnevih" + +# +msgid "Remove plugins" +msgstr "Odstranitev" + +# +msgid "Remove title" +msgstr "Odstrani naslov" + +# +msgid "Removing" +msgstr "BriÅ¡em ..." + +# +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Odstranjevanje mape %s ni uspelo. (Obstaja možnost, da ni prazna.)" + +msgid "Removing partition table" +msgstr "Odstranjevanje particijske tabele" + +# +msgid "Rename" +msgstr "Preimenovanje" + +msgid "Repeat" +msgstr "" + +# +msgid "Repeat type" +msgstr "Vrsta ponavljanja" + +# +msgid "Repeating event currently recording... What do you want to do?" +msgstr "Snemanje ponavljajoÄega dogodka je v teku ... Kaj želite storiti?" + +# +msgid "Repeats" +msgstr "Ponovitve" + +msgid "Require authentication for http streams" +msgstr "" + +# +msgid "Required medium type:" +msgstr "Zahtevana vrsta medija:" + +msgid "Rereading partition table" +msgstr "Ponovno branje particijske tabele" + +msgid "Reserved" +msgstr "Rezervirano" + +# +msgid "Reset" +msgstr "Ponovno zaženi" + +# +msgid "Reset and renumerate title names" +msgstr "Preuredi imena naslovov od zaÄetka" + +# +msgid "Reset playback position" +msgstr "Ponastavitev lokacije predvajanja" + +# +msgid "Reset video enhancement settings to system defaults?" +msgstr "Želite ponastaviti napredne video nastavitve?" + +# +msgid "Reset video enhancement settings to your last configuration?" +msgstr "Želite uporabiti video nastavitve, ki ste jih uporabljali nazadnje?" + +# +msgid "Resolution" +msgstr "LoÄljivost" + +# +msgid "Restart" +msgstr "Ponovni zagon" + +# +msgid "Restart GUI now?" +msgstr "Ponoven zagon uporabniÅ¡kega vmesnika?" + +# +msgid "Restart enigma" +msgstr "Ponovni zagon Enigme" + +# +msgid "Restart network" +msgstr "Ponovni zagon omrežja" + +# +msgid "Restart test" +msgstr "Test ponovnega zagona" + +# +msgid "Restart your network connection and interfaces.\n" +msgstr "Ponovno zaženite omrežno povezavo in vmesnike.\n" + +# +msgid "Restore" +msgstr "Povrnitev prejÅ¡njega stanja" + +# +msgid "Restore backups" +msgstr "Povrnitev varnostne kopije" + +# +msgid "Restore is running..." +msgstr "Poteka obnavljanje ..." + +# +msgid "Restore system settings" +msgstr "Obnovitev glavnih nastavitev" + +# +msgid "Restoring..." +msgstr "Obnavljanje ..." + +# +msgid "Resume from last position" +msgstr "Nadaljevanje iz zadnje znane lokacije" + +# +#, python-format +msgid "Resume position at %s" +msgstr "Nadaljevanje iz položaja %s" + +# +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Nadaljevanje predvajanja ..." + +# +msgid "Return to movie list" +msgstr "Nazaj na seznam datotek" + +# +msgid "Return to previous service" +msgstr "Nazaj na prejÅ¡nji kanal" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +# +msgid "Rewind speeds" +msgstr "Hitrosti predvajanja nazaj" + +# +msgid "Rewrap teletext subtitles" +msgstr "Rewrap teletekst podnapise" + +# +msgid "Right" +msgstr "Desno" + +msgid "Right from servicename" +msgstr "" + +msgid "Roll-off" +msgstr "" + +msgid "Romanian" +msgstr "" + +msgid "Root directory" +msgstr "Izvorni direktorij" + +msgid "Rotor step position:" +msgstr "" + +# +msgid "Rotor turning speed" +msgstr "Hitrost premikanja rotorja" + +msgid "Round start time on" +msgstr "" + +# +msgid "Russian" +msgstr "Rusko" + +# +msgid "S-Video" +msgstr "S-Video" + +msgid "SID" +msgstr "SID" + +# +msgid "SINGLE LAYER DVD" +msgstr "Enoslojni DVD" + +# +msgid "SNR" +msgstr "SNR" + +# +msgid "SNR:" +msgstr "SNR:" + +# +msgid "SSID:" +msgstr "SSID:" + +msgid "Same resolution as skin" +msgstr "" + +# +msgid "Sat" +msgstr "Sat" + +# +msgid "Satellite" +msgstr "Satelit" + +# +msgid "Satellite dish setup" +msgstr "Nastavitve satelitskega krožnika" + +# +msgid "Satellite equipment" +msgstr "Satelitska oprema" + +# +msgid "Satellite equipment setup" +msgstr "Nastavitve satelitske opreme" + +msgid "Satellite longitude:" +msgstr "Sat. zemljepisna dolžina:" + +# +msgid "Satellites" +msgstr "Sateliti" + +# +msgid "Satfinder" +msgstr "Iskanje satelitov" + +# +msgid "Sats" +msgstr "Sateliti" + +# +msgid "Saturation" +msgstr "ZasiÄenost" + +# +msgid "Saturday" +msgstr "Sobota" + +# +msgid "Save" +msgstr "Potrditev" + +# +msgid "Save playlist" +msgstr "Shranitev seznama za predvajanje" + +msgid "Save timeshift file" +msgstr "" + +msgid "Save timeshift file in movie directory" +msgstr "" + +# +msgid "Scaler sharpness" +msgstr "Ostrina" + +# +msgid "Scaling mode" +msgstr "NaÄin skaliranja" + +msgid "Scan" +msgstr "" + +# +msgid "Scan " +msgstr "Iskanje" + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, python-format +msgid "Scan %s" +msgstr "Iskanje %s" + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, python-format +msgid "Scan %s band" +msgstr "Iskanje pasa %s" + +# +msgid "Scan additional SR" +msgstr "Iskanje dodatnih SR" + +# +msgid "Scan files..." +msgstr "Iskanje datotek" + +# +msgid "Scan wireless networks" +msgstr "Iskanje brezžiÄnih omrežij" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "V vaÅ¡em omrežju poiÅ¡Äite brezziÄne dostopne toÄke in se povežite na želeno toÄko.\n" + +#, python-format +msgid "Scanning %s..." +msgstr "Pregledovanje %s ..." + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "Pregledovanje - zakljuÄeno je %d%% pregleda!" +msgstr[1] "Pregledovanje - zakljuÄeno je %d%% pregleda!" +msgstr[2] "Pregledovanje - zakljuÄeno je %d%% pregleda!" +msgstr[3] "Pregledovanje - zakljuÄeno je %d%% pregleda!" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "Pregledovanje je uspeÅ¡no zakljuÄeno! Najdeno je bilo %d kanalov." +msgstr[1] "Pregledovanje je uspeÅ¡no zakljuÄeno! Najdeno je bilo %d kanalov." +msgstr[2] "Pregledovanje je uspeÅ¡no zakljuÄeno! Najdeno je bilo %d kanalov." +msgstr[3] "Pregledovanje je uspeÅ¡no zakljuÄeno! Najdeno je bilo %d kanalov." + +msgid "Scanning failed!" +msgstr "Pregledovanje ni uspelo!" + +msgid "Scanning..." +msgstr "Pregledovanje ..." + +# +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "Iskanje privzetih lamedbs razvrÅ¡Äenih po satelitih s povezanimi pozicionerji." + +# +msgid "Search east" +msgstr "Iskanje Vzhod-a" + +# +msgid "Search west" +msgstr "Iskanje Zahod-a" + +msgid "Searching" +msgstr "Iskanje" + +msgid "Searching east ..." +msgstr "Iskanje na vzhodu ..." + +# +msgid "Searching for available updates. Please wait..." +msgstr "Iskanje posodobitev ... Prosim poÄakajte!" + +# +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "Iskanje na novo nameÅ¡Äenih ali odstranjenih paketkov ... Prosim poÄakajte!" + +msgid "Searching west ..." +msgstr "Iskanje na zahodu ..." + +msgid "Second cable of motorized LNB" +msgstr "" + +# +msgid "Secondary DNS" +msgstr "Sekundarni DNS" + +# +msgid "Seek" +msgstr "Iskanje" + +# +msgid "Seek backward" +msgstr "Preskok nazaj" + +# +msgid "Seek backward (enter time)" +msgstr "Preskok nazaj (vnos Äasa)" + +# +msgid "Seek forward" +msgstr "Preskok naprej" + +# +msgid "Seek forward (enter time)" +msgstr "Preskok naprej (vnos Äasa)" + +# +msgid "Select" +msgstr "Izberite" + +# +msgid "Select CAId" +msgstr "Izberite CAId" + +# +msgid "Select HDD" +msgstr "Izberite trdi disk" + +# +msgid "Select a bouquet" +msgstr "Izberite seznam priljubljenih kanalov" + +# +msgid "Select a movie" +msgstr "Izberite posnetek" + +# +msgid "Select a network adapter" +msgstr "Izberite omrežni vmesnik" + +# +msgid "Select a skin" +msgstr "Izberite preobleko" + +# +msgid "Select a tuner" +msgstr "Izberite kanalnik" + +# +msgid "Select a wireless network" +msgstr "Izberite brezziÄno omrežje" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +msgid "Select an image to be downloaded" +msgstr "Izberite sliko za prenos" + +# +msgid "Select audio track" +msgstr "Izberite zvoÄni nosilec" + +# +msgid "Select backup files" +msgstr "Izberite datoteke, ki jih boste varnostno kopirali" + +# +msgid "Select backup location" +msgstr "Izberite lokacijo varnostnih kopij" + +# +msgid "Select channel to record from" +msgstr "Izberite kanal za snemanje" + +msgid "Select copy destination for:" +msgstr "Izberite konÄni cilj za:" + +msgid "Select default EPG type..." +msgstr "Izberite osnovni EPG tip!" + +# +msgid "Select desired image from feed list" +msgstr "Izberite željeno sliko (image) iz liste" + +# +msgid "Select destination for:" +msgstr "Izberite konÄno pot za:" + +# +msgid "Select files for backup." +msgstr "Izberite datoteke za varnostno kopiranje." + +# +msgid "Select files/folders to backup" +msgstr "Izberite datoteke za varnostno kopijo" + +# +msgid "Select input device" +msgstr "Izberite vhodno napravo" + +# +msgid "Select input device." +msgstr "Izberite vhodno napravo." + +# +msgid "Select interface" +msgstr "Izberite vmesnik" + +# +msgid "Select location" +msgstr "Izberite lokacijo" + +# +msgid "Select movie" +msgstr "Izberite posnetek" + +# +msgid "Select provider to add..." +msgstr "Izberite ponudnika, ki ga želite dodati." + +# +msgid "Select refresh rate" +msgstr "Izberite hitrost osveževanja" + +msgid "Select satellites" +msgstr "" + +# +msgid "Select service to add..." +msgstr "Izberite kanal, ki ga želite dodati." + +msgid "Select sort method:" +msgstr "" + +# +msgid "Select target folder" +msgstr "Izberite ciljno mapo" + +# +msgid "Select the movie path" +msgstr "Izberite pot do posnetka" + +# +msgid "Select upgrade source" +msgstr "Izberite vir nadgradnje" + +# +msgid "Select upgrade source to edit." +msgstr "Izberite vir, ki ga boste urejali." + +# +msgid "Select video input with up/down buttons" +msgstr "Z gor in dol tipkami izberite video vhod" + +# +msgid "Select video mode" +msgstr "Izberite video naÄin" + +# +msgid "Select wireless network" +msgstr "Izberite brezziÄno omrežje" + +msgid "Select your provider, and press OK to start the scan" +msgstr "Izberite vaÅ¡ega operaterja in za zaÄetek iskanja pritisnite OK!" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +# +msgid "Send DiSEqC only on satellite change" +msgstr "PoÅ¡lji DiSEqC signal samo ob menjavi satelita" + +# +msgid "Separate titles with a main menu" +msgstr "Razdeljeni naslovi z glavnim menijem" + +# +msgid "Sequence repeat" +msgstr "Ponovi zaporedje" + +# +msgid "Serbian" +msgstr "Srbsko" + +# +msgid "Service" +msgstr "Informacije o trenutnem kanalu" + +# +msgid "Service has been added to the favourites." +msgstr "Kanal je dodan med priljubljene." + +# +msgid "Service has been added to the selected bouquet." +msgstr "Kanal je dodan v izbran paket." + +# +msgid "Service info" +msgstr "Info. o kanalu" + +# +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Kanal neveljaven!\n" +"(Potekel Äas branja PMT)" + +msgid "Service name" +msgstr "Ime kanala" + +# +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Kanala ni moÄ najti!\n" +"(SID ni v PAT)" + +msgid "Service reference" +msgstr "Referenca kanala" + +# +msgid "Service scan" +msgstr "Iskanje kanalov" + +# +msgid "Service searching" +msgstr "Iskanje kanalov" + +# +msgid "Service title mode" +msgstr "NaÄin naslova kanala" + +# +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"Kanal ni dostopen!\n" +"Preverite nastavitve kanalnika." + +# +msgid "Services" +msgstr "Kanali" + +msgid "Set default" +msgstr "" + +# +msgid "Set end time" +msgstr "DoloÄite Äas konca" + +msgid "Set fixed" +msgstr "DoloÄi fiksno" + +msgid "Set fps for external subtitles" +msgstr "" + +# +msgid "Set interface as default Interface" +msgstr "Nastavite kot privzet vmesnik" + +msgid "Set limits" +msgstr "DoloÄitev meja" + +# +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "GrafiÄni prikaz poteka TV kanala - v seznamu kanalov" + +msgid "Set time window to 1 hour" +msgstr "DoloÄi Äasovno okno na 1 uro" + +msgid "Set time window to 2 hours" +msgstr "DoloÄi Äasovno okno na 2 uri" + +msgid "Set time window to 3 hours" +msgstr "DoloÄi Äasovno okno na 3 ure" + +msgid "Set time window to 4 hours" +msgstr "DoloÄi Äasovno okno na 4 ure" + +msgid "Set time window to 5 hours" +msgstr "DoloÄi Äasovno okno na 5 ur" + +msgid "Set time window to 6 hours" +msgstr "" + +# +msgid "Set voltage and 22KHz" +msgstr "Nastavi napetost in 22KHz " + +# +msgid "Settings" +msgstr "Nastavitve" + +# +msgid "Setup" +msgstr "Nastavitve" + +msgid "Setup menu" +msgstr "Nastavitve" + +# +msgid "Setup mode" +msgstr "Nastavitveni naÄin" + +msgid "Setup your positioner" +msgstr "Nastavitev pozicionerja" + +# +msgid "Setup your satellite equipment" +msgstr "Nastavljanje satelitske opreme" + +# +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "" + +# +msgid "Sharpness" +msgstr "Ostrina" + +msgid "Short filenames" +msgstr "Kratka imena datotek" + +# +msgid "Show EIT now/next in infobar" +msgstr "Prikaz EIT trenutnega/naslednjega dogodka v info. vrstici" + +# +msgid "Show EPG for current channel..." +msgstr "Prikaz EPG za trenutni kanal" + +# +msgid "Show EPG..." +msgstr "Prikaz EPG" + +msgid "Show Games show" +msgstr "" + +msgid "Show SNR percentage instead of dB value" +msgstr "Prikaz SNR vrednosti v odstotkih, namesto v dB" + +msgid "Show VCR scart on main menu" +msgstr "" + +# +msgid "Show WLAN status" +msgstr "Prikaz stanja brezziÄne mreže" + +# +msgid "Show animation while busy" +msgstr "Ko je sprejemnik zaposlen, naj se prikazuje animacija" + +# +msgid "Show background in radio mode" +msgstr "Prikaz ozadja v radio naÄinu" + +msgid "Show bouquet selection menu" +msgstr "Prikaz izbirnika priljubljenih seznamov kanalov" + +msgid "Show busy indicator when the system is busy." +msgstr "Kadar je sprejemnik zaposlen, naj se prikazuje ustrezen indikator" + +# +msgid "Show channel numbers in channel selection" +msgstr "Å tevilÄenje posameznih kanalov - v seznamu kanalov" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +# +msgid "Show crypto info in infobar" +msgstr "Prikaz kodiranja kanala v informacijski vrstici" + +msgid "Show detailed event info" +msgstr "Prikaz podrobnih informacij o dogodku" + +# +msgid "Show event details" +msgstr "Prikaz informacij o dogodku" + +# +msgid "Show event-progress in channel selection" +msgstr "GrafiÄni prikaz poteka TV kanala - v seznamu kanalov" + +# +msgid "Show extended description" +msgstr "Prikaz razÅ¡irjenih informacij" + +# +msgid "Show extensions..." +msgstr "Seznam vtiÄnikov" + +msgid "Show icon for new/unseen items" +msgstr "Prikaz ikone za nove/neogledane datoteke" + +msgid "Show in extensions menu" +msgstr "" + +# +msgid "Show info" +msgstr "Prikaz informacij" + +# +msgid "Show info line" +msgstr "Prikaz info. vrstice" + +# +msgid "Show infobar on channel change" +msgstr "Prikaz info. vrstice med prehajanjem po kanalih" + +# +msgid "Show infobar on event change" +msgstr "Prikaz info. vrstice ob spremembi dogodka" + +# +msgid "Show infobar on skip forward/backward" +msgstr "Prikaz info. vrstice med predvajanjem naprej/nazaj" + +msgid "Show latest commits on sourceforge" +msgstr "" + +# +msgid "Show message when recording starts" +msgstr "Prikaz obvestila ob zaÄetku snemanja" + +# +msgid "Show movie lengths in movielist" +msgstr "Prikaz dolžine posnetkov v seznamu datotek" + +msgid "Show multi channel EPG" +msgstr "" + +msgid "Show picons in channel list" +msgstr "" + +# +msgid "Show positioner movement" +msgstr "Prikaz premikanja rotorja" + +msgid "Show screensaver" +msgstr "" + +# +msgid "Show second infobar" +msgstr "Prikaz razÅ¡irjene informacijske vrstice" + +msgid "Show service type icons" +msgstr "" + +# +msgid "Show services beginning with" +msgstr "Prikaz kanalov, ki se zaÄnejo z" + +# +msgid "Show shutdown menu" +msgstr "Prikaz menija za izklop" + +msgid "Show single service EPG" +msgstr "" + +msgid "Show status icons in Movielist" +msgstr "" + +# +msgid "Show status icons in movie list" +msgstr "Prikaz statusnih ikon v seznamu datotek" + +# +msgid "Show status icons in movielist" +msgstr "Prikaz statusnih ikon v seznamu datotek" + +# +msgid "Show tag menu" +msgstr "Prikaz menija oznak (tags)" + +# +msgid "Show the radio player..." +msgstr "Prikaz radio predvajalnika" + +# +msgid "Show the tv player..." +msgstr "Prikaz TV predvajalnika" + +msgid "Show warning when timeshift is stopped" +msgstr "" + +# +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Prikaz stanja brezžiÄne mrežne povezave.\n" + +# +msgid "Shuffle playlist" +msgstr "NakljuÄni izbor datotek iz seznama za predvajanje" + +# +msgid "Shutdown" +msgstr "Izklop" + +msgid "Shutdown when in Standby" +msgstr "" + +msgid "Side by side" +msgstr "" + +msgid "Signal OK, proceeding" +msgstr "Signal je zadovoljiv, nadaljujem ..." + +msgid "Signal quality" +msgstr "Kakovost signala" + +# +msgid "Signal strength:" +msgstr "MoÄ signala:" + +# +msgid "Signal: " +msgstr "Signal:" + +# +msgid "Similar" +msgstr "Podobno" + +# +msgid "Similar broadcasts:" +msgstr "Sorodne oddaje:" + +# +msgid "Simple" +msgstr "Enostavno" + +# +msgid "Simple titleset (compatibility for legacy players)" +msgstr "Enostavna oblika (združljivost s starejÅ¡imi predvajalniki)" + +# +msgid "Single" +msgstr "Posamezen" + +# +msgid "Single EPG" +msgstr "Enostavni EPG" + +# +msgid "Single satellite" +msgstr "Posamezni satelit" + +# +msgid "Single step (GOP)" +msgstr "Po korakih (GOP)" + +# +msgid "Single transponder" +msgstr "Posamezni transponder" + +msgid "Site latitude" +msgstr "" + +msgid "Site longitude" +msgstr "" + +# +msgid "Skin" +msgstr "Izbor predloge" + +# +msgid "Skins" +msgstr "Predloge" + +msgid "Skip empty services" +msgstr "PreskoÄi kanale brez sporeda" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "PreskoÄi preverbo internetne povezave (izklop samodejne namestitve paketov)" + +# +msgid "Sleep timer" +msgstr "ÄŒasovnik spanja" + +msgid "SleepTimer Configuration" +msgstr "" + +msgid "Sleeptimer" +msgstr "" + +# +msgid "Slide picture in loop" +msgstr "Prikaz slike v zanki" + +# +msgid "Slide show interval (sec.)" +msgstr "Interval prikazovanja (v sekundah)" + +# +#, python-format +msgid "Slot %d" +msgstr "Slot %d" + +msgid "Slovak" +msgstr "" + +# +msgid "Slovenian" +msgstr "SlovenÅ¡Äina" + +# +msgid "Slow" +msgstr "PoÄasi" + +# +msgid "Slow motion speeds" +msgstr "Hitrosti poÄasnega predvajanja" + +# +msgid "Small progress" +msgstr "Se izvaja" + +msgid "Social/Political/Economics" +msgstr "" + +# +msgid "SoftCam / CI" +msgstr "Emulatorji" + +# +msgid "Softcam type" +msgstr "Vrsta emulatorja" + +# +msgid "Software" +msgstr "Program. oprema" + +# +msgid "Software management" +msgstr "Posodobitev sprejemnika" + +# +msgid "Software manager setup" +msgstr "Software Manager nastavitve" + +# +msgid "Software restore" +msgstr "Obnova prog. opreme" + +# +msgid "Software update" +msgstr "Nadgradnja OpenPLi slike" + +msgid "Softwaremanager information" +msgstr "Softwaremanager informacije" + +# +msgid "Some plugins are not available:\n" +msgstr "Nekateri vtiÄniki niso na voljo:\n" + +# +#, python-format +msgid "Sorry, %s has not been installed!" +msgstr "Oprostite, %s ni bil nameÅ¡Äen!" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "Oprostite, brisanje map je možno samo preko smetnjaka." + +# +msgid "Sorry, no backups found!" +msgstr "Varnostne kopije ne obstajajo!" + +# +msgid "Sorry, no details available!" +msgstr "Oprostite, dodatne informacije niso na voljo!" + +# +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "Prostor na katerega želite zapisati varnostno kopijo ni zapisljiv!" + +msgid "Sort" +msgstr "RazvrÅ¡Äanje" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Razvrstitev A-Z" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort time" +msgstr "ÄŒas urejanja" + +# +msgid "Sound" +msgstr "Zvok" + +# +msgid "Sound carrier" +msgstr "ZvoÄni nosilec" + +msgid "Source request" +msgstr "" + +# +msgid "South" +msgstr "Jug" + +# +msgid "Spanish" +msgstr "Å pansko" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +# +msgid "Split preview mode" +msgstr "" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "" + +# +msgid "Standard" +msgstr "Standardno" + +msgid "Standart list" +msgstr "" + +# +msgid "Standby" +msgstr "Stanje pripravljenosti" + +# +msgid "Standby / restart" +msgstr "Možnosti izklopa sprejemnika" + +msgid "Standby after current event" +msgstr "" + +# +#, python-format +msgid "Standby fan %d PWM" +msgstr "Ventilator v stanju pripravljenosti %d PWM" + +# +#, python-format +msgid "Standby fan %d voltage" +msgstr "Ventilator v stanju pripravljenosti %d voltaža" + +msgid "Standby in " +msgstr "" + +msgid "StandbyLED" +msgstr "" + +# +msgid "Start from the beginning" +msgstr "ZaÄnite od zaÄetku" + +msgid "Start offline decode" +msgstr "PriÄni z offline dekodiranjem" + +# +msgid "Start recording?" +msgstr "ZaÄnem snemanje?" + +# +msgid "Start test" +msgstr "Zaženite test" + +# +msgid "Start time" +msgstr "ÄŒas zaÄetka" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +# +msgid "Start timeshift" +msgstr "PriÄetek Äasovnega zamika" + +msgid "Start with list screen" +msgstr "" + +# +msgid "Starting on" +msgstr "ZaÄnem ob" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +# +msgid "Step east" +msgstr "Korak na Vzhod" + +# +msgid "Step west" +msgstr "Korak na Zahod" + +msgid "Stepped east" +msgstr "" + +msgid "Stepped west" +msgstr "" + +# +msgid "Stop" +msgstr "Zaustavitev" + +# +msgid "Stop PiP" +msgstr "Ustavitev Slike v Sliki" + +# +msgid "Stop current event and disable coming events" +msgstr "Ustavite trenutni dogodek in onemogoÄite prihodnje dogodke." + +# +msgid "Stop current event but not coming events" +msgstr "Ustavite trenutni dogodek, ne pa prihodnjih dogodkov" + +# +msgid "Stop entry" +msgstr "Ustavitev vnosa" + +# +msgid "Stop playing this movie?" +msgstr "Ustavim predvajanje filma?" + +msgid "Stop recording" +msgstr "ZakljuÄi s snemanjem" + +msgid "Stop recording and delete" +msgstr "ZakljuÄi s snemanjem in izbriÅ¡i" + +msgid "Stop service on return to movie list" +msgstr "" + +# +msgid "Stop test" +msgstr "Ustavim test" + +# +msgid "Stop testing plane after # failed transponders" +msgstr "Ustavite testiranje po # napaÄnih transponderjih" + +# +msgid "Stop testing plane after # successful transponders" +msgstr "Ustavite testiranje po # uspelih transponderjih" + +msgid "Stop timer recording" +msgstr "" + +# +msgid "Stop timeshift" +msgstr "Ustavitev Äasovnega zamika" + +# +msgid "Stop timeshift?" +msgstr "Ustavim Äasovni zamik?" + +# +msgid "Stopped" +msgstr "Ustavljeno" + +msgid "Store at index" +msgstr "" + +# +msgid "Store position" +msgstr "Shranite položaj" + +# +msgid "Stored position" +msgstr "Shranjeni položaji" + +msgid "Stream" +msgstr "Pretok" + +msgid "Stream request" +msgstr "Zahtevek za priÄetek pretakanja" + +msgid "Strongest position" +msgstr "" + +# +msgid "Subservice list..." +msgstr "Seznam pod-storitev" + +# +msgid "Subservices" +msgstr "Pod-storitve" + +msgid "Subtitle Quickmenu" +msgstr "" + +# +msgid "Subtitle alignment" +msgstr "Poravnava podnapisov" + +# +msgid "Subtitle border width" +msgstr "Å irina obrobe pisave" + +msgid "Subtitle delay when timing is bad" +msgstr "" + +# +msgid "Subtitle delay when timing lacks" +msgstr "Zamik podnapisov, ko je to potrebno" + +# +msgid "Subtitle font size" +msgstr "Velikost podnapisov" + +# +msgid "Subtitle language selection 1" +msgstr "Jezik podnapisa - 1" + +# +msgid "Subtitle language selection 2" +msgstr "Jezik podnapisa - 2" + +# +msgid "Subtitle language selection 3" +msgstr "Jezik podnapisa - 3" + +# +msgid "Subtitle language selection 4" +msgstr "Jezik podnapisa - 4" + +# +msgid "Subtitle position" +msgstr "Položaj podnapisov" + +# +msgid "Subtitle selection" +msgstr "Izbira podnapisov" + +msgid "Subtitle selection..." +msgstr "Izbira podnapisov" + +# +msgid "Subtitle settings" +msgstr "Napredni OpenPLi podnapisi" + +# +msgid "Subtitles" +msgstr "Podnapisi" + +# +msgid "Sun" +msgstr "Ned" + +# +msgid "Sunday" +msgstr "Nedelja" + +# +msgid "Swap PiP and main picture" +msgstr "Menjava Slike v Sliki z glavno sliko" + +# +msgid "Swap services" +msgstr "Zamenjava kanala" + +# +msgid "Swedish" +msgstr "Å vedsko" + +msgid "Switch TV to correct input" +msgstr "Preklop TVja na pravilni vhod" + +msgid "Switch between filelist/playlist" +msgstr "" + +msgid "Switch between normal mode and list mode" +msgstr "" + +msgid "Switch to HDMI in mode" +msgstr "" + +# +msgid "Switch to filelist" +msgstr "Preklop na seznam datotek" + +msgid "Switch to next channel" +msgstr "" + +# +msgid "Switch to next channel in history" +msgstr "Naslednji kanal v zgodovini" + +# +msgid "Switch to next sub service" +msgstr "Preklop na naslednjo pod-storitev" + +# +msgid "Switch to playlist" +msgstr "Preklop na seznam datotek" + +# +msgid "Switch to previous channel" +msgstr "Preklop na prejÅ¡nji kanal" + +# +msgid "Switch to previous channel in history" +msgstr "Predhodni kanal v zgodovini" + +# +msgid "Switch to previous sub service" +msgstr "Preklop na prejÅ¡njo pod-storitev" + +# +msgid "Switchable tuner types:" +msgstr "Preklopljive vrste kanalnikov:" + +# +msgid "Symbol rate" +msgstr "Razmerje simbolov" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "" + +# +msgid "System" +msgstr "Sistem " + +# +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "" +"slovenski prevod za OpenPLi - @Taykun345\n" +"http://www.linux-sprejemniki.info\n" +"datum prevoda - 1.12.2012" + +# +msgid "TS file is too large for ISO9660 level 1!" +msgstr "TS datoteka prevelika za ISO9660 level 1!" + +msgid "TSID" +msgstr "TSID" + +msgid "TV physical address report" +msgstr "" + +msgid "TXT PID" +msgstr "TXT PID" + +# +msgid "Table of contents for collection" +msgstr "Kazalo vsebine zbirke" + +# +msgid "Tags" +msgstr "Zaznamki" + +# +msgid "Teletext subtitle color" +msgstr "Barva teletekst podnapisov" + +# +msgid "Temperature and fan control" +msgstr "Nadzor ventilatorja in temperature" + +# +msgid "Terrestrial" +msgstr "Zemeljski" + +# +msgid "Terrestrial provider" +msgstr "Zemeljski ponudnik" + +# +msgid "Test DiSEqC settings" +msgstr "Testiranje DiSEqC nastavitev" + +# +msgid "Test mode" +msgstr "Testni naÄin" + +msgid "Test the network configuration of your receiver.\n" +msgstr "PreizkuÅ¡anje mrežnih nastavitev vaÅ¡ega sprejemnika.\n" + +# +msgid "Test type" +msgstr "Vrsta testa" + +# +msgid "Text color" +msgstr "barva besedila" + +msgid "Thai" +msgstr "" + +# +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "Hvala, da ste uporabili Äarovnik. Za nadaljevanje pritisnite OK!" + +# +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"Hvala, da ste uporabili Äarovnik. Sprejemnik je sedaj pripravljen za uporabo.\n" +"Za nadaljevanje pritisnite OK!" + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "" + +msgid "The PIN code has been changed successfully." +msgstr "PIN koda je spremenjena." + +msgid "The PIN codes you entered are different." +msgstr "NapaÄna PIN koda." + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" + +# +msgid "The backup failed. Please choose a different backup location." +msgstr "Izdelava varnostne kopije ni uspela. Prosim, da izberite drugo lokacijo." + +# +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" +"Trenutna verzija OpenPLi slike ni stabilna.\n" +"Za veÄ informacij obiÅ¡Äite %s." + +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"Mapa %s ni zapisljiva.\n" +"Poskrbite, da izberite zapisljivo mapo." + +# +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"Najdene naprave:\n" +"\n" +"%s\n" +"\n" +"Ali želite zapisati orodje za USB programsko nadgradnjo na kljuÄ?" + +# +msgid "The following files were found..." +msgstr "Najdene datoteke:" + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "md5sum preverba ni uspela. Obstaja verjetnost, da je datoteka okvarjena." + +# +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "NetworkWizard vtiÄnik ni nameÅ¡Äen. Prosim, da ga namestite!" + +# +#, python-format +msgid "The path %s already exists." +msgstr "Pot %s že obstaja." + +# +msgid "The pin code you entered is wrong." +msgstr "NapaÄna PIN koda." + +# +#, python-format +msgid "The results have been written to %s." +msgstr "Rezultati so bili zapisani na %s." + +# +msgid "The sleep timer has been activated." +msgstr "ÄŒasovnik spanja je omogoÄen." + +# +msgid "The sleep timer has been disabled." +msgstr "ÄŒasovnik spanja je onemogoÄen." + +# +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "VtiÄnik SoftwareManagement ni nameÅ¡Äen. Prosim za namestitev!" + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "Ni možno preveriti statusa trenutne beta OpenPLi slike, ker je spletna stran %s nedosegljiva!" + +# +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "Datoteka s Äasovniki (timers.xml) je okvarjena in je ni možno namestiti." + +msgid "The user interface of your receiver is restarting" +msgstr "Poteka ponovni zagon uporabniÅ¡kega vmesnika (GUI) ..." + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" +"UporabniÅ¡ki vmesnik sprejemnika se bo v kratkem ponovno zagnal!\n" +"Razlog je napaka v datoteki mytest.py" + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "VtiÄnik za brezziÄno mrežo ni nameÅ¡Äen! Prosim, da ga namestite!" + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"VtiÄnik za brezžiÄno mrežo ni nameÅ¡Äen!\n" +"Prosim, da ga namestite." + +# +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "ÄŒarovnik bo kreiral varnostno kopijo vaÅ¡ih trenutnih nastavitev. Želite to storiti sedaj?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "ÄŒarovnik je naÅ¡el shranjene nastavitve. Želite obnoviti te nastavitve iz %s?" + +# +msgid "The wizard is finished now." +msgstr "ÄŒarovnik je konÄan." + +# +msgid "There are at least " +msgstr "Obstaja vsaj" + +# +#, python-format +msgid "There are at least %s updates available." +msgstr "Na voljo je %s posodobitev." + +# +msgid "There are currently no outstanding actions." +msgstr "" + +# +msgid "There are no updates available." +msgstr "Posodobitev ni na voljo." + +msgid "There is no signal to lock on !" +msgstr "Ni signala!" + +# +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"Na izbranem delu trdega diska morda ni dovolj prostora.\n" +"Ali želite nadaljevati?" + +# +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "DVD RW medij je že formatiran-ponovno formatiranje bo izbrisalo vso vsebino na mediju!" + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" + +# +msgid "This plugin is installed." +msgstr "Ta vtiÄnik je nameÅ¡Äen." + +# +msgid "This plugin is not installed." +msgstr "Ta vtiÄnik ni nameÅ¡Äen." + +# +msgid "This plugin will be installed." +msgstr "Ta vtiÄnik bo nameÅ¡Äen." + +# +msgid "This plugin will be removed." +msgstr "Ta vtiÄnik bo odstranjen." + +# +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "Sprejemnik ne more odkleniti %s tokov!" + +# +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"Preverja se nastavitev imenskih strežnikov.\n" +"V kolikor se pojavi opozorilo \"nepotrjeno\":\n" +"- preverite vaÅ¡ DHCP, kable in nastavitve vmesnika\n" +"- preverite nastavitve pri roÄno nastavljenih imenskih strežnikih - \"Imenski strežnik\"" + +# +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Preverja se povezanost omrežnega kabla v vaÅ¡ omrežni vmesnik. \n" +"V kolikor se pojavi opozorilo \"ni povezave\":\n" +"- preverite ali je omrežni kabel prikljuÄen\n" +"- preverite ali je omrežni kabel nepoÅ¡kodovan" + +# +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Preverja se veljavnost izbranega IP naslova vaÅ¡ega omrežnega vmesnika.\n" +"V kolikor se pojavi obvestilo \"nepotrjen\":\n" +"- ni veljavnega IP naslova\n" +"- preverite DHCP nastavitve, omrežni kabel in nastavitve mrežnega vmesnika" + +# +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"Preverja se nastavitev samodejnega IP naslavljanja vaÅ¡ega LAN vmesnika z DHCP.\n" +"V kolikor se pojavi opozorilo \"onemogoÄeno\":\n" +"- LAN vmesnik je nastavljen na roÄno IP naslavljanje\n" +"- preverite pravilnost vneÅ¡enih IP informacij v oknu Nastavitev vmesnika.\n" +"V kolikor se pojavi opozorilo \"omogoÄeno\":\n" +"- preverite delovanje DHCP strežnika v vaÅ¡em omrežju." + +# +msgid "This test detects your configured LAN adapter." +msgstr "Ta test preveri nastavljene omrežne vmesnike. " + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" + +# +msgid "Three" +msgstr "Tri" + +# +msgid "Threshold" +msgstr "Prag" + +# +msgid "Thu" +msgstr "ÄŒet" + +# +msgid "Thumbnails" +msgstr "SliÄice" + +# +msgid "Thursday" +msgstr "ÄŒetrtek" + +# +msgid "Time" +msgstr "ÄŒas" + +# +msgid "Time scale" +msgstr "Izbira Äasovnika" + +# +msgid "Timer" +msgstr "ÄŒasovnik" + +msgid "Timer Overview" +msgstr "" + +# +msgid "Timer edit" +msgstr "Urejanje Äasovnika" + +# +msgid "Timer editor" +msgstr "Urejevalnik Äasovnikov" + +# +msgid "Timer entry" +msgstr "Vnos Äasovnika" + +# +msgid "Timer log" +msgstr "Dnevnik Äasovnika" + +# +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"Zaznano je bilo prekrivanje Äasovnikov v timers.xml!\n" +"Prosim, ponovno preverite!" + +msgid "Timer overview" +msgstr "Pregled Äasovnikov" + +# +msgid "Timer recording location" +msgstr "Lokacija \"timer\" snemanja" + +# +msgid "Timer sanity error" +msgstr "Napaka Äasovnika" + +# +msgid "Timer selection" +msgstr "Izbira Äasovnika" + +msgid "Timer selection..." +msgstr "" + +# +msgid "Timer type" +msgstr "Vrsta Äasovnika" + +# +msgid "Timeshift" +msgstr "ÄŒasovni zamik" + +msgid "Timeshift Live" +msgstr "" + +# +msgid "Timeshift location" +msgstr "Lokacija Äasovnega zamika" + +# +msgid "Timeshift not possible!" +msgstr "ÄŒasovni zamik ni možen!" + +# +msgid "Timezone" +msgstr "ÄŒasovni pas" + +# +msgid "Title" +msgstr "Naslov" + +# +msgid "Title properties" +msgstr "Lastnosti naslova" + +# +msgid "Titleset mode" +msgstr "NaÄin za doloÄanje naslovov" + +# +msgid "To audio selection" +msgstr "Pojdite na izbiro zvoÄne sledi" + +# +msgid "To subtitle selection" +msgstr "Pojdite na izbiro podnapisa" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" +"ÄŒe želite nadgraditi vaÅ¡ sprejemnik na najnovejÅ¡o verzijo slike, sledite naslednjim navodilom:\n" +"1) Izklopite sprejemnik z uporabo stikala na zadnji strani sprejemnika in v njega vtaknite USB kljuÄek. Uporabite zadnje USB priklope!\n" +"2) Sprejemnik vklopite in obenem pritisnite in tiÅ¡Äite tipko \"DOL\", ki se nahaja na sprednji strani sprejemnika. Tipko je potrebno tiÅ¡Äati približno 10 sekund.\n" +"3)PoÄakajte, da se sprejemnik zažene in sledite navodilom na TV ekranu." + +# +msgid "Today" +msgstr "Danes" + +# +msgid "Toggle a cut mark at the current position" +msgstr "Aktiviranje rezanja na trenutno oznaÄenem položaju" + +# +msgid "Tone amplitude" +msgstr "Tonska amplituda" + +# +msgid "Tone mode" +msgstr "NaÄin zvoka" + +# +msgid "Toneburst" +msgstr "Toneburst" + +# +msgid "Toneburst A/B" +msgstr "Toneburst A/B" + +msgid "Top and bottom" +msgstr "Zgoraj in spodaj" + +# +msgid "Track" +msgstr "Zapis" + +# +msgid "Translation" +msgstr "Prevod" + +# +msgid "Translation:" +msgstr "Prevod:" + +msgid "Translations" +msgstr "" + +# +msgid "Transmission mode" +msgstr "NaÄin posredovanja" + +# +msgid "Transponder" +msgstr "Transponder" + +# +msgid "Transponder type" +msgstr "Vrsta transponderja" + +msgid "Trash can" +msgstr "Smetnjak" + +# +msgid "Tries left:" +msgstr "Preostalo Å¡t. poskusov:" + +# +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Poteka iskanje transponderjev v kabelskem omrežju ... Prosim poÄakajte!" + +# +msgid "Trying to download a new packetlist. Please wait..." +msgstr "Poteka nalaganje novega seznama paketov ... Prosim poÄakajte!" + +# +msgid "Tue" +msgstr "Tor" + +# +msgid "Tuesday" +msgstr "Torek" + +# +msgid "Tune" +msgstr "Nastavi" + +# +msgid "Tune and focus" +msgstr "" + +# +msgid "Tune failed!" +msgstr "Napaka v sprejemu!" + +# +msgid "Tuner" +msgstr "Kanalnik" + +# +msgid "Tuner configuration" +msgstr "Nastavitev kanalnikov" + +msgid "Tuner is not supported" +msgstr "" + +# +msgid "Tuner slot" +msgstr "Reža kanalnika" + +# +msgid "Tuner status" +msgstr "Stanje kanalnika" + +# +#, python-format +msgid "Tuner status %s" +msgstr "Stanje kanalnika %s" + +# +msgid "Tuner type" +msgstr "Vrsta kanalnika" + +# +msgid "Turkish" +msgstr "TurÅ¡ko" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +# +msgid "Two" +msgstr "Dva" + +# +msgid "Type" +msgstr "Vrsta" + +# +msgid "Type of scan" +msgstr "Vrsta iskanja" + +# +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "USALS kalibracija" + +# +msgid "USB stick" +msgstr "USB kljuÄek" + +# +msgid "USB stick wizard" +msgstr "ÄŒarovnik USB kljuÄa" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Izvaja se nadgradnja sprejemnika ...\n" +"Po nadgradnji se bo sprejemnik ponovno zagnal.\n" +"POZOR! Nadgradnja lahko traja tudi veÄ minut." + +# +msgid "Undo install" +msgstr "" + +# +msgid "Undo uninstall" +msgstr "" + +msgid "Unencrypted" +msgstr "" + +# +msgid "UnhandledKey" +msgstr "" + +# +msgid "Unicable" +msgstr "Unicable " + +# +msgid "Unicable LNB" +msgstr "Unicable LNB" + +# +msgid "Unicable Martix" +msgstr "Unicable Matrix" + +# +msgid "Uninstall" +msgstr "Odstranitev" + +# +msgid "Universal LNB" +msgstr "Univerzalni LNB" + +msgid "Unknown" +msgstr "Neznano" + +msgid "Unmount" +msgstr "Izklop" + +# +msgid "Unsupported" +msgstr "Nepodprto" + +# +msgid "Update" +msgstr "Posodobi" + +msgid "Update and ask to reboot" +msgstr "Nadgradi in vpraÅ¡aj za ponovni zagon" + +msgid "Update and reboot (recommended)" +msgstr "Nadgradnja in takojÅ¡nji ponovni zagon" + +# +msgid "Update channel list only" +msgstr "Nadgradnja seznama kanalov" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "Posodobitev je zakljuÄena. Posodobljen je bil samo %d paket." +msgstr[1] "Posodobitev je zakljuÄena. Posodobljen sta bila samo %d paketa." +msgstr[2] "Posodobitev je zakljuÄena. Posodobljeni so bili %d paketi." +msgstr[3] "Posodobitev je zakljuÄena. Posodobljenih je bilo %d paketov." + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "Nadgradnja je konÄana. Želite izvesti ponovni zagon sprejemnika?" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "Posodobitev ni bila uspeÅ¡na. Sprejemnik nima delujoÄe internetne povezave." + +msgid "Update has completed." +msgstr "Posodobitev se je uspeÅ¡no zakljuÄina." + +# +msgid "Updatefeed not available." +msgstr "Server je trenutno nedosegljiv." + +# +msgid "Updating software catalog" +msgstr "Posodabljanje kataloga programov ..." + +# +msgid "Upgrading" +msgstr "Nadgrajujem" + +# +msgid "Use" +msgstr "Uporaba" + +# +msgid "Use DHCP" +msgstr "Uporaba DHCP" + +msgid "Use EIT EPG information when it is available." +msgstr "EIT EPG se uporablja v primerih, ko TV postaje oddajajo tudi spored. En tak primer so slovenski kanali v DVB-T." + +msgid "Use FreeSat EPG information when it is available." +msgstr "FreeSat EPG se uporablja v primerih, ko TV postaje oddajajo tudi spored. FreeSat sistem uporabljajo nekatere TV postaje iz Velike Britanije." + +msgid "Use MHW EPG information when it is available." +msgstr "Freesat MHW se uporablja v primerih, ko TV postaje oddajajo tudi spored. MHW sistem uporabljajo nekatere TV postaje iz Nizozemske." + +msgid "Use Netmed EPG information when it is available." +msgstr "Netmed EPG se uporablja v primerih, ko TV postaje oddajajo tudi spored. Netmed sistem uporabljajo nekatere TV postaje iz GrÄije." + +msgid "Use TV remote control" +msgstr "Uporabite daljinski upravljalnik" + +# +msgid "Use USALS for this sat" +msgstr "Uporaba sistema USALS za ta satelit" + +msgid "Use ViaSat EPG information when it is available." +msgstr "ViaSat EPG se uporablja v primerih, ko TV postaje oddajajo tudi spored. Že ime nam pove, da je ta nasatvitev uporabna za TV kanale iz paketa VIASAT (Skandinavija)." + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +# +msgid "Use a gateway" +msgstr "Uporaba prehoda" + +msgid "Use fastscan channel names" +msgstr "Uporaba \"fastscan\" poimenovanje kanalov" + +msgid "Use fastscan channel numbering" +msgstr "Uporava \"fastscan\" Å¡tevilÄenje kanalov" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "" + +# +msgid "Use interface" +msgstr "Uporaba mrežnega vmesnika" + +msgid "Use official channel numbering" +msgstr "Uporaba uradnega Å¡tevilÄenja kanalov" + +# +msgid "Use original DVB subtitle position" +msgstr "Uporaba originalnega položaja DVB podnapisov" + +# +msgid "Use original teletext position" +msgstr "Originalen položaj teletekst podn." + +# +msgid "Use power measurement" +msgstr "Uporaba merjenja moÄi" + +# +msgid "Use the network wizard to configure selected network adapter" +msgstr "Za nastavljanje izbranega mrežnega vmesnika, izberite omrežni Äarovnik." + +# +msgid "Use the network wizard to configure your network\n" +msgstr "Za nastavljanje vaÅ¡ega omrežja, uporabite omrežni Äarovnik.\n" + +# +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "Za izbiranje uporabite tipke gor/dol na vaÅ¡em upravljalniku. Nato pritisnite OK." + +# +msgid "Use the wizard to set up basic features" +msgstr "ÄŒarovnik za nastavitev osnovnih funkcionalnosti" + +msgid "Use these input device settings?" +msgstr "Uporabim nastavitve te vhodne naprave?" + +msgid "Use these settings?" +msgstr "Uporabim te nastavitve?" + +# +msgid "Use this video enhancement settings?" +msgstr "Uporabim izbrane video nastavitve?" + +# +msgid "Use trash can in movielist" +msgstr "Uporaba smetnjaka v seznamu datotek" + +# +msgid "Used service scan type" +msgstr "Uporabljena vrsta iskanja kanalov" + +msgid "User - bouquets" +msgstr "Uporabnik - seznam paketov" + +# +msgid "User defined" +msgstr "DoloÄeno s strani uporabnika" + +msgid "User defined transponder" +msgstr "" + +msgid "User interface" +msgstr "UporabniÅ¡ki vmesnik" + +# +msgid "Username" +msgstr "UporabniÅ¡ko ime" + +#, python-format +msgid "Using LNB %d" +msgstr "V uporabi je LNB %d" + +msgid "Using fixed address" +msgstr "" + +#, python-format +msgid "Using tuner %s" +msgstr "V uporabi je kanalnik %s" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "ÄŒe je nastavljen jezik podnapisov enak zvoÄni sledi (primer je angleÅ¡ki zvok in angleÅ¡ki podnapisi), se podnapisi ne bodo prikazovali. Vklopite omenjeno možnost, Äe želite, da se podnapisi vseeno prikazujejo." + +# +msgid "VCR scart" +msgstr "Preklop na SCART vhod" + +# +msgid "VMGM (intro trailer)" +msgstr "VMGM (v trailer)" + +# +msgid "Vertical" +msgstr "NavpiÄno" + +msgid "Vertical turning speed" +msgstr "" + +msgid "Video PID" +msgstr "Video PID" + +# +msgid "Video enhancement preview" +msgstr "Predogled nastavitev slike" + +# +msgid "Video enhancement settings" +msgstr "Napredne nastavitve slike" + +# +msgid "Video enhancement setup" +msgstr "Nastavitve slike" + +# +msgid "Video fine tuning" +msgstr "PomoÄ pri nastavitvi TVja" + +# +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Izbira video vira\n" +"\n" +"ÄŒe vidite to sliko na zaslonu vaÅ¡ega TVja, pritisnite tipko OK ali pa izberite drugi vir.\n" +"\n" +"Naslednji video vir bo samodejno preverjen Äez 10 sekund." + +# +msgid "Video mode selection." +msgstr "Izbira video naÄina." + +# +msgid "Video output" +msgstr "Video izhod" + +# +msgid "Video setup" +msgstr "Video nastavitve" + +# +msgid "Video wizard" +msgstr "Video Äarovnik" + +#, python-format +msgid "Video: %s fps" +msgstr "" + +msgid "VideoMode" +msgstr "" + +msgid "Videocodec" +msgstr "Video kodek" + +msgid "Videoformat" +msgstr "Format videa" + +msgid "Videosize" +msgstr "Velikost videa" + +# +msgid "View Rass interactive..." +msgstr "Glejte Rass interaktivno" + +# +msgid "View details" +msgstr "Ogled podrobnosti" + +# +msgid "View list of available " +msgstr "Ogled seznama razpoložljivih" + +# +msgid "View list of available CommonInterface extensions" +msgstr "Seznam obstojeÄih CommonInterface vtiÄnikov." + +# +msgid "View list of available EPG extensions." +msgstr "Ogled seznama obstojeÄih EPG vtiÄnikov." + +# +msgid "View list of available Satellite equipment extensions." +msgstr "Ogled seznama obstojeÄih Satellite equipment vtiÄnikov." + +# +msgid "View list of available communication extensions." +msgstr "Ogled seznama obstojeÄih komunikacijskih vtiÄnikov." + +# +msgid "View list of available default settings" +msgstr "Ogled seznama obstojeÄih osnovnih nastavitev." + +# +msgid "View list of available display and userinterface extensions." +msgstr "Ogled seznama obstojeÄih Display in UserInterface vtiÄnikov." + +# +msgid "View list of available multimedia extensions." +msgstr "Ogled seznama obstojeÄih multimedijskih vtiÄnikov." + +# +msgid "View list of available networking extensions" +msgstr "Ogled seznama obstojeÄih mrežnih vtiÄnikov." + +# +msgid "View list of available recording extensions" +msgstr "Ogled seznama vtiÄnikov za snemanje." + +# +msgid "View list of available skins" +msgstr "Ogled seznama razpoložljivih predlog" + +# +msgid "View list of available software extensions" +msgstr "Ogled seznama software vtiÄnikov." + +# +msgid "View list of available system extensions" +msgstr "Ogeld seznama obstojeÄih sistemskih vtiÄnikov." + +# +msgid "View photos..." +msgstr "Ogled fotografij" + +# +msgid "View teletext..." +msgstr "Ogled teleteksta" + +# +msgid "View video CD..." +msgstr "Ogled posnetkov" + +# +msgid "Virtual keyboard" +msgstr "Navidezna tipkovnica" + +# +msgid "Voltage mode" +msgstr "NaÄin \"Napetost\"" + +# +msgid "Volume" +msgstr "Glasnost" + +# +msgid "W" +msgstr "W" + +# +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "BrezziÄna povezava" + +# +msgid "WPA" +msgstr "WPA" + +# +msgid "WPA or WPA2" +msgstr "WPA ali WPA2" + +# +msgid "WPA2" +msgstr "WPA2" + +# +msgid "WSS on 4:3" +msgstr "WSS na 4:3" + +# +msgid "Waiting" +msgstr "ÄŒakam" + +msgid "Waiting for mount" +msgstr "PoÄakajte na izvrÅ¡itev pripenjanja" + +msgid "Waiting for partition" +msgstr "PoÄakajte na particijo" + +msgid "Wakeup" +msgstr "" + +msgid "Wakeup TV from standby" +msgstr "" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "" + +msgid "Wakeup signal from TV" +msgstr "" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "Opozorilo: ni LNBjev; uporaba privzetih nastavitev." + +# +msgid "Watch movies..." +msgstr "Predvajanje posnetkov" + +# +msgid "Watch recordings..." +msgstr "Predvajanje posnetkov" + +# +msgid "Wed" +msgstr "Sre" + +# +msgid "Wednesday" +msgstr "Sreda" + +# +msgid "Weekday" +msgstr "Delovni dan" + +msgid "Weighted position" +msgstr "" + +# +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"DobrodoÅ¡li v urejevalniku.\n" +"\n" +"PoiÅ¡Äite zaÄetek dela, ki ga želite izrezati. Pritisnite OK, izberite 'ZaÄni brisati'.\n" +"\n" +"Nato poiÅ¡Äite konec in pritisnite OK, izberite 'KonÄaj brisanje'." + +# +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "DobrodoÅ¡li v Äarovniku za nadgradnjo. ÄŒarovnik vam bo pomagal pri nadgradnji sprejemnika in nudil varno hrambo vaÅ¡ih trenutnih nastavitev ter kratko razlago postopka nadgradnje vaÅ¡ega firmware-a." + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" +"DobrodoÅ¡li.\n" +"\n" +"ÄŒe želite sprejemnik povezati na internet, vas bo omenjeni Äarovnik vodil skozi vse potrebne nastavitve, ki so potrebne za delovanje internetne povezave na vaÅ¡em sprejemniku!\n" +"\n" +"Za nadaljevanje pritisnite tipko OK." + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" +"DobrodoÅ¡li.\n" +"\n" +"ZaÄetni Äarovnik vas bo vodil skozi osnovne nastavitve vaÅ¡ega sprejemnika.\n" +"Za nadaljevanje pritisnite tipko OK." + +# +msgid "Welcome..." +msgstr "DobrodoÅ¡li" + +# +msgid "West" +msgstr "Zahod" + +msgid "West limit set" +msgstr "" + +# +msgid "What do you want to scan?" +msgstr "Kaj želite iskati?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "" + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "" + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "ÄŒe je nastavitev vkljuÄena, potem so AIT podatki vkljuÄeni v HTTP tokove. ÄŒe uporabljate storitev HbbTV, potem je ta nastavitev bistvenega pomena." + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "ÄŒe je nastavitev vkljuÄena, potem so ECM paketki vkljuÄeni v HTTP tokove. To omogoÄa sprejemnikom, da dekodirajo prejete podatke." + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "ÄŒe je nastavitev vkljuÄena, potem so EIT podatki vkljuÄeni v HTTP tokove. To omogoÄa, da se na sprejemniku prikazuje okrnjen spored (samo za trenutni in naslednji dogodek)." + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "ÄŒe je nastavitev vklopljena, se ob prehodu iz enega filma na drugi film, prikaže posebno obvestilo." + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "ÄŒe je nastavitev vklopljena, se pred zaÄetkom snemanja prikaže posebno obvestilo." + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "ÄŒe je nastavitev vklopljena, se pri posluÅ¡anju radia, v ozadju prikazuje posebna slika." + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "ÄŒe je nastavitev vklopljena, potem ima snemanje dovoljenje za prekinitev žive TV slike, kadar ni na razpolago prostih kanalnikov." + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "" + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "ÄŒe je nastavitev vkljuÄena, potem so kanali vedno Å¡tevilÄeni od Å¡tevilke 1 naprej, ne glede na to, v katerem seznamu priljubljenih kanalov se nahajate." + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "ÄŒe je nastavitev vkljuÄena, potem se vsebina, ki ima 4:3 razmerje slike, vedno razÅ¡iri Äez celoten zaslon." + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "Ko pridete do konca seznama kanalov, sprejemnik samodejno preide na naslednji seznam kanalov." + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "ÄŒe je nastavitev vkljuÄena, potem so izbrisani posnetki premaknjeni v smetnjak, namesto da bi bili takoj izbrisani," + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "ÄŒe je nastavitev vkljuÄena, potem se v informacijski vrstici prikazujejo EIT podatki. Gre za okrnjen spored, ki je navoljo samo za trenutni in naslednji dogodek." + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "ÄŒe je nastavitev vkljuÄena, potem se v informacijski vrstici prikazujejo informacije o uporabljeni enkripciji kanala (odvisno od podpore preobleke)." + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "ÄŒe je nastavitev vkljuÄena, potem se napake, ki so povezane z CI vmesnikom, na zaslonu ne prikazujejo." + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "ÄŒe je nastavitev vkljuÄena, potem se napake, ki so povezane z preklapljanjem kanalov, ne prikazujejo." + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "" + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "ÄŒe je nastavitev vkljuÄena, potem imajo DVB podnapisi prednost pred teletekst podnapisi, ampak samo v primeru, da sta istoÄasno na voljo oba tipa podnapisov." + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "ÄŒe je nastavitev vkljuÄena, potem so DVB podnapisi preÄno osredinjeni." + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "ÄŒe je nastavitev vkljuÄena, potem se DVB podnapisi prikazujejo na njihovem izvirnem položaju." + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "ÄŒe je nastavitev vkljuÄena, potem se DVB podnapisi prikazujejo v rumeni barvi." + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "ÄŒe je nastavitev vkljuÄena ... Nastavitev ni kljuÄnega pomena za delovanje vaÅ¡ega sprejemnika." + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "" + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "ÄŒe je nastavitev vkljuÄena, potem se meri porabo elektriÄne energije, da bi se zaznal trenutek, ko se rotor neha premikati. Potrebna je podpora kanalnika." + +msgid "When enabled, number markers will be hiden." +msgstr "" + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "ÄŒe je nastavitev vkljuÄena, potem so lahko nekateri kanali združeni v veÄ seznamih priljubljenih kanalov." + +# +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "Ko je vkljuÄeno, prikaži Å¡tevilke kanalov v izbirniku kanalov" + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "ÄŒe je nastavitev vkljuÄena, potem se lahko prikazujejo tudi podnapisi za gluhe in nagluÅ¡ne. Kanal mora seveda podpirate take podnapise." + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "ÄŒe je nastavitev vkljuÄena, potem imajo podnapisi za gluhe in nagluÅ¡ne prednost pred normalnimi podnapisi, ampak samo v primeru, Äe sta istoÄasno na voljo oba tipa podnapisov." + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "ÄŒe je nastavitev vkljuÄena, potem se pri teletekstu uporablja predpolnjenje, kar povzroÄi hitrejÅ¡e delovanje te storitve." + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "ÄŒe je nastavitev vkljuÄena, potem se teletekst podnapisi prikazujejo na njihovih izvirnih položajih." + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "ÄŒe je nastavitev vkluÄena, potem je pri posluÅ¡anju radio kanalov izbirnik kanalov skrit." + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "ÄŒe je nastavitev vkljuÄena, potem se informacijska vrstica prikaže vedno, ko pride do spremembe dogodka (npr. naslednja oddaja)." + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "ÄŒe je nastavitev vkljuÄena, potem se informacijska vrstica prikaže vedno, ko pride do preklopa na drug kanal." + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "ÄŒe je nastavitev vkljuÄena, potem se informacijska vrstica pokaže vedno, ko med gledanjem multimedijskih datotek preskakujete nazaj ali naprej." + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "ÄŒe je nastavitev vkljuÄena, potem je dolžina vsakega posnetka prikazana v seznamu datotek oz. posnetkov. To lahko povzroÄi malo daljÅ¡i nalagalni Äas." + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "ÄŒe je nastavitev vkljuÄena, potem so izvirni presledki v teletekst podnapisih ignorirani." + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "ÄŒe je nastavitev vkljuÄena, potem sprejemnik samodejno uporabi zvoÄno sled, ki ste jjo izbrali pred tem." + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "ÄŒe je nastavitev vkljuÄena, potem sprejemnik samodejno uporabi podnapise, ki ste jih izbrali pred tem." + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "ÄŒe je nastavitev vkljuÄena, potem sprejemnik ne spremlja morebitnih sprememb trenutno uporabljenega transponderja ali frekvence. Te nastavitve ne spreminjajte, razen Äe veste kaj delate!" + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "ÄŒe je nastavitev vkljuÄena, potem sprejemnik samodejno izbere AC3 zvok (Äe je na voljo)." + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "" + +# +msgid "When enabled, use DHCP for the IP configuration." +msgstr "Ko je vkljuÄeno, uporabi samodejno pridobivanje IP naslova (DHCP)" + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "" + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "ÄŒe je nastavitev vkljuÄena, potem se snemanje zaÄne prej, kot je to doloÄeno z samim sporedom. ÄŒe se po sporedu oddaja priÄne ob 10:00, lahko sprejemnik (odvisno od nastavitve) priÄne snemati že ob 09:50." + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "ÄŒe je nastavitev vkljuÄena, potem se snemanje zaÄne kasneje, kot je to doloÄeno z samim sporedom. ÄŒe se po sporedu oddaja priÄne ob 10:00, lahko sprejemnik (odvisno od nastavitve) priÄne snemati že ob 10:10." + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "ÄŒe ima vsebina razmerje slike 16:9, potem se lahko tu odloÄite, kako naj se slika prilagaja zaslonu." + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "ÄŒe ima vsebina razmerje slike 4:3, potem se lahko tu odloÄite, kako naj se slika prilagaja zaslonu." + +# +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"POZOR! Izbrana funkcija izbriÅ¡e vse nastavitve vaÅ¡ega sprejemnika!\n" +"Po zakljuÄku brisanja se bo sprejemnik ponovno zagnal.\n" +"Želite nadaljevati?" + +# +msgid "Where do you want to backup your settings?" +msgstr "Kam želite shraniti varnostno kopijo vaÅ¡ih nastavitev?" + +# +msgid "Where to save temporary timeshift recordings?" +msgstr "Kam naj shranjujem zaÄasne posnetke Äasovnega zamika?" + +# +msgid "Wireless LAN" +msgstr "BrezziÄni mreža" + +# +msgid "Wireless network" +msgstr "BrezžiÄno omrežje" + +msgid "Wireless network configuration..." +msgstr "Nastavitve brezziÄne povezave." + +msgid "Wireless network connection setup" +msgstr "Nastavitve brezziÄne povezave" + +msgid "Wireless network connection setup." +msgstr "Nastavitve brezziÄne povezave." + +msgid "Wireless network state" +msgstr "Stanje brezziÄnega omrežja" + +msgid "With popup" +msgstr "" + +msgid "Without popup" +msgstr "" + +msgid "Would you like to install a softcam?" +msgstr "Želite namestiti emulator?" + +# +msgid "Write error while recording. Disk full?\n" +msgstr "Napaka med snemanjem. Je disk poln?\n" + +# +msgid "Write failed!" +msgstr "Zapisovanje neuspeÅ¡no!" + +# +msgid "YPbPr" +msgstr "YPbPr" + +# +msgid "Year" +msgstr "Leto" + +# +msgid "Yellow DVB subtitles" +msgstr "Rumeni DVB podnapisi" + +# +msgid "Yes" +msgstr "Da" + +msgid "Yes and save" +msgstr "" + +msgid "Yes and save in movie dir" +msgstr "" + +# +msgid "Yes to all" +msgstr "Da za vse" + +msgid "Yes, always" +msgstr "Da, vedno" + +# +msgid "Yes, and delete this movie" +msgstr "Da. IzbriÅ¡i ta film." + +# +msgid "Yes, backup my settings!" +msgstr "Da, ustvari varnostno kopijo mojih nastavitev!" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +# +msgid "Yes, do a manual scan now" +msgstr "Da, zaÄni roÄno iskanje" + +# +msgid "Yes, do an automatic scan now" +msgstr "Da, zaÄni samodejno iskanje" + +# +msgid "Yes, do another manual scan now" +msgstr "Da, zaÄni drugo roÄno iskanje" + +# +msgid "Yes, perform a shutdown now." +msgstr "Da, izvedi izklop sistema." + +# +msgid "Yes, restore the settings now" +msgstr "Da, povrni shranjene nastavitve" + +# +msgid "Yes, returning to movie list" +msgstr "Nazaj na seznam datotek" + +msgid "Yesterday" +msgstr "VÄeraj" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" +"Seznam kanalov je že nameÅ¡Äen!\n" +"Bi ga radi odstranili\n" +"\"%s\"?" + +# +msgid "You can cancel the installation." +msgstr "Lahko prekliÄete namestitev." + +# +msgid "You can cancel the removal." +msgstr "Lahko prekliÄete izbris." + +msgid "You can continue watching TV etc. while this is running." +msgstr "Med izvajanjem trenutne naloge, lahko nadaljujete z gledanjem trenutnega dogodka." + +# +msgid "You can install this plugin." +msgstr "Izbrani vtiÄnik lahko izbriÅ¡ete." + +msgid "You can only burn receiver recordings!" +msgstr "" + +# +msgid "You can remove this plugin." +msgstr "Ta vtiÄnik lahko izbriÅ¡ete." + +# +msgid "You cannot delete this!" +msgstr "Tega ne morete izbrisati!" + +msgid "You didn't select a channel to record from." +msgstr "Niste izbrali kanala za snemanje." + +# +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "Izbrali ste si opcijo shranitve vaÅ¡ih nastavitev. Za zaÄetek procesa pritisnite OK!" + +# +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "Izbrali ste opcijo kreiranja novega .NFI zagonskega USB kljuÄa. Iz kljuÄa bodo izbrisani vsi podatki!" + +# +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "Izbrali ste si opcijo obnove vaÅ¡ih nastavitev. Enigma 2 se bo po opravljenem procesu ponovno zagnala. Za zaÄetek procesa pritisnite OK!" + +# +#, python-format +msgid "You have to wait %s!" +msgstr "PoÄakati morate %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" + +msgid "You system does not support ext4" +msgstr "VaÅ¡ sprejemnik ne podpira ext4 datoteÄni sistem." + +# +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "Varnostna kopija je bila uspeÅ¡no ustvarjena. Nadaljevali bomo z naslednjimi koraki nadgradnje." + +# +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "" + +# +msgid "Your current collection will get lost!" +msgstr "" + +# +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"Programska oprema mora biti nadgrajena.\n" +"Za zaÄetek nadgradnje pritistite tipko OK." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +# +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"VaÅ¡a internetna povezava ne deluje!\n" +"Prosim, da izberete kaj želite storiti v nadaljevanju." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "Internetna povezava deluje (IP naslov: %s)" + +# +msgid "Your network configuration has been activated." +msgstr "VaÅ¡e omrežne nastavitve so omogoÄene." + +msgid "Your receiver does not have an internet connection" +msgstr "VaÅ¡ sprejemnik nima delujoÄe internetne povezave" + +# +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"VaÅ¡ sprejemnik je sedaj pripravljen za uporabo.\n" +"\n" +"VaÅ¡a internetna povezava sedaj deluje.\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Sprejemnik je sedaj pripravljen za uporabo.\n" +"\n" +"Internetna povezava sedaj deluje.\n" +"\n" +"Za nadaljevanje pritisnite tipko OK." + +msgid "Your receiver is rebooting" +msgstr "Poteka ponovni zagon vaÅ¡ega sprejemnika ..." + +msgid "Your receiver is shutting down" +msgstr "Poteka izklapljanje vaÅ¡ega sprejemnika ..." + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "Sprejemnik prehaja v stanje globokega spanja ... Prosim poÄakajte!" + +# +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "VaÅ¡ sprejemnik je pripravljen za uporabo. Pred ponovnim zagonom sprejemnika preverite uporabniÅ¡ka navodila!" + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "" + +msgid "Your receiver will got to standby due to inactivity." +msgstr "" + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "Sprejemnik se bo po pritisku tipke OK ponovno zagnal." + +# +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"VaÅ¡e brezziÄne internet povezave ni mogoÄe omogoÄiti!\n" +"Ste prikljuÄili vaÅ¡ brezziÄni USB vmesnik?\n" +"\n" +"Izberite, kaj želite storiti v nadaljevanju." + +msgid "Zap" +msgstr "Preklop" + +# +msgid "Zap back to previously tuned service?" +msgstr "Prestavim na kanal, ki ste ga gledali pred tem?" + +# +msgid "Zap back to service before positioner setup?" +msgstr "Prestavim na kanal, ki ste ga gledali pred tem?" + +# +msgid "Zap back to service before tuner setup?" +msgstr "Prestavim na kanal, ki ste ga gledali pred spreminjanjem nastavitev?" + +msgid "Zap focus to Picture in Picture" +msgstr "" + +msgid "Zap focus to main screen" +msgstr "" + +# +msgid "Zap mode" +msgstr "NaÄin preklapljanja" + +msgid "Zap to selected channel" +msgstr "Preklop na izbrani kanal" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "Preklop na izbran kanal ali prikaz razÅ¡irjene informacije o dogodku (odvisno od nastavitve)" + +# +msgid "[alternative edit]" +msgstr "[alternativno urejanje]" + +# +msgid "[bouquet edit]" +msgstr "[urejanje paketov]" + +# +msgid "[favourite edit]" +msgstr "[urejanje priljubljenih]" + +# +msgid "[move mode]" +msgstr "[naÄin premeÅ¡Äanja]" + +# +msgid "a gui to assign services/providers to common interface modules" +msgstr "" + +# +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "" + +# +msgid "abort alternatives edit" +msgstr "Prekinitev alternativnega urejanja" + +# +msgid "abort bouquet edit" +msgstr "Prekinitev urejanja paketa" + +# +msgid "abort favourites edit" +msgstr "Prekinitev urejanja priljubljenih" + +# +msgid "about to start" +msgstr "se bo zagnalo" + +# +msgid "activate network adapter configuration" +msgstr "aktiviranje omrežnih nastavitev" + +# +msgid "add alternatives" +msgstr "Dodajanje alternativ" + +# +msgid "add bookmark" +msgstr "Nov zaznamek" + +# +msgid "add bouquet" +msgstr "Nov paket" + +# +msgid "add marker" +msgstr "Dodajanje oznak (tags)" + +# +msgid "add service to bouquet" +msgstr "Premik kanala v drug paket" + +# +msgid "add service to favourites" +msgstr "Prenos kanala med priljubljene" + +# +msgid "add to parental protection" +msgstr "Dodajte starÅ¡evsko zaÅ¡Äito" + +msgid "adult movie/drama" +msgstr "" + +# +msgid "advanced" +msgstr "napredno" + +msgid "adventure/western/war" +msgstr "" + +msgid "advertisement/shopping" +msgstr "" + +msgid "after " +msgstr "" + +# +msgid "alphabetic" +msgstr "razvrÅ¡Äanje po abecedi" + +msgid "alphabetic reverse" +msgstr "razvrÅ¡Äanje po abecedi (obratno)" + +msgid "alternative" +msgstr "" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "" + +msgid "arts/culture magazine" +msgstr "" + +msgid "athletics" +msgstr "" + +# +msgid "audio tracks" +msgstr "zvoÄni zapisi" + +# +msgid "auto" +msgstr "Samodejno" + +# +msgid "automatic" +msgstr "Samodejno" + +# +msgid "back" +msgstr "Nazaj" + +# +msgid "background image" +msgstr "slika ozadja" + +msgid "ballet" +msgstr "" + +#, python-format +msgid "bc%s" +msgstr "bc%s" + +# +msgid "better" +msgstr "boljÅ¡e" + +# +msgid "black" +msgstr "Ärno" + +msgid "black & white" +msgstr "Ärno/belo" + +# +msgid "blacklist" +msgstr "Ärni seznam" + +# +msgid "blue" +msgstr "Modra tipka" + +msgid "broadcasting/press" +msgstr "" + +# +msgid "by date" +msgstr "razvrsÄanje po datumu" + +msgid "cartoon/puppets" +msgstr "" + +# +msgid "center" +msgstr "na sredini" + +msgid "centered" +msgstr "" + +msgid "centered, wrapped" +msgstr "" + +# +msgid "chapters" +msgstr "poglavja" + +msgid "childrens's/youth program (general)" +msgstr "" + +# +msgid "circular left" +msgstr "Cirkularna - levo" + +# +msgid "circular right" +msgstr "Cirkularna - desno" + +msgid "comedy" +msgstr "" + +# +msgid "complex" +msgstr "kompleksno" + +# +msgid "config menu" +msgstr "konfiguracijski meni" + +# +msgid "confirmed" +msgstr "potrjeno" + +# +msgid "connected" +msgstr "povezano" + +# +msgid "continue" +msgstr "Nadaljevanje" + +msgid "cooking" +msgstr "" + +# +msgid "copy to bouquets" +msgstr "kopiraj v priljubljene pakete" + +# +msgid "create directory" +msgstr "Ustvarite mapo" + +#, python-format +msgid "currently installed image: %s" +msgstr "trenutno nameÅ¡Äena slika (image): %s" + +# +msgid "daily" +msgstr "vsak dan" + +# +msgid "day" +msgstr "dan" + +# +msgid "default" +msgstr "Privzeto" + +# +msgid "delete cut" +msgstr "IzbriÅ¡ite del" + +msgid "delete..." +msgstr "" + +msgid "descramble and record ecm" +msgstr "odkodiraj in snemaj ECM paketke" + +msgid "detective/thriller" +msgstr "" + +# +msgid "disable" +msgstr "onemogoÄi" + +# +msgid "disable move mode" +msgstr "OnemogoÄi naÄin prenosa" + +# +msgid "disabled" +msgstr "onemogoÄeno" + +# +msgid "disconnected" +msgstr "prekinjeno" + +msgid "discussion/interview/debate" +msgstr "" + +# +msgid "do nothing" +msgstr "Izhod" + +msgid "documentary" +msgstr "" + +msgid "don't descramble, record ecm" +msgstr "ne odkodiran, snemaj ECM paketke" + +# +msgid "done!" +msgstr "Storjeno!" + +msgid "east" +msgstr "vzhod" + +msgid "economics/social advisory" +msgstr "" + +# +msgid "edit alternatives" +msgstr "Urejanje alternativ" + +msgid "education/science/factual topics (general)" +msgstr "" + +# +msgid "empty" +msgstr "prazno" + +# +msgid "enable" +msgstr "omogoÄi" + +# +msgid "enable bouquet edit" +msgstr "Urejanje paketa" + +# +msgid "enable favourite edit" +msgstr "Urejanje priljubljenih paketov" + +# +msgid "enable move mode" +msgstr "Premik kanalov znotraj paketa" + +# +msgid "enabled" +msgstr "vkljuÄeno" + +# +msgid "end alternatives edit" +msgstr "Konec urejanja alternativ" + +# +msgid "end bouquet edit" +msgstr "Konec urejanja paketa" + +# +msgid "end cut here" +msgstr "zakljuÄi del tukaj" + +# +msgid "end favourites edit" +msgstr "konÄaj urejanje priljubljenih" + +msgid "entertainment (10-16 year old)" +msgstr "" + +msgid "entertainment (6-14 year old)" +msgstr "" + +# +msgid "equal to" +msgstr "enako kot" + +msgid "equestrian" +msgstr "" + +# +msgid "exit DVD player or return to file browser" +msgstr "Izhod iz DVD predvajalnika aku vrnitev v pregledovalnik datotek" + +msgid "exit movielist" +msgstr "" + +# +msgid "exit network adapter configuration" +msgstr "izhod iz nastavitev mrežnega vmesnika" + +# +msgid "exit networkadapter setup menu" +msgstr "izhod iz nastavitvenega menija mrežnega vmesnika" + +msgid "experimental film/video" +msgstr "" + +msgid "false" +msgstr "napaÄno" + +msgid "fashion" +msgstr "" + +# +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "oblika datoteke (BMP, PNG, JPG, GIF)" + +# +msgid "filename" +msgstr "ime datoteke" + +msgid "film/cinema" +msgstr "" + +msgid "fine arts" +msgstr "" + +# +msgid "fine-tune your display" +msgstr "podrobne nastavitve zaslona" + +msgid "fitness & health" +msgstr "" + +# +msgid "flat alphabetic" +msgstr "razvrÅ¡Äanje po abecedi" + +msgid "flat alphabetic reverse" +msgstr "razvrÅ¡Äanje po abecedi (obratno)" + +msgid "folk/traditional music" +msgstr "" + +msgid "football/soccer" +msgstr "" + +msgid "foreign countries/expeditions" +msgstr "" + +# +msgid "forward to the next chapter" +msgstr "preskok na naslednje poglavje" + +# +msgid "free" +msgstr "prosto" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "" + +msgid "game show/quiz/contest" +msgstr "" + +msgid "gardening" +msgstr "" + +# +msgid "go to deep standby" +msgstr "pojdi v globoko spanje" + +# +msgid "go to standby" +msgstr "pojdi v pripravljenost" + +# +msgid "grab this frame as bitmap" +msgstr "" + +# +msgid "green" +msgstr "Zelena tipka" + +msgid "handicraft" +msgstr "" + +msgid "height" +msgstr "viÅ¡ina" + +# +msgid "help..." +msgstr "PomoÄ" + +# +msgid "horizontal" +msgstr "Horizontalna" + +msgid "information/education/school program" +msgstr "" + +# +msgid "init module" +msgstr "zagon modula" + +# +msgid "init modules" +msgstr "" + +# +msgid "insert mark here" +msgstr "vnesite oznako tukaj" + +msgid "invalid type" +msgstr "napaÄen tip" + +msgid "jazz" +msgstr "" + +# +msgid "jump back to the previous title" +msgstr "skoÄi nazaj na prejÅ¡nji naslov" + +# +msgid "jump forward to the next title" +msgstr "preskoÄi na naslednji naslov" + +msgid "languages" +msgstr "jeziki" + +# +msgid "leave movie player..." +msgstr "zapustite multimedijski predvajalnik." + +# +msgid "left" +msgstr "levo" + +msgid "left, wrapped" +msgstr "" + +msgid "leisure hobbies (general)" +msgstr "" + +# +msgid "length" +msgstr "dolžina" + +msgid "limit ..., aborting !" +msgstr "meja je dosežena ..., preklicujem!" + +# +msgid "list style compact" +msgstr "kompaktni naÄin seznama" + +# +msgid "list style compact with description" +msgstr "kompaktni naÄin z opisom" + +# +msgid "list style default" +msgstr "privzet naÄin seznama" + +# +msgid "list style single line" +msgstr "enovrstiÄni naÄin seznama" + +msgid "literature" +msgstr "" + +msgid "live broadcast" +msgstr "" + +# +msgid "locked" +msgstr "zaklenjen" + +# +msgid "loopthrough to" +msgstr "preskoÄi na" + +msgid "magazines/reports/documentary" +msgstr "" + +# +msgid "manual" +msgstr "prenos" + +msgid "martial sports" +msgstr "" + +msgid "medicine/physiology/psychology" +msgstr "" + +# +msgid "menu" +msgstr "meni" + +# +msgid "mins" +msgstr "mins" + +# +msgid "minutes" +msgstr "minute" + +# +msgid "month" +msgstr "mesec" + +msgid "motor sport" +msgstr "" + +msgid "motoring" +msgstr "" + +# +msgid "move down to last entry" +msgstr "premik dol, na zadnji vnos" + +# +msgid "move down to next entry" +msgstr "premaik dol, na naslednji vnos" + +# +msgid "move up to first entry" +msgstr "premik gor, na prvi vnos" + +# +msgid "move up to previous entry" +msgstr "premik gor, prejÅ¡nji vnos" + +msgid "movie/drama (general)" +msgstr "" + +# +msgid "multinorm" +msgstr "multinorm" + +msgid "music/ballet/dance (general)" +msgstr "" + +msgid "musical/opera" +msgstr "" + +msgid "nature/animals/environment" +msgstr "" + +# +msgid "never" +msgstr "nikoli" + +msgid "new media" +msgstr "" + +msgid "news magazine" +msgstr "" + +msgid "news/current affairs (general)" +msgstr "" + +msgid "news/weather report" +msgstr "" + +# +msgid "no" +msgstr "Ne" + +# +msgid "no CAId selected" +msgstr "ni izbran nobeden CAId" + +# +msgid "no CI slots found" +msgstr "ni najdene nobene CI vrate" + +# +msgid "no module found" +msgstr "ni modula " + +msgid "no storage devices found" +msgstr "ne najdem naprav za shranjevanje" + +# +msgid "none" +msgstr "prazno" + +msgid "normal" +msgstr "normalno" + +# +msgid "not configured" +msgstr "ni nastavljeno" + +# +msgid "not locked" +msgstr "ni zaklenjeno" + +msgid "not supported" +msgstr "ni podprto" + +# +msgid "not used" +msgstr "ni uporabljeno" + +# +msgid "nothing connected" +msgstr "niÄ ni povezano" + +# +msgid "of a DUAL layer medium used." +msgstr "od uporabljenega DVOPLASTNEGA medija" + +# +msgid "of a SINGLE layer medium used." +msgstr "od uporabljenega ENOPLASTNEGA medija." + +# +msgid "off" +msgstr "izklopi" + +msgid "offset is" +msgstr "" + +# +msgid "on" +msgstr "vklop" + +# +msgid "on READ ONLY medium." +msgstr "na NEZAPISLJIV medij." + +msgid "on end of movie" +msgstr "" + +# +msgid "once" +msgstr "enkrat" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +# +msgid "open nameserver configuration" +msgstr "Odprtje nastavitev imenskega strežnika" + +msgid "original" +msgstr "originalno" + +msgid "original language" +msgstr "originalni jezik" + +# +msgid "pass" +msgstr "Geslo" + +msgid "performing arts" +msgstr "" + +# +msgid "play as picture in picture" +msgstr "Aktivacija Slike v Sliki" + +msgid "play in mainwindow" +msgstr "predvajj v glavnem oknu" + +# +msgid "please press OK when ready" +msgstr "pritisnite OK" + +# +msgid "please wait, loading picture..." +msgstr "poteka nalaganje slike, prosim poÄakajte ..." + +msgid "popular culture/traditional arts" +msgstr "" + +msgid "pre-school children's program" +msgstr "" + +msgid "receiver software because updates are available." +msgstr "" + +# +msgid "record" +msgstr "snemanje" + +# +msgid "recording..." +msgstr "snemanje ..." + +# +msgid "red" +msgstr "RdeÄi gumb" + +msgid "religion" +msgstr "" + +msgid "remarkable people" +msgstr "" + +# +msgid "remove after this position" +msgstr "izbris za tem položajem" + +# +msgid "remove all alternatives" +msgstr "Izbris vseh alternativ" + +# +msgid "remove all new found flags" +msgstr "izbris vseh novih zastav (flags)" + +# +msgid "remove before this position" +msgstr "izbris pred tem položajem" + +# +msgid "remove bookmark" +msgstr "odstranitev zaznamka" + +# +msgid "remove directory" +msgstr "odstranitev mape" + +# +msgid "remove entry" +msgstr "Izbris vnosa" + +# +msgid "remove from parental protection" +msgstr "izbris iz starÅ¡evske zaÅ¡Äite" + +# +msgid "remove new found flag" +msgstr "izbris nove zastave (flag)" + +# +msgid "remove selected satellite" +msgstr "odstranitev izbranega satelita" + +# +msgid "remove this mark" +msgstr "izbris oznake" + +msgid "rename entry" +msgstr "" + +# +msgid "repeat playlist" +msgstr "ponovitev seznama predvjanja" + +# +msgid "repeated" +msgstr "ponavljam" + +msgid "reverse by date" +msgstr "razvrÅ¡Äanje po datumu (obratno)" + +# +msgid "rewind to the previous chapter" +msgstr "previjanje na prejÅ¡nje poglavje" + +# +msgid "right" +msgstr "desno" + +msgid "right, wrapped" +msgstr "" + +msgid "rock/pop" +msgstr "" + +msgid "romance" +msgstr "" + +# +msgid "save last directory on exit" +msgstr "ob izhodu se naj shrani zadnja mapa" + +# +msgid "save playlist on exit" +msgstr "ob izhodu se naj shrani seznam predvajanja" + +# +msgid "scan state" +msgstr "stanje iskanja" + +msgid "science fiction/fantasy/horror" +msgstr "" + +# +msgid "second cable of motorized LNB" +msgstr "drugi kabel motoriziranega LNB-a" + +msgid "seconds" +msgstr "sekund" + +# +msgid "select" +msgstr "izberite" + +# +msgid "select CAId's" +msgstr "izberite CAidse" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +# +msgid "select menu entry" +msgstr "izberite vnos" + +msgid "select movie" +msgstr "" + +msgid "select the movie path" +msgstr "" + +msgid "serious music/classic music" +msgstr "" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "" + +msgid "service PIN" +msgstr "PIN koda kanala" + +# +msgid "set as startup service" +msgstr "Izbira zagonskega kanala" + +msgid "setup PIN" +msgstr "Nastavitev PIN" + +# +msgid "show DVD main menu" +msgstr "Prikaz glavnega DVD menija" + +# +msgid "show all tags" +msgstr "Prikaz vseh oznak" + +# +msgid "show alternatives" +msgstr "Prikaz alternativ" + +# +msgid "show event details" +msgstr "Prikaz informacij o dogodku" + +msgid "show extended description" +msgstr "" + +msgid "show mediaplayer on mainmenu" +msgstr "" + +msgid "show softwaremanager in setup menu" +msgstr "Prikaz softwaremanager vtiÄnika v nastavitvenem meniju" + +msgid "show softwaremanager on blue button" +msgstr "Prikaz softwaremanager vtiÄnika po pritisku na modro tipko" + +msgid "show tag menu" +msgstr "" + +# +msgid "show transponder info" +msgstr "Informacije o frekvenci kanala" + +msgid "show/game show (general)" +msgstr "" + +msgid "shuffle" +msgstr "nakljuÄni izbor" + +# +msgid "shut down" +msgstr "izklop" + +# +msgid "simple" +msgstr "enostavno" + +# +msgid "skip backward" +msgstr "Preskok nazaj" + +# +msgid "skip forward" +msgstr "Preskok naprej" + +msgid "soap/melodram/folkloric" +msgstr "" + +msgid "social/political issues/economics (general)" +msgstr "" + +msgid "social/spiritual science" +msgstr "" + +msgid "sorting of playlists" +msgstr "razvrÅ¡Äanje seznamov" + +# +msgid "special characters" +msgstr "posebni znaki" + +msgid "special events" +msgstr "" + +msgid "special format data DVD (HDTV compatible)" +msgstr "" + +msgid "sports (general)" +msgstr "" + +msgid "sports magazine" +msgstr "" + +# +msgid "standard" +msgstr "Standardno" + +# +msgid "start cut here" +msgstr "priÄetek rezanja tukaj" + +# +msgid "start directory" +msgstr "zaÄetna mapa" + +msgid "stepsize" +msgstr "" + +# +msgid "stereo" +msgstr "stereo" + +# +msgid "stop using as startup service" +msgstr "Sprememba nastavitve zaÄetnega kanala" + +# +msgid "switch to bookmarks" +msgstr "preklop na zaznamke" + +# +msgid "switch to filelist" +msgstr "preklop na seznam datotek" + +# +msgid "switch to the next angle" +msgstr "preklop na naslednji pogled" + +# +msgid "switch to the next audio track" +msgstr "preklop na naslednji zvoÄni zapis" + +# +msgid "switch to the next subtitle language" +msgstr "preklop na naslednji jezik podnapisov" + +msgid "talk show" +msgstr "" + +msgid "team sports" +msgstr "" + +msgid "technology/natural science" +msgstr "" + +# +msgid "template file" +msgstr "predloga" + +msgid "tennis/squash" +msgstr "" + +# +msgid "this recording" +msgstr "to snemanje" + +# +msgid "this service is protected by a parental control pin" +msgstr "kanal je zaÅ¡Äiten s PIN kodo" + +# +msgid "toggle time, chapter, audio, subtitle info" +msgstr "izbira med prikazom Äasa, poglavja, zvoka in podnapisi" + +msgid "top" +msgstr "na vrh" + +msgid "tourism/travel" +msgstr "" + +msgid "true" +msgstr "pravilno" + +msgid "unavailable" +msgstr "ni na voljo" + +# +msgid "unconfirmed" +msgstr "nepotrjeno" + +msgid "undefined" +msgstr "nedoloÄeno" + +# +msgid "unknown" +msgstr "neznano" + +# +msgid "unknown service" +msgstr "neznan kanal" + +msgid "unpublished" +msgstr "" + +# +msgid "until standby/restart" +msgstr "do stanja pripravljenosti/resetiranja" + +# +msgid "user defined" +msgstr "uporabniÅ¡ko doloÄeno" + +msgid "variety show" +msgstr "" + +# +msgid "vertical" +msgstr "Vertikalna" + +# +msgid "wait for ci..." +msgstr "poÄakajte na ci ..." + +# +msgid "wait for mmi..." +msgstr "Äakam mmi ..." + +# +msgid "waiting" +msgstr "Äakam" + +msgid "water sport" +msgstr "vodni Å¡porti" + +# +msgid "weekly" +msgstr "vsak teden" + +msgid "west" +msgstr "zahod" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +# +msgid "white" +msgstr "bela" + +# +msgid "whitelist" +msgstr "dovoljen seznam" + +msgid "width" +msgstr "Å¡irina" + +msgid "winter sport" +msgstr "zimski Å¡porti" + +msgid "wireless network interface" +msgstr "brezziÄni omrežni vmesnik" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "z %d napako" +msgstr[1] "z %d napakama" +msgstr[2] "s %d napakami" +msgstr[3] "s %d napakami" + +# +msgid "working" +msgstr "deluje" + +# +msgid "yellow" +msgstr "Rumena tipka" + +# +msgid "yes" +msgstr "Da" + +# +msgid "yes (keep feeds)" +msgstr "Da (obdrži feed-e)" + +# +msgid "zap" +msgstr "preklop" + +msgid "zap and record" +msgstr "" + +# +msgid "zapped" +msgstr "preklopljen" + +# +#~ msgid "AA" +#~ msgstr "AA" + +# +#~ msgid "AB" +#~ msgstr "AB" + +#~ msgid "Activate PiP" +#~ msgstr "Aktivacija Slike v Sliki" + +#~ msgid "Add/remove timer for current event" +#~ msgstr "Dodaj/IzbriÅ¡i Äasovnik za trenutni dogodek" + +# +#~ msgid "All satellites" +#~ msgstr "Vsi sateliti" + +# +#~ msgid "BA" +#~ msgstr "BA" + +# +#~ msgid "BB" +#~ msgstr "BB" + +# +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "Odziv tipke \"premor\"" + +# +#~ msgid "Committed DiSEqC command" +#~ msgstr "Commited DiSEqC ukaz" + +#~ msgid "Configure the behavior of the 'pause' key when movie playback is already paused." +#~ msgstr "DoloÄitev obnaÅ¡anja tipke \"premor\", ko je video posnetek že zamrznjen." + +# +#~ msgid "DiSEqC repeats" +#~ msgstr "DiSEqC ponavljanja" + +#~ msgid "Goto specific data/time" +#~ msgstr "Pojdi na toÄno doloÄen Äas" + +# +#~ msgid "No satellite frontend found!!" +#~ msgstr "Ni satelitske naprave!" + +#~ msgid "Open service list and select next channel" +#~ msgstr "Odpri seznam kanalov in izberi naslednji kanal" + +#~ msgid "Open service list and select previous channel" +#~ msgstr "Odpri seznam kanalov in izberi prejÅ¡nji kanal" + +#~ msgid "Press '0' to toggle internal/external PiP." +#~ msgstr "Pritisnite '0' za preklop med notranjim in zunanjim PiP." + +# +#~ msgid "Remove timer" +#~ msgstr "Odstrani Äasovnik" + +# +#~ msgid "Send DiSEqC" +#~ msgstr "PoÅ¡lji DiSEqC signal" + +# +#~ msgid "Switch next channel" +#~ msgstr "Naslednji kanal" + +# +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Uncommitted DiSEqC command" + +# +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "Prestavim na kanal, ki ste ga gledali pred tem?" + +#~ msgid "tuner is not supported" +#~ msgstr "kanalnik ni podprt" diff --git a/po/sr.po b/po/sr.po new file mode 100644 index 0000000..fe2093c --- /dev/null +++ b/po/sr.po @@ -0,0 +1,9811 @@ +# Serbian translations for Enigma2. +# +msgid "" +msgstr "" +"Project-Id-Version: enigma2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2011-04-14 00:02+0200\n" +"Last-Translator: majevica <jovanovic@gmx.ch>\n" +"Language-Team: veselin & majevica CRNABERZA <jovanovic@gmx.ch>\n" +"Language: sr\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-Generator: Pootle 2.0.3\n" +"X-Poedit-Language: Serbian\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-Country: SERBIA\n" + +# +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"Napredne opcije i podeÅ¡avanja." + +# +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"Posle stiskanja OK,molim priÄekajte" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" + +# +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"Uredi poboljÅ¡anu izvornu adresu" + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" + +# +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"Pritisni OK na tvom daljinskom da nastaviÅ¡" + +# +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"Vrati svoje snimljene kopije po datumu" + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" + +# +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"Traži lokalna proÅ¡irenja i instaliraj ih. " + +# +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Izaberi svoj rezervni uredjaj.\n" +"Aktuelni ureÄ‘aj:" + +# +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"Pogledaj,instaliraj i ukloni pristupaÄne ili instalirane pakete" + +msgid " (PiP)" +msgstr "" + +msgid " (Radio)" +msgstr "" + +msgid " (TV)" +msgstr "" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +# +msgid " extensions." +msgstr "proÅ¡irenja." + +msgid " ms" +msgstr "ms" + +# +msgid " packages selected." +msgstr "Paketa izabrano" + +# +msgid " updates available." +msgstr "ažuriranja dostupna." + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "" + +msgid "%A %d %B" +msgstr "" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "" + +# +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "" + +# +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, fuzzy, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "%d kanala pronaÄ‘eno!" +msgstr[1] "%d kanala pronaÄ‘eno!" +msgstr[2] "%d kanala pronaÄ‘eno!" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +# +#, fuzzy, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d radnje se obavljaju u pozadini" +msgstr[1] "%d radnje se obavljaju u pozadini" +msgstr[2] "%d radnje se obavljaju u pozadini" + +# +#, python-format +msgid "%d min" +msgstr "%d min" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "%d minutes" +msgstr "" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +# +#, fuzzy, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "/var direktorijum" +msgstr[1] "/var direktorijum" +msgstr[2] "/var direktorijum" + +# +#, fuzzy, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "1 bežiÄna mreža pronaÄ‘ena!" +msgstr[1] "1 bežiÄna mreža pronaÄ‘ena!" +msgstr[2] "1 bežiÄna mreža pronaÄ‘ena!" + +msgid "%d-%b-%Y %-H:%M" +msgstr "" + +msgid "%d-%m" +msgstr "" + +# +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "" + +# +#, fuzzy, python-format +msgid "%s %s free disk space" +msgstr "slobodan prostor na disku" + +# +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "" + +# +#, fuzzy, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "ažuriranja dostupna." +msgstr[1] "ažuriranja dostupna." +msgstr[2] "ažuriranja dostupna." + +#, python-format +msgid "%s%d min" +msgstr "" + +#, python-format +msgid "%s/%s: %s" +msgstr "" + +# +msgid "(ZAP)" +msgstr "(ZAP)" + +# +msgid "(empty)" +msgstr "(prazno)" + +# +msgid "(show optional DVD audio menu)" +msgstr "(prikaži alternativni DVD audio meni)" + +# +msgid "* Only available if more than one interface is active." +msgstr "* Dostupan samo ako je viÅ¡e interfejsa aktivno." + +msgid "/s" +msgstr "" + +# +msgid "0" +msgstr "0" + +# +msgid "1" +msgstr "1" + +# +msgid "1.0" +msgstr "1.0" + +# +msgid "1.1" +msgstr "1.1" + +# +msgid "1.2" +msgstr "1.2" + +# +msgid "12V output" +msgstr "12V izlaz" + +# +msgid "13 V" +msgstr "13 V" + +# +msgid "16:10" +msgstr "16:10" + +# +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +# +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +# +msgid "16:9" +msgstr "16:9" + +# +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +# +msgid "16:9 always" +msgstr "16:9 uvek" + +# +msgid "18 V" +msgstr "18 V" + +# +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "" + +msgid "24" +msgstr "" + +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +# +msgid "3" +msgstr "3" + +msgid "30" +msgstr "" + +msgid "3d mode" +msgstr "" + +msgid "4" +msgstr "4" + +# +msgid "4:3" +msgstr "4:3" + +# +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +# +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +# +msgid "5" +msgstr "5" + +# +msgid "6" +msgstr "6" + +# +msgid "7" +msgstr "7" + +# +msgid "8" +msgstr "8" + +# +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +# +msgid "<Current movielist location>" +msgstr "<Trenutna lokacija liste filmova>" + +# +msgid "<Default movie location>" +msgstr "<Standardna lokacija filmova>" + +# +msgid "<Last timer location>" +msgstr "<Zadnja lokacija tajmera> " + +# +msgid "<unknown>" +msgstr "<nepoznato>" + +# +msgid "??" +msgstr "??" + +# +msgid "A" +msgstr "A" + +# +#, fuzzy, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"Konfiguracioni fajl (%s) je promenjen posle instalacije.\n" +"Želite li zadržati vaÅ¡u verziju?" + +# +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"Konfiguracioni fajl (%s) je promenjen posle instalacije.\n" +"Želite li zadržati vaÅ¡u verziju?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +# +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "GrafiÄki EPG za sve kanale od specifiÄnog buketa" + +# +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"Snimanje je zapoÄeto:\n" +"%s" + +# +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"Snimanje je trenutno u toku.\n" +"Å ta želite da uradte?" + +# +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "Snimanje je u toku. Molim zaustavite snimanje pre nego Å¡to pokuÅ¡ate konfigurisati pozicioner." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "" + +# +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "Snimanje je trenutno u toku. Molim zaustavite snimanje pre nego Å¡to pokrenete satelitski pretraživaÄ." + +# +#, python-format +msgid "A required tool (%s) was not found." +msgstr "Potrebni alat (%s) nije pronaÄ‘en." + +# +msgid "A search for available updates is currently in progress." +msgstr "Traženje za moguća ažuriranja je trenutno u toku." + +# +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"Drugi konfigurisani interfejs je pronaÄ‘en.\n" +"\n" +"Da li želite da onemogućite drugi mrežni interfejs?" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +# +msgid "A small overview of the available icon states and actions." +msgstr "Mali pregled dostupnih stanja i aktivnosti ikonica." + +# +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"Tajmer je neuspeÅ¡no pokuÅ¡ao snimiti!\n" +"Onemogućite TV i pokuÅ¡ajte ponovo?\n" + +# +#, fuzzy +msgid "A/V settings" +msgstr "A/V Postavke " + +msgid "AC3/DTS downmix" +msgstr "" + +# +msgid "Abort" +msgstr "Prekini" + +# +msgid "About" +msgstr "O programu" + +# +msgid "About..." +msgstr "O programu..." + +# +msgid "Accesspoint:" +msgstr "Pristupna taÄka:" + +# +msgid "Action on long powerbutton press" +msgstr "Dejstvo za dugo pritisnutu tipku paljenja" + +# +msgid "Action on short powerbutton press" +msgstr "Akcija za kratko pritisnuto dugme paljenja" + +# +msgid "Activate Picture in Picture" +msgstr "Aktiviraj Sliku u Slici" + +# +#, fuzzy +msgid "Activate current configuration" +msgstr "Aktivirajte aktuelnu konfiguraciju" + +# +msgid "Activate network settings" +msgstr "Aktiviraj mrežne postavke" + +# +#, fuzzy +msgid "Activate the configured network settings." +msgstr "Aktiviraj mrežne postavke" + +# +msgid "Adapter settings" +msgstr "Postavke adaptera" + +# +msgid "Add" +msgstr "Dodaj" + +# +msgid "Add Bookmark" +msgstr "Dodaj obeležje" + +# +msgid "Add a mark" +msgstr "Dodaj oznaku" + +# +#, fuzzy +msgid "Add a nameserver entry" +msgstr "Dodaj nejmserver" + +# +msgid "Add a new title" +msgstr "Dodaj novi titl" + +# +#, fuzzy +msgid "Add bookmark" +msgstr "Dodaj oznaku" + +# +#, fuzzy +msgid "Add directory to playlist" +msgstr "dodaj direktorijum u plejlistu" + +# +#, fuzzy +msgid "Add file to playlist" +msgstr "dodaj datoteku u plejlistu" + +# +#, fuzzy +msgid "Add files to playlist" +msgstr "dodaj datoteke u plejlistu" + +msgid "Add more details to the crash log" +msgstr "" + +# +#, fuzzy +msgid "Add provider" +msgstr "Dodaj provajdera" + +# +#, fuzzy +msgid "Add recording (enter recording duration)" +msgstr "dodaj snimanje (unesite dužinu snimanja)" + +# +#, fuzzy +msgid "Add recording (enter recording endtime)" +msgstr "dodaj snimanje (unesi zavrÅ¡no vreme snimanja)" + +# +#, fuzzy +msgid "Add recording (indefinitely)" +msgstr "dodaj snimanje (nedefinisano)" + +# +#, fuzzy +msgid "Add recording (stop after current event)" +msgstr "dodaj snimanje (zaustavi posle trenutnog dogaÄ‘aja)" + +# +#, fuzzy +msgid "Add service" +msgstr "Dodaj kanal" + +# +msgid "Add timer" +msgstr "Dodaj Tajmer" + +# +msgid "Add title" +msgstr "Dodaj naslov" + +# +msgid "Add to bouquet" +msgstr "Dodaj u buket" + +# +msgid "Add to favourites" +msgstr "Dodaj u favorite" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "" + +# +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "Podesi postavke boje,tako da su sve senke boja raspoznatljive,ali izgledaju maksimalno zasićene.Ako ste zadovoljni rezultatom,pritisnite OK da zatvorite fino video-podeÅ¡avanje,ili koristite numeriÄke tipke da izaberete druge test ekrane. " + +msgid "Advanced" +msgstr "" + +# +#, fuzzy +msgid "Advanced options" +msgstr "Napredne opcije" + +# +msgid "Advanced restore" +msgstr "Napredno vraćanje" + +# +#, fuzzy +msgid "Advanced software" +msgstr "Napredni softver" + +# +#, fuzzy +msgid "Advanced software plugin" +msgstr "Napredni softver dodatak" + +# +#, fuzzy +msgid "Advanced video enhancement setup" +msgstr "Napredne postavke video poboljÅ¡avanja " + +# +#, fuzzy +msgid "Advanced video setup" +msgstr "Napredne video postavke" + +# +msgid "After event" +msgstr "Posle deÅ¡avanja" + +# +msgid "Album" +msgstr "Album" + +msgid "Alignment of events" +msgstr "" + +msgid "Alignment of service names" +msgstr "" + +# +msgid "All" +msgstr "Svi" + +msgid "All ages" +msgstr "" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "" + +msgid "Allocate unused memory index" +msgstr "" + +msgid "Allow quit movieplayer with exit" +msgstr "" + +msgid "Allow subtitle language to equal audio language" +msgstr "" + +msgid "Allow subtitles for hearing impaired" +msgstr "" + +# +msgid "Alpha" +msgstr "Alfa" + +# +#, fuzzy +msgid "Alternative" +msgstr "dodaj alternative" + +# +#, fuzzy +msgid "Alternative numbering mode" +msgstr "Alternativni radio mod" + +# +msgid "Alternative services tuner priority" +msgstr "Prioritet alternativnih kanala tjunera" + +msgid "Always ask" +msgstr "Uvek pitaj" + +msgid "Always hide infobar" +msgstr "" + +# +msgid "An empty filename is illegal." +msgstr "Prazno ime datoteke je nelegalno." + +# +#, fuzzy +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "GreÅ¡ka kod skidanja liste paketa. Molimo pokuÅ¡ajte ponovo." + +# +msgid "An unknown error occurred!" +msgstr "Nepoznata greÅ¡ka se desila" + +msgid "And will put your receiver in standby over " +msgstr "" + +msgid "Any activity" +msgstr "" + +# +msgid "Arabic" +msgstr "Arapski" + +msgid "Are you sure to remove this entry?" +msgstr "" + +# +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"Da li ste sigurni da želite aktivirati ovu mrežnu konfiguraciju?\n" +"\n" + +# +#, fuzzy +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"Da li ste sigurni da želite da izbriÅ¡ete\n" +"sledeću rezervnu kopiju:\n" + +# +msgid "Are you sure you want to exit this wizard?" +msgstr "Da li ste sigurni da želite izaći iz ovog Äarobnjaka?" + +# +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"Da li ste sigurni da želite da restartujete vaÅ¡e mrežne interfejse?\n" +"\n" + +# +#, fuzzy, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Da li ste sigurni da vratite vaÅ¡u Enigma2 rezervnu kopiju?\n" +"Enigma2 će ponovo startovati posle vraćanja" + +# +#, fuzzy +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Da li ste sigurni da vratite vaÅ¡u Enigma2 rezervnu kopiju?\n" +"Enigma2 će ponovo startovati posle vraćanja" + +# +msgid "Artist" +msgstr "IzvoÄ‘aÄ" + +msgid "Arts/Culture" +msgstr "" + +# +msgid "Ask user" +msgstr "Pitaj korisnika" + +# +#, fuzzy +msgid "Aspect ratio" +msgstr "Odnos slike" + +# +#, fuzzy +msgid "Assigned CAIds:" +msgstr "dodeljeni CAIdi:" + +# +#, fuzzy +msgid "Assigned services/provider:" +msgstr "Dodeljeni kanali/Provajder:" + +#, fuzzy +msgid "At beginning" +msgstr "na poÄetku" + +#, fuzzy +msgid "At end" +msgstr "na kraju" + +# +msgid "Audio" +msgstr "Zvuk" + +msgid "Audio PID" +msgstr "ZvuÄni PID" + +msgid "Audio language selection 1" +msgstr "" + +msgid "Audio language selection 2" +msgstr "" + +msgid "Audio language selection 3" +msgstr "" + +msgid "Audio language selection 4" +msgstr "" + +# +#, fuzzy +msgid "Audio options..." +msgstr "ZvuÄne opcije..." + +# +#, fuzzy, python-format +msgid "Audio track (%s) format" +msgstr "Audio zapis(%s) format" + +# +#, fuzzy, python-format +msgid "Audio track (%s) language" +msgstr "Audio zapis (%s) jezik" + +# +msgid "Author: " +msgstr "Autor" + +# +msgid "Authoring mode" +msgstr "Autorski naÄin" + +# +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Auto" + +# +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Automatska podela delova svakih ? minuta (0=nikad)" + +# +msgid "Auto flesh" +msgstr "Auto fleÅ¡" + +msgid "Auto focus" +msgstr "" + +msgid "Auto focus commencing ..." +msgstr "" + +msgid "Auto language selection" +msgstr "" + +# +msgid "Auto scart switching" +msgstr "Automatsko ukljuÄenje skarta" + +# +msgid "Automatic" +msgstr "Automatski" + +# +#, fuzzy +msgid "Automatic scan" +msgstr "Automatsko skeniranje " + +msgid "Automatically start timeshift after" +msgstr "" + +msgid "Automatically turn on external subtitles" +msgstr "" + +# +msgid "Available format variables" +msgstr "Mogući promenljivi format " + +# +msgid "B" +msgstr "B" + +# +msgid "BER" +msgstr "BER" + +# +msgid "BER:" +msgstr "BER:" + +# +msgid "Back" +msgstr "Iza" + +# +msgid "Background" +msgstr "Pozadina" + +# +#, fuzzy +msgid "Background color" +msgstr "Boja pozadine" + +msgid "Background delete option" +msgstr "" + +msgid "Background delete speed" +msgstr "" + +# +#, fuzzy +msgid "Backup completed." +msgstr "Rezervna kopija nije uspela" + +# +msgid "Backup failed." +msgstr "Rezervna kopija nije uspela" + +# +msgid "Backup is running..." +msgstr "Bekap u toku..." + +# +msgid "Backup system settings" +msgstr "Snimanje sistemskih postavki" + +# +msgid "Band" +msgstr "Band" + +# +msgid "Bandwidth" +msgstr "Propusnost" + +msgid "Basque" +msgstr "" + +# +msgid "Begin time" +msgstr "PoÄetno vreme" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +# +msgid "Behavior of 0 key in PiP-mode" +msgstr "Uloga tipke 0 u SuS-modu" + +# +msgid "Behavior when a movie is started" +msgstr "NaÄin rada kad je film startovan" + +# +msgid "Behavior when a movie is stopped" +msgstr "NaÄin rada kad je film zaustavljen" + +# +msgid "Behavior when a movie reaches the end" +msgstr "NaÄin rada kad je film stigao do kraja" + +msgid "Big PiP" +msgstr "" + +# +msgid "Bitrate:" +msgstr "Bit rata:" + +msgid "Black screen" +msgstr "" + +msgid "Black screen till locked" +msgstr "" + +# +msgid "Block noise reduction" +msgstr "Blokiraj smanjenje Å¡uma" + +# +msgid "Blue boost" +msgstr "Plavo pojaÄanje" + +# +msgid "Bookmarks" +msgstr "Oznake" + +# +msgid "Brightness" +msgstr "Osvetljenje" + +msgid "Bulgarian" +msgstr "" + +# +msgid "Burn DVD" +msgstr "Prži DVD" + +# +#, fuzzy, python-format +msgid "Burn audio track (%s)" +msgstr "Nareži audio zapis (%s)" + +# +msgid "Burn existing image to DVD" +msgstr "Nareži postojeći imidž na DVD" + +# +msgid "Burn to DVD" +msgstr "Nareži na DVD" + +# +msgid "Bus: " +msgstr "Bus:" + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "" + +# +msgid "C" +msgstr "C" + +msgid "C-Band" +msgstr "C-Opseg" + +msgid "CH" +msgstr "" + +# +msgid "CI assignment" +msgstr "CI dodela" + +# +msgid "CVBS" +msgstr "CVBS" + +# +msgid "Cable" +msgstr "Kabel" + +msgid "Cable Scan" +msgstr "" + +# +#, fuzzy +msgid "Cache thumbnails" +msgstr "UÄitaj sliÄice" + +msgid "Calculate" +msgstr "" + +msgid "Calculate all positions" +msgstr "" + +msgid "Calculation complete" +msgstr "" + +msgid "Calibrate" +msgstr "" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "" + +# +msgid "Cancel" +msgstr "Odustani" + +msgid "Cannot determine" +msgstr "" + +msgid "Cannot find any signal ..., aborting !" +msgstr "" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "" + +msgid "Cannot move to trash can" +msgstr "" + +# +msgid "Capacity: " +msgstr "Kapacitet:" + +# +msgid "Card" +msgstr "Kartica" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "" + +msgid "Center time-labels and remove date" +msgstr "" + +# +msgid "Change bouquets in quickzap" +msgstr "Promeni bukete u brzom prebacivanju" + +# +msgid "Change pin code" +msgstr "Promeni pin kod" + +# +#, fuzzy +msgid "Change recording (duration)" +msgstr "promeni dužinu snimanja" + +# +#, fuzzy +msgid "Change recording (endtime)" +msgstr "promeni snimanje (zavrÅ¡no vreme)" + +msgid "Change repeat and delay settings?" +msgstr "" + +msgid "Change service PIN" +msgstr "Promeni servisni PIN" + +msgid "Change service PINs" +msgstr "Promeni servisne PINove" + +msgid "Change setup PIN" +msgstr "Promeni PIN za podeÅ¡avanje" + +# +msgid "Change step size" +msgstr "Promeni veliÄinu koraka" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "Zapis izmena" + +# +msgid "Channel" +msgstr "Kanal" + +# +#, fuzzy +msgid "Channel list type" +msgstr "Meni liste kanala" + +# +msgid "Channel not in services list" +msgstr "Kanal nije u listi kanala" + +# +#, fuzzy +msgid "Channel selection" +msgstr "Izbor kanala" + +# +msgid "Channel:" +msgstr "Kanal:" + +# +msgid "Channellist menu" +msgstr "Meni liste kanala" + +# +msgid "Chap." +msgstr "Pog." + +# +msgid "Chapter" +msgstr "Poglavlje" + +# +msgid "Chapter:" +msgstr "Poglavlje:" + +# +msgid "Check" +msgstr "Kontrola" + +msgid "Check the internet connection" +msgstr "" + +msgid "Check the internet connection again" +msgstr "" + +# +#, fuzzy +msgid "Checking filesystem..." +msgstr "Kontrola sistema datoteka" + +msgid "Checking the internet connection" +msgstr "" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" + +msgid "Children/Youth" +msgstr "" + +msgid "Choose which tuner to configure." +msgstr "" + +# +msgid "Circular left" +msgstr "Kružna leva" + +# +msgid "Circular right" +msgstr "Kružna desna" + +# +msgid "Cleanup" +msgstr "ÄŒišćenje" + +msgid "Clear" +msgstr "" + +# +msgid "Clear before scan" +msgstr "ObriÅ¡i pre skeniranja" + +msgid "Clear fixed" +msgstr "" + +# +msgid "Clear log" +msgstr "ObriÅ¡i log" + +# +#, fuzzy +msgid "Clear playlist" +msgstr "oÄisti Plejlistu" + +# +msgid "Close" +msgstr "Zatvori" + +msgid "Close PiP on exit" +msgstr "" + +# +msgid "Close title selection" +msgstr "Zatvori zbor naslova" + +msgid "Code rate HP" +msgstr "Kod rata HP" + +msgid "Code rate LP" +msgstr "Kod rata LP" + +# +msgid "Coderate HP" +msgstr "Kodrata HP" + +# +msgid "Coderate LP" +msgstr "Kodrata LP" + +# +msgid "Collection name" +msgstr "Ime kolekcije" + +# +msgid "Collection settings" +msgstr "Postavke kolekcije" + +# +#, fuzzy +msgid "Color format" +msgstr "Kolor format" + +# +msgid "Command execution..." +msgstr "IzvrÅ¡enje komandi" + +# +msgid "Command order" +msgstr "Redosled komandi" + +# +msgid "Common Interface" +msgstr "OpÅ¡ti interfejs" + +# +#, fuzzy +msgid "Common Interface assignment" +msgstr "Dodeljivanje opÅ¡teg interfejsa" + +# +msgid "Communication" +msgstr "Komunikacija" + +# +#, fuzzy +msgid "Compact flash" +msgstr "Kompakt fleÅ¡" + +# +msgid "Complete" +msgstr "Kompletno" + +# +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "Složen (dozvoljava miksovanje audio zapisa i aspekta)" + +msgid "Composition of the recording filenames" +msgstr "Sklapanje imena snimljenih datoteka" + +# +#, fuzzy +msgid "Configuration mode" +msgstr "Mod konfiguracije" + +# +#, fuzzy, python-format +msgid "Configuration mode: %s" +msgstr "Mod konfiguracije" + +# +#, fuzzy +msgid "Configuration..." +msgstr "Mrežna konfiguracija..." + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "" + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "" + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "" + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "" + +msgid "Configure how recording filenames are constructed." +msgstr "" + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +# +msgid "Configure interface" +msgstr "KonfiguriÅ¡i interfejs" + +# +msgid "Configure nameservers" +msgstr "KonfiguriÅ¡i nejmservere" + +msgid "Configure on which devices the background delete option should be used." +msgstr "" + +# +#, fuzzy +msgid "Configure remote control type" +msgstr "Tip roditeljske zaÅ¡tite" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "" + +# +#, fuzzy +msgid "Configure the IP address." +msgstr "KonfiguriÅ¡i interfejs" + +msgid "Configure the aspect ratio of the screen." +msgstr "" + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +# +#, fuzzy +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "NaÄin rada kad je film zaustavljen" + +# +#, fuzzy +msgid "Configure the behavior when movie playback is started." +msgstr "NaÄin rada kad je film startovan" + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "" + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "" + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "" + +msgid "Configure the brightness level of the front panel display." +msgstr "" + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "" + +msgid "Configure the color of the teletext subtitles." +msgstr "" + +msgid "Configure the contrast level of the front panel display." +msgstr "" + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "" + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "" + +msgid "Configure the first audio language (highest priority)." +msgstr "" + +msgid "Configure the first subtitle language (highest priority)." +msgstr "" + +msgid "Configure the font size of the subtitles." +msgstr "" + +msgid "Configure the fourth audio language." +msgstr "" + +# +#, fuzzy +msgid "Configure the fourth subtitle language." +msgstr "Prebaci na sledeći jezik titla" + +msgid "Configure the function of a long press on the power button." +msgstr "" + +msgid "Configure the function of a short press on the power button." +msgstr "" + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "" + +# +#, fuzzy +msgid "Configure the gateway." +msgstr "KonfiguriÅ¡i interfejs" + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "" + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "" + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "" + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "" + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "" + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "" + +msgid "Configure the latitude of your location." +msgstr "" + +msgid "Configure the longitude of your location." +msgstr "" + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "" + +# +#, fuzzy +msgid "Configure the nameserver (DNS)." +msgstr "KonfiguriÅ¡i nejmservere" + +# +#, fuzzy +msgid "Configure the netmask." +msgstr "KonfiguriÅ¡i interfejs" + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "" + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "" + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "" + +#, fuzzy +msgid "Configure the possible fast forward speeds." +msgstr "PoÄetna brzina premotavanja napred" + +msgid "Configure the possible rewind speeds." +msgstr "" + +msgid "Configure the primary EPG language." +msgstr "" + +msgid "Configure the refresh rate of the screen." +msgstr "" + +msgid "Configure the screen resolution in PC output mode." +msgstr "" + +msgid "Configure the second audio language." +msgstr "" + +# +#, fuzzy +msgid "Configure the second subtitle language." +msgstr "Prebaci na sledeći jezik titla" + +msgid "Configure the secondary EPG language." +msgstr "" + +msgid "Configure the sharpness of the video scaling." +msgstr "" + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "" + +# +#, fuzzy +msgid "Configure the slow motion speeds." +msgstr "Brzine usporene reprodukcije" + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "" + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "" + +msgid "Configure the third audio language." +msgstr "" + +# +#, fuzzy +msgid "Configure the third subtitle language." +msgstr "Prebaci na sledeći jezik titla" + +msgid "Configure the transparency of the OSD." +msgstr "" + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "" + +# +#, fuzzy +msgid "Configure the tuner mode." +msgstr "Mod konfiguracije" + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "" + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "" + +msgid "Configure the video output mode (or resolution)." +msgstr "" + +msgid "Configure the way in which the receiver changes channels." +msgstr "" + +msgid "Configure where completed timers show up in the timer list." +msgstr "" + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "" + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "" + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "" + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "" + +msgid "Configure which color format should be used on the SCART output." +msgstr "" + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "" + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "" + +# +msgid "Configure your internal LAN" +msgstr "KonfiguriÅ¡i svoj interni LAN" + +# +msgid "Configure your network again" +msgstr "KonfiguriÅ¡ite vaÅ¡u mrežu ponovo" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "" + +# +msgid "Configure your wireless LAN again" +msgstr "KonfiguriÅ¡i svoj bežiÄni LAN ponovo" + +msgid "Configures which video output connector will be used." +msgstr "" + +# +msgid "Configuring" +msgstr "KonfiguriÅ¡em" + +# +msgid "Conflicting timer" +msgstr "Konflikt tajmera" + +# +msgid "Connect" +msgstr "Spojiti" + +# +#, fuzzy +msgid "Connect to a wireless network" +msgstr "Spojite se na bežiÄnu mrežu" + +msgid "Connected satellites" +msgstr "" + +# +msgid "Connected to" +msgstr "Povezan sa" + +# +msgid "Connected!" +msgstr "Povezano!" + +# +msgid "Constellation" +msgstr "Konstelacija" + +# +msgid "Content does not fit on DVD!" +msgstr "Sadržaj ne staje na DVD!" + +# +msgid "Continue" +msgstr "Nastaviti" + +# +msgid "Continue in background" +msgstr "Nastaviti u pozadini " + +# +#, fuzzy +msgid "Continue playback" +msgstr "Nastaviti reprodukciju" + +# +msgid "Continue playing" +msgstr "Nastaviti reprodukciju" + +msgid "Continues play (loop)" +msgstr "" + +# +msgid "Contrast" +msgstr "Kontrast" + +msgid "Convert ext3 filesystem to ext4" +msgstr "" + +msgid "Convert ext3 to ext4" +msgstr "" + +msgid "Converting ext3 to ext4..." +msgstr "" + +msgid "Copy" +msgstr "" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "" + +msgid "Could not find installed channel list." +msgstr "" + +# +#, fuzzy +msgid "Could not load medium! No disc inserted?" +msgstr "Ne može se ubaciti medij.Disk nije ubaÄen?" + +# +msgid "Could not open Picture in Picture" +msgstr "Ne mogu otvoriti sliku u slici" + +# +#, fuzzy, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "Snimanje nije moguće zbog konflikta tajmera %s" + +#, fuzzy, python-format +msgid "Could not record due to invalid service %s" +msgstr "Snimanje nemoguće zbog nevaljanog kanala %s" + +# +msgid "Create DVD-ISO" +msgstr "Napravi DVD-ISO" + +msgid "Create more detailed crash log" +msgstr "" + +# +#, python-format +msgid "Creating directory %s failed." +msgstr "Pravljenje direktorijuma %s nije uspelo" + +# +#, fuzzy +msgid "Creating filesystem" +msgstr "Kontrola sistema datoteka" + +msgid "Creating partition" +msgstr "" + +# +msgid "Croatian" +msgstr "Hrvatski" + +msgid "Current CEC address" +msgstr "" + +msgid "Current device: " +msgstr "Aktuelni ureÄ‘aj:" + +msgid "Current event EPG" +msgstr "" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +# +msgid "Current settings:" +msgstr "Trenutne postavke" + +# +#, fuzzy +msgid "Current transponder" +msgstr "Trenutni transponder" + +# +msgid "Current value: " +msgstr "Trenutna vrednost:" + +# +msgid "Current version:" +msgstr "Trenutna verzija:" + +msgid "Currently installed image" +msgstr "Aktuelno instalirani imidž" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +# +#, fuzzy +msgid "Custom skip time for '1'/'3' buttons" +msgstr "Podesivo vreme preskoka za '1'/'3'-tipke" + +# +#, fuzzy +msgid "Custom skip time for '4'/'6' buttons" +msgstr "Podesivo vreme preskoka za '4'/'6'-tipke" + +# +#, fuzzy +msgid "Custom skip time for '7'/'9' buttons" +msgstr "Podesivo vreme preskoka za '7'/'9'-tipke" + +# +msgid "Customize" +msgstr "Prilagodi" + +msgid "Customize channel list cursor behavior" +msgstr "" + +# +msgid "Cut" +msgstr "Odreži" + +# +msgid "Cutlist editor..." +msgstr "UreÄ‘ivaÄ liste..." + +# +msgid "Czech" +msgstr "ÄŒeÅ¡ki" + +# +msgid "D" +msgstr "D" + +# +msgid "DHCP" +msgstr "DHCP" + +# +#, fuzzy +msgid "DMM advanced" +msgstr "napredno" + +msgid "DMM normal" +msgstr "" + +# +msgid "DUAL LAYER DVD" +msgstr "DVOSLOJNI DVDi " + +msgid "DVB subtitle black transparency" +msgstr "" + +msgid "DVB-C" +msgstr "" + +msgid "DVB-C ANNEX C" +msgstr "" + +# +msgid "DVB-S" +msgstr "DVB-S" + +# +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "" + +msgid "DVB-T2" +msgstr "" + +msgid "DVD data format" +msgstr "" + +# +#, fuzzy +msgid "DVD file browser" +msgstr "DVD pretraživaÄ datoteka" + +# +msgid "DVD media toolbox" +msgstr "DVD medij alati" + +# +#, fuzzy +msgid "DVD player" +msgstr "DVD plejer" + +# +#, fuzzy +msgid "DVD titlelist" +msgstr "DVD lista naslova" + +# +msgid "Danish" +msgstr "Danski" + +# +msgid "Date" +msgstr "Datum" + +# +#, fuzzy +msgid "Date/time input" +msgstr "Unos Vremena/Datuma" + +# +#, fuzzy +msgid "Deep standby" +msgstr "IskljuÄi Drimbox" + +msgid "Default" +msgstr "Standardno" + +# +msgid "Default movie location" +msgstr "Standardna lokacija filmova" + +# +#, fuzzy +msgid "Default settings" +msgstr "Standardne postavke" + +msgid "Delay before key repeat starts:" +msgstr "" + +msgid "Delay for external subtitles" +msgstr "" + +# +msgid "Delete" +msgstr "ObriÅ¡i" + +# +msgid "Delete entry" +msgstr "ObriÅ¡i unos" + +# +msgid "Delete failed!" +msgstr "Brisanje neuspeÅ¡no!" + +# +#, fuzzy +msgid "Delete file" +msgstr "ObriÅ¡i datoteku" + +# +#, fuzzy +msgid "Delete playlist entry" +msgstr "obriÅ¡i unos plejliste" + +# +#, fuzzy +msgid "Delete saved playlist" +msgstr "obriÅ¡i saÄuvanu plejlistu" + +msgid "Delete timer" +msgstr "" + +# +#, fuzzy +msgid "Delete..." +msgstr "ObriÅ¡i..." + +msgid "Deleted" +msgstr "" + +msgid "Deleted items" +msgstr "" + +msgid "Depth" +msgstr "" + +msgid "Descramble http streams" +msgstr "" + +# +msgid "Description" +msgstr "Opis" + +# +msgid "Deselect" +msgstr "Deselektuj" + +msgid "Details for plugin: " +msgstr "Detalji dodatka:" + +# +msgid "Detected HDD:" +msgstr "Primećeni hard disk:" + +# +msgid "Detected NIMs:" +msgstr "Primećeni NIMs:" + +msgid "Devicename:" +msgstr "" + +msgid "Devide" +msgstr "" + +# +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +# +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +# +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +# +msgid "DiSEqC mode" +msgstr "DiSEqC mod" + +# +#, fuzzy, python-format +msgid "DiSEqC port %s: %s" +msgstr "DiSEqC ponavljanja" + +# +#, fuzzy +msgid "DiSEqC-tester settings" +msgstr "podeÅ¡avanje DISEqC testera" + +# +msgid "Dialing:" +msgstr "Zovem:" + +# +msgid "Digital contour removal" +msgstr "Uklanjanje digitalnih obrisa" + +# +msgid "Direct playback of linked titles without menu" +msgstr "Direktna reprodukcija vezanih naslova bez menia" + +msgid "Directory" +msgstr "" + +# +#, fuzzy, python-format +msgid "Directory %s does not exist." +msgstr "Direktorijum %s ne postoji" + +#, python-format +msgid "Directory %s nonexistent." +msgstr "" + +# +msgid "Directory browser" +msgstr "PretraživaÄ direktorijuma" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "" + +# +#, fuzzy, python-format +msgid "Directory contains %s and %s." +msgstr "Direktorijum %s ne postoji" + +# +msgid "Disable" +msgstr "Onemogući" + +# +msgid "Disable Picture in Picture" +msgstr "IskljuÄi Sliku u Slici" + +msgid "Disable background scanning" +msgstr "" + +msgid "Disable timer" +msgstr "" + +# +msgid "Disabled" +msgstr "Onemogućeno" + +# +msgid "Disconnect" +msgstr "Odspojiti" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "" + +# +msgid "Display 16:9 content as" +msgstr "Prikaži 16:9 sadržaj kao" + +# +msgid "Display 4:3 content as" +msgstr "Prikaži 4:3 sadržaj kao" + +# +msgid "Display >16:9 content as" +msgstr "Prikaži >16:9 sadržaj kao" + +# +#, fuzzy +msgid "Display and userinterface" +msgstr "Displej i korisniÄki interfejs" + +msgid "Display message before playing next movie" +msgstr "" + +# +#, fuzzy +msgid "Display setup" +msgstr "Postavke displeja" + +# +#, fuzzy +msgid "Do not change" +msgstr "ne menjaj" + +# +#, fuzzy +msgid "Do not record" +msgstr "ne snimaj" + +# +#, fuzzy +msgid "Do nothing" +msgstr "ne Äini niÅ¡ta " + +# +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Da li stvarno želite da proverite sistem datoteka?\n" +"To može potrajati dosta vremena!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" + +# +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Jeste li sigurni da želite obrisati %s?" + +# +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"Da li stvarno želite da skinete\n" +"dodatak \"%s\"?" + +# +msgid "Do you really want to exit?" +msgstr "Želite li stvarno izaći?" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" + +# +#, fuzzy, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"Da li stvarno želite da skinete\n" +"dodatak \"%s\"?" + +# +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Da li stvarno želite da uklonite direktorijum %s sa diska?" + +# +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Da li stvarno želite da uklonite vaÅ¡e oznake sa %s?" + +msgid "Do you want this?" +msgstr "" + +# +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Da li želite da narežete ovu kolekciju na DVD medij?" + +# +msgid "Do you want to do a service scan?" +msgstr "Želite li napraviti skeniranje kanala?" + +# +msgid "Do you want to do another manual service scan?" +msgstr "Želite li sada zapoÄeti drugu ruÄnu pretragu kanala?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "Da li želite da skinete imidž u %s ?" + +# +#, fuzzy +msgid "Do you want to install a channel list?" +msgstr "Da li želite da instalirate paket:\n" + +# +msgid "Do you want to install the package:\n" +msgstr "Da li želite da instalirate paket:\n" + +# +msgid "Do you want to play DVD in drive?" +msgstr "Da li želite da reprodukujete DVD u drajvu?" + +# +msgid "Do you want to preview this DVD before burning?" +msgstr "Da li želite da pregledate ovaj DVD pre rezanja?" + +msgid "Do you want to reboot your receiver?" +msgstr "" + +# +msgid "Do you want to remove the package:\n" +msgstr "Da li želite da uklonite paket:\n" + +# +msgid "Do you want to restore your settings?" +msgstr "Želite li vratiti vaÅ¡e postavke iz sigurnosne kopije?" + +# +msgid "Do you want to resume this playback?" +msgstr "Želite li nastaviti snimak?" + +#, fuzzy, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Da li želite da skinete imidž u %s ?" + +msgid "Do you want to update your receiver?" +msgstr "" + +# +msgid "Do you want to upgrade the package:\n" +msgstr "Da li želite da nadogradite paket:\n" + +# +msgid "Don't stop current event but disable coming events" +msgstr "Ne zaustavljaj trenutni dogaÄ‘aj ali onemogući nadolazeće dogaÄ‘aje" + +# +#, fuzzy, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "UÄinjeno,instalisano,nadograÄ‘eno ili uklonjeno %d paketa sa %d greÅ¡aka" +msgstr[1] "UÄinjeno,instalisano,nadograÄ‘eno ili uklonjeno %d paketa sa %d greÅ¡aka" +msgstr[2] "UÄinjeno,instalisano,nadograÄ‘eno ili uklonjeno %d paketa sa %d greÅ¡aka" + +# +msgid "Download" +msgstr "Skidanje" + +#, fuzzy, python-format +msgid "Download %s from server" +msgstr "Skidanje %s sa servera" + +msgid "Download .NFI-files for USB-flasher" +msgstr "Skidanje .NFI datoteka za USB-FleÅ¡er" + +# +#, fuzzy +msgid "Download plugins" +msgstr "Skini dodatke" + +# +msgid "Downloadable new plugins" +msgstr "Novi dodaci za skidanje" + +# +msgid "Downloadable plugins" +msgstr "Dodaci koji se mogu skidati" + +# +msgid "Downloading" +msgstr "Skidanje" + +# +msgid "Downloading plugin information. Please wait..." +msgstr "Skidanje informacija o dodacima. Molim priÄekajte..." + +# +msgid "Dutch" +msgstr "Holandski" + +# +msgid "Dynamic contrast" +msgstr "DinamiÄki kontrast" + +# +msgid "E" +msgstr "E" + +msgid "EPG" +msgstr "" + +msgid "EPG language selection 1" +msgstr "" + +msgid "EPG language selection 2" +msgstr "" + +# +#, fuzzy +msgid "EPG selection" +msgstr "EPG selektor " + +msgid "EPG settings" +msgstr "" + +# +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "GREÅ KA - neuspeÅ¡no skeniranje (%s)!" + +# +msgid "East" +msgstr "Istok" + +msgid "East limit set" +msgstr "" + +# +msgid "Edit" +msgstr "Urediti" + +# +msgid "Edit DNS" +msgstr "Urediti DNS" + +# +msgid "Edit bouquets list" +msgstr "Uredi listi buketa" + +# +msgid "Edit chapters of current title" +msgstr "Urediti poglavlja sadaÅ¡njeg naslova" + +# +msgid "Edit services list" +msgstr "Urediti listu kanala" + +# +msgid "Edit settings" +msgstr "Urediti postavke" + +# +#, fuzzy +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "Napustite konfiguraciju nejmservera" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "" + +msgid "Edit timer" +msgstr "" + +# +msgid "Edit title" +msgstr "Urediti naslov" + +# +msgid "Edit upgrade source url." +msgstr "Uredi url izvora nadogradnje." + +msgid "Education/Science/..." +msgstr "" + +# +msgid "Electronic Program Guide" +msgstr "Elektronski Programski VodiÄ" + +# +msgid "Enable" +msgstr "Omogući" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +# +msgid "Enable 5V for active antenna" +msgstr "UkljuÄi 5V za aktivnu antenu" + +msgid "Enable EIT EPG" +msgstr "" + +msgid "Enable MHW EPG" +msgstr "" + +msgid "Enable Netmed EPG" +msgstr "" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +# +#, fuzzy +msgid "Enable bouquet selection in multi-EPG" +msgstr "omogući ureÄ‘ivanje paketa" + +msgid "Enable freesat EPG" +msgstr "" + +# +msgid "Enable multiple bouquets" +msgstr "UkljuÄi viÅ¡estruke bukete" + +# +msgid "Enable parental control" +msgstr "UkljuÄi roditeljsku zaÅ¡titu" + +msgid "Enable teletext caching" +msgstr "" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +# +msgid "Enabled" +msgstr "Omogućeno" + +# +msgid "Encrypted: " +msgstr "Kodirano:" + +# +msgid "Encryption" +msgstr "Å ifrovanje" + +# +#, fuzzy +msgid "Encryption key" +msgstr "KljuÄ za Å¡ifrovanje" + +# +#, fuzzy +msgid "Encryption key type" +msgstr "Tip kljuÄa za Å¡ifrovanje" + +# +msgid "Encryption:" +msgstr "Kodiranje:" + +# +msgid "End time" +msgstr "ZavrÅ¡no vreme" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +# +msgid "English" +msgstr "Engleski" + +# +#, fuzzy +msgid "Enigma2 skin selector" +msgstr "Enigma2 i mreža" + +# +msgid "Enter main menu..." +msgstr "UÄ‘i u glavni meni" + +# +msgid "Enter pin code" +msgstr "Unesi PIN kod" + +# +msgid "Enter the service pin" +msgstr "Unesite pin kanala" + +msgid "Equal to" +msgstr "" + +# +msgid "Error" +msgstr "GreÅ¡ka" + +msgid "Error code" +msgstr "" + +# +msgid "Error executing plugin" +msgstr "GreÅ¡ka u izvrÅ¡enju dodatka" + +# +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"GreÅ¡ka: %s\n" +"PokuÅ¡ati ponovo?" + +# +msgid "Estonian" +msgstr "Estonski" + +msgid "Ethernet network interface" +msgstr "" + +msgid "Event font size (relative to skin size)" +msgstr "" + +# +#, fuzzy +msgid "Event view" +msgstr "Pregled dogaÄ‘aja" + +# +#, fuzzy +msgid "Event view menu" +msgstr "Pregled dogaÄ‘aja" + +msgid "Everywhere" +msgstr "" + +# +msgid "Exceeds dual layer medium!" +msgstr "Prevazilazi dvoslojni medij!" + +# +msgid "Execution finished!!" +msgstr "IzvoÄ‘enje zavrÅ¡eno!!" + +# +#, fuzzy +msgid "Execution progress:" +msgstr "Tok izvoÄ‘enja:" + +# +msgid "Exif" +msgstr "Exif" + +# +msgid "Exit" +msgstr "Izaći" + +msgid "Exit EPG" +msgstr "" + +# +msgid "Exit editor" +msgstr "IzaÄ‘i iz editora" + +msgid "Exit input device selection." +msgstr "Napusti izbor ulaznog ureÄ‘aja." + +msgid "Exit media player?" +msgstr "" + +# +#, fuzzy +msgid "Exit mediaplayer" +msgstr "IzaÄ‘i iz medija plejera" + +# +#, fuzzy +msgid "Exit movie list" +msgstr "izaÄ‘i iz liste filmova" + +# +#, fuzzy +msgid "Exit movie player?" +msgstr "IzaÄ‘i iz medija plejera" + +# +#, fuzzy +msgid "Exit nameserver configuration" +msgstr "Napustite konfiguraciju nejmservera" + +# +#, fuzzy +msgid "Exit network interface list" +msgstr "Napustite listu mrežnih interfejsa" + +# +msgid "Exit network wizard" +msgstr "Napusti mrežnog Äarobnjaka" + +# +msgid "Exit the wizard" +msgstr "IzaÄ‘ite iz Äarobnjaka" + +# +msgid "Expert" +msgstr "Ekspert" + +msgid "Extend sleeptimer 15 minutes" +msgstr "" + +# +msgid "Extended Software" +msgstr "ProÅ¡ireni softver" + +# +msgid "Extended Software Plugin" +msgstr "ProÅ¡ireni softver dodatak " + +# +#, fuzzy +msgid "Extended network setup plugin..." +msgstr "ProÅ¡ireni dodatak za postavke mreže..." + +# +#, fuzzy +msgid "Extended setup..." +msgstr "ProÅ¡irene postavke..." + +# +msgid "Extensions" +msgstr "ProÅ¡irenja" + +# +msgid "Extensions management" +msgstr "Rukovanje proÅ¡irenjima" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "" + +msgid "Extra motor options" +msgstr "" + +# +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "" + +# +msgid "Factory reset" +msgstr "FabriÄki reset" + +# +msgid "Failed" +msgstr "Neuspeh" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "" + +# +#, python-format +msgid "Fan %d" +msgstr "Vent. %d " + +# +#, python-format +msgid "Fan %d PWM" +msgstr "Ventil. %d PWM" + +# +#, fuzzy, python-format +msgid "Fan %d voltage" +msgstr "Ventil. %d Napona" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +# +msgid "Fast" +msgstr "Brzo" + +# +msgid "Fast DiSEqC" +msgstr "Brzi DiSEqC" + +msgid "Fast Scan" +msgstr "" + +# +msgid "Fast epoch" +msgstr "Brza epoha" + +# +#, fuzzy +msgid "Fast forward speeds" +msgstr "Brzine premotavanja unapred" + +# +msgid "Favourites" +msgstr "Favoriti" + +msgid "File appears to be busy.\n" +msgstr "" + +# +#, fuzzy +msgid "Filesystem check" +msgstr "Provera sistema datoteka" + +msgid "Final position at" +msgstr "" + +msgid "Final position at index" +msgstr "" + +msgid "Fine movement" +msgstr "" + +# +msgid "Finetune" +msgstr "Fino podeÅ¡avanje" + +# +msgid "Finished" +msgstr "ZavrÅ¡eno" + +# +msgid "Finished configuring your network" +msgstr "ZavrÅ¡ena konfiguracija vaÅ¡e mreže" + +# +msgid "Finished restarting your network" +msgstr "ZavrÅ¡eno je restartovanje vaÅ¡e mreže" + +# +msgid "Finnish" +msgstr "Finski" + +msgid "Fixed" +msgstr "" + +# +msgid "Flash" +msgstr "FleÅ¡" + +# +msgid "Flashing failed" +msgstr "FleÅ¡ nije uspeo" + +# +msgid "Following tasks will be done after you press OK!" +msgstr "Sledeći zadaci će biti uraÄ‘eni kad pritisnete OK!" + +# +msgid "Format" +msgstr "Formatiranje" + +msgid "Forward volume keys" +msgstr "" + +# +msgid "Frame size in full view" +msgstr "VeliÄina frejma u punom izgledu" + +# +msgid "French" +msgstr "Francuski" + +# +msgid "Frequency" +msgstr "Frekvencija" + +# +msgid "Frequency bands" +msgstr "Band frekvencije" + +# +msgid "Frequency scan step size(khz)" +msgstr "VeliÄina frekvencijskih koraka (khz)" + +# +msgid "Frequency steps" +msgstr "Frekvencijski koraci" + +msgid "Frequency:" +msgstr "" + +# +msgid "Fri" +msgstr "Pet" + +# +msgid "Friday" +msgstr "Petak" + +msgid "From :" +msgstr "" + +# +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Verzija frontprocesora: %d" + +msgid "Full transparency" +msgstr "" + +msgid "Fulview resulution" +msgstr "" + +msgid "Function of OK button" +msgstr "" + +msgid "Further Options" +msgstr "" + +# +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"GUI se treba restartovati da se primeni nova maska\n" +" Želite li restartovati GUI sada ?" + +# +msgid "Gateway" +msgstr "Mrežni Ävor" + +# +#, fuzzy +msgid "General AC3 delay" +msgstr "OpÅ¡te AC3 kaÅ¡njenje" + +# +#, fuzzy +msgid "General PCM delay" +msgstr "OpÅ¡te PCM kaÅ¡njenje" + +# +msgid "Genre" +msgstr "Žanrovi" + +# +msgid "German" +msgstr "NemaÄki" + +msgid "Get latest experimental image" +msgstr "Uzmi poslednji eksperimentalni imidž" + +msgid "Get latest release image" +msgstr "Uzmi poslednji predstavljeni imidž" + +# +msgid "Getting plugin information. Please wait..." +msgstr "Skidanje informacije o dodatku. Molim priÄekajte..." + +msgid "Go down the list" +msgstr "" + +msgid "Go to first movie or last item" +msgstr "" + +msgid "Go to first movie or top of list" +msgstr "" + +# +#, fuzzy +msgid "Go to first service" +msgstr "Pomeri gore na prvi unos" + +# +#, fuzzy +msgid "Go to last service" +msgstr "ZaÅ¡titi kanale" + +# +#, fuzzy +msgid "Go to next event" +msgstr "Pomeri dole na naredni unos" + +# +#, fuzzy +msgid "Go to next page of service" +msgstr "prebaci na sledeći podkanal " + +# +#, fuzzy +msgid "Go to previous event" +msgstr "Pomeri gore na prethodni unos" + +# +#, fuzzy +msgid "Go to previous page of service" +msgstr "Vratite se na prethodni kanal" + +msgid "Go up the list" +msgstr "" + +msgid "Goto" +msgstr "" + +# +msgid "Goto 0" +msgstr "PoÄ‘i do 0" + +msgid "Goto :" +msgstr "" + +msgid "Goto X" +msgstr "" + +msgid "Goto index position" +msgstr "" + +msgid "Goto next day of events" +msgstr "" + +msgid "Goto next page of events" +msgstr "" + +# +msgid "Goto position" +msgstr "Idi na poziciju" + +msgid "Goto previous day of events" +msgstr "" + +msgid "Goto previous page of events" +msgstr "" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "" + +msgid "GraphMultiEpg Settings" +msgstr "" + +# +msgid "Graphical Multi EPG" +msgstr "GrafiÄki Multi EPG" + +# +msgid "Greek" +msgstr "GrÄki" + +# +msgid "Green boost" +msgstr "Zeleno pojaÄanje" + +msgid "Guard interval" +msgstr "ZaÅ¡titni interval" + +msgid "HD list" +msgstr "" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "" + +msgid "Handle wakeup from TV" +msgstr "" + +# +#, fuzzy +msgid "Hard disk" +msgstr "Hard disk" + +# +#, fuzzy +msgid "Hard disk setup" +msgstr "Postavke hard diska" + +# +#, fuzzy +msgid "Hard disk standby after" +msgstr "IskljuÄi hard disk posle" + +# +msgid "Harddisk" +msgstr "Hard disk" + +msgid "Hardware: " +msgstr "" + +msgid "Hebrew" +msgstr "" + +msgid "Helps setting up your dish" +msgstr "" + +msgid "Hidden network" +msgstr "" + +msgid "Hide CI messages" +msgstr "" + +msgid "Hide channel list in radio mode" +msgstr "" + +msgid "Hide known extensions" +msgstr "" + +msgid "Hide number markers" +msgstr "" + +# +#, fuzzy +msgid "Hide player" +msgstr "sakrij plejer" + +msgid "Hide zap errors" +msgstr "" + +msgid "Hierarchy info" +msgstr "Rangiranje info" + +# +#, fuzzy +msgid "Hierarchy information" +msgstr "Informacije hijerarhije" + +# +msgid "High bitrate support" +msgstr "PodrÅ¡ka za visoki bitrejt" + +msgid "Hold screen" +msgstr "" + +msgid "Hold till locked" +msgstr "" + +msgid "Home" +msgstr "" + +# +msgid "Horizontal" +msgstr "Horizontalno" + +msgid "Horizontal turning speed" +msgstr "" + +# +msgid "How many minutes do you want to record?" +msgstr "Koliko minuta želite snimati ?" + +# +msgid "Hue" +msgstr "Nijansa" + +# +msgid "Hungarian" +msgstr "MaÄ‘arski" + +# +#, fuzzy +msgid "IP address" +msgstr "IP Adresa" + +# +msgid "ISO file is too large for this filesystem!" +msgstr "ISO datoteka je prevelika za ovaj sistem?" + +# +msgid "ISO path" +msgstr "ISO putanja" + +msgid "Icons" +msgstr "" + +# +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"Ukoliko vidite ovu poruku, neÅ¡to je pogreÅ¡no sa\n" +"vaÅ¡im skart prikljuÄkom. Pritisnite OK za povratak." + +# +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"Ako vaÅ¡ TV ima poboljÅ¡avanje osvetljenja ili kontrasta,iskljuÄite ga.Ako imate neÅ¡to zvano \"dynamic \",postavite na standarno.Podesite nivo pozadinskog osvetljenja na vrednosti po vaÅ¡em ukusu.Smanjite kontrast na vaÅ¡em TV koliko je moguće.\n" +"Zatim smanjite do minimuma osvetljenje,ali budite sigurni da se najniže senke sive razaznaju.\n" +"Ne brinite sada za svetle senke.One će biti postavljene u sledećem koraku.\n" +"Ako ste zadovoljni rezultatom,stisnite OK." + +msgid "Image: " +msgstr "" + +# +#, fuzzy +msgid "Immediate shutdown" +msgstr "odmah iskljuÄi" + +# +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "Da bi poÄelo snimanje po tajmeru,TV je prebaÄen na kanal za snimanje!\n" + +# +#, fuzzy +msgid "In progress" +msgstr "U toku" + +msgid "Inactivity Sleeptimer" +msgstr "" + +msgid "Include AIT in http streams" +msgstr "" + +msgid "Include ECM in http streams" +msgstr "" + +msgid "Include EIT in http streams" +msgstr "" + +msgid "Incorrect type service for PiP!" +msgstr "" + +# +msgid "Increased voltage" +msgstr "Povećani napon" + +# +msgid "Index" +msgstr "Indeks" + +msgid "Index allocated:" +msgstr "" + +# +msgid "Info" +msgstr "Info" + +# +#, fuzzy +msgid "Info bar" +msgstr "Info traka" + +# +#, fuzzy +msgid "Info bar timeout" +msgstr "Vreme trajanja info trake" + +msgid "Infobar frontend data source" +msgstr "" + +# +msgid "Information" +msgstr "Informacije" + +# +msgid "Init" +msgstr "Init" + +#, fuzzy +msgid "Initial fast forward speed" +msgstr "PoÄetna brzina premotavanja napred" + +# +msgid "Initial location in new timers" +msgstr "PoÄetna lokacija u novim tajmerima." + +msgid "Initial lock ratio" +msgstr "" + +#, fuzzy +msgid "Initial rewind speed" +msgstr "PoÄetna brzina premotavanja nazad" + +msgid "Initial signal quality" +msgstr "" + +msgid "Initial signal quality:" +msgstr "" + +# +msgid "Initialization" +msgstr "Inicijalizacija" + +# +msgid "Initialize" +msgstr "Inicijaliziraj" + +msgid "Initializing storage device..." +msgstr "" + +# +msgid "Input" +msgstr "Ulaz " + +msgid "Input device setup" +msgstr "PodeÅ¡avanje ulaznog ureÄ‘aja " + +msgid "Input devices" +msgstr "Ulazni ureÄ‘aji" + +# +msgid "Install" +msgstr "Instalisati" + +# +msgid "Install a new image with a USB stick" +msgstr "Instalisati novi imidž sa USB stika" + +# +msgid "Install a new image with your web browser" +msgstr "Instalisati novi imidž vaÅ¡im web pretraživaÄem" + +# +#, fuzzy +msgid "Install channel list" +msgstr "sledeći kanal u istoriji" + +msgid "Install extensions" +msgstr "" + +# +msgid "Install extensions." +msgstr "Instaliraj proÅ¡irenja." + +# +msgid "Install local extension" +msgstr "Instaliraj lokalno proÅ¡irenje" + +msgid "Install picons on" +msgstr "" + +# +#, fuzzy +msgid "Install softcam" +msgstr "Instaliram softver..." + +# +#, fuzzy +msgid "Installation has completed." +msgstr "Instalacija zavrÅ¡ena." + +# +#, fuzzy +msgid "Installation or removal has completed." +msgstr "Instalacija ili uklanjanje zavrÅ¡eno." + +# +msgid "Installing" +msgstr "Instaliram" + +# +#, fuzzy +msgid "Installing software..." +msgstr "Instaliram softver..." + +# +#, fuzzy +msgid "Instant recording location" +msgstr "Lokacija instant snimanja" + +# +#, fuzzy +msgid "Instant recording..." +msgstr "Trenutno snimanje..." + +# +msgid "Interface: " +msgstr "Iinterfejs:" + +# +msgid "Intermediate" +msgstr "Srednje" + +# +#, fuzzy +msgid "Internal flash" +msgstr "Interni fleÅ¡" + +msgid "Internal hdd only" +msgstr "" + +msgid "Interval between keys when repeating:" +msgstr "" + +# +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Izabran je nevažeÄi direktorijum: %s" + +# +#, fuzzy +msgid "Invalid location" +msgstr "Nevažeća lokacija" + +msgid "Invalid transponder data" +msgstr "" + +# +msgid "Inversion" +msgstr "Inverzija" + +# +msgid "Invert" +msgstr "Invertni" + +# +msgid "Ipkg" +msgstr "Ipkg" + +#, fuzzy +msgid "Is this setting ok?" +msgstr "Koristi ove postavke?" + +# +#, fuzzy +msgid "Is this video mode ok?" +msgstr "Da li je ovaj video mod OK?" + +# +msgid "Italian" +msgstr "Italijanski" + +msgid "Items per page " +msgstr "" + +msgid "Items per page for list screen" +msgstr "" + +# +#, fuzzy +msgid "Job overview" +msgstr "Pregled poslova" + +msgid "Jump to beginning of list" +msgstr "" + +# +#, fuzzy +msgid "Jump to end of list" +msgstr "skoÄi na kraj liste" + +# +#, fuzzy +msgid "Jump to next marked position" +msgstr "skoÄi do sledeće oznaÄene pozicije" + +# +#, fuzzy +msgid "Jump to previous marked position" +msgstr "skoÄi do predhodne oznaÄene pozicije" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +#, fuzzy +msgid "Just scale" +msgstr "Samo razmeri" + +msgid "Keep service" +msgstr "" + +# +#, fuzzy +msgid "Kernel version: " +msgstr "Nova verzija:" + +# +msgid "Keyboard" +msgstr "Tastatura" + +# +#, fuzzy +msgid "Keyboard map" +msgstr "Mapa tastature" + +# +#, fuzzy +msgid "Keyboard setup" +msgstr "Postavke tastature" + +# +#, fuzzy +msgid "LAN adapter" +msgstr "LAN adapter" + +msgid "LAN connection" +msgstr "LAN veza" + +# +msgid "LNB" +msgstr "LNB" + +# +msgid "Language" +msgstr "Jezik" + +# +msgid "Language selection" +msgstr "Izbor jezika" + +# +msgid "Last config" +msgstr "Zadnji konfig" + +# +msgid "Last speed" +msgstr "Poslednja brzina" + +msgid "Last upgrade: " +msgstr "" + +msgid "Latest Commits" +msgstr "" + +# +msgid "Latitude" +msgstr "Geografska Å¡irina" + +# +msgid "Latvian" +msgstr "Letonski" + +# +#, fuzzy +msgid "Leave DVD player?" +msgstr "Napustiti DVD plejer" + +# +msgid "Left" +msgstr "Levo" + +msgid "Left from servicename" +msgstr "" + +msgid "Leisure hobbies" +msgstr "" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Letterbox" + +msgid "Letterbox zoom" +msgstr "" + +# +#, fuzzy +msgid "Limit character set for recording filenames" +msgstr "OgraniÄeni znakovi za imena snimljenih datoteka" + +# +msgid "Limit east" +msgstr "IstoÄni limit" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "" + +# +msgid "Limit west" +msgstr "Zapadni limit" + +msgid "Limits cancelled" +msgstr "" + +msgid "Limits enabled" +msgstr "" + +# +msgid "Limits off" +msgstr "IskljuÄi limite" + +# +msgid "Limits on" +msgstr "Limite na" + +# +#, fuzzy +msgid "Link quality:" +msgstr "Kvalitet linka:" + +# +msgid "Link:" +msgstr "Link:" + +# +msgid "Linked titles with a DVD menu" +msgstr "Vezani naslovi sa DVD meniem" + +# +#, fuzzy +msgid "List EPG functions..." +msgstr "lista EPG pregleda..." + +msgid "List available networks" +msgstr "" + +msgid "List mode" +msgstr "" + +# +#, fuzzy +msgid "List of storage devices" +msgstr "Lista ureÄ‘aja za odlaganje" + +msgid "List type" +msgstr "" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +# +#, fuzzy +msgid "Listen to the radio..." +msgstr "sluÅ¡aj radio..." + +msgid "Lists reloaded!" +msgstr "" + +# +msgid "Lithuanian" +msgstr "Litvanski" + +# +msgid "Load" +msgstr "Ubaciti" + +msgid "Load Length of Movies in Movielist" +msgstr "" + +# +#, fuzzy +msgid "Load length of movies in movie list" +msgstr "Ubaciti dužinu filma u listi filmova" + +# +#, fuzzy +msgid "Load playlist" +msgstr "uÄitaj plejlistu" + +# +#, fuzzy +msgid "Local network" +msgstr "Lokalna mreža" + +# +msgid "Location" +msgstr "Lokacija" + +# +msgid "Location for instant recordings" +msgstr "Lokacija za instant snimanja" + +msgid "Lock ratio" +msgstr "" + +# +msgid "Lock:" +msgstr "ZakljuÄaj:" + +# +msgid "Log results to harddisk" +msgstr "Rezultati izveÅ¡taja na hard disk" + +msgid "Long filenames" +msgstr "DugaÄka imena datoteka" + +# +#, fuzzy +msgid "Long key press" +msgstr "Dugi pritisak tipke" + +# +msgid "Longitude" +msgstr "Geografska dužina" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "" + +# +#, fuzzy +msgid "MMC card" +msgstr "MMC Kartica" + +# +msgid "MORE" +msgstr "VIÅ E" + +# +msgid "Main menu" +msgstr "Glavni meni" + +msgid "Maintain old EPG data for" +msgstr "" + +# +msgid "Make this mark an 'in' point" +msgstr "Napravi ovu oznaku kao 'ulaznu' taÄku" + +# +msgid "Make this mark an 'out' point" +msgstr "Napravi ovu oznaku kao 'izlaznu' taÄku" + +# +msgid "Make this mark just a mark" +msgstr "Napravi ovu oznaku samo kao oznaku" + +# +msgid "Manage extensions" +msgstr "Rukuj proÅ¡irenjima" + +# +msgid "Manage your receiver's software" +msgstr "Upravljanje softverom vaÅ¡eg prijemnika" + +msgid "Manual" +msgstr "" + +# +msgid "Manual Scan" +msgstr "RuÄno skeniranje" + +msgid "Manual configuration" +msgstr "" + +# +#, fuzzy +msgid "Manual scan" +msgstr "RuÄno skeniranje" + +# +msgid "Manual transponder" +msgstr "RuÄno uneseni transponder" + +# +msgid "Manufacturer" +msgstr "ProizvoÄ‘aÄ" + +# +#, fuzzy +msgid "Margin after recording (minutes)" +msgstr "Margina pre snimanja (minuti)" + +# +#, fuzzy +msgid "Margin before recording (minutes)" +msgstr "Margina pre snimanja (minuti)" + +msgid "Max memory positions" +msgstr "" + +# +#, fuzzy +msgid "Max. bitrate: " +msgstr "Maks. Bit rata:" + +# +msgid "Media player" +msgstr "Medija plejer" + +# +#, fuzzy +msgid "Media scanner" +msgstr "Medija plejer" + +# +msgid "Medium is not a writeable DVD!" +msgstr "Medij nije upisivi DVD!" + +# +msgid "Medium is not empty!" +msgstr "Medij nije prazan!" + +msgid "Memory" +msgstr "" + +msgid "Memory index" +msgstr "" + +# +msgid "Menu" +msgstr "Meni" + +# +msgid "Message" +msgstr "Poruka" + +# +msgid "Message..." +msgstr "Poruka..." + +#, python-format +msgid "Minimum age %d years" +msgstr "" + +#, fuzzy +msgid "Minimum send interval" +msgstr "ZaÅ¡titni interval" + +msgid "Missing " +msgstr "" + +# +#, fuzzy +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "NaÄin" + +# +#, fuzzy +msgctxt "Video output mode" +msgid "Mode" +msgstr "NaÄin" + +# +msgid "Model: " +msgstr "Model:" + +# +msgid "Modulation" +msgstr "Modulacija" + +# +msgid "Modulator" +msgstr "Modulator" + +# +msgid "Mon" +msgstr "Pon" + +# +msgid "Mon-Fri" +msgstr "Pon-Pet" + +# +msgid "Monday" +msgstr "Ponedeljak" + +# +msgid "Mosquito noise reduction" +msgstr "Moskito smanjenje Å¡uma" + +msgid "Mount" +msgstr "" + +msgid "Move" +msgstr "" + +# +#, fuzzy +msgid "Move PiP to main picture" +msgstr "premesti SuS na glavnu sliku" + +# +msgid "Move Picture in Picture" +msgstr "Pomerite sliku u slici" + +# +msgid "Move east" +msgstr "Pokreći na istok" + +msgid "Move to other directory" +msgstr "" + +msgid "Move to position X" +msgstr "" + +# +msgid "Move west" +msgstr "Pokreći na zapad" + +msgid "Moved to position 0" +msgstr "" + +msgid "Moved to position at index" +msgstr "" + +msgid "Movement" +msgstr "" + +msgid "Movie List Configuration" +msgstr "" + +msgid "Movie Selection" +msgstr "" + +# +#, fuzzy +msgid "Movie list configuration" +msgstr "Konfiguracija tjunera" + +# +msgid "Movie location" +msgstr "Lokacija filmova" + +# +#, fuzzy +msgid "Movie selection" +msgstr "Lokacija filmova" + +msgid "Movie/Drama" +msgstr "" + +# +msgid "Movielist menu" +msgstr "Meni liste filmova" + +msgid "Moving" +msgstr "" + +msgid "Moving east ..." +msgstr "" + +msgid "Moving to position" +msgstr "" + +msgid "Moving west ..." +msgstr "" + +# +msgid "Multi EPG" +msgstr "Multi EPG" + +msgid "Multi-EPG bouquet selection" +msgstr "Multi EPG izbor buketa" + +# +msgid "Multimedia" +msgstr "Multimedija" + +# +msgid "Multiple service support" +msgstr "PodrÅ¡ka za viÅ¡estruke kanale" + +msgid "Multiplex" +msgstr "Multipleks" + +# +msgid "Multisat" +msgstr "Multisat" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "" + +# +msgid "Mute" +msgstr "IskljuÄi zvuk" + +# +msgid "N/A" +msgstr "N/A" + +# +msgid "NEXT" +msgstr "SLEDEĆE" + +# +#, fuzzy +msgid "NFI image flashing" +msgstr "NFI imidž fleÅ¡ovanje" + +# +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "FleÅ¡ovanje NFI imidža zavrÅ¡eno.Pritisni žuto za novo podizanje" + +msgid "NIM" +msgstr "NIM" + +# +msgid "NOW" +msgstr "SADA" + +# +msgid "NTSC" +msgstr "NTSC" + +# +msgid "Name" +msgstr "Ime" + +# +msgid "Nameserver" +msgstr "Nejmserver" + +# +#, python-format +msgid "Nameserver %d" +msgstr "Nejmserver %d" + +# +msgid "Nameserver settings" +msgstr "Postavke nejmservera" + +# +#, fuzzy +msgid "Nameserver setup" +msgstr "Postavke nejmservera" + +msgid "Namespace" +msgstr "Prostor za ime" + +# +msgid "Netmask" +msgstr "Mrežna maska" + +# +msgid "Network" +msgstr "Mreža" + +msgid "Network ID" +msgstr "" + +# +#, fuzzy +msgid "Network configuration..." +msgstr "Mrežna konfiguracija..." + +# +#, fuzzy +msgid "Network mount" +msgstr "Montiranje mreže" + +# +#, fuzzy, python-format +msgid "Network mount %s" +msgstr "Montiranje mreže" + +#, fuzzy +msgid "Network name (SSID)" +msgstr "Test mreže:" + +# +msgid "Network scan" +msgstr "Pretraga mreže" + +# +msgid "Network setup" +msgstr "Mrežne postavke " + +# +msgid "Network test" +msgstr "Test mreže" + +# +msgid "Network test..." +msgstr "Test mreže..." + +msgid "Network test: " +msgstr "Test mreže:" + +# +#, fuzzy +msgid "Network wizard" +msgstr "Mrežni Äarobnjak" + +# +msgid "Network:" +msgstr "Mreža:" + +# +msgid "New" +msgstr "Novo" + +msgid "New PIN" +msgstr "Novi PIN" + +# +msgid "New version:" +msgstr "Nova verzija:" + +msgid "News Current Affairs" +msgstr "" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "" + +# +msgid "No" +msgstr "Ne" + +# +msgid "No (supported) DVDROM found!" +msgstr "Nije pronaÄ‘en (podržan) DVDROM!" + +# +msgid "No Connection" +msgstr "Nema veze" + +# +msgid "No HDD found or HDD not initialized!" +msgstr "Disk nije pronaÄ‘en ili nije inicijaliziran!" + +# +msgid "No backup needed" +msgstr "Sigurnosna kopija nije potrebna" + +msgid "No cable tuner found!" +msgstr "" + +# +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Nema podataka na transponderu!\n" +"(Isteklo vreme Äitanja PAT)" + +msgid "No delay" +msgstr "" + +# +msgid "No description available." +msgstr "Opis nije dostupan." + +# +msgid "No details for this image file" +msgstr "Nema detalja za ovu imidž datoteku" + +# +msgid "No displayable files on this medium found!" +msgstr "Nisu pronaÄ‘ene vidljive datoteke na ovom mediju!" + +# +msgid "No event info found, recording indefinitely." +msgstr "Informacije o dogaÄ‘aju nisu pronaÄ‘ene, snimanje beskrajno." + +# +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "JoÅ¡ uvek nije moguće brzo premotavanje.. ali možeÅ¡ koristiti num. tipke za skok napred/nazad!" + +msgid "No free index available" +msgstr "" + +# +msgid "No free tuner!" +msgstr "Nema slobodnog tjunera!" + +# +msgid "No network connection available." +msgstr "Nijedna mrežna veza nije dostupna." + +# +msgid "No networks found" +msgstr "Nijedna mreža nije naÄ‘ena" + +msgid "No new plugins found" +msgstr "" + +# +msgid "No positioner capable frontend found." +msgstr "Nijedan sposoban Äeoni pozicioner nije pronaÄ‘en." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "" + +# +#, fuzzy +msgid "No services/providers selected" +msgstr "nijedni kanali/provajderi nisu izabrani" + +# +#, fuzzy +msgid "No standby" +msgstr "ne stanje pripravnosti" + +msgid "No suitable sat tuner found!" +msgstr "" + +# +msgid "No tags are set on these movies." +msgstr "Nema postavljenih oznaka na ovim filmovima." + +# +#, fuzzy +msgid "No timeout" +msgstr "nema vremenskog ograniÄenja" + +# +msgid "No to all" +msgstr "Ne za sve" + +msgid "No transparency" +msgstr "" + +# +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "Niedan tjuner nije konfigurisan za rad s DiSEqC pozicionerom!" + +# +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Nijedan tjuner nije ukljuÄen!\n" +"Molim podesite postavke tjunera pre nego poÄnete pretraživanje kanala." + +# +#, fuzzy +msgid "No updates available" +msgstr "ažuriranja dostupna." + +msgid "No updates available. Please try again later." +msgstr "" + +# +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Ispravan PIN za kanal nije pronaÄ‘en!\n" +"Želite li sada promeniti PIN kanala?\n" +"Ukoliko kažete 'Ne' ovde,kanali ostaju nezaÅ¡tićeni." + +# +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Ispravan PIN za 'Postavke' nije pronaÄ‘en!\n" +"Želite li promeniti PIN sada?\n" +"Ukoliko kažete 'Ne' ovde, postavke ureÄ‘aja ostaju nezaÅ¡tićene!" + +msgid "No wireless networks found! Searching..." +msgstr "" + +# +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"Nije pronaÄ‘en lokalni mrežni adapter u radu.\n" +"Molimo proverite da li ste ukljuÄili mrežni kabl i da li je mreža ispravno konfigurisana." + +# +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"Nije pronaÄ‘en adapter za bežiÄnu mrežu u radu.\n" +"Molimo proverite da ste prikaÄili kompatibilan WLAN ureÄ‘aj i da je mreža ispravno konfigurisana." + +# +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"Nije pronaÄ‘en interfejs za bežiÄnu mrežu.\n" +"Molimo proverite da li ste prikljuÄili kompatibilan WLAN ureÄ‘aj ili omogućili vaÅ¡ lokalni mrežni interfejs." + +# +msgid "No, but restart from begin" +msgstr "Ne, ali restartuj od poÄetka" + +# +msgid "No, do nothing." +msgstr "Ne, niÅ¡ta ne Äini " + +msgid "No, just start my receiver" +msgstr "" + +msgid "No, never" +msgstr "ne,nikad" + +# +msgid "None" +msgstr "Nijedan" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Nelinearno" + +msgid "Normal mode" +msgstr "" + +# +msgid "North" +msgstr "Sever" + +# +msgid "Norwegian" +msgstr "NorveÅ¡ki" + +msgid "Not associated" +msgstr "" + +msgid "Not configured" +msgstr "" + +# +#, fuzzy, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Nedovoljno prostora na disku. Molimo oslobodite neÅ¡to prostora i probajte ponovo. (%d MB potrebno,%d MB omogućeno)" + +msgid "Nothing connected" +msgstr "" + +# +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"NiÅ¡ta za skeniranje!\n" +"Molim podesite postavke tjunera pre poÄetka skeniranja kanala." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "" + +# +#, fuzzy +msgid "Now playing" +msgstr "Trenutno pokrenuto" + +# +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Sada koristite postavke kontrasta,da pojaÄate pozadinsko svetlo najviÅ¡e moguće,ali budite sigurni da joÅ¡ uvek možete videti razliku izmeÄ‘u dva najsvetlija nivoa senki.Ako ste ovo uÄinili,pritisnite OK." + +# +msgid "OK" +msgstr "OK" + +# +msgid "OK, guide me through the upgrade process" +msgstr "OK, vodi me kroz postupak nadogradnje" + +msgid "ONID" +msgstr "ONID" + +msgid "OSD name request" +msgstr "" + +# +#, fuzzy +msgid "OSD settings" +msgstr "Postavke OSD" + +msgid "OSD transparency" +msgstr "" + +# +msgid "Off" +msgstr "IskljuÄi" + +msgid "Offline decode delay (ms)" +msgstr "" + +# +# +msgid "Ok" +msgstr "Ok" + +# +msgid "On" +msgstr "UkljuÄeno" + +msgid "On end of movie" +msgstr "" + +msgid "On end of movie (as menu)" +msgstr "" + +# +msgid "One" +msgstr "Jedan" + +# +msgid "Only extensions." +msgstr "Samo proÅ¡irenja:" + +# +#, fuzzy +msgid "Only free scan" +msgstr "Samo slobodno traženje" + +# +#, fuzzy +msgid "Open service list" +msgstr "otvori listu kanala" + +# +#, fuzzy +msgid "Open the movie list" +msgstr "Vratite se na listu filmova" + +msgid "Orbital position" +msgstr "Orbitalna pozicija" + +msgid "Original" +msgstr "" + +msgid "Other" +msgstr "" + +msgid "Output" +msgstr "" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "PrepiÅ¡i konfiguracione datoteke za vreme nadograÄ‘ivanja softvera?" + +#, fuzzy +msgid "Overwrite configuration files?" +msgstr "PrepiÅ¡i konfiguracione datoteke?" + +# +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "PCR PID" + +# +msgid "PIDs" +msgstr "PIDs" + +# +#, fuzzy +msgid "PIN code needed" +msgstr "Pin kod je potreban" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "PMT PID" + +# +msgid "Package list update" +msgstr "Nadogradnja liste paketa" + +# +msgid "Packet management" +msgstr "Rukovanje paketima" + +# +msgid "Packet manager" +msgstr "Menadžer paketa" + +# +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +#, fuzzy +msgid "Pan&scan" +msgstr "Pan&Scan" + +# +#, fuzzy +msgid "Parent directory" +msgstr "Polazni direktorijum" + +# +msgid "Parental control" +msgstr "Roditeljska zaÅ¡tita" + +# +#, fuzzy +msgid "Parental control services editor" +msgstr "Urednik za roditeljsku zaÅ¡titu kanala" + +# +msgid "Parental control setup" +msgstr "Postavke roditeljske zaÅ¡tite" + +# +msgid "Parental control type" +msgstr "Tip roditeljske zaÅ¡tite" + +# +msgid "Password" +msgstr "Lozinka" + +# +#, fuzzy +msgid "Pause" +msgstr "pauza" + +# +msgid "Pause movie at end" +msgstr "Pauziraj film na kraju" + +# +#, fuzzy +msgid "Pause playback" +msgstr "Nastavite reprodukciju" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "" + +# +#, fuzzy +msgid "Percentage right" +msgstr "Kružna desna" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "" + +msgid "Permanently remove all deleted items" +msgstr "" + +msgid "Persian" +msgstr "Persijski" + +# +msgid "Phone number" +msgstr "Telefonski broj" + +# +#, fuzzy +msgid "PiP setup" +msgstr "SuS postavke" + +msgid "Picon" +msgstr "" + +msgid "Picon and service name" +msgstr "" + +# +#, fuzzy +msgid "Picture player" +msgstr "PregledaÄ slika" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Pillarbox" + +# +msgid "Pilot" +msgstr "Pilot" + +# +msgid "Play" +msgstr "Reprodukuj" + +# +msgid "Play DVD" +msgstr "Reprodukuj DVD" + +msgid "Play audio in background" +msgstr "" + +# +#, fuzzy +msgid "Play audio-CD..." +msgstr "Reprodukuj audio CD" + +msgid "Play back media files" +msgstr "" + +# +#, fuzzy +msgid "Play entry" +msgstr "reprodukuj unos" + +# +#, fuzzy +msgid "Play from next mark or playlist entry" +msgstr "Reprodukuj od sledeće oznake ili naslova sa liste za reprodukciju" + +# +#, fuzzy +msgid "Play from previous mark or playlist entry" +msgstr "Reprodukuj od prethodne oznake ili naslova sa liste za reprodukciju" + +# +#, fuzzy +msgid "Play music..." +msgstr "Reprodukuj muziku" + +msgid "Play next" +msgstr "" + +msgid "Play next (return to movie list)" +msgstr "" + +msgid "Play next (return to previous service)" +msgstr "" + +msgid "Play previous" +msgstr "" + +# +msgid "Play recorded movies..." +msgstr "Pokreni snimljene filmove..." + +# +msgid "Please add titles to the compilation." +msgstr "Molim,dodaj naziv kompilaciji." + +# +msgid "Please change recording endtime" +msgstr "Molim promenite zavrÅ¡no vreme snimanja" + +# +msgid "Please check your network settings!" +msgstr "Molim proverite vaÅ¡e mrežne postavke" + +# +msgid "Please choose an extension..." +msgstr "Molim odaberite proÅ¡irenje..." + +# +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Molim konfiguriÅ¡i ili verifikuj svoje nejmservere popunjavajući tražene vrednosti.\n" +"Kad si spreman pritisni OK da nastaviÅ¡." + +# +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Molim konfiguriÅ¡i svoju internet vezu popunjavajući tražene vrednosti.\n" +"Kad si spreman pritisni OK da nastaviÅ¡." + +msgid "Please connect your receiver to the internet" +msgstr "" + +# +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Molim ne menjate vrednosti ukoliko ne znate Å¡ta radite!" + +# +msgid "Please enter a name for the new bouquet" +msgstr "Molim unesite ime za novi buket " + +# +msgid "Please enter a name for the new marker" +msgstr "Molim unesite ime za novu oznaku" + +# +msgid "Please enter a new filename" +msgstr "Molim unesite novo ime datoteke" + +# +msgid "Please enter filename (empty = use current date)" +msgstr "Molim unesite ime datoteke (prazno = koristi danaÅ¡nji datum)" + +# +msgid "Please enter name of the new directory" +msgstr "Molimo unesite ime novog direktorijuma" + +msgid "Please enter new name:" +msgstr "" + +# +msgid "Please enter the correct pin code" +msgstr "Molim unesite ispravan pin kod" + +msgid "Please enter the old PIN code" +msgstr "Molim unesite stari PIN kod" + +# +msgid "Please follow the instructions on the TV" +msgstr "Molim,pratite uputstva na TV-u" + +# +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "Molim primetite da prethodno odabrani medij ne može biti dostupan i zbog toga se koristi standardni direktorijum." + +# +msgid "Please press OK to continue." +msgstr "Molim pritisnite OK za nastavak" + +msgid "Please select a default EPG type..." +msgstr "" + +# +msgid "Please select a playlist to delete..." +msgstr "Molim odaberite plejlistu za brisanje..." + +# +msgid "Please select a playlist..." +msgstr "Molim odaberite plejlistu..." + +# +#, fuzzy +msgid "Please select a sub service..." +msgstr "Molim odaberite podkanal..." + +# +msgid "Please select a subservice to record..." +msgstr "Molim odaberite podkanal za snimanje..." + +# +msgid "Please select a subservice..." +msgstr "Molim odaberite podkanal..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "Molim izaberite NFI datoteku i pritisnite zeleno dugme da fleÅ¡ujete!" + +# +#, fuzzy +msgid "Please select medium to be scanned" +msgstr "Molim izaberite medij za traženje" + +# +msgid "Please select medium to use as backup location" +msgstr "Molim izaberite medij da se koristi kao lokacija za sigurnosnu kopiju" + +# +msgid "Please select tag to filter..." +msgstr "Molim izaberite oznaku za filter" + +# +msgid "Please select the movie path..." +msgstr "Molim izaberite putanju filma..." + +# +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Molim izaberi mrežni interfejs koji želiÅ¡ da koristiÅ¡ za svoju internet vezu.\n" +"\n" +"Molim pritisni OK da nastaviÅ¡." + +# +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Molim izaberi bežiÄnu mrežu na koju želiÅ¡ da se spojiÅ¡.\n" +"\n" +"Molim pritisni OK da nastaviÅ¡." + +# +#, fuzzy +msgid "Please set up tuner A" +msgstr "Molim podesite tuner B" + +# +msgid "Please set up tuner B" +msgstr "Molim podesite tuner B" + +# +msgid "Please set up tuner C" +msgstr "Molim podesite tuner C" + +# +msgid "Please set up tuner D" +msgstr "Molim podesite tuner D" + +# +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Molim koristite tipke sa strelicama za premeÅ¡tanje SuS prozora.\n" +"Pritisnite Bouquet +/- tipke za promenu veliÄine prozora.\n" +"Pritisnite OK za povratak u TV mod ili EXIT za prekid premeÅ¡tanja." + +# +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "Molim koristite UP i DOWN tipke da izaberete jezik.Posle toga pritisnite OK dugme." + +msgid "Please wait" +msgstr "" + +# +#, fuzzy +msgid "Please wait (downloading channel list)" +msgstr "Molim priÄekajte... UÄitavam listu..." + +# +#, fuzzy +msgid "Please wait (downloading softcam)" +msgstr "Molim priÄekajte... UÄitavam listu..." + +# +#, fuzzy +msgid "Please wait (updating packages)" +msgstr "molim priÄekajte, uÄitavam sliku..." + +# +msgid "Please wait for activation of your network configuration..." +msgstr "Molim saÄekajte za aktiviranje vaÅ¡e mrežne konfiguracije..." + +# +msgid "Please wait while scanning is in progress..." +msgstr "Molim saÄekajte dok je pretraživanje u toku..." + +# +msgid "Please wait while we configure your network..." +msgstr "Molim saÄekajte dok konfiguriÅ¡emo vaÅ¡u mrežu..." + +# +msgid "Please wait while we prepare your network interfaces..." +msgstr "Molim saÄekajte dok pripremimo vaÅ¡e mrežne interfejse..." + +# +msgid "Please wait while we test your network..." +msgstr "Molim saÄekajte dok testiramo vaÅ¡u mrežu..." + +# +msgid "Please wait while your network is restarting..." +msgstr "Molim saÄekajte dok se vaÅ¡a mreža ponovo startuje" + +# +msgid "Please wait..." +msgstr "Molim saÄekajte" + +# +msgid "Please wait... Loading list..." +msgstr "Molim priÄekajte... UÄitavam listu..." + +# +msgid "Plugin browser" +msgstr "PretraživaÄ dodataka" + +# +msgid "Plugin manager activity information" +msgstr "Info o aktivnosti menadžera dodataka" + +# +msgid "Plugin manager help" +msgstr "Menadžer dodataka,pomoć" + +# +msgid "Plugins" +msgstr "Dodaci" + +msgid "Polarisation" +msgstr "" + +msgid "Polarisation:" +msgstr "" + +# +msgid "Polarization" +msgstr "Polarizacija" + +# +msgid "Polish" +msgstr "Poljski" + +# +msgid "Port A" +msgstr "Port A" + +# +msgid "Port B" +msgstr "Port B" + +# +msgid "Port C" +msgstr "Port C" + +# +msgid "Port D" +msgstr "Port D" + +# +msgid "Portuguese" +msgstr "Portugalski" + +#, fuzzy +msgid "Position of completed timers in timerlist" +msgstr "Pozicija zavrÅ¡enog tajmera u listi tajmera" + +msgid "Position stored at index" +msgstr "" + +# +msgid "Positioner" +msgstr "Pozicioner" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "" + +# +msgid "Positioner setup" +msgstr "Postavke motora" + +# +msgid "Power threshold in mA" +msgstr "Granica snage u mA" + +# +msgid "Predefined transponder" +msgstr "Predefinisani transponder" + +msgid "Prefer AC3 track" +msgstr "" + +msgid "Prefer AC3+ track" +msgstr "" + +msgid "Prefer audio track stored by service" +msgstr "" + +msgid "Prefer graphical DVB subtitles" +msgstr "" + +msgid "Prefer subtitles for hearing impaired" +msgstr "" + +msgid "Prefer subtitles stored by service" +msgstr "" + +msgid "Preferred tuner" +msgstr "" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "Pripremi drugi USB stik za fleÅ¡ovanje imidža" + +# +msgid "Preparing... Please wait" +msgstr "Pripremam... Molim priÄekajte" + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "Pritisni INFO na svom daljinskom za dodatne informacije." + +msgid "Press MENU on your remote control for additional options." +msgstr "Pritisni MENI na svom daljinskom za dodatne opcije." + +# +msgid "Press OK on your remote control to continue." +msgstr "Pritisnite OK na daljinskom upravljaÄu da nastavite." + +# +msgid "Press OK to activate the selected skin." +msgstr "Pritisnite OK za aktiviranje izabrane maske." + +# +msgid "Press OK to activate the settings." +msgstr "Pritisnite OK za aktiviranje postavki." + +# +msgid "Press OK to edit the settings." +msgstr "Pritisnite OK da uredite postavke." + +# +#, python-format +msgid "Press OK to get further details for %s" +msgstr "Pritisnite OK da dobijete dodatne detalje za %s" + +# +msgid "Press OK to scan" +msgstr "Pritisnite OK za skeniranje" + +# +#, fuzzy +msgid "Press OK to select a provider." +msgstr "Pritisnite OK da izaberete provajdera." + +msgid "Press OK to select satellites" +msgstr "" + +# +msgid "Press OK to select/deselect a CAId." +msgstr "Pritisni OK da izabereÅ¡/odbaciÅ¡ CAId" + +# +msgid "Press OK to start the scan" +msgstr "Pritisnite OK za poÄetak skeniranja" + +msgid "Press OK to toggle the selection" +msgstr "" + +# +msgid "Press OK to toggle the selection." +msgstr "Pritisnite OK da prebacite izbor." + +# +msgid "Press yellow to set this interface as default interface." +msgstr "Pritisni žuto da postaviÅ¡ ovaj interfejs kao osnovni interfejs." + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "" + +# +msgid "Preview" +msgstr "Pregled" + +# +msgid "Preview menu" +msgstr "Pregled menia" + +msgid "Preview selected channel" +msgstr "" + +# +msgid "Primary DNS" +msgstr "Primarni DNS" + +# +msgid "Priority" +msgstr "Prioritet" + +# +msgid "Process" +msgstr "IzvoÄ‘enje" + +msgid "Progress" +msgstr "" + +msgid "Progress bar left" +msgstr "" + +msgid "Progress bar right" +msgstr "" + +# +msgid "Properties of current title" +msgstr "Svojstva tekućeg naziva" + +# +msgid "Protect services" +msgstr "ZaÅ¡titi kanale" + +# +msgid "Protect setup" +msgstr "ZaÅ¡titite postavke" + +# +msgid "Provider" +msgstr "Provajder" + +# +msgid "Provider to scan" +msgstr "Provajderi za skeniranje" + +# +msgid "Providers" +msgstr "Provajderi" + +msgid "Put TV in standby" +msgstr "" + +msgid "Put receiver in standby" +msgstr "" + +# +msgid "Python frontend for /tmp/mmi.socket" +msgstr "ÄŒeoni python za /tmp/mmi.socket" + +# +msgid "Quick" +msgstr "Brzo" + +# +#, fuzzy +msgid "Quick zap" +msgstr "Brzizap" + +# +msgid "RF output" +msgstr "RF Izlaz" + +# +msgid "RGB" +msgstr "RGB" + +# +msgid "Radio" +msgstr "Radio" + +# +#, fuzzy +msgid "Ram disk" +msgstr "Ram Disk" + +# +msgid "Random" +msgstr "SluÄajan" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "" + +msgid "Rating undefined" +msgstr "" + +# +msgid "Really close without saving settings?" +msgstr "Želite li stvarno zatvoriti bez Äuvanja postavki ?" + +# +msgid "Really delete done timers?" +msgstr "Želite li stvarno obrisati zavrÅ¡ene tajmere?" + +# +msgid "Really exit the subservices quickzap?" +msgstr "Želite li stvarno izaći iz brzog zapa podkanala?" + +# +msgid "Really reboot now?" +msgstr "Stvarno ponovo podići sada?" + +# +msgid "Really restart now?" +msgstr "Stvarno restartovati sada?" + +# +msgid "Really shutdown now?" +msgstr "Stvarno ugasiti sada?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "" + +# +msgid "Reboot" +msgstr "Podići" + +msgid "Rec" +msgstr "" + +# +#, fuzzy +msgid "Reception settings" +msgstr "Postavke prijema" + +msgid "Record" +msgstr "Snimanje " + +# +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "Vreme snimanja ograniÄeno zbog tajmer konflikta %s" + +# +msgid "Recorded files..." +msgstr "Snimljene datoteke..." + +# +msgid "Recording" +msgstr "Snimanje" + +msgid "Recording in progress" +msgstr "" + +# +msgid "Recording paths" +msgstr "Putanje snimanja" + +msgid "Recording type" +msgstr "" + +# +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "Snimanje u toku ili poÄinje za nekoliko sekundi!" + +# +msgid "Recordings" +msgstr "Snimanja" + +# +msgid "Recordings always have priority" +msgstr "Snimanje uvek ima prioritet" + +msgid "Red button..." +msgstr "" + +msgid "Reenter new PIN" +msgstr "Ponovo unesi novi PIN" + +# +#, fuzzy +msgid "Refresh rate" +msgstr "Brzina osvježavanja" + +# +msgid "Refresh rate selection." +msgstr "Izbor vremena osvežavanja" + +msgid "Regard deep standby as standby" +msgstr "" + +msgid "Relative" +msgstr "" + +# +msgid "Reload" +msgstr "Ponovo ubaciti" + +# +#, fuzzy +msgid "Reload black-/white lists" +msgstr "Ponovo uÄitaj Black-/Whitelists" + +msgid "Reloading bouquets and services..." +msgstr "" + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "Zapamti PIN kanala" + +msgid "Remember these settings for each folder" +msgstr "" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "" + +# +#, fuzzy +msgid "Remote control type" +msgstr "Tip roditeljske zaÅ¡tite" + +# +#, fuzzy +msgid "Removal has completed." +msgstr "Uklanjanje nije uspelo." + +# +msgid "Remove" +msgstr "Ukloniti" + +# +msgid "Remove a mark" +msgstr "ObriÅ¡i oznaku" + +# +#, fuzzy +msgid "Remove a nameserver entry" +msgstr "Uklonite unos nejmservera" + +# +#, fuzzy +msgid "Remove bookmark" +msgstr "uklonite oznaku" + +msgid "Remove completed timers after (days)" +msgstr "" + +# +msgid "Remove currently selected title" +msgstr "Ukloni trenutno odabrani titl" + +msgid "Remove items from trash can after (days)" +msgstr "" + +# +msgid "Remove plugins" +msgstr "ObriÅ¡i dodatke" + +# +msgid "Remove title" +msgstr "Ukloni titl" + +# +msgid "Removing" +msgstr "Uklanjanje" + +# +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Uklanjanje direktorijuma %s nije uspelo.(Možda nije prazan.)" + +# +#, fuzzy +msgid "Removing partition table" +msgstr "Ukloni titl" + +# +msgid "Rename" +msgstr "Preimenovati" + +msgid "Repeat" +msgstr "" + +# +#, fuzzy +msgid "Repeat type" +msgstr "Tip ponavljanja" + +# +msgid "Repeating event currently recording... What do you want to do?" +msgstr "Snimanje ponovljenog dogaÄ‘aja je u toku...Å ta želite da uÄinite?" + +# +msgid "Repeats" +msgstr "Ponavljanja" + +msgid "Require authentication for http streams" +msgstr "" + +# +msgid "Required medium type:" +msgstr "Potrebni tip medija:" + +msgid "Rereading partition table" +msgstr "" + +msgid "Reserved" +msgstr "" + +# +msgid "Reset" +msgstr "Resetujte" + +# +msgid "Reset and renumerate title names" +msgstr "Resetujte i prebrojte imena naslova" + +msgid "Reset playback position" +msgstr "" + +# +msgid "Reset video enhancement settings to system defaults?" +msgstr "Resetuj postavke video poboljÅ¡avanja na osnovne sistema?" + +# +msgid "Reset video enhancement settings to your last configuration?" +msgstr "Resetuj postavke video poboljÅ¡avanja na tvoju zadnju konfiguraciju?" + +# +msgid "Resolution" +msgstr "Rezolucija" + +# +msgid "Restart" +msgstr "Restart" + +# +msgid "Restart GUI now?" +msgstr "Restart GUI sada?" + +msgid "Restart enigma" +msgstr "" + +# +msgid "Restart network" +msgstr "Restartujte mrežu" + +# +msgid "Restart test" +msgstr "Ponovite test" + +# +msgid "Restart your network connection and interfaces.\n" +msgstr "Restartujte vaÅ¡u mrežnu vezu i interfejse.\n" + +# +msgid "Restore" +msgstr "Vrati " + +# +msgid "Restore backups" +msgstr "Vrati bekape" + +# +msgid "Restore is running..." +msgstr "Vraćanje u toku..." + +# +msgid "Restore system settings" +msgstr "Vratite sistemske postavke" + +# +#, fuzzy +msgid "Restoring..." +msgstr "snimanje..." + +# +msgid "Resume from last position" +msgstr "Nastavite sa poslednje pozicije" + +# +#, python-format +msgid "Resume position at %s" +msgstr "Nastavi poziciju od %s" + +# +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Nastavite reprodukciju" + +# +msgid "Return to movie list" +msgstr "Vratite se na listu filmova" + +# +msgid "Return to previous service" +msgstr "Vratite se na prethodni kanal" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +# +msgid "Rewind speeds" +msgstr "Brzine premotavanja nazad" + +msgid "Rewrap teletext subtitles" +msgstr "" + +# +msgid "Right" +msgstr "Desno" + +msgid "Right from servicename" +msgstr "" + +msgid "Roll-off" +msgstr "Kotrljanje" + +msgid "Romanian" +msgstr "" + +msgid "Root directory" +msgstr "" + +msgid "Rotor step position:" +msgstr "" + +# +msgid "Rotor turning speed" +msgstr "Brzina okretanja rotora" + +msgid "Round start time on" +msgstr "" + +# +msgid "Russian" +msgstr "Ruski" + +# +msgid "S-Video" +msgstr "S-Video" + +msgid "SID" +msgstr "SID" + +# +msgid "SINGLE LAYER DVD" +msgstr "JEDNOSLOJNI DVD" + +# +msgid "SNR" +msgstr "SNR" + +# +msgid "SNR:" +msgstr "SNR:" + +# +msgid "SSID:" +msgstr "SSID:" + +msgid "Same resolution as skin" +msgstr "" + +# +msgid "Sat" +msgstr "Sat" + +# +msgid "Satellite" +msgstr "Satelit" + +# +#, fuzzy +msgid "Satellite dish setup" +msgstr "Postavke satelitske opreme" + +# +msgid "Satellite equipment" +msgstr "Satelitska oprema" + +# +#, fuzzy +msgid "Satellite equipment setup" +msgstr "Postavke satelitske opreme" + +msgid "Satellite longitude:" +msgstr "" + +# +msgid "Satellites" +msgstr "Sateliti" + +# +msgid "Satfinder" +msgstr "Sat tražitelj" + +# +msgid "Sats" +msgstr "Sats" + +# +msgid "Saturation" +msgstr "Zasićenje" + +# +msgid "Saturday" +msgstr "Subota" + +# +msgid "Save" +msgstr "SaÄuvajte" + +# +#, fuzzy +msgid "Save playlist" +msgstr "saÄuvaj plejlistu" + +msgid "Save timeshift file" +msgstr "" + +msgid "Save timeshift file in movie directory" +msgstr "" + +# +msgid "Scaler sharpness" +msgstr "BrojaÄ oÅ¡trine" + +# +#, fuzzy +msgid "Scaling mode" +msgstr "Mod skaliranja" + +msgid "Scan" +msgstr "" + +# +msgid "Scan " +msgstr "Skeniraj" + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, fuzzy, python-format +msgid "Scan %s" +msgstr "Skeniraj" + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, fuzzy, python-format +msgid "Scan %s band" +msgstr "Skeniraj band EU MID" + +# +msgid "Scan additional SR" +msgstr "Skeniraj dodatne SR" + +# +#, fuzzy +msgid "Scan files..." +msgstr "Pretraži datoteke" + +# +#, fuzzy +msgid "Scan wireless networks" +msgstr "Pretražite bežiÄnu mrežu" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "Pretraži svoju mrežu za bežiÄne pristupne taÄke i poveži se s njima koristeći svoj izabrani bežiÄni ureÄ‘aj.\n" + +#, python-format +msgid "Scanning %s..." +msgstr "" + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +msgid "Scanning failed!" +msgstr "" + +msgid "Scanning..." +msgstr "" + +# +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "Pretražuje osnovne lamedbs razvrstane po satelitima sa povezanim antenskim pozicionerom" + +# +msgid "Search east" +msgstr "Pretraži istok" + +# +msgid "Search west" +msgstr "Pretraži zapad" + +msgid "Searching" +msgstr "" + +msgid "Searching east ..." +msgstr "" + +# +msgid "Searching for available updates. Please wait..." +msgstr "Traženje dostupnih ažuriranja.Molim saÄekajte..." + +# +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "Traženje novih instaliranih ili uklonjenih paketa.Molim saÄekajte..." + +msgid "Searching west ..." +msgstr "" + +msgid "Second cable of motorized LNB" +msgstr "" + +# +msgid "Secondary DNS" +msgstr "Sekundarni DNS" + +# +msgid "Seek" +msgstr "Traži" + +#, fuzzy +msgid "Seek backward" +msgstr "preskoÄi unazad" + +# +#, fuzzy +msgid "Seek backward (enter time)" +msgstr "preskoÄi unazad (unesi vreme)" + +# +#, fuzzy +msgid "Seek forward" +msgstr "preskoÄi unapred" + +# +#, fuzzy +msgid "Seek forward (enter time)" +msgstr "preskoÄi napred (unesi vreme)" + +# +msgid "Select" +msgstr "Izaberi" + +# +#, fuzzy +msgid "Select CAId" +msgstr "Izaberite CAId" + +# +msgid "Select HDD" +msgstr "Odaberi hard disk" + +# +#, fuzzy +msgid "Select a bouquet" +msgstr "Odaberi film" + +# +msgid "Select a movie" +msgstr "Odaberi film" + +# +#, fuzzy +msgid "Select a network adapter" +msgstr "Odaberi mrežni adapter" + +# +#, fuzzy +msgid "Select a skin" +msgstr "Odaberi film" + +# +#, fuzzy +msgid "Select a tuner" +msgstr "Odaberi film" + +# +#, fuzzy +msgid "Select a wireless network" +msgstr "Izaberite bežiÄnu mrežu" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +#, fuzzy +msgid "Select an image to be downloaded" +msgstr "Izaberi imidž za skidanje" + +# +msgid "Select audio track" +msgstr "Odaberite zvuÄni zapis" + +# +#, fuzzy +msgid "Select backup files" +msgstr "Izaberite snimljene datoteke " + +# +#, fuzzy +msgid "Select backup location" +msgstr "Izaberite snimljenu lokaciju" + +# +msgid "Select channel to record from" +msgstr "Odaberite kanal za snimanje od" + +msgid "Select copy destination for:" +msgstr "" + +msgid "Select default EPG type..." +msgstr "" + +msgid "Select desired image from feed list" +msgstr "Izaberi željeni imidž sa fid liste" + +msgid "Select destination for:" +msgstr "" + +msgid "Select files for backup." +msgstr "Izaberi datoteke za bekap." + +# +msgid "Select files/folders to backup" +msgstr "Izaberi datoteke/fascikle za bekap" + +msgid "Select input device" +msgstr "Izaberi ulazni ureÄ‘aj" + +msgid "Select input device." +msgstr "Izaberi ulazni ureÄ‘aj." + +# +msgid "Select interface" +msgstr "Izaberite interfejs " + +# +#, fuzzy +msgid "Select location" +msgstr "Izaberi lokaciju" + +# +#, fuzzy +msgid "Select movie" +msgstr "Odaberi film" + +# +msgid "Select provider to add..." +msgstr "Izaberi provajdera za dodavanje" + +# +msgid "Select refresh rate" +msgstr "Izaberi vreme osvežavanja" + +msgid "Select satellites" +msgstr "" + +# +msgid "Select service to add..." +msgstr "Izaberi kanal za dodavanje..." + +msgid "Select sort method:" +msgstr "" + +# +#, fuzzy +msgid "Select target folder" +msgstr "Izaberite ciljnu fasciklu" + +# +#, fuzzy +msgid "Select the movie path" +msgstr "Izaberite putanju filma" + +# +#, fuzzy +msgid "Select upgrade source" +msgstr "Izaberi izvor nadodradnje za ureÄ‘ivanje." + +# +msgid "Select upgrade source to edit." +msgstr "Izaberi izvor nadodradnje za ureÄ‘ivanje." + +# +msgid "Select video input with up/down buttons" +msgstr "Izaberi video ulaz sa UP/DOWN tipkama" + +# +msgid "Select video mode" +msgstr "Izaberi video mod" + +# +msgid "Select wireless network" +msgstr "Izaberite bežiÄnu mrežu" + +msgid "Select your provider, and press OK to start the scan" +msgstr "" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +# +msgid "Send DiSEqC only on satellite change" +msgstr "Poslati DISEqC samo kod promene satelita" + +# +msgid "Separate titles with a main menu" +msgstr "Odvojite naslove sa glavnim meniem" + +# +msgid "Sequence repeat" +msgstr "Ponovi redosled" + +# +msgid "Serbian" +msgstr "Srpski" + +# +msgid "Service" +msgstr "Kanal" + +# +msgid "Service has been added to the favourites." +msgstr "Kanal je dodat u listu favorita." + +# +msgid "Service has been added to the selected bouquet." +msgstr "Kanal je dodat u odabrani buket." + +# +#, fuzzy +msgid "Service info" +msgstr "Info kanala" + +# +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Neispravan kanal!\n" +"(Isteklo Äitanje PMT)" + +# +#, fuzzy +msgid "Service name" +msgstr "Skeniranje Kanala" + +# +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Kanal nije pronaÄ‘en!\n" +"(SID nije pronaÄ‘en u PAT)" + +msgid "Service reference" +msgstr "Kanal referenca" + +# +msgid "Service scan" +msgstr "Skeniranje kanala" + +# +#, fuzzy +msgid "Service searching" +msgstr "Pretraživanje kanala" + +# +#, fuzzy +msgid "Service title mode" +msgstr "Izaberi video mod" + +# +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"Kanal nije dostupan!\n" +"Proverite konfiguraciju tjunera" + +# +msgid "Services" +msgstr "Kanali" + +msgid "Set default" +msgstr "" + +# +#, fuzzy +msgid "Set end time" +msgstr "Podesi zavrÅ¡no vreme" + +msgid "Set fixed" +msgstr "" + +msgid "Set fps for external subtitles" +msgstr "" + +# +msgid "Set interface as default Interface" +msgstr "Postavi interfejs kao osnovni interfejs" + +msgid "Set limits" +msgstr "" + +# +#, fuzzy +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "Pokaži napredak dogaÄ‘aja u izboru kanala" + +msgid "Set time window to 1 hour" +msgstr "" + +msgid "Set time window to 2 hours" +msgstr "" + +msgid "Set time window to 3 hours" +msgstr "" + +msgid "Set time window to 4 hours" +msgstr "" + +msgid "Set time window to 5 hours" +msgstr "" + +msgid "Set time window to 6 hours" +msgstr "" + +# +#, fuzzy +msgid "Set voltage and 22KHz" +msgstr "Podesi napon i 22Khz" + +# +msgid "Settings" +msgstr "Postavke" + +# +msgid "Setup" +msgstr "PodeÅ¡avanje" + +msgid "Setup menu" +msgstr "" + +# +#, fuzzy +msgid "Setup mode" +msgstr "Mod postavki" + +msgid "Setup your positioner" +msgstr "" + +# +#, fuzzy +msgid "Setup your satellite equipment" +msgstr "Satelitska oprema" + +# +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "Da li da USB stik Äarobnjak nastavi i programira imidž datoteku %s u fleÅ¡ memoriju?" + +# +msgid "Sharpness" +msgstr "OÅ¡trina" + +msgid "Short filenames" +msgstr "Kratka imena datoteka" + +msgid "Show EIT now/next in infobar" +msgstr "" + +# +#, fuzzy +msgid "Show EPG for current channel..." +msgstr "Prikaži info traku pri promeni dogaÄ‘aja" + +# +#, fuzzy +msgid "Show EPG..." +msgstr "prikaži EPG..." + +msgid "Show Games show" +msgstr "" + +msgid "Show SNR percentage instead of dB value" +msgstr "" + +msgid "Show VCR scart on main menu" +msgstr "" + +# +#, fuzzy +msgid "Show WLAN status" +msgstr "Prikaži status WLAN-a" + +msgid "Show animation while busy" +msgstr "" + +# +#, fuzzy +msgid "Show background in radio mode" +msgstr "Pozadinska slika" + +msgid "Show bouquet selection menu" +msgstr "" + +msgid "Show busy indicator when the system is busy." +msgstr "" + +msgid "Show channel numbers in channel selection" +msgstr "" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "" + +msgid "Show detailed event info" +msgstr "" + +# +#, fuzzy +msgid "Show event details" +msgstr "prikaži proÅ¡irene infor. " + +# +msgid "Show event-progress in channel selection" +msgstr "Pokaži napredak dogaÄ‘aja u izboru kanala" + +# +#, fuzzy +msgid "Show extended description" +msgstr "prikaži proÅ¡irene informacije" + +# +#, fuzzy +msgid "Show extensions..." +msgstr "gledaj ekstenzije..." + +msgid "Show icon for new/unseen items" +msgstr "" + +msgid "Show in extensions menu" +msgstr "" + +# +#, fuzzy +msgid "Show info" +msgstr "Prikaži info" + +# +#, fuzzy +msgid "Show info line" +msgstr "Pokaži Info liniju " + +# +msgid "Show infobar on channel change" +msgstr "Prikaži info traku na promeni kanala" + +# +msgid "Show infobar on event change" +msgstr "Prikaži info traku pri promeni dogaÄ‘aja" + +# +msgid "Show infobar on skip forward/backward" +msgstr "Prikaži info traku na preskakanju napred/nazad" + +msgid "Show latest commits on sourceforge" +msgstr "" + +# +#, fuzzy +msgid "Show message when recording starts" +msgstr "Pokaži poruku kad snimanje poÄne" + +# +#, fuzzy +msgid "Show movie lengths in movielist" +msgstr "Ubaciti dužinu filma u listi filmova" + +msgid "Show multi channel EPG" +msgstr "" + +msgid "Show picons in channel list" +msgstr "" + +# +msgid "Show positioner movement" +msgstr "Prikaži kretanje motora" + +msgid "Show screensaver" +msgstr "" + +msgid "Show second infobar" +msgstr "" + +msgid "Show service type icons" +msgstr "" + +# +msgid "Show services beginning with" +msgstr "Prikaži kanale koji poÄinju sa" + +# +#, fuzzy +msgid "Show shutdown menu" +msgstr "prikaži meni iskljuÄivanja" + +msgid "Show single service EPG" +msgstr "" + +msgid "Show status icons in Movielist" +msgstr "" + +msgid "Show status icons in movie list" +msgstr "" + +msgid "Show status icons in movielist" +msgstr "" + +# +#, fuzzy +msgid "Show tag menu" +msgstr "prikaži citat menia" + +# +msgid "Show the radio player..." +msgstr "Prikaži radio plejer ..." + +# +msgid "Show the tv player..." +msgstr "Prikaži tv plejer..." + +msgid "Show warning when timeshift is stopped" +msgstr "" + +# +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Prikaži stanje vaÅ¡e bežiÄne LAN veze.\n" + +# +#, fuzzy +msgid "Shuffle playlist" +msgstr "sam biraj iz plejliste" + +# +msgid "Shutdown" +msgstr "IskljuÄivanje" + +msgid "Shutdown when in Standby" +msgstr "" + +msgid "Side by side" +msgstr "" + +msgid "Signal OK, proceeding" +msgstr "" + +msgid "Signal quality" +msgstr "" + +# +#, fuzzy +msgid "Signal strength:" +msgstr "JaÄina signala:" + +# +msgid "Signal: " +msgstr "Signal: " + +# +msgid "Similar" +msgstr "SliÄno" + +# +msgid "Similar broadcasts:" +msgstr "SliÄne emisije:" + +# +msgid "Simple" +msgstr "Jednostavno" + +# +msgid "Simple titleset (compatibility for legacy players)" +msgstr "Jednostavne postavke naslova (kompatibilnost za legacy plejere)" + +# +msgid "Single" +msgstr "Jedan" + +# +msgid "Single EPG" +msgstr "Jedan EPG" + +# +msgid "Single satellite" +msgstr "Jedan satelit" + +# +#, fuzzy +msgid "Single step (GOP)" +msgstr "Korak po korak" + +# +msgid "Single transponder" +msgstr "Jedan Transponder" + +msgid "Site latitude" +msgstr "" + +msgid "Site longitude" +msgstr "" + +# +msgid "Skin" +msgstr "Maska" + +# +msgid "Skins" +msgstr "Maska" + +# +#, fuzzy +msgid "Skip empty services" +msgstr "ZaÅ¡titi kanale" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "" + +# +#, fuzzy +msgid "Sleep timer" +msgstr "Tajmer spavanja" + +msgid "SleepTimer Configuration" +msgstr "" + +msgid "Sleeptimer" +msgstr "" + +# +#, fuzzy +msgid "Slide picture in loop" +msgstr "Pomeraj sliku u okviru" + +# +#, fuzzy +msgid "Slide show interval (sec.)" +msgstr "Interval pokaz.prezentacije(sek.)" + +# +#, python-format +msgid "Slot %d" +msgstr "Otvor %d" + +msgid "Slovak" +msgstr "" + +# +msgid "Slovenian" +msgstr "SlovenaÄki" + +# +msgid "Slow" +msgstr "Sporo" + +# +#, fuzzy +msgid "Slow motion speeds" +msgstr "Brzine usporene reprodukcije" + +# +#, fuzzy +msgid "Small progress" +msgstr "U toku" + +msgid "Social/Political/Economics" +msgstr "" + +msgid "SoftCam / CI" +msgstr "" + +# +#, fuzzy +msgid "Softcam type" +msgstr "Softver" + +# +msgid "Software" +msgstr "Softver" + +# +msgid "Software management" +msgstr "UpravljaÄ softvera " + +msgid "Software manager setup" +msgstr "PodeÅ¡avanje upravljaÄa softvera" + +# +msgid "Software restore" +msgstr "Vraćanje softvera" + +# +msgid "Software update" +msgstr "Nadogradnja softvera" + +msgid "Softwaremanager information" +msgstr "Informacije upravljaÄa softvera" + +# +msgid "Some plugins are not available:\n" +msgstr "Neki dodaci nisu dostupni:\n" + +# +#, fuzzy, python-format +msgid "Sorry, %s has not been installed!" +msgstr "Žao mi je,MediaScanner nije instalisan" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "" + +# +#, fuzzy +msgid "Sorry, no backups found!" +msgstr "Žao mi je,nema rezervnih kopija" + +# +#, fuzzy +msgid "Sorry, no details available!" +msgstr "Žao mi je,nema dostupnih detalja" + +# +#, fuzzy +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"Žao mi je,vaÅ¡a destinacija za snimanje nije upisiva.\n" +"Molim izaberite drugu." + +msgid "Sort" +msgstr "" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Sortiraj A-Z" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +#, fuzzy +msgid "Sort time" +msgstr "Vreme sortiranja" + +# +msgid "Sound" +msgstr "Zvuk" + +# +#, fuzzy +msgid "Sound carrier" +msgstr "ZvuÄni nosilac" + +msgid "Source request" +msgstr "" + +# +msgid "South" +msgstr "Jug" + +# +msgid "Spanish" +msgstr "Å panski" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +# +msgid "Split preview mode" +msgstr "Podeli mod pregleda" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "" + +# +#, fuzzy +msgid "Standard" +msgstr "standardno" + +msgid "Standart list" +msgstr "" + +# +msgid "Standby" +msgstr "Spreman" + +# +#, fuzzy +msgid "Standby / restart" +msgstr "Spreman / restart" + +msgid "Standby after current event" +msgstr "" + +# +#, fuzzy, python-format +msgid "Standby fan %d PWM" +msgstr "Ventilator spreman %d PWM" + +# +#, fuzzy, python-format +msgid "Standby fan %d voltage" +msgstr "Ventilator spreman %d Voltage" + +msgid "Standby in " +msgstr "" + +msgid "StandbyLED" +msgstr "" + +# +msgid "Start from the beginning" +msgstr "PoÄnite od poÄetka" + +msgid "Start offline decode" +msgstr "" + +# +msgid "Start recording?" +msgstr "ZapoÄeti snimanje?" + +# +msgid "Start test" +msgstr "PoÄnite test" + +# +#, fuzzy +msgid "Start time" +msgstr "PoÄetno vreme " + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +# +#, fuzzy +msgid "Start timeshift" +msgstr "pokreni vrem.pomak" + +msgid "Start with list screen" +msgstr "" + +# +msgid "Starting on" +msgstr "Pokrećem" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +# +msgid "Step east" +msgstr "Korak na istok" + +# +msgid "Step west" +msgstr "Korak na zapad" + +msgid "Stepped east" +msgstr "" + +msgid "Stepped west" +msgstr "" + +# +msgid "Stop" +msgstr "Zaustavi " + +# +#, fuzzy +msgid "Stop PiP" +msgstr "zaustavi PiP" + +# +msgid "Stop current event and disable coming events" +msgstr "Zaustavi trenutni dogaÄ‘aj i onemogući ostale dolazeće." + +# +msgid "Stop current event but not coming events" +msgstr "Zaustavi trenutni dogaÄ‘aj ali ne i ostale dolazeće" + +# +#, fuzzy +msgid "Stop entry" +msgstr "zaustavi unos" + +# +msgid "Stop playing this movie?" +msgstr "Zaustaviti ovaj film?" + +msgid "Stop recording" +msgstr "" + +msgid "Stop recording and delete" +msgstr "" + +msgid "Stop service on return to movie list" +msgstr "" + +# +msgid "Stop test" +msgstr "Zaustavite test" + +# +msgid "Stop testing plane after # failed transponders" +msgstr "Zaustavite testiranje matrice posle # neuspeÅ¡nih transpondera" + +# +msgid "Stop testing plane after # successful transponders" +msgstr "Zaustavite testiranje matrice posle#uspelih transpondera" + +msgid "Stop timer recording" +msgstr "" + +# +#, fuzzy +msgid "Stop timeshift" +msgstr "zaustavi vrem.pomak" + +# +#, fuzzy +msgid "Stop timeshift?" +msgstr "Zaustaviti vrem. pomak?" + +msgid "Stopped" +msgstr "" + +msgid "Store at index" +msgstr "" + +# +msgid "Store position" +msgstr "Snimi poziciju" + +# +msgid "Stored position" +msgstr "Snimljene pozicije" + +msgid "Stream" +msgstr "" + +msgid "Stream request" +msgstr "" + +msgid "Strongest position" +msgstr "" + +# +msgid "Subservice list..." +msgstr "lista podkanala..." + +# +msgid "Subservices" +msgstr "Podkanali " + +msgid "Subtitle Quickmenu" +msgstr "" + +# +#, fuzzy +msgid "Subtitle alignment" +msgstr "Izbor subtitlova" + +msgid "Subtitle border width" +msgstr "" + +msgid "Subtitle delay when timing is bad" +msgstr "" + +msgid "Subtitle delay when timing lacks" +msgstr "" + +# +#, fuzzy +msgid "Subtitle font size" +msgstr "Subtitlovi" + +msgid "Subtitle language selection 1" +msgstr "" + +msgid "Subtitle language selection 2" +msgstr "" + +msgid "Subtitle language selection 3" +msgstr "" + +msgid "Subtitle language selection 4" +msgstr "" + +# +#, fuzzy +msgid "Subtitle position" +msgstr "Izbor subtitlova" + +# +msgid "Subtitle selection" +msgstr "Izbor subtitlova" + +msgid "Subtitle selection..." +msgstr "" + +msgid "Subtitle settings" +msgstr "" + +# +msgid "Subtitles" +msgstr "Subtitlovi" + +# +msgid "Sun" +msgstr "Ned" + +# +msgid "Sunday" +msgstr "Nedelja" + +# +#, fuzzy +msgid "Swap PiP and main picture" +msgstr "zameni SuS sa glavnom slikom" + +# +#, fuzzy +msgid "Swap services" +msgstr "Zameni kanale" + +# +msgid "Swedish" +msgstr "Å vedski" + +msgid "Switch TV to correct input" +msgstr "" + +msgid "Switch between filelist/playlist" +msgstr "" + +msgid "Switch between normal mode and list mode" +msgstr "" + +msgid "Switch to HDMI in mode" +msgstr "" + +# +#, fuzzy +msgid "Switch to filelist" +msgstr "prebaci u listu datoteka" + +msgid "Switch to next channel" +msgstr "" + +# +#, fuzzy +msgid "Switch to next channel in history" +msgstr "sledeći kanal u istoriji" + +# +#, fuzzy +msgid "Switch to next sub service" +msgstr "prebaci na sledeći podkanal " + +# +#, fuzzy +msgid "Switch to playlist" +msgstr "prebaci u plejlistu" + +# +#, fuzzy +msgid "Switch to previous channel" +msgstr "prebaci na prethodni podkanal " + +# +#, fuzzy +msgid "Switch to previous channel in history" +msgstr "predhodni kanal u istoriji" + +# +#, fuzzy +msgid "Switch to previous sub service" +msgstr "prebaci na prethodni podkanal " + +# +msgid "Switchable tuner types:" +msgstr "Zamenljivi tipovi tjunera:" + +msgid "Symbol rate" +msgstr "Simbol rata" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "" + +# +msgid "System" +msgstr "Sistem " + +# +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "PREVODILAC_INFO" + +# +msgid "TS file is too large for ISO9660 level 1!" +msgstr "TS datoteka je prevelika za ISO9660 nivo 1!" + +msgid "TSID" +msgstr "TSID" + +msgid "TV physical address report" +msgstr "" + +msgid "TXT PID" +msgstr "TXT PID" + +# +#, fuzzy +msgid "Table of contents for collection" +msgstr "Tabela sadržaja za kolekciju" + +# +msgid "Tags" +msgstr "Oznake" + +msgid "Teletext subtitle color" +msgstr "" + +# +#, fuzzy +msgid "Temperature and fan control" +msgstr "Kontrola temperature i ventilatora" + +# +msgid "Terrestrial" +msgstr "Zemaljski" + +# +msgid "Terrestrial provider" +msgstr "Zemaljski provajder" + +# +msgid "Test DiSEqC settings" +msgstr "Testiraj DISEqC postavke" + +# +msgid "Test mode" +msgstr "Test naÄin" + +msgid "Test the network configuration of your receiver.\n" +msgstr "" + +# +#, fuzzy +msgid "Test type" +msgstr "Testiraj tip" + +# +#, fuzzy +msgid "Text color" +msgstr "Boja teksta" + +msgid "Thai" +msgstr "" + +# +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"Hvala vam na korišćenju Äarobnjaka.\n" +"Molim pritisnite OK da nastavite." + +# +#, fuzzy +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"Hvala vam na korišćenju Äarobnjaka.\n" +"Molim pritisnite OK da nastavite." + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "" + +msgid "The PIN code has been changed successfully." +msgstr "PIN kod je uspeÅ¡no promenjen." + +msgid "The PIN codes you entered are different." +msgstr "PIN kodovi koji ste uneli su razliÄiti. " + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" +"USB stik je bio pripremljen da bude butabiloan.\n" +"Sada možete skinuti NFI imidž datoteku!" + +# +msgid "The backup failed. Please choose a different backup location." +msgstr "NeuspeÅ¡na sigurnosna kopija. Molim odaberite drugu lokaciju." + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" + +# +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"Direktorium %s nije za pisanje.\n" +"Budi siguran da si umesto toga izabrao moguć direktorium." + +# +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"Sledeći ureÄ‘aj nije pronaÄ‘en:\n" +"\n" +"%s\n" +"\n" +"Da li želite da upiÅ¡ete USB fleÅ¡er na stik?" + +# +msgid "The following files were found..." +msgstr "Sledeće datoteke su pronaÄ‘ene..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "md5sum provera validnosti neuspela,datoteka može biti oÅ¡tećena!" + +# +#, fuzzy +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"NetworkWizard proÅ¡irenje nije instalirano!\n" +"molim instalirajte ga." + +# +#, python-format +msgid "The path %s already exists." +msgstr "Putanja %s već postoji." + +# +msgid "The pin code you entered is wrong." +msgstr "Uneti pin kod je pogreÅ¡an." + +# +#, python-format +msgid "The results have been written to %s." +msgstr "Rezultati su zapisani u %s." + +# +msgid "The sleep timer has been activated." +msgstr "Tajmer spavanja je aktiviran." + +# +msgid "The sleep timer has been disabled." +msgstr "Tajmer je onemogućen." + +# +#, fuzzy +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"Softwaremanagement proÅ¡irenje nije instalirano!\n" +"molim instalirajte ga." + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "" + +# +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "Tajmer datoteka (timers.xml) je nepravilna i ne može biti ubaÄena." + +# +#, fuzzy +msgid "The user interface of your receiver is restarting" +msgstr "Molim saÄekajte dok se vaÅ¡a mreža ponovo startuje" + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"BežiÄni LAN dodatak nije instaliran!\n" +"Molimo instalirajte ga i izaberite Å¡ta sledeće da Äinite." + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"BežiÄni LAN dodatak nije instaliran!\n" +"Molimo instalirajte ga." + +# +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "ÄŒarobnjak može napraviti sigurnosnu kopiju postavki. Želite li je napraviti sada?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "ÄŒarobnjak je pronaÅ¡ao bekap konfiguracije.Da li želite da vratite vaÅ¡e stare postavke sa %s?" + +# +msgid "The wizard is finished now." +msgstr "ÄŒarobnjak je sada gotov." + +# +msgid "There are at least " +msgstr "Postoji najmanje" + +# +#, fuzzy, python-format +msgid "There are at least %s updates available." +msgstr "Nema dostupnih ažuriranja." + +# +msgid "There are currently no outstanding actions." +msgstr "Trenutno nema izrazitih deÅ¡avanja." + +# +msgid "There are no updates available." +msgstr "Nema dostupnih ažuriranja." + +msgid "There is no signal to lock on !" +msgstr "" + +# +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"Moguće je da nema dovoljno prostora na izabranoj particiji.\n" +"Da li stvarno želite nastaviti?" + +# +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "Ovaj DVD RW medij je već formatiran-ponovno formatiranje će izbrisati ceo sadržaj diska." + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" + +# +msgid "This plugin is installed." +msgstr "Ovaj dodatak je instaliran." + +# +msgid "This plugin is not installed." +msgstr "Ovaj dodatak nije instaliran." + +# +msgid "This plugin will be installed." +msgstr "Ovaj dodatak će biti instaliran." + +# +msgid "This plugin will be removed." +msgstr "Ovaj dodatak će biti uklonjen." + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "" + +# +#, fuzzy +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"Ovaj test proverava konfigurisane nejmservere.\n" +"Ako dobijete poruku \"nepotvrÄ‘en\":\n" +"-proverite vaÅ¡ DHCP.kablove i postavke adaptera\n" +"-ako ste nejmserver ruÄno konfigurisali,molimo proverite vaÅ¡e unose u \"Nejmserver \" konfiguraciji" + +# +#, fuzzy +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Ovaj test proverava da li je vaÅ¡ mrežni kabal povezan sa LAN adapterom.\n" +"Ako dobijete poruku \"nepovezan\":\n" +"-proverite da je mrežni kabal ukljuÄen\n" +"-proverite da kabal nije prekinut" + +# +#, fuzzy +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Ovaj test proverava da li je naÄ‘ena važeća IP adresa za vaÅ¡ LAN adapter.\n" +"Ako dobijete poruku \"nepotvrÄ‘eno\":\n" +"-nije pronaÄ‘ena validna IP adresa\n" +"-molimo proverite vaÅ¡ DHCP,kablove i postavke adaptera " + +# +#, fuzzy +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"Ovaj test proverava da li je vaÅ¡ adapter postavljen za automatski izbor IP adrese sa DHCP.\n" +"Ako dobijete poruku \"onemogućen \":\n" +"-onda je vaÅ¡ adapter konfigurisan za manuelne IP postavke\n" +"-proverite da li ste uneli ispravne IP podatke u dijalog postavkama adaptera.\n" +"Ako ste dobili poruku \"omogućen \":\n" +"-proverite da li u vaÅ¡oj mreži postoji konfigurisan i u funkciji DHCP server." + +# +#, fuzzy +msgid "This test detects your configured LAN adapter." +msgstr "Ovaj test otkriva vaÅ¡ konfigurisani LAN-adapter" + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" + +# +msgid "Three" +msgstr "Tri" + +# +msgid "Threshold" +msgstr "Prag" + +# +msgid "Thu" +msgstr "ÄŒet" + +# +msgid "Thumbnails" +msgstr "SliÄice" + +# +msgid "Thursday" +msgstr "ÄŒetvrtak" + +# +msgid "Time" +msgstr "Vreme" + +# +#, fuzzy +msgid "Time scale" +msgstr "Izbor tajmera " + +# +msgid "Timer" +msgstr "Tajmer" + +msgid "Timer Overview" +msgstr "" + +# +#, fuzzy +msgid "Timer edit" +msgstr "UreÄ‘ivanje tajmera" + +# +#, fuzzy +msgid "Timer editor" +msgstr "Editor tajmera" + +# +msgid "Timer entry" +msgstr "Unos Tajmera" + +# +msgid "Timer log" +msgstr "Tajmer log" + +# +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"Otkriveno preklapanje tajmera u timers.xml!\n" +"Molimo ponovo proverite!" + +# +#, fuzzy +msgid "Timer overview" +msgstr "Unos Tajmera" + +# +#, fuzzy +msgid "Timer recording location" +msgstr "Lokacija snimanja po tajmeru" + +# +msgid "Timer sanity error" +msgstr "GreÅ¡ka nerazumnog tajmera" + +# +msgid "Timer selection" +msgstr "Izbor tajmera " + +msgid "Timer selection..." +msgstr "" + +# +#, fuzzy +msgid "Timer type" +msgstr "Tip tajmera" + +# +msgid "Timeshift" +msgstr "Vrem. pomak" + +msgid "Timeshift Live" +msgstr "" + +# +msgid "Timeshift location" +msgstr "Lokacija vrem. pomaka" + +# +msgid "Timeshift not possible!" +msgstr "Vrem.i pomak nije moguć!" + +# +msgid "Timezone" +msgstr "Vremenska zona" + +# +msgid "Title" +msgstr "Naslov" + +# +msgid "Title properties" +msgstr "Svojstva naziva" + +# +msgid "Titleset mode" +msgstr "NaÄin postavki naziva" + +msgid "To audio selection" +msgstr "" + +msgid "To subtitle selection" +msgstr "" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" + +# +msgid "Today" +msgstr "Danas" + +# +#, fuzzy +msgid "Toggle a cut mark at the current position" +msgstr "aktiviraj rezanje na trenutno oznaÄenoj poziciji" + +# +#, fuzzy +msgid "Tone amplitude" +msgstr "Ton amplituda" + +# +msgid "Tone mode" +msgstr "Ton mod" + +# +msgid "Toneburst" +msgstr "Toneburst" + +# +msgid "Toneburst A/B" +msgstr "Toneburst A/B" + +msgid "Top and bottom" +msgstr "" + +# +msgid "Track" +msgstr "Trag" + +# +msgid "Translation" +msgstr "Prevod" + +# +msgid "Translation:" +msgstr "Prevod:" + +msgid "Translations" +msgstr "" + +# +msgid "Transmission mode" +msgstr "Mod transmisije" + +# +msgid "Transponder" +msgstr "Transponder" + +# +#, fuzzy +msgid "Transponder type" +msgstr "Tip Transpondera" + +msgid "Trash can" +msgstr "" + +# +msgid "Tries left:" +msgstr "PokuÅ¡aja ostalo:" + +# +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "PokuÅ¡avam pronaći korišćene transpondere u kablovskoj mreži.. molim priÄekajte..." + +# +msgid "Trying to download a new packetlist. Please wait..." +msgstr "PokuÅ¡avam skinuti novu listu paketa.Molim saÄekajte..." + +# +msgid "Tue" +msgstr "Uto" + +# +msgid "Tuesday" +msgstr "Utorak" + +# +msgid "Tune" +msgstr "Uskladiti" + +# +#, fuzzy +msgid "Tune and focus" +msgstr "Status tjunera" + +# +msgid "Tune failed!" +msgstr "GreÅ¡ka tjunera!" + +# +msgid "Tuner" +msgstr "Tjuner" + +# +msgid "Tuner configuration" +msgstr "Konfiguracija tjunera" + +msgid "Tuner is not supported" +msgstr "" + +# +#, fuzzy +msgid "Tuner slot" +msgstr "Otvor tjunera" + +# +msgid "Tuner status" +msgstr "Status tjunera" + +# +#, fuzzy, python-format +msgid "Tuner status %s" +msgstr "Status tjunera" + +# +msgid "Tuner type" +msgstr "Tip tjunera" + +# +msgid "Turkish" +msgstr "Turski" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +# +msgid "Two" +msgstr "Dva" + +# +msgid "Type" +msgstr "Tip" + +# +msgid "Type of scan" +msgstr "Tip skeniranja" + +# +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "" + +# +#, fuzzy +msgid "USB stick" +msgstr "USB stik" + +# +msgid "USB stick wizard" +msgstr "ÄŒarobnjak za USB stik" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +# +msgid "Undo install" +msgstr "PoniÅ¡ti instaliranje" + +# +msgid "Undo uninstall" +msgstr "PoniÅ¡ti deinstalaciju" + +msgid "Unencrypted" +msgstr "" + +# +msgid "UnhandledKey" +msgstr "Neupravljan kljuÄ" + +# +msgid "Unicable" +msgstr "Unikabl" + +# +msgid "Unicable LNB" +msgstr "Unikabl LNB" + +# +msgid "Unicable Martix" +msgstr "Unikabl Matrix" + +# +msgid "Uninstall" +msgstr "Deinstaliraj" + +# +msgid "Universal LNB" +msgstr "Univerzalni LNB" + +msgid "Unknown" +msgstr "" + +msgid "Unmount" +msgstr "" + +# +msgid "Unsupported" +msgstr "Nepodržano" + +# +msgid "Update" +msgstr "Ažuriranje" + +msgid "Update and ask to reboot" +msgstr "" + +msgid "Update and reboot (recommended)" +msgstr "" + +# +#, fuzzy +msgid "Update channel list only" +msgstr "sledeći kanal u istoriji" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "" + +msgid "Update has completed." +msgstr "" + +# +msgid "Updatefeed not available." +msgstr "Fid ažuriranja nije dostupan." + +# +msgid "Updating software catalog" +msgstr "Ažuriranje kataloga softvera" + +# +msgid "Upgrading" +msgstr "NadograÄ‘ujem" + +# +msgid "Use" +msgstr "Koristi" + +# +msgid "Use DHCP" +msgstr "Koristi DHCP" + +msgid "Use EIT EPG information when it is available." +msgstr "" + +msgid "Use FreeSat EPG information when it is available." +msgstr "" + +msgid "Use MHW EPG information when it is available." +msgstr "" + +msgid "Use Netmed EPG information when it is available." +msgstr "" + +msgid "Use TV remote control" +msgstr "" + +# +#, fuzzy +msgid "Use USALS for this sat" +msgstr "Koristi USALS za ovaj satelit" + +msgid "Use ViaSat EPG information when it is available." +msgstr "" + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +# +msgid "Use a gateway" +msgstr "Koristi prolaz" + +msgid "Use fastscan channel names" +msgstr "" + +msgid "Use fastscan channel numbering" +msgstr "" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "" + +# +#, fuzzy +msgid "Use interface" +msgstr "Koristi interfejs" + +msgid "Use official channel numbering" +msgstr "" + +msgid "Use original DVB subtitle position" +msgstr "" + +msgid "Use original teletext position" +msgstr "" + +# +msgid "Use power measurement" +msgstr "Koristi merenje snage" + +# +#, fuzzy +msgid "Use the network wizard to configure selected network adapter" +msgstr "Koristi mrežni Äarobnjak da konfiguriÅ¡eÅ¡ izabrani mrežni adapter" + +# +#, fuzzy +msgid "Use the network wizard to configure your network\n" +msgstr "Koristite mrežni Äarobnjak da konfiguriÅ¡ete vaÅ¡u mrežu\n" + +# +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "Koristite gore/dole tipke na vaÅ¡em daljinskom upravljaÄu za izbor opcije. Posle toga, pritisnite OK." + +# +#, fuzzy +msgid "Use the wizard to set up basic features" +msgstr "Koristite Äarobnjaka za postavljanje osnovnih postavki" + +#, fuzzy +msgid "Use these input device settings?" +msgstr "Koristi postavke ovog ulaznog ureÄ‘aja?" + +#, fuzzy +msgid "Use these settings?" +msgstr "Koristi ove postavke?" + +# +msgid "Use this video enhancement settings?" +msgstr "Koristi postavke ovog video poboljÅ¡avanja?" + +# +#, fuzzy +msgid "Use trash can in movielist" +msgstr "Vratite se na listu filmova" + +# +msgid "Used service scan type" +msgstr "Korišćeni tip skeniranja kanala" + +msgid "User - bouquets" +msgstr "" + +# +msgid "User defined" +msgstr "Definisano od korisnika" + +msgid "User defined transponder" +msgstr "" + +# +#, fuzzy +msgid "User interface" +msgstr "Koristi interfejs" + +# +msgid "Username" +msgstr "Korisn. ime" + +#, python-format +msgid "Using LNB %d" +msgstr "" + +msgid "Using fixed address" +msgstr "" + +#, python-format +msgid "Using tuner %s" +msgstr "" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "" + +# +msgid "VCR scart" +msgstr "VCR skart" + +# +msgid "VMGM (intro trailer)" +msgstr "VMGM (unutraÅ¡nji trejler)" + +# +msgid "Vertical" +msgstr "Vertikalno" + +msgid "Vertical turning speed" +msgstr "" + +msgid "Video PID" +msgstr "Video PID" + +# +msgid "Video enhancement preview" +msgstr "Pregled video poboljÅ¡avanja" + +# +msgid "Video enhancement settings" +msgstr "Postavke video poboljÅ¡avanja" + +# +msgid "Video enhancement setup" +msgstr "PodeÅ¡avanje video poboljÅ¡avanja" + +# +#, fuzzy +msgid "Video fine tuning" +msgstr "Video fino podeÅ¡avanje" + +# +#, fuzzy +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Izbor video ulaza\n" +"\n" +"Molim pritisnite OK ako možete da vidite ovu stranu na vaÅ¡em TV (ili izaberite razliÄit ulazni port).\n" +"\n" +"Sledeći ulazni port će biti automatski proban za 10 sekundi" + +# +msgid "Video mode selection." +msgstr "Izbor video naÄina" + +# +#, fuzzy +msgid "Video output" +msgstr "Video izlaz" + +# +#, fuzzy +msgid "Video setup" +msgstr "Video postavke" + +# +#, fuzzy +msgid "Video wizard" +msgstr "Video Äarobnjak" + +#, python-format +msgid "Video: %s fps" +msgstr "" + +msgid "VideoMode" +msgstr "" + +msgid "Videocodec" +msgstr "" + +msgid "Videoformat" +msgstr "" + +msgid "Videosize" +msgstr "" + +# +msgid "View Rass interactive..." +msgstr "Gledaj Rass interaktivno..." + +# +msgid "View details" +msgstr "Vidi detalje" + +# +msgid "View list of available " +msgstr "Vidi listu mogućih" + +# +msgid "View list of available CommonInterface extensions" +msgstr "Vidi listu mogućih proÅ¡irenja za opÅ¡ti interfejs" + +# +msgid "View list of available EPG extensions." +msgstr "Vidi listu mogućih EPG proÅ¡irenja" + +# +msgid "View list of available Satellite equipment extensions." +msgstr "Vidi listu mogućih proÅ¡irenja satelitske opreme." + +# +msgid "View list of available communication extensions." +msgstr "Vidi listu mogućih proÅ¡irenja za povezivanje." + +# +msgid "View list of available default settings" +msgstr "Vidi listu mogućih osnovnih postavki" + +# +#, fuzzy +msgid "View list of available display and userinterface extensions." +msgstr "Vidi listu mogućih proÅ¡irenja za displej i korisniÄki interfejs" + +# +msgid "View list of available multimedia extensions." +msgstr "Vidi listu mogućih multimedija proÅ¡irenja" + +# +msgid "View list of available networking extensions" +msgstr "Vidi listu mogućih mrežnih proÅ¡irenja " + +# +msgid "View list of available recording extensions" +msgstr "Vidi listu mogućih proÅ¡irenja za snimanje" + +# +msgid "View list of available skins" +msgstr "Vidi listu mogućih maski" + +# +msgid "View list of available software extensions" +msgstr "Vidi listu mogućih softverskih proÅ¡irenja" + +# +msgid "View list of available system extensions" +msgstr "Vidi listu mogućih sistemskih proÅ¡irenja" + +# +#, fuzzy +msgid "View photos..." +msgstr "Vidi fotografije..." + +# +msgid "View teletext..." +msgstr "Pregled teleteksta..." + +# +#, fuzzy +msgid "View video CD..." +msgstr "Vidi video CD" + +# +#, fuzzy +msgid "Virtual keyboard" +msgstr "Virtuelna tastatura" + +# +msgid "Voltage mode" +msgstr "Mod Napona" + +# +msgid "Volume" +msgstr "Volumen" + +# +msgid "W" +msgstr "W" + +# +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "WLAN veza" + +# +msgid "WPA" +msgstr "WPA" + +# +msgid "WPA or WPA2" +msgstr "WPA ili WPA2" + +# +msgid "WPA2" +msgstr "WPA2" + +# +msgid "WSS on 4:3" +msgstr "WSS na 4:3" + +# +msgid "Waiting" +msgstr "ÄŒekanje" + +msgid "Waiting for mount" +msgstr "" + +msgid "Waiting for partition" +msgstr "" + +msgid "Wakeup" +msgstr "" + +msgid "Wakeup TV from standby" +msgstr "" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "" + +msgid "Wakeup signal from TV" +msgstr "" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "" + +# +#, fuzzy +msgid "Watch movies..." +msgstr "Pokreni snimljene filmove..." + +# +#, fuzzy +msgid "Watch recordings..." +msgstr "snimanje..." + +# +msgid "Wed" +msgstr "Sre" + +# +msgid "Wednesday" +msgstr "Sreda" + +# +msgid "Weekday" +msgstr "Nedeljnii dan" + +msgid "Weighted position" +msgstr "" + +# +#, fuzzy +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"DobrodoÅ¡li na ureÄ‘ivaÄ liste.\n" +"\n" +"Tražite poÄetak onoga Å¡to želite da odbacite.Pritisnite OK,izaberite \"poÄni isecanje\".\n" +"\n" +"Zatim tražite kraj,pritisnite OK,izaberite \"zavrÅ¡i isecanje\".To je to." + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" + +# +msgid "Welcome..." +msgstr "DobrodoÅ¡li..." + +# +msgid "West" +msgstr "Zapad" + +msgid "West limit set" +msgstr "" + +# +msgid "What do you want to scan?" +msgstr "Å ta želite skenirati?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "" + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "" + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "" + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "" + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "" + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "" + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "" + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "" + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "" + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "" + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "" + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "" + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "" + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "" + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "" + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "" + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "" + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "" + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "" + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "" + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "" + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "" + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "" + +msgid "When enabled, number markers will be hiden." +msgstr "" + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "" + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "" + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "" + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "" + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "" + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "" + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "" + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "" + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "" + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "" + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "" + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "" + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "" + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "" + +# +#, fuzzy +msgid "When enabled, use DHCP for the IP configuration." +msgstr "Otvori konfiguraciju nejmservera " + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "" + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "" + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "" + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "" + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "" + +# +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"Kad radite resetovanje na fabriÄke vrednosti,izgubićete sve konfiguracijske podatke\n" +"(ukljuÄujući bukete,kanale,podatke o satelitima...)\n" +"Posle kompletnog resetovanja,vaÅ¡ risiver će automatski restartovati!\n" +"\n" +"Stvarno uraditi reset na fabriÄke vrednosti?" + +# +msgid "Where do you want to backup your settings?" +msgstr "Gdje želite saÄuvati ovu sigurnosnu kopiju liste kanala?" + +# +msgid "Where to save temporary timeshift recordings?" +msgstr "Gde saÄuvati privrem. snimanja uz pomoć vrem. pomaka?" + +# +msgid "Wireless LAN" +msgstr "BežiÄni LAN" + +# +#, fuzzy +msgid "Wireless network" +msgstr "BežiÄna mreža" + +# +#, fuzzy +msgid "Wireless network configuration..." +msgstr "Mrežna konfiguracija..." + +msgid "Wireless network connection setup" +msgstr "" + +msgid "Wireless network connection setup." +msgstr "" + +msgid "Wireless network state" +msgstr "" + +msgid "With popup" +msgstr "" + +msgid "Without popup" +msgstr "" + +msgid "Would you like to install a softcam?" +msgstr "" + +# +msgid "Write error while recording. Disk full?\n" +msgstr "GreÅ¡ka tokom snimanja. Disk Pun?\n" + +# +msgid "Write failed!" +msgstr "Upisivanje nije uspelo!" + +# +msgid "YPbPr" +msgstr "YPbPr" + +# +msgid "Year" +msgstr "Godina" + +msgid "Yellow DVB subtitles" +msgstr "" + +# +msgid "Yes" +msgstr "Da" + +msgid "Yes and save" +msgstr "" + +msgid "Yes and save in movie dir" +msgstr "" + +# +msgid "Yes to all" +msgstr "Da za sve" + +msgid "Yes, always" +msgstr "Da,uvek" + +# +msgid "Yes, and delete this movie" +msgstr "Da i izbriÅ¡ite ovaj film" + +# +msgid "Yes, backup my settings!" +msgstr "Da, napravi sigurnosnu kopiju mojih postavki." + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +# +msgid "Yes, do a manual scan now" +msgstr "Da, zapoÄeti ruÄnu pretragu sada" + +# +msgid "Yes, do an automatic scan now" +msgstr "Da, zapoÄni automatsko pretraživanje sada" + +# +msgid "Yes, do another manual scan now" +msgstr "Da, zapoÄni drugu ruÄnu pretragu sada" + +# +msgid "Yes, perform a shutdown now." +msgstr "Da, zapoÄni iskljuÄivanje sada" + +# +msgid "Yes, restore the settings now" +msgstr "Da, vrati saÄuvane postavke sada" + +# +msgid "Yes, returning to movie list" +msgstr "Da,vratiti se na listu filmova" + +msgid "Yesterday" +msgstr "" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" + +# +msgid "You can cancel the installation." +msgstr "Možete otkazati instaliranje." + +# +msgid "You can cancel the removal." +msgstr "Možete otkazati uklanjanje." + +msgid "You can continue watching TV etc. while this is running." +msgstr "" + +# +msgid "You can install this plugin." +msgstr "Možete instalirati ovaj dodatak." + +msgid "You can only burn receiver recordings!" +msgstr "" + +# +msgid "You can remove this plugin." +msgstr "Možete ukloniti ovaj dodatak." + +# +msgid "You cannot delete this!" +msgstr "Ne možete ovo obrisati!" + +msgid "You didn't select a channel to record from." +msgstr "Niste odabrali kanal sa koga ćete snimati." + +# +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "Izabrali ste da snimite svoje postavke.Molimo pritisnite OK da sada poÄnete snimanje." + +# +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "Izabrali ste da kreirate novi .NFI fleÅ¡er butabilni USB stik.Ovo će ponovo particirati USB stik i svi podaci će biti izbrisani.i " + +# +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "Izabrali ste da povratite vaÅ¡e postavke.Enigma2 će ponovo startovati posle vraćanja.Molim sada pritisnite OK da poÄnete vraćanje." + +# +#, python-format +msgid "You have to wait %s!" +msgstr "Morate priÄekati %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" + +msgid "You system does not support ext4" +msgstr "" + +# +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "Sigurnosna kopija je uspeÅ¡no napravljena. Sada ćemo dalje objasniti za sljedeći proces nadogradnje." + +# +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "VaÅ¡a kolekcija prelazi veliÄinu jednoslojnog medija,trebate prazan dvoslojni DVD! " + +# +msgid "Your current collection will get lost!" +msgstr "VaÅ¡a aktuelna kolekcija će biti izgubljena!" + +# +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"VaÅ¡ softver frontprocesora mora biti nadograÄ‘en.\n" +"Pritisnite OK za poÄetak nadogradnje." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +# +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"VaÅ¡a internet veza ne radi!\n" +"Molim izaberite Å¡ta želite sledeće uÄiniti." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "" + +# +msgid "Your network configuration has been activated." +msgstr "VaÅ¡a mrežna konfiguracija je aktivirana." + +msgid "Your receiver does not have an internet connection" +msgstr "" + +# +#, fuzzy +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"VaÅ¡ drimboks je sada spreman za upotrebu.\n" +"\n" +"VaÅ¡a internet veza sada radi.\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" + +msgid "Your receiver is rebooting" +msgstr "" + +msgid "Your receiver is shutting down" +msgstr "" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "" + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "" + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "" + +msgid "Your receiver will got to standby due to inactivity." +msgstr "" + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "" + +# +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"VaÅ¡a bežiÄna LAN internet veza ne može biti pokrenuta!\n" +"Da li ste spojili vaÅ¡ USB WLAN stik?\n" +"\n" +"Molim izaberite Å¡ta želite sledeće da uÄinite." + +msgid "Zap" +msgstr "" + +# +msgid "Zap back to previously tuned service?" +msgstr "Vratiti se nazad na prethodni kanal?" + +# +msgid "Zap back to service before positioner setup?" +msgstr "Prebaciti na zadnji kanal pre podeÅ¡avanja motora?" + +# +msgid "Zap back to service before tuner setup?" +msgstr "Vratiti se nazad na kanal pre podeÅ¡avanja tjunera?" + +msgid "Zap focus to Picture in Picture" +msgstr "" + +msgid "Zap focus to main screen" +msgstr "" + +msgid "Zap mode" +msgstr "" + +msgid "Zap to selected channel" +msgstr "" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "" + +# +msgid "[alternative edit]" +msgstr "[ureÄ‘ivanje alternative]" + +# +msgid "[bouquet edit]" +msgstr "[ureÄ‘ivanje buketa]" + +# +msgid "[favourite edit]" +msgstr "[ureÄ‘ivanje favorita]" + +# +msgid "[move mode]" +msgstr "[mod premeÅ¡tanja]" + +# +msgid "a gui to assign services/providers to common interface modules" +msgstr "Gui da dodeli kanale/provajdere modulima opÅ¡teg interfejsa" + +# +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "Gui da dodeli kanale/provajdere/kaide modulima opÅ¡teg interfejsa" + +# +msgid "abort alternatives edit" +msgstr "odustani od ureÄ‘ivanja alternative" + +# +msgid "abort bouquet edit" +msgstr "prekini ureÄ‘ivanje buketa" + +# +msgid "abort favourites edit" +msgstr "odustani od ureÄ‘ivanja favorita" + +# +msgid "about to start" +msgstr "spremni za poÄetak" + +# +msgid "activate network adapter configuration" +msgstr "Aktivirajte konfiguraciju mrežnog adaptera" + +# +msgid "add alternatives" +msgstr "dodaj alternative" + +# +msgid "add bookmark" +msgstr "Dodaj oznaku" + +# +msgid "add bouquet" +msgstr "dodaj buket" + +# +msgid "add marker" +msgstr "dodaj oznaku" + +# +msgid "add service to bouquet" +msgstr "dodaj kanal u buket " + +# +msgid "add service to favourites" +msgstr "dodaj kanal u favorite" + +# +msgid "add to parental protection" +msgstr "dodaj u roditeljsku zaÅ¡titu" + +msgid "adult movie/drama" +msgstr "" + +# +msgid "advanced" +msgstr "napredno" + +msgid "adventure/western/war" +msgstr "" + +msgid "advertisement/shopping" +msgstr "" + +msgid "after " +msgstr "" + +# +#, fuzzy +msgid "alphabetic" +msgstr "sortiraj abecedno" + +msgid "alphabetic reverse" +msgstr "" + +msgid "alternative" +msgstr "" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "" + +msgid "arts/culture magazine" +msgstr "" + +msgid "athletics" +msgstr "" + +# +msgid "audio tracks" +msgstr "Audio zapisi" + +# +msgid "auto" +msgstr "Auto" + +# +#, fuzzy +msgid "automatic" +msgstr "Automatski" + +# +msgid "back" +msgstr "natrag" + +# +msgid "background image" +msgstr "Pozadinska slika" + +msgid "ballet" +msgstr "" + +#, python-format +msgid "bc%s" +msgstr "" + +# +msgid "better" +msgstr "bolje" + +# +msgid "black" +msgstr "Crno " + +msgid "black & white" +msgstr "" + +# +msgid "blacklist" +msgstr "crna lista" + +# +msgid "blue" +msgstr "Plavo" + +msgid "broadcasting/press" +msgstr "" + +# +#, fuzzy +msgid "by date" +msgstr "sortiraj po datumu" + +msgid "cartoon/puppets" +msgstr "" + +msgid "center" +msgstr "" + +msgid "centered" +msgstr "" + +msgid "centered, wrapped" +msgstr "" + +# +msgid "chapters" +msgstr "Poglavlja" + +msgid "childrens's/youth program (general)" +msgstr "" + +# +msgid "circular left" +msgstr "leva cirkularna" + +# +msgid "circular right" +msgstr "desna cirkularna" + +msgid "comedy" +msgstr "" + +# +msgid "complex" +msgstr "kompleksno" + +# +msgid "config menu" +msgstr "konfig meni" + +# +msgid "confirmed" +msgstr "PotvrÄ‘eno" + +# +msgid "connected" +msgstr "Povezano" + +# +msgid "continue" +msgstr "nastavi" + +msgid "cooking" +msgstr "" + +# +msgid "copy to bouquets" +msgstr "kopiraj u bukete" + +# +msgid "create directory" +msgstr "Kreiraj direktorijum" + +#, python-format +msgid "currently installed image: %s" +msgstr "Trenutno instalisani imidž: %s" + +# +msgid "daily" +msgstr "dnevno" + +# +msgid "day" +msgstr "Dan" + +#, fuzzy +msgid "default" +msgstr "Standardno" + +# +msgid "delete cut" +msgstr "obriÅ¡i rez" + +msgid "delete..." +msgstr "" + +msgid "descramble and record ecm" +msgstr "" + +msgid "detective/thriller" +msgstr "" + +# +msgid "disable" +msgstr "onemogući" + +# +msgid "disable move mode" +msgstr "onemoguće mod premeÅ¡tanja" + +# +msgid "disabled" +msgstr "onemogućeno" + +# +msgid "disconnected" +msgstr "nepovezan" + +msgid "discussion/interview/debate" +msgstr "" + +# +msgid "do nothing" +msgstr "ne Äini niÅ¡ta " + +msgid "documentary" +msgstr "" + +msgid "don't descramble, record ecm" +msgstr "" + +# +msgid "done!" +msgstr "UÄinjeno!" + +msgid "east" +msgstr "" + +msgid "economics/social advisory" +msgstr "" + +# +msgid "edit alternatives" +msgstr "Uredi alternative" + +msgid "education/science/factual topics (general)" +msgstr "" + +# +msgid "empty" +msgstr "prazno" + +# +msgid "enable" +msgstr "omogući" + +# +msgid "enable bouquet edit" +msgstr "omogući ureÄ‘ivanje paketa" + +# +msgid "enable favourite edit" +msgstr "omogući ureÄ‘ivanje favorita" + +# +msgid "enable move mode" +msgstr "ukljuÄi mod za premeÅ¡tanje" + +# +msgid "enabled" +msgstr "omogućeno" + +# +msgid "end alternatives edit" +msgstr "kraj ureÄ‘ivanja alternativa" + +# +msgid "end bouquet edit" +msgstr "zavrÅ¡i ureÄ‘ivanje buketa" + +# +msgid "end cut here" +msgstr "zavrÅ¡i rez ovde" + +# +msgid "end favourites edit" +msgstr "zavrÅ¡i ureÄ‘ivanje favorita" + +msgid "entertainment (10-16 year old)" +msgstr "" + +msgid "entertainment (6-14 year old)" +msgstr "" + +# +msgid "equal to" +msgstr "jednako" + +msgid "equestrian" +msgstr "" + +# +msgid "exit DVD player or return to file browser" +msgstr "Napustite DVD plejer ili se vratite na pretraživaÄ datoteka" + +msgid "exit movielist" +msgstr "" + +# +msgid "exit network adapter configuration" +msgstr "Napustite konfiguraciju mrežnog adaptera" + +# +msgid "exit networkadapter setup menu" +msgstr "Napustite meni postavki mrežnog adaptera" + +msgid "experimental film/video" +msgstr "" + +msgid "false" +msgstr "" + +msgid "fashion" +msgstr "" + +# +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "Formati datoteka (BMP,PNG,JPG,GIF)" + +# +msgid "filename" +msgstr "Ime datoteke" + +msgid "film/cinema" +msgstr "" + +msgid "fine arts" +msgstr "" + +# +msgid "fine-tune your display" +msgstr "Fino podesite vaÅ¡ displej" + +msgid "fitness & health" +msgstr "" + +# +#, fuzzy +msgid "flat alphabetic" +msgstr "sortiraj abecedno" + +# +#, fuzzy +msgid "flat alphabetic reverse" +msgstr "sortiraj abecedno" + +msgid "folk/traditional music" +msgstr "" + +msgid "football/soccer" +msgstr "" + +msgid "foreign countries/expeditions" +msgstr "" + +# +msgid "forward to the next chapter" +msgstr "Napred na sledeće poglavlje" + +# +msgid "free" +msgstr "slobodno" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "" + +msgid "game show/quiz/contest" +msgstr "" + +msgid "gardening" +msgstr "" + +# +msgid "go to deep standby" +msgstr "pokreni iskljuÄivanje drimboxa" + +# +msgid "go to standby" +msgstr "poÄ‘i u pripravnost" + +# +msgid "grab this frame as bitmap" +msgstr "Postavite ovaj frejm kao bitmapu" + +# +msgid "green" +msgstr "zeleno" + +msgid "handicraft" +msgstr "" + +msgid "height" +msgstr "" + +# +msgid "help..." +msgstr "pomoć..." + +# +msgid "horizontal" +msgstr "horizontalno" + +msgid "information/education/school program" +msgstr "" + +# +msgid "init module" +msgstr "Iniciraj blok" + +# +msgid "init modules" +msgstr "iniciraj blokove" + +# +msgid "insert mark here" +msgstr "unesi oznaku ovdje" + +msgid "invalid type" +msgstr "" + +msgid "jazz" +msgstr "" + +# +msgid "jump back to the previous title" +msgstr "SkoÄi nazad na prethodni naslov" + +# +msgid "jump forward to the next title" +msgstr "SkoÄi napred na naredni naslov" + +msgid "languages" +msgstr "" + +# +msgid "leave movie player..." +msgstr "napusti video plejer" + +# +msgid "left" +msgstr "levi" + +msgid "left, wrapped" +msgstr "" + +msgid "leisure hobbies (general)" +msgstr "" + +# +msgid "length" +msgstr "dužina" + +msgid "limit ..., aborting !" +msgstr "" + +# +msgid "list style compact" +msgstr "kompaktni stil liste" + +# +msgid "list style compact with description" +msgstr "kompaktni stil liste sa opisom" + +# +msgid "list style default" +msgstr "standardne postavke stila liste" + +# +msgid "list style single line" +msgstr "kompaktni jednostruki stil liste" + +msgid "literature" +msgstr "" + +msgid "live broadcast" +msgstr "" + +# +msgid "locked" +msgstr "zakljuÄan" + +# +msgid "loopthrough to" +msgstr "Prolaz do" + +msgid "magazines/reports/documentary" +msgstr "" + +# +msgid "manual" +msgstr "ruÄno" + +msgid "martial sports" +msgstr "" + +msgid "medicine/physiology/psychology" +msgstr "" + +# +msgid "menu" +msgstr "meni" + +# +msgid "mins" +msgstr "mins" + +# +msgid "minutes" +msgstr "minuti" + +# +msgid "month" +msgstr "Mesec" + +msgid "motor sport" +msgstr "" + +msgid "motoring" +msgstr "" + +# +msgid "move down to last entry" +msgstr "Pomeri dole na poslednji unos" + +# +msgid "move down to next entry" +msgstr "Pomeri dole na naredni unos" + +# +msgid "move up to first entry" +msgstr "Pomeri gore na prvi unos" + +# +msgid "move up to previous entry" +msgstr "Pomeri gore na prethodni unos" + +msgid "movie/drama (general)" +msgstr "" + +# +msgid "multinorm" +msgstr "multinorm" + +msgid "music/ballet/dance (general)" +msgstr "" + +msgid "musical/opera" +msgstr "" + +msgid "nature/animals/environment" +msgstr "" + +# +msgid "never" +msgstr "nikad" + +msgid "new media" +msgstr "" + +msgid "news magazine" +msgstr "" + +msgid "news/current affairs (general)" +msgstr "" + +msgid "news/weather report" +msgstr "" + +# +msgid "no" +msgstr "Ne" + +# +msgid "no CAId selected" +msgstr "CAId nije izabran" + +# +msgid "no CI slots found" +msgstr "CI otvor nije naÄ‘en" + +# +msgid "no module found" +msgstr "nema modula " + +msgid "no storage devices found" +msgstr "" + +# +msgid "none" +msgstr "prazno" + +msgid "normal" +msgstr "" + +# +msgid "not configured" +msgstr "nije konfigurisano" + +# +msgid "not locked" +msgstr "nije prihvaćen" + +msgid "not supported" +msgstr "nije podržano" + +# +msgid "not used" +msgstr "nije u upotrebi" + +# +msgid "nothing connected" +msgstr "niÅ¡ta nije spojeno" + +# +msgid "of a DUAL layer medium used." +msgstr "Dvoslojni medij se koristi" + +# +msgid "of a SINGLE layer medium used." +msgstr "Jednoslojni medij se koristi" + +# +msgid "off" +msgstr "iskljuÄi" + +msgid "offset is" +msgstr "" + +# +msgid "on" +msgstr "ukljuÄi" + +# +msgid "on READ ONLY medium." +msgstr "na mediju samo za Äitanje" + +msgid "on end of movie" +msgstr "" + +# +msgid "once" +msgstr "jednom" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +# +msgid "open nameserver configuration" +msgstr "Otvori konfiguraciju nejmservera " + +msgid "original" +msgstr "" + +msgid "original language" +msgstr "" + +# +msgid "pass" +msgstr "lozinka" + +msgid "performing arts" +msgstr "" + +msgid "play as picture in picture" +msgstr "" + +msgid "play in mainwindow" +msgstr "" + +# +msgid "please press OK when ready" +msgstr "pritisni OK kada si spreman" + +# +msgid "please wait, loading picture..." +msgstr "molim priÄekajte, uÄitavam sliku..." + +msgid "popular culture/traditional arts" +msgstr "" + +msgid "pre-school children's program" +msgstr "" + +msgid "receiver software because updates are available." +msgstr "" + +# +msgid "record" +msgstr "Snimi" + +# +msgid "recording..." +msgstr "snimanje..." + +# +msgid "red" +msgstr "Crveno" + +msgid "religion" +msgstr "" + +msgid "remarkable people" +msgstr "" + +# +msgid "remove after this position" +msgstr "obriÅ¡i posle ove pozicije" + +# +msgid "remove all alternatives" +msgstr "obriÅ¡i sve alternative" + +# +msgid "remove all new found flags" +msgstr "obriÅ¡i sve novo naÄ‘ene zastave" + +# +msgid "remove before this position" +msgstr "obriÅ¡i pre ove pozicije" + +# +msgid "remove bookmark" +msgstr "uklonite oznaku" + +# +msgid "remove directory" +msgstr "Uklonite direktorijum" + +# +msgid "remove entry" +msgstr "obriÅ¡i unos" + +# +msgid "remove from parental protection" +msgstr "obriÅ¡i iz roditeljske zaÅ¡tite" + +# +msgid "remove new found flag" +msgstr "obriÅ¡i novo naÄ‘enu zastavu" + +# +msgid "remove selected satellite" +msgstr "Uklonite izabrani satelit" + +# +msgid "remove this mark" +msgstr "obriÅ¡i ovu oznaku" + +msgid "rename entry" +msgstr "" + +# +msgid "repeat playlist" +msgstr "Ponovite listu za reprodukciju" + +# +msgid "repeated" +msgstr "ponavljam" + +msgid "reverse by date" +msgstr "" + +# +msgid "rewind to the previous chapter" +msgstr "Premotaj na prethodno poglavlje" + +# +msgid "right" +msgstr "desno" + +msgid "right, wrapped" +msgstr "" + +msgid "rock/pop" +msgstr "" + +msgid "romance" +msgstr "" + +# +msgid "save last directory on exit" +msgstr "SaÄuvajte poslednji direktorijum kod izlaska" + +# +msgid "save playlist on exit" +msgstr "SaÄuvajte listu za reprodukciju kod izlaska " + +# +msgid "scan state" +msgstr "status skeniranja" + +msgid "science fiction/fantasy/horror" +msgstr "" + +# +msgid "second cable of motorized LNB" +msgstr "drugi kabal od motorizovanog LNB-a" + +# +msgid "seconds" +msgstr "sekundi" + +# +msgid "select" +msgstr "Izaberite" + +# +msgid "select CAId's" +msgstr "Izaberite CAId-e" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +# +msgid "select menu entry" +msgstr "Izaberite meni ulaz" + +# +msgid "select movie" +msgstr "odaberi film" + +msgid "select the movie path" +msgstr "" + +msgid "serious music/classic music" +msgstr "" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "" + +msgid "service PIN" +msgstr "PIN kanala" + +msgid "set as startup service" +msgstr "" + +msgid "setup PIN" +msgstr "podesi PIN" + +# +msgid "show DVD main menu" +msgstr "Pokaži glavni DVD meni" + +msgid "show all tags" +msgstr "" + +# +msgid "show alternatives" +msgstr "prikaži alternative" + +# +msgid "show event details" +msgstr "prikaži proÅ¡irene infor. " + +msgid "show extended description" +msgstr "" + +msgid "show mediaplayer on mainmenu" +msgstr "" + +msgid "show softwaremanager in setup menu" +msgstr "" + +msgid "show softwaremanager on blue button" +msgstr "" + +msgid "show tag menu" +msgstr "" + +# +msgid "show transponder info" +msgstr "prikaži info transpondera" + +msgid "show/game show (general)" +msgstr "" + +msgid "shuffle" +msgstr "" + +# +msgid "shut down" +msgstr "iskljuÄi " + +# +msgid "simple" +msgstr "jednostavno" + +msgid "skip backward" +msgstr "preskoÄi unazad" + +# +msgid "skip forward" +msgstr "preskoÄi unapred" + +msgid "soap/melodram/folkloric" +msgstr "" + +msgid "social/political issues/economics (general)" +msgstr "" + +msgid "social/spiritual science" +msgstr "" + +msgid "sorting of playlists" +msgstr "" + +# +msgid "special characters" +msgstr "posebni karakteri" + +msgid "special events" +msgstr "" + +msgid "special format data DVD (HDTV compatible)" +msgstr "" + +msgid "sports (general)" +msgstr "" + +msgid "sports magazine" +msgstr "" + +# +msgid "standard" +msgstr "standardno" + +# +msgid "start cut here" +msgstr "poÄni rez ovde" + +# +msgid "start directory" +msgstr "PoÄetni direktorijum" + +msgid "stepsize" +msgstr "" + +# +msgid "stereo" +msgstr "stereo" + +msgid "stop using as startup service" +msgstr "" + +# +msgid "switch to bookmarks" +msgstr "Prebaci na oznake" + +# +msgid "switch to filelist" +msgstr "prebaci u listu datoteka" + +# +msgid "switch to the next angle" +msgstr "Prebaci na sledeći ugao" + +# +msgid "switch to the next audio track" +msgstr "Prebaci na sledeći audio zapis" + +# +msgid "switch to the next subtitle language" +msgstr "Prebaci na sledeći jezik titla" + +msgid "talk show" +msgstr "" + +msgid "team sports" +msgstr "" + +msgid "technology/natural science" +msgstr "" + +# +msgid "template file" +msgstr "Å ablon datoteka" + +msgid "tennis/squash" +msgstr "" + +# +msgid "this recording" +msgstr "ovo snimanje" + +# +msgid "this service is protected by a parental control pin" +msgstr "kanal je zaÅ¡tićen s pin kodom roditeljske kontrole" + +# +msgid "toggle time, chapter, audio, subtitle info" +msgstr "Prebacuj vreme,poglavlje,audio,subtitl informacije" + +msgid "top" +msgstr "" + +msgid "tourism/travel" +msgstr "" + +msgid "true" +msgstr "" + +# +msgid "unavailable" +msgstr "nedostupno" + +# +msgid "unconfirmed" +msgstr "NepotvrÄ‘eno" + +msgid "undefined" +msgstr "" + +# +msgid "unknown" +msgstr "Nepoznato" + +# +msgid "unknown service" +msgstr "Nepoznat kanal" + +msgid "unpublished" +msgstr "" + +# +msgid "until standby/restart" +msgstr "do spreman/restart" + +# +msgid "user defined" +msgstr "korisniÄki definisano" + +msgid "variety show" +msgstr "" + +# +msgid "vertical" +msgstr "vertikalno" + +# +msgid "wait for ci..." +msgstr "Äekaj ci..." + +# +msgid "wait for mmi..." +msgstr "Äekam mmi..." + +# +msgid "waiting" +msgstr "Äekam" + +msgid "water sport" +msgstr "" + +# +msgid "weekly" +msgstr "nedeljno" + +msgid "west" +msgstr "" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "" + +# +msgid "whitelist" +msgstr "bela lista" + +msgid "width" +msgstr "" + +msgid "winter sport" +msgstr "" + +msgid "wireless network interface" +msgstr "" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +# +msgid "working" +msgstr "U radu" + +# +msgid "yellow" +msgstr "Žuto" + +# +msgid "yes" +msgstr "Da " + +# +msgid "yes (keep feeds)" +msgstr "Da ( zadrži fidove)" + +# +msgid "zap" +msgstr "zap" + +msgid "zap and record" +msgstr "" + +# +msgid "zapped" +msgstr "prebaÄen" + +# +#~ msgid "AA" +#~ msgstr "AA" + +# +#~ msgid "AB" +#~ msgstr "AB" + +# +#, fuzzy +#~ msgid "Activate PiP" +#~ msgstr "Aktiviraj Sliku u Slici" + +# +#, fuzzy +#~ msgid "Add/remove timer for current event" +#~ msgstr "dodaj snimanje (zaustavi posle trenutnog dogaÄ‘aja)" + +# +#, fuzzy +#~ msgid "All satellites" +#~ msgstr "Svi sateliti" + +# +#~ msgid "BA" +#~ msgstr "BA" + +# +#~ msgid "BB" +#~ msgstr "BB" + +# +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "NaÄin rada \"pauza\" kad je zaustavljen" + +# +#~ msgid "Committed DiSEqC command" +#~ msgstr "UpravljaÄka DISEqC komanda" + +# +#~ msgid "DiSEqC repeats" +#~ msgstr "DiSEqC ponavljanja" + +# +#~ msgid "No satellite frontend found!!" +#~ msgstr "Nije pronaÄ‘en Äeoni satelit!!" + +# +#~ msgid "Remove timer" +#~ msgstr "Ukloniti tajmer" + +# +#~ msgid "Send DiSEqC" +#~ msgstr "Poslati DISEqC" + +# +#, fuzzy +#~ msgid "Switch next channel" +#~ msgstr "sjedeći kanal" + +# +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Nedodeljena DiSEqC komanda" + +# +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "Prebaciti natrag na kanal pre sat. tražitelja?" + +#~ msgid "tuner is not supported" +#~ msgstr "tjuner nije podržan" diff --git a/po/sv.po b/po/sv.po new file mode 100644 index 0000000..d37cb2e --- /dev/null +++ b/po/sv.po @@ -0,0 +1,9456 @@ +# Swedish translations for Enigma2. +# +msgid "" +msgstr "" +"Project-Id-Version: enigma2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2013-10-12 20:56+0100\n" +"Last-Translator: Magnus Nilsson <mag_nilsson@hotmail.com>\n" +"Language-Team: \n" +"Language: sv\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-Generator: Poedit 1.5.4\n" +"X-Poedit-SourceCharset: utf-8\n" + +# +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"Avancerade val och inställningar." + +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"Efter tryckt OK, vänligen vänta!" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" +"\n" +"Backup av din mottagares inställningar." + +# +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"Ändra uppgraderingskällans adress." + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" +"\n" +"Hantera utökningar eller plugins för din mottagare" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" +"\n" +"Online uppdatering av din mottagares mjukvara." + +# +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"Tryck OK pÃ¥ fjärrkontrollen för att forsätta." + +# +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"Ã…terskapa med datum pÃ¥ backup." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" +"\n" +"Ã…terställ din mottagares inställningar." + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" +"\n" +"Ã…terställ din mottagare med en ny firmware." + +# +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"Sök efter lokala utökningar och installera dem." + +# +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Välj din backupenhet.\n" +"Nuvarande enhet: " + +# +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"Visa, installera och ta bort tillgängliga eller installerade paket." + +msgid " (PiP)" +msgstr " (BiB)" + +msgid " (Radio)" +msgstr " (Radio)" + +msgid " (TV)" +msgstr " (TV)" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +# +msgid " extensions." +msgstr " utökningar." + +msgid " ms" +msgstr " ms" + +# +msgid " packages selected." +msgstr " valda paket." + +msgid " updates available." +msgstr " uppdateringar tillgängliga." + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "%2d:%02d" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "%2d:%02d:%02d" + +msgid "%A %d %B" +msgstr "%A %d %B" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "%A %e %B" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "%A %e %B %Y" + +# +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "%a %e/%m" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "%a %e/%m %-H:%M" + +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "%d kanal hittad" +msgstr[1] "%d kanaler hittade" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "%d fil" +msgstr[1] "%d filer" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d timme" +msgstr[1] "%d timmar" + +# +#, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d jobb körs i bakgrunden!" +msgstr[1] "%d jobb körs i bakgrunden!" + +#, python-format +msgid "%d min" +msgstr "%d min" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d minut" +msgstr[1] "%d minuter" + +#, python-format +msgid "%d minutes" +msgstr "%d minuter" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d sekund" +msgstr[1] "%d sekunder" + +#, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "%d underkatalog" +msgstr[1] "%d underkataloger" + +# +#, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "%d trÃ¥dlöst nätverk hittat!" +msgstr[1] "%d trÃ¥dlösa nätverk hittade!" + +msgid "%d-%b-%Y %-H:%M" +msgstr "%d-%b-%Y %-H:%M" + +msgid "%d-%m" +msgstr "%d-%m" + +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "%k:%M %e/%m" + +# +#, python-format +msgid "%s %s free disk space" +msgstr "%s %s ledigt utrymme" + +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "%s används inte längre. Skall den tas bort?" + +#, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "%s uppdatering tillgänglig." +msgstr[1] "%s uppdateringar tillgängliga." + +#, python-format +msgid "%s%d min" +msgstr "%s%d min" + +#, python-format +msgid "%s/%s: %s" +msgstr "%s/%s: %s" + +# +msgid "(ZAP)" +msgstr "(ZAP)" + +# +msgid "(empty)" +msgstr "(tom)" + +# +msgid "(show optional DVD audio menu)" +msgstr "(visa utökad DVD ljudmeny)" + +# +msgid "* Only available if more than one interface is active." +msgstr "* Enbart tillgänglig om mer än ett kort är aktivt." + +msgid "/s" +msgstr "/s" + +# +msgid "0" +msgstr "0" + +# +msgid "1" +msgstr "1" + +# +msgid "1.0" +msgstr "1.0" + +# +msgid "1.1" +msgstr "1.1" + +# +msgid "1.2" +msgstr "1.2" + +# +msgid "12V output" +msgstr "12V utgÃ¥ng" + +# +msgid "13 V" +msgstr "13 V" + +# +msgid "16:10" +msgstr "16:10" + +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +# +msgid "16:9" +msgstr "16:9" + +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +# +msgid "16:9 always" +msgstr "16:9 alltid" + +# +msgid "18 V" +msgstr "18 V" + +# +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "23.976" + +msgid "24" +msgstr "24" + +msgid "25" +msgstr "25" + +msgid "29.97" +msgstr "29.97" + +# +msgid "3" +msgstr "3" + +msgid "30" +msgstr "30" + +msgid "3d mode" +msgstr "3d läge" + +# +msgid "4" +msgstr "4" + +# +msgid "4:3" +msgstr "4:3" + +# +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +# +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +# +msgid "5" +msgstr "5" + +# +msgid "6" +msgstr "6" + +# +msgid "7" +msgstr "7" + +# +msgid "8" +msgstr "8" + +# +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +# +msgid "<Current movielist location>" +msgstr "<Filmlistans aktuella plats>" + +# +msgid "<Default movie location>" +msgstr "<Filmlistans grundplats>" + +# +msgid "<Last timer location>" +msgstr "<Timerns senaste filmplats>" + +# +msgid "<unknown>" +msgstr "<okänd>" + +# +msgid "??" +msgstr "??" + +# +msgid "A" +msgstr "A" + +# +#, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"En konfigurationsfil (%s) har ändrats sedan installationen.\n" +"Vill du behÃ¥lla din ändring?" + +# +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"En konfigurationsfil (%s) har ändrats sedan installationen.\n" +"Vill du behÃ¥lla din version?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"En utförd inspelningstimer vill försätta din\n" +"mottagare i viloläge. Utföra det nu?" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"En utförd inspelningstimer vill stänga av\n" +"din mottagare. Stänga av nu?" + +# +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "En grafisk EPG för alla kanaler i en vald favoritlista" + +# +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"En inspelning har pÃ¥börjats:\n" +"%s" + +# +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"En inspelning pÃ¥gÃ¥r redan.\n" +"Vad vill du göra?" + +# +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "En inspelning pÃ¥gÃ¥r. Vänligen avbryt den innan du försöker konfigurera motorn." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "En inspelning pÃ¥gÃ¥r för närvarande. Avsluta inspelningen innan du försöker skanna." + +# +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "En inspelning pÃ¥gÃ¥r. Vänligen avbryt den före du försöker starta satfinder." + +# +#, python-format +msgid "A required tool (%s) was not found." +msgstr "Ett verktyg (%s) som behövs kunde inte hittas." + +# +msgid "A search for available updates is currently in progress." +msgstr "En sökning efter tillgängliga uppdateringar utförs för tillfället." + +# +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"Ett andra konfigurerat nätverkskort har hittats.\n" +"\n" +"Vill du avaktivera sekundärt nätverkskort?" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"En insomningstimer vill försätta din\n" +"mottagare i viloläge. Utföra det?" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"En insomningstimer vill stänga av\n" +"din mottagare. Stänga av nu?" + +# +msgid "A small overview of the available icon states and actions." +msgstr "En liten översikt av tillgängliga ikoner status och Ã¥tgärder." + +# +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"En timerinspelning misslyckades!\n" +"Inaktivera TV och försök igen?\n" + +# +msgid "A/V settings" +msgstr "A / V inställningar" + +msgid "AC3/DTS downmix" +msgstr "AC3 / DTS nedmixning" + +# +msgid "Abort" +msgstr "Avbryt" + +# +msgid "About" +msgstr "Om" + +# +msgid "About..." +msgstr "Om..." + +# +msgid "Accesspoint:" +msgstr "Accespunkt:" + +# +msgid "Action on long powerbutton press" +msgstr "Beteende vid lÃ¥ngt tryck pÃ¥ powerknappen" + +msgid "Action on short powerbutton press" +msgstr "Beteende vid kort tryck pÃ¥ powerknappen" + +# +msgid "Activate Picture in Picture" +msgstr "Aktivera Bild i Bild" + +# +msgid "Activate current configuration" +msgstr "Aktivera nuvarande konfiguration" + +# +msgid "Activate network settings" +msgstr "Aktivera nätverksinställningar" + +# +msgid "Activate the configured network settings." +msgstr "Aktivera nätverksinställningar" + +# +msgid "Adapter settings" +msgstr "Adapterinställningar" + +# +msgid "Add" +msgstr "Lägg till" + +msgid "Add Bookmark" +msgstr "Lägg till bokmärke" + +# +msgid "Add a mark" +msgstr "Lägg till markör" + +# +msgid "Add a nameserver entry" +msgstr "Lägg till en namnserver post" + +# +msgid "Add a new title" +msgstr "Lägg till ny titel" + +# +msgid "Add bookmark" +msgstr "Lägg till bokmärke" + +# +msgid "Add directory to playlist" +msgstr "Lägg till bibliotek till spellista" + +# +msgid "Add file to playlist" +msgstr "Lägg till fil i spellista" + +# +msgid "Add files to playlist" +msgstr "Lägg till fil i spellista" + +msgid "Add more details to the crash log" +msgstr "Vid aktiverad, skapa en mer detaljerad krasch-logg." + +# +msgid "Add provider" +msgstr "Lägg till Provider" + +# +msgid "Add recording (enter recording duration)" +msgstr "Lägg till inspelning (ange inspelningslängd)" + +# +msgid "Add recording (enter recording endtime)" +msgstr "Lägg till inspelning (ange inspelningssluttid)" + +# +msgid "Add recording (indefinitely)" +msgstr "Lägg till inspelning (oändlig)" + +# +msgid "Add recording (stop after current event)" +msgstr "Lägg till inspelning (avsluta efter nuvarande program)" + +# +msgid "Add service" +msgstr "Lägg till service" + +# +msgid "Add timer" +msgstr "Lägg till timer" + +# +msgid "Add title" +msgstr "Lägg till titel" + +# +msgid "Add to bouquet" +msgstr "Lägg till i favoritlista" + +# +msgid "Add to favourites" +msgstr "Lägg till i favoriter" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "Justera 3D-inställningar" + +# +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "Justera färginställningarna sÃ¥ att alla färgnivÃ¥er är urskiljningsbara, men de ska vara sÃ¥ färgfulla som möjligt. När du är nöjd med resultatet, tryck OK för att stänga videoinställningarna eller tryck pÃ¥ nummerknapp för att välja annan testbild." + +msgid "Advanced" +msgstr "" + +# +msgid "Advanced options" +msgstr "Avancerade inställningar" + +# +msgid "Advanced restore" +msgstr "Avancerad Ã¥terskapning" + +# +msgid "Advanced software" +msgstr "Avancerad mjukvara" + +# +msgid "Advanced software plugin" +msgstr "Avancerad mjukvaruplugin" + +msgid "Advanced video enhancement setup" +msgstr "Avancerad videoförbättringsinställning" + +# +msgid "Advanced video setup" +msgstr "Avancerad videoinställning" + +# +msgid "After event" +msgstr "Efter program" + +# +msgid "Album" +msgstr "Album" + +msgid "Alignment of events" +msgstr "Placering av program" + +msgid "Alignment of service names" +msgstr "Placering av kanalnamn" + +# +msgid "All" +msgstr "Alla" + +msgid "All ages" +msgstr "Alla Ã¥ldersgrupper" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "Allokera" + +msgid "Allocate unused memory index" +msgstr "Allokera oanvänt minne" + +msgid "Allow quit movieplayer with exit" +msgstr "Avsluta movieplayer med exitknappen" + +msgid "Allow subtitle language to equal audio language" +msgstr "TillÃ¥t att undertextsprÃ¥k är detsamma som ljudsprÃ¥k" + +msgid "Allow subtitles for hearing impaired" +msgstr "TillÃ¥t undertexter för hörselskadade" + +# +msgid "Alpha" +msgstr "Alpha" + +# +msgid "Alternative" +msgstr "Lägg till alternativ" + +# +msgid "Alternative numbering mode" +msgstr "Alternativt numreringsläge" + +# +msgid "Alternative services tuner priority" +msgstr "Alternativ tunerprioritering" + +msgid "Always ask" +msgstr "FrÃ¥ga alltid" + +msgid "Always hide infobar" +msgstr "" + +# +msgid "An empty filename is illegal." +msgstr "Ett tomt filnamn är inte tillÃ¥tet." + +# +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "Ett fel uppstod vid nedladdning av paketlistan. Vänligen prova igen." + +# +msgid "An unknown error occurred!" +msgstr "Ett okänt fel uppstod!" + +msgid "And will put your receiver in standby over " +msgstr "Din mottagare kommer att sättas i viloläge om" + +msgid "Any activity" +msgstr "Vilken aktivitet som helst" + +# +msgid "Arabic" +msgstr "Arabiska" + +msgid "Are you sure to remove this entry?" +msgstr "" + +# +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"Är du säker pÃ¥ att du vill aktivera den här nätverkskonfigurationen?\n" +"\n" + +# +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"Är du säker att du vill ta bort\n" +"följande backup:\n" + +# +msgid "Are you sure you want to exit this wizard?" +msgstr "Är du säker pÃ¥ att du vill avsluta den här guiden?" + +# +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"Är du säker pÃ¥ att du vill starta om dina nätverkskort?\n" +"\n" + +# +#, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Är du säker pÃ¥ att du vill Ã¥terskapa\n" +" frÃ¥n backup:\n" +"%s\n" +"Din mottagare kommer starta om efter Ã¥terskapningen!" + +# +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Är du säker pÃ¥ att du vill Ã¥terskapa frÃ¥n backup?\n" +"Din mottagare kommer starta om efter Ã¥terskapningen" + +# +msgid "Artist" +msgstr "Artist" + +msgid "Arts/Culture" +msgstr "konst/kultur" + +# +msgid "Ask user" +msgstr "FrÃ¥ga användare" + +# +msgid "Aspect ratio" +msgstr "Bildformat" + +msgid "Assigned CAIds:" +msgstr "Tilldelade CAIds:" + +# +msgid "Assigned services/provider:" +msgstr "Tilldelade kanaler/operatörer:" + +msgid "At beginning" +msgstr "I början" + +msgid "At end" +msgstr "I slutet" + +# +msgid "Audio" +msgstr "Ljud" + +msgid "Audio PID" +msgstr "Ljud PID" + +msgid "Audio language selection 1" +msgstr "Audio sprÃ¥kval 1" + +msgid "Audio language selection 2" +msgstr "Audio sprÃ¥kval 2" + +msgid "Audio language selection 3" +msgstr "Audio sprÃ¥kval 3" + +msgid "Audio language selection 4" +msgstr "Audio sprÃ¥kval 4" + +# +msgid "Audio options..." +msgstr "Ljudval..." + +# +#, python-format +msgid "Audio track (%s) format" +msgstr "LjudspÃ¥r (%s) format" + +# +#, python-format +msgid "Audio track (%s) language" +msgstr "LjudspÃ¥r (%s) sprÃ¥k" + +# +msgid "Author: " +msgstr "Författare: " + +# +msgid "Authoring mode" +msgstr "Authoring läge" + +# +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Auto" + +# +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Auto kapitelsplit varje ? minut (0=aldrig)" + +# +msgid "Auto flesh" +msgstr "Auto hudfärg" + +msgid "Auto focus" +msgstr "Autofokus" + +msgid "Auto focus commencing ..." +msgstr "Autofokus startar..." + +msgid "Auto language selection" +msgstr "Automatiskt sprÃ¥k och ljudval" + +# +msgid "Auto scart switching" +msgstr "Auto scart byte" + +# +msgid "Automatic" +msgstr "Automatisk" + +# +msgid "Automatic scan" +msgstr "Automatisk sökning" + +msgid "Automatically start timeshift after" +msgstr "Starta automatiskt timeshift efter" + +msgid "Automatically turn on external subtitles" +msgstr "Automatisk aktivering av externa undertexter" + +# +msgid "Available format variables" +msgstr "Tillgängliga format variabler" + +# +msgid "B" +msgstr "B" + +# +msgid "BER" +msgstr "BER" + +# +msgid "BER:" +msgstr "BER:" + +# +msgid "Back" +msgstr "Tillbaka" + +# +msgid "Background" +msgstr "Bakgrund" + +# +msgid "Background color" +msgstr "Bakgrundsfärg" + +msgid "Background delete option" +msgstr "Alternativ för radering i bakgrunden" + +msgid "Background delete speed" +msgstr "Hastighet för radering i bakgrunden" + +# +msgid "Backup completed." +msgstr "Backup klar." + +# +msgid "Backup failed." +msgstr "Backup misslyckades." + +# +msgid "Backup is running..." +msgstr "Backup pÃ¥gÃ¥r..." + +# +msgid "Backup system settings" +msgstr "Backup av systeminställningar" + +# +msgid "Band" +msgstr "Band" + +# +msgid "Bandwidth" +msgstr "Bandbredd" + +msgid "Basque" +msgstr "Baskiska" + +# +msgid "Begin time" +msgstr "Starttid" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +# +msgid "Behavior of 0 key in PiP-mode" +msgstr "Beteende av '0' knappen i BiB-läge" + +# +msgid "Behavior when a movie is started" +msgstr "Beteende när en film startas" + +# +msgid "Behavior when a movie is stopped" +msgstr "Beteende när en film stoppas" + +# +msgid "Behavior when a movie reaches the end" +msgstr "Beteende när en film slutar" + +msgid "Big PiP" +msgstr "" + +# +msgid "Bitrate:" +msgstr "Bitrate:" + +msgid "Black screen" +msgstr "Svart skärm" + +msgid "Black screen till locked" +msgstr "Svart skärm tills lÃ¥sning" + +# +msgid "Block noise reduction" +msgstr "Blockera brusreducering" + +# +msgid "Blue boost" +msgstr "BlÃ¥ förstärkning" + +# +msgid "Bookmarks" +msgstr "Bokmärken" + +# +msgid "Brightness" +msgstr "Ljusstyrka" + +msgid "Bulgarian" +msgstr "Bulgariska" + +msgid "Burn DVD" +msgstr "Bränn DVD" + +# +#, python-format +msgid "Burn audio track (%s)" +msgstr "Bränn ljudspÃ¥r (%s)" + +# +msgid "Burn existing image to DVD" +msgstr "Bränn existerande image till DVD" + +msgid "Burn to DVD" +msgstr "Bränn till DVD" + +# +msgid "Bus: " +msgstr "Bus: " + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "Som standard, kommer SNR att visas i dB (om det stöds av tunern). Denna inställning tvingar SNR att visas som en procentsats i stället." + +# +msgid "C" +msgstr "C" + +# +msgid "C-Band" +msgstr "C-Band" + +msgid "CH" +msgstr "" + +# +msgid "CI assignment" +msgstr "CI tilldelning" + +# +msgid "CVBS" +msgstr "CVBS" + +# +msgid "Cable" +msgstr "Kabel" + +msgid "Cable Scan" +msgstr "Kabelskanning" + +# +msgid "Cache thumbnails" +msgstr "Buffra miniatyrer" + +msgid "Calculate" +msgstr "Beräkna" + +msgid "Calculate all positions" +msgstr "Beräkna alla positioner" + +msgid "Calculation complete" +msgstr "Beräkning klar" + +msgid "Calibrate" +msgstr "Kalibrera" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "Kan användas för olika fps mellan externa undertexter och video." + +# +msgid "Cancel" +msgstr "Avbryt" + +msgid "Cannot determine" +msgstr "Kan inte avgöra" + +msgid "Cannot find any signal ..., aborting !" +msgstr "Hittar ingen signal ..., avbryter!" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "Kan inte flytta filer pÃ¥ en annan disk eller system till papperskorgen" + +msgid "Cannot move to trash can" +msgstr "Kan inte flytta till papperskorgen" + +# +msgid "Capacity: " +msgstr "Kapacitet: " + +# +msgid "Card" +msgstr "Kort" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "Centrera DVB-undertexter" + +msgid "Center time-labels and remove date" +msgstr "Centrera tidsmärken och ta bort datum" + +# +msgid "Change bouquets in quickzap" +msgstr "Byt favoritlista med snabbzap" + +msgid "Change pin code" +msgstr "Ändra pin kod" + +# +msgid "Change recording (duration)" +msgstr "Ändra inspelning (längd)" + +# +msgid "Change recording (endtime)" +msgstr "Ändra inspelning (sluttid)" + +msgid "Change repeat and delay settings?" +msgstr "Ändra upprepnings och fördröjningsinställningarna?" + +msgid "Change service PIN" +msgstr "Ändra kanal PIN" + +msgid "Change service PINs" +msgstr "Ändra kanal PINs" + +msgid "Change setup PIN" +msgstr "Ändra installations PIN" + +# +msgid "Change step size" +msgstr "Ändra stegstorlek" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "Ändringslog" + +# +msgid "Channel" +msgstr "Kanal" + +# +msgid "Channel list type" +msgstr "Typ av kanallista" + +# +msgid "Channel not in services list" +msgstr "Kanalen finns ej i kanallistan" + +# +msgid "Channel selection" +msgstr "Kanallista" + +# +msgid "Channel:" +msgstr "Kanal:" + +# +msgid "Channellist menu" +msgstr "Kanallista meny" + +# +msgid "Chap." +msgstr "Kap." + +# +msgid "Chapter" +msgstr "Kapitel" + +# +msgid "Chapter:" +msgstr "Kapitel:" + +# +msgid "Check" +msgstr "Kontrollera" + +msgid "Check the internet connection" +msgstr "Kontrollera internetanslutningen" + +msgid "Check the internet connection again" +msgstr "Kontrollera internetanslutningen igen" + +# +msgid "Checking filesystem..." +msgstr "Kontrollerar filsystem..." + +msgid "Checking the internet connection" +msgstr "Kontrollerar Internetanslutningen" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" +"Kontrollerar tuner %d\n" +"DiSEqC port%s för %s" + +msgid "Children/Youth" +msgstr "barn/ungdom" + +msgid "Choose which tuner to configure." +msgstr "Välj vilken tuner som skall konfigureras." + +# +msgid "Circular left" +msgstr "Cirkulär vänster" + +# +msgid "Circular right" +msgstr "Cirkulär höger" + +# +msgid "Cleanup" +msgstr "Rensa" + +msgid "Clear" +msgstr "Rensa" + +# +msgid "Clear before scan" +msgstr "Rensa före sökning" + +msgid "Clear fixed" +msgstr "Rensning klar" + +# +msgid "Clear log" +msgstr "Rensa logg" + +# +msgid "Clear playlist" +msgstr "Rensa spellista" + +# +msgid "Close" +msgstr "Stäng" + +msgid "Close PiP on exit" +msgstr "Avsluta BiB med exitknappen" + +# +msgid "Close title selection" +msgstr "Stäng titelval" + +msgid "Code rate HP" +msgstr "Kodhastighet HP" + +msgid "Code rate LP" +msgstr "Kodhastighet LP" + +# +msgid "Coderate HP" +msgstr "Kodhastighet HP" + +# +msgid "Coderate LP" +msgstr "Kodhastighet LP" + +# +msgid "Collection name" +msgstr "Samlingsnamn" + +# +msgid "Collection settings" +msgstr "Samlingsinställning" + +# +msgid "Color format" +msgstr "Färgformat" + +# +msgid "Command execution..." +msgstr "Kommando exekvering..." + +# +msgid "Command order" +msgstr "Kommandoordning" + +# +msgid "Common Interface" +msgstr "Common Interface" + +# +msgid "Common Interface assignment" +msgstr "Common Interface" + +# +msgid "Communication" +msgstr "Kommunikation" + +# +msgid "Compact flash" +msgstr "Compact Flash" + +# +msgid "Complete" +msgstr "Komplett" + +# +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "Komplex (tillÃ¥ter mixning av ljudspÃ¥r och aspekt)" + +msgid "Composition of the recording filenames" +msgstr "Sammansättning av inspelningens filnamn" + +msgid "Configuration mode" +msgstr "Konfigurationsläge" + +#, python-format +msgid "Configuration mode: %s" +msgstr "Konfigurationsläge: %s" + +# +msgid "Configuration..." +msgstr "Konfiguration..." + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "Konfigurera ytterligare en fördröjning för att förbättra extern undertextsynkronisering." + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "Konfigurera ytterligare en fördröjning för att förbättra undertextsynkronisering." + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "Konfigurera hur länge infobalken är synlig efter aktivering." + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "Konfigurera hur mÃ¥nga minuter avslutade program ska förbli synliga i EPG. Användbart när du behöver information om ett program som nyligen har avslutats eller har försenats." + +msgid "Configure how recording filenames are constructed." +msgstr "Konfigurera hur inspelningens filnamn är sammansatt." + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +# +msgid "Configure interface" +msgstr "Konfigurera kort" + +# +msgid "Configure nameservers" +msgstr "Konfigurera namnservers" + +msgid "Configure on which devices the background delete option should be used." +msgstr "Konfigurera pÃ¥ vilka enheter som bakgrundsradering ska användas." + +msgid "Configure remote control type" +msgstr "Konfigurera fjärrkontrolls typ" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "Konfigurera DiSEqC läget för denna LNB." + +# +msgid "Configure the IP address." +msgstr "Konfigurera IP-adressen." + +msgid "Configure the aspect ratio of the screen." +msgstr "Konfigurera bildförhÃ¥llandet pÃ¥ skärmen." + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +# +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "Konfigurera beteendet när en film stoppas." + +# +msgid "Configure the behavior when movie playback is started." +msgstr "Konfigurera beteendet när en film startas." + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "Konfigurera beteendet när man nÃ¥r slutet av en film, under filmuppspelning." + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "Konfigurera undertextens kantbred . Den mörka gränsen gör att undertexter är lättare att läsa pÃ¥ en ljus bakgrund." + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "Konfigurera ljusstyrkan pÃ¥ frontpanelens display i viloläge." + +msgid "Configure the brightness level of the front panel display." +msgstr "Konfigurera ljusstyrkan pÃ¥ frontpanelens display." + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "Konfigurera färgen pÃ¥ externa undertexter, alternativ (normalt i vitt, italic i gult, bold i cyan, understreck i grönt), vit eller gul." + +msgid "Configure the color of the teletext subtitles." +msgstr "Konfigurera färgen pÃ¥ Teletextens undertexter." + +msgid "Configure the contrast level of the front panel display." +msgstr "Konfigurera kontrastnivÃ¥n pÃ¥ frontpanelens display." + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "Konfigurera varaktighet i minuter för skärmsläckaren." + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "Konfigurera varaktigheten när mottagaren bör stängas av om mottagaren är i viloläge." + +msgid "Configure the first audio language (highest priority)." +msgstr "Konfigurera det första ljudsprÃ¥ket (högsta prioritet)." + +msgid "Configure the first subtitle language (highest priority)." +msgstr "Konfigurera det första undertextsprÃ¥ket (högsta prioritet)." + +msgid "Configure the font size of the subtitles." +msgstr "Konfigurera fontstorleken pÃ¥ undertexter." + +msgid "Configure the fourth audio language." +msgstr "Konfigurera det fjärde ljudsprÃ¥ket." + +# +msgid "Configure the fourth subtitle language." +msgstr "Konfigurera det fjärde undertextsprÃ¥ket." + +msgid "Configure the function of a long press on the power button." +msgstr "Konfigurera beteendet vid ett lÃ¥ngt tryck pÃ¥ powerknappen." + +msgid "Configure the function of a short press on the power button." +msgstr "Konfigurera beteendet vid ett kort tryck pÃ¥ powerknappen." + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "Konfigurera beteendet pÃ¥ '0' knappen när BiB är aktiv." + +# +msgid "Configure the gateway." +msgstr "Konfigurera gatewayen." + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "Konfigurera den generella ljudfördröjningen av Dolby Digital ljudspÃ¥r." + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "Konfigurera den generella ljudfördröjningen av stereo ljudspÃ¥r." + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "Konfigurera när hÃ¥rddisken ska gÃ¥ i viloläge efter angiven tid." + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "Konfigurera den horisontella placeringen av undertexter." + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "Konfigurera den första framÃ¥thastigheten. När du trycker pÃ¥ framÃ¥tknappen, kommer snabbspolning starta vid denna hastighet." + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "Konfigurera den första bakÃ¥thastigheten. När du trycker pÃ¥ bakÃ¥tknappen, kommer snabbspolning starta vid denna hastighet." + +msgid "Configure the latitude of your location." +msgstr "Konfigurera latituden för din plats." + +msgid "Configure the longitude of your location." +msgstr "Konfigurera longituden för din plats." + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "Konfigurera det minsta diskutrymmet som ska vara tillgänglig för inspelning. När utrymmet sjunker under detta värde, kommer raderade objekt tas bort frÃ¥n papperskorgen." + +# +msgid "Configure the nameserver (DNS)." +msgstr "Konfigurera namnservern (DNS)." + +# +msgid "Configure the netmask." +msgstr "Konfigurera nätmasken." + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "Konfigurera det antal dagar objekt är kvar i papperskorgen innan de automatiskt tas bort." + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "Konfigurera det antal dagar gamla timers sparas innan de automatiskt tas bort frÃ¥n timerlistan." + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "Konfigurera avkodningsfördröjningen i millisekunder (offline). Den konfigurerade fördröjningen iakttas vid varje paritetändring." + +msgid "Configure the possible fast forward speeds." +msgstr "Konfigurera hastigheterna för snabbspolning framÃ¥t." + +msgid "Configure the possible rewind speeds." +msgstr "Konfigurera hastigheterna för snabbspolning bakÃ¥t." + +msgid "Configure the primary EPG language." +msgstr "Konfigurera det primära EPG sprÃ¥ket." + +msgid "Configure the refresh rate of the screen." +msgstr "Konfigurera uppdateringsfrekvensen pÃ¥ skärmen." + +msgid "Configure the screen resolution in PC output mode." +msgstr "Konfigurera skärmupplösningen i PC läge." + +msgid "Configure the second audio language." +msgstr "Konfigurera det andra ljudsprÃ¥ket." + +# +msgid "Configure the second subtitle language." +msgstr "Konfigurera det andra undertextsprÃ¥ket." + +msgid "Configure the secondary EPG language." +msgstr "Konfigurera det sekundära EPG sprÃ¥ket." + +msgid "Configure the sharpness of the video scaling." +msgstr "Konfigurera skärpan i videoskalningen." + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "Konfigurera hopptidsintervallet för '1'/'3' knapparna." + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "Konfigurera hopptidsintervallet för '4'/'6' knapparna." + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "Konfigurera hopptidsintervallet för '7'/'9' knapparna." + +# +msgid "Configure the slow motion speeds." +msgstr "Konfigurera hastigheterna för slowmotion." + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "Konfigurera borttagningshastigheten i bakgrunden. Lägre hastighet kommer att förbruka mindre hÃ¥rddiskprestanda." + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "Konfigurera fördröjningen pÃ¥ undertexten när timinginformation inte är tillgänglig." + +msgid "Configure the third audio language." +msgstr "Konfigurera det tredje ljudsprÃ¥ket." + +# +msgid "Configure the third subtitle language." +msgstr "Konfigurera det tredje undertextsprÃ¥ket." + +msgid "Configure the transparency of the OSD." +msgstr "Konfigurera transparensen för OSD." + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "Konfigurera transparensen pÃ¥ den svarta bakgrunden för grafiska DVB-undertexter." + +msgid "Configure the tuner mode." +msgstr "Konfigurera tunerläget." + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "Konfigurera den typ av ikon statusindikeringen visar i filmlistan." + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "Konfigurera den vertikala positionen för undertexterna, uppmätt frÃ¥n botten av skärmen." + +msgid "Configure the video output mode (or resolution)." +msgstr "Konfigurera videoutgÃ¥ngsläget eller upplösningen." + +msgid "Configure the way in which the receiver changes channels." +msgstr "Konfigurera hur mottagaren ändrar kanalerna." + +msgid "Configure where completed timers show up in the timer list." +msgstr "Konfigurera var färdiga timers visas i timerlistan." + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "Konfigurera om (och hur länge) den andra infobalken visas när du trycker pÃ¥ OK tvÃ¥ gÃ¥nger. Den andra infobalken innehÃ¥ller ytterligare information om den aktuella kanalen." + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "Konfigurera om flerkanals ljudspÃ¥r ska mixas ned till stereo." + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "Vid aktiverad, kommer en ikon att visas när motoriserad parabol är i rörelse." + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "Konfigurera vilken behörighetsnivÃ¥ som ska användas för konfigurationsmenyn. ExpertnivÃ¥ ger tillgÃ¥ng till alla objekt." + +msgid "Configure which color format should be used on the SCART output." +msgstr "Konfigurera vilket färgformat som ska användas pÃ¥ SCART-utgÃ¥ngen." + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "Konfigurera vilken tunertyp som kommer att föredras, när samma kanal är tillgänglig pÃ¥ olika typer av tuners." + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "Konfigurera vilken tuner som kommer att föredras, dÃ¥ mer än en tuner är tillgänglig. Om du väljer 'auto' kommer systemet att prioritera tunern som har det lägsta antalet kanaler/satelliter." + +# +msgid "Configure your internal LAN" +msgstr "Konfigurera ditt interna LAN" + +# +msgid "Configure your network again" +msgstr "Konfigurera ditt nätverk igen" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "Konfigurera dina nätverksinställningar, och tryck OK för att starta skanningen" + +# +msgid "Configure your wireless LAN again" +msgstr "Konfigurera ditt trÃ¥dlösa LAN igen" + +msgid "Configures which video output connector will be used." +msgstr "Konfigurera vilken videoutgÃ¥ng som ska användas." + +# +msgid "Configuring" +msgstr "Konfigurering" + +# +msgid "Conflicting timer" +msgstr "Timerkonflikt" + +# +msgid "Connect" +msgstr "Anslut" + +# +msgid "Connect to a wireless network" +msgstr "Anslut till ett TrÃ¥dlöst nätverk" + +msgid "Connected satellites" +msgstr "" + +# +msgid "Connected to" +msgstr "Ansluten till" + +# +msgid "Connected!" +msgstr "Ansluten!" + +# +msgid "Constellation" +msgstr "Konstellation" + +# +msgid "Content does not fit on DVD!" +msgstr "InnehÃ¥llet för stort för en DVD!" + +msgid "Continue" +msgstr "Forsätt" + +# +msgid "Continue in background" +msgstr "Fortsätta i bakgrund" + +# +msgid "Continue playback" +msgstr "Fortsätt spela" + +# +msgid "Continue playing" +msgstr "Fortsätt spela" + +msgid "Continues play (loop)" +msgstr "Kontinuerlig uppspelning (loop)" + +# +msgid "Contrast" +msgstr "Kontrast" + +msgid "Convert ext3 filesystem to ext4" +msgstr "Konvertera filsystemet ext3 till ext4" + +msgid "Convert ext3 to ext4" +msgstr "Konvertera ext3 till ext4" + +msgid "Converting ext3 to ext4..." +msgstr "Konverterar ext3 till ext4..." + +msgid "Copy" +msgstr "Kopiera" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "Kunde inte ansluta till mottagare .NFI image feed Server:" + +msgid "Could not find installed channel list." +msgstr "Det gick inte att hitta den installerade kanallistan." + +# +msgid "Could not load medium! No disc inserted?" +msgstr "Kunde inte ladda media! Ingen disk istoppad?" + +# +msgid "Could not open Picture in Picture" +msgstr "Gick inte att öppna Bild i Bild" + +# +#, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "Kunde inte spela in pÃ¥ grund av timerkonflikt med %s" + +#, python-format +msgid "Could not record due to invalid service %s" +msgstr "Kunde inte spela in pÃ¥ grund av ogiltig kanal %s" + +# +msgid "Create DVD-ISO" +msgstr "Skapa DVD-ISO" + +msgid "Create more detailed crash log" +msgstr "Skapa en mer detaljerad krasch-logg" + +# +#, python-format +msgid "Creating directory %s failed." +msgstr "Skapande av katalogen %s misslyckades." + +msgid "Creating filesystem" +msgstr "Skapar filsystem" + +msgid "Creating partition" +msgstr "Skapar partition" + +# +msgid "Croatian" +msgstr "Kroatiska" + +msgid "Current CEC address" +msgstr "Nuvarande CEC adress" + +msgid "Current device: " +msgstr "Nuvarande enhet: " + +msgid "Current event EPG" +msgstr "Nuvarande program EPG" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +# +msgid "Current settings:" +msgstr "Nuvarande inställningar:" + +# +msgid "Current transponder" +msgstr "Nuvarande transponder" + +# +msgid "Current value: " +msgstr "Nuvarande värde: " + +# +msgid "Current version:" +msgstr "Nuvarande version:" + +msgid "Currently installed image" +msgstr "Nuvarande installerade image" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +# +msgid "Custom skip time for '1'/'3' buttons" +msgstr "Valfri hopptid för '1'/'3' knapparna" + +# +msgid "Custom skip time for '4'/'6' buttons" +msgstr "Valfri hopptid för '4'/'6' knapparna" + +# +msgid "Custom skip time for '7'/'9' buttons" +msgstr "Valfri hopptid för '7'/'9' knapparna" + +# +msgid "Customize" +msgstr "Anpassningar" + +msgid "Customize channel list cursor behavior" +msgstr "" + +# +msgid "Cut" +msgstr "Klipp" + +# +msgid "Cutlist editor..." +msgstr "Klipplist editor..." + +# +msgid "Czech" +msgstr "Tjeckiska" + +# +msgid "D" +msgstr "D" + +# +msgid "DHCP" +msgstr "DHCP" + +# +msgid "DMM advanced" +msgstr "avancerad" + +msgid "DMM normal" +msgstr "normal" + +# +msgid "DUAL LAYER DVD" +msgstr "DUAL LAYER DVD" + +msgid "DVB subtitle black transparency" +msgstr "Svart transparens för DVB-undertexter" + +msgid "DVB-C" +msgstr "DVB-C" + +msgid "DVB-C ANNEX C" +msgstr "DVB-C ANNEX C" + +# +msgid "DVB-S" +msgstr "DVB-S" + +# +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "DVB-T" + +msgid "DVB-T2" +msgstr "DVB-T2" + +msgid "DVD data format" +msgstr "DVD data format" + +# +msgid "DVD file browser" +msgstr "DVD Filutforskare" + +# +msgid "DVD media toolbox" +msgstr "DVD media verktyg" + +# +msgid "DVD player" +msgstr "DVD Spelare" + +msgid "DVD titlelist" +msgstr "DVD Titellista" + +# +msgid "Danish" +msgstr "Danska" + +# +msgid "Date" +msgstr "Datum" + +# +msgid "Date/time input" +msgstr "Tid/Datum inmatning" + +# +msgid "Deep standby" +msgstr "Stäng av" + +# +msgid "Default" +msgstr "Grund" + +# +msgid "Default movie location" +msgstr "Normal filmplats" + +# +msgid "Default settings" +msgstr "Grundinställningar" + +msgid "Delay before key repeat starts:" +msgstr "Fördröjning innan tangentrepetitionen startar:" + +msgid "Delay for external subtitles" +msgstr "Fördröjning av externa undertexter" + +# +msgid "Delete" +msgstr "Ta bort" + +# +msgid "Delete entry" +msgstr "Ta bort post" + +# +msgid "Delete failed!" +msgstr "Borttagning misslyckades!" + +# +msgid "Delete file" +msgstr "Ta bort fil" + +# +msgid "Delete playlist entry" +msgstr "Ta bort post i spellista" + +# +msgid "Delete saved playlist" +msgstr "Ta bort sparad spellista" + +msgid "Delete timer" +msgstr "" + +# +msgid "Delete..." +msgstr "Ta bort..." + +msgid "Deleted" +msgstr "Raderad" + +msgid "Deleted items" +msgstr "Raderade objekt" + +msgid "Depth" +msgstr "Djup" + +msgid "Descramble http streams" +msgstr "Avkoda http-strömmar" + +# +msgid "Description" +msgstr "Beskrivning" + +# +msgid "Deselect" +msgstr "Avmarkera" + +msgid "Details for plugin: " +msgstr "Detaljer för plugin: " + +msgid "Detected HDD:" +msgstr "Hittad HDD:" + +# +msgid "Detected NIMs:" +msgstr "Hittade tuners:" + +msgid "Devicename:" +msgstr "Enhetens namn:" + +msgid "Devide" +msgstr "" + +# +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +# +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +# +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +# +msgid "DiSEqC mode" +msgstr "DiSEqC läge" + +# +#, python-format +msgid "DiSEqC port %s: %s" +msgstr "DiSEqC port %s: %s" + +# +msgid "DiSEqC-tester settings" +msgstr "DiSEqC-Tester inställningar" + +# +msgid "Dialing:" +msgstr "Ringer upp:" + +# +msgid "Digital contour removal" +msgstr "Digital contour borttagning" + +# +msgid "Direct playback of linked titles without menu" +msgstr "Direkt playback av länkade titlar utan meny" + +msgid "Directory" +msgstr "Katalog" + +# +#, python-format +msgid "Directory %s does not exist." +msgstr "Bibliotek %s finns ej." + +#, python-format +msgid "Directory %s nonexistent." +msgstr "Katalogen %s existerar inte." + +# +msgid "Directory browser" +msgstr "Biblioteksbläddrare" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "Katalogen innehÃ¥ller %d fil(er) och %d underkataloger.\n" + +#, python-format +msgid "Directory contains %s and %s." +msgstr "Katalogen innehÃ¥ller %s och %s." + +# +msgid "Disable" +msgstr "Avaktivera" + +# +msgid "Disable Picture in Picture" +msgstr "Avaktivera Bild i Bild" + +msgid "Disable background scanning" +msgstr "Avaktivera skanning i bakgrunden" + +msgid "Disable timer" +msgstr "" + +# +msgid "Disabled" +msgstr "Avaktivera" + +# +msgid "Disconnect" +msgstr "Bryt anslutning" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "Diskutrymme att reservera för inspelningar (i GB)" + +# +msgid "Display 16:9 content as" +msgstr "Visa 16:9 sändning som" + +# +msgid "Display 4:3 content as" +msgstr "Visa 4:3 sändning som" + +# +msgid "Display >16:9 content as" +msgstr "Visa 16:9 sändning som" + +# +msgid "Display and userinterface" +msgstr "Display och Användargränssnitt" + +msgid "Display message before playing next movie" +msgstr "Visa meddelande innan nästa film spelas" + +# +msgid "Display setup" +msgstr "Displayinställningar" + +# +msgid "Do not change" +msgstr "ändra inte" + +# +msgid "Do not record" +msgstr "spela inte in" + +# +msgid "Do nothing" +msgstr "Gör inget" + +# +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Vill du verkligen kontrollera filsystemet?\n" +"Detta kan ta lÃ¥ng tid!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" +"Vill du verkligen konvertera filsystemet?\n" +"Du kan inte gÃ¥ tillbaka!" + +# +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Vill du verkligen ta bort %s?" + +# +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"Vill du verkligen ladda ner\n" +"pluginet \"%s\"?" + +# +msgid "Do you really want to exit?" +msgstr "Vill du verkligen avsluta?" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" +"Vill du verkligen initiera enheten?\n" +"All data pÃ¥ disken kommer att raderas!" + +# +#, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"Vill du verkligen ta bort\n" +"pluginet \"%s\"?" + +# +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Vill du verkligen ta bort bibliotek %s frÃ¥n disken?" + +# +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Vill du verkligen ta bort bokmärket frÃ¥n %s?" + +msgid "Do you want this?" +msgstr "Vill du göra detta?" + +# +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Vill du bränna denna samlig till ett DVD media?" + +# +msgid "Do you want to do a service scan?" +msgstr "Vill du söka efter kanaler?" + +# +msgid "Do you want to do another manual service scan?" +msgstr "Vill du göra en ny manuell kanalsökning?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "Vill du ladda ner image till %s ?" + +# +msgid "Do you want to install a channel list?" +msgstr "Vill du installera en kanallista?" + +# +msgid "Do you want to install the package:\n" +msgstr "Vill du installera paketet:\n" + +# +msgid "Do you want to play DVD in drive?" +msgstr "Vill du spela upp DVD i spelaren?" + +# +msgid "Do you want to preview this DVD before burning?" +msgstr "Vill du förhandsvisa denna DVD innan bränning?" + +msgid "Do you want to reboot your receiver?" +msgstr "Vill du starta om din mottagare?" + +# +msgid "Do you want to remove the package:\n" +msgstr "Vill du avinstallera paketet:\n" + +# +msgid "Do you want to restore your settings?" +msgstr "Vill du Ã¥terställa dina inställningar?" + +# +msgid "Do you want to resume this playback?" +msgstr "Vill du Ã¥teruppta uppspelningen?" + +#, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Vill du uppdatera din mottagare till %s?" + +msgid "Do you want to update your receiver?" +msgstr "Vill du uppdatera din mottagare?" + +# +msgid "Do you want to upgrade the package:\n" +msgstr "Vill du uppgradera paketet:\n" + +# +msgid "Don't stop current event but disable coming events" +msgstr "Avsluta inte pÃ¥gÃ¥ende program men avaktivera följande" + +# +#, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "Klar - installerat, uppgraderat eller avinstallerat %d paket (%s)" +msgstr[1] "Klar - installerat, uppgraderat eller avinstallerat %d paket (%s)" + +# +msgid "Download" +msgstr "Nedladdning" + +#, python-format +msgid "Download %s from server" +msgstr "Ladda %s frÃ¥n Server" + +# +msgid "Download .NFI-files for USB-flasher" +msgstr "Ladda ner .NFI filer för USB-flasher" + +# +msgid "Download plugins" +msgstr "Ladda ner plugins" + +# +msgid "Downloadable new plugins" +msgstr "Nerladdningsbara nya plugins" + +# +msgid "Downloadable plugins" +msgstr "Nerladdningsbara plugins" + +# +msgid "Downloading" +msgstr "Laddar ner" + +# +msgid "Downloading plugin information. Please wait..." +msgstr "Hämtar plugininformation. Var vänlig vänta..." + +# +msgid "Dutch" +msgstr "Holländska" + +# +msgid "Dynamic contrast" +msgstr "Dynamisk kontrast" + +# +msgid "E" +msgstr "E" + +msgid "EPG" +msgstr "EPG" + +msgid "EPG language selection 1" +msgstr "EPG sprÃ¥kval 1" + +msgid "EPG language selection 2" +msgstr "EPG sprÃ¥kval 2" + +# +msgid "EPG selection" +msgstr "EPG val" + +msgid "EPG settings" +msgstr "EPG-inställningar" + +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "FEL - misslyckades söka (%s)!" + +# +msgid "East" +msgstr "Öst" + +msgid "East limit set" +msgstr "Östra gränsen satt" + +# +msgid "Edit" +msgstr "Ändra" + +# +msgid "Edit DNS" +msgstr "Ändra DNS" + +# +msgid "Edit bouquets list" +msgstr "Ändra favoritlistor" + +# +msgid "Edit chapters of current title" +msgstr "Ändra kapitel i nuvarande titel" + +# +msgid "Edit services list" +msgstr "Ändra kanallista" + +# +msgid "Edit settings" +msgstr "Ändra inställningar" + +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "Ändra namnserverkonfigurationen för din mottagare.\n" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "Ändra nätverkskonfigurationen för din mottagare.\n" + +msgid "Edit timer" +msgstr "" + +# +msgid "Edit title" +msgstr "Ändra titel" + +msgid "Edit upgrade source url." +msgstr "Ändra url till uppgraderingskälla." + +msgid "Education/Science/..." +msgstr "Utbildning/Vetenskap/..." + +# +msgid "Electronic Program Guide" +msgstr "Elektronisk Program Guide" + +# +msgid "Enable" +msgstr "Aktivera" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +# +msgid "Enable 5V for active antenna" +msgstr "Aktivera 5V för aktiv antenn" + +msgid "Enable EIT EPG" +msgstr "Aktivera EIT EPG" + +msgid "Enable MHW EPG" +msgstr "Aktivera MHW EPG" + +msgid "Enable Netmed EPG" +msgstr "Aktivera Netmed EPG" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "Aktivera ViaSat EPG" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +msgid "Enable bouquet selection in multi-EPG" +msgstr "Aktivera multi-EPG favoritlisteval." + +msgid "Enable freesat EPG" +msgstr "Aktivera freeSat EPG" + +# +msgid "Enable multiple bouquets" +msgstr "Aktivera flera favoritlistor" + +# +msgid "Enable parental control" +msgstr "Aktivera föräldrakontroll" + +msgid "Enable teletext caching" +msgstr "Aktivera teletext cache" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +# +msgid "Enabled" +msgstr "Aktiverad" + +# +msgid "Encrypted: " +msgstr "Krypterad: " + +# +msgid "Encryption" +msgstr "Kryptering" + +# +msgid "Encryption key" +msgstr "Krypteringsnyckel" + +# +msgid "Encryption key type" +msgstr "Krypterings Nyckelvariant" + +# +msgid "Encryption:" +msgstr "Kryptering:" + +# +msgid "End time" +msgstr "Sluttid" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "Sluttid för att ignorera inaktiv insomningstimer" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +# +msgid "English" +msgstr "Engelska" + +msgid "Enigma2 skin selector" +msgstr "enigma2 skin väljare" + +# +msgid "Enter main menu..." +msgstr "GÃ¥ till huvudmeny..." + +# +msgid "Enter pin code" +msgstr "Ange pin kod" + +msgid "Enter the service pin" +msgstr "Ange kanal pin" + +msgid "Equal to" +msgstr "" + +# +msgid "Error" +msgstr "Fel" + +msgid "Error code" +msgstr "Felkod" + +# +msgid "Error executing plugin" +msgstr "Fel vid körning av plugin" + +# +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Fel: %s\n" +"Försöka igen?" + +# +msgid "Estonian" +msgstr "Estniska" + +msgid "Ethernet network interface" +msgstr "Ethernet nätverkskort" + +msgid "Event font size (relative to skin size)" +msgstr "Programmets fontstorlek (relativt till utseendets storlek)" + +# +msgid "Event view" +msgstr "Programöversikt" + +msgid "Event view menu" +msgstr "Meny för programöversikt" + +msgid "Everywhere" +msgstr "Överallt" + +msgid "Exceeds dual layer medium!" +msgstr "Överskrider dual layer media!" + +msgid "Execution finished!!" +msgstr "Exekvering färdig!!" + +msgid "Execution progress:" +msgstr "Exekvering pÃ¥gÃ¥r:" + +# +msgid "Exif" +msgstr "Exif" + +# +msgid "Exit" +msgstr "Avsluta" + +msgid "Exit EPG" +msgstr "Avsluta EPG" + +# +msgid "Exit editor" +msgstr "Avsluta editor" + +msgid "Exit input device selection." +msgstr "Avsluta val av inmatningsenhet." + +msgid "Exit media player?" +msgstr "Avsluta mediaspelare?" + +# +msgid "Exit mediaplayer" +msgstr "Avsluta mediaspelare" + +# +msgid "Exit movie list" +msgstr "Avsluta filmlista" + +# +msgid "Exit movie player?" +msgstr "Avsluta movieplayer?" + +# +msgid "Exit nameserver configuration" +msgstr "Avsluta namnserverkonfiguration" + +# +msgid "Exit network interface list" +msgstr "Avsluta nätverkskorts lista" + +# +msgid "Exit network wizard" +msgstr "Avsluta nätverksguiden" + +# +msgid "Exit the wizard" +msgstr "Avsluta guiden" + +# +msgid "Expert" +msgstr "Expert" + +msgid "Extend sleeptimer 15 minutes" +msgstr "Förläng insomningstimer 15 minuter" + +# +msgid "Extended Software" +msgstr "Utökad Mjukvaru" + +# +msgid "Extended Software Plugin" +msgstr "Utökad Mjukvaruplugin" + +# +msgid "Extended network setup plugin..." +msgstr "Utökad Nätverksinstallations plugin..." + +# +msgid "Extended setup..." +msgstr "Utökad installation..." + +# +msgid "Extensions" +msgstr "Utökningar" + +# +msgid "Extensions management" +msgstr "Utökningshanterare" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "Extern undertextfärg" + +msgid "Extra motor options" +msgstr "" + +# +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "FTA" + +# +msgid "Factory reset" +msgstr "FabriksÃ¥terställning" + +# +msgid "Failed" +msgstr "Misslyckades" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "Misslyckades med att skriva /tmp/positionersetup.log:" + +# +#, python-format +msgid "Fan %d" +msgstr "Fläkt %d" + +# +#, python-format +msgid "Fan %d PWM" +msgstr "Fläkt %d PWM" + +# +#, python-format +msgid "Fan %d voltage" +msgstr "Fläkt %d Volt" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +# +msgid "Fast" +msgstr "Snabb" + +# +msgid "Fast DiSEqC" +msgstr "Snabb DiSEqC" + +msgid "Fast Scan" +msgstr "Snabbskanning" + +# +msgid "Fast epoch" +msgstr "Snabb epoch" + +# +msgid "Fast forward speeds" +msgstr "Hastigheter för snabbspolning framÃ¥t" + +# +msgid "Favourites" +msgstr "Favoriter" + +msgid "File appears to be busy.\n" +msgstr "Filen verkar vara lÃ¥st.\n" + +# +msgid "Filesystem check" +msgstr "Filsystemskontroll" + +msgid "Final position at" +msgstr "Slutgiltig position vid" + +msgid "Final position at index" +msgstr "Slutgiltig position vid index" + +msgid "Fine movement" +msgstr "Finjustering" + +msgid "Finetune" +msgstr "Fininställning" + +# +msgid "Finished" +msgstr "Klart" + +# +msgid "Finished configuring your network" +msgstr "Klar med konfigureringen av ditt nätverk" + +# +msgid "Finished restarting your network" +msgstr "Klar med omstarten av ditt nätverk" + +# +msgid "Finnish" +msgstr "Finska" + +msgid "Fixed" +msgstr "Fixerad" + +# +msgid "Flash" +msgstr "Flash" + +# +msgid "Flashing failed" +msgstr "Flashning misslyckades" + +# +msgid "Following tasks will be done after you press OK!" +msgstr "Följande saker kommer utföras efter du tryckt pÃ¥ OK!" + +# +msgid "Format" +msgstr "Format" + +msgid "Forward volume keys" +msgstr "Volymknappar framÃ¥t" + +# +msgid "Frame size in full view" +msgstr "Ramstorlek i fullskärm" + +# +msgid "French" +msgstr "Franska" + +# +msgid "Frequency" +msgstr "Frekvens" + +# +msgid "Frequency bands" +msgstr "Frekvensband" + +# +msgid "Frequency scan step size(khz)" +msgstr "Frekvenssökningssteg (khz)" + +# +msgid "Frequency steps" +msgstr "Frekvenssteg" + +msgid "Frequency:" +msgstr "Frekvens:" + +# +msgid "Fri" +msgstr "Fre" + +# +msgid "Friday" +msgstr "Fredag" + +msgid "From :" +msgstr "FrÃ¥n :" + +# +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Frontprocessor version: %d" + +msgid "Full transparency" +msgstr "Helt transparent" + +msgid "Fulview resulution" +msgstr "Fullbildsupplösning" + +msgid "Function of OK button" +msgstr "Funktion pÃ¥ OK knappen" + +msgid "Further Options" +msgstr "" + +# +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"GUI mÃ¥ste startas om för nytt utseende\n" +"Vill du starta om GUI nu?" + +# +msgid "Gateway" +msgstr "Gateway" + +# +msgid "General AC3 delay" +msgstr "Generell AC3 fördröjning" + +# +msgid "General PCM delay" +msgstr "Generell PCM fördröjning" + +# +msgid "Genre" +msgstr "Genre" + +# +msgid "German" +msgstr "Tyska" + +msgid "Get latest experimental image" +msgstr "Tag senaste experimentella image" + +msgid "Get latest release image" +msgstr "Tag senaste release image" + +# +msgid "Getting plugin information. Please wait..." +msgstr "Hämtar plugininformation. Var vänlig vänta..." + +msgid "Go down the list" +msgstr "GÃ¥ ner i listan" + +msgid "Go to first movie or last item" +msgstr "GÃ¥ till första filmen eller sista objektet" + +msgid "Go to first movie or top of list" +msgstr "GÃ¥ till första filmen eller längst upp i listan" + +msgid "Go to first service" +msgstr "GÃ¥ till första tjänsten" + +msgid "Go to last service" +msgstr "GÃ¥ till senaste tjänsten" + +msgid "Go to next event" +msgstr "GÃ¥ till nästa program" + +msgid "Go to next page of service" +msgstr "GÃ¥ till nästa sidas tjänster" + +msgid "Go to previous event" +msgstr "GÃ¥ till föregÃ¥ende program" + +msgid "Go to previous page of service" +msgstr "GÃ¥ till föregÃ¥ende sidas tjänster" + +msgid "Go up the list" +msgstr "GÃ¥ upp i listan" + +msgid "Goto" +msgstr "GÃ¥ till" + +# +msgid "Goto 0" +msgstr "GÃ¥ till 0" + +msgid "Goto :" +msgstr "GÃ¥ till :" + +msgid "Goto X" +msgstr "GÃ¥ till X" + +msgid "Goto index position" +msgstr "GÃ¥ till indexpositionen" + +msgid "Goto next day of events" +msgstr "GÃ¥ till nästa dags program" + +msgid "Goto next page of events" +msgstr "GÃ¥ till nästa program sida" + +# +msgid "Goto position" +msgstr "GÃ¥ till position" + +msgid "Goto previous day of events" +msgstr "GÃ¥ till föregÃ¥ende dags program" + +msgid "Goto previous page of events" +msgstr "GÃ¥ till föregÃ¥ende program sida" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "GÃ¥ till X-kalibrering" + +msgid "GraphMultiEpg Settings" +msgstr "GraphMultiEpg inställningar" + +# +msgid "Graphical Multi EPG" +msgstr "Grafisk Multi EPG" + +# +msgid "Greek" +msgstr "Grekiska" + +# +msgid "Green boost" +msgstr "Grön förstärkning" + +msgid "Guard interval" +msgstr "Guard intervall" + +msgid "HD list" +msgstr "HD-lista" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "Hantera standby frÃ¥n TV" + +msgid "Handle wakeup from TV" +msgstr "Hantera wakeup frÃ¥n TV" + +# +msgid "Hard disk" +msgstr "HÃ¥rddisk" + +# +msgid "Hard disk setup" +msgstr "Inställningar för hÃ¥rddisk" + +# +msgid "Hard disk standby after" +msgstr "Viloläge för hÃ¥rddisk efter" + +# +msgid "Harddisk" +msgstr "HÃ¥rddisk" + +msgid "Hardware: " +msgstr "HÃ¥rdvara:" + +msgid "Hebrew" +msgstr "Hebreiska" + +msgid "Helps setting up your dish" +msgstr "Hjälper dig att ställa in parabolen" + +msgid "Hidden network" +msgstr "Dolt nätverk" + +msgid "Hide CI messages" +msgstr "Dölj CI-meddelanden" + +msgid "Hide channel list in radio mode" +msgstr "Dölj kanallistan i radioläge" + +msgid "Hide known extensions" +msgstr "Dölj kända utökningar" + +msgid "Hide number markers" +msgstr "Dölj nummermarkörer" + +# +msgid "Hide player" +msgstr "Dölj spelare" + +msgid "Hide zap errors" +msgstr "Dölj ZAP-felmeddelanden" + +msgid "Hierarchy info" +msgstr "Hierarkisk info" + +msgid "Hierarchy information" +msgstr "Hierarkisk information" + +# +msgid "High bitrate support" +msgstr "Hög bitrate stöd" + +msgid "Hold screen" +msgstr "Stoppa bild" + +msgid "Hold till locked" +msgstr "HÃ¥ll tills lÃ¥st" + +msgid "Home" +msgstr "Hem" + +msgid "Horizontal" +msgstr "Horisontal" + +msgid "Horizontal turning speed" +msgstr "Horisontell svänghastighet" + +# +msgid "How many minutes do you want to record?" +msgstr "Hur mÃ¥nga minuter vill du spela in?" + +# +msgid "Hue" +msgstr "Färgton" + +# +msgid "Hungarian" +msgstr "Ungerska" + +# +msgid "IP address" +msgstr "IP adress" + +# +msgid "ISO file is too large for this filesystem!" +msgstr "ISO-fil är för stor för använt filsystem!" + +# +msgid "ISO path" +msgstr "ISO sökväg" + +msgid "Icons" +msgstr "Ikoner" + +# +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"Om du ser detta, är det nÃ¥got fel med\n" +"din scartanslutning. Tryck OK för Ã¥tergÃ¥." + +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"Om din TV har ljusstyrke eller kontrastförbättrare, stänga av den. Om det finns nÃ¥got som heter \"dynamic\", använd standard. Justera ljusstyrkan till en inställning som du tycker är bra. Använd sÃ¥ lite kontrast som möjligt.\n" +"Sätt ljusstyrkan till sÃ¥ lÃ¥g som möjligt, men säkerställ att de tvÃ¥ lägsta nivÃ¥erna av grÃ¥ är urskiljningsbara.\n" +"Ta inte hänsyn till de ljusa nivÃ¥erna nu. De kommer justeras i nästa steg.\n" +"När du är nöjd med resultatet, tryck OK." + +msgid "Image: " +msgstr "Image: " + +# +msgid "Immediate shutdown" +msgstr "Omedelbar avstängning" + +# +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "För att göra en timerinspelning, växlade TV:n till inspelande kanal!\n" + +# +msgid "In progress" +msgstr "Liten tidslinje" + +msgid "Inactivity Sleeptimer" +msgstr "Inaktiv Insomningstimer" + +msgid "Include AIT in http streams" +msgstr "Inkludera AIT i http-strömmar" + +msgid "Include ECM in http streams" +msgstr "Inkludera ECM i http-strömmar" + +msgid "Include EIT in http streams" +msgstr "Inkludera EIT i http-strömmar" + +msgid "Incorrect type service for PiP!" +msgstr "" + +# +msgid "Increased voltage" +msgstr "Ökad spänning" + +# +msgid "Index" +msgstr "Index" + +msgid "Index allocated:" +msgstr "Index tilldelas:" + +# +msgid "Info" +msgstr "Info" + +# +msgid "Info bar" +msgstr "Infobalk" + +# +msgid "Info bar timeout" +msgstr "Infobalk timeout" + +msgid "Infobar frontend data source" +msgstr "" + +# +msgid "Information" +msgstr "Information" + +# +msgid "Init" +msgstr "Initiera" + +msgid "Initial fast forward speed" +msgstr "Initial snabbspolningshastighet framÃ¥t" + +# +msgid "Initial location in new timers" +msgstr "Initial filmplats för nya timers" + +msgid "Initial lock ratio" +msgstr "Initial lÃ¥st ratio" + +msgid "Initial rewind speed" +msgstr "Initial snabbspolningshastighet bakÃ¥t" + +msgid "Initial signal quality" +msgstr "Initial signalkvalitet" + +msgid "Initial signal quality:" +msgstr "Initial signalkvalitet:" + +# +msgid "Initialization" +msgstr "Initieringen" + +# +msgid "Initialize" +msgstr "Initiera" + +msgid "Initializing storage device..." +msgstr "Initierar lagringsenhet..." + +# +msgid "Input" +msgstr "IngÃ¥ng" + +msgid "Input device setup" +msgstr "Inställningar för inmatningsenhet" + +msgid "Input devices" +msgstr "Inmatningsenheter" + +# +msgid "Install" +msgstr "Installera" + +# +msgid "Install a new image with a USB stick" +msgstr "Installera ny image med hjälp av en USB-sticka" + +# +msgid "Install a new image with your web browser" +msgstr "Installera ny image med hjälp av din webläsare" + +# +msgid "Install channel list" +msgstr "Installera kanallistan" + +msgid "Install extensions" +msgstr "" + +# +msgid "Install extensions." +msgstr "Installera utökningar." + +# +msgid "Install local extension" +msgstr "Installera lokala utökningar" + +msgid "Install picons on" +msgstr "Installera picons pÃ¥" + +# +msgid "Install softcam" +msgstr "Installera softcam" + +msgid "Installation has completed." +msgstr "Installationen är klar." + +# +msgid "Installation or removal has completed." +msgstr "Installation eller borttagning klar." + +# +msgid "Installing" +msgstr "Installerar" + +# +msgid "Installing software..." +msgstr "Installerar mjukvara..." + +# +msgid "Instant recording location" +msgstr "Direktinspelningens plats" + +# +msgid "Instant recording..." +msgstr "Direktinspelning..." + +# +msgid "Interface: " +msgstr "Gränssnitt: " + +# +msgid "Intermediate" +msgstr "Normal" + +# +msgid "Internal flash" +msgstr "Intern Flash" + +msgid "Internal hdd only" +msgstr "Intern HDD bara" + +msgid "Interval between keys when repeating:" +msgstr "Intervall mellan tangenttryckningar vid upprepning:" + +# +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Ogiltigt bibliotek valt: %s" + +# +msgid "Invalid location" +msgstr "Ogiltig sökväg" + +msgid "Invalid transponder data" +msgstr "" + +# +msgid "Inversion" +msgstr "Inversion" + +msgid "Invert" +msgstr "Invertera" + +# +msgid "Ipkg" +msgstr "Ipkg" + +msgid "Is this setting ok?" +msgstr "Använd dessa inställningar?" + +# +msgid "Is this video mode ok?" +msgstr "Är detta videoläge ok?" + +# +msgid "Italian" +msgstr "Italienska" + +msgid "Items per page " +msgstr "Kanaler per sida vid Normalt läge (PiG)" + +msgid "Items per page for list screen" +msgstr "Kanaler per sida vid Listläge" + +# +msgid "Job overview" +msgstr "Arbets Vy" + +msgid "Jump to beginning of list" +msgstr "GÃ¥ till början av listan" + +# +msgid "Jump to end of list" +msgstr "GÃ¥ till slutet av listan" + +# +msgid "Jump to next marked position" +msgstr "GÃ¥ till nästa markerade position" + +# +msgid "Jump to previous marked position" +msgstr "GÃ¥ till föregÃ¥ende markerade position" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +msgid "Just scale" +msgstr "Bara skala" + +msgid "Keep service" +msgstr "" + +msgid "Kernel version: " +msgstr "Kernel Version: " + +# +msgid "Keyboard" +msgstr "Tangentbord" + +# +msgid "Keyboard map" +msgstr "Tangentbordslayout" + +# +msgid "Keyboard setup" +msgstr "Tangentbordsinställning" + +# +msgid "LAN adapter" +msgstr "LAN adapter" + +msgid "LAN connection" +msgstr "LAN-anslutning" + +# +msgid "LNB" +msgstr "LNB" + +# +msgid "Language" +msgstr "SprÃ¥k" + +# +msgid "Language selection" +msgstr "Välj sprÃ¥k" + +# +msgid "Last config" +msgstr "Senaste konfiguration" + +# +msgid "Last speed" +msgstr "FöregÃ¥ende hastighet" + +msgid "Last upgrade: " +msgstr "Senaste uppgradering:" + +msgid "Latest Commits" +msgstr "" + +# +msgid "Latitude" +msgstr "Latitud" + +# +msgid "Latvian" +msgstr "Lettiska" + +# +msgid "Leave DVD player?" +msgstr "Avsluta DVD Spelare?" + +# +msgid "Left" +msgstr "Vänster" + +msgid "Left from servicename" +msgstr "Vänster om kanalnamn" + +msgid "Leisure hobbies" +msgstr "Fritidsintressen" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Letterbox" + +msgid "Letterbox zoom" +msgstr "Letterbox zoom" + +# +msgid "Limit character set for recording filenames" +msgstr "Begränsad teckenuppsättning för inspelningens filnamn" + +# +msgid "Limit east" +msgstr "Östlig gräns" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "Begränsa de tecken som kan användas i inspelningens filnamn till (7 bitar) ascii. Detta garanterar kompatibilitet med operativsystem eller filsystem med begränsade teckenuppsättningar." + +# +msgid "Limit west" +msgstr "Västlig gräns" + +msgid "Limits cancelled" +msgstr "Gränser avaktiverade" + +msgid "Limits enabled" +msgstr "Gränser aktiverade" + +# +msgid "Limits off" +msgstr "Gränser av" + +# +msgid "Limits on" +msgstr "Gränser pÃ¥" + +# +msgid "Link quality:" +msgstr "Länkkvalitet:" + +# +msgid "Link:" +msgstr "Länk:" + +# +msgid "Linked titles with a DVD menu" +msgstr "Länkade titlar med en DVD meny" + +# +msgid "List EPG functions..." +msgstr "Lista över EPG funktioner..." + +msgid "List available networks" +msgstr "Lista tillgängliga nätverk" + +msgid "List mode" +msgstr "Listläge" + +# +msgid "List of storage devices" +msgstr "Lista pÃ¥ lagringsenheter" + +msgid "List type" +msgstr "Listtyp" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "Listversion %d, hittade %d kanal" +msgstr[1] "Listversion %d, hittade %d kanaler" + +# +msgid "Listen to the radio..." +msgstr "Lyssna pÃ¥ radio..." + +msgid "Lists reloaded!" +msgstr "" + +# +msgid "Lithuanian" +msgstr "Litauiska" + +# +msgid "Load" +msgstr "Ladda" + +msgid "Load Length of Movies in Movielist" +msgstr "Ladda längd pÃ¥ filmer i filmlistan." + +# +msgid "Load length of movies in movie list" +msgstr "Ladda filmens längd i Filmlistan" + +# +msgid "Load playlist" +msgstr "Ladda spellista" + +# +msgid "Local network" +msgstr "Lokalt Nätverk" + +# +msgid "Location" +msgstr "Sökväg" + +# +msgid "Location for instant recordings" +msgstr "Plats för direktinspelningar" + +msgid "Lock ratio" +msgstr "LÃ¥s ratio" + +# +msgid "Lock:" +msgstr "LÃ¥s:" + +# +msgid "Log results to harddisk" +msgstr "Logga resultatet till hÃ¥rddisk" + +msgid "Long filenames" +msgstr "LÃ¥nga filnamn" + +# +msgid "Long key press" +msgstr "LÃ¥ng knapptryckning" + +# +msgid "Longitude" +msgstr "Longitud" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "Luxemburgiska" + +# +msgid "MMC card" +msgstr "MMC kort" + +msgid "MORE" +msgstr "MER" + +# +msgid "Main menu" +msgstr "Huvudmeny" + +msgid "Maintain old EPG data for" +msgstr "BehÃ¥ll gammal EPG-data i" + +msgid "Make this mark an 'in' point" +msgstr "Gör denna markör till en 'in' punkt" + +msgid "Make this mark an 'out' point" +msgstr "Gör denna markör till en 'ut' punkt" + +# +msgid "Make this mark just a mark" +msgstr "BehÃ¥ll denna markör som vanlig markör" + +# +msgid "Manage extensions" +msgstr "Hantera utökningar" + +# +msgid "Manage your receiver's software" +msgstr "Hantera din mottagares mjukvara" + +msgid "Manual" +msgstr "" + +# +msgid "Manual Scan" +msgstr "Manuell sökning" + +msgid "Manual configuration" +msgstr "Manuell konfiguration" + +# +msgid "Manual scan" +msgstr "Manuell sökning" + +# +msgid "Manual transponder" +msgstr "Manuell transponder" + +# +msgid "Manufacturer" +msgstr "Tillverkare" + +# +msgid "Margin after recording (minutes)" +msgstr "Marginal efter inspelning (i minuter)" + +# +msgid "Margin before recording (minutes)" +msgstr "Marginal innan inspelning (i minuter)" + +msgid "Max memory positions" +msgstr "" + +# +msgid "Max. bitrate: " +msgstr "Max. Bitrate: " + +# +msgid "Media player" +msgstr "Mediaspelare" + +# +msgid "Media scanner" +msgstr "Mediaspelare" + +# +msgid "Medium is not a writeable DVD!" +msgstr "Media är inte en skrivbar DVD!" + +# +msgid "Medium is not empty!" +msgstr "Media är inte tomt!" + +msgid "Memory" +msgstr "Minne" + +msgid "Memory index" +msgstr "Minnesindex" + +# +msgid "Menu" +msgstr "Meny" + +# +msgid "Message" +msgstr "Meddelande" + +# +msgid "Message..." +msgstr "Meddelande..." + +#, python-format +msgid "Minimum age %d years" +msgstr "Minimum Ã¥lder %d Ã¥r" + +msgid "Minimum send interval" +msgstr "Minsta sändintervall" + +msgid "Missing " +msgstr "Saknad" + +# +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Läge" + +# +msgctxt "Video output mode" +msgid "Mode" +msgstr "Läge" + +# +msgid "Model: " +msgstr "Modell: " + +# +msgid "Modulation" +msgstr "Modulering" + +# +msgid "Modulator" +msgstr "Modulator" + +# +msgid "Mon" +msgstr "MÃ¥n" + +# +msgid "Mon-Fri" +msgstr "MÃ¥n-Fre" + +# +msgid "Monday" +msgstr "MÃ¥ndag" + +# +msgid "Mosquito noise reduction" +msgstr "Mosquito brus minskning" + +msgid "Mount" +msgstr "Montera" + +msgid "Move" +msgstr "Flytta" + +# +msgid "Move PiP to main picture" +msgstr "Flytta BiB till huvudbild" + +# +msgid "Move Picture in Picture" +msgstr "Flytta Bild i Bild" + +# +msgid "Move east" +msgstr "Flytta öst" + +msgid "Move to other directory" +msgstr "Flytta till en annan katalog" + +msgid "Move to position X" +msgstr "Flytta till position X" + +# +msgid "Move west" +msgstr "Flytta väst" + +msgid "Moved to position 0" +msgstr "Flyttade till position 0" + +msgid "Moved to position at index" +msgstr "Flyttade till position vid index" + +msgid "Movement" +msgstr "Rörelse" + +msgid "Movie List Configuration" +msgstr "Konfiguration av filmlista" + +msgid "Movie Selection" +msgstr "Filmval" + +msgid "Movie list configuration" +msgstr "Konfiguration av filmlista" + +# +msgid "Movie location" +msgstr "Filmplats" + +msgid "Movie selection" +msgstr "Filmval" + +msgid "Movie/Drama" +msgstr "film/drama" + +# +msgid "Movielist menu" +msgstr "Meny för filmlista" + +msgid "Moving" +msgstr "Flyttar" + +msgid "Moving east ..." +msgstr "Flyttar öst..." + +msgid "Moving to position" +msgstr "Flyttar till position" + +msgid "Moving west ..." +msgstr "Flyttar väst..." + +# +msgid "Multi EPG" +msgstr "Multi EPG" + +msgid "Multi-EPG bouquet selection" +msgstr "Multi-EPG favoritlisteval" + +# +msgid "Multimedia" +msgstr "Multimedia" + +# +msgid "Multiple service support" +msgstr "Multipla kanaler stöds" + +msgid "Multiplex" +msgstr "Multiplex" + +# +msgid "Multisat" +msgstr "Multisat" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "Musik/Ballett/Dans" + +# +msgid "Mute" +msgstr "Ljud av" + +msgid "N/A" +msgstr "N/A" + +msgid "NEXT" +msgstr "NÄSTA" + +# +msgid "NFI image flashing" +msgstr "NFI image Flashning" + +# +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "NFI image flashning klar. Tryck Gul för omstart!" + +msgid "NIM" +msgstr "NIM" + +msgid "NOW" +msgstr "NU" + +# +msgid "NTSC" +msgstr "NTSC" + +# +msgid "Name" +msgstr "Namn" + +# +msgid "Nameserver" +msgstr "Namnserver" + +# +#, python-format +msgid "Nameserver %d" +msgstr "Namnserver %d" + +# +msgid "Nameserver settings" +msgstr "Namnserverinställningar" + +# +msgid "Nameserver setup" +msgstr "Namnserverinstallation" + +msgid "Namespace" +msgstr "Namnrymd" + +# +msgid "Netmask" +msgstr "Nätmask" + +# +msgid "Network" +msgstr "Nätverk" + +msgid "Network ID" +msgstr "Nätverks-ID" + +# +msgid "Network configuration..." +msgstr "Nätverkskonfiguration..." + +# +msgid "Network mount" +msgstr "Nätverksmonteringar" + +# +#, python-format +msgid "Network mount %s" +msgstr "Nätverksmonteringar %s" + +msgid "Network name (SSID)" +msgstr "Nätverksnamn (SSID)" + +# +msgid "Network scan" +msgstr "Sök nätverk" + +# +msgid "Network setup" +msgstr "Nätverksinställningar" + +# +msgid "Network test" +msgstr "Nätverktest" + +# +msgid "Network test..." +msgstr "Nätverktest..." + +msgid "Network test: " +msgstr "Nätverkstest: " + +# +msgid "Network wizard" +msgstr "Nätverksguide" + +# +msgid "Network:" +msgstr "Nätverk:" + +# +msgid "New" +msgstr "Ny" + +msgid "New PIN" +msgstr "Ny PIN" + +# +msgid "New version:" +msgstr "Ny version:" + +msgid "News Current Affairs" +msgstr "Nyheter/aktuella frÃ¥gor" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "Nästa" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "Nästa" + +# +msgid "No" +msgstr "Nej" + +# +msgid "No (supported) DVDROM found!" +msgstr "Ingen (supporterad) DVDROM hittad!" + +# +msgid "No Connection" +msgstr "Ingen anslutning" + +msgid "No HDD found or HDD not initialized!" +msgstr "Ingen HDD hittad eller HDD inte initierad!" + +# +msgid "No backup needed" +msgstr "Ingen backup behövs" + +msgid "No cable tuner found!" +msgstr "Ingen kabel-tuner hittad!" + +# +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Ingen data pÃ¥ transponder!\n" +"(Timeout vid läsning av PAT)" + +msgid "No delay" +msgstr "Ingen fördröjning" + +# +msgid "No description available." +msgstr "Ingen beskrivning tillgänglig." + +# +msgid "No details for this image file" +msgstr "Inga detaljer för denna imagefil" + +# +msgid "No displayable files on this medium found!" +msgstr "Inga visningsbara filer hittade pÃ¥ detta media!" + +# +msgid "No event info found, recording indefinitely." +msgstr "Ingen programinfo hittades, inspelning oändlig." + +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "Ingen snabbspolning tillgänglig än... men du kan använda nummerknapparna för att hoppa framÃ¥t/bakÃ¥t!" + +msgid "No free index available" +msgstr "Ingen ledig index är tillgänglig" + +# +msgid "No free tuner!" +msgstr "Ingen ledig tuner!" + +# +msgid "No network connection available." +msgstr "Ingen nätverksanslutning tillgänglig." + +# +msgid "No networks found" +msgstr "Inget nätverk hittat" + +msgid "No new plugins found" +msgstr "Inga nya plugins hittade" + +# +msgid "No positioner capable frontend found." +msgstr "Ingen motorkapabel frontend hittad." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "Ingen kanal" + +# +msgid "No services/providers selected" +msgstr "Ingen kanal/operatör vald" + +# +msgid "No standby" +msgstr "Inget viloläge" + +msgid "No suitable sat tuner found!" +msgstr "Ingen passande sat tuner hittad!" + +# +msgid "No tags are set on these movies." +msgstr "Ingen märkning är gjord pÃ¥ dessa filmer." + +# +msgid "No timeout" +msgstr "Ingen timeout" + +# +msgid "No to all" +msgstr "Nej till alla" + +msgid "No transparency" +msgstr "Ingen transparens" + +# +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "Ingen tuner är konfigurerad för motor diseqc!" + +# +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Ingen tuner är aktiverad!\n" +"Vänligen konfigurera tuner före scanning efter kanaler." + +msgid "No updates available" +msgstr "Inga uppdateringar tillgängliga." + +msgid "No updates available. Please try again later." +msgstr "Inga uppdateringar tillgängliga. Försök igen senare." + +# +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Ingen giltig kanal PIN hittad!\n" +"Vill du ändra kanal PIN nu?\n" +"Om du anger 'Nej' här kommer kanalskyddet vara avaktiverat!" + +# +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Ingen giltig installations PIN hittad!\n" +"Vill du ändra installations PIN nu?\n" +"Om du anger 'Nej' här kommer installationsskyddet vara avaktiverat!" + +msgid "No wireless networks found! Searching..." +msgstr "Inga trÃ¥dlösa nätverk funna! Söker..." + +# +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"Inget fungerandes lokalt nätverkskort funnet.\n" +"Vänligen bekräfta att du har anslutit en nätverkskabel och att ditt nätverk är korrekt konfigurerat." + +# +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"Inget fungerandes trÃ¥dlöst nätverkskort funnet.\n" +"Vänligen bekräfta att du har anslutit ett kompatibelt WLAN enhet och att din nätverkskonfiguration är korrekt." + +# +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"Inget fungerandes trÃ¥dlöst nätverkskort funnet.\n" +"Vänligen bekräfta att du har anslutit ett kompatibelt WLAN enhet eller aktiverat ditt lokala nätverkskort." + +# +msgid "No, but restart from begin" +msgstr "Nej, men starta om frÃ¥n början" + +# +msgid "No, do nothing." +msgstr "Nej, gör inget." + +msgid "No, just start my receiver" +msgstr "Nej, starta bara mottagaren" + +msgid "No, never" +msgstr "Nej, aldrig" + +# +msgid "None" +msgstr "Inga" + +# +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Ej linjär" + +msgid "Normal mode" +msgstr "Normalt läge" + +# +msgid "North" +msgstr "Nord" + +# +msgid "Norwegian" +msgstr "Norska" + +msgid "Not associated" +msgstr "Ej associerad" + +msgid "Not configured" +msgstr "" + +# +#, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Inte tillräckligt med diskutrymme. Vänligen frigör diskutrymme och försök igen. (%d MB krävs, %d MB tillgängligt)" + +msgid "Nothing connected" +msgstr "" + +# +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Inget att scanna!\n" +"Vänligen konfigurera tuner före scanning efter kanaler." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "Nu" + +# +msgid "Now playing" +msgstr "Spelas nu" + +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Nu, använd kontrastinställningen för att öka ljusstyrka pÃ¥ bakgrunden sÃ¥ mycket som möjligt, men säkerställ att du fortfarande kan se skillnaden mellan de tvÃ¥ ljusaste nivÃ¥erna av skuggor pÃ¥ skalan.När du har gjort det, vänligen tryck OK för att fortsätta." + +# +msgid "OK" +msgstr "OK" + +# +msgid "OK, guide me through the upgrade process" +msgstr "OK, guida mig genom uppgraderingen" + +msgid "ONID" +msgstr "ONID" + +msgid "OSD name request" +msgstr "OSD namnförfrÃ¥gan" + +# +msgid "OSD settings" +msgstr "OSD inställning" + +msgid "OSD transparency" +msgstr "OSD transparens" + +# +msgid "Off" +msgstr "Av" + +msgid "Offline decode delay (ms)" +msgstr "Avkodningsfördröjning offline (ms)" + +msgid "Ok" +msgstr "Ok" + +# +msgid "On" +msgstr "PÃ¥" + +msgid "On end of movie" +msgstr "I slutet pÃ¥ filmen" + +msgid "On end of movie (as menu)" +msgstr "" + +# +msgid "One" +msgstr "En" + +# +msgid "Only extensions." +msgstr "Endast utökningar." + +# +msgid "Only free scan" +msgstr "Bara Fri sökning" + +# +msgid "Open service list" +msgstr "Öppna kanallista" + +# +msgid "Open the movie list" +msgstr "Öppna filmlistan" + +msgid "Orbital position" +msgstr "Banposition" + +msgid "Original" +msgstr "Original" + +msgid "Other" +msgstr "Annan" + +msgid "Output" +msgstr "Utsignal" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "Skriva över konfigurationsfilerna vid mjukvaruuppgradering?" + +msgid "Overwrite configuration files?" +msgstr "Skriva över konfigurationsfilerna ?" + +# +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "PCR PID" + +# +msgid "PIDs" +msgstr "PIDs" + +msgid "PIN code needed" +msgstr "PIN-kod behövs" + +msgid "PLP ID" +msgstr "PLP ID" + +msgid "PMT PID" +msgstr "PMT PID" + +# +msgid "Package list update" +msgstr "Söker efter uppdateringar" + +# +msgid "Packet management" +msgstr "Pakethantering" + +# +msgid "Packet manager" +msgstr "Pakethanterare" + +# +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +msgid "Pan&scan" +msgstr "Pan&Scan" + +# +msgid "Parent directory" +msgstr "Föräldrarbibliotek" + +# +msgid "Parental control" +msgstr "Föräldrakontroll" + +# +msgid "Parental control services editor" +msgstr "Kanaleditor för föräldrakontroll" + +# +msgid "Parental control setup" +msgstr "Inställningar för föräldrakontroll" + +# +msgid "Parental control type" +msgstr "Typ av föräldrakontroll" + +# +msgid "Password" +msgstr "Lösenord" + +# +msgid "Pause" +msgstr "Paus" + +# +msgid "Pause movie at end" +msgstr "Pausa filmen vid slutet" + +# +msgid "Pause playback" +msgstr "Pausa uppspelning" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "Procent Vänster" + +# +msgid "Percentage right" +msgstr "Procent höger" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "Är du säker pÃ¥ att du vill radera inspelningarna i papperskorgen permanent?" + +msgid "Permanently remove all deleted items" +msgstr "Radera alla borttagna objekt permanent" + +msgid "Persian" +msgstr "Persiska" + +# +msgid "Phone number" +msgstr "Telefonnummer" + +# +msgid "PiP setup" +msgstr "BiB konfiguration" + +msgid "Picon" +msgstr "Picon" + +msgid "Picon and service name" +msgstr "Picon och kanalnamn" + +# +msgid "Picture player" +msgstr "Bildspelare" + +# +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Svarta kanter" + +# +msgid "Pilot" +msgstr "Pilot" + +# +msgid "Play" +msgstr "Spela upp" + +# +msgid "Play DVD" +msgstr "Spela DVD" + +msgid "Play audio in background" +msgstr "Spela audio i bakgrunden" + +# +msgid "Play audio-CD..." +msgstr "Spela Audio-CD..." + +msgid "Play back media files" +msgstr "Uppspelning av mediefiler" + +# +msgid "Play entry" +msgstr "Spela angivet" + +msgid "Play from next mark or playlist entry" +msgstr "Spela upp frÃ¥n nästa markering eller post i spellista" + +msgid "Play from previous mark or playlist entry" +msgstr "Spela upp frÃ¥n föregÃ¥ende markering eller post i spellista" + +# +msgid "Play music..." +msgstr "Spela Musik..." + +msgid "Play next" +msgstr "Spela nästa" + +msgid "Play next (return to movie list)" +msgstr "Spela nästa (Ã¥tergÃ¥ till filmlista)" + +msgid "Play next (return to previous service)" +msgstr "Spela nästa (Ã¥tergÃ¥ till föregÃ¥ende service)" + +msgid "Play previous" +msgstr "Spela föregÃ¥ende" + +# +msgid "Play recorded movies..." +msgstr "Spela inspelade filmer..." + +# +msgid "Please add titles to the compilation." +msgstr "Vänligen lägg till titel till sammanställningen." + +# +msgid "Please change recording endtime" +msgstr "Vänligen ändra inspelnings sluttid" + +# +msgid "Please check your network settings!" +msgstr "Vänligen kontrollera dina nätverksinställningar!" + +# +msgid "Please choose an extension..." +msgstr "Vänligen välj en utökning..." + +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Vänligen konfigurera eller bekräfta din namnserver med att fylla i de begärda fälten.\n" +"När du är klar tryck OK för att fortsätta." + +# +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Vänligen konfigurera din Internetanslutning med att fylla i begärda fält.\n" +"När du är klar tryck OK för att forsätta." + +msgid "Please connect your receiver to the internet" +msgstr "Vänligen anslut din mottagare till Internet" + +# +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Vänligen ändra inte om du inte vet vad du gör!" + +# +msgid "Please enter a name for the new bouquet" +msgstr "Ange namn för den nya favoritlistan" + +# +msgid "Please enter a name for the new marker" +msgstr "Vänligen ange namn för ny markör" + +# +msgid "Please enter a new filename" +msgstr "Vänligen ange nytt filnamn" + +# +msgid "Please enter filename (empty = use current date)" +msgstr "Vänligen ange filnamn (tomt = använd dagens datum)" + +# +msgid "Please enter name of the new directory" +msgstr "Vänligen ange namn till det nya biblioteket" + +msgid "Please enter new name:" +msgstr "Ange nytt namn:" + +msgid "Please enter the correct pin code" +msgstr "Vänligen ange korrekt pin kod" + +msgid "Please enter the old PIN code" +msgstr "Ange den gamla PIN-koden" + +# +msgid "Please follow the instructions on the TV" +msgstr "Vänligen följ instruktionerna pÃ¥ TVn" + +# +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "Vänligen notera att föregÃ¥ende valda mediat var inte Ã¥tkomstbart och därför är nu default bibliotek valt." + +# +msgid "Please press OK to continue." +msgstr "Vänligen tryck OK för att försätta." + +msgid "Please select a default EPG type..." +msgstr "Vänligen välj en standard EPG typ..." + +# +msgid "Please select a playlist to delete..." +msgstr "Vänligen välj en spellista för borttagning..." + +# +msgid "Please select a playlist..." +msgstr "Vänligen välj en spellista..." + +# +msgid "Please select a sub service..." +msgstr "Vänligen välj en sub tjänst..." + +# +msgid "Please select a subservice to record..." +msgstr "Vänligen välj en underkanal för inspelning..." + +# +msgid "Please select a subservice..." +msgstr "Vänligen välj en underkanal..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "Vänligen välj en NFI fil och tryck pÃ¥ grön knapp för att flasha!" + +# +msgid "Please select medium to be scanned" +msgstr "Vänligen ange media som ska undersökas" + +# +msgid "Please select medium to use as backup location" +msgstr "Vänligen välj media som ska användas som backupdestination" + +# +msgid "Please select tag to filter..." +msgstr "Vänligen välj märke för filtrering..." + +# +msgid "Please select the movie path..." +msgstr "Vänligen ange filmens sökväg..." + +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Vänligen välj nätverkskort som du vill använda för anslutning till Internet.\n" +"\n" +"Vänligen tryck OK för att fortsätta." + +# +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Vänligen välj det trÃ¥dlösa nätverk du vill ansluta till.\n" +"\n" +"Vänligen tryck OK för att forsätta." + +# +msgid "Please set up tuner A" +msgstr "Vänligen installera tuner A" + +# +msgid "Please set up tuner B" +msgstr "Vänligen installera tuner B" + +# +msgid "Please set up tuner C" +msgstr "Vänligen installera tuner C" + +# +msgid "Please set up tuner D" +msgstr "Vänligen installera tuner D" + +# +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Använd piltangenterna för att flytta BiB fönstret.\n" +"Tryck Favoritlista +/- för ändra storleken pÃ¥ fönstret.\n" +"Tryck OK för att gÃ¥ tillbaka till TV läge eller EXIT för att avbryta flyttning." + +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "Vänligen använd UPP och NER pil för att välja sprÃ¥k. Efter val tryck pÃ¥ OK knappen." + +msgid "Please wait" +msgstr "" + +# +msgid "Please wait (downloading channel list)" +msgstr "Vänligen vänta (Laddar ner kanallista)" + +# +msgid "Please wait (downloading softcam)" +msgstr "Vänligen vänta (Laddar ner softcam)" + +# +msgid "Please wait (updating packages)" +msgstr "Vänligen vänta (uppdaterar paket)" + +# +msgid "Please wait for activation of your network configuration..." +msgstr "Vänligen vänta för aktivering av din nätverkskonfiguration..." + +# +msgid "Please wait while scanning is in progress..." +msgstr "Vänligen vänta medan sökning pÃ¥gÃ¥r..." + +# +msgid "Please wait while we configure your network..." +msgstr "Vänligen vänta medan ditt nätverk konfigureras..." + +# +msgid "Please wait while we prepare your network interfaces..." +msgstr "Vänligen vänta medan vi förbereder dina nätverkskort..." + +# +msgid "Please wait while we test your network..." +msgstr "Vänligen vänta medan vi testar ditt nätverk..." + +# +msgid "Please wait while your network is restarting..." +msgstr "Vänligen vänta medan ditt nätverk startas om..." + +# +msgid "Please wait..." +msgstr "Vänligen vänta..." + +# +msgid "Please wait... Loading list..." +msgstr "Vänligen vänta... Laddar lista..." + +# +msgid "Plugin browser" +msgstr "Pluginhanterare" + +# +msgid "Plugin manager activity information" +msgstr "Pluginhanterare aktiviteksinformation" + +# +msgid "Plugin manager help" +msgstr "Pluginhanterare hjälp" + +# +msgid "Plugins" +msgstr "Plugins" + +msgid "Polarisation" +msgstr "Polarisation" + +msgid "Polarisation:" +msgstr "Polarisation:" + +# +msgid "Polarization" +msgstr "Polarisation" + +# +msgid "Polish" +msgstr "Polska" + +# +msgid "Port A" +msgstr "Port A" + +# +msgid "Port B" +msgstr "Port B" + +# +msgid "Port C" +msgstr "Port C" + +# +msgid "Port D" +msgstr "Port D" + +# +msgid "Portuguese" +msgstr "Portugisiska" + +msgid "Position of completed timers in timerlist" +msgstr "Position för färdiga timers i timerlistan" + +msgid "Position stored at index" +msgstr "Position sparad vid index" + +# +msgid "Positioner" +msgstr "Motor" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "Motorinstallation" + +# +msgid "Positioner setup" +msgstr "Motorinstallation" + +# +msgid "Power threshold in mA" +msgstr "Ström gränsvärde i mA" + +# +msgid "Predefined transponder" +msgstr "Fördefinerad transponder" + +msgid "Prefer AC3 track" +msgstr "Föredra AC3 spÃ¥r" + +msgid "Prefer AC3+ track" +msgstr "" + +msgid "Prefer audio track stored by service" +msgstr "Föredra ljudspÃ¥r sparad av kanal" + +msgid "Prefer graphical DVB subtitles" +msgstr "Föredra grafiska DVB-undertexter" + +msgid "Prefer subtitles for hearing impaired" +msgstr "Föredra undertexter för hörselskadade" + +msgid "Prefer subtitles stored by service" +msgstr "Föredra undertexter sparade av kanal" + +msgid "Preferred tuner" +msgstr "Vilken tuner skall användas först?" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "Förbered ytterligare en USB-sticka för image flashning" + +# +msgid "Preparing... Please wait" +msgstr "Förbereder... Vänligen vänta" + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "Tryck INFO pÃ¥ din fjärrkontroll för ytterligare information." + +msgid "Press MENU on your remote control for additional options." +msgstr "Tryck MENU pÃ¥ din fjärrkontroll för ytterligare valmöjligheter." + +# +msgid "Press OK on your remote control to continue." +msgstr "Tryck OK pÃ¥ din fjärrkontroll för att fortsätta." + +# +msgid "Press OK to activate the selected skin." +msgstr "Tryck OK för aktivera valt utseende." + +# +msgid "Press OK to activate the settings." +msgstr "Tryck OK för aktivera inställningarna." + +# +msgid "Press OK to edit the settings." +msgstr "Tryck OK för att ändra inställningar." + +# +#, python-format +msgid "Press OK to get further details for %s" +msgstr "Tryck OK för att fÃ¥ utförligare information om %s" + +# +msgid "Press OK to scan" +msgstr "Tryck OK för sökning" + +# +msgid "Press OK to select a provider." +msgstr "Tryck OK för att välja en operatör." + +msgid "Press OK to select satellites" +msgstr "" + +# +msgid "Press OK to select/deselect a CAId." +msgstr "Tryck OK för att aktivera/avaktivera en CAId." + +# +msgid "Press OK to start the scan" +msgstr "Tryck OK för att starta sökning" + +msgid "Press OK to toggle the selection" +msgstr "" + +# +msgid "Press OK to toggle the selection." +msgstr "Tryck OK för att växla val." + +# +msgid "Press yellow to set this interface as default interface." +msgstr "Tryck gul knapp för att ange detta interface som grundinterface." + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "FöregÃ¥ende" + +# +msgid "Preview" +msgstr "Förhandsgranskning" + +# +msgid "Preview menu" +msgstr "Förvisningsmeny" + +msgid "Preview selected channel" +msgstr "Förhandsgranska vald kanal" + +# +msgid "Primary DNS" +msgstr "Primär DNS" + +# +msgid "Priority" +msgstr "Prioritet" + +# +msgid "Process" +msgstr "Process" + +msgid "Progress" +msgstr "Stor tidslinje" + +msgid "Progress bar left" +msgstr "Tidslinje vänster" + +msgid "Progress bar right" +msgstr "Tidslinje Höger" + +# +msgid "Properties of current title" +msgstr "Egenskaper för vald titel" + +# +msgid "Protect services" +msgstr "Skydda kanaler" + +# +msgid "Protect setup" +msgstr "Skydda inställningar" + +# +msgid "Provider" +msgstr "Leverantör" + +# +msgid "Provider to scan" +msgstr "Leverantör att skanna" + +# +msgid "Providers" +msgstr "Leverantörer" + +msgid "Put TV in standby" +msgstr "Sätt TV:n i viloläge" + +msgid "Put receiver in standby" +msgstr "Sätt mottagaren i viloläge" + +# +msgid "Python frontend for /tmp/mmi.socket" +msgstr "Python frontend för /tmp/mmi.socket" + +# +msgid "Quick" +msgstr "Snabb" + +# +msgid "Quick zap" +msgstr "Snabbzap" + +# +msgid "RF output" +msgstr "RF ut" + +# +msgid "RGB" +msgstr "RGB" + +# +msgid "Radio" +msgstr "Radio" + +# +msgid "Ram disk" +msgstr "Ram Disk" + +# +msgid "Random" +msgstr "Slumpmässig" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "Ranking definerad av sändaren - %d" + +msgid "Rating undefined" +msgstr "Betyg odefinierat" + +# +msgid "Really close without saving settings?" +msgstr "Verkligen stänga utan att spara inställningarna?" + +# +msgid "Really delete done timers?" +msgstr "Verkligen ta bort färdiga timerinspelningar?" + +# +msgid "Really exit the subservices quickzap?" +msgstr "Verkligen avsluta underkanals snabbzap?" + +# +msgid "Really reboot now?" +msgstr "Verkligen starta om nu?" + +# +msgid "Really restart now?" +msgstr "Verkligen starta om nu?" + +# +msgid "Really shutdown now?" +msgstr "Verkligen stänga av nu?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "Vill du verkligen uppgradera frontprocessorn och starta om nu?" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "Vill du verkligen uppdatera din mottagare och starta om?" + +# +msgid "Reboot" +msgstr "Omstart" + +msgid "Rec" +msgstr "Rec" + +# +msgid "Reception settings" +msgstr "Inställningar för mottagning" + +# +msgid "Record" +msgstr "Spela in" + +# +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "Inspelningstid begränsad pÃ¥ grund av timerkonflikt med %s" + +# +msgid "Recorded files..." +msgstr "Inspelade filer..." + +# +msgid "Recording" +msgstr "Spelar in" + +msgid "Recording in progress" +msgstr "Inspelning pÃ¥gÃ¥r" + +# +msgid "Recording paths" +msgstr "Sökvägar till inspelningar" + +msgid "Recording type" +msgstr "Inpelningstyp" + +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "Inspelning(ar) pÃ¥gÃ¥r eller ska pÃ¥börjas inom nÃ¥gra sekunder!" + +# +msgid "Recordings" +msgstr "Inspelningar" + +# +msgid "Recordings always have priority" +msgstr "Inspelningar har alltid prioritet" + +msgid "Red button..." +msgstr "Röd knapp..." + +msgid "Reenter new PIN" +msgstr "Ange den nya PIN-koden igen" + +# +msgid "Refresh rate" +msgstr "Uppdateringsfrekvens" + +# +msgid "Refresh rate selection." +msgstr "Val av uppdateringsfrekvens." + +msgid "Regard deep standby as standby" +msgstr "Deep standby anses vara samma som standby" + +msgid "Relative" +msgstr "Relativ" + +# +msgid "Reload" +msgstr "Uppdatera" + +# +msgid "Reload black-/white lists" +msgstr "Ladda om svart / vitlistor" + +msgid "Reloading bouquets and services..." +msgstr "Laddar om favoritlistor och kanaler..." + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "Kom ihÃ¥g service-PIN" + +msgid "Remember these settings for each folder" +msgstr "Kom ihÃ¥g dessa inställningar för varje katalog" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "PÃ¥minnelse, du har valt att spara timeshiftfilen." + +# +msgid "Remote control type" +msgstr "Fjärrkontrolls typ" + +# +msgid "Removal has completed." +msgstr "Borttagning har slutförts." + +# +msgid "Remove" +msgstr "Ta bort" + +# +msgid "Remove a mark" +msgstr "Ta bort en markör" + +# +msgid "Remove a nameserver entry" +msgstr "Ta bort en namnserver post" + +# +msgid "Remove bookmark" +msgstr "Ta bort bokmärke" + +msgid "Remove completed timers after (days)" +msgstr "Ta bort färdiga timers efter (dagar)" + +# +msgid "Remove currently selected title" +msgstr "Ta bort vald titel" + +msgid "Remove items from trash can after (days)" +msgstr "Ta bort objekt frÃ¥n papperskorgen efter (dagar)" + +# +msgid "Remove plugins" +msgstr "Ta bort plugins" + +# +msgid "Remove title" +msgstr "Ta bort titel" + +# +msgid "Removing" +msgstr "Tar bort" + +# +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Ta bort biblioteket %s misslyckades. (Troligen ej tomt.)" + +msgid "Removing partition table" +msgstr "Ta bort partitionstabellen" + +# +msgid "Rename" +msgstr "Byt namn" + +msgid "Repeat" +msgstr "Repetera" + +# +msgid "Repeat type" +msgstr "Upprepningstyp" + +# +msgid "Repeating event currently recording... What do you want to do?" +msgstr "Ett upprepande program spelas in... Vad vill du göra?" + +# +msgid "Repeats" +msgstr "Upprepningar" + +msgid "Require authentication for http streams" +msgstr "" + +# +msgid "Required medium type:" +msgstr "Nödvändig mediatyp:" + +msgid "Rereading partition table" +msgstr "Läser om partitionstabellen igen" + +msgid "Reserved" +msgstr "Reserverad" + +# +msgid "Reset" +msgstr "Nollställ" + +# +msgid "Reset and renumerate title names" +msgstr "Ã…terställ och omnumrera titelnamnen" + +msgid "Reset playback position" +msgstr "Ã…terställ visningsläget" + +# +msgid "Reset video enhancement settings to system defaults?" +msgstr "Ã…terställ videoförbättringarna till grundinställningarna?" + +# +msgid "Reset video enhancement settings to your last configuration?" +msgstr "Ã…terställ videoförbättringarna till föregÃ¥ende inställning?" + +# +msgid "Resolution" +msgstr "Upplösning" + +# +msgid "Restart" +msgstr "Omstart" + +# +msgid "Restart GUI now?" +msgstr "Omstart av GUI nu?" + +msgid "Restart enigma" +msgstr "Starta om Enigma" + +# +msgid "Restart network" +msgstr "Omstart nätverk" + +# +msgid "Restart test" +msgstr "Omstart test" + +# +msgid "Restart your network connection and interfaces.\n" +msgstr "Omstart av din nätverksanslutning och adaptrar.\n" + +# +msgid "Restore" +msgstr "Ã…terställ" + +# +msgid "Restore backups" +msgstr "Ã…terställ backuper" + +# +msgid "Restore is running..." +msgstr "Ã…terställning pÃ¥gÃ¥r..." + +# +msgid "Restore system settings" +msgstr "Ã…terskapa systeminställningar" + +# +msgid "Restoring..." +msgstr "Ã…terställer..." + +# +msgid "Resume from last position" +msgstr "Ã…teruppspela frÃ¥n senaste position" + +# +#, python-format +msgid "Resume position at %s" +msgstr "Ã…teruppta vid position %s" + +# +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Ã…terupptar uppspelning" + +# +msgid "Return to movie list" +msgstr "Ã…tervänd till filmlista" + +# +msgid "Return to previous service" +msgstr "Ã…tervänd till föregÃ¥ende tjänst" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +# +msgid "Rewind speeds" +msgstr "Hastigheter för snabbspolning bakÃ¥t" + +msgid "Rewrap teletext subtitles" +msgstr "Ta bort radbrytningen pÃ¥ teletext undertexter" + +# +msgid "Right" +msgstr "Höger" + +msgid "Right from servicename" +msgstr "Höger om kanalnamn" + +msgid "Roll-off" +msgstr "Roll-off" + +msgid "Romanian" +msgstr "Rumänska" + +msgid "Root directory" +msgstr "Rotkatalog" + +msgid "Rotor step position:" +msgstr "Rotorns stegposition:" + +# +msgid "Rotor turning speed" +msgstr "Rotor rotationsfart" + +msgid "Round start time on" +msgstr "Avrunda starttid till" + +# +msgid "Russian" +msgstr "Ryska" + +# +msgid "S-Video" +msgstr "S-Video" + +msgid "SID" +msgstr "SID" + +# +msgid "SINGLE LAYER DVD" +msgstr "SINGLE LAYER DVD" + +# +msgid "SNR" +msgstr "SNR" + +# +msgid "SNR:" +msgstr "SNR:" + +# +msgid "SSID:" +msgstr "SSID:" + +msgid "Same resolution as skin" +msgstr "Samma upplösning som utseendet" + +# +msgid "Sat" +msgstr "Lör" + +# +msgid "Satellite" +msgstr "Satellit" + +# +msgid "Satellite dish setup" +msgstr "Satellit utrustningsinstallation" + +# +msgid "Satellite equipment" +msgstr "Satellitutrustning" + +# +msgid "Satellite equipment setup" +msgstr "Satellit utrustningsinstallation" + +msgid "Satellite longitude:" +msgstr "Satellit longitud:" + +# +msgid "Satellites" +msgstr "Satelliter" + +# +msgid "Satfinder" +msgstr "Satfinder" + +# +msgid "Sats" +msgstr "Sats" + +# +msgid "Saturation" +msgstr "Mättnad" + +# +msgid "Saturday" +msgstr "Lördag" + +# +msgid "Save" +msgstr "Spara" + +# +msgid "Save playlist" +msgstr "spara spellista" + +msgid "Save timeshift file" +msgstr "Spara timeshift filen" + +msgid "Save timeshift file in movie directory" +msgstr "Spara timeshift fil i filmkatalog" + +# +msgid "Scaler sharpness" +msgstr "Scaler skärpa" + +# +msgid "Scaling mode" +msgstr "Scalingläge" + +msgid "Scan" +msgstr "Sök" + +# +msgid "Scan " +msgstr "Sök " + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, python-format +msgid "Scan %s" +msgstr "Sök %s" + +# +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, python-format +msgid "Scan %s band" +msgstr "Sök %s band" + +# +msgid "Scan additional SR" +msgstr "Sök ytterligare SR" + +# +msgid "Scan files..." +msgstr "Sök Filer..." + +# +msgid "Scan wireless networks" +msgstr "Sök efter trÃ¥dlösa nätverk" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "Sök ditt nätverk efter trÃ¥dlös acccesspunkt och anslut till den med din valda trÃ¥dlösa enhet.\n" + +#, python-format +msgid "Scanning %s..." +msgstr "Söker %s..." + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "Söker - %d%% färdig" +msgstr[1] "Söker - %d%% färdiga" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "Sökning klar, %d kanal hittad" +msgstr[1] "Sökning klar, %d kanaler hittade" + +msgid "Scanning failed!" +msgstr "Sökning misslyckades!" + +msgid "Scanning..." +msgstr "Söker..." + +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "Sök grund lamedbs sorterat pÃ¥ satellit med en ansluten parabolmotor" + +# +msgid "Search east" +msgstr "Sök öst" + +# +msgid "Search west" +msgstr "Sök väst" + +msgid "Searching" +msgstr "Söker" + +msgid "Searching east ..." +msgstr "Söker öst..." + +# +msgid "Searching for available updates. Please wait..." +msgstr "Söker efter tillgängliga uppdateringar. Vänligen vänta..." + +# +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "Sök efter nyinstallerade eller borttagna paket. Vänligen vänta..." + +msgid "Searching west ..." +msgstr "Söker väst..." + +msgid "Second cable of motorized LNB" +msgstr "" + +# +msgid "Secondary DNS" +msgstr "Sekundär DNS" + +# +msgid "Seek" +msgstr "Sök" + +# +msgid "Seek backward" +msgstr "Hoppa bakÃ¥t" + +# +msgid "Seek backward (enter time)" +msgstr "Hoppa bakÃ¥t (ange tid)" + +# +msgid "Seek forward" +msgstr "Hoppa framÃ¥t" + +# +msgid "Seek forward (enter time)" +msgstr "Hoppa framÃ¥t (ange tid)" + +# +msgid "Select" +msgstr "Välj" + +# +msgid "Select CAId" +msgstr "Välj CAId" + +msgid "Select HDD" +msgstr "Välj HDD" + +# +msgid "Select a bouquet" +msgstr "Välj en favoritlista" + +# +msgid "Select a movie" +msgstr "Välj en film" + +# +msgid "Select a network adapter" +msgstr "Välj en nätverksadapter" + +# +msgid "Select a skin" +msgstr "Välj ett utseende" + +# +msgid "Select a tuner" +msgstr "Välj en tuner" + +# +msgid "Select a wireless network" +msgstr "Välj ett trÃ¥dlöst nätverk" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +msgid "Select an image to be downloaded" +msgstr "Välj image för nedladdning" + +# +msgid "Select audio track" +msgstr "Välj ljudspÃ¥r" + +# +msgid "Select backup files" +msgstr "Välj backupfil" + +# +msgid "Select backup location" +msgstr "Välj backupdestination" + +# +msgid "Select channel to record from" +msgstr "Välj kanal att spela in frÃ¥n" + +msgid "Select copy destination for:" +msgstr "Välj destination att kopiera till för:" + +msgid "Select default EPG type..." +msgstr "Välj en standard EPG typ..." + +msgid "Select desired image from feed list" +msgstr "Välj önskad image frÃ¥n feedlistan" + +msgid "Select destination for:" +msgstr "Välj destination för:" + +msgid "Select files for backup." +msgstr "Väl fil för backup." + +# +msgid "Select files/folders to backup" +msgstr "Ange filer/bibliotek att ta backup pÃ¥" + +msgid "Select input device" +msgstr "Välj inmatningsenhet" + +msgid "Select input device." +msgstr "Välj inmatningsenhet." + +# +msgid "Select interface" +msgstr "Välj kort" + +# +msgid "Select location" +msgstr "Välj Sökväg" + +# +msgid "Select movie" +msgstr "Välj en film" + +# +msgid "Select provider to add..." +msgstr "Välj operatör att lägga till..." + +# +msgid "Select refresh rate" +msgstr "Välj uppdateringsfrekvens" + +msgid "Select satellites" +msgstr "" + +# +msgid "Select service to add..." +msgstr "Välj kanal att lägga till..." + +msgid "Select sort method:" +msgstr "" + +# +msgid "Select target folder" +msgstr "Välj mÃ¥lkatalog" + +# +msgid "Select the movie path" +msgstr "Välj film sökväg" + +# +msgid "Select upgrade source" +msgstr "Ange uppgraderingskälla." + +# +msgid "Select upgrade source to edit." +msgstr "Ange uppgraderingskälla att ändra." + +# +msgid "Select video input with up/down buttons" +msgstr "Välj videoingÃ¥ng med upp/ner knapparna" + +# +msgid "Select video mode" +msgstr "Välj videoläge" + +# +msgid "Select wireless network" +msgstr "Välj trÃ¥dlöst nätverk" + +msgid "Select your provider, and press OK to start the scan" +msgstr "Välj din leverantör och tryck OK för att starta sökningen" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +# +msgid "Send DiSEqC only on satellite change" +msgstr "Skicka enbart DiSEqC vid ändrad satellit" + +# +msgid "Separate titles with a main menu" +msgstr "Separera titlar med en huvudmeny" + +# +msgid "Sequence repeat" +msgstr "Repetera sekvens" + +# +msgid "Serbian" +msgstr "Serbiska" + +# +msgid "Service" +msgstr "Kanal" + +# +msgid "Service has been added to the favourites." +msgstr "Kanalen har lagts till i favoriter." + +# +msgid "Service has been added to the selected bouquet." +msgstr "Kanalen har lagts till i vald favoritlista." + +# +msgid "Service info" +msgstr "Kanalinfo" + +# +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Service ogiltig!\n" +"(Timeout vid läsning av PMT)" + +msgid "Service name" +msgstr "Kanalnamn" + +# +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Service inte funnen!\n" +"(SID inte funnen i PAT)" + +msgid "Service reference" +msgstr "Servicereferens" + +# +msgid "Service scan" +msgstr "Kanalsökning" + +# +msgid "Service searching" +msgstr "Kanalsökning" + +msgid "Service title mode" +msgstr "Kanalens utseende" + +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"Tjänsten kunde inte hittas!\n" +"Kontrollera tunerinställningar!" + +# +msgid "Services" +msgstr "Kanaler" + +msgid "Set default" +msgstr "" + +# +msgid "Set end time" +msgstr "Sätt sluttid" + +msgid "Set fixed" +msgstr "Fixera" + +msgid "Set fps for external subtitles" +msgstr "Ställ in fps för externa undertexter" + +# +msgid "Set interface as default Interface" +msgstr "Använd kort som standard kort" + +msgid "Set limits" +msgstr "Sätt gränserna" + +# +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "Ange vilken typ av förloppsindikator som ska användas i kanallistan." + +msgid "Set time window to 1 hour" +msgstr "Sätt tidsfönster till 1 timme" + +msgid "Set time window to 2 hours" +msgstr "Sätt tidsfönster till 2 timmar" + +msgid "Set time window to 3 hours" +msgstr "Sätt tidsfönster till 3 timmar" + +msgid "Set time window to 4 hours" +msgstr "Sätt tidsfönster till 4 timmar" + +msgid "Set time window to 5 hours" +msgstr "Sätt tidsfönster till 5 timmar" + +msgid "Set time window to 6 hours" +msgstr "Ange tidsfönster till 6 timmar" + +# +msgid "Set voltage and 22KHz" +msgstr "Ange Volt och 22KHz" + +# +msgid "Settings" +msgstr "Inställningar" + +# +msgid "Setup" +msgstr "Inställningar" + +msgid "Setup menu" +msgstr "Installationsmeny" + +# +msgid "Setup mode" +msgstr "Installationsläge" + +msgid "Setup your positioner" +msgstr "Ställ in din position" + +# +msgid "Setup your satellite equipment" +msgstr "Satellitutrustning" + +# +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "Ska guiden för USB-stickan fortsätta och programmera imagefilen %s i flashminnet?" + +# +msgid "Sharpness" +msgstr "Skärpa" + +msgid "Short filenames" +msgstr "Korta filnamn" + +msgid "Show EIT now/next in infobar" +msgstr "Visa EIT nu/nästa i infobalken" + +# +msgid "Show EPG for current channel..." +msgstr "Visa EPG för aktuell kanal ..." + +# +msgid "Show EPG..." +msgstr "Visa EPG..." + +msgid "Show Games show" +msgstr "Visa Spel show" + +msgid "Show SNR percentage instead of dB value" +msgstr "Visa SNR procent istället för dB värde" + +msgid "Show VCR scart on main menu" +msgstr "Visa VCR SCART i huvudmenyn" + +# +msgid "Show WLAN status" +msgstr "Visa WLAN Status" + +msgid "Show animation while busy" +msgstr "Visa ikon när mottagaren är upptagen" + +msgid "Show background in radio mode" +msgstr "Visa bakgrundsbild vid radioläge" + +msgid "Show bouquet selection menu" +msgstr "Visa favoritlistemenyn" + +msgid "Show busy indicator when the system is busy." +msgstr "Vid aktiverad, kommer en ikon att visas när mottagaren är upptagen." + +msgid "Show channel numbers in channel selection" +msgstr "Visa kanalnummer i kanallistan" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "Visa krypteringsinfo i infobalken" + +msgid "Show detailed event info" +msgstr "Visa detaljerad programinfo" + +# +msgid "Show event details" +msgstr "Visa programdetaljer" + +# +msgid "Show event-progress in channel selection" +msgstr "Visa programutveckling i kanallistan" + +# +msgid "Show extended description" +msgstr "Visa utökad beskrivning" + +# +msgid "Show extensions..." +msgstr "Visa utökningar..." + +msgid "Show icon for new/unseen items" +msgstr "Visa ikoner för nya/osedda objekt" + +msgid "Show in extensions menu" +msgstr "Visa i utökningsmeny" + +# +msgid "Show info" +msgstr "Visa Info" + +# +msgid "Show info line" +msgstr "Visa Infolinje" + +# +msgid "Show infobar on channel change" +msgstr "Visa infobalk vid kanalbyte" + +# +msgid "Show infobar on event change" +msgstr "Visa infobalk vid programändring" + +# +msgid "Show infobar on skip forward/backward" +msgstr "Visa infobalk vid hopp framÃ¥t/bakÃ¥t" + +msgid "Show latest commits on sourceforge" +msgstr "" + +msgid "Show message when recording starts" +msgstr "Visa meddelande när inspelning startar" + +msgid "Show movie lengths in movielist" +msgstr "Visa filmens längd i filmlistan" + +msgid "Show multi channel EPG" +msgstr "Visa multikanal EPG" + +msgid "Show picons in channel list" +msgstr "" + +# +msgid "Show positioner movement" +msgstr "Visa ikon vid positionsrörelse" + +msgid "Show screensaver" +msgstr "Visa skärmsläckare" + +msgid "Show second infobar" +msgstr "Visa andra infobalken" + +msgid "Show service type icons" +msgstr "Visa typ av serviceikon" + +# +msgid "Show services beginning with" +msgstr "Visa kanal som börjar med" + +# +msgid "Show shutdown menu" +msgstr "Visa avstängningsmeny" + +msgid "Show single service EPG" +msgstr "Visa singel kanal-EPG" + +msgid "Show status icons in Movielist" +msgstr "Visa statusikoner i filmlistan" + +msgid "Show status icons in movie list" +msgstr "Visa statusikoner i filmlistan" + +msgid "Show status icons in movielist" +msgstr "Visa statusikoner i filmlistan" + +# +msgid "Show tag menu" +msgstr "Visa märkningsmeny" + +# +msgid "Show the radio player..." +msgstr "Visa radiospelaren..." + +# +msgid "Show the tv player..." +msgstr "Visa tv spelare..." + +msgid "Show warning when timeshift is stopped" +msgstr "Visa varning när timeshift avslutas" + +# +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Visa status pÃ¥ ditt trÃ¥dlösa LAN anslutning.\n" + +# +msgid "Shuffle playlist" +msgstr "Blanda spellista" + +# +msgid "Shutdown" +msgstr "Stäng av" + +msgid "Shutdown when in Standby" +msgstr "Stäng av vid viloläge" + +msgid "Side by side" +msgstr "Sida vid sida" + +msgid "Signal OK, proceeding" +msgstr "Signal OK, fortsätter" + +msgid "Signal quality" +msgstr "Signalkvalitet" + +# +msgid "Signal strength:" +msgstr "Signalstyrka:" + +msgid "Signal: " +msgstr "Signal: " + +# +msgid "Similar" +msgstr "Liknande" + +# +msgid "Similar broadcasts:" +msgstr "Liknande sändningar:" + +# +msgid "Simple" +msgstr "Enkel" + +# +msgid "Simple titleset (compatibility for legacy players)" +msgstr "Enkelt titelset (kompabilitet för äldre spelare)" + +# +msgid "Single" +msgstr "Singel" + +# +msgid "Single EPG" +msgstr "Singel EPG" + +# +msgid "Single satellite" +msgstr "Singel satellit" + +# +msgid "Single step (GOP)" +msgstr "Enkelsteg (GOP)" + +# +msgid "Single transponder" +msgstr "Singel transponder" + +msgid "Site latitude" +msgstr "Platsens latitud" + +msgid "Site longitude" +msgstr "Platsens longitud" + +# +msgid "Skin" +msgstr "Utseende" + +# +msgid "Skins" +msgstr "Utseenden" + +msgid "Skip empty services" +msgstr "Hoppa över tomma kanaler" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "Hoppa över kontroll av internetanslutning (inaktiverar automatisk paketinstallation)" + +# +msgid "Sleep timer" +msgstr "Insomningstimer" + +msgid "SleepTimer Configuration" +msgstr "Konfiguration av insomningstimer" + +msgid "Sleeptimer" +msgstr "Insomningstimer" + +# +msgid "Slide picture in loop" +msgstr "bildspel i loop" + +# +msgid "Slide show interval (sec.)" +msgstr "Slideshow intervall (sec.)" + +# +#, python-format +msgid "Slot %d" +msgstr "Slot %d" + +msgid "Slovak" +msgstr "Slovakiska" + +# +msgid "Slovenian" +msgstr "Slovenska" + +# +msgid "Slow" +msgstr "Sakta" + +# +msgid "Slow motion speeds" +msgstr "Hastigheter för slowmotion" + +# +msgid "Small progress" +msgstr "Liten tidslinje" + +msgid "Social/Political/Economics" +msgstr "Social/Politisk/Ekonomisk" + +msgid "SoftCam / CI" +msgstr "SoftCam / CI" + +# +msgid "Softcam type" +msgstr "Mjukvara" + +# +msgid "Software" +msgstr "Mjukvara" + +# +msgid "Software management" +msgstr "Mjukvaruhantering" + +msgid "Software manager setup" +msgstr "Mjukvaruhanterare installation" + +# +msgid "Software restore" +msgstr "MjukvaruÃ¥terskapa" + +# +msgid "Software update" +msgstr "Mjukvaruuppdatera" + +msgid "Softwaremanager information" +msgstr "Mjukvaruhanterare information" + +# +msgid "Some plugins are not available:\n" +msgstr "NÃ¥gra plugins är inte tillgängliga:\n" + +# +#, python-format +msgid "Sorry, %s has not been installed!" +msgstr "Ledsen, %s har inte blivit installerad!" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "Ledsen, radera kataloger kan (för tillfället) endast göras i papperskorgen." + +# +msgid "Sorry, no backups found!" +msgstr "Ledsen, inga backuper hittades!" + +# +msgid "Sorry, no details available!" +msgstr "Tyvärr, inga Detaljer tillgängliga!" + +# +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"Ledsen din backupdestination är inte skrivbar.\n" +"Vänligen välj en annan destination." + +msgid "Sort" +msgstr "Sortera" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Sortera A-Z" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +# +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort time" +msgstr "Sortera tid" + +# +msgid "Sound" +msgstr "Ljud" + +# +msgid "Sound carrier" +msgstr "Ljudbärare" + +msgid "Source request" +msgstr "Källbegäran" + +# +msgid "South" +msgstr "Syd" + +# +msgid "Spanish" +msgstr "Spanska" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "Ange sluttid när inaktiv insomningstimer ska ignoreras" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "Ange Starttid när inaktiv insomningstimer ska ignoreras" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "Ange tidsperiod för att ignorera inaktiv insomningstimer" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +# +msgid "Split preview mode" +msgstr "Delat förvisningaläge" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "Sport" + +# +msgid "Standard" +msgstr "standard" + +msgid "Standart list" +msgstr "" + +# +msgid "Standby" +msgstr "Viloläge" + +# +msgid "Standby / restart" +msgstr "Viloläge / Omstart" + +msgid "Standby after current event" +msgstr "Viloläge efter aktuellt program" + +# +#, python-format +msgid "Standby fan %d PWM" +msgstr "Standby fläkt %d PWM" + +# +#, python-format +msgid "Standby fan %d voltage" +msgstr "Standby fläkt %d Volt" + +msgid "Standby in " +msgstr "Viloläge om" + +msgid "StandbyLED" +msgstr "" + +# +msgid "Start from the beginning" +msgstr "Spela upp frÃ¥n början" + +msgid "Start offline decode" +msgstr "Starta avkodning offline" + +# +msgid "Start recording?" +msgstr "Starta inspelning?" + +# +msgid "Start test" +msgstr "Starta test" + +# +msgid "Start time" +msgstr "Starttid" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "Starttid för att ignorera inaktiv insomningstimer" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +# +msgid "Start timeshift" +msgstr "Starta timeshift" + +msgid "Start with list screen" +msgstr "Börja med listskärmen" + +# +msgid "Starting on" +msgstr "Startar pÃ¥" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +# +msgid "Step east" +msgstr "Stega öst" + +# +msgid "Step west" +msgstr "Stega väst" + +msgid "Stepped east" +msgstr "Stegade mot öster" + +msgid "Stepped west" +msgstr "Stegade mot väster" + +# +msgid "Stop" +msgstr "Avsluta" + +# +msgid "Stop PiP" +msgstr "Avsluta BiB" + +# +msgid "Stop current event and disable coming events" +msgstr "Avsluta nuvarande och avaktivera kommande program" + +# +msgid "Stop current event but not coming events" +msgstr "Avsluta nuvarande program men inte kommande" + +# +msgid "Stop entry" +msgstr "Slutpost" + +# +msgid "Stop playing this movie?" +msgstr "Avsluta uppspelningen?" + +msgid "Stop recording" +msgstr "Stoppa inspelning" + +msgid "Stop recording and delete" +msgstr "Stoppa inspelning och radera" + +msgid "Stop service on return to movie list" +msgstr "" + +# +msgid "Stop test" +msgstr "Stoppa test" + +# +msgid "Stop testing plane after # failed transponders" +msgstr "Sluta testa efter # misslyckade transponders" + +# +msgid "Stop testing plane after # successful transponders" +msgstr "Sluta testa efter # lyckade transponders" + +msgid "Stop timer recording" +msgstr "Stoppa timerinspelning" + +# +msgid "Stop timeshift" +msgstr "Avsluta timeshift" + +# +msgid "Stop timeshift?" +msgstr "Avsluta timeshift?" + +msgid "Stopped" +msgstr "Stoppad" + +msgid "Store at index" +msgstr "Spara vid index" + +# +msgid "Store position" +msgstr "Lagra position" + +# +msgid "Stored position" +msgstr "Lagrad position" + +msgid "Stream" +msgstr "StrömmningsförfrÃ¥gan" + +msgid "Stream request" +msgstr "StrömmningsförfrÃ¥gan" + +msgid "Strongest position" +msgstr "Starkaste positionen" + +# +msgid "Subservice list..." +msgstr "Underkanalslista..." + +# +msgid "Subservices" +msgstr "Underkanaler" + +msgid "Subtitle Quickmenu" +msgstr "Snabbmeny för undertext" + +msgid "Subtitle alignment" +msgstr "Undertextens placering" + +msgid "Subtitle border width" +msgstr "Undertextens kantbredd" + +msgid "Subtitle delay when timing is bad" +msgstr "Undertextfördröjning när timing är dÃ¥lig" + +msgid "Subtitle delay when timing lacks" +msgstr "Fördröjning av undertext när timing saknas" + +msgid "Subtitle font size" +msgstr "Undertextens fontstorlek" + +msgid "Subtitle language selection 1" +msgstr "Undertext sprÃ¥kval 1" + +msgid "Subtitle language selection 2" +msgstr "Undertext sprÃ¥kval 2" + +msgid "Subtitle language selection 3" +msgstr "Undertext sprÃ¥kval 3" + +msgid "Subtitle language selection 4" +msgstr "Undertext sprÃ¥kval 4" + +# +msgid "Subtitle position" +msgstr "Undertextens position" + +# +msgid "Subtitle selection" +msgstr "Undertext val" + +msgid "Subtitle selection..." +msgstr "Undertext val..." + +msgid "Subtitle settings" +msgstr "Undertextinställningar" + +# +msgid "Subtitles" +msgstr "Undertexter" + +# +msgid "Sun" +msgstr "Sön" + +# +msgid "Sunday" +msgstr "Söndag" + +# +msgid "Swap PiP and main picture" +msgstr "Skifta BiB och huvudbild" + +# +msgid "Swap services" +msgstr "Byt kanal" + +# +msgid "Swedish" +msgstr "Svenska" + +msgid "Switch TV to correct input" +msgstr "Växla till korrekt ingÃ¥ng pÃ¥ TV:n" + +msgid "Switch between filelist/playlist" +msgstr "Växla mellan fillista / spellista" + +msgid "Switch between normal mode and list mode" +msgstr "Växla frÃ¥n normalt läge till listläge" + +msgid "Switch to HDMI in mode" +msgstr "" + +# +msgid "Switch to filelist" +msgstr "Byt till fillista" + +msgid "Switch to next channel" +msgstr "" + +# +msgid "Switch to next channel in history" +msgstr "Nästa kanal i historiken" + +# +msgid "Switch to next sub service" +msgstr "Byt till nästa underkanal" + +# +msgid "Switch to playlist" +msgstr "Byt till spellista" + +# +msgid "Switch to previous channel" +msgstr "Byt till föregÃ¥ende underkanal" + +# +msgid "Switch to previous channel in history" +msgstr "Växla till föregÃ¥ende kanal i historiken" + +# +msgid "Switch to previous sub service" +msgstr "Växla till föregÃ¥ende underkanal" + +# +msgid "Switchable tuner types:" +msgstr "Växlingbara tunertyper:" + +msgid "Symbol rate" +msgstr "Symbolhastighet" + +msgid "Symbol rate:" +msgstr "Symbolhastighet:" + +msgid "Sync failure moving back to origin !" +msgstr "Synkfel, flyttar tillbaks till ursprungsläget!" + +# +msgid "System" +msgstr "System" + +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "ÖVERSÄTTNINGS_INFO" + +# +msgid "TS file is too large for ISO9660 level 1!" +msgstr "TS fil för stor för ISO9660 level 1!" + +msgid "TSID" +msgstr "TSID" + +msgid "TV physical address report" +msgstr "TV fysisk adress rapport" + +msgid "TXT PID" +msgstr "TXT PID" + +# +msgid "Table of contents for collection" +msgstr "Index över innehÃ¥llet av samligen" + +# +msgid "Tags" +msgstr "Märken" + +msgid "Teletext subtitle color" +msgstr "Teletextens undertextfärg" + +# +msgid "Temperature and fan control" +msgstr "Temperatur och Fläktkontroll" + +# +msgid "Terrestrial" +msgstr "Marksänd" + +# +msgid "Terrestrial provider" +msgstr "Marksänd leverantör" + +# +msgid "Test DiSEqC settings" +msgstr "Testa DiSEqC-inställningarna" + +# +msgid "Test mode" +msgstr "Testläge" + +msgid "Test the network configuration of your receiver.\n" +msgstr "Testa nätverkskonfigurationen för din mottagare.\n" + +# +msgid "Test type" +msgstr "Testtyp" + +# +msgid "Text color" +msgstr "textfärg" + +msgid "Thai" +msgstr "Thailändska" + +# +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"Tack för att du använde guiden.\n" +"Vänligen tryck OK för att forsätta." + +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"Tack för att du använde guiden. Din mottagare är nu konfigurerad.\n" +"Tryck OK för att börja använda din mottagare." + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "DVD standarden stödjer inte H.264 (HDTV) videoströmmar. Vill du skapa en format data DVD (kommer ej kunnas spelas i vanlig DVD spelare) istället?" + +msgid "The PIN code has been changed successfully." +msgstr "PIN-koden har ändrats!" + +msgid "The PIN codes you entered are different." +msgstr "PIN-koden matchar inte." + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" +"USB-stickan förbereddes för att vara bootbar.\n" +"Nu kan du ladda ner en NFI imagefil!" + +msgid "The backup failed. Please choose a different backup location." +msgstr "Backupen misslyckades. Välj en annan plats för din backup." + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" +"Aktuell Beta-image är kanske inte stabil.\n" +"För mer information se %s." + +# +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"Biblioteket %s är inte skrivbart.\n" +"Säkerställ att du har valt ett skrivbart bibliotek." + +# +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"Följande enhet hittades:\n" +"\n" +"%s\n" +"\n" +"Vill du skriva USB flasher till den stickan?" + +# +msgid "The following files were found..." +msgstr "Följande filer hittades..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "Validering av md5sum misslyckades, filen kan vara korrupt!" + +# +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"Utökningen Nätverksguiden är inte installerad!\n" +"Vänligen installera den." + +# +#, python-format +msgid "The path %s already exists." +msgstr "Sökvägen %s existerar redan." + +msgid "The pin code you entered is wrong." +msgstr "Pin koden du angav var fel." + +# +#, python-format +msgid "The results have been written to %s." +msgstr "Resultatet har skrivits till %s." + +# +msgid "The sleep timer has been activated." +msgstr "Insomningstimern har aktiverats." + +# +msgid "The sleep timer has been disabled." +msgstr "Insomningstimern är deaktiverad." + +# +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"Utökningen Mjukvaruhanterare är inte installerad!\n" +"Vänligen installera den." + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "Statusen för den aktuella beta-imagen kunde inte kontrolleras eftersom %s inte kunde nÃ¥s." + +# +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "Timerfilen (timers.xml) är skadad och kan inte läsas." + +msgid "The user interface of your receiver is restarting" +msgstr "Användargränssnittet för din mottagare startas om" + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" +"Användargränssnittet för din mottagare startas om\n" +"pÃ¥ grund av ett fel i mytest.py" + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"Pluginet för trÃ¥dlöst LAN är inte installerad!\n" +"Vänligen installera den och välj vad du vill göra härnäst." + +# +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"Pluginet för trÃ¥dlöst LAN är inte installerad!\n" +"Vänligen installera den." + +# +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "Guiden kan ta en backup pÃ¥ nuvarande inställningar. Vill du ta en backup nu?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "Guiden hittade en konfigurationsbackup. Vill du Ã¥terställla dina gamla inställningar frÃ¥n %s?" + +# +msgid "The wizard is finished now." +msgstr "Guiden är nu färdig." + +# +msgid "There are at least " +msgstr "Det finns minst " + +# +#, python-format +msgid "There are at least %s updates available." +msgstr "Det finns minst %s uppdateringar tillgängliga." + +# +msgid "There are currently no outstanding actions." +msgstr "För tillfället är det inga Ã¥tgärder att utföra." + +# +msgid "There are no updates available." +msgstr "Inga uppdateringar tillgängliga." + +msgid "There is no signal to lock on !" +msgstr "Det finns ingen signal att lÃ¥sa pÃ¥!" + +# +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"Det är inte säkert att det finns tillräckligt med utrymme pÃ¥ vald partition.\n" +"Vill du verkligen fortsätta?" + +# +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "Detta DVD RW media är redan formaterat - omformatering kommer ta bort all data pÃ¥ skivan." + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" +"Detta plugin skapar en USB-sticka som kan användas för att uppdatera firmware i din mottagare utan behovet av nätverks eller WLAN anslutning.\n" +"Först, en USB-sticka mÃ¥ste förberedas sÃ¥ att den blir bootbar.\n" +"Nästa steg, en NFI-imagefil ska laddas ner frÃ¥n uppdateringsservern och sparas till USB-stickan.\n" +"Om du redan har en förberedd bootbar USB-sticka, vänligen sätt in den nu. Annars anslut en USB-sticka med minsta storlek pÃ¥ 64 MB!" + +# +msgid "This plugin is installed." +msgstr "Detta plugin är installerat." + +# +msgid "This plugin is not installed." +msgstr "Detta plugin är inte installerat." + +# +msgid "This plugin will be installed." +msgstr "Detta plugin kommer att installeras." + +# +msgid "This plugin will be removed." +msgstr "Detta plugin kommer att tas bort." + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "Den här mottagaren kan inte avkoda %s strömmar!" + +# +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"Detta test kontrollerar konfigurationen för Namnservrar.\n" +"Om du fÃ¥r ett \"obekräftat\" meddelande:\n" +"- vänligen kontrollera din DHCP, kablar och adapter installation\n" +"- om du har konfigurerat din Namnserver manuellt vänligen bekräfta dina inställningar i \"Namnserver\" INstallation" + +# +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Detta test kontrollerar om en nätverkskablen är ansluten till din LAN adapter.\n" +"Om du fÃ¥r ett \"Ej ansluten\" meddelande:\n" +"- bekräfta att nätverkskabel är ansluten\n" +"- bekräfta att kabeln inte är trasig" + +# +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Detta test kontrollerar om du har en giltig IP adress pÃ¥ din LAN adapter.\n" +"Om du fÃ¥r ett \"obekräftat\" meddelande:\n" +"- ingen giltig IP hittades\n" +"- vänlig kontrollera din DHCP, kablar och nätverkskorts installation" + +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"Detta test kontrollerar om din LAN adapter är konfigurerad för automatisk IP adress tilldelning med DHCP.\n" +"Om du fÃ¥r en \"deaktiverad\" meddelande:\n" +" - ditt LAN är konfigurerat för manuell IP tilldelning\n" +"- bekräfta att du har angivit korrekt IP information i Adapterinstallation dialogen.\n" +"Om du fÃ¥r ett \"aktiverat\" meddelande:\n" +"-bekräfta att du har konfigurerad och fungerandes DHCP server pÃ¥ ditt nätverk." + +# +msgid "This test detects your configured LAN adapter." +msgstr "Detta test upptäcker konfigurerad LAN adapter." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" +"Detta kommer att räkna ut alla rotorns positioner igen och kan kanske ta bort alla tidigare sparade inställningar!\n" +"Är du säker?" + +# +msgid "Three" +msgstr "Tre" + +# +msgid "Threshold" +msgstr "Gränsvärde" + +# +msgid "Thu" +msgstr "Tors" + +# +msgid "Thumbnails" +msgstr "Thumbnails" + +# +msgid "Thursday" +msgstr "Torsdag" + +# +msgid "Time" +msgstr "Tid" + +msgid "Time scale" +msgstr "Tidsskala" + +# +msgid "Timer" +msgstr "Timer" + +msgid "Timer Overview" +msgstr "" + +# +msgid "Timer edit" +msgstr "Ändra Timer" + +# +msgid "Timer editor" +msgstr "Timereditor" + +# +msgid "Timer entry" +msgstr "Timerinmatning" + +# +msgid "Timer log" +msgstr "Timer log" + +# +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"Timer överlappning upptäckt i timers.xml!\n" +"Vänligen kontrollera!" + +msgid "Timer overview" +msgstr "Översikt av timer(s)" + +# +msgid "Timer recording location" +msgstr "Timerinspelningens plats" + +# +msgid "Timer sanity error" +msgstr "Timerfel" + +# +msgid "Timer selection" +msgstr "Timerval" + +msgid "Timer selection..." +msgstr "Timerval..." + +# +msgid "Timer type" +msgstr "Timertyp" + +# +msgid "Timeshift" +msgstr "Timeshift" + +msgid "Timeshift Live" +msgstr "" + +# +msgid "Timeshift location" +msgstr "Timeshifts filmplats" + +# +msgid "Timeshift not possible!" +msgstr "Timeshift inte möjligt!" + +# +msgid "Timezone" +msgstr "Tidszon" + +# +msgid "Title" +msgstr "Titel" + +# +msgid "Title properties" +msgstr "Titel egenskaper" + +# +msgid "Titleset mode" +msgstr "Titelset läge" + +msgid "To audio selection" +msgstr "Till ljudval" + +msgid "To subtitle selection" +msgstr "Till undertextval" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" +"För att uppdatera din mottagare, vänligen följ dessa anvisningar:\n" +"1) Stäng av din box med strömbrytaren pÃ¥ baksidan och säkerställ att bootbar USB-sticka är ansluten.\n" +"2) SlÃ¥ pÃ¥ strömmen och hÃ¥ll NER-knappen pÃ¥ framsidan intryckt i cirka 10 sekunder.\n" +"3) Vänta pÃ¥ uppstart och följ instruktionerna frÃ¥n guiden." + +# +msgid "Today" +msgstr "Idag" + +# +msgid "Toggle a cut mark at the current position" +msgstr "Skifta en klippmarkering pÃ¥ nuvarande position" + +# +msgid "Tone amplitude" +msgstr "Ton Amplitud" + +# +msgid "Tone mode" +msgstr "Tonläge" + +# +msgid "Toneburst" +msgstr "Toneburst" + +# +msgid "Toneburst A/B" +msgstr "Toneburst A/B" + +msgid "Top and bottom" +msgstr "Längst upp och längst ner" + +# +msgid "Track" +msgstr "SpÃ¥r" + +# +msgid "Translation" +msgstr "Översättning" + +# +msgid "Translation:" +msgstr "Översättning:" + +msgid "Translations" +msgstr "Översättningar" + +# +msgid "Transmission mode" +msgstr "Sändningstyp" + +# +msgid "Transponder" +msgstr "Transponder" + +# +msgid "Transponder type" +msgstr "Transponder Typ" + +msgid "Trash can" +msgstr "Papperskorg" + +# +msgid "Tries left:" +msgstr "Försök kvar:" + +# +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Försöker hitta transponders i kabelnätverket... vänligen vänta..." + +# +msgid "Trying to download a new packetlist. Please wait..." +msgstr "Försöker ladda ner ny paketlista. Vänligen vänta..." + +# +msgid "Tue" +msgstr "Tis" + +# +msgid "Tuesday" +msgstr "Tisdag" + +# +msgid "Tune" +msgstr "Ställ in" + +msgid "Tune and focus" +msgstr "Ställ in och fokusera" + +# +msgid "Tune failed!" +msgstr "Tuning misslyckades!" + +# +msgid "Tuner" +msgstr "Tuner" + +# +msgid "Tuner configuration" +msgstr "Tunerkonfiguration" + +msgid "Tuner is not supported" +msgstr "" + +# +msgid "Tuner slot" +msgstr "Tuner Slot" + +# +msgid "Tuner status" +msgstr "Tunerstatus" + +# +#, python-format +msgid "Tuner status %s" +msgstr "Tunerstatus %s" + +# +msgid "Tuner type" +msgstr "Tuner typ" + +# +msgid "Turkish" +msgstr "Turkiska" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +# +msgid "Two" +msgstr "TvÃ¥" + +# +msgid "Type" +msgstr "Typ" + +# +msgid "Type of scan" +msgstr "Typ av sökning" + +# +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "USALS Kalibrering" + +# +msgid "USB stick" +msgstr "USB sticka" + +# +msgid "USB stick wizard" +msgstr "Guide för USB sticka" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Obevakad uppgradering pÃ¥gÃ¥r!\n" +"Vänta tills din mottagare startar om\n" +"Detta kan ta nÃ¥gra minuter!" + +# +msgid "Undo install" +msgstr "Ã…ngra installation" + +# +msgid "Undo uninstall" +msgstr "Ã…ngra avinstallation" + +msgid "Unencrypted" +msgstr "Okrypterad" + +# +msgid "UnhandledKey" +msgstr "Okänd knapp" + +# +msgid "Unicable" +msgstr "Unicable" + +# +msgid "Unicable LNB" +msgstr "Unicable LNB" + +# +msgid "Unicable Martix" +msgstr "Unicable Martix" + +# +msgid "Uninstall" +msgstr "Avinstallera" + +# +msgid "Universal LNB" +msgstr "Universal LNB" + +msgid "Unknown" +msgstr "Okänd" + +msgid "Unmount" +msgstr "Avmontera" + +# +msgid "Unsupported" +msgstr "Osupporterat" + +# +msgid "Update" +msgstr "Uppdatera" + +msgid "Update and ask to reboot" +msgstr "Uppdatera och du fÃ¥r själv välja om du vill starta om" + +msgid "Update and reboot (recommended)" +msgstr "Uppdatera och starta om (rekommenderas)" + +# +msgid "Update channel list only" +msgstr "Uppdatera endast kanallistan" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "Uppdatering klar, %d packet installerat." +msgstr[1] "Uppdatering klar, %d packet installerade." + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "Uppdatering färdig, vill du starta om din mottagare?" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "Uppdatering misslyckades. Din mottagare har inte en fungerande internetanslutning." + +msgid "Update has completed." +msgstr "Uppdatering har slutförts." + +# +msgid "Updatefeed not available." +msgstr "Uppdateringsfeed ej tillgänglig." + +# +msgid "Updating software catalog" +msgstr "Uppdaterar mjukvarukatalogen" + +# +msgid "Upgrading" +msgstr "Uppgradering" + +# +msgid "Use" +msgstr "Använd" + +# +msgid "Use DHCP" +msgstr "Använd DHCP" + +msgid "Use EIT EPG information when it is available." +msgstr "Använd EIT EPG-information när den är tillgänglig." + +msgid "Use FreeSat EPG information when it is available." +msgstr "Använd FreeSat EPG-information när den är tillgänglig." + +msgid "Use MHW EPG information when it is available." +msgstr "Använd MHW EPG-information när den är tillgänglig." + +msgid "Use Netmed EPG information when it is available." +msgstr "Använd Netmed EPG-information när den är tillgänglig." + +msgid "Use TV remote control" +msgstr "Använd TV:ns fjärrkontroll" + +msgid "Use USALS for this sat" +msgstr "Använd usals för denna sat" + +msgid "Use ViaSat EPG information when it is available." +msgstr "Använd ViaSat EPG-information när den är tillgänglig." + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +# +msgid "Use a gateway" +msgstr "Använd en gateway" + +msgid "Use fastscan channel names" +msgstr "Använd snabbskanningens kanalnamn" + +msgid "Use fastscan channel numbering" +msgstr "Använd snabbskanningens kanalnumrering" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "Använd individuella inställningar för varje katalog" + +# +msgid "Use interface" +msgstr "Använd Interface" + +msgid "Use official channel numbering" +msgstr "Använd den officiella kanalnumreringen" + +msgid "Use original DVB subtitle position" +msgstr "Använd DVB-undertextens originalposition" + +msgid "Use original teletext position" +msgstr "Använd teletextens originalposition" + +# +msgid "Use power measurement" +msgstr "Använd strömmätning" + +# +msgid "Use the network wizard to configure selected network adapter" +msgstr "Använd Nätverksguiden för att konfigurera vald nätverksadapter" + +# +msgid "Use the network wizard to configure your network\n" +msgstr "Använd Nätverksguiden för att konfigurera ditt nätverk\n" + +# +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "Använd upp/ner pilarna pÃ¥ din fjärrkontroll för att välja. Tryck sedan OK." + +# +msgid "Use the wizard to set up basic features" +msgstr "Använd guiden för grundinställningarna" + +msgid "Use these input device settings?" +msgstr "Använd dessa inställningar för inmatningsenhet?" + +msgid "Use these settings?" +msgstr "Använd dessa inställningar?" + +# +msgid "Use this video enhancement settings?" +msgstr "Använd denna videoförbättringskonfiguration?" + +msgid "Use trash can in movielist" +msgstr "Använd papperskorgen i filmlistan" + +# +msgid "Used service scan type" +msgstr "Använd kanalsökningstyp" + +msgid "User - bouquets" +msgstr "Användare - favoritlistor" + +# +msgid "User defined" +msgstr "Användardefinierat" + +msgid "User defined transponder" +msgstr "Användardefinerad transponder" + +msgid "User interface" +msgstr "Användargränssnitt" + +# +msgid "Username" +msgstr "Användarnamn" + +#, python-format +msgid "Using LNB %d" +msgstr "Använder LNB %d" + +msgid "Using fixed address" +msgstr "Använder fixerad adress" + +#, python-format +msgid "Using tuner %s" +msgstr "Använder Tuner %s" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "När undertextsprÃ¥ket är samma som ljudsprÃ¥ket, kommer undertexter inte användas. Aktivera det här alternativet för att tillÃ¥ta dessa undertexter." + +# +msgid "VCR scart" +msgstr "VCR SCART" + +# +msgid "VMGM (intro trailer)" +msgstr "VMGM (intro trailer)" + +# +msgid "Vertical" +msgstr "Vertikal" + +msgid "Vertical turning speed" +msgstr "Vertikal vändningshastighet" + +msgid "Video PID" +msgstr "Video PID" + +# +msgid "Video enhancement preview" +msgstr "Förhandsvisning av videoförbättring" + +# +msgid "Video enhancement settings" +msgstr "Videoförbättringskonfiguration" + +# +msgid "Video enhancement setup" +msgstr "Videoförbättringsinstallation" + +# +msgid "Video fine tuning" +msgstr "Fininställning av video" + +# +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Video ingÃ¥ngsval\n" +"\n" +"Vänligen tryck OK om du kan se denna bild pÃ¥ din TV (eller välj annan ingÃ¥ngsport).\n" +"\n" +"Nästa ingÃ¥ngsport kommer automatiskt provas om 20 sekunder." + +# +msgid "Video mode selection." +msgstr "Videoläges val." + +# +msgid "Video output" +msgstr "VideoutgÃ¥ng" + +# +msgid "Video setup" +msgstr "Videoinställning" + +# +msgid "Video wizard" +msgstr "Video Guide" + +#, python-format +msgid "Video: %s fps" +msgstr "Video: %s fps" + +msgid "VideoMode" +msgstr "Videoläge" + +msgid "Videocodec" +msgstr "Videocodec" + +msgid "Videoformat" +msgstr "Videoformat" + +msgid "Videosize" +msgstr "Videostorlek" + +# +msgid "View Rass interactive..." +msgstr "Visa Rass interaktivitet..." + +# +msgid "View details" +msgstr "Visa detaljer" + +# +msgid "View list of available " +msgstr "Visa lista över tillgängliga " + +# +msgid "View list of available CommonInterface extensions" +msgstr "Visa lista över tillgängliga CommonInterface utökningar" + +# +msgid "View list of available EPG extensions." +msgstr "Visa lista över tillgängliga EPG utökningar." + +msgid "View list of available Satellite equipment extensions." +msgstr "Visa lista över tillgängliga Satellitutrustnings utökningar." + +# +msgid "View list of available communication extensions." +msgstr "Visa lista över tillgängliga kommunikations utökningar." + +# +msgid "View list of available default settings" +msgstr "Visa lista över tillgängliga grundinställningar" + +# +msgid "View list of available display and userinterface extensions." +msgstr "Visa lista över tillgängliga Display och Användargränssnitt utökningar." + +# +msgid "View list of available multimedia extensions." +msgstr "Visa lista över tillgängliga multimedia utökningar." + +# +msgid "View list of available networking extensions" +msgstr "Visa lista över tillgängliga nätverks utökningar" + +# +msgid "View list of available recording extensions" +msgstr "Visa lista över tillgängliga inspelnings utökningar" + +# +msgid "View list of available skins" +msgstr "Visa lista över tillgängliga utseenden" + +# +msgid "View list of available software extensions" +msgstr "Visa lista över tillgängliga mjukvaru utökningar" + +# +msgid "View list of available system extensions" +msgstr "Visa lista över tillgängliga system utökningar" + +# +msgid "View photos..." +msgstr "Visa Foton..." + +# +msgid "View teletext..." +msgstr "Visa teletext..." + +# +msgid "View video CD..." +msgstr "Visa Video CD..." + +# +msgid "Virtual keyboard" +msgstr "Virtuellt tangentbord" + +# +msgid "Voltage mode" +msgstr "Spännings läge" + +# +msgid "Volume" +msgstr "Volym" + +# +msgid "W" +msgstr "V" + +# +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "WLAN anslutning" + +# +msgid "WPA" +msgstr "WPA" + +# +msgid "WPA or WPA2" +msgstr "WPA eller WPA2" + +# +msgid "WPA2" +msgstr "WPA2" + +# +msgid "WSS on 4:3" +msgstr "WSS pÃ¥ 4:3" + +# +msgid "Waiting" +msgstr "Väntar" + +msgid "Waiting for mount" +msgstr "Vänta pÃ¥ montering" + +msgid "Waiting for partition" +msgstr "Vänta pÃ¥ partition" + +msgid "Wakeup" +msgstr "Väck" + +msgid "Wakeup TV from standby" +msgstr "Väck TV frÃ¥n viloläge" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "Väck mottagaren frÃ¥n viloläge" + +msgid "Wakeup signal from TV" +msgstr "Väcknings signal frÃ¥n TV:n" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "Varning: ingen LNB; använder fabriksinställningarna." + +# +msgid "Watch movies..." +msgstr "Titta pÃ¥ filmer..." + +# +msgid "Watch recordings..." +msgstr "Titta pÃ¥ inspelningar..." + +# +msgid "Wed" +msgstr "Ons" + +# +msgid "Wednesday" +msgstr "Onsdag" + +# +msgid "Weekday" +msgstr "Veckodag" + +msgid "Weighted position" +msgstr "Uppskattad position" + +# +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"Välkommen till Cutlist editor.\n" +"\n" +"Sök början pÃ¥ det innehÃ¥ll du vill klippa bort. Tryck OK, välj 'start cut'.\n" +"\n" +"Sök därefter slutet pÃ¥ det innehÃ¥ll du vill klippa bort, tryck OK, välj 'end cut'. Det var allt." + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "Välkommen till uppgraderingsguiden för image. Guiden hjälper dig med uppgraderingen av mjukvaran i din mottagare genom att tillgodose en backupmöjlighet av dina aktuella inställningar och en kort förklaring hur du uppgraderar mjukvaran." + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" +"Välkommen.\n" +"\n" +"Om du vill ansluta din mottagare till Internet, dÃ¥ kommer den här guiden hjälpa dig genom grundläggande konfiguration av din mottagare.\n" +"\n" +"Tryck OK för att starta konfigurationen av ditt nätverk" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" +"Välkommen.\n" +"\n" +"Den här guiden hjälper dig med grundinställningarna av din mottagare.\n" +"Tryck OK pÃ¥ din fjärrkontroll för att komma till nästa steg." + +# +msgid "Welcome..." +msgstr "Välkommen..." + +# +msgid "West" +msgstr "Väst" + +msgid "West limit set" +msgstr "Västra gränsen satt" + +# +msgid "What do you want to scan?" +msgstr "Vad vill du söka efter?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "Vid aktiverad, kan BIB stängas med exitknappen." + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "Vid aktiverad, kan du ange en tidsperiod när inaktiv insomningstimer är ignorerad. Detektering är inte avstängd under denna tidsperiod, men den inaktiva timeouten är avstängd." + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "Vid aktiverad, kommer AIT data inkluderas i http-strömmar. Detta tillÃ¥ter en klientmottagare att använda HbbTV." + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "Vid aktiverad, kommer ECM data inkluderas i http-strömmar. Detta tillÃ¥ter en klientmottagare att göra avkodningen." + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "Vid aktiverad, kommer EIT data inkluderas i http-strömmar. Detta tillÃ¥ter en klientmottagare att visa EPG." + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "Vid aktiverad, kommer ett meddelande visas när en film har slutat och nästa kommer att starta." + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "Vid aktiverad, kommer ett meddelande visas när en inspelning startar." + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "Vid aktiverad, kommer en bakgrundsbild vara synlig medan du lyssnar pÃ¥ en radiokanal." + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "Vid aktiverad, kommer en inspelning avbryta direktsänd TV, när det inte finns nÃ¥gra lediga tuners." + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "Vid aktiverad , kommer en varning att visas och användaren fÃ¥r ett val att avsluta eller fortsätta med timeshift." + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "Vid aktiverad, kommer kanalnumreringen starta pÃ¥ '1' för varje favoritlista." + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "Vid aktiverad, kommer innehÃ¥ll med ett bildförhÃ¥llande pÃ¥ 4:3 sträckas för att passa skärmen." + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "Vid aktiverad, byts favoritlistan till nästa när man nÃ¥tt sista kanalen i nuvarande favoritlistan." + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "Vid aktiverad, kommer raderade inspelningar flyttas till papperskorgen, istället för att raderas omedelbart." + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "Vid aktiverad, kommer EIT nu/nästa programdata visas i infobalken. När den är avaktiverad visas nu/nästa programdata frÃ¥n EPG cachen istället." + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "Vid aktiverad, kommer krypteringsinfo att visas i infobalken (om det stöds av utseendet)." + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "Vid aktiverad, kommer felmeddelande relaterade till Common Interface modulen inte visas." + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "Vid aktiverad, kommer felmeddelanden relaterade till zappning inte visas." + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "Vid aktiverad, kommer externa undertexter alltid att vara aktiverade för uppspelning av film." + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "Vid aktiverad, kommer grafiska DVB-undertexter föredras före teletextens undertexter, när bÃ¥da är tillgängliga." + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "Vid aktiverad, kommer grafiska DVB-undertexter centreras horisontellt." + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "Vid aktiverad, kommer grafiska DVB-undertexter visas vid originalpositionen." + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "Vid aktiverad, kommer grafiska DVB-undertexter att visas i gult, i stället för originalfärgen." + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "Vid aktiverad, kommer http-strömmar avkodas pÃ¥ serversidan. (Fjärr) Klientmottagaren behöver inte göra avkodningen." + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "Vid aktiverad, kan man avsluta movieplayer med exitknappen." + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "Vid aktiverad, kommer energiförbrukningen mätas för att upptäcka när rotorn slutar vrida (när det stöds av tunern)." + +msgid "When enabled, number markers will be hiden." +msgstr "Vid aktiverad, kommer nummermarkörer att döljas." + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "Vid aktiverad, kommer kanaler grupperas i flera favoritlistor." + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "Vid aktiverad, kommer kanalnummer visas i kanallistan." + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "Vid aktiverad, kommer undertexter för hörselskadade användas." + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "Vid aktiverad, kommer undertexter för hörselskadade föredras framför vanliga undertexter, när bÃ¥da typer är tillgängliga." + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "Vid aktiverad, kommer teletextsidor cachas, tillÃ¥ter snabbare Ã¥tkomst." + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "Vid aktiverad, kommer teletextens undertexter visas pÃ¥ originalpositionen." + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "Vid aktiverad, kommer VCR SCART alternativet visas i huvudmenyn" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "Vid aktiverad, kommer kanallistan döljas när du lyssnar pÃ¥ en radiokanal." + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "Vid aktiverad, kommer infobalken visas när ett nytt program startar." + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "Vid aktiverad, kommer infobalken att visas när du byter kanal." + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "Vid aktiverad, kommer infobalken visas när man hoppar framÃ¥t/bakÃ¥t under uppspelning av media." + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "Vid aktiverad, kommer längden pÃ¥ varje inspelning att visas i filmlistan (detta kan orsaka ytterligare laddningstid)." + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "Vid aktiverad, kommer den ursprungliga radbrytningen tas bort frÃ¥n Teletextens undertexter." + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "Vid aktiverad, kommer mottagaren automatiskt använda ljudspÃ¥ret som du valt tidigare." + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "Vid aktiverad, kommer mottagaren automatiskt använda undertexter som du valt tidigare." + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "Vid aktiverad, kommer mottagaren inte längre övervaka transpondern för eventuella ändringar. Använd endast detta alternativ om du vet vad du gör." + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "Vid aktiverad, kommer mottagaren välja ett AC3 spÃ¥r (när det är tillgängligt)." + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "Vid aktiverad, startas timeshift automatiskt i bakgrunden vid en angiven tid." + +# +msgid "When enabled, use DHCP for the IP configuration." +msgstr "Vid aktiverad, använd DHCP för IP konfiguration." + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "Vid aktiverad, kommer din mottagare känna av aktivitet pÃ¥ VCR SCART ingÃ¥ngen." + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "Vid icke noll, kommer en inspelning starta tidigare än starttiden som anges av EPG." + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "Vid icke noll, kommer en inspelning stanna senare än sluttiden som anges av EPG." + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "När innehÃ¥llet har ett bildförhÃ¥llande pÃ¥ 16:9, välj om man ska skala/sträcka bilden." + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "När innehÃ¥llet har ett bildförhÃ¥llande pÃ¥ 4:3, välj om man ska skala/sträcka bilden." + +# +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"När du utför en fabriksreset, kommer du att förlora ALL konfigurationsdata\n" +"(inkl favoritlistor, kanaler, satellit data ...)\n" +"När fabriksreset är klar kommer din mottagare automatiskt starta om!\n" +"\n" +"Vill du utföra en fabriksreset?" + +# +msgid "Where do you want to backup your settings?" +msgstr "Var vill du spara dina inställningar?" + +# +msgid "Where to save temporary timeshift recordings?" +msgstr "Var ska temporära timeshiftinspelningar sparas?" + +# +msgid "Wireless LAN" +msgstr "TrÃ¥dlöst LAN" + +# +msgid "Wireless network" +msgstr "TrÃ¥dlöst Nätverk" + +msgid "Wireless network configuration..." +msgstr "TrÃ¥dlös nätverksinställning..." + +msgid "Wireless network connection setup" +msgstr "TrÃ¥dlös nätverksinställning" + +msgid "Wireless network connection setup." +msgstr "TrÃ¥dlös nätverksinställning." + +msgid "Wireless network state" +msgstr "TrÃ¥dlöst nätverkstillstÃ¥nd" + +msgid "With popup" +msgstr "Med popup" + +msgid "Without popup" +msgstr "Utan popup" + +msgid "Would you like to install a softcam?" +msgstr "Vill du installera en softcam?" + +# +msgid "Write error while recording. Disk full?\n" +msgstr "Skrivfel under inspelning. Disken full?\n" + +# +msgid "Write failed!" +msgstr "Skrivning misslyckades!" + +# +msgid "YPbPr" +msgstr "YPbPr" + +# +msgid "Year" +msgstr "Ã…r" + +msgid "Yellow DVB subtitles" +msgstr "Gula DVB-undertexter" + +# +msgid "Yes" +msgstr "Ja" + +msgid "Yes and save" +msgstr "Ja och spara" + +msgid "Yes and save in movie dir" +msgstr "Ja och spara i filmkatalog" + +# +msgid "Yes to all" +msgstr "Ja till alla" + +msgid "Yes, always" +msgstr "Ja, alltid" + +msgid "Yes, and delete this movie" +msgstr "Ja, och ta bort den här filmen" + +# +msgid "Yes, backup my settings!" +msgstr "Ja, ta backup pÃ¥ inställningar!" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +# +msgid "Yes, do a manual scan now" +msgstr "Ja, utför manuell sökning nu" + +# +msgid "Yes, do an automatic scan now" +msgstr "Ja, utför automatisk sökning nu" + +# +msgid "Yes, do another manual scan now" +msgstr "Ja, utför manuell sökning igen" + +# +msgid "Yes, perform a shutdown now." +msgstr "Ja, utför avstängning nu." + +# +msgid "Yes, restore the settings now" +msgstr "Ja, Ã¥terställ inställningarna nu" + +# +msgid "Yes, returning to movie list" +msgstr "Ja, Ã¥tervänd till filmlistan" + +msgid "Yesterday" +msgstr "IgÃ¥r" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" +"Du har redan en kanallista installerad,\n" +"vill du ta bort\n" +"\"%s\"?" + +# +msgid "You can cancel the installation." +msgstr "Du kan avbryta installationen." + +# +msgid "You can cancel the removal." +msgstr "Du kan avbryta borttagningen." + +msgid "You can continue watching TV etc. while this is running." +msgstr "Du kan fortsätta titta pÃ¥ TV etc, medan detta körs" + +# +msgid "You can install this plugin." +msgstr "Du kan installera detta plugin." + +msgid "You can only burn receiver recordings!" +msgstr "Du kan bara bränna mottagarens inspelningar!" + +# +msgid "You can remove this plugin." +msgstr "Du kan ta bort detta plugin." + +# +msgid "You cannot delete this!" +msgstr "Du kan inte ta bort detta!" + +msgid "You didn't select a channel to record from." +msgstr "Du valde ingen kanal att spela in frÃ¥n." + +# +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "Du har valt att ta backup pÃ¥ dina inställningar. Vänligen tryck OK för att starta backup nu." + +# +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "Du har valt att skapa en ny .NFI flash startbar USB-sticka. Detta kommer att repartitionera USB-stickan och efter det kommer all data pÃ¥ den vara borta." + +# +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "Du har valt att Ã¥terskapa dina inställningar. Enigma2 kommer starta om efter Ã¥terskapningen. Vänligen tryck OK för att starta Ã¥terskapningen nu." + +# +#, python-format +msgid "You have to wait %s!" +msgstr "Du mÃ¥ste vänta %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" +"Du behöver ha en PC kopplad till din mottagare. Behöver du ytterligare instruktioner vänligen gÃ¥ till websidan http://www.dm7025.de.\n" +"Din mottagare kommer nu att stoppas. När du har genomfört uppdateringen enligt instruktionerna frÃ¥n websidan, kommer din nya mjukvara att frÃ¥ga dig om du vill Ã¥terställa dina inställningar." + +msgid "You system does not support ext4" +msgstr "Ditt system stödjer inte ext4" + +# +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "Backupen lyckades. Vi kommer nu att fortsätta förklara uppgraderingsprocessen." + +# +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "Din samling överstiger storleken pÃ¥ single layer media, du kommer behöva en tom dual layer DVD!" + +# +msgid "Your current collection will get lost!" +msgstr "Din nuvarande samling kommer försvinna!" + +# +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"Din frontprocessors mjukvara mÃ¥ste uppgraderas.\n" +"Tryck OK för att starta." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Din frontprocessor kommer att uppgraderas\n" +"Vänta tills din mottagare startat om\n" +"Detta kan ta nÃ¥gra minuter!" + +# +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"Din Internetanslutning fungerar inte!\n" +"Vänligen välj vad du vill göra härnäst." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "Din Internetanslutning fungerar (ip: %s)" + +# +msgid "Your network configuration has been activated." +msgstr "Din nätverkskonfiguration har aktiverats." + +msgid "Your receiver does not have an internet connection" +msgstr "Din mottagare har inte nÃ¥gon internetanslutning" + +# +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"Din mottagare är nu klar för att användas.\n" +"\n" +"Din Internetanslutning fungerar.\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Din mottagare är nu klar för användning.\n" +"\n" +"Din Internetanslutning fungerar nu.\n" +"\n" +"Vänligen tryck OK för att forsätta." + +msgid "Your receiver is rebooting" +msgstr "Din mottagare startar om" + +msgid "Your receiver is shutting down" +msgstr "Din mottagare stängs av" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "Din mottagare hÃ¥ller pÃ¥ att stängas av. Vänligen vänta..." + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "Din mottagare kanske inte fungerar längre. Vänligen läs manualen hur du fÃ¥r hjälp innan du startar om din mottagare." + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "Din mottagare gÃ¥r i viloläge pÃ¥ grund av insomningstimer." + +msgid "Your receiver will got to standby due to inactivity." +msgstr "Din mottagare gÃ¥r i viloläge pÃ¥ grund av inaktivitet." + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "Din mottagare kommer att starta om när du trycker pÃ¥ OK pÃ¥ din fjärrkontroll." + +# +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"Ditt trÃ¥dlösa LAN Internetanslutning kunde inte startas!\n" +"Har du anslutit ditt USB WLAN-sticka?\n" +"\n" +"Vänligen välj vad du vill göra härnäst." + +msgid "Zap" +msgstr "Zap" + +msgid "Zap back to previously tuned service?" +msgstr "Zappa tillbaka till föregÃ¥ende kanal?" + +# +msgid "Zap back to service before positioner setup?" +msgstr "GÃ¥ till föregÃ¥ende kanal före motorinstallation?" + +# +msgid "Zap back to service before tuner setup?" +msgstr "Zappa tillbaka till kanalen som användes innan tunerinstallation?" + +msgid "Zap focus to Picture in Picture" +msgstr "Zappa till Bild i Bild" + +msgid "Zap focus to main screen" +msgstr "Zappa till huvudskärmen" + +msgid "Zap mode" +msgstr "Zap läge" + +msgid "Zap to selected channel" +msgstr "Zappa till vald kanal" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "Zappa till vald kanal, eller visa detaljerad programinfo (beroende pÃ¥ konfiguration)" + +# +msgid "[alternative edit]" +msgstr "[ändra alternativ]" + +# +msgid "[bouquet edit]" +msgstr "[favoritlists editor]" + +# +msgid "[favourite edit]" +msgstr "[favorit editor]" + +# +msgid "[move mode]" +msgstr "[flyttläge]" + +# +msgid "a gui to assign services/providers to common interface modules" +msgstr "ett gränssnitt för att tilldela kanaler/providers till ett Common Interface modul" + +# +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "ett gränssnitt för att tilldela kanaler/providers/caids till ett Common Interface modul" + +# +msgid "abort alternatives edit" +msgstr "avbryt ändra alternativ" + +# +msgid "abort bouquet edit" +msgstr "avbryt editera favoritlista" + +# +msgid "abort favourites edit" +msgstr "avbryt editera favoriter" + +# +msgid "about to start" +msgstr "hÃ¥ller pÃ¥ att starta" + +# +msgid "activate network adapter configuration" +msgstr "aktivera nätverkskorts konfiguration" + +# +msgid "add alternatives" +msgstr "lägg till alternativ" + +# +msgid "add bookmark" +msgstr "lägg till bokmärke" + +# +msgid "add bouquet" +msgstr "lägg till favoritlista" + +# +msgid "add marker" +msgstr "lägg till markör" + +# +msgid "add service to bouquet" +msgstr "lägg till kanal i favoritlista" + +# +msgid "add service to favourites" +msgstr "lägg till kanal i favoriter" + +# +msgid "add to parental protection" +msgstr "lägg till föräldraskydd" + +msgid "adult movie/drama" +msgstr "vuxenfilm/drama" + +# +msgid "advanced" +msgstr "avancerad" + +msgid "adventure/western/war" +msgstr "äventyr/västern/krig" + +msgid "advertisement/shopping" +msgstr "reklam/shopping" + +msgid "after " +msgstr "Efter" + +# +msgid "alphabetic" +msgstr "sortera alfabetiskt" + +msgid "alphabetic reverse" +msgstr "Omvänd alfabetisk ordning" + +msgid "alternative" +msgstr "alternativ" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "konst/kultur (utan musik, allmänt)" + +msgid "arts/culture magazine" +msgstr "konst/kulturmagasin" + +msgid "athletics" +msgstr "idrott" + +# +msgid "audio tracks" +msgstr "ljudspÃ¥r" + +# +msgid "auto" +msgstr "auto" + +# +msgid "automatic" +msgstr "Automatisk" + +# +msgid "back" +msgstr "tillbaka" + +# +msgid "background image" +msgstr "bakgrundsbild" + +msgid "ballet" +msgstr "balett" + +#, python-format +msgid "bc%s" +msgstr "bc%s" + +# +msgid "better" +msgstr "bättre" + +# +msgid "black" +msgstr "svart" + +msgid "black & white" +msgstr "svart & vit" + +# +msgid "blacklist" +msgstr "svartlista" + +# +msgid "blue" +msgstr "blÃ¥" + +msgid "broadcasting/press" +msgstr "tv/press" + +# +msgid "by date" +msgstr "sortera efter datum" + +msgid "cartoon/puppets" +msgstr "tecknat/dockor" + +msgid "center" +msgstr "centrera" + +msgid "centered" +msgstr "centrerad" + +msgid "centered, wrapped" +msgstr "Centrerad, radbrytning" + +# +msgid "chapters" +msgstr "kapitel" + +msgid "childrens's/youth program (general)" +msgstr "barn/ungdomsprogram (allmänt)" + +# +msgid "circular left" +msgstr "cirkulär vänster" + +# +msgid "circular right" +msgstr "circulär höger" + +msgid "comedy" +msgstr "komedi" + +# +msgid "complex" +msgstr "komplex" + +# +msgid "config menu" +msgstr "konfigurationsmeny" + +# +msgid "confirmed" +msgstr "bekräftad" + +# +msgid "connected" +msgstr "ansluten" + +# +msgid "continue" +msgstr "fortsätt" + +msgid "cooking" +msgstr "matlagning" + +# +msgid "copy to bouquets" +msgstr "kopiera till favoritlista" + +# +msgid "create directory" +msgstr "skapa bibliotek" + +#, python-format +msgid "currently installed image: %s" +msgstr "nuvarande installerad image: %s" + +# +msgid "daily" +msgstr "daglig" + +# +msgid "day" +msgstr "dag" + +# +msgid "default" +msgstr "grund" + +# +msgid "delete cut" +msgstr "ta bort klipp" + +msgid "delete..." +msgstr "ta bort..." + +msgid "descramble and record ecm" +msgstr "avkoda och spela in ecm" + +msgid "detective/thriller" +msgstr "detektiv/thriller" + +# +msgid "disable" +msgstr "avaktivera" + +# +msgid "disable move mode" +msgstr "avaktivera flyttläge" + +# +msgid "disabled" +msgstr "avaktiverad" + +# +msgid "disconnected" +msgstr "bortkopplad" + +msgid "discussion/interview/debate" +msgstr "diskussion/intervju/debatt" + +# +msgid "do nothing" +msgstr "gör inget" + +msgid "documentary" +msgstr "dockumentär" + +msgid "don't descramble, record ecm" +msgstr "avkoda inte, spela in ecm" + +# +msgid "done!" +msgstr "klar!" + +msgid "east" +msgstr "öst" + +msgid "economics/social advisory" +msgstr "ekonomi/social rÃ¥dgivning" + +# +msgid "edit alternatives" +msgstr "ändra alternativ" + +msgid "education/science/factual topics (general)" +msgstr "utbildning/forskning/faktaämnen (allmänt)" + +# +msgid "empty" +msgstr "tom" + +# +msgid "enable" +msgstr "aktivera" + +# +msgid "enable bouquet edit" +msgstr "aktivera favoritlists editor" + +# +msgid "enable favourite edit" +msgstr "aktivera favoriter editor" + +# +msgid "enable move mode" +msgstr "aktivera flyttläge" + +# +msgid "enabled" +msgstr "aktiverad" + +# +msgid "end alternatives edit" +msgstr "avsluta ändra alternativ" + +# +msgid "end bouquet edit" +msgstr "avsluta favoritlists editor" + +# +msgid "end cut here" +msgstr "slutklipp här" + +# +msgid "end favourites edit" +msgstr "avsluta favoriter editor" + +msgid "entertainment (10-16 year old)" +msgstr "underhÃ¥llning (10-16 Ã¥r)" + +msgid "entertainment (6-14 year old)" +msgstr "underhÃ¥llning (6-14 Ã¥r)" + +# +msgid "equal to" +msgstr "lika med" + +msgid "equestrian" +msgstr "hästsport" + +# +msgid "exit DVD player or return to file browser" +msgstr "avsluta DVD spelare eller Ã¥tervänd till fil utforskare" + +msgid "exit movielist" +msgstr "Avsluta filmlista" + +# +msgid "exit network adapter configuration" +msgstr "avsluta nätverkskorts konfiguration" + +# +msgid "exit networkadapter setup menu" +msgstr "avsluta nätverkskortets installationsmeny" + +msgid "experimental film/video" +msgstr "experimentell film/video" + +msgid "false" +msgstr "falskt" + +msgid "fashion" +msgstr "mode" + +# +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "filformat (BMP, PNG, JPG, GIF)" + +# +msgid "filename" +msgstr "filnamn" + +msgid "film/cinema" +msgstr "film/bio" + +msgid "fine arts" +msgstr "konst" + +# +msgid "fine-tune your display" +msgstr "fininställ din skärm" + +msgid "fitness & health" +msgstr "fitness & hälsa" + +# +msgid "flat alphabetic" +msgstr "sortera alfabetiskt" + +msgid "flat alphabetic reverse" +msgstr "Omvänd alfabetisk ordning" + +msgid "folk/traditional music" +msgstr "folk/traditionell musik" + +msgid "football/soccer" +msgstr "amerikansk fotboll/fotboll" + +msgid "foreign countries/expeditions" +msgstr "främmande länder/expeditioner" + +# +msgid "forward to the next chapter" +msgstr "framÃ¥t till nästa kapitel" + +# +msgid "free" +msgstr "fri" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "vidareutbildning" + +msgid "game show/quiz/contest" +msgstr "speltävling/frÃ¥getävling/tävling" + +msgid "gardening" +msgstr "trädgÃ¥rd" + +# +msgid "go to deep standby" +msgstr "stäng av mottagaren" + +# +msgid "go to standby" +msgstr "inta viloläge" + +# +msgid "grab this frame as bitmap" +msgstr "grab den här framen som bitmap" + +# +msgid "green" +msgstr "grön" + +msgid "handicraft" +msgstr "hantverk" + +msgid "height" +msgstr "höjd" + +# +msgid "help..." +msgstr "hjälp..." + +# +msgid "horizontal" +msgstr "horisontal" + +msgid "information/education/school program" +msgstr "information/utbildning/skolprogram" + +# +msgid "init module" +msgstr "initiera modul" + +# +msgid "init modules" +msgstr "initiera moduler" + +# +msgid "insert mark here" +msgstr "infoga markör här" + +msgid "invalid type" +msgstr "ogiltig typ" + +msgid "jazz" +msgstr "jazz" + +# +msgid "jump back to the previous title" +msgstr "hoppa bakÃ¥t till föregÃ¥ende titel" + +# +msgid "jump forward to the next title" +msgstr "hoppa framÃ¥t till nästa titel" + +msgid "languages" +msgstr "sprÃ¥k" + +# +msgid "leave movie player..." +msgstr "lämna movieplayer..." + +# +msgid "left" +msgstr "vänster" + +msgid "left, wrapped" +msgstr "Vänster, radbrytning" + +msgid "leisure hobbies (general)" +msgstr "fritidsintressen (allmänt)" + +# +msgid "length" +msgstr "längd" + +msgid "limit ..., aborting !" +msgstr "gräns...., avbryter!" + +# +msgid "list style compact" +msgstr "liststil kompakt" + +# +msgid "list style compact with description" +msgstr "liststil kompakt med beskrivning" + +# +msgid "list style default" +msgstr "liststil grundläge" + +# +msgid "list style single line" +msgstr "liststil enkel linje" + +msgid "literature" +msgstr "litteratur" + +msgid "live broadcast" +msgstr "direktsändning" + +# +msgid "locked" +msgstr "lÃ¥st" + +# +msgid "loopthrough to" +msgstr "loopthrough till" + +msgid "magazines/reports/documentary" +msgstr "tidningar/rapporter/dokumentär" + +# +msgid "manual" +msgstr "manuell" + +msgid "martial sports" +msgstr "kampsport" + +msgid "medicine/physiology/psychology" +msgstr "medicin/fysiologi/psykologi" + +# +msgid "menu" +msgstr "meny" + +# +msgid "mins" +msgstr "min" + +# +msgid "minutes" +msgstr "minuter" + +# +msgid "month" +msgstr "mÃ¥nad" + +msgid "motor sport" +msgstr "motorsport" + +msgid "motoring" +msgstr "motor" + +# +msgid "move down to last entry" +msgstr "flytta ner till sista posten" + +# +msgid "move down to next entry" +msgstr "flytta ner till nästa post" + +# +msgid "move up to first entry" +msgstr "flytta upp till första posten" + +# +msgid "move up to previous entry" +msgstr "flytta upp till föregÃ¥ende post" + +msgid "movie/drama (general)" +msgstr "film/drama (allmänt)" + +# +msgid "multinorm" +msgstr "multinorm" + +msgid "music/ballet/dance (general)" +msgstr "musik/balett/dans (allmänt)" + +msgid "musical/opera" +msgstr "musikal/opera" + +msgid "nature/animals/environment" +msgstr "natur/djur/miljö" + +# +msgid "never" +msgstr "aldrig" + +msgid "new media" +msgstr "nya medier" + +msgid "news magazine" +msgstr "nyhetsmagasin" + +msgid "news/current affairs (general)" +msgstr "nyheter/aktuella frÃ¥gor (allmänt)" + +msgid "news/weather report" +msgstr "nyheter/väderprognos" + +# +msgid "no" +msgstr "nej" + +# +msgid "no CAId selected" +msgstr "ingen CAId vald" + +# +msgid "no CI slots found" +msgstr "ingen CI slot hittad" + +# +msgid "no module found" +msgstr "ingen modul hittad" + +msgid "no storage devices found" +msgstr "inga lagringsenheter hittades" + +# +msgid "none" +msgstr "ingen" + +msgid "normal" +msgstr "normal" + +# +msgid "not configured" +msgstr "ej konfigurerad" + +# +msgid "not locked" +msgstr "inte lÃ¥st" + +msgid "not supported" +msgstr "stöds ej" + +# +msgid "not used" +msgstr "ej använd" + +# +msgid "nothing connected" +msgstr "inget anslutet" + +# +msgid "of a DUAL layer medium used." +msgstr "av DUAL layer media använt." + +# +msgid "of a SINGLE layer medium used." +msgstr "av SINGLE layer media använt." + +# +msgid "off" +msgstr "av" + +msgid "offset is" +msgstr "förskjutningen är" + +# +msgid "on" +msgstr "pÃ¥" + +# +msgid "on READ ONLY medium." +msgstr "pÃ¥ READ ONLY media." + +msgid "on end of movie" +msgstr "vid slutet av filmen" + +# +msgid "once" +msgstr "en gÃ¥ng" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +# +msgid "open nameserver configuration" +msgstr "öppna namnserver konfiguration" + +msgid "original" +msgstr "original" + +msgid "original language" +msgstr "originalsprÃ¥k" + +# +# +msgid "pass" +msgstr "klart" + +msgid "performing arts" +msgstr "scenkonst" + +msgid "play as picture in picture" +msgstr "spela som bild i bild" + +msgid "play in mainwindow" +msgstr "spela i huvudfönster" + +# +msgid "please press OK when ready" +msgstr "tryck OK när du är klar" + +# +msgid "please wait, loading picture..." +msgstr "vänligen vänta, laddar bild..." + +msgid "popular culture/traditional arts" +msgstr "populärkultur/traditionell konst" + +msgid "pre-school children's program" +msgstr "barnprogram förskola" + +msgid "receiver software because updates are available." +msgstr "mottagarens programvara för att uppdateringar finns tillgängliga." + +# +msgid "record" +msgstr "spela in" + +# +msgid "recording..." +msgstr "spelar in..." + +# +msgid "red" +msgstr "röd" + +msgid "religion" +msgstr "religion" + +msgid "remarkable people" +msgstr "enastÃ¥ende människor" + +# +msgid "remove after this position" +msgstr "ta bort efter denna position" + +# +msgid "remove all alternatives" +msgstr "ta bort alla alternativ" + +msgid "remove all new found flags" +msgstr "ta bort alla ny funnen flaggor" + +# +msgid "remove before this position" +msgstr "ta bort före denna position" + +# +msgid "remove bookmark" +msgstr "ta bort bokmärke" + +# +msgid "remove directory" +msgstr "ta bort bibliotek" + +# +msgid "remove entry" +msgstr "ta bort post" + +# +msgid "remove from parental protection" +msgstr "ta bort frÃ¥n föräldraskydd" + +msgid "remove new found flag" +msgstr "ta bort ny funnen flagga" + +# +msgid "remove selected satellite" +msgstr "ta bort vald satellit" + +# +msgid "remove this mark" +msgstr "ta bort denna markör" + +msgid "rename entry" +msgstr "döp om post" + +# +msgid "repeat playlist" +msgstr "upprepa spellista" + +# +msgid "repeated" +msgstr "repeterande" + +msgid "reverse by date" +msgstr "omvänd datumordning" + +# +msgid "rewind to the previous chapter" +msgstr "spola bakÃ¥t till föregÃ¥ende kapitel" + +# +msgid "right" +msgstr "höger" + +msgid "right, wrapped" +msgstr "Höger, radbrytning" + +msgid "rock/pop" +msgstr "rock/pop" + +msgid "romance" +msgstr "romantik" + +# +msgid "save last directory on exit" +msgstr "spara sista biblioteket vid avslut" + +# +msgid "save playlist on exit" +msgstr "spara spellista vid avslut" + +# +msgid "scan state" +msgstr "sökningsstatus" + +msgid "science fiction/fantasy/horror" +msgstr "science fiction/fantasi/skräck" + +# +msgid "second cable of motorized LNB" +msgstr "andra kabeln frÃ¥n motorstyrt LNB" + +# +msgid "seconds" +msgstr "sekunder" + +# +msgid "select" +msgstr "välj" + +# +msgid "select CAId's" +msgstr "välj CAIds" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +# +msgid "select menu entry" +msgstr "välj meny post" + +msgid "select movie" +msgstr "Välj film" + +msgid "select the movie path" +msgstr "Välj sökväg för film" + +msgid "serious music/classic music" +msgstr "seriös musik/klassisk musik" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "seriös/klassisk/religiös/historisk film/drama" + +msgid "service PIN" +msgstr "kanal PIN" + +msgid "set as startup service" +msgstr "använd som startkanal" + +msgid "setup PIN" +msgstr "ange PIN" + +# +msgid "show DVD main menu" +msgstr "visa DVD huvudmeny" + +msgid "show all tags" +msgstr "visa alla taggar" + +# +msgid "show alternatives" +msgstr "visa alternativ" + +# +msgid "show event details" +msgstr "visa programdetaljer" + +msgid "show extended description" +msgstr "Visa utökad beskrivning" + +msgid "show mediaplayer on mainmenu" +msgstr "Visa mediaspelaren i huvudmenyn" + +msgid "show softwaremanager in setup menu" +msgstr "visar mjukvaruhanterare i inställningsmenyn" + +msgid "show softwaremanager on blue button" +msgstr "visar mjukvaruhanterare vid blÃ¥ knapp" + +msgid "show tag menu" +msgstr "Visa tag meny" + +# +msgid "show transponder info" +msgstr "visa transponder info" + +msgid "show/game show (general)" +msgstr "show/spelunderhÃ¥llning (allmänt)" + +msgid "shuffle" +msgstr "blanda" + +# +msgid "shut down" +msgstr "stäng av" + +# +msgid "simple" +msgstr "enkelt" + +# +msgid "skip backward" +msgstr "hoppa bakÃ¥t" + +# +msgid "skip forward" +msgstr "hoppa framÃ¥t" + +msgid "soap/melodram/folkloric" +msgstr "sÃ¥pa/melodrama/folkloristisk" + +msgid "social/political issues/economics (general)" +msgstr "sociala/politiska frÃ¥gor/ekonomi (allmänt)" + +msgid "social/spiritual science" +msgstr "social/andlig vetenskap" + +msgid "sorting of playlists" +msgstr "sortering av spellistor" + +msgid "special characters" +msgstr "speciella tecken" + +msgid "special events" +msgstr "speciella evenemang" + +msgid "special format data DVD (HDTV compatible)" +msgstr "speciell format data-DVD (HDTV kompatibel)" + +msgid "sports (general)" +msgstr "sport (allmänt)" + +msgid "sports magazine" +msgstr "sportmagasin" + +# +msgid "standard" +msgstr "standard" + +# +msgid "start cut here" +msgstr "startklipp här" + +# +msgid "start directory" +msgstr "startbibliotek" + +msgid "stepsize" +msgstr "stegstorlek" + +# +msgid "stereo" +msgstr "stereo" + +msgid "stop using as startup service" +msgstr "sluta använd som startkanal" + +# +msgid "switch to bookmarks" +msgstr "byt till bokmärke" + +# +msgid "switch to filelist" +msgstr "byt till fillista" + +# +msgid "switch to the next angle" +msgstr "byt till nästa position" + +# +msgid "switch to the next audio track" +msgstr "byt till nästa ljudspÃ¥r" + +# +msgid "switch to the next subtitle language" +msgstr "byt till nästa undertextsprÃ¥k" + +msgid "talk show" +msgstr "intervjuprogram" + +msgid "team sports" +msgstr "lagsporter" + +msgid "technology/natural science" +msgstr "teknik/naturvetenskap" + +# +msgid "template file" +msgstr "mallfil" + +msgid "tennis/squash" +msgstr "tennis/squash" + +# +msgid "this recording" +msgstr "denna inspelning" + +# +msgid "this service is protected by a parental control pin" +msgstr "denna kanal är föräldraskyddad" + +# +msgid "toggle time, chapter, audio, subtitle info" +msgstr "skifta tid, kapitel, ljud, undertext info" + +msgid "top" +msgstr "längst upp" + +msgid "tourism/travel" +msgstr "turism/resor" + +msgid "true" +msgstr "sann" + +# +msgid "unavailable" +msgstr "ej tillgänglig" + +# +msgid "unconfirmed" +msgstr "obekräftad" + +msgid "undefined" +msgstr "Odefinierad" + +# +msgid "unknown" +msgstr "okänd" + +# +msgid "unknown service" +msgstr "okänd kanal" + +msgid "unpublished" +msgstr "opublicerad" + +# +msgid "until standby/restart" +msgstr "tills viloläge/omstart" + +# +msgid "user defined" +msgstr "användardefinierad" + +msgid "variety show" +msgstr "varite" + +# +msgid "vertical" +msgstr "vertikal" + +# +msgid "wait for ci..." +msgstr "vänta pÃ¥ ci..." + +# +msgid "wait for mmi..." +msgstr "vänta pÃ¥ mmi..." + +# +msgid "waiting" +msgstr "väntar" + +msgid "water sport" +msgstr "vattensport" + +# +msgid "weekly" +msgstr "veckovis" + +msgid "west" +msgstr "väst" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "vit" + +# +msgid "whitelist" +msgstr "vitlista" + +msgid "width" +msgstr "bredd" + +msgid "winter sport" +msgstr "vintersport" + +msgid "wireless network interface" +msgstr "TrÃ¥dlöst nätverkskort" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "med %d fel" +msgstr[1] "med %d fel" + +# +msgid "working" +msgstr "arbetar" + +# +msgid "yellow" +msgstr "gul" + +# +msgid "yes" +msgstr "ja" + +# +msgid "yes (keep feeds)" +msgstr "ja (behÃ¥ll feeds)" + +# +msgid "zap" +msgstr "zap" + +msgid "zap and record" +msgstr "zappa och spela in" + +# +msgid "zapped" +msgstr "zapped" + +# +#~ msgid "AA" +#~ msgstr "AA" + +# +#~ msgid "AB" +#~ msgstr "AB" + +#~ msgid "Activate PiP" +#~ msgstr "Aktivera BiB" + +#~ msgid "Add/remove timer for current event" +#~ msgstr "Lägg till / Ta bort timer för aktuellt program" + +#~ msgid "Adjust HDMI CEC settings" +#~ msgstr "Justera HDMI-CEC inställningar" + +# +#~ msgid "All satellites" +#~ msgstr "Alla Satelliter" + +#~ msgid "And will shutdown your receiver over " +#~ msgstr "Din mottagare kommer att stängas av om" + +# +#~ msgid "BA" +#~ msgstr "BA" + +# +#~ msgid "BB" +#~ msgstr "BB" + +# +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "Beteende av 'paus' vid paus" + +# +#~ msgid "Committed DiSEqC command" +#~ msgstr "Committed DiSEqC kommando" + +#~ msgid "Configure if and how service type icons will be shown." +#~ msgstr "Konfigurera om och hur serviceikonerna skall visas." + +#~ msgid "Configure if service picons will be shown in the servicelist." +#~ msgstr "Konfigurera om kanalpicon skall visas i kanallistan." + +#~ msgid "Configure the behavior of the 'pause' key when movie playback is already paused." +#~ msgstr "Konfigurera beteendet pÃ¥ 'paus' knappen när filmuppspelning redan är pausad." + +#~ msgid "Configure the duration in hours and action, which could be shut down or standby, when the receiver is not controlled." +#~ msgstr "Konfigurera längden i timmar och händelsen, som kan vara avstängning eller viloläge, när inte mottagaren kontrolleras." + +#~ msgid "Configure the duration in minutes and action, which could be shut down or standby, for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +#~ msgstr "Konfigurera varaktighet i minuter samt Ã¥tgärd som kan vara avstängning eller viloläge för insomningstimer. Välj och klicka pÃ¥ OK eller grön knapp för att starta / stoppa insomningstimer" + +# +#~ msgid "DiSEqC repeats" +#~ msgstr "DISEqC repetitioner" + +#~ msgid "Goto specific data/time" +#~ msgstr "GÃ¥ till specifik data/tid" + +#~ msgid "Memory positions" +#~ msgstr "Minnesplatser" + +# +#~ msgid "No satellite frontend found!!" +#~ msgstr "Ingen satellit frontend funnen!!" + +#~ msgid "Open service list and select next channel" +#~ msgstr "Öppna kanallistan och välj nästa kanal" + +#~ msgid "Open service list and select previous channel" +#~ msgstr "Öppna kanallistan och välj föregÃ¥ende kanal" + +#~ msgid "Press '0' to toggle internal/external PiP." +#~ msgstr "Tryck '0' för att växla mellan intern/extern BiB" + +# +#~ msgid "Remove timer" +#~ msgstr "Ta bort timer" + +# +#~ msgid "Send DiSEqC" +#~ msgstr "Skicka DiSEqC" + +#~ msgid "Show picons in servicelist" +#~ msgstr "Visa picon i kanallistan" + +#~ msgid "Shutdown after current event" +#~ msgstr "Stäng av efter aktuellt program" + +#~ msgid "Shutdown in " +#~ msgstr "Stäng av om" + +# +#~ msgid "Switch next channel" +#~ msgstr "Nästa kanal" + +#~ msgid "Tuning step size" +#~ msgstr "Inställningens stegstorlek" + +# +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Uncommitted DiSEqC kommando" + +#~ msgid "Your receiver will shutdown due to inactivity." +#~ msgstr "Din mottagare stängs av pÃ¥ grund av inaktivitet" + +#~ msgid "Your receiver will shutdown due to the sleeptimer." +#~ msgstr "Din mottagare stängs av pÃ¥ grund av insomningstimer." + +# +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "GÃ¥ till föregÃ¥ende kanal före satfinder?" + +#~ msgid "tuner is not supported" +#~ msgstr "tuner stöds inte" diff --git a/po/th.po b/po/th.po new file mode 100644 index 0000000..dc3fe4c --- /dev/null +++ b/po/th.po @@ -0,0 +1,8298 @@ +# English translations for tuxbox-enigma package. +# Copyright (C) 2005 THE tuxbox-enigma'S COPYRIGHT HOLDER +# This file is distributed under the same license as the tuxbox-enigma package. +# Automatically generated, 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: tuxbox-enigma 0.0.1-En-Th\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2010-04-08 18:13+0700\n" +"Last-Translator: Tony - Thaidreambox\n" +"Language-Team: Tony @ Thai Dreambox <tonyboyth@gmail.com>\n" +"Language: \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-Poedit-Language: Thai\n" +"X-Poedit-Country: THAILAND\n" + +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"ตั้งค่าขั้นสูง" + +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"à¸à¸”ปุ่ม OK à¹à¸¥à¹‰à¸§à¸£à¸­à¸ªà¸±à¸à¸„รู่" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" + +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"à¹à¸à¹‰à¹„ขที่อยู่เพื่อโหลดส่วนปรับปรุง" + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" + +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"à¸à¸”ปุ่ม OK ที่รีโมท เพื่อทำต่อ" + +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"นำสำรองà¸à¸¥à¸±à¸šà¸¡à¸²à¹ƒà¸Šà¹‰à¸•à¸²à¸¡à¸§à¸±à¸™à¸—ี่" + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" + +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" + +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"เลือà¸à¸­à¸¸à¸›à¸à¸£à¸“์\n" +"อุปà¸à¸£à¸“์ปัจจุบันคือ: " + +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"ตรวจดู ติดตั้งหรือลบส่วนประà¸à¸­à¸š" + +msgid " (PiP)" +msgstr "" + +msgid " (Radio)" +msgstr "" + +msgid " (TV)" +msgstr "" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +msgid " extensions." +msgstr " ส่วนเพิ่มเติม" + +msgid " ms" +msgstr "" + +msgid " packages selected." +msgstr " ส่วนประà¸à¸­à¸šà¸—ี่เลือà¸à¹„ว้" + +msgid " updates available." +msgstr " มีรายà¸à¸²à¸£à¸›à¸£à¸±à¸šà¸›à¸£à¸¸à¸‡" + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "" + +msgid "%A %d %B" +msgstr "" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "" + +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "" + +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, fuzzy, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "บริà¸à¸²à¸£à¸™à¸µà¹‰ %d ไม่มี!" +msgstr[1] "บริà¸à¸²à¸£à¸™à¸µà¹‰ %d ไม่มี!" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" + +#, fuzzy, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "à¸à¸³à¸¥à¸±à¸‡à¸¡à¸µà¸‡à¸²à¸™à¹à¸šà¸šà¸‰à¸²à¸à¸«à¸¥à¸±à¸‡ %d งาน" +msgstr[1] "à¸à¸³à¸¥à¸±à¸‡à¸¡à¸µà¸‡à¸²à¸™à¹à¸šà¸šà¸‰à¸²à¸à¸«à¸¥à¸±à¸‡ %d งาน" + +#, python-format +msgid "%d min" +msgstr "%d นาที" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d minutes" +msgstr "" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "" +msgstr[1] "" + +#, fuzzy, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "/var โฟล์เดอร์" +msgstr[1] "/var โฟล์เดอร์" + +#, fuzzy, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "พบ 1 เครือข่ายไร้สาย" +msgstr[1] "พบ 1 เครือข่ายไร้สาย" + +msgid "%d-%b-%Y %-H:%M" +msgstr "" + +msgid "%d-%m" +msgstr "" + +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "" + +#, fuzzy, python-format +msgid "%s %s free disk space" +msgstr "เนื้อที่เหลือยู่" + +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "" + +#, fuzzy, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] " มีรายà¸à¸²à¸£à¸›à¸£à¸±à¸šà¸›à¸£à¸¸à¸‡" +msgstr[1] " มีรายà¸à¸²à¸£à¸›à¸£à¸±à¸šà¸›à¸£à¸¸à¸‡" + +#, python-format +msgid "%s%d min" +msgstr "" + +#, python-format +msgid "%s/%s: %s" +msgstr "" + +msgid "(ZAP)" +msgstr "(ย้ายช่อง)" + +msgid "(empty)" +msgstr "(ว่าง)" + +msgid "(show optional DVD audio menu)" +msgstr "(เมนูเสียงของดีวีดี)" + +msgid "* Only available if more than one interface is active." +msgstr "* ต้องมีอย่างน้อย 1 อินเตอร์เฟซใช้งานอยู่" + +msgid "/s" +msgstr "" + +msgid "0" +msgstr "0" + +msgid "1" +msgstr "1" + +msgid "1.0" +msgstr "1.0" + +msgid "1.1" +msgstr "1.1" + +msgid "1.2" +msgstr "1.2" + +msgid "12V output" +msgstr "12V output" + +msgid "13 V" +msgstr "13 V" + +msgid "16:10" +msgstr "16:10" + +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +msgid "16:9" +msgstr "16:9" + +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +msgid "16:9 always" +msgstr "16:9 ตลอดเวลา" + +msgid "18 V" +msgstr "18 V" + +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "" + +msgid "24" +msgstr "" + +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +msgid "3" +msgstr "3" + +msgid "30" +msgstr "" + +msgid "3d mode" +msgstr "" + +msgid "4" +msgstr "4" + +msgid "4:3" +msgstr "4:3" + +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +msgid "5" +msgstr "5" + +msgid "6" +msgstr "6" + +msgid "7" +msgstr "7" + +msgid "8" +msgstr "8" + +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +msgid "<Current movielist location>" +msgstr "" + +msgid "<Default movie location>" +msgstr "" + +msgid "<Last timer location>" +msgstr "" + +msgid "<unknown>" +msgstr "<ไม่ทราบ>" + +msgid "??" +msgstr "??" + +msgid "A" +msgstr "A" + +#, fuzzy, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"ไฟล์เà¸à¹‡à¸šà¸„่า (%s) ถูà¸à¹à¸à¹‰à¹„ขช่วงติดตั้ง\n" +"ต้องà¸à¸²à¸£à¹ƒà¸Šà¹‰à¹€à¸§à¸­à¸£à¹Œà¸Šà¸±à¹ˆà¸™à¸—ี่ถูà¸à¹à¸à¹‰à¹„ขหรือไม่?" + +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"ไฟล์เà¸à¹‡à¸šà¸„่า (%s) ถูà¸à¹à¸à¹‰à¹„ขช่วงติดตั้ง\n" +"ต้องà¸à¸²à¸£à¹ƒà¸Šà¹‰à¹€à¸§à¸­à¸£à¹Œà¸Šà¸±à¹ˆà¸™à¸—ี่ถูà¸à¹à¸à¹‰à¹„ขหรือไม่?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "à¹à¸ªà¸”งผังรายà¸à¸²à¸£à¹à¸šà¸šà¸à¸£à¸²à¸Ÿà¸´à¸à¸‚องà¸à¸¥à¸¸à¹ˆà¸¡à¸£à¸²à¸¢à¸à¸²à¸£à¸—ี่เลือà¸" + +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"เริ่มบันทึà¸à¸£à¸²à¸¢à¸à¸²à¸£:\n" +"%s" + +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"à¸à¸³à¸¥à¸±à¸‡à¸šà¸±à¸™à¸—ึà¸à¸£à¸²à¸¢à¸à¸²à¸£à¸­à¸¢à¸¹à¹ˆ\n" +"ท่านต้องà¸à¸²à¸£à¸—ี่จะทำอะไร?" + +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸šà¸±à¸™à¸—ึà¸à¸£à¸²à¸¢à¸à¸²à¸£à¸­à¸¢à¸¹à¹ˆ ให้หยุดà¸à¸²à¸£à¸šà¸±à¸™à¸—ึà¸à¸à¹ˆà¸­à¸™à¸•à¸±à¹‰à¸‡à¸„่าตัวขับจาน" + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "" + +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸šà¸±à¸™à¸—ึà¸à¸£à¸²à¸¢à¸­à¸¢à¸¹à¹ˆ หยุดà¸à¸²à¸£à¸šà¸±à¸™à¸—ึà¸à¸à¹ˆà¸­à¸™à¸„้นหาดาวเทียม" + +#, python-format +msgid "A required tool (%s) was not found." +msgstr "ไม่พบเครื่องมือที่ต้องใช้ (%s)" + +msgid "A search for available updates is currently in progress." +msgstr "" + +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" + +msgid "A small overview of the available icon states and actions." +msgstr "ไอคอนà¹à¸ªà¸”งสถานะà¹à¸¥à¸°à¸à¸²à¸£à¸—ำงานต่างๆ" + +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"ไม่สามารถบันทึà¸à¸£à¸²à¸¢à¸à¸²à¸£à¹„ด้\n" +"ต้องà¸à¸²à¸£à¸¢à¸à¹€à¸¥à¸´à¸à¸£à¸²à¸¢à¸à¸²à¸£à¹‚ทรทัศน์à¹à¸¥à¹‰à¸§à¸¥à¸­à¸‡à¸­à¸µà¸à¸„รั้งหรือไม่?\n" + +#, fuzzy +msgid "A/V settings" +msgstr "ตั้งค่าภาพà¹à¸¥à¸°à¹€à¸ªà¸µà¸¢à¸‡" + +msgid "AC3/DTS downmix" +msgstr "" + +msgid "Abort" +msgstr "ยà¸à¹€à¸¥à¸´à¸" + +msgid "About" +msgstr "เà¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸š" + +msgid "About..." +msgstr "เà¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸š..." + +msgid "Accesspoint:" +msgstr "Accesspoint:" + +msgid "Action on long powerbutton press" +msgstr "เมื่อà¸à¸”ปุ่ม Power ค้างไว้ให้" + +msgid "Action on short powerbutton press" +msgstr "" + +msgid "Activate Picture in Picture" +msgstr "ภาพซ้อนภาพ" + +#, fuzzy +msgid "Activate current configuration" +msgstr "สั่งใช้งานà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าปัจจุบัน" + +msgid "Activate network settings" +msgstr "ตั้งค่าเครือข่าย" + +#, fuzzy +msgid "Activate the configured network settings." +msgstr "ตั้งค่าเครือข่าย" + +msgid "Adapter settings" +msgstr "ตั้งค่าอะà¹à¸”๊ปเตอร์" + +msgid "Add" +msgstr "เพิ่ม" + +msgid "Add Bookmark" +msgstr "เพิ่มบุ๊คมาร์ค" + +msgid "Add a mark" +msgstr "เพิ่มจุด" + +#, fuzzy +msgid "Add a nameserver entry" +msgstr "เพิ่ม Nameserver" + +msgid "Add a new title" +msgstr "เพิ่มเรื่องใหม่" + +#, fuzzy +msgid "Add bookmark" +msgstr "เพิ่มบุ๊คมาร์ค" + +#, fuzzy +msgid "Add directory to playlist" +msgstr "เพิ่มทั้งโฟล์เดอร์เข้าสารบัà¸" + +#, fuzzy +msgid "Add file to playlist" +msgstr "เพิ่มไฟล์นี้ในสารบัà¸" + +#, fuzzy +msgid "Add files to playlist" +msgstr "เพิ่มไฟล์ในสารบัà¸" + +msgid "Add more details to the crash log" +msgstr "" + +#, fuzzy +msgid "Add provider" +msgstr "เพิ่มผู้ให้บริà¸à¸²à¸£" + +#, fuzzy +msgid "Add recording (enter recording duration)" +msgstr "บันทึà¸à¸£à¸²à¸¢à¸à¸²à¸£ (ป้อนช่วงเวลาที่บันทึà¸)" + +#, fuzzy +msgid "Add recording (enter recording endtime)" +msgstr "บันทึà¸à¸£à¸²à¸¢à¸à¸²à¸£ (ป้อนช่วงเวลาหยุดบันทึà¸)" + +#, fuzzy +msgid "Add recording (indefinitely)" +msgstr "บันทึà¸à¸£à¸²à¸¢à¸à¸²à¸£ (จนà¸à¸§à¹ˆà¸²à¸ˆà¸°à¸ªà¸±à¹ˆà¸‡à¸«à¸¢à¸¸à¸”)" + +#, fuzzy +msgid "Add recording (stop after current event)" +msgstr "บันทึà¸à¸£à¸²à¸¢à¸à¸²à¸£ (หยุดเมื่อจบรายà¸à¸²à¸£)" + +#, fuzzy +msgid "Add service" +msgstr "เพิ่มบริà¸à¸²à¸£" + +msgid "Add timer" +msgstr "เพิ่มลงตารางเวลา" + +msgid "Add title" +msgstr "เพิ่มเรื่อง" + +msgid "Add to bouquet" +msgstr "เพิ่มเข้าà¸à¸¥à¸¸à¹ˆà¸¡ (Bouquet)" + +msgid "Add to favourites" +msgstr "เพิ่มเข้ารายà¸à¸²à¸£à¹‚ปรด (Favourites)" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "" + +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "ตั้งค่าสีเพื่อà¹à¸ªà¸”งความต่างของสี à¹à¸•à¹ˆà¸¢à¸±à¸‡à¸„งมีความอิ่มตัวอยู่ ถ้าพอใจà¸à¸±à¸šà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่านี้ให้à¸à¸”ปุ่ม OK เพื่อออà¸à¸ˆà¸²à¸à¸•à¸±à¹‰à¸‡à¸„่าหรือà¸à¸”ปุ่มตัวเลขเพื่อตั้งค่าส่วนอื่นๆ ของหน้าจอ" + +msgid "Advanced" +msgstr "" + +#, fuzzy +msgid "Advanced options" +msgstr "ตัวเลือà¸à¸‚ั้นสูง" + +msgid "Advanced restore" +msgstr "นำข้อมูลà¸à¸¥à¸±à¸šà¸¡à¸²à¹ƒà¸Šà¹‰à¹à¸šà¸šà¸‚ั้นสูง" + +#, fuzzy +msgid "Advanced software" +msgstr "นำข้อมูลà¸à¸¥à¸±à¸šà¸¡à¸²à¹ƒà¸Šà¹‰à¹à¸šà¸šà¸‚ั้นสูง" + +#, fuzzy +msgid "Advanced software plugin" +msgstr "นำข้อมูลà¸à¸¥à¸±à¸šà¸¡à¸²à¹ƒà¸Šà¹‰à¹à¸šà¸šà¸‚ั้นสูง" + +#, fuzzy +msgid "Advanced video enhancement setup" +msgstr "ตั้งค่าตัวปรับภาพวิดีโอà¹à¸šà¸šà¸‚ั้นสูง" + +#, fuzzy +msgid "Advanced video setup" +msgstr "ตั้งค่าวิดีโอà¹à¸šà¸šà¸‚ั้นสูง" + +msgid "After event" +msgstr "หลังจาà¸à¸ˆà¸šà¸£à¸²à¸¢à¸à¸²à¸£" + +msgid "Album" +msgstr "อัลบัม" + +msgid "Alignment of events" +msgstr "" + +msgid "Alignment of service names" +msgstr "" + +msgid "All" +msgstr "ทั้งหมด" + +msgid "All ages" +msgstr "" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "" + +msgid "Allocate unused memory index" +msgstr "" + +msgid "Allow quit movieplayer with exit" +msgstr "" + +msgid "Allow subtitle language to equal audio language" +msgstr "" + +msgid "Allow subtitles for hearing impaired" +msgstr "" + +msgid "Alpha" +msgstr "อัลฟ่า" + +#, fuzzy +msgid "Alternative" +msgstr "เพิ่มทางเลือà¸à¸­à¸·à¹ˆà¸™" + +#, fuzzy +msgid "Alternative numbering mode" +msgstr "โหมดวิทยุà¹à¸šà¸šà¸—างเลือà¸" + +msgid "Alternative services tuner priority" +msgstr "ลำดับของ Tuner เพื่อใช้งาน" + +msgid "Always ask" +msgstr "" + +msgid "Always hide infobar" +msgstr "" + +msgid "An empty filename is illegal." +msgstr "ชื่อไฟล์ห้ามเป็นช่องว่าง" + +#, fuzzy +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "พบข้อผิดพลาด ไม่สามารถดาวน์โหลดรายà¸à¸²à¸£à¸‚องส่วนประà¸à¸­à¸šà¹„ด้ à¸à¸£à¸¸à¸“าลองซ้ำอีà¸à¸„รั้ง...." + +msgid "An unknown error occurred!" +msgstr "เà¸à¸´à¸”ข้อผิดพลาดขึ้น!" + +msgid "And will put your receiver in standby over " +msgstr "" + +msgid "Any activity" +msgstr "" + +msgid "Arabic" +msgstr "ภาษาอาหรับ" + +msgid "Are you sure to remove this entry?" +msgstr "" + +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"ท่านจะให้ค่าเครื่อข่ายที่ตั้งใหม่ทำงานหรือไม่\n" +"\n" + +#, fuzzy +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"ท่านà¹à¸™à¹ˆà¸«à¸£à¸·à¸­à¹„ม่ที่จะลบ\n" +"ชุดสำรองข้อมูล:\n" + +msgid "Are you sure you want to exit this wizard?" +msgstr "ท่านต้องà¸à¸²à¸£à¸—ี่ออà¸à¸ˆà¸²à¸à¸•à¸±à¸§à¸Šà¹ˆà¸§à¸¢à¸«à¸£à¸·à¸­à¹„ม่?" + +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"ท่านจะให้ระบบเครือข่ายเริ่มทำงานใหม่หรือไม่?\n" +"\n" + +#, fuzzy, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"ท่านจะนำสำรอง Enigma2 à¸à¸¥à¸±à¸šà¸¡à¸²à¹ƒà¸Šà¹‰à¸«à¸£à¸·à¸­à¹„ม่?\n" +"Enigma2 จะเริ่มระบบใหม่ (Restart) หลังจาà¸à¸—ำงานเสร็จ" + +#, fuzzy +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"ท่านจะนำสำรอง Enigma2 à¸à¸¥à¸±à¸šà¸¡à¸²à¹ƒà¸Šà¹‰à¸«à¸£à¸·à¸­à¹„ม่?\n" +"Enigma2 จะเริ่มระบบใหม่ (Restart) หลังจาà¸à¸—ำงานเสร็จ" + +msgid "Artist" +msgstr "ศิลปิน" + +msgid "Arts/Culture" +msgstr "" + +msgid "Ask user" +msgstr "ถามผู้ใช้" + +#, fuzzy +msgid "Aspect ratio" +msgstr "สัดส่วนภาพ" + +#, fuzzy +msgid "Assigned CAIds:" +msgstr "ตั้งค่า CAIds:" + +#, fuzzy +msgid "Assigned services/provider:" +msgstr "à¸à¸³à¸«à¸™à¸”บริà¸à¸²à¸£/ผู้ให้บริà¸à¸²à¸£r:" + +#, fuzzy +msgid "At beginning" +msgstr "เริ่มตั้งà¹à¸•à¹ˆà¸•à¹‰à¸™" + +msgid "At end" +msgstr "" + +msgid "Audio" +msgstr "เสียง" + +msgid "Audio PID" +msgstr "" + +msgid "Audio language selection 1" +msgstr "" + +msgid "Audio language selection 2" +msgstr "" + +msgid "Audio language selection 3" +msgstr "" + +msgid "Audio language selection 4" +msgstr "" + +#, fuzzy +msgid "Audio options..." +msgstr "ตั้งค่าเสียง..." + +#, fuzzy, python-format +msgid "Audio track (%s) format" +msgstr "ร่องเสียง (%s) รูปà¹à¸šà¸š" + +#, fuzzy, python-format +msgid "Audio track (%s) language" +msgstr "ร่องเสียง (%s) ภาษา" + +msgid "Author: " +msgstr "ผู้à¹à¸•à¹ˆà¸‡: " + +msgid "Authoring mode" +msgstr "โหมดà¹à¸•à¹ˆà¸‡" + +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "อัตโนมัติ" + +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "à¹à¸¢à¸à¹€à¸›à¹‡à¸™à¸•à¸­à¸™à¹† ในทุà¸à¹† à¸à¸µà¹ˆ ? นาที (0=ไม่à¹à¸¢à¸)" + +msgid "Auto flesh" +msgstr "ปรับอัตโนมัติ" + +msgid "Auto focus" +msgstr "" + +msgid "Auto focus commencing ..." +msgstr "" + +msgid "Auto language selection" +msgstr "" + +msgid "Auto scart switching" +msgstr "เปลี่ยน scart อัตโนมัติ" + +msgid "Automatic" +msgstr "อัตโนมัติ" + +#, fuzzy +msgid "Automatic scan" +msgstr "ค้นหาอัตโนมัติ" + +msgid "Automatically start timeshift after" +msgstr "" + +msgid "Automatically turn on external subtitles" +msgstr "" + +msgid "Available format variables" +msgstr "รูปà¹à¸šà¸šà¸—ี่ใช้งานได้" + +msgid "B" +msgstr "B" + +msgid "BER" +msgstr "BER" + +msgid "BER:" +msgstr "BER:" + +msgid "Back" +msgstr "ย้อนà¸à¸¥à¸±à¸š" + +msgid "Background" +msgstr "ฉาà¸à¸«à¸¥à¸±à¸‡" + +#, fuzzy +msgid "Background color" +msgstr "สีพื้นหลัง" + +msgid "Background delete option" +msgstr "" + +msgid "Background delete speed" +msgstr "" + +#, fuzzy +msgid "Backup completed." +msgstr "สำรองข้อมูลล้มเหลว" + +msgid "Backup failed." +msgstr "สำรองข้อมูลล้มเหลว" + +msgid "Backup is running..." +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸ªà¸³à¸£à¸­à¸‡à¸‚้อมูล..." + +msgid "Backup system settings" +msgstr "ตั้งค่าสำรองข้อมูลระบบ" + +msgid "Band" +msgstr "à¹à¸–บ" + +msgid "Bandwidth" +msgstr "à¹à¸šà¸™à¸”์วิดธ์" + +msgid "Basque" +msgstr "" + +msgid "Begin time" +msgstr "เวลาเริ่ม" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +msgid "Behavior of 0 key in PiP-mode" +msgstr "เมื่อà¸à¸” 0 ใน PiP ให้" + +msgid "Behavior when a movie is started" +msgstr "เมื่อภาพยนต์เริ่มเล่นให้" + +msgid "Behavior when a movie is stopped" +msgstr "เมื่อภาพยนต์หยุดเล่นให้" + +msgid "Behavior when a movie reaches the end" +msgstr "เมื่อเมื่อภาพยนต์จบ ให้" + +msgid "Big PiP" +msgstr "" + +msgid "Bitrate:" +msgstr "บิทเรท:" + +msgid "Black screen" +msgstr "" + +msgid "Black screen till locked" +msgstr "" + +msgid "Block noise reduction" +msgstr "Block noise reduction" + +msgid "Blue boost" +msgstr "Blue boost" + +msgid "Bookmarks" +msgstr "บุ๊คมาร์ค" + +msgid "Brightness" +msgstr "ความสว่าง" + +msgid "Bulgarian" +msgstr "" + +msgid "Burn DVD" +msgstr "เขียนà¹à¸œà¹ˆà¸™à¸”ีวีดี" + +#, fuzzy, python-format +msgid "Burn audio track (%s)" +msgstr "บันทึà¸à¹€à¸ªà¸µà¸¢à¸‡ (%s)" + +msgid "Burn existing image to DVD" +msgstr "เขียนอิมเมจลงà¹à¸œà¹ˆà¸™à¸”ีวีดี" + +msgid "Burn to DVD" +msgstr "" + +msgid "Bus: " +msgstr "Bus: " + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "" + +msgid "C" +msgstr "C" + +msgid "C-Band" +msgstr "C-Band" + +msgid "CH" +msgstr "" + +msgid "CI assignment" +msgstr "CI assignment" + +msgid "CVBS" +msgstr "CVBS" + +msgid "Cable" +msgstr "เคเบิ้ล" + +msgid "Cable Scan" +msgstr "" + +#, fuzzy +msgid "Cache thumbnails" +msgstr "เà¸à¹‡à¸šà¸ à¸²à¸žà¹€à¸¥à¹‡à¸à¹à¸„ช" + +msgid "Calculate" +msgstr "" + +msgid "Calculate all positions" +msgstr "" + +msgid "Calculation complete" +msgstr "" + +msgid "Calibrate" +msgstr "" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "" + +msgid "Cancel" +msgstr "ยà¸à¹€à¸¥à¸´à¸" + +msgid "Cannot determine" +msgstr "" + +msgid "Cannot find any signal ..., aborting !" +msgstr "" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "" + +msgid "Cannot move to trash can" +msgstr "" + +msgid "Capacity: " +msgstr "ความจุ:" + +msgid "Card" +msgstr "à¸à¸²à¸£à¹Œà¸”" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "" + +msgid "Center time-labels and remove date" +msgstr "" + +msgid "Change bouquets in quickzap" +msgstr "เปลี่ยนà¸à¸¥à¸¸à¹ˆà¸¡à¸£à¸²à¸¢à¸à¸²à¸£à¹€à¸¡à¸·à¹ˆà¸­à¸¢à¹‰à¸²à¸¢à¸Šà¹ˆà¸­à¸‡" + +msgid "Change pin code" +msgstr "เปลี่ยนรหัส" + +#, fuzzy +msgid "Change recording (duration)" +msgstr "เปลี่ยนà¹à¸›à¸¥à¸‡à¸à¸²à¸£à¸šà¸±à¸™à¸—ึภ(ช่วงเวลา)" + +#, fuzzy +msgid "Change recording (endtime)" +msgstr "เปลี่ยนà¹à¸›à¸¥à¸‡à¸à¸²à¸£à¸šà¸±à¸™à¸—ึภ(เวลาสิ้นสุด)" + +msgid "Change repeat and delay settings?" +msgstr "" + +msgid "Change service PIN" +msgstr "" + +msgid "Change service PINs" +msgstr "" + +msgid "Change setup PIN" +msgstr "" + +msgid "Change step size" +msgstr "เปลี่ยน Step" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "" + +msgid "Channel" +msgstr "ช่อง" + +#, fuzzy +msgid "Channel list type" +msgstr "เมนูช่องรายà¸à¸²à¸£" + +msgid "Channel not in services list" +msgstr "ช่องนี้ไม่มีà¸à¸²à¸£à¹ƒà¸«à¹‰à¸šà¸£à¸´à¸à¸²à¸£" + +#, fuzzy +msgid "Channel selection" +msgstr "เลือà¸à¸Šà¹ˆà¸­à¸‡à¸£à¸²à¸¢à¸à¸²à¸£" + +msgid "Channel:" +msgstr "ช่องรายà¸à¸²à¸£:" + +msgid "Channellist menu" +msgstr "เมนูช่องรายà¸à¸²à¸£" + +msgid "Chap." +msgstr "ตอน" + +msgid "Chapter" +msgstr "ตอนที่" + +msgid "Chapter:" +msgstr "ตอนที่:" + +msgid "Check" +msgstr "ตรวจสอบ" + +msgid "Check the internet connection" +msgstr "" + +msgid "Check the internet connection again" +msgstr "" + +#, fuzzy +msgid "Checking filesystem..." +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸•à¸£à¸§à¸ˆà¸ªà¸­à¸šà¸£à¸°à¸šà¸šà¹„ฟล์..." + +msgid "Checking the internet connection" +msgstr "" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" + +msgid "Children/Youth" +msgstr "" + +msgid "Choose which tuner to configure." +msgstr "" + +msgid "Circular left" +msgstr "วนซ้าย" + +msgid "Circular right" +msgstr "วนขวา" + +msgid "Cleanup" +msgstr "Cleanup" + +msgid "Clear" +msgstr "" + +msgid "Clear before scan" +msgstr "ลบข้อมูลเดิมà¸à¹ˆà¸­à¸™à¸„้นหา" + +msgid "Clear fixed" +msgstr "" + +msgid "Clear log" +msgstr "Clear log" + +#, fuzzy +msgid "Clear playlist" +msgstr "ล้างสารบัà¸à¸£à¸²à¸¢à¸à¸²à¸£" + +msgid "Close" +msgstr "ปิด" + +msgid "Close PiP on exit" +msgstr "" + +msgid "Close title selection" +msgstr "ปิดหน้าเลือà¸à¸Šà¸·à¹ˆà¸­à¹€à¸£à¸·à¹ˆà¸­à¸‡" + +msgid "Code rate HP" +msgstr "" + +msgid "Code rate LP" +msgstr "" + +msgid "Coderate HP" +msgstr "Coderate HP" + +msgid "Coderate LP" +msgstr "Coderate LP" + +msgid "Collection name" +msgstr "ชื่อคอลเลคชั่น" + +msgid "Collection settings" +msgstr "ตั้งค่าคอลเลคชั่น" + +#, fuzzy +msgid "Color format" +msgstr "ระบบสี" + +msgid "Command execution..." +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸—ำตามสั่ง..." + +msgid "Command order" +msgstr "เรียงลำดับคำสั่ง" + +msgid "Common Interface" +msgstr "อินเตอร์เฟซพื้นà¸à¸²à¸™" + +#, fuzzy +msgid "Common Interface assignment" +msgstr "à¸à¸³à¸«à¸™à¸”อินเตอร์เฟซพื้นà¸à¸²à¸™" + +msgid "Communication" +msgstr "ติดต่อสื่อสาร" + +#, fuzzy +msgid "Compact flash" +msgstr "Compact Flash" + +msgid "Complete" +msgstr "สำเร็จ" + +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "ซับซ้อน (ยอมให้มีเสียงà¹à¸¥à¸°à¸ªà¸±à¸”ส่วนภาพที่หลาà¸à¸«à¸¥à¸²à¸¢)" + +msgid "Composition of the recording filenames" +msgstr "" + +#, fuzzy +msgid "Configuration mode" +msgstr "โหมดà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่า" + +#, fuzzy, python-format +msgid "Configuration mode: %s" +msgstr "โหมดà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่า" + +#, fuzzy +msgid "Configuration..." +msgstr "ตั้งค่าเครือข่าย..." + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "" + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "" + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "" + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "" + +msgid "Configure how recording filenames are constructed." +msgstr "" + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +msgid "Configure interface" +msgstr "ตั้งค่าอินเตอร์เฟซ" + +msgid "Configure nameservers" +msgstr "ตั้งค่า Nameservers" + +msgid "Configure on which devices the background delete option should be used." +msgstr "" + +#, fuzzy +msgid "Configure remote control type" +msgstr "ชนิดà¸à¸²à¸£à¸„วบคุมอายุ" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "" + +#, fuzzy +msgid "Configure the IP address." +msgstr "ตั้งค่าอินเตอร์เฟซ" + +msgid "Configure the aspect ratio of the screen." +msgstr "" + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +#, fuzzy +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "เมื่อภาพยนต์หยุดเล่นให้" + +#, fuzzy +msgid "Configure the behavior when movie playback is started." +msgstr "เมื่อภาพยนต์เริ่มเล่นให้" + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "" + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "" + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "" + +msgid "Configure the brightness level of the front panel display." +msgstr "" + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "" + +msgid "Configure the color of the teletext subtitles." +msgstr "" + +msgid "Configure the contrast level of the front panel display." +msgstr "" + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "" + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "" + +msgid "Configure the first audio language (highest priority)." +msgstr "" + +msgid "Configure the first subtitle language (highest priority)." +msgstr "" + +msgid "Configure the font size of the subtitles." +msgstr "" + +msgid "Configure the fourth audio language." +msgstr "" + +#, fuzzy +msgid "Configure the fourth subtitle language." +msgstr "เลือà¸à¸‹à¸±à¸šà¹„ตเติ้ลต่อไป" + +msgid "Configure the function of a long press on the power button." +msgstr "" + +msgid "Configure the function of a short press on the power button." +msgstr "" + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "" + +#, fuzzy +msgid "Configure the gateway." +msgstr "ตั้งค่าอินเตอร์เฟซ" + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "" + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "" + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "" + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "" + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "" + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "" + +msgid "Configure the latitude of your location." +msgstr "" + +msgid "Configure the longitude of your location." +msgstr "" + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "" + +#, fuzzy +msgid "Configure the nameserver (DNS)." +msgstr "ตั้งค่า Nameservers" + +#, fuzzy +msgid "Configure the netmask." +msgstr "ตั้งค่าอินเตอร์เฟซ" + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "" + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "" + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "" + +msgid "Configure the possible fast forward speeds." +msgstr "" + +msgid "Configure the possible rewind speeds." +msgstr "" + +msgid "Configure the primary EPG language." +msgstr "" + +msgid "Configure the refresh rate of the screen." +msgstr "" + +msgid "Configure the screen resolution in PC output mode." +msgstr "" + +msgid "Configure the second audio language." +msgstr "" + +#, fuzzy +msgid "Configure the second subtitle language." +msgstr "เลือà¸à¸‹à¸±à¸šà¹„ตเติ้ลต่อไป" + +msgid "Configure the secondary EPG language." +msgstr "" + +msgid "Configure the sharpness of the video scaling." +msgstr "" + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "" + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "" + +#, fuzzy +msgid "Configure the slow motion speeds." +msgstr "ระดับของความช้า" + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "" + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "" + +msgid "Configure the third audio language." +msgstr "" + +#, fuzzy +msgid "Configure the third subtitle language." +msgstr "เลือà¸à¸‹à¸±à¸šà¹„ตเติ้ลต่อไป" + +msgid "Configure the transparency of the OSD." +msgstr "" + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "" + +#, fuzzy +msgid "Configure the tuner mode." +msgstr "โหมดà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่า" + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "" + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "" + +msgid "Configure the video output mode (or resolution)." +msgstr "" + +msgid "Configure the way in which the receiver changes channels." +msgstr "" + +msgid "Configure where completed timers show up in the timer list." +msgstr "" + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "" + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "" + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "" + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "" + +msgid "Configure which color format should be used on the SCART output." +msgstr "" + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "" + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "" + +msgid "Configure your internal LAN" +msgstr "ตั้งค่าà¸à¸²à¸£à¹Œà¹à¸¥à¸™à¹ƒà¸™à¹€à¸„รื่อง" + +msgid "Configure your network again" +msgstr "ตั้งเครือข่ายอีà¸à¸„รั้ง" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "" + +msgid "Configure your wireless LAN again" +msgstr "ตั้งค่าเครือข่ายไร้สายอีà¸à¸„รั้ง" + +msgid "Configures which video output connector will be used." +msgstr "" + +msgid "Configuring" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸•à¸±à¹‰à¸‡à¸„่า" + +msgid "Conflicting timer" +msgstr "ตารางเวลาซ้ำ" + +msgid "Connect" +msgstr "เชื่อมต่อ" + +#, fuzzy +msgid "Connect to a wireless network" +msgstr "เชื่อมต่อà¸à¸±à¸šà¹€à¸„รือข่ายไร้สาย" + +msgid "Connected satellites" +msgstr "" + +msgid "Connected to" +msgstr "เชื่อมต่อà¹à¸¥à¹‰à¸§à¸à¸±à¸š" + +msgid "Connected!" +msgstr "เชื่อมต่อà¹à¸¥à¹‰à¸§!" + +msgid "Constellation" +msgstr "Constellation" + +msgid "Content does not fit on DVD!" +msgstr "เนื้อหาเà¸à¸´à¸™à¸„วามจุà¹à¸œà¹ˆà¸™à¸”ีวีดี" + +msgid "Continue" +msgstr "ทำต่อ" + +msgid "Continue in background" +msgstr "ทำต่อà¹à¸šà¸šà¸‰à¸²à¸à¸«à¸¥à¸±à¸‡" + +#, fuzzy +msgid "Continue playback" +msgstr "เล่นต่อเนื่อง" + +msgid "Continue playing" +msgstr "เล่นต่อเนื่อง" + +msgid "Continues play (loop)" +msgstr "" + +msgid "Contrast" +msgstr "ความเข้ม" + +msgid "Convert ext3 filesystem to ext4" +msgstr "" + +msgid "Convert ext3 to ext4" +msgstr "" + +msgid "Converting ext3 to ext4..." +msgstr "" + +msgid "Copy" +msgstr "" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "" + +msgid "Could not find installed channel list." +msgstr "" + +#, fuzzy +msgid "Could not load medium! No disc inserted?" +msgstr "โหลดไม่ได้ ยังไม่ได้ใส่à¹à¸œà¹ˆà¸™à¸«à¸£à¸·à¸­à¹€à¸›à¸¥à¹ˆà¸²?" + +msgid "Could not open Picture in Picture" +msgstr "" + +#, fuzzy, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "ไม่สามารถบันทึà¸à¹„ด้ เนื่องจาà¸à¹€à¸§à¸¥à¸²à¸‹à¹‰à¸­à¸™à¸à¸±à¸šà¸£à¸²à¸¢à¸à¸²à¸£ %s" + +#, fuzzy, python-format +msgid "Could not record due to invalid service %s" +msgstr "ไม่สามารถบันทึà¸à¹„ด้ เนื่องจาà¸à¹€à¸§à¸¥à¸²à¸‹à¹‰à¸­à¸™à¸à¸±à¸šà¸£à¸²à¸¢à¸à¸²à¸£ %s" + +msgid "Create DVD-ISO" +msgstr "สร้างà¹à¸œà¹ˆà¸™à¸”ีวีดีà¹à¸šà¸š ISO" + +msgid "Create more detailed crash log" +msgstr "" + +#, python-format +msgid "Creating directory %s failed." +msgstr "ไม่สามารถสร้างโฟลเดอร์ %s ได้" + +#, fuzzy +msgid "Creating filesystem" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸•à¸£à¸§à¸ˆà¸ªà¸­à¸šà¸£à¸°à¸šà¸šà¹„ฟล์..." + +msgid "Creating partition" +msgstr "" + +msgid "Croatian" +msgstr "ภาษาโคเอเชีย" + +msgid "Current CEC address" +msgstr "" + +msgid "Current device: " +msgstr "" + +msgid "Current event EPG" +msgstr "" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +msgid "Current settings:" +msgstr "ตั้งค่าปัจจุบัน:" + +#, fuzzy +msgid "Current transponder" +msgstr "ทรานสปอนเดอร์ปัจจุบัน" + +msgid "Current value: " +msgstr "ค่าปัจจุบัน:" + +msgid "Current version:" +msgstr "เวอร์ชั่นปัจจุบัน:" + +msgid "Currently installed image" +msgstr "" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +#, fuzzy +msgid "Custom skip time for '1'/'3' buttons" +msgstr "ตั้งเวลาข้ามสำหรับปุ่ม '1'/'3'" + +#, fuzzy +msgid "Custom skip time for '4'/'6' buttons" +msgstr "ตั้งเวลาข้ามสำหรับปุ่ม '4'/'6'" + +#, fuzzy +msgid "Custom skip time for '7'/'9' buttons" +msgstr "ตั้งเวลาข้ามสำหรับปุ่ม '7'/'9'" + +msgid "Customize" +msgstr "ปรับà¹à¸•à¹ˆà¸‡" + +msgid "Customize channel list cursor behavior" +msgstr "" + +msgid "Cut" +msgstr "ตัด" + +msgid "Cutlist editor..." +msgstr "ตัดต่อรายà¸à¸²à¸£..." + +msgid "Czech" +msgstr "ภาษาเชค" + +msgid "D" +msgstr "D" + +msgid "DHCP" +msgstr "DHCP" + +#, fuzzy +msgid "DMM advanced" +msgstr "ขั้นสูง" + +msgid "DMM normal" +msgstr "" + +msgid "DUAL LAYER DVD" +msgstr "" + +msgid "DVB subtitle black transparency" +msgstr "" + +msgid "DVB-C" +msgstr "" + +msgid "DVB-C ANNEX C" +msgstr "" + +msgid "DVB-S" +msgstr "DVB-S" + +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "" + +msgid "DVB-T2" +msgstr "" + +msgid "DVD data format" +msgstr "" + +#, fuzzy +msgid "DVD file browser" +msgstr "ดูà¹à¸Ÿà¹‰à¸¡à¹ƒà¸™à¸”ีวีดี" + +msgid "DVD media toolbox" +msgstr "เครื่องมือจัดà¸à¸²à¸£à¸”ีวีดี" + +#, fuzzy +msgid "DVD player" +msgstr "เครื่องเล่นดีวีดี" + +#, fuzzy +msgid "DVD titlelist" +msgstr "รายà¸à¸²à¸£à¸šà¸™à¹à¸œà¹ˆà¸™à¸”ีวีดี" + +msgid "Danish" +msgstr "ภาษาเดนมาร์à¸" + +msgid "Date" +msgstr "วันที่" + +#, fuzzy +msgid "Date/time input" +msgstr "ป้อนวัน/เวลา" + +#, fuzzy +msgid "Deep standby" +msgstr "Deep Standby" + +msgid "Default" +msgstr "ค่าเริ่มต้น" + +msgid "Default movie location" +msgstr "" + +#, fuzzy +msgid "Default settings" +msgstr "ตั้งค่าเริ่มต้น" + +msgid "Delay before key repeat starts:" +msgstr "" + +msgid "Delay for external subtitles" +msgstr "" + +msgid "Delete" +msgstr "ลบ" + +msgid "Delete entry" +msgstr "ลบรายà¸à¸²à¸£" + +msgid "Delete failed!" +msgstr "ลบไม่ได้!" + +#, fuzzy +msgid "Delete file" +msgstr "ลบไฟล์" + +#, fuzzy +msgid "Delete playlist entry" +msgstr "ลบรายà¸à¸²à¸£à¸™à¸µà¹‰" + +#, fuzzy +msgid "Delete saved playlist" +msgstr "ลบรายà¸à¸²à¸£à¸ªà¸²à¸£à¸šà¸±à¸" + +msgid "Delete timer" +msgstr "" + +#, fuzzy +msgid "Delete..." +msgstr "ลบ..." + +msgid "Deleted" +msgstr "" + +msgid "Deleted items" +msgstr "" + +msgid "Depth" +msgstr "" + +msgid "Descramble http streams" +msgstr "" + +msgid "Description" +msgstr "รายละเอียด" + +msgid "Deselect" +msgstr "ไม่เลือà¸" + +msgid "Details for plugin: " +msgstr "" + +msgid "Detected HDD:" +msgstr "ฮาร์ดไดรฟ์ที่พบ:" + +msgid "Detected NIMs:" +msgstr "NIMs ที่พบ:" + +msgid "Devicename:" +msgstr "" + +msgid "Devide" +msgstr "" + +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +msgid "DiSEqC mode" +msgstr "DiSEqC mode" + +#, fuzzy, python-format +msgid "DiSEqC port %s: %s" +msgstr "DiSEqC repeats" + +#, fuzzy +msgid "DiSEqC-tester settings" +msgstr "ตั้งค่า DiSEqC-Tester" + +msgid "Dialing:" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¹‚ทร:" + +msgid "Digital contour removal" +msgstr "Digital contour removal" + +msgid "Direct playback of linked titles without menu" +msgstr "เล่นทันที ไม่ต้องà¹à¸ªà¸”งเมนู" + +msgid "Directory" +msgstr "" + +#, fuzzy, python-format +msgid "Directory %s does not exist." +msgstr "ไม่พบโฟล์เดอร์ %s ในระบบ" + +#, python-format +msgid "Directory %s nonexistent." +msgstr "" + +msgid "Directory browser" +msgstr "ดูโฟล์เดอร์" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "" + +#, fuzzy, python-format +msgid "Directory contains %s and %s." +msgstr "ไม่พบโฟล์เดอร์ %s ในระบบ" + +msgid "Disable" +msgstr "ไม่ใช้งาน" + +msgid "Disable Picture in Picture" +msgstr "ไม่ใช้งานภาพซ้อนภาพ" + +msgid "Disable background scanning" +msgstr "" + +msgid "Disable timer" +msgstr "" + +msgid "Disabled" +msgstr "ไม่ใช้งาน" + +msgid "Disconnect" +msgstr "ตัดà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•à¹ˆà¸­" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "" + +msgid "Display 16:9 content as" +msgstr "à¹à¸ªà¸”งรายà¸à¸²à¸£ 16:9 à¹à¸šà¸š" + +msgid "Display 4:3 content as" +msgstr "à¹à¸ªà¸”งรายà¸à¸²à¸£ 4:3 à¹à¸šà¸š" + +msgid "Display >16:9 content as" +msgstr "à¹à¸ªà¸”งรายà¸à¸²à¸£ >16:9 à¹à¸šà¸š" + +#, fuzzy +msgid "Display and userinterface" +msgstr "à¸à¸²à¸£à¹à¸ªà¸”งผลà¹à¸¥à¸°à¸ªà¹ˆà¸§à¸™à¸•à¸´à¸”ต่อผู้ใช้" + +msgid "Display message before playing next movie" +msgstr "" + +#, fuzzy +msgid "Display setup" +msgstr "ตั้งค่าà¸à¸²à¸£à¹à¸ªà¸”งผล" + +#, fuzzy +msgid "Do not change" +msgstr "ไม่ต้องเปลี่ยน" + +#, fuzzy +msgid "Do not record" +msgstr "ไม่ต้องบันทึà¸" + +#, fuzzy +msgid "Do nothing" +msgstr "ไม่ต้องทำอะไร" + +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"ท่านà¹à¸™à¹ˆà¹ƒà¸ˆà¸«à¸£à¸·à¸­à¹„ม่ที่จะตรวจสอบระบบไฟล์?\n" +"เนื่องจาà¸à¸ˆà¸°à¹ƒà¸Šà¹‰à¹€à¸§à¸¥à¸²à¸™à¸²à¸™à¸¡à¸²à¸à¸à¸§à¹ˆà¸²à¸ˆà¸°à¹à¸¥à¹‰à¸§à¹€à¸ªà¸£à¹‡à¸ˆ!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" + +#, python-format +msgid "Do you really want to delete %s?" +msgstr "ท่านต้องà¸à¸²à¸£à¸—ี่จะลบ %s ออà¸à¸ˆà¸²à¸à¸£à¸°à¸šà¸šà¸«à¸£à¸·à¸­à¹„ม่?" + +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"ท่านต้องà¸à¸²à¸£à¸—ี่จะโหลด\n" +"Plugin \"%s\" นี้หรือไม่?" + +msgid "Do you really want to exit?" +msgstr "" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" + +#, fuzzy, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"ท่านต้องà¸à¸²à¸£à¸—ี่จะโหลด\n" +"Plugin \"%s\" นี้หรือไม่?" + +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "ท่านต้องà¸à¸²à¸£à¸—ี่จะลบโฟล์เดอร์ %s ออà¸à¸ˆà¸²à¸à¸£à¸°à¸šà¸šà¸«à¸£à¸·à¸­à¹„ม่?" + +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "ท่านต้องà¸à¸²à¸£à¸—ี่ลบบุ๊คมาร์ค %s ออà¸à¹„ปหรือไม่?" + +msgid "Do you want this?" +msgstr "" + +msgid "Do you want to burn this collection to DVD medium?" +msgstr "ท่านต้องà¸à¸²à¸£à¸—ี่จะเขียนคอลเล็คชั่นนี้ลงà¹à¸œà¹ˆà¸™à¸”ีวีดีหรือไม่?" + +msgid "Do you want to do a service scan?" +msgstr "ท่านต้องà¸à¸²à¸£à¸„้นหารายà¸à¸²à¸£à¸«à¸£à¸·à¸­à¹„ม่?" + +msgid "Do you want to do another manual service scan?" +msgstr "ท่านต้องà¸à¸²à¸£à¸—ี่จะทำà¸à¸²à¸£à¸„้นหารายà¸à¸²à¸£à¸­à¸·à¹ˆà¸™à¹† ต่อหรือไม่?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "" + +#, fuzzy +msgid "Do you want to install a channel list?" +msgstr "ท่านต้องà¸à¸²à¸£à¸—ี่จะติดตั้งส่วนประà¸à¸­à¸šà¸™à¸µà¹‰:\n" + +msgid "Do you want to install the package:\n" +msgstr "ท่านต้องà¸à¸²à¸£à¸—ี่จะติดตั้งส่วนประà¸à¸­à¸šà¸™à¸µà¹‰:\n" + +msgid "Do you want to play DVD in drive?" +msgstr "ท่านต้องà¸à¸²à¸£à¸—ี่จะเล่นà¹à¸œà¹ˆà¸™à¸”ีวีดีนี้หรือไม่?" + +msgid "Do you want to preview this DVD before burning?" +msgstr "ดูเนื้อหาดีวีดีà¸à¹ˆà¸­à¸™à¹€à¸‚ียนลงà¹à¸œà¹ˆà¸™à¸«à¸£à¸·à¸­à¹„ม่?" + +msgid "Do you want to reboot your receiver?" +msgstr "" + +msgid "Do you want to remove the package:\n" +msgstr "ท่านต้องà¸à¸²à¸£à¸—ี่จะลบส่วนประà¸à¸­à¸šà¸™à¸µà¹‰:\n" + +msgid "Do you want to restore your settings?" +msgstr "ท่านต้องà¸à¸²à¸£à¸—ี่จะนำà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าต่างๆ à¸à¸¥à¸±à¸šà¸¡à¸²à¹ƒà¸Šà¹‰à¸«à¸£à¸·à¸­à¹„ม่?" + +msgid "Do you want to resume this playback?" +msgstr "ต้องà¸à¸²à¸£à¹€à¸¥à¹ˆà¸™à¸•à¹ˆà¸­à¸ˆà¸²à¸à¸—ี่เดิมหรือไม่?" + +#, fuzzy, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "ท่านต้องà¸à¸²à¸£à¸—ี่จะนำà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าต่างๆ à¸à¸¥à¸±à¸šà¸¡à¸²à¹ƒà¸Šà¹‰à¸«à¸£à¸·à¸­à¹„ม่?" + +msgid "Do you want to update your receiver?" +msgstr "" + +msgid "Do you want to upgrade the package:\n" +msgstr "ยืนยันจะปรับปรุงส่วนประà¸à¸­à¸šà¸™à¸µà¹‰:\n" + +msgid "Don't stop current event but disable coming events" +msgstr "คงรายà¸à¸²à¸£à¸›à¸±à¸ˆà¸ˆà¸¸à¸šà¸±à¸™à¹„ว้ à¹à¸•à¹ˆà¹ƒà¸«à¹‰à¸¢à¸à¹€à¸¥à¸´à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸•à¹ˆà¸­à¹„ปà¹à¸—น" + +#, fuzzy, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "เสร็จà¹à¸¥à¹‰à¸§ - ติดตั้งปรับปรุงหรือลบ %d รายà¸à¸²à¸£ พบข้อผิดพลาด %d รายà¸à¸²à¸£" +msgstr[1] "เสร็จà¹à¸¥à¹‰à¸§ - ติดตั้งปรับปรุงหรือลบ %d รายà¸à¸²à¸£ พบข้อผิดพลาด %d รายà¸à¸²à¸£" + +msgid "Download" +msgstr "ดาวน์โหลด" + +#, python-format +msgid "Download %s from server" +msgstr "" + +msgid "Download .NFI-files for USB-flasher" +msgstr "ดาวน์โหลด .NFI สำหรับ USB-Flasher" + +#, fuzzy +msgid "Download plugins" +msgstr "ดาวน์โหลด Plugins" + +msgid "Downloadable new plugins" +msgstr "Plugin ใหม่ที่ดาวน์โหลดได้" + +msgid "Downloadable plugins" +msgstr "Plugin ที่ดาวน์โหลดได้" + +msgid "Downloading" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸”าวน์โหลด" + +msgid "Downloading plugin information. Please wait..." +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸”าวน์โหลดข้อมูล Plugin à¸à¸£à¸¸à¸“ารอสัà¸à¸„รู่..." + +msgid "Dutch" +msgstr "ภาษาดัช" + +msgid "Dynamic contrast" +msgstr "Dynamic contrast" + +msgid "E" +msgstr "E" + +msgid "EPG" +msgstr "" + +msgid "EPG language selection 1" +msgstr "" + +msgid "EPG language selection 2" +msgstr "" + +#, fuzzy +msgid "EPG selection" +msgstr "เลือà¸à¸œà¸±à¸‡à¸£à¸²à¸¢à¸à¸²à¸£" + +msgid "EPG settings" +msgstr "" + +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "ผิดพลาด - à¸à¸²à¸£à¸„้นหา (%s) ล้มเหลว" + +msgid "East" +msgstr "ตะวันออà¸" + +msgid "East limit set" +msgstr "" + +msgid "Edit" +msgstr "à¹à¸à¹‰à¹„ข" + +msgid "Edit DNS" +msgstr "à¹à¸à¹‰à¹„ข DNS" + +msgid "Edit bouquets list" +msgstr "" + +msgid "Edit chapters of current title" +msgstr "à¹à¸à¹‰à¹„ขตอนที่ของเรื่องปัจจุบัน" + +msgid "Edit services list" +msgstr "à¹à¸à¹‰à¹„ขสารบัà¸à¸šà¸£à¸´à¸à¸²à¸£" + +msgid "Edit settings" +msgstr "à¹à¸à¹‰à¹„ขà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่า" + +#, fuzzy +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "ออà¸à¸ˆà¸²à¸à¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่า Nameserver" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "" + +msgid "Edit timer" +msgstr "" + +msgid "Edit title" +msgstr "à¹à¸à¹‰à¹„ขชื่อเรื่อง" + +msgid "Edit upgrade source url." +msgstr "à¹à¸à¹‰à¹„ข URL ของเซอร์พเวอร์เพื่อปรับปรุง" + +msgid "Education/Science/..." +msgstr "" + +msgid "Electronic Program Guide" +msgstr "ผังรายà¸à¸²à¸£ (EPG)" + +msgid "Enable" +msgstr "เปิดใช้" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +msgid "Enable 5V for active antenna" +msgstr "เปิดใช้งาน 5V สำหรับเสาอาà¸à¸²à¸¨à¸™à¸µà¹‰" + +msgid "Enable EIT EPG" +msgstr "" + +msgid "Enable MHW EPG" +msgstr "" + +msgid "Enable Netmed EPG" +msgstr "" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +#, fuzzy +msgid "Enable bouquet selection in multi-EPG" +msgstr "à¹à¸à¹‰à¹„ขà¸à¸¥à¸¸à¹ˆà¸¡à¸£à¸²à¸¢à¸à¸²à¸£" + +msgid "Enable freesat EPG" +msgstr "" + +msgid "Enable multiple bouquets" +msgstr "เปิดใช้หลายà¸à¸¥à¸¸à¹ˆà¸¡à¸£à¸²à¸¢à¸à¸²à¸£" + +msgid "Enable parental control" +msgstr "เปิดใช้ส่วนควบคุมอายุรับชม" + +msgid "Enable teletext caching" +msgstr "" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +msgid "Enabled" +msgstr "เปิดใช้งาน" + +msgid "Encrypted: " +msgstr "" + +msgid "Encryption" +msgstr "à¸à¸²à¸£à¹€à¸‚้ารหัส" + +#, fuzzy +msgid "Encryption key" +msgstr "คีย์สำหรับเข้ารหัส" + +#, fuzzy +msgid "Encryption key type" +msgstr "ชนิดคีย์" + +msgid "Encryption:" +msgstr "à¸à¸²à¸£à¹€à¸‚้ารหัส:" + +msgid "End time" +msgstr "เวลาสิ้นสุด" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +msgid "English" +msgstr "ภาษาอังà¸à¸¤à¸©" + +#, fuzzy +msgid "Enigma2 skin selector" +msgstr "Enigma 2 à¹à¸¥à¸°à¹€à¸„รือข่าย" + +msgid "Enter main menu..." +msgstr "เข้าสู่เมนูหลัà¸..." + +msgid "Enter pin code" +msgstr "" + +msgid "Enter the service pin" +msgstr "ป้อนรหัสบริà¸à¸²à¸£" + +msgid "Equal to" +msgstr "" + +msgid "Error" +msgstr "ผิดพลาด" + +msgid "Error code" +msgstr "" + +msgid "Error executing plugin" +msgstr "เรียà¸à¹ƒà¸Šà¹‰à¸‡à¸²à¸™ Plugin ผิดพลาด" + +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"ผิดพลาด: %s\n" +"ทำอีà¸à¸„รั้งหรือไม่?" + +msgid "Estonian" +msgstr "ภาษาเอสโตเนี่ยน" + +msgid "Ethernet network interface" +msgstr "" + +msgid "Event font size (relative to skin size)" +msgstr "" + +#, fuzzy +msgid "Event view" +msgstr "à¹à¸ªà¸”งรายà¸à¸²à¸£" + +#, fuzzy +msgid "Event view menu" +msgstr "à¹à¸ªà¸”งรายà¸à¸²à¸£" + +msgid "Everywhere" +msgstr "" + +msgid "Exceeds dual layer medium!" +msgstr "" + +msgid "Execution finished!!" +msgstr "เสร็จà¹à¸¥à¹‰à¸§!" + +#, fuzzy +msgid "Execution progress:" +msgstr "ความคืบหน้า:" + +msgid "Exif" +msgstr "Exif" + +msgid "Exit" +msgstr "ออà¸" + +msgid "Exit EPG" +msgstr "" + +msgid "Exit editor" +msgstr "ออà¸à¸ˆà¸²à¸à¸à¸²à¸£à¹à¸à¹‰à¹„ข" + +msgid "Exit input device selection." +msgstr "" + +msgid "Exit media player?" +msgstr "" + +#, fuzzy +msgid "Exit mediaplayer" +msgstr "ออà¸à¸ˆà¸²à¸à¸ªà¹ˆà¸§à¸™à¹€à¸¥à¹ˆà¸™à¹„ฟล์" + +#, fuzzy +msgid "Exit movie list" +msgstr "ออà¸à¸ˆà¸²à¸à¸ªà¸²à¸£à¸šà¸±à¸à¸ à¸²à¸žà¸¢à¸™à¸•à¹Œ" + +#, fuzzy +msgid "Exit movie player?" +msgstr "ออà¸à¸ˆà¸²à¸à¸ªà¹ˆà¸§à¸™à¹€à¸¥à¹ˆà¸™à¹„ฟล์" + +#, fuzzy +msgid "Exit nameserver configuration" +msgstr "ออà¸à¸ˆà¸²à¸à¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่า Nameserver" + +#, fuzzy +msgid "Exit network interface list" +msgstr "ออà¸à¸ˆà¸²à¸à¸£à¸²à¸¢à¸à¸²à¸£à¹€à¸„รือข่าย" + +msgid "Exit network wizard" +msgstr "ออà¸à¸ˆà¸²à¸à¸•à¸±à¸§à¸Šà¹ˆà¸§à¸¢à¹€à¸„รือข่าย" + +msgid "Exit the wizard" +msgstr "ออà¸à¸ˆà¸²à¸à¸•à¸±à¸§à¸Šà¹ˆà¸§à¸¢" + +msgid "Expert" +msgstr "ชำนาà¸" + +msgid "Extend sleeptimer 15 minutes" +msgstr "" + +msgid "Extended Software" +msgstr "" + +msgid "Extended Software Plugin" +msgstr "" + +#, fuzzy +msgid "Extended network setup plugin..." +msgstr "Plugin สำหรับตั้งค่าเครือข่าย..." + +#, fuzzy +msgid "Extended setup..." +msgstr "ตั้งค่าส่วนเพิ่มเติม..." + +msgid "Extensions" +msgstr "ส่วนเพิ่มเติม" + +msgid "Extensions management" +msgstr "" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "" + +msgid "Extra motor options" +msgstr "" + +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "" + +msgid "Factory reset" +msgstr "ตั้งค่าจาà¸à¹‚รงงาน" + +msgid "Failed" +msgstr "ล้มเหลว" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "" + +#, python-format +msgid "Fan %d" +msgstr "" + +#, python-format +msgid "Fan %d PWM" +msgstr "" + +#, fuzzy, python-format +msgid "Fan %d voltage" +msgstr "เพิ่ม Voltage" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +msgid "Fast" +msgstr "เร็ว" + +msgid "Fast DiSEqC" +msgstr "Fast DiSEqC" + +msgid "Fast Scan" +msgstr "" + +msgid "Fast epoch" +msgstr "Fast epoch" + +#, fuzzy +msgid "Fast forward speeds" +msgstr "ความเร็วในà¸à¸²à¸£à¸à¸£à¸­à¹€à¸”ินหน้า" + +msgid "Favourites" +msgstr "รายà¸à¸²à¸£à¹‚ปรด" + +msgid "File appears to be busy.\n" +msgstr "" + +msgid "Filesystem check" +msgstr "" + +msgid "Final position at" +msgstr "" + +msgid "Final position at index" +msgstr "" + +msgid "Fine movement" +msgstr "" + +msgid "Finetune" +msgstr "ปรับà¹à¸šà¸šà¸¥à¸°à¹€à¸­à¸µà¸¢à¸”" + +msgid "Finished" +msgstr "จบà¸à¸²à¸£à¸—ำงาน" + +msgid "Finished configuring your network" +msgstr "จบà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าเครือข่าย" + +msgid "Finished restarting your network" +msgstr "ระบบเครือข่ายพร้อมใช้งานà¹à¸¥à¹‰à¸§" + +msgid "Finnish" +msgstr "จบà¸à¸²à¸£à¸—ำงาน" + +msgid "Fixed" +msgstr "" + +msgid "Flash" +msgstr "à¹à¸Ÿà¸£à¸Š" + +msgid "Flashing failed" +msgstr "à¸à¸²à¸£à¸¥à¸‡à¸­à¸´à¸¡à¹€à¸¡à¸ˆà¸¥à¹‰à¸¡à¹€à¸«à¸¥à¸§" + +msgid "Following tasks will be done after you press OK!" +msgstr "" + +msgid "Format" +msgstr "ฟอร์à¹à¸¡à¸—" + +msgid "Forward volume keys" +msgstr "" + +msgid "Frame size in full view" +msgstr "เต็มหน้าจอ" + +msgid "French" +msgstr "ภาษาà¸à¸£à¸±à¹ˆà¸‡à¹€à¸¨à¸©" + +msgid "Frequency" +msgstr "ความถี่" + +msgid "Frequency bands" +msgstr "à¹à¸–บของความถี่" + +msgid "Frequency scan step size(khz)" +msgstr "ช่วง (step) ในà¸à¸²à¸£à¸„้นหา (khz)" + +msgid "Frequency steps" +msgstr "ช่วงความถี่ (step)" + +msgid "Frequency:" +msgstr "" + +msgid "Fri" +msgstr "ศุà¸." + +msgid "Friday" +msgstr "วันศุà¸à¸£à¹Œ" + +msgid "From :" +msgstr "" + +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Frontprocessor version: %d" + +msgid "Full transparency" +msgstr "" + +msgid "Fulview resulution" +msgstr "" + +msgid "Function of OK button" +msgstr "" + +msgid "Further Options" +msgstr "" + +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"ต้องเริ่มงานโปรà¹à¸à¸£à¸¡ (GUI) ใหม่ จึงจะใช้สà¸à¸´à¸™à¸™à¸µà¹‰à¹„ด้\n" +"ต้องà¸à¸²à¸£à¹€à¸£à¸´à¹ˆà¸¡à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸«à¸¡à¹ˆà¸«à¸£à¸·à¸­à¹„ม่?" + +msgid "Gateway" +msgstr "Gateway" + +#, fuzzy +msgid "General AC3 delay" +msgstr "General AC3 Delay" + +#, fuzzy +msgid "General PCM delay" +msgstr "General PCM Delay" + +msgid "Genre" +msgstr "ชนิด" + +msgid "German" +msgstr "ภาษาเยอรมัน" + +msgid "Get latest experimental image" +msgstr "" + +msgid "Get latest release image" +msgstr "" + +msgid "Getting plugin information. Please wait..." +msgstr "à¸à¸³à¸¥à¸±à¸‡à¹‚หลดข้อมูล Plugin à¸à¸£à¸¸à¸“ารอสัà¸à¸„รู่..." + +msgid "Go down the list" +msgstr "" + +msgid "Go to first movie or last item" +msgstr "" + +msgid "Go to first movie or top of list" +msgstr "" + +#, fuzzy +msgid "Go to first service" +msgstr "ย้ายไปบนสุด" + +#, fuzzy +msgid "Go to last service" +msgstr "ป้องà¸à¸±à¸™à¸šà¸£à¸´à¸à¸²à¸£" + +#, fuzzy +msgid "Go to next event" +msgstr "ย้ายลงไป" + +#, fuzzy +msgid "Go to next page of service" +msgstr "ไปบริà¸à¸²à¸£à¸¢à¹ˆà¸­à¸¢à¸–ัดไป" + +#, fuzzy +msgid "Go to previous event" +msgstr "ย้ายไปà¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²à¸™à¸µà¹‰" + +#, fuzzy +msgid "Go to previous page of service" +msgstr "à¸à¸¥à¸±à¸šà¹„ปยังบริà¸à¸²à¸£à¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²" + +msgid "Go up the list" +msgstr "" + +msgid "Goto" +msgstr "" + +msgid "Goto 0" +msgstr "ไปยัง 0" + +msgid "Goto :" +msgstr "" + +msgid "Goto X" +msgstr "" + +msgid "Goto index position" +msgstr "" + +msgid "Goto next day of events" +msgstr "" + +msgid "Goto next page of events" +msgstr "" + +msgid "Goto position" +msgstr "ไปยังตำà¹à¸«à¸™à¹ˆà¸‡" + +msgid "Goto previous day of events" +msgstr "" + +msgid "Goto previous page of events" +msgstr "" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "" + +msgid "GraphMultiEpg Settings" +msgstr "" + +msgid "Graphical Multi EPG" +msgstr "à¸à¸¥à¸¸à¹ˆà¸¡à¸œà¸±à¸‡à¸£à¸²à¸¢à¸à¸²à¸£à¸«à¸¥à¸²à¸à¸«à¸¥à¸²à¸¢à¹à¸šà¸šà¸à¸£à¸²à¸Ÿà¸´à¸„" + +msgid "Greek" +msgstr "ภาษาà¸à¸£à¸µà¸" + +msgid "Green boost" +msgstr "Green boost" + +msgid "Guard interval" +msgstr "" + +msgid "HD list" +msgstr "" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "" + +msgid "Handle wakeup from TV" +msgstr "" + +#, fuzzy +msgid "Hard disk" +msgstr "ฮาร์ดดิสà¸à¹Œ" + +#, fuzzy +msgid "Hard disk setup" +msgstr "ตั้งค่าฮาร์ดดิสà¸à¹Œ" + +#, fuzzy +msgid "Hard disk standby after" +msgstr "ให้ฮาร์ดดิสà¸à¹Œ standby หลังจาà¸" + +msgid "Harddisk" +msgstr "ฮาร์ดดิสà¸à¹Œ" + +msgid "Hardware: " +msgstr "" + +msgid "Hebrew" +msgstr "" + +msgid "Helps setting up your dish" +msgstr "" + +msgid "Hidden network" +msgstr "" + +msgid "Hide CI messages" +msgstr "" + +msgid "Hide channel list in radio mode" +msgstr "" + +msgid "Hide known extensions" +msgstr "" + +msgid "Hide number markers" +msgstr "" + +#, fuzzy +msgid "Hide player" +msgstr "ซ่อนตัวเล่น" + +msgid "Hide zap errors" +msgstr "" + +msgid "Hierarchy info" +msgstr "" + +#, fuzzy +msgid "Hierarchy information" +msgstr "ข้อมูลลำดับชั้น" + +msgid "High bitrate support" +msgstr "รองรับข้อมูลขนาดใหà¸à¹ˆ" + +msgid "Hold screen" +msgstr "" + +msgid "Hold till locked" +msgstr "" + +msgid "Home" +msgstr "" + +msgid "Horizontal" +msgstr "à¹à¸™à¸§à¸™à¸­à¸™ (H)" + +msgid "Horizontal turning speed" +msgstr "" + +msgid "How many minutes do you want to record?" +msgstr "บันทึà¸à¸£à¸²à¸¢à¸•à¹ˆà¸­à¹„ปอีà¸à¸à¸µà¹ˆà¸™à¸²à¸—ี?" + +msgid "Hue" +msgstr "Hue" + +msgid "Hungarian" +msgstr "ภาษาฮังà¸à¸²à¸£à¸µà¹ˆ" + +#, fuzzy +msgid "IP address" +msgstr "IP Address" + +msgid "ISO file is too large for this filesystem!" +msgstr "ไฟล์à¹à¸šà¸š ISO มีขนาดใหà¸à¹ˆà¹€à¸à¸´à¸™à¹„ป!" + +msgid "ISO path" +msgstr "ISO path" + +msgid "Icons" +msgstr "" + +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"เà¸à¸´à¸”ข้อผิดพลาดในà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•à¹ˆà¸­\n" +"สาย scart à¸à¸£à¸¸à¸“าà¸à¸”ปุ่ม OK " + +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"ให้เปิดใช้งานความสว่างหรือความเข้มà¹à¸šà¸šà¸žà¸´à¹€à¸¨à¸© เช่น ค่า \"dynamic\" ให้เปลี่ยนเป็นมาตรà¸à¸²à¸™à¸à¹ˆà¸­à¸™ จาà¸à¸™à¸±à¹‰à¸™à¸›à¸£à¸±à¸šà¸£à¸°à¸”ับ backlight ให้เหมาะสม รวมทั้งปรับค่าความเข้ม (contrast) ให้มาà¸à¸—ี่สุดเท่าที่จะทำได้\n" +"จาà¸à¸™à¸±à¹‰à¸™à¸›à¸£à¸±à¸šà¸„่าความสว่าง (Brightness) ให้ต่ำที่สุดเท่าที่จะเห็นความà¹à¸•à¸à¸•à¹ˆà¸²à¸‡à¸£à¸°à¸«à¸§à¹ˆà¸²à¸‡à¸ªà¸µà¹€à¸—าที่อยู่ติดà¸à¸±à¸™\n" +"ตอนนี้ยังไม่ต้องà¸à¸±à¸‡à¸§à¸¥à¹ƒà¸™à¸ªà¹ˆà¸§à¸™à¸‚องà¹à¸–บสว่าง ส่วนของà¹à¸–บสว่างจะถูà¸à¸›à¸£à¸±à¸šà¹à¸•à¹ˆà¸‡à¸ à¸²à¸¢à¸«à¸¥à¸±à¸‡\n" +"หาà¸à¸—่านพอใจà¹à¸¥à¹‰à¸§à¹ƒà¸«à¹‰à¸à¸”ปุ่ม OK เพื่อเข้าส่วนต่อไป" + +msgid "Image: " +msgstr "" + +#, fuzzy +msgid "Immediate shutdown" +msgstr "ปิดเครื่องทันที (Shutdown)" + +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "ต้องย้ายไปยังข่องรายà¸à¸²à¸£à¸­à¸·à¹ˆà¸™à¹€à¸žà¸·à¹ˆà¸­à¸—ี่จะบันทึà¸à¸£à¸²à¸¢à¸à¸²à¸£à¸•à¸²à¸¡à¸—ี่ได้ตั้งไว้\n" + +#, fuzzy +msgid "In progress" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸—ำงาน" + +msgid "Inactivity Sleeptimer" +msgstr "" + +msgid "Include AIT in http streams" +msgstr "" + +msgid "Include ECM in http streams" +msgstr "" + +msgid "Include EIT in http streams" +msgstr "" + +msgid "Incorrect type service for PiP!" +msgstr "" + +msgid "Increased voltage" +msgstr "เพิ่ม Voltage" + +msgid "Index" +msgstr "อินเด็à¸à¸‹à¹Œ" + +msgid "Index allocated:" +msgstr "" + +msgid "Info" +msgstr "ข้อมูล" + +#, fuzzy +msgid "Info bar" +msgstr "à¹à¸–บรายà¸à¸²à¸£" + +#, fuzzy +msgid "Info bar timeout" +msgstr "เวลาà¹à¸ªà¸”งà¹à¸–บรายà¸à¸²à¸£" + +msgid "Infobar frontend data source" +msgstr "" + +msgid "Information" +msgstr "ข้อมูล" + +msgid "Init" +msgstr "เตรียม" + +#, fuzzy +msgid "Initial fast forward speed" +msgstr "ความเร็วในà¸à¸²à¸£à¸à¸£à¸­à¹€à¸”ินหน้า" + +msgid "Initial location in new timers" +msgstr "" + +msgid "Initial lock ratio" +msgstr "" + +#, fuzzy +msgid "Initial rewind speed" +msgstr "ความเร็วในà¸à¸²à¸£à¸¢à¹‰à¸­à¸™" + +msgid "Initial signal quality" +msgstr "" + +msgid "Initial signal quality:" +msgstr "" + +msgid "Initialization" +msgstr "" + +msgid "Initialize" +msgstr "เตรียมà¸à¸²à¸£" + +msgid "Initializing storage device..." +msgstr "" + +msgid "Input" +msgstr "นำเข้า (Input)" + +msgid "Input device setup" +msgstr "" + +msgid "Input devices" +msgstr "" + +msgid "Install" +msgstr "ติดตั้ง" + +msgid "Install a new image with a USB stick" +msgstr "ติดตั้งอิมเมจจาภUSB เมมโมรี่" + +msgid "Install a new image with your web browser" +msgstr "ติดตั้งอิมเมจผ่านเวบ" + +#, fuzzy +msgid "Install channel list" +msgstr "รายà¸à¸²à¸£à¸•à¹ˆà¸­à¹„ปในหน่วยความจำ" + +msgid "Install extensions" +msgstr "" + +msgid "Install extensions." +msgstr "ติดตั้งส่วนเพิ่มเติม" + +msgid "Install local extension" +msgstr "ติดตั้งส่วนเพิ่มเติมจาà¸à¹ƒà¸™à¹€à¸„รื่อง" + +msgid "Install picons on" +msgstr "" + +#, fuzzy +msgid "Install softcam" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸•à¸´à¸”ตั้งซอพท์à¹à¸§à¸£à¹Œ..." + +#, fuzzy +msgid "Installation has completed." +msgstr "à¸à¸²à¸£à¸•à¸´à¸”ตั้งเสร็จà¹à¸¥à¹‰à¸§" + +#, fuzzy +msgid "Installation or removal has completed." +msgstr "ติดตั้งหรือลบออà¸à¹€à¸ªà¸£à¹‡à¸ˆà¹à¸¥à¹‰à¸§" + +msgid "Installing" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸•à¸´à¸”ตั้ง" + +#, fuzzy +msgid "Installing software..." +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸•à¸´à¸”ตั้งซอพท์à¹à¸§à¸£à¹Œ..." + +#, fuzzy +msgid "Instant recording location" +msgstr "เปลี่ยนà¹à¸›à¸¥à¸‡à¸à¸²à¸£à¸šà¸±à¸™à¸—ึภ(ช่วงเวลา)" + +#, fuzzy +msgid "Instant recording..." +msgstr "บันทึà¸à¸£à¸²à¸¢à¸à¸²à¸£..." + +msgid "Interface: " +msgstr "" + +msgid "Intermediate" +msgstr "ปานà¸à¸¥à¸²à¸‡" + +#, fuzzy +msgid "Internal flash" +msgstr "หน่วยความจำภายใน" + +msgid "Internal hdd only" +msgstr "" + +msgid "Interval between keys when repeating:" +msgstr "" + +#, python-format +msgid "Invalid directory selected: %s" +msgstr "โฟล์เดอร์นี้: %s ไม่ถูà¸à¸•à¹‰à¸­à¸‡" + +#, fuzzy +msgid "Invalid location" +msgstr "ปลายทางไม่ถูà¸à¸•à¹‰à¸­à¸‡" + +msgid "Invalid transponder data" +msgstr "" + +msgid "Inversion" +msgstr "Inversion" + +msgid "Invert" +msgstr "" + +msgid "Ipkg" +msgstr "Ipkg" + +#, fuzzy +msgid "Is this setting ok?" +msgstr "วิดีโอโหมดนี้ถูà¸à¸•à¹‰à¸­à¸‡à¸«à¸£à¸·à¸­à¹„ม่?" + +#, fuzzy +msgid "Is this video mode ok?" +msgstr "วิดีโอโหมดนี้ถูà¸à¸•à¹‰à¸­à¸‡à¸«à¸£à¸·à¸­à¹„ม่?" + +msgid "Italian" +msgstr "ภาษาอิตาลี่" + +msgid "Items per page " +msgstr "" + +msgid "Items per page for list screen" +msgstr "" + +#, fuzzy +msgid "Job overview" +msgstr "ดูงาน" + +msgid "Jump to beginning of list" +msgstr "" + +#, fuzzy +msgid "Jump to end of list" +msgstr "ไปส่วนรายà¸à¸²à¸£à¸ªà¸¸à¸”ท้าย" + +#, fuzzy +msgid "Jump to next marked position" +msgstr "ไปส่วนต่อไป" + +#, fuzzy +msgid "Jump to previous marked position" +msgstr "ไปส่วนà¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +#, fuzzy +msgid "Just scale" +msgstr "ขยายเต็มจอ" + +msgid "Keep service" +msgstr "" + +#, fuzzy +msgid "Kernel version: " +msgstr "เวอร์ชั่นใหม่:" + +msgid "Keyboard" +msgstr "à¹à¸›à¹‰à¸™à¸žà¸´à¸¡à¸žà¹Œ" + +#, fuzzy +msgid "Keyboard map" +msgstr "à¸à¸²à¸£à¸§à¸²à¸‡à¹à¸›à¹‰à¸™à¸žà¸´à¸¡à¸žà¹Œ" + +#, fuzzy +msgid "Keyboard setup" +msgstr "ตั้งค่าà¹à¸›à¹‰à¸™à¸žà¸´à¸¡à¸žà¹Œ" + +#, fuzzy +msgid "LAN adapter" +msgstr "à¹à¸¥à¸™à¸­à¸°à¹à¸”๊ปเตอร์" + +msgid "LAN connection" +msgstr "" + +msgid "LNB" +msgstr "LNB" + +msgid "Language" +msgstr "ภาษา" + +msgid "Language selection" +msgstr "เลือà¸à¸ à¸²à¸©à¸²" + +msgid "Last config" +msgstr "ค่าที่ตั้งล่าสุด" + +msgid "Last speed" +msgstr "ความเร็วล่าสุด" + +msgid "Last upgrade: " +msgstr "" + +msgid "Latest Commits" +msgstr "" + +msgid "Latitude" +msgstr "ละติจูด" + +msgid "Latvian" +msgstr "ภาษาลัทเวีย" + +#, fuzzy +msgid "Leave DVD player?" +msgstr "ออà¸à¸ˆà¸²à¸à¸à¸²à¸£à¹€à¸¥à¹ˆà¸™à¸”ีวีดี" + +msgid "Left" +msgstr "ซ้าย" + +msgid "Left from servicename" +msgstr "" + +msgid "Leisure hobbies" +msgstr "" + +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Letterbox" + +msgid "Letterbox zoom" +msgstr "" + +#, fuzzy +msgid "Limit character set for recording filenames" +msgstr "จำà¸à¸±à¸”ความยาวของไฟล์" + +msgid "Limit east" +msgstr "จำà¸à¸±à¸”ทางตะวันออà¸" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "" + +msgid "Limit west" +msgstr "จำà¸à¸±à¸”ทางตะวันตà¸" + +msgid "Limits cancelled" +msgstr "" + +msgid "Limits enabled" +msgstr "" + +msgid "Limits off" +msgstr "ไม่จำà¸à¸±à¸”" + +msgid "Limits on" +msgstr "จำà¸à¸±à¸”ที่" + +#, fuzzy +msgid "Link quality:" +msgstr "คุณภาพà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•à¹ˆà¸­:" + +msgid "Link:" +msgstr "เชื่อมต่อ:" + +msgid "Linked titles with a DVD menu" +msgstr "เชื่อมโดยชื่อเรื่องà¸à¸±à¸šà¹€à¸¡à¸™à¸¹à¸”ีวีดี" + +msgid "List EPG functions..." +msgstr "" + +msgid "List available networks" +msgstr "" + +msgid "List mode" +msgstr "" + +#, fuzzy +msgid "List of storage devices" +msgstr "อุปà¸à¸£à¸“์สำหรับบันทึà¸" + +msgid "List type" +msgstr "" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "" +msgstr[1] "" + +#, fuzzy +msgid "Listen to the radio..." +msgstr "ฟังวิทยุ..." + +msgid "Lists reloaded!" +msgstr "" + +msgid "Lithuanian" +msgstr "ภาษาลิธูเนี่ยน" + +msgid "Load" +msgstr "โหลด" + +msgid "Load Length of Movies in Movielist" +msgstr "" + +#, fuzzy +msgid "Load length of movies in movie list" +msgstr "โหลดความยาวของภาพยนต์" + +#, fuzzy +msgid "Load playlist" +msgstr "โหลดสารบัà¸à¸£à¸²à¸¢à¸à¸²à¸£" + +#, fuzzy +msgid "Local network" +msgstr "Local Network" + +msgid "Location" +msgstr "สถานที่" + +msgid "Location for instant recordings" +msgstr "" + +msgid "Lock ratio" +msgstr "" + +msgid "Lock:" +msgstr "Lock:" + +msgid "Log results to harddisk" +msgstr "บันทึà¸à¸œà¸¥à¸¥à¸±à¸žà¸˜à¹Œà¸¥à¸‡à¸®à¸²à¸£à¹Œà¸”ไดรฟ์" + +msgid "Long filenames" +msgstr "" + +#, fuzzy +msgid "Long key press" +msgstr "à¸à¸”ปุ่มนานนาน" + +msgid "Longitude" +msgstr "ลองจิจูด" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "" + +#, fuzzy +msgid "MMC card" +msgstr "MMC Card" + +msgid "MORE" +msgstr "เพิ่ม" + +msgid "Main menu" +msgstr "เมนูหลัà¸" + +msgid "Maintain old EPG data for" +msgstr "" + +msgid "Make this mark an 'in' point" +msgstr "สร้างตัวคั่นสำหรับจุด 'in'" + +msgid "Make this mark an 'out' point" +msgstr "สร้างตัวคั่นสำหรับจุด 'out'" + +msgid "Make this mark just a mark" +msgstr "ทำเป็นà¹à¸„่ตัวคั่น" + +msgid "Manage extensions" +msgstr "" + +msgid "Manage your receiver's software" +msgstr "จัดà¸à¸²à¸£à¸‹à¸­à¸žà¸—์à¹à¸§à¸£à¹Œà¹€à¸„รื่องรับของท่าน" + +msgid "Manual" +msgstr "" + +msgid "Manual Scan" +msgstr "ค้นหาเอง" + +msgid "Manual configuration" +msgstr "" + +#, fuzzy +msgid "Manual scan" +msgstr "ค้นหาเอง" + +msgid "Manual transponder" +msgstr "ป้อนทรานสปอนเดอร์เอง" + +msgid "Manufacturer" +msgstr "ผู้ผลิต" + +#, fuzzy +msgid "Margin after recording (minutes)" +msgstr "บันทึà¸à¸à¹ˆà¸­à¸™à¹€à¸§à¸¥à¸²à¸ˆà¸£à¸´à¸‡ (นาที)" + +#, fuzzy +msgid "Margin before recording (minutes)" +msgstr "บันทึà¸à¸à¹ˆà¸­à¸™à¹€à¸§à¸¥à¸²à¸ˆà¸£à¸´à¸‡ (นาที)" + +msgid "Max memory positions" +msgstr "" + +#, fuzzy +msgid "Max. bitrate: " +msgstr "บิทเรท:" + +msgid "Media player" +msgstr "เล่นไฟล์" + +#, fuzzy +msgid "Media scanner" +msgstr "เล่นไฟล์" + +msgid "Medium is not a writeable DVD!" +msgstr "à¹à¸œà¹ˆà¸™à¸”ีวีดีนี้เขียนไม่ได้" + +msgid "Medium is not empty!" +msgstr "มีข้อมูลในสื่อบันทึà¸!" + +msgid "Memory" +msgstr "" + +msgid "Memory index" +msgstr "" + +msgid "Menu" +msgstr "เมนู" + +msgid "Message" +msgstr "ข้อความ" + +msgid "Message..." +msgstr "ข้อความ..." + +#, python-format +msgid "Minimum age %d years" +msgstr "" + +msgid "Minimum send interval" +msgstr "" + +msgid "Missing " +msgstr "" + +#, fuzzy +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "โหมด" + +#, fuzzy +msgctxt "Video output mode" +msgid "Mode" +msgstr "โหมด" + +msgid "Model: " +msgstr "รุ่น:" + +msgid "Modulation" +msgstr "Modulation" + +msgid "Modulator" +msgstr "Modulator" + +msgid "Mon" +msgstr "จัน." + +msgid "Mon-Fri" +msgstr "จันทร์-ศุà¸à¸£à¹Œ" + +msgid "Monday" +msgstr "วันจันทร์" + +msgid "Mosquito noise reduction" +msgstr "Mosquito noise reduction" + +msgid "Mount" +msgstr "" + +msgid "Move" +msgstr "" + +#, fuzzy +msgid "Move PiP to main picture" +msgstr "สลับให้ PIP เต็มจอ" + +msgid "Move Picture in Picture" +msgstr "ย้ายภาพซ้อนภาพ" + +msgid "Move east" +msgstr "เคลื่อนไปทางทิศตะวันออà¸" + +msgid "Move to other directory" +msgstr "" + +msgid "Move to position X" +msgstr "" + +msgid "Move west" +msgstr "เคลื่อนไปทางทิศตะวันตà¸" + +msgid "Moved to position 0" +msgstr "" + +msgid "Moved to position at index" +msgstr "" + +msgid "Movement" +msgstr "" + +msgid "Movie List Configuration" +msgstr "" + +msgid "Movie Selection" +msgstr "" + +#, fuzzy +msgid "Movie list configuration" +msgstr "ตั้งค่า Tuner" + +msgid "Movie location" +msgstr "" + +#, fuzzy +msgid "Movie selection" +msgstr "เลือà¸à¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¹€à¸§à¸¥à¸²" + +msgid "Movie/Drama" +msgstr "" + +msgid "Movielist menu" +msgstr "เมนูรายà¸à¸²à¸£à¸ à¸²à¸žà¸¢à¸™à¸•à¹Œ" + +msgid "Moving" +msgstr "" + +msgid "Moving east ..." +msgstr "" + +msgid "Moving to position" +msgstr "" + +msgid "Moving west ..." +msgstr "" + +msgid "Multi EPG" +msgstr "ผังรายà¸à¸²à¸£à¹à¸šà¸šà¸«à¸¥à¸²à¸à¸«à¸¥à¸²à¸¢" + +msgid "Multi-EPG bouquet selection" +msgstr "" + +msgid "Multimedia" +msgstr "มัลติมีเดีย" + +msgid "Multiple service support" +msgstr "รองรับ Multiple service" + +msgid "Multiplex" +msgstr "" + +msgid "Multisat" +msgstr "Multisat" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "" + +msgid "Mute" +msgstr "ปิดเสียง" + +msgid "N/A" +msgstr "ไม่ทราบ" + +msgid "NEXT" +msgstr "ต่อไป" + +msgid "NFI image flashing" +msgstr "" + +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "ลงอิมเมจ NFI เรียบร้อยà¹à¸¥à¹‰à¸§ à¸à¸”ปุ่มเหลืองเพื่อเริ่มระบบใหม่ (Reboot)" + +msgid "NIM" +msgstr "" + +msgid "NOW" +msgstr "ตอนนี้" + +msgid "NTSC" +msgstr "NTSC" + +msgid "Name" +msgstr "ชื่อ" + +msgid "Nameserver" +msgstr "Nameserver" + +#, python-format +msgid "Nameserver %d" +msgstr "Nameserver %d" + +msgid "Nameserver settings" +msgstr "ตั้งค่า Nameserver" + +#, fuzzy +msgid "Nameserver setup" +msgstr "ตั้งค่า Nameserver" + +msgid "Namespace" +msgstr "" + +msgid "Netmask" +msgstr "Netmask" + +msgid "Network" +msgstr "เครือข่าย" + +msgid "Network ID" +msgstr "" + +#, fuzzy +msgid "Network configuration..." +msgstr "ตั้งค่าเครือข่าย..." + +#, fuzzy +msgid "Network mount" +msgstr "Network Mount" + +#, fuzzy, python-format +msgid "Network mount %s" +msgstr "Network Mount" + +msgid "Network name (SSID)" +msgstr "" + +msgid "Network scan" +msgstr "ค้นหาเครือข่าย" + +msgid "Network setup" +msgstr "ตั้งค่าเครือข่าย" + +msgid "Network test" +msgstr "ทดสอบเครือข่าย" + +msgid "Network test..." +msgstr "ทดสอบเครือข่าย..." + +msgid "Network test: " +msgstr "" + +#, fuzzy +msgid "Network wizard" +msgstr "ตัวช่วยเครือข่าย" + +msgid "Network:" +msgstr "เครือข่าย:" + +msgid "New" +msgstr "ใหม่" + +msgid "New PIN" +msgstr "" + +msgid "New version:" +msgstr "เวอร์ชั่นใหม่:" + +msgid "News Current Affairs" +msgstr "" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "" + +msgid "No" +msgstr "ไม่" + +msgid "No (supported) DVDROM found!" +msgstr "ไม่พบดีวีดีรอมที่ใช้งานได้!" + +msgid "No Connection" +msgstr "ไม่พบà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•à¹ˆà¸­" + +msgid "No HDD found or HDD not initialized!" +msgstr "ไม่พบฮาร์ดดิสà¸à¹Œ (HDD) หรือยังไม่ได้เตรียมเพื่อให้ใช้งานได้" + +msgid "No backup needed" +msgstr "ไม่จำเป็นต้องสำรองข้อมูล" + +msgid "No cable tuner found!" +msgstr "" + +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"ไม่พบข้อมูลในทรานสปอนเดอร์!\n" +"(Timeout reading PAT)" + +msgid "No delay" +msgstr "" + +msgid "No description available." +msgstr "ไม่มีรายละเอียดเพิ่มเติม" + +msgid "No details for this image file" +msgstr "ไม่มีรายละเอียดของอิมเมจนี้" + +msgid "No displayable files on this medium found!" +msgstr "ไม่พบชนิดไฟล์ที่สามารถเล่นได้ในสื่อบันทีà¸à¸™à¸µà¹‰!" + +msgid "No event info found, recording indefinitely." +msgstr "ไม่พบข้อมูลเวลาà¸à¸³à¸à¸±à¸š บันทึà¸à¸£à¸²à¸¢à¹‚ดยไม่มีข้อà¸à¸³à¸«à¸™à¸”" + +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "" + +msgid "No free index available" +msgstr "" + +msgid "No free tuner!" +msgstr "ไม่มี Tuner ว่างที่จะใช้งานได้" + +msgid "No network connection available." +msgstr "" + +msgid "No networks found" +msgstr "ไม่พบเครือข่าย" + +msgid "No new plugins found" +msgstr "" + +msgid "No positioner capable frontend found." +msgstr "ไม่พบตัวขับจานที่ใช้ได้" + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "" + +#, fuzzy +msgid "No services/providers selected" +msgstr "ยังไม่ได้เลือà¸à¸šà¸£à¸´à¸à¸²à¸£à¸«à¸£à¸·à¸­à¸œà¸¹à¹‰à¹ƒà¸«à¹‰à¸šà¸£à¸´à¸à¸²à¸£" + +#, fuzzy +msgid "No standby" +msgstr "ไม่ Standby" + +msgid "No suitable sat tuner found!" +msgstr "" + +msgid "No tags are set on these movies." +msgstr "ไม่พบป้ายใดๆ à¸à¸±à¸šà¸ à¸²à¸žà¸¢à¸™à¸•à¹Œà¸Šà¸¸à¸”นี้" + +#, fuzzy +msgid "No timeout" +msgstr "ไม่มีà¸à¸²à¸£à¸«à¸¡à¸”เวลา" + +msgid "No to all" +msgstr "" + +msgid "No transparency" +msgstr "" + +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "ไม่พบ Tuner ใดๆ ที่ใช้à¸à¸±à¸šà¸•à¸±à¸§à¸‚ับจาน!" + +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"ไม่มี Tuner ใดๆ สำหรับใช้งาน!\n" +"à¸à¸£à¸¸à¸“าตั้งค่า Tuner à¹à¸¥à¹‰à¸§à¸—ำà¸à¸²à¸£à¸„้นหารายà¸à¸²à¸£à¸—ี่ให้บริà¸à¸²à¸£à¸à¹ˆà¸­à¸™" + +#, fuzzy +msgid "No updates available" +msgstr " มีรายà¸à¸²à¸£à¸›à¸£à¸±à¸šà¸›à¸£à¸¸à¸‡" + +msgid "No updates available. Please try again later." +msgstr "" + +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"ไม่พบรหัสผ่านใดๆ สำหรับบริà¸à¸²à¸£!\n" +"ท่านต้องà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸•à¸­à¸™à¸™à¸µà¹‰à¹€à¸¥à¸¢à¸«à¸£à¸·à¸­à¹„ม่?\n" +"หาà¸à¸•à¸­à¸š 'ไม่' หมายถืงท่านไม่ต้องà¸à¸²à¸£à¸„วบคุมà¸à¸²à¸£à¸£à¸±à¸šà¸Šà¸¡" + +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"ไม่พบรหัสผ่านสำหรับตั้งค่าเครื่อง!\n" +"ต้องà¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¸£à¸«à¸±à¸ªà¸•à¸­à¸™à¸™à¸µà¹‰à¸«à¸£à¸·à¸­à¹„ม่?\n" +"หาà¸à¸•à¸­à¸š 'ไม่' หมายถึงยà¸à¹€à¸¥à¸´à¸à¸à¸²à¸£à¸›à¹‰à¸­à¸‡à¸à¸±à¸™à¸”้วยรหัสผ่าน" + +msgid "No wireless networks found! Searching..." +msgstr "" + +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"ไม่พบอุปà¸à¸£à¸“์เครือข่าย\n" +"à¸à¸£à¸¸à¸“ตรวจสอบว่าท่านได้เชื่อมต่ออุปà¸à¸£à¸“์à¹à¸¥à¸°à¸•à¸±à¹‰à¸‡à¸„่าที่ถูà¸à¸•à¹‰à¸­à¸‡" + +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"ไม่พบอุปà¸à¸£à¸“์ไร้สาย\n" +"à¸à¸£à¸¸à¸“าตรวจสอบว่า ได้ต่ออุปà¸à¸£à¸“์ไร้สายที่ใช้ WLAN à¹à¸¥à¸°à¹„ด้ตั้งค่าอุปà¸à¸£à¸“์อย่างถูà¸à¸•à¹‰à¸­à¸‡" + +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"ไม่พบอุปà¸à¸£à¸“์ไร้สาย\n" +" à¸à¸£à¸¸à¸“าตรวจสอบว่า ได้ต่ออุปà¸à¸£à¸“์ไร้สายà¹à¸¥à¸°à¸—ำให้ระบบ WLAN พร้อมใช้งานà¹à¸¥à¹‰à¸§" + +msgid "No, but restart from begin" +msgstr "ไม่ - à¸à¸¥à¸±à¸šà¹„ปเริ่มต้นใหม่" + +msgid "No, do nothing." +msgstr "ไม่ - ไม่ต้องà¸à¸²à¸£à¸—ำ" + +msgid "No, just start my receiver" +msgstr "" + +msgid "No, never" +msgstr "" + +msgid "None" +msgstr "ไม่มี" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "ไม่เป็นเส้นตรง" + +msgid "Normal mode" +msgstr "" + +msgid "North" +msgstr "เหนือ" + +msgid "Norwegian" +msgstr "ภาษานอร์เว" + +msgid "Not associated" +msgstr "" + +msgid "Not configured" +msgstr "" + +#, fuzzy, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "เนื้อที่ไม่เพียงพอ ลบไฟล์ที่ไม่ต้องà¸à¸²à¸£à¸­à¸­à¸à¹à¸¥à¹‰à¸§à¸¥à¸­à¸‡à¹ƒà¸«à¸¡à¹ˆ (ต้องà¸à¸²à¸£ %d MB à¹à¸•à¹ˆà¹€à¸«à¸¥à¸·à¸­à¸­à¸¢à¸¹à¹ˆ %d)" + +msgid "Nothing connected" +msgstr "" + +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"ไม่มีรายà¸à¸²à¸£à¹ƒà¸«à¹‰à¸„้นหา\n" +"à¸à¸£à¸¸à¸“าตั้งค่า Tuner à¸à¹ˆà¸­à¸™à¸à¸²à¸£à¸„้นหาช่องรายà¸à¸²à¸£à¹ƒà¸«à¸¡à¹ˆ" + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "" + +#, fuzzy +msgid "Now playing" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¹€à¸¥à¹ˆà¸™" + +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "ตอนนี้.. ให้ปรับความชัดของหน้าจอโดยà¸à¸²à¸£à¹€à¸žà¸´à¹ˆà¸¡à¸„วามสว่างให้มาà¸à¸—ี่สุด à¹à¸•à¹ˆà¸•à¹‰à¸­à¸‡à¹à¸™à¹ˆà¹ƒà¸ˆà¸§à¹ˆà¸²à¹€à¸«à¹‡à¸™à¸„วามà¹à¸•à¸à¸•à¹ˆà¸²à¸‡à¸‚องสีที่สว่างที่สุด หาà¸à¸ˆà¸šà¸à¸£à¸°à¸šà¸§à¸™à¸à¸²à¸£à¹à¸¥à¹‰à¸§à¹ƒà¸«à¹‰à¸à¸”ปุ่ม OK" + +msgid "OK" +msgstr "ตà¸à¸¥à¸‡" + +msgid "OK, guide me through the upgrade process" +msgstr "ตà¸à¸¥à¸‡ - ช่วยà¹à¸™à¸°à¸™à¸³à¸‚ั้นตอนà¸à¸²à¸£à¸›à¸£à¸±à¸šà¸›à¸£à¸¸à¸‡à¸”้วย" + +msgid "ONID" +msgstr "" + +msgid "OSD name request" +msgstr "" + +#, fuzzy +msgid "OSD settings" +msgstr "ตั้งค่า OSD" + +msgid "OSD transparency" +msgstr "" + +msgid "Off" +msgstr "ปิด" + +msgid "Offline decode delay (ms)" +msgstr "" + +msgid "Ok" +msgstr "" + +msgid "On" +msgstr "เปิด" + +msgid "On end of movie" +msgstr "" + +msgid "On end of movie (as menu)" +msgstr "" + +msgid "One" +msgstr "หนึ่ง" + +msgid "Only extensions." +msgstr "" + +#, fuzzy +msgid "Only free scan" +msgstr "ค้นหาเฉพาะรายà¸à¸²à¸£à¸Ÿà¸£à¸µ" + +#, fuzzy +msgid "Open service list" +msgstr "เปิดสารบัà¸à¸šà¸£à¸´à¸à¸²à¸£" + +#, fuzzy +msgid "Open the movie list" +msgstr "à¸à¸¥à¸±à¸šà¹„ปยังสารบัà¸à¸ à¸²à¸žà¸¢à¸™à¸•à¹Œ" + +msgid "Orbital position" +msgstr "" + +msgid "Original" +msgstr "" + +msgid "Other" +msgstr "" + +msgid "Output" +msgstr "" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "" + +#, fuzzy +msgid "Overwrite configuration files?" +msgstr "ตั้งค่า Tuner" + +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "" + +msgid "PIDs" +msgstr "PIDs" + +#, fuzzy +msgid "PIN code needed" +msgstr "ต้องà¸à¸²à¸£à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "" + +msgid "Package list update" +msgstr "ปรับปรุงรายà¸à¸²à¸£à¸‚องส่วนประà¸à¸­à¸š" + +msgid "Packet management" +msgstr "จัดà¸à¸²à¸£à¸ªà¹ˆà¸§à¸™à¸›à¸£à¸°à¸à¸­à¸š" + +msgid "Packet manager" +msgstr "ตัวจัดà¸à¸²à¸£à¸ªà¹ˆà¸§à¸™à¸›à¸£à¸°à¸à¸­à¸š" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +#, fuzzy +msgid "Pan&scan" +msgstr "Pan&Scan" + +#, fuzzy +msgid "Parent directory" +msgstr "โฟล์เดอร์à¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²" + +msgid "Parental control" +msgstr "ควบคุมอายุ" + +#, fuzzy +msgid "Parental control services editor" +msgstr "à¹à¸à¹‰à¹„ขบริà¸à¸²à¸£à¸—ี่ต้องควบคุมอายุผู้ชม" + +msgid "Parental control setup" +msgstr "ตั้งค่าà¸à¸²à¸£à¸„วบคุมอายุ" + +msgid "Parental control type" +msgstr "ชนิดà¸à¸²à¸£à¸„วบคุมอายุ" + +msgid "Password" +msgstr "รหัสผ่าน" + +#, fuzzy +msgid "Pause" +msgstr "หยุดชั่วคราว" + +msgid "Pause movie at end" +msgstr "หยุดà¸à¸²à¸£à¹€à¸¥à¹ˆà¸™à¸Šà¸±à¹ˆà¸§à¸„ราว (Pause) เมื่อเล่นจบ" + +#, fuzzy +msgid "Pause playback" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸à¸¥à¸±à¸šà¸¡à¸²à¹€à¸¥à¹ˆà¸™à¸—ี่เดิม" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "" + +#, fuzzy +msgid "Percentage right" +msgstr "วนขวา" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "" + +msgid "Permanently remove all deleted items" +msgstr "" + +msgid "Persian" +msgstr "" + +msgid "Phone number" +msgstr "เลขหมาย" + +#, fuzzy +msgid "PiP setup" +msgstr "ตั้งค่า PIP" + +msgid "Picon" +msgstr "" + +msgid "Picon and service name" +msgstr "" + +#, fuzzy +msgid "Picture player" +msgstr "ดูภาพ" + +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Pillarbox" + +msgid "Pilot" +msgstr "Pilot" + +msgid "Play" +msgstr "เล่น" + +msgid "Play DVD" +msgstr "เล่นดีวีดี" + +msgid "Play audio in background" +msgstr "" + +#, fuzzy +msgid "Play audio-CD..." +msgstr "เล่นซีดีเสียง..." + +msgid "Play back media files" +msgstr "" + +#, fuzzy +msgid "Play entry" +msgstr "เล่นไฟล์นี้" + +#, fuzzy +msgid "Play from next mark or playlist entry" +msgstr "เล่นไฟล์ต่อไป หรือจาà¸à¸ªà¸²à¸£à¸šà¸±à¸à¸£à¸²à¸¢à¸à¸²à¸£" + +#, fuzzy +msgid "Play from previous mark or playlist entry" +msgstr "เล่นไฟล์à¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²à¸«à¸£à¸·à¸­à¹€à¸¥à¹ˆà¸™à¸ˆà¸²à¸à¸ªà¸²à¸£à¸šà¸±à¸à¸£à¸²à¸¢à¸à¸²à¸£" + +#, fuzzy +msgid "Play music..." +msgstr "เล่นเพลง..." + +msgid "Play next" +msgstr "" + +msgid "Play next (return to movie list)" +msgstr "" + +msgid "Play next (return to previous service)" +msgstr "" + +msgid "Play previous" +msgstr "" + +msgid "Play recorded movies..." +msgstr "เล่นภาพยนต์ที่ได้บันทึà¸à¹„ว้..." + +msgid "Please add titles to the compilation." +msgstr "" + +msgid "Please change recording endtime" +msgstr "à¸à¸£à¸¸à¸“าเปลี่ยนเวลาสิ้นสุดà¸à¸²à¸£à¸šà¸±à¸™à¸—ึà¸à¸£à¸²à¸¢à¸à¸²à¸£" + +msgid "Please check your network settings!" +msgstr "à¸à¸£à¸¸à¸“ตรวจสอบà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าเครือข่าย" + +msgid "Please choose an extension..." +msgstr "à¸à¸£à¸¸à¸“าเลือà¸à¸ªà¹ˆà¸§à¸™à¹€à¸žà¸´à¹ˆà¸¡à¹€à¸•à¸´à¸¡..." + +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"à¸à¸£à¸¸à¸“าป้อนค่าที่จำเป็น à¹à¸¥à¸°à¸•à¸£à¸§à¸ˆà¸ªà¸­à¸šà¸„วามถูà¸à¸•à¹‰à¸­à¸‡à¸‚อง Nameserver\n" +"จาà¸à¸™à¸±à¹‰à¸™à¸à¸”ปุ่ม OK เพื่อทำงานต่อ" + +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"à¸à¸£à¸¸à¸“าตั้งค่าอินเตอร์เน็ตโดยà¸à¸²à¸£à¸›à¹‰à¸­à¸™à¸‚้อมูลที่จำเป็น\n" +"หาà¸à¸›à¹‰à¸­à¸™à¹à¸¥à¹‰à¸§à¹ƒà¸«à¹‰à¸à¸”ปุ่ม OK เพื่อทำงานต่อ" + +msgid "Please connect your receiver to the internet" +msgstr "" + +msgid "Please do not change any values unless you know what you are doing!" +msgstr "ห้ามเปลี่ยนค่าใดๆ หาà¸à¸—่านไม่ทราบความหมาย!" + +msgid "Please enter a name for the new bouquet" +msgstr "à¸à¸£à¸¸à¸“าป้อนชื่อà¸à¸¥à¸¸à¹ˆà¸¡à¸£à¸²à¸¢à¸à¸²à¸£à¹ƒà¸«à¸¡à¹ˆ" + +msgid "Please enter a name for the new marker" +msgstr "à¸à¸£à¸¸à¸“าป้อนชื่อตัวคั่นใหม่" + +msgid "Please enter a new filename" +msgstr "à¸à¸£à¸¸à¸“ป้อนชื่อไฟล์ใหม่" + +msgid "Please enter filename (empty = use current date)" +msgstr "à¸à¸£à¸¸à¸“าป้อนชื่อไฟล์ (เป็นช่องว่าง = ใช้วันที่ปัจจุบันà¹à¸—น)" + +msgid "Please enter name of the new directory" +msgstr "à¸à¸£à¸¸à¸“าป้อนชื่อโฟล์เดอร์ใหม่" + +msgid "Please enter new name:" +msgstr "" + +msgid "Please enter the correct pin code" +msgstr "à¸à¸£à¸¸à¸“าป้อนรหัสที่ถูà¸à¸•à¹‰à¸­à¸‡à¸”้วย" + +msgid "Please enter the old PIN code" +msgstr "" + +msgid "Please follow the instructions on the TV" +msgstr "à¸à¸£à¸¸à¸“าทำตามขั้นตอนที่ปราà¸à¸à¸šà¸™à¸ˆà¸­à¹‚ทรทัศน์" + +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "เนื่องจาà¸à¹„ม่สามารถเข้าถึงสื่อบันทึà¸à¸‚้อมูลที่ท่านเลือà¸à¹„ด้ โฟล์เดอร์เริ่มต้นจะถูà¸à¹€à¸£à¸µà¸¢à¸à¹ƒà¸Šà¹‰à¸‡à¸²à¸™" + +msgid "Please press OK to continue." +msgstr "à¸à¸£à¸¸à¸“าà¸à¸”ปุ่ม OK เพื่อทำงานต่อ" + +msgid "Please select a default EPG type..." +msgstr "" + +msgid "Please select a playlist to delete..." +msgstr "à¸à¸£à¸¸à¸“าเลือà¸à¸ªà¸²à¸£à¸šà¸±à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸—ี่จะลบ..." + +msgid "Please select a playlist..." +msgstr "à¸à¸£à¸¸à¸“าเลือà¸à¸ªà¸²à¸£à¸šà¸±à¸à¸£à¸²à¸¢à¸à¸²à¸£..." + +#, fuzzy +msgid "Please select a sub service..." +msgstr "à¸à¸£à¸¸à¸“าเลือà¸à¸šà¸£à¸´à¸à¸²à¸£à¸¢à¹ˆà¸­à¸¢..." + +msgid "Please select a subservice to record..." +msgstr "à¸à¸£à¸¸à¸“าเลือà¸à¸šà¸£à¸´à¸à¸²à¸£à¸¢à¹ˆà¸­à¸¢à¸—ี่ต้องà¸à¸²à¸£à¸šà¸±à¸™à¸—ึà¸..." + +msgid "Please select a subservice..." +msgstr "à¸à¸£à¸¸à¸“าเลือà¸à¸šà¸£à¸´à¸à¸²à¸£à¸¢à¹ˆà¸­à¸¢..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "" + +#, fuzzy +msgid "Please select medium to be scanned" +msgstr "เลือà¸à¸ªà¸·à¹ˆà¸­à¸šà¸±à¸™à¸—ึà¸à¸—ี่ต้องà¸à¸²à¸£à¸„้นหา..." + +msgid "Please select medium to use as backup location" +msgstr "à¸à¸£à¸¸à¸“าเลือà¸à¸ªà¸·à¹ˆà¸­à¸šà¸±à¸™à¸—ึà¸à¸›à¸¥à¸²à¸¢à¸—างที่จะสำรองข้อมูล" + +msgid "Please select tag to filter..." +msgstr "à¸à¸£à¸¸à¸“าเลือà¸à¸›à¹‰à¸²à¸¢à¸—ี่จะà¸à¸£à¸­à¸‡..." + +msgid "Please select the movie path..." +msgstr "à¸à¸£à¸¸à¸“าเลือà¸à¸•à¸³à¹à¸«à¸™à¹ˆà¸‡à¸‚องภาพยนต์" + +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"เลือà¸à¸­à¸¸à¸›à¸à¸£à¸“์เครือข่ายที่ต้องà¸à¹ƒà¸Šà¹‰à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•à¹ˆà¸­à¸­à¸´à¸™à¹€à¸•à¸­à¸£à¹Œà¹€à¸™à¹‡à¸•\n" +"\n" +"จาà¸à¸™à¸±à¹‰à¸™à¸à¸”ปุ่ม OK เพื่อทำงานต่อ" + +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"à¸à¸£à¸¸à¸“าเลือà¸à¹€à¸„รือข่ายไร้สายที่ต้องà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•à¹ˆà¸­\n" +"\n" +"จาà¸à¸™à¸±à¹‰à¸™à¸à¸”ปุ่ม OK เพื่อทำงานต่อ" + +#, fuzzy +msgid "Please set up tuner A" +msgstr "à¸à¸£à¸¸à¸“าตั้งค่า Tuner B" + +msgid "Please set up tuner B" +msgstr "à¸à¸£à¸¸à¸“าตั้งค่า Tuner B" + +msgid "Please set up tuner C" +msgstr "à¸à¸£à¸¸à¸“าตั้งค่า Tuner C" + +msgid "Please set up tuner D" +msgstr "à¸à¸£à¸¸à¸“าตั้งค่า Tuner D" + +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"ใช้ปุ่มà¸à¸³à¸«à¸™à¸”ทิศทางเพื่อเลื่อนหน้าต่าง PiP \n" +"à¸à¸”ปุ่ม Bouquet +/- เพื่อเปลี่ยนขนาดหน้าต่าง\n" +"à¸à¸”ปุ่ม OK เพื่อดูรายà¸à¸²à¸£à¹‚ทรทัศน์ หรือà¸à¸” EXIT เพื่อยà¸à¹€à¸¥à¸´à¸à¸à¸²à¸£à¸¢à¹‰à¸²à¸¢à¸«à¸™à¹‰à¸²à¸•à¹ˆà¸²à¸‡" + +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "ใช้ปุ่มขึ้นหรือลงเพื่อเลือà¸à¸ à¸²à¸©à¸²à¸—ี่ต้องà¸à¸²à¸£ จาà¸à¸™à¸±à¹‰à¸™à¹ƒà¸«à¹‰à¸à¸”ปุ่ม OK เพื่อเลือà¸" + +msgid "Please wait" +msgstr "" + +#, fuzzy +msgid "Please wait (downloading channel list)" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¹‚หลด... รอสัà¸à¸„รู่..." + +#, fuzzy +msgid "Please wait (downloading softcam)" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¹‚หลด... รอสัà¸à¸„รู่..." + +#, fuzzy +msgid "Please wait (updating packages)" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¹‚หลดภาพ à¸à¸£à¸¸à¸“ารอสัà¸à¸„รู่..." + +msgid "Please wait for activation of your network configuration..." +msgstr "à¸à¸³à¸¥à¸±à¸‡à¹€à¸£à¸´à¹ˆà¸¡à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¹€à¸„รือข่ายที่ตั้ง... à¸à¸£à¸¸à¸“ารอสัà¸à¸„รู่" + +msgid "Please wait while scanning is in progress..." +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸„้นหา... รอสัà¸à¸„รู่" + +msgid "Please wait while we configure your network..." +msgstr "à¸à¸£à¸¸à¸“ารอสัà¸à¸„รู่... à¸à¸³à¸¥à¸±à¸‡à¸•à¸±à¹‰à¸‡à¸„่าเครือข่ายของท่าน" + +msgid "Please wait while we prepare your network interfaces..." +msgstr "à¸à¸£à¸¸à¸“ารอสัà¸à¸„รู่.. à¸à¸³à¸¥à¸±à¸‡à¹€à¸•à¸£à¸µà¸¢à¸¡à¸£à¸°à¸šà¸šà¹€à¸„รือข่าย" + +msgid "Please wait while we test your network..." +msgstr "à¸à¸£à¸¸à¸“ารอสัà¸à¸„รู่... à¸à¸³à¸¥à¸±à¸‡à¸•à¸£à¸§à¸ˆà¸ªà¸­à¸šà¹€à¸„รือข่าย" + +msgid "Please wait while your network is restarting..." +msgstr "à¸à¸£à¸¸à¸“ารอสัà¸à¸„รู่... à¸à¸³à¸¥à¸±à¸‡à¹€à¸£à¸´à¹ˆà¸¡à¸£à¸°à¸šà¸šà¹€à¸„รือข่าย..." + +msgid "Please wait..." +msgstr "à¸à¸£à¸¸à¸“ารอสัà¸à¸„รู่..." + +msgid "Please wait... Loading list..." +msgstr "à¸à¸³à¸¥à¸±à¸‡à¹‚หลด... รอสัà¸à¸„รู่..." + +msgid "Plugin browser" +msgstr "à¹à¸ªà¸”งปลั๊à¸à¸­à¸´à¸™" + +msgid "Plugin manager activity information" +msgstr "ข้อมูลà¸à¸²à¸£à¸—ำงานของตัวจัดà¸à¸²à¸£à¸›à¸¥à¸±à¹Šà¸à¸­à¸´à¸™" + +msgid "Plugin manager help" +msgstr "ช่วยเหลือตัวจัดà¸à¸²à¸£à¸›à¸¥à¸±à¹Šà¸à¸­à¸´à¸™" + +msgid "Plugins" +msgstr "ปลั๊à¸à¸­à¸´à¸™" + +msgid "Polarisation" +msgstr "" + +msgid "Polarisation:" +msgstr "" + +msgid "Polarization" +msgstr "ค่าทิศทาง" + +msgid "Polish" +msgstr "ภาษาโปà¹à¸¥à¸™à¸”์" + +msgid "Port A" +msgstr "พอร์ต A" + +msgid "Port B" +msgstr "พอร์ต B" + +msgid "Port C" +msgstr "พอร์ต C" + +msgid "Port D" +msgstr "พอร์ต D" + +msgid "Portuguese" +msgstr "ภาษาโปตุเà¸à¸ª" + +msgid "Position of completed timers in timerlist" +msgstr "" + +msgid "Position stored at index" +msgstr "" + +msgid "Positioner" +msgstr "ตัวขับจาน" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "" + +msgid "Positioner setup" +msgstr "ตั้งค่าตัวขับจาน" + +msgid "Power threshold in mA" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¹„ฟฟ้า (mA)" + +msgid "Predefined transponder" +msgstr "ทรานสปอนเดอร์ที่ตั้งไว้à¹à¸¥à¹‰à¸§" + +msgid "Prefer AC3 track" +msgstr "" + +msgid "Prefer AC3+ track" +msgstr "" + +msgid "Prefer audio track stored by service" +msgstr "" + +msgid "Prefer graphical DVB subtitles" +msgstr "" + +msgid "Prefer subtitles for hearing impaired" +msgstr "" + +msgid "Prefer subtitles stored by service" +msgstr "" + +msgid "Preferred tuner" +msgstr "" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "" + +msgid "Preparing... Please wait" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¹€à¸•à¸£à¸µà¸¢à¸¡à¸‡à¸²à¸™... รอสัà¸à¸„รู่" + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "" + +msgid "Press MENU on your remote control for additional options." +msgstr "" + +msgid "Press OK on your remote control to continue." +msgstr "à¸à¸”ปุ่ม OK ที่รีโมทเพื่อทำงานต่อ" + +msgid "Press OK to activate the selected skin." +msgstr "à¸à¸”ปุ่ม OK เพื่อเริ่มใช้สà¸à¸´à¸™à¸—ี่เลือà¸à¹„ว้" + +msgid "Press OK to activate the settings." +msgstr "à¸à¸”ปุ่ม OK เพื่อเริ่มใช้งาน" + +msgid "Press OK to edit the settings." +msgstr "à¸à¸”ปุ่ม OK เพื่อà¹à¸à¹‰à¹„ข" + +#, python-format +msgid "Press OK to get further details for %s" +msgstr "à¸à¸”ปุ่ม OK เพื่อดูข้อมูลอื่นของ %s เพิ่มเติม" + +msgid "Press OK to scan" +msgstr "à¸à¸”ปุ่ม OK เพื่อเริ่มค้นหา" + +#, fuzzy +msgid "Press OK to select a provider." +msgstr "à¸à¸”ปุ่ม OK เพื่อเลือà¸à¸œà¸¹à¹‰à¹ƒà¸«à¹‰à¸šà¸£à¸´à¸à¸²à¸£" + +msgid "Press OK to select satellites" +msgstr "" + +msgid "Press OK to select/deselect a CAId." +msgstr "à¸à¸”ปุ่ม OK เพื่อเลือà¸à¸«à¸£à¸·à¸­à¸¢à¸à¹€à¸¥à¸´à¸ CAId" + +msgid "Press OK to start the scan" +msgstr "à¸à¸”ปุ่ม OK เพื่อเริ่มค้นหา" + +msgid "Press OK to toggle the selection" +msgstr "" + +msgid "Press OK to toggle the selection." +msgstr "à¸à¸”ปุ่ม OK เพื่อเปลี่ยน" + +msgid "Press yellow to set this interface as default interface." +msgstr "à¸à¸”ปุ่มเหลืองเพื่อให้อินเตอร์เฟซนี้ค่าเริ่มต้น" + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "" + +msgid "Preview" +msgstr "" + +msgid "Preview menu" +msgstr "เมนูดูตัวอย่าง" + +msgid "Preview selected channel" +msgstr "" + +msgid "Primary DNS" +msgstr "DNS หลัà¸" + +msgid "Priority" +msgstr "สำคัà¸" + +msgid "Process" +msgstr "โพรเซส" + +msgid "Progress" +msgstr "" + +msgid "Progress bar left" +msgstr "" + +msgid "Progress bar right" +msgstr "" + +msgid "Properties of current title" +msgstr "รายละเอียดเรื่องนี้" + +msgid "Protect services" +msgstr "ป้องà¸à¸±à¸™à¸šà¸£à¸´à¸à¸²à¸£" + +msgid "Protect setup" +msgstr "ป้องà¸à¸±à¸™à¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่า" + +msgid "Provider" +msgstr "ผู้ให้บริà¸à¸²à¸£" + +msgid "Provider to scan" +msgstr "ผู้ให้บริà¸à¸²à¸£à¸—ี่จะค้น" + +msgid "Providers" +msgstr "ผู้ให้บริà¸à¸²à¸£" + +msgid "Put TV in standby" +msgstr "" + +msgid "Put receiver in standby" +msgstr "" + +msgid "Python frontend for /tmp/mmi.socket" +msgstr "Python frontend for /tmp/mmi.socket" + +msgid "Quick" +msgstr "เร็ว" + +#, fuzzy +msgid "Quick zap" +msgstr "เปลี่ยนช่องเร็ว (Quickzap)" + +msgid "RF output" +msgstr "RF output" + +msgid "RGB" +msgstr "RGB" + +msgid "Radio" +msgstr "วิทยุ" + +#, fuzzy +msgid "Ram disk" +msgstr "Ram Disk" + +msgid "Random" +msgstr "à¹à¸šà¸šà¸ªà¸¸à¹ˆà¸¡" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "" + +msgid "Rating undefined" +msgstr "" + +msgid "Really close without saving settings?" +msgstr "ยà¸à¹€à¸¥à¸´à¸à¹‚ดยไม่จัดเà¸à¹‡à¸šà¸‚้อมูล?" + +msgid "Really delete done timers?" +msgstr "ต้องà¸à¸²à¸£à¸¥à¸šà¸•à¸²à¸£à¸²à¸‡à¹€à¸§à¸¥à¸²à¸—ี่เสร็จà¹à¸¥à¹‰à¸§à¸«à¸£à¸·à¸­à¹„ม่?" + +msgid "Really exit the subservices quickzap?" +msgstr "ต้องà¸à¸²à¸£à¸­à¸­à¸à¸ˆà¸²à¸à¸ªà¹ˆà¸§à¸™à¸¢à¹ˆà¸­à¸¢à¸‚อง Quickzap หรือไม่?" + +msgid "Really reboot now?" +msgstr "ต้องà¸à¸²à¸£à¸šà¸¹à¸—เครื่องใหม่หรือไม่?" + +msgid "Really restart now?" +msgstr "ต้องà¸à¸²à¸£à¹€à¸£à¸´à¹ˆà¸¡à¸£à¸°à¸šà¸šà¹ƒà¸«à¸¡à¹ˆà¸«à¸£à¸·à¸­à¹„ม่ (Restart)?" + +msgid "Really shutdown now?" +msgstr "ต้องà¸à¸²à¸£à¸›à¸´à¸”เครื่องตอนนี้หรือไม่ (Shutdown)?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "" + +msgid "Reboot" +msgstr "เริ่มระบบใหม่ (Reboot)" + +msgid "Rec" +msgstr "" + +#, fuzzy +msgid "Reception settings" +msgstr "ตั้งค่าà¸à¸²à¸£à¸£à¸±à¸š" + +msgid "Record" +msgstr "บันทึà¸" + +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "à¸à¸²à¸£à¸šà¸±à¸™à¸—ึà¸à¸–ูà¸à¸ˆà¸³à¸à¸±à¸” เนื่องจาà¸à¸‹à¹‰à¸³à¸‹à¹‰à¸­à¸™à¸à¸±à¸š %s" + +msgid "Recorded files..." +msgstr "ชื่อไฟล์ที่บันทึà¸..." + +msgid "Recording" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸šà¸±à¸™à¸—ึà¸à¸£à¸²à¸¢à¸à¸²à¸£" + +msgid "Recording in progress" +msgstr "" + +msgid "Recording paths" +msgstr "" + +msgid "Recording type" +msgstr "" + +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸šà¸±à¸™à¸—ึà¸à¸£à¸²à¸¢à¸à¸²à¸£ (หรือจะบันทึà¸à¹ƒà¸™ 2-3 วินาทีนี้)" + +msgid "Recordings" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸šà¸±à¸™à¸—ึà¸à¸£à¸²à¸¢à¸à¸²à¸£" + +msgid "Recordings always have priority" +msgstr "บันทึà¸à¸£à¸²à¸¢à¸à¸²à¸£à¸ªà¸³à¸„ัà¸à¸¡à¸²à¸à¸à¸§à¹ˆà¸²" + +msgid "Red button..." +msgstr "" + +msgid "Reenter new PIN" +msgstr "" + +#, fuzzy +msgid "Refresh rate" +msgstr "ความถี่หน้าจอ" + +msgid "Refresh rate selection." +msgstr "เลือà¸à¸„วามถี่หน้าจอ" + +msgid "Regard deep standby as standby" +msgstr "" + +msgid "Relative" +msgstr "" + +msgid "Reload" +msgstr "โหลดใหม่" + +msgid "Reload black-/white lists" +msgstr "" + +msgid "Reloading bouquets and services..." +msgstr "" + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "" + +msgid "Remember these settings for each folder" +msgstr "" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "" + +#, fuzzy +msgid "Remote control type" +msgstr "ชนิดà¸à¸²à¸£à¸„วบคุมอายุ" + +#, fuzzy +msgid "Removal has completed." +msgstr "à¸à¸²à¸£à¸¥à¸šà¸¥à¹‰à¸¡à¹€à¸«à¸¥à¸§" + +msgid "Remove" +msgstr "ลบออà¸" + +msgid "Remove a mark" +msgstr "เอาที่คั่นออà¸" + +#, fuzzy +msgid "Remove a nameserver entry" +msgstr "ลบ Nameserver นี้ออà¸" + +#, fuzzy +msgid "Remove bookmark" +msgstr "ลบบุ๊คมาร์ค" + +msgid "Remove completed timers after (days)" +msgstr "" + +msgid "Remove currently selected title" +msgstr "ลบเชื่อเรื่องที่เลือà¸à¸­à¸­à¸" + +msgid "Remove items from trash can after (days)" +msgstr "" + +msgid "Remove plugins" +msgstr "ลบ Plugin ออà¸" + +msgid "Remove title" +msgstr "ลบเรื่อง" + +msgid "Removing" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸¥à¸šà¸­à¸­à¸" + +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "à¸à¸²à¸£à¸¥à¸šà¹‚ฟล์เดอร์ %s ล้มเหลว (อาจมีข้อมูลอยู่)" + +#, fuzzy +msgid "Removing partition table" +msgstr "ลบเรื่อง" + +msgid "Rename" +msgstr "เปลี่ยนชื่อ" + +msgid "Repeat" +msgstr "" + +#, fuzzy +msgid "Repeat type" +msgstr "ทำซ้ำà¹à¸šà¸š" + +msgid "Repeating event currently recording... What do you want to do?" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸šà¸±à¸™à¸—ึà¸à¸£à¸²à¸¢à¸à¸²à¸£à¸‹à¹‰à¸³à¸­à¸¢à¸¹à¹ˆ... ท่านต้องที่จะทำอะไร?" + +msgid "Repeats" +msgstr "ทำซ้ำ" + +msgid "Require authentication for http streams" +msgstr "" + +msgid "Required medium type:" +msgstr "" + +msgid "Rereading partition table" +msgstr "" + +msgid "Reserved" +msgstr "" + +msgid "Reset" +msgstr "ตั้งค่าใหม่" + +msgid "Reset and renumerate title names" +msgstr "ยà¸à¹€à¸¥à¸´à¸à¹à¸¥à¸°à¹€à¸£à¸µà¸¢à¸‡à¸¥à¸³à¸”ับชื่อเรื่องใหม่" + +msgid "Reset playback position" +msgstr "" + +msgid "Reset video enhancement settings to system defaults?" +msgstr "ยà¸à¹€à¸¥à¸´à¸à¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าวิดีโอà¹à¸šà¸šà¸¥à¸°à¹€à¸­à¸µà¸¢à¸”à¹à¸¥à¸°à¸à¸¥à¸±à¸šà¹„ปใช้ค่าเริ่มต้น?" + +msgid "Reset video enhancement settings to your last configuration?" +msgstr "ยà¸à¹€à¸¥à¸´à¸à¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าวิดีโอà¹à¸šà¸šà¸¥à¸°à¹€à¸­à¸µà¸¢à¸”à¹à¸¥à¸°à¸à¸¥à¸±à¸šà¹„ปใช้ค่าà¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²?" + +msgid "Resolution" +msgstr "ความละเอียดจอ" + +msgid "Restart" +msgstr "เริ่มระบบใหม่" + +msgid "Restart GUI now?" +msgstr "เริ่มทำงานใหม่ (GUI) ตอนนี้หรือไม่?" + +msgid "Restart enigma" +msgstr "" + +msgid "Restart network" +msgstr "เริ่มà¸à¸²à¸£à¸—ำงานเครือข่ายใหม่" + +msgid "Restart test" +msgstr "เริ่มทดสอบใหม่" + +msgid "Restart your network connection and interfaces.\n" +msgstr "สั่งให้เชื่อมต่อเครื่องใหม่อีà¸à¸„รั้ง\n" + +msgid "Restore" +msgstr "นำà¸à¸¥à¸±à¸šà¸¡à¸²à¹ƒà¸Šà¹‰" + +msgid "Restore backups" +msgstr "นำสำรองà¸à¸¥à¸±à¸šà¸¡à¸²à¹ƒà¸Šà¹‰" + +msgid "Restore is running..." +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸™à¸³à¸ªà¸³à¸£à¸­à¸‡à¸à¸¥à¸±à¸šà¸¡à¸²à¹ƒà¸Šà¹‰..." + +msgid "Restore system settings" +msgstr "นำสำรองà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าต่างๆ à¸à¸¥à¸±à¸šà¸¡à¸²à¹ƒà¸Šà¹‰" + +#, fuzzy +msgid "Restoring..." +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸šà¸±à¸™à¸—ึà¸à¸£à¸²à¸¢à¸à¸²à¸£..." + +msgid "Resume from last position" +msgstr "เล่นต่อจาà¸à¸•à¸³à¹à¸«à¸™à¹ˆà¸‡à¹€à¸”ิม" + +#, python-format +msgid "Resume position at %s" +msgstr "" + +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸à¸¥à¸±à¸šà¸¡à¸²à¹€à¸¥à¹ˆà¸™à¸—ี่เดิม" + +msgid "Return to movie list" +msgstr "à¸à¸¥à¸±à¸šà¹„ปยังสารบัà¸à¸ à¸²à¸žà¸¢à¸™à¸•à¹Œ" + +msgid "Return to previous service" +msgstr "à¸à¸¥à¸±à¸šà¹„ปยังบริà¸à¸²à¸£à¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +msgid "Rewind speeds" +msgstr "ความเร็วในà¸à¸²à¸£à¸¢à¹‰à¸­à¸™" + +msgid "Rewrap teletext subtitles" +msgstr "" + +msgid "Right" +msgstr "ขวา" + +msgid "Right from servicename" +msgstr "" + +msgid "Roll-off" +msgstr "" + +msgid "Romanian" +msgstr "" + +msgid "Root directory" +msgstr "" + +msgid "Rotor step position:" +msgstr "" + +msgid "Rotor turning speed" +msgstr "ความเร็วในà¸à¸²à¸£à¸«à¸¡à¸¸à¸™à¸‚อง Rotor" + +msgid "Round start time on" +msgstr "" + +msgid "Russian" +msgstr "ภาษารัสเซีย" + +msgid "S-Video" +msgstr "S-Video" + +msgid "SID" +msgstr "" + +msgid "SINGLE LAYER DVD" +msgstr "" + +msgid "SNR" +msgstr "SNR" + +msgid "SNR:" +msgstr "SNR:" + +msgid "SSID:" +msgstr "SSID:" + +msgid "Same resolution as skin" +msgstr "" + +msgid "Sat" +msgstr "เสา." + +msgid "Satellite" +msgstr "ดาวเทียม" + +#, fuzzy +msgid "Satellite dish setup" +msgstr "ตั้งค่าอุปà¸à¸£à¸“์ดาวเทียม" + +msgid "Satellite equipment" +msgstr "" + +#, fuzzy +msgid "Satellite equipment setup" +msgstr "ตั้งค่าอุปà¸à¸£à¸“์ดาวเทียม" + +msgid "Satellite longitude:" +msgstr "" + +msgid "Satellites" +msgstr "ดาวเทียม" + +msgid "Satfinder" +msgstr "ค้นหาดาวเทียม" + +msgid "Sats" +msgstr "ดาว" + +msgid "Saturation" +msgstr "ความอิ่มตัว" + +msgid "Saturday" +msgstr "วันเสาร์" + +msgid "Save" +msgstr "บันทึà¸" + +#, fuzzy +msgid "Save playlist" +msgstr "บันทึà¸à¸ªà¸²à¸£à¸šà¸±à¸à¸£à¸²à¸¢à¸à¸²à¸£" + +msgid "Save timeshift file" +msgstr "" + +msgid "Save timeshift file in movie directory" +msgstr "" + +msgid "Scaler sharpness" +msgstr "Scaler sharpness" + +#, fuzzy +msgid "Scaling mode" +msgstr "Scaling Mode" + +msgid "Scan" +msgstr "" + +msgid "Scan " +msgstr "ค้นหา" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, fuzzy, python-format +msgid "Scan %s" +msgstr "ค้นหา" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, fuzzy, python-format +msgid "Scan %s band" +msgstr "ค้นหา band EU MID" + +msgid "Scan additional SR" +msgstr "ค้นหา additional SR" + +#, fuzzy +msgid "Scan files..." +msgstr "ค้นหาไฟล์..." + +#, fuzzy +msgid "Scan wireless networks" +msgstr "ค้นหาเครือข่ายไร้สาย" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "" + +#, python-format +msgid "Scanning %s..." +msgstr "" + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "" +msgstr[1] "" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "" +msgstr[1] "" + +msgid "Scanning failed!" +msgstr "" + +msgid "Scanning..." +msgstr "" + +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "ค้นหาจาภLamedbs à¹à¸¥à¸°à¹‚ดยเรียงดาวเทียมตามที่ต่อไว้à¸à¸±à¸šà¸•à¸±à¸§à¸‚ับจาน" + +msgid "Search east" +msgstr "ค้นหาทางทิศตะวันออà¸" + +msgid "Search west" +msgstr "ค้นหาทางทิศตะวันตà¸" + +msgid "Searching" +msgstr "" + +msgid "Searching east ..." +msgstr "" + +msgid "Searching for available updates. Please wait..." +msgstr "" + +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸„้นหาส่วนประà¸à¸­à¸šà¹ƒà¸«à¸¡à¹ˆà¸«à¸£à¸·à¸­à¸¥à¸šà¸ªà¹ˆà¸§à¸™à¸›à¸£à¸°à¸à¸­à¸šà¸—ี่ติดตั้งà¹à¸¥à¹‰à¸§ à¸à¸£à¸¸à¸“ารอสัà¸à¸„รู่..." + +msgid "Searching west ..." +msgstr "" + +msgid "Second cable of motorized LNB" +msgstr "" + +msgid "Secondary DNS" +msgstr "DNS สำรอง" + +msgid "Seek" +msgstr "ค้นหา" + +#, fuzzy +msgid "Seek backward" +msgstr "ย้อนหลัง" + +#, fuzzy +msgid "Seek backward (enter time)" +msgstr "ย้อนหลัง (ป้อนเวลา)" + +#, fuzzy +msgid "Seek forward" +msgstr "ข้ามไป" + +#, fuzzy +msgid "Seek forward (enter time)" +msgstr "ข้ามไปข้างหน้า (ป้อนเวลา)" + +msgid "Select" +msgstr "เลือà¸" + +#, fuzzy +msgid "Select CAId" +msgstr "เลือภCAId" + +msgid "Select HDD" +msgstr "เลือà¸à¸®à¸²à¸£à¹Œà¸”ดิสà¸à¹Œ (HDD)" + +#, fuzzy +msgid "Select a bouquet" +msgstr "เลือà¸à¸ à¸²à¸žà¸¢à¸™à¸•à¹Œ" + +msgid "Select a movie" +msgstr "เลือà¸à¸ à¸²à¸žà¸¢à¸™à¸•à¹Œ" + +#, fuzzy +msgid "Select a network adapter" +msgstr "เลือà¸à¸à¸²à¸£à¹Œà¸”เครือข่าย" + +#, fuzzy +msgid "Select a skin" +msgstr "เลือà¸à¸ à¸²à¸žà¸¢à¸™à¸•à¹Œ" + +#, fuzzy +msgid "Select a tuner" +msgstr "เลือà¸à¸ à¸²à¸žà¸¢à¸™à¸•à¹Œ" + +#, fuzzy +msgid "Select a wireless network" +msgstr "เลือà¸à¹€à¸„รือข่ายไร้สาย" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +msgid "Select an image to be downloaded" +msgstr "" + +msgid "Select audio track" +msgstr "เลือà¸à¸Šà¹ˆà¸­à¸‡à¹€à¸ªà¸µà¸¢à¸‡" + +#, fuzzy +msgid "Select backup files" +msgstr "เลือà¸à¹„ฟล์ที่จะสำรอง" + +#, fuzzy +msgid "Select backup location" +msgstr "เลือà¸à¸—ี่ที่จะสำรอง" + +msgid "Select channel to record from" +msgstr "เลือà¸à¸šà¸±à¸™à¸—ึà¸à¸£à¸²à¸¢à¸à¸²à¸£à¸ˆà¸²à¸" + +msgid "Select copy destination for:" +msgstr "" + +msgid "Select default EPG type..." +msgstr "" + +msgid "Select desired image from feed list" +msgstr "" + +msgid "Select destination for:" +msgstr "" + +msgid "Select files for backup." +msgstr "" + +msgid "Select files/folders to backup" +msgstr "เลือà¸à¹„ฟล์/โฟล์เดอร์ที่จะสำรอง" + +msgid "Select input device" +msgstr "" + +msgid "Select input device." +msgstr "" + +msgid "Select interface" +msgstr "เลือà¸à¸­à¸´à¸™à¹€à¸•à¸­à¸£à¹Œà¹€à¸Ÿà¸‹" + +#, fuzzy +msgid "Select location" +msgstr "เลือà¸à¸•à¸³à¹à¸«à¸™à¹ˆà¸‡" + +#, fuzzy +msgid "Select movie" +msgstr "เลือà¸à¸ à¸²à¸žà¸¢à¸™à¸•à¹Œ" + +msgid "Select provider to add..." +msgstr "เลือà¸à¸œà¸¹à¹‰à¹ƒà¸«à¹‰à¸šà¸£à¸´à¸à¸²à¸£à¸—ี่ต้องà¸à¸²à¸£à¹€à¸žà¸´à¹ˆà¸¡..." + +msgid "Select refresh rate" +msgstr "เลือà¸à¸­à¸±à¸•à¸£à¸²à¸à¸²à¸£à¸›à¸£à¸±à¸šà¸«à¸™à¹‰à¸²à¸ˆà¸­" + +msgid "Select satellites" +msgstr "" + +msgid "Select service to add..." +msgstr "เลือà¸à¸šà¸£à¸´à¸à¸²à¸£à¸—ี่ต้องà¸à¸²à¸£à¹€à¸žà¸´à¹ˆà¸¡..." + +msgid "Select sort method:" +msgstr "" + +#, fuzzy +msgid "Select target folder" +msgstr "เลือà¸à¹‚ฟล์เดอร์ปลายทาง" + +#, fuzzy +msgid "Select the movie path" +msgstr "เลือà¸à¸žà¸²à¸˜à¸‚องภาพยนต์" + +#, fuzzy +msgid "Select upgrade source" +msgstr "เลือà¸à¸—ี่มาเพื่อปรับปรุง" + +msgid "Select upgrade source to edit." +msgstr "เลือà¸à¸—ี่มาเพื่อปรับปรุง" + +msgid "Select video input with up/down buttons" +msgstr "เลือà¸à¸Šà¹ˆà¸­à¸‡à¸•à¹ˆà¸­à¸ªà¸±à¸à¸à¸²à¸“วิดีโอโดยà¸à¸”ปุ่มขึ้น/ลง" + +msgid "Select video mode" +msgstr "เลือà¸à¹‚หมดวีดีโอ" + +msgid "Select wireless network" +msgstr "เลือà¸à¹€à¸„รือข่ายไร้สาย" + +msgid "Select your provider, and press OK to start the scan" +msgstr "" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +msgid "Send DiSEqC only on satellite change" +msgstr "ส่งคำสั่ง DiSEqC เฉพาะตอนเปลี่ยนช่อง" + +msgid "Separate titles with a main menu" +msgstr "à¹à¸¢à¸à¹€à¸£à¸·à¹ˆà¸­à¸‡à¸™à¸µà¹‰à¸­à¸­à¸à¸ˆà¸²à¸à¹€à¸¡à¸™à¸¹à¸«à¸¥à¸±à¸" + +msgid "Sequence repeat" +msgstr "Sequence repeat" + +msgid "Serbian" +msgstr "ภาษาเซอร์เบี่ยน" + +msgid "Service" +msgstr "บริà¸à¸²à¸£" + +msgid "Service has been added to the favourites." +msgstr "บริà¸à¸²à¸£à¸™à¸µà¹‰à¸–ูà¸à¹€à¸žà¸´à¹ˆà¸¡à¹€à¸‚้ารายà¸à¸²à¸£à¹‚ปรดà¹à¸¥à¹‰à¸§" + +msgid "Service has been added to the selected bouquet." +msgstr "บริà¸à¸²à¸£à¸™à¸µà¹‰à¸–ูà¸à¹€à¸žà¸´à¹ˆà¸¡à¹€à¸‚้าà¸à¸¥à¸¸à¹ˆà¸¡à¸£à¸²à¸¢à¸à¸²à¸£à¹à¸¥à¹‰à¸§" + +#, fuzzy +msgid "Service info" +msgstr "รายละเอียดของบริà¸à¸²à¸£" + +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"บริà¸à¸²à¸£à¸™à¸µà¹‰à¹„ม่ถูà¸à¸•à¹‰à¸­à¸‡!\n" +"(Timeout reading PMT)" + +#, fuzzy +msgid "Service name" +msgstr "ค้นหาบริà¸à¸²à¸£" + +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"ไม่พบบริà¸à¸²à¸£à¹ƒà¸”ๆ !\n" +"(ไม่พบ SID ใน PAT)" + +msgid "Service reference" +msgstr "" + +msgid "Service scan" +msgstr "ค้นหาบริà¸à¸²à¸£" + +#, fuzzy +msgid "Service searching" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸„้นหาบริà¸à¸²à¸£" + +#, fuzzy +msgid "Service title mode" +msgstr "เลือà¸à¹‚หมดวีดีโอ" + +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"ไม่พบบริà¸à¸²à¸£à¸™à¸µà¹‰!\n" +"à¸à¸£à¸¸à¸“าตรวจสอบà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่า Tuner" + +msgid "Services" +msgstr "บริà¸à¸²à¸£à¸•à¹ˆà¸²à¸‡à¹†" + +msgid "Set default" +msgstr "" + +#, fuzzy +msgid "Set end time" +msgstr "เวลาสิ้นสุด" + +msgid "Set fixed" +msgstr "" + +msgid "Set fps for external subtitles" +msgstr "" + +msgid "Set interface as default Interface" +msgstr "ตั้งให้อินเตอร์เฟซนี้เป็นค่าเริ่มต้น" + +msgid "Set limits" +msgstr "" + +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "" + +msgid "Set time window to 1 hour" +msgstr "" + +msgid "Set time window to 2 hours" +msgstr "" + +msgid "Set time window to 3 hours" +msgstr "" + +msgid "Set time window to 4 hours" +msgstr "" + +msgid "Set time window to 5 hours" +msgstr "" + +msgid "Set time window to 6 hours" +msgstr "" + +#, fuzzy +msgid "Set voltage and 22KHz" +msgstr "ตั้งค่า Voltage à¹à¸¥à¸° 22KHz" + +msgid "Settings" +msgstr "à¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่า" + +msgid "Setup" +msgstr "ตั้งค่า" + +msgid "Setup menu" +msgstr "" + +#, fuzzy +msgid "Setup mode" +msgstr "โหมดà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่า" + +msgid "Setup your positioner" +msgstr "" + +#, fuzzy +msgid "Setup your satellite equipment" +msgstr "ตั้งค่าอุปà¸à¸£à¸“์ดาวเทียม" + +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "" + +msgid "Sharpness" +msgstr "ความคม" + +msgid "Short filenames" +msgstr "" + +msgid "Show EIT now/next in infobar" +msgstr "" + +#, fuzzy +msgid "Show EPG for current channel..." +msgstr "à¹à¸ªà¸”งà¹à¸–บรายà¸à¸²à¸£à¹€à¸¡à¸·à¹ˆà¸­à¸¡à¸µà¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¸£à¸²à¸¢à¸à¸²à¸£" + +#, fuzzy +msgid "Show EPG..." +msgstr "à¹à¸ªà¸”งผังรายà¸à¸²à¸£ (EPG)" + +msgid "Show Games show" +msgstr "" + +msgid "Show SNR percentage instead of dB value" +msgstr "" + +msgid "Show VCR scart on main menu" +msgstr "" + +#, fuzzy +msgid "Show WLAN status" +msgstr "à¹à¸ªà¸”งสถานะของ WLAN" + +msgid "Show animation while busy" +msgstr "" + +#, fuzzy +msgid "Show background in radio mode" +msgstr "รูปพื้นหลัง" + +msgid "Show bouquet selection menu" +msgstr "" + +msgid "Show busy indicator when the system is busy." +msgstr "" + +msgid "Show channel numbers in channel selection" +msgstr "" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "" + +msgid "Show detailed event info" +msgstr "" + +#, fuzzy +msgid "Show event details" +msgstr "à¹à¸ªà¸”งรายละเอียดรายà¸à¸²à¸£" + +msgid "Show event-progress in channel selection" +msgstr "" + +#, fuzzy +msgid "Show extended description" +msgstr "à¹à¸ªà¸”งคำอธิบายรายà¸à¸²à¸£à¹€à¸žà¸´à¹ˆà¸¡à¹€à¸•à¸´à¸¡" + +#, fuzzy +msgid "Show extensions..." +msgstr "ดูส่วนเพิ่มเติม..." + +msgid "Show icon for new/unseen items" +msgstr "" + +msgid "Show in extensions menu" +msgstr "" + +#, fuzzy +msgid "Show info" +msgstr "à¹à¸ªà¸”งข้อมูล" + +#, fuzzy +msgid "Show info line" +msgstr "à¹à¸ªà¸”ง Infoline" + +msgid "Show infobar on channel change" +msgstr "à¹à¸ªà¸”งà¹à¸–บรายà¸à¸²à¸£à¹€à¸¡à¸·à¹ˆà¸­à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¸Šà¹ˆà¸­à¸‡" + +msgid "Show infobar on event change" +msgstr "à¹à¸ªà¸”งà¹à¸–บรายà¸à¸²à¸£à¹€à¸¡à¸·à¹ˆà¸­à¸¡à¸µà¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¸£à¸²à¸¢à¸à¸²à¸£" + +msgid "Show infobar on skip forward/backward" +msgstr "à¹à¸ªà¸”งà¹à¸–บรายà¸à¸²à¸£à¹€à¸¡à¸·à¹ˆà¸­à¹€à¸¥à¸·à¸­à¸à¹€à¸”ินหน้า/ถอยหลัง" + +msgid "Show latest commits on sourceforge" +msgstr "" + +#, fuzzy +msgid "Show message when recording starts" +msgstr "à¹à¸ªà¸”งข้อความเริ่มเมื่อบับทึà¸à¸£à¸²à¸¢à¸à¸²à¸£" + +#, fuzzy +msgid "Show movie lengths in movielist" +msgstr "โหลดความยาวของภาพยนต์" + +msgid "Show multi channel EPG" +msgstr "" + +msgid "Show picons in channel list" +msgstr "" + +msgid "Show positioner movement" +msgstr "à¹à¸ªà¸”งตำà¹à¸«à¸™à¹ˆà¸‡à¸•à¸±à¸§à¸‚ับจาน" + +msgid "Show screensaver" +msgstr "" + +msgid "Show second infobar" +msgstr "" + +msgid "Show service type icons" +msgstr "" + +msgid "Show services beginning with" +msgstr "à¹à¸ªà¸”งบริà¸à¸²à¸£à¸—ี่เริ่มต้นด้วย" + +#, fuzzy +msgid "Show shutdown menu" +msgstr "à¹à¸ªà¸”งเมนูปิดเครื่อง" + +msgid "Show single service EPG" +msgstr "" + +msgid "Show status icons in Movielist" +msgstr "" + +msgid "Show status icons in movie list" +msgstr "" + +msgid "Show status icons in movielist" +msgstr "" + +#, fuzzy +msgid "Show tag menu" +msgstr "à¹à¸ªà¸”งเมนูป้าย" + +msgid "Show the radio player..." +msgstr "à¹à¸ªà¸”งเครื่องเล่นวิทยุ..." + +msgid "Show the tv player..." +msgstr "à¹à¸ªà¸”งเครื่องเล่นโทรทัศน์..." + +msgid "Show warning when timeshift is stopped" +msgstr "" + +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "à¹à¸ªà¸”งสถานะà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•à¹ˆà¸­à¹€à¸„รือข่ายไร้สาย\n" + +#, fuzzy +msgid "Shuffle playlist" +msgstr "สลับรายà¸à¸²à¸£à¹ƒà¸™à¸ªà¸²à¸£à¸šà¸±à¸" + +msgid "Shutdown" +msgstr "" + +msgid "Shutdown when in Standby" +msgstr "" + +msgid "Side by side" +msgstr "" + +msgid "Signal OK, proceeding" +msgstr "" + +msgid "Signal quality" +msgstr "" + +#, fuzzy +msgid "Signal strength:" +msgstr "ความเข้มสัà¸à¸à¸²à¸“:" + +msgid "Signal: " +msgstr "สัà¸à¸à¸²à¸“:" + +msgid "Similar" +msgstr "เหมือน" + +msgid "Similar broadcasts:" +msgstr "ออà¸à¸­à¸²à¸à¸²à¸¨à¸‹à¹‰à¸³:" + +msgid "Simple" +msgstr "à¹à¸šà¸šà¸‡à¹ˆà¸²à¸¢" + +msgid "Simple titleset (compatibility for legacy players)" +msgstr "ใช้ชื่อเรื่องà¹à¸šà¸šà¸‡à¹ˆà¸²à¸¢ (ใช้ได้à¸à¸±à¸šà¹€à¸„รื่องเล่นรุ่นเà¸à¹ˆà¸²)" + +msgid "Single" +msgstr "เดี่ยว" + +msgid "Single EPG" +msgstr "ผังรายà¸à¸²à¸£à¹€à¸”ี่ยว" + +msgid "Single satellite" +msgstr "ดาวเทียวเดียว" + +#, fuzzy +msgid "Single step (GOP)" +msgstr "Singlestep (GOP)" + +msgid "Single transponder" +msgstr "ทรานสปอนเดอร์เดียว" + +msgid "Site latitude" +msgstr "" + +msgid "Site longitude" +msgstr "" + +msgid "Skin" +msgstr "สà¸à¸´à¸™" + +msgid "Skins" +msgstr "สà¸à¸´à¸™" + +#, fuzzy +msgid "Skip empty services" +msgstr "ป้องà¸à¸±à¸™à¸šà¸£à¸´à¸à¸²à¸£" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "" + +#, fuzzy +msgid "Sleep timer" +msgstr "ตั้งเวลาปิดเครื่อง" + +msgid "SleepTimer Configuration" +msgstr "" + +msgid "Sleeptimer" +msgstr "" + +#, fuzzy +msgid "Slide picture in loop" +msgstr "วนภาพไปเรื่อยๆ" + +#, fuzzy +msgid "Slide show interval (sec.)" +msgstr "ความเร็วของสไลด์ (วินาที)" + +#, python-format +msgid "Slot %d" +msgstr "ช่อง %d" + +msgid "Slovak" +msgstr "" + +msgid "Slovenian" +msgstr "ภาษาสโลเวเนี่ยน" + +msgid "Slow" +msgstr "ช้า" + +#, fuzzy +msgid "Slow motion speeds" +msgstr "ระดับของความช้า" + +#, fuzzy +msgid "Small progress" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸—ำงาน" + +msgid "Social/Political/Economics" +msgstr "" + +msgid "SoftCam / CI" +msgstr "" + +#, fuzzy +msgid "Softcam type" +msgstr "ซอพท์à¹à¸§à¸£à¹Œ" + +msgid "Software" +msgstr "ซอพท์à¹à¸§à¸£à¹Œ" + +msgid "Software management" +msgstr "" + +msgid "Software manager setup" +msgstr "" + +msgid "Software restore" +msgstr "นำสำรองà¸à¸¥à¸±à¸šà¸¡à¸²à¹ƒà¸Šà¹‰" + +msgid "Software update" +msgstr "ปรับปรุงซอพท์à¹à¸§à¸£à¹Œ" + +msgid "Softwaremanager information" +msgstr "" + +msgid "Some plugins are not available:\n" +msgstr "Plugin บางตัวยังไม่สามารถใช้งานได้:\n" + +#, fuzzy, python-format +msgid "Sorry, %s has not been installed!" +msgstr "ท่านยังไม่ได้ติดตั้งตัว MediaScanner!" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "" + +#, fuzzy +msgid "Sorry, no backups found!" +msgstr "ไม่พบชุดสำรองข้อมูล" + +#, fuzzy +msgid "Sorry, no details available!" +msgstr "ไม่พบรายละเอียดที่ต้องà¸à¸²à¸£" + +#, fuzzy +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"ปลายทางที่เลือà¸à¹„ม่สามารถบันทืà¸à¹„ด้\n" +"à¸à¸£à¸¸à¸“าเลือà¸à¹à¸«à¸¥à¹ˆà¸‡à¸­à¸·à¹ˆà¸™" + +msgid "Sort" +msgstr "" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "เรียง A-Z" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +#, fuzzy +msgid "Sort time" +msgstr "จัดเรียงเวลา" + +msgid "Sound" +msgstr "เสียง" + +#, fuzzy +msgid "Sound carrier" +msgstr "Soundcarrier" + +msgid "Source request" +msgstr "" + +msgid "South" +msgstr "ทิศใต้" + +msgid "Spanish" +msgstr "ภาษาสเปน" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +msgid "Split preview mode" +msgstr "à¹à¸¢à¸à¹‚หมดตัวอย่าง" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "" + +#, fuzzy +msgid "Standard" +msgstr "มาตรà¸à¸²à¸™" + +msgid "Standart list" +msgstr "" + +msgid "Standby" +msgstr "Standby" + +#, fuzzy +msgid "Standby / restart" +msgstr "ปิดเครื่อง" + +msgid "Standby after current event" +msgstr "" + +#, python-format +msgid "Standby fan %d PWM" +msgstr "" + +#, python-format +msgid "Standby fan %d voltage" +msgstr "" + +msgid "Standby in " +msgstr "" + +msgid "StandbyLED" +msgstr "" + +msgid "Start from the beginning" +msgstr "เริ่มตั้งà¹à¸•à¹ˆà¸•à¹‰à¸™" + +msgid "Start offline decode" +msgstr "" + +msgid "Start recording?" +msgstr "เริ่มบันทึà¸?" + +msgid "Start test" +msgstr "เริ่มทดสอบ" + +#, fuzzy +msgid "Start time" +msgstr "เวลาเริ่ม" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +#, fuzzy +msgid "Start timeshift" +msgstr "เริ่มควบคุมรายà¸à¸²à¸£à¸ªà¸”" + +msgid "Start with list screen" +msgstr "" + +msgid "Starting on" +msgstr "เริ่มตอน" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +msgid "Step east" +msgstr "ไปทางทิศตะวันออà¸" + +msgid "Step west" +msgstr "ไปทางทิศตะวันตà¸" + +msgid "Stepped east" +msgstr "" + +msgid "Stepped west" +msgstr "" + +msgid "Stop" +msgstr "หยุด" + +#, fuzzy +msgid "Stop PiP" +msgstr "ยà¸à¹€à¸¥à¸´à¸à¸ à¸²à¸žà¸‹à¹‰à¸­à¸™à¸ à¸²à¸ž" + +msgid "Stop current event and disable coming events" +msgstr "หยุดรายà¸à¸²à¸£à¸›à¸±à¸ˆà¸ˆà¸¸à¸šà¸±à¸™ à¹à¸¥à¸°à¹„ม่ให้รายà¸à¸²à¸£à¸•à¹ˆà¸­à¹„ปทำงาน" + +msgid "Stop current event but not coming events" +msgstr "หยุดรายà¸à¸²à¸£à¸›à¸±à¸ˆà¸ˆà¸¸à¸šà¸±à¸™ à¹à¸•à¹ˆà¹„ม่หยุดà¸à¸±à¸šà¸£à¸²à¸¢à¸à¸²à¸£à¸•à¹ˆà¸­à¹„ป" + +#, fuzzy +msgid "Stop entry" +msgstr "เลิà¸à¸›à¹‰à¸­à¸™" + +msgid "Stop playing this movie?" +msgstr "หยุดเล่นภาพยนต์นี้หรือไม่?" + +msgid "Stop recording" +msgstr "" + +msgid "Stop recording and delete" +msgstr "" + +msgid "Stop service on return to movie list" +msgstr "" + +msgid "Stop test" +msgstr "หยุดทดสอบ" + +msgid "Stop testing plane after # failed transponders" +msgstr "หยุดทดสอบà¹à¸™à¸§à¹€à¸¡à¸·à¹ˆà¸­à¸¡à¸µ # ทรานสปอนเดอร์ ไม่ผ่านà¸à¸²à¸£à¸—ดสอบ" + +msgid "Stop testing plane after # successful transponders" +msgstr "หยุดà¸à¸²à¸£à¸•à¸£à¸§à¸ˆà¸ªà¸­à¸šà¹à¸™à¸§à¹€à¸¡à¸·à¹ˆà¸­à¸žà¸š # ทรานสปอนเดอร์" + +msgid "Stop timer recording" +msgstr "" + +#, fuzzy +msgid "Stop timeshift" +msgstr "หยุดควบคุมรายà¸à¸²à¸£à¸ªà¸”" + +#, fuzzy +msgid "Stop timeshift?" +msgstr "หยุดควบคุมรายà¸à¸²à¸£à¸ªà¸”?" + +msgid "Stopped" +msgstr "" + +msgid "Store at index" +msgstr "" + +msgid "Store position" +msgstr "บันทึà¸à¸•à¸³à¹à¸«à¸™à¹ˆà¸‡" + +msgid "Stored position" +msgstr "บันทึà¸à¸•à¸³à¹à¸«à¸™à¹ˆà¸‡à¹à¸¥à¹‰à¸§" + +msgid "Stream" +msgstr "" + +msgid "Stream request" +msgstr "" + +msgid "Strongest position" +msgstr "" + +msgid "Subservice list..." +msgstr "บริà¸à¸²à¸£à¸¢à¹ˆà¸­à¸¢..." + +msgid "Subservices" +msgstr "บริà¸à¸²à¸£à¸¢à¹ˆà¸­à¸¢" + +msgid "Subtitle Quickmenu" +msgstr "" + +#, fuzzy +msgid "Subtitle alignment" +msgstr "เลือà¸à¸‹à¸±à¸šà¹„ตเติ้ล" + +msgid "Subtitle border width" +msgstr "" + +msgid "Subtitle delay when timing is bad" +msgstr "" + +msgid "Subtitle delay when timing lacks" +msgstr "" + +#, fuzzy +msgid "Subtitle font size" +msgstr "ซับไตเติ้ล" + +msgid "Subtitle language selection 1" +msgstr "" + +msgid "Subtitle language selection 2" +msgstr "" + +msgid "Subtitle language selection 3" +msgstr "" + +msgid "Subtitle language selection 4" +msgstr "" + +#, fuzzy +msgid "Subtitle position" +msgstr "เลือà¸à¸‹à¸±à¸šà¹„ตเติ้ล" + +msgid "Subtitle selection" +msgstr "เลือà¸à¸‹à¸±à¸šà¹„ตเติ้ล" + +msgid "Subtitle selection..." +msgstr "" + +msgid "Subtitle settings" +msgstr "" + +msgid "Subtitles" +msgstr "ซับไตเติ้ล" + +msgid "Sun" +msgstr "อา." + +msgid "Sunday" +msgstr "วันอาทิตย์" + +#, fuzzy +msgid "Swap PiP and main picture" +msgstr "สลับภาพรายà¸à¸²à¸£" + +#, fuzzy +msgid "Swap services" +msgstr "สลับบริà¸à¸²à¸£" + +msgid "Swedish" +msgstr "ภาษาสวีเดน" + +msgid "Switch TV to correct input" +msgstr "" + +msgid "Switch between filelist/playlist" +msgstr "" + +msgid "Switch between normal mode and list mode" +msgstr "" + +msgid "Switch to HDMI in mode" +msgstr "" + +#, fuzzy +msgid "Switch to filelist" +msgstr "เข้าสู่สารบัà¸à¹„ฟล์" + +msgid "Switch to next channel" +msgstr "" + +#, fuzzy +msgid "Switch to next channel in history" +msgstr "รายà¸à¸²à¸£à¸•à¹ˆà¸­à¹„ปในหน่วยความจำ" + +#, fuzzy +msgid "Switch to next sub service" +msgstr "ไปบริà¸à¸²à¸£à¸¢à¹ˆà¸­à¸¢à¸–ัดไป" + +#, fuzzy +msgid "Switch to playlist" +msgstr "เข้าสู่สารบัà¸à¸£à¸²à¸¢à¸à¸²à¸£" + +#, fuzzy +msgid "Switch to previous channel" +msgstr "ไปบริà¸à¸²à¸£à¸¢à¹ˆà¸­à¸¢à¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²" + +#, fuzzy +msgid "Switch to previous channel in history" +msgstr "รายà¸à¸²à¸£à¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²à¸—ี่จำไว้" + +#, fuzzy +msgid "Switch to previous sub service" +msgstr "ไปบริà¸à¸²à¸£à¸¢à¹ˆà¸­à¸¢à¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²" + +msgid "Switchable tuner types:" +msgstr "" + +msgid "Symbol rate" +msgstr "" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "" + +msgid "System" +msgstr "ระบบ" + +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "TRANSLATOR_INFO" + +msgid "TS file is too large for ISO9660 level 1!" +msgstr "ชื่อไฟล์ TS ยาวเà¸à¸´à¸™à¹„ปสำหรับ ISO9660 level 1!" + +msgid "TSID" +msgstr "" + +msgid "TV physical address report" +msgstr "" + +msgid "TXT PID" +msgstr "" + +#, fuzzy +msgid "Table of contents for collection" +msgstr "สารบัà¸à¸‚องคอลเล็คชั่น" + +msgid "Tags" +msgstr "ป้าย" + +msgid "Teletext subtitle color" +msgstr "" + +#, fuzzy +msgid "Temperature and fan control" +msgstr "ควบคุมอายุ" + +msgid "Terrestrial" +msgstr "ภาคพื้นดิน" + +msgid "Terrestrial provider" +msgstr "ผู้ให้บริà¸à¸²à¸£à¸ à¸²à¸„พื้นดิน" + +msgid "Test DiSEqC settings" +msgstr "ทดสอบà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่า DiSEqC" + +msgid "Test mode" +msgstr "โหมดทดสอบ" + +msgid "Test the network configuration of your receiver.\n" +msgstr "" + +#, fuzzy +msgid "Test type" +msgstr "ประเภทà¸à¸²à¸£à¸—ดสอบ" + +#, fuzzy +msgid "Text color" +msgstr "สีตัวอัà¸à¸©à¸£" + +msgid "Thai" +msgstr "" + +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"ขอบคุณที่ท่านใช้บริà¸à¸²à¸£à¸•à¸±à¸§à¸Šà¹ˆà¸§à¸¢à¸•à¸´à¸”ตั้ง\n" +"à¸à¸£à¸¸à¸“าà¸à¸”ปุ่ม OK เพื่อทำงานต่อ" + +#, fuzzy +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"ขอบคุณที่ท่านใช้บริà¸à¸²à¸£à¸•à¸±à¸§à¸Šà¹ˆà¸§à¸¢à¸•à¸´à¸”ตั้ง\n" +"à¸à¸£à¸¸à¸“าà¸à¸”ปุ่ม OK เพื่อทำงานต่อ" + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "" + +msgid "The PIN code has been changed successfully." +msgstr "" + +msgid "The PIN codes you entered are different." +msgstr "" + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" + +msgid "The backup failed. Please choose a different backup location." +msgstr "à¸à¸²à¸£à¸ªà¸³à¸£à¸­à¸‡à¸‚้อมูลล้มเหลว à¸à¸£à¸¸à¸“าเลือà¸à¹à¸«à¸¥à¹ˆà¸‡à¸ˆà¸±à¸”เà¸à¹‡à¸šà¸‚้อมูลอื่น" + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" + +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" + +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"พบอุปà¸à¸£à¸“์ดังนี้:\n" +"\n" +"%s\n" +"\n" +"ท่านต้องà¸à¸²à¸£à¸—ี่จะเขียน USB flasher ลงเมโมรี่นี้หรือไม่?" + +msgid "The following files were found..." +msgstr "พบไฟล์เหล่านี้..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "" + +#, fuzzy +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "ยังไม่ได้ติดตั้งปลั๊à¸à¸­à¸´à¸™à¸ªà¸³à¸«à¸£à¸±à¸šà¹€à¸„รือข่ายไร้สาย à¸à¸£à¸¸à¸“าติดตั้งà¸à¹ˆà¸­à¸™" + +#, python-format +msgid "The path %s already exists." +msgstr "พาธ %s นี้มีà¹à¸¥à¹‰à¸§à¹ƒà¸™à¸£à¸°à¸šà¸š" + +msgid "The pin code you entered is wrong." +msgstr "รหัสที่ป้อนผิด" + +#, python-format +msgid "The results have been written to %s." +msgstr "ผลลัพธ์ถูà¸à¹€à¸‚ียนลง %s." + +msgid "The sleep timer has been activated." +msgstr "เวลาปิดเครื่องเริ่มทำงานà¹à¸¥à¹‰à¸§" + +msgid "The sleep timer has been disabled." +msgstr "เวลาปิดเครื่องถูà¸à¸¢à¸à¹€à¸¥à¸´à¸à¹à¸¥à¹‰à¸§" + +#, fuzzy +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "ยังไม่ได้ติดตั้งปลั๊à¸à¸­à¸´à¸™à¸ªà¸³à¸«à¸£à¸±à¸šà¹€à¸„รือข่ายไร้สาย à¸à¸£à¸¸à¸“าติดตั้งà¸à¹ˆà¸­à¸™" + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "" + +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "ไฟล์ข้อมูลà¸à¸²à¸£à¸•à¸²à¸£à¸²à¸‡à¹€à¸§à¸¥à¸² (timers.xml) เสียหาย ไม่โหลดได้" + +#, fuzzy +msgid "The user interface of your receiver is restarting" +msgstr "à¸à¸£à¸¸à¸“ารอสัà¸à¸„รู่... à¸à¸³à¸¥à¸±à¸‡à¹€à¸£à¸´à¹ˆà¸¡à¸£à¸°à¸šà¸šà¹€à¸„รือข่าย..." + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"ยังไม่ได้ติดตั้งปลั๊à¸à¸­à¸´à¸™à¸ªà¸³à¸«à¸£à¸±à¸šà¹€à¸„รือข่ายไร้สาย\n" +"à¸à¸£à¸¸à¸“าติดตั้งà¸à¹ˆà¸­à¸™ ทั้งนี้à¸à¸£à¸¸à¸“าเลือà¸à¸§à¹ˆà¸² ท่านจะทำอะไรต่อไป" + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "ยังไม่ได้ติดตั้งปลั๊à¸à¸­à¸´à¸™à¸ªà¸³à¸«à¸£à¸±à¸šà¹€à¸„รือข่ายไร้สาย à¸à¸£à¸¸à¸“าติดตั้งà¸à¹ˆà¸­à¸™" + +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "ตัวช่วยเหลือสามารถสำรองข้อมูลà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าให้ท่านได้ ท่านต้องà¸à¸²à¸£à¸—ี่จะสำรองข้อมูลตอนนี้หรือไม่?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "" + +msgid "The wizard is finished now." +msgstr "จบà¸à¸²à¸£à¸—ำงานของตัวช่วยเหลือ" + +msgid "There are at least " +msgstr "อย่างน้อยต้องมี" + +#, fuzzy, python-format +msgid "There are at least %s updates available." +msgstr " มีรายà¸à¸²à¸£à¸›à¸£à¸±à¸šà¸›à¸£à¸¸à¸‡" + +msgid "There are currently no outstanding actions." +msgstr "" + +msgid "There are no updates available." +msgstr "" + +msgid "There is no signal to lock on !" +msgstr "" + +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"เนื้อที่บนพาร์ทิชั่นที่เลือà¸à¹„ม่พอ\n" +"ต้องà¸à¸²à¸£à¸—ำต่อหรือไม่?" + +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "à¹à¸œà¹ˆà¸™ DVD-RW นี้ได้รับà¸à¸²à¸£à¸Ÿà¸­à¸£à¹Œà¹à¸¡à¸—มาà¹à¸¥à¹‰à¸§ หาà¸à¸—ำซ้ำจะเป็นà¸à¸²à¸£à¸¥à¸šà¸‚้อมูลออà¸à¸—ั้งหมด" + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" + +msgid "This plugin is installed." +msgstr "ปลั๊à¸à¸­à¸´à¸™à¸•à¸±à¸§à¸™à¸µà¹‰à¹„ด้ติดตั้งà¹à¸¥à¹‰à¸§" + +msgid "This plugin is not installed." +msgstr "ปลั๊à¸à¸­à¸´à¸™à¸•à¸±à¸§à¸™à¸µà¹‰à¸¢à¸±à¸‡à¹„ม่ได้ติดตั้ง" + +msgid "This plugin will be installed." +msgstr "ปลั๊à¸à¸­à¸´à¸™à¸•à¸±à¸§à¸™à¸µà¹‰à¸ˆà¸°à¸–ูà¸à¸•à¸´à¸”ตั้ง" + +msgid "This plugin will be removed." +msgstr "ปลั๊à¸à¸­à¸´à¸™à¸•à¸±à¸§à¸™à¸µà¹‰à¸ˆà¸°à¸–ูà¸à¸¥à¸šà¸­à¸­à¸" + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "" + +#, fuzzy +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"à¸à¸²à¸£à¸—ดสอบนี้จะเป็นà¸à¸²à¸£à¸•à¸£à¸§à¸ˆà¸ªà¸­à¸šà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่า Nameservers.\n" +"หาà¸à¸œà¸¥à¸¥à¸±à¸žà¸˜à¹Œà¹€à¸›à¹‡à¸™ \"ไม่ยืนยัน\":\n" +"- ให้ทำà¸à¸²à¸£à¸•à¸£à¸§à¸ˆà¸ªà¸­à¸š DHCP สายสัà¸à¸à¸²à¸“ à¹à¸¥à¸°à¸­à¸°à¹à¸”๊ปเตอร์\n" +"- หาà¸à¸—่านป้อนข้อมูล Nameservers ด้วยตัวเองให้ทำà¸à¸²à¸£à¸•à¸£à¸§à¸ˆà¸ªà¸­à¸šà¸„วามถูà¸à¸•à¹‰à¸­à¸‡à¸‚อง \"Nameserver\"" + +#, fuzzy +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"รายà¸à¸²à¸£à¸—ดสอบนี้จะทำà¸à¸²à¸£à¸•à¸£à¸§à¸ˆà¸ªà¸­à¸šà¸ªà¸²à¸¢à¸ªà¸±à¸à¸à¸²à¸“\n" +"หาà¸à¸œà¸¥à¸¥à¸±à¸žà¸˜à¹Œà¹€à¸›à¹‡à¸™ \"ถูà¸à¸•à¸±à¸”สัà¸à¸à¸²à¸“\" :\n" +"- ให้ตรวจสอบà¸à¸²à¸£à¹€à¸ªà¸µà¸¢à¸šà¸ªà¸²à¸¢à¸ªà¸±à¸à¸à¸²à¸“\n" +"- สายสัà¸à¸à¸²à¸“อาจขาดให้ตรวจสอบ" + +#, fuzzy +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"à¸à¸²à¸£à¸—ดสอบนี้จะทำà¸à¸²à¸£à¸•à¸£à¸§à¸ˆà¸ªà¸­à¸šà¸§à¹ˆà¸² IP Address ที่ได้สามารถใช้งานจริงได้หรือไม่\n" +"หาà¸à¸žà¸šà¸œà¸¥à¸¥à¸±à¸žà¸˜à¹Œà¹€à¸›à¹‡à¸™ \"ไม่ยืนยัน\":\n" +"- ไม่พบ IP Address ที่สามารถใช้งานได้\n" +"- à¹à¸™à¸°à¸™à¸³à¹ƒà¸«à¹‰à¸•à¸£à¸§à¸ˆà¸ªà¸­à¸šà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่า DHCP ตรวจสอบสายสัà¸à¸à¸²à¸" + +#, fuzzy +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"à¸à¸²à¸£à¸•à¸£à¸§à¸ˆà¸ªà¸­à¸šà¸™à¸µà¹‰à¸ˆà¸°à¸—ดสอบว่า เครือข่ายของท่านใช้ DHCP หรือไม่\n" +"หาà¸à¸—่านเห็น \"ไม่ได้ใช้\" ปราà¸à¸:\n" +"- à¹à¸ªà¸”งว่า IP Address ถูà¸à¸›à¹‰à¸­à¸™à¹€à¸­à¸‡à¸”้วยมือ\n" +"- ให้ตรวจสอบความถูà¸à¸•à¹‰à¸­à¸‡à¸‚อง IP Address à¹à¸¥à¸°à¸—ำงานได้หรือไม่\n" +"หาà¸à¸—่านเห็น \"ใช้\" ปราà¸à¸:\n" +"- จะทำà¸à¸²à¸£à¸•à¸£à¸§à¸ˆà¸ªà¸­à¸šà¸•à¹ˆà¸­à¸”้วยว่า à¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่า DHCP ถูà¸à¸•à¹‰à¸­à¸‡à¸«à¸£à¸·à¸­à¹„ม่" + +#, fuzzy +msgid "This test detects your configured LAN adapter." +msgstr "ทดสอบà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¹€à¸„รือข่าย" + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" + +msgid "Three" +msgstr "สาม" + +msgid "Threshold" +msgstr "ระดับ" + +msgid "Thu" +msgstr "พฤ." + +msgid "Thumbnails" +msgstr "ภาพเล็à¸" + +msgid "Thursday" +msgstr "วันพฤหัสบดี" + +msgid "Time" +msgstr "เวลา" + +#, fuzzy +msgid "Time scale" +msgstr "เลือà¸à¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¹€à¸§à¸¥à¸²" + +msgid "Timer" +msgstr "ตั้งเวลา" + +msgid "Timer Overview" +msgstr "" + +#, fuzzy +msgid "Timer edit" +msgstr "à¹à¸à¹‰à¹„ขà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¹€à¸§à¸¥à¸²" + +#, fuzzy +msgid "Timer editor" +msgstr "ตัวà¹à¸à¹‰à¹„ขà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¹€à¸§à¸¥à¸²" + +msgid "Timer entry" +msgstr "ตั้งเวลา" + +msgid "Timer log" +msgstr "ข้อมูลà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¹€à¸§à¸¥à¸²" + +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"พบเวลาที่ตั้งในไฟล์ timers.xml ซ้อนà¸à¸±à¸™ !\n" +"à¸à¸£à¸¸à¸“าตรวจสอบ!" + +#, fuzzy +msgid "Timer overview" +msgstr "ตั้งเวลา" + +#, fuzzy +msgid "Timer recording location" +msgstr "เปลี่ยนà¹à¸›à¸¥à¸‡à¸à¸²à¸£à¸šà¸±à¸™à¸—ึภ(ช่วงเวลา)" + +msgid "Timer sanity error" +msgstr "à¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¹€à¸§à¸¥à¸²à¸¡à¸µà¸›à¸±à¸à¸«à¸²" + +msgid "Timer selection" +msgstr "เลือà¸à¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¹€à¸§à¸¥à¸²" + +msgid "Timer selection..." +msgstr "" + +#, fuzzy +msgid "Timer type" +msgstr "ประเภทà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¹€à¸§à¸¥à¸²" + +msgid "Timeshift" +msgstr "ควบคุมรายà¸à¸²à¸£à¸ªà¸”" + +msgid "Timeshift Live" +msgstr "" + +msgid "Timeshift location" +msgstr "" + +msgid "Timeshift not possible!" +msgstr "ไม่สามารถใช้งานควบคุมรายà¸à¸²à¸£à¸ªà¸”ได้!" + +msgid "Timezone" +msgstr "เส้นà¹à¸šà¹ˆà¸‡à¹€à¸§à¸¥à¸²" + +msgid "Title" +msgstr "ชื่อเรื่อง" + +msgid "Title properties" +msgstr "คุณลัà¸à¸©à¸“ะของเรื่อง" + +msgid "Titleset mode" +msgstr "โหมดตั้งชื่อเรื่อง" + +msgid "To audio selection" +msgstr "" + +msgid "To subtitle selection" +msgstr "" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" + +msgid "Today" +msgstr "วันนี้" + +#, fuzzy +msgid "Toggle a cut mark at the current position" +msgstr "สลับà¸à¸²à¸£à¹€à¸¥à¸·à¸­à¸à¸ˆà¸¸à¸”สำหรับตัดต่อตรงนี้" + +#, fuzzy +msgid "Tone amplitude" +msgstr "Tone mode" + +msgid "Tone mode" +msgstr "Tone mode" + +msgid "Toneburst" +msgstr "Toneburst" + +msgid "Toneburst A/B" +msgstr "Toneburst A/B" + +msgid "Top and bottom" +msgstr "" + +msgid "Track" +msgstr "ร่องเสียง" + +msgid "Translation" +msgstr "à¸à¸²à¸£à¹à¸›à¸¥" + +msgid "Translation:" +msgstr "à¸à¸²à¸£à¹à¸›à¸¥:" + +msgid "Translations" +msgstr "" + +msgid "Transmission mode" +msgstr "โหมดà¸à¸²à¸£à¸–่ายทอด" + +msgid "Transponder" +msgstr "ทรานสปอนเดอร์" + +#, fuzzy +msgid "Transponder type" +msgstr "ประเภทของทรานสปอนเดอร์" + +msgid "Trash can" +msgstr "" + +msgid "Tries left:" +msgstr "เหลืออยู่:" + +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸„้นหาทรานสปอนเดอร์ในเน็ทเวอร์ภà¸à¸£à¸¸à¸“ารอสัà¸à¸„รู่" + +msgid "Trying to download a new packetlist. Please wait..." +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸”าวน์โหลดข้อมูลติดตั้งใหม่ à¸à¸£à¸¸à¸“ารอสัà¸à¸„รู่..." + +msgid "Tue" +msgstr "อัง." + +msgid "Tuesday" +msgstr "วันอังคาร" + +msgid "Tune" +msgstr "ปรับค่า" + +#, fuzzy +msgid "Tune and focus" +msgstr "สถานะของ Tuner" + +msgid "Tune failed!" +msgstr "ปรับค่าล้มเหลว!" + +msgid "Tuner" +msgstr "Tuner" + +msgid "Tuner configuration" +msgstr "ตั้งค่า Tuner" + +msgid "Tuner is not supported" +msgstr "" + +#, fuzzy +msgid "Tuner slot" +msgstr "Tuner Slot" + +msgid "Tuner status" +msgstr "สถานะของ Tuner" + +#, fuzzy, python-format +msgid "Tuner status %s" +msgstr "สถานะของ Tuner" + +msgid "Tuner type" +msgstr "" + +msgid "Turkish" +msgstr "ภาษาตูรà¸à¸µ" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +msgid "Two" +msgstr "สอง" + +msgid "Type" +msgstr "ประเภท" + +msgid "Type of scan" +msgstr "ประเภทà¸à¸²à¸£à¸„้นหา" + +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "" + +#, fuzzy +msgid "USB stick" +msgstr "USB เมมโมรี่" + +msgid "USB stick wizard" +msgstr "ตัวช่วยสำหรับ USB" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +msgid "Undo install" +msgstr "" + +msgid "Undo uninstall" +msgstr "" + +msgid "Unencrypted" +msgstr "" + +msgid "UnhandledKey" +msgstr "" + +msgid "Unicable" +msgstr "" + +msgid "Unicable LNB" +msgstr "Unicable LNB" + +msgid "Unicable Martix" +msgstr "Unicable Martix" + +msgid "Uninstall" +msgstr "" + +msgid "Universal LNB" +msgstr "Universal LNB" + +msgid "Unknown" +msgstr "" + +msgid "Unmount" +msgstr "" + +msgid "Unsupported" +msgstr "ไม่รองรับ" + +msgid "Update" +msgstr "ปรุบปรุง" + +msgid "Update and ask to reboot" +msgstr "" + +msgid "Update and reboot (recommended)" +msgstr "" + +#, fuzzy +msgid "Update channel list only" +msgstr "รายà¸à¸²à¸£à¸•à¹ˆà¸­à¹„ปในหน่วยความจำ" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "" +msgstr[1] "" + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "" + +msgid "Update has completed." +msgstr "" + +msgid "Updatefeed not available." +msgstr "" + +msgid "Updating software catalog" +msgstr "" + +msgid "Upgrading" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸­à¸±à¸žà¹€à¸à¸£à¸”" + +msgid "Use" +msgstr "ใช้" + +msgid "Use DHCP" +msgstr "เลือà¸à¹ƒà¸Šà¹‰ DHCP" + +msgid "Use EIT EPG information when it is available." +msgstr "" + +msgid "Use FreeSat EPG information when it is available." +msgstr "" + +msgid "Use MHW EPG information when it is available." +msgstr "" + +msgid "Use Netmed EPG information when it is available." +msgstr "" + +msgid "Use TV remote control" +msgstr "" + +#, fuzzy +msgid "Use USALS for this sat" +msgstr "ใช้ USALS à¸à¸±à¸šà¸”าวเทียมนี้" + +msgid "Use ViaSat EPG information when it is available." +msgstr "" + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +msgid "Use a gateway" +msgstr "ใช้ Gateway" + +msgid "Use fastscan channel names" +msgstr "" + +msgid "Use fastscan channel numbering" +msgstr "" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "" + +#, fuzzy +msgid "Use interface" +msgstr "เลือà¸à¹ƒà¸Šà¹‰à¸­à¸´à¸™à¹€à¸•à¸­à¸£à¹Œà¹€à¸Ÿà¸‹à¸™à¸µà¹‰" + +msgid "Use official channel numbering" +msgstr "" + +msgid "Use original DVB subtitle position" +msgstr "" + +msgid "Use original teletext position" +msgstr "" + +msgid "Use power measurement" +msgstr "ใช้ power measurement" + +#, fuzzy +msgid "Use the network wizard to configure selected network adapter" +msgstr "ใช้ตัวช่วยสำหรับตั้งค่าเครือข่าวย\n" + +#, fuzzy +msgid "Use the network wizard to configure your network\n" +msgstr "ใช้ตัวช่วยสำหรับตั้งค่าเครือข่าวย\n" + +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "ใช้ปุ่มขึ้นหรือลงบนรีโมทเพื่อเลือภจาà¸à¸™à¸±à¹‰à¸™à¸à¸”ปุ่ม OK" + +#, fuzzy +msgid "Use the wizard to set up basic features" +msgstr "ใช่ตัวช่วยเพื่อตั้งค่าพื้นà¸à¸²à¸™" + +#, fuzzy +msgid "Use these input device settings?" +msgstr "ยอมรับà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่านี้?" + +#, fuzzy +msgid "Use these settings?" +msgstr "นำสำรองà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าต่างๆ à¸à¸¥à¸±à¸šà¸¡à¸²à¹ƒà¸Šà¹‰" + +msgid "Use this video enhancement settings?" +msgstr "ยอมรับà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่านี้?" + +#, fuzzy +msgid "Use trash can in movielist" +msgstr "à¸à¸¥à¸±à¸šà¹„ปยังสารบัà¸à¸ à¸²à¸žà¸¢à¸™à¸•à¹Œ" + +msgid "Used service scan type" +msgstr "ประเภทของà¸à¸²à¸£à¸„้นหา" + +msgid "User - bouquets" +msgstr "" + +msgid "User defined" +msgstr "ผู้ใช้à¸à¸³à¸«à¸™à¸”" + +msgid "User defined transponder" +msgstr "" + +#, fuzzy +msgid "User interface" +msgstr "เลือà¸à¹ƒà¸Šà¹‰à¸­à¸´à¸™à¹€à¸•à¸­à¸£à¹Œà¹€à¸Ÿà¸‹à¸™à¸µà¹‰" + +msgid "Username" +msgstr "ชื่อผู้ใช้" + +#, python-format +msgid "Using LNB %d" +msgstr "" + +msgid "Using fixed address" +msgstr "" + +#, python-format +msgid "Using tuner %s" +msgstr "" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "" + +msgid "VCR scart" +msgstr "VCR scart" + +msgid "VMGM (intro trailer)" +msgstr "VMGM (intro trailer)" + +msgid "Vertical" +msgstr "à¹à¸™à¸§à¸•à¸±à¹‰à¸‡ (V)" + +msgid "Vertical turning speed" +msgstr "" + +msgid "Video PID" +msgstr "" + +msgid "Video enhancement preview" +msgstr "à¹à¸ªà¸”งตัวอย่างวิดีโอ" + +msgid "Video enhancement settings" +msgstr "ตั้งค่าวิดีโอขั้นสูง" + +msgid "Video enhancement setup" +msgstr "ตั้งค่าวิดีโอชั้นสูง" + +#, fuzzy +msgid "Video fine tuning" +msgstr "ปรับวิดีโอà¹à¸šà¸šà¸¥à¸°à¹€à¸­à¸µà¸¢à¸”" + +#, fuzzy +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"เลือà¸à¸Šà¹ˆà¸­à¸‡à¸—างà¹à¸ªà¸”งวีดีโอ\n" +"\n" +"หลังจาà¸à¸à¸”ปุ่ม OK หาà¸à¸¢à¸±à¸‡à¸¡à¸µà¸à¸²à¸£à¹à¸ªà¸”งผลที่จอโทรทัศน์ให้à¸à¸” OK ซ้ำอีà¸à¸„รั้ง หาà¸à¹„ม่เห็นภาพให้รอสัà¸à¸„รู่\n" +"\n" +"ช่องทางà¹à¸ªà¸”งผลอื่นๆ จะถูà¸à¹€à¸¥à¸·à¸­à¸à¹ƒà¸™ 10 วินาที" + +msgid "Video mode selection." +msgstr "เลือà¸à¹‚หมดวีดีโอ" + +#, fuzzy +msgid "Video output" +msgstr "ช่องวีดีโอ" + +#, fuzzy +msgid "Video setup" +msgstr "ตั้งค่าวีดีโอ" + +#, fuzzy +msgid "Video wizard" +msgstr "ตัวช่วยตั้งค่าวีดีโอ" + +#, python-format +msgid "Video: %s fps" +msgstr "" + +msgid "VideoMode" +msgstr "" + +msgid "Videocodec" +msgstr "" + +msgid "Videoformat" +msgstr "" + +msgid "Videosize" +msgstr "" + +msgid "View Rass interactive..." +msgstr "à¹à¸ªà¸”ง RASS à¹à¸šà¸š Interactive" + +msgid "View details" +msgstr "à¹à¸ªà¸”งรายละเอียด" + +msgid "View list of available " +msgstr "à¹à¸ªà¸”งรายà¸à¸²à¸£à¸—ี่ใช้ได้" + +msgid "View list of available CommonInterface extensions" +msgstr "à¹à¸ªà¸”งรายà¸à¸²à¸£à¸ªà¹ˆà¸§à¸™à¹€à¸žà¸´à¹ˆà¸¡à¹€à¸•à¸´à¸¡à¸ªà¸³à¸«à¸£à¸±à¸šà¸­à¸´à¸™à¹€à¸•à¸­à¸£à¹Œà¹€à¸Ÿà¸‹à¸žà¸·à¹‰à¸™à¸à¸²à¸™" + +msgid "View list of available EPG extensions." +msgstr "à¹à¸ªà¸”งผังรายà¸à¸²à¸£à¹€à¸žà¸´à¹ˆà¸¡à¹€à¸•à¸´à¸¡" + +msgid "View list of available Satellite equipment extensions." +msgstr "" + +msgid "View list of available communication extensions." +msgstr "à¹à¸ªà¸”งรายà¸à¸²à¸£à¸ªà¹ˆà¸§à¸™à¹€à¸žà¸´à¹ˆà¸¡à¹€à¸•à¸´à¸¡à¸ªà¸³à¸«à¸£à¸±à¸šà¸à¸²à¸£à¸ªà¸·à¹ˆà¸­à¸ªà¸²à¸£" + +msgid "View list of available default settings" +msgstr "à¹à¸ªà¸”งà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าเริ่มต้นที่ใช้ได้" + +#, fuzzy +msgid "View list of available display and userinterface extensions." +msgstr "à¹à¸ªà¸”งรายà¸à¸²à¸£à¸ªà¹ˆà¸§à¸™à¹€à¸žà¸´à¹ˆà¸¡à¹€à¸•à¸´à¸¡à¸ªà¸³à¸«à¸£à¸±à¸šà¸ªà¹ˆà¸§à¸™à¸•à¸´à¸”ต่อผู้ใช้" + +msgid "View list of available multimedia extensions." +msgstr "à¹à¸ªà¸”งรายà¸à¸²à¸£à¸ªà¹ˆà¸§à¸™à¹€à¸žà¸´à¹ˆà¸¡à¹€à¸•à¸´à¸¡à¸ªà¸³à¸«à¸£à¸±à¸šà¸¡à¸±à¸¥à¸•à¸´à¸¡à¸µà¹€à¸”ีย" + +msgid "View list of available networking extensions" +msgstr "à¹à¸ªà¸”งรายà¸à¸²à¸£à¸ªà¹ˆà¸§à¸™à¹€à¸žà¸´à¹ˆà¸¡à¹€à¸•à¸´à¸¡à¸ªà¸³à¸«à¸£à¸±à¸šà¹€à¸„รือข่าย" + +msgid "View list of available recording extensions" +msgstr "à¹à¸ªà¸”งรายà¸à¸²à¸£à¸ªà¹ˆà¸§à¸™à¹€à¸žà¸´à¹ˆà¸¡à¹€à¸•à¸´à¸¡à¸Šà¹ˆà¸§à¸¢à¸šà¸±à¸™à¸—ึà¸à¸£à¸²à¸¢à¸à¸²à¸£" + +msgid "View list of available skins" +msgstr "à¹à¸ªà¸”งรายà¸à¸²à¸£à¸‚องสà¸à¸´à¸™à¸—ี่ใช้งานได้" + +msgid "View list of available software extensions" +msgstr "à¹à¸ªà¸”งรายà¸à¸²à¸£à¸‹à¸­à¸žà¸—์à¹à¸§à¸£à¹Œà¸—ี่สามารถติดตั้งเพิ่มเติมได้" + +msgid "View list of available system extensions" +msgstr "à¹à¸ªà¸”งรายà¸à¸²à¸£à¸ªà¹ˆà¸§à¸™à¹€à¸žà¸´à¹ˆà¸¡à¹€à¸•à¸´à¸¡à¸£à¸°à¸šà¸šà¸—ี่สามารถติดตั้งได้" + +#, fuzzy +msgid "View photos..." +msgstr "ดูภาพ" + +msgid "View teletext..." +msgstr "อ่านเทเลเท็à¸à¸‹à¹Œ..." + +#, fuzzy +msgid "View video CD..." +msgstr "ดูวีซีดี" + +#, fuzzy +msgid "Virtual keyboard" +msgstr "à¹à¸›à¹‰à¸™à¸žà¸´à¸¡à¸žà¹Œà¸ˆà¸³à¸¥à¸­à¸‡" + +msgid "Voltage mode" +msgstr "Voltage mode" + +msgid "Volume" +msgstr "ระดับเสียง" + +msgid "W" +msgstr "W" + +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "" + +msgid "WPA" +msgstr "WPA" + +msgid "WPA or WPA2" +msgstr "WPA หรือ WPA2" + +msgid "WPA2" +msgstr "WPA2" + +msgid "WSS on 4:3" +msgstr "WSS บน 4:3" + +msgid "Waiting" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸„อย..." + +msgid "Waiting for mount" +msgstr "" + +msgid "Waiting for partition" +msgstr "" + +msgid "Wakeup" +msgstr "" + +msgid "Wakeup TV from standby" +msgstr "" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "" + +msgid "Wakeup signal from TV" +msgstr "" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "" + +#, fuzzy +msgid "Watch movies..." +msgstr "เล่นภาพยนต์ที่ได้บันทึà¸à¹„ว้..." + +#, fuzzy +msgid "Watch recordings..." +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸šà¸±à¸™à¸—ึà¸à¸£à¸²à¸¢à¸à¸²à¸£..." + +msgid "Wed" +msgstr "พุธ" + +msgid "Wednesday" +msgstr "วันพุธ" + +msgid "Weekday" +msgstr "วันธรรมดา" + +msgid "Weighted position" +msgstr "" + +#, fuzzy +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"ยินดีต้อนรับสู่ ตัวตัดต่อรายà¸à¸²à¸£\n" +"\n" +"ทำà¸à¸²à¸£à¸„้นหาจุดที่ท่านต้องà¸à¸²à¸£à¸—ี่จะตัดทิ้งà¹à¸¥à¹‰à¸§à¸à¸”ปุ่ม OK เพื่อเริ่มตัด('start cut')\n" +"\n" +"จาà¸à¸™à¸±à¹‰à¸™à¸—ำค้นหาจุดสุดท้ายà¹à¸¥à¹‰à¸§à¸à¸”ปุ่ม OK เพื่อà¸à¸³à¸«à¸™à¸”จุดสุดท้าย ('end cut') เท่านั้นเอง (That's it)" + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" + +msgid "Welcome..." +msgstr "ยินดีต้อนรับ..." + +msgid "West" +msgstr "ตะวันตà¸" + +msgid "West limit set" +msgstr "" + +msgid "What do you want to scan?" +msgstr "ท่านต้องà¸à¸²à¸£à¸„้นหาอะไร?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "" + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "" + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "" + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "" + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "" + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "" + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "" + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "" + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "" + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "" + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "" + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "" + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "" + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "" + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "" + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "" + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "" + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "" + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "" + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "" + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "" + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "" + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "" + +msgid "When enabled, number markers will be hiden." +msgstr "" + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "" + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "" + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "" + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "" + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "" + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "" + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "" + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "" + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "" + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "" + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "" + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "" + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "" + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "" + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "" + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "" + +#, fuzzy +msgid "When enabled, use DHCP for the IP configuration." +msgstr "ตั้งค่า Nameserver" + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "" + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "" + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "" + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "" + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "" + +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"หาà¸à¸—่านทำà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าใหม่ตามโรงงาน ข้อมูลทั้งหมดของท่านจะหายไปทันที\n" +"(ทั้งนี้รวมทั้ง à¸à¸¥à¸¸à¹ˆà¸¡à¸£à¸²à¸¢à¸à¸²à¸£ รายà¸à¸²à¸£à¸•à¹ˆà¸²à¸‡à¹† ข้อมูลดาวเทียม เป็นต้น...)\n" +"หลังà¸à¸£à¸°à¸šà¸§à¸™à¸•à¸±à¹‰à¸‡à¸„่าใหม่เสร็จสิ้น เครื่องจะทำà¸à¸²à¸£à¸šà¸¹à¸—ให้โดยอัตโนมัติ!\n" +"\n" +"ยืนà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าใหม่ตามโรงงาน หรือไม่?" + +msgid "Where do you want to backup your settings?" +msgstr "ท่านต้องบันทึà¸à¸‚้อมูลที่สำรองไว้ที่ไหน?" + +msgid "Where to save temporary timeshift recordings?" +msgstr "ท่านต้องบันทึà¸à¹„ฟล์สำหรับควบคุมรายà¸à¸²à¸£à¸ªà¸”ไว้ที่ไหน?" + +msgid "Wireless LAN" +msgstr "à¹à¸¥à¸™à¹à¸šà¸šà¹„ร้สาย" + +#, fuzzy +msgid "Wireless network" +msgstr "เครือข่ายไร้สาย" + +#, fuzzy +msgid "Wireless network configuration..." +msgstr "ตั้งค่าเครือข่าย..." + +msgid "Wireless network connection setup" +msgstr "" + +msgid "Wireless network connection setup." +msgstr "" + +msgid "Wireless network state" +msgstr "" + +msgid "With popup" +msgstr "" + +msgid "Without popup" +msgstr "" + +msgid "Would you like to install a softcam?" +msgstr "" + +msgid "Write error while recording. Disk full?\n" +msgstr "เà¸à¸´à¸”ข้อผิดพลาดในà¸à¸²à¸£à¸šà¸±à¸™à¸—ึà¸à¸£à¸²à¸¢à¸à¸²à¸£ ไดรฟ์เต็มหรือไม่?\n" + +msgid "Write failed!" +msgstr "พบข้อผิดพลาดในà¸à¸²à¸£à¹€à¸‚ียนข้อมูล!" + +msgid "YPbPr" +msgstr "YPbPr" + +msgid "Year" +msgstr "ปี" + +msgid "Yellow DVB subtitles" +msgstr "" + +msgid "Yes" +msgstr "ใช่" + +msgid "Yes and save" +msgstr "" + +msgid "Yes and save in movie dir" +msgstr "" + +msgid "Yes to all" +msgstr "" + +msgid "Yes, always" +msgstr "" + +msgid "Yes, and delete this movie" +msgstr "ใช่ - ต้องà¸à¸²à¸£à¸—ี่จะลบภาพยนต์นี้" + +msgid "Yes, backup my settings!" +msgstr "ใช่ - ทำสำรองข้อมูลà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าตอนนี้" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +msgid "Yes, do a manual scan now" +msgstr "ใช่ - ทำà¸à¸²à¸£à¸„้นหาเองตอนนี้เลย" + +msgid "Yes, do an automatic scan now" +msgstr "ใช่ - ทำà¸à¸²à¸£à¸„้นหาà¹à¸šà¸šà¸­à¸±à¸•à¹‚นมัติตอนนี้เลย" + +msgid "Yes, do another manual scan now" +msgstr "ใช่ - ทำà¸à¸²à¸£à¸„้นหาอีà¸à¸„รั้งตอนนี้เลย" + +msgid "Yes, perform a shutdown now." +msgstr "ใช่ - ปิดเครื่องตอนนี้เลย (Shutdonw)" + +msgid "Yes, restore the settings now" +msgstr "ใช่ - นำสำรองà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าà¸à¸¥à¸±à¸šà¸¡à¸²à¹ƒà¸Šà¹‰à¸•à¸­à¸™à¸™à¸µà¹‰à¹€à¸¥à¸¢" + +msgid "Yes, returning to movie list" +msgstr "ใช่ - à¸à¸¥à¸±à¸šà¹„ปที่สารบัภMovie" + +msgid "Yesterday" +msgstr "" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" + +msgid "You can cancel the installation." +msgstr "ท่านสามารถยà¸à¹€à¸¥à¸´à¸à¸à¸²à¸£à¸•à¸´à¸”ตั้งได้" + +msgid "You can cancel the removal." +msgstr "ท่านสามารถยà¸à¹€à¸¥à¸´à¸à¸à¸²à¸£à¸¥à¸šà¹„ด้" + +msgid "You can continue watching TV etc. while this is running." +msgstr "" + +msgid "You can install this plugin." +msgstr "ท่านสามารถติดตั้งปลั๊à¸à¸­à¸´à¸™à¸•à¸±à¸§à¸™à¸µà¹‰à¹„ด้" + +msgid "You can only burn receiver recordings!" +msgstr "" + +msgid "You can remove this plugin." +msgstr "ท่านสามารถลบปลั๊à¸à¸­à¸´à¸™à¸•à¸±à¸§à¸™à¸µà¹‰à¹„ด้" + +msgid "You cannot delete this!" +msgstr "ท่านไม่สามารถลบรายà¸à¸²à¸£à¸™à¸µà¹‰à¹„ด้!" + +msgid "You didn't select a channel to record from." +msgstr "" + +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "ท่านได้เลือà¸à¸ªà¸³à¸£à¸­à¸‡à¸‚้อมูลà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าระบบ à¸à¸£à¸¸à¸“าà¸à¸”ปุ่ม OK เพื่อเริ่มทำงาน" + +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "ท่าได้เลือภสร้างไฟล์ .NFI ที่ USB ซึ่งระบบสร้างพาร์ทิชั่นใหม่ทำให้ข้อมูลทั้งหมดหายไป" + +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "ท่านได้เลือà¸à¸—ี่จะนำสำรองà¸à¸¥à¸±à¸šà¸¡à¸²à¹ƒà¸Šà¹‰ เครื่องจะบูทให้เมื่อเสร็จสิ้นà¸à¸£à¸°à¸šà¸§à¸™à¸à¸²à¸£ à¸à¸£à¸¸à¸“าà¸à¸”ปุ่ม OK เพื่อเริ่มทำงาน" + +#, python-format +msgid "You have to wait %s!" +msgstr "ต้องรอประมาณ %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" + +msgid "You system does not support ext4" +msgstr "" + +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "à¸à¸²à¸£à¸ªà¸³à¸£à¸­à¸‡à¸‚้อมูลเสร็จสิ้น à¹à¸¥à¸°à¸ˆà¸°à¸•à¹ˆà¸­à¸”้วยขั้ตอนในà¸à¸²à¸£à¸›à¸£à¸±à¸šà¸›à¸£à¸¸à¸‡à¸‹à¸­à¸žà¸—์à¹à¸§à¸£à¹Œ" + +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "ข้อมูลที่เลือà¸à¹ƒà¸«à¸à¹ˆà¸à¸§à¹ˆà¸²à¸”ีวีดีà¹à¸šà¸šà¸Šà¸±à¹‰à¸™à¹€à¸”ียว ท่านต้องใช้ดีวีดีà¹à¸šà¸š 2 ชั้น" + +msgid "Your current collection will get lost!" +msgstr "" + +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"เครื่องของท่านต้องà¸à¸²à¸£à¸à¸²à¸£à¸›à¸£à¸±à¸šà¸›à¸£à¸¸à¸‡\n" +"à¸à¸”ปุ่ม OK เพิ่มเริ่มà¸à¸²à¸£à¸›à¸£à¸±à¸šà¸›à¸£à¸¸à¸‡" + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" + +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"ไม่สามรถเชื่อต่ออินเตอร์เน็ตได้!\n" +"โปรดเลือà¸à¸§à¹ˆà¸² จะทำอะไรต่อไป" + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "" + +msgid "Your network configuration has been activated." +msgstr "เครือข่ายของท่านสามารถใช้งานได้à¹à¸¥à¹‰à¸§" + +msgid "Your receiver does not have an internet connection" +msgstr "" + +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" + +msgid "Your receiver is rebooting" +msgstr "" + +msgid "Your receiver is shutting down" +msgstr "" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "" + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "" + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "" + +msgid "Your receiver will got to standby due to inactivity." +msgstr "" + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "" + +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"เครือข่ายไร้สายของท่านไม่ทำงาน!\n" +"ตรวจสอบà¸à¹ˆà¸­à¸™à¸§à¹ˆà¸² ท่านได้เสียบ USB WLAN à¹à¸¥à¹‰à¸§à¸«à¸£à¸·à¸­à¸¢à¸±à¸‡?\n" +"\n" +"โปรดเลือà¸à¸§à¹ˆà¸²à¸—่านจะทำอะไรต่อไป" + +msgid "Zap" +msgstr "" + +msgid "Zap back to previously tuned service?" +msgstr "" + +msgid "Zap back to service before positioner setup?" +msgstr "ย้ายไปยังช่องบริà¸à¸²à¸£à¸à¹ˆà¸­à¸™à¸•à¸±à¹‰à¸‡à¸„่าตัวขับจาน" + +msgid "Zap back to service before tuner setup?" +msgstr "" + +msgid "Zap focus to Picture in Picture" +msgstr "" + +msgid "Zap focus to main screen" +msgstr "" + +msgid "Zap mode" +msgstr "" + +msgid "Zap to selected channel" +msgstr "" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "" + +msgid "[alternative edit]" +msgstr "[à¹à¸à¹‰à¹„ขอื่น]" + +msgid "[bouquet edit]" +msgstr "[à¹à¸à¹‰à¹„ขà¸à¸¥à¸¸à¹ˆà¸¡à¸£à¸²à¸¢à¸à¸²à¸£]" + +msgid "[favourite edit]" +msgstr "[à¹à¸à¹‰à¹„ขรายà¸à¸²à¸£à¹‚ปรด]" + +msgid "[move mode]" +msgstr "[โหมดย้าย]" + +msgid "a gui to assign services/providers to common interface modules" +msgstr "ส่วนนี้จะà¸à¸³à¸«à¸™à¸”บริà¸à¸²à¸£/ผู้ให้บริà¸à¸²à¸£à¹ƒà¸«à¹‰à¸à¸±à¸šà¸­à¸´à¸™à¹€à¸•à¸­à¸£à¹Œà¹€à¸Ÿà¸‹à¸žà¸·à¹‰à¸™à¸à¸²à¸™" + +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "ส่วนนี้จะà¸à¸³à¸«à¸™à¸”บริà¸à¸²à¸£/ผู้ให้บริà¸à¸²à¸£/caids ให้à¸à¸±à¸šà¸­à¸´à¸™à¹€à¸•à¸­à¸£à¹Œà¹€à¸Ÿà¸‹à¸žà¸·à¹‰à¸™à¸à¸²à¸™" + +msgid "abort alternatives edit" +msgstr "ยà¸à¹€à¸¥à¸´à¸à¸à¸²à¸£à¹à¸à¹‰à¹„ขอื่น" + +msgid "abort bouquet edit" +msgstr "ยà¸à¹€à¸¥à¸´à¸à¸à¸²à¸£à¹à¸à¹‰à¹„ขà¸à¸¥à¸¸à¹ˆà¸¡à¸£à¸²à¸¢à¸à¸²à¸£" + +msgid "abort favourites edit" +msgstr "ยà¸à¹€à¸¥à¸´à¸à¸à¸²à¸£à¹à¸à¹‰à¹„ขรายà¸à¸²à¸£à¹‚ปรด" + +msgid "about to start" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸ˆà¸°à¹€à¸£à¸´à¹ˆà¸¡" + +msgid "activate network adapter configuration" +msgstr "" + +msgid "add alternatives" +msgstr "เพิ่มทางเลือà¸à¸­à¸·à¹ˆà¸™" + +msgid "add bookmark" +msgstr "เพิ่มบุ๊คมาร์ค" + +msgid "add bouquet" +msgstr "เพิ่มà¸à¸¥à¸¸à¹ˆà¸¡à¸£à¸²à¸¢à¸à¸²à¸£" + +msgid "add marker" +msgstr "เพิ่มจุดทำเครื่องหมาย" + +msgid "add service to bouquet" +msgstr "เพิ่มบริà¸à¸²à¸£à¹€à¸‚้าสู่à¸à¸¥à¸¸à¹ˆà¸¡à¸£à¸²à¸¢à¸à¸²à¸£" + +msgid "add service to favourites" +msgstr "เพิ่มบริà¸à¸²à¸£à¹€à¸‚้าสู่รายà¸à¸²à¸£à¹‚ปรด" + +msgid "add to parental protection" +msgstr "เพิ่มรายà¸à¸²à¸£à¹€à¸‚้าสู่à¸à¸¥à¸¸à¹ˆà¸¡à¸ˆà¸³à¸à¸±à¸”อายุ" + +msgid "adult movie/drama" +msgstr "" + +msgid "advanced" +msgstr "ขั้นสูง" + +msgid "adventure/western/war" +msgstr "" + +msgid "advertisement/shopping" +msgstr "" + +msgid "after " +msgstr "" + +#, fuzzy +msgid "alphabetic" +msgstr "เรียงตามอัà¸à¸©à¸£" + +msgid "alphabetic reverse" +msgstr "" + +msgid "alternative" +msgstr "" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "" + +msgid "arts/culture magazine" +msgstr "" + +msgid "athletics" +msgstr "" + +msgid "audio tracks" +msgstr "ร่องเสียง" + +msgid "auto" +msgstr "อัตโนมัติ" + +#, fuzzy +msgid "automatic" +msgstr "อัตโนมัติ" + +msgid "back" +msgstr "à¸à¸¥à¸±à¸š" + +msgid "background image" +msgstr "รูปพื้นหลัง" + +msgid "ballet" +msgstr "" + +#, python-format +msgid "bc%s" +msgstr "" + +msgid "better" +msgstr "ดีขึ้น" + +msgid "black" +msgstr "ดำ" + +msgid "black & white" +msgstr "" + +msgid "blacklist" +msgstr "รายà¸à¸²à¸£à¸•à¹‰à¸­à¸‡à¸«à¹‰à¸²à¸¡" + +msgid "blue" +msgstr "น้ำเงิน" + +msgid "broadcasting/press" +msgstr "" + +#, fuzzy +msgid "by date" +msgstr "เรียงตามวันที่" + +msgid "cartoon/puppets" +msgstr "" + +msgid "center" +msgstr "" + +msgid "centered" +msgstr "" + +msgid "centered, wrapped" +msgstr "" + +msgid "chapters" +msgstr "บทที่" + +msgid "childrens's/youth program (general)" +msgstr "" + +msgid "circular left" +msgstr "วนไปทางซ้าย" + +msgid "circular right" +msgstr "วนไปทางขวา" + +msgid "comedy" +msgstr "" + +msgid "complex" +msgstr "ซับซ้อน" + +msgid "config menu" +msgstr "เมนูตั้งค่า" + +msgid "confirmed" +msgstr "ยืนยันà¹à¸¥à¹‰à¸§" + +msgid "connected" +msgstr "เชื่อมต่อà¹à¸¥à¹‰à¸§" + +msgid "continue" +msgstr "ต่อไป" + +msgid "cooking" +msgstr "" + +msgid "copy to bouquets" +msgstr "คัดลอà¸à¹€à¸‚้าสู่à¸à¸¥à¸¸à¹ˆà¸¡à¸£à¸²à¸¢à¸à¸²à¸£" + +msgid "create directory" +msgstr "สร้างโฟล์เดอร์" + +#, python-format +msgid "currently installed image: %s" +msgstr "" + +msgid "daily" +msgstr "รายวัน" + +msgid "day" +msgstr "วัน" + +#, fuzzy +msgid "default" +msgstr "ค่าเริ่มต้น" + +msgid "delete cut" +msgstr "ลบส่วนตัดต่อ" + +msgid "delete..." +msgstr "" + +msgid "descramble and record ecm" +msgstr "" + +msgid "detective/thriller" +msgstr "" + +msgid "disable" +msgstr "ไม่ใช้" + +msgid "disable move mode" +msgstr "เลิà¸à¹‚หมดเคลื่อนย้าย" + +msgid "disabled" +msgstr "ไม่ใช้à¹à¸¥à¹‰à¸§" + +msgid "disconnected" +msgstr "เชื่อมต่อถูà¸à¸•à¸±à¸”à¹à¸¥à¹‰à¸§" + +msgid "discussion/interview/debate" +msgstr "" + +msgid "do nothing" +msgstr "ไม่ต้องทำอะไร" + +msgid "documentary" +msgstr "" + +msgid "don't descramble, record ecm" +msgstr "" + +msgid "done!" +msgstr "เสร็จà¹à¸¥à¹‰à¸§!!" + +msgid "east" +msgstr "" + +msgid "economics/social advisory" +msgstr "" + +msgid "edit alternatives" +msgstr "à¹à¸à¹‰à¹„ขà¹à¸šà¸šà¸­à¸·à¹ˆà¸™" + +msgid "education/science/factual topics (general)" +msgstr "" + +msgid "empty" +msgstr "ว่าง" + +msgid "enable" +msgstr "ใช้งาน" + +msgid "enable bouquet edit" +msgstr "à¹à¸à¹‰à¹„ขà¸à¸¥à¸¸à¹ˆà¸¡à¸£à¸²à¸¢à¸à¸²à¸£" + +msgid "enable favourite edit" +msgstr "à¹à¸à¹‰à¹„ขรายà¸à¸²à¸£à¹‚ปรด" + +msgid "enable move mode" +msgstr "ทำà¸à¸²à¸£à¹€à¸„ลื่อนย้าย" + +msgid "enabled" +msgstr "ใช้งานà¹à¸¥à¹‰à¸§" + +msgid "end alternatives edit" +msgstr "จบà¸à¸²à¸£à¹à¸à¹‰à¹„ขà¹à¸šà¸šà¸­à¸·à¹ˆà¸™" + +msgid "end bouquet edit" +msgstr "จบà¸à¸²à¸£à¹à¸à¹‰à¹„ขà¸à¸¥à¸¸à¹ˆà¸¡à¸£à¸²à¸¢à¸à¸²à¸£" + +msgid "end cut here" +msgstr "สิ้นสุดà¸à¸²à¸£à¸•à¸±à¸”ตรงนี้" + +msgid "end favourites edit" +msgstr "จบรายà¸à¸²à¸£à¹‚ปรด" + +msgid "entertainment (10-16 year old)" +msgstr "" + +msgid "entertainment (6-14 year old)" +msgstr "" + +msgid "equal to" +msgstr "เท่าà¸à¸±à¸š" + +msgid "equestrian" +msgstr "" + +msgid "exit DVD player or return to file browser" +msgstr "ออà¸à¸ˆà¸²à¸à¹‚หมดเครื่องเล่นดีวีดี หรือà¸à¸¥à¸±à¸šà¹„ปดูไฟล์ข้อมูล" + +msgid "exit movielist" +msgstr "" + +msgid "exit network adapter configuration" +msgstr "ออà¸à¸ˆà¸²à¸à¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าระบบเครือข่าย" + +msgid "exit networkadapter setup menu" +msgstr "ออà¸à¸ˆà¸²à¸à¹€à¸¡à¸™à¸¹à¸•à¸±à¹‰à¸‡à¸„่าระบบเครือข่าย" + +msgid "experimental film/video" +msgstr "" + +msgid "false" +msgstr "" + +msgid "fashion" +msgstr "" + +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "ชนิดไฟล์ (BMP, PNG, JPG, GIF)" + +msgid "filename" +msgstr "ชื่อไฟล์" + +msgid "film/cinema" +msgstr "" + +msgid "fine arts" +msgstr "" + +msgid "fine-tune your display" +msgstr "ปรับหน้าจอà¹à¸šà¸šà¸¥à¸°à¹€à¸­à¸µà¸¢à¸”" + +msgid "fitness & health" +msgstr "" + +#, fuzzy +msgid "flat alphabetic" +msgstr "เรียงตามอัà¸à¸©à¸£" + +#, fuzzy +msgid "flat alphabetic reverse" +msgstr "เรียงตามอัà¸à¸©à¸£" + +msgid "folk/traditional music" +msgstr "" + +msgid "football/soccer" +msgstr "" + +msgid "foreign countries/expeditions" +msgstr "" + +msgid "forward to the next chapter" +msgstr "ข้ามไปตอนต่อไป" + +msgid "free" +msgstr "เหลืออยู่" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "" + +msgid "game show/quiz/contest" +msgstr "" + +msgid "gardening" +msgstr "" + +msgid "go to deep standby" +msgstr "เข้าสู่โหมด Deep standby" + +msgid "go to standby" +msgstr "เข้าสู้โหมด Standby" + +msgid "grab this frame as bitmap" +msgstr "เà¸à¹‡à¸šà¸«à¸™à¹‰à¸²à¸ˆà¸­à¸™à¸µà¹‰à¸¥à¸‡à¹à¸Ÿà¹‰à¸¡" + +msgid "green" +msgstr "เขียว" + +msgid "handicraft" +msgstr "" + +msgid "height" +msgstr "" + +msgid "help..." +msgstr "ช่วยเหลือ..." + +msgid "horizontal" +msgstr "à¹à¸™à¸§à¸™à¸­à¸™ (H)" + +msgid "information/education/school program" +msgstr "" + +msgid "init module" +msgstr "เริ่มต้นโมดูล" + +msgid "init modules" +msgstr "เริ่มต้นโมดูล" + +msgid "insert mark here" +msgstr "à¹à¸—รà¸à¸•à¸£à¸‡à¸•à¸³à¹à¸«à¸™à¹ˆà¸‡à¸™à¸µà¹‰" + +msgid "invalid type" +msgstr "" + +msgid "jazz" +msgstr "" + +msgid "jump back to the previous title" +msgstr "à¸à¸¥à¸±à¸šà¹„ปเรื่องà¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²" + +msgid "jump forward to the next title" +msgstr "ข้ามไปยังเรื่องต่อไป" + +msgid "languages" +msgstr "" + +msgid "leave movie player..." +msgstr "ออà¸à¸ˆà¸²à¸à¸ªà¹ˆà¸§à¸™à¹€à¸¥à¹ˆà¸™à¸ à¸²à¸žà¸¢à¸™à¸•à¹Œ..." + +msgid "left" +msgstr "ซ้าย" + +msgid "left, wrapped" +msgstr "" + +msgid "leisure hobbies (general)" +msgstr "" + +msgid "length" +msgstr "ความยาว" + +msgid "limit ..., aborting !" +msgstr "" + +msgid "list style compact" +msgstr "à¹à¸ªà¸”งรายà¸à¸²à¸£à¹à¸šà¸šà¸ªà¸±à¹‰à¸™" + +msgid "list style compact with description" +msgstr "à¹à¸ªà¸”งรายà¸à¸²à¸£à¹à¸šà¸šà¸ªà¸±à¹‰à¸™à¸žà¸£à¹‰à¸­à¸¡à¸„ำอธิบาย" + +msgid "list style default" +msgstr "à¹à¸ªà¸”งรูปà¹à¸šà¸šà¹€à¸£à¸´à¹ˆà¸¡à¸•à¹‰à¸™" + +msgid "list style single line" +msgstr "à¹à¸ªà¸”งà¹à¸šà¸šà¸šà¸£à¸£à¸—ัดเดียว" + +msgid "literature" +msgstr "" + +msgid "live broadcast" +msgstr "" + +msgid "locked" +msgstr "ล๊อคà¹à¸¥à¹‰à¸§" + +msgid "loopthrough to" +msgstr "ปล่อยผ่านไปที่" + +msgid "magazines/reports/documentary" +msgstr "" + +msgid "manual" +msgstr "ทำเอง" + +msgid "martial sports" +msgstr "" + +msgid "medicine/physiology/psychology" +msgstr "" + +msgid "menu" +msgstr "เมนู" + +msgid "mins" +msgstr "น." + +msgid "minutes" +msgstr "นาที" + +msgid "month" +msgstr "เดือน" + +msgid "motor sport" +msgstr "" + +msgid "motoring" +msgstr "" + +msgid "move down to last entry" +msgstr "ย้ายลงไปท้ายสุด" + +msgid "move down to next entry" +msgstr "ย้ายลงไป" + +msgid "move up to first entry" +msgstr "ย้ายไปบนสุด" + +msgid "move up to previous entry" +msgstr "ย้ายไปà¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²à¸™à¸µà¹‰" + +msgid "movie/drama (general)" +msgstr "" + +msgid "multinorm" +msgstr "multinorm" + +msgid "music/ballet/dance (general)" +msgstr "" + +msgid "musical/opera" +msgstr "" + +msgid "nature/animals/environment" +msgstr "" + +msgid "never" +msgstr "ไม่เลย" + +msgid "new media" +msgstr "" + +msgid "news magazine" +msgstr "" + +msgid "news/current affairs (general)" +msgstr "" + +msgid "news/weather report" +msgstr "" + +msgid "no" +msgstr "ไม่" + +msgid "no CAId selected" +msgstr "ไม่มี CAId ใดๆ ถูà¸à¹€à¸¥à¸·à¸­à¸" + +msgid "no CI slots found" +msgstr "ไม่พบ CI" + +msgid "no module found" +msgstr "ไม่พบโมดูลใดๆ เลย" + +msgid "no storage devices found" +msgstr "" + +msgid "none" +msgstr "ไม่มี" + +msgid "normal" +msgstr "" + +msgid "not configured" +msgstr "" + +msgid "not locked" +msgstr "ไม่ล๊อค" + +msgid "not supported" +msgstr "" + +msgid "not used" +msgstr "ไม่ถูà¸à¹ƒà¸Šà¹‰" + +msgid "nothing connected" +msgstr "ไม่พบà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•à¹ˆà¸­" + +msgid "of a DUAL layer medium used." +msgstr "ของสื่อบันทึà¸à¸ªà¸­à¸‡à¸Šà¸±à¹‰à¸™" + +msgid "of a SINGLE layer medium used." +msgstr "ของสื่อบันทึà¸à¹à¸šà¸šà¸Šà¸±à¹‰à¸™à¹€à¸”ียว" + +msgid "off" +msgstr "ปิด" + +msgid "offset is" +msgstr "" + +msgid "on" +msgstr "เปิด" + +msgid "on READ ONLY medium." +msgstr "บนสื่อบันทึà¸à¸­à¹ˆà¸²à¸™à¹„ด้อย่างเดียว" + +msgid "on end of movie" +msgstr "" + +msgid "once" +msgstr "ครั้งเดียว" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +msgid "open nameserver configuration" +msgstr "ตั้งค่า Nameserver" + +msgid "original" +msgstr "" + +msgid "original language" +msgstr "" + +msgid "pass" +msgstr "ผ่าน" + +msgid "performing arts" +msgstr "" + +msgid "play as picture in picture" +msgstr "" + +msgid "play in mainwindow" +msgstr "" + +msgid "please press OK when ready" +msgstr "à¸à¸”ปุ่ม OK เมื่อพร้อม" + +msgid "please wait, loading picture..." +msgstr "à¸à¸³à¸¥à¸±à¸‡à¹‚หลดภาพ à¸à¸£à¸¸à¸“ารอสัà¸à¸„รู่..." + +msgid "popular culture/traditional arts" +msgstr "" + +msgid "pre-school children's program" +msgstr "" + +msgid "receiver software because updates are available." +msgstr "" + +msgid "record" +msgstr "บันทึà¸" + +msgid "recording..." +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸šà¸±à¸™à¸—ึà¸à¸£à¸²à¸¢à¸à¸²à¸£..." + +msgid "red" +msgstr "à¹à¸”ง" + +msgid "religion" +msgstr "" + +msgid "remarkable people" +msgstr "" + +msgid "remove after this position" +msgstr "ลบหลังจาà¸à¸•à¸³à¹à¸«à¸™à¹ˆà¸‡à¸™à¸µà¹‰à¸­à¸­à¸" + +msgid "remove all alternatives" +msgstr "ลบทางเลือà¸à¸­à¸·à¹ˆà¸™à¸­à¸­à¸à¸—ั้งหมด" + +msgid "remove all new found flags" +msgstr "ลบเครื่องหมาย\"ใหม่\" ออà¸à¸—ั้งหมด" + +msgid "remove before this position" +msgstr "ลบà¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²à¸•à¸³à¹à¸«à¸™à¹ˆà¸‡à¸™à¸µà¹‰à¸­à¸­à¸" + +msgid "remove bookmark" +msgstr "ลบบุ๊คมาร์ค" + +msgid "remove directory" +msgstr "ลบโฟล์เดอร์ออà¸" + +msgid "remove entry" +msgstr "ลบรายà¸à¸²à¸£à¸™à¸µà¹‰à¸­à¸­à¸" + +msgid "remove from parental protection" +msgstr "ยà¸à¹€à¸¥à¸´à¸à¸‚้อจำà¸à¸±à¸”อายุ" + +msgid "remove new found flag" +msgstr "ลบเครื่องหมาย \"ใหม่\" ออà¸" + +msgid "remove selected satellite" +msgstr "ลบดาวเทียมนี้ออà¸" + +msgid "remove this mark" +msgstr "ลบรายà¸à¸²à¸£à¸™à¸µà¹‰à¸­à¸­à¸" + +msgid "rename entry" +msgstr "" + +msgid "repeat playlist" +msgstr "à¸à¸¥à¸±à¸šà¹„ปที่สารบัà¸" + +msgid "repeated" +msgstr "เล่นซ้ำ" + +msgid "reverse by date" +msgstr "" + +msgid "rewind to the previous chapter" +msgstr "à¸à¸¥à¸±à¸šà¹„ปตอนที่à¹à¸¥à¹‰à¸§" + +msgid "right" +msgstr "ขวา" + +msgid "right, wrapped" +msgstr "" + +msgid "rock/pop" +msgstr "" + +msgid "romance" +msgstr "" + +msgid "save last directory on exit" +msgstr "บันทึà¸à¹‚ฟล์เดอร์ปัจจุบันเมื่อออà¸" + +msgid "save playlist on exit" +msgstr "บันทึà¸à¸ªà¸²à¸£à¸šà¸±à¸à¹€à¸¡à¸·à¹ˆà¸­à¸­à¸­à¸" + +msgid "scan state" +msgstr "สถานะà¸à¸²à¸£à¸„้นหา" + +msgid "science fiction/fantasy/horror" +msgstr "" + +msgid "second cable of motorized LNB" +msgstr "เลือà¸à¸ªà¸²à¸¢à¸šà¸±à¸‡à¸„ับ LNB" + +msgid "seconds" +msgstr "วินาที" + +msgid "select" +msgstr "เลือà¸" + +msgid "select CAId's" +msgstr "เลือภCAId's" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +msgid "select menu entry" +msgstr "เลือà¸à¹€à¸¡à¸™à¸¹à¸ˆà¸²à¸à¸£à¸²à¸¢à¸à¸²à¸£" + +msgid "select movie" +msgstr "เลือà¸à¸ à¸²à¸žà¸¢à¸™à¸•à¹Œ" + +msgid "select the movie path" +msgstr "" + +msgid "serious music/classic music" +msgstr "" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "" + +msgid "service PIN" +msgstr "" + +msgid "set as startup service" +msgstr "" + +msgid "setup PIN" +msgstr "" + +msgid "show DVD main menu" +msgstr "à¹à¸ªà¸”งเมนูหลัà¸à¸‚องดีวีดี" + +msgid "show all tags" +msgstr "" + +msgid "show alternatives" +msgstr "à¹à¸ªà¸”งทางเลือà¸à¸­à¸·à¹ˆà¸™" + +msgid "show event details" +msgstr "à¹à¸ªà¸”งรายละเอียดรายà¸à¸²à¸£" + +msgid "show extended description" +msgstr "" + +msgid "show mediaplayer on mainmenu" +msgstr "" + +msgid "show softwaremanager in setup menu" +msgstr "" + +msgid "show softwaremanager on blue button" +msgstr "" + +msgid "show tag menu" +msgstr "" + +msgid "show transponder info" +msgstr "à¹à¸ªà¸”งข้อมูล Transponder" + +msgid "show/game show (general)" +msgstr "" + +msgid "shuffle" +msgstr "" + +msgid "shut down" +msgstr "" + +msgid "simple" +msgstr "à¹à¸šà¸šà¸‡à¹ˆà¸²à¸¢" + +msgid "skip backward" +msgstr "ย้อนหลัง" + +msgid "skip forward" +msgstr "ข้ามไป" + +msgid "soap/melodram/folkloric" +msgstr "" + +msgid "social/political issues/economics (general)" +msgstr "" + +msgid "social/spiritual science" +msgstr "" + +msgid "sorting of playlists" +msgstr "" + +msgid "special characters" +msgstr "" + +msgid "special events" +msgstr "" + +msgid "special format data DVD (HDTV compatible)" +msgstr "" + +msgid "sports (general)" +msgstr "" + +msgid "sports magazine" +msgstr "" + +msgid "standard" +msgstr "มาตรà¸à¸²à¸™" + +msgid "start cut here" +msgstr "ตัดตรงนี้" + +msgid "start directory" +msgstr "โฟล์เดอร์เริ่มต้น" + +msgid "stepsize" +msgstr "" + +msgid "stereo" +msgstr "สเตอริโอ" + +msgid "stop using as startup service" +msgstr "" + +msgid "switch to bookmarks" +msgstr "เข้าสู่บุ๊คมาร์ค" + +msgid "switch to filelist" +msgstr "เข้าสู่สารบัà¸à¹„ฟล์" + +msgid "switch to the next angle" +msgstr "เลือà¸à¸¡à¸¸à¸¡à¸¡à¸­à¸‡à¸­à¸±à¸™à¸•à¹ˆà¸­à¹„ป" + +msgid "switch to the next audio track" +msgstr "เลือà¸à¸£à¹ˆà¸­à¸‡à¹€à¸ªà¸µà¸¢à¸‡à¸­à¸±à¸™à¸•à¹ˆà¸­à¹„ป" + +msgid "switch to the next subtitle language" +msgstr "เลือà¸à¸‹à¸±à¸šà¹„ตเติ้ลต่อไป" + +msgid "talk show" +msgstr "" + +msgid "team sports" +msgstr "" + +msgid "technology/natural science" +msgstr "" + +msgid "template file" +msgstr "ไฟล์ต้นฉบับ" + +msgid "tennis/squash" +msgstr "" + +msgid "this recording" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸–ูà¸à¸šà¸±à¸™à¸—ึà¸" + +msgid "this service is protected by a parental control pin" +msgstr "บริà¸à¸²à¸£à¸™à¸µà¹‰à¸–ูà¸à¸„วบคุมอายุรับชม" + +msgid "toggle time, chapter, audio, subtitle info" +msgstr "สลับช่วงเวลา ตอนที่ เสียง หรือซับไตเติ้ล" + +msgid "top" +msgstr "" + +msgid "tourism/travel" +msgstr "" + +msgid "true" +msgstr "" + +msgid "unavailable" +msgstr "ไม่สามารถใช้ได้" + +msgid "unconfirmed" +msgstr "ยังไม่ยืนยัน" + +msgid "undefined" +msgstr "" + +msgid "unknown" +msgstr "ไม่มีข้อมูล" + +msgid "unknown service" +msgstr "ไม่ทราบชนิดบริà¸à¸²à¸£" + +msgid "unpublished" +msgstr "" + +msgid "until standby/restart" +msgstr "" + +msgid "user defined" +msgstr "ผู้ใช้ระบุ" + +msgid "variety show" +msgstr "" + +msgid "vertical" +msgstr "à¹à¸™à¸§à¸•à¸±à¹‰à¸‡ (V)" + +msgid "wait for ci..." +msgstr "รอ CI" + +msgid "wait for mmi..." +msgstr "รอ MMI..." + +msgid "waiting" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸£à¸­" + +msgid "water sport" +msgstr "" + +msgid "weekly" +msgstr "รายสัปดาห์" + +msgid "west" +msgstr "" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "" + +msgid "whitelist" +msgstr "รายà¸à¸²à¸£à¸—ี่อนุà¸à¸²à¸•" + +msgid "width" +msgstr "" + +msgid "winter sport" +msgstr "" + +msgid "wireless network interface" +msgstr "" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "" +msgstr[1] "" + +msgid "working" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸—ำงาน" + +msgid "yellow" +msgstr "เหลือง" + +msgid "yes" +msgstr "ใช่" + +msgid "yes (keep feeds)" +msgstr "ใช่ (เà¸à¹‡à¸šà¸Ÿà¸µà¸”นี้ไว้)" + +msgid "zap" +msgstr "เปลี่ยนช่อง" + +msgid "zap and record" +msgstr "" + +msgid "zapped" +msgstr "เปลี่ยนช่องà¹à¸¥à¹‰à¸§" + +#~ msgid "AA" +#~ msgstr "AA" + +#~ msgid "AB" +#~ msgstr "AB" + +#, fuzzy +#~ msgid "Activate PiP" +#~ msgstr "ภาพซ้อนภาพ" + +#, fuzzy +#~ msgid "Add/remove timer for current event" +#~ msgstr "บันทึà¸à¸£à¸²à¸¢à¸à¸²à¸£ (หยุดเมื่อจบรายà¸à¸²à¸£)" + +#, fuzzy +#~ msgid "All satellites" +#~ msgstr "ดาวเทียมทั้งหมด" + +#~ msgid "BA" +#~ msgstr "BA" + +#~ msgid "BB" +#~ msgstr "BB" + +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "เมื่อà¸à¸” 'หยุดเล่นชั่วคราว' ให้" + +#~ msgid "Committed DiSEqC command" +#~ msgstr "คำสั่ง Committed DiSEqC" + +#~ msgid "DiSEqC repeats" +#~ msgstr "DiSEqC repeats" + +#~ msgid "No satellite frontend found!!" +#~ msgstr "ไม่พบอุปà¸à¸£à¸“์ดาวเทียม" + +#~ msgid "Remove timer" +#~ msgstr "เอาตารางเวลานี้ออà¸" + +#~ msgid "Send DiSEqC" +#~ msgstr "ส่งคำสั่ง DiSEqC" + +#, fuzzy +#~ msgid "Switch next channel" +#~ msgstr "รายà¸à¸²à¸£à¸•à¹ˆà¸­à¹„ป" + +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "คำสั่ง Uncommitted DiSEqC" + +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "ย้ายไปยังช่องบริà¸à¸à¸²à¸£à¸à¹ˆà¸­à¸™à¸—ี่ค้นหาดาวเทียม" diff --git a/po/tr.po b/po/tr.po new file mode 100644 index 0000000..7cda868 --- /dev/null +++ b/po/tr.po @@ -0,0 +1,8041 @@ +msgid "" +msgstr "" +"Project-Id-Version: enigma2 OPLi-3.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2013-09-03 19:48+0200\n" +"Last-Translator: Yetkin AYDIN <yetkina@gmail.com>\n" +"Language-Team: Yetkin AYDIN <yetkina@gmail.com>\n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural= (1 != 1);\n" +"X-Generator: Poedit 1.5.4\n" +"X-Poedit-SourceCharset: UTF-8\n" + +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"GeliÅŸmiÅŸ seçenekler ve ayarlar." + +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"Lütfen OK'a bastıktan sonra bekleyin!" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" +"\n" +"Alıcı ayarlarını Yedekle." + +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"Güncelleme sunucusu adresini düzenleyin." + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" +"\n" +"Alıcınız için uzantıları veya eklentileri yönetin" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" +"\n" +"Alıcının yazılımı online güncelle...." + +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"Devam etmek için kumandanızın OK tuÅŸuna basın." + +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"Yedeklerinizi tarihe göre geri yükleyin." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" +"\n" +"Alıcının ayarlarını geri yükle." + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" +"\n" +"Yeni bir yazılım ile alıcıyı Geri yükleyin." + +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"Yereldeki eklentileri arayın ve kurun" + +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Yedekleme aygıtını seçin.\n" +"Mevcut aygıt: " + +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"Paketleri görün, yükleyin veya yüklü paketleri kaldırın." + +msgid " (PiP)" +msgstr " (RiR)" + +msgid " (Radio)" +msgstr " (Radyo)" + +msgid " (TV)" +msgstr " (TV)" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +msgid " extensions." +msgstr " eklentileri." + +msgid " ms" +msgstr " ms" + +msgid " packages selected." +msgstr " paket seçildi." + +msgid " updates available." +msgstr " güncelleme mevcut." + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "%2d:%02d" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "%2d:%02d:%02d" + +msgid "%A %d %B" +msgstr "%A %d %B" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "%A %e %B" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "%A %e %B %Y" + +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "%a %e/%m" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "%a %e/%m %-H:%M" + +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d saat" + +#, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "" + +#, python-format +msgid "%d min" +msgstr "%d dk" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d dakika" + +#, python-format +msgid "%d minutes" +msgstr "%d dakika" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d saniye" + +#, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "" + +#, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "%d kablosuz aÄŸlar bulundu!" + +msgid "%d-%b-%Y %-H:%M" +msgstr "%d-%b-%Y %-H:%M" + +msgid "%d-%m" +msgstr "%d-%m" + +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "%k:%M %e/%m" + +#, python-format +msgid "%s %s free disk space" +msgstr "%s %s boÅŸ disk alanı" + +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "Artık %s kullanılmaktadır. Bu silinmelidir?" + +#, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "%s mevcut paket güncellendi" + +#, python-format +msgid "%s%d min" +msgstr "" + +#, python-format +msgid "%s/%s: %s" +msgstr "%s/%s: %s" + +msgid "(ZAP)" +msgstr "(ZAP)" + +msgid "(empty)" +msgstr "(boÅŸ)" + +msgid "(show optional DVD audio menu)" +msgstr "(opsiyonel DVD ses menüsünü göster)" + +msgid "* Only available if more than one interface is active." +msgstr "* Yalnızca birden fazla arayüz olduÄŸunda kullanılabilir." + +msgid "/s" +msgstr "" + +msgid "0" +msgstr "0" + +msgid "1" +msgstr "1" + +msgid "1.0" +msgstr "1.0" + +msgid "1.1" +msgstr "1.1" + +msgid "1.2" +msgstr "1.2" + +msgid "12V output" +msgstr "12V çıkış" + +msgid "13 V" +msgstr "13 V" + +msgid "16:10" +msgstr "16:10" + +msgid "16:10 Letterbox" +msgstr "16:10 Sinemaskop" + +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +msgid "16:9" +msgstr "16:9" + +msgid "16:9 Letterbox" +msgstr "16:9 Sinemaskop" + +msgid "16:9 always" +msgstr "16:9 sürekli" + +msgid "18 V" +msgstr "18 V" + +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "" + +msgid "24" +msgstr "" + +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +msgid "3" +msgstr "3" + +msgid "30" +msgstr "" + +msgid "3d mode" +msgstr "3d mode" + +msgid "4" +msgstr "4" + +msgid "4:3" +msgstr "4:3" + +msgid "4:3 Letterbox" +msgstr "4:3 Sinemaskop" + +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +msgid "5" +msgstr "5" + +msgid "6" +msgstr "6" + +msgid "7" +msgstr "7" + +msgid "8" +msgstr "8" + +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +msgid "<Current movielist location>" +msgstr "<Mevcut film listesi konumu>" + +msgid "<Default movie location>" +msgstr "<Varsayılan film konumu>" + +msgid "<Last timer location>" +msgstr "<Son zamanlayıcı konumu>" + +msgid "<unknown>" +msgstr "<bilinmiyor>" + +msgid "??" +msgstr "??" + +msgid "A" +msgstr "A" + +#, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"Yüklendikten bu yana yapılandırma dosyası (% s) deÄŸiÅŸtirilmiÅŸtir.\n" +"DeÄŸiÅŸiklikleri korumak istiyor musunuz?" + +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"Kurulumdan sonra (%s) konfigürasyon dosyası deÄŸiÅŸtirilmiÅŸ.\n" +"Kendi dosyanızı tutmak istiyor musunuz?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"Kayıt süresi dolmuÅŸ. Alıcı bekleme konumuna\n" +"geçecek. Åžimdi yapılsın mı?" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"Kayıt süresi dolmuÅŸ. Alıcı kapatılacak\n" +"Åžimdi Kapatılsın mı?" + +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "Belirtilen buketteki tüm kanallar için görsel EPG" + +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"Kayıt baÅŸlatıldı:\n" +"%s" + +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"Kayıt devam ediyor.\n" +"Ne yapmak istiyorsunuz?" + +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "Kayıt devam ediyor. Lütfen pozisyoner yapılandırmasını denemeden önce kaydı durdurun." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "Bir kayıt ÅŸu anda çalışıyor. Tarama yapmayı denemeden önce Kaydı durdurunuz." + +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "Kayıt devam ediyor. Lütfen uydu arayıcıyı baÅŸlatmadan önce kaydı durdurun." + +#, python-format +msgid "A required tool (%s) was not found." +msgstr "Ä°htiyaç duyulan (%s) aracı bulunamadı." + +msgid "A search for available updates is currently in progress." +msgstr "GüncelleÅŸtirmeler kontrol ediliyor." + +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"Yapılandırılmış ikinci bir arayüz bulundu.\n" +"\n" +"Ä°kinci aÄŸ arayüzünü devre dışı bırakmak istiyor musunuz?" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"Uyku zamanlayıcı Alıcıyı hazırda bekleme\n" +"moduna ayarlamak istiyor. Åžimdi yap?" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"Uyku zamanlayıcı Alıcıyı kapatacak.\n" +"Åžimdi Kapat?" + +msgid "A small overview of the available icon states and actions." +msgstr "Ä°konların anlamlarını ve görevlerini burada görebilirsiniz." + +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"Kayıt zamanlayıcı baÅŸarısız!\n" +"TV fonksiyonu devre dışı bırakılıp tekrar denensin mi?\n" + +msgid "A/V settings" +msgstr "A/V ayarları" + +msgid "AC3/DTS downmix" +msgstr "AC3/DTS downmix" + +msgid "Abort" +msgstr "Vazgeç" + +msgid "About" +msgstr "Hakkında" + +msgid "About..." +msgstr "Hakkında..." + +msgid "Accesspoint:" +msgstr "EriÅŸim noktası:" + +msgid "Action on long powerbutton press" +msgstr "Kapatma düğmesine uzun süre basılınca" + +msgid "Action on short powerbutton press" +msgstr "Kapatma düğmesine kısa süre basılınca" + +msgid "Activate Picture in Picture" +msgstr "Resim içinde resim (RiR) 'i etkinleÅŸtir" + +msgid "Activate current configuration" +msgstr "Geçerli yapılandırmayı etkinleÅŸtirin" + +msgid "Activate network settings" +msgstr "AÄŸ ayarlarını etkinleÅŸtir" + +msgid "Activate the configured network settings." +msgstr "Yapılandırılmış aÄŸ ayarlarını etkinleÅŸtirin." + +msgid "Adapter settings" +msgstr "AÄŸ donanım ayarları" + +msgid "Add" +msgstr "Ekle" + +msgid "Add Bookmark" +msgstr "" + +msgid "Add a mark" +msgstr "Ä°ÅŸaret ekle" + +msgid "Add a nameserver entry" +msgstr "Bir isim sunucusu ekleyin" + +msgid "Add a new title" +msgstr "Yeni baÅŸlık ekle" + +msgid "Add bookmark" +msgstr "Yer imi ekle" + +msgid "Add directory to playlist" +msgstr "Çalma listesine dizin ekle" + +msgid "Add file to playlist" +msgstr "Çalma listesine dosya ekle" + +msgid "Add files to playlist" +msgstr "Çalma listesine dosyaları ekle" + +msgid "Add more details to the crash log" +msgstr "Kilitlenme günlüğüne daha fazla ayrıntı eklensin" + +msgid "Add provider" +msgstr "SaÄŸlayıcı ekle" + +msgid "Add recording (enter recording duration)" +msgstr "Kayıt ekleyin (Kayıt süresi girin)" + +msgid "Add recording (enter recording endtime)" +msgstr "Kayıt ekleyin (Kaydın bitiÅŸ süresini gir)" + +msgid "Add recording (indefinitely)" +msgstr "Kayıt Ekle (süresiz)" + +msgid "Add recording (stop after current event)" +msgstr "Kayıt Ekle (geçerli olaydan sonra dur)" + +msgid "Add service" +msgstr "Servis Ekle" + +msgid "Add timer" +msgstr "Zamanlayıcı Ekle" + +msgid "Add title" +msgstr "BaÅŸlık ekle" + +msgid "Add to bouquet" +msgstr "Bukete ekle" + +msgid "Add to favourites" +msgstr "Favorilere ekle" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "3D Ayarları" + +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "Tüm renk tonları ayırt edilebilir, ama mümkün olduÄŸunca doymuÅŸ görünür böylece renk ayarlarını yapın. EÄŸer sonuçtan memnun deÄŸilseniz, video ince ayarını kapatmak için OK tuÅŸuna basın, ya da diÄŸer test ekranlarını seçmek için sayı tuÅŸlarını kullanın." + +msgid "Advanced" +msgstr "" + +msgid "Advanced options" +msgstr "GeliÅŸmiÅŸ seçenekler" + +msgid "Advanced restore" +msgstr "GeliÅŸmiÅŸ Geri Yükleme" + +msgid "Advanced software" +msgstr "GeliÅŸmiÅŸ yazılım" + +msgid "Advanced software plugin" +msgstr "GeliÅŸmiÅŸ yazılım eklentisini" + +msgid "Advanced video enhancement setup" +msgstr "GeliÅŸmiÅŸ görüntü iyileÅŸtirme ayarları" + +msgid "Advanced video setup" +msgstr "GeliÅŸmiÅŸ video ayarları" + +msgid "After event" +msgstr "Eylem bittikten sonra" + +msgid "Album" +msgstr "Albüm" + +msgid "Alignment of events" +msgstr "" + +msgid "Alignment of service names" +msgstr "" + +msgid "All" +msgstr "Tümü" + +msgid "All ages" +msgstr "Her yaÅŸtan" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "Paylaşım" + +msgid "Allocate unused memory index" +msgstr "Kullanılmayan bellek indeksi ayır" + +msgid "Allow quit movieplayer with exit" +msgstr "" + +msgid "Allow subtitle language to equal audio language" +msgstr "Aynı ses dili için altyazı dili saÄŸlar" + +msgid "Allow subtitles for hearing impaired" +msgstr "IÅŸitme engelliler için altyazı saÄŸlar" + +msgid "Alpha" +msgstr "Saydamlık" + +msgid "Alternative" +msgstr "Alternatif" + +msgid "Alternative numbering mode" +msgstr "Alternatif numaralandırma modu" + +msgid "Alternative services tuner priority" +msgstr "Alternatifli kanallarda tuner önceliÄŸi" + +msgid "Always ask" +msgstr "Her zaman sor" + +msgid "Always hide infobar" +msgstr "" + +msgid "An empty filename is illegal." +msgstr "BoÅŸ dosya adı geçersiz." + +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "Paket listesi indirilirken bir hata oluÅŸtu. Lütfen tekrar deneyiniz." + +msgid "An unknown error occurred!" +msgstr "Bilinmeyen bir hata oluÅŸtu!" + +msgid "And will put your receiver in standby over " +msgstr "" + +msgid "Any activity" +msgstr "Bir etkinlik" + +msgid "Arabic" +msgstr "Arapça" + +msgid "Are you sure to remove this entry?" +msgstr "" + +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"Bu aÄŸ yapılandırmasını etkinleÅŸtirmek istiyor musunuz?\n" +"\n" + +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"AÅŸağıdaki yedeÄŸi\n" +"silmek istiyor musun?:\n" + +msgid "Are you sure you want to exit this wizard?" +msgstr "Sihirbazdan çıkmak istiyor musunuz?" + +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"AÄŸ arabirimlerini yeniden baÅŸlatmak istediÄŸinizden emin misiniz?\n" +"\n" + +#, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Åžu yedeÄŸini geri yüklemek istediÄŸinizden\n" +"emin misiniz:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" + +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Yedek geri yüklensin mi?\n" +"Yedek geri yüklendikten sonra alıcıyı yeniden baÅŸlatılacak!" + +msgid "Artist" +msgstr "Sanatçı" + +msgid "Arts/Culture" +msgstr "GzlSntlr/Kültür" + +msgid "Ask user" +msgstr "Sor" + +msgid "Aspect ratio" +msgstr "En-Boy oranı" + +msgid "Assigned CAIds:" +msgstr "Atanan CalDS:" + +msgid "Assigned services/provider:" +msgstr "Atanan servisler/saÄŸlayıcılar:" + +msgid "At beginning" +msgstr "BaÅŸlangıçta" + +msgid "At end" +msgstr "Sonunda" + +msgid "Audio" +msgstr "Ses" + +msgid "Audio PID" +msgstr "Ses PID" + +msgid "Audio language selection 1" +msgstr "Ses dili seçimi 1" + +msgid "Audio language selection 2" +msgstr "Ses dili seçimi 2" + +msgid "Audio language selection 3" +msgstr "Ses dili seçimi 3" + +msgid "Audio language selection 4" +msgstr "Ses dili seçimi 4" + +msgid "Audio options..." +msgstr "Ses seçenekleri ..." + +#, python-format +msgid "Audio track (%s) format" +msgstr "Ses formatı (%s)" + +#, python-format +msgid "Audio track (%s) language" +msgstr "Ses formatı dili (%s)" + +msgid "Author: " +msgstr "Yazar: " + +msgid "Authoring mode" +msgstr "Yayınlama kipi" + +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Otomatik" + +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Belirtilen sürelerde otomatik bölümlere ayrılsın mı? dakika (0=ayırma)" + +msgid "Auto flesh" +msgstr "Otomatik" + +msgid "Auto focus" +msgstr "Otomatik netleme" + +msgid "Auto focus commencing ..." +msgstr "Otomatik netleme baÅŸlamadan ..." + +msgid "Auto language selection" +msgstr "Otomatik dil seçimi" + +msgid "Auto scart switching" +msgstr "Otomatik scart deÄŸiÅŸtirme" + +msgid "Automatic" +msgstr "Otomatik" + +msgid "Automatic scan" +msgstr "Otomatik arama" + +msgid "Automatically start timeshift after" +msgstr "" + +msgid "Automatically turn on external subtitles" +msgstr "" + +msgid "Available format variables" +msgstr "Kullanılabilir format deÄŸiÅŸkenleri" + +msgid "B" +msgstr "B" + +msgid "BER" +msgstr "BER" + +msgid "BER:" +msgstr "BER:" + +msgid "Back" +msgstr "Geri" + +msgid "Background" +msgstr "Arkaplan" + +msgid "Background color" +msgstr "Arkaplan rengi" + +msgid "Background delete option" +msgstr "Arka planda silme seçeneÄŸi" + +msgid "Background delete speed" +msgstr "Arka planda silme hızı" + +msgid "Backup completed." +msgstr "Yedek oluÅŸturuldu." + +msgid "Backup failed." +msgstr "Yedekleme baÅŸarısız oldu." + +msgid "Backup is running..." +msgstr "Yedekleme çalışıyor..." + +msgid "Backup system settings" +msgstr "Sistem ayarlarını yedekle" + +msgid "Band" +msgstr "Bant" + +msgid "Bandwidth" +msgstr "Bant geniÅŸliÄŸi" + +msgid "Basque" +msgstr "Bask" + +msgid "Begin time" +msgstr "BaÅŸlama zamanı" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +msgid "Behavior of 0 key in PiP-mode" +msgstr "RiR kipinde 0 tuÅŸu görevi" + +msgid "Behavior when a movie is started" +msgstr "Film baÅŸlatıldığı zaman" + +msgid "Behavior when a movie is stopped" +msgstr "Film durdurulduÄŸu zaman" + +msgid "Behavior when a movie reaches the end" +msgstr "Filmin sonuna ulaşıldığında" + +msgid "Big PiP" +msgstr "" + +msgid "Bitrate:" +msgstr "Hız:" + +msgid "Black screen" +msgstr "Siyah ekran" + +msgid "Black screen till locked" +msgstr "Siyah ekrana kadar kilitli" + +msgid "Block noise reduction" +msgstr "Blok gürültü azaltma" + +msgid "Blue boost" +msgstr "Mavi doygunluÄŸu" + +msgid "Bookmarks" +msgstr "Yer imleri" + +msgid "Brightness" +msgstr "Parlaklık" + +msgid "Bulgarian" +msgstr "Bulgar" + +msgid "Burn DVD" +msgstr "DVD yaz" + +#, python-format +msgid "Burn audio track (%s)" +msgstr "Yazılan ses izi (%s)" + +msgid "Burn existing image to DVD" +msgstr "Varolan imajı DVD'ye yaz" + +msgid "Burn to DVD" +msgstr "DVD'ye yaz" + +msgid "Bus: " +msgstr "Yol: " + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "Varsayılan olarak; SNR, dB olarak (Tuner tarafından destekleniyorsa) gösterilecektir. Bu ayar SNR yerine yüzde iÅŸareti gösterir." + +msgid "C" +msgstr "C" + +msgid "C-Band" +msgstr "C-Bant" + +msgid "CH" +msgstr "" + +msgid "CI assignment" +msgstr "CI ataması" + +msgid "CVBS" +msgstr "CVBS" + +msgid "Cable" +msgstr "Kablo" + +msgid "Cable Scan" +msgstr "Kablo Arama" + +msgid "Cache thumbnails" +msgstr "Küçük resim önbelleÄŸi" + +msgid "Calculate" +msgstr "Hesapla" + +msgid "Calculate all positions" +msgstr "Her pozisyonda Hesapla" + +msgid "Calculation complete" +msgstr "Hesaplandı" + +msgid "Calibrate" +msgstr "Kalibrasyon" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "" + +msgid "Cancel" +msgstr "Vazgeç" + +msgid "Cannot determine" +msgstr "Belirlenemiyor" + +msgid "Cannot find any signal ..., aborting !" +msgstr "Herhangi bir sinyal bulunamadı... Ä°ptal!" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "Çöp kutusuna farklı bir disk veya sistem dosyaları taşıyamazsınız" + +msgid "Cannot move to trash can" +msgstr "Çöp kutusuna taşıyamazsınız" + +msgid "Capacity: " +msgstr "Kapasite: " + +msgid "Card" +msgstr "Kart" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "DVB altyazı Ortada" + +msgid "Center time-labels and remove date" +msgstr "" + +msgid "Change bouquets in quickzap" +msgstr "Kanal deÄŸiÅŸtirirken buketler arası geçiÅŸe izin" + +msgid "Change pin code" +msgstr "Åžifre deÄŸiÅŸtir" + +msgid "Change recording (duration)" +msgstr "Kayıt deÄŸiÅŸtirme (süre)" + +msgid "Change recording (endtime)" +msgstr "Kayıt deÄŸiÅŸtirme (bitiÅŸ zamanı)" + +msgid "Change repeat and delay settings?" +msgstr "Tekrarlama ve gecikme ayarlarını deÄŸiÅŸtirin?" + +msgid "Change service PIN" +msgstr "Servis PIN'ini deÄŸiÅŸtir" + +msgid "Change service PINs" +msgstr "Servis PIN'ini deÄŸiÅŸtir" + +msgid "Change setup PIN" +msgstr "Kurulum PIN'ini deÄŸiÅŸtir" + +msgid "Change step size" +msgstr "Ayar yapılırken atlama boyutu" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "Adım boyutunu deÄŸiÅŸtirme" + +msgid "Channel" +msgstr "Kanal" + +msgid "Channel list type" +msgstr "Kanal listesi tipi" + +msgid "Channel not in services list" +msgstr "Kanal, servis listesinde mevcut deÄŸil" + +msgid "Channel selection" +msgstr "Kanal seçimi" + +msgid "Channel:" +msgstr "Kanal:" + +msgid "Channellist menu" +msgstr "Kanal listesi menüsü" + +msgid "Chap." +msgstr "Bölüm" + +msgid "Chapter" +msgstr "Bölüm" + +msgid "Chapter:" +msgstr "Bölüm:" + +msgid "Check" +msgstr "Kontrol et" + +msgid "Check the internet connection" +msgstr "Ä°nternet baÄŸlantısını kontrol et" + +msgid "Check the internet connection again" +msgstr "Ä°nternet baÄŸlantısını tekrar kontrol et" + +msgid "Checking filesystem..." +msgstr "Dosya sistemi kontrol ediliyor..." + +msgid "Checking the internet connection" +msgstr "Ä°nternet baÄŸlantısı kontrol ediliyor..." + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" +"Tuner kontrolü%d\n" +"DiSEqC port %s için %s" + +msgid "Children/Youth" +msgstr "Çocuklar/Gençler" + +msgid "Choose which tuner to configure." +msgstr "Yapılandırmak için tuner seçimi." + +msgid "Circular left" +msgstr "Dairesel sola" + +msgid "Circular right" +msgstr "Dairesel saÄŸa" + +msgid "Cleanup" +msgstr "Temizle" + +msgid "Clear" +msgstr "Temizle" + +msgid "Clear before scan" +msgstr "Arama öncesi kanal listesini temizle" + +msgid "Clear fixed" +msgstr "Temizle" + +msgid "Clear log" +msgstr "Kayıt günlüğünü sil" + +msgid "Clear playlist" +msgstr "Çalma listesini temizle" + +msgid "Close" +msgstr "Kapat" + +msgid "Close PiP on exit" +msgstr "" + +msgid "Close title selection" +msgstr "BaÅŸlık seçimini kapat" + +msgid "Code rate HP" +msgstr "HP Kod oranı" + +msgid "Code rate LP" +msgstr "LP Kod oranı" + +msgid "Coderate HP" +msgstr "HP Kod oranı" + +msgid "Coderate LP" +msgstr "LP Kod oranı" + +msgid "Collection name" +msgstr "Koleksiyon adı" + +msgid "Collection settings" +msgstr "Koleksiyon ayarları" + +msgid "Color format" +msgstr "Renk formatı" + +msgid "Command execution..." +msgstr "Komut çalıştırılıyor..." + +msgid "Command order" +msgstr "Komut sırası" + +msgid "Common Interface" +msgstr "Ortak Arayüz" + +msgid "Common Interface assignment" +msgstr "Ortak Arabirim ataması" + +msgid "Communication" +msgstr "Ä°letiÅŸim" + +msgid "Compact flash" +msgstr "Kompakt flaÅŸ" + +msgid "Complete" +msgstr "Tamamı" + +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "Kompleks (karışık ses izlerine ve açılara izin verir)" + +msgid "Composition of the recording filenames" +msgstr "Kayıt iÅŸleminde dosya adı düzeni" + +msgid "Configuration mode" +msgstr "Yapılandırma modu" + +#, python-format +msgid "Configuration mode: %s" +msgstr "Yapılandırma modu: %s" + +msgid "Configuration..." +msgstr "Yapılandırma..." + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "" + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "" + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "Bilgi çubuÄŸu gözünme süresini ayarla." + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "Biten olaylar EPG de kaç dakika görünmeli. Kullanışlı, biten veya ertelenmiÅŸti bir olay hakkında bilgi gerektiÄŸinde." + +msgid "Configure how recording filenames are constructed." +msgstr "Kayıt dosyaları nasıl isimlerdirilmeli" + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "" + +msgid "Configure interface" +msgstr "Arayüz yapılandırması" + +msgid "Configure nameservers" +msgstr "Ä°sim sunucu yapılandırması" + +msgid "Configure on which devices the background delete option should be used." +msgstr "Arka plan silme seçeneÄŸi kullanılması gereken aygıtları yapılandırın." + +msgid "Configure remote control type" +msgstr "Uzaktan kumanda türünü yapılandırın" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "Bu LNB için DiSEqC modunu yapılandırın." + +msgid "Configure the IP address." +msgstr "IP adresini yapılandırın." + +msgid "Configure the aspect ratio of the screen." +msgstr "Ekranın en boy oranını yapılandırın." + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "Film oyntılırken el ile durdurulduÄŸunda davranışı yapılandırın." + +msgid "Configure the behavior when movie playback is started." +msgstr "Kayıttan film oynatma baÅŸlatıldığında davranışını yapılandırın." + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "Kayıttan film oynatma sırasında, film sonuna ulaşıldığında davranışını yapılandırın." + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "Altyazı sınır geniÅŸliÄŸini yapılandırın. Karanlık kenarlık hafif bir arka plan üzerinde altyazıları okumayı kolaylaÅŸtırır." + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "Bekleme sırasında ön panel ekranının parlaklık seviyesini yapılandırın." + +msgid "Configure the brightness level of the front panel display." +msgstr "Ön panel ekranının parlaklık seviyesini yapılandırın." + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "" + +msgid "Configure the color of the teletext subtitles." +msgstr "Teletext altyazı rengini yapılandırın." + +msgid "Configure the contrast level of the front panel display." +msgstr "Ön panel ekranın kontrast seviyesini yapılandırın." + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "" + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "" + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "" + +msgid "Configure the first audio language (highest priority)." +msgstr "Birinci ses dilini (en yüksek öncelik) yapılandırın." + +msgid "Configure the first subtitle language (highest priority)." +msgstr "Birinci alt yazı dili (en yüksek öncelik) yapılandırın." + +msgid "Configure the font size of the subtitles." +msgstr "Altyazı yazı tipi boyutunu yapılandırın." + +msgid "Configure the fourth audio language." +msgstr "Dördüncü ses dilini yapılandırın." + +msgid "Configure the fourth subtitle language." +msgstr "Dördüncü altyazı dili yapılandırın." + +msgid "Configure the function of a long press on the power button." +msgstr "Güç düğmesine uzun süre basma iÅŸlevini yapılandırın." + +msgid "Configure the function of a short press on the power button." +msgstr "Güç düğmesine kısa süre basma iÅŸlevini yapılandırın." + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "PIP aktif olduÄŸunda '0 'düğmesinin iÅŸlevini yapılandırın." + +msgid "Configure the gateway." +msgstr "AÄŸ geçidini yapılandırın." + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "Dolby Digital ses parçalarını genel ses gecikmesini yapılandırın." + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "Stereo ses parçalarını genel ses gecikmesini yapılandırın." + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "Bekleme modunda HDD boÅŸta kalma süresi ayarla" + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "Altyazıları yatay hizalamayı yapılandırın." + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "Ä°lk hızlı ileri sarma hızını yapılandırın. Hızlı ileri sarma düğmesine bastığınızda, sarma bu hızda baÅŸlayacak." + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "Ä°lk geri sarma hızını yapılandırın. Geri sarma düğmesine bastığınızda, sarma bu hızda baÅŸlayacak." + +msgid "Configure the latitude of your location." +msgstr "BulunduÄŸunuz konumun enlemini yapılandırın." + +msgid "Configure the longitude of your location." +msgstr "BulunduÄŸunuz konumu boylamı yapılandırın." + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "Kayıtların kullanacağı minimum disk miktarını yapılandırın. Alan miktarını bu deÄŸerin altına düştüğünde, silinmiÅŸ öğeler çöp kutusundan kaldırılacaktır." + +msgid "Configure the nameserver (DNS)." +msgstr "Ä°sim sunucusunu (DNS) yapılandırın." + +msgid "Configure the netmask." +msgstr "AÄŸ maskesini yapılandırın." + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "Öğeleri otomatik olarak çöp kutusundan kaldırmak için gün sayısını yapılandırın." + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "Otomatik olarak zaman listesini silmek için eski kayıtların tutulacağı gün sayısını yapılandırın." + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "Milisaniye cinsinden çevrimdışı ÅŸifre çözme gecikmesini yapılandırın. Yapılandırılan gecikme her bir control word eÅŸlik deÄŸiÅŸikliÄŸini görülür." + +msgid "Configure the possible fast forward speeds." +msgstr "Mümkün olan hızlı ileri sarma hızını yapılandırın." + +msgid "Configure the possible rewind speeds." +msgstr "Mümkün olan hızlı geri sarma hızını yapılandırın." + +msgid "Configure the primary EPG language." +msgstr "Ana EPG dili yapılandırın." + +msgid "Configure the refresh rate of the screen." +msgstr "Ekranın yenileme hızını yapılandırın." + +msgid "Configure the screen resolution in PC output mode." +msgstr "PC çıkış modundayken ekran çözünürlüğünü yapılandırın." + +msgid "Configure the second audio language." +msgstr "Ikinci ses dilini yapılandırın." + +msgid "Configure the second subtitle language." +msgstr "Ikinci altyazı dilini yapılandırın." + +msgid "Configure the secondary EPG language." +msgstr "Ikinci EPG dilini yapılandırın." + +msgid "Configure the sharpness of the video scaling." +msgstr "Video ölçekleme keskinliÄŸini yapılandırın." + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "'1'/'3' Düğmeleri için atlama zaman aralığını yapılandırın." + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "'4'/'6' Düğmeleri için atlama zaman aralığını yapılandırın." + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "'7'/'9' Düğmeleri için atlama zaman aralığını yapılandırın." + +msgid "Configure the slow motion speeds." +msgstr "YavaÅŸ oynatma hızını yapılandırın." + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "Arka planda silme iÅŸleminin hızını yapılandırın. Düşük hız sabit disk sürücüsünün performansını daha az kullanacaktır." + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "Zaman bilgisi mevcut deÄŸilken altyazı gecikmesini yapılandırın." + +msgid "Configure the third audio language." +msgstr "Üçüncü ses dilini yapılandırın." + +msgid "Configure the third subtitle language." +msgstr "Üçüncü altyazı dili yapılandırın." + +msgid "Configure the transparency of the OSD." +msgstr "OSD'nin saydamlığını yapılandırın." + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "Grafik DVB altyazılarının siyah arka plan saydamlığını yapılandırın." + +msgid "Configure the tuner mode." +msgstr "Tuner modunda yapılandırın." + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "Film listesinde gösterilen durum göstergesi simgelerinin türünü yapılandırın." + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "Ekranın altından altyazılarının arasındaki ölçüyü yapılandırın." + +msgid "Configure the video output mode (or resolution)." +msgstr "Video çıkış modunu (veya çözünürlüğü) yapılandırın." + +msgid "Configure the way in which the receiver changes channels." +msgstr "Alıcı kanal deÄŸiÅŸtirme yolunu yapılandırın." + +msgid "Configure where completed timers show up in the timer list." +msgstr "Tamamlanmış zamanları, zaman listesinde nedere görüneceÄŸini yapılandırın." + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "OK iki kez basıldığında, ikinci bilgi çubuÄŸu (ne kadar süre için) gösterilir . Ä°kinci bilgi çubuÄŸu mevcut kanal hakkında ek bilgi içerir." + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "Çok kanallı ses parçalarını stereo downmix olup olmayacağını yapılandırın." + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "Motorlu çanak hareket halindeyken bir simge gösterilmesinin gereken olup olmadığını yapılandırın." + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "Hangi eriÅŸim seviyesinde yapılandırma menüsü ayarlansın. Uzman düzeyinde tüm öğelere eriÅŸim saÄŸlanır." + +msgid "Configure which color format should be used on the SCART output." +msgstr "SCART çıkışında kullanılması gereken renk formatını yapılandırın." + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "" + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "Tercih edilen tuner tipini yapılandırın, deÄŸiÅŸik tunerlerde aynı servis kullanıldığında." + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "Birden fazla tuner varken, tercih edilen tuneri yapılandırın. 'Otomatik' olarak ayarlanırsa, sistem kanal/uydu en küçük numaralı tunere öncelik verecektir." + +msgid "Configure your internal LAN" +msgstr "Yerel aÄŸ ayarlarınızı yapılandırın" + +msgid "Configure your network again" +msgstr "Kablosuz ağınızı yeniden yapılandırın" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "AÄŸ ayarlarınızı yapılandırmak ve taramayı baÅŸlatmak için OK tuÅŸuna basın" + +msgid "Configure your wireless LAN again" +msgstr "Kablosuz aÄŸ ayarlarınızı yeniden yapılandırın" + +msgid "Configures which video output connector will be used." +msgstr "Kullanılacak video çıkışını yapılandırın." + +msgid "Configuring" +msgstr "Ayarlanıyor" + +msgid "Conflicting timer" +msgstr "Zamanlama çakışması" + +msgid "Connect" +msgstr "BaÄŸlan" + +msgid "Connect to a wireless network" +msgstr "Bir Kablosuz aÄŸa baÄŸlanın" + +msgid "Connected satellites" +msgstr "" + +msgid "Connected to" +msgstr "BaÄŸlanılıyor" + +msgid "Connected!" +msgstr "BaÄŸlandı!" + +msgid "Constellation" +msgstr "Takımyıldız" + +msgid "Content does not fit on DVD!" +msgstr "İçerik DVD'ye sığmıyor!" + +msgid "Continue" +msgstr "Ä°lerle" + +msgid "Continue in background" +msgstr "Arkaplanda devam et" + +msgid "Continue playback" +msgstr "Oynatmaya devam" + +msgid "Continue playing" +msgstr "Oynatmaya devam et" + +msgid "Continues play (loop)" +msgstr "Sürekli oynat (döngü)" + +msgid "Contrast" +msgstr "Kontrast" + +msgid "Convert ext3 filesystem to ext4" +msgstr "ext3 dosya sistemini ext4 e dönüştür." + +msgid "Convert ext3 to ext4" +msgstr "Dönüştür ext3'ü ext4'e" + +msgid "Converting ext3 to ext4..." +msgstr "Dönüştürülüyor ext3 - ext4'e..." + +msgid "Copy" +msgstr "Kopyala" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "Alıcı .NFI besleme sunucusuna baÄŸlanamıyor:" + +msgid "Could not find installed channel list." +msgstr "Yüklü kanal listesi bulunamadı." + +msgid "Could not load medium! No disc inserted?" +msgstr "Ortam yüklenemedi! Takılı disk yok?" + +msgid "Could not open Picture in Picture" +msgstr "Resim içinde resim açılamıyor" + +#, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "Çakışan zamanlama %s kayıt yapılamıyor." + +#, python-format +msgid "Could not record due to invalid service %s" +msgstr "Geçersiz hizmet %s nedeniyle kayıt bulunamadı" + +msgid "Create DVD-ISO" +msgstr "DVD-ISO oluÅŸtur" + +msgid "Create more detailed crash log" +msgstr "Daha ayrıntılı çökme günlüğü oluÅŸtur" + +#, python-format +msgid "Creating directory %s failed." +msgstr "%s klasörü oluÅŸturulamadı." + +msgid "Creating filesystem" +msgstr "Dosya sistemi oluÅŸturma" + +msgid "Creating partition" +msgstr "Bölüm oluÅŸturma" + +msgid "Croatian" +msgstr "Hırvatça" + +msgid "Current CEC address" +msgstr "Güncel CEC adresi" + +msgid "Current device: " +msgstr "Geçerli aygıt:" + +msgid "Current event EPG" +msgstr "Geçerli EPG etkinliÄŸi" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +msgid "Current settings:" +msgstr "Geçerli ayarlar:" + +msgid "Current transponder" +msgstr "Geçerli transponder" + +msgid "Current value: " +msgstr "Mevcut deÄŸer: " + +msgid "Current version:" +msgstr "Geçerli sürüm:" + +msgid "Currently installed image" +msgstr "Yüklü image" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +msgid "Custom skip time for '1'/'3' buttons" +msgstr "'1'/'3' Düğmeleri için özel atlama süresi" + +msgid "Custom skip time for '4'/'6' buttons" +msgstr "'4'/'6' Düğmeleri için özel atlama süresi" + +msgid "Custom skip time for '7'/'9' buttons" +msgstr "'7'/'9' Düğmeleri için özel atlama süresi" + +msgid "Customize" +msgstr "ÖzelleÅŸtir" + +msgid "Customize channel list cursor behavior" +msgstr "" + +msgid "Cut" +msgstr "Kes" + +msgid "Cutlist editor..." +msgstr "Film düzenleyici..." + +msgid "Czech" +msgstr "Çekçe" + +msgid "D" +msgstr "D" + +msgid "DHCP" +msgstr "DHCP" + +msgid "DMM advanced" +msgstr "DMM geliÅŸmiÅŸ" + +msgid "DMM normal" +msgstr "DMM normal" + +msgid "DUAL LAYER DVD" +msgstr "ÇİFT KATMAN DVD" + +msgid "DVB subtitle black transparency" +msgstr "DVB altyazı siyah saydamlığı" + +msgid "DVB-C" +msgstr "DVB-C" + +msgid "DVB-C ANNEX C" +msgstr "DVB-C EK C" + +msgid "DVB-S" +msgstr "DVB-S" + +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "DVB-T" + +msgid "DVB-T2" +msgstr "DVB-T2" + +msgid "DVD data format" +msgstr "DVD veri biçimi" + +msgid "DVD file browser" +msgstr "DVD dosya gezgini" + +msgid "DVD media toolbox" +msgstr "DVD medya araçları" + +msgid "DVD player" +msgstr "DVD oynatıcı" + +msgid "DVD titlelist" +msgstr "DVD parça listesi" + +msgid "Danish" +msgstr "Danca" + +msgid "Date" +msgstr "Tarih" + +msgid "Date/time input" +msgstr "Tarih/Saat giriÅŸi" + +msgid "Deep standby" +msgstr "Derin bekleme" + +msgid "Default" +msgstr "Varsayılan" + +msgid "Default movie location" +msgstr "Varsayılan film konumu" + +msgid "Default settings" +msgstr "Varsayılan ayarlar" + +msgid "Delay before key repeat starts:" +msgstr "Key (ÅŸifre) beklemeden önce tekrar süresi:" + +msgid "Delay for external subtitles" +msgstr "" + +msgid "Delete" +msgstr "Sil" + +msgid "Delete entry" +msgstr "Seçimi sil" + +msgid "Delete failed!" +msgstr "Silme iÅŸlemi baÅŸarısız!" + +msgid "Delete file" +msgstr "Dosy Sil" + +msgid "Delete playlist entry" +msgstr "Çalma listesi girdisini silin" + +msgid "Delete saved playlist" +msgstr "Kayıtlı çalma listesini silin" + +msgid "Delete timer" +msgstr "" + +msgid "Delete..." +msgstr "Sil..." + +msgid "Deleted" +msgstr "SilinmiÅŸ" + +msgid "Deleted items" +msgstr "SilinmiÅŸ öğeler" + +msgid "Depth" +msgstr "Derinlik" + +msgid "Descramble http streams" +msgstr "http akış çözücü" + +msgid "Description" +msgstr "Açıklama" + +msgid "Deselect" +msgstr "Seçimi Kaldır" + +msgid "Details for plugin: " +msgstr "Eklenti detayları:" + +msgid "Detected HDD:" +msgstr "Tanınan HDD:" + +msgid "Detected NIMs:" +msgstr "Tanınan NIM:" + +msgid "Devicename:" +msgstr "Aygıt Adı​​:" + +msgid "Devide" +msgstr "" + +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +msgid "DiSEqC mode" +msgstr "DiSEqC tipi" + +#, python-format +msgid "DiSEqC port %s: %s" +msgstr "DiSEqC portu %s: %s" + +msgid "DiSEqC-tester settings" +msgstr "DiSEqC-test ayarları" + +msgid "Dialing:" +msgstr "Aranıyor:" + +msgid "Digital contour removal" +msgstr "Sayısal çerçeve kaldırma" + +msgid "Direct playback of linked titles without menu" +msgstr "LinklenmiÅŸ baÅŸlıkları menü olmadan hemen oynat." + +msgid "Directory" +msgstr "Klasör" + +#, python-format +msgid "Directory %s does not exist." +msgstr "%s klasörü yok." + +#, python-format +msgid "Directory %s nonexistent." +msgstr "" + +msgid "Directory browser" +msgstr "Klasör gezgini" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "" + +#, python-format +msgid "Directory contains %s and %s." +msgstr "" + +msgid "Disable" +msgstr "Pasif" + +msgid "Disable Picture in Picture" +msgstr "Resim içinde resim (RiR) 'i kapat" + +msgid "Disable background scanning" +msgstr "Arka plan taramasını devre dışı bırak" + +msgid "Disable timer" +msgstr "" + +msgid "Disabled" +msgstr "Devre dışı" + +msgid "Disconnect" +msgstr "BaÄŸlı deÄŸil" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "Kayıtlar için ayrılacak disk alanı (GB)" + +msgid "Display 16:9 content as" +msgstr "16:9 içeriÄŸi ÅŸu ÅŸekilde göster" + +msgid "Display 4:3 content as" +msgstr "4:3 içeriÄŸi ÅŸu ÅŸekilde göster" + +msgid "Display >16:9 content as" +msgstr ">16:9 içeriÄŸi ÅŸu ÅŸekilde göster" + +msgid "Display and userinterface" +msgstr "Görüntüleme ve kullanıcı arayüzü" + +msgid "Display message before playing next movie" +msgstr "Sonraki filmi oynamadan önce mesaj görüntüler" + +msgid "Display setup" +msgstr "Ekran kurulumu" + +msgid "Do not change" +msgstr "DeÄŸiÅŸtirme" + +msgid "Do not record" +msgstr "Kayıt etmeyin" + +msgid "Do nothing" +msgstr "Hiçbir ÅŸey yapma" + +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Dosya sistemini kontrol etmek istiyor musunuz?\n" +"Bu iÅŸlem çok uzun sürebilir!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" +"Gerçekten dosya sistemi dönüştürmek istiyor musunuz?\n" +"Geri dönüşü yok!" + +#, python-format +msgid "Do you really want to delete %s?" +msgstr "%s 'i silmek istediÄŸinizden emin misiniz?" + +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"\"%s\" eklentisini indirmek\n" +"istiyor musunuz?" + +msgid "Do you really want to exit?" +msgstr "Çıkmak istediÄŸinizden emin misiniz?" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" +"Gerçekten aygıtın baÅŸlatılmasını istiyor musunuz?\n" +"Diskteki tüm veriler kaybolacak!" + +#, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"\"%s\"eklentisini silmek\n" +"istiyor musun?" + +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "%s klasörünü silmek istiyor musunuz?" + +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "%s isimli yer imini silmek istiyor musunuz?" + +msgid "Do you want this?" +msgstr "" + +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Bu koleksiyonu DVD medyasına yazmak istiyor musunuz?" + +msgid "Do you want to do a service scan?" +msgstr "Kanal araması yapmak ister misiniz?" + +msgid "Do you want to do another manual service scan?" +msgstr "BaÅŸka kanal araması yapacak mısınız?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "%s bellenimini indirmek istiyor musunuz?" + +msgid "Do you want to install a channel list?" +msgstr "Bir kanal listesi yüklemek istiyor musunuz?" + +msgid "Do you want to install the package:\n" +msgstr "Seçilen paketi yüklemek istiyor musunuz?:\n" + +msgid "Do you want to play DVD in drive?" +msgstr "DVD'yi oynatmak istiyor musunuz?" + +msgid "Do you want to preview this DVD before burning?" +msgstr "DVD'yi yazmadan önce önizleme yapmak istiyor musunuz?" + +msgid "Do you want to reboot your receiver?" +msgstr "Alıcıyı yeniden baÅŸlatmak istiyor musunuz?" + +msgid "Do you want to remove the package:\n" +msgstr "Seçilen paketi kaldırmak istiyor musunuz?:\n" + +msgid "Do you want to restore your settings?" +msgstr "Ayarlarınızı geri yüklemek istiyor musunuz?" + +msgid "Do you want to resume this playback?" +msgstr "Oynatmaya kaldığınız yerden devam etmek istiyor musunuz?" + +#, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Alıcıyı %s 'ye güncellemek istiyor musunuz?" + +msgid "Do you want to update your receiver?" +msgstr "Alıcı güncellensin mi?" + +msgid "Do you want to upgrade the package:\n" +msgstr "Seçilen paketi güncellemek istiyor musunuz?:\n" + +msgid "Don't stop current event but disable coming events" +msgstr "Geçerli olayı devre dışı bırakmayın ancak gelecek olayları durdur" + +#, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "" + +msgid "Download" +msgstr "Ä°ndir" + +#, python-format +msgid "Download %s from server" +msgstr "Sunucudan %s indir" + +msgid "Download .NFI-files for USB-flasher" +msgstr "USB yükleyici için .NFI dosyası indir" + +msgid "Download plugins" +msgstr "Eklentileri indir" + +msgid "Downloadable new plugins" +msgstr "Ä°ndirilebilir yeni eklentiler" + +msgid "Downloadable plugins" +msgstr "Ä°ndirilebilir eklentiler" + +msgid "Downloading" +msgstr "Ä°ndiriliyor..." + +msgid "Downloading plugin information. Please wait..." +msgstr "Downloading plugin information. Please wait..." + +msgid "Dutch" +msgstr "Flemenkçe" + +msgid "Dynamic contrast" +msgstr "Dinamik kontrast" + +msgid "E" +msgstr "E" + +msgid "EPG" +msgstr "EPG" + +msgid "EPG language selection 1" +msgstr "EPG Dil seçimi 1" + +msgid "EPG language selection 2" +msgstr "EPG Dil seçimi 2" + +msgid "EPG selection" +msgstr "EPG Dil seçimi" + +msgid "EPG settings" +msgstr "EPG ayarları" + +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "HATA - arama baÅŸarısız (%s)!" + +msgid "East" +msgstr "DoÄŸu" + +msgid "East limit set" +msgstr "DoÄŸu limit ayarı" + +msgid "Edit" +msgstr "Düzenle" + +msgid "Edit DNS" +msgstr "DNS Düzenle" + +msgid "Edit bouquets list" +msgstr "Buket listesini düzenle" + +msgid "Edit chapters of current title" +msgstr "Geçerli baÅŸlık için bölümleri düzenle" + +msgid "Edit services list" +msgstr "Kanal listesini düzenle" + +msgid "Edit settings" +msgstr "Ayarları düzenle" + +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "Alıcınızın isim sunucusunu yapılandırın..\n" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "Uydu alıcınızın aÄŸ yapılandırmasını düzenleyin.\n" + +msgid "Edit timer" +msgstr "" + +msgid "Edit title" +msgstr "BaÅŸlığı düzenle" + +msgid "Edit upgrade source url." +msgstr "Güncelleme sunucusu adresini düzenleyin." + +msgid "Education/Science/..." +msgstr "EÄŸitim/Bilim/..." + +msgid "Electronic Program Guide" +msgstr "Elektronik Televizyon Rehberi" + +msgid "Enable" +msgstr "EtkinleÅŸtir" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +msgid "Enable 5V for active antenna" +msgstr "Aktif anten için 5V etkinleÅŸtir" + +msgid "Enable EIT EPG" +msgstr "EIT EPG Aktif" + +msgid "Enable MHW EPG" +msgstr "MHW EPG Aktif" + +msgid "Enable Netmed EPG" +msgstr "Netmed EPG Aktif" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "ViaSat EPG Aktif" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +msgid "Enable bouquet selection in multi-EPG" +msgstr "Çoklu-EPG içinde buket seçimini etkinleÅŸtir" + +msgid "Enable freesat EPG" +msgstr "Freesat EPG Aktif" + +msgid "Enable multiple bouquets" +msgstr "Çoklu buket kullanımını etkinleÅŸtir" + +msgid "Enable parental control" +msgstr "Aile korumasını aç" + +msgid "Enable teletext caching" +msgstr "Teletext önbelleÄŸini etkinleÅŸtir" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +msgid "Enabled" +msgstr "Etkin" + +msgid "Encrypted: " +msgstr "ÅžifrelenmiÅŸ: " + +msgid "Encryption" +msgstr "Åžifreleme" + +msgid "Encryption key" +msgstr "Åžifre" + +msgid "Encryption key type" +msgstr "Åžifreleme tipi" + +msgid "Encryption:" +msgstr "Åžifreleme:" + +msgid "End time" +msgstr "BitiÅŸ zamanı" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +msgid "English" +msgstr "Ä°ngilizce" + +msgid "Enigma2 skin selector" +msgstr "Enigma2 arayüz seçici" + +msgid "Enter main menu..." +msgstr "Ana menüye gir..." + +msgid "Enter pin code" +msgstr "Åžifreyi girin" + +msgid "Enter the service pin" +msgstr "Kanal ÅŸifresini girin" + +msgid "Equal to" +msgstr "" + +msgid "Error" +msgstr "Hata" + +msgid "Error code" +msgstr "Hata kodu" + +msgid "Error executing plugin" +msgstr "Eklentinin çalıştırılması sırasında hata oluÅŸtu" + +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Hata: %s\n" +"Tekrar denensin mi?" + +msgid "Estonian" +msgstr "Estçe" + +msgid "Ethernet network interface" +msgstr "AÄŸ arayüzü" + +msgid "Event font size (relative to skin size)" +msgstr "Olay yazı tipi boyutu (arayüz ayarlarıyla aynı)" + +msgid "Event view" +msgstr "Olay görüntüleme" + +msgid "Event view menu" +msgstr "Olay görüntüleme menüsü" + +msgid "Everywhere" +msgstr "Heryerde" + +msgid "Exceeds dual layer medium!" +msgstr "Çift katman orta ölçeÄŸi aşıyor!" + +msgid "Execution finished!!" +msgstr "Uygulama bitti!!" + +msgid "Execution progress:" +msgstr "Uygulama ilerlemesi:" + +msgid "Exif" +msgstr "Çıkış" + +msgid "Exit" +msgstr "Çıkış" + +msgid "Exit EPG" +msgstr "EPG'den Çık" + +msgid "Exit editor" +msgstr "Editörden çık" + +msgid "Exit input device selection." +msgstr "GiriÅŸ aygıtı seçiminden çık." + +msgid "Exit media player?" +msgstr "" + +msgid "Exit mediaplayer" +msgstr "Ortam Oynatıcı'dan Çık" + +msgid "Exit movie list" +msgstr "Film listesinden çık" + +msgid "Exit movie player?" +msgstr "Film oynatıcısından Çık?" + +msgid "Exit nameserver configuration" +msgstr "Ä°sim sunucusu ayarlarından Çık" + +msgid "Exit network interface list" +msgstr "AÄŸ arabirimi listesinden Çık" + +msgid "Exit network wizard" +msgstr "AÄŸ sihirbazından çık" + +msgid "Exit the wizard" +msgstr "Sihirbazdan çık" + +msgid "Expert" +msgstr "Uzman" + +msgid "Extend sleeptimer 15 minutes" +msgstr "" + +msgid "Extended Software" +msgstr "GeliÅŸtirilmiÅŸ Yazılım" + +msgid "Extended Software Plugin" +msgstr "GeliÅŸtirilmiÅŸ Yazılım Eklentisi" + +msgid "Extended network setup plugin..." +msgstr "GeliÅŸmiÅŸ aÄŸ kurulum eklentisi ..." + +msgid "Extended setup..." +msgstr "GeliÅŸmiÅŸ kurulum..." + +msgid "Extensions" +msgstr "Ä°laveler" + +msgid "Extensions management" +msgstr "Ä°laveler yöneticisi" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "" + +msgid "Extra motor options" +msgstr "" + +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "FTA" + +msgid "Factory reset" +msgstr "Fabrika ayarlarına dön" + +msgid "Failed" +msgstr "BaÅŸarısız" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "Yazma baÅŸarısız /tmp/positionersetup.log: " + +#, python-format +msgid "Fan %d" +msgstr "Fan %d" + +#, python-format +msgid "Fan %d PWM" +msgstr "Fan %d PWM" + +#, python-format +msgid "Fan %d voltage" +msgstr "Fan %d voltaj" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +msgid "Fast" +msgstr "Hızlı" + +msgid "Fast DiSEqC" +msgstr "Hızlı DiSEqC" + +msgid "Fast Scan" +msgstr "Hızlı Tarama" + +msgid "Fast epoch" +msgstr "Hızlı tur" + +msgid "Fast forward speeds" +msgstr "Hızlı ileri sarma hızı" + +msgid "Favourites" +msgstr "Favoriler" + +msgid "File appears to be busy.\n" +msgstr "Dosya meÅŸgul gibi görünüyor.\n" + +msgid "Filesystem check" +msgstr "Dosya sistemi kontrolü" + +msgid "Final position at" +msgstr "Son pozisyonunda" + +msgid "Final position at index" +msgstr "Dizindeki son pozisyonda" + +msgid "Fine movement" +msgstr "Ince hareket" + +msgid "Finetune" +msgstr "Ä°nce ayar" + +msgid "Finished" +msgstr "Tamamlandı" + +msgid "Finished configuring your network" +msgstr "AÄŸ yapılandırması tamamlandı." + +msgid "Finished restarting your network" +msgstr "AÄŸ yeniden baÅŸlatıldı" + +msgid "Finnish" +msgstr "Fince" + +msgid "Fixed" +msgstr "Sabit" + +msgid "Flash" +msgstr "FlaÅŸ" + +msgid "Flashing failed" +msgstr "FlaÅŸa yazma baÅŸarısız" + +msgid "Following tasks will be done after you press OK!" +msgstr "Belirtilen görevler OK'a basmanızın ardından iÅŸleme alınacak!" + +msgid "Format" +msgstr "Biçimlendir" + +msgid "Forward volume keys" +msgstr "Ses tuÅŸları Ä°leri" + +msgid "Frame size in full view" +msgstr "Tam ekranda çerçeve boyutu" + +msgid "French" +msgstr "Fransızca" + +msgid "Frequency" +msgstr "Frekans" + +msgid "Frequency bands" +msgstr "Frekans bantları" + +msgid "Frequency scan step size(khz)" +msgstr "Frekans arama adımı (khz)" + +msgid "Frequency steps" +msgstr "Frekans adımları" + +msgid "Frequency:" +msgstr "" + +msgid "Fri" +msgstr "Cuma" + +msgid "Friday" +msgstr "Cuma" + +msgid "From :" +msgstr "Gönderen :" + +#, python-format +msgid "Frontprocessor version: %d" +msgstr "ÖniÅŸlemci sürümü: %d" + +msgid "Full transparency" +msgstr "Tam saydamlık" + +msgid "Fulview resulution" +msgstr "" + +msgid "Function of OK button" +msgstr "OK tuÅŸu fonksiyonu" + +msgid "Further Options" +msgstr "" + +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"Yeni arayüzü etkinleÅŸtirmek için yeniden baÅŸlatma gerekiyor\n" +"Grafik arayüzünü (GUI) yeniden baÅŸlatmak istiyor musunuz?" + +msgid "Gateway" +msgstr "AÄŸ geçidi" + +msgid "General AC3 delay" +msgstr "Genel AC3 gecikmesi" + +msgid "General PCM delay" +msgstr "Genel PCM gecikmesi" + +msgid "Genre" +msgstr "Tür" + +msgid "German" +msgstr "Almanca" + +msgid "Get latest experimental image" +msgstr "Son experimental (deneme) IMAJ'ı al" + +msgid "Get latest release image" +msgstr "Son sürüm IMAJ'ı al" + +msgid "Getting plugin information. Please wait..." +msgstr "Eklenti bilgisi getiriliyor. Lütfen bekleyin..." + +msgid "Go down the list" +msgstr "Listede aÅŸağı git" + +msgid "Go to first movie or last item" +msgstr "Ä°lk film ya da son öğeye git" + +msgid "Go to first movie or top of list" +msgstr "Ä°lk film ya da listenin en üstüne git" + +msgid "Go to first service" +msgstr "Ä°lk servise git" + +msgid "Go to last service" +msgstr "Son servise git" + +msgid "Go to next event" +msgstr "Sonraki olaya git" + +msgid "Go to next page of service" +msgstr "Sonraki Servis sayfasına git" + +msgid "Go to previous event" +msgstr "Önceki olay" + +msgid "Go to previous page of service" +msgstr "Önceki Servis sayfasına git" + +msgid "Go up the list" +msgstr "Listenin başına git" + +msgid "Goto" +msgstr "Git" + +msgid "Goto 0" +msgstr "0 a git" + +msgid "Goto :" +msgstr "Git :" + +msgid "Goto X" +msgstr "X e git" + +msgid "Goto index position" +msgstr "Index pozisyonuna git" + +msgid "Goto next day of events" +msgstr "" + +msgid "Goto next page of events" +msgstr "Sonraki olay sayfası" + +msgid "Goto position" +msgstr "Pozisyona git" + +msgid "Goto previous day of events" +msgstr "" + +msgid "Goto previous page of events" +msgstr "Önceki olay sayfası" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "GotoX kalibrasyonu" + +msgid "GraphMultiEpg Settings" +msgstr "Grafik arayüzlü çoklu Epg Ayarları" + +msgid "Graphical Multi EPG" +msgstr "Grafik arayüzlü çoklu EPG'yi göster" + +msgid "Greek" +msgstr "Yunanca" + +msgid "Green boost" +msgstr "YeÅŸil doygunluÄŸu" + +msgid "Guard interval" +msgstr "Koruma aralığı" + +msgid "HD list" +msgstr "HD listesi" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "TV den bekleme konumuna" + +msgid "Handle wakeup from TV" +msgstr "TV den uyandırma" + +msgid "Hard disk" +msgstr "HDD" + +msgid "Hard disk setup" +msgstr "HDD Ayarı" + +msgid "Hard disk standby after" +msgstr "HDD bekleme modundan sonra" + +msgid "Harddisk" +msgstr "Sabitdisk" + +msgid "Hardware: " +msgstr "Donanım: " + +msgid "Hebrew" +msgstr "Ä°branice" + +msgid "Helps setting up your dish" +msgstr "" + +msgid "Hidden network" +msgstr "GizlenmiÅŸ aÄŸ" + +msgid "Hide CI messages" +msgstr "CI mesejlarını sakla" + +msgid "Hide channel list in radio mode" +msgstr "Radyo modunda kanal listesini gizle" + +msgid "Hide known extensions" +msgstr "" + +msgid "Hide number markers" +msgstr "" + +msgid "Hide player" +msgstr "Oynatıcı gizle" + +msgid "Hide zap errors" +msgstr "Kanal deÄŸiÅŸtirme hatalarını gizle" + +msgid "Hierarchy info" +msgstr "HiyerarÅŸi bilgisi" + +msgid "Hierarchy information" +msgstr "HiyerarÅŸi bilgisi" + +msgid "High bitrate support" +msgstr "Yüksek bit oranı desteÄŸi" + +msgid "Hold screen" +msgstr "Ekranı dondur" + +msgid "Hold till locked" +msgstr "Kilitlenene kadar bekle" + +msgid "Home" +msgstr "Ev" + +msgid "Horizontal" +msgstr "Yatay" + +msgid "Horizontal turning speed" +msgstr "Yatay tarama hızı" + +msgid "How many minutes do you want to record?" +msgstr "Kaç dakikalık kayıt baÅŸlatmak istiyorsunuz?" + +msgid "Hue" +msgstr "Renk tonu" + +msgid "Hungarian" +msgstr "Macarca" + +msgid "IP address" +msgstr "IP adresi" + +msgid "ISO file is too large for this filesystem!" +msgstr "ISO dosyası bu dosya sistemi için çok büyük!" + +msgid "ISO path" +msgstr "ISO yol adı" + +msgid "Icons" +msgstr "Simgeler" + +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"EÄŸer bunu görüyorsanız, scart baÄŸlantınızla\n" +"ilgili bazı hatalar var. Geri dönmek için OK tuÅŸuna basın." + +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" +"EÄŸer TV'nizde parlaklık ve kontrast geliÅŸtirme özelliÄŸini kullanıyorsanız, devre dışı bırakın. TV ayarlarınızda \"dinamik\" ismiyle adlandırılan ayar aktifse, standart'a getirin. Zemin ışıklandırma (backlight) seviyesini ayarlayın.\n" +"Kontrast oranını olabildiÄŸince düşürün. Parlaklık seviyesini mümkün olduÄŸunca düşürün, en alttaki iki gri tonuda ayırt edebilecek ÅŸekilde ayarlarınızı yapın.\n" +"Parlak tonları ÅŸuan için dert etmeyin. Onları bir sonraki adımda ayarlayabilirsiniz.\n" +"Sonuçtan memnunsanız, OK tuÅŸuna basın." + +msgid "Image: " +msgstr "Imaj: " + +msgid "Immediate shutdown" +msgstr "Hemen Kapat" + +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "Zamanlanmış kayıt görevi baÅŸlatıldı, TV fonksiyonundan kayıt fonksiyonuna geçildi!\n" + +msgid "In progress" +msgstr "Devam ediyor" + +msgid "Inactivity Sleeptimer" +msgstr "" + +msgid "Include AIT in http streams" +msgstr "http akışlarında AIT dahil" + +msgid "Include ECM in http streams" +msgstr "Http akışlarında ECM dahil" + +msgid "Include EIT in http streams" +msgstr "Http akışlarında EIT dahil" + +msgid "Incorrect type service for PiP!" +msgstr "" + +msgid "Increased voltage" +msgstr "Arttırılmış voltaj" + +msgid "Index" +msgstr "Indeks" + +msgid "Index allocated:" +msgstr "Ayrılan Endeks:" + +msgid "Info" +msgstr "Bilgi" + +msgid "Info bar" +msgstr "Bilgi ÇubuÄŸu" + +msgid "Info bar timeout" +msgstr "Bilgi çubuÄŸu zaman aşımı" + +msgid "Infobar frontend data source" +msgstr "" + +msgid "Information" +msgstr "Bilgi" + +msgid "Init" +msgstr "BaÅŸlat" + +msgid "Initial fast forward speed" +msgstr "Ä°lk hızlı ileri sarma hızlı" + +msgid "Initial location in new timers" +msgstr "Yeni zamanlayıcı içinde ilk konum" + +msgid "Initial lock ratio" +msgstr "Ä°lk kilitleme oranı" + +msgid "Initial rewind speed" +msgstr "Ä°lk geri sarma hızı" + +msgid "Initial signal quality" +msgstr "Ä°lk sinyal kalitesi" + +msgid "Initial signal quality:" +msgstr "Ä°lk sinyal kalitesi:" + +msgid "Initialization" +msgstr "BaÅŸlatma" + +msgid "Initialize" +msgstr "BaÅŸlat" + +msgid "Initializing storage device..." +msgstr "Depolama aygıtı baÅŸlatılıyor..." + +msgid "Input" +msgstr "GiriÅŸ" + +msgid "Input device setup" +msgstr "GiriÅŸ aygıtı kurulumu" + +msgid "Input devices" +msgstr "GiriÅŸ aygıtları" + +msgid "Install" +msgstr "Yükle" + +msgid "Install a new image with a USB stick" +msgstr "Yeni IMAJ'ı USB bellekten yükle" + +msgid "Install a new image with your web browser" +msgstr "Yeni IMAJ'ı Ä°nternet Tarayıcı ile yükle" + +msgid "Install channel list" +msgstr "Kanal listesi yükle" + +msgid "Install extensions" +msgstr "" + +msgid "Install extensions." +msgstr "Eklentileri yükle." + +msgid "Install local extension" +msgstr "Yerel (lokal)'den eklenti yükle" + +msgid "Install picons on" +msgstr "Pikon yükle" + +msgid "Install softcam" +msgstr "SoftCam yükle" + +msgid "Installation has completed." +msgstr "Kurulum tamamlandı." + +msgid "Installation or removal has completed." +msgstr "Yükleme veya Kaldırma tamamlandı" + +msgid "Installing" +msgstr "Kuruluyor" + +msgid "Installing software..." +msgstr "Yazılım yükleniyor.." + +msgid "Instant recording location" +msgstr "Hızlı kayıt yeri" + +msgid "Instant recording..." +msgstr "Hızlı kayıt..." + +msgid "Interface: " +msgstr "Arayüz: " + +msgid "Intermediate" +msgstr "Orta" + +msgid "Internal flash" +msgstr "Dahili hafıza" + +msgid "Internal hdd only" +msgstr "Yanlız dahili HDD" + +msgid "Interval between keys when repeating:" +msgstr "Interval between keys when repeating:" + +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Seçilen klasör geçersiz: %s" + +msgid "Invalid location" +msgstr "Geçersiz konum" + +msgid "Invalid transponder data" +msgstr "" + +msgid "Inversion" +msgstr "Tersine çevir" + +msgid "Invert" +msgstr "Ters" + +msgid "Ipkg" +msgstr "Ipkg" + +msgid "Is this setting ok?" +msgstr "Bu ayar Tamam mı?" + +msgid "Is this video mode ok?" +msgstr "Bu video modu iyi mi?" + +msgid "Italian" +msgstr "Ä°talyanca" + +msgid "Items per page " +msgstr "Sayfa başına görüntüle" + +msgid "Items per page for list screen" +msgstr "Sayfa başına görüntüleme listesi ekranı" + +msgid "Job overview" +msgstr "Ä°ÅŸ özeti" + +msgid "Jump to beginning of list" +msgstr "Listenin başına atlar" + +msgid "Jump to end of list" +msgstr "Listenin sonuna atlar" + +msgid "Jump to next marked position" +msgstr "Sonraki iÅŸaretli pozisyona atla" + +msgid "Jump to previous marked position" +msgstr "Önceki iÅŸaretli pozisyona atla" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +msgid "Just scale" +msgstr "Sadece ölçek" + +msgid "Keep service" +msgstr "" + +msgid "Kernel version: " +msgstr "Çekirdek sürümü:" + +msgid "Keyboard" +msgstr "Klavye" + +msgid "Keyboard map" +msgstr "Klavye haritası" + +msgid "Keyboard setup" +msgstr "Klavye ayarı" + +msgid "LAN adapter" +msgstr "LAN adaptörü" + +msgid "LAN connection" +msgstr "LAN baÄŸlantısı" + +msgid "LNB" +msgstr "LNB" + +msgid "Language" +msgstr "Dil" + +msgid "Language selection" +msgstr "Dil seçimi" + +msgid "Last config" +msgstr "Son ayar" + +msgid "Last speed" +msgstr "Son hız" + +msgid "Last upgrade: " +msgstr "Son güncelleme: " + +msgid "Latest Commits" +msgstr "" + +msgid "Latitude" +msgstr "Enlem" + +msgid "Latvian" +msgstr "Letonca" + +msgid "Leave DVD player?" +msgstr "DVD oynatıcıyı ayır?" + +msgid "Left" +msgstr "Sol" + +msgid "Left from servicename" +msgstr "" + +msgid "Leisure hobbies" +msgstr "EÄŸlence hobiler" + +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Sinemaskop" + +msgid "Letterbox zoom" +msgstr "" + +msgid "Limit character set for recording filenames" +msgstr "Kayıt dosya adları için karakter kümesi sınırı" + +msgid "Limit east" +msgstr "DoÄŸu limiti" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "Kayıt dosya adlarını (7 bit) ASCII karakterle sınırlayın. Bu sınırlı karakter setleri iÅŸletim sistemleri veya dosya sistemleri ile uyumu saÄŸlamakta." + +msgid "Limit west" +msgstr "Batı limiti" + +msgid "Limits cancelled" +msgstr "Limit iptal edildi" + +msgid "Limits enabled" +msgstr "Limit etkin" + +msgid "Limits off" +msgstr "Limitler kapalı" + +msgid "Limits on" +msgstr "Limitler açık" + +msgid "Link quality:" +msgstr "BaÄŸlantı kalitesi:" + +msgid "Link:" +msgstr "BaÄŸlantı:" + +msgid "Linked titles with a DVD menu" +msgstr "DVD Menüsü ile baÄŸlı baÅŸlıklar" + +msgid "List EPG functions..." +msgstr "EPG listesi fonksiyonları.." + +msgid "List available networks" +msgstr "Kullanılabilir aÄŸ listesi" + +msgid "List mode" +msgstr "Liste modu" + +msgid "List of storage devices" +msgstr "Depolama aygıtları listesi" + +msgid "List type" +msgstr "Liste tipi" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "" + +msgid "Listen to the radio..." +msgstr "Radyo dinleme..." + +msgid "Lists reloaded!" +msgstr "" + +msgid "Lithuanian" +msgstr "Litvanyaca" + +msgid "Load" +msgstr "Yükle" + +msgid "Load Length of Movies in Movielist" +msgstr "" + +msgid "Load length of movies in movie list" +msgstr "Film listesindeki film uzunluÄŸu" + +msgid "Load playlist" +msgstr "Çalma listesi yükle" + +msgid "Local network" +msgstr "Yerel aÄŸ" + +msgid "Location" +msgstr "Konum" + +msgid "Location for instant recordings" +msgstr "Anlık kayıt konumu" + +msgid "Lock ratio" +msgstr "Oranı kilitleyin" + +msgid "Lock:" +msgstr "Kilitli:" + +msgid "Log results to harddisk" +msgstr "Sonuçlara iliÅŸkin sabitdiskte günlük tut" + +msgid "Long filenames" +msgstr "Uzun dosya adı" + +msgid "Long key press" +msgstr "TuÅŸa uzun basarak" + +msgid "Longitude" +msgstr "Boylam" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "Lüksemburgca" + +msgid "MMC card" +msgstr "MMC kart" + +msgid "MORE" +msgstr "DAHA SONRA" + +msgid "Main menu" +msgstr "Ana menü" + +msgid "Maintain old EPG data for" +msgstr "Eski EPG verilerini ÅŸunun için koru" + +msgid "Make this mark an 'in' point" +msgstr "'içinde' noktası olarak iÅŸaretle" + +msgid "Make this mark an 'out' point" +msgstr "'dışında' noktası olarak iÅŸaretle" + +msgid "Make this mark just a mark" +msgstr "Bu iÅŸareti sadece bir iÅŸaret olarak kullan" + +msgid "Manage extensions" +msgstr "Eklentileri yönet" + +msgid "Manage your receiver's software" +msgstr "Uydu alıcınızın sistem yazılımımı yönetin" + +msgid "Manual" +msgstr "" + +msgid "Manual Scan" +msgstr "Elle Arama" + +msgid "Manual configuration" +msgstr "El ile yapılandırma" + +msgid "Manual scan" +msgstr "Elle Arama" + +msgid "Manual transponder" +msgstr "Transponder bilgilerini elle gir" + +msgid "Manufacturer" +msgstr "Ãœretici" + +msgid "Margin after recording (minutes)" +msgstr "Kayıttan sonra Marj (dakika)" + +msgid "Margin before recording (minutes)" +msgstr "Kayıttan önce Marj (dakika)" + +msgid "Max memory positions" +msgstr "" + +msgid "Max. bitrate: " +msgstr "Max. bit hızı:" + +msgid "Media player" +msgstr "Ortam oynatıcı" + +msgid "Media scanner" +msgstr "Ortam tarama" + +msgid "Medium is not a writeable DVD!" +msgstr "DVD medyası yazılabilir deÄŸil!" + +msgid "Medium is not empty!" +msgstr "DVD medyası boÅŸ deÄŸil!" + +msgid "Memory" +msgstr "Hafıza" + +msgid "Memory index" +msgstr "Hafıza indeksi" + +msgid "Menu" +msgstr "Menü" + +msgid "Message" +msgstr "Mesaj" + +msgid "Message..." +msgstr "Mesaj..." + +#, python-format +msgid "Minimum age %d years" +msgstr "YaÅŸ sınırı %d yaşında" + +msgid "Minimum send interval" +msgstr "" + +msgid "Missing " +msgstr "Kayıp " + +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "Kip" + +msgctxt "Video output mode" +msgid "Mode" +msgstr "Kip" + +msgid "Model: " +msgstr "Model: " + +msgid "Modulation" +msgstr "Modülasyon" + +msgid "Modulator" +msgstr "Modülatör" + +msgid "Mon" +msgstr "Ptesi" + +msgid "Mon-Fri" +msgstr "Pzt-Cum" + +msgid "Monday" +msgstr "Pazartesi" + +msgid "Mosquito noise reduction" +msgstr "Sivrisinek Parazit Azaltma" + +msgid "Mount" +msgstr "BaÄŸla" + +msgid "Move" +msgstr "Taşı" + +msgid "Move PiP to main picture" +msgstr "Resim içinde resimi (RiR) ana ekrana taşı" + +msgid "Move Picture in Picture" +msgstr "Resim içinde resim (RiR)'i taşı" + +msgid "Move east" +msgstr "DoÄŸuya taşı" + +msgid "Move to other directory" +msgstr "DiÄŸer dizine taşı" + +msgid "Move to position X" +msgstr "'X' pozisyonuna taşı" + +msgid "Move west" +msgstr "Batıya taşı" + +msgid "Moved to position 0" +msgstr "'0' pozisyonuna taşı" + +msgid "Moved to position at index" +msgstr "Dizinindeki konuma taşınır" + +msgid "Movement" +msgstr "Hareket" + +msgid "Movie List Configuration" +msgstr "" + +msgid "Movie Selection" +msgstr "" + +msgid "Movie list configuration" +msgstr "Film Listesi yapılandırması" + +msgid "Movie location" +msgstr "Film konumu" + +msgid "Movie selection" +msgstr "Film Seçimi" + +msgid "Movie/Drama" +msgstr "Film/Dram" + +msgid "Movielist menu" +msgstr "Film Listesi Menüsü" + +msgid "Moving" +msgstr "Taşınıyor" + +msgid "Moving east ..." +msgstr "DoÄŸuya hareket ..." + +msgid "Moving to position" +msgstr "Hareket pozisyonu" + +msgid "Moving west ..." +msgstr "Batıya hareket ..." + +msgid "Multi EPG" +msgstr "Çoklu EPG" + +msgid "Multi-EPG bouquet selection" +msgstr "Çoklu EPG buket seçimi" + +msgid "Multimedia" +msgstr "Çoklu ortam" + +msgid "Multiple service support" +msgstr "Çoklu kanal desteÄŸi" + +msgid "Multiplex" +msgstr "Çoklandırıcı" + +msgid "Multisat" +msgstr "Çoklu uydu" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "Müzik/Bale/Dans" + +msgid "Mute" +msgstr "Sesi Kapat" + +msgid "N/A" +msgstr "Kullanılamaz" + +msgid "NEXT" +msgstr "SONRA" + +msgid "NFI image flashing" +msgstr "NFI imaj yükleniyor" + +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "NFI imaj yüklenmesi tamamlandı. Sarı tuÅŸa basarak yeniden baÅŸlatın!" + +msgid "NIM" +msgstr "NIM" + +msgid "NOW" +msgstr "ŞİMDÄ°" + +msgid "NTSC" +msgstr "NTSC" + +msgid "Name" +msgstr "Ä°sim" + +msgid "Nameserver" +msgstr "Ä°sim sunucusu (DNS)" + +#, python-format +msgid "Nameserver %d" +msgstr "Ä°sim sunucusu (DNS) %d" + +msgid "Nameserver settings" +msgstr "Ä°sim sunucusu (DNS) ayarları" + +msgid "Nameserver setup" +msgstr "Ä°sim sunucusu (DNS) kurulumu" + +msgid "Namespace" +msgstr "Alan adı" + +msgid "Netmask" +msgstr "Alt aÄŸ maskesi" + +msgid "Network" +msgstr "AÄŸ" + +msgid "Network ID" +msgstr "AÄŸ KimliÄŸi ID" + +msgid "Network configuration..." +msgstr "AÄŸ yapılandırması ..." + +msgid "Network mount" +msgstr "AÄŸ baÄŸlantısı" + +#, python-format +msgid "Network mount %s" +msgstr "AÄŸ baÄŸlantısı %s" + +msgid "Network name (SSID)" +msgstr "AÄŸ adı(SSID)" + +msgid "Network scan" +msgstr "AÄŸ arama" + +msgid "Network setup" +msgstr "AÄŸ kurulumu" + +msgid "Network test" +msgstr "AÄŸ yapılandırmasını test et" + +msgid "Network test..." +msgstr "AÄŸ testi..." + +msgid "Network test: " +msgstr "AÄŸ testi: " + +msgid "Network wizard" +msgstr "AÄŸ kurulum sihirbazı" + +msgid "Network:" +msgstr "AÄŸ:" + +msgid "New" +msgstr "Yeni" + +msgid "New PIN" +msgstr "Yeni Åžifre" + +msgid "New version:" +msgstr "Yeni sürüm:" + +msgid "News Current Affairs" +msgstr "Haberler Güncel Olaylar" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "Sonraki" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "Sonraki" + +msgid "No" +msgstr "Hayır" + +msgid "No (supported) DVDROM found!" +msgstr "Desteklenen DVDROM bulunamadı!" + +msgid "No Connection" +msgstr "BaÄŸlantı yok" + +msgid "No HDD found or HDD not initialized!" +msgstr "HDD bulunamadı veya HDD iliÅŸkilendirilemedi!" + +msgid "No backup needed" +msgstr "Yedekleme gerekmiyor" + +msgid "No cable tuner found!" +msgstr "Hiçbir kablo tuner bulunamadı!" + +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Transponder'da yayın yok!\n" +"(PAT okunurken zaman aşımı oluÅŸtu)" + +msgid "No delay" +msgstr "Gecikmesiz" + +msgid "No description available." +msgstr "Açıklayıcı bilgi yok." + +msgid "No details for this image file" +msgstr "Bu bellenim dosyasının detay bilgisi yok" + +msgid "No displayable files on this medium found!" +msgstr "Bu medyada gösterilecek dosya bulunamadı!" + +msgid "No event info found, recording indefinitely." +msgstr "EPG bilgisi bulunamadı, süresiz kaydediliyor." + +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "Ä°leri/geri hızlı sardırmayı kullanabilmek için rakam tuÅŸlarını kullanınız." + +msgid "No free index available" +msgstr "BoÅŸ yer yok" + +msgid "No free tuner!" +msgstr "BoÅŸ tuner yok!" + +msgid "No network connection available." +msgstr "Uygun aÄŸ baÄŸlantısı yok." + +msgid "No networks found" +msgstr "AÄŸ bulunamadı" + +msgid "No new plugins found" +msgstr "" + +msgid "No positioner capable frontend found." +msgstr "Pozisyoner uyumlu uç ekipman bulunamadı." + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "" + +msgid "No services/providers selected" +msgstr "Servis/SaÄŸlayıcı seçilmedi" + +msgid "No standby" +msgstr "Beklemede deÄŸil" + +msgid "No suitable sat tuner found!" +msgstr "" + +msgid "No tags are set on these movies." +msgstr "Bu filmler için etiket tanımlanmamış" + +msgid "No timeout" +msgstr "Zamandışı" + +msgid "No to all" +msgstr "Tümüne hayır" + +msgid "No transparency" +msgstr "Åžeffaflık yok" + +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "DiSEqC pozisyoner kullanımı için tuner ayarı yapılmamış!" + +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Tuner ayarları yapılmamış!\n" +"Lütfen kanal aramasına baÅŸlamadan önce tuner ayarlarınızı yapınız." + +msgid "No updates available" +msgstr "Güncelleme yok" + +msgid "No updates available. Please try again later." +msgstr "Güncelleme yok. Lütfen daha sonra tekrar deneyin." + +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Tanımlanmış kanal ÅŸifresi (PIN) bulunamadı!\n" +"Kanal ÅŸifresini (PIN) ÅŸimdi deÄŸiÅŸtirmek ister misiniz?\n" +"'Hayır' derseniz kanal koruması devredışı kalacaktır." + +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Tanımlanmış kurulum ÅŸifresi (PIN) bulunamadı!\n" +"Kurulum ÅŸifresini (PIN) ÅŸimdi deÄŸiÅŸtirmek ister misiniz?\n" +"'Hayır' derseniz kurulum koruması devredışı kalacaktır." + +msgid "No wireless networks found! Searching..." +msgstr "Kablosuz aÄŸ bulunamadı! Aranıyor..." + +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"Çalışan yerel aÄŸ donanımı bulunamadı.\n" +"Lütfen aÄŸ kablonuzun baÄŸlı olduÄŸundan ve aÄŸ ayarlarınızın doÄŸru yapılandırıldığından emin olun." + +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"Çalışan kablosuz aÄŸ donanımı bulunamadı.\n" +"Uyumlu WLAN USB donanımının takılı olduÄŸundan emin olun ve aÄŸ yapılandırmanızı doÄŸru yaptığınızdan emin olun." + +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"Çalışan kablosuz aÄŸ arayüzü bulunamadı.\n" +" Uyumlu WLAN USB donanımının takılı olduÄŸundan emin olun veya yerel aÄŸ arayüzünü etkinleÅŸtirin." + +msgid "No, but restart from begin" +msgstr "Hayır, ama en başından baÅŸlat" + +msgid "No, do nothing." +msgstr "Hayır, birÅŸey yapma" + +msgid "No, just start my receiver" +msgstr "Hayır, sadece benim alıcım baÅŸlasın" + +msgid "No, never" +msgstr "Hayır, hiçbir zaman" + +msgid "None" +msgstr "Yok" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "DoÄŸrusal olmayan" + +msgid "Normal mode" +msgstr "Normal mod" + +msgid "North" +msgstr "Kuzey" + +msgid "Norwegian" +msgstr "Norveççe" + +msgid "Not associated" +msgstr "Ä°liÅŸkili deÄŸil" + +msgid "Not configured" +msgstr "" + +#, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Yetersiz disk alanı. Disk alanı boÅŸaltarak tekrar deneyin. (%d MB gerekli, kullanılabilir %d MB)" + +msgid "Nothing connected" +msgstr "" + +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Kanal araması yapılmadı!\n" +"Lütfen kanal araması yapmadan önce tuner kurulumunuzu tamamlayın." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "Åžimdi" + +msgid "Now playing" +msgstr "Åžimdi çalan" + +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Åžimdi, kontrast ayarlarını kullanarak arkazemin üzerinde, ekrandaki iki parlaklık tonunu ayırt edebilecek ÅŸekilde ve mümkün olduÄŸunca parlaklık seviyesini arttırın. Ä°ÅŸlemi tamamladıktan sonra OK tuÅŸuna basın." + +msgid "OK" +msgstr "Tamam" + +msgid "OK, guide me through the upgrade process" +msgstr "Tamam, güncelleme iÅŸleminde bana rehberlik yap." + +msgid "ONID" +msgstr "ONID" + +msgid "OSD name request" +msgstr "OSD adı isteÄŸi" + +msgid "OSD settings" +msgstr "OSD ayarları" + +msgid "OSD transparency" +msgstr "OSD ÅŸeffaflığı" + +msgid "Off" +msgstr "Kapalı" + +msgid "Offline decode delay (ms)" +msgstr "Çevrimdışı kod çözme gecikmesi (ms)" + +msgid "Ok" +msgstr "Tamam" + +msgid "On" +msgstr "Açık" + +msgid "On end of movie" +msgstr "Filmin sonu" + +msgid "On end of movie (as menu)" +msgstr "" + +msgid "One" +msgstr "Bir" + +msgid "Only extensions." +msgstr "Yalnızca eklentiler" + +msgid "Only free scan" +msgstr "Yanlızca ÅŸifresiz arama" + +msgid "Open service list" +msgstr "Kanal listesini aç" + +msgid "Open the movie list" +msgstr "Film listesinden aç" + +msgid "Orbital position" +msgstr "Yörüngesel pozisyon" + +msgid "Original" +msgstr "Orjinal" + +msgid "Other" +msgstr "DiÄŸer" + +msgid "Output" +msgstr "Çıkış" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "Yazılım yükseltme sırasında konfigürasyon dosyaları üzerine yazılsın mı?" + +msgid "Overwrite configuration files?" +msgstr "Konfigürasyon dosyaları üzerine yaz?" + +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "PCR PID" + +msgid "PIDs" +msgstr "PIDs" + +msgid "PIN code needed" +msgstr "PIN kodu gerekli" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "PMT PID" + +msgid "Package list update" +msgstr "Paket listesi güncelleniyor" + +msgid "Packet management" +msgstr "Paket yönetimi" + +msgid "Packet manager" +msgstr "Paket yönetimi" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +msgid "Pan&scan" +msgstr "Pan&scan" + +msgid "Parent directory" +msgstr "Ãœst Dizin" + +msgid "Parental control" +msgstr "Ebeveyn kontrolü" + +msgid "Parental control services editor" +msgstr "Ebeveyn kontrol servislerini düzenle" + +msgid "Parental control setup" +msgstr "Ebeveyn kontrolü kurulumu" + +msgid "Parental control type" +msgstr "Ebeveyn kontrolü tipi" + +msgid "Password" +msgstr "Parola" + +msgid "Pause" +msgstr "Duraklat" + +msgid "Pause movie at end" +msgstr "BittiÄŸinde filmi duraklat" + +msgid "Pause playback" +msgstr "Yürütmeyi duraklat" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "Sol oran" + +msgid "Percentage right" +msgstr "SaÄŸ oran" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "Çöp kutusundaki tüm kayıtları silecekmisin?" + +msgid "Permanently remove all deleted items" +msgstr "Kalıcı olarak silinmiÅŸ tüm öğeleri kaldır" + +msgid "Persian" +msgstr "Farsça" + +msgid "Phone number" +msgstr "Telefon numarası" + +msgid "PiP setup" +msgstr "RiR kurulumu" + +msgid "Picon" +msgstr "Pikon" + +msgid "Picon and service name" +msgstr "Pikon ve servis ismi" + +msgid "Picture player" +msgstr "Resim oynatıcı" + +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Posta Kutusu" + +msgid "Pilot" +msgstr "Pilot" + +msgid "Play" +msgstr "Oynat" + +msgid "Play DVD" +msgstr "DVD Oynat" + +msgid "Play audio in background" +msgstr "MüziÄŸi arka planda çal" + +msgid "Play audio-CD..." +msgstr "Müzik-CD si çal..." + +msgid "Play back media files" +msgstr "Medya dosyalarını oynat" + +msgid "Play entry" +msgstr "GiriÅŸi Çal" + +msgid "Play from next mark or playlist entry" +msgstr "Sonraki iÅŸatten veya çalma listesi giriÅŸinden oynat" + +msgid "Play from previous mark or playlist entry" +msgstr "Önceki iÅŸatten veya çalma listesi giriÅŸinden oynat" + +msgid "Play music..." +msgstr "Müzik çal..." + +msgid "Play next" +msgstr "Sonrakini Oynat" + +msgid "Play next (return to movie list)" +msgstr "Sonrakini Oynat (film listesine dön)" + +msgid "Play next (return to previous service)" +msgstr "Sonrakini Oynat (önceki servise dön)" + +msgid "Play previous" +msgstr "Öncekini oynat" + +msgid "Play recorded movies..." +msgstr "Kayıtlı video dosyalarını göster..." + +msgid "Please add titles to the compilation." +msgstr "Derleme için baÅŸlık ekleyin." + +msgid "Please change recording endtime" +msgstr "Lütfen kayıt bitiÅŸ saatini deÄŸiÅŸtirin" + +msgid "Please check your network settings!" +msgstr "Lütfen aÄŸ ayarlarını kontrol edin!" + +msgid "Please choose an extension..." +msgstr "Lütfen kullanmak istediÄŸiniz eklentiyi seçin..." + +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Lütfen isim sunucu ayarlarınızı, gerekli alanları doldurarak yapılandırın veya mevcut bilgileri doÄŸrulayın.\n" +"Devam etmek için hazır olduÄŸunuzda, OK tuÅŸuna basın." + +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Lütfen internet baÄŸlantı ayarlarınızı, gerekli alanları doldurarak yapılandırın.\n" +"Devam etmek için hazır olduÄŸunuzda, OK tuÅŸuna basın." + +msgid "Please connect your receiver to the internet" +msgstr "Uydu alıcınızı internete baÄŸlayın" + +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Lütfen ne yaptığınızı bilmiyorsanız hiçbir deÄŸeri deÄŸiÅŸtirmeyin!" + +msgid "Please enter a name for the new bouquet" +msgstr "Yeni buket için isim girin" + +msgid "Please enter a name for the new marker" +msgstr "Yeni iÅŸaretleyici için isim girin" + +msgid "Please enter a new filename" +msgstr "Lütfen yeni dosya adını girin" + +msgid "Please enter filename (empty = use current date)" +msgstr "Lütfen dosya adı girin (boÅŸ = geçerli tarih)" + +msgid "Please enter name of the new directory" +msgstr "Lütfen klasör için bir isim girin" + +msgid "Please enter new name:" +msgstr "" + +msgid "Please enter the correct pin code" +msgstr "Lütfen doÄŸru ÅŸifreyi girin" + +msgid "Please enter the old PIN code" +msgstr "Lütfen eÅŸki ÅŸifreyi girin" + +msgid "Please follow the instructions on the TV" +msgstr "Lütfen Televizyonunuzdaki yönlendirmeleri takip edin." + +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "SeçtiÄŸiniz medyaya eriÅŸilemedi, yerine varsayılan klasör kullanılıyor." + +msgid "Please press OK to continue." +msgstr "Devam etmek için lütfen OK'a basın" + +msgid "Please select a default EPG type..." +msgstr "Varsayılan bir EPG türü seçin ..." + +msgid "Please select a playlist to delete..." +msgstr "Seçili oynatma listesini sil..." + +msgid "Please select a playlist..." +msgstr "Lütfen bir oynatma listesi seçin..." + +msgid "Please select a sub service..." +msgstr "Bir alt servis seçin ..." + +msgid "Please select a subservice to record..." +msgstr "Lütfen kaydetmek istediÄŸiniz alt servisi seçin..." + +msgid "Please select a subservice..." +msgstr "Lütfen bir alt servis seçin..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "Lütfen NFI dosyasını seçtikten sonra yüklemek için yeÅŸil tuÅŸa basın!" + +msgid "Please select medium to be scanned" +msgstr "Lütfen ortam seçin ve tarayın" + +msgid "Please select medium to use as backup location" +msgstr "Lütfen yedekleme konumu için medya seçin" + +msgid "Please select tag to filter..." +msgstr "Lütfen filtreleme için etiket seçin ..." + +msgid "Please select the movie path..." +msgstr "Filmlerin bulunduÄŸu klasörü seçin..." + +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Lütfen internet baÄŸlantınızı kullanmak için bir aÄŸ arayüzü seçin.\n" +"\n" +"Devam etmek için OK tuÅŸuna basın." + +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"BaÄŸlanmak istediÄŸiniz kablosuz ağı seçin.\n" +"\n" +"Devam etmek için lütfen OK'a basın." + +msgid "Please set up tuner A" +msgstr "Lütfen tuner A yı ayarlayın" + +msgid "Please set up tuner B" +msgstr "Lütfen tuner B yi ayarlayın" + +msgid "Please set up tuner C" +msgstr "Lütfen tuner C yi ayarlayın" + +msgid "Please set up tuner D" +msgstr "Lütfen tuner d yi ayarlayın" + +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Lütfen yönlendirme tuÅŸlarını kullanarak PiP ekranını taşıyın.\n" +"PiP penceresini boyutlandırmak için Buket +/- tuÅŸlarını kullanın.\n" +"TV kipine dönmek için OK'a veya taşımayı iptal etmek için EXIT tuÅŸuna basın." + +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "Dil seçiminizi, yapmak için YUKARI ve AÅžAÄžI tuÅŸlarını, onaylamak için OK tuÅŸunu kullanın." + +msgid "Please wait" +msgstr "" + +msgid "Please wait (downloading channel list)" +msgstr "Lütfen bekleyin(kanal listesi indiriliyor)" + +msgid "Please wait (downloading softcam)" +msgstr "Lütfen bekleyin(SoftCam indiriliyor)" + +msgid "Please wait (updating packages)" +msgstr "Lütfen bekleyin(paket listesi güncelleniyor)" + +msgid "Please wait for activation of your network configuration..." +msgstr "AÄŸ yapılandırmanızın etkinleÅŸtirilmesi için lütfen bekleyin..." + +msgid "Please wait while scanning is in progress..." +msgstr "Lütfen arama yapılırken bekleyin..." + +msgid "Please wait while we configure your network..." +msgstr "Lütfen ağınız yapılandırılırken bekleyin..." + +msgid "Please wait while we prepare your network interfaces..." +msgstr "Lütfen biz aÄŸ arayüzlerinizi hazırlarken bekleyin..." + +msgid "Please wait while we test your network..." +msgstr "Lütfen biz aÄŸ yapılandırmanızı test ederken bekleyin..." + +msgid "Please wait while your network is restarting..." +msgstr "AÄŸ diski yeniden baÅŸlatılırken lütfen bekleyin..." + +msgid "Please wait..." +msgstr "Lütfen bekleyin..." + +msgid "Please wait... Loading list..." +msgstr "Lütfen bekleyin... Liste yükleniyor..." + +msgid "Plugin browser" +msgstr "Eklenti listesi" + +msgid "Plugin manager activity information" +msgstr "Eklenti yönetimi aktivite bilgisi" + +msgid "Plugin manager help" +msgstr "Eklenti yönetimi yardımı" + +msgid "Plugins" +msgstr "Eklentiler" + +msgid "Polarisation" +msgstr "Polarizasyon" + +msgid "Polarisation:" +msgstr "" + +msgid "Polarization" +msgstr "Polarizasyon" + +msgid "Polish" +msgstr "Lehçe" + +msgid "Port A" +msgstr "Port A" + +msgid "Port B" +msgstr "Port B" + +msgid "Port C" +msgstr "Port C" + +msgid "Port D" +msgstr "Port D" + +msgid "Portuguese" +msgstr "Portekizce" + +msgid "Position of completed timers in timerlist" +msgstr "Zamanlayıcı listesinde tamamlanan zamanlayıcı konumu" + +msgid "Position stored at index" +msgstr "Pozisyon dizininde depolanan" + +msgid "Positioner" +msgstr "Pozisyoner" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "" + +msgid "Positioner setup" +msgstr "Pozisyoner kurulumu" + +msgid "Power threshold in mA" +msgstr "Güç eÅŸiÄŸi (mA)" + +msgid "Predefined transponder" +msgstr "Önceden tanımlanmış transponder" + +msgid "Prefer AC3 track" +msgstr " AC3 tercihen" + +msgid "Prefer AC3+ track" +msgstr "" + +msgid "Prefer audio track stored by service" +msgstr "Servis tarafından saklanan ses tercihi" + +msgid "Prefer graphical DVB subtitles" +msgstr "Tercih edilen grafiksel DVB altyazıları" + +msgid "Prefer subtitles for hearing impaired" +msgstr "Ä°ÅŸitme engelliler için tercih edilen altyazılar" + +msgid "Prefer subtitles stored by service" +msgstr "Servis tanımlı altyazı tercihi" + +msgid "Preferred tuner" +msgstr "Seçili tuner" + +msgid "Preferred tuner for recordings" +msgstr "" + +msgid "Prepare another USB stick for image flashing" +msgstr "Imaj yüklemek için baÅŸka bir USB bellek hazırlayın" + +msgid "Preparing... Please wait" +msgstr "Hazırlanıyor... Lütfen bekleyin" + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "Ek bilgi için uzaktan kumanda üzerindeki INFO (EPG) tuÅŸuna basın." + +msgid "Press MENU on your remote control for additional options." +msgstr "Ek seçenekler için uzaktan kumanda üzerindeki MENU düğmesine basın." + +msgid "Press OK on your remote control to continue." +msgstr "Devam etmek için kumandanızın OK tuÅŸuna basın." + +msgid "Press OK to activate the selected skin." +msgstr "Arayüzü etkinleÅŸtirmek için OK'a basın." + +msgid "Press OK to activate the settings." +msgstr "Onaylamak için OK tuÅŸuna basın." + +msgid "Press OK to edit the settings." +msgstr "Düzenlemek için OK tuÅŸuna basın." + +#, python-format +msgid "Press OK to get further details for %s" +msgstr "%s detayları için OK tuÅŸuna basın" + +msgid "Press OK to scan" +msgstr "Arama için OK'a basın" + +msgid "Press OK to select a provider." +msgstr "Bir saÄŸlayıcı seçmek için OK tuÅŸuna basın." + +msgid "Press OK to select satellites" +msgstr "" + +msgid "Press OK to select/deselect a CAId." +msgstr "CAId seçmek/bırakmak için OK'a basın." + +msgid "Press OK to start the scan" +msgstr "Aramayı baÅŸlatmak için OK'a basın" + +msgid "Press OK to toggle the selection" +msgstr "" + +msgid "Press OK to toggle the selection." +msgstr "Seçiminde geçiÅŸ yapmak için OK tuÅŸuna basın." + +msgid "Press yellow to set this interface as default interface." +msgstr "Bu arayüzü varsayılan arayüz olarak atamak için sarı tuÅŸa basın." + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "Önceki" + +msgid "Preview" +msgstr "Önizleme" + +msgid "Preview menu" +msgstr "Önizleme menüsü" + +msgid "Preview selected channel" +msgstr "Seçili kanalı Izle" + +msgid "Primary DNS" +msgstr "Birincil DNS" + +msgid "Priority" +msgstr "Öncelik" + +msgid "Process" +msgstr "Ä°ÅŸlemler" + +msgid "Progress" +msgstr "Ä°lerleme" + +msgid "Progress bar left" +msgstr "Sol ilerleme çubuÄŸu" + +msgid "Progress bar right" +msgstr "SaÄŸ ilerleme çubuÄŸu" + +msgid "Properties of current title" +msgstr "Mevcut baÅŸlığın özellikleri" + +msgid "Protect services" +msgstr "Kanallar korunsun mu?" + +msgid "Protect setup" +msgstr "Koruma ayarları" + +msgid "Provider" +msgstr "Yayıncı" + +msgid "Provider to scan" +msgstr "Yayıncıya göre ara" + +msgid "Providers" +msgstr "Yayıncılar" + +msgid "Put TV in standby" +msgstr "TV yi bekleme konumuna al" + +msgid "Put receiver in standby" +msgstr "Alıcıyı bekleme konumuna al" + +msgid "Python frontend for /tmp/mmi.socket" +msgstr "/tmp/mmi.socket için Python uç birimi" + +msgid "Quick" +msgstr "Hızlı" + +msgid "Quick zap" +msgstr "Hızlı kanal deÄŸiÅŸtirme" + +msgid "RF output" +msgstr "RF çıkışı" + +msgid "RGB" +msgstr "RGB" + +msgid "Radio" +msgstr "Raydo" + +msgid "Ram disk" +msgstr "Ram disk" + +msgid "Random" +msgstr "Rasgele" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "Yayıncı tarafından tanımlanan DeÄŸerlendirme - %d" + +msgid "Rating undefined" +msgstr "DeÄŸerlendirme tanımlanmamış" + +msgid "Really close without saving settings?" +msgstr "Ayarlarınızı kaydetmeden çıkmak istediÄŸinizden emin misiniz?" + +msgid "Really delete done timers?" +msgstr "Tamamlanan zamanlayıcıları silmek istiyor musunuz?" + +msgid "Really exit the subservices quickzap?" +msgstr "Alt servislerde hızlı kanal deÄŸiÅŸtirme iptal olsun mu?" + +msgid "Really reboot now?" +msgstr "Yeniden baÅŸlatmak istiyor musunuz?" + +msgid "Really restart now?" +msgstr "Yeniden baÅŸlatmak istiyor musunuz?" + +msgid "Really shutdown now?" +msgstr "STB'ı ÅŸimdi kapatmak istiyor musunuz?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "Åžimdi ön iÅŸlemci güncellensin ve cihaz yeniden baÅŸlatılsın mı?" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "Uydu alıcınız güncellensin ve yeniden baÅŸlatılsın mı?" + +msgid "Reboot" +msgstr "Yeniden baÅŸlat" + +msgid "Rec" +msgstr "Kayıt" + +msgid "Reception settings" +msgstr "Resepsiyon ayarları" + +msgid "Record" +msgstr "Kayıt" + +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "%s zamanlayıcısı ile çakışmadan dolayı kayıt süresi sınırlandırılmış" + +msgid "Recorded files..." +msgstr "KaydedilmiÅŸ dosyalar..." + +msgid "Recording" +msgstr "Kaydediliyor" + +msgid "Recording in progress" +msgstr "Kayıt devam ediyor" + +msgid "Recording paths" +msgstr "Kayıt yeri" + +msgid "Recording type" +msgstr "Kayıt tipi" + +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "Kayıt iÅŸlemi devam ediyor veya birkaç saniye içinde baÅŸlayacak!" + +msgid "Recordings" +msgstr "Kayıt" + +msgid "Recordings always have priority" +msgstr "Kayıt iÅŸlemine öncelik ver" + +msgid "Red button..." +msgstr "Kırmızı tuÅŸ..." + +msgid "Reenter new PIN" +msgstr "Yeni PIN'i tekrar gir" + +msgid "Refresh rate" +msgstr "Tazeleme hızı" + +msgid "Refresh rate selection." +msgstr "Tazeleme hızı seçimi." + +msgid "Regard deep standby as standby" +msgstr "Derin bekleme modu, bekleme modu olsun" + +msgid "Relative" +msgstr "Ä°lgili" + +msgid "Reload" +msgstr "Yeniden Yükle" + +msgid "Reload black-/white lists" +msgstr "Kara/Beyaz Listeyi yeniden yükle" + +msgid "Reloading bouquets and services..." +msgstr "Buketler ve kanallar yeniden yükleniyor..." + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "Kanal Åžifresini hatırla" + +msgid "Remember these settings for each folder" +msgstr "Her klasör için bu ayarları hatırla" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "" + +msgid "Remote control type" +msgstr "Uzaktan kumanda tipi" + +msgid "Removal has completed." +msgstr "Kaldırma tamamladı." + +msgid "Remove" +msgstr "Sil" + +msgid "Remove a mark" +msgstr "Ä°ÅŸaret Kaldır" + +msgid "Remove a nameserver entry" +msgstr "Ä°sim sunucusu giriÅŸini sil" + +msgid "Remove bookmark" +msgstr "Kısayolu sil" + +msgid "Remove completed timers after (days)" +msgstr "Tamamlanmış zamanlayıcıları kaldırın (gün) sonra" + +msgid "Remove currently selected title" +msgstr "Seçilen geçerli baÅŸlığı sil" + +msgid "Remove items from trash can after (days)" +msgstr "Çöp Kutusu öğelerini (gün) sonra kaldır" + +msgid "Remove plugins" +msgstr "Eklentileri kaldır" + +msgid "Remove title" +msgstr "BaÅŸlığı sil" + +msgid "Removing" +msgstr "Kaldırılıyor" + +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "%s klasörü silinemedi. (Klasör boÅŸ olmayabilir.)" + +msgid "Removing partition table" +msgstr "Bölümleme tablosu kaldırılıyor" + +msgid "Rename" +msgstr "Ad deÄŸiÅŸtir " + +msgid "Repeat" +msgstr "" + +msgid "Repeat type" +msgstr "ÇeÅŸidi yineleyin" + +msgid "Repeating event currently recording... What do you want to do?" +msgstr "Tekrarlama görevi verilmiÅŸ kayıt iÅŸlemi yapılıyor. Ne yapmak istersiniz?" + +msgid "Repeats" +msgstr "Tekrarlama" + +msgid "Require authentication for http streams" +msgstr "" + +msgid "Required medium type:" +msgstr "Ä°htiyaç duyulan medya tipi:" + +msgid "Rereading partition table" +msgstr "Bölümleme tablosu okunuyor" + +msgid "Reserved" +msgstr "Ayrılmış" + +msgid "Reset" +msgstr "Sıfırla" + +msgid "Reset and renumerate title names" +msgstr "BaÅŸlık ve adları sıfırla ve yeniden numarala" + +msgid "Reset playback position" +msgstr "Kayıttan yürütme pozisyonunu sıfırlayın" + +msgid "Reset video enhancement settings to system defaults?" +msgstr "Görüntü iyileÅŸtirme ayarınız, sistem varsayılanına döndürülsün mü?" + +msgid "Reset video enhancement settings to your last configuration?" +msgstr "Görüntü iyileÅŸtirme ayarlarınız, en son yapılandırmanıza döndürülsün mü?" + +msgid "Resolution" +msgstr "Çözünürlük" + +msgid "Restart" +msgstr "Yeniden BaÅŸlat" + +msgid "Restart GUI now?" +msgstr "GUI'yi yeniden baÅŸlatmak istiyor musunuz?" + +msgid "Restart enigma" +msgstr "Enigma'yı yeniden baÅŸlat" + +msgid "Restart network" +msgstr "Ağı yeniden baÅŸlat" + +msgid "Restart test" +msgstr "Test'i yenile" + +msgid "Restart your network connection and interfaces.\n" +msgstr "AÄŸ baÄŸlantısını ve aÄŸ arayüzlerini yeniden baÅŸlatın.\n" + +msgid "Restore" +msgstr "Geri Yükle" + +msgid "Restore backups" +msgstr "Yedekten geri yükle" + +msgid "Restore is running..." +msgstr "Geri yükleme çalışıyor..." + +msgid "Restore system settings" +msgstr "Sistem ayarlarını geri yükle" + +msgid "Restoring..." +msgstr "Geri yükleniyor ..." + +msgid "Resume from last position" +msgstr "Kaldığı yerden devam et" + +#, python-format +msgid "Resume position at %s" +msgstr "%s pozisyonundan devam et" + +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Oynatmaya devam ediliyor" + +msgid "Return to movie list" +msgstr "Film listesine geri dön" + +msgid "Return to previous service" +msgstr "Önceki kanala dön" + +msgid "Reverse bouquet buttons" +msgstr "" + +msgid "Reverse list" +msgstr "" + +msgid "Rewind speeds" +msgstr "Geri sarma hızları" + +msgid "Rewrap teletext subtitles" +msgstr "Teletext altyazısını sar" + +msgid "Right" +msgstr "SaÄŸ" + +msgid "Right from servicename" +msgstr "" + +msgid "Roll-off" +msgstr "Roll-off" + +msgid "Romanian" +msgstr "Romence" + +msgid "Root directory" +msgstr "Root dizini" + +msgid "Rotor step position:" +msgstr "Rotorun adım pozisyonu:" + +msgid "Rotor turning speed" +msgstr "Motor dönüş hızı" + +msgid "Round start time on" +msgstr "Zamanında dön" + +msgid "Russian" +msgstr "Rusça" + +msgid "S-Video" +msgstr "S-Video" + +msgid "SID" +msgstr "SID" + +msgid "SINGLE LAYER DVD" +msgstr "TEK KATMAN DVD" + +msgid "SNR" +msgstr "SNR" + +msgid "SNR:" +msgstr "SNR:" + +msgid "SSID:" +msgstr "SSID:" + +msgid "Same resolution as skin" +msgstr "" + +msgid "Sat" +msgstr "Ctesi" + +msgid "Satellite" +msgstr "Uydu" + +msgid "Satellite dish setup" +msgstr "Çanak anten kurulumu" + +msgid "Satellite equipment" +msgstr "Uydu ekipmanı" + +msgid "Satellite equipment setup" +msgstr "Uydu ekipmanının kurulumu" + +msgid "Satellite longitude:" +msgstr "Uydu Boylam:" + +msgid "Satellites" +msgstr "Uydular" + +msgid "Satfinder" +msgstr "Uydu Bulucu" + +msgid "Sats" +msgstr "Uydular" + +msgid "Saturation" +msgstr "Doygunluk" + +msgid "Saturday" +msgstr "Cumartesi" + +msgid "Save" +msgstr "Kaydet" + +msgid "Save playlist" +msgstr "Çalma listesini Kaydet" + +msgid "Save timeshift file" +msgstr "" + +msgid "Save timeshift file in movie directory" +msgstr "" + +msgid "Scaler sharpness" +msgstr "Netlik ÖlçeÄŸi" + +msgid "Scaling mode" +msgstr "Ölçekleme modu" + +msgid "Scan" +msgstr "" + +msgid "Scan " +msgstr "Ara" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, python-format +msgid "Scan %s" +msgstr "%s Tara" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, python-format +msgid "Scan %s band" +msgstr "%s bant Tarama" + +msgid "Scan additional SR" +msgstr "Eklenen SR'leri ara" + +msgid "Scan files..." +msgstr "Dosyaları Tara..." + +msgid "Scan wireless networks" +msgstr "Kablosuz aÄŸları Tara" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "Kablosuz eriÅŸim noktaları için aÄŸ tara ve seçtiÄŸiniz kablosuz cihaz kullanarak bunlara baÄŸlan.\n" + +#, python-format +msgid "Scanning %s..." +msgstr "%s Taranıyor..." + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "" + +msgid "Scanning failed!" +msgstr "Tarama baÅŸarısız!" + +msgid "Scanning..." +msgstr "Taranıyor..." + +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "BaÄŸlı pozisyoner üzerinden varsayılan lamedb dosyasıyla uydu sıralı arama yapar" + +msgid "Search east" +msgstr "DoÄŸu'yu ara" + +msgid "Search west" +msgstr "Batı'yı ara" + +msgid "Searching" +msgstr "Aranıyor" + +msgid "Searching east ..." +msgstr "DoÄŸu aranıyor ..." + +msgid "Searching for available updates. Please wait..." +msgstr "Güncellemeler kontrol ediliyor. Lütfen bekleyin..." + +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "Yeni yüklenen veya kaldırılan paketler aranıyor. Lütfen bekleyin..." + +msgid "Searching west ..." +msgstr "Batı aranıyor ..." + +msgid "Second cable of motorized LNB" +msgstr "" + +msgid "Secondary DNS" +msgstr "Ä°kincil DNS" + +msgid "Seek" +msgstr "Ara" + +msgid "Seek backward" +msgstr "Geride ara" + +msgid "Seek backward (enter time)" +msgstr "Geride ara (zaman girerek)" + +msgid "Seek forward" +msgstr "Ä°leride ara" + +msgid "Seek forward (enter time)" +msgstr "Ä°leride ara (zaman girerek)" + +msgid "Select" +msgstr "Seç" + +msgid "Select CAId" +msgstr "CAId Seç" + +msgid "Select HDD" +msgstr "HDD Seç" + +msgid "Select a bouquet" +msgstr "Bir Buket seçin" + +msgid "Select a movie" +msgstr "Bir film seçin" + +msgid "Select a network adapter" +msgstr "Bir aÄŸ baÄŸdaÅŸtırıcısı seçin" + +msgid "Select a skin" +msgstr "Bir Arayüz seçin" + +msgid "Select a tuner" +msgstr "Bir Tuner seçin" + +msgid "Select a wireless network" +msgstr "Bir Kablosuz BaÄŸlantı seçin" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +msgid "Select an image to be downloaded" +msgstr "Ä°ndirmek için IMAJ seçin" + +msgid "Select audio track" +msgstr "Kullanmak istediÄŸiniz ses izini seçin" + +msgid "Select backup files" +msgstr "Yedekleme dosyalarını seçin" + +msgid "Select backup location" +msgstr "Yedekleme konumu seçin" + +msgid "Select channel to record from" +msgstr "Kaydın yapılacağı kanalı seçin" + +msgid "Select copy destination for:" +msgstr "Kopyalamak için hedef seçin:" + +msgid "Select default EPG type..." +msgstr "Varsayılan EPG türü seçin ..." + +msgid "Select desired image from feed list" +msgstr "Besleme listeden istediÄŸiniz Imajı seçin" + +msgid "Select destination for:" +msgstr "Hedef seç. Bunun için:" + +msgid "Select files for backup." +msgstr "Yedekleme dosyalarını seçin." + +msgid "Select files/folders to backup" +msgstr "Yedeklenecek dosya/klasörleri seç" + +msgid "Select input device" +msgstr "GiriÅŸ aygıtı seç" + +msgid "Select input device." +msgstr "GiriÅŸ aygıtı seç." + +msgid "Select interface" +msgstr "Arayüz seçin" + +msgid "Select location" +msgstr "Yer seçin" + +msgid "Select movie" +msgstr "Film seç" + +msgid "Select provider to add..." +msgstr "Eklenecek yayıncıyı seçin..." + +msgid "Select refresh rate" +msgstr "Tazeleme hızı seçin" + +msgid "Select satellites" +msgstr "" + +msgid "Select service to add..." +msgstr "Eklenecek kanalı seçin..." + +msgid "Select sort method:" +msgstr "" + +msgid "Select target folder" +msgstr "Hedef klasörü seçin" + +msgid "Select the movie path" +msgstr "Film yolunu seçin" + +msgid "Select upgrade source" +msgstr "Güncelleme kaynağı seçin" + +msgid "Select upgrade source to edit." +msgstr "Düzenlemek istediÄŸiniz güncelleme kaynağını seçin." + +msgid "Select video input with up/down buttons" +msgstr "Yukarı/aÅŸağı tuÅŸlarıyla Video giriÅŸini seçin" + +msgid "Select video mode" +msgstr "Görüntü kipini seç" + +msgid "Select wireless network" +msgstr "Kablosuz aÄŸ seç" + +msgid "Select your provider, and press OK to start the scan" +msgstr "SaÄŸlayıcı seçin ve taramayı baÅŸlatmak için OK tuÅŸuna basın" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +msgid "Send DiSEqC only on satellite change" +msgstr "Yalnızca uydu deÄŸiÅŸtiÄŸinde DiSEqC gönder" + +msgid "Separate titles with a main menu" +msgstr "Ana menü ile baÅŸlıkları ayır" + +msgid "Sequence repeat" +msgstr "Sıralama tekrarı" + +msgid "Serbian" +msgstr "Sırpça" + +msgid "Service" +msgstr "Kanal" + +msgid "Service has been added to the favourites." +msgstr "Kanal favorilere eklendi." + +msgid "Service has been added to the selected bouquet." +msgstr "Kanal seçilen bukete eklendi." + +msgid "Service info" +msgstr "Kanal bilgisi" + +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Kanal geçersiz!\n" +"(PMT okumasında zaman aşımı oluÅŸtu)" + +msgid "Service name" +msgstr "Kanal adı" + +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Kanal bulunamadı!\n" +"(SID, PAT içerisinde bulunamadı)" + +msgid "Service reference" +msgstr "Kanal referansı" + +msgid "Service scan" +msgstr "Kanal arama" + +msgid "Service searching" +msgstr "Kanal aranıyor" + +msgid "Service title mode" +msgstr "Kanal baÅŸlığı modu" + +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"Kanal kullanılamaz!\n" +"Tuner ayarlarınızı kontrol edin!" + +msgid "Services" +msgstr "Kanallar" + +msgid "Set default" +msgstr "" + +msgid "Set end time" +msgstr "BitiÅŸ zamanını ayarla" + +msgid "Set fixed" +msgstr "Sabitle" + +msgid "Set fps for external subtitles" +msgstr "" + +msgid "Set interface as default Interface" +msgstr "Arayüzü varsayılan arayüz olarak ata" + +msgid "Set limits" +msgstr "Limitleri belirle" + +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "Kanal seçimi ekranında ilerleme göstergesi türünü ayarlayın." + +msgid "Set time window to 1 hour" +msgstr "Zaman penceresini 1 saat olarak ayarlayın" + +msgid "Set time window to 2 hours" +msgstr "Zaman penceresini 2 saat olarak ayarlayın" + +msgid "Set time window to 3 hours" +msgstr "Zaman penceresini 3 saat olarak ayarlayın" + +msgid "Set time window to 4 hours" +msgstr "Zaman penceresini 4 saat olarak ayarlayın" + +msgid "Set time window to 5 hours" +msgstr "Zaman penceresini 5 saat olarak ayarlayın" + +msgid "Set time window to 6 hours" +msgstr "" + +msgid "Set voltage and 22KHz" +msgstr "Voltaj ayarı ve 22KHz" + +msgid "Settings" +msgstr "Ayarlar" + +msgid "Setup" +msgstr "Kurulum" + +msgid "Setup menu" +msgstr "Kurulum Menüsü" + +msgid "Setup mode" +msgstr "Kurulum Modu" + +msgid "Setup your positioner" +msgstr "Pozisyoner kurulumu" + +msgid "Setup your satellite equipment" +msgstr "Uydu ekipmanları kurulumu" + +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "USB bellek sihirbazı devam etsin ve %s imaj flaÅŸlansın mı?" + +msgid "Sharpness" +msgstr "Keskinlik" + +msgid "Short filenames" +msgstr "Kısa dosya adları" + +msgid "Show EIT now/next in infobar" +msgstr "Åžimdi/Sonraki bilgi çubuÄŸunda EIT'yi göster." + +msgid "Show EPG for current channel..." +msgstr "Mevcut kanal için EPG göster..." + +msgid "Show EPG..." +msgstr "EPG Göster..." + +msgid "Show Games show" +msgstr "Gösteri Oyunlarını göster" + +msgid "Show SNR percentage instead of dB value" +msgstr "SNR yüzdesi yerine dB deÄŸeri göster" + +msgid "Show VCR scart on main menu" +msgstr "" + +msgid "Show WLAN status" +msgstr "WLAN durumunu göster" + +msgid "Show animation while busy" +msgstr "MeÅŸgulken Animasyon Göster" + +msgid "Show background in radio mode" +msgstr "Radyo modunda arka planı gösterir" + +msgid "Show bouquet selection menu" +msgstr "Buket seçim menüsü gösterir." + +msgid "Show busy indicator when the system is busy." +msgstr "Sistem meÅŸgul olduÄŸunda meÅŸgul göstergesi göster." + +msgid "Show channel numbers in channel selection" +msgstr "Kanal seçiminde kanal numaralarını göster." + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "Bilgi çubuÄŸunda ÅŸifreleme bilgisi göster." + +msgid "Show detailed event info" +msgstr "Ayrıntılı olay bilgisi göster" + +msgid "Show event details" +msgstr "Olay ayrıntılarını göster" + +msgid "Show event-progress in channel selection" +msgstr "Kanal seçim ekranında EPG sürelerini göster" + +msgid "Show extended description" +msgstr "GeniÅŸ açıklama göster" + +msgid "Show extensions..." +msgstr "Eklentileri göster..." + +msgid "Show icon for new/unseen items" +msgstr "Yeni/Görünmeyen öğeler için simge göster" + +msgid "Show in extensions menu" +msgstr "" + +msgid "Show info" +msgstr "Bilgisi göster" + +msgid "Show info line" +msgstr "Bilgi satırı göster" + +msgid "Show infobar on channel change" +msgstr "Kanal deÄŸiÅŸtirildiÄŸinde bilgi çubuÄŸunu göster" + +msgid "Show infobar on event change" +msgstr "EPG deÄŸiÅŸikliklerinde bilgi çubuÄŸunu göster" + +msgid "Show infobar on skip forward/backward" +msgstr "Ä°leri/geri sardırmada bilgi çubuÄŸunu göster" + +msgid "Show latest commits on sourceforge" +msgstr "" + +msgid "Show message when recording starts" +msgstr "Kayıt baÅŸladığında mesajı göster" + +msgid "Show movie lengths in movielist" +msgstr "Film listesinde film uzunluÄŸunu göster" + +msgid "Show multi channel EPG" +msgstr "" + +msgid "Show picons in channel list" +msgstr "" + +msgid "Show positioner movement" +msgstr "Pozisyoner haraketini göster" + +msgid "Show screensaver" +msgstr "" + +msgid "Show second infobar" +msgstr "Ä°kinci bilgi çubuÄŸunu göster" + +msgid "Show service type icons" +msgstr "" + +msgid "Show services beginning with" +msgstr "Ile baÅŸlayan kanalları göster." + +msgid "Show shutdown menu" +msgstr "Kapatma menüsünü göster" + +msgid "Show single service EPG" +msgstr "" + +msgid "Show status icons in Movielist" +msgstr "" + +msgid "Show status icons in movie list" +msgstr "Film listesinde durum simgeleri göster" + +msgid "Show status icons in movielist" +msgstr "Film listesinde durumu simgesi göster" + +msgid "Show tag menu" +msgstr "Etiket menüsünü göster" + +msgid "Show the radio player..." +msgstr "Radyo kanal listesini göster..." + +msgid "Show the tv player..." +msgstr "TV kanal listesini göster..." + +msgid "Show warning when timeshift is stopped" +msgstr "" + +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Kablosuz aÄŸ baÄŸlantısı durumunu gösterir.\n" + +msgid "Shuffle playlist" +msgstr "Karışık çalma listesi" + +msgid "Shutdown" +msgstr "Kapat" + +msgid "Shutdown when in Standby" +msgstr "" + +msgid "Side by side" +msgstr "Yan yana" + +msgid "Signal OK, proceeding" +msgstr "Sinyal Tamam, sürekli" + +msgid "Signal quality" +msgstr "Sinyal kalitesi" + +msgid "Signal strength:" +msgstr "Sinyal gücü:" + +msgid "Signal: " +msgstr "Sinyal:" + +msgid "Similar" +msgstr "Benzer" + +msgid "Similar broadcasts:" +msgstr "Benzer yayınlar:" + +msgid "Simple" +msgstr "Basit" + +msgid "Simple titleset (compatibility for legacy players)" +msgstr "Basit baÅŸlıkseti (klasik oynatıcılarla uyumlu)" + +msgid "Single" +msgstr "Tek" + +msgid "Single EPG" +msgstr "Tekli EPG" + +msgid "Single satellite" +msgstr "Tek uydu" + +msgid "Single step (GOP)" +msgstr "Tek adım (GOP)" + +msgid "Single transponder" +msgstr "Tek transponder" + +msgid "Site latitude" +msgstr "Sayfa enlemi" + +msgid "Site longitude" +msgstr "Sayfa boylamı" + +msgid "Skin" +msgstr "Arayüz" + +msgid "Skins" +msgstr "Görsel Arayüzler" + +msgid "Skip empty services" +msgstr "BoÅŸ kanalları atla" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "Ä°nternet baÄŸlantısı kontrolünü atla. (Otomatik paket yükleme devre dışı kalır)" + +msgid "Sleep timer" +msgstr "Uyku zamanlayıcı" + +msgid "SleepTimer Configuration" +msgstr "" + +msgid "Sleeptimer" +msgstr "" + +msgid "Slide picture in loop" +msgstr "Döngüde resim slaytı" + +msgid "Slide show interval (sec.)" +msgstr "Slayt gösterisi aralığı (sn)" + +#, python-format +msgid "Slot %d" +msgstr "Yuva (slot) %d" + +msgid "Slovak" +msgstr "Slovakca" + +msgid "Slovenian" +msgstr "Slovence" + +msgid "Slow" +msgstr "YavaÅŸ" + +msgid "Slow motion speeds" +msgstr "Ağır çekim hızları" + +msgid "Small progress" +msgstr "Küçük ilerlemeler" + +msgid "Social/Political/Economics" +msgstr "Sosyal/Politik/Ekonomi" + +msgid "SoftCam / CI" +msgstr "SoftCam / CI" + +msgid "Softcam type" +msgstr "SoftCam tipi" + +msgid "Software" +msgstr "Yazılım" + +msgid "Software management" +msgstr "Yazılım yönetimi" + +msgid "Software manager setup" +msgstr "Yazılım yöneticisi kurulumu" + +msgid "Software restore" +msgstr "Yazılım yedekle" + +msgid "Software update" +msgstr "Yazılım güncelle" + +msgid "Softwaremanager information" +msgstr "Yazılım Yöneticisi bilgileri" + +msgid "Some plugins are not available:\n" +msgstr "Bazı eklentiler kullanılabilir deÄŸil:\n" + +#, python-format +msgid "Sorry, %s has not been installed!" +msgstr "Ãœzgünüm, %s yüklü deÄŸil!" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "Ãœzgünüm, dizinleri silme (ÅŸimdilik) sadece çöp kutusu üzerinden yapılabilmektedir." + +msgid "Sorry, no backups found!" +msgstr "Ne yazık ki yedekleme bulunamadı!" + +msgid "Sorry, no details available!" +msgstr "Ãœzgünüm, ayrıntı yok!" + +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"Maalesef yedekleme hedefine yazılamaz.\n" +"Lütfen baÅŸka birtane seçin." + +msgid "Sort" +msgstr "Sırala" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "A-Z ye" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort time" +msgstr "Sıralama zamanı" + +msgid "Sound" +msgstr "Ses" + +msgid "Sound carrier" +msgstr "Ses taşıyıcı" + +msgid "Source request" +msgstr "Kaynak talebi" + +msgid "South" +msgstr "Güney" + +msgid "Spanish" +msgstr "Ä°spanyolca" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "" + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +msgid "Split preview mode" +msgstr "Önizleme penceresini böl" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "Spor" + +msgid "Standard" +msgstr "Standart" + +msgid "Standart list" +msgstr "" + +msgid "Standby" +msgstr "Hazırda beklet" + +msgid "Standby / restart" +msgstr "Yeniden BaÅŸlat / Bekleme modu" + +msgid "Standby after current event" +msgstr "" + +#, python-format +msgid "Standby fan %d PWM" +msgstr "Fan bekleme modu %d PWM" + +#, python-format +msgid "Standby fan %d voltage" +msgstr "Fan bekleme modu %d voltaj" + +msgid "Standby in " +msgstr "" + +msgid "StandbyLED" +msgstr "" + +msgid "Start from the beginning" +msgstr "En baÅŸtan baÅŸla" + +msgid "Start offline decode" +msgstr "Çevrimdışı kod çözmeyi baÅŸlat" + +msgid "Start recording?" +msgstr "Kayıt baÅŸlatılsın mı?" + +msgid "Start test" +msgstr "Test'i baÅŸlat" + +msgid "Start time" +msgstr "BaÅŸlangıç ​​saati" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +msgid "Start timeshift" +msgstr "Zaman kaydırmayı BaÅŸlat" + +msgid "Start with list screen" +msgstr "Listesi ekranıyla baÅŸla" + +msgid "Starting on" +msgstr "BaÅŸlangıç" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +msgid "Step east" +msgstr "DoÄŸu adımı" + +msgid "Step west" +msgstr "Batı adımı" + +msgid "Stepped east" +msgstr "Kademeli doÄŸu" + +msgid "Stepped west" +msgstr "Kademeli batı" + +msgid "Stop" +msgstr "Durdur" + +msgid "Stop PiP" +msgstr "Durdur RiR (Resim içinde Resim)." + +msgid "Stop current event and disable coming events" +msgstr "Geçerli programı durdur ve gelecek programları devre dışı bırak" + +msgid "Stop current event but not coming events" +msgstr "Geçerli eylemi durdur ama gelecek eylemlere dokunma" + +msgid "Stop entry" +msgstr "Durdur" + +msgid "Stop playing this movie?" +msgstr "Film durdurulsun mu?" + +msgid "Stop recording" +msgstr "Kaydı durdur" + +msgid "Stop recording and delete" +msgstr "Kaydı durdur ve sil" + +msgid "Stop service on return to movie list" +msgstr "" + +msgid "Stop test" +msgstr "Testi durdur" + +msgid "Stop testing plane after # failed transponders" +msgstr "Hatalı transponder sayısına ulaşıldığında bitir" + +msgid "Stop testing plane after # successful transponders" +msgstr "BaÅŸarılı transponder sayısına ulaşıldığında bitir" + +msgid "Stop timer recording" +msgstr "" + +msgid "Stop timeshift" +msgstr "Zaman kaydırmayı durdur" + +msgid "Stop timeshift?" +msgstr "Zaman kaydırma dursun mu?" + +msgid "Stopped" +msgstr "Durduruldu" + +msgid "Store at index" +msgstr "Ä°ndeksteki depo" + +msgid "Store position" +msgstr "Pozisyonu kaydet" + +msgid "Stored position" +msgstr "Kaydedilen pozisyonlar" + +msgid "Stream" +msgstr "Akış" + +msgid "Stream request" +msgstr "Akış isteÄŸi" + +msgid "Strongest position" +msgstr "Güçlü konumda" + +msgid "Subservice list..." +msgstr "Alt servis listesi" + +msgid "Subservices" +msgstr "Alt servisler" + +msgid "Subtitle Quickmenu" +msgstr "" + +msgid "Subtitle alignment" +msgstr "Altyazı hizalama" + +msgid "Subtitle border width" +msgstr "Altyazı kenar geniÅŸliÄŸi" + +msgid "Subtitle delay when timing is bad" +msgstr "" + +msgid "Subtitle delay when timing lacks" +msgstr "Zaman yoksa altyazı gecikmesi" + +msgid "Subtitle font size" +msgstr "Altyazı Yazı Tipi Boyutu" + +msgid "Subtitle language selection 1" +msgstr "Altyazı dil seçimi 1" + +msgid "Subtitle language selection 2" +msgstr "Altyazı dil seçimi 2" + +msgid "Subtitle language selection 3" +msgstr "Altyazı dil seçimi 3" + +msgid "Subtitle language selection 4" +msgstr "Altyazı dil seçimi 4" + +msgid "Subtitle position" +msgstr "Altyazı pozisyonu" + +msgid "Subtitle selection" +msgstr "Altyazı seçimi" + +msgid "Subtitle selection..." +msgstr "Altyazı seçimi ..." + +msgid "Subtitle settings" +msgstr "Altyazı ayarları" + +msgid "Subtitles" +msgstr "Altyazı" + +msgid "Sun" +msgstr "Pazar" + +msgid "Sunday" +msgstr "Pazar" + +msgid "Swap PiP and main picture" +msgstr "Ana penceredeki görüntüyü RiR içindekini deÄŸiÅŸtir." + +msgid "Swap services" +msgstr "Takas (swap) hizmetleri" + +msgid "Swedish" +msgstr "Ä°sveççe" + +msgid "Switch TV to correct input" +msgstr "DoÄŸru giriÅŸ için TV'de deÄŸiÅŸtir" + +msgid "Switch between filelist/playlist" +msgstr "" + +msgid "Switch between normal mode and list mode" +msgstr "Normal mod ve liste modu arasında geçiÅŸ yap" + +msgid "Switch to HDMI in mode" +msgstr "" + +msgid "Switch to filelist" +msgstr "Dosya listesine geç" + +msgid "Switch to next channel" +msgstr "" + +msgid "Switch to next channel in history" +msgstr "GeçmiÅŸ. Sonraki kanal" + +msgid "Switch to next sub service" +msgstr "Sonraki alt servise geç" + +msgid "Switch to playlist" +msgstr "Oynatma listesine geç" + +msgid "Switch to previous channel" +msgstr "Önceki kanala geç" + +msgid "Switch to previous channel in history" +msgstr "GeçmiÅŸteki önceki kanal" + +msgid "Switch to previous sub service" +msgstr "Önceki alt servise geç" + +msgid "Switchable tuner types:" +msgstr "Seçilebilir tuner tipleri:" + +msgid "Symbol rate" +msgstr "Sembol oranı" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "Senkronizasyon hatası geriye orjine hareket !" + +msgid "System" +msgstr "Sistem" + +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "ÇEVÄ°RMEN HAKKINDA" + +msgid "TS file is too large for ISO9660 level 1!" +msgstr "TS dosyası ISO9660 level 1 standartları için çok büyük!" + +msgid "TSID" +msgstr "TSID" + +msgid "TV physical address report" +msgstr "TV fiziksel adres raporu" + +msgid "TXT PID" +msgstr "TXT PID" + +msgid "Table of contents for collection" +msgstr "Toplananlar tablosunun içeriÄŸi" + +msgid "Tags" +msgstr "Etiketler" + +msgid "Teletext subtitle color" +msgstr "Teletext alt yazı rengi" + +msgid "Temperature and fan control" +msgstr "Sıcaklık ve fan kontrolü" + +msgid "Terrestrial" +msgstr "Karasal" + +msgid "Terrestrial provider" +msgstr "Karasal servis yayınlayıcı" + +msgid "Test DiSEqC settings" +msgstr "DiSEqC ayarlarınızı test edin" + +msgid "Test mode" +msgstr "Test kipi" + +msgid "Test the network configuration of your receiver.\n" +msgstr "Alıcınızın aÄŸ yapılandırmasını test edin.\n" + +msgid "Test type" +msgstr "Test tipi" + +msgid "Text color" +msgstr "Yazı rengi" + +msgid "Thai" +msgstr "Tay Dili" + +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"Sihirbazı kullandığınız için teÅŸekkür ederiz.\n" +"Devam etmek için lütfen OK tuÅŸuna basın." + +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"Sihirbazı kullandığınız için teÅŸekkür ederiz. Cihazınız artık kullanıma hazırdır..\n" +"Cıhazınızı kullanmaya baÅŸlamak için OK tuÅŸuna basın." + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "DVD standardı H.264 (HDTV) video akışını desteklemiyor. Bunun yerine özel bir biçimde veri DVD (standar DVD oynatıcılarda oynatılamayabilir) oluÅŸturmak istiyor musunuz?" + +msgid "The PIN code has been changed successfully." +msgstr "PIN kodu baÅŸarıyla deÄŸiÅŸtirildi." + +msgid "The PIN codes you entered are different." +msgstr "GirdiÄŸiniz PIN kodları farklı." + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" +"USB çubuÄŸu önyüklenebilir olması için hazırlanmıştır.\n" +"Åžimdi bir NFI imaj dosyası indirebilirsiniz!" + +msgid "The backup failed. Please choose a different backup location." +msgstr "Yedek alınamadı. Lütfen baÅŸka bir yedekleme konumu seçin." + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" +"Mevcut beta imaj kararlı olmayabilir.\n" +"Daha fazla bilgi için %s bakın." + +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"%s klasörüne yazma hakkı yok.\n" +"SeçtiÄŸiniz klasörün yazılabilir olduÄŸuna emin olunuz." + +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"AÅŸağıdaki aygıt bulundu:\n" +"\n" +"%s\n" +"\n" +"USB flaÅŸlayıcıyı bu USB belleÄŸe yazmak istiyor musunuz?" + +msgid "The following files were found..." +msgstr "AÅŸağıdaki dosyalar bulundu..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "md5sum doÄŸrulaması baÅŸarısız oldu, Dosya bozuk olabilir!" + +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"AÄŸ sihirbazı eklentisi yüklü deÄŸil!\n" +"Lütfen yükleyin." + +#, python-format +msgid "The path %s already exists." +msgstr "%s yolu zaten var." + +msgid "The pin code you entered is wrong." +msgstr "GirdiÄŸiniz ÅŸifre yanlış." + +#, python-format +msgid "The results have been written to %s." +msgstr "Test sonuçları %s dosyasına yazıldı." + +msgid "The sleep timer has been activated." +msgstr "Uyku zamanlayıcı etkinleÅŸtirildi." + +msgid "The sleep timer has been disabled." +msgstr "Uyku zamanlayıcı kapatıldı." + +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"Yazılım yönetimi eklentisi yüklü deÄŸil!\n" +"Lütfen yükleyin." + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "%s eriÅŸilemiyor çünkü mevcut beta imaj durumu kontrol edilemedi." + +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "Zamanlayıcı dosyası (timers.xml) bozuk ve yüklenemiyor." + +msgid "The user interface of your receiver is restarting" +msgstr "Alıcınızın kullanıcı arayüzü yeniden baÅŸlatılıyor..." + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" +"mytest.py deki bir hata nedeniyle\n" +"Alıcınızın kullanıcı arayüzü yeniden baÅŸlatılıyor..." + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"Kablosuz aÄŸ (WLAN) eklentisi yüklenmemiÅŸ!\n" +"Lütfen yükleyin ve sonraki adımda seçiminizi yapın" + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"Kablosuz aÄŸ (WLAN) eklentisi yüklenmemiÅŸ!\n" +"Lütfen yükleyin." + +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "Bu sihirbaz geçerli ayarlarınızın yedeÄŸini alacaktır. YedeÄŸi ÅŸimdi almak istiyor musunuz?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "Sihirbaz bir yapılandırma yedeÄŸini bulundu. Eski ayarları geri yüklemek istiyor musunuz. %s den.?" + +msgid "The wizard is finished now." +msgstr "Sihirbaz tamamlandı." + +msgid "There are at least " +msgstr "En az " + +#, python-format +msgid "There are at least %s updates available." +msgstr "Yeni %s güncellemeler bulundu." + +msgid "There are currently no outstanding actions." +msgstr "SeçilmiÅŸ bir görev yok." + +msgid "There are no updates available." +msgstr "Yeni güncelleme yok." + +msgid "There is no signal to lock on !" +msgstr "Kilitlenecek hiçbir sinyal yok!" + +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"SeçtiÄŸiniz disk bölümü (partition) yeterli boÅŸ alana sahip olmayabilir.\n" +"Devam etmek istiyor musunuz?" + +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "DVD-RW medyası zaten biçimlendirilmiÅŸ - yeniden biçimlendirme tüm disk içeriÄŸini silecektir." + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" +"Bu eklenti bir aÄŸ veya WLAN baÄŸlantısına gerek kalmadan alıcınızın yazılımını güncellemek için kullanılabilecek bir USB bellek oluÅŸturur.\n" +"Ä°lk olarak, bir USB bellek bootable olacak ÅŸekilde hazırlanmış olması gerek.\n" +"Bir sonraki adımda, bir NFI imaj dosyası güncelleme sunucusundan indirilebilir ve USB belleÄŸe kaydedilir.\n" +"Önceden hazırlanmış bir önyüklenebilir USB bellek varsa, ÅŸimdi takın lütfen. USB çubuÄŸun boyutu 64 MB dan az olmamalı!" + +msgid "This plugin is installed." +msgstr "Bu eklenti yüklü." + +msgid "This plugin is not installed." +msgstr "Bu eklenti yüklü deÄŸil." + +msgid "This plugin will be installed." +msgstr "Bu eklenti yüklenebilir." + +msgid "This plugin will be removed." +msgstr "Bu eklenti kaldırılabilir." + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "Bu alıcı %s akışları çözelemiyor!" + +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"Bu test yapılandırılmış isim sunucularını kontrol eder.\n" +"\"doÄŸrulanmamış\" mesajı varsa:\n" +"- DHCP, kablolama ve adaptör kurulumu kontrol edin\n" +"- eÄŸer sunucu isimlerini elle ayarladıysanız, yazdığınız \"isim sunucusu\" nu kontrol edin." + +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Bu test, aÄŸ kablosunun bir LAN adaptörüne baÄŸlı olup olmadığını kontrol eder.\n" +"\"baÄŸlantı yok\" mesajı varsa:\n" +"- Bir aÄŸ kablosunun takılı olduÄŸundan emin olun.\n" +"- Kablonun kırık/kesik/kopuk olmadığını doÄŸrulayın" + +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Bu test oluÅŸturulan IP adresi ile LAN adaptörünü doÄŸrular.\n" +"\"doÄŸrulanmamış\" mesajı varsa:\n" +"- Geçerli bir IP adresi bulunamadı\n" +"- DHCP, kablolama ve adaptör kurulumu kontrol edin" + +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"Bu test LAN adaptörü DHCP ile otomatik IP adresi yapılandırması için ayarlanmış olup olmadığını kontrol eder.\n" +"\"devre dışı\" mesajı varsa:\n" +"- LAN adaptörü manuel IP için ayarlanmış olabilir\n" +"- LAN adaptörü kurulum iletiÅŸim kutusunda doÄŸru IP bilgileri girdiÄŸinizden emin olun.\n" +"\"etkin\" mesajı varsa:\n" +"- ağınızda yapılandırılmış ve çalışan bir DHCP sunucu var." + +msgid "This test detects your configured LAN adapter." +msgstr "Bu test yapılandırılmış LAN baÄŸdaÅŸtırıcısı tespit eder." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" +"Tüm rotor pozisyonları (yeniden)hesaplanacak ve daha önce hafızaya pozisyonlara ince ayar yapılacak!\n" +"Emin misiniz?" + +msgid "Three" +msgstr "Üç" + +msgid "Threshold" +msgstr "EÅŸik" + +msgid "Thu" +msgstr "PerÅŸ" + +msgid "Thumbnails" +msgstr "Küçük Resimler" + +msgid "Thursday" +msgstr "PerÅŸembe" + +msgid "Time" +msgstr "Zaman" + +msgid "Time scale" +msgstr "Zaman cetveli" + +msgid "Timer" +msgstr "Zamanlayıcı" + +msgid "Timer Overview" +msgstr "" + +msgid "Timer edit" +msgstr "Zamanlayıcı ayarı" + +msgid "Timer editor" +msgstr "Zamanlayıcı düzenle" + +msgid "Timer entry" +msgstr "Zamanlayıcı giriÅŸi" + +msgid "Timer log" +msgstr "Zamanlayıcı günlüğü" + +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"timers.xml zamanlayıcı çakışması saptanmıştır!\n" +"Bunu tekrar kontrol edin!" + +msgid "Timer overview" +msgstr "Zamanlayıcı çakışması" + +msgid "Timer recording location" +msgstr "Zamanlayıcı kayıt yeri" + +msgid "Timer sanity error" +msgstr "Zamanlayıcı hatası" + +msgid "Timer selection" +msgstr "Zamanlayıcı seçimi" + +msgid "Timer selection..." +msgstr "" + +msgid "Timer type" +msgstr "Zamanlayıcı tipi" + +msgid "Timeshift" +msgstr "Zaman kaydırıcı" + +msgid "Timeshift Live" +msgstr "" + +msgid "Timeshift location" +msgstr "Zaman kaydırıcı kayıt konumu" + +msgid "Timeshift not possible!" +msgstr "Zaman kaydırıcı kullanılamaz!" + +msgid "Timezone" +msgstr "Zaman dilimi" + +msgid "Title" +msgstr "BaÅŸlık" + +msgid "Title properties" +msgstr "BaÅŸlık özellikleri" + +msgid "Titleset mode" +msgstr "BaÅŸlıkseti kipi" + +msgid "To audio selection" +msgstr "Ses seçimi için" + +msgid "To subtitle selection" +msgstr "Altyazı seçimi için" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" +"Alıcınızın yazılımını güncellemek için aÅŸağıdaki adımları takip edin:\n" +"1) Cihazın arka güç düğmesinin kapalı ve önyüklenebilir bir USB belleÄŸin takılı olduÄŸundan emin olun\n" +"2) Arka güç düğmesini açın ve ön paneldeki DOWN tuÅŸuna 10 sn. basın\n" +"3) Önyükleme sihirbazının baÅŸlamasını bekleyin." + +msgid "Today" +msgstr "Bugün" + +msgid "Toggle a cut mark at the current position" +msgstr "Mevcut konuma Kesme iÅŸareti koyun" + +msgid "Tone amplitude" +msgstr "Ses genliÄŸi" + +msgid "Tone mode" +msgstr "Ton modu" + +msgid "Toneburst" +msgstr "Toneburst" + +msgid "Toneburst A/B" +msgstr "Toneburst A/B" + +msgid "Top and bottom" +msgstr "Ãœst ve alt" + +msgid "Track" +msgstr "Ä°z" + +msgid "Translation" +msgstr "Çeviri" + +msgid "Translation:" +msgstr "Çeviri:" + +msgid "Translations" +msgstr "" + +msgid "Transmission mode" +msgstr "Ä°letim (transmisyon) modu" + +msgid "Transponder" +msgstr "Transponder" + +msgid "Transponder type" +msgstr "Transponder tipi" + +msgid "Trash can" +msgstr "Çöp kutusu" + +msgid "Tries left:" +msgstr "Sol denendi:" + +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Kullanılan transponderlar kablolu yayın ağında aranıyor.. lütfen bekleyin..." + +msgid "Trying to download a new packetlist. Please wait..." +msgstr "Paket listesi indiriliyor. Lütfen bekleyin..." + +msgid "Tue" +msgstr "Salı" + +msgid "Tuesday" +msgstr "Salı" + +msgid "Tune" +msgstr "Ayar" + +msgid "Tune and focus" +msgstr "Ayarlama ve odaklanma" + +msgid "Tune failed!" +msgstr "Kanal geçiÅŸi baÅŸarısız!" + +msgid "Tuner" +msgstr "Tuner" + +msgid "Tuner configuration" +msgstr "Tuner ayarları" + +msgid "Tuner is not supported" +msgstr "" + +msgid "Tuner slot" +msgstr "Tuner yuvası" + +msgid "Tuner status" +msgstr "Tuner durumu" + +#, python-format +msgid "Tuner status %s" +msgstr "Tuner durumu %s" + +msgid "Tuner type" +msgstr "Tuner tipi" + +msgid "Turkish" +msgstr "Türkçe" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +msgid "Two" +msgstr "Ä°ki" + +msgid "Type" +msgstr "Tip" + +msgid "Type of scan" +msgstr "Tarama tipi" + +msgid "USALS" +msgstr "DiSEqC 1.3 (USALS)" + +msgid "USALS calibration" +msgstr "DiSEqC 1.3 (USALS) kalibrasyonu" + +msgid "USB stick" +msgstr "USB bellek" + +msgid "USB stick wizard" +msgstr "USB bellek sihirbazı" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Gözetimsiz güncelleme devam ediyor.\n" +"Alıcınız yeniden baÅŸlatılana kadar bekleyin\n" +"Bu iÅŸlem birkaç dakika sürebilir" + +msgid "Undo install" +msgstr "Yüklemeyi geri al" + +msgid "Undo uninstall" +msgstr "Kaldırmayı geri al" + +msgid "Unencrypted" +msgstr "Åžifresiz" + +msgid "UnhandledKey" +msgstr "Tanımsız Özel Åžifre" + +msgid "Unicable" +msgstr "Unicable" + +msgid "Unicable LNB" +msgstr "Unicable LNB" + +msgid "Unicable Martix" +msgstr "Unicable Martix" + +msgid "Uninstall" +msgstr "Kaldır" + +msgid "Universal LNB" +msgstr "Universal LNB" + +msgid "Unknown" +msgstr "Bilinmeyen" + +msgid "Unmount" +msgstr "Bağı kaldır" + +msgid "Unsupported" +msgstr "Desteklenmiyor" + +msgid "Update" +msgstr "Güncelle" + +msgid "Update and ask to reboot" +msgstr "Güncelle ve yeniden baÅŸlatmak için sor" + +msgid "Update and reboot (recommended)" +msgstr "Güncelle ve yeniden baÅŸlat (önerilen)" + +msgid "Update channel list only" +msgstr "Sadece kanal listesini güncelle" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "Güncelleme tamamlandı, %d paket yüklendi." + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "Güncelleme tamamlandı. Alıcınızı yeniden baÅŸlatmak istiyor musunuz?" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "Güncelleme baÅŸarısız oldu. Alıcınızda bir Ä°nternet baÄŸlantısı yok." + +msgid "Update has completed." +msgstr "Güncelleme tamamladı." + +msgid "Updatefeed not available." +msgstr "Güncelleme sunucusu kullanılamıyor." + +msgid "Updating software catalog" +msgstr "Yazılım kataloÄŸu güncelleniyor" + +msgid "Upgrading" +msgstr "Güncelleme" + +msgid "Use" +msgstr "Kullan" + +msgid "Use DHCP" +msgstr "DHCP Kullan" + +msgid "Use EIT EPG information when it is available." +msgstr "Uygun olduÄŸunda EPG EIT bilgilerini kullan." + +msgid "Use FreeSat EPG information when it is available." +msgstr "Uygun olduÄŸunda FreeSat EPG bilgilerini kullan." + +msgid "Use MHW EPG information when it is available." +msgstr "Uygun olduÄŸunda MHW EPG bilgilerini kullan." + +msgid "Use Netmed EPG information when it is available." +msgstr "Uygun olduÄŸunda Netmed EPG bilgilerini kullan." + +msgid "Use TV remote control" +msgstr "TV uzaktan kumandasını kullan" + +msgid "Use USALS for this sat" +msgstr "Bu Uydu için DiSEqC 1.3 (USALS) kullan" + +msgid "Use ViaSat EPG information when it is available." +msgstr "Uygun olduÄŸunda ViaSat EPG bilgilerini kullan." + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +msgid "Use a gateway" +msgstr "AÄŸ geçidi kullan" + +msgid "Use fastscan channel names" +msgstr "Hızlı Tarama kanal isimlerini kullanın" + +msgid "Use fastscan channel numbering" +msgstr "Hızlı Tarama kanal numaralarını kullanın" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "" + +msgid "Use interface" +msgstr "Arayüz kullan" + +msgid "Use official channel numbering" +msgstr "Resmi kanal numaralamasını kullanın" + +msgid "Use original DVB subtitle position" +msgstr "Orijinal DVB altyazı konumunu kullan" + +msgid "Use original teletext position" +msgstr "Orijinal teletext konumunu kullan" + +msgid "Use power measurement" +msgstr "Güç kullanımını ölç" + +msgid "Use the network wizard to configure selected network adapter" +msgstr "Seçilen aÄŸ baÄŸdaÅŸtırıcısını yapılandırmak için aÄŸ sihirbazını kullan" + +msgid "Use the network wizard to configure your network\n" +msgstr "AÄŸ yapılandırmak için aÄŸ sihirbazını kullan\n" + +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "Seçiminizi yapmak için kumandanızın yukarı/aÅŸağı tuÅŸlarını kullanın. Sonrasında OK tuÅŸuna bas." + +msgid "Use the wizard to set up basic features" +msgstr "Temel kurulum özellikleri için sihirbazı kullan." + +msgid "Use these input device settings?" +msgstr "Bu giriÅŸ cihazının ayarlarını kullan?" + +msgid "Use these settings?" +msgstr "Bu ayarları kullan?" + +msgid "Use this video enhancement settings?" +msgstr "DüzenlediÄŸiniz görüntü iyileÅŸtirme ayarları kullanılsın mı?" + +msgid "Use trash can in movielist" +msgstr "Film listesinde çöp kutusu kullanın." + +msgid "Used service scan type" +msgstr "Kullanılan kanal arama tipi" + +msgid "User - bouquets" +msgstr "Kullanıcı - Buketleri" + +msgid "User defined" +msgstr "Kullanıcı tanımlı" + +msgid "User defined transponder" +msgstr "" + +msgid "User interface" +msgstr "Kullanıcı arayüzü" + +msgid "Username" +msgstr "Kullanıcı adı" + +#, python-format +msgid "Using LNB %d" +msgstr "LNB %d kullanarak" + +msgid "Using fixed address" +msgstr "Sabit adres kullan" + +#, python-format +msgid "Using tuner %s" +msgstr "Tuner %s kullanarak" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "Genellikle altyazı dili ses diliyle aynı olduÄŸu zaman, alt yazı kullanılmayacaktır. Altyazı kullanımı etkin olduÄŸunda bu seçeneÄŸi etkinleÅŸtirin." + +msgid "VCR scart" +msgstr "VCR scart" + +msgid "VMGM (intro trailer)" +msgstr "VMGM (tanıtım filmi)" + +msgid "Vertical" +msgstr "Düşey (V)" + +msgid "Vertical turning speed" +msgstr "Dikey dönüş hızı" + +msgid "Video PID" +msgstr "Video PID" + +msgid "Video enhancement preview" +msgstr "Görüntü iyileÅŸtirme önizleme" + +msgid "Video enhancement settings" +msgstr "Görüntü iyileÅŸtirme ayarları" + +msgid "Video enhancement setup" +msgstr "Görüntü iyileÅŸtirme kurulumu" + +msgid "Video fine tuning" +msgstr "Görüntü ince ayarı" + +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Video giriÅŸi seçimi\n" +"\n" +"EeÄŸer TV'nizde bu sayfayı görünüyorsa lütfen OK tuÅŸuna basın (veya farklı bir giriÅŸ noktasını seçin).\n" +"\n" +"Bir sonraki giriÅŸi baÄŸlantı noktasına otomatik olarak 20 saniye içinde geçilecektir." + +msgid "Video mode selection." +msgstr "Görüntü kipi seçimi." + +msgid "Video output" +msgstr "Video çıkışı" + +msgid "Video setup" +msgstr "Video ayarları" + +msgid "Video wizard" +msgstr "Görüntü sihirbazı" + +#, python-format +msgid "Video: %s fps" +msgstr "" + +msgid "VideoMode" +msgstr "" + +msgid "Videocodec" +msgstr "Video Çözücü (Codec)" + +msgid "Videoformat" +msgstr "Video formatı" + +msgid "Videosize" +msgstr "Video Boyutu" + +msgid "View Rass interactive..." +msgstr "EtkileÅŸimli RASS'ı göster" + +msgid "View details" +msgstr "Detayları incele" + +msgid "View list of available " +msgstr "Kullanılabilir " + +msgid "View list of available CommonInterface extensions" +msgstr "Ortak arayüz eklentileri" + +msgid "View list of available EPG extensions." +msgstr "EPG eklentileri listesini görüntüle" + +msgid "View list of available Satellite equipment extensions." +msgstr "Uydu ekipman eklentilerini listele" + +msgid "View list of available communication extensions." +msgstr "Ä°letiÅŸim eklentilerini listele" + +msgid "View list of available default settings" +msgstr "Varsayılan ayarları listele" + +msgid "View list of available display and userinterface extensions." +msgstr "Ekran ve kullanıcı arayüzü eklentilerini listele." + +msgid "View list of available multimedia extensions." +msgstr "Çoklu ortam eklentilerini listele" + +msgid "View list of available networking extensions" +msgstr "AÄŸ eklentilerini listele" + +msgid "View list of available recording extensions" +msgstr "Kayıt eklentilerini listele" + +msgid "View list of available skins" +msgstr "Arayüz eklentilerini listele" + +msgid "View list of available software extensions" +msgstr "Yazılım eklentilerini listele" + +msgid "View list of available system extensions" +msgstr "Sistem eklentilerini listele" + +msgid "View photos..." +msgstr "FotoÄŸrafları göster ..." + +msgid "View teletext..." +msgstr "Teletekst bilgileri ..." + +msgid "View video CD..." +msgstr "Video CD bilgileri ..." + +msgid "Virtual keyboard" +msgstr "Sanal klavye" + +msgid "Voltage mode" +msgstr "Voltaj kipi" + +msgid "Volume" +msgstr "Ses" + +msgid "W" +msgstr "W" + +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "WLAN baÄŸlantısı" + +msgid "WPA" +msgstr "WPA" + +msgid "WPA or WPA2" +msgstr "WPA veya WPA2" + +msgid "WPA2" +msgstr "WPA2" + +msgid "WSS on 4:3" +msgstr "WSS 4:3" + +msgid "Waiting" +msgstr "Bekleniyor" + +msgid "Waiting for mount" +msgstr "BaÄŸlama bekleniyor" + +msgid "Waiting for partition" +msgstr "Bölümleme bekleniyor" + +msgid "Wakeup" +msgstr "Wake Up" + +msgid "Wakeup TV from standby" +msgstr "TV'nin bekleme modundan açılması bekleniyor" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "Alıcının bekleme modundan açılması bekleniyor." + +msgid "Wakeup signal from TV" +msgstr "TV'den Uyandırma sinyali" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "Uyarı: Fabrika ayarlarını kullanan LNB yok" + +msgid "Watch movies..." +msgstr "Film izleyin ..." + +msgid "Watch recordings..." +msgstr "Kayıtları izleyin ..." + +msgid "Wed" +msgstr "ÇarÅŸ" + +msgid "Wednesday" +msgstr "ÇarÅŸamba" + +msgid "Weekday" +msgstr "Haftaiçi" + +msgid "Weighted position" +msgstr "Ağırlıklı pozisyon" + +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"Kesime listesi düzenleyicisine hoÅŸ geldiniz.\n" +"\n" +"Gördüğünüz yerden baÅŸlayabilirsiniz. OK tuÅŸuna basın ve seçin 'kesme baÅŸlangıçı'\n" +"\n" +"Daha sonra kesmek istediÄŸiniz yedere kadak bekleyin ve OK basın 'kesme sonu'. Bu kadar basit." + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "Yazılım yükseltme sihirbazına hoÅŸ geldiniz. Sihirbaz, geçerli ayarlarınız için yedekleme olanağı saÄŸlayarak alıcınızın yazılımını yükseltmede size yardımcı olacaktır." + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" +"HoÅŸgeldiniz.\n" +"\n" +"EÄŸer alıcınızı Internete baÄŸlamak istiyorsanız, bu sihirbazın alıcınızın temel aÄŸ kurulumunda size yol gösterecektir.\n" +"\n" +"AÄŸ yapılandırılmasını baÅŸlatmak için OK tuÅŸuna basın" + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" +"HoÅŸgeldiniz.\n" +"\n" +"Bu baÅŸlangıç ​​sihirbazı Uydu alıcınızın temel ayarları sürecinde size yol gösterecektir.\n" +"Bir sonraki adıma geçmek için uzaktan kumanda üzerindeki OK düğmesine basın." + +msgid "Welcome..." +msgstr "HoÅŸgeldiniz..." + +msgid "West" +msgstr "Batı" + +msgid "West limit set" +msgstr "Batı limit ayarı" + +msgid "What do you want to scan?" +msgstr "Neleri aramak istiyorsunuz?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "" + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "" + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "AIT veri http akışlarına dahil edilecektir. Bu iÅŸlem alıcının HbbTV kullanmasını saÄŸlar." + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "ECM veri http akışları dahil edilecektir. Bu istemci alıcının ÅŸifre çözme iÅŸlemini saÄŸlar." + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "EIT veri http akışına dahil edilecektir. Bu istemci alıcının EPG göstermesini saÄŸlar." + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "Açılan bir iletiyle bir film bittiÄŸini gösterilir ve bir sonraki programı gösterir." + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "Bir kayıt baÅŸladığında, mesaj gösterilir." + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "Bir radyo kanalını dinlerken radyo arka plan resmi görünecektir." + +# Çeviriden emin deÄŸilim... +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "Yayını kaydetmek için baÅŸ tunere ihtiyaç duymaz..." + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "" + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "Kanal numaralandırması her buket için '1 'den baÅŸlayacak." + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "4:3 en boy oranı ile içerik ekrana sığacak ÅŸekilde uzatılır." + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "Kanal deÄŸiÅŸtirme sırasında geçerli bukette son kanal ulaşıldığında bir sonraki buketten devam eder." + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "Silinen kayıtları, çöp kutusuna taşınır." + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "EtkinleÅŸtirildiÄŸinde, ÅŸimdi / sonraki EIT geçmiÅŸini bilgi çubuÄŸunda görüntüler. Devre dışı bırakıldığında, ÅŸimdi / sonraki geçmiÅŸ yerine EPG önbelleÄŸinden görüntüler." + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "Åžifreleme bilgisi bilgi çubuÄŸunda gösterilir (arayüz tarafından destekleniyorsa)." + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "Ortak Arayüz modülü ile ilgili hata iletileri gösterilmeyecektir." + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "Zap ile ilgili hata iletileri gösterilmez." + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "" + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "Her iki tür de mevcut olduÄŸunda grafik DVB altyazı yerine teleteks altyazısı tercih edilir." + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "Grafik DVB altyazı yatayda ortala." + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "Grafik DVB altyazıyı orijinal konumunda görüntülenir." + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "Grafik DVB altyazı orjinal renginin yerine sarı renk içinde gösterilir." + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "http akışları sunucu tarafında kodlanabilir. (Uzak) istemci alıcının akışı çözülmesine yardımcı olmak zorunda deÄŸildir." + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "" + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "Rotorun dönüşünün bittiÄŸi anı algılamak, çekilen güç ölçülerek anlaşılabilir. (tuner tarafından destekleniyorsa)" + +msgid "When enabled, number markers will be hiden." +msgstr "" + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "Kanallar, çoklu buketler halinde gruplandırılmış olabilir." + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "Kanal seçimi ekranında kanal numaraları gösterir." + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "Ä°ÅŸitme engelliler için altyazı kullanılabilir." + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "Her iki tür de altyazı mevcut olduÄŸunda (iÅŸitme engelliler ve normal), normal bir altyazı tercih edilecektir." + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "Teletekst sayfalarına daha hızlı eriÅŸim saÄŸlamak için, önbellek kullanılır." + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "Teletext altyazıları orijinal konumunda görüntülenir." + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "" + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "Bir radyo kanalını dinlerken kanal seçim listesi gizlenecektir" + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "Yeni bir etkinlik baÅŸladığında bilgi çubuÄŸu görüntülenir." + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "Kanalları deÄŸiÅŸtirirken bilgi çubuÄŸu görüntülenir." + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "Medya oynatma sırasında ileri / geri atlama zamanı bilgi çubuÄŸunda görüntülenir." + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "Her kayıt uzunluÄŸu Film listesinde gösterilecektir (bu bazı ek yükleme süresine neden olabilir)" + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "Orijinal satır sonlarındaki teleteks altyazıları kaldırılacaktır." + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "Alıcı otomatik olarak önceden seçilen sesi izini kullanır." + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "Alıcı otomatik olarak önceden seçilen altyazıları kullanacaktır." + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "Alıcı bundan böyle olası deÄŸiÅŸiklikler olduÄŸunda ayarlı transponderi takip edecek. EÄŸer ne yaptığınızı bilmiyorsanız bu seçeneÄŸi kullanmayın." + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "AC3 ses izi (varsa) seçilecektir." + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "" + +msgid "When enabled, use DHCP for the IP configuration." +msgstr "IP yapılandırması için DHCP kullan." + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "" + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "BoÅŸ deÄŸilse, kayıt baÅŸlangıç ​​zamanı EPG ile gösterilenden daha erken baÅŸlayacak." + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "BoÅŸ deÄŸilse, kayıt EPG zamanından önce tamamlanır." + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "16:9 en boy oranı varsa, resmi büyütme/uzatma için seçebilirsiniz." + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "4:3 en boy oranı varsa, resmi büyütme/uzatma için seçebilirsiniz." + +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"Fabrika ayarlarına geri döndüğünüzde, yapılandırma dosyalarınızın tamamını KAYBEDEBÄ°LÄ°RSÄ°NÄ°Z\n" +"(buketler, kanallar, uydu verileri ve özel ayar dosyalarınız ...)\n" +"Fabrika ayarlarına geri dönüldükten sonra, uydu alıcınız otomatik olarak yeniden baÅŸlatılacaktır!\n" +"\n" +"Fabrika ayarlarına geri dönmek istediÄŸinizden emin misiniz?" + +msgid "Where do you want to backup your settings?" +msgstr "Ayarlarınızın yedeÄŸini nereye almak istiyorsunuz?" + +msgid "Where to save temporary timeshift recordings?" +msgstr "Geçici zaman bükücü kayıtları nereye yapılsın?" + +msgid "Wireless LAN" +msgstr "Kablosuz aÄŸ WLAN" + +msgid "Wireless network" +msgstr "Kablosuz aÄŸ" + +msgid "Wireless network configuration..." +msgstr "Kablosuz aÄŸ yapılandırması ..." + +msgid "Wireless network connection setup" +msgstr "Kablosuz aÄŸ baÄŸlantısı kurulumu" + +msgid "Wireless network connection setup." +msgstr "Kablosuz aÄŸ baÄŸlantısı kurulumu." + +msgid "Wireless network state" +msgstr "Kablosuz aÄŸ durumu" + +msgid "With popup" +msgstr "" + +msgid "Without popup" +msgstr "" + +msgid "Would you like to install a softcam?" +msgstr "Would you like to install a softcam?" + +msgid "Write error while recording. Disk full?\n" +msgstr "Kaydederken hata oluÅŸtu. Disk dolu mu?\n" + +msgid "Write failed!" +msgstr "Yazma baÅŸarısız!" + +msgid "YPbPr" +msgstr "YPbPr" + +msgid "Year" +msgstr "Yıl" + +msgid "Yellow DVB subtitles" +msgstr "Sarı DVB altyazı" + +msgid "Yes" +msgstr "Evet" + +msgid "Yes and save" +msgstr "" + +msgid "Yes and save in movie dir" +msgstr "" + +msgid "Yes to all" +msgstr "Tümüne evet" + +msgid "Yes, always" +msgstr "Evet, her zaman" + +msgid "Yes, and delete this movie" +msgstr "Evet, ve bu filmi sil" + +msgid "Yes, backup my settings!" +msgstr "Evet, ayarlarımın yedeÄŸini al!" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +msgid "Yes, do a manual scan now" +msgstr "Evet, elle kanal aramayı baÅŸlat" + +msgid "Yes, do an automatic scan now" +msgstr "Evet, otomatik kanal aramayı baÅŸlat" + +msgid "Yes, do another manual scan now" +msgstr "Evet, yeni bir elle kanal araması baÅŸlat" + +msgid "Yes, perform a shutdown now." +msgstr "Evet, cihazı ÅŸimdi kapat." + +msgid "Yes, restore the settings now" +msgstr "Evet, ayarlarımı geri yükle" + +msgid "Yes, returning to movie list" +msgstr "Evet, film listesine dön" + +msgid "Yesterday" +msgstr "Dün" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" +"Zaten bir kanal listesi, yüklü\n" +"Silmek istiyorsunuz\n" +"\"%s\"?" + +msgid "You can cancel the installation." +msgstr "Eklenti yüklemeyi iptal edebilirsiniz." + +msgid "You can cancel the removal." +msgstr "Eklenti kaldırmayı iptal edebilirsiniz." + +msgid "You can continue watching TV etc. while this is running." +msgstr "Bu çalışırken tv vb izlemeye devam edebilirsiniz." + +msgid "You can install this plugin." +msgstr "Bu eklentiyi yükleyebilirsiniz." + +msgid "You can only burn receiver recordings!" +msgstr "Sadece alıcıdaki kayıtlarını yazabilirsiniz!" + +msgid "You can remove this plugin." +msgstr "Bu eklentiyi kaldırabilirsiniz." + +msgid "You cannot delete this!" +msgstr "Bunu silemezsiniz!" + +msgid "You didn't select a channel to record from." +msgstr "Kayıt için bir kanal seçmediniz." + +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "Ayarlarınızı yedeklemeyi seçtiniz. Yedeklemeyi baÅŸlatmak için OK tuÅŸuna basın..." + +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "Önyükleme yapabilir .NFI flaÅŸlayıcı USB bellek oluÅŸturmayı seçtiniz. Bu iÅŸlem USB belleÄŸin yeniden bölümlendirmesini gerektirdiÄŸinden içeriÄŸindeki tüm veriler silinecektir." + +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "Ayarlarınızı geri yüklemeyi seçtiniz. Geri yükleme iÅŸleminin ardından Enigma2 yeniden baÅŸlayacaktır. Geri yüklemeyi baÅŸlatmak için OK tuÅŸuna basın..." + +#, python-format +msgid "You have to wait %s!" +msgstr "Bekleme süresi : %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." + +msgid "You system does not support ext4" +msgstr "Sisteminiz Ext4 dosya sistemi desteklemiyor" + +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "Yedek baÅŸarıyla alındı. Åžimdi güncelleme iÅŸlemine devam edeceÄŸiz." + +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "Koleksiyonunuz tek katman DVD'ye sığmıyor, çift katman DVD kullanmanız gerekiyor!" + +msgid "Your current collection will get lost!" +msgstr "Geçerli seçimi kaybetmiÅŸ olacaksınız!" + +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"Ön iÅŸlemci yazılım güncellenmesi gerekiyor.\n" +"Güncellemeye baÅŸlamak için OK tuÅŸuna basın." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Yazılımınız güncellenecek\n" +"Alını yeniden baÅŸlatılana kadar bekleyi\n" +"Bu iÅŸlem birkaç dakika sürebilir" + +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"Ä°nternet baÄŸlantınız çalışmıyor!\n" +"Sonraki aÅŸamada yapmak istediÄŸiniz iÅŸlemi seçiniz." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "Internet baÄŸlantısı çalışıyor (IP: %s)" + +msgid "Your network configuration has been activated." +msgstr "AÄŸ yapılandırmanız etkinleÅŸtirildi." + +msgid "Your receiver does not have an internet connection" +msgstr "Alıcıda kurulu bir internet baÄŸlantısı yok." + +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +"Alıcınız artık kullanıma hazır.\n" +"\n" +"Internet baÄŸlantısı çalışıyor..\n" +"\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Alıcınız artık kullanıma hazır.\n" +"\n" +"Internet baÄŸlantısı da çalışıyor.\n" +"\n" +"Devam etmek için OK tuÅŸuna basınız." + +msgid "Your receiver is rebooting" +msgstr "Uydu Alıcınız yeniden baÅŸtatılıyor." + +msgid "Your receiver is shutting down" +msgstr "YoUydu Alıcınız kapanıyor." + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "Uydu Alıcınız kapatılıyor. Lütfen bekleyin ..." + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "Cihazınız artık kullanılmaz olabilir. Alıcınızın yeniden baÅŸlatmadan önce daha fazla yardım için kılavuzuna bakınız." + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "" + +msgid "Your receiver will got to standby due to inactivity." +msgstr "" + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "Uydu alıcınız, uzaktan kumandadaki OK bastıktan sonra yeniden baÅŸlatıcak." + +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"Kablosuz aÄŸ baÄŸlantısı baÅŸlatılamadı!\n" +"USB WLAN çubuÄŸunu taktığınızdan emin olun?\n" +"\n" +"Lütfen sonraki adımda yapmak istediÄŸiniz iÅŸlemi seçin." + +msgid "Zap" +msgstr "Kanal DeÄŸiÅŸtirme" + +msgid "Zap back to previously tuned service?" +msgstr "Ayarlı kanala geri dönmek istiyor musunuz?" + +msgid "Zap back to service before positioner setup?" +msgstr "Pozisyoner kurulumundan çıktıktan sonra seyrettiÄŸiniz kanala dönmek istiyor musunuz?" + +msgid "Zap back to service before tuner setup?" +msgstr "Tuner ayarlarından çıktıktan sonra seyrettiÄŸiniz kanala dönmek istiyor musunuz?" + +msgid "Zap focus to Picture in Picture" +msgstr "Resim içinde Resim (RiR) kanal deÄŸiÅŸtir." + +msgid "Zap focus to main screen" +msgstr "Ana ekranda kanal deÄŸiÅŸtir" + +msgid "Zap mode" +msgstr "Kanal DeÄŸÅŸ. Modu" + +msgid "Zap to selected channel" +msgstr "Seçilen kanalı aç" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "Seçilen kanal, ya da gösteren EPG bilgisine göre (yapılandırmasına göre deÄŸiÅŸir) Kanal DeÄŸiÅŸtir" + +msgid "[alternative edit]" +msgstr "[alternatif düzenle]" + +msgid "[bouquet edit]" +msgstr "[buket düzenle]" + +msgid "[favourite edit]" +msgstr "[favori düzenle]" + +msgid "[move mode]" +msgstr "[taşıma kipi]" + +msgid "a gui to assign services/providers to common interface modules" +msgstr "ortak arayüz modüllerine kanal/yayıncı atama arayüzü" + +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "ortak arayüz modüllerine kanal/yayıncı/caid atama arayüzü" + +msgid "abort alternatives edit" +msgstr "alternatif düzenlemekten vazgeç" + +msgid "abort bouquet edit" +msgstr "buket düzenlemekten vazgeç" + +msgid "abort favourites edit" +msgstr "favori düzenlemekten vazgeç" + +msgid "about to start" +msgstr "baÅŸlamak üzere" + +msgid "activate network adapter configuration" +msgstr "aÄŸ adaptör ayarlarını etkinleÅŸtir" + +msgid "add alternatives" +msgstr "Alternatiflere ekle" + +msgid "add bookmark" +msgstr "Yer imi ekle" + +msgid "add bouquet" +msgstr "Buket oluÅŸtur" + +msgid "add marker" +msgstr "Ä°ÅŸaretçi Ekle" + +msgid "add service to bouquet" +msgstr "Kanalı bukete ekle" + +msgid "add service to favourites" +msgstr "Kanalı favorilere ekle" + +msgid "add to parental protection" +msgstr "Aile koruması ekle" + +msgid "adult movie/drama" +msgstr "YetiÅŸkin Film/Drama" + +msgid "advanced" +msgstr "GeliÅŸmiÅŸ" + +msgid "adventure/western/war" +msgstr "macera/western/savaÅŸ" + +msgid "advertisement/shopping" +msgstr "reklam/alışveriÅŸ" + +msgid "after " +msgstr "" + +msgid "alphabetic" +msgstr "alfabetik" + +msgid "alphabetic reverse" +msgstr "alfabetik ters" + +msgid "alternative" +msgstr "" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "sanat/kültür (müziksiz, genel)" + +msgid "arts/culture magazine" +msgstr "sanat/kültür magazin" + +msgid "athletics" +msgstr "atletizm" + +msgid "audio tracks" +msgstr "ses izleri" + +msgid "auto" +msgstr "otomatik" + +msgid "automatic" +msgstr "otomatik" + +msgid "back" +msgstr "back" + +msgid "background image" +msgstr "arkaplan resmi" + +msgid "ballet" +msgstr "balet" + +#, python-format +msgid "bc%s" +msgstr "bc%s" + +msgid "better" +msgstr "better" + +msgid "black" +msgstr "siyah" + +msgid "black & white" +msgstr "kara & beyaz" + +msgid "blacklist" +msgstr "kara liste" + +msgid "blue" +msgstr "mavi" + +msgid "broadcasting/press" +msgstr "yayıncılık/basın" + +msgid "by date" +msgstr "tarihe göre" + +msgid "cartoon/puppets" +msgstr "çizgi film/kukla" + +msgid "center" +msgstr "center" + +msgid "centered" +msgstr "" + +msgid "centered, wrapped" +msgstr "" + +msgid "chapters" +msgstr "bölümler" + +msgid "childrens's/youth program (general)" +msgstr "Çocuklar için / gençlik programı (genel)" + +msgid "circular left" +msgstr "dairesel sola" + +msgid "circular right" +msgstr "dairesel saÄŸa" + +msgid "comedy" +msgstr "komedi" + +msgid "complex" +msgstr "karmaşık (kompleks)" + +msgid "config menu" +msgstr "ayar menüsü" + +msgid "confirmed" +msgstr "onaylandı" + +msgid "connected" +msgstr "baÄŸlı" + +msgid "continue" +msgstr "devam et" + +msgid "cooking" +msgstr "yemek" + +msgid "copy to bouquets" +msgstr "buketlere kopyala" + +msgid "create directory" +msgstr "klasör oluÅŸtur" + +#, python-format +msgid "currently installed image: %s" +msgstr "Yüklü yazılım: %s" + +msgid "daily" +msgstr "günlük" + +msgid "day" +msgstr "gün" + +msgid "default" +msgstr "öntanımlı" + +msgid "delete cut" +msgstr "kesimi sil" + +msgid "delete..." +msgstr "" + +msgid "descramble and record ecm" +msgstr "çöz ve ecm kaydet" + +msgid "detective/thriller" +msgstr "dedektif / gerilim" + +msgid "disable" +msgstr "kapat" + +msgid "disable move mode" +msgstr "taşıma kipini kapat" + +msgid "disabled" +msgstr "devre dışı" + +msgid "disconnected" +msgstr "baÄŸlı deÄŸil" + +msgid "discussion/interview/debate" +msgstr "tartışma / röportaj / tartışmaları" + +msgid "do nothing" +msgstr "birÅŸey yapma" + +msgid "documentary" +msgstr "belgesel" + +msgid "don't descramble, record ecm" +msgstr "ezülmüyorcm kaydı çö" + +msgid "done!" +msgstr "Tamamlandı!" + +msgid "east" +msgstr "east" + +msgid "economics/social advisory" +msgstr "ekonomi / sosyal tavsiye" + +msgid "edit alternatives" +msgstr "alternatifleri düzenle" + +msgid "education/science/factual topics (general)" +msgstr "eÄŸitim / bilim / gerçeklere dayanan konular (genel)" + +msgid "empty" +msgstr "boÅŸ" + +msgid "enable" +msgstr "etkinleÅŸtir" + +msgid "enable bouquet edit" +msgstr "Buket düzenlemeyi aç" + +msgid "enable favourite edit" +msgstr "Favori düzenlemeyi aç" + +msgid "enable move mode" +msgstr "Taşıma kipini aç" + +msgid "enabled" +msgstr "Etkin" + +msgid "end alternatives edit" +msgstr "alternatif düzenlemeyi bitir" + +msgid "end bouquet edit" +msgstr "buket düzenlemeyi bitir" + +msgid "end cut here" +msgstr "kesimi burada bitir" + +msgid "end favourites edit" +msgstr "favori düzenlemeyi bitir" + +msgid "entertainment (10-16 year old)" +msgstr "eÄŸlence (10-16 yaÅŸ arası)" + +msgid "entertainment (6-14 year old)" +msgstr "eÄŸlence (10-16 yaÅŸ arası)" + +msgid "equal to" +msgstr "eÅŸittir" + +msgid "equestrian" +msgstr "binicilik" + +msgid "exit DVD player or return to file browser" +msgstr "DVD oynatıcıdan çık yada dosya yöneticisine geri dön" + +msgid "exit movielist" +msgstr "" + +msgid "exit network adapter configuration" +msgstr "aÄŸ donanımı yapılandırmasından çık" + +msgid "exit networkadapter setup menu" +msgstr "aÄŸ donanımı kurulum menüsünden çık" + +msgid "experimental film/video" +msgstr "deneysel film / video" + +msgid "false" +msgstr "yanlış" + +msgid "fashion" +msgstr "moda" + +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "dosya biçimi (BMP, PNG, JPG, GIF)" + +msgid "filename" +msgstr "dosyaadı" + +msgid "film/cinema" +msgstr "film/sinema" + +msgid "fine arts" +msgstr "güzel sanatlar" + +msgid "fine-tune your display" +msgstr "Ekran ince ayar" + +msgid "fitness & health" +msgstr "spor ve saÄŸlık" + +msgid "flat alphabetic" +msgstr "A-Z" + +msgid "flat alphabetic reverse" +msgstr "A-Z->Z-A" + +msgid "folk/traditional music" +msgstr "halk müziÄŸi / geleneksel müzik" + +msgid "football/soccer" +msgstr "futbol / Maç" + +msgid "foreign countries/expeditions" +msgstr "yabancı ülkelere / keÅŸif" + +msgid "forward to the next chapter" +msgstr "sonraki bölüme ilerle" + +msgid "free" +msgstr "boÅŸ" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "ileri eÄŸitim" + +msgid "game show/quiz/contest" +msgstr "oyun gösterisi / sınav / Yarışma" + +msgid "gardening" +msgstr "bahçıvanlık" + +msgid "go to deep standby" +msgstr "derin uyku kipine geç" + +msgid "go to standby" +msgstr "uyku kipine geç" + +msgid "grab this frame as bitmap" +msgstr "bu çerçeveyi bitmap olarak yakala" + +msgid "green" +msgstr "yeÅŸil" + +msgid "handicraft" +msgstr "handicraft" + +msgid "height" +msgstr "yükseklik" + +msgid "help..." +msgstr "yardım..." + +msgid "horizontal" +msgstr "yatay (h)" + +msgid "information/education/school program" +msgstr "bilgi / eÄŸitim / okul programı" + +msgid "init module" +msgstr "modülü baÅŸlat" + +msgid "init modules" +msgstr "modülleri baÅŸlat" + +msgid "insert mark here" +msgstr "buraya iÅŸaret koy" + +msgid "invalid type" +msgstr "geçersiz tür" + +msgid "jazz" +msgstr "jazz" + +msgid "jump back to the previous title" +msgstr "önceki baÅŸlığa git" + +msgid "jump forward to the next title" +msgstr "sonraki baÅŸlığa git" + +msgid "languages" +msgstr "dil" + +msgid "leave movie player..." +msgstr "ortam oynatıcıdan çık..." + +msgid "left" +msgstr "sol" + +msgid "left, wrapped" +msgstr "" + +msgid "leisure hobbies (general)" +msgstr "eÄŸlence hobiler (genel)" + +msgid "length" +msgstr "uzunluk" + +msgid "limit ..., aborting !" +msgstr "limit ..., iptal ediliyor!" + +msgid "list style compact" +msgstr "Kompakt liste biçimi" + +msgid "list style compact with description" +msgstr "Kompakt ve açıklamalı liste biçimi" + +msgid "list style default" +msgstr "Varsayılan liste biçimi" + +msgid "list style single line" +msgstr "Tek satır halinde liste biçimi" + +msgid "literature" +msgstr "literatur" + +msgid "live broadcast" +msgstr "canlı yayın" + +msgid "locked" +msgstr "kilitli" + +msgid "loopthrough to" +msgstr "üzerinden baÄŸla" + +msgid "magazines/reports/documentary" +msgstr "magazin/rapor/belgesel" + +msgid "manual" +msgstr "elle" + +msgid "martial sports" +msgstr "dövüş sporları" + +msgid "medicine/physiology/psychology" +msgstr "tıp / fizyoloji / psikoloji" + +msgid "menu" +msgstr "menu" + +msgid "mins" +msgstr "dakika" + +msgid "minutes" +msgstr "dakika" + +msgid "month" +msgstr "ay" + +msgid "motor sport" +msgstr "motor sporları" + +msgid "motoring" +msgstr "otomobil" + +msgid "move down to last entry" +msgstr "en sona taşı" + +msgid "move down to next entry" +msgstr "bir alta taşı" + +msgid "move up to first entry" +msgstr "en üste taşı" + +msgid "move up to previous entry" +msgstr "bir üste taşı" + +msgid "movie/drama (general)" +msgstr "movie/drama (general)" + +msgid "multinorm" +msgstr "PAL/NTSC" + +msgid "music/ballet/dance (general)" +msgstr "müzik/bale/dans (genel)" + +msgid "musical/opera" +msgstr "müzikal/opera" + +msgid "nature/animals/environment" +msgstr "doÄŸa / hayvan / çevre" + +msgid "never" +msgstr "hiç" + +msgid "new media" +msgstr "yeni medya" + +msgid "news magazine" +msgstr "haber magazin" + +msgid "news/current affairs (general)" +msgstr "haber / güncel olaylar (genel)" + +msgid "news/weather report" +msgstr "Haber / hava raporu" + +msgid "no" +msgstr "hayır" + +msgid "no CAId selected" +msgstr "CAId seçilmedi" + +msgid "no CI slots found" +msgstr "CI yuvası bulunamadı" + +msgid "no module found" +msgstr "modül bulunamadı" + +msgid "no storage devices found" +msgstr "hiçbir depolama aygıtı bulunamadı" + +msgid "none" +msgstr "yok" + +msgid "normal" +msgstr "normal" + +msgid "not configured" +msgstr "henüz yapılandırılmamış" + +msgid "not locked" +msgstr "kilitlenmedi" + +msgid "not supported" +msgstr "desteklenmiyor" + +msgid "not used" +msgstr "kullanılmıyor" + +msgid "nothing connected" +msgstr "baÄŸlı deÄŸil" + +msgid "of a DUAL layer medium used." +msgstr "ÇİFT katmanlı medya kullanıldığında." + +msgid "of a SINGLE layer medium used." +msgstr "TEK katmanlı medya kullanıldığında." + +msgid "off" +msgstr "kapalı" + +msgid "offset is" +msgstr "ofset" + +msgid "on" +msgstr "açık" + +msgid "on READ ONLY medium." +msgstr "yalnızca okunabilir (READ ONLY) medya" + +msgid "on end of movie" +msgstr "" + +msgid "once" +msgstr "birkez" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +msgid "open nameserver configuration" +msgstr "isim sunucu yapılandırmasını aç" + +msgid "original" +msgstr "orjinal" + +msgid "original language" +msgstr "orjinal dil" + +msgid "pass" +msgstr "pass" + +msgid "performing arts" +msgstr "sahne sanatları" + +msgid "play as picture in picture" +msgstr "Resim içinde resim olarak göster" + +msgid "play in mainwindow" +msgstr "Ana pencerede oynat" + +msgid "please press OK when ready" +msgstr "Lütfen hazır olduÄŸunuzda OK' a basın." + +msgid "please wait, loading picture..." +msgstr "fotoÄŸraf yükleniyor, lütfen bekleyin..." + +msgid "popular culture/traditional arts" +msgstr "popüler kültür / geleneksel sanatlar" + +msgid "pre-school children's program" +msgstr "Okul öncesi çocuk programı" + +msgid "receiver software because updates are available." +msgstr "alıcı yazılım güncellemesi var." + +msgid "record" +msgstr "kaydet" + +msgid "recording..." +msgstr "kaydediliyor..." + +msgid "red" +msgstr "kırmızı" + +msgid "religion" +msgstr "dini" + +msgid "remarkable people" +msgstr "önemli insanlar" + +msgid "remove after this position" +msgstr "bu noktadan sonrasını kaldır" + +msgid "remove all alternatives" +msgstr "alternatiflerin tümünü kaldır" + +msgid "remove all new found flags" +msgstr "yeni bulundu iÅŸaretlerinin tümünü kaldır" + +msgid "remove before this position" +msgstr "bu noktadan öncekileri kaldır" + +msgid "remove bookmark" +msgstr "yer imini sil" + +msgid "remove directory" +msgstr "klasörü sil" + +msgid "remove entry" +msgstr "Seçili Kanalı/Buketi Sil" + +msgid "remove from parental protection" +msgstr "Aile korumasından çıkar" + +msgid "remove new found flag" +msgstr "yeni bulundu iÅŸaretini kaldır" + +msgid "remove selected satellite" +msgstr "seçili uyduyu kaldır" + +msgid "remove this mark" +msgstr "bu iÅŸareti kaldır" + +msgid "rename entry" +msgstr "" + +msgid "repeat playlist" +msgstr "oynatma listesini tekrarla" + +msgid "repeated" +msgstr "tekrarla" + +msgid "reverse by date" +msgstr "tarihe göre tersine" + +msgid "rewind to the previous chapter" +msgstr "önceki bölüme geri git" + +msgid "right" +msgstr "saÄŸ" + +msgid "right, wrapped" +msgstr "" + +msgid "rock/pop" +msgstr "rok/pop" + +msgid "romance" +msgstr "romantik" + +msgid "save last directory on exit" +msgstr "çıkışta, son klasörü kaydet" + +msgid "save playlist on exit" +msgstr "çıkışta, oynatma listesini kaydet" + +msgid "scan state" +msgstr "kanal arama durumu" + +msgid "science fiction/fantasy/horror" +msgstr "bilim kurgu/fantastik/korku" + +msgid "second cable of motorized LNB" +msgstr "Motorlu LNB'nin ikinci kablosu" + +msgid "seconds" +msgstr "saniye" + +msgid "select" +msgstr "seç" + +msgid "select CAId's" +msgstr "CAId' leri seç" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +msgid "select menu entry" +msgstr "menü giriÅŸini seçin" + +msgid "select movie" +msgstr "" + +msgid "select the movie path" +msgstr "" + +msgid "serious music/classic music" +msgstr "önemli/klasik müzik" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "seri/clasik/dini/tarihi film/dram" + +msgid "service PIN" +msgstr "Servis PIN" + +msgid "set as startup service" +msgstr "BaÅŸlangıç kanalı yap." + +msgid "setup PIN" +msgstr "PIN ayarları" + +msgid "show DVD main menu" +msgstr "DVD ana menüsünü göster" + +msgid "show all tags" +msgstr "Tüm etiketleri göster" + +msgid "show alternatives" +msgstr "alternatifleri göster" + +msgid "show event details" +msgstr "EPG detaylarını göster" + +msgid "show extended description" +msgstr "" + +msgid "show mediaplayer on mainmenu" +msgstr "Ana menüde Media Player'ı gösterir" + +msgid "show softwaremanager in setup menu" +msgstr "kurulum menüsünde yazılım yöneticisini gösterir" + +msgid "show softwaremanager on blue button" +msgstr "mavi düğme, yazılım yöneticisini gösterir" + +msgid "show tag menu" +msgstr "" + +msgid "show transponder info" +msgstr "Transponder bilgisini göster" + +msgid "show/game show (general)" +msgstr "gösteri/oyun gösterisi (genel)" + +msgid "shuffle" +msgstr "karışık" + +msgid "shut down" +msgstr "kapat" + +msgid "simple" +msgstr "basit" + +msgid "skip backward" +msgstr "Önceki kanala atla" + +msgid "skip forward" +msgstr "Sonraki kanala atla" + +msgid "soap/melodram/folkloric" +msgstr "soap/melodram/folkloric" + +msgid "social/political issues/economics (general)" +msgstr "sosyal/siyasi konular/ekonomi (genel)" + +msgid "social/spiritual science" +msgstr "sosyal/ruhasal bilim" + +msgid "sorting of playlists" +msgstr "çalma listelerini sırala" + +msgid "special characters" +msgstr "özel karakterler" + +msgid "special events" +msgstr "özel etkinlikler" + +msgid "special format data DVD (HDTV compatible)" +msgstr "özel format veri DVD (HDTV uyumlu)" + +msgid "sports (general)" +msgstr "spor (genel)" + +msgid "sports magazine" +msgstr "spor dergisi" + +msgid "standard" +msgstr "standart" + +msgid "start cut here" +msgstr "buradan kes" + +msgid "start directory" +msgstr "baÅŸlangıç klasörü" + +msgid "stepsize" +msgstr "adım sayısı" + +msgid "stereo" +msgstr "steryo" + +msgid "stop using as startup service" +msgstr "baÅŸlangıç servislerini durdurun" + +msgid "switch to bookmarks" +msgstr "Yer imlerine geç" + +msgid "switch to filelist" +msgstr "dosya listesine geç" + +msgid "switch to the next angle" +msgstr "sonraki açıyı seç" + +msgid "switch to the next audio track" +msgstr "sonraki ses izini seç" + +msgid "switch to the next subtitle language" +msgstr "sonraki alt yazı dilini seç" + +msgid "talk show" +msgstr "sohbet programı" + +msgid "team sports" +msgstr "takım sporları" + +msgid "technology/natural science" +msgstr "teknoloji/doÄŸa bilimleri" + +msgid "template file" +msgstr "taslak dosya" + +msgid "tennis/squash" +msgstr "tenis/squash" + +msgid "this recording" +msgstr "bu kaydın" + +msgid "this service is protected by a parental control pin" +msgstr "bu kanal ebeveyn kontrol ÅŸifresiyle korunuyor" + +msgid "toggle time, chapter, audio, subtitle info" +msgstr "geçiÅŸ süresi, bölüm, ses, altyazı bilgileri" + +msgid "top" +msgstr "üst" + +msgid "tourism/travel" +msgstr "Turizm/Seyahat" + +msgid "true" +msgstr "doÄŸru" + +msgid "unavailable" +msgstr "kullanılamaz" + +msgid "unconfirmed" +msgstr "doÄŸrulanamadı" + +msgid "undefined" +msgstr "tanımsız" + +msgid "unknown" +msgstr "bilinmiyor" + +msgid "unknown service" +msgstr "bilinmeyen kanal" + +msgid "unpublished" +msgstr "yayınlanmamış" + +msgid "until standby/restart" +msgstr "h.bekle/y.baÅŸlatana kadar" + +msgid "user defined" +msgstr "kullanıcı tanımlı" + +msgid "variety show" +msgstr "çeÅŸitli gösteri" + +msgid "vertical" +msgstr "düşey (v)" + +msgid "wait for ci..." +msgstr "ci bekleniyor..." + +msgid "wait for mmi..." +msgstr "mmi bekleniyor..." + +msgid "waiting" +msgstr "bekleniyor" + +msgid "water sport" +msgstr "su sporları" + +msgid "weekly" +msgstr "haftalık" + +msgid "west" +msgstr "batı" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "beyaz" + +msgid "whitelist" +msgstr "beyaz liste" + +msgid "width" +msgstr "geniÅŸlik" + +msgid "winter sport" +msgstr "kış sporları" + +msgid "wireless network interface" +msgstr "kablosuz aÄŸ arayüzü" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "" + +msgid "working" +msgstr "çalışıyor" + +msgid "yellow" +msgstr "sarı" + +msgid "yes" +msgstr "evet" + +msgid "yes (keep feeds)" +msgstr "evet (beslemeleri tut)" + +msgid "zap" +msgstr "deÄŸiÅŸtir" + +msgid "zap and record" +msgstr "" + +msgid "zapped" +msgstr "kanal deÄŸiÅŸtirildi" + +#~ msgid "AA" +#~ msgstr "AA" + +#~ msgid "AB" +#~ msgstr "AB" + +#~ msgid "Activate PiP" +#~ msgstr "RiR EtkinleÅŸtir" + +#~ msgid "Add/remove timer for current event" +#~ msgstr "Geçerli olay için zamanlayıcı Ekle / Kaldır" + +#~ msgid "Adjust HDMI CEC settings" +#~ msgstr "HDMI CEC Ayarlar" + +#~ msgid "All satellites" +#~ msgstr "Tüm uydular" + +#~ msgid "BA" +#~ msgstr "BA" + +#~ msgid "BB" +#~ msgstr "BB" + +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "Duraklama kipinde 'duraklat' tuÅŸu görevi" + +#~ msgid "Committed DiSEqC command" +#~ msgstr "BaÄŸlı DiSEqC emri" + +#~ msgid "Configure the behavior of the 'pause' key when movie playback is already paused." +#~ msgstr "'PAUSE' tuÅŸunu yapılandırın. Normalde film oynarken durdurmaya yarar." + +#~ msgid "DiSEqC repeats" +#~ msgstr "DiSEqC tekrarı" + +#~ msgid "Goto specific data/time" +#~ msgstr "Özel Tarih/Zaman'a git" + +#~ msgid "No satellite frontend found!!" +#~ msgstr "Uydu arayüzü bulunamadı!!" + +#~ msgid "Open service list and select next channel" +#~ msgstr "Kanal listesinde sonraki kanalı seç" + +#~ msgid "Open service list and select previous channel" +#~ msgstr "Kanal listesinde önceki kanalı seç" + +#~ msgid "Press '0' to toggle internal/external PiP." +#~ msgstr "Iç/Dış PiP arasında geçiÅŸ yapmak için '0' tuÅŸuna basın." + +#~ msgid "Remove timer" +#~ msgstr "Zamanl. kaldır" + +#~ msgid "Send DiSEqC" +#~ msgstr "DiSEqC komutu gönder" + +#~ msgid "Switch next channel" +#~ msgstr "Sonraki kanala geç" + +#~ msgid "Tuning step size" +#~ msgstr "Adım boyu ayarlama" + +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Bağımsız DiSEqC tekrarı" + +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "Uydu arayıcıdan çıktıktan sonra seyrettiÄŸiniz kanala dönmek istiyor musunuz?" + +#~ msgid "tuner is not supported" +#~ msgstr "tuner desteklenmiyor" diff --git a/po/uk.po b/po/uk.po new file mode 100644 index 0000000..66a27d5 --- /dev/null +++ b/po/uk.po @@ -0,0 +1,10629 @@ +msgid "" +msgstr "" +"Project-Id-Version: enigma2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-21 19:08+0200\n" +"PO-Revision-Date: 2014-03-07 18:30+0200\n" +"Last-Translator: Irkoff <irkoff@gmail.com>\n" +"Language-Team: Dima73 <Dima-73@inbox.lv>\n" +"Language: uk_UA\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-Generator: Poedit 1.6.4\n" +"X-Poedit-SourceCharset: iso-8859-5\n" + +msgid "" +"\n" +"Advanced options and settings." +msgstr "" +"\n" +"Додаткові параметри Ñ– налаштуваннÑ." + +msgid "" +"\n" +"After pressing OK, please wait!" +msgstr "" +"\n" +"ПіÑÐ»Ñ Ð½Ð°Ñ‚Ð¸ÑÐºÐ°Ð½Ð½Ñ ÐžÐš, зачекайте!" + +msgid "" +"\n" +"Backup your receiver settings." +msgstr "" +"\n" +"БÑкап налаштувань вашого реÑиверу." + +msgid "" +"\n" +"Edit the upgrade source address." +msgstr "" +"\n" +"Редагувати адреÑу джерела обновленнÑ." + +msgid "" +"\n" +"Manage extensions or plugins for your receiver" +msgstr "" +"\n" +"Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñми Ñ– плагінами вашого реÑивера" + +msgid "" +"\n" +"Online update of your receiver software." +msgstr "" +"\n" +"Онлайн Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñофта вашого реÑивера." + +msgid "" +"\n" +"Press OK on your remote control to continue." +msgstr "" +"\n" +"ÐатиÑніть ОК на пульті Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ." + +msgid "" +"\n" +"Restore your backups by date." +msgstr "" +"\n" +"Відновити резервні копії за датою." + +msgid "" +"\n" +"Restore your receiver settings." +msgstr "" +"\n" +"Відновити Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ реÑивера." + +msgid "" +"\n" +"Restore your receiver with a new firmware." +msgstr "" +"\n" +"Відновити ваш реÑивер з новою прошивкою." + +msgid "" +"\n" +"Scan for local extensions and install them." +msgstr "" +"\n" +"Ð¡ÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ– уÑтановка локальних доповнень." + +msgid "" +"\n" +"Select your backup device.\n" +"Current device: " +msgstr "" +"\n" +"Виберіть приÑтрій Ð´Ð»Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð³Ð¾ копіюваннÑ.\n" +"Поточний приÑтрій: " + +msgid "" +"\n" +"View, install and remove available or installed packages." +msgstr "" +"\n" +"ПереглÑд, уÑтановка Ñ– Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð´Ð¾Ñтупних або вÑтановлених пакетів." + +msgid " (PiP)" +msgstr " (PiP)" + +msgid " (Radio)" +msgstr " (Радіо)" + +msgid " (TV)" +msgstr " (ТБ)" + +msgid " (disabled)" +msgstr "" + +msgid " (higher than any auto)" +msgstr "" + +msgid " (higher than rotor any auto)" +msgstr "" + +msgid " (lower than any auto)" +msgstr "" + +msgid " extensions." +msgstr " Доповнень." + +msgid " ms" +msgstr " мÑ" + +msgid " packages selected." +msgstr " пакетів вибрано." + +msgid " updates available." +msgstr " доÑтупних оновлень." + +#. TRANSLATORS: short time representation hour:minute +#, python-format +msgid "%2d:%02d" +msgstr "%2d:%02d" + +#. TRANSLATORS: full time representation hour:minute:seconds +#, python-format +msgid "%2d:%02d:%02d" +msgstr "%2d:%02d:%02d" + +msgid "%A %d %B" +msgstr "%A %d %B" + +#. TRANSLATORS: long date representations dayname daynum monthname in strftime() format! See 'man strftime' +msgid "%A %e %B" +msgstr "%A %d %B" + +#. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +msgid "%A %e %B %Y" +msgstr "%A %e %B %Y" + +msgid "%H:%M" +msgstr "%H:%M" + +#. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' +msgid "%a %e/%m" +msgstr "%a %e/%m" + +#. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +msgid "%a %e/%m %-H:%M" +msgstr "%a %e/%m %-H:%M" + +#. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#, python-format +msgid "%d channel found" +msgid_plural "%d channels found" +msgstr[0] "%d канал знайдений" +msgstr[1] "%d канала знайдено" +msgstr[2] "%d каналів знайдено" + +#, python-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "%d файл" +msgstr[1] "%d файла" +msgstr[2] "%d файлів" + +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "%d година" +msgstr[1] "%d годин" +msgstr[2] "%d годин" + +#, python-format +msgid "%d job is running in the background!" +msgid_plural "%d jobs are running in the background!" +msgstr[0] "%d Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½Ð¸Ð¹ у фоновому режимі!" +msgstr[1] "%d процеÑи запущено у фоновому режимі!" +msgstr[2] "%d процеÑів запущено у фоновому режимі!" + +#, python-format +msgid "%d min" +msgstr "%d хв" + +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "%d хвилина" +msgstr[1] "%d хвилини" +msgstr[2] "%d хвилин" + +#, python-format +msgid "%d minutes" +msgstr "%d хвилин" + +#, python-format +msgid "%d pixel wide" +msgid_plural "%d pixels wide" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, python-format +msgid "%d second" +msgid_plural "%d seconds" +msgstr[0] "%d Ñекунда" +msgstr[1] "%d Ñекунди" +msgstr[2] "%d Ñекунд" + +#, python-format +msgid "%d subdirectory" +msgid_plural "%d subdirectories" +msgstr[0] "%d директоріÑ" +msgstr[1] "%d директорії" +msgstr[2] "%d директорій" + +#, python-format +msgid "%d wireless network found!" +msgid_plural "%d wireless networks found!" +msgstr[0] "%d бездротова мережа знайдена!" +msgstr[1] "%d бездротові мережі знайдені!" +msgstr[2] "%d бездротових мереж знайдено!" + +msgid "%d-%b-%Y %-H:%M" +msgstr "%d-%b-%Y %-H:%M" + +msgid "%d-%m" +msgstr "%d-%m" + +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#. TRANSLATORS: VFD hour:minute daynum short monthname in strftime() format! See 'man strftime' +msgid "%k:%M %e/%m" +msgstr "%k:%M %e/%m" + +#, python-format +msgid "%s %s free disk space" +msgstr "%s %s вільне міÑце на диÑку" + +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +#. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#, python-format +msgid "%s is no longer used. Should it be deleted?" +msgstr "%s більше не викориÑтовуєтьÑÑ. Чи повинен він бути видалений?" + +#, python-format +msgid "%s updated package available" +msgid_plural "%s updated packages available" +msgstr[0] "%s оновлений пакет доÑтупний" +msgstr[1] "%s оновлених пакета доÑтупно" +msgstr[2] "%s оновлених пакетів доÑтупно" + +#, python-format +msgid "%s%d min" +msgstr "%s%d хв" + +#, python-format +msgid "%s/%s: %s" +msgstr "%s/%s: %s" + +msgid "(ZAP)" +msgstr "(Перейти)" + +msgid "(empty)" +msgstr "(пуÑто)" + +msgid "(show optional DVD audio menu)" +msgstr "(показати опції. DVD аудіо меню)" + +msgid "* Only available if more than one interface is active." +msgstr "* ДоÑтупно Ñкщо активно більше одного інтерфейÑу." + +msgid "/s" +msgstr "/Ñ" + +msgid "0" +msgstr "0" + +msgid "1" +msgstr "1" + +msgid "1.0" +msgstr "1.0" + +msgid "1.1" +msgstr "1.1" + +msgid "1.2" +msgstr "1.2" + +msgid "12V output" +msgstr "12V вихід" + +msgid "13 V" +msgstr "13 V" + +msgid "16:10" +msgstr "16:10" + +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +msgid "16:9" +msgstr "16:9" + +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +msgid "16:9 always" +msgstr "16:9 завжди" + +msgid "18 V" +msgstr "18 V" + +msgid "2" +msgstr "2" + +msgid "23.976" +msgstr "" + +msgid "24" +msgstr "" + +msgid "25" +msgstr "" + +msgid "29.97" +msgstr "" + +msgid "3" +msgstr "3" + +msgid "30" +msgstr "" + +msgid "3d mode" +msgstr "Режим 3D" + +msgid "4" +msgstr "4" + +msgid "4:3" +msgstr "4:3" + +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +msgid "5" +msgstr "5" + +msgid "6" +msgstr "6" + +msgid "7" +msgstr "7" + +msgid "8" +msgstr "8" + +msgid "9" +msgstr "9" + +#, python-format +msgid ": %s" +msgstr "" + +msgid "<Current movielist location>" +msgstr "<Поточне міÑце ÑпиÑку відео>" + +msgid "<Default movie location>" +msgstr "<МіÑце відео по дефолту>" + +msgid "<Last timer location>" +msgstr "<МіÑце оÑтаннього таймера>" + +msgid "<unknown>" +msgstr "<невідомий>" + +msgid "??" +msgstr "??" + +msgid "A" +msgstr "A" + +#, python-format +msgid "" +"A configuration file (%s) has been modified since it was installed.\n" +"Do you want to keep your modifications?" +msgstr "" +"Конфігураційний файл (%s) був змінений в процеÑÑ– уÑтановки.\n" +"Зберегти вашу модифікацію?" + +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"Файл конфігурації (%s) був змінений в процеÑÑ– уÑтановки..\n" +"Зберегти вашу верÑÑ–ÑŽ?" + +msgid "" +"A finished record timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"Ð—Ð°Ð¿Ð¸Ñ Ð·Ð° таймером завершено, реÑивер буде переведений в режим очікуваннÑ.\n" +"Зробити це зараз?" + +msgid "" +"A finished record timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"Ð—Ð°Ð¿Ð¸Ñ Ð·Ð° таймером закінчена, ваш реÑивер буде вимкнений.\n" +"Вимкнути зараз?" + +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "Графічний EPG Ð´Ð»Ñ Ð²ÑÑ–Ñ… ÑервіÑів в обраних фаворитах" + +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"Ð—Ð°Ð¿Ð¸Ñ Ð±ÑƒÐ»Ð¾ розпочато:\n" +"%s" + +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"У поточний Ñ‡Ð°Ñ Ð¹Ð´Ðµ запиÑ.\n" +"Що ви хочете зробити?" + +msgid "A recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "У поточний Ñ‡Ð°Ñ Ð¹Ð´Ðµ запиÑ. Будь лаÑка зупиніть Ð·Ð°Ð¿Ð¸Ñ Ð¿ÐµÑ€ÐµÐ´ ÑпробоюÐалаштувати позиціонер." + +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "У поточний Ñ‡Ð°Ñ Ð¹Ð´Ðµ запиÑ. Будь лаÑка, зупиніть запиÑ, перш ніжÑпробувати Ñканувати." + +msgid "A recording is currently running. Please stop the recording before trying to start the satfinder." +msgstr "У поточний Ñ‡Ð°Ñ Ð¹Ð´Ðµ запиÑ. Зупиніть Ð·Ð°Ð¿Ð¸Ñ Ð¿ÐµÑ€ÐµÐ´ пошуком Ñупутника." + +#, python-format +msgid "A required tool (%s) was not found." +msgstr "Потрібний інÑтрумент (%s), не знайдений." + +msgid "A search for available updates is currently in progress." +msgstr "Пошук доÑтупних оновлень. Будь лаÑка, почекайте ..." + +msgid "" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" +"Другий налаштований Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð±ÑƒÐ² знайдений.\n" +"\n" +"Ви хочете відключити другий мережний інтерфейÑ?" + +msgid "" +"A sleep timer wants to set your\n" +"receiver to standby. Do that now?" +msgstr "" +"Таймер Ñну хоче перевеÑти ваш\n" +"реÑивер в Режим ОчікуваннÑ. Зробити це зараз?" + +msgid "" +"A sleep timer wants to shut down\n" +"your receiver. Shutdown now?" +msgstr "" +"Таймер Ñну хоче вимкнути\n" +"ваш реÑивер. Вимкнути зараз?" + +msgid "A small overview of the available icon states and actions." +msgstr "Ðевеликий оглÑд доÑтупних Ñтанів, іконок та дій." + +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"Таймер не може почати запиÑ!\n" +"Відключити поточний ÑÐµÑ€Ð²Ñ–Ñ Ñ– Ñпробувати ще раз?\n" + +msgid "A/V settings" +msgstr "Ðудіо/Відео налаштуваннÑ" + +msgid "AC3/DTS downmix" +msgstr "AC3/DTS мікшуваннÑ" + +msgid "Abort" +msgstr "Перервати" + +msgid "About" +msgstr "ИнформаціÑ" + +msgid "About..." +msgstr "ИнформаціÑ..." + +msgid "Accesspoint:" +msgstr "Точка доÑтупа:" + +msgid "Action on long powerbutton press" +msgstr "Тривале натиÑÐºÐ°Ð½Ð½Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸ живленнÑ" + +msgid "Action on short powerbutton press" +msgstr "Коротке натиÑÐºÐ°Ð½Ð½Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸ живленнÑ" + +msgid "Activate Picture in Picture" +msgstr "Включити картинку в картинці" + +msgid "Activate current configuration" +msgstr "Ðктивувати поточні налаштуваннÑ" + +msgid "Activate network settings" +msgstr "Ðктивувати мережеві уÑтановки" + +msgid "Activate the configured network settings." +msgstr "Ðктивувати вибрані наÑтройки мережі." + +msgid "Adapter settings" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð´Ð°Ð¿Ñ‚ÐµÑ€Ð°" + +msgid "Add" +msgstr "Додати" + +msgid "Add Bookmark" +msgstr "Додати закладку" + +msgid "Add a mark" +msgstr "Додати мітку" + +msgid "Add a nameserver entry" +msgstr "Додати DNS Ñервер" + +msgid "Add a new title" +msgstr "Додати нову назву" + +msgid "Add bookmark" +msgstr "Додати закладку" + +msgid "Add directory to playlist" +msgstr "Додати папку до ÑпиÑку відтвореннÑ" + +msgid "Add file to playlist" +msgstr "Додати файл до ÑпиÑку відтвореннÑ" + +msgid "Add files to playlist" +msgstr "Додати файли в плейлиÑÑ‚" + +msgid "Add more details to the crash log" +msgstr "Додати подробиці до крÑш-логу" + +msgid "Add provider" +msgstr "Додати провайдера" + +msgid "Add recording (enter recording duration)" +msgstr "Почати Ð·Ð°Ð¿Ð¸Ñ (введіть триваліÑÑ‚ÑŒ запиÑу)" + +msgid "Add recording (enter recording endtime)" +msgstr "Почати Ð·Ð°Ð¿Ð¸Ñ (Введіть Ñ‡Ð°Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ)" + +msgid "Add recording (indefinitely)" +msgstr "Почати Ð·Ð°Ð¿Ð¸Ñ (Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ Ð½Ðµ визначено)" + +msgid "Add recording (stop after current event)" +msgstr "Почати Ð·Ð°Ð¿Ð¸Ñ (Ñтоп піÑÐ»Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ð³Ð¾ події)" + +msgid "Add service" +msgstr "Додати ÑервіÑ" + +msgid "Add timer" +msgstr "Додати таймер" + +msgid "Add title" +msgstr "Додати назву" + +msgid "Add to bouquet" +msgstr "Додати в пакет" + +msgid "Add to favourites" +msgstr "Додати в фаворити" + +msgid "Add/remove change timer for current event" +msgstr "" + +msgid "Adjust 3D settings" +msgstr "Ð’Ñтоновіть Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ 3D" + +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "Ðалаштуйте параметри кольору, так щоб вÑÑ– відтінки кольорів були макÑимально видно, наÑкільки це можливо. Якщо ви задоволені результатом, натиÑніть кнопкуОК Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð²Ñ–Ð´ÐµÐ¾ налаштувань, або викориÑтовуйте цифрові клавіші Ð´Ð»Ñ Ð²Ð¸Ð±Ð¾Ñ€ÑƒÑ–Ð½ÑˆÐ¸Ñ… теÑтів екрану " + +msgid "Advanced" +msgstr "" + +msgid "Advanced options" +msgstr "Розширені опції" + +msgid "Advanced restore" +msgstr "Розширене відновленнÑ" + +msgid "Advanced software" +msgstr "Розширене відновленнÑ" + +msgid "Advanced software plugin" +msgstr "Розширений плагін Ñофта" + +msgid "Advanced video enhancement setup" +msgstr "Меню додаткових відео налаштувань" + +msgid "Advanced video setup" +msgstr "Розширена наÑтройка відео" + +msgid "After event" +msgstr "ПіÑÐ»Ñ Ð¿Ð¾Ð´Ñ–Ñ—" + +msgid "Album" +msgstr "Ðльбом" + +msgid "Alignment of events" +msgstr "Ð’Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð´Ñ–Ð¹" + +msgid "Alignment of service names" +msgstr "Ð’Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñ–Ð¼ÐµÐ½Ñ– ÑервіÑу" + +msgid "All" +msgstr "Ð’Ñе" + +msgid "All ages" +msgstr "Ð’ÑÑ– категорії" + +msgid "All satellites 1 (USALS)" +msgstr "" + +msgid "All satellites 2 (USALS)" +msgstr "" + +msgid "All satellites 3 (USALS)" +msgstr "" + +msgid "All satellites 4 (USALS)" +msgstr "" + +msgid "Allocate" +msgstr "Виділити" + +msgid "Allocate unused memory index" +msgstr "Виділити невикориÑтовуваний номер пам'ÑÑ‚Ñ–" + +msgid "Allow quit movieplayer with exit" +msgstr "Дозволити вийти з відеоплеєра кнопкою вихід" + +msgid "Allow subtitle language to equal audio language" +msgstr "Показувати Ñубтитри при збігу з мовою Ðудіо" + +msgid "Allow subtitles for hearing impaired" +msgstr "Субтитри Ð´Ð»Ñ Ð»ÑŽÐ´ÐµÐ¹ з оÑлабленим Ñлухом" + +msgid "Alpha" +msgstr "ПрозоріÑÑ‚ÑŒ" + +msgid "Alternative" +msgstr "Ðльтернативний DNS" + +msgid "Alternative numbering mode" +msgstr "Ðльтернативний режим нумерації каналів" + +msgid "Alternative services tuner priority" +msgstr "Пріоритет тюнера в альтернативних ÑервіÑах" + +msgid "Always ask" +msgstr "Завжди питати" + +msgid "Always hide infobar" +msgstr "" + +msgid "An empty filename is illegal." +msgstr "Порожнє ім'Ñ Ð½ÐµÐ¿Ñ€Ð¸Ð¿ÑƒÑтимо." + +msgid "An error occurred while downloading the packetlist. Please try again." +msgstr "Помилка Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ ÑпиÑку пакетів. Будь лаÑка, Ñпробуйте ще раз." + +msgid "An unknown error occurred!" +msgstr "Ðевідома помилка!" + +msgid "And will put your receiver in standby over " +msgstr "І переведе ваш реÑивер в Режим ÐžÑ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñ‡ÐµÑ€ÐµÐ· " + +msgid "Any activity" +msgstr "Будь Ñка активніÑÑ‚ÑŒ" + +msgid "Arabic" +msgstr "ÐрабÑький" + +msgid "Are you sure to remove this entry?" +msgstr "" + +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" +"Ви впевнені, що хочете активувати цю конфігурацію мережі?\n" +"\n" + +msgid "" +"Are you sure you want to delete\n" +"the following backup:\n" +msgstr "" +"Ви впевнені, що хочете видалити\n" +"Ñледующий бекап:\n" + +msgid "Are you sure you want to exit this wizard?" +msgstr "Ви впевнені, що хочете вийти з цього майÑтра?" + +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"Ви впевнені, що хочете перезавантажити мережеві інтерфейÑи?\n" +"\n" + +#, python-format +msgid "" +"Are you sure you want to restore\n" +"the following backup:\n" +"%s\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Ви впевнені, що хочете відновити цей бекап:\n" +"%s\n" +"Ваш реÑивер буде перезавантажений піÑÐ»Ñ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ!" + +msgid "" +"Are you sure you want to restore the backup?\n" +"Your receiver will restart after the backup has been restored!" +msgstr "" +"Ви впевнені, що хочете відновити бекап?\n" +"Ваш реÑивер буде перезавантажений піÑÐ»Ñ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ!" + +msgid "Artist" +msgstr "ÐртиÑÑ‚" + +msgid "Arts/Culture" +msgstr "МиÑтецтво / Культура" + +msgid "Ask user" +msgstr "Запитати кориÑтувача" + +msgid "Aspect ratio" +msgstr "Ð¡Ð¿Ñ–Ð²Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Ñторін" + +msgid "Assigned CAIds:" +msgstr "Призначено CAID:" + +msgid "Assigned services/provider:" +msgstr "Призначено канали / провайдери:" + +msgid "At beginning" +msgstr "Ðа початку" + +msgid "At end" +msgstr "Ð’ кінці" + +msgid "Audio" +msgstr "Ðудіо" + +msgid "Audio PID" +msgstr "Ðудіо PID" + +msgid "Audio language selection 1" +msgstr "Вибір мови Ðудіо 1" + +msgid "Audio language selection 2" +msgstr "Вибір мови Ðудіо 2" + +msgid "Audio language selection 3" +msgstr "Вибір мови Ðудіо 3" + +msgid "Audio language selection 4" +msgstr "Вибір мови Ðудіо 4" + +msgid "Audio options..." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ðудіо..." + +#, python-format +msgid "Audio track (%s) format" +msgstr "Звукова доріжка (%s) формат" + +#, python-format +msgid "Audio track (%s) language" +msgstr "Звукова доріжка (%s) мова" + +msgid "Author: " +msgstr "Ðвтор: " + +msgid "Authoring mode" +msgstr "Режим авторизації" + +#. TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. +msgid "Auto" +msgstr "Ðвто" + +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Ðвтоматично розділÑти на розділи кожні ? хвилин (0 = ніколи)" + +msgid "Auto flesh" +msgstr "Ðвто flesh" + +msgid "Auto focus" +msgstr "ÐвтофокуÑуваннÑ" + +msgid "Auto focus commencing ..." +msgstr "ÐвтофокуÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‡Ð°Ð»Ð¾ÑÑ ..." + +msgid "Auto language selection" +msgstr "Ðвто вибір мови" + +msgid "Auto scart switching" +msgstr "Ðвтоматичне Ð¿ÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ SCART" + +msgid "Automatic" +msgstr "Ðвтоматично" + +msgid "Automatic scan" +msgstr "Ðвтоматичний пошук" + +msgid "Automatically start timeshift after" +msgstr "ÐвтоматичеÑкий Ñтарт таймшифта через" + +msgid "Automatically turn on external subtitles" +msgstr "Ðвтоматичне Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ–Ñ… Ñубтитрів" + +msgid "Available format variables" +msgstr "ДоÑтупні формати перемінних" + +msgid "B" +msgstr "B" + +msgid "BER" +msgstr "BER" + +msgid "BER:" +msgstr "BER:" + +msgid "Back" +msgstr "Ðазад" + +msgid "Background" +msgstr "Фон" + +msgid "Background color" +msgstr "Колір фону" + +msgid "Background delete option" +msgstr "Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñƒ фоновому режимі" + +msgid "Background delete speed" +msgstr "ШвидкіÑÑ‚ÑŒ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñƒ фоновому режимі" + +msgid "Backup completed." +msgstr "Бекап завершено." + +msgid "Backup failed." +msgstr "Ð—Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ðµ вдалоÑÑ." + +msgid "Backup is running..." +msgstr "ВиконуєтьÑÑ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½ÑŒ..." + +msgid "Backup system settings" +msgstr "Бекап ÑиÑтемних налаштувань" + +msgid "Band" +msgstr "Діапазон" + +msgid "Bandwidth" +msgstr "ПропуÑкна здатніÑÑ‚ÑŒ" + +msgid "Basque" +msgstr "БаÑкÑький" + +msgid "Begin time" +msgstr "Ð§Ð°Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ" + +msgid "Behavior of 'pause and ok' when paused" +msgstr "" + +msgid "Behavior of 0 key in PiP-mode" +msgstr "Поведінка кнопки 0 в режимі PiP" + +msgid "Behavior when a movie is started" +msgstr "Поведінка при початку відтв. відео" + +msgid "Behavior when a movie is stopped" +msgstr "Поведінка при зупинці відтв. відео" + +msgid "Behavior when a movie reaches the end" +msgstr "Поведінка при закінченні відео" + +msgid "Big PiP" +msgstr "" + +msgid "Bitrate:" +msgstr "Бітрейт:" + +msgid "Black screen" +msgstr "Чорний екран" + +msgid "Black screen till locked" +msgstr "Чорний екран-заблоковано" + +msgid "Block noise reduction" +msgstr "Ð—Ð½Ð¸Ð¶ÐµÐ½Ð½Ñ Ð±Ð»Ð¾ÐºÐ¾Ð²Ð¸Ñ… шумів" + +msgid "Blue boost" +msgstr "Додати Ñиній" + +msgid "Bookmarks" +msgstr "Закладки" + +msgid "Brightness" +msgstr "ЯÑкравіÑÑ‚ÑŒ" + +msgid "Bulgarian" +msgstr "УгорÑька" + +msgid "Burn DVD" +msgstr "Пропалити DVD" + +#, python-format +msgid "Burn audio track (%s)" +msgstr "Пропалити Ðудіо дорожку (%s)" + +msgid "Burn existing image to DVD" +msgstr "Пропалити Ñ–Ñнуючий образ на DVD" + +msgid "Burn to DVD" +msgstr "Пропалити на DVD" + +msgid "Bus: " +msgstr "Шина:" + +msgid "By default, SNR will be shown in dB (when supported by the tuner). This setting forces SNR to be shown as a percentage instead." +msgstr "За замовчуваннÑм, SNR показуєтьÑÑ Ð² дБ (Ñкщо підтримує тюнер). при включенні параметра SNR буде показуватиÑÑ Ñƒ відÑотках." + +msgid "C" +msgstr "С" + +msgid "C-Band" +msgstr "C-Діапазон" + +msgid "CH" +msgstr "" + +msgid "CI assignment" +msgstr "ÐŸÑ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ CI" + +msgid "CVBS" +msgstr "CVBS" + +msgid "Cable" +msgstr "Кабельне ТБ" + +msgid "Cable Scan" +msgstr "Кабельне ÑкануваннÑ" + +msgid "Cache thumbnails" +msgstr "Кешувати ЕÑкізи" + +msgid "Calculate" +msgstr "Розрахунок" + +msgid "Calculate all positions" +msgstr "Розрахувати вÑÑ– позиції" + +msgid "Calculation complete" +msgstr "Розрахунок закінчено" + +msgid "Calibrate" +msgstr "КалібруваннÑ" + +msgid "Can be used for different fps between external subtitles and video." +msgstr "Може бути викориÑтаний Ð´Ð»Ñ Ð½Ð°Ð±Ð¾Ñ€Ñƒ кадрів в Ñекунду між зовнішніми Ñубтитрами Ñ– відео." + +msgid "Cancel" +msgstr "Відмінити" + +msgid "Cannot determine" +msgstr "Ðеможливо визначити" + +msgid "Cannot find any signal ..., aborting !" +msgstr "Ðе можу знайти будь-Ñкий Ñигнал ..., перериваємо !" + +msgid "Cannot move files on a different disk or system to the trash can" +msgstr "Ðеможливо переміÑтити файли на різних диÑках або в ÑиÑтемі в кошик" + +msgid "Cannot move to trash can" +msgstr "Ðеможливо переміÑтити в кошик" + +msgid "Capacity: " +msgstr "ЄмніÑÑ‚ÑŒ: " + +msgid "Card" +msgstr "Карта" + +msgid "Cascade PiP" +msgstr "" + +msgid "Center DVB subtitles" +msgstr "Субтитри DVB по центру" + +msgid "Center time-labels and remove date" +msgstr "Відмітка чаÑу по центру без дати" + +msgid "Change bouquets in quickzap" +msgstr "Змінити букети при швидкому перемиканні" + +msgid "Change pin code" +msgstr "Змінити PIN-код" + +msgid "Change recording (duration)" +msgstr "Змінити Ð·Ð°Ð¿Ð¸Ñ (триваліÑÑ‚ÑŒ)" + +msgid "Change recording (endtime)" +msgstr "Змінити Ð·Ð°Ð¿Ð¸Ñ (закінченнÑ)" + +msgid "Change repeat and delay settings?" +msgstr "Змінити Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ñ– повтору?" + +msgid "Change service PIN" +msgstr "Змінити PIN-код ÑервіÑу" + +msgid "Change service PINs" +msgstr "Змінити PIN-коди ÑервіÑів" + +msgid "Change setup PIN" +msgstr "Змінити PIN-код налаштувань" + +msgid "Change step size" +msgstr "Зміна розміру кроку" + +msgid "Change timer" +msgstr "" + +msgid "Changelog" +msgstr "Зміни" + +msgid "Channel" +msgstr "Канал" + +msgid "Channel list type" +msgstr "Тип ÑпиÑку каналів" + +msgid "Channel not in services list" +msgstr "Каналу немає в ÑпиÑку ÑервіÑів" + +msgid "Channel selection" +msgstr "Селектор каналів" + +msgid "Channel:" +msgstr "Канал:" + +msgid "Channellist menu" +msgstr "Меню ÑпиÑка каналів" + +msgid "Chap." +msgstr "Розділ." + +msgid "Chapter" +msgstr "Розділ" + +msgid "Chapter:" +msgstr "Розділ:" + +msgid "Check" +msgstr "Перевірка" + +msgid "Check the internet connection" +msgstr "Перевірте інтернет-з'єднаннÑ" + +msgid "Check the internet connection again" +msgstr "Перевірте інтернет-з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð·Ð½Ð¾Ð²Ñƒ" + +msgid "Checking filesystem..." +msgstr "Перевірка Файлової ÑиÑтеми..." + +msgid "Checking the internet connection" +msgstr "Перевірка інтернет з'єднаннÑ" + +#, python-format +msgid "" +"Checking tuner %d\n" +"DiSEqC port %s for %s" +msgstr "" +"Перевірка тюнера %d\n" +"DiSEqC порт %s Ð´Ð»Ñ %s" + +msgid "Children/Youth" +msgstr "Діти / Молодь" + +msgid "Choose which tuner to configure." +msgstr "Виберіть тюнер Ð´Ð»Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ." + +msgid "Circular left" +msgstr "Кругова ліва" + +msgid "Circular right" +msgstr "Кругова права" + +msgid "Cleanup" +msgstr "ОчиÑтити" + +msgid "Clear" +msgstr "ОчиÑтка" + +msgid "Clear before scan" +msgstr "ОчиÑтка перед ÑкануваннÑм" + +msgid "Clear fixed" +msgstr "ОчиÑтка ФікÑованого" + +msgid "Clear log" +msgstr "ОчиÑтити лог" + +msgid "Clear playlist" +msgstr "ОчиÑтити ÑпиÑок відтвореннÑ" + +msgid "Close" +msgstr "Закрити" + +msgid "Close PiP on exit" +msgstr "Закрити PiP кнопкою вихід" + +msgid "Close title selection" +msgstr "Закрити вибір назв" + +msgid "Code rate HP" +msgstr "ШвидкіÑÑ‚ÑŒ ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ HP" + +msgid "Code rate LP" +msgstr "ШвидкіÑÑ‚ÑŒ ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ LP" + +msgid "Coderate HP" +msgstr "ШвидкіÑÑ‚ÑŒ ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ HP" + +msgid "Coderate LP" +msgstr "ШвидкіÑÑ‚ÑŒ ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ LP" + +msgid "Collection name" +msgstr "Ðазва колекції" + +msgid "Collection settings" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð»ÐµÐºÑ†Ñ–Ñ—" + +msgid "Color format" +msgstr "Формат кольору" + +msgid "Command execution..." +msgstr "Ð’Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸..." + +msgid "Command order" +msgstr "ПоÑлідовніÑÑ‚ÑŒ команд" + +msgid "Common Interface" +msgstr "Ð†Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ–Ð²" + +msgid "Common Interface assignment" +msgstr "Ð†Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½ÑŒ модулів" + +msgid "Communication" +msgstr "Зв'Ñзок" + +msgid "Compact flash" +msgstr "Компакт-флÑш" + +msgid "Complete" +msgstr "Повний" + +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "ÐšÐ¾Ð¼Ð¿Ð»ÐµÐºÑ (мікш звук. доріжок Ñ– розд.здатн. відео)" + +msgid "Composition of the recording filenames" +msgstr "ЗміÑÑ‚ назв файлів запиÑів" + +msgid "Configuration mode" +msgstr "Режим конфігурації" + +#, python-format +msgid "Configuration mode: %s" +msgstr "Режим конфігурації: %s" + +msgid "Configuration..." +msgstr "КонфігураціÑ..." + +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— затримки Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ–Ð¿ÑˆÐµÐ½Ð½Ñ Ñинхронізації зовнішніхÑубтитрів." + +msgid "Configure an additional delay to improve subtitle synchronisation." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— затримки Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ–Ð¿ÑˆÐµÐ½Ð½Ñ Ñинхронізації Ñубтитрів." + +msgid "Configure for how long the infobar will remain visible after activation." +msgstr "Вкажіть, Ñк довго інфобар залишатиметьÑÑ Ð²Ð¸Ð´Ð¸Ð¼Ð¸Ð¼ піÑÐ»Ñ Ð¹Ð¾Ð³Ð¾ активації." + +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "ДозволÑÑ” показати дані EPG про минулі події. Зручно коли хочетезнати щоÑÑŒ про передачу, Ñка оÑÑŒ-оÑÑŒ закінчитьÑÑ Ð°Ð±Ð¾ тільки щозакінчилаÑÑ (у хвилинах)." + +msgid "Configure how recording filenames are constructed." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÑпоÑобу ÑÐºÐ»Ð°Ð´Ð°Ð½Ð½Ñ Ñ–Ð¼ÐµÐ½ запиÑуваних файлів." + +msgid "Configure how the fan should operate" +msgstr "" + +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "" + +msgid "Configure if and how long the latest service in the PiP will be remembered." +msgstr "" + +msgid "Configure if and how service type icons will be shown in the channel selection list." +msgstr "" +"ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ–ÐºÐ¾Ð½ÐºÐ¸ типу ÑервіÑу в\n" +"ÑпиÑку каналів" + +msgid "Configure if and how wide columns will be shown in the channel selection list." +msgstr "" + +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ–ÐºÐ¾Ð½Ñ–Ð² в ÑпиÑку каналів " + +msgid "Configure interface" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñу" + +msgid "Configure nameservers" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ DNS" + +msgid "Configure on which devices the background delete option should be used." +msgstr "Вкажіть, на Ñких приÑтроÑÑ… Ñлід викориÑтовувати опцію фонового видаленнÑ." + +msgid "Configure remote control type" +msgstr "Вибір пульта Д/У" + +msgid "Configure the DiSEqC mode for this LNB." +msgstr "Ðалаштуйте режим DiSEqC Ð´Ð»Ñ Ñтой LNB." + +msgid "Configure the IP address." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ IP-адреÑи." + +msgid "Configure the aspect ratio of the screen." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÑÐ¿Ñ–Ð²Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Ñторін екрану." + +msgid "Configure the behavior of the 'pause and ok' key when movie playback is already paused." +msgstr "" + +msgid "Configure the behavior when movie playback is manually stopped." +msgstr "Вкажіть, що робити коли Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·ÑƒÐ¿Ð¸Ð½ÐµÐ½Ð¾ вручну." + +msgid "Configure the behavior when movie playback is started." +msgstr "Вкажіть, що робити при початку відтвореннÑ." + +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "Вкажіть, що робити при закінченні відтвореннÑ." + +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "Ðалаштуйте ширину кордону Ñубтитрів. Темна грань робить Ñубтитри легкочитаютьÑÑ Ð½Ð° Ñвітлому фоні." + +msgid "Configure the brightness level of the front panel display during standby." +msgstr "Ð’Ñтановіть рівень ÑÑкравоÑÑ‚Ñ– диÑÐ¿Ð»ÐµÑ Ð² режимі очікуваннÑ." + +msgid "Configure the brightness level of the front panel display." +msgstr "Ð’Ñтановіть рівень ÑÑкравоÑÑ‚Ñ– Ð´Ð»Ñ Ð½Ð¾Ñ€Ð¼Ð°Ð»ÑŒÐ½Ð¾Ñ— роботи диÑплеÑ." + +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "Ðалаштуйте колір зовнішніх Ñубтитрів, альтернативний (нормальний білий, жовтийкурÑив, чітко блакитний, підкреÑлений зелений), білий або жовтий." + +msgid "Configure the color of the teletext subtitles." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð»ÑŒÐ¾Ñ€Ñƒ телетекÑту Ñубтитрів." + +msgid "Configure the contrast level of the front panel display." +msgstr "Ð’Ñтановіть рівень контраÑтноÑÑ‚Ñ– Ð´Ð»Ñ Ð´Ð¸ÑплеÑ." + +msgid "Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "ПОТРІБЕРПЕРЕКЛÐД Configure the cursor behaviour in the channel selection list. When opening the channel selection list you can keep on the current service or already select up/down and you are able to revert the B+/B- buttons." + +msgid "Configure the duration in hours the receiver should go to standby when the receiver is not controlled." +msgstr "" + +msgid "Configure the duration in minutes for the screensaver." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ñ€Ð¸Ð²Ð°Ð»Ð¾ÑÑ‚Ñ– в хвилинах Ð´Ð»Ñ Ð·Ð°Ñтавки (хранитель екрану)." + +msgid "Configure the duration in minutes for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +msgstr "" + +msgid "Configure the duration when the receiver should go to shut down in case the receiver is in standby mode." +msgstr "Ðалаштуйте триваліÑÑ‚ÑŒ чаÑу Ð´Ð»Ñ Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñ€ÐµÑивера, Ñкщо реÑиверзнаходитьÑÑ Ð² режимі очікуваннÑ." + +msgid "Configure the first audio language (highest priority)." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÑˆÐ¾Ñ— мови Ðудіо (найвищий пріоритет)" + +msgid "Configure the first subtitle language (highest priority)." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÑˆÐ¾Ñ— мови Ñубтитрів (найвищий пріоритет)" + +msgid "Configure the font size of the subtitles." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ шрифту Ñубтитрів." + +msgid "Configure the fourth audio language." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‡ÐµÑ‚Ð²ÐµÑ€Ñ‚Ð¾Ñ— мови Ðудіо." + +msgid "Configure the fourth subtitle language." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‡ÐµÑ‚Ð²ÐµÑ€Ñ‚Ð¾Ñ— мови Ñубтитрів." + +msgid "Configure the function of a long press on the power button." +msgstr "Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— довгого натиÑÐºÐ°Ð½Ð½Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸ живленнÑ." + +msgid "Configure the function of a short press on the power button." +msgstr "Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— короткого натиÑÐºÐ°Ð½Ð½Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸ живленнÑ." + +msgid "Configure the function of the '0' button do when PIP is active." +msgstr "Ðалаштуйте функцію кнопки '0 'коли вікно PIP активно." + +msgid "Configure the gateway." +msgstr "Ви можете налаштувати шлюз." + +msgid "Configure the general audio delay of Dolby Digital sound tracks." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ñ— затримки звукових доріжок зі звуком Dolby Digital." + +msgid "Configure the general audio delay of stereo sound tracks." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ñ— затримки звукових доріжок зі Ñтереозвуком." + +msgid "Configure the hard disk drive to go to standby after the specified idle time." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¶Ð¾Ñ€Ñткого диÑка, щоб перевеÑти в Режим ÐžÑ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–ÑлÑпевного чаÑу проÑтою." + +msgid "Configure the horizontal alignment of the subtitles." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ð¾Ñ€Ð¸Ð·Ð¾Ð½Ñ‚Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñубтитрів." + +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "Виберіть початкову швидкіÑÑ‚ÑŒ Ð¿ÐµÑ€ÐµÐ¼Ð¾Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¿ÐµÑ€ÐµÐ´." + +msgid "Configure the initial rewind speed. When you press the rewind button, winding will start at this speed." +msgstr "Виберіть початкову швидкіÑÑ‚ÑŒ Ð¿ÐµÑ€ÐµÐ¼Ð¾Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð°Ð·Ð°Ð´." + +msgid "Configure the latitude of your location." +msgstr "Ð’Ñтановіть довготу вашого міÑÑ†Ñ Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ." + +msgid "Configure the longitude of your location." +msgstr "Ð’Ñтановити широту вашого міÑÑ†Ñ Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ." + +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ñ–Ð½Ñ–Ð¼Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ обÑÑгу диÑкового проÑтору, що має бутидоÑтупно Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу. Коли кількіÑÑ‚ÑŒ проÑтору падає нижче цьогозначеннÑ, запиÑи будуть видалені з корзини." + +msgid "Configure the nameserver (DNS)." +msgstr "Ви можете вÑтановити ім'Ñ Ñервера." + +msgid "Configure the netmask." +msgstr "Ви можете задати мережеву маÑку." + +msgid "Configure the number of days after which items are automaticaly removed from the trash can." +msgstr "Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÐºÑ–Ð»ÑŒÐºÐ¾ÑÑ‚Ñ– днів, через Ñкі запиÑи будуть автоматично видаленіз кошика" + +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÐºÑ–Ð»ÑŒÐºÐ¾ÑÑ‚Ñ– днів, Ð´Ð»Ñ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ñтарих таймерів Ñ– потімавтоматичного Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð·Ñ– ÑпиÑку таймерів." + +msgid "Configure the offline decoding delay in milliseconds. The configured delay is observed at each control word parity change." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ оффлайн-Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð² міліÑекундах" + +msgid "Configure the possible fast forward speeds." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¸Ñ… швидкоÑтей при перемотці вперед." + +msgid "Configure the possible rewind speeds." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¸Ñ… швидкоÑтей при перемотуванню назад." + +msgid "Configure the primary EPG language." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ñновної мови EPG." + +msgid "Configure the refresh rate of the screen." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‡Ð°Ñтоти Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÐµÐºÑ€Ð°Ð½Ñƒ." + +msgid "Configure the screen resolution in PC output mode." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»ÑŒÐ½Ð¾Ñ— здатноÑÑ‚Ñ– екрану в режимі ПК вихід." + +msgid "Configure the second audio language." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ñ€ÑƒÐ³Ð¾Ñ— мови Ðудіо" + +msgid "Configure the second subtitle language." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ñ€ÑƒÐ³Ð¾Ñ— мови Ñубтитрів" + +msgid "Configure the secondary EPG language." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ñ€ÑƒÐ³Ð¾Ñ— мови EPG." + +msgid "Configure the sharpness of the video scaling." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ñ–Ð·ÐºÐ¾ÑÑ‚Ñ– маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´ÐµÐ¾." + +msgid "Configure the skip time interval for the '1'/'3' buttons." +msgstr "Ðалаштуйте Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑку при натиÑканні клавіш '1'/'3'" + +msgid "Configure the skip time interval for the '4'/'6' buttons." +msgstr "Ðалаштуйте Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑку при натиÑканні клавіш'4'/'6'" + +msgid "Configure the skip time interval for the '7'/'9' buttons." +msgstr "Ðалаштуйте Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑку при натиÑканні клавіш '7'/'9'" + +msgid "Configure the slow motion speeds." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð¸Ð·ÑŒÐºÐ¸Ñ… швидкоÑтей." + +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "" + +msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÑˆÐ²Ð¸Ð´ÐºÐ¾ÑÑ‚Ñ– процеÑу Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñƒ фоновому режимі. Ðизька швидкіÑÑ‚ÑŒ будемати менший вплив на продуктивніÑÑ‚ÑŒ жорÑткого диÑка." + +msgid "Configure the speed of the fan" +msgstr "" + +msgid "Configure the subtitle delay when timing information is not available." +msgstr "Ðалаштуйте затримку Ñубтитрів, коли Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ Ñ‡Ð°Ñ Ð½ÐµÐ´Ð¾Ñтупна." + +msgid "Configure the third audio language." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ñ€ÐµÑ‚ÑŒÐ¾Ñ— мови Ðудіо" + +msgid "Configure the third subtitle language." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ñ€ÐµÑ‚ÑŒÐ¾Ñ— мови Ñубтитрів" + +msgid "Configure the transparency of the OSD." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€Ð¾ÑÑ‚Ñ– екранного меню." + +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€Ð¾ÑÑ‚Ñ– на чорному фоні графічних Ñубтитрів DVB." + +msgid "Configure the tuner mode." +msgstr "Ð’Ñтановіть режим тюнера." + +msgid "Configure the type of status indication icons shown in the movielist." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð´Ñƒ значків індикації Ñтану, при показі в ÑпиÑку фільмів." + +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐµÑ€Ñ‚Ð¸ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ Ñубтитрів, вимірюєтьÑÑ Ð²Ñ–Ð´ нижньої чаÑтиниекрану." + +msgid "Configure the video output mode (or resolution)." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ñƒ відеовиходу (або роздільної здатноÑÑ‚Ñ–)." + +msgid "Configure the way in which the receiver changes channels." +msgstr "Ðалаштуйте поведінку реÑивера при перемиканні каналів." + +msgid "Configure where completed timers show up in the timer list." +msgstr "Вкажіть, в Ñкому міÑці ÑпиÑку таймерів повинні знаходитиÑÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ñ– завданнÑ." + +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "Чи потрібно показати (Ñ– Ñк довго) другий інфобар при натиÑканні кнопки OK двічі.Другий інфобар міÑтить додаткову інформацію про поточний канал." + +msgid "Configure whether multi channel sound tracks should be downmixed to stereo." +msgstr "Виберіть, чи Ñлід багатоканальну звукову доріжку декодувати в Ñтереозвук." + +msgid "Configure whether or not an icon should be shown when your motorized dish is moving." +msgstr "Виберіть, чи потрібно показати іконку при руÑÑ– антени з мотопідвіÑом." + +msgid "Configure which access level to use for the configuration menu. Expert level gives access to all items." +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ñ–Ð²Ð½Ñ Ð´Ð¾Ñтупу Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð² меню конфігурації. ЕкÑпертний рівень дає доÑтуп до інших елементів." + +msgid "Configure which color format should be used on the SCART output." +msgstr "Вкажіть, Ñкий формат кольору повинен викориÑтовуватиÑÑ Ð½Ð° виході SCART." + +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "Вкажіть Ñкий тюнер буде переважнішим Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу, коли більше ніж один тюнер доÑтупний." + +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "Вкажіть, Ñкий тип тюнера переважніший, Ñкщо ÑÐµÑ€Ð²Ñ–Ñ Ð´Ð¾Ñтупний нарізних типах тюнерів." + +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "Вкажіть, Ñкий тюнер переважніший, Ñкщо доÑтупні кілька тюнерів. ЯкщовÑтановлено Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ 'Ðвто', то ÑиÑтема буде віддавати пріоритет тюнера з найменшим чиÑлом каналів / Ñупутників." + +msgid "Configure your internal LAN" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ LAN" + +msgid "Configure your network again" +msgstr "Повторити наÑтройку мережі" + +msgid "Configure your network settings, and press OK to start the scan" +msgstr "Ðалаштуйте параметри мережі, а потім натиÑніть OK, щоб почати пошук" + +msgid "Configure your wireless LAN again" +msgstr "Повторити Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÐµÐ·Ð´Ñ€Ð¾Ñ‚Ð¾Ð²Ð¾Ñ— мережі" + +msgid "Configures which video output connector will be used." +msgstr "Вкажіть, Ñкий роз'єм відеовиходу буде викориÑтаний." + +msgid "Configuring" +msgstr "ÐалаштуваннÑ" + +msgid "Conflicting timer" +msgstr "Конфлікт таймерів" + +msgid "Connect" +msgstr "Підключити" + +msgid "Connect to a wireless network" +msgstr "" + +msgid "Connected satellites" +msgstr "" + +msgid "Connected to" +msgstr "Підключено до" + +msgid "Connected!" +msgstr "Підключено!" + +msgid "Constellation" +msgstr "Сузір'Ñ" + +msgid "Content does not fit on DVD!" +msgstr "ЗміÑÑ‚ не поміщаєтьÑÑ Ð½Ð° DVD!" + +msgid "Continue" +msgstr "Продовжити" + +msgid "Continue in background" +msgstr "Продовжити у фоновому режимі" + +msgid "Continue playback" +msgstr "Продовжити відтвореннÑ" + +msgid "Continue playing" +msgstr "Продовжити відтвореннÑ" + +msgid "Continues play (loop)" +msgstr "Продовжити відтв. (цикл)" + +msgid "Contrast" +msgstr "КонтраÑтніÑÑ‚ÑŒ" + +msgid "Convert ext3 filesystem to ext4" +msgstr "Конвертер з ext3 в ext4" + +msgid "Convert ext3 to ext4" +msgstr "Конвертер з ext3 в ext4" + +msgid "Converting ext3 to ext4..." +msgstr "Конвертер з ext3 в ext4..." + +msgid "Copy" +msgstr "КопіюваннÑ" + +msgid "Could not connect to receiver .NFI image feed server:" +msgstr "Ðе вдалоÑÑ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚Ð¸ÑÑ Ð´Ð¾ реÑивера. NFI імідж Ñервер фіду:" + +msgid "Could not find installed channel list." +msgstr "Ðеможливо відкрити ÑпиÑок каналів." + +msgid "Could not load medium! No disc inserted?" +msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ ноÑій! Перевірте, чи вÑтавлений диÑк?" + +msgid "Could not open Picture in Picture" +msgstr "Ðеможливо відкрити картинку в картинці" + +#, python-format +msgid "Could not record due to conflicting timer %s" +msgstr "Ð—Ð·Ð°Ð¿Ð¸Ñ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð¸Ð¹ - конфлікт таймерів %s" + +#, python-format +msgid "Could not record due to invalid service %s" +msgstr "Ð—Ð°Ð¿Ð¸Ñ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð¸Ð¹ - недійÑний ÑÐµÑ€Ð²Ñ–Ñ %s" + +msgid "Create DVD-ISO" +msgstr "Створити DVD-ISO" + +msgid "Create more detailed crash log" +msgstr "ЗапиÑувати деталі в креш-лог" + +#, python-format +msgid "Creating directory %s failed." +msgstr "Ðе вдалоÑÑ Ñтворити каталог %s" + +msgid "Creating filesystem" +msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð¾Ñ— ÑиÑтеми" + +msgid "Creating partition" +msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð²" + +msgid "Croatian" +msgstr "ХорватÑький" + +msgid "Current CEC address" +msgstr "" + +msgid "Current device: " +msgstr "Поточний приÑтрій:" + +msgid "Current event EPG" +msgstr "Поточна Ð¿Ð¾Ð´Ñ–Ñ EPG" + +#, python-format +msgid "Current mode: %s \n" +msgstr "" + +msgid "Current settings:" +msgstr "Поточні налаштуваннÑ:" + +msgid "Current transponder" +msgstr "Поточний транÑпондер" + +msgid "Current value: " +msgstr "Поточне значеннÑ: " + +msgid "Current version:" +msgstr "Поточна верÑÑ–Ñ:" + +msgid "Currently installed image" +msgstr "Поточний вÑтановлений імідж" + +msgid "Currently the commit log cannot be retrieved - please try later again" +msgstr "" + +msgid "Custom skip time for '1'/'3' buttons" +msgstr "Ð§Ð°Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑку Ð´Ð»Ñ ÐºÐ½Ð¾Ð¿Ð¾Ðº '1'/'3'" + +msgid "Custom skip time for '4'/'6' buttons" +msgstr "Ð§Ð°Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑку Ð´Ð»Ñ ÐºÐ½Ð¾Ð¿Ð¾Ðº '4'/'6'" + +msgid "Custom skip time for '7'/'9' buttons" +msgstr "Ð§Ð°Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑку Ð´Ð»Ñ ÐºÐ½Ð¾Ð¿Ð¾Ðº '7'/'9'" + +msgid "Customize" +msgstr "Індивідуальні налаштуваннÑ" + +msgid "Customize channel list cursor behavior" +msgstr "Поведінк курÑора ÑпиÑку каналів " + +msgid "Cut" +msgstr "Урізати" + +msgid "Cutlist editor..." +msgstr "Відео редактор..." + +msgid "Czech" +msgstr "ЧешÑький" + +msgid "D" +msgstr "D" + +msgid "DHCP" +msgstr "DHCP" + +msgid "DMM advanced" +msgstr "DMM розширений" + +msgid "DMM normal" +msgstr "DMM нормальний" + +msgid "DUAL LAYER DVD" +msgstr "Двошаровий DVD" + +msgid "DVB subtitle black transparency" +msgstr "Чорна прозоріÑÑ‚ÑŒ DVB Ñубтитрів" + +msgid "DVB-C" +msgstr "DVB-C" + +msgid "DVB-C ANNEX C" +msgstr "DVB-C ANNEX C" + +msgid "DVB-S" +msgstr "DVB-S" + +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVB-T" +msgstr "DVB-T" + +msgid "DVB-T2" +msgstr "DVB-T2" + +msgid "DVD data format" +msgstr "Відеоформат" + +msgid "DVD file browser" +msgstr "ПовернутиÑÑ Ð² провідник" + +msgid "DVD media toolbox" +msgstr "DVD медіа-інÑтрументи" + +msgid "DVD player" +msgstr "DVD плеєр" + +msgid "DVD titlelist" +msgstr "білий ÑпиÑок" + +msgid "Danish" +msgstr "ДатÑький" + +msgid "Date" +msgstr "Дата" + +msgid "Date/time input" +msgstr "Ð’Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð§Ð°Ñ/Дата " + +msgid "Deep standby" +msgstr "Глубокий Режим очікуваннÑ" + +msgid "Default" +msgstr "За замовчуваннÑм" + +msgid "Default movie location" +msgstr "МіÑце запиÑів за замовчуваннÑм" + +msgid "Default settings" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° замовчуваннÑм" + +msgid "Delay before key repeat starts:" +msgstr "Затримка між Ñтартом повтору:" + +msgid "Delay for external subtitles" +msgstr "Затримка Ð´Ð»Ñ Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ–Ñ… Ñубтитрів" + +msgid "Delete" +msgstr "Видалити" + +msgid "Delete entry" +msgstr "Видалити вибране" + +msgid "Delete failed!" +msgstr "Ðеможливо видалити!" + +msgid "Delete file" +msgstr "Видалити файл" + +msgid "Delete playlist entry" +msgstr "Видалити Ð·Ð°Ð¿Ð¸Ñ Ð· плейлиÑта" + +msgid "Delete saved playlist" +msgstr "Видалити збережений плейлиÑÑ‚" + +msgid "Delete timer" +msgstr "" + +msgid "Delete..." +msgstr "Видалити..." + +msgid "Deleted" +msgstr "Видалено" + +msgid "Deleted items" +msgstr "Видалені" + +msgid "Depth" +msgstr "Глубина" + +msgid "Descramble http streams" +msgstr "Декодувати http Ñтрім" + +msgid "Description" +msgstr "ОпиÑ" + +msgid "Deselect" +msgstr "СкаÑувати" + +msgid "Details for plugin: " +msgstr "Детальніше про плагін: " + +msgid "Detected HDD:" +msgstr "Знайдено HDD:" + +msgid "Detected NIMs:" +msgstr "Знайдено тюнер:" + +msgid "Devicename:" +msgstr "Ім'Ñ Ð¿Ñ€Ð¸Ñтрою:" + +msgid "Devide" +msgstr "" + +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC 1.0 command" +msgstr "" + +msgid "DiSEqC 1.1 command" +msgstr "" + +msgid "DiSEqC 1.1 repeats" +msgstr "" + +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +msgid "DiSEqC mode" +msgstr "DiSEqC режим" + +#, python-format +msgid "DiSEqC port %s: %s" +msgstr "DiSEqC порт %s: %s" + +msgid "DiSEqC-tester settings" +msgstr "ТеÑÑ‚ налаштувань DiSEqC" + +msgid "Dialing:" +msgstr "Ðабір номеру:" + +msgid "Digital contour removal" +msgstr "Цифрове Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚ÑƒÑ€Ñƒ" + +msgid "Direct playback of linked titles without menu" +msgstr "Відтворювати пов'Ñзані назви без меню" + +msgid "Directory" +msgstr "Каталог" + +#, python-format +msgid "Directory %s does not exist." +msgstr "Каталог %s відÑутній." + +#, python-format +msgid "Directory %s nonexistent." +msgstr "" + +msgid "Directory browser" +msgstr "Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ñ–Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð°" + +#, python-format +msgid "Directory contains %d file(s) and %d sub-directories.\n" +msgstr "" + +#, python-format +msgid "Directory contains %s and %s." +msgstr " Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ñ–Ñ Ð¼Ñ–Ñтить %s и %s." + +msgid "Disable" +msgstr "Відключити" + +msgid "Disable Picture in Picture" +msgstr "Відключити картинку в картинці" + +msgid "Disable background scanning" +msgstr "Відключити фонове ÑкануваннÑ" + +msgid "Disable timer" +msgstr "" + +msgid "Disabled" +msgstr "Відключений" + +msgid "Disconnect" +msgstr "Відключити" + +msgid "Disk space to reserve for recordings (in GB)" +msgstr "Резервувати міÑце на диÑку Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñів (в GB)" + +msgid "Display 16:9 content as" +msgstr "Показувати 16:9 контент Ñк" + +msgid "Display 4:3 content as" +msgstr "Показувати 4:3 контент Ñк" + +msgid "Display >16:9 content as" +msgstr "Показувати >16:9 контент Ñк" + +msgid "Display and userinterface" +msgstr "Екран Ñ– інтерфейÑ" + +msgid "Display message before playing next movie" +msgstr "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÐ´ відтв. наÑтупного запиÑу" + +msgid "Display setup" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¸ÑплеÑ" + +msgid "Do not change" +msgstr "Ðе змінювати" + +msgid "Do not record" +msgstr "Ðе запиÑувати" + +msgid "Do nothing" +msgstr "Ðічого не робити" + +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "" +"Ви дійÑно хочете перевірити файлову ÑиÑтему на помилки?\n" +"Це займе деÑкий чаÑ!" + +msgid "" +"Do you really want to convert the filesystem?\n" +"You cannot go back!" +msgstr "" +"Ви дійÑно хочете перетворити файлову ÑиÑтему?\n" +"Ви не зможете повернутиÑÑ Ð½Ð°Ð·Ð°Ð´!" + +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Ви дійÑно хочете видалити %s?" + +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "" +"Ви дійÑно бажаєте завантажити\n" +"плагін \"%s\"?" + +msgid "Do you really want to exit?" +msgstr "Ви дійÑно хочете вийти?" + +msgid "" +"Do you really want to initialize the device?\n" +"All data on the disk will be lost!" +msgstr "" +"Ви дійÑно хочете ініціалізувати приÑтрій?\n" +"Ð’ÑÑ– дані на диÑку будуть втрачені!" + +#, python-format +msgid "" +"Do you really want to remove\n" +"the plugin \"%s\"?" +msgstr "" +"Ви дійÑно хочете видалити\n" +"плагін \"%s\"?" + +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Ви дійÑно хочете видалити каталог %s Ñ Ð´Ð¸Ñка?" + +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Ви дійÑно хочете видалити закладку %s?" + +msgid "Do you want this?" +msgstr "" + +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Ви хочете пропалити цю колекцію на DVD ноÑій?" + +msgid "Do you want to do a service scan?" +msgstr "Ви хочете почати ÑкануваннÑ?" + +msgid "Do you want to do another manual service scan?" +msgstr "Ви хочете зробити ще одне ручне ÑкануваннÑ?" + +#, python-format +msgid "Do you want to download the image to %s ?" +msgstr "Ви дійÑно бажаєте завантажити імідж %s ?" + +msgid "Do you want to install a channel list?" +msgstr "Ви дійÑно хочете вÑтановити ÑпиÑок каналів?" + +msgid "Do you want to install the package:\n" +msgstr "Ви хочете вÑтановити пакет:\n" + +msgid "Do you want to play DVD in drive?" +msgstr "Ви хочете відтворити DVD в приводі?" + +msgid "Do you want to preview this DVD before burning?" +msgstr "Ви хочете переглÑнути DVD перед пропаленнÑм?" + +msgid "Do you want to reboot your receiver?" +msgstr "Ви хочете перезавантажити ваш реÑивер?" + +msgid "Do you want to remove the package:\n" +msgstr "Ви хочете видалити пакет:\n" + +msgid "Do you want to restore your settings?" +msgstr "Ви хочете відновити ваші уÑтановки?" + +msgid "Do you want to resume this playback?" +msgstr "Ви хочете продовжити відтвореннÑ?" + +#, python-format +msgid "Do you want to update your receiver to %s?" +msgstr "Ви хочете оновити ваш реÑивер від %s?" + +msgid "Do you want to update your receiver?" +msgstr "Ви хочете оновити ваш реÑивер?" + +msgid "Do you want to upgrade the package:\n" +msgstr "Ви хочете оновити пакети:\n" + +msgid "Don't stop current event but disable coming events" +msgstr "Ðе зупинÑти поточну подію, але відключити наÑтупні події" + +#, python-format +msgid "Done - Installed, upgraded or removed %d package (%s)" +msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" +msgstr[0] "Виконано - Ð’Ñтановлено, оновлений або видалений %d пакет (%s)" +msgstr[1] "Виконано - Ð’Ñтановлено, оновлено або видалено %d пакета (%s)" +msgstr[2] "Виконано - Ð’Ñтановлено, оновлено або видалено %d пакетів (%s)" + +msgid "Download" +msgstr "Завантажити" + +#, python-format +msgid "Download %s from server" +msgstr "Завантажити %s з Ñерверу" + +msgid "Download .NFI-files for USB-flasher" +msgstr "Завантажити .NFI-файли Ð´Ð»Ñ USB-флешера" + +msgid "Download plugins" +msgstr "Завантажити плагіни" + +msgid "Downloadable new plugins" +msgstr "ДоÑтупні нові плагіни" + +msgid "Downloadable plugins" +msgstr "ДоÑтупні плагіни" + +msgid "Downloading" +msgstr "ЗавантаженнÑ" + +msgid "Downloading plugin information. Please wait..." +msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ— про плагіни. чекайте..." + +msgid "Dutch" +msgstr "ÐідерландÑький" + +msgid "Dynamic contrast" +msgstr "Динамічна контраÑтніÑÑ‚ÑŒ" + +msgid "E" +msgstr "E" + +msgid "EPG" +msgstr "EPG" + +msgid "EPG language selection 1" +msgstr "Вибір мови EPG 1" + +msgid "EPG language selection 2" +msgstr "Вибір мови EPG 2" + +msgid "EPG selection" +msgstr "Вибір EPG" + +msgid "EPG settings" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ EPG" + +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "Помилка - неможливе ÑÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ (%s)!" + +msgid "East" +msgstr "Схід" + +msgid "East limit set" +msgstr "Включити Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° Ñхід" + +msgid "Edit" +msgstr "Редагувати" + +msgid "Edit DNS" +msgstr "Змінити DNS" + +msgid "Edit bouquets list" +msgstr "Редагувати ÑпиÑок фаворитів" + +msgid "Edit chapters of current title" +msgstr "Редагувати розділи поточного заголовка" + +msgid "Edit services list" +msgstr "Редагувати ÑпиÑок ÑервіÑів" + +msgid "Edit settings" +msgstr "Змінити налаштуваннÑ" + +msgid "Edit the nameserver configuration of your receiver.\n" +msgstr "Редагувати Ñервер DNS вашого реÑивера.\n" + +msgid "Edit the network configuration of your receiver.\n" +msgstr "Редагувати конфігурацію мережі вашого реÑивера.\n" + +msgid "Edit timer" +msgstr "" + +msgid "Edit title" +msgstr "Редагувати заголовок" + +msgid "Edit upgrade source url." +msgstr "Змінити URL-адреÑу джерела оновленнÑ" + +msgid "Education/Science/..." +msgstr "ОÑвіта / Ðаука /..." + +msgid "Electronic Program Guide" +msgstr "Електронний програмний гід" + +msgid "Enable" +msgstr "Увімкнути" + +msgid "Enable 'neutrino' style channel select controlling" +msgstr "" + +msgid "Enable 'neutrino' style zap controlling" +msgstr "" + +msgid "Enable 5V for active antenna" +msgstr "Увімкнути 5V Ð´Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ñ— антени" + +msgid "Enable EIT EPG" +msgstr "Увімкнути EIT EPG" + +msgid "Enable MHW EPG" +msgstr "Увімкнути MHW EPG" + +msgid "Enable Netmed EPG" +msgstr "Увімкнути Netmed EPG" + +msgid "Enable OK for channel selection" +msgstr "" + +msgid "Enable ViaSat EPG" +msgstr "Увімкнути ViaSat EPG" + +msgid "Enable Virgin EPG" +msgstr "" + +msgid "Enable Wake On LAN" +msgstr "" + +msgid "Enable auto fast scan" +msgstr "" + +msgid "Enable bouquet selection in multi-EPG" +msgstr "Увімкнути вибір букетів при запуÑку мульти-ЕПГ" + +msgid "Enable freesat EPG" +msgstr "Увімкнути freesat EPG" + +msgid "Enable multiple bouquets" +msgstr "Дозволити мульти-букети" + +msgid "Enable parental control" +msgstr "Включити батьківÑький контроль" + +msgid "Enable teletext caching" +msgstr "Включити ÐºÐµÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÐ»ÐµÑ‚ÐµÐºÑту" + +msgid "Enable zapping with CH+/-, B+/-, P+/-" +msgstr "" + +msgid "Enabled" +msgstr "Увімкнено" + +msgid "Encrypted: " +msgstr "ШифруваннÑ:" + +msgid "Encryption" +msgstr "КодуваннÑ" + +msgid "Encryption key" +msgstr "Ключ шифруваннÑ" + +msgid "Encryption key type" +msgstr "Тип ключа шифруваннÑ" + +msgid "Encryption:" +msgstr "Шифрование:" + +msgid "End time" +msgstr "Ð§Ð°Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ" + +msgid "End time to ignore inactivity sleeptimer" +msgstr "Ð—Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ Ð¿ÐµÑ€Ñ–Ð¾Ð´Ñƒ Ñ–Ð³Ð½Ð¾Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð°Ð¹Ð¼ÐµÑ€Ð° неактивноÑÑ‚Ñ–" + +msgid "End time to ignore shutdown in standby" +msgstr "" + +msgid "English" +msgstr "ÐнглійÑький" + +msgid "Enigma2 skin selector" +msgstr "Ñелектор Ñкінів Enigma2" + +msgid "Enter main menu..." +msgstr "Увійти в головне меню..." + +msgid "Enter pin code" +msgstr "Змінити PIN-код" + +msgid "Enter the service pin" +msgstr "Введіть PIN-код Ð´Ð»Ñ ÑервіÑу" + +msgid "Equal to" +msgstr "" + +msgid "Error" +msgstr "Помилка" + +msgid "Error code" +msgstr "Код помилки" + +msgid "Error executing plugin" +msgstr "Помилка запуÑку плагіна" + +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Помилка: %s\n" +"Повторити?" + +msgid "Estonian" +msgstr "ЭÑтонÑький" + +msgid "Ethernet network interface" +msgstr "Інтернет мережевий інтерфейÑ" + +msgid "Event font size (relative to skin size)" +msgstr "Розмір шрифту подій (ÑтоÑовно Ñкіну)" + +msgid "Event view" +msgstr "ОглÑд події" + +msgid "Event view menu" +msgstr "Меню оглÑду події..." + +msgid "Everywhere" +msgstr "Скрізь" + +msgid "Exceeds dual layer medium!" +msgstr "Перевищує двошаровий ноÑій" + +msgid "Execution finished!!" +msgstr "Ð’Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð¾!" + +msgid "Execution progress:" +msgstr "ÐŸÑ€Ð¾Ñ†ÐµÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ:" + +msgid "Exif" +msgstr "Exif" + +msgid "Exit" +msgstr "Вийти" + +msgid "Exit EPG" +msgstr "Вихід із EPG" + +msgid "Exit editor" +msgstr "Вийти из редактора" + +msgid "Exit input device selection." +msgstr "Вихід з вибору приÑтрою введеннÑ" + +msgid "Exit media player?" +msgstr "Вихід з медіаплеєру?" + +msgid "Exit mediaplayer" +msgstr "Закрити медіаплеєр" + +msgid "Exit movie list" +msgstr "Закрити ÑпиÑок фільмів" + +msgid "Exit movie player?" +msgstr "Вийти з відеоплеєра?" + +msgid "Exit nameserver configuration" +msgstr "Закрити конфігуратор DNS" + +msgid "Exit network interface list" +msgstr "Закрити ÑпиÑок мережевих інтерфейÑів" + +msgid "Exit network wizard" +msgstr "Вийти з майÑтра" + +msgid "Exit the wizard" +msgstr "Вийти з майÑтра уÑтановок" + +msgid "Expert" +msgstr "ЕкÑперт" + +msgid "Extend sleeptimer 15 minutes" +msgstr "Додати до таймера Ñну 15 хвилин" + +msgid "Extended Software" +msgstr "Розширений лог" + +msgid "Extended Software Plugin" +msgstr "Розширений плагін налаштувань мережі..." + +msgid "Extended network setup plugin..." +msgstr "Розширений плагін налаштувань мережі..." + +msgid "Extended setup..." +msgstr "Розширені налаштуваннÑ..." + +msgid "Extensions" +msgstr "Плагіни та Додатки" + +msgid "Extensions management" +msgstr "Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Ð´Ð¾Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñми" + +msgid "External PiP" +msgstr "" + +msgid "External subtitle color" +msgstr "Колір зовнішніх Ñубтитрів" + +msgid "Extra motor options" +msgstr "" + +msgid "FEC" +msgstr "FEC" + +msgid "FTA" +msgstr "FTA" + +msgid "Factory reset" +msgstr "ЗаводÑькі уÑтановки" + +msgid "Failed" +msgstr "Ðевдалий" + +msgid "Failed to write /tmp/positionersetup.log: " +msgstr "Ðе вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати /tmp/positionersetup.log: " + +#, python-format +msgid "Fan %d" +msgstr "ВентилÑтор %d" + +#, python-format +msgid "Fan %d PWM" +msgstr "ВентилÑтор %d PWM" + +#, python-format +msgid "Fan %d voltage" +msgstr "ВентилÑтор %d напруга" + +msgid "Fan operation" +msgstr "" + +msgid "Fan speed" +msgstr "" + +msgid "Fast" +msgstr "Швидко" + +msgid "Fast DiSEqC" +msgstr "Швидкий DiSEqC" + +msgid "Fast Scan" +msgstr "Швидкий пошук по провайдеру" + +msgid "Fast epoch" +msgstr "Ð§Ð°Ñ Ð´Ð»Ñ Ð¿Ñ€Ð¸Ñкоренної швидкоÑÑ‚Ñ–" + +msgid "Fast forward speeds" +msgstr "ШвидкіÑÑ‚ÑŒ Ð¿ÐµÑ€ÐµÐ¼Ð¾Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¿ÐµÑ€ÐµÐ´" + +msgid "Favourites" +msgstr "Фаворити" + +msgid "File appears to be busy.\n" +msgstr "Файл виÑвивÑÑ Ð·Ð°Ð¹Ð½Ñтим.\n" + +msgid "Filesystem check" +msgstr "Перевірка файлової ÑиÑтеми" + +msgid "Final position at" +msgstr "ПідÑумкова позиціÑ" + +msgid "Final position at index" +msgstr "Ðомер підÑумкової позиції" + +msgid "Fine movement" +msgstr "Тонке переміщеннÑ" + +msgid "Finetune" +msgstr "Точно" + +msgid "Finished" +msgstr "Завершено" + +msgid "Finished configuring your network" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼ÐµÑ€ÐµÐ¶Ñ– закінчена" + +msgid "Finished restarting your network" +msgstr "ÐŸÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð²Ð°ÑˆÐ¾Ñ— мережі завершена" + +msgid "Finnish" +msgstr "ФінÑький" + +msgid "Fixed" +msgstr "ФікÑована" + +msgid "Flash" +msgstr "Прошивка" + +msgid "Flashing failed" +msgstr "Прошивка не вдалаÑÑ" + +msgid "Following tasks will be done after you press OK!" +msgstr "Ð’Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‡Ð½ÐµÑ‚ÑŒÑÑ Ð¿Ñ–ÑÐ»Ñ Ñ‚Ð¾Ð³Ð¾, Ñк ви натиÑнете ОК!" + +msgid "Format" +msgstr "Формат" + +msgid "Forward volume keys" +msgstr "Передати кнопки звуку" + +msgid "Frame size in full view" +msgstr "Розмір рамки при переглÑді на веÑÑŒ екран" + +msgid "French" +msgstr "ФранцузÑький" + +msgid "Frequency" +msgstr "ЧаÑтота" + +msgid "Frequency bands" +msgstr "ЧаÑтотні діапазони" + +msgid "Frequency scan step size(khz)" +msgstr "Крок чаÑтоти ÑкануваннÑ(khz)" + +msgid "Frequency steps" +msgstr "Крок чаÑтоти" + +msgid "Frequency:" +msgstr "ЧаÑтота:" + +msgid "Fri" +msgstr "Пт" + +msgid "Friday" +msgstr "П'ÑтницÑ" + +msgid "From :" +msgstr "Від :" + +#, python-format +msgid "Frontprocessor version: %d" +msgstr "ВерÑÑ–Ñ Ñ„Ñ€Ð¾Ð½Ñ‚Ð¿Ñ€Ð¾Ñ†ÐµÑÑора: %d" + +msgid "Full transparency" +msgstr "Повна прозоріÑÑ‚ÑŒ" + +msgid "Fulview resulution" +msgstr "Повна роздільна здатніÑÑ‚ÑŒ переглÑду" + +msgid "Function of OK button" +msgstr "Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸ OK" + +msgid "Further Options" +msgstr "" + +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to restart the GUI now?" +msgstr "" +"Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ñ–Ñ— нового Ñкіна необхідний реÑтарт GUI.\n" +"Ви хочете зробити це зараз?" + +msgid "Gateway" +msgstr "Шлюз" + +msgid "General AC3 delay" +msgstr "Загальна затримка AC3" + +msgid "General PCM delay" +msgstr "Загальна затримка PCM" + +msgid "Genre" +msgstr "Жанр" + +msgid "German" +msgstr "Ðімецький" + +msgid "Get latest experimental image" +msgstr "" + +msgid "Get latest release image" +msgstr "Отримати оÑтанній випущений імідж" + +msgid "Getting plugin information. Please wait..." +msgstr "ÐžÑ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ— про плагін. Будь лаÑка чекайте..." + +msgid "Go down the list" +msgstr "ПереміÑтити вниз до оÑтаннього запиÑу" + +msgid "Go to first movie or last item" +msgstr "Перейти до першого відео або до оÑтаннього Ñ€Ñдка" + +msgid "Go to first movie or top of list" +msgstr "Перейти до першого відео або на вгору ÑпиÑку" + +msgid "Go to first service" +msgstr "Перейти на перший ÑервіÑ" + +msgid "Go to last service" +msgstr "Перейти на оÑтанній ÑервіÑ" + +msgid "Go to next event" +msgstr "Перейти на наÑтупну подію" + +msgid "Go to next page of service" +msgstr "Перейти на наÑтупну Ñторінку ÑервіÑів" + +msgid "Go to previous event" +msgstr "Перейти на попередню подію" + +msgid "Go to previous page of service" +msgstr "Перейти на попередню Ñторінку ÑервіÑів" + +msgid "Go up the list" +msgstr "Перейти в кінець ÑпиÑку" + +msgid "Goto" +msgstr "Перехід" + +msgid "Goto 0" +msgstr "Перехід на позицію 0" + +msgid "Goto :" +msgstr "Куди :" + +msgid "Goto X" +msgstr "Перехід на позицію Ð¥" + +msgid "Goto index position" +msgstr "Ðомер позиції" + +msgid "Goto next day of events" +msgstr "Перейти на наÑтупний день подій" + +msgid "Goto next page of events" +msgstr "Перейти на попередню Ñторінку подій" + +msgid "Goto position" +msgstr "Перейти на позицію" + +msgid "Goto previous day of events" +msgstr "Перейти на попередній день подій" + +msgid "Goto previous page of events" +msgstr "Перейти на попередню Ñторінку подій" + +msgid "Goto specific date/time" +msgstr "" + +msgid "GotoX calibration" +msgstr "ÐšÐ°Ð»Ñ–Ð±Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ— Ð¥" + +msgid "GraphMultiEpg Settings" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ñ€Ð°Ñ„Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ мульти-EPG" + +msgid "Graphical Multi EPG" +msgstr "Графічний мульти-EPG" + +msgid "Greek" +msgstr "ГречеÑький" + +msgid "Green boost" +msgstr "ÐŸÑ–Ð´Ð²Ð¸Ñ‰ÐµÐ½Ð½Ñ Ð·ÐµÐ»ÐµÐ½Ð¾Ð³Ð¾" + +msgid "Guard interval" +msgstr "Інтервал захиÑту" + +msgid "HD list" +msgstr "HD лиÑÑ‚" + +msgid "HDMI-CEC setup" +msgstr "" + +msgid "Handle standby from TV" +msgstr "Режим Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸ вимкненню ТБ" + +msgid "Handle wakeup from TV" +msgstr "Увімкнути при включенні ТВ" + +msgid "Hard disk" +msgstr "ЖорÑткий диÑк" + +msgid "Hard disk setup" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¸Ñка" + +msgid "Hard disk standby after" +msgstr "Ð’Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ HDD через" + +msgid "Harddisk" +msgstr "ЖорÑткий диÑк" + +msgid "Hardware: " +msgstr "Ðпаратура: " + +msgid "Hebrew" +msgstr "Іврит" + +msgid "Helps setting up your dish" +msgstr "" + +msgid "Hidden network" +msgstr "Прихована мережа" + +msgid "Hide CI messages" +msgstr "Приховати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ CI" + +msgid "Hide channel list in radio mode" +msgstr "Приховати ÑпиÑок каналів в режимі радіо" + +msgid "Hide known extensions" +msgstr "Приховати відомі роздільні здатноÑÑ‚Ñ–" + +msgid "Hide number markers" +msgstr "Приховувати номера маркерів" + +msgid "Hide player" +msgstr "Приховати програвач" + +msgid "Hide zap errors" +msgstr "Заховати помилки при перемиканні каналів" + +msgid "Hierarchy info" +msgstr "Ð†Ñ”Ñ€Ð°Ñ€Ñ…Ñ–Ñ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ—" + +msgid "Hierarchy information" +msgstr "Ð†Ñ”Ñ€Ð°Ñ€Ñ…Ñ–Ñ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ—" + +msgid "High bitrate support" +msgstr "Підтримка виÑокого бітрейта" + +msgid "Hold screen" +msgstr "Зберігати екран" + +msgid "Hold till locked" +msgstr "Зберігати екран-заблоковано" + +msgid "Home" +msgstr "ДомашнÑ" + +msgid "Horizontal" +msgstr "Горизонтальна" + +msgid "Horizontal turning speed" +msgstr "ПолÑÑ€Ð¸Ð·Ð°Ñ†Ñ–Ñ (H) - швидкіÑÑ‚ÑŒ повороту" + +msgid "How many minutes do you want to record?" +msgstr "Скільки хвилин ви хочете запиÑати?" + +msgid "Hue" +msgstr "Відтінок" + +msgid "Hungarian" +msgstr "УгорÑький" + +msgid "IP address" +msgstr "IP адреÑа" + +msgid "ISO file is too large for this filesystem!" +msgstr "ISO файл занадто великий Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— файлової ÑиÑтеми!" + +msgid "ISO path" +msgstr "ISO шлÑÑ…" + +msgid "Icons" +msgstr "Іконка" + +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"Якщо ви бачите це, то щоÑÑŒ не так з вашим\n" +"SCART з'єднаннÑм. ÐатиÑніть кнопку ОК, щоб повернутиÑÑ." + +msgid "" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" +"If you are happy with the result, press OK." +msgstr "" + +msgid "Image: " +msgstr "Імідж: " + +msgid "Immediate shutdown" +msgstr "глибокий Режим очікуваннÑ" + +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "" +"Ð”Ð»Ñ Ñтарту запиÑу за таймером,\n" +" перемикаємо на запиÑуваний ÑервіÑ!\n" + +msgid "In progress" +msgstr "У прогреÑÑ–" + +msgid "Inactivity Sleeptimer" +msgstr "Таймер неактивноÑÑ‚Ñ–" + +msgid "Include AIT in http streams" +msgstr "Вмикати AIT в http Ñтрім" + +msgid "Include ECM in http streams" +msgstr "Вмикати ECM в http Ñтрім" + +msgid "Include EIT in http streams" +msgstr "Вмикати EIT в http Ñтрім" + +msgid "Incorrect type service for PiP!" +msgstr "" + +msgid "Increased voltage" +msgstr "Підвищена напруга" + +msgid "Index" +msgstr "ІндекÑ" + +msgid "Index allocated:" +msgstr "Виділено номер:" + +msgid "Info" +msgstr "Інфо" + +msgid "Info bar" +msgstr "Інфобар" + +msgid "Info bar timeout" +msgstr "Ð§Ð°Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ інфобара" + +msgid "Infobar frontend data source" +msgstr "" + +msgid "Information" +msgstr "ИнформаціÑ" + +msgid "Init" +msgstr "ІніціалізаціÑ" + +msgid "Initial fast forward speed" +msgstr "ПервіÑна швидкіÑÑ‚ÑŒ Ð¿ÐµÑ€ÐµÐ¼Ð¾Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¿ÐµÑ€ÐµÐ´" + +msgid "Initial location in new timers" +msgstr "Початкове міÑце нових таймерів" + +msgid "Initial lock ratio" +msgstr "Початкове ÑÐ¿Ñ–Ð²Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Ð·Ð°Ñ…Ð¾Ð¿Ð»ÐµÐ½Ð½Ñ" + +msgid "Initial rewind speed" +msgstr "ПервіÑна швидкіÑÑ‚ÑŒ Ð¿ÐµÑ€ÐµÐ¼Ð¾Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð°Ð·Ð°Ð´" + +msgid "Initial signal quality" +msgstr "Початкова ÑкіÑÑ‚ÑŒ Ñигналу" + +msgid "Initial signal quality:" +msgstr "Початкова ÑкіÑÑ‚ÑŒ Ñигналу:" + +msgid "Initialization" +msgstr "Ð†Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ (формат.)" + +msgid "Initialize" +msgstr "ІніціалізаціÑ" + +msgid "Initializing storage device..." +msgstr "Ð†Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ Ð¶ÐµÑткого диÑка..." + +msgid "Input" +msgstr "Вхід" + +msgid "Input device setup" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ñтрою введеннÑ" + +msgid "Input devices" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÑƒÐ»ÑŒÑ‚Ð°" + +msgid "Install" +msgstr "Ð’Ñтановити" + +msgid "Install a new image with a USB stick" +msgstr "Ð’Ñтановити новий імідж з USB" + +msgid "Install a new image with your web browser" +msgstr "Ð’Ñтановити новий імідж через web браузер" + +msgid "Install channel list" +msgstr "ІнÑталювати ÑпиÑок каналів" + +msgid "Install extensions" +msgstr "" + +msgid "Install extensions." +msgstr "Ð’Ñтановити доповненнÑ." + +msgid "Install local extension" +msgstr "ІнÑталÑÑ†Ñ–Ñ Ð»Ð¾ÐºÐ°Ð». пакетів" + +msgid "Install picons on" +msgstr "ІнÑталÑÑ†Ñ–Ñ ÐŸÑ–ÐºÐ¾Ð½Ñ–Ð² в" + +msgid "Install softcam" +msgstr "ІнÑталÑÑ†Ñ–Ñ Ð•Ð¼ÑƒÐ»Ñтора" + +msgid "Installation has completed." +msgstr "ІнÑталÑцію завершено." + +msgid "Installation or removal has completed." +msgstr "ІнÑталÑцію або Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¾." + +msgid "Installing" +msgstr "ІнÑталÑціÑ" + +msgid "Installing software..." +msgstr "ІнÑталÑÑ†Ñ–Ñ Ð¿Ð°ÐºÐµÑ‚Ñ–Ð²..." + +msgid "Instant recording location" +msgstr "МіÑце негайного запиÑу" + +msgid "Instant recording..." +msgstr "Меню негайного запиÑу..." + +msgid "Interface: " +msgstr "ІнтерфейÑ: " + +msgid "Intermediate" +msgstr "Проміжний" + +msgid "Internal flash" +msgstr "Ð’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ñ„Ð»ÐµÑˆ" + +msgid "Internal hdd only" +msgstr "Тільки внутр. жорÑткий диÑк" + +msgid "Interval between keys when repeating:" +msgstr "Інтервал між повторами кнопок:" + +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Вибрано неправильний каталог: %s" + +msgid "Invalid location" +msgstr "Ðеправильне розташуваннÑ" + +msgid "Invalid transponder data" +msgstr "" + +msgid "Inversion" +msgstr "ІнверÑÑ–Ñ" + +msgid "Invert" +msgstr "Вибрати вÑÑ–" + +msgid "Ipkg" +msgstr "Ipkg" + +msgid "Is this setting ok?" +msgstr "Цей варіант Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð°Ñ Ð²Ð»Ð°ÑˆÑ‚Ð¾Ð²ÑƒÑ”?" + +msgid "Is this video mode ok?" +msgstr "Ð’Ñтановити даний відеорежим?" + +msgid "Italian" +msgstr "ІталійÑький" + +msgid "Items per page " +msgstr "КількіÑÑ‚ÑŒ ÑервіÑів на Ñторінку " + +msgid "Items per page for list screen" +msgstr "КількіÑÑ‚ÑŒ ÑервіÑів на Ñторінку в режимі ÑпиÑку" + +msgid "Job overview" +msgstr "ПереглÑд завданнÑ" + +msgid "Jump to beginning of list" +msgstr "Перейти в початок ÑпиÑку" + +msgid "Jump to end of list" +msgstr "Перейти в кінець ÑпиÑку" + +msgid "Jump to next marked position" +msgstr "Перейти до наÑтупної мітки" + +msgid "Jump to previous marked position" +msgstr "Перейти до наÑтупної мітки" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +msgid "Just scale" +msgstr "Тільки маштаб" + +msgid "Keep service" +msgstr "Затримати ÑервіÑ" + +msgid "Kernel version: " +msgstr "ВерÑÑ–Ñ Ñдра: " + +msgid "Keyboard" +msgstr "Клавіатура" + +msgid "Keyboard map" +msgstr "Розкладка клавіатури" + +msgid "Keyboard setup" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–Ð°Ñ‚ÑƒÑ€Ð¸" + +msgid "LAN adapter" +msgstr "LAN адаптер" + +msgid "LAN connection" +msgstr "LAN з'єднаннÑ" + +msgid "LNB" +msgstr "LNB" + +msgid "Language" +msgstr "Вибір мови" + +msgid "Language selection" +msgstr "СпиÑок мов" + +msgid "Last config" +msgstr "ОÑтанні налаштуваннÑ" + +msgid "Last speed" +msgstr "ОÑÑ‚Ð°Ð½Ð½Ñ ÑˆÐ²Ð¸Ð´ÐºÑ–ÑÑ‚ÑŒ" + +msgid "Last upgrade: " +msgstr "ОÑтаннє оновленнÑ: " + +msgid "Latest Commits" +msgstr "Зміни" + +msgid "Latitude" +msgstr "Широта" + +msgid "Latvian" +msgstr "ЛатвійÑький" + +msgid "Leave DVD player?" +msgstr "Вийти з DVD плеєра?" + +msgid "Left" +msgstr "Лівий" + +msgid "Left from servicename" +msgstr "ліворуч від назви ÑервіÑу" + +msgid "Leisure hobbies" +msgstr "Хоббі на відпочинку" + +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Letterbox" + +msgid "Letterbox zoom" +msgstr "" + +msgid "Limit character set for recording filenames" +msgstr "Обмежити набір Ñимволів в іменах запиÑів" + +msgid "Limit east" +msgstr "ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° Ñхід" + +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "Обмежте знаки, Ñкі можуть викориÑтовуватиÑÑ Ð² запиÑÑ– імен файлів (7 біт)ASCII. Це забезпечує ÑуміÑніÑÑ‚ÑŒ з операційними ÑиÑтемами абофайловими ÑиÑтемами з обмеженим набором Ñимволів." + +msgid "Limit west" +msgstr "ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° захід" + +msgid "Limits cancelled" +msgstr "ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ ÑкаÑовані" + +msgid "Limits enabled" +msgstr "ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¾" + +msgid "Limits off" +msgstr "Вимкнути обмеженнÑ" + +msgid "Limits on" +msgstr "Ðктивувати обмеженнÑ" + +msgid "Link quality:" +msgstr "ЯкіÑÑ‚ÑŒ зв'Ñзку:" + +msgid "Link:" +msgstr "ПоÑиланнÑ:" + +msgid "Linked titles with a DVD menu" +msgstr "Заголовки пов'Ñзані з DVD меню" + +msgid "List EPG functions..." +msgstr "СпиÑок функцій EPG..." + +msgid "List available networks" +msgstr "ПереглÑд ÑпиÑку доÑтупних мереж" + +msgid "List mode" +msgstr "Режим ÑпиÑку" + +msgid "List of storage devices" +msgstr "СпиÑок приÑтроїв зберіганнÑ" + +msgid "List type" +msgstr "ВиглÑд ÑпиÑку" + +#, python-format +msgid "List version %d, found %d channel" +msgid_plural "List version %d, found %d channels" +msgstr[0] "СпиÑок верÑÑ–Ñ— %d, знайдений %d канал" +msgstr[1] "СпиÑок верÑÑ–Ñ— %d, знайдено %d канала" +msgstr[2] "СпиÑок верÑÑ–Ñ— %d, знайдено %d каналів" + +msgid "Listen to the radio..." +msgstr "Слухати радіо..." + +msgid "Lists reloaded!" +msgstr "" + +msgid "Lithuanian" +msgstr "ЛитовÑький" + +msgid "Load" +msgstr "Завантажити" + +msgid "Load Length of Movies in Movielist" +msgstr "" + +msgid "Load length of movies in movie list" +msgstr "Загружать длительноÑÑ‚ÑŒ видео в ÑпиÑке видео" + +msgid "Load playlist" +msgstr "Завантажити плейлиÑÑ‚" + +msgid "Local network" +msgstr "Локальна мережа" + +msgid "Location" +msgstr "РозташуваннÑ" + +msgid "Location for instant recordings" +msgstr "Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ‚Ð°Ð»ÑŒÐ½Ð¸Ñ… запиÑів" + +msgid "Lock ratio" +msgstr "ЯкіÑÑ‚ÑŒ захопленнÑ" + +msgid "Lock:" +msgstr "ЗахопленнÑ:" + +msgid "Log results to harddisk" +msgstr "ЗапиÑувати журнал на диÑк" + +msgid "Long filenames" +msgstr "Довга назва" + +msgid "Long key press" +msgstr "Довге натиÑненнÑ" + +msgid "Longitude" +msgstr "Довгота" + +msgid "Loop through to" +msgstr "" + +msgid "Luxembourgish" +msgstr "ЛюкÑембургÑький" + +msgid "MMC card" +msgstr "MMC карта" + +msgid "MORE" +msgstr "ПОТІМ" + +msgid "Main menu" +msgstr "Головне меню" + +msgid "Maintain old EPG data for" +msgstr "Зберігати минулі дані EPG Ð´Ð»Ñ (хв)" + +msgid "Make this mark an 'in' point" +msgstr "Відзначити цю точку Ñк 'початок'" + +msgid "Make this mark an 'out' point" +msgstr "Відзначити цю точку Ñк 'кінець'" + +msgid "Make this mark just a mark" +msgstr "Створити проÑту мітку" + +msgid "Manage extensions" +msgstr "Менеджер доповнень" + +msgid "Manage your receiver's software" +msgstr "Менеджер ПО реÑивера" + +msgid "Manual" +msgstr "Вручну" + +msgid "Manual Scan" +msgstr "Ручний пошук" + +msgid "Manual configuration" +msgstr "Ручне ÐалаштуваннÑ" + +msgid "Manual scan" +msgstr "Ручний пошук" + +msgid "Manual transponder" +msgstr "ТранÑпондер в ручну" + +msgid "Manufacturer" +msgstr "Виробник" + +msgid "Margin after recording (minutes)" +msgstr "Об'єднати піÑÐ»Ñ Ð·Ð°Ð¿Ð¸Ñу (у хвилинах)" + +msgid "Margin before recording (minutes)" +msgstr "Об'єднати перед запиÑом (у хвилинах)" + +msgid "Max memory positions" +msgstr "" + +msgid "Max. bitrate: " +msgstr "МакÑ. бітрейт:" + +msgid "Media player" +msgstr "Медіаплеєр" + +msgid "Media scanner" +msgstr "Медіа Ñканнер" + +msgid "Medium is not a writeable DVD!" +msgstr "ÐоÑій не запиÑуємий DVD!" + +msgid "Medium is not empty!" +msgstr "ÐоÑій не порожній!" + +msgid "Memory" +msgstr "ПамÑÑ‚ÑŒ" + +msgid "Memory index" +msgstr "Ðомер в пам'ÑÑ‚Ñ–" + +msgid "Menu" +msgstr "Меню" + +msgid "Message" +msgstr "ПовідомленнÑ" + +msgid "Message..." +msgstr "ПовідомленнÑ..." + +#, python-format +msgid "Minimum age %d years" +msgstr "ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ñ–Ñ Ð¼Ñ–Ð½Ñ–Ð¼ÑƒÐ¼ %d років" + +msgid "Minimum send interval" +msgstr "Мінімальний інтервал відправки" + +msgid "Missing " +msgstr "ВідÑутній " + +msgctxt "Satellite configuration mode" +msgid "Mode" +msgstr "" + +msgctxt "Video output mode" +msgid "Mode" +msgstr "" + +msgid "Model: " +msgstr "Модель: " + +msgid "Modulation" +msgstr "МодулÑціÑ" + +msgid "Modulator" +msgstr "МодулÑтор" + +msgid "Mon" +msgstr "Пн" + +msgid "Mon-Fri" +msgstr "Пн-Пт" + +msgid "Monday" +msgstr "Понеділок" + +msgid "Mosquito noise reduction" +msgstr "ÐŸÑ€Ð¸Ð´ÑƒÑˆÐµÐ½Ð½Ñ Ð¼Ð¾Ñкітного шуму" + +msgid "Mount" +msgstr "ПереглÑд підключень" + +msgid "Move" +msgstr "ПереміщеннÑ" + +msgid "Move PiP to main picture" +msgstr "ПереміÑтити PiP на оÑновний екран" + +msgid "Move Picture in Picture" +msgstr "ПереміÑтити картинку в картинці" + +msgid "Move east" +msgstr "ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð½Ð° Ñхід" + +msgid "Move to other directory" +msgstr "Вибір початкового каталогу" + +msgid "Move to position X" +msgstr "ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð´Ð¾ позиції Ð¥" + +msgid "Move west" +msgstr "ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð½Ð° захід" + +msgid "Moved to position 0" +msgstr "ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð´Ð¾ позиції Ð¥" + +msgid "Moved to position at index" +msgstr "ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð´Ð¾ позиції номера" + +msgid "Movement" +msgstr "ПереміщеннÑ" + +msgid "Movie List Configuration" +msgstr "" + +msgid "Movie Selection" +msgstr "" + +msgid "Movie list configuration" +msgstr "ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ ÑпиÑку відео" + +msgid "Movie location" +msgstr "Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´ÐµÐ¾" + +msgid "Movie selection" +msgstr "Вибір відео" + +msgid "Movie/Drama" +msgstr "Фільми / Драма" + +msgid "Movielist menu" +msgstr "Меню ÑпиÑку відео" + +msgid "Moving" +msgstr "Переміщуємо" + +msgid "Moving east ..." +msgstr "Переміщаємо на Ñхід ..." + +msgid "Moving to position" +msgstr "Переміщаємо на позицію" + +msgid "Moving west ..." +msgstr "Переміщаємо на захід ..." + +msgid "Multi EPG" +msgstr "Мульти EPG" + +msgid "Multi-EPG bouquet selection" +msgstr "Вибір фаворитів при Ñтарті мульти-EPG" + +msgid "Multimedia" +msgstr "Мультмедіа" + +msgid "Multiple service support" +msgstr "Підтримка мультиÑервіÑів" + +msgid "Multiplex" +msgstr "МультиплекÑ" + +msgid "Multisat" +msgstr "Декілька Ñупутників" + +msgid "Multisat all select" +msgstr "" + +msgid "Music/Ballet/Dance" +msgstr "Музика/Балет/Танець" + +msgid "Mute" +msgstr "без звуку" + +msgid "N/A" +msgstr "N/A" + +msgid "NEXT" +msgstr "ДÐЛІ" + +msgid "NFI image flashing" +msgstr "УÑтановка прошивки NFI" + +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "NFI імідж вдало вÑтановлений. ÐатиÑніть ЖОВТИЙ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ!" + +msgid "NIM" +msgstr "Тюнер" + +msgid "NOW" +msgstr "ЗÐРÐЗ" + +msgid "NTSC" +msgstr "NTSC" + +msgid "Name" +msgstr "Ім'Ñ" + +msgid "Nameserver" +msgstr "DNS Ñервер" + +#, python-format +msgid "Nameserver %d" +msgstr "DNS Ñервер %d" + +msgid "Nameserver settings" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ DNS" + +msgid "Nameserver setup" +msgstr "" + +msgid "Namespace" +msgstr "Namespace" + +msgid "Netmask" +msgstr "МаÑка підмережі" + +msgid "Network" +msgstr "Мережа" + +msgid "Network ID" +msgstr "ID мережі" + +msgid "Network configuration..." +msgstr "ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ð¼ÐµÑ€ÐµÐ¶Ñ–..." + +msgid "Network mount" +msgstr "Мережеві підключеннÑ" + +#, python-format +msgid "Network mount %s" +msgstr "Мережеві Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ %s" + +msgid "Network name (SSID)" +msgstr "Мережеве ім'Ñ (SSID)" + +msgid "Network scan" +msgstr "Ð¡ÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼ÐµÑ€ÐµÐ¶Ñ–" + +msgid "Network setup" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼ÐµÑ€ÐµÐ¶Ñ–" + +msgid "Network test" +msgstr "ТеÑÑ‚ мережі" + +msgid "Network test..." +msgstr "ТеÑÑ‚ мережі..." + +msgid "Network test: " +msgstr "ТеÑÑ‚ мережі: " + +msgid "Network wizard" +msgstr "МайÑтер Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼ÐµÑ€ÐµÐ¶Ñ–" + +msgid "Network:" +msgstr "Мережа:" + +msgid "New" +msgstr "Ðовий" + +msgid "New PIN" +msgstr "Ðовий PIN-код" + +msgid "New version:" +msgstr "Ðова верÑÑ–Ñ:" + +msgid "News Current Affairs" +msgstr "Ðовини поточної події" + +msgctxt "button label, 'next screen'" +msgid "Next" +msgstr "" + +msgctxt "now/next: 'next' event label" +msgid "Next" +msgstr "" + +msgid "No" +msgstr "ÐÑ–" + +msgid "No (supported) DVDROM found!" +msgstr "Ðе знайдено (підтримуваний) DVDROM!" + +msgid "No Connection" +msgstr "Ðемає з'єднаннÑ" + +msgid "No HDD found or HDD not initialized!" +msgstr "HDD не знайдений або не вÑтановлений!" + +msgid "No backup needed" +msgstr "Резервне ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð½Ðµ потрібно" + +msgid "No cable tuner found!" +msgstr "Ðе знайдено кабельний тюнер!" + +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Ðемає даних на транÑпондер!\n" +"(Тайм-аут Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ PAT)" + +msgid "No delay" +msgstr "без затримки" + +msgid "No description available." +msgstr "Оновлень поки немає." + +msgid "No details for this image file" +msgstr "Ðемає деталей про цей файл іміджу" + +msgid "No displayable files on this medium found!" +msgstr "Ðемає відображуваних файлів на цьому ноÑÑ–Ñ—!" + +msgid "No event info found, recording indefinitely." +msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ подію не знайдена, Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° невизначений чаÑ." + +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "Ðемає швидкого Ð¿ÐµÑ€ÐµÐ¼Ð¾Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ ще ... але ви можете викориÑтовувати цифровікнопки Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ñƒ вперед / назад!" + +msgid "No free index available" +msgstr "Ðемає вільного номера пам'ÑÑ‚Ñ–" + +msgid "No free tuner!" +msgstr "Ðемає вільного тюнера!" + +msgid "No network connection available." +msgstr "Ðемає доÑтупного мережевого підключеннÑ." + +msgid "No networks found" +msgstr "Мережі не знайдені" + +msgid "No new plugins found" +msgstr "Ðе знайдені нові плагіни" + +msgid "No positioner capable frontend found." +msgstr "Ðемає фронтенда з позіционером" + +msgid "No satellites configured. Plese check your tuner setup." +msgstr "" + +msgid "No service" +msgstr "" + +msgid "No services/providers selected" +msgstr "Ðе вибрані канали/провайдери" + +msgid "No standby" +msgstr "Ðе переходить в Режим очікуваннÑ" + +msgid "No suitable sat tuner found!" +msgstr "" + +msgid "No tags are set on these movies." +msgstr "Ðемає тегів Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ відео." + +msgid "No timeout" +msgstr "Ðемає таймаута" + +msgid "No to all" +msgstr "ÐÑ– - Ð´Ð»Ñ Ð²ÑÑ–Ñ…" + +msgid "No transparency" +msgstr "Ðемає прозороÑÑ‚Ñ–" + +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "Ðемає тюнера, налаштованого Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð· diseqc позіционером!" + +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Ðемає увімкненого тюнера!\n" +"Будь лаÑка налаштуйте ваш тюнер перед пошуком каналів." + +msgid "No updates available" +msgstr "Оновлень поки немає" + +msgid "No updates available. Please try again later." +msgstr "Оновлень поки немає. Будь лаÑка Ñпробуйте пізніше." + +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Ðе пройшов Ñтандартизацію PIN ÑервіÑу!\n" +"Ви хочете змінити PIN-код ÑервіÑу тепер?\n" +"Якщо ви відповіÑте 'ÐІ', то захиÑÑ‚ ÑервіÑу \n" +"не буде активована!" + +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Ðе пройшов Ñтандартизацію PIN налаштувань!\n" +"Ви хочете змінити PIN-код ÑервіÑу тепер?\n" +"Якщо ви відповіÑте 'ÐІ', то захиÑÑ‚ ÑервіÑу \n" +"не буде активована!" + +msgid "No wireless networks found! Searching..." +msgstr "Ðе виÑвлені бездротові мережі! йде пошук..." + +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is configured correctly." +msgstr "" +"Ðемає робочого локального мережевого адаптера.\n" +"Будь лаÑка, переконайтеÑÑ, що мережевий кабель підключений Ñ– ваша мережа налаштована вірно." + +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." +msgstr "" +"Ðе знайдено робочий бездротовий адаптер.\n" +"Будь лаÑка, переконайтеÑÑ, що ÑуміÑний бездротовий адаптер підключений Ñ– ваша мережа налаштована вірно." + +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable your local network interface." +msgstr "" +"Ðе знайдено робочий бездротовий інтерфейÑ.\n" +" ПереконайтеÑÑŒ, що ви підключили ÑуміÑний приÑтрій WLAN або увімкніть локальний мережний інтерфейÑ." + +msgid "No, but restart from begin" +msgstr "ÐÑ–, реÑтарт Ñ– почати Ñпочатку" + +msgid "No, do nothing." +msgstr "ÐÑ–, нічого не робити." + +msgid "No, just start my receiver" +msgstr "ÐÑ–, включити реÑивер" + +msgid "No, never" +msgstr "ÐÑ–, ніколи" + +msgid "None" +msgstr "ÐÑ–" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Ðелінійний" + +msgid "Normal mode" +msgstr "Стандарт" + +msgid "North" +msgstr "Північ" + +msgid "Norwegian" +msgstr "Ðорвезька" + +msgid "Not associated" +msgstr "Ðемає аÑоціацій" + +msgid "Not configured" +msgstr "" + +#, python-format +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Ðемає міÑÑ†Ñ Ð½Ð° диÑку. Будь лаÑка звільніть трохи міÑÑ†Ñ Ñ– Ñпробуйте знову. (%d MB потрібно, %d MB доÑтупно)" + +msgid "Nothing connected" +msgstr "" + +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Ðема чого Ñканувати!\n" +"Будь лаÑка, налаштуйте ваш тюнер перед початком ÑкануваннÑ." + +msgctxt "now/next: 'now' event label" +msgid "Now" +msgstr "" + +msgid "Now playing" +msgstr "Відтворити" + +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Тепер викориÑтовуйте Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð°ÑтноÑÑ‚Ñ– Ð´Ð»Ñ Ð¿Ñ–Ð´Ð½ÑÑ‚Ñ‚Ñ Ñ„Ð¾Ð½Ñƒ в макÑимально Можливий рівень, але при цьому необхідно Ñтежити, щоб Ви могли бачити відмінноÑÑ‚Ñ– між двома найÑÑкравішими рівнÑми відтінків. Якщо вÑе нормально натиÑніть OK." + +msgid "OK" +msgstr "OK" + +msgid "OK, guide me through the upgrade process" +msgstr "OK, підказувати мені в процеÑÑ– оновленнÑ" + +msgid "ONID" +msgstr "ONID" + +msgid "OSD name request" +msgstr "OSD ім'Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ" + +msgid "OSD settings" +msgstr "OSD уÑтановки" + +msgid "OSD transparency" +msgstr "ПрозоріÑÑ‚ÑŒ OSD" + +msgid "Off" +msgstr "Вимкн." + +msgid "Offline decode delay (ms)" +msgstr "Затримка відкладеного Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ (мÑ)" + +msgid "Ok" +msgstr "Ок" + +msgid "On" +msgstr "Вкл." + +msgid "On end of movie" +msgstr "Ðаприкінці фільму" + +msgid "On end of movie (as menu)" +msgstr "" + +msgid "One" +msgstr "Один" + +msgid "Only extensions." +msgstr "Тільки доповненнÑ." + +msgid "Only free scan" +msgstr "Тільки безкоштовні" + +msgid "Open service list" +msgstr "Відкрити ÑпиÑок ÑервіÑів" + +msgid "Open the movie list" +msgstr "Відкрити ÑпиÑок відео" + +msgid "Orbital position" +msgstr "Орбіт. позиціÑ" + +msgid "Original" +msgstr "Оригінал" + +msgid "Other" +msgstr "Інша" + +msgid "Output" +msgstr "Відеовихід" + +msgid "Overwrite configuration files during software upgrade?" +msgstr "ПерезапиÑати конф. файли під Ñ‡Ð°Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÐŸÐž?" + +msgid "Overwrite configuration files?" +msgstr "ПерепиÑати файли конфігурації" + +msgid "PAL" +msgstr "PAL" + +msgid "PCR PID" +msgstr "PCR PID" + +msgid "PIDs" +msgstr "ПІДи" + +msgid "PIN code needed" +msgstr "Ðеобхідний PIN-код" + +msgid "PLP ID" +msgstr "" + +msgid "PMT PID" +msgstr "РМТ PID" + +msgid "Package list update" +msgstr "СпиÑок пакетів оновленнÑ" + +msgid "Packet management" +msgstr "Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Ð¿Ð°ÐºÐµÑ‚Ð°Ð¼Ð¸" + +msgid "Packet manager" +msgstr "Менеджер пакетів" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +msgid "Pan&scan" +msgstr "Pan&Scan" + +msgid "Parent directory" +msgstr "БатьківÑький каталог" + +msgid "Parental control" +msgstr "БатьківÑький контроль" + +msgid "Parental control services editor" +msgstr "Редактор ÑервіÑів батьківÑького контролю" + +msgid "Parental control setup" +msgstr "УÑтановки батьківÑького контролю" + +msgid "Parental control type" +msgstr "Тип батьківÑького контролю" + +msgid "Password" +msgstr "Пароль" + +msgid "Pause" +msgstr "Пауза" + +msgid "Pause movie at end" +msgstr "Пауза в кінці фільму" + +msgid "Pause playback" +msgstr "Пауза відтвореннÑ" + +msgid "Pauze/Continue playback" +msgstr "" + +msgid "Percentage left" +msgstr "ВідÑотки зліва" + +msgid "Percentage right" +msgstr "ВідÑотки Ñправа" + +msgid "Permanently delete all recordings in the trash can?" +msgstr "ОÑтаточне Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð²ÑÑ–Ñ… запиÑів в кошику?" + +msgid "Permanently remove all deleted items" +msgstr "ÐžÑ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ ÐºÐ¾ÑˆÐ¸ÐºÐ°" + +msgid "Persian" +msgstr "ПерÑидÑький" + +msgid "Phone number" +msgstr "Ðомер набору" + +msgid "PiP setup" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ PiP" + +msgid "Picon" +msgstr "Пікон" + +msgid "Picon and service name" +msgstr "Пікон Ñ– назва ÑервіÑу" + +msgid "Picture player" +msgstr "ПереглÑд фото" + +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Pillarbox" + +msgid "Pilot" +msgstr "Пілот" + +msgid "Play" +msgstr "Відтворити" + +msgid "Play DVD" +msgstr "Відтворити DVD" + +msgid "Play audio in background" +msgstr "Відтворити аудіо у фоновому режимі" + +msgid "Play audio-CD..." +msgstr "Відтворити аудіо-CD" + +msgid "Play back media files" +msgstr "Програвач медіа файлів" + +msgid "Play entry" +msgstr "Відтворити запиÑ" + +msgid "Play from next mark or playlist entry" +msgstr "Відтворити починаючи з наÑтупної мітки або запиÑу в плейлиÑÑ‚Ñ–" + +msgid "Play from previous mark or playlist entry" +msgstr "Відтворити починаючи з попередньою мітки або запиÑу в плейлиÑÑ‚Ñ–" + +msgid "Play music..." +msgstr "Відтворити музику..." + +msgid "Play next" +msgstr "Відтворити наÑтупне відео" + +msgid "Play next (return to movie list)" +msgstr "ÐаÑтупне відтв. (Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð´Ð¾ ÑпиÑку відео)" + +msgid "Play next (return to previous service)" +msgstr "ÐаÑтупне відтв. (Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð½Ð° попередній ÑервіÑ)" + +msgid "Play previous" +msgstr "Відігравати наÑтупне відео" + +msgid "Play recorded movies..." +msgstr "Відтворити запиÑане відео..." + +msgid "Please add titles to the compilation." +msgstr "Будь лаÑка додайте назви до компілÑції" + +msgid "Please change recording endtime" +msgstr "Будь лаÑка, помінÑйте Ñ‡Ð°Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу" + +msgid "Please check your network settings!" +msgstr "Будь лаÑка, перевірте Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼ÐµÑ€ÐµÐ¶Ñ–!" + +msgid "Please choose an extension..." +msgstr "Будь лаÑка, виберіть додаток..." + +msgid "" +"Please configure or verify your Nameservers by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Будь лаÑка, налаштуйте або перевірте конфігурацію DNS заповнивши потрібні дані\n" +"Коли будете готові - натиÑніть ОК Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ." + +msgid "" +"Please configure your internet connection by filling out the required values.\n" +"When you are ready press OK to continue." +msgstr "" +"Будь лаÑка, налаштуйте інтернет з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ð²ÑˆÐ¸ потрібні дані\n" +"Коли будете готові - натиÑніть ОК Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ." + +msgid "Please connect your receiver to the internet" +msgstr "Будь лаÑка, підключіть ваш реÑивер до інтернету" + +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Будь лаÑка, не змінюйте будь-Ñкі параметри, поки не знаєте що робите!" + +msgid "Please enter a name for the new bouquet" +msgstr "Будь лаÑка, введіть ім'Ñ Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ пакету" + +msgid "Please enter a name for the new marker" +msgstr "Будь лаÑка, введіть ім'Ñ Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ пакета" + +msgid "Please enter a new filename" +msgstr "Будь лаÑка, введіть нове ім'Ñ Ñ„Ð°Ð¹Ð»Ñƒ" + +msgid "Please enter filename (empty = use current date)" +msgstr "Будь лаÑка, введіть ім'Ñ Ñ„Ð°Ð¹Ð»Ñƒ (порожньо = поточна дата)" + +msgid "Please enter name of the new directory" +msgstr "Будь лаÑка, введіть ім'Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ каталогу" + +msgid "Please enter new name:" +msgstr "Будь лаÑка, введіть нове ім'Ñ:" + +msgid "Please enter the correct pin code" +msgstr "Будь лаÑка, введіть правильний PIN-код" + +msgid "Please enter the old PIN code" +msgstr "Будь лаÑка, введіть Ñтарий PIN-код" + +msgid "Please follow the instructions on the TV" +msgstr "Будь лаÑка, дотримуйтеÑÑŒ інÑтрукцій на ТБ" + +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "Будь лаÑка, зверніть увагу, що раніше обраний ноÑій недоÑтупний, и заміÑÑ‚ÑŒ нього буде викориÑтаний каталог за замовчуваннÑм" + +msgid "Please press OK to continue." +msgstr "Будь лаÑка, натиÑніть ОК Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ." + +msgid "Please select a default EPG type..." +msgstr "Будь лаÑка, виберіть тип EPG за замовчуваннÑм..." + +msgid "Please select a playlist to delete..." +msgstr "Будь лаÑка, виберіть плейлиÑÑ‚ Ð´Ð»Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ..." + +msgid "Please select a playlist..." +msgstr "Будь лаÑка, виберіть плейлиÑÑ‚..." + +msgid "Please select a sub service..." +msgstr "Будь лаÑка, виберіть підÑервіÑ..." + +msgid "Please select a subservice to record..." +msgstr "Будь лаÑка, виберіть підÑÐµÑ€Ð²Ñ–Ñ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу..." + +msgid "Please select a subservice..." +msgstr "Будь лаÑка, виберіть підÑервіÑ..." + +msgid "Please select an NFI file and press green key to flash!" +msgstr "Будь лаÑка, виберіть файл NFI, Ñ– натиÑніть зелену кнопку!" + +msgid "Please select medium to be scanned" +msgstr "Будь лаÑка, виберіть директорію Ð´Ð»Ñ ÑкануваннÑ" + +msgid "Please select medium to use as backup location" +msgstr "Будь лаÑка, виберіть директорію Ð´Ð»Ñ Ñ€ÐµÐ·ÐµÑ€Ð½Ð¾Ð³Ð¾ копіюваннÑ" + +msgid "Please select tag to filter..." +msgstr "Будь лаÑка, виберіть тег Ð´Ð»Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€Ð°..." + +msgid "Please select the movie path..." +msgstr "Будь лаÑка, виберіть шлÑÑ… Ð´Ð»Ñ Ð²Ñ–Ð´ÐµÐ¾ ..." + +msgid "" +"Please select the network interface that you want to use for your internet connection.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Будь лаÑка, виберіть мережевий Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ñкий буде викориÑтаний Ð´Ð»Ñ Ð²Ð¸Ñ…Ð¾Ð´Ñƒ в інтернет\n" +"\n" +"ÐатиÑніть ОК Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ." + +msgid "" +"Please select the wireless network that you want to connect to.\n" +"\n" +"Please press OK to continue." +msgstr "" +"Будь лаÑка, виберіть бездротову мережу Ð´Ð»Ñ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ.\n" +"\n" +"ÐатиÑніть ОК Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ." + +msgid "Please set up tuner A" +msgstr "Ðалаштуйте тюнер Ð" + +msgid "Please set up tuner B" +msgstr "Ðалаштуйте тюнер B" + +msgid "Please set up tuner C" +msgstr "Ðалаштуйте тюнер C" + +msgid "Please set up tuner D" +msgstr "Ðалаштуйте тюнер D" + +msgid "" +"Please use direction keys to move the PiP window.\n" +"Press Bouquet +/- to resize the window.\n" +"Press OK to go back to the TV mode or EXIT to cancel the moving." +msgstr "" +"Будь лаÑка, викориÑтовуйте клавіші навігації Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ ÐµÐºÑ€Ð°Ð½Ð° PiP.\n" +"Ðажмите Bouquet +/- Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ розмірів екрану.\n" +"ÐатиÑніть ОК Ð´Ð»Ñ Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ñ Ñ– переходу в режим TV або EXIT Ð´Ð»Ñ Ð²Ñ–Ð´Ð¼Ñ–Ð½Ð¸." + +msgid "Please use the UP and DOWN keys to select your language. Afterwards press the OK button." +msgstr "Будь лаÑка, викориÑтовуйте кнопки ВГОРУ Ñ– Ð’ÐИЗ Ð´Ð»Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ мови. далі натиÑніть ОК." + +msgid "Please wait" +msgstr "Очікуйте..." + +msgid "Please wait (downloading channel list)" +msgstr "Зачекайте (ЗавантажуєтьÑÑ ÑпиÑок каналів)" + +msgid "Please wait (downloading softcam)" +msgstr "Зачекайте (завантажуємо емулÑтор)" + +msgid "Please wait (updating packages)" +msgstr "Зачекайте (оновлюємо пакети)" + +msgid "Please wait for activation of your network configuration..." +msgstr "Зачекайте, йде Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ñ–Ñ Ð²Ð°ÑˆÐ¾Ñ— мережевої конфігурації ..." + +msgid "Please wait while scanning is in progress..." +msgstr "Будь лаÑка почекайте, поки йде ÑкануваннÑ..." + +msgid "Please wait while we configure your network..." +msgstr "Будь лаÑка почекайте, поки ми налаштуємо мережу ..." + +msgid "Please wait while we prepare your network interfaces..." +msgstr "Зачекайте, підготовка мережевих інтерфейÑів..." + +msgid "Please wait while we test your network..." +msgstr "Зачекайте поки йде перевірка вашої мережі..." + +msgid "Please wait while your network is restarting..." +msgstr "Будь лаÑка почекайте, поки йде Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¼ÐµÑ€ÐµÐ¶Ñ–..." + +msgid "Please wait..." +msgstr "Будь лаÑка зачекайте..." + +msgid "Please wait... Loading list..." +msgstr "Будь лаÑка зачекайте ... ЗавантажуєтьÑÑ ÑпиÑок" + +msgid "Plugin browser" +msgstr "Браузер плагінів" + +msgid "Plugin manager activity information" +msgstr "Менеджер плагинов - ИнформаціÑ" + +msgid "Plugin manager help" +msgstr "Менеджер плагінів - допомога" + +msgid "Plugins" +msgstr "Плагіни" + +msgid "Polarisation" +msgstr "ПолÑризаціÑ" + +msgid "Polarisation:" +msgstr "" + +msgid "Polarization" +msgstr "ПолÑризаціÑ" + +msgid "Polish" +msgstr "ПольÑкий" + +msgid "Port A" +msgstr "Порт Ð" + +msgid "Port B" +msgstr "Порт B" + +msgid "Port C" +msgstr "Порт C" + +msgid "Port D" +msgstr "Порт D" + +msgid "Portuguese" +msgstr "ПортугальÑький" + +msgid "Position of completed timers in timerlist" +msgstr "ÐŸÐ¾Ð·Ð¸Ñ†Ñ–Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ… таймерів в ÑпиÑку таймерів" + +msgid "Position stored at index" +msgstr "Збережений номер позиції" + +msgid "Positioner" +msgstr "Позіционер" + +msgid "Positioner (selecting satellites)" +msgstr "" + +msgid "Positioner Setup" +msgstr "" + +msgid "Positioner setup" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð·Ñ–Ñ†Ð¸Ð¾Ð½ÐµÑ€Ñƒ" + +msgid "Power threshold in mA" +msgstr "Поріг Ñтруму в mA" + +msgid "Predefined transponder" +msgstr "Зумовлений транÑпондер" + +msgid "Prefer AC3 track" +msgstr "Пріоритет Ðудіо доріжки AC3" + +msgid "Prefer AC3+ track" +msgstr "" + +msgid "Prefer audio track stored by service" +msgstr "Пріоритетна Ðудіо доріжка ÑервіÑу" + +msgid "Prefer graphical DVB subtitles" +msgstr "Пріоритет графічних DVB Ñубтитрів" + +msgid "Prefer subtitles for hearing impaired" +msgstr "Пріоритет Ñубтитрів Ð´Ð»Ñ Ð»ÑŽÐ´ÐµÐ¹ з порушеннÑми Ñлуху" + +msgid "Prefer subtitles stored by service" +msgstr "Пріоритет Ñубтитрів, збережених ÑервіÑом" + +msgid "Preferred tuner" +msgstr "Пріоритетний тюнер" + +msgid "Preferred tuner for recordings" +msgstr "ВіддаєтьÑÑ Ð¿ÐµÑ€ÐµÐ²Ð°Ð³Ð° тюнеру Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу" + +msgid "Prepare another USB stick for image flashing" +msgstr "Підготовка другої USB-флешки Ð´Ð»Ñ Ñ–Ð½ÑталÑції ÑиÑтеми" + +msgid "Preparing... Please wait" +msgstr "Підготовка ... Будь лаÑка, почекайте" + +msgid "Press '0' to toggle PiP mode" +msgstr "" + +msgid "Press INFO on your remote control for additional information." +msgstr "ÐатиÑніть кнопку INFO на пульті Ð´Ð»Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— інформації." + +msgid "Press MENU on your remote control for additional options." +msgstr "ÐатиÑніть кнопку MENU на пульті Ð´Ð»Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— інформації." + +msgid "Press OK on your remote control to continue." +msgstr "ÐатиÑніть OK на пульті, щоб продовжити." + +msgid "Press OK to activate the selected skin." +msgstr "ÐатиÑніть OK Ð´Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ñ–Ñ— вибраного Ñкіна." + +msgid "Press OK to activate the settings." +msgstr "ÐатиÑніть OK Ð´Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ñ–Ñ— налаштувань." + +msgid "Press OK to edit the settings." +msgstr "ÐатиÑніть OK, щоб змінити наÑтройки." + +#, python-format +msgid "Press OK to get further details for %s" +msgstr "ÐатиÑніть ОК, щоб отримати детальну інформацію Ð´Ð»Ñ %s" + +msgid "Press OK to scan" +msgstr "ÐатиÑніть OK Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ." + +msgid "Press OK to select a provider." +msgstr "ÐатиÑніть ОК Ð´Ð»Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ провайдера." + +msgid "Press OK to select satellites" +msgstr "" + +msgid "Press OK to select/deselect a CAId." +msgstr "ÐатиÑніть OK, щоб вибрати/відмінити CAId." + +msgid "Press OK to start the scan" +msgstr "ÐатиÑніть OK Ð´Ð»Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ пошуку." + +msgid "Press OK to toggle the selection" +msgstr "" + +msgid "Press OK to toggle the selection." +msgstr "ÐатиÑніть ОК Ð´Ð»Ñ Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ ÑкаÑуваннÑ." + +msgid "Press yellow to set this interface as default interface." +msgstr "УÑтановка інтерфейÑу за замовчуваннÑм - жовта кнопка." + +msgctxt "button label, 'previous screen'" +msgid "Prev" +msgstr "" + +msgid "Preview" +msgstr "Прев'ÑŽ" + +msgid "Preview menu" +msgstr "Меню прев'ÑŽ" + +msgid "Preview selected channel" +msgstr "Прев'ÑŽ обраного каналу" + +msgid "Primary DNS" +msgstr "Первинний DNS" + +msgid "Priority" +msgstr "ЧерговіÑÑ‚ÑŒ" + +msgid "Process" +msgstr "ПроцеÑ" + +msgid "Progress" +msgstr "ПрогреÑ" + +msgid "Progress bar left" +msgstr "прогреÑ-бар ліворуч" + +msgid "Progress bar right" +msgstr "прогреÑ-бар праворуч" + +msgid "Properties of current title" +msgstr "ВлаÑтивоÑÑ‚Ñ– поточного назви" + +msgid "Protect services" +msgstr "ЗахиÑтити ÑервіÑи" + +msgid "Protect setup" +msgstr "ЗахиÑтити уÑтановки" + +msgid "Provider" +msgstr "Провайдер" + +msgid "Provider to scan" +msgstr "Провайдер Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ" + +msgid "Providers" +msgstr "Провайдери" + +msgid "Put TV in standby" +msgstr "Перехід ТБ в Режим ОчікуваннÑ" + +msgid "Put receiver in standby" +msgstr "Перехід реÑивера в Режим ОчікуваннÑ" + +msgid "Python frontend for /tmp/mmi.socket" +msgstr "Python Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð´Ð»Ñ /tmp/mmi.socket" + +msgid "Quick" +msgstr "Швидко" + +msgid "Quick zap" +msgstr "Швидке перемиканнÑ" + +msgid "RF output" +msgstr "RF вихід" + +msgid "RGB" +msgstr "RGB" + +msgid "Radio" +msgstr "Радіо" + +msgid "Ram disk" +msgstr "Ram диÑк" + +msgid "Random" +msgstr "випадково" + +#, python-format +msgid "Rating defined by broadcaster - %d" +msgstr "Рейтинг визначено - %d" + +msgid "Rating undefined" +msgstr "Рейтинг невизначений" + +msgid "Really close without saving settings?" +msgstr "ДійÑно вийти без Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½ÑŒ??" + +msgid "Really delete done timers?" +msgstr "ДійÑно видалити виконані таймери?" + +msgid "Really exit the subservices quickzap?" +msgstr "ДійÑно вийти з меню ÑубÑервіÑов?" + +msgid "Really reboot now?" +msgstr "ДійÑно вийти з меню ÑубÑервіÑов?" + +msgid "Really restart now?" +msgstr "ДійÑно реÑтарт зараз?" + +msgid "Really shutdown now?" +msgstr "ДійÑно вимкнути зараз?" + +msgid "Really upgrade the frontprocessor and reboot now?" +msgstr "Оновити фронтпроцеÑÑор Ñ– перезавантажити зараз?" + +msgid "Really upgrade your settop box and reboot now?" +msgstr "Оновити ваш реÑивер Ñ– перезавантажити зараз?" + +msgid "Reboot" +msgstr "ПерезавантаженнÑ" + +msgid "Rec" +msgstr "ЗапиÑ" + +msgid "Reception settings" +msgstr "" + +msgid "Record" +msgstr "ЗапиÑ" + +#, python-format +msgid "Record time limited due to conflicting timer %s" +msgstr "Ð§Ð°Ñ Ð·Ð°Ð¿Ð¸Ñу обмежений через конфлікт таймера %s" + +msgid "Recorded files..." +msgstr "ЗапиÑанні файли..." + +msgid "Recording" +msgstr "ЗапиÑ" + +msgid "Recording in progress" +msgstr "Іде запиÑ" + +msgid "Recording paths" +msgstr "МіÑце запиÑів, таймшифта" + +msgid "Recording type" +msgstr "Тип запиÑу" + +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "Ð—Ð°Ð¿Ð¸Ñ (іи) йде або розпочнетьÑÑ Ð² найближчі кілька Ñекунд!" + +msgid "Recordings" +msgstr "ЗапиÑи" + +msgid "Recordings always have priority" +msgstr "ЗапиÑи завжди мають пріоритет" + +msgid "Red button..." +msgstr "Червона кнопка..." + +msgid "Reenter new PIN" +msgstr "Повторіть новий PIN-код" + +msgid "Refresh rate" +msgstr "ЧаÑтота оновленнÑ" + +msgid "Refresh rate selection." +msgstr "Вибір чаÑтоти оновленнÑ" + +msgid "Regard deep standby as standby" +msgstr "Вважати Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ñк Режим ОчікуваннÑ" + +msgid "Relative" +msgstr "ВідноÑна" + +msgid "Reload" +msgstr "Оновити" + +msgid "Reload black-/white lists" +msgstr "Оновити чорний/білий ÑпиÑок" + +msgid "Reloading bouquets and services..." +msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ„Ð°Ð²Ð¾Ñ€Ð¸Ñ‚Ñ–Ð² Ñ– ÑервіÑів...." + +msgid "Remember last service in PiP" +msgstr "" + +msgid "Remember service PIN" +msgstr "Пам'Ñтати PIN-код ÑервіÑу" + +msgid "Remember these settings for each folder" +msgstr "Пам'Ñтати ці Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ñ— папки" + +msgid "Reminder, you have chosen to save timeshift file." +msgstr "Ðагадуємо, ви вибрали Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ timeshift." + +msgid "Remote control type" +msgstr "Тип пульта ДУ" + +msgid "Removal has completed." +msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¾." + +msgid "Remove" +msgstr "ВидаленнÑ" + +msgid "Remove a mark" +msgstr "Удалить метку" + +msgid "Remove a nameserver entry" +msgstr "Видалити дані DNS" + +msgid "Remove bookmark" +msgstr "Видалити закладку" + +msgid "Remove completed timers after (days)" +msgstr "Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ… таймерів через (в днÑÑ…)" + +msgid "Remove currently selected title" +msgstr "Видалити вибраний заголовок" + +msgid "Remove items from trash can after (days)" +msgstr "ВидалÑти запиÑи з кошика через (в днÑÑ…)" + +msgid "Remove plugins" +msgstr "Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¿Ð»Ð°Ð³Ñ–Ð½Ñ–Ð²" + +msgid "Remove title" +msgstr "Видалити опиÑ" + +msgid "Removing" +msgstr "ВидаленнÑ" + +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Помилка Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ %s каталогу. (Можливо він не пуÑтий)" + +msgid "Removing partition table" +msgstr "Ðе вдалоÑÑ Ñтворити розділ" + +msgid "Rename" +msgstr "Перейменувати" + +msgid "Repeat" +msgstr "ПовтореннÑ" + +msgid "Repeat type" +msgstr "Тип повтореннÑ" + +msgid "Repeating event currently recording... What do you want to do?" +msgstr "Повторювальна Ð¿Ð¾Ð´Ñ–Ñ Ð·Ð°Ñ€Ð°Ð· запиÑуєтьÑÑ ... Що ви хочете зробити?" + +msgid "Repeats" +msgstr "ПовтореннÑ" + +msgid "Require authentication for http streams" +msgstr "" + +msgid "Required medium type:" +msgstr "Ðеобхідний тип ноÑÑ–Ñ:" + +msgid "Rereading partition table" +msgstr "Ðе вдалоÑÑ Ñтворити розділ" + +msgid "Reserved" +msgstr "Зарезервовано" + +msgid "Reset" +msgstr "СкиданнÑ" + +msgid "Reset and renumerate title names" +msgstr "Скинути Ñ– перенумерувати імена назв" + +msgid "Reset playback position" +msgstr "Ð¡ÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ— відтвореннÑ" + +msgid "Reset video enhancement settings to system defaults?" +msgstr "Ð¡ÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½ÑŒ відео за замовчуваннÑм?" + +msgid "Reset video enhancement settings to your last configuration?" +msgstr "Ð¡ÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½ÑŒ відео до оÑтанньої конфігурації?" + +msgid "Resolution" +msgstr "Роздільна здатніÑÑ‚ÑŒ" + +msgid "Restart" +msgstr "ПерезавантаженнÑ" + +msgid "Restart GUI now?" +msgstr "РеÑтарт GUI почати?" + +msgid "Restart enigma" +msgstr "РеÑтарт E2" + +msgid "Restart network" +msgstr "ПерезапуÑтити мережу" + +msgid "Restart test" +msgstr "ПерезапуÑтити теÑÑ‚" + +msgid "Restart your network connection and interfaces.\n" +msgstr "ÐŸÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¼ÐµÑ€ÐµÐ¶ÐµÐ²Ð¸Ñ… підключень Ñ– інтерфейÑів.\n" + +msgid "Restore" +msgstr "Відновити" + +msgid "Restore backups" +msgstr "Ð’Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ€ÐµÐ·Ñ€Ð²Ð½Ð¸Ñ… копій" + +msgid "Restore is running..." +msgstr "ВиконуєтьÑÑ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ..." + +msgid "Restore system settings" +msgstr "Ð’Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÑиÑтемних налаштувань" + +msgid "Restoring..." +msgstr "ВідновленнÑ..." + +msgid "Resume from last position" +msgstr "Відновити з оÑтанньої позиції" + +#, python-format +msgid "Resume position at %s" +msgstr "Поточна Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ %s" + +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Ð’Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ" + +msgid "Return to movie list" +msgstr "ПовернутиÑÑ Ð´Ð¾ ÑпиÑку фільмів" + +msgid "Return to previous service" +msgstr "ПовернутиÑÑ Ð½Ð° попередній ÑервіÑ" + +msgid "Reverse bouquet buttons" +msgstr "ПомінÑти міÑцÑми кнопку" + +msgid "Reverse list" +msgstr "" + +msgid "Rewind speeds" +msgstr "ШвидкіÑÑ‚ÑŒ Ð¿ÐµÑ€ÐµÐ¼Ð¾Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð°Ð·Ð°Ð´" + +msgid "Rewrap teletext subtitles" +msgstr "Перепакувати телетекÑÑ‚ Ñубтитрів" + +msgid "Right" +msgstr "Правий" + +msgid "Right from servicename" +msgstr "Праворуч від назви ÑервіÑу" + +msgid "Roll-off" +msgstr "Roll-off фактор" + +msgid "Romanian" +msgstr "РумунÑький" + +msgid "Root directory" +msgstr "Кореневий каталог" + +msgid "Rotor step position:" +msgstr "Крок позиції ротора:" + +msgid "Rotor turning speed" +msgstr "ШвидкіÑÑ‚ÑŒ Ð¾Ð±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Ð¼Ð¾Ñ‚Ð¾Ñ€Ð°" + +msgid "Round start time on" +msgstr "Круглий Ñ‡Ð°Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ на" + +msgid "Russian" +msgstr "РоÑійÑький" + +msgid "S-Video" +msgstr "S-Video" + +msgid "SID" +msgstr "SID" + +msgid "SINGLE LAYER DVD" +msgstr "Одношаровий DVD" + +msgid "SNR" +msgstr "SNR" + +msgid "SNR:" +msgstr "SNR:" + +msgid "SSID:" +msgstr "SSID:" + +msgid "Same resolution as skin" +msgstr "Роздільна здатніÑÑ‚ÑŒ Ñк в Ñкін" + +msgid "Sat" +msgstr "Сб" + +msgid "Satellite" +msgstr "Супутник" + +msgid "Satellite dish setup" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñупутн. обладнаннÑ" + +msgid "Satellite equipment" +msgstr "Супутникове обладнаннÑ" + +msgid "Satellite equipment setup" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñупутн. обладнаннÑ" + +msgid "Satellite longitude:" +msgstr "Довгота Ñупутника:" + +msgid "Satellites" +msgstr "Супутники" + +msgid "Satfinder" +msgstr "Пошук Ñупутника" + +msgid "Sats" +msgstr "Супутники" + +msgid "Saturation" +msgstr "ÐаÑиченіÑÑ‚ÑŒ" + +msgid "Saturday" +msgstr "Субота" + +msgid "Save" +msgstr "Зберегти" + +msgid "Save playlist" +msgstr "Зберегти плейлиÑÑ‚" + +msgid "Save timeshift file" +msgstr "Зберегти файл timeshift" + +msgid "Save timeshift file in movie directory" +msgstr "Зберегти файл timeshift в каталог movie" + +msgid "Scaler sharpness" +msgstr "ЧіткіÑÑ‚ÑŒ" + +msgid "Scaling mode" +msgstr "Режим маÑштабуваннÑ" + +msgid "Scan" +msgstr "СкануваннÑ" + +msgid "Scan " +msgstr "Ð¡ÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ " + +#. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#, python-format +msgid "Scan %s" +msgstr "Ð¡ÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ %s" + +#. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#, python-format +msgid "Scan %s band" +msgstr "Діапазон %s СкануваннÑ" + +msgid "Scan additional SR" +msgstr "Сканувати додатково SR" + +msgid "Scan files..." +msgstr "Сканувати файли..." + +msgid "Scan wireless networks" +msgstr "Сканувати бездротові мережі" + +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "Ð¡ÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼ÐµÑ€ÐµÐ¶Ñ– Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ бездротових точок доÑтупу Ñ– Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ вибраного приÑтрою.\n" + +#, python-format +msgid "Scanning %s..." +msgstr "Ð¡ÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ %s..." + +#. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#, python-format +msgid "Scanning - %d%% completed" +msgid_plural "Scanning - %d%% completed" +msgstr[0] "Ð¡ÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ - %d%% завершено" +msgstr[1] "Ð¡ÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ - %d%% завершено" +msgstr[2] "Ð¡ÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ - %d%% завершено" + +#, python-format +msgid "Scanning completed, %d channel found" +msgid_plural "Scanning completed, %d channels found" +msgstr[0] "Ð¡ÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¾, %d канал знайдено" +msgstr[1] "Ð¡ÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¾, %d канала знайдено" +msgstr[2] "Ð¡ÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¾, %d каналів знайдено" + +msgid "Scanning failed!" +msgstr "Помилка ÑкануваннÑ!" + +msgid "Scanning..." +msgstr "СкануваннÑ..." + +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "Сканувати lamedb по Ñупутниках з підключеним мотопідвіÑом" + +msgid "Search east" +msgstr "Пошук на Ñході" + +msgid "Search west" +msgstr "Пошук на заході" + +msgid "Searching" +msgstr "Пошук" + +msgid "Searching east ..." +msgstr "Пошук на Ñході ..." + +msgid "Searching for available updates. Please wait..." +msgstr "Пошук доÑтупних оновлень. Будь лаÑка зачекайте ..." + +msgid "Searching for new installed or removed packages. Please wait..." +msgstr "Пошук нових пакетів, вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ видаленнÑ. Будь лаÑка зачекайте ..." + +msgid "Searching west ..." +msgstr "Пошук на заході ..." + +msgid "Second cable of motorized LNB" +msgstr "" + +msgid "Secondary DNS" +msgstr "Вторинний DNS" + +msgid "Seek" +msgstr "Перемотка" + +msgid "Seek backward" +msgstr "Перемотка назад" + +msgid "Seek backward (enter time)" +msgstr "Перемотати назад (введіть чаÑ)" + +msgid "Seek forward" +msgstr "Перемотка вперед" + +msgid "Seek forward (enter time)" +msgstr "Перемотати вперед (введіть чаÑ)" + +msgid "Select" +msgstr "Вибрати" + +msgid "Select CAId" +msgstr "Вибір CAId" + +msgid "Select HDD" +msgstr "Вибрати HDD" + +msgid "Select a bouquet" +msgstr "Вибрати фаворит (букет)" + +msgid "Select a movie" +msgstr "Вибрати відео" + +msgid "Select a network adapter" +msgstr "Вибір мережевого адаптера" + +msgid "Select a skin" +msgstr "Вибрати Ñкін" + +msgid "Select a tuner" +msgstr "Вибрати тюнер" + +msgid "Select a wireless network" +msgstr "Виберіть бездротову мережу" + +msgid "Select action" +msgstr "" + +#, python-format +msgid "Select action for timer %s:" +msgstr "" + +msgid "Select all" +msgstr "" + +msgid "Select an image to be downloaded" +msgstr "Виберіть прошивку Ð´Ð»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ" + +msgid "Select audio track" +msgstr "Вибір Ðудіо доріжки" + +msgid "Select backup files" +msgstr "Вибрати файли бекапа" + +msgid "Select backup location" +msgstr "Вибрати Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÐµÐºÐ°Ð¿Ð°" + +msgid "Select channel to record from" +msgstr "Вибрати канал Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу з" + +msgid "Select copy destination for:" +msgstr "Вибір міÑÑ†Ñ Ð´Ð»Ñ ÐºÐ¾Ð¿Ñ–Ñ—:" + +msgid "Select default EPG type..." +msgstr "Вибір типу EPG за замовчуваннÑм..." + +msgid "Select desired image from feed list" +msgstr "Оберіть бажаний імідж зі ÑпиÑку" + +msgid "Select destination for:" +msgstr "Вибір міÑÑ†Ñ Ð´Ð»Ñ:" + +msgid "Select files for backup." +msgstr "Вибір файлів Ð´Ð»Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð³Ð¾ копіюваннÑ." + +msgid "Select files/folders to backup" +msgstr "Вибір файлів/папок Ð´Ð»Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð³Ð¾ копіюваннÑ." + +msgid "Select input device" +msgstr "Виберіть приÑтрої введеннÑ" + +msgid "Select input device." +msgstr "Вибір приÑтрою введеннÑ" + +msgid "Select interface" +msgstr "Виберіть інтерфейÑ" + +msgid "Select location" +msgstr "Вибір розташуваннÑ" + +msgid "Select movie" +msgstr "Вибір відео" + +msgid "Select provider to add..." +msgstr "Вибір провайдера Ð´Ð»Ñ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ..." + +msgid "Select refresh rate" +msgstr "Виберіть чаÑтоту оновленнÑ" + +msgid "Select satellites" +msgstr "" + +msgid "Select service to add..." +msgstr "Вибір ÑервіÑу Ð´Ð»Ñ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ..." + +msgid "Select sort method:" +msgstr "" + +msgid "Select target folder" +msgstr "Вибрати цільову папку" + +msgid "Select the movie path" +msgstr "Вибрати шлÑÑ… до відео" + +msgid "Select upgrade source" +msgstr "Вибір джерела оновленнÑ" + +msgid "Select upgrade source to edit." +msgstr "Вибір джерела Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ." + +msgid "Select video input with up/down buttons" +msgstr "Виберіть відеовхід кнопками вгору/вниз" + +msgid "Select video mode" +msgstr "Виберіть відеорежим" + +msgid "Select wireless network" +msgstr "Виберіть бездротову мережу" + +msgid "Select your provider, and press OK to start the scan" +msgstr "Виберіть провайдера Ñ– натиÑніть ОК Ð´Ð»Ñ ÑкануваннÑ" + +msgid "Selecting satellites 1 (USALS)" +msgstr "" + +msgid "Selecting satellites 2 (USALS)" +msgstr "" + +msgid "Send DiSEqC only on satellite change" +msgstr "ÐадіÑлати DiSEqC тільки при зміні Ñупутника" + +msgid "Separate titles with a main menu" +msgstr "Окремі розділи в головному меню" + +msgid "Sequence repeat" +msgstr "ПоÑлідовніÑÑ‚ÑŒ повтореннÑ" + +msgid "Serbian" +msgstr "СербÑький" + +msgid "Service" +msgstr "СервіÑ" + +msgid "Service has been added to the favourites." +msgstr "Ð¡ÐµÑ€Ð²Ñ–Ñ Ð±ÑƒÐ² доданий в фаворити." + +msgid "Service has been added to the selected bouquet." +msgstr "Ð¡ÐµÑ€Ð²Ñ–Ñ Ð±ÑƒÐ² доданий в обраний пакет." + +msgid "Service info" +msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ ÑервіÑ" + +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"ÐедійÑний ÑервіÑ!\n" +"(Тайм-аут Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ PMT)" + +msgid "Service name" +msgstr "Ðазва ÑервіÑу" + +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Ð¡ÐµÑ€Ð²Ñ–Ñ Ð½Ðµ знайдений!\n" +"(SID не найден в PAT)" + +msgid "Service reference" +msgstr "РеференÑ" + +msgid "Service scan" +msgstr "Ð¡ÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ ÑервіÑів" + +msgid "Service searching" +msgstr "Пошук ÑервіÑів" + +msgid "Service title mode" +msgstr "Режим Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ ÑервиÑа" + +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "" +"Ð¡ÐµÑ€Ð²Ñ–Ñ Ð½Ðµ доÑтупний!\n" +"Перевірте Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚ÑŽÐ½ÐµÑ€Ð°!" + +msgid "Services" +msgstr "СервиÑи" + +msgid "Set default" +msgstr "" + +msgid "Set end time" +msgstr "Ð’Ñтановити Ñ‡Ð°Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ" + +msgid "Set fixed" +msgstr "ФікÑувати" + +msgid "Set fps for external subtitles" +msgstr "Ðабір кадрів в Ñекунду Ð´Ð»Ñ Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ–Ñ… Ñубтитрів" + +msgid "Set interface as default Interface" +msgstr "Ð’Ñтановити Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ñк дефолтний" + +msgid "Set limits" +msgstr "Ðабір обмежень" + +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "Ð’Ñтановіть тип Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€ÐµÑу в меню вибору каналів." + +msgid "Set time window to 1 hour" +msgstr "УÑтановка чаÑу вікна на 1 годину" + +msgid "Set time window to 2 hours" +msgstr "УÑтановка чаÑу вікна на 2 години" + +msgid "Set time window to 3 hours" +msgstr "УÑтановка чаÑу вікна на 3 години" + +msgid "Set time window to 4 hours" +msgstr "УÑтановка чаÑу вікна на4 години" + +msgid "Set time window to 5 hours" +msgstr "УÑтановка чаÑу вікна на 5 годин" + +msgid "Set time window to 6 hours" +msgstr "УÑтановка чаÑу вікна на 6 годин" + +msgid "Set voltage and 22KHz" +msgstr "Ð’Ñтановити напругу и 22КГц" + +msgid "Settings" +msgstr "ÐалаштуваннÑ" + +msgid "Setup" +msgstr "ÐалаштуваннÑ" + +msgid "Setup menu" +msgstr "Меню налаштувань" + +msgid "Setup mode" +msgstr "Режим налаштувань" + +msgid "Setup your positioner" +msgstr "ÐаÑтройки вашего позиционера" + +msgid "Setup your satellite equipment" +msgstr "ÐаÑтройки Ñпутникового оборудованиÑ" + +#, python-format +msgid "Shall the USB stick wizard proceed and program the image file %s into flash memory?" +msgstr "Чи повинен майÑтер USB-флеша вÑтановити імідж %s у внутрішню флеш-пам'ÑÑ‚ÑŒ?" + +msgid "Sharpness" +msgstr "РізкіÑÑ‚ÑŒ" + +msgid "Short filenames" +msgstr "Коротка назва" + +msgid "Show EIT now/next in infobar" +msgstr "Показати EIT зараз/далі в інфобарі" + +msgid "Show EPG for current channel..." +msgstr "Показати EPG поточного каналу..." + +msgid "Show EPG..." +msgstr "Показати EPG..." + +msgid "Show Games show" +msgstr "Показ ігрових шоу" + +msgid "Show SNR percentage instead of dB value" +msgstr "Показати відÑотки SNR заміÑÑ‚ÑŒ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ dB в інфобарі" + +msgid "Show VCR scart on main menu" +msgstr "Показати 'VCR scart' в головному меню" + +msgid "Show WLAN status" +msgstr "Показати Ñтан WLAN" + +msgid "Show animation while busy" +msgstr "Показувати анімацію (Ñпиннер), коли ÑиÑтема зайнÑта" + +msgid "Show background in radio mode" +msgstr "Показати фонову заÑтавку в режимі радіо" + +msgid "Show bouquet selection menu" +msgstr "Показати меню вибору фаворитів" + +msgid "Show busy indicator when the system is busy." +msgstr "Показувати індикатор на екрані при зайнÑтоÑÑ‚Ñ– ÑиÑтеми." + +msgid "Show channel numbers in channel selection" +msgstr "Показати номер каналу в Ñелекторі каналів" + +msgid "Show columns" +msgstr "" + +msgid "Show crypto icons" +msgstr "" + +msgid "Show crypto info in infobar" +msgstr "Показати крипто дані емулÑтора в інфобарі" + +msgid "Show detailed event info" +msgstr "Показати детально інфо події" + +msgid "Show event details" +msgstr "Показати деталі події" + +msgid "Show event-progress in channel selection" +msgstr "Вид прогреÑу події в Ñелекторі каналів" + +msgid "Show extended description" +msgstr "Показати розширений опиÑ" + +msgid "Show extensions..." +msgstr "Показати доповненнÑ..." + +msgid "Show icon for new/unseen items" +msgstr "Показ іконки Ð´Ð»Ñ Ð½Ð¾Ð²Ð¸Ñ…/невидимих ​​елементів" + +msgid "Show in extensions menu" +msgstr "Показати плагіни в меню доповнень" + +msgid "Show info" +msgstr "Показати інфо" + +msgid "Show info line" +msgstr "показати інфолінію" + +msgid "Show infobar on channel change" +msgstr "Показати інфобар при зміні каналів" + +msgid "Show infobar on event change" +msgstr "Показати інфобар при зміні подій" + +msgid "Show infobar on skip forward/backward" +msgstr "Показати інфобар при перемотуванню вперед/назад" + +msgid "Show latest commits on sourceforge" +msgstr "" + +msgid "Show message when recording starts" +msgstr "Показати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸ початку запиÑу" + +msgid "Show movie lengths in movielist" +msgstr "Показати триваліÑÑ‚ÑŒ відео в ÑпиÑку відео" + +msgid "Show multi channel EPG" +msgstr "" + +msgid "Show picons in channel list" +msgstr "Показати Пікони в ÑпиÑку каналів" + +msgid "Show positioner movement" +msgstr "Показати рух позіционеру" + +msgid "Show screensaver" +msgstr "ЗапуÑтити зберігач екрану через" + +msgid "Show second infobar" +msgstr "Показати другий інфобар" + +msgid "Show service type icons" +msgstr "Показати іконки типу ÑервіÑу" + +msgid "Show services beginning with" +msgstr "Показувати ÑервіÑи що починаютьÑÑ Ð·" + +msgid "Show shutdown menu" +msgstr "показати меню вимкненнÑ" + +msgid "Show single service EPG" +msgstr "" + +msgid "Show status icons in Movielist" +msgstr "Показати іконку ÑтатуÑу в ÑпиÑку відео" + +msgid "Show status icons in movie list" +msgstr "Показати іконку ÑтатуÑу в ÑпиÑку відео" + +msgid "Show status icons in movielist" +msgstr "Показати іконку ÑтатуÑу в ÑпиÑку відео" + +msgid "Show tag menu" +msgstr "Показати меню тегів" + +msgid "Show the radio player..." +msgstr "Перейти на радіо плеєр..." + +msgid "Show the tv player..." +msgstr "Перейти на тв плеєр..." + +msgid "Show warning when timeshift is stopped" +msgstr "Показати Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸ зупинці timeshift" + +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Показує Ñтан вашого бездротового з'єднаннÑ.\n" + +msgid "Shuffle playlist" +msgstr "Перемішати плейлиÑÑ‚" + +msgid "Shutdown" +msgstr "Виключити" + +msgid "Shutdown when in Standby" +msgstr "Ð’Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð² режимі очікуваннÑ" + +msgid "Side by side" +msgstr "Ліво Ñ– право" + +msgid "Signal OK, proceeding" +msgstr "Сигнал ОК, в процеÑÑ–" + +msgid "Signal quality" +msgstr "ЯкіÑÑ‚ÑŒ Ñигналу" + +msgid "Signal strength:" +msgstr "Сила Ñигналу:" + +msgid "Signal: " +msgstr "Сигнал: " + +msgid "Similar" +msgstr "Ðналогічний" + +msgid "Similar broadcasts:" +msgstr "Ðналогічні передачі:" + +msgid "Simple" +msgstr "ПроÑтий" + +msgid "Simple titleset (compatibility for legacy players)" +msgstr "ПроÑтий заголовок (ÑуміÑніÑÑ‚ÑŒ Ñ DVD плеєрами)" + +msgid "Single" +msgstr "Одиночний" + +msgid "Single EPG" +msgstr "Одиночне EPG" + +msgid "Single satellite" +msgstr "Один Ñупутник" + +msgid "Single step (GOP)" +msgstr "Один крок (GOP)" + +msgid "Single transponder" +msgstr "Один транÑпондер" + +msgid "Site latitude" +msgstr "Широта по Ñайту" + +msgid "Site longitude" +msgstr "Довгота по Ñайту" + +msgid "Skin" +msgstr "Вибір графічної оболочки" + +msgid "Skins" +msgstr "Графічні оболочки" + +msgid "Skip empty services" +msgstr "ПропуÑкати порожні ÑервіÑи" + +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "ПропуÑтити перевірку інтернет з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ (відключає автоматичну уÑтановку пакетів)" + +msgid "Sleep timer" +msgstr "Таймер Ñну" + +msgid "SleepTimer Configuration" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð°Ð¹Ð¼ÐµÑ€Ð° Ñну" + +msgid "Sleeptimer" +msgstr "Таймер Ñну" + +msgid "Slide picture in loop" +msgstr "Циклічний показ Ñлайдів" + +msgid "Slide show interval (sec.)" +msgstr "Інтервал Ñлайдшоу (Ñек.)" + +#, python-format +msgid "Slot %d" +msgstr "Слот %d" + +msgid "Slovak" +msgstr "Словацький" + +msgid "Slovenian" +msgstr "СловенÑький" + +msgid "Slow" +msgstr "Повільно" + +msgid "Slow motion speeds" +msgstr "Ðизька швидкіÑÑ‚ÑŒ" + +msgid "Small progress" +msgstr "Маленький прогреÑÑ" + +msgid "Social/Political/Economics" +msgstr "Соціальне/Політика/Економіка" + +msgid "SoftCam / CI" +msgstr "ЕМУ менеджер / CI" + +msgid "Softcam type" +msgstr "Тип емулÑтора" + +msgid "Software" +msgstr "Софт" + +msgid "Software management" +msgstr "Менеджер ÑƒÐ¿Ñ€Ð°Ð²Ñ–Ð½Ð½Ñ Ñофтом" + +msgid "Software manager setup" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ€Ð° Ñофта" + +msgid "Software restore" +msgstr "Ð’Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñофта" + +msgid "Software update" +msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñофта" + +msgid "Softwaremanager information" +msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ€Ð° Ñофта" + +msgid "Some plugins are not available:\n" +msgstr "ДеÑкі плагіни недоÑтупні:\n" + +#, python-format +msgid "Sorry, %s has not been installed!" +msgstr "Вибачте, %s не вÑтановлений!" + +msgid "Sorry, deleting directories can (for now) only be done through the trash can." +msgstr "Вибачте, Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ñ–Ð¹ може (поки) бути зроблено тільки через кошик," + +msgid "Sorry, no backups found!" +msgstr "Ðе знайдені резервні копії!" + +msgid "Sorry, no details available!" +msgstr "Вибачте, немає детального опиÑу!" + +msgid "" +"Sorry, your backup destination is not writeable.\n" +"Please select a different one." +msgstr "" +"МіÑце Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ðµ доÑтупно до запиÑу.\n" +"Будь лаÑка, виберіть інше." + +msgid "Sort" +msgstr "СортуваннÑ" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Ð¡Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð-Я" + +msgid "Sort by" +msgstr "" + +msgid "Sort list:" +msgstr "" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort time" +msgstr "За чаÑом" + +msgid "Sound" +msgstr "Звук" + +msgid "Sound carrier" +msgstr "Звук ноÑÑ–Ñ" + +msgid "Source request" +msgstr "Запит джерела" + +msgid "South" +msgstr "Південь" + +msgid "Spanish" +msgstr "ІÑпанÑький" + +msgid "Specify the end time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the end time until the inactivity sleeptimer should be ignored" +msgstr "Ð’Ñтановіть Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ Ð¿ÐµÑ€Ñ–Ð¾Ð´Ñƒ Ð´Ð»Ñ Ñ–Ð³Ð½Ð¾Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ñ–Ñ— таймера неактивноÑÑ‚Ñ–." + +msgid "Specify the start time to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "Specify the start time when the inactivity sleeptimer should be ignored" +msgstr "Ð’Ñтановіть початок періоду Ð´Ð»Ñ Ñ–Ð³Ð½Ð¾Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ñ–Ñ— таймера неактивноÑÑ‚Ñ–." + +msgid "Specify timeframe to ignore inactivity sleeptimer" +msgstr "Період чаÑу Ñ–Ð³Ð½Ð¾Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð°Ð¹Ð¼ÐµÑ€Ð° неактивноÑÑ‚Ñ–" + +msgid "Specify timeframe to ignore the shutdown in standby" +msgstr "" + +msgid "Split preview mode" +msgstr "Режим предварительного проÑмотра" + +msgid "Splitscreen" +msgstr "" + +msgid "Sports" +msgstr "Спорт" + +msgid "Standard" +msgstr "Cтандарт" + +msgid "Standart list" +msgstr "" + +msgid "Standby" +msgstr "Режим очікуваннÑ" + +msgid "Standby / restart" +msgstr "Меню вимкненнÑ" + +msgid "Standby after current event" +msgstr "Режим Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–ÑÐ»Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ð³Ð¾ події" + +#, python-format +msgid "Standby fan %d PWM" +msgstr "Режим Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐµÐ½Ñ‚Ð¸Ð»Ñтора %d PWM" + +#, python-format +msgid "Standby fan %d voltage" +msgstr "" + +msgid "Standby in " +msgstr "Режим Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñ‡ÐµÑ€ÐµÐ· " + +msgid "StandbyLED" +msgstr "" + +msgid "Start from the beginning" +msgstr "Почати з Ñамого початку" + +msgid "Start offline decode" +msgstr "Старт відкладеного декодуваннÑ" + +msgid "Start recording?" +msgstr "Почати запиÑ?" + +msgid "Start test" +msgstr "Почати теÑÑ‚" + +msgid "Start time" +msgstr "Ð§Ð°Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ" + +msgid "Start time to ignore inactivity sleeptimer" +msgstr "Початок періоду Ñ–Ð³Ð½Ð¾Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð°Ð¹Ð¼ÐµÑ€Ð° неактивноÑÑ‚Ñ–" + +msgid "Start time to ignore shutdown in standby" +msgstr "" + +msgid "Start timeshift" +msgstr "Почати таймшифт" + +msgid "Start with list screen" +msgstr "Початок з режиму ÑпиÑку" + +msgid "Starting on" +msgstr "Починаючи з" + +msgid "Startup the set top box in standby" +msgstr "" + +msgid "Startup to Standby" +msgstr "" + +msgid "Step east" +msgstr "Крок на Ñхід" + +msgid "Step west" +msgstr "Крок на захід" + +msgid "Stepped east" +msgstr "Крок на Ñхід" + +msgid "Stepped west" +msgstr "Крок на захід" + +msgid "Stop" +msgstr "Стоп" + +msgid "Stop PiP" +msgstr "Відключити PiP" + +msgid "Stop current event and disable coming events" +msgstr "Зупинити поточну подію Ñ– відключити наÑтупні події" + +msgid "Stop current event but not coming events" +msgstr "Зупинити поточну подію, але не наÑтупні події" + +msgid "Stop entry" +msgstr "Зупинити вхід" + +msgid "Stop playing this movie?" +msgstr "Зупинити Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ відео?" + +msgid "Stop recording" +msgstr "Зупинити запиÑ" + +msgid "Stop recording and delete" +msgstr "Зупинити Ñ– видалити запиÑ" + +msgid "Stop service on return to movie list" +msgstr "" + +msgid "Stop test" +msgstr "Зупинити теÑÑ‚" + +msgid "Stop testing plane after # failed transponders" +msgstr "Зупинити теÑÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–ÑÐ»Ñ # помилки транÑпондера" + +msgid "Stop testing plane after # successful transponders" +msgstr "Зупинити теÑÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–ÑÐ»Ñ # Ñправного транÑпондера" + +msgid "Stop timer recording" +msgstr "Зупинка запиÑів за таймером" + +msgid "Stop timeshift" +msgstr "Зупинити timeshift" + +msgid "Stop timeshift?" +msgstr "Зупинити timeshift?" + +msgid "Stopped" +msgstr "Зупинено" + +msgid "Store at index" +msgstr "Зберегти номер" + +msgid "Store position" +msgstr "Зберегти позицію" + +msgid "Stored position" +msgstr "Збережене положеннÑ" + +msgid "Stream" +msgstr "Порт Ñтрімінгу" + +msgid "Stream request" +msgstr "Порт Ñтрімінгу" + +msgid "Strongest position" +msgstr "Краща позиціÑ" + +msgid "Subservice list..." +msgstr "СпиÑок Ñуб ÑервіÑів..." + +msgid "Subservices" +msgstr "Суб ÑервіÑи" + +msgid "Subtitle Quickmenu" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñубтитрів" + +msgid "Subtitle alignment" +msgstr "Ð’Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñубтитрів" + +msgid "Subtitle border width" +msgstr "Ширина кайми Ñубтитрів" + +msgid "Subtitle delay when timing is bad" +msgstr "Затримка Ñубтитрів при неправильному чаÑÑ–" + +msgid "Subtitle delay when timing lacks" +msgstr "Затримка Ñубтитрів при браку чаÑу" + +msgid "Subtitle font size" +msgstr "Розмір шрифту Ñубтитрів" + +msgid "Subtitle language selection 1" +msgstr "Вибір мови Ñубтитрів 1" + +msgid "Subtitle language selection 2" +msgstr "Вибір мови Ñубтитрів 2" + +msgid "Subtitle language selection 3" +msgstr "Вибір мови Ñубтитрів 3" + +msgid "Subtitle language selection 4" +msgstr "Вибір мови Ñубтитрів 4" + +msgid "Subtitle position" +msgstr "ÐŸÐ¾Ð·Ð¸Ñ†Ñ–Ñ Ñубтитрів" + +msgid "Subtitle selection" +msgstr "Вибір Ñубтитрів" + +msgid "Subtitle selection..." +msgstr "Вибір Ñубтитрів" + +msgid "Subtitle settings" +msgstr "Меню Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñубтитрів" + +msgid "Subtitles" +msgstr "Субтитри" + +msgid "Sun" +msgstr "Ðд" + +msgid "Sunday" +msgstr "ÐеділÑ" + +msgid "Swap PiP and main picture" +msgstr "ПомінÑти PiP Ñ– оÑновне зображеннÑ" + +msgid "Swap services" +msgstr "ПомінÑти міÑцÑми ÑервіÑи" + +msgid "Swedish" +msgstr "ШведÑька" + +msgid "Switch TV to correct input" +msgstr "Переключити ТБ на коректний вхід" + +msgid "Switch between filelist/playlist" +msgstr "Змінити ÑпиÑок файлів / плейлиÑÑ‚" + +msgid "Switch between normal mode and list mode" +msgstr "Перехід від нормального режиму до ÑпиÑку" + +msgid "Switch to HDMI in mode" +msgstr "" + +msgid "Switch to filelist" +msgstr "Переключити на ÑпиÑок файлів" + +msgid "Switch to next channel" +msgstr "" + +msgid "Switch to next channel in history" +msgstr "Переключити на наÑтупний канал в Ñ–Ñторії" + +msgid "Switch to next sub service" +msgstr "Перейти на наÑтупний Ñуб ÑервіÑ" + +msgid "Switch to playlist" +msgstr "Переключити на плейлиÑÑ‚" + +msgid "Switch to previous channel" +msgstr "Переключити на попередній канал" + +msgid "Switch to previous channel in history" +msgstr "Переключити на попередній канал в Ñ–Ñторії" + +msgid "Switch to previous sub service" +msgstr "Перейти на попередній Ñуб ÑервіÑ" + +msgid "Switchable tuner types:" +msgstr "Перемикані типи тюнерів:" + +msgid "Symbol rate" +msgstr "ШвидкіÑÑ‚ÑŒ потоку" + +msgid "Symbol rate:" +msgstr "" + +msgid "Sync failure moving back to origin !" +msgstr "Збій Ñинхронізації, Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð´Ð¾ оригіналу!" + +msgid "System" +msgstr "СиÑтема" + +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "Irkoff <irkoff@gmail.com>" + +msgid "TS file is too large for ISO9660 level 1!" +msgstr "TS файл занадто великий Ð´Ð»Ñ ISO9660 level 1!" + +msgid "TSID" +msgstr "TSID" + +msgid "TV physical address report" +msgstr "ÐžÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ„Ñ–Ð·Ð¸Ñ‡Ð½Ð¾Ñ— адреÑи ТВ" + +msgid "TXT PID" +msgstr "TXT ПІД" + +msgid "Table of contents for collection" +msgstr "ЗміÑÑ‚ колекції" + +msgid "Tags" +msgstr "Теги" + +msgid "Teletext subtitle color" +msgstr "Колір телетекÑту Ñубтитрів" + +msgid "Temperature and fan control" +msgstr "БатьківÑький контроль" + +msgid "Terrestrial" +msgstr "Ðаземний" + +msgid "Terrestrial provider" +msgstr "Ðаземний провайдер" + +msgid "Test DiSEqC settings" +msgstr "ТеÑÑ‚ налаштувань DiSEqC" + +msgid "Test mode" +msgstr "Режим теÑта" + +msgid "Test the network configuration of your receiver.\n" +msgstr "ТеÑÑ‚ мережевої конфігурації вашого реÑивера.\n" + +msgid "Test type" +msgstr "Тип теÑта" + +msgid "Text color" +msgstr "Колір текÑта" + +msgid "Thai" +msgstr "ТайÑький" + +msgid "" +"Thank you for using the wizard.\n" +"Please press OK to continue." +msgstr "" +"СпаÑибі Вам за викориÑÑ‚Ð°Ð½Ð½Ñ Ð¼Ð°Ð¹Ñтра.\n" +"ÐатиÑніть ОК Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ." + +msgid "" +"Thank you for using the wizard. Your receiver is now ready for use.\n" +"Press OK to start using your receiver." +msgstr "" +"СпаÑибі Вам за викориÑÑ‚Ð°Ð½Ð½Ñ Ð¼Ð°Ð¹Ñтра. Ваш реÑивер готовий до роботи.\n" +"Будь лаÑка, натиÑніть OK Ð´Ð»Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ роботи вашого реÑивера." + +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a special format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "DVD Ñтандарт не підтримує H.264 (HDTV) відео потоків. Ви хочете Ñтворити Ñпеціальний формат DVD (Ñкий можливо не програватиметьÑÑ Ð² Ñтаціонарних DVD програвачах)?" + +msgid "The PIN code has been changed successfully." +msgstr "PIN-код уÑпішно змінений." + +msgid "The PIN codes you entered are different." +msgstr "Введений PIN код не вірний" + +msgid "" +"The USB stick was prepared to be bootable.\n" +"Now you can download an NFI image file!" +msgstr "" +"USB-флеш підготовлений Ñк завантажувальний.\n" +"Тепер Ви можете вÑтановити NFI образ!" + +msgid "The backup failed. Please choose a different backup location." +msgstr "Ð—Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ðµ виконано. Виберіть інше міÑце розташуваннÑ. " + +#, python-format +msgid "" +"The current beta image might not be stable.\n" +"For more information see %s." +msgstr "" + +#, python-format +msgid "" +"The directory %s is not writable.\n" +"Make sure you select a writable directory instead." +msgstr "" +"У цю папку %s запиÑати не можна.\n" +"ПереконайтеÑÑ, що натоміÑÑ‚ÑŒ вибрали потрібну папку." + +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"Знайдено приÑтрій:\n" +"\n" +"%s\n" +"\n" +"Хочете вÑтановити USB flasher на цей приÑтрій?" + +msgid "The following files were found..." +msgstr "ÐаÑтупні файли були знайдені ..." + +msgid "The md5sum validation failed, the file may be corrupted!" +msgstr "MD5 Ñума файла невірна, файл ймовірно пошкоджений!" + +msgid "" +"The network wizard extension is not installed!\n" +"Please install it." +msgstr "" +"Плагін Witeless LAN не вÑтановлений!\n" +"Будь лаÑка, вÑтановіть його." + +#, python-format +msgid "The path %s already exists." +msgstr "Цей шлÑÑ… %s вже Ñ–Ñнує." + +msgid "The pin code you entered is wrong." +msgstr "Введений PIN-код невірний." + +#, python-format +msgid "The results have been written to %s." +msgstr "Результати були запиÑані в %s." + +msgid "The sleep timer has been activated." +msgstr "Таймер Ñну був включений." + +msgid "The sleep timer has been disabled." +msgstr "Таймер Ñну був вимкнений." + +msgid "" +"The software management extension is not installed!\n" +"Please install it." +msgstr "" +"Плагін Witeless LAN не вÑтановлений!\n" +"Будь лаÑка, вÑтановіть його." + +#, python-format +msgid "The status of the current beta image could not be checked because %s can not be reached." +msgstr "" + +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "Файл таймерів (timers.xml) пошкоджений Ñ– не може бути завантажений." + +msgid "The user interface of your receiver is restarting" +msgstr "РеÑтарт GUI реÑивера" + +msgid "" +"The user interface of your receiver is restarting\n" +"due to an error in mytest.py" +msgstr "" +"РеÑтарт GUI реÑивера\n" +"через помилку в mytest.py" + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it and choose what you want to do next." +msgstr "" +"Плагін Wireless LAN не вÑтановлений!\n" +"Будь лаÑка, вÑтановіть його Ñ– виберіть, що робити далі." + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"Плагін Witeless LAN не вÑтановлений!\n" +"Будь лаÑка, вÑтановіть його." + +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "МайÑтер може зберегти Ваші поточні наÑтройки. Ви хочете зробити це зараз?" + +#, python-format +msgid "The wizard found a configuration backup. Do you want to restore your old settings from %s?" +msgstr "" + +msgid "The wizard is finished now." +msgstr "МайÑтер закінчив роботу." + +msgid "There are at least " +msgstr "Знайдено принаймні " + +#, python-format +msgid "There are at least %s updates available." +msgstr "%s доÑтупних оновлень Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ реÑивера." + +msgid "There are currently no outstanding actions." +msgstr "У поточний момент немає нових оновлень." + +msgid "There are no updates available." +msgstr " доÑтупних оновлень." + +msgid "There is no signal to lock on !" +msgstr "Ðемає Ñигналу з цього захвату!" + +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"Можливо недоÑтатньо міÑÑ†Ñ Ð½Ð° вибраному розділі. \n" +"Ви дійÑно хочете продовжити?" + +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "Цей DVD RW вже відформатований - Ð¿ÐµÑ€ÐµÑ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ðµ видалити вÑÑ– вміÑÑ‚ диÑку." + +msgid "" +"This plugin creates a USB stick which can be used to update the firmware of your receiver without the need for a network or WLAN connection.\n" +"First, a USB stick needs to be prepared so that it becomes bootable.\n" +"In the next step, an NFI image file can be downloaded from the update server and saved on the USB stick.\n" +"If you already have a prepared bootable USB stick, please insert it now. Otherwise plug in a USB stick with a minimum size of 64 MB!" +msgstr "" +"Цей плагін Ñтворює USB-флеш, Ñкий може викориÑтовуватиÑÑ, щоб оновити прошивку вашого реÑивера без Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ інтернету.\n" +"По перше, USB повинен бути Ñамозавантажувальний.\n" +"Потім файл іміджу NFI потрібно завантажити з Ñервера Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ– зберегти на USB.\n" +"Якщо у Ð’Ð°Ñ Ð²Ð¶Ðµ Ñ” завантажувальний USB, будь лаÑка, вÑтавте. Об'єм USB повинен бути не менше 64 Мб!" + +msgid "This plugin is installed." +msgstr "Плагін вÑтановлений." + +msgid "This plugin is not installed." +msgstr "" +"Плагін Witeless LAN не вÑтановлений!\n" +"Будь лаÑка, вÑтановіть його." + +msgid "This plugin will be installed." +msgstr "Плагін буде вÑтановлений." + +msgid "This plugin will be removed." +msgstr "Плагін буде видалений." + +#, python-format +msgid "This receiver cannot decode %s streams!" +msgstr "Цей реÑівер не може декодувати %s потоки!" + +msgid "" +"This test checks for configured nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and adapter setup\n" +"- if you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration" +msgstr "" +"Цей теÑÑ‚ перевірÑÑ” конфігурацію DNS Ñерверів.\n" +"При поÑві Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ \"не приÑвоєно\":\n" +"- будь лаÑка перевірте Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ DHCP, мережевого адаптера Ñ– Ñтан Ñетевого кабелÑ\n" +"- Якщо Ви пропиÑали вручну DNS Ñервера, будь лаÑка перевірте конфігурацію \"DNS Ñервер\"" + +msgid "" +"This test checks whether a network cable is connected to your LAN adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Цей теÑÑ‚ перевірÑÑ” наÑвніÑÑ‚ÑŒ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð¼ÐµÑ€ÐµÐ¶ÐµÐ²Ð¾Ð³Ð¾ кабелю до мережевого адаптеру.\n" +"При поÑві Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ \" немає з'єднаннÑ\":\n" +"- перевірте, що мережевий кабель підключений\n" +"- перевірте, що мережевий кабель не обірваний" + +msgid "" +"This test checks whether a valid IP address is found for your LAN adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Цей теÑÑ‚ перевірÑÑ” чи приÑвоєно IP адреÑу мережевого адаптера..\n" +"При поÑві Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ \" не приÑвоєно\":\n" +"- IP адреÑу не було знайдено\n" +"- будь лаÑка перевірте Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ DHCP, мережевого адаптера Ñ– Ñтан мережевого кабелю" + +msgid "" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN adapter is configured for manual IP setup\n" +"- verify thay you have entered correct IP informations in the adapter setup dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP server in your network." +msgstr "" +"Цей теÑÑ‚ перевірÑÑ”, чи включений DHCP в наÑтройках мережевого адаптера, Ð´Ð»Ñ Ð¿Ñ€Ð¸ÑÐ²Ð¾Ñ”Ð½Ð½Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ IP.\n" +"При поÑві Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ \" відключений\":\n" +"- введіть вручну IP адреÑу при налаштуванні мережевого адаптера .\n" +"- перевірте, що Ви ввели коректну інформацію в меню Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼ÐµÑ€ÐµÐ¶Ñ–.\n" +"При поÑві Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ \" під'єднано\":\n" +"- це підтверджує, що Ñформований робочий DHCP Ñервер у Вашій мережі." + +msgid "This test detects your configured LAN adapter." +msgstr "Даний теÑÑ‚ визначить ваш мережевий-адаптер." + +msgid "" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" +"Are you sure?" +msgstr "" +"ВідбудетьÑÑ (пере-) розрахунок вÑÑ–Ñ… позицій позіционеру Ñ– вÑÑ– збережені позиції Ñ– наÑтройки можуть бути загублені!\n" +"Ви впевнені в продовженні?" + +msgid "Three" +msgstr "Три" + +msgid "Threshold" +msgstr "Гетеродин" + +msgid "Thu" +msgstr "Чт" + +msgid "Thumbnails" +msgstr "ЭÑкізи" + +msgid "Thursday" +msgstr "Четвер" + +msgid "Time" +msgstr "ЧаÑ" + +msgid "Time scale" +msgstr "ТимчаÑовий маÑштаб Ñітки" + +msgid "Timer" +msgstr "Таймер" + +msgid "Timer Overview" +msgstr "" + +msgid "Timer edit" +msgstr "Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð°Ð¹Ð¼ÐµÑ€Ð°" + +msgid "Timer editor" +msgstr "Редактор таймерів" + +msgid "Timer entry" +msgstr "Ð’Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñ‚Ð°Ð¹Ð¼ÐµÑ€Ð°" + +msgid "Timer log" +msgstr "Лог таймера" + +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"Конфлікт таймерів виÑвлений в timers.xml!\n" +"Будь лаÑка, перевірте це!" + +msgid "Timer overview" +msgstr "ОглÑд таймерів" + +msgid "Timer recording location" +msgstr "МіÑце запиÑу за таймером" + +msgid "Timer sanity error" +msgstr "Помилка Ñтану таймера" + +msgid "Timer selection" +msgstr "Вибір таймера" + +msgid "Timer selection..." +msgstr "Вибір таймера..." + +msgid "Timer type" +msgstr "Тип таймера" + +msgid "Timeshift" +msgstr "Таймшифт" + +msgid "Timeshift Live" +msgstr "" + +msgid "Timeshift location" +msgstr "Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð°Ð¹Ð¼ÑˆÐ¸Ñ„Ñ‚Ð°" + +msgid "Timeshift not possible!" +msgstr "Таймшифт не можливий!" + +msgid "Timezone" +msgstr "ЧаÑовий поÑÑ" + +msgid "Title" +msgstr "Ðазва" + +msgid "Title properties" +msgstr "ВлаÑтивоÑÑ‚Ñ– заголовка" + +msgid "Titleset mode" +msgstr "Режим уÑтановки заголовка" + +msgid "To audio selection" +msgstr "Вибір звуку" + +msgid "To subtitle selection" +msgstr "Вибір Ñубтитрів" + +msgid "" +"To update your receiver firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and make sure the bootable USB stick is plugged in.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" +"Щоб оновити ваш реÑивер, будь лаÑка, виконайте такі дії:\n" +"1) Вимкніть реÑівер тумблером ззаду Ñ– переконайтеÑÑ, що завантажувальний USB під'єднано.\n" +"2) Увімкніть реÑівер Ñ– натиÑніть кнопку Ð’ÐИЗ на передній панелі реÑивера близько 10 Ñекунд.\n" +"ДочекайтеÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ– дотримуйтеÑÑŒ вказівок МайÑтра." + +msgid "Today" +msgstr "Сьогодні" + +msgid "Toggle a cut mark at the current position" +msgstr "Розташувати мітку обробки в поточній позиції" + +msgid "Tone amplitude" +msgstr "Тоновий режим" + +msgid "Tone mode" +msgstr "Тоновий режим" + +msgid "Toneburst" +msgstr "Тоновий Ñигнал" + +msgid "Toneburst A/B" +msgstr "тоновий Ñигнал A/B" + +msgid "Top and bottom" +msgstr "Верх Ñ– низ" + +msgid "Track" +msgstr "Доріжка" + +msgid "Translation" +msgstr "Переклад" + +msgid "Translation:" +msgstr "Переклад:" + +msgid "Translations" +msgstr "" + +msgid "Transmission mode" +msgstr "Режим передачі" + +msgid "Transponder" +msgstr "ТранÑпондер" + +msgid "Transponder type" +msgstr "Тип транÑпондера" + +msgid "Trash can" +msgstr "Кошик" + +msgid "Tries left:" +msgstr "ЗалишилоÑÑ Ñпроб:" + +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "ÐамагаємоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ транÑпондери, викориÑтовувані в кабельній мережі .. Будь лаÑка, зачекайте ..." + +msgid "Trying to download a new packetlist. Please wait..." +msgstr "ÐамагаємоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ новий ÑпиÑок пакетів. Будь лаÑка, зачекайте..." + +msgid "Tue" +msgstr "Вівт" + +msgid "Tuesday" +msgstr "Вівторок" + +msgid "Tune" +msgstr "ÐалаштуваннÑ" + +msgid "Tune and focus" +msgstr "ÐÐ°Ð»Ð°Ð³Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ñ‚Ð° фокуÑуваннÑ" + +msgid "Tune failed!" +msgstr "Збій мовленнÑ!" + +msgid "Tuner" +msgstr "Тюнер" + +msgid "Tuner configuration" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚ÑŽÐ½ÐµÑ€Ð°" + +msgid "Tuner is not supported" +msgstr "" + +msgid "Tuner slot" +msgstr "Слот тюнера" + +msgid "Tuner status" +msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ñ‚ÑŽÐ½ÐµÑ€Ð°" + +#, python-format +msgid "Tuner status %s" +msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ñ‚ÑŽÐ½ÐµÑ€Ð° %s" + +msgid "Tuner type" +msgstr "Тюнер" + +msgid "Turkish" +msgstr "Турецький" + +msgid "Turn on the power LED during standby." +msgstr "" + +msgid "Turning step size" +msgstr "" + +msgid "Two" +msgstr "Два" + +msgid "Type" +msgstr "Тип" + +msgid "Type of scan" +msgstr "Тип ÑкануваннÑ" + +msgid "USALS" +msgstr "USALS" + +msgid "USALS calibration" +msgstr "ÐšÐ°Ð»Ñ–Ð±Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ USALS" + +msgid "USB stick" +msgstr "USB флеш" + +msgid "USB stick wizard" +msgstr "МайÑтер USB" + +msgid "" +"Unattended upgrade in progress\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Ðвтоматичне Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð² процеÑÑ–\n" +"ДочекайтеÑÑ Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ€ÐµÑивера\n" +"Це може тривати кілька хвилин" + +msgid "Undo install" +msgstr "СкаÑÑƒÐ²Ð°Ð½Ð½Ñ ÑƒÑтановки" + +msgid "Undo uninstall" +msgstr "СкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ" + +msgid "Unencrypted" +msgstr "Декодований" + +msgid "UnhandledKey" +msgstr "Ðе оброблений ключ" + +msgid "Unicable" +msgstr "Unicable" + +msgid "Unicable LNB" +msgstr "Unicable LNB" + +msgid "Unicable Martix" +msgstr "Unicable Martix" + +msgid "Uninstall" +msgstr "Видалити" + +msgid "Universal LNB" +msgstr "універÑальний-LNB" + +msgid "Unknown" +msgstr "<невідомий>" + +msgid "Unmount" +msgstr "Помилка відключеннÑ" + +msgid "Unsupported" +msgstr "Ðевідома" + +msgid "Update" +msgstr "ОновленнÑ" + +msgid "Update and ask to reboot" +msgstr "Оновити Ñ– запитати про перезавантаженнÑ" + +msgid "Update and reboot (recommended)" +msgstr "Оновити Ñ– перезавантажити (рекомендуєтьÑÑ)" + +msgid "Update channel list only" +msgstr "Оновити тільки ÑпиÑок каналів" + +#, python-format +msgid "Update completed, %d package was installed." +msgid_plural "Update completed, %d packages were installed." +msgstr[0] "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð¾, %d пакет вÑтановлений." +msgstr[1] "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð¾, %d пакета вÑтановлено." +msgstr[2] "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð¾, %d пакетов вÑтановлено." + +msgid "Update completed. Do you want to reboot your receiver?" +msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð¾. Хочете перезавантажити реÑивер?" + +msgid "Update failed. Your receiver does not have a working internet connection." +msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ðµ вдалоÑÑ. У вашому реÑівері немає працюючого інтернет-з'єднаннÑ." + +msgid "Update has completed." +msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð¾." + +msgid "Updatefeed not available." +msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð· фида недоÑтупні." + +msgid "Updating software catalog" +msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ Ñофта" + +msgid "Upgrading" +msgstr "ОновленнÑ" + +msgid "Use" +msgstr "ВикориÑтовувати" + +msgid "Use DHCP" +msgstr "ВикориÑтовувати DHCP" + +msgid "Use EIT EPG information when it is available." +msgstr "ВикориÑтовувати інформацію EIT EPG, коли вона Ñ–Ñнує." + +msgid "Use FreeSat EPG information when it is available." +msgstr "ВикориÑтовувати інформацію FreeSat EPG, коли вона Ñ–Ñнує." + +msgid "Use MHW EPG information when it is available." +msgstr "ВикориÑтовувати інформацію MHW EPG, коли вона Ñ–Ñнує." + +msgid "Use Netmed EPG information when it is available." +msgstr "ВикориÑтовувати інформацію Netmed EPG, коли вона Ñ–Ñнує." + +msgid "Use TV remote control" +msgstr "Тип пульта ДУ" + +msgid "Use USALS for this sat" +msgstr "ВикориÑтовувати USALS Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ Ñупутника" + +msgid "Use ViaSat EPG information when it is available." +msgstr "ВикориÑтовувати інформацію ViaSat EPG, коли вона Ñ–Ñнує." + +msgid "Use Virgin EPG information when it is available." +msgstr "" + +msgid "Use a gateway" +msgstr "ВикориÑтовувати шлюз" + +msgid "Use fastscan channel names" +msgstr "Ðазви каналів з ​​швидкого пошуку" + +msgid "Use fastscan channel numbering" +msgstr "ÐÑƒÐ¼ÐµÑ€Ð°Ñ†Ñ–Ñ ÐºÐ°Ð½Ð°Ð»Ñ–Ð² з ​​швидкого пошуку" + +msgid "Use frequency or channel" +msgstr "" + +msgid "Use individual settings for each directory" +msgstr "Індивід. Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ каталогу" + +msgid "Use interface" +msgstr "ВикориÑтовувати інтерфейÑ" + +msgid "Use official channel numbering" +msgstr "Офіційна Ð½ÑƒÐ¼ÐµÑ€Ð°Ñ†Ñ–Ñ ÐºÐ°Ð½Ð°Ð»Ñ–Ð²" + +msgid "Use original DVB subtitle position" +msgstr "ВикориÑтовувати оригінальну позицію DVB Ñубтитрів" + +msgid "Use original teletext position" +msgstr "ВикориÑтовувати початкове Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ Ñ‚ÐµÐ»ÐµÑ‚ÐµÐºÑту" + +msgid "Use power measurement" +msgstr "ВикориÑтовувати Ð²Ð¸Ð¼Ñ–Ñ€ÑŽÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‚ÑƒÐ¶Ð½Ð¾ÑÑ‚Ñ–" + +msgid "Use the network wizard to configure selected network adapter" +msgstr "ВикориÑтовувати майÑтер Ð´Ð»Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼ÐµÑ€ÐµÐ¶Ñ–" + +msgid "Use the network wizard to configure your network\n" +msgstr "ВикориÑтовувати майÑтер Ð´Ð»Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼ÐµÑ€ÐµÐ¶Ñ–\n" + +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "ВикориÑтовуйте кнопки вгору Ñ– вниз на пульті Ð´Ð»Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ опцій. піÑÐ»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ натиÑніть OK." + +msgid "Use the wizard to set up basic features" +msgstr "КориÑтуйтеÑÑ Ð¼Ð°Ð¹Ñтром Ð´Ð»Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ñновних параметрів" + +msgid "Use these input device settings?" +msgstr "ВикориÑтовувати ці параметри приÑтрою введеннÑ?" + +msgid "Use these settings?" +msgstr "ВикориÑтовувати ці налаштуваннÑ?" + +msgid "Use this video enhancement settings?" +msgstr "ВикориÑтовувати ці відео налаштуваннÑ?" + +msgid "Use trash can in movielist" +msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ ÐºÐ¾ÑˆÐ¸ÐºÐ° в ÑпиÑку фільмів" + +msgid "Used service scan type" +msgstr "ВикориÑтовуваний тип ÑкануваннÑ" + +msgid "User - bouquets" +msgstr "СпиÑок фаворитів" + +msgid "User defined" +msgstr "Визначено кориÑтувачем" + +msgid "User defined transponder" +msgstr "" + +msgid "User interface" +msgstr "Ð†Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÐºÐ¾Ñ€Ð¸Ñтувача" + +msgid "Username" +msgstr "Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача" + +#, python-format +msgid "Using LNB %d" +msgstr "ВикориÑтовуваний LNB %d" + +msgid "Using fixed address" +msgstr "ВикориÑтовувати фікÑірованнний адреÑу" + +#, python-format +msgid "Using tuner %s" +msgstr "ВикориÑтовуєтьÑÑ Ñ‚ÑŽÐ½ÐµÑ€ %s" + +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "Зазвичай коли мова Ñубтитрів збігаєтьÑÑ Ð· мовою Ðудіо, Ñубтитри ÐЕ показуютьÑÑ. Цей вибір дозволÑÑ” показувати Ñубтитри, коли вони збігаютьÑÑ." + +msgid "VCR scart" +msgstr "Відеомагнітофон" + +msgid "VMGM (intro trailer)" +msgstr "VMGM (трейлер)" + +msgid "Vertical" +msgstr "Вертикальна" + +msgid "Vertical turning speed" +msgstr "ПолÑÑ€Ð¸Ð·Ð°Ñ†Ñ–Ñ (V) - швидкіÑÑ‚ÑŒ повороту" + +msgid "Video PID" +msgstr "Відео PID" + +msgid "Video enhancement preview" +msgstr "Попередній переглÑд відео налаштувань" + +msgid "Video enhancement settings" +msgstr "Попередній переглÑд відео налаштувань" + +msgid "Video enhancement setup" +msgstr "Меню відео налаштувань" + +msgid "Video fine tuning" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐµÐºÑ€Ð°Ð½Ñƒ" + +msgid "" +"Video input selection\n" +"\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" +"\n" +"The next input port will be automatically probed in 20 seconds." +msgstr "" +"Вибір відео входу\n" +"\n" +"ÐатиÑніть ОК Ñкщо ви бачите цю Ñторінку на екрані ТВ (або виберіть інший вход).\n" +"\n" +"ÐаÑтупний вхід буде автоматично обраний через 10 Ñек." + +msgid "Video mode selection." +msgstr "Вибір режиму відео" + +msgid "Video output" +msgstr "Відеовихід" + +msgid "Video setup" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´ÐµÐ¾" + +msgid "Video wizard" +msgstr "МаÑтер видеонаÑтроек" + +#, python-format +msgid "Video: %s fps" +msgstr "Відео: %s fps" + +msgid "VideoMode" +msgstr "" + +msgid "Videocodec" +msgstr "Відеокодек" + +msgid "Videoformat" +msgstr "Відеоформат" + +msgid "Videosize" +msgstr "Відеоразмер" + +msgid "View Rass interactive..." +msgstr "Інтерактивний переглÑд RASS" + +msgid "View details" +msgstr "Показати деталі" + +msgid "View list of available " +msgstr "ПереглÑд ÑпиÑку доÑтупних " + +msgid "View list of available CommonInterface extensions" +msgstr "ПереглÑд ÑпиÑку доÑтупних доповнень картрідера" + +msgid "View list of available EPG extensions." +msgstr "ПереглÑд ÑпиÑку доÑтупних доповнень EPG" + +msgid "View list of available Satellite equipment extensions." +msgstr "ПереглÑд ÑпиÑку доÑтупних доповнень Ñупутникових налаштувань" + +msgid "View list of available communication extensions." +msgstr "ПереглÑд ÑпиÑку доÑтупних доповнень зв'Ñзку" + +msgid "View list of available default settings" +msgstr "ПереглÑд ÑпиÑку доÑтупних дефолтних налаштувань" + +msgid "View list of available display and userinterface extensions." +msgstr "ПереглÑд ÑпиÑку доÑтупних доповнень налаштувань екрану Ñ– інтерфейÑу" + +msgid "View list of available multimedia extensions." +msgstr "ПереглÑд ÑпиÑку доÑтупних доповнень мультимедіа" + +msgid "View list of available networking extensions" +msgstr "ПереглÑд ÑпиÑку доÑтупних мережевих доповнень" + +msgid "View list of available recording extensions" +msgstr "ПереглÑд ÑпиÑку доÑтупних доповнень Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу" + +msgid "View list of available skins" +msgstr "ПереглÑд ÑпиÑку доÑтупних Ñкінів" + +msgid "View list of available software extensions" +msgstr "ПереглÑньте ÑпиÑок доÑтупних програмних доповнень" + +msgid "View list of available system extensions" +msgstr "ПереглÑньте ÑпиÑок доÑтупних ÑиÑтемних доповнень" + +msgid "View photos..." +msgstr "ПереглÑд фотографій..." + +msgid "View teletext..." +msgstr "ПереглÑнути телетекÑÑ‚" + +msgid "View video CD..." +msgstr "ПереглÑнути Video CD..." + +msgid "Virtual keyboard" +msgstr "Віртуальна клавіатура" + +msgid "Voltage mode" +msgstr "Режим напруги" + +msgid "Volume" +msgstr "ГучніÑÑ‚ÑŒ" + +msgid "W" +msgstr "W" + +msgid "WEP" +msgstr "WEP" + +msgid "WLAN connection" +msgstr "WLAN з'єднаннÑ" + +msgid "WPA" +msgstr "WPA" + +msgid "WPA or WPA2" +msgstr "WPA або WPA2" + +msgid "WPA2" +msgstr "WPA2" + +msgid "WSS on 4:3" +msgstr "WSS on 4:3" + +msgid "Waiting" +msgstr "ОчікуваннÑ" + +msgid "Waiting for mount" +msgstr "ÐžÑ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ" + +msgid "Waiting for partition" +msgstr "Ðе вдалоÑÑ Ñтворити розділ" + +msgid "Wakeup" +msgstr "Ð£Ð²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ð¢Ð‘" + +msgid "Wakeup TV from standby" +msgstr "Пробудити ТБ з режиму очікуваннÑ" + +msgid "Wakeup receiver for start timer" +msgstr "" + +msgid "Wakeup receiver from standby" +msgstr "ПіднÑти реÑивер з режиму очікуваннÑ" + +msgid "Wakeup signal from TV" +msgstr "Сигнал Ð¿Ñ€Ð¾ÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð²Ñ–Ð´ телевізора" + +msgid "Wakeup type" +msgstr "" + +msgid "Warning: no LNB; using factory defaults." +msgstr "ПопередженнÑ: немає LNB; викориÑтовуютьÑÑ Ð·Ð°Ð²Ð¾Ð´Ñькі налаштуваннÑ." + +msgid "Watch movies..." +msgstr "Відтворити запиÑане відео..." + +msgid "Watch recordings..." +msgstr "запиÑ..." + +msgid "Wed" +msgstr "Середа" + +msgid "Wednesday" +msgstr "Середа" + +msgid "Weekday" +msgstr "День тижнÑ" + +msgid "Weighted position" +msgstr "Ðналізуємо позицію" + +msgid "" +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." +msgstr "" +"ЛаÑкаво проÑимо в редактор відео.\n" +"\n" +"Відзначте міÑце з Ñкого ви хочете почати редагуваннÑ. ÐатиÑніÑÑ‚ÑŒ OK, виберіть 'початок редагуваннÑ'.\n" +"\"\n" +"\"ПіÑлÑ, відзначте точку Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ, натиÑніть OK, виберіть'кінець редагуваннÑ'. От Ñ– вÑе;)" + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your receiver by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "ЛаÑкаво проÑимо в майÑтер Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ–Ð¼Ñ–Ð´Ð¶Ñƒ. МайÑтер допоможе вам в оновленні програмного Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ реÑивера шлÑхом Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð²Ð°ÑˆÐ¸Ñ… поточних налаштувань Ñ– коротких підказок щодо процеÑу оновленнÑ." + +msgid "" +"Welcome.\n" +"\n" +"If you want to connect your receiver to the Internet, this wizard will guide you through the basic network setup of your receiver.\n" +"\n" +"Press OK to start configuring your network" +msgstr "" +"ЛаÑкаво проÑимо.\n" +"\n" +"Якщо ви хочете підключити ваш реÑивер до інтернету, цей майÑтер проведе Ð²Ð°Ñ Ñ‡ÐµÑ€ÐµÐ· оÑновні Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼ÐµÑ€ÐµÐ¶Ñ– вашого реÑивера.\n" +"\n" +"ÐатиÑніÑÑ‚ÑŒ ОК Ð´Ð»Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼ÐµÑ€ÐµÐ¶Ñ–." + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your receiver.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" +"ЛаÑкаво проÑимо.\n" +"\n" +"Цей майÑтер допоможе Вам налаштувати оÑновні параметри вашого реÑивера.\n" +"ÐатиÑніÑÑ‚ÑŒ OK на пульті ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ñƒ до наÑтупного кроку." + +msgid "Welcome..." +msgstr "ЛаÑкаво проÑимо..." + +msgid "West" +msgstr "Захід" + +msgid "West limit set" +msgstr "Увімкнути Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° захід" + +msgid "What do you want to scan?" +msgstr "Що Ви хочете знайти?" + +msgid "When enabled the PiP can be closed by the exit button." +msgstr "Якщо увімкнено, то можна закрити екран PiP за допомогою кнопки вихід." + +msgid "When enabled the arrow buttons around the OK button will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled the left, right, CH+/-, B+/-, P+/- buttons will follow the 'neutrino' style zap controls instead of the enigma2 style." +msgstr "" + +msgid "When enabled you can specify a timeframe to ignore the shutdown timer when the receiver is in standby mode" +msgstr "" + +msgid "When enabled you can specify a timeframe were the inactivity sleeptimer is ignored. Not the detection is disabled during this timeframe but the inactivity timeout is disabled" +msgstr "Якщо увімкнено, то вÑтановіть період чаÑу Ñ–Ð³Ð½Ð¾Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ñ–Ñ— Ð´Ð»Ñ Ñ‚Ð°Ð¹Ð¼ÐµÑ€Ð° неактивноÑÑ‚Ñ–." + +msgid "When enabled you can zap channels with the CH+/-, B+/-, P+/- buttons instead of opening the channel selection list." +msgstr "" + +msgid "When enabled you get the channel selection list via the OK button, the infobar toggle is then transfered to exit button" +msgstr "" + +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "Коли Ñ†Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°, AIT дані будуть включені в в http Ñтрім. це дозволить обладнанню клієнта викориÑтовувати HbbTV." + +msgid "When enabled, ECM data will be included in http streams. This allows a client receiver to do the descrambling." +msgstr "Коли Ñ†Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°, ECM дані будуть включені в http Ñтрім. це дозволить обладнанню клієнта виконувати декодуваннÑ." + +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "Коли Ñ†Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð°, EIT дані будуть включені в http Ñтрім. це дозволить обладнанню клієнта побачити дані EPG." + +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "Показати Ñпливаюче вікно, коли відео закінчилоÑÑ, а наÑтупне починаєтьÑÑ." + +msgid "When enabled, a popup message will be shown when a recording starts." +msgstr "Якщо увімкнено, то з'ÑвитьÑÑ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸ початку запиÑу." + +msgid "When enabled, a radio background image will be visible while listening to a radio channel." +msgstr "Показати фонове Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ– ÑпиÑок каналів, під Ñ‡Ð°Ñ Ð¿Ñ€Ð¾ÑÐ»ÑƒÑ…Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ð°Ð´Ñ–Ð¾ каналів." + +msgid "When enabled, a recording is allowed to interrupt live tv, when there are no free tuners." +msgstr "Якщо увімкнено, то при Ñтарті таймера запиÑу, передача в прÑмому ефірі буде перервана, Ñкщо немає вільних тюнерів." + +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "Якщо увімкнено, буде показано Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ Ñ– кориÑтувач отримає можливіÑÑ‚ÑŒ зупинити або продовжити таймшифт." + +msgid "When enabled, authentication is required to watch http streams." +msgstr "" + +msgid "When enabled, channel numbering will start at '1' for each bouquet." +msgstr "Якщо увімкнено, Ð½ÑƒÐ¼ÐµÑ€Ð°Ñ†Ñ–Ñ ÐºÐ°Ð½Ð°Ð»Ñ–Ð² в кожному Фаворитному ÑпиÑку буде починатиÑÑ Ð· '1' номера" + +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "Коли Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° каналі має ÑÐ¿Ñ–Ð²Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Ñторін 4:3, виберіть, чи буде розтÑгнута картинка на веÑÑŒ екран." + +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached while changing channels." +msgstr "Якщо увімкнено, при перемиканні каналів буде перехід до наÑтупного фавориту, коли оÑтанній канал поточного фаворита буде доÑÑгнутий." + +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "Колі Ñ†Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°, відалені запиÑи будуть переміщені в кошик, заміÑÑ‚ÑŒ безповоротного видаленнÑ." + +msgid "When enabled, display the EIT now/next eventdata in infobar. When disabled, display now/next eventdata from the EPG cache instead." +msgstr "Якщо увімкнено, події зараз/далі з DVB EPG будуть показані в інфобарі. При відключенні, дані події будуть показуватиÑÑ Ð· файлу кеша EPG." + +msgid "When enabled, encryption info will be shown in the infobar (when supported by the skin)." +msgstr "Показати інформацію про декодуванні в інфобарі (Ñкщо це підтримуєтьÑÑ Ñкіном)." + +msgid "When enabled, error messages related to the Common Interface module will not be shown." +msgstr "Приховати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилки від CI модулÑ." + +msgid "When enabled, error messages related to zapping will not be shown." +msgstr "Ðе показувати будь-Ñкі Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилки при перемиканні каналів." + +msgid "When enabled, external subtitles will be always turned on for playback movie." +msgstr "Якщо це активовано, то зовнішні Ñубтитри будуть завжди включені Ð´Ð»Ñ Ð’Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð²Ñ–Ð´ÐµÐ¾." + +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "Перевагу графічним Ñубтитрам DVB, ніж телетекÑÑ‚-Ñубтитрам, коли обидва типи наÑвні." + +msgid "When enabled, graphical DVB subtitles will be centered horizontally." +msgstr "Якщо увімкнено, графічні DVB Ñубтитри будуть зоÑереджені горизонтально." + +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "Якщо увімкнено, графічні DVB Ñубтитри будуть показані в Ñ—Ñ… попередньому положенні." + +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "Якщо увімкнено, графічні DVB Ñубтитри будуть відображатиÑÑ Ð¶Ð¾Ð²Ñ‚Ð¸Ð¼, а не початковим кольором." + +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "Коли Ñ†Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°, http Ñтрім декодуєтьÑÑ Ð½Ð° Ñтороні Ñервера. Обладнанню віддаленого клієнта не треба виконувати декодуваннÑ." + +msgid "When enabled, it is possible to leave the movieplayer with exit." +msgstr "Якщо увімкнено, то можна закрити відеоплеєр з допомогою кнопки вихід." + +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "Якщо увімкнено, викориÑтовуєтьÑÑ Ð²Ð¸Ð¼Ñ–Ñ€ÑŽÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‚ÑƒÐ¶Ð½Ð¾ÑÑ‚Ñ– Ð´Ð»Ñ Ð²Ð¸ÑвленнÑ, коли ротор переÑтав повертатиÑÑ (Ñкщо Ñ” підтримка в реÑівері)." + +msgid "When enabled, number markers will be hiden." +msgstr "Якщо увімкнено, то номери маркерів не відображатимутьÑÑ Ð² ÑпиÑку каналів." + +msgid "When enabled, services may be grouped in multiple bouquets." +msgstr "Якщо увімкнено, ÑервіÑи можуть бути згруповані в кілька букетів." + +msgid "When enabled, show channel numbers in the channel selection screen." +msgstr "Якщо увімкнено, показуєтьÑÑ Ð½Ð¾Ð¼ÐµÑ€ каналу у вікні вибору каналів." + +msgid "When enabled, subtitles for the hearing impaired can be used." +msgstr "Ð’ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñубтитрів Ð´Ð»Ñ Ð»ÑŽÐ´ÐµÐ¹ з порушеннÑми Ñлуху" + +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "Перевагу Ñубтитрам Ð´Ð»Ñ Ð»ÑŽÐ´ÐµÐ¹ з порушеннÑми Ñлуху, ніж звичайним Ñубтитрам, коли обидва типи наÑвні." + +msgid "When enabled, teletext pages will be cached, allowing faster access." +msgstr "Коли Ñ†Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°, Ñторінки телетекÑту будуть зберігатиÑÑ Ð² кеші, що дозволÑÑ” приÑкорити доÑтуп." + +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "Якщо увімкнено, телетекÑÑ‚ Ñубтитрів буде відображатиÑÑ Ð² початковому положенні." + +msgid "When enabled, the VCR scart option will be shown on the main menu" +msgstr "При включенні цієї опції 'Відеомагнітофон' буде показаний в головному меню." + +msgid "When enabled, the channel selection list will be hidden while listening to a radio channel" +msgstr "Якщо вÑтановлено Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ 'так', то ÑпиÑок вибору каналів буде приховано під Ñ‡Ð°Ñ Ð¿Ñ€Ð¾ÑÐ»ÑƒÑ…Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ð°Ð´Ñ–Ð¾ каналів" + +msgid "When enabled, the infobar will be displayed when a new event starts." +msgstr "Якщо увімкнено, при початку нової події EPG на поточному каналі, з'ÑвитьÑÑ Ñ–Ð½Ñ„Ð¾Ð±Ð°Ñ€." + +msgid "When enabled, the infobar will be displayed when changing channels." +msgstr "Якщо увімкнено, інфобар буде з'ÑвлÑтиÑÑ Ð¿Ñ€Ð¸ перемиканні каналів." + +msgid "When enabled, the infobar will be displayed when skipping forwards/backwards during media playback." +msgstr "" +"Якщо увімкнено, інфобар буде з'ÑвлÑтиÑÑ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ¼Ð¾Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ\n" +"медіафайлів вперед/назад." + +msgid "When enabled, the lenght of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "Показати довжину запиÑів в ÑпиÑку фільмів (може знадобитиÑÑ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¸Ð¹ Ñ‡Ð°Ñ Ð´Ð»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ ÑпиÑку)" + +msgid "When enabled, the original line breaks will be removed from the teletext subtitles." +msgstr "Якщо увімкнено, оригінальні розриви Ñ€Ñдків будуть видалені з телетекÑту Ñубтитрів." + +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "Якщо увімкнено, реÑивер буде викориÑтовувати Ñубтитри, Ñкі були обрані раніше" + +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "Якщо увімкнено, реÑивер буде викориÑтовувати Ñубтитри, Ñкі були обрані раніше" + +msgid "When enabled, the receiver will no longer monitor the tuned transponder for possible changes. Do not use this option unless you know what you are doing." +msgstr "При включенні, реÑивер більше не буде Ñтежити за можливими змінами на транÑпондері. Ðе змінюйте цю опцію, Ñкщо не знаєте, що робите." + +msgid "When enabled, the receiver will select an AC3 track (when available)." +msgstr "Якщо вÑтановлено Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ 'так', то реÑивер буде викориÑтовувати AC3 звук (ÑкщодоÑтупно)." + +msgid "When enabled, the receiver will select an AC3+ track (when available)." +msgstr "" + +msgid "When enabled, timeshift starts automatically in background after specified time." +msgstr "Якщо Ñ†Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð°, таймшифт запуÑкаєтьÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾ у фоновомурежимі піÑÐ»Ñ Ð·Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ чаÑу." + +msgid "When enabled, use DHCP for the IP configuration." +msgstr "Оберіть, щоб включити або відключити DHCP." + +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "Якщо це включено, Ваш реÑивер визначатиме активніÑÑ‚ÑŒ на вході VCR SCART." + +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "Вкажіть на Ñкільки хвилин раніше починати запиÑ, ніж Ñ‡Ð°Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ запиÑу по EPG." + +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "Вкажіть на Ñкільки хвилин пізніше закінчити запиÑ, ніж Ñ‡Ð°Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу по EPG." + +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "Коли Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° каналі має ÑÐ¿Ñ–Ð²Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Ñторін 16:9, виберіть, чиÑлід маÑштабувати / розтÑгнути картинку." + +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "Коли Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° каналі має ÑÐ¿Ñ–Ð²Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Ñторін 4:3, виберіть, чи Ñлід маÑштабувати / розтÑгнути картинку." + +msgid "" +"When you do a factory reset, you will lose ALL your configuration data\n" +"(including bouquets, services, satellite data ...)\n" +"After completion of factory reset, your receiver will restart automatically!\n" +"\n" +"Really do a factory reset?" +msgstr "" +"При Ñкиданні на заводÑькі уÑтановки будуть видалені вÑÑ– конфігураційні дані\n" +"(включаючи пакети, канали, дані Ñупутників...)\n" +"ПіÑÐ»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ ÑкиданнÑ, ваш реÑивер буде автоматично перезавантажений!\n" +"\n" +"ДійÑно виконати ÑÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð½Ð° заводÑькі уÑтановки?" + +msgid "Where do you want to backup your settings?" +msgstr "Де ви хочете зберегти уÑтановки?" + +msgid "Where to save temporary timeshift recordings?" +msgstr "Куди зберегти тимчаÑові файли відкладеного переглÑду?" + +msgid "Wireless LAN" +msgstr "Бездротова мережа" + +msgid "Wireless network" +msgstr "Бездротова мережа" + +msgid "Wireless network configuration..." +msgstr "ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ð¼ÐµÑ€ÐµÐ¶Ñ–..." + +msgid "Wireless network connection setup" +msgstr "СтатиÑтика бездротової мережі" + +msgid "Wireless network connection setup." +msgstr "СтатиÑтика бездротової мережі" + +msgid "Wireless network state" +msgstr "СтатиÑтика бездротової мережі" + +msgid "With popup" +msgstr "З повідомленнÑм" + +msgid "Without popup" +msgstr "Без повідомленнÑ" + +msgid "Would you like to install a softcam?" +msgstr "Ви хочете вÑтановити ЕмулÑтор??" + +msgid "Write error while recording. Disk full?\n" +msgstr "Помилка під Ñ‡Ð°Ñ Ð·Ð°Ð¿Ð¸Ñу. ДиÑк переповнений?\n" + +msgid "Write failed!" +msgstr "Ð—Ð°Ð¿Ð¸Ñ Ð½ÐµÐ²Ð´Ð°Ð»Ð¸Ð¹!" + +msgid "YPbPr" +msgstr "YPbPr" + +msgid "Year" +msgstr "Рік" + +msgid "Yellow DVB subtitles" +msgstr "Жовті DVB Ñубтитри" + +msgid "Yes" +msgstr "Так" + +msgid "Yes and save" +msgstr "Так Ñ– зберегти" + +msgid "Yes and save in movie dir" +msgstr "Так Ñ– зберегти в каталог movie" + +msgid "Yes to all" +msgstr "Так - Ð´Ð»Ñ Ð²ÑÑ–Ñ…" + +msgid "Yes, always" +msgstr "Так, завжди" + +msgid "Yes, and delete this movie" +msgstr "Так, видалити цей запиÑ" + +msgid "Yes, backup my settings!" +msgstr "Так, зберегти мої уÑтановки!" + +msgid "Yes, delete this movie and return to movie list" +msgstr "" + +msgid "Yes, do a manual scan now" +msgstr "Так, виконати ручний пошук" + +msgid "Yes, do an automatic scan now" +msgstr "Так, виконати автоматичний пошук" + +msgid "Yes, do another manual scan now" +msgstr "Так, виконати ще ручний пошук" + +msgid "Yes, perform a shutdown now." +msgstr "Так, вимкнути зараз." + +msgid "Yes, restore the settings now" +msgstr "Так, відновити уÑтановки зараз" + +msgid "Yes, returning to movie list" +msgstr "Так,повернутиÑÑ Ð´Ð¾ ÑпиÑку запиÑів" + +msgid "Yesterday" +msgstr "Вчора" + +#, python-format +msgid "" +"You already have a channel list installed,\n" +"would you like to remove\n" +"\"%s\"?" +msgstr "" +"СпиÑок каналів вже вÑтановлений,\n" +"Удалить\n" +"\"%s\"?" + +msgid "You can cancel the installation." +msgstr "Ви можете ÑкаÑувати уÑтановку." + +msgid "You can cancel the removal." +msgstr "Ви можете ÑкаÑувати видаленнÑ." + +msgid "You can continue watching TV etc. while this is running." +msgstr "Ви можете продовжити переглÑд ТБ Ñ– Ñ‚.д., поки Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑÑ." + +msgid "You can install this plugin." +msgstr "Ви можете вÑтановити цей плагін." + +msgid "You can only burn receiver recordings!" +msgstr "Ви можете пропалити тільки запиÑи реÑивера!" + +msgid "You can remove this plugin." +msgstr "Ви можете видалити це плагін." + +msgid "You cannot delete this!" +msgstr "Ви не можете видалити це!" + +msgid "You didn't select a channel to record from." +msgstr "Ви не обрали канал запиÑу." + +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "Ви вибрали резервне ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½ÑŒ. Будь лаÑка, натиÑніть кнопку ОК Ð´Ð»Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ резервного копіюваннÑ." + +msgid "You have chosen to create a new .NFI flasher bootable USB stick. This will repartition the USB stick and therefore all data on it will be erased." +msgstr "Ви вибрали ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ завантажувального зовнішнього USB накопичувача. USB накопичувач буде відформатований Ñ– вÑÑ– дані будуть втрачені." + +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "Ви вибрали Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½ÑŒ. Enigma2 буде перезапущено відразу піÑÐ»Ñ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ. ÐатиÑніть ОК Ð´Ð»Ñ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ." + +#, python-format +msgid "You have to wait %s!" +msgstr "Ðеобходимо подождать %s!" + +msgid "" +"You need a PC connected to your receiver. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your receiver will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." +msgstr "" +"Вам потрібно комп'ютер приєднаний до вашого реÑивера. Якщо вам необхідні додаткові інÑтрукції, будь лаÑка, відвідайте Ñайт http://www.dm7025.de.\n" +"Ваш реÑивер повинен бути зупинений. ПіÑÐ»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð’Ð°Ð¼Ð¸ інÑтрукцій по оновленню з Ñайту, нове ПЗ запроÑить Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð’Ð°ÑˆÐ¸Ñ… уÑтановок. " + +msgid "You system does not support ext4" +msgstr "Ваша ÑиÑтема не підтримує ext4" + +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "Резервна ÐºÐ¾Ð¿Ñ–Ñ Ñтворена. Тепер ми продовжимо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ. " + +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "Ваша ÐºÐ¾Ð»ÐµÐºÑ†Ñ–Ñ Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” розмір одношарового диÑка. Вам потрібен чиÑтий двошаровий DVD!" + +msgid "Your current collection will get lost!" +msgstr "Ваша поточна ÐºÐ¾Ð»ÐµÐºÑ†Ñ–Ñ Ð±ÑƒÐ´Ðµ загублена!" + +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"Потрібне Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ„Ñ€Ð¾Ð½Ñ‚Ð¿Ñ€Ð¾Ñ†ÐµÑÑора.\n" +"ÐатиÑніть OK Ð´Ð»Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ поновленнÑ." + +msgid "" +"Your frontprocessor will be upgraded\n" +"Please wait until your receiver reboots\n" +"This may take a few minutes" +msgstr "" +"Ваш фронтпроцеÑÑор оновлюєтьÑÑ\n" +"ДочекайтеÑÑ Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ€ÐµÑивера\n" +"Це може зайнÑти кілька хвилин" + +msgid "" +"Your internet connection is not working!\n" +"Please choose what you want to do next." +msgstr "" +"Ваше інтернет з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð½Ðµ працює.\n" +"Оберіть, що будете робити далі." + +#, python-format +msgid "Your internet connection is working (ip: %s)" +msgstr "Ваше інтернет з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ñ†ÑŽÑ” (ip: %s)" + +msgid "Your network configuration has been activated." +msgstr "Ваші мережеві наÑтройки активовані." + +msgid "Your receiver does not have an internet connection" +msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ðµ вдалоÑÑ. У вашому реÑивері немає працюючого інтернет-з'єднаннÑ." + +msgid "" +"Your receiver is now ready to be used.\n" +"\n" +"Your internet connection is working.\n" +"\n" +msgstr "" +" Ваш реÑивер готовий до роботи.\n" +"\n" +"Інтернет з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð²Ð¶Ðµ працює.\n" +"\n" +"ÐатиÑніть ОК Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ.\n" + +msgid "" +"Your receiver is now ready to use.\n" +"\n" +"Your internet connection is working now.\n" +"\n" +"Please press OK to continue." +msgstr "" +" Ваш реÑивер готовий до роботи.\n" +"\n" +"Інтернет з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð²Ð¶Ðµ працює.\n" +"\n" +"ÐатиÑніть ОК Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ." + +msgid "Your receiver is rebooting" +msgstr "ÐŸÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ€ÐµÑивера" + +msgid "Your receiver is shutting down" +msgstr "Ваш реÑивер переходить в глибокий режим ОчікуваннÑ" + +msgid "Your receiver is shutting down. Please stand by..." +msgstr "Ваш реÑивер виключаетьÑÑ. Будь лаÑка, почекайте..." + +msgid "Your receiver might be unusable now. Please consult the manual for further assistance before rebooting your receiver." +msgstr "Зараз ваш реÑивер може бути непридатним Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑтаннÑ. ЗвернітьÑÑ Ð´Ð¾Ñ–Ð½Ñтрукції Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— допомоги до його перезавантаженнÑ." + +msgid "Your receiver will got to stand by due to the sleeptimer." +msgstr "Ваш реÑивер буде вимкнений за таймером Ñну." + +msgid "Your receiver will got to standby due to inactivity." +msgstr "Ваш реÑивер буде переведений в Режим ÐžÑ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñ‡ÐµÑ€ÐµÐ· бездіÑльніÑÑ‚ÑŒ." + +msgid "Your receiver will restart after pressing OK on your remote control." +msgstr "Ваш реÑивер буде перезавантажений піÑÐ»Ñ Ð½Ð°Ñ‚Ð¸ÑÐºÐ°Ð½Ð½Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸ OK на пульті." + +msgid "" +"Your wireless LAN internet connection could not be started!\n" +"Have you attached your USB WLAN Stick?\n" +"\n" +"Please choose what you want to do next." +msgstr "" +"Ваше бездротове інтернет з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð½Ðµ може бути активовано.\n" +"Ви підключили USB WLAN адаптер?\n" +"\n" +"Оберіть, що будете робити далі." + +msgid "Zap" +msgstr "ПереключитиÑÑŒ" + +msgid "Zap back to previously tuned service?" +msgstr "ПереключитиÑÑ Ð½Ð° попередній ÑервіÑ?" + +msgid "Zap back to service before positioner setup?" +msgstr "ПовернутьÑÑ Ð½Ð° попередній ÑÐµÑ€Ð²Ñ–Ñ ?" + +msgid "Zap back to service before tuner setup?" +msgstr "ВернутÑÑ Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ð¾ к наÑтройкам тюнер?" + +msgid "Zap focus to Picture in Picture" +msgstr "ПереключитиÑÑŒ в екрані PiP" + +msgid "Zap focus to main screen" +msgstr "ПереключитиÑÑŒ в головному екрані" + +msgid "Zap mode" +msgstr "Режими екрана при перемиканні" + +msgid "Zap to selected channel" +msgstr "ПереключитиÑÑŒ на вибраний канал" + +msgid "Zap to selected channel, or show detailed event info (depends on configuration)" +msgstr "Переключити на обраний канал, або показати докладний ЕПГ (залежить від конфигурації)" + +msgid "[alternative edit]" +msgstr "[Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð»ÑŒÑ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð¸]" + +msgid "[bouquet edit]" +msgstr "[Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÑƒÐºÐµÑ‚Ñ–Ð²]" + +msgid "[favourite edit]" +msgstr "[Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð²Ð¾Ñ€Ð¸Ñ‚Ñ–Ð²]" + +msgid "[move mode]" +msgstr "[режим переміщеннÑ]" + +msgid "a gui to assign services/providers to common interface modules" +msgstr "Приховати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилки від CI модулÑ." + +msgid "a gui to assign services/providers/caids to common interface modules" +msgstr "Ð†Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÑервіÑів/провайдерів/ідентів на CAM-модулі" + +msgid "abort alternatives edit" +msgstr "перервати Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð»ÑŒÑ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð¸" + +msgid "abort bouquet edit" +msgstr "перервати Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÑƒÐºÐµÑ‚Ð°" + +msgid "abort favourites edit" +msgstr "перервати Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð²Ð¾Ñ€Ð¸Ñ‚Ñ–Ð²" + +msgid "about to start" +msgstr "починаєтьÑÑ" + +msgid "activate network adapter configuration" +msgstr "закрити конфігуратор мережі" + +msgid "add alternatives" +msgstr "додати альтернативу" + +msgid "add bookmark" +msgstr "додати закладку" + +msgid "add bouquet" +msgstr "додати фаворит" + +msgid "add marker" +msgstr "додати маркер" + +msgid "add service to bouquet" +msgstr "додати ÑÐµÑ€Ð²Ñ–Ñ Ð² фаворит" + +msgid "add service to favourites" +msgstr "додати ÑÐµÑ€Ð²Ñ–Ñ Ð² фаворити" + +msgid "add to parental protection" +msgstr "Додати в батьківÑький контроль" + +msgid "adult movie/drama" +msgstr "еротичний фільм/драма" + +msgid "advanced" +msgstr "Розширений" + +msgid "adventure/western/war" +msgstr "пригоди/веÑтерн/війÑьковий" + +msgid "advertisement/shopping" +msgstr "реклама/шопінг" + +msgid "after " +msgstr "через " + +msgid "alphabetic" +msgstr "Ñортувати за алфавітом" + +msgid "alphabetic reverse" +msgstr "за зворотнім алфавітом" + +msgid "alternative" +msgstr "альтернативний" + +msgid "always" +msgstr "" + +msgid "and select next channel" +msgstr "" + +msgid "and select previous channel" +msgstr "" + +msgid "arts/culture (without music, general)" +msgstr "миÑтецтво/культура (без музики, загальне)" + +msgid "arts/culture magazine" +msgstr "миÑтецтво/культура журнал" + +msgid "athletics" +msgstr "атлетика" + +msgid "audio tracks" +msgstr "звукові доріжки" + +msgid "auto" +msgstr "авто" + +msgid "automatic" +msgstr "автоматично" + +msgid "back" +msgstr "назад" + +msgid "background image" +msgstr "фонове зображеннÑ" + +msgid "ballet" +msgstr "балет" + +#, python-format +msgid "bc%s" +msgstr "bc%s" + +msgid "better" +msgstr "краще" + +msgid "black" +msgstr "чорний" + +msgid "black & white" +msgstr "чорне & біле" + +msgid "blacklist" +msgstr "чорний ÑпиÑок" + +msgid "blue" +msgstr "Ñиній" + +msgid "broadcasting/press" +msgstr "мовленнÑ/преÑа" + +msgid "by date" +msgstr "Ñортувати по даті" + +msgid "cartoon/puppets" +msgstr "мультфільм/кукли" + +msgid "center" +msgstr "центр" + +msgid "centered" +msgstr "центр" + +msgid "centered, wrapped" +msgstr "центр, загорнутий" + +msgid "chapters" +msgstr "розділи" + +msgid "childrens's/youth program (general)" +msgstr "дитÑчі/молодіжні(загальне)" + +msgid "circular left" +msgstr "кругова ліва" + +msgid "circular right" +msgstr "кругова права" + +msgid "comedy" +msgstr "комедіÑ" + +msgid "complex" +msgstr "комплекÑ" + +msgid "config menu" +msgstr "меню конфігурації" + +msgid "confirmed" +msgstr "приÑвоєно" + +msgid "connected" +msgstr "підключено" + +msgid "continue" +msgstr "Продовжити" + +msgid "cooking" +msgstr "риготуваннÑ" + +msgid "copy to bouquets" +msgstr "копіювати в пакет" + +msgid "create directory" +msgstr "Ñтворити каталог" + +#, python-format +msgid "currently installed image: %s" +msgstr "поточний вÑтановлений імідж: %s" + +msgid "daily" +msgstr "щоднÑ" + +msgid "day" +msgstr "день" + +msgid "default" +msgstr "за замовчуваннÑм" + +msgid "delete cut" +msgstr "видалити вирізане" + +msgid "delete..." +msgstr "" + +msgid "descramble and record ecm" +msgstr "Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ñ– Ð·Ð°Ð¿Ð¸Ñ ECM (відкл. декодуваннÑ)" + +msgid "detective/thriller" +msgstr "детектив/трилер" + +msgid "disable" +msgstr "вимкнути" + +msgid "disable move mode" +msgstr "вимкнути режим переміщеннÑ" + +msgid "disabled" +msgstr "вимкнено" + +msgid "disconnected" +msgstr "вимкнено" + +msgid "discussion/interview/debate" +msgstr "обговореннÑ/інтерв'ÑŽ/диÑкуÑÑ–Ñ—" + +msgid "do nothing" +msgstr "не робити нічого" + +msgid "documentary" +msgstr "документальний фільм" + +msgid "don't descramble, record ecm" +msgstr "ÐЕ декодувати, тільки Ð·Ð°Ð¿Ð¸Ñ ECM (відкл. декодуваннÑ)" + +msgid "done!" +msgstr "виконано!" + +msgid "east" +msgstr "ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð½Ð° Ñхід" + +msgid "economics/social advisory" +msgstr "економіка/Ñоціальна конÑультаціÑ" + +msgid "edit alternatives" +msgstr "змінити альтернативу" + +msgid "education/science/factual topics (general)" +msgstr "оÑвіта/наука/факти(загальне)" + +msgid "empty" +msgstr "порожній" + +msgid "enable" +msgstr "увімкнути" + +msgid "enable bouquet edit" +msgstr "увімкнути Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð²Ð¾Ñ€Ð¸Ñ‚Ð°" + +msgid "enable favourite edit" +msgstr "увімкнути Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð²Ð¾Ñ€Ð¸Ñ‚Ñ–Ð²" + +msgid "enable move mode" +msgstr "увімкнути режим переміщеннÑ" + +msgid "enabled" +msgstr "увімкнено" + +msgid "end alternatives edit" +msgstr "закінчити Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð»ÑŒÑ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð¸" + +msgid "end bouquet edit" +msgstr "закінчити Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÑƒÐºÐµÑ‚Ð°" + +msgid "end cut here" +msgstr "кінець редагуваннÑ" + +msgid "end favourites edit" +msgstr "закінчити Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð²Ð¾Ñ€Ð¸Ñ‚Ñ–Ð²" + +msgid "entertainment (10-16 year old)" +msgstr "розваги (10-16 років)" + +msgid "entertainment (6-14 year old)" +msgstr "розваги (6-14 років)" + +msgid "equal to" +msgstr "також Ñк" + +msgid "equestrian" +msgstr "кінний Ñпорт" + +msgid "exit DVD player or return to file browser" +msgstr "Закрити DVD плеєр Ñ– повернутиÑÑ Ð² провідник" + +msgid "exit movielist" +msgstr "" + +msgid "exit network adapter configuration" +msgstr "закрити конфігуратор мережі" + +msgid "exit networkadapter setup menu" +msgstr "закрити Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼ÐµÑ€ÐµÐ¶ÐµÐ²Ð¾Ð³Ð¾ адаптера" + +msgid "experimental film/video" +msgstr "екÑпериментальний фільм/відео" + +msgid "false" +msgstr "ÐÑ–" + +msgid "fashion" +msgstr "мода" + +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "формат файла (BMP, PNG, JPG, GIF)" + +msgid "filename" +msgstr "ім'Ñ Ñ„Ð°Ð¹Ð»Ñƒ" + +msgid "film/cinema" +msgstr "фільм/кіно" + +msgid "fine arts" +msgstr "образотворчі миÑтецтва" + +msgid "fine-tune your display" +msgstr "точна наÑтройка диÑплеÑ" + +msgid "fitness & health" +msgstr "Ñ„Ñ–Ñ‚Ð½ÐµÑ & здоров'Ñ" + +msgid "flat alphabetic" +msgstr "Ñортувати за алфавітом" + +msgid "flat alphabetic reverse" +msgstr "за зворотнім алфавітом" + +msgid "folk/traditional music" +msgstr "народна/традиційна музика" + +msgid "football/soccer" +msgstr "футбол" + +msgid "foreign countries/expeditions" +msgstr "зарубіжні країни/екÑпедиції" + +msgid "forward to the next chapter" +msgstr "вперед до наÑтупного розділу" + +msgid "free" +msgstr "вільно" + +msgid "from" +msgstr "" + +msgid "further education" +msgstr "дальнейшее образование" + +msgid "game show/quiz/contest" +msgstr "гра шоу/вікторина/конкурÑ" + +msgid "gardening" +msgstr "Ñадівництво" + +msgid "go to deep standby" +msgstr "перейти в глибокий Режим очікуваннÑ" + +msgid "go to standby" +msgstr "перейти в Режим очікуваннÑ" + +msgid "grab this frame as bitmap" +msgstr "зберегти фрейм Ñк раÑтрове зображеннÑ" + +msgid "green" +msgstr "зелений" + +msgid "handicraft" +msgstr "ремеÑло" + +msgid "height" +msgstr "виÑота" + +msgid "help..." +msgstr "допомога..." + +msgid "horizontal" +msgstr "горизонтальна" + +msgid "information/education/school program" +msgstr "ИнформаціÑ/оÑвіта/шкільна програма" + +msgid "init module" +msgstr "init модуль" + +msgid "init modules" +msgstr "init модуль" + +msgid "insert mark here" +msgstr "вÑтавити мітку" + +msgid "invalid type" +msgstr "недійÑний тип" + +msgid "jazz" +msgstr "джаз" + +msgid "jump back to the previous title" +msgstr "перейти до попереднього розділу" + +msgid "jump forward to the next title" +msgstr "перейти до наÑтупного розділу" + +msgid "languages" +msgstr "мови" + +msgid "leave movie player..." +msgstr "вийти з відеоплеєра..." + +msgid "left" +msgstr "зліва" + +msgid "left, wrapped" +msgstr "зліва, загорнутий" + +msgid "leisure hobbies (general)" +msgstr "дозвіллÑ/хобі (загальне)" + +msgid "length" +msgstr "довжина" + +msgid "limit ..., aborting !" +msgstr "ліміт ..., перерваний !" + +msgid "list style compact" +msgstr "компактний ÑпиÑок" + +msgid "list style compact with description" +msgstr "компактний ÑпиÑок з опиÑом" + +msgid "list style default" +msgstr "ÑпиÑок за замовчуваннÑм" + +msgid "list style single line" +msgstr "ÑпиÑок в один Ñ€Ñдок" + +msgid "literature" +msgstr "література" + +msgid "live broadcast" +msgstr "прÑма транÑлÑціÑ" + +msgid "locked" +msgstr "захоплено" + +msgid "loopthrough to" +msgstr "Ð¿ÐµÑ‚Ð»Ñ Ð´Ð¾" + +msgid "magazines/reports/documentary" +msgstr "журнали/репортажі/документальний" + +msgid "manual" +msgstr "ручний" + +msgid "martial sports" +msgstr "єдиноборÑтво" + +msgid "medicine/physiology/psychology" +msgstr "медицина/физиологиÑ/пÑихологиÑ" + +msgid "menu" +msgstr "меню" + +msgid "mins" +msgstr "хв" + +msgid "minutes" +msgstr "хвилин" + +msgid "month" +msgstr "міÑÑц" + +msgid "motor sport" +msgstr "мотоÑпорт" + +msgid "motoring" +msgstr "автомобілі" + +msgid "move down to last entry" +msgstr "переміÑтити вниз до оÑтаннього запиÑу" + +msgid "move down to next entry" +msgstr "переміÑтити вниз до наÑтупного запиÑу" + +msgid "move up to first entry" +msgstr "переміÑтити вгору до першого запиÑу" + +msgid "move up to previous entry" +msgstr "переміÑтити вгору до попереднього запиÑу" + +msgid "movie/drama (general)" +msgstr "фільми/драма (загальне)" + +msgid "multinorm" +msgstr "мультинорм" + +msgid "music/ballet/dance (general)" +msgstr "музика/балет/танець (загальне)" + +msgid "musical/opera" +msgstr "музика/опера" + +msgid "nature/animals/environment" +msgstr "природа/тварини/навколишнє Ñередовище" + +msgid "never" +msgstr "ніколи" + +msgid "new media" +msgstr "нові media" + +msgid "news magazine" +msgstr "новинний журнал" + +msgid "news/current affairs (general)" +msgstr "новини/поточні події (загальне)" + +msgid "news/weather report" +msgstr "новини/прогноз погоди" + +msgid "no" +msgstr "ÐÑ–" + +msgid "no CAId selected" +msgstr "показати другу вибрану позначку" + +msgid "no CI slots found" +msgstr "не знайдено модуль" + +msgid "no module found" +msgstr "не знайдено модуль" + +msgid "no storage devices found" +msgstr "Мережеві приÑтрої не виÑвлені!" + +msgid "none" +msgstr "ніÑкої" + +msgid "normal" +msgstr "нормальна (декодуваннÑ)" + +msgid "not configured" +msgstr "немає конфігурації" + +msgid "not locked" +msgstr "не захоплено" + +msgid "not supported" +msgstr "Ðевідома" + +msgid "not used" +msgstr "не викориÑтано" + +msgid "nothing connected" +msgstr "нічого не підключено" + +msgid "of a DUAL layer medium used." +msgstr "викориÑтовуваного двошарового ноÑÑ–Ñ." + +msgid "of a SINGLE layer medium used." +msgstr "викориÑтовуваного одношарового ноÑÑ–Ñ." + +msgid "off" +msgstr "вимкн." + +msgid "offset is" +msgstr "зÑув" + +msgid "on" +msgstr "увімкн." + +msgid "on READ ONLY medium." +msgstr "на диÑк тільки Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ." + +msgid "on end of movie" +msgstr "в кінці фільму" + +msgid "once" +msgstr "один раз" + +msgid "only from deep standby" +msgstr "" + +msgid "only from standby" +msgstr "" + +msgid "open EPG..." +msgstr "" + +msgid "open Info..." +msgstr "" + +msgid "open nameserver configuration" +msgstr "відкрити конфігуратор DNS" + +msgid "original" +msgstr "орігинал" + +msgid "original language" +msgstr "мова оригіналу" + +msgid "pass" +msgstr "передати" + +msgid "performing arts" +msgstr "виконавÑькі види миÑтецтва" + +msgid "play as picture in picture" +msgstr "увімкнути Ñк картинку в картинці" + +msgid "play in mainwindow" +msgstr "включити на оÑновному екрані" + +msgid "please press OK when ready" +msgstr "будь лаÑка, натиÑніть OK коли будете готові" + +msgid "please wait, loading picture..." +msgstr "Зачекайте, Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½ÑŒ..." + +msgid "popular culture/traditional arts" +msgstr "популÑрні культура/традиції миÑтецтва" + +msgid "pre-school children's program" +msgstr "дошкільні дитÑчі програми" + +msgid "receiver software because updates are available." +msgstr "доÑтупне Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ реÑивера." + +msgid "record" +msgstr "запиÑ" + +msgid "recording..." +msgstr "запиÑ..." + +msgid "red" +msgstr "Червоний" + +msgid "religion" +msgstr "релігіÑ" + +msgid "remarkable people" +msgstr "чудові люди" + +msgid "remove after this position" +msgstr "видалити піÑÐ»Ñ Ñ†Ñ–Ñ”Ñ— позиції" + +msgid "remove all alternatives" +msgstr "видалити вÑÑ– альтернативи" + +msgid "remove all new found flags" +msgstr "видалити вÑÑ– нові знайдені прапори" + +msgid "remove before this position" +msgstr "видалити перед цією позицією" + +msgid "remove bookmark" +msgstr "видалити закладку" + +msgid "remove directory" +msgstr "видалити каталог" + +msgid "remove entry" +msgstr "видалити обране" + +msgid "remove from parental protection" +msgstr "видалити з батьківÑького контролю" + +msgid "remove new found flag" +msgstr "видалити прапор новий знайдений " + +msgid "remove selected satellite" +msgstr "видалити вибраний Ñупутник" + +msgid "remove this mark" +msgstr "видалити мітку" + +msgid "rename entry" +msgstr "перейменувати обране" + +msgid "repeat playlist" +msgstr "" + +msgid "repeated" +msgstr "повторний" + +msgid "reverse by date" +msgstr "повторний" + +msgid "rewind to the previous chapter" +msgstr "назад на попередній розділ" + +msgid "right" +msgstr "право" + +msgid "right, wrapped" +msgstr "право, загорнутий" + +msgid "rock/pop" +msgstr "рок/поп" + +msgid "romance" +msgstr "романÑ" + +msgid "save last directory on exit" +msgstr "зберегти оÑтанній каталог при виході" + +msgid "save playlist on exit" +msgstr "Зберегти плейлиÑÑ‚ при виході" + +msgid "scan state" +msgstr "Ñтан пошуку" + +msgid "science fiction/fantasy/horror" +msgstr "наукова фантаÑтика/фентезі/жахи" + +msgid "second cable of motorized LNB" +msgstr "другий кабель від LNB на моторі" + +msgid "seconds" +msgstr "Ñекунд" + +msgid "select" +msgstr "вибрати" + +msgid "select CAId's" +msgstr "вибрати CAId's" + +msgid "select EPG..." +msgstr "" + +msgid "select Info..." +msgstr "" + +msgid "select menu entry" +msgstr "вибрати із меню" + +msgid "select movie" +msgstr "вибрати фільм" + +msgid "select the movie path" +msgstr "" + +msgid "serious music/classic music" +msgstr "клаÑична музика" + +msgid "serious/classical/religious/historical movie/drama" +msgstr "Ñерйозний/клаÑичний/релігійний/Ñ–Ñторичний фільм/драма" + +msgid "service PIN" +msgstr "Змінити PIN-код ÑервіÑу" + +msgid "set as startup service" +msgstr "зробити ÑÐµÑ€Ð²Ñ–Ñ Ñтартовим" + +msgid "setup PIN" +msgstr "Змінити PIN-код налаштувань" + +msgid "show DVD main menu" +msgstr "показати DVD в головному меню" + +msgid "show all tags" +msgstr "показати вÑÑ– теги" + +msgid "show alternatives" +msgstr "показати альтернативу" + +msgid "show event details" +msgstr "показати деталі події" + +msgid "show extended description" +msgstr "" + +msgid "show mediaplayer on mainmenu" +msgstr "Показати медіаплеєр у головному меню" + +msgid "show softwaremanager in setup menu" +msgstr "Показати менеджер Ñофта в меню налаштувань" + +msgid "show softwaremanager on blue button" +msgstr "Показати менеджер Ñофта в меню доповнень" + +msgid "show tag menu" +msgstr "" + +msgid "show transponder info" +msgstr "показати інфо транÑпондера" + +msgid "show/game show (general)" +msgstr "показ ігрових шоу (загальне)" + +msgid "shuffle" +msgstr "випадковий порÑдок" + +msgid "shut down" +msgstr "Вимкнути" + +msgid "simple" +msgstr "проÑтий" + +msgid "skip backward" +msgstr "Перемотка назад" + +msgid "skip forward" +msgstr "Перемотка вперед" + +msgid "soap/melodram/folkloric" +msgstr "мильна опера/мелодрама/фольклор" + +msgid "social/political issues/economics (general)" +msgstr "Ñоціальні/політичні питаннÑ/Економіка (загальне)" + +msgid "social/spiritual science" +msgstr "Ñоціальна/духовна наука" + +msgid "sorting of playlists" +msgstr "Ñортировка плейлиÑтов" + +msgid "special characters" +msgstr "Ñпеціальна подіÑ" + +msgid "special events" +msgstr "Ñпеціальна подіÑ" + +msgid "special format data DVD (HDTV compatible)" +msgstr "Ñпеціальний формат даних DVD (ÑуміÑний з HDTV)" + +msgid "sports (general)" +msgstr "Ñпорт (загальне)" + +msgid "sports magazine" +msgstr "Ñпортивний магазин" + +msgid "standard" +msgstr "Ñтандарт" + +msgid "start cut here" +msgstr "початок редагуваннÑ" + +msgid "start directory" +msgstr "початковий каталог" + +msgid "stepsize" +msgstr "розмір кроку" + +msgid "stereo" +msgstr "Ñтерео" + +msgid "stop using as startup service" +msgstr "відключити від автоÑтарту ÑервіÑ" + +msgid "switch to bookmarks" +msgstr "перейти на закладки" + +msgid "switch to filelist" +msgstr "переключити на ÑпиÑок файлів" + +msgid "switch to the next angle" +msgstr "перейти в наÑтупній кут" + +msgid "switch to the next audio track" +msgstr "перейти до наÑтупної звукової доріжки" + +msgid "switch to the next subtitle language" +msgstr "переключитиÑÑ Ð½Ð° наÑтупний мову Ñубтитрів" + +msgid "talk show" +msgstr "шоу беÑіда" + +msgid "team sports" +msgstr "командні види Ñпорту" + +msgid "technology/natural science" +msgstr "технології/природознавÑтво" + +msgid "template file" +msgstr "Шаблон файла" + +msgid "tennis/squash" +msgstr "теніÑ/Ñквош" + +msgid "this recording" +msgstr "це запиÑано" + +msgid "this service is protected by a parental control pin" +msgstr "цей ÑÐµÑ€Ð²Ñ–Ñ Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¸Ð¹ PIN-кодом батьківÑького контролю" + +msgid "toggle time, chapter, audio, subtitle info" +msgstr "Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ, розділи, Ðудіо, Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ñубтитрів" + +msgid "top" +msgstr "вверх" + +msgid "tourism/travel" +msgstr "туризм/подорожі" + +msgid "true" +msgstr "Так" + +msgid "unavailable" +msgstr "недоÑтупно" + +msgid "unconfirmed" +msgstr "не приÑвоєно" + +msgid "undefined" +msgstr "визначений кориÑтувачем" + +msgid "unknown" +msgstr "<невідомий>" + +msgid "unknown service" +msgstr "невідомий ÑервіÑ" + +msgid "unpublished" +msgstr "неопублікований" + +msgid "until standby/restart" +msgstr "до режиму очікуваннÑ/перезавантаженнÑ" + +msgid "user defined" +msgstr "визначений кориÑтувачем" + +msgid "variety show" +msgstr "шоу вар'єте" + +msgid "vertical" +msgstr "вертикальна" + +msgid "wait for ci..." +msgstr "Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ ci..." + +msgid "wait for mmi..." +msgstr "Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ mmi..." + +msgid "waiting" +msgstr "очікуваннÑ" + +msgid "water sport" +msgstr "водний Ñпорт" + +msgid "weekly" +msgstr "ЩотижнÑ" + +msgid "west" +msgstr "ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð½Ð° захід" + +msgid "when PiPzap enabled zap channel down..." +msgstr "" + +msgid "when PiPzap enabled zap channel up..." +msgstr "" + +msgid "white" +msgstr "білий" + +msgid "whitelist" +msgstr "білий ÑпиÑок" + +msgid "width" +msgstr "ширина" + +msgid "winter sport" +msgstr "зимовий Ñпорт" + +msgid "wireless network interface" +msgstr "Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð±ÐµÐ·Ð´Ñ€Ð¾Ñ‚Ð¾Ð²Ð¾Ñ— мережі" + +#, python-format +msgid "with %d error" +msgid_plural "with %d errors" +msgstr[0] "Ñ %d помилкою" +msgstr[1] "Ñ %d помилками" +msgstr[2] "Ñ %d помилками" + +msgid "working" +msgstr "працюючий" + +msgid "yellow" +msgstr "жовтий" + +msgid "yes" +msgstr "Так" + +msgid "yes (keep feeds)" +msgstr "так (зберігати канали)" + +msgid "zap" +msgstr "перейти" + +msgid "zap and record" +msgstr "перейти Ñ– запиÑати" + +msgid "zapped" +msgstr "переключено" + +#~ msgid " (%s times)\n" +#~ msgstr " (%s разів)\n" + +#~ msgid " (%s votes)\n" +#~ msgstr " (%s разів)\n" + +#~ msgid " User Rating" +#~ msgstr " Рейтинг" + +#~ msgid " User Rating: " +#~ msgstr " Рейтинг: " + +#~ msgid " min." +#~ msgstr " хв." + +#~ msgid " newcamd.list" +#~ msgstr " newcamd.list" + +# message04 +#~ msgid " size to be backed up: " +#~ msgstr " розмір резервної копії: " + +#~ msgid " times" +#~ msgstr " разів" + +#~ msgid " еееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееЕ-Панель ПОЧÐТОК" +#~ msgstr " еееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееЕЕ-Панель ПОЧÐТОК" + +#~ msgid " еееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееЕ-Панель кінець" +#~ msgstr " еееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееЕЕ-Панель кінець" + +#~ msgid "\"TMBD Details: current event\" quick button" +#~ msgstr "Швидка кнопка Ð´Ð»Ñ \"TMBD пошук: поточну подію\"" + +#~ msgid "%3.02f m/s" +#~ msgstr "%3.02f м/Ñ" + +#~ msgid "%d bytes" +#~ msgstr "%d байт" + +#~ msgid "%d mmHg" +#~ msgstr "%d мм рт.ÑÑ‚." + +#~ msgid "" +#~ "%s\n" +#~ "Profile: %s\n" +#~ "Select event for search:" +#~ msgstr "" +#~ "%s\n" +#~ "Профиль: %s\n" +#~ "Виберіть подію Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ:" + +#~ msgid "" +#~ "%s\n" +#~ "Select event for search:" +#~ msgstr "" +#~ "%s\n" +#~ "Виберіть подію Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ:" + +#~ msgid "%s %s %s (%s free %s used)" +#~ msgstr "%s %s %s (%s Ñвободно %s занÑто)" + +#~ msgid "%s %s (%03d MB free)\n" +#~ msgstr "%s %s (%03d MB Ñвободно)\n" + +#~ msgid "%s %s (%d.%03d GB free)\n" +#~ msgstr "%s %s (%d.%03d GB Ñвободно)\n" + +#~ msgid "%s Switcher: - %s" +#~ msgstr "%s перемикач: - %s" + +#~ msgid "%s downloaded Successfull" +#~ msgstr "%s завантажено" + +#~ msgid "%s downloaded UnSuccessfull" +#~ msgstr "%s не завантажено" + +#~ msgid "%s hours" +#~ msgstr "%s чаÑ." + +#~ msgid "%s is UnInstalled" +#~ msgstr "%s видалено" + +#~ msgid "%s is downloaded" +#~ msgstr "%s завантажено" + +#~ msgid "%s is installed" +#~ msgstr "%s вÑтановлено" + +#~ msgid "%s km" +#~ msgstr "%s км" + +#~ msgid "%s mb" +#~ msgstr "%s мб" + +#~ msgid "%s min" +#~ msgstr "%s хв" + +#~ msgid "%s%% humidity" +#~ msgstr "%s%% вологіÑÑ‚ÑŒ" + +#~ msgid "%s.gz created in /tmp" +#~ msgstr "%s.gz Ñтворений в /tmp" + +#~ msgid "*.tar.gz & *.bh.tgz & *.ipk removed" +#~ msgstr "*.tar.gz, *.bh.tgz, *.ipk видалені" + +#~ msgid "/ Duration: " +#~ msgstr "/ ТриваліÑÑ‚ÑŒ: " + +#~ msgid "0 min." +#~ msgstr "0 хв." + +#~ msgid "120 min" +#~ msgstr "120 хв" + +#~ msgid "180 min" +#~ msgstr "180 хв" + +#~ msgid "240 min" +#~ msgstr "240 хв" + +#~ msgid "2boom's Yahoo! Weather" +#~ msgstr "Погода Yahoo!" + +#~ msgid "30 min" +#~ msgstr "30 хв" + +#~ msgid "60 min" +#~ msgstr "60 хв" + +#~ msgid "< Event View buttons: TV, RADIO, TEXT >" +#~ msgstr "< Кнопки Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду деталей: TV, RADIO, TEXT >" + +#~ msgid "< Single/Multi EPG buttons: HELP, RADIO, TEXT >" +#~ msgstr "< Кнопки в одиночному/мульти EPG: HELP, RADIO, TEXT >" + +#~ msgid "< empty >" +#~ msgstr "< порожньо >" + +#~ msgid "< text >" +#~ msgstr "< текÑÑ‚ >" + +#~ msgid "A new version of the plugin. recommend that you upgrade. Click OK to update" +#~ msgstr "Є нова верÑÑ–Ñ Ð¿Ð»Ð°Ð³Ñ–Ð½Ð°. Радимо вам оновити. ÐатиÑніть кнопку ОК,щоб оновити" + +#~ msgid "AA" +#~ msgstr "AA" + +#~ msgid "AB" +#~ msgstr "AB" + +#~ msgid "Action for inactivity:" +#~ msgstr "Ð”Ñ–Ñ Ð¿Ñ€Ð¸ бездіÑльноÑÑ‚Ñ– " + +#~ msgid "Activate PiP" +#~ msgstr "Ðктивувати PIP" + +#~ msgid "Activate Poster Preview" +#~ msgstr "Ðктивувати прев'ÑŽ поÑтерів" + +#~ msgid "Active Profile:" +#~ msgstr "Ðктивний Профіль:" + +#~ msgid "Active SoftCam:" +#~ msgstr "Ðктивний SoftCam:" + +#~ msgid "Actors" +#~ msgstr "Ð’ ролÑÑ…" + +#~ msgid "Actors:" +#~ msgstr "Ðктори:" + +#~ msgid "Add \"Lookup in TMBD\" Info Button to GraphMultiEpg" +#~ msgstr "\"Пошук в TMBD\" на кнопці інфо в графічному EPG" + +#~ msgid "Add \"Lookup in TMBD\" Info Button to multi-EPG" +#~ msgstr "\"Пошук в TMBD\" на кнопці інфо в мульти-EPG" + +#~ msgid "Add \"Lookup in TMBD\" Info Button to single-EPG" +#~ msgstr "\"Пошук в TMBD\" на кнопці інфо в одинарному EPG" + +#~ msgid "Add \"open plugin VCS\" Info/EPG Button to nStreamVOD" +#~ msgstr "\"відкрити плагін VCS\" на кнопці Info/EPG в nStreamVOD" + +#~ msgid "Add \"search in TMBD\" Info/EPG Button to nStreamVOD" +#~ msgstr "\"Пошук в TMBD\" на кнопці Info/EPG в nStreamVOD" + +#~ msgid "Add directory to Bookmarks" +#~ msgstr "Додати каталог в закладки" + +#~ msgid "Add own biss in keyfile" +#~ msgstr "Додавати влаÑний файл ключів" + +#~ msgid "Add tabs" +#~ msgstr "Додати" + +#~ msgid "Add/remove timer for current event" +#~ msgstr "Додати/видалити таймер Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ñ— події" + +# message09 +#~ msgid "Additional backup -> " +#~ msgstr "Додаткова резервна ÐºÐ¾Ð¿Ñ–Ñ -> " + +#~ msgid "Adjust HDMI CEC settings" +#~ msgstr "Ð’Ñтоновіть Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ 3D" + +#~ msgid "Adv. UnInstall" +#~ msgstr "Продв. видаленнÑ" + +#~ msgid "Age" +#~ msgstr "Віковий ценз" + +#~ msgid "Age:" +#~ msgstr "Ценз:" + +#~ msgid "All posters for movie" +#~ msgstr "Ð’ÑÑ– поÑтери до запиÑів" + +#~ msgid "All posters removed!" +#~ msgstr "Ð’ÑÑ– поÑтери видалені!" + +#~ msgid "All satellites" +#~ msgstr "Ð’ÑÑ– Ñупутники" + +#~ msgid "Allready running %s" +#~ msgstr "Вже запущено %s" + +# message08 +#~ msgid "Almost there... Now building the USB-Image!" +#~ msgstr "Майже готово ... Тепер Ñтворюємо прошивку на USB!" + +#~ msgid "And will shutdown your receiver over " +#~ msgstr "І вимкне ваш реÑивер через " + +#~ msgid "Angola" +#~ msgstr "Ðнгола" + +#~ msgid "Appeared" +#~ msgstr "Рік випуÑку" + +#~ msgid "Appeared:" +#~ msgstr "Рік випуÑку:" + +#~ msgid "Apply the new System time?" +#~ msgstr "ЗаÑтоÑувати новий ÑиÑтемний чаÑ?" + +#~ msgid "Applying" +#~ msgstr "ЗаÑтоÑовуємо" + +#~ msgid "Apr." +#~ msgstr "Ðпр." + +#~ msgid "Argentina" +#~ msgstr "Ðргентина" + +#~ msgid "AspectRatioSwitch Setup" +#~ msgstr "AspectRatioSwitch ÐалаштуваннÑ" + +#~ msgid "Aug." +#~ msgstr "Ðвг." + +#~ msgid "Australia" +#~ msgstr "ÐвÑтраліÑ" + +#~ msgid "Austria" +#~ msgstr "ÐвÑтріÑ" + +#~ msgid "AutoDownload epg.dat" +#~ msgstr "ÐÐ²Ñ‚Ð¾Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ epg.dat" + +#~ msgid "AutoDownload time" +#~ msgstr "Ð§Ð°Ñ Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ" + +#~ msgid "AutoDownload weekday" +#~ msgstr "День Ñ‚Ð¸Ð¶Ð½Ñ Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ" + +#~ msgid "AutoShutDown Setup" +#~ msgstr "Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÐвтовимкненнÑ" + +#~ msgid "AutoShutDown settings" +#~ msgstr "AutoShutDown ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐвтовимкненнÑ" + +#~ msgid "AutoShutDown: %s ?" +#~ msgstr "ÐвтовимкненнÑ: %s ?" + +#~ msgid "Autobackup to ../epgtmp.gz" +#~ msgstr "Ðвтоматичне Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð² ../epgtmp.gz" + +#~ msgid "Automatic save/load EPG" +#~ msgstr "Ðвтоматичне Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ– Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ EPG" + +#~ msgid "Available in this version:" +#~ msgstr "Що нового в цій верÑÑ–Ñ—:" + +#~ msgid "Available version:" +#~ msgstr "ДоÑтупна верÑÑ–Ñ:" + +#~ msgid "Azerbaidjan" +#~ msgstr "Ðзербайджан" + +#~ msgid "BA" +#~ msgstr "BA" + +# message02 +#~ msgid "BACK-UP TOOL, FOR MAKING A COMPLETE BACK-UP" +#~ msgstr "УТИЛІТРBACK-UP, ДЛЯ СТВОРЕÐÐЯ ПОВÐОЇ РЕЗЕРВÐОЇ КОПІЇ" + +#~ msgid "BB" +#~ msgstr "BB" + +#~ msgid "BackUp" +#~ msgstr "Зберегти" + +# message26 +#~ msgid "Backup done with: " +#~ msgstr "Резервна ÐºÐ¾Ð¿Ñ–Ñ Ð·Ñ€Ð¾Ð±Ð»ÐµÐ½Ð° зі швидкіÑÑ‚ÑŽ: " + +# message19 +#~ msgid "Backup finished and copied to your USB-flashdrive." +#~ msgstr "Резервне ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð¾ Ñ– тепер копіюютьÑÑ Ñ„Ð°Ð¹Ð»Ð¸ на USB ноÑій." + +#~ msgid "Bahamas" +#~ msgstr "Багами" + +#~ msgid "Bangladesh" +#~ msgstr "Бангладеш" + +#~ msgid "Begin of excluded interval (hh:mm):" +#~ msgstr "Початок чаÑового інтервалу (hh:mm):" + +#~ msgid "Behavior of 'pause' when paused" +#~ msgstr "Поведінка 'пауза' під Ñ‡Ð°Ñ Ð¿Ð°ÑƒÐ·Ð¸" + +#~ msgid "Belarus" +#~ msgstr "БілоруÑÑŒ" + +#~ msgid "Belgium" +#~ msgstr "БельгіÑ" + +#~ msgid "Best resolution for first found" +#~ msgstr "Краща розд. здатніÑÑ‚ÑŒ Ð´Ð»Ñ Ð¿ÐµÑ€ÑˆÐ¾Ð³Ð¾ знайденого" + +#~ msgid "Big poster" +#~ msgstr "Великий поÑтер" + +#~ msgid "Blowing snow" +#~ msgstr "Ðизова хуртовина" + +#~ msgid "Blustery" +#~ msgstr "Буйний вітер" + +#~ msgid "Brazil" +#~ msgstr "БразиліÑ" + +#~ msgid "Bulgaria" +#~ msgstr "БолгаріÑ" + +#~ msgid "CCcam config filename" +#~ msgstr "CCÑam ім'Ñ Ð¾Ñновного файлу конфігурації" + +#~ msgid "CCcam config switcher" +#~ msgstr "CCÑam перемикач" + +#~ msgid "CCcam configfile extention" +#~ msgstr "CCÑam Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ конфігурації" + +#~ msgid "CCcam configpath" +#~ msgstr "CCÑam шлÑÑ… до конфігурації" + +#~ msgid "Canada" +#~ msgstr "Канада" + +#~ msgid "Cannot poster %s saved - data error!" +#~ msgstr "Ðе можу зберегти %s - помилка даних!" + +#~ msgid "Cannot poster %s saved as background - data error!" +#~ msgstr "Ðе можу зберегти %s в ÑкоÑÑ‚Ñ– фону - помилки даних!" + +#~ msgid "Cardserver:" +#~ msgstr "КардÑервер:" + +#~ msgid "Certification" +#~ msgstr "Віковий ценз" + +#~ msgid "Change Poster Preview position" +#~ msgstr "Змінити позицію/розмір поÑтерів" + +#~ msgid "Change profile" +#~ msgstr "Змінити профіль" + +#~ msgid "Change system time was canceled, because %s" +#~ msgstr "СиÑтемний Ñ‡Ð°Ñ Ð½Ðµ змінено, так Ñк%s" + +#~ msgid "Channel Selection" +#~ msgstr "СпиÑок каналів" + +#~ msgid "Check if epg.dat exists" +#~ msgstr "ПеревірÑти наÑвніÑÑ‚ÑŒ epg.dat" + +#~ msgid "Check status Internet" +#~ msgstr "Перевірка Ñтану інтернету" + +#~ msgid "Check your internet connection" +#~ msgstr "Перевірте інтернет-з'єднаннÑ" + +#~ msgid "Check your system and reboot" +#~ msgstr "Перезавантажте ÑиÑтему" + +#~ msgid "Chile" +#~ msgstr "Чилі" + +#~ msgid "China" +#~ msgstr "Китай" + +#~ msgid "Choice database to search" +#~ msgstr "Вибір бази даних Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ" + +#~ msgid "Choice profile in search" +#~ msgstr "Вибір профілю Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ" + +#~ msgid "Choice profile in search:" +#~ msgstr "Виберіть профіль Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ:" + +#~ msgid "Choose action:" +#~ msgstr "Вибір дії:" + +#~ msgid "Choose information:" +#~ msgstr "Вибір інформації:" + +#~ msgid "Choose media file" +#~ msgstr "Виберіть медіа-файл ...OK... " + +#~ msgid "City code" +#~ msgstr "Код наÑеленого пункту" + +#~ msgid "City name" +#~ msgstr "Ðазва наÑеленого пункту" + +#~ msgid "Clear (night)" +#~ msgstr "Безхмарно (в ночі)" + +#~ msgid "Clear /tmp" +#~ msgstr "ÐžÑ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ /tmp" + +#~ msgid "Close Player with exit-key" +#~ msgstr "Закривати плеєр кнопкою EXIT" + +#~ msgid "Close plugin EXIT Button" +#~ msgstr "Вихід з плагіна кнопкою EXIT" + +#~ msgid "Close plugin?" +#~ msgstr "Вийти з плагіна?" + +#~ msgid "Cloudy" +#~ msgstr "ХмарніÑÑ‚ÑŒ" + +#~ msgid "Cold" +#~ msgstr "Холод" + +#~ msgid "Command" +#~ msgstr "ЗавданнÑ" + +#~ msgid "Committed DiSEqC command" +#~ msgstr "Команда Ð¿ÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ DiSEqC" + +#~ msgid "Common configuration" +#~ msgstr "Загальні конфігурації" + +#~ msgid "Components for TMBD" +#~ msgstr "TMBD Компоненти Ð´Ð»Ñ Ð¿Ð»Ð°Ð³Ñ–Ð½Ñƒ" + +#~ msgid "Config" +#~ msgstr "КонфігураціÑ" + +#~ msgid "Config script Executer" +#~ msgstr "ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ñкрипт менеджера" + +#~ msgid "Configuration for automatic power off in standby" +#~ msgstr "Конф. авто.Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ñ€ÐµÑиверу в режимі очікуваннÑ" + +#~ msgid "Configuration for inactivity actions" +#~ msgstr "Конф. Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ñƒ в режим Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸ бездіÑльноÑÑ‚Ñ–" + +#~ msgid "Configure if service picons will be shown in the servicelist." +#~ msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ Пікон ÑервіÑів в ÑпиÑку ÑервіÑів." + +#~ msgid "Configure the behavior of the 'pause' key when movie playback is already paused." +#~ msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð²ÐµÐ´Ñ–Ð½ÐºÐ¸ кнопки 'пауза', коли відео вже Ñтоїть на паузі." + +#~ msgid "Configure the duration in hours and action, which could be shut down or standby, when the receiver is not controlled." +#~ msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ñ€Ð¸Ð²Ð°Ð»Ð¾ÑÑ‚Ñ– у годинах Ñ– дії, Ð²Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð°Ð±Ð¾ режимочікуваннÑ, коли реÑивер без управліннÑ." + +#~ msgid "Configure the duration in minutes and action, which could be shut down or standby, for the sleeptimer. Select this entry and click OK or green to start/stop the sleeptimer" +#~ msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ñ€Ð¸Ð²Ð°Ð»Ð¾ÑÑ‚Ñ– в хвилинах Ñ– дії (Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ режимочікуваннÑ) Ð´Ð»Ñ Ñ‚Ð°Ð¹Ð¼ÐµÑ€Ð° Ñну. Виберіть цей Ñ€Ñдочок та натиÑніть ОК або зеленукнопку Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку / зупинки таймера Ñну." + +#~ msgid "Country" +#~ msgstr "Країна виробництва" + +#~ msgid "Country:" +#~ msgstr "Країна:" + +#~ msgid "Crashlog viewer" +#~ msgstr "ПереглÑдач файлів крешлогу" + +#~ msgid "Crashlog viewer path" +#~ msgstr "Вибір шлÑху Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду крешлога" + +#~ msgid "Create new directory" +#~ msgstr "Створити нову папку" + +#~ msgid "Create new file" +#~ msgstr "Створити новий файл" + +# message07 +#~ msgid "Create: kerneldump" +#~ msgstr "Створюємо: kerneldump" + +# message06a +#~ msgid "Create: root.ubifs" +#~ msgstr "Створюємо: root.ubifs" + +#~ msgid "Cron Manager" +#~ msgstr "Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Cron" + +#~ msgid "CtronTab Manager - %s" +#~ msgstr "Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Cron - %s" + +#~ msgid "Current poster and info" +#~ msgstr "Поточний поÑтер Ñ– опиÑ" + +#~ msgid "Czech Republic" +#~ msgstr "ЧехіÑ" + +#~ msgid "Data processing method for Kinopoisk.ru" +#~ msgstr "Метод Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… з Kinopoisk.ru" + +#~ msgid "Day of month" +#~ msgstr "ЧиÑло" + +#~ msgid "Day of week" +#~ msgstr "День тижнÑ" + +#~ msgid "Deactivate Poster Preview" +#~ msgstr "Деактивувати прев'ÑŽ поÑтерів" + +#~ msgid "Dec." +#~ msgstr "Груд." + +#~ msgid "Deepstandby" +#~ msgstr "Глибокий режим очікуваннÑ" + +#~ msgid "Denmark" +#~ msgstr "ДаніÑ" + +#~ msgid "Details for: %s" +#~ msgstr "Детально длÑ: %s" + +#~ msgid "Devices:" +#~ msgstr "ПриÑтрої:" + +#~ msgid "DiSEqC repeats" +#~ msgstr "DiSEqC повтор" + +#~ msgid "Director" +#~ msgstr "РежиÑер" + +#~ msgid "Director:" +#~ msgstr "РежиÑер:" + +#~ msgid "Disable Media-filter" +#~ msgstr "Вимкнути Медіа фільтр" + +#~ msgid "Disable inactivity action at timeshift:" +#~ msgstr "Ð’Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸ бездіÑльноÑÑ‚Ñ– на Тimeshift" + +#~ msgid "Disable inactivity action for given interval:" +#~ msgstr "Ігнорувати бездіÑльноÑÑ‚Ñ– ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Ð·Ð°Ð´Ð°Ð½Ð¾Ð³Ð¾ інтервалу: " + +#~ msgid "Disable power off for given interval:" +#~ msgstr "Вимкнути Ð²Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð¶Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð´Ð°Ð½Ð¾Ð³Ð¾ інтервалу: " + +#~ msgid "Disable power off in EPGRefresh interval:" +#~ msgstr "Вимкнути Ð²Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð¶Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸ EPG Refresh:" + +#~ msgid "Disable power off until a given device is pingable:" +#~ msgstr "Вимкнути Ð²Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð¶Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸ обмініінформаціїї:" + +#~ msgid "Disable power off until a hard disk is active:" +#~ msgstr "Вимкнути Ð²Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð¶Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð¾ÐºÐ¸ HDD активний:" + +#~ msgid "Disable shutdown in EPGRefresh time span:" +#~ msgstr "Вимкнути Ð²Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð² EPG Refresh проміжок чаÑу:" + +#~ msgid "Do you have the latest version of the plugin. No update needed. Click exit" +#~ msgstr "У Ð²Ð°Ñ Ð¾ÑÑ‚Ð°Ð½Ð½Ñ Ð²ÐµÑ€ÑÑ–Ñ Ð¿Ð»Ð°Ð³Ñ–Ð½Ñƒ. ÐÑ–Ñких змін не потрібно. ÐатиÑніть вихід" + +# plugin USB 3 +#~ msgid "" +#~ "Do you want to make a back-up on USB?\n" +#~ "\n" +#~ "This only takes a few minutes depending on the used filesystem and is fully automatic.\n" +#~ "\n" +#~ "Make sure you first insert an USB flash drive before you select Yes." +#~ msgstr "" +#~ "Ви хочете зробити резервну копію прошивки на USB?\n" +#~ "\n" +#~ "Це займе вÑього кілька хвилин залежно від файлової ÑиÑтеми Ñ– Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¿Ð¾Ð²Ð½Ñ–ÑÑ‚ÑŽ автоматизований.\n" +#~ "\n" +#~ "ПереконайтеÑÑ, що ви Ñпочатку вÑтавили USB флеш ноÑій, перш ніж вибрати ТÐК." + +# plugin HDD 4 +#~ msgid "" +#~ "Do you want to make an USB-back-up image on HDD? \n" +#~ "\n" +#~ "This only takes a few minutes and is fully automatic.\n" +#~ msgstr "" +#~ "Ви хочете зробити резервну копію прошивки на HDD? \n" +#~ "\n" +#~ "Це займе вÑього кілька хвилин Ñ– Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¿Ð¾Ð²Ð½Ñ–ÑÑ‚ÑŽ автоматизований.\n" + +#~ msgid "Do you want to restart the GUI now?" +#~ msgstr "Ви хочете перезавантажити GUI зараз?" + +#~ msgid "Download -deps" +#~ msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ -deps" + +#~ msgid "Download -nodeps" +#~ msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ -nodeps" + +#~ msgid "Download EPG" +#~ msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ EPG" + +#~ msgid "Download EPG from linux-sat.tv (exUSSR)" +#~ msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ EPG з linux-sat.tv (ex-USSR)" + +#~ msgid "Download extensions from feed" +#~ msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ð»Ð°Ð³Ñ–Ð½Ñ–Ð²" + +#~ msgid "Driver Version:" +#~ msgstr "ВерÑÑ–Ñ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ð°:" + +#~ msgid "Drizzle" +#~ msgstr "МрÑка" + +#~ msgid "Duration" +#~ msgstr "ТриваліÑÑ‚ÑŒ" + +#~ msgid "Dust" +#~ msgstr "Пил" + +#~ msgid "E, %3.02f m/s" +#~ msgstr "Сх, %3.02f м/Ñ" + +#~ msgid "E-CCcam.Cfg switcher" +#~ msgstr "E-Панель CCcam.Cfg перемикач" + +#~ msgid "E-Crashlog viewer" +#~ msgstr "E-Панель переглÑд крешлога" + +#~ msgid "E-EPG Downloader" +#~ msgstr "E-EPG Завантажувач" + +#~ msgid "E-Installer" +#~ msgstr "E-Панель інÑталÑтор" + +#~ msgid "E-Installer: Selection mode" +#~ msgstr "E-ІнÑталÑтор: Режим" + +#~ msgid "E-Installer: User directory on mount device" +#~ msgstr "E-ІнÑталÑтор: Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ñ–Ñ Ð½Ð° монтованих диÑках" + +#~ msgid "E-Ipk Installer" +#~ msgstr "E-Панель .ipk інÑталÑтор" + +#~ msgid "E-Newcamd.list switcher" +#~ msgstr "E-Панель newcamd.list перемикач" + +#~ msgid "E-Oscam.conf switcher" +#~ msgstr "E-Панель oscam.conf перемикач" + +#~ msgid "E-Panel" +#~ msgstr "E-Панель" + +#~ msgid "E-Panel Config" +#~ msgstr "ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ E-Панелі" + +#~ msgid "E-Panel Menu/Extensionmenu config" +#~ msgstr "ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ð¼ÐµÐ½ÑŽ/розширене меню" + +#~ msgid "E-Panel for OpenPli" +#~ msgstr "E-Панель" + +#~ msgid "E-Panel for OpenPli Ver:" +#~ msgstr "Е-Панель Ð´Ð»Ñ OpenPli Вер." + +#~ msgid "E-Panel for Pli" +#~ msgstr "E-Пaнель" + +#~ msgid "E-Reload epg.dat" +#~ msgstr "E-Панель Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ epg.dat" + +#~ msgid "E-Script Executer" +#~ msgstr "E-Панель Ñкрипт менеджер" + +#~ msgid "E-SoftCam manager" +#~ msgstr "E-Панель ЕмулÑтори" + +#~ msgid "E-Tar.gz Installer" +#~ msgstr "E-Панель tar.gz інÑталÑтор" + +#~ msgid "E-Unmount USB" +#~ msgstr "E-Панель Ð´ÐµÐ¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ USB" + +#~ msgid "E-Wicardd.conf switcher" +#~ msgstr "E-Панель wicardd.conf перемикач" + +#~ msgid "E-script path" +#~ msgstr "Вибір шлÑху Ð´Ð»Ñ Ñкриптів" + +#~ msgid "ENE, %3.02f m/s" +#~ msgstr "Сх,ПнСх, %3.02f м/Ñ" + +#~ msgid "EPG Downloader" +#~ msgstr "Завантажувач EPG" + +#~ msgid "EPG downloaded" +#~ msgstr "EPG завантажений" + +#~ msgid "EPG from linux-sat.tv/piconload.ru (exUSSR)" +#~ msgstr "Завантажувач EPG" + +#~ msgid "ESE, %3.02f m/s" +#~ msgstr "Сх,ПвСх, %3.02f м/Ñ" + +#~ msgid "Edit text to search for" +#~ msgstr "Відредагуйте текÑÑ‚ Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ" + +#~ msgid "Enable AutoShutDown:" +#~ msgstr "Увімкнути AutoShutdown:" + +#~ msgid "Enable Media-filter" +#~ msgstr "Увімкнути Медіа фільтр" + +#~ msgid "Enable action after inactivity:" +#~ msgstr "Дозволити заходи піÑÐ»Ñ Ð±ÐµÐ·Ð´Ñ–ÑльноÑÑ‚Ñ–:" + +#~ msgid "Enable automatic power off in standby:" +#~ msgstr "Дозволити авто. відкл. Ð¶Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ð² режимі очікуваннÑ: " + +#~ msgid "End of excluded interval (hh:mm):" +#~ msgstr "Ð—Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¼Ñ‡Ð°Ñового інтервалу (год:хв):" + +#~ msgid "Enter or choose event for search ..." +#~ msgstr "Введіть або виберіть подію Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ ..." + +#~ msgid "Enter text to search for" +#~ msgstr "Введіть текÑÑ‚ Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ" + +#~ msgid "Error dowload CardServer list" +#~ msgstr "Помилка Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ ÑпиÑку кардÑерверу" + +#~ msgid "Error dowload SoftCam list" +#~ msgstr "Помилка Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ ÑпиÑку емулÑторів" + +#~ msgid "Error list ipk aviable" +#~ msgstr "Помилка ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÑпиÑку .ipk пакетів" + +#~ msgid "Estonia" +#~ msgstr "ЭÑтоніÑ" + +#~ msgid "Event mode for search" +#~ msgstr "Режим події Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ" + +#~ msgid "Every" +#~ msgstr "Кожен період" + +#~ msgid "Extended search filter" +#~ msgstr "Розширений фільтр пошуку" + +#~ msgid "F i l e l i s t" +#~ msgstr "СпиÑок файлів" + +#~ msgid "Failed remove" +#~ msgstr "Помилка видаленнÑ" + +#~ msgid "Failed to download the update from the site! Manually download the archive from the site and install it yourself!" +#~ msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð· Ñайту! Вручну Ñкачайте архів з Ñайту івÑтановіть його ÑамоÑтійно!" + +#~ msgid "Failure..." +#~ msgstr "Помилка..." + +#~ msgid "Fair (day)" +#~ msgstr "ЯÑно (в день)" + +#~ msgid "Fair (night)" +#~ msgstr "ЯÑно (в ночі)" + +#~ msgid "Feb." +#~ msgstr "Лют." + +#~ msgid "Feels: %s" +#~ msgstr "По відчуттю: %s" + +#~ msgid "Filter by Name in download extentions" +#~ msgstr "Фільтр імен в меню Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½ÑŒ" + +#~ msgid "Finland" +#~ msgstr "ФінлÑндіÑ" + +#~ msgid "Flash:" +#~ msgstr "ОÑн. памÑÑ‚ÑŒ:" + +#~ msgid "Foggy" +#~ msgstr "Туман" + +# message12-3 +#~ msgid "Follow the instructions on the front-display." +#~ msgstr "ДотримуйтеÑÑŒ інÑтрукцій на фронтальній панелі Ñупутникового тюнера." + +#~ msgid "Forced Install" +#~ msgstr "ПримуÑова уÑтановка" + +#~ msgid "Fr" +#~ msgstr "Пт" + +#~ msgid "France" +#~ msgstr "ФранціÑ" + +#~ msgid "Freezing drizzle" +#~ msgstr "Паморозь" + +#~ msgid "Freezing rain" +#~ msgstr "Крижаний дощ" + +# plugin USB 1 +#~ msgid "Full 1:1 back-up direct on USB" +#~ msgstr "Повна (1:1) резервна ÐºÐ¾Ð¿Ñ–Ñ Ð±ÐµÐ·Ð¿Ð¾Ñередньо на USB" + +# plugin HDD 2 +#~ msgid "Full 1:1 back-up in USB format" +#~ msgstr "Повна (1:1) резервна ÐºÐ¾Ð¿Ñ–Ñ Ñƒ форматі USB" + +# message22 +#~ msgid "Full back-up direct to USB" +#~ msgstr "Повна резервна ÐºÐ¾Ð¿Ñ–Ñ Ð±ÐµÐ·Ð¿Ð¾Ñередньо на USB" + +# plugin HDD 3 +#~ msgid "Full back-up on HDD" +#~ msgstr "Повна резервна ÐºÐ¾Ð¿Ñ–Ñ Ð½Ð° HDD" + +# plugin HDD 1 +#~ msgid "Full back-up on HDD/USB" +#~ msgstr "Повна резервна ÐºÐ¾Ð¿Ñ–Ñ Ð½Ð° HDD/USB" + +# plugin USB 2 +#~ msgid "Full back-up to USB" +#~ msgstr "Повна резервна ÐºÐ¾Ð¿Ñ–Ñ Ð½Ð° USB" + +# message20 +#~ msgid "Full back-up to the harddisk" +#~ msgstr "Повна резервна ÐºÐ¾Ð¿Ñ–Ñ Ð½Ð° жорÑткий диÑк" + +#~ msgid "Full view" +#~ msgstr "Повний вид" + +#~ msgid "GUI needs a reboot to apply the changes!" +#~ msgstr "GUI потребує перезавантаженнÑ, щоб заÑтоÑувати зміни!" + +#~ msgid "Genre:" +#~ msgstr "Жанр:" + +#~ msgid "Germany" +#~ msgstr "ГерманіÑ" + +#~ msgid "Go to standby" +#~ msgstr "Увага! Перейти в режим очікуваннÑ" + +#~ msgid "Goto specific data/time" +#~ msgstr "Перейти на конкретний дата/чаÑ" + +#~ msgid "Greece" +#~ msgstr "ГреціÑ" + +#~ msgid "Guatemala" +#~ msgstr "Гватемала" + +#~ msgid "HDD go sleep" +#~ msgstr "HDD зупинений" + +#~ msgid "HDD sleep" +#~ msgstr "Стоп HDD" + +#~ msgid "Hail" +#~ msgstr "Град" + +#~ msgid "Hardware:" +#~ msgstr "ПриÑтрій:" + +#~ msgid "Haze" +#~ msgstr "Легкий туман" + +#~ msgid "Heavy snow" +#~ msgstr "Сильна хуртовина" + +#~ msgid "Hide the names of the items in movieInfo" +#~ msgstr "Ховати назви пунктів в movieInfo" + +#~ msgid "Hong Kong" +#~ msgstr "Гонконг" + +#~ msgid "Hot" +#~ msgstr "Спека" + +#~ msgid "Hour" +#~ msgstr "Годинник" + +#~ msgid "Hungary" +#~ msgstr "Угорщина" + +#~ msgid "Hurricane" +#~ msgstr "Ураган" + +#~ msgid "IP address of network device:" +#~ msgstr "IP адреÑа мережевого приÑтрою:" + +#~ msgid "IPK Tools" +#~ msgstr "Ручна уÑтановка Ñ– Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¿Ð°ÐºÐµÑ‚Ñ–Ð²" + +# message21-6 +#~ msgid "If you place an USB-stick containing this file then the back-up will be automatically made onto the USB-stick and can be used to restore the current image if necessary." +#~ msgstr "Якщо підключити USB-флешку, що міÑтить цей файл, то резервна ÐºÐ¾Ð¿Ñ–Ñ Ð±ÑƒÐ´Ðµ автоматично зроблена на USB-флешку Ñ–, Ñкщо це буде необхідно, може бути викориÑтана Ð´Ð»Ñ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ÑˆÐ¸Ð²ÐºÐ¸." + +# message15 +#~ msgid "Image creation FAILED!" +#~ msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ÑˆÐ¸Ð²ÐºÐ¸ завершилоÑÑ ÐЕВДÐЧЕЮ!" + +#~ msgid "Image:" +#~ msgstr "Імідж:" + +#~ msgid "Include %s" +#~ msgstr "Вмикати %s" + +#~ msgid "India" +#~ msgstr "ИндіÑ" + +#~ msgid "Indonesia" +#~ msgstr "ІндонезіÑ" + +#~ msgid "Insatall extensions from feed" +#~ msgstr "ІнÑталÑÑ†Ñ–Ñ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½ÑŒ з фіду" + +#~ msgid "Instal Tmbd components Settings" +#~ msgstr "Меню уÑтановки компонентів Ð´Ð»Ñ Ð¿Ð»Ð°Ð³Ñ–Ð½Ð° Tmbd" + +#~ msgid "Install & Remove Plugins, Addons, Softcams" +#~ msgstr "ІнÑталÑÑ†Ñ–Ñ Ñ– Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¿Ð»Ð°Ð³Ñ–Ð½Ñ–Ð², доповнень, емулÑторів" + +#~ msgid "Install All" +#~ msgstr "ІнÑталювати вÑе" + +#~ msgid "Install YTTrailer..." +#~ msgstr "ІнÑталÑÑ†Ñ–Ñ YTTrailer..." + +#~ msgid "Install packages library lmxl" +#~ msgstr "ІнÑталÑÑ†Ñ–Ñ Ð¿Ð°ÐºÐµÑ‚Ñ–Ð² бібліотеки lmxl" + +#~ msgid "Install packets" +#~ msgstr "ІнÑталÑÑ†Ñ–Ñ Ð¿Ð°ÐºÐµÑ‚Ñ–Ð²" + +#~ msgid "Install tar.gz, bh.tgz, nab.tgz" +#~ msgstr "ІнÑталÑÑ†Ñ–Ñ tar.gz, bh.tgz, nab.tgz" + +#~ msgid "Installing alternative MovieSelection" +#~ msgstr "ІнÑталÑÑ†Ñ–Ñ Ð°Ð»ÑŒÑ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð½Ð¾Ð³Ð¾ MovieSelection" + +#~ msgid "Installing alternative MovieSelection for old pli" +#~ msgstr "ІнÑталÑÑ†Ñ–Ñ Ð°Ð»ÑŒÑ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð½Ð¾Ð³Ð¾ MovieSelection Ð´Ð»Ñ Ñтарої бази pli" + +#~ msgid "Installing components" +#~ msgstr "ІнÑталÑÑ†Ñ–Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚Ñ–Ð²" + +#~ msgid "Installing components for TMBD" +#~ msgstr "TMBD ІнÑталÑÑ†Ñ–Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚Ñ–Ð² Ð´Ð»Ñ Ð¿Ð»Ð°Ð³Ñ–Ð½Ñƒ" + +#~ msgid "Invalid Choice" +#~ msgstr "Ðеправильний вибір" + +#~ msgid "Ipk remove" +#~ msgstr "Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ .ipk пакетів" + +#~ msgid "Iran" +#~ msgstr "Іран" + +#~ msgid "Ireland" +#~ msgstr "ІрландіÑ" + +#~ msgid "Is a time-based job scheduler" +#~ msgstr "Планувальник завдань за розкладом" + +#~ msgid "Isolated thundershowers" +#~ msgstr "Ізольовані грози" + +#~ msgid "Isolated thunderstorms" +#~ msgstr "Ізольовані грози" + +#~ msgid "Italy" +#~ msgstr "ІталіÑ" + +#~ msgid "Jan." +#~ msgstr "Січ." + +#~ msgid "Japan" +#~ msgstr "ЯпоніÑ" + +#~ msgid "Jul" +#~ msgstr "Липень" + +#~ msgid "Jul." +#~ msgstr "Липень" + +#~ msgid "Jun" +#~ msgstr "Червень" + +#~ msgid "Jun." +#~ msgstr "Червень" + +# message27 +#~ msgid "KB per second" +#~ msgstr "Кб в Ñекунду" + +#~ msgid "Kazakhstan" +#~ msgstr "КазахÑтан" + +#~ msgid "Kernel Modules Manager" +#~ msgstr "Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ð°Ð¼Ð¸" + +#~ msgid "Kernel Version:" +#~ msgstr "ВерÑÑ–Ñ Ñдра:" + +#~ msgid "Key mapping" +#~ msgstr "ÐŸÑ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–ÑˆÐ¸" + +#~ msgid "" +#~ "Kinopoisk.ru\n" +#~ "Developer: Dima73\n" +#~ "(c)2012" +#~ msgstr "" +#~ "Kinopoisk.ru\n" +#~ "Розробник: Dima73\n" +#~ "(c)2012" + +#~ msgid "" +#~ "Kinopoisk.ru\n" +#~ "Developer: Dima73 (c)2012\n" +#~ "\n" +#~ "Donate:\n" +#~ "WMZ Z305015597712" +#~ msgstr "" +#~ "Kinopoisk.ru\n" +#~ "Розробник: Dima73 (c)2012\n" +#~ "\n" +#~ "ПодÑка:\n" +#~ "WMZ Z305015597712" + +#~ msgid "Korea" +#~ msgstr "КореÑ" + +#~ msgid "Large poster" +#~ msgstr "Великий поÑтер" + +#~ msgid "Last Upgrade:" +#~ msgstr "ОновленнÑ:" + +#~ msgid "Latvia" +#~ msgstr "ЛатвіÑ" + +#~ msgid "Light snow showers" +#~ msgstr "Легкий Ñнігопад" + +#~ msgid "List: kinopoisk.ru / themoviedb.org" +#~ msgstr "СпиÑок: kinopoisk.ru / themoviedb.org" + +#~ msgid "List: themoviedb.org / kinopoisk.ru" +#~ msgstr "СпиÑок: themoviedb.org / kinopoisk.ru" + +#~ msgid "Lithuania" +#~ msgstr "Литва" + +#~ msgid "Load/UnLoad" +#~ msgstr "Вкл./Відкл." + +#~ msgid "Loaded %s.ko" +#~ msgstr "Завантажений %s.ko" + +#~ msgid "Lookup in TMBD" +#~ msgstr "Пошук в TMBD" + +#~ msgid "LsMod" +#~ msgstr "Драйвери" + +#~ msgid "Luxembourg" +#~ msgstr "ЛюкÑембург" + +#~ msgid "Macedonia" +#~ msgstr "МакедоніÑ" + +#~ msgid "Madagascar" +#~ msgstr "МадагаÑкар" + +#~ msgid "Make swap" +#~ msgstr "Створити файл підкачки" + +#~ msgid "Make swap on %s (128MB)" +#~ msgstr "Створити файл підкачки на %s (128MB)" + +#~ msgid "Make swap on %s (256MB)" +#~ msgstr "Створити файл підкачки на %s (256MB)" + +#~ msgid "Make swap on %s (512MB)" +#~ msgstr "Створити файл підкачки на %s (512MB)" + +#~ msgid "Malaysia" +#~ msgstr "МалайзіÑ" + +#~ msgid "Manage BusyBox-Cron service" +#~ msgstr "Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ ÑервіÑом BusyBox-Cron" + +#~ msgid "Manage Dropbear SSH service" +#~ msgstr "Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ ÑервіÑом Dropbear SSH" + +#~ msgid "Manage Ftp service" +#~ msgstr "Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ ÑервіÑом Ftp" + +#~ msgid "Manage Internet superserver (inetd)" +#~ msgstr "Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ ÑуперÑервером Інтернет (inetd)" + +#~ msgid "Manage Networking service" +#~ msgstr "Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ ÑервіÑом Network" + +#~ msgid "Manage Samba service" +#~ msgstr "Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ ÑервіÑом Samba" + +#~ msgid "Manage Swap" +#~ msgstr "Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ підкачки " + +#~ msgid "Manage Swap on %s" +#~ msgstr "Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ підкачки на %s" + +#~ msgid "Manage Syslog/klogd service" +#~ msgstr "Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ ÑервіÑом Syslog/klogd" + +#~ msgid "Manage epg, ntp, unmount, script, info ..." +#~ msgstr "Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñ Ñ‡Ð°Ñу, EPG, Ñкрипти, інфо ..." + +#~ msgid "Manual Installer/Uninstaller" +#~ msgstr "Ручна уÑтановка Ñ– Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¿Ð°ÐºÐµÑ‚Ñ–Ð²" + +#~ msgid "Manual input" +#~ msgstr "Ручне введеннÑ" + +#~ msgid "Mar." +#~ msgstr "Березень" + +#~ msgid "March" +#~ msgstr "БерезенÑ" + +#~ msgid "Max. results in list-mode" +#~ msgstr "МакÑ. результат пошуку в режимі ÑпиÑку" + +#~ msgid "May" +#~ msgstr "Травень" + +#~ msgid "Memory positions" +#~ msgstr "ÐŸÐ¾Ð·Ð¸Ñ†Ñ–Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ–" + +#~ msgid "Memory:" +#~ msgstr "Пам'ÑÑ‚ÑŒ:" + +#~ msgid "Message timeout (sec):" +#~ msgstr "Тайм-аут Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ (Ñек) " + +#~ msgid "Mexico" +#~ msgstr "МекÑика" + +#~ msgid "MgCamd Restarted" +#~ msgstr "MgCamd перезапущений" + +#~ msgid "Mgcamd config filename" +#~ msgstr "Mgcamd ім'Ñ Ð¾Ñновного файлу конфігурації" + +#~ msgid "Mgcamd config switcher" +#~ msgstr "Mgcamd перемикач" + +#~ msgid "Mgcamd configfile extention" +#~ msgstr "Mgcamd Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ конфігурації" + +#~ msgid "Mgcamd configpath" +#~ msgstr "Mgcamd шлÑÑ… до конфігурації" + +#~ msgid "Min" +#~ msgstr "Хвилини" + +#~ msgid "Mixed rain and hail" +#~ msgstr "Дощ з градом" + +#~ msgid "Mixed rain and sleet" +#~ msgstr "Дощ Ñ– ÑлÑкоть" + +#~ msgid "Mixed rain and snow" +#~ msgstr "Дощ зі Ñнігом" + +#~ msgid "Mixed snow and sleet" +#~ msgstr "Сніг Ñ– ÑлÑкоть" + +#~ msgid "Mo" +#~ msgstr "Пн" + +#~ msgid "Mode" +#~ msgstr "Режим" + +#~ msgid "Moldova" +#~ msgstr "Молдова" + +#~ msgid "Month" +#~ msgstr "МіÑÑць" + +# message28 +#~ msgid "Most likely this back-up can't be restored because of it's size, it's simply too big to restore. This is a limitation of the bootloader not of the back-up or the BackupSuite." +#~ msgstr "Швидше за вÑе, Ñ†Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð° ÐºÐ¾Ð¿Ñ–Ñ Ð¿Ñ€Ð¾ÑˆÐ¸Ð²ÐºÐ¸ не зможе бути відновлена ​​через розмір, тому що він занадто великий. Це Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ñ‡Ð°, а не прошивки або BackupSuite." + +#~ msgid "Mostly cloudy (day)" +#~ msgstr "Сильна хмарніÑÑ‚ÑŒ (в день)" + +#~ msgid "Mostly cloudy (night)" +#~ msgstr "Сильна хмарніÑÑ‚ÑŒ (в ночь)" + +#~ msgid "Move/Copy" +#~ msgstr "ПереміÑÑ‚/Копіювати" + +#~ msgid "Multi files" +#~ msgstr "Багатофайловий" + +#~ msgid "MultiSelect Mode" +#~ msgstr "Багатофайловий режим" + +#~ msgid "N, %3.02f m/s" +#~ msgstr "Пн, %3.02f м/Ñ" + +#~ msgid "NE, %3.02f m/s" +#~ msgstr "Пн,Сх, %3.02f м/Ñ" + +#~ msgid "NNE, %3.02f m/s" +#~ msgstr "Пн,ПнСх, %3.02f м/Ñ" + +#~ msgid "NNW, %3.02f m/s" +#~ msgstr "Пн,ПнЗх, %3.02f м/Ñ" + +#~ msgid "NONE" +#~ msgstr "немає кнопки" + +#~ msgid "NW, %3.02f m/s" +#~ msgstr "ПнЗх, %3.02f м/Ñ" + +#~ msgid "Name of keyfile" +#~ msgstr "Ðазва файлу ключів" + +#~ msgid "Netherlands" +#~ msgstr "ГолландіÑ" + +#~ msgid "New Zealand" +#~ msgstr "Ðова ЗеландіÑ" + +#~ msgid "Next: %s" +#~ msgstr "Далі: %s" + +#~ msgid "No HD streaming" +#~ msgstr "Без HD Ñтримінгу" + +#~ msgid "No connect to kinopoisk.ru..." +#~ msgstr "Ðемає з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· kinopoisk.ru..." + +#~ msgid "No connect to www.themoviedb.org" +#~ msgstr "Ðемає з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· www.themoviedb.org" + +#~ msgid "No description available" +#~ msgstr "Ðемає опиÑу" + +#~ msgid "No posters found for: %s" +#~ msgstr "Ðе знайдений поÑтерів длÑ: %s" + +#~ msgid "No satellite frontend found!!" +#~ msgstr "Ðе знайдено Ñупутниковий інтерфейÑ!" + +# message01 +#~ msgid "No supported receiver found!" +#~ msgstr "Знайдений не підтримуваний Ñупутниковий реÑивер!" + +#~ msgid "Norway" +#~ msgstr "ÐорвегіÑ" + +#~ msgid "Not Active" +#~ msgstr "Ðе активний" + +#~ msgid "Not Installed" +#~ msgstr "Ðе вÑтановлений" + +#~ msgid "Not available" +#~ msgstr "Ðемає даних" + +#~ msgid "Not available...\n" +#~ msgstr "Ðемає опиÑу...\n" + +#~ msgid "Not found network connection..." +#~ msgstr "Ðе знайдено Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ мережі..." + +#~ msgid "Nothing found for: %s" +#~ msgstr "Ðічого не знайдено длÑ: %s" + +#~ msgid "Nothing found for: %s or no answer in kinopoisk.ru" +#~ msgstr "Ðічого не знайдено длÑ: %s або немає відповіді від kinopoisk.ru" + +#~ msgid "Nov." +#~ msgstr "ЛиÑтопад" + +#~ msgid "Now: %s" +#~ msgstr "Зараз: %s" + +#~ msgid "NtpTime Updater" +#~ msgstr "Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñ Ñ‡Ð°Ñу" + +#~ msgid "Oct." +#~ msgstr "Жовтень" + +#~ msgid "Only current info" +#~ msgstr "Тільки поточний опиÑ" + +#~ msgid "Only current poster" +#~ msgstr "Тільки поточний поÑтер" + +#~ msgid "Only poster" +#~ msgstr "Тільки поÑтер" + +#~ msgid "Open VirtualKeyBoard" +#~ msgstr "Відкрити віртуальну клавіатуру" + +#~ msgid "Open plugin if there is no event" +#~ msgstr "Відкрити плагін, навіть Ñкщо немає події" + +#~ msgid "Open service list and select next channel" +#~ msgstr "Відкрити ÑпиÑок ÑервіÑів Ñ– вибрати інший канал" + +#~ msgid "Open service list and select previous channel" +#~ msgstr "Відкрити ÑпиÑок ÑервіÑів Ñ– вибрати попередній канал" + +#~ msgid "Option for all images" +#~ msgstr "Варіант Ð´Ð»Ñ Ð²ÑÑ–Ñ… іміджів" + +#~ msgid "Option only python 2.7 images" +#~ msgstr "Варіант тільки Ð´Ð»Ñ Ñ–Ð¼Ñ–Ð´Ð¶Ñ–Ð² на python 2.7" + +#~ msgid "Options" +#~ msgstr "Опції" + +#~ msgid "Oscam config filename" +#~ msgstr "Oscam ім'Ñ Ð¾Ñновного файлу конфігурації" + +#~ msgid "Oscam config switcher" +#~ msgstr "Oscam перемикач" + +#~ msgid "Oscam configfile extention" +#~ msgstr "Oscam Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ конфігурації" + +#~ msgid "Oscam configpath" +#~ msgstr "Oscam шлÑÑ… до конфігурації" + +#~ msgid "P l a y l i s t" +#~ msgstr "СпиÑок відтвореннÑ" + +# message21-2 +#~ msgid "PLEASE READ THIS:" +#~ msgstr "БУДЬ ЛÐСКРПРОЧИТÐЙТЕ ЦЕ:" + +#~ msgid "Pack my bootlogo" +#~ msgstr "Pack my bootlogo" + +#~ msgid "Pakistan" +#~ msgstr "ПакіÑтан" + +#~ msgid "Panama" +#~ msgstr "Панама" + +#~ msgid "Partly cloudy" +#~ msgstr "ЧаÑткова хмарніÑÑ‚ÑŒ" + +#~ msgid "Partly cloudy (day)" +#~ msgstr "ЧаÑткова хмарніÑÑ‚ÑŒ (в день)" + +#~ msgid "Partly cloudy (night)" +#~ msgstr "ЧаÑткова хмарніÑÑ‚ÑŒ (в ночі)" + +#~ msgid "Patch enigma2.sh (need restart enigma2)" +#~ msgstr "Правка enigma2.sh (потрібне Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ enigma2)" + +#~ msgid "Path to save keyfile" +#~ msgstr "ШлÑÑ… Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ ключів" + +#~ msgid "Philippines" +#~ msgstr "Філіппіни" + +# message12-2 +#~ msgid "Place the USB-flash drive in the (front) USB-port and switch the receiver off and on with the powerswitch on the back of the receiver." +#~ msgstr "Підключіть USB накопичувач в USB-порт (Ñпереду), вимкніть Ñ– увімкніть Ñупутниковий тюнер тумблером (Ñкщо такий приÑутній) на задній панелі реÑивера." + +#~ msgid "Play media file before inactivity action:" +#~ msgstr "Відігравати мультимедійний файл перед бездіÑльноÑÑ‚ÑŽ дії:" + +# message03 +#~ msgid "Please be patient, a backup will now be made, this will take about: " +#~ msgstr "Будь лаÑка, будьте терплÑчі, ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ñ— копії почалоÑÑ, це займе близько: " + +# message14 +#~ msgid "Please check the manual of the receiver on how to restore the image." +#~ msgstr "Будь лаÑка, звернітьÑÑ Ð´Ð¾ керівництва Ñупутникового тюнера, про те, Ñк відновити прошивку." + +#~ msgid "Please select the matching entry:" +#~ msgstr "Будь лаÑка, виберіть зі ÑпиÑку:" + +#~ msgid "Please wait, downloading epg.dat" +#~ msgstr "Очікуйте, завантажуєтьÑÑ epg.dat" + +#~ msgid "Please wait, restarting %s" +#~ msgstr "Чекайте, перезапуÑкаєтьÑÑ %s" + +#~ msgid "Please wait, starting %s" +#~ msgstr "Чекайте, запуÑкаєтьÑÑ %s" + +#~ msgid "Please wait, stoping softcam or cardserver" +#~ msgstr "Чекайте, зупинÑєтьÑÑ ÐµÐ¼ÑƒÐ»Ñтор чи кардÑервер" + +# message12-4 +#~ msgid "Please wait.... almost ready!" +#~ msgstr "Будь лаÑка, зачекайте .... майже готове!" + +#~ msgid "Poland" +#~ msgstr "Польща" + +#~ msgid "Port(s) (single xxxxx or range xxxxx:xxxxx)" +#~ msgstr "Порт(и) (одиночний xxxxx або діапазон xxxxx:xxxxx)" + +#~ msgid "Portugal" +#~ msgstr "ПортугаліÑ" + +#~ msgid "Position posters in the full menu" +#~ msgstr "ÐŸÐ¾Ð·Ð¸Ñ†Ñ–Ñ Ð¿Ð¾Ñтерів в повному меню" + +#~ msgid "Poster %s saved as background!" +#~ msgstr "ПоÑтер %s збережений в ÑкоÑÑ‚Ñ– фону!" + +#~ msgid "Poster %s saved!" +#~ msgstr "ПоÑтер %s збережений!" + +#~ msgid "Poster Preview" +#~ msgstr "Прев'ÑŽ поÑтерів" + +#~ msgid "Posters for: %s" +#~ msgstr "ПоÑтери длÑ: %s" + +#~ msgid "Power off STB" +#~ msgstr "Вимкнути реÑівер" + +#~ msgid "Press '0' to toggle internal/external PiP." +#~ msgstr "ÐатиÑніть '0 'Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ внутрішнього/зовнішнього PiP." + +#~ msgid "Press OK" +#~ msgstr "ÐатиÑніть ОК" + +# message13 +#~ msgid "Press arrow up from frontpanel to start loading." +#~ msgstr "ÐатиÑніть Ñтрілку ВГОРУ на фронтальній панелі Ñупутникового тюнера, щоб почати завантаженнÑ." + +#~ msgid "Producers" +#~ msgstr "ПродюÑери" + +#~ msgid "Profile movielist context menu" +#~ msgstr "Профіль контекÑтного меню ÑпиÑку медіа" + +#~ msgid "Profile: kinopoisk.ru" +#~ msgstr "Профіль: kinopoisk.ru" + +#~ msgid "Profile: themoviedb.org" +#~ msgstr "Профіль: themoviedb.org" + +#~ msgid "Query details from the Internet Movie Database" +#~ msgstr "Пошук опиÑів фільмів в базах даних інтернету" + +#~ msgid "Quick switching via remote control" +#~ msgstr "Швидке Ð¿ÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð·Ð° допомогою ПД керуваннÑ" + +#~ msgid "ReStart" +#~ msgstr "ПерезапуÑк" + +#~ msgid "ReStart Both" +#~ msgstr "ПерезапуÑк" + +#~ msgid "Reload epg.dat" +#~ msgstr "Перезав. epg.dat" + +#~ msgid "Remove All" +#~ msgstr "Видалити вÑе" + +#~ msgid "Remove all posters for movie" +#~ msgstr "Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð²ÑÑ–Ñ… збережених поÑтерів" + +#~ msgid "Remove all posters?" +#~ msgstr "Видалити вÑÑ– поÑтери?" + +#~ msgid "Remove poster / info" +#~ msgstr "Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ñтеру / опиÑу" + +#~ msgid "Remove swap" +#~ msgstr "Видалити файл підкачки" + +#~ msgid "Remove swap on %s (%s)" +#~ msgstr "Видалити файл підкачки на %s (%s)" + +#~ msgid "Remove tabs" +#~ msgstr "Видалити завданнÑ" + +#~ msgid "Remove timer" +#~ msgstr "Видалити таймер" + +#~ msgid "Removed %s" +#~ msgstr "Видалено %s" + +#~ msgid "Removed All Crashlog Files" +#~ msgstr "Ð’ÑÑ– файли видалені" + +#~ msgid "Reset AutoShutDown settings to defaults?" +#~ msgstr "Скинути Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ AutoShutdown до значень за замовчуваннÑм?" + +#~ msgid "Restart GUI" +#~ msgstr "ПерезапуÑк Enigma" + +#~ msgid "Restart MgCamd" +#~ msgstr "ПерезапуÑк MgCamd" + +#~ msgid "Restart Softcam" +#~ msgstr "ПерезапуÑк ЕмулÑтора" + +#~ msgid "Restarting %s service" +#~ msgstr "ПерезапуÑк ÑервіÑа %s" + +#~ msgid "Restarting ..." +#~ msgstr "ПерезапуÑк ..." + +#~ msgid "Restore epg.dat" +#~ msgstr "Відновити epg.dat" + +#~ msgid "Restoring a backup MovieSelection" +#~ msgstr "Ð’Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð±ÐµÐºÐ°Ð¿Ñƒ MovieSelection" + +#~ msgid "Roles duplicated" +#~ msgstr "Ролі дублювали" + +#~ msgid "Roles duplicated:" +#~ msgstr "Ролі дублювали:" + +#~ msgid "Romania" +#~ msgstr "РумуніÑ" + +#~ msgid "Russian Federation" +#~ msgstr "РоÑійÑька ФедераціÑ" + +#~ msgid "S, %3.02f m/s" +#~ msgstr "Пв, %3.02f м/Ñ" + +#~ msgid "SE, %3.02f m/s" +#~ msgstr "ПвСх, %3.02f м/Ñ" + +#~ msgid "SSE, %3.02f m/s" +#~ msgstr "Пв,ПвСх, %3.02f м/Ñ" + +#~ msgid "SSW, %3.02f m/s" +#~ msgstr "Пв,ПвЗх, %3.02f м/Ñ" + +#~ msgid "SW, %3.02f m/s" +#~ msgstr "Пв,Зх, %3.02f м/Ñ" + +#~ msgid "Sa" +#~ msgstr "Сб" + +#~ msgid "Satellite configuration mode Mode" +#~ msgstr "Режим" + +#~ msgid "Save as background" +#~ msgstr "Зберегти Ñк фон" + +#~ msgid "Save as poster" +#~ msgstr "Зберегти Ñк поÑтер" + +#~ msgid "Save epg.dat" +#~ msgstr "Зберегти epg.dat" + +#~ msgid "Save info / poster" +#~ msgstr "Зберегти інфо / поÑтер" + +#~ msgid "Save location descriptions" +#~ msgstr "Вибір папки Ð´Ð»Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð¾Ð¿Ð¸Ñу" + +#~ msgid "" +#~ "Save poster and info for:\n" +#~ " %s ?" +#~ msgstr "" +#~ "Зберегти поÑтер Ñ– Ð¾Ð¿Ð¸Ñ Ð´Ð»Ñ:\n" +#~ " %s ?" + +#~ msgid "Save poster/info for movie" +#~ msgstr "Зберегти поÑтер/Ð¾Ð¿Ð¸Ñ Ð´Ð¾ запиÑу" + +#~ msgid "Saved" +#~ msgstr "Збережено" + +#~ msgid "Scattered showers" +#~ msgstr "РідкіÑні дощі" + +#~ msgid "Scattered snow showers" +#~ msgstr "РідкіÑний зливовий Ñніг" + +#~ msgid "Scattered thunderstorms" +#~ msgstr "РідкіÑні грози" + +#~ msgid "Script Executer" +#~ msgstr "Скрипти кориÑтувача" + +#~ msgid "Scripts" +#~ msgstr "Скрипти" + +#~ msgid "Search Trailer" +#~ msgstr "Пошук трейлерів" + +#~ msgid "Search in kinopoisk.ru" +#~ msgstr "Пошук в kinopoisk.ru" + +#~ msgid "Search in kinopoisk.ru ,please wait ..." +#~ msgstr "Йде пошук в kinopoisk.ru ,будь лаÑка зачекайте ..." + +#~ msgid "Search in themoviedb.org" +#~ msgstr "Пошук в themoviedb.org" + +#~ msgid "Search in themoviedb.org ,please wait ..." +#~ msgstr "Пошук в themoviedb.org ,пожалуйÑта подождите ..." + +#~ msgid "Search results for: %s" +#~ msgstr "Результати пошуку длÑ: %s" + +#~ msgid "Select EPG language" +#~ msgstr "Вибір мови EPG" + +#~ msgid "Select Profile" +#~ msgstr "Вибір профілю" + +#~ msgid "Select SoftCam or CardServer: - %s" +#~ msgstr "Виберіть ЕмулÑтор: - %s" + +#~ msgid "Select a media file for AutoShutDown" +#~ msgstr "Виберіть мультимедійний файл Ð´Ð»Ñ AutoShutdown" + +#~ msgid "Select action:" +#~ msgstr "Виберіть дію:" + +#~ msgid "Select colors for name in simple menu" +#~ msgstr "Вибір кольору назви Ð´Ð»Ñ Ñтандартного виглÑду меню" + +#~ msgid "Select from Favourites" +#~ msgstr "Вибір з фаворитів" + +#~ msgid "Select install files" +#~ msgstr "Виберіть пакети Ð´Ð»Ñ Ñ–Ð½ÑталÑції" + +#~ msgid "Select path to save epg.dat" +#~ msgstr "Вибір шлÑху Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ epg.dat" + +#~ msgid "Select plugin key" +#~ msgstr "Оберіть кнопку виклику плагіну" + +#~ msgid "Select size poster" +#~ msgstr "Вибір розміру поÑтера" + +#~ msgid "Select source epg.dat" +#~ msgstr "Вибір джерела Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ epg.dat" + +#~ msgid "Select the desired changed..." +#~ msgstr "Виберіть потрібний пункт меню Ñ– натиÑніть клавішу ок" + +#~ msgid "Select the search language" +#~ msgstr "Виберіть мову пошуку" + +#~ msgid "Select the type of save the description" +#~ msgstr "Вибір типу Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð¾Ð¿Ð¸Ñу" + +#~ msgid "Select your kinopoisk menu" +#~ msgstr "Вибір виду меню КинопоиÑк" + +#~ msgid "Select your skins" +#~ msgstr "Виберіть формат Ñкіну" + +#~ msgid "Selecting poster" +#~ msgstr "Вибір поÑтерів" + +#~ msgid "Selecting poster TMBD" +#~ msgstr "Вибір поÑтерів з Ñайту TMBD" + +#~ msgid "Send DiSEqC" +#~ msgstr "ÐадіÑлати DiSEqC" + +#~ msgid "Sep." +#~ msgstr "Вер." + +#~ msgid "Server (ip or name)" +#~ msgstr "Сервер (ip-Ð°Ð´Ñ€ÐµÑ Ð°Ð±Ð¾ ім'Ñ)" + +#~ msgid "Service Manager" +#~ msgstr "Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ ÑервіÑами" + +#~ msgid "Service Tools" +#~ msgstr "СервіÑні утиліти" + +#~ msgid "Set Transponder time update" +#~ msgstr "Синхронізувати Ñ‡Ð°Ñ Ð· транÑпондера" + +#~ msgid "Set choice server mode" +#~ msgstr "Ð’Ñтановіть ÑпоÑіб вибору Ñервера" + +#~ msgid "Set manual ntp server address" +#~ msgstr "Введіть адреÑу ntp Ñервера" + +#~ msgid "Set script path" +#~ msgstr "Ð’Ñтановіть директорію" + +#~ msgid "Set start directory" +#~ msgstr "Ð’Ñтановити початкову папку" + +#~ msgid "Set time to update" +#~ msgstr "Ð’Ñтановити період оновленнÑ" + +#~ msgid "Set your country" +#~ msgstr "Ð’Ñтановіть міÑцерозташуваннÑ" + +#~ msgid "Settings TMBD Details Plugin..." +#~ msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð»Ð°Ð³Ñ–Ð½Ñƒ TMBD..." + +#~ msgid "Severe thunderstorms" +#~ msgstr "Сильна гроза" + +#~ msgid "Show \"TMBD Details: current event\" in extensions menu" +#~ msgstr "Показати \"TMBD пошук: поточну подію\" в меню доповнень" + +#~ msgid "Show E-CrashLog viewr in ExtensionMenu" +#~ msgstr "Показати переглÑд крешлога в розширеному меню" + +#~ msgid "Show E-EPG Downloader in ExtensionMenu" +#~ msgstr "Показати завантажувач EPG в розширеному меню" + +#~ msgid "Show E-Installer in ExtensionMenu" +#~ msgstr "Показати E-ІнÑталÑтор в розширеному меню" + +#~ msgid "Show E-NewCamd.list switcher in ExtensionMenu" +#~ msgstr "Показати newcamd.list перемикач у розширеному меню" + +#~ msgid "Show E-Panel in ExtensionMenu" +#~ msgstr "Показати E-Панель в розширеному меню" + +#~ msgid "Show E-Panel in MainMenu" +#~ msgstr "Показати E-Панель в оÑновному меню" + +#~ msgid "Show E-Script Executter in ExtensionMenu" +#~ msgstr "Показати Ñкрипт менеджер в розширеному меню" + +#~ msgid "Show E-SoftCam manager in ExtensionMenu" +#~ msgstr "Показати емулÑтори в розширеному меню" + +#~ msgid "Show E-Usb Unmount in ExtensionMenu" +#~ msgstr "Показати Ð´ÐµÐ¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ USB в розширеному меню" + +#~ msgid "Show E-Wicardd.conf switcher in ExtensionMenu" +#~ msgstr "Показати wicardd.conf перемикач в розширеному меню" + +#~ msgid "Show PluginBrowser in E-Panel MainMenu" +#~ msgstr "Показати Плагіни в меню Е-Панелі" + +#~ msgid "Show current mode" +#~ msgstr "Показати поточний режим" + +#~ msgid "Show in Extensions/Plugins:" +#~ msgstr "Показати в Extensions/Плагіни:" + +#~ msgid "Show info for all types of movies" +#~ msgstr "Показати Ð¾Ð¿Ð¸Ñ Ð´Ð»Ñ Ð²ÑÑ–Ñ… типів запиÑів" + +#~ msgid "Show message before inactivity action:" +#~ msgstr "Показати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÐ´ вимиканнÑм:" + +#~ msgid "Show movie details" +#~ msgstr "Показати деталі" + +#~ msgid "Show picons in servicelist" +#~ msgstr "Показати Пікони в ÑпиÑку ÑервіÑів" + +#~ msgid "Show plugin in channel selection context menu" +#~ msgstr "Показати плагін в контекÑтному меню Ñелектора каналів" + +#~ msgid "Show reload epg.dat in ExtensionMenu" +#~ msgstr "Показати Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ epg.dat в розширеному меню" + +#~ msgid "Show search results" +#~ msgstr "Результати пошуку" + +#~ msgid "Showers" +#~ msgstr "Злива" + +#~ msgid "Shutdown after current event" +#~ msgstr "Ð’Ð¸Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ð¿Ñ–ÑÐ»Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ñ— події" + +#~ msgid "Shutdown in " +#~ msgstr "Ð’Ð¸Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ñ‡ÐµÑ€ÐµÐ· " + +#~ msgid "Simple Cardserver" +#~ msgstr "Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ ÐºÐ°Ñ€Ð´Ñервером" + +#~ msgid "Simple Softcam" +#~ msgstr "Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Ð•Ð¼ÑƒÐ»Ñторами" + +#~ msgid "Simple Softcam/Cardserver" +#~ msgstr "Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Ð•Ð¼ÑƒÐ»Ñторами Ñ– КардÑервером" + +#~ msgid "Simple view" +#~ msgstr "Стандартний виглÑд" + +#~ msgid "Singapore" +#~ msgstr "Сингапур" + +#~ msgid "Single file" +#~ msgstr "Одинарний" + +#~ msgid "SingleSelect Mode" +#~ msgstr "Одинарний режим" + +#~ msgid "Sleet" +#~ msgstr "Мокрий Ñніг" + +#~ msgid "Slovakia" +#~ msgstr "Словаччина" + +#~ msgid "Slovenia" +#~ msgstr "СловеніÑ" + +#~ msgid "Small poster" +#~ msgstr "невеликий поÑтер" + +#~ msgid "Smoky" +#~ msgstr "Димка" + +#~ msgid "Snow" +#~ msgstr "Хуртовина" + +#~ msgid "Snow flurries" +#~ msgstr "Снігопад" + +#~ msgid "Snow showers" +#~ msgstr "Зливовий Ñніг" + +#~ msgid "SoftCam.Key Updater" +#~ msgstr "Завантажувач SoftCam.Key" + +#~ msgid "SoftCam.Key server" +#~ msgstr "SoftCam.Key Ñервер" + +#~ msgid "SoftCam/CardServer Panel" +#~ msgstr "Панель ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ ÐµÐ¼ÑƒÐ»Ñторами Ñ– кардÑервером" + +#~ msgid "Softcam" +#~ msgstr "ЕмулÑтор" + +#~ msgid "Softcam Restarted" +#~ msgstr "ЕмулÑтор перезавантажений" + +#~ msgid "Softcam:" +#~ msgstr "ЕмулÑтор:" + +#~ msgid "Software update preview" +#~ msgstr "ПереглÑд оновленнÑ" + +# message06 +#~ msgid "Some information about the task" +#~ msgstr "ÐÐµÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ задании" + +#~ msgid "Sorry, ftp connection is not available" +#~ msgstr "Ðа жаль, FTP з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð½Ðµ доÑтупно" + +#~ msgid "Sorry, the EPG download error" +#~ msgstr "Вибачте, помилка Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ EPG" + +#~ msgid "Sort by date (bouquet-)" +#~ msgstr "Сортувати по даті (bouquet-)" + +#~ msgid "Sort by name (bouquet+)" +#~ msgstr "Сортувати по алфавіту (bouquet+)" + +#~ msgid "South Africa" +#~ msgstr "Південна Ðфрика" + +#~ msgid "Spain" +#~ msgstr "ІÑпаніÑ" + +#~ msgid "Standart" +#~ msgstr "Стандартний" + +#~ msgid "Start" +#~ msgstr "Старт" + +#~ msgid "Start Samba" +#~ msgstr "Старт Samba" + +#~ msgid "Start scripts from /usr/script" +#~ msgstr "ЗапуÑк Ñкриптів із /usr/script" + +#~ msgid "Start, Stop, Create, Remove Swap file" +#~ msgstr "ЗапуÑк, зупинка, ÑтвореннÑ, Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ підкачки" + +#~ msgid "Start, Stop, Restart Cardserver" +#~ msgstr "ЗапуÑк, зупинка Ñ– перезапуÑк кардÑервера" + +#~ msgid "Start, Stop, Restart Sofcam" +#~ msgstr "ЗапуÑк, зупинка Ñ– перезапуÑк емулÑтора" + +#~ msgid "Start, Stop, Restart Sofcam/Cardserver" +#~ msgstr "ЗапуÑк, зупинка Ñ– перезапуÑк емулÑторів Ñ– кардÑерверів" + +#~ msgid "Start, Stop, Restart system services" +#~ msgstr "ЗапуÑк, зупинка, перезапуÑк ÑиÑтемних ÑервіÑів" + +#~ msgid "StartUp synchronization" +#~ msgstr "Синхронізувати Ñ‡Ð°Ñ Ð¿Ñ€Ð¸ Ñтарті ÑиÑтеми" + +#~ msgid "Starting %s service" +#~ msgstr "ЗапуÑк ÑервіÑу %s" + +#~ msgid "Status:" +#~ msgstr "СтатуÑ:" + +#~ msgid "Stoping %s service" +#~ msgstr "Зупинка ÑервіÑу %s" + +#~ msgid "Storage of icons for the full menu" +#~ msgstr "МіÑце Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ñ–ÐºÐ¾Ð½Ð¾Ðº Ð´Ð»Ñ Ð¿Ð¾Ð²Ð½Ð¾Ð³Ð¾ меню" + +#~ msgid "Studios" +#~ msgstr "СтудіÑ" + +#~ msgid "Su" +#~ msgstr "ÐеділÑ" + +#~ msgid "Sunny" +#~ msgstr "СонÑчно" + +#~ msgid "Swap Manager" +#~ msgstr "Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ підкачки" + +#~ msgid "Swap file created" +#~ msgstr "Файл підкачки Ñтворений" + +#~ msgid "Swap file removed" +#~ msgstr "Файл підкачки видалений" + +#~ msgid "Swap file started" +#~ msgstr "Файл підкачки запущено" + +#~ msgid "Swap file stoped" +#~ msgstr "Файл підкачки зупинений" + +#~ msgid "Swap off" +#~ msgstr "Відключити файл підкачки" + +#~ msgid "Swap on" +#~ msgstr "Включити файл підкачки" + +#~ msgid "Swap on %s off (%s)" +#~ msgstr "Відключити файл підкачки на %s (%s)" + +#~ msgid "Swap on %s on (%s)" +#~ msgstr "Включити файл підкачки на %s (%s)" + +#~ msgid "Swap on USB/HDD" +#~ msgstr "Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ підкачки" + +#~ msgid "Swap:" +#~ msgstr "Підкачка:" + +#~ msgid "Sweden" +#~ msgstr "ШвеціÑ" + +#~ msgid "Switch newcamd.list with remote conrol" +#~ msgstr "Ручне Ð¿ÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ newcamd.list" + +#~ msgid "Switch next channel" +#~ msgstr "Переключити на наÑтупний канал" + +#~ msgid "Switch wicardd.conf with remote conrol" +#~ msgstr "Ручне Ð¿ÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ wiccard.conf" + +#~ msgid "Switcher" +#~ msgstr "Перемикач" + +#~ msgid "Switzerland" +#~ msgstr "ШвейцаріÑ" + +#~ msgid "Synchronization NTP" +#~ msgstr "Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñ Ñ‡Ð°Ñу" + +#~ msgid "Synchronization NTP time" +#~ msgstr "Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñ Ñ‡Ð°Ñу через інтернет" + +#~ msgid "Synchronization Now" +#~ msgstr "Синхронізую" + +#~ msgid "Synchronization activated" +#~ msgstr "Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð°" + +#~ msgid "Synchronization ntp every 30 min,60 min,120 min, 240 min and Now" +#~ msgstr "Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñ Ñ‡Ð°Ñу відразу Ñ– кожні 30, 60, 120, 240 хв." + +#~ msgid "Synchronized" +#~ msgstr "Синхронізовано" + +#~ msgid "System Info" +#~ msgstr "СиÑтемна інформаціÑ" + +#~ msgid "System Tools" +#~ msgstr "СиÑтемні утиліти" + +#~ msgid "System info" +#~ msgstr "СиÑтемна інформаціÑ" + +#~ msgid "TMBD Details" +#~ msgstr "TMBD пошук" + +#~ msgid "" +#~ "TMBD Details Plugin\n" +#~ "Developer: Nikolasi,vlamo,Dima73\n" +#~ "(c)2012" +#~ msgstr "" +#~ "Плагін пошуку TMBD\n" +#~ "Розробники: Nikolasi,vlamo,Dima73\n" +#~ "(c)2012" + +#~ msgid "TMBD Details:current event" +#~ msgstr "TMBD пошук: поточну подію" + +#~ msgid "TMBD Plugin" +#~ msgstr "плагін TMBD" + +#~ msgid "Taiwan" +#~ msgstr "Тайвань" + +#~ msgid "Tanzania" +#~ msgstr "ТанзаніÑ" + +#~ msgid "Text editing" +#~ msgstr "Редагувати текÑÑ‚" + +#~ msgid "Th" +#~ msgstr "Чт" + +#~ msgid "Thailand" +#~ msgstr "Тайланд" + +#~ msgid "The Internet Movie Database" +#~ msgstr "База даних фільмів в інтернеті" + +# message23 +#~ msgid "The content of the folder is:" +#~ msgstr "ЗміÑÑ‚ папки:" + +#~ msgid "The frame around the posters in the full menu" +#~ msgstr "Рамка навколо поÑтерів в повному меню" + +# message21-7 +#~ msgid "The program will exit now." +#~ msgstr "Програма буде закрита." + +#~ msgid "" +#~ "The selected settings are installed\n" +#~ "\n" +#~ "GUI needs a reboot to apply the changes.\n" +#~ "Do you want to restart the GUI now? " +#~ msgstr "" +#~ "Вибрані Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñтановлені\n" +#~ "\n" +#~ "GUI потребує перезавантаженнÑ, щоб заÑтоÑувати зміни. \n" +#~ "Ви хочете перезавантажити GUI зараз? " + +# message29 +#~ msgid "There COULD be a problem with restoring this back-up because the size of the back-up comes close to the maximum size. This is a limitation of the bootloader not of the back-up or the BackupSuite." +#~ msgstr "Може виникнути проблема з відновленнÑм цієї резервної копії, тому що Ñ—Ñ— розмір наближаєтьÑÑ Ð´Ð¾ макÑимального можливого розміру. Це Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ñ‡Ð°, а не прошивки або BackupSuite.ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg" + +# message21-1 +#~ msgid "There is NO valid USB-stick found, so I've got nothing to do." +#~ msgstr "ВиÑвлено ÐЕ підтримуваний USB-накопичувач, тому резервну копію не можна зробити." + +# message17-1 +#~ msgid "There is a valid USB-flashdrive detected in one of the USB-ports, therefore an extra copy of the back-up image will now be copied to that USB-flashdrive." +#~ msgstr "ВиÑвлено підтримуваний USB-накопичувач в одному з USB-портів, тому додаткова резервна ÐºÐ¾Ð¿Ñ–Ñ Ð¿Ñ€Ð¾ÑˆÐ¸Ð²ÐºÐ¸ буде Ñкопійована на цей USB-накопичувач." + +# message17-2 +#~ msgid "This only takes about 20 seconds....." +#~ msgstr "Це займе близько 20 Ñекунд ....." + +#~ msgid "Thundershowers" +#~ msgstr "Грози" + +#~ msgid "Thunderstorms" +#~ msgstr "Гроза" + +#~ msgid "Time for inactivity (min):" +#~ msgstr "Ð§Ð°Ñ Ð´Ð»Ñ Ð±ÐµÐ·Ð´Ñ–ÑльноÑÑ‚Ñ–(мин) " + +#~ msgid "Time in standby for power off (min):" +#~ msgstr "Ð§Ð°Ñ Ð² режимі Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð²Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð¶Ð¸Ð²Ð»ÐµÐ½Ð½Ñ (хв)" + +# message24 +#~ msgid "Time required for this process: " +#~ msgstr "ЧаÑ, необхідний Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— процедури: " + +#~ msgid "Timer Editor" +#~ msgstr "Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð¢Ð°Ð¹Ð¼ÐµÑ€Ñƒ " + +# message21-3 +#~ msgid "To back-up directly to the USB-stick, the USB-stick MUST contain a file with the name:" +#~ msgstr "Ð”Ð»Ñ Ð¿Ñ€Ñмого ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð½Ð° USB-флешку, вона повинна міÑтити файл з ім'Ñм:" + +# message12-1 +#~ msgid "To restore the image:" +#~ msgstr "Ð”Ð»Ñ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ÑˆÐ¸Ð²ÐºÐ¸:" + +#~ msgid "Tomorrow" +#~ msgstr "Завтра" + +#~ msgid "Tools" +#~ msgstr "Утиліти" + +#~ msgid "Tornado" +#~ msgstr "Торнадо" + +#~ msgid "Total posters found: %s" +#~ msgstr "Знайдених поÑтерів: %s" + +#~ msgid "Total results: %s" +#~ msgstr "Ð’Ñього результатів: %s" + +#~ msgid "Total: %s Kb Free: %s Kb" +#~ msgstr "Ð’Ñього: %s Kb Вільно: %s Kb" + +#~ msgid "Tropical storm" +#~ msgstr "Тропічний шторм" + +#~ msgid "Tu" +#~ msgstr "Ð’Ñ‚" + +#~ msgid "Tuning step size" +#~ msgstr "Розмір кроку повороту" + +#~ msgid "Turkey" +#~ msgstr "ТурціÑ" + +# message10 +#~ msgid "USB Image created in: " +#~ msgstr "USB прошивка Ñтворена в: " + +#~ msgid "Ukraine" +#~ msgstr "Україна" + +#~ msgid "Ukrainian" +#~ msgstr "УкраїнÑька" + +#~ msgid "UnInstall" +#~ msgstr "ВидаленнÑ" + +#~ msgid "UnInstall Ipk" +#~ msgstr "Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ .ipk пакетів" + +#~ msgid "UnLoaded %s.ko" +#~ msgstr "%s.ko не завантажений" + +#~ msgid "UnMount" +#~ msgstr "Демонтувати" + +#~ msgid "UnMount USB" +#~ msgstr "Демонтувати USB" + +#~ msgid "UnSuccessfull" +#~ msgstr "Ðе виконано" + +#~ msgid "Unable to determine the current version" +#~ msgstr "Ðеможливо визначити поточну верÑÑ–ÑŽ" + +#~ msgid "Uncommitted DiSEqC command" +#~ msgstr "Команда Ð¿ÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ DiSEqC" + +#~ msgid "United Arab Emirates" +#~ msgstr "Об'єднані ÐрабÑькі Емірати" + +#~ msgid "United Kingdom" +#~ msgstr "ВеликобританіÑ" + +#~ msgid "United States" +#~ msgstr "СШÐ" + +#~ msgid "Universal Switcher" +#~ msgstr "УніверÑальний перемикач" + +#~ msgid "Unknown error!" +#~ msgstr "Ðевідома помилка!" + +#~ msgid "Unmount manager" +#~ msgstr "Ð”ÐµÐ¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ USB" + +#~ msgid "Unmount usb devices" +#~ msgstr "Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸Ñтроїв USB" + +#~ msgid "Unmounted %s" +#~ msgstr "Демонтовано %s" + +#~ msgid "Unmounted %s Unsucessfull" +#~ msgstr "Ð”ÐµÐ¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ USB не виконане" + +#~ msgid "Update Now" +#~ msgstr "Синхронізувати " + +#~ msgid "Update failed! Manually download the archive from the site and install it yourself!" +#~ msgstr "Ðе вдалоÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ оновленнÑ! Вручну Ñкачайте архів з Ñайту Ñ– вÑтановіть його ÑамоÑтійно!" + +#~ msgid "Update plugin" +#~ msgstr "Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð»Ð°Ð³Ñ–Ð½Ñƒ" + +#~ msgid "Update preview: %s updates aviable" +#~ msgstr "ОновленнÑ: %s доÑтупне" + +#~ msgid "Update to plugin list" +#~ msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÑпиÑку плагінів" + +#~ msgid "Updating..." +#~ msgstr "ОновленнÑ..." + +#~ msgid "Use the configured key(s) on your remote control to switch between aspect ratio modes. Usual functionality of these keys is not available as long as this plugin is enabled!" +#~ msgstr "" +#~ "ВикориÑтовуйте клавішу налаштовану на пульті ДУ длÑ\n" +#~ "перемик. між режимами Ñпіввідн. Ñторін. Звичайна\n" +#~ "функц клавіши не доÑтупна, поки цей плагін увімкнено!" + +#~ msgid "User Rating" +#~ msgstr "Рейтинг" + +#~ msgid "User Scripts" +#~ msgstr "Скрипти кориÑтувача " + +#~ msgid "Uzbekistan" +#~ msgstr "УзбекіÑтан" + +#~ msgid "Video output mode Mode" +#~ msgstr "Режим" + +#~ msgid "Vietnam" +#~ msgstr "Ð’'єтнам" + +#~ msgid "View" +#~ msgstr "ПереглÑнути" + +#~ msgid "View System Settings (/etc/enigma2/settings)" +#~ msgstr "ПереглÑд УÑтановок ÑиÑтеми (/etc/enigma2/settings)" + +#~ msgid "View or Remove Crashlog files" +#~ msgstr "ПереглÑдач файлів крешлога" + +#~ msgid "View settings" +#~ msgstr "ПереглÑд уÑтановок" + +#~ msgid "Votes" +#~ msgstr "ПроголоÑували" + +#~ msgid "W, %3.02f m/s" +#~ msgstr "Зх, %3.02f м/Ñ" + +#~ msgid "WNW, %3.02f m/s" +#~ msgstr "Зх,ПнЗх, %3.02f м/Ñ" + +#~ msgid "WSW, %3.02f m/s" +#~ msgstr "Зх,ПвЗх, %3.02f м/Ñ" + +#~ msgid "We" +#~ msgstr "Ср" + +#~ msgid "What exactly do you want to delete?" +#~ msgstr "Що Ñаме ви хочете видалити?" + +#~ msgid "Wicardd config filename" +#~ msgstr "Wicardd ім'Ñ Ð¾Ñновного файлу конфігурації" + +#~ msgid "Wicardd config switcher" +#~ msgstr "Wicardd перемикач" + +#~ msgid "Wicardd configfile extention" +#~ msgstr "Wicardd Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ конфігурації" + +#~ msgid "Wicardd configpath" +#~ msgstr "Wicardd щлÑÑ… до конфігурації" + +#~ msgid "Windy" +#~ msgstr "Вітер" + +#~ msgid "Write event to new eit-file:\n" +#~ msgstr "Створюємо Ð¾Ð¿Ð¸Ñ Ð² eit-файл:\n" + +#~ msgid "Write to new meta-file for:\n" +#~ msgstr "Створено новий meta-файл длÑ:\n" + +#~ msgid "YT Trailer-List" +#~ msgstr "СпиÑок трейлерів" + +#~ msgid "YT-Trailer Setup" +#~ msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ YT-Trailer" + +#~ msgid "YT-Trailer in Event View" +#~ msgstr "YT-Trailer в переглÑді деталей події" + +#~ msgid "YT-Trailer in Single/Multi EPG" +#~ msgstr "YT-Trailer в одиночному/мульти EPG" + +#~ msgid "" +#~ "YTTrailer is not installed.\n" +#~ "Install YTTrailer now?" +#~ msgstr "" +#~ "YTTrailer не вÑтановлений.\n" +#~ "Хочете вÑтановити YTTrailer тепер?" + +#~ msgid "YTTrailer is not installed. Please install YTTrailer." +#~ msgstr "YTTrailer не вÑтановлений. Ð’Ñтановіть плагін YTTrailer." + +#~ msgid "YWeather.py not found" +#~ msgstr "YWeather.py не знайдено" + +#~ msgid "Yes,but write new meta-file" +#~ msgstr "Так, але Ñтворити новий meta-файл" + +#~ msgid "Your current version: %s" +#~ msgstr "Ваша верÑÑ–Ñ: %s" + +#~ msgid "Your receiver will shutdown due to inactivity." +#~ msgstr "Ваш реÑивер буде вимкнений через бездіÑльніÑÑ‚ÑŒ." + +#~ msgid "Your receiver will shutdown due to the sleeptimer." +#~ msgstr "Ваш реÑивер буде переведений в Режим ÐžÑ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° таймером Ñну." + +#~ msgid "Zap back to service before satfinder?" +#~ msgstr "Переключити на попередній ÑервіÑ?" + +#~ msgid "Zram swap is on" +#~ msgstr "Zram файл підкачки включений" + +#~ msgid "add tabs - %s" +#~ msgstr "Додати Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ - %s" + +# message11 +#~ msgid "and there is made an extra copy in: " +#~ msgstr "У цьому міÑці розташована додаткова резервна копію: " + +#~ msgid "ask user" +#~ msgstr "запитати кориÑтувача" + +# message16 +#~ msgid "available " +#~ msgstr "доÑтупний " + +# message21-4 +#~ msgid "backupstick or" +#~ msgstr "backupstick або" + +# message21-5 +#~ msgid "backupstick.txt" +#~ msgstr "backupstick.txt" + +#~ msgid "bad day %s" +#~ msgstr "Ðекоректно введений день міÑÑÑ†Ñ %s" + +#~ msgid "bad format" +#~ msgstr "некоректний формат" + +#~ msgid "bad hour %s" +#~ msgstr "некоректно введені годинник %s" + +#~ msgid "bad minute %s" +#~ msgstr "некоректно введені хвилини %s" + +#~ msgid "bad month %s" +#~ msgstr "некоректно введений міÑÑць %s" + +#~ msgid "bad year %s" +#~ msgstr "некоректно введений рік %s" + +#~ msgid "button label, 'next screen'Next" +#~ msgstr "Далі" + +#~ msgid "button label, 'previous screen'Prev" +#~ msgstr "Попередній" + +#~ msgid "choice now/next event" +#~ msgstr "вибір зараз/далі" + +#~ msgid "clear /tmp" +#~ msgstr "ОчиÑтка /tmp" + +#~ msgid "close" +#~ msgstr "закрити" + +#~ msgid "config menu and extentionsmenu foe E-Panel items" +#~ msgstr "ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ð¼ÐµÐ½ÑŽ Ñ– розширеного меню E-Панелі" + +#~ msgid "configuration is saved" +#~ msgstr "ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð°" + +#~ msgid "configure automated power off / standby" +#~ msgstr "налаштувати автоматичне Ð²Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð¶Ð¸Ð²Ð»ÐµÐ½Ð½Ñ/очікуваннÑ" + +#~ msgid "dowmload extensions from feed" +#~ msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½ÑŒ з Ñервера іміджу" + +#~ msgid "download extensions" +#~ msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½ÑŒ" + +#~ msgid "download from: %s" +#~ msgstr "Завантажити з: %s" + +#~ msgid "ecm.info Viewer" +#~ msgstr "ПереглÑдач ecm.info" + +#~ msgid "ecm.info file viewer" +#~ msgstr "ПереглÑд файла ecm.info" + +#~ msgid "ecm.info viewer" +#~ msgstr "ПереглÑдач ecm.info" + +#~ msgid "epg.dat reloaded" +#~ msgstr "epg.dat перазавантажений" + +#~ msgid "epg.dat restored" +#~ msgstr "epg.dat відновлений" + +#~ msgid "epg.dat saved" +#~ msgstr "epg.dat збережений" + +#~ msgid "install & forced install ipk, bh.tgz, tar.gz, nab.tgz from /tmp" +#~ msgstr "ІнÑталÑÑ†Ñ–Ñ Ñ– примуÑова інÑталÑÑ†Ñ–Ñ ipk, bh.tgz, tar.gz, nab.tgz из /tmp" + +#~ msgid "install & remove ipk, tar.gz, bh.tgz packets" +#~ msgstr "ІнÑталÑÑ†Ñ–Ñ Ñ– Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ .ipk, .tar.gz, .bh.tgz, .nab.tgz пакетов" + +#~ msgid "install extensions" +#~ msgstr "ІнÑталÑÑ†Ñ–Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÑ–Ð²" + +#~ msgid "install extensions from feed" +#~ msgstr "ІнÑталÑÑ†Ñ–Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÑ–Ð² з Ñервера іміджу" + +#~ msgid "install/uninstall local .ipk & .tar.gz files from /tmp" +#~ msgstr "Локальна інÑталÑÑ†Ñ–Ñ Ñ– Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¿Ð°ÐºÐµÑ‚Ñ–Ð² из /tmp" + +#~ msgid "ipk packets remover" +#~ msgstr "ІнÑталÑÑ†Ñ–Ñ .ipk пакетів" + +#~ msgid "ipk packets, bh.tgz, tar.gz, nab.tgz installer" +#~ msgstr "ІнÑталÑÑ†Ñ–Ñ ipk bh.tgz, tar.gz, nab.tgz" + +#~ msgid "kernel modules manager, manage swap, ftp, samba, unmount USB" +#~ msgstr "Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ð°Ð¼Ð¸, Ftp, Samba, Cron, Swap, Ð´ÐµÐ¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ USB" + +#~ msgid "kinopoisk.ru (only russian language)" +#~ msgstr "kinopoisk.ru (тільки роÑійÑька мова)" + +#~ msgid "load & unload kernel modules" +#~ msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ– Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ñ–Ð²" + +#~ msgid "login" +#~ msgstr "Логін" + +#~ msgid "new list style with poster" +#~ msgstr "новий вид ÑпиÑку з поÑтером" + +#~ msgid "new time not available" +#~ msgstr "новий Ñ‡Ð°Ñ Ð½Ðµ введено" + +#~ msgid "newcamd.list Editor" +#~ msgstr "Редактор newcamd.list " + +#~ msgid "newcamd.list Switcher" +#~ msgstr "Перемикач newcamd.list " + +#~ msgid "newcamd.list Switcher: - %s" +#~ msgstr "Перемикач newcamd.list: - %s" + +#~ msgid "newcamd.list editor" +#~ msgstr "Редактор newcamd.list" + +#~ msgid "no user rating yet" +#~ msgstr "Ðемає рейтингу" + +#~ msgid "no votes" +#~ msgstr "немає голоÑуваннÑ" + +#~ msgid "not confirmed" +#~ msgstr "Ðемає підтвердженнÑ" + +# message05 +#~ msgid "not found, the backup process will be aborted!" +#~ msgstr "не знайдений, Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð³Ð¾ ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ перерваний" + +#~ msgid "now/next: 'next' event label Next" +#~ msgstr "Далі" + +#~ msgid "now/next: 'now' event label Now" +#~ msgstr "Тепер" + +#~ msgid "only current event" +#~ msgstr "тільки поточну подію" + +#~ msgid "only current profile" +#~ msgstr "тільки поточний профіль" + +#~ msgid "open plugin VCS" +#~ msgstr "відкрити плагін VCS" + +#~ msgid "press Close for Exit" +#~ msgstr "натиÑніть Закрити Ð´Ð»Ñ Ð²Ð¸Ñ…Ð¾Ð´Ñƒ" + +#~ msgid "press OK to enable/disable server" +#~ msgstr "ÐатиÑніть OK Ð´Ð»Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ / Ð²Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñервера" + +#~ msgid "quick newcamd.list editor" +#~ msgstr "Швидке Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ newcamd.list" + +#~ msgid "reFresh" +#~ msgstr "Оновити" + +#~ msgid "red " +#~ msgstr "Червоний" + +#~ msgid "reload epg.dat failed" +#~ msgstr "Помилка Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ epg.dat" + +#~ msgid "remove & advanced remove ipk packets" +#~ msgstr "Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñ– проÑунуте Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ .ipk пакетов" + +#~ msgid "remove *.ipk & *.tar.gz & *.bh.tgz & *.nab.tgz from /tmp" +#~ msgstr "ÐžÑ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ /tmp, Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ *.ipk, *.tar.gz, *.bh.tgz и *.nab.tgz" + +#~ msgid "remove *.ipk & *.tar.gz from /tmp" +#~ msgstr "Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ *.ipk и *.tar.gz пакетов из /tmp" + +#~ msgid "running" +#~ msgstr "Працює" + +#~ msgid "search in TMBD" +#~ msgstr "пошук в TMBDтттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттТМДБ кінець" + +#~ msgid "server: %s" +#~ msgstr "Сервер: %s" + +#~ msgid "set of utilities for enigma2" +#~ msgstr "набір утиліт Ð´Ð»Ñ enigma2" + +# start HDD version +#~ msgid "sh '/usr/lib/enigma2/python/Plugins/Extensions/BackupSuite-HDD/backup.sh' en_EN" +#~ msgstr "sh '/usr/lib/enigma2/python/Plugins/Extensions/BackupSuite-HDD/backup.sh' ru_RU" + +# start USB version +#~ msgid "sh '/usr/lib/enigma2/python/Plugins/Extensions/BackupSuite-USB/backup.sh' en_EN" +#~ msgstr "sh '/usr/lib/enigma2/python/Plugins/Extensions/BackupSuite-USB/backup.sh' ru_RU" + +#~ msgid "show VCS..." +#~ msgstr "відкрити VCS..." + +#~ msgid "simple tools for Pli image" +#~ msgstr "Панель керуваннÑ, утиліти, інÑтрументи" + +#~ msgid "size: %s %s" +#~ msgstr "Розмір: %s %s" + +#~ msgid "stopping" +#~ msgstr "Зупинений" + +#~ msgid "switch config files mgcamd, oscam, wicardd, cccam with remote conrol" +#~ msgstr "Перемикач конфігурацій mgcamd, oscam, wicardd, cccam" + +#~ msgid "system info (free, dh -f)" +#~ msgstr "СиÑтемна Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ (free, dh -f)" + +#~ msgid "tuner is not supported" +#~ msgstr "Ðевідома" + +#~ msgid "update Softcam.key from internet" +#~ msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ SoftCam.Key з інтернету" + +#~ msgid "update time from internet" +#~ msgstr "Синхронізувати Ñ‡Ð°Ñ Ñ‡ÐµÑ€ÐµÐ· інтернет" + +#~ msgid "view & remove crashlog files" +#~ msgstr "ПереглÑд Ñ– Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² крешлога" + +#~ msgid "view system settings" +#~ msgstr "переглÑд уÑтановок ÑиÑтеми" + +#~ msgid "yahoo! weather plugin config" +#~ msgstr "погода yahoo! конфігуратор" + +#~ msgid "ПппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппПОГОДÐ" +#~ msgstr "ппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппп" diff --git a/po/xml2po.py b/po/xml2po.py new file mode 100644 index 0000000..7eeebc2 --- /dev/null +++ b/po/xml2po.py @@ -0,0 +1,67 @@ +#!/usr/bin/python +import sys +import os +import string +import re +from xml.sax import make_parser +from xml.sax.handler import ContentHandler, property_lexical_handler +try: + from _xmlplus.sax.saxlib import LexicalHandler + no_comments = False +except ImportError: + class LexicalHandler: + pass + no_comments = True + +class parseXML(ContentHandler, LexicalHandler): + def __init__(self, attrlist): + self.isPointsElement, self.isReboundsElement = 0, 0 + self.attrlist = attrlist + self.last_comment = None + self.ishex = re.compile('#[0-9a-fA-F]+\Z') + + def comment(self, comment): + if "TRANSLATORS:" in comment: + self.last_comment = comment + + def startElement(self, name, attrs): + for x in ["text", "title", "value", "caption", "description"]: + try: + k = str(attrs[x]) + if k.strip() != "" and not self.ishex.match(k): + attrlist.add((attrs[x], self.last_comment)) + self.last_comment = None + except KeyError: + pass + +parser = make_parser() + +attrlist = set() + +contentHandler = parseXML(attrlist) +parser.setContentHandler(contentHandler) +if not no_comments: + parser.setProperty(property_lexical_handler, contentHandler) + +for arg in sys.argv[1:]: + if os.path.isdir(arg): + for file in os.listdir(arg): + if (file.endswith(".xml")): + parser.parse(os.path.join(arg, file)) + else: + parser.parse(arg) + + attrlist = list(attrlist) + attrlist.sort(key=lambda a: a[0]) + + for (k,c) in attrlist: + print + print '#: ' + arg + string.replace(k, "\\n", "\"\n\"") + if c: + for l in c.split('\n'): + print "#. ", l + print 'msgid "' + str(k) + '"' + print 'msgstr ""' + + attrlist = set() diff --git a/skin.py b/skin.py new file mode 100644 index 0000000..4e1e7d4 --- /dev/null +++ b/skin.py @@ -0,0 +1,955 @@ +from Tools.Profile import profile +profile("LOAD:ElementTree") +import xml.etree.cElementTree +import os + +profile("LOAD:enigma_skin") +from enigma import eSize, ePoint, eRect, gFont, eWindow, eLabel, ePixmap, eWindowStyleManager, \ + addFont, gRGB, eWindowStyleSkinned, getDesktop +from Components.config import ConfigSubsection, ConfigText, config +from Components.Converter.Converter import Converter +from Components.Sources.Source import Source, ObsoleteSource +from Tools.Directories import resolveFilename, SCOPE_SKIN, SCOPE_SKIN_IMAGE, SCOPE_FONTS, SCOPE_CURRENT_SKIN, SCOPE_CONFIG, fileExists +from Tools.Import import my_import +from Tools.LoadPixmap import LoadPixmap +from Components.RcModel import rc_model + +colorNames = {} +# Predefined fonts, typically used in built-in screens and for components like +# the movie list and so. +fonts = { + "Body": ("Regular", 18, 22, 16), + "ChoiceList": ("Regular", 20, 24, 18), +} + +def dump(x, i=0): + print " " * i + str(x) + try: + for n in x.childNodes: + dump(n, i + 1) + except: + None + +class SkinError(Exception): + def __init__(self, message): + self.msg = message + + def __str__(self): + return "{%s}: %s. Please contact the skin's author!" % (config.skin.primary_skin.value, self.msg) + +dom_skins = [ ] + +def addSkin(name, scope = SCOPE_SKIN): + # read the skin + filename = resolveFilename(scope, name) + if fileExists(filename): + mpath = os.path.dirname(filename) + "/" + dom_skins.append((mpath, xml.etree.cElementTree.parse(filename).getroot())) + return True + return False + +# get own skin_user_skinname.xml file, if exist +def skin_user_skinname(): + name = "skin_user_" + config.skin.primary_skin.value[:config.skin.primary_skin.value.rfind('/')] + ".xml" + filename = resolveFilename(SCOPE_CONFIG, name) + if fileExists(filename): + return name + return None + +# we do our best to always select the "right" value +# skins are loaded in order of priority: skin with +# highest priority is loaded last, usually the user-provided +# skin. + +# currently, loadSingleSkinData (colors, bordersets etc.) +# are applied one-after-each, in order of ascending priority. +# the dom_skin will keep all screens in descending priority, +# so the first screen found will be used. + +# example: loadSkin("nemesis_greenline/skin.xml") +config.skin = ConfigSubsection() +DEFAULT_SKIN = "PLi-HD/skin.xml" +# on SD hardware, PLi-HD will not be available +if not fileExists(resolveFilename(SCOPE_SKIN, DEFAULT_SKIN)): + # in that case, fallback to Magic (which is an SD skin) + DEFAULT_SKIN = "GigabluePax/skin.xml" +config.skin.primary_skin = ConfigText(default=DEFAULT_SKIN) + +profile("LoadSkin") +try: + name = skin_user_skinname() + if name is not None: + addSkin(name, SCOPE_CONFIG) + else: + addSkin('skin_user.xml', SCOPE_CONFIG) +except (SkinError, IOError, AssertionError), err: + print "not loading user skin: ", err + +# some boxes lie about their dimensions +addSkin('skin_box.xml') +# add optional discrete second infobar +addSkin('skin_second_infobar.xml') +# Only one of these is present, compliments of AM_CONDITIONAL +display_skin_id = 1 +addSkin('skin_display.xml') +if addSkin('skin_display96.xml'): + # Color OLED + display_skin_id = 2 +addSkin('skin_text.xml') + +addSkin('skin_subtitles.xml') + +try: + if not addSkin(config.skin.primary_skin.value): + raise SkinError, "primary skin not found" +except Exception, err: + print "SKIN ERROR:", err + skin = DEFAULT_SKIN + if config.skin.primary_skin.value == skin: + skin = 'skin.xml' + print "defaulting to standard skin...", skin + config.skin.primary_skin.value = skin + addSkin(skin) + del skin + +addSkin('skin_default.xml') +profile("LoadSkinDefaultDone") + +def parseCoordinate(s, e, size=0, font=None): + s = s.strip() + if s == "center": + val = (e - size)/2 + elif s == '*': + return None + else: + if s[0] is 'e': + val = e + s = s[1:] + elif s[0] is 'c': + val = e/2 + s = s[1:] + else: + val = 0; + if s: + if s[-1] is '%': + val += e * int(s[:-1]) / 100 + elif s[-1] is 'w': + val += fonts[font][3] * int(s[:-1]); + elif s[-1] is 'h': + val += fonts[font][2] * int(s[:-1]); + else: + val += int(s) + if val < 0: + val = 0 + return val + + +def getParentSize(object, desktop): + size = eSize() + if object: + parent = object.getParent() + # For some widgets (e.g. ScrollLabel) the skin attributes are applied to + # a child widget, instead of to the widget itself. In that case, the parent + # we have here is not the real parent, but it is the main widget. + # We have to go one level higher to get the actual parent. + # We can detect this because the 'parent' will not have a size yet + # (the main widget's size will be calculated internally, as soon as the child + # widget has parsed the skin attributes) + if parent and parent.size().isEmpty(): + parent = parent.getParent() + if parent: + size = parent.size() + elif desktop: + #widget has no parent, use desktop size instead for relative coordinates + size = desktop.size() + return size + +def parsePosition(s, scale, object = None, desktop = None, size = None): + x, y = s.split(',') + parentsize = eSize() + if object and (x[0] in ('c', 'e') or y[0] in ('c', 'e')): + parentsize = getParentSize(object, desktop) + xval = parseCoordinate(x, parentsize.width(), size and size.width()) + yval = parseCoordinate(y, parentsize.height(), size and size.height()) + return ePoint(xval * scale[0][0] / scale[0][1], yval * scale[1][0] / scale[1][1]) + +def parseSize(s, scale, object = None, desktop = None): + x, y = s.split(',') + parentsize = eSize() + if object and (x[0] in ('c', 'e') or y[0] in ('c', 'e')): + parentsize = getParentSize(object, desktop) + xval = parseCoordinate(x, parentsize.width()) + yval = parseCoordinate(y, parentsize.height()) + return eSize(xval * scale[0][0] / scale[0][1], yval * scale[1][0] / scale[1][1]) + +def parseFont(s, scale): + try: + f = fonts[s] + name = f[0] + size = f[1] + except: + name, size = s.split(';') + return gFont(name, int(size) * scale[0][0] / scale[0][1]) + +def parseColor(s): + if s[0] != '#': + try: + return colorNames[s] + except: + raise SkinError("color '%s' must be #aarrggbb or valid named color" % (s)) + return gRGB(int(s[1:], 0x10)) + +def collectAttributes(skinAttributes, node, context, skin_path_prefix=None, ignore=(), filenames=frozenset(("pixmap", "pointer", "seek_pointer", "backgroundPixmap", "selectionPixmap", "sliderPixmap", "scrollbarbackgroundPixmap"))): + # walk all attributes + size = None + pos = None + font = None + for attrib, value in node.items(): + if attrib not in ignore: + if attrib in filenames: + value = resolveFilename(SCOPE_SKIN_IMAGE, value, path_prefix=skin_path_prefix) + # Bit of a hack this, really. When a window has a flag (e.g. wfNoBorder) + # it needs to be set at least before the size is set, in order for the + # window dimensions to be calculated correctly in all situations. + # If wfNoBorder is applied after the size has been set, the window will fail to clear the title area. + # Similar situation for a scrollbar in a listbox; when the scrollbar setting is applied after + # the size, a scrollbar will not be shown until the selection moves for the first time + if attrib == 'size': + size = value.encode("utf-8") + elif attrib == 'position': + pos = value.encode("utf-8") + elif attrib == 'font': + font = value.encode("utf-8") + skinAttributes.append((attrib, font)) + else: + skinAttributes.append((attrib, value.encode("utf-8"))) + if pos is not None: + pos, size = context.parse(pos, size, font) + skinAttributes.append(('position', pos)) + if size is not None: + skinAttributes.append(('size', size)) + +def morphRcImagePath(value): + if rc_model.rcIsDefault() is False: + if value == '/usr/share/enigma2/skin_default/rc.png' or value == '/usr/share/enigma2/skin_default/rcold.png': + value = rc_model.getRcImg() + return value + +def loadPixmap(path, desktop): + option = path.find("#") + if option != -1: + path = path[:option] + ptr = LoadPixmap(morphRcImagePath(path), desktop) + if ptr is None: + raise SkinError("pixmap file %s not found!" % (path)) + return ptr + +class AttributeParser: + def __init__(self, guiObject, desktop, scale = ((1,1),(1,1))): + self.guiObject = guiObject + self.desktop = desktop + self.scale = scale + def applyOne(self, attrib, value): + try: + getattr(self, attrib)(value) + except AttributeError: + print "[Skin] Attribute not implemented:", attrib, "value:", value + except SkinError, ex: + print "[Skin] Error:", ex + def applyAll(self, attrs): + for attrib, value in attrs: + try: + getattr(self, attrib)(value) + except AttributeError: + print "[Skin] Attribute not implemented:", attrib, "value:", value + except SkinError, ex: + print "[Skin] Error:", ex + def conditional(self, value): + pass + def position(self, value): + if isinstance(value, tuple): + self.guiObject.move(ePoint(*value)) + else: + self.guiObject.move(parsePosition(value, self.scale, self.guiObject, self.desktop, self.guiObject.csize())) + def size(self, value): + if isinstance(value, tuple): + self.guiObject.resize(eSize(*value)) + else: + self.guiObject.resize(parseSize(value, self.scale, self.guiObject, self.desktop)) + def title(self, value): + self.guiObject.setTitle(_(value)) + def text(self, value): + self.guiObject.setText(_(value)) + def font(self, value): + self.guiObject.setFont(parseFont(value, self.scale)) + def zPosition(self, value): + self.guiObject.setZPosition(int(value)) + def itemHeight(self, value): + self.guiObject.setItemHeight(int(value)) + def pixmap(self, value): + ptr = loadPixmap(value, self.desktop) + self.guiObject.setPixmap(ptr) + def backgroundPixmap(self, value): + ptr = loadPixmap(value, self.desktop) + self.guiObject.setBackgroundPicture(ptr) + def selectionPixmap(self, value): + ptr = loadPixmap(value, self.desktop) + self.guiObject.setSelectionPicture(ptr) + def sliderPixmap(self, value): + ptr = loadPixmap(value, self.desktop) + self.guiObject.setSliderPicture(ptr) + def scrollbarbackgroundPixmap(self, value): + ptr = loadPixmap(value, self.desktop) + self.guiObject.setScrollbarBackgroundPicture(ptr) + def alphatest(self, value): + self.guiObject.setAlphatest( + { "on": 1, + "off": 0, + "blend": 2, + }[value]) + def scale(self, value): + self.guiObject.setScale(1) + def orientation(self, value): # used by eSlider + try: + self.guiObject.setOrientation(* + { "orVertical": (self.guiObject.orVertical, False), + "orTopToBottom": (self.guiObject.orVertical, False), + "orBottomToTop": (self.guiObject.orVertical, True), + "orHorizontal": (self.guiObject.orHorizontal, False), + "orLeftToRight": (self.guiObject.orHorizontal, False), + "orRightToLeft": (self.guiObject.orHorizontal, True), + }[value]) + except KeyError: + print "oprientation must be either orVertical or orHorizontal!" + def valign(self, value): + try: + self.guiObject.setVAlign( + { "top": self.guiObject.alignTop, + "center": self.guiObject.alignCenter, + "bottom": self.guiObject.alignBottom + }[value]) + except KeyError: + print "valign must be either top, center or bottom!" + def halign(self, value): + try: + self.guiObject.setHAlign( + { "left": self.guiObject.alignLeft, + "center": self.guiObject.alignCenter, + "right": self.guiObject.alignRight, + "block": self.guiObject.alignBlock + }[value]) + except KeyError: + print "halign must be either left, center, right or block!" + def textOffset(self, value): + x, y = value.split(',') + self.guiObject.setTextOffset(ePoint(int(x) * self.scale[0][0] / self.scale[0][1], int(y) * self.scale[1][0] / self.scale[1][1])) + def flags(self, value): + flags = value.split(',') + for f in flags: + try: + fv = eWindow.__dict__[f] + self.guiObject.setFlag(fv) + except KeyError: + print "illegal flag %s!" % f + def backgroundColor(self, value): + self.guiObject.setBackgroundColor(parseColor(value)) + def backgroundColorSelected(self, value): + self.guiObject.setBackgroundColorSelected(parseColor(value)) + def foregroundColor(self, value): + self.guiObject.setForegroundColor(parseColor(value)) + def foregroundColorSelected(self, value): + self.guiObject.setForegroundColorSelected(parseColor(value)) + def shadowColor(self, value): + self.guiObject.setShadowColor(parseColor(value)) + def selectionDisabled(self, value): + self.guiObject.setSelectionEnable(0) + def transparent(self, value): + self.guiObject.setTransparent(int(value)) + def borderColor(self, value): + self.guiObject.setBorderColor(parseColor(value)) + def borderWidth(self, value): + self.guiObject.setBorderWidth(int(value)) + def scrollbarMode(self, value): + self.guiObject.setScrollbarMode(getattr(self.guiObject, value)) + # { "showOnDemand": self.guiObject.showOnDemand, + # "showAlways": self.guiObject.showAlways, + # "showNever": self.guiObject.showNever, + # "showLeft": self.guiObject.showLeft + # }[value]) + def enableWrapAround(self, value): + self.guiObject.setWrapAround(True) + def itemHeight(self, value): + self.guiObject.setItemHeight(int(value)) + def pointer(self, value): + (name, pos) = value.split(':') + pos = parsePosition(pos, self.scale) + ptr = loadPixmap(name, self.desktop) + self.guiObject.setPointer(0, ptr, pos) + def seek_pointer(self, value): + (name, pos) = value.split(':') + pos = parsePosition(pos, self.scale) + ptr = loadPixmap(name, self.desktop) + self.guiObject.setPointer(1, ptr, pos) + def shadowOffset(self, value): + self.guiObject.setShadowOffset(parsePosition(value, self.scale)) + def noWrap(self, value): + self.guiObject.setNoWrap(1) + +def applySingleAttribute(guiObject, desktop, attrib, value, scale = ((1,1),(1,1))): + # Someone still using applySingleAttribute? + AttributeParser(guiObject, desktop, scale).applyOne(attrib, value) + +def applyAllAttributes(guiObject, desktop, attributes, scale): + AttributeParser(guiObject, desktop, scale).applyAll(attributes) + +def loadSingleSkinData(desktop, skin, path_prefix): + """loads skin data like colors, windowstyle etc.""" + assert skin.tag == "skin", "root element in skin must be 'skin'!" + for c in skin.findall("output"): + id = c.attrib.get('id') + if id: + id = int(id) + else: + id = 0 + if id == 0: # framebuffer + for res in c.findall("resolution"): + get_attr = res.attrib.get + xres = get_attr("xres") + if xres: + xres = int(xres) + else: + xres = 720 + yres = get_attr("yres") + if yres: + yres = int(yres) + else: + yres = 576 + bpp = get_attr("bpp") + if bpp: + bpp = int(bpp) + else: + bpp = 32 + #print "Resolution:", xres,yres,bpp + from enigma import gMainDC + gMainDC.getInstance().setResolution(xres, yres) + desktop.resize(eSize(xres, yres)) + if bpp != 32: + # load palette (not yet implemented) + pass + + for skininclude in skin.findall("include"): + filename = skininclude.attrib.get("filename") + if filename: + skinfile = resolveFilename(SCOPE_CURRENT_SKIN, filename, path_prefix=path_prefix) + if not fileExists(skinfile): + skinfile = resolveFilename(SCOPE_SKIN_IMAGE, filename, path_prefix=path_prefix) + if fileExists(skinfile): + print "[SKIN] loading include:", skinfile + loadSkin(skinfile) + + for c in skin.findall("colors"): + for color in c.findall("color"): + get_attr = color.attrib.get + name = get_attr("name") + color = get_attr("value") + if name and color: + colorNames[name] = parseColor(color) + #print "Color:", name, color + else: + raise SkinError("need color and name, got %s %s" % (name, color)) + + for c in skin.findall("fonts"): + for font in c.findall("font"): + get_attr = font.attrib.get + filename = get_attr("filename", "<NONAME>") + name = get_attr("name", "Regular") + scale = get_attr("scale") + if scale: + scale = int(scale) + else: + scale = 100 + is_replacement = get_attr("replacement") and True or False + render = get_attr("render") + if render: + render = int(render) + else: + render = 0 + resolved_font = resolveFilename(SCOPE_FONTS, filename, path_prefix=path_prefix) + if not fileExists(resolved_font): #when font is not available look at current skin path + skin_path = resolveFilename(SCOPE_CURRENT_SKIN, filename) + if fileExists(skin_path): + resolved_font = skin_path + addFont(resolved_font, name, scale, is_replacement, render) + #print "Font: ", resolved_font, name, scale, is_replacement + for alias in c.findall("alias"): + get = alias.attrib.get + try: + name = get("name") + font = get("font") + size = int(get("size")) + height = int(get("height", size)) # to be calculated some day + width = int(get("width", size)) + global fonts + fonts[name] = (font, size, height, width) + except Exception, ex: + print "[SKIN] bad font alias", ex + + + for c in skin.findall("subtitles"): + from enigma import eWidget, eSubtitleWidget + scale = ((1,1),(1,1)) + for substyle in c.findall("sub"): + get_attr = substyle.attrib.get + font = parseFont(get_attr("font"), scale) + col = get_attr("foregroundColor") + if col: + foregroundColor = parseColor(col) + haveColor = 1 + else: + foregroundColor = gRGB(0xFFFFFF) + haveColor = 0 + col = get_attr("borderColor") + if col: + borderColor = parseColor(col) + else: + borderColor = gRGB(0) + borderwidth = get_attr("borderWidth") + if borderwidth is None: + # default: use a subtitle border + borderWidth = 3 + else: + borderWidth = int(borderwidth) + face = eSubtitleWidget.__dict__[get_attr("name")] + eSubtitleWidget.setFontStyle(face, font, haveColor, foregroundColor, borderColor, borderWidth) + + for windowstyle in skin.findall("windowstyle"): + style = eWindowStyleSkinned() + style_id = windowstyle.attrib.get("id") + if style_id: + style_id = int(style_id) + else: + style_id = 0 + # defaults + font = gFont("Regular", 20) + offset = eSize(20, 5) + for title in windowstyle.findall("title"): + get_attr = title.attrib.get + offset = parseSize(get_attr("offset"), ((1,1),(1,1))) + font = parseFont(get_attr("font"), ((1,1),(1,1))) + + style.setTitleFont(font); + style.setTitleOffset(offset) + #print " ", font, offset + for borderset in windowstyle.findall("borderset"): + bsName = str(borderset.attrib.get("name")) + for pixmap in borderset.findall("pixmap"): + get_attr = pixmap.attrib.get + bpName = get_attr("pos") + filename = get_attr("filename") + if filename and bpName: + png = loadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, filename, path_prefix=path_prefix), desktop) + style.setPixmap(eWindowStyleSkinned.__dict__[bsName], eWindowStyleSkinned.__dict__[bpName], png) + #print " borderset:", bpName, filename + for color in windowstyle.findall("color"): + get_attr = color.attrib.get + colorType = get_attr("name") + color = parseColor(get_attr("color")) + try: + style.setColor(eWindowStyleSkinned.__dict__["col" + colorType], color) + except: + raise SkinError("Unknown color %s" % (colorType)) + #pass + #print " color:", type, color + x = eWindowStyleManager.getInstance() + x.setStyle(style_id, style) + for margin in skin.findall("margin"): + style_id = margin.attrib.get("id") + if style_id: + style_id = int(style_id) + else: + style_id = 0 + r = eRect(0,0,0,0) + v = margin.attrib.get("left") + if v: + r.setLeft(int(v)) + v = margin.attrib.get("top") + if v: + r.setTop(int(v)) + v = margin.attrib.get("right") + if v: + r.setRight(int(v)) + v = margin.attrib.get("bottom") + if v: + r.setBottom(int(v)) + # the "desktop" parameter is hardcoded to the UI screen, so we must ask + # for the one that this actually applies to. + getDesktop(style_id).setMargins(r) + +dom_screens = {} + +def loadSkin(name, scope = SCOPE_SKIN): + # Now a utility for plugins to add skin data to the screens + global dom_screens, display_skin_id + filename = resolveFilename(scope, name) + if fileExists(filename): + path = os.path.dirname(filename) + "/" + for elem in xml.etree.cElementTree.parse(filename).getroot(): + if elem.tag == 'screen': + name = elem.attrib.get('name', None) + if name: + sid = elem.attrib.get('id', None) + if sid and (sid != display_skin_id): + # not for this display + elem.clear() + continue + if name in dom_screens: + print "loadSkin: Screen already defined elsewhere:", name + elem.clear() + else: + dom_screens[name] = (elem, path) + else: + elem.clear() + else: + elem.clear() + +def loadSkinData(desktop): + # Kinda hackish, but this is called once by mytest.py + global dom_skins + skins = dom_skins[:] + skins.reverse() + for (path, dom_skin) in skins: + loadSingleSkinData(desktop, dom_skin, path) + for elem in dom_skin: + if elem.tag == 'screen': + name = elem.attrib.get('name', None) + if name: + sid = elem.attrib.get('id', None) + if sid and (sid != display_skin_id): + # not for this display + elem.clear() + continue + if name in dom_screens: + # Kill old versions, save memory + dom_screens[name][0].clear() + dom_screens[name] = (elem, path) + else: + # without name, it's useless! + elem.clear() + else: + # non-screen element, no need for it any longer + elem.clear() + # no longer needed, we know where the screens are now. + del dom_skins + +class additionalWidget: + pass + +# Class that makes a tuple look like something else. Some plugins just assume +# that size is a string and try to parse it. This class makes that work. +class SizeTuple(tuple): + def split(self, *args): + return (str(self[0]), str(self[1])) + def strip(self, *args): + return '%s,%s' % self + def __str__(self): + return '%s,%s' % self + +class SkinContext: + def __init__(self, parent=None, pos=None, size=None, font=None): + if parent is not None: + if pos is not None: + pos, size = parent.parse(pos, size, font) + self.x, self.y = pos + self.w, self.h = size + else: + self.x = None + self.y = None + self.w = None + self.h = None + def __str__(self): + return "Context (%s,%s)+(%s,%s) " % (self.x, self.y, self.w, self.h) + def parse(self, pos, size, font): + if pos == "fill": + pos = (self.x, self.y) + size = (self.w, self.h) + self.w = 0 + self.h = 0 + else: + w,h = size.split(',') + w = parseCoordinate(w, self.w, 0, font) + h = parseCoordinate(h, self.h, 0, font) + if pos == "bottom": + pos = (self.x, self.y + self.h - h) + size = (self.w, h) + self.h -= h + elif pos == "top": + pos = (self.x, self.y) + size = (self.w, h) + self.h -= h + self.y += h + elif pos == "left": + pos = (self.x, self.y) + size = (w, self.h) + self.x += w + self.w -= w + elif pos == "right": + pos = (self.x + self.w - w, self.y) + size = (w, self.h) + self.w -= w + else: + size = (w, h) + pos = pos.split(',') + pos = (self.x + parseCoordinate(pos[0], self.w, size[0], font), self.y + parseCoordinate(pos[1], self.h, size[1], font)) + return (SizeTuple(pos), SizeTuple(size)) + +class SkinContextStack(SkinContext): + # A context that stacks things instead of aligning them + def parse(self, pos, size, font): + if pos == "fill": + pos = (self.x, self.y) + size = (self.w, self.h) + else: + w,h = size.split(',') + w = parseCoordinate(w, self.w, 0, font) + h = parseCoordinate(h, self.h, 0, font) + if pos == "bottom": + pos = (self.x, self.y + self.h - h) + size = (self.w, h) + elif pos == "top": + pos = (self.x, self.y) + size = (self.w, h) + elif pos == "left": + pos = (self.x, self.y) + size = (w, self.h) + elif pos == "right": + pos = (self.x + self.w - w, self.y) + size = (w, self.h) + else: + size = (w, h) + pos = pos.split(',') + pos = (self.x + parseCoordinate(pos[0], self.w, size[0], font), self.y + parseCoordinate(pos[1], self.h, size[1], font)) + return (SizeTuple(pos), SizeTuple(size)) + +def readSkin(screen, skin, names, desktop): + if not isinstance(names, list): + names = [names] + + # try all skins, first existing one have priority + global dom_screens + for n in names: + myscreen, path = dom_screens.get(n, (None,None)) + if myscreen is not None: + # use this name for debug output + name = n + break + else: + name = "<embedded-in-'%s'>" % screen.__class__.__name__ + + # otherwise try embedded skin + if myscreen is None: + myscreen = getattr(screen, "parsedSkin", None) + + # try uncompiled embedded skin + if myscreen is None and getattr(screen, "skin", None): + skin = screen.skin + print "[SKIN] Parsing embedded skin", name + if (isinstance(skin, tuple)): + for s in skin: + candidate = xml.etree.cElementTree.fromstring(s) + if candidate.tag == 'screen': + sid = candidate.attrib.get('id', None) + if (not sid) or (int(sid) == display_skin_id): + myscreen = candidate + break; + else: + print "[SKIN] Hey, no suitable screen!" + else: + myscreen = xml.etree.cElementTree.fromstring(skin) + if myscreen: + screen.parsedSkin = myscreen + if myscreen is None: + print "[SKIN] No skin to read..." + myscreen = screen.parsedSkin = xml.etree.cElementTree.fromstring("<screen></screen>") + + screen.skinAttributes = [ ] + skin_path_prefix = getattr(screen, "skin_path", path) + + context = SkinContextStack() + s = desktop.bounds() + context.x = s.left() + context.y = s.top() + context.w = s.width() + context.h = s.height() + del s + collectAttributes(screen.skinAttributes, myscreen, context, skin_path_prefix, ignore=("name",)) + context = SkinContext(context, myscreen.attrib.get('position'), myscreen.attrib.get('size')) + + screen.additionalWidgets = [ ] + screen.renderer = [ ] + visited_components = set() + + # now walk all widgets and stuff + def process_none(widget, context): + pass + + def process_widget(widget, context): + get_attr = widget.attrib.get + # ok, we either have 1:1-mapped widgets ('old style'), or 1:n-mapped + # widgets (source->renderer). + wname = get_attr('name') + wsource = get_attr('source') + if wname is None and wsource is None: + print "widget has no name and no source!" + return + if wname: + #print "Widget name=", wname + visited_components.add(wname) + # get corresponding 'gui' object + try: + attributes = screen[wname].skinAttributes = [ ] + except: + raise SkinError("component with name '" + wname + "' was not found in skin of screen '" + name + "'!") + # assert screen[wname] is not Source + collectAttributes(attributes, widget, context, skin_path_prefix, ignore=('name',)) + elif wsource: + # get corresponding source + #print "Widget source=", wsource + while True: # until we found a non-obsolete source + # parse our current "wsource", which might specifiy a "related screen" before the dot, + # for example to reference a parent, global or session-global screen. + scr = screen + # resolve all path components + path = wsource.split('.') + while len(path) > 1: + scr = screen.getRelatedScreen(path[0]) + if scr is None: + #print wsource + #print name + raise SkinError("specified related screen '" + wsource + "' was not found in screen '" + name + "'!") + path = path[1:] + # resolve the source. + source = scr.get(path[0]) + if isinstance(source, ObsoleteSource): + # however, if we found an "obsolete source", issue warning, and resolve the real source. + print "WARNING: SKIN '%s' USES OBSOLETE SOURCE '%s', USE '%s' INSTEAD!" % (name, wsource, source.new_source) + print "OBSOLETE SOURCE WILL BE REMOVED %s, PLEASE UPDATE!" % (source.removal_date) + if source.description: + print source.description + wsource = source.new_source + else: + # otherwise, use that source. + break + + if source is None: + raise SkinError("source '" + wsource + "' was not found in screen '" + name + "'!") + + wrender = get_attr('render') + if not wrender: + raise SkinError("you must define a renderer with render= for source '%s'" % (wsource)) + for converter in widget.findall("convert"): + ctype = converter.get('type') + assert ctype, "'convert'-tag needs a 'type'-attribute" + #print "Converter:", ctype + try: + parms = converter.text.strip() + except: + parms = "" + #print "Params:", parms + converter_class = my_import('.'.join(("Components", "Converter", ctype))).__dict__.get(ctype) + c = None + for i in source.downstream_elements: + if isinstance(i, converter_class) and i.converter_arguments == parms: + c = i + if c is None: + c = converter_class(parms) + c.connect(source) + source = c + + renderer_class = my_import('.'.join(("Components", "Renderer", wrender))).__dict__.get(wrender) + renderer = renderer_class() # instantiate renderer + renderer.connect(source) # connect to source + attributes = renderer.skinAttributes = [ ] + collectAttributes(attributes, widget, context, skin_path_prefix, ignore=('render', 'source')) + screen.renderer.append(renderer) + + def process_applet(widget, context): + try: + codeText = widget.text.strip() + widgetType = widget.attrib.get('type') + code = compile(codeText, "skin applet", "exec") + except Exception, ex: + raise SkinError("applet failed to compile: " + str(ex)) + if widgetType == "onLayoutFinish": + screen.onLayoutFinish.append(code) + else: + raise SkinError("applet type '%s' unknown!" % widgetType) + + def process_elabel(widget, context): + w = additionalWidget() + w.widget = eLabel + w.skinAttributes = [ ] + collectAttributes(w.skinAttributes, widget, context, skin_path_prefix, ignore=('name',)) + screen.additionalWidgets.append(w) + + def process_epixmap(widget, context): + w = additionalWidget() + w.widget = ePixmap + w.skinAttributes = [ ] + collectAttributes(w.skinAttributes, widget, context, skin_path_prefix, ignore=('name',)) + screen.additionalWidgets.append(w) + + def process_screen(widget, context): + for w in widget.getchildren(): + conditional = w.attrib.get('conditional') + if conditional and not [i for i in conditional.split(",") if i in screen.keys()]: + continue + p = processors.get(w.tag, process_none) + try: + p(w, context) + except SkinError, e: + print "[Skin] SKIN ERROR in screen '%s' widget '%s':" % (name, w.tag), e + + def process_panel(widget, context): + n = widget.attrib.get('name') + if n: + try: + s = dom_screens[n] + except KeyError: + print "[SKIN] Unable to find screen '%s' referred in screen '%s'" % (n, name) + else: + process_screen(s[0], context) + layout = widget.attrib.get('layout') + if layout == 'stack': + cc = SkinContextStack + else: + cc = SkinContext + try: + c = cc(context, widget.attrib.get('position'), widget.attrib.get('size'), widget.attrib.get('font')) + except Exception, ex: + raise SkinError("Failed to create skincontext (%s,%s,%s) in %s: %s" % (widget.attrib.get('position'), widget.attrib.get('size'), widget.attrib.get('font'), context, ex) ) + process_screen(widget, c) + + processors = { + None: process_none, + "widget": process_widget, + "applet": process_applet, + "eLabel": process_elabel, + "ePixmap": process_epixmap, + "panel": process_panel + } + + try: + context.x = 0 # reset offsets, all components are relative to screen + context.y = 0 # coordinates. + process_screen(myscreen, context) + except Exception, e: + print "[Skin] SKIN ERROR in %s:" % name, e + + from Components.GUIComponent import GUIComponent + nonvisited_components = [x for x in set(screen.keys()) - visited_components if isinstance(x, GUIComponent)] + assert not nonvisited_components, "the following components in %s don't have a skin entry: %s" % (name, ', '.join(nonvisited_components)) + # This may look pointless, but it unbinds 'screen' from the nested scope. A better + # solution is to avoid the nested scope above and use the context object to pass + # things around. + screen = None + visited_components = None diff --git a/stamp-h.in b/stamp-h.in new file mode 100644 index 0000000..9788f70 --- /dev/null +++ b/stamp-h.in @@ -0,0 +1 @@ +timestamp diff --git a/tests/FakeNotifications.py b/tests/FakeNotifications.py new file mode 100644 index 0000000..d289e09 --- /dev/null +++ b/tests/FakeNotifications.py @@ -0,0 +1,2 @@ + +pass diff --git a/tests/README b/tests/README new file mode 100644 index 0000000..63f8369 --- /dev/null +++ b/tests/README @@ -0,0 +1,42 @@ +enigma2 test environment + + +The goal is to test as much components of enigma2 with as less dependencies +as possible. So we create an environment which emulates "all" runtime +dependencies with fixed value. + +Only python is tested, all c++ stuff is re-implemented in python (usually as +dummy functions). + +When testing components, they should be kept seperated. If this is not +possible, you can try overriding imports, for example you can replace +Notification support with dummy notifications to prevent the whole GUI from +loading... + +If even that doesn't help, the component is bad, and should be fixed. Please +try to seperate changes to the test system from changes from components. +Please don't add specific test functionality into the components. If they +are not remote controllable, the component is badly writen anyway. + +Usually, all dummy functions are implemented to not fail. They emit special +events to signal what has been done. These results will be compared to the +expected test results, so they should be consistent with each run. If you +want to test failures, you need to install "fault hooks", where you can +inject faults. + +For example: + +The timer test initializes + - the "real" navigation stuff, + - the real record config, + - the real parental control, + - inserts a fake null-notification handler, + +then it installs a timer, and runs the enigma mainloop (enigma.run()). +Core events happening during the duration of the test (like "record prepare, +record start, record stop") will be recorded, and compared after the test. + +(compare is not yet implemented) + +Starting these tests must currently done with +PYTHONPATH=.:..:../lib/python/ python test_timer.py diff --git a/tests/enigma.py b/tests/enigma.py new file mode 100644 index 0000000..16031a0 --- /dev/null +++ b/tests/enigma.py @@ -0,0 +1,364 @@ +# fake-enigma + +import fake_time + +class slot: + def __init__(self): + self.list = [ ] + + def get(self): + return self.list + + def __call__(self): + for x in self.list: + x() + +timers = set() + +import time + +from events import eventfnc + +##################### ENIGMA BASE + +class eTimer: + def __init__(self): + self.timeout = slot() + self.next_activation = None + print "NEW TIMER" + + def start(self, msec, singleshot = False): + print "start timer", msec + self.next_activation = time.time() + msec / 1000.0 + self.msec = msec + self.singleshot = singleshot + timers.add(self) + + def stop(self): + timers.remove(self) + + def __repr__(self): + return "<eTimer timeout=%s next_activation=%s singleshot=%s>" % (repr(self.timeout), repr(self.next_activation), repr(self.singleshot)) + + def do(self): + if self.singleshot: + self.stop() + self.next_activation += self.msec / 1000.0 + self.timeout() + +def runIteration(): + running_timers = list(timers) + assert len(running_timers), "no running timers, so nothing will ever happen!" + running_timers.sort(key=lambda x: x.next_activation) + + print "running:", running_timers + + next_timer = running_timers[0] + + now = time.time() + delay = next_timer.next_activation - now + + if delay > 0: + time.sleep(delay) + now += delay + + while len(running_timers) and running_timers[0].next_activation <= now: + running_timers[0].do() + running_timers = running_timers[1:] + +stopped = False + +def stop(): + global stopped + stopped = True + +def run(duration = 1000): + stoptimer = eTimer() + stoptimer.start(duration * 1000.0) + stoptimer.callback.append(stop) + while not stopped: + runIteration() + + +##################### ENIGMA GUI + +eSize = None +ePoint = None +gFont = None +eWindow = None +eLabel = None +ePixmap = None +eWindowStyleManager = None +loadPNG = None +addFont = None +gRGB = None +eWindowStyleSkinned = None +eButton = None +eListboxPythonStringContent = None +eListbox = None +eSubtitleWidget = None + +class eEPGCache: + @classmethod + def getInstance(self): + return self.instance + + instance = None + + def __init__(self): + eEPGCache.instance = self + + def lookupEventTime(self, ref, query): + return None + +eEPGCache() + +getBestPlayableServiceReference = None + +class pNavigation: + def __init__(self): + self.m_event = slot() + self.m_record_event = slot() + + @eventfnc + def recordService(self, service): + return iRecordableService(service) + + @eventfnc + def stopRecordService(self, service): + service.stop() + + @eventfnc + def playService(self, service): + return None + + def __repr__(self): + return "pNavigation" + +eRCInput = None +getPrevAsciiCode = None + +class eServiceReference: + + isDirectory=1 + mustDescent=2 + canDescent=4 + flagDirectory=isDirectory|mustDescent|canDescent + shouldSort=8 + hasSortKey=16 + sort1=32 + isMarker=64 + isGroup=128 + + def __init__(self, ref): + self.ref = ref + self.flags = 0 + + def toString(self): + return self.ref + + def __repr__(self): + return self.toString() + +class iRecordableService: + def __init__(self, ref): + self.ref = ref + + @eventfnc + def prepare(self, filename, begin, end, event_id): + return 0 + + @eventfnc + def start(self): + return 0 + + @eventfnc + def stop(self): + return 0 + + def __repr__(self): + return "iRecordableService(%s)" % repr(self.ref) + +quitMainloop = None + +class eAVSwitch: + @classmethod + def getInstance(self): + return self.instance + + instance = None + + def __init__(self): + eAVSwitch.instance = self + + def setColorFormat(self, value): + print "[eAVSwitch] color format set to %d" % value + + def setAspectRatio(self, value): + print "[eAVSwitch] aspect ratio set to %d" % value + + def setWSS(self, value): + print "[eAVSwitch] wss set to %d" % value + + def setSlowblank(self, value): + print "[eAVSwitch] wss set to %d" % value + + def setVideomode(self, value): + print "[eAVSwitch] wss set to %d" % value + + def setInput(self, value): + print "[eAVSwitch] wss set to %d" % value + +eAVSwitch() + +eDVBVolumecontrol = None + +class eRFmod: + @classmethod + def getInstance(self): + return self.instance + + instance = None + + def __init__(self): + eRFmod.instance = self + + def setFunction(self, value): + print "[eRFmod] set function to %d" % value + + def setTestmode(self, value): + print "[eRFmod] set testmode to %d" % value + + def setSoundFunction(self, value): + print "[eRFmod] set sound function to %d" % value + + def setSoundCarrier(self, value): + print "[eRFmod] set sound carrier to %d" % value + + def setChannel(self, value): + print "[eRFmod] set channel to %d" % value + + def setFinetune(self, value): + print "[eRFmod] set finetune to %d" % value + +eRFmod() + + +class eDBoxLCD: + @classmethod + def getInstance(self): + return self.instance + + instance = None + + def __init__(self): + eDBoxLCD.instance = self + + def setLCDBrightness(self, value): + print "[eDBoxLCD] set brightness to %d" % value + + def setLCDContrast(self, value): + print "[eDBoxLCD] set contrast to %d" % value + + def setInverted(self, value): + print "[eDBoxLCD] set inverted to %d" % value + +eDBoxLCD(); + +Misc_Options = None + +class eServiceCenter: + @classmethod + def getInstance(self): + return self.instance + + instance = None + + def __init__(self): + eServiceCenter.instance = self + + def info(self, ref): + return None + +eServiceCenter() + +##################### ENIGMA CHROOT + +print "import directories" +import Tools.Directories +print "done" + +chroot="." + +for (x, (y, z)) in Tools.Directories.defaultPaths.items(): + Tools.Directories.defaultPaths[x] = (chroot + y, z) + +Tools.Directories.defaultPaths[Tools.Directories.SCOPE_SKIN] = ("../data/", Tools.Directories.PATH_DONTCREATE) +Tools.Directories.defaultPaths[Tools.Directories.SCOPE_CONFIG] = ("/etc/enigma2/", Tools.Directories.PATH_DONTCREATE) + +##################### ENIGMA CONFIG + +print "import config" +import Components.config +print "done" + +my_config = [ +"config.skin.primary_skin=None\n" +] + +Components.config.config.unpickle(my_config) + +##################### ENIGMA ACTIONS + +class eActionMap: + def __init__(self): + pass + + +##################### ENIGMA STARTUP: + +def init_nav(): + print "init nav" + import Navigation, NavigationInstance + NavigationInstance.instance = Navigation.Navigation() + +def init_record_config(): + print "init recording" + import Components.RecordingConfig + Components.RecordingConfig.InitRecordingConfig() + +def init_parental_control(): + print "init parental" + from Components.ParentalControl import InitParentalControl + InitParentalControl() + +def init_all(): + # this is stuff from mytest.py + init_nav() + + init_record_config() + init_parental_control() + + import Components.InputDevice + Components.InputDevice.InitInputDevices() + + import Components.AVSwitch + Components.AVSwitch.InitAVSwitch() + + import Components.UsageConfig + Components.UsageConfig.InitUsageConfig() + + import Components.Network + Components.Network.InitNetwork() + + import Components.Lcd + Components.Lcd.InitLcd() + + import Components.SetupDevices + Components.SetupDevices.InitSetupDevices() + + import Components.RFmod + Components.RFmod.InitRFmod() + + import Screens.Ci + Screens.Ci.InitCiConfig() diff --git a/tests/events.py b/tests/events.py new file mode 100644 index 0000000..da082d4 --- /dev/null +++ b/tests/events.py @@ -0,0 +1,70 @@ +import time +import tests + +recorded_events = [ ] + +def event(self, name, args, kwargs): + global recorded_events + print "*EVENT*", time.time(), self, name, args, kwargs + recorded_events.append((time.time(), self, name, args, kwargs)) + +def eventfnc(f): + name = f.__name__ + def wrapper(self, *args, **kwargs): + event(self, name, args, kwargs) + return f(self, *args, **kwargs) + return wrapper + +def get_events(): + global recorded_events + r = recorded_events + recorded_events = [ ] + return r + +def start_log(): + global base_time + base_time = time.time() + +def end_log(test_name): + global base_time + + results = "" + + for (t, self, method, args, kwargs) in get_events(): + results += "%s T+%f: %s::%s(%s, *%s, *%s)\n" % (time.ctime(t), t - base_time, str(self.__class__), method, self, args, kwargs) + + expected = None + + try: + f = open(test_name + ".results", "rb") + expected = f.read() + f.close() + except: + print "NO TEST RESULT FOUND, creating new" + f = open(test_name + ".new_results", "wb") + f.write(results) + f.close() + + print results + + if expected is not None: + print "expected:" + if expected != results: + open(test_name + ".bogus_results", "wb").write(results) + raise tests.TestError("test data does not match") + else: + print "test compared ok" + else: + print "no test data to compare with." + +def log(fnc, base_time = 0, test_name = "test", *args, **kwargs): + import fake_time + fake_time.setTime(base_time) + + start_log() + try: + fnc(*args, **kwargs) + event(None, "test_completed", [], {"test_name": test_name}) + except tests.TestError,c: + event(None, "test_failed", [], {"test_name": test_name, "reason": str(c)}) + end_log(test_name) diff --git a/tests/fake_time.py b/tests/fake_time.py new file mode 100644 index 0000000..3c77ded --- /dev/null +++ b/tests/fake_time.py @@ -0,0 +1,31 @@ +import time + +real_time = None +time_offset = 0 + +def setRealtime(): + global real_time + real_time = time.time + +def setIdealtime(): + global real_time + real_time = lambda: 0 + +def setTime(now): + global time_offset + time_offset = real_time() - now + +setIdealtime() +setTime(0) + +def my_time(): + return real_time() - time_offset + +time.time = my_time + +def my_sleep(sleep): + global time_offset + time_offset -= sleep + print "(faking %f seconds)" % sleep + +time.sleep = my_sleep diff --git a/tests/hdd/movie/dummy b/tests/hdd/movie/dummy new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_timer.py b/tests/test_timer.py new file mode 100644 index 0000000..7234727 --- /dev/null +++ b/tests/test_timer.py @@ -0,0 +1,96 @@ +import enigma +import sys +import time + +import tests + +#enigma.reset() +def test_timer(repeat = 0, timer_start = 3600, timer_length = 1000, sim_length = 86400 * 7): + + import NavigationInstance + + at = time.time() + + t = NavigationInstance.instance.RecordTimer + print t + print "old mwt:", t.MaxWaitTime + t.MaxWaitTime = 86400 * 1000 + + # hack: + NavigationInstance.instance.SleepTimer.MaxWaitTime = 86400 * 1000 + + t.processed_timers = [ ] + t.timer_list = [ ] + + + # generate a timer to test + import xml.etree.cElementTree + import RecordTimer + + timer = RecordTimer.createTimer(xml.etree.cElementTree.fromstring( + """ + <timer + begin="%d" + end="%d" + serviceref="1:0:1:6DD2:44D:1:C00000:0:0:0:" + repeated="%d" + name="Test Event Name" + description="Test Event Description" + afterevent="nothing" + eit="56422" + disabled="0" + justplay="0"> + </timer>""" % (at + timer_start, at + timer_start + timer_length, repeat) + )) + + t.record(timer) + + # run virtual environment + enigma.run(sim_length) + + print "done." + + timers = t.processed_timers + t.timer_list + + print "start: %s" % (time.ctime(at + 10)) + + assert len(timers) == 1 + + for t in timers: + print "begin=%d, end=%d, repeated=%d, state=%d" % (t.begin - at, t.end - at, t.repeated, t.state) + print "begin: %s" % (time.ctime(t.begin)) + print "end: %s" % (time.ctime(t.end)) + + # if repeat, check if the calculated repeated time of day matches the initial time of day + if repeat: + t_initial = time.localtime(at + timer_start) + t_repeated = time.localtime(timers[0].begin) + print t_initial + print t_repeated + + if t_initial[3:6] != t_repeated[3:6]: + raise tests.TestError("repeated timer time of day does not match") + +import FakeNotifications +#sys.modules["Tools.Notifications"] = FakeNotifications +#sys.modules["Tools.NumericalTextInput.NumericalTextInput"] = FakeNotifications + +# required stuff for timer (we try to keep this minimal) +enigma.init_nav() +enigma.init_record_config() +enigma.init_parental_control() + + +from events import log + +import calendar + + +import os +# we are operating in CET/CEST +os.environ['TZ'] = 'CET' +time.tzset() + +#log(test_timer, test_name = "test_timer_repeating", base_time = calendar.timegm((2007, 3, 1, 12, 0, 0)), repeat=0x7f, sim_length = 86400 * 7) +log(test_timer, test_name = "test_timer_repeating_dst_skip", base_time = calendar.timegm((2007, 03, 20, 0, 0, 0)), timer_start = 3600, repeat=0x7f, sim_length = 86400 * 7) +#log(test_timer, test_name = "test_timer_repeating_dst_start", base_time = calendar.timegm((2007, 03, 20, 0, 0, 0)), timer_start = 10000, repeat=0x7f, sim_length = 86400 * 7) diff --git a/tests/test_timer_repeating.results b/tests/test_timer_repeating.results new file mode 100644 index 0000000..f9ce751 --- /dev/null +++ b/tests/test_timer_repeating.results @@ -0,0 +1,36 @@ +Thu Mar 1 13:59:40 2007 T+3580.000000: enigma.pNavigation::recordService(pNavigation, *(1:0:1:6DD2:44D:1:C00000:0:0:0:,), *{}) +Thu Mar 1 13:59:40 2007 T+3580.000000: enigma.iRecordableService::prepare(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *('./hdd/movie/20070301 1400 - - Test Event Name.ts', 1172754000, 1172755001, 56422L), *{}) +Thu Mar 1 14:00:00 2007 T+3600.000000: enigma.iRecordableService::start(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Thu Mar 1 14:16:41 2007 T+4601.000000: enigma.pNavigation::stopRecordService(pNavigation, *(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:),), *{}) +Thu Mar 1 14:16:41 2007 T+4601.000000: enigma.iRecordableService::stop(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Fri Mar 2 13:59:40 2007 T+89980.000000: enigma.pNavigation::recordService(pNavigation, *(1:0:1:6DD2:44D:1:C00000:0:0:0:,), *{}) +Fri Mar 2 13:59:40 2007 T+89980.000000: enigma.iRecordableService::prepare(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *('./hdd/movie/20070302 1400 - - Test Event Name.ts', 1172840400, 1172841403, 56422L), *{}) +Fri Mar 2 14:00:00 2007 T+90000.000000: enigma.iRecordableService::start(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Fri Mar 2 14:16:43 2007 T+91003.000000: enigma.pNavigation::stopRecordService(pNavigation, *(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:),), *{}) +Fri Mar 2 14:16:43 2007 T+91003.000000: enigma.iRecordableService::stop(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Sat Mar 3 13:59:40 2007 T+176380.000000: enigma.pNavigation::recordService(pNavigation, *(1:0:1:6DD2:44D:1:C00000:0:0:0:,), *{}) +Sat Mar 3 13:59:40 2007 T+176380.000000: enigma.iRecordableService::prepare(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *('./hdd/movie/20070303 1400 - - Test Event Name.ts', 1172926800, 1172927805, 56422L), *{}) +Sat Mar 3 14:00:00 2007 T+176400.000000: enigma.iRecordableService::start(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Sat Mar 3 14:16:45 2007 T+177405.000000: enigma.pNavigation::stopRecordService(pNavigation, *(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:),), *{}) +Sat Mar 3 14:16:45 2007 T+177405.000000: enigma.iRecordableService::stop(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Sun Mar 4 13:59:40 2007 T+262780.000000: enigma.pNavigation::recordService(pNavigation, *(1:0:1:6DD2:44D:1:C00000:0:0:0:,), *{}) +Sun Mar 4 13:59:40 2007 T+262780.000000: enigma.iRecordableService::prepare(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *('./hdd/movie/20070304 1400 - - Test Event Name.ts', 1173013200, 1173014207, 56422L), *{}) +Sun Mar 4 14:00:00 2007 T+262800.000000: enigma.iRecordableService::start(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Sun Mar 4 14:16:47 2007 T+263807.000000: enigma.pNavigation::stopRecordService(pNavigation, *(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:),), *{}) +Sun Mar 4 14:16:47 2007 T+263807.000000: enigma.iRecordableService::stop(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Mon Mar 5 13:59:40 2007 T+349180.000000: enigma.pNavigation::recordService(pNavigation, *(1:0:1:6DD2:44D:1:C00000:0:0:0:,), *{}) +Mon Mar 5 13:59:40 2007 T+349180.000000: enigma.iRecordableService::prepare(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *('./hdd/movie/20070305 1400 - - Test Event Name.ts', 1173099600, 1173100609, 56422L), *{}) +Mon Mar 5 14:00:00 2007 T+349200.000000: enigma.iRecordableService::start(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Mon Mar 5 14:16:49 2007 T+350209.000000: enigma.pNavigation::stopRecordService(pNavigation, *(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:),), *{}) +Mon Mar 5 14:16:49 2007 T+350209.000000: enigma.iRecordableService::stop(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Tue Mar 6 13:59:40 2007 T+435580.000000: enigma.pNavigation::recordService(pNavigation, *(1:0:1:6DD2:44D:1:C00000:0:0:0:,), *{}) +Tue Mar 6 13:59:40 2007 T+435580.000000: enigma.iRecordableService::prepare(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *('./hdd/movie/20070306 1400 - - Test Event Name.ts', 1173186000, 1173187011, 56422L), *{}) +Tue Mar 6 14:00:00 2007 T+435600.000000: enigma.iRecordableService::start(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Tue Mar 6 14:16:51 2007 T+436611.000000: enigma.pNavigation::stopRecordService(pNavigation, *(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:),), *{}) +Tue Mar 6 14:16:51 2007 T+436611.000000: enigma.iRecordableService::stop(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Wed Mar 7 13:59:40 2007 T+521980.000000: enigma.pNavigation::recordService(pNavigation, *(1:0:1:6DD2:44D:1:C00000:0:0:0:,), *{}) +Wed Mar 7 13:59:40 2007 T+521980.000000: enigma.iRecordableService::prepare(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *('./hdd/movie/20070307 1400 - - Test Event Name.ts', 1173272400, 1173273413, 56422L), *{}) +Wed Mar 7 14:00:00 2007 T+522000.000000: enigma.iRecordableService::start(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Wed Mar 7 14:16:53 2007 T+523013.000000: enigma.pNavigation::stopRecordService(pNavigation, *(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:),), *{}) +Wed Mar 7 14:16:53 2007 T+523013.000000: enigma.iRecordableService::stop(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Thu Mar 8 13:00:00 2007 T+604800.000000: <type 'NoneType'>::test_completed(None, *[], *{'test_name': 'test_timer_repeating'}) diff --git a/tests/test_timer_repeating_dst_skip.results b/tests/test_timer_repeating_dst_skip.results new file mode 100644 index 0000000..bcd7014 --- /dev/null +++ b/tests/test_timer_repeating_dst_skip.results @@ -0,0 +1,34 @@ +Tue Mar 20 01:59:40 2007 T+3580.000000: enigma.pNavigation::recordService(pNavigation, *(1:0:1:6DD2:44D:1:C00000:0:0:0:,), *{}) +Tue Mar 20 01:59:40 2007 T+3580.000000: enigma.iRecordableService::prepare(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *('./hdd/movie/20070320 0200 - - Test Event Name.ts', 1174352400, 1174353401, 56422L), *{}) +Tue Mar 20 02:00:00 2007 T+3600.000000: enigma.iRecordableService::start(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Tue Mar 20 02:16:41 2007 T+4601.000000: enigma.pNavigation::stopRecordService(pNavigation, *(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:),), *{}) +Tue Mar 20 02:16:41 2007 T+4601.000000: enigma.iRecordableService::stop(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Wed Mar 21 01:59:40 2007 T+89980.000000: enigma.pNavigation::recordService(pNavigation, *(1:0:1:6DD2:44D:1:C00000:0:0:0:,), *{}) +Wed Mar 21 01:59:40 2007 T+89980.000000: enigma.iRecordableService::prepare(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *('./hdd/movie/20070321 0200 - - Test Event Name.ts', 1174438800, 1174439803, 56422L), *{}) +Wed Mar 21 02:00:00 2007 T+90000.000000: enigma.iRecordableService::start(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Wed Mar 21 02:16:43 2007 T+91003.000000: enigma.pNavigation::stopRecordService(pNavigation, *(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:),), *{}) +Wed Mar 21 02:16:43 2007 T+91003.000000: enigma.iRecordableService::stop(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Thu Mar 22 01:59:40 2007 T+176380.000000: enigma.pNavigation::recordService(pNavigation, *(1:0:1:6DD2:44D:1:C00000:0:0:0:,), *{}) +Thu Mar 22 01:59:40 2007 T+176380.000000: enigma.iRecordableService::prepare(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *('./hdd/movie/20070322 0200 - - Test Event Name.ts', 1174525200, 1174526205, 56422L), *{}) +Thu Mar 22 02:00:00 2007 T+176400.000000: enigma.iRecordableService::start(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Thu Mar 22 02:16:45 2007 T+177405.000000: enigma.pNavigation::stopRecordService(pNavigation, *(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:),), *{}) +Thu Mar 22 02:16:45 2007 T+177405.000000: enigma.iRecordableService::stop(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Fri Mar 23 01:59:40 2007 T+262780.000000: enigma.pNavigation::recordService(pNavigation, *(1:0:1:6DD2:44D:1:C00000:0:0:0:,), *{}) +Fri Mar 23 01:59:40 2007 T+262780.000000: enigma.iRecordableService::prepare(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *('./hdd/movie/20070323 0200 - - Test Event Name.ts', 1174611600, 1174612607, 56422L), *{}) +Fri Mar 23 02:00:00 2007 T+262800.000000: enigma.iRecordableService::start(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Fri Mar 23 02:16:47 2007 T+263807.000000: enigma.pNavigation::stopRecordService(pNavigation, *(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:),), *{}) +Fri Mar 23 02:16:47 2007 T+263807.000000: enigma.iRecordableService::stop(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Sat Mar 24 01:59:40 2007 T+349180.000000: enigma.pNavigation::recordService(pNavigation, *(1:0:1:6DD2:44D:1:C00000:0:0:0:,), *{}) +Sat Mar 24 01:59:40 2007 T+349180.000000: enigma.iRecordableService::prepare(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *('./hdd/movie/20070324 0200 - - Test Event Name.ts', 1174698000, 1174699009, 56422L), *{}) +Sat Mar 24 02:00:00 2007 T+349200.000000: enigma.iRecordableService::start(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Sat Mar 24 02:16:49 2007 T+350209.000000: enigma.pNavigation::stopRecordService(pNavigation, *(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:),), *{}) +Sat Mar 24 02:16:49 2007 T+350209.000000: enigma.iRecordableService::stop(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Mon Mar 26 01:59:40 2007 T+518380.000000: enigma.pNavigation::recordService(pNavigation, *(1:0:1:6DD2:44D:1:C00000:0:0:0:,), *{}) +Mon Mar 26 01:59:40 2007 T+518380.000000: enigma.iRecordableService::prepare(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *('./hdd/movie/20070326 0200 - - Test Event Name.ts', 1174867200, 1174868211, 56422L), *{}) +Mon Mar 26 02:00:00 2007 T+518400.000000: enigma.iRecordableService::start(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Mon Mar 26 02:16:51 2007 T+519411.000000: enigma.pNavigation::stopRecordService(pNavigation, *(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:),), *{}) +Mon Mar 26 02:16:51 2007 T+519411.000000: enigma.iRecordableService::stop(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Tue Mar 27 01:59:40 2007 T+604780.000000: enigma.pNavigation::recordService(pNavigation, *(1:0:1:6DD2:44D:1:C00000:0:0:0:,), *{}) +Tue Mar 27 01:59:40 2007 T+604780.000000: enigma.iRecordableService::prepare(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *('./hdd/movie/20070327 0200 - - Test Event Name.ts', 1174953600, 1174954613, 56422L), *{}) +Tue Mar 27 02:00:00 2007 T+604800.000000: enigma.iRecordableService::start(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Tue Mar 27 02:00:00 2007 T+604800.000000: <type 'NoneType'>::test_completed(None, *[], *{'test_name': 'test_timer_repeating_dst_skip'}) diff --git a/tests/test_timer_repeating_dst_start.results b/tests/test_timer_repeating_dst_start.results new file mode 100644 index 0000000..80e3e2d --- /dev/null +++ b/tests/test_timer_repeating_dst_start.results @@ -0,0 +1,36 @@ +Tue Mar 20 03:46:20 2007 T+9980.000000: enigma.pNavigation::recordService(pNavigation, *(1:0:1:6DD2:44D:1:C00000:0:0:0:,), *{}) +Tue Mar 20 03:46:20 2007 T+9980.000000: enigma.iRecordableService::prepare(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *('./hdd/movie/20070320 0346 - - Test Event Name.ts', 1174358800, 1174359801, 56422L), *{}) +Tue Mar 20 03:46:40 2007 T+10000.000000: enigma.iRecordableService::start(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Tue Mar 20 04:03:21 2007 T+11001.000000: enigma.pNavigation::stopRecordService(pNavigation, *(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:),), *{}) +Tue Mar 20 04:03:21 2007 T+11001.000000: enigma.iRecordableService::stop(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Wed Mar 21 03:46:20 2007 T+96380.000000: enigma.pNavigation::recordService(pNavigation, *(1:0:1:6DD2:44D:1:C00000:0:0:0:,), *{}) +Wed Mar 21 03:46:20 2007 T+96380.000000: enigma.iRecordableService::prepare(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *('./hdd/movie/20070321 0346 - - Test Event Name.ts', 1174445200, 1174446203, 56422L), *{}) +Wed Mar 21 03:46:40 2007 T+96400.000000: enigma.iRecordableService::start(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Wed Mar 21 04:03:23 2007 T+97403.000000: enigma.pNavigation::stopRecordService(pNavigation, *(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:),), *{}) +Wed Mar 21 04:03:23 2007 T+97403.000000: enigma.iRecordableService::stop(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Thu Mar 22 03:46:20 2007 T+182780.000000: enigma.pNavigation::recordService(pNavigation, *(1:0:1:6DD2:44D:1:C00000:0:0:0:,), *{}) +Thu Mar 22 03:46:20 2007 T+182780.000000: enigma.iRecordableService::prepare(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *('./hdd/movie/20070322 0346 - - Test Event Name.ts', 1174531600, 1174532605, 56422L), *{}) +Thu Mar 22 03:46:40 2007 T+182800.000000: enigma.iRecordableService::start(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Thu Mar 22 04:03:25 2007 T+183805.000000: enigma.pNavigation::stopRecordService(pNavigation, *(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:),), *{}) +Thu Mar 22 04:03:25 2007 T+183805.000000: enigma.iRecordableService::stop(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Fri Mar 23 03:46:20 2007 T+269180.000000: enigma.pNavigation::recordService(pNavigation, *(1:0:1:6DD2:44D:1:C00000:0:0:0:,), *{}) +Fri Mar 23 03:46:20 2007 T+269180.000000: enigma.iRecordableService::prepare(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *('./hdd/movie/20070323 0346 - - Test Event Name.ts', 1174618000, 1174619007, 56422L), *{}) +Fri Mar 23 03:46:40 2007 T+269200.000000: enigma.iRecordableService::start(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Fri Mar 23 04:03:27 2007 T+270207.000000: enigma.pNavigation::stopRecordService(pNavigation, *(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:),), *{}) +Fri Mar 23 04:03:27 2007 T+270207.000000: enigma.iRecordableService::stop(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Sat Mar 24 03:46:20 2007 T+355580.000000: enigma.pNavigation::recordService(pNavigation, *(1:0:1:6DD2:44D:1:C00000:0:0:0:,), *{}) +Sat Mar 24 03:46:20 2007 T+355580.000000: enigma.iRecordableService::prepare(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *('./hdd/movie/20070324 0346 - - Test Event Name.ts', 1174704400, 1174705409, 56422L), *{}) +Sat Mar 24 03:46:40 2007 T+355600.000000: enigma.iRecordableService::start(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Sat Mar 24 04:03:29 2007 T+356609.000000: enigma.pNavigation::stopRecordService(pNavigation, *(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:),), *{}) +Sat Mar 24 04:03:29 2007 T+356609.000000: enigma.iRecordableService::stop(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Sun Mar 25 03:46:20 2007 T+438380.000000: enigma.pNavigation::recordService(pNavigation, *(1:0:1:6DD2:44D:1:C00000:0:0:0:,), *{}) +Sun Mar 25 03:46:20 2007 T+438380.000000: enigma.iRecordableService::prepare(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *('./hdd/movie/20070325 0346 - - Test Event Name.ts', 1174787200, 1174788211, 56422L), *{}) +Sun Mar 25 03:46:40 2007 T+438400.000000: enigma.iRecordableService::start(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Sun Mar 25 04:03:31 2007 T+439411.000000: enigma.pNavigation::stopRecordService(pNavigation, *(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:),), *{}) +Sun Mar 25 04:03:31 2007 T+439411.000000: enigma.iRecordableService::stop(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Mon Mar 26 03:46:20 2007 T+524780.000000: enigma.pNavigation::recordService(pNavigation, *(1:0:1:6DD2:44D:1:C00000:0:0:0:,), *{}) +Mon Mar 26 03:46:20 2007 T+524780.000000: enigma.iRecordableService::prepare(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *('./hdd/movie/20070326 0346 - - Test Event Name.ts', 1174873600, 1174874613, 56422L), *{}) +Mon Mar 26 03:46:40 2007 T+524800.000000: enigma.iRecordableService::start(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Mon Mar 26 04:03:33 2007 T+525813.000000: enigma.pNavigation::stopRecordService(pNavigation, *(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:),), *{}) +Mon Mar 26 04:03:33 2007 T+525813.000000: enigma.iRecordableService::stop(iRecordableService(1:0:1:6DD2:44D:1:C00000:0:0:0:), *(), *{}) +Tue Mar 27 02:00:00 2007 T+604800.000000: <type 'NoneType'>::test_completed(None, *[], *{'test_name': 'test_timer_repeating_dst_start'}) diff --git a/tests/tests.py b/tests/tests.py new file mode 100644 index 0000000..869af84 --- /dev/null +++ b/tests/tests.py @@ -0,0 +1,3 @@ +class TestError(Exception): + def __init__(self, error): + Exception.__init__(self, error) diff --git a/timer.py b/timer.py new file mode 100644 index 0000000..9727abf --- /dev/null +++ b/timer.py @@ -0,0 +1,268 @@ +from bisect import insort +from time import strftime, time, localtime, mktime +from enigma import eTimer +import datetime + +class TimerEntry: + StateWaiting = 0 + StatePrepared = 1 + StateRunning = 2 + StateEnded = 3 + + def __init__(self, begin, end): + self.begin = begin + self.prepare_time = 20 + self.end = end + self.state = 0 + self.resetRepeated() + #begindate = localtime(self.begin) + #newdate = datetime.datetime(begindate.tm_year, begindate.tm_mon, begindate.tm_mday 0, 0, 0); + self.repeatedbegindate = begin + self.backoff = 0 + + self.disabled = False + + def resetState(self): + self.state = self.StateWaiting + self.cancelled = False + self.first_try_prepare = True + self.timeChanged() + + def resetRepeated(self): + self.repeated = int(0) + + def setRepeated(self, day): + self.repeated |= (2 ** day) + + def isRunning(self): + return self.state == self.StateRunning + + def addOneDay(self, timedatestruct): + oldHour = timedatestruct.tm_hour + newdate = (datetime.datetime(timedatestruct.tm_year, timedatestruct.tm_mon, timedatestruct.tm_mday, timedatestruct.tm_hour, timedatestruct.tm_min, timedatestruct.tm_sec) + datetime.timedelta(days=1)).timetuple() + if localtime(mktime(newdate)).tm_hour != oldHour: + return (datetime.datetime(timedatestruct.tm_year, timedatestruct.tm_mon, timedatestruct.tm_mday, timedatestruct.tm_hour, timedatestruct.tm_min, timedatestruct.tm_sec) + datetime.timedelta(days=2)).timetuple() + return newdate + + # update self.begin and self.end according to the self.repeated-flags + def processRepeated(self, findRunningEvent = True): + if (self.repeated != 0): + now = int(time()) + 1 + + #to avoid problems with daylight saving, we need to calculate with localtime, in struct_time representation + localrepeatedbegindate = localtime(self.repeatedbegindate) + localbegin = localtime(self.begin) + localend = localtime(self.end) + localnow = localtime(now) + + day = [] + flags = self.repeated + for x in (0, 1, 2, 3, 4, 5, 6): + if (flags & 1 == 1): + day.append(0) + else: + day.append(1) + flags = flags >> 1 + + # if day is NOT in the list of repeated days + # OR if the day IS in the list of the repeated days, check, if event is currently running... then if findRunningEvent is false, go to the next event + while ((day[localbegin.tm_wday] != 0) or (mktime(localrepeatedbegindate) > mktime(localbegin)) or + ((day[localbegin.tm_wday] == 0) and ((findRunningEvent and localend < localnow) or ((not findRunningEvent) and localbegin < localnow)))): + localbegin = self.addOneDay(localbegin) + localend = self.addOneDay(localend) + + #we now have a struct_time representation of begin and end in localtime, but we have to calculate back to (gmt) seconds since epoch + self.begin = int(mktime(localbegin)) + self.end = int(mktime(localend)) + if self.begin == self.end: + self.end += 1 + + self.timeChanged() + + def __lt__(self, o): + return self.getNextActivation() < o.getNextActivation() + + # must be overridden + def activate(self): + pass + + # can be overridden + def timeChanged(self): + pass + + # check if a timer entry must be skipped + def shouldSkip(self): + return self.end <= time() and self.state == TimerEntry.StateWaiting + + def abort(self): + self.end = time() + + # in case timer has not yet started, but gets aborted (so it's preparing), + # set begin to now. + if self.begin > self.end: + self.begin = self.end + + self.cancelled = True + + # must be overridden! + def getNextActivation(): + pass + + def disable(self): + self.disabled = True + + def enable(self): + self.disabled = False + +class Timer: + # the time between "polls". We do this because + # we want to account for time jumps etc. + # of course if they occur <100s before starting, + # it's not good. thus, you have to repoll when + # you change the time. + # + # this is just in case. We don't want the timer + # hanging. we use this "edge-triggered-polling-scheme" + # anyway, so why don't make it a bit more fool-proof? + MaxWaitTime = 100 + + def __init__(self): + self.timer_list = [ ] + self.processed_timers = [ ] + + self.timer = eTimer() + self.timer.callback.append(self.calcNextActivation) + self.lastActivation = time() + + self.calcNextActivation() + self.on_state_change = [ ] + + def stateChanged(self, entry): + for f in self.on_state_change: + f(entry) + + def cleanup(self): + self.processed_timers = [entry for entry in self.processed_timers if entry.disabled] + + def cleanupDaily(self, days): + limit = time() - (days * 3600 * 24) + self.processed_timers = [entry for entry in self.processed_timers if (entry.disabled and entry.repeated) or (entry.end and (entry.end > limit))] + + def addTimerEntry(self, entry, noRecalc=0): + entry.processRepeated() + + # when the timer has not yet started, and is already passed, + # don't go trough waiting/running/end-states, but sort it + # right into the processedTimers. + if entry.shouldSkip() or entry.state == TimerEntry.StateEnded or (entry.state == TimerEntry.StateWaiting and entry.disabled): + insort(self.processed_timers, entry) + entry.state = TimerEntry.StateEnded + else: + insort(self.timer_list, entry) + if not noRecalc: + self.calcNextActivation() + +# small piece of example code to understand how to use record simulation +# if NavigationInstance.instance: +# lst = [ ] +# cnt = 0 +# for timer in self.timer_list: +# print "timer", cnt +# cnt += 1 +# if timer.state == 0: #waiting +# lst.append(NavigationInstance.instance.recordService(timer.service_ref)) +# else: +# print "STATE: ", timer.state +# +# for rec in lst: +# if rec.start(True): #simulate +# print "FAILED!!!!!!!!!!!!" +# else: +# print "OK!!!!!!!!!!!!!!" +# NavigationInstance.instance.stopRecordService(rec) +# else: +# print "no NAV" + + def setNextActivation(self, now, when): + delay = int((when - now) * 1000) + self.timer.start(delay, 1) + self.next = when + + def calcNextActivation(self): + now = time() + if self.lastActivation > now: + print "[timer.py] timewarp - re-evaluating all processed timers." + tl = self.processed_timers + self.processed_timers = [ ] + for x in tl: + # simulate a "waiting" state to give them a chance to re-occure + x.resetState() + self.addTimerEntry(x, noRecalc=1) + + self.processActivation() + self.lastActivation = now + + min = int(now) + self.MaxWaitTime + + # calculate next activation point + if self.timer_list: + w = self.timer_list[0].getNextActivation() + if w < min: + min = w + + if int(now) < 1072224000 and min > now + 5: + # system time has not yet been set (before 01.01.2004), keep a short poll interval + min = now + 5 + + self.setNextActivation(now, min) + + def timeChanged(self, timer): + print "time changed" + timer.timeChanged() + if timer.state == TimerEntry.StateEnded: + self.processed_timers.remove(timer) + else: + try: + self.timer_list.remove(timer) + except: + print "[timer] Failed to remove, not in list" + return + # give the timer a chance to re-enqueue + if timer.state == TimerEntry.StateEnded: + timer.state = TimerEntry.StateWaiting + self.addTimerEntry(timer) + + def doActivate(self, w): + self.timer_list.remove(w) + + # when activating a timer which has already passed, + # simply abort the timer. don't run trough all the stages. + if w.shouldSkip(): + w.state = TimerEntry.StateEnded + else: + # when active returns true, this means "accepted". + # otherwise, the current state is kept. + # the timer entry itself will fix up the delay then. + if w.activate(): + w.state += 1 + + # did this timer reached the last state? + if w.state < TimerEntry.StateEnded: + # no, sort it into active list + insort(self.timer_list, w) + else: + # yes. Process repeated, and re-add. + if w.repeated: + w.processRepeated() + w.state = TimerEntry.StateWaiting + self.addTimerEntry(w) + else: + insort(self.processed_timers, w) + + self.stateChanged(w) + + def processActivation(self): + t = int(time()) + 1 + # we keep on processing the first entry until it goes into the future. + while self.timer_list and self.timer_list[0].getNextActivation() < t: + self.doActivate(self.timer_list[0]) diff --git a/timers.xml b/timers.xml new file mode 100644 index 0000000..cc4c50d --- /dev/null +++ b/timers.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" ?> +<timers> + <timer begin="2938" description="Kleiner Test" end="2999" serviceref="1:0:1:6DCA:44D:1:C00000:0:0:0:"/> + <timer begin="1131390236" description="instant record" end="1131490236" serviceref="1:0:1:6DCA:44D:1:C00000:0:0:0:"/> +</timers> \ No newline at end of file diff --git a/tools/Makefile.am b/tools/Makefile.am new file mode 100644 index 0000000..9e69b46 --- /dev/null +++ b/tools/Makefile.am @@ -0,0 +1,7 @@ +bin_SCRIPTS = enigma2.sh +lib_LTLIBRARIES = libopen.la + +libopen_la_SOURCES = libopen.c +libopen_la_LIBADD = @LIBDL_LIBS@ + +EXTRA_DIST = enigma2.sh.in diff --git a/tools/convert_argb_png.c b/tools/convert_argb_png.c new file mode 100644 index 0000000..9c2c0e5 --- /dev/null +++ b/tools/convert_argb_png.c @@ -0,0 +1,190 @@ +/* + convert_argb_png.c + + compile with: + + gcc convert_argb_png.c -o convert_argb_png -lpng -ljpeg + + this tool takes a 32bit RGB+A PNG file, for example produced by photoshop, + and splits the data into RGB and A. The RGB data is then lossy compressed with JPEG, + the alpha channel is lossless compressed as PNG. + + enigma2 can then pickup those two files, and combine them on load. This gives + the possibilty to use truecolor RGB pictures without storing them lossless + (which would be inefficient). + */ + +#include <stdio.h> +#include <stdlib.h> +#include <png.h> +#include <assert.h> +#include <jpeglib.h> + +int main(int argc, char **argv) +{ + if (argc != 4) + { + fprintf(stderr, "usage: %s <input.png> <output_basename> <jpeg-quality>\n", *argv); + return 1; + } + + const char *infile = argv[1]; + const char *outfile = argv[2]; + int jpeg_quality = atoi(argv[3]); + + FILE *fpin = fopen(infile, "rb"); + if (!fpin) + { + perror(infile); + return 1; + } + + unsigned char header[8]; + fread(header, 1, 8, fpin); + if (png_sig_cmp(header, 0, 8)) + { + fprintf(stderr, "this is not a PNG file\n"); + fclose(fpin); + return 1; + } + png_structp png_ptr = png_create_read_struct + (PNG_LIBPNG_VER_STRING, 0, 0, 0); + assert(png_ptr); + + png_infop info_ptr = png_create_info_struct(png_ptr); + assert(info_ptr); + + png_infop end_info = png_create_info_struct(png_ptr); + assert (end_info); + + if (setjmp(png_jmpbuf(png_ptr))) + { + png_destroy_read_struct(&png_ptr, &info_ptr, &end_info); + fclose(fpin); + fprintf(stderr, "failed.\n"); + return 1; + } + + png_init_io(png_ptr, fpin); + png_set_sig_bytes(png_ptr, 8); + png_read_png(png_ptr, info_ptr, PNG_TRANSFORM_IDENTITY, 0); + png_bytep * row_pointers = png_get_rows(png_ptr, info_ptr); + + png_uint_32 width, height; + int bit_depth, color_type; + png_get_IHDR(png_ptr, info_ptr, &width, &height, + &bit_depth, &color_type, 0, 0, 0); + + if (color_type != PNG_COLOR_TYPE_RGB_ALPHA) + { + fprintf(stderr, "input PNG must be RGB+Alpha\n"); + fclose(fpin); + return 1; + } + if (bit_depth != 8) + { + fprintf(stderr, "input bit depth must be 8bit!\n"); + fclose(fpin); + return 1; + } + printf("png is %ldx%ld\n", width, height); + int channels = png_get_channels(png_ptr, info_ptr); + if (channels != 4) + { + fprintf(stderr, "channels must be 4.\n"); + fclose(fpin); + return 1; + } + + fclose(fpin); + + /* now write jpeg */ + struct jpeg_compress_struct cinfo; + struct jpeg_error_mgr jerr; + JSAMPROW jrow_pointer[1]; + FILE *outfp; + + char filename[strlen(outfile) + 10]; + strcpy(filename, outfile); + strcat(filename, ".rgb.jpg"); + + outfp = fopen(filename, "wb"); + if (!outfp) + { + perror(filename); + return 1; + } + + cinfo.err = jpeg_std_error(&jerr); + jpeg_create_compress(&cinfo); + jpeg_stdio_dest(&cinfo, outfp); + + cinfo.image_width = width; + cinfo.image_height = height; + cinfo.input_components = 3; + cinfo.in_color_space = JCS_RGB; + jpeg_set_defaults(&cinfo); + jpeg_set_quality(&cinfo, jpeg_quality, 1); + jpeg_start_compress(&cinfo, 1); + + unsigned char *row = malloc(width * 3); + while (cinfo.next_scanline < cinfo.image_height) + { + int x; + jrow_pointer[0] = row; + unsigned char *source = row_pointers[cinfo.next_scanline]; + for (x = 0; x < width; ++x) + { + row[x * 3 + 0] = source[0]; + row[x * 3 + 1] = source[1]; + row[x * 3 + 2] = source[2]; + source += 4; + } + jpeg_write_scanlines(&cinfo, jrow_pointer, 1); + } + + jpeg_finish_compress(&cinfo); + fclose(outfp); + jpeg_destroy_compress(&cinfo); + + /* and write png */ + strcpy(filename, outfile); + strcat(filename, ".a.png"); + + outfp = fopen(filename, "wb"); + if (!outfp) + { + perror(filename); + return 1; + } + + png_structp png_ptr_w = png_create_write_struct(PNG_LIBPNG_VER_STRING, 0, 0, 0); + png_infop info_ptr_w = png_create_info_struct(png_ptr_w); + if (setjmp(png_jmpbuf(png_ptr_w))) + { + png_destroy_write_struct(&png_ptr_w, &info_ptr_w); + fclose(outfp); + return 1; + } + png_init_io(png_ptr_w, outfp); + png_set_IHDR(png_ptr_w, info_ptr_w, width, height, 8, PNG_COLOR_TYPE_GRAY, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); + + /* turn RGBA into A, in-place */ + int x, y; + for (y=0; y < height; ++y) + { + unsigned char *source = row_pointers[y]; + unsigned char *dst = source; + for (x=0; x < width; ++x) + { + *dst++ = source[3]; + source += 4; + } + } + png_set_rows(png_ptr_w, info_ptr_w, row_pointers); + png_write_png(png_ptr_w, info_ptr_w, PNG_TRANSFORM_IDENTITY, 0); + png_write_end(png_ptr_w, info_ptr_w); + png_destroy_write_struct(&png_ptr_w, &info_ptr_w); + fclose(outfp); + return 0; +} diff --git a/tools/create_picon_e1_to_e2.py b/tools/create_picon_e1_to_e2.py new file mode 100644 index 0000000..a28dc76 --- /dev/null +++ b/tools/create_picon_e1_to_e2.py @@ -0,0 +1,80 @@ +# +# create links for picon +# usage: create_picon_providers lamedb +# run in picon directory. +# It will read the servicenames from the lamedb and create symlinks +# for the servicereference names. + +import os, sys + +f = open(sys.argv[1]).readlines() + +f = f[f.index("services\n")+1:-3] + +while len(f) > 2: + ref = [int(x, 0x10) for x in f[0][:-1].split(':')] + name = f[1][:-1] + name = name.replace('\xc2\x87', '').replace('\xc2\x86', '') + + fields = f[2].split(',') + if len(fields) and fields[0][0] is 'p': + provider = fields[0].split(':')[1] + else: + provider = 'unknown' + + if ref[4] == 1: + servicetype = 'tv' + elif ref[4] == 2: + servicetype = 'radio' + else: + servicetype = 'unknown' + + sat = str(ref[1]/16/16/16/16) + +# SID:NS:TSID:ONID:STYPE:UNUSED(channelnumber in enigma1) +# X X X X D D + +# REFTYPE:FLAGS:STYPE:SID:TSID:ONID:NS:PARENT_SID:PARENT_TSID:UNUSED +# D D X X X X X X X X + + refstr = "1:0:%X:%X:%X:%X:%X:0:0:0" % (ref[4], ref[0], ref[2], ref[3], ref[1]) + refstr = refstr.replace(':', '_') + + filename = name + ".png" + linkname = refstr + ".png" + + filename = filename.replace('/', '_').replace('\\', '_').replace('&', '_').replace('\'', '').replace('"', '').replace('`', '').replace('*', '_').replace('?', '_').replace(' ', '_').replace('(', '_').replace(')', '_') + provider = provider.replace('/', '_').replace('\\', '_').replace('&', '_').replace('\'', '').replace('"', '').replace('`', '').replace('*', '_').replace('?', '_').replace(' ', '_').replace('(', '_').replace(')', '_') + filename = filename.replace('\n', '') + provider = provider.replace('\n', '') + + for i in range(len(filename)): + if ord(filename[i]) > 127: + filename = filename[0:i] + '_' + filename[i + 1:] + + for i in range(len(provider)): + if ord(provider[i]) > 127: + provider = provider[0:i] + '_' + provider[i + 1:] + + filename = sat + "_" + provider + "_" + servicetype + "_" + filename + + sat = sat[0:2] + '.' + sat[-1:] + 'e' + #TODO: west + + try: + os.makedirs(sat + '/' + servicetype) + except: + pass + + print sat[0:2] + '.' + sat[-1:] + 'E' + '_' + "%X" % ref[0] + '.png' + try: + os.rename(sat[0:-1] + 'E' + '_' + "%X" % ref[0] + '.png', sat + '/' + servicetype + '/' + filename) + except: + pass + + try: + os.symlink(filename, sat + '/' + servicetype + '/' + linkname) + except: + pass + + f =f[3:] diff --git a/tools/create_picon_links.py b/tools/create_picon_links.py new file mode 100644 index 0000000..8a92286 --- /dev/null +++ b/tools/create_picon_links.py @@ -0,0 +1,43 @@ +# +# create links for picon +# usage: create_picon_links lamedb +# run in picon directory. +# It will read the servicenames from the lamedb and create symlinks +# for the servicereference names. + +import os, sys + +f = open(sys.argv[1]).readlines() + +f = f[f.index("services\n")+1:-3] + +while len(f): + ref = [int(x, 0x10) for x in f[0][:-1].split(':')] + name = f[1][:-1] + + name = name.replace('\xc2\x87', '').replace('\xc2\x86', '') + +# SID:NS:TSID:ONID:STYPE:UNUSED(channelnumber in enigma1) +# X X X X D D + +# REFTYPE:FLAGS:STYPE:SID:TSID:ONID:NS:PARENT_SID:PARENT_TSID:UNUSED +# D D X X X X X X X X + + refstr = "1:0:%X:%X:%X:%X:%X:0:0:0" % (ref[4], ref[0], ref[2], ref[3], ref[1]) + refstr = refstr.replace(':', '_') + + filename = name + ".png" + linkname = refstr + ".png" + + filename = filename.replace('/', '_').replace('\\', '_').replace('&', '_').replace('\'', '').replace('"', '').replace('`', '') + filename = filename.replace('\n', '') + + for i in range(len(filename)): + if ord(filename[i]) > 127: + filename = filename[0:i] + '_' + filename[i + 1:] + + if os.access(filename, os.F_OK) and not os.access(linkname, os.F_OK): + os.symlink(filename, linkname) + else: + print "could not find %s (%s)" % (filename, name) + f =f[3:] diff --git a/tools/create_picon_providers.py b/tools/create_picon_providers.py new file mode 100644 index 0000000..ef8bd83 --- /dev/null +++ b/tools/create_picon_providers.py @@ -0,0 +1,71 @@ +# +# create links for picon +# usage: create_picon_providers lamedb +# run in picon directory. +# It will read the servicenames from the lamedb and create symlinks +# for the servicereference names. + +import os, sys + +f = open(sys.argv[1]).readlines() + +f = f[f.index("services\n")+1:-3] + +while len(f) > 2: + ref = [int(x, 0x10) for x in f[0][:-1].split(':')] + name = f[1][:-1] + name = name.replace('\xc2\x87', '').replace('\xc2\x86', '') + + fields = f[2].split(',') + if len(fields) and fields[0][0] is 'p': + provider = fields[0].split(':')[1] + else: + provider = 'unknown' + + if ref[4] == 1: + servicetype = 'tv' + elif ref[4] == 2: + servicetype = 'radio' + else: + servicetype = 'unknown' + + sat = str(ref[1]/16/16/16/16) + +# SID:NS:TSID:ONID:STYPE:UNUSED(channelnumber in enigma1) +# X X X X D D + +# REFTYPE:FLAGS:STYPE:SID:TSID:ONID:NS:PARENT_SID:PARENT_TSID:UNUSED +# D D X X X X X X X X + + refstr = "1:0:%X:%X:%X:%X:%X:0:0:0" % (ref[4], ref[0], ref[2], ref[3], ref[1]) + refstr = refstr.replace(':', '_') + + filename = name + ".png" + linkname = refstr + ".png" + + filename = filename.replace('/', '_').replace('\\', '_').replace('&', '_').replace('\'', '').replace('"', '').replace('`', '').replace('*', '_').replace('?', '_').replace(' ', '_').replace('(', '_').replace(')', '_') + provider = provider.replace('/', '_').replace('\\', '_').replace('&', '_').replace('\'', '').replace('"', '').replace('`', '').replace('*', '_').replace('?', '_').replace(' ', '_').replace('(', '_').replace(')', '_') + filename = filename.replace('\n', '') + provider = provider.replace('\n', '') + + for i in range(len(filename)): + if ord(filename[i]) > 127: + filename = filename[0:i] + '_' + filename[i + 1:] + + for i in range(len(provider)): + if ord(provider[i]) > 127: + provider = provider[0:i] + '_' + provider[i + 1:] + + filename = sat + "_" + provider + "_" + servicetype + "_" + filename + + try: + os.makedirs(sat + '/' + servicetype + '/' + provider) + except: + pass + + try: + os.symlink(filename, sat + '/' + servicetype + '/' + provider + '/' + linkname) + except: + pass + + f =f[3:] diff --git a/tools/create_picon_sats.py b/tools/create_picon_sats.py new file mode 100644 index 0000000..290700f --- /dev/null +++ b/tools/create_picon_sats.py @@ -0,0 +1,84 @@ +# +# create symlinks for picons +# usage: create_picon_sats lamedb +# run in picon directory. +# It will read the servicenames from the lamedb and create symlinks +# for the servicereference names. +# +# by pieterg, 2008 + +import os, sys + +f = open(sys.argv[1]).readlines() + +f = f[f.index("services\n")+1:-3] + +while len(f) > 2: + ref = [int(x, 0x10) for x in f[0][:-1].split(':')] + name = f[1][:-1] + name = name.replace('\xc2\x87', '').replace('\xc2\x86', '') + + fields = f[2].split(',') + if len(fields) and fields[0][0] is 'p': + provider = fields[0].split(':')[1] + else: + provider = 'unknown' + + if ref[4] == 2: + servicetype = 'radio' + else: + ref[4] = 1 + servicetype = 'tv' + + sat = str(ref[1]/16/16/16/16) + +# SID:NS:TSID:ONID:STYPE:UNUSED(channelnumber in enigma1) +# X X X X D D + +# REFTYPE:FLAGS:STYPE:SID:TSID:ONID:NS:PARENT_SID:PARENT_TSID:UNUSED +# D D X X X X X X X X + + refstr = "1:0:%X:%X:%X:%X:%X:0:0:0" % (ref[4], ref[0], ref[2], ref[3], ref[1]) + refstr = refstr.replace(':', '_') + + filename = name + ".png" + linkname = refstr + ".png" + + filename = filename.replace('/', '_').replace('\\', '_').replace('&', '_').replace('\'', '').replace('"', '').replace('`', '').replace('*', '_').replace('?', '_').replace(' ', '_').replace('(', '_').replace(')', '_').replace('|', '_') + provider = provider.replace('/', '_').replace('\\', '_').replace('&', '_').replace('\'', '').replace('"', '').replace('`', '').replace('*', '_').replace('?', '_').replace(' ', '_').replace('(', '_').replace(')', '_').replace('|', '_') + filename = filename.replace('\n', '') + provider = provider.replace('\n', '') + + for i in range(len(filename)): + if ord(filename[i]) > 127: + filename = filename[0:i] + '_' + filename[i + 1:] + + for i in range(len(provider)): + if ord(provider[i]) > 127: + provider = provider[0:i] + '_' + provider[i + 1:] + + if sat == "65535": + sat = "cable" + filename = sat + "_" + provider + "_" + servicetype + "_" + filename + else: + filename = sat + "_" + provider + "_" + servicetype + "_" + filename + + sat = sat[0:2] + '.' + sat[-1:] + 'e' + #TODO: west + + try: + os.makedirs(sat + '/' + servicetype) + except: + pass + + try: + os.rename(linkname, sat + '/' + servicetype + '/' + filename) + except: + pass + + try: + os.symlink(filename, sat + '/' + servicetype + '/' + linkname) + except: + pass + + f =f[3:] diff --git a/tools/enigma2.sh.in b/tools/enigma2.sh.in new file mode 100644 index 0000000..35a972c --- /dev/null +++ b/tools/enigma2.sh.in @@ -0,0 +1,71 @@ +#!/bin/sh + +prefix=@prefix@ +exec_prefix=@exec_prefix@ +datarootdir=@datarootdir@ + +if [ -x @bindir@/showiframe ]; then + if [ -f @sysconfdir@/enigma2/backdrop.mvi ]; then + @bindir@/showiframe @sysconfdir@/enigma2/backdrop.mvi + elif [ -f @sysconfdir@/enigma2/bootlogo.mvi ]; then + @bindir@/showiframe @sysconfdir@/enigma2/bootlogo.mvi + elif [ -f @datadir@/bootlogo.mvi ]; then + @bindir@/showiframe @datadir@/bootlogo.mvi + fi +fi + +# hook to execute scripts always before enigma2 start +if [ -x @bindir@/enigma2_pre_start.sh ]; then + @bindir@/enigma2_pre_start.sh +fi + +if [ -d /home/root ]; then + cd /home/root +fi + +LIBS=@libdir@/libopen.so.0.0.0 + +sync +LD_PRELOAD=$LIBS @bindir@/enigma2 + +# enigma2 exit codes: +# +# 1 - halt +# 2 - reboot +# 3 - restart enigma +# +# >128 signal + +ret=$? +case $ret in + 1) + /sbin/halt + ;; + 2) + /sbin/reboot + ;; + 3) + rm -fR /home/root/.gstreamer-0.10 + ;; + 4) + /sbin/rmmod lcd + /usr/sbin/fpupgrade --upgrade 2>&1 | tee /home/root/fpupgrade.log + sleep 1; + /sbin/rmmod fp + /sbin/modprobe fp + /sbin/reboot + ;; + 5) + if ! grep -q config.misc.RestartUI /etc/enigma2/settings; then + echo "config.misc.RestartUI=true" >>/etc/enigma2/settings + fi + ;; + 42) + # bind the console (when available) + [ -f /sys/class/vtconsole/vtcon1/bind ] && echo 1 > /sys/class/vtconsole/vtcon1/bind + opkg upgrade 2>&1 | tee /home/root/ipkgupgrade.log + /sbin/reboot + ;; + *) + ;; +esac diff --git a/tools/genmetaindex.py b/tools/genmetaindex.py new file mode 100644 index 0000000..2d186db --- /dev/null +++ b/tools/genmetaindex.py @@ -0,0 +1,50 @@ +# usage: genmetaindex.py <xml-files> > index.xml +import sys, os +from xml.etree.ElementTree import ElementTree, Element + +root = Element("index") + +for file in sys.argv[1:]: + p = ElementTree() + p.parse(file) + + package = Element("package") + package.set("details", os.path.basename(file)) + + # we need all prerequisites + package.append(p.find("prerequisites")) + + info = None + # we need some of the info, but not all + for i in p.findall("info"): + if not info: + info = i + assert info + + for i in info[:]: + if i.tag not in ["name", "packagename", "packagetype", "shortdescription"]: + info.remove(i) + + for i in info[:]: + package.set(i.tag, i.text) + + root.append(package) + +def indent(elem, level=0): + i = "\n" + level*"\t" + if len(elem): + if not elem.text or not elem.text.strip(): + elem.text = i + "\t" + if not elem.tail or not elem.tail.strip(): + elem.tail = i + for elem in elem: + indent(elem, level+1) + if not elem.tail or not elem.tail.strip(): + elem.tail = i + else: + if level and (not elem.tail or not elem.tail.strip()): + elem.tail = i + +indent(root) + +ElementTree(root).write(sys.stdout) diff --git a/tools/host_tools/FormatConverter/README b/tools/host_tools/FormatConverter/README new file mode 100644 index 0000000..8584b59 --- /dev/null +++ b/tools/host_tools/FormatConverter/README @@ -0,0 +1,7 @@ +extendable format converter + +Can be used to convert lamedb to a satellites.xml file, including TSID/ONID entries for example to check diseqc setups with the enigma2 diseqc checker plugin. + +Just start lamedb2satxml for usage information. + +A more general usage interface is present in main.py, where you can call the different modules directly via a console user interface. diff --git a/tools/host_tools/FormatConverter/datasource.py b/tools/host_tools/FormatConverter/datasource.py new file mode 100644 index 0000000..1255d42 --- /dev/null +++ b/tools/host_tools/FormatConverter/datasource.py @@ -0,0 +1,109 @@ +from input import inputChoices + +class datasource: + def __init__(self): + self.clear() + + def setDatasources(self, datasources): + self.datasources = datasources + + def getCapabilities(self): + return [] + + def getName(self): + return "N/A" + + def getStatus(self): + text = str(len(self.transponderlist.keys())) + " Satellites" + "\n" + return text + + def printAll(self): + for sat in self.transponderlist.keys(): + print "***********" + print "sat:", sat, self.satnames[sat] + for transponder in self.transponderlist[sat]: + print transponder + + def clear(self): + self.transponderlist = {} + self.satnames = {} + + def read(self): + pass + + def write(self): + pass + + def addSat(self, satname, satpos): + if not self.transponderlist.has_key(satpos): + self.transponderlist[satpos] = [] + self.satnames[satpos] = satname + + def addTransponder(self, satpos, transponder): + if len(transponder.keys()) >= 6: + self.transponderlist[satpos].append(transponder) + +class genericdatasource(datasource): + def __init__(self): + datasource.__init__(self) + self.source = self.destination = None + + def getName(self): + return "Generic Datasource" + + def getCapabilities(self): + return [("copy data from one source to another", self.copy), ("merge data from one source into another", self.merge)] + + def copy(self): + self.copymerge(action = "copy") + + def merge(self): + self.copymerge(action = "merge") + + def copymerge(self, action = "copy"): + choice = -1 + while choice is not None: + choice = inputChoices(["select source", "select destination", "copy now!"]) + if choice == 0: + print "\nselect source:" + self.source = self.selectDatasource() + elif choice == 1: + print "\nselect destination" + self.destination = self.selectDatasource() + elif choice == 2: + self.docopymerge(action) + + def docopymerge(self, action = "copy"): + if self.source is None: + print "select a source first!" + elif self.destination is None: + print "select a destination first!" + else: + if action == "copy": + print "copying ", + elif action == "merge": + print "merging ", + print "from %s to %s" % (self.source.getName(), self.destination.getName()) + countsat = 0 + counttransponder = 0 + if action == "copy": + self.destination.clear() + for satpos in self.source.transponderlist.keys(): + countsat += 1 + self.destination.addSat(self.source.satnames[satpos], satpos) + for transponder in self.source.transponderlist[satpos]: + counttransponder += 1 + self.destination.addTransponder(satpos, transponder) + print "copied %d sats with %d transponders" % (countsat, counttransponder) + + def selectDatasource(self): + list = [] + sources = [] + for source in self.datasources: + if source != self: + list.append(source.getName() + (" (%d sats)" % len(source.transponderlist.keys()))) + sources.append(source) + choice = inputChoices(list) + if choice is None: + return None + return sources[choice] \ No newline at end of file diff --git a/tools/host_tools/FormatConverter/input.py b/tools/host_tools/FormatConverter/input.py new file mode 100644 index 0000000..fd11348 --- /dev/null +++ b/tools/host_tools/FormatConverter/input.py @@ -0,0 +1,23 @@ +import sys + +def inputText(): + input = sys.stdin.readline() + return input.strip() + +def inputChoices(list, backcmd = "b", backtext = "back"): + repeat = True + while(repeat): + repeat = False + count = 0 + for item in list: + print count, "-", item + count += 1 + print backcmd, "-", backtext + input = inputText() + if input == backcmd: + return None + + action = int(input) + if action >= len(list): + repeat = True + return action \ No newline at end of file diff --git a/tools/host_tools/FormatConverter/lamedb.py b/tools/host_tools/FormatConverter/lamedb.py new file mode 100644 index 0000000..d328f0f --- /dev/null +++ b/tools/host_tools/FormatConverter/lamedb.py @@ -0,0 +1,80 @@ +from datasource import datasource + +class lamedb(datasource): + def __init__(self, filename = "lamedb"): + datasource.__init__(self) + self.setFilename(filename) + + def setFilename(self, filename): + self.filename = filename + + def getName(self): + return "lamedb" + + def getCapabilities(self): + return [("read file", self.read), ("print all", self.printAll)] + + def read(self): + inputfile = open(self.filename, "r") + lines = inputfile.readlines() + inputfile.close() + + versionstring = lines[0].split('/') + version = int(versionstring[1]) + if 3 > version or 4 < version: + print "unsupported lamedb version" + return + + transpondersreading = False + sats = {} + transponders = {} + for line in lines: + if line.strip() == "transponders": + transpondersreading = True + continue + if line.strip() == "services": + transpondersreading = False + continue + if transpondersreading: + if ord(line[0]) == 9: + transponder = line.strip().split(' ')[1].split(':') + sat = transponder[4] + if not sats.has_key(sat): + sats[sat] = [] + sats[sat].append((transponder, tsid, onid)) + tsid = None + onid = None + elif line.strip() != "/" and line.strip() != "end": + data = line.strip().split(":") + tsid = str(int(data[1], 16)) + onid = str(int(data[2], 16)) + satlist = sats.keys() + satlist.sort() + + for sat in satlist: + print sat + self.addSat(sat, sat) + transponders = sats[sat] + transponders.sort(key = lambda a: a[0]) + for transpondertuple in transponders: + transponder = transpondertuple[0] + tsid = transpondertuple[1] + onid = transpondertuple[2] + print transponder, tsid, onid + tmp_transponder = {} + tmp_transponder["frequency"] = transponder[0] + tmp_transponder["symbol_rate"] = transponder[1] + tmp_transponder["polarization"] = transponder[2] + tmp_transponder["fec"] = transponder[3] + if version == 3: + if len(transponder) > 6: + tmp_transponder["system"] = transponder[6] + tmp_transponder["modulation"] = transponder[7] + elif version == 4: + if len(transponder) > 7: + tmp_transponder["system"] = transponder[7] + tmp_transponder["modulation"] = transponder[8] + if (tsid != "1" or onid != "1"): + tmp_transponder["tsid"] = transponder[0] + tmp_transponder["onid"] = transponder[0] + self.addTransponder(sat, tmp_transponder) diff --git a/tools/host_tools/FormatConverter/lamedb2satxml.py b/tools/host_tools/FormatConverter/lamedb2satxml.py new file mode 100644 index 0000000..d6adc1f --- /dev/null +++ b/tools/host_tools/FormatConverter/lamedb2satxml.py @@ -0,0 +1,21 @@ +#!/usr/bin/python +from datasource import genericdatasource +from satxml import satxml +from lamedb import lamedb + +import sys + +if len(sys.argv) != 3: + print "usage: %s <lamedb> <satellites.xml>" % sys.argv[0] + sys.exit() + +gen = genericdatasource() +db = lamedb(sys.argv[1]) +xml = satxml(sys.argv[2]) + +db.read() +gen.source = db +gen.destination = xml +gen.docopymerge(action = "copy") +xml.write() + diff --git a/tools/host_tools/FormatConverter/main.py b/tools/host_tools/FormatConverter/main.py new file mode 100644 index 0000000..d3cc985 --- /dev/null +++ b/tools/host_tools/FormatConverter/main.py @@ -0,0 +1,43 @@ +#!/usr/bin/python +from datasource import genericdatasource +from satxml import satxml +from lamedb import lamedb +from input import * +import sys +import os + +maindata = genericdatasource() + +sources = [satxml, lamedb] + +datasources = [maindata] + +for source in sources: + datasources.append(source()) + +for source in datasources: + source.setDatasources(datasources) + +while(True): + os.system("/usr/bin/clear") + list = [] + for index in range(len(datasources)): + list.append(datasources[index].getName() + (" (%d sats)" % len(datasources[index].transponderlist.keys()))) + index = inputChoices(list, "q", "quit") + if index is None: + break + + while(True): + print datasources[index].getStatus() + list = [] + for action in datasources[index].getCapabilities(): + list.append(action[0]) + action = inputChoices(list) + if action is None: + break + + datasources[index].getCapabilities()[action][1]() + #except: + # print sys.exc_info() + # print "sorry, could not execute that command" + diff --git a/tools/host_tools/FormatConverter/satxml.py b/tools/host_tools/FormatConverter/satxml.py new file mode 100644 index 0000000..9f79c57 --- /dev/null +++ b/tools/host_tools/FormatConverter/satxml.py @@ -0,0 +1,86 @@ +import os +from datasource import datasource +from xml.dom import minidom +from xml.dom.minidom import Document +from input import inputText + +class satxml(datasource): + def __init__(self, filename = "satellites.xml"): + self.filename = filename + datasource.__init__(self) + + if not os.path.isfile(filename): + print "File %s doesn't exist. Creating it." % filename + + def getStatus(self): + text = datasource.getStatus(self) + return text + + def getCapabilities(self): + return [("set filename", self.setFilename), ("read file", self.read), ("write file", self.write), ("print all", self.printAll)] + + def getName(self): + return "satellites.xml" + + def setFilename(self): + print "Please give a filename <satellites.xml>:" + filename = inputText() + if filename == "": + self.filename = "satellites.xml" + else: + self.filename = filename + print "Filename set to %s" % self.filename + + def read(self): + basicsatxml = minidom.parse(self.filename) + + for sat in basicsatxml.firstChild.childNodes: + if sat.nodeType == sat.ELEMENT_NODE and sat.localName == "sat": + print sat.localName + satname = str(sat.getAttribute("name")) + satpos = str(sat.getAttribute("position")) + self.addSat(satname, satpos) + for transponder in sat.childNodes: + if transponder.nodeType == transponder.ELEMENT_NODE and transponder.localName == "transponder": + parameters = {} + paramlist = ["frequency", "symbol_rate", "polarization", "fec", "system", "modulation", "tsid", "onid"] + for param in paramlist: + entry = str(transponder.getAttribute(param)) + if entry != "": + parameters[param] = entry + if len(parameters.keys()) > 1: + self.addTransponder(satpos, parameters) + print self.transponderlist + + def write(self): + satxml = Document() + satellites = satxml.createElement("satellites") + satxml.appendChild(satellites) + satlist = self.transponderlist.keys() + print self.transponderlist + satlist.sort() + + for sat in satlist: + xmlsat = satxml.createElement("sat") + xmlsat.setAttribute("name", self.satnames[sat]) + xmlsat.setAttribute("flags", "1") + xmlsat.setAttribute("position", sat) + satellites.appendChild(xmlsat) + transponders = self.transponderlist[sat] + transponders.sort(key = lambda a: a["frequency"]) + + for transponder in transponders: + xmltransponder = satxml.createElement("transponder") + paramlist = ["frequency", "symbol_rate", "polarization", "fec", "system", "modulation", "tsid", "onid"] + for param in paramlist: + if transponder.has_key(param): + xmltransponder.setAttribute(param, transponder[param]) + xmlsat.appendChild(xmltransponder) + prettyxml = satxml.toprettyxml() + print prettyxml + file = open(self.filename, "w") + file.write(prettyxml) + file.close() + + + diff --git a/tools/libopen.c b/tools/libopen.c new file mode 100644 index 0000000..f6b935e --- /dev/null +++ b/tools/libopen.c @@ -0,0 +1,287 @@ +#include <sys/types.h> +#include <sys/stat.h> +#include <sys/socket.h> +#include <fcntl.h> +#include <dlfcn.h> +#include <stdio.h> +#include <stdlib.h> + +#undef DEBUG + +int open64(const char *pathname, int flags, ...) +{ + typedef int (*FUNC_PTR) (const char* pathname, int flags, ...); + static FUNC_PTR libc_open64; + int fd=-1; + if (!libc_open64) + { + void *handle; + char *error; + handle = dlopen("/lib/libc.so.6", RTLD_LAZY); + if (!handle) + { + fputs(dlerror(), stderr); + exit(1); + } + libc_open64 = (FUNC_PTR) dlsym(handle, "open64"); + if ((error = dlerror()) != NULL) { + fprintf(stderr, "%s\n", error); + exit(1); + } + } + fd = libc_open64(pathname, flags); + if (fd >= 0) + { + int fd_flags = fcntl(fd, F_GETFD, 0); + if (fd_flags >= 0) + { + fd_flags |= FD_CLOEXEC; + fcntl(fd, F_SETFD, fd_flags); + } +#ifdef DEBUG + fprintf(stdout, "open64 %s, flags %d returned fd %d\n", pathname, flags, fd); +#endif + } + return fd; +} + +#if _FILE_OFFSET_BITS != 64 +int open(const char *pathname, int flags, ...) +{ + typedef int (*FUNC_PTR) (const char* pathname, int flags, ...); + static FUNC_PTR libc_open; + int fd=-1; + if (!libc_open) + { + void *handle; + char *error; + handle = dlopen("/lib/libc.so.6", RTLD_LAZY); + if (!handle) + { + fputs(dlerror(), stderr); + exit(1); + } + libc_open = (FUNC_PTR) dlsym(handle, "open"); + if ((error = dlerror()) != NULL) { + fprintf(stderr, "%s\n", error); + exit(1); + } + } + fd = libc_open(pathname, flags); + if (fd >= 0) + { + int fd_flags = fcntl(fd, F_GETFD, 0); + if (fd_flags >= 0) + { + fd_flags |= FD_CLOEXEC; + fcntl(fd, F_SETFD, fd_flags); + } +#ifdef DEBUG + fprintf(stdout, "open %s, flags %d returned fd %d\n", pathname, flags, fd); +#endif + } + return fd; +} +#endif + +FILE *fopen64(const char *pathname, const char *mode) +{ + typedef FILE *(*FUNC_PTR) (const char* pathname, const char *mode); + static FUNC_PTR libc_fopen64; + FILE *f=0; + if (!libc_fopen64) + { + void *handle; + char *error; + handle = dlopen("/lib/libc.so.6", RTLD_LAZY); + if (!handle) + { + fputs(dlerror(), stderr); + exit(1); + } + libc_fopen64 = (FUNC_PTR) dlsym(handle, "fopen64"); + if ((error = dlerror()) != NULL) { + fprintf(stderr, "%s\n", error); + exit(1); + } + } + f = libc_fopen64(pathname, mode); + if (f) + { + int fd = fileno(f); + int fd_flags = fcntl(fd, F_GETFD, 0); + if (fd_flags >= 0) + { + fd_flags |= FD_CLOEXEC; + fcntl(fd, F_SETFD, fd_flags); + } +#ifdef DEBUG + fprintf(stdout, "fopen64 %s, mode %s returned FILE* %p fd %d\n", pathname, mode, f, fd); +#endif + } + return f; +} + +#if _FILE_OFFSET_BITS != 64 +FILE *fopen(const char *pathname, const char *mode) +{ + typedef FILE *(*FUNC_PTR) (const char* pathname, const char *mode); + static FUNC_PTR libc_fopen; + FILE *f=0; + if (!libc_fopen) + { + void *handle; + char *error; + handle = dlopen("/lib/libc.so.6", RTLD_LAZY); + if (!handle) + { + fputs(dlerror(), stderr); + exit(1); + } + libc_fopen = (FUNC_PTR) dlsym(handle, "fopen"); + if ((error = dlerror()) != NULL) { + fprintf(stderr, "%s\n", error); + exit(1); + } + } + f = libc_fopen(pathname, mode); + if (f) + { + int fd = fileno(f); + int fd_flags = fcntl(fd, F_GETFD, 0); + if (fd_flags >= 0) + { + fd_flags |= FD_CLOEXEC; + fcntl(fd, F_SETFD, fd_flags); + } +#ifdef DEBUG + fprintf(stdout, "fopen %s, mode %s returned FILE* %p fd %d\n", pathname, mode, f, fd); +#endif + } + return f; +} +#endif + +int socket(int domain, int type, int protocol) +{ + typedef int (*FUNC_PTR) (int domain, int type, int protocol); + static FUNC_PTR libc_socket; + int fd=-1; + if (!libc_socket) + { + void *handle; + char *error; + handle = dlopen("/lib/libc.so.6", RTLD_LAZY); + if (!handle) + { + fputs(dlerror(), stderr); + exit(1); + } + libc_socket = (FUNC_PTR) dlsym(handle, "socket"); + if ((error = dlerror()) != NULL) { + fprintf(stderr, "%s\n", error); + exit(1); + } + } + fd = libc_socket(domain, type, protocol); + if (fd >= 0) + { + int fd_flags = fcntl(fd, F_GETFD, 0); + if (fd_flags >= 0) + { + fd_flags |= FD_CLOEXEC; + fcntl(fd, F_SETFD, fd_flags); + } +#ifdef DEBUG + fprintf(stdout, "socket fd %d\n", fd); +#endif + } + return fd; +} + +int socketpair(int d, int type, int protocol, int sv[2]) +{ + typedef int (*FUNC_PTR) (int d, int type, int protocol, int sv[2]); + static FUNC_PTR libc_socketpair; + int ret=-1; + if (!libc_socketpair) + { + void *handle; + char *error; + handle = dlopen("/lib/libc.so.6", RTLD_LAZY); + if (!handle) + { + fputs(dlerror(), stderr); + exit(1); + } + libc_socketpair = (FUNC_PTR) dlsym(handle, "socketpair"); + if ((error = dlerror()) != NULL) { + fprintf(stderr, "%s\n", error); + exit(1); + } + } + ret = libc_socketpair(d, type, protocol, sv); + if (!ret) + { + int fd_flags = fcntl(sv[0], F_GETFD, 0); + if (fd_flags >= 0) + { + fd_flags |= FD_CLOEXEC; + fcntl(sv[0], F_SETFD, fd_flags); + } + fd_flags = fcntl(sv[1], F_GETFD, 0); + if (fd_flags >= 0) + { + fd_flags |= FD_CLOEXEC; + fcntl(sv[1], F_SETFD, fd_flags); + } +#ifdef DEBUG + fprintf(stdout, "socketpair fd %d %d\n", sv[0], sv[1]); +#endif + } + return ret; +} + +int pipe(int modus[2]) +{ + typedef int (*FUNC_PTR) (int modus[2]); + static FUNC_PTR libc_pipe; + int ret=-1; + if (!libc_pipe) + { + void *handle; + char *error; + handle = dlopen("/lib/libc.so.6", RTLD_LAZY); + if (!handle) + { + fputs(dlerror(), stderr); + exit(1); + } + libc_pipe = (FUNC_PTR) dlsym(handle, "pipe"); + if ((error = dlerror()) != NULL) { + fprintf(stderr, "%s\n", error); + exit(1); + } + } + ret = libc_pipe(modus); + if (!ret) + { + int fd_flags = fcntl(modus[0], F_GETFD, 0); + if (fd_flags >= 0) + { + fd_flags |= FD_CLOEXEC; + fcntl(modus[0], F_SETFD, fd_flags); + } + fd_flags = fcntl(modus[1], F_GETFD, 0); + if (fd_flags >= 0) + { + fd_flags |= FD_CLOEXEC; + fcntl(modus[1], F_SETFD, fd_flags); + } +#ifdef DEBUG + fprintf(stdout, "pipe fds[%d, %d]\n", modus[0], modus[1]); +#endif + } + return ret; +} + diff --git a/tools/svg2skin.py b/tools/svg2skin.py new file mode 100644 index 0000000..dfb47b5 --- /dev/null +++ b/tools/svg2skin.py @@ -0,0 +1,93 @@ +#!/usr/bin/python +# don't expect too much. +# this is a really simple&stupid svg parser, which will use rectangles +# and text fields to produce <widget> snippets for a skin. +# use object "id" fields for source names if you want. +# extracting font information is buggy. +# if you want text fields, please use flow text regions, instead of simple +# text. otherwise, width and height are unknown. +# +# tested only with a single inkscape-generated SVG. + +import sys +import os +import string +from xml.sax import make_parser +from xml.sax.handler import ContentHandler + +def getattrs(attrs, *a): + res = [] + for x in a: + res.append(float(attrs[x])) + return res + +def parsedict(attrs): + if not attrs: + return [] + d = attrs.split(';') + r = { } + for x in d: + (key, val) = x.split(':') + r[key] = val + return r + +def px(x): + return int(float(x[:-2]) + .5) + +def contains(box_o, box_i): + return box_o[0] <= box_i[0] and box_o[1] <= box_i[1] and box_o[2] >= box_i[2] and box_o[3] >= box_i[3] + +class parseXML(ContentHandler): + def __init__(self): + self.isPointsElement, self.isReboundsElement = 0, 0 + self.bbox = None + self.find_bbox = False + self.flow = None + + def startElement(self, name, attrs): + if self.find_bbox: + if name != "rect": + return + box = getattrs(attrs, "x", "y", "width", "height") + if not self.bbox or contains(box, self.bbox): + self.bbox = box + return + + if name == "rect": + (x, y, width, height) = getattrs(attrs, "x", "y", "width", "height") + x -= self.bbox[0] + y -= self.bbox[1] + id = attrs["id"] + if self.flow: + id = self.flow + self.flow = None + styles = parsedict(attrs.get("style", "")) + elif name == "text": + (x, y) = getattrs(attrs, "x", "y") + x -= self.bbox[0] + y -= self.bbox[1] + width, height = 0, 0 + styles = parsedict(attrs["style"]) + id = attrs["id"] + elif name == "flowRoot": + self.flow = attrs["id"] + return + else: + return + + if "font-size" in styles: + font = ' font="Regular;%d"' % px(styles["font-size"]) + else: + font = "" + print """\t\t<widget source="%s" render="Label" position="%d,%d" size="%d,%d" %s />""" % (id, x, y, width, height, font) + +parser = make_parser() +contentHandler = parseXML() +parser.setContentHandler(contentHandler) +contentHandler.find_bbox = True +parser.parse(sys.argv[1]) +bboxi = tuple([int(x) for x in contentHandler.bbox]) +contentHandler.find_bbox = False +print '\t<screen name="" position="%d,%d" size="%d,%d" title="">' % bboxi +parser.parse(sys.argv[1]) +print '\t</screen>' diff --git a/userbouquet.orf.tv b/userbouquet.orf.tv new file mode 100644 index 0000000..d9c22c5 --- /dev/null +++ b/userbouquet.orf.tv @@ -0,0 +1,15 @@ +#NAME ORF +#SERVICE: 1:0:1:32d4:45d:1:c00000:0:0:0: +#SERVICE: 1:0:1:32c9:45d:1:c00000:0:0:0: +#SERVICE: 1:0:1:32ca:45d:1:c00000:0:0:0: +#SERVICE: 1:0:1:32cd:45d:1:c00000:0:0:0: +#SERVICE: 1:0:1:32d3:45d:1:c00000:0:0:0: +#SERVICE: 1:0:1:32cc:45d:1:c00000:0:0:0: +#SERVICE: 1:0:1:32ce:45d:1:c00000:0:0:0: +#SERVICE: 1:0:1:32cf:45d:1:c00000:0:0:0: +#SERVICE: 1:0:1:32d2:45d:1:c00000:0:0:0: +#SERVICE: 1:0:1:32d0:45d:1:c00000:0:0:0: +#SERVICE: 1:0:1:32d1:45d:1:c00000:0:0:0: +#SERVICE: 1:0:1:32cb:45d:1:c00000:0:0:0: +#SERVICE: 1:0:1:32d6:45d:1:c00000:0:0:0: +#SERVICE: 1:0:1:332d:45b:1:c00000:0:0:0: diff --git a/userbouquet.premiere.tv b/userbouquet.premiere.tv new file mode 100644 index 0000000..7142fb1 --- /dev/null +++ b/userbouquet.premiere.tv @@ -0,0 +1,36 @@ +#NAME PREMIERE +#SERVICE: 1:0:1:2a:4:85:c00000:0:0:0: +#SERVICE: 1:0:1:c:11:85:c00000:0:0:0: +#SERVICE: 1:0:1:15:11:85:c00000:0:0:0: +#SERVICE: 1:0:1:32:1:85:c00000:0:0:0: +#SERVICE: 1:0:1:298:4:85:c00000:0:0:0: +#SERVICE: 1:0:1:34:7:85:c00000:0:0:0: +#SERVICE: 1:0:1:18:1:85:c00000:0:0:0: +#SERVICE: 1:0:1:201:4:85:c00000:0:0:0: +#SERVICE: 1:0:1:e:11:85:c00000:0:0:0: +#SERVICE: 1:0:1:d:11:85:c00000:0:0:0: +#SERVICE: 1:0:1:22:11:85:c00000:0:0:0: +#SERVICE: 1:0:1:f:11:85:c00000:0:0:0: +#SERVICE: 1:0:1:1c:11:85:c00000:0:0:0: +#SERVICE: 1:0:1:206:1:85:c00000:0:0:0: +#SERVICE: 1:0:1:16:1:85:c00000:0:0:0: +#SERVICE: 1:0:1:a8:1:85:c00000:0:0:0: +#SERVICE: 1:0:1:13:11:85:c00000:0:0:0: +#SERVICE: 1:0:1:203:11:85:c00000:0:0:0: +#SERVICE: 1:0:1:24:11:85:c00000:0:0:0: +#SERVICE: 1:0:1:a:2:85:c00000:0:0:0: +#SERVICE: 1:0:1:b:2:85:c00000:0:0:0: +#SERVICE: 1:0:1:2b:2:85:c00000:0:0:0: +#SERVICE: 1:0:1:9:2:85:c00000:0:0:0: +#SERVICE: 1:0:1:1d:2:85:c00000:0:0:0: +#SERVICE: 1:0:1:29:2:85:c00000:0:0:0: +#SERVICE: 1:0:1:14:2:85:c00000:0:0:0: +#SERVICE: 1:0:1:35:7:85:c00000:0:0:0: +#SERVICE: 1:0:1:12:4:85:c00000:0:0:0: +#SERVICE: 1:0:1:17:4:85:c00000:0:0:0: +#SERVICE: 1:0:1:204:4:85:c00000:0:0:0: +#SERVICE: 1:0:1:10:4:85:c00000:0:0:0: +#SERVICE: 1:0:1:11:3:85:c00000:0:0:0: +#SERVICE: 1:0:1:8:2:85:c00000:0:0:0: +#SERVICE: 1:0:1:1b:4:85:c00000:0:0:0: +#SERVICE: 1:0:1:20:21:85:c00000:0:0:0: diff --git a/userbouquet.srgssr.tv b/userbouquet.srgssr.tv new file mode 100644 index 0000000..aa445f7 --- /dev/null +++ b/userbouquet.srgssr.tv @@ -0,0 +1,9 @@ +#NAME SRG SSR IDEE SUISSE +#SERVICE: 1:0:1:38e:2134:13e:820000:0:0:0: +#SERVICE: 1:0:1:385:2134:13e:820000:0:0:0: +#SERVICE: 1:0:1:38b:2134:13e:820000:0:0:0: +#SERVICE: 1:0:1:38f:2134:13e:820000:0:0:0: +#SERVICE: 1:0:1:387:2134:13e:820000:0:0:0: +#SERVICE: 1:0:1:38d:2134:13e:820000:0:0:0: +#SERVICE: 1:0:1:386:2134:13e:820000:0:0:0: +#SERVICE: 1:0:1:38c:2134:13e:820000:0:0:0:

    HrPp=j8Zyn6^#P`ALf+k)c_bY)`?;+)@i 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 br%74` cache_ttl: + return 0 + else: + return 1 + +def load_cache(cache_file): + #Does a cPickle load + fd = open(cache_file) + cache_data = load(fd) + fd.close() + return cache_data + + +class UpdatePluginMenu(Screen): + skin = """ + + + + + + + {"template": [ + MultiContentEntryText(pos = (2, 2), size = (330, 24), flags = RT_HALIGN_LEFT, text = 1), # index 0 is the MenuText, + ], + "fonts": [gFont("Regular", 22)], + "itemHeight": 25 + } + + + + + {"template": [ + MultiContentEntryText(pos = (2, 2), size = (240, 300), flags = RT_HALIGN_CENTER|RT_VALIGN_CENTER|RT_WRAP, text = 2), # index 2 is the Description, + ], + "fonts": [gFont("Regular", 22)], + "itemHeight": 300 + } + + + + """ + + def __init__(self, session, args = 0): + Screen.__init__(self, session) + self.skin_path = plugin_path + self.menu = args + self.list = [] + self.oktext = _("\nPress OK on your remote control to continue.") + self.menutext = _("Press MENU on your remote control for additional options.") + self.infotext = _("Press INFO on your remote control for additional information.") + self.text = "" + self.backupdirs = ' '.join( config.plugins.configurationbackup.backupdirs.value ) + if self.menu == 0: + print "building menu entries" + self.list.append(("install-extensions", _("Manage extensions"), _("\nManage extensions or plugins for your receiver" ) + self.oktext, None)) + self.list.append(("software-update", _("Software update"), _("\nOnline update of your receiver software." ) + self.oktext, None)) + self.list.append(("software-restore", _("Software restore"), _("\nRestore your receiver with a new firmware." ) + self.oktext, None)) + self.list.append(("system-backup", _("Backup system settings"), _("\nBackup your receiver settings." ) + self.oktext + "\n\n" + self.infotext, None)) + self.list.append(("system-restore",_("Restore system settings"), _("\nRestore your receiver settings." ) + self.oktext, None)) + self.list.append(("ipkg-install", _("Install local extension"), _("\nScan for local extensions and install them." ) + self.oktext, None)) + for p in plugins.getPlugins(PluginDescriptor.WHERE_SOFTWAREMANAGER): + if p.__call__.has_key("SoftwareSupported"): + callFnc = p.__call__["SoftwareSupported"](None) + if callFnc is not None: + if p.__call__.has_key("menuEntryName"): + menuEntryName = p.__call__["menuEntryName"](None) + else: + menuEntryName = _('Extended Software') + if p.__call__.has_key("menuEntryDescription"): + menuEntryDescription = p.__call__["menuEntryDescription"](None) + else: + menuEntryDescription = _('Extended Software Plugin') + self.list.append(('default-plugin', menuEntryName, menuEntryDescription + self.oktext, callFnc)) + if config.usage.setup_level.index >= 2: # expert+ + self.list.append(("advanced", _("Advanced options"), _("\nAdvanced options and settings." ) + self.oktext, None)) + elif self.menu == 1: + self.list.append(("advancedrestore", _("Advanced restore"), _("\nRestore your backups by date." ) + self.oktext, None)) + self.list.append(("backuplocation", _("Select backup location"), _("\nSelect your backup device.\nCurrent device: " ) + config.plugins.configurationbackup.backuplocation.value + self.oktext, None)) + self.list.append(("backupfiles", _("Select backup files"), _("Select files for backup.") + self.oktext + "\n\n" + self.infotext, None)) + if config.usage.setup_level.index >= 2: # expert+ + self.list.append(("ipkg-manager", _("Packet management"), _("\nView, install and remove available or installed packages." ) + self.oktext, None)) + self.list.append(("ipkg-source",_("Select upgrade source"), _("\nEdit the upgrade source address." ) + self.oktext, None)) + for p in plugins.getPlugins(PluginDescriptor.WHERE_SOFTWAREMANAGER): + if p.__call__.has_key("AdvancedSoftwareSupported"): + callFnc = p.__call__["AdvancedSoftwareSupported"](None) + if callFnc is not None: + if p.__call__.has_key("menuEntryName"): + menuEntryName = p.__call__["menuEntryName"](None) + else: + menuEntryName = _('Advanced software') + if p.__call__.has_key("menuEntryDescription"): + menuEntryDescription = p.__call__["menuEntryDescription"](None) + else: + menuEntryDescription = _('Advanced software plugin') + self.list.append(('advanced-plugin', menuEntryName, menuEntryDescription + self.oktext, callFnc)) + + self["menu"] = List(self.list) + self["key_red"] = StaticText(_("Close")) + self["status"] = StaticText(self.menutext) + + self["shortcuts"] = NumberActionMap(["ShortcutActions", "WizardActions", "InfobarEPGActions", "MenuActions", "NumberActions"], + { + "ok": self.go, + "back": self.close, + "red": self.close, + "menu": self.handleMenu, + "showEventInfo": self.handleInfo, + "1": self.go, + "2": self.go, + "3": self.go, + "4": self.go, + "5": self.go, + "6": self.go, + "7": self.go, + "8": self.go, + "9": self.go, + }, -1) + self.onLayoutFinish.append(self.layoutFinished) + self.backuppath = getBackupPath() + self.backupfile = getBackupFilename() + self.fullbackupfilename = self.backuppath + "/" + self.backupfile + self.onShown.append(self.setWindowTitle) + self.onChangedEntry = [] + self["menu"].onSelectionChanged.append(self.selectionChanged) + + def createSummary(self): + from Screens.PluginBrowser import PluginBrowserSummary + return PluginBrowserSummary + + def selectionChanged(self): + item = self["menu"].getCurrent() + if item: + name = item[1] + desc = item[2] + else: + name = "-" + desc = "" + for cb in self.onChangedEntry: + cb(name, desc) + + def layoutFinished(self): + idx = 0 + self["menu"].index = idx + + def setWindowTitle(self): + self.setTitle(_("Software management")) + + def cleanup(self): + iSoftwareTools.cleanupSoftwareTools() + + def getUpdateInfos(self): + if iSoftwareTools.NetworkConnectionAvailable is True: + if iSoftwareTools.available_updates is not 0: + self.text = _("There are at least %s updates available.") % (str(iSoftwareTools.available_updates)) + else: + self.text = "" #_("There are no updates available.") + if iSoftwareTools.list_updating is True: + self.text += "\n" + _("A search for available updates is currently in progress.") + else: + self.text = _("No network connection available.") + self["status"].setText(self.text) + + def handleMenu(self): + self.session.open(SoftwareManagerSetup) + + def handleInfo(self): + current = self["menu"].getCurrent() + if current: + currentEntry = current[0] + if currentEntry in ("system-backup","backupfiles"): + self.session.open(SoftwareManagerInfo, mode = "backupinfo") + + def go(self, num = None): + if num is not None: + num -= 1 + if not num < self["menu"].count(): + return + self["menu"].setIndex(num) + current = self["menu"].getCurrent() + if current: + currentEntry = current[0] + if self.menu == 0: + if (currentEntry == "software-update"): + self.session.open(UpdatePlugin, self.skin_path) + elif (currentEntry == "software-restore"): + self.session.open(ImageWizard) + elif (currentEntry == "install-extensions"): + self.session.open(PluginManager, self.skin_path) + elif (currentEntry == "system-backup"): + self.session.openWithCallback(self.backupDone,BackupScreen, runBackup = True) + elif (currentEntry == "system-restore"): + if os_path.exists(self.fullbackupfilename): + self.session.openWithCallback(self.startRestore, MessageBox, _("Are you sure you want to restore the backup?\nYour receiver will restart after the backup has been restored!")) + else: + self.session.open(MessageBox, _("Sorry, no backups found!"), MessageBox.TYPE_INFO, timeout = 10) + elif (currentEntry == "ipkg-install"): + try: + from Plugins.Extensions.MediaScanner.plugin import main + main(self.session) + except: + self.session.open(MessageBox, _("Sorry, %s has not been installed!") % ("MediaScanner"), MessageBox.TYPE_INFO, timeout = 10) + elif (currentEntry == "default-plugin"): + self.extended = current[3] + self.extended(self.session, None) + elif (currentEntry == "advanced"): + self.session.open(UpdatePluginMenu, 1) + elif self.menu == 1: + if (currentEntry == "ipkg-manager"): + self.session.open(PacketManager, self.skin_path) + elif (currentEntry == "backuplocation"): + parts = [ (r.description, r.mountpoint, self.session) for r in harddiskmanager.getMountedPartitions(onlyhotplug = False)] + for x in parts: + if not access(x[1], F_OK|R_OK|W_OK) or x[1] == '/': + parts.remove(x) + if len(parts): + self.session.openWithCallback(self.backuplocation_choosen, ChoiceBox, title = _("Please select medium to use as backup location"), list = parts) + elif (currentEntry == "backupfiles"): + self.session.openWithCallback(self.backupfiles_choosen,BackupSelection) + elif (currentEntry == "advancedrestore"): + self.session.open(RestoreMenu, self.skin_path) + elif (currentEntry == "ipkg-source"): + self.session.open(IPKGMenu, self.skin_path) + elif (currentEntry == "advanced-plugin"): + self.extended = current[3] + self.extended(self.session, None) + + def backupfiles_choosen(self, ret): + self.backupdirs = ' '.join( config.plugins.configurationbackup.backupdirs.value ) + config.plugins.configurationbackup.backupdirs.save() + config.plugins.configurationbackup.save() + config.save() + + def backuplocation_choosen(self, option): + oldpath = config.plugins.configurationbackup.backuplocation.getValue() + if option is not None: + config.plugins.configurationbackup.backuplocation.value = str(option[1]) + config.plugins.configurationbackup.backuplocation.save() + config.plugins.configurationbackup.save() + config.save() + newpath = config.plugins.configurationbackup.backuplocation.getValue() + if newpath != oldpath: + self.createBackupfolders() + + def createBackupfolders(self): + print "Creating backup folder if not already there..." + self.backuppath = getBackupPath() + try: + if (os_path.exists(self.backuppath) == False): + makedirs(self.backuppath) + except OSError: + self.session.open(MessageBox, _("Sorry, your backup destination is not writeable.\nPlease select a different one."), MessageBox.TYPE_INFO, timeout = 10) + + def backupDone(self,retval = None): + if retval is True: + self.session.open(MessageBox, _("Backup completed."), MessageBox.TYPE_INFO, timeout = 10) + else: + self.session.open(MessageBox, _("Backup failed."), MessageBox.TYPE_INFO, timeout = 10) + + def startRestore(self, ret = False): + if (ret == True): + self.exe = True + self.session.open(RestoreScreen, runRestore = True) + +class SoftwareManagerSetup(Screen, ConfigListScreen): + + skin = """ + + + + + + + + + + + + + """ + + def __init__(self, session, skin_path = None): + Screen.__init__(self, session) + self.session = session + self.skin_path = skin_path + if self.skin_path == None: + self.skin_path = resolveFilename(SCOPE_CURRENT_PLUGIN, "SystemPlugins/SoftwareManager") + + self.onChangedEntry = [ ] + self.setup_title = _("Software manager setup") + self.overwriteConfigfilesEntry = None + + self.list = [ ] + ConfigListScreen.__init__(self, self.list, session = session, on_change = self.changedEntry) + + self["actions"] = ActionMap(["SetupActions", "MenuActions"], + { + "cancel": self.keyCancel, + "save": self.apply, + "menu": self.closeRecursive, + }, -2) + + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("OK")) + self["key_yellow"] = StaticText() + self["key_blue"] = StaticText() + self["introduction"] = StaticText() + + self.createSetup() + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + self.setTitle(self.setup_title) + + def createSetup(self): + self.list = [ ] + self.overwriteConfigfilesEntry = getConfigListEntry(_("Overwrite configuration files?"), config.plugins.softwaremanager.overwriteConfigFiles) + self.list.append(self.overwriteConfigfilesEntry) + self.list.append(getConfigListEntry(_("show softwaremanager in setup menu"), config.plugins.softwaremanager.onSetupMenu)) + self.list.append(getConfigListEntry(_("show softwaremanager on blue button"), config.plugins.softwaremanager.onBlueButton)) + + self["config"].list = self.list + self["config"].l.setSeperation(400) + self["config"].l.setList(self.list) + if not self.selectionChanged in self["config"].onSelectionChanged: + self["config"].onSelectionChanged.append(self.selectionChanged) + self.selectionChanged() + + def selectionChanged(self): + if self["config"].getCurrent() == self.overwriteConfigfilesEntry: + self["introduction"].setText(_("Overwrite configuration files during software upgrade?")) + else: + self["introduction"].setText("") + + def newConfig(self): + pass + + def keyLeft(self): + ConfigListScreen.keyLeft(self) + + def keyRight(self): + ConfigListScreen.keyRight(self) + + def confirm(self, confirmed): + if not confirmed: + print "not confirmed" + return + else: + self.keySave() + plugins.clearPluginList() + plugins.readPluginList(resolveFilename(SCOPE_PLUGINS)) + + def apply(self): + self.session.openWithCallback(self.confirm, MessageBox, _("Use these settings?"), MessageBox.TYPE_YESNO, timeout = 20, default = True) + + def cancelConfirm(self, result): + if not result: + return + for x in self["config"].list: + x[1].cancel() + self.close() + + def keyCancel(self): + if self["config"].isChanged(): + self.session.openWithCallback(self.cancelConfirm, MessageBox, _("Really close without saving settings?"), MessageBox.TYPE_YESNO, timeout = 20, default = True) + else: + self.close() + + # for summary: + def changedEntry(self): + for x in self.onChangedEntry: + x() + self.selectionChanged() + + def getCurrentEntry(self): + return self["config"].getCurrent()[0] + + def getCurrentValue(self): + return str(self["config"].getCurrent()[1].value) + + def createSummary(self): + from Screens.Setup import SetupSummary + return SetupSummary + + +class SoftwareManagerInfo(Screen): + skin = """ + + + + + + + + + + + + {"template": [ + MultiContentEntryText(pos = (5, 0), size = (540, 26), font=0, flags = RT_HALIGN_LEFT | RT_HALIGN_CENTER, text = 0), # index 0 is the name + ], + "fonts": [gFont("Regular", 24),gFont("Regular", 22)], + "itemHeight": 26 + } + + + + + """ + + def __init__(self, session, skin_path = None, mode = None): + Screen.__init__(self, session) + self.session = session + self.mode = mode + self.skin_path = skin_path + if self.skin_path == None: + self.skin_path = resolveFilename(SCOPE_CURRENT_PLUGIN, "SystemPlugins/SoftwareManager") + + self["actions"] = ActionMap(["ShortcutActions", "WizardActions"], + { + "back": self.close, + "red": self.close, + }, -2) + + self.list = [] + self["list"] = List(self.list) + + self["key_red"] = StaticText(_("Close")) + self["key_green"] = StaticText() + self["key_yellow"] = StaticText() + self["key_blue"] = StaticText() + self["introduction"] = StaticText() + + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + self.setTitle(_("Softwaremanager information")) + if self.mode is not None: + self.showInfos() + + def showInfos(self): + if self.mode == "backupinfo": + self.list = [] + backupfiles = config.plugins.configurationbackup.backupdirs.value + for entry in backupfiles: + self.list.append((entry,)) + self['list'].setList(self.list) + + +class PluginManager(Screen, PackageInfoHandler): + + skin = """ + + + + + + + + + + + + {"templates": + {"default": (51,[ + MultiContentEntryText(pos = (0, 1), size = (470, 24), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name + MultiContentEntryText(pos = (0, 25), size = (470, 24), font=1, flags = RT_HALIGN_LEFT, text = 2), # index 2 is the description + MultiContentEntryPixmapAlphaTest(pos = (475, 0), size = (48, 48), png = 5), # index 5 is the status pixmap + MultiContentEntryPixmapAlphaTest(pos = (0, 49), size = (550, 2), png = 6), # index 6 is the div pixmap + ]), + "category": (40,[ + MultiContentEntryText(pos = (30, 0), size = (500, 22), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name + MultiContentEntryText(pos = (30, 22), size = (500, 16), font=2, flags = RT_HALIGN_LEFT, text = 1), # index 1 is the description + MultiContentEntryPixmapAlphaTest(pos = (0, 38), size = (550, 2), png = 3), # index 3 is the div pixmap + ]) + }, + "fonts": [gFont("Regular", 22),gFont("Regular", 20),gFont("Regular", 16)], + "itemHeight": 52 + } + + + + """ + + def __init__(self, session, plugin_path = None, args = None): + Screen.__init__(self, session) + self.session = session + self.skin_path = plugin_path + if self.skin_path == None: + self.skin_path = resolveFilename(SCOPE_CURRENT_PLUGIN, "SystemPlugins/SoftwareManager") + + self["shortcuts"] = ActionMap(["ShortcutActions", "WizardActions", "InfobarEPGActions", "HelpActions" ], + { + "ok": self.handleCurrent, + "back": self.exit, + "red": self.exit, + "green": self.handleCurrent, + "yellow": self.handleSelected, + "showEventInfo": self.handleSelected, + "displayHelp": self.handleHelp, + }, -1) + + self.list = [] + self.statuslist = [] + self.selectedFiles = [] + self.categoryList = [] + self.packetlist = [] + self["list"] = List(self.list) + self["key_red"] = StaticText(_("Close")) + self["key_green"] = StaticText("") + self["key_yellow"] = StaticText("") + self["key_blue"] = StaticText("") + self["status"] = StaticText("") + + self.cmdList = [] + self.oktext = _("\nAfter pressing OK, please wait!") + if not self.selectionChanged in self["list"].onSelectionChanged: + self["list"].onSelectionChanged.append(self.selectionChanged) + + self.currList = "" + self.currentSelectedTag = None + self.currentSelectedIndex = None + self.currentSelectedPackage = None + self.saved_currentSelectedPackage = None + self.restartRequired = False + + self.onShown.append(self.setWindowTitle) + self.onLayoutFinish.append(self.getUpdateInfos) + + def setWindowTitle(self): + self.setTitle(_("Extensions management")) + + def exit(self): + if self.currList == "packages": + self.currList = "category" + self.currentSelectedTag = None + self["list"].style = "category" + self['list'].setList(self.categoryList) + self["list"].setIndex(self.currentSelectedIndex) + self["list"].updateList(self.categoryList) + self.selectionChanged() + else: + iSoftwareTools.cleanupSoftwareTools() + self.prepareInstall() + if len(self.cmdList): + self.session.openWithCallback(self.runExecute, PluginManagerInfo, self.skin_path, self.cmdList) + else: + self.close() + + def handleHelp(self): + if self.currList != "status": + self.session.open(PluginManagerHelp, self.skin_path) + + def setState(self,status = None): + if status: + self.currList = "status" + self.statuslist = [] + self["key_green"].setText("") + self["key_blue"].setText("") + self["key_yellow"].setText("") + divpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/div-h.png")) + if status == 'update': + statuspng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_PLUGIN, "SystemPlugins/SoftwareManager/upgrade.png")) + self.statuslist.append(( _("Updating software catalog"), '', _("Searching for available updates. Please wait..." ),'', '', statuspng, divpng, None, '' )) + elif status == 'sync': + statuspng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_PLUGIN, "SystemPlugins/SoftwareManager/upgrade.png")) + self.statuslist.append(( _("Package list update"), '', _("Searching for new installed or removed packages. Please wait..." ),'', '', statuspng, divpng, None, '' )) + elif status == 'error': + self["key_green"].setText(_("Continue")) + statuspng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_PLUGIN, "SystemPlugins/SoftwareManager/remove.png")) + self.statuslist.append(( _("Error"), '', _("An error occurred while downloading the packetlist. Please try again." ),'', '', statuspng, divpng, None, '' )) + self["list"].style = "default" + self['list'].setList(self.statuslist) + + + def getUpdateInfos(self): + if (iSoftwareTools.lastDownloadDate is not None and iSoftwareTools.NetworkConnectionAvailable is False): + self.rebuildList() + else: + self.setState('update') + iSoftwareTools.startSoftwareTools(self.getUpdateInfosCB) + + def getUpdateInfosCB(self, retval = None): + if retval is not None: + if retval is True: + if iSoftwareTools.available_updates is not 0: + self["status"].setText(_("There are at least ") + str(iSoftwareTools.available_updates) + _(" updates available.")) + else: + self["status"].setText(_("There are no updates available.")) + self.rebuildList() + elif retval is False: + if iSoftwareTools.lastDownloadDate is None: + self.setState('error') + if iSoftwareTools.NetworkConnectionAvailable: + self["status"].setText(_("Updatefeed not available.")) + else: + self["status"].setText(_("No network connection available.")) + else: + iSoftwareTools.lastDownloadDate = time() + iSoftwareTools.list_updating = True + self.setState('update') + iSoftwareTools.getUpdates(self.getUpdateInfosCB) + + def rebuildList(self, retval = None): + if self.currentSelectedTag is None: + self.buildCategoryList() + else: + self.buildPacketList(self.currentSelectedTag) + + def selectionChanged(self): + current = self["list"].getCurrent() + self["status"].setText("") + if current: + if self.currList == "packages": + self["key_red"].setText(_("Back")) + if current[4] == 'installed': + self["key_green"].setText(_("Uninstall")) + elif current[4] == 'installable': + self["key_green"].setText(_("Install")) + if iSoftwareTools.NetworkConnectionAvailable is False: + self["key_green"].setText("") + elif current[4] == 'remove': + self["key_green"].setText(_("Undo uninstall")) + elif current[4] == 'install': + self["key_green"].setText(_("Undo install")) + if iSoftwareTools.NetworkConnectionAvailable is False: + self["key_green"].setText("") + self["key_yellow"].setText(_("View details")) + self["key_blue"].setText("") + if len(self.selectedFiles) == 0 and iSoftwareTools.available_updates is not 0: + self["status"].setText(_("There are at least ") + str(iSoftwareTools.available_updates) + _(" updates available.")) + elif len(self.selectedFiles) is not 0: + self["status"].setText(str(len(self.selectedFiles)) + _(" packages selected.")) + else: + self["status"].setText(_("There are currently no outstanding actions.")) + elif self.currList == "category": + self["key_red"].setText(_("Close")) + self["key_green"].setText("") + self["key_yellow"].setText("") + self["key_blue"].setText("") + if len(self.selectedFiles) == 0 and iSoftwareTools.available_updates is not 0: + self["status"].setText(_("There are at least ") + str(iSoftwareTools.available_updates) + _(" updates available.")) + self["key_yellow"].setText(_("Update")) + elif len(self.selectedFiles) is not 0: + self["status"].setText(str(len(self.selectedFiles)) + _(" packages selected.")) + self["key_yellow"].setText(_("Process")) + else: + self["status"].setText(_("There are currently no outstanding actions.")) + + def getSelectionState(self, detailsFile): + for entry in self.selectedFiles: + if entry[0] == detailsFile: + return True + return False + + def handleCurrent(self): + current = self["list"].getCurrent() + if current: + if self.currList == "category": + self.currentSelectedIndex = self["list"].index + selectedTag = current[2] + self.buildPacketList(selectedTag) + elif self.currList == "packages": + if current[7] is not '': + idx = self["list"].getIndex() + detailsFile = self.list[idx][1] + if self.list[idx][7] == True: + for entry in self.selectedFiles: + if entry[0] == detailsFile: + self.selectedFiles.remove(entry) + else: + alreadyinList = False + for entry in self.selectedFiles: + if entry[0] == detailsFile: + alreadyinList = True + if not alreadyinList: + if (iSoftwareTools.NetworkConnectionAvailable is False and current[4] in ('installable','install')): + pass + else: + self.selectedFiles.append((detailsFile,current[4],current[3])) + self.currentSelectedPackage = ((detailsFile,current[4],current[3])) + if current[4] == 'installed': + self.list[idx] = self.buildEntryComponent(current[0], current[1], current[2], current[3], 'remove', True) + elif current[4] == 'installable': + if iSoftwareTools.NetworkConnectionAvailable: + self.list[idx] = self.buildEntryComponent(current[0], current[1], current[2], current[3], 'install', True) + elif current[4] == 'remove': + self.list[idx] = self.buildEntryComponent(current[0], current[1], current[2], current[3], 'installed', False) + elif current[4] == 'install': + if iSoftwareTools.NetworkConnectionAvailable: + self.list[idx] = self.buildEntryComponent(current[0], current[1], current[2], current[3], 'installable',False) + self["list"].setList(self.list) + self["list"].setIndex(idx) + self["list"].updateList(self.list) + self.selectionChanged() + elif self.currList == "status": + iSoftwareTools.lastDownloadDate = time() + iSoftwareTools.list_updating = True + self.setState('update') + iSoftwareTools.getUpdates(self.getUpdateInfosCB) + + def handleSelected(self): + current = self["list"].getCurrent() + if current: + if self.currList == "packages": + if current[7] is not '': + detailsfile = iSoftwareTools.directory[0] + "/" + current[1] + if (os_path.exists(detailsfile) == True): + self.saved_currentSelectedPackage = self.currentSelectedPackage + self.session.openWithCallback(self.detailsClosed, PluginDetails, self.skin_path, current) + else: + self.session.open(MessageBox, _("Sorry, no details available!"), MessageBox.TYPE_INFO, timeout = 10) + elif self.currList == "category": + self.prepareInstall() + if len(self.cmdList): + self.session.openWithCallback(self.runExecute, PluginManagerInfo, self.skin_path, self.cmdList) + + def detailsClosed(self, result = None): + if result is not None: + if result is not False: + self.setState('sync') + iSoftwareTools.lastDownloadDate = time() + for entry in self.selectedFiles: + if entry == self.saved_currentSelectedPackage: + self.selectedFiles.remove(entry) + iSoftwareTools.startIpkgListInstalled(self.rebuildList) + + def buildEntryComponent(self, name, details, description, packagename, state, selected = False): + divpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/div-h.png")) + installedpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_PLUGIN, "SystemPlugins/SoftwareManager/installed.png")) + installablepng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_PLUGIN, "SystemPlugins/SoftwareManager/installable.png")) + removepng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_PLUGIN, "SystemPlugins/SoftwareManager/remove.png")) + installpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_PLUGIN, "SystemPlugins/SoftwareManager/install.png")) + if state == 'installed': + return((name, details, description, packagename, state, installedpng, divpng, selected)) + elif state == 'installable': + return((name, details, description, packagename, state, installablepng, divpng, selected)) + elif state == 'remove': + return((name, details, description, packagename, state, removepng, divpng, selected)) + elif state == 'install': + return((name, details, description, packagename, state, installpng, divpng, selected)) + + def buildPacketList(self, categorytag = None): + if categorytag is not None: + self.currList = "packages" + self.currentSelectedTag = categorytag + self.packetlist = [] + for package in iSoftwareTools.packagesIndexlist[:]: + prerequisites = package[0]["prerequisites"] + if prerequisites.has_key("tag"): + for foundtag in prerequisites["tag"]: + if categorytag == foundtag: + attributes = package[0]["attributes"] + if attributes.has_key("packagetype"): + if attributes["packagetype"] == "internal": + continue + self.packetlist.append([attributes["name"], attributes["details"], attributes["shortdescription"], attributes["packagename"]]) + else: + self.packetlist.append([attributes["name"], attributes["details"], attributes["shortdescription"], attributes["packagename"]]) + self.list = [] + for x in self.packetlist: + status = "" + name = x[0].strip() + details = x[1].strip() + description = x[2].strip() + if not description: + description = "No description available." + packagename = x[3].strip() + selectState = self.getSelectionState(details) + if iSoftwareTools.installed_packetlist.has_key(packagename): + if selectState == True: + status = "remove" + else: + status = "installed" + self.list.append(self.buildEntryComponent(name, _(details), _(description), packagename, status, selected = selectState)) + else: + if selectState == True: + status = "install" + else: + status = "installable" + self.list.append(self.buildEntryComponent(name, _(details), _(description), packagename, status, selected = selectState)) + if len(self.list): + self.list.sort(key=lambda x: x[0]) + self["list"].style = "default" + self['list'].setList(self.list) + self["list"].updateList(self.list) + self.selectionChanged() + + def buildCategoryList(self): + self.currList = "category" + self.categories = [] + self.categoryList = [] + for package in iSoftwareTools.packagesIndexlist[:]: + prerequisites = package[0]["prerequisites"] + if prerequisites.has_key("tag"): + for foundtag in prerequisites["tag"]: + attributes = package[0]["attributes"] + if foundtag not in self.categories: + self.categories.append(foundtag) + self.categoryList.append(self.buildCategoryComponent(foundtag)) + self.categoryList.sort(key=lambda x: x[0]) + self["list"].style = "category" + self['list'].setList(self.categoryList) + self["list"].updateList(self.categoryList) + self.selectionChanged() + + def buildCategoryComponent(self, tag = None): + divpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/div-h.png")) + if tag is not None: + if tag == 'System': + return(( _("System"), _("View list of available system extensions" ), tag, divpng )) + elif tag == 'Skin': + return(( _("Skins"), _("View list of available skins" ), tag, divpng )) + elif tag == 'Recording': + return(( _("Recordings"), _("View list of available recording extensions" ), tag, divpng )) + elif tag == 'Network': + return(( _("Network"), _("View list of available networking extensions" ), tag, divpng )) + elif tag == 'CI': + return(( _("Common Interface"), _("View list of available CommonInterface extensions" ), tag, divpng )) + elif tag == 'Default': + return(( _("Default settings"), _("View list of available default settings" ), tag, divpng )) + elif tag == 'SAT': + return(( _("Satellite equipment"), _("View list of available Satellite equipment extensions." ), tag, divpng )) + elif tag == 'Software': + return(( _("Software"), _("View list of available software extensions" ), tag, divpng )) + elif tag == 'Multimedia': + return(( _("Multimedia"), _("View list of available multimedia extensions." ), tag, divpng )) + elif tag == 'Display': + return(( _("Display and userinterface"), _("View list of available display and userinterface extensions." ), tag, divpng )) + elif tag == 'EPG': + return(( _("Electronic Program Guide"), _("View list of available EPG extensions." ), tag, divpng )) + elif tag == 'Communication': + return(( _("Communication"), _("View list of available communication extensions." ), tag, divpng )) + else: # dynamically generate non existent tags + return(( str(tag), _("View list of available ") + str(tag) + _(" extensions." ), tag, divpng )) + + def prepareInstall(self): + self.cmdList = [] + if iSoftwareTools.available_updates > 0: + self.cmdList.append((IpkgComponent.CMD_UPGRADE, { "test_only": False })) + if self.selectedFiles and len(self.selectedFiles): + for plugin in self.selectedFiles: + detailsfile = iSoftwareTools.directory[0] + "/" + plugin[0] + if (os_path.exists(detailsfile) == True): + iSoftwareTools.fillPackageDetails(plugin[0]) + self.package = iSoftwareTools.packageDetails[0] + if self.package[0].has_key("attributes"): + self.attributes = self.package[0]["attributes"] + if self.attributes.has_key("needsRestart"): + self.restartRequired = True + if self.attributes.has_key("package"): + self.packagefiles = self.attributes["package"] + if plugin[1] == 'installed': + if self.packagefiles: + for package in self.packagefiles[:]: + self.cmdList.append((IpkgComponent.CMD_REMOVE, { "package": package["name"] })) + else: + self.cmdList.append((IpkgComponent.CMD_REMOVE, { "package": plugin[2] })) + else: + if self.packagefiles: + for package in self.packagefiles[:]: + self.cmdList.append((IpkgComponent.CMD_INSTALL, { "package": package["name"] })) + else: + self.cmdList.append((IpkgComponent.CMD_INSTALL, { "package": plugin[2] })) + else: + if plugin[1] == 'installed': + self.cmdList.append((IpkgComponent.CMD_REMOVE, { "package": plugin[2] })) + else: + self.cmdList.append((IpkgComponent.CMD_INSTALL, { "package": plugin[2] })) + + def runExecute(self, result = None): + if result is not None: + if result[0] is True: + self.session.openWithCallback(self.runExecuteFinished, Ipkg, cmdList = self.cmdList) + elif result[0] is False: + self.cmdList = result[1] + self.session.openWithCallback(self.runExecuteFinished, Ipkg, cmdList = self.cmdList) + else: + self.close() + + def runExecuteFinished(self): + self.reloadPluginlist() + if plugins.restartRequired or self.restartRequired: + self.session.openWithCallback(self.ExecuteReboot, MessageBox, _("Installation or removal has completed.") + "\n" +_("Do you want to reboot your receiver?"), MessageBox.TYPE_YESNO) + else: + self.selectedFiles = [] + self.restartRequired = False + self.detailsClosed(True) + + def ExecuteReboot(self, result): + if result: + self.session.open(TryQuitMainloop,retvalue=3) + else: + self.selectedFiles = [] + self.restartRequired = False + self.detailsClosed(True) + + def reloadPluginlist(self): + plugins.readPluginList(resolveFilename(SCOPE_PLUGINS)) + + +class PluginManagerInfo(Screen): + skin = """ + + + + + + + + {"template": [ + MultiContentEntryText(pos = (50, 0), size = (150, 26), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name + MultiContentEntryText(pos = (50, 27), size = (540, 23), font=1, flags = RT_HALIGN_LEFT, text = 1), # index 1 is the state + MultiContentEntryPixmapAlphaTest(pos = (0, 1), size = (48, 48), png = 2), # index 2 is the status pixmap + MultiContentEntryPixmapAlphaTest(pos = (0, 48), size = (550, 2), png = 3), # index 3 is the div pixmap + ], + "fonts": [gFont("Regular", 24),gFont("Regular", 22)], + "itemHeight": 50 + } + + + + + """ + + def __init__(self, session, plugin_path, cmdlist = None): + Screen.__init__(self, session) + self.session = session + self.skin_path = plugin_path + self.cmdlist = cmdlist + + self["shortcuts"] = ActionMap(["ShortcutActions", "WizardActions"], + { + "ok": self.process_all, + "back": self.exit, + "red": self.exit, + "green": self.process_extensions, + }, -1) + + self.list = [] + self["list"] = List(self.list) + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("Only extensions.")) + self["status"] = StaticText(_("Following tasks will be done after you press OK!")) + + self.onShown.append(self.setWindowTitle) + self.onLayoutFinish.append(self.rebuildList) + + def setWindowTitle(self): + self.setTitle(_("Plugin manager activity information")) + + def rebuildList(self): + self.list = [] + if self.cmdlist is not None: + for entry in self.cmdlist: + action = "" + info = "" + cmd = entry[0] + if cmd == 0: + action = 'install' + elif cmd == 2: + action = 'remove' + else: + action = 'upgrade' + args = entry[1] + if cmd == 0: + info = args['package'] + elif cmd == 2: + info = args['package'] + else: + info = _("receiver software because updates are available.") + + self.list.append(self.buildEntryComponent(action,info)) + self['list'].setList(self.list) + self['list'].updateList(self.list) + + def buildEntryComponent(self, action,info): + divpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/div-h.png")) + upgradepng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_PLUGIN, "SystemPlugins/SoftwareManager/upgrade.png")) + installpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_PLUGIN, "SystemPlugins/SoftwareManager/install.png")) + removepng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_PLUGIN, "SystemPlugins/SoftwareManager/remove.png")) + if action == 'install': + return(( _('Installing'), info, installpng, divpng)) + elif action == 'remove': + return(( _('Removing'), info, removepng, divpng)) + else: + return(( _('Upgrading'), info, upgradepng, divpng)) + + def exit(self): + self.close() + + def process_all(self): + self.close((True,None)) + + def process_extensions(self): + self.list = [] + if self.cmdlist is not None: + for entry in self.cmdlist: + cmd = entry[0] + if entry[0] in (0,2): + self.list.append((entry)) + self.close((False,self.list)) + + +class PluginManagerHelp(Screen): + skin = """ + + + + + + {"template": [ + MultiContentEntryText(pos = (50, 0), size = (540, 26), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name + MultiContentEntryText(pos = (50, 27), size = (540, 23), font=1, flags = RT_HALIGN_LEFT, text = 1), # index 1 is the state + MultiContentEntryPixmapAlphaTest(pos = (0, 1), size = (48, 48), png = 2), # index 2 is the status pixmap + MultiContentEntryPixmapAlphaTest(pos = (0, 48), size = (550, 2), png = 3), # index 3 is the div pixmap + ], + "fonts": [gFont("Regular", 24),gFont("Regular", 22)], + "itemHeight": 50 + } + + + + + """ + + def __init__(self, session, plugin_path): + Screen.__init__(self, session) + self.session = session + self.skin_path = plugin_path + + self["shortcuts"] = ActionMap(["ShortcutActions", "WizardActions"], + { + "back": self.exit, + "red": self.exit, + }, -1) + + self.list = [] + self["list"] = List(self.list) + self["key_red"] = StaticText(_("Close")) + self["status"] = StaticText(_("A small overview of the available icon states and actions.")) + + self.onShown.append(self.setWindowTitle) + self.onLayoutFinish.append(self.rebuildList) + + def setWindowTitle(self): + self.setTitle(_("Plugin manager help")) + + def rebuildList(self): + self.list = [] + self.list.append(self.buildEntryComponent('install')) + self.list.append(self.buildEntryComponent('installable')) + self.list.append(self.buildEntryComponent('installed')) + self.list.append(self.buildEntryComponent('remove')) + self['list'].setList(self.list) + self['list'].updateList(self.list) + + def buildEntryComponent(self, state): + divpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/div-h.png")) + installedpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_PLUGIN, "SystemPlugins/SoftwareManager/installed.png")) + installablepng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_PLUGIN, "SystemPlugins/SoftwareManager/installable.png")) + removepng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_PLUGIN, "SystemPlugins/SoftwareManager/remove.png")) + installpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_PLUGIN, "SystemPlugins/SoftwareManager/install.png")) + + if state == 'installed': + return(( _('This plugin is installed.'), _('You can remove this plugin.'), installedpng, divpng)) + elif state == 'installable': + return(( _('This plugin is not installed.'), _('You can install this plugin.'), installablepng, divpng)) + elif state == 'install': + return(( _('This plugin will be installed.'), _('You can cancel the installation.'), installpng, divpng)) + elif state == 'remove': + return(( _('This plugin will be removed.'), _('You can cancel the removal.'), removepng, divpng)) + + def exit(self): + self.close() + + +class PluginDetails(Screen, PackageInfoHandler): + skin = """ + + + + + + + + + + + """ + def __init__(self, session, plugin_path, packagedata = None): + Screen.__init__(self, session) + self.skin_path = plugin_path + self.language = language.getLanguage()[:2] # getLanguage returns e.g. "fi_FI" for "language_country" + self.attributes = None + PackageInfoHandler.__init__(self, self.statusCallback, blocking = False) + self.directory = resolveFilename(SCOPE_METADIR) + if packagedata: + self.pluginname = packagedata[0] + self.details = packagedata[1] + self.pluginstate = packagedata[4] + self.statuspicinstance = packagedata[5] + self.divpicinstance = packagedata[6] + self.fillPackageDetails(self.details) + + self.thumbnail = "" + + self["shortcuts"] = ActionMap(["ShortcutActions", "WizardActions"], + { + "back": self.exit, + "red": self.exit, + "green": self.go, + "up": self.pageUp, + "down": self.pageDown, + "left": self.pageUp, + "right": self.pageDown, + }, -1) + + self["key_red"] = StaticText(_("Close")) + self["key_green"] = StaticText("") + self["author"] = StaticText() + self["statuspic"] = Pixmap() + self["divpic"] = Pixmap() + self["screenshot"] = Pixmap() + self["detailtext"] = ScrollLabel() + + self["statuspic"].hide() + self["screenshot"].hide() + self["divpic"].hide() + + self.package = self.packageDetails[0] + if self.package[0].has_key("attributes"): + self.attributes = self.package[0]["attributes"] + self.restartRequired = False + self.cmdList = [] + self.oktext = _("\nAfter pressing OK, please wait!") + self.picload = ePicLoad() + self.picload.PictureData.get().append(self.paintScreenshotPixmapCB) + self.onShown.append(self.setWindowTitle) + self.onLayoutFinish.append(self.setInfos) + + def setWindowTitle(self): + self.setTitle(_("Details for plugin: ") + self.pluginname ) + + def exit(self): + self.close(False) + + def pageUp(self): + self["detailtext"].pageUp() + + def pageDown(self): + self["detailtext"].pageDown() + + def statusCallback(self, status, progress): + pass + + def setInfos(self): + if self.attributes.has_key("screenshot"): + self.loadThumbnail(self.attributes) + + if self.attributes.has_key("name"): + self.pluginname = self.attributes["name"] + else: + self.pluginname = _("unknown") + + if self.attributes.has_key("author"): + self.author = self.attributes["author"] + else: + self.author = _("unknown") + + if self.attributes.has_key("description"): + self.description = _(self.attributes["description"].replace("\\n", "\n")) + else: + self.description = _("No description available.") + + self["author"].setText(_("Author: ") + self.author) + self["detailtext"].setText(_(self.description)) + if self.pluginstate in ('installable', 'install'): + if iSoftwareTools.NetworkConnectionAvailable: + self["key_green"].setText(_("Install")) + else: + self["key_green"].setText("") + else: + self["key_green"].setText(_("Remove")) + + def loadThumbnail(self, entry): + thumbnailUrl = None + if entry.has_key("screenshot"): + thumbnailUrl = entry["screenshot"] + if self.language == "de": + if thumbnailUrl[-7:] == "_en.jpg": + thumbnailUrl = thumbnailUrl[:-7] + "_de.jpg" + + if thumbnailUrl is not None: + self.thumbnail = "/tmp/" + thumbnailUrl.split('/')[-1] + print "[PluginDetails] downloading screenshot " + thumbnailUrl + " to " + self.thumbnail + if iSoftwareTools.NetworkConnectionAvailable: + client.downloadPage(thumbnailUrl,self.thumbnail).addCallback(self.setThumbnail).addErrback(self.fetchFailed) + else: + self.setThumbnail(noScreenshot = True) + else: + self.setThumbnail(noScreenshot = True) + + def setThumbnail(self, noScreenshot = False): + if not noScreenshot: + filename = self.thumbnail + else: + filename = resolveFilename(SCOPE_CURRENT_PLUGIN, "SystemPlugins/SoftwareManager/noprev.png") + + sc = AVSwitch().getFramebufferScale() + self.picload.setPara((self["screenshot"].instance.size().width(), self["screenshot"].instance.size().height(), sc[0], sc[1], False, 1, "#00000000")) + self.picload.startDecode(filename) + + if self.statuspicinstance != None: + self["statuspic"].instance.setPixmap(self.statuspicinstance.__deref__()) + self["statuspic"].show() + if self.divpicinstance != None: + self["divpic"].instance.setPixmap(self.divpicinstance.__deref__()) + self["divpic"].show() + + def paintScreenshotPixmapCB(self, picInfo=None): + ptr = self.picload.getData() + if ptr != None: + self["screenshot"].instance.setPixmap(ptr.__deref__()) + self["screenshot"].show() + else: + self.setThumbnail(noScreenshot = True) + + def go(self): + if self.attributes.has_key("package"): + self.packagefiles = self.attributes["package"] + if self.attributes.has_key("needsRestart"): + self.restartRequired = True + self.cmdList = [] + if self.pluginstate in ('installed', 'remove'): + if self.packagefiles: + for package in self.packagefiles[:]: + self.cmdList.append((IpkgComponent.CMD_REMOVE, { "package": package["name"] })) + if len(self.cmdList): + self.session.openWithCallback(self.runRemove, MessageBox, _("Do you want to remove the package:\n") + self.pluginname + "\n" + self.oktext) + else: + if iSoftwareTools.NetworkConnectionAvailable: + if self.packagefiles: + for package in self.packagefiles[:]: + self.cmdList.append((IpkgComponent.CMD_INSTALL, { "package": package["name"] })) + if len(self.cmdList): + self.session.openWithCallback(self.runUpgrade, MessageBox, _("Do you want to install the package:\n") + self.pluginname + "\n" + self.oktext) + + def runUpgrade(self, result): + if result: + self.session.openWithCallback(self.runUpgradeFinished, Ipkg, cmdList = self.cmdList) + + def runUpgradeFinished(self): + self.reloadPluginlist() + if plugins.restartRequired or self.restartRequired: + self.session.openWithCallback(self.UpgradeReboot, MessageBox, _("Installation has completed.") + "\n" + _("Do you want to reboot your receiver?"), MessageBox.TYPE_YESNO) + else: + self.close(True) + def UpgradeReboot(self, result): + if result: + self.session.open(TryQuitMainloop,retvalue=3) + self.close(True) + + def runRemove(self, result): + if result: + self.session.openWithCallback(self.runRemoveFinished, Ipkg, cmdList = self.cmdList) + + def runRemoveFinished(self): + self.close(True) + + def reloadPluginlist(self): + plugins.readPluginList(resolveFilename(SCOPE_PLUGINS)) + + def fetchFailed(self,string): + self.setThumbnail(noScreenshot = True) + print "[PluginDetails] fetch failed " + string.getErrorMessage() + +class IPKGMenu(Screen): + skin = """ + + + + + + + """ + + def __init__(self, session, plugin_path): + Screen.__init__(self, session) + self.skin_path = plugin_path + + self["key_red"] = StaticText(_("Close")) + self["key_green"] = StaticText(_("Edit")) + + self.sel = [] + self.val = [] + self.entry = False + self.exe = False + + self.path = "" + + self["actions"] = NumberActionMap(["SetupActions"], + { + "ok": self.KeyOk, + "cancel": self.keyCancel + }, -1) + + self["shortcuts"] = ActionMap(["ShortcutActions"], + { + "red": self.keyCancel, + "green": self.KeyOk, + }) + self["filelist"] = MenuList([]) + self.fill_list() + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + self.setWindowTitle() + + def setWindowTitle(self): + self.setTitle(_("Select upgrade source to edit.")) + + def fill_list(self): + flist = [] + self.path = '/etc/opkg/' + if (os_path.exists(self.path) == False): + self.entry = False + return + for file in listdir(self.path): + if file.endswith(".conf"): + if file not in ('arch.conf', 'opkg.conf'): + flist.append((file)) + self.entry = True + self["filelist"].l.setList(flist) + + def KeyOk(self): + if (self.exe == False) and (self.entry == True): + self.sel = self["filelist"].getCurrent() + self.val = self.path + self.sel + self.session.open(IPKGSource, self.val) + + def keyCancel(self): + self.close() + + def Exit(self): + self.close() + + +class IPKGSource(Screen): + skin = """ + + + + + + + """ + + def __init__(self, session, configfile = None): + Screen.__init__(self, session) + self.session = session + self.configfile = configfile + text = "" + if self.configfile: + try: + fp = file(configfile, 'r') + sources = fp.readlines() + if sources: + text = sources[0] + fp.close() + except IOError: + pass + + desk = getDesktop(0) + x= int(desk.size().width()) + y= int(desk.size().height()) + + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("Save")) + + if (y>=720): + self["text"] = Input(text, maxSize=False, type=Input.TEXT) + else: + self["text"] = Input(text, maxSize=False, visible_width = 55, type=Input.TEXT) + + self["actions"] = NumberActionMap(["WizardActions", "InputActions", "TextEntryActions", "KeyboardInputActions","ShortcutActions"], + { + "ok": self.go, + "back": self.close, + "red": self.close, + "green": self.go, + "left": self.keyLeft, + "right": self.keyRight, + "home": self.keyHome, + "end": self.keyEnd, + "deleteForward": self.keyDeleteForward, + "deleteBackward": self.keyDeleteBackward, + "1": self.keyNumberGlobal, + "2": self.keyNumberGlobal, + "3": self.keyNumberGlobal, + "4": self.keyNumberGlobal, + "5": self.keyNumberGlobal, + "6": self.keyNumberGlobal, + "7": self.keyNumberGlobal, + "8": self.keyNumberGlobal, + "9": self.keyNumberGlobal, + "0": self.keyNumberGlobal + }, -1) + + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + self.setWindowTitle() + self["text"].right() + + def setWindowTitle(self): + self.setTitle(_("Edit upgrade source url.")) + + def go(self): + text = self["text"].getText() + if text: + fp = file(self.configfile, 'w') + fp.write(text) + fp.write("\n") + fp.close() + self.close() + + def keyLeft(self): + self["text"].left() + + def keyRight(self): + self["text"].right() + + def keyHome(self): + self["text"].home() + + def keyEnd(self): + self["text"].end() + + def keyDeleteForward(self): + self["text"].delete() + + def keyDeleteBackward(self): + self["text"].deleteBackward() + + def keyNumberGlobal(self, number): + self["text"].number(number) + + +class PacketManager(Screen, NumericalTextInput): + skin = """ + + + + + + + + {"template": [ + MultiContentEntryText(pos = (5, 1), size = (440, 28), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name + MultiContentEntryText(pos = (5, 26), size = (440, 20), font=1, flags = RT_HALIGN_LEFT, text = 2), # index 2 is the description + MultiContentEntryPixmapAlphaTest(pos = (445, 2), size = (48, 48), png = 4), # index 4 is the status pixmap + MultiContentEntryPixmapAlphaTest(pos = (5, 50), size = (510, 2), png = 5), # index 4 is the div pixmap + ], + "fonts": [gFont("Regular", 22),gFont("Regular", 14)], + "itemHeight": 52 + } + + + """ + + def __init__(self, session, plugin_path, args = None): + Screen.__init__(self, session) + NumericalTextInput.__init__(self) + self.session = session + self.skin_path = plugin_path + + self.setUseableChars(u'1234567890abcdefghijklmnopqrstuvwxyz') + + self["shortcuts"] = NumberActionMap(["ShortcutActions", "WizardActions", "NumberActions", "InputActions", "InputAsciiActions", "KeyboardInputActions" ], + { + "ok": self.go, + "back": self.exit, + "red": self.exit, + "green": self.reload, + "gotAsciiCode": self.keyGotAscii, + "1": self.keyNumberGlobal, + "2": self.keyNumberGlobal, + "3": self.keyNumberGlobal, + "4": self.keyNumberGlobal, + "5": self.keyNumberGlobal, + "6": self.keyNumberGlobal, + "7": self.keyNumberGlobal, + "8": self.keyNumberGlobal, + "9": self.keyNumberGlobal, + "0": self.keyNumberGlobal + }, -1) + + self.list = [] + self.statuslist = [] + self["list"] = List(self.list) + self["key_red"] = StaticText(_("Close")) + self["key_green"] = StaticText(_("Reload")) + + self.list_updating = True + self.packetlist = [] + self.installed_packetlist = {} + self.upgradeable_packages = {} + self.Console = Console() + self.cmdList = [] + self.cachelist = [] + self.cache_ttl = 86400 #600 is default, 0 disables, Seconds cache is considered valid (24h should be ok for caching ipkgs) + self.cache_file = eEnv.resolve('${libdir}/enigma2/python/Plugins/SystemPlugins/SoftwareManager/packetmanager.cache') #Path to cache directory + self.oktext = _("\nAfter pressing OK, please wait!") + self.unwanted_extensions = ('-dbg', '-dev', '-doc', '-staticdev', '-src', 'busybox') + + self.ipkg = IpkgComponent() + self.ipkg.addCallback(self.ipkgCallback) + self.onShown.append(self.setWindowTitle) + self.onLayoutFinish.append(self.rebuildList) + + rcinput = eRCInput.getInstance() + rcinput.setKeyboardMode(rcinput.kmAscii) + + def keyNumberGlobal(self, val): + key = self.getKey(val) + if key is not None: + keyvalue = key.encode("utf-8") + if len(keyvalue) == 1: + self.setNextIdx(keyvalue[0]) + + def keyGotAscii(self): + keyvalue = unichr(getPrevAsciiCode()).encode("utf-8") + if len(keyvalue) == 1: + self.setNextIdx(keyvalue[0]) + + def setNextIdx(self,char): + if char in ("0", "1", "a"): + self["list"].setIndex(0) + else: + idx = self.getNextIdx(char) + if idx and idx <= self["list"].count: + self["list"].setIndex(idx) + + def getNextIdx(self,char): + for idx, i in enumerate(self["list"].list): + if i[0] and (i[0][0] == char): + return idx + + def exit(self): + self.ipkg.stop() + if self.Console is not None: + if len(self.Console.appContainers): + for name in self.Console.appContainers.keys(): + self.Console.kill(name) + rcinput = eRCInput.getInstance() + rcinput.setKeyboardMode(rcinput.kmNone) + self.close() + + def reload(self): + if (os_path.exists(self.cache_file) == True): + remove(self.cache_file) + self.list_updating = True + self.rebuildList() + + def setWindowTitle(self): + self.setTitle(_("Packet manager")) + + def setStatus(self,status = None): + if status: + self.statuslist = [] + divpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/div-h.png")) + if status == 'update': + statuspng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_PLUGIN, "SystemPlugins/SoftwareManager/upgrade.png")) + self.statuslist.append(( _("Package list update"), '', _("Trying to download a new packetlist. Please wait..." ),'',statuspng, divpng )) + self['list'].setList(self.statuslist) + elif status == 'error': + statuspng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_PLUGIN, "SystemPlugins/SoftwareManager/remove.png")) + self.statuslist.append(( _("Error"), '', _("An error occurred while downloading the packetlist. Please try again." ),'',statuspng, divpng )) + self['list'].setList(self.statuslist) + + def rebuildList(self): + self.setStatus('update') + self.inv_cache = 0 + self.vc = valid_cache(self.cache_file, self.cache_ttl) + if self.cache_ttl > 0 and self.vc != 0: + try: + self.buildPacketList() + except: + self.inv_cache = 1 + if self.cache_ttl == 0 or self.inv_cache == 1 or self.vc == 0: + self.run = 0 + self.ipkg.startCmd(IpkgComponent.CMD_UPDATE) + + def go(self, returnValue = None): + cur = self["list"].getCurrent() + if cur: + status = cur[3] + package = cur[0] + self.cmdList = [] + if status == 'installed': + self.cmdList.append((IpkgComponent.CMD_REMOVE, { "package": package })) + if len(self.cmdList): + self.session.openWithCallback(self.runRemove, MessageBox, _("Do you want to remove the package:\n") + package + "\n" + self.oktext) + elif status == 'upgradeable': + self.cmdList.append((IpkgComponent.CMD_INSTALL, { "package": package })) + if len(self.cmdList): + self.session.openWithCallback(self.runUpgrade, MessageBox, _("Do you want to upgrade the package:\n") + package + "\n" + self.oktext) + elif status == "installable": + self.cmdList.append((IpkgComponent.CMD_INSTALL, { "package": package })) + if len(self.cmdList): + self.session.openWithCallback(self.runUpgrade, MessageBox, _("Do you want to install the package:\n") + package + "\n" + self.oktext) + + def runRemove(self, result): + if result: + self.session.openWithCallback(self.runRemoveFinished, Ipkg, cmdList = self.cmdList) + + def runRemoveFinished(self): + self.session.openWithCallback(self.RemoveReboot, MessageBox, _("Removal has completed.") + "\n" + _("Do you want to reboot your receiver?"), MessageBox.TYPE_YESNO) + + def RemoveReboot(self, result): + if result is None: + return + if result is False: + cur = self["list"].getCurrent() + if cur: + item = self['list'].getIndex() + self.list[item] = self.buildEntryComponent(cur[0], cur[1], cur[2], 'installable') + self.cachelist[item] = [cur[0], cur[1], cur[2], 'installable'] + self['list'].setList(self.list) + write_cache(self.cache_file, self.cachelist) + self.reloadPluginlist() + if result: + self.session.open(TryQuitMainloop,retvalue=3) + + def runUpgrade(self, result): + if result: + self.session.openWithCallback(self.runUpgradeFinished, Ipkg, cmdList = self.cmdList) + + def runUpgradeFinished(self): + self.session.openWithCallback(self.UpgradeReboot, MessageBox, _("Update has completed.") + "\n" +_("Do you want to reboot your receiver?"), MessageBox.TYPE_YESNO) + + def UpgradeReboot(self, result): + if result is None: + return + if result is False: + cur = self["list"].getCurrent() + if cur: + item = self['list'].getIndex() + self.list[item] = self.buildEntryComponent(cur[0], cur[1], cur[2], 'installed') + self.cachelist[item] = [cur[0], cur[1], cur[2], 'installed'] + self['list'].setList(self.list) + write_cache(self.cache_file, self.cachelist) + self.reloadPluginlist() + if result: + self.session.open(TryQuitMainloop,retvalue=3) + + def ipkgCallback(self, event, param): + if event == IpkgComponent.EVENT_ERROR: + self.list_updating = False + self.setStatus('error') + elif event == IpkgComponent.EVENT_DONE: + if self.list_updating: + self.list_updating = False + if not self.Console: + self.Console = Console() + cmd = self.ipkg.ipkg + " list" + self.Console.ePopen(cmd, self.IpkgList_Finished) + pass + + def IpkgList_Finished(self, result, retval, extra_args = None): + if result: + self.packetlist = [] + last_name = "" + for x in result.splitlines(): + tokens = x.split(' - ') + name = tokens[0].strip() + if not any(name.endswith(x) for x in self.unwanted_extensions): + l = len(tokens) + version = l > 1 and tokens[1].strip() or "" + descr = l > 2 and tokens[2].strip() or "" + if name == last_name: + continue + last_name = name + self.packetlist.append([name, version, descr]) + + if not self.Console: + self.Console = Console() + cmd = self.ipkg.ipkg + " list_installed" + self.Console.ePopen(cmd, self.IpkgListInstalled_Finished) + + def IpkgListInstalled_Finished(self, result, retval, extra_args = None): + if result: + self.installed_packetlist = {} + for x in result.splitlines(): + tokens = x.split(' - ') + name = tokens[0].strip() + if not any(name.endswith(x) for x in self.unwanted_extensions): + l = len(tokens) + version = l > 1 and tokens[1].strip() or "" + self.installed_packetlist[name] = version + if not self.Console: + self.Console = Console() + cmd = "opkg list-upgradable" + self.Console.ePopen(cmd, self.OpkgListUpgradeable_Finished) + + def OpkgListUpgradeable_Finished(self, result, retval, extra_args = None): + if result: + self.upgradeable_packages = {} + for x in result.splitlines(): + tokens = x.split(' - ') + name = tokens[0].strip() + if not any(name.endswith(x) for x in self.unwanted_extensions): + l = len(tokens) + version = l > 2 and tokens[2].strip() or "" + self.upgradeable_packages[name] = version + self.buildPacketList() + + def buildEntryComponent(self, name, version, description, state): + divpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, "skin_default/div-h.png")) + if not description: + description = "No description available." + if state == 'installed': + installedpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_PLUGIN, "SystemPlugins/SoftwareManager/installed.png")) + return((name, version, _(description), state, installedpng, divpng)) + elif state == 'upgradeable': + upgradeablepng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_PLUGIN, "SystemPlugins/SoftwareManager/upgradeable.png")) + return((name, version, _(description), state, upgradeablepng, divpng)) + else: + installablepng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_PLUGIN, "SystemPlugins/SoftwareManager/installable.png")) + return((name, version, _(description), state, installablepng, divpng)) + + def buildPacketList(self): + self.list = [] + self.cachelist = [] + if self.cache_ttl > 0 and self.vc != 0: + print 'Loading packagelist cache from ',self.cache_file + try: + self.cachelist = load_cache(self.cache_file) + if len(self.cachelist) > 0: + for x in self.cachelist: + self.list.append(self.buildEntryComponent(x[0], x[1], x[2], x[3])) + self['list'].setList(self.list) + except: + self.inv_cache = 1 + + if self.cache_ttl == 0 or self.inv_cache == 1 or self.vc == 0: + print 'rebuilding fresh package list' + for x in self.packetlist: + status = "" + if self.installed_packetlist.has_key(x[0]): + if self.upgradeable_packages.has_key(x[0]): + status = "upgradeable" + else: + status = "installed" + else: + status = "installable" + self.list.append(self.buildEntryComponent(x[0], x[1], x[2], status)) + self.cachelist.append([x[0], x[1], x[2], status]) + write_cache(self.cache_file, self.cachelist) + self['list'].setList(self.list) + + def reloadPluginlist(self): + plugins.readPluginList(resolveFilename(SCOPE_PLUGINS)) + + +class IpkgInstaller(Screen): + skin = """ + + + + + + + + + + + + + """ + + def __init__(self, session, list): + Screen.__init__(self, session) + + self.list = SelectionList() + self["list"] = self.list + + p = 0 + if len(list): + p = list[0].rfind("/") + title = list[0][:p] + self.title = ("%s %s %s") % (_("Install extensions"), _("from"), title) + + for listindex in range(len(list)): + self.list.addSelection(list[listindex][p+1:], list[listindex], listindex, False) + self.list.sort() + + self["key_red"] = StaticText(_("Close")) + self["key_green"] = StaticText(_("Install")) + self["key_yellow"] = StaticText() + self["key_blue"] = StaticText(_("Invert")) + self["introduction"] = StaticText(_("Press OK to toggle the selection.")) + + self["actions"] = ActionMap(["OkCancelActions", "ColorActions"], + { + "ok": self.list.toggleSelection, + "cancel": self.close, + "red": self.close, + "green": self.install, + "blue": self.list.toggleAllSelection + }, -1) + + def install(self): + list = self.list.getSelectionsList() + cmdList = [] + for item in list: + cmdList.append((IpkgComponent.CMD_INSTALL, { "package": item[1] })) + self.session.open(Ipkg, cmdList = cmdList) + + +def filescan_open(list, session, **kwargs): + filelist = [x.path for x in list] + session.open(IpkgInstaller, filelist) # list + +def filescan(**kwargs): + from Components.Scanner import Scanner, ScanPath + return \ + Scanner(mimetypes = ["application/x-debian-package"], + paths_to_scan = + [ + ScanPath(path = "ipk", with_subdirs = True), + ScanPath(path = "", with_subdirs = False), + ], + name = "Ipkg", + description = _("Install extensions."), + openfnc = filescan_open, ) + +def UpgradeMain(session, **kwargs): + session.open(UpdatePluginMenu) + +def startSetup(menuid): + if menuid == "setup" and config.plugins.softwaremanager.onSetupMenu.value: + return [(_("Software management"), UpgradeMain, "software_manager", 50)] + return [ ] + + +def Plugins(path, **kwargs): + global plugin_path + plugin_path = path + list = [ + PluginDescriptor(name=_("Software management"), description=_("Manage your receiver's software"), where = PluginDescriptor.WHERE_MENU, needsRestart = False, fnc=startSetup), + PluginDescriptor(name=_("Ipkg"), where = PluginDescriptor.WHERE_FILESCAN, needsRestart = False, fnc = filescan) + ] + if not config.plugins.softwaremanager.onSetupMenu.value and not config.plugins.softwaremanager.onBlueButton.value: + list.append(PluginDescriptor(name=_("Software management"), description=_("Manage your receiver's software"), where = PluginDescriptor.WHERE_PLUGINMENU, needsRestart = False, fnc=UpgradeMain)) + if config.plugins.softwaremanager.onBlueButton.value: + list.append(PluginDescriptor(name=_("Software management"), description=_("Manage your receiver's software"), where = PluginDescriptor.WHERE_EXTENSIONSMENU, needsRestart = False, fnc=UpgradeMain)) + return list diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/remove.png b/lib/python/Plugins/SystemPlugins/SoftwareManager/remove.png new file mode 100644 index 0000000000000000000000000000000000000000..4d00781e5f449a5416033ce4dd5af078b45e1ce1 GIT binary patch literal 2238 zcmd^B`9IT-1Afo(p45*LaGtb9YR;GyUsoIf6e$N5soU+|{^KoD@Wb4Ko#K@eO4 zBv?X6K;3go+Gly3^$}UEDMizD^>b`vyKkqRX3n`UU-09(ktQ5{rdH;*1kv{!-u^ zmOSPiHktZ(HRt70Y1QVt#+~I~OMv?7UpmkKf`MYDbK-gn2hBh^_>vN01%Ycj=egE5 zyvh0ws$oE5Z_fN8xWfZ?_<&S0u%8Sl#Q@Mii0(^C6|AyZsF3zu0ERnYTLUQL0aZMp zd`0RE9Z(~Pn?^%4iNbnhXb?*lktmOhRl^pE7==olrpRNSKpj%leO`;7441Z|$|7&+ zlIqW-u9(M;>R>Ytpkoi&CCEG8g}J1wVjrLMqnmr&QgFVf)6}=;3)qOndfeL`+mz3Km8-t_1Eg2e z*wpH@Zt%>VTI+kC?H_cw(%Zu7H+`~Ne{w(tG{Gjl)!|VWCcD?Of=w*$GqiD2GqHL) z#8Y#lxI7!YTr}$OavWPU>|4pY(ZPK;y%Suw5Lo;3pQgn)29Hud>!1C;g}uXA<_A?V zk)(v!FN^1Gj`T{ciV!>EN|LQxmUDFGEy z>il9n$?K6tFx@GrOrQ42KfTN4<9td??a3a_^QceiB|~IV*^!81?>Lf5wHH2=;#m_NzGv%v?eU_A%?vd$k^1F!u7lZ%RN zMyqn_f~}i_Jm0-|{(EI*o6Fr@er2e+2LM2TaEyb~Zv1}+;PgjC6##@#XoQtBs%Mp(Hw($c2`{IJMG}~|k_f)47i11CC+g|Z zv{N*pny#X-Oi?`}Q9Ijy4y50qC~Ta`m2;4}?UfsLW9w_=*GT>pOaQds z&lkxpw`}W^YSO3<^q4b58c#N*hWzFgn!E~nRD1n>@34hN9?>h9utl9>u_|i6)h!== z^g3uk^!T5TIZ(y>#V#wedri*LZSq<@N0jFJbxb;8=a(==M`72#ti>=~b+^2KYvp`> zX1J3r6|we2TKwg3&fDNN`$F27%4d=Bk`LCij?CzU>I0tCVONQH-lcl4fRC@yl3w%q z$Dg&y0m?W@?#PpZvZ3ssv&4;s93^U*^maq3xZTjP3f-q8&VmT3jao1KnnKM0(#Rlx zwD;YIZK!`tA6iMK?c$p>TfVahOL^aIIpG;QJ^j|^{R|-t*8lFcPMiX;M{dq5TkmF~ z18VEMLWE_ek*;j`=`kQ%6asArNF7ig5&&d3!`YdF^2%xli!C?n6h5z4lA$69;lzDf zVkTvhXql?Qy?&rYN#k-!%Ipyc_5mRcBtjO3y zOB7P<2@2tqi&)5yD*9AC3>YjQyzOHkN6%1HQtvELu`FJX=ye*K;tq_rSCiKNP77dMKvi~~KOC3tO+Z}TM9-$=`MRz0}Y3P!M=}$7%mhB*C zxnsV}DfZ-XZOP%x@0rL{?xAC`UJh^Knr0dtjnWg%(f%C@%%~IwrEyCZdG P_hSHPqywTH?tS||cNXQD literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/update.png b/lib/python/Plugins/SystemPlugins/SoftwareManager/update.png new file mode 100644 index 0000000000000000000000000000000000000000..0ece6c76a7a87233bb21644f2c0d68e0f8218eea GIT binary patch literal 3630 zcmV+}4$<+6P)%3km`O0RsaB+S=OB z&(GP}*^G>g8X6k-`1sS)(_vv@Ha0dJ8yq`3JDQrBWLrpjdU_TW6<1eR1qB6oCnn3w%SlN|Z*Fe#zW@ON0ivR!X=!QG)6-B;P*PG-iHV81hX9LG=UrI_!g@uLd>+89R0FaQ7e}8|Hl9JJ*7A!3+larHe zY-)0Ha?#Pz3JVL0ii)PDrWY3%f`WorSXetdJ8w}1h=_=#bpVuZn6=P5-MMXuYr>Fh>{e*;se{n#lsHmf(qeDYOpP!$ZnVA$66lP{- z;Nak_tgLr;cY%R{Z(lPbBO_c~T<7QK7#J9?uC5Xi6LfTRVq#+Y`ue`UzRk_ej*gBi zD=JM*O$G)AU0hr}K0Wfk0A*!m#ghO}Pfs;9HKC!Q85tRRdV1)$2XS$6jg5^ZB_&Qx zP58wCq@<+b;o%4e2j8v;*4Eba^z>_MYg$@bTU%RweSIJxAW=UQCMG7|tN;ZD1y)v7 z)z#I`oB(fcZ}IW*rKP2omX-?&3ROrf-Kqc^8ykp#YR{Yi@9*!-%*@7@2vSi`*}GQP z*Vo{!1aot9v$M0HprBJyQL1_XXlQ5$2M0hvK-=5fz`($saR9!I08mIa5)u-FgM$bN z2)nzx92^|N!op5SJmsS$;rdR!~FdGy1Kfuva)=9e3E@b$HTXOe}Blx$ef&< z3JMCAmX=^&U$L>V?70B2u&~#p00II6Jv~0imH?rjoVB&JtE;Q8udlSUv;+hM0RaIL z5)wT=K0ZA?zrVk&t*xD%oxHrf4Gj%FJv|N%4iOO%0002ExVR4w4-gO#R8&;=_xHEA zw+00Ty}i8y0|Tn6s=2wj3=9kf1qLQ2CKD4A92^`lFfg{ZwhIdjI5;@}|NjLA1^>(d z-r`kH00003bW%=JaRB@qPI!(001C=UL_t(|+P&9%P*YbL0C3Ch+SdB0;~zT1@McDo zmlT3nhL(aLuku>9MR^3|Wr>(TC`A#FhX^YKf+Hw0tyZv2frSFviA-7&UXx&o5tM{y z5)29w2#E-U+_2xd0mRnb|8~C%C+Ftop5OV-Babcbyt8HXe;Qjr0ORiS=g&v_`{#$X zKi_}wVCCuL^s~{$#b-~OTxU%gEiJ|D&S=`Li_2MA8jX*vxtSOmU}l$=X*r{dkV^g1 zvUJBil#G}r3z~TzIj}n+*dx`}pU;mrdh(d5>(b4Ib(bS^Y z?Zu3pEeyuaoh>`0ADU#nVIaiPGBdLv^PuHSh`u+Hf+!hHw7hsa(<;@)9}H>KlP8|5 zVEEz)Zv4D%yjbBEGu){M-0j^DTyuA~-(gR6x8Ga7{D(X&GwsX*0zv}<%nsY76&$og zSXoevc|6xI)fE}iCy~{j!qqLS{UaO3eK4L*zj!uDo^m&J=drJuvZ*LcO?d>4n9U(C zHxr3#Mo7ra%t5<-J>hVy#rOC>997-H`To&Hz0!vLh1H%gV5`snWIUzUa%S5&3Id0~ zHl=7&)p| zj-YR_Go=-j+FCZ7$7yYwQV(_2PjHt5z<^26H#V-ENek`yarM%rKP)G`aGD`ApKl~> z$c{ut96~mX2Rb89ph`(n3PnRxZDJ0A2L?ghHd~)0Ns1E+>NL1f>0MgtJ!41g$-Q~` z^5xvzbGfgrN8uE*S1Ml`g^UPgoCJ_JjOl07iG4%uo^kDc^};T;Jypy)z~fL;ItK;9 zcF)LcsWP3YGs?=0XVQp0dY5nB{OPA$6z9(AoIBx;WG@506bw&fh|t6X^3BEudG>(Z zuJr7hof5Mq`V>4su1zQuDs`8ny*gVO&6hGiEkH(MdZKYi+OIu&j~+d`dGqRTzdd{i z>40--_0FlFI;KH%Lu4TsLWxL#kT*8SWLBW^ctiD2oMcd}kaVe4DekP!PIZ?^7*QA% z?QiQs_ZdTmqhoq08ZNy@w~>M~U_e}gOxys8iu8jo^|(Zy+>J*9b0!3NHSDUyg;Mg5dQELOCs)b%1|q;xOeU>CR9M-vKr z+tD%6+tO^j=aV~+Z(rZUJUsXC&Z$Hi-Gd)h2or*gAwV{5kj0Zv4^x(#xlBI;*XRaM zVbZLkl|^Vhq?jENC?k9MuDimF$20+1Fjzs3WtEu$AU6;+(t4MkH@hR`7 z96x_)VY?7F)PTI+Ad4qYYSII;G&2ca9{jxx%DxE|i$JhHz$Ua#^eGGXx~2vP5sA$d zO=Zv?KwwHVJzK5M19N?IGS|a@$RIOa0Fj80F$>7X1{pp1#i%AmrfCj!4D)l2ZV>jd zc&yqT_Kadi3qu@P-Rt6%+I=|G%)%#)LfPY38jjva^sMjQyN8mwetn&}x^?UKTN9j( zs+CE7T|w`32>tmko8XxFiuY&^w!8iGZQnag8A7JwaT>U z!1kh8MiGe=+ahxHk~*8y-DGy@V=*x?dwvgj_g&w+jg8jUe@y0%?><8(7wK_HA2L*J z2wD4-`r@P07p4o!G_u2%i55A`RB6(bA_YFPVq-}+YHCQaZ64LLE_qGy6k3^&g+)`$ zp7fA{b>$7F(RbfxIX2OeN>SIK8jJ}*bQ=UWZcP@@d^E&NN?v!ctF(P+g2iizy%t+i zQgY)6X?v7Sk|=>jC%ai_Xb?@5^vZ+pehCV4?yWQD?_QZ{3WVEHBDkRdWZgJ+;nvcN z05@7GtuCmJ4#TDFYHKCH#2=9-?=HDfLn=1nt32qbGj0?O&AiH-MvK`~`mccRd_Qlr zULUjbk3aVP&iFG!C)?g?p#TO8?d23ebQ=VW50{pn$-Hx%db`ZcxgPxN_AZr}z~;5= zPVPufmfs*1xwp=`Iyr}A9vm~T%5$sBGpEJ;?mYuT_PI4m=3`(!_x&#Mvp^@8-a@6Q ze$8kFWRp>TQe&o1vl$dtdF|piLX7B6nF0MRYp4{w3-)siNpDS@GP{v_qlv@8;4i z%W#8B=W@9@@p%@M^nEa7jdy*o=r@tQ;H`1Pm`D+~vN(WjGA@>9mD0F-MN}0+_8*rh zZa8%8PIiFkfboJ!5gH{_WyqRvgPXt%3uAKW@p&*ckj#}|9BJ`k279w3;sl!wgypxb_ylHWXm6I0S^Oj8yb%edWDL|Ir z9t=!fzTAM37E$eGw_I+itB|l+xLSqW^5y07mvT({^5toU!{AGZuix4fAg^>`vR;_r zwO7TM`hrOmM*54cM#8!;qRJ~SCcj`}GKIy;u~hWB-I#Pq_v%-#!(>yFCa(ZldV9ca z?=49&(h91La^>>Fr%`2TNse_dE!AMkTCDci5<2bu2)!DD^&gr-`(z_V&!A%MoXEduf)6~mg8nEb(+GiLyq#9yt|YF8G|=mIrxX1&?>06DsHbY%rE zAReIF(UtdCR^YauR{$ACwfXt^zuwn9)s4yLAJpO#jw#^|K<*zsieK6k-|AZX_I+sY zee{(`JEzrFKtHq#3v*ih5fy5TWTw4_nf61W{$K$Gs=&mn`?Yc`e`G|B#ST|g00JfI z2)b)d7pTDsycyIu`l&UiJ3~={0H7A&P|KmOheqbL>kVk}aU-cm=GB;dWLTSzVcl9S zLXeN5ccUR_qoQIC@9zQ_?;xcD^o8{-78bPl$$bB|k!|zPmH81}CQyOshm#LR`XTM% zZQF+D=K8_Y>Mo58SF9QM(9Bh!68$j!fBeM$H`;fNNI(^kWdHyG07*qoM6N<$f|#Vd AYXATM literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/upgrade.png b/lib/python/Plugins/SystemPlugins/SoftwareManager/upgrade.png new file mode 100644 index 0000000000000000000000000000000000000000..135058409c17f45c0da3e5de6c87163a828a311b GIT binary patch literal 2640 zcmd^=i9geg1INFH#}Qq4a^$95dvY}Kw47UQm{5+DJ42Xjn=^9XMLH~a5&oZ+ec z4G}!t27kxL6(8v2j{)>ue4H^-NUW0^#scHy671KHfdT;NhndM;_|kFFmtR#X?nRH9 zF6%`%z?0hbEb>EI4y?j@jMF>fyTK2LA5oe8I_9NTC1cws?dX_3)0_c*Xpou?(ISue zfc_c!s7Bg4(=7ZA~9deUQr33a-EvjM=0P_k1tW@S~arcY5TG0P>j1 zk!>}t=#7(vu)ZHUCRvQN#v~?d=XfOU?Yx{~$kSo*bNZp;cT%5^9m_kAtCx=yUGhz^ zjZjn`)bXvJaUp5Q@S3fC)e5q9A;zOr!X>Xy2|>B(Oivkn#|^>#^>?ac)-=Skq-$-- ztKo}(<{-kYR#py2Tx9)qEkOVt$*JKty!8uiRVajvxnL6i{)dUQ9Dxn&L0^Z!>}h;j zVRmJogai>yD-O8V*s{5i-IIWGdO6nF9bomx*t8FkjoRXpz6P$1X?>dE1s}s(!~jt& zaWL^LvJsBARMdZ#*D|F54%dbgohmnlq#rA*N2!@m)(`fIJJ$fA_y^C6y~;+AxOONa zheJJmVt2y!WMRgysqIxy9!P8ex+GFK2@Q}KKEmv1|uav*!K^|8F1PCbiX8-cHQMH4_W;aw! zHK6D&29JR_JylQ+VpA>48eTHEUk_Y*aF0N7DrQPy7XVpLHO(+$S!Y_w2V7#Ox?Z7c z;e?cWTJdzn?}Dt#-TtpM$9N0VJ176g0uF9p{kVTcA~rJKkI&9B2nODQM6#4OD}2@A46AQkqg&&8XV0JJNp-rQz%cwZ`2@>D`eu}*k2=>6LK3WQBb@`Z zug#1DoAhz%0GIC=Ydq7i4i5#Dx^YVA*ji`nTGc6eh8^$vM>rh0*DRvdIJ+neA=G1! z8XaA~7cjw`iZr;H^=#Qt7_*x{VV~}Pm9!M}mp&A9jLXY}mf(eWCiW3@FVr%;`} zyAHPUqdqty$hTOy%H+?%C=^A`ZSdnDP$oY>|IP*mi-mG2hlU=L-sJ5QXKxM3(2MT7 zx0D=8sxE(?d2x=@S9=-aFg1GfRD5+Jy-smhrfz?idb{Ox5Q|UGeQ1MJ$i@>eqdCZx zAh7~b8$J~>#cB5A8h@ST!$*f7C1I_dP2*;mWpC=nddHg-z7ak_-O?odJ zbAl+USga2Md7xgr8+5Bb7OvG$Akk2eBOGX1I%zAx|KaXu6hB?S@lP_9vVbHP5kmIuW6~h&^^xZ71 zCCcyg*6Ft{7@bTMWEYWK$y$HT%fDn0##cory;bE?qP2|?hEw$9s>lr!{VsPxOP@cN zVwSe!s1aXTgbCB;(`-&u%}#(lC=!Y8edi;nawC)E z{E#fm&E^R4(5S@3f}M7h*7QwG{W?EqzdK9CH=4e;nN>ScdX>AGA<->fJ8ySgXqMA) zt`GC%MTC8mkx1hR>0;!C^DrgijmdQxd3kw7^xnVUhN{_WwLw!h}gtWXfJpk8-P=B> zdhe#Jn7n7@{(@uw%M$J0i8uu|VGo!;(gD@%=O=grvR_XUhAT8JQW|)m(58)auL_>i zr|mDHv*?c!r#QJHHpYn9ps&dF*Cn*icRyxsRf-BCIjc6I6X;Xqoqa3zY ztmcK>lGwxcad&mFb4w{G>F5&(F2a7ak(hmP=5|}w>(Ec?VdZX@=c5!zMcN)7VKN^E zI>A#}nY-oEvX7;xnSJ@+AE8$nJ!Xb`E*Z1^kKJAuCrYQT#Au$!z7pHXo^QEfqxwV= zzc>S1Y928g7oDcAtC*rfe1v87OUPO@HmzrCX8zKLc00;U2Cb_rbh0;QOerAXP340o z-R8v$aDil}TmjA37Bdv^9 zUB?dtMenkB$V&tBi-y3$ufC2+;nf5qJG)t4`X$VVTfp7^>#H0}%CtP@PQ(kP{}r1@5+ZMSZbN=wAAp3L!rmA-M*R=otb3OL literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/upgradeable.png b/lib/python/Plugins/SystemPlugins/SoftwareManager/upgradeable.png new file mode 100644 index 0000000000000000000000000000000000000000..1702177f7b6bc2ebbe2f00e5586cda197209d183 GIT binary patch literal 2092 zcmd^A`8(7LAN|fumR!s2hKnp+B}I%S-Rw)F$WFG*WEo=%V;MV1lJ%01UG}AnvCB5| z+D#}KWH6U3$yiI4n3?bE{X5?CJfF{b&hz>Fc%E|-%}wv}aEWjM0Kj8tfUrDeh5rpF z>~uTLpKUoMVVu4l&I;>>3vmv>0J^SN7tBRNA7^)rCC1q`%%6;655GhZXtlt?K zUv`y50Yn~f%@erd#-p3deKYKLtt3f@chKt|P#Me_xUT>r0S5PBQ^IoG2snEy=dz^@k|Ve{fL>Xo!p!8LS&?lZD|Qs*Dq9tzRJvhF2He$`6eH$(7h;f<2!fx2;>+E1Dh@g1g_@2&DEZfyr1)zn87pYEm*@1^&f=Y2HG z8L=szL{?H=2}^cWGj1ZRYIuNsz9#C0qj z%E|vw!KZ_3&zpvw2%nHeZK2(t(-uJwBK1L9@eS`tuU4|kJ+n98!ORbooc1oum}iyq zv@ks0E&YYAHwIhrQqAjrOi$^ZU~9Oll1HK+i9Tc=XBkx%l{=A@@;(B;SS)u(Dy1>l zIbS2V&bWh~Q$Lg8S*FpulkZz29^QN{f5K$wM{@kIWb%+=#)w8rv&lQUZ*-?<`h;Y` z^xyIA$`v%dx(UDR&zC(CrQgn2FPz{Tw^V4%>_yh=$&<(xu&Vz^k-UXm{?R_ebX@@x zR#}l-Al4D1JhKwa0Ox1c#E4`CVox*!tQj1+n)U(#vQ7=d1~Pd;P#9#|ei$U<>#Q08ii`!vH*S`#9#wI(gpI7zpk`nA=%X@*Dy`D==qnGmzj^KN#Bpt zJ~ESZ5}MK>vZF7l$SP2-UyV$1Q*16*6` zbu0CC;x&r@BhKWM-{=eVk-v_oTSzSLI=_E-xfN_P@@A5aVjV+kAF-J;lPVlc#ng_N zF8b#8ovMYgG=A|-k=jeWWmeL7#|E#dS900n-rD*{p-pNUb{TW{#&!} zTn65VIruU|_XMlUl>ULH&dGx&Iy zoKeL~I}Z4<_<99^qtg=u-Hivvoq&lKd4b>iyRlV#G#6hj9Jp8kmo{UV{Am5UiF&3V zo7#j$AnD}gHR8V-te>pTHV!^5O~`b5<;c2%m{n{+YKEiTSW|@U={b1kh=n3JF3f{C zkQvP(&cZC6D^kQlI@kqZ4mwFlWCXZh59x6+-t&3`p z*xLVvm(t>GeEPCuJ4b}onIJ1XJNqr{@CmMfx%*|N5X;eOTBPi5e?GsfNcvUtiu(Y* z8eO}+G(|j|+tR$aFWqKZq=EUQVRVis8Rtz_*GYCTo*SPXtikN0&7Bm}-A9}G8>U8k z@+34EEl0luTDZCK^aHI>27T$~i{mLHL_t?#L|QKyHkZfNvHkV_2h7 zMsFq~&%gHUF2MqO15p{Y_PyY*!b*TFQ literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/SystemPlugins/TempFanControl/Makefile.am b/lib/python/Plugins/SystemPlugins/TempFanControl/Makefile.am new file mode 100644 index 0000000..cb2f67d --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/TempFanControl/Makefile.am @@ -0,0 +1,7 @@ +installdir = $(pkglibdir)/python/Plugins/SystemPlugins/TempFanControl + +SUBDIRS = meta + +install_PYTHON = \ + __init__.py \ + plugin.py diff --git a/lib/python/Plugins/SystemPlugins/TempFanControl/__init__.py b/lib/python/Plugins/SystemPlugins/TempFanControl/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/SystemPlugins/TempFanControl/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/TempFanControl/meta/Makefile.am new file mode 100644 index 0000000..da7be24 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/TempFanControl/meta/Makefile.am @@ -0,0 +1,3 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_tempfancontrol.xml diff --git a/lib/python/Plugins/SystemPlugins/TempFanControl/meta/plugin_tempfancontrol.xml b/lib/python/Plugins/SystemPlugins/TempFanControl/meta/plugin_tempfancontrol.xml new file mode 100644 index 0000000..5c6565a --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/TempFanControl/meta/plugin_tempfancontrol.xml @@ -0,0 +1,20 @@ + + + + + + + + + + Dream Multimedia + TempFanControl + enigma2-plugin-systemplugins-tempfancontrol + Control your system fan + Control your internal system fan. + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/TempFanControl/plugin.py b/lib/python/Plugins/SystemPlugins/TempFanControl/plugin.py new file mode 100644 index 0000000..3132420 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/TempFanControl/plugin.py @@ -0,0 +1,171 @@ +from Components.ActionMap import ActionMap +from Components.Sensors import sensors +from Components.Sources.Sensor import SensorSource +from Components.Sources.StaticText import StaticText +from Components.ConfigList import ConfigListScreen +from Components.config import getConfigListEntry + +from Screens.Screen import Screen + +from Plugins.Plugin import PluginDescriptor +from Components.FanControl import fancontrol + +class TempFanControl(Screen, ConfigListScreen): + skin = """ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + """ + + def __init__(self, session, args = None): + Screen.__init__(self, session) + + templist = sensors.getSensorsList(sensors.TYPE_TEMPERATURE) + tempcount = len(templist) + fanlist = sensors.getSensorsList(sensors.TYPE_FAN_RPM) + fancount = len(fanlist) + + self["red"] = StaticText(_("Cancel")) + self["green"] = StaticText(_("OK")) + self["yellow"] = StaticText("") + self["blue"] = StaticText("") + + for count in range(8): + if count < tempcount: + id = templist[count] + self["SensorTempText%d" % count] = StaticText(sensors.getSensorName(id)) + self["SensorTemp%d" % count] = SensorSource(sensorid = id) + else: + self["SensorTempText%d" % count] = StaticText("") + self["SensorTemp%d" % count] = SensorSource() + + if count < fancount: + id = fanlist[count] + self["SensorFanText%d" % count] = StaticText(sensors.getSensorName(id)) + self["SensorFan%d" % count] = SensorSource(sensorid = id) + else: + self["SensorFanText%d" % count] = StaticText("") + self["SensorFan%d" % count] = SensorSource() + + self.list = [] + for count in range(fancontrol.getFanCount()): + self.list.append(getConfigListEntry(_("Fan %d voltage") % (count + 1), fancontrol.getConfig(count).vlt)) + self.list.append(getConfigListEntry(_("Fan %d PWM") % (count + 1), fancontrol.getConfig(count).pwm)) + self.list.append(getConfigListEntry(_("Standby fan %d voltage") % (count + 1), fancontrol.getConfig(count).vlt_standby)) + self.list.append(getConfigListEntry(_("Standby fan %d PWM") % (count + 1), fancontrol.getConfig(count).pwm_standby)) + + ConfigListScreen.__init__(self, self.list, session = self.session) + #self["config"].list = self.list + #self["config"].setList(self.list) + self["config"].l.setSeperation(300) + + self["actions"] = ActionMap(["OkCancelActions", "ColorActions", "MenuActions"], + { + "ok": self.save, + "cancel": self.revert, + "red": self.revert, + "green": self.save, + "menu": self.closeRecursive, + }, -1) + + def save(self): + for count in range(fancontrol.getFanCount()): + fancontrol.getConfig(count).vlt.save() + fancontrol.getConfig(count).pwm.save() + fancontrol.getConfig(count).vlt_standby.save() + fancontrol.getConfig(count).pwm_standby.save() + self.close() + + def revert(self): + for count in range(fancontrol.getFanCount()): + fancontrol.getConfig(count).vlt.load() + fancontrol.getConfig(count).pwm.load() + fancontrol.getConfig(count).vlt_standby.load() + fancontrol.getConfig(count).pwm_standby.load() + self.close() + +def main(session, **kwargs): + session.open(TempFanControl) + +def startMenu(menuid): + if menuid != "system": + return [] + return [(_("Temperature and fan control"), main, "tempfancontrol", 80)] + +def Plugins(**kwargs): + return PluginDescriptor(name = _("Temperature and fan control"), description = _("Temperature and fan control"), where = PluginDescriptor.WHERE_MENU, needsRestart = False, fnc = startMenu) + diff --git a/lib/python/Plugins/SystemPlugins/VideoClippingSetup/Makefile.am b/lib/python/Plugins/SystemPlugins/VideoClippingSetup/Makefile.am new file mode 100644 index 0000000..af16d3c --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/VideoClippingSetup/Makefile.am @@ -0,0 +1,5 @@ +installdir = $(pkglibdir)/python/Plugins/SystemPlugins/VideoClippingSetup + +install_PYTHON = \ + __init__.py \ + plugin.py diff --git a/lib/python/Plugins/SystemPlugins/VideoClippingSetup/__init__.py b/lib/python/Plugins/SystemPlugins/VideoClippingSetup/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/SystemPlugins/VideoClippingSetup/plugin.py b/lib/python/Plugins/SystemPlugins/VideoClippingSetup/plugin.py new file mode 100644 index 0000000..53d4c04 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/VideoClippingSetup/plugin.py @@ -0,0 +1,129 @@ +from Screens.Screen import Screen +from Components.ConfigList import ConfigListScreen +from Components.config import config, ConfigSubsection, ConfigInteger, ConfigSlider, getConfigListEntry + +config.plugins.VideoClippingSetup = ConfigSubsection() +config.plugins.VideoClippingSetup.clip_left = ConfigInteger(default = 0) +config.plugins.VideoClippingSetup.clip_width = ConfigInteger(default = 720) +config.plugins.VideoClippingSetup.clip_top = ConfigInteger(default = 0) +config.plugins.VideoClippingSetup.clip_height = ConfigInteger(default = 576) + +class VideoClippingCoordinates(Screen, ConfigListScreen): + skin = """ + + + + + + + """ + + def __init__(self, session): + self.skin = VideoClippingCoordinates.skin + Screen.__init__(self, session) + + from Components.ActionMap import ActionMap + from Components.Button import Button + + self["ok"] = Button(_("OK")) + self["cancel"] = Button(_("Cancel")) + + self["actions"] = ActionMap(["SetupActions", "ColorActions", "MenuActions"], + { + "ok": self.keyGo, + "save": self.keyGo, + "cancel": self.keyCancel, + "green": self.keyGo, + "red": self.keyCancel, + "menu": self.closeRecursive, + }, -2) + + self.list = [] + ConfigListScreen.__init__(self, self.list, session = self.session) + + left = config.plugins.VideoClippingSetup.clip_left.value + width = config.plugins.VideoClippingSetup.clip_width.value + top = config.plugins.VideoClippingSetup.clip_top.value + height = config.plugins.VideoClippingSetup.clip_height.value + + self.clip_step = ConfigSlider(default = 1, increment = 1, limits = (1, 20)) + self.clip_left = ConfigSlider(default = left, increment = self.clip_step.value, limits = (0, 720)) + self.clip_width = ConfigSlider(default = width, increment = self.clip_step.value, limits = (0, 720)) + self.clip_top = ConfigSlider(default = top, increment = self.clip_step.value, limits = (0, 576)) + self.clip_height = ConfigSlider(default = height, increment = self.clip_step.value, limits = (0, 576)) + self.list.append(getConfigListEntry(_("stepsize"), self.clip_step)) + self.list.append(getConfigListEntry(_("left"), self.clip_left)) + self.list.append(getConfigListEntry(_("width"), self.clip_width)) + self.list.append(getConfigListEntry(_("top"), self.clip_top)) + self.list.append(getConfigListEntry(_("height"), self.clip_height)) + self["config"].list = self.list + self["config"].l.setList(self.list) + + def adjustStep(self): + self.clip_left.increment = self.clip_step.value + self.clip_width.increment = self.clip_step.value + self.clip_top.increment = self.clip_step.value + self.clip_height.increment = self.clip_step.value + + def keyLeft(self): + ConfigListScreen.keyLeft(self) + self.adjustStep() + self.setPreviewPosition() + + def keyRight(self): + ConfigListScreen.keyRight(self) + self.adjustStep() + self.setPreviewPosition() + + def setPreviewPosition(self): + setPosition(int(self.clip_left.value), int(self.clip_width.value), int(self.clip_top.value), int(self.clip_height.value)) + + def keyGo(self): + config.plugins.VideoClippingSetup.clip_left.value = self.clip_left.value + config.plugins.VideoClippingSetup.clip_width.value = self.clip_width.value + config.plugins.VideoClippingSetup.clip_top.value = self.clip_top.value + config.plugins.VideoClippingSetup.clip_height.value = self.clip_height.value + config.plugins.VideoClippingSetup.save() + self.close() + + def keyCancel(self): + setConfiguredPosition() + self.close() + +def setPosition(clip_left, clip_width, clip_top, clip_height): + if clip_left + clip_width > 720: + clip_width = 720 - clip_left + if clip_top + clip_height > 576: + clip_height = 576 - clip_top + try: + file = open("/proc/stb/vmpeg/0/clip_left", "w") + file.write('%X' % clip_left) + file.close() + file = open("/proc/stb/vmpeg/0/clip_width", "w") + file.write('%X' % clip_width) + file.close() + file = open("/proc/stb/vmpeg/0/clip_top", "w") + file.write('%X' % clip_top) + file.close() + file = open("/proc/stb/vmpeg/0/clip_height", "w") + file.write('%X' % clip_height) + file.close() + except: + return + +def setConfiguredPosition(): + setPosition(int(config.plugins.VideoClippingSetup.clip_left.value), int(config.plugins.VideoClippingSetup.clip_width.value), int(config.plugins.VideoClippingSetup.clip_top.value), int(config.plugins.VideoClippingSetup.clip_height.value)) + +def main(session, **kwargs): + session.open(VideoClippingCoordinates) + +def startup(reason, **kwargs): + setConfiguredPosition() + +def Plugins(**kwargs): + from os import path + if path.exists("/proc/stb/vmpeg/0/clip_left"): + from Plugins.Plugin import PluginDescriptor + return [PluginDescriptor(name = "Video clipping setup", description = "clip overscan / letterbox borders", where = PluginDescriptor.WHERE_PLUGINMENU, fnc = main), + PluginDescriptor(name = "Video clipping setup", description = "", where = PluginDescriptor.WHERE_SESSIONSTART, fnc = startup)] + return [] diff --git a/lib/python/Plugins/SystemPlugins/VideoEnhancement/Makefile.am b/lib/python/Plugins/SystemPlugins/VideoEnhancement/Makefile.am new file mode 100644 index 0000000..159a68b --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/VideoEnhancement/Makefile.am @@ -0,0 +1,8 @@ +installdir = $(pkglibdir)/python/Plugins/SystemPlugins/VideoEnhancement + +SUBDIRS = meta + +install_PYTHON = \ + __init__.py \ + plugin.py \ + VideoEnhancement.py diff --git a/lib/python/Plugins/SystemPlugins/VideoEnhancement/VideoEnhancement.py b/lib/python/Plugins/SystemPlugins/VideoEnhancement/VideoEnhancement.py new file mode 100644 index 0000000..4ba4958 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/VideoEnhancement/VideoEnhancement.py @@ -0,0 +1,273 @@ +from Components.config import config, ConfigSubsection, ConfigSlider, ConfigSelection, ConfigNothing, NoSave +from Tools.CList import CList +from os import path as os_path +# The "VideoEnhancement" is the interface to /proc/stb/vmpeg/0. + +class VideoEnhancement: + firstRun = True + + def __init__(self): + self.last_modes_preferred = [ ] + self.createConfig() + + def createConfig(self, *args): + config.pep = ConfigSubsection() + config.pep.configsteps = NoSave(ConfigSelection(choices=[1, 5, 10, 25], default = 1)) + + if os_path.exists("/proc/stb/vmpeg/0/pep_contrast"): + def setContrast(config): + myval = int(config.value*256) + try: + print "--> setting contrast to: %0.8X" % myval + open("/proc/stb/vmpeg/0/pep_contrast", "w").write("%0.8X" % myval) + except IOError: + print "couldn't write pep_contrast." + + if not VideoEnhancement.firstRun: + self.setConfiguredValues() + + config.pep.contrast = ConfigSlider(default=128, limits=(0,256)) + config.pep.contrast.addNotifier(setContrast) + else: + config.pep.contrast = NoSave(ConfigNothing()) + + if os_path.exists("/proc/stb/vmpeg/0/pep_saturation"): + def setSaturation(config): + myval = int(config.value*256) + try: + print "--> setting saturation to: %0.8X" % myval + open("/proc/stb/vmpeg/0/pep_saturation", "w").write("%0.8X" % myval) + except IOError: + print "couldn't write pep_saturaion." + + if not VideoEnhancement.firstRun: + self.setConfiguredValues() + + config.pep.saturation = ConfigSlider(default=128, limits=(0,256)) + config.pep.saturation.addNotifier(setSaturation) + else: + config.pep.saturation = NoSave(ConfigNothing()) + + if os_path.exists("/proc/stb/vmpeg/0/pep_hue"): + def setHue(config): + myval = int(config.value*256) + try: + print "--> setting hue to: %0.8X" % myval + open("/proc/stb/vmpeg/0/pep_hue", "w").write("%0.8X" % myval) + except IOError: + print "couldn't write pep_hue." + + if not VideoEnhancement.firstRun: + self.setConfiguredValues() + + config.pep.hue = ConfigSlider(default=128, limits=(0,256)) + config.pep.hue.addNotifier(setHue) + else: + config.pep.hue = NoSave(ConfigNothing()) + + if os_path.exists("/proc/stb/vmpeg/0/pep_brightness"): + def setBrightness(config): + myval = int(config.value*256) + try: + print "--> setting brightness to: %0.8X" % myval + open("/proc/stb/vmpeg/0/pep_brightness", "w").write("%0.8X" % myval) + except IOError: + print "couldn't write pep_brightness." + + if not VideoEnhancement.firstRun: + self.setConfiguredValues() + + config.pep.brightness = ConfigSlider(default=128, limits=(0,256)) + config.pep.brightness.addNotifier(setBrightness) + else: + config.pep.brightness = NoSave(ConfigNothing()) + + if os_path.exists("/proc/stb/vmpeg/0/pep_block_noise_reduction"): + def setBlock_noise_reduction(config): + myval = int(config.value) + try: + print "--> setting block_noise_reduction to: %0.8X" % myval + open("/proc/stb/vmpeg/0/pep_block_noise_reduction", "w").write("%0.8X" % myval) + except IOError: + print "couldn't write pep_block_noise_reduction." + + if not VideoEnhancement.firstRun: + self.setConfiguredValues() + + config.pep.block_noise_reduction = ConfigSlider(default=0, limits=(0,5)) + config.pep.block_noise_reduction.addNotifier(setBlock_noise_reduction) + else: + config.pep.block_noise_reduction = NoSave(ConfigNothing()) + + if os_path.exists("/proc/stb/vmpeg/0/pep_mosquito_noise_reduction"): + def setMosquito_noise_reduction(config): + myval = int(config.value) + try: + print "--> setting mosquito_noise_reduction to: %0.8X" % myval + open("/proc/stb/vmpeg/0/pep_mosquito_noise_reduction", "w").write("%0.8X" % myval) + except IOError: + print "couldn't write pep_mosquito_noise_reduction." + + if not VideoEnhancement.firstRun: + self.setConfiguredValues() + + config.pep.mosquito_noise_reduction = ConfigSlider(default=0, limits=(0,5)) + config.pep.mosquito_noise_reduction.addNotifier(setMosquito_noise_reduction) + else: + config.pep.mosquito_noise_reduction = NoSave(ConfigNothing()) + + if os_path.exists("/proc/stb/vmpeg/0/pep_digital_contour_removal"): + def setDigital_contour_removal(config): + myval = int(config.value) + try: + print "--> setting digital_contour_removal to: %0.8X" % myval + open("/proc/stb/vmpeg/0/pep_digital_contour_removal", "w").write("%0.8X" % myval) + except IOError: + print "couldn't write pep_digital_contour_removal." + + if not VideoEnhancement.firstRun: + self.setConfiguredValues() + + config.pep.digital_contour_removal = ConfigSlider(default=0, limits=(0,5)) + config.pep.digital_contour_removal.addNotifier(setDigital_contour_removal) + else: + config.pep.digital_contour_removal = NoSave(ConfigNothing()) + + if os_path.exists("/proc/stb/vmpeg/0/pep_split"): + def setSplitMode(config): + try: + print "--> setting splitmode to:",str(config.value) + open("/proc/stb/vmpeg/0/pep_split", "w").write(str(config.value)) + except IOError: + print "couldn't write pep_split." + + if not VideoEnhancement.firstRun: + self.setConfiguredValues() + + config.pep.split = ConfigSelection(choices={ + "off": _("Off"), + "left": _("Left"), + "right": _("Right")}, + default = "off") + config.pep.split.addNotifier(setSplitMode) + else: + config.pep.split = NoSave(ConfigNothing()) + + if os_path.exists("/proc/stb/vmpeg/0/pep_sharpness"): + def setSharpness(config): + myval = int(config.value*256) + try: + print "--> setting sharpness to: %0.8X" % myval + open("/proc/stb/vmpeg/0/pep_sharpness", "w").write("%0.8X" % myval) + except IOError: + print "couldn't write pep_sharpness." + + if not VideoEnhancement.firstRun: + self.setConfiguredValues() + + config.pep.sharpness = ConfigSlider(default=0, limits=(0,256)) + config.pep.sharpness.addNotifier(setSharpness) + else: + config.pep.sharpness = NoSave(ConfigNothing()) + + if os_path.exists("/proc/stb/vmpeg/0/pep_auto_flesh"): + def setAutoflesh(config): + myval = int(config.value) + try: + print "--> setting auto_flesh to: %0.8X" % myval + open("/proc/stb/vmpeg/0/pep_auto_flesh", "w").write("%0.8X" % myval) + except IOError: + print "couldn't write pep_auto_flesh." + + if not VideoEnhancement.firstRun: + self.setConfiguredValues() + + config.pep.auto_flesh = ConfigSlider(default=0, limits=(0,4)) + config.pep.auto_flesh.addNotifier(setAutoflesh) + else: + config.pep.auto_flesh = NoSave(ConfigNothing()) + + if os_path.exists("/proc/stb/vmpeg/0/pep_green_boost"): + def setGreenboost(config): + myval = int(config.value) + try: + print "--> setting green_boost to: %0.8X" % myval + open("/proc/stb/vmpeg/0/pep_green_boost", "w").write("%0.8X" % myval) + except IOError: + print "couldn't write pep_green_boost." + + if not VideoEnhancement.firstRun: + self.setConfiguredValues() + + config.pep.green_boost = ConfigSlider(default=0, limits=(0,4)) + config.pep.green_boost.addNotifier(setGreenboost) + else: + config.pep.green_boost = NoSave(ConfigNothing()) + + if os_path.exists("/proc/stb/vmpeg/0/pep_blue_boost"): + def setBlueboost(config): + myval = int(config.value) + try: + print "--> setting blue_boost to: %0.8X" % myval + open("/proc/stb/vmpeg/0/pep_blue_boost", "w").write("%0.8X" % myval) + except IOError: + print "couldn't write pep_blue_boost." + + if not VideoEnhancement.firstRun: + self.setConfiguredValues() + + config.pep.blue_boost = ConfigSlider(default=0, limits=(0,4)) + config.pep.blue_boost.addNotifier(setBlueboost) + else: + config.pep.blue_boost = NoSave(ConfigNothing()) + + if os_path.exists("/proc/stb/vmpeg/0/pep_dynamic_contrast"): + def setDynamic_contrast(config): + myval = int(config.value) + try: + print "--> setting dynamic_contrast to: %0.8X" % myval + open("/proc/stb/vmpeg/0/pep_dynamic_contrast", "w").write("%0.8X" % myval) + except IOError: + print "couldn't write pep_dynamic_contrast." + + if not VideoEnhancement.firstRun: + self.setConfiguredValues() + + config.pep.dynamic_contrast = ConfigSlider(default=0, limits=(0,256)) + config.pep.dynamic_contrast.addNotifier(setDynamic_contrast) + else: + config.pep.dynamic_contrast = NoSave(ConfigNothing()) + + try: + x = config.av.scaler_sharpness.value + except KeyError: + if os_path.exists("/proc/stb/vmpeg/0/pep_scaler_sharpness"): + def setScaler_sharpness(config): + myval = int(config.value) + try: + print "--> setting scaler_sharpness to: %0.8X" % myval + open("/proc/stb/vmpeg/0/pep_scaler_sharpness", "w").write("%0.8X" % myval) + except IOError: + print "couldn't write pep_scaler_sharpness." + + if not VideoEnhancement.firstRun: + self.setConfiguredValues() + + config.av.scaler_sharpness = ConfigSlider(default=13, limits=(0,26)) + config.av.scaler_sharpness.addNotifier(setScaler_sharpness) + else: + config.av.scaler_sharpness = NoSave(ConfigNothing()) + + if VideoEnhancement.firstRun: + self.setConfiguredValues() + + VideoEnhancement.firstRun = False + + def setConfiguredValues(self): + try: + print "--> applying pep values" + open("/proc/stb/vmpeg/0/pep_apply", "w").write("1") + except IOError: + print "couldn't apply pep values." + +VideoEnhancement() diff --git a/lib/python/Plugins/SystemPlugins/VideoEnhancement/__init__.py b/lib/python/Plugins/SystemPlugins/VideoEnhancement/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/SystemPlugins/VideoEnhancement/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/VideoEnhancement/meta/Makefile.am new file mode 100644 index 0000000..d08de4a --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/VideoEnhancement/meta/Makefile.am @@ -0,0 +1,5 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_videoenhancement.xml + +EXTRA_DIST = videoenhancement_en.jpg videoenhancement_de.jpg diff --git a/lib/python/Plugins/SystemPlugins/VideoEnhancement/meta/plugin_videoenhancement.xml b/lib/python/Plugins/SystemPlugins/VideoEnhancement/meta/plugin_videoenhancement.xml new file mode 100644 index 0000000..f52b4da --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/VideoEnhancement/meta/plugin_videoenhancement.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + Dream Multimedia + VideoEnhancement + enigma2-plugin-systemplugins-videoenhancement + VideoEnhancement provides advanced video enhancement settings + The VideoEnhancement plugin provides advanced video enhancement settings. + + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/VideoEnhancement/meta/videoenhancement_de.jpg b/lib/python/Plugins/SystemPlugins/VideoEnhancement/meta/videoenhancement_de.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ecf0161d01bea4010f4f472c68f5fb5c490d687f GIT binary patch literal 117151 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%0D8X>&w2d^L()9Qkt1#|3XF3wo8TQjO;zG2?iT< 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 !_O02NUjD8zk2k*5Gytr=Ii#+r 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 literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py b/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py new file mode 100644 index 0000000..f37296a --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py @@ -0,0 +1,399 @@ +from Plugins.Plugin import PluginDescriptor +from Components.ConfigList import ConfigListScreen +from Components.config import getConfigListEntry, config, ConfigNothing, ConfigSelection +from Components.ActionMap import ActionMap +from Components.Sources.StaticText import StaticText +from Screens.Screen import Screen +from Screens.MessageBox import MessageBox +import VideoEnhancement +from os import path as os_path + +class VideoEnhancementSetup(Screen, ConfigListScreen): + + skin = """ + + + + + + + + + + + + + """ + + def __init__(self, session): + Screen.__init__(self, session) + + self.session = session + self.onChangedEntry = [ ] + self.setup_title = "Videoenhancement" + + self.list = [ ] + self.xtdlist = [ ] + ConfigListScreen.__init__(self, self.list, session = self.session, on_change = self.changedEntry) + + self["actions"] = ActionMap(["SetupActions", "ColorActions", "MenuActions"], + { + "cancel": self.keyCancel, + "save": self.apply, + "yellow": self.keyYellow, + "blue": self.keyBlue, + "menu": self.closeRecursive, + }, -2) + + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("OK")) + self["key_yellow"] = StaticText(_("Last config")) + self["key_blue"] = StaticText(_("Default")) + self["introduction"] = StaticText() + + self.createSetup() + self.rememberOldSettings() + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + self.setTitle(_("Video enhancement setup")) + + def rememberOldSettings(self): + self.oldContrast = config.pep.contrast.value + self.oldSaturation = config.pep.saturation.value + self.oldHue = config.pep.hue.value + self.oldBrightness = config.pep.brightness.value + self.oldBlock_noise = config.pep.block_noise_reduction.value + self.oldMosquito_noise = config.pep.mosquito_noise_reduction.value + self.oldDigital_contour = config.pep.digital_contour_removal.value + self.oldScaler_sharpness = config.av.scaler_sharpness.value + self.oldSplit = config.pep.split.value + self.oldSharpness = config.pep.sharpness.value + self.oldAuto_flesh = config.pep.auto_flesh.value + self.oldGreen_boost = config.pep.green_boost.value + self.oldBlue_boost = config.pep.blue_boost.value + self.oldDynamic_contrast = config.pep.dynamic_contrast.value + + def addToConfigList(self, description, configEntry, add_to_xtdlist=False): + if isinstance(configEntry, ConfigNothing): + return None + entry = getConfigListEntry(description, configEntry) + self.list.append(entry); + if add_to_xtdlist: + self.xtdlist.append(entry) + return entry + + def createSetup(self): + self.list = [] + self.xtdlist = [] + addToConfigList = self.addToConfigList + self.contrastEntry = addToConfigList(_("Contrast"), config.pep.contrast) + self.saturationEntry = addToConfigList(_("Saturation"), config.pep.saturation) + self.hueEntry = addToConfigList(_("Hue"), config.pep.hue) + self.brightnessEntry = addToConfigList(_("Brightness"), config.pep.brightness) + self.scaler_sharpnessEntry = addToConfigList(_("Scaler sharpness"), config.av.scaler_sharpness) + self.splitEntry = addToConfigList(_("Split preview mode"), config.pep.split, True) + add_to_xtdlist = self.splitEntry is not None + self.sharpnessEntry = addToConfigList(_("Sharpness"), config.pep.sharpness, add_to_xtdlist) + self.auto_fleshEntry = addToConfigList(_("Auto flesh"), config.pep.auto_flesh, add_to_xtdlist) + self.green_boostEntry = addToConfigList(_("Green boost"), config.pep.green_boost, add_to_xtdlist) + self.blue_boostEntry = addToConfigList(_("Blue boost"), config.pep.blue_boost, add_to_xtdlist) + self.dynamic_contrastEntry = addToConfigList(_("Dynamic contrast"), config.pep.dynamic_contrast, add_to_xtdlist) + self.block_noise_reductionEntry = addToConfigList(_("Block noise reduction"), config.pep.block_noise_reduction, add_to_xtdlist) + self.mosquito_noise_reductionEntry = addToConfigList(_("Mosquito noise reduction"), config.pep.mosquito_noise_reduction, add_to_xtdlist) + self.digital_contour_removalEntry = addToConfigList(_("Digital contour removal"), config.pep.digital_contour_removal, add_to_xtdlist) + + self["config"].list = self.list + self["config"].l.setSeperation(300) + self["config"].l.setList(self.list) + if not self.selectionChanged in self["config"].onSelectionChanged: + self["config"].onSelectionChanged.append(self.selectionChanged) + self.selectionChanged() + + def selectionChanged(self): + self["introduction"].setText(_("Current value: ") + self.getCurrentValue()) + + def PreviewClosed(self): + self["config"].invalidate(self["config"].getCurrent()) + self.createSetup() + + def keyLeft(self): + current = self["config"].getCurrent() + if current == self.splitEntry: + ConfigListScreen.keyLeft(self) + elif current != self.splitEntry and current in self.xtdlist: + self.previewlist = [ + current, + self.splitEntry + ] + maxvalue = current[1].max + self.session.openWithCallback(self.PreviewClosed, VideoEnhancementPreview, configEntry = self.previewlist, oldSplitMode = config.pep.split.value, maxValue = maxvalue) + else: + self.previewlist = [ + current + ] + maxvalue = current[1].max + self.session.openWithCallback(self.PreviewClosed, VideoEnhancementPreview, configEntry = self.previewlist, oldSplitMode = None, maxValue = maxvalue) + + def keyRight(self): + current = self["config"].getCurrent() + if current == self.splitEntry: + ConfigListScreen.keyRight(self) + elif current != self.splitEntry and current in self.xtdlist: + self.previewlist = [ + current, + self.splitEntry + ] + maxvalue = current[1].max + self.session.openWithCallback(self.PreviewClosed, VideoEnhancementPreview, configEntry = self.previewlist, oldSplitMode = config.pep.split.value, maxValue = maxvalue ) + else: + self.previewlist = [ + current + ] + maxvalue = current[1].max + self.session.openWithCallback(self.PreviewClosed, VideoEnhancementPreview, configEntry = self.previewlist, oldSplitMode = None, maxValue = maxvalue) + + def confirm(self, confirmed): + if not confirmed: + print "not confirmed" + else: + if self.splitEntry is not None: + config.pep.split.setValue('off') + self.keySave() + + def apply(self): + self.session.openWithCallback(self.confirm, MessageBox, _("Use this video enhancement settings?"), MessageBox.TYPE_YESNO, timeout = 20, default = False) + + def cancelConfirm(self, result): + if not result: + return + self.keyYellowConfirm(True) + self.close() + + def keyCancel(self): + if self["config"].isChanged(): + self.session.openWithCallback(self.cancelConfirm, MessageBox, _("Really close without saving settings?")) + else: + self.close() + + def keyYellowConfirm(self, confirmed): + if not confirmed: + print "not confirmed" + else: + if self.contrastEntry is not None: + config.pep.contrast.setValue(self.oldContrast) + if self.saturationEntry is not None: + config.pep.saturation.setValue(self.oldSaturation) + if self.hueEntry is not None: + config.pep.hue.setValue(self.oldHue) + if self.brightnessEntry is not None: + config.pep.brightness.setValue(self.oldBrightness) + if self.block_noise_reductionEntry is not None: + config.pep.block_noise_reduction.setValue(self.oldBlock_noise) + if self.mosquito_noise_reductionEntry is not None: + config.pep.mosquito_noise_reduction.setValue(self.oldMosquito_noise) + if self.digital_contour_removalEntry is not None: + config.pep.digital_contour_removal.setValue(self.oldDigital_contour) + if self.scaler_sharpnessEntry is not None: + config.av.scaler_sharpness.setValue(self.oldScaler_sharpness) + if self.splitEntry is not None: + config.pep.split.setValue('off') + if self.sharpnessEntry is not None: + config.pep.sharpness.setValue(self.oldSharpness) + if self.auto_fleshEntry is not None: + config.pep.auto_flesh.setValue(self.oldAuto_flesh) + if self.green_boostEntry is not None: + config.pep.green_boost.setValue(self.oldGreen_boost) + if self.blue_boostEntry is not None: + config.pep.blue_boost.setValue(self.oldBlue_boost) + if self.dynamic_contrastEntry is not None: + config.pep.dynamic_contrast.setValue(self.oldDynamic_contrast) + self.keySave() + + def keyYellow(self): + self.session.openWithCallback(self.keyYellowConfirm, MessageBox, _("Reset video enhancement settings to your last configuration?"), MessageBox.TYPE_YESNO, timeout = 20, default = False) + + def keyBlueConfirm(self, confirmed): + if not confirmed: + print "not confirmed" + else: + if self.contrastEntry is not None: + config.pep.contrast.setValue(128) + if self.saturationEntry is not None: + config.pep.saturation.setValue(128) + if self.hueEntry is not None: + config.pep.hue.setValue(128) + if self.brightnessEntry is not None: + config.pep.brightness.setValue(128) + if self.block_noise_reductionEntry is not None: + config.pep.block_noise_reduction.setValue(0) + if self.mosquito_noise_reductionEntry is not None: + config.pep.mosquito_noise_reduction.setValue(0) + if self.digital_contour_removalEntry is not None: + config.pep.digital_contour_removal.setValue(0) + if self.scaler_sharpnessEntry is not None: + config.av.scaler_sharpness.setValue(13) + if self.splitEntry is not None: + config.pep.split.setValue('off') + if self.sharpnessEntry is not None: + config.pep.sharpness.setValue(0) + if self.auto_fleshEntry is not None: + config.pep.auto_flesh.setValue(0) + if self.green_boostEntry is not None: + config.pep.green_boost.setValue(0) + if self.blue_boostEntry is not None: + config.pep.blue_boost.setValue(0) + if self.dynamic_contrastEntry is not None: + config.pep.dynamic_contrast.setValue(0) + self.keySave() + + def keyBlue(self): + self.session.openWithCallback(self.keyBlueConfirm, MessageBox, _("Reset video enhancement settings to system defaults?"), MessageBox.TYPE_YESNO, timeout = 20, default = False) + + # for summary: + def changedEntry(self): + for x in self.onChangedEntry: + x() + self.selectionChanged() + + def getCurrentEntry(self): + return self["config"].getCurrent()[0] + + def getCurrentValue(self): + return str(self["config"].getCurrent()[1].getText()) + + def createSummary(self): + from Screens.Setup import SetupSummary + return SetupSummary + + +class VideoEnhancementPreview(Screen, ConfigListScreen): + + skin = """ + + + + + + + + + """ + + def __init__(self, session, configEntry = None, oldSplitMode = None, maxValue = None): + Screen.__init__(self, session) + + self.onChangedEntry = [ ] + self.setup_title = "Videoenhancement" + self.oldSplitMode = oldSplitMode + self.maxValue = maxValue + self.configStepsEntry = None + self.isStepSlider = None + + self.list = [ ] + self.configEntry = configEntry + ConfigListScreen.__init__(self, self.list, session = session, on_change = self.changedEntry) + + self["actions"] = ActionMap(["SetupActions"], + { + "cancel": self.keyCancel, + "save": self.keySave, + }, -2) + + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("OK")) + self["introduction"] = StaticText() + + self.createSetup() + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + self.setTitle(_("Video enhancement preview")) + + def createSetup(self): + self.list = [ ] + if self.maxValue == 256: + self.configStepsEntry = getConfigListEntry(_("Change step size"), config.pep.configsteps) + + if self.configEntry is not None: + self.list = self.configEntry + if self.maxValue == 256: + self.list.append(self.configStepsEntry) + + self["config"].list = self.list + self["config"].l.setSeperation(300) + self["config"].l.setList(self.list) + if not self.selectionChanged in self["config"].onSelectionChanged: + self["config"].onSelectionChanged.append(self.selectionChanged) + self.selectionChanged() + + def selectionChanged(self): + self["introduction"].setText(_("Current value: ") + self.getCurrentValue()) + try: + max_avail=self["config"].getCurrent()[1].max + if max_avail == 256: + self.isStepSlider = True + else: + self.isStepSlider = False + except AttributeError: + print "no max value" + + def keyLeft(self): + if self.isStepSlider is True: + self["config"].getCurrent()[1].increment = config.pep.configsteps.value + ConfigListScreen.keyLeft(self) + + def keyRight(self): + if self.isStepSlider is True: + self["config"].getCurrent()[1].increment = config.pep.configsteps.value + ConfigListScreen.keyRight(self) + + def keySave(self): + if self.oldSplitMode is not None: + currentSplitMode = config.pep.split.value + if self.oldSplitMode == 'off' and currentSplitMode != 'off': + config.pep.split.setValue('off') + else: + pass + self.close() + + def keyCancel(self): + for x in self["config"].list: + x[1].cancel() + if self.oldSplitMode is not None: + currentSplitMode = config.pep.split.value + if self.oldSplitMode == 'off' and currentSplitMode != 'off': + config.pep.split.setValue('off') + else: + pass + self.close() + + # for summary: + def changedEntry(self): + for x in self.onChangedEntry: + x() + self.selectionChanged() + + def getCurrentEntry(self): + return self["config"].getCurrent()[0] + + def getCurrentValue(self): + return str(self["config"].getCurrent()[1].getText()) + + def createSummary(self): + from Screens.Setup import SetupSummary + return SetupSummary + +def videoEnhancementSetupMain(session, **kwargs): + session.open(VideoEnhancementSetup) + +def startSetup(menuid): + if menuid != "system": + return [ ] + return [(_("Video enhancement settings") , videoEnhancementSetupMain, "videoenhancement_setup", 41)] + +def Plugins(**kwargs): + list = [] + if config.usage.setup_level.index >= 2 and os_path.exists("/proc/stb/vmpeg/0/pep_apply"): + list.append(PluginDescriptor(name=_("Video enhancement setup"), description=_("Advanced video enhancement setup"), where = PluginDescriptor.WHERE_MENU, needsRestart = False, fnc=startSetup)) + return list diff --git a/lib/python/Plugins/SystemPlugins/VideoTune/Makefile.am b/lib/python/Plugins/SystemPlugins/VideoTune/Makefile.am new file mode 100644 index 0000000..24fc838 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/VideoTune/Makefile.am @@ -0,0 +1,7 @@ +installdir = $(pkglibdir)/python/Plugins/SystemPlugins/VideoTune + +SUBDIRS = meta + +install_PYTHON = \ + __init__.py \ + plugin.py VideoFinetune.py diff --git a/lib/python/Plugins/SystemPlugins/VideoTune/VideoFinetune.py b/lib/python/Plugins/SystemPlugins/VideoTune/VideoFinetune.py new file mode 100644 index 0000000..a7dc46f --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/VideoTune/VideoFinetune.py @@ -0,0 +1,348 @@ +from Screens.Screen import Screen +from Components.Sources.CanvasSource import CanvasSource +from Components.ActionMap import ActionMap, NumberActionMap +from Tools.Directories import fileExists +from enigma import gFont, getDesktop, gMainDC, eSize, RT_HALIGN_RIGHT, RT_WRAP + +def RGB(r,g,b): + return (r<<16)|(g<<8)|b + +class OverscanTestScreen(Screen): + skin = """ + + + """ + + def __init__(self, session, xres=1280, yres=720): + Screen.__init__(self, session) + + self.xres, self.yres = getDesktop(0).size().width(), getDesktop(0).size().height() + + if (self.xres, self.yres) != (xres, yres): + gMainDC.getInstance().setResolution(xres, yres) + getDesktop(0).resize(eSize(xres, yres)) + self.onClose.append(self.__close) + + self["actions"] = NumberActionMap(["InputActions", "OkCancelActions"], + { + "1": self.keyNumber, + "2": self.keyNumber, + "3": self.keyNumber, + "4": self.keyNumber, + "5": self.keyNumber, + "7": self.keyNumber, + "ok": self.ok, + "cancel": self.cancel + }) + + def __close(self): + gMainDC.getInstance().setResolution(self.xres, self.yres) + getDesktop(0).resize(eSize(self.xres, self.yres)) + + def ok(self): + self.close(True) + + def cancel(self): + self.close(False) + + def keyNumber(self, key): + self.close(key) + +class FullHDTestScreen(OverscanTestScreen): + skin = """ + + + """ + + def __init__(self, session): + OverscanTestScreen.__init__(self, session, 1920, 1080) + + self["actions"] = NumberActionMap(["InputActions", "OkCancelActions"], + { + "1": self.keyNumber, + "2": self.keyNumber, + "3": self.keyNumber, + "4": self.keyNumber, + "5": self.keyNumber, + "6": self.keyNumber, + "ok": self.ok, + "cancel": self.cancel + }) + +class VideoFinetune(Screen): + skin = """ + + + """ + + def __init__(self, session): + Screen.__init__(self, session) + self["Canvas"] = CanvasSource() + + self.basic_colors = [RGB(255, 255, 255), RGB(255, 255, 0), RGB(0, 255, 255), RGB(0, 255, 0), RGB(255, 0, 255), RGB(255, 0, 0), RGB(0, 0, 255), RGB(0, 0, 0)] + + if fileExists("/proc/stb/fb/dst_left"): + self.left = open("/proc/stb/fb/dst_left", "r").read() + self.width = open("/proc/stb/fb/dst_width", "r").read() + self.top = open("/proc/stb/fb/dst_top", "r").read() + self.height = open("/proc/stb/fb/dst_height", "r").read() + open("/proc/stb/fb/dst_left", "w").write("00000000") + open("/proc/stb/fb/dst_width", "w").write("000002d0") + open("/proc/stb/fb/dst_top", "w").write("00000000") + open("/proc/stb/fb/dst_height", "w").write("0000000240") + self.onClose.append(self.__close) + + self["actions"] = NumberActionMap(["InputActions", "OkCancelActions"], + { + "1": self.keyNumber, + "2": self.keyNumber, + "3": self.keyNumber, + "4": self.keyNumber, + "5": self.keyNumber, + "6": self.keyNumber, + "7": self.keyNumber, + "ok": self.callNext, + "cancel": self.close, + }) + self.testpic_brightness() + + def __close(self): + open("/proc/stb/fb/dst_left", "w").write(self.left) + open("/proc/stb/fb/dst_width", "w").write(self.width) + open("/proc/stb/fb/dst_top", "w").write(self.top) + open("/proc/stb/fb/dst_height", "w").write(self.height) + + def keyNumber(self, key): + (self.testpic_brightness, self.testpic_contrast, self.testpic_colors, self.testpic_filter, self.testpic_gamma, self.testpic_overscan, self.testpic_fullhd)[key-1]() + + def callNext(self): + if self.next: + self.next() + + def bbox(self, x, y, width, height, col, xx, yy): + c = self["Canvas"] + c.fill(x, y, xx, yy, col) + c.fill(x + width - xx, y, xx, yy, col) + c.fill(x, y + height - yy, xx, yy, col) + c.fill(x + width - xx, y + height - yy, xx, yy, col) + + def testpic_brightness(self): + self.next = self.testpic_contrast + self.show() + + c = self["Canvas"] + + xres, yres = getDesktop(0).size().width(), getDesktop(0).size().height() + + bbw, bbh = xres / 192, yres / 192 + c.fill(0, 0, xres, yres, RGB(0,0,0)) + + for i in range(15): + col = i * 116 / 14 + height = yres / 3 + eh = height / 8 + offset = yres/6 + eh * i + x = xres * 2 / 3 + width = yres / 6 + + c.fill(x, offset, width, eh, RGB(col, col, col)) + if col == 0 or col == 16 or col == 116: + c.fill(x, offset, width, 2, RGB(255, 255, 255)) + if i < 2: + c.writeText(x + width, offset, width, eh, RGB(255, 255, 255), RGB(0,0,0), gFont("Regular", 20), "%d." % (i+1)) + + c.writeText(xres / 10, yres / 6 - 40, xres * 3 / 5, 40, RGB(128,255,255), RGB(0,0,0), gFont("Regular", 40), + _("Brightness")) + c.writeText(xres / 10, yres / 6, xres / 2, yres * 4 / 6, RGB(255,255,255), RGB(0,0,0), gFont("Regular", 20), + _("If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", " + "set it to standard. Adjust the backlight level to a value suiting your taste. " + "Turn down contrast on your TV as much as possible.\nThen turn the brightness setting as " + "low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" + "Do not care about the bright shades now. They will be set up in the next step.\n" + "If you are happy with the result, press OK."), + RT_WRAP) + + c.flush() + + def testpic_contrast(self): + self.next = self.testpic_colors + self.show() + + c = self["Canvas"] + + xres, yres = getDesktop(0).size().width(), getDesktop(0).size().height() + + bbw, bbh = xres / 192, yres / 192 + c.fill(0, 0, xres, yres, RGB(0,0,0)) + + bbw = xres / 192 + bbh = yres / 192 + c.fill(0, 0, xres, yres, RGB(255,255,255)) + + for i in range(15): + col = 185 + i * 5 + height = yres / 3 + eh = height / 8 + offset = yres/6 + eh * i + x = xres * 2 / 3 + width = yres / 6 + + c.fill(x, offset, width, eh, RGB(col, col, col)) + if col == 185 or col == 235 or col == 255: + c.fill(x, offset, width, 2, RGB(0,0,0)) + if i >= 13: + c.writeText(x + width, offset, width, eh, RGB(0, 0, 0), RGB(255, 255, 255), gFont("Regular", 20), "%d." % (i-13+1)) + + c.writeText(xres / 10, yres / 6 - 40, xres * 3 / 5, 40, RGB(128,0,0), RGB(255,255,255), gFont("Regular", 40), + _("Contrast")) + c.writeText(xres / 10, yres / 6, xres / 2, yres * 4 / 6, RGB(0,0,0), RGB(255,255,255), gFont("Regular", 20), + _("Now, use the contrast setting to turn up the brightness of the background as much as possible, " + "but make sure that you can still see the difference between the two brightest levels of shades." + "If you have done that, press OK."), + RT_WRAP) + + c.flush() + + def testpic_colors(self): + self.next = self.testpic_filter + self.show() + + c = self["Canvas"] + + xres, yres = getDesktop(0).size().width(), getDesktop(0).size().height() + + bbw = xres / 192 + bbh = yres / 192 + c.fill(0, 0, xres, yres, RGB(255,255,255)) + + for i in range(33): + col = i * 255 / 32; + width = xres - xres/5; + ew = width / 33; + offset = xres/10 + ew * i; + y = yres * 2 / 3; + height = yres / 20; + o = yres / 60; + + if i < 16: + c1 = 0xFF; + c2 = 0xFF - (0xFF * i / 16); + else: + c1 = 0xFF - (0xFF * (i - 16) / 16); + c2 = 0; + + c.fill(offset, y, ew, height, RGB(c1, c2, c2)) + c.fill(offset, y + (height + o) * 1, ew, height, RGB(c2, c1, c2)) + c.fill(offset, y + (height + o) * 2, ew, height, RGB(c2, c2, c1)) + c.fill(offset, y + (height + o) * 3, ew, height, RGB(col, col, col)) + + if i == 0: + self.bbox(offset, y, ew, height, RGB(0,0,0), bbw, bbh); + self.bbox(offset, y + (height + o) * 1, ew, height, RGB(0,0,0), bbw, bbh); + self.bbox(offset, y + (height + o) * 2, ew, height, RGB(0,0,0), bbw, bbh); + + for i in range(8): + height = yres / 3; + eh = height / 8; + offset = yres/6 + eh * i; + x = xres * 2 / 3; + width = yres / 6; + + c.fill(x, offset, width, eh, self.basic_colors[i]) + if i == 0: + self.bbox(x, offset, width, eh, RGB(0,0,0), bbw, bbh) + + c.writeText(xres / 10, yres / 6 - 40, xres * 3 / 5, 40, RGB(128,0,0), RGB(255,255,255), gFont("Regular", 40), + ("Color")) + c.writeText(xres / 10, yres / 6, xres / 2, yres * 4 / 6, RGB(0,0,0), RGB(255,255,255), gFont("Regular", 20), + _("Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. " + "If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens."), + RT_WRAP) + + c.flush() + + def testpic_filter(self): + self.next = self.testpic_gamma + self.show() + + c = self["Canvas"] + + xres, yres = getDesktop(0).size().width(), getDesktop(0).size().height() + + c.fill(0, 0, xres, yres, RGB(64, 64, 64)) + + width = xres - xres/5 + offset = xres/10 + yb = yres * 2 / 3 + height = yres / 20 + o = yres / 60 + border = xres / 60 + + g1 = 255 + g2 = 128 + + c.fill(offset - border, yb - border, border * 2 + width, border * 2 + (height * 3 + o * 2), RGB(g1, g1, g1)) + + for x in xrange(0, width, 2): + c.fill(offset + x, yb, 1, height, RGB(g2,g2,g2)) + + for x in xrange(0, width, 4): + c.fill(offset + x, yb + (o + height), 2, height, RGB(g2,g2,g2)) + + for x in xrange(0, width, 8): + c.fill(offset + x, yb + (o + height) * 2, 4, height, RGB(g2,g2,g2)) + + c.flush() + + def testpic_gamma(self): + self.next = self.testpic_overscan + self.show() + + c = self["Canvas"] + + xres, yres = getDesktop(0).size().width(), getDesktop(0).size().height() + + c.fill(0, 0, xres, yres, RGB(0, 0, 0)) + + width = xres - xres/5 + offset_x = xres/10 + + height = yres - yres/5 + offset_y = yres/10 + + for y in xrange(0, height, 4): + c.fill(offset_x, offset_y + y, width/2, 2, RGB(255,255,255)) + + l = 0 + fnt = gFont("Regular", height / 14) + import math + for i in xrange(1, 15): + y = i * height / 14 + h = y - l + gamma = 0.6 + i * 0.2 + col = int(math.pow(.5, 1.0/gamma) * 256.0) + c.fill(offset_x + width/2, offset_y + l, width/2, h, RGB(col,col,col)) + + c.writeText(offset_x + width/2, offset_y + l, width/2, h, RGB(0,0,0), RGB(col,col,col), fnt, "%1.2f" % gamma, RT_WRAP|RT_HALIGN_RIGHT) + l = y + + c.flush() + + def testpic_overscan(self): + self.next = self.testpic_fullhd + self.hide() + self.session.openWithCallback(self.testpicCallback, OverscanTestScreen) + + def testpic_fullhd(self): + self.next = self.testpic_brightness + self.hide() + self.session.openWithCallback(self.testpicCallback, FullHDTestScreen) + + def testpicCallback(self, key): + if key: + if key == True: + self.next() + else: + self.keyNumber(key) + else: + self.close() diff --git a/lib/python/Plugins/SystemPlugins/VideoTune/__init__.py b/lib/python/Plugins/SystemPlugins/VideoTune/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/SystemPlugins/VideoTune/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/VideoTune/meta/Makefile.am new file mode 100644 index 0000000..a864905 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/VideoTune/meta/Makefile.am @@ -0,0 +1,5 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_videotune.xml + +EXTRA_DIST = videotune.jpg \ No newline at end of file diff --git a/lib/python/Plugins/SystemPlugins/VideoTune/meta/plugin_videotune.xml b/lib/python/Plugins/SystemPlugins/VideoTune/meta/plugin_videotune.xml new file mode 100644 index 0000000..78b170a --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/VideoTune/meta/plugin_videotune.xml @@ -0,0 +1,17 @@ + + + + + + + Dream Multimedia + VideoTune + enigma2-plugin-systemplugins-videotune + VideoTune helps fine-tuning your tv display + The VideoTune helps fine-tuning your tv display.\nYou can control brightness and contrast of your tv. + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/VideoTune/meta/videotune.jpg b/lib/python/Plugins/SystemPlugins/VideoTune/meta/videotune.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e966479931ecf85fe4732f7dca639ffb687638ee GIT binary patch literal 116763 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 Shdw3$Uorpwqg_w_wDcdP2A1Cd literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/SystemPlugins/VideoTune/plugin.py b/lib/python/Plugins/SystemPlugins/VideoTune/plugin.py new file mode 100644 index 0000000..74694b1 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/VideoTune/plugin.py @@ -0,0 +1,14 @@ +from Plugins.Plugin import PluginDescriptor + +def videoFinetuneMain(session, **kwargs): + from VideoFinetune import VideoFinetune + session.open(VideoFinetune) + +def startSetup(menuid): + if menuid != "system": + return [ ] + + return [(_("Video fine tuning"), videoFinetuneMain, "video_finetune", None)] + +def Plugins(**kwargs): + return PluginDescriptor(name=_("Video fine tuning"), description=_("fine-tune your display"), where = PluginDescriptor.WHERE_MENU, needsRestart = False, fnc=startSetup) diff --git a/lib/python/Plugins/SystemPlugins/Videomode/11DVI.png b/lib/python/Plugins/SystemPlugins/Videomode/11DVI.png new file mode 100644 index 0000000000000000000000000000000000000000..168d7abc6fc68fb5678ac6a1489a105efd449bf4 GIT binary patch literal 6865 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 ADF6Tf literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/SystemPlugins/Videomode/DVI.png b/lib/python/Plugins/SystemPlugins/Videomode/DVI.png new file mode 100644 index 0000000000000000000000000000000000000000..0a98851c6d9a2b49328fff7d80a988a6610e2dd0 GIT binary patch literal 4093 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 NK}J=&{;f&K{{c>>_}Tyf literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/SystemPlugins/Videomode/VideoHardware.py b/lib/python/Plugins/SystemPlugins/Videomode/VideoHardware.py new file mode 100644 index 0000000..7f39456 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/Videomode/VideoHardware.py @@ -0,0 +1,340 @@ +from enigma import eTimer +from Components.config import config, ConfigSelection, ConfigSubDict, ConfigYesNo + +from Tools.CList import CList +from Tools.HardwareInfo import HardwareInfo +from os import path + +# The "VideoHardware" is the interface to /proc/stb/video. +# It generates hotplug events, and gives you the list of +# available and preferred modes, as well as handling the currently +# selected mode. No other strict checking is done. +class VideoHardware: + rates = { } # high-level, use selectable modes. + + modes = { } # a list of (high-level) modes for a certain port. + + rates["PAL"] = { "50Hz": { 50: "pal" }, + "60Hz": { 60: "pal60" }, + "multi": { 50: "pal", 60: "pal60" } } + + rates["NTSC"] = { "60Hz": { 60: "ntsc" } } + + rates["Multi"] = { "multi": { 50: "pal", 60: "ntsc" } } + + rates["480i"] = { "60Hz": { 60: "480i" } } + + rates["576i"] = { "50Hz": { 50: "576i" } } + + rates["480p"] = { "60Hz": { 60: "480p" } } + + rates["576p"] = { "50Hz": { 50: "576p" } } + + rates["720p"] = { "50Hz": { 50: "720p50" }, + "60Hz": { 60: "720p" }, + "multi": { 50: "720p50", 60: "720p" } } + + rates["1080i"] = { "50Hz": { 50: "1080i50" }, + "60Hz": { 60: "1080i" }, + "multi": { 50: "1080i50", 60: "1080i" } } + + rates["1080p"] = { "50Hz": { 50: "1080p50" }, + "60Hz": { 60: "1080p" }, + "multi": { 50: "1080p50", 60: "1080p" } } + + rates["PC"] = { + "1024x768": { 60: "1024x768" }, # not possible on DM7025 + "800x600" : { 60: "800x600" }, # also not possible + "720x480" : { 60: "720x480" }, + "720x576" : { 60: "720x576" }, + "1280x720": { 60: "1280x720" }, + "1280x720 multi": { 50: "1280x720_50", 60: "1280x720" }, + "1920x1080": { 60: "1920x1080"}, + "1920x1080 multi": { 50: "1920x1080", 60: "1920x1080_50" }, + "1280x1024" : { 60: "1280x1024"}, + "1366x768" : { 60: "1366x768"}, + "1366x768 multi" : { 50: "1366x768", 60: "1366x768_50" }, + "1280x768": { 60: "1280x768" }, + "640x480" : { 60: "640x480" } + } + + modes["Scart"] = ["PAL", "NTSC", "Multi"] + modes["YPbPr"] = ["720p", "1080i", "576p", "480p", "576i", "480i"] + modes["DVI"] = ["720p", "1080p", "1080i", "576p", "480p", "576i", "480i"] + modes["DVI-PC"] = ["PC"] + + def getOutputAspect(self): + ret = (16,9) + port = config.av.videoport.value + if port not in config.av.videomode: + print "current port not available in getOutputAspect!!! force 16:9" + else: + mode = config.av.videomode[port].value + force_widescreen = self.isWidescreenMode(port, mode) + is_widescreen = force_widescreen or config.av.aspect.value in ("16_9", "16_10") + is_auto = config.av.aspect.value == "auto" + if is_widescreen: + if force_widescreen: + pass + else: + aspect = {"16_9": "16:9", "16_10": "16:10"}[config.av.aspect.value] + if aspect == "16:10": + ret = (16,10) + elif is_auto: + try: + aspect_str = open("/proc/stb/vmpeg/0/aspect", "r").read() + if aspect_str == "1": # 4:3 + ret = (4,3) + except IOError: + pass + else: # 4:3 + ret = (4,3) + return ret + + def __init__(self): + self.last_modes_preferred = [ ] + self.on_hotplug = CList() + self.current_mode = None + self.current_port = None + + self.readAvailableModes() + + if self.modes.has_key("DVI-PC") and not self.getModeList("DVI-PC"): + print "remove DVI-PC because of not existing modes" + del self.modes["DVI-PC"] + + self.createConfig() + self.readPreferredModes() + + portlist = self.getPortList() + has1080p50 = False + for port in portlist: + if port == 'DVI' and HardwareInfo().has_hdmi(): + if "1080p50" in self.modes_available: + has1080p50 = True + + if has1080p50: + self.widescreen_modes = set(["720p", "1080i", "1080p"]) + else: + self.widescreen_modes = set(["720p", "1080i"]) + + # take over old AVSwitch component :) + from Components.AVSwitch import AVSwitch + config.av.aspectratio.notifiers = [ ] + config.av.tvsystem.notifiers = [ ] + config.av.wss.notifiers = [ ] + AVSwitch.getOutputAspect = self.getOutputAspect + + config.av.aspect.addNotifier(self.updateAspect) + config.av.wss.addNotifier(self.updateAspect) + config.av.policy_169.addNotifier(self.updateAspect) + config.av.policy_43.addNotifier(self.updateAspect) + + def readAvailableModes(self): + try: + modes = open("/proc/stb/video/videomode_choices").read()[:-1] + except IOError: + print "couldn't read available videomodes." + self.modes_available = [ ] + return + self.modes_available = modes.split(' ') + + def readPreferredModes(self): + try: + modes = open("/proc/stb/video/videomode_preferred").read()[:-1] + self.modes_preferred = modes.split(' ') + except IOError: + print "reading preferred modes failed, using all modes" + self.modes_preferred = self.modes_available + + if self.modes_preferred != self.last_modes_preferred: + self.last_modes_preferred = self.modes_preferred + print "hotplug on dvi" + self.on_hotplug("DVI") # must be DVI + + # check if a high-level mode with a given rate is available. + def isModeAvailable(self, port, mode, rate): + rate = self.rates[mode][rate] + for mode in rate.values(): + if mode not in self.modes_available: + return False + return True + + def isWidescreenMode(self, port, mode): + return mode in self.widescreen_modes + + def setMode(self, port, mode, rate, force = None): + print "setMode - port:", port, "mode:", mode, "rate:", rate + # we can ignore "port" + self.current_mode = mode + self.current_port = port + modes = self.rates[mode][rate] + + mode_50 = modes.get(50) + mode_60 = modes.get(60) + if mode_50 is None or force == 60: + mode_50 = mode_60 + if mode_60 is None or force == 50: + mode_60 = mode_50 + + try: + open("/proc/stb/video/videomode_50hz", "w").write(mode_50) + open("/proc/stb/video/videomode_60hz", "w").write(mode_60) + except IOError: + try: + # fallback if no possibility to setup 50/60 hz mode + open("/proc/stb/video/videomode", "w").write(mode_50) + except IOError: + print "setting videomode failed." + + try: + open("/etc/videomode", "w").write(mode_50) # use 50Hz mode (if available) for booting + except IOError: + print "writing initial videomode to /etc/videomode failed." + + self.updateAspect(None) + + def saveMode(self, port, mode, rate): + print "saveMode", port, mode, rate + config.av.videoport.value = port + config.av.videoport.save() + if port in config.av.videomode: + config.av.videomode[port].value = mode + config.av.videomode[port].save() + if mode in config.av.videorate: + config.av.videorate[mode].value = rate + config.av.videorate[mode].save() + + def isPortAvailable(self, port): + # fixme + return True + + def isPortUsed(self, port): + if port == "DVI": + self.readPreferredModes() + return len(self.modes_preferred) != 0 + else: + return True + + def getPortList(self): + return [port for port in self.modes if self.isPortAvailable(port)] + + # get a list with all modes, with all rates, for a given port. + def getModeList(self, port): + print "getModeList for port", port + res = [ ] + for mode in self.modes[port]: + # list all rates which are completely valid + rates = [rate for rate in self.rates[mode] if self.isModeAvailable(port, mode, rate)] + + # if at least one rate is ok, add this mode + if len(rates): + res.append( (mode, rates) ) + return res + + def createConfig(self, *args): + has_hdmi = HardwareInfo().has_hdmi() + lst = [] + + config.av.videomode = ConfigSubDict() + config.av.videorate = ConfigSubDict() + + # create list of output ports + portlist = self.getPortList() + for port in portlist: + descr = port + if descr == 'DVI' and has_hdmi: + descr = 'HDMI' + elif descr == 'DVI-PC' and has_hdmi: + descr = 'HDMI-PC' + lst.append((port, descr)) + + # create list of available modes + modes = self.getModeList(port) + if len(modes): + config.av.videomode[port] = ConfigSelection(choices = [mode for (mode, rates) in modes]) + for (mode, rates) in modes: + config.av.videorate[mode] = ConfigSelection(choices = rates) + config.av.videoport = ConfigSelection(choices = lst) + + def setConfiguredMode(self): + port = config.av.videoport.value + if port not in config.av.videomode: + print "current port not available, not setting videomode" + return + + mode = config.av.videomode[port].value + + if mode not in config.av.videorate: + print "current mode not available, not setting videomode" + return + + rate = config.av.videorate[mode].value + self.setMode(port, mode, rate) + + def updateAspect(self, cfgelement): + # determine aspect = {any,4:3,16:9,16:10} + # determine policy = {bestfit,letterbox,panscan,nonlinear} + + # based on; + # config.av.videoport.value: current video output device + # Scart: + # config.av.aspect: + # 4_3: use policy_169 + # 16_9,16_10: use policy_43 + # auto always "bestfit" + # config.av.policy_169 + # letterbox use letterbox + # panscan use panscan + # scale use bestfit + # config.av.policy_43 + # pillarbox use panscan + # panscan use letterbox ("panscan" is just a bad term, it's inverse-panscan) + # nonlinear use nonlinear + # scale use bestfit + + port = config.av.videoport.value + if port not in config.av.videomode: + print "current port not available, not setting videomode" + return + mode = config.av.videomode[port].value + + force_widescreen = self.isWidescreenMode(port, mode) + + is_widescreen = force_widescreen or config.av.aspect.value in ("16_9", "16_10") + is_auto = config.av.aspect.value == "auto" + policy2 = "policy" # use main policy + + if is_widescreen: + if force_widescreen: + aspect = "16:9" + else: + aspect = {"16_9": "16:9", "16_10": "16:10"}[config.av.aspect.value] + policy_choices = {"pillarbox": "panscan", "panscan": "letterbox", "nonlinear": "nonlinear", "scale": "bestfit", "auto": "bestfit"} + policy = policy_choices[config.av.policy_43.value] + policy2_choices = {"letterbox": "letterbox", "panscan": "panscan", "scale": "bestfit", "auto": "bestfit"} + policy2 = policy2_choices[config.av.policy_169.value] + elif is_auto: + aspect = "any" + policy = "bestfit" + else: + aspect = "4:3" + policy = {"letterbox": "letterbox", "panscan": "panscan", "scale": "bestfit", "auto": "bestfit"}[config.av.policy_169.value] + + if not config.av.wss.value: + wss = "auto(4:3_off)" + else: + wss = "auto" + + print "-> setting aspect, policy, policy2, wss", aspect, policy, policy2, wss + open("/proc/stb/video/aspect", "w").write(aspect) + open("/proc/stb/video/policy", "w").write(policy) + open("/proc/stb/denc/0/wss", "w").write(wss) + try: + open("/proc/stb/video/policy2", "w").write(policy2) + except IOError: + pass + +config.av.edid_override = ConfigYesNo(default = False) +video_hw = VideoHardware() +video_hw.setConfiguredMode() diff --git a/lib/python/Plugins/SystemPlugins/Videomode/VideoWizard.py b/lib/python/Plugins/SystemPlugins/Videomode/VideoWizard.py new file mode 100644 index 0000000..c04f34d --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/Videomode/VideoWizard.py @@ -0,0 +1,191 @@ +from Screens.Wizard import WizardSummary +from Screens.WizardLanguage import WizardLanguage +from Screens.Rc import Rc +from VideoHardware import video_hw + +from Components.Pixmap import Pixmap, MovingPixmap, MultiPixmap +from Components.config import config, ConfigBoolean, configfile + +from Tools.Directories import resolveFilename, SCOPE_PLUGINS +from Tools.HardwareInfo import HardwareInfo + +config.misc.showtestcard = ConfigBoolean(default = False) + +class VideoWizardSummary(WizardSummary): + def __init__(self, session, parent): + WizardSummary.__init__(self, session, parent) + + def setLCDPicCallback(self): + self.parent.setLCDTextCallback(self.setText) + + def setLCDPic(self, file): + self["pic"].instance.setPixmapFromFile(file) + +class VideoWizard(WizardLanguage, Rc): + skin = """ + + + + + + + + + + + + + + + + + + + + + """ + + def __init__(self, session): + # FIXME anyone knows how to use relative paths from the plugin's directory? + self.xmlfile = resolveFilename(SCOPE_PLUGINS, "SystemPlugins/Videomode/videowizard.xml") + self.hw = video_hw + + WizardLanguage.__init__(self, session, showSteps = False, showStepSlider = False) + Rc.__init__(self) + self["wizard"] = Pixmap() + self["portpic"] = Pixmap() + + self.port = None + self.mode = None + self.rate = None + + + def createSummary(self): + print "++++++++++++***++**** VideoWizard-createSummary" + from Screens.Wizard import WizardSummary + return VideoWizardSummary + + def markDone(self): + self.hw.saveMode(self.port, self.mode, self.rate) + config.misc.videowizardenabled.value = 0 + config.misc.videowizardenabled.save() + configfile.save() + + def listInputChannels(self): + hw_type = HardwareInfo().get_device_name() + has_hdmi = HardwareInfo().has_hdmi() + list = [] + + for port in self.hw.getPortList(): + if self.hw.isPortUsed(port): + descr = port + if descr == 'DVI' and has_hdmi: + descr = 'HDMI' + if port != "DVI-PC": + list.append((descr,port)) + list.sort(key = lambda x: x[0]) + print "listInputChannels:", list + return list + + def inputSelectionMade(self, index): + print "inputSelectionMade:", index + self.port = index + self.inputSelect(index) + + def inputSelectionMoved(self): + hw_type = HardwareInfo().get_device_name() + has_hdmi = HardwareInfo().has_hdmi() + print "input selection moved:", self.selection + self.inputSelect(self.selection) + if self["portpic"].instance is not None: + picname = self.selection + if picname == 'DVI' and has_hdmi: + picname = "HDMI" + self["portpic"].instance.setPixmapFromFile(resolveFilename(SCOPE_PLUGINS, "SystemPlugins/Videomode/" + picname + ".png")) + + def inputSelect(self, port): + print "inputSelect:", port + modeList = self.hw.getModeList(self.selection) + print "modeList:", modeList + self.port = port + if (len(modeList) > 0): + ratesList = self.listRates(modeList[0][0]) + self.hw.setMode(port = port, mode = modeList[0][0], rate = ratesList[0][0]) + + def listModes(self): + list = [] + print "modes for port", self.port + for mode in self.hw.getModeList(self.port): + #if mode[0] != "PC": + list.append((mode[0], mode[0])) + print "modeslist:", list + return list + + def modeSelectionMade(self, index): + print "modeSelectionMade:", index + self.mode = index + self.modeSelect(index) + + def modeSelectionMoved(self): + print "mode selection moved:", self.selection + self.modeSelect(self.selection) + + def modeSelect(self, mode): + ratesList = self.listRates(mode) + print "ratesList:", ratesList + if self.port == "DVI" and mode in ("720p", "1080i", "1080p"): + self.rate = "multi" + self.hw.setMode(port = self.port, mode = mode, rate = "multi") + else: + self.hw.setMode(port = self.port, mode = mode, rate = ratesList[0][0]) + + def listRates(self, querymode = None): + if querymode is None: + querymode = self.mode + list = [] + print "modes for port", self.port, "and mode", querymode + for mode in self.hw.getModeList(self.port): + print mode + if mode[0] == querymode: + for rate in mode[1]: + if self.port == "DVI-PC": + print "rate:", rate + if rate == "640x480": + list.insert(0, (rate, rate)) + continue + list.append((rate, rate)) + return list + + def rateSelectionMade(self, index): + print "rateSelectionMade:", index + self.rate = index + self.rateSelect(index) + + def rateSelectionMoved(self): + print "rate selection moved:", self.selection + self.rateSelect(self.selection) + + def rateSelect(self, rate): + self.hw.setMode(port = self.port, mode = self.mode, rate = rate) + + def showTestCard(self, selection = None): + if selection is None: + selection = self.selection + print "set config.misc.showtestcard to", {'yes': True, 'no': False}[selection] + if selection == "yes": + config.misc.showtestcard.value = True + else: + config.misc.showtestcard.value = False + + def keyNumberGlobal(self, number): + if number in (1,2,3): + if number == 1: + self.hw.saveMode("DVI", "720p", "multi") + elif number == 2: + self.hw.saveMode("DVI", "1080i", "multi") + elif number == 3: + self.hw.saveMode("Scart", "Multi", "multi") + self.hw.setConfiguredMode() + self.close() + + WizardLanguage.keyNumberGlobal(self, number) diff --git a/lib/python/Plugins/SystemPlugins/Videomode/YPbPr.png b/lib/python/Plugins/SystemPlugins/Videomode/YPbPr.png new file mode 100644 index 0000000000000000000000000000000000000000..c70cf523167893d3485245a5b19683c11afc35ab GIT binary patch literal 9856 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 literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/SystemPlugins/Videomode/lcd_HDMI.png b/lib/python/Plugins/SystemPlugins/Videomode/lcd_HDMI.png new file mode 100644 index 0000000000000000000000000000000000000000..c6be2c152cc07f27f8a724679166d3d8d75ac55f GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0P3?wHke>@jRv7|ftIx;YR|DNig)WpGT%PfAtr%uP&B4N6T+sVqF1Y6Dcn7T^=&3Z#KxY5LCdK#Hj($S?Rm z!_(~sUO--?r;B5VMsV^EepVh8BRd0w4U3KT85ndlOUD2Izu#{{;U8r`Hp5$n68sVp zGdk03MCQNXN$hZOmW+2wRBC*|Gb1U`sf4Q3f$W|abkrVx<20G|+7APofn|Nn2kd;SuT#aI&L7tG-B z>_!@hljQC0!j#5clLF*S_H=O!vG6~7c_XirA&+a|?h_0iDf0afl*<2yYB<#VUZ}y_ zQDRwjYHiZD%a6H&-Ue(b`~pW(2-=1y54y0?m+>L z)-M(gFY^|ZloyniPmp7Je}?-S`wj-@dkn%JtpNs&AqI`v34A?96;6^fnB|zl&d)!P lAgjo4@YMR|gcI8zG8zhobER+F&j)lKgQu&X%Q~loCIFiFV3Gg; literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/SystemPlugins/Videomode/lcd_YPbPr.png b/lib/python/Plugins/SystemPlugins/Videomode/lcd_YPbPr.png new file mode 100644 index 0000000000000000000000000000000000000000..fff860ae47f468a46d0198e1b707e3ec0b866cfe GIT binary patch literal 289 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;#^NA%Cx&(BWL^R}oCO|{#S9GG z!XV7ZFl&wkP>{XE)7O>#2D1z=v-Mw%{)IpxrX+877l!}s{b%+Ac}qQA978hhy`2`# z)nLHG^8MfRzIeOeW||RmbTeK$S>=UjDYgW}s?B~4XxXHdOE<6sc?_PeelF{r5}E*4z+e^t literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/SystemPlugins/Videomode/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/Videomode/meta/Makefile.am new file mode 100644 index 0000000..ddcc18c --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/Videomode/meta/Makefile.am @@ -0,0 +1,5 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_videomode.xml + +EXTRA_DIST = videomode_en.jpg videomode_de.jpg diff --git a/lib/python/Plugins/SystemPlugins/Videomode/meta/plugin_videomode.xml b/lib/python/Plugins/SystemPlugins/Videomode/meta/plugin_videomode.xml new file mode 100644 index 0000000..e16a7dc --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/Videomode/meta/plugin_videomode.xml @@ -0,0 +1,19 @@ + + + + + + + Dream Multimedia + Videomode + enigma2-plugin-systemplugins-videomode + Videomode provides advanced video mode settings + The Videomode plugin provides advanced video mode settings. + + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/Videomode/meta/videomode_de.jpg b/lib/python/Plugins/SystemPlugins/Videomode/meta/videomode_de.jpg new file mode 100644 index 0000000000000000000000000000000000000000..00b7ac7021192496913b0fb5b59a4f39cc0583eb GIT binary patch literal 103506 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 MJ<;58tnIV^0$=0|y8r+H literal 0 HcmV?d00001 diff --git a/lib/python/Plugins/SystemPlugins/Videomode/meta/videomode_en.jpg b/lib/python/Plugins/SystemPlugins/Videomode/meta/videomode_en.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1f4288b99b3ebb3defe80775f5dcfb5033a3ba46 GIT binary patch literal 95799 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

  • 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 z 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

    a_=>x*IYkNx>e#JiwYv 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 k8Ycd4Uhsbh?SKCGKcARc-` + + \n') + if menu_count > 1: + authorxml.append(' \n') + if menu_count < job.nr_menus: + authorxml.append(' \n') + menuoutputfilename = job.workspace+"/dvdmenu"+str(menu_count)+".mpg" + authorxml.append(' \n') + authorxml.append(' \n') + authorxml.append(' \n') + authorxml.append(' \n') + for i in range( nr_titles ): + chapters = ','.join(job.project.titles[i].getChapterMarks()) + title_no = i+1 + title_filename = job.workspace + "/dvd_title_%d.mpg" % (title_no) + if job.menupreview: + LinkTS(job, job.project.settings.vmgm.getValue(), title_filename) + else: + MakeFifoNode(job, title_no) + if mode.endswith("linked") and title_no < nr_titles: + post_tag = "jump title %d;" % ( title_no+1 ) + elif mode.startswith("menu"): + post_tag = "call vmgm menu 1;" + else: post_tag = "" + + authorxml.append(' \n') + authorxml.append(' \n') + authorxml.append(' ' + post_tag + ' \n') + authorxml.append(' \n') + + authorxml.append(' \n') + authorxml.append(' \n') + authorxml.append(' \n') + f = open(job.workspace+"/dvdauthor.xml", "w") + for x in authorxml: + f.write(x) + f.close() + +def CreateAuthoringXML_multiset(job): + nr_titles = len(job.project.titles) + mode = job.project.settings.authormode.getValue() + authorxml = [] + authorxml.append('\n') + authorxml.append(' \n') + authorxml.append(' \n') + authorxml.append(' \n') + authorxml.append(' \n') + authorxml.append(' \n') + + for i in range( nr_titles ): + title = job.project.titles[i] + authorxml.append(' \n') + authorxml.append(' \n') + authorxml.append(' \n') + authorxml.append('